This commit was manufactured by cvs2svn to create tag 'v200908270220'.
diff --git a/assembly/features/org.eclipse.jpt.assembly.feature/.cvsignore b/assembly/features/org.eclipse.jpt.assembly.feature/.cvsignore
deleted file mode 100644
index de8b73f..0000000
--- a/assembly/features/org.eclipse.jpt.assembly.feature/.cvsignore
+++ /dev/null
@@ -1,2 +0,0 @@
-build.xml
-org.eclipse.jpt_1.0.0.*
diff --git a/assembly/features/org.eclipse.jpt.assembly.feature/.project b/assembly/features/org.eclipse.jpt.assembly.feature/.project
deleted file mode 100644
index 1e211af..0000000
--- a/assembly/features/org.eclipse.jpt.assembly.feature/.project
+++ /dev/null
@@ -1,17 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<projectDescription>
-	<name>org.eclipse.jpt.assembly.feature</name>
-	<comment></comment>
-	<projects>
-	</projects>
-	<buildSpec>
-		<buildCommand>
-			<name>org.eclipse.pde.FeatureBuilder</name>
-			<arguments>
-			</arguments>
-		</buildCommand>
-	</buildSpec>
-	<natures>
-		<nature>org.eclipse.pde.FeatureNature</nature>
-	</natures>
-</projectDescription>
diff --git a/assembly/features/org.eclipse.jpt.assembly.feature/build.properties b/assembly/features/org.eclipse.jpt.assembly.feature/build.properties
deleted file mode 100644
index 470b4bc..0000000
--- a/assembly/features/org.eclipse.jpt.assembly.feature/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.assembly.feature/eclipse_update_120.jpg b/assembly/features/org.eclipse.jpt.assembly.feature/eclipse_update_120.jpg
deleted file mode 100644
index bfdf708..0000000
--- a/assembly/features/org.eclipse.jpt.assembly.feature/eclipse_update_120.jpg
+++ /dev/null
Binary files differ
diff --git a/assembly/features/org.eclipse.jpt.assembly.feature/epl-v10.html b/assembly/features/org.eclipse.jpt.assembly.feature/epl-v10.html
deleted file mode 100644
index ed4b196..0000000
--- a/assembly/features/org.eclipse.jpt.assembly.feature/epl-v10.html
+++ /dev/null
@@ -1,328 +0,0 @@
-<html xmlns:o="urn:schemas-microsoft-com:office:office"
-xmlns:w="urn:schemas-microsoft-com:office:word"
-xmlns="http://www.w3.org/TR/REC-html40">
-
-<head>
-<meta http-equiv=Content-Type content="text/html; charset=windows-1252">
-<meta name=ProgId content=Word.Document>
-<meta name=Generator content="Microsoft Word 9">
-<meta name=Originator content="Microsoft Word 9">
-<link rel=File-List
-href="./Eclipse%20EPL%202003_11_10%20Final_files/filelist.xml">
-<title>Eclipse Public License - Version 1.0</title>
-<!--[if gte mso 9]><xml>
- <o:DocumentProperties>
-  <o:Revision>2</o:Revision>
-  <o:TotalTime>3</o:TotalTime>
-  <o:Created>2004-03-05T23:03:00Z</o:Created>
-  <o:LastSaved>2004-03-05T23:03:00Z</o:LastSaved>
-  <o:Pages>4</o:Pages>
-  <o:Words>1626</o:Words>
-  <o:Characters>9270</o:Characters>
-   <o:Lines>77</o:Lines>
-  <o:Paragraphs>18</o:Paragraphs>
-  <o:CharactersWithSpaces>11384</o:CharactersWithSpaces>
-  <o:Version>9.4402</o:Version>
- </o:DocumentProperties>
-</xml><![endif]--><!--[if gte mso 9]><xml>
- <w:WordDocument>
-  <w:TrackRevisions/>
- </w:WordDocument>
-</xml><![endif]-->
-<style>
-<!--
- /* Font Definitions */
-@font-face
-	{font-family:Tahoma;
-	panose-1:2 11 6 4 3 5 4 4 2 4;
-	mso-font-charset:0;
-	mso-generic-font-family:swiss;
-	mso-font-pitch:variable;
-	mso-font-signature:553679495 -2147483648 8 0 66047 0;}
- /* Style Definitions */
-p.MsoNormal, li.MsoNormal, div.MsoNormal
-	{mso-style-parent:"";
-	margin:0in;
-	margin-bottom:.0001pt;
-	mso-pagination:widow-orphan;
-	font-size:12.0pt;
-	font-family:"Times New Roman";
-	mso-fareast-font-family:"Times New Roman";}
-p
-	{margin-right:0in;
-	mso-margin-top-alt:auto;
-	mso-margin-bottom-alt:auto;
-	margin-left:0in;
-	mso-pagination:widow-orphan;
-	font-size:12.0pt;
-	font-family:"Times New Roman";
-	mso-fareast-font-family:"Times New Roman";}
-p.BalloonText, li.BalloonText, div.BalloonText
-	{mso-style-name:"Balloon Text";
-	margin:0in;
-	margin-bottom:.0001pt;
-	mso-pagination:widow-orphan;
-	font-size:8.0pt;
-	font-family:Tahoma;
-	mso-fareast-font-family:"Times New Roman";}
-@page Section1
-	{size:8.5in 11.0in;
-	margin:1.0in 1.25in 1.0in 1.25in;
-	mso-header-margin:.5in;
-	mso-footer-margin:.5in;
-	mso-paper-source:0;}
-div.Section1
-	{page:Section1;}
--->
-</style>
-</head>
-
-<body lang=EN-US style='tab-interval:.5in'>
-
-<div class=Section1>
-
-<p align=center style='text-align:center'><b>Eclipse Public License - v 1.0</b>
-</p>
-
-<p><span style='font-size:10.0pt'>THE ACCOMPANYING PROGRAM IS PROVIDED UNDER
-THE TERMS OF THIS ECLIPSE PUBLIC LICENSE (&quot;AGREEMENT&quot;). ANY USE,
-REPRODUCTION OR DISTRIBUTION OF THE PROGRAM CONSTITUTES RECIPIENT'S ACCEPTANCE
-OF THIS AGREEMENT.</span> </p>
-
-<p><b><span style='font-size:10.0pt'>1. DEFINITIONS</span></b> </p>
-
-<p><span style='font-size:10.0pt'>&quot;Contribution&quot; means:</span> </p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>a)
-in the case of the initial Contributor, the initial code and documentation
-distributed under this Agreement, and<br clear=left>
-b) in the case of each subsequent Contributor:</span></p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>i)
-changes to the Program, and</span></p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>ii)
-additions to the Program;</span></p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>where
-such changes and/or additions to the Program originate from and are distributed
-by that particular Contributor. A Contribution 'originates' from a Contributor
-if it was added to the Program by such Contributor itself or anyone acting on
-such Contributor's behalf. Contributions do not include additions to the
-Program which: (i) are separate modules of software distributed in conjunction
-with the Program under their own license agreement, and (ii) are not derivative
-works of the Program. </span></p>
-
-<p><span style='font-size:10.0pt'>&quot;Contributor&quot; means any person or
-entity that distributes the Program.</span> </p>
-
-<p><span style='font-size:10.0pt'>&quot;Licensed Patents &quot; mean patent
-claims licensable by a Contributor which are necessarily infringed by the use
-or sale of its Contribution alone or when combined with the Program. </span></p>
-
-<p><span style='font-size:10.0pt'>&quot;Program&quot; means the Contributions
-distributed in accordance with this Agreement.</span> </p>
-
-<p><span style='font-size:10.0pt'>&quot;Recipient&quot; means anyone who
-receives the Program under this Agreement, including all Contributors.</span> </p>
-
-<p><b><span style='font-size:10.0pt'>2. GRANT OF RIGHTS</span></b> </p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>a)
-Subject to the terms of this Agreement, each Contributor hereby grants Recipient
-a non-exclusive, worldwide, royalty-free copyright license to<span
-style='color:red'> </span>reproduce, prepare derivative works of, publicly
-display, publicly perform, distribute and sublicense the Contribution of such
-Contributor, if any, and such derivative works, in source code and object code
-form.</span></p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>b)
-Subject to the terms of this Agreement, each Contributor hereby grants
-Recipient a non-exclusive, worldwide,<span style='color:green'> </span>royalty-free
-patent license under Licensed Patents to make, use, sell, offer to sell, import
-and otherwise transfer the Contribution of such Contributor, if any, in source
-code and object code form. This patent license shall apply to the combination
-of the Contribution and the Program if, at the time the Contribution is added
-by the Contributor, such addition of the Contribution causes such combination
-to be covered by the Licensed Patents. The patent license shall not apply to
-any other combinations which include the Contribution. No hardware per se is
-licensed hereunder. </span></p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>c)
-Recipient understands that although each Contributor grants the licenses to its
-Contributions set forth herein, no assurances are provided by any Contributor
-that the Program does not infringe the patent or other intellectual property
-rights of any other entity. Each Contributor disclaims any liability to Recipient
-for claims brought by any other entity based on infringement of intellectual
-property rights or otherwise. As a condition to exercising the rights and
-licenses granted hereunder, each Recipient hereby assumes sole responsibility
-to secure any other intellectual property rights needed, if any. For example,
-if a third party patent license is required to allow Recipient to distribute
-the Program, it is Recipient's responsibility to acquire that license before
-distributing the Program.</span></p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>d)
-Each Contributor represents that to its knowledge it has sufficient copyright
-rights in its Contribution, if any, to grant the copyright license set forth in
-this Agreement. </span></p>
-
-<p><b><span style='font-size:10.0pt'>3. REQUIREMENTS</span></b> </p>
-
-<p><span style='font-size:10.0pt'>A Contributor may choose to distribute the
-Program in object code form under its own license agreement, provided that:</span>
-</p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>a)
-it complies with the terms and conditions of this Agreement; and</span></p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>b)
-its license agreement:</span></p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>i)
-effectively disclaims on behalf of all Contributors all warranties and
-conditions, express and implied, including warranties or conditions of title
-and non-infringement, and implied warranties or conditions of merchantability
-and fitness for a particular purpose; </span></p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>ii)
-effectively excludes on behalf of all Contributors all liability for damages,
-including direct, indirect, special, incidental and consequential damages, such
-as lost profits; </span></p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>iii)
-states that any provisions which differ from this Agreement are offered by that
-Contributor alone and not by any other party; and</span></p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>iv)
-states that source code for the Program is available from such Contributor, and
-informs licensees how to obtain it in a reasonable manner on or through a
-medium customarily used for software exchange.<span style='color:blue'> </span></span></p>
-
-<p><span style='font-size:10.0pt'>When the Program is made available in source
-code form:</span> </p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>a)
-it must be made available under this Agreement; and </span></p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>b) a
-copy of this Agreement must be included with each copy of the Program. </span></p>
-
-<p><span style='font-size:10.0pt'>Contributors may not remove or alter any
-copyright notices contained within the Program. </span></p>
-
-<p><span style='font-size:10.0pt'>Each Contributor must identify itself as the
-originator of its Contribution, if any, in a manner that reasonably allows
-subsequent Recipients to identify the originator of the Contribution. </span></p>
-
-<p><b><span style='font-size:10.0pt'>4. COMMERCIAL DISTRIBUTION</span></b> </p>
-
-<p><span style='font-size:10.0pt'>Commercial distributors of software may
-accept certain responsibilities with respect to end users, business partners
-and the like. While this license is intended to facilitate the commercial use
-of the Program, the Contributor who includes the Program in a commercial
-product offering should do so in a manner which does not create potential
-liability for other Contributors. Therefore, if a Contributor includes the
-Program in a commercial product offering, such Contributor (&quot;Commercial
-Contributor&quot;) hereby agrees to defend and indemnify every other
-Contributor (&quot;Indemnified Contributor&quot;) against any losses, damages and
-costs (collectively &quot;Losses&quot;) arising from claims, lawsuits and other
-legal actions brought by a third party against the Indemnified Contributor to
-the extent caused by the acts or omissions of such Commercial Contributor in
-connection with its distribution of the Program in a commercial product
-offering. The obligations in this section do not apply to any claims or Losses
-relating to any actual or alleged intellectual property infringement. In order
-to qualify, an Indemnified Contributor must: a) promptly notify the Commercial
-Contributor in writing of such claim, and b) allow the Commercial Contributor
-to control, and cooperate with the Commercial Contributor in, the defense and
-any related settlement negotiations. The Indemnified Contributor may participate
-in any such claim at its own expense.</span> </p>
-
-<p><span style='font-size:10.0pt'>For example, a Contributor might include the
-Program in a commercial product offering, Product X. That Contributor is then a
-Commercial Contributor. If that Commercial Contributor then makes performance
-claims, or offers warranties related to Product X, those performance claims and
-warranties are such Commercial Contributor's responsibility alone. Under this
-section, the Commercial Contributor would have to defend claims against the
-other Contributors related to those performance claims and warranties, and if a
-court requires any other Contributor to pay any damages as a result, the
-Commercial Contributor must pay those damages.</span> </p>
-
-<p><b><span style='font-size:10.0pt'>5. NO WARRANTY</span></b> </p>
-
-<p><span style='font-size:10.0pt'>EXCEPT AS EXPRESSLY SET FORTH IN THIS
-AGREEMENT, THE PROGRAM IS PROVIDED ON AN &quot;AS IS&quot; BASIS, WITHOUT
-WARRANTIES OR CONDITIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED INCLUDING,
-WITHOUT LIMITATION, ANY WARRANTIES OR CONDITIONS OF TITLE, NON-INFRINGEMENT,
-MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. Each Recipient is solely
-responsible for determining the appropriateness of using and distributing the
-Program and assumes all risks associated with its exercise of rights under this
-Agreement , including but not limited to the risks and costs of program errors,
-compliance with applicable laws, damage to or loss of data, programs or
-equipment, and unavailability or interruption of operations. </span></p>
-
-<p><b><span style='font-size:10.0pt'>6. DISCLAIMER OF LIABILITY</span></b> </p>
-
-<p><span style='font-size:10.0pt'>EXCEPT AS EXPRESSLY SET FORTH IN THIS
-AGREEMENT, NEITHER RECIPIENT NOR ANY CONTRIBUTORS SHALL HAVE ANY LIABILITY FOR
-ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
-(INCLUDING WITHOUT LIMITATION LOST PROFITS), HOWEVER CAUSED AND ON ANY THEORY
-OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
-NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OR DISTRIBUTION OF
-THE PROGRAM OR THE EXERCISE OF ANY RIGHTS GRANTED HEREUNDER, EVEN IF ADVISED OF
-THE POSSIBILITY OF SUCH DAMAGES.</span> </p>
-
-<p><b><span style='font-size:10.0pt'>7. GENERAL</span></b> </p>
-
-<p><span style='font-size:10.0pt'>If any provision of this Agreement is invalid
-or unenforceable under applicable law, it shall not affect the validity or
-enforceability of the remainder of the terms of this Agreement, and without
-further action by the parties hereto, such provision shall be reformed to the
-minimum extent necessary to make such provision valid and enforceable.</span> </p>
-
-<p><span style='font-size:10.0pt'>If Recipient institutes patent litigation
-against any entity (including a cross-claim or counterclaim in a lawsuit)
-alleging that the Program itself (excluding combinations of the Program with
-other software or hardware) infringes such Recipient's patent(s), then such
-Recipient's rights granted under Section 2(b) shall terminate as of the date
-such litigation is filed. </span></p>
-
-<p><span style='font-size:10.0pt'>All Recipient's rights under this Agreement
-shall terminate if it fails to comply with any of the material terms or
-conditions of this Agreement and does not cure such failure in a reasonable
-period of time after becoming aware of such noncompliance. If all Recipient's
-rights under this Agreement terminate, Recipient agrees to cease use and
-distribution of the Program as soon as reasonably practicable. However,
-Recipient's obligations under this Agreement and any licenses granted by
-Recipient relating to the Program shall continue and survive. </span></p>
-
-<p><span style='font-size:10.0pt'>Everyone is permitted to copy and distribute
-copies of this Agreement, but in order to avoid inconsistency the Agreement is
-copyrighted and may only be modified in the following manner. The Agreement
-Steward reserves the right to publish new versions (including revisions) of
-this Agreement from time to time. No one other than the Agreement Steward has
-the right to modify this Agreement. The Eclipse Foundation is the initial
-Agreement Steward. The Eclipse Foundation may assign the responsibility to
-serve as the Agreement Steward to a suitable separate entity. Each new version
-of the Agreement will be given a distinguishing version number. The Program
-(including Contributions) may always be distributed subject to the version of
-the Agreement under which it was received. In addition, after a new version of
-the Agreement is published, Contributor may elect to distribute the Program
-(including its Contributions) under the new version. Except as expressly stated
-in Sections 2(a) and 2(b) above, Recipient receives no rights or licenses to
-the intellectual property of any Contributor under this Agreement, whether
-expressly, by implication, estoppel or otherwise. All rights in the Program not
-expressly granted under this Agreement are reserved.</span> </p>
-
-<p><span style='font-size:10.0pt'>This Agreement is governed by the laws of the
-State of New York and the intellectual property laws of the United States of
-America. No party to this Agreement will bring a legal action under this
-Agreement more than one year after the cause of action arose. Each party waives
-its rights to a jury trial in any resulting litigation.</span> </p>
-
-<p class=MsoNormal><![if !supportEmptyParas]>&nbsp;<![endif]><o:p></o:p></p>
-
-</div>
-
-</body>
-
-</html>
\ No newline at end of file
diff --git a/assembly/features/org.eclipse.jpt.assembly.feature/feature.properties b/assembly/features/org.eclipse.jpt.assembly.feature/feature.properties
deleted file mode 100644
index 5771e26..0000000
--- a/assembly/features/org.eclipse.jpt.assembly.feature/feature.properties
+++ /dev/null
@@ -1,144 +0,0 @@
-###############################################################################
-# Copyright (c) 2006 Oracle.
-# All rights reserved. This program and the accompanying materials
-# are made available under the terms of the Eclipse Public License v1.0
-# which accompanies this distribution, and is available at
-# http://www.eclipse.org/legal/epl-v10.html
-# 
-# Contributors:
-#     Oracle. - initial API and implementation
-###############################################################################
-# feature.properties
-# contains externalized strings for feature.xml
-# "%foo" in feature.xml corresponds to the key "foo" in this file
-# java.io.Properties file (ISO 8859-1 with "\" escapes)
-# This file should be translated.
-
-# "featureName" property - name of the feature
-featureName=Dali Java Persistence Tools 
-
-# "providerName" property - name of the company that provides the feature
-providerName=Eclipse Web Tools Platform
-
-# "updateSiteName" property - label for the update site
-updateSiteName=The Eclipse Web Tools Platform (WTP) Project update site
-
-# "description" property - description of the feature
-description=Dali Java Persistence Tools - Runtime
-
-# "copyright" property - text of the "Feature Update Copyright"
-copyright=\
-Copyright (c) 2006 Oracle Corporation.\n\
-All rights reserved. This program and the accompanying materials\n\
-are made available under the terms of the Eclipse Public License v1.0\n\
-which accompanies this distribution, and is available at\n\
-http://www.eclipse.org/legal/epl-v10.html\n\
-\n\
-Contributors:\n\
-    Oracle - initial API and implementation\n
-################ end of copyright property ####################################
-
-# "licenseURL" property - URL of the "Feature License"
-# do not translate value - just change to point to a locale-specific HTML page
-licenseURL=license.html
-
-# "license" property - text of the "Feature Update License"
-# should be plain text version of license agreement pointed to be "licenseURL"
-license=\
-ECLIPSE FOUNDATION SOFTWARE USER AGREEMENT\n\
-March 17, 2005\n\
-\n\
-Usage Of Content\n\
-\n\
-THE ECLIPSE FOUNDATION MAKES AVAILABLE SOFTWARE, DOCUMENTATION, INFORMATION AND/OR\n\
-OTHER MATERIALS FOR OPEN SOURCE PROJECTS (COLLECTIVELY "CONTENT").\n\
-USE OF THE CONTENT IS GOVERNED BY THE TERMS AND CONDITIONS OF THIS\n\
-AGREEMENT AND/OR THE TERMS AND CONDITIONS OF LICENSE AGREEMENTS OR\n\
-NOTICES INDICATED OR REFERENCED BELOW. BY USING THE CONTENT, YOU\n\
-AGREE THAT YOUR USE OF THE CONTENT IS GOVERNED BY THIS AGREEMENT\n\
-AND/OR THE TERMS AND CONDITIONS OF ANY APPLICABLE LICENSE AGREEMENTS\n\
-OR NOTICES INDICATED OR REFERENCED BELOW. IF YOU DO NOT AGREE TO THE\n\
-TERMS AND CONDITIONS OF THIS AGREEMENT AND THE TERMS AND CONDITIONS\n\
-OF ANY APPLICABLE LICENSE AGREEMENTS OR NOTICES INDICATED OR REFERENCED\n\
-BELOW, THEN YOU MAY NOT USE THE CONTENT.\n\
-\n\
-Applicable Licenses\n\
-\n\
-Unless otherwise indicated, all Content made available by the Eclipse Foundation\n\
-is provided to you under the terms and conditions of the Eclipse Public\n\
-License Version 1.0 ("EPL"). A copy of the EPL is provided with this\n\
-Content and is also available at http://www.eclipse.org/legal/epl-v10.html.\n\
-For purposes of the EPL, "Program" will mean the Content.\n\
-\n\
-Content includes, but is not limited to, source code, object code,\n\
-documentation and other files maintained in the Eclipse.org CVS\n\
-repository ("Repository") in CVS modules ("Modules") and made available\n\
-as downloadable archives ("Downloads").\n\
-\n\
-   - Content may be structured and packaged into modules to facilitate delivering,\n\
-     extending, and upgrading the Content. Typical modules may include plug-ins ("Plug-ins"),\n\
-     plug-in fragments ("Fragments"), and features ("Features").\n\
-   - Each Plug-in or Fragment may be packaged as a sub-directory or JAR (Java? ARchive)\n\
-     in a directory named "plugins".\n\
-   - A Feature is a bundle of one or more Plug-ins and/or Fragments and associated material.\n\
-     Each Feature may be packaged as a sub-directory in a directory named "features".\n\
-     Within a Feature, files named "feature.xml" may contain a list of the names and version\n\
-     numbers of the Plug-ins and/or Fragments associated with that Feature.\n\
-   - Features may also include other Features ("Included Features"). Within a Feature, files\n\
-     named "feature.xml" may contain a list of the names and version numbers of Included Features.\n\
-\n\
-Features may also include other Features ("Included Features"). Files named\n\
-"feature.xml" may contain a list of the names and version numbers of\n\
-Included Features.\n\
-\n\
-The terms and conditions governing Plug-ins and Fragments should be\n\
-contained in files named "about.html" ("Abouts"). The terms and\n\
-conditions governing Features and Included Features should be contained\n\
-in files named "license.html" ("Feature Licenses"). Abouts and Feature\n\
-Licenses may be located in any directory of a Download or Module\n\
-including, but not limited to the following locations:\n\
-\n\
-   - The top-level (root) directory\n\
-   - Plug-in and Fragment directories\n\
-   - Inside Plug-ins and Fragments packaged as JARs\n\
-   - Sub-directories of the directory named "src" of certain Plug-ins\n\
-   - Feature directories\n\
-\n\
-Note: if a Feature made available by the Eclipse Foundation is installed using the\n\
-Eclipse Update Manager, you must agree to a license ("Feature Update\n\
-License") during the installation process. If the Feature contains\n\
-Included Features, the Feature Update License should either provide you\n\
-with the terms and conditions governing the Included Features or inform\n\
-you where you can locate them. Feature Update Licenses may be found in\n\
-the "license" property of files named "feature.properties". Such Abouts,\n\
-Feature Licenses and Feature Update Licenses contain the terms and\n\
-conditions (or references to such terms and conditions) that govern your\n\
-use of the associated Content in that directory.\n\
-\n\
-THE ABOUTS, FEATURE LICENSES AND FEATURE UPDATE LICENSES MAY REFER\n\
-TO THE EPL OR OTHER LICENSE AGREEMENTS, NOTICES OR TERMS AND CONDITIONS.\n\
-SOME OF THESE OTHER LICENSE AGREEMENTS MAY INCLUDE (BUT ARE NOT LIMITED TO):\n\
-\n\
-    - Common Public License Version 1.0 (available at http://www.eclipse.org/legal/cpl-v10.html)\n\
-    - Apache Software License 1.1 (available at http://www.apache.org/licenses/LICENSE)\n\
-    - Apache Software License 2.0 (available at http://www.apache.org/licenses/LICENSE-2.0)\n\
-    - IBM Public License 1.0 (available at http://oss.software.ibm.com/developerworks/opensource/license10.html)\n\
-    - Metro Link Public License 1.00 (available at http://www.opengroup.org/openmotif/supporters/metrolink/license.html)\n\
-    - Mozilla Public License Version 1.1 (available at http://www.mozilla.org/MPL/MPL-1.1.html)\n\
-\n\
-IT IS YOUR OBLIGATION TO READ AND ACCEPT ALL SUCH TERMS AND CONDITIONS PRIOR\n\
-TO USE OF THE CONTENT. If no About, Feature License or Feature Update License\n\
-is provided, please contact the Eclipse Foundation to determine what terms and conditions\n\
-govern that particular Content.\n\
-\n\
-Cryptography\n\
-\n\
-Content may contain encryption software. The country in which you are\n\
-currently may have restrictions on the import, possession, and use,\n\
-and/or re-export to another country, of encryption software. BEFORE\n\
-using any encryption software, please check the country's laws,\n\
-regulations and policies concerning the import, possession, or use,\n\
-and re-export of encryption software, to see if this is permitted.\n\
-\n\
-Java and all Java-based trademarks are trademarks of Sun Microsystems, Inc. in the United States, other countries, or both.\n
-########### end of license property ##########################################
diff --git a/assembly/features/org.eclipse.jpt.assembly.feature/feature.xml b/assembly/features/org.eclipse.jpt.assembly.feature/feature.xml
deleted file mode 100644
index 51482ec..0000000
--- a/assembly/features/org.eclipse.jpt.assembly.feature/feature.xml
+++ /dev/null
@@ -1,34 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<feature
-      id="org.eclipse.jpt.assembly.feature"
-      label="%featureName"
-      version="2.2.0.qualifier"
-      provider-name="%providerName"
-      image="eclipse_update_120.jpg">
-
-   <description>
-      %description
-   </description>
-
-   <copyright>
-      %copyright
-   </copyright>
-
-   <license url="license.html">
-      %license
-   </license>
-
-   <url>
-      <update label="%updateSiteName" url="http://download.eclipse.org/webtools/updates"/>
-      <discovery label="Web Tools Platform (WTP) Updates" url="http://download.eclipse.org/webtools/updates"/>
-   </url>
-
-   <includes
-         id="org.eclipse.jpt.feature"
-         version="0.0.0"/>
-
-   <includes
-         id="org.eclipse.jpt.eclipselink.feature"
-         version="0.0.0"/>
-
-</feature>
diff --git a/assembly/features/org.eclipse.jpt.assembly.feature/license.html b/assembly/features/org.eclipse.jpt.assembly.feature/license.html
deleted file mode 100644
index 2347060..0000000
--- a/assembly/features/org.eclipse.jpt.assembly.feature/license.html
+++ /dev/null
@@ -1,93 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3c.org/TR/1999/REC-html401-19991224/loose.dtd">
-<!-- saved from url=(0044)http://www.eclipse.org/legal/epl/notice.html -->
-<HTML><HEAD><TITLE>Eclipse.org Software User Agreement</TITLE>
-<META http-equiv=Content-Type content="text/html; charset=iso-8859-1">
-<META content="MSHTML 6.00.2800.1479" name=GENERATOR></HEAD>
-<BODY lang=EN-US vLink=purple link=blue>
-<H2>Eclipse Foundation Software User Agreement</H2>
-<P>January 28, 2005</P>
-<H3>Usage Of Content</H3>
-<P>THE ECLIPSE FOUNDATION MAKES AVAILABLE SOFTWARE, DOCUMENTATION, INFORMATION 
-AND/OR OTHER MATERIALS FOR OPEN SOURCE PROJECTS (COLLECTIVELY "CONTENT"). USE OF 
-THE CONTENT IS GOVERNED BY THE TERMS AND CONDITIONS OF THIS AGREEMENT AND/OR THE 
-TERMS AND CONDITIONS OF LICENSE AGREEMENTS OR NOTICES INDICATED OR REFERENCED 
-BELOW. BY USING THE CONTENT, YOU AGREE THAT YOUR USE OF THE CONTENT IS GOVERNED 
-BY THIS AGREEMENT AND/OR THE TERMS AND CONDITIONS OF ANY APPLICABLE LICENSE 
-AGREEMENTS OR NOTICES INDICATED OR REFERENCED BELOW. IF YOU DO NOT AGREE TO THE 
-TERMS AND CONDITIONS OF THIS AGREEMENT AND THE TERMS AND CONDITIONS OF ANY 
-APPLICABLE LICENSE AGREEMENTS OR NOTICES INDICATED OR REFERENCED BELOW, THEN YOU 
-MAY NOT USE THE CONTENT.</P>
-<H3>Applicable Licenses</H3>
-<P>Unless otherwise indicated, all Content made available by the Eclipse 
-Foundation is provided to you under the terms and conditions of the Eclipse 
-Public License Version 1.0 ("EPL"). A copy of the EPL is provided with this 
-Content and is also available at <A 
-href="http://www.eclipse.org/legal/epl-v10.html">http://www.eclipse.org/legal/epl-v10.html</A>. 
-For purposes of the EPL, "Program" will mean the Content.</P>
-<P>Content includes, but is not limited to, source code, object code, 
-documentation and other files maintained in the Eclipse.org CVS repository 
-("Repository") in CVS modules ("Modules") and made available as downloadable 
-archives ("Downloads").</P>
-<P>Content may be apportioned into plug-ins ("Plug-ins"), plug-in fragments 
-("Fragments"), and features ("Features"). A Feature is a bundle of one or more 
-Plug-ins and/or Fragments and associated material. Files named "feature.xml" may 
-contain a list of the names and version numbers of the Plug-ins and/or Fragments 
-associated with a Feature. Plug-ins and Fragments are located in directories 
-named "plugins" and Features are located in directories named "features".</P>
-<P>Features may also include other Features ("Included Features"). Files named 
-"feature.xml" may contain a list of the names and version numbers of Included 
-Features.</P>
-<P>The terms and conditions governing Plug-ins and Fragments should be contained 
-in files named "about.html" ("Abouts"). The terms and conditions governing 
-Features and Included Features should be contained in files named "license.html" 
-("Feature Licenses"). Abouts and Feature Licenses may be located in any 
-directory of a Download or Module including, but not limited to the following 
-locations:</P>
-<UL>
-  <LI>The top-level (root) directory 
-  <LI>Plug-in and Fragment directories 
-  <LI>Subdirectories of the directory named "src" of certain Plug-ins 
-  <LI>Feature directories </LI></UL>
-<P>Note: if a Feature made available by the Eclipse Foundation is installed 
-using the Eclipse Update Manager, you must agree to a license ("Feature Update 
-License") during the installation process. If the Feature contains Included 
-Features, the Feature Update License should either provide you with the terms 
-and conditions governing the Included Features or inform you where you can 
-locate them. Feature Update Licenses may be found in the "license" property of 
-files named "feature.properties". Such Abouts, Feature Licenses and Feature 
-Update Licenses contain the terms and conditions (or references to such terms 
-and conditions) that govern your use of the associated Content in that 
-directory.</P>
-<P>THE ABOUTS, FEATURE LICENSES AND FEATURE UPDATE LICENSES MAY REFER TO THE EPL 
-OR OTHER LICENSE AGREEMENTS, NOTICES OR TERMS AND CONDITIONS. SOME OF THESE 
-OTHER LICENSE AGREEMENTS MAY INCLUDE (BUT ARE NOT LIMITED TO):</P>
-<UL>
-  <LI>Common Public License Version 1.0 (available at <A 
-  href="http://www.eclipse.org/legal/cpl-v10.html">http://www.eclipse.org/legal/cpl-v10.html</A>) 
-
-  <LI>Apache Software License 1.1 (available at <A 
-  href="http://www.apache.org/licenses/LICENSE">http://www.apache.org/licenses/LICENSE</A>) 
-
-  <LI>Apache Software License 2.0 (available at <A 
-  href="http://www.apache.org/licenses/LICENSE-2.0">http://www.apache.org/licenses/LICENSE-2.0</A>) 
-
-  <LI>IBM Public License 1.0 (available at <A 
-  href="http://oss.software.ibm.com/developerworks/opensource/license10.html">http://oss.software.ibm.com/developerworks/opensource/license10.html</A>) 
-
-  <LI>Metro Link Public License 1.00 (available at <A 
-  href="http://www.opengroup.org/openmotif/supporters/metrolink/license.html">http://www.opengroup.org/openmotif/supporters/metrolink/license.html</A>) 
-
-  <LI>Mozilla Public License Version 1.1 (available at <A 
-  href="http://www.mozilla.org/MPL/MPL-1.1.html">http://www.mozilla.org/MPL/MPL-1.1.html</A>) 
-  </LI></UL>
-<P>IT IS YOUR OBLIGATION TO READ AND ACCEPT ALL SUCH TERMS AND CONDITIONS PRIOR 
-TO USE OF THE CONTENT. If no About, Feature License or Feature Update License is 
-provided, please contact the Eclipse Foundation to determine what terms and 
-conditions govern that particular Content.</P>
-<H3>Cryptography</H3>
-<P>Content may contain encryption software. The country in which you are 
-currently may have restrictions on the import, possession, and use, and/or 
-re-export to another country, of encryption software. BEFORE using any 
-encryption software, please check the country's laws, regulations and policies 
-concerning the import, possession, or use, and re-export of encryption software, 
-to see if this is permitted.</P></BODY></HTML>
diff --git a/assembly/features/org.eclipse.jpt.patch/.project b/assembly/features/org.eclipse.jpt.patch/.project
deleted file mode 100644
index b7a2bf5..0000000
--- a/assembly/features/org.eclipse.jpt.patch/.project
+++ /dev/null
@@ -1,17 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<projectDescription>
-	<name>org.eclipse.jpt.patch</name>
-	<comment></comment>
-	<projects>
-	</projects>
-	<buildSpec>
-		<buildCommand>
-			<name>org.eclipse.pde.FeatureBuilder</name>
-			<arguments>
-			</arguments>
-		</buildCommand>
-	</buildSpec>
-	<natures>
-		<nature>org.eclipse.pde.FeatureNature</nature>
-	</natures>
-</projectDescription>
diff --git a/assembly/features/org.eclipse.jpt.patch/build.properties b/assembly/features/org.eclipse.jpt.patch/build.properties
deleted file mode 100644
index c381fb2..0000000
--- a/assembly/features/org.eclipse.jpt.patch/build.properties
+++ /dev/null
@@ -1,10 +0,0 @@
-bin.includes = feature.xml,\
-               license.html,\
-               feature.properties,\
-               epl-v10.html,\
-               eclipse_update_120.jpg
-src.includes = eclipse_update_120.jpg,\
-               epl-v10.html,\
-               feature.properties,\
-               feature.xml,\
-               license.html
diff --git a/assembly/features/org.eclipse.jpt.patch/buildnotes_org.eclipse.jpt.patch.html b/assembly/features/org.eclipse.jpt.patch/buildnotes_org.eclipse.jpt.patch.html
deleted file mode 100644
index 0d115f4..0000000
--- a/assembly/features/org.eclipse.jpt.patch/buildnotes_org.eclipse.jpt.patch.html
+++ /dev/null
@@ -1,20 +0,0 @@
-<!doctype html public "-//w3c//dtd html 4.0 transitional//en">
-<html>
-
-<head>
-   <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
-   <meta name="Build" content="Build">
-   <title>Java Persistence Tools (JTP) 1.0.2 Patches</title>
-</head>
-
-<body>
-
-<h1>JTP 2.0.2 Patches</h1>
-
-<h2>Feature Patched: org.eclipse.jpt.patch</h2>
-<h3>Plugin(s) replaced:</h3>
-<ul><li>org.eclipse.jpt.gen</li></ul>
-<p>Bug <a href='https://bugs.eclipse.org/220297'>220297</a>. Entity generation creates Embeddables with compile errors in some cases.</p>
-
-
-</body></html>
\ No newline at end of file
diff --git a/assembly/features/org.eclipse.jpt.patch/eclipse_update_120.jpg b/assembly/features/org.eclipse.jpt.patch/eclipse_update_120.jpg
deleted file mode 100644
index bfdf708..0000000
--- a/assembly/features/org.eclipse.jpt.patch/eclipse_update_120.jpg
+++ /dev/null
Binary files differ
diff --git a/assembly/features/org.eclipse.jpt.patch/epl-v10.html b/assembly/features/org.eclipse.jpt.patch/epl-v10.html
deleted file mode 100644
index ed4b196..0000000
--- a/assembly/features/org.eclipse.jpt.patch/epl-v10.html
+++ /dev/null
@@ -1,328 +0,0 @@
-<html xmlns:o="urn:schemas-microsoft-com:office:office"
-xmlns:w="urn:schemas-microsoft-com:office:word"
-xmlns="http://www.w3.org/TR/REC-html40">
-
-<head>
-<meta http-equiv=Content-Type content="text/html; charset=windows-1252">
-<meta name=ProgId content=Word.Document>
-<meta name=Generator content="Microsoft Word 9">
-<meta name=Originator content="Microsoft Word 9">
-<link rel=File-List
-href="./Eclipse%20EPL%202003_11_10%20Final_files/filelist.xml">
-<title>Eclipse Public License - Version 1.0</title>
-<!--[if gte mso 9]><xml>
- <o:DocumentProperties>
-  <o:Revision>2</o:Revision>
-  <o:TotalTime>3</o:TotalTime>
-  <o:Created>2004-03-05T23:03:00Z</o:Created>
-  <o:LastSaved>2004-03-05T23:03:00Z</o:LastSaved>
-  <o:Pages>4</o:Pages>
-  <o:Words>1626</o:Words>
-  <o:Characters>9270</o:Characters>
-   <o:Lines>77</o:Lines>
-  <o:Paragraphs>18</o:Paragraphs>
-  <o:CharactersWithSpaces>11384</o:CharactersWithSpaces>
-  <o:Version>9.4402</o:Version>
- </o:DocumentProperties>
-</xml><![endif]--><!--[if gte mso 9]><xml>
- <w:WordDocument>
-  <w:TrackRevisions/>
- </w:WordDocument>
-</xml><![endif]-->
-<style>
-<!--
- /* Font Definitions */
-@font-face
-	{font-family:Tahoma;
-	panose-1:2 11 6 4 3 5 4 4 2 4;
-	mso-font-charset:0;
-	mso-generic-font-family:swiss;
-	mso-font-pitch:variable;
-	mso-font-signature:553679495 -2147483648 8 0 66047 0;}
- /* Style Definitions */
-p.MsoNormal, li.MsoNormal, div.MsoNormal
-	{mso-style-parent:"";
-	margin:0in;
-	margin-bottom:.0001pt;
-	mso-pagination:widow-orphan;
-	font-size:12.0pt;
-	font-family:"Times New Roman";
-	mso-fareast-font-family:"Times New Roman";}
-p
-	{margin-right:0in;
-	mso-margin-top-alt:auto;
-	mso-margin-bottom-alt:auto;
-	margin-left:0in;
-	mso-pagination:widow-orphan;
-	font-size:12.0pt;
-	font-family:"Times New Roman";
-	mso-fareast-font-family:"Times New Roman";}
-p.BalloonText, li.BalloonText, div.BalloonText
-	{mso-style-name:"Balloon Text";
-	margin:0in;
-	margin-bottom:.0001pt;
-	mso-pagination:widow-orphan;
-	font-size:8.0pt;
-	font-family:Tahoma;
-	mso-fareast-font-family:"Times New Roman";}
-@page Section1
-	{size:8.5in 11.0in;
-	margin:1.0in 1.25in 1.0in 1.25in;
-	mso-header-margin:.5in;
-	mso-footer-margin:.5in;
-	mso-paper-source:0;}
-div.Section1
-	{page:Section1;}
--->
-</style>
-</head>
-
-<body lang=EN-US style='tab-interval:.5in'>
-
-<div class=Section1>
-
-<p align=center style='text-align:center'><b>Eclipse Public License - v 1.0</b>
-</p>
-
-<p><span style='font-size:10.0pt'>THE ACCOMPANYING PROGRAM IS PROVIDED UNDER
-THE TERMS OF THIS ECLIPSE PUBLIC LICENSE (&quot;AGREEMENT&quot;). ANY USE,
-REPRODUCTION OR DISTRIBUTION OF THE PROGRAM CONSTITUTES RECIPIENT'S ACCEPTANCE
-OF THIS AGREEMENT.</span> </p>
-
-<p><b><span style='font-size:10.0pt'>1. DEFINITIONS</span></b> </p>
-
-<p><span style='font-size:10.0pt'>&quot;Contribution&quot; means:</span> </p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>a)
-in the case of the initial Contributor, the initial code and documentation
-distributed under this Agreement, and<br clear=left>
-b) in the case of each subsequent Contributor:</span></p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>i)
-changes to the Program, and</span></p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>ii)
-additions to the Program;</span></p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>where
-such changes and/or additions to the Program originate from and are distributed
-by that particular Contributor. A Contribution 'originates' from a Contributor
-if it was added to the Program by such Contributor itself or anyone acting on
-such Contributor's behalf. Contributions do not include additions to the
-Program which: (i) are separate modules of software distributed in conjunction
-with the Program under their own license agreement, and (ii) are not derivative
-works of the Program. </span></p>
-
-<p><span style='font-size:10.0pt'>&quot;Contributor&quot; means any person or
-entity that distributes the Program.</span> </p>
-
-<p><span style='font-size:10.0pt'>&quot;Licensed Patents &quot; mean patent
-claims licensable by a Contributor which are necessarily infringed by the use
-or sale of its Contribution alone or when combined with the Program. </span></p>
-
-<p><span style='font-size:10.0pt'>&quot;Program&quot; means the Contributions
-distributed in accordance with this Agreement.</span> </p>
-
-<p><span style='font-size:10.0pt'>&quot;Recipient&quot; means anyone who
-receives the Program under this Agreement, including all Contributors.</span> </p>
-
-<p><b><span style='font-size:10.0pt'>2. GRANT OF RIGHTS</span></b> </p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>a)
-Subject to the terms of this Agreement, each Contributor hereby grants Recipient
-a non-exclusive, worldwide, royalty-free copyright license to<span
-style='color:red'> </span>reproduce, prepare derivative works of, publicly
-display, publicly perform, distribute and sublicense the Contribution of such
-Contributor, if any, and such derivative works, in source code and object code
-form.</span></p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>b)
-Subject to the terms of this Agreement, each Contributor hereby grants
-Recipient a non-exclusive, worldwide,<span style='color:green'> </span>royalty-free
-patent license under Licensed Patents to make, use, sell, offer to sell, import
-and otherwise transfer the Contribution of such Contributor, if any, in source
-code and object code form. This patent license shall apply to the combination
-of the Contribution and the Program if, at the time the Contribution is added
-by the Contributor, such addition of the Contribution causes such combination
-to be covered by the Licensed Patents. The patent license shall not apply to
-any other combinations which include the Contribution. No hardware per se is
-licensed hereunder. </span></p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>c)
-Recipient understands that although each Contributor grants the licenses to its
-Contributions set forth herein, no assurances are provided by any Contributor
-that the Program does not infringe the patent or other intellectual property
-rights of any other entity. Each Contributor disclaims any liability to Recipient
-for claims brought by any other entity based on infringement of intellectual
-property rights or otherwise. As a condition to exercising the rights and
-licenses granted hereunder, each Recipient hereby assumes sole responsibility
-to secure any other intellectual property rights needed, if any. For example,
-if a third party patent license is required to allow Recipient to distribute
-the Program, it is Recipient's responsibility to acquire that license before
-distributing the Program.</span></p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>d)
-Each Contributor represents that to its knowledge it has sufficient copyright
-rights in its Contribution, if any, to grant the copyright license set forth in
-this Agreement. </span></p>
-
-<p><b><span style='font-size:10.0pt'>3. REQUIREMENTS</span></b> </p>
-
-<p><span style='font-size:10.0pt'>A Contributor may choose to distribute the
-Program in object code form under its own license agreement, provided that:</span>
-</p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>a)
-it complies with the terms and conditions of this Agreement; and</span></p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>b)
-its license agreement:</span></p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>i)
-effectively disclaims on behalf of all Contributors all warranties and
-conditions, express and implied, including warranties or conditions of title
-and non-infringement, and implied warranties or conditions of merchantability
-and fitness for a particular purpose; </span></p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>ii)
-effectively excludes on behalf of all Contributors all liability for damages,
-including direct, indirect, special, incidental and consequential damages, such
-as lost profits; </span></p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>iii)
-states that any provisions which differ from this Agreement are offered by that
-Contributor alone and not by any other party; and</span></p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>iv)
-states that source code for the Program is available from such Contributor, and
-informs licensees how to obtain it in a reasonable manner on or through a
-medium customarily used for software exchange.<span style='color:blue'> </span></span></p>
-
-<p><span style='font-size:10.0pt'>When the Program is made available in source
-code form:</span> </p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>a)
-it must be made available under this Agreement; and </span></p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>b) a
-copy of this Agreement must be included with each copy of the Program. </span></p>
-
-<p><span style='font-size:10.0pt'>Contributors may not remove or alter any
-copyright notices contained within the Program. </span></p>
-
-<p><span style='font-size:10.0pt'>Each Contributor must identify itself as the
-originator of its Contribution, if any, in a manner that reasonably allows
-subsequent Recipients to identify the originator of the Contribution. </span></p>
-
-<p><b><span style='font-size:10.0pt'>4. COMMERCIAL DISTRIBUTION</span></b> </p>
-
-<p><span style='font-size:10.0pt'>Commercial distributors of software may
-accept certain responsibilities with respect to end users, business partners
-and the like. While this license is intended to facilitate the commercial use
-of the Program, the Contributor who includes the Program in a commercial
-product offering should do so in a manner which does not create potential
-liability for other Contributors. Therefore, if a Contributor includes the
-Program in a commercial product offering, such Contributor (&quot;Commercial
-Contributor&quot;) hereby agrees to defend and indemnify every other
-Contributor (&quot;Indemnified Contributor&quot;) against any losses, damages and
-costs (collectively &quot;Losses&quot;) arising from claims, lawsuits and other
-legal actions brought by a third party against the Indemnified Contributor to
-the extent caused by the acts or omissions of such Commercial Contributor in
-connection with its distribution of the Program in a commercial product
-offering. The obligations in this section do not apply to any claims or Losses
-relating to any actual or alleged intellectual property infringement. In order
-to qualify, an Indemnified Contributor must: a) promptly notify the Commercial
-Contributor in writing of such claim, and b) allow the Commercial Contributor
-to control, and cooperate with the Commercial Contributor in, the defense and
-any related settlement negotiations. The Indemnified Contributor may participate
-in any such claim at its own expense.</span> </p>
-
-<p><span style='font-size:10.0pt'>For example, a Contributor might include the
-Program in a commercial product offering, Product X. That Contributor is then a
-Commercial Contributor. If that Commercial Contributor then makes performance
-claims, or offers warranties related to Product X, those performance claims and
-warranties are such Commercial Contributor's responsibility alone. Under this
-section, the Commercial Contributor would have to defend claims against the
-other Contributors related to those performance claims and warranties, and if a
-court requires any other Contributor to pay any damages as a result, the
-Commercial Contributor must pay those damages.</span> </p>
-
-<p><b><span style='font-size:10.0pt'>5. NO WARRANTY</span></b> </p>
-
-<p><span style='font-size:10.0pt'>EXCEPT AS EXPRESSLY SET FORTH IN THIS
-AGREEMENT, THE PROGRAM IS PROVIDED ON AN &quot;AS IS&quot; BASIS, WITHOUT
-WARRANTIES OR CONDITIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED INCLUDING,
-WITHOUT LIMITATION, ANY WARRANTIES OR CONDITIONS OF TITLE, NON-INFRINGEMENT,
-MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. Each Recipient is solely
-responsible for determining the appropriateness of using and distributing the
-Program and assumes all risks associated with its exercise of rights under this
-Agreement , including but not limited to the risks and costs of program errors,
-compliance with applicable laws, damage to or loss of data, programs or
-equipment, and unavailability or interruption of operations. </span></p>
-
-<p><b><span style='font-size:10.0pt'>6. DISCLAIMER OF LIABILITY</span></b> </p>
-
-<p><span style='font-size:10.0pt'>EXCEPT AS EXPRESSLY SET FORTH IN THIS
-AGREEMENT, NEITHER RECIPIENT NOR ANY CONTRIBUTORS SHALL HAVE ANY LIABILITY FOR
-ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
-(INCLUDING WITHOUT LIMITATION LOST PROFITS), HOWEVER CAUSED AND ON ANY THEORY
-OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
-NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OR DISTRIBUTION OF
-THE PROGRAM OR THE EXERCISE OF ANY RIGHTS GRANTED HEREUNDER, EVEN IF ADVISED OF
-THE POSSIBILITY OF SUCH DAMAGES.</span> </p>
-
-<p><b><span style='font-size:10.0pt'>7. GENERAL</span></b> </p>
-
-<p><span style='font-size:10.0pt'>If any provision of this Agreement is invalid
-or unenforceable under applicable law, it shall not affect the validity or
-enforceability of the remainder of the terms of this Agreement, and without
-further action by the parties hereto, such provision shall be reformed to the
-minimum extent necessary to make such provision valid and enforceable.</span> </p>
-
-<p><span style='font-size:10.0pt'>If Recipient institutes patent litigation
-against any entity (including a cross-claim or counterclaim in a lawsuit)
-alleging that the Program itself (excluding combinations of the Program with
-other software or hardware) infringes such Recipient's patent(s), then such
-Recipient's rights granted under Section 2(b) shall terminate as of the date
-such litigation is filed. </span></p>
-
-<p><span style='font-size:10.0pt'>All Recipient's rights under this Agreement
-shall terminate if it fails to comply with any of the material terms or
-conditions of this Agreement and does not cure such failure in a reasonable
-period of time after becoming aware of such noncompliance. If all Recipient's
-rights under this Agreement terminate, Recipient agrees to cease use and
-distribution of the Program as soon as reasonably practicable. However,
-Recipient's obligations under this Agreement and any licenses granted by
-Recipient relating to the Program shall continue and survive. </span></p>
-
-<p><span style='font-size:10.0pt'>Everyone is permitted to copy and distribute
-copies of this Agreement, but in order to avoid inconsistency the Agreement is
-copyrighted and may only be modified in the following manner. The Agreement
-Steward reserves the right to publish new versions (including revisions) of
-this Agreement from time to time. No one other than the Agreement Steward has
-the right to modify this Agreement. The Eclipse Foundation is the initial
-Agreement Steward. The Eclipse Foundation may assign the responsibility to
-serve as the Agreement Steward to a suitable separate entity. Each new version
-of the Agreement will be given a distinguishing version number. The Program
-(including Contributions) may always be distributed subject to the version of
-the Agreement under which it was received. In addition, after a new version of
-the Agreement is published, Contributor may elect to distribute the Program
-(including its Contributions) under the new version. Except as expressly stated
-in Sections 2(a) and 2(b) above, Recipient receives no rights or licenses to
-the intellectual property of any Contributor under this Agreement, whether
-expressly, by implication, estoppel or otherwise. All rights in the Program not
-expressly granted under this Agreement are reserved.</span> </p>
-
-<p><span style='font-size:10.0pt'>This Agreement is governed by the laws of the
-State of New York and the intellectual property laws of the United States of
-America. No party to this Agreement will bring a legal action under this
-Agreement more than one year after the cause of action arose. Each party waives
-its rights to a jury trial in any resulting litigation.</span> </p>
-
-<p class=MsoNormal><![if !supportEmptyParas]>&nbsp;<![endif]><o:p></o:p></p>
-
-</div>
-
-</body>
-
-</html>
\ No newline at end of file
diff --git a/assembly/features/org.eclipse.jpt.patch/feature.properties b/assembly/features/org.eclipse.jpt.patch/feature.properties
deleted file mode 100644
index a8457ea..0000000
--- a/assembly/features/org.eclipse.jpt.patch/feature.properties
+++ /dev/null
@@ -1,143 +0,0 @@
-###############################################################################
-# Copyright (c) 2006 Oracle.
-# All rights reserved. This program and the accompanying materials
-# are made available under the terms of the Eclipse Public License v1.0
-# which accompanies this distribution, and is available at
-# http://www.eclipse.org/legal/epl-v10.html
-# 
-# Contributors:
-#     Oracle - initial API and implementation
-###############################################################################
-
-# "featureName" property - name of the feature
-featureName=Java Persistence Tools (JTP) Patches
-
-# "providerName" property - name of the company that provides the feature
-providerName=Eclipse.org
-
-# "updateSiteName" property - label for the update site
-updateSiteName=The Eclipse Web Tools Platform (WTP) Project update site
-
-# "description" property - description of the feature
-description=\
-Patch(s) for Java Persistence API (JPA) Tools. \n\
-See bug 220297 (https://bugs.eclipse.org/bugs/220297) Entity generation creates Embeddables with compile errors in some cases \n\
-
-
-# "copyright" property - text of the "Feature Update Copyright"
-copyright=\
-Copyright (c) 2006-08 Oracle Corporation.\n\
-All rights reserved. This program and the accompanying materials\n\
-are made available under the terms of the Eclipse Public License v1.0\n\
-which accompanies this distribution, and is available at\n\
-http://www.eclipse.org/legal/epl-v10.html\n\
-\n\
-Contributors:\n\
-    Oracle - initial API and implementation\n
-################ end of copyright property ####################################
-
-# "licenseURL" property - URL of the "Feature License"
-# do not translate value - just change to point to a locale-specific HTML page
-licenseURL=license.html
-
-# "license" property - text of the "Feature Update License"
-# should be plain text version of license agreement pointed to be "licenseURL"
-license=\
-ECLIPSE FOUNDATION SOFTWARE USER AGREEMENT\n\
-June 06, 2007\n\
-\n\
-Usage Of Content\n\
-\n\
-THE ECLIPSE FOUNDATION MAKES AVAILABLE SOFTWARE, DOCUMENTATION, INFORMATION AND/OR\n\
-OTHER MATERIALS FOR OPEN SOURCE PROJECTS (COLLECTIVELY "CONTENT").\n\
-USE OF THE CONTENT IS GOVERNED BY THE TERMS AND CONDITIONS OF THIS\n\
-AGREEMENT AND/OR THE TERMS AND CONDITIONS OF LICENSE AGREEMENTS OR\n\
-NOTICES INDICATED OR REFERENCED BELOW. BY USING THE CONTENT, YOU\n\
-AGREE THAT YOUR USE OF THE CONTENT IS GOVERNED BY THIS AGREEMENT\n\
-AND/OR THE TERMS AND CONDITIONS OF ANY APPLICABLE LICENSE AGREEMENTS\n\
-OR NOTICES INDICATED OR REFERENCED BELOW. IF YOU DO NOT AGREE TO THE\n\
-TERMS AND CONDITIONS OF THIS AGREEMENT AND THE TERMS AND CONDITIONS\n\
-OF ANY APPLICABLE LICENSE AGREEMENTS OR NOTICES INDICATED OR REFERENCED\n\
-BELOW, THEN YOU MAY NOT USE THE CONTENT.\n\
-\n\
-Applicable Licenses\n\
-\n\
-Unless otherwise indicated, all Content made available by the Eclipse Foundation\n\
-is provided to you under the terms and conditions of the Eclipse Public\n\
-License Version 1.0 ("EPL"). A copy of the EPL is provided with this\n\
-Content and is also available at http://www.eclipse.org/legal/epl-v10.html.\n\
-For purposes of the EPL, "Program" will mean the Content.\n\
-\n\
-Content includes, but is not limited to, source code, object code,\n\
-documentation and other files maintained in the Eclipse.org CVS\n\
-repository ("Repository") in CVS modules ("Modules") and made available\n\
-as downloadable archives ("Downloads").\n\
-\n\
-   - Content may be structured and packaged into modules to facilitate delivering,\n\
-     extending, and upgrading the Content. Typical modules may include plug-ins ("Plug-ins"),\n\
-     plug-in fragments ("Fragments"), and features ("Features").\n\
-   - Each Plug-in or Fragment may be packaged as a sub-directory or JAR (Java? ARchive)\n\
-     in a directory named "plugins".\n\
-   - A Feature is a bundle of one or more Plug-ins and/or Fragments and associated material.\n\
-     Each Feature may be packaged as a sub-directory in a directory named "features".\n\
-     Within a Feature, files named "feature.xml" may contain a list of the names and version\n\
-     numbers of the Plug-ins and/or Fragments associated with that Feature.\n\
-   - Features may also include other Features ("Included Features"). Within a Feature, files\n\
-     named "feature.xml" may contain a list of the names and version numbers of Included Features.\n\
-\n\
-Features may also include other Features ("Included Features"). Files named\n\
-"feature.xml" may contain a list of the names and version numbers of\n\
-Included Features.\n\
-\n\
-The terms and conditions governing Plug-ins and Fragments should be\n\
-contained in files named "about.html" ("Abouts"). The terms and\n\
-conditions governing Features and Included Features should be contained\n\
-in files named "license.html" ("Feature Licenses"). Abouts and Feature\n\
-Licenses may be located in any directory of a Download or Module\n\
-including, but not limited to the following locations:\n\
-\n\
-   - The top-level (root) directory\n\
-   - Plug-in and Fragment directories\n\
-   - Inside Plug-ins and Fragments packaged as JARs\n\
-   - Sub-directories of the directory named "src" of certain Plug-ins\n\
-   - Feature directories\n\
-\n\
-Note: if a Feature made available by the Eclipse Foundation is installed using the\n\
-Eclipse Update Manager, you must agree to a license ("Feature Update\n\
-License") during the installation process. If the Feature contains\n\
-Included Features, the Feature Update License should either provide you\n\
-with the terms and conditions governing the Included Features or inform\n\
-you where you can locate them. Feature Update Licenses may be found in\n\
-the "license" property of files named "feature.properties". Such Abouts,\n\
-Feature Licenses and Feature Update Licenses contain the terms and\n\
-conditions (or references to such terms and conditions) that govern your\n\
-use of the associated Content in that directory.\n\
-\n\
-THE ABOUTS, FEATURE LICENSES AND FEATURE UPDATE LICENSES MAY REFER\n\
-TO THE EPL OR OTHER LICENSE AGREEMENTS, NOTICES OR TERMS AND CONDITIONS.\n\
-SOME OF THESE OTHER LICENSE AGREEMENTS MAY INCLUDE (BUT ARE NOT LIMITED TO):\n\
-\n\
-    - Common Public License Version 1.0 (available at http://www.eclipse.org/legal/cpl-v10.html)\n\
-    - Apache Software License 1.1 (available at http://www.apache.org/licenses/LICENSE)\n\
-    - Apache Software License 2.0 (available at http://www.apache.org/licenses/LICENSE-2.0)\n\
-    - IBM Public License 1.0 (available at http://oss.software.ibm.com/developerworks/opensource/license10.html)\n\
-    - Metro Link Public License 1.00 (available at http://www.opengroup.org/openmotif/supporters/metrolink/license.html)\n\
-    - Mozilla Public License Version 1.1 (available at http://www.mozilla.org/MPL/MPL-1.1.html)\n\
-    - Common Development and Distribution License (CDDL) Version 1.0 (available at http://www.sun.com/cddl/cddl.html)\n\
-\n\
-IT IS YOUR OBLIGATION TO READ AND ACCEPT ALL SUCH TERMS AND CONDITIONS PRIOR\n\
-TO USE OF THE CONTENT. If no About, Feature License or Feature Update License\n\
-is provided, please contact the Eclipse Foundation to determine what terms and conditions\n\
-govern that particular Content.\n\
-\n\
-Cryptography\n\
-\n\
-Content may contain encryption software. The country in which you are\n\
-currently may have restrictions on the import, possession, and use,\n\
-and/or re-export to another country, of encryption software. BEFORE\n\
-using any encryption software, please check the country's laws,\n\
-regulations and policies concerning the import, possession, or use,\n\
-and re-export of encryption software, to see if this is permitted.\n\
-\n\
-Java and all Java-based trademarks are trademarks of Sun Microsystems, Inc. in the United States, other countries, or both.\n
-########### end of license property ##########################################
diff --git a/assembly/features/org.eclipse.jpt.patch/feature.xml b/assembly/features/org.eclipse.jpt.patch/feature.xml
deleted file mode 100644
index 4fae92b..0000000
--- a/assembly/features/org.eclipse.jpt.patch/feature.xml
+++ /dev/null
@@ -1,35 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<feature
-      id="org.eclipse.jpt.patch"
-      label="%featureName"
-      version="1.0.2.qualifier"
-      provider-name="%providerName">
-
-   <description url="http://download.eclipse.org/webtools/patches/">
-      %description
-   </description>
-
-   <copyright>
-      %copyright
-   </copyright>
-
-   <license url="%licenseURL">
-      %license
-   </license>
-
-   <url>
-      <update label="Web Tools Platform (WTP) Patches" url="http://download.eclipse.org/webtools/patches/"/>
-   </url>
-
-   <requires>
-      <import feature="org.eclipse.jpt.feature" version="1.0.2.v200802140100-77-7_CYQCD2CaLYCHCD" patch="true"/>
-   </requires>
-
-   <plugin
-         id="org.eclipse.jpt.gen"
-         download-size="0"
-         install-size="0"
-         version="0.0.0"
-         unpack="false"/>
-
-</feature>
diff --git a/assembly/features/org.eclipse.jpt.patch/license.html b/assembly/features/org.eclipse.jpt.patch/license.html
deleted file mode 100644
index 2347060..0000000
--- a/assembly/features/org.eclipse.jpt.patch/license.html
+++ /dev/null
@@ -1,93 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3c.org/TR/1999/REC-html401-19991224/loose.dtd">
-<!-- saved from url=(0044)http://www.eclipse.org/legal/epl/notice.html -->
-<HTML><HEAD><TITLE>Eclipse.org Software User Agreement</TITLE>
-<META http-equiv=Content-Type content="text/html; charset=iso-8859-1">
-<META content="MSHTML 6.00.2800.1479" name=GENERATOR></HEAD>
-<BODY lang=EN-US vLink=purple link=blue>
-<H2>Eclipse Foundation Software User Agreement</H2>
-<P>January 28, 2005</P>
-<H3>Usage Of Content</H3>
-<P>THE ECLIPSE FOUNDATION MAKES AVAILABLE SOFTWARE, DOCUMENTATION, INFORMATION 
-AND/OR OTHER MATERIALS FOR OPEN SOURCE PROJECTS (COLLECTIVELY "CONTENT"). USE OF 
-THE CONTENT IS GOVERNED BY THE TERMS AND CONDITIONS OF THIS AGREEMENT AND/OR THE 
-TERMS AND CONDITIONS OF LICENSE AGREEMENTS OR NOTICES INDICATED OR REFERENCED 
-BELOW. BY USING THE CONTENT, YOU AGREE THAT YOUR USE OF THE CONTENT IS GOVERNED 
-BY THIS AGREEMENT AND/OR THE TERMS AND CONDITIONS OF ANY APPLICABLE LICENSE 
-AGREEMENTS OR NOTICES INDICATED OR REFERENCED BELOW. IF YOU DO NOT AGREE TO THE 
-TERMS AND CONDITIONS OF THIS AGREEMENT AND THE TERMS AND CONDITIONS OF ANY 
-APPLICABLE LICENSE AGREEMENTS OR NOTICES INDICATED OR REFERENCED BELOW, THEN YOU 
-MAY NOT USE THE CONTENT.</P>
-<H3>Applicable Licenses</H3>
-<P>Unless otherwise indicated, all Content made available by the Eclipse 
-Foundation is provided to you under the terms and conditions of the Eclipse 
-Public License Version 1.0 ("EPL"). A copy of the EPL is provided with this 
-Content and is also available at <A 
-href="http://www.eclipse.org/legal/epl-v10.html">http://www.eclipse.org/legal/epl-v10.html</A>. 
-For purposes of the EPL, "Program" will mean the Content.</P>
-<P>Content includes, but is not limited to, source code, object code, 
-documentation and other files maintained in the Eclipse.org CVS repository 
-("Repository") in CVS modules ("Modules") and made available as downloadable 
-archives ("Downloads").</P>
-<P>Content may be apportioned into plug-ins ("Plug-ins"), plug-in fragments 
-("Fragments"), and features ("Features"). A Feature is a bundle of one or more 
-Plug-ins and/or Fragments and associated material. Files named "feature.xml" may 
-contain a list of the names and version numbers of the Plug-ins and/or Fragments 
-associated with a Feature. Plug-ins and Fragments are located in directories 
-named "plugins" and Features are located in directories named "features".</P>
-<P>Features may also include other Features ("Included Features"). Files named 
-"feature.xml" may contain a list of the names and version numbers of Included 
-Features.</P>
-<P>The terms and conditions governing Plug-ins and Fragments should be contained 
-in files named "about.html" ("Abouts"). The terms and conditions governing 
-Features and Included Features should be contained in files named "license.html" 
-("Feature Licenses"). Abouts and Feature Licenses may be located in any 
-directory of a Download or Module including, but not limited to the following 
-locations:</P>
-<UL>
-  <LI>The top-level (root) directory 
-  <LI>Plug-in and Fragment directories 
-  <LI>Subdirectories of the directory named "src" of certain Plug-ins 
-  <LI>Feature directories </LI></UL>
-<P>Note: if a Feature made available by the Eclipse Foundation is installed 
-using the Eclipse Update Manager, you must agree to a license ("Feature Update 
-License") during the installation process. If the Feature contains Included 
-Features, the Feature Update License should either provide you with the terms 
-and conditions governing the Included Features or inform you where you can 
-locate them. Feature Update Licenses may be found in the "license" property of 
-files named "feature.properties". Such Abouts, Feature Licenses and Feature 
-Update Licenses contain the terms and conditions (or references to such terms 
-and conditions) that govern your use of the associated Content in that 
-directory.</P>
-<P>THE ABOUTS, FEATURE LICENSES AND FEATURE UPDATE LICENSES MAY REFER TO THE EPL 
-OR OTHER LICENSE AGREEMENTS, NOTICES OR TERMS AND CONDITIONS. SOME OF THESE 
-OTHER LICENSE AGREEMENTS MAY INCLUDE (BUT ARE NOT LIMITED TO):</P>
-<UL>
-  <LI>Common Public License Version 1.0 (available at <A 
-  href="http://www.eclipse.org/legal/cpl-v10.html">http://www.eclipse.org/legal/cpl-v10.html</A>) 
-
-  <LI>Apache Software License 1.1 (available at <A 
-  href="http://www.apache.org/licenses/LICENSE">http://www.apache.org/licenses/LICENSE</A>) 
-
-  <LI>Apache Software License 2.0 (available at <A 
-  href="http://www.apache.org/licenses/LICENSE-2.0">http://www.apache.org/licenses/LICENSE-2.0</A>) 
-
-  <LI>IBM Public License 1.0 (available at <A 
-  href="http://oss.software.ibm.com/developerworks/opensource/license10.html">http://oss.software.ibm.com/developerworks/opensource/license10.html</A>) 
-
-  <LI>Metro Link Public License 1.00 (available at <A 
-  href="http://www.opengroup.org/openmotif/supporters/metrolink/license.html">http://www.opengroup.org/openmotif/supporters/metrolink/license.html</A>) 
-
-  <LI>Mozilla Public License Version 1.1 (available at <A 
-  href="http://www.mozilla.org/MPL/MPL-1.1.html">http://www.mozilla.org/MPL/MPL-1.1.html</A>) 
-  </LI></UL>
-<P>IT IS YOUR OBLIGATION TO READ AND ACCEPT ALL SUCH TERMS AND CONDITIONS PRIOR 
-TO USE OF THE CONTENT. If no About, Feature License or Feature Update License is 
-provided, please contact the Eclipse Foundation to determine what terms and 
-conditions govern that particular Content.</P>
-<H3>Cryptography</H3>
-<P>Content may contain encryption software. The country in which you are 
-currently may have restrictions on the import, possession, and use, and/or 
-re-export to another country, of encryption software. BEFORE using any 
-encryption software, please check the country's laws, regulations and policies 
-concerning the import, possession, or use, and re-export of encryption software, 
-to see if this is permitted.</P></BODY></HTML>
diff --git a/assembly/features/org.eclipse.jpt.sdk/.cvsignore b/assembly/features/org.eclipse.jpt.sdk/.cvsignore
deleted file mode 100644
index bc2abf7..0000000
--- a/assembly/features/org.eclipse.jpt.sdk/.cvsignore
+++ /dev/null
@@ -1,4 +0,0 @@
-*.bin.dist.zip
-build.xml
-features
-plugins
diff --git a/assembly/features/org.eclipse.jpt.sdk/.project b/assembly/features/org.eclipse.jpt.sdk/.project
deleted file mode 100644
index 821d453..0000000
--- a/assembly/features/org.eclipse.jpt.sdk/.project
+++ /dev/null
@@ -1,17 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<projectDescription>
-	<name>org.eclipse.jpt.sdk</name>
-	<comment></comment>
-	<projects>
-	</projects>
-	<buildSpec>
-		<buildCommand>
-			<name>org.eclipse.pde.FeatureBuilder</name>
-			<arguments>
-			</arguments>
-		</buildCommand>
-	</buildSpec>
-	<natures>
-		<nature>org.eclipse.pde.FeatureNature</nature>
-	</natures>
-</projectDescription>
diff --git a/assembly/features/org.eclipse.jpt.sdk/build.properties b/assembly/features/org.eclipse.jpt.sdk/build.properties
deleted file mode 100644
index 7200939..0000000
--- a/assembly/features/org.eclipse.jpt.sdk/build.properties
+++ /dev/null
@@ -1,15 +0,0 @@
-###############################################################################
-# Copyright (c) 2006 Oracle.
-# All rights reserved. This program and the accompanying materials
-# are made available under the terms of the Eclipse Public License v1.0
-# which accompanies this distribution, and is available at
-# http://www.eclipse.org/legal/epl-v10.html
-# 
-# Contributors:
-#     Oracle. - initial API and implementation
-###############################################################################
-bin.includes = feature.xml,\
-               eclipse_update_120.jpg,\
-               epl-v10.html,\
-               license.html,\
-               feature.properties
diff --git a/assembly/features/org.eclipse.jpt.sdk/eclipse_update_120.jpg b/assembly/features/org.eclipse.jpt.sdk/eclipse_update_120.jpg
deleted file mode 100644
index bfdf708..0000000
--- a/assembly/features/org.eclipse.jpt.sdk/eclipse_update_120.jpg
+++ /dev/null
Binary files differ
diff --git a/assembly/features/org.eclipse.jpt.sdk/epl-v10.html b/assembly/features/org.eclipse.jpt.sdk/epl-v10.html
deleted file mode 100644
index ed4b196..0000000
--- a/assembly/features/org.eclipse.jpt.sdk/epl-v10.html
+++ /dev/null
@@ -1,328 +0,0 @@
-<html xmlns:o="urn:schemas-microsoft-com:office:office"
-xmlns:w="urn:schemas-microsoft-com:office:word"
-xmlns="http://www.w3.org/TR/REC-html40">
-
-<head>
-<meta http-equiv=Content-Type content="text/html; charset=windows-1252">
-<meta name=ProgId content=Word.Document>
-<meta name=Generator content="Microsoft Word 9">
-<meta name=Originator content="Microsoft Word 9">
-<link rel=File-List
-href="./Eclipse%20EPL%202003_11_10%20Final_files/filelist.xml">
-<title>Eclipse Public License - Version 1.0</title>
-<!--[if gte mso 9]><xml>
- <o:DocumentProperties>
-  <o:Revision>2</o:Revision>
-  <o:TotalTime>3</o:TotalTime>
-  <o:Created>2004-03-05T23:03:00Z</o:Created>
-  <o:LastSaved>2004-03-05T23:03:00Z</o:LastSaved>
-  <o:Pages>4</o:Pages>
-  <o:Words>1626</o:Words>
-  <o:Characters>9270</o:Characters>
-   <o:Lines>77</o:Lines>
-  <o:Paragraphs>18</o:Paragraphs>
-  <o:CharactersWithSpaces>11384</o:CharactersWithSpaces>
-  <o:Version>9.4402</o:Version>
- </o:DocumentProperties>
-</xml><![endif]--><!--[if gte mso 9]><xml>
- <w:WordDocument>
-  <w:TrackRevisions/>
- </w:WordDocument>
-</xml><![endif]-->
-<style>
-<!--
- /* Font Definitions */
-@font-face
-	{font-family:Tahoma;
-	panose-1:2 11 6 4 3 5 4 4 2 4;
-	mso-font-charset:0;
-	mso-generic-font-family:swiss;
-	mso-font-pitch:variable;
-	mso-font-signature:553679495 -2147483648 8 0 66047 0;}
- /* Style Definitions */
-p.MsoNormal, li.MsoNormal, div.MsoNormal
-	{mso-style-parent:"";
-	margin:0in;
-	margin-bottom:.0001pt;
-	mso-pagination:widow-orphan;
-	font-size:12.0pt;
-	font-family:"Times New Roman";
-	mso-fareast-font-family:"Times New Roman";}
-p
-	{margin-right:0in;
-	mso-margin-top-alt:auto;
-	mso-margin-bottom-alt:auto;
-	margin-left:0in;
-	mso-pagination:widow-orphan;
-	font-size:12.0pt;
-	font-family:"Times New Roman";
-	mso-fareast-font-family:"Times New Roman";}
-p.BalloonText, li.BalloonText, div.BalloonText
-	{mso-style-name:"Balloon Text";
-	margin:0in;
-	margin-bottom:.0001pt;
-	mso-pagination:widow-orphan;
-	font-size:8.0pt;
-	font-family:Tahoma;
-	mso-fareast-font-family:"Times New Roman";}
-@page Section1
-	{size:8.5in 11.0in;
-	margin:1.0in 1.25in 1.0in 1.25in;
-	mso-header-margin:.5in;
-	mso-footer-margin:.5in;
-	mso-paper-source:0;}
-div.Section1
-	{page:Section1;}
--->
-</style>
-</head>
-
-<body lang=EN-US style='tab-interval:.5in'>
-
-<div class=Section1>
-
-<p align=center style='text-align:center'><b>Eclipse Public License - v 1.0</b>
-</p>
-
-<p><span style='font-size:10.0pt'>THE ACCOMPANYING PROGRAM IS PROVIDED UNDER
-THE TERMS OF THIS ECLIPSE PUBLIC LICENSE (&quot;AGREEMENT&quot;). ANY USE,
-REPRODUCTION OR DISTRIBUTION OF THE PROGRAM CONSTITUTES RECIPIENT'S ACCEPTANCE
-OF THIS AGREEMENT.</span> </p>
-
-<p><b><span style='font-size:10.0pt'>1. DEFINITIONS</span></b> </p>
-
-<p><span style='font-size:10.0pt'>&quot;Contribution&quot; means:</span> </p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>a)
-in the case of the initial Contributor, the initial code and documentation
-distributed under this Agreement, and<br clear=left>
-b) in the case of each subsequent Contributor:</span></p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>i)
-changes to the Program, and</span></p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>ii)
-additions to the Program;</span></p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>where
-such changes and/or additions to the Program originate from and are distributed
-by that particular Contributor. A Contribution 'originates' from a Contributor
-if it was added to the Program by such Contributor itself or anyone acting on
-such Contributor's behalf. Contributions do not include additions to the
-Program which: (i) are separate modules of software distributed in conjunction
-with the Program under their own license agreement, and (ii) are not derivative
-works of the Program. </span></p>
-
-<p><span style='font-size:10.0pt'>&quot;Contributor&quot; means any person or
-entity that distributes the Program.</span> </p>
-
-<p><span style='font-size:10.0pt'>&quot;Licensed Patents &quot; mean patent
-claims licensable by a Contributor which are necessarily infringed by the use
-or sale of its Contribution alone or when combined with the Program. </span></p>
-
-<p><span style='font-size:10.0pt'>&quot;Program&quot; means the Contributions
-distributed in accordance with this Agreement.</span> </p>
-
-<p><span style='font-size:10.0pt'>&quot;Recipient&quot; means anyone who
-receives the Program under this Agreement, including all Contributors.</span> </p>
-
-<p><b><span style='font-size:10.0pt'>2. GRANT OF RIGHTS</span></b> </p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>a)
-Subject to the terms of this Agreement, each Contributor hereby grants Recipient
-a non-exclusive, worldwide, royalty-free copyright license to<span
-style='color:red'> </span>reproduce, prepare derivative works of, publicly
-display, publicly perform, distribute and sublicense the Contribution of such
-Contributor, if any, and such derivative works, in source code and object code
-form.</span></p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>b)
-Subject to the terms of this Agreement, each Contributor hereby grants
-Recipient a non-exclusive, worldwide,<span style='color:green'> </span>royalty-free
-patent license under Licensed Patents to make, use, sell, offer to sell, import
-and otherwise transfer the Contribution of such Contributor, if any, in source
-code and object code form. This patent license shall apply to the combination
-of the Contribution and the Program if, at the time the Contribution is added
-by the Contributor, such addition of the Contribution causes such combination
-to be covered by the Licensed Patents. The patent license shall not apply to
-any other combinations which include the Contribution. No hardware per se is
-licensed hereunder. </span></p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>c)
-Recipient understands that although each Contributor grants the licenses to its
-Contributions set forth herein, no assurances are provided by any Contributor
-that the Program does not infringe the patent or other intellectual property
-rights of any other entity. Each Contributor disclaims any liability to Recipient
-for claims brought by any other entity based on infringement of intellectual
-property rights or otherwise. As a condition to exercising the rights and
-licenses granted hereunder, each Recipient hereby assumes sole responsibility
-to secure any other intellectual property rights needed, if any. For example,
-if a third party patent license is required to allow Recipient to distribute
-the Program, it is Recipient's responsibility to acquire that license before
-distributing the Program.</span></p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>d)
-Each Contributor represents that to its knowledge it has sufficient copyright
-rights in its Contribution, if any, to grant the copyright license set forth in
-this Agreement. </span></p>
-
-<p><b><span style='font-size:10.0pt'>3. REQUIREMENTS</span></b> </p>
-
-<p><span style='font-size:10.0pt'>A Contributor may choose to distribute the
-Program in object code form under its own license agreement, provided that:</span>
-</p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>a)
-it complies with the terms and conditions of this Agreement; and</span></p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>b)
-its license agreement:</span></p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>i)
-effectively disclaims on behalf of all Contributors all warranties and
-conditions, express and implied, including warranties or conditions of title
-and non-infringement, and implied warranties or conditions of merchantability
-and fitness for a particular purpose; </span></p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>ii)
-effectively excludes on behalf of all Contributors all liability for damages,
-including direct, indirect, special, incidental and consequential damages, such
-as lost profits; </span></p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>iii)
-states that any provisions which differ from this Agreement are offered by that
-Contributor alone and not by any other party; and</span></p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>iv)
-states that source code for the Program is available from such Contributor, and
-informs licensees how to obtain it in a reasonable manner on or through a
-medium customarily used for software exchange.<span style='color:blue'> </span></span></p>
-
-<p><span style='font-size:10.0pt'>When the Program is made available in source
-code form:</span> </p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>a)
-it must be made available under this Agreement; and </span></p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>b) a
-copy of this Agreement must be included with each copy of the Program. </span></p>
-
-<p><span style='font-size:10.0pt'>Contributors may not remove or alter any
-copyright notices contained within the Program. </span></p>
-
-<p><span style='font-size:10.0pt'>Each Contributor must identify itself as the
-originator of its Contribution, if any, in a manner that reasonably allows
-subsequent Recipients to identify the originator of the Contribution. </span></p>
-
-<p><b><span style='font-size:10.0pt'>4. COMMERCIAL DISTRIBUTION</span></b> </p>
-
-<p><span style='font-size:10.0pt'>Commercial distributors of software may
-accept certain responsibilities with respect to end users, business partners
-and the like. While this license is intended to facilitate the commercial use
-of the Program, the Contributor who includes the Program in a commercial
-product offering should do so in a manner which does not create potential
-liability for other Contributors. Therefore, if a Contributor includes the
-Program in a commercial product offering, such Contributor (&quot;Commercial
-Contributor&quot;) hereby agrees to defend and indemnify every other
-Contributor (&quot;Indemnified Contributor&quot;) against any losses, damages and
-costs (collectively &quot;Losses&quot;) arising from claims, lawsuits and other
-legal actions brought by a third party against the Indemnified Contributor to
-the extent caused by the acts or omissions of such Commercial Contributor in
-connection with its distribution of the Program in a commercial product
-offering. The obligations in this section do not apply to any claims or Losses
-relating to any actual or alleged intellectual property infringement. In order
-to qualify, an Indemnified Contributor must: a) promptly notify the Commercial
-Contributor in writing of such claim, and b) allow the Commercial Contributor
-to control, and cooperate with the Commercial Contributor in, the defense and
-any related settlement negotiations. The Indemnified Contributor may participate
-in any such claim at its own expense.</span> </p>
-
-<p><span style='font-size:10.0pt'>For example, a Contributor might include the
-Program in a commercial product offering, Product X. That Contributor is then a
-Commercial Contributor. If that Commercial Contributor then makes performance
-claims, or offers warranties related to Product X, those performance claims and
-warranties are such Commercial Contributor's responsibility alone. Under this
-section, the Commercial Contributor would have to defend claims against the
-other Contributors related to those performance claims and warranties, and if a
-court requires any other Contributor to pay any damages as a result, the
-Commercial Contributor must pay those damages.</span> </p>
-
-<p><b><span style='font-size:10.0pt'>5. NO WARRANTY</span></b> </p>
-
-<p><span style='font-size:10.0pt'>EXCEPT AS EXPRESSLY SET FORTH IN THIS
-AGREEMENT, THE PROGRAM IS PROVIDED ON AN &quot;AS IS&quot; BASIS, WITHOUT
-WARRANTIES OR CONDITIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED INCLUDING,
-WITHOUT LIMITATION, ANY WARRANTIES OR CONDITIONS OF TITLE, NON-INFRINGEMENT,
-MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. Each Recipient is solely
-responsible for determining the appropriateness of using and distributing the
-Program and assumes all risks associated with its exercise of rights under this
-Agreement , including but not limited to the risks and costs of program errors,
-compliance with applicable laws, damage to or loss of data, programs or
-equipment, and unavailability or interruption of operations. </span></p>
-
-<p><b><span style='font-size:10.0pt'>6. DISCLAIMER OF LIABILITY</span></b> </p>
-
-<p><span style='font-size:10.0pt'>EXCEPT AS EXPRESSLY SET FORTH IN THIS
-AGREEMENT, NEITHER RECIPIENT NOR ANY CONTRIBUTORS SHALL HAVE ANY LIABILITY FOR
-ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
-(INCLUDING WITHOUT LIMITATION LOST PROFITS), HOWEVER CAUSED AND ON ANY THEORY
-OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
-NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OR DISTRIBUTION OF
-THE PROGRAM OR THE EXERCISE OF ANY RIGHTS GRANTED HEREUNDER, EVEN IF ADVISED OF
-THE POSSIBILITY OF SUCH DAMAGES.</span> </p>
-
-<p><b><span style='font-size:10.0pt'>7. GENERAL</span></b> </p>
-
-<p><span style='font-size:10.0pt'>If any provision of this Agreement is invalid
-or unenforceable under applicable law, it shall not affect the validity or
-enforceability of the remainder of the terms of this Agreement, and without
-further action by the parties hereto, such provision shall be reformed to the
-minimum extent necessary to make such provision valid and enforceable.</span> </p>
-
-<p><span style='font-size:10.0pt'>If Recipient institutes patent litigation
-against any entity (including a cross-claim or counterclaim in a lawsuit)
-alleging that the Program itself (excluding combinations of the Program with
-other software or hardware) infringes such Recipient's patent(s), then such
-Recipient's rights granted under Section 2(b) shall terminate as of the date
-such litigation is filed. </span></p>
-
-<p><span style='font-size:10.0pt'>All Recipient's rights under this Agreement
-shall terminate if it fails to comply with any of the material terms or
-conditions of this Agreement and does not cure such failure in a reasonable
-period of time after becoming aware of such noncompliance. If all Recipient's
-rights under this Agreement terminate, Recipient agrees to cease use and
-distribution of the Program as soon as reasonably practicable. However,
-Recipient's obligations under this Agreement and any licenses granted by
-Recipient relating to the Program shall continue and survive. </span></p>
-
-<p><span style='font-size:10.0pt'>Everyone is permitted to copy and distribute
-copies of this Agreement, but in order to avoid inconsistency the Agreement is
-copyrighted and may only be modified in the following manner. The Agreement
-Steward reserves the right to publish new versions (including revisions) of
-this Agreement from time to time. No one other than the Agreement Steward has
-the right to modify this Agreement. The Eclipse Foundation is the initial
-Agreement Steward. The Eclipse Foundation may assign the responsibility to
-serve as the Agreement Steward to a suitable separate entity. Each new version
-of the Agreement will be given a distinguishing version number. The Program
-(including Contributions) may always be distributed subject to the version of
-the Agreement under which it was received. In addition, after a new version of
-the Agreement is published, Contributor may elect to distribute the Program
-(including its Contributions) under the new version. Except as expressly stated
-in Sections 2(a) and 2(b) above, Recipient receives no rights or licenses to
-the intellectual property of any Contributor under this Agreement, whether
-expressly, by implication, estoppel or otherwise. All rights in the Program not
-expressly granted under this Agreement are reserved.</span> </p>
-
-<p><span style='font-size:10.0pt'>This Agreement is governed by the laws of the
-State of New York and the intellectual property laws of the United States of
-America. No party to this Agreement will bring a legal action under this
-Agreement more than one year after the cause of action arose. Each party waives
-its rights to a jury trial in any resulting litigation.</span> </p>
-
-<p class=MsoNormal><![if !supportEmptyParas]>&nbsp;<![endif]><o:p></o:p></p>
-
-</div>
-
-</body>
-
-</html>
\ No newline at end of file
diff --git a/assembly/features/org.eclipse.jpt.sdk/feature.properties b/assembly/features/org.eclipse.jpt.sdk/feature.properties
deleted file mode 100644
index f9e4474..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 Tools project SDK
-
-# "providerName" property - name of the company that provides the feature
-providerName=Eclipse.org
-
-# "updateSiteName" property - label for the update site
-updateSiteName=The Eclipse Web Tools Platform (WTP) Project update site
-
-# "description" property - description of the feature
-description=Dali Java Persistence Tools project SDK
-
-# "copyright" property - text of the "Feature Update Copyright"
-copyright=\
-Copyright (c) 2006 Oracle Corporation.\n\
-All rights reserved. This program and the accompanying materials\n\
-are made available under the terms of the Eclipse Public License v1.0\n\
-which accompanies this distribution, and is available at\n\
-http://www.eclipse.org/legal/epl-v10.html\n\
-\n\
-Contributors:\n\
-    Oracle - initial API and implementation\n
-################ end of copyright property ####################################
-
-# "licenseURL" property - URL of the "Feature License"
-# do not translate value - just change to point to a locale-specific HTML page
-licenseURL=license.html
-
-# "license" property - text of the "Feature Update License"
-# should be plain text version of license agreement pointed to be "licenseURL"
-license=\
-ECLIPSE FOUNDATION SOFTWARE USER AGREEMENT\n\
-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 c7f1fe5..0000000
--- a/assembly/features/org.eclipse.jpt.sdk/feature.xml
+++ /dev/null
@@ -1,42 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<feature
-      id="org.eclipse.jpt.sdk"
-      label="%featureName"
-      version="2.1.0.qualifier"
-      provider-name="%providerName"
-      plugin="org.eclipse.jpt"
-      image="eclipse_update_120.jpg">
-
-   <description>
-      %description
-   </description>
-
-   <copyright>
-      %copyright
-   </copyright>
-
-   <license url="license.html">
-      %license
-   </license>
-
-   <url>
-      <update label="%updateSiteName" url="http://download.eclipse.org/webtools/updates"/>
-      <discovery label="Web Tools Platform (WTP) Updates" url="http://download.eclipse.org/webtools/updates"/>
-   </url>
-
-   <includes
-         id="org.eclipse.jpt_sdk.feature"
-         version="0.0.0"/>
-
-   <includes
-         id="org.eclipse.jpt.eclipselink_sdk.feature"
-         version="0.0.0"/>
-
-   <plugin
-         id="org.eclipse.jpt"
-         download-size="0"
-         install-size="0"
-         version="0.0.0"
-         unpack="false"/>
-
-</feature>
diff --git a/assembly/features/org.eclipse.jpt.sdk/license.html b/assembly/features/org.eclipse.jpt.sdk/license.html
deleted file mode 100644
index 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.assembly.feature/.cvsignore b/assembly/features/org.eclipse.jpt.tests.assembly.feature/.cvsignore
deleted file mode 100644
index 2544693..0000000
--- a/assembly/features/org.eclipse.jpt.tests.assembly.feature/.cvsignore
+++ /dev/null
@@ -1,3 +0,0 @@
-*.bin.dist.zip
-build.xml
-org.eclipse.jpt.tests_1.0.0.*
\ No newline at end of file
diff --git a/assembly/features/org.eclipse.jpt.tests.assembly.feature/.project b/assembly/features/org.eclipse.jpt.tests.assembly.feature/.project
deleted file mode 100644
index f34899c..0000000
--- a/assembly/features/org.eclipse.jpt.tests.assembly.feature/.project
+++ /dev/null
@@ -1,17 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<projectDescription>
-	<name>org.eclipse.jpt.tests.assembly.feature</name>
-	<comment></comment>
-	<projects>
-	</projects>
-	<buildSpec>
-		<buildCommand>
-			<name>org.eclipse.pde.FeatureBuilder</name>
-			<arguments>
-			</arguments>
-		</buildCommand>
-	</buildSpec>
-	<natures>
-		<nature>org.eclipse.pde.FeatureNature</nature>
-	</natures>
-</projectDescription>
diff --git a/assembly/features/org.eclipse.jpt.tests.assembly.feature/.settings/org.eclipse.core.resources.prefs b/assembly/features/org.eclipse.jpt.tests.assembly.feature/.settings/org.eclipse.core.resources.prefs
deleted file mode 100644
index 17acb65..0000000
--- a/assembly/features/org.eclipse.jpt.tests.assembly.feature/.settings/org.eclipse.core.resources.prefs
+++ /dev/null
@@ -1,3 +0,0 @@
-#Sun May 27 15:11:05 EDT 2007
-eclipse.preferences.version=1
-encoding/<project>=ISO-8859-1
diff --git a/assembly/features/org.eclipse.jpt.tests.assembly.feature/build.properties b/assembly/features/org.eclipse.jpt.tests.assembly.feature/build.properties
deleted file mode 100644
index 7f47694..0000000
--- a/assembly/features/org.eclipse.jpt.tests.assembly.feature/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.assembly.feature/eclipse_update_120.jpg b/assembly/features/org.eclipse.jpt.tests.assembly.feature/eclipse_update_120.jpg
deleted file mode 100644
index bfdf708..0000000
--- a/assembly/features/org.eclipse.jpt.tests.assembly.feature/eclipse_update_120.jpg
+++ /dev/null
Binary files differ
diff --git a/assembly/features/org.eclipse.jpt.tests.assembly.feature/epl-v10.html b/assembly/features/org.eclipse.jpt.tests.assembly.feature/epl-v10.html
deleted file mode 100644
index ed4b196..0000000
--- a/assembly/features/org.eclipse.jpt.tests.assembly.feature/epl-v10.html
+++ /dev/null
@@ -1,328 +0,0 @@
-<html xmlns:o="urn:schemas-microsoft-com:office:office"
-xmlns:w="urn:schemas-microsoft-com:office:word"
-xmlns="http://www.w3.org/TR/REC-html40">
-
-<head>
-<meta http-equiv=Content-Type content="text/html; charset=windows-1252">
-<meta name=ProgId content=Word.Document>
-<meta name=Generator content="Microsoft Word 9">
-<meta name=Originator content="Microsoft Word 9">
-<link rel=File-List
-href="./Eclipse%20EPL%202003_11_10%20Final_files/filelist.xml">
-<title>Eclipse Public License - Version 1.0</title>
-<!--[if gte mso 9]><xml>
- <o:DocumentProperties>
-  <o:Revision>2</o:Revision>
-  <o:TotalTime>3</o:TotalTime>
-  <o:Created>2004-03-05T23:03:00Z</o:Created>
-  <o:LastSaved>2004-03-05T23:03:00Z</o:LastSaved>
-  <o:Pages>4</o:Pages>
-  <o:Words>1626</o:Words>
-  <o:Characters>9270</o:Characters>
-   <o:Lines>77</o:Lines>
-  <o:Paragraphs>18</o:Paragraphs>
-  <o:CharactersWithSpaces>11384</o:CharactersWithSpaces>
-  <o:Version>9.4402</o:Version>
- </o:DocumentProperties>
-</xml><![endif]--><!--[if gte mso 9]><xml>
- <w:WordDocument>
-  <w:TrackRevisions/>
- </w:WordDocument>
-</xml><![endif]-->
-<style>
-<!--
- /* Font Definitions */
-@font-face
-	{font-family:Tahoma;
-	panose-1:2 11 6 4 3 5 4 4 2 4;
-	mso-font-charset:0;
-	mso-generic-font-family:swiss;
-	mso-font-pitch:variable;
-	mso-font-signature:553679495 -2147483648 8 0 66047 0;}
- /* Style Definitions */
-p.MsoNormal, li.MsoNormal, div.MsoNormal
-	{mso-style-parent:"";
-	margin:0in;
-	margin-bottom:.0001pt;
-	mso-pagination:widow-orphan;
-	font-size:12.0pt;
-	font-family:"Times New Roman";
-	mso-fareast-font-family:"Times New Roman";}
-p
-	{margin-right:0in;
-	mso-margin-top-alt:auto;
-	mso-margin-bottom-alt:auto;
-	margin-left:0in;
-	mso-pagination:widow-orphan;
-	font-size:12.0pt;
-	font-family:"Times New Roman";
-	mso-fareast-font-family:"Times New Roman";}
-p.BalloonText, li.BalloonText, div.BalloonText
-	{mso-style-name:"Balloon Text";
-	margin:0in;
-	margin-bottom:.0001pt;
-	mso-pagination:widow-orphan;
-	font-size:8.0pt;
-	font-family:Tahoma;
-	mso-fareast-font-family:"Times New Roman";}
-@page Section1
-	{size:8.5in 11.0in;
-	margin:1.0in 1.25in 1.0in 1.25in;
-	mso-header-margin:.5in;
-	mso-footer-margin:.5in;
-	mso-paper-source:0;}
-div.Section1
-	{page:Section1;}
--->
-</style>
-</head>
-
-<body lang=EN-US style='tab-interval:.5in'>
-
-<div class=Section1>
-
-<p align=center style='text-align:center'><b>Eclipse Public License - v 1.0</b>
-</p>
-
-<p><span style='font-size:10.0pt'>THE ACCOMPANYING PROGRAM IS PROVIDED UNDER
-THE TERMS OF THIS ECLIPSE PUBLIC LICENSE (&quot;AGREEMENT&quot;). ANY USE,
-REPRODUCTION OR DISTRIBUTION OF THE PROGRAM CONSTITUTES RECIPIENT'S ACCEPTANCE
-OF THIS AGREEMENT.</span> </p>
-
-<p><b><span style='font-size:10.0pt'>1. DEFINITIONS</span></b> </p>
-
-<p><span style='font-size:10.0pt'>&quot;Contribution&quot; means:</span> </p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>a)
-in the case of the initial Contributor, the initial code and documentation
-distributed under this Agreement, and<br clear=left>
-b) in the case of each subsequent Contributor:</span></p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>i)
-changes to the Program, and</span></p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>ii)
-additions to the Program;</span></p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>where
-such changes and/or additions to the Program originate from and are distributed
-by that particular Contributor. A Contribution 'originates' from a Contributor
-if it was added to the Program by such Contributor itself or anyone acting on
-such Contributor's behalf. Contributions do not include additions to the
-Program which: (i) are separate modules of software distributed in conjunction
-with the Program under their own license agreement, and (ii) are not derivative
-works of the Program. </span></p>
-
-<p><span style='font-size:10.0pt'>&quot;Contributor&quot; means any person or
-entity that distributes the Program.</span> </p>
-
-<p><span style='font-size:10.0pt'>&quot;Licensed Patents &quot; mean patent
-claims licensable by a Contributor which are necessarily infringed by the use
-or sale of its Contribution alone or when combined with the Program. </span></p>
-
-<p><span style='font-size:10.0pt'>&quot;Program&quot; means the Contributions
-distributed in accordance with this Agreement.</span> </p>
-
-<p><span style='font-size:10.0pt'>&quot;Recipient&quot; means anyone who
-receives the Program under this Agreement, including all Contributors.</span> </p>
-
-<p><b><span style='font-size:10.0pt'>2. GRANT OF RIGHTS</span></b> </p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>a)
-Subject to the terms of this Agreement, each Contributor hereby grants Recipient
-a non-exclusive, worldwide, royalty-free copyright license to<span
-style='color:red'> </span>reproduce, prepare derivative works of, publicly
-display, publicly perform, distribute and sublicense the Contribution of such
-Contributor, if any, and such derivative works, in source code and object code
-form.</span></p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>b)
-Subject to the terms of this Agreement, each Contributor hereby grants
-Recipient a non-exclusive, worldwide,<span style='color:green'> </span>royalty-free
-patent license under Licensed Patents to make, use, sell, offer to sell, import
-and otherwise transfer the Contribution of such Contributor, if any, in source
-code and object code form. This patent license shall apply to the combination
-of the Contribution and the Program if, at the time the Contribution is added
-by the Contributor, such addition of the Contribution causes such combination
-to be covered by the Licensed Patents. The patent license shall not apply to
-any other combinations which include the Contribution. No hardware per se is
-licensed hereunder. </span></p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>c)
-Recipient understands that although each Contributor grants the licenses to its
-Contributions set forth herein, no assurances are provided by any Contributor
-that the Program does not infringe the patent or other intellectual property
-rights of any other entity. Each Contributor disclaims any liability to Recipient
-for claims brought by any other entity based on infringement of intellectual
-property rights or otherwise. As a condition to exercising the rights and
-licenses granted hereunder, each Recipient hereby assumes sole responsibility
-to secure any other intellectual property rights needed, if any. For example,
-if a third party patent license is required to allow Recipient to distribute
-the Program, it is Recipient's responsibility to acquire that license before
-distributing the Program.</span></p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>d)
-Each Contributor represents that to its knowledge it has sufficient copyright
-rights in its Contribution, if any, to grant the copyright license set forth in
-this Agreement. </span></p>
-
-<p><b><span style='font-size:10.0pt'>3. REQUIREMENTS</span></b> </p>
-
-<p><span style='font-size:10.0pt'>A Contributor may choose to distribute the
-Program in object code form under its own license agreement, provided that:</span>
-</p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>a)
-it complies with the terms and conditions of this Agreement; and</span></p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>b)
-its license agreement:</span></p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>i)
-effectively disclaims on behalf of all Contributors all warranties and
-conditions, express and implied, including warranties or conditions of title
-and non-infringement, and implied warranties or conditions of merchantability
-and fitness for a particular purpose; </span></p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>ii)
-effectively excludes on behalf of all Contributors all liability for damages,
-including direct, indirect, special, incidental and consequential damages, such
-as lost profits; </span></p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>iii)
-states that any provisions which differ from this Agreement are offered by that
-Contributor alone and not by any other party; and</span></p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>iv)
-states that source code for the Program is available from such Contributor, and
-informs licensees how to obtain it in a reasonable manner on or through a
-medium customarily used for software exchange.<span style='color:blue'> </span></span></p>
-
-<p><span style='font-size:10.0pt'>When the Program is made available in source
-code form:</span> </p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>a)
-it must be made available under this Agreement; and </span></p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>b) a
-copy of this Agreement must be included with each copy of the Program. </span></p>
-
-<p><span style='font-size:10.0pt'>Contributors may not remove or alter any
-copyright notices contained within the Program. </span></p>
-
-<p><span style='font-size:10.0pt'>Each Contributor must identify itself as the
-originator of its Contribution, if any, in a manner that reasonably allows
-subsequent Recipients to identify the originator of the Contribution. </span></p>
-
-<p><b><span style='font-size:10.0pt'>4. COMMERCIAL DISTRIBUTION</span></b> </p>
-
-<p><span style='font-size:10.0pt'>Commercial distributors of software may
-accept certain responsibilities with respect to end users, business partners
-and the like. While this license is intended to facilitate the commercial use
-of the Program, the Contributor who includes the Program in a commercial
-product offering should do so in a manner which does not create potential
-liability for other Contributors. Therefore, if a Contributor includes the
-Program in a commercial product offering, such Contributor (&quot;Commercial
-Contributor&quot;) hereby agrees to defend and indemnify every other
-Contributor (&quot;Indemnified Contributor&quot;) against any losses, damages and
-costs (collectively &quot;Losses&quot;) arising from claims, lawsuits and other
-legal actions brought by a third party against the Indemnified Contributor to
-the extent caused by the acts or omissions of such Commercial Contributor in
-connection with its distribution of the Program in a commercial product
-offering. The obligations in this section do not apply to any claims or Losses
-relating to any actual or alleged intellectual property infringement. In order
-to qualify, an Indemnified Contributor must: a) promptly notify the Commercial
-Contributor in writing of such claim, and b) allow the Commercial Contributor
-to control, and cooperate with the Commercial Contributor in, the defense and
-any related settlement negotiations. The Indemnified Contributor may participate
-in any such claim at its own expense.</span> </p>
-
-<p><span style='font-size:10.0pt'>For example, a Contributor might include the
-Program in a commercial product offering, Product X. That Contributor is then a
-Commercial Contributor. If that Commercial Contributor then makes performance
-claims, or offers warranties related to Product X, those performance claims and
-warranties are such Commercial Contributor's responsibility alone. Under this
-section, the Commercial Contributor would have to defend claims against the
-other Contributors related to those performance claims and warranties, and if a
-court requires any other Contributor to pay any damages as a result, the
-Commercial Contributor must pay those damages.</span> </p>
-
-<p><b><span style='font-size:10.0pt'>5. NO WARRANTY</span></b> </p>
-
-<p><span style='font-size:10.0pt'>EXCEPT AS EXPRESSLY SET FORTH IN THIS
-AGREEMENT, THE PROGRAM IS PROVIDED ON AN &quot;AS IS&quot; BASIS, WITHOUT
-WARRANTIES OR CONDITIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED INCLUDING,
-WITHOUT LIMITATION, ANY WARRANTIES OR CONDITIONS OF TITLE, NON-INFRINGEMENT,
-MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. Each Recipient is solely
-responsible for determining the appropriateness of using and distributing the
-Program and assumes all risks associated with its exercise of rights under this
-Agreement , including but not limited to the risks and costs of program errors,
-compliance with applicable laws, damage to or loss of data, programs or
-equipment, and unavailability or interruption of operations. </span></p>
-
-<p><b><span style='font-size:10.0pt'>6. DISCLAIMER OF LIABILITY</span></b> </p>
-
-<p><span style='font-size:10.0pt'>EXCEPT AS EXPRESSLY SET FORTH IN THIS
-AGREEMENT, NEITHER RECIPIENT NOR ANY CONTRIBUTORS SHALL HAVE ANY LIABILITY FOR
-ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
-(INCLUDING WITHOUT LIMITATION LOST PROFITS), HOWEVER CAUSED AND ON ANY THEORY
-OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
-NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OR DISTRIBUTION OF
-THE PROGRAM OR THE EXERCISE OF ANY RIGHTS GRANTED HEREUNDER, EVEN IF ADVISED OF
-THE POSSIBILITY OF SUCH DAMAGES.</span> </p>
-
-<p><b><span style='font-size:10.0pt'>7. GENERAL</span></b> </p>
-
-<p><span style='font-size:10.0pt'>If any provision of this Agreement is invalid
-or unenforceable under applicable law, it shall not affect the validity or
-enforceability of the remainder of the terms of this Agreement, and without
-further action by the parties hereto, such provision shall be reformed to the
-minimum extent necessary to make such provision valid and enforceable.</span> </p>
-
-<p><span style='font-size:10.0pt'>If Recipient institutes patent litigation
-against any entity (including a cross-claim or counterclaim in a lawsuit)
-alleging that the Program itself (excluding combinations of the Program with
-other software or hardware) infringes such Recipient's patent(s), then such
-Recipient's rights granted under Section 2(b) shall terminate as of the date
-such litigation is filed. </span></p>
-
-<p><span style='font-size:10.0pt'>All Recipient's rights under this Agreement
-shall terminate if it fails to comply with any of the material terms or
-conditions of this Agreement and does not cure such failure in a reasonable
-period of time after becoming aware of such noncompliance. If all Recipient's
-rights under this Agreement terminate, Recipient agrees to cease use and
-distribution of the Program as soon as reasonably practicable. However,
-Recipient's obligations under this Agreement and any licenses granted by
-Recipient relating to the Program shall continue and survive. </span></p>
-
-<p><span style='font-size:10.0pt'>Everyone is permitted to copy and distribute
-copies of this Agreement, but in order to avoid inconsistency the Agreement is
-copyrighted and may only be modified in the following manner. The Agreement
-Steward reserves the right to publish new versions (including revisions) of
-this Agreement from time to time. No one other than the Agreement Steward has
-the right to modify this Agreement. The Eclipse Foundation is the initial
-Agreement Steward. The Eclipse Foundation may assign the responsibility to
-serve as the Agreement Steward to a suitable separate entity. Each new version
-of the Agreement will be given a distinguishing version number. The Program
-(including Contributions) may always be distributed subject to the version of
-the Agreement under which it was received. In addition, after a new version of
-the Agreement is published, Contributor may elect to distribute the Program
-(including its Contributions) under the new version. Except as expressly stated
-in Sections 2(a) and 2(b) above, Recipient receives no rights or licenses to
-the intellectual property of any Contributor under this Agreement, whether
-expressly, by implication, estoppel or otherwise. All rights in the Program not
-expressly granted under this Agreement are reserved.</span> </p>
-
-<p><span style='font-size:10.0pt'>This Agreement is governed by the laws of the
-State of New York and the intellectual property laws of the United States of
-America. No party to this Agreement will bring a legal action under this
-Agreement more than one year after the cause of action arose. Each party waives
-its rights to a jury trial in any resulting litigation.</span> </p>
-
-<p class=MsoNormal><![if !supportEmptyParas]>&nbsp;<![endif]><o:p></o:p></p>
-
-</div>
-
-</body>
-
-</html>
\ No newline at end of file
diff --git a/assembly/features/org.eclipse.jpt.tests.assembly.feature/feature.properties b/assembly/features/org.eclipse.jpt.tests.assembly.feature/feature.properties
deleted file mode 100644
index c98fef2..0000000
--- a/assembly/features/org.eclipse.jpt.tests.assembly.feature/feature.properties
+++ /dev/null
@@ -1,145 +0,0 @@
-###############################################################################
-# Copyright (c) 2006 Oracle.
-# All rights reserved. This program and the accompanying materials
-# are made available under the terms of the Eclipse Public License v1.0
-# which accompanies this distribution, and is available at
-# http://www.eclipse.org/legal/epl-v10.html
-# 
-# Contributors:
-#     Oracle. - initial API and implementation
-###############################################################################
-# feature.properties
-# contains externalized strings for feature.xml
-# "%foo" in feature.xml corresponds to the key "foo" in this file
-# java.io.Properties file (ISO 8859-1 with "\" escapes)
-# This file should be translated.
-
-# "featureName" property - name of the feature
-featureName=Dali Java Persistence Tools Tests
-
-# "providerName" property - name of the company that provides the feature
-providerName=Eclipse Web Tools Platform
-
-# "updateSiteName" property - label for the update site
-updateSiteName=The Eclipse Web Tools Platform (WTP) Project update site
-
-# "description" property - description of the feature
-description=Dali Java Persistence Tools project Tests
-
-# "copyright" property - text of the "Feature Update Copyright"
-copyright=\
-Copyright (c) 2006 Oracle Corporation.\n\
-All rights reserved. This program and the accompanying materials\n\
-are made available under the terms of the Eclipse Public License v1.0\n\
-which accompanies this distribution, and is available at\n\
-http://www.eclipse.org/legal/epl-v10.html\n\
-\n\
-Contributors:\n\
-    Oracle - initial API and implementation\n
-################ end of copyright property ####################################
-
-# "licenseURL" property - URL of the "Feature License"
-# do not translate value - just change to point to a locale-specific HTML page
-licenseURL=license.html
-
-# "license" property - text of the "Feature Update License"
-# should be plain text version of license agreement pointed to be "licenseURL"
-license=\
-ECLIPSE FOUNDATION SOFTWARE USER AGREEMENT\n\
-June 06, 2007\n\
-\n\
-Usage Of Content\n\
-\n\
-THE ECLIPSE FOUNDATION MAKES AVAILABLE SOFTWARE, DOCUMENTATION, INFORMATION AND/OR\n\
-OTHER MATERIALS FOR OPEN SOURCE PROJECTS (COLLECTIVELY "CONTENT").\n\
-USE OF THE CONTENT IS GOVERNED BY THE TERMS AND CONDITIONS OF THIS\n\
-AGREEMENT AND/OR THE TERMS AND CONDITIONS OF LICENSE AGREEMENTS OR\n\
-NOTICES INDICATED OR REFERENCED BELOW. BY USING THE CONTENT, YOU\n\
-AGREE THAT YOUR USE OF THE CONTENT IS GOVERNED BY THIS AGREEMENT\n\
-AND/OR THE TERMS AND CONDITIONS OF ANY APPLICABLE LICENSE AGREEMENTS\n\
-OR NOTICES INDICATED OR REFERENCED BELOW. IF YOU DO NOT AGREE TO THE\n\
-TERMS AND CONDITIONS OF THIS AGREEMENT AND THE TERMS AND CONDITIONS\n\
-OF ANY APPLICABLE LICENSE AGREEMENTS OR NOTICES INDICATED OR REFERENCED\n\
-BELOW, THEN YOU MAY NOT USE THE CONTENT.\n\
-\n\
-Applicable Licenses\n\
-\n\
-Unless otherwise indicated, all Content made available by the Eclipse Foundation\n\
-is provided to you under the terms and conditions of the Eclipse Public\n\
-License Version 1.0 ("EPL"). A copy of the EPL is provided with this\n\
-Content and is also available at http://www.eclipse.org/legal/epl-v10.html.\n\
-For purposes of the EPL, "Program" will mean the Content.\n\
-\n\
-Content includes, but is not limited to, source code, object code,\n\
-documentation and other files maintained in the Eclipse.org CVS\n\
-repository ("Repository") in CVS modules ("Modules") and made available\n\
-as downloadable archives ("Downloads").\n\
-\n\
-   - Content may be structured and packaged into modules to facilitate delivering,\n\
-     extending, and upgrading the Content. Typical modules may include plug-ins ("Plug-ins"),\n\
-     plug-in fragments ("Fragments"), and features ("Features").\n\
-   - Each Plug-in or Fragment may be packaged as a sub-directory or JAR (Java? ARchive)\n\
-     in a directory named "plugins".\n\
-   - A Feature is a bundle of one or more Plug-ins and/or Fragments and associated material.\n\
-     Each Feature may be packaged as a sub-directory in a directory named "features".\n\
-     Within a Feature, files named "feature.xml" may contain a list of the names and version\n\
-     numbers of the Plug-ins and/or Fragments associated with that Feature.\n\
-   - Features may also include other Features ("Included Features"). Within a Feature, files\n\
-     named "feature.xml" may contain a list of the names and version numbers of Included Features.\n\
-\n\
-Features may also include other Features ("Included Features"). Files named\n\
-"feature.xml" may contain a list of the names and version numbers of\n\
-Included Features.\n\
-\n\
-The terms and conditions governing Plug-ins and Fragments should be\n\
-contained in files named "about.html" ("Abouts"). The terms and\n\
-conditions governing Features and Included Features should be contained\n\
-in files named "license.html" ("Feature Licenses"). Abouts and Feature\n\
-Licenses may be located in any directory of a Download or Module\n\
-including, but not limited to the following locations:\n\
-\n\
-   - The top-level (root) directory\n\
-   - Plug-in and Fragment directories\n\
-   - Inside Plug-ins and Fragments packaged as JARs\n\
-   - Sub-directories of the directory named "src" of certain Plug-ins\n\
-   - Feature directories\n\
-\n\
-Note: if a Feature made available by the Eclipse Foundation is installed using the\n\
-Eclipse Update Manager, you must agree to a license ("Feature Update\n\
-License") during the installation process. If the Feature contains\n\
-Included Features, the Feature Update License should either provide you\n\
-with the terms and conditions governing the Included Features or inform\n\
-you where you can locate them. Feature Update Licenses may be found in\n\
-the "license" property of files named "feature.properties". Such Abouts,\n\
-Feature Licenses and Feature Update Licenses contain the terms and\n\
-conditions (or references to such terms and conditions) that govern your\n\
-use of the associated Content in that directory.\n\
-\n\
-THE ABOUTS, FEATURE LICENSES AND FEATURE UPDATE LICENSES MAY REFER\n\
-TO THE EPL OR OTHER LICENSE AGREEMENTS, NOTICES OR TERMS AND CONDITIONS.\n\
-SOME OF THESE OTHER LICENSE AGREEMENTS MAY INCLUDE (BUT ARE NOT LIMITED TO):\n\
-\n\
-    - Common Public License Version 1.0 (available at http://www.eclipse.org/legal/cpl-v10.html)\n\
-    - Apache Software License 1.1 (available at http://www.apache.org/licenses/LICENSE)\n\
-    - Apache Software License 2.0 (available at http://www.apache.org/licenses/LICENSE-2.0)\n\
-    - IBM Public License 1.0 (available at http://oss.software.ibm.com/developerworks/opensource/license10.html)\n\
-    - Metro Link Public License 1.00 (available at http://www.opengroup.org/openmotif/supporters/metrolink/license.html)\n\
-    - Mozilla Public License Version 1.1 (available at http://www.mozilla.org/MPL/MPL-1.1.html)\n\
-    - Common Development and Distribution License (CDDL) Version 1.0 (available at http://www.sun.com/cddl/cddl.html)\n\
-\n\
-IT IS YOUR OBLIGATION TO READ AND ACCEPT ALL SUCH TERMS AND CONDITIONS PRIOR\n\
-TO USE OF THE CONTENT. If no About, Feature License or Feature Update License\n\
-is provided, please contact the Eclipse Foundation to determine what terms and conditions\n\
-govern that particular Content.\n\
-\n\
-Cryptography\n\
-\n\
-Content may contain encryption software. The country in which you are\n\
-currently may have restrictions on the import, possession, and use,\n\
-and/or re-export to another country, of encryption software. BEFORE\n\
-using any encryption software, please check the country's laws,\n\
-regulations and policies concerning the import, possession, or use,\n\
-and re-export of encryption software, to see if this is permitted.\n\
-\n\
-Java and all Java-based trademarks are trademarks of Sun Microsystems, Inc. in the United States, other countries, or both.\n
-########### end of license property ##########################################
diff --git a/assembly/features/org.eclipse.jpt.tests.assembly.feature/feature.xml b/assembly/features/org.eclipse.jpt.tests.assembly.feature/feature.xml
deleted file mode 100644
index 93b0372..0000000
--- a/assembly/features/org.eclipse.jpt.tests.assembly.feature/feature.xml
+++ /dev/null
@@ -1,28 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<feature
-      id="org.eclipse.jpt.tests.assembly.feature"
-      label="%featureName"
-      version="2.2.0.qualifier"
-      provider-name="%providerName">
-
-   <description>
-      %description
-   </description>
-
-   <copyright>
-      %copyright
-   </copyright>
-
-   <license url="license.html">
-      %license
-   </license>
-
-   <url>
-      <update label="%updateSiteName" url="http://download.eclipse.org/webtools/updates/"/>
-   </url>
-
-   <includes
-         id="org.eclipse.jpt.tests.feature"
-         version="0.0.0"/>
-
-</feature>
diff --git a/assembly/features/org.eclipse.jpt.tests.assembly.feature/license.html b/assembly/features/org.eclipse.jpt.tests.assembly.feature/license.html
deleted file mode 100644
index 5644598..0000000
--- a/assembly/features/org.eclipse.jpt.tests.assembly.feature/license.html
+++ /dev/null
@@ -1,98 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3c.org/TR/1999/REC-html401-19991224/loose.dtd">
-<!-- saved from url=(0044)http://www.eclipse.org/legal/epl/notice.html -->
-<HTML><HEAD><TITLE>Eclipse.org Software User Agreement</TITLE>
-<META http-equiv=Content-Type content="text/html; charset=iso-8859-1">
-<META content="MSHTML 6.00.2800.1479" name=GENERATOR></HEAD>
-<BODY lang=EN-US vLink=purple link=blue>
-<H2>Eclipse Foundation Software User Agreement</H2>
-<P>June 06, 2007</P>
-<H3>Usage Of Content</H3>
-<P>THE ECLIPSE FOUNDATION MAKES AVAILABLE SOFTWARE, DOCUMENTATION, INFORMATION 
-AND/OR OTHER MATERIALS FOR OPEN SOURCE PROJECTS (COLLECTIVELY "CONTENT"). USE OF 
-THE CONTENT IS GOVERNED BY THE TERMS AND CONDITIONS OF THIS AGREEMENT AND/OR THE 
-TERMS AND CONDITIONS OF LICENSE AGREEMENTS OR NOTICES INDICATED OR REFERENCED 
-BELOW. BY USING THE CONTENT, YOU AGREE THAT YOUR USE OF THE CONTENT IS GOVERNED 
-BY THIS AGREEMENT AND/OR THE TERMS AND CONDITIONS OF ANY APPLICABLE LICENSE 
-AGREEMENTS OR NOTICES INDICATED OR REFERENCED BELOW. IF YOU DO NOT AGREE TO THE 
-TERMS AND CONDITIONS OF THIS AGREEMENT AND THE TERMS AND CONDITIONS OF ANY 
-APPLICABLE LICENSE AGREEMENTS OR NOTICES INDICATED OR REFERENCED BELOW, THEN YOU 
-MAY NOT USE THE CONTENT.</P>
-<H3>Applicable Licenses</H3>
-<P>Unless otherwise indicated, all Content made available by the Eclipse 
-Foundation is provided to you under the terms and conditions of the Eclipse 
-Public License Version 1.0 ("EPL"). A copy of the EPL is provided with this 
-Content and is also available at <A 
-href="http://www.eclipse.org/legal/epl-v10.html">http://www.eclipse.org/legal/epl-v10.html</A>. 
-For purposes of the EPL, "Program" will mean the Content.</P>
-<P>Content includes, but is not limited to, source code, object code, 
-documentation and other files maintained in the Eclipse.org CVS repository 
-("Repository") in CVS modules ("Modules") and made available as downloadable 
-archives ("Downloads").</P>
-<P>Content may be apportioned into plug-ins ("Plug-ins"), plug-in fragments 
-("Fragments"), and features ("Features"). A Feature is a bundle of one or more 
-Plug-ins and/or Fragments and associated material. Files named "feature.xml" may 
-contain a list of the names and version numbers of the Plug-ins and/or Fragments 
-associated with a Feature. Plug-ins and Fragments are located in directories 
-named "plugins" and Features are located in directories named "features".</P>
-<P>Features may also include other Features ("Included Features"). Files named 
-"feature.xml" may contain a list of the names and version numbers of Included 
-Features.</P>
-<P>The terms and conditions governing Plug-ins and Fragments should be contained 
-in files named "about.html" ("Abouts"). The terms and conditions governing 
-Features and Included Features should be contained in files named "license.html" 
-("Feature Licenses"). Abouts and Feature Licenses may be located in any 
-directory of a Download or Module including, but not limited to the following 
-locations:</P>
-<UL>
-  <LI>The top-level (root) directory 
-  <LI>Plug-in and Fragment directories 
-  <LI>Subdirectories of the directory named "src" of certain Plug-ins 
-  <LI>Feature directories </LI></UL>
-<P>Note: if a Feature made available by the Eclipse Foundation is installed 
-using the Eclipse Update Manager, you must agree to a license ("Feature Update 
-License") during the installation process. If the Feature contains Included 
-Features, the Feature Update License should either provide you with the terms 
-and conditions governing the Included Features or inform you where you can 
-locate them. Feature Update Licenses may be found in the "license" property of 
-files named "feature.properties". Such Abouts, Feature Licenses and Feature 
-Update Licenses contain the terms and conditions (or references to such terms 
-and conditions) that govern your use of the associated Content in that 
-directory.</P>
-<P>THE ABOUTS, FEATURE LICENSES AND FEATURE UPDATE LICENSES MAY REFER TO THE EPL 
-OR OTHER LICENSE AGREEMENTS, NOTICES OR TERMS AND CONDITIONS. SOME OF THESE 
-OTHER LICENSE AGREEMENTS MAY INCLUDE (BUT ARE NOT LIMITED TO):</P>
-<UL>
-  <LI>Common Public License Version 1.0 (available at <A 
-  href="http://www.eclipse.org/legal/cpl-v10.html">http://www.eclipse.org/legal/cpl-v10.html</A>) 
-
-  <LI>Apache Software License 1.1 (available at <A 
-  href="http://www.apache.org/licenses/LICENSE">http://www.apache.org/licenses/LICENSE</A>) 
-
-  <LI>Apache Software License 2.0 (available at <A 
-  href="http://www.apache.org/licenses/LICENSE-2.0">http://www.apache.org/licenses/LICENSE-2.0</A>) 
-
-  <LI>IBM Public License 1.0 (available at <A 
-  href="http://oss.software.ibm.com/developerworks/opensource/license10.html">http://oss.software.ibm.com/developerworks/opensource/license10.html</A>) 
-
-  <LI>Metro Link Public License 1.00 (available at <A 
-  href="http://www.opengroup.org/openmotif/supporters/metrolink/license.html">http://www.opengroup.org/openmotif/supporters/metrolink/license.html</A>) 
-
-  <LI>Mozilla Public License Version 1.1 (available at <A 
-  href="http://www.mozilla.org/MPL/MPL-1.1.html">http://www.mozilla.org/MPL/MPL-1.1.html</A>) 
-  </LI>
-    
-  <LI>Common Development and Distribution License (CDDL) Version 1.0 (available at <A 
-  href="http://www.sun.com/cddl/cddl.html">http://www.sun.com/cddl/cddl.html)</A>
-  </LI>
-</UL>
-<P>IT IS YOUR OBLIGATION TO READ AND ACCEPT ALL SUCH TERMS AND CONDITIONS PRIOR 
-TO USE OF THE CONTENT. If no About, Feature License or Feature Update License is 
-provided, please contact the Eclipse Foundation to determine what terms and 
-conditions govern that particular Content.</P>
-<H3>Cryptography</H3>
-<P>Content may contain encryption software. The country in which you are 
-currently may have restrictions on the import, possession, and use, and/or 
-re-export to another country, of encryption software. BEFORE using any 
-encryption software, please check the country's laws, regulations and policies 
-concerning the import, possession, or use, and re-export of encryption software, 
-to see if this is permitted.</P></BODY></HTML>
diff --git a/assembly/features/org.eclipse.jpt.tests/.cvsignore b/assembly/features/org.eclipse.jpt.tests/.cvsignore
deleted file mode 100644
index 2544693..0000000
--- a/assembly/features/org.eclipse.jpt.tests/.cvsignore
+++ /dev/null
@@ -1,3 +0,0 @@
-*.bin.dist.zip
-build.xml
-org.eclipse.jpt.tests_1.0.0.*
\ No newline at end of file
diff --git a/assembly/features/org.eclipse.jpt.tests/.project b/assembly/features/org.eclipse.jpt.tests/.project
deleted file mode 100644
index 3d1dde6..0000000
--- a/assembly/features/org.eclipse.jpt.tests/.project
+++ /dev/null
@@ -1,17 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<projectDescription>
-	<name>org.eclipse.jpt.tests</name>
-	<comment></comment>
-	<projects>
-	</projects>
-	<buildSpec>
-		<buildCommand>
-			<name>org.eclipse.pde.FeatureBuilder</name>
-			<arguments>
-			</arguments>
-		</buildCommand>
-	</buildSpec>
-	<natures>
-		<nature>org.eclipse.pde.FeatureNature</nature>
-	</natures>
-</projectDescription>
diff --git a/assembly/features/org.eclipse.jpt.tests/.settings/org.eclipse.core.resources.prefs b/assembly/features/org.eclipse.jpt.tests/.settings/org.eclipse.core.resources.prefs
deleted file mode 100644
index 17acb65..0000000
--- a/assembly/features/org.eclipse.jpt.tests/.settings/org.eclipse.core.resources.prefs
+++ /dev/null
@@ -1,3 +0,0 @@
-#Sun May 27 15:11:05 EDT 2007
-eclipse.preferences.version=1
-encoding/<project>=ISO-8859-1
diff --git a/assembly/features/org.eclipse.jpt.tests/build.properties b/assembly/features/org.eclipse.jpt.tests/build.properties
deleted file mode 100644
index 7f47694..0000000
--- a/assembly/features/org.eclipse.jpt.tests/build.properties
+++ /dev/null
@@ -1,5 +0,0 @@
-bin.includes = feature.xml,\
-               eclipse_update_120.jpg,\
-               epl-v10.html,\
-               license.html,\
-               feature.properties
diff --git a/assembly/features/org.eclipse.jpt.tests/eclipse_update_120.jpg b/assembly/features/org.eclipse.jpt.tests/eclipse_update_120.jpg
deleted file mode 100644
index bfdf708..0000000
--- a/assembly/features/org.eclipse.jpt.tests/eclipse_update_120.jpg
+++ /dev/null
Binary files differ
diff --git a/assembly/features/org.eclipse.jpt.tests/epl-v10.html b/assembly/features/org.eclipse.jpt.tests/epl-v10.html
deleted file mode 100644
index ed4b196..0000000
--- a/assembly/features/org.eclipse.jpt.tests/epl-v10.html
+++ /dev/null
@@ -1,328 +0,0 @@
-<html xmlns:o="urn:schemas-microsoft-com:office:office"
-xmlns:w="urn:schemas-microsoft-com:office:word"
-xmlns="http://www.w3.org/TR/REC-html40">
-
-<head>
-<meta http-equiv=Content-Type content="text/html; charset=windows-1252">
-<meta name=ProgId content=Word.Document>
-<meta name=Generator content="Microsoft Word 9">
-<meta name=Originator content="Microsoft Word 9">
-<link rel=File-List
-href="./Eclipse%20EPL%202003_11_10%20Final_files/filelist.xml">
-<title>Eclipse Public License - Version 1.0</title>
-<!--[if gte mso 9]><xml>
- <o:DocumentProperties>
-  <o:Revision>2</o:Revision>
-  <o:TotalTime>3</o:TotalTime>
-  <o:Created>2004-03-05T23:03:00Z</o:Created>
-  <o:LastSaved>2004-03-05T23:03:00Z</o:LastSaved>
-  <o:Pages>4</o:Pages>
-  <o:Words>1626</o:Words>
-  <o:Characters>9270</o:Characters>
-   <o:Lines>77</o:Lines>
-  <o:Paragraphs>18</o:Paragraphs>
-  <o:CharactersWithSpaces>11384</o:CharactersWithSpaces>
-  <o:Version>9.4402</o:Version>
- </o:DocumentProperties>
-</xml><![endif]--><!--[if gte mso 9]><xml>
- <w:WordDocument>
-  <w:TrackRevisions/>
- </w:WordDocument>
-</xml><![endif]-->
-<style>
-<!--
- /* Font Definitions */
-@font-face
-	{font-family:Tahoma;
-	panose-1:2 11 6 4 3 5 4 4 2 4;
-	mso-font-charset:0;
-	mso-generic-font-family:swiss;
-	mso-font-pitch:variable;
-	mso-font-signature:553679495 -2147483648 8 0 66047 0;}
- /* Style Definitions */
-p.MsoNormal, li.MsoNormal, div.MsoNormal
-	{mso-style-parent:"";
-	margin:0in;
-	margin-bottom:.0001pt;
-	mso-pagination:widow-orphan;
-	font-size:12.0pt;
-	font-family:"Times New Roman";
-	mso-fareast-font-family:"Times New Roman";}
-p
-	{margin-right:0in;
-	mso-margin-top-alt:auto;
-	mso-margin-bottom-alt:auto;
-	margin-left:0in;
-	mso-pagination:widow-orphan;
-	font-size:12.0pt;
-	font-family:"Times New Roman";
-	mso-fareast-font-family:"Times New Roman";}
-p.BalloonText, li.BalloonText, div.BalloonText
-	{mso-style-name:"Balloon Text";
-	margin:0in;
-	margin-bottom:.0001pt;
-	mso-pagination:widow-orphan;
-	font-size:8.0pt;
-	font-family:Tahoma;
-	mso-fareast-font-family:"Times New Roman";}
-@page Section1
-	{size:8.5in 11.0in;
-	margin:1.0in 1.25in 1.0in 1.25in;
-	mso-header-margin:.5in;
-	mso-footer-margin:.5in;
-	mso-paper-source:0;}
-div.Section1
-	{page:Section1;}
--->
-</style>
-</head>
-
-<body lang=EN-US style='tab-interval:.5in'>
-
-<div class=Section1>
-
-<p align=center style='text-align:center'><b>Eclipse Public License - v 1.0</b>
-</p>
-
-<p><span style='font-size:10.0pt'>THE ACCOMPANYING PROGRAM IS PROVIDED UNDER
-THE TERMS OF THIS ECLIPSE PUBLIC LICENSE (&quot;AGREEMENT&quot;). ANY USE,
-REPRODUCTION OR DISTRIBUTION OF THE PROGRAM CONSTITUTES RECIPIENT'S ACCEPTANCE
-OF THIS AGREEMENT.</span> </p>
-
-<p><b><span style='font-size:10.0pt'>1. DEFINITIONS</span></b> </p>
-
-<p><span style='font-size:10.0pt'>&quot;Contribution&quot; means:</span> </p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>a)
-in the case of the initial Contributor, the initial code and documentation
-distributed under this Agreement, and<br clear=left>
-b) in the case of each subsequent Contributor:</span></p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>i)
-changes to the Program, and</span></p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>ii)
-additions to the Program;</span></p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>where
-such changes and/or additions to the Program originate from and are distributed
-by that particular Contributor. A Contribution 'originates' from a Contributor
-if it was added to the Program by such Contributor itself or anyone acting on
-such Contributor's behalf. Contributions do not include additions to the
-Program which: (i) are separate modules of software distributed in conjunction
-with the Program under their own license agreement, and (ii) are not derivative
-works of the Program. </span></p>
-
-<p><span style='font-size:10.0pt'>&quot;Contributor&quot; means any person or
-entity that distributes the Program.</span> </p>
-
-<p><span style='font-size:10.0pt'>&quot;Licensed Patents &quot; mean patent
-claims licensable by a Contributor which are necessarily infringed by the use
-or sale of its Contribution alone or when combined with the Program. </span></p>
-
-<p><span style='font-size:10.0pt'>&quot;Program&quot; means the Contributions
-distributed in accordance with this Agreement.</span> </p>
-
-<p><span style='font-size:10.0pt'>&quot;Recipient&quot; means anyone who
-receives the Program under this Agreement, including all Contributors.</span> </p>
-
-<p><b><span style='font-size:10.0pt'>2. GRANT OF RIGHTS</span></b> </p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>a)
-Subject to the terms of this Agreement, each Contributor hereby grants Recipient
-a non-exclusive, worldwide, royalty-free copyright license to<span
-style='color:red'> </span>reproduce, prepare derivative works of, publicly
-display, publicly perform, distribute and sublicense the Contribution of such
-Contributor, if any, and such derivative works, in source code and object code
-form.</span></p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>b)
-Subject to the terms of this Agreement, each Contributor hereby grants
-Recipient a non-exclusive, worldwide,<span style='color:green'> </span>royalty-free
-patent license under Licensed Patents to make, use, sell, offer to sell, import
-and otherwise transfer the Contribution of such Contributor, if any, in source
-code and object code form. This patent license shall apply to the combination
-of the Contribution and the Program if, at the time the Contribution is added
-by the Contributor, such addition of the Contribution causes such combination
-to be covered by the Licensed Patents. The patent license shall not apply to
-any other combinations which include the Contribution. No hardware per se is
-licensed hereunder. </span></p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>c)
-Recipient understands that although each Contributor grants the licenses to its
-Contributions set forth herein, no assurances are provided by any Contributor
-that the Program does not infringe the patent or other intellectual property
-rights of any other entity. Each Contributor disclaims any liability to Recipient
-for claims brought by any other entity based on infringement of intellectual
-property rights or otherwise. As a condition to exercising the rights and
-licenses granted hereunder, each Recipient hereby assumes sole responsibility
-to secure any other intellectual property rights needed, if any. For example,
-if a third party patent license is required to allow Recipient to distribute
-the Program, it is Recipient's responsibility to acquire that license before
-distributing the Program.</span></p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>d)
-Each Contributor represents that to its knowledge it has sufficient copyright
-rights in its Contribution, if any, to grant the copyright license set forth in
-this Agreement. </span></p>
-
-<p><b><span style='font-size:10.0pt'>3. REQUIREMENTS</span></b> </p>
-
-<p><span style='font-size:10.0pt'>A Contributor may choose to distribute the
-Program in object code form under its own license agreement, provided that:</span>
-</p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>a)
-it complies with the terms and conditions of this Agreement; and</span></p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>b)
-its license agreement:</span></p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>i)
-effectively disclaims on behalf of all Contributors all warranties and
-conditions, express and implied, including warranties or conditions of title
-and non-infringement, and implied warranties or conditions of merchantability
-and fitness for a particular purpose; </span></p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>ii)
-effectively excludes on behalf of all Contributors all liability for damages,
-including direct, indirect, special, incidental and consequential damages, such
-as lost profits; </span></p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>iii)
-states that any provisions which differ from this Agreement are offered by that
-Contributor alone and not by any other party; and</span></p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>iv)
-states that source code for the Program is available from such Contributor, and
-informs licensees how to obtain it in a reasonable manner on or through a
-medium customarily used for software exchange.<span style='color:blue'> </span></span></p>
-
-<p><span style='font-size:10.0pt'>When the Program is made available in source
-code form:</span> </p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>a)
-it must be made available under this Agreement; and </span></p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>b) a
-copy of this Agreement must be included with each copy of the Program. </span></p>
-
-<p><span style='font-size:10.0pt'>Contributors may not remove or alter any
-copyright notices contained within the Program. </span></p>
-
-<p><span style='font-size:10.0pt'>Each Contributor must identify itself as the
-originator of its Contribution, if any, in a manner that reasonably allows
-subsequent Recipients to identify the originator of the Contribution. </span></p>
-
-<p><b><span style='font-size:10.0pt'>4. COMMERCIAL DISTRIBUTION</span></b> </p>
-
-<p><span style='font-size:10.0pt'>Commercial distributors of software may
-accept certain responsibilities with respect to end users, business partners
-and the like. While this license is intended to facilitate the commercial use
-of the Program, the Contributor who includes the Program in a commercial
-product offering should do so in a manner which does not create potential
-liability for other Contributors. Therefore, if a Contributor includes the
-Program in a commercial product offering, such Contributor (&quot;Commercial
-Contributor&quot;) hereby agrees to defend and indemnify every other
-Contributor (&quot;Indemnified Contributor&quot;) against any losses, damages and
-costs (collectively &quot;Losses&quot;) arising from claims, lawsuits and other
-legal actions brought by a third party against the Indemnified Contributor to
-the extent caused by the acts or omissions of such Commercial Contributor in
-connection with its distribution of the Program in a commercial product
-offering. The obligations in this section do not apply to any claims or Losses
-relating to any actual or alleged intellectual property infringement. In order
-to qualify, an Indemnified Contributor must: a) promptly notify the Commercial
-Contributor in writing of such claim, and b) allow the Commercial Contributor
-to control, and cooperate with the Commercial Contributor in, the defense and
-any related settlement negotiations. The Indemnified Contributor may participate
-in any such claim at its own expense.</span> </p>
-
-<p><span style='font-size:10.0pt'>For example, a Contributor might include the
-Program in a commercial product offering, Product X. That Contributor is then a
-Commercial Contributor. If that Commercial Contributor then makes performance
-claims, or offers warranties related to Product X, those performance claims and
-warranties are such Commercial Contributor's responsibility alone. Under this
-section, the Commercial Contributor would have to defend claims against the
-other Contributors related to those performance claims and warranties, and if a
-court requires any other Contributor to pay any damages as a result, the
-Commercial Contributor must pay those damages.</span> </p>
-
-<p><b><span style='font-size:10.0pt'>5. NO WARRANTY</span></b> </p>
-
-<p><span style='font-size:10.0pt'>EXCEPT AS EXPRESSLY SET FORTH IN THIS
-AGREEMENT, THE PROGRAM IS PROVIDED ON AN &quot;AS IS&quot; BASIS, WITHOUT
-WARRANTIES OR CONDITIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED INCLUDING,
-WITHOUT LIMITATION, ANY WARRANTIES OR CONDITIONS OF TITLE, NON-INFRINGEMENT,
-MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. Each Recipient is solely
-responsible for determining the appropriateness of using and distributing the
-Program and assumes all risks associated with its exercise of rights under this
-Agreement , including but not limited to the risks and costs of program errors,
-compliance with applicable laws, damage to or loss of data, programs or
-equipment, and unavailability or interruption of operations. </span></p>
-
-<p><b><span style='font-size:10.0pt'>6. DISCLAIMER OF LIABILITY</span></b> </p>
-
-<p><span style='font-size:10.0pt'>EXCEPT AS EXPRESSLY SET FORTH IN THIS
-AGREEMENT, NEITHER RECIPIENT NOR ANY CONTRIBUTORS SHALL HAVE ANY LIABILITY FOR
-ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
-(INCLUDING WITHOUT LIMITATION LOST PROFITS), HOWEVER CAUSED AND ON ANY THEORY
-OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
-NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OR DISTRIBUTION OF
-THE PROGRAM OR THE EXERCISE OF ANY RIGHTS GRANTED HEREUNDER, EVEN IF ADVISED OF
-THE POSSIBILITY OF SUCH DAMAGES.</span> </p>
-
-<p><b><span style='font-size:10.0pt'>7. GENERAL</span></b> </p>
-
-<p><span style='font-size:10.0pt'>If any provision of this Agreement is invalid
-or unenforceable under applicable law, it shall not affect the validity or
-enforceability of the remainder of the terms of this Agreement, and without
-further action by the parties hereto, such provision shall be reformed to the
-minimum extent necessary to make such provision valid and enforceable.</span> </p>
-
-<p><span style='font-size:10.0pt'>If Recipient institutes patent litigation
-against any entity (including a cross-claim or counterclaim in a lawsuit)
-alleging that the Program itself (excluding combinations of the Program with
-other software or hardware) infringes such Recipient's patent(s), then such
-Recipient's rights granted under Section 2(b) shall terminate as of the date
-such litigation is filed. </span></p>
-
-<p><span style='font-size:10.0pt'>All Recipient's rights under this Agreement
-shall terminate if it fails to comply with any of the material terms or
-conditions of this Agreement and does not cure such failure in a reasonable
-period of time after becoming aware of such noncompliance. If all Recipient's
-rights under this Agreement terminate, Recipient agrees to cease use and
-distribution of the Program as soon as reasonably practicable. However,
-Recipient's obligations under this Agreement and any licenses granted by
-Recipient relating to the Program shall continue and survive. </span></p>
-
-<p><span style='font-size:10.0pt'>Everyone is permitted to copy and distribute
-copies of this Agreement, but in order to avoid inconsistency the Agreement is
-copyrighted and may only be modified in the following manner. The Agreement
-Steward reserves the right to publish new versions (including revisions) of
-this Agreement from time to time. No one other than the Agreement Steward has
-the right to modify this Agreement. The Eclipse Foundation is the initial
-Agreement Steward. The Eclipse Foundation may assign the responsibility to
-serve as the Agreement Steward to a suitable separate entity. Each new version
-of the Agreement will be given a distinguishing version number. The Program
-(including Contributions) may always be distributed subject to the version of
-the Agreement under which it was received. In addition, after a new version of
-the Agreement is published, Contributor may elect to distribute the Program
-(including its Contributions) under the new version. Except as expressly stated
-in Sections 2(a) and 2(b) above, Recipient receives no rights or licenses to
-the intellectual property of any Contributor under this Agreement, whether
-expressly, by implication, estoppel or otherwise. All rights in the Program not
-expressly granted under this Agreement are reserved.</span> </p>
-
-<p><span style='font-size:10.0pt'>This Agreement is governed by the laws of the
-State of New York and the intellectual property laws of the United States of
-America. No party to this Agreement will bring a legal action under this
-Agreement more than one year after the cause of action arose. Each party waives
-its rights to a jury trial in any resulting litigation.</span> </p>
-
-<p class=MsoNormal><![if !supportEmptyParas]>&nbsp;<![endif]><o:p></o:p></p>
-
-</div>
-
-</body>
-
-</html>
\ No newline at end of file
diff --git a/assembly/features/org.eclipse.jpt.tests/feature.properties b/assembly/features/org.eclipse.jpt.tests/feature.properties
deleted file mode 100644
index 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 020fa44..0000000
--- a/assembly/features/org.eclipse.jpt.tests/feature.xml
+++ /dev/null
@@ -1,28 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<feature
-      id="org.eclipse.jpt.tests"
-      label="%featureName"
-      version="2.1.0.qualifier"
-      provider-name="%providerName">
-
-   <description>
-      %description
-   </description>
-
-   <copyright>
-      %copyright
-   </copyright>
-
-   <license url="license.html">
-      %license
-   </license>
-
-   <url>
-      <update label="%updateSiteName" url="http://download.eclipse.org/webtools/updates/"/>
-   </url>
-
-   <includes
-         id="org.eclipse.jpt.tests.feature"
-         version="0.0.0"/>
-
-</feature>
diff --git a/assembly/features/org.eclipse.jpt.tests/license.html b/assembly/features/org.eclipse.jpt.tests/license.html
deleted file mode 100644
index 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 de8b73f..0000000
--- a/assembly/features/org.eclipse.jpt/.cvsignore
+++ /dev/null
@@ -1,2 +0,0 @@
-build.xml
-org.eclipse.jpt_1.0.0.*
diff --git a/assembly/features/org.eclipse.jpt/.project b/assembly/features/org.eclipse.jpt/.project
deleted file mode 100644
index b7aaec2..0000000
--- a/assembly/features/org.eclipse.jpt/.project
+++ /dev/null
@@ -1,17 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<projectDescription>
-	<name>org.eclipse.jpt</name>
-	<comment></comment>
-	<projects>
-	</projects>
-	<buildSpec>
-		<buildCommand>
-			<name>org.eclipse.pde.FeatureBuilder</name>
-			<arguments>
-			</arguments>
-		</buildCommand>
-	</buildSpec>
-	<natures>
-		<nature>org.eclipse.pde.FeatureNature</nature>
-	</natures>
-</projectDescription>
diff --git a/assembly/features/org.eclipse.jpt/build.properties b/assembly/features/org.eclipse.jpt/build.properties
deleted file mode 100644
index 470b4bc..0000000
--- a/assembly/features/org.eclipse.jpt/build.properties
+++ /dev/null
@@ -1,16 +0,0 @@
-###############################################################################
-# Copyright (c) 2006 Oracle.
-# All rights reserved. This program and the accompanying materials
-# are made available under the terms of the Eclipse Public License v1.0
-# which accompanies this distribution, and is available at
-# http://www.eclipse.org/legal/epl-v10.html
-# 
-# Contributors:
-#     Oracle. - initial API and implementation
-###############################################################################
-bin.includes = feature.xml,\
-               eclipse_update_120.jpg,\
-               epl-v10.html,\
-               license.html,\
-               feature.properties
-               
\ No newline at end of file
diff --git a/assembly/features/org.eclipse.jpt/eclipse_update_120.jpg b/assembly/features/org.eclipse.jpt/eclipse_update_120.jpg
deleted file mode 100644
index bfdf708..0000000
--- a/assembly/features/org.eclipse.jpt/eclipse_update_120.jpg
+++ /dev/null
Binary files differ
diff --git a/assembly/features/org.eclipse.jpt/epl-v10.html b/assembly/features/org.eclipse.jpt/epl-v10.html
deleted file mode 100644
index ed4b196..0000000
--- a/assembly/features/org.eclipse.jpt/epl-v10.html
+++ /dev/null
@@ -1,328 +0,0 @@
-<html xmlns:o="urn:schemas-microsoft-com:office:office"
-xmlns:w="urn:schemas-microsoft-com:office:word"
-xmlns="http://www.w3.org/TR/REC-html40">
-
-<head>
-<meta http-equiv=Content-Type content="text/html; charset=windows-1252">
-<meta name=ProgId content=Word.Document>
-<meta name=Generator content="Microsoft Word 9">
-<meta name=Originator content="Microsoft Word 9">
-<link rel=File-List
-href="./Eclipse%20EPL%202003_11_10%20Final_files/filelist.xml">
-<title>Eclipse Public License - Version 1.0</title>
-<!--[if gte mso 9]><xml>
- <o:DocumentProperties>
-  <o:Revision>2</o:Revision>
-  <o:TotalTime>3</o:TotalTime>
-  <o:Created>2004-03-05T23:03:00Z</o:Created>
-  <o:LastSaved>2004-03-05T23:03:00Z</o:LastSaved>
-  <o:Pages>4</o:Pages>
-  <o:Words>1626</o:Words>
-  <o:Characters>9270</o:Characters>
-   <o:Lines>77</o:Lines>
-  <o:Paragraphs>18</o:Paragraphs>
-  <o:CharactersWithSpaces>11384</o:CharactersWithSpaces>
-  <o:Version>9.4402</o:Version>
- </o:DocumentProperties>
-</xml><![endif]--><!--[if gte mso 9]><xml>
- <w:WordDocument>
-  <w:TrackRevisions/>
- </w:WordDocument>
-</xml><![endif]-->
-<style>
-<!--
- /* Font Definitions */
-@font-face
-	{font-family:Tahoma;
-	panose-1:2 11 6 4 3 5 4 4 2 4;
-	mso-font-charset:0;
-	mso-generic-font-family:swiss;
-	mso-font-pitch:variable;
-	mso-font-signature:553679495 -2147483648 8 0 66047 0;}
- /* Style Definitions */
-p.MsoNormal, li.MsoNormal, div.MsoNormal
-	{mso-style-parent:"";
-	margin:0in;
-	margin-bottom:.0001pt;
-	mso-pagination:widow-orphan;
-	font-size:12.0pt;
-	font-family:"Times New Roman";
-	mso-fareast-font-family:"Times New Roman";}
-p
-	{margin-right:0in;
-	mso-margin-top-alt:auto;
-	mso-margin-bottom-alt:auto;
-	margin-left:0in;
-	mso-pagination:widow-orphan;
-	font-size:12.0pt;
-	font-family:"Times New Roman";
-	mso-fareast-font-family:"Times New Roman";}
-p.BalloonText, li.BalloonText, div.BalloonText
-	{mso-style-name:"Balloon Text";
-	margin:0in;
-	margin-bottom:.0001pt;
-	mso-pagination:widow-orphan;
-	font-size:8.0pt;
-	font-family:Tahoma;
-	mso-fareast-font-family:"Times New Roman";}
-@page Section1
-	{size:8.5in 11.0in;
-	margin:1.0in 1.25in 1.0in 1.25in;
-	mso-header-margin:.5in;
-	mso-footer-margin:.5in;
-	mso-paper-source:0;}
-div.Section1
-	{page:Section1;}
--->
-</style>
-</head>
-
-<body lang=EN-US style='tab-interval:.5in'>
-
-<div class=Section1>
-
-<p align=center style='text-align:center'><b>Eclipse Public License - v 1.0</b>
-</p>
-
-<p><span style='font-size:10.0pt'>THE ACCOMPANYING PROGRAM IS PROVIDED UNDER
-THE TERMS OF THIS ECLIPSE PUBLIC LICENSE (&quot;AGREEMENT&quot;). ANY USE,
-REPRODUCTION OR DISTRIBUTION OF THE PROGRAM CONSTITUTES RECIPIENT'S ACCEPTANCE
-OF THIS AGREEMENT.</span> </p>
-
-<p><b><span style='font-size:10.0pt'>1. DEFINITIONS</span></b> </p>
-
-<p><span style='font-size:10.0pt'>&quot;Contribution&quot; means:</span> </p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>a)
-in the case of the initial Contributor, the initial code and documentation
-distributed under this Agreement, and<br clear=left>
-b) in the case of each subsequent Contributor:</span></p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>i)
-changes to the Program, and</span></p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>ii)
-additions to the Program;</span></p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>where
-such changes and/or additions to the Program originate from and are distributed
-by that particular Contributor. A Contribution 'originates' from a Contributor
-if it was added to the Program by such Contributor itself or anyone acting on
-such Contributor's behalf. Contributions do not include additions to the
-Program which: (i) are separate modules of software distributed in conjunction
-with the Program under their own license agreement, and (ii) are not derivative
-works of the Program. </span></p>
-
-<p><span style='font-size:10.0pt'>&quot;Contributor&quot; means any person or
-entity that distributes the Program.</span> </p>
-
-<p><span style='font-size:10.0pt'>&quot;Licensed Patents &quot; mean patent
-claims licensable by a Contributor which are necessarily infringed by the use
-or sale of its Contribution alone or when combined with the Program. </span></p>
-
-<p><span style='font-size:10.0pt'>&quot;Program&quot; means the Contributions
-distributed in accordance with this Agreement.</span> </p>
-
-<p><span style='font-size:10.0pt'>&quot;Recipient&quot; means anyone who
-receives the Program under this Agreement, including all Contributors.</span> </p>
-
-<p><b><span style='font-size:10.0pt'>2. GRANT OF RIGHTS</span></b> </p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>a)
-Subject to the terms of this Agreement, each Contributor hereby grants Recipient
-a non-exclusive, worldwide, royalty-free copyright license to<span
-style='color:red'> </span>reproduce, prepare derivative works of, publicly
-display, publicly perform, distribute and sublicense the Contribution of such
-Contributor, if any, and such derivative works, in source code and object code
-form.</span></p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>b)
-Subject to the terms of this Agreement, each Contributor hereby grants
-Recipient a non-exclusive, worldwide,<span style='color:green'> </span>royalty-free
-patent license under Licensed Patents to make, use, sell, offer to sell, import
-and otherwise transfer the Contribution of such Contributor, if any, in source
-code and object code form. This patent license shall apply to the combination
-of the Contribution and the Program if, at the time the Contribution is added
-by the Contributor, such addition of the Contribution causes such combination
-to be covered by the Licensed Patents. The patent license shall not apply to
-any other combinations which include the Contribution. No hardware per se is
-licensed hereunder. </span></p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>c)
-Recipient understands that although each Contributor grants the licenses to its
-Contributions set forth herein, no assurances are provided by any Contributor
-that the Program does not infringe the patent or other intellectual property
-rights of any other entity. Each Contributor disclaims any liability to Recipient
-for claims brought by any other entity based on infringement of intellectual
-property rights or otherwise. As a condition to exercising the rights and
-licenses granted hereunder, each Recipient hereby assumes sole responsibility
-to secure any other intellectual property rights needed, if any. For example,
-if a third party patent license is required to allow Recipient to distribute
-the Program, it is Recipient's responsibility to acquire that license before
-distributing the Program.</span></p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>d)
-Each Contributor represents that to its knowledge it has sufficient copyright
-rights in its Contribution, if any, to grant the copyright license set forth in
-this Agreement. </span></p>
-
-<p><b><span style='font-size:10.0pt'>3. REQUIREMENTS</span></b> </p>
-
-<p><span style='font-size:10.0pt'>A Contributor may choose to distribute the
-Program in object code form under its own license agreement, provided that:</span>
-</p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>a)
-it complies with the terms and conditions of this Agreement; and</span></p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>b)
-its license agreement:</span></p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>i)
-effectively disclaims on behalf of all Contributors all warranties and
-conditions, express and implied, including warranties or conditions of title
-and non-infringement, and implied warranties or conditions of merchantability
-and fitness for a particular purpose; </span></p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>ii)
-effectively excludes on behalf of all Contributors all liability for damages,
-including direct, indirect, special, incidental and consequential damages, such
-as lost profits; </span></p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>iii)
-states that any provisions which differ from this Agreement are offered by that
-Contributor alone and not by any other party; and</span></p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>iv)
-states that source code for the Program is available from such Contributor, and
-informs licensees how to obtain it in a reasonable manner on or through a
-medium customarily used for software exchange.<span style='color:blue'> </span></span></p>
-
-<p><span style='font-size:10.0pt'>When the Program is made available in source
-code form:</span> </p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>a)
-it must be made available under this Agreement; and </span></p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>b) a
-copy of this Agreement must be included with each copy of the Program. </span></p>
-
-<p><span style='font-size:10.0pt'>Contributors may not remove or alter any
-copyright notices contained within the Program. </span></p>
-
-<p><span style='font-size:10.0pt'>Each Contributor must identify itself as the
-originator of its Contribution, if any, in a manner that reasonably allows
-subsequent Recipients to identify the originator of the Contribution. </span></p>
-
-<p><b><span style='font-size:10.0pt'>4. COMMERCIAL DISTRIBUTION</span></b> </p>
-
-<p><span style='font-size:10.0pt'>Commercial distributors of software may
-accept certain responsibilities with respect to end users, business partners
-and the like. While this license is intended to facilitate the commercial use
-of the Program, the Contributor who includes the Program in a commercial
-product offering should do so in a manner which does not create potential
-liability for other Contributors. Therefore, if a Contributor includes the
-Program in a commercial product offering, such Contributor (&quot;Commercial
-Contributor&quot;) hereby agrees to defend and indemnify every other
-Contributor (&quot;Indemnified Contributor&quot;) against any losses, damages and
-costs (collectively &quot;Losses&quot;) arising from claims, lawsuits and other
-legal actions brought by a third party against the Indemnified Contributor to
-the extent caused by the acts or omissions of such Commercial Contributor in
-connection with its distribution of the Program in a commercial product
-offering. The obligations in this section do not apply to any claims or Losses
-relating to any actual or alleged intellectual property infringement. In order
-to qualify, an Indemnified Contributor must: a) promptly notify the Commercial
-Contributor in writing of such claim, and b) allow the Commercial Contributor
-to control, and cooperate with the Commercial Contributor in, the defense and
-any related settlement negotiations. The Indemnified Contributor may participate
-in any such claim at its own expense.</span> </p>
-
-<p><span style='font-size:10.0pt'>For example, a Contributor might include the
-Program in a commercial product offering, Product X. That Contributor is then a
-Commercial Contributor. If that Commercial Contributor then makes performance
-claims, or offers warranties related to Product X, those performance claims and
-warranties are such Commercial Contributor's responsibility alone. Under this
-section, the Commercial Contributor would have to defend claims against the
-other Contributors related to those performance claims and warranties, and if a
-court requires any other Contributor to pay any damages as a result, the
-Commercial Contributor must pay those damages.</span> </p>
-
-<p><b><span style='font-size:10.0pt'>5. NO WARRANTY</span></b> </p>
-
-<p><span style='font-size:10.0pt'>EXCEPT AS EXPRESSLY SET FORTH IN THIS
-AGREEMENT, THE PROGRAM IS PROVIDED ON AN &quot;AS IS&quot; BASIS, WITHOUT
-WARRANTIES OR CONDITIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED INCLUDING,
-WITHOUT LIMITATION, ANY WARRANTIES OR CONDITIONS OF TITLE, NON-INFRINGEMENT,
-MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. Each Recipient is solely
-responsible for determining the appropriateness of using and distributing the
-Program and assumes all risks associated with its exercise of rights under this
-Agreement , including but not limited to the risks and costs of program errors,
-compliance with applicable laws, damage to or loss of data, programs or
-equipment, and unavailability or interruption of operations. </span></p>
-
-<p><b><span style='font-size:10.0pt'>6. DISCLAIMER OF LIABILITY</span></b> </p>
-
-<p><span style='font-size:10.0pt'>EXCEPT AS EXPRESSLY SET FORTH IN THIS
-AGREEMENT, NEITHER RECIPIENT NOR ANY CONTRIBUTORS SHALL HAVE ANY LIABILITY FOR
-ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
-(INCLUDING WITHOUT LIMITATION LOST PROFITS), HOWEVER CAUSED AND ON ANY THEORY
-OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
-NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OR DISTRIBUTION OF
-THE PROGRAM OR THE EXERCISE OF ANY RIGHTS GRANTED HEREUNDER, EVEN IF ADVISED OF
-THE POSSIBILITY OF SUCH DAMAGES.</span> </p>
-
-<p><b><span style='font-size:10.0pt'>7. GENERAL</span></b> </p>
-
-<p><span style='font-size:10.0pt'>If any provision of this Agreement is invalid
-or unenforceable under applicable law, it shall not affect the validity or
-enforceability of the remainder of the terms of this Agreement, and without
-further action by the parties hereto, such provision shall be reformed to the
-minimum extent necessary to make such provision valid and enforceable.</span> </p>
-
-<p><span style='font-size:10.0pt'>If Recipient institutes patent litigation
-against any entity (including a cross-claim or counterclaim in a lawsuit)
-alleging that the Program itself (excluding combinations of the Program with
-other software or hardware) infringes such Recipient's patent(s), then such
-Recipient's rights granted under Section 2(b) shall terminate as of the date
-such litigation is filed. </span></p>
-
-<p><span style='font-size:10.0pt'>All Recipient's rights under this Agreement
-shall terminate if it fails to comply with any of the material terms or
-conditions of this Agreement and does not cure such failure in a reasonable
-period of time after becoming aware of such noncompliance. If all Recipient's
-rights under this Agreement terminate, Recipient agrees to cease use and
-distribution of the Program as soon as reasonably practicable. However,
-Recipient's obligations under this Agreement and any licenses granted by
-Recipient relating to the Program shall continue and survive. </span></p>
-
-<p><span style='font-size:10.0pt'>Everyone is permitted to copy and distribute
-copies of this Agreement, but in order to avoid inconsistency the Agreement is
-copyrighted and may only be modified in the following manner. The Agreement
-Steward reserves the right to publish new versions (including revisions) of
-this Agreement from time to time. No one other than the Agreement Steward has
-the right to modify this Agreement. The Eclipse Foundation is the initial
-Agreement Steward. The Eclipse Foundation may assign the responsibility to
-serve as the Agreement Steward to a suitable separate entity. Each new version
-of the Agreement will be given a distinguishing version number. The Program
-(including Contributions) may always be distributed subject to the version of
-the Agreement under which it was received. In addition, after a new version of
-the Agreement is published, Contributor may elect to distribute the Program
-(including its Contributions) under the new version. Except as expressly stated
-in Sections 2(a) and 2(b) above, Recipient receives no rights or licenses to
-the intellectual property of any Contributor under this Agreement, whether
-expressly, by implication, estoppel or otherwise. All rights in the Program not
-expressly granted under this Agreement are reserved.</span> </p>
-
-<p><span style='font-size:10.0pt'>This Agreement is governed by the laws of the
-State of New York and the intellectual property laws of the United States of
-America. No party to this Agreement will bring a legal action under this
-Agreement more than one year after the cause of action arose. Each party waives
-its rights to a jury trial in any resulting litigation.</span> </p>
-
-<p class=MsoNormal><![if !supportEmptyParas]>&nbsp;<![endif]><o:p></o:p></p>
-
-</div>
-
-</body>
-
-</html>
\ No newline at end of file
diff --git a/assembly/features/org.eclipse.jpt/feature.properties b/assembly/features/org.eclipse.jpt/feature.properties
deleted file mode 100644
index 4b8dfd7..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=Dali Java Persistence Tools
-
-# "providerName" property - name of the company that provides the feature
-providerName=Eclipse Web Tools Platform Project
-
-# "updateSiteName" property - label for the update site
-updateSiteName=The Eclipse Web Tools Platform (WTP) Project update site
-
-# "description" property - description of the feature
-description=Eclipse Web Tools Platform Project Tools - Runtime
-
-# "copyright" property - text of the "Feature Update Copyright"
-copyright=\
-Copyright (c) 2006-2009 Oracle Corporation.\n\
-All rights reserved. This program and the accompanying materials\n\
-are made available under the terms of the Eclipse Public License v1.0\n\
-which accompanies this distribution, and is available at\n\
-http://www.eclipse.org/legal/epl-v10.html\n\
-\n\
-Contributors:\n\
-    Oracle - initial API and implementation\n
-################ end of copyright property ####################################
-
-# "licenseURL" property - URL of the "Feature License"
-# do not translate value - just change to point to a locale-specific HTML page
-licenseURL=license.html
-
-# "license" property - text of the "Feature Update License"
-# should be plain text version of license agreement pointed to be "licenseURL"
-license=\
-ECLIPSE FOUNDATION SOFTWARE USER AGREEMENT\n\
-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 d33f93f..0000000
--- a/assembly/features/org.eclipse.jpt/feature.xml
+++ /dev/null
@@ -1,42 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<feature
-      id="org.eclipse.jpt"
-      label="%featureName"
-      version="2.1.0.qualifier"
-      provider-name="%providerName"
-      plugin="org.eclipse.jpt"
-      image="eclipse_update_120.jpg">
-
-   <description>
-      %description
-   </description>
-
-   <copyright>
-      %copyright
-   </copyright>
-
-   <license url="license.html">
-      %license
-   </license>
-
-   <url>
-      <update label="%updateSiteName" url="http://download.eclipse.org/webtools/updates"/>
-      <discovery label="Web Tools Platform (WTP) Updates" url="http://download.eclipse.org/webtools/updates"/>
-   </url>
-
-   <includes
-         id="org.eclipse.jpt.feature"
-         version="0.0.0"/>
-
-   <includes
-         id="org.eclipse.jpt.eclipselink.feature"
-         version="0.0.0"/>
-
-   <plugin
-         id="org.eclipse.jpt"
-         download-size="0"
-         install-size="0"
-         version="0.0.0"
-         unpack="false"/>
-
-</feature>
diff --git a/assembly/features/org.eclipse.jpt/license.html b/assembly/features/org.eclipse.jpt/license.html
deleted file mode 100644
index 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/features/org.eclipse.jpt_sdk.assembly.feature/.cvsignore b/assembly/features/org.eclipse.jpt_sdk.assembly.feature/.cvsignore
deleted file mode 100644
index bc2abf7..0000000
--- a/assembly/features/org.eclipse.jpt_sdk.assembly.feature/.cvsignore
+++ /dev/null
@@ -1,4 +0,0 @@
-*.bin.dist.zip
-build.xml
-features
-plugins
diff --git a/assembly/features/org.eclipse.jpt_sdk.assembly.feature/.project b/assembly/features/org.eclipse.jpt_sdk.assembly.feature/.project
deleted file mode 100644
index e901372..0000000
--- a/assembly/features/org.eclipse.jpt_sdk.assembly.feature/.project
+++ /dev/null
@@ -1,17 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<projectDescription>
-	<name>org.eclipse.jpt_sdk.assembly.feature</name>
-	<comment></comment>
-	<projects>
-	</projects>
-	<buildSpec>
-		<buildCommand>
-			<name>org.eclipse.pde.FeatureBuilder</name>
-			<arguments>
-			</arguments>
-		</buildCommand>
-	</buildSpec>
-	<natures>
-		<nature>org.eclipse.pde.FeatureNature</nature>
-	</natures>
-</projectDescription>
diff --git a/assembly/features/org.eclipse.jpt_sdk.assembly.feature/build.properties b/assembly/features/org.eclipse.jpt_sdk.assembly.feature/build.properties
deleted file mode 100644
index 7200939..0000000
--- a/assembly/features/org.eclipse.jpt_sdk.assembly.feature/build.properties
+++ /dev/null
@@ -1,15 +0,0 @@
-###############################################################################
-# Copyright (c) 2006 Oracle.
-# All rights reserved. This program and the accompanying materials
-# are made available under the terms of the Eclipse Public License v1.0
-# which accompanies this distribution, and is available at
-# http://www.eclipse.org/legal/epl-v10.html
-# 
-# Contributors:
-#     Oracle. - initial API and implementation
-###############################################################################
-bin.includes = feature.xml,\
-               eclipse_update_120.jpg,\
-               epl-v10.html,\
-               license.html,\
-               feature.properties
diff --git a/assembly/features/org.eclipse.jpt_sdk.assembly.feature/eclipse_update_120.jpg b/assembly/features/org.eclipse.jpt_sdk.assembly.feature/eclipse_update_120.jpg
deleted file mode 100644
index bfdf708..0000000
--- a/assembly/features/org.eclipse.jpt_sdk.assembly.feature/eclipse_update_120.jpg
+++ /dev/null
Binary files differ
diff --git a/assembly/features/org.eclipse.jpt_sdk.assembly.feature/epl-v10.html b/assembly/features/org.eclipse.jpt_sdk.assembly.feature/epl-v10.html
deleted file mode 100644
index ed4b196..0000000
--- a/assembly/features/org.eclipse.jpt_sdk.assembly.feature/epl-v10.html
+++ /dev/null
@@ -1,328 +0,0 @@
-<html xmlns:o="urn:schemas-microsoft-com:office:office"
-xmlns:w="urn:schemas-microsoft-com:office:word"
-xmlns="http://www.w3.org/TR/REC-html40">
-
-<head>
-<meta http-equiv=Content-Type content="text/html; charset=windows-1252">
-<meta name=ProgId content=Word.Document>
-<meta name=Generator content="Microsoft Word 9">
-<meta name=Originator content="Microsoft Word 9">
-<link rel=File-List
-href="./Eclipse%20EPL%202003_11_10%20Final_files/filelist.xml">
-<title>Eclipse Public License - Version 1.0</title>
-<!--[if gte mso 9]><xml>
- <o:DocumentProperties>
-  <o:Revision>2</o:Revision>
-  <o:TotalTime>3</o:TotalTime>
-  <o:Created>2004-03-05T23:03:00Z</o:Created>
-  <o:LastSaved>2004-03-05T23:03:00Z</o:LastSaved>
-  <o:Pages>4</o:Pages>
-  <o:Words>1626</o:Words>
-  <o:Characters>9270</o:Characters>
-   <o:Lines>77</o:Lines>
-  <o:Paragraphs>18</o:Paragraphs>
-  <o:CharactersWithSpaces>11384</o:CharactersWithSpaces>
-  <o:Version>9.4402</o:Version>
- </o:DocumentProperties>
-</xml><![endif]--><!--[if gte mso 9]><xml>
- <w:WordDocument>
-  <w:TrackRevisions/>
- </w:WordDocument>
-</xml><![endif]-->
-<style>
-<!--
- /* Font Definitions */
-@font-face
-	{font-family:Tahoma;
-	panose-1:2 11 6 4 3 5 4 4 2 4;
-	mso-font-charset:0;
-	mso-generic-font-family:swiss;
-	mso-font-pitch:variable;
-	mso-font-signature:553679495 -2147483648 8 0 66047 0;}
- /* Style Definitions */
-p.MsoNormal, li.MsoNormal, div.MsoNormal
-	{mso-style-parent:"";
-	margin:0in;
-	margin-bottom:.0001pt;
-	mso-pagination:widow-orphan;
-	font-size:12.0pt;
-	font-family:"Times New Roman";
-	mso-fareast-font-family:"Times New Roman";}
-p
-	{margin-right:0in;
-	mso-margin-top-alt:auto;
-	mso-margin-bottom-alt:auto;
-	margin-left:0in;
-	mso-pagination:widow-orphan;
-	font-size:12.0pt;
-	font-family:"Times New Roman";
-	mso-fareast-font-family:"Times New Roman";}
-p.BalloonText, li.BalloonText, div.BalloonText
-	{mso-style-name:"Balloon Text";
-	margin:0in;
-	margin-bottom:.0001pt;
-	mso-pagination:widow-orphan;
-	font-size:8.0pt;
-	font-family:Tahoma;
-	mso-fareast-font-family:"Times New Roman";}
-@page Section1
-	{size:8.5in 11.0in;
-	margin:1.0in 1.25in 1.0in 1.25in;
-	mso-header-margin:.5in;
-	mso-footer-margin:.5in;
-	mso-paper-source:0;}
-div.Section1
-	{page:Section1;}
--->
-</style>
-</head>
-
-<body lang=EN-US style='tab-interval:.5in'>
-
-<div class=Section1>
-
-<p align=center style='text-align:center'><b>Eclipse Public License - v 1.0</b>
-</p>
-
-<p><span style='font-size:10.0pt'>THE ACCOMPANYING PROGRAM IS PROVIDED UNDER
-THE TERMS OF THIS ECLIPSE PUBLIC LICENSE (&quot;AGREEMENT&quot;). ANY USE,
-REPRODUCTION OR DISTRIBUTION OF THE PROGRAM CONSTITUTES RECIPIENT'S ACCEPTANCE
-OF THIS AGREEMENT.</span> </p>
-
-<p><b><span style='font-size:10.0pt'>1. DEFINITIONS</span></b> </p>
-
-<p><span style='font-size:10.0pt'>&quot;Contribution&quot; means:</span> </p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>a)
-in the case of the initial Contributor, the initial code and documentation
-distributed under this Agreement, and<br clear=left>
-b) in the case of each subsequent Contributor:</span></p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>i)
-changes to the Program, and</span></p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>ii)
-additions to the Program;</span></p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>where
-such changes and/or additions to the Program originate from and are distributed
-by that particular Contributor. A Contribution 'originates' from a Contributor
-if it was added to the Program by such Contributor itself or anyone acting on
-such Contributor's behalf. Contributions do not include additions to the
-Program which: (i) are separate modules of software distributed in conjunction
-with the Program under their own license agreement, and (ii) are not derivative
-works of the Program. </span></p>
-
-<p><span style='font-size:10.0pt'>&quot;Contributor&quot; means any person or
-entity that distributes the Program.</span> </p>
-
-<p><span style='font-size:10.0pt'>&quot;Licensed Patents &quot; mean patent
-claims licensable by a Contributor which are necessarily infringed by the use
-or sale of its Contribution alone or when combined with the Program. </span></p>
-
-<p><span style='font-size:10.0pt'>&quot;Program&quot; means the Contributions
-distributed in accordance with this Agreement.</span> </p>
-
-<p><span style='font-size:10.0pt'>&quot;Recipient&quot; means anyone who
-receives the Program under this Agreement, including all Contributors.</span> </p>
-
-<p><b><span style='font-size:10.0pt'>2. GRANT OF RIGHTS</span></b> </p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>a)
-Subject to the terms of this Agreement, each Contributor hereby grants Recipient
-a non-exclusive, worldwide, royalty-free copyright license to<span
-style='color:red'> </span>reproduce, prepare derivative works of, publicly
-display, publicly perform, distribute and sublicense the Contribution of such
-Contributor, if any, and such derivative works, in source code and object code
-form.</span></p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>b)
-Subject to the terms of this Agreement, each Contributor hereby grants
-Recipient a non-exclusive, worldwide,<span style='color:green'> </span>royalty-free
-patent license under Licensed Patents to make, use, sell, offer to sell, import
-and otherwise transfer the Contribution of such Contributor, if any, in source
-code and object code form. This patent license shall apply to the combination
-of the Contribution and the Program if, at the time the Contribution is added
-by the Contributor, such addition of the Contribution causes such combination
-to be covered by the Licensed Patents. The patent license shall not apply to
-any other combinations which include the Contribution. No hardware per se is
-licensed hereunder. </span></p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>c)
-Recipient understands that although each Contributor grants the licenses to its
-Contributions set forth herein, no assurances are provided by any Contributor
-that the Program does not infringe the patent or other intellectual property
-rights of any other entity. Each Contributor disclaims any liability to Recipient
-for claims brought by any other entity based on infringement of intellectual
-property rights or otherwise. As a condition to exercising the rights and
-licenses granted hereunder, each Recipient hereby assumes sole responsibility
-to secure any other intellectual property rights needed, if any. For example,
-if a third party patent license is required to allow Recipient to distribute
-the Program, it is Recipient's responsibility to acquire that license before
-distributing the Program.</span></p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>d)
-Each Contributor represents that to its knowledge it has sufficient copyright
-rights in its Contribution, if any, to grant the copyright license set forth in
-this Agreement. </span></p>
-
-<p><b><span style='font-size:10.0pt'>3. REQUIREMENTS</span></b> </p>
-
-<p><span style='font-size:10.0pt'>A Contributor may choose to distribute the
-Program in object code form under its own license agreement, provided that:</span>
-</p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>a)
-it complies with the terms and conditions of this Agreement; and</span></p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>b)
-its license agreement:</span></p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>i)
-effectively disclaims on behalf of all Contributors all warranties and
-conditions, express and implied, including warranties or conditions of title
-and non-infringement, and implied warranties or conditions of merchantability
-and fitness for a particular purpose; </span></p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>ii)
-effectively excludes on behalf of all Contributors all liability for damages,
-including direct, indirect, special, incidental and consequential damages, such
-as lost profits; </span></p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>iii)
-states that any provisions which differ from this Agreement are offered by that
-Contributor alone and not by any other party; and</span></p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>iv)
-states that source code for the Program is available from such Contributor, and
-informs licensees how to obtain it in a reasonable manner on or through a
-medium customarily used for software exchange.<span style='color:blue'> </span></span></p>
-
-<p><span style='font-size:10.0pt'>When the Program is made available in source
-code form:</span> </p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>a)
-it must be made available under this Agreement; and </span></p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>b) a
-copy of this Agreement must be included with each copy of the Program. </span></p>
-
-<p><span style='font-size:10.0pt'>Contributors may not remove or alter any
-copyright notices contained within the Program. </span></p>
-
-<p><span style='font-size:10.0pt'>Each Contributor must identify itself as the
-originator of its Contribution, if any, in a manner that reasonably allows
-subsequent Recipients to identify the originator of the Contribution. </span></p>
-
-<p><b><span style='font-size:10.0pt'>4. COMMERCIAL DISTRIBUTION</span></b> </p>
-
-<p><span style='font-size:10.0pt'>Commercial distributors of software may
-accept certain responsibilities with respect to end users, business partners
-and the like. While this license is intended to facilitate the commercial use
-of the Program, the Contributor who includes the Program in a commercial
-product offering should do so in a manner which does not create potential
-liability for other Contributors. Therefore, if a Contributor includes the
-Program in a commercial product offering, such Contributor (&quot;Commercial
-Contributor&quot;) hereby agrees to defend and indemnify every other
-Contributor (&quot;Indemnified Contributor&quot;) against any losses, damages and
-costs (collectively &quot;Losses&quot;) arising from claims, lawsuits and other
-legal actions brought by a third party against the Indemnified Contributor to
-the extent caused by the acts or omissions of such Commercial Contributor in
-connection with its distribution of the Program in a commercial product
-offering. The obligations in this section do not apply to any claims or Losses
-relating to any actual or alleged intellectual property infringement. In order
-to qualify, an Indemnified Contributor must: a) promptly notify the Commercial
-Contributor in writing of such claim, and b) allow the Commercial Contributor
-to control, and cooperate with the Commercial Contributor in, the defense and
-any related settlement negotiations. The Indemnified Contributor may participate
-in any such claim at its own expense.</span> </p>
-
-<p><span style='font-size:10.0pt'>For example, a Contributor might include the
-Program in a commercial product offering, Product X. That Contributor is then a
-Commercial Contributor. If that Commercial Contributor then makes performance
-claims, or offers warranties related to Product X, those performance claims and
-warranties are such Commercial Contributor's responsibility alone. Under this
-section, the Commercial Contributor would have to defend claims against the
-other Contributors related to those performance claims and warranties, and if a
-court requires any other Contributor to pay any damages as a result, the
-Commercial Contributor must pay those damages.</span> </p>
-
-<p><b><span style='font-size:10.0pt'>5. NO WARRANTY</span></b> </p>
-
-<p><span style='font-size:10.0pt'>EXCEPT AS EXPRESSLY SET FORTH IN THIS
-AGREEMENT, THE PROGRAM IS PROVIDED ON AN &quot;AS IS&quot; BASIS, WITHOUT
-WARRANTIES OR CONDITIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED INCLUDING,
-WITHOUT LIMITATION, ANY WARRANTIES OR CONDITIONS OF TITLE, NON-INFRINGEMENT,
-MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. Each Recipient is solely
-responsible for determining the appropriateness of using and distributing the
-Program and assumes all risks associated with its exercise of rights under this
-Agreement , including but not limited to the risks and costs of program errors,
-compliance with applicable laws, damage to or loss of data, programs or
-equipment, and unavailability or interruption of operations. </span></p>
-
-<p><b><span style='font-size:10.0pt'>6. DISCLAIMER OF LIABILITY</span></b> </p>
-
-<p><span style='font-size:10.0pt'>EXCEPT AS EXPRESSLY SET FORTH IN THIS
-AGREEMENT, NEITHER RECIPIENT NOR ANY CONTRIBUTORS SHALL HAVE ANY LIABILITY FOR
-ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
-(INCLUDING WITHOUT LIMITATION LOST PROFITS), HOWEVER CAUSED AND ON ANY THEORY
-OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
-NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OR DISTRIBUTION OF
-THE PROGRAM OR THE EXERCISE OF ANY RIGHTS GRANTED HEREUNDER, EVEN IF ADVISED OF
-THE POSSIBILITY OF SUCH DAMAGES.</span> </p>
-
-<p><b><span style='font-size:10.0pt'>7. GENERAL</span></b> </p>
-
-<p><span style='font-size:10.0pt'>If any provision of this Agreement is invalid
-or unenforceable under applicable law, it shall not affect the validity or
-enforceability of the remainder of the terms of this Agreement, and without
-further action by the parties hereto, such provision shall be reformed to the
-minimum extent necessary to make such provision valid and enforceable.</span> </p>
-
-<p><span style='font-size:10.0pt'>If Recipient institutes patent litigation
-against any entity (including a cross-claim or counterclaim in a lawsuit)
-alleging that the Program itself (excluding combinations of the Program with
-other software or hardware) infringes such Recipient's patent(s), then such
-Recipient's rights granted under Section 2(b) shall terminate as of the date
-such litigation is filed. </span></p>
-
-<p><span style='font-size:10.0pt'>All Recipient's rights under this Agreement
-shall terminate if it fails to comply with any of the material terms or
-conditions of this Agreement and does not cure such failure in a reasonable
-period of time after becoming aware of such noncompliance. If all Recipient's
-rights under this Agreement terminate, Recipient agrees to cease use and
-distribution of the Program as soon as reasonably practicable. However,
-Recipient's obligations under this Agreement and any licenses granted by
-Recipient relating to the Program shall continue and survive. </span></p>
-
-<p><span style='font-size:10.0pt'>Everyone is permitted to copy and distribute
-copies of this Agreement, but in order to avoid inconsistency the Agreement is
-copyrighted and may only be modified in the following manner. The Agreement
-Steward reserves the right to publish new versions (including revisions) of
-this Agreement from time to time. No one other than the Agreement Steward has
-the right to modify this Agreement. The Eclipse Foundation is the initial
-Agreement Steward. The Eclipse Foundation may assign the responsibility to
-serve as the Agreement Steward to a suitable separate entity. Each new version
-of the Agreement will be given a distinguishing version number. The Program
-(including Contributions) may always be distributed subject to the version of
-the Agreement under which it was received. In addition, after a new version of
-the Agreement is published, Contributor may elect to distribute the Program
-(including its Contributions) under the new version. Except as expressly stated
-in Sections 2(a) and 2(b) above, Recipient receives no rights or licenses to
-the intellectual property of any Contributor under this Agreement, whether
-expressly, by implication, estoppel or otherwise. All rights in the Program not
-expressly granted under this Agreement are reserved.</span> </p>
-
-<p><span style='font-size:10.0pt'>This Agreement is governed by the laws of the
-State of New York and the intellectual property laws of the United States of
-America. No party to this Agreement will bring a legal action under this
-Agreement more than one year after the cause of action arose. Each party waives
-its rights to a jury trial in any resulting litigation.</span> </p>
-
-<p class=MsoNormal><![if !supportEmptyParas]>&nbsp;<![endif]><o:p></o:p></p>
-
-</div>
-
-</body>
-
-</html>
\ No newline at end of file
diff --git a/assembly/features/org.eclipse.jpt_sdk.assembly.feature/feature.properties b/assembly/features/org.eclipse.jpt_sdk.assembly.feature/feature.properties
deleted file mode 100644
index 1f4dd69..0000000
--- a/assembly/features/org.eclipse.jpt_sdk.assembly.feature/feature.properties
+++ /dev/null
@@ -1,145 +0,0 @@
-###############################################################################
-# Copyright (c) 2006 Oracle.
-# All rights reserved. This program and the accompanying materials
-# are made available under the terms of the Eclipse Public License v1.0
-# which accompanies this distribution, and is available at
-# http://www.eclipse.org/legal/epl-v10.html
-# 
-# Contributors:
-#     Oracle. - initial API and implementation
-###############################################################################
-# feature.properties
-# contains externalized strings for feature.xml
-# "%foo" in feature.xml corresponds to the key "foo" in this file
-# java.io.Properties file (ISO 8859-1 with "\" escapes)
-# This file should be translated.
-
-# "featureName" property - name of the feature
-featureName=Dali Java Persistence Tools SDK
-
-# "providerName" property - name of the company that provides the feature
-providerName=Eclipse Web Tools Platform
-
-# "updateSiteName" property - label for the update site
-updateSiteName=The Eclipse Web Tools Platform (WTP) Project update site
-
-# "description" property - description of the feature
-description=Dali Java Persistence Tools project SDK
-
-# "copyright" property - text of the "Feature Update Copyright"
-copyright=\
-Copyright (c) 2006 Oracle Corporation.\n\
-All rights reserved. This program and the accompanying materials\n\
-are made available under the terms of the Eclipse Public License v1.0\n\
-which accompanies this distribution, and is available at\n\
-http://www.eclipse.org/legal/epl-v10.html\n\
-\n\
-Contributors:\n\
-    Oracle - initial API and implementation\n
-################ end of copyright property ####################################
-
-# "licenseURL" property - URL of the "Feature License"
-# do not translate value - just change to point to a locale-specific HTML page
-licenseURL=license.html
-
-# "license" property - text of the "Feature Update License"
-# should be plain text version of license agreement pointed to be "licenseURL"
-license=\
-ECLIPSE FOUNDATION SOFTWARE USER AGREEMENT\n\
-June 06, 2007\n\
-\n\
-Usage Of Content\n\
-\n\
-THE ECLIPSE FOUNDATION MAKES AVAILABLE SOFTWARE, DOCUMENTATION, INFORMATION AND/OR\n\
-OTHER MATERIALS FOR OPEN SOURCE PROJECTS (COLLECTIVELY "CONTENT").\n\
-USE OF THE CONTENT IS GOVERNED BY THE TERMS AND CONDITIONS OF THIS\n\
-AGREEMENT AND/OR THE TERMS AND CONDITIONS OF LICENSE AGREEMENTS OR\n\
-NOTICES INDICATED OR REFERENCED BELOW. BY USING THE CONTENT, YOU\n\
-AGREE THAT YOUR USE OF THE CONTENT IS GOVERNED BY THIS AGREEMENT\n\
-AND/OR THE TERMS AND CONDITIONS OF ANY APPLICABLE LICENSE AGREEMENTS\n\
-OR NOTICES INDICATED OR REFERENCED BELOW. IF YOU DO NOT AGREE TO THE\n\
-TERMS AND CONDITIONS OF THIS AGREEMENT AND THE TERMS AND CONDITIONS\n\
-OF ANY APPLICABLE LICENSE AGREEMENTS OR NOTICES INDICATED OR REFERENCED\n\
-BELOW, THEN YOU MAY NOT USE THE CONTENT.\n\
-\n\
-Applicable Licenses\n\
-\n\
-Unless otherwise indicated, all Content made available by the Eclipse Foundation\n\
-is provided to you under the terms and conditions of the Eclipse Public\n\
-License Version 1.0 ("EPL"). A copy of the EPL is provided with this\n\
-Content and is also available at http://www.eclipse.org/legal/epl-v10.html.\n\
-For purposes of the EPL, "Program" will mean the Content.\n\
-\n\
-Content includes, but is not limited to, source code, object code,\n\
-documentation and other files maintained in the Eclipse.org CVS\n\
-repository ("Repository") in CVS modules ("Modules") and made available\n\
-as downloadable archives ("Downloads").\n\
-\n\
-   - Content may be structured and packaged into modules to facilitate delivering,\n\
-     extending, and upgrading the Content. Typical modules may include plug-ins ("Plug-ins"),\n\
-     plug-in fragments ("Fragments"), and features ("Features").\n\
-   - Each Plug-in or Fragment may be packaged as a sub-directory or JAR (Java? ARchive)\n\
-     in a directory named "plugins".\n\
-   - A Feature is a bundle of one or more Plug-ins and/or Fragments and associated material.\n\
-     Each Feature may be packaged as a sub-directory in a directory named "features".\n\
-     Within a Feature, files named "feature.xml" may contain a list of the names and version\n\
-     numbers of the Plug-ins and/or Fragments associated with that Feature.\n\
-   - Features may also include other Features ("Included Features"). Within a Feature, files\n\
-     named "feature.xml" may contain a list of the names and version numbers of Included Features.\n\
-\n\
-Features may also include other Features ("Included Features"). Files named\n\
-"feature.xml" may contain a list of the names and version numbers of\n\
-Included Features.\n\
-\n\
-The terms and conditions governing Plug-ins and Fragments should be\n\
-contained in files named "about.html" ("Abouts"). The terms and\n\
-conditions governing Features and Included Features should be contained\n\
-in files named "license.html" ("Feature Licenses"). Abouts and Feature\n\
-Licenses may be located in any directory of a Download or Module\n\
-including, but not limited to the following locations:\n\
-\n\
-   - The top-level (root) directory\n\
-   - Plug-in and Fragment directories\n\
-   - Inside Plug-ins and Fragments packaged as JARs\n\
-   - Sub-directories of the directory named "src" of certain Plug-ins\n\
-   - Feature directories\n\
-\n\
-Note: if a Feature made available by the Eclipse Foundation is installed using the\n\
-Eclipse Update Manager, you must agree to a license ("Feature Update\n\
-License") during the installation process. If the Feature contains\n\
-Included Features, the Feature Update License should either provide you\n\
-with the terms and conditions governing the Included Features or inform\n\
-you where you can locate them. Feature Update Licenses may be found in\n\
-the "license" property of files named "feature.properties". Such Abouts,\n\
-Feature Licenses and Feature Update Licenses contain the terms and\n\
-conditions (or references to such terms and conditions) that govern your\n\
-use of the associated Content in that directory.\n\
-\n\
-THE ABOUTS, FEATURE LICENSES AND FEATURE UPDATE LICENSES MAY REFER\n\
-TO THE EPL OR OTHER LICENSE AGREEMENTS, NOTICES OR TERMS AND CONDITIONS.\n\
-SOME OF THESE OTHER LICENSE AGREEMENTS MAY INCLUDE (BUT ARE NOT LIMITED TO):\n\
-\n\
-    - Common Public License Version 1.0 (available at http://www.eclipse.org/legal/cpl-v10.html)\n\
-    - Apache Software License 1.1 (available at http://www.apache.org/licenses/LICENSE)\n\
-    - Apache Software License 2.0 (available at http://www.apache.org/licenses/LICENSE-2.0)\n\
-    - IBM Public License 1.0 (available at http://oss.software.ibm.com/developerworks/opensource/license10.html)\n\
-    - Metro Link Public License 1.00 (available at http://www.opengroup.org/openmotif/supporters/metrolink/license.html)\n\
-    - Mozilla Public License Version 1.1 (available at http://www.mozilla.org/MPL/MPL-1.1.html)\n\
-    - Common Development and Distribution License (CDDL) Version 1.0 (available at http://www.sun.com/cddl/cddl.html)\n\
-\n\
-IT IS YOUR OBLIGATION TO READ AND ACCEPT ALL SUCH TERMS AND CONDITIONS PRIOR\n\
-TO USE OF THE CONTENT. If no About, Feature License or Feature Update License\n\
-is provided, please contact the Eclipse Foundation to determine what terms and conditions\n\
-govern that particular Content.\n\
-\n\
-Cryptography\n\
-\n\
-Content may contain encryption software. The country in which you are\n\
-currently may have restrictions on the import, possession, and use,\n\
-and/or re-export to another country, of encryption software. BEFORE\n\
-using any encryption software, please check the country's laws,\n\
-regulations and policies concerning the import, possession, or use,\n\
-and re-export of encryption software, to see if this is permitted.\n\
-\n\
-Java and all Java-based trademarks are trademarks of Sun Microsystems, Inc. in the United States, other countries, or both.\n
-########### end of license property ##########################################
diff --git a/assembly/features/org.eclipse.jpt_sdk.assembly.feature/feature.xml b/assembly/features/org.eclipse.jpt_sdk.assembly.feature/feature.xml
deleted file mode 100644
index a83e372..0000000
--- a/assembly/features/org.eclipse.jpt_sdk.assembly.feature/feature.xml
+++ /dev/null
@@ -1,34 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<feature
-      id="org.eclipse.jpt_sdk.assembly.feature"
-      label="%featureName"
-      version="2.2.0.qualifier"
-      provider-name="%providerName"
-      image="eclipse_update_120.jpg">
-
-   <description>
-      %description
-   </description>
-
-   <copyright>
-      %copyright
-   </copyright>
-
-   <license url="license.html">
-      %license
-   </license>
-
-   <url>
-      <update label="%updateSiteName" url="http://download.eclipse.org/webtools/updates"/>
-      <discovery label="Web Tools Platform (WTP) Updates" url="http://download.eclipse.org/webtools/updates"/>
-   </url>
-
-   <includes
-         id="org.eclipse.jpt_sdk.feature"
-         version="0.0.0"/>
-
-   <includes
-         id="org.eclipse.jpt.eclipselink_sdk.feature"
-         version="0.0.0"/>
-
-</feature>
diff --git a/assembly/features/org.eclipse.jpt_sdk.assembly.feature/license.html b/assembly/features/org.eclipse.jpt_sdk.assembly.feature/license.html
deleted file mode 100644
index 76abfb4..0000000
--- a/assembly/features/org.eclipse.jpt_sdk.assembly.feature/license.html
+++ /dev/null
@@ -1,98 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3c.org/TR/1999/REC-html401-19991224/loose.dtd">
-<!-- saved from url=(0044)http://www.eclipse.org/legal/epl/notice.html -->
-<HTML><HEAD><TITLE>Eclipse.org Software User Agreement</TITLE>
-<META http-equiv=Content-Type content="text/html; charset=iso-8859-1">
-<META content="MSHTML 6.00.2800.1479" name=GENERATOR></HEAD>
-<BODY lang=EN-US vLink=purple link=blue>
-<H2>Eclipse Foundation Software User Agreement</H2>
-<P>June 06, 2007</P>
-<H3>Usage Of Content</H3>
-<P>THE ECLIPSE FOUNDATION MAKES AVAILABLE SOFTWARE, DOCUMENTATION, INFORMATION 
-AND/OR OTHER MATERIALS FOR OPEN SOURCE PROJECTS (COLLECTIVELY "CONTENT"). USE OF 
-THE CONTENT IS GOVERNED BY THE TERMS AND CONDITIONS OF THIS AGREEMENT AND/OR THE 
-TERMS AND CONDITIONS OF LICENSE AGREEMENTS OR NOTICES INDICATED OR REFERENCED 
-BELOW. BY USING THE CONTENT, YOU AGREE THAT YOUR USE OF THE CONTENT IS GOVERNED 
-BY THIS AGREEMENT AND/OR THE TERMS AND CONDITIONS OF ANY APPLICABLE LICENSE 
-AGREEMENTS OR NOTICES INDICATED OR REFERENCED BELOW. IF YOU DO NOT AGREE TO THE 
-TERMS AND CONDITIONS OF THIS AGREEMENT AND THE TERMS AND CONDITIONS OF ANY 
-APPLICABLE LICENSE AGREEMENTS OR NOTICES INDICATED OR REFERENCED BELOW, THEN YOU 
-MAY NOT USE THE CONTENT.</P>
-<H3>Applicable Licenses</H3>
-<P>Unless otherwise indicated, all Content made available by the Eclipse 
-Foundation is provided to you under the terms and conditions of the Eclipse 
-Public License Version 1.0 ("EPL"). A copy of the EPL is provided with this 
-Content and is also available at <A 
-href="http://www.eclipse.org/legal/epl-v10.html">http://www.eclipse.org/legal/epl-v10.html</A>. 
-For purposes of the EPL, "Program" will mean the Content.</P>
-<P>Content includes, but is not limited to, source code, object code, 
-documentation and other files maintained in the Eclipse.org CVS repository 
-("Repository") in CVS modules ("Modules") and made available as downloadable 
-archives ("Downloads").</P>
-<P>Content may be apportioned into plug-ins ("Plug-ins"), plug-in fragments 
-("Fragments"), and features ("Features"). A Feature is a bundle of one or more 
-Plug-ins and/or Fragments and associated material. Files named "feature.xml" may 
-contain a list of the names and version numbers of the Plug-ins and/or Fragments 
-associated with a Feature. Plug-ins and Fragments are located in directories 
-named "plugins" and Features are located in directories named "features".</P>
-<P>Features may also include other Features ("Included Features"). Files named 
-"feature.xml" may contain a list of the names and version numbers of Included 
-Features.</P>
-<P>The terms and conditions governing Plug-ins and Fragments should be contained 
-in files named "about.html" ("Abouts"). The terms and conditions governing 
-Features and Included Features should be contained in files named "license.html" 
-("Feature Licenses"). Abouts and Feature Licenses may be located in any 
-directory of a Download or Module including, but not limited to the following 
-locations:</P>
-<UL>
-  <LI>The top-level (root) directory 
-  <LI>Plug-in and Fragment directories 
-  <LI>Subdirectories of the directory named "src" of certain Plug-ins 
-  <LI>Feature directories </LI></UL>
-<P>Note: if a Feature made available by the Eclipse Foundation is installed 
-using the Eclipse Update Manager, you must agree to a license ("Feature Update 
-License") during the installation process. If the Feature contains Included 
-Features, the Feature Update License should either provide you with the terms 
-and conditions governing the Included Features or inform you where you can 
-locate them. Feature Update Licenses may be found in the "license" property of 
-files named "feature.properties". Such Abouts, Feature Licenses and Feature 
-Update Licenses contain the terms and conditions (or references to such terms 
-and conditions) that govern your use of the associated Content in that 
-directory.</P>
-<P>THE ABOUTS, FEATURE LICENSES AND FEATURE UPDATE LICENSES MAY REFER TO THE EPL 
-OR OTHER LICENSE AGREEMENTS, NOTICES OR TERMS AND CONDITIONS. SOME OF THESE 
-OTHER LICENSE AGREEMENTS MAY INCLUDE (BUT ARE NOT LIMITED TO):</P>
-<UL>
-  <LI>Common Public License Version 1.0 (available at <A 
-  href="http://www.eclipse.org/legal/cpl-v10.html">http://www.eclipse.org/legal/cpl-v10.html</A>) 
-
-  <LI>Apache Software License 1.1 (available at <A 
-  href="http://www.apache.org/licenses/LICENSE">http://www.apache.org/licenses/LICENSE</A>) 
-
-  <LI>Apache Software License 2.0 (available at <A 
-  href="http://www.apache.org/licenses/LICENSE-2.0">http://www.apache.org/licenses/LICENSE-2.0</A>) 
-
-  <LI>IBM Public License 1.0 (available at <A 
-  href="http://oss.software.ibm.com/developerworks/opensource/license10.html">http://oss.software.ibm.com/developerworks/opensource/license10.html</A>) 
-
-  <LI>Metro Link Public License 1.00 (available at <A 
-  href="http://www.opengroup.org/openmotif/supporters/metrolink/license.html">http://www.opengroup.org/openmotif/supporters/metrolink/license.html</A>) 
-
-  <LI>Mozilla Public License Version 1.1 (available at <A 
-  href="http://www.mozilla.org/MPL/MPL-1.1.html">http://www.mozilla.org/MPL/MPL-1.1.html</A>) 
-  </LI>
-   
-  <LI>Common Development and Distribution License (CDDL) Version 1.0 (available at <A 
-  href="http://www.sun.com/cddl/cddl.html">http://www.sun.com/cddl/cddl.html)</A>
-  </LI>
-</UL>
-<P>IT IS YOUR OBLIGATION TO READ AND ACCEPT ALL SUCH TERMS AND CONDITIONS PRIOR 
-TO USE OF THE CONTENT. If no About, Feature License or Feature Update License is 
-provided, please contact the Eclipse Foundation to determine what terms and 
-conditions govern that particular Content.</P>
-<H3>Cryptography</H3>
-<P>Content may contain encryption software. The country in which you are 
-currently may have restrictions on the import, possession, and use, and/or 
-re-export to another country, of encryption software. BEFORE using any 
-encryption software, please check the country's laws, regulations and policies 
-concerning the import, possession, or use, and re-export of encryption software, 
-to see if this is permitted.</P></BODY></HTML>
diff --git a/assembly/plugins/org.eclipse.jpt/.cvsignore b/assembly/plugins/org.eclipse.jpt/.cvsignore
deleted file mode 100644
index c9401a2..0000000
--- a/assembly/plugins/org.eclipse.jpt/.cvsignore
+++ /dev/null
@@ -1,2 +0,0 @@
-build.xml
-org.eclipse.jpt_1.0.0.*
\ No newline at end of file
diff --git a/assembly/plugins/org.eclipse.jpt/.project b/assembly/plugins/org.eclipse.jpt/.project
deleted file mode 100644
index f51b04c..0000000
--- a/assembly/plugins/org.eclipse.jpt/.project
+++ /dev/null
@@ -1,22 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<projectDescription>
-	<name>org.eclipse.jpt</name>
-	<comment></comment>
-	<projects>
-	</projects>
-	<buildSpec>
-		<buildCommand>
-			<name>org.eclipse.pde.ManifestBuilder</name>
-			<arguments>
-			</arguments>
-		</buildCommand>
-		<buildCommand>
-			<name>org.eclipse.pde.SchemaBuilder</name>
-			<arguments>
-			</arguments>
-		</buildCommand>
-	</buildSpec>
-	<natures>
-		<nature>org.eclipse.pde.PluginNature</nature>
-	</natures>
-</projectDescription>
diff --git a/assembly/plugins/org.eclipse.jpt/.settings/org.eclipse.core.resources.prefs b/assembly/plugins/org.eclipse.jpt/.settings/org.eclipse.core.resources.prefs
deleted file mode 100644
index 4aec29d..0000000
--- a/assembly/plugins/org.eclipse.jpt/.settings/org.eclipse.core.resources.prefs
+++ /dev/null
@@ -1,3 +0,0 @@
-#Sun May 27 15:10:09 EDT 2007
-eclipse.preferences.version=1
-encoding/<project>=ISO-8859-1
diff --git a/assembly/plugins/org.eclipse.jpt/META-INF/MANIFEST.MF b/assembly/plugins/org.eclipse.jpt/META-INF/MANIFEST.MF
deleted file mode 100644
index 94e3bbd..0000000
--- a/assembly/plugins/org.eclipse.jpt/META-INF/MANIFEST.MF
+++ /dev/null
@@ -1,7 +0,0 @@
-Manifest-Version: 1.0
-Bundle-ManifestVersion: 2
-Bundle-Name: %pluginName
-Bundle-SymbolicName: org.eclipse.jpt; singleton:=true
-Bundle-Version: 2.1.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 c74a186..0000000
--- a/assembly/plugins/org.eclipse.jpt/about.properties
+++ /dev/null
@@ -1,24 +0,0 @@
-###############################################################################
-# Copyright (c) 2006 Oracle.
-# All rights reserved. This program and the accompanying materials
-# are made available under the terms of the Eclipse Public License v1.0
-# which accompanies this distribution, and is available at
-# http://www.eclipse.org/legal/epl-v10.html
-# 
-# Contributors:
-#     Oracle. - initial API and implementation
-###############################################################################
-
-# about.properties
-# contains externalized strings for about.ini
-# java.io.Properties file (ISO 8859-1 with "\" escapes)
-# fill-ins are supplied by about.mappings
-# This file should be translated.
-
-blurb=Dali Java Persistence Tools\n\
-\n\
-Version: {featureVersion}\n\
-Build id: {0}\n\
-\n\
-(c) Copyright Eclipse contributors and others 2006.  All rights reserved.\n\
-Visit http://www.eclipse.org/webtools
diff --git a/assembly/plugins/org.eclipse.jpt/build.properties b/assembly/plugins/org.eclipse.jpt/build.properties
deleted file mode 100644
index 0ccfb0e..0000000
--- a/assembly/plugins/org.eclipse.jpt/build.properties
+++ /dev/null
@@ -1,19 +0,0 @@
-###############################################################################
-# Copyright (c) 2006, 2007 Oracle.
-# All rights reserved. This program and the accompanying materials
-# are made available under the terms of the Eclipse Public License v1.0
-# which accompanies this distribution, and is available at
-# http://www.eclipse.org/legal/epl-v10.html
-# 
-# Contributors:
-#     Oracle. - initial API and implementation
-###############################################################################
-bin.includes = META-INF/,\
-               about.ini,\
-               about.html,\
-               about.mappings,\
-               about.properties,\
-               eclipse32.gif,\
-               eclipse32.png,\
-               plugin.properties,\
-               component.xml
diff --git a/assembly/plugins/org.eclipse.jpt/component.xml b/assembly/plugins/org.eclipse.jpt/component.xml
deleted file mode 100644
index 11f133f..0000000
--- a/assembly/plugins/org.eclipse.jpt/component.xml
+++ /dev/null
@@ -1,12 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<component  xmlns="http://eclipse.org/wtp/releng/tools/component-model" name="org.eclipse.jpt">
-<description url=""></description>
-<component-depends unrestricted="true"></component-depends>
-<plugin id="org.eclipse.jpt" fragment="false"/>
-<plugin id="org.eclipse.jpt.core" fragment="false"/>
-<plugin id="org.eclipse.jpt.db" fragment="false"/>
-<plugin id="org.eclipse.jpt.db.ui" fragment="false"/>
-<plugin id="org.eclipse.jpt.gen" fragment="false"/>
-<plugin id="org.eclipse.jpt.ui" fragment="false"/>
-<plugin id="org.eclipse.jpt.utility" fragment="false"/>
-</component>
\ No newline at end of file
diff --git a/assembly/plugins/org.eclipse.jpt/eclipse32.gif b/assembly/plugins/org.eclipse.jpt/eclipse32.gif
deleted file mode 100644
index e6ad7cc..0000000
--- a/assembly/plugins/org.eclipse.jpt/eclipse32.gif
+++ /dev/null
Binary files differ
diff --git a/assembly/plugins/org.eclipse.jpt/eclipse32.png b/assembly/plugins/org.eclipse.jpt/eclipse32.png
deleted file mode 100644
index 568fac1..0000000
--- a/assembly/plugins/org.eclipse.jpt/eclipse32.png
+++ /dev/null
Binary files differ
diff --git a/assembly/plugins/org.eclipse.jpt/plugin.properties b/assembly/plugins/org.eclipse.jpt/plugin.properties
deleted file mode 100644
index c3c055a..0000000
--- a/assembly/plugins/org.eclipse.jpt/plugin.properties
+++ /dev/null
@@ -1,13 +0,0 @@
-###############################################################################
-# Copyright (c) 2006 Oracle.
-# All rights reserved. This program and the accompanying materials
-# are made available under the terms of the Eclipse Public License v1.0
-# which accompanies this distribution, and is available at
-# http://www.eclipse.org/legal/epl-v10.html
-# 
-# Contributors:
-#     Oracle. - initial API and implementation
-###############################################################################
-
-pluginName = Dali Java Persistence Tools
-providerName = Eclipse.org
diff --git a/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 a196dd7..0000000
--- a/jpa/plugins/org.eclipse.jpt.db.ui/.cvsignore
+++ /dev/null
@@ -1,6 +0,0 @@
-bin
-@dot
-temp.folder
-build.xml
-javaCompiler...args
-javaCompiler...args.*
\ No newline at end of file
diff --git a/jpa/plugins/org.eclipse.jpt.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 8fa7db1..0000000
--- a/jpa/plugins/org.eclipse.jpt.db.ui/.settings/org.eclipse.core.resources.prefs
+++ /dev/null
@@ -1,3 +0,0 @@
-#Tue Jan 15 11:11:22 EST 2008
-eclipse.preferences.version=1
-encoding/<project>=ISO-8859-1
diff --git a/jpa/plugins/org.eclipse.jpt.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 7492bb6..0000000
--- a/jpa/plugins/org.eclipse.jpt.db.ui/META-INF/MANIFEST.MF
+++ /dev/null
@@ -1,15 +0,0 @@
-Manifest-Version: 1.0
-Bundle-ManifestVersion: 2
-Bundle-Name: %pluginName
-Bundle-Vendor: %providerName
-Bundle-SymbolicName: org.eclipse.jpt.db.ui
-Bundle-Version: 1.1.100.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;bundle-version="[3.4.0,4.0.0)",
- org.eclipse.jpt.db;bundle-version="[1.2.0,2.0.0)",
- org.eclipse.datatools.connectivity.ui;bundle-version="[1.1.0,1.2.0)",
- org.eclipse.datatools.sqltools.editor.core;bundle-version="[1.0.0,2.0.0)",
- org.eclipse.datatools.connectivity.db.generic.ui;bundle-version="[1.0.1,2.0.0)"
-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 be534ba..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>May 02, 2008</P>
-
-<H3>License</H3>
-
-<P>The Eclipse Foundation makes available all content in this plug-in 
-("Content"). Unless otherwise indicated below, the Content is provided to you 
-under the terms and conditions of the Eclipse Public License Version 1.0 
-("EPL"). A copy of the EPL is available at
-<A href="http://www.eclipse.org/org/documents/epl-v10.php">http://www.eclipse.org/org/documents/epl-v10.php</A>. 
-For purposes of the EPL, "Program" will mean the Content.</P>
-
-<P>If you did not receive this Content directly from the Eclipse Foundation, the 
-Content is being redistributed by another party ("Redistributor") and different 
-terms and conditions may apply to your use of any object code in the Content. 
-Check the Redistributor's license that was provided with the Content. If no such 
-license exists, contact the Redistributor. Unless otherwise indicated below, the 
-terms and conditions of the EPL still apply to any source code in the Content 
-and such source code may be obtained at
-<A href="http://www.eclipse.org/">http://www.eclipse.org/</A>.</P>
-
-</BODY>
-</HTML>
diff --git a/jpa/plugins/org.eclipse.jpt.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 eb7c17a..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 = Dali Java Persistence Tools - DB UI
-providerName = Eclipse Web Tools Platform
-
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 9a2b81e..0000000
--- a/jpa/plugins/org.eclipse.jpt.db.ui/src/org/eclipse/jpt/db/ui/internal/DTPUiTools.java
+++ /dev/null
@@ -1,106 +0,0 @@
-/*******************************************************************************
-* Copyright (c) 2007, 2008 Oracle. All rights reserved.
-* This program and the accompanying materials are made available under the
-* terms of the Eclipse Public License v1.0, which accompanies this distribution
-* and is available at http://www.eclipse.org/legal/epl-v10.html.
-* 
-* Contributors:
-*     Oracle - initial API and implementation
-*******************************************************************************/
-package org.eclipse.jpt.db.ui.internal;
-
-import org.eclipse.datatools.connectivity.IConnectionProfile;
-import org.eclipse.datatools.connectivity.IProfileListener;
-import org.eclipse.datatools.connectivity.ProfileManager;
-import org.eclipse.datatools.connectivity.db.generic.ui.wizard.NewJDBCFilteredCPWizard;
-import org.eclipse.jface.window.Window;
-import org.eclipse.jface.wizard.WizardDialog;
-import org.eclipse.swt.widgets.Display;
-
-/**
- * DTP UI tools
- */
-public class DTPUiTools {
-
-	/**
-	 * Launch the DTP New Connection Profile wizard to create a new database connection profile.
-	 * 
-	 * Returns the name of the added profile, or null if the wizard was cancelled.
-	 * The name can be used to build a Dali connection profile from
-	 * JptDbPlugin.getConnectionProfileFactory().buildConnectionProfile(String).
-	 */
-	public static String createNewConnectionProfile() {
-		// Filter datasource category
-		NewJDBCFilteredCPWizard  wizard = new NewJDBCFilteredCPWizard();
-		WizardDialog wizardDialog = new WizardDialog(Display.getCurrent().getActiveShell(), wizard);
-		wizardDialog.setBlockOnOpen(true);
-
-		LocalProfileListener listener = new LocalProfileListener();
-		ProfileManager.getInstance().addProfileListener(listener);
-
-		String newCPName = null;
-		if (wizardDialog.open() == Window.OK) {
-			// assume the last added profile is the one we want
-			newCPName = listener.addedProfile.getName();
-		}
-		ProfileManager.getInstance().removeProfileListener(listener);
-
-		return newCPName;
-	}
-
-
-	// ********** DTP profile listener **********
-
-	/**
-	 * This listener simply holds on to the most recently added connection
-	 * profile.
-	 */
-	static class LocalProfileListener implements IProfileListener {
-		IConnectionProfile addedProfile;
-		
-		public void profileAdded(IConnectionProfile profile) {
-			this.addedProfile = profile;
-		}
-	
-		public void profileChanged(IConnectionProfile profile) {
-			// do nothing
-		}
-	
-		public void profileDeleted(IConnectionProfile profile) {
-			// do nothing
-		}
-	}
-
-
-//	// ********** viewer filter **********
-//
-//	static class LocalViewerFilter extends ViewerFilter {
-//
-//		private static final String DATABASE_CATEGORY_ID = "org.eclipse.datatools.connectivity.db.category"; //$NON-NLS-1$
-//
-//		LocalViewerFilter() {
-//			super();
-//		}
-//
-//		@Override
-//		public boolean select(Viewer viewer, Object parentElement, Object element) {
-//			CPWizardNode wizardNode = (CPWizardNode) element;
-//			IProfileWizardProvider wizardProvider = wizardNode.getProvider();
-//			if (wizardProvider instanceof IWizardCategoryProvider) {
-//				return false;
-//			}
-//			ICategory category = ConnectionProfileManager.getInstance().getProvider(
-//							((ProfileWizardProvider) wizardProvider).getProfile()).getCategory();
-//			
-//			// Only display wizards belong to database category
-//			while (category != null) {
-//				if (category.getId().equals(DATABASE_CATEGORY_ID)) {
-//					return true;
-//				}
-//				category = category.getParent();
-//			}
-//			return false;
-//		}
-//	}
-
-}
diff --git a/jpa/plugins/org.eclipse.jpt.eclipselink.core.ddlgen/.classpath b/jpa/plugins/org.eclipse.jpt.eclipselink.core.ddlgen/.classpath
deleted file mode 100644
index 9600ce8..0000000
--- a/jpa/plugins/org.eclipse.jpt.eclipselink.core.ddlgen/.classpath
+++ /dev/null
@@ -1,8 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<classpath>
-	<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/J2SE-1.5"/>
-	<classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
-	<classpathentry kind="src" path="src"/>
-	<classpathentry exported="true" kind="lib" path="lib/persistence.jar" sourcepath="org.eclipse.jpt.eclipselink.core.ddlgensrc.zip"/>
-	<classpathentry kind="output" path="bin"/>
-</classpath>
diff --git a/jpa/plugins/org.eclipse.jpt.eclipselink.core.ddlgen/.cvsignore b/jpa/plugins/org.eclipse.jpt.eclipselink.core.ddlgen/.cvsignore
deleted file mode 100644
index c5e82d7..0000000
--- a/jpa/plugins/org.eclipse.jpt.eclipselink.core.ddlgen/.cvsignore
+++ /dev/null
@@ -1 +0,0 @@
-bin
\ No newline at end of file
diff --git a/jpa/plugins/org.eclipse.jpt.eclipselink.core.ddlgen/.project b/jpa/plugins/org.eclipse.jpt.eclipselink.core.ddlgen/.project
deleted file mode 100644
index 376311f..0000000
--- a/jpa/plugins/org.eclipse.jpt.eclipselink.core.ddlgen/.project
+++ /dev/null
@@ -1,28 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<projectDescription>
-	<name>org.eclipse.jpt.eclipselink.core.ddlgen</name>
-	<comment></comment>
-	<projects>
-	</projects>
-	<buildSpec>
-		<buildCommand>
-			<name>org.eclipse.jdt.core.javabuilder</name>
-			<arguments>
-			</arguments>
-		</buildCommand>
-		<buildCommand>
-			<name>org.eclipse.pde.ManifestBuilder</name>
-			<arguments>
-			</arguments>
-		</buildCommand>
-		<buildCommand>
-			<name>org.eclipse.pde.SchemaBuilder</name>
-			<arguments>
-			</arguments>
-		</buildCommand>
-	</buildSpec>
-	<natures>
-		<nature>org.eclipse.jdt.core.javanature</nature>
-		<nature>org.eclipse.pde.PluginNature</nature>
-	</natures>
-</projectDescription>
diff --git a/jpa/plugins/org.eclipse.jpt.eclipselink.core.ddlgen/.settings/org.eclipse.jdt.core.prefs b/jpa/plugins/org.eclipse.jpt.eclipselink.core.ddlgen/.settings/org.eclipse.jdt.core.prefs
deleted file mode 100644
index 8041bc2..0000000
--- a/jpa/plugins/org.eclipse.jpt.eclipselink.core.ddlgen/.settings/org.eclipse.jdt.core.prefs
+++ /dev/null
@@ -1,7 +0,0 @@
-#Wed Apr 30 17:24:41 EDT 2008
-eclipse.preferences.version=1
-org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.5
-org.eclipse.jdt.core.compiler.compliance=1.5
-org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
-org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
-org.eclipse.jdt.core.compiler.source=1.5
diff --git a/jpa/plugins/org.eclipse.jpt.eclipselink.core.ddlgen/META-INF/MANIFEST.MF b/jpa/plugins/org.eclipse.jpt.eclipselink.core.ddlgen/META-INF/MANIFEST.MF
deleted file mode 100644
index 27a32d3..0000000
--- a/jpa/plugins/org.eclipse.jpt.eclipselink.core.ddlgen/META-INF/MANIFEST.MF
+++ /dev/null
@@ -1,13 +0,0 @@
-Manifest-Version: 1.0
-Bundle-ManifestVersion: 2
-Bundle-Name: %pluginName
-Bundle-Vendor: %providerName
-Bundle-SymbolicName: org.eclipse.jpt.eclipselink.core.ddlgen;singleton:=true
-Bundle-Version: 1.0.200.qualifier
-Bundle-ClassPath: lib/persistence.jar
-Bundle-Localization: plugin
-Require-Bundle: org.eclipse.jpt.eclipselink.core;bundle-version="[1.0.0,2.0.0)"
-Export-Package: javax.persistence,
- javax.persistence.spi,
- org.eclipse.jpt.eclipselink.core.ddlgen
-Bundle-RequiredExecutionEnvironment: J2SE-1.5
diff --git a/jpa/plugins/org.eclipse.jpt.eclipselink.core.ddlgen/about.html b/jpa/plugins/org.eclipse.jpt.eclipselink.core.ddlgen/about.html
deleted file mode 100644
index 071f586..0000000
--- a/jpa/plugins/org.eclipse.jpt.eclipselink.core.ddlgen/about.html
+++ /dev/null
@@ -1,47 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN">
-<HTML>
-
-<head>
-<title>About</title>
-<meta http-equiv=Content-Type content="text/html; charset=ISO-8859-1">
-</head>
-
-<BODY lang="EN-US">
-
-<H2>About This Content</H2>
-
-<P>May 02, 2008</P>
-
-<H3>License</H3>
-
-<P>The Eclipse Foundation makes available all content in this plug-in 
-("Content"). Unless otherwise indicated below, the Content is provided to you 
-under the terms and conditions of the Eclipse Public License Version 1.0 
-("EPL"). A copy of the EPL is available at
-<A href="http://www.eclipse.org/org/documents/epl-v10.php">http://www.eclipse.org/org/documents/epl-v10.php</A>. 
-For purposes of the EPL, "Program" will mean the Content.</P>
-
-<P>If you did not receive this Content directly from the Eclipse Foundation, the 
-Content is being redistributed by another party ("Redistributor") and different 
-terms and conditions may apply to your use of any object code in the Content. 
-Check the Redistributor's license that was provided with the Content. If no such 
-license exists, contact the Redistributor. Unless otherwise indicated below, the 
-terms and conditions of the EPL still apply to any source code in the Content 
-and such source code may be obtained at
-<A href="http://www.eclipse.org/">http://www.eclipse.org/</A>.</P>
-
-<h3>Third Party Content</h3>
-<p>The Content includes items that have been sourced from third parties as set 
-  out below. If you did not receive this Content directly from the Eclipse Foundation, 
-  the following is provided for informational purposes only, and you should look 
-  to the Redistributor&#8217;s license for terms and conditions of use.</p>
-
-<h4><a name="JPA" id="JPA"></a>Java Persistence API (JPA) v1.0</h4>
-
-<blockquote>
-  <p>The Java Persistence API (JPA) which is distributed under <a href="https://glassfish.dev.java.net/public/CDDLv1.0.html">CDDL 
-    v1.0</a> is required by the Dali Java Persistence Tools Project in order 
-    to support this standard.</p>
-</blockquote>
-</BODY>
-</HTML>
diff --git a/jpa/plugins/org.eclipse.jpt.eclipselink.core.ddlgen/build.properties b/jpa/plugins/org.eclipse.jpt.eclipselink.core.ddlgen/build.properties
deleted file mode 100644
index 0f7bce3..0000000
--- a/jpa/plugins/org.eclipse.jpt.eclipselink.core.ddlgen/build.properties
+++ /dev/null
@@ -1,20 +0,0 @@
-###############################################################################
-# Copyright (c) 2006, 2008 Oracle.
-# All rights reserved. This program and the accompanying materials
-# are made available under the terms of the Eclipse Public License v1.0
-# which accompanies this distribution, and is available at
-# http://www.eclipse.org/legal/epl-v10.html
-# 
-# Contributors:
-#     Oracle. - initial API and implementation
-###############################################################################
-javacSource=1.5
-javacTarget=1.5
-source.. = src/
-output.. = bin/
-bin.includes = .,\
-               META-INF/,\
-               lib/persistence.jar,\
-               about.html,\
-               plugin.properties
-jars.compile.order = .
diff --git a/jpa/plugins/org.eclipse.jpt.eclipselink.core.ddlgen/lib/persistence.jar b/jpa/plugins/org.eclipse.jpt.eclipselink.core.ddlgen/lib/persistence.jar
deleted file mode 100644
index 1a1b232..0000000
--- a/jpa/plugins/org.eclipse.jpt.eclipselink.core.ddlgen/lib/persistence.jar
+++ /dev/null
Binary files differ
diff --git a/jpa/plugins/org.eclipse.jpt.eclipselink.core.ddlgen/plugin.properties b/jpa/plugins/org.eclipse.jpt.eclipselink.core.ddlgen/plugin.properties
deleted file mode 100644
index ea3ef1d..0000000
--- a/jpa/plugins/org.eclipse.jpt.eclipselink.core.ddlgen/plugin.properties
+++ /dev/null
@@ -1,24 +0,0 @@
-###############################################################################
-# Copyright (c) 2006, 2008 Oracle.
-# All rights reserved. This program and the accompanying materials
-# are made available under the terms of the Eclipse Public License v1.0
-# which accompanies this distribution, and is available at
-# http://www.eclipse.org/legal/epl-v10.html
-# 
-# Contributors:
-#     Oracle. - initial API and implementation
-###############################################################################
-# ====================================================================
-# To code developer:
-#   Do NOT change the properties between this line and the
-#   "%%% END OF TRANSLATED PROPERTIES %%%" line.
-#   Make a new property name, append to the end of the file and change
-#   the code to use the new property.
-# ====================================================================
-
-# ====================================================================
-# %%% END OF TRANSLATED PROPERTIES %%%
-# ====================================================================
-
-pluginName = Dali Java Persistence Tools - EclipseLink Support - DDL Generation
-providerName = Eclipse Web Tools Platform
diff --git a/jpa/plugins/org.eclipse.jpt.eclipselink.core.ddlgen/src/org/eclipse/jpt/eclipselink/core/ddlgen/Main.java b/jpa/plugins/org.eclipse.jpt.eclipselink.core.ddlgen/src/org/eclipse/jpt/eclipselink/core/ddlgen/Main.java
deleted file mode 100644
index c1b91c3..0000000
--- a/jpa/plugins/org.eclipse.jpt.eclipselink.core.ddlgen/src/org/eclipse/jpt/eclipselink/core/ddlgen/Main.java
+++ /dev/null
@@ -1,217 +0,0 @@
-/*******************************************************************************
-* Copyright (c) 2007, 2008 Oracle. All rights reserved.
-* This program and the accompanying materials are made available under the
-* terms of the Eclipse Public License v1.0, which accompanies this distribution
-* and is available at http://www.eclipse.org/legal/epl-v10.html.
-* 
-* Contributors:
-*     Oracle - initial API and implementation
-*******************************************************************************/
-package org.eclipse.jpt.eclipselink.core.ddlgen;
-
-import java.io.File;
-import java.io.FileInputStream;
-import java.io.IOException;
-import java.util.HashMap;
-import java.util.Map;
-import java.util.Properties;
-import java.util.Set;
-import java.util.Map.Entry;
-import javax.persistence.EntityManagerFactory;
-import javax.persistence.Persistence;
-import org.eclipse.jpt.eclipselink.core.internal.context.persistence.schema.generation.SchemaGeneration;
-
-/** 
- * This class creates a EclipseLink <code>EntityManagerFactory</code>, 
- * and executes the DDL generator with the command set in the properties: 
- *     <code>eclipselink.ddl-generation.output-mode</code> 
- *     <code>eclipselink.application-location</code>
- * 
- * Current command-line arguments:
- *     [-pu puName] - persistence unit name
- *     [-p propertiesFilePath] - properties for EclipseLink EntityManager
- *  
- *  Example of a properties file:
- *  	eclipselink.jdbc.bind-parameters=false
- *  	eclipselink.jdbc.driver=org.apache.derby.jdbc.EmbeddedDriver
- *  	eclipselink.jdbc.url=jdbc\:derby\:c\:/derbydb/testdb;create\=true
- *  	eclipselink.jdbc.user=tran
- *  	eclipselink.jdbc.password=
- *  	eclipselink.logging.level=FINEST
- *  	eclipselink.logging.timestamp=false
- *  	eclipselink.logging.thread=false
- *  	eclipselink.logging.session=false
- *  	eclipselink.logging.exceptions=true
- *  	eclipselink.orm.throw.exceptions=true
- *  	eclipselink.ddl-generation.output-mode=database
- *  	eclipselink.ddl-generation=drop-and-create-tables
- *  	eclipselink.application-location=c\:/_Projects_/ExampleDDL
- */
-public class Main
-{
-	protected EntityManagerFactory emf;
-	private Map<String, String> eclipseLinkProperties;
-	private String createDDLFileName;
-	private String dropDDLFileName;
-	private String appLocation;
-	private String eclipseLinkPropertiesPath;
-	private boolean isDebugMode;
-	
-	// ********** constructors **********
-	
-	public static void main(String[] args) {
-		new Main().execute(args);
-	}
-
-	private Main() {
-		super();
-	}
-
-	// ********** behavior **********
-	
-	protected void execute(String[] args) {
-		this.initializeWith(args);
-		
-		this.emf = Persistence.createEntityManagerFactory(this.getPUName(args), this.eclipseLinkProperties);
-		this.perform();
-		this.closeEntityManagerFactory();
-		
-		this.dispose();
-		return;
-	}
-	
-	protected void perform() {
-		// create an EM to generate schema.
-		this.emf.createEntityManager().close();
-	}
-	
-	protected void closeEntityManagerFactory() {
-		this.emf.close();
-	}
-	
-	private void initializeWith(String[] args) {
-
-		this.eclipseLinkPropertiesPath = this.getEclipseLinkPropertiesPath(args);
-		this.eclipseLinkProperties = this.getProperties(this.eclipseLinkPropertiesPath);
-		
-		this.createDDLFileName = this.getConfigPropertyAsString( 
-						SchemaGeneration.ECLIPSELINK_CREATE_FILE_NAME, 
-						this.eclipseLinkProperties,  
-						SchemaGeneration.DEFAULT_SCHEMA_GENERATION_CREATE_FILE_NAME);
-
-		this.dropDDLFileName = this.getConfigPropertyAsString(
-						SchemaGeneration.ECLIPSELINK_DROP_FILE_NAME, 
-						this.eclipseLinkProperties,  
-						SchemaGeneration.DEFAULT_SCHEMA_GENERATION_DROP_FILE_NAME); 
-		
-		this.appLocation = this.eclipseLinkProperties.get(
-						SchemaGeneration.ECLIPSELINK_APPLICATION_LOCATION);
-
-		this.isDebugMode = this.getDebugMode(args);
-	}
-	
-	private void dispose() {
-
-		if( ! this.isDebugMode) {
-			new File(this.appLocation + "/" + this.createDDLFileName).delete();
-			new File(this.appLocation + "/" + this.dropDDLFileName).delete();
-			new File(this.eclipseLinkPropertiesPath).delete();
-		}
-	}
-	
-	private Map<String, String> getProperties(String eclipseLinkPropertiesPath) {
-		
-		Set<Entry<Object, Object>> propertiesSet = null;
-		try {
-			propertiesSet = this.loadEclipseLinkProperties(eclipseLinkPropertiesPath);
-		}
-		catch (IOException e) {
-			throw new RuntimeException("Missing: " + eclipseLinkPropertiesPath, e);
-		}
-		
-		Map<String, String> properties = new HashMap<String, String>();
-		for(Entry<Object, Object> property : propertiesSet) {
-			properties.put((String)property.getKey(), (String)property.getValue());
-		}
-		return properties;
-	}
-
-    private Set<Entry<Object, Object>> loadEclipseLinkProperties(String eclipseLinkPropertiesPath) throws IOException {
-		
-        FileInputStream stream = new FileInputStream(eclipseLinkPropertiesPath);
-        
-        Properties properties = new Properties();
-        properties.load(stream);
-        
-        return properties.entrySet();
-	}
-
-	// ********** argument queries **********
-    
-	private String getPUName(String[] args) {
-
-		return this.getArgumentValue("-pu", args);
-	}
-	
-	private String getEclipseLinkPropertiesPath(String[] args) {
-
-		return this.getArgumentValue("-p", args);
-	}
-
-	private boolean getDebugMode(String[] args) {
-
-		return this.argumentExists("-debug", args);
-	}
-	
-	private String getArgumentValue(String argument, String[] args) {
-		for (int i = 0; i < args.length; i++) {
-			String arg = args[i];
-			if (arg.toLowerCase().equals(argument)) {
-				int j = i + 1;
-				if (j < args.length) {
-					return args[j];
-				}
-			}
-		}
-		return null;
-	}
-	
-	private boolean argumentExists(String argument, String[] args) {
-		for (int i = 0; i < args.length; i++) {
-			String arg = args[i];
-			if (arg.toLowerCase().equals(argument)) {
-				return true;
-			}
-		}
-		return false;
-	}
-
-	// ****** utility methods *******
-	
-    /**
-     * Check the provided map for an object with the given key.  If that object is not available, check the
-     * System properties.  If it is not available from either location, return the default value.
-     * @param propertyKey 
-     * @param map 
-     * @param defaultValue 
-     * @return 
-     */
-    protected String getConfigPropertyAsString(String propertyKey, Map<String, String> overrides, String defaultValue){
-    	String value = this.getConfigPropertyAsString(propertyKey, overrides);
-        if (value == null){
-            value = defaultValue;
-        }
-        return value;
-    }
-    
-    protected String getConfigPropertyAsString(String propertyKey, Map<String, String> overrides){
-        String value = null;
-        if (overrides != null){
-            value = (String)overrides.get(propertyKey);
-        }
-        if (value == null){
-            value = System.getProperty(propertyKey);
-        }
-        return value;
-    }
-}
diff --git a/jpa/plugins/org.eclipse.jpt.eclipselink.core/.classpath b/jpa/plugins/org.eclipse.jpt.eclipselink.core/.classpath
deleted file mode 100644
index 9123952..0000000
--- a/jpa/plugins/org.eclipse.jpt.eclipselink.core/.classpath
+++ /dev/null
@@ -1,14 +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/jpt/core/**"/>
-			<accessrule kind="accessible" pattern="org/eclipse/jpt/utility/**"/>
-			<accessrule kind="accessible" pattern="org/eclipse/wst/**"/>
-		</accessrules>
-	</classpathentry>
-	<classpathentry kind="output" path="bin"/>
-</classpath>
diff --git a/jpa/plugins/org.eclipse.jpt.eclipselink.core/.cvsignore b/jpa/plugins/org.eclipse.jpt.eclipselink.core/.cvsignore
deleted file mode 100644
index 76e6442..0000000
--- a/jpa/plugins/org.eclipse.jpt.eclipselink.core/.cvsignore
+++ /dev/null
@@ -1,3 +0,0 @@
-bin
-@dot
-temp.folder
diff --git a/jpa/plugins/org.eclipse.jpt.eclipselink.core/.project b/jpa/plugins/org.eclipse.jpt.eclipselink.core/.project
deleted file mode 100644
index 7fa880f..0000000
--- a/jpa/plugins/org.eclipse.jpt.eclipselink.core/.project
+++ /dev/null
@@ -1,28 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<projectDescription>
-	<name>org.eclipse.jpt.eclipselink.core</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.eclipselink.core/.settings/org.eclipse.core.resources.prefs b/jpa/plugins/org.eclipse.jpt.eclipselink.core/.settings/org.eclipse.core.resources.prefs
deleted file mode 100644
index 916989d..0000000
--- a/jpa/plugins/org.eclipse.jpt.eclipselink.core/.settings/org.eclipse.core.resources.prefs
+++ /dev/null
@@ -1,4 +0,0 @@
-#Thu Feb 05 14:28:53 EST 2009
-eclipse.preferences.version=1
-encoding//schemas/eclipselink_orm_1_0.xsd=UTF8
-encoding/<project>=ISO-8859-1
diff --git a/jpa/plugins/org.eclipse.jpt.eclipselink.core/.settings/org.eclipse.jdt.core.prefs b/jpa/plugins/org.eclipse.jpt.eclipselink.core/.settings/org.eclipse.jdt.core.prefs
deleted file mode 100644
index dcfa502..0000000
--- a/jpa/plugins/org.eclipse.jpt.eclipselink.core/.settings/org.eclipse.jdt.core.prefs
+++ /dev/null
@@ -1,12 +0,0 @@
-#Sun Feb 24 21:25:34 EST 2008
-eclipse.preferences.version=1
-org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
-org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.5
-org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve
-org.eclipse.jdt.core.compiler.compliance=1.5
-org.eclipse.jdt.core.compiler.debug.lineNumber=generate
-org.eclipse.jdt.core.compiler.debug.localVariable=generate
-org.eclipse.jdt.core.compiler.debug.sourceFile=generate
-org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
-org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
-org.eclipse.jdt.core.compiler.source=1.5
\ No newline at end of file
diff --git a/jpa/plugins/org.eclipse.jpt.eclipselink.core/META-INF/MANIFEST.MF b/jpa/plugins/org.eclipse.jpt.eclipselink.core/META-INF/MANIFEST.MF
deleted file mode 100644
index 946fdf5..0000000
--- a/jpa/plugins/org.eclipse.jpt.eclipselink.core/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.eclipselink.core;singleton:=true
-Bundle-Version: 1.2.0.qualifier
-Bundle-Activator: org.eclipse.jpt.eclipselink.core.internal.JptEclipseLinkCorePlugin
-Bundle-ActivationPolicy: lazy
-Bundle-ClassPath: .
-Bundle-Localization: plugin
-Require-Bundle: org.eclipse.core.commands;bundle-version="[3.4.0,4.0.0)",
- org.eclipse.core.resources;bundle-version="[3.4.0,4.0.0)",
- org.eclipse.core.runtime;bundle-version="[3.4.0,4.0.0)",
- org.eclipse.debug.core;bundle-version="[3.4.0,4.0.0)",
- org.eclipse.emf.ecore;bundle-version="[2.4.0,3.0.0)",
- org.eclipse.emf.ecore.xmi;bundle-version="[2.4.0,3.0.0)",
- org.eclipse.jdt.core;bundle-version="[3.4.0,4.0.0)",
- org.eclipse.jdt.launching;bundle-version="[3.4.0,4.0.0)",
- org.eclipse.jem.util;bundle-version="2.0.100",
- org.eclipse.jpt.core;bundle-version="[2.0.0,3.0.0)",
- org.eclipse.jpt.db;bundle-version="[1.2.0,2.0.0)",
- org.eclipse.jpt.utility;bundle-version="[1.2.0,2.0.0)",
- org.eclipse.jst.common.project.facet.core;bundle-version="1.4.0",
- org.eclipse.wst.common.emf;bundle-version="[1.1.200,2.0.0)",
- org.eclipse.wst.common.emfworkbench.integration;bundle-version="[1.1.200,2.0.0)",
- org.eclipse.wst.common.frameworks;bundle-version="[1.1.200,2.0.0)",
- org.eclipse.wst.common.modulecore;bundle-version="[1.1.200,2.0.0)",
- org.eclipse.wst.common.project.facet.core;bundle-version="1.3.3",
- org.eclipse.wst.validation;bundle-version="[1.2.0,2.0.0)"
-Export-Package: org.eclipse.jpt.eclipselink.core,
- org.eclipse.jpt.eclipselink.core.context,
- org.eclipse.jpt.eclipselink.core.context.java,
- org.eclipse.jpt.eclipselink.core.context.orm,
- org.eclipse.jpt.eclipselink.core.internal;x-internal:=true,
- org.eclipse.jpt.eclipselink.core.internal.context;x-internal:=true,
- org.eclipse.jpt.eclipselink.core.internal.context.java;x-internal:=true,
- org.eclipse.jpt.eclipselink.core.internal.context.orm;x-internal:=true,
- org.eclipse.jpt.eclipselink.core.internal.context.persistence;x-internal:=true,
- org.eclipse.jpt.eclipselink.core.internal.context.persistence.caching;x-internal:=true,
- org.eclipse.jpt.eclipselink.core.internal.context.persistence.connection;x-internal:=true,
- org.eclipse.jpt.eclipselink.core.internal.context.persistence.customization;x-internal:=true,
- org.eclipse.jpt.eclipselink.core.internal.context.persistence.general;x-internal:=true,
- org.eclipse.jpt.eclipselink.core.internal.context.persistence.logging;x-internal:=true,
- org.eclipse.jpt.eclipselink.core.internal.context.persistence.options;x-internal:=true,
- org.eclipse.jpt.eclipselink.core.internal.context.persistence.schema.generation;x-internal:=true,
- org.eclipse.jpt.eclipselink.core.internal.ddlgen;x-internal:=true,
- org.eclipse.jpt.eclipselink.core.internal.operations;x-internal:=true,
- org.eclipse.jpt.eclipselink.core.internal.resource.java;x-internal:=true,
- org.eclipse.jpt.eclipselink.core.internal.resource.java.binary;x-internal:=true,
- org.eclipse.jpt.eclipselink.core.internal.resource.java.source;x-internal:=true,
- org.eclipse.jpt.eclipselink.core.internal.resource.orm;x-internal:=true,
- org.eclipse.jpt.eclipselink.core.internal.resource.orm.translators;x-internal:=true,
- org.eclipse.jpt.eclipselink.core.resource.java,
- org.eclipse.jpt.eclipselink.core.resource.orm,
- org.eclipse.jpt.eclipselink1_1.core.internal.resource.orm.translators;x-internal:=true,
- org.eclipse.jpt.eclipselink1_1.core.resource.orm,
- org.eclipse.jpt.eclipselink1_1.core.resource.orm.util
-Bundle-RequiredExecutionEnvironment: J2SE-1.5
diff --git a/jpa/plugins/org.eclipse.jpt.eclipselink.core/about.html b/jpa/plugins/org.eclipse.jpt.eclipselink.core/about.html
deleted file mode 100644
index be534ba..0000000
--- a/jpa/plugins/org.eclipse.jpt.eclipselink.core/about.html
+++ /dev/null
@@ -1,34 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN">
-<HTML>
-
-<head>
-<title>About</title>
-<meta http-equiv=Content-Type content="text/html; charset=ISO-8859-1">
-</head>
-
-<BODY lang="EN-US">
-
-<H3>About This Content</H3>
-
-<P>May 02, 2008</P>
-
-<H3>License</H3>
-
-<P>The Eclipse Foundation makes available all content in this plug-in 
-("Content"). Unless otherwise indicated below, the Content is provided to you 
-under the terms and conditions of the Eclipse Public License Version 1.0 
-("EPL"). A copy of the EPL is available at
-<A href="http://www.eclipse.org/org/documents/epl-v10.php">http://www.eclipse.org/org/documents/epl-v10.php</A>. 
-For purposes of the EPL, "Program" will mean the Content.</P>
-
-<P>If you did not receive this Content directly from the Eclipse Foundation, the 
-Content is being redistributed by another party ("Redistributor") and different 
-terms and conditions may apply to your use of any object code in the Content. 
-Check the Redistributor's license that was provided with the Content. If no such 
-license exists, contact the Redistributor. Unless otherwise indicated below, the 
-terms and conditions of the EPL still apply to any source code in the Content 
-and such source code may be obtained at
-<A href="http://www.eclipse.org/">http://www.eclipse.org/</A>.</P>
-
-</BODY>
-</HTML>
diff --git a/jpa/plugins/org.eclipse.jpt.eclipselink.core/build.properties b/jpa/plugins/org.eclipse.jpt.eclipselink.core/build.properties
deleted file mode 100644
index 0f41eae..0000000
--- a/jpa/plugins/org.eclipse.jpt.eclipselink.core/build.properties
+++ /dev/null
@@ -1,25 +0,0 @@
-###############################################################################
-# Copyright (c) 2006, 2008 Oracle.
-# All rights reserved. This program and the accompanying materials
-# are made available under the terms of the Eclipse Public License v1.0
-# which accompanies this distribution, and is available at
-# http://www.eclipse.org/legal/epl-v10.html
-# 
-# Contributors:
-#     Oracle. - initial API and implementation
-###############################################################################
-javacSource=1.5
-javacTarget=1.5
-source.. = src/,\
-               property_files/
-output.. = bin/
-bin.includes = .,\
-               META-INF/,\
-               about.html,\
-               plugin.xml,\
-               plugin.properties,\
-               schemas/
-jars.compile.order = .
-src.includes = model/
-src.includes = model/,\
-               schemas/
diff --git a/jpa/plugins/org.eclipse.jpt.eclipselink.core/model/eclipselink1_1_orm.ecore b/jpa/plugins/org.eclipse.jpt.eclipselink.core/model/eclipselink1_1_orm.ecore
deleted file mode 100644
index a5fa2fc..0000000
--- a/jpa/plugins/org.eclipse.jpt.eclipselink.core/model/eclipselink1_1_orm.ecore
+++ /dev/null
@@ -1,61 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<ecore:EPackage xmi:version="2.0"
-    xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-    xmlns:ecore="http://www.eclipse.org/emf/2002/Ecore" name="orm"
-    nsURI="jpt.eclipselink1_1.orm.xmi" nsPrefix="org.eclipse.jpt.eclipselink1_1.core.resource.orm">
-  <eClassifiers xsi:type="ecore:EClass" name="XmlEntityMappings" eSuperTypes="eclipselink_orm.ecore#//XmlEntityMappings"/>
-  <eClassifiers xsi:type="ecore:EClass" name="XmlAttributeMapping" abstract="true"
-      interface="true" eSuperTypes="../../org.eclipse.jpt.core/model/orm.ecore#//XmlAttributeMapping">
-    <eStructuralFeatures xsi:type="ecore:EAttribute" name="access" eType="ecore:EEnum ../../org.eclipse.jpt.core/model/orm.ecore#//AccessType"
-        defaultValueLiteral="PROPERTY"/>
-  </eClassifiers>
-  <eClassifiers xsi:type="ecore:EClass" name="XmlId" abstract="true" interface="true"
-      eSuperTypes="eclipselink_orm.ecore#//XmlId #//XmlAttributeMapping"/>
-  <eClassifiers xsi:type="ecore:EClass" name="XmlIdImpl" eSuperTypes="eclipselink_orm.ecore#//XmlIdImpl #//XmlId"/>
-  <eClassifiers xsi:type="ecore:EClass" name="XmlEmbeddedId" abstract="true" interface="true"
-      eSuperTypes="eclipselink_orm.ecore#//XmlEmbeddedId #//XmlAttributeMapping"/>
-  <eClassifiers xsi:type="ecore:EClass" name="XmlEmbeddedIdImpl" eSuperTypes="eclipselink_orm.ecore#//XmlEmbeddedIdImpl #//XmlEmbeddedId"/>
-  <eClassifiers xsi:type="ecore:EClass" name="XmlEmbedded" abstract="true" interface="true"
-      eSuperTypes="eclipselink_orm.ecore#//XmlEmbedded #//XmlAttributeMapping"/>
-  <eClassifiers xsi:type="ecore:EClass" name="XmlEmbeddedImpl" eSuperTypes="eclipselink_orm.ecore#//XmlEmbeddedImpl #//XmlEmbedded"/>
-  <eClassifiers xsi:type="ecore:EClass" name="XmlBasic" abstract="true" interface="true"
-      eSuperTypes="eclipselink_orm.ecore#//XmlBasic #//XmlAttributeMapping">
-    <eStructuralFeatures xsi:type="ecore:EReference" name="generatedValue" eType="ecore:EClass ../../org.eclipse.jpt.core/model/orm.ecore#//XmlGeneratedValue"
-        containment="true" resolveProxies="false"/>
-    <eStructuralFeatures xsi:type="ecore:EReference" name="tableGenerator" eType="ecore:EClass ../../org.eclipse.jpt.core/model/orm.ecore#//XmlTableGenerator"
-        containment="true" resolveProxies="false"/>
-    <eStructuralFeatures xsi:type="ecore:EReference" name="sequenceGenerator" eType="ecore:EClass ../../org.eclipse.jpt.core/model/orm.ecore#//XmlSequenceGenerator"
-        containment="true" resolveProxies="false"/>
-  </eClassifiers>
-  <eClassifiers xsi:type="ecore:EClass" name="XmlBasicImpl" eSuperTypes="eclipselink_orm.ecore#//XmlBasicImpl #//XmlBasic"/>
-  <eClassifiers xsi:type="ecore:EClass" name="XmlVersion" abstract="true" interface="true"
-      eSuperTypes="eclipselink_orm.ecore#//XmlVersion #//XmlAttributeMapping"/>
-  <eClassifiers xsi:type="ecore:EClass" name="XmlVersionImpl" eSuperTypes="eclipselink_orm.ecore#//XmlVersionImpl #//XmlVersion"/>
-  <eClassifiers xsi:type="ecore:EClass" name="XmlOneToOne" abstract="true" interface="true"
-      eSuperTypes="eclipselink_orm.ecore#//XmlOneToOne #//XmlAttributeMapping"/>
-  <eClassifiers xsi:type="ecore:EClass" name="XmlOneToOneImpl" eSuperTypes="eclipselink_orm.ecore#//XmlOneToOneImpl #//XmlOneToOne"/>
-  <eClassifiers xsi:type="ecore:EClass" name="XmlOneToMany" abstract="true" interface="true"
-      eSuperTypes="eclipselink_orm.ecore#//XmlOneToMany #//XmlAttributeMapping"/>
-  <eClassifiers xsi:type="ecore:EClass" name="XmlOneToManyImpl" eSuperTypes="eclipselink_orm.ecore#//XmlOneToManyImpl #//XmlOneToMany"/>
-  <eClassifiers xsi:type="ecore:EClass" name="XmlManyToOne" abstract="true" interface="true"
-      eSuperTypes="eclipselink_orm.ecore#//XmlManyToOne #//XmlAttributeMapping"/>
-  <eClassifiers xsi:type="ecore:EClass" name="XmlManyToOneImpl" eSuperTypes="eclipselink_orm.ecore#//XmlManyToOneImpl #//XmlManyToOne"/>
-  <eClassifiers xsi:type="ecore:EClass" name="XmlManyToMany" abstract="true" interface="true"
-      eSuperTypes="eclipselink_orm.ecore#//XmlManyToMany #//XmlAttributeMapping"/>
-  <eClassifiers xsi:type="ecore:EClass" name="XmlManyToManyImpl" eSuperTypes="eclipselink_orm.ecore#//XmlManyToManyImpl #//XmlManyToMany"/>
-  <eClassifiers xsi:type="ecore:EClass" name="XmlBasicCollection" abstract="true"
-      interface="true" eSuperTypes="eclipselink_orm.ecore#//XmlBasicCollection #//XmlAttributeMapping"/>
-  <eClassifiers xsi:type="ecore:EClass" name="XmlBasicCollectionImpl" eSuperTypes="eclipselink_orm.ecore#//XmlBasicCollectionImpl #//XmlBasicCollection"/>
-  <eClassifiers xsi:type="ecore:EClass" name="XmlBasicMap" abstract="true" interface="true"
-      eSuperTypes="eclipselink_orm.ecore#//XmlBasicMap #//XmlAttributeMapping"/>
-  <eClassifiers xsi:type="ecore:EClass" name="XmlBasicMapImpl" eSuperTypes="eclipselink_orm.ecore#//XmlBasicMapImpl #//XmlBasicMap"/>
-  <eClassifiers xsi:type="ecore:EClass" name="XmlTransformation" abstract="true" interface="true"
-      eSuperTypes="eclipselink_orm.ecore#//XmlTransformation #//XmlAttributeMapping"/>
-  <eClassifiers xsi:type="ecore:EClass" name="XmlTransformationImpl" eSuperTypes="eclipselink_orm.ecore#//XmlTransformationImpl #//XmlTransformation"/>
-  <eClassifiers xsi:type="ecore:EClass" name="XmlVariableOneToOne" abstract="true"
-      interface="true" eSuperTypes="eclipselink_orm.ecore#//XmlVariableOneToOne #//XmlAttributeMapping"/>
-  <eClassifiers xsi:type="ecore:EClass" name="XmlVariableOneToOneImpl" eSuperTypes="eclipselink_orm.ecore#//XmlVariableOneToOneImpl #//XmlVariableOneToOne"/>
-  <eClassifiers xsi:type="ecore:EClass" name="XmlTransient" abstract="true" interface="true"
-      eSuperTypes="../../org.eclipse.jpt.core/model/orm.ecore#//XmlTransient #//XmlAttributeMapping"/>
-  <eClassifiers xsi:type="ecore:EClass" name="XmlTransientImpl" eSuperTypes="../../org.eclipse.jpt.core/model/orm.ecore#//XmlTransientImpl #//XmlTransient"/>
-</ecore:EPackage>
diff --git a/jpa/plugins/org.eclipse.jpt.eclipselink.core/model/eclipselink_orm.ecore b/jpa/plugins/org.eclipse.jpt.eclipselink.core/model/eclipselink_orm.ecore
deleted file mode 100644
index d773ac1..0000000
--- a/jpa/plugins/org.eclipse.jpt.eclipselink.core/model/eclipselink_orm.ecore
+++ /dev/null
@@ -1,351 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<ecore:EPackage xmi:version="2.0"
-    xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-    xmlns:ecore="http://www.eclipse.org/emf/2002/Ecore" name="orm"
-    nsURI="jpt.eclipselink.orm.xmi" nsPrefix="org.eclipse.jpt.eclipselink.core.resource.orm">
-  <eClassifiers xsi:type="ecore:EClass" name="XmlNamedConverter" abstract="true" interface="true">
-    <eStructuralFeatures xsi:type="ecore:EAttribute" name="name" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
-  </eClassifiers>
-  <eClassifiers xsi:type="ecore:EClass" name="XmlConverter" abstract="true" interface="true"
-      eSuperTypes="#//XmlNamedConverter">
-    <eStructuralFeatures xsi:type="ecore:EAttribute" name="className" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
-  </eClassifiers>
-  <eClassifiers xsi:type="ecore:EClass" name="XmlConverterImpl" eSuperTypes="#//XmlConverter"/>
-  <eClassifiers xsi:type="ecore:EClass" name="XmlTypeConverter" abstract="true" interface="true"
-      eSuperTypes="#//XmlNamedConverter">
-    <eStructuralFeatures xsi:type="ecore:EAttribute" name="dataType" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
-    <eStructuralFeatures xsi:type="ecore:EAttribute" name="objectType" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
-  </eClassifiers>
-  <eClassifiers xsi:type="ecore:EClass" name="XmlTypeConverterImpl" eSuperTypes="#//XmlTypeConverter"/>
-  <eClassifiers xsi:type="ecore:EClass" name="XmlConversionValue" abstract="true"
-      interface="true">
-    <eStructuralFeatures xsi:type="ecore:EAttribute" name="dataValue" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
-    <eStructuralFeatures xsi:type="ecore:EAttribute" name="objectValue" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
-  </eClassifiers>
-  <eClassifiers xsi:type="ecore:EClass" name="XmlConversionValueImpl" eSuperTypes="#//XmlConversionValue"/>
-  <eClassifiers xsi:type="ecore:EClass" name="XmlObjectTypeConverter" abstract="true"
-      interface="true" eSuperTypes="#//XmlNamedConverter">
-    <eStructuralFeatures xsi:type="ecore:EAttribute" name="dataType" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
-    <eStructuralFeatures xsi:type="ecore:EAttribute" name="objectType" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
-    <eStructuralFeatures xsi:type="ecore:EReference" name="conversionValues" upperBound="-1"
-        eType="#//XmlConversionValue" containment="true" resolveProxies="false"/>
-    <eStructuralFeatures xsi:type="ecore:EAttribute" name="defaultObjectValue" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
-  </eClassifiers>
-  <eClassifiers xsi:type="ecore:EClass" name="XmlObjectTypeConverterImpl" eSuperTypes="#//XmlObjectTypeConverter"/>
-  <eClassifiers xsi:type="ecore:EClass" name="XmlStructConverter" abstract="true"
-      interface="true" eSuperTypes="#//XmlNamedConverter">
-    <eStructuralFeatures xsi:type="ecore:EAttribute" name="converter" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
-  </eClassifiers>
-  <eClassifiers xsi:type="ecore:EClass" name="XmlStructConverterImpl" eSuperTypes="#//XmlStructConverter"/>
-  <eClassifiers xsi:type="ecore:EClass" name="XmlConvertersHolder" abstract="true"
-      interface="true">
-    <eStructuralFeatures xsi:type="ecore:EReference" name="converters" upperBound="-1"
-        eType="#//XmlConverter" containment="true" resolveProxies="false"/>
-    <eStructuralFeatures xsi:type="ecore:EReference" name="typeConverters" upperBound="-1"
-        eType="#//XmlTypeConverter" containment="true" resolveProxies="false"/>
-    <eStructuralFeatures xsi:type="ecore:EReference" name="objectTypeConverters" upperBound="-1"
-        eType="#//XmlObjectTypeConverter" containment="true" resolveProxies="false"/>
-    <eStructuralFeatures xsi:type="ecore:EReference" name="structConverters" upperBound="-1"
-        eType="#//XmlStructConverter" containment="true" resolveProxies="false"/>
-  </eClassifiers>
-  <eClassifiers xsi:type="ecore:EEnum" name="XmlDirection">
-    <eLiterals name="IN"/>
-    <eLiterals name="OUT" value="1" literal="OUT"/>
-    <eLiterals name="IN_OUT" value="2" literal="IN_OUT"/>
-    <eLiterals name="OUT_CURSOR" value="3" literal="OUT_CURSOR"/>
-  </eClassifiers>
-  <eClassifiers xsi:type="ecore:EClass" name="XmlStoredProcedureParameter">
-    <eStructuralFeatures xsi:type="ecore:EAttribute" name="direction" eType="#//XmlDirection"/>
-    <eStructuralFeatures xsi:type="ecore:EAttribute" name="name" eType="ecore:EDataType http://www.eclipse.org/emf/2003/XMLType#//String"/>
-    <eStructuralFeatures xsi:type="ecore:EAttribute" name="queryParameter" eType="ecore:EDataType http://www.eclipse.org/emf/2003/XMLType#//String"/>
-    <eStructuralFeatures xsi:type="ecore:EAttribute" name="type" eType="ecore:EDataType http://www.eclipse.org/emf/2003/XMLType#//String"/>
-    <eStructuralFeatures xsi:type="ecore:EAttribute" name="jdbcType" eType="ecore:EDataType http://www.eclipse.org/emf/2003/XMLType#//IntObject"/>
-    <eStructuralFeatures xsi:type="ecore:EAttribute" name="jdbcTypeName" eType="ecore:EDataType http://www.eclipse.org/emf/2003/XMLType#//String"/>
-  </eClassifiers>
-  <eClassifiers xsi:type="ecore:EClass" name="XmlNamedStoredProcedureQuery">
-    <eStructuralFeatures xsi:type="ecore:EAttribute" name="name" eType="ecore:EDataType http://www.eclipse.org/emf/2003/XMLType#//String"/>
-    <eStructuralFeatures xsi:type="ecore:EAttribute" name="resultClass" eType="ecore:EDataType http://www.eclipse.org/emf/2003/XMLType#//String"/>
-    <eStructuralFeatures xsi:type="ecore:EAttribute" name="resultSetMapping" eType="ecore:EDataType http://www.eclipse.org/emf/2003/XMLType#//String"/>
-    <eStructuralFeatures xsi:type="ecore:EAttribute" name="procedureName" eType="ecore:EDataType http://www.eclipse.org/emf/2003/XMLType#//String"/>
-    <eStructuralFeatures xsi:type="ecore:EAttribute" name="returnsResultSet" eType="ecore:EDataType http://www.eclipse.org/emf/2003/XMLType#//BooleanObject"/>
-    <eStructuralFeatures xsi:type="ecore:EReference" name="hints" upperBound="-1"
-        eType="ecore:EClass ../../org.eclipse.jpt.core/model/orm.ecore#//XmlQueryHint"
-        containment="true" resolveProxies="false"/>
-    <eStructuralFeatures xsi:type="ecore:EReference" name="parameters" upperBound="-1"
-        eType="#//XmlStoredProcedureParameter" containment="true" resolveProxies="false"/>
-  </eClassifiers>
-  <eClassifiers xsi:type="ecore:EClass" name="XmlEntityMappings" eSuperTypes="../../org.eclipse.jpt.core/model/orm.ecore#//XmlEntityMappings #//XmlConvertersHolder">
-    <eStructuralFeatures xsi:type="ecore:EReference" name="namedStoredProcedureQueries"
-        upperBound="-1" eType="#//XmlNamedStoredProcedureQuery" containment="true"
-        resolveProxies="false"/>
-  </eClassifiers>
-  <eClassifiers xsi:type="ecore:EClass" name="XmlPersistenceUnitMetadata" eSuperTypes="../../org.eclipse.jpt.core/model/orm.ecore#//XmlPersistenceUnitMetadata">
-    <eStructuralFeatures xsi:type="ecore:EAttribute" name="excludeDefaultMappings"
-        eType="ecore:EDataType http://www.eclipse.org/emf/2003/XMLType#//Boolean"/>
-  </eClassifiers>
-  <eClassifiers xsi:type="ecore:EClass" name="XmlCustomizer">
-    <eStructuralFeatures xsi:type="ecore:EAttribute" name="customizerClassName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
-  </eClassifiers>
-  <eClassifiers xsi:type="ecore:EClass" name="XmlCustomizerHolder" abstract="true"
-      interface="true">
-    <eStructuralFeatures xsi:type="ecore:EReference" name="customizer" eType="#//XmlCustomizer"
-        containment="true" resolveProxies="false"/>
-  </eClassifiers>
-  <eClassifiers xsi:type="ecore:EEnum" name="XmlChangeTrackingType">
-    <eLiterals name="ATTRIBUTE" literal="ATTRIBUTE"/>
-    <eLiterals name="OBJECT" value="1"/>
-    <eLiterals name="DEFERRED" value="2"/>
-    <eLiterals name="AUTO" value="3"/>
-  </eClassifiers>
-  <eClassifiers xsi:type="ecore:EClass" name="XmlChangeTracking">
-    <eStructuralFeatures xsi:type="ecore:EAttribute" name="type" eType="#//XmlChangeTrackingType"/>
-  </eClassifiers>
-  <eClassifiers xsi:type="ecore:EClass" name="XmlChangeTrackingHolder" abstract="true"
-      interface="true">
-    <eStructuralFeatures xsi:type="ecore:EReference" name="changeTracking" eType="#//XmlChangeTracking"
-        containment="true" resolveProxies="false"/>
-  </eClassifiers>
-  <eClassifiers xsi:type="ecore:EClass" name="XmlCopyPolicy">
-    <eStructuralFeatures xsi:type="ecore:EAttribute" name="class" eType="ecore:EDataType http://www.eclipse.org/emf/2003/XMLType#//String"/>
-  </eClassifiers>
-  <eClassifiers xsi:type="ecore:EClass" name="XmlInstantiationPolicy"/>
-  <eClassifiers xsi:type="ecore:EClass" name="XmlCloneCopyPolicy">
-    <eStructuralFeatures xsi:type="ecore:EAttribute" name="method" eType="ecore:EDataType http://www.eclipse.org/emf/2003/XMLType#//String"/>
-    <eStructuralFeatures xsi:type="ecore:EAttribute" name="workingCopyMethod" eType="ecore:EDataType http://www.eclipse.org/emf/2003/XMLType#//String"/>
-  </eClassifiers>
-  <eClassifiers xsi:type="ecore:EClass" name="XmlEmbeddable" eSuperTypes="../../org.eclipse.jpt.core/model/orm.ecore#//XmlEmbeddable #//XmlCustomizerHolder #//XmlChangeTrackingHolder #//XmlConvertersHolder">
-    <eStructuralFeatures xsi:type="ecore:EReference" name="copyPolicy" eType="#//XmlCopyPolicy"
-        containment="true" resolveProxies="false"/>
-    <eStructuralFeatures xsi:type="ecore:EReference" name="instantiationCopyPolicy"
-        eType="#//XmlCopyPolicy" containment="true" resolveProxies="false"/>
-    <eStructuralFeatures xsi:type="ecore:EReference" name="cloneCopyPolicy" eType="#//XmlCopyPolicy"
-        containment="true" resolveProxies="false"/>
-    <eStructuralFeatures xsi:type="ecore:EReference" name="properties" upperBound="-1"
-        eType="#//XmlProperty" containment="true" resolveProxies="false"/>
-    <eStructuralFeatures xsi:type="ecore:EAttribute" name="excludeDefaultMappings"
-        eType="ecore:EDataType http://www.eclipse.org/emf/2003/XMLType#//BooleanObject"/>
-  </eClassifiers>
-  <eClassifiers xsi:type="ecore:EClass" name="XmlReadOnly" abstract="true" interface="true">
-    <eStructuralFeatures xsi:type="ecore:EAttribute" name="readOnly" eType="ecore:EDataType http://www.eclipse.org/emf/2003/XMLType#//BooleanObject"/>
-  </eClassifiers>
-  <eClassifiers xsi:type="ecore:EEnum" name="CacheType">
-    <eLiterals name="FULL"/>
-    <eLiterals name="WEAK" value="1"/>
-    <eLiterals name="SOFT" value="2"/>
-    <eLiterals name="SOFT_WEAK" value="3"/>
-    <eLiterals name="HARD_WEAK" value="4"/>
-    <eLiterals name="CACHE" value="5"/>
-    <eLiterals name="NONE" value="6"/>
-  </eClassifiers>
-  <eClassifiers xsi:type="ecore:EEnum" name="CacheCoordinationType">
-    <eLiterals name="SEND_OBJECT_CHANGES"/>
-    <eLiterals name="INVALIDATE_CHANGED_OBJECTS" value="1"/>
-    <eLiterals name="SEND_NEW_OBJECTS_WITH_CHANGES" value="2"/>
-    <eLiterals name="NONE" value="3"/>
-  </eClassifiers>
-  <eClassifiers xsi:type="ecore:EClass" name="XmlTimeOfDay">
-    <eStructuralFeatures xsi:type="ecore:EAttribute" name="hour" eType="ecore:EDataType http://www.eclipse.org/emf/2003/XMLType#//IntObject"/>
-    <eStructuralFeatures xsi:type="ecore:EAttribute" name="minute" eType="ecore:EDataType http://www.eclipse.org/emf/2003/XMLType#//IntObject"/>
-    <eStructuralFeatures xsi:type="ecore:EAttribute" name="second" eType="ecore:EDataType http://www.eclipse.org/emf/2003/XMLType#//IntObject"/>
-    <eStructuralFeatures xsi:type="ecore:EAttribute" name="millisecond" eType="ecore:EDataType http://www.eclipse.org/emf/2003/XMLType#//IntObject"/>
-  </eClassifiers>
-  <eClassifiers xsi:type="ecore:EClass" name="XmlCache">
-    <eStructuralFeatures xsi:type="ecore:EAttribute" name="expiry" eType="ecore:EDataType http://www.eclipse.org/emf/2003/XMLType#//IntObject"/>
-    <eStructuralFeatures xsi:type="ecore:EAttribute" name="size" eType="ecore:EDataType http://www.eclipse.org/emf/2003/XMLType#//IntObject"/>
-    <eStructuralFeatures xsi:type="ecore:EAttribute" name="shared" eType="ecore:EDataType http://www.eclipse.org/emf/2003/XMLType#//BooleanObject"/>
-    <eStructuralFeatures xsi:type="ecore:EAttribute" name="type" eType="#//CacheType"/>
-    <eStructuralFeatures xsi:type="ecore:EAttribute" name="alwaysRefresh" eType="ecore:EDataType http://www.eclipse.org/emf/2003/XMLType#//BooleanObject"/>
-    <eStructuralFeatures xsi:type="ecore:EAttribute" name="refreshOnlyIfNewer" eType="ecore:EDataType http://www.eclipse.org/emf/2003/XMLType#//BooleanObject"/>
-    <eStructuralFeatures xsi:type="ecore:EAttribute" name="disableHits" eType="ecore:EDataType http://www.eclipse.org/emf/2003/XMLType#//BooleanObject"/>
-    <eStructuralFeatures xsi:type="ecore:EAttribute" name="coordinationType" eType="#//CacheCoordinationType"
-        defaultValueLiteral=""/>
-    <eStructuralFeatures xsi:type="ecore:EReference" name="expiryTimeOfDay" eType="#//XmlTimeOfDay"
-        containment="true"/>
-  </eClassifiers>
-  <eClassifiers xsi:type="ecore:EEnum" name="ExistenceType">
-    <eLiterals name="CHECK_CACHE"/>
-    <eLiterals name="CHECK_DATABASE" value="1"/>
-    <eLiterals name="ASSUME_EXISTENCE" value="2"/>
-    <eLiterals name="ASSUME_NON_EXISTENCE" value="3"/>
-  </eClassifiers>
-  <eClassifiers xsi:type="ecore:EClass" name="XmlCacheHolder" abstract="true" interface="true">
-    <eStructuralFeatures xsi:type="ecore:EReference" name="cache" eType="#//XmlCache"
-        containment="true" resolveProxies="false"/>
-    <eStructuralFeatures xsi:type="ecore:EAttribute" name="existenceChecking" eType="#//ExistenceType"
-        defaultValueLiteral=""/>
-  </eClassifiers>
-  <eClassifiers xsi:type="ecore:EEnum" name="XmlOptimisticLockingType">
-    <eLiterals name="ALL_COLUMNS"/>
-    <eLiterals name="CHANGED_COLUMNS" value="1" literal="CHANGED_COLUMNS"/>
-    <eLiterals name="SELECTED_COLUMNS" value="2" literal="SELECTED_COLUMNS"/>
-    <eLiterals name="VERSION_COLUMN" value="3" literal="VERSION_COLUMN"/>
-  </eClassifiers>
-  <eClassifiers xsi:type="ecore:EClass" name="XmlOptimisticLocking">
-    <eStructuralFeatures xsi:type="ecore:EAttribute" name="type" eType="#//XmlOptimisticLockingType"/>
-    <eStructuralFeatures xsi:type="ecore:EAttribute" name="cascade" eType="ecore:EDataType http://www.eclipse.org/emf/2003/XMLType#//BooleanObject"/>
-    <eStructuralFeatures xsi:type="ecore:EReference" name="selectedColumns" upperBound="-1"
-        eType="ecore:EClass ../../org.eclipse.jpt.core/model/orm.ecore#//XmlColumn"
-        containment="true" resolveProxies="false"/>
-  </eClassifiers>
-  <eClassifiers xsi:type="ecore:EClass" name="XmlEntity" eSuperTypes="../../org.eclipse.jpt.core/model/orm.ecore#//XmlEntity #//XmlReadOnly #//XmlCustomizerHolder #//XmlChangeTrackingHolder #//XmlCacheHolder #//XmlConvertersHolder">
-    <eStructuralFeatures xsi:type="ecore:EReference" name="optimisticLocking" eType="#//XmlOptimisticLocking"
-        containment="true" resolveProxies="false"/>
-    <eStructuralFeatures xsi:type="ecore:EReference" name="copyPolicy" eType="#//XmlCopyPolicy"
-        containment="true" resolveProxies="false"/>
-    <eStructuralFeatures xsi:type="ecore:EReference" name="instantiationCopyPolicy"
-        eType="#//XmlCopyPolicy" containment="true" resolveProxies="false"/>
-    <eStructuralFeatures xsi:type="ecore:EReference" name="cloneCopyPolicy" eType="#//XmlCopyPolicy"
-        containment="true" resolveProxies="false"/>
-    <eStructuralFeatures xsi:type="ecore:EReference" name="namedStoredProcedureQueries"
-        upperBound="-1" eType="#//XmlNamedStoredProcedureQuery" containment="true"
-        resolveProxies="false"/>
-    <eStructuralFeatures xsi:type="ecore:EReference" name="properties" upperBound="-1"
-        eType="#//XmlProperty" containment="true" resolveProxies="false"/>
-    <eStructuralFeatures xsi:type="ecore:EAttribute" name="excludeDefaultMappings"
-        eType="ecore:EDataType http://www.eclipse.org/emf/2003/XMLType#//BooleanObject"/>
-  </eClassifiers>
-  <eClassifiers xsi:type="ecore:EClass" name="XmlMappedSuperclass" eSuperTypes="../../org.eclipse.jpt.core/model/orm.ecore#//XmlMappedSuperclass #//XmlReadOnly #//XmlCustomizerHolder #//XmlChangeTrackingHolder #//XmlCacheHolder #//XmlConvertersHolder">
-    <eStructuralFeatures xsi:type="ecore:EReference" name="optimisticLocking" eType="#//XmlOptimisticLocking"
-        containment="true" resolveProxies="false"/>
-    <eStructuralFeatures xsi:type="ecore:EReference" name="copyPolicy" eType="#//XmlCopyPolicy"
-        containment="true" resolveProxies="false"/>
-    <eStructuralFeatures xsi:type="ecore:EReference" name="instantiationCopyPolicy"
-        eType="#//XmlCopyPolicy" containment="true" resolveProxies="false"/>
-    <eStructuralFeatures xsi:type="ecore:EReference" name="cloneCopyPolicy" eType="#//XmlCopyPolicy"
-        containment="true" resolveProxies="false"/>
-    <eStructuralFeatures xsi:type="ecore:EReference" name="properties" upperBound="-1"
-        eType="#//XmlProperty" containment="true" resolveProxies="false"/>
-    <eStructuralFeatures xsi:type="ecore:EAttribute" name="excludeDefaultMappings"
-        eType="ecore:EDataType http://www.eclipse.org/emf/2003/XMLType#//BooleanObject"/>
-  </eClassifiers>
-  <eClassifiers xsi:type="ecore:EClass" name="XmlMutable" abstract="true" interface="true">
-    <eStructuralFeatures xsi:type="ecore:EAttribute" name="mutable" eType="ecore:EDataType http://www.eclipse.org/emf/2003/XMLType#//BooleanObject"/>
-  </eClassifiers>
-  <eClassifiers xsi:type="ecore:EClass" name="XmlConverterHolder" abstract="true"
-      interface="true">
-    <eStructuralFeatures xsi:type="ecore:EReference" name="converter" eType="#//XmlConverter"
-        containment="true" resolveProxies="false"/>
-    <eStructuralFeatures xsi:type="ecore:EReference" name="typeConverter" eType="#//XmlTypeConverter"
-        containment="true" resolveProxies="false"/>
-    <eStructuralFeatures xsi:type="ecore:EReference" name="objectTypeConverter" eType="#//XmlObjectTypeConverter"
-        containment="true" resolveProxies="false"/>
-    <eStructuralFeatures xsi:type="ecore:EReference" name="structConverter" eType="#//XmlStructConverter"
-        containment="true" resolveProxies="false"/>
-  </eClassifiers>
-  <eClassifiers xsi:type="ecore:EClass" name="XmlConvertibleMapping" abstract="true"
-      interface="true" eSuperTypes="../../org.eclipse.jpt.core/model/orm.ecore#//XmlConvertibleMapping #//XmlConverterHolder">
-    <eStructuralFeatures xsi:type="ecore:EAttribute" name="convert" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
-  </eClassifiers>
-  <eClassifiers xsi:type="ecore:EClass" name="XmlAccessMethods">
-    <eStructuralFeatures xsi:type="ecore:EAttribute" name="getMethod" eType="ecore:EDataType http://www.eclipse.org/emf/2003/XMLType#//String"/>
-    <eStructuralFeatures xsi:type="ecore:EAttribute" name="setMethod" eType="ecore:EDataType http://www.eclipse.org/emf/2003/XMLType#//String"/>
-  </eClassifiers>
-  <eClassifiers xsi:type="ecore:EClass" name="XmlAccessMethodsHolder" abstract="true"
-      interface="true">
-    <eStructuralFeatures xsi:type="ecore:EReference" name="accessMethods" eType="#//XmlAccessMethods"
-        containment="true" resolveProxies="false"/>
-  </eClassifiers>
-  <eClassifiers xsi:type="ecore:EClass" name="XmlProperty">
-    <eStructuralFeatures xsi:type="ecore:EAttribute" name="name" eType="ecore:EDataType http://www.eclipse.org/emf/2003/XMLType#//String"/>
-    <eStructuralFeatures xsi:type="ecore:EAttribute" name="value" eType="ecore:EDataType http://www.eclipse.org/emf/2003/XMLType#//String"/>
-    <eStructuralFeatures xsi:type="ecore:EAttribute" name="valueType" eType="ecore:EDataType http://www.eclipse.org/emf/2003/XMLType#//String"/>
-  </eClassifiers>
-  <eClassifiers xsi:type="ecore:EClass" name="XmlId" abstract="true" interface="true"
-      eSuperTypes="../../org.eclipse.jpt.core/model/orm.ecore#//XmlId #//XmlMutable #//XmlConvertibleMapping #//XmlAccessMethodsHolder">
-    <eStructuralFeatures xsi:type="ecore:EReference" name="properties" upperBound="-1"
-        eType="#//XmlProperty" containment="true" resolveProxies="false"/>
-  </eClassifiers>
-  <eClassifiers xsi:type="ecore:EClass" name="XmlIdImpl" eSuperTypes="../../org.eclipse.jpt.core/model/orm.ecore#//XmlIdImpl #//XmlId"/>
-  <eClassifiers xsi:type="ecore:EClass" name="XmlEmbeddedId" abstract="true" interface="true"
-      eSuperTypes="../../org.eclipse.jpt.core/model/orm.ecore#//XmlEmbeddedId #//XmlAccessMethodsHolder">
-    <eStructuralFeatures xsi:type="ecore:EReference" name="properties" upperBound="-1"
-        eType="#//XmlProperty" containment="true" resolveProxies="false"/>
-  </eClassifiers>
-  <eClassifiers xsi:type="ecore:EClass" name="XmlEmbeddedIdImpl" eSuperTypes="../../org.eclipse.jpt.core/model/orm.ecore#//XmlEmbeddedIdImpl #//XmlEmbeddedId"/>
-  <eClassifiers xsi:type="ecore:EClass" name="XmlEmbedded" abstract="true" interface="true"
-      eSuperTypes="../../org.eclipse.jpt.core/model/orm.ecore#//XmlEmbedded #//XmlAccessMethodsHolder">
-    <eStructuralFeatures xsi:type="ecore:EReference" name="properties" upperBound="-1"
-        eType="#//XmlProperty" containment="true" resolveProxies="false"/>
-  </eClassifiers>
-  <eClassifiers xsi:type="ecore:EClass" name="XmlEmbeddedImpl" eSuperTypes="../../org.eclipse.jpt.core/model/orm.ecore#//XmlEmbeddedImpl #//XmlEmbedded"/>
-  <eClassifiers xsi:type="ecore:EClass" name="XmlBasic" abstract="true" interface="true"
-      eSuperTypes="../../org.eclipse.jpt.core/model/orm.ecore#//XmlBasic #//XmlMutable #//XmlConvertibleMapping #//XmlAccessMethodsHolder">
-    <eStructuralFeatures xsi:type="ecore:EReference" name="properties" upperBound="-1"
-        eType="#//XmlProperty" containment="true" resolveProxies="false"/>
-  </eClassifiers>
-  <eClassifiers xsi:type="ecore:EClass" name="XmlBasicImpl" eSuperTypes="../../org.eclipse.jpt.core/model/orm.ecore#//XmlBasicImpl #//XmlBasic"/>
-  <eClassifiers xsi:type="ecore:EClass" name="XmlVersion" abstract="true" interface="true"
-      eSuperTypes="../../org.eclipse.jpt.core/model/orm.ecore#//XmlVersion #//XmlMutable #//XmlConvertibleMapping #//XmlAccessMethodsHolder">
-    <eStructuralFeatures xsi:type="ecore:EReference" name="properties" upperBound="-1"
-        eType="#//XmlProperty" containment="true" resolveProxies="false"/>
-  </eClassifiers>
-  <eClassifiers xsi:type="ecore:EClass" name="XmlVersionImpl" eSuperTypes="../../org.eclipse.jpt.core/model/orm.ecore#//XmlVersionImpl #//XmlVersion"/>
-  <eClassifiers xsi:type="ecore:EClass" name="XmlPrivateOwned" abstract="true" interface="true">
-    <eStructuralFeatures xsi:type="ecore:EAttribute" name="privateOwned" eType="ecore:EDataType http://www.eclipse.org/emf/2003/XMLType#//Boolean"/>
-  </eClassifiers>
-  <eClassifiers xsi:type="ecore:EEnum" name="XmlJoinFetchType">
-    <eLiterals name="INNER"/>
-    <eLiterals name="OUTER" value="1" literal="OUTER"/>
-  </eClassifiers>
-  <eClassifiers xsi:type="ecore:EClass" name="XmlJoinFetch" abstract="true" interface="true">
-    <eStructuralFeatures xsi:type="ecore:EAttribute" name="joinFetch" eType="#//XmlJoinFetchType"/>
-  </eClassifiers>
-  <eClassifiers xsi:type="ecore:EClass" name="XmlOneToOne" abstract="true" interface="true"
-      eSuperTypes="../../org.eclipse.jpt.core/model/orm.ecore#//XmlOneToOne #//XmlPrivateOwned #//XmlJoinFetch #//XmlAccessMethodsHolder">
-    <eStructuralFeatures xsi:type="ecore:EReference" name="properties" upperBound="-1"
-        eType="#//XmlProperty" containment="true" resolveProxies="false"/>
-  </eClassifiers>
-  <eClassifiers xsi:type="ecore:EClass" name="XmlOneToOneImpl" eSuperTypes="../../org.eclipse.jpt.core/model/orm.ecore#//XmlOneToOneImpl #//XmlOneToOne"/>
-  <eClassifiers xsi:type="ecore:EClass" name="XmlOneToMany" abstract="true" interface="true"
-      eSuperTypes="../../org.eclipse.jpt.core/model/orm.ecore#//XmlOneToMany #//XmlPrivateOwned #//XmlJoinFetch #//XmlAccessMethodsHolder">
-    <eStructuralFeatures xsi:type="ecore:EReference" name="properties" upperBound="-1"
-        eType="#//XmlProperty" containment="true" resolveProxies="false"/>
-  </eClassifiers>
-  <eClassifiers xsi:type="ecore:EClass" name="XmlOneToManyImpl" eSuperTypes="../../org.eclipse.jpt.core/model/orm.ecore#//XmlOneToManyImpl #//XmlOneToMany"/>
-  <eClassifiers xsi:type="ecore:EClass" name="XmlManyToOne" abstract="true" interface="true"
-      eSuperTypes="../../org.eclipse.jpt.core/model/orm.ecore#//XmlManyToOne #//XmlJoinFetch #//XmlAccessMethodsHolder">
-    <eStructuralFeatures xsi:type="ecore:EReference" name="properties" upperBound="-1"
-        eType="#//XmlProperty" containment="true" resolveProxies="false"/>
-  </eClassifiers>
-  <eClassifiers xsi:type="ecore:EClass" name="XmlManyToOneImpl" eSuperTypes="../../org.eclipse.jpt.core/model/orm.ecore#//XmlManyToOneImpl #//XmlManyToOne"/>
-  <eClassifiers xsi:type="ecore:EClass" name="XmlManyToMany" abstract="true" interface="true"
-      eSuperTypes="../../org.eclipse.jpt.core/model/orm.ecore#//XmlManyToMany #//XmlJoinFetch #//XmlAccessMethodsHolder">
-    <eStructuralFeatures xsi:type="ecore:EReference" name="properties" upperBound="-1"
-        eType="#//XmlProperty" containment="true" resolveProxies="false"/>
-  </eClassifiers>
-  <eClassifiers xsi:type="ecore:EClass" name="XmlManyToManyImpl" eSuperTypes="../../org.eclipse.jpt.core/model/orm.ecore#//XmlManyToManyImpl #//XmlManyToMany"/>
-  <eClassifiers xsi:type="ecore:EClass" name="XmlBasicCollection" abstract="true"
-      interface="true" eSuperTypes="../../org.eclipse.jpt.core/model/orm.ecore#//XmlAttributeMapping #//XmlAccessMethodsHolder">
-    <eStructuralFeatures xsi:type="ecore:EReference" name="properties" upperBound="-1"
-        eType="#//XmlProperty" containment="true" resolveProxies="false"/>
-  </eClassifiers>
-  <eClassifiers xsi:type="ecore:EClass" name="XmlBasicCollectionImpl" eSuperTypes="../../org.eclipse.jpt.core/model/orm.ecore#//AbstractXmlAttributeMapping #//XmlBasicCollection"/>
-  <eClassifiers xsi:type="ecore:EClass" name="XmlBasicMap" abstract="true" interface="true"
-      eSuperTypes="../../org.eclipse.jpt.core/model/orm.ecore#//XmlAttributeMapping #//XmlAccessMethodsHolder">
-    <eStructuralFeatures xsi:type="ecore:EReference" name="properties" upperBound="-1"
-        eType="#//XmlProperty" containment="true" resolveProxies="false"/>
-  </eClassifiers>
-  <eClassifiers xsi:type="ecore:EClass" name="XmlBasicMapImpl" eSuperTypes="../../org.eclipse.jpt.core/model/orm.ecore#//AbstractXmlAttributeMapping #//XmlBasicMap"/>
-  <eClassifiers xsi:type="ecore:EClass" name="XmlTransformation" abstract="true" interface="true"
-      eSuperTypes="../../org.eclipse.jpt.core/model/orm.ecore#//XmlAttributeMapping #//XmlAccessMethodsHolder">
-    <eStructuralFeatures xsi:type="ecore:EReference" name="properties" upperBound="-1"
-        eType="#//XmlProperty" containment="true" resolveProxies="false"/>
-  </eClassifiers>
-  <eClassifiers xsi:type="ecore:EClass" name="XmlTransformationImpl" eSuperTypes="../../org.eclipse.jpt.core/model/orm.ecore#//AbstractXmlAttributeMapping #//XmlTransformation"/>
-  <eClassifiers xsi:type="ecore:EClass" name="XmlVariableOneToOne" abstract="true"
-      interface="true" eSuperTypes="../../org.eclipse.jpt.core/model/orm.ecore#//XmlAttributeMapping #//XmlAccessMethodsHolder">
-    <eStructuralFeatures xsi:type="ecore:EReference" name="properties" upperBound="-1"
-        eType="#//XmlProperty" containment="true" resolveProxies="false"/>
-  </eClassifiers>
-  <eClassifiers xsi:type="ecore:EClass" name="XmlVariableOneToOneImpl" eSuperTypes="../../org.eclipse.jpt.core/model/orm.ecore#//AbstractXmlAttributeMapping #//XmlVariableOneToOne"/>
-  <eClassifiers xsi:type="ecore:EClass" name="Attributes" eSuperTypes="../../org.eclipse.jpt.core/model/orm.ecore#//Attributes">
-    <eStructuralFeatures xsi:type="ecore:EReference" name="basicCollections" upperBound="-1"
-        eType="#//XmlBasicCollection" containment="true" resolveProxies="false"/>
-    <eStructuralFeatures xsi:type="ecore:EReference" name="basicMaps" upperBound="-1"
-        eType="#//XmlBasicMap" containment="true" resolveProxies="false"/>
-    <eStructuralFeatures xsi:type="ecore:EReference" name="transformations" upperBound="-1"
-        eType="#//XmlTransformation" containment="true" resolveProxies="false"/>
-    <eStructuralFeatures xsi:type="ecore:EReference" name="variableOneToOnes" upperBound="-1"
-        eType="#//XmlVariableOneToOne" containment="true" resolveProxies="false"/>
-  </eClassifiers>
-</ecore:EPackage>
diff --git a/jpa/plugins/org.eclipse.jpt.eclipselink.core/model/jptEclipseLink1_1ResourceModels.genmodel b/jpa/plugins/org.eclipse.jpt.eclipselink.core/model/jptEclipseLink1_1ResourceModels.genmodel
deleted file mode 100644
index ed80101..0000000
--- a/jpa/plugins/org.eclipse.jpt.eclipselink.core/model/jptEclipseLink1_1ResourceModels.genmodel
+++ /dev/null
@@ -1,315 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<genmodel:GenModel xmi:version="2.0"
-    xmlns:xmi="http://www.omg.org/XMI" xmlns:ecore="http://www.eclipse.org/emf/2002/Ecore"
-    xmlns:genmodel="http://www.eclipse.org/emf/2002/GenModel" modelDirectory="/org.eclipse.jpt.eclipselink.core/src"
-    creationCommands="false" creationIcons="false" editDirectory="" editorDirectory=""
-    modelPluginID="org.eclipse.jpt.eclipselink.core" modelName="EclipseLinkCore" editPluginClass=""
-    editorPluginClass="" updateClasspath="false" rootExtendsInterface="org.eclipse.jpt.core.resource.xml.JpaEObject"
-    rootExtendsClass="org.eclipse.jpt.core.resource.xml.AbstractJpaEObject" suppressInterfaces="true"
-    testsDirectory="" testSuiteClass="" importerID="org.eclipse.emf.importer.ecore"
-    complianceLevel="5.0" copyrightFields="false" usedGenPackages="../../org.eclipse.jpt.core/model/jptResourceModels.genmodel#//orm">
-  <foreignModel>eclipselink1_1_orm.ecore</foreignModel>
-  <genPackages prefix="EclipseLink1_1Orm" basePackage="org.eclipse.jpt.eclipselink1_1.core.resource"
-      disposableProviderFactory="true" ecorePackage="eclipselink1_1_orm.ecore#/">
-    <genClasses ecoreClass="eclipselink1_1_orm.ecore#//XmlEntityMappings"/>
-    <genClasses image="false" ecoreClass="eclipselink1_1_orm.ecore#//XmlAttributeMapping">
-      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute eclipselink1_1_orm.ecore#//XmlAttributeMapping/access"/>
-    </genClasses>
-    <genClasses image="false" ecoreClass="eclipselink1_1_orm.ecore#//XmlId"/>
-    <genClasses ecoreClass="eclipselink1_1_orm.ecore#//XmlIdImpl"/>
-    <genClasses image="false" ecoreClass="eclipselink1_1_orm.ecore#//XmlEmbeddedId"/>
-    <genClasses ecoreClass="eclipselink1_1_orm.ecore#//XmlEmbeddedIdImpl"/>
-    <genClasses image="false" ecoreClass="eclipselink1_1_orm.ecore#//XmlEmbedded"/>
-    <genClasses ecoreClass="eclipselink1_1_orm.ecore#//XmlEmbeddedImpl"/>
-    <genClasses image="false" ecoreClass="eclipselink1_1_orm.ecore#//XmlBasic">
-      <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference eclipselink1_1_orm.ecore#//XmlBasic/generatedValue"/>
-      <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference eclipselink1_1_orm.ecore#//XmlBasic/tableGenerator"/>
-      <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference eclipselink1_1_orm.ecore#//XmlBasic/sequenceGenerator"/>
-    </genClasses>
-    <genClasses ecoreClass="eclipselink1_1_orm.ecore#//XmlBasicImpl"/>
-    <genClasses image="false" ecoreClass="eclipselink1_1_orm.ecore#//XmlVersion"/>
-    <genClasses ecoreClass="eclipselink1_1_orm.ecore#//XmlVersionImpl"/>
-    <genClasses image="false" ecoreClass="eclipselink1_1_orm.ecore#//XmlOneToOne"/>
-    <genClasses ecoreClass="eclipselink1_1_orm.ecore#//XmlOneToOneImpl"/>
-    <genClasses image="false" ecoreClass="eclipselink1_1_orm.ecore#//XmlOneToMany"/>
-    <genClasses ecoreClass="eclipselink1_1_orm.ecore#//XmlOneToManyImpl"/>
-    <genClasses image="false" ecoreClass="eclipselink1_1_orm.ecore#//XmlManyToOne"/>
-    <genClasses ecoreClass="eclipselink1_1_orm.ecore#//XmlManyToOneImpl"/>
-    <genClasses image="false" ecoreClass="eclipselink1_1_orm.ecore#//XmlManyToMany"/>
-    <genClasses ecoreClass="eclipselink1_1_orm.ecore#//XmlManyToManyImpl"/>
-    <genClasses image="false" ecoreClass="eclipselink1_1_orm.ecore#//XmlBasicCollection"/>
-    <genClasses ecoreClass="eclipselink1_1_orm.ecore#//XmlBasicCollectionImpl"/>
-    <genClasses image="false" ecoreClass="eclipselink1_1_orm.ecore#//XmlBasicMap"/>
-    <genClasses ecoreClass="eclipselink1_1_orm.ecore#//XmlBasicMapImpl"/>
-    <genClasses image="false" ecoreClass="eclipselink1_1_orm.ecore#//XmlTransformation"/>
-    <genClasses ecoreClass="eclipselink1_1_orm.ecore#//XmlTransformationImpl"/>
-    <genClasses image="false" ecoreClass="eclipselink1_1_orm.ecore#//XmlVariableOneToOne"/>
-    <genClasses ecoreClass="eclipselink1_1_orm.ecore#//XmlVariableOneToOneImpl"/>
-    <genClasses image="false" ecoreClass="eclipselink1_1_orm.ecore#//XmlTransient"/>
-    <genClasses ecoreClass="eclipselink1_1_orm.ecore#//XmlTransientImpl"/>
-  </genPackages>
-  <genPackages prefix="EclipseLinkOrm" basePackage="org.eclipse.jpt.eclipselink.core.resource"
-      disposableProviderFactory="true" adapterFactory="false" ecorePackage="eclipselink_orm.ecore#/">
-    <genEnums typeSafeEnumCompatible="false" ecoreEnum="eclipselink_orm.ecore#//XmlDirection">
-      <genEnumLiterals ecoreEnumLiteral="eclipselink_orm.ecore#//XmlDirection/IN"/>
-      <genEnumLiterals ecoreEnumLiteral="eclipselink_orm.ecore#//XmlDirection/OUT"/>
-      <genEnumLiterals ecoreEnumLiteral="eclipselink_orm.ecore#//XmlDirection/IN_OUT"/>
-      <genEnumLiterals ecoreEnumLiteral="eclipselink_orm.ecore#//XmlDirection/OUT_CURSOR"/>
-    </genEnums>
-    <genEnums typeSafeEnumCompatible="false" ecoreEnum="eclipselink_orm.ecore#//XmlChangeTrackingType">
-      <genEnumLiterals ecoreEnumLiteral="eclipselink_orm.ecore#//XmlChangeTrackingType/ATTRIBUTE"/>
-      <genEnumLiterals ecoreEnumLiteral="eclipselink_orm.ecore#//XmlChangeTrackingType/OBJECT"/>
-      <genEnumLiterals ecoreEnumLiteral="eclipselink_orm.ecore#//XmlChangeTrackingType/DEFERRED"/>
-      <genEnumLiterals ecoreEnumLiteral="eclipselink_orm.ecore#//XmlChangeTrackingType/AUTO"/>
-    </genEnums>
-    <genEnums typeSafeEnumCompatible="false" ecoreEnum="eclipselink_orm.ecore#//CacheType">
-      <genEnumLiterals ecoreEnumLiteral="eclipselink_orm.ecore#//CacheType/FULL"/>
-      <genEnumLiterals ecoreEnumLiteral="eclipselink_orm.ecore#//CacheType/WEAK"/>
-      <genEnumLiterals ecoreEnumLiteral="eclipselink_orm.ecore#//CacheType/SOFT"/>
-      <genEnumLiterals ecoreEnumLiteral="eclipselink_orm.ecore#//CacheType/SOFT_WEAK"/>
-      <genEnumLiterals ecoreEnumLiteral="eclipselink_orm.ecore#//CacheType/HARD_WEAK"/>
-      <genEnumLiterals ecoreEnumLiteral="eclipselink_orm.ecore#//CacheType/CACHE"/>
-      <genEnumLiterals ecoreEnumLiteral="eclipselink_orm.ecore#//CacheType/NONE"/>
-    </genEnums>
-    <genEnums typeSafeEnumCompatible="false" ecoreEnum="eclipselink_orm.ecore#//CacheCoordinationType">
-      <genEnumLiterals ecoreEnumLiteral="eclipselink_orm.ecore#//CacheCoordinationType/SEND_OBJECT_CHANGES"/>
-      <genEnumLiterals ecoreEnumLiteral="eclipselink_orm.ecore#//CacheCoordinationType/INVALIDATE_CHANGED_OBJECTS"/>
-      <genEnumLiterals ecoreEnumLiteral="eclipselink_orm.ecore#//CacheCoordinationType/SEND_NEW_OBJECTS_WITH_CHANGES"/>
-      <genEnumLiterals ecoreEnumLiteral="eclipselink_orm.ecore#//CacheCoordinationType/NONE"/>
-    </genEnums>
-    <genEnums typeSafeEnumCompatible="false" ecoreEnum="eclipselink_orm.ecore#//ExistenceType">
-      <genEnumLiterals ecoreEnumLiteral="eclipselink_orm.ecore#//ExistenceType/CHECK_CACHE"/>
-      <genEnumLiterals ecoreEnumLiteral="eclipselink_orm.ecore#//ExistenceType/CHECK_DATABASE"/>
-      <genEnumLiterals ecoreEnumLiteral="eclipselink_orm.ecore#//ExistenceType/ASSUME_EXISTENCE"/>
-      <genEnumLiterals ecoreEnumLiteral="eclipselink_orm.ecore#//ExistenceType/ASSUME_NON_EXISTENCE"/>
-    </genEnums>
-    <genEnums typeSafeEnumCompatible="false" ecoreEnum="eclipselink_orm.ecore#//XmlOptimisticLockingType">
-      <genEnumLiterals ecoreEnumLiteral="eclipselink_orm.ecore#//XmlOptimisticLockingType/ALL_COLUMNS"/>
-      <genEnumLiterals ecoreEnumLiteral="eclipselink_orm.ecore#//XmlOptimisticLockingType/CHANGED_COLUMNS"/>
-      <genEnumLiterals ecoreEnumLiteral="eclipselink_orm.ecore#//XmlOptimisticLockingType/SELECTED_COLUMNS"/>
-      <genEnumLiterals ecoreEnumLiteral="eclipselink_orm.ecore#//XmlOptimisticLockingType/VERSION_COLUMN"/>
-    </genEnums>
-    <genEnums typeSafeEnumCompatible="false" ecoreEnum="eclipselink_orm.ecore#//XmlJoinFetchType">
-      <genEnumLiterals ecoreEnumLiteral="eclipselink_orm.ecore#//XmlJoinFetchType/INNER"/>
-      <genEnumLiterals ecoreEnumLiteral="eclipselink_orm.ecore#//XmlJoinFetchType/OUTER"/>
-    </genEnums>
-    <genClasses image="false" ecoreClass="eclipselink_orm.ecore#//XmlNamedConverter">
-      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute eclipselink_orm.ecore#//XmlNamedConverter/name"/>
-    </genClasses>
-    <genClasses ecoreClass="eclipselink_orm.ecore#//XmlConverter">
-      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute eclipselink_orm.ecore#//XmlConverter/className"/>
-    </genClasses>
-    <genClasses ecoreClass="eclipselink_orm.ecore#//XmlConverterImpl"/>
-    <genClasses ecoreClass="eclipselink_orm.ecore#//XmlTypeConverter">
-      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute eclipselink_orm.ecore#//XmlTypeConverter/dataType"/>
-      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute eclipselink_orm.ecore#//XmlTypeConverter/objectType"/>
-    </genClasses>
-    <genClasses ecoreClass="eclipselink_orm.ecore#//XmlTypeConverterImpl"/>
-    <genClasses ecoreClass="eclipselink_orm.ecore#//XmlConversionValue">
-      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute eclipselink_orm.ecore#//XmlConversionValue/dataValue"/>
-      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute eclipselink_orm.ecore#//XmlConversionValue/objectValue"/>
-    </genClasses>
-    <genClasses ecoreClass="eclipselink_orm.ecore#//XmlConversionValueImpl"/>
-    <genClasses ecoreClass="eclipselink_orm.ecore#//XmlObjectTypeConverter">
-      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute eclipselink_orm.ecore#//XmlObjectTypeConverter/dataType"/>
-      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute eclipselink_orm.ecore#//XmlObjectTypeConverter/objectType"/>
-      <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference eclipselink_orm.ecore#//XmlObjectTypeConverter/conversionValues"/>
-      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute eclipselink_orm.ecore#//XmlObjectTypeConverter/defaultObjectValue"/>
-    </genClasses>
-    <genClasses ecoreClass="eclipselink_orm.ecore#//XmlObjectTypeConverterImpl"/>
-    <genClasses ecoreClass="eclipselink_orm.ecore#//XmlStructConverter">
-      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute eclipselink_orm.ecore#//XmlStructConverter/converter"/>
-    </genClasses>
-    <genClasses ecoreClass="eclipselink_orm.ecore#//XmlStructConverterImpl"/>
-    <genClasses image="false" ecoreClass="eclipselink_orm.ecore#//XmlConvertersHolder">
-      <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference eclipselink_orm.ecore#//XmlConvertersHolder/converters"/>
-      <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference eclipselink_orm.ecore#//XmlConvertersHolder/typeConverters"/>
-      <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference eclipselink_orm.ecore#//XmlConvertersHolder/objectTypeConverters"/>
-      <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference eclipselink_orm.ecore#//XmlConvertersHolder/structConverters"/>
-    </genClasses>
-    <genClasses ecoreClass="eclipselink_orm.ecore#//XmlStoredProcedureParameter">
-      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute eclipselink_orm.ecore#//XmlStoredProcedureParameter/direction"/>
-      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute eclipselink_orm.ecore#//XmlStoredProcedureParameter/name"/>
-      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute eclipselink_orm.ecore#//XmlStoredProcedureParameter/queryParameter"/>
-      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute eclipselink_orm.ecore#//XmlStoredProcedureParameter/type"/>
-      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute eclipselink_orm.ecore#//XmlStoredProcedureParameter/jdbcType"/>
-      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute eclipselink_orm.ecore#//XmlStoredProcedureParameter/jdbcTypeName"/>
-    </genClasses>
-    <genClasses ecoreClass="eclipselink_orm.ecore#//XmlNamedStoredProcedureQuery">
-      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute eclipselink_orm.ecore#//XmlNamedStoredProcedureQuery/name"/>
-      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute eclipselink_orm.ecore#//XmlNamedStoredProcedureQuery/resultClass"/>
-      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute eclipselink_orm.ecore#//XmlNamedStoredProcedureQuery/resultSetMapping"/>
-      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute eclipselink_orm.ecore#//XmlNamedStoredProcedureQuery/procedureName"/>
-      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute eclipselink_orm.ecore#//XmlNamedStoredProcedureQuery/returnsResultSet"/>
-      <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference eclipselink_orm.ecore#//XmlNamedStoredProcedureQuery/hints"/>
-      <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference eclipselink_orm.ecore#//XmlNamedStoredProcedureQuery/parameters"/>
-    </genClasses>
-    <genClasses ecoreClass="eclipselink_orm.ecore#//XmlEntityMappings">
-      <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference eclipselink_orm.ecore#//XmlEntityMappings/namedStoredProcedureQueries"/>
-    </genClasses>
-    <genClasses ecoreClass="eclipselink_orm.ecore#//XmlPersistenceUnitMetadata">
-      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute eclipselink_orm.ecore#//XmlPersistenceUnitMetadata/excludeDefaultMappings"/>
-    </genClasses>
-    <genClasses image="false" ecoreClass="eclipselink_orm.ecore#//XmlCustomizer">
-      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute eclipselink_orm.ecore#//XmlCustomizer/customizerClassName"/>
-    </genClasses>
-    <genClasses image="false" ecoreClass="eclipselink_orm.ecore#//XmlCustomizerHolder">
-      <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference eclipselink_orm.ecore#//XmlCustomizerHolder/customizer"/>
-    </genClasses>
-    <genClasses ecoreClass="eclipselink_orm.ecore#//XmlChangeTracking">
-      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute eclipselink_orm.ecore#//XmlChangeTracking/type"/>
-    </genClasses>
-    <genClasses image="false" ecoreClass="eclipselink_orm.ecore#//XmlChangeTrackingHolder">
-      <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference eclipselink_orm.ecore#//XmlChangeTrackingHolder/changeTracking"/>
-    </genClasses>
-    <genClasses ecoreClass="eclipselink_orm.ecore#//XmlCopyPolicy">
-      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute eclipselink_orm.ecore#//XmlCopyPolicy/class"/>
-    </genClasses>
-    <genClasses ecoreClass="eclipselink_orm.ecore#//XmlInstantiationPolicy"/>
-    <genClasses ecoreClass="eclipselink_orm.ecore#//XmlCloneCopyPolicy">
-      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute eclipselink_orm.ecore#//XmlCloneCopyPolicy/method"/>
-      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute eclipselink_orm.ecore#//XmlCloneCopyPolicy/workingCopyMethod"/>
-    </genClasses>
-    <genClasses ecoreClass="eclipselink_orm.ecore#//XmlEmbeddable">
-      <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference eclipselink_orm.ecore#//XmlEmbeddable/copyPolicy"/>
-      <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference eclipselink_orm.ecore#//XmlEmbeddable/instantiationCopyPolicy"/>
-      <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference eclipselink_orm.ecore#//XmlEmbeddable/cloneCopyPolicy"/>
-      <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference eclipselink_orm.ecore#//XmlEmbeddable/properties"/>
-      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute eclipselink_orm.ecore#//XmlEmbeddable/excludeDefaultMappings"/>
-    </genClasses>
-    <genClasses image="false" ecoreClass="eclipselink_orm.ecore#//XmlReadOnly">
-      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute eclipselink_orm.ecore#//XmlReadOnly/readOnly"/>
-    </genClasses>
-    <genClasses ecoreClass="eclipselink_orm.ecore#//XmlTimeOfDay">
-      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute eclipselink_orm.ecore#//XmlTimeOfDay/hour"/>
-      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute eclipselink_orm.ecore#//XmlTimeOfDay/minute"/>
-      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute eclipselink_orm.ecore#//XmlTimeOfDay/second"/>
-      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute eclipselink_orm.ecore#//XmlTimeOfDay/millisecond"/>
-    </genClasses>
-    <genClasses ecoreClass="eclipselink_orm.ecore#//XmlCache">
-      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute eclipselink_orm.ecore#//XmlCache/expiry"/>
-      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute eclipselink_orm.ecore#//XmlCache/size"/>
-      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute eclipselink_orm.ecore#//XmlCache/shared"/>
-      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute eclipselink_orm.ecore#//XmlCache/type"/>
-      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute eclipselink_orm.ecore#//XmlCache/alwaysRefresh"/>
-      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute eclipselink_orm.ecore#//XmlCache/refreshOnlyIfNewer"/>
-      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute eclipselink_orm.ecore#//XmlCache/disableHits"/>
-      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute eclipselink_orm.ecore#//XmlCache/coordinationType"/>
-      <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference eclipselink_orm.ecore#//XmlCache/expiryTimeOfDay"/>
-    </genClasses>
-    <genClasses image="false" ecoreClass="eclipselink_orm.ecore#//XmlCacheHolder">
-      <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference eclipselink_orm.ecore#//XmlCacheHolder/cache"/>
-      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute eclipselink_orm.ecore#//XmlCacheHolder/existenceChecking"/>
-    </genClasses>
-    <genClasses ecoreClass="eclipselink_orm.ecore#//XmlOptimisticLocking">
-      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute eclipselink_orm.ecore#//XmlOptimisticLocking/type"/>
-      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute eclipselink_orm.ecore#//XmlOptimisticLocking/cascade"/>
-      <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference eclipselink_orm.ecore#//XmlOptimisticLocking/selectedColumns"/>
-    </genClasses>
-    <genClasses ecoreClass="eclipselink_orm.ecore#//XmlEntity">
-      <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference eclipselink_orm.ecore#//XmlEntity/optimisticLocking"/>
-      <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference eclipselink_orm.ecore#//XmlEntity/copyPolicy"/>
-      <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference eclipselink_orm.ecore#//XmlEntity/instantiationCopyPolicy"/>
-      <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference eclipselink_orm.ecore#//XmlEntity/cloneCopyPolicy"/>
-      <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference eclipselink_orm.ecore#//XmlEntity/namedStoredProcedureQueries"/>
-      <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference eclipselink_orm.ecore#//XmlEntity/properties"/>
-      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute eclipselink_orm.ecore#//XmlEntity/excludeDefaultMappings"/>
-    </genClasses>
-    <genClasses ecoreClass="eclipselink_orm.ecore#//XmlMappedSuperclass">
-      <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference eclipselink_orm.ecore#//XmlMappedSuperclass/optimisticLocking"/>
-      <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference eclipselink_orm.ecore#//XmlMappedSuperclass/copyPolicy"/>
-      <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference eclipselink_orm.ecore#//XmlMappedSuperclass/instantiationCopyPolicy"/>
-      <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference eclipselink_orm.ecore#//XmlMappedSuperclass/cloneCopyPolicy"/>
-      <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference eclipselink_orm.ecore#//XmlMappedSuperclass/properties"/>
-      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute eclipselink_orm.ecore#//XmlMappedSuperclass/excludeDefaultMappings"/>
-    </genClasses>
-    <genClasses image="false" ecoreClass="eclipselink_orm.ecore#//XmlMutable">
-      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute eclipselink_orm.ecore#//XmlMutable/mutable"/>
-    </genClasses>
-    <genClasses image="false" ecoreClass="eclipselink_orm.ecore#//XmlConverterHolder">
-      <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference eclipselink_orm.ecore#//XmlConverterHolder/converter"/>
-      <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference eclipselink_orm.ecore#//XmlConverterHolder/typeConverter"/>
-      <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference eclipselink_orm.ecore#//XmlConverterHolder/objectTypeConverter"/>
-      <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference eclipselink_orm.ecore#//XmlConverterHolder/structConverter"/>
-    </genClasses>
-    <genClasses ecoreClass="eclipselink_orm.ecore#//XmlConvertibleMapping">
-      <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EAttribute eclipselink_orm.ecore#//XmlConvertibleMapping/convert"/>
-    </genClasses>
-    <genClasses image="false" ecoreClass="eclipselink_orm.ecore#//XmlAccessMethods">
-      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute eclipselink_orm.ecore#//XmlAccessMethods/getMethod"/>
-      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute eclipselink_orm.ecore#//XmlAccessMethods/setMethod"/>
-    </genClasses>
-    <genClasses image="false" ecoreClass="eclipselink_orm.ecore#//XmlAccessMethodsHolder">
-      <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference eclipselink_orm.ecore#//XmlAccessMethodsHolder/accessMethods"/>
-    </genClasses>
-    <genClasses ecoreClass="eclipselink_orm.ecore#//XmlProperty">
-      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute eclipselink_orm.ecore#//XmlProperty/name"/>
-      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute eclipselink_orm.ecore#//XmlProperty/value"/>
-      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute eclipselink_orm.ecore#//XmlProperty/valueType"/>
-    </genClasses>
-    <genClasses ecoreClass="eclipselink_orm.ecore#//XmlId">
-      <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference eclipselink_orm.ecore#//XmlId/properties"/>
-    </genClasses>
-    <genClasses ecoreClass="eclipselink_orm.ecore#//XmlIdImpl"/>
-    <genClasses image="false" ecoreClass="eclipselink_orm.ecore#//XmlEmbeddedId">
-      <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference eclipselink_orm.ecore#//XmlEmbeddedId/properties"/>
-    </genClasses>
-    <genClasses ecoreClass="eclipselink_orm.ecore#//XmlEmbeddedIdImpl"/>
-    <genClasses image="false" ecoreClass="eclipselink_orm.ecore#//XmlEmbedded">
-      <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference eclipselink_orm.ecore#//XmlEmbedded/properties"/>
-    </genClasses>
-    <genClasses ecoreClass="eclipselink_orm.ecore#//XmlEmbeddedImpl"/>
-    <genClasses ecoreClass="eclipselink_orm.ecore#//XmlBasic">
-      <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference eclipselink_orm.ecore#//XmlBasic/properties"/>
-    </genClasses>
-    <genClasses ecoreClass="eclipselink_orm.ecore#//XmlBasicImpl"/>
-    <genClasses ecoreClass="eclipselink_orm.ecore#//XmlVersion">
-      <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference eclipselink_orm.ecore#//XmlVersion/properties"/>
-    </genClasses>
-    <genClasses ecoreClass="eclipselink_orm.ecore#//XmlVersionImpl"/>
-    <genClasses image="false" ecoreClass="eclipselink_orm.ecore#//XmlPrivateOwned">
-      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute eclipselink_orm.ecore#//XmlPrivateOwned/privateOwned"/>
-    </genClasses>
-    <genClasses image="false" ecoreClass="eclipselink_orm.ecore#//XmlJoinFetch">
-      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute eclipselink_orm.ecore#//XmlJoinFetch/joinFetch"/>
-    </genClasses>
-    <genClasses ecoreClass="eclipselink_orm.ecore#//XmlOneToOne">
-      <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference eclipselink_orm.ecore#//XmlOneToOne/properties"/>
-    </genClasses>
-    <genClasses ecoreClass="eclipselink_orm.ecore#//XmlOneToOneImpl"/>
-    <genClasses ecoreClass="eclipselink_orm.ecore#//XmlOneToMany">
-      <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference eclipselink_orm.ecore#//XmlOneToMany/properties"/>
-    </genClasses>
-    <genClasses ecoreClass="eclipselink_orm.ecore#//XmlOneToManyImpl"/>
-    <genClasses ecoreClass="eclipselink_orm.ecore#//XmlManyToOne">
-      <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference eclipselink_orm.ecore#//XmlManyToOne/properties"/>
-    </genClasses>
-    <genClasses ecoreClass="eclipselink_orm.ecore#//XmlManyToOneImpl"/>
-    <genClasses ecoreClass="eclipselink_orm.ecore#//XmlManyToMany">
-      <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference eclipselink_orm.ecore#//XmlManyToMany/properties"/>
-    </genClasses>
-    <genClasses ecoreClass="eclipselink_orm.ecore#//XmlManyToManyImpl"/>
-    <genClasses image="false" ecoreClass="eclipselink_orm.ecore#//XmlBasicCollection">
-      <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference eclipselink_orm.ecore#//XmlBasicCollection/properties"/>
-    </genClasses>
-    <genClasses ecoreClass="eclipselink_orm.ecore#//XmlBasicCollectionImpl"/>
-    <genClasses image="false" ecoreClass="eclipselink_orm.ecore#//XmlBasicMap">
-      <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference eclipselink_orm.ecore#//XmlBasicMap/properties"/>
-    </genClasses>
-    <genClasses ecoreClass="eclipselink_orm.ecore#//XmlBasicMapImpl"/>
-    <genClasses image="false" ecoreClass="eclipselink_orm.ecore#//XmlTransformation">
-      <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference eclipselink_orm.ecore#//XmlTransformation/properties"/>
-    </genClasses>
-    <genClasses ecoreClass="eclipselink_orm.ecore#//XmlTransformationImpl"/>
-    <genClasses image="false" ecoreClass="eclipselink_orm.ecore#//XmlVariableOneToOne">
-      <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference eclipselink_orm.ecore#//XmlVariableOneToOne/properties"/>
-    </genClasses>
-    <genClasses ecoreClass="eclipselink_orm.ecore#//XmlVariableOneToOneImpl"/>
-    <genClasses ecoreClass="eclipselink_orm.ecore#//Attributes">
-      <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference eclipselink_orm.ecore#//Attributes/basicCollections"/>
-      <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference eclipselink_orm.ecore#//Attributes/basicMaps"/>
-      <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference eclipselink_orm.ecore#//Attributes/transformations"/>
-      <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference eclipselink_orm.ecore#//Attributes/variableOneToOnes"/>
-    </genClasses>
-  </genPackages>
-</genmodel:GenModel>
diff --git a/jpa/plugins/org.eclipse.jpt.eclipselink.core/model/jptEclipseLinkResourceModels.genmodel b/jpa/plugins/org.eclipse.jpt.eclipselink.core/model/jptEclipseLinkResourceModels.genmodel
deleted file mode 100644
index 9820b9de..0000000
--- a/jpa/plugins/org.eclipse.jpt.eclipselink.core/model/jptEclipseLinkResourceModels.genmodel
+++ /dev/null
@@ -1,276 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<genmodel:GenModel xmi:version="2.0"
-    xmlns:xmi="http://www.omg.org/XMI" xmlns:ecore="http://www.eclipse.org/emf/2002/Ecore"
-    xmlns:genmodel="http://www.eclipse.org/emf/2002/GenModel" modelDirectory="/org.eclipse.jpt.eclipselink.core/src"
-    creationCommands="false" creationIcons="false" editDirectory="" editorDirectory=""
-    modelPluginID="org.eclipse.jpt.eclipselink.core" modelName="EclipseLinkCore" editPluginClass=""
-    editorPluginClass="" updateClasspath="false" rootExtendsInterface="org.eclipse.jpt.core.resource.xml.JpaEObject"
-    rootExtendsClass="org.eclipse.jpt.core.resource.xml.AbstractJpaEObject" suppressInterfaces="true"
-    testsDirectory="" testSuiteClass="" importerID="org.eclipse.emf.importer.ecore"
-    complianceLevel="5.0" copyrightFields="false" usedGenPackages="../../org.eclipse.jpt.core/model/jptResourceModels.genmodel#//orm">
-  <foreignModel>eclipselink_orm.ecore</foreignModel>
-  <genPackages prefix="EclipseLinkOrm" basePackage="org.eclipse.jpt.eclipselink.core.resource"
-      disposableProviderFactory="true" adapterFactory="false" ecorePackage="eclipselink_orm.ecore#/">
-    <genEnums typeSafeEnumCompatible="false" ecoreEnum="eclipselink_orm.ecore#//XmlDirection">
-      <genEnumLiterals ecoreEnumLiteral="eclipselink_orm.ecore#//XmlDirection/IN"/>
-      <genEnumLiterals ecoreEnumLiteral="eclipselink_orm.ecore#//XmlDirection/OUT"/>
-      <genEnumLiterals ecoreEnumLiteral="eclipselink_orm.ecore#//XmlDirection/IN_OUT"/>
-      <genEnumLiterals ecoreEnumLiteral="eclipselink_orm.ecore#//XmlDirection/OUT_CURSOR"/>
-    </genEnums>
-    <genEnums typeSafeEnumCompatible="false" ecoreEnum="eclipselink_orm.ecore#//XmlChangeTrackingType">
-      <genEnumLiterals ecoreEnumLiteral="eclipselink_orm.ecore#//XmlChangeTrackingType/ATTRIBUTE"/>
-      <genEnumLiterals ecoreEnumLiteral="eclipselink_orm.ecore#//XmlChangeTrackingType/OBJECT"/>
-      <genEnumLiterals ecoreEnumLiteral="eclipselink_orm.ecore#//XmlChangeTrackingType/DEFERRED"/>
-      <genEnumLiterals ecoreEnumLiteral="eclipselink_orm.ecore#//XmlChangeTrackingType/AUTO"/>
-    </genEnums>
-    <genEnums typeSafeEnumCompatible="false" ecoreEnum="eclipselink_orm.ecore#//CacheType">
-      <genEnumLiterals ecoreEnumLiteral="eclipselink_orm.ecore#//CacheType/FULL"/>
-      <genEnumLiterals ecoreEnumLiteral="eclipselink_orm.ecore#//CacheType/WEAK"/>
-      <genEnumLiterals ecoreEnumLiteral="eclipselink_orm.ecore#//CacheType/SOFT"/>
-      <genEnumLiterals ecoreEnumLiteral="eclipselink_orm.ecore#//CacheType/SOFT_WEAK"/>
-      <genEnumLiterals ecoreEnumLiteral="eclipselink_orm.ecore#//CacheType/HARD_WEAK"/>
-      <genEnumLiterals ecoreEnumLiteral="eclipselink_orm.ecore#//CacheType/CACHE"/>
-      <genEnumLiterals ecoreEnumLiteral="eclipselink_orm.ecore#//CacheType/NONE"/>
-    </genEnums>
-    <genEnums typeSafeEnumCompatible="false" ecoreEnum="eclipselink_orm.ecore#//CacheCoordinationType">
-      <genEnumLiterals ecoreEnumLiteral="eclipselink_orm.ecore#//CacheCoordinationType/SEND_OBJECT_CHANGES"/>
-      <genEnumLiterals ecoreEnumLiteral="eclipselink_orm.ecore#//CacheCoordinationType/INVALIDATE_CHANGED_OBJECTS"/>
-      <genEnumLiterals ecoreEnumLiteral="eclipselink_orm.ecore#//CacheCoordinationType/SEND_NEW_OBJECTS_WITH_CHANGES"/>
-      <genEnumLiterals ecoreEnumLiteral="eclipselink_orm.ecore#//CacheCoordinationType/NONE"/>
-    </genEnums>
-    <genEnums typeSafeEnumCompatible="false" ecoreEnum="eclipselink_orm.ecore#//ExistenceType">
-      <genEnumLiterals ecoreEnumLiteral="eclipselink_orm.ecore#//ExistenceType/CHECK_CACHE"/>
-      <genEnumLiterals ecoreEnumLiteral="eclipselink_orm.ecore#//ExistenceType/CHECK_DATABASE"/>
-      <genEnumLiterals ecoreEnumLiteral="eclipselink_orm.ecore#//ExistenceType/ASSUME_EXISTENCE"/>
-      <genEnumLiterals ecoreEnumLiteral="eclipselink_orm.ecore#//ExistenceType/ASSUME_NON_EXISTENCE"/>
-    </genEnums>
-    <genEnums typeSafeEnumCompatible="false" ecoreEnum="eclipselink_orm.ecore#//XmlOptimisticLockingType">
-      <genEnumLiterals ecoreEnumLiteral="eclipselink_orm.ecore#//XmlOptimisticLockingType/ALL_COLUMNS"/>
-      <genEnumLiterals ecoreEnumLiteral="eclipselink_orm.ecore#//XmlOptimisticLockingType/CHANGED_COLUMNS"/>
-      <genEnumLiterals ecoreEnumLiteral="eclipselink_orm.ecore#//XmlOptimisticLockingType/SELECTED_COLUMNS"/>
-      <genEnumLiterals ecoreEnumLiteral="eclipselink_orm.ecore#//XmlOptimisticLockingType/VERSION_COLUMN"/>
-    </genEnums>
-    <genEnums typeSafeEnumCompatible="false" ecoreEnum="eclipselink_orm.ecore#//XmlJoinFetchType">
-      <genEnumLiterals ecoreEnumLiteral="eclipselink_orm.ecore#//XmlJoinFetchType/INNER"/>
-      <genEnumLiterals ecoreEnumLiteral="eclipselink_orm.ecore#//XmlJoinFetchType/OUTER"/>
-    </genEnums>
-    <genClasses image="false" ecoreClass="eclipselink_orm.ecore#//XmlNamedConverter">
-      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute eclipselink_orm.ecore#//XmlNamedConverter/name"/>
-    </genClasses>
-    <genClasses ecoreClass="eclipselink_orm.ecore#//XmlConverter">
-      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute eclipselink_orm.ecore#//XmlConverter/className"/>
-    </genClasses>
-    <genClasses ecoreClass="eclipselink_orm.ecore#//XmlConverterImpl"/>
-    <genClasses ecoreClass="eclipselink_orm.ecore#//XmlTypeConverter">
-      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute eclipselink_orm.ecore#//XmlTypeConverter/dataType"/>
-      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute eclipselink_orm.ecore#//XmlTypeConverter/objectType"/>
-    </genClasses>
-    <genClasses ecoreClass="eclipselink_orm.ecore#//XmlTypeConverterImpl"/>
-    <genClasses ecoreClass="eclipselink_orm.ecore#//XmlConversionValue">
-      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute eclipselink_orm.ecore#//XmlConversionValue/dataValue"/>
-      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute eclipselink_orm.ecore#//XmlConversionValue/objectValue"/>
-    </genClasses>
-    <genClasses ecoreClass="eclipselink_orm.ecore#//XmlConversionValueImpl"/>
-    <genClasses ecoreClass="eclipselink_orm.ecore#//XmlObjectTypeConverter">
-      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute eclipselink_orm.ecore#//XmlObjectTypeConverter/dataType"/>
-      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute eclipselink_orm.ecore#//XmlObjectTypeConverter/objectType"/>
-      <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference eclipselink_orm.ecore#//XmlObjectTypeConverter/conversionValues"/>
-      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute eclipselink_orm.ecore#//XmlObjectTypeConverter/defaultObjectValue"/>
-    </genClasses>
-    <genClasses ecoreClass="eclipselink_orm.ecore#//XmlObjectTypeConverterImpl"/>
-    <genClasses ecoreClass="eclipselink_orm.ecore#//XmlStructConverter">
-      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute eclipselink_orm.ecore#//XmlStructConverter/converter"/>
-    </genClasses>
-    <genClasses ecoreClass="eclipselink_orm.ecore#//XmlStructConverterImpl"/>
-    <genClasses image="false" ecoreClass="eclipselink_orm.ecore#//XmlConvertersHolder">
-      <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference eclipselink_orm.ecore#//XmlConvertersHolder/converters"/>
-      <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference eclipselink_orm.ecore#//XmlConvertersHolder/typeConverters"/>
-      <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference eclipselink_orm.ecore#//XmlConvertersHolder/objectTypeConverters"/>
-      <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference eclipselink_orm.ecore#//XmlConvertersHolder/structConverters"/>
-    </genClasses>
-    <genClasses ecoreClass="eclipselink_orm.ecore#//XmlStoredProcedureParameter">
-      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute eclipselink_orm.ecore#//XmlStoredProcedureParameter/direction"/>
-      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute eclipselink_orm.ecore#//XmlStoredProcedureParameter/name"/>
-      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute eclipselink_orm.ecore#//XmlStoredProcedureParameter/queryParameter"/>
-      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute eclipselink_orm.ecore#//XmlStoredProcedureParameter/type"/>
-      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute eclipselink_orm.ecore#//XmlStoredProcedureParameter/jdbcType"/>
-      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute eclipselink_orm.ecore#//XmlStoredProcedureParameter/jdbcTypeName"/>
-    </genClasses>
-    <genClasses ecoreClass="eclipselink_orm.ecore#//XmlNamedStoredProcedureQuery">
-      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute eclipselink_orm.ecore#//XmlNamedStoredProcedureQuery/name"/>
-      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute eclipselink_orm.ecore#//XmlNamedStoredProcedureQuery/resultClass"/>
-      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute eclipselink_orm.ecore#//XmlNamedStoredProcedureQuery/resultSetMapping"/>
-      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute eclipselink_orm.ecore#//XmlNamedStoredProcedureQuery/procedureName"/>
-      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute eclipselink_orm.ecore#//XmlNamedStoredProcedureQuery/returnsResultSet"/>
-      <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference eclipselink_orm.ecore#//XmlNamedStoredProcedureQuery/hints"/>
-      <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference eclipselink_orm.ecore#//XmlNamedStoredProcedureQuery/parameters"/>
-    </genClasses>
-    <genClasses ecoreClass="eclipselink_orm.ecore#//XmlEntityMappings">
-      <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference eclipselink_orm.ecore#//XmlEntityMappings/namedStoredProcedureQueries"/>
-    </genClasses>
-    <genClasses ecoreClass="eclipselink_orm.ecore#//XmlPersistenceUnitMetadata">
-      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute eclipselink_orm.ecore#//XmlPersistenceUnitMetadata/excludeDefaultMappings"/>
-    </genClasses>
-    <genClasses image="false" ecoreClass="eclipselink_orm.ecore#//XmlCustomizer">
-      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute eclipselink_orm.ecore#//XmlCustomizer/customizerClassName"/>
-    </genClasses>
-    <genClasses image="false" ecoreClass="eclipselink_orm.ecore#//XmlCustomizerHolder">
-      <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference eclipselink_orm.ecore#//XmlCustomizerHolder/customizer"/>
-    </genClasses>
-    <genClasses ecoreClass="eclipselink_orm.ecore#//XmlChangeTracking">
-      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute eclipselink_orm.ecore#//XmlChangeTracking/type"/>
-    </genClasses>
-    <genClasses image="false" ecoreClass="eclipselink_orm.ecore#//XmlChangeTrackingHolder">
-      <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference eclipselink_orm.ecore#//XmlChangeTrackingHolder/changeTracking"/>
-    </genClasses>
-    <genClasses ecoreClass="eclipselink_orm.ecore#//XmlCopyPolicy">
-      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute eclipselink_orm.ecore#//XmlCopyPolicy/class"/>
-    </genClasses>
-    <genClasses ecoreClass="eclipselink_orm.ecore#//XmlInstantiationPolicy"/>
-    <genClasses ecoreClass="eclipselink_orm.ecore#//XmlCloneCopyPolicy">
-      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute eclipselink_orm.ecore#//XmlCloneCopyPolicy/method"/>
-      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute eclipselink_orm.ecore#//XmlCloneCopyPolicy/workingCopyMethod"/>
-    </genClasses>
-    <genClasses ecoreClass="eclipselink_orm.ecore#//XmlEmbeddable">
-      <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference eclipselink_orm.ecore#//XmlEmbeddable/copyPolicy"/>
-      <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference eclipselink_orm.ecore#//XmlEmbeddable/instantiationCopyPolicy"/>
-      <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference eclipselink_orm.ecore#//XmlEmbeddable/cloneCopyPolicy"/>
-      <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference eclipselink_orm.ecore#//XmlEmbeddable/properties"/>
-      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute eclipselink_orm.ecore#//XmlEmbeddable/excludeDefaultMappings"/>
-    </genClasses>
-    <genClasses image="false" ecoreClass="eclipselink_orm.ecore#//XmlReadOnly">
-      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute eclipselink_orm.ecore#//XmlReadOnly/readOnly"/>
-    </genClasses>
-    <genClasses ecoreClass="eclipselink_orm.ecore#//XmlTimeOfDay">
-      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute eclipselink_orm.ecore#//XmlTimeOfDay/hour"/>
-      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute eclipselink_orm.ecore#//XmlTimeOfDay/minute"/>
-      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute eclipselink_orm.ecore#//XmlTimeOfDay/second"/>
-      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute eclipselink_orm.ecore#//XmlTimeOfDay/millisecond"/>
-    </genClasses>
-    <genClasses ecoreClass="eclipselink_orm.ecore#//XmlCache">
-      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute eclipselink_orm.ecore#//XmlCache/expiry"/>
-      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute eclipselink_orm.ecore#//XmlCache/size"/>
-      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute eclipselink_orm.ecore#//XmlCache/shared"/>
-      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute eclipselink_orm.ecore#//XmlCache/type"/>
-      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute eclipselink_orm.ecore#//XmlCache/alwaysRefresh"/>
-      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute eclipselink_orm.ecore#//XmlCache/refreshOnlyIfNewer"/>
-      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute eclipselink_orm.ecore#//XmlCache/disableHits"/>
-      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute eclipselink_orm.ecore#//XmlCache/coordinationType"/>
-      <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference eclipselink_orm.ecore#//XmlCache/expiryTimeOfDay"/>
-    </genClasses>
-    <genClasses image="false" ecoreClass="eclipselink_orm.ecore#//XmlCacheHolder">
-      <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference eclipselink_orm.ecore#//XmlCacheHolder/cache"/>
-      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute eclipselink_orm.ecore#//XmlCacheHolder/existenceChecking"/>
-    </genClasses>
-    <genClasses ecoreClass="eclipselink_orm.ecore#//XmlOptimisticLocking">
-      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute eclipselink_orm.ecore#//XmlOptimisticLocking/type"/>
-      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute eclipselink_orm.ecore#//XmlOptimisticLocking/cascade"/>
-      <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference eclipselink_orm.ecore#//XmlOptimisticLocking/selectedColumns"/>
-    </genClasses>
-    <genClasses ecoreClass="eclipselink_orm.ecore#//XmlEntity">
-      <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference eclipselink_orm.ecore#//XmlEntity/optimisticLocking"/>
-      <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference eclipselink_orm.ecore#//XmlEntity/copyPolicy"/>
-      <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference eclipselink_orm.ecore#//XmlEntity/instantiationCopyPolicy"/>
-      <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference eclipselink_orm.ecore#//XmlEntity/cloneCopyPolicy"/>
-      <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference eclipselink_orm.ecore#//XmlEntity/namedStoredProcedureQueries"/>
-      <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference eclipselink_orm.ecore#//XmlEntity/properties"/>
-      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute eclipselink_orm.ecore#//XmlEntity/excludeDefaultMappings"/>
-    </genClasses>
-    <genClasses ecoreClass="eclipselink_orm.ecore#//XmlMappedSuperclass">
-      <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference eclipselink_orm.ecore#//XmlMappedSuperclass/optimisticLocking"/>
-      <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference eclipselink_orm.ecore#//XmlMappedSuperclass/copyPolicy"/>
-      <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference eclipselink_orm.ecore#//XmlMappedSuperclass/instantiationCopyPolicy"/>
-      <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference eclipselink_orm.ecore#//XmlMappedSuperclass/cloneCopyPolicy"/>
-      <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference eclipselink_orm.ecore#//XmlMappedSuperclass/properties"/>
-      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute eclipselink_orm.ecore#//XmlMappedSuperclass/excludeDefaultMappings"/>
-    </genClasses>
-    <genClasses image="false" ecoreClass="eclipselink_orm.ecore#//XmlMutable">
-      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute eclipselink_orm.ecore#//XmlMutable/mutable"/>
-    </genClasses>
-    <genClasses image="false" ecoreClass="eclipselink_orm.ecore#//XmlConverterHolder">
-      <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference eclipselink_orm.ecore#//XmlConverterHolder/converter"/>
-      <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference eclipselink_orm.ecore#//XmlConverterHolder/typeConverter"/>
-      <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference eclipselink_orm.ecore#//XmlConverterHolder/objectTypeConverter"/>
-      <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference eclipselink_orm.ecore#//XmlConverterHolder/structConverter"/>
-    </genClasses>
-    <genClasses ecoreClass="eclipselink_orm.ecore#//XmlConvertibleMapping">
-      <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EAttribute eclipselink_orm.ecore#//XmlConvertibleMapping/convert"/>
-    </genClasses>
-    <genClasses image="false" ecoreClass="eclipselink_orm.ecore#//XmlAccessMethods">
-      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute eclipselink_orm.ecore#//XmlAccessMethods/getMethod"/>
-      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute eclipselink_orm.ecore#//XmlAccessMethods/setMethod"/>
-    </genClasses>
-    <genClasses image="false" ecoreClass="eclipselink_orm.ecore#//XmlAccessMethodsHolder">
-      <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference eclipselink_orm.ecore#//XmlAccessMethodsHolder/accessMethods"/>
-    </genClasses>
-    <genClasses ecoreClass="eclipselink_orm.ecore#//XmlProperty">
-      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute eclipselink_orm.ecore#//XmlProperty/name"/>
-      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute eclipselink_orm.ecore#//XmlProperty/value"/>
-      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute eclipselink_orm.ecore#//XmlProperty/valueType"/>
-    </genClasses>
-    <genClasses ecoreClass="eclipselink_orm.ecore#//XmlId">
-      <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference eclipselink_orm.ecore#//XmlId/properties"/>
-    </genClasses>
-    <genClasses ecoreClass="eclipselink_orm.ecore#//XmlIdImpl"/>
-    <genClasses image="false" ecoreClass="eclipselink_orm.ecore#//XmlEmbeddedId">
-      <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference eclipselink_orm.ecore#//XmlEmbeddedId/properties"/>
-    </genClasses>
-    <genClasses ecoreClass="eclipselink_orm.ecore#//XmlEmbeddedIdImpl"/>
-    <genClasses image="false" ecoreClass="eclipselink_orm.ecore#//XmlEmbedded">
-      <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference eclipselink_orm.ecore#//XmlEmbedded/properties"/>
-    </genClasses>
-    <genClasses ecoreClass="eclipselink_orm.ecore#//XmlEmbeddedImpl"/>
-    <genClasses ecoreClass="eclipselink_orm.ecore#//XmlBasic">
-      <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference eclipselink_orm.ecore#//XmlBasic/properties"/>
-    </genClasses>
-    <genClasses ecoreClass="eclipselink_orm.ecore#//XmlBasicImpl"/>
-    <genClasses ecoreClass="eclipselink_orm.ecore#//XmlVersion">
-      <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference eclipselink_orm.ecore#//XmlVersion/properties"/>
-    </genClasses>
-    <genClasses ecoreClass="eclipselink_orm.ecore#//XmlVersionImpl"/>
-    <genClasses image="false" ecoreClass="eclipselink_orm.ecore#//XmlPrivateOwned">
-      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute eclipselink_orm.ecore#//XmlPrivateOwned/privateOwned"/>
-    </genClasses>
-    <genClasses image="false" ecoreClass="eclipselink_orm.ecore#//XmlJoinFetch">
-      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute eclipselink_orm.ecore#//XmlJoinFetch/joinFetch"/>
-    </genClasses>
-    <genClasses ecoreClass="eclipselink_orm.ecore#//XmlOneToOne">
-      <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference eclipselink_orm.ecore#//XmlOneToOne/properties"/>
-    </genClasses>
-    <genClasses ecoreClass="eclipselink_orm.ecore#//XmlOneToOneImpl"/>
-    <genClasses ecoreClass="eclipselink_orm.ecore#//XmlOneToMany">
-      <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference eclipselink_orm.ecore#//XmlOneToMany/properties"/>
-    </genClasses>
-    <genClasses ecoreClass="eclipselink_orm.ecore#//XmlOneToManyImpl"/>
-    <genClasses ecoreClass="eclipselink_orm.ecore#//XmlManyToOne">
-      <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference eclipselink_orm.ecore#//XmlManyToOne/properties"/>
-    </genClasses>
-    <genClasses ecoreClass="eclipselink_orm.ecore#//XmlManyToOneImpl"/>
-    <genClasses ecoreClass="eclipselink_orm.ecore#//XmlManyToMany">
-      <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference eclipselink_orm.ecore#//XmlManyToMany/properties"/>
-    </genClasses>
-    <genClasses ecoreClass="eclipselink_orm.ecore#//XmlManyToManyImpl"/>
-    <genClasses image="false" ecoreClass="eclipselink_orm.ecore#//XmlBasicCollection">
-      <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference eclipselink_orm.ecore#//XmlBasicCollection/properties"/>
-    </genClasses>
-    <genClasses ecoreClass="eclipselink_orm.ecore#//XmlBasicCollectionImpl"/>
-    <genClasses image="false" ecoreClass="eclipselink_orm.ecore#//XmlBasicMap">
-      <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference eclipselink_orm.ecore#//XmlBasicMap/properties"/>
-    </genClasses>
-    <genClasses ecoreClass="eclipselink_orm.ecore#//XmlBasicMapImpl"/>
-    <genClasses image="false" ecoreClass="eclipselink_orm.ecore#//XmlTransformation">
-      <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference eclipselink_orm.ecore#//XmlTransformation/properties"/>
-    </genClasses>
-    <genClasses ecoreClass="eclipselink_orm.ecore#//XmlTransformationImpl"/>
-    <genClasses image="false" ecoreClass="eclipselink_orm.ecore#//XmlVariableOneToOne">
-      <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference eclipselink_orm.ecore#//XmlVariableOneToOne/properties"/>
-    </genClasses>
-    <genClasses ecoreClass="eclipselink_orm.ecore#//XmlVariableOneToOneImpl"/>
-    <genClasses ecoreClass="eclipselink_orm.ecore#//Attributes">
-      <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference eclipselink_orm.ecore#//Attributes/basicCollections"/>
-      <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference eclipselink_orm.ecore#//Attributes/basicMaps"/>
-      <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference eclipselink_orm.ecore#//Attributes/transformations"/>
-      <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference eclipselink_orm.ecore#//Attributes/variableOneToOnes"/>
-    </genClasses>
-  </genPackages>
-</genmodel:GenModel>
diff --git a/jpa/plugins/org.eclipse.jpt.eclipselink.core/plugin.properties b/jpa/plugins/org.eclipse.jpt.eclipselink.core/plugin.properties
deleted file mode 100644
index fead31d..0000000
--- a/jpa/plugins/org.eclipse.jpt.eclipselink.core/plugin.properties
+++ /dev/null
@@ -1,31 +0,0 @@
-###############################################################################
-# Copyright (c) 2006, 2009 Oracle.
-# All rights reserved. This program and the accompanying materials
-# are made available under the terms of the Eclipse Public License v1.0
-# which accompanies this distribution, and is available at
-# http://www.eclipse.org/legal/epl-v10.html
-# 
-# Contributors:
-#     Oracle. - initial API and implementation
-###############################################################################
-# ====================================================================
-# To code developer:
-#   Do NOT change the properties between this line and the
-#   "%%% END OF TRANSLATED PROPERTIES %%%" line.
-#   Make a new property name, append to the end of the file and change
-#   the code to use the new property.
-# ====================================================================
-
-# ====================================================================
-# %%% END OF TRANSLATED PROPERTIES %%%
-# ====================================================================
-
-pluginName = Dali Java Persistence Tools - EclipseLink Support - Core
-providerName = Eclipse Web Tools Platform
-
-ECLIPSELINK1_0_x_ORM_XML_CONTENT = EclipseLink 1.0.x ORM XML Content
-ECLIPSELINK1_0_x_PLATFORM = EclipseLink 1.0.x
-
-ECLIPSELINK1_1_x_ORM_XML_CONTENT = EclipseLink 1.1.x ORM XML Content
-ECLIPSELINK1_1_x_PLATFORM = EclipseLink 1.1.x
-
diff --git a/jpa/plugins/org.eclipse.jpt.eclipselink.core/plugin.xml b/jpa/plugins/org.eclipse.jpt.eclipselink.core/plugin.xml
deleted file mode 100644
index 3c384db..0000000
--- a/jpa/plugins/org.eclipse.jpt.eclipselink.core/plugin.xml
+++ /dev/null
@@ -1,163 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<?eclipse version="3.2"?>
-<plugin>
-	
-	<extension
-		point="org.eclipse.core.runtime.contentTypes">
-		
-		<content-type
-			id="org.eclipse.jpt.eclipselink.core.content.orm"
-			name="%ECLIPSELINK1_0_x_ORM_XML_CONTENT"
-			base-type="org.eclipse.jpt.core.content.mappingFile">
-			<describer
-				class="org.eclipse.jpt.eclipselink.core.internal.resource.orm.XMLRootElementContentDescriber2">
-				<parameter 
-					name="element" 
-					value="{http://www.eclipse.org/eclipselink/xsds/persistence/orm}entity-mappings:1.0"/>
-			</describer>
-		</content-type>
-		
-		<content-type
-			id="org.eclipse.jpt.eclipselink1_1.core.content.orm"
-			name="%ECLIPSELINK1_1_x_ORM_XML_CONTENT"
-			base-type="org.eclipse.jpt.eclipselink.core.content.orm">
-			<describer
-				class="org.eclipse.jpt.eclipselink.core.internal.resource.orm.XMLRootElementContentDescriber2">
-				<parameter
-					name="element"
-					value="{http://www.eclipse.org/eclipselink/xsds/persistence/orm}entity-mappings:1.1">
-				</parameter>
-			</describer>
-		</content-type>
-		
-	</extension>
-	
-	
-	<extension
-		point="org.eclipse.jpt.core.jpaPlatforms">
-		
-		<jpaPlatform
-			id="org.eclipse.eclipselink.platform"
-            factoryClass="org.eclipse.jpt.eclipselink.core.internal.EclipseLinkJpaPlatformFactory"
-			label="%ECLIPSELINK1_0_x_PLATFORM">
-		</jpaPlatform>
-	    
-	    <jpaPlatform
-	        id="eclipselink1_1"
-	        factoryClass="org.eclipse.jpt.eclipselink.core.internal.EclipseLink1_1JpaPlatformFactory"
-	        label="%ECLIPSELINK1_1_x_PLATFORM">
-	    </jpaPlatform>
-		
-	</extension>
-
-
-	
-	<!--
-	******************************************
-	* Library Provider Framework Integration *
-	******************************************
-	-->
-	
-	<extension point="org.eclipse.jst.common.project.facet.core.downloadableLibraries">
-		
-		<import-definitions 
-			url="http://www.eclipse.org/webtools/dali/dev/eclipselink/eclipselink-downloadable-libs.xml">
-			<enablement>
-				<with variable="requestingProjectFacet">
-					<test 
-						property="org.eclipse.wst.common.project.facet.core.projectFacet" 
-						value="jpt.jpa" 
-						forcePluginActivation="true"/>
-				</with>
-			</enablement>
-		</import-definitions>
-		
-	</extension>
-	
-	
-	<extension 
-		point="org.eclipse.jst.common.project.facet.core.libraryProviders">
-		
-		<provider id="jpa-eclipselink-user-library-provider" extends="wtp-user-library-provider">
-			<param name="validator" value="org.eclipse.jst.common.project.facet.core.libprov.user.KeyClassesValidator"/>
-			<param name="validator.param.0" value="javax.persistence.Entity"/>
-			<param name="validator.param.1" value="org.eclipse.persistence.annotations.Cache"/>
-			<enablement>
-				<and>
-					<with variable="requestingProjectFacet">
-						<test property="org.eclipse.wst.common.project.facet.core.projectFacet" value="jpt.jpa" forcePluginActivation="true"/>
-					</with>
-					<with variable="jpaPlatform">
-						<equals value="org.eclipse.eclipselink.platform"/>
-					</with>
-				</and>
-			</enablement>
-		</provider>
-		
-		<!-- eclipselink 1.1 library provider is for now a simple copy of eclipselink library provider -->
-		<provider id="jpa-eclipselink1_1-user-library-provider" extends="wtp-user-library-provider">
-			<param name="validator" value="org.eclipse.jst.common.project.facet.core.libprov.user.KeyClassesValidator"/>
-			<param name="validator.param.0" value="javax.persistence.Entity"/>
-			<param name="validator.param.1" value="org.eclipse.persistence.annotations.Cache"/>
-			<enablement>
-				<and>
-					<with variable="requestingProjectFacet">
-						<test property="org.eclipse.wst.common.project.facet.core.projectFacet" value="jpt.jpa" forcePluginActivation="true"/>
-					</with>
-					<with variable="jpaPlatform">
-						<equals value="eclipselink1_1"/>
-					</with>
-				</and>
-			</enablement>
-		</provider>
-		
-	</extension>
-	
-	
-	<!-- ***** WTP extensions ***** -->
-
-	<extension
-		point="org.eclipse.wst.common.modulecore.resourceFactories">
-		
-		<resourceFactory
-			class="org.eclipse.jpt.eclipselink.core.resource.orm.EclipseLinkOrmXmlResourceFactory"
-			isDefault="true">
-			<contentTypeBinding
-				contentTypeId="org.eclipse.jpt.eclipselink.core.content.orm">
-			</contentTypeBinding>
-		</resourceFactory>
-	    
-	    <resourceFactory
-	        class="org.eclipse.jpt.eclipselink1_1.core.resource.orm.EclipseLink1_1OrmXmlResourceFactory"
-	        isDefault="true">
-	       	<contentTypeBinding
-	             contentTypeId="org.eclipse.jpt.eclipselink1_1.core.content.orm">
-	       	</contentTypeBinding>
-	    </resourceFactory>
-	 </extension>
-	
-	<extension 
-		point="org.eclipse.wst.xml.core.catalogContributions">
-		
-		<catalogContribution id="default">
-			<uri
-				name="http://www.eclipse.org/eclipselink/xsds/eclipselink_orm_1_0.xsd"
-				uri="schemas/eclipselink_orm_1_0.xsd" />
-			
-			<public
-				publicId="http://www.eclipse.org/eclipselink/xsds/persistence/orm"
-				uri="schemas/eclipselink_orm_1_0.xsd"/>
-				
-			<uri
-				name="http://www.eclipse.org/eclipselink/xsds/eclipselink_orm_1_1.xsd"
-				uri="schemas/eclipselink_orm_1_1.xsd" />
-			
-			<public
-				publicId="http://www.eclipse.org/eclipselink/xsds/persistence/orm"
-				uri="schemas/eclipselink_orm_1_1.xsd"/>
-			
-		</catalogContribution>
-		
-    </extension>
-	
-</plugin>
diff --git a/jpa/plugins/org.eclipse.jpt.eclipselink.core/property_files/eclipselink_jpa_validation.properties b/jpa/plugins/org.eclipse.jpt.eclipselink.core/property_files/eclipselink_jpa_validation.properties
deleted file mode 100644
index 12df223..0000000
--- a/jpa/plugins/org.eclipse.jpt.eclipselink.core/property_files/eclipselink_jpa_validation.properties
+++ /dev/null
@@ -1,14 +0,0 @@
-################################################################################
-# Copyright (c) 2008 Oracle. All rights reserved.
-# This program and the accompanying materials are made available under the
-# terms of the Eclipse Public License v1.0, which accompanies this distribution
-# and is available at http://www.eclipse.org/legal/epl-v10.html.
-# 
-# Contributors:
-#     Oracle - initial API and implementation
-################################################################################
-
-CACHE_EXPIRY_AND_EXPIRY_TIME_OF_DAY_BOTH_SPECIFIED=The @Cache annotation on entity \"{0}\" has both expiry() and expiryTimeOfDay() specified. Only one of the two may be specified
-CONVERTER_CLASS_IMPLEMENTS_CONVERTER=The converter class \"{0}\" does not implement the org.eclipse.persistence.mappings.converters.Converter interface
-CUSTOMIZER_CLASS_IMPLEMENTS_DESCRIPTOR_CUSTOMIZER=The customizer class \"{0}\" does not implement the org.eclipse.persistence.config.DescriptorCustomizer interface
-MULTIPLE_OBJECT_VALUES_FOR_DATA_VALUE=Multiple object values are specified for the data value \"{0}\"
\ No newline at end of file
diff --git a/jpa/plugins/org.eclipse.jpt.eclipselink.core/schemas/eclipselink_orm_1_0.xsd b/jpa/plugins/org.eclipse.jpt.eclipselink.core/schemas/eclipselink_orm_1_0.xsd
deleted file mode 100644
index af1d1da..0000000
--- a/jpa/plugins/org.eclipse.jpt.eclipselink.core/schemas/eclipselink_orm_1_0.xsd
+++ /dev/null
@@ -1,3128 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!-- Java Persistence API object-relational mapping file schema -->
-<xsd:schema targetNamespace="http://www.eclipse.org/eclipselink/xsds/persistence/orm" 
-  xmlns:orm="http://www.eclipse.org/eclipselink/xsds/persistence/orm" 
-  xmlns:xsd="http://www.w3.org/2001/XMLSchema" 
-  elementFormDefault="qualified" 
-  attributeFormDefault="unqualified" 
-  version="1.0">
-
-  <xsd:annotation>
-    <xsd:documentation>
-      @(#)eclipselink_orm_1_0.xsd 1.0  February 1 2008
-    </xsd:documentation>
-  </xsd:annotation>
-  <xsd:annotation>
-     <xsd:documentation><![CDATA[
-
-       This is the XML Schema for the new native EclipseLink XML metadata
-       format used for JPA and native deployment xml files. 
-
-     ]]></xsd:documentation>
-  </xsd:annotation>
-
-  <xsd:complexType name="emptyType"/>
-
-  <xsd:simpleType name="versionType">
-    <xsd:restriction base="xsd:token">
-      <xsd:pattern value="[0-9]+(\.[0-9]+)*"/>
-    </xsd:restriction>
-  </xsd:simpleType>
-
-  <!-- **************************************************** -->
-
-  <xsd:element name="entity-mappings">
-    <xsd:complexType>
-      <xsd:annotation>
-        <xsd:documentation>
-
-        The entity-mappings element is the root element of an mapping
-        file. It contains the following four types of elements:
-
-        1. The persistence-unit-metadata element contains metadata
-        for the entire persistence unit. It is undefined if this element
-        occurs in multiple mapping files within the same persistence unit.
-        
-        2. The package, schema, catalog and access elements apply to all of
-        the entity, mapped-superclass and embeddable elements defined in
-        the same file in which they occur.
-
-        3. The sequence-generator, table-generator, named-query,
-        named-native-query and sql-result-set-mapping elements are global
-        to the persistence unit. It is undefined to have more than one
-        sequence-generator or table-generator of the same name in the same
-        or different mapping files in a persistence unit. It is also 
-        undefined to have more than one named-query or named-native-query
-        of the same name in the same or different mapping files in a 
-        persistence unit.
-
-        4. The entity, mapped-superclass and embeddable elements each define
-        the mapping information for a managed persistent class. The mapping
-        information contained in these elements may be complete or it may
-        be partial.
-
-        </xsd:documentation>
-      </xsd:annotation>
-      <xsd:sequence>
-        <xsd:element name="description" type="xsd:string"
-                     minOccurs="0"/>
-        <xsd:element name="persistence-unit-metadata" 
-                     type="orm:persistence-unit-metadata"
-                     minOccurs="0"/>
-        <xsd:element name="package" type="xsd:string"
-                     minOccurs="0"/>
-        <xsd:element name="schema" type="xsd:string"
-                     minOccurs="0"/>
-        <xsd:element name="catalog" type="xsd:string"
-                     minOccurs="0"/>
-        <xsd:element name="access" type="orm:access-type"
-                     minOccurs="0"/>
-        <xsd:element name="converter" type="orm:converter" 
-                     minOccurs="0" maxOccurs="unbounded"/>
-        <xsd:element name="type-converter" type="orm:type-converter" 
-                     minOccurs="0" maxOccurs="unbounded"/>
-        <xsd:element name="object-type-converter" type="orm:object-type-converter" 
-                     minOccurs="0" maxOccurs="unbounded"/>
-        <xsd:element name="struct-converter" type="orm:struct-converter" 
-                     minOccurs="0" maxOccurs="unbounded"/>
-        <xsd:element name="sequence-generator" type="orm:sequence-generator"
-                     minOccurs="0" maxOccurs="unbounded"/>
-        <xsd:element name="table-generator" type="orm:table-generator" 
-                     minOccurs="0" maxOccurs="unbounded"/>
-        <xsd:element name="named-query" type="orm:named-query" 
-                     minOccurs="0" maxOccurs="unbounded"/>
-        <xsd:element name="named-native-query" type="orm:named-native-query"
-                     minOccurs="0" maxOccurs="unbounded"/>
-        <xsd:element name="named-stored-procedure-query" type="orm:named-stored-procedure-query"
-                     minOccurs="0" maxOccurs="unbounded"/>             
-        <xsd:element name="sql-result-set-mapping" 
-                     type="orm:sql-result-set-mapping" 
-                     minOccurs="0" maxOccurs="unbounded"/>
-        <xsd:element name="mapped-superclass" type="orm:mapped-superclass" 
-                     minOccurs="0" maxOccurs="unbounded"/>
-        <xsd:element name="entity" type="orm:entity" 
-                     minOccurs="0" maxOccurs="unbounded"/>
-        <xsd:element name="embeddable" type="orm:embeddable" 
-                     minOccurs="0" maxOccurs="unbounded"/>
-      </xsd:sequence>
-      <xsd:attribute name="version" type="orm:versionType" 
-                     fixed="1.0" use="required"/>
-    </xsd:complexType>
-  </xsd:element>
-
-  <!-- **************************************************** -->
-
-  <xsd:complexType name="persistence-unit-metadata">
-    <xsd:annotation>
-      <xsd:documentation>
-
-        Metadata that applies to the persistence unit and not just to 
-        the mapping file in which it is contained. 
-
-        If the xml-mapping-metadata-complete element is specified then 
-        the complete set of mapping metadata for the persistence unit 
-        is contained in the XML mapping files for the persistence unit.
-
-      </xsd:documentation>
-    </xsd:annotation>
-    <xsd:sequence>
-      <xsd:element name="xml-mapping-metadata-complete" type="orm:emptyType"
-                   minOccurs="0"/>
-      <xsd:element name="exclude-default-mappings" type="orm:emptyType"
-                   minOccurs="0"/>             
-      <xsd:element name="persistence-unit-defaults" 
-                   type="orm:persistence-unit-defaults"
-                   minOccurs="0"/>
-    </xsd:sequence>
-  </xsd:complexType>
-
-  <!-- **************************************************** -->
-
-  <xsd:complexType name="persistence-unit-defaults">
-    <xsd:annotation>
-      <xsd:documentation>
-
-        These defaults are applied to the persistence unit as a whole 
-        unless they are overridden by local annotation or XML 
-        element settings. 
-        
-        schema - Used as the schema for all tables or secondary tables
-            that apply to the persistence unit
-        catalog - Used as the catalog for all tables or secondary tables
-            that apply to the persistence unit
-        access - Used as the access type for all managed classes in
-            the persistence unit
-        cascade-persist - Adds cascade-persist to the set of cascade options
-            in entity relationships of the persistence unit
-        entity-listeners - List of default entity listeners to be invoked 
-            on each entity in the persistence unit. 
-
-      </xsd:documentation>
-    </xsd:annotation>
-    <xsd:sequence>
-        <xsd:element name="schema" type="xsd:string"
-                     minOccurs="0"/>
-        <xsd:element name="catalog" type="xsd:string"
-                     minOccurs="0"/>
-        <xsd:element name="access" type="orm:access-type"
-                     minOccurs="0"/>
-        <xsd:element name="cascade-persist" type="orm:emptyType" 
-                     minOccurs="0"/>
-        <xsd:element name="entity-listeners" type="orm:entity-listeners"
-                     minOccurs="0"/>
-    </xsd:sequence>
-  </xsd:complexType>
-
-  <!-- **************************************************** -->
-
-  <xsd:complexType name="entity">
-    <xsd:annotation>
-      <xsd:documentation>
-
-        Defines the settings and mappings for an entity. Is allowed to be
-        sparsely populated and used in conjunction with the annotations.
-        Alternatively, the metadata-complete attribute can be used to 
-        indicate that no annotations on the entity class (and its fields
-        or properties) are to be processed. If this is the case then 
-        the defaulting rules for the entity and its subelements will 
-        be recursively applied.
-
-        @Target(TYPE) @Retention(RUNTIME)
-          public @interface Entity {
-          String name() default "";
-        }
-
-      </xsd:documentation>
-    </xsd:annotation>
-    <xsd:sequence>
-      <xsd:element name="description" type="xsd:string" minOccurs="0"/>
-      <xsd:element name="customizer" type="orm:customizer" minOccurs="0"/>
-      <xsd:element name="change-tracking" type="orm:change-tracking" 
-                   minOccurs="0"/>
-      <xsd:element name="table" type="orm:table" minOccurs="0"/>
-      <xsd:element name="secondary-table" type="orm:secondary-table" 
-                   minOccurs="0" maxOccurs="unbounded"/>
-      <xsd:element name="primary-key-join-column" 
-                   type="orm:primary-key-join-column" 
-                   minOccurs="0" maxOccurs="unbounded"/>
-      <xsd:element name="id-class" type="orm:id-class" minOccurs="0"/>
-      <xsd:element name="inheritance" type="orm:inheritance" minOccurs="0"/>
-      <xsd:element name="discriminator-value" type="orm:discriminator-value" 
-                   minOccurs="0"/>
-      <xsd:element name="discriminator-column" 
-                   type="orm:discriminator-column" 
-                   minOccurs="0"/>
-      <xsd:element name="optimistic-locking" type="orm:optimistic-locking"
-                   minOccurs="0"/>
-      <xsd:element name="cache" type="orm:cache" minOccurs="0"/>
-      <xsd:element name="converter" type="orm:converter" 
-                   minOccurs="0" maxOccurs="unbounded"/>
-      <xsd:element name="type-converter" type="orm:type-converter" 
-                   minOccurs="0" maxOccurs="unbounded"/>
-      <xsd:element name="object-type-converter" type="orm:object-type-converter" 
-                   minOccurs="0" maxOccurs="unbounded"/>
-      <xsd:element name="struct-converter" type="orm:struct-converter" 
-                   minOccurs="0" maxOccurs="unbounded"/>
-      <xsd:element name="copy-policy" type="orm:copy-policy" 
-                     minOccurs="0" maxOccurs="1"/>
-      <xsd:element name="instantiation-copy-policy" type="orm:instantiation-copy-policy" 
-                     minOccurs="0" maxOccurs="1"/>
-      <xsd:element name="clone-copy-policy" type="orm:clone-copy-policy" 
-                     minOccurs="0" maxOccurs="1"/>
-      <xsd:element name="sequence-generator" type="orm:sequence-generator" 
-                   minOccurs="0"/>
-      <xsd:element name="table-generator" type="orm:table-generator" 
-                   minOccurs="0"/>
-      <xsd:element name="named-query" type="orm:named-query" 
-                   minOccurs="0" maxOccurs="unbounded"/>
-      <xsd:element name="named-native-query" type="orm:named-native-query" 
-                   minOccurs="0" maxOccurs="unbounded"/>
-      <xsd:element name="named-stored-procedure-query" type="orm:named-stored-procedure-query"
-                   minOccurs="0" maxOccurs="unbounded"/>             
-      <xsd:element name="sql-result-set-mapping" 
-                   type="orm:sql-result-set-mapping" 
-                   minOccurs="0" maxOccurs="unbounded"/>
-      <xsd:element name="exclude-default-listeners" type="orm:emptyType" 
-                   minOccurs="0"/>
-      <xsd:element name="exclude-superclass-listeners" type="orm:emptyType" 
-                   minOccurs="0"/>
-      <xsd:element name="entity-listeners" type="orm:entity-listeners" 
-                   minOccurs="0"/>
-      <xsd:element name="pre-persist" type="orm:pre-persist" minOccurs="0"/>
-      <xsd:element name="post-persist" type="orm:post-persist" 
-                   minOccurs="0"/>
-      <xsd:element name="pre-remove" type="orm:pre-remove" minOccurs="0"/>
-      <xsd:element name="post-remove" type="orm:post-remove" minOccurs="0"/>
-      <xsd:element name="pre-update" type="orm:pre-update" minOccurs="0"/>
-      <xsd:element name="post-update" type="orm:post-update" minOccurs="0"/>
-      <xsd:element name="post-load" type="orm:post-load" minOccurs="0"/>
-      <xsd:element name="property" type="orm:property" minOccurs="0" maxOccurs="unbounded"/>
-      <xsd:element name="attribute-override" type="orm:attribute-override" 
-                   minOccurs="0" maxOccurs="unbounded"/>
-      <xsd:element name="association-override" type="orm:association-override"
-                   minOccurs="0" maxOccurs="unbounded"/>
-      <xsd:element name="attributes" type="orm:attributes" minOccurs="0"/>
-    </xsd:sequence>
-    <xsd:attribute name="name" type="xsd:string"/>
-    <xsd:attribute name="class" type="xsd:string" use="required"/>
-    <xsd:attribute name="access" type="orm:access-type"/>
-    <xsd:attribute name="metadata-complete" type="xsd:boolean"/>
-    <xsd:attribute name="read-only" type="xsd:boolean"/>
-    <xsd:attribute name="existence-checking" type="orm:existence-type"/>
-    <xsd:attribute name="exclude-default-mappings" type="xsd:boolean"/>
-  </xsd:complexType>
-
-  <!-- **************************************************** -->
-
-  <xsd:complexType name="attributes">
-    <xsd:annotation>
-      <xsd:documentation>
-
-        This element contains the entity field or property mappings.
-        It may be sparsely populated to include only a subset of the
-        fields or properties. If metadata-complete for the entity is true
-        then the remainder of the attributes will be defaulted according
-        to the default rules.
-
-      </xsd:documentation>
-    </xsd:annotation>
-    <xsd:sequence>
-      <xsd:choice>
-        <xsd:element name="id" type="orm:id" 
-                     minOccurs="0" maxOccurs="unbounded"/>
-        <xsd:element name="embedded-id" type="orm:embedded-id" 
-                     minOccurs="0"/>
-      </xsd:choice>
-      <xsd:element name="basic" type="orm:basic"
-                   minOccurs="0" maxOccurs="unbounded"/>
-      <xsd:element name="basic-collection" type="orm:basic-collection"
-                   minOccurs="0" maxOccurs="unbounded"/>
-      <xsd:element name="basic-map" type="orm:basic-map"
-                   minOccurs="0" maxOccurs="unbounded"/>
-      <xsd:element name="version" type="orm:version"
-                   minOccurs="0" maxOccurs="unbounded"/>
-      <xsd:element name="many-to-one" type="orm:many-to-one"
-                   minOccurs="0" maxOccurs="unbounded"/>
-      <xsd:element name="one-to-many" type="orm:one-to-many"
-                   minOccurs="0" maxOccurs="unbounded"/>
-      <xsd:element name="one-to-one" type="orm:one-to-one"
-                   minOccurs="0" maxOccurs="unbounded"/>
-      <xsd:element name="variable-one-to-one" type="orm:variable-one-to-one"
-                   minOccurs="0" maxOccurs="unbounded"/>
-      <xsd:element name="many-to-many" type="orm:many-to-many" 
-                   minOccurs="0" maxOccurs="unbounded"/>
-      <xsd:element name="embedded" type="orm:embedded"
-                   minOccurs="0" maxOccurs="unbounded"/>
-      <xsd:element name="transformation" type="orm:transformation"
-                   minOccurs="0" maxOccurs="unbounded"/>
-      <xsd:element name="transient" type="orm:transient"
-                   minOccurs="0" maxOccurs="unbounded"/>
-    </xsd:sequence>
-  </xsd:complexType>
-
-  <!-- **************************************************** -->
-
-  <xsd:simpleType name="access-type">
-    <xsd:annotation>
-      <xsd:documentation>
-
-        This element determines how the persistence provider accesses the
-        state of an entity or embedded object.
-
-      </xsd:documentation>
-    </xsd:annotation>
-    <xsd:restriction base="xsd:token">
-      <xsd:enumeration value="PROPERTY"/>
-      <xsd:enumeration value="FIELD"/>
-    </xsd:restriction>
-  </xsd:simpleType>
-
-  <!-- **************************************************** -->
-
-  <xsd:complexType name="entity-listeners">
-    <xsd:annotation>
-      <xsd:documentation>
-
-        @Target({TYPE}) @Retention(RUNTIME)
-        public @interface EntityListeners {
-          Class[] value();
-        }
-
-      </xsd:documentation>
-    </xsd:annotation>
-    <xsd:sequence>
-      <xsd:element name="entity-listener" type="orm:entity-listener" 
-                   minOccurs="0" maxOccurs="unbounded"/>
-    </xsd:sequence>
-  </xsd:complexType>
-
-  <!-- **************************************************** -->
-
-  <xsd:complexType name="entity-listener">
-    <xsd:annotation>
-      <xsd:documentation>
-
-        Defines an entity listener to be invoked at lifecycle events
-        for the entities that list this listener.
-
-      </xsd:documentation>
-    </xsd:annotation>
-    <xsd:sequence>
-      <xsd:element name="pre-persist" type="orm:pre-persist" minOccurs="0"/>
-      <xsd:element name="post-persist" type="orm:post-persist" 
-                   minOccurs="0"/>
-      <xsd:element name="pre-remove" type="orm:pre-remove" minOccurs="0"/>
-      <xsd:element name="post-remove" type="orm:post-remove" minOccurs="0"/>
-      <xsd:element name="pre-update" type="orm:pre-update" minOccurs="0"/>
-      <xsd:element name="post-update" type="orm:post-update" minOccurs="0"/>
-      <xsd:element name="post-load" type="orm:post-load" minOccurs="0"/>
-    </xsd:sequence>
-    <xsd:attribute name="class" type="xsd:string" use="required"/>
-  </xsd:complexType>
-
-  <!-- **************************************************** -->
-
-  <xsd:complexType name="pre-persist">
-    <xsd:annotation>
-      <xsd:documentation>
-
-        @Target({METHOD}) @Retention(RUNTIME)
-        public @interface PrePersist {}
-
-      </xsd:documentation>
-    </xsd:annotation>
-    <xsd:attribute name="method-name" type="xsd:string" use="required"/>
-  </xsd:complexType>
-
-  <!-- **************************************************** -->
-
-  <xsd:complexType name="post-persist">
-    <xsd:annotation>
-      <xsd:documentation>
-
-        @Target({METHOD}) @Retention(RUNTIME)
-        public @interface PostPersist {}
-
-      </xsd:documentation>
-    </xsd:annotation>
-    <xsd:attribute name="method-name" type="xsd:string" use="required"/>
-  </xsd:complexType>
-
-  <!-- **************************************************** -->
-
-  <xsd:complexType name="pre-remove">
-    <xsd:annotation>
-      <xsd:documentation>
-
-        @Target({METHOD}) @Retention(RUNTIME)
-        public @interface PreRemove {}
-
-      </xsd:documentation>
-    </xsd:annotation>
-    <xsd:attribute name="method-name" type="xsd:string" use="required"/>
-  </xsd:complexType>
-
-  <!-- **************************************************** -->
-
-  <xsd:complexType name="post-remove">
-    <xsd:annotation>
-      <xsd:documentation>
-
-        @Target({METHOD}) @Retention(RUNTIME)
-        public @interface PostRemove {}
-
-      </xsd:documentation>
-    </xsd:annotation>
-    <xsd:attribute name="method-name" type="xsd:string" use="required"/>
-  </xsd:complexType>
-
-  <!-- **************************************************** -->
-
-  <xsd:complexType name="pre-update">
-    <xsd:annotation>
-      <xsd:documentation>
-
-        @Target({METHOD}) @Retention(RUNTIME)
-        public @interface PreUpdate {}
-
-      </xsd:documentation>
-    </xsd:annotation>
-    <xsd:attribute name="method-name" type="xsd:string" use="required"/>
-  </xsd:complexType>
-
-  <!-- **************************************************** -->
-
-  <xsd:complexType name="post-update">
-    <xsd:annotation>
-      <xsd:documentation>
-
-        @Target({METHOD}) @Retention(RUNTIME)
-        public @interface PostUpdate {}
-
-      </xsd:documentation>
-    </xsd:annotation>
-    <xsd:attribute name="method-name" type="xsd:string" use="required"/>
-  </xsd:complexType>
-
-  <!-- **************************************************** -->
-
-  <xsd:complexType name="post-load">
-    <xsd:annotation>
-      <xsd:documentation>
-
-        @Target({METHOD}) @Retention(RUNTIME)
-        public @interface PostLoad {}
-
-      </xsd:documentation>
-    </xsd:annotation>
-    <xsd:attribute name="method-name" type="xsd:string" use="required"/>
-  </xsd:complexType>
-
-  <!-- **************************************************** -->
-  
-  <xsd:complexType name="property">
-    <xsd:annotation>
-      <xsd:documentation>
-        A user defined mapping's property.
-		@Target({METHOD, FIELD, TYPE})
-		@Retention(RUNTIME)
-		public @interface Property {
-			/**
-			* Property name.
-			*/ 
-			String name();
-			
-			/**
-			* String representation of Property value,
-			* converted to an instance of valueType.
-			*/ 
-			String value();
-			
-			/**
-			* Property value type.
-			* The value converted to valueType by ConversionManager.
-			* If specified must be a simple type that could be handled by 
-			* ConversionManager: 
-			* numerical, boolean, temporal.  
-			*/ 
-			Class valueType() default String.class;
-		}
-	</xsd:documentation>
-    </xsd:annotation>
-    <xsd:attribute name="name" type="xsd:string" use="required"/>
-    <xsd:attribute name="value" type="xsd:string" use="required"/>
-    <xsd:attribute name="value-type" type="xsd:string"/>
-    </xsd:complexType>
-    
-    <!-- **************************************************** -->
-
-  <xsd:complexType name="query-hint">
-    <xsd:annotation>
-      <xsd:documentation>
-
-        @Target({}) @Retention(RUNTIME) 
-        public @interface QueryHint {
-          String name();
-          String value();
-        }
-
-      </xsd:documentation>
-    </xsd:annotation>
-    <xsd:attribute name="name" type="xsd:string" use="required"/>
-    <xsd:attribute name="value" type="xsd:string" use="required"/>
-  </xsd:complexType>
-
-  <!-- **************************************************** -->
-
-  <xsd:complexType name="named-query">
-    <xsd:annotation>
-      <xsd:documentation>
-
-        @Target({TYPE}) @Retention(RUNTIME)
-        public @interface NamedQuery {
-          String name();
-          String query();
-          QueryHint[] hints() default {};
-        }
-
-      </xsd:documentation>
-    </xsd:annotation>
-    <xsd:sequence>
-      <xsd:element name="query" type="xsd:string"/>
-      <xsd:element name="hint" type="orm:query-hint" 
-                   minOccurs="0" maxOccurs="unbounded"/>
-    </xsd:sequence>
-    <xsd:attribute name="name" type="xsd:string" use="required"/>
-  </xsd:complexType>
-
-  <!-- **************************************************** -->
-
-  <xsd:complexType name="named-native-query">
-    <xsd:annotation>
-      <xsd:documentation>
-
-        @Target({TYPE}) @Retention(RUNTIME)
-        public @interface NamedNativeQuery {
-          String name();
-          String query();
-          QueryHint[] hints() default {};
-          Class resultClass() default void.class;
-          String resultSetMapping() default ""; //named SqlResultSetMapping
-        }
-
-      </xsd:documentation>
-    </xsd:annotation>
-    <xsd:sequence>
-      <xsd:element name="query" type="xsd:string"/>
-      <xsd:element name="hint" type="orm:query-hint" 
-                   minOccurs="0" maxOccurs="unbounded"/>
-    </xsd:sequence>
-    <xsd:attribute name="name" type="xsd:string" use="required"/>
-    <xsd:attribute name="result-class" type="xsd:string"/>
-    <xsd:attribute name="result-set-mapping" type="xsd:string"/>
-  </xsd:complexType>
-
-  <!-- **************************************************** -->
-
-  <xsd:complexType name="sql-result-set-mapping">
-    <xsd:annotation>
-      <xsd:documentation>
-
-        @Target({TYPE}) @Retention(RUNTIME)
-        public @interface SqlResultSetMapping {
-          String name();
-          EntityResult[] entities() default {};
-          ColumnResult[] columns() default {};
-        }
-
-      </xsd:documentation>
-    </xsd:annotation>
-    <xsd:sequence>
-      <xsd:element name="entity-result" type="orm:entity-result" 
-                   minOccurs="0" maxOccurs="unbounded"/>
-      <xsd:element name="column-result" type="orm:column-result" 
-                   minOccurs="0" maxOccurs="unbounded"/>
-    </xsd:sequence>
-    <xsd:attribute name="name" type="xsd:string" use="required"/>
-  </xsd:complexType>
-
-  <!-- **************************************************** -->
-
-  <xsd:complexType name="entity-result">
-    <xsd:annotation>
-      <xsd:documentation>
-
-        @Target({}) @Retention(RUNTIME)
-        public @interface EntityResult {
-          Class entityClass();
-          FieldResult[] fields() default {};
-          String discriminatorColumn() default "";
-        }
-
-      </xsd:documentation>
-    </xsd:annotation>
-    <xsd:sequence>
-      <xsd:element name="field-result" type="orm:field-result" 
-                   minOccurs="0" maxOccurs="unbounded"/>
-    </xsd:sequence>
-    <xsd:attribute name="entity-class" type="xsd:string" use="required"/>
-    <xsd:attribute name="discriminator-column" type="xsd:string"/>
-  </xsd:complexType>
-
-  <!-- **************************************************** -->
-
-  <xsd:complexType name="field-result">
-    <xsd:annotation>
-      <xsd:documentation>
-
-        @Target({}) @Retention(RUNTIME)
-        public @interface FieldResult {
-          String name();
-          String column();
-        }
-
-      </xsd:documentation>
-    </xsd:annotation>
-    <xsd:attribute name="name" type="xsd:string" use="required"/>
-    <xsd:attribute name="column" type="xsd:string" use="required"/>
-  </xsd:complexType>
-
-  <!-- **************************************************** -->
-
-  <xsd:complexType name="column-result">
-    <xsd:annotation>
-      <xsd:documentation>
-
-        @Target({}) @Retention(RUNTIME)
-        public @interface ColumnResult {
-          String name();
-        }
-
-      </xsd:documentation>
-    </xsd:annotation>
-    <xsd:attribute name="name" type="xsd:string" use="required"/>
-  </xsd:complexType>
-
-  <!-- **************************************************** -->
-
-  <xsd:complexType name="table">
-    <xsd:annotation>
-      <xsd:documentation>
-
-        @Target({TYPE}) @Retention(RUNTIME)
-        public @interface Table {
-          String name() default "";
-          String catalog() default "";
-          String schema() default "";
-          UniqueConstraint[] uniqueConstraints() default {};
-        }
-
-      </xsd:documentation>
-    </xsd:annotation>
-    <xsd:sequence>
-      <xsd:element name="unique-constraint" type="orm:unique-constraint" 
-                   minOccurs="0" maxOccurs="unbounded"/>
-    </xsd:sequence>
-    <xsd:attribute name="name" type="xsd:string"/>
-    <xsd:attribute name="catalog" type="xsd:string"/>
-    <xsd:attribute name="schema" type="xsd:string"/>
-  </xsd:complexType>
-
-  <!-- **************************************************** -->
-
-  <xsd:complexType name="secondary-table">
-    <xsd:annotation>
-      <xsd:documentation>
-
-        @Target({TYPE}) @Retention(RUNTIME)
-        public @interface SecondaryTable {
-          String name();
-          String catalog() default "";
-          String schema() default "";
-          PrimaryKeyJoinColumn[] pkJoinColumns() default {};
-          UniqueConstraint[] uniqueConstraints() default {};
-         }
-
-       </xsd:documentation>
-     </xsd:annotation>
-     <xsd:sequence>
-       <xsd:element name="primary-key-join-column" 
-                    type="orm:primary-key-join-column" 
-                    minOccurs="0" maxOccurs="unbounded"/>
-       <xsd:element name="unique-constraint" type="orm:unique-constraint" 
-                    minOccurs="0" maxOccurs="unbounded"/>
-    </xsd:sequence>
-    <xsd:attribute name="name" type="xsd:string" use="required"/>
-    <xsd:attribute name="catalog" type="xsd:string"/>
-    <xsd:attribute name="schema" type="xsd:string"/>
-  </xsd:complexType>
-
-  <!-- **************************************************** -->
-
-  <xsd:complexType name="unique-constraint">
-    <xsd:annotation>
-      <xsd:documentation>
-
-        @Target({}) @Retention(RUNTIME)
-        public @interface UniqueConstraint {
-          String[] columnNames();
-        }
-
-      </xsd:documentation>
-    </xsd:annotation>
-    <xsd:sequence>
-      <xsd:element name="column-name" type="xsd:string" 
-                   maxOccurs="unbounded"/>
-    </xsd:sequence>
-  </xsd:complexType>
-
-  <!-- **************************************************** -->
-
-  <xsd:complexType name="column">
-    <xsd:annotation>
-      <xsd:documentation>
-
-        @Target({METHOD, FIELD}) @Retention(RUNTIME)
-        public @interface Column {
-          String name() default "";
-          boolean unique() default false;
-          boolean nullable() default true;
-          boolean insertable() default true;
-          boolean updatable() default true;
-          String columnDefinition() default "";
-          String table() default "";
-          int length() default 255;
-          int precision() default 0; // decimal precision
-          int scale() default 0; // decimal scale
-        }
-
-      </xsd:documentation>
-    </xsd:annotation>
-    <xsd:attribute name="name" type="xsd:string"/>
-    <xsd:attribute name="unique" type="xsd:boolean"/>
-    <xsd:attribute name="nullable" type="xsd:boolean"/>
-    <xsd:attribute name="insertable" type="xsd:boolean"/>
-    <xsd:attribute name="updatable" type="xsd:boolean"/>
-    <xsd:attribute name="column-definition" type="xsd:string"/>
-    <xsd:attribute name="table" type="xsd:string"/>
-    <xsd:attribute name="length" type="xsd:int"/>
-    <xsd:attribute name="precision" type="xsd:int"/>
-    <xsd:attribute name="scale" type="xsd:int"/>
-  </xsd:complexType>
-
-  <!-- **************************************************** -->
-
-  <xsd:complexType name="join-column">
-    <xsd:annotation>
-      <xsd:documentation>
-
-        @Target({METHOD, FIELD}) @Retention(RUNTIME)
-        public @interface JoinColumn {
-          String name() default "";
-          String referencedColumnName() default "";
-          boolean unique() default false;
-          boolean nullable() default true;
-          boolean insertable() default true;
-          boolean updatable() default true;
-          String columnDefinition() default "";
-          String table() default "";
-        }
-
-      </xsd:documentation>
-    </xsd:annotation>
-    <xsd:attribute name="name" type="xsd:string"/>
-    <xsd:attribute name="referenced-column-name" type="xsd:string"/>
-    <xsd:attribute name="unique" type="xsd:boolean"/>
-    <xsd:attribute name="nullable" type="xsd:boolean"/>
-    <xsd:attribute name="insertable" type="xsd:boolean"/>
-    <xsd:attribute name="updatable" type="xsd:boolean"/>
-    <xsd:attribute name="column-definition" type="xsd:string"/>
-    <xsd:attribute name="table" type="xsd:string"/>
-  </xsd:complexType>
-
-  <!-- **************************************************** -->
-
-  <xsd:simpleType name="generation-type">
-    <xsd:annotation>
-      <xsd:documentation>
-
-        public enum GenerationType { TABLE, SEQUENCE, IDENTITY, AUTO };
-
-      </xsd:documentation>
-    </xsd:annotation>
-    <xsd:restriction base="xsd:token">
-      <xsd:enumeration value="TABLE"/>
-      <xsd:enumeration value="SEQUENCE"/>
-      <xsd:enumeration value="IDENTITY"/>
-      <xsd:enumeration value="AUTO"/>
-    </xsd:restriction>
-  </xsd:simpleType>
-
-  <!-- **************************************************** -->
-
-  <xsd:complexType name="access-methods">
-    <xsd:annotation>
-      <xsd:documentation>
-
-      </xsd:documentation>
-    </xsd:annotation>
-    <xsd:attribute name="get-method" type="xsd:string" use="required"/>
-    <xsd:attribute name="set-method" type="xsd:string" use="required"/>
-  </xsd:complexType>
-
-  <!-- **************************************************** -->
-
-  <xsd:complexType name="attribute-override">
-    <xsd:annotation>
-      <xsd:documentation>
-
-        @Target({TYPE, METHOD, FIELD}) @Retention(RUNTIME)
-        public @interface AttributeOverride {
-          String name();
-          Column column();
-        }
-
-      </xsd:documentation>
-    </xsd:annotation>
-    <xsd:sequence>
-      <xsd:element name="column" type="orm:column"/>
-    </xsd:sequence>
-    <xsd:attribute name="name" type="xsd:string" use="required"/>
-  </xsd:complexType>
-
-  <!-- **************************************************** -->
-
-  <xsd:complexType name="association-override">
-    <xsd:annotation>
-      <xsd:documentation>
-
-        @Target({TYPE, METHOD, FIELD}) @Retention(RUNTIME)
-        public @interface AssociationOverride {
-          String name();
-          JoinColumn[] joinColumns();
-        }
-
-      </xsd:documentation>
-    </xsd:annotation>
-    <xsd:sequence>
-      <xsd:element name="join-column" type="orm:join-column"
-                   maxOccurs="unbounded"/>
-    </xsd:sequence>
-    <xsd:attribute name="name" type="xsd:string" use="required"/>
-  </xsd:complexType>
-
-  <!-- **************************************************** -->
-
-  <xsd:complexType name="id-class">
-    <xsd:annotation>
-      <xsd:documentation>
-
-        @Target({TYPE}) @Retention(RUNTIME)
-        public @interface IdClass {
-          Class value();
-        }
-
-      </xsd:documentation>
-    </xsd:annotation>
-    <xsd:attribute name="class" type="xsd:string" use="required"/>
-  </xsd:complexType>
-
-  <!-- **************************************************** -->
-
-  <xsd:complexType name="id">
-    <xsd:annotation>
-      <xsd:documentation>
-
-        @Target({METHOD, FIELD}) @Retention(RUNTIME)
-        public @interface Id {}
-
-      </xsd:documentation>
-    </xsd:annotation>
-    <xsd:sequence>
-      <xsd:element name="column" type="orm:column" minOccurs="0"/>
-      <xsd:element name="generated-value" type="orm:generated-value" minOccurs="0"/>
-      <xsd:element name="temporal" type="orm:temporal" minOccurs="0"/>
-      <xsd:element name="convert" type="xsd:string" minOccurs="0"/>
-      <xsd:element name="table-generator" type="orm:table-generator" minOccurs="0"/>
-      <xsd:element name="sequence-generator" type="orm:sequence-generator" minOccurs="0"/>
-      <xsd:element name="property" type="orm:property" minOccurs="0" maxOccurs="unbounded"/>
-      <xsd:element name="access-methods" type="orm:access-methods" 
-                       minOccurs="0" maxOccurs="1"/>
-    </xsd:sequence>
-    <xsd:attribute name="name" type="xsd:string" use="required"/>
-    <xsd:attribute name="mutable" type="xsd:boolean"/>
-  </xsd:complexType>
-
-  <!-- **************************************************** -->
-
-  <xsd:complexType name="embedded-id">
-    <xsd:annotation>
-      <xsd:documentation>
-
-        @Target({METHOD, FIELD}) @Retention(RUNTIME)
-        public @interface EmbeddedId {}
-
-      </xsd:documentation>
-    </xsd:annotation>
-    <xsd:sequence>
-      <xsd:element name="attribute-override" type="orm:attribute-override" 
-                   minOccurs="0" maxOccurs="unbounded"/>
-      <xsd:element name="property" type="orm:property" minOccurs="0" maxOccurs="unbounded"/>
-      <xsd:element name="access-methods" type="orm:access-methods" 
-                       minOccurs="0" maxOccurs="1"/>
-    </xsd:sequence>
-    <xsd:attribute name="name" type="xsd:string" use="required"/>
-  </xsd:complexType>
-
-  <!-- **************************************************** -->
-
-  <xsd:complexType name="transient">
-    <xsd:annotation>
-      <xsd:documentation>
-
-        @Target({METHOD, FIELD}) @Retention(RUNTIME)
-        public @interface Transient {}
-
-      </xsd:documentation>
-    </xsd:annotation>
-    <xsd:attribute name="name" type="xsd:string" use="required"/>
-  </xsd:complexType>
-
-  <!-- **************************************************** -->
-
-  <xsd:complexType name="version">
-    <xsd:annotation>
-      <xsd:documentation>
-
-        @Target({METHOD, FIELD}) @Retention(RUNTIME)
-        public @interface Version {}
-
-      </xsd:documentation>
-    </xsd:annotation>
-    <xsd:sequence>
-      <xsd:element name="column" type="orm:column" minOccurs="0"/>
-      <xsd:element name="temporal" type="orm:temporal" minOccurs="0"/>
-      <xsd:element name="convert" type="xsd:string" minOccurs="0"/>
-      <xsd:element name="property" type="orm:property" minOccurs="0" maxOccurs="unbounded"/>
-      <xsd:element name="access-methods" type="orm:access-methods" 
-                       minOccurs="0" maxOccurs="1"/>
-    </xsd:sequence>
-    <xsd:attribute name="name" type="xsd:string" use="required"/>
-    <xsd:attribute name="mutable" type="xsd:boolean"/>
-  </xsd:complexType>
-
-  <!-- **************************************************** -->
-
-  <xsd:complexType name="basic">
-    <xsd:annotation>
-      <xsd:documentation>
-
-        @Target({METHOD, FIELD}) @Retention(RUNTIME)
-        public @interface Basic {
-          FetchType fetch() default EAGER;
-          boolean optional() default true;
-        }
-
-      </xsd:documentation>
-    </xsd:annotation>
-    <xsd:sequence>
-      <xsd:element name="column" type="orm:column" minOccurs="0"/>
-      <xsd:choice>
-        <xsd:element name="lob" type="orm:lob" minOccurs="0"/>
-        <xsd:element name="temporal" type="orm:temporal" minOccurs="0"/>
-        <xsd:element name="enumerated" type="orm:enumerated" minOccurs="0"/>
-        <xsd:element name="convert" type="xsd:string" minOccurs="0"/>
-      </xsd:choice>
-      <xsd:element name="property" type="orm:property" minOccurs="0" maxOccurs="unbounded"/>
-      <xsd:element name="access-methods" type="orm:access-methods" 
-                       minOccurs="0" maxOccurs="1"/>
-    </xsd:sequence>
-    <xsd:attribute name="name" type="xsd:string" use="required"/>
-    <xsd:attribute name="fetch" type="orm:fetch-type"/>
-    <xsd:attribute name="optional" type="xsd:boolean"/>
-    <xsd:attribute name="mutable" type="xsd:boolean"/>
-  </xsd:complexType>
-
-  <!-- **************************************************** -->
-
-  <xsd:complexType name="read-transformer">
-    <xsd:annotation>
-      <xsd:documentation>
-
-		/**
-		 * Annotation for org.eclipse.persistence.mappings.TransformationMapping.
-		 * Unless the TransformationMapping is write-only, it should have a 
-		 * ReadTransformer, it defines transformation of database column(s) 
-		 * value(s)into attribute value.
-		 *  
-		 * Also unless it's a read-only mapping, either WriteTransformer 
-		 * annotation or WriteTransformers annotation should be specified. Each 
-		 * WriteTransformer defines transformation of the attribute value to a 
-		 * single database column value (column is specified in the 
-		 * WriteTransformer). 
-		 */ 
-		@Target({METHOD, FIELD})
-		@Retention(RUNTIME)
-		public @interface ReadTransformer {
-		    /**
-		     * User-defined class that must implement the 
-		     * org.eclipse.persistence.mappings.transformers.AttributeTransformer 
-		     * interface. The class will be instantiated, its 
-		     * buildAttributeValue will be used to create the value to be 
-		     * assigned to the attribute.
-		     * Either transformerClass or method must be specified, but not both.
-		     */ 
-		    Class transformerClass() default void.class;
-		
-		    /**
-		     * The mapped class must have a method with this name which returns 
-		     * a value to be assigned to the attribute (not assigns the value to 
-		     * the attribute). Either transformerClass or method must be 
-		     * specified, but not both.
-		     */ 
-		    String method() default "";
-		}
-
-      </xsd:documentation>
-    </xsd:annotation>
-    <xsd:attribute name="transformer-class" type="xsd:string"/>
-    <xsd:attribute name="method" type="xsd:string"/>
-  </xsd:complexType>
-
-  <xsd:complexType name="write-transformer">
-    <xsd:annotation>
-      <xsd:documentation>
-
-		/**
-		 * Annotation for org.eclipse.persistence.mappings.TransformationMapping.
-		 * WriteTransformer defines transformation of the attribute value to a 
-		 * single database column value (column is specified in the 
-		 * WriteTransformer).
-		 *  
-		 * A single WriteTransformer may be specified directly on the method or 
-		 * attribute. Multiple WriteTransformers should be wrapped into 
-		 * WriteTransformers annotation. No WriteTransformers specified for 
-		 * read-only mapping. Unless the TransformationMapping is write-only, it 
-		 * should have a ReadTransformer, it defines transformation of database 
-		 * column(s) value(s)into attribute value.
-		 */ 
-		@Target({METHOD, FIELD})
-		@Retention(RUNTIME)
-		public @interface WriteTransformer {
-		    /**
-		     * User-defined class that must implement the 
-		     * org.eclipse.persistence.mappings.transformers.FieldTransformer 
-		     * interface. The class will be instantiated, its buildFieldValue 
-		     * will be used to create the value to be written into the database 
-		     * column. Note that for ddl generation and returning to be 
-		     * supported the method buildFieldValue in the class should be 
-		     * defined to return the relevant Java type, not just Object as 
-		     * defined in the interface, for instance:
-		     * public Time buildFieldValue(Object instance, String fieldName, Session session).
-		     * Either transformerClass or method must be specified, but not both.
-		     */ 
-		    Class transformerClass() default void.class;
-		
-		    /**
-		     * The mapped class must have a method with this name which returns 
-		     * a value to be written into the database column.
-		     * Note that for ddl generation and returning to be supported the 
-		     * method should be defined to return a particular type, not just 
-		     * Object, for instance:
-		     * public Time getStartTime().
-		     * The method may require a Transient annotation to avoid being 
-		     * mapped as Basic by default.
-		     * Either transformerClass or method must be specified, but not both.
-		     */ 
-		    String method() default "";
-		
-		    /**
-		     * Specify here the column into which the value should be written.
-		     * The only case when this could be skipped is if a single 
-		     * WriteTransformer annotates an attribute - the attribute's name 
-		     * will be used as a column name.
-		     */ 
-		    Column column() default @Column;
-		}
-
-      </xsd:documentation>
-    </xsd:annotation>
-    <xsd:sequence>
-      <xsd:element name="column" type="orm:column"/>
-    </xsd:sequence>
-    <xsd:attribute name="transformer-class" type="xsd:string"/>
-    <xsd:attribute name="method" type="xsd:string"/>
-  </xsd:complexType>
-
-  <xsd:complexType name="transformation">
-    <xsd:annotation>
-      <xsd:documentation>
-
-		/**
-		 * Transformation is an optional annotation for 
-		 * org.eclipse.persistence.mappings.TransformationMapping.
-		 * TransformationMapping allows to map an attribute to one or more 
-		 * database columns.
-		 * 
-		 * Transformation annotation is an optional part of 
-		 * TransformationMapping definition. Unless the TransformationMapping is 
-		 * write-only, it should have a ReadTransformer, it defines 
-		 * transformation of database column(s) value(s)into attribute value.
-		 * Also unless it's a read-only mapping, either WriteTransformer 
-		 * annotation or WriteTransformers annotation should be specified. Each 
-		 * WriteTransformer defines transformation of the attribute value to a 
-		 * single database column value (column is specified in the 
-		 * WriteTransformer). 
-		 */ 
-		@Target({METHOD, FIELD})
-		@Retention(RUNTIME)
-		public @interface Transformation {
-		    /**
-		     * (Optional) Defines whether the value of the field or property 
-		     * should be lazily loaded or must be eagerly fetched. The EAGER 
-		     * strategy is a requirement on the persistence provider runtime 
-		     * that the value must be eagerly fetched. The LAZY strategy is a 
-		     * hint to the persistence provider runtime. If not specified, 
-		     * defaults to EAGER.
-		     */
-		    FetchType fetch() default EAGER;
-		    
-		    /**
-		     * (Optional) The optional element is a hint as to whether the value
-		     *  of the field or property may be null. It is disregarded
-		     *  for primitive types, which are considered non-optional.
-		     */
-		    boolean optional() default true;
-		}
-
-      </xsd:documentation>
-    </xsd:annotation>
-    <xsd:sequence>
-      <xsd:element name="read-transformer" type="orm:read-transformer"/>
-      <xsd:element name="write-transformer" type="orm:write-transformer" minOccurs="0" maxOccurs="unbounded"/>
-      <xsd:element name="access" type="orm:access-type" minOccurs="0"/>
-      <xsd:element name="property" type="orm:property" minOccurs="0" maxOccurs="unbounded"/>
-      <xsd:element name="access-methods" type="orm:access-methods" 
-                       minOccurs="0" maxOccurs="1"/>
-    </xsd:sequence>
-    <xsd:attribute name="name" type="xsd:string" use="required"/>
-    <xsd:attribute name="fetch" type="orm:fetch-type"/>
-    <xsd:attribute name="optional" type="xsd:boolean"/>
-    <xsd:attribute name="mutable" type="xsd:boolean"/>
-  </xsd:complexType>
-
-  <!-- **************************************************** -->
-
-  <xsd:simpleType name="fetch-type">
-    <xsd:annotation>
-      <xsd:documentation>
-
-        public enum FetchType { LAZY, EAGER };
-
-      </xsd:documentation>
-    </xsd:annotation>
-    <xsd:restriction base="xsd:token">
-      <xsd:enumeration value="LAZY"/>
-      <xsd:enumeration value="EAGER"/>
-    </xsd:restriction>
-  </xsd:simpleType>
-
-  <!-- **************************************************** -->
-
-  <xsd:complexType name="lob">
-    <xsd:annotation>
-      <xsd:documentation>
-
-        @Target({METHOD, FIELD}) @Retention(RUNTIME)
-        public @interface Lob {}
-
-      </xsd:documentation>
-    </xsd:annotation>
-  </xsd:complexType>
-
-  <!-- **************************************************** -->
-
-  <xsd:simpleType name="temporal">
-    <xsd:annotation>
-      <xsd:documentation>
-
-        @Target({METHOD, FIELD}) @Retention(RUNTIME)
-        public @interface Temporal {
-          TemporalType value();
-        }
-
-      </xsd:documentation>
-    </xsd:annotation>
-    <xsd:restriction base="orm:temporal-type"/>
-  </xsd:simpleType>
-
-  <!-- **************************************************** -->
-
-  <xsd:simpleType name="temporal-type">
-    <xsd:annotation>
-      <xsd:documentation>
-
-        public enum TemporalType {
-          DATE, // java.sql.Date
-          TIME, // java.sql.Time
-          TIMESTAMP // java.sql.Timestamp
-        }
-
-      </xsd:documentation>
-    </xsd:annotation>
-      <xsd:restriction base="xsd:token">
-        <xsd:enumeration value="DATE"/>
-        <xsd:enumeration value="TIME"/>
-        <xsd:enumeration value="TIMESTAMP"/>
-     </xsd:restriction>
-  </xsd:simpleType>
-
-  <!-- **************************************************** -->
-
-  <xsd:simpleType name="enumerated">
-    <xsd:annotation>
-      <xsd:documentation>
-
-        @Target({METHOD, FIELD}) @Retention(RUNTIME)
-        public @interface Enumerated {
-          EnumType value() default ORDINAL;
-        }
-
-      </xsd:documentation>
-    </xsd:annotation>
-    <xsd:restriction base="orm:enum-type"/>
-  </xsd:simpleType>
-
-  <!-- **************************************************** -->
-
-  <xsd:simpleType name="enum-type">
-    <xsd:annotation>
-      <xsd:documentation>
-
-        public enum EnumType {
-          ORDINAL,
-          STRING
-        }
-
-      </xsd:documentation>
-    </xsd:annotation>
-    <xsd:restriction base="xsd:token">
-      <xsd:enumeration value="ORDINAL"/>
-      <xsd:enumeration value="STRING"/>
-    </xsd:restriction>
-  </xsd:simpleType>
-
-  <!-- **************************************************** -->
-
-  <xsd:complexType name="many-to-one">
-    <xsd:annotation>
-      <xsd:documentation>
-
-        @Target({METHOD, FIELD}) @Retention(RUNTIME)
-        public @interface ManyToOne {
-          Class targetEntity() default void.class;
-          CascadeType[] cascade() default {};
-          FetchType fetch() default EAGER;
-          boolean optional() default true;
-        }
-
-      </xsd:documentation>
-    </xsd:annotation>
-    <xsd:sequence>
-      <xsd:choice>       
-        <xsd:element name="join-column" type="orm:join-column" minOccurs="0" maxOccurs="unbounded"/>
-        <xsd:element name="join-table" type="orm:join-table" minOccurs="0"/>
-      </xsd:choice>       
-      <xsd:element name="cascade" type="orm:cascade-type" minOccurs="0"/>
-      <xsd:element name="join-fetch" type="orm:join-fetch-type" minOccurs="0"/>
-      <xsd:element name="property" type="orm:property" minOccurs="0" maxOccurs="unbounded"/>
-      <xsd:element name="access-methods" type="orm:access-methods" 
-                       minOccurs="0" maxOccurs="1"/>
-    </xsd:sequence>
-    <xsd:attribute name="name" type="xsd:string" use="required"/>
-    <xsd:attribute name="target-entity" type="xsd:string"/>
-    <xsd:attribute name="fetch" type="orm:fetch-type"/>
-    <xsd:attribute name="optional" type="xsd:boolean"/>
-  </xsd:complexType>
-
-  <!-- **************************************************** -->
-
-  <xsd:complexType name="cascade-type">
-    <xsd:annotation>
-      <xsd:documentation>
-
-        public enum CascadeType { ALL, PERSIST, MERGE, REMOVE, REFRESH};
-
-      </xsd:documentation>
-    </xsd:annotation>
-    <xsd:sequence>
-      <xsd:element name="cascade-all" type="orm:emptyType"
-                   minOccurs="0"/>
-      <xsd:element name="cascade-persist" type="orm:emptyType"
-                   minOccurs="0"/>
-      <xsd:element name="cascade-merge" type="orm:emptyType"
-                   minOccurs="0"/>
-      <xsd:element name="cascade-remove" type="orm:emptyType"
-                   minOccurs="0"/>
-      <xsd:element name="cascade-refresh" type="orm:emptyType"
-                   minOccurs="0"/>
-    </xsd:sequence>
-  </xsd:complexType>
-
-  <!-- **************************************************** -->
-
-  <xsd:complexType name="one-to-one">
-    <xsd:annotation>
-      <xsd:documentation>
-
-        @Target({METHOD, FIELD}) @Retention(RUNTIME)
-        public @interface OneToOne {
-          Class targetEntity() default void.class;
-          CascadeType[] cascade() default {};
-          FetchType fetch() default EAGER;
-          boolean optional() default true;
-          String mappedBy() default "";
-        }
-
-      </xsd:documentation>
-    </xsd:annotation>
-    <xsd:sequence>
-      <xsd:choice>
-        <xsd:element name="primary-key-join-column" type="orm:primary-key-join-column" minOccurs="0" maxOccurs="unbounded"/>
-        <xsd:element name="join-column" type="orm:join-column" minOccurs="0" maxOccurs="unbounded"/>
-        <xsd:element name="join-table" type="orm:join-table" minOccurs="0"/>
-      </xsd:choice>
-      <xsd:element name="cascade" type="orm:cascade-type" minOccurs="0"/>
-      <xsd:element name="private-owned" type="orm:emptyType" minOccurs="0"/>
-      <xsd:element name="join-fetch" type="orm:join-fetch-type" minOccurs="0"/>
-      <xsd:element name="property" type="orm:property" minOccurs="0" maxOccurs="unbounded"/>
-      <xsd:element name="access-methods" type="orm:access-methods" 
-                       minOccurs="0" maxOccurs="1"/>
-    </xsd:sequence>
-    <xsd:attribute name="name" type="xsd:string" use="required"/>
-    <xsd:attribute name="target-entity" type="xsd:string"/>
-    <xsd:attribute name="fetch" type="orm:fetch-type"/>
-    <xsd:attribute name="optional" type="xsd:boolean"/>
-    <xsd:attribute name="mapped-by" type="xsd:string"/>
-  </xsd:complexType>
-
-  <!-- **************************************************** -->
-
-  <xsd:complexType name="one-to-many">
-    <xsd:annotation>
-      <xsd:documentation>
-
-        @Target({METHOD, FIELD}) @Retention(RUNTIME)
-        public @interface OneToMany {
-          Class targetEntity() default void.class;
-          CascadeType[] cascade() default {};
-          FetchType fetch() default LAZY;
-          String mappedBy() default "";
-        }
-
-      </xsd:documentation>
-    </xsd:annotation>
-    <xsd:sequence>
-      <xsd:element name="order-by" type="orm:order-by" minOccurs="0"/>
-      <xsd:element name="map-key" type="orm:map-key" minOccurs="0"/>
-      <xsd:choice>       
-        <xsd:element name="join-table" type="orm:join-table" minOccurs="0"/>
-        <xsd:element name="join-column" type="orm:join-column" minOccurs="0" maxOccurs="unbounded"/>
-      </xsd:choice>       
-      <xsd:element name="cascade" type="orm:cascade-type" minOccurs="0"/>
-      <xsd:element name="private-owned" type="orm:emptyType" minOccurs="0"/>
-      <xsd:element name="join-fetch" type="orm:join-fetch-type" minOccurs="0"/>
-      <xsd:element name="property" type="orm:property" minOccurs="0" maxOccurs="unbounded"/>
-      <xsd:element name="access-methods" type="orm:access-methods" 
-                       minOccurs="0" maxOccurs="1"/>
-    </xsd:sequence>
-    <xsd:attribute name="name" type="xsd:string" use="required"/>
-    <xsd:attribute name="target-entity" type="xsd:string"/>
-    <xsd:attribute name="fetch" type="orm:fetch-type"/>
-    <xsd:attribute name="mapped-by" type="xsd:string"/>
-  </xsd:complexType>
-
-  <!-- **************************************************** -->
-
-  <xsd:complexType name="join-table">
-    <xsd:annotation>
-      <xsd:documentation>
-
-        @Target({METHOD, FIELD})
-        public @interface JoinTable {
-          String name() default "";
-          String catalog() default "";
-          String schema() default "";
-          JoinColumn[] joinColumns() default {};
-          JoinColumn[] inverseJoinColumns() default {};
-          UniqueConstraint[] uniqueConstraints() default {};
-        }
-
-      </xsd:documentation>
-    </xsd:annotation>
-    <xsd:sequence>
-      <xsd:element name="join-column" type="orm:join-column" 
-                   minOccurs="0" maxOccurs="unbounded"/>
-      <xsd:element name="inverse-join-column" type="orm:join-column" 
-                   minOccurs="0" maxOccurs="unbounded"/>
-      <xsd:element name="unique-constraint" type="orm:unique-constraint" 
-                   minOccurs="0" maxOccurs="unbounded"/>
-    </xsd:sequence>
-    <xsd:attribute name="name" type="xsd:string"/>
-    <xsd:attribute name="catalog" type="xsd:string"/>
-    <xsd:attribute name="schema" type="xsd:string"/>
-  </xsd:complexType>
-
-  <!-- **************************************************** -->
-
-  <xsd:complexType name="many-to-many">
-    <xsd:annotation>
-      <xsd:documentation>
-
-        @Target({METHOD, FIELD}) @Retention(RUNTIME)
-        public @interface ManyToMany {
-          Class targetEntity() default void.class;
-          CascadeType[] cascade() default {};
-          FetchType fetch() default LAZY;
-          String mappedBy() default "";
-        }
-
-      </xsd:documentation>
-    </xsd:annotation>
-    <xsd:sequence>
-      <xsd:element name="order-by" type="orm:order-by" minOccurs="0"/>
-      <xsd:element name="map-key" type="orm:map-key" minOccurs="0"/>
-      <xsd:element name="join-table" type="orm:join-table" minOccurs="0"/>
-      <xsd:element name="cascade" type="orm:cascade-type" minOccurs="0"/>
-      <xsd:element name="join-fetch" type="orm:join-fetch-type" minOccurs="0"/>
-      <xsd:element name="property" type="orm:property" minOccurs="0" maxOccurs="unbounded"/>
-      <xsd:element name="access-methods" type="orm:access-methods" 
-                       minOccurs="0" maxOccurs="1"/>
-    </xsd:sequence>
-    <xsd:attribute name="name" type="xsd:string" use="required"/>
-    <xsd:attribute name="target-entity" type="xsd:string"/>
-    <xsd:attribute name="fetch" type="orm:fetch-type"/>
-    <xsd:attribute name="mapped-by" type="xsd:string"/>
-  </xsd:complexType>
-
-  <!-- **************************************************** -->
-
-  <xsd:complexType name="generated-value">
-    <xsd:annotation>
-      <xsd:documentation>
-
-        @Target({METHOD, FIELD}) @Retention(RUNTIME)
-        public @interface GeneratedValue {
-          GenerationType strategy() default AUTO;
-          String generator() default "";
-        }
-
-      </xsd:documentation>
-    </xsd:annotation>
-    <xsd:attribute name="strategy" type="orm:generation-type"/>
-    <xsd:attribute name="generator" type="xsd:string"/>
-  </xsd:complexType>
-
-  <!-- **************************************************** -->
-
-  <xsd:complexType name="map-key">
-    <xsd:annotation>
-      <xsd:documentation>
-
-        @Target({METHOD, FIELD}) @Retention(RUNTIME)
-        public @interface MapKey {
-          String name() default "";
-        }
-
-      </xsd:documentation>
-    </xsd:annotation>
-    <xsd:attribute name="name" type="xsd:string"/>
-  </xsd:complexType>
-
-  <!-- **************************************************** -->
-
-  <xsd:simpleType name="order-by">
-    <xsd:annotation>
-      <xsd:documentation>
-
-        @Target({METHOD, FIELD}) @Retention(RUNTIME)
-        public @interface OrderBy {
-          String value() default "";
-        }
-
-      </xsd:documentation>
-    </xsd:annotation>
-    <xsd:restriction base="xsd:string"/>
-  </xsd:simpleType>
-
-  <!-- **************************************************** -->
-
-  <xsd:complexType name="inheritance">
-    <xsd:annotation>
-      <xsd:documentation>
-
-        @Target({TYPE}) @Retention(RUNTIME)
-        public @interface Inheritance {
-          InheritanceType strategy() default SINGLE_TABLE;
-        }
-
-      </xsd:documentation>
-    </xsd:annotation>
-    <xsd:attribute name="strategy" type="orm:inheritance-type"/>
-  </xsd:complexType>
-
-  <!-- **************************************************** -->
-
-  <xsd:simpleType name="inheritance-type">
-    <xsd:annotation>
-      <xsd:documentation>
-
-        public enum InheritanceType
-          { SINGLE_TABLE, JOINED, TABLE_PER_CLASS};
-
-      </xsd:documentation>
-    </xsd:annotation>
-    <xsd:restriction base="xsd:token">
-      <xsd:enumeration value="SINGLE_TABLE"/>
-      <xsd:enumeration value="JOINED"/>
-      <xsd:enumeration value="TABLE_PER_CLASS"/>
-    </xsd:restriction>
-  </xsd:simpleType>
-
-  <!-- **************************************************** -->
-
-  <xsd:simpleType name="discriminator-value">
-    <xsd:annotation>
-      <xsd:documentation>
-
-        @Target({TYPE}) @Retention(RUNTIME)
-        public @interface DiscriminatorValue {
-          String value();
-        }
-
-      </xsd:documentation>
-    </xsd:annotation>
-    <xsd:restriction base="xsd:string"/>
-  </xsd:simpleType>
-
-  <!-- **************************************************** -->
-
-  <xsd:simpleType name="discriminator-type">
-    <xsd:annotation>
-      <xsd:documentation>
-
-        public enum DiscriminatorType { STRING, CHAR, INTEGER };
-
-      </xsd:documentation>
-    </xsd:annotation>
-    <xsd:restriction base="xsd:token">
-      <xsd:enumeration value="STRING"/>
-      <xsd:enumeration value="CHAR"/>
-      <xsd:enumeration value="INTEGER"/>
-    </xsd:restriction>
-  </xsd:simpleType>
-
-  <!-- **************************************************** -->
-
-  <xsd:complexType name="primary-key-join-column">
-    <xsd:annotation>
-      <xsd:documentation>
-
-        @Target({TYPE, METHOD, FIELD}) @Retention(RUNTIME)
-        public @interface PrimaryKeyJoinColumn {
-          String name() default "";
-          String referencedColumnName() default "";
-          String columnDefinition() default "";
-        }
-
-      </xsd:documentation>
-    </xsd:annotation>
-    <xsd:attribute name="name" type="xsd:string"/>
-    <xsd:attribute name="referenced-column-name" type="xsd:string"/>
-    <xsd:attribute name="column-definition" type="xsd:string"/>
-  </xsd:complexType>
-
-  <!-- **************************************************** -->
-
-  <xsd:complexType name="discriminator-column">
-    <xsd:annotation>
-      <xsd:documentation>
-
-        @Target({TYPE}) @Retention(RUNTIME)
-        public @interface DiscriminatorColumn {
-          String name() default "DTYPE";
-          DiscriminatorType discriminatorType() default STRING;
-          String columnDefinition() default "";
-          int length() default 31;
-        }
-
-      </xsd:documentation>
-    </xsd:annotation>
-    <xsd:attribute name="name" type="xsd:string"/>
-    <xsd:attribute name="discriminator-type" type="orm:discriminator-type"/>
-    <xsd:attribute name="column-definition" type="xsd:string"/>
-    <xsd:attribute name="length" type="xsd:int"/>
-  </xsd:complexType>
-
-  <!-- **************************************************** -->
-
-  <xsd:complexType name="embeddable">
-    <xsd:annotation>
-      <xsd:documentation>
-
-        Defines the settings and mappings for embeddable objects. Is 
-        allowed to be sparsely populated and used in conjunction with 
-        the annotations. Alternatively, the metadata-complete attribute 
-        can be used to indicate that no annotations are to be processed 
-        in the class. If this is the case then the defaulting rules will 
-        be recursively applied.
-
-        @Target({TYPE}) @Retention(RUNTIME)
-        public @interface Embeddable {}
-
-      </xsd:documentation>
-    </xsd:annotation>
-    <xsd:sequence>
-      <xsd:element name="description" type="xsd:string" minOccurs="0"/>
-      <xsd:element name="customizer" type="orm:customizer" minOccurs="0"/>
-      <xsd:element name="change-tracking" type="orm:change-tracking" 
-                   minOccurs="0"/>
-      <xsd:element name="converter" type="orm:converter" minOccurs="0" 
-                   maxOccurs="unbounded"/>
-      <xsd:element name="type-converter" type="orm:type-converter" minOccurs="0" 
-                   maxOccurs="unbounded"/>
-      <xsd:element name="object-type-converter" type="orm:object-type-converter" 
-                   minOccurs="0" maxOccurs="unbounded"/>
-      <xsd:element name="struct-converter" type="orm:struct-converter" 
-                   minOccurs="0" maxOccurs="unbounded"/>
-      <xsd:element name="property" type="orm:property" minOccurs="0" maxOccurs="unbounded"/>
-      <xsd:element name="attributes" type="orm:attributes" 
-                   minOccurs="0"/>
-      <xsd:element name="copy-policy" type="orm:copy-policy" 
-                     minOccurs="0" maxOccurs="1"/>
-      <xsd:element name="instantiation-copy-policy" type="orm:instantiation-copy-policy" 
-                     minOccurs="0" maxOccurs="1"/>
-      <xsd:element name="clone-copy-policy" type="orm:clone-copy-policy" 
-                     minOccurs="0" maxOccurs="1"/>
-    </xsd:sequence>
-    <xsd:attribute name="class" type="xsd:string" use="required"/>
-    <xsd:attribute name="access" type="orm:access-type"/>
-    <xsd:attribute name="metadata-complete" type="xsd:boolean"/>
-    <xsd:attribute name="exclude-default-mappings" type="xsd:boolean"/>
-  </xsd:complexType>
-
-  <!-- **************************************************** -->
-
-  <xsd:complexType name="embedded">
-    <xsd:annotation>
-      <xsd:documentation>
-
-        @Target({METHOD, FIELD}) @Retention(RUNTIME)
-        public @interface Embedded {}
-
-      </xsd:documentation>
-    </xsd:annotation>
-    <xsd:sequence>
-      <xsd:element name="attribute-override" type="orm:attribute-override" 
-                   minOccurs="0" maxOccurs="unbounded"/>
-      <xsd:element name="property" type="orm:property" minOccurs="0" maxOccurs="unbounded"/>
-      <xsd:element name="access-methods" type="orm:access-methods" 
-                       minOccurs="0" maxOccurs="1"/>
-    </xsd:sequence>
-    <xsd:attribute name="name" type="xsd:string" use="required"/>
-  </xsd:complexType>
-
-  <!-- **************************************************** -->
-
-  <xsd:complexType name="mapped-superclass">
-    <xsd:annotation>
-      <xsd:documentation>
-
-        Defines the settings and mappings for a mapped superclass. Is 
-        allowed to be sparsely populated and used in conjunction with 
-        the annotations. Alternatively, the metadata-complete attribute 
-        can be used to indicate that no annotations are to be processed 
-        If this is the case then the defaulting rules will be recursively 
-        applied.
-
-        @Target(TYPE) @Retention(RUNTIME)
-        public @interface MappedSuperclass{}
-
-      </xsd:documentation>
-    </xsd:annotation>
-    <xsd:sequence>
-      <xsd:element name="description" type="xsd:string" minOccurs="0"/>
-      <xsd:element name="customizer" type="orm:customizer" minOccurs="0"/>
-      <xsd:element name="change-tracking" type="orm:change-tracking" 
-                   minOccurs="0"/>
-      <xsd:element name="id-class" type="orm:id-class" minOccurs="0"/>
-      <xsd:element name="optimistic-locking" type="orm:optimistic-locking"
-                   minOccurs="0"/>
-      <xsd:element name="cache" type="orm:cache" minOccurs="0"/>
-      <xsd:element name="converter" type="orm:converter" 
-                   minOccurs="0" maxOccurs="unbounded"/>
-      <xsd:element name="type-converter" type="orm:type-converter" 
-                   minOccurs="0" maxOccurs="unbounded"/>
-      <xsd:element name="object-type-converter" type="orm:object-type-converter" 
-                   minOccurs="0" maxOccurs="unbounded"/>
-      <xsd:element name="struct-converter" type="orm:struct-converter" 
-                   minOccurs="0" maxOccurs="unbounded"/>
-      <xsd:element name="copy-policy" type="orm:copy-policy" 
-                     minOccurs="0" maxOccurs="1"/>
-      <xsd:element name="instantiation-copy-policy" type="orm:instantiation-copy-policy" 
-                     minOccurs="0" maxOccurs="1"/>
-      <xsd:element name="clone-copy-policy" type="orm:clone-copy-policy" 
-                     minOccurs="0" maxOccurs="1"/>
-      <xsd:element name="exclude-default-listeners" type="orm:emptyType" 
-                   minOccurs="0"/>
-      <xsd:element name="exclude-superclass-listeners" type="orm:emptyType" 
-                   minOccurs="0"/>
-      <xsd:element name="entity-listeners" type="orm:entity-listeners" 
-                   minOccurs="0"/>
-      <xsd:element name="pre-persist" type="orm:pre-persist" minOccurs="0"/>
-      <xsd:element name="post-persist" type="orm:post-persist" 
-                   minOccurs="0"/>
-      <xsd:element name="pre-remove" type="orm:pre-remove" minOccurs="0"/>
-      <xsd:element name="post-remove" type="orm:post-remove" minOccurs="0"/>
-      <xsd:element name="pre-update" type="orm:pre-update" minOccurs="0"/>
-      <xsd:element name="post-update" type="orm:post-update" minOccurs="0"/>
-      <xsd:element name="post-load" type="orm:post-load" minOccurs="0"/>
-      <xsd:element name="property" type="orm:property" minOccurs="0" maxOccurs="unbounded"/>
-      <xsd:element name="attributes" type="orm:attributes" minOccurs="0"/>
-    </xsd:sequence>
-    <xsd:attribute name="class" type="xsd:string" use="required"/>
-    <xsd:attribute name="access" type="orm:access-type"/>
-    <xsd:attribute name="metadata-complete" type="xsd:boolean"/>
-    <xsd:attribute name="read-only" type="xsd:boolean"/>
-    <xsd:attribute name="existence-checking" type="orm:existence-type"/>
-    <xsd:attribute name="exclude-default-mappings" type="xsd:boolean"/>
-  </xsd:complexType>
-
-  <!-- **************************************************** -->
-
-  <xsd:complexType name="sequence-generator">
-    <xsd:annotation>
-      <xsd:documentation>
-
-        @Target({TYPE, METHOD, FIELD}) @Retention(RUNTIME)
-        public @interface SequenceGenerator {
-          String name();
-          String sequenceName() default "";
-          int initialValue() default 1;
-          int allocationSize() default 50;
-        }
-
-      </xsd:documentation>
-    </xsd:annotation>
-    <xsd:attribute name="name" type="xsd:string" use="required"/>
-    <xsd:attribute name="sequence-name" type="xsd:string"/>
-    <xsd:attribute name="initial-value" type="xsd:int"/>
-    <xsd:attribute name="allocation-size" type="xsd:int"/>
-  </xsd:complexType>
-
-  <!-- **************************************************** -->
-
-  <xsd:complexType name="table-generator">
-    <xsd:annotation>
-      <xsd:documentation>
-
-        @Target({TYPE, METHOD, FIELD}) @Retention(RUNTIME)
-        public @interface TableGenerator {
-          String name();
-          String table() default "";
-          String catalog() default "";
-          String schema() default "";
-          String pkColumnName() default "";
-          String valueColumnName() default "";
-          String pkColumnValue() default "";
-          int initialValue() default 0;
-          int allocationSize() default 50;
-          UniqueConstraint[] uniqueConstraints() default {};
-        }
-
-      </xsd:documentation>
-    </xsd:annotation>
-    <xsd:sequence>
-      <xsd:element name="unique-constraint" type="orm:unique-constraint" 
-                   minOccurs="0" maxOccurs="unbounded"/>
-    </xsd:sequence>
-    <xsd:attribute name="name" type="xsd:string" use="required"/>
-    <xsd:attribute name="table" type="xsd:string"/>
-    <xsd:attribute name="catalog" type="xsd:string"/>
-    <xsd:attribute name="schema" type="xsd:string"/>
-    <xsd:attribute name="pk-column-name" type="xsd:string"/>
-    <xsd:attribute name="value-column-name" type="xsd:string"/>
-    <xsd:attribute name="pk-column-value" type="xsd:string"/>
-    <xsd:attribute name="initial-value" type="xsd:int"/>
-    <xsd:attribute name="allocation-size" type="xsd:int"/>
-  </xsd:complexType>
-  
-  <!-- **************************************************** -->
-  
-  <xsd:complexType name="converter">
-    <xsd:annotation>
-      <xsd:documentation>
-
-        @Target({TYPE, METHOD, FIELD})
-        @Retention(RUNTIME)
-        public @interface Converter {
-          /**
-           * (Required) Name this converter. The name should be unique across 
-           * the whole persistence unit.
-           */
-          String name();
-
-          /**
-           * (Required) The converter class to be used. This class must implement
-           * the org.eclipse.persistence.mappings.converters.Converter interface.
-           */
-          Class converterClass(); 
-        }
-
-      </xsd:documentation>
-    </xsd:annotation>
-    <xsd:attribute name="name" type="xsd:string" use="required"/>
-    <xsd:attribute name="class" type="xsd:string" use="required"/>
-  </xsd:complexType>
-  
-  <!-- **************************************************** -->
-  
-  <xsd:complexType name="type-converter">
-    <xsd:annotation>
-      <xsd:documentation>
-
-        @Target({TYPE, METHOD, FIELD})
-        @Retention(RUNTIME)
-        public @interface TypeConverter {
-          /**
-           * (Required) Name this converter. The name should be unique
-           * across the whole persistence unit.
-           */
-           String name();
-
-          /**
-           * (Optional) Specify the type stored on the database. The
-           * default is inferred from the type of the persistence field 
-           * or property.
-           */
-          Class dataType() default void.class;
-
-          /**
-           * (Optional) Specify the type stored on the entity. The
-           * default is inferred from the type of the persistent field 
-           * or property.
-           */
-          Class objectType() default void.class;
-        }
-
-      </xsd:documentation>
-    </xsd:annotation>
-    <xsd:attribute name="name" type="xsd:string" use="required"/>
-    <xsd:attribute name="data-type" type="xsd:string"/>
-    <xsd:attribute name="object-type" type="xsd:string"/>
-  </xsd:complexType>
-  
-  <!-- **************************************************** -->
-  
-  <xsd:complexType name="object-type-converter">
-    <xsd:annotation>
-      <xsd:documentation>
-
-        @Target({TYPE, METHOD, FIELD})
-        @Retention(RUNTIME)
-        public @interface ObjectTypeConverter {
-          /**
-           * (Required) Name this converter. The name should be unique
-           * across the whole persistence unit.
-           */
-          String name();
-
-          /**
-           * (Optional) Specify the type stored on the database. The
-           * default is inferred from the type of the persistence
-           * field or property.
-           */
-          Class dataType() default void.class;
-
-          /**
-           * (Optional) Specify the type stored on the entity. The
-           * default is inferred from the type of the persistent 
-           * field or property.
-           */
-          Class objectType() default void.class;
-
-          /**
-           * (Required) Specify the conversion values to be used 
-           * with the object converter.
-           */
-          ConversionValue[] conversionValues();
-
-           /**
-            * (Optional) Specify a default object value. Used for 
-            * legacy data if the data value is missing.
-            */
-           String defaultObjectValue() default "";
-         }
-
-      </xsd:documentation>
-    </xsd:annotation>
-    <xsd:sequence>
-      <xsd:element name="conversion-value" type="orm:conversion-value" minOccurs="1" maxOccurs="unbounded"/>
-      <xsd:element name="default-object-value" type="xsd:string" minOccurs="0"/>
-    </xsd:sequence>
-    <xsd:attribute name="name" type="xsd:string" use="required"/>
-    <xsd:attribute name="data-type" type="xsd:string"/>
-    <xsd:attribute name="object-type" type="xsd:string"/>
-  </xsd:complexType>
-  
-  <!-- **************************************************** -->
-  
-  <xsd:complexType name="conversion-value">
-    <xsd:annotation>
-      <xsd:documentation>
-
-        @Target({})
-        @Retention(RUNTIME)
-        public @interface ConversionValue {
-          /**
-           * (Required) Specify the database value.
-           */
-          String dataValue();
-
-          /**
-           * (Required) Specify the object value.
-           */
-          String objectValue();
-        }
-
-      </xsd:documentation>
-    </xsd:annotation>
-    <xsd:attribute name="data-value" type="xsd:string" use="required"/>
-    <xsd:attribute name="object-value" type="xsd:string" use="required"/>
-  </xsd:complexType>
-  
-  <!-- **************************************************** -->
-  
-  <xsd:complexType name="struct-converter">
-    <xsd:annotation>
-      <xsd:documentation>
-
-        @Target({TYPE, METHOD, FIELD})
-        @Retention(RUNTIME)
-        public @interface StructConverter {
-          /**
-           * (Required) Name this converter. The name should be unique across 
-           * the whole persistence unit.
-           */
-          String name();
-
-          /**
-           * (Required) The converter class to be used. This class must 
-           * implement the EclipseLink interface 
-           * org.eclipse.persistence.mappings.converters.Converter
-           */
-          String converter(); 
-        }
-
-      </xsd:documentation>
-    </xsd:annotation>
-    <xsd:attribute name="name" type="xsd:string" use="required"/>
-    <xsd:attribute name="converter" type="xsd:string" use="required"/>
-  </xsd:complexType>
-
-  <!-- **************************************************** -->
-  
-  <xsd:complexType name="copy-policy">
-    <xsd:annotation>
-      <xsd:documentation>
-        /**
-         * A CopyPolicy is used to set a 
-         * org.eclipse.persistence.descriptors.copying.CopyPolicy on an Entity.
-         * It is required that a class that implements 
-         * org.eclipse.persistence.descriptors.copying.CopyPolicy be specified 
-         * as the argument.
-         * 
-         * A CopyPolicy should be specified on an Entity or MappedSuperclass.
-         * 
-         * For instance:
-         * @Entity
-         * @CopyPolicy("example.MyCopyPolicy")
-         */
-        public @interface CopyPolicy {
-
-        /*
-        * (Required)
-        * This defines the class of the copy policy. It must specify a class 
-        * that implements org.eclipse.persistence.descriptors.copying.CopyPolicy
-        */
-        Class value();
-        }
-
-      </xsd:documentation>
-    </xsd:annotation>
-    <xsd:attribute name="class" type="xsd:string" use="required"/>
-  </xsd:complexType>
-
-    <!-- **************************************************** -->
-  
-  <xsd:complexType name="instantiation-copy-policy">
-    <xsd:annotation>
-      <xsd:documentation>
-        /**
-         * An InstantiationCopyPolicy is used to set an 
-         * org.eclipse.persistence.descriptors.copying.InstantiationCopyPolicy 
-         * on an Entity. InstantiationCopyPolicy is the default CopyPolicy in 
-         * EclipseLink and therefore this configuration option is only used to 
-         * override other types of copy policies
-         * 
-         * An InstantiationCopyPolicy should be specified on an Entity or 
-         * MappedSuperclass.
-         * 
-         * Example:
-         * @Entity
-         * @InstantiationCopyPolicy 
-         */
-        public @interface InstantiationCopyPolicy {
-        }
-      </xsd:documentation>
-    </xsd:annotation>
-  </xsd:complexType>
-
-  <!-- **************************************************** -->
-  
-  <xsd:complexType name="clone-copy-policy">
-    <xsd:annotation>
-      <xsd:documentation>
-        /**
-         * A CloneCopyPolicy is used to set an 
-         * org.eclipse.persistence.descriptors.copying.CloneCopyPolicy on an 
-         * Entity. A CloneCopyPolicy must specify at one or both of the "method" 
-         * or "workingCopyMethod". "workingCopyMethod" is used to clone objects 
-         * that will be returned to the user as they are registered in 
-         * EclipseLink's transactional mechanism, the UnitOfWork. "method" will 
-         * be used for the clone that is used for comparison in conjunction with 
-         * EclipseLink's DeferredChangeDetectionPolicy
-         *  
-         * A CloneCopyPolicy should be specified on an Entity or 
-         * MappedSuperclass.
-         * 
-         * Example:
-         * @Entity
-         * @CloneCopyPolicy(method="myCloneMethod")
-         * 
-         * or:
-         * 
-         * @Entity
-         * @CloneCopyPolicy(method="myCloneMethod", workingCopyMethod="myWorkingCopyCloneMethod")
-         * 
-         * or:
-         * 
-          @Entity
-         * @CloneCopyPolicy(workingCopyMethodName="myWorkingCopyClone")
-         */
-        public @interface CloneCopyPolicy {
-
-            /**
-             * (Optional)
-             * Either method or workingCopyMethod must be specified this defines 
-             * a method that will be used to create a clone that will be used 
-             * for comparison by
-             * EclipseLink's DeferredChangeDetectionPolicy
-             */
-            String method();
-            
-            /**
-             * (Optional)
-             * Either method or workingCopyMethod must be specified
-             * this defines a method that will be used to create a clone that 
-             * will be used to create the object returned when registering an 
-             * Object in an EclipseLink UnitOfWork
-             */
-            String workingCopyMethod();
-            
-        }
-      </xsd:documentation>
-    </xsd:annotation>
-    <xsd:attribute name="method" type="xsd:string"/>
-    <xsd:attribute name="working-copy-method" type="xsd:string"/>
-  </xsd:complexType>
-  
-  <!-- **************************************************** -->
-  
-  <xsd:complexType name="collection-table">
-    <xsd:annotation>
-      <xsd:documentation>
-
-        @Target({METHOD, FIELD})
-        @Retention(RUNTIME)
-        public @interface CollectionTable {
-          /**
-           * (Optional) The name of the collection table. If it is not 
-           * specified, it is defaulted to the concatenation of the following: 
-           * the name of the source entity; "_" ; the name of the relationship 
-           * property or field of the source entity.
-           */
-          String name() default ""; 
-
-          /**
-           * (Optional) The catalog of the table. It defaults to the persistence 
-           * unit default catalog.
-           */
-          String catalog() default ""; 
-
-          /**
-           * (Optional) The schema of the table. It defaults to the persistence 
-           * unit default schema.
-           */
-          String schema() default ""; 
-
-          /**
-           * (Optional) Used to specify a primary key column that is used as a 
-           * foreign key to join to another table. If the source entity uses a 
-           * composite primary key, a primary key join column must be specified 
-           * for each field of the composite primary key. In a single primary 
-           * key case, a primary key join column may optionally be specified. 
-           * Defaulting will apply otherwise as follows:
-           * name, the same name as the primary key column of the primary table 
-           * of the source entity. referencedColumnName, the same name of 
-           * primary key column of the primary table of the source entity.
-           */
-          PrimaryKeyJoinColumn[] primaryKeyJoinColumns() default {}; 
- 
-          /**
-           * (Optional) Unique constraints that are to be placed on the table. 
-           * These are only used if table generation is in effect.
-           */
-          UniqueConstraint[] uniqueConstraints() default {}; 
-       }
-
-      </xsd:documentation>
-    </xsd:annotation>
-    <xsd:sequence>
-      <xsd:element name="primary-key-join-column" type="orm:primary-key-join-column" minOccurs="0" maxOccurs="unbounded"/>
-      <xsd:element name="unique-constraint" type="orm:unique-constraint" minOccurs="0" maxOccurs="unbounded"/>
-    </xsd:sequence>
-    <xsd:attribute name="name" type="xsd:string"/>
-    <xsd:attribute name="catalog" type="xsd:string"/>
-    <xsd:attribute name="schema" type="xsd:string"/>
-  </xsd:complexType>
-  
-  <!-- **************************************************** -->
-  
-  <xsd:complexType name="basic-collection">
-    <xsd:annotation>
-      <xsd:documentation>
-
-        @Target({METHOD, FIELD})
-        @Retention(RUNTIME)
-        public @interface BasicCollection {
-          /**
-           * (Optional) Defines whether the value of the field or property 
-           * should be lazily loaded or must be eagerly fetched. The EAGER 
-           * strategy is a requirement on the persistence provider runtime that 
-           * the value must be eagerly fetched. The LAZY strategy is a hint to 
-           * the persistence provider runtime. If not specified, defaults to 
-           * LAZY.
-           */
-          FetchType fetch() default LAZY; 
- 
-          /**
-           * (Optional) The name of the value column that holds the direct 
-           * collection data. Defaults to the property or field name.
-           */
-          Column valueColumn() default @Column;
-        }
-
-      </xsd:documentation>
-    </xsd:annotation>
-    <xsd:sequence>
-      <xsd:element name="value-column" type="orm:column" minOccurs="0"/>
-      <xsd:element name="convert" type="xsd:string" minOccurs="0"/>
-      <xsd:element name="collection-table" type="orm:collection-table" minOccurs="0"/>
-      <xsd:element name="private-owned" type="orm:emptyType" minOccurs="0"/>
-      <xsd:element name="join-fetch" type="orm:join-fetch-type" minOccurs="0"/>
-      <xsd:element name="property" type="orm:property" minOccurs="0" maxOccurs="unbounded"/>
-      <xsd:element name="access-methods" type="orm:access-methods" 
-                       minOccurs="0" maxOccurs="1"/>
-    </xsd:sequence>
-    <xsd:attribute name="name" type="xsd:string"/>
-    <xsd:attribute name="fetch" type="orm:fetch-type"/>
-  </xsd:complexType>
-  
-  <!-- **************************************************** -->
-  
-  <xsd:complexType name="basic-map">
-    <xsd:annotation>
-      <xsd:documentation>
-
-        @Target({METHOD, FIELD})
-        @Retention(RUNTIME)
-        public @interface BasicMap {
-          /**
-           * (Optional) Defines whether the value of the field or property 
-           * should be lazily loaded or must be eagerly fetched. The EAGER 
-           * strategy is a requirement on the persistence provider runtime that 
-           * the value must be eagerly fetched. The LAZY strategy is a hint to 
-           * the persistence provider runtime. If not specified, defaults to 
-           * LAZY.
-           */
-          FetchType fetch() default LAZY;
-
-          /**
-           * (Optional) The name of the data column that holds the direct map 
-           * key. If the name on te key column is "", the name will default to:
-           * the name of the property or field; "_key".
-           */
-          Column keyColumn();
-
-          /**
-           * (Optional) Specify the key converter. Default is equivalent to 
-           * specifying @Convert("none"), meaning no converter will be added to 
-           * the direct map key.
-           */
-          Convert keyConverter() default @Convert;
-
-          /**
-           * (Optional) The name of the data column that holds the direct 
-           * collection data. Defaults to the property or field name.
-           */
-          Column valueColumn() default @Column;
-
-          /**
-           * (Optional) Specify the value converter. Default is equivalent to 
-           * specifying @Convert("none"), meaning no converter will be added to 
-           * the value column mapping.
-           */
-          Convert valueConverter() default @Convert;
-        }
-
-      </xsd:documentation>
-    </xsd:annotation>
-    <xsd:sequence>
-      <xsd:element name="key-column" type="orm:column" minOccurs="0"/>
-      <xsd:element name="key-converter" type="xsd:string"/>    
-      <xsd:element name="value-column" type="orm:column" minOccurs="0"/>
-      <xsd:element name="value-converter" type="xsd:string"/>    
-      <xsd:element name="collection-table" type="orm:collection-table" minOccurs="0"/>
-      <xsd:element name="private-owned" type="orm:emptyType" minOccurs="0"/>
-      <xsd:element name="join-fetch" type="orm:join-fetch-type" minOccurs="0"/>
-      <xsd:element name="property" type="orm:property" minOccurs="0" maxOccurs="unbounded"/>
-      <xsd:element name="access-methods" type="orm:access-methods" 
-                       minOccurs="0" maxOccurs="1"/>
-    </xsd:sequence>
-    <xsd:attribute name="name" type="xsd:string"/>
-    <xsd:attribute name="fetch" type="orm:fetch-type"/>
-  </xsd:complexType>
-  
-  <!-- **************************************************** -->
-  
-  <xsd:simpleType name="join-fetch-type">
-    <xsd:annotation>
-      <xsd:documentation>
-
-        public enum JoinFetchType {
-        /**
-         * An inner join is used to fetch the related object.
-         * This does not allow for null/empty values.
-         */
-        INNER,
-
-        /**
-         * An inner join is used to fetch the related object.
-         * This allows for null/empty values.
-         */
-        OUTER,
-      }
-
-      </xsd:documentation>
-    </xsd:annotation>
-    <xsd:restriction base="xsd:token">
-      <xsd:enumeration value="INNER"/>
-      <xsd:enumeration value="OUTER"/>
-    </xsd:restriction>
-  </xsd:simpleType>
-  
-  <!-- **************************************************** -->
-  
-  <xsd:complexType name="optimistic-locking">
-    <xsd:annotation>
-      <xsd:documentation>
-
-        /** 
-         * An optimistic-locking element is used to specify the type of 
-         * optimistic locking EclipseLink should use when updating or deleting 
-         * entities. An optimistic-locking specification is supported on
-         * an entity or mapped-superclass.
-         * 
-         * It is used in conjunction with the optimistic-locking-type.
-         */ 
-        @Target({TYPE})
-        @Retention(RUNTIME)
-        public @interface OptimisticLocking {
-          /**
-           * (Optional) The type of optimistic locking policy to use.
-           */
-          OptimisticLockingType type() default VERSION_COLUMN;
-
-          /**
-           * (Optional) For an optimistic locking policy of type 
-           * SELECTED_COLUMNS, this annotation member becomes a (Required) 
-           * field.
-           */
-          Column[] selectedColumns() default {};
-
-          /**
-           * (Optional) Specify where the optimistic locking policy should 
-           * cascade lock. Currently only supported with VERSION_COLUMN locking.
-           */
-          boolean cascade() default false;
-        }
-
-      </xsd:documentation>
-    </xsd:annotation>
-    <xsd:sequence>
-      <xsd:element name="selected-column" type="orm:column" minOccurs="0" maxOccurs="unbounded"/>    
-    </xsd:sequence>
-    <xsd:attribute name="type" type="orm:optimistic-locking-type"/>
-    <xsd:attribute name="cascade" type="xsd:boolean"/>
-  </xsd:complexType>
-
-  <!-- **************************************************** -->
-  
-  <xsd:simpleType name="optimistic-locking-type">
-    <xsd:annotation>
-      <xsd:documentation>
-
-        /** 
-         * A simple type that is used within an optimistic-locking 
-         * specification to specify the type of optimistic-locking that
-         * EclipseLink should use when updating or deleting entities.
-         */
-        public enum OptimisticLockingType {
-          /**
-           * Using this type of locking policy compares every field in the table
-           * in the WHERE clause when doing an update or a delete. If any field
-           * has been changed, an optimistic locking exception will be thrown.
-           */
-          ALL_COLUMNS,
-
-          /**
-           * Using this type of locking policy compares only the changed fields
-           * in the WHERE clause when doing an update. If any field has been
-           * changed, an optimistic locking exception will be thrown. A delete
-           * will only compare the primary key.
-           */
-          CHANGED_COLUMNS,
-
-          /**
-           * Using this type of locking compares selected fields in the WHERE
-           * clause when doing an update or a delete. If any field has been
-           * changed, an optimistic locking exception will be thrown. Note that
-           * the fields specified must be mapped and not be primary keys.
-           */
-          SELECTED_COLUMNS,
-
-          /**
-           * Using this type of locking policy compares a single version number
-           * in the where clause when doing an update. The version field must be
-           * mapped and not be the primary key.
-           */
-          VERSION_COLUMN
-        }
-
-      </xsd:documentation>
-    </xsd:annotation>
-
-    <xsd:restriction base="xsd:token">
-      <xsd:enumeration value="ALL_COLUMNS"/>
-      <xsd:enumeration value="CHANGED_COLUMNS"/>
-      <xsd:enumeration value="SELECTED_COLUMNS"/>
-      <xsd:enumeration value="VERSION_COLUMN"/>
-    </xsd:restriction>
-  </xsd:simpleType>
-
-  <!-- **************************************************** -->
-    
-  <xsd:complexType name="cache">
-    <xsd:annotation>
-      <xsd:documentation>
-
-        /** 
-         * The Cache annotation is used to set an 
-         * org.eclipse.persistence.descriptors.invalidation.CacheInvalidationPolicy 
-         * which sets objects in EclipseLink's identity maps to be invalid 
-         * following given rules. By default in EclipseLink, objects do not 
-         * expire in the cache. Several different policies are available to 
-         * allow objects to expire.
-         * 
-         * @see org.eclipse.persistence.annotations.CacheType
-         * 
-         * A Cache anotation may be defined on an Entity or MappedSuperclass. 
-         * In the case of inheritance, a Cache annotation should only be defined 
-         * on the root of the inheritance hierarchy.
-         */
-        @Target({TYPE})
-        @Retention(RUNTIME)
-        public @interface Cache {
-          /**
-           * (Optional) The type of cache to use.
-           */ 
-          CacheType type() default SOFT_WEAK;
-
-          /**
-           * (Optional) The size of cache to use.
-           */ 
-          int size() default 100;
-
-	        /**
-	         * (Optional) Cached instances in the shared cache or a client 
-	         * isolated cache.
-	         */ 
-	        boolean shared() default true;
-	
-	        /**
-	         * (Optional) Expire cached instance after a fix period of time (ms). 
-	         * Queries executed against the cache after this will be forced back 
-	         * to the database for a refreshed copy
-	         */ 
-	        int expiry() default -1; // minus one is no expiry.
-	
-	        /**
-	         * (Optional) Expire cached instance a specific time of day. Queries 
-	         * executed against the cache after this will be forced back to the 
-	         * database for a refreshed copy
-	         */ 
-	        TimeOfDay expiryTimeOfDay() default @TimeOfDay(specified=false);
-	
-	        /**
-	         * (Optional) Force all queries that go to the database to always 
-	         * refresh the cache.
-	         */ 
-	        boolean alwaysRefresh() default false;
-	
-	        /**
-	         * (Optional) For all queries that go to the database, refresh the
-	         * cache only if the data received from the database by a query is 
-	         * newer than the data in the cache (as determined by the optimistic 
-	         * locking field)
-	         */ 
-	        boolean refreshOnlyIfNewer() default false;
-	
-	        /**
-	         * (Optional) Setting to true will force all queries to bypass the 
-	         * cache for hits but still resolve against the cache for identity. 
-	         * This forces all queries to hit the database.
-	         */ 
-	        boolean disableHits() default false;
-	
-	        /**
-	         * (Optional) The cache coordination mode.
-	         */ 
-	        CacheCoordinationType coordinationType() default SEND_OBJECT_CHANGES;
-	      }
-	
-	    </xsd:documentation>
-	  </xsd:annotation>
-	  <xsd:choice>
-	    <xsd:element name="expiry" type="xsd:integer" minOccurs="0"/>
-	    <xsd:element name="expiry-time-of-day" type="orm:time-of-day" minOccurs="0"/>
-	  </xsd:choice>
-	  <xsd:attribute name="size" type="xsd:integer"/>
-	  <xsd:attribute name="shared" type="xsd:boolean"/>
-	  <xsd:attribute name="type" type="orm:cache-type"/>
-	  <xsd:attribute name="always-refresh" type="xsd:boolean"/>
-	  <xsd:attribute name="refresh-only-if-newer" type="xsd:boolean"/>
-	  <xsd:attribute name="disable-hits" type="xsd:boolean"/>
-	  <xsd:attribute name="coordination-type" type="orm:cache-coordination-type"/>
-	</xsd:complexType>
-
-  <!-- **************************************************** --> 
-
-	<xsd:simpleType name="cache-type">
-	  <xsd:annotation>
-	    <xsd:documentation>
-	
-	      /** 
-         * The CacheType enum is used with the Cache annotation for a 
-         * persistent class. It defines the type of IdentityMap/Cache used for 
-         * the class. By default the SOFT_WEAK cache type is used.
-         * 
-         * @see org.eclipse.persistence.annotations.Cache 
-         */
-	      public enum CacheType {
-	        /**
-	         * Provides full caching and guaranteed identity. Caches all objects
-	         * and does not remove them. 
-	         * WARNING: This method may be memory intensive when many objects are 
-	         * read.
-	         */
-	        FULL,
-	
-	        /**
-	         * Similar to the FULL identity map except that the map holds the
-	         * objects using weak references. This method allows full garbage
-	         * collection and provides full caching and guaranteed identity.
-	         */
-	        WEAK,
-	
-	        /**
-	         * Similar to the FULL identity map except that the map holds the
-	         * objects using soft references. This method allows full garbage
-	         * collection when memory is low and provides full caching and
-	         * guaranteed identity.
-	         */
-	        SOFT,
-	
-	        /**
-	         * Similar to the WEAK identity map except that it maintains a
-	         * most-frequently-used sub-cache. The size of the sub-cache is
-	         * proportional to the size of the identity map as specified by
-	         * descriptor's setIdentityMapSize() method. The sub-cache
-	         * uses soft references to ensure that these objects are
-	         * garbage-collected only if the system is low on memory.
-	         */
-	        SOFT_WEAK,
-	
-	        /**
-	         * Identical to the soft cache weak (SOFT_WEAK) identity map except 
-	         * that it uses hard references in the sub-cache. Use this identity 
-	         * map if soft references do not behave properly on your platform.
-	         */
-	        HARD_WEAK,
-	
-	        /**
-	         * A cache identity map maintains a fixed number of objects
-	         * specified by the application. Objects are removed from the cache
-	         * on a least-recently-used basis. This method allows object
-	         * identity for the most commonly used objects.
-	         * WARNING: Furnishes caching and identity, but does not guarantee 
-	         * identity.
-	         */
-	        CACHE,
-	
-	        /**
-	         * WARNING: Does not preserve object identity and does not cache 
-	         * objects.
-	         */
-	        NONE
-	      }
-	
-	    </xsd:documentation>
-	  </xsd:annotation>
-	  <xsd:restriction base="xsd:token">
-	    <xsd:enumeration value="FULL"/>
-	    <xsd:enumeration value="WEAK"/>
-	    <xsd:enumeration value="SOFT"/>
-	    <xsd:enumeration value="SOFT_WEAK"/>
-	    <xsd:enumeration value="HARD_WEAK"/>
-	    <xsd:enumeration value="CACHE"/>
-	    <xsd:enumeration value="NONE"/>
-	  </xsd:restriction>
-	</xsd:simpleType>
-
-
-  <!-- **************************************************** -->  
-
-	<xsd:simpleType name="cache-coordination-type">
-	  <xsd:annotation>
-	    <xsd:documentation>
-	
-	      /** 
-         * An enum that is used within the Cache annotation.
-         * 
-         * @see org.eclipse.persistence.annotations.Cache 
-         */ 
-	      public enum CacheCoordinationType {
-	        /**
-	         * Sends a list of changed objects including data about the changes.
-	         * This data is merged into the receiving cache.
-	         */
-	        SEND_OBJECT_CHANGES,
-	
-	         /**
-	          * Sends a list of the identities of the objects that have changed. 
-	          * The receiving cache invalidates the objects (rather than changing 
-	          * any of the data)
-	          */
-	         INVALIDATE_CHANGED_OBJECTS,
-	
-	         /**
-	          * Same as SEND_OBJECT_CHANGES except it also includes any newly
-	          * created objects from the transaction.
-	          */
-	         SEND_NEW_OBJECTS_WITH_CHANGES,
-	
-	         /**
-	          * Does no cache coordination.
-	          */
-	         NONE
-        }
-	
-	    </xsd:documentation>
-	  </xsd:annotation>
-	  <xsd:restriction base="xsd:token">
-	    <xsd:enumeration value="SEND_OBJECT_CHANGES"/>
-	    <xsd:enumeration value="INVALIDATE_CHANGED_OBJECTS"/>
-	    <xsd:enumeration value="SEND_NEW_OBJECTS_WITH_CHANGES"/>
-	    <xsd:enumeration value="NONE"/>
-	  </xsd:restriction>
-	</xsd:simpleType>
-
-  <!-- **************************************************** -->  
-
-	<xsd:complexType name="time-of-day">
-	  <xsd:annotation>
-	    <xsd:documentation>
-	
-	      @Target({})
-	      @Retention(RUNTIME)
-	      public @interface TimeOfDay {
-	        /**
-	         * (Optional) Hour of the day.
-	         */ 
-	        int hour() default 0;
-	
-	        /**
-	         * (Optional) Minute of the day.
-	         */ 
-	        int minute() default 0;
-	
-	        /**
-	         * (Optional) Second of the day.
-	         */ 
-	        int second() default 0;
-	
-	        /**
-	         * (Optional) Millisecond of the day.
-	         */ 
-	        int millisecond() default 0;
-	
-	        /**
-	         * Internal use. Do not modify.
-	         */ 
-	        boolean specified() default true;
-	      }
-	
-	    </xsd:documentation>
-	  </xsd:annotation>
-	  <xsd:attribute name="hour" type="xsd:integer"/>
-	  <xsd:attribute name="minute" type="xsd:integer"/>
-	  <xsd:attribute name="second" type="xsd:integer"/>
-	  <xsd:attribute name="millisecond" type="xsd:integer"/>
-	</xsd:complexType>
-  
-  <!-- **************************************************** -->
-  
-  <xsd:complexType name="change-tracking">
-    <xsd:annotation>
-      <xsd:documentation>
-
-        /** 
-         * The ChangeTracking annotation is used to specify the 
-         * org.eclipse.persistence.descriptors.changetracking.ObjectChangePolicy 
-         * which computes changes sets for EclipseLink's UnitOfWork commit 
-         * process. An ObjectChangePolicy is stored on an Entity's descriptor.
-         *
-         * A ChangeTracking annotation may be specified on an Entity or 
-         * MappedSuperclass.
-         */ 
-        @Target({TYPE})
-        @Retention(RUNTIME)
-        public @interface ChangeTracking {
-          /**
-           * (Optional) The type of change tracking to use.
-           */ 
-          ChangeTrackingType value() default AUTO;
-        }
-
-      </xsd:documentation>
-    </xsd:annotation>
-    <xsd:attribute name="type" type="orm:change-tracking-type" use="required"/>
-  </xsd:complexType>
- 
-  <!-- **************************************************** -->
- 
-  <xsd:simpleType name="change-tracking-type">
-    <xsd:annotation>
-      <xsd:documentation>
-
-        /** 
-         * An enum that is used within the ChangeTracking annotation. 
-         */ 
-        public enum ChangeTrackingType {
-          /**
-           * An ATTRIBUTE change tracking type allows change tracking at the
-           * attribute level of an object. Objects with changed attributes will
-           * be processed in the commit process to include any changes in the 
-           * results of the commit. Unchanged objects will be ignored.
-           */
-          ATTRIBUTE,
-
-          /**
-           * An OBJECT change tracking policy allows an object to calculate for 
-           * itself whether it has changed. Changed objects will be processed in 
-           * the commit process to include any changes in the results of the 
-           * commit. Unchanged objects will be ignored.
-           */
-          OBJECT,
-
-          /**
-           * A DEFERRED change tracking policy defers all change detection to
-           * the UnitOfWork's change detection process. Essentially, the 
-           * calculateChanges() method will run for all objects in a UnitOfWork. 
-           * This is the default ObjectChangePolicy
-           */
-          DEFERRED,
-
-          /**
-           * Will not set any change tracking policy.
-           */
-          AUTO
-        }
-
-      </xsd:documentation>
-	  </xsd:annotation>
-	  <xsd:restriction base="xsd:token">
-	    <xsd:enumeration value="ATTRIBUTE"/>
-	    <xsd:enumeration value="OBJECT"/>
-	    <xsd:enumeration value="DEFERRED"/>
-	    <xsd:enumeration value="AUTO"/>
-	  </xsd:restriction>
-	</xsd:simpleType>
-  
-  <!-- **************************************************** -->
-  
-  <xsd:complexType name="customizer">
-	  <xsd:annotation>
-	    <xsd:documentation>
-	
-      /** 
-       * The Customizer annotation is used to specify a class that implements 
-       * the org.eclipse.persistence.internal.sessions.factories.DescriptorCustomizer 
-       * interface and is to run against an enetity's class descriptor after all 
-       * metadata processing has been completed.
-       *
-       * The Customizer annotation may be defined on an Entity, MappedSuperclass 
-       * or Embeddable class. In the case of inheritance, a Customizer is not 
-       * inherited from its parent classes. 
-       */ 
-	    @Target({TYPE})
-	    @Retention(RUNTIME)
-	    public @interface Customizer {
-	      /**
-	       * (Required) Defines the name of the descriptor customizer class that 
-	       * should be applied for the related entity or embeddable class.
-	       */
-	      Class value(); 
-	    }
-	
-	    </xsd:documentation>
-	  </xsd:annotation>
-	  <xsd:attribute name="class" type="xsd:string" use="required"/>
-	</xsd:complexType>
-  
-  <!-- **************************************************** -->
-  
-  <xsd:complexType name="named-stored-procedure-query">
-    <xsd:annotation>
-      <xsd:documentation>
-
-        /** 
-         * A NamedStoredProcedureQuery annotation allows the definition of 
-         * queries that call stored procedures as named queries.
-         
-         * A NamedStoredProcedureQuery annotation may be defined on an Entity or
-         * MappedSuperclass. 
-         */ 
-	      @Target({TYPE})
-	      @Retention(RUNTIME)
-	      public @interface NamedStoredProcedureQuery {
-	        /**
-	         * (Required) Unique name that references this stored procedure query.
-	         */
-	        String name();
-	
-	        /**
-	         * (Optional) Query hints.
-	         */
-	        QueryHint[] hints() default {};
-	
-	        /**
-	         * (Optional) Refers to the class of the result.
-	         */
-	        Class resultClass() default void.class;
-	
-	        /**
-	         * (Optional) The name of the SQLResultMapping.
-	         */
-	        String resultSetMapping() default "";
-	
-	        /**
-	         * (Required) The name of the stored procedure.
-	         */
-	        String procedureName();
-	
-	        /**
-	         * (Optional) Whether the query should return a result set.
-	         */
-	        boolean returnsResultSet() default true; 
-	
-	        /**
-	         * (Optional) Defines arguments to the stored procedure.
-	         */
-	        StoredProcedureParameter[] parameters() default {};
-	      }
-	
-	    </xsd:documentation>
-	  </xsd:annotation>
-	    <xsd:sequence>
-	      <xsd:element name="hint" type="orm:query-hint" minOccurs="0" 
-	                   maxOccurs="unbounded"/>
-	      <xsd:element name="parameter" type="orm:stored-procedure-parameter" 
-	                   minOccurs="0" maxOccurs="unbounded"/>
-	    </xsd:sequence>
-	  <xsd:attribute name="name" type="xsd:string" use="required"/>
-	  <xsd:attribute name="result-class" type="xsd:string"/>
-	  <xsd:attribute name="result-set-mapping" type="xsd:string"/>
-	  <xsd:attribute name="procedure-name" type="xsd:string" use="required"/>
-	  <xsd:attribute name="returns-result-set" type="xsd:boolean"/>
-	</xsd:complexType>
-  
-  <!-- **************************************************** -->
-  
-  <xsd:complexType name="stored-procedure-parameter">
-	  <xsd:annotation>
-	    <xsd:documentation>
-	
-        /** 
-         * A StoredProcedureParameter annotation is used within a 
-         * NamedStoredProcedureQuery annotation. 
-         */ 
-	      @Target({})
-	      @Retention(RUNTIME)
-	      public @interface StoredProcedureParameter {
-	        /**
-	         * (Optional) The direction of the stored procedure parameter.
-	         */
-	        Direction direction() default IN;
-	
-	        /**
-	         * (Optional) Stored procedure parameter name.
-	         */
-	        String name() default "";
-	
-	        /**
-	         * (Required) The query parameter name.
-	         */
-	        String queryParameter();
-	
-	        /**
-	         * (Optional) The type of Java class desired back from the procedure, 
-	         * this is dependent on the type returned from the procedure.
-	         */
-	        Class type() default void.class;
-	
-	        /**
-	         * (Optional) The JDBC type code, this dependent on the type returned 
-	         * from the procedure.
-	         */
-	        int jdbcType() default -1;
-	
-	        /**
-	         * (Optional) The JDBC type name, this may be required for ARRAY or 
-	         * STRUCT types.
-	         */
-	        String jdbcTypeName() default "";
-	      }
-	
-	    </xsd:documentation>
-	  </xsd:annotation>
-	  <xsd:attribute name="direction" type="orm:direction-type"/>
-	  <xsd:attribute name="name" type="xsd:string"/>
-	  <xsd:attribute name="query-parameter" type="xsd:string" use="required"/>
-	  <xsd:attribute name="type" type="xsd:string"/>
-	  <xsd:attribute name="jdbc-type" type="xsd:integer"/>
-	  <xsd:attribute name="jdbc-type-name" type="xsd:string"/>
-	</xsd:complexType>
-	
-	<!-- **************************************************** -->
-	
-	<xsd:simpleType name="direction-type">
-	  <xsd:annotation>
-	    <xsd:documentation>
-	
-        /** 
-         * An enum that is used within the StoredProcedureParameter annotation.
-         * It is used to specify the direction of the stored procedure 
-         * parameters of a named stored procedure query.
-         */
-	      public enum Direction {
-	        /**
-	         * Input parameter
-	         */
-	        IN,
-	
-	        /**
-	         * Output parameter
-	         */
-	        OUT,
-	
-	        /**
-	         * Input and output parameter
-	         */
-	        IN_OUT,
-	
-	        /**
-	         * Output cursor
-	         */
-	        OUT_CURSOR
-	      }
-	
-	    </xsd:documentation>
-	  </xsd:annotation>
-	  <xsd:restriction base="xsd:token">
-	    <xsd:enumeration value="IN"/>
-	    <xsd:enumeration value="OUT"/>
-	    <xsd:enumeration value="IN_OUT"/>
-	    <xsd:enumeration value="OUT_CURSOR"/>
-	  </xsd:restriction>
-	</xsd:simpleType>
-	
-	<!-- **************************************************** -->
-	
-	<xsd:complexType name="variable-one-to-one">
-    <xsd:annotation>
-      <xsd:documentation>
-				/** 
-				 * Variable one to one mappings are used to represent a pointer 
-				 * references between a java object and an implementer of an interface. 
-				 * This mapping is usually represented by a single pointer (stored in an 
-				 * instance variable) between the source and target objects. In the 
-				 * relational database tables, these mappings are normally implemented 
-				 * using a foreign key and a type code.
-				 * 
-				 * A VariableOneToOne can be specified within an Entity, 
-				 * MappedSuperclass and Embeddable class. 
-				 */ 
-				@Target({METHOD, FIELD}) 
-				@Retention(RUNTIME)
-				public @interface VariableOneToOne {
-				    /**
-				     * (Optional) The interface class that is the target of the 
-				     * association. If not specified it will be inferred from the type 
-				     * of the object being referenced.
-				     */
-				    Class targetInterface() default void.class;
-				    
-				    /**
-				     * (Optional) The operations that must be cascaded to the target of 
-				     * the association.
-				     */
-				    CascadeType[] cascade() default {};
-				    
-				    /**
-				     * (Optional) Defines whether the value of the field or property 
-				     * should be lazily loaded or must be eagerly fetched. The EAGER 
-				     * strategy is a requirement on the persistence provider runtime 
-				     * that the value must be eagerly fetched. The LAZY strategy is a 
-				     * hint to the persistence provider runtime. If not specified, 
-				     * defaults to EAGER.
-				     */
-				    FetchType fetch() default EAGER;
-				    
-				    /**
-				     * (Optional) Whether the association is optional. If set to false 
-				     * then a non-null relationship must always exist.
-				     */
-				    boolean optional() default true;
-				  
-				    /**
-				     * (Optional) The discriminator column will hold the type 
-				     * indicators. If the DiscriminatorColumn is not specified, the name 
-				     * of the discriminator column defaults to "DTYPE" and the 
-				     * discriminator type to STRING.
-				     */
-				    DiscriminatorColumn discriminatorColumn() default @DiscriminatorColumn;
-				    
-            /**
-             * (Optional) The list of discriminator types that can be used with 
-             * this VariableOneToOne. If none are specified then those entities 
-             * within the persistence unit that implement the target interface 
-             * will be added to the list of types. The discriminator type will 
-             * default as follows:
-             *  - If DiscriminatorColumn type is STRING: Entity.name()
-             *  - If DiscriminatorColumn type is CHAR: First letter of the 
-             *    Entity class
-             *  - If DiscriminatorColumn type is INTEGER: The next integer after 
-             *    the highest integer explicitly added.
-             */
-				    DiscriminatorClass[] discriminatorClasses() default {};
-				}
-
-      </xsd:documentation>
-    </xsd:annotation>
-    <xsd:sequence>
-      <xsd:element name="cascade" type="orm:cascade-type" minOccurs="0"/>
-      <xsd:element name="discriminator-column" type="orm:discriminator-column"
-                   minOccurs="0"/>
-      <xsd:element name="discriminator-class" type="orm:discriminator-class"
-                   minOccurs="0" maxOccurs="unbounded"/>
-      <xsd:element name="join-column" type="orm:join-column" minOccurs="0"
-                   maxOccurs="unbounded"/>
-      <xsd:element name="private-owned" type="orm:emptyType" minOccurs="0"/>
-      <xsd:element name="property" type="orm:property" minOccurs="0" maxOccurs="unbounded"/>
-      <xsd:element name="access-methods" type="orm:access-methods" 
-                       minOccurs="0" maxOccurs="1"/>
-    </xsd:sequence>
-    <xsd:attribute name="name" type="xsd:string" use="required"/>
-    <xsd:attribute name="target-interface" type="xsd:string"/>
-    <xsd:attribute name="fetch" type="orm:fetch-type"/>
-    <xsd:attribute name="optional" type="xsd:boolean"/>
-  </xsd:complexType>
-
-  <!-- **************************************************** -->
-
-  <xsd:complexType name="discriminator-class">
-    <xsd:annotation>
-      <xsd:documentation>
-
-        /** 
-         * A DiscriminatorClass is used within a VariableOneToOne annotation.
-         */ 
-        @Target({}) 
-        @Retention(RUNTIME)
-        public @interface DiscriminatorClass {
-          /**
-           * (Required) The discriminator to be stored on the database. 
-           */
-          String discriminator();
-
-          /**
-           * (Required) The class to the instantiated with the given 
-           * discriminator.
-           */
-          Class value();
-        }
-
-      </xsd:documentation>
-    </xsd:annotation>
-    <xsd:attribute name="discriminator" type="xsd:string" use="required"/>
-    <xsd:attribute name="value" type="xsd:string" use="required"/>
-  </xsd:complexType>
-
-  <!-- **************************************************** -->
-  
-	<xsd:simpleType name="existence-type">
-	  <xsd:annotation>
-	    <xsd:documentation>
-	        /**
-           * The ExistenceChecking annotation is used to specify the type of 
-           * checking EclipseLink should use when updating entities.
-           * 
-           * An existence-checking specification is supported on an Entity or 
-           * MappedSuperclass annotation.
-           */
-          public @interface ExistenceChecking {
-            /**
-             * (Optional) Set the existence check for determining
-             * if an insert or update should occur for an object.
-             */
-             ExistenceType value() default CHECK_CACHE;
-          }
-          
-          /**
-           * Assume that if the objects primary key does not include null and 
-           * it is in the cache, then it must exist.
-           */
-          CHECK_CACHE,
-			
-          /**
-           * Perform does exist check on the database.
-           */
-          CHECK_DATABASE,
-			
-          /**
-           * Assume that if the objects primary key does not include null then 
-           * it must exist. This may be used if the application guarantees or 
-           * does not care about the existence check.
-           */
-          ASSUME_EXISTENCE,
-			
-          /**
-           * Assume that the object does not exist. This may be used if the 
-           * application guarantees or does not care about the existence check.  
-           * This will always force an insert to be called.
-           */
-          ASSUME_NON_EXISTENCE
-		
-      </xsd:documentation>
-    </xsd:annotation>	 
-	  <xsd:restriction base="xsd:token">
-	    <xsd:enumeration value="CHECK_CACHE" />
-	    <xsd:enumeration value="CHECK_DATABASE" />
-	    <xsd:enumeration value="ASSUME_EXISTENCE" />
-	    <xsd:enumeration value="ASSUME_NON_EXISTENCE"/>
-	  </xsd:restriction>
-	</xsd:simpleType>	
-	
-</xsd:schema>
diff --git a/jpa/plugins/org.eclipse.jpt.eclipselink.core/schemas/eclipselink_orm_1_1.xsd b/jpa/plugins/org.eclipse.jpt.eclipselink.core/schemas/eclipselink_orm_1_1.xsd
deleted file mode 100644
index 0d3ff17..0000000
--- a/jpa/plugins/org.eclipse.jpt.eclipselink.core/schemas/eclipselink_orm_1_1.xsd
+++ /dev/null
@@ -1,3248 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!-- Java Persistence API object-relational mapping file schema -->
-<xsd:schema targetNamespace="http://www.eclipse.org/eclipselink/xsds/persistence/orm" 
-  xmlns:orm="http://www.eclipse.org/eclipselink/xsds/persistence/orm" 
-  xmlns:xsd="http://www.w3.org/2001/XMLSchema" 
-  elementFormDefault="qualified" 
-  attributeFormDefault="unqualified" 
-  version="1.1">
-
-  <xsd:annotation>
-    <xsd:documentation>
-      @(#)eclipselink_orm_1_1.xsd 1.1  February 4 2009
-    </xsd:documentation>
-  </xsd:annotation>
-  <xsd:annotation>
-     <xsd:documentation><![CDATA[
-
-       This is the XML Schema for the new native EclipseLink XML metadata
-       format used for JPA and native deployment xml files. 
-
-     ]]></xsd:documentation>
-  </xsd:annotation>
-
-  <xsd:complexType name="emptyType"/>
-
-  <xsd:simpleType name="versionType">
-    <xsd:restriction base="xsd:token">
-      <xsd:pattern value="[0-9]+(\.[0-9]+)*"/>
-    </xsd:restriction>
-  </xsd:simpleType>
-
-  <!-- **************************************************** -->
-
-  <xsd:element name="entity-mappings">
-    <xsd:complexType>
-      <xsd:annotation>
-        <xsd:documentation>
-
-        The entity-mappings element is the root element of an mapping
-        file. It contains the following four types of elements:
-
-        1. The persistence-unit-metadata element contains metadata
-        for the entire persistence unit. It is undefined if this element
-        occurs in multiple mapping files within the same persistence unit.
-        
-        2. The package, schema, catalog and access elements apply to all of
-        the entity, mapped-superclass and embeddable elements defined in
-        the same file in which they occur.
-
-        3. The sequence-generator, table-generator, named-query,
-        named-native-query and sql-result-set-mapping elements are global
-        to the persistence unit. It is undefined to have more than one
-        sequence-generator or table-generator of the same name in the same
-        or different mapping files in a persistence unit. It is also 
-        undefined to have more than one named-query or named-native-query
-        of the same name in the same or different mapping files in a 
-        persistence unit.
-
-        4. The entity, mapped-superclass and embeddable elements each define
-        the mapping information for a managed persistent class. The mapping
-        information contained in these elements may be complete or it may
-        be partial.
-
-        </xsd:documentation>
-      </xsd:annotation>
-      <xsd:sequence>
-        <xsd:element name="description" type="xsd:string"
-                     minOccurs="0"/>
-        <xsd:element name="persistence-unit-metadata" 
-                     type="orm:persistence-unit-metadata"
-                     minOccurs="0"/>
-        <xsd:element name="package" type="xsd:string"
-                     minOccurs="0"/>
-        <xsd:element name="schema" type="xsd:string"
-                     minOccurs="0"/>
-        <xsd:element name="catalog" type="xsd:string"
-                     minOccurs="0"/>
-        <xsd:element name="access" type="orm:access-type"
-                     minOccurs="0"/>
-        <xsd:element name="converter" type="orm:converter" 
-                     minOccurs="0" maxOccurs="unbounded"/>
-        <xsd:element name="type-converter" type="orm:type-converter" 
-                     minOccurs="0" maxOccurs="unbounded"/>
-        <xsd:element name="object-type-converter" type="orm:object-type-converter" 
-                     minOccurs="0" maxOccurs="unbounded"/>
-        <xsd:element name="struct-converter" type="orm:struct-converter" 
-                     minOccurs="0" maxOccurs="unbounded"/>
-        <xsd:element name="sequence-generator" type="orm:sequence-generator"
-                     minOccurs="0" maxOccurs="unbounded"/>
-        <xsd:element name="table-generator" type="orm:table-generator" 
-                     minOccurs="0" maxOccurs="unbounded"/>
-        <xsd:element name="named-query" type="orm:named-query" 
-                     minOccurs="0" maxOccurs="unbounded"/>
-        <xsd:element name="named-native-query" type="orm:named-native-query"
-                     minOccurs="0" maxOccurs="unbounded"/>
-        <xsd:element name="named-stored-procedure-query" type="orm:named-stored-procedure-query"
-                     minOccurs="0" maxOccurs="unbounded"/>             
-        <xsd:element name="sql-result-set-mapping" 
-                     type="orm:sql-result-set-mapping" 
-                     minOccurs="0" maxOccurs="unbounded"/>
-        <xsd:element name="mapped-superclass" type="orm:mapped-superclass" 
-                     minOccurs="0" maxOccurs="unbounded"/>
-        <xsd:element name="entity" type="orm:entity" 
-                     minOccurs="0" maxOccurs="unbounded"/>
-        <xsd:element name="embeddable" type="orm:embeddable" 
-                     minOccurs="0" maxOccurs="unbounded"/>
-      </xsd:sequence>
-      <xsd:attribute name="version" type="orm:versionType" 
-                     fixed="1.1" use="required"/>
-    </xsd:complexType>
-  </xsd:element>
-
-  <!-- **************************************************** -->
-
-  <xsd:complexType name="persistence-unit-metadata">
-    <xsd:annotation>
-      <xsd:documentation>
-
-        Metadata that applies to the persistence unit and not just to 
-        the mapping file in which it is contained. 
-
-        If the xml-mapping-metadata-complete element is specified then 
-        the complete set of mapping metadata for the persistence unit 
-        is contained in the XML mapping files for the persistence unit.
-
-      </xsd:documentation>
-    </xsd:annotation>
-    <xsd:sequence>
-      <xsd:element name="xml-mapping-metadata-complete" type="orm:emptyType"
-                   minOccurs="0"/>
-      <xsd:element name="exclude-default-mappings" type="orm:emptyType"
-                   minOccurs="0"/>             
-      <xsd:element name="persistence-unit-defaults" 
-                   type="orm:persistence-unit-defaults"
-                   minOccurs="0"/>
-    </xsd:sequence>
-  </xsd:complexType>
-
-  <!-- **************************************************** -->
-
-  <xsd:complexType name="persistence-unit-defaults">
-    <xsd:annotation>
-      <xsd:documentation>
-
-        These defaults are applied to the persistence unit as a whole 
-        unless they are overridden by local annotation or XML 
-        element settings. 
-        
-        schema - Used as the schema for all tables or secondary tables
-            that apply to the persistence unit
-        catalog - Used as the catalog for all tables or secondary tables
-            that apply to the persistence unit
-        access - Used as the access type for all managed classes in
-            the persistence unit
-        cascade-persist - Adds cascade-persist to the set of cascade options
-            in entity relationships of the persistence unit
-        entity-listeners - List of default entity listeners to be invoked 
-            on each entity in the persistence unit. 
-
-      </xsd:documentation>
-    </xsd:annotation>
-    <xsd:sequence>
-        <xsd:element name="schema" type="xsd:string"
-                     minOccurs="0"/>
-        <xsd:element name="catalog" type="xsd:string"
-                     minOccurs="0"/>
-        <xsd:element name="access" type="orm:access-type"
-                     minOccurs="0"/>
-        <xsd:element name="cascade-persist" type="orm:emptyType" 
-                     minOccurs="0"/>
-        <xsd:element name="entity-listeners" type="orm:entity-listeners"
-                     minOccurs="0"/>
-    </xsd:sequence>
-  </xsd:complexType>
-
-  <!-- **************************************************** -->
-
-  <xsd:complexType name="entity">
-    <xsd:annotation>
-      <xsd:documentation>
-
-        Defines the settings and mappings for an entity. Is allowed to be
-        sparsely populated and used in conjunction with the annotations.
-        Alternatively, the metadata-complete attribute can be used to 
-        indicate that no annotations on the entity class (and its fields
-        or properties) are to be processed. If this is the case then 
-        the defaulting rules for the entity and its subelements will 
-        be recursively applied.
-
-        @Target(TYPE) @Retention(RUNTIME)
-          public @interface Entity {
-          String name() default "";
-        }
-
-      </xsd:documentation>
-    </xsd:annotation>
-    <xsd:sequence>
-      <xsd:element name="description" type="xsd:string" minOccurs="0"/>
-      <xsd:element name="customizer" type="orm:customizer" minOccurs="0"/>
-      <xsd:element name="change-tracking" type="orm:change-tracking" 
-                   minOccurs="0"/>
-      <xsd:element name="table" type="orm:table" minOccurs="0"/>
-      <xsd:element name="secondary-table" type="orm:secondary-table" 
-                   minOccurs="0" maxOccurs="unbounded"/>
-      <xsd:element name="primary-key-join-column" 
-                   type="orm:primary-key-join-column" 
-                   minOccurs="0" maxOccurs="unbounded"/>
-      <xsd:element name="id-class" type="orm:id-class" minOccurs="0"/>
-      <xsd:element name="primary-key" type="orm:primary-key" minOccurs="0"/>
-      <xsd:element name="inheritance" type="orm:inheritance" minOccurs="0"/>
-      <xsd:element name="discriminator-value" type="orm:discriminator-value" 
-                   minOccurs="0"/>
-      <xsd:element name="discriminator-column" 
-                   type="orm:discriminator-column" 
-                   minOccurs="0"/>
-      <xsd:element name="optimistic-locking" type="orm:optimistic-locking"
-                   minOccurs="0"/>
-      <xsd:element name="cache" type="orm:cache" minOccurs="0"/>
-      <xsd:element name="converter" type="orm:converter" 
-                   minOccurs="0" maxOccurs="unbounded"/>
-      <xsd:element name="type-converter" type="orm:type-converter" 
-                   minOccurs="0" maxOccurs="unbounded"/>
-      <xsd:element name="object-type-converter" type="orm:object-type-converter" 
-                   minOccurs="0" maxOccurs="unbounded"/>
-      <xsd:element name="struct-converter" type="orm:struct-converter" 
-                   minOccurs="0" maxOccurs="unbounded"/>
-      <xsd:element name="copy-policy" type="orm:copy-policy" 
-                     minOccurs="0" maxOccurs="1"/>
-      <xsd:element name="instantiation-copy-policy" type="orm:instantiation-copy-policy" 
-                     minOccurs="0" maxOccurs="1"/>
-      <xsd:element name="clone-copy-policy" type="orm:clone-copy-policy" 
-                     minOccurs="0" maxOccurs="1"/>
-      <xsd:element name="sequence-generator" type="orm:sequence-generator" 
-                   minOccurs="0"/>
-      <xsd:element name="table-generator" type="orm:table-generator" 
-                   minOccurs="0"/>
-      <xsd:element name="named-query" type="orm:named-query" 
-                   minOccurs="0" maxOccurs="unbounded"/>
-      <xsd:element name="named-native-query" type="orm:named-native-query" 
-                   minOccurs="0" maxOccurs="unbounded"/>
-      <xsd:element name="named-stored-procedure-query" type="orm:named-stored-procedure-query"
-                   minOccurs="0" maxOccurs="unbounded"/>             
-      <xsd:element name="sql-result-set-mapping" 
-                   type="orm:sql-result-set-mapping" 
-                   minOccurs="0" maxOccurs="unbounded"/>
-      <xsd:element name="exclude-default-listeners" type="orm:emptyType" 
-                   minOccurs="0"/>
-      <xsd:element name="exclude-superclass-listeners" type="orm:emptyType" 
-                   minOccurs="0"/>
-      <xsd:element name="entity-listeners" type="orm:entity-listeners" 
-                   minOccurs="0"/>
-      <xsd:element name="pre-persist" type="orm:pre-persist" minOccurs="0"/>
-      <xsd:element name="post-persist" type="orm:post-persist" 
-                   minOccurs="0"/>
-      <xsd:element name="pre-remove" type="orm:pre-remove" minOccurs="0"/>
-      <xsd:element name="post-remove" type="orm:post-remove" minOccurs="0"/>
-      <xsd:element name="pre-update" type="orm:pre-update" minOccurs="0"/>
-      <xsd:element name="post-update" type="orm:post-update" minOccurs="0"/>
-      <xsd:element name="post-load" type="orm:post-load" minOccurs="0"/>
-      <xsd:element name="property" type="orm:property" minOccurs="0" maxOccurs="unbounded"/>
-      <xsd:element name="attribute-override" type="orm:attribute-override" 
-                   minOccurs="0" maxOccurs="unbounded"/>
-      <xsd:element name="association-override" type="orm:association-override"
-                   minOccurs="0" maxOccurs="unbounded"/>
-      <xsd:element name="attributes" type="orm:attributes" minOccurs="0"/>
-    </xsd:sequence>
-    <xsd:attribute name="name" type="xsd:string"/>
-    <xsd:attribute name="class" type="xsd:string" use="required"/>
-    <xsd:attribute name="access" type="orm:access-type"/>
-    <xsd:attribute name="metadata-complete" type="xsd:boolean"/>
-    <xsd:attribute name="read-only" type="xsd:boolean"/>
-    <xsd:attribute name="existence-checking" type="orm:existence-type"/>
-    <xsd:attribute name="exclude-default-mappings" type="xsd:boolean"/>
-  </xsd:complexType>
-
-  <!-- **************************************************** -->
-
-  <xsd:complexType name="attributes">
-    <xsd:annotation>
-      <xsd:documentation>
-
-        This element contains the entity field or property mappings.
-        It may be sparsely populated to include only a subset of the
-        fields or properties. If metadata-complete for the entity is true
-        then the remainder of the attributes will be defaulted according
-        to the default rules.
-
-      </xsd:documentation>
-    </xsd:annotation>
-    <xsd:sequence>
-      <xsd:choice>
-        <xsd:element name="id" type="orm:id" 
-                     minOccurs="0" maxOccurs="unbounded"/>
-        <xsd:element name="embedded-id" type="orm:embedded-id" 
-                     minOccurs="0"/>
-      </xsd:choice>
-      <xsd:element name="basic" type="orm:basic"
-                   minOccurs="0" maxOccurs="unbounded"/>
-      <xsd:element name="basic-collection" type="orm:basic-collection"
-                   minOccurs="0" maxOccurs="unbounded"/>
-      <xsd:element name="basic-map" type="orm:basic-map"
-                   minOccurs="0" maxOccurs="unbounded"/>
-      <xsd:element name="version" type="orm:version"
-                   minOccurs="0" maxOccurs="unbounded"/>
-      <xsd:element name="many-to-one" type="orm:many-to-one"
-                   minOccurs="0" maxOccurs="unbounded"/>
-      <xsd:element name="one-to-many" type="orm:one-to-many"
-                   minOccurs="0" maxOccurs="unbounded"/>
-      <xsd:element name="one-to-one" type="orm:one-to-one"
-                   minOccurs="0" maxOccurs="unbounded"/>
-      <xsd:element name="variable-one-to-one" type="orm:variable-one-to-one"
-                   minOccurs="0" maxOccurs="unbounded"/>
-      <xsd:element name="many-to-many" type="orm:many-to-many" 
-                   minOccurs="0" maxOccurs="unbounded"/>
-      <xsd:element name="embedded" type="orm:embedded"
-                   minOccurs="0" maxOccurs="unbounded"/>
-      <xsd:element name="transformation" type="orm:transformation"
-                   minOccurs="0" maxOccurs="unbounded"/>
-      <xsd:element name="transient" type="orm:transient"
-                   minOccurs="0" maxOccurs="unbounded"/>
-    </xsd:sequence>
-  </xsd:complexType>
-
-  <!-- **************************************************** -->
-
-  <xsd:simpleType name="access-type">
-    <xsd:annotation>
-      <xsd:documentation>
-
-        This element determines how the persistence provider accesses the
-        state of an entity or embedded object.
-
-      </xsd:documentation>
-    </xsd:annotation>
-    <xsd:restriction base="xsd:token">
-      <xsd:enumeration value="PROPERTY"/>
-      <xsd:enumeration value="FIELD"/>
-    </xsd:restriction>
-  </xsd:simpleType>
-
-  <!-- **************************************************** -->
-
-  <xsd:complexType name="entity-listeners">
-    <xsd:annotation>
-      <xsd:documentation>
-
-        @Target({TYPE}) @Retention(RUNTIME)
-        public @interface EntityListeners {
-          Class[] value();
-        }
-
-      </xsd:documentation>
-    </xsd:annotation>
-    <xsd:sequence>
-      <xsd:element name="entity-listener" type="orm:entity-listener" 
-                   minOccurs="0" maxOccurs="unbounded"/>
-    </xsd:sequence>
-  </xsd:complexType>
-
-  <!-- **************************************************** -->
-
-  <xsd:complexType name="entity-listener">
-    <xsd:annotation>
-      <xsd:documentation>
-
-        Defines an entity listener to be invoked at lifecycle events
-        for the entities that list this listener.
-
-      </xsd:documentation>
-    </xsd:annotation>
-    <xsd:sequence>
-      <xsd:element name="pre-persist" type="orm:pre-persist" minOccurs="0"/>
-      <xsd:element name="post-persist" type="orm:post-persist" 
-                   minOccurs="0"/>
-      <xsd:element name="pre-remove" type="orm:pre-remove" minOccurs="0"/>
-      <xsd:element name="post-remove" type="orm:post-remove" minOccurs="0"/>
-      <xsd:element name="pre-update" type="orm:pre-update" minOccurs="0"/>
-      <xsd:element name="post-update" type="orm:post-update" minOccurs="0"/>
-      <xsd:element name="post-load" type="orm:post-load" minOccurs="0"/>
-    </xsd:sequence>
-    <xsd:attribute name="class" type="xsd:string" use="required"/>
-  </xsd:complexType>
-
-  <!-- **************************************************** -->
-
-  <xsd:complexType name="pre-persist">
-    <xsd:annotation>
-      <xsd:documentation>
-
-        @Target({METHOD}) @Retention(RUNTIME)
-        public @interface PrePersist {}
-
-      </xsd:documentation>
-    </xsd:annotation>
-    <xsd:attribute name="method-name" type="xsd:string" use="required"/>
-  </xsd:complexType>
-
-  <!-- **************************************************** -->
-
-  <xsd:complexType name="post-persist">
-    <xsd:annotation>
-      <xsd:documentation>
-
-        @Target({METHOD}) @Retention(RUNTIME)
-        public @interface PostPersist {}
-
-      </xsd:documentation>
-    </xsd:annotation>
-    <xsd:attribute name="method-name" type="xsd:string" use="required"/>
-  </xsd:complexType>
-
-  <!-- **************************************************** -->
-
-  <xsd:complexType name="pre-remove">
-    <xsd:annotation>
-      <xsd:documentation>
-
-        @Target({METHOD}) @Retention(RUNTIME)
-        public @interface PreRemove {}
-
-      </xsd:documentation>
-    </xsd:annotation>
-    <xsd:attribute name="method-name" type="xsd:string" use="required"/>
-  </xsd:complexType>
-
-  <!-- **************************************************** -->
-
-  <xsd:complexType name="post-remove">
-    <xsd:annotation>
-      <xsd:documentation>
-
-        @Target({METHOD}) @Retention(RUNTIME)
-        public @interface PostRemove {}
-
-      </xsd:documentation>
-    </xsd:annotation>
-    <xsd:attribute name="method-name" type="xsd:string" use="required"/>
-  </xsd:complexType>
-
-  <!-- **************************************************** -->
-
-  <xsd:complexType name="pre-update">
-    <xsd:annotation>
-      <xsd:documentation>
-
-        @Target({METHOD}) @Retention(RUNTIME)
-        public @interface PreUpdate {}
-
-      </xsd:documentation>
-    </xsd:annotation>
-    <xsd:attribute name="method-name" type="xsd:string" use="required"/>
-  </xsd:complexType>
-
-  <!-- **************************************************** -->
-
-  <xsd:complexType name="post-update">
-    <xsd:annotation>
-      <xsd:documentation>
-
-        @Target({METHOD}) @Retention(RUNTIME)
-        public @interface PostUpdate {}
-
-      </xsd:documentation>
-    </xsd:annotation>
-    <xsd:attribute name="method-name" type="xsd:string" use="required"/>
-  </xsd:complexType>
-
-  <!-- **************************************************** -->
-
-  <xsd:complexType name="post-load">
-    <xsd:annotation>
-      <xsd:documentation>
-
-        @Target({METHOD}) @Retention(RUNTIME)
-        public @interface PostLoad {}
-
-      </xsd:documentation>
-    </xsd:annotation>
-    <xsd:attribute name="method-name" type="xsd:string" use="required"/>
-  </xsd:complexType>
-
-  <!-- **************************************************** -->
-  
-  <xsd:complexType name="property">
-    <xsd:annotation>
-      <xsd:documentation>
-        A user defined mapping's property.
-		@Target({METHOD, FIELD, TYPE})
-		@Retention(RUNTIME)
-		public @interface Property {
-			/**
-			* Property name.
-			*/ 
-			String name();
-			
-			/**
-			* String representation of Property value,
-			* converted to an instance of valueType.
-			*/ 
-			String value();
-			
-			/**
-			* Property value type.
-			* The value converted to valueType by ConversionManager.
-			* If specified must be a simple type that could be handled by 
-			* ConversionManager: 
-			* numerical, boolean, temporal.  
-			*/ 
-			Class valueType() default String.class;
-		}
-	</xsd:documentation>
-    </xsd:annotation>
-    <xsd:attribute name="name" type="xsd:string" use="required"/>
-    <xsd:attribute name="value" type="xsd:string" use="required"/>
-    <xsd:attribute name="value-type" type="xsd:string"/>
-    </xsd:complexType>
-    
-    <!-- **************************************************** -->
-
-  <xsd:complexType name="query-hint">
-    <xsd:annotation>
-      <xsd:documentation>
-
-        @Target({}) @Retention(RUNTIME) 
-        public @interface QueryHint {
-          String name();
-          String value();
-        }
-
-      </xsd:documentation>
-    </xsd:annotation>
-    <xsd:attribute name="name" type="xsd:string" use="required"/>
-    <xsd:attribute name="value" type="xsd:string" use="required"/>
-  </xsd:complexType>
-
-  <!-- **************************************************** -->
-
-  <xsd:complexType name="named-query">
-    <xsd:annotation>
-      <xsd:documentation>
-
-        @Target({TYPE}) @Retention(RUNTIME)
-        public @interface NamedQuery {
-          String name();
-          String query();
-          QueryHint[] hints() default {};
-        }
-
-      </xsd:documentation>
-    </xsd:annotation>
-    <xsd:sequence>
-      <xsd:element name="query" type="xsd:string"/>
-      <xsd:element name="hint" type="orm:query-hint" 
-                   minOccurs="0" maxOccurs="unbounded"/>
-    </xsd:sequence>
-    <xsd:attribute name="name" type="xsd:string" use="required"/>
-  </xsd:complexType>
-
-  <!-- **************************************************** -->
-
-  <xsd:complexType name="named-native-query">
-    <xsd:annotation>
-      <xsd:documentation>
-
-        @Target({TYPE}) @Retention(RUNTIME)
-        public @interface NamedNativeQuery {
-          String name();
-          String query();
-          QueryHint[] hints() default {};
-          Class resultClass() default void.class;
-          String resultSetMapping() default ""; //named SqlResultSetMapping
-        }
-
-      </xsd:documentation>
-    </xsd:annotation>
-    <xsd:sequence>
-      <xsd:element name="query" type="xsd:string"/>
-      <xsd:element name="hint" type="orm:query-hint" 
-                   minOccurs="0" maxOccurs="unbounded"/>
-    </xsd:sequence>
-    <xsd:attribute name="name" type="xsd:string" use="required"/>
-    <xsd:attribute name="result-class" type="xsd:string"/>
-    <xsd:attribute name="result-set-mapping" type="xsd:string"/>
-  </xsd:complexType>
-
-  <!-- **************************************************** -->
-
-  <xsd:complexType name="sql-result-set-mapping">
-    <xsd:annotation>
-      <xsd:documentation>
-
-        @Target({TYPE}) @Retention(RUNTIME)
-        public @interface SqlResultSetMapping {
-          String name();
-          EntityResult[] entities() default {};
-          ColumnResult[] columns() default {};
-        }
-
-      </xsd:documentation>
-    </xsd:annotation>
-    <xsd:sequence>
-      <xsd:element name="entity-result" type="orm:entity-result" 
-                   minOccurs="0" maxOccurs="unbounded"/>
-      <xsd:element name="column-result" type="orm:column-result" 
-                   minOccurs="0" maxOccurs="unbounded"/>
-    </xsd:sequence>
-    <xsd:attribute name="name" type="xsd:string" use="required"/>
-  </xsd:complexType>
-
-  <!-- **************************************************** -->
-
-  <xsd:complexType name="entity-result">
-    <xsd:annotation>
-      <xsd:documentation>
-
-        @Target({}) @Retention(RUNTIME)
-        public @interface EntityResult {
-          Class entityClass();
-          FieldResult[] fields() default {};
-          String discriminatorColumn() default "";
-        }
-
-      </xsd:documentation>
-    </xsd:annotation>
-    <xsd:sequence>
-      <xsd:element name="field-result" type="orm:field-result" 
-                   minOccurs="0" maxOccurs="unbounded"/>
-    </xsd:sequence>
-    <xsd:attribute name="entity-class" type="xsd:string" use="required"/>
-    <xsd:attribute name="discriminator-column" type="xsd:string"/>
-  </xsd:complexType>
-
-  <!-- **************************************************** -->
-
-  <xsd:complexType name="field-result">
-    <xsd:annotation>
-      <xsd:documentation>
-
-        @Target({}) @Retention(RUNTIME)
-        public @interface FieldResult {
-          String name();
-          String column();
-        }
-
-      </xsd:documentation>
-    </xsd:annotation>
-    <xsd:attribute name="name" type="xsd:string" use="required"/>
-    <xsd:attribute name="column" type="xsd:string" use="required"/>
-  </xsd:complexType>
-
-  <!-- **************************************************** -->
-
-  <xsd:complexType name="column-result">
-    <xsd:annotation>
-      <xsd:documentation>
-
-        @Target({}) @Retention(RUNTIME)
-        public @interface ColumnResult {
-          String name();
-        }
-
-      </xsd:documentation>
-    </xsd:annotation>
-    <xsd:attribute name="name" type="xsd:string" use="required"/>
-  </xsd:complexType>
-
-  <!-- **************************************************** -->
-
-  <xsd:complexType name="table">
-    <xsd:annotation>
-      <xsd:documentation>
-
-        @Target({TYPE}) @Retention(RUNTIME)
-        public @interface Table {
-          String name() default "";
-          String catalog() default "";
-          String schema() default "";
-          UniqueConstraint[] uniqueConstraints() default {};
-        }
-
-      </xsd:documentation>
-    </xsd:annotation>
-    <xsd:sequence>
-      <xsd:element name="unique-constraint" type="orm:unique-constraint" 
-                   minOccurs="0" maxOccurs="unbounded"/>
-    </xsd:sequence>
-    <xsd:attribute name="name" type="xsd:string"/>
-    <xsd:attribute name="catalog" type="xsd:string"/>
-    <xsd:attribute name="schema" type="xsd:string"/>
-  </xsd:complexType>
-
-  <!-- **************************************************** -->
-
-  <xsd:complexType name="secondary-table">
-    <xsd:annotation>
-      <xsd:documentation>
-
-        @Target({TYPE}) @Retention(RUNTIME)
-        public @interface SecondaryTable {
-          String name();
-          String catalog() default "";
-          String schema() default "";
-          PrimaryKeyJoinColumn[] pkJoinColumns() default {};
-          UniqueConstraint[] uniqueConstraints() default {};
-         }
-
-       </xsd:documentation>
-     </xsd:annotation>
-     <xsd:sequence>
-       <xsd:element name="primary-key-join-column" 
-                    type="orm:primary-key-join-column" 
-                    minOccurs="0" maxOccurs="unbounded"/>
-       <xsd:element name="unique-constraint" type="orm:unique-constraint" 
-                    minOccurs="0" maxOccurs="unbounded"/>
-    </xsd:sequence>
-    <xsd:attribute name="name" type="xsd:string" use="required"/>
-    <xsd:attribute name="catalog" type="xsd:string"/>
-    <xsd:attribute name="schema" type="xsd:string"/>
-  </xsd:complexType>
-
-  <!-- **************************************************** -->
-
-  <xsd:complexType name="unique-constraint">
-    <xsd:annotation>
-      <xsd:documentation>
-
-        @Target({}) @Retention(RUNTIME)
-        public @interface UniqueConstraint {
-          String[] columnNames();
-        }
-
-      </xsd:documentation>
-    </xsd:annotation>
-    <xsd:sequence>
-      <xsd:element name="column-name" type="xsd:string" 
-                   maxOccurs="unbounded"/>
-    </xsd:sequence>
-  </xsd:complexType>
-
-  <!-- **************************************************** -->
-
-  <xsd:complexType name="column">
-    <xsd:annotation>
-      <xsd:documentation>
-
-        @Target({METHOD, FIELD}) @Retention(RUNTIME)
-        public @interface Column {
-          String name() default "";
-          boolean unique() default false;
-          boolean nullable() default true;
-          boolean insertable() default true;
-          boolean updatable() default true;
-          String columnDefinition() default "";
-          String table() default "";
-          int length() default 255;
-          int precision() default 0; // decimal precision
-          int scale() default 0; // decimal scale
-        }
-
-      </xsd:documentation>
-    </xsd:annotation>
-    <xsd:attribute name="name" type="xsd:string"/>
-    <xsd:attribute name="unique" type="xsd:boolean"/>
-    <xsd:attribute name="nullable" type="xsd:boolean"/>
-    <xsd:attribute name="insertable" type="xsd:boolean"/>
-    <xsd:attribute name="updatable" type="xsd:boolean"/>
-    <xsd:attribute name="column-definition" type="xsd:string"/>
-    <xsd:attribute name="table" type="xsd:string"/>
-    <xsd:attribute name="length" type="xsd:int"/>
-    <xsd:attribute name="precision" type="xsd:int"/>
-    <xsd:attribute name="scale" type="xsd:int"/>
-  </xsd:complexType>
-
-  <!-- **************************************************** -->
-
-  <xsd:complexType name="join-column">
-    <xsd:annotation>
-      <xsd:documentation>
-
-        @Target({METHOD, FIELD}) @Retention(RUNTIME)
-        public @interface JoinColumn {
-          String name() default "";
-          String referencedColumnName() default "";
-          boolean unique() default false;
-          boolean nullable() default true;
-          boolean insertable() default true;
-          boolean updatable() default true;
-          String columnDefinition() default "";
-          String table() default "";
-        }
-
-      </xsd:documentation>
-    </xsd:annotation>
-    <xsd:attribute name="name" type="xsd:string"/>
-    <xsd:attribute name="referenced-column-name" type="xsd:string"/>
-    <xsd:attribute name="unique" type="xsd:boolean"/>
-    <xsd:attribute name="nullable" type="xsd:boolean"/>
-    <xsd:attribute name="insertable" type="xsd:boolean"/>
-    <xsd:attribute name="updatable" type="xsd:boolean"/>
-    <xsd:attribute name="column-definition" type="xsd:string"/>
-    <xsd:attribute name="table" type="xsd:string"/>
-  </xsd:complexType>
-
-  <!-- **************************************************** -->
-
-  <xsd:simpleType name="generation-type">
-    <xsd:annotation>
-      <xsd:documentation>
-
-        public enum GenerationType { TABLE, SEQUENCE, IDENTITY, AUTO };
-
-      </xsd:documentation>
-    </xsd:annotation>
-    <xsd:restriction base="xsd:token">
-      <xsd:enumeration value="TABLE"/>
-      <xsd:enumeration value="SEQUENCE"/>
-      <xsd:enumeration value="IDENTITY"/>
-      <xsd:enumeration value="AUTO"/>
-    </xsd:restriction>
-  </xsd:simpleType>
-
-  <!-- **************************************************** -->
-
-  <xsd:complexType name="access-methods">
-    <xsd:annotation>
-      <xsd:documentation>
-
-      </xsd:documentation>
-    </xsd:annotation>
-    <xsd:attribute name="get-method" type="xsd:string" use="required"/>
-    <xsd:attribute name="set-method" type="xsd:string" use="required"/>
-  </xsd:complexType>
-
-  <!-- **************************************************** -->
-
-  <xsd:complexType name="attribute-override">
-    <xsd:annotation>
-      <xsd:documentation>
-
-        @Target({TYPE, METHOD, FIELD}) @Retention(RUNTIME)
-        public @interface AttributeOverride {
-          String name();
-          Column column();
-        }
-
-      </xsd:documentation>
-    </xsd:annotation>
-    <xsd:sequence>
-      <xsd:element name="column" type="orm:column"/>
-    </xsd:sequence>
-    <xsd:attribute name="name" type="xsd:string" use="required"/>
-  </xsd:complexType>
-
-  <!-- **************************************************** -->
-
-  <xsd:complexType name="association-override">
-    <xsd:annotation>
-      <xsd:documentation>
-
-        @Target({TYPE, METHOD, FIELD}) @Retention(RUNTIME)
-        public @interface AssociationOverride {
-          String name();
-          JoinColumn[] joinColumns();
-        }
-
-      </xsd:documentation>
-    </xsd:annotation>
-    <xsd:sequence>
-      <xsd:element name="join-column" type="orm:join-column"
-                   maxOccurs="unbounded"/>
-    </xsd:sequence>
-    <xsd:attribute name="name" type="xsd:string" use="required"/>
-  </xsd:complexType>
-
-  <!-- **************************************************** -->
-
-  <xsd:complexType name="id-class">
-    <xsd:annotation>
-      <xsd:documentation>
-
-        @Target({TYPE}) @Retention(RUNTIME)
-        public @interface IdClass {
-          Class value();
-        }
-
-      </xsd:documentation>
-    </xsd:annotation>
-    <xsd:attribute name="class" type="xsd:string" use="required"/>
-  </xsd:complexType>
-
-  <!-- **************************************************** -->
-
-  <xsd:complexType name="id">
-    <xsd:annotation>
-      <xsd:documentation>
-
-        @Target({METHOD, FIELD}) @Retention(RUNTIME)
-        public @interface Id {}
-
-      </xsd:documentation>
-    </xsd:annotation>
-    <xsd:sequence>
-      <xsd:element name="column" type="orm:column" minOccurs="0"/>
-      <xsd:element name="generated-value" type="orm:generated-value" minOccurs="0"/>
-      <xsd:choice minOccurs="0">
-        <xsd:element name="temporal" type="orm:temporal"/>
-        <xsd:element name="convert" type="xsd:string"/>
-      </xsd:choice>
-      <xsd:choice minOccurs="0">
-        <xsd:element name="converter" type="orm:converter"/>
-        <xsd:element name="type-converter" type="orm:type-converter"/>
-        <xsd:element name="object-type-converter" type="orm:object-type-converter"/>
-        <xsd:element name="struct-converter" type="orm:struct-converter"/>
-      </xsd:choice>
-      <xsd:element name="table-generator" type="orm:table-generator" minOccurs="0"/>
-      <xsd:element name="sequence-generator" type="orm:sequence-generator" minOccurs="0"/>
-      <xsd:element name="property" type="orm:property" minOccurs="0" maxOccurs="unbounded"/>
-      <xsd:element name="access-methods" type="orm:access-methods" minOccurs="0" maxOccurs="1"/>
-    </xsd:sequence>
-    <xsd:attribute name="name" type="xsd:string" use="required"/>
-    <xsd:attribute name="access" type="orm:access-type"/>
-    <xsd:attribute name="mutable" type="xsd:boolean"/>
-  </xsd:complexType>
-
-  <!-- **************************************************** -->
-
-  <xsd:complexType name="embedded-id">
-    <xsd:annotation>
-      <xsd:documentation>
-
-        @Target({METHOD, FIELD}) @Retention(RUNTIME)
-        public @interface EmbeddedId {}
-
-      </xsd:documentation>
-    </xsd:annotation>
-    <xsd:sequence>
-      <xsd:element name="attribute-override" type="orm:attribute-override" 
-                   minOccurs="0" maxOccurs="unbounded"/>
-      <xsd:element name="property" type="orm:property" minOccurs="0" maxOccurs="unbounded"/>
-      <xsd:element name="access-methods" type="orm:access-methods" minOccurs="0" maxOccurs="1"/>
-    </xsd:sequence>
-    <xsd:attribute name="name" type="xsd:string" use="required"/>
-    <xsd:attribute name="access" type="orm:access-type"/>
-  </xsd:complexType>
-
-  <!-- **************************************************** -->
-
-  <xsd:complexType name="transient">
-    <xsd:annotation>
-      <xsd:documentation>
-
-        @Target({METHOD, FIELD}) @Retention(RUNTIME)
-        public @interface Transient {}
-
-      </xsd:documentation>
-    </xsd:annotation>
-    <xsd:attribute name="name" type="xsd:string" use="required"/>
-  </xsd:complexType>
-
-  <!-- **************************************************** -->
-
-  <xsd:complexType name="version">
-    <xsd:annotation>
-      <xsd:documentation>
-
-        @Target({METHOD, FIELD}) @Retention(RUNTIME)
-        public @interface Version {}
-
-      </xsd:documentation>
-    </xsd:annotation>
-    <xsd:sequence>
-      <xsd:element name="column" type="orm:column" minOccurs="0"/>
-      <xsd:choice minOccurs="0">
-        <xsd:element name="temporal" type="orm:temporal" />
-        <xsd:element name="convert" type="xsd:string"/>
-      </xsd:choice>
-      <xsd:choice minOccurs="0">
-        <xsd:element name="converter" type="orm:converter"/>
-        <xsd:element name="type-converter" type="orm:type-converter"/>
-        <xsd:element name="object-type-converter" type="orm:object-type-converter"/>
-        <xsd:element name="struct-converter" type="orm:struct-converter"/>
-      </xsd:choice>
-      <xsd:element name="property" type="orm:property" minOccurs="0" maxOccurs="unbounded"/>
-      <xsd:element name="access-methods" type="orm:access-methods" minOccurs="0" maxOccurs="1"/>
-    </xsd:sequence>
-    <xsd:attribute name="name" type="xsd:string" use="required"/>
-    <xsd:attribute name="access" type="orm:access-type"/>
-    <xsd:attribute name="mutable" type="xsd:boolean"/>
-  </xsd:complexType>
-
-  <!-- **************************************************** -->
-
-  <xsd:complexType name="basic">
-    <xsd:annotation>
-      <xsd:documentation>
-
-        @Target({METHOD, FIELD}) @Retention(RUNTIME)
-        public @interface Basic {
-          FetchType fetch() default EAGER;
-          boolean optional() default true;
-        }
-
-      </xsd:documentation>
-    </xsd:annotation>
-    <xsd:sequence>
-      <xsd:element name="column" type="orm:column" minOccurs="0"/>
-      <xsd:element name="generated-value" type="orm:generated-value" minOccurs="0"/>
-      <xsd:choice minOccurs="0">
-        <xsd:element name="lob" type="orm:lob"/>
-        <xsd:element name="temporal" type="orm:temporal"/>
-        <xsd:element name="enumerated" type="orm:enumerated"/>
-        <xsd:element name="convert" type="xsd:string"/>
-      </xsd:choice>
-      <xsd:choice minOccurs="0">
-        <xsd:element name="converter" type="orm:converter"/>
-        <xsd:element name="type-converter" type="orm:type-converter"/>
-        <xsd:element name="object-type-converter" type="orm:object-type-converter"/>
-        <xsd:element name="struct-converter" type="orm:struct-converter"/>
-      </xsd:choice>
-      <xsd:element name="table-generator" type="orm:table-generator" minOccurs="0"/>
-      <xsd:element name="sequence-generator" type="orm:sequence-generator" minOccurs="0"/>
-      <xsd:element name="property" type="orm:property" minOccurs="0" maxOccurs="unbounded"/>
-      <xsd:element name="access-methods" type="orm:access-methods" minOccurs="0" maxOccurs="1"/>
-    </xsd:sequence>
-    <xsd:attribute name="name" type="xsd:string" use="required"/>
-    <xsd:attribute name="fetch" type="orm:fetch-type"/>
-    <xsd:attribute name="optional" type="xsd:boolean"/>
-    <xsd:attribute name="access" type="orm:access-type"/>
-    <xsd:attribute name="mutable" type="xsd:boolean"/>
-  </xsd:complexType>
-
-  <!-- **************************************************** -->
-
-  <xsd:complexType name="read-transformer">
-    <xsd:annotation>
-      <xsd:documentation>
-
-		/**
-		 * Annotation for org.eclipse.persistence.mappings.TransformationMapping.
-		 * Unless the TransformationMapping is write-only, it should have a 
-		 * ReadTransformer, it defines transformation of database column(s) 
-		 * value(s)into attribute value.
-		 *  
-		 * Also unless it's a read-only mapping, either WriteTransformer 
-		 * annotation or WriteTransformers annotation should be specified. Each 
-		 * WriteTransformer defines transformation of the attribute value to a 
-		 * single database column value (column is specified in the 
-		 * WriteTransformer). 
-		 */ 
-		@Target({METHOD, FIELD})
-		@Retention(RUNTIME)
-		public @interface ReadTransformer {
-		    /**
-		     * User-defined class that must implement the 
-		     * org.eclipse.persistence.mappings.transformers.AttributeTransformer 
-		     * interface. The class will be instantiated, its 
-		     * buildAttributeValue will be used to create the value to be 
-		     * assigned to the attribute.
-		     * Either transformerClass or method must be specified, but not both.
-		     */ 
-		    Class transformerClass() default void.class;
-		
-		    /**
-		     * The mapped class must have a method with this name which returns 
-		     * a value to be assigned to the attribute (not assigns the value to 
-		     * the attribute). Either transformerClass or method must be 
-		     * specified, but not both.
-		     */ 
-		    String method() default "";
-		}
-
-      </xsd:documentation>
-    </xsd:annotation>
-    <xsd:attribute name="transformer-class" type="xsd:string"/>
-    <xsd:attribute name="method" type="xsd:string"/>
-  </xsd:complexType>
-
-  <xsd:complexType name="write-transformer">
-    <xsd:annotation>
-      <xsd:documentation>
-
-		/**
-		 * Annotation for org.eclipse.persistence.mappings.TransformationMapping.
-		 * WriteTransformer defines transformation of the attribute value to a 
-		 * single database column value (column is specified in the 
-		 * WriteTransformer).
-		 *  
-		 * A single WriteTransformer may be specified directly on the method or 
-		 * attribute. Multiple WriteTransformers should be wrapped into 
-		 * WriteTransformers annotation. No WriteTransformers specified for 
-		 * read-only mapping. Unless the TransformationMapping is write-only, it 
-		 * should have a ReadTransformer, it defines transformation of database 
-		 * column(s) value(s)into attribute value.
-		 */ 
-		@Target({METHOD, FIELD})
-		@Retention(RUNTIME)
-		public @interface WriteTransformer {
-		    /**
-		     * User-defined class that must implement the 
-		     * org.eclipse.persistence.mappings.transformers.FieldTransformer 
-		     * interface. The class will be instantiated, its buildFieldValue 
-		     * will be used to create the value to be written into the database 
-		     * column. Note that for ddl generation and returning to be 
-		     * supported the method buildFieldValue in the class should be 
-		     * defined to return the relevant Java type, not just Object as 
-		     * defined in the interface, for instance:
-		     * public Time buildFieldValue(Object instance, String fieldName, Session session).
-		     * Either transformerClass or method must be specified, but not both.
-		     */ 
-		    Class transformerClass() default void.class;
-		
-		    /**
-		     * The mapped class must have a method with this name which returns 
-		     * a value to be written into the database column.
-		     * Note that for ddl generation and returning to be supported the 
-		     * method should be defined to return a particular type, not just 
-		     * Object, for instance:
-		     * public Time getStartTime().
-		     * The method may require a Transient annotation to avoid being 
-		     * mapped as Basic by default.
-		     * Either transformerClass or method must be specified, but not both.
-		     */ 
-		    String method() default "";
-		
-		    /**
-		     * Specify here the column into which the value should be written.
-		     * The only case when this could be skipped is if a single 
-		     * WriteTransformer annotates an attribute - the attribute's name 
-		     * will be used as a column name.
-		     */ 
-		    Column column() default @Column;
-		}
-
-      </xsd:documentation>
-    </xsd:annotation>
-    <xsd:sequence>
-      <xsd:element name="column" type="orm:column"/>
-    </xsd:sequence>
-    <xsd:attribute name="transformer-class" type="xsd:string"/>
-    <xsd:attribute name="method" type="xsd:string"/>
-  </xsd:complexType>
-
-  <xsd:complexType name="transformation">
-    <xsd:annotation>
-      <xsd:documentation>
-
-		/**
-		 * Transformation is an optional annotation for 
-		 * org.eclipse.persistence.mappings.TransformationMapping.
-		 * TransformationMapping allows to map an attribute to one or more 
-		 * database columns.
-		 * 
-		 * Transformation annotation is an optional part of 
-		 * TransformationMapping definition. Unless the TransformationMapping is 
-		 * write-only, it should have a ReadTransformer, it defines 
-		 * transformation of database column(s) value(s)into attribute value.
-		 * Also unless it's a read-only mapping, either WriteTransformer 
-		 * annotation or WriteTransformers annotation should be specified. Each 
-		 * WriteTransformer defines transformation of the attribute value to a 
-		 * single database column value (column is specified in the 
-		 * WriteTransformer). 
-		 */ 
-		@Target({METHOD, FIELD})
-		@Retention(RUNTIME)
-		public @interface Transformation {
-		    /**
-		     * (Optional) Defines whether the value of the field or property 
-		     * should be lazily loaded or must be eagerly fetched. The EAGER 
-		     * strategy is a requirement on the persistence provider runtime 
-		     * that the value must be eagerly fetched. The LAZY strategy is a 
-		     * hint to the persistence provider runtime. If not specified, 
-		     * defaults to EAGER.
-		     */
-		    FetchType fetch() default EAGER;
-		    
-		    /**
-		     * (Optional) The optional element is a hint as to whether the value
-		     *  of the field or property may be null. It is disregarded
-		     *  for primitive types, which are considered non-optional.
-		     */
-		    boolean optional() default true;
-		}
-
-      </xsd:documentation>
-    </xsd:annotation>
-    <xsd:sequence>
-      <xsd:element name="read-transformer" type="orm:read-transformer"/>
-      <xsd:element name="write-transformer" type="orm:write-transformer" minOccurs="0" maxOccurs="unbounded"/>
-      <xsd:element name="access" type="orm:access-type" minOccurs="0"/>
-      <xsd:element name="property" type="orm:property" minOccurs="0" maxOccurs="unbounded"/>
-      <xsd:element name="access-methods" type="orm:access-methods" minOccurs="0" maxOccurs="1"/>
-    </xsd:sequence>
-    <xsd:attribute name="name" type="xsd:string" use="required"/>
-    <xsd:attribute name="fetch" type="orm:fetch-type"/>
-    <xsd:attribute name="optional" type="xsd:boolean"/>
-    <xsd:attribute name="access" type="orm:access-type"/>
-    <xsd:attribute name="mutable" type="xsd:boolean"/>
-  </xsd:complexType>
-
-  <!-- **************************************************** -->
-
-  <xsd:simpleType name="fetch-type">
-    <xsd:annotation>
-      <xsd:documentation>
-
-        public enum FetchType { LAZY, EAGER };
-
-      </xsd:documentation>
-    </xsd:annotation>
-    <xsd:restriction base="xsd:token">
-      <xsd:enumeration value="LAZY"/>
-      <xsd:enumeration value="EAGER"/>
-    </xsd:restriction>
-  </xsd:simpleType>
-
-  <!-- **************************************************** -->
-
-  <xsd:complexType name="lob">
-    <xsd:annotation>
-      <xsd:documentation>
-
-        @Target({METHOD, FIELD}) @Retention(RUNTIME)
-        public @interface Lob {}
-
-      </xsd:documentation>
-    </xsd:annotation>
-  </xsd:complexType>
-
-  <!-- **************************************************** -->
-
-  <xsd:simpleType name="temporal">
-    <xsd:annotation>
-      <xsd:documentation>
-
-        @Target({METHOD, FIELD}) @Retention(RUNTIME)
-        public @interface Temporal {
-          TemporalType value();
-        }
-
-      </xsd:documentation>
-    </xsd:annotation>
-    <xsd:restriction base="orm:temporal-type"/>
-  </xsd:simpleType>
-
-  <!-- **************************************************** -->
-
-  <xsd:simpleType name="temporal-type">
-    <xsd:annotation>
-      <xsd:documentation>
-
-        public enum TemporalType {
-          DATE, // java.sql.Date
-          TIME, // java.sql.Time
-          TIMESTAMP // java.sql.Timestamp
-        }
-
-      </xsd:documentation>
-    </xsd:annotation>
-      <xsd:restriction base="xsd:token">
-        <xsd:enumeration value="DATE"/>
-        <xsd:enumeration value="TIME"/>
-        <xsd:enumeration value="TIMESTAMP"/>
-     </xsd:restriction>
-  </xsd:simpleType>
-
-  <!-- **************************************************** -->
-
-  <xsd:simpleType name="enumerated">
-    <xsd:annotation>
-      <xsd:documentation>
-
-        @Target({METHOD, FIELD}) @Retention(RUNTIME)
-        public @interface Enumerated {
-          EnumType value() default ORDINAL;
-        }
-
-      </xsd:documentation>
-    </xsd:annotation>
-    <xsd:restriction base="orm:enum-type"/>
-  </xsd:simpleType>
-
-  <!-- **************************************************** -->
-
-  <xsd:simpleType name="enum-type">
-    <xsd:annotation>
-      <xsd:documentation>
-
-        public enum EnumType {
-          ORDINAL,
-          STRING
-        }
-
-      </xsd:documentation>
-    </xsd:annotation>
-    <xsd:restriction base="xsd:token">
-      <xsd:enumeration value="ORDINAL"/>
-      <xsd:enumeration value="STRING"/>
-    </xsd:restriction>
-  </xsd:simpleType>
-
-  <!-- **************************************************** -->
-
-  <xsd:complexType name="many-to-one">
-    <xsd:annotation>
-      <xsd:documentation>
-
-        @Target({METHOD, FIELD}) @Retention(RUNTIME)
-        public @interface ManyToOne {
-          Class targetEntity() default void.class;
-          CascadeType[] cascade() default {};
-          FetchType fetch() default EAGER;
-          boolean optional() default true;
-        }
-
-      </xsd:documentation>
-    </xsd:annotation>
-    <xsd:sequence>
-      <xsd:choice>       
-        <xsd:element name="join-column" type="orm:join-column" minOccurs="0" maxOccurs="unbounded"/>
-        <xsd:element name="join-table" type="orm:join-table" minOccurs="0"/>
-      </xsd:choice>       
-      <xsd:element name="cascade" type="orm:cascade-type" minOccurs="0"/>
-      <xsd:element name="join-fetch" type="orm:join-fetch-type" minOccurs="0"/>
-      <xsd:element name="property" type="orm:property" minOccurs="0" maxOccurs="unbounded"/>
-      <xsd:element name="access-methods" type="orm:access-methods" 
-                       minOccurs="0" maxOccurs="1"/>
-    </xsd:sequence>
-    <xsd:attribute name="name" type="xsd:string" use="required"/>
-    <xsd:attribute name="target-entity" type="xsd:string"/>
-    <xsd:attribute name="fetch" type="orm:fetch-type"/>
-    <xsd:attribute name="optional" type="xsd:boolean"/>
-    <xsd:attribute name="access" type="orm:access-type"/>
-  </xsd:complexType>
-
-  <!-- **************************************************** -->
-
-  <xsd:complexType name="cascade-type">
-    <xsd:annotation>
-      <xsd:documentation>
-
-        public enum CascadeType { ALL, PERSIST, MERGE, REMOVE, REFRESH};
-
-      </xsd:documentation>
-    </xsd:annotation>
-    <xsd:sequence>
-      <xsd:element name="cascade-all" type="orm:emptyType"
-                   minOccurs="0"/>
-      <xsd:element name="cascade-persist" type="orm:emptyType"
-                   minOccurs="0"/>
-      <xsd:element name="cascade-merge" type="orm:emptyType"
-                   minOccurs="0"/>
-      <xsd:element name="cascade-remove" type="orm:emptyType"
-                   minOccurs="0"/>
-      <xsd:element name="cascade-refresh" type="orm:emptyType"
-                   minOccurs="0"/>
-    </xsd:sequence>
-  </xsd:complexType>
-
-  <!-- **************************************************** -->
-
-  <xsd:complexType name="one-to-one">
-    <xsd:annotation>
-      <xsd:documentation>
-
-        @Target({METHOD, FIELD}) @Retention(RUNTIME)
-        public @interface OneToOne {
-          Class targetEntity() default void.class;
-          CascadeType[] cascade() default {};
-          FetchType fetch() default EAGER;
-          boolean optional() default true;
-          String mappedBy() default "";
-        }
-
-      </xsd:documentation>
-    </xsd:annotation>
-    <xsd:sequence>
-      <xsd:choice>
-        <xsd:element name="primary-key-join-column" type="orm:primary-key-join-column" minOccurs="0" maxOccurs="unbounded"/>
-        <xsd:element name="join-column" type="orm:join-column" minOccurs="0" maxOccurs="unbounded"/>
-        <xsd:element name="join-table" type="orm:join-table" minOccurs="0"/>
-      </xsd:choice>
-      <xsd:element name="cascade" type="orm:cascade-type" minOccurs="0"/>
-      <xsd:element name="private-owned" type="orm:emptyType" minOccurs="0"/>
-      <xsd:element name="join-fetch" type="orm:join-fetch-type" minOccurs="0"/>
-      <xsd:element name="property" type="orm:property" minOccurs="0" maxOccurs="unbounded"/>
-      <xsd:element name="access-methods" type="orm:access-methods" minOccurs="0" maxOccurs="1"/>
-    </xsd:sequence>
-    <xsd:attribute name="name" type="xsd:string" use="required"/>
-    <xsd:attribute name="target-entity" type="xsd:string"/>
-    <xsd:attribute name="fetch" type="orm:fetch-type"/>
-    <xsd:attribute name="optional" type="xsd:boolean"/>
-    <xsd:attribute name="access" type="orm:access-type"/>
-    <xsd:attribute name="mapped-by" type="xsd:string"/>
-  </xsd:complexType>
-
-  <!-- **************************************************** -->
-
-  <xsd:complexType name="one-to-many">
-    <xsd:annotation>
-      <xsd:documentation>
-
-        @Target({METHOD, FIELD}) @Retention(RUNTIME)
-        public @interface OneToMany {
-          Class targetEntity() default void.class;
-          CascadeType[] cascade() default {};
-          FetchType fetch() default LAZY;
-          String mappedBy() default "";
-        }
-
-      </xsd:documentation>
-    </xsd:annotation>
-    <xsd:sequence>
-      <xsd:element name="order-by" type="orm:order-by" minOccurs="0"/>
-      <xsd:element name="map-key" type="orm:map-key" minOccurs="0"/>
-      <xsd:choice>       
-        <xsd:element name="join-table" type="orm:join-table" minOccurs="0"/>
-        <xsd:element name="join-column" type="orm:join-column" minOccurs="0" maxOccurs="unbounded"/>
-      </xsd:choice>       
-      <xsd:element name="cascade" type="orm:cascade-type" minOccurs="0"/>
-      <xsd:element name="private-owned" type="orm:emptyType" minOccurs="0"/>
-      <xsd:element name="join-fetch" type="orm:join-fetch-type" minOccurs="0"/>
-      <xsd:element name="property" type="orm:property" minOccurs="0" maxOccurs="unbounded"/>
-      <xsd:element name="access-methods" type="orm:access-methods" 
-                       minOccurs="0" maxOccurs="1"/>
-    </xsd:sequence>
-    <xsd:attribute name="name" type="xsd:string" use="required"/>
-    <xsd:attribute name="target-entity" type="xsd:string"/>
-    <xsd:attribute name="fetch" type="orm:fetch-type"/>
-    <xsd:attribute name="access" type="orm:access-type"/>
-    <xsd:attribute name="mapped-by" type="xsd:string"/>
-  </xsd:complexType>
-
-  <!-- **************************************************** -->
-
-  <xsd:complexType name="join-table">
-    <xsd:annotation>
-      <xsd:documentation>
-
-        @Target({METHOD, FIELD})
-        public @interface JoinTable {
-          String name() default "";
-          String catalog() default "";
-          String schema() default "";
-          JoinColumn[] joinColumns() default {};
-          JoinColumn[] inverseJoinColumns() default {};
-          UniqueConstraint[] uniqueConstraints() default {};
-        }
-
-      </xsd:documentation>
-    </xsd:annotation>
-    <xsd:sequence>
-      <xsd:element name="join-column" type="orm:join-column" 
-                   minOccurs="0" maxOccurs="unbounded"/>
-      <xsd:element name="inverse-join-column" type="orm:join-column" 
-                   minOccurs="0" maxOccurs="unbounded"/>
-      <xsd:element name="unique-constraint" type="orm:unique-constraint" 
-                   minOccurs="0" maxOccurs="unbounded"/>
-    </xsd:sequence>
-    <xsd:attribute name="name" type="xsd:string"/>
-    <xsd:attribute name="catalog" type="xsd:string"/>
-    <xsd:attribute name="schema" type="xsd:string"/>
-  </xsd:complexType>
-
-  <!-- **************************************************** -->
-
-  <xsd:complexType name="many-to-many">
-    <xsd:annotation>
-      <xsd:documentation>
-
-        @Target({METHOD, FIELD}) @Retention(RUNTIME)
-        public @interface ManyToMany {
-          Class targetEntity() default void.class;
-          CascadeType[] cascade() default {};
-          FetchType fetch() default LAZY;
-          String mappedBy() default "";
-        }
-
-      </xsd:documentation>
-    </xsd:annotation>
-    <xsd:sequence>
-      <xsd:element name="order-by" type="orm:order-by" minOccurs="0"/>
-      <xsd:element name="map-key" type="orm:map-key" minOccurs="0"/>
-      <xsd:element name="join-table" type="orm:join-table" minOccurs="0"/>
-      <xsd:element name="cascade" type="orm:cascade-type" minOccurs="0"/>
-      <xsd:element name="join-fetch" type="orm:join-fetch-type" minOccurs="0"/>
-      <xsd:element name="property" type="orm:property" minOccurs="0" maxOccurs="unbounded"/>
-      <xsd:element name="access-methods" type="orm:access-methods" minOccurs="0" maxOccurs="1"/>
-    </xsd:sequence>
-    <xsd:attribute name="name" type="xsd:string" use="required"/>
-    <xsd:attribute name="target-entity" type="xsd:string"/>
-    <xsd:attribute name="fetch" type="orm:fetch-type"/>
-    <xsd:attribute name="access" type="orm:access-type"/>
-    <xsd:attribute name="mapped-by" type="xsd:string"/>
-  </xsd:complexType>
-
-  <!-- **************************************************** -->
-
-  <xsd:complexType name="generated-value">
-    <xsd:annotation>
-      <xsd:documentation>
-
-        @Target({METHOD, FIELD}) @Retention(RUNTIME)
-        public @interface GeneratedValue {
-          GenerationType strategy() default AUTO;
-          String generator() default "";
-        }
-
-      </xsd:documentation>
-    </xsd:annotation>
-    <xsd:attribute name="strategy" type="orm:generation-type"/>
-    <xsd:attribute name="generator" type="xsd:string"/>
-  </xsd:complexType>
-
-  <!-- **************************************************** -->
-
-  <xsd:complexType name="map-key">
-    <xsd:annotation>
-      <xsd:documentation>
-
-        @Target({METHOD, FIELD}) @Retention(RUNTIME)
-        public @interface MapKey {
-          String name() default "";
-        }
-
-      </xsd:documentation>
-    </xsd:annotation>
-    <xsd:attribute name="name" type="xsd:string"/>
-  </xsd:complexType>
-
-  <!-- **************************************************** -->
-
-  <xsd:simpleType name="order-by">
-    <xsd:annotation>
-      <xsd:documentation>
-
-        @Target({METHOD, FIELD}) @Retention(RUNTIME)
-        public @interface OrderBy {
-          String value() default "";
-        }
-
-      </xsd:documentation>
-    </xsd:annotation>
-    <xsd:restriction base="xsd:string"/>
-  </xsd:simpleType>
-
-  <!-- **************************************************** -->
-
-  <xsd:complexType name="inheritance">
-    <xsd:annotation>
-      <xsd:documentation>
-
-        @Target({TYPE}) @Retention(RUNTIME)
-        public @interface Inheritance {
-          InheritanceType strategy() default SINGLE_TABLE;
-        }
-
-      </xsd:documentation>
-    </xsd:annotation>
-    <xsd:attribute name="strategy" type="orm:inheritance-type"/>
-  </xsd:complexType>
-
-  <!-- **************************************************** -->
-
-  <xsd:simpleType name="inheritance-type">
-    <xsd:annotation>
-      <xsd:documentation>
-
-        public enum InheritanceType
-          { SINGLE_TABLE, JOINED, TABLE_PER_CLASS};
-
-      </xsd:documentation>
-    </xsd:annotation>
-    <xsd:restriction base="xsd:token">
-      <xsd:enumeration value="SINGLE_TABLE"/>
-      <xsd:enumeration value="JOINED"/>
-      <xsd:enumeration value="TABLE_PER_CLASS"/>
-    </xsd:restriction>
-  </xsd:simpleType>
-
-  <!-- **************************************************** -->
-
-  <xsd:simpleType name="discriminator-value">
-    <xsd:annotation>
-      <xsd:documentation>
-
-        @Target({TYPE}) @Retention(RUNTIME)
-        public @interface DiscriminatorValue {
-          String value();
-        }
-
-      </xsd:documentation>
-    </xsd:annotation>
-    <xsd:restriction base="xsd:string"/>
-  </xsd:simpleType>
-
-  <!-- **************************************************** -->
-
-  <xsd:simpleType name="discriminator-type">
-    <xsd:annotation>
-      <xsd:documentation>
-
-        public enum DiscriminatorType { STRING, CHAR, INTEGER };
-
-      </xsd:documentation>
-    </xsd:annotation>
-    <xsd:restriction base="xsd:token">
-      <xsd:enumeration value="STRING"/>
-      <xsd:enumeration value="CHAR"/>
-      <xsd:enumeration value="INTEGER"/>
-    </xsd:restriction>
-  </xsd:simpleType>
-
-  <!-- **************************************************** -->
-
-  <xsd:complexType name="primary-key-join-column">
-    <xsd:annotation>
-      <xsd:documentation>
-
-        @Target({TYPE, METHOD, FIELD}) @Retention(RUNTIME)
-        public @interface PrimaryKeyJoinColumn {
-          String name() default "";
-          String referencedColumnName() default "";
-          String columnDefinition() default "";
-        }
-
-      </xsd:documentation>
-    </xsd:annotation>
-    <xsd:attribute name="name" type="xsd:string"/>
-    <xsd:attribute name="referenced-column-name" type="xsd:string"/>
-    <xsd:attribute name="column-definition" type="xsd:string"/>
-  </xsd:complexType>
-
-  <!-- **************************************************** -->
-
-  <xsd:complexType name="discriminator-column">
-    <xsd:annotation>
-      <xsd:documentation>
-
-        @Target({TYPE}) @Retention(RUNTIME)
-        public @interface DiscriminatorColumn {
-          String name() default "DTYPE";
-          DiscriminatorType discriminatorType() default STRING;
-          String columnDefinition() default "";
-          int length() default 31;
-        }
-
-      </xsd:documentation>
-    </xsd:annotation>
-    <xsd:attribute name="name" type="xsd:string"/>
-    <xsd:attribute name="discriminator-type" type="orm:discriminator-type"/>
-    <xsd:attribute name="column-definition" type="xsd:string"/>
-    <xsd:attribute name="length" type="xsd:int"/>
-  </xsd:complexType>
-
-  <!-- **************************************************** -->
-
-  <xsd:complexType name="embeddable">
-    <xsd:annotation>
-      <xsd:documentation>
-
-        Defines the settings and mappings for embeddable objects. Is 
-        allowed to be sparsely populated and used in conjunction with 
-        the annotations. Alternatively, the metadata-complete attribute 
-        can be used to indicate that no annotations are to be processed 
-        in the class. If this is the case then the defaulting rules will 
-        be recursively applied.
-
-        @Target({TYPE}) @Retention(RUNTIME)
-        public @interface Embeddable {}
-
-      </xsd:documentation>
-    </xsd:annotation>
-    <xsd:sequence>
-      <xsd:element name="description" type="xsd:string" minOccurs="0"/>
-      <xsd:element name="customizer" type="orm:customizer" minOccurs="0"/>
-      <xsd:element name="change-tracking" type="orm:change-tracking" 
-                   minOccurs="0"/>
-      <xsd:element name="converter" type="orm:converter" minOccurs="0" 
-                   maxOccurs="unbounded"/>
-      <xsd:element name="type-converter" type="orm:type-converter" minOccurs="0" 
-                   maxOccurs="unbounded"/>
-      <xsd:element name="object-type-converter" type="orm:object-type-converter" 
-                   minOccurs="0" maxOccurs="unbounded"/>
-      <xsd:element name="struct-converter" type="orm:struct-converter" 
-                   minOccurs="0" maxOccurs="unbounded"/>
-      <xsd:element name="property" type="orm:property" minOccurs="0" maxOccurs="unbounded"/>
-      <xsd:element name="attributes" type="orm:attributes" 
-                   minOccurs="0"/>
-      <xsd:element name="copy-policy" type="orm:copy-policy" 
-                     minOccurs="0" maxOccurs="1"/>
-      <xsd:element name="instantiation-copy-policy" type="orm:instantiation-copy-policy" 
-                     minOccurs="0" maxOccurs="1"/>
-      <xsd:element name="clone-copy-policy" type="orm:clone-copy-policy" 
-                     minOccurs="0" maxOccurs="1"/>
-    </xsd:sequence>
-    <xsd:attribute name="class" type="xsd:string" use="required"/>
-    <xsd:attribute name="access" type="orm:access-type"/>
-    <xsd:attribute name="metadata-complete" type="xsd:boolean"/>
-    <xsd:attribute name="exclude-default-mappings" type="xsd:boolean"/>
-  </xsd:complexType>
-
-  <!-- **************************************************** -->
-
-  <xsd:complexType name="embedded">
-    <xsd:annotation>
-      <xsd:documentation>
-
-        @Target({METHOD, FIELD}) @Retention(RUNTIME)
-        public @interface Embedded {}
-
-      </xsd:documentation>
-    </xsd:annotation>
-    <xsd:sequence>
-      <xsd:element name="attribute-override" type="orm:attribute-override" minOccurs="0" maxOccurs="unbounded"/>
-      <xsd:element name="property" type="orm:property" minOccurs="0" maxOccurs="unbounded"/>
-      <xsd:element name="access-methods" type="orm:access-methods" minOccurs="0" maxOccurs="1"/>
-    </xsd:sequence>
-    <xsd:attribute name="name" type="xsd:string" use="required"/>
-    <xsd:attribute name="access" type="orm:access-type"/>
-  </xsd:complexType>
-
-  <!-- **************************************************** -->
-
-  <xsd:complexType name="mapped-superclass">
-    <xsd:annotation>
-      <xsd:documentation>
-
-        Defines the settings and mappings for a mapped superclass. Is 
-        allowed to be sparsely populated and used in conjunction with 
-        the annotations. Alternatively, the metadata-complete attribute 
-        can be used to indicate that no annotations are to be processed 
-        If this is the case then the defaulting rules will be recursively 
-        applied.
-
-        @Target(TYPE) @Retention(RUNTIME)
-        public @interface MappedSuperclass{}
-
-      </xsd:documentation>
-    </xsd:annotation>
-    <xsd:sequence>
-      <xsd:element name="description" type="xsd:string" minOccurs="0"/>
-      <xsd:element name="customizer" type="orm:customizer" minOccurs="0"/>
-      <xsd:element name="change-tracking" type="orm:change-tracking" 
-                   minOccurs="0"/>
-      <xsd:element name="id-class" type="orm:id-class" minOccurs="0"/>
-      <xsd:element name="primary-key" type="orm:primary-key" minOccurs="0"/>
-      <xsd:element name="optimistic-locking" type="orm:optimistic-locking"
-                   minOccurs="0"/>
-      <xsd:element name="cache" type="orm:cache" minOccurs="0"/>
-      <xsd:element name="converter" type="orm:converter" 
-                   minOccurs="0" maxOccurs="unbounded"/>
-      <xsd:element name="type-converter" type="orm:type-converter" 
-                   minOccurs="0" maxOccurs="unbounded"/>
-      <xsd:element name="object-type-converter" type="orm:object-type-converter" 
-                   minOccurs="0" maxOccurs="unbounded"/>
-      <xsd:element name="struct-converter" type="orm:struct-converter" 
-                   minOccurs="0" maxOccurs="unbounded"/>
-      <xsd:element name="copy-policy" type="orm:copy-policy" 
-                     minOccurs="0" maxOccurs="1"/>
-      <xsd:element name="instantiation-copy-policy" type="orm:instantiation-copy-policy" 
-                     minOccurs="0" maxOccurs="1"/>
-      <xsd:element name="clone-copy-policy" type="orm:clone-copy-policy" 
-                     minOccurs="0" maxOccurs="1"/>
-      <xsd:element name="exclude-default-listeners" type="orm:emptyType" 
-                   minOccurs="0"/>
-      <xsd:element name="exclude-superclass-listeners" type="orm:emptyType" 
-                   minOccurs="0"/>
-      <xsd:element name="entity-listeners" type="orm:entity-listeners" 
-                   minOccurs="0"/>
-      <xsd:element name="pre-persist" type="orm:pre-persist" minOccurs="0"/>
-      <xsd:element name="post-persist" type="orm:post-persist" 
-                   minOccurs="0"/>
-      <xsd:element name="pre-remove" type="orm:pre-remove" minOccurs="0"/>
-      <xsd:element name="post-remove" type="orm:post-remove" minOccurs="0"/>
-      <xsd:element name="pre-update" type="orm:pre-update" minOccurs="0"/>
-      <xsd:element name="post-update" type="orm:post-update" minOccurs="0"/>
-      <xsd:element name="post-load" type="orm:post-load" minOccurs="0"/>
-      <xsd:element name="property" type="orm:property" minOccurs="0" maxOccurs="unbounded"/>
-      <xsd:element name="attributes" type="orm:attributes" minOccurs="0"/>
-    </xsd:sequence>
-    <xsd:attribute name="class" type="xsd:string" use="required"/>
-    <xsd:attribute name="access" type="orm:access-type"/>
-    <xsd:attribute name="metadata-complete" type="xsd:boolean"/>
-    <xsd:attribute name="read-only" type="xsd:boolean"/>
-    <xsd:attribute name="existence-checking" type="orm:existence-type"/>
-    <xsd:attribute name="exclude-default-mappings" type="xsd:boolean"/>
-  </xsd:complexType>
-
-  <!-- **************************************************** -->
-
-  <xsd:complexType name="sequence-generator">
-    <xsd:annotation>
-      <xsd:documentation>
-
-        @Target({TYPE, METHOD, FIELD}) @Retention(RUNTIME)
-        public @interface SequenceGenerator {
-          String name();
-          String sequenceName() default "";
-          int initialValue() default 1;
-          int allocationSize() default 50;
-        }
-
-      </xsd:documentation>
-    </xsd:annotation>
-    <xsd:attribute name="name" type="xsd:string" use="required"/>
-    <xsd:attribute name="sequence-name" type="xsd:string"/>
-    <xsd:attribute name="initial-value" type="xsd:int"/>
-    <xsd:attribute name="allocation-size" type="xsd:int"/>
-  </xsd:complexType>
-
-  <!-- **************************************************** -->
-
-  <xsd:complexType name="table-generator">
-    <xsd:annotation>
-      <xsd:documentation>
-
-        @Target({TYPE, METHOD, FIELD}) @Retention(RUNTIME)
-        public @interface TableGenerator {
-          String name();
-          String table() default "";
-          String catalog() default "";
-          String schema() default "";
-          String pkColumnName() default "";
-          String valueColumnName() default "";
-          String pkColumnValue() default "";
-          int initialValue() default 0;
-          int allocationSize() default 50;
-          UniqueConstraint[] uniqueConstraints() default {};
-        }
-
-      </xsd:documentation>
-    </xsd:annotation>
-    <xsd:sequence>
-      <xsd:element name="unique-constraint" type="orm:unique-constraint" 
-                   minOccurs="0" maxOccurs="unbounded"/>
-    </xsd:sequence>
-    <xsd:attribute name="name" type="xsd:string" use="required"/>
-    <xsd:attribute name="table" type="xsd:string"/>
-    <xsd:attribute name="catalog" type="xsd:string"/>
-    <xsd:attribute name="schema" type="xsd:string"/>
-    <xsd:attribute name="pk-column-name" type="xsd:string"/>
-    <xsd:attribute name="value-column-name" type="xsd:string"/>
-    <xsd:attribute name="pk-column-value" type="xsd:string"/>
-    <xsd:attribute name="initial-value" type="xsd:int"/>
-    <xsd:attribute name="allocation-size" type="xsd:int"/>
-  </xsd:complexType>
-  
-  <!-- **************************************************** -->
-  
-  <xsd:complexType name="converter">
-    <xsd:annotation>
-      <xsd:documentation>
-
-        @Target({TYPE, METHOD, FIELD})
-        @Retention(RUNTIME)
-        public @interface Converter {
-          /**
-           * (Required) Name this converter. The name should be unique across 
-           * the whole persistence unit.
-           */
-          String name();
-
-          /**
-           * (Required) The converter class to be used. This class must implement
-           * the org.eclipse.persistence.mappings.converters.Converter interface.
-           */
-          Class converterClass(); 
-        }
-
-      </xsd:documentation>
-    </xsd:annotation>
-    <xsd:attribute name="name" type="xsd:string" use="required"/>
-    <xsd:attribute name="class" type="xsd:string" use="required"/>
-  </xsd:complexType>
-  
-  <!-- **************************************************** -->
-  
-  <xsd:complexType name="type-converter">
-    <xsd:annotation>
-      <xsd:documentation>
-
-        @Target({TYPE, METHOD, FIELD})
-        @Retention(RUNTIME)
-        public @interface TypeConverter {
-          /**
-           * (Required) Name this converter. The name should be unique
-           * across the whole persistence unit.
-           */
-           String name();
-
-          /**
-           * (Optional) Specify the type stored on the database. The
-           * default is inferred from the type of the persistence field 
-           * or property.
-           */
-          Class dataType() default void.class;
-
-          /**
-           * (Optional) Specify the type stored on the entity. The
-           * default is inferred from the type of the persistent field 
-           * or property.
-           */
-          Class objectType() default void.class;
-        }
-
-      </xsd:documentation>
-    </xsd:annotation>
-    <xsd:attribute name="name" type="xsd:string" use="required"/>
-    <xsd:attribute name="data-type" type="xsd:string"/>
-    <xsd:attribute name="object-type" type="xsd:string"/>
-  </xsd:complexType>
-  
-  <!-- **************************************************** -->
-  
-  <xsd:complexType name="object-type-converter">
-    <xsd:annotation>
-      <xsd:documentation>
-
-        @Target({TYPE, METHOD, FIELD})
-        @Retention(RUNTIME)
-        public @interface ObjectTypeConverter {
-          /**
-           * (Required) Name this converter. The name should be unique
-           * across the whole persistence unit.
-           */
-          String name();
-
-          /**
-           * (Optional) Specify the type stored on the database. The
-           * default is inferred from the type of the persistence
-           * field or property.
-           */
-          Class dataType() default void.class;
-
-          /**
-           * (Optional) Specify the type stored on the entity. The
-           * default is inferred from the type of the persistent 
-           * field or property.
-           */
-          Class objectType() default void.class;
-
-          /**
-           * (Required) Specify the conversion values to be used 
-           * with the object converter.
-           */
-          ConversionValue[] conversionValues();
-
-           /**
-            * (Optional) Specify a default object value. Used for 
-            * legacy data if the data value is missing.
-            */
-           String defaultObjectValue() default "";
-         }
-
-      </xsd:documentation>
-    </xsd:annotation>
-    <xsd:sequence>
-      <xsd:element name="conversion-value" type="orm:conversion-value" minOccurs="1" maxOccurs="unbounded"/>
-      <xsd:element name="default-object-value" type="xsd:string" minOccurs="0"/>
-    </xsd:sequence>
-    <xsd:attribute name="name" type="xsd:string" use="required"/>
-    <xsd:attribute name="data-type" type="xsd:string"/>
-    <xsd:attribute name="object-type" type="xsd:string"/>
-  </xsd:complexType>
-  
-  <!-- **************************************************** -->
-  
-  <xsd:complexType name="conversion-value">
-    <xsd:annotation>
-      <xsd:documentation>
-
-        @Target({})
-        @Retention(RUNTIME)
-        public @interface ConversionValue {
-          /**
-           * (Required) Specify the database value.
-           */
-          String dataValue();
-
-          /**
-           * (Required) Specify the object value.
-           */
-          String objectValue();
-        }
-
-      </xsd:documentation>
-    </xsd:annotation>
-    <xsd:attribute name="data-value" type="xsd:string" use="required"/>
-    <xsd:attribute name="object-value" type="xsd:string" use="required"/>
-  </xsd:complexType>
-  
-  <!-- **************************************************** -->
-  
-  <xsd:complexType name="struct-converter">
-    <xsd:annotation>
-      <xsd:documentation>
-
-        @Target({TYPE, METHOD, FIELD})
-        @Retention(RUNTIME)
-        public @interface StructConverter {
-          /**
-           * (Required) Name this converter. The name should be unique across 
-           * the whole persistence unit.
-           */
-          String name();
-
-          /**
-           * (Required) The converter class to be used. This class must 
-           * implement the EclipseLink interface 
-           * org.eclipse.persistence.mappings.converters.Converter
-           */
-          String converter(); 
-        }
-
-      </xsd:documentation>
-    </xsd:annotation>
-    <xsd:attribute name="name" type="xsd:string" use="required"/>
-    <xsd:attribute name="converter" type="xsd:string" use="required"/>
-  </xsd:complexType>
-
-  <!-- **************************************************** -->
-  
-  <xsd:complexType name="copy-policy">
-    <xsd:annotation>
-      <xsd:documentation>
-        /**
-         * A CopyPolicy is used to set a 
-         * org.eclipse.persistence.descriptors.copying.CopyPolicy on an Entity.
-         * It is required that a class that implements 
-         * org.eclipse.persistence.descriptors.copying.CopyPolicy be specified 
-         * as the argument.
-         * 
-         * A CopyPolicy should be specified on an Entity, MappedSuperclass or 
-         * Embeddable.
-         * 
-         * For instance:
-         * @Entity
-         * @CopyPolicy("example.MyCopyPolicy")
-         */
-        public @interface CopyPolicy {
-
-        /*
-        * (Required)
-        * This defines the class of the copy policy. It must specify a class 
-        * that implements org.eclipse.persistence.descriptors.copying.CopyPolicy
-        */
-        Class value();
-        }
-
-      </xsd:documentation>
-    </xsd:annotation>
-    <xsd:attribute name="class" type="xsd:string" use="required"/>
-  </xsd:complexType>
-
-    <!-- **************************************************** -->
-  
-  <xsd:complexType name="instantiation-copy-policy">
-    <xsd:annotation>
-      <xsd:documentation>
-        /**
-         * An InstantiationCopyPolicy is used to set an 
-         * org.eclipse.persistence.descriptors.copying.InstantiationCopyPolicy 
-         * on an Entity. InstantiationCopyPolicy is the default CopyPolicy in 
-         * EclipseLink and therefore this configuration option is only used to 
-         * override other types of copy policies
-         * 
-         * An InstantiationCopyPolicy should be specified on an Entity, 
-         * MappedSuperclass or Embeddable.
-         * 
-         * Example:
-         * @Entity
-         * @InstantiationCopyPolicy 
-         */
-        public @interface InstantiationCopyPolicy {
-        }
-      </xsd:documentation>
-    </xsd:annotation>
-  </xsd:complexType>
-
-  <!-- **************************************************** -->
-  
-  <xsd:complexType name="clone-copy-policy">
-    <xsd:annotation>
-      <xsd:documentation>
-        /**
-         * A CloneCopyPolicy is used to set an 
-         * org.eclipse.persistence.descriptors.copying.CloneCopyPolicy on an 
-         * Entity. A CloneCopyPolicy must specify at one or both of the "method" 
-         * or "workingCopyMethod". "workingCopyMethod" is used to clone objects 
-         * that will be returned to the user as they are registered in 
-         * EclipseLink's transactional mechanism, the UnitOfWork. "method" will 
-         * be used for the clone that is used for comparison in conjunction with 
-         * EclipseLink's DeferredChangeDetectionPolicy
-         *  
-         * A CloneCopyPolicy should be specified on an Entity, MappedSuperclass
-         * or Embeddable.
-         * 
-         * Example:
-         * @Entity
-         * @CloneCopyPolicy(method="myCloneMethod")
-         * 
-         * or:
-         * 
-         * @Entity
-         * @CloneCopyPolicy(method="myCloneMethod", workingCopyMethod="myWorkingCopyCloneMethod")
-         * 
-         * or:
-         * 
-          @Entity
-         * @CloneCopyPolicy(workingCopyMethodName="myWorkingCopyClone")
-         */
-        public @interface CloneCopyPolicy {
-
-            /**
-             * (Optional)
-             * Either method or workingCopyMethod must be specified this defines 
-             * a method that will be used to create a clone that will be used 
-             * for comparison by
-             * EclipseLink's DeferredChangeDetectionPolicy
-             */
-            String method();
-            
-            /**
-             * (Optional)
-             * Either method or workingCopyMethod must be specified
-             * this defines a method that will be used to create a clone that 
-             * will be used to create the object returned when registering an 
-             * Object in an EclipseLink UnitOfWork
-             */
-            String workingCopyMethod();
-            
-        }
-      </xsd:documentation>
-    </xsd:annotation>
-    <xsd:attribute name="method" type="xsd:string"/>
-    <xsd:attribute name="working-copy-method" type="xsd:string"/>
-  </xsd:complexType>
-  
-  <!-- **************************************************** -->
-  
-  <xsd:complexType name="collection-table">
-    <xsd:annotation>
-      <xsd:documentation>
-
-        @Target({METHOD, FIELD})
-        @Retention(RUNTIME)
-        public @interface CollectionTable {
-          /**
-           * (Optional) The name of the collection table. If it is not 
-           * specified, it is defaulted to the concatenation of the following: 
-           * the name of the source entity; "_" ; the name of the relationship 
-           * property or field of the source entity.
-           */
-          String name() default ""; 
-
-          /**
-           * (Optional) The catalog of the table. It defaults to the persistence 
-           * unit default catalog.
-           */
-          String catalog() default ""; 
-
-          /**
-           * (Optional) The schema of the table. It defaults to the persistence 
-           * unit default schema.
-           */
-          String schema() default ""; 
-
-          /**
-           * (Optional) Used to specify a primary key column that is used as a 
-           * foreign key to join to another table. If the source entity uses a 
-           * composite primary key, a primary key join column must be specified 
-           * for each field of the composite primary key. In a single primary 
-           * key case, a primary key join column may optionally be specified. 
-           * Defaulting will apply otherwise as follows:
-           * name, the same name as the primary key column of the primary table 
-           * of the source entity. referencedColumnName, the same name of 
-           * primary key column of the primary table of the source entity.
-           */
-          PrimaryKeyJoinColumn[] primaryKeyJoinColumns() default {}; 
- 
-          /**
-           * (Optional) Unique constraints that are to be placed on the table. 
-           * These are only used if table generation is in effect.
-           */
-          UniqueConstraint[] uniqueConstraints() default {}; 
-       }
-
-      </xsd:documentation>
-    </xsd:annotation>
-    <xsd:sequence>
-      <xsd:element name="primary-key-join-column" type="orm:primary-key-join-column" minOccurs="0" maxOccurs="unbounded"/>
-      <xsd:element name="unique-constraint" type="orm:unique-constraint" minOccurs="0" maxOccurs="unbounded"/>
-    </xsd:sequence>
-    <xsd:attribute name="name" type="xsd:string"/>
-    <xsd:attribute name="catalog" type="xsd:string"/>
-    <xsd:attribute name="schema" type="xsd:string"/>
-  </xsd:complexType>
-  
-  <!-- **************************************************** -->
-  
-  <xsd:complexType name="basic-collection">
-    <xsd:annotation>
-      <xsd:documentation>
-
-        @Target({METHOD, FIELD})
-        @Retention(RUNTIME)
-        public @interface BasicCollection {
-          /**
-           * (Optional) Defines whether the value of the field or property 
-           * should be lazily loaded or must be eagerly fetched. The EAGER 
-           * strategy is a requirement on the persistence provider runtime that 
-           * the value must be eagerly fetched. The LAZY strategy is a hint to 
-           * the persistence provider runtime. If not specified, defaults to 
-           * LAZY.
-           */
-          FetchType fetch() default LAZY; 
- 
-          /**
-           * (Optional) The name of the value column that holds the direct 
-           * collection data. Defaults to the property or field name.
-           */
-          Column valueColumn() default @Column;
-        }
-
-      </xsd:documentation>
-    </xsd:annotation>
-    <xsd:sequence>
-      <xsd:element name="value-column" type="orm:column" minOccurs="0"/>
-      <xsd:element name="convert" type="xsd:string" minOccurs="0"/>
-      <xsd:choice minOccurs="0">
-        <xsd:element name="converter" type="orm:converter"/>
-        <xsd:element name="type-converter" type="orm:type-converter"/>
-        <xsd:element name="object-type-converter" type="orm:object-type-converter"/>
-        <xsd:element name="struct-converter" type="orm:struct-converter"/>
-      </xsd:choice>
-      <xsd:element name="collection-table" type="orm:collection-table" minOccurs="0"/>
-      <xsd:element name="join-fetch" type="orm:join-fetch-type" minOccurs="0"/>
-      <xsd:element name="property" type="orm:property" minOccurs="0" maxOccurs="unbounded"/>
-      <xsd:element name="access-methods" type="orm:access-methods" minOccurs="0" maxOccurs="1"/>
-    </xsd:sequence>
-    <xsd:attribute name="name" type="xsd:string"/>
-    <xsd:attribute name="fetch" type="orm:fetch-type"/>
-    <xsd:attribute name="access" type="orm:access-type"/>
-  </xsd:complexType>
-  
-  <!-- **************************************************** -->
-  
-  <xsd:complexType name="basic-map">
-    <xsd:annotation>
-      <xsd:documentation>
-
-        @Target({METHOD, FIELD})
-        @Retention(RUNTIME)
-        public @interface BasicMap {
-          /**
-           * (Optional) Defines whether the value of the field or property 
-           * should be lazily loaded or must be eagerly fetched. The EAGER 
-           * strategy is a requirement on the persistence provider runtime that 
-           * the value must be eagerly fetched. The LAZY strategy is a hint to 
-           * the persistence provider runtime. If not specified, defaults to 
-           * LAZY.
-           */
-          FetchType fetch() default LAZY;
-
-          /**
-           * (Optional) The name of the data column that holds the direct map 
-           * key. If the name on te key column is "", the name will default to:
-           * the name of the property or field; "_KEY".
-           */
-          Column keyColumn() default @Column;
-
-          /**
-           * (Optional) Specify the key converter. Default is equivalent to 
-           * specifying @Convert("none"), meaning no converter will be added to 
-           * the direct map key.
-           */
-          Convert keyConverter() default @Convert;
-
-          /**
-           * (Optional) The name of the data column that holds the direct 
-           * collection data. Defaults to the property or field name.
-           */
-          Column valueColumn() default @Column;
-
-          /**
-           * (Optional) Specify the value converter. Default is equivalent to 
-           * specifying @Convert("none"), meaning no converter will be added to 
-           * the value column mapping.
-           */
-          Convert valueConverter() default @Convert;
-        }
-
-      </xsd:documentation>
-    </xsd:annotation>
-    <xsd:sequence>
-      <xsd:element name="key-column" type="orm:column" minOccurs="0"/>
-      <xsd:element name="key-converter" type="xsd:string" minOccurs="0"/>    
-      <xsd:element name="value-column" type="orm:column" minOccurs="0"/>
-      <xsd:element name="value-converter" type="xsd:string" minOccurs="0"/>
-      <xsd:choice minOccurs="0" maxOccurs="2">
-        <xsd:element name="converter" type="orm:converter"/>
-        <xsd:element name="type-converter" type="orm:type-converter"/>
-        <xsd:element name="object-type-converter" type="orm:object-type-converter"/>
-        <xsd:element name="struct-converter" type="orm:struct-converter"/>
-      </xsd:choice>    
-      <xsd:element name="collection-table" type="orm:collection-table" minOccurs="0"/>
-      <xsd:element name="join-fetch" type="orm:join-fetch-type" minOccurs="0"/>
-      <xsd:element name="property" type="orm:property" minOccurs="0" maxOccurs="unbounded"/>
-      <xsd:element name="access-methods" type="orm:access-methods" minOccurs="0" maxOccurs="1"/>
-    </xsd:sequence>
-    <xsd:attribute name="name" type="xsd:string"/>
-    <xsd:attribute name="fetch" type="orm:fetch-type"/>
-    <xsd:attribute name="access" type="orm:access-type"/>
-  </xsd:complexType>
-  
-  <!-- **************************************************** -->
-  
-  <xsd:simpleType name="join-fetch-type">
-    <xsd:annotation>
-      <xsd:documentation>
-
-        public enum JoinFetchType {
-        /**
-         * An inner join is used to fetch the related object.
-         * This does not allow for null/empty values.
-         */
-        INNER,
-
-        /**
-         * An inner join is used to fetch the related object.
-         * This allows for null/empty values.
-         */
-        OUTER,
-      }
-
-      </xsd:documentation>
-    </xsd:annotation>
-    <xsd:restriction base="xsd:token">
-      <xsd:enumeration value="INNER"/>
-      <xsd:enumeration value="OUTER"/>
-    </xsd:restriction>
-  </xsd:simpleType>
-  
-  <!-- **************************************************** -->
-  
-  <xsd:complexType name="optimistic-locking">
-    <xsd:annotation>
-      <xsd:documentation>
-
-        /** 
-         * An optimistic-locking element is used to specify the type of 
-         * optimistic locking EclipseLink should use when updating or deleting 
-         * entities. An optimistic-locking specification is supported on
-         * an entity or mapped-superclass.
-         * 
-         * It is used in conjunction with the optimistic-locking-type.
-         */ 
-        @Target({TYPE})
-        @Retention(RUNTIME)
-        public @interface OptimisticLocking {
-          /**
-           * (Optional) The type of optimistic locking policy to use.
-           */
-          OptimisticLockingType type() default VERSION_COLUMN;
-
-          /**
-           * (Optional) For an optimistic locking policy of type 
-           * SELECTED_COLUMNS, this annotation member becomes a (Required) 
-           * field.
-           */
-          Column[] selectedColumns() default {};
-
-          /**
-           * (Optional) Specify where the optimistic locking policy should 
-           * cascade lock. Currently only supported with VERSION_COLUMN locking.
-           */
-          boolean cascade() default false;
-        }
-
-      </xsd:documentation>
-    </xsd:annotation>
-    <xsd:sequence>
-      <xsd:element name="selected-column" type="orm:column" minOccurs="0" maxOccurs="unbounded"/>    
-    </xsd:sequence>
-    <xsd:attribute name="type" type="orm:optimistic-locking-type"/>
-    <xsd:attribute name="cascade" type="xsd:boolean"/>
-  </xsd:complexType>
-
-  <!-- **************************************************** -->
-  
-  <xsd:simpleType name="optimistic-locking-type">
-    <xsd:annotation>
-      <xsd:documentation>
-
-        /** 
-         * A simple type that is used within an optimistic-locking 
-         * specification to specify the type of optimistic-locking that
-         * EclipseLink should use when updating or deleting entities.
-         */
-        public enum OptimisticLockingType {
-          /**
-           * Using this type of locking policy compares every field in the table
-           * in the WHERE clause when doing an update or a delete. If any field
-           * has been changed, an optimistic locking exception will be thrown.
-           */
-          ALL_COLUMNS,
-
-          /**
-           * Using this type of locking policy compares only the changed fields
-           * in the WHERE clause when doing an update. If any field has been
-           * changed, an optimistic locking exception will be thrown. A delete
-           * will only compare the primary key.
-           */
-          CHANGED_COLUMNS,
-
-          /**
-           * Using this type of locking compares selected fields in the WHERE
-           * clause when doing an update or a delete. If any field has been
-           * changed, an optimistic locking exception will be thrown. Note that
-           * the fields specified must be mapped and not be primary keys.
-           */
-          SELECTED_COLUMNS,
-
-          /**
-           * Using this type of locking policy compares a single version number
-           * in the where clause when doing an update. The version field must be
-           * mapped and not be the primary key.
-           */
-          VERSION_COLUMN
-        }
-
-      </xsd:documentation>
-    </xsd:annotation>
-
-    <xsd:restriction base="xsd:token">
-      <xsd:enumeration value="ALL_COLUMNS"/>
-      <xsd:enumeration value="CHANGED_COLUMNS"/>
-      <xsd:enumeration value="SELECTED_COLUMNS"/>
-      <xsd:enumeration value="VERSION_COLUMN"/>
-    </xsd:restriction>
-  </xsd:simpleType>
-
-  <!-- **************************************************** -->
-  
-  <xsd:complexType name="primary-key">
-    <xsd:annotation>
-      <xsd:documentation>
-
-		/** 
-		 *  The PrimaryKey annotation allows advanced configuration of the Id.
-		 *  A validation policy can be given that allows specifying if zero is a valid id value.
-		 *  The set of primary key columns can also be specified precisely.
-		 * 
-		 * @author James Sutherland
-		 * @since EclipseLink 1.1
-		 */ 
-		@Target({TYPE})
-		@Retention(RUNTIME)
-		public @interface PrimaryKey {
-		    /**
-		     * (Optional) Configures what id validation is done.
-		     * By default 0 is not a valid id value, this can be used to allow 0 id values.
-		     */
-		    IdValidation validation() default IdValidation.ZERO; 
-		
-		    /**
-		     * (Optional) Used to specify the primary key columns directly.
-		     * This can be used instead of @Id if the primary key includes a non basic field,
-		     * such as a foreign key, or a inheritance discriminator, embedded, or transformation mapped field.
-		     */
-		    Column[] columns() default {};
-		}
-
-      </xsd:documentation>
-    </xsd:annotation>
-    <xsd:sequence>
-      <xsd:element name="column" type="orm:column" minOccurs="0" maxOccurs="unbounded"/>    
-    </xsd:sequence>
-    <xsd:attribute name="validation" type="orm:id-validation"/>
-  </xsd:complexType>
-
-  <!-- **************************************************** -->
-  
-  <xsd:simpleType name="id-validation">
-    <xsd:annotation>
-      <xsd:documentation>
-
-		/** 
-		 * The IdValidation enum determines the type value that are valid for an Id.
-		 * By default null is not allowed, and 0 is not allow for singleton ids of long or int type.
-		 * The default value is ZERO for singleton ids, and NULL for composite ids.
-		 * This can be set using the @PrimaryKey annotation, or ClassDescriptor API.
-		 * 
-		 * @see PrimaryKey
-		 * @see org.eclipse.persistence.descriptors.ClassDescriptor#setIdValidation(IdValidation)
-		 * @author James Sutherland
-		 * @since EclipseLink 1.0 
-		 */ 
-		public enum IdValidation {
-		    /**
-		     * Only null is not allowed as an id value, 0 is allowed.
-		     */
-		    NULL,
-		
-		    /**
-		     * null and 0 are not allowed, (only int and long).
-		     */
-		    ZERO,
-		
-		    /**
-		     * No id validation is done.
-		     */
-		    NONE
-		}
-
-      </xsd:documentation>
-    </xsd:annotation>
-
-    <xsd:restriction base="xsd:token">
-      <xsd:enumeration value="NULL"/>
-      <xsd:enumeration value="ZERO"/>
-      <xsd:enumeration value="NONE"/>
-    </xsd:restriction>
-  </xsd:simpleType>
-  
-  <!-- **************************************************** -->
-    
-  <xsd:complexType name="cache">
-    <xsd:annotation>
-      <xsd:documentation>
-
-        /** 
-         * The Cache annotation is used to set an 
-         * org.eclipse.persistence.descriptors.invalidation.CacheInvalidationPolicy 
-         * which sets objects in EclipseLink's identity maps to be invalid 
-         * following given rules. By default in EclipseLink, objects do not 
-         * expire in the cache. Several different policies are available to 
-         * allow objects to expire.
-         * 
-         * @see org.eclipse.persistence.annotations.CacheType
-         * 
-         * A Cache anotation may be defined on an Entity or MappedSuperclass. 
-         * In the case of inheritance, a Cache annotation should only be defined 
-         * on the root of the inheritance hierarchy.
-         */
-        @Target({TYPE})
-        @Retention(RUNTIME)
-        public @interface Cache {
-          /**
-           * (Optional) The type of cache to use.
-           */ 
-          CacheType type() default SOFT_WEAK;
-
-          /**
-           * (Optional) The size of cache to use.
-           */ 
-          int size() default 100;
-
-	        /**
-	         * (Optional) Cached instances in the shared cache or a client 
-	         * isolated cache.
-	         */ 
-	        boolean shared() default true;
-	
-	        /**
-	         * (Optional) Expire cached instance after a fix period of time (ms). 
-	         * Queries executed against the cache after this will be forced back 
-	         * to the database for a refreshed copy
-	         */ 
-	        int expiry() default -1; // minus one is no expiry.
-	
-	        /**
-	         * (Optional) Expire cached instance a specific time of day. Queries 
-	         * executed against the cache after this will be forced back to the 
-	         * database for a refreshed copy
-	         */ 
-	        TimeOfDay expiryTimeOfDay() default @TimeOfDay(specified=false);
-	
-	        /**
-	         * (Optional) Force all queries that go to the database to always 
-	         * refresh the cache.
-	         */ 
-	        boolean alwaysRefresh() default false;
-	
-	        /**
-	         * (Optional) For all queries that go to the database, refresh the
-	         * cache only if the data received from the database by a query is 
-	         * newer than the data in the cache (as determined by the optimistic 
-	         * locking field)
-	         */ 
-	        boolean refreshOnlyIfNewer() default false;
-	
-	        /**
-	         * (Optional) Setting to true will force all queries to bypass the 
-	         * cache for hits but still resolve against the cache for identity. 
-	         * This forces all queries to hit the database.
-	         */ 
-	        boolean disableHits() default false;
-	
-	        /**
-	         * (Optional) The cache coordination mode.
-	         */ 
-	        CacheCoordinationType coordinationType() default SEND_OBJECT_CHANGES;
-	      }
-	
-	    </xsd:documentation>
-	  </xsd:annotation>
-	  <xsd:choice>
-	    <xsd:element name="expiry" type="xsd:integer" minOccurs="0"/>
-	    <xsd:element name="expiry-time-of-day" type="orm:time-of-day" minOccurs="0"/>
-	  </xsd:choice>
-	  <xsd:attribute name="size" type="xsd:integer"/>
-	  <xsd:attribute name="shared" type="xsd:boolean"/>
-	  <xsd:attribute name="type" type="orm:cache-type"/>
-	  <xsd:attribute name="always-refresh" type="xsd:boolean"/>
-	  <xsd:attribute name="refresh-only-if-newer" type="xsd:boolean"/>
-	  <xsd:attribute name="disable-hits" type="xsd:boolean"/>
-	  <xsd:attribute name="coordination-type" type="orm:cache-coordination-type"/>
-	</xsd:complexType>
-
-  <!-- **************************************************** --> 
-
-	<xsd:simpleType name="cache-type">
-	  <xsd:annotation>
-	    <xsd:documentation>
-	
-	      /** 
-         * The CacheType enum is used with the Cache annotation for a 
-         * persistent class. It defines the type of IdentityMap/Cache used for 
-         * the class. By default the SOFT_WEAK cache type is used.
-         * 
-         * @see org.eclipse.persistence.annotations.Cache 
-         */
-	      public enum CacheType {
-	        /**
-	         * Provides full caching and guaranteed identity. Caches all objects
-	         * and does not remove them. 
-	         * WARNING: This method may be memory intensive when many objects are 
-	         * read.
-	         */
-	        FULL,
-	
-	        /**
-	         * Similar to the FULL identity map except that the map holds the
-	         * objects using weak references. This method allows full garbage
-	         * collection and provides full caching and guaranteed identity.
-	         */
-	        WEAK,
-	
-	        /**
-	         * Similar to the FULL identity map except that the map holds the
-	         * objects using soft references. This method allows full garbage
-	         * collection when memory is low and provides full caching and
-	         * guaranteed identity.
-	         */
-	        SOFT,
-	
-	        /**
-	         * Similar to the WEAK identity map except that it maintains a
-	         * most-frequently-used sub-cache. The size of the sub-cache is
-	         * proportional to the size of the identity map as specified by
-	         * descriptor's setIdentityMapSize() method. The sub-cache
-	         * uses soft references to ensure that these objects are
-	         * garbage-collected only if the system is low on memory.
-	         */
-	        SOFT_WEAK,
-	
-	        /**
-	         * Identical to the soft cache weak (SOFT_WEAK) identity map except 
-	         * that it uses hard references in the sub-cache. Use this identity 
-	         * map if soft references do not behave properly on your platform.
-	         */
-	        HARD_WEAK,
-	
-	        /**
-	         * A cache identity map maintains a fixed number of objects
-	         * specified by the application. Objects are removed from the cache
-	         * on a least-recently-used basis. This method allows object
-	         * identity for the most commonly used objects.
-	         * WARNING: Furnishes caching and identity, but does not guarantee 
-	         * identity.
-	         */
-	        CACHE,
-	
-	        /**
-	         * WARNING: Does not preserve object identity and does not cache 
-	         * objects.
-	         */
-	        NONE
-	      }
-	
-	    </xsd:documentation>
-	  </xsd:annotation>
-	  <xsd:restriction base="xsd:token">
-	    <xsd:enumeration value="FULL"/>
-	    <xsd:enumeration value="WEAK"/>
-	    <xsd:enumeration value="SOFT"/>
-	    <xsd:enumeration value="SOFT_WEAK"/>
-	    <xsd:enumeration value="HARD_WEAK"/>
-	    <xsd:enumeration value="CACHE"/>
-	    <xsd:enumeration value="NONE"/>
-	  </xsd:restriction>
-	</xsd:simpleType>
-
-
-  <!-- **************************************************** -->  
-
-	<xsd:simpleType name="cache-coordination-type">
-	  <xsd:annotation>
-	    <xsd:documentation>
-	
-	      /** 
-         * An enum that is used within the Cache annotation.
-         * 
-         * @see org.eclipse.persistence.annotations.Cache 
-         */ 
-	      public enum CacheCoordinationType {
-	        /**
-	         * Sends a list of changed objects including data about the changes.
-	         * This data is merged into the receiving cache.
-	         */
-	        SEND_OBJECT_CHANGES,
-	
-	         /**
-	          * Sends a list of the identities of the objects that have changed. 
-	          * The receiving cache invalidates the objects (rather than changing 
-	          * any of the data)
-	          */
-	         INVALIDATE_CHANGED_OBJECTS,
-	
-	         /**
-	          * Same as SEND_OBJECT_CHANGES except it also includes any newly
-	          * created objects from the transaction.
-	          */
-	         SEND_NEW_OBJECTS_WITH_CHANGES,
-	
-	         /**
-	          * Does no cache coordination.
-	          */
-	         NONE
-        }
-	
-	    </xsd:documentation>
-	  </xsd:annotation>
-	  <xsd:restriction base="xsd:token">
-	    <xsd:enumeration value="SEND_OBJECT_CHANGES"/>
-	    <xsd:enumeration value="INVALIDATE_CHANGED_OBJECTS"/>
-	    <xsd:enumeration value="SEND_NEW_OBJECTS_WITH_CHANGES"/>
-	    <xsd:enumeration value="NONE"/>
-	  </xsd:restriction>
-	</xsd:simpleType>
-
-  <!-- **************************************************** -->  
-
-	<xsd:complexType name="time-of-day">
-	  <xsd:annotation>
-	    <xsd:documentation>
-	
-	      @Target({})
-	      @Retention(RUNTIME)
-	      public @interface TimeOfDay {
-	        /**
-	         * (Optional) Hour of the day.
-	         */ 
-	        int hour() default 0;
-	
-	        /**
-	         * (Optional) Minute of the day.
-	         */ 
-	        int minute() default 0;
-	
-	        /**
-	         * (Optional) Second of the day.
-	         */ 
-	        int second() default 0;
-	
-	        /**
-	         * (Optional) Millisecond of the day.
-	         */ 
-	        int millisecond() default 0;
-	
-	        /**
-	         * Internal use. Do not modify.
-	         */ 
-	        boolean specified() default true;
-	      }
-	
-	    </xsd:documentation>
-	  </xsd:annotation>
-	  <xsd:attribute name="hour" type="xsd:integer"/>
-	  <xsd:attribute name="minute" type="xsd:integer"/>
-	  <xsd:attribute name="second" type="xsd:integer"/>
-	  <xsd:attribute name="millisecond" type="xsd:integer"/>
-	</xsd:complexType>
-  
-  <!-- **************************************************** -->
-  
-  <xsd:complexType name="change-tracking">
-    <xsd:annotation>
-      <xsd:documentation>
-
-        /** 
-         * The ChangeTracking annotation is used to specify the 
-         * org.eclipse.persistence.descriptors.changetracking.ObjectChangePolicy 
-         * which computes changes sets for EclipseLink's UnitOfWork commit 
-         * process. An ObjectChangePolicy is stored on an Entity's descriptor.
-         *
-         * A ChangeTracking annotation may be specified on an Entity, 
-         * MappedSuperclass or Embeddable.
-         */ 
-        @Target({TYPE})
-        @Retention(RUNTIME)
-        public @interface ChangeTracking {
-          /**
-           * (Optional) The type of change tracking to use.
-           */ 
-          ChangeTrackingType value() default AUTO;
-        }
-
-      </xsd:documentation>
-    </xsd:annotation>
-    <xsd:attribute name="type" type="orm:change-tracking-type" use="required"/>
-  </xsd:complexType>
- 
-  <!-- **************************************************** -->
- 
-  <xsd:simpleType name="change-tracking-type">
-    <xsd:annotation>
-      <xsd:documentation>
-
-        /** 
-         * An enum that is used within the ChangeTracking annotation. 
-         */ 
-        public enum ChangeTrackingType {
-          /**
-           * An ATTRIBUTE change tracking type allows change tracking at the
-           * attribute level of an object. Objects with changed attributes will
-           * be processed in the commit process to include any changes in the 
-           * results of the commit. Unchanged objects will be ignored.
-           */
-          ATTRIBUTE,
-
-          /**
-           * An OBJECT change tracking policy allows an object to calculate for 
-           * itself whether it has changed. Changed objects will be processed in 
-           * the commit process to include any changes in the results of the 
-           * commit. Unchanged objects will be ignored.
-           */
-          OBJECT,
-
-          /**
-           * A DEFERRED change tracking policy defers all change detection to
-           * the UnitOfWork's change detection process. Essentially, the 
-           * calculateChanges() method will run for all objects in a UnitOfWork. 
-           * This is the default ObjectChangePolicy
-           */
-          DEFERRED,
-
-          /**
-           * Will not set any change tracking policy.
-           */
-          AUTO
-        }
-
-      </xsd:documentation>
-	  </xsd:annotation>
-	  <xsd:restriction base="xsd:token">
-	    <xsd:enumeration value="ATTRIBUTE"/>
-	    <xsd:enumeration value="OBJECT"/>
-	    <xsd:enumeration value="DEFERRED"/>
-	    <xsd:enumeration value="AUTO"/>
-	  </xsd:restriction>
-	</xsd:simpleType>
-  
-  <!-- **************************************************** -->
-  
-  <xsd:complexType name="customizer">
-	  <xsd:annotation>
-	    <xsd:documentation>
-	
-      /** 
-       * The Customizer annotation is used to specify a class that implements 
-       * the org.eclipse.persistence.config.DescriptorCustomizer 
-       * interface and is to run against an enetity's class descriptor after all 
-       * metadata processing has been completed.
-       *
-       * The Customizer annotation may be defined on an Entity, MappedSuperclass 
-       * or Embeddable class. In the case of inheritance, a Customizer is not 
-       * inherited from its parent classes. 
-       */ 
-	    @Target({TYPE})
-	    @Retention(RUNTIME)
-	    public @interface Customizer {
-	      /**
-	       * (Required) Defines the name of the descriptor customizer class that 
-	       * should be applied for the related entity or embeddable class.
-	       */
-	      Class value(); 
-	    }
-	
-	    </xsd:documentation>
-	  </xsd:annotation>
-	  <xsd:attribute name="class" type="xsd:string" use="required"/>
-	</xsd:complexType>
-  
-  <!-- **************************************************** -->
-  
-  <xsd:complexType name="named-stored-procedure-query">
-    <xsd:annotation>
-      <xsd:documentation>
-
-        /** 
-         * A NamedStoredProcedureQuery annotation allows the definition of 
-         * queries that call stored procedures as named queries.
-         
-         * A NamedStoredProcedureQuery annotation may be defined on an Entity or
-         * MappedSuperclass. 
-         */ 
-	      @Target({TYPE})
-	      @Retention(RUNTIME)
-	      public @interface NamedStoredProcedureQuery {
-	        /**
-	         * (Required) Unique name that references this stored procedure query.
-	         */
-	        String name();
-	
-	        /**
-	         * (Optional) Query hints.
-	         */
-	        QueryHint[] hints() default {};
-	
-	        /**
-	         * (Optional) Refers to the class of the result.
-	         */
-	        Class resultClass() default void.class;
-	
-	        /**
-	         * (Optional) The name of the SQLResultMapping.
-	         */
-	        String resultSetMapping() default "";
-	
-	        /**
-	         * (Required) The name of the stored procedure.
-	         */
-	        String procedureName();
-	
-	        /**
-	         * (Optional) Whether the query should return a result set.
-	         */
-	        boolean returnsResultSet() default true; 
-	
-	        /**
-	         * (Optional) Defines arguments to the stored procedure.
-	         */
-	        StoredProcedureParameter[] parameters() default {};
-	      }
-	
-	    </xsd:documentation>
-	  </xsd:annotation>
-	    <xsd:sequence>
-	      <xsd:element name="hint" type="orm:query-hint" minOccurs="0" 
-	                   maxOccurs="unbounded"/>
-	      <xsd:element name="parameter" type="orm:stored-procedure-parameter" 
-	                   minOccurs="0" maxOccurs="unbounded"/>
-	    </xsd:sequence>
-	  <xsd:attribute name="name" type="xsd:string" use="required"/>
-	  <xsd:attribute name="result-class" type="xsd:string"/>
-	  <xsd:attribute name="result-set-mapping" type="xsd:string"/>
-	  <xsd:attribute name="procedure-name" type="xsd:string" use="required"/>
-	  <xsd:attribute name="returns-result-set" type="xsd:boolean"/>
-	</xsd:complexType>
-  
-  <!-- **************************************************** -->
-  
-  <xsd:complexType name="stored-procedure-parameter">
-	  <xsd:annotation>
-	    <xsd:documentation>
-	
-        /** 
-         * A StoredProcedureParameter annotation is used within a 
-         * NamedStoredProcedureQuery annotation. 
-         */ 
-	      @Target({})
-	      @Retention(RUNTIME)
-	      public @interface StoredProcedureParameter {
-	        /**
-	         * (Optional) The direction of the stored procedure parameter.
-	         */
-	        Direction direction() default IN;
-	
-	        /**
-	         * (Optional) Stored procedure parameter name.
-	         */
-	        String name() default "";
-	
-	        /**
-	         * (Required) The query parameter name.
-	         */
-	        String queryParameter();
-	
-	        /**
-	         * (Optional) The type of Java class desired back from the procedure, 
-	         * this is dependent on the type returned from the procedure.
-	         */
-	        Class type() default void.class;
-	
-	        /**
-	         * (Optional) The JDBC type code, this dependent on the type returned 
-	         * from the procedure.
-	         */
-	        int jdbcType() default -1;
-	
-	        /**
-	         * (Optional) The JDBC type name, this may be required for ARRAY or 
-	         * STRUCT types.
-	         */
-	        String jdbcTypeName() default "";
-	      }
-	
-	    </xsd:documentation>
-	  </xsd:annotation>
-	  <xsd:attribute name="direction" type="orm:direction-type"/>
-	  <xsd:attribute name="name" type="xsd:string"/>
-	  <xsd:attribute name="query-parameter" type="xsd:string" use="required"/>
-	  <xsd:attribute name="type" type="xsd:string"/>
-	  <xsd:attribute name="jdbc-type" type="xsd:integer"/>
-	  <xsd:attribute name="jdbc-type-name" type="xsd:string"/>
-	</xsd:complexType>
-	
-	<!-- **************************************************** -->
-	
-	<xsd:simpleType name="direction-type">
-	  <xsd:annotation>
-	    <xsd:documentation>
-	
-        /** 
-         * An enum that is used within the StoredProcedureParameter annotation.
-         * It is used to specify the direction of the stored procedure 
-         * parameters of a named stored procedure query.
-         */
-	      public enum Direction {
-	        /**
-	         * Input parameter
-	         */
-	        IN,
-	
-	        /**
-	         * Output parameter
-	         */
-	        OUT,
-	
-	        /**
-	         * Input and output parameter
-	         */
-	        IN_OUT,
-	
-	        /**
-	         * Output cursor
-	         */
-	        OUT_CURSOR
-	      }
-	
-	    </xsd:documentation>
-	  </xsd:annotation>
-	  <xsd:restriction base="xsd:token">
-	    <xsd:enumeration value="IN"/>
-	    <xsd:enumeration value="OUT"/>
-	    <xsd:enumeration value="IN_OUT"/>
-	    <xsd:enumeration value="OUT_CURSOR"/>
-	  </xsd:restriction>
-	</xsd:simpleType>
-	
-	<!-- **************************************************** -->
-	
-	<xsd:complexType name="variable-one-to-one">
-    <xsd:annotation>
-      <xsd:documentation>
-				/** 
-				 * Variable one to one mappings are used to represent a pointer 
-				 * references between a java object and an implementer of an interface. 
-				 * This mapping is usually represented by a single pointer (stored in an 
-				 * instance variable) between the source and target objects. In the 
-				 * relational database tables, these mappings are normally implemented 
-				 * using a foreign key and a type code.
-				 * 
-				 * A VariableOneToOne can be specified within an Entity, 
-				 * MappedSuperclass and Embeddable class. 
-				 */ 
-				@Target({METHOD, FIELD}) 
-				@Retention(RUNTIME)
-				public @interface VariableOneToOne {
-				    /**
-				     * (Optional) The interface class that is the target of the 
-				     * association. If not specified it will be inferred from the type 
-				     * of the object being referenced.
-				     */
-				    Class targetInterface() default void.class;
-				    
-				    /**
-				     * (Optional) The operations that must be cascaded to the target of 
-				     * the association.
-				     */
-				    CascadeType[] cascade() default {};
-				    
-				    /**
-				     * (Optional) Defines whether the value of the field or property 
-				     * should be lazily loaded or must be eagerly fetched. The EAGER 
-				     * strategy is a requirement on the persistence provider runtime 
-				     * that the value must be eagerly fetched. The LAZY strategy is a 
-				     * hint to the persistence provider runtime. If not specified, 
-				     * defaults to EAGER.
-				     */
-				    FetchType fetch() default EAGER;
-				    
-				    /**
-				     * (Optional) Whether the association is optional. If set to false 
-				     * then a non-null relationship must always exist.
-				     */
-				    boolean optional() default true;
-				  
-				    /**
-				     * (Optional) The discriminator column will hold the type 
-				     * indicators. If the DiscriminatorColumn is not specified, the name 
-				     * of the discriminator column defaults to "DTYPE" and the 
-				     * discriminator type to STRING.
-				     */
-				    DiscriminatorColumn discriminatorColumn() default @DiscriminatorColumn;
-				    
-                    /**
-                     * (Optional) The list of discriminator types that can be used with 
-                     * this VariableOneToOne. If none are specified then those entities 
-                     * within the persistence unit that implement the target interface 
-                     * will be added to the list of types. The discriminator type will 
-                     * default as follows:
-                     *  - If DiscriminatorColumn type is STRING: Entity.name()
-                     *  - If DiscriminatorColumn type is CHAR: First letter of the 
-                     *    Entity class
-                     *  - If DiscriminatorColumn type is INTEGER: The next integer after 
-                     *    the highest integer explicitly added.
-                     */
-				    DiscriminatorClass[] discriminatorClasses() default {};
-				}
-
-      </xsd:documentation>
-    </xsd:annotation>
-    <xsd:sequence>
-      <xsd:element name="cascade" type="orm:cascade-type" minOccurs="0"/>
-      <xsd:element name="discriminator-column" type="orm:discriminator-column" minOccurs="0"/>
-      <xsd:element name="discriminator-class" type="orm:discriminator-class" minOccurs="0" maxOccurs="unbounded"/>
-      <xsd:element name="join-column" type="orm:join-column" minOccurs="0" maxOccurs="unbounded"/>
-      <xsd:element name="private-owned" type="orm:emptyType" minOccurs="0"/>
-      <xsd:element name="property" type="orm:property" minOccurs="0" maxOccurs="unbounded"/>
-      <xsd:element name="access-methods" type="orm:access-methods" minOccurs="0" maxOccurs="1"/>
-    </xsd:sequence>
-    <xsd:attribute name="name" type="xsd:string" use="required"/>
-    <xsd:attribute name="target-interface" type="xsd:string"/>
-    <xsd:attribute name="fetch" type="orm:fetch-type"/>
-    <xsd:attribute name="optional" type="xsd:boolean"/>
-  </xsd:complexType>
-
-  <!-- **************************************************** -->
-
-  <xsd:complexType name="discriminator-class">
-    <xsd:annotation>
-      <xsd:documentation>
-
-        /** 
-         * A DiscriminatorClass is used within a VariableOneToOne annotation.
-         */ 
-        @Target({}) 
-        @Retention(RUNTIME)
-        public @interface DiscriminatorClass {
-          /**
-           * (Required) The discriminator to be stored on the database. 
-           */
-          String discriminator();
-
-          /**
-           * (Required) The class to the instantiated with the given 
-           * discriminator.
-           */
-          Class value();
-        }
-
-      </xsd:documentation>
-    </xsd:annotation>
-    <xsd:attribute name="discriminator" type="xsd:string" use="required"/>
-    <xsd:attribute name="value" type="xsd:string" use="required"/>
-  </xsd:complexType>
-
-  <!-- **************************************************** -->
-  
-	<xsd:simpleType name="existence-type">
-	  <xsd:annotation>
-	    <xsd:documentation>
-	        /**
-           * The ExistenceChecking annotation is used to specify the type of 
-           * checking EclipseLink should use when updating entities.
-           * 
-           * An existence-checking specification is supported on an Entity or 
-           * MappedSuperclass annotation.
-           */
-          public @interface ExistenceChecking {
-            /**
-             * (Optional) Set the existence check for determining
-             * if an insert or update should occur for an object.
-             */
-             ExistenceType value() default CHECK_CACHE;
-          }
-          
-          /**
-           * Assume that if the objects primary key does not include null and 
-           * it is in the cache, then it must exist.
-           */
-          CHECK_CACHE,
-			
-          /**
-           * Perform does exist check on the database.
-           */
-          CHECK_DATABASE,
-			
-          /**
-           * Assume that if the objects primary key does not include null then 
-           * it must exist. This may be used if the application guarantees or 
-           * does not care about the existence check.
-           */
-          ASSUME_EXISTENCE,
-			
-          /**
-           * Assume that the object does not exist. This may be used if the 
-           * application guarantees or does not care about the existence check.  
-           * This will always force an insert to be called.
-           */
-          ASSUME_NON_EXISTENCE
-		
-      </xsd:documentation>
-    </xsd:annotation>	 
-	  <xsd:restriction base="xsd:token">
-	    <xsd:enumeration value="CHECK_CACHE" />
-	    <xsd:enumeration value="CHECK_DATABASE" />
-	    <xsd:enumeration value="ASSUME_EXISTENCE" />
-	    <xsd:enumeration value="ASSUME_NON_EXISTENCE"/>
-	  </xsd:restriction>
-	</xsd:simpleType>	
-	
-</xsd:schema>
-
-
diff --git a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/EclipseLinkJpaProject.java b/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/EclipseLinkJpaProject.java
deleted file mode 100644
index 2fcabd7..0000000
--- a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/EclipseLinkJpaProject.java
+++ /dev/null
@@ -1,41 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.eclipselink.core;
-
-import org.eclipse.jpt.core.JpaProject;
-import org.eclipse.jpt.core.resource.xml.JpaXmlResource;
-
-/**
- * A JPA project is associated with an Eclipse project (and its corresponding
- * Java project). It holds the "resource" model that corresponds to the various
- * JPA-related resources (the persistence.xml file, its mapping files [orm.xml],
- * and the Java source files). It also holds the "context" model that represents
- * the JPA metadata, as derived from spec-defined defaults, Java source code
- * annotations, and XML descriptors.
- * 
- * Provisional API: This interface is part of an interim API that is still
- * under development and expected to change significantly before reaching
- * stability. It is available at this early stage to solicit feedback from
- * pioneering adopters on the understanding that any code that uses this API
- * will almost certainly be broken (repeatedly) as the API evolves.
- */
-public interface EclipseLinkJpaProject
-	extends JpaProject
-{
-
-	/**
-	 * Return the resource model object that corresponds to the file
-	 * 'META-INF/eclipselink-orm.xml' if that file has the eclipselink ContentType
-	 * 
-	 * @see JptEclipseLinkCorePlugin.DEFAULT_ECLIPSELINK_ORM_XML_FILE_PATH
-	 */
-	JpaXmlResource getDefaultEclipseLinkOrmXmlResource();
-	
-}
diff --git a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/EclipseLinkMappingKeys.java b/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/EclipseLinkMappingKeys.java
deleted file mode 100644
index 68e3a96..0000000
--- a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/EclipseLinkMappingKeys.java
+++ /dev/null
@@ -1,28 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008, 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.eclipselink.core;
-
-/**
- * 
- * 
- * Provisional API: This interface is part of an interim API that is still
- * under development and expected to change significantly before reaching
- * stability. It is available at this early stage to solicit feedback from
- * pioneering adopters on the understanding that any code that uses this API
- * will almost certainly be broken (repeatedly) as the API evolves.
- */
-@SuppressWarnings("nls")
-public interface EclipseLinkMappingKeys {
-
-	String BASIC_COLLECTION_ATTRIBUTE_MAPPING_KEY = "basicCollection";
-	String BASIC_MAP_ATTRIBUTE_MAPPING_KEY = "basicMap";
-	String TRANSFORMATION_ATTRIBUTE_MAPPING_KEY = "transformation";
-	String VARIABLE_ONE_TO_ONE_ATTRIBUTE_MAPPING_KEY = "variableOneToOne";
-}
diff --git a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/context/BasicCollectionMapping.java b/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/context/BasicCollectionMapping.java
deleted file mode 100644
index e396ef0..0000000
--- a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/context/BasicCollectionMapping.java
+++ /dev/null
@@ -1,28 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.eclipselink.core.context;
-
-import org.eclipse.jpt.core.context.AttributeMapping;
-
-/**
- * 
- * 
- * Provisional API: This interface is part of an interim API that is still
- * under development and expected to change significantly before reaching
- * stability. It is available at this early stage to solicit feedback from
- * pioneering adopters on the understanding that any code that uses this API
- * will almost certainly be broken (repeatedly) as the API evolves.
- * 
- * @version 2.1
- * @since 2.1
- */
-public interface BasicCollectionMapping extends AttributeMapping
-{
-}
diff --git a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/context/BasicMapMapping.java b/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/context/BasicMapMapping.java
deleted file mode 100644
index f9a37b3..0000000
--- a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/context/BasicMapMapping.java
+++ /dev/null
@@ -1,28 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.eclipselink.core.context;
-
-import org.eclipse.jpt.core.context.AttributeMapping;
-
-/**
- * 
- * 
- * Provisional API: This interface is part of an interim API that is still
- * under development and expected to change significantly before reaching
- * stability. It is available at this early stage to solicit feedback from
- * pioneering adopters on the understanding that any code that uses this API
- * will almost certainly be broken (repeatedly) as the API evolves.
- * 
- * @version 2.1
- * @since 2.1
- */
-public interface BasicMapMapping extends AttributeMapping
-{
-}
diff --git a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/context/CacheCoordinationType.java b/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/context/CacheCoordinationType.java
deleted file mode 100644
index 33bb3c8..0000000
--- a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/context/CacheCoordinationType.java
+++ /dev/null
@@ -1,106 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.eclipselink.core.context;
-
-
-/**
- * 
- * 
- * Provisional API: This interface is part of an interim API that is still
- * under development and expected to change significantly before reaching
- * stability. It is available at this early stage to solicit feedback from
- * pioneering adopters on the understanding that any code that uses this API
- * will almost certainly be broken (repeatedly) as the API evolves.
- * 
- * @version 2.1
- * @since 2.1
- */
-public enum CacheCoordinationType {
-
-	SEND_OBJECT_CHANGES,
-	INVALIDATE_CHANGED_OBJECTS,
-	SEND_NEW_OBJECTS_WITH_CHANGES,
-	NONE;
-	
-
-	public static CacheCoordinationType fromJavaResourceModel(org.eclipse.jpt.eclipselink.core.resource.java.CacheCoordinationType javaCacheCoordinationType) {
-		if (javaCacheCoordinationType == null) {
-			return null;
-		}
-		switch (javaCacheCoordinationType) {
-			case SEND_OBJECT_CHANGES:
-				return SEND_OBJECT_CHANGES;
-			case INVALIDATE_CHANGED_OBJECTS:
-				return INVALIDATE_CHANGED_OBJECTS;
-			case SEND_NEW_OBJECTS_WITH_CHANGES:
-				return SEND_NEW_OBJECTS_WITH_CHANGES;
-			case NONE:
-				return NONE;
-			default:
-				throw new IllegalArgumentException("unknown cache coordination type: " + javaCacheCoordinationType); //$NON-NLS-1$
-		}
-	}
-
-	public static org.eclipse.jpt.eclipselink.core.resource.java.CacheCoordinationType toJavaResourceModel(CacheCoordinationType cacheCoordinationType) {
-		if (cacheCoordinationType == null) {
-			return null;
-		}
-		switch (cacheCoordinationType) {
-			case SEND_OBJECT_CHANGES:
-				return org.eclipse.jpt.eclipselink.core.resource.java.CacheCoordinationType.SEND_OBJECT_CHANGES;
-			case INVALIDATE_CHANGED_OBJECTS:
-				return org.eclipse.jpt.eclipselink.core.resource.java.CacheCoordinationType.INVALIDATE_CHANGED_OBJECTS;
-			case SEND_NEW_OBJECTS_WITH_CHANGES:
-				return org.eclipse.jpt.eclipselink.core.resource.java.CacheCoordinationType.SEND_NEW_OBJECTS_WITH_CHANGES;
-			case NONE:
-				return org.eclipse.jpt.eclipselink.core.resource.java.CacheCoordinationType.NONE;
-			default:
-				throw new IllegalArgumentException("unknown cache coordination type: " + cacheCoordinationType); //$NON-NLS-1$
-		}
-	}
-	
-
-	public static CacheCoordinationType fromOrmResourceModel(org.eclipse.jpt.eclipselink.core.resource.orm.CacheCoordinationType ormCacheCoordinationType) {
-		if (ormCacheCoordinationType == null) {
-			return null;
-		}
-		switch (ormCacheCoordinationType) {
-			case SEND_OBJECT_CHANGES:
-				return SEND_OBJECT_CHANGES;
-			case INVALIDATE_CHANGED_OBJECTS:
-				return INVALIDATE_CHANGED_OBJECTS;
-			case SEND_NEW_OBJECTS_WITH_CHANGES:
-				return SEND_NEW_OBJECTS_WITH_CHANGES;
-			case NONE:
-				return NONE;
-			default:
-				throw new IllegalArgumentException("unknown cache coordination type: " + ormCacheCoordinationType); //$NON-NLS-1$
-		}
-	}
-	
-	public static org.eclipse.jpt.eclipselink.core.resource.orm.CacheCoordinationType toOrmResourceModel(CacheCoordinationType cacheCoordinationType) {
-		if (cacheCoordinationType == null) {
-			return null;
-		}
-		switch (cacheCoordinationType) {
-			case SEND_OBJECT_CHANGES:
-				return org.eclipse.jpt.eclipselink.core.resource.orm.CacheCoordinationType.SEND_OBJECT_CHANGES;
-			case INVALIDATE_CHANGED_OBJECTS:
-				return org.eclipse.jpt.eclipselink.core.resource.orm.CacheCoordinationType.INVALIDATE_CHANGED_OBJECTS;
-			case SEND_NEW_OBJECTS_WITH_CHANGES:
-				return org.eclipse.jpt.eclipselink.core.resource.orm.CacheCoordinationType.SEND_NEW_OBJECTS_WITH_CHANGES;
-			case NONE:
-				return org.eclipse.jpt.eclipselink.core.resource.orm.CacheCoordinationType.NONE;
-			default:
-				throw new IllegalArgumentException("unknown cache coordination type: " + cacheCoordinationType); //$NON-NLS-1$
-		}
-	}
-
-}
diff --git a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/context/CacheType.java b/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/context/CacheType.java
deleted file mode 100644
index ade7450..0000000
--- a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/context/CacheType.java
+++ /dev/null
@@ -1,133 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.eclipselink.core.context;
-
-
-/**
- * 
- * 
- * Provisional API: This interface is part of an interim API that is still
- * under development and expected to change significantly before reaching
- * stability. It is available at this early stage to solicit feedback from
- * pioneering adopters on the understanding that any code that uses this API
- * will almost certainly be broken (repeatedly) as the API evolves.
- * 
- * @version 2.1
- * @since 2.1
- */
-public enum CacheType {
-
-	SOFT_WEAK,
-	HARD_WEAK,
-	WEAK,
-	SOFT,
-	FULL,
-	CACHE,
-	NONE;
-	
-
-	public static CacheType fromJavaResourceModel(org.eclipse.jpt.eclipselink.core.resource.java.CacheType javaCacheType) {
-		if (javaCacheType == null) {
-			return null;
-		}
-		switch (javaCacheType) {
-			case FULL:
-				return FULL;
-			case WEAK:
-				return WEAK;
-			case SOFT:
-				return SOFT;
-			case SOFT_WEAK:
-				return SOFT_WEAK;
-			case HARD_WEAK:
-				return HARD_WEAK;
-			case CACHE:
-				return CACHE;
-			case NONE:
-				return NONE;
-			default:
-				throw new IllegalArgumentException("unknown cache type: " + javaCacheType); //$NON-NLS-1$
-		}
-	}
-
-	public static org.eclipse.jpt.eclipselink.core.resource.java.CacheType toJavaResourceModel(CacheType cacheType) {
-		if (cacheType == null) {
-			return null;
-		}
-		switch (cacheType) {
-			case FULL:
-				return org.eclipse.jpt.eclipselink.core.resource.java.CacheType.FULL;
-			case WEAK:
-				return org.eclipse.jpt.eclipselink.core.resource.java.CacheType.WEAK;
-			case SOFT:
-				return org.eclipse.jpt.eclipselink.core.resource.java.CacheType.SOFT;
-			case SOFT_WEAK:
-				return org.eclipse.jpt.eclipselink.core.resource.java.CacheType.SOFT_WEAK;
-			case HARD_WEAK:
-				return org.eclipse.jpt.eclipselink.core.resource.java.CacheType.HARD_WEAK;
-			case CACHE:
-				return org.eclipse.jpt.eclipselink.core.resource.java.CacheType.CACHE;
-			case NONE:
-				return org.eclipse.jpt.eclipselink.core.resource.java.CacheType.NONE;
-			default:
-				throw new IllegalArgumentException("unknown cache type: " + cacheType); //$NON-NLS-1$
-		}
-	}
-	
-
-	public static CacheType fromOrmResourceModel(org.eclipse.jpt.eclipselink.core.resource.orm.CacheType ormCacheType) {
-		if (ormCacheType == null) {
-			return null;
-		}
-		switch (ormCacheType) {
-			case FULL:
-				return FULL;
-			case WEAK:
-				return WEAK;
-			case SOFT:
-				return SOFT;
-			case SOFT_WEAK:
-				return SOFT_WEAK;
-			case HARD_WEAK:
-				return HARD_WEAK;
-			case CACHE:
-				return CACHE;
-			case NONE:
-				return NONE;
-			default:
-				throw new IllegalArgumentException("unknown cache type: " + ormCacheType); //$NON-NLS-1$
-		}
-	}
-	
-	public static org.eclipse.jpt.eclipselink.core.resource.orm.CacheType toOrmResourceModel(CacheType cacheType) {
-		if (cacheType == null) {
-			return null;
-		}
-		switch (cacheType) {
-			case FULL:
-				return org.eclipse.jpt.eclipselink.core.resource.orm.CacheType.FULL;
-			case WEAK:
-				return org.eclipse.jpt.eclipselink.core.resource.orm.CacheType.WEAK;
-			case SOFT:
-				return org.eclipse.jpt.eclipselink.core.resource.orm.CacheType.SOFT;
-			case SOFT_WEAK:
-				return org.eclipse.jpt.eclipselink.core.resource.orm.CacheType.SOFT_WEAK;
-			case HARD_WEAK:
-				return org.eclipse.jpt.eclipselink.core.resource.orm.CacheType.HARD_WEAK;
-			case CACHE:
-				return org.eclipse.jpt.eclipselink.core.resource.orm.CacheType.CACHE;
-			case NONE:
-				return org.eclipse.jpt.eclipselink.core.resource.orm.CacheType.NONE;
-			default:
-				throw new IllegalArgumentException("unknown cache type: " + cacheType); //$NON-NLS-1$
-		}
-	}
-
-}
diff --git a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/context/Caching.java b/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/context/Caching.java
deleted file mode 100644
index e48e49b..0000000
--- a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/context/Caching.java
+++ /dev/null
@@ -1,205 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008, 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.eclipselink.core.context;
-
-import org.eclipse.jpt.core.context.JpaContextNode;
-
-/**
- * 
- * 
- * Provisional API: This interface is part of an interim API that is still
- * under development and expected to change significantly before reaching
- * stability. It is available at this early stage to solicit feedback from
- * pioneering adopters on the understanding that any code that uses this API
- * will almost certainly be broken (repeatedly) as the API evolves.
- * 
- * @version 2.1
- * @since 2.1
- */
-public interface Caching extends JpaContextNode
-{
-	//***************** shared ************************
-	
-	/**
-	 * This is the combination of defaultShared and specifiedShared.
-	 * If getSpecifiedShared() returns null, then return isDefaultShared()
-	 */
-	boolean isShared();
-	
-	boolean isDefaultShared();
-		String DEFAULT_SHARED_PROPERTY = "defaultShared"; //$NON-NLS-1$
-		boolean DEFAULT_SHARED = true;
-	
-	Boolean getSpecifiedShared();
-	
-	/**
-	 * Setting this to false means that cacheType, cacheSize, alwaysRefresh, 
-	 * refreshOnlyIfNewer, disableHits, cacheCoordinationType will all be set 
-	 * to their default states.  These settings do not apply to a cache that is not shared
-	 * @param newSpecifiedShared
-	 */
-	void setSpecifiedShared(Boolean newSpecifiedShared);
-		String SPECIFIED_SHARED_PROPERTY = "specifiedShared"; //$NON-NLS-1$
-	
-	
-	//***************** cache type ************************
-		
-	/**
-	 * This is the combination of defaultType and specifiedType.
-	 * If getSpecifiedType() returns null, then return getDefaultType()
-	 */
-	CacheType getType();
-	
-	CacheType getDefaultType();		
-		String DEFAULT_TYPE_PROPERTY = "defaultType"; //$NON-NLS-1$
-		CacheType DEFAULT_TYPE = CacheType.SOFT_WEAK;
-		
-	CacheType getSpecifiedType();	
-	void setSpecifiedType(CacheType newSpecifiedType);
-		String SPECIFIED_TYPE_PROPERTY = "specifiedType"; //$NON-NLS-1$
-	
-	
-	//***************** size ************************
-			
-	/**
-	 * This is the combination of defaultSize and specifiedSize.
-	 * If getSpecifiedSize() returns null, then return getDefaultSize()
-	 */
-	int getSize();
-
-	int getDefaultSize();
-	int DEFAULT_SIZE = 100;
-		String DEFAULT_SIZE_PROPERTY = "defaultSize"; //$NON-NLS-1$
-
-	Integer getSpecifiedSize();
-	void setSpecifiedSize(Integer newSpecifiedSize);
-		String SPECIFIED_SIZE_PROPERTY = "specifiedSize"; //$NON-NLS-1$
-	
-	//***************** always refresh ************************		
-		
-	/**
-	 * This is the combination of defaultAlwaysRefresh and specifiedAlwaysRefresh.
-	 * If getSpecifiedAlwaysRefresh() returns null, then return isDefaultAlwaysRefresh()
-	 */
-	boolean isAlwaysRefresh();
-	
-	boolean isDefaultAlwaysRefresh();
-		String DEFAULT_ALWAYS_REFRESH_PROPERTY = "defaultAlwaysRefresh"; //$NON-NLS-1$
-		boolean DEFAULT_ALWAYS_REFRESH = false;
-	
-	Boolean getSpecifiedAlwaysRefresh();
-	void setSpecifiedAlwaysRefresh(Boolean newSpecifiedAlwaysRefresh);
-		String SPECIFIED_ALWAYS_REFRESH_PROPERTY = "specifiedAlwaysRefresh"; //$NON-NLS-1$
-
-
-	//***************** refresh only if newer ************************
-		
-	/**
-	 * This is the combination of defaultRefreshOnlyIfNewer and specifiedRefreshOnlyIfNewer.
-	 * If getSpecifiedRefreshOnlyIfNewer() returns null, then return isDefaultRefreshOnlyIfNewer()
-	 */
-	boolean isRefreshOnlyIfNewer();
-	
-	boolean isDefaultRefreshOnlyIfNewer();
-		String DEFAULT_REFRESH_ONLY_IF_NEWER_PROPERTY = "defaultRefreshOnlyIfNewer"; //$NON-NLS-1$
-		boolean DEFAULT_REFRESH_ONLY_IF_NEWER = false;
-	
-	Boolean getSpecifiedRefreshOnlyIfNewer();
-	void setSpecifiedRefreshOnlyIfNewer(Boolean newSpecifiedRefreshOnlyIfNewer);
-		String SPECIFIED_REFRESH_ONLY_IF_NEWER_PROPERTY = "specifiedRefreshOnlyIfNewer"; //$NON-NLS-1$
-
-		
-	//***************** disable hits ************************
-		
-	/**
-	 * This is the combination of defaultDisableHits and specifiedDisableHits.
-	 * If getSpecifiedDisableHits() returns null, then return getDefaultDisableHits()
-	 */
-	boolean isDisableHits();
-	
-	boolean isDefaultDisableHits();
-		String DEFAULT_DISABLE_HITS_PROPERTY = "defaultDisableHits"; //$NON-NLS-1$
-		boolean DEFAULT_DISABLE_HITS = false;
-	
-	Boolean getSpecifiedDisableHits();
-	void setSpecifiedDisableHits(Boolean newSpecifiedDisableHits);
-		String SPECIFIED_DISABLE_HITS_PROPERTY = "specifiedDisableHits"; //$NON-NLS-1$
-
-		
-	//***************** coordination type ************************
-	
-	/**
-	 * This is the combination of defaultCoordinationType and specifiedCoordinationType.
-	 * If getSpecifiedCoordinationType() returns null, then return getDefaultCoordinationType()
-	 */
-	CacheCoordinationType getCoordinationType();
-	
-	CacheCoordinationType getDefaultCoordinationType();		
-		String DEFAULT_COORDINATION_TYPE_PROPERTY = "defaultCoordinationType"; //$NON-NLS-1$
-		CacheCoordinationType DEFAULT_COORDINATION_TYPE = CacheCoordinationType.SEND_OBJECT_CHANGES;
-		
-	CacheCoordinationType getSpecifiedCoordinationType();	
-	void setSpecifiedCoordinationType(CacheCoordinationType newSpecifiedCoordinationType);
-		String SPECIFIED_COORDINATION_TYPE_PROPERTY = "specifiedCoordinationType"; //$NON-NLS-1$
-
-			
-	//***************** existence checking ************************
-	
-	/**
-	 * This is the combination of defaultExistenceType and specifiedExistenceType.
-	 * If getSpecifiedExistenceType() returns null, then return getDefaultExistenceType()
-	 */
-	ExistenceType getExistenceType();
-	
-	ExistenceType getDefaultExistenceType();		
-		String DEFAULT_EXISTENCE_TYPE_PROPERTY = "defaultExistenceType"; //$NON-NLS-1$
-		ExistenceType DEFAULT_EXISTENCE_TYPE = ExistenceType.CHECK_DATABASE;
-		
-	ExistenceType getSpecifiedExistenceType();	
-	void setSpecifiedExistenceType(ExistenceType newSpecifiedExistenceType);
-		String SPECIFIED_EXISTENCE_TYPE_PROPERTY = "specifiedExistenceType"; //$NON-NLS-1$
-
-		
-	//***************** expiry ************************
-
-	/**
-	 * corresponds to the Cache expiry element.  If this returns
-	 * a non-null value then getExpiryTimeOfDay will return null.
-	 * It is not valid to specify both
-	 */
-	Integer getExpiry();
-	
-	/**
-	 * Setting this to a non-null value will set timeOfDayExpiry to null
-	 * @param expiry
-	 */
-	void setExpiry(Integer expiry);
-		String EXPIRY_PROPERTY = "expiry"; //$NON-NLS-1$
-	
-		
-	/**
-	 * corresponds to the Cache expiryTimeOfDay annotation or xml element.  
-	 * If this returns a non-null value then getExpiry will return null.
-	 * It is not valid to specify both.
-	 */
-	ExpiryTimeOfDay getExpiryTimeOfDay();
-	
-	/**
-	 * Add Cache expiryTimeOfDay annotation or xml element, this will set 
-	 * Expiry to null as it is not valid to set both expiry and timeOfDayExpiry
-	 */
-	ExpiryTimeOfDay addExpiryTimeOfDay();
-	
-	/**
-	 * Removes the Cache expiryTimeOfDay annotation/xml element
-	 */
-	void removeExpiryTimeOfDay();
-		String EXPIRY_TIME_OF_DAY_PROPERTY = "expiryTimeOfDay"; //$NON-NLS-1$
-}
diff --git a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/context/ChangeTracking.java b/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/context/ChangeTracking.java
deleted file mode 100644
index d4cfa60..0000000
--- a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/context/ChangeTracking.java
+++ /dev/null
@@ -1,39 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008, 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.eclipselink.core.context;
-
-import org.eclipse.jpt.core.context.JpaContextNode;
-
-/**
- * Provisional API: This interface is part of an interim API that is still
- * under development and expected to change significantly before reaching
- * stability. It is available at this early stage to solicit feedback from
- * pioneering adopters on the understanding that any code that uses this API
- * will almost certainly be broken (repeatedly) as the API evolves.
- * 
- * @version 2.1
- * @since 2.1
- */
-public interface ChangeTracking extends JpaContextNode
-{
-	/**
-	 * This is the combination of defaultType and specifiedType.
-	 * If getSpecifiedType() returns null, then return getDefaultType()
-	 */
-	ChangeTrackingType getType();
-	
-	ChangeTrackingType getDefaultType();		
-		String DEFAULT_TYPE_PROPERTY = "defaultType"; //$NON-NLS-1$
-		ChangeTrackingType DEFAULT_TYPE = ChangeTrackingType.AUTO;
-		
-	ChangeTrackingType getSpecifiedType();	
-	void setSpecifiedType(ChangeTrackingType newSpecifiedType);
-		String SPECIFIED_TYPE_PROPERTY = "specifiedType"; //$NON-NLS-1$
-}
\ No newline at end of file
diff --git a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/context/ChangeTrackingType.java b/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/context/ChangeTrackingType.java
deleted file mode 100644
index 396500f..0000000
--- a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/context/ChangeTrackingType.java
+++ /dev/null
@@ -1,106 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.eclipselink.core.context;
-
-import org.eclipse.jpt.eclipselink.core.resource.orm.XmlChangeTrackingType;
-
-
-/**
- * 
- * 
- * Provisional API: This interface is part of an interim API that is still
- * under development and expected to change significantly before reaching
- * stability. It is available at this early stage to solicit feedback from
- * pioneering adopters on the understanding that any code that uses this API
- * will almost certainly be broken (repeatedly) as the API evolves.
- * 
- * @version 2.1
- * @since 2.1
- */
-public enum ChangeTrackingType {
-
-	ATTRIBUTE,
-	OBJECT,
-	DEFERRED,
-	AUTO;
-	
-
-	public static ChangeTrackingType fromJavaResourceModel(org.eclipse.jpt.eclipselink.core.resource.java.ChangeTrackingType javaChangeTrackingType) {
-		if (javaChangeTrackingType == null) {
-			return null;
-		}
-		switch (javaChangeTrackingType) {
-			case ATTRIBUTE:
-				return ATTRIBUTE;
-			case OBJECT:
-				return OBJECT;
-			case DEFERRED:
-				return DEFERRED;
-			case AUTO:
-				return AUTO;
-			default:
-				throw new IllegalArgumentException("unknown change tracking type: " + javaChangeTrackingType); //$NON-NLS-1$
-		}
-	}
-
-	public static org.eclipse.jpt.eclipselink.core.resource.java.ChangeTrackingType toJavaResourceModel(ChangeTrackingType changeTrackingType) {
-		if (changeTrackingType == null) {
-			return null;
-		}
-		switch (changeTrackingType) {
-			case ATTRIBUTE:
-				return org.eclipse.jpt.eclipselink.core.resource.java.ChangeTrackingType.ATTRIBUTE;
-			case OBJECT:
-				return org.eclipse.jpt.eclipselink.core.resource.java.ChangeTrackingType.OBJECT;
-			case DEFERRED:
-				return org.eclipse.jpt.eclipselink.core.resource.java.ChangeTrackingType.DEFERRED;
-			case AUTO:
-				return org.eclipse.jpt.eclipselink.core.resource.java.ChangeTrackingType.AUTO;
-			default:
-				throw new IllegalArgumentException("unknown change tracking type: " + changeTrackingType); //$NON-NLS-1$
-		}
-	}
-	
-	public static ChangeTrackingType fromOrmResourceModel(XmlChangeTrackingType ormChangeTrackingType) {
-		if (ormChangeTrackingType == null) {
-			return null;
-		}
-		switch (ormChangeTrackingType) {
-			case ATTRIBUTE:
-				return ATTRIBUTE;
-			case OBJECT:
-				return OBJECT;
-			case DEFERRED:
-				return DEFERRED;
-			case AUTO:
-				return AUTO;
-			default:
-				throw new IllegalArgumentException("unknown change tracking type: " + ormChangeTrackingType);
-		}
-	}
-	
-	public static XmlChangeTrackingType toOrmResourceModel(ChangeTrackingType changeTrackingType) {
-		if (changeTrackingType == null) {
-			return null;
-		}
-		switch (changeTrackingType) {
-			case ATTRIBUTE:
-				return XmlChangeTrackingType.ATTRIBUTE;
-			case OBJECT:
-				return XmlChangeTrackingType.OBJECT;
-			case DEFERRED:
-				return XmlChangeTrackingType.DEFERRED;
-			case AUTO:
-				return XmlChangeTrackingType.AUTO;
-			default:
-				throw new IllegalArgumentException("unknown change tracking type: " + changeTrackingType);
-		}
-	}
-}
diff --git a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/context/ConversionValue.java b/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/context/ConversionValue.java
deleted file mode 100644
index b3c1b6f..0000000
--- a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/context/ConversionValue.java
+++ /dev/null
@@ -1,37 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008, 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.eclipselink.core.context;
-
-import org.eclipse.jpt.core.context.JpaContextNode;
-
-/**
- * Corresponds to a ConversionValue resource model object
- * 
- * Provisional API: This interface is part of an interim API that is still
- * under development and expected to change significantly before reaching
- * stability. It is available at this early stage to solicit feedback from
- * pioneering adopters on the understanding that any code that uses this API
- * will almost certainly be broken (repeatedly) as the API evolves.
- * 
- * @version 2.1
- * @since 2.1
- */
-public interface ConversionValue extends JpaContextNode
-{
-	String getDataValue();	
-	void setDataValue(String dataValue);
-		String DATA_VALUE_PROPERTY = "dataValue"; //$NON-NLS-1$
-		
-	String getObjectValue();	
-	void setObjectValue(String objectValue);
-		String OBJECT_VALUE_PROPERTY = "objectValue"; //$NON-NLS-1$
-
-	ObjectTypeConverter getParent();
-}
diff --git a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/context/Convert.java b/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/context/Convert.java
deleted file mode 100644
index 421f5f0..0000000
--- a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/context/Convert.java
+++ /dev/null
@@ -1,86 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008, 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.eclipselink.core.context;
-
-import org.eclipse.jpt.core.context.Converter;
-import org.eclipse.jpt.core.context.JpaContextNode;
-
-/**
- * Corresponds to a Convert resource model object
- * 
- * Provisional API: This interface is part of an interim API that is still
- * under development and expected to change significantly before reaching
- * stability. It is available at this early stage to solicit feedback from
- * pioneering adopters on the understanding that any code that uses this API
- * will almost certainly be broken (repeatedly) as the API evolves.
- * 
- * @version 2.1
- * @since 2.1
- */
-public interface Convert extends JpaContextNode, Converter
-{
-	
-	String ECLIPSE_LINK_CONVERTER = "eclipseLinkConverter"; //$NON-NLS-1$
-	
-	String getConverterName();
-	
-	String getDefaultConverterName();
-		String DEFAULT_CONVERTER_NAME_PROPERTY = "defaultConverterName"; //$NON-NLS-1$
-
-	String getSpecifiedConverterName();
-	
-	void setSpecifiedConverterName(String converterName);
-		String SPECIFIED_CONVERTER_NAME_PROPERTY = "specifiedConverterName"; //$NON-NLS-1$
-	
-	/**
-	 * Reserved name for specifying a serialized object converter.  In this
-	 * case there does not need to be a corresponding @CustomConverter defined.
-	 */
-	String SERIALIZED_CONVERTER = "serialized"; //$NON-NLS-1$
-	
-	/**
-	 * Reserved name for specifying a class instance converter.  Will use a ClassInstanceConverter
-	 * on the associated mapping.  When using a ClassInstanceConverter the database representation is a 
-	 * String representing the Class name and the object-model representation is an instance 
-	 * of that class built with a no-args constructor
-	 * In this case there does not need to be a corresponding @CustomConverter defined.
-	 */
-	String CLASS_INSTANCE_CONVERTER = "class-instance"; //$NON-NLS-1$
-	
-	/**
-	 * Reserved name for specifying no converter.  This can be used to override a situation where either 
-	 *  another converter is defaulted or another converter is set.
-	 *  In this case there does not need to be a corresponding @CustomConverter defined.
-	 */
-	String NO_CONVERTER = "none"; //$NON-NLS-1$
-	
-	String[] RESERVED_CONVERTER_NAMES = {NO_CONVERTER, CLASS_INSTANCE_CONVERTER, SERIALIZED_CONVERTER};
-	
-	String DEFAULT_CONVERTER_NAME = NO_CONVERTER;
-
-	/**
-	 * This will return null if there is no converter specified on the mapping
-	 * @return
-	 */
-	EclipseLinkConverter getConverter();
-		String CONVERTER_PROPERTY = "converter"; //$NON-NLS-1$
-	
-	/**
-	 * Possible values for converter type are:
-	 * {@value EclipseLinkNamedConverter#TYPE_CONVERTER}
-	 * {@value EclipseLinkNamedConverter#STRUCT_CONVERTER}
-	 * {@value EclipseLinkNamedConverter#CUSTOM_CONVERTER}
-	 * {@value EclipseLinkNamedConverter#NO_CONVERTER}
-	 * {@value EclipseLinkNamedConverter#OBJECT_TYPE_CONVERTER}
-	 * @param converterType
-	 */
-	void setConverter(String converterType);
-
-}
diff --git a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/context/CustomConverter.java b/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/context/CustomConverter.java
deleted file mode 100644
index f93fa9d..0000000
--- a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/context/CustomConverter.java
+++ /dev/null
@@ -1,32 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008, 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.eclipselink.core.context;
-
-/**
- * Corresponds to a CustomConverter resource model object
- * 
- * Provisional API: This interface is part of an interim API that is still
- * under development and expected to change significantly before reaching
- * stability. It is available at this early stage to solicit feedback from
- * pioneering adopters on the understanding that any code that uses this API
- * will almost certainly be broken (repeatedly) as the API evolves.
- * 
- * @version 2.1
- * @since 2.1
- */
-public interface CustomConverter extends EclipseLinkConverter
-{
-		
-	String getConverterClass();	
-	void setConverterClass(String converterClass);
-		String CONVERTER_CLASS_PROPERTY = "converterClass"; //$NON-NLS-1$
-		String ECLIPSELINK_CONVERTER_CLASS_NAME = "org.eclipse.persistence.mappings.converters.Converter"; //$NON-NLS-1$
-
-}
diff --git a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/context/Customizer.java b/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/context/Customizer.java
deleted file mode 100644
index fcf6f98..0000000
--- a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/context/Customizer.java
+++ /dev/null
@@ -1,45 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008, 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.eclipselink.core.context;
-
-import org.eclipse.jpt.core.context.JpaContextNode;
-
-/**
- * Corresponds to a Customizer resource model object
- * 
- * Provisional API: This interface is part of an interim API that is still
- * under development and expected to change significantly before reaching
- * stability. It is available at this early stage to solicit feedback from
- * pioneering adopters on the understanding that any code that uses this API
- * will almost certainly be broken (repeatedly) as the API evolves.
- * 
- * @version 2.1
- * @since 2.1
- */
-public interface Customizer extends JpaContextNode
-{
-	
-	String getCustomizerClass();
-	
-	String getDefaultCustomizerClass();
-		String DEFAULT_CUSTOMIZER_CLASS_PROPERTY = "defaultCustomizerClass"; //$NON-NLS-1$
-	
-	String getSpecifiedCustomizerClass();	
-	void setSpecifiedCustomizerClass(String customizerClass);
-		String SPECIFIED_CUSTOMIZER_CLASS_PROPERTY = "specifiedCustomizerClass"; //$NON-NLS-1$
-		String ECLIPSELINK_DESCRIPTOR_CUSTOMIZER_CLASS_NAME = "org.eclipse.persistence.config.DescriptorCustomizer"; //$NON-NLS-1$
-
-	/**
-	 * Return the char to be used for browsing or creating the customizer class IType.
-	 * @see org.eclipse.jdt.core.IType#getFullyQualifiedName(char)
-	 */
-	char getCustomizerClassEnclosingTypeSeparator();
-
-}
diff --git a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/context/EclipseLinkBasicMapping.java b/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/context/EclipseLinkBasicMapping.java
deleted file mode 100644
index 3bd5ae1..0000000
--- a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/context/EclipseLinkBasicMapping.java
+++ /dev/null
@@ -1,29 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.eclipselink.core.context;
-
-import org.eclipse.jpt.core.context.BasicMapping;
-
-/**
- * 
- * 
- * Provisional API: This interface is part of an interim API that is still
- * under development and expected to change significantly before reaching
- * stability. It is available at this early stage to solicit feedback from
- * pioneering adopters on the understanding that any code that uses this API
- * will almost certainly be broken (repeatedly) as the API evolves.
- * 
- * @version 2.1
- * @since 2.1
- */
-public interface EclipseLinkBasicMapping extends BasicMapping
-{
-	Mutable getMutable();
-}
diff --git a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/context/EclipseLinkConverter.java b/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/context/EclipseLinkConverter.java
deleted file mode 100644
index ad9b3f9..0000000
--- a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/context/EclipseLinkConverter.java
+++ /dev/null
@@ -1,64 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008, 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.eclipselink.core.context;
-
-import org.eclipse.jpt.core.context.JpaContextNode;
-
-/**
- * Corresponds to a *CustomConverter resource model object
- * 
- * Provisional API: This interface is part of an interim API that is still
- * under development and expected to change significantly before reaching
- * stability. It is available at this early stage to solicit feedback from
- * pioneering adopters on the understanding that any code that uses this API
- * will almost certainly be broken (repeatedly) as the API evolves.
- * 
- * @version 2.1
- * @since 2.1
- */
-public interface EclipseLinkConverter extends JpaContextNode
-{
-	/**
-	 * Return a string that represents the type of converter.
-	 * Possibilities are below, NO_CONVERTER, CUSTOM_CONVERTER, 
-	 * OBJECT_TYPE_CONVERTER, STRUCT_CONVERTER, TYPE_CONVERTER
-	 */
-	String getType();
-		String NO_CONVERTER = "noConverter"; //$NON-NLS-1$
-		String CUSTOM_CONVERTER = "customConverter"; //$NON-NLS-1$
-		String OBJECT_TYPE_CONVERTER = "objectTypeConverter"; //$NON-NLS-1$
-		String STRUCT_CONVERTER = "structConverter"; //$NON-NLS-1$
-		String TYPE_CONVERTER = "typeConverter"; //$NON-NLS-1$
-	
-	String getName();	
-	void setName(String name);
-		String NAME_PROPERTY = "name"; //$NON-NLS-1$
-	
-	/**
-	 * Return the char to be used for browsing or creating the converter class IType.
-	 * @see org.eclipse.jdt.core.IType#getFullyQualifiedName(char)
-	 */
-	char getEnclosingTypeSeparator();
-
-	/**
-	 * Return whether the converter definition overrides the definition of the 
-	 * given converter
-	 * (e.g. a converter defined in orm.xml overrides one defined in java).
-	 */
-	boolean overrides(EclipseLinkConverter converter);
-	
-	/**
-	 * Return whether the converter is a duplicate of the given converter.
-	 * A converter is not a duplicate of another converter if is the same exact converter,
-	 * if it is a nameless converter (which is an error condition), or if it overrides 
-	 * or is overridden by the other converter. 
-	 */
-	boolean duplicates(EclipseLinkConverter converter);
-}
diff --git a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/context/EclipseLinkEmbeddable.java b/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/context/EclipseLinkEmbeddable.java
deleted file mode 100644
index 03c1395..0000000
--- a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/context/EclipseLinkEmbeddable.java
+++ /dev/null
@@ -1,29 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.eclipselink.core.context;
-
-import org.eclipse.jpt.core.context.Embeddable;
-
-/**
- * Provisional API: This interface is part of an interim API that is still
- * under development and expected to change significantly before reaching
- * stability. It is available at this early stage to solicit feedback from
- * pioneering adopters on the understanding that any code that uses this API
- * will almost certainly be broken (repeatedly) as the API evolves.
- * 
- * @version 2.1
- * @since 2.1
- */
-public interface EclipseLinkEmbeddable extends Embeddable
-{
-	Customizer getCustomizer();
-	
-	ChangeTracking getChangeTracking();
-}
\ No newline at end of file
diff --git a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/context/EclipseLinkEntity.java b/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/context/EclipseLinkEntity.java
deleted file mode 100644
index c6683a6..0000000
--- a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/context/EclipseLinkEntity.java
+++ /dev/null
@@ -1,33 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.eclipselink.core.context;
-
-import org.eclipse.jpt.core.context.Entity;
-
-/**
- * Provisional API: This interface is part of an interim API that is still
- * under development and expected to change significantly before reaching
- * stability. It is available at this early stage to solicit feedback from
- * pioneering adopters on the understanding that any code that uses this API
- * will almost certainly be broken (repeatedly) as the API evolves.
- * 
- * @version 2.1
- * @since 2.1
- */
-public interface EclipseLinkEntity extends Entity
-{
-	Caching getCaching();
-	
-	ReadOnly getReadOnly();
-	
-	Customizer getCustomizer();
-	
-	ChangeTracking getChangeTracking();
-}
diff --git a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/context/EclipseLinkIdMapping.java b/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/context/EclipseLinkIdMapping.java
deleted file mode 100644
index c5b6ac9..0000000
--- a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/context/EclipseLinkIdMapping.java
+++ /dev/null
@@ -1,29 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.eclipselink.core.context;
-
-import org.eclipse.jpt.core.context.IdMapping;
-
-/**
- * 
- * 
- * Provisional API: This interface is part of an interim API that is still
- * under development and expected to change significantly before reaching
- * stability. It is available at this early stage to solicit feedback from
- * pioneering adopters on the understanding that any code that uses this API
- * will almost certainly be broken (repeatedly) as the API evolves.
- * 
- * @version 2.1
- * @since 2.1
- */
-public interface EclipseLinkIdMapping extends IdMapping
-{
-	Mutable getMutable();
-}
diff --git a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/context/EclipseLinkMappedSuperclass.java b/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/context/EclipseLinkMappedSuperclass.java
deleted file mode 100644
index 4ab4a1a..0000000
--- a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/context/EclipseLinkMappedSuperclass.java
+++ /dev/null
@@ -1,33 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.eclipselink.core.context;
-
-import org.eclipse.jpt.core.context.MappedSuperclass;
-
-/**
- * Provisional API: This interface is part of an interim API that is still
- * under development and expected to change significantly before reaching
- * stability. It is available at this early stage to solicit feedback from
- * pioneering adopters on the understanding that any code that uses this API
- * will almost certainly be broken (repeatedly) as the API evolves.
- * 
- * @version 2.1
- * @since 2.1
- */
-public interface EclipseLinkMappedSuperclass extends MappedSuperclass
-{
-	Caching getCaching();
-	
-	ReadOnly getReadOnly();
-	
-	Customizer getCustomizer();
-	
-	ChangeTracking getChangeTracking();
-}
\ No newline at end of file
diff --git a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/context/EclipseLinkOneToManyMapping.java b/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/context/EclipseLinkOneToManyMapping.java
deleted file mode 100644
index 3c1a6a6..0000000
--- a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/context/EclipseLinkOneToManyMapping.java
+++ /dev/null
@@ -1,30 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.eclipselink.core.context;
-
-import org.eclipse.jpt.core.context.OneToManyMapping;
-
-/**
- * Provisional API: This interface is part of an interim API that is still
- * under development and expected to change significantly before reaching
- * stability. It is available at this early stage to solicit feedback from
- * pioneering adopters on the understanding that any code that uses this API
- * will almost certainly be broken (repeatedly) as the API evolves.
- * 
- * @version 2.1
- * @since 2.1
- */
-public interface EclipseLinkOneToManyMapping 
-	extends OneToManyMapping, EclipseLinkRelationshipMapping
-{
-	EclipseLinkOneToManyRelationshipReference getRelationshipReference();
-	
-	PrivateOwned getPrivateOwned();
-}
diff --git a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/context/EclipseLinkOneToManyRelationshipReference.java b/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/context/EclipseLinkOneToManyRelationshipReference.java
deleted file mode 100644
index fd10172..0000000
--- a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/context/EclipseLinkOneToManyRelationshipReference.java
+++ /dev/null
@@ -1,33 +0,0 @@
-/*******************************************************************************
- *  Copyright (c) 2009  Oracle. 
- *  All rights reserved.  This program and the accompanying materials are 
- *  made available under the terms of the Eclipse Public License v1.0 which 
- *  accompanies this distribution, and is available at 
- *  http://www.eclipse.org/legal/epl-v10.html
- *  
- *  Contributors: 
- *  	Oracle - initial API and implementation
- *******************************************************************************/
-package org.eclipse.jpt.eclipselink.core.context;
-
-import org.eclipse.jpt.core.context.JoinColumnEnabledRelationshipReference;
-import org.eclipse.jpt.core.context.OneToManyRelationshipReference;
-import org.eclipse.jpt.core.context.RelationshipReference;
-
-
-/**
- * Represents the {@link RelationshipReference} of an 
- * {@link EclipseLinkOneToManyMapping}
- * 
- * Provisional API: This interface is part of an interim API that is still
- * under development and expected to change significantly before reaching
- * stability. It is available at this early stage to solicit feedback from
- * pioneering adopters on the understanding that any code that uses this API
- * will almost certainly be broken (repeatedly) as the API evolves.
- */
-public interface EclipseLinkOneToManyRelationshipReference
-	extends OneToManyRelationshipReference,
-		JoinColumnEnabledRelationshipReference
-{
-	
-}
diff --git a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/context/EclipseLinkOneToOneMapping.java b/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/context/EclipseLinkOneToOneMapping.java
deleted file mode 100644
index be1c9b3..0000000
--- a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/context/EclipseLinkOneToOneMapping.java
+++ /dev/null
@@ -1,29 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.eclipselink.core.context;
-
-import org.eclipse.jpt.core.context.OneToOneMapping;
-
-/**
- * 
- * 
- * Provisional API: This interface is part of an interim API that is still
- * under development and expected to change significantly before reaching
- * stability. It is available at this early stage to solicit feedback from
- * pioneering adopters on the understanding that any code that uses this API
- * will almost certainly be broken (repeatedly) as the API evolves.
- * 
- * @version 2.1
- * @since 2.1
- */
-public interface EclipseLinkOneToOneMapping extends OneToOneMapping, EclipseLinkRelationshipMapping
-{
-	PrivateOwned getPrivateOwned();
-}
diff --git a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/context/EclipseLinkRelationshipMapping.java b/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/context/EclipseLinkRelationshipMapping.java
deleted file mode 100644
index 26fc3f9..0000000
--- a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/context/EclipseLinkRelationshipMapping.java
+++ /dev/null
@@ -1,28 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.eclipselink.core.context;
-
-import org.eclipse.jpt.core.context.RelationshipMapping;
-
-/**
- * Provisional API: This interface is part of an interim API that is still
- * under development and expected to change significantly before reaching
- * stability. It is available at this early stage to solicit feedback from
- * pioneering adopters on the understanding that any code that uses this API
- * will almost certainly be broken (repeatedly) as the API evolves.
- * 
- * @version 2.1
- * @since 2.1
- */
-public interface EclipseLinkRelationshipMapping 
-	extends RelationshipMapping
-{
-	JoinFetch getJoinFetch();
-}
diff --git a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/context/EclipseLinkVersionMapping.java b/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/context/EclipseLinkVersionMapping.java
deleted file mode 100644
index 09327bb..0000000
--- a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/context/EclipseLinkVersionMapping.java
+++ /dev/null
@@ -1,30 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.eclipselink.core.context;
-
-import org.eclipse.jpt.core.context.VersionMapping;
-
-/**
- * 
- * 
- * Provisional API: This interface is part of an interim API that is still
- * under development and expected to change significantly before reaching
- * stability. It is available at this early stage to solicit feedback from
- * pioneering adopters on the understanding that any code that uses this API
- * will almost certainly be broken (repeatedly) as the API evolves.
- * 
- * @version 2.1
- * @since 2.1
- */
-public interface EclipseLinkVersionMapping
-	extends VersionMapping
-{
-	Mutable getMutable();
-}
diff --git a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/context/ExistenceType.java b/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/context/ExistenceType.java
deleted file mode 100644
index a1e3807..0000000
--- a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/context/ExistenceType.java
+++ /dev/null
@@ -1,106 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.eclipselink.core.context;
-
-
-/**
- * 
- * 
- * Provisional API: This interface is part of an interim API that is still
- * under development and expected to change significantly before reaching
- * stability. It is available at this early stage to solicit feedback from
- * pioneering adopters on the understanding that any code that uses this API
- * will almost certainly be broken (repeatedly) as the API evolves.
- * 
- * @version 2.1
- * @since 2.1
- */
-public enum ExistenceType {
-
-    CHECK_CACHE,
-    CHECK_DATABASE,
-    ASSUME_EXISTENCE,
-    ASSUME_NON_EXISTENCE;
-	
-
-	public static ExistenceType fromJavaResourceModel(org.eclipse.jpt.eclipselink.core.resource.java.ExistenceType javaExistenceType) {
-		if (javaExistenceType == null) {
-			return null;
-		}
-		switch (javaExistenceType) {
-			case CHECK_CACHE:
-				return CHECK_CACHE;
-			case CHECK_DATABASE:
-				return CHECK_DATABASE;
-			case ASSUME_EXISTENCE:
-				return ASSUME_EXISTENCE;
-			case ASSUME_NON_EXISTENCE:
-				return ASSUME_NON_EXISTENCE;
-			default:
-				throw new IllegalArgumentException("unknown existence type: " + javaExistenceType); //$NON-NLS-1$
-		}
-	}
-
-	public static org.eclipse.jpt.eclipselink.core.resource.java.ExistenceType toJavaResourceModel(ExistenceType existenceType) {
-		if (existenceType == null) {
-			return null;
-		}
-		switch (existenceType) {
-			case CHECK_CACHE:
-				return org.eclipse.jpt.eclipselink.core.resource.java.ExistenceType.CHECK_CACHE;
-			case CHECK_DATABASE:
-				return org.eclipse.jpt.eclipselink.core.resource.java.ExistenceType.CHECK_DATABASE;
-			case ASSUME_EXISTENCE:
-				return org.eclipse.jpt.eclipselink.core.resource.java.ExistenceType.ASSUME_EXISTENCE;
-			case ASSUME_NON_EXISTENCE:
-				return org.eclipse.jpt.eclipselink.core.resource.java.ExistenceType.ASSUME_NON_EXISTENCE;
-			default:
-				throw new IllegalArgumentException("unknown existence type: " + existenceType); //$NON-NLS-1$
-		}
-	}
-	
-
-	public static ExistenceType fromOrmResourceModel(org.eclipse.jpt.eclipselink.core.resource.orm.ExistenceType ormExistenceType) {
-		if (ormExistenceType == null) {
-			return null;
-		}
-		switch (ormExistenceType) {
-			case CHECK_CACHE:
-				return CHECK_CACHE;
-			case CHECK_DATABASE:
-				return CHECK_DATABASE;
-			case ASSUME_EXISTENCE:
-				return ASSUME_EXISTENCE;
-			case ASSUME_NON_EXISTENCE:
-				return ASSUME_NON_EXISTENCE;
-			default:
-				throw new IllegalArgumentException("unknown existence type: " + ormExistenceType); //$NON-NLS-1$
-		}
-	}
-	
-	public static org.eclipse.jpt.eclipselink.core.resource.orm.ExistenceType toOrmResourceModel(ExistenceType existenceType) {
-		if (existenceType == null) {
-			return null;
-		}
-		switch (existenceType) {
-			case CHECK_CACHE:
-				return org.eclipse.jpt.eclipselink.core.resource.orm.ExistenceType.CHECK_CACHE;
-			case CHECK_DATABASE:
-				return org.eclipse.jpt.eclipselink.core.resource.orm.ExistenceType.CHECK_DATABASE;
-			case ASSUME_EXISTENCE:
-				return org.eclipse.jpt.eclipselink.core.resource.orm.ExistenceType.ASSUME_EXISTENCE;
-			case ASSUME_NON_EXISTENCE:
-				return org.eclipse.jpt.eclipselink.core.resource.orm.ExistenceType.ASSUME_NON_EXISTENCE;
-			default:
-				throw new IllegalArgumentException("unknown existence type: " + existenceType); //$NON-NLS-1$
-		}
-	}
-
-}
diff --git a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/context/ExpiryTimeOfDay.java b/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/context/ExpiryTimeOfDay.java
deleted file mode 100644
index fdc28b2..0000000
--- a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/context/ExpiryTimeOfDay.java
+++ /dev/null
@@ -1,45 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008, 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.eclipselink.core.context;
-
-import org.eclipse.jpt.core.context.JpaContextNode;
-
-/**
- * Corresponds to a TimeOfDay resource model object
- * 
- * Provisional API: This interface is part of an interim API that is still
- * under development and expected to change significantly before reaching
- * stability. It is available at this early stage to solicit feedback from
- * pioneering adopters on the understanding that any code that uses this API
- * will almost certainly be broken (repeatedly) as the API evolves.
- * 
- * @version 2.1
- * @since 2.1
- */
-public interface ExpiryTimeOfDay extends JpaContextNode
-{
-	
-	Integer getHour();
-	void setHour(Integer hour);
-		String HOUR_PROPERTY = "hour"; //$NON-NLS-1$
-
-	Integer getMinute();
-	void setMinute(Integer minute);
-		String MINUTE_PROPERTY = "minute"; //$NON-NLS-1$
-	
-	Integer getSecond();
-	void setSecond(Integer second);
-		String SECOND_PROPERTY = "second"; //$NON-NLS-1$
-	
-	Integer getMillisecond();
-	void setMillisecond(Integer millisecond);
-		String MILLISECOND_PROPERTY = "millisecond"; //$NON-NLS-1$
-
-}
diff --git a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/context/JoinFetch.java b/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/context/JoinFetch.java
deleted file mode 100644
index 481c20b..0000000
--- a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/context/JoinFetch.java
+++ /dev/null
@@ -1,30 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008, 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.eclipselink.core.context;
-
-import org.eclipse.jpt.core.context.JpaContextNode;
-
-/**
- * Provisional API: This interface is part of an interim API that is still
- * under development and expected to change significantly before reaching
- * stability. It is available at this early stage to solicit feedback from
- * pioneering adopters on the understanding that any code that uses this API
- * will almost certainly be broken (repeatedly) as the API evolves.
- * 
- * @version 2.1
- * @since 2.1
- */
-public interface JoinFetch extends JpaContextNode
-{
-	JoinFetchType getValue();
-	void setValue(JoinFetchType newJoinFetchValue);
-		String VALUE_PROPERTY = "value"; //$NON-NLS-1$
-		JoinFetchType DEFAULT_VALUE = JoinFetchType.INNER;
-}
diff --git a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/context/JoinFetchType.java b/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/context/JoinFetchType.java
deleted file mode 100644
index c01b4ed..0000000
--- a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/context/JoinFetchType.java
+++ /dev/null
@@ -1,89 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.eclipselink.core.context;
-
-import org.eclipse.jpt.eclipselink.core.resource.orm.XmlJoinFetchType;
-
-/**
- * 
- * 
- * Provisional API: This interface is part of an interim API that is still
- * under development and expected to change significantly before reaching
- * stability. It is available at this early stage to solicit feedback from
- * pioneering adopters on the understanding that any code that uses this API
- * will almost certainly be broken (repeatedly) as the API evolves.
- * 
- * @version 2.1
- * @since 2.1
- */
-public enum JoinFetchType {
-
-	INNER,
-	OUTER;
-	
-
-	public static JoinFetchType fromJavaResourceModel(org.eclipse.jpt.eclipselink.core.resource.java.JoinFetchType javaJoinFetchType) {
-		if (javaJoinFetchType == null) {
-			return null;
-		}
-		switch (javaJoinFetchType) {
-			case INNER:
-				return INNER;
-			case OUTER:
-				return OUTER;
-			default:
-				throw new IllegalArgumentException("unknown join fetch type: " + javaJoinFetchType); //$NON-NLS-1$
-		}
-	}
-
-	public static org.eclipse.jpt.eclipselink.core.resource.java.JoinFetchType toJavaResourceModel(JoinFetchType joinFetchType) {
-		if (joinFetchType == null) {
-			return null;
-		}
-		switch (joinFetchType) {
-			case INNER:
-				return org.eclipse.jpt.eclipselink.core.resource.java.JoinFetchType.INNER;
-			case OUTER:
-				return org.eclipse.jpt.eclipselink.core.resource.java.JoinFetchType.OUTER;
-			default:
-				throw new IllegalArgumentException("unknown join fetch type: " + joinFetchType); //$NON-NLS-1$
-		}
-	}
-	
-
-	public static JoinFetchType fromOrmResourceModel(XmlJoinFetchType ormJoinFetchType) {
-		if (ormJoinFetchType == null) {
-			return null;
-		}
-		switch (ormJoinFetchType) {
-			case INNER:
-				return INNER;
-			case OUTER:
-				return OUTER;
-			default:
-				throw new IllegalArgumentException("unknown join fetch type: " + ormJoinFetchType); //$NON-NLS-1$
-		}
-	}
-	
-	public static XmlJoinFetchType toOrmResourceModel(JoinFetchType fetchType) {
-		if (fetchType == null) {
-			return null;
-		}
-		switch (fetchType) {
-			case INNER:
-				return XmlJoinFetchType.INNER;
-			case OUTER:
-				return XmlJoinFetchType.OUTER;
-			default:
-				throw new IllegalArgumentException("unknown join fetch type: " + fetchType); //$NON-NLS-1$
-		}
-	}
-
-}
diff --git a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/context/Mutable.java b/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/context/Mutable.java
deleted file mode 100644
index 1913055..0000000
--- a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/context/Mutable.java
+++ /dev/null
@@ -1,34 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008, 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.eclipselink.core.context;
-
-import org.eclipse.jpt.core.context.JpaContextNode;
-
-/**
- * Provisional API: This interface is part of an interim API that is still
- * under development and expected to change significantly before reaching
- * stability. It is available at this early stage to solicit feedback from
- * pioneering adopters on the understanding that any code that uses this API
- * will almost certainly be broken (repeatedly) as the API evolves.
- * 
- * @version 2.1
- * @since 2.1
- */
-public interface Mutable extends JpaContextNode
-{
-	boolean isMutable();
-	
-	boolean isDefaultMutable();
-		String DEFAULT_MUTABLE_PROPERTY = "defaultMutable";  //$NON-NLS-1$
-	
-	Boolean getSpecifiedMutable();
-	void setSpecifiedMutable(Boolean newSpecifiedMutable);
-		String SPECIFIED_MUTABLE_PROPERTY = "specifiedMutable";  //$NON-NLS-1$
-}
diff --git a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/context/ObjectTypeConverter.java b/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/context/ObjectTypeConverter.java
deleted file mode 100644
index 0c69601..0000000
--- a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/context/ObjectTypeConverter.java
+++ /dev/null
@@ -1,92 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008, 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.eclipselink.core.context;
-
-import java.util.ListIterator;
-
-/**
- * Corresponds to a ObjectTypeConverter resource model object
- * 
- * Provisional API: This interface is part of an interim API that is still
- * under development and expected to change significantly before reaching
- * stability. It is available at this early stage to solicit feedback from
- * pioneering adopters on the understanding that any code that uses this API
- * will almost certainly be broken (repeatedly) as the API evolves.
- * 
- * @version 2.1
- * @since 2.1
- */
-public interface ObjectTypeConverter extends EclipseLinkConverter
-{
-	String getDataType();	
-	void setDataType(String dataType);
-		String DATA_TYPE_PROPERTY = "dataType"; //$NON-NLS-1$
-		
-	String getObjectType();	
-	void setObjectType(String objectType);
-		String OBJECT_TYPE_PROPERTY = "objectType"; //$NON-NLS-1$
-
-	
-	// **************** conversion values **************************************
-
-	/**
-	 * Return a list iterator of the conversion values.
-	 * This will not be null.
-	 */
-	<T extends ConversionValue> ListIterator<T> conversionValues();
-
-	/**
-	 * Return the number of conversion values.
-	 */
-	int conversionValuesSize();
-
-	/**
-	 * Add a conversion value to the object type mapping return the object 
-	 * representing it.
-	 */
-	ConversionValue addConversionValue(int index);
-
-	/**
-	 * Add a conversion value to the object type mapping return the object 
-	 * representing it.
-	 */
-	ConversionValue addConversionValue();
-
-	/**
-	 * Remove the conversion value at the given index from the entity.
-	 */
-	void removeConversionValue(int index);
-
-	/**
-	 * Remove the conversion value from the entity.
-	 */
-	void removeConversionValue(ConversionValue conversionValue);
-
-	/**
-	 * Move the conversion values from the source index to the target index.
-	 */
-	void moveConversionValue(int targetIndex, int sourceIndex);
-		String CONVERSION_VALUES_LIST = "conversionValues"; //$NON-NLS-1$
-
-	
-	/**
-	 * Returns a ListIterator of the ConversionValue dataValues.
-	 * @return
-	 */
-	ListIterator<String> dataValues();
-	
-	
-	// **************** default object value **************************************
-	
-	String getDefaultObjectValue();
-	void setDefaultObjectValue(String defaultObjectValue);
-		String DEFAULT_OBJECT_VALUE_PROPERTY = "defaultObjectValue"; //$NON-NLS-1$
-
-}
diff --git a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/context/PrivateOwned.java b/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/context/PrivateOwned.java
deleted file mode 100644
index 82123d3..0000000
--- a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/context/PrivateOwned.java
+++ /dev/null
@@ -1,29 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008, 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.eclipselink.core.context;
-
-import org.eclipse.jpt.core.context.JpaContextNode;
-
-/**
- * Provisional API: This interface is part of an interim API that is still
- * under development and expected to change significantly before reaching
- * stability. It is available at this early stage to solicit feedback from
- * pioneering adopters on the understanding that any code that uses this API
- * will almost certainly be broken (repeatedly) as the API evolves.
- * 
- * @version 2.1
- * @since 2.1
- */
-public interface PrivateOwned extends JpaContextNode
-{
-	boolean isPrivateOwned();
-	void setPrivateOwned(boolean privateOwned);
-		String PRIVATE_OWNED_PROPERTY = "privateOwned"; //$NON-NLS-1$
-}
diff --git a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/context/ReadOnly.java b/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/context/ReadOnly.java
deleted file mode 100644
index 78f3cee..0000000
--- a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/context/ReadOnly.java
+++ /dev/null
@@ -1,37 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.eclipselink.core.context;
-
-import org.eclipse.jpt.core.context.JpaContextNode;
-
-/**
- * 
- * 
- * Provisional API: This interface is part of an interim API that is still
- * under development and expected to change significantly before reaching
- * stability. It is available at this early stage to solicit feedback from
- * pioneering adopters on the understanding that any code that uses this API
- * will almost certainly be broken (repeatedly) as the API evolves.
- * 
- * @version 2.1
- * @since 2.1
- */
-public interface ReadOnly extends JpaContextNode
-{
-	boolean isReadOnly();
-	
-	boolean isDefaultReadOnly();
-		String DEFAULT_READ_ONLY_PROPERTY = "defaultReadOnly"; //$NON-NLS-1$
-		boolean DEFAULT_READ_ONLY = false;
-	
-	Boolean getSpecifiedReadOnly();
-	void setSpecifiedReadOnly(Boolean newSpecifiedReadOnly);
-		String SPECIFIED_READ_ONLY_PROPERTY = "specifiedReadOnly"; //$NON-NLS-1$
-}
diff --git a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/context/StructConverter.java b/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/context/StructConverter.java
deleted file mode 100644
index 323f3ce..0000000
--- a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/context/StructConverter.java
+++ /dev/null
@@ -1,31 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008, 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.eclipselink.core.context;
-
-/**
- * Corresponds to a StructConverter resource model object
- * 
- * Provisional API: This interface is part of an interim API that is still
- * under development and expected to change significantly before reaching
- * stability. It is available at this early stage to solicit feedback from
- * pioneering adopters on the understanding that any code that uses this API
- * will almost certainly be broken (repeatedly) as the API evolves.
- * 
- * @version 2.1
- * @since 2.1
- */
-public interface StructConverter extends EclipseLinkConverter
-{
-	String getConverterClass();	
-	void setConverterClass(String converterClass);
-		String CONVERTER_CLASS_PROPERTY = "converterClass"; //$NON-NLS-1$
-		String ECLIPSELINK_STRUCT_CONVERTER_CLASS_NAME = "org.eclipse.persistence.platform.database.converters.StructConverter"; //$NON-NLS-1$
-
-}
diff --git a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/context/TransformationMapping.java b/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/context/TransformationMapping.java
deleted file mode 100644
index d2f8015..0000000
--- a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/context/TransformationMapping.java
+++ /dev/null
@@ -1,28 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.eclipselink.core.context;
-
-import org.eclipse.jpt.core.context.AttributeMapping;
-
-/**
- * 
- * 
- * Provisional API: This interface is part of an interim API that is still
- * under development and expected to change significantly before reaching
- * stability. It is available at this early stage to solicit feedback from
- * pioneering adopters on the understanding that any code that uses this API
- * will almost certainly be broken (repeatedly) as the API evolves.
- * 
- * @version 2.1
- * @since 2.1
- */
-public interface TransformationMapping extends AttributeMapping
-{
-}
diff --git a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/context/TypeConverter.java b/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/context/TypeConverter.java
deleted file mode 100644
index 2398e15..0000000
--- a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/context/TypeConverter.java
+++ /dev/null
@@ -1,34 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008, 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.eclipselink.core.context;
-
-/**
- * Corresponds to a TypeConverter resource model object
- * 
- * Provisional API: This interface is part of an interim API that is still
- * under development and expected to change significantly before reaching
- * stability. It is available at this early stage to solicit feedback from
- * pioneering adopters on the understanding that any code that uses this API
- * will almost certainly be broken (repeatedly) as the API evolves.
- * 
- * @version 2.1
- * @since 2.1
- */
-public interface TypeConverter extends EclipseLinkConverter
-{
-	String getDataType();	
-	void setDataType(String dataType);
-		String DATA_TYPE_PROPERTY = "dataType"; //$NON-NLS-1$
-		
-	String getObjectType();	
-	void setObjectType(String objectType);
-		String OBJECT_TYPE_PROPERTY = "objectType"; //$NON-NLS-1$
-
-}
diff --git a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/context/VariableOneToOneMapping.java b/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/context/VariableOneToOneMapping.java
deleted file mode 100644
index 21068b5..0000000
--- a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/context/VariableOneToOneMapping.java
+++ /dev/null
@@ -1,28 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.eclipselink.core.context;
-
-import org.eclipse.jpt.core.context.AttributeMapping;
-
-/**
- * 
- * 
- * Provisional API: This interface is part of an interim API that is still
- * under development and expected to change significantly before reaching
- * stability. It is available at this early stage to solicit feedback from
- * pioneering adopters on the understanding that any code that uses this API
- * will almost certainly be broken (repeatedly) as the API evolves.
- * 
- * @version 2.2
- * @since 2.2
- */
-public interface VariableOneToOneMapping extends AttributeMapping
-{
-}
diff --git a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/context/java/EclipseLinkJavaEmbeddable.java b/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/context/java/EclipseLinkJavaEmbeddable.java
deleted file mode 100644
index 7ce1774..0000000
--- a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/context/java/EclipseLinkJavaEmbeddable.java
+++ /dev/null
@@ -1,31 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.eclipselink.core.context.java;
-
-import org.eclipse.jpt.core.context.java.JavaEmbeddable;
-import org.eclipse.jpt.eclipselink.core.context.EclipseLinkEmbeddable;
-
-/**
- * 
- * 
- * Provisional API: This interface is part of an interim API that is still
- * under development and expected to change significantly before reaching
- * stability. It is available at this early stage to solicit feedback from
- * pioneering adopters on the understanding that any code that uses this API
- * will almost certainly be broken (repeatedly) as the API evolves.
- * 
- * @version 2.1
- * @since 2.1
- */
-public interface EclipseLinkJavaEmbeddable extends EclipseLinkEmbeddable, JavaEmbeddable
-{
-	JavaConverterHolder getConverterHolder();
-
-}
diff --git a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/context/java/EclipseLinkJavaEntity.java b/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/context/java/EclipseLinkJavaEntity.java
deleted file mode 100644
index c8b60cc..0000000
--- a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/context/java/EclipseLinkJavaEntity.java
+++ /dev/null
@@ -1,54 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.eclipselink.core.context.java;
-
-import java.util.ListIterator;
-import org.eclipse.jpt.core.context.java.JavaAssociationOverride;
-import org.eclipse.jpt.core.context.java.JavaAttributeOverride;
-import org.eclipse.jpt.core.context.java.JavaEntity;
-import org.eclipse.jpt.core.context.java.JavaNamedNativeQuery;
-import org.eclipse.jpt.core.context.java.JavaNamedQuery;
-import org.eclipse.jpt.core.context.java.JavaPrimaryKeyJoinColumn;
-import org.eclipse.jpt.core.context.java.JavaSecondaryTable;
-import org.eclipse.jpt.eclipselink.core.context.EclipseLinkEntity;
-
-/**
- * 
- * 
- * Provisional API: This interface is part of an interim API that is still
- * under development and expected to change significantly before reaching
- * stability. It is available at this early stage to solicit feedback from
- * pioneering adopters on the understanding that any code that uses this API
- * will almost certainly be broken (repeatedly) as the API evolves.
- * 
- * @version 2.1
- * @since 2.1
- */
-public interface EclipseLinkJavaEntity extends EclipseLinkEntity, JavaEntity
-{
-	JavaConverterHolder getConverterHolder();
-
-	JavaCaching getCaching();
-	
-	// included these to prevent warnings on the implementation
-	ListIterator<JavaSecondaryTable> secondaryTables();	
-	ListIterator<JavaSecondaryTable> specifiedSecondaryTables();
-	ListIterator<JavaPrimaryKeyJoinColumn> primaryKeyJoinColumns();
-	ListIterator<JavaPrimaryKeyJoinColumn> specifiedPrimaryKeyJoinColumns();
-	ListIterator<JavaAttributeOverride> attributeOverrides();
-	ListIterator<JavaAttributeOverride> specifiedAttributeOverrides();
-	ListIterator<JavaAttributeOverride> virtualAttributeOverrides();
-	ListIterator<JavaAssociationOverride> associationOverrides();
-	ListIterator<JavaAssociationOverride> specifiedAssociationOverrides();
-	ListIterator<JavaAssociationOverride> virtualAssociationOverrides();
-	ListIterator<JavaNamedQuery> namedQueries();
-	ListIterator<JavaNamedNativeQuery> namedNativeQueries();
-
-}
diff --git a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/context/java/EclipseLinkJavaMappedSuperclass.java b/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/context/java/EclipseLinkJavaMappedSuperclass.java
deleted file mode 100644
index 2b8aab7..0000000
--- a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/context/java/EclipseLinkJavaMappedSuperclass.java
+++ /dev/null
@@ -1,39 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.eclipselink.core.context.java;
-
-import java.util.Iterator;
-import org.eclipse.jpt.core.context.java.JavaMappedSuperclass;
-import org.eclipse.jpt.core.context.java.JavaPersistentAttribute;
-import org.eclipse.jpt.eclipselink.core.context.EclipseLinkMappedSuperclass;
-
-/**
- * 
- * 
- * Provisional API: This interface is part of an interim API that is still
- * under development and expected to change significantly before reaching
- * stability. It is available at this early stage to solicit feedback from
- * pioneering adopters on the understanding that any code that uses this API
- * will almost certainly be broken (repeatedly) as the API evolves.
- * 
- * @version 2.1
- * @since 2.1
- */
-public interface EclipseLinkJavaMappedSuperclass extends EclipseLinkMappedSuperclass, JavaMappedSuperclass
-{
-	JavaConverterHolder getConverterHolder();
-	
-	//********* covariant overrides ***********
-
-	JavaCaching getCaching();
-	
-	Iterator<JavaPersistentAttribute> overridableAttributes();
-	Iterator<JavaPersistentAttribute> overridableAssociations();
-}
diff --git a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/context/java/JavaCaching.java b/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/context/java/JavaCaching.java
deleted file mode 100644
index dcf170b..0000000
--- a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/context/java/JavaCaching.java
+++ /dev/null
@@ -1,52 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008, 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.eclipselink.core.context.java;
-
-import org.eclipse.jpt.core.context.java.JavaJpaContextNode;
-import org.eclipse.jpt.core.resource.java.JavaResourcePersistentType;
-import org.eclipse.jpt.eclipselink.core.context.Caching;
-
-/**
- * 
- * 
- * Provisional API: This interface is part of an interim API that is still
- * under development and expected to change significantly before reaching
- * stability. It is available at this early stage to solicit feedback from
- * pioneering adopters on the understanding that any code that uses this API
- * will almost certainly be broken (repeatedly) as the API evolves.
- * 
- * @version 2.1
- * @since 2.1
- */
-public interface JavaCaching extends Caching, JavaJpaContextNode
-{
-	
-	/**
-	 * Return true if the existence-checking model object exists.  
-	 * Have to have a separate flag for this since the default existence
-	 * type is different depending on whether hasExistenceChecking() returns
-	 * true or false.
-	 */
-	boolean hasExistenceChecking();
-	void setExistenceChecking(boolean existenceChecking);
-		String EXISTENCE_CHECKING_PROPERTY = "existenceChecking"; //$NON-NLS-1$
-	
-	/**
-	 * Initialize the EclipseLinkJavaCaching context model object to match the CacheAnnotation 
-	 * resource model object. This should be called immediately after object creation.
-	 */
-	void initialize(JavaResourcePersistentType resourcePersistentType);
-	
-	/**
-	 * Update the EclipseLinkJavaCaching context model object to match the CacheAnnotation 
-	 * resource model object. see {@link org.eclipse.jpt.core.JpaProject#update()}
-	 */
-	void update(JavaResourcePersistentType resourcePersistentType);	
-}
diff --git a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/context/java/JavaConverterHolder.java b/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/context/java/JavaConverterHolder.java
deleted file mode 100644
index 0598c77..0000000
--- a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/context/java/JavaConverterHolder.java
+++ /dev/null
@@ -1,65 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008, 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.eclipselink.core.context.java;
-
-import org.eclipse.jpt.core.context.java.JavaJpaContextNode;
-import org.eclipse.jpt.core.resource.java.JavaResourcePersistentType;
-import org.eclipse.jpt.eclipselink.core.context.CustomConverter;
-import org.eclipse.jpt.eclipselink.core.context.ObjectTypeConverter;
-import org.eclipse.jpt.eclipselink.core.context.StructConverter;
-import org.eclipse.jpt.eclipselink.core.context.TypeConverter;
-
-/**
- * 
- * 
- * Provisional API: This interface is part of an interim API that is still
- * under development and expected to change significantly before reaching
- * stability. It is available at this early stage to solicit feedback from
- * pioneering adopters on the understanding that any code that uses this API
- * will almost certainly be broken (repeatedly) as the API evolves.
- * 
- * @version 2.1
- * @since 2.2
- */
-public interface JavaConverterHolder extends JavaJpaContextNode
-{
-	/**
-	 * Initialize the JavaConverterHolder context model object to match the JavaResourcePersistentType 
-	 * resource model object. This should be called immediately after object creation.
-	 */
-	void initialize(JavaResourcePersistentType jrpt);
-	
-	/**
-	 * Update the JavaConverterHolder context model object to match the JavaResourcePersistentType 
-	 * resource model object. see {@link org.eclipse.jpt.core.JpaProject#update()}
-	 */
-	void update(JavaResourcePersistentType jrpt);
-	
-	CustomConverter getCustomConverter();
-	CustomConverter addCustomConverter();
-	void removeCustomConverter();
-	String CUSTOM_CONVERTER_PROPERTY = "customConverter"; //$NON-NLS-1$
-	
-	ObjectTypeConverter getObjectTypeConverter();
-	ObjectTypeConverter addObjectTypeConverter();
-	void removeObjectTypeConverter();
-	String OBJECT_TYPE_CONVERTER_PROPERTY = "objectTypeConverter"; //$NON-NLS-1$
-	
-	StructConverter getStructConverter();
-	StructConverter addStructConverter();
-	void removeStructConverter();
-	String STRUCT_CONVERTER_PROPERTY = "structConverter"; //$NON-NLS-1$
-	
-	TypeConverter getTypeConverter();
-	TypeConverter addTypeConverter();
-	void removeTypeConverter();
-	String TYPE_CONVERTER_PROPERTY = "typeConverter"; //$NON-NLS-1$
-	
-}
\ No newline at end of file
diff --git a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/context/orm/OrmCaching.java b/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/context/orm/OrmCaching.java
deleted file mode 100644
index 4300086..0000000
--- a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/context/orm/OrmCaching.java
+++ /dev/null
@@ -1,19 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008, 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.eclipselink.core.context.orm;
-
-import org.eclipse.jpt.core.context.XmlContextNode;
-import org.eclipse.jpt.eclipselink.core.context.Caching;
-
-public interface OrmCaching
-	extends Caching, XmlContextNode
-{
-	// just combine two interfaces
-}
diff --git a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/DefaultEclipseLinkJpaValidationMessages.java b/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/DefaultEclipseLinkJpaValidationMessages.java
deleted file mode 100644
index a8198e0..0000000
--- a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/DefaultEclipseLinkJpaValidationMessages.java
+++ /dev/null
@@ -1,90 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005, 2008 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.eclipselink.core.internal;
-
-import java.util.Locale;
-import java.util.MissingResourceException;
-import java.util.ResourceBundle;
-import org.eclipse.jpt.core.JptCorePlugin;
-import org.eclipse.jpt.core.utility.TextRange;
-import org.eclipse.wst.validation.internal.core.Message;
-import org.eclipse.wst.validation.internal.provisional.core.IMessage;
-
-public class DefaultEclipseLinkJpaValidationMessages {
-
-	private static String[] DEFAULT_PARMS = new String[0];
-	private static TextRange DEFAULT_TEXT_RANGE = TextRange.Empty.instance();
-	
-	public static IMessage buildMessage(
-			int severity, String messageId, Object targetObject) {
-		return buildMessage(severity, messageId, DEFAULT_PARMS, targetObject);
-	}
-	
-	public static IMessage buildMessage(
-			int severity, String messageId, String[] parms, Object targetObject) {
-		return buildMessage(severity, messageId, parms, targetObject, DEFAULT_TEXT_RANGE);
-	}
-	
-	public static IMessage buildMessage(
-			int severity, String messageId, Object targetObject, TextRange textRange) {
-		return buildMessage(severity, messageId, DEFAULT_PARMS, targetObject, textRange);
-	}
-	
-	public static IMessage buildMessage(
-			int severity, String messageId, String[] parms, Object targetObject, TextRange textRange) {
-		IMessage message = new EclipseLinkMessage(EclipseLinkJpaValidationMessages.BUNDLE_NAME, severity, messageId, parms, targetObject);
-		if (textRange == null) {
-			//log an exception and then continue without setting location information
-			//At least the user will still get the validation message and will
-			//be able to see other validation messages with valid textRanges
-			JptCorePlugin.log(new IllegalArgumentException("Null text range for message ID: " + messageId)); //$NON-NLS-1$
-		}
-		else {
-			message.setLineNo(textRange.getLineNumber());
-			message.setOffset(textRange.getOffset());
-			message.setLength(textRange.getLength());
-		}
-		return message;
-	}
-	
-	
-	private DefaultEclipseLinkJpaValidationMessages() {
-		super();
-		throw new UnsupportedOperationException();
-	}
-
-	/**
-	 * Used so that we can find the resource bundle using this classLoader.
-	 * Otherwise the wst validation message attempts to use the ClassLoader
-	 * of JpaValidator which is in the org.eclipse.jpt.core plugin.
-	 * 
-	 * Another way we could potentially solve this is to have a separate
-	 * EclispeLinkJpaValidator and set up the extension points so that
-	 * it only runs against jpaProjects with the EclispeLinkPlatform
-	 * while JpaValidator runs against jpaProjects with the GenericPlatform.
-	 * I am unsure if this is possible
-	 */
-	private static class EclipseLinkMessage extends Message {
-		public EclipseLinkMessage(String aBundleName, int aSeverity, String anId, String[] aParams, Object aTargetObject) {
-			super(aBundleName, aSeverity, anId, aParams, aTargetObject);
-		}
-		
-		@Override
-		public ResourceBundle getBundle(Locale locale, ClassLoader classLoader) {
-			ResourceBundle bundle = null;
-			try {
-				bundle = ResourceBundle.getBundle(getBundleName(), locale, getClass().getClassLoader());
-			} catch (MissingResourceException e) {
-				return super.getBundle(locale, classLoader);
-			}
-			return bundle;
-		}
-	}
-}
diff --git a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/EclipseLink1_1JpaAnnotationDefinitionProvider.java b/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/EclipseLink1_1JpaAnnotationDefinitionProvider.java
deleted file mode 100644
index 5c75079..0000000
--- a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/EclipseLink1_1JpaAnnotationDefinitionProvider.java
+++ /dev/null
@@ -1,64 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.eclipselink.core.internal;
-
-import java.util.List;
-import org.eclipse.jpt.core.JpaAnnotationDefinitionProvider;
-import org.eclipse.jpt.core.internal.platform.AbstractJpaAnnotationDefintionProvider;
-import org.eclipse.jpt.core.resource.java.AnnotationDefinition;
-
-/**
- * Provides annotations for 1.1 EclipseLink which includes JPA annotations, JPA 2.0 annotation,
- * EclipseLink 1.0 annotation and EclipseLink 1.1 annotations 
- */
-public class EclipseLink1_1JpaAnnotationDefinitionProvider
-	extends AbstractJpaAnnotationDefintionProvider
-{
-	// singleton
-	private static final JpaAnnotationDefinitionProvider INSTANCE = new EclipseLink1_1JpaAnnotationDefinitionProvider();
-
-	/**
-	 * Return the singleton.
-	 */
-	public static JpaAnnotationDefinitionProvider instance() {
-		return INSTANCE;
-	}
-
-	/**
-	 * Ensure single instance.
-	 */
-	private EclipseLink1_1JpaAnnotationDefinitionProvider() {
-		super();
-	}
-
-	@Override
-	protected void addTypeMappingAnnotationDefinitionsTo(List<AnnotationDefinition> definitions) {
-		//none
-	}
-	
-	@Override
-	protected void addTypeSupportingAnnotationDefinitionsTo(List<AnnotationDefinition> definitions) {
-		//TODO commented out this code for now, we don't want the java Access annotation work to be exposed yet.
-		//EclipseLink has backed out its JPA 2.0 annotation support until it is released or licensing issues are cleared up.
-//		definitions.add(AccessAnnotationDefinition.instance());
-	}
-
-	@Override
-	protected void addAttributeMappingAnnotationDefinitionsTo(List<AnnotationDefinition> definitions) {
-		//none
-	}
-	
-	@Override
-	protected void addAttributeSupportingAnnotationDefinitionsTo(List<AnnotationDefinition> definitions) {
-		//TODO commented out this code for now, we don't want the java Access annotation work to be exposed yet.
-		//EclipseLink has backed out its JPA 2.0 annotation support until it is released or licensing issues are cleared up.
-//		definitions.add(AccessAnnotationDefinition.instance());
-	}
-}
diff --git a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/EclipseLink1_1JpaFactory.java b/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/EclipseLink1_1JpaFactory.java
deleted file mode 100644
index af09c59..0000000
--- a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/EclipseLink1_1JpaFactory.java
+++ /dev/null
@@ -1,257 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- *******************************************************************************/
-package org.eclipse.jpt.eclipselink.core.internal;
-
-import org.eclipse.jpt.core.context.MappingFile;
-import org.eclipse.jpt.core.context.java.JavaAttributeMapping;
-import org.eclipse.jpt.core.context.java.JavaBasicMapping;
-import org.eclipse.jpt.core.context.java.JavaEmbeddedIdMapping;
-import org.eclipse.jpt.core.context.java.JavaEmbeddedMapping;
-import org.eclipse.jpt.core.context.java.JavaIdMapping;
-import org.eclipse.jpt.core.context.java.JavaManyToManyMapping;
-import org.eclipse.jpt.core.context.java.JavaManyToOneMapping;
-import org.eclipse.jpt.core.context.java.JavaOneToOneMapping;
-import org.eclipse.jpt.core.context.java.JavaTransientMapping;
-import org.eclipse.jpt.core.context.java.JavaVersionMapping;
-import org.eclipse.jpt.core.context.orm.EntityMappings;
-import org.eclipse.jpt.core.context.orm.OrmAttributeMapping;
-import org.eclipse.jpt.core.context.orm.OrmBasicMapping;
-import org.eclipse.jpt.core.context.orm.OrmEmbeddedIdMapping;
-import org.eclipse.jpt.core.context.orm.OrmEmbeddedMapping;
-import org.eclipse.jpt.core.context.orm.OrmIdMapping;
-import org.eclipse.jpt.core.context.orm.OrmManyToManyMapping;
-import org.eclipse.jpt.core.context.orm.OrmManyToOneMapping;
-import org.eclipse.jpt.core.context.orm.OrmOneToManyMapping;
-import org.eclipse.jpt.core.context.orm.OrmOneToOneMapping;
-import org.eclipse.jpt.core.context.orm.OrmPersistentAttribute;
-import org.eclipse.jpt.core.context.orm.OrmPersistentType;
-import org.eclipse.jpt.core.context.orm.OrmTypeMapping;
-import org.eclipse.jpt.core.context.orm.OrmVersionMapping;
-import org.eclipse.jpt.core.context.persistence.MappingFileRef;
-import org.eclipse.jpt.core.resource.orm.XmlNullAttributeMapping;
-import org.eclipse.jpt.core.resource.orm.XmlTypeMapping;
-import org.eclipse.jpt.core.resource.xml.JpaXmlResource;
-import org.eclipse.jpt.eclipselink.core.internal.context.java.EclipseLinkJavaOneToManyMapping;
-import org.eclipse.jpt.eclipselink.core.internal.context.java.JavaBasicCollectionMapping;
-import org.eclipse.jpt.eclipselink.core.internal.context.java.JavaBasicMapMapping;
-import org.eclipse.jpt.eclipselink.core.internal.context.java.JavaTransformationMapping;
-import org.eclipse.jpt.eclipselink.core.internal.context.java.JavaVariableOneToOneMapping;
-import org.eclipse.jpt.eclipselink.core.internal.context.orm.EclipseLink1_1EntityMappingsImpl;
-import org.eclipse.jpt.eclipselink.core.internal.context.orm.EclipseLink1_1OrmPersistentAttribute;
-import org.eclipse.jpt.eclipselink.core.internal.context.orm.EclipseLink1_1OrmPersistentType;
-import org.eclipse.jpt.eclipselink.core.internal.context.orm.EclipseLink1_1OrmXml;
-import org.eclipse.jpt.eclipselink.core.internal.context.orm.EclipseLink1_1VirtualXmlBasic;
-import org.eclipse.jpt.eclipselink.core.internal.context.orm.EclipseLink1_1VirtualXmlBasicCollection;
-import org.eclipse.jpt.eclipselink.core.internal.context.orm.EclipseLink1_1VirtualXmlBasicMap;
-import org.eclipse.jpt.eclipselink.core.internal.context.orm.EclipseLink1_1VirtualXmlEmbedded;
-import org.eclipse.jpt.eclipselink.core.internal.context.orm.EclipseLink1_1VirtualXmlEmbeddedId;
-import org.eclipse.jpt.eclipselink.core.internal.context.orm.EclipseLink1_1VirtualXmlId;
-import org.eclipse.jpt.eclipselink.core.internal.context.orm.EclipseLink1_1VirtualXmlManyToMany;
-import org.eclipse.jpt.eclipselink.core.internal.context.orm.EclipseLink1_1VirtualXmlManyToOne;
-import org.eclipse.jpt.eclipselink.core.internal.context.orm.EclipseLink1_1VirtualXmlNullAttributeMapping;
-import org.eclipse.jpt.eclipselink.core.internal.context.orm.EclipseLink1_1VirtualXmlOneToMany;
-import org.eclipse.jpt.eclipselink.core.internal.context.orm.EclipseLink1_1VirtualXmlOneToOne;
-import org.eclipse.jpt.eclipselink.core.internal.context.orm.EclipseLink1_1VirtualXmlTransformation;
-import org.eclipse.jpt.eclipselink.core.internal.context.orm.EclipseLink1_1VirtualXmlTransient;
-import org.eclipse.jpt.eclipselink.core.internal.context.orm.EclipseLink1_1VirtualXmlVariableOneToOne;
-import org.eclipse.jpt.eclipselink.core.internal.context.orm.EclipseLink1_1VirtualXmlVersion;
-import org.eclipse.jpt.eclipselink.core.internal.context.orm.EclipseLinkEntityMappings;
-import org.eclipse.jpt.eclipselink.core.internal.context.orm.OrmBasicCollectionMapping;
-import org.eclipse.jpt.eclipselink.core.internal.context.orm.OrmBasicMapMapping;
-import org.eclipse.jpt.eclipselink.core.internal.context.orm.OrmTransformationMapping;
-import org.eclipse.jpt.eclipselink.core.internal.context.orm.OrmVariableOneToOneMapping;
-import org.eclipse.jpt.eclipselink.core.resource.orm.XmlBasic;
-import org.eclipse.jpt.eclipselink.core.resource.orm.XmlBasicCollection;
-import org.eclipse.jpt.eclipselink.core.resource.orm.XmlBasicMap;
-import org.eclipse.jpt.eclipselink.core.resource.orm.XmlEmbedded;
-import org.eclipse.jpt.eclipselink.core.resource.orm.XmlEmbeddedId;
-import org.eclipse.jpt.eclipselink.core.resource.orm.XmlId;
-import org.eclipse.jpt.eclipselink.core.resource.orm.XmlManyToMany;
-import org.eclipse.jpt.eclipselink.core.resource.orm.XmlManyToOne;
-import org.eclipse.jpt.eclipselink.core.resource.orm.XmlOneToMany;
-import org.eclipse.jpt.eclipselink.core.resource.orm.XmlOneToOne;
-import org.eclipse.jpt.eclipselink.core.resource.orm.XmlTransformation;
-import org.eclipse.jpt.eclipselink.core.resource.orm.XmlVariableOneToOne;
-import org.eclipse.jpt.eclipselink.core.resource.orm.XmlVersion;
-import org.eclipse.jpt.eclipselink1_1.core.resource.orm.XmlAttributeMapping;
-import org.eclipse.jpt.eclipselink1_1.core.resource.orm.XmlEntityMappings;
-import org.eclipse.jpt.eclipselink1_1.core.resource.orm.XmlTransient;
-
-public class EclipseLink1_1JpaFactory
-	extends EclipseLinkJpaFactory
-{
-	protected EclipseLink1_1JpaFactory() {
-		super();
-	}
-	
-	// **************** Context Nodes ******************************************
-	
-	@Override
-	public MappingFile buildEclipseLinkMappingFile(MappingFileRef parent, JpaXmlResource resource) {
-		return this.buildEclipseLinkOrmXml(parent, resource);
-	}
-	
-	public MappingFile buildEclipseLink1_1MappingFile(MappingFileRef parent, JpaXmlResource resource) {
-		return this.buildEclipseLink1_1OrmXml(parent, resource);
-	}
-	
-	protected EclipseLink1_1OrmXml buildEclipseLink1_1OrmXml(MappingFileRef parent, JpaXmlResource resource) {
-		return new EclipseLink1_1OrmXml(parent, resource);
-	}
-	
-	
-	// **************** Java Context Model *************************************
-	
-	//TODO commented out this code for now, we don't want the java Access annotation work to be exposed yet.
-	//EclipseLink has backed out its JPA 2.0 annotation support until it is released or licensing issues are cleared up.
-//
-//	@Override
-//	public JavaPersistentType buildJavaPersistentType(Owner owner, JavaResourcePersistentType jrpt) {
-//		return new EclipseLink1_1JavaPersistentType(owner, jrpt);
-//	}
-//	
-//	@Override
-//	public JavaPersistentAttribute buildJavaPersistentAttribute(PersistentType parent, JavaResourcePersistentAttribute jrpa) {
-//		return new EclipseLink1_1JavaPersistentAttribute(parent, jrpa);
-//	}
-	
-	// ********** EclipseLink-specific ORM Virtual Resource Model **********
-	
-	public XmlBasic buildEclipseLink1_1VirtualXmlBasic(OrmTypeMapping ormTypeMapping, JavaBasicMapping javaBasicMapping) {
-		return new EclipseLink1_1VirtualXmlBasic(ormTypeMapping, javaBasicMapping);
-	}
-	
-	public XmlId buildEclipseLink1_1VirtualXmlId(OrmTypeMapping ormTypeMapping, JavaIdMapping javaIdMapping) {
-		return new EclipseLink1_1VirtualXmlId(ormTypeMapping, javaIdMapping);
-	}
-	
-	public XmlEmbeddedId buildEclipseLink1_1VirtualXmlEmbeddedId(OrmTypeMapping ormTypeMapping, JavaEmbeddedIdMapping javaEmbeddedIdMapping) {
-		return new EclipseLink1_1VirtualXmlEmbeddedId(ormTypeMapping, javaEmbeddedIdMapping);
-	}
-	
-	public XmlEmbedded buildEclipseLink1_1VirtualXmlEmbedded(OrmTypeMapping ormTypeMapping, JavaEmbeddedMapping javaEmbeddedMapping) {
-		return new EclipseLink1_1VirtualXmlEmbedded(ormTypeMapping, javaEmbeddedMapping);
-	}
-	
-	public XmlManyToMany buildEclipseLink1_1VirtualXmlManyToMany(OrmTypeMapping ormTypeMapping, JavaManyToManyMapping javaManyToManyMapping) {
-		return new EclipseLink1_1VirtualXmlManyToMany(ormTypeMapping, javaManyToManyMapping);
-	}
-	
-	public XmlManyToOne buildEclipseLink1_1VirtualXmlManyToOne(OrmTypeMapping ormTypeMapping, JavaManyToOneMapping javaManyToOneMapping) {
-		return new EclipseLink1_1VirtualXmlManyToOne(ormTypeMapping, javaManyToOneMapping);
-	}
-	
-	public XmlOneToMany buildEclipseLink1_1VirtualXmlOneToMany(OrmTypeMapping ormTypeMapping, EclipseLinkJavaOneToManyMapping javaOneToManyMapping) {
-		return new EclipseLink1_1VirtualXmlOneToMany(ormTypeMapping, javaOneToManyMapping);
-	}
-	
-	public XmlOneToOne buildEclipseLink1_1VirtualXmlOneToOne(OrmTypeMapping ormTypeMapping, JavaOneToOneMapping javaOneToOneMapping) {
-		return new EclipseLink1_1VirtualXmlOneToOne(ormTypeMapping, javaOneToOneMapping);
-	}
-	
-	public XmlVersion buildEclipseLink1_1VirtualXmlVersion(OrmTypeMapping ormTypeMapping, JavaVersionMapping javaVersionMapping) {
-		return new EclipseLink1_1VirtualXmlVersion(ormTypeMapping, javaVersionMapping);
-	}
-	
-	public XmlBasicCollection buildEclipseLink1_1VirtualXmlBasicCollection(OrmTypeMapping ormTypeMapping, JavaBasicCollectionMapping javaBasicCollectionMapping) {
-		return new EclipseLink1_1VirtualXmlBasicCollection(ormTypeMapping, javaBasicCollectionMapping);
-	}
-	
-	public XmlBasicMap buildEclipseLink1_1VirtualXmlBasicMap(OrmTypeMapping ormTypeMapping, JavaBasicMapMapping javaBasicMapMapping) {
-		return new EclipseLink1_1VirtualXmlBasicMap(ormTypeMapping, javaBasicMapMapping);
-	}
-	
-	public XmlTransformation buildEclipseLink1_1VirtualXmlTransformation(OrmTypeMapping ormTypeMapping, JavaTransformationMapping javaTransformationMapping) {
-		return new EclipseLink1_1VirtualXmlTransformation(ormTypeMapping, javaTransformationMapping);
-	}
-	
-	public XmlTransient buildEclipseLink1_1VirtualXmlTransient(OrmTypeMapping ormTypeMapping, JavaTransientMapping javaTransientMapping) {
-		return new EclipseLink1_1VirtualXmlTransient(ormTypeMapping, javaTransientMapping);
-	}
-	
-	public XmlVariableOneToOne buildEclipseLink1_1VirtualXmlVariableOneToOne(OrmTypeMapping ormTypeMapping, JavaVariableOneToOneMapping javaVariableOneToOneMapping) {
-		return new EclipseLink1_1VirtualXmlVariableOneToOne(ormTypeMapping, javaVariableOneToOneMapping);
-	}
-	
-	public XmlNullAttributeMapping buildEclipseLink1_1VirtualXmlNullAttributeMapping(OrmTypeMapping ormTypeMapping, JavaAttributeMapping javaAttributeMapping) {
-		return new EclipseLink1_1VirtualXmlNullAttributeMapping(ormTypeMapping, javaAttributeMapping);
-	}
-	
-	// ********** EclipseLink1.1-specific ORM Context Model **********
-	
-	public EntityMappings buildEclipseLink1_1EntityMappings(EclipseLink1_1OrmXml parent, XmlEntityMappings xmlEntityMappings) {
-		return new EclipseLink1_1EntityMappingsImpl(parent, xmlEntityMappings);
-	}
-
-	public OrmPersistentType buildEclipseLink1_1OrmPersistentType(EclipseLinkEntityMappings parent, XmlTypeMapping resourceMapping) {
-		return new EclipseLink1_1OrmPersistentType(parent, resourceMapping);
-	}
-
-	public OrmPersistentAttribute buildEclipseLink1_1OrmPersistentAttribute(OrmPersistentType parent, OrmPersistentAttribute.Owner owner, XmlAttributeMapping resourceMapping) {
-		return new EclipseLink1_1OrmPersistentAttribute(parent, owner, resourceMapping);
-	}
-	
-	public OrmBasicMapping buildEclipseLink1_1OrmBasicMapping(OrmPersistentAttribute parent, XmlBasic resourceMapping) {
-		return buildEclipseLinkOrmBasicMapping(parent, resourceMapping);
-	}
-	
-	public OrmIdMapping buildEclipseLink1_1OrmIdMapping(OrmPersistentAttribute parent, XmlId resourceMapping) {
-		return buildEclipseLinkOrmIdMapping(parent, resourceMapping);
-	}
-	
-	public OrmEmbeddedIdMapping buildEclipseLink1_1OrmEmbeddedIdMapping(OrmPersistentAttribute parent, XmlEmbeddedId resourceMapping) {
-		return buildEclipseLinkOrmEmbeddedIdMapping(parent, resourceMapping);
-	}
-	
-	public OrmEmbeddedMapping buildEclipseLink1_1OrmEmbeddedMapping(OrmPersistentAttribute parent, XmlEmbedded resourceMapping) {
-		return buildEclipseLinkOrmEmbeddedMapping(parent, resourceMapping);
-	}
-
-	public OrmManyToManyMapping buildEclipseLink1_1OrmManyToManyMapping(OrmPersistentAttribute parent, XmlManyToMany resourceMapping) {
-		return buildEclipseLinkOrmManyToManyMapping(parent, resourceMapping);
-	}
-	
-	public OrmManyToOneMapping buildEclipseLink1_1OrmManyToOneMapping(OrmPersistentAttribute parent, XmlManyToOne resourceMapping) {
-		return buildEclipseLinkOrmManyToOneMapping(parent, resourceMapping);
-	}
-	
-	public OrmOneToManyMapping buildEclipseLink1_1OrmOneToManyMapping(OrmPersistentAttribute parent, XmlOneToMany resourceMapping) {
-		return buildEclipseLinkOrmOneToManyMapping(parent, resourceMapping);
-	}
-	
-	public OrmOneToOneMapping buildEclipseLink1_1OrmOneToOneMapping(OrmPersistentAttribute parent, XmlOneToOne resourceMapping) {
-		return buildEclipseLinkOrmOneToOneMapping(parent, resourceMapping);
-	}
-	
-	public OrmVersionMapping buildEclipseLink1_1OrmVersionMapping(OrmPersistentAttribute parent, XmlVersion resourceMapping) {
-		return buildEclipseLinkOrmVersionMapping(parent, resourceMapping);
-	}
-		
-	public OrmBasicCollectionMapping buildEclipseLink1_1OrmBasicCollectionMapping(OrmPersistentAttribute parent, XmlBasicCollection resourceMapping) {
-		return buildOrmBasicCollectionMapping(parent, resourceMapping);
-	}
-	
-	public OrmBasicMapMapping buildEclipseLink1_1OrmBasicMapMapping(OrmPersistentAttribute parent, XmlBasicMap resourceMapping) {
-		return buildOrmBasicMapMapping(parent, resourceMapping);
-	}
-	
-	public OrmTransformationMapping buildEclipseLink1_1OrmTransformationMapping(OrmPersistentAttribute parent, XmlTransformation resourceMapping) {
-		return buildOrmTransformationMapping(parent, resourceMapping);
-	}
-	
-	public OrmVariableOneToOneMapping buildEclipseLink1_1OrmVariableOneToOneMapping(OrmPersistentAttribute parent, XmlVariableOneToOne resourceMapping) {
-		return buildOrmVariableOneToOneMapping(parent, resourceMapping);
-	}
-	
-	public OrmAttributeMapping buildEclipseLink1_1OrmNullAttributeMapping(OrmPersistentAttribute parent, XmlNullAttributeMapping resourceMapping) {
-		return buildOrmNullAttributeMapping(parent, resourceMapping);
-	}
-
-}
diff --git a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/EclipseLink1_1JpaPlatformFactory.java b/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/EclipseLink1_1JpaPlatformFactory.java
deleted file mode 100644
index f0119c6..0000000
--- a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/EclipseLink1_1JpaPlatformFactory.java
+++ /dev/null
@@ -1,68 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.eclipselink.core.internal;
-
-import org.eclipse.jpt.core.JpaAnnotationProvider;
-import org.eclipse.jpt.core.JpaFactory;
-import org.eclipse.jpt.core.JpaPlatform;
-import org.eclipse.jpt.core.JpaPlatformFactory;
-import org.eclipse.jpt.core.JpaValidation;
-import org.eclipse.jpt.core.internal.platform.GenericJpaAnnotationDefinitionProvider;
-import org.eclipse.jpt.core.internal.platform.GenericJpaAnnotationProvider;
-import org.eclipse.jpt.core.internal.platform.GenericJpaPlatform;
-import org.eclipse.jpt.core.internal.platform.GenericJpaPlatformProvider;
-
-/**
- * All the state in the JPA platform should be "static" (i.e. unchanging once
- * it is initialized).
- */
-public class EclipseLink1_1JpaPlatformFactory
-	implements JpaPlatformFactory
-{
-
-	/**
-	 * zero-argument constructor
-	 */
-	public EclipseLink1_1JpaPlatformFactory() {
-		super();
-	}
-	
-	public JpaPlatform buildJpaPlatform(String id) {
-		return new GenericJpaPlatform(
-			id,
-			buildJpaFactory(), 
-			buildJpaAnnotationProvider(), 
-			buildJpaValidation(),
-			EclipseLinkJpaPlatformProvider.instance(), 
-			//put eclipselink first because of the default java attribute mapping providers order,
-			//maybe there is a better way to handle that order dependency
-			GenericJpaPlatformProvider.instance(),
-			EclipseLink1_1JpaPlatformProvider.instance());
-	}
-	
-	protected JpaFactory buildJpaFactory() {
-		return new EclipseLink1_1JpaFactory();
-	}
-	
-	protected JpaAnnotationProvider buildJpaAnnotationProvider() {
-		return new GenericJpaAnnotationProvider(
-			GenericJpaAnnotationDefinitionProvider.instance(),
-			EclipseLinkJpaAnnotationDefinitionProvider.instance(),
-			EclipseLink1_1JpaAnnotationDefinitionProvider.instance());
-	}
-	
-	protected JpaValidation buildJpaValidation() {
-		return new JpaValidation() {
-			public Supported getTablePerConcreteClassInheritanceIsSupported() {
-				return Supported.YES;
-			}
-		};
-	}
-}
diff --git a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/EclipseLink1_1JpaPlatformProvider.java b/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/EclipseLink1_1JpaPlatformProvider.java
deleted file mode 100644
index 3f39630..0000000
--- a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/EclipseLink1_1JpaPlatformProvider.java
+++ /dev/null
@@ -1,123 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- *******************************************************************************/
-package org.eclipse.jpt.eclipselink.core.internal;
-
-import java.util.List;
-import org.eclipse.jpt.core.JpaPlatformProvider;
-import org.eclipse.jpt.core.JpaResourceModelProvider;
-import org.eclipse.jpt.core.context.MappingFileProvider;
-import org.eclipse.jpt.core.context.java.DefaultJavaAttributeMappingProvider;
-import org.eclipse.jpt.core.context.java.JavaAttributeMappingProvider;
-import org.eclipse.jpt.core.context.java.JavaTypeMappingProvider;
-import org.eclipse.jpt.core.context.orm.OrmAttributeMappingProvider;
-import org.eclipse.jpt.core.context.orm.OrmTypeMappingProvider;
-import org.eclipse.jpt.core.internal.platform.AbstractJpaPlatformProvider;
-import org.eclipse.jpt.eclipselink.core.internal.context.EclipseLink1_1MappingFileProvider;
-import org.eclipse.jpt.eclipselink.core.internal.context.orm.EclipseLink1_1OrmBasicCollectionMappingProvider;
-import org.eclipse.jpt.eclipselink.core.internal.context.orm.EclipseLink1_1OrmBasicMapMappingProvider;
-import org.eclipse.jpt.eclipselink.core.internal.context.orm.EclipseLink1_1OrmBasicMappingProvider;
-import org.eclipse.jpt.eclipselink.core.internal.context.orm.EclipseLink1_1OrmEmbeddedIdMappingProvider;
-import org.eclipse.jpt.eclipselink.core.internal.context.orm.EclipseLink1_1OrmEmbeddedMappingProvider;
-import org.eclipse.jpt.eclipselink.core.internal.context.orm.EclipseLink1_1OrmIdMappingProvider;
-import org.eclipse.jpt.eclipselink.core.internal.context.orm.EclipseLink1_1OrmManyToManyMappingProvider;
-import org.eclipse.jpt.eclipselink.core.internal.context.orm.EclipseLink1_1OrmManyToOneMappingProvider;
-import org.eclipse.jpt.eclipselink.core.internal.context.orm.EclipseLink1_1OrmNullAttributeMappingProvider;
-import org.eclipse.jpt.eclipselink.core.internal.context.orm.EclipseLink1_1OrmOneToManyMappingProvider;
-import org.eclipse.jpt.eclipselink.core.internal.context.orm.EclipseLink1_1OrmOneToOneMappingProvider;
-import org.eclipse.jpt.eclipselink.core.internal.context.orm.EclipseLink1_1OrmTransformationMappingProvider;
-import org.eclipse.jpt.eclipselink.core.internal.context.orm.EclipseLink1_1OrmTransientMappingProvider;
-import org.eclipse.jpt.eclipselink.core.internal.context.orm.EclipseLink1_1OrmVariableOneToOneMappingProvider;
-import org.eclipse.jpt.eclipselink.core.internal.context.orm.EclipseLink1_1OrmVersionMappingProvider;
-
-/**
- * EclipseLink platform
- */
-public class EclipseLink1_1JpaPlatformProvider
-	extends AbstractJpaPlatformProvider
-{
-	public static final String ID = "eclipselink1_1"; //$NON-NLS-1$
-
-	// singleton
-	private static final JpaPlatformProvider INSTANCE = new EclipseLink1_1JpaPlatformProvider();
-
-	/**
-	 * Return the singleton.
-	 */
-	public static JpaPlatformProvider instance() {
-		return INSTANCE;
-	}
-
-	/**
-	 * Ensure single instance.
-	 */
-	private EclipseLink1_1JpaPlatformProvider() {
-		super();
-	}
-
-	
-	// ********* JPA files *********	
-	
-	@Override
-	protected void addResourceModelProvidersTo(List<JpaResourceModelProvider> providers) {
-		providers.add(EclipseLink1_1OrmResourceModelProvider.instance());
-	}
-
-	
-	// ********* java *********	
-
-	@Override
-	protected void addJavaTypeMappingProvidersTo(@SuppressWarnings("unused") List<JavaTypeMappingProvider> providers) {
-		//none specific to EclipseLink1.1
-	}
-
-	@Override
-	protected void addJavaAttributeMappingProvidersTo(@SuppressWarnings("unused") List<JavaAttributeMappingProvider> providers) {
-		//none specific to EclipseLink1.1
-	}
-
-	@Override
-	protected void addDefaultJavaAttributeMappingProvidersTo(@SuppressWarnings("unused") List<DefaultJavaAttributeMappingProvider> providers) {
-		//none specific to EclipseLink1.1
-	}
-	
-	
-	// ********* ORM *********
-	
-	@Override
-	protected void addOrmTypeMappingProvidersTo(@SuppressWarnings("unused") List<OrmTypeMappingProvider> providers) {
-		//none specific to EclipseLink 1.1
-	}
-	
-	@Override
-	protected void addMappingFileProvidersTo(List<MappingFileProvider> providers) {
-		providers.add(EclipseLink1_1MappingFileProvider.instance());
-	}
-
-	@Override
-	protected void addOrmAttributeMappingProvidersTo(List<OrmAttributeMappingProvider> providers) {
-		providers.add(EclipseLink1_1OrmBasicCollectionMappingProvider.instance());
-		providers.add(EclipseLink1_1OrmBasicMapMappingProvider.instance());
-		providers.add(EclipseLink1_1OrmTransformationMappingProvider.instance());
-		providers.add(EclipseLink1_1OrmVariableOneToOneMappingProvider.instance());
-		providers.add(EclipseLink1_1OrmBasicMappingProvider.instance());
-		providers.add(EclipseLink1_1OrmIdMappingProvider.instance());
-		providers.add(EclipseLink1_1OrmEmbeddedIdMappingProvider.instance());
-		providers.add(EclipseLink1_1OrmEmbeddedMappingProvider.instance());
-		providers.add(EclipseLink1_1OrmManyToManyMappingProvider.instance());
-		providers.add(EclipseLink1_1OrmManyToOneMappingProvider.instance());
-		providers.add(EclipseLink1_1OrmOneToManyMappingProvider.instance());
-		providers.add(EclipseLink1_1OrmOneToOneMappingProvider.instance());
-		providers.add(EclipseLink1_1OrmVersionMappingProvider.instance());
-		providers.add(EclipseLink1_1OrmTransientMappingProvider.instance());
-		providers.add(EclipseLink1_1OrmNullAttributeMappingProvider.instance());
-	}
-
-
-}
diff --git a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/EclipseLink1_1OrmResourceModelProvider.java b/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/EclipseLink1_1OrmResourceModelProvider.java
deleted file mode 100644
index bdb1f58..0000000
--- a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/EclipseLink1_1OrmResourceModelProvider.java
+++ /dev/null
@@ -1,50 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008, 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.eclipselink.core.internal;
-
-import org.eclipse.core.resources.IFile;
-import org.eclipse.core.runtime.content.IContentType;
-import org.eclipse.jpt.core.JpaProject;
-import org.eclipse.jpt.core.JpaResourceModelProvider;
-import org.eclipse.jpt.core.resource.xml.JpaXmlResource;
-import org.eclipse.jpt.eclipselink.core.internal.resource.orm.EclipseLink1_1OrmXmlResourceProvider;
-
-/**
- * EclipseLink orm.xml
- */
-public class EclipseLink1_1OrmResourceModelProvider
-	implements JpaResourceModelProvider
-{
-	// singleton
-	private static final JpaResourceModelProvider INSTANCE = new EclipseLink1_1OrmResourceModelProvider();
-
-	/**
-	 * Return the singleton.
-	 */
-	public static JpaResourceModelProvider instance() {
-		return INSTANCE;
-	}
-
-	/**
-	 * Ensure single instance.
-	 */
-	private EclipseLink1_1OrmResourceModelProvider() {
-		super();
-	}
-
-	public IContentType getContentType() {
-		return JptEclipseLinkCorePlugin.ECLIPSELINK1_1_ORM_XML_CONTENT_TYPE;
-	}
-
-	public JpaXmlResource buildResourceModel(JpaProject jpaProject, IFile file) {
-		return EclipseLink1_1OrmXmlResourceProvider.getXmlResourceProvider(file).getXmlResource();
-	}
-
-}
diff --git a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/EclipseLinkConstants.java b/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/EclipseLinkConstants.java
deleted file mode 100644
index 3d05212..0000000
--- a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/EclipseLinkConstants.java
+++ /dev/null
@@ -1,22 +0,0 @@
-/*******************************************************************************
- *  Copyright (c) 2008, 2009  Oracle. 
- *  All rights reserved.  This program and the accompanying materials are 
- *  made available under the terms of the Eclipse Public License v1.0 which 
- *  accompanies this distribution, and is available at 
- *  http://www.eclipse.org/legal/epl-v10.html
- *  
- *  Contributors: 
- *  	Oracle - initial API and implementation
- *******************************************************************************/
-package org.eclipse.jpt.eclipselink.core.internal;
-
-public interface EclipseLinkConstants
-{
-	String ECLIPSELINK_ORM_NS_URL = "http://www.eclipse.org/eclipselink/xsds/persistence/orm";  //$NON-NLS-1$
-	String ECLIPSELINK_ORM_SCHEMA_LOC_1_0 = "http://www.eclipse.org/eclipselink/xsds/eclipselink_orm_1_0.xsd";  //$NON-NLS-1$
-	String ECLIPSELINK_ORM_SCHEMA_LOC_1_1 = "http://www.eclipse.org/eclipselink/xsds/eclipselink_orm_1_1.xsd";  //$NON-NLS-1$
-	
-	String VERSION_1_0_TEXT		= "1.0"; //$NON-NLS-1$
-
-	String VERSION_1_1_TEXT		= "1.1"; //$NON-NLS-1$
-}
diff --git a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/EclipseLinkJpaAnnotationDefinitionProvider.java b/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/EclipseLinkJpaAnnotationDefinitionProvider.java
deleted file mode 100644
index 45b6c3c..0000000
--- a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/EclipseLinkJpaAnnotationDefinitionProvider.java
+++ /dev/null
@@ -1,100 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008, 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.eclipselink.core.internal;
-
-import java.util.List;
-import org.eclipse.jpt.core.JpaAnnotationDefinitionProvider;
-import org.eclipse.jpt.core.internal.platform.AbstractJpaAnnotationDefintionProvider;
-import org.eclipse.jpt.core.resource.java.AnnotationDefinition;
-import org.eclipse.jpt.eclipselink.core.internal.resource.java.BasicCollectionAnnotationDefinition;
-import org.eclipse.jpt.eclipselink.core.internal.resource.java.BasicMapAnnotationDefinition;
-import org.eclipse.jpt.eclipselink.core.internal.resource.java.CacheAnnotationDefinition;
-import org.eclipse.jpt.eclipselink.core.internal.resource.java.ChangeTrackingAnnotationDefinition;
-import org.eclipse.jpt.eclipselink.core.internal.resource.java.ConvertAnnotationDefinition;
-import org.eclipse.jpt.eclipselink.core.internal.resource.java.ConverterAnnotationDefinition;
-import org.eclipse.jpt.eclipselink.core.internal.resource.java.CustomizerAnnotationDefinition;
-import org.eclipse.jpt.eclipselink.core.internal.resource.java.ExistenceCheckingAnnotationDefinition;
-import org.eclipse.jpt.eclipselink.core.internal.resource.java.JoinFetchAnnotationDefinition;
-import org.eclipse.jpt.eclipselink.core.internal.resource.java.MutableAnnotationDefinition;
-import org.eclipse.jpt.eclipselink.core.internal.resource.java.ObjectTypeConverterAnnotationDefinition;
-import org.eclipse.jpt.eclipselink.core.internal.resource.java.PrivateOwnedAnnotationDefinition;
-import org.eclipse.jpt.eclipselink.core.internal.resource.java.ReadOnlyAnnotationDefinition;
-import org.eclipse.jpt.eclipselink.core.internal.resource.java.ReadTransformerAnnotationDefinition;
-import org.eclipse.jpt.eclipselink.core.internal.resource.java.StructConverterAnnotationDefinition;
-import org.eclipse.jpt.eclipselink.core.internal.resource.java.TransformationAnnotationDefinition;
-import org.eclipse.jpt.eclipselink.core.internal.resource.java.TypeConverterAnnotationDefinition;
-import org.eclipse.jpt.eclipselink.core.internal.resource.java.VariableOneToOneAnnotationDefinition;
-import org.eclipse.jpt.eclipselink.core.internal.resource.java.WriteTransformerAnnotationDefinition;
-
-/**
- * Provides annotations for 1.0 EclipseLink platform which includes JPA annotations and
- * EclipseLink 1.0 annotations
- */
-public class EclipseLinkJpaAnnotationDefinitionProvider
-	extends AbstractJpaAnnotationDefintionProvider
-{
-	// singleton
-	private static final JpaAnnotationDefinitionProvider INSTANCE = new EclipseLinkJpaAnnotationDefinitionProvider();
-
-	/**
-	 * Return the singleton.
-	 */
-	public static JpaAnnotationDefinitionProvider instance() {
-		return INSTANCE;
-	}
-
-	/**
-	 * Ensure single instance.
-	 */
-	private EclipseLinkJpaAnnotationDefinitionProvider() {
-		super();
-	}
-	
-	@Override
-	protected void addTypeMappingAnnotationDefinitionsTo(List<AnnotationDefinition> definitions) {
-		//none
-	}
-	
-	@Override
-	protected void addTypeSupportingAnnotationDefinitionsTo(List<AnnotationDefinition> definitions) {
-		definitions.add(CacheAnnotationDefinition.instance());
-		definitions.add(ChangeTrackingAnnotationDefinition.instance());
-		definitions.add(ConverterAnnotationDefinition.instance());
-		definitions.add(CustomizerAnnotationDefinition.instance());
-		definitions.add(ExistenceCheckingAnnotationDefinition.instance());
-		definitions.add(ObjectTypeConverterAnnotationDefinition.instance());
-		definitions.add(ReadOnlyAnnotationDefinition.instance());
-		definitions.add(StructConverterAnnotationDefinition.instance());		
-		definitions.add(TypeConverterAnnotationDefinition.instance());		
-	}
-
-	// 245996 addresses how the attribute mapping annotations should be ordered
-	@Override
-	protected void addAttributeMappingAnnotationDefinitionsTo(List<AnnotationDefinition> definitions) {
-		definitions.add(BasicCollectionAnnotationDefinition.instance());
-		definitions.add(BasicMapAnnotationDefinition.instance());
-		definitions.add(TransformationAnnotationDefinition.instance());
-		definitions.add(VariableOneToOneAnnotationDefinition.instance());
-	}
-	
-	@Override
-	protected void addAttributeSupportingAnnotationDefinitionsTo(List<AnnotationDefinition> definitions) {
-		definitions.add(ConvertAnnotationDefinition.instance());
-		definitions.add(ConverterAnnotationDefinition.instance());
-		definitions.add(JoinFetchAnnotationDefinition.instance());
-		definitions.add(MutableAnnotationDefinition.instance());
-		definitions.add(ObjectTypeConverterAnnotationDefinition.instance());
-		definitions.add(PrivateOwnedAnnotationDefinition.instance());
-		definitions.add(ReadTransformerAnnotationDefinition.instance());		
-		definitions.add(StructConverterAnnotationDefinition.instance());		
-		definitions.add(TypeConverterAnnotationDefinition.instance());		
-		definitions.add(WriteTransformerAnnotationDefinition.instance());		
-	}
-}
diff --git a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/EclipseLinkJpaFactory.java b/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/EclipseLinkJpaFactory.java
deleted file mode 100644
index d855d39..0000000
--- a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/EclipseLinkJpaFactory.java
+++ /dev/null
@@ -1,376 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008, 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- *******************************************************************************/
-package org.eclipse.jpt.eclipselink.core.internal;
-
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.jpt.core.JpaProject;
-import org.eclipse.jpt.core.context.MappingFile;
-import org.eclipse.jpt.core.context.PersistentType;
-import org.eclipse.jpt.core.context.java.JavaBasicMapping;
-import org.eclipse.jpt.core.context.java.JavaEmbeddable;
-import org.eclipse.jpt.core.context.java.JavaEmbeddedIdMapping;
-import org.eclipse.jpt.core.context.java.JavaEmbeddedMapping;
-import org.eclipse.jpt.core.context.java.JavaIdMapping;
-import org.eclipse.jpt.core.context.java.JavaManyToManyMapping;
-import org.eclipse.jpt.core.context.java.JavaManyToOneMapping;
-import org.eclipse.jpt.core.context.java.JavaOneToManyMapping;
-import org.eclipse.jpt.core.context.java.JavaOneToOneMapping;
-import org.eclipse.jpt.core.context.java.JavaPersistentAttribute;
-import org.eclipse.jpt.core.context.java.JavaPersistentType;
-import org.eclipse.jpt.core.context.java.JavaVersionMapping;
-import org.eclipse.jpt.core.context.orm.EntityMappings;
-import org.eclipse.jpt.core.context.orm.OrmBasicMapping;
-import org.eclipse.jpt.core.context.orm.OrmEmbeddable;
-import org.eclipse.jpt.core.context.orm.OrmEmbeddedIdMapping;
-import org.eclipse.jpt.core.context.orm.OrmEmbeddedMapping;
-import org.eclipse.jpt.core.context.orm.OrmEntity;
-import org.eclipse.jpt.core.context.orm.OrmIdMapping;
-import org.eclipse.jpt.core.context.orm.OrmManyToManyMapping;
-import org.eclipse.jpt.core.context.orm.OrmManyToOneMapping;
-import org.eclipse.jpt.core.context.orm.OrmMappedSuperclass;
-import org.eclipse.jpt.core.context.orm.OrmOneToManyMapping;
-import org.eclipse.jpt.core.context.orm.OrmOneToOneMapping;
-import org.eclipse.jpt.core.context.orm.OrmPersistentAttribute;
-import org.eclipse.jpt.core.context.orm.OrmPersistentType;
-import org.eclipse.jpt.core.context.orm.OrmTypeMapping;
-import org.eclipse.jpt.core.context.orm.OrmVersionMapping;
-import org.eclipse.jpt.core.context.orm.OrmXml;
-import org.eclipse.jpt.core.context.orm.PersistenceUnitMetadata;
-import org.eclipse.jpt.core.context.persistence.JarFileRef;
-import org.eclipse.jpt.core.context.persistence.MappingFileRef;
-import org.eclipse.jpt.core.context.persistence.Persistence;
-import org.eclipse.jpt.core.context.persistence.PersistenceUnit;
-import org.eclipse.jpt.core.internal.platform.GenericJpaFactory;
-import org.eclipse.jpt.core.resource.java.JavaResourcePersistentAttribute;
-import org.eclipse.jpt.core.resource.orm.XmlAttributeMapping;
-import org.eclipse.jpt.core.resource.orm.XmlTypeMapping;
-import org.eclipse.jpt.core.resource.persistence.XmlJarFileRef;
-import org.eclipse.jpt.core.resource.persistence.XmlPersistenceUnit;
-import org.eclipse.jpt.core.resource.xml.JpaXmlResource;
-import org.eclipse.jpt.eclipselink.core.EclipseLinkJpaProject;
-import org.eclipse.jpt.eclipselink.core.context.java.EclipseLinkJavaEntity;
-import org.eclipse.jpt.eclipselink.core.context.java.EclipseLinkJavaMappedSuperclass;
-import org.eclipse.jpt.eclipselink.core.internal.context.java.EclipseLinkJavaBasicMappingImpl;
-import org.eclipse.jpt.eclipselink.core.internal.context.java.EclipseLinkJavaEmbeddableImpl;
-import org.eclipse.jpt.eclipselink.core.internal.context.java.EclipseLinkJavaEntityImpl;
-import org.eclipse.jpt.eclipselink.core.internal.context.java.EclipseLinkJavaIdMappingImpl;
-import org.eclipse.jpt.eclipselink.core.internal.context.java.EclipseLinkJavaManyToManyMappingImpl;
-import org.eclipse.jpt.eclipselink.core.internal.context.java.EclipseLinkJavaManyToOneMappingImpl;
-import org.eclipse.jpt.eclipselink.core.internal.context.java.EclipseLinkJavaMappedSuperclassImpl;
-import org.eclipse.jpt.eclipselink.core.internal.context.java.EclipseLinkJavaOneToManyMapping;
-import org.eclipse.jpt.eclipselink.core.internal.context.java.EclipseLinkJavaOneToOneMappingImpl;
-import org.eclipse.jpt.eclipselink.core.internal.context.java.EclipseLinkJavaPersistentAttribute;
-import org.eclipse.jpt.eclipselink.core.internal.context.java.EclipseLinkJavaVersionMappingImpl;
-import org.eclipse.jpt.eclipselink.core.internal.context.java.JavaBasicCollectionMapping;
-import org.eclipse.jpt.eclipselink.core.internal.context.java.JavaBasicMapMapping;
-import org.eclipse.jpt.eclipselink.core.internal.context.java.JavaTransformationMapping;
-import org.eclipse.jpt.eclipselink.core.internal.context.java.JavaVariableOneToOneMapping;
-import org.eclipse.jpt.eclipselink.core.internal.context.orm.EclipseLinkEntityMappings;
-import org.eclipse.jpt.eclipselink.core.internal.context.orm.EclipseLinkEntityMappingsImpl;
-import org.eclipse.jpt.eclipselink.core.internal.context.orm.EclipseLinkOrmBasicMapping;
-import org.eclipse.jpt.eclipselink.core.internal.context.orm.EclipseLinkOrmEmbeddableImpl;
-import org.eclipse.jpt.eclipselink.core.internal.context.orm.EclipseLinkOrmEntityImpl;
-import org.eclipse.jpt.eclipselink.core.internal.context.orm.EclipseLinkOrmIdMapping;
-import org.eclipse.jpt.eclipselink.core.internal.context.orm.EclipseLinkOrmManyToManyMapping;
-import org.eclipse.jpt.eclipselink.core.internal.context.orm.EclipseLinkOrmManyToOneMapping;
-import org.eclipse.jpt.eclipselink.core.internal.context.orm.EclipseLinkOrmMappedSuperclassImpl;
-import org.eclipse.jpt.eclipselink.core.internal.context.orm.EclipseLinkOrmOneToManyMapping;
-import org.eclipse.jpt.eclipselink.core.internal.context.orm.EclipseLinkOrmOneToOneMapping;
-import org.eclipse.jpt.eclipselink.core.internal.context.orm.EclipseLinkOrmPersistentAttribute;
-import org.eclipse.jpt.eclipselink.core.internal.context.orm.EclipseLinkOrmPersistentType;
-import org.eclipse.jpt.eclipselink.core.internal.context.orm.EclipseLinkOrmVersionMapping;
-import org.eclipse.jpt.eclipselink.core.internal.context.orm.EclipseLinkOrmXml;
-import org.eclipse.jpt.eclipselink.core.internal.context.orm.EclipseLinkPersistenceUnitMetadata;
-import org.eclipse.jpt.eclipselink.core.internal.context.orm.EclipseLinkVirtualXmlBasic;
-import org.eclipse.jpt.eclipselink.core.internal.context.orm.EclipseLinkVirtualXmlEmbedded;
-import org.eclipse.jpt.eclipselink.core.internal.context.orm.EclipseLinkVirtualXmlEmbeddedId;
-import org.eclipse.jpt.eclipselink.core.internal.context.orm.EclipseLinkVirtualXmlId;
-import org.eclipse.jpt.eclipselink.core.internal.context.orm.EclipseLinkVirtualXmlManyToMany;
-import org.eclipse.jpt.eclipselink.core.internal.context.orm.EclipseLinkVirtualXmlManyToOne;
-import org.eclipse.jpt.eclipselink.core.internal.context.orm.EclipseLinkVirtualXmlOneToMany;
-import org.eclipse.jpt.eclipselink.core.internal.context.orm.EclipseLinkVirtualXmlOneToOne;
-import org.eclipse.jpt.eclipselink.core.internal.context.orm.EclipseLinkVirtualXmlVersion;
-import org.eclipse.jpt.eclipselink.core.internal.context.orm.OrmBasicCollectionMapping;
-import org.eclipse.jpt.eclipselink.core.internal.context.orm.OrmBasicMapMapping;
-import org.eclipse.jpt.eclipselink.core.internal.context.orm.OrmTransformationMapping;
-import org.eclipse.jpt.eclipselink.core.internal.context.orm.OrmVariableOneToOneMapping;
-import org.eclipse.jpt.eclipselink.core.internal.context.orm.VirtualXmlBasicCollection;
-import org.eclipse.jpt.eclipselink.core.internal.context.orm.VirtualXmlBasicMap;
-import org.eclipse.jpt.eclipselink.core.internal.context.orm.VirtualXmlTransformation;
-import org.eclipse.jpt.eclipselink.core.internal.context.orm.VirtualXmlVariableOneToOne;
-import org.eclipse.jpt.eclipselink.core.internal.context.persistence.EclipseLinkJarFileRef;
-import org.eclipse.jpt.eclipselink.core.internal.context.persistence.EclipseLinkPersistenceUnit;
-import org.eclipse.jpt.eclipselink.core.resource.orm.XmlBasic;
-import org.eclipse.jpt.eclipselink.core.resource.orm.XmlBasicCollection;
-import org.eclipse.jpt.eclipselink.core.resource.orm.XmlBasicMap;
-import org.eclipse.jpt.eclipselink.core.resource.orm.XmlEmbeddable;
-import org.eclipse.jpt.eclipselink.core.resource.orm.XmlEmbedded;
-import org.eclipse.jpt.eclipselink.core.resource.orm.XmlEmbeddedId;
-import org.eclipse.jpt.eclipselink.core.resource.orm.XmlEntity;
-import org.eclipse.jpt.eclipselink.core.resource.orm.XmlEntityMappings;
-import org.eclipse.jpt.eclipselink.core.resource.orm.XmlId;
-import org.eclipse.jpt.eclipselink.core.resource.orm.XmlManyToMany;
-import org.eclipse.jpt.eclipselink.core.resource.orm.XmlManyToOne;
-import org.eclipse.jpt.eclipselink.core.resource.orm.XmlMappedSuperclass;
-import org.eclipse.jpt.eclipselink.core.resource.orm.XmlOneToMany;
-import org.eclipse.jpt.eclipselink.core.resource.orm.XmlOneToOne;
-import org.eclipse.jpt.eclipselink.core.resource.orm.XmlTransformation;
-import org.eclipse.jpt.eclipselink.core.resource.orm.XmlVariableOneToOne;
-import org.eclipse.jpt.eclipselink.core.resource.orm.XmlVersion;
-
-public class EclipseLinkJpaFactory
-	extends GenericJpaFactory
-{
-	protected EclipseLinkJpaFactory() {
-		super();
-	}
-		
-	// ********** Core Model **********
-	
-	@Override
-	public EclipseLinkJpaProject buildJpaProject(JpaProject.Config config) throws CoreException {
-		return new EclipseLinkJpaProjectImpl(config);
-	}
-	
-	
-	// ********** Context Nodes **********
-	
-	public MappingFile buildEclipseLinkMappingFile(MappingFileRef parent, JpaXmlResource resource) {
-		return this.buildEclipseLinkOrmXml(parent, resource);
-	}
-	
-	protected EclipseLinkOrmXml buildEclipseLinkOrmXml(MappingFileRef parent, JpaXmlResource resource) {
-		return new EclipseLinkOrmXml(parent, resource);
-	}
-	
-	
-	// ********** Persistence Context Model **********
-	
-	@Override
-	public PersistenceUnit buildPersistenceUnit(Persistence parent, XmlPersistenceUnit xmlPersistenceUnit) {
-		return new EclipseLinkPersistenceUnit(parent, xmlPersistenceUnit);
-	}
-	
-	@Override
-	public JarFileRef buildJarFileRef(PersistenceUnit parent, XmlJarFileRef xmlJarFileRef) {
-		return new EclipseLinkJarFileRef(parent, xmlJarFileRef);
-	}
-	
-	
-	// ********** EclipseLink-specific ORM Virtual Resource Model **********
-	
-	public XmlBasic buildEclipseLinkVirtualXmlBasic(OrmTypeMapping ormTypeMapping, JavaBasicMapping javaBasicMapping) {
-		return new EclipseLinkVirtualXmlBasic(ormTypeMapping, javaBasicMapping);
-	}
-	
-	public XmlId buildEclipseLinkVirtualXmlId(OrmTypeMapping ormTypeMapping, JavaIdMapping javaIdMapping) {
-		return new EclipseLinkVirtualXmlId(ormTypeMapping, javaIdMapping);
-	}
-	
-	public XmlEmbeddedId buildEclipseLinkVirtualXmlEmbeddedId(OrmTypeMapping ormTypeMapping, JavaEmbeddedIdMapping javaEmbeddedIdMapping) {
-		return new EclipseLinkVirtualXmlEmbeddedId(ormTypeMapping, javaEmbeddedIdMapping);
-	}
-	
-	public XmlEmbedded buildEclipseLinkVirtualXmlEmbedded(OrmTypeMapping ormTypeMapping, JavaEmbeddedMapping javaEmbeddedMapping) {
-		return new EclipseLinkVirtualXmlEmbedded(ormTypeMapping, javaEmbeddedMapping);
-	}
-	
-	public XmlManyToMany buildEclipseLinkVirtualXmlManyToMany(OrmTypeMapping ormTypeMapping, JavaManyToManyMapping javaManyToManyMapping) {
-		return new EclipseLinkVirtualXmlManyToMany(ormTypeMapping, javaManyToManyMapping);
-	}
-	
-	public XmlManyToOne buildEclipseLinkVirtualXmlManyToOne(OrmTypeMapping ormTypeMapping, JavaManyToOneMapping javaManyToOneMapping) {
-		return new EclipseLinkVirtualXmlManyToOne(ormTypeMapping, javaManyToOneMapping);
-	}
-	
-	public XmlOneToMany buildEclipseLinkVirtualXmlOneToMany(OrmTypeMapping ormTypeMapping, EclipseLinkJavaOneToManyMapping javaOneToManyMapping) {
-		return new EclipseLinkVirtualXmlOneToMany(ormTypeMapping, javaOneToManyMapping);
-	}
-	
-	public XmlOneToOne buildEclipseLinkVirtualXmlOneToOne(OrmTypeMapping ormTypeMapping, JavaOneToOneMapping javaOneToOneMapping) {
-		return new EclipseLinkVirtualXmlOneToOne(ormTypeMapping, javaOneToOneMapping);
-	}
-	
-	public XmlVersion buildEclipseLinkVirtualXmlVersion(OrmTypeMapping ormTypeMapping, JavaVersionMapping javaVersionMapping) {
-		return new EclipseLinkVirtualXmlVersion(ormTypeMapping, javaVersionMapping);
-	}
-	
-	public XmlBasicCollection buildVirtualXmlBasicCollection(OrmTypeMapping ormTypeMapping, JavaBasicCollectionMapping javaBasicCollectionMapping) {
-		return new VirtualXmlBasicCollection(ormTypeMapping, javaBasicCollectionMapping);
-	}
-	
-	public XmlBasicMap buildVirtualXmlBasicMap(OrmTypeMapping ormTypeMapping, JavaBasicMapMapping javaBasicMapMapping) {
-		return new VirtualXmlBasicMap(ormTypeMapping, javaBasicMapMapping);
-	}
-	
-	public XmlTransformation buildVirtualXmlTransformation(OrmTypeMapping ormTypeMapping, JavaTransformationMapping javaTransformationMapping) {
-		return new VirtualXmlTransformation(ormTypeMapping, javaTransformationMapping);
-	}
-	
-	public XmlVariableOneToOne buildVirtualXmlVariableOneToOne(OrmTypeMapping ormTypeMapping, JavaVariableOneToOneMapping javaVariableOneToOneMapping) {
-		return new VirtualXmlVariableOneToOne(ormTypeMapping, javaVariableOneToOneMapping);
-	}
-	
-	
-	// ********** EclipseLink-specific ORM Context Model **********
-	
-	public EntityMappings buildEclipseLinkEntityMappings(OrmXml parent, XmlEntityMappings xmlEntityMappings) {
-		return new EclipseLinkEntityMappingsImpl(parent, xmlEntityMappings);
-	}
-	
-	public PersistenceUnitMetadata buildEclipseLinkPersistenceUnitMetadata(EntityMappings parent, XmlEntityMappings xmlEntityMappings) {
-		return new EclipseLinkPersistenceUnitMetadata(parent, xmlEntityMappings);
-	}
-
-	public OrmPersistentType buildEclipseLinkOrmPersistentType(EclipseLinkEntityMappings parent , XmlTypeMapping resourceMapping) {
-		return new EclipseLinkOrmPersistentType(parent, resourceMapping);
-	}
-	
-	public OrmPersistentAttribute buildEclipseLinkOrmPersistentAttribute(OrmPersistentType parent, OrmPersistentAttribute.Owner owner, XmlAttributeMapping resourceMapping) {
-		return new EclipseLinkOrmPersistentAttribute(parent, owner, resourceMapping);
-	}
-
-	public OrmEmbeddable buildEclipseLinkOrmEmbeddable(OrmPersistentType type, XmlEmbeddable resourceMapping) {
-		return new EclipseLinkOrmEmbeddableImpl(type, resourceMapping);
-	}
-
-	public OrmEntity buildEclipseLinkOrmEntity(OrmPersistentType type, XmlEntity resourceMapping) {
-		return new EclipseLinkOrmEntityImpl(type, resourceMapping);
-	}
-	
-	public OrmMappedSuperclass buildEclipseLinkOrmMappedSuperclass(OrmPersistentType type, XmlMappedSuperclass resourceMapping) {
-		return new EclipseLinkOrmMappedSuperclassImpl(type, resourceMapping);
-	}
-	
-	public OrmBasicMapping buildEclipseLinkOrmBasicMapping(OrmPersistentAttribute parent, XmlBasic resourceMapping) {
-		return new EclipseLinkOrmBasicMapping(parent, resourceMapping);
-	}
-	
-	public OrmIdMapping buildEclipseLinkOrmIdMapping(OrmPersistentAttribute parent, XmlId resourceMapping) {
-		return new EclipseLinkOrmIdMapping(parent, resourceMapping);
-	}
-	
-	public OrmEmbeddedIdMapping buildEclipseLinkOrmEmbeddedIdMapping(OrmPersistentAttribute parent, XmlEmbeddedId resourceMapping) {
-		return buildOrmEmbeddedIdMapping(parent, resourceMapping);
-	}
-	
-	public OrmEmbeddedMapping buildEclipseLinkOrmEmbeddedMapping(OrmPersistentAttribute parent, XmlEmbedded resourceMapping) {
-		return buildOrmEmbeddedMapping(parent, resourceMapping);
-	}
-
-	public OrmManyToManyMapping buildEclipseLinkOrmManyToManyMapping(OrmPersistentAttribute parent, XmlManyToMany resourceMapping) {
-		return new EclipseLinkOrmManyToManyMapping(parent, resourceMapping);
-	}
-	
-	public OrmManyToOneMapping buildEclipseLinkOrmManyToOneMapping(OrmPersistentAttribute parent, XmlManyToOne resourceMapping) {
-		return new EclipseLinkOrmManyToOneMapping(parent, resourceMapping);
-	}
-	
-	public OrmOneToManyMapping buildEclipseLinkOrmOneToManyMapping(OrmPersistentAttribute parent, XmlOneToMany resourceMapping) {
-		return new EclipseLinkOrmOneToManyMapping(parent, resourceMapping);
-	}
-	
-	public OrmOneToOneMapping buildEclipseLinkOrmOneToOneMapping(OrmPersistentAttribute parent, XmlOneToOne resourceMapping) {
-		return new EclipseLinkOrmOneToOneMapping(parent, resourceMapping);
-	}
-	
-	public OrmVersionMapping buildEclipseLinkOrmVersionMapping(OrmPersistentAttribute parent, XmlVersion resourceMapping) {
-		return new EclipseLinkOrmVersionMapping(parent, resourceMapping);
-	}
-		
-	public OrmBasicCollectionMapping buildOrmBasicCollectionMapping(OrmPersistentAttribute parent, XmlBasicCollection resourceMapping) {
-		return new OrmBasicCollectionMapping(parent, resourceMapping);
-	}
-	
-	public OrmBasicMapMapping buildOrmBasicMapMapping(OrmPersistentAttribute parent, XmlBasicMap resourceMapping) {
-		return new OrmBasicMapMapping(parent, resourceMapping);
-	}
-	
-	public OrmTransformationMapping buildOrmTransformationMapping(OrmPersistentAttribute parent, XmlTransformation resourceMapping) {
-		return new OrmTransformationMapping(parent, resourceMapping);
-	}
-	
-	public OrmVariableOneToOneMapping buildOrmVariableOneToOneMapping(OrmPersistentAttribute parent, XmlVariableOneToOne resourceMapping) {
-		return new OrmVariableOneToOneMapping(parent, resourceMapping);
-	}
-	
-	// ********** Java Context Model **********
-
-	@Override
-	public JavaPersistentAttribute buildJavaPersistentAttribute(PersistentType parent, JavaResourcePersistentAttribute jrpa) {
-		return new EclipseLinkJavaPersistentAttribute(parent, jrpa);
-	}
-	
-	@Override
-	public JavaBasicMapping buildJavaBasicMapping(JavaPersistentAttribute parent) {
-		return new EclipseLinkJavaBasicMappingImpl(parent);
-	}
-	
-	@Override
-	public JavaEmbeddable buildJavaEmbeddable(JavaPersistentType parent) {
-		return new EclipseLinkJavaEmbeddableImpl(parent);
-	}
-	
-	@Override
-	public EclipseLinkJavaEntity buildJavaEntity(JavaPersistentType parent) {
-		return new EclipseLinkJavaEntityImpl(parent);
-	}
-	
-	@Override
-	public JavaIdMapping buildJavaIdMapping(JavaPersistentAttribute parent) {
-		return new EclipseLinkJavaIdMappingImpl(parent);
-	}
-	
-	@Override
-	public EclipseLinkJavaMappedSuperclass buildJavaMappedSuperclass(JavaPersistentType parent) {
-		return new EclipseLinkJavaMappedSuperclassImpl(parent);
-	}
-	
-	@Override
-	public JavaVersionMapping buildJavaVersionMapping(JavaPersistentAttribute parent) {
-		return new EclipseLinkJavaVersionMappingImpl(parent);
-	}
-	
-	@Override
-	public JavaOneToManyMapping buildJavaOneToManyMapping(JavaPersistentAttribute parent) {
-		return new EclipseLinkJavaOneToManyMapping(parent);
-	}
-	
-	@Override
-	public JavaOneToOneMapping buildJavaOneToOneMapping(JavaPersistentAttribute parent) {
-		return new EclipseLinkJavaOneToOneMappingImpl(parent);
-	}
-	
-	@Override
-	public JavaManyToManyMapping buildJavaManyToManyMapping(JavaPersistentAttribute parent) {
-		return new EclipseLinkJavaManyToManyMappingImpl(parent);
-	}
-	
-	@Override
-	public JavaManyToOneMapping buildJavaManyToOneMapping(JavaPersistentAttribute parent) {
-		return new EclipseLinkJavaManyToOneMappingImpl(parent);
-	}
-
-	public JavaBasicCollectionMapping buildJavaBasicCollectionMapping(JavaPersistentAttribute parent) {
-		return new JavaBasicCollectionMapping(parent);
-	}
-	
-	public JavaBasicMapMapping buildJavaBasicMapMapping(JavaPersistentAttribute parent) {
-		return new JavaBasicMapMapping(parent);
-	}
-	
-	public JavaTransformationMapping buildJavaTransformationMapping(JavaPersistentAttribute parent) {
-		return new JavaTransformationMapping(parent);
-	}
-
-	public JavaVariableOneToOneMapping buildJavaVariableOneToOneMapping(JavaPersistentAttribute parent) {
-		return new JavaVariableOneToOneMapping(parent);
-	}
-}
diff --git a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/EclipseLinkJpaPlatformFactory.java b/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/EclipseLinkJpaPlatformFactory.java
deleted file mode 100644
index fba199f..0000000
--- a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/EclipseLinkJpaPlatformFactory.java
+++ /dev/null
@@ -1,66 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.eclipselink.core.internal;
-
-import org.eclipse.jpt.core.JpaAnnotationProvider;
-import org.eclipse.jpt.core.JpaFactory;
-import org.eclipse.jpt.core.JpaPlatform;
-import org.eclipse.jpt.core.JpaPlatformFactory;
-import org.eclipse.jpt.core.JpaValidation;
-import org.eclipse.jpt.core.internal.platform.GenericJpaAnnotationDefinitionProvider;
-import org.eclipse.jpt.core.internal.platform.GenericJpaAnnotationProvider;
-import org.eclipse.jpt.core.internal.platform.GenericJpaPlatform;
-import org.eclipse.jpt.core.internal.platform.GenericJpaPlatformProvider;
-
-/**
- * All the state in the JPA platform should be "static" (i.e. unchanging once
- * it is initialized).
- */
-public class EclipseLinkJpaPlatformFactory
-	implements JpaPlatformFactory
-{
-
-	/**
-	 * zero-argument constructor
-	 */
-	public EclipseLinkJpaPlatformFactory() {
-		super();
-	}
-	
-	public JpaPlatform buildJpaPlatform(String id) {
-		return new GenericJpaPlatform(
-			id,
-			buildJpaFactory(), 
-			buildJpaAnnotationProvider(), 
-			buildJpaValidation(),
-			EclipseLinkJpaPlatformProvider.instance(), 
-			//put eclipselink first because of the default java attribute mapping providers order,
-			//maybe there is a better way to handle that order dependency
-			GenericJpaPlatformProvider.instance());
-	}
-	
-	protected JpaFactory buildJpaFactory() {
-		return new EclipseLinkJpaFactory();
-	}
-	
-	protected JpaAnnotationProvider buildJpaAnnotationProvider() {
-		return new GenericJpaAnnotationProvider(
-			GenericJpaAnnotationDefinitionProvider.instance(),
-			EclipseLinkJpaAnnotationDefinitionProvider.instance());
-	}
-	
-	protected JpaValidation buildJpaValidation() {
-		return new JpaValidation() {
-			public Supported getTablePerConcreteClassInheritanceIsSupported() {
-				return Supported.NO;
-			}
-		};
-	}
-}
diff --git a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/EclipseLinkJpaPlatformProvider.java b/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/EclipseLinkJpaPlatformProvider.java
deleted file mode 100644
index b31df25..0000000
--- a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/EclipseLinkJpaPlatformProvider.java
+++ /dev/null
@@ -1,136 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008, 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- *******************************************************************************/
-package org.eclipse.jpt.eclipselink.core.internal;
-
-import java.util.List;
-import org.eclipse.jpt.core.JpaPlatformProvider;
-import org.eclipse.jpt.core.JpaResourceModelProvider;
-import org.eclipse.jpt.core.context.MappingFileProvider;
-import org.eclipse.jpt.core.context.java.DefaultJavaAttributeMappingProvider;
-import org.eclipse.jpt.core.context.java.JavaAttributeMappingProvider;
-import org.eclipse.jpt.core.context.java.JavaTypeMappingProvider;
-import org.eclipse.jpt.core.context.orm.OrmAttributeMappingProvider;
-import org.eclipse.jpt.core.context.orm.OrmTypeMappingProvider;
-import org.eclipse.jpt.core.internal.platform.AbstractJpaPlatformProvider;
-import org.eclipse.jpt.eclipselink.core.internal.context.EclipseLinkMappingFileProvider;
-import org.eclipse.jpt.eclipselink.core.internal.context.java.EclipseLinkJavaOneToManyMappingProvider;
-import org.eclipse.jpt.eclipselink.core.internal.context.java.EclipseLinkJavaOneToOneMappingProvider;
-import org.eclipse.jpt.eclipselink.core.internal.context.java.JavaBasicCollectionMappingProvider;
-import org.eclipse.jpt.eclipselink.core.internal.context.java.JavaBasicMapMappingProvider;
-import org.eclipse.jpt.eclipselink.core.internal.context.java.JavaTransformationMappingProvider;
-import org.eclipse.jpt.eclipselink.core.internal.context.java.JavaVariableOneToOneMappingProvider;
-import org.eclipse.jpt.eclipselink.core.internal.context.orm.EclipseLinkOrmBasicMappingProvider;
-import org.eclipse.jpt.eclipselink.core.internal.context.orm.EclipseLinkOrmEmbeddableProvider;
-import org.eclipse.jpt.eclipselink.core.internal.context.orm.EclipseLinkOrmEmbeddedIdMappingProvider;
-import org.eclipse.jpt.eclipselink.core.internal.context.orm.EclipseLinkOrmEmbeddedMappingProvider;
-import org.eclipse.jpt.eclipselink.core.internal.context.orm.EclipseLinkOrmEntityProvider;
-import org.eclipse.jpt.eclipselink.core.internal.context.orm.EclipseLinkOrmIdMappingProvider;
-import org.eclipse.jpt.eclipselink.core.internal.context.orm.EclipseLinkOrmManyToManyMappingProvider;
-import org.eclipse.jpt.eclipselink.core.internal.context.orm.EclipseLinkOrmManyToOneMappingProvider;
-import org.eclipse.jpt.eclipselink.core.internal.context.orm.EclipseLinkOrmMappedSuperclassProvider;
-import org.eclipse.jpt.eclipselink.core.internal.context.orm.EclipseLinkOrmOneToManyMappingProvider;
-import org.eclipse.jpt.eclipselink.core.internal.context.orm.EclipseLinkOrmOneToOneMappingProvider;
-import org.eclipse.jpt.eclipselink.core.internal.context.orm.EclipseLinkOrmVersionMappingProvider;
-import org.eclipse.jpt.eclipselink.core.internal.context.orm.OrmBasicCollectionMappingProvider;
-import org.eclipse.jpt.eclipselink.core.internal.context.orm.OrmBasicMapMappingProvider;
-import org.eclipse.jpt.eclipselink.core.internal.context.orm.OrmTransformationMappingProvider;
-import org.eclipse.jpt.eclipselink.core.internal.context.orm.OrmVariableOneToOneMappingProvider;
-
-/**
- * EclipseLink platform
- */
-public class EclipseLinkJpaPlatformProvider
-	extends AbstractJpaPlatformProvider
-{
-	
-	public static final String ID = "org.eclipse.eclipselink.platform"; //$NON-NLS-1$
-
-	// singleton
-	private static final JpaPlatformProvider INSTANCE = new EclipseLinkJpaPlatformProvider();
-
-	/**
-	 * Return the singleton.
-	 */
-	public static JpaPlatformProvider instance() {
-		return INSTANCE;
-	}
-
-	/**
-	 * Ensure single instance.
-	 */
-	private EclipseLinkJpaPlatformProvider() {
-		super();
-	}
-
-	
-	// ********* JPA files *********	
-	
-	@Override
-	protected void addResourceModelProvidersTo(List<JpaResourceModelProvider> providers) {
-		providers.add(EclipseLinkOrmResourceModelProvider.instance());
-	}
-
-	
-	// ********* java *********	
-
-	@Override
-	protected void addJavaTypeMappingProvidersTo(@SuppressWarnings("unused") List<JavaTypeMappingProvider> providers) {
-		//none specific to EclipseLink
-	}
-
-	@Override
-	protected void addJavaAttributeMappingProvidersTo(List<JavaAttributeMappingProvider> providers) {
-		providers.add(JavaBasicCollectionMappingProvider.instance());
-		providers.add(JavaBasicMapMappingProvider.instance());
-		providers.add(JavaTransformationMappingProvider.instance());
-		providers.add(JavaVariableOneToOneMappingProvider.instance());
-	}
-
-	@Override
-	protected void addDefaultJavaAttributeMappingProvidersTo(List<DefaultJavaAttributeMappingProvider> providers) {
-		// these need to be checked first, so we can check for Basic last in case the reference object is Serializable
-		providers.add(EclipseLinkJavaOneToOneMappingProvider.instance());
-		providers.add(EclipseLinkJavaOneToManyMappingProvider.instance());
-		providers.add(JavaVariableOneToOneMappingProvider.instance());
-	}
-	
-	
-	// ********* ORM *********
-	
-	@Override
-	protected void addOrmTypeMappingProvidersTo(List<OrmTypeMappingProvider> providers) {
-		providers.add(EclipseLinkOrmEmbeddableProvider.instance());
-		providers.add(EclipseLinkOrmEntityProvider.instance());
-		providers.add(EclipseLinkOrmMappedSuperclassProvider.instance());
-	}
-	
-	@Override
-	protected void addMappingFileProvidersTo(List<MappingFileProvider> providers) {
-		providers.add(EclipseLinkMappingFileProvider.instance());
-	}
-
-	@Override
-	protected void addOrmAttributeMappingProvidersTo(List<OrmAttributeMappingProvider> providers) {
-		providers.add(OrmBasicCollectionMappingProvider.instance());
-		providers.add(OrmBasicMapMappingProvider.instance());
-		providers.add(OrmTransformationMappingProvider.instance());
-		providers.add(OrmVariableOneToOneMappingProvider.instance());
-		providers.add(EclipseLinkOrmBasicMappingProvider.instance());
-		providers.add(EclipseLinkOrmIdMappingProvider.instance());
-		providers.add(EclipseLinkOrmEmbeddedIdMappingProvider.instance());
-		providers.add(EclipseLinkOrmEmbeddedMappingProvider.instance());
-		providers.add(EclipseLinkOrmManyToManyMappingProvider.instance());
-		providers.add(EclipseLinkOrmManyToOneMappingProvider.instance());
-		providers.add(EclipseLinkOrmOneToManyMappingProvider.instance());
-		providers.add(EclipseLinkOrmOneToOneMappingProvider.instance());
-		providers.add(EclipseLinkOrmVersionMappingProvider.instance());
-	}
-
-}
diff --git a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/EclipseLinkJpaProjectImpl.java b/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/EclipseLinkJpaProjectImpl.java
deleted file mode 100644
index cc77b3a..0000000
--- a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/EclipseLinkJpaProjectImpl.java
+++ /dev/null
@@ -1,40 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.eclipselink.core.internal;
-
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.jpt.core.JpaProject;
-import org.eclipse.jpt.core.internal.AbstractJpaProject;
-import org.eclipse.jpt.core.resource.xml.JpaXmlResource;
-import org.eclipse.jpt.eclipselink.core.EclipseLinkJpaProject;
-
-/**
- * EclipseLink-specific JPA project.
- */
-public class EclipseLinkJpaProjectImpl
-	extends AbstractJpaProject
-	implements EclipseLinkJpaProject
-{
-
-
-	// ********** constructor/initialization **********
-
-	public EclipseLinkJpaProjectImpl(JpaProject.Config config) throws CoreException {
-		super(config);
-	}
-	
-	public JpaXmlResource getDefaultEclipseLinkOrmXmlResource() {
-		return (JpaXmlResource) this.getResourceModel(
-				JptEclipseLinkCorePlugin.DEFAULT_ECLIPSELINK_ORM_XML_FILE_PATH,
-				JptEclipseLinkCorePlugin.ECLIPSELINK_ORM_XML_CONTENT_TYPE
-			);
-	}
-
-}
diff --git a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/EclipseLinkJpaValidationMessages.java b/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/EclipseLinkJpaValidationMessages.java
deleted file mode 100644
index 352eaa4..0000000
--- a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/EclipseLinkJpaValidationMessages.java
+++ /dev/null
@@ -1,25 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.eclipselink.core.internal;
-
-@SuppressWarnings("nls")
-public interface EclipseLinkJpaValidationMessages {
-
-	public static final String BUNDLE_NAME = "eclipselink_jpa_validation";
-	
-	public static final String CACHE_EXPIRY_AND_EXPIRY_TIME_OF_DAY_BOTH_SPECIFIED = "CACHE_EXPIRY_AND_EXPIRY_TIME_OF_DAY_BOTH_SPECIFIED";
-
-	public static final String CONVERTER_CLASS_IMPLEMENTS_CONVERTER = "CONVERTER_CLASS_IMPLEMENTS_CONVERTER";
-	
-	public static final String CUSTOMIZER_CLASS_IMPLEMENTS_DESCRIPTOR_CUSTOMIZER = "CUSTOMIZER_CLASS_IMPLEMENTS_DESCRIPTOR_CUSTOMIZER";
-		
-	public static final String MULTIPLE_OBJECT_VALUES_FOR_DATA_VALUE = "MULTIPLE_OBJECT_VALUES_FOR_DATA_VALUE";
-	
-}
diff --git a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/EclipseLinkOrmResourceModelProvider.java b/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/EclipseLinkOrmResourceModelProvider.java
deleted file mode 100644
index 826afaa..0000000
--- a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/EclipseLinkOrmResourceModelProvider.java
+++ /dev/null
@@ -1,50 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008, 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.eclipselink.core.internal;
-
-import org.eclipse.core.resources.IFile;
-import org.eclipse.core.runtime.content.IContentType;
-import org.eclipse.jpt.core.JpaProject;
-import org.eclipse.jpt.core.JpaResourceModelProvider;
-import org.eclipse.jpt.core.resource.xml.JpaXmlResource;
-import org.eclipse.jpt.eclipselink.core.internal.resource.orm.EclipseLinkOrmXmlResourceProvider;
-
-/**
- * EclipseLink orm.xml
- */
-public class EclipseLinkOrmResourceModelProvider
-	implements JpaResourceModelProvider
-{
-	// singleton
-	private static final JpaResourceModelProvider INSTANCE = new EclipseLinkOrmResourceModelProvider();
-
-	/**
-	 * Return the singleton.
-	 */
-	public static JpaResourceModelProvider instance() {
-		return INSTANCE;
-	}
-
-	/**
-	 * Ensure single instance.
-	 */
-	private EclipseLinkOrmResourceModelProvider() {
-		super();
-	}
-
-	public IContentType getContentType() {
-		return JptEclipseLinkCorePlugin.ECLIPSELINK_ORM_XML_CONTENT_TYPE;
-	}
-
-	public JpaXmlResource buildResourceModel(JpaProject jpaProject, IFile file) {
-		return EclipseLinkOrmXmlResourceProvider.getXmlResourceProvider(file).getXmlResource();
-	}
-
-}
diff --git a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/JptEclipseLinkCorePlugin.java b/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/JptEclipseLinkCorePlugin.java
deleted file mode 100644
index 82ad3e5..0000000
--- a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/JptEclipseLinkCorePlugin.java
+++ /dev/null
@@ -1,107 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008, 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- *******************************************************************************/
-package org.eclipse.jpt.eclipselink.core.internal;
-
-import org.eclipse.core.resources.IProject;
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.core.runtime.Platform;
-import org.eclipse.core.runtime.Plugin;
-import org.eclipse.core.runtime.Status;
-import org.eclipse.core.runtime.content.IContentType;
-import org.eclipse.jpt.core.JptCorePlugin;
-import org.osgi.framework.BundleContext;
-
-/**
- * The activator class controls the plug-in life cycle
- */
-public class JptEclipseLinkCorePlugin extends Plugin
-{
-	// The plug-in ID
-	public static final String PLUGIN_ID = "org.eclipse.jpt.eclipselink.core"; //$NON-NLS-1$
-	
-	/**
-	 * Value of the content-type for eclipselink-orm.xml version 1.0 mappings files. Use this 
-	 * value to retrieve the ORM xml content type from the content type manager 
-	 * and to add new eclipselink-orm.xml-like extensions to this content type.
-	 * 
-	 * @see org.eclipse.core.runtime.content.IContentTypeManager#getContentType(String)
-	 */
-	public static final IContentType ECLIPSELINK_ORM_XML_CONTENT_TYPE = Platform.getContentTypeManager().getContentType(PLUGIN_ID + ".content.orm"); //$NON-NLS-1$
-	
-	/**
-	 * Value of the content-type for eclipselink-orm.xml version 1.1 mappings files. Use this 
-	 * value to retrieve the ORM xml content type from the content type manager 
-	 * and to add new eclipselink-orm.xml-like extensions to this content type.
-	 * 
-	 * @see org.eclipse.core.runtime.content.IContentTypeManager#getContentType(String)
-	 */
-	public static final IContentType ECLIPSELINK1_1_ORM_XML_CONTENT_TYPE = Platform.getContentTypeManager().getContentType("org.eclipse.jpt.eclipselink1_1.core.content.orm"); //$NON-NLS-1$
-
-	public static final String DEFAULT_ECLIPSELINK_ORM_XML_FILE_PATH = "META-INF/eclipselink-orm.xml"; //$NON-NLS-1$
-	
-	
-	// ********** singleton **********
-	private static JptEclipseLinkCorePlugin INSTANCE;
-	
-	/**
-	 * Return the singleton JPT EclipseLink plug-in.
-	 */
-	public static JptEclipseLinkCorePlugin instance() {
-		return INSTANCE;
-	}	
-	
-	/**
-	 * Return the default mapping file deployment URI for the specified project.
-	 * ("WEB-INF/classes/META-INF/eclipselink-orm.xml" for web projects and
-	 *  "META-INF/eclipselink-orm.xml" in other cases)
-	 */
-	public static String getDefaultEclipseLinkOrmXmlDeploymentURI(IProject project) {
-		return JptCorePlugin.getDeploymentURI(project, DEFAULT_ECLIPSELINK_ORM_XML_FILE_PATH);
-	}
-	
-	/**
-	 * Log the specified status.
-	 */
-	public static void log(IStatus status) {
-		INSTANCE.getLog().log(status);
-    }
-	
-	/**
-	 * Log the specified message.
-	 */
-	public static void log(String msg) {
-        log(new Status(IStatus.ERROR, PLUGIN_ID, IStatus.OK, msg, null));
-    }
-	
-	/**
-	 * Log the specified exception or error.
-	 */
-	public static void log(Throwable throwable) {
-		log(new Status(IStatus.ERROR, PLUGIN_ID, IStatus.OK, throwable.getLocalizedMessage(), throwable));
-	}
-
-	
-	// ********** plug-in implementation **********	
-	
-	public JptEclipseLinkCorePlugin() {}
-		
-	@Override
-	public void start(BundleContext context) throws Exception {
-		super.start(context);
-		INSTANCE = this;
-	}
-
-	@Override
-	public void stop(BundleContext context) throws Exception {
-		INSTANCE = null;
-		super.stop(context);
-	}
-
-}
diff --git a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/context/EclipseLink1_1MappingFileProvider.java b/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/context/EclipseLink1_1MappingFileProvider.java
deleted file mode 100644
index 50d341d..0000000
--- a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/context/EclipseLink1_1MappingFileProvider.java
+++ /dev/null
@@ -1,48 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.eclipselink.core.internal.context;
-
-import org.eclipse.core.runtime.content.IContentType;
-import org.eclipse.jpt.core.JpaFactory;
-import org.eclipse.jpt.core.context.MappingFile;
-import org.eclipse.jpt.core.context.MappingFileProvider;
-import org.eclipse.jpt.core.context.persistence.MappingFileRef;
-import org.eclipse.jpt.core.resource.xml.JpaXmlResource;
-import org.eclipse.jpt.eclipselink.core.internal.EclipseLink1_1JpaFactory;
-import org.eclipse.jpt.eclipselink.core.internal.JptEclipseLinkCorePlugin;
-
-public class EclipseLink1_1MappingFileProvider
-	implements MappingFileProvider
-{
-	// singleton
-	private static final MappingFileProvider INSTANCE = new EclipseLink1_1MappingFileProvider();
-
-	/**
-	 * Return the singleton.
-	 */
-	public static MappingFileProvider instance() {
-		return INSTANCE;
-	}
-
-	/**
-	 * Ensure single instance.
-	 */
-	private EclipseLink1_1MappingFileProvider() {
-		super();
-	}
-	public IContentType getContentType() {
-		return JptEclipseLinkCorePlugin.ECLIPSELINK1_1_ORM_XML_CONTENT_TYPE;
-	}
-
-	public MappingFile buildMappingFile(MappingFileRef parent, JpaXmlResource resource, JpaFactory factory) {
-		return ((EclipseLink1_1JpaFactory) factory).buildEclipseLink1_1MappingFile(parent, resource);
-	}
-
-}
diff --git a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/context/EclipseLinkMappingFileProvider.java b/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/context/EclipseLinkMappingFileProvider.java
deleted file mode 100644
index a278471..0000000
--- a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/context/EclipseLinkMappingFileProvider.java
+++ /dev/null
@@ -1,49 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008, 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.eclipselink.core.internal.context;
-
-import org.eclipse.core.runtime.content.IContentType;
-import org.eclipse.jpt.core.JpaFactory;
-import org.eclipse.jpt.core.context.MappingFile;
-import org.eclipse.jpt.core.context.MappingFileProvider;
-import org.eclipse.jpt.core.context.persistence.MappingFileRef;
-import org.eclipse.jpt.core.resource.xml.JpaXmlResource;
-import org.eclipse.jpt.eclipselink.core.internal.EclipseLinkJpaFactory;
-import org.eclipse.jpt.eclipselink.core.internal.JptEclipseLinkCorePlugin;
-
-public class EclipseLinkMappingFileProvider
-	implements MappingFileProvider
-{
-	// singleton
-	private static final MappingFileProvider INSTANCE = new EclipseLinkMappingFileProvider();
-
-	/**
-	 * Return the singleton.
-	 */
-	public static MappingFileProvider instance() {
-		return INSTANCE;
-	}
-
-	/**
-	 * Ensure single instance.
-	 */
-	private EclipseLinkMappingFileProvider() {
-		super();
-	}
-
-	public IContentType getContentType() {
-		return JptEclipseLinkCorePlugin.ECLIPSELINK_ORM_XML_CONTENT_TYPE;
-	}
-
-	public MappingFile buildMappingFile(MappingFileRef parent, JpaXmlResource resource, JpaFactory factory) {
-		return ((EclipseLinkJpaFactory) factory).buildEclipseLinkMappingFile(parent, resource);
-	}
-
-}
diff --git a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/context/java/AbstractEclipseLinkJavaPersistentAttribute.java b/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/context/java/AbstractEclipseLinkJavaPersistentAttribute.java
deleted file mode 100644
index 6070465..0000000
--- a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/context/java/AbstractEclipseLinkJavaPersistentAttribute.java
+++ /dev/null
@@ -1,60 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.eclipselink.core.internal.context.java;
-
-import org.eclipse.jpt.core.context.PersistentType;
-import org.eclipse.jpt.core.internal.context.java.AbstractJavaPersistentAttribute;
-import org.eclipse.jpt.core.resource.java.JavaResourcePersistentAttribute;
-import org.eclipse.jpt.utility.internal.CollectionTools;
-
-/**
- * 
- */
-public abstract class AbstractEclipseLinkJavaPersistentAttribute
-	extends AbstractJavaPersistentAttribute
-{
-
-	protected AbstractEclipseLinkJavaPersistentAttribute(PersistentType parent, JavaResourcePersistentAttribute jrpa) {
-		super(parent, jrpa);
-	}
-
-	/**
-	 * Return whether the specified type is a subclass of java.util.Date or java.util.Calendar.
-	 */
-	public boolean typeIsDateOrCalendar() {
-		return this.resourcePersistentAttribute.typeIsSubTypeOf(DATE_TYPE_NAME)
-				|| this.resourcePersistentAttribute.typeIsSubTypeOf(CALENDAR_TYPE_NAME);
-	}
-	protected static final String DATE_TYPE_NAME = java.util.Date.class.getName();
-	protected static final String CALENDAR_TYPE_NAME = java.util.Calendar.class.getName();
-
-	public boolean typeIsSerializable() {
-		return this.resourcePersistentAttribute.typeIsVariablePrimitive()
-				|| this.resourcePersistentAttribute.typeIsSubTypeOf(SERIALIZABLE_TYPE_NAME);
-	}
-
-	public boolean typeIsValidForVariableOneToOne() {
-		return this.resourcePersistentAttribute.typeIsInterface()
-				&& this.interfaceIsValidForVariableOneToOne(this.resourcePersistentAttribute.getTypeName());
-	}
-
-	protected boolean interfaceIsValidForVariableOneToOne(String interfaceName) {
-		return ! this.interfaceIsInvalidForVariableOneToOne(interfaceName);
-	}
-
-	protected boolean interfaceIsInvalidForVariableOneToOne(String interfaceName) {
-		return CollectionTools.contains(INVALID_VARIABLE_ONE_TO_ONE_INTERFACE_NAMES, interfaceName);
-	}
-
-	// TODO we could probably add more interfaces to this list...
-	private static final String[] INVALID_VARIABLE_ONE_TO_ONE_INTERFACE_NAMES =
-		CollectionTools.add(CONTAINER_TYPE_NAMES, "org.eclipse.persistence.indirection.ValueHolderInterface"); //$NON-NLS-1$
-
-}
diff --git a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/context/java/EclipseLink1_1JavaPersistentAttribute.java b/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/context/java/EclipseLink1_1JavaPersistentAttribute.java
deleted file mode 100644
index 77a2905..0000000
--- a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/context/java/EclipseLink1_1JavaPersistentAttribute.java
+++ /dev/null
@@ -1,64 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.eclipselink.core.internal.context.java;
-
-import org.eclipse.jpt.core.context.AccessType;
-import org.eclipse.jpt.core.context.PersistentType;
-import org.eclipse.jpt.core.resource.java.AccessAnnotation;
-import org.eclipse.jpt.core.resource.java.JavaResourcePersistentAttribute;
-
-/**
- * EclipseLink 1.1 persistent attribute
- */
-public class EclipseLink1_1JavaPersistentAttribute
-	extends AbstractEclipseLinkJavaPersistentAttribute
-{
-	protected AccessType specifiedAccess;
-
-
-	public EclipseLink1_1JavaPersistentAttribute(PersistentType parent, JavaResourcePersistentAttribute resourcePersistentAttribute) {
-		super(parent, resourcePersistentAttribute);
-		this.specifiedAccess = this.buildSpecifiedAccess();
-	}
-
-
-	// ********** AccessHolder implementation **********
-
-	public AccessType getSpecifiedAccess() {
-		return this.specifiedAccess;
-	}
-
-	/**
-	 * Don't support changing to specified access on a java persistent attribute, this
-	 * involves a larger process of moving the annotations to the corresponding field/property
-	 * which may or may not exist or might need to be created.
-	 */
-	public void setSpecifiedAccess(AccessType specifiedAccess) {
-		throw new UnsupportedOperationException();
-	}
-
-	protected void setSpecifiedAccess_(AccessType specifiedAccess) {
-		AccessType old = this.specifiedAccess;
-		this.specifiedAccess = specifiedAccess;
-		this.firePropertyChanged(SPECIFIED_ACCESS_PROPERTY, old, specifiedAccess);
-	}
-
-	protected AccessType buildSpecifiedAccess() {
-		AccessAnnotation accessAnnotation = (AccessAnnotation) this.resourcePersistentAttribute.getSupportingAnnotation(AccessAnnotation.ANNOTATION_NAME);
-		return accessAnnotation == null ? null : AccessType.fromJavaResourceModel(accessAnnotation.getValue());
-	}
-
-	@Override
-	public void update() {
-		super.update();
-		this.setSpecifiedAccess_(this.buildSpecifiedAccess());
-	}
-
-}
diff --git a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/context/java/EclipseLink1_1JavaPersistentType.java b/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/context/java/EclipseLink1_1JavaPersistentType.java
deleted file mode 100644
index bf2780a..0000000
--- a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/context/java/EclipseLink1_1JavaPersistentType.java
+++ /dev/null
@@ -1,77 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.eclipselink.core.internal.context.java;
-
-import java.util.Iterator;
-import org.eclipse.jpt.core.context.AccessType;
-import org.eclipse.jpt.core.context.PersistentType;
-import org.eclipse.jpt.core.internal.context.java.AbstractJavaPersistentType;
-import org.eclipse.jpt.core.resource.java.AccessAnnotation;
-import org.eclipse.jpt.core.resource.java.JavaResourcePersistentAttribute;
-import org.eclipse.jpt.core.resource.java.JavaResourcePersistentType;
-
-public class EclipseLink1_1JavaPersistentType
-	extends AbstractJavaPersistentType
-{
-	protected AccessType specifiedAccess;
-	
-	public EclipseLink1_1JavaPersistentType(PersistentType.Owner parent, JavaResourcePersistentType jrpt) {
-		super(parent, jrpt);
-	}
-	
-	protected AccessAnnotation getAccessAnnotation() {
-		return (AccessAnnotation) this.resourcePersistentType.getNonNullSupportingAnnotation(getAccessAnnotationName());
-	}
-
-	protected String getAccessAnnotationName() {
-		return AccessAnnotation.ANNOTATION_NAME;
-	}
-	
-	public AccessType getSpecifiedAccess() {
-		return this.specifiedAccess;
-	}
-	
-	public void setSpecifiedAccess(AccessType specifiedAccess) {
-		AccessType old = this.specifiedAccess;
-		this.specifiedAccess = specifiedAccess;
-		this.getAccessAnnotation().setValue(AccessType.toJavaResourceModel(specifiedAccess));
-		this.firePropertyChanged(SPECIFIED_ACCESS_PROPERTY, old, specifiedAccess);
-	}
-	
-	protected void setSpecifiedAccess_(AccessType specifiedAccess) {
-		AccessType old = this.specifiedAccess;
-		this.specifiedAccess = specifiedAccess;
-		this.firePropertyChanged(SPECIFIED_ACCESS_PROPERTY, old, specifiedAccess);
-	}
-	
-	@Override
-	protected Iterator<JavaResourcePersistentAttribute> resourceAttributes() {
-		return (this.specifiedAccess == null)
-			? super.resourceAttributes()
-			: this.resourcePersistentType.persistableAttributes(AccessType.toJavaResourceModel(this.specifiedAccess));
-	}
-	
-	@Override
-	protected void initializeAccess() {
-		super.initializeAccess();
-		this.specifiedAccess = this.getResourceAccess();
-	}
-	
-	@Override
-	public void updateAccess() {
-		super.updateAccess();
-		this.setSpecifiedAccess_(this.getResourceAccess());
-	}
-
-	protected AccessType getResourceAccess() {
-		return AccessType.fromJavaResourceModel(this.getAccessAnnotation().getValue());
-	}
-
-}
diff --git a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/context/java/EclipseLinkJavaBasicMappingImpl.java b/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/context/java/EclipseLinkJavaBasicMappingImpl.java
deleted file mode 100644
index 47a6b5b..0000000
--- a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/context/java/EclipseLinkJavaBasicMappingImpl.java
+++ /dev/null
@@ -1,105 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008, 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.eclipselink.core.internal.context.java;
-
-import java.util.Iterator;
-import java.util.List;
-import org.eclipse.jdt.core.dom.CompilationUnit;
-import org.eclipse.jpt.core.context.java.JavaConverter;
-import org.eclipse.jpt.core.context.java.JavaPersistentAttribute;
-import org.eclipse.jpt.core.internal.context.java.AbstractJavaBasicMapping;
-import org.eclipse.jpt.eclipselink.core.context.Convert;
-import org.eclipse.jpt.eclipselink.core.context.EclipseLinkBasicMapping;
-import org.eclipse.jpt.eclipselink.core.context.Mutable;
-import org.eclipse.jpt.eclipselink.core.resource.java.ConvertAnnotation;
-import org.eclipse.jpt.utility.Filter;
-import org.eclipse.wst.validation.internal.provisional.core.IMessage;
-import org.eclipse.wst.validation.internal.provisional.core.IReporter;
-
-public class EclipseLinkJavaBasicMappingImpl
-	extends AbstractJavaBasicMapping 
-	implements EclipseLinkBasicMapping
-{
-	
-	protected final EclipseLinkJavaMutable mutable;
-	
-	public EclipseLinkJavaBasicMappingImpl(JavaPersistentAttribute parent) {
-		super(parent);
-		this.mutable = new EclipseLinkJavaMutable(this);
-	}
-
-	@Override
-	protected JavaConverter buildSpecifiedConverter(String converterType) {
-		JavaConverter javaConverter = super.buildSpecifiedConverter(converterType);
-		if (javaConverter != null) {
-			return javaConverter;
-		}
-		if (converterType == Convert.ECLIPSE_LINK_CONVERTER) {
-			return new EclipseLinkJavaConvert(this, this.resourcePersistentAttribute);
-		}
-		return null;
-	}
-	
-	@Override
-	protected String getResourceConverterType() {
-		//check @Convert first, this is the order that EclipseLink searches
-		if (this.resourcePersistentAttribute.getSupportingAnnotation(ConvertAnnotation.ANNOTATION_NAME) != null) {
-			return Convert.ECLIPSE_LINK_CONVERTER;
-		}
-		return super.getResourceConverterType();
-	}
-	
-	//************ EclipselinkJavaBasicMapping implementation ****************
-	
-	public Mutable getMutable() {
-		return this.mutable;
-	}
-
-	
-	//************ initialization/update ****************
-
-	@Override
-	protected void initialize() {
-		super.initialize();
-		this.mutable.initialize(this.resourcePersistentAttribute);
-	}
-	
-	@Override
-	protected void update() {
-		super.update();
-		this.mutable.update(this.resourcePersistentAttribute);
-	}
-
-	// ********** code assist **********
-
-	@Override
-	public Iterator<String> javaCompletionProposals(int pos, Filter<String> filter, CompilationUnit astRoot) {
-		Iterator<String> result = super.javaCompletionProposals(pos, filter, astRoot);
-		if (result != null) {
-			return result;
-		}
-		if (getConverter() != null) {
-			result = getConverter().javaCompletionProposals(pos, filter, astRoot);
-			if (result != null) {
-				return result;
-			}
-		}
-		return null;
-	}
-
-	
-	//************ validation ****************
-	
-	@Override
-	public void validate(List<IMessage> messages, IReporter reporter, CompilationUnit astRoot) {
-		super.validate(messages, reporter, astRoot);
-		this.mutable.validate(messages, reporter, astRoot);
-	}
-}
diff --git a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/context/java/EclipseLinkJavaCaching.java b/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/context/java/EclipseLinkJavaCaching.java
deleted file mode 100644
index c342792..0000000
--- a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/context/java/EclipseLinkJavaCaching.java
+++ /dev/null
@@ -1,558 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008, 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.eclipselink.core.internal.context.java;
-
-import java.util.List;
-import org.eclipse.jdt.core.dom.CompilationUnit;
-import org.eclipse.jpt.core.context.java.JavaTypeMapping;
-import org.eclipse.jpt.core.internal.context.java.AbstractJavaJpaContextNode;
-import org.eclipse.jpt.core.resource.java.JavaResourcePersistentType;
-import org.eclipse.jpt.core.utility.TextRange;
-import org.eclipse.jpt.eclipselink.core.context.CacheCoordinationType;
-import org.eclipse.jpt.eclipselink.core.context.CacheType;
-import org.eclipse.jpt.eclipselink.core.context.Caching;
-import org.eclipse.jpt.eclipselink.core.context.ExistenceType;
-import org.eclipse.jpt.eclipselink.core.context.ExpiryTimeOfDay;
-import org.eclipse.jpt.eclipselink.core.context.java.JavaCaching;
-import org.eclipse.jpt.eclipselink.core.internal.DefaultEclipseLinkJpaValidationMessages;
-import org.eclipse.jpt.eclipselink.core.internal.EclipseLinkJpaValidationMessages;
-import org.eclipse.jpt.eclipselink.core.resource.java.CacheAnnotation;
-import org.eclipse.jpt.eclipselink.core.resource.java.ExistenceCheckingAnnotation;
-import org.eclipse.jpt.eclipselink.core.resource.java.TimeOfDayAnnotation;
-import org.eclipse.wst.validation.internal.provisional.core.IMessage;
-import org.eclipse.wst.validation.internal.provisional.core.IReporter;
-
-public class EclipseLinkJavaCaching extends AbstractJavaJpaContextNode implements JavaCaching
-{
-	
-	protected CacheType specifiedType;
-	protected Integer specifiedSize;
-	protected Boolean specifiedShared;
-	protected Boolean specifiedAlwaysRefresh;
-	protected Boolean specifiedRefreshOnlyIfNewer;
-	protected Boolean specifiedDisableHits;
-	
-	protected boolean existenceChecking;
-	protected ExistenceType specifiedExistenceType;
-	protected ExistenceType defaultExistenceType;
-
-	protected CacheCoordinationType specifiedCoordinationType;
-	
-	protected Integer expiry;
-	protected EclipseLinkJavaExpiryTimeOfDay expiryTimeOfDay;
-	
-	
-	protected JavaResourcePersistentType resourcePersistentType;
-	
-	public EclipseLinkJavaCaching(JavaTypeMapping parent) {
-		super(parent);
-	}
-	
-	@Override
-	public JavaTypeMapping getParent() {
-		return (JavaTypeMapping) super.getParent();
-	}
-	
-
-	//query for the cache annotation every time on setters.
-	//call one setter and the CacheAnnotation could change. 
-	//You could call more than one setter before this object has received any notification
-	//from the java resource model
-	protected CacheAnnotation getCacheAnnotation() {
-		return (CacheAnnotation) this.resourcePersistentType.getNonNullSupportingAnnotation(getCacheAnnotationName());
-	}
-	
-	protected ExistenceCheckingAnnotation getExistenceCheckingAnnotation() {
-		return (ExistenceCheckingAnnotation) this.resourcePersistentType.getSupportingAnnotation(getExistenceCheckingAnnotationName());
-	}
-
-	protected String getCacheAnnotationName() {
-		return CacheAnnotation.ANNOTATION_NAME;
-	}
-	
-	protected String getExistenceCheckingAnnotationName() {
-		return ExistenceCheckingAnnotation.ANNOTATION_NAME;
-	}
-	
-	public CacheType getType() {
-		return (this.getSpecifiedType() == null) ? this.getDefaultType() : this.getSpecifiedType();
-	}
-
-	public CacheType getDefaultType() {
-		return DEFAULT_TYPE;
-	}
-		
-	public CacheType getSpecifiedType() {
-		return this.specifiedType;
-	}
-	
-	public void setSpecifiedType(CacheType newSpecifiedType) {
-		CacheType oldSpecifiedType = this.specifiedType;
-		this.specifiedType = newSpecifiedType;
-		this.getCacheAnnotation().setType(CacheType.toJavaResourceModel(newSpecifiedType));
-		firePropertyChanged(SPECIFIED_TYPE_PROPERTY, oldSpecifiedType, newSpecifiedType);
-	}
-	
-	/**
-	 * internal setter used only for updating from the resource model.
-	 * There were problems with InvalidThreadAccess exceptions in the UI
-	 * when you set a value from the UI and the annotation doesn't exist yet.
-	 * Adding the annotation causes an update to occur and then the exception.
-	 */
-	protected void setSpecifiedType_(CacheType newSpecifiedType) {
-		CacheType oldSpecifiedType = this.specifiedType;
-		this.specifiedType = newSpecifiedType;
-		firePropertyChanged(SPECIFIED_TYPE_PROPERTY, oldSpecifiedType, newSpecifiedType);
-	}
-
-	public int getSize() {
-		return (this.getSpecifiedSize() == null) ? getDefaultSize() : this.getSpecifiedSize().intValue();
-	}
-
-	public int getDefaultSize() {
-		return Caching.DEFAULT_SIZE;
-	}
-	
-	public Integer getSpecifiedSize() {
-		return this.specifiedSize;
-	}
-
-	public void setSpecifiedSize(Integer newSpecifiedSize) {
-		Integer oldSpecifiedSize = this.specifiedSize;
-		this.specifiedSize = newSpecifiedSize;
-		getCacheAnnotation().setSize(newSpecifiedSize);
-		firePropertyChanged(SPECIFIED_SIZE_PROPERTY, oldSpecifiedSize, newSpecifiedSize);
-	}
-	
-	protected void setSpecifiedSize_(Integer newSpecifiedSize) {
-		Integer oldSpecifiedSize = this.specifiedSize;
-		this.specifiedSize = newSpecifiedSize;
-		firePropertyChanged(SPECIFIED_SIZE_PROPERTY, oldSpecifiedSize, newSpecifiedSize);
-	}
-
-
-	public boolean isShared() {
-		return (this.specifiedShared == null) ? this.isDefaultShared() : this.specifiedShared.booleanValue();
-	}
-	
-	public boolean isDefaultShared() {
-		return Caching.DEFAULT_SHARED;
-	}
-	
-	public Boolean getSpecifiedShared() {
-		return this.specifiedShared;
-	}
-	
-	public void setSpecifiedShared(Boolean newSpecifiedShared) {
-		Boolean oldShared = this.specifiedShared;
-		this.specifiedShared = newSpecifiedShared;
-		this.getCacheAnnotation().setShared(newSpecifiedShared);
-		firePropertyChanged(Caching.SPECIFIED_SHARED_PROPERTY, oldShared, newSpecifiedShared);
-		
-		if (newSpecifiedShared == Boolean.FALSE) {
-			setSpecifiedType(null);
-			setSpecifiedSize(null);
-			setSpecifiedAlwaysRefresh(null);
-			setSpecifiedRefreshOnlyIfNewer(null);
-			setSpecifiedDisableHits(null);
-			setSpecifiedCoordinationType(null);
-			setExpiry(null);
-			if (this.expiryTimeOfDay != null) {
-				removeExpiryTimeOfDay();
-			}
-		}
-	}
-
-	protected void setSpecifiedShared_(Boolean newSpecifiedShared) {
-		Boolean oldSpecifiedShared = this.specifiedShared;
-		this.specifiedShared = newSpecifiedShared;
-		firePropertyChanged(Caching.SPECIFIED_SHARED_PROPERTY, oldSpecifiedShared, newSpecifiedShared);
-	}
-
-	public boolean isAlwaysRefresh() {
-		return (this.specifiedAlwaysRefresh == null) ? this.isDefaultAlwaysRefresh() : this.specifiedAlwaysRefresh.booleanValue();
-	}
-	
-	public boolean isDefaultAlwaysRefresh() {
-		return Caching.DEFAULT_ALWAYS_REFRESH;
-	}
-	
-	public Boolean getSpecifiedAlwaysRefresh() {
-		return this.specifiedAlwaysRefresh;
-	}
-	
-	public void setSpecifiedAlwaysRefresh(Boolean newSpecifiedAlwaysRefresh) {
-		Boolean oldAlwaysRefresh = this.specifiedAlwaysRefresh;
-		this.specifiedAlwaysRefresh = newSpecifiedAlwaysRefresh;
-		this.getCacheAnnotation().setAlwaysRefresh(newSpecifiedAlwaysRefresh);
-		firePropertyChanged(Caching.SPECIFIED_ALWAYS_REFRESH_PROPERTY, oldAlwaysRefresh, newSpecifiedAlwaysRefresh);
-	}
-
-	protected void setSpecifiedAlwaysRefresh_(Boolean newSpecifiedAlwaysRefresh) {
-		Boolean oldAlwaysRefresh = this.specifiedAlwaysRefresh;
-		this.specifiedAlwaysRefresh = newSpecifiedAlwaysRefresh;
-		firePropertyChanged(Caching.SPECIFIED_ALWAYS_REFRESH_PROPERTY, oldAlwaysRefresh, newSpecifiedAlwaysRefresh);
-	}
-
-	public boolean isRefreshOnlyIfNewer() {
-		return (this.specifiedRefreshOnlyIfNewer == null) ? this.isDefaultRefreshOnlyIfNewer() : this.specifiedRefreshOnlyIfNewer.booleanValue();
-	}
-	
-	public boolean isDefaultRefreshOnlyIfNewer() {
-		return Caching.DEFAULT_REFRESH_ONLY_IF_NEWER;
-	}
-	
-	public Boolean getSpecifiedRefreshOnlyIfNewer() {
-		return this.specifiedRefreshOnlyIfNewer;
-	}
-	
-	public void setSpecifiedRefreshOnlyIfNewer(Boolean newSpecifiedRefreshOnlyIfNewer) {
-		Boolean oldRefreshOnlyIfNewer = this.specifiedRefreshOnlyIfNewer;
-		this.specifiedRefreshOnlyIfNewer = newSpecifiedRefreshOnlyIfNewer;
-		this.getCacheAnnotation().setRefreshOnlyIfNewer(newSpecifiedRefreshOnlyIfNewer);
-		firePropertyChanged(Caching.SPECIFIED_REFRESH_ONLY_IF_NEWER_PROPERTY, oldRefreshOnlyIfNewer, newSpecifiedRefreshOnlyIfNewer);
-	}
-
-	protected void setSpecifiedRefreshOnlyIfNewer_(Boolean newSpecifiedRefreshOnlyIfNewer) {
-		Boolean oldRefreshOnlyIfNewer = this.specifiedRefreshOnlyIfNewer;
-		this.specifiedRefreshOnlyIfNewer = newSpecifiedRefreshOnlyIfNewer;
-		firePropertyChanged(Caching.SPECIFIED_REFRESH_ONLY_IF_NEWER_PROPERTY, oldRefreshOnlyIfNewer, newSpecifiedRefreshOnlyIfNewer);
-	}
-
-	public boolean isDisableHits() {
-		return (this.specifiedDisableHits == null) ? this.isDefaultDisableHits() : this.specifiedDisableHits.booleanValue();
-	}
-	
-	public boolean isDefaultDisableHits() {
-		return Caching.DEFAULT_DISABLE_HITS;
-	}
-	
-	public Boolean getSpecifiedDisableHits() {
-		return this.specifiedDisableHits;
-	}
-	
-	public void setSpecifiedDisableHits(Boolean newSpecifiedDisableHits) {
-		Boolean oldDisableHits = this.specifiedDisableHits;
-		this.specifiedDisableHits = newSpecifiedDisableHits;
-		this.getCacheAnnotation().setDisableHits(newSpecifiedDisableHits);
-		firePropertyChanged(Caching.SPECIFIED_DISABLE_HITS_PROPERTY, oldDisableHits, newSpecifiedDisableHits);
-	}
-
-	protected void setSpecifiedDisableHits_(Boolean newSpecifiedDisableHits) {
-		Boolean oldDisableHits = this.specifiedDisableHits;
-		this.specifiedDisableHits = newSpecifiedDisableHits;
-		firePropertyChanged(Caching.SPECIFIED_DISABLE_HITS_PROPERTY, oldDisableHits, newSpecifiedDisableHits);
-	}
-	
-	public CacheCoordinationType getCoordinationType() {
-		return (this.getSpecifiedCoordinationType() == null) ? this.getDefaultCoordinationType() : this.getSpecifiedCoordinationType();
-	}
-
-	public CacheCoordinationType getDefaultCoordinationType() {
-		return DEFAULT_COORDINATION_TYPE;
-	}
-		
-	public CacheCoordinationType getSpecifiedCoordinationType() {
-		return this.specifiedCoordinationType;
-	}
-	
-	public void setSpecifiedCoordinationType(CacheCoordinationType newSpecifiedCoordinationType) {
-		CacheCoordinationType oldSpecifiedCoordinationType = this.specifiedCoordinationType;
-		this.specifiedCoordinationType = newSpecifiedCoordinationType;
-		this.getCacheAnnotation().setCoordinationType(CacheCoordinationType.toJavaResourceModel(newSpecifiedCoordinationType));
-		firePropertyChanged(SPECIFIED_COORDINATION_TYPE_PROPERTY, oldSpecifiedCoordinationType, newSpecifiedCoordinationType);
-	}
-	
-	/**
-	 * internal setter used only for updating from the resource model.
-	 * There were problems with InvalidThreadAccess exceptions in the UI
-	 * when you set a value from the UI and the annotation doesn't exist yet.
-	 * Adding the annotation causes an update to occur and then the exception.
-	 */
-	protected void setSpecifiedCoordinationType_(CacheCoordinationType newSpecifiedCoordinationType) {
-		CacheCoordinationType oldSpecifiedCoordinationType = this.specifiedCoordinationType;
-		this.specifiedCoordinationType = newSpecifiedCoordinationType;
-		firePropertyChanged(SPECIFIED_COORDINATION_TYPE_PROPERTY, oldSpecifiedCoordinationType, newSpecifiedCoordinationType);
-	}
-	
-	public boolean hasExistenceChecking() {
-		return this.existenceChecking;
-	}
-	
-	public void setExistenceChecking(boolean newExistenceChecking) {
-		boolean oldExistenceChecking = this.existenceChecking;
-		this.existenceChecking = newExistenceChecking;
-		if (newExistenceChecking) {
-			this.resourcePersistentType.addSupportingAnnotation(getExistenceCheckingAnnotationName());
-		}
-		else {
-			this.resourcePersistentType.removeSupportingAnnotation(getExistenceCheckingAnnotationName());
-		}
-		firePropertyChanged(EXISTENCE_CHECKING_PROPERTY, oldExistenceChecking, newExistenceChecking);
-		setDefaultExistenceType(caclulateDefaultExistenceType());
-	}
-	
-	protected void setExistenceChecking_(boolean newExistenceChecking) {
-		boolean oldExistenceChecking = this.existenceChecking;
-		this.existenceChecking = newExistenceChecking;
-		firePropertyChanged(EXISTENCE_CHECKING_PROPERTY, oldExistenceChecking, newExistenceChecking);
-	}
-	
-	protected ExistenceType caclulateDefaultExistenceType() {
-		if (hasExistenceChecking()) {
-			return ExistenceType.CHECK_CACHE;
-		}
-		return DEFAULT_EXISTENCE_TYPE;
-	}
-	
-	public ExistenceType getExistenceType() {
-		return (this.getSpecifiedExistenceType() == null) ? this.getDefaultExistenceType() : this.getSpecifiedExistenceType();
-	}
-
-	public ExistenceType getDefaultExistenceType() {
-		return this.defaultExistenceType;
-	}
-	
-	protected void setDefaultExistenceType(ExistenceType newDefaultExistenceType) {
-		ExistenceType oldDefaultExistenceType = this.defaultExistenceType;
-		this.defaultExistenceType = newDefaultExistenceType;
-		firePropertyChanged(DEFAULT_EXISTENCE_TYPE_PROPERTY, oldDefaultExistenceType, newDefaultExistenceType);
-	}
-	
-	public ExistenceType getSpecifiedExistenceType() {
-		return this.specifiedExistenceType;
-	}
-	
-	public void setSpecifiedExistenceType(ExistenceType newSpecifiedExistenceType) {
-		if (!hasExistenceChecking()) {
-			if (newSpecifiedExistenceType != null) {
-				setExistenceChecking(true);
-			}
-			else {
-				return;
-			}
-		}
-		ExistenceType oldSpecifiedExistenceType = this.specifiedExistenceType;
-		this.specifiedExistenceType = newSpecifiedExistenceType;
-		this.getExistenceCheckingAnnotation().setValue(ExistenceType.toJavaResourceModel(newSpecifiedExistenceType));
-		firePropertyChanged(SPECIFIED_EXISTENCE_TYPE_PROPERTY, oldSpecifiedExistenceType, newSpecifiedExistenceType);
-	}
-	
-	/**
-	 * internal setter used only for updating from the resource model.
-	 * There were problems with InvalidThreadAccess exceptions in the UI
-	 * when you set a value from the UI and the annotation doesn't exist yet.
-	 * Adding the annotation causes an update to occur and then the exception.
-	 */
-	protected void setSpecifiedExistenceType_(ExistenceType newSpecifiedExistenceType) {
-		ExistenceType oldSpecifiedExistenceType = this.specifiedExistenceType;
-		this.specifiedExistenceType = newSpecifiedExistenceType;
-		firePropertyChanged(SPECIFIED_EXISTENCE_TYPE_PROPERTY, oldSpecifiedExistenceType, newSpecifiedExistenceType);
-	}
-
-	public Integer getExpiry() {
-		return this.expiry;
-	}
-	
-	public void setExpiry(Integer newExpiry) {
-		Integer oldExpiry = this.expiry;
-		this.expiry = newExpiry;
-		getCacheAnnotation().setExpiry(newExpiry);
-		firePropertyChanged(EXPIRY_PROPERTY, oldExpiry, newExpiry);
-		if (newExpiry != null && this.expiryTimeOfDay != null) {
-			removeExpiryTimeOfDay();
-		}
-	}
-	
-	protected void setExpiry_(Integer newExpiry) {
-		Integer oldExpiry = this.expiry;
-		this.expiry = newExpiry;
-		firePropertyChanged(EXPIRY_PROPERTY, oldExpiry, newExpiry);
-	}
-	
-	public ExpiryTimeOfDay getExpiryTimeOfDay() {
-		return this.expiryTimeOfDay;
-	}
-	
-	public ExpiryTimeOfDay addExpiryTimeOfDay() {
-		if (this.expiryTimeOfDay != null) {
-			throw new IllegalStateException("expiryTimeOfDay already exists, use getExpiryTimeOfDay()"); //$NON-NLS-1$
-		}
-		if (this.resourcePersistentType.getSupportingAnnotation(getCacheAnnotationName()) == null) {
-			this.resourcePersistentType.addSupportingAnnotation(getCacheAnnotationName());
-		}
-		EclipseLinkJavaExpiryTimeOfDay newExpiryTimeOfDay = new EclipseLinkJavaExpiryTimeOfDay(this);
-		this.expiryTimeOfDay = newExpiryTimeOfDay;
-		TimeOfDayAnnotation timeOfDayAnnotation = getCacheAnnotation().addExpiryTimeOfDay();
-		newExpiryTimeOfDay.initialize(timeOfDayAnnotation);
-		firePropertyChanged(EXPIRY_TIME_OF_DAY_PROPERTY, null, newExpiryTimeOfDay);
-		setExpiry(null);
-		return newExpiryTimeOfDay;
-	}
-	
-	public void removeExpiryTimeOfDay() {
-		if (this.expiryTimeOfDay == null) {
-			throw new IllegalStateException("timeOfDayExpiry does not exist"); //$NON-NLS-1$
-		}
-		ExpiryTimeOfDay oldExpiryTimeOfDay = this.expiryTimeOfDay;
-		this.expiryTimeOfDay = null;
-		getCacheAnnotation().removeExpiryTimeOfDay();
-		firePropertyChanged(EXPIRY_TIME_OF_DAY_PROPERTY, oldExpiryTimeOfDay, null);
-	}
-	
-	protected void setExpiryTimeOfDay(EclipseLinkJavaExpiryTimeOfDay newExpiryTimeOfDay) {
-		EclipseLinkJavaExpiryTimeOfDay oldExpiryTimeOfDay = this.expiryTimeOfDay;
-		this.expiryTimeOfDay = newExpiryTimeOfDay;
-		firePropertyChanged(EXPIRY_TIME_OF_DAY_PROPERTY, oldExpiryTimeOfDay, newExpiryTimeOfDay);
-	}
-	
-	public void initialize(JavaResourcePersistentType resourcePersistentType) {
-		this.resourcePersistentType = resourcePersistentType;
-		initialize(getCacheAnnotation());
-		initialize(getExistenceCheckingAnnotation());
-	}
-
-	protected void initialize(CacheAnnotation cache) {
-		this.specifiedType = this.specifiedType(cache);
-		this.specifiedSize = this.specifiedSize(cache);
-		this.specifiedShared = this.specifiedShared(cache);
-		this.specifiedAlwaysRefresh = this.specifiedAlwaysRefresh(cache);
-		this.specifiedRefreshOnlyIfNewer = this.specifiedRefreshOnlyIfNewer(cache);
-		this.specifiedDisableHits = this.specifiedDisableHits(cache);
-		this.specifiedCoordinationType = this.specifiedCoordinationType(cache);
-		this.initializeExpiry(cache);
-	}
-	
-	protected void initialize(ExistenceCheckingAnnotation existenceChecking) {
-		this.existenceChecking = existenceChecking != null;
-		this.specifiedExistenceType = specifiedExistenceType(existenceChecking);
-		this.defaultExistenceType = this.caclulateDefaultExistenceType();
-	}
-
-	protected void initializeExpiry(CacheAnnotation cache) {
-		if (cache.getExpiryTimeOfDay() == null) {
-			this.expiry = cache.getExpiry();
-		}
-		else {
-			if (cache.getExpiry() == null) { //handle with validation if both expiry and expiryTimeOfDay are set
-				this.expiryTimeOfDay = new EclipseLinkJavaExpiryTimeOfDay(this);
-				this.expiryTimeOfDay.initialize(cache.getExpiryTimeOfDay());
-			}
-		}
-	}
-	
-	public void update(JavaResourcePersistentType resourcePersistentType) {
-		this.resourcePersistentType = resourcePersistentType;
-		update(getCacheAnnotation());
-		update(getExistenceCheckingAnnotation());
-		updateExpiry(getCacheAnnotation());
-	}
-	
-	protected void update(CacheAnnotation cache) {
-		setSpecifiedType_(this.specifiedType(cache));
-		setSpecifiedSize_(this.specifiedSize(cache));
-		setSpecifiedShared_(this.specifiedShared(cache));
-		setSpecifiedAlwaysRefresh_(this.specifiedAlwaysRefresh(cache));
-		setSpecifiedRefreshOnlyIfNewer_(this.specifiedRefreshOnlyIfNewer(cache));
-		setSpecifiedDisableHits_(this.specifiedDisableHits(cache));
-		setSpecifiedCoordinationType_(this.specifiedCoordinationType(cache));
-	}
-
-	protected void update(ExistenceCheckingAnnotation existenceChecking) {
-		setExistenceChecking_(existenceChecking != null);
-		setSpecifiedExistenceType_(specifiedExistenceType(existenceChecking));
-		setDefaultExistenceType(caclulateDefaultExistenceType());
-	}
-	
-	protected void updateExpiry(CacheAnnotation cache) {
-		if (cache.getExpiryTimeOfDay() == null) {
-			setExpiryTimeOfDay(null);
-			setExpiry_(cache.getExpiry());
-		}
-		else {
-			if (this.expiryTimeOfDay != null) {
-				this.expiryTimeOfDay.update(cache.getExpiryTimeOfDay());
-			}
-			else if (cache.getExpiry() == null){
-				setExpiryTimeOfDay(new EclipseLinkJavaExpiryTimeOfDay(this));
-				this.expiryTimeOfDay.initialize(cache.getExpiryTimeOfDay());
-			}
-			else { //handle with validation if both expiry and expiryTimeOfDay are set
-				setExpiryTimeOfDay(null);
-			}
-		}
-	}
-
-	protected CacheType specifiedType(CacheAnnotation cache) {
-		return CacheType.fromJavaResourceModel(cache.getType());
-	}
-
-	protected Integer specifiedSize(CacheAnnotation cache) {
-		return cache.getSize();
-	}
-	
-	protected Boolean specifiedShared(CacheAnnotation cache) {
-		return cache.getShared();
-	}	
-	
-	protected Boolean specifiedAlwaysRefresh(CacheAnnotation cache) {
-		return cache.getAlwaysRefresh();
-	}	
-	
-	protected Boolean specifiedRefreshOnlyIfNewer(CacheAnnotation cache) {
-		return cache.getRefreshOnlyIfNewer();
-	}	
-	
-	protected Boolean specifiedDisableHits(CacheAnnotation cache) {
-		return cache.getDisableHits();
-	}
-	
-	protected CacheCoordinationType specifiedCoordinationType(CacheAnnotation cache) {
-		return CacheCoordinationType.fromJavaResourceModel(cache.getCoordinationType());
-	}
-	
-	protected Integer expiry(CacheAnnotation cache) {
-		return cache.getExpiry();
-	}
-	
-	protected ExistenceType specifiedExistenceType(ExistenceCheckingAnnotation existenceChecking) {
-		if (existenceChecking == null) {
-			return null;
-		}
-		return ExistenceType.fromJavaResourceModel(existenceChecking.getValue());
-	}
-
-
-	public TextRange getValidationTextRange(CompilationUnit astRoot) {
-		TextRange textRange = getCacheAnnotation().getTextRange(astRoot);
-		return (textRange != null) ? textRange : this.getParent().getValidationTextRange(astRoot);
-	}
-
-	@Override
-	public void validate(List<IMessage> messages, IReporter reporter, CompilationUnit astRoot) {
-		super.validate(messages, reporter, astRoot);
-		this.validateExpiry(messages, astRoot);
-	}
-
-	protected void validateExpiry(List<IMessage> messages, CompilationUnit astRoot) {
-		CacheAnnotation cache = getCacheAnnotation();
-		if (cache.getExpiry() != null && cache.getExpiryTimeOfDay() != null) {
-			messages.add(
-				DefaultEclipseLinkJpaValidationMessages.buildMessage(
-					IMessage.HIGH_SEVERITY,
-					EclipseLinkJpaValidationMessages.CACHE_EXPIRY_AND_EXPIRY_TIME_OF_DAY_BOTH_SPECIFIED,
-					new String[] {this.getParent().getPersistentType().getName()},
-					this, 
-					getValidationTextRange(astRoot)
-				)
-			);
-		}
-	}
-}
diff --git a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/context/java/EclipseLinkJavaChangeTracking.java b/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/context/java/EclipseLinkJavaChangeTracking.java
deleted file mode 100644
index 429c328..0000000
--- a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/context/java/EclipseLinkJavaChangeTracking.java
+++ /dev/null
@@ -1,134 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.eclipselink.core.internal.context.java;
-
-import org.eclipse.jdt.core.dom.CompilationUnit;
-import org.eclipse.jpt.core.context.java.JavaTypeMapping;
-import org.eclipse.jpt.core.internal.context.java.AbstractJavaJpaContextNode;
-import org.eclipse.jpt.core.resource.java.JavaResourcePersistentType;
-import org.eclipse.jpt.core.utility.TextRange;
-import org.eclipse.jpt.eclipselink.core.context.ChangeTracking;
-import org.eclipse.jpt.eclipselink.core.context.ChangeTrackingType;
-import org.eclipse.jpt.eclipselink.core.internal.EclipseLinkJpaFactory;
-import org.eclipse.jpt.eclipselink.core.resource.java.ChangeTrackingAnnotation;
-
-public class EclipseLinkJavaChangeTracking extends AbstractJavaJpaContextNode implements ChangeTracking
-{
-	protected JavaResourcePersistentType resourcePersistentType;
-	
-	protected ChangeTrackingType specifiedType;
-	
-	
-	public EclipseLinkJavaChangeTracking(JavaTypeMapping parent) {
-		super(parent);
-	}
-	
-	@Override
-	public JavaTypeMapping getParent() {
-		return (JavaTypeMapping) super.getParent();
-	}
-	
-	@Override
-	protected EclipseLinkJpaFactory getJpaFactory() {
-		return (EclipseLinkJpaFactory) super.getJpaFactory();
-	}
-	
-	protected String getChangeTrackingAnnotationName() {
-		return ChangeTrackingAnnotation.ANNOTATION_NAME;
-	}
-	
-	protected ChangeTrackingAnnotation getChangeTrackingAnnotation() {
-		return (ChangeTrackingAnnotation) this.resourcePersistentType.getSupportingAnnotation(getChangeTrackingAnnotationName());
-	}
-	
-	protected void addChangeTrackingAnnotation() {
-		this.resourcePersistentType.addSupportingAnnotation(getChangeTrackingAnnotationName());
-	}
-	
-	protected void removeChangeTrackingAnnotation() {
-		this.resourcePersistentType.removeSupportingAnnotation(getChangeTrackingAnnotationName());
-	}
-	
-	public ChangeTrackingType getType() {
-		return (this.getSpecifiedType() != null) ? this.getSpecifiedType() : this.getDefaultType();
-	}
-	
-	public ChangeTrackingType getDefaultType() {
-		return DEFAULT_TYPE;
-	}
-	
-	public ChangeTrackingType getSpecifiedType() {
-		return this.specifiedType;
-	}
-	
-	public void setSpecifiedType(ChangeTrackingType newSpecifiedType) {
-		if (this.specifiedType == newSpecifiedType) {
-			return;
-		}
-		
-		ChangeTrackingType oldSpecifiedType = this.specifiedType;
-		this.specifiedType = newSpecifiedType;
-		
-		if (newSpecifiedType != null) {
-			if (getChangeTrackingAnnotation() == null) {
-				addChangeTrackingAnnotation();
-			}
-			getChangeTrackingAnnotation().setValue(ChangeTrackingType.toJavaResourceModel(newSpecifiedType));
-		}
-		else {
-			if (getChangeTrackingAnnotation() != null) {
-				removeChangeTrackingAnnotation();
-			}
-		}
-		firePropertyChanged(SPECIFIED_TYPE_PROPERTY, oldSpecifiedType, newSpecifiedType);
-	}
-	
-	/**
-	 * internal setter used only for updating from the resource model.
-	 * There were problems with InvalidThreadAccess exceptions in the UI
-	 * when you set a value from the UI and the annotation doesn't exist yet.
-	 * Adding the annotation causes an update to occur and then the exception.
-	 */
-	protected void setSpecifiedType_(ChangeTrackingType newSpecifiedType) {
-		ChangeTrackingType oldSpecifiedType = this.specifiedType;
-		this.specifiedType = newSpecifiedType;
-		firePropertyChanged(SPECIFIED_TYPE_PROPERTY, oldSpecifiedType, newSpecifiedType);
-	}
-	
-	public void initialize(JavaResourcePersistentType resourcePersistentType) {
-		this.resourcePersistentType = resourcePersistentType;
-		ChangeTrackingAnnotation changeTrackingAnnotation = this.getChangeTrackingAnnotation();
-		this.specifiedType = changeTrackingType(changeTrackingAnnotation);
-	}
-	
-	public void update(JavaResourcePersistentType resourcePersistentType) {
-		this.resourcePersistentType = resourcePersistentType;
-		ChangeTrackingAnnotation changeTrackingAnnotation = this.getChangeTrackingAnnotation();
-		this.setSpecifiedType_(changeTrackingType(changeTrackingAnnotation));
-	}
-	
-	protected ChangeTrackingType changeTrackingType(ChangeTrackingAnnotation changeTracking) {
-		if (changeTracking == null) {
-			return null;
-		}
-		else if (changeTracking.getValue() == null) {
-			return ChangeTracking.DEFAULT_TYPE;
-		}
-		else {
-			return ChangeTrackingType.fromJavaResourceModel(changeTracking.getValue());
-		}
-	}
-	
-	public TextRange getValidationTextRange(CompilationUnit astRoot) {
-		ChangeTrackingAnnotation changeTrackingAnnotation = getChangeTrackingAnnotation();
-		TextRange textRange = changeTrackingAnnotation == null ? null : changeTrackingAnnotation.getTextRange(astRoot);
-		return (textRange != null) ? textRange : this.getParent().getValidationTextRange(astRoot);
-	}
-}
\ No newline at end of file
diff --git a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/context/java/EclipseLinkJavaConversionValue.java b/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/context/java/EclipseLinkJavaConversionValue.java
deleted file mode 100644
index c44c370..0000000
--- a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/context/java/EclipseLinkJavaConversionValue.java
+++ /dev/null
@@ -1,132 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008, 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.eclipselink.core.internal.context.java;
-
-import java.util.List;
-import org.eclipse.jdt.core.dom.CompilationUnit;
-import org.eclipse.jpt.core.internal.context.java.AbstractJavaJpaContextNode;
-import org.eclipse.jpt.core.utility.TextRange;
-import org.eclipse.jpt.eclipselink.core.context.ConversionValue;
-import org.eclipse.jpt.eclipselink.core.internal.DefaultEclipseLinkJpaValidationMessages;
-import org.eclipse.jpt.eclipselink.core.internal.EclipseLinkJpaValidationMessages;
-import org.eclipse.jpt.eclipselink.core.resource.java.ConversionValueAnnotation;
-import org.eclipse.jpt.utility.internal.CollectionTools;
-import org.eclipse.wst.validation.internal.provisional.core.IMessage;
-import org.eclipse.wst.validation.internal.provisional.core.IReporter;
-
-public class EclipseLinkJavaConversionValue extends AbstractJavaJpaContextNode implements ConversionValue
-{	
-	private ConversionValueAnnotation resourceConversionValue;
-	
-	private String dataValue;
-	
-	private String objectValue;
-	
-	public EclipseLinkJavaConversionValue(EclipseLinkJavaObjectTypeConverter parent) {
-		super(parent);
-	}
-	
-	@Override
-	public EclipseLinkJavaObjectTypeConverter getParent() {
-		return (EclipseLinkJavaObjectTypeConverter) super.getParent();
-	}
-
-	protected String getAnnotationName() {
-		return ConversionValueAnnotation.ANNOTATION_NAME;
-	}		
-
-	public TextRange getValidationTextRange(CompilationUnit astRoot) {
-		return this.resourceConversionValue.getTextRange(astRoot);
-	}
-	
-	public String getDataValue() {
-		return this.dataValue;
-	}
-
-	public void setDataValue(String newDataValue) {
-		String oldDataValue = this.dataValue;
-		this.dataValue = newDataValue;
-		this.resourceConversionValue.setDataValue(newDataValue);
-		firePropertyChanged(DATA_VALUE_PROPERTY, oldDataValue, newDataValue);
-	}
-	
-	protected void setDataValue_(String newDataValue) {
-		String oldDataValue = this.dataValue;
-		this.dataValue = newDataValue;
-		firePropertyChanged(DATA_VALUE_PROPERTY, oldDataValue, newDataValue);
-	}
-	
-	public String getObjectValue() {
-		return this.objectValue;
-	}
-
-	public void setObjectValue(String newObjectValue) {
-		String oldObjectValue = this.objectValue;
-		this.objectValue = newObjectValue;
-		this.resourceConversionValue.setObjectValue(newObjectValue);
-		firePropertyChanged(OBJECT_VALUE_PROPERTY, oldObjectValue, newObjectValue);
-	}
-	
-	protected void setObjectValue_(String newObjectValue) {
-		String oldObjectValue = this.objectValue;
-		this.objectValue = newObjectValue;
-		firePropertyChanged(OBJECT_VALUE_PROPERTY, oldObjectValue, newObjectValue);
-	}
-
-	public void initialize(ConversionValueAnnotation resourceConversionValue) {
-		this.resourceConversionValue = resourceConversionValue;
-		this.dataValue = this.dataValue();
-		this.objectValue = this.objectValue();
-	}
-	
-	public void update(ConversionValueAnnotation resourceConversionValue) {
-		this.resourceConversionValue = resourceConversionValue;
-		this.setDataValue_(this.dataValue());
-		this.setObjectValue_(this.objectValue());
-	}
-
-	protected String dataValue() {
-		return this.resourceConversionValue.getDataValue();
-	}
-
-	protected String objectValue() {
-		return this.resourceConversionValue.getObjectValue();
-	}
-
-	public TextRange getDataValueTextRange(CompilationUnit astRoot) {
-		return this.resourceConversionValue.getDataValueTextRange(astRoot);
-	}
-
-	public TextRange getObjectValueTextRange(CompilationUnit astRoot) {
-		return this.resourceConversionValue.getObjectValueTextRange(astRoot);
-	}
-	
-	@Override
-	public void validate(List<IMessage> messages, IReporter reporter, CompilationUnit astRoot) {
-		super.validate(messages, reporter, astRoot);
-		validateDataValuesUnique(messages, astRoot);
-	}
-	
-	protected void validateDataValuesUnique(List<IMessage> messages, CompilationUnit astRoot) {
-		List<String> dataValues = CollectionTools.list(getParent().dataValues());
-		dataValues.remove(this.dataValue);
-		if (dataValues.contains(this.dataValue)) {
-			messages.add(
-				DefaultEclipseLinkJpaValidationMessages.buildMessage(
-					IMessage.HIGH_SEVERITY,
-					EclipseLinkJpaValidationMessages.MULTIPLE_OBJECT_VALUES_FOR_DATA_VALUE,
-					new String[] {this.dataValue}, 
-					this,
-					this.getDataValueTextRange(astRoot)
-				)
-			);
-		}
-	}
-}
diff --git a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/context/java/EclipseLinkJavaConvert.java b/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/context/java/EclipseLinkJavaConvert.java
deleted file mode 100644
index 306dc3b..0000000
--- a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/context/java/EclipseLinkJavaConvert.java
+++ /dev/null
@@ -1,276 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008, 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.eclipselink.core.internal.context.java;
-
-import java.util.Iterator;
-import java.util.List;
-import org.eclipse.jdt.core.dom.CompilationUnit;
-import org.eclipse.jpt.core.context.java.JavaAttributeMapping;
-import org.eclipse.jpt.core.context.java.JavaConverter;
-import org.eclipse.jpt.core.internal.context.java.AbstractJavaJpaContextNode;
-import org.eclipse.jpt.core.resource.java.JavaResourcePersistentAttribute;
-import org.eclipse.jpt.core.utility.TextRange;
-import org.eclipse.jpt.eclipselink.core.context.Convert;
-import org.eclipse.jpt.eclipselink.core.context.EclipseLinkConverter;
-import org.eclipse.jpt.eclipselink.core.internal.context.persistence.EclipseLinkPersistenceUnit;
-import org.eclipse.jpt.eclipselink.core.resource.java.ConvertAnnotation;
-import org.eclipse.jpt.eclipselink.core.resource.java.ConverterAnnotation;
-import org.eclipse.jpt.eclipselink.core.resource.java.ObjectTypeConverterAnnotation;
-import org.eclipse.jpt.eclipselink.core.resource.java.StructConverterAnnotation;
-import org.eclipse.jpt.eclipselink.core.resource.java.TypeConverterAnnotation;
-import org.eclipse.jpt.utility.Filter;
-import org.eclipse.jpt.utility.internal.CollectionTools;
-import org.eclipse.jpt.utility.internal.StringTools;
-import org.eclipse.jpt.utility.internal.iterators.EmptyIterator;
-import org.eclipse.jpt.utility.internal.iterators.FilteringIterator;
-import org.eclipse.wst.validation.internal.provisional.core.IMessage;
-import org.eclipse.wst.validation.internal.provisional.core.IReporter;
-
-public class EclipseLinkJavaConvert extends AbstractJavaJpaContextNode implements Convert, JavaConverter
-{
-	private String specifiedConverterName;
-	
-	private JavaResourcePersistentAttribute resourcePersistentAttribute;
-	
-	private EclipseLinkJavaConverter converter;
-	
-	public EclipseLinkJavaConvert(JavaAttributeMapping parent, JavaResourcePersistentAttribute jrpa) {
-		super(parent);
-		this.initialize(jrpa);
-	}
-
-	@Override
-	public JavaAttributeMapping getParent() {
-		return (JavaAttributeMapping) super.getParent();
-	}
-
-	public String getType() {
-		return Convert.ECLIPSE_LINK_CONVERTER;
-	}
-
-	protected String getAnnotationName() {
-		return ConvertAnnotation.ANNOTATION_NAME;
-	}
-		
-	public void addToResourceModel() {
-		this.resourcePersistentAttribute.addSupportingAnnotation(getAnnotationName());
-	}
-	
-	public void removeFromResourceModel() {
-		this.resourcePersistentAttribute.removeSupportingAnnotation(getAnnotationName());
-		if (getConverter() != null) {
-			this.resourcePersistentAttribute.removeSupportingAnnotation(getConverter().getAnnotationName());
-		}
-	}
-
-	public TextRange getValidationTextRange(CompilationUnit astRoot) {
-		return getResourceConvert().getTextRange(astRoot);
-	}
-
-	protected ConvertAnnotation getResourceConvert() {
-		return (ConvertAnnotation) this.resourcePersistentAttribute.getSupportingAnnotation(getAnnotationName());
-	}
-	
-	public String getConverterName() {
-		return getSpecifiedConverterName() == null ? getDefaultConverterName() : getSpecifiedConverterName();
-	}
-
-	public String getDefaultConverterName() {
-		return DEFAULT_CONVERTER_NAME;
-	}
-
-	public String getSpecifiedConverterName() {
-		return this.specifiedConverterName;
-	}
-
-	public void setSpecifiedConverterName(String newSpecifiedConverterName) {
-		String oldSpecifiedConverterName = this.specifiedConverterName;
-		this.specifiedConverterName = newSpecifiedConverterName;
-		getResourceConvert().setValue(newSpecifiedConverterName);
-		firePropertyChanged(SPECIFIED_CONVERTER_NAME_PROPERTY, oldSpecifiedConverterName, newSpecifiedConverterName);
-	}
-	
-	protected void setSpecifiedConverterName_(String newSpecifiedConverterName) {
-		String oldSpecifiedConverterName = this.specifiedConverterName;
-		this.specifiedConverterName = newSpecifiedConverterName;
-		firePropertyChanged(SPECIFIED_CONVERTER_NAME_PROPERTY, oldSpecifiedConverterName, newSpecifiedConverterName);
-	}
-
-	public EclipseLinkJavaConverter getConverter() {
-		return this.converter;
-	}
-	
-	protected String getConverterType() {
-		if (this.converter == null) {
-			return EclipseLinkConverter.NO_CONVERTER;
-		}
-		return this.converter.getType();
-	}
-
-	public void setConverter(String converterType) {
-		if (getConverterType() == converterType) {
-			return;
-		}
-		EclipseLinkJavaConverter oldConverter = this.converter;
-		EclipseLinkJavaConverter newConverter = buildConverter(converterType);
-		this.converter = null;
-		if (oldConverter != null) {
-			this.resourcePersistentAttribute.removeSupportingAnnotation(oldConverter.getAnnotationName());
-		}
-		this.converter = newConverter;
-		if (newConverter != null) {
-			this.resourcePersistentAttribute.addSupportingAnnotation(newConverter.getAnnotationName());
-		}
-		firePropertyChanged(CONVERTER_PROPERTY, oldConverter, newConverter);
-	}
-	
-	protected void setConverter(EclipseLinkJavaConverter newConverter) {
-		EclipseLinkJavaConverter oldConverter = this.converter;
-		this.converter = newConverter;
-		firePropertyChanged(CONVERTER_PROPERTY, oldConverter, newConverter);
-	}
-	
-	protected void initialize(JavaResourcePersistentAttribute jrpa) {
-		this.resourcePersistentAttribute = jrpa;
-		this.specifiedConverterName = this.getResourceConverterName();
-		this.converter = this.buildConverter(this.getResourceConverterType());
-	}
-	
-	public void update(JavaResourcePersistentAttribute jrpa) {
-		this.resourcePersistentAttribute = jrpa;
-		this.setSpecifiedConverterName_(this.getResourceConverterName());
-		if (getResourceConverterType() == getConverterType()) {
-			getConverter().update(this.resourcePersistentAttribute);
-		}
-		else {
-			EclipseLinkJavaConverter javaConverter = buildConverter(getResourceConverterType());
-			setConverter(javaConverter);
-		}
-	}
-	
-	protected String getResourceConverterName() {
-		ConvertAnnotation resourceConvert = getResourceConvert();
-		return resourceConvert == null ? null : resourceConvert.getValue();
-	}
-
-	
-	protected EclipseLinkJavaConverter buildConverter(String converterType) {
-		if (converterType == EclipseLinkConverter.NO_CONVERTER) {
-			return null;
-		}
-		if (converterType == EclipseLinkConverter.CUSTOM_CONVERTER) {
-			return buildCustomConverter();
-		}
-		else if (converterType == EclipseLinkConverter.TYPE_CONVERTER) {
-			return buildTypeConverter();
-		}
-		else if (converterType == EclipseLinkConverter.OBJECT_TYPE_CONVERTER) {
-			return buildObjectTypeConverter();
-		}
-		else if (converterType == EclipseLinkConverter.STRUCT_CONVERTER) {
-			return buildStructConverter();
-		}
-		return null;
-	}
-	
-	protected EclipseLinkJavaCustomConverter buildCustomConverter() {
-		EclipseLinkJavaCustomConverter contextConverter = new EclipseLinkJavaCustomConverter(this);
-		contextConverter.initialize(this.resourcePersistentAttribute);
-		return contextConverter;
-	}
-
-	protected EclipseLinkJavaTypeConverter buildTypeConverter() {
-		EclipseLinkJavaTypeConverter contextConverter = new EclipseLinkJavaTypeConverter(this);
-		contextConverter.initialize(this.resourcePersistentAttribute);
-		return contextConverter;
-	}
-
-	protected EclipseLinkJavaObjectTypeConverter buildObjectTypeConverter() {
-		EclipseLinkJavaObjectTypeConverter contextConverter = new EclipseLinkJavaObjectTypeConverter(this);
-		contextConverter.initialize(this.resourcePersistentAttribute);
-		return contextConverter;
-	}
-
-	protected EclipseLinkJavaStructConverter buildStructConverter() {
-		EclipseLinkJavaStructConverter contextConverter = new EclipseLinkJavaStructConverter(this);
-		contextConverter.initialize(this.resourcePersistentAttribute);
-		return contextConverter;
-	}
-
-	protected String getResourceConverterType() {
-		if (this.resourcePersistentAttribute.getSupportingAnnotation(ConverterAnnotation.ANNOTATION_NAME) != null) {
-			return EclipseLinkConverter.CUSTOM_CONVERTER;
-		}
-		else if (this.resourcePersistentAttribute.getSupportingAnnotation(TypeConverterAnnotation.ANNOTATION_NAME) != null) {
-			return EclipseLinkConverter.TYPE_CONVERTER;
-		}
-		else if (this.resourcePersistentAttribute.getSupportingAnnotation(ObjectTypeConverterAnnotation.ANNOTATION_NAME) != null) {
-			return EclipseLinkConverter.OBJECT_TYPE_CONVERTER;
-		}
-		else if (this.resourcePersistentAttribute.getSupportingAnnotation(StructConverterAnnotation.ANNOTATION_NAME) != null) {
-			return EclipseLinkConverter.STRUCT_CONVERTER;
-		}
-		
-		return null;
-	}
-
-	//*************** code assist ******************
-	
-	@Override
-	public Iterator<String> javaCompletionProposals(int pos, Filter<String> filter, CompilationUnit astRoot) {
-		Iterator<String> result = super.javaCompletionProposals(pos, filter, astRoot);
-		if (result != null) {
-			return result;
-		}
-		if (this.convertValueTouches(pos, astRoot)) {
-			result = this.persistenceConvertersNames(filter);
-			if (result != null) {
-				return result;
-			}
-		}
-		return null;
-	}
-	
-	protected boolean convertValueTouches(int pos, CompilationUnit astRoot) {
-		if (getResourceConvert() != null) {
-			return this.getResourceConvert().valueTouches(pos, astRoot);
-		}
-		return false;
-	}
-
-	protected Iterator<String> persistenceConvertersNames() {
-		if(this.getEclipseLinkPersistenceUnit().convertersSize() == 0) {
-			return EmptyIterator.<String> instance();
-		}
-		return CollectionTools.iterator(this.getEclipseLinkPersistenceUnit().uniqueConverterNames());
-	}
-
-	private Iterator<String> convertersNames(Filter<String> filter) {
-		return new FilteringIterator<String, String>(this.persistenceConvertersNames(), filter);
-	}
-
-	protected Iterator<String> persistenceConvertersNames(Filter<String> filter) {
-		return StringTools.convertToJavaStringLiterals(this.convertersNames(filter));
-	}
-
-	protected EclipseLinkPersistenceUnit getEclipseLinkPersistenceUnit() {
-		return (EclipseLinkPersistenceUnit) this.getPersistenceUnit();
-	}
-	
-	//****************** validation ********************
-	@Override
-	public void validate(List<IMessage> messages, IReporter reporter, CompilationUnit astRoot) {
-		super.validate(messages, reporter, astRoot);
-		if (getConverter() != null) {
-			getConverter().validate(messages, reporter, astRoot);
-		}
-	}
-
-}
diff --git a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/context/java/EclipseLinkJavaConverter.java b/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/context/java/EclipseLinkJavaConverter.java
deleted file mode 100644
index 587e5b4..0000000
--- a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/context/java/EclipseLinkJavaConverter.java
+++ /dev/null
@@ -1,107 +0,0 @@
-/*******************************************************************************
- *  Copyright (c) 2008, 2009  Oracle. 
- *  All rights reserved.  This program and the accompanying materials are 
- *  made available under the terms of the Eclipse Public License v1.0 which 
- *  accompanies this distribution, and is available at 
- *  http://www.eclipse.org/legal/epl-v10.html
- *  
- *  Contributors: 
- *  	Oracle - initial API and implementation
- *******************************************************************************/
-package org.eclipse.jpt.eclipselink.core.internal.context.java;
-
-import org.eclipse.jdt.core.dom.CompilationUnit;
-import org.eclipse.jpt.core.context.java.JavaJpaContextNode;
-import org.eclipse.jpt.core.internal.context.java.AbstractJavaJpaContextNode;
-import org.eclipse.jpt.core.resource.java.JavaResourcePersistentMember;
-import org.eclipse.jpt.core.utility.TextRange;
-import org.eclipse.jpt.eclipselink.core.context.EclipseLinkConverter;
-import org.eclipse.jpt.eclipselink.core.internal.context.persistence.EclipseLinkPersistenceUnit;
-import org.eclipse.jpt.eclipselink.core.resource.java.NamedConverterAnnotation;
-import org.eclipse.jpt.utility.internal.StringTools;
-
-public abstract class EclipseLinkJavaConverter extends AbstractJavaJpaContextNode
-	implements EclipseLinkConverter
-{
-	private JavaResourcePersistentMember resourcePersistentMember;
-	
-	private String name;
-	
-	
-	protected EclipseLinkJavaConverter(JavaJpaContextNode parent) {
-		super(parent);
-	}
-	
-	
-	protected NamedConverterAnnotation getAnnotation() {
-		return (NamedConverterAnnotation) this.resourcePersistentMember.getSupportingAnnotation(getAnnotationName());
-	}
-	
-	protected abstract String getAnnotationName();
-	
-	@Override
-	public EclipseLinkPersistenceUnit getPersistenceUnit() {
-		return (EclipseLinkPersistenceUnit) super.getPersistenceUnit();
-	}
-	
-	public char getEnclosingTypeSeparator() {
-		return '.';
-	}
-	
-	// **************** name ***************************************************
-	
-	public String getName() {
-		return this.name;
-	}
-
-	public void setName(String newName) {
-		String oldName = this.name;
-		this.name = newName;
-		getAnnotation().setName(newName);
-		firePropertyChanged(NAME_PROPERTY, oldName, newName);
-	}
-
-	protected void setName_(String newName) {
-		String oldName = this.name;
-		this.name = newName;
-		firePropertyChanged(NAME_PROPERTY, oldName, newName);
-	}
-	
-	
-	// **************** resource interaction ***********************************
-	
-	protected void initialize(JavaResourcePersistentMember jrpm) {
-		this.resourcePersistentMember = jrpm;
-		this.name = this.name(getAnnotation());
-	}
-	
-	protected void update(JavaResourcePersistentMember jrpm) {
-		this.resourcePersistentMember = jrpm;
-		this.setName_(this.name(getAnnotation()));
-		getPersistenceUnit().addConverter(this);
-	}
-	
-	protected String name(NamedConverterAnnotation resourceConverter) {
-		return resourceConverter == null ? null : resourceConverter.getName();
-	}
-	
-	
-	// **************** validation *********************************************
-	
-	public boolean overrides(EclipseLinkConverter converter) {
-		// java is at the base of the tree
-		return false;
-	}
-	
-	public boolean duplicates(EclipseLinkConverter converter) {
-		return (this != converter)
-				&& ! StringTools.stringIsEmpty(this.name)
-				&& this.name.equals(converter.getName())
-				&& ! this.overrides(converter)
-				&& ! converter.overrides(this);
-	}
-	
-	public TextRange getValidationTextRange(CompilationUnit astRoot) {
-		return getAnnotation().getTextRange(astRoot);
-	}
-}
diff --git a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/context/java/EclipseLinkJavaConverterHolder.java b/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/context/java/EclipseLinkJavaConverterHolder.java
deleted file mode 100644
index b5333c8..0000000
--- a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/context/java/EclipseLinkJavaConverterHolder.java
+++ /dev/null
@@ -1,369 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008, 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.eclipselink.core.internal.context.java;
-
-import java.util.List;
-import org.eclipse.jdt.core.dom.CompilationUnit;
-import org.eclipse.jpt.core.context.java.JavaTypeMapping;
-import org.eclipse.jpt.core.internal.context.java.AbstractJavaJpaContextNode;
-import org.eclipse.jpt.core.resource.java.JavaResourcePersistentType;
-import org.eclipse.jpt.core.utility.TextRange;
-import org.eclipse.jpt.eclipselink.core.context.CustomConverter;
-import org.eclipse.jpt.eclipselink.core.context.ObjectTypeConverter;
-import org.eclipse.jpt.eclipselink.core.context.StructConverter;
-import org.eclipse.jpt.eclipselink.core.context.TypeConverter;
-import org.eclipse.jpt.eclipselink.core.context.java.JavaConverterHolder;
-import org.eclipse.jpt.eclipselink.core.resource.java.ConverterAnnotation;
-import org.eclipse.jpt.eclipselink.core.resource.java.ObjectTypeConverterAnnotation;
-import org.eclipse.jpt.eclipselink.core.resource.java.StructConverterAnnotation;
-import org.eclipse.jpt.eclipselink.core.resource.java.TypeConverterAnnotation;
-import org.eclipse.wst.validation.internal.provisional.core.IMessage;
-import org.eclipse.wst.validation.internal.provisional.core.IReporter;
-
-public class EclipseLinkJavaConverterHolder extends AbstractJavaJpaContextNode implements JavaConverterHolder
-{
-	protected JavaResourcePersistentType resourcePersistentType;
-	
-	protected EclipseLinkJavaCustomConverter customConverter;
-	protected EclipseLinkJavaObjectTypeConverter objectTypeConverter;
-	protected EclipseLinkJavaStructConverter structConverter;
-	protected EclipseLinkJavaTypeConverter typeConverter;
-	
-	public EclipseLinkJavaConverterHolder(JavaTypeMapping parent) {
-		super(parent);
-	}
-	
-	//************** converter *************
-	public CustomConverter getCustomConverter() {
-		return this.customConverter;
-	}
-	
-	public CustomConverter addCustomConverter() {
-		if (this.customConverter != null) {
-			throw new IllegalStateException("custom converter already exists"); //$NON-NLS-1$
-		}
-		this.customConverter = buildCustomConverter();
-		this.resourcePersistentType.addSupportingAnnotation(this.customConverter.getAnnotationName());
-		firePropertyChanged(CUSTOM_CONVERTER_PROPERTY, null, this.customConverter);
-		return this.customConverter;
-	}
-	
-	protected void addCustomConverter_() {
-		this.customConverter = buildCustomConverter();	
-		firePropertyChanged(CUSTOM_CONVERTER_PROPERTY, null, this.customConverter);
-	}
-	
-	public void removeCustomConverter() {
-		if (this.customConverter == null) {
-			throw new IllegalStateException("converter is null"); //$NON-NLS-1$			
-		}
-		EclipseLinkJavaCustomConverter oldConverter = this.customConverter;
-		this.customConverter = null;
-		this.resourcePersistentType.removeSupportingAnnotation(oldConverter.getAnnotationName());
-		firePropertyChanged(CUSTOM_CONVERTER_PROPERTY, oldConverter, null);
-	}
-	
-	protected void removeCustomConverter_() {
-		this.customConverter = null;
-		firePropertyChanged(CUSTOM_CONVERTER_PROPERTY, this.customConverter, null);
-	}
-	
-	protected String getConverterAnnotationName() {
-		return ConverterAnnotation.ANNOTATION_NAME;
-	}
-	
-	protected ConverterAnnotation getResourceConverter() {
-		return (ConverterAnnotation) this.resourcePersistentType.getSupportingAnnotation(getConverterAnnotationName());
-	}
-	
-	
-	//************** object type converter *************
-	public ObjectTypeConverter getObjectTypeConverter() {
-		return this.objectTypeConverter;
-	}
-	
-	public ObjectTypeConverter addObjectTypeConverter() {
-		if (this.objectTypeConverter != null) {
-			throw new IllegalStateException("object type converter already exists"); //$NON-NLS-1$
-		}
-		this.objectTypeConverter = buildObjectTypeConverter();
-		this.resourcePersistentType.addSupportingAnnotation(this.objectTypeConverter.getAnnotationName());
-		firePropertyChanged(OBJECT_TYPE_CONVERTER_PROPERTY, null, this.objectTypeConverter);
-		return this.objectTypeConverter;
-	}
-	
-	protected void addObjectTypeConverter_() {
-		this.objectTypeConverter = buildObjectTypeConverter();			
-		firePropertyChanged(OBJECT_TYPE_CONVERTER_PROPERTY, null, this.objectTypeConverter);
-	}
-	
-	public void removeObjectTypeConverter() {
-		if (this.objectTypeConverter == null) {
-			throw new IllegalStateException("object type converter is null"); //$NON-NLS-1$			
-		}
-		EclipseLinkJavaObjectTypeConverter oldConverter = this.objectTypeConverter;
-		this.objectTypeConverter = null;
-		this.resourcePersistentType.removeSupportingAnnotation(oldConverter.getAnnotationName());
-		firePropertyChanged(OBJECT_TYPE_CONVERTER_PROPERTY, oldConverter, null);
-	}
-
-	protected void removeObjectTypeConverter_() {
-		ObjectTypeConverter oldConverter = this.objectTypeConverter;
-		this.objectTypeConverter = null;
-		firePropertyChanged(OBJECT_TYPE_CONVERTER_PROPERTY, oldConverter, null);
-	}
-	
-	protected String getObjectTypeConverterAnnotationName() {
-		return ObjectTypeConverterAnnotation.ANNOTATION_NAME;
-	}
-	
-	protected ObjectTypeConverterAnnotation getResourceObjectTypeConverter() {
-		return (ObjectTypeConverterAnnotation) this.resourcePersistentType.getSupportingAnnotation(getObjectTypeConverterAnnotationName());
-	}
-	
-	
-	//************** type converter *************
-	public TypeConverter getTypeConverter() {
-		return this.typeConverter;
-	}
-	
-	public TypeConverter addTypeConverter() {
-		if (this.typeConverter != null) {
-			throw new IllegalStateException("type converter already exists"); //$NON-NLS-1$
-		}
-		this.typeConverter = buildTypeConverter();
-		this.resourcePersistentType.addSupportingAnnotation(this.typeConverter.getAnnotationName());
-		firePropertyChanged(TYPE_CONVERTER_PROPERTY, null, this.typeConverter);
-		return this.typeConverter;
-	}
-	
-	protected void addTypeConverter_() {
-		this.typeConverter = buildTypeConverter();		
-		firePropertyChanged(TYPE_CONVERTER_PROPERTY, null, this.typeConverter);
-	}
-	
-	public void removeTypeConverter() {
-		if (this.typeConverter == null) {
-			throw new IllegalStateException("type converter is null"); //$NON-NLS-1$			
-		}
-		EclipseLinkJavaTypeConverter oldConverter = this.typeConverter;
-		this.typeConverter = null;
-		this.resourcePersistentType.removeSupportingAnnotation(oldConverter.getAnnotationName());
-		firePropertyChanged(TYPE_CONVERTER_PROPERTY, oldConverter, null);
-	}
-	
-	protected void removeTypeConverter_() {
-		TypeConverter oldConverter = this.typeConverter;
-		this.typeConverter = null;
-		firePropertyChanged(TYPE_CONVERTER_PROPERTY, oldConverter, null);
-	}
-	
-	protected String getTypeConverterAnnotationName() {
-		return TypeConverterAnnotation.ANNOTATION_NAME;
-	}
-	
-	protected TypeConverterAnnotation getResourceTypeConverter() {
-		return (TypeConverterAnnotation) this.resourcePersistentType.getSupportingAnnotation(getTypeConverterAnnotationName());
-	}
-	
-	
-	//************** struct converter *************
-	public StructConverter getStructConverter() {
-		return this.structConverter;
-	}
-	
-	public StructConverter addStructConverter() {
-		if (this.structConverter != null) {
-			throw new IllegalStateException("struct converter already exists"); //$NON-NLS-1$
-		}
-		this.structConverter = buildStructConverter();
-		this.resourcePersistentType.addSupportingAnnotation(this.structConverter.getAnnotationName());
-		firePropertyChanged(STRUCT_CONVERTER_PROPERTY, null, this.structConverter);
-		return this.structConverter;
-	}
-	
-	protected void addStructConverter_() {
-		this.structConverter = buildStructConverter();		
-		firePropertyChanged(STRUCT_CONVERTER_PROPERTY, null, this.structConverter);
-	}
-	
-	public void removeStructConverter() {
-		if (this.structConverter == null) {
-			throw new IllegalStateException("struct converter is null"); //$NON-NLS-1$			
-		}
-		EclipseLinkJavaStructConverter oldConverter = this.structConverter;
-		this.structConverter = null;
-		this.resourcePersistentType.removeSupportingAnnotation(oldConverter.getAnnotationName());
-		firePropertyChanged(STRUCT_CONVERTER_PROPERTY, oldConverter, null);
-	}
-	
-	protected void removeStructConverter_() {
-		StructConverter oldConverter = this.structConverter;
-		this.structConverter = null;
-		firePropertyChanged(STRUCT_CONVERTER_PROPERTY, oldConverter, null);
-	}
-	
-	protected String getStructConverterAnnotationName() {
-		return StructConverterAnnotation.ANNOTATION_NAME;
-	}
-	
-	protected StructConverterAnnotation getResourceStructConverter() {
-		return (StructConverterAnnotation) this.resourcePersistentType.getSupportingAnnotation(getStructConverterAnnotationName());
-	}
-	
-	public void update(JavaResourcePersistentType jrpt) {
-		this.resourcePersistentType = jrpt;
-		this.updateCustomConverter();
-		this.updateObjectTypeConverter();
-		this.updateTypeConverter();
-		this.updateStructConverter();
-	}
-	
-	protected void updateCustomConverter() {
-		if (getResourceConverter() != null) {
-			if (this.customConverter != null) {
-				this.customConverter.update(this.resourcePersistentType);
-			}
-			else {
-				addCustomConverter_();
-			}
-		}
-		else {
-			if (this.customConverter != null) {
-				removeCustomConverter_();
-			}
-		}	
-	}
-	
-	protected void updateObjectTypeConverter() {
-		if (getResourceObjectTypeConverter() != null) {
-			if (this.objectTypeConverter != null) {
-				this.objectTypeConverter.update(this.resourcePersistentType);
-			}
-			else {
-				addObjectTypeConverter_();
-			}
-		}
-		else {
-			if (this.objectTypeConverter != null) {
-				removeObjectTypeConverter_();
-			}
-		}	
-	}
-	
-	protected void updateTypeConverter() {
-		if (getResourceTypeConverter() != null) {
-			if (this.typeConverter != null) {
-				this.typeConverter.update(this.resourcePersistentType);
-			}
-			else {
-				addTypeConverter_();
-			}
-		}
-		else {
-			if (this.typeConverter != null) {
-				removeTypeConverter();
-			}
-		}	
-	}
-	
-	protected void updateStructConverter() {
-		if (getResourceStructConverter() != null) {
-			if (this.structConverter != null) {
-				this.structConverter.update(this.resourcePersistentType);
-			}
-			else {
-				addStructConverter_();
-			}
-		}
-		else {
-			if (this.structConverter != null) {
-				removeStructConverter_();
-			}
-		}	
-	}
-	
-	public void initialize(JavaResourcePersistentType jrpt) {
-		this.resourcePersistentType = jrpt;
-		this.initializeCustomConverter();
-		this.initializeObjectTypeConverter();
-		this.initializeTypeConverter();
-		this.initializeStructConverter();
-	}
-	
-	protected void initializeCustomConverter() {
-		if (getResourceConverter() != null) {
-			this.customConverter = buildCustomConverter();
-		}		
-	}
-	
-	protected void initializeObjectTypeConverter() {
-		if (getResourceObjectTypeConverter() != null) {
-			this.objectTypeConverter = buildObjectTypeConverter();
-		}		
-	}
-	
-	protected void initializeTypeConverter() {
-		if (getResourceTypeConverter() != null) {
-			this.typeConverter = buildTypeConverter();
-		}		
-	}
-	
-	protected void initializeStructConverter() {
-		if (getResourceStructConverter() != null) {
-			this.structConverter = buildStructConverter();
-		}		
-	}
-	protected EclipseLinkJavaCustomConverter buildCustomConverter() {
-		EclipseLinkJavaCustomConverter contextConverter = new EclipseLinkJavaCustomConverter(this);
-		contextConverter.initialize(this.resourcePersistentType);
-		return contextConverter;
-	}
-
-	protected EclipseLinkJavaTypeConverter buildTypeConverter() {
-		EclipseLinkJavaTypeConverter contextConverter = new EclipseLinkJavaTypeConverter(this);
-		contextConverter.initialize(this.resourcePersistentType);
-		return contextConverter;
-	}
-
-	protected EclipseLinkJavaObjectTypeConverter buildObjectTypeConverter() {
-		EclipseLinkJavaObjectTypeConverter contextConverter = new EclipseLinkJavaObjectTypeConverter(this);
-		contextConverter.initialize(this.resourcePersistentType);
-		return contextConverter;
-	}
-
-	protected EclipseLinkJavaStructConverter buildStructConverter() {
-		EclipseLinkJavaStructConverter contextConverter = new EclipseLinkJavaStructConverter(this);
-		contextConverter.initialize(this.resourcePersistentType);
-		return contextConverter;
-	}
-
-	public TextRange getValidationTextRange(CompilationUnit astRoot) {
-		return this.resourcePersistentType.getTextRange(astRoot);
-	}
-	
-	@Override
-	public void validate(List<IMessage> messages, IReporter reporter, CompilationUnit astRoot) {
-		super.validate(messages, reporter, astRoot);
-		if (this.customConverter != null) {
-			this.customConverter.validate(messages, reporter, astRoot);
-		}
-		if (this.objectTypeConverter != null) {
-			this.objectTypeConverter.validate(messages, reporter, astRoot);
-		}
-		if (this.typeConverter != null) {
-			this.typeConverter.validate(messages, reporter, astRoot);
-		}
-		if (this.structConverter != null) {
-			this.structConverter.validate(messages, reporter, astRoot);
-		}
-	}
-	
-}
diff --git a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/context/java/EclipseLinkJavaCustomConverter.java b/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/context/java/EclipseLinkJavaCustomConverter.java
deleted file mode 100644
index 4c1351f..0000000
--- a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/context/java/EclipseLinkJavaCustomConverter.java
+++ /dev/null
@@ -1,118 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008, 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.eclipselink.core.internal.context.java;
-
-import java.util.List;
-import org.eclipse.jdt.core.dom.CompilationUnit;
-import org.eclipse.jpt.core.context.java.JavaJpaContextNode;
-import org.eclipse.jpt.core.resource.java.JavaResourcePersistentMember;
-import org.eclipse.jpt.core.utility.TextRange;
-import org.eclipse.jpt.eclipselink.core.context.CustomConverter;
-import org.eclipse.jpt.eclipselink.core.context.EclipseLinkConverter;
-import org.eclipse.jpt.eclipselink.core.internal.DefaultEclipseLinkJpaValidationMessages;
-import org.eclipse.jpt.eclipselink.core.internal.EclipseLinkJpaValidationMessages;
-import org.eclipse.jpt.eclipselink.core.resource.java.ConverterAnnotation;
-import org.eclipse.wst.validation.internal.provisional.core.IMessage;
-import org.eclipse.wst.validation.internal.provisional.core.IReporter;
-
-public class EclipseLinkJavaCustomConverter extends EclipseLinkJavaConverter 
-	implements CustomConverter
-{
-	private String converterClass;
-	
-	public EclipseLinkJavaCustomConverter(JavaJpaContextNode parent) {
-		super(parent);
-	}
-	
-	
-	public String getType() {
-		return EclipseLinkConverter.CUSTOM_CONVERTER;
-	}
-	
-	@Override
-	public String getAnnotationName() {
-		return ConverterAnnotation.ANNOTATION_NAME;
-	}
-	
-	@Override
-	protected ConverterAnnotation getAnnotation() {
-		return (ConverterAnnotation) super.getAnnotation();
-	}
-	
-	
-	// **************** converter class ****************************************
-	
-	public String getConverterClass() {
-		return this.converterClass;
-	}
-
-	public void setConverterClass(String newConverterClass) {
-		String oldConverterClass = this.converterClass;
-		this.converterClass = newConverterClass;
-		getAnnotation().setConverterClass(newConverterClass);
-		firePropertyChanged(CONVERTER_CLASS_PROPERTY, oldConverterClass, newConverterClass);
-	}
-	
-	protected void setConverterClass_(String newConverterClass) {
-		String oldConverterClass = this.converterClass;
-		this.converterClass = newConverterClass;
-		firePropertyChanged(CONVERTER_CLASS_PROPERTY, oldConverterClass, newConverterClass);
-	}
-
-	
-	// **************** resource interaction ***********************************
-	
-	@Override
-	protected void initialize(JavaResourcePersistentMember jrpm) {
-		super.initialize(jrpm);
-		this.converterClass = this.converterClass(getAnnotation());
-	}
-	
-	@Override
-	public void update(JavaResourcePersistentMember jrpm) {
-		super.update(jrpm);
-		this.setConverterClass_(this.converterClass(getAnnotation()));
-	}
-	
-	protected String converterClass(ConverterAnnotation resourceConverter) {
-		return resourceConverter == null ? null : resourceConverter.getConverterClass();
-	}
-
-	public TextRange getConverterClassTextRange(CompilationUnit astRoot) {
-		return getAnnotation().getConverterClassTextRange(astRoot);
-	}
-	
-	
-	//************ validation ***************
-	
-	@Override
-	public void validate(List<IMessage> messages, IReporter reporter, CompilationUnit astRoot) {
-		super.validate(messages, reporter, astRoot);
-		validateConverterClass(messages, astRoot);
-	}
-	
-	protected void validateConverterClass(List<IMessage> messages, CompilationUnit astRoot) {
-		if (this.converterClass == null) {
-			//Annotation itself will have compile error if converter class not defined
-			return;
-		}
-		if (! getAnnotation().converterClassImplementsInterface(ECLIPSELINK_CONVERTER_CLASS_NAME, astRoot)) {
-			messages.add(
-				DefaultEclipseLinkJpaValidationMessages.buildMessage(
-					IMessage.HIGH_SEVERITY,
-					EclipseLinkJpaValidationMessages.CONVERTER_CLASS_IMPLEMENTS_CONVERTER,
-					new String[] {this.converterClass},
-					this, 
-					getConverterClassTextRange(astRoot)
-				)
-			);
-		}
-	}
-}
diff --git a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/context/java/EclipseLinkJavaCustomizer.java b/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/context/java/EclipseLinkJavaCustomizer.java
deleted file mode 100644
index c060c75..0000000
--- a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/context/java/EclipseLinkJavaCustomizer.java
+++ /dev/null
@@ -1,143 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008, 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.eclipselink.core.internal.context.java;
-
-import java.util.List;
-import org.eclipse.jdt.core.dom.CompilationUnit;
-import org.eclipse.jpt.core.context.java.JavaJpaContextNode;
-import org.eclipse.jpt.core.internal.context.java.AbstractJavaJpaContextNode;
-import org.eclipse.jpt.core.resource.java.JavaResourcePersistentType;
-import org.eclipse.jpt.core.utility.TextRange;
-import org.eclipse.jpt.eclipselink.core.context.Customizer;
-import org.eclipse.jpt.eclipselink.core.internal.DefaultEclipseLinkJpaValidationMessages;
-import org.eclipse.jpt.eclipselink.core.internal.EclipseLinkJpaFactory;
-import org.eclipse.jpt.eclipselink.core.internal.EclipseLinkJpaValidationMessages;
-import org.eclipse.jpt.eclipselink.core.resource.java.CustomizerAnnotation;
-import org.eclipse.wst.validation.internal.provisional.core.IMessage;
-import org.eclipse.wst.validation.internal.provisional.core.IReporter;
-
-public class EclipseLinkJavaCustomizer extends AbstractJavaJpaContextNode implements Customizer
-{	
-	private JavaResourcePersistentType resourcePersistentType;
-	
-	private String customizerClass;
-	
-	public EclipseLinkJavaCustomizer(JavaJpaContextNode parent) {
-		super(parent);
-	}
-	
-	public char getCustomizerClassEnclosingTypeSeparator() {
-		return '.';
-	}
-	
-	@Override
-	protected EclipseLinkJpaFactory getJpaFactory() {
-		return (EclipseLinkJpaFactory) super.getJpaFactory();
-	}
-
-	protected String getAnnotationName() {
-		return CustomizerAnnotation.ANNOTATION_NAME;
-	}
-		
-	protected void addResourceCustomizer() {
-		this.resourcePersistentType.addSupportingAnnotation(getAnnotationName());
-	}
-	
-	protected void removeResourceCustomizer() {
-		this.resourcePersistentType.removeSupportingAnnotation(getAnnotationName());
-	}
-
-	public TextRange getValidationTextRange(CompilationUnit astRoot) {
-		return getResourceCustomizer().getTextRange(astRoot);
-	}
-
-	protected CustomizerAnnotation getResourceCustomizer() {
-		return (CustomizerAnnotation) this.resourcePersistentType.getSupportingAnnotation(getAnnotationName());
-	}
-	
-	public String getCustomizerClass() {
-		return getSpecifiedCustomizerClass();
-	}
-	
-	public String getDefaultCustomizerClass() {
-		return null;
-	}
-	
-	public String getSpecifiedCustomizerClass() {
-		return this.customizerClass;
-	}
-
-	public void setSpecifiedCustomizerClass(String newCustomizerClass) {
-		if (attributeValueHasNotChanged(this.customizerClass, newCustomizerClass)) {
-			return;
-		}
-		String oldCustomizerClass = this.customizerClass;
-		this.customizerClass = newCustomizerClass;
-		if (this.customizerClass != null) {
-			addResourceCustomizer();
-		}
-		else {
-			removeResourceCustomizer();
-		}
-		if (newCustomizerClass != null) {
-			getResourceCustomizer().setValue(newCustomizerClass);
-		}
-		firePropertyChanged(SPECIFIED_CUSTOMIZER_CLASS_PROPERTY, oldCustomizerClass, newCustomizerClass);
-	}
-	
-	protected void setCustomizerClass_(String newCustomizerClass) {
-		String oldCustomizerClass = this.customizerClass;
-		this.customizerClass = newCustomizerClass;
-		firePropertyChanged(SPECIFIED_CUSTOMIZER_CLASS_PROPERTY, oldCustomizerClass, newCustomizerClass);
-	}
-	
-	public void initialize(JavaResourcePersistentType jrpt) {
-		this.resourcePersistentType = jrpt;
-		CustomizerAnnotation resourceCustomizer = getResourceCustomizer();
-		this.customizerClass = this.customizerClass(resourceCustomizer);
-	}
-	
-	public void update(JavaResourcePersistentType jrpt) {
-		this.resourcePersistentType = jrpt;
-		CustomizerAnnotation resourceCustomizer = getResourceCustomizer();
-		this.setCustomizerClass_(this.customizerClass(resourceCustomizer));
-	}
-	
-	protected String customizerClass(CustomizerAnnotation resourceCustomizer) {
-		return resourceCustomizer == null ? null : resourceCustomizer.getValue();
-	}
-
-	public TextRange getCustomizerClassTextRange(CompilationUnit astRoot) {
-		return getResourceCustomizer().getValueTextRange(astRoot);
-	}
-	
-	//************ validation ***************
-	
-	@Override
-	public void validate(List<IMessage> messages, IReporter reporter, CompilationUnit astRoot) {
-		super.validate(messages, reporter, astRoot);
-		validateConverterClass(messages, astRoot);
-	}
-	
-	protected void validateConverterClass(List<IMessage> messages, CompilationUnit astRoot) {
-		CustomizerAnnotation resourceCustomizer = getResourceCustomizer();
-		if (resourceCustomizer != null && !resourceCustomizer.customizerClassImplementsInterface(ECLIPSELINK_DESCRIPTOR_CUSTOMIZER_CLASS_NAME, astRoot)) {
-			messages.add(
-				DefaultEclipseLinkJpaValidationMessages.buildMessage(
-					IMessage.HIGH_SEVERITY,
-					EclipseLinkJpaValidationMessages.CUSTOMIZER_CLASS_IMPLEMENTS_DESCRIPTOR_CUSTOMIZER,
-					new String[] {this.customizerClass},
-					this, 
-					getCustomizerClassTextRange(astRoot)
-				)
-			);
-		}
-	}
-}
diff --git a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/context/java/EclipseLinkJavaEmbeddableImpl.java b/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/context/java/EclipseLinkJavaEmbeddableImpl.java
deleted file mode 100644
index 64340ed..0000000
--- a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/context/java/EclipseLinkJavaEmbeddableImpl.java
+++ /dev/null
@@ -1,78 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008, 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.eclipselink.core.internal.context.java;
-
-import java.util.List;
-import org.eclipse.jdt.core.dom.CompilationUnit;
-import org.eclipse.jpt.core.context.java.JavaPersistentType;
-import org.eclipse.jpt.core.internal.context.java.AbstractJavaEmbeddable;
-import org.eclipse.jpt.core.resource.java.JavaResourcePersistentType;
-import org.eclipse.jpt.eclipselink.core.context.ChangeTracking;
-import org.eclipse.jpt.eclipselink.core.context.Customizer;
-import org.eclipse.jpt.eclipselink.core.context.java.EclipseLinkJavaEmbeddable;
-import org.eclipse.jpt.eclipselink.core.context.java.JavaConverterHolder;
-import org.eclipse.wst.validation.internal.provisional.core.IMessage;
-import org.eclipse.wst.validation.internal.provisional.core.IReporter;
-
-public class EclipseLinkJavaEmbeddableImpl extends AbstractJavaEmbeddable implements EclipseLinkJavaEmbeddable
-{
-	
-	protected final JavaConverterHolder converterHolder;
-	
-	protected final EclipseLinkJavaCustomizer customizer;
-	
-	protected final EclipseLinkJavaChangeTracking changeTracking;
-	
-	public EclipseLinkJavaEmbeddableImpl(JavaPersistentType parent) {
-		super(parent);
-		this.converterHolder = new EclipseLinkJavaConverterHolder(this);
-		this.customizer = new EclipseLinkJavaCustomizer(this);
-		this.changeTracking = new EclipseLinkJavaChangeTracking(this);
-	}
-	
-	public JavaConverterHolder getConverterHolder() {
-		return this.converterHolder;
-	}
-	
-	public Customizer getCustomizer() {
-		return this.customizer;
-	}
-	
-	public ChangeTracking getChangeTracking() {
-		return this.changeTracking;
-	}	
-	
-	@Override
-	public void initialize(JavaResourcePersistentType jrpt) {
-		super.initialize(jrpt);
-		this.converterHolder.initialize(jrpt);
-		this.customizer.initialize(jrpt);
-		this.changeTracking.initialize(jrpt);
-	}
-	
-	@Override
-	public void update(JavaResourcePersistentType jrpt) {
-		super.update(jrpt);
-		this.converterHolder.update(jrpt);
-		this.customizer.update(jrpt);
-		this.changeTracking.update(jrpt);
-	}
-	
-	
-	//********** Validation ********************************************
-	
-	@Override
-	public void validate(List<IMessage> messages, IReporter reporter, CompilationUnit astRoot) {
-		super.validate(messages, reporter, astRoot);
-		this.converterHolder.validate(messages, reporter, astRoot);
-		this.customizer.validate(messages, reporter, astRoot);
-		this.changeTracking.validate(messages, reporter, astRoot);
-	}
-}
diff --git a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/context/java/EclipseLinkJavaEntityImpl.java b/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/context/java/EclipseLinkJavaEntityImpl.java
deleted file mode 100644
index 91d09f9..0000000
--- a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/context/java/EclipseLinkJavaEntityImpl.java
+++ /dev/null
@@ -1,99 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008, 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.eclipselink.core.internal.context.java;
-
-import java.util.List;
-import org.eclipse.jdt.core.dom.CompilationUnit;
-import org.eclipse.jpt.core.context.java.JavaPersistentType;
-import org.eclipse.jpt.core.internal.context.java.AbstractJavaEntity;
-import org.eclipse.jpt.core.resource.java.JavaResourcePersistentType;
-import org.eclipse.jpt.eclipselink.core.context.ChangeTracking;
-import org.eclipse.jpt.eclipselink.core.context.Customizer;
-import org.eclipse.jpt.eclipselink.core.context.ReadOnly;
-import org.eclipse.jpt.eclipselink.core.context.java.EclipseLinkJavaEntity;
-import org.eclipse.jpt.eclipselink.core.context.java.JavaCaching;
-import org.eclipse.jpt.eclipselink.core.context.java.JavaConverterHolder;
-import org.eclipse.wst.validation.internal.provisional.core.IMessage;
-import org.eclipse.wst.validation.internal.provisional.core.IReporter;
-
-public class EclipseLinkJavaEntityImpl extends AbstractJavaEntity implements EclipseLinkJavaEntity
-{
-	protected final JavaCaching eclipseLinkCaching;
-	
-	protected final JavaConverterHolder converterHolder;
-	
-	protected final EclipseLinkJavaReadOnly readOnly;
-	
-	protected final EclipseLinkJavaCustomizer customizer;
-	
-	protected final EclipseLinkJavaChangeTracking changeTracking;
-
-	public EclipseLinkJavaEntityImpl(JavaPersistentType parent) {
-		super(parent);
-		this.eclipseLinkCaching = new EclipseLinkJavaCaching(this);
-		this.converterHolder = new EclipseLinkJavaConverterHolder(this);
-		this.readOnly = new EclipseLinkJavaReadOnly(this);
-		this.changeTracking = new EclipseLinkJavaChangeTracking(this);
-		this.customizer = new EclipseLinkJavaCustomizer(this);
-	}
-	
-	public JavaCaching getCaching() {
-		return this.eclipseLinkCaching;
-	}
-	
-	public JavaConverterHolder getConverterHolder() {
-		return this.converterHolder;
-	}
-	
-	public ReadOnly getReadOnly() {
-		return this.readOnly;
-	}
-	
-	public Customizer getCustomizer() {
-		return this.customizer;
-	}
-	
-	public ChangeTracking getChangeTracking() {
-		return this.changeTracking;
-	}
-	
-	@Override
-	public void initialize(JavaResourcePersistentType jrpt) {
-		super.initialize(jrpt);
-		this.eclipseLinkCaching.initialize(jrpt);
-		this.converterHolder.initialize(jrpt);
-		this.readOnly.initialize(jrpt);
-		this.customizer.initialize(jrpt);
-		this.changeTracking.initialize(jrpt);
-	}
-	
-	@Override
-	public void update(JavaResourcePersistentType jrpt) {
-		super.update(jrpt);
-		this.eclipseLinkCaching.update(jrpt);
-		this.converterHolder.update(jrpt);
-		this.readOnly.update(jrpt);
-		this.customizer.update(jrpt);
-		this.changeTracking.update(jrpt);
-	}
-	
-	
-	//********** Validation ********************************************
-
-	@Override
-	public void validate(List<IMessage> messages, IReporter reporter, CompilationUnit astRoot) {
-		super.validate(messages, reporter, astRoot);
-		this.eclipseLinkCaching.validate(messages, reporter, astRoot);
-		this.converterHolder.validate(messages, reporter, astRoot);
-		this.readOnly.validate(messages, reporter, astRoot);
-		this.customizer.validate(messages, reporter, astRoot);
-		this.changeTracking.validate(messages, reporter, astRoot);
-	}
-}
diff --git a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/context/java/EclipseLinkJavaExpiryTimeOfDay.java b/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/context/java/EclipseLinkJavaExpiryTimeOfDay.java
deleted file mode 100644
index b893c2c..0000000
--- a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/context/java/EclipseLinkJavaExpiryTimeOfDay.java
+++ /dev/null
@@ -1,137 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.eclipselink.core.internal.context.java;
-
-import org.eclipse.jdt.core.dom.CompilationUnit;
-import org.eclipse.jpt.core.internal.context.java.AbstractJavaJpaContextNode;
-import org.eclipse.jpt.core.utility.TextRange;
-import org.eclipse.jpt.eclipselink.core.context.Caching;
-import org.eclipse.jpt.eclipselink.core.context.ExpiryTimeOfDay;
-import org.eclipse.jpt.eclipselink.core.resource.java.TimeOfDayAnnotation;
-
-public class EclipseLinkJavaExpiryTimeOfDay extends AbstractJavaJpaContextNode
-	implements ExpiryTimeOfDay
-{
-	
-	protected Integer hour;
-	protected Integer minute;
-	protected Integer second;
-	protected Integer millisecond;
-	
-	protected TimeOfDayAnnotation timeOfDay;
-	
-	public EclipseLinkJavaExpiryTimeOfDay(Caching parent) {
-		super(parent);
-	}
-	
-	public Integer getHour() {
-		return this.hour;
-	}
-
-	public void setHour(Integer newHour) {
-		Integer oldHour = this.hour;
-		this.hour = newHour;
-		this.timeOfDay.setHour(newHour);
-		firePropertyChanged(HOUR_PROPERTY, oldHour, newHour);
-	}
-
-	protected void setHour_(Integer newHour) {
-		Integer oldHour = this.hour;
-		this.hour = newHour;
-		firePropertyChanged(HOUR_PROPERTY, oldHour, newHour);
-	}
-
-	public Integer getMinute() {
-		return this.minute;
-	}
-
-	public void setMinute(Integer newMinute) {
-		Integer oldMinute = this.minute;
-		this.minute = newMinute;
-		this.timeOfDay.setMinute(newMinute);
-		firePropertyChanged(MINUTE_PROPERTY, oldMinute, newMinute);
-	}
-
-	protected void setMinute_(Integer newMinute) {
-		Integer oldMinute = this.minute;
-		this.minute = newMinute;
-		firePropertyChanged(MINUTE_PROPERTY, oldMinute, newMinute);
-	}
-
-	public Integer getSecond() {
-		return this.second;
-	}
-
-	public void setSecond(Integer newSecond) {
-		Integer oldSecond = this.second;
-		this.second = newSecond;
-		this.timeOfDay.setSecond(newSecond);
-		firePropertyChanged(SECOND_PROPERTY, oldSecond, newSecond);
-	}
-	
-	protected void setSecond_(Integer newSecond) {
-		Integer oldSecond = this.second;
-		this.second = newSecond;
-		firePropertyChanged(SECOND_PROPERTY, oldSecond, newSecond);
-	}
-
-	public Integer getMillisecond() {
-		return this.millisecond;
-	}
-
-	public void setMillisecond(Integer newMillisecond) {
-		Integer oldMillisecond = this.millisecond;
-		this.millisecond = newMillisecond;
-		this.timeOfDay.setMillisecond(newMillisecond);
-		firePropertyChanged(MILLISECOND_PROPERTY, oldMillisecond, newMillisecond);
-	}
-	
-	protected void setMillisecond_(Integer newMillisecond) {
-		Integer oldMillisecond = this.millisecond;
-		this.millisecond = newMillisecond;
-		firePropertyChanged(MILLISECOND_PROPERTY, oldMillisecond, newMillisecond);
-	}
-
-	public TextRange getValidationTextRange(CompilationUnit astRoot) {
-		return this.timeOfDay.getTextRange(astRoot);
-	}
-	
-	public void initialize(TimeOfDayAnnotation timeOfDay) {
-		this.timeOfDay = timeOfDay;
-		this.hour = getHour(timeOfDay);
-		this.minute = getMinute(timeOfDay);
-		this.second = getSecond(timeOfDay);
-		this.millisecond = getMillisecond(timeOfDay);
-	}
-	
-	public void update(TimeOfDayAnnotation timeOfDay) {
-		this.timeOfDay = timeOfDay;
-		this.setHour_(getHour(timeOfDay));
-		this.setMinute_(getMinute(timeOfDay));
-		this.setSecond_(getSecond(timeOfDay));
-		this.setMillisecond_(getMillisecond(timeOfDay));
-	}
-	
-	protected Integer getHour(TimeOfDayAnnotation timeOfDay) {
-		return timeOfDay.getHour();
-	}
-	
-	protected Integer getMinute(TimeOfDayAnnotation timeOfDay) {
-		return timeOfDay.getMinute();
-	}
-	
-	protected Integer getSecond(TimeOfDayAnnotation timeOfDay) {
-		return timeOfDay.getSecond();
-	}
-	
-	protected Integer getMillisecond(TimeOfDayAnnotation timeOfDay) {
-		return timeOfDay.getMillisecond();
-	}
-}
diff --git a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/context/java/EclipseLinkJavaIdMappingImpl.java b/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/context/java/EclipseLinkJavaIdMappingImpl.java
deleted file mode 100644
index ab78070..0000000
--- a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/context/java/EclipseLinkJavaIdMappingImpl.java
+++ /dev/null
@@ -1,104 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008, 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.eclipselink.core.internal.context.java;
-
-import java.util.Iterator;
-import java.util.List;
-import org.eclipse.jdt.core.dom.CompilationUnit;
-import org.eclipse.jpt.core.context.java.JavaConverter;
-import org.eclipse.jpt.core.context.java.JavaPersistentAttribute;
-import org.eclipse.jpt.core.internal.context.java.GenericJavaIdMapping;
-import org.eclipse.jpt.eclipselink.core.context.Convert;
-import org.eclipse.jpt.eclipselink.core.context.EclipseLinkIdMapping;
-import org.eclipse.jpt.eclipselink.core.context.Mutable;
-import org.eclipse.jpt.eclipselink.core.resource.java.ConvertAnnotation;
-import org.eclipse.jpt.utility.Filter;
-import org.eclipse.wst.validation.internal.provisional.core.IMessage;
-import org.eclipse.wst.validation.internal.provisional.core.IReporter;
-
-public class EclipseLinkJavaIdMappingImpl 
-	extends GenericJavaIdMapping
-	implements EclipseLinkIdMapping
-{
-	protected final EclipseLinkJavaMutable mutable;
-	
-	public EclipseLinkJavaIdMappingImpl(JavaPersistentAttribute parent) {
-		super(parent);
-		this.mutable = new EclipseLinkJavaMutable(this);
-	}
-
-	@Override
-	protected JavaConverter buildSpecifiedConverter(String converterType) {
-		JavaConverter javaConverter = super.buildSpecifiedConverter(converterType);
-		if (javaConverter != null) {
-			return javaConverter;
-		}
-		if (converterType == Convert.ECLIPSE_LINK_CONVERTER) {
-			return new EclipseLinkJavaConvert(this, this.resourcePersistentAttribute);
-		}
-		return null;
-	}
-	
-	@Override
-	protected String getResourceConverterType() {
-		//check @Convert first, this is the order that EclipseLink searches
-		if (this.resourcePersistentAttribute.getSupportingAnnotation(ConvertAnnotation.ANNOTATION_NAME) != null) {
-			return Convert.ECLIPSE_LINK_CONVERTER;
-		}
-		return super.getResourceConverterType();
-	}
-	
-	
-	//************ EclipselinkJavaIdMapping implementation ****************
-	
-	public Mutable getMutable() {
-		return this.mutable;
-	}
-	
-	
-	//************ initialization/update ****************
-
-	@Override
-	protected void initialize() {
-		super.initialize();
-		this.mutable.initialize(this.resourcePersistentAttribute);
-	}
-	
-	@Override
-	protected void update() {
-		super.update();
-		this.mutable.update(this.resourcePersistentAttribute);
-	}
-	
-	// ********** code assist **********
-
-	@Override
-	public Iterator<String> javaCompletionProposals(int pos, Filter<String> filter, CompilationUnit astRoot) {
-		Iterator<String> result = super.javaCompletionProposals(pos, filter, astRoot);
-		if (result != null) {
-			return result;
-		}
-		if (getConverter() != null) {
-			result = getConverter().javaCompletionProposals(pos, filter, astRoot);
-			if (result != null) {
-				return result;
-			}
-		}
-		return null;
-	}
-	
-	//************ validation ****************
-	
-	@Override
-	public void validate(List<IMessage> messages, IReporter reporter, CompilationUnit astRoot) {
-		super.validate(messages, reporter, astRoot);
-		this.mutable.validate(messages, reporter, astRoot);
-	}
-}
diff --git a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/context/java/EclipseLinkJavaJoinFetch.java b/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/context/java/EclipseLinkJavaJoinFetch.java
deleted file mode 100644
index f214784..0000000
--- a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/context/java/EclipseLinkJavaJoinFetch.java
+++ /dev/null
@@ -1,120 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.eclipselink.core.internal.context.java;
-
-import org.eclipse.jdt.core.dom.CompilationUnit;
-import org.eclipse.jpt.core.context.java.JavaAttributeMapping;
-import org.eclipse.jpt.core.internal.context.java.AbstractJavaJpaContextNode;
-import org.eclipse.jpt.core.resource.java.JavaResourcePersistentAttribute;
-import org.eclipse.jpt.core.utility.TextRange;
-import org.eclipse.jpt.eclipselink.core.context.JoinFetch;
-import org.eclipse.jpt.eclipselink.core.context.JoinFetchType;
-import org.eclipse.jpt.eclipselink.core.resource.java.JoinFetchAnnotation;
-
-public class EclipseLinkJavaJoinFetch 
-	extends AbstractJavaJpaContextNode 
-	implements JoinFetch
-{
-	protected JoinFetchType joinFetchValue;	
-	
-	protected JavaResourcePersistentAttribute resourcePersistentAttribute;
-	
-	
-	public EclipseLinkJavaJoinFetch(JavaAttributeMapping parent) {
-		super(parent);
-	}
-	
-	
-	protected String getJoinFetchAnnotationName() {
-		return JoinFetchAnnotation.ANNOTATION_NAME;
-	}
-	
-	protected JoinFetchAnnotation getResourceJoinFetch() {
-		return (JoinFetchAnnotation) this.resourcePersistentAttribute.getSupportingAnnotation(getJoinFetchAnnotationName());
-	}
-	
-	protected void addResourceJoinFetch() {
-		this.resourcePersistentAttribute.addSupportingAnnotation(getJoinFetchAnnotationName());
-	}
-	
-	protected void removeResourceJoinFetch() {
-		this.resourcePersistentAttribute.removeSupportingAnnotation(getJoinFetchAnnotationName());
-	}
-	
-	public JoinFetchType getValue() {
-		return this.joinFetchValue;
-	}
-	
-	protected JoinFetchType getDefaultValue() {
-		return JoinFetch.DEFAULT_VALUE;
-	}
-	
-	public void setValue(JoinFetchType newJoinFetchValue) {
-		if (this.joinFetchValue == newJoinFetchValue) {
-			return;
-		}
-				
-		JoinFetchType oldJoinFetchValue = this.joinFetchValue;
-		this.joinFetchValue = newJoinFetchValue;
-		
-		if (newJoinFetchValue != null) {
-			if (getResourceJoinFetch() == null) {
-				addResourceJoinFetch();
-			}
-			getResourceJoinFetch().setValue(JoinFetchType.toJavaResourceModel(newJoinFetchValue));		
-		}
-		else {
-			if (getResourceJoinFetch() != null) {
-				removeResourceJoinFetch();
-			}
-		}
-		firePropertyChanged(JoinFetch.VALUE_PROPERTY, oldJoinFetchValue, newJoinFetchValue);
-	}
-	
-	/**
-	 * internal setter used only for updating from the resource model.
-	 * There were problems with InvalidThreadAccess exceptions in the UI
-	 * when you set a value from the UI and the annotation doesn't exist yet.
-	 * Adding the annotation causes an update to occur and then the exception.
-	 */
-	protected void setValue_(JoinFetchType newJoinFetchValue) {
-		JoinFetchType oldJoinFetchValue = this.joinFetchValue;
-		this.joinFetchValue = newJoinFetchValue;
-		firePropertyChanged(JoinFetch.VALUE_PROPERTY, oldJoinFetchValue, newJoinFetchValue);
-	}
-	
-	public void initialize(JavaResourcePersistentAttribute jrpa) {
-		this.resourcePersistentAttribute = jrpa;
-		JoinFetchAnnotation resourceJoinFetch = this.getResourceJoinFetch();
-		this.joinFetchValue = this.joinFetch(resourceJoinFetch);
-	}
-	
-	public void update(JavaResourcePersistentAttribute jrpa) {
-		this.resourcePersistentAttribute = jrpa;
-		JoinFetchAnnotation resourceJoinFetch = this.getResourceJoinFetch();
-		setValue_(joinFetch(resourceJoinFetch));
-	}
-	
-	private JoinFetchType joinFetch(JoinFetchAnnotation resourceJoinFetch) {
-		if (resourceJoinFetch == null) {
-			return null;
-		}
-		if (resourceJoinFetch.getValue() == null) { 
-			// @JoinFetch is equivalent to @JoinFetch(JoinFetch.INNER)
-			return getDefaultValue();
-		}
-		return JoinFetchType.fromJavaResourceModel(resourceJoinFetch.getValue());
-	}
-	
-	public TextRange getValidationTextRange(CompilationUnit astRoot) {
-		JoinFetchAnnotation resourceJoinFetch = this.getResourceJoinFetch();
-		return resourceJoinFetch == null ? null : resourceJoinFetch.getTextRange(astRoot);
-	}
-}
diff --git a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/context/java/EclipseLinkJavaManyToManyMappingImpl.java b/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/context/java/EclipseLinkJavaManyToManyMappingImpl.java
deleted file mode 100644
index 219fb90..0000000
--- a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/context/java/EclipseLinkJavaManyToManyMappingImpl.java
+++ /dev/null
@@ -1,67 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008, 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.eclipselink.core.internal.context.java;
-
-import java.util.Iterator;
-import java.util.List;
-import org.eclipse.jdt.core.dom.CompilationUnit;
-import org.eclipse.jpt.core.context.java.JavaPersistentAttribute;
-import org.eclipse.jpt.core.internal.context.java.GenericJavaManyToManyMapping;
-import org.eclipse.jpt.eclipselink.core.context.EclipseLinkRelationshipMapping;
-import org.eclipse.jpt.eclipselink.core.context.JoinFetch;
-import org.eclipse.jpt.eclipselink.core.resource.java.EclipseLinkJPA;
-import org.eclipse.jpt.utility.internal.iterators.ArrayIterator;
-import org.eclipse.jpt.utility.internal.iterators.CompositeIterator;
-import org.eclipse.wst.validation.internal.provisional.core.IMessage;
-import org.eclipse.wst.validation.internal.provisional.core.IReporter;
-
-public class EclipseLinkJavaManyToManyMappingImpl
-	extends GenericJavaManyToManyMapping
-	implements EclipseLinkRelationshipMapping
-{
-	protected final EclipseLinkJavaJoinFetch joinFetch;
-	
-	
-	public EclipseLinkJavaManyToManyMappingImpl(JavaPersistentAttribute parent) {
-		super(parent);
-		this.joinFetch = new EclipseLinkJavaJoinFetch(this);
-	}
-	
-	
-	@Override
-	public Iterator<String> supportingAnnotationNames() {
-		return new CompositeIterator<String>(
-			super.supportingAnnotationNames(),
-			new ArrayIterator<String>(
-				EclipseLinkJPA.JOIN_FETCH));
-	}	
-	
-	public JoinFetch getJoinFetch() {
-		return this.joinFetch;
-	}
-	
-	@Override
-	protected void initialize() {
-		super.initialize();
-		this.joinFetch.initialize(this.resourcePersistentAttribute);
-	}
-	
-	@Override
-	protected void update() {
-		super.update();
-		this.joinFetch.update(this.resourcePersistentAttribute);
-	}
-	
-	@Override
-	public void validate(List<IMessage> messages, IReporter reporter, CompilationUnit astRoot) {
-		super.validate(messages, reporter, astRoot);
-		this.joinFetch.validate(messages, reporter, astRoot);
-	}
-}
diff --git a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/context/java/EclipseLinkJavaManyToOneMappingImpl.java b/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/context/java/EclipseLinkJavaManyToOneMappingImpl.java
deleted file mode 100644
index 915f039..0000000
--- a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/context/java/EclipseLinkJavaManyToOneMappingImpl.java
+++ /dev/null
@@ -1,67 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008, 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.eclipselink.core.internal.context.java;
-
-import java.util.Iterator;
-import java.util.List;
-import org.eclipse.jdt.core.dom.CompilationUnit;
-import org.eclipse.jpt.core.context.java.JavaPersistentAttribute;
-import org.eclipse.jpt.core.internal.context.java.GenericJavaManyToOneMapping;
-import org.eclipse.jpt.eclipselink.core.context.EclipseLinkRelationshipMapping;
-import org.eclipse.jpt.eclipselink.core.context.JoinFetch;
-import org.eclipse.jpt.eclipselink.core.resource.java.EclipseLinkJPA;
-import org.eclipse.jpt.utility.internal.iterators.ArrayIterator;
-import org.eclipse.jpt.utility.internal.iterators.CompositeIterator;
-import org.eclipse.wst.validation.internal.provisional.core.IMessage;
-import org.eclipse.wst.validation.internal.provisional.core.IReporter;
-
-public class EclipseLinkJavaManyToOneMappingImpl
-	extends GenericJavaManyToOneMapping
-	implements EclipseLinkRelationshipMapping
-{
-	protected final EclipseLinkJavaJoinFetch joinFetch;
-	
-	
-	public EclipseLinkJavaManyToOneMappingImpl(JavaPersistentAttribute parent) {
-		super(parent);
-		this.joinFetch = new EclipseLinkJavaJoinFetch(this);
-	}
-	
-	
-	@Override
-	public Iterator<String> supportingAnnotationNames() {
-		return new CompositeIterator<String>(
-			super.supportingAnnotationNames(),
-			new ArrayIterator<String>(
-				EclipseLinkJPA.JOIN_FETCH));
-	}
-	
-	public JoinFetch getJoinFetch() {
-		return this.joinFetch;
-	}
-	
-	@Override
-	protected void initialize() {
-		super.initialize();
-		this.joinFetch.initialize(this.resourcePersistentAttribute);
-	}
-	
-	@Override
-	protected void update() {
-		super.update();
-		this.joinFetch.update(this.resourcePersistentAttribute);
-	}
-	
-	@Override
-	public void validate(List<IMessage> messages, IReporter reporter, CompilationUnit astRoot) {
-		super.validate(messages, reporter, astRoot);
-		this.joinFetch.validate(messages, reporter, astRoot);
-	}
-}
diff --git a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/context/java/EclipseLinkJavaMappedSuperclassImpl.java b/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/context/java/EclipseLinkJavaMappedSuperclassImpl.java
deleted file mode 100644
index 5ae82ee..0000000
--- a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/context/java/EclipseLinkJavaMappedSuperclassImpl.java
+++ /dev/null
@@ -1,99 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008, 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.eclipselink.core.internal.context.java;
-
-import java.util.List;
-import org.eclipse.jdt.core.dom.CompilationUnit;
-import org.eclipse.jpt.core.context.java.JavaPersistentType;
-import org.eclipse.jpt.core.internal.context.java.AbstractJavaMappedSuperclass;
-import org.eclipse.jpt.core.resource.java.JavaResourcePersistentType;
-import org.eclipse.jpt.eclipselink.core.context.ChangeTracking;
-import org.eclipse.jpt.eclipselink.core.context.Customizer;
-import org.eclipse.jpt.eclipselink.core.context.ReadOnly;
-import org.eclipse.jpt.eclipselink.core.context.java.EclipseLinkJavaMappedSuperclass;
-import org.eclipse.jpt.eclipselink.core.context.java.JavaCaching;
-import org.eclipse.jpt.eclipselink.core.context.java.JavaConverterHolder;
-import org.eclipse.wst.validation.internal.provisional.core.IMessage;
-import org.eclipse.wst.validation.internal.provisional.core.IReporter;
-
-public class EclipseLinkJavaMappedSuperclassImpl extends AbstractJavaMappedSuperclass implements EclipseLinkJavaMappedSuperclass
-{
-	protected JavaCaching eclipseLinkCaching;
-	
-	protected final JavaConverterHolder converterHolder;
-	
-	protected final EclipseLinkJavaReadOnly readOnly;
-
-	protected final EclipseLinkJavaCustomizer customizer;
-
-	protected final EclipseLinkJavaChangeTracking changeTracking;
-
-	public EclipseLinkJavaMappedSuperclassImpl(JavaPersistentType parent) {
-		super(parent);
-		this.eclipseLinkCaching = new EclipseLinkJavaCaching(this);
-		this.converterHolder = new EclipseLinkJavaConverterHolder(this);
-		this.readOnly = new EclipseLinkJavaReadOnly(this);
-		this.customizer = new EclipseLinkJavaCustomizer(this);
-		this.changeTracking = new EclipseLinkJavaChangeTracking(this);
-	}
-	
-	public JavaCaching getCaching() {
-		return this.eclipseLinkCaching;
-	}
-	
-	public JavaConverterHolder getConverterHolder() {
-		return this.converterHolder;
-	}
-	
-	public ReadOnly getReadOnly() {
-		return this.readOnly;
-	}
-	
-	public Customizer getCustomizer() {
-		return this.customizer;
-	}
-	
-	public ChangeTracking getChangeTracking() {
-		return this.changeTracking;
-	}
-	
-	@Override
-	public void initialize(JavaResourcePersistentType jrpt) {
-		super.initialize(jrpt);
-		this.eclipseLinkCaching.initialize(jrpt);
-		this.converterHolder.initialize(jrpt);
-		this.readOnly.initialize(jrpt);
-		this.customizer.initialize(jrpt);
-		this.changeTracking.initialize(jrpt);
-	}
-	
-	@Override
-	public void update(JavaResourcePersistentType jrpt) {
-		super.update(jrpt);
-		this.eclipseLinkCaching.update(jrpt);
-		this.converterHolder.update(jrpt);
-		this.readOnly.update(jrpt);
-		this.customizer.update(jrpt);
-		this.changeTracking.update(jrpt);
-	}
-	
-	
-	//********** Validation ********************************************
-
-	@Override
-	public void validate(List<IMessage> messages, IReporter reporter, CompilationUnit astRoot) {
-		super.validate(messages, reporter, astRoot);
-		this.eclipseLinkCaching.validate(messages, reporter, astRoot);
-		this.converterHolder.validate(messages, reporter, astRoot);
-		this.readOnly.validate(messages, reporter, astRoot);
-		this.customizer.validate(messages, reporter, astRoot);
-		this.changeTracking.validate(messages, reporter, astRoot);
-	}
-}
diff --git a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/context/java/EclipseLinkJavaMutable.java b/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/context/java/EclipseLinkJavaMutable.java
deleted file mode 100644
index 1e8f2d1..0000000
--- a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/context/java/EclipseLinkJavaMutable.java
+++ /dev/null
@@ -1,145 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008, 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.eclipselink.core.internal.context.java;
-
-import org.eclipse.jdt.core.dom.CompilationUnit;
-import org.eclipse.jpt.core.context.java.JavaAttributeMapping;
-import org.eclipse.jpt.core.internal.context.java.AbstractJavaJpaContextNode;
-import org.eclipse.jpt.core.resource.java.JavaResourcePersistentAttribute;
-import org.eclipse.jpt.core.utility.TextRange;
-import org.eclipse.jpt.eclipselink.core.context.Mutable;
-import org.eclipse.jpt.eclipselink.core.internal.context.persistence.EclipseLinkPersistenceUnit;
-import org.eclipse.jpt.eclipselink.core.resource.java.MutableAnnotation;
-
-public class EclipseLinkJavaMutable extends AbstractJavaJpaContextNode implements Mutable
-{
-	protected boolean defaultMutable;
-	protected Boolean specifiedMutable;
-	
-	protected JavaResourcePersistentAttribute resourcePersistentAttribute;
-	
-	public EclipseLinkJavaMutable(JavaAttributeMapping parent) {
-		super(parent);
-	}
-
-	protected JavaAttributeMapping getAttributeMapping() {
-		return (JavaAttributeMapping) this.getParent();
-	}
-	
-	@Override
-	public EclipseLinkPersistenceUnit getPersistenceUnit() {
-		return (EclipseLinkPersistenceUnit) super.getPersistenceUnit();
-	}
-	
-	protected String getMutableAnnotationName() {
-		return MutableAnnotation.ANNOTATION_NAME;
-	}
-	
-	protected MutableAnnotation getResourceMutable() {
-		return (MutableAnnotation) this.resourcePersistentAttribute.getSupportingAnnotation(getMutableAnnotationName());
-	}
-	
-	protected void addResourceMutable() {
-		this.resourcePersistentAttribute.addSupportingAnnotation(getMutableAnnotationName());
-	}
-	
-	protected void removeResourceMutable() {
-		this.resourcePersistentAttribute.removeSupportingAnnotation(getMutableAnnotationName());
-	}
-
-	protected boolean calculateDefaultMutable() {
-		AbstractEclipseLinkJavaPersistentAttribute javaAttribute = (AbstractEclipseLinkJavaPersistentAttribute) this.getAttributeMapping().getPersistentAttribute();
-		if (javaAttribute.typeIsDateOrCalendar()) {
-			Boolean persistenceUnitDefaultMutable = this.getPersistenceUnit().getOptions().getTemporalMutable();
-			return persistenceUnitDefaultMutable == null ? false : persistenceUnitDefaultMutable.booleanValue();
-		}
-		return javaAttribute.typeIsSerializable();
-	}
-
-	public boolean isMutable() {
-		return this.specifiedMutable != null ? this.specifiedMutable.booleanValue() : this.defaultMutable; 
-	}
-	
-	public boolean isDefaultMutable() {
-		return this.defaultMutable;
-	}
-	
-	protected void setDefaultMutable(boolean newDefaultMutable) {
-		boolean oldDefaultMutable = this.defaultMutable;
-		this.defaultMutable = newDefaultMutable;
-		firePropertyChanged(DEFAULT_MUTABLE_PROPERTY, oldDefaultMutable, newDefaultMutable);
-	}
-	
-	public Boolean getSpecifiedMutable() {
-		return this.specifiedMutable;
-	}
-	
-	public void setSpecifiedMutable(Boolean newSpecifiedMutable) {
-		if (this.specifiedMutable == newSpecifiedMutable) {
-			return;
-		}
-		Boolean oldSpecifiedMutable = this.specifiedMutable;
-		this.specifiedMutable = newSpecifiedMutable;
-
-		if (newSpecifiedMutable != null) {
-			if (getResourceMutable() == null) {
-				addResourceMutable();
-			}
-			if (newSpecifiedMutable.booleanValue()) {
-				if (getResourceMutable().getValue() == Boolean.FALSE) {
-					getResourceMutable().setValue(null);
-				}
-			}
-			else {
-				getResourceMutable().setValue(Boolean.FALSE);
-			}
-		}
-		else {
-			removeResourceMutable();
-		}
-		firePropertyChanged(Mutable.SPECIFIED_MUTABLE_PROPERTY, oldSpecifiedMutable, newSpecifiedMutable);
-	}
-	
-	protected void setSpecifiedMutable_(Boolean newSpecifiedMutable) {
-		Boolean oldSpecifiedMutable = this.specifiedMutable;
-		this.specifiedMutable = newSpecifiedMutable;
-		firePropertyChanged(SPECIFIED_MUTABLE_PROPERTY, oldSpecifiedMutable, newSpecifiedMutable);
-	}
-	
-	public void initialize(JavaResourcePersistentAttribute jrpa) {
-		this.resourcePersistentAttribute = jrpa;
-		MutableAnnotation resourceMutable = this.getResourceMutable();
-		this.specifiedMutable = this.specifiedMutable(resourceMutable);
-		this.defaultMutable = this.calculateDefaultMutable();
-	}
-	
-	public void update(JavaResourcePersistentAttribute jrpa) {
-		this.resourcePersistentAttribute = jrpa;
-		MutableAnnotation resourceMutable = this.getResourceMutable();
-		this.setSpecifiedMutable_(this.specifiedMutable(resourceMutable));
-		this.setDefaultMutable(this.calculateDefaultMutable());
-	}
-	
-	private Boolean specifiedMutable(MutableAnnotation resourceMutable) {
-		if (resourceMutable == null) {
-			return null;
-		}
-		if (resourceMutable.getValue() == null) { //@Mutable is equivalent to @Mutable(true)
-			return Boolean.TRUE;
-		}
-		return resourceMutable.getValue();
-	}
-	
-	public TextRange getValidationTextRange(CompilationUnit astRoot) {
-		MutableAnnotation resourceMutable = this.getResourceMutable();
-		return resourceMutable == null ? null : resourceMutable.getTextRange(astRoot);
-	}
-
-}
diff --git a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/context/java/EclipseLinkJavaObjectTypeConverter.java b/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/context/java/EclipseLinkJavaObjectTypeConverter.java
deleted file mode 100644
index d653920..0000000
--- a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/context/java/EclipseLinkJavaObjectTypeConverter.java
+++ /dev/null
@@ -1,263 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008, 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.eclipselink.core.internal.context.java;
-
-import java.util.ArrayList;
-import java.util.Iterator;
-import java.util.List;
-import java.util.ListIterator;
-import org.eclipse.jdt.core.dom.CompilationUnit;
-import org.eclipse.jpt.core.context.java.JavaJpaContextNode;
-import org.eclipse.jpt.core.resource.java.JavaResourcePersistentMember;
-import org.eclipse.jpt.eclipselink.core.context.ConversionValue;
-import org.eclipse.jpt.eclipselink.core.context.EclipseLinkConverter;
-import org.eclipse.jpt.eclipselink.core.context.ObjectTypeConverter;
-import org.eclipse.jpt.eclipselink.core.resource.java.ConversionValueAnnotation;
-import org.eclipse.jpt.eclipselink.core.resource.java.ObjectTypeConverterAnnotation;
-import org.eclipse.jpt.utility.internal.CollectionTools;
-import org.eclipse.jpt.utility.internal.iterators.CloneListIterator;
-import org.eclipse.jpt.utility.internal.iterators.TransformationListIterator;
-import org.eclipse.wst.validation.internal.provisional.core.IMessage;
-import org.eclipse.wst.validation.internal.provisional.core.IReporter;
-
-public class EclipseLinkJavaObjectTypeConverter extends EclipseLinkJavaConverter
-	implements ObjectTypeConverter
-{	
-	private String dataType;
-	
-	private String objectType;
-	
-	private String defaultObjectValue;
-	
-	private final List<EclipseLinkJavaConversionValue> conversionValues;
-	
-	
-	public EclipseLinkJavaObjectTypeConverter(JavaJpaContextNode parent) {
-		super(parent);
-		this.conversionValues = new ArrayList<EclipseLinkJavaConversionValue>();
-	}
-	
-	
-	public String getType() {
-		return EclipseLinkConverter.OBJECT_TYPE_CONVERTER;
-	}
-
-	@Override
-	public String getAnnotationName() {
-		return ObjectTypeConverterAnnotation.ANNOTATION_NAME;
-	}
-	
-	@Override
-	protected ObjectTypeConverterAnnotation getAnnotation() {
-		return (ObjectTypeConverterAnnotation) super.getAnnotation();
-	}
-	
-	
-	// **************** data type **********************************************
-	
-	public String getDataType() {
-		return this.dataType;
-	}
-	
-	public void setDataType(String newDataType) {
-		String oldDataType = this.dataType;
-		this.dataType = newDataType;
-		getAnnotation().setDataType(newDataType);
-		firePropertyChanged(DATA_TYPE_PROPERTY, oldDataType, newDataType);
-	}
-	
-	protected void setDataType_(String newDataType) {
-		String oldDataType = this.dataType;
-		this.dataType = newDataType;
-		firePropertyChanged(DATA_TYPE_PROPERTY, oldDataType, newDataType);
-	}
-	
-	
-	// **************** object type ********************************************
-	
-	public String getObjectType() {
-		return this.objectType;
-	}
-	
-	public void setObjectType(String newObjectType) {
-		String oldObjectType = this.objectType;
-		this.objectType = newObjectType;
-		getAnnotation().setObjectType(newObjectType);
-		firePropertyChanged(OBJECT_TYPE_PROPERTY, oldObjectType, newObjectType);
-	}
-	
-	protected void setObjectType_(String newObjectType) {
-		String oldObjectType = this.objectType;
-		this.objectType = newObjectType;
-		firePropertyChanged(OBJECT_TYPE_PROPERTY, oldObjectType, newObjectType);
-	}
-	
-	
-	// **************** conversion values **************************************
-	
-	public ListIterator<EclipseLinkJavaConversionValue> conversionValues() {
-		return new CloneListIterator<EclipseLinkJavaConversionValue>(this.conversionValues);
-	}
-	
-	public int conversionValuesSize() {
-		return this.conversionValues.size();
-	}
-	
-	public EclipseLinkJavaConversionValue addConversionValue(int index) {
-		EclipseLinkJavaConversionValue conversionValue = new EclipseLinkJavaConversionValue(this);
-		this.conversionValues.add(index, conversionValue);
-		ConversionValueAnnotation resourceConversionValue = getAnnotation().addConversionValue(index);
-		conversionValue.initialize(resourceConversionValue);
-		fireItemAdded(CONVERSION_VALUES_LIST, index, conversionValue);
-		return conversionValue;
-	}
-	
-	public EclipseLinkJavaConversionValue addConversionValue() {
-		return this.addConversionValue(this.conversionValues.size());
-	}
-	
-	protected void addConversionValue(int index, EclipseLinkJavaConversionValue conversionValue) {
-		addItemToList(index, conversionValue, this.conversionValues, CONVERSION_VALUES_LIST);
-	}
-	
-	protected void addConversionValue(EclipseLinkJavaConversionValue conversionValue) {
-		this.addConversionValue(this.conversionValues.size(), conversionValue);
-	}
-	
-	public void removeConversionValue(ConversionValue conversionValue) {
-		this.removeConversionValue(this.conversionValues.indexOf(conversionValue));
-	}
-	
-	public void removeConversionValue(int index) {
-		EclipseLinkJavaConversionValue removedConversionValue = this.conversionValues.remove(index);
-		getAnnotation().removeConversionValue(index);
-		fireItemRemoved(CONVERSION_VALUES_LIST, index, removedConversionValue);
-	}
-	
-	protected void removeConversionValue_(EclipseLinkJavaConversionValue conversionValue) {
-		removeItemFromList(conversionValue, this.conversionValues, CONVERSION_VALUES_LIST);
-	}
-	
-	public void moveConversionValue(int targetIndex, int sourceIndex) {
-		CollectionTools.move(this.conversionValues, targetIndex, sourceIndex);
-		getAnnotation().moveConversionValue(targetIndex, sourceIndex);
-		fireItemMoved(CONVERSION_VALUES_LIST, targetIndex, sourceIndex);		
-	}
-	
-	public ListIterator<String> dataValues() {
-		return new TransformationListIterator<EclipseLinkJavaConversionValue, String>(conversionValues()) {
-			@Override
-			protected String transform(EclipseLinkJavaConversionValue next) {
-				return next.getDataValue();
-			}
-		};
-	}
-	
-	
-	// **************** default object value ***********************************
-	
-	public String getDefaultObjectValue() {
-		return this.defaultObjectValue;
-	}
-	
-	public void setDefaultObjectValue(String newDefaultObjectValue) {
-		String oldDefaultObjectValue = this.defaultObjectValue;
-		this.defaultObjectValue = newDefaultObjectValue;
-		getAnnotation().setDefaultObjectValue(newDefaultObjectValue);
-		firePropertyChanged(DEFAULT_OBJECT_VALUE_PROPERTY, oldDefaultObjectValue, newDefaultObjectValue);
-	}
-	
-	protected void setDefaultObjectValue_(String newDefaultObjectValue) {
-		String oldDefaultObjectValue = this.defaultObjectValue;
-		this.defaultObjectValue = newDefaultObjectValue;
-		firePropertyChanged(DEFAULT_OBJECT_VALUE_PROPERTY, oldDefaultObjectValue, newDefaultObjectValue);
-	}
-	
-	
-	// **************** resource interaction ***********************************
-	
-	@Override
-	protected void initialize(JavaResourcePersistentMember jrpm) {
-		super.initialize(jrpm);
-		ObjectTypeConverterAnnotation resourceConverter = getAnnotation();
-		this.dataType = this.dataType(resourceConverter);
-		this.objectType = this.objectType(resourceConverter);
-		this.defaultObjectValue = this.defaultObjectValue(resourceConverter);
-		this.initializeConversionValues(resourceConverter);
-	}
-	
-	protected void initializeConversionValues(ObjectTypeConverterAnnotation resourceConverter) {
-		if (resourceConverter == null) {
-			return;
-		}
-		ListIterator<ConversionValueAnnotation> resourceConversionValues = resourceConverter.conversionValues();
-		
-		while(resourceConversionValues.hasNext()) {
-			this.conversionValues.add(buildConversionValue(resourceConversionValues.next()));
-		}
-	}
-
-	protected EclipseLinkJavaConversionValue buildConversionValue(ConversionValueAnnotation resourceConversionValue) {
-		EclipseLinkJavaConversionValue conversionValue = new EclipseLinkJavaConversionValue(this);
-		conversionValue.initialize(resourceConversionValue);
-		return conversionValue;
-	}
-	
-	@Override
-	public void update(JavaResourcePersistentMember jrpm) {
-		super.update(jrpm);
-		ObjectTypeConverterAnnotation resourceConverter = getAnnotation();
-		this.setDataType_(this.dataType(resourceConverter));
-		this.setObjectType_(this.objectType(resourceConverter));
-		this.setDefaultObjectValue_(this.defaultObjectValue(resourceConverter));
-		this.updateConversionValues(resourceConverter);
-	}
-	
-	protected void updateConversionValues(ObjectTypeConverterAnnotation resourceConverter) {
-		ListIterator<EclipseLinkJavaConversionValue> contextConversionValues = conversionValues();
-		ListIterator<ConversionValueAnnotation> resourceConversionValues = resourceConverter.conversionValues();
-		while (contextConversionValues.hasNext()) {
-			EclipseLinkJavaConversionValue conversionValues = contextConversionValues.next();
-			if (resourceConversionValues.hasNext()) {
-				conversionValues.update(resourceConversionValues.next());
-			}
-			else {
-				removeConversionValue_(conversionValues);
-			}
-		}
-		
-		while (resourceConversionValues.hasNext()) {
-			addConversionValue(buildConversionValue(resourceConversionValues.next()));
-		}
-	}
-	
-	protected String dataType(ObjectTypeConverterAnnotation resourceConverter) {
-		return resourceConverter == null ? null : resourceConverter.getDataType();
-	}
-	
-	protected String objectType(ObjectTypeConverterAnnotation resourceConverter) {
-		return resourceConverter == null ? null : resourceConverter.getObjectType();
-	}
-	
-	protected String defaultObjectValue(ObjectTypeConverterAnnotation resourceConverter) {
-		return resourceConverter == null ? null : resourceConverter.getDefaultObjectValue();
-	}
-	
-	
-	// **************** validation *********************************************
-	
-	@Override
-	public void validate(List<IMessage> messages, IReporter reporter, CompilationUnit astRoot) {
-		super.validate(messages, reporter, astRoot);
-		for (Iterator<EclipseLinkJavaConversionValue> stream = conversionValues(); stream.hasNext();) {
-			stream.next().validate(messages, reporter, astRoot);
-		}
-	}
-}
diff --git a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/context/java/EclipseLinkJavaOneToManyMapping.java b/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/context/java/EclipseLinkJavaOneToManyMapping.java
deleted file mode 100644
index 1f4743b..0000000
--- a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/context/java/EclipseLinkJavaOneToManyMapping.java
+++ /dev/null
@@ -1,119 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008, 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.eclipselink.core.internal.context.java;
-
-import java.util.Iterator;
-import java.util.List;
-import org.eclipse.jdt.core.dom.CompilationUnit;
-import org.eclipse.jpt.core.context.java.JavaPersistentAttribute;
-import org.eclipse.jpt.core.context.java.JavaRelationshipReference;
-import org.eclipse.jpt.core.internal.context.java.GenericJavaOneToManyMapping;
-import org.eclipse.jpt.eclipselink.core.context.EclipseLinkOneToManyMapping;
-import org.eclipse.jpt.eclipselink.core.context.JoinFetch;
-import org.eclipse.jpt.eclipselink.core.context.PrivateOwned;
-import org.eclipse.jpt.eclipselink.core.resource.java.EclipseLinkJPA;
-import org.eclipse.jpt.eclipselink.core.resource.java.PrivateOwnedAnnotation;
-import org.eclipse.jpt.utility.internal.iterators.ArrayIterator;
-import org.eclipse.jpt.utility.internal.iterators.CompositeIterator;
-import org.eclipse.wst.validation.internal.provisional.core.IMessage;
-import org.eclipse.wst.validation.internal.provisional.core.IReporter;
-
-public class EclipseLinkJavaOneToManyMapping
-	extends GenericJavaOneToManyMapping
-	implements EclipseLinkOneToManyMapping
-{
-	protected final EclipseLinkJavaJoinFetch joinFetch;
-	
-	protected final EclipseLinkJavaPrivateOwned privateOwned;
-	
-	
-	public EclipseLinkJavaOneToManyMapping(JavaPersistentAttribute parent) {
-		super(parent);
-		this.joinFetch = new EclipseLinkJavaJoinFetch(this);
-		this.privateOwned = new EclipseLinkJavaPrivateOwned(this);
-	}
-	
-	
-	@Override
-	protected JavaRelationshipReference buildRelationshipReference() {
-		return new EclipseLinkJavaOneToManyRelationshipReference(this);
-	}
-	
-	@Override
-	public Iterator<String> supportingAnnotationNames() {
-		return new CompositeIterator<String>(
-			super.supportingAnnotationNames(),
-			new ArrayIterator<String>(
-				EclipseLinkJPA.JOIN_FETCH,
-				EclipseLinkJPA.PRIVATE_OWNED));
-	}
-	
-	@Override
-	public EclipseLinkJavaOneToManyRelationshipReference getRelationshipReference() {
-		return (EclipseLinkJavaOneToManyRelationshipReference) super.getRelationshipReference();
-	}
-	
-	
-	// **************** private owned ******************************************
-	
-	public PrivateOwned getPrivateOwned() {
-		return this.privateOwned;
-	}
-	
-	protected String getPrivateOwnedAnnotationName() {
-		return PrivateOwnedAnnotation.ANNOTATION_NAME;
-	}
-	
-	protected PrivateOwnedAnnotation getResourcePrivateOwned() {
-		return (PrivateOwnedAnnotation) this.resourcePersistentAttribute.getSupportingAnnotation(getPrivateOwnedAnnotationName());
-	}
-	
-	protected void addResourcePrivateOwned() {
-		this.resourcePersistentAttribute.addSupportingAnnotation(getPrivateOwnedAnnotationName());
-	}
-	
-	protected void removeResourcePrivateOwned() {
-		this.resourcePersistentAttribute.removeSupportingAnnotation(getPrivateOwnedAnnotationName());
-	}
-	
-	
-	// **************** join fetch *********************************************
-	
-	public JoinFetch getJoinFetch() {
-		return this.joinFetch;
-	}
-	
-	
-	// **************** resource -> context ************************************
-	
-	@Override
-	protected void initialize() {
-		super.initialize();
-		this.joinFetch.initialize(this.resourcePersistentAttribute);
-		this.privateOwned.initialize(this.resourcePersistentAttribute);
-	}
-	
-	@Override
-	protected void update() {
-		super.update();
-		this.joinFetch.update(this.resourcePersistentAttribute);
-		this.privateOwned.update(this.resourcePersistentAttribute);
-	}
-	
-	
-	// **************** validation *********************************************
-	
-	@Override
-	public void validate(List<IMessage> messages, IReporter reporter, CompilationUnit astRoot) {
-		super.validate(messages, reporter, astRoot);
-		this.joinFetch.validate(messages, reporter, astRoot);
-		this.privateOwned.validate(messages, reporter, astRoot);
-	}
-}
diff --git a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/context/java/EclipseLinkJavaOneToManyMappingProvider.java b/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/context/java/EclipseLinkJavaOneToManyMappingProvider.java
deleted file mode 100644
index 00be8b2..0000000
--- a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/context/java/EclipseLinkJavaOneToManyMappingProvider.java
+++ /dev/null
@@ -1,56 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008, 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.eclipselink.core.internal.context.java;
-
-import org.eclipse.jpt.core.JpaFactory;
-import org.eclipse.jpt.core.context.java.DefaultJavaAttributeMappingProvider;
-import org.eclipse.jpt.core.context.java.JavaAttributeMapping;
-import org.eclipse.jpt.core.context.java.JavaPersistentAttribute;
-import org.eclipse.jpt.core.internal.context.java.JavaOneToManyMappingProvider;
-
-public class EclipseLinkJavaOneToManyMappingProvider
-	implements DefaultJavaAttributeMappingProvider
-{
-
-	// singleton
-	private static final EclipseLinkJavaOneToManyMappingProvider INSTANCE = new EclipseLinkJavaOneToManyMappingProvider();
-
-	/**
-	 * Return the singleton.
-	 */
-	public static DefaultJavaAttributeMappingProvider instance() {
-		return INSTANCE;
-	}
-
-	/**
-	 * Ensure single instance.
-	 */
-	private EclipseLinkJavaOneToManyMappingProvider() {
-		super();
-	}
-
-	public String getKey() {
-		return JavaOneToManyMappingProvider.instance().getKey();
-	}
-	
-	public String getAnnotationName() {
-		return JavaOneToManyMappingProvider.instance().getAnnotationName();
-	}
-
-	public JavaAttributeMapping buildMapping(JavaPersistentAttribute parent, JpaFactory factory) {
-		return JavaOneToManyMappingProvider.instance().buildMapping(parent, factory);
-	}
-	
-	public boolean defaultApplies(JavaPersistentAttribute persistentAttribute) {
-		String targetEntity = persistentAttribute.getMultiReferenceEntityTypeName();
-		return (targetEntity != null) 
-				&& (persistentAttribute.getPersistenceUnit().getEntity(targetEntity) != null);
-	}
-}
diff --git a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/context/java/EclipseLinkJavaOneToManyRelationshipReference.java b/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/context/java/EclipseLinkJavaOneToManyRelationshipReference.java
deleted file mode 100644
index 80a79e5..0000000
--- a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/context/java/EclipseLinkJavaOneToManyRelationshipReference.java
+++ /dev/null
@@ -1,155 +0,0 @@
-/*******************************************************************************
- *  Copyright (c) 2009  Oracle. 
- *  All rights reserved.  This program and the accompanying materials are 
- *  made available under the terms of the Eclipse Public License v1.0 which 
- *  accompanies this distribution, and is available at 
- *  http://www.eclipse.org/legal/epl-v10.html
- *  
- *  Contributors: 
- *  	Oracle - initial API and implementation
- *******************************************************************************/
-package org.eclipse.jpt.eclipselink.core.internal.context.java;
-
-import java.util.Iterator;
-import java.util.List;
-import org.eclipse.jdt.core.dom.CompilationUnit;
-import org.eclipse.jpt.core.MappingKeys;
-import org.eclipse.jpt.core.context.AttributeMapping;
-import org.eclipse.jpt.core.context.JoiningStrategy;
-import org.eclipse.jpt.core.context.java.JavaJoinColumnEnabledRelationshipReference;
-import org.eclipse.jpt.core.context.java.JavaJoinColumnJoiningStrategy;
-import org.eclipse.jpt.core.internal.context.java.GenericJavaJoinColumnJoiningStrategy;
-import org.eclipse.jpt.core.internal.context.java.GenericJavaOneToManyRelationshipReference;
-import org.eclipse.jpt.eclipselink.core.context.EclipseLinkOneToManyRelationshipReference;
-import org.eclipse.jpt.utility.Filter;
-import org.eclipse.wst.validation.internal.provisional.core.IMessage;
-import org.eclipse.wst.validation.internal.provisional.core.IReporter;
-
-public class EclipseLinkJavaOneToManyRelationshipReference
-	extends GenericJavaOneToManyRelationshipReference
-	implements EclipseLinkOneToManyRelationshipReference,
-		JavaJoinColumnEnabledRelationshipReference
-{
-	protected final JavaJoinColumnJoiningStrategy joinColumnJoiningStrategy;
-	
-	
-	public EclipseLinkJavaOneToManyRelationshipReference(
-			EclipseLinkJavaOneToManyMapping parent) {
-		super(parent);
-		this.joinColumnJoiningStrategy = buildJoinColumnJoiningStrategy();
-	}
-	
-	
-	protected JavaJoinColumnJoiningStrategy buildJoinColumnJoiningStrategy() {
-		return new GenericJavaJoinColumnJoiningStrategy(this);
-	}
-	
-	@Override
-	public EclipseLinkJavaOneToManyMapping getRelationshipMapping() {
-		return (EclipseLinkJavaOneToManyMapping) getParent();
-	}
-	
-	
-	@Override
-	protected JoiningStrategy calculatePredominantJoiningStrategy() {
-		if (this.mappedByJoiningStrategy.getMappedByAttribute() != null) {
-			return this.mappedByJoiningStrategy;
-		}
-		else if (this.joinColumnJoiningStrategy.hasSpecifiedJoinColumns()) {
-			return this.joinColumnJoiningStrategy;
-		}
-		else {
-			return this.joinTableJoiningStrategy;
-		}
-	}
-	
-	@Override
-	public Iterator<String> javaCompletionProposals(int pos, Filter<String> filter, CompilationUnit astRoot) {
-		Iterator<String> result = super.javaCompletionProposals(pos, filter, astRoot);
-		if (result == null) {
-			result = this.joinColumnJoiningStrategy.javaCompletionProposals(pos, filter, astRoot);
-		}
-		return result;
-	}
-	
-	
-	// **************** mapped by **********************************************
-	
-	@Override
-	public void setMappedByJoiningStrategy() {
-		super.setMappedByJoiningStrategy();
-		this.joinColumnJoiningStrategy.removeStrategy();
-	}
-	
-	@Override
-	public boolean mayBeMappedBy(AttributeMapping mappedByMapping) {
-		return super.mayBeMappedBy(mappedByMapping) ||
-			mappedByMapping.getKey() == MappingKeys.ONE_TO_ONE_ATTRIBUTE_MAPPING_KEY;
-	}
-	
-	
-	// **************** join table *********************************************
-	
-	@Override
-	public void setJoinTableJoiningStrategy() {
-		super.setJoinTableJoiningStrategy();
-		this.joinColumnJoiningStrategy.removeStrategy();
-	}
-	
-	@Override
-	public boolean mayHaveDefaultJoinTable() {
-		return super.mayHaveDefaultJoinTable()
-			&& ! this.joinColumnJoiningStrategy.hasSpecifiedJoinColumns();
-	}
-	
-	
-	// **************** join columns *******************************************
-	
-	public JavaJoinColumnJoiningStrategy getJoinColumnJoiningStrategy() {
-		return this.joinColumnJoiningStrategy;
-	}
-	
-	public boolean usesJoinColumnJoiningStrategy() {
-		return getPredominantJoiningStrategy() == this.joinColumnJoiningStrategy;
-	}
-	
-	public void setJoinColumnJoiningStrategy() {
-		this.joinColumnJoiningStrategy.addStrategy();
-		this.mappedByJoiningStrategy.removeStrategy();
-		this.joinTableJoiningStrategy.removeStrategy();
-	}
-	
-	public void unsetJoinColumnJoiningStrategy() {
-		this.joinColumnJoiningStrategy.removeStrategy();
-	}
-	
-	public boolean mayHaveDefaultJoinColumn() {
-		return this.mappedByJoiningStrategy.getMappedByAttribute() == null 
-			&& this.joinTableJoiningStrategy.getJoinTable() == null;
-	}
-	
-	
-	
-	// **************** resource => context ************************************
-	
-	@Override
-	protected void initializeJoiningStrategies() {
-		this.joinColumnJoiningStrategy.initialize();
-		super.initializeJoiningStrategies();
-	}
-	
-	@Override
-	protected void updateJoiningStrategies() {
-		this.joinColumnJoiningStrategy.update();
-		super.updateJoiningStrategies();
-	}
-	
-	
-	// **************** Validation *********************************************
-	
-	@Override
-	public void validate(List<IMessage> messages, IReporter reporter, CompilationUnit astRoot) {
-		super.validate(messages, reporter, astRoot);
-		this.joinColumnJoiningStrategy.validate(messages, reporter, astRoot);
-	}
-}
diff --git a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/context/java/EclipseLinkJavaOneToOneMappingImpl.java b/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/context/java/EclipseLinkJavaOneToOneMappingImpl.java
deleted file mode 100644
index 7a1becd..0000000
--- a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/context/java/EclipseLinkJavaOneToOneMappingImpl.java
+++ /dev/null
@@ -1,78 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008, 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.eclipselink.core.internal.context.java;
-
-import java.util.Iterator;
-import java.util.List;
-import org.eclipse.jdt.core.dom.CompilationUnit;
-import org.eclipse.jpt.core.context.java.JavaPersistentAttribute;
-import org.eclipse.jpt.core.internal.context.java.GenericJavaOneToOneMapping;
-import org.eclipse.jpt.eclipselink.core.context.EclipseLinkOneToOneMapping;
-import org.eclipse.jpt.eclipselink.core.context.JoinFetch;
-import org.eclipse.jpt.eclipselink.core.context.PrivateOwned;
-import org.eclipse.jpt.eclipselink.core.resource.java.EclipseLinkJPA;
-import org.eclipse.jpt.utility.internal.iterators.ArrayIterator;
-import org.eclipse.jpt.utility.internal.iterators.CompositeIterator;
-import org.eclipse.wst.validation.internal.provisional.core.IMessage;
-import org.eclipse.wst.validation.internal.provisional.core.IReporter;
-
-public class EclipseLinkJavaOneToOneMappingImpl
-	extends GenericJavaOneToOneMapping
-	implements EclipseLinkOneToOneMapping
-{
-	protected final EclipseLinkJavaJoinFetch joinFetch;
-	
-	protected final EclipseLinkJavaPrivateOwned privateOwned;
-	
-	
-	public EclipseLinkJavaOneToOneMappingImpl(JavaPersistentAttribute parent) {
-		super(parent);
-		this.joinFetch = new EclipseLinkJavaJoinFetch(this);
-		this.privateOwned = new EclipseLinkJavaPrivateOwned(this);
-	}
-	
-	
-	@Override
-	public Iterator<String> supportingAnnotationNames() {
-		return new CompositeIterator<String>(
-			super.supportingAnnotationNames(),
-			new ArrayIterator<String>(
-				EclipseLinkJPA.JOIN_FETCH));
-	}
-	
-	public JoinFetch getJoinFetch() {
-		return this.joinFetch;
-	}
-
-	public PrivateOwned getPrivateOwned() {
-		return this.privateOwned;
-	}
-	
-	@Override
-	protected void initialize() {
-		super.initialize();
-		this.joinFetch.initialize(this.resourcePersistentAttribute);
-		this.privateOwned.initialize(this.resourcePersistentAttribute);
-	}
-	
-	@Override
-	protected void update() {
-		super.update();
-		this.joinFetch.update(this.resourcePersistentAttribute);
-		this.privateOwned.update(this.resourcePersistentAttribute);
-	}
-	
-	@Override
-	public void validate(List<IMessage> messages, IReporter reporter, CompilationUnit astRoot) {
-		super.validate(messages, reporter, astRoot);
-		this.joinFetch.validate(messages, reporter, astRoot);
-		this.privateOwned.validate(messages, reporter, astRoot);
-	}
-}
diff --git a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/context/java/EclipseLinkJavaOneToOneMappingProvider.java b/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/context/java/EclipseLinkJavaOneToOneMappingProvider.java
deleted file mode 100644
index aa90205..0000000
--- a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/context/java/EclipseLinkJavaOneToOneMappingProvider.java
+++ /dev/null
@@ -1,56 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008, 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.eclipselink.core.internal.context.java;
-
-import org.eclipse.jpt.core.JpaFactory;
-import org.eclipse.jpt.core.context.java.DefaultJavaAttributeMappingProvider;
-import org.eclipse.jpt.core.context.java.JavaAttributeMapping;
-import org.eclipse.jpt.core.context.java.JavaPersistentAttribute;
-import org.eclipse.jpt.core.internal.context.java.JavaOneToOneMappingProvider;
-
-public class EclipseLinkJavaOneToOneMappingProvider
-	implements DefaultJavaAttributeMappingProvider
-{
-
-	// singleton
-	private static final EclipseLinkJavaOneToOneMappingProvider INSTANCE = new EclipseLinkJavaOneToOneMappingProvider();
-
-	/**
-	 * Return the singleton.
-	 */
-	public static DefaultJavaAttributeMappingProvider instance() {
-		return INSTANCE;
-	}
-
-	/**
-	 * Ensure single instance.
-	 */
-	private EclipseLinkJavaOneToOneMappingProvider() {
-		super();
-	}
-
-	public String getKey() {
-		return JavaOneToOneMappingProvider.instance().getKey();
-	}
-	
-	public String getAnnotationName() {
-		return JavaOneToOneMappingProvider.instance().getAnnotationName();
-	}
-
-	public JavaAttributeMapping buildMapping(JavaPersistentAttribute parent, JpaFactory factory) {
-		return JavaOneToOneMappingProvider.instance().buildMapping(parent, factory);
-	}
-	
-	public boolean defaultApplies(JavaPersistentAttribute persistentAttribute) {
-		String targetEntity = persistentAttribute.getSingleReferenceEntityTypeName();
-		return (targetEntity != null)
-				&& (persistentAttribute.getPersistenceUnit().getEntity(targetEntity) != null);
-	}
-}
diff --git a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/context/java/EclipseLinkJavaPersistentAttribute.java b/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/context/java/EclipseLinkJavaPersistentAttribute.java
deleted file mode 100644
index 5346355..0000000
--- a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/context/java/EclipseLinkJavaPersistentAttribute.java
+++ /dev/null
@@ -1,38 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.eclipselink.core.internal.context.java;
-
-import org.eclipse.jpt.core.context.AccessType;
-import org.eclipse.jpt.core.context.PersistentType;
-import org.eclipse.jpt.core.resource.java.JavaResourcePersistentAttribute;
-
-/**
- * EclipseLink Java persistent attribute
- */
-public class EclipseLinkJavaPersistentAttribute
-	extends AbstractEclipseLinkJavaPersistentAttribute
-{
-	public EclipseLinkJavaPersistentAttribute(PersistentType parent, JavaResourcePersistentAttribute jrpa) {
-		super(parent, jrpa);
-	}
-
-
-	// ********** AccessHolder implementation **********
-
-	public AccessType getSpecifiedAccess() {
-		return null;
-	}
-
-	public void setSpecifiedAccess(AccessType specifiedAccess) {
-		throw new UnsupportedOperationException();
-	}
-
-
-}
diff --git a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/context/java/EclipseLinkJavaPrivateOwned.java b/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/context/java/EclipseLinkJavaPrivateOwned.java
deleted file mode 100644
index 98cf3ec..0000000
--- a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/context/java/EclipseLinkJavaPrivateOwned.java
+++ /dev/null
@@ -1,94 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.eclipselink.core.internal.context.java;
-
-import org.eclipse.jdt.core.dom.CompilationUnit;
-import org.eclipse.jpt.core.context.java.JavaAttributeMapping;
-import org.eclipse.jpt.core.internal.context.java.AbstractJavaJpaContextNode;
-import org.eclipse.jpt.core.resource.java.JavaResourcePersistentAttribute;
-import org.eclipse.jpt.core.utility.TextRange;
-import org.eclipse.jpt.eclipselink.core.context.PrivateOwned;
-import org.eclipse.jpt.eclipselink.core.resource.java.PrivateOwnedAnnotation;
-
-public class EclipseLinkJavaPrivateOwned extends AbstractJavaJpaContextNode implements PrivateOwned
-{
-	protected boolean privateOwned;
-	
-	protected JavaResourcePersistentAttribute resourcePersistentAttribute;
-	
-	public EclipseLinkJavaPrivateOwned(JavaAttributeMapping parent) {
-		super(parent);
-	}
-	
-	protected String getPrivateOwnedAnnotationName() {
-		return PrivateOwnedAnnotation.ANNOTATION_NAME;
-	}
-	
-	protected PrivateOwnedAnnotation getResourcePrivateOwned() {
-		return (PrivateOwnedAnnotation) this.resourcePersistentAttribute.getSupportingAnnotation(getPrivateOwnedAnnotationName());
-	}
-	
-	protected void addResourcePrivateOwned() {
-		this.resourcePersistentAttribute.addSupportingAnnotation(getPrivateOwnedAnnotationName());
-	}
-	
-	protected void removeResourcePrivateOwned() {
-		this.resourcePersistentAttribute.removeSupportingAnnotation(getPrivateOwnedAnnotationName());
-	}
-
-	public boolean isPrivateOwned() {
-		return this.privateOwned;
-	}
-	
-	public void setPrivateOwned(boolean newPrivateOwned) {
-		if (this.privateOwned == newPrivateOwned) {
-			return;
-		}
-		boolean oldPrivateOwned = this.privateOwned;
-		this.privateOwned = newPrivateOwned;
-
-		if (newPrivateOwned) {
-			addResourcePrivateOwned();
-		}
-		else {
-			//have to check if annotation exists in case the change is from false to null or vice versa
-			if (getResourcePrivateOwned() != null) {
-				removeResourcePrivateOwned();
-			}
-		}
-		firePropertyChanged(PRIVATE_OWNED_PROPERTY, oldPrivateOwned, newPrivateOwned);
-	}
-	
-	protected void setPrivateOwned_(boolean newPrivateOwned) {
-		boolean oldPrivateOwned = this.privateOwned;
-		this.privateOwned = newPrivateOwned;
-		firePropertyChanged(PRIVATE_OWNED_PROPERTY, oldPrivateOwned, newPrivateOwned);
-	}
-	
-	public void initialize(JavaResourcePersistentAttribute jrpa) {
-		this.resourcePersistentAttribute = jrpa;
-		this.privateOwned = privateOwned();
-	}
-	
-	public void update(JavaResourcePersistentAttribute jrpa) {
-		this.resourcePersistentAttribute = jrpa;
-		this.setPrivateOwned_(privateOwned());
-	}
-	
-	private boolean privateOwned() {
-		return getResourcePrivateOwned() != null;
-	}
-	
-	public TextRange getValidationTextRange(CompilationUnit astRoot) {
-		PrivateOwnedAnnotation resourcePrivateOwned = this.getResourcePrivateOwned();
-		return resourcePrivateOwned == null ? null : resourcePrivateOwned.getTextRange(astRoot);
-	}
-
-}
diff --git a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/context/java/EclipseLinkJavaReadOnly.java b/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/context/java/EclipseLinkJavaReadOnly.java
deleted file mode 100644
index f7caedd..0000000
--- a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/context/java/EclipseLinkJavaReadOnly.java
+++ /dev/null
@@ -1,103 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.eclipselink.core.internal.context.java;
-
-import org.eclipse.jdt.core.dom.CompilationUnit;
-import org.eclipse.jpt.core.context.java.JavaTypeMapping;
-import org.eclipse.jpt.core.internal.context.java.AbstractJavaJpaContextNode;
-import org.eclipse.jpt.core.resource.java.JavaResourcePersistentType;
-import org.eclipse.jpt.core.utility.TextRange;
-import org.eclipse.jpt.eclipselink.core.context.ReadOnly;
-import org.eclipse.jpt.eclipselink.core.resource.java.ReadOnlyAnnotation;
-
-public class EclipseLinkJavaReadOnly extends AbstractJavaJpaContextNode implements ReadOnly
-{
-	protected Boolean specifiedReadOnly;
-	
-	protected JavaResourcePersistentType resourcePersistentType;
-	
-	
-	public EclipseLinkJavaReadOnly(JavaTypeMapping parent) {
-		super(parent);
-	}
-	
-	
-	protected String getReadOnlyAnnotationName() {
-		return ReadOnlyAnnotation.ANNOTATION_NAME;
-	}
-	
-	protected ReadOnlyAnnotation getResourceReadOnly() {
-		return (ReadOnlyAnnotation) this.resourcePersistentType.getSupportingAnnotation(getReadOnlyAnnotationName());
-	}
-	
-	protected void addResourceReadOnly() {
-		this.resourcePersistentType.addSupportingAnnotation(getReadOnlyAnnotationName());
-	}
-	
-	protected void removeResourceReadOnly() {
-		this.resourcePersistentType.removeSupportingAnnotation(getReadOnlyAnnotationName());
-	}
-
-	public boolean isReadOnly() {
-		return (this.getSpecifiedReadOnly() != null) ? this.getSpecifiedReadOnly().booleanValue() : this.isDefaultReadOnly();
-	}
-	
-	public boolean isDefaultReadOnly() {
-		return ReadOnly.DEFAULT_READ_ONLY;
-	}
-	
-	public Boolean getSpecifiedReadOnly() {
-		return this.specifiedReadOnly;
-	}
-	
-	public void setSpecifiedReadOnly(Boolean newReadOnly) {
-		if (this.specifiedReadOnly == newReadOnly) {
-			return;
-		}
-		Boolean oldReadOnly = this.specifiedReadOnly;
-		this.specifiedReadOnly = newReadOnly;
-
-		if (newReadOnly != null && newReadOnly.booleanValue()) {
-			addResourceReadOnly();
-		}
-		else {
-			//have to check if annotation exists in case the change is from false to null or vice versa
-			if (getResourceReadOnly() != null) {
-				removeResourceReadOnly();
-			}
-		}
-		firePropertyChanged(SPECIFIED_READ_ONLY_PROPERTY, oldReadOnly, newReadOnly);
-	}
-	
-	protected void setSpecifiedReadOnly_(Boolean newReadOnly) {
-		Boolean oldReadOnly = this.specifiedReadOnly;
-		this.specifiedReadOnly = newReadOnly;
-		firePropertyChanged(SPECIFIED_READ_ONLY_PROPERTY, oldReadOnly, newReadOnly);
-	}
-	
-	public void initialize(JavaResourcePersistentType jrpt) {
-		this.resourcePersistentType = jrpt;
-		this.specifiedReadOnly = readOnly();
-	}
-	
-	public void update(JavaResourcePersistentType jrpt) {
-		this.resourcePersistentType = jrpt;
-		this.setSpecifiedReadOnly_(readOnly());
-	}
-	
-	private Boolean readOnly() {
-		return getResourceReadOnly() == null ? null : Boolean.TRUE;
-	}
-	
-	public TextRange getValidationTextRange(CompilationUnit astRoot) {
-		ReadOnlyAnnotation resourceReadOnly = this.getResourceReadOnly();
-		return resourceReadOnly == null ? null : resourceReadOnly.getTextRange(astRoot);
-	}
-}
diff --git a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/context/java/EclipseLinkJavaStructConverter.java b/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/context/java/EclipseLinkJavaStructConverter.java
deleted file mode 100644
index 61de8f1..0000000
--- a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/context/java/EclipseLinkJavaStructConverter.java
+++ /dev/null
@@ -1,81 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008, 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.eclipselink.core.internal.context.java;
-
-import org.eclipse.jpt.core.context.java.JavaJpaContextNode;
-import org.eclipse.jpt.core.resource.java.JavaResourcePersistentMember;
-import org.eclipse.jpt.eclipselink.core.context.EclipseLinkConverter;
-import org.eclipse.jpt.eclipselink.core.context.StructConverter;
-import org.eclipse.jpt.eclipselink.core.resource.java.StructConverterAnnotation;
-
-public class EclipseLinkJavaStructConverter extends EclipseLinkJavaConverter
-	implements StructConverter
-{	
-	private String converterClass;
-	
-	
-	public EclipseLinkJavaStructConverter(JavaJpaContextNode parent) {
-		super(parent);
-	}
-	
-	
-	public String getType() {
-		return EclipseLinkConverter.STRUCT_CONVERTER;
-	}
-	
-	@Override
-	public String getAnnotationName() {
-		return StructConverterAnnotation.ANNOTATION_NAME;
-	}
-	
-	@Override
-	protected StructConverterAnnotation getAnnotation() {
-		return (StructConverterAnnotation) super.getAnnotation();
-	}
-	
-	
-	// **************** converter class ****************************************
-	
-	public String getConverterClass() {
-		return this.converterClass;
-	}
-	
-	public void setConverterClass(String newConverterClass) {
-		String oldConverterClass = this.converterClass;
-		this.converterClass = newConverterClass;
-		getAnnotation().setConverter(newConverterClass);
-		firePropertyChanged(CONVERTER_CLASS_PROPERTY, oldConverterClass, newConverterClass);
-	}
-	
-	protected void setConverterClass_(String newConverterClass) {
-		String oldConverterClass = this.converterClass;
-		this.converterClass = newConverterClass;
-		firePropertyChanged(CONVERTER_CLASS_PROPERTY, oldConverterClass, newConverterClass);
-	}
-	
-	
-	// **************** resource interaction ***********************************
-	
-	@Override
-	protected void initialize(JavaResourcePersistentMember jrpm) {
-		super.initialize(jrpm);
-		this.converterClass = this.converterClass(getAnnotation());
-	}
-	
-	@Override
-	public void update(JavaResourcePersistentMember jrpm) {
-		super.update(jrpm);
-		this.setConverterClass_(this.converterClass(getAnnotation()));
-	}
-	
-	protected String converterClass(StructConverterAnnotation resourceConverter) {
-		return resourceConverter == null ? null : resourceConverter.getConverter();
-	}
-}
diff --git a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/context/java/EclipseLinkJavaTypeConverter.java b/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/context/java/EclipseLinkJavaTypeConverter.java
deleted file mode 100644
index fecadc7..0000000
--- a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/context/java/EclipseLinkJavaTypeConverter.java
+++ /dev/null
@@ -1,110 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008, 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.eclipselink.core.internal.context.java;
-
-import org.eclipse.jpt.core.context.java.JavaJpaContextNode;
-import org.eclipse.jpt.core.resource.java.JavaResourcePersistentMember;
-import org.eclipse.jpt.eclipselink.core.context.EclipseLinkConverter;
-import org.eclipse.jpt.eclipselink.core.context.TypeConverter;
-import org.eclipse.jpt.eclipselink.core.resource.java.TypeConverterAnnotation;
-
-public class EclipseLinkJavaTypeConverter extends EclipseLinkJavaConverter
-	implements TypeConverter
-{	
-	private String dataType;
-	
-	private String objectType;
-	
-	
-	public EclipseLinkJavaTypeConverter(JavaJpaContextNode parent) {
-		super(parent);
-	}
-	
-	public String getType() {
-		return EclipseLinkConverter.TYPE_CONVERTER;
-	}
-	
-	@Override
-	public String getAnnotationName() {
-		return TypeConverterAnnotation.ANNOTATION_NAME;
-	}
-	
-	@Override
-	protected TypeConverterAnnotation getAnnotation() {
-		return (TypeConverterAnnotation) super.getAnnotation();
-	}
-	
-	
-	// **************** data type **********************************************
-	
-	public String getDataType() {
-		return this.dataType;
-	}
-	
-	public void setDataType(String newDataType) {
-		String oldDataType = this.dataType;
-		this.dataType = newDataType;
-		getAnnotation().setDataType(newDataType);
-		firePropertyChanged(DATA_TYPE_PROPERTY, oldDataType, newDataType);
-	}
-	
-	protected void setDataType_(String newDataType) {
-		String oldDataType = this.dataType;
-		this.dataType = newDataType;
-		firePropertyChanged(DATA_TYPE_PROPERTY, oldDataType, newDataType);
-	}
-	
-	
-	// **************** object type ********************************************
-	
-	public String getObjectType() {
-		return this.objectType;
-	}
-	
-	public void setObjectType(String newObjectType) {
-		String oldObjectType = this.objectType;
-		this.objectType = newObjectType;
-		getAnnotation().setObjectType(newObjectType);
-		firePropertyChanged(OBJECT_TYPE_PROPERTY, oldObjectType, newObjectType);
-	}
-	
-	protected void setObjectType_(String newObjectType) {
-		String oldObjectType = this.objectType;
-		this.objectType = newObjectType;
-		firePropertyChanged(OBJECT_TYPE_PROPERTY, oldObjectType, newObjectType);
-	}
-	
-	
-	// **************** resource interaction ***********************************
-	
-	@Override
-	protected void initialize(JavaResourcePersistentMember jrpm) {
-		super.initialize(jrpm);
-		TypeConverterAnnotation resourceConverter = getAnnotation();
-		this.dataType = this.dataType(resourceConverter);
-		this.objectType = this.objectType(resourceConverter);
-	}
-	
-	@Override
-	public void update(JavaResourcePersistentMember jrpm) {
-		super.update(jrpm);
-		TypeConverterAnnotation resourceConverter = getAnnotation();
-		this.setDataType_(this.dataType(resourceConverter));
-		this.setObjectType_(this.objectType(resourceConverter));
-	}
-	
-	protected String dataType(TypeConverterAnnotation resourceConverter) {
-		return resourceConverter == null ? null : resourceConverter.getDataType();
-	}
-	
-	protected String objectType(TypeConverterAnnotation resourceConverter) {
-		return resourceConverter == null ? null : resourceConverter.getObjectType();
-	}
-}
diff --git a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/context/java/EclipseLinkJavaVersionMappingImpl.java b/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/context/java/EclipseLinkJavaVersionMappingImpl.java
deleted file mode 100644
index dd25921..0000000
--- a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/context/java/EclipseLinkJavaVersionMappingImpl.java
+++ /dev/null
@@ -1,106 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008, 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.eclipselink.core.internal.context.java;
-
-import java.util.Iterator;
-import java.util.List;
-import org.eclipse.jdt.core.dom.CompilationUnit;
-import org.eclipse.jpt.core.context.java.JavaConverter;
-import org.eclipse.jpt.core.context.java.JavaPersistentAttribute;
-import org.eclipse.jpt.core.internal.context.java.GenericJavaVersionMapping;
-import org.eclipse.jpt.eclipselink.core.context.Convert;
-import org.eclipse.jpt.eclipselink.core.context.EclipseLinkVersionMapping;
-import org.eclipse.jpt.eclipselink.core.context.Mutable;
-import org.eclipse.jpt.eclipselink.core.resource.java.ConvertAnnotation;
-import org.eclipse.jpt.utility.Filter;
-import org.eclipse.wst.validation.internal.provisional.core.IMessage;
-import org.eclipse.wst.validation.internal.provisional.core.IReporter;
-
-public class EclipseLinkJavaVersionMappingImpl
-	extends GenericJavaVersionMapping
-	implements EclipseLinkVersionMapping
-{
-	protected final EclipseLinkJavaMutable mutable;
-	
-	public EclipseLinkJavaVersionMappingImpl(JavaPersistentAttribute parent) {
-		super(parent);
-		this.mutable = new EclipseLinkJavaMutable(this);
-	}
-
-	@Override
-	protected JavaConverter buildSpecifiedConverter(String converterType) {
-		JavaConverter javaConverter = super.buildSpecifiedConverter(converterType);
-		if (javaConverter != null) {
-			return javaConverter;
-		}
-		if (converterType == Convert.ECLIPSE_LINK_CONVERTER) {
-			return new EclipseLinkJavaConvert(this, this.resourcePersistentAttribute);
-		}
-		return null;
-	}
-	
-	@Override
-	protected String getResourceConverterType() {
-		//check @Convert first, this is the order that EclipseLink searches
-		if (this.resourcePersistentAttribute.getSupportingAnnotation(ConvertAnnotation.ANNOTATION_NAME) != null) {
-			return Convert.ECLIPSE_LINK_CONVERTER;
-		}
-		return super.getResourceConverterType();
-	}
-	
-	
-	
-	//************ EclipselinkVersionMapping implementation ****************
-	
-	public Mutable getMutable() {
-		return this.mutable;
-	}
-	
-	
-	//************ initialization/update ****************
-
-	@Override
-	protected void initialize() {
-		super.initialize();
-		this.mutable.initialize(this.resourcePersistentAttribute);
-	}
-	
-	@Override
-	protected void update() {
-		super.update();
-		this.mutable.update(this.resourcePersistentAttribute);
-	}
-	
-	// ********** code assist **********
-
-	@Override
-	public Iterator<String> javaCompletionProposals(int pos, Filter<String> filter, CompilationUnit astRoot) {
-		Iterator<String> result = super.javaCompletionProposals(pos, filter, astRoot);
-		if (result != null) {
-			return result;
-		}
-		if (getConverter() != null) {
-			result = getConverter().javaCompletionProposals(pos, filter, astRoot);
-			if (result != null) {
-				return result;
-			}
-		}
-		return null;
-	}
-	
-	//************ validation ****************
-	
-	@Override
-	public void validate(List<IMessage> messages, IReporter reporter, CompilationUnit astRoot) {
-		super.validate(messages, reporter, astRoot);
-		this.mutable.validate(messages, reporter, astRoot);
-	}
-	
-}
diff --git a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/context/java/JavaBasicCollectionMapping.java b/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/context/java/JavaBasicCollectionMapping.java
deleted file mode 100644
index b0a3324..0000000
--- a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/context/java/JavaBasicCollectionMapping.java
+++ /dev/null
@@ -1,40 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008, 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.eclipselink.core.internal.context.java;
-
-import java.util.Iterator;
-import org.eclipse.jpt.core.context.java.JavaPersistentAttribute;
-import org.eclipse.jpt.core.internal.context.java.AbstractJavaAttributeMapping;
-import org.eclipse.jpt.eclipselink.core.EclipseLinkMappingKeys;
-import org.eclipse.jpt.eclipselink.core.context.BasicCollectionMapping;
-import org.eclipse.jpt.eclipselink.core.resource.java.BasicCollectionAnnotation;
-import org.eclipse.jpt.utility.internal.iterators.EmptyIterator;
-
-public class JavaBasicCollectionMapping
-	extends AbstractJavaAttributeMapping<BasicCollectionAnnotation>
-	implements BasicCollectionMapping
-{
-	
-	public JavaBasicCollectionMapping(JavaPersistentAttribute parent) {
-		super(parent);
-	}
-	
-	public String getKey() {
-		return EclipseLinkMappingKeys.BASIC_COLLECTION_ATTRIBUTE_MAPPING_KEY;
-	}
-	
-	public String getAnnotationName() {
-		return BasicCollectionAnnotation.ANNOTATION_NAME;
-	}
-	
-	public Iterator<String> supportingAnnotationNames() {
-		return EmptyIterator.instance();
-	}
-}
diff --git a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/context/java/JavaBasicCollectionMappingProvider.java b/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/context/java/JavaBasicCollectionMappingProvider.java
deleted file mode 100644
index b2c084c..0000000
--- a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/context/java/JavaBasicCollectionMappingProvider.java
+++ /dev/null
@@ -1,52 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.eclipselink.core.internal.context.java;
-
-import org.eclipse.jpt.core.JpaFactory;
-import org.eclipse.jpt.core.context.java.JavaAttributeMapping;
-import org.eclipse.jpt.core.context.java.JavaAttributeMappingProvider;
-import org.eclipse.jpt.core.context.java.JavaPersistentAttribute;
-import org.eclipse.jpt.eclipselink.core.EclipseLinkMappingKeys;
-import org.eclipse.jpt.eclipselink.core.internal.EclipseLinkJpaFactory;
-import org.eclipse.jpt.eclipselink.core.resource.java.BasicCollectionAnnotation;
-
-public class JavaBasicCollectionMappingProvider
-	implements JavaAttributeMappingProvider
-{
-
-	// singleton
-	private static final JavaBasicCollectionMappingProvider INSTANCE = new JavaBasicCollectionMappingProvider();
-
-	/**
-	 * Return the singleton.
-	 */
-	public static JavaAttributeMappingProvider instance() {
-		return INSTANCE;
-	}
-
-	/**
-	 * Ensure single instance.
-	 */
-	private JavaBasicCollectionMappingProvider() {
-		super();
-	}
-
-	public String getKey() {
-		return EclipseLinkMappingKeys.BASIC_COLLECTION_ATTRIBUTE_MAPPING_KEY;
-	}
-	
-	public String getAnnotationName() {
-		return BasicCollectionAnnotation.ANNOTATION_NAME;
-	}
-
-	public JavaAttributeMapping buildMapping(JavaPersistentAttribute parent, JpaFactory factory) {
-		return ((EclipseLinkJpaFactory) factory).buildJavaBasicCollectionMapping(parent);
-	}
-}
diff --git a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/context/java/JavaBasicMapMapping.java b/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/context/java/JavaBasicMapMapping.java
deleted file mode 100644
index 733a95b..0000000
--- a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/context/java/JavaBasicMapMapping.java
+++ /dev/null
@@ -1,40 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008, 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.eclipselink.core.internal.context.java;
-
-import java.util.Iterator;
-import org.eclipse.jpt.core.context.java.JavaPersistentAttribute;
-import org.eclipse.jpt.core.internal.context.java.AbstractJavaAttributeMapping;
-import org.eclipse.jpt.eclipselink.core.EclipseLinkMappingKeys;
-import org.eclipse.jpt.eclipselink.core.context.BasicMapMapping;
-import org.eclipse.jpt.eclipselink.core.resource.java.BasicMapAnnotation;
-import org.eclipse.jpt.utility.internal.iterators.EmptyIterator;
-
-public class JavaBasicMapMapping
-	extends AbstractJavaAttributeMapping<BasicMapAnnotation>
-	implements BasicMapMapping
-{
-	
-	public JavaBasicMapMapping(JavaPersistentAttribute parent) {
-		super(parent);
-	}
-	
-	public String getKey() {
-		return EclipseLinkMappingKeys.BASIC_MAP_ATTRIBUTE_MAPPING_KEY;
-	}
-	
-	public String getAnnotationName() {
-		return BasicMapAnnotation.ANNOTATION_NAME;
-	}
-	
-	public Iterator<String> supportingAnnotationNames() {
-		return EmptyIterator.instance();
-	}
-}
diff --git a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/context/java/JavaBasicMapMappingProvider.java b/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/context/java/JavaBasicMapMappingProvider.java
deleted file mode 100644
index 7c1eada..0000000
--- a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/context/java/JavaBasicMapMappingProvider.java
+++ /dev/null
@@ -1,52 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.eclipselink.core.internal.context.java;
-
-import org.eclipse.jpt.core.JpaFactory;
-import org.eclipse.jpt.core.context.java.JavaAttributeMapping;
-import org.eclipse.jpt.core.context.java.JavaAttributeMappingProvider;
-import org.eclipse.jpt.core.context.java.JavaPersistentAttribute;
-import org.eclipse.jpt.eclipselink.core.EclipseLinkMappingKeys;
-import org.eclipse.jpt.eclipselink.core.internal.EclipseLinkJpaFactory;
-import org.eclipse.jpt.eclipselink.core.resource.java.BasicMapAnnotation;
-
-public class JavaBasicMapMappingProvider
-	implements JavaAttributeMappingProvider
-{
-
-	// singleton
-	private static final JavaBasicMapMappingProvider INSTANCE = new JavaBasicMapMappingProvider();
-
-	/**
-	 * Return the singleton.
-	 */
-	public static JavaAttributeMappingProvider instance() {
-		return INSTANCE;
-	}
-
-	/**
-	 * Ensure single instance.
-	 */
-	private JavaBasicMapMappingProvider() {
-		super();
-	}
-
-	public String getKey() {
-		return EclipseLinkMappingKeys.BASIC_MAP_ATTRIBUTE_MAPPING_KEY;
-	}
-	
-	public String getAnnotationName() {
-		return BasicMapAnnotation.ANNOTATION_NAME;
-	}
-
-	public JavaAttributeMapping buildMapping(JavaPersistentAttribute parent, JpaFactory factory) {
-		return ((EclipseLinkJpaFactory) factory).buildJavaBasicMapMapping(parent);
-	}
-}
diff --git a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/context/java/JavaTransformationMapping.java b/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/context/java/JavaTransformationMapping.java
deleted file mode 100644
index 4e120cc..0000000
--- a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/context/java/JavaTransformationMapping.java
+++ /dev/null
@@ -1,40 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008, 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.eclipselink.core.internal.context.java;
-
-import java.util.Iterator;
-import org.eclipse.jpt.core.context.java.JavaPersistentAttribute;
-import org.eclipse.jpt.core.internal.context.java.AbstractJavaAttributeMapping;
-import org.eclipse.jpt.eclipselink.core.EclipseLinkMappingKeys;
-import org.eclipse.jpt.eclipselink.core.context.TransformationMapping;
-import org.eclipse.jpt.eclipselink.core.resource.java.TransformationAnnotation;
-import org.eclipse.jpt.utility.internal.iterators.EmptyIterator;
-
-public class JavaTransformationMapping 
-	extends AbstractJavaAttributeMapping<TransformationAnnotation> 
-	implements TransformationMapping
-{
-	
-	public JavaTransformationMapping(JavaPersistentAttribute parent) {
-		super(parent);
-	}
-	
-	public String getKey() {
-		return EclipseLinkMappingKeys.TRANSFORMATION_ATTRIBUTE_MAPPING_KEY;
-	}
-	
-	public String getAnnotationName() {
-		return TransformationAnnotation.ANNOTATION_NAME;
-	}
-	
-	public Iterator<String> supportingAnnotationNames() {
-		return EmptyIterator.instance();
-	}
-}
diff --git a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/context/java/JavaTransformationMappingProvider.java b/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/context/java/JavaTransformationMappingProvider.java
deleted file mode 100644
index ea3f9ee..0000000
--- a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/context/java/JavaTransformationMappingProvider.java
+++ /dev/null
@@ -1,52 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.eclipselink.core.internal.context.java;
-
-import org.eclipse.jpt.core.JpaFactory;
-import org.eclipse.jpt.core.context.java.JavaAttributeMapping;
-import org.eclipse.jpt.core.context.java.JavaAttributeMappingProvider;
-import org.eclipse.jpt.core.context.java.JavaPersistentAttribute;
-import org.eclipse.jpt.eclipselink.core.EclipseLinkMappingKeys;
-import org.eclipse.jpt.eclipselink.core.internal.EclipseLinkJpaFactory;
-import org.eclipse.jpt.eclipselink.core.resource.java.TransformationAnnotation;
-
-public class JavaTransformationMappingProvider
-	implements JavaAttributeMappingProvider
-{
-
-	// singleton
-	private static final JavaTransformationMappingProvider INSTANCE = new JavaTransformationMappingProvider();
-
-	/**
-	 * Return the singleton.
-	 */
-	public static JavaAttributeMappingProvider instance() {
-		return INSTANCE;
-	}
-
-	/**
-	 * Ensure single instance.
-	 */
-	private JavaTransformationMappingProvider() {
-		super();
-	}
-
-	public String getKey() {
-		return EclipseLinkMappingKeys.TRANSFORMATION_ATTRIBUTE_MAPPING_KEY;
-	}
-	
-	public String getAnnotationName() {
-		return TransformationAnnotation.ANNOTATION_NAME;
-	}
-
-	public JavaAttributeMapping buildMapping(JavaPersistentAttribute parent, JpaFactory factory) {
-		return ((EclipseLinkJpaFactory) factory).buildJavaTransformationMapping(parent);
-	}
-}
diff --git a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/context/java/JavaVariableOneToOneMapping.java b/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/context/java/JavaVariableOneToOneMapping.java
deleted file mode 100644
index 99e3c2a..0000000
--- a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/context/java/JavaVariableOneToOneMapping.java
+++ /dev/null
@@ -1,40 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.eclipselink.core.internal.context.java;
-
-import java.util.Iterator;
-import org.eclipse.jpt.core.context.java.JavaPersistentAttribute;
-import org.eclipse.jpt.core.internal.context.java.AbstractJavaAttributeMapping;
-import org.eclipse.jpt.eclipselink.core.EclipseLinkMappingKeys;
-import org.eclipse.jpt.eclipselink.core.context.VariableOneToOneMapping;
-import org.eclipse.jpt.eclipselink.core.resource.java.VariableOneToOneAnnotation;
-import org.eclipse.jpt.utility.internal.iterators.EmptyIterator;
-
-public class JavaVariableOneToOneMapping 
-	extends AbstractJavaAttributeMapping<VariableOneToOneAnnotation>
-	implements VariableOneToOneMapping
-{
-	
-	public JavaVariableOneToOneMapping(JavaPersistentAttribute parent) {
-		super(parent);
-	}
-	
-	public String getKey() {
-		return EclipseLinkMappingKeys.VARIABLE_ONE_TO_ONE_ATTRIBUTE_MAPPING_KEY;
-	}
-	
-	public String getAnnotationName() {
-		return VariableOneToOneAnnotation.ANNOTATION_NAME;
-	}
-	
-	public Iterator<String> supportingAnnotationNames() {
-		return EmptyIterator.instance();
-	}
-}
diff --git a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/context/java/JavaVariableOneToOneMappingProvider.java b/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/context/java/JavaVariableOneToOneMappingProvider.java
deleted file mode 100644
index cef1cf1..0000000
--- a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/context/java/JavaVariableOneToOneMappingProvider.java
+++ /dev/null
@@ -1,57 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.eclipselink.core.internal.context.java;
-
-import org.eclipse.jpt.core.JpaFactory;
-import org.eclipse.jpt.core.context.java.DefaultJavaAttributeMappingProvider;
-import org.eclipse.jpt.core.context.java.JavaAttributeMapping;
-import org.eclipse.jpt.core.context.java.JavaPersistentAttribute;
-import org.eclipse.jpt.eclipselink.core.EclipseLinkMappingKeys;
-import org.eclipse.jpt.eclipselink.core.internal.EclipseLinkJpaFactory;
-import org.eclipse.jpt.eclipselink.core.resource.java.VariableOneToOneAnnotation;
-
-public class JavaVariableOneToOneMappingProvider
-	implements DefaultJavaAttributeMappingProvider
-{
-
-	// singleton
-	private static final JavaVariableOneToOneMappingProvider INSTANCE = new JavaVariableOneToOneMappingProvider();
-
-	/**
-	 * Return the singleton.
-	 */
-	public static DefaultJavaAttributeMappingProvider instance() {
-		return INSTANCE;
-	}
-
-	/**
-	 * Ensure single instance.
-	 */
-	private JavaVariableOneToOneMappingProvider() {
-		super();
-	}
-
-	public String getKey() {
-		return EclipseLinkMappingKeys.VARIABLE_ONE_TO_ONE_ATTRIBUTE_MAPPING_KEY;
-	}
-	
-	public String getAnnotationName() {
-		return VariableOneToOneAnnotation.ANNOTATION_NAME;
-	}
-
-	public JavaAttributeMapping buildMapping(JavaPersistentAttribute parent, JpaFactory factory) {
-		return ((EclipseLinkJpaFactory) factory).buildJavaVariableOneToOneMapping(parent);
-	}
-	
-	public boolean defaultApplies(JavaPersistentAttribute persistentAttribute) {
-		return ((AbstractEclipseLinkJavaPersistentAttribute) persistentAttribute).typeIsValidForVariableOneToOne();
-	}
-
-}
diff --git a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/context/orm/ConverterHolder.java b/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/context/orm/ConverterHolder.java
deleted file mode 100644
index df9283d..0000000
--- a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/context/orm/ConverterHolder.java
+++ /dev/null
@@ -1,164 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008, 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.eclipselink.core.internal.context.orm;
-
-import java.util.ListIterator;
-import org.eclipse.jpt.core.context.JpaContextNode;
-import org.eclipse.jpt.eclipselink.core.context.CustomConverter;
-import org.eclipse.jpt.eclipselink.core.context.ObjectTypeConverter;
-import org.eclipse.jpt.eclipselink.core.context.StructConverter;
-import org.eclipse.jpt.eclipselink.core.context.TypeConverter;
-
-public interface ConverterHolder extends JpaContextNode
-{
-	//************ customConverters *********************
-	
-	/**
-	 * Return a list iterator of the custom converters.
-	 * This will not be null.
-	 */
-	<T extends CustomConverter> ListIterator<T> customConverters();
-
-	/**
-	 * Return the number of custom converters.
-	 */
-	int customConvertersSize();
-
-	/**
-	 * Add a custom converter to the converter holder, return the object representing it.
-	 */
-	CustomConverter addCustomConverter(int index);
-
-	/**
-	 * Remove the custom converter at the index from the converter holder.
-	 */
-	void removeCustomConverter(int index);
-
-	/**
-	 * Remove the custom converter at from the converter holder.
-	 */
-	void removeCustomConverter(CustomConverter converter);
-
-	/**
-	 * Move the custom converter from the source index to the target index.
-	 */
-	void moveCustomConverter(int targetIndex, int sourceIndex);
-
-	String CUSTOM_CONVERTERS_LIST = "customConverters"; //$NON-NLS-1$
-
-	
-	//************ object type converters *********************
-
-	/**
-	 * Return a list iterator of the object type converters.
-	 * This will not be null.
-	 */
-	<T extends ObjectTypeConverter> ListIterator<T> objectTypeConverters();
-
-	/**
-	 * Return the number of object type converters.
-	 */
-	int objectTypeConvertersSize();
-
-	/**
-	 * Add a object type converter to the converter holder, return the object representing it.
-	 */
-	ObjectTypeConverter addObjectTypeConverter(int index);
-
-	/**
-	 * Remove the object type converter at the index from the converter holder.
-	 */
-	void removeObjectTypeConverter(int index);
-
-	/**
-	 * Remove the object type converter at from the converter holder.
-	 */
-	void removeObjectTypeConverter(ObjectTypeConverter converter);
-
-	/**
-	 * Move the object type converter from the source index to the target index.
-	 */
-	void moveObjectTypeConverter(int targetIndex, int sourceIndex);
-
-	String OBJECT_TYPE_CONVERTERS_LIST = "objectTypeConverters"; //$NON-NLS-1$
-	
-	
-	//************ struct converters *********************
-
-	/**
-	 * Return a list iterator of the struct converters.
-	 * This will not be null.
-	 */
-	<T extends StructConverter> ListIterator<T> structConverters();
-
-	/**
-	 * Return the number of struct converters.
-	 */
-	int structConvertersSize();
-
-	/**
-	 * Add a struct converter to the converter holder, return the object representing it.
-	 */
-	StructConverter addStructConverter(int index);
-
-	/**
-	 * Remove the struct converter at the index from the converter holder.
-	 */
-	void removeStructConverter(int index);
-
-	/**
-	 * Remove the struct converter at from the converter holder.
-	 */
-	void removeStructConverter(StructConverter converter);
-
-	/**
-	 * Move the struct converter from the source index to the target index.
-	 */
-	void moveStructConverter(int targetIndex, int sourceIndex);
-
-	String STRUCT_CONVERTERS_LIST = "structConverters"; //$NON-NLS-1$
-
-	
-	//************ type converters *********************
-
-	/**
-	 * Return a list iterator of the type converters.
-	 * This will not be null.
-	 */
-	<T extends TypeConverter> ListIterator<T> typeConverters();
-
-	/**
-	 * Return the number of type converters.
-	 */
-	int typeConvertersSize();
-
-	/**
-	 * Add a type converter to the converter holder, return the object representing it.
-	 */
-	TypeConverter addTypeConverter(int index);
-
-	/**
-	 * Remove the type converter at the index from the converter holder.
-	 */
-	void removeTypeConverter(int index);
-
-	/**
-	 * Remove the type converter at from the converter holder.
-	 */
-	void removeTypeConverter(TypeConverter converter);
-
-	/**
-	 * Move the type converter from the source index to the target index.
-	 */
-	void moveTypeConverter(int targetIndex, int sourceIndex);
-
-	String TYPE_CONVERTERS_LIST = "typeConverters"; //$NON-NLS-1$
-
-}
\ No newline at end of file
diff --git a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/context/orm/EclipseLink1_1EntityMappingsImpl.java b/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/context/orm/EclipseLink1_1EntityMappingsImpl.java
deleted file mode 100644
index 9dc17bd..0000000
--- a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/context/orm/EclipseLink1_1EntityMappingsImpl.java
+++ /dev/null
@@ -1,43 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008, 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.eclipselink.core.internal.context.orm;
-
-import org.eclipse.jpt.core.context.orm.OrmPersistentType;
-import org.eclipse.jpt.core.resource.orm.XmlTypeMapping;
-import org.eclipse.jpt.eclipselink.core.internal.EclipseLink1_1JpaFactory;
-import org.eclipse.jpt.eclipselink1_1.core.resource.orm.XmlEntityMappings;
-
-public class EclipseLink1_1EntityMappingsImpl
-	extends EclipseLinkEntityMappingsImpl
-{
-	
-	public EclipseLink1_1EntityMappingsImpl(EclipseLink1_1OrmXml parent, XmlEntityMappings xmlEntityMapping) {
-		super(parent, xmlEntityMapping);
-	}
-	
-	@Override
-	protected OrmPersistentType buildPersistentType(XmlTypeMapping resourceMapping) {
-		return getJpaFactory().buildEclipseLink1_1OrmPersistentType(this, resourceMapping);
-	}
-	
-	// **************** JpaNode impl *******************************************
-	
-	@Override
-	protected EclipseLink1_1JpaFactory getJpaFactory() {
-		return (EclipseLink1_1JpaFactory) super.getJpaFactory();
-	}
-	
-	@Override
-	public EclipseLink1_1OrmXml getParent() {
-		return (EclipseLink1_1OrmXml) super.getParent();
-	}	
-	
-
-}
diff --git a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/context/orm/EclipseLink1_1OrmBasicCollectionMappingProvider.java b/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/context/orm/EclipseLink1_1OrmBasicCollectionMappingProvider.java
deleted file mode 100644
index 001d61e..0000000
--- a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/context/orm/EclipseLink1_1OrmBasicCollectionMappingProvider.java
+++ /dev/null
@@ -1,67 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008, 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.eclipselink.core.internal.context.orm;
-
-import org.eclipse.core.runtime.content.IContentType;
-import org.eclipse.jpt.core.JpaFactory;
-import org.eclipse.jpt.core.context.java.JavaAttributeMapping;
-import org.eclipse.jpt.core.context.orm.OrmAttributeMapping;
-import org.eclipse.jpt.core.context.orm.OrmAttributeMappingProvider;
-import org.eclipse.jpt.core.context.orm.OrmPersistentAttribute;
-import org.eclipse.jpt.core.context.orm.OrmTypeMapping;
-import org.eclipse.jpt.core.resource.orm.XmlAttributeMapping;
-import org.eclipse.jpt.eclipselink.core.EclipseLinkMappingKeys;
-import org.eclipse.jpt.eclipselink.core.internal.EclipseLink1_1JpaFactory;
-import org.eclipse.jpt.eclipselink.core.internal.JptEclipseLinkCorePlugin;
-import org.eclipse.jpt.eclipselink.core.internal.context.java.JavaBasicCollectionMapping;
-import org.eclipse.jpt.eclipselink.core.resource.orm.XmlBasicCollection;
-import org.eclipse.jpt.eclipselink1_1.core.resource.orm.EclipseLink1_1OrmFactory;
-
-public class EclipseLink1_1OrmBasicCollectionMappingProvider
-	implements OrmAttributeMappingProvider
-{
-
-	// singleton
-	private static final EclipseLink1_1OrmBasicCollectionMappingProvider INSTANCE = new EclipseLink1_1OrmBasicCollectionMappingProvider();
-
-	/**
-	 * Return the singleton.
-	 */
-	public static OrmAttributeMappingProvider instance() {
-		return INSTANCE;
-	}
-
-	/**
-	 * Ensure single instance.
-	 */
-	private EclipseLink1_1OrmBasicCollectionMappingProvider() {
-		super();
-	}
-	
-	public IContentType getContentType() {
-		return JptEclipseLinkCorePlugin.ECLIPSELINK1_1_ORM_XML_CONTENT_TYPE;
-	}
-	
-	public String getKey() {
-		return EclipseLinkMappingKeys.BASIC_COLLECTION_ATTRIBUTE_MAPPING_KEY;
-	}
-	
-	public XmlAttributeMapping buildResourceMapping() {
-		return EclipseLink1_1OrmFactory.eINSTANCE.createXmlBasicCollectionImpl();
-	}
-
-	public OrmAttributeMapping buildMapping(OrmPersistentAttribute parent, XmlAttributeMapping resourceMapping, JpaFactory factory) {
-		return ((EclipseLink1_1JpaFactory) factory).buildEclipseLink1_1OrmBasicCollectionMapping(parent, (XmlBasicCollection) resourceMapping);
-	}
-	
-	public XmlAttributeMapping buildVirtualResourceMapping(OrmTypeMapping ormTypeMapping, JavaAttributeMapping javaAttributeMapping, JpaFactory factory) {
-		return ((EclipseLink1_1JpaFactory) factory).buildEclipseLink1_1VirtualXmlBasicCollection(ormTypeMapping, (JavaBasicCollectionMapping) javaAttributeMapping);
-	}
-}
diff --git a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/context/orm/EclipseLink1_1OrmBasicMapMappingProvider.java b/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/context/orm/EclipseLink1_1OrmBasicMapMappingProvider.java
deleted file mode 100644
index fb01ed2..0000000
--- a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/context/orm/EclipseLink1_1OrmBasicMapMappingProvider.java
+++ /dev/null
@@ -1,67 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008, 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.eclipselink.core.internal.context.orm;
-
-import org.eclipse.core.runtime.content.IContentType;
-import org.eclipse.jpt.core.JpaFactory;
-import org.eclipse.jpt.core.context.java.JavaAttributeMapping;
-import org.eclipse.jpt.core.context.orm.OrmAttributeMapping;
-import org.eclipse.jpt.core.context.orm.OrmAttributeMappingProvider;
-import org.eclipse.jpt.core.context.orm.OrmPersistentAttribute;
-import org.eclipse.jpt.core.context.orm.OrmTypeMapping;
-import org.eclipse.jpt.core.resource.orm.XmlAttributeMapping;
-import org.eclipse.jpt.eclipselink.core.EclipseLinkMappingKeys;
-import org.eclipse.jpt.eclipselink.core.internal.EclipseLink1_1JpaFactory;
-import org.eclipse.jpt.eclipselink.core.internal.JptEclipseLinkCorePlugin;
-import org.eclipse.jpt.eclipselink.core.internal.context.java.JavaBasicMapMapping;
-import org.eclipse.jpt.eclipselink.core.resource.orm.XmlBasicMap;
-import org.eclipse.jpt.eclipselink1_1.core.resource.orm.EclipseLink1_1OrmFactory;
-
-public class EclipseLink1_1OrmBasicMapMappingProvider
-	implements OrmAttributeMappingProvider
-{
-
-	// singleton
-	private static final EclipseLink1_1OrmBasicMapMappingProvider INSTANCE = new EclipseLink1_1OrmBasicMapMappingProvider();
-
-	/**
-	 * Return the singleton.
-	 */
-	public static OrmAttributeMappingProvider instance() {
-		return INSTANCE;
-	}
-
-	/**
-	 * Ensure single instance.
-	 */
-	private EclipseLink1_1OrmBasicMapMappingProvider() {
-		super();
-	}
-	
-	public IContentType getContentType() {
-		return JptEclipseLinkCorePlugin.ECLIPSELINK1_1_ORM_XML_CONTENT_TYPE;
-	}
-
-	public String getKey() {
-		return EclipseLinkMappingKeys.BASIC_MAP_ATTRIBUTE_MAPPING_KEY;
-	}
-	
-	public XmlAttributeMapping buildResourceMapping() {
-		return EclipseLink1_1OrmFactory.eINSTANCE.createXmlBasicMapImpl();
-	}
-
-	public OrmAttributeMapping buildMapping(OrmPersistentAttribute parent, XmlAttributeMapping resourceMapping, JpaFactory factory) {
-		return ((EclipseLink1_1JpaFactory) factory).buildEclipseLink1_1OrmBasicMapMapping(parent, (XmlBasicMap) resourceMapping);
-	}
-	
-	public XmlAttributeMapping buildVirtualResourceMapping(OrmTypeMapping ormTypeMapping, JavaAttributeMapping javaAttributeMapping, JpaFactory factory) {
-		return ((EclipseLink1_1JpaFactory) factory).buildEclipseLink1_1VirtualXmlBasicMap(ormTypeMapping, (JavaBasicMapMapping) javaAttributeMapping);
-	}
-}
diff --git a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/context/orm/EclipseLink1_1OrmBasicMappingProvider.java b/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/context/orm/EclipseLink1_1OrmBasicMappingProvider.java
deleted file mode 100644
index 1433516..0000000
--- a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/context/orm/EclipseLink1_1OrmBasicMappingProvider.java
+++ /dev/null
@@ -1,67 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008, 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.eclipselink.core.internal.context.orm;
-
-import org.eclipse.core.runtime.content.IContentType;
-import org.eclipse.jpt.core.JpaFactory;
-import org.eclipse.jpt.core.MappingKeys;
-import org.eclipse.jpt.core.context.java.JavaAttributeMapping;
-import org.eclipse.jpt.core.context.java.JavaBasicMapping;
-import org.eclipse.jpt.core.context.orm.OrmAttributeMapping;
-import org.eclipse.jpt.core.context.orm.OrmAttributeMappingProvider;
-import org.eclipse.jpt.core.context.orm.OrmPersistentAttribute;
-import org.eclipse.jpt.core.context.orm.OrmTypeMapping;
-import org.eclipse.jpt.core.resource.orm.XmlAttributeMapping;
-import org.eclipse.jpt.eclipselink.core.internal.EclipseLink1_1JpaFactory;
-import org.eclipse.jpt.eclipselink.core.internal.JptEclipseLinkCorePlugin;
-import org.eclipse.jpt.eclipselink.core.resource.orm.XmlBasic;
-import org.eclipse.jpt.eclipselink1_1.core.resource.orm.EclipseLink1_1OrmFactory;
-
-public class EclipseLink1_1OrmBasicMappingProvider
-	implements OrmAttributeMappingProvider
-{
-	// singleton
-	private static final OrmAttributeMappingProvider INSTANCE = new EclipseLink1_1OrmBasicMappingProvider();
-
-	/**
-	 * Return the singleton.
-	 */
-	public static OrmAttributeMappingProvider instance() {
-		return INSTANCE;
-	}
-
-	/**
-	 * Ensure single instance.
-	 */
-	private EclipseLink1_1OrmBasicMappingProvider() {
-		super();
-	}
-
-	public IContentType getContentType() {
-		return JptEclipseLinkCorePlugin.ECLIPSELINK1_1_ORM_XML_CONTENT_TYPE;
-	}
-
-	public String getKey() {
-		return MappingKeys.BASIC_ATTRIBUTE_MAPPING_KEY;
-	}
-	
-	public XmlAttributeMapping buildResourceMapping() {
-		return EclipseLink1_1OrmFactory.eINSTANCE.createXmlBasicImpl();
-	}
-	
-	public OrmAttributeMapping buildMapping(OrmPersistentAttribute parent, XmlAttributeMapping resourceMapping, JpaFactory factory) {
-		return ((EclipseLink1_1JpaFactory) factory).buildEclipseLink1_1OrmBasicMapping(parent, (XmlBasic) resourceMapping);
-	}
-
-	public XmlAttributeMapping buildVirtualResourceMapping(OrmTypeMapping ormTypeMapping, JavaAttributeMapping javaAttributeMapping, JpaFactory factory) {
-		return ((EclipseLink1_1JpaFactory) factory).buildEclipseLink1_1VirtualXmlBasic(ormTypeMapping, (JavaBasicMapping) javaAttributeMapping);
-	}
-
-}
diff --git a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/context/orm/EclipseLink1_1OrmEmbeddedIdMappingProvider.java b/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/context/orm/EclipseLink1_1OrmEmbeddedIdMappingProvider.java
deleted file mode 100644
index 5e53168..0000000
--- a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/context/orm/EclipseLink1_1OrmEmbeddedIdMappingProvider.java
+++ /dev/null
@@ -1,67 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.eclipselink.core.internal.context.orm;
-
-import org.eclipse.core.runtime.content.IContentType;
-import org.eclipse.jpt.core.JpaFactory;
-import org.eclipse.jpt.core.MappingKeys;
-import org.eclipse.jpt.core.context.java.JavaAttributeMapping;
-import org.eclipse.jpt.core.context.java.JavaEmbeddedIdMapping;
-import org.eclipse.jpt.core.context.orm.OrmAttributeMapping;
-import org.eclipse.jpt.core.context.orm.OrmAttributeMappingProvider;
-import org.eclipse.jpt.core.context.orm.OrmPersistentAttribute;
-import org.eclipse.jpt.core.context.orm.OrmTypeMapping;
-import org.eclipse.jpt.core.resource.orm.XmlAttributeMapping;
-import org.eclipse.jpt.eclipselink.core.internal.EclipseLink1_1JpaFactory;
-import org.eclipse.jpt.eclipselink.core.internal.JptEclipseLinkCorePlugin;
-import org.eclipse.jpt.eclipselink.core.resource.orm.XmlEmbeddedId;
-import org.eclipse.jpt.eclipselink1_1.core.resource.orm.EclipseLink1_1OrmFactory;
-
-public class EclipseLink1_1OrmEmbeddedIdMappingProvider
-	implements OrmAttributeMappingProvider
-{
-	// singleton
-	private static final OrmAttributeMappingProvider INSTANCE = new EclipseLink1_1OrmEmbeddedIdMappingProvider();
-
-	/**
-	 * Return the singleton.
-	 */
-	public static OrmAttributeMappingProvider instance() {
-		return INSTANCE;
-	}
-
-	/**
-	 * Ensure single instance.
-	 */
-	private EclipseLink1_1OrmEmbeddedIdMappingProvider() {
-		super();
-	}
-
-	public IContentType getContentType() {
-		return JptEclipseLinkCorePlugin.ECLIPSELINK1_1_ORM_XML_CONTENT_TYPE;
-	}
-
-	public String getKey() {
-		return MappingKeys.EMBEDDED_ID_ATTRIBUTE_MAPPING_KEY;
-	}
-	
-	public XmlAttributeMapping buildResourceMapping() {
-		return EclipseLink1_1OrmFactory.eINSTANCE.createXmlEmbeddedIdImpl();
-	}
-
-	public OrmAttributeMapping buildMapping(OrmPersistentAttribute parent, XmlAttributeMapping resourceMapping, JpaFactory factory) {
-		return ((EclipseLink1_1JpaFactory) factory).buildEclipseLink1_1OrmEmbeddedIdMapping(parent, (XmlEmbeddedId) resourceMapping);
-	}
-
-	public XmlAttributeMapping buildVirtualResourceMapping(OrmTypeMapping ormTypeMapping, JavaAttributeMapping javaAttributeMapping, JpaFactory factory) {
-		return ((EclipseLink1_1JpaFactory) factory).buildEclipseLink1_1VirtualXmlEmbeddedId(ormTypeMapping, (JavaEmbeddedIdMapping) javaAttributeMapping);
-	}
-
-}
diff --git a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/context/orm/EclipseLink1_1OrmEmbeddedMappingProvider.java b/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/context/orm/EclipseLink1_1OrmEmbeddedMappingProvider.java
deleted file mode 100644
index 1e221c2..0000000
--- a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/context/orm/EclipseLink1_1OrmEmbeddedMappingProvider.java
+++ /dev/null
@@ -1,67 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.eclipselink.core.internal.context.orm;
-
-import org.eclipse.core.runtime.content.IContentType;
-import org.eclipse.jpt.core.JpaFactory;
-import org.eclipse.jpt.core.MappingKeys;
-import org.eclipse.jpt.core.context.java.JavaAttributeMapping;
-import org.eclipse.jpt.core.context.java.JavaEmbeddedMapping;
-import org.eclipse.jpt.core.context.orm.OrmAttributeMapping;
-import org.eclipse.jpt.core.context.orm.OrmAttributeMappingProvider;
-import org.eclipse.jpt.core.context.orm.OrmPersistentAttribute;
-import org.eclipse.jpt.core.context.orm.OrmTypeMapping;
-import org.eclipse.jpt.core.resource.orm.XmlAttributeMapping;
-import org.eclipse.jpt.eclipselink.core.internal.EclipseLink1_1JpaFactory;
-import org.eclipse.jpt.eclipselink.core.internal.JptEclipseLinkCorePlugin;
-import org.eclipse.jpt.eclipselink.core.resource.orm.XmlEmbedded;
-import org.eclipse.jpt.eclipselink1_1.core.resource.orm.EclipseLink1_1OrmFactory;
-
-public class EclipseLink1_1OrmEmbeddedMappingProvider
-	implements OrmAttributeMappingProvider
-{
-	// singleton
-	private static final OrmAttributeMappingProvider INSTANCE = new EclipseLink1_1OrmEmbeddedMappingProvider();
-
-	/**
-	 * Return the singleton.
-	 */
-	public static OrmAttributeMappingProvider instance() {
-		return INSTANCE;
-	}
-
-	/**
-	 * Ensure single instance.
-	 */
-	private EclipseLink1_1OrmEmbeddedMappingProvider() {
-		super();
-	}
-
-	public IContentType getContentType() {
-		return JptEclipseLinkCorePlugin.ECLIPSELINK1_1_ORM_XML_CONTENT_TYPE;
-	}
-
-	public String getKey() {
-		return MappingKeys.EMBEDDED_ATTRIBUTE_MAPPING_KEY;
-	}
-	
-	public XmlAttributeMapping buildResourceMapping() {
-		return EclipseLink1_1OrmFactory.eINSTANCE.createXmlEmbeddedImpl();
-	}
-
-	public OrmAttributeMapping buildMapping(OrmPersistentAttribute parent, XmlAttributeMapping resourceMapping, JpaFactory factory) {
-		return ((EclipseLink1_1JpaFactory) factory).buildEclipseLink1_1OrmEmbeddedMapping(parent, (XmlEmbedded) resourceMapping);
-	}
-
-	public XmlAttributeMapping buildVirtualResourceMapping(OrmTypeMapping ormTypeMapping, JavaAttributeMapping javaAttributeMapping, JpaFactory factory) {
-		return ((EclipseLink1_1JpaFactory) factory).buildEclipseLink1_1VirtualXmlEmbedded(ormTypeMapping, (JavaEmbeddedMapping) javaAttributeMapping);
-	}
-
-}
diff --git a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/context/orm/EclipseLink1_1OrmIdMappingProvider.java b/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/context/orm/EclipseLink1_1OrmIdMappingProvider.java
deleted file mode 100644
index 1c2dc21..0000000
--- a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/context/orm/EclipseLink1_1OrmIdMappingProvider.java
+++ /dev/null
@@ -1,67 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008, 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.eclipselink.core.internal.context.orm;
-
-import org.eclipse.core.runtime.content.IContentType;
-import org.eclipse.jpt.core.JpaFactory;
-import org.eclipse.jpt.core.MappingKeys;
-import org.eclipse.jpt.core.context.java.JavaAttributeMapping;
-import org.eclipse.jpt.core.context.java.JavaIdMapping;
-import org.eclipse.jpt.core.context.orm.OrmAttributeMapping;
-import org.eclipse.jpt.core.context.orm.OrmAttributeMappingProvider;
-import org.eclipse.jpt.core.context.orm.OrmPersistentAttribute;
-import org.eclipse.jpt.core.context.orm.OrmTypeMapping;
-import org.eclipse.jpt.core.resource.orm.XmlAttributeMapping;
-import org.eclipse.jpt.eclipselink.core.internal.EclipseLink1_1JpaFactory;
-import org.eclipse.jpt.eclipselink.core.internal.JptEclipseLinkCorePlugin;
-import org.eclipse.jpt.eclipselink.core.resource.orm.XmlId;
-import org.eclipse.jpt.eclipselink1_1.core.resource.orm.EclipseLink1_1OrmFactory;
-
-public class EclipseLink1_1OrmIdMappingProvider
-	implements OrmAttributeMappingProvider
-{
-	// singleton
-	private static final OrmAttributeMappingProvider INSTANCE = new EclipseLink1_1OrmIdMappingProvider();
-
-	/**
-	 * Return the singleton.
-	 */
-	public static OrmAttributeMappingProvider instance() {
-		return INSTANCE;
-	}
-
-	/**
-	 * Ensure single instance.
-	 */
-	private EclipseLink1_1OrmIdMappingProvider() {
-		super();
-	}
-
-	public IContentType getContentType() {
-		return JptEclipseLinkCorePlugin.ECLIPSELINK1_1_ORM_XML_CONTENT_TYPE;
-	}
-
-	public String getKey() {
-		return MappingKeys.ID_ATTRIBUTE_MAPPING_KEY;
-	}
-	
-	public XmlAttributeMapping buildResourceMapping() {
-		return EclipseLink1_1OrmFactory.eINSTANCE.createXmlIdImpl();
-	}
-
-	public OrmAttributeMapping buildMapping(OrmPersistentAttribute parent, XmlAttributeMapping resourceMapping, JpaFactory factory) {
-		return ((EclipseLink1_1JpaFactory) factory).buildEclipseLink1_1OrmIdMapping(parent, (XmlId) resourceMapping);
-	}
-
-	public XmlAttributeMapping buildVirtualResourceMapping(OrmTypeMapping ormTypeMapping, JavaAttributeMapping javaAttributeMapping, JpaFactory factory) {
-		return ((EclipseLink1_1JpaFactory) factory).buildEclipseLink1_1VirtualXmlId(ormTypeMapping, (JavaIdMapping) javaAttributeMapping);
-	}
-
-}
diff --git a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/context/orm/EclipseLink1_1OrmManyToManyMappingProvider.java b/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/context/orm/EclipseLink1_1OrmManyToManyMappingProvider.java
deleted file mode 100644
index 536c414..0000000
--- a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/context/orm/EclipseLink1_1OrmManyToManyMappingProvider.java
+++ /dev/null
@@ -1,67 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008, 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.eclipselink.core.internal.context.orm;
-
-import org.eclipse.core.runtime.content.IContentType;
-import org.eclipse.jpt.core.JpaFactory;
-import org.eclipse.jpt.core.MappingKeys;
-import org.eclipse.jpt.core.context.java.JavaAttributeMapping;
-import org.eclipse.jpt.core.context.java.JavaManyToManyMapping;
-import org.eclipse.jpt.core.context.orm.OrmAttributeMapping;
-import org.eclipse.jpt.core.context.orm.OrmAttributeMappingProvider;
-import org.eclipse.jpt.core.context.orm.OrmPersistentAttribute;
-import org.eclipse.jpt.core.context.orm.OrmTypeMapping;
-import org.eclipse.jpt.core.resource.orm.XmlAttributeMapping;
-import org.eclipse.jpt.eclipselink.core.internal.EclipseLink1_1JpaFactory;
-import org.eclipse.jpt.eclipselink.core.internal.JptEclipseLinkCorePlugin;
-import org.eclipse.jpt.eclipselink.core.resource.orm.XmlManyToMany;
-import org.eclipse.jpt.eclipselink1_1.core.resource.orm.EclipseLink1_1OrmFactory;
-
-public class EclipseLink1_1OrmManyToManyMappingProvider
-	implements OrmAttributeMappingProvider
-{
-	// singleton
-	private static final OrmAttributeMappingProvider INSTANCE = new EclipseLink1_1OrmManyToManyMappingProvider();
-
-	/**
-	 * Return the singleton.
-	 */
-	public static OrmAttributeMappingProvider instance() {
-		return INSTANCE;
-	}
-
-	/**
-	 * Ensure single instance.
-	 */
-	private EclipseLink1_1OrmManyToManyMappingProvider() {
-		super();
-	}
-
-	public IContentType getContentType() {
-		return JptEclipseLinkCorePlugin.ECLIPSELINK1_1_ORM_XML_CONTENT_TYPE;
-	}
-
-	public String getKey() {
-		return MappingKeys.MANY_TO_MANY_ATTRIBUTE_MAPPING_KEY;
-	}
-	
-	public XmlAttributeMapping buildResourceMapping() {
-		return EclipseLink1_1OrmFactory.eINSTANCE.createXmlManyToManyImpl();
-	}
-
-	public OrmAttributeMapping buildMapping(OrmPersistentAttribute parent, XmlAttributeMapping resourceMapping, JpaFactory factory) {
-		return ((EclipseLink1_1JpaFactory) factory).buildEclipseLink1_1OrmManyToManyMapping(parent, (XmlManyToMany) resourceMapping);
-	}
-
-	public XmlAttributeMapping buildVirtualResourceMapping(OrmTypeMapping ormTypeMapping, JavaAttributeMapping javaAttributeMapping, JpaFactory factory) {
-		return ((EclipseLink1_1JpaFactory) factory).buildEclipseLink1_1VirtualXmlManyToMany(ormTypeMapping, (JavaManyToManyMapping) javaAttributeMapping);
-	}
-
-}
diff --git a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/context/orm/EclipseLink1_1OrmManyToOneMappingProvider.java b/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/context/orm/EclipseLink1_1OrmManyToOneMappingProvider.java
deleted file mode 100644
index 5733f44..0000000
--- a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/context/orm/EclipseLink1_1OrmManyToOneMappingProvider.java
+++ /dev/null
@@ -1,67 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008, 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.eclipselink.core.internal.context.orm;
-
-import org.eclipse.core.runtime.content.IContentType;
-import org.eclipse.jpt.core.JpaFactory;
-import org.eclipse.jpt.core.MappingKeys;
-import org.eclipse.jpt.core.context.java.JavaAttributeMapping;
-import org.eclipse.jpt.core.context.java.JavaManyToOneMapping;
-import org.eclipse.jpt.core.context.orm.OrmAttributeMapping;
-import org.eclipse.jpt.core.context.orm.OrmAttributeMappingProvider;
-import org.eclipse.jpt.core.context.orm.OrmPersistentAttribute;
-import org.eclipse.jpt.core.context.orm.OrmTypeMapping;
-import org.eclipse.jpt.core.resource.orm.XmlAttributeMapping;
-import org.eclipse.jpt.eclipselink.core.internal.EclipseLink1_1JpaFactory;
-import org.eclipse.jpt.eclipselink.core.internal.JptEclipseLinkCorePlugin;
-import org.eclipse.jpt.eclipselink.core.resource.orm.XmlManyToOne;
-import org.eclipse.jpt.eclipselink1_1.core.resource.orm.EclipseLink1_1OrmFactory;
-
-public class EclipseLink1_1OrmManyToOneMappingProvider
-	implements OrmAttributeMappingProvider
-{
-	// singleton
-	private static final OrmAttributeMappingProvider INSTANCE = new EclipseLink1_1OrmManyToOneMappingProvider();
-
-	/**
-	 * Return the singleton.
-	 */
-	public static OrmAttributeMappingProvider instance() {
-		return INSTANCE;
-	}
-
-	/**
-	 * Ensure single instance.
-	 */
-	private EclipseLink1_1OrmManyToOneMappingProvider() {
-		super();
-	}
-
-	public IContentType getContentType() {
-		return JptEclipseLinkCorePlugin.ECLIPSELINK1_1_ORM_XML_CONTENT_TYPE;
-	}
-
-	public String getKey() {
-		return MappingKeys.MANY_TO_ONE_ATTRIBUTE_MAPPING_KEY;
-	}
-	
-	public XmlAttributeMapping buildResourceMapping() {
-		return EclipseLink1_1OrmFactory.eINSTANCE.createXmlManyToOneImpl();
-	}
-
-	public OrmAttributeMapping buildMapping(OrmPersistentAttribute parent, XmlAttributeMapping resourceMapping, JpaFactory factory) {
-		return ((EclipseLink1_1JpaFactory) factory).buildEclipseLink1_1OrmManyToOneMapping(parent, (XmlManyToOne) resourceMapping);
-	}
-
-	public XmlAttributeMapping buildVirtualResourceMapping(OrmTypeMapping ormTypeMapping, JavaAttributeMapping javaAttributeMapping, JpaFactory factory) {
-		return ((EclipseLink1_1JpaFactory) factory).buildEclipseLink1_1VirtualXmlManyToOne(ormTypeMapping, (JavaManyToOneMapping) javaAttributeMapping);
-	}
-
-}
diff --git a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/context/orm/EclipseLink1_1OrmNullAttributeMappingProvider.java b/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/context/orm/EclipseLink1_1OrmNullAttributeMappingProvider.java
deleted file mode 100644
index 9cc4986..0000000
--- a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/context/orm/EclipseLink1_1OrmNullAttributeMappingProvider.java
+++ /dev/null
@@ -1,65 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.eclipselink.core.internal.context.orm;
-
-import org.eclipse.core.runtime.content.IContentType;
-import org.eclipse.jpt.core.JpaFactory;
-import org.eclipse.jpt.core.MappingKeys;
-import org.eclipse.jpt.core.context.java.JavaAttributeMapping;
-import org.eclipse.jpt.core.context.orm.OrmAttributeMapping;
-import org.eclipse.jpt.core.context.orm.OrmAttributeMappingProvider;
-import org.eclipse.jpt.core.context.orm.OrmPersistentAttribute;
-import org.eclipse.jpt.core.context.orm.OrmTypeMapping;
-import org.eclipse.jpt.core.resource.orm.XmlAttributeMapping;
-import org.eclipse.jpt.core.resource.orm.XmlNullAttributeMapping;
-import org.eclipse.jpt.eclipselink.core.internal.EclipseLink1_1JpaFactory;
-import org.eclipse.jpt.eclipselink.core.internal.JptEclipseLinkCorePlugin;
-
-public class EclipseLink1_1OrmNullAttributeMappingProvider
-	implements OrmAttributeMappingProvider
-{
-	// singleton
-	private static final OrmAttributeMappingProvider INSTANCE = new EclipseLink1_1OrmNullAttributeMappingProvider();
-
-	/**
-	 * Return the singleton.
-	 */
-	public static OrmAttributeMappingProvider instance() {
-		return INSTANCE;
-	}
-
-	/**
-	 * Ensure single instance.
-	 */
-	private EclipseLink1_1OrmNullAttributeMappingProvider() {
-		super();
-	}
-	
-	public IContentType getContentType() {
-		return JptEclipseLinkCorePlugin.ECLIPSELINK1_1_ORM_XML_CONTENT_TYPE;
-	}
-
-	public String getKey() {
-		return MappingKeys.NULL_ATTRIBUTE_MAPPING_KEY;
-	}
-	
-	public XmlAttributeMapping buildResourceMapping() {
-		throw new UnsupportedOperationException();
-	}
-
-	public OrmAttributeMapping buildMapping(OrmPersistentAttribute parent, XmlAttributeMapping resourceMapping, JpaFactory factory) {
-		return ((EclipseLink1_1JpaFactory) factory).buildEclipseLink1_1OrmNullAttributeMapping(parent, (XmlNullAttributeMapping) resourceMapping);
-	}
-	
-	public XmlAttributeMapping buildVirtualResourceMapping(OrmTypeMapping ormTypeMapping, JavaAttributeMapping javaAttributeMapping, JpaFactory factory) {
-		return ((EclipseLink1_1JpaFactory) factory).buildEclipseLink1_1VirtualXmlNullAttributeMapping(ormTypeMapping, javaAttributeMapping);
-	}
-
-}
diff --git a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/context/orm/EclipseLink1_1OrmOneToManyMappingProvider.java b/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/context/orm/EclipseLink1_1OrmOneToManyMappingProvider.java
deleted file mode 100644
index 382d99a..0000000
--- a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/context/orm/EclipseLink1_1OrmOneToManyMappingProvider.java
+++ /dev/null
@@ -1,67 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008, 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.eclipselink.core.internal.context.orm;
-
-import org.eclipse.core.runtime.content.IContentType;
-import org.eclipse.jpt.core.JpaFactory;
-import org.eclipse.jpt.core.MappingKeys;
-import org.eclipse.jpt.core.context.java.JavaAttributeMapping;
-import org.eclipse.jpt.core.context.orm.OrmAttributeMapping;
-import org.eclipse.jpt.core.context.orm.OrmAttributeMappingProvider;
-import org.eclipse.jpt.core.context.orm.OrmPersistentAttribute;
-import org.eclipse.jpt.core.context.orm.OrmTypeMapping;
-import org.eclipse.jpt.core.resource.orm.XmlAttributeMapping;
-import org.eclipse.jpt.eclipselink.core.internal.EclipseLink1_1JpaFactory;
-import org.eclipse.jpt.eclipselink.core.internal.JptEclipseLinkCorePlugin;
-import org.eclipse.jpt.eclipselink.core.internal.context.java.EclipseLinkJavaOneToManyMapping;
-import org.eclipse.jpt.eclipselink.core.resource.orm.XmlOneToMany;
-import org.eclipse.jpt.eclipselink1_1.core.resource.orm.EclipseLink1_1OrmFactory;
-
-public class EclipseLink1_1OrmOneToManyMappingProvider
-	implements OrmAttributeMappingProvider
-{
-	// singleton
-	private static final OrmAttributeMappingProvider INSTANCE = new EclipseLink1_1OrmOneToManyMappingProvider();
-
-	/**
-	 * Return the singleton.
-	 */
-	public static OrmAttributeMappingProvider instance() {
-		return INSTANCE;
-	}
-
-	/**
-	 * Ensure single instance.
-	 */
-	private EclipseLink1_1OrmOneToManyMappingProvider() {
-		super();
-	}
-
-	public IContentType getContentType() {
-		return JptEclipseLinkCorePlugin.ECLIPSELINK1_1_ORM_XML_CONTENT_TYPE;
-	}
-
-	public String getKey() {
-		return MappingKeys.ONE_TO_MANY_ATTRIBUTE_MAPPING_KEY;
-	}
-	
-	public XmlAttributeMapping buildResourceMapping() {
-		return EclipseLink1_1OrmFactory.eINSTANCE.createXmlOneToManyImpl();
-	}
-
-	public OrmAttributeMapping buildMapping(OrmPersistentAttribute parent, XmlAttributeMapping resourceMapping, JpaFactory factory) {
-		return ((EclipseLink1_1JpaFactory) factory).buildEclipseLink1_1OrmOneToManyMapping(parent, (XmlOneToMany) resourceMapping);
-	}
-
-	public XmlAttributeMapping buildVirtualResourceMapping(OrmTypeMapping ormTypeMapping, JavaAttributeMapping javaAttributeMapping, JpaFactory factory) {
-		return ((EclipseLink1_1JpaFactory) factory).buildEclipseLink1_1VirtualXmlOneToMany(ormTypeMapping, (EclipseLinkJavaOneToManyMapping) javaAttributeMapping);
-	}
-
-}
diff --git a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/context/orm/EclipseLink1_1OrmOneToOneMappingProvider.java b/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/context/orm/EclipseLink1_1OrmOneToOneMappingProvider.java
deleted file mode 100644
index c756248..0000000
--- a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/context/orm/EclipseLink1_1OrmOneToOneMappingProvider.java
+++ /dev/null
@@ -1,67 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008, 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.eclipselink.core.internal.context.orm;
-
-import org.eclipse.core.runtime.content.IContentType;
-import org.eclipse.jpt.core.JpaFactory;
-import org.eclipse.jpt.core.MappingKeys;
-import org.eclipse.jpt.core.context.java.JavaAttributeMapping;
-import org.eclipse.jpt.core.context.java.JavaOneToOneMapping;
-import org.eclipse.jpt.core.context.orm.OrmAttributeMapping;
-import org.eclipse.jpt.core.context.orm.OrmAttributeMappingProvider;
-import org.eclipse.jpt.core.context.orm.OrmPersistentAttribute;
-import org.eclipse.jpt.core.context.orm.OrmTypeMapping;
-import org.eclipse.jpt.core.resource.orm.XmlAttributeMapping;
-import org.eclipse.jpt.eclipselink.core.internal.EclipseLink1_1JpaFactory;
-import org.eclipse.jpt.eclipselink.core.internal.JptEclipseLinkCorePlugin;
-import org.eclipse.jpt.eclipselink.core.resource.orm.XmlOneToOne;
-import org.eclipse.jpt.eclipselink1_1.core.resource.orm.EclipseLink1_1OrmFactory;
-
-public class EclipseLink1_1OrmOneToOneMappingProvider
-	implements OrmAttributeMappingProvider
-{
-	// singleton
-	private static final OrmAttributeMappingProvider INSTANCE = new EclipseLink1_1OrmOneToOneMappingProvider();
-
-	/**
-	 * Return the singleton.
-	 */
-	public static OrmAttributeMappingProvider instance() {
-		return INSTANCE;
-	}
-
-	/**
-	 * Ensure single instance.
-	 */
-	private EclipseLink1_1OrmOneToOneMappingProvider() {
-		super();
-	}
-
-	public IContentType getContentType() {
-		return JptEclipseLinkCorePlugin.ECLIPSELINK1_1_ORM_XML_CONTENT_TYPE;
-	}
-
-	public String getKey() {
-		return MappingKeys.ONE_TO_ONE_ATTRIBUTE_MAPPING_KEY;
-	}
-	
-	public XmlAttributeMapping buildResourceMapping() {
-		return EclipseLink1_1OrmFactory.eINSTANCE.createXmlOneToOneImpl();
-	}
-
-	public OrmAttributeMapping buildMapping(OrmPersistentAttribute parent, XmlAttributeMapping resourceMapping, JpaFactory factory) {
-		return ((EclipseLink1_1JpaFactory) factory).buildEclipseLink1_1OrmOneToOneMapping(parent, (XmlOneToOne) resourceMapping);
-	}
-
-	public XmlAttributeMapping buildVirtualResourceMapping(OrmTypeMapping ormTypeMapping, JavaAttributeMapping javaAttributeMapping, JpaFactory factory) {
-		return ((EclipseLink1_1JpaFactory) factory).buildEclipseLink1_1VirtualXmlOneToOne(ormTypeMapping, (JavaOneToOneMapping) javaAttributeMapping);
-	}
-
-}
diff --git a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/context/orm/EclipseLink1_1OrmPersistentAttribute.java b/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/context/orm/EclipseLink1_1OrmPersistentAttribute.java
deleted file mode 100644
index f787c11..0000000
--- a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/context/orm/EclipseLink1_1OrmPersistentAttribute.java
+++ /dev/null
@@ -1,61 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.eclipselink.core.internal.context.orm;
-
-import org.eclipse.jpt.core.context.AccessType;
-import org.eclipse.jpt.core.context.orm.OrmPersistentType;
-import org.eclipse.jpt.core.internal.context.orm.AbstractOrmPersistentAttribute;
-import org.eclipse.jpt.eclipselink1_1.core.resource.orm.XmlAttributeMapping;
-
-
-public class EclipseLink1_1OrmPersistentAttribute 
-	extends AbstractOrmPersistentAttribute 
-{
-	
-	protected AccessType specifiedAccess;
-	
-	public EclipseLink1_1OrmPersistentAttribute(OrmPersistentType parent, Owner owner, XmlAttributeMapping resourceMapping) {
-		super(parent, owner, resourceMapping);
-		this.specifiedAccess = getResourceAccess();
-	}
-
-	@Override
-	public XmlAttributeMapping getResourceAttributeMapping() {
-		return (XmlAttributeMapping) super.getResourceAttributeMapping();
-	}
-	
-	public AccessType getSpecifiedAccess() {
-		return this.specifiedAccess;
-	}
-	
-	public void setSpecifiedAccess(AccessType newSpecifiedAccess) {
-		AccessType oldAccess = this.specifiedAccess;
-		this.specifiedAccess = newSpecifiedAccess;
-		this.getResourceAttributeMapping().setAccess(AccessType.toOrmResourceModel(newSpecifiedAccess));
-		firePropertyChanged(SPECIFIED_ACCESS_PROPERTY, oldAccess, newSpecifiedAccess);
-	}
-	
-	protected void setSpecifiedAccess_(AccessType newSpecifiedAccess) {
-		AccessType oldAccess = this.specifiedAccess;
-		this.specifiedAccess = newSpecifiedAccess;
-		firePropertyChanged(SPECIFIED_ACCESS_PROPERTY, oldAccess, newSpecifiedAccess);
-	}
-	
-	@Override
-	public void update() {
-		super.update();
-		setSpecifiedAccess_(getResourceAccess());
-	}
-	
-	protected AccessType getResourceAccess() {
-		return AccessType.fromOrmResourceModel(getResourceAttributeMapping().getAccess());
-	}
-	
-}
diff --git a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/context/orm/EclipseLink1_1OrmPersistentType.java b/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/context/orm/EclipseLink1_1OrmPersistentType.java
deleted file mode 100644
index a2fb029..0000000
--- a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/context/orm/EclipseLink1_1OrmPersistentType.java
+++ /dev/null
@@ -1,62 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008, 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.eclipselink.core.internal.context.orm;
-
-import java.util.Iterator;
-import org.eclipse.jpt.core.context.AccessType;
-import org.eclipse.jpt.core.context.orm.OrmPersistentAttribute;
-import org.eclipse.jpt.core.internal.context.orm.AbstractOrmPersistentType;
-import org.eclipse.jpt.core.resource.java.JavaResourcePersistentAttribute;
-import org.eclipse.jpt.core.resource.java.JavaResourcePersistentType;
-import org.eclipse.jpt.core.resource.orm.Attributes;
-import org.eclipse.jpt.core.resource.orm.XmlTypeMapping;
-import org.eclipse.jpt.eclipselink.core.internal.EclipseLink1_1JpaFactory;
-import org.eclipse.jpt.eclipselink.core.resource.orm.EclipseLinkOrmFactory;
-import org.eclipse.jpt.eclipselink1_1.core.resource.orm.XmlAttributeMapping;
-
-public class EclipseLink1_1OrmPersistentType extends AbstractOrmPersistentType
-{
-	
-	public EclipseLink1_1OrmPersistentType(EclipseLinkEntityMappings parent, XmlTypeMapping resourceMapping) {
-		super(parent, resourceMapping);
-	}
-	
-	@Override
-	protected EclipseLink1_1JpaFactory getJpaFactory() {
-		return (EclipseLink1_1JpaFactory)  super.getJpaFactory();
-	}
-	
-	@Override
-	protected Attributes createResourceAttributes() {
-		return EclipseLinkOrmFactory.eINSTANCE.createAttributes();
-	}
-	
-	@Override
-	protected OrmPersistentAttribute buildOrmPersistentAttribute(OrmPersistentAttribute.Owner owner, org.eclipse.jpt.core.resource.orm.XmlAttributeMapping resourceMapping) {
-		return getJpaFactory().buildEclipseLink1_1OrmPersistentAttribute(this, owner, (XmlAttributeMapping) resourceMapping);
-	}
-	
-	@Override
-	protected AccessType getAccess(OrmPersistentAttribute ormPersistentAttribute) {
-		return ((EclipseLink1_1OrmPersistentAttribute) ormPersistentAttribute).getAccess();
-	}
-	
-	@Override
-	protected Iterator<JavaResourcePersistentAttribute> javaPersistentAttributes(JavaResourcePersistentType resourcePersistentType) {
-		AccessType specifiedAccess = getSpecifiedAccess();
-		if (specifiedAccess == null && !getMapping().isMetadataComplete()) {
-			specifiedAccess = getJavaPersistentType().getSpecifiedAccess();
-		}
-		return specifiedAccess == null
-			? super.javaPersistentAttributes(resourcePersistentType)
-			: resourcePersistentType.persistableAttributes(AccessType.toJavaResourceModel(specifiedAccess));
-	}
-
-}
diff --git a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/context/orm/EclipseLink1_1OrmTransformationMappingProvider.java b/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/context/orm/EclipseLink1_1OrmTransformationMappingProvider.java
deleted file mode 100644
index 28d857a..0000000
--- a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/context/orm/EclipseLink1_1OrmTransformationMappingProvider.java
+++ /dev/null
@@ -1,67 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008, 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.eclipselink.core.internal.context.orm;
-
-import org.eclipse.core.runtime.content.IContentType;
-import org.eclipse.jpt.core.JpaFactory;
-import org.eclipse.jpt.core.context.java.JavaAttributeMapping;
-import org.eclipse.jpt.core.context.orm.OrmAttributeMapping;
-import org.eclipse.jpt.core.context.orm.OrmAttributeMappingProvider;
-import org.eclipse.jpt.core.context.orm.OrmPersistentAttribute;
-import org.eclipse.jpt.core.context.orm.OrmTypeMapping;
-import org.eclipse.jpt.core.resource.orm.XmlAttributeMapping;
-import org.eclipse.jpt.eclipselink.core.EclipseLinkMappingKeys;
-import org.eclipse.jpt.eclipselink.core.internal.EclipseLink1_1JpaFactory;
-import org.eclipse.jpt.eclipselink.core.internal.JptEclipseLinkCorePlugin;
-import org.eclipse.jpt.eclipselink.core.internal.context.java.JavaTransformationMapping;
-import org.eclipse.jpt.eclipselink.core.resource.orm.XmlTransformation;
-import org.eclipse.jpt.eclipselink1_1.core.resource.orm.EclipseLink1_1OrmFactory;
-
-public class EclipseLink1_1OrmTransformationMappingProvider
-	implements OrmAttributeMappingProvider
-{
-
-	// singleton
-	private static final EclipseLink1_1OrmTransformationMappingProvider INSTANCE = new EclipseLink1_1OrmTransformationMappingProvider();
-
-	/**
-	 * Return the singleton.
-	 */
-	public static OrmAttributeMappingProvider instance() {
-		return INSTANCE;
-	}
-
-	/**
-	 * Ensure single instance.
-	 */
-	private EclipseLink1_1OrmTransformationMappingProvider() {
-		super();
-	}
-	
-	public IContentType getContentType() {
-		return JptEclipseLinkCorePlugin.ECLIPSELINK1_1_ORM_XML_CONTENT_TYPE;
-	}
-
-	public String getKey() {
-		return EclipseLinkMappingKeys.TRANSFORMATION_ATTRIBUTE_MAPPING_KEY;
-	}
-	
-	public XmlAttributeMapping buildResourceMapping() {
-		return EclipseLink1_1OrmFactory.eINSTANCE.createXmlTransformationImpl();
-	}
-
-	public OrmAttributeMapping buildMapping(OrmPersistentAttribute parent, XmlAttributeMapping resourceMapping, JpaFactory factory) {
-		return ((EclipseLink1_1JpaFactory) factory).buildEclipseLink1_1OrmTransformationMapping(parent, (XmlTransformation) resourceMapping);
-	}
-	
-	public XmlAttributeMapping buildVirtualResourceMapping(OrmTypeMapping ormTypeMapping, JavaAttributeMapping javaAttributeMapping, JpaFactory factory) {
-		return ((EclipseLink1_1JpaFactory) factory).buildEclipseLink1_1VirtualXmlTransformation(ormTypeMapping, (JavaTransformationMapping) javaAttributeMapping);
-	}
-}
diff --git a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/context/orm/EclipseLink1_1OrmTransientMappingProvider.java b/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/context/orm/EclipseLink1_1OrmTransientMappingProvider.java
deleted file mode 100644
index ace4443..0000000
--- a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/context/orm/EclipseLink1_1OrmTransientMappingProvider.java
+++ /dev/null
@@ -1,67 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.eclipselink.core.internal.context.orm;
-
-import org.eclipse.core.runtime.content.IContentType;
-import org.eclipse.jpt.core.JpaFactory;
-import org.eclipse.jpt.core.MappingKeys;
-import org.eclipse.jpt.core.context.java.JavaAttributeMapping;
-import org.eclipse.jpt.core.context.java.JavaTransientMapping;
-import org.eclipse.jpt.core.context.orm.OrmAttributeMapping;
-import org.eclipse.jpt.core.context.orm.OrmAttributeMappingProvider;
-import org.eclipse.jpt.core.context.orm.OrmPersistentAttribute;
-import org.eclipse.jpt.core.context.orm.OrmTypeMapping;
-import org.eclipse.jpt.core.resource.orm.XmlAttributeMapping;
-import org.eclipse.jpt.core.resource.orm.XmlTransient;
-import org.eclipse.jpt.eclipselink.core.internal.EclipseLink1_1JpaFactory;
-import org.eclipse.jpt.eclipselink.core.internal.JptEclipseLinkCorePlugin;
-import org.eclipse.jpt.eclipselink1_1.core.resource.orm.EclipseLink1_1OrmFactory;
-
-public class EclipseLink1_1OrmTransientMappingProvider
-	implements OrmAttributeMappingProvider
-{
-	// singleton
-	private static final OrmAttributeMappingProvider INSTANCE = new EclipseLink1_1OrmTransientMappingProvider();
-
-	/**
-	 * Return the singleton.
-	 */
-	public static OrmAttributeMappingProvider instance() {
-		return INSTANCE;
-	}
-
-	/**
-	 * Ensure single instance.
-	 */
-	private EclipseLink1_1OrmTransientMappingProvider() {
-		super();
-	}
-	
-	public IContentType getContentType() {
-		return JptEclipseLinkCorePlugin.ECLIPSELINK1_1_ORM_XML_CONTENT_TYPE;
-	}
-	
-	public String getKey() {
-		return MappingKeys.TRANSIENT_ATTRIBUTE_MAPPING_KEY;
-	}
-	
-	public XmlAttributeMapping buildResourceMapping() {
-		return EclipseLink1_1OrmFactory.eINSTANCE.createXmlTransientImpl();
-	}
-	
-	public OrmAttributeMapping buildMapping(OrmPersistentAttribute parent, XmlAttributeMapping resourceMapping, JpaFactory factory) {
-		return factory.buildOrmTransientMapping(parent, (XmlTransient) resourceMapping);
-	}
-	
-	public XmlAttributeMapping buildVirtualResourceMapping(OrmTypeMapping ormTypeMapping, JavaAttributeMapping javaAttributeMapping, JpaFactory factory) {
-		return ((EclipseLink1_1JpaFactory) factory).buildEclipseLink1_1VirtualXmlTransient(ormTypeMapping, (JavaTransientMapping) javaAttributeMapping);
-	}
-
-}
diff --git a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/context/orm/EclipseLink1_1OrmVariableOneToOneMappingProvider.java b/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/context/orm/EclipseLink1_1OrmVariableOneToOneMappingProvider.java
deleted file mode 100644
index e39ce84..0000000
--- a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/context/orm/EclipseLink1_1OrmVariableOneToOneMappingProvider.java
+++ /dev/null
@@ -1,67 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.eclipselink.core.internal.context.orm;
-
-import org.eclipse.core.runtime.content.IContentType;
-import org.eclipse.jpt.core.JpaFactory;
-import org.eclipse.jpt.core.context.java.JavaAttributeMapping;
-import org.eclipse.jpt.core.context.orm.OrmAttributeMapping;
-import org.eclipse.jpt.core.context.orm.OrmAttributeMappingProvider;
-import org.eclipse.jpt.core.context.orm.OrmPersistentAttribute;
-import org.eclipse.jpt.core.context.orm.OrmTypeMapping;
-import org.eclipse.jpt.core.resource.orm.XmlAttributeMapping;
-import org.eclipse.jpt.eclipselink.core.EclipseLinkMappingKeys;
-import org.eclipse.jpt.eclipselink.core.internal.EclipseLink1_1JpaFactory;
-import org.eclipse.jpt.eclipselink.core.internal.JptEclipseLinkCorePlugin;
-import org.eclipse.jpt.eclipselink.core.internal.context.java.JavaVariableOneToOneMapping;
-import org.eclipse.jpt.eclipselink.core.resource.orm.XmlVariableOneToOne;
-import org.eclipse.jpt.eclipselink1_1.core.resource.orm.EclipseLink1_1OrmFactory;
-
-public class EclipseLink1_1OrmVariableOneToOneMappingProvider
-	implements OrmAttributeMappingProvider
-{
-
-	// singleton
-	private static final EclipseLink1_1OrmVariableOneToOneMappingProvider INSTANCE = new EclipseLink1_1OrmVariableOneToOneMappingProvider();
-
-	/**
-	 * Return the singleton.
-	 */
-	public static OrmAttributeMappingProvider instance() {
-		return INSTANCE;
-	}
-
-	/**
-	 * Ensure single instance.
-	 */
-	private EclipseLink1_1OrmVariableOneToOneMappingProvider() {
-		super();
-	}
-	
-	public IContentType getContentType() {
-		return JptEclipseLinkCorePlugin.ECLIPSELINK1_1_ORM_XML_CONTENT_TYPE;
-	}
-
-	public String getKey() {
-		return EclipseLinkMappingKeys.VARIABLE_ONE_TO_ONE_ATTRIBUTE_MAPPING_KEY;
-	}
-	
-	public XmlAttributeMapping buildResourceMapping() {
-		return EclipseLink1_1OrmFactory.eINSTANCE.createXmlVariableOneToOneImpl();
-	}
-
-	public OrmAttributeMapping buildMapping(OrmPersistentAttribute parent, XmlAttributeMapping resourceMapping, JpaFactory factory) {
-		return ((EclipseLink1_1JpaFactory) factory).buildEclipseLink1_1OrmVariableOneToOneMapping(parent, (XmlVariableOneToOne) resourceMapping);
-	}
-	
-	public XmlAttributeMapping buildVirtualResourceMapping(OrmTypeMapping ormTypeMapping, JavaAttributeMapping javaAttributeMapping, JpaFactory factory) {
-		return ((EclipseLink1_1JpaFactory) factory).buildEclipseLink1_1VirtualXmlVariableOneToOne(ormTypeMapping, (JavaVariableOneToOneMapping) javaAttributeMapping);
-	}
-}
diff --git a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/context/orm/EclipseLink1_1OrmVersionMappingProvider.java b/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/context/orm/EclipseLink1_1OrmVersionMappingProvider.java
deleted file mode 100644
index 898530c..0000000
--- a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/context/orm/EclipseLink1_1OrmVersionMappingProvider.java
+++ /dev/null
@@ -1,67 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008, 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.eclipselink.core.internal.context.orm;
-
-import org.eclipse.core.runtime.content.IContentType;
-import org.eclipse.jpt.core.JpaFactory;
-import org.eclipse.jpt.core.MappingKeys;
-import org.eclipse.jpt.core.context.java.JavaAttributeMapping;
-import org.eclipse.jpt.core.context.java.JavaVersionMapping;
-import org.eclipse.jpt.core.context.orm.OrmAttributeMapping;
-import org.eclipse.jpt.core.context.orm.OrmAttributeMappingProvider;
-import org.eclipse.jpt.core.context.orm.OrmPersistentAttribute;
-import org.eclipse.jpt.core.context.orm.OrmTypeMapping;
-import org.eclipse.jpt.core.resource.orm.XmlAttributeMapping;
-import org.eclipse.jpt.eclipselink.core.internal.EclipseLink1_1JpaFactory;
-import org.eclipse.jpt.eclipselink.core.internal.JptEclipseLinkCorePlugin;
-import org.eclipse.jpt.eclipselink.core.resource.orm.XmlVersion;
-import org.eclipse.jpt.eclipselink1_1.core.resource.orm.EclipseLink1_1OrmFactory;
-
-public class EclipseLink1_1OrmVersionMappingProvider
-	implements OrmAttributeMappingProvider
-{
-	// singleton
-	private static final OrmAttributeMappingProvider INSTANCE = new EclipseLink1_1OrmVersionMappingProvider();
-
-	/**
-	 * Return the singleton.
-	 */
-	public static OrmAttributeMappingProvider instance() {
-		return INSTANCE;
-	}
-
-	/**
-	 * Ensure single instance.
-	 */
-	private EclipseLink1_1OrmVersionMappingProvider() {
-		super();
-	}
-
-	public IContentType getContentType() {
-		return JptEclipseLinkCorePlugin.ECLIPSELINK1_1_ORM_XML_CONTENT_TYPE;
-	}
-
-	public String getKey() {
-		return MappingKeys.VERSION_ATTRIBUTE_MAPPING_KEY;
-	}
-	
-	public XmlAttributeMapping buildResourceMapping() {
-		return EclipseLink1_1OrmFactory.eINSTANCE.createXmlVersionImpl();
-	}
-
-	public OrmAttributeMapping buildMapping(OrmPersistentAttribute parent, XmlAttributeMapping resourceMapping, JpaFactory factory) {
-		return ((EclipseLink1_1JpaFactory) factory).buildEclipseLink1_1OrmVersionMapping(parent, (XmlVersion) resourceMapping);
-	}
-
-	public XmlAttributeMapping buildVirtualResourceMapping(OrmTypeMapping ormTypeMapping, JavaAttributeMapping javaAttributeMapping, JpaFactory factory) {
-		return ((EclipseLink1_1JpaFactory) factory).buildEclipseLink1_1VirtualXmlVersion(ormTypeMapping, (JavaVersionMapping) javaAttributeMapping);
-	}
-
-}
diff --git a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/context/orm/EclipseLink1_1OrmXml.java b/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/context/orm/EclipseLink1_1OrmXml.java
deleted file mode 100644
index e2294ed..0000000
--- a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/context/orm/EclipseLink1_1OrmXml.java
+++ /dev/null
@@ -1,55 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.eclipselink.core.internal.context.orm;
-
-import org.eclipse.jpt.core.context.orm.EntityMappings;
-import org.eclipse.jpt.core.context.persistence.MappingFileRef;
-import org.eclipse.jpt.core.internal.context.orm.AbstractOrmXml;
-import org.eclipse.jpt.core.resource.xml.JpaXmlResource;
-import org.eclipse.jpt.eclipselink.core.internal.EclipseLink1_1JpaFactory;
-import org.eclipse.jpt.eclipselink.core.internal.JptEclipseLinkCorePlugin;
-import org.eclipse.jpt.eclipselink1_1.core.resource.orm.EclipseLink1_1OrmFactory;
-import org.eclipse.jpt.eclipselink1_1.core.resource.orm.XmlEntityMappings;
-
-public class EclipseLink1_1OrmXml extends AbstractOrmXml
-{
-	public EclipseLink1_1OrmXml(MappingFileRef parent, JpaXmlResource resource) {
-		super(parent, resource);
-		if (!resource.getContentType().isKindOf(JptEclipseLinkCorePlugin.ECLIPSELINK1_1_ORM_XML_CONTENT_TYPE)) {
-			throw new IllegalArgumentException(resource + " does not have eclipselink 1.1 orm xml content type"); //$NON-NLS-1$ 
-		}
-	}
-	
-	@Override
-	protected EclipseLink1_1JpaFactory getJpaFactory() {
-		return (EclipseLink1_1JpaFactory) super.getJpaFactory();
-	}
-	
-	@Override
-	protected XmlEntityMappings buildEntityMappingsResource() {
-		return EclipseLink1_1OrmFactory.eINSTANCE.createXmlEntityMappings();
-	}
-	
-	@Override
-	protected EntityMappings buildEntityMappings(org.eclipse.jpt.core.resource.orm.XmlEntityMappings xmlEntityMappings) {
-		return getJpaFactory().buildEclipseLink1_1EntityMappings(this, (XmlEntityMappings) xmlEntityMappings);
-	}
-	
-	
-	// ********** updating **********
-	
-	@Override
-	public void update(JpaXmlResource resource) {
-		if (!resource.getContentType().isKindOf(JptEclipseLinkCorePlugin.ECLIPSELINK1_1_ORM_XML_CONTENT_TYPE)) {
-			throw new IllegalArgumentException(resource + " does not have eclipselink 1.1 orm xml content type"); //$NON-NLS-1$ 
-		}
-		super.update(resource);
-	}
-}
diff --git a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/context/orm/EclipseLink1_1VirtualXmlBasic.java b/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/context/orm/EclipseLink1_1VirtualXmlBasic.java
deleted file mode 100644
index c7cccbb..0000000
--- a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/context/orm/EclipseLink1_1VirtualXmlBasic.java
+++ /dev/null
@@ -1,68 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.eclipselink.core.internal.context.orm;
-
-import org.eclipse.jpt.core.context.java.JavaBasicMapping;
-import org.eclipse.jpt.core.context.orm.OrmTypeMapping;
-import org.eclipse.jpt.core.resource.orm.AccessType;
-import org.eclipse.jpt.core.resource.orm.XmlGeneratedValue;
-import org.eclipse.jpt.core.resource.orm.XmlSequenceGenerator;
-import org.eclipse.jpt.core.resource.orm.XmlTableGenerator;
-
-/**
- * VirtualBasic is an implementation of Basic used when there is 
- * no tag in the orm.xml and an underlying javaBasicMapping exists.
- */
-public class EclipseLink1_1VirtualXmlBasic extends EclipseLinkVirtualXmlBasic implements org.eclipse.jpt.eclipselink1_1.core.resource.orm.XmlBasic
-{
-		
-	public EclipseLink1_1VirtualXmlBasic(OrmTypeMapping ormTypeMapping, JavaBasicMapping javaBasicMapping) {
-		super(ormTypeMapping, javaBasicMapping);
-	}
-	
-	public AccessType getAccess() {
-		return org.eclipse.jpt.core.context.AccessType.toOrmResourceModel(this.javaAttributeMapping.getPersistentAttribute().getAccess());
-	}
-	
-	public void setAccess(AccessType value) {
-		throw new UnsupportedOperationException("cannot set values on a virtual mapping"); //$NON-NLS-1$
-	}
-	
-	public XmlTableGenerator getTableGenerator() {
-		// TODO Auto-generated method stub
-		return null;
-	}
-	
-	public void setTableGenerator(XmlTableGenerator value) {
-		// TODO Auto-generated method stub
-		
-	}
-	
-	public XmlSequenceGenerator getSequenceGenerator() {
-		// TODO Auto-generated method stub
-		return null;
-	}
-	
-	public void setSequenceGenerator(XmlSequenceGenerator value) {
-		// TODO Auto-generated method stub
-		
-	}
-	
-	public XmlGeneratedValue getGeneratedValue() {
-		// TODO Auto-generated method stub
-		return null;
-	}
-	
-	public void setGeneratedValue(XmlGeneratedValue value) {
-		// TODO Auto-generated method stub
-		
-	}
-	
-}
diff --git a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/context/orm/EclipseLink1_1VirtualXmlBasicCollection.java b/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/context/orm/EclipseLink1_1VirtualXmlBasicCollection.java
deleted file mode 100644
index e44320c..0000000
--- a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/context/orm/EclipseLink1_1VirtualXmlBasicCollection.java
+++ /dev/null
@@ -1,36 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.eclipselink.core.internal.context.orm;
-
-import org.eclipse.jpt.core.context.orm.OrmTypeMapping;
-import org.eclipse.jpt.core.resource.orm.AccessType;
-import org.eclipse.jpt.eclipselink.core.internal.context.java.JavaBasicCollectionMapping;
-import org.eclipse.jpt.eclipselink1_1.core.resource.orm.XmlBasicCollection;
-
-/**
- * VirtualBasic is an implementation of Basic used when there is 
- * no tag in the orm.xml and an underlying javaBasicMapping exists.
- */
-public class EclipseLink1_1VirtualXmlBasicCollection extends VirtualXmlBasicCollection implements XmlBasicCollection
-{
-
-	public EclipseLink1_1VirtualXmlBasicCollection(OrmTypeMapping ormTypeMapping, JavaBasicCollectionMapping javaBasicCollectionMapping) {
-		super(ormTypeMapping, javaBasicCollectionMapping);
-	}
-	
-	public AccessType getAccess() {
-		return org.eclipse.jpt.core.context.AccessType.toOrmResourceModel(this.javaAttributeMapping.getPersistentAttribute().getAccess());
-	}
-	
-	public void setAccess(AccessType value) {
-		throw new UnsupportedOperationException("cannot set values on a virtual mapping"); //$NON-NLS-1$
-	}
-
-}
diff --git a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/context/orm/EclipseLink1_1VirtualXmlBasicMap.java b/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/context/orm/EclipseLink1_1VirtualXmlBasicMap.java
deleted file mode 100644
index ed0b83b..0000000
--- a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/context/orm/EclipseLink1_1VirtualXmlBasicMap.java
+++ /dev/null
@@ -1,35 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.eclipselink.core.internal.context.orm;
-
-import org.eclipse.jpt.core.context.orm.OrmTypeMapping;
-import org.eclipse.jpt.core.resource.orm.AccessType;
-import org.eclipse.jpt.eclipselink.core.internal.context.java.JavaBasicMapMapping;
-import org.eclipse.jpt.eclipselink1_1.core.resource.orm.XmlBasicMap;
-
-/**
- * VirtualBasic is an implementation of Basic used when there is 
- * no tag in the orm.xml and an underlying javaBasicMapping exists.
- */
-public class EclipseLink1_1VirtualXmlBasicMap extends VirtualXmlBasicMap implements XmlBasicMap
-{
-
-	public EclipseLink1_1VirtualXmlBasicMap(OrmTypeMapping ormTypeMapping, JavaBasicMapMapping javaBasicMapMappingg) {
-		super(ormTypeMapping, javaBasicMapMappingg);
-	}
-	
-	public AccessType getAccess() {
-		return org.eclipse.jpt.core.context.AccessType.toOrmResourceModel(this.javaAttributeMapping.getPersistentAttribute().getAccess());
-	}
-	
-	public void setAccess(AccessType value) {
-		throw new UnsupportedOperationException("cannot set values on a virtual mapping"); //$NON-NLS-1$
-	}
-}
diff --git a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/context/orm/EclipseLink1_1VirtualXmlEmbedded.java b/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/context/orm/EclipseLink1_1VirtualXmlEmbedded.java
deleted file mode 100644
index 5cc3dbe..0000000
--- a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/context/orm/EclipseLink1_1VirtualXmlEmbedded.java
+++ /dev/null
@@ -1,35 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.eclipselink.core.internal.context.orm;
-
-import org.eclipse.jpt.core.context.java.JavaEmbeddedMapping;
-import org.eclipse.jpt.core.context.orm.OrmTypeMapping;
-import org.eclipse.jpt.core.resource.orm.AccessType;
-import org.eclipse.jpt.eclipselink1_1.core.resource.orm.XmlEmbedded;
-
-/**
- * VirtualBasic is an implementation of Basic used when there is 
- * no tag in the orm.xml and an underlying javaBasicMapping exists.
- */
-public class EclipseLink1_1VirtualXmlEmbedded extends EclipseLinkVirtualXmlEmbedded implements XmlEmbedded
-{
-		
-	public EclipseLink1_1VirtualXmlEmbedded(OrmTypeMapping ormTypeMapping, JavaEmbeddedMapping javaEmbeddedMapping) {
-		super(ormTypeMapping, javaEmbeddedMapping);
-	}
-	
-	public AccessType getAccess() {
-		return org.eclipse.jpt.core.context.AccessType.toOrmResourceModel(this.javaAttributeMapping.getPersistentAttribute().getAccess());
-	}
-	
-	public void setAccess(AccessType value) {
-		throw new UnsupportedOperationException("cannot set values on a virtual mapping"); //$NON-NLS-1$
-	}
-}
diff --git a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/context/orm/EclipseLink1_1VirtualXmlEmbeddedId.java b/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/context/orm/EclipseLink1_1VirtualXmlEmbeddedId.java
deleted file mode 100644
index d9f9b82..0000000
--- a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/context/orm/EclipseLink1_1VirtualXmlEmbeddedId.java
+++ /dev/null
@@ -1,35 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.eclipselink.core.internal.context.orm;
-
-import org.eclipse.jpt.core.context.java.JavaEmbeddedIdMapping;
-import org.eclipse.jpt.core.context.orm.OrmTypeMapping;
-import org.eclipse.jpt.core.resource.orm.AccessType;
-import org.eclipse.jpt.eclipselink1_1.core.resource.orm.XmlEmbeddedId;
-
-/**
- * VirtualBasic is an implementation of Basic used when there is 
- * no tag in the orm.xml and an underlying javaBasicMapping exists.
- */
-public class EclipseLink1_1VirtualXmlEmbeddedId extends EclipseLinkVirtualXmlEmbeddedId implements XmlEmbeddedId
-{
-		
-	public EclipseLink1_1VirtualXmlEmbeddedId(OrmTypeMapping ormTypeMapping, JavaEmbeddedIdMapping javaEmbeddedIdMapping) {
-		super(ormTypeMapping, javaEmbeddedIdMapping);
-	}
-	
-	public AccessType getAccess() {
-		return org.eclipse.jpt.core.context.AccessType.toOrmResourceModel(this.javaAttributeMapping.getPersistentAttribute().getAccess());
-	}
-	
-	public void setAccess(AccessType value) {
-		throw new UnsupportedOperationException("cannot set values on a virtual mapping"); //$NON-NLS-1$
-	}
-}
diff --git a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/context/orm/EclipseLink1_1VirtualXmlId.java b/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/context/orm/EclipseLink1_1VirtualXmlId.java
deleted file mode 100644
index 7e0c3bd..0000000
--- a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/context/orm/EclipseLink1_1VirtualXmlId.java
+++ /dev/null
@@ -1,35 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.eclipselink.core.internal.context.orm;
-
-import org.eclipse.jpt.core.context.java.JavaIdMapping;
-import org.eclipse.jpt.core.context.orm.OrmTypeMapping;
-import org.eclipse.jpt.core.resource.orm.AccessType;
-import org.eclipse.jpt.eclipselink1_1.core.resource.orm.XmlId;
-
-/**
- * VirtualBasic is an implementation of Basic used when there is 
- * no tag in the orm.xml and an underlying javaBasicMapping exists.
- */
-public class EclipseLink1_1VirtualXmlId extends EclipseLinkVirtualXmlId implements XmlId
-{
-		
-	public EclipseLink1_1VirtualXmlId(OrmTypeMapping ormTypeMapping, JavaIdMapping javaIdMapping) {
-		super(ormTypeMapping, javaIdMapping);
-	}
-	
-	public AccessType getAccess() {
-		return org.eclipse.jpt.core.context.AccessType.toOrmResourceModel(this.javaAttributeMapping.getPersistentAttribute().getAccess());
-	}
-	
-	public void setAccess(AccessType value) {
-		throw new UnsupportedOperationException("cannot set values on a virtual mapping"); //$NON-NLS-1$
-	}
-}
diff --git a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/context/orm/EclipseLink1_1VirtualXmlManyToMany.java b/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/context/orm/EclipseLink1_1VirtualXmlManyToMany.java
deleted file mode 100644
index 6eba331..0000000
--- a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/context/orm/EclipseLink1_1VirtualXmlManyToMany.java
+++ /dev/null
@@ -1,35 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.eclipselink.core.internal.context.orm;
-
-import org.eclipse.jpt.core.context.java.JavaManyToManyMapping;
-import org.eclipse.jpt.core.context.orm.OrmTypeMapping;
-import org.eclipse.jpt.core.resource.orm.AccessType;
-import org.eclipse.jpt.eclipselink1_1.core.resource.orm.XmlManyToMany;
-
-/**
- * VirtualBasic is an implementation of Basic used when there is 
- * no tag in the orm.xml and an underlying javaBasicMapping exists.
- */
-public class EclipseLink1_1VirtualXmlManyToMany extends EclipseLinkVirtualXmlManyToMany implements XmlManyToMany
-{
-		
-	public EclipseLink1_1VirtualXmlManyToMany(OrmTypeMapping ormTypeMapping, JavaManyToManyMapping javaManyToManyMapping) {
-		super(ormTypeMapping, javaManyToManyMapping);
-	}
-	
-	public AccessType getAccess() {
-		return org.eclipse.jpt.core.context.AccessType.toOrmResourceModel(this.javaAttributeMapping.getPersistentAttribute().getAccess());
-	}
-	
-	public void setAccess(AccessType value) {
-		throw new UnsupportedOperationException("cannot set values on a virtual mapping"); //$NON-NLS-1$
-	}
-}
diff --git a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/context/orm/EclipseLink1_1VirtualXmlManyToOne.java b/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/context/orm/EclipseLink1_1VirtualXmlManyToOne.java
deleted file mode 100644
index 1b51926..0000000
--- a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/context/orm/EclipseLink1_1VirtualXmlManyToOne.java
+++ /dev/null
@@ -1,35 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.eclipselink.core.internal.context.orm;
-
-import org.eclipse.jpt.core.context.java.JavaManyToOneMapping;
-import org.eclipse.jpt.core.context.orm.OrmTypeMapping;
-import org.eclipse.jpt.core.resource.orm.AccessType;
-import org.eclipse.jpt.eclipselink1_1.core.resource.orm.XmlManyToOne;
-
-/**
- * VirtualBasic is an implementation of Basic used when there is 
- * no tag in the orm.xml and an underlying javaBasicMapping exists.
- */
-public class EclipseLink1_1VirtualXmlManyToOne extends EclipseLinkVirtualXmlManyToOne implements XmlManyToOne
-{
-		
-	public EclipseLink1_1VirtualXmlManyToOne(OrmTypeMapping ormTypeMapping, JavaManyToOneMapping javaManyToOneMapping) {
-		super(ormTypeMapping, javaManyToOneMapping);
-	}
-	
-	public AccessType getAccess() {
-		return org.eclipse.jpt.core.context.AccessType.toOrmResourceModel(this.javaAttributeMapping.getPersistentAttribute().getAccess());
-	}
-	
-	public void setAccess(AccessType value) {
-		throw new UnsupportedOperationException("cannot set values on a virtual mapping"); //$NON-NLS-1$
-	}
-}
diff --git a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/context/orm/EclipseLink1_1VirtualXmlNullAttributeMapping.java b/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/context/orm/EclipseLink1_1VirtualXmlNullAttributeMapping.java
deleted file mode 100644
index 6dd3eea..0000000
--- a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/context/orm/EclipseLink1_1VirtualXmlNullAttributeMapping.java
+++ /dev/null
@@ -1,37 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.eclipselink.core.internal.context.orm;
-
-import org.eclipse.jpt.core.context.java.JavaAttributeMapping;
-import org.eclipse.jpt.core.context.orm.OrmTypeMapping;
-import org.eclipse.jpt.core.internal.context.orm.VirtualXmlNullAttributeMapping;
-import org.eclipse.jpt.core.resource.orm.AccessType;
-import org.eclipse.jpt.core.resource.orm.XmlNullAttributeMapping;
-import org.eclipse.jpt.eclipselink1_1.core.resource.orm.XmlAttributeMapping;
-
-/**
- * VirtualVersion is an implementation of Version used when there is 
- * no tag in the orm.xml and an underlying javaVersionMapping exists.
- */
-public class EclipseLink1_1VirtualXmlNullAttributeMapping extends VirtualXmlNullAttributeMapping implements XmlNullAttributeMapping, XmlAttributeMapping
-{
-	
-	public EclipseLink1_1VirtualXmlNullAttributeMapping(OrmTypeMapping ormTypeMapping, JavaAttributeMapping javaAttributeMapping) {
-		super(ormTypeMapping, javaAttributeMapping);
-	}
-	
-	public AccessType getAccess() {
-		return org.eclipse.jpt.core.context.AccessType.toOrmResourceModel(this.javaAttributeMapping.getPersistentAttribute().getAccess());
-	}
-
-	public void setAccess(AccessType value) {
-		throw new UnsupportedOperationException("cannot set values on a virtual mapping"); //$NON-NLS-1$
-	}
-}
diff --git a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/context/orm/EclipseLink1_1VirtualXmlOneToMany.java b/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/context/orm/EclipseLink1_1VirtualXmlOneToMany.java
deleted file mode 100644
index 2066e23..0000000
--- a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/context/orm/EclipseLink1_1VirtualXmlOneToMany.java
+++ /dev/null
@@ -1,38 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.eclipselink.core.internal.context.orm;
-
-import org.eclipse.jpt.core.context.orm.OrmTypeMapping;
-import org.eclipse.jpt.core.resource.orm.AccessType;
-import org.eclipse.jpt.eclipselink.core.internal.context.java.EclipseLinkJavaOneToManyMapping;
-import org.eclipse.jpt.eclipselink1_1.core.resource.orm.XmlOneToMany;
-
-/**
- * VirtualBasic is an implementation of Basic used when there is 
- * no tag in the orm.xml and an underlying javaBasicMapping exists.
- */
-public class EclipseLink1_1VirtualXmlOneToMany<T extends EclipseLinkJavaOneToManyMapping>
-	extends EclipseLinkVirtualXmlOneToMany<T>
-	implements XmlOneToMany
-{
-		
-	public EclipseLink1_1VirtualXmlOneToMany(
-			OrmTypeMapping ormTypeMapping, T javaOneToManyMapping) {
-		super(ormTypeMapping, javaOneToManyMapping);
-	}
-	
-	public AccessType getAccess() {
-		return org.eclipse.jpt.core.context.AccessType.toOrmResourceModel(this.javaAttributeMapping.getPersistentAttribute().getAccess());
-	}
-	
-	public void setAccess(AccessType value) {
-		throw new UnsupportedOperationException("cannot set values on a virtual mapping"); //$NON-NLS-1$
-	}
-}
diff --git a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/context/orm/EclipseLink1_1VirtualXmlOneToOne.java b/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/context/orm/EclipseLink1_1VirtualXmlOneToOne.java
deleted file mode 100644
index 68f9624..0000000
--- a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/context/orm/EclipseLink1_1VirtualXmlOneToOne.java
+++ /dev/null
@@ -1,35 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.eclipselink.core.internal.context.orm;
-
-import org.eclipse.jpt.core.context.java.JavaOneToOneMapping;
-import org.eclipse.jpt.core.context.orm.OrmTypeMapping;
-import org.eclipse.jpt.core.resource.orm.AccessType;
-import org.eclipse.jpt.eclipselink1_1.core.resource.orm.XmlOneToOne;
-
-/**
- * VirtualBasic is an implementation of Basic used when there is 
- * no tag in the orm.xml and an underlying javaBasicMapping exists.
- */
-public class EclipseLink1_1VirtualXmlOneToOne extends EclipseLinkVirtualXmlOneToOne implements XmlOneToOne
-{
-		
-	public EclipseLink1_1VirtualXmlOneToOne(OrmTypeMapping ormTypeMapping, JavaOneToOneMapping javaOneToOneMapping) {
-		super(ormTypeMapping, javaOneToOneMapping);
-	}
-	
-	public AccessType getAccess() {
-		return org.eclipse.jpt.core.context.AccessType.toOrmResourceModel(this.javaAttributeMapping.getPersistentAttribute().getAccess());
-	}
-	
-	public void setAccess(AccessType value) {
-		throw new UnsupportedOperationException("cannot set values on a virtual mapping"); //$NON-NLS-1$
-	}
-}
diff --git a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/context/orm/EclipseLink1_1VirtualXmlTransformation.java b/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/context/orm/EclipseLink1_1VirtualXmlTransformation.java
deleted file mode 100644
index 3e8e650..0000000
--- a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/context/orm/EclipseLink1_1VirtualXmlTransformation.java
+++ /dev/null
@@ -1,35 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.eclipselink.core.internal.context.orm;
-
-import org.eclipse.jpt.core.context.orm.OrmTypeMapping;
-import org.eclipse.jpt.core.resource.orm.AccessType;
-import org.eclipse.jpt.eclipselink.core.internal.context.java.JavaTransformationMapping;
-import org.eclipse.jpt.eclipselink1_1.core.resource.orm.XmlTransformation;
-
-/**
- * VirtualBasic is an implementation of Basic used when there is 
- * no tag in the orm.xml and an underlying javaBasicMapping exists.
- */
-public class EclipseLink1_1VirtualXmlTransformation extends VirtualXmlTransformation implements XmlTransformation
-{
-
-	public EclipseLink1_1VirtualXmlTransformation(OrmTypeMapping ormTypeMapping, JavaTransformationMapping javaTransformationMapping) {
-		super(ormTypeMapping, javaTransformationMapping);
-	}
-	
-	public AccessType getAccess() {
-		return org.eclipse.jpt.core.context.AccessType.toOrmResourceModel(this.javaAttributeMapping.getPersistentAttribute().getAccess());
-	}
-	
-	public void setAccess(AccessType value) {
-		throw new UnsupportedOperationException("cannot set values on a virtual mapping"); //$NON-NLS-1$
-	}
-}
diff --git a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/context/orm/EclipseLink1_1VirtualXmlTransient.java b/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/context/orm/EclipseLink1_1VirtualXmlTransient.java
deleted file mode 100644
index c08b8c4..0000000
--- a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/context/orm/EclipseLink1_1VirtualXmlTransient.java
+++ /dev/null
@@ -1,37 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.eclipselink.core.internal.context.orm;
-
-import org.eclipse.jpt.core.context.java.JavaTransientMapping;
-import org.eclipse.jpt.core.context.orm.OrmTypeMapping;
-import org.eclipse.jpt.core.internal.context.orm.VirtualXmlTransient;
-import org.eclipse.jpt.core.resource.orm.AccessType;
-import org.eclipse.jpt.eclipselink1_1.core.resource.orm.XmlTransient;
-
-/**
- * VirtualBasic is an implementation of Basic used when there is 
- * no tag in the orm.xml and an underlying javaBasicMapping exists.
- */
-public class EclipseLink1_1VirtualXmlTransient extends VirtualXmlTransient implements XmlTransient
-{
-
-	public EclipseLink1_1VirtualXmlTransient(OrmTypeMapping ormTypeMapping, JavaTransientMapping javaTransientMapping) {
-		super(ormTypeMapping, javaTransientMapping);
-	}
-	
-	public AccessType getAccess() {
-		return org.eclipse.jpt.core.context.AccessType.toOrmResourceModel(this.javaAttributeMapping.getPersistentAttribute().getAccess());
-	}
-	
-	public void setAccess(AccessType value) {
-		throw new UnsupportedOperationException("cannot set values on a virtual mapping"); //$NON-NLS-1$
-	}
-
-}
diff --git a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/context/orm/EclipseLink1_1VirtualXmlVariableOneToOne.java b/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/context/orm/EclipseLink1_1VirtualXmlVariableOneToOne.java
deleted file mode 100644
index 3b68bab..0000000
--- a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/context/orm/EclipseLink1_1VirtualXmlVariableOneToOne.java
+++ /dev/null
@@ -1,36 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.eclipselink.core.internal.context.orm;
-
-import org.eclipse.jpt.core.context.orm.OrmTypeMapping;
-import org.eclipse.jpt.core.resource.orm.AccessType;
-import org.eclipse.jpt.eclipselink.core.internal.context.java.JavaVariableOneToOneMapping;
-import org.eclipse.jpt.eclipselink1_1.core.resource.orm.XmlVariableOneToOne;
-
-/**
- * VirtualBasic is an implementation of Basic used when there is 
- * no tag in the orm.xml and an underlying javaBasicMapping exists.
- */
-public class EclipseLink1_1VirtualXmlVariableOneToOne extends VirtualXmlVariableOneToOne implements XmlVariableOneToOne
-{
-
-	public EclipseLink1_1VirtualXmlVariableOneToOne(OrmTypeMapping ormTypeMapping, JavaVariableOneToOneMapping javaVariableOneToOneMapping) {
-		super(ormTypeMapping, javaVariableOneToOneMapping);
-	}
-	
-	public AccessType getAccess() {
-		return org.eclipse.jpt.core.context.AccessType.toOrmResourceModel(this.javaAttributeMapping.getPersistentAttribute().getAccess());
-	}
-	
-	public void setAccess(AccessType value) {
-		throw new UnsupportedOperationException("cannot set values on a virtual mapping"); //$NON-NLS-1$
-	}
-
-}
diff --git a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/context/orm/EclipseLink1_1VirtualXmlVersion.java b/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/context/orm/EclipseLink1_1VirtualXmlVersion.java
deleted file mode 100644
index 8c1e28b..0000000
--- a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/context/orm/EclipseLink1_1VirtualXmlVersion.java
+++ /dev/null
@@ -1,35 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.eclipselink.core.internal.context.orm;
-
-import org.eclipse.jpt.core.context.java.JavaVersionMapping;
-import org.eclipse.jpt.core.context.orm.OrmTypeMapping;
-import org.eclipse.jpt.core.resource.orm.AccessType;
-import org.eclipse.jpt.eclipselink1_1.core.resource.orm.XmlVersion;
-
-/**
- * VirtualBasic is an implementation of Basic used when there is 
- * no tag in the orm.xml and an underlying javaBasicMapping exists.
- */
-public class EclipseLink1_1VirtualXmlVersion extends EclipseLinkVirtualXmlVersion implements XmlVersion
-{
-		
-	public EclipseLink1_1VirtualXmlVersion(OrmTypeMapping ormTypeMapping, JavaVersionMapping javaVersionMapping) {
-		super(ormTypeMapping, javaVersionMapping);
-	}
-	
-	public AccessType getAccess() {
-		return org.eclipse.jpt.core.context.AccessType.toOrmResourceModel(this.javaAttributeMapping.getPersistentAttribute().getAccess());
-	}
-	
-	public void setAccess(AccessType value) {
-		throw new UnsupportedOperationException("cannot set values on a virtual mapping"); //$NON-NLS-1$
-	}
-}
diff --git a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/context/orm/EclipseLinkEntityMappings.java b/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/context/orm/EclipseLinkEntityMappings.java
deleted file mode 100644
index cc9ca52..0000000
--- a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/context/orm/EclipseLinkEntityMappings.java
+++ /dev/null
@@ -1,27 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.eclipselink.core.internal.context.orm;
-
-import java.util.ListIterator;
-import org.eclipse.jpt.core.context.orm.EntityMappings;
-import org.eclipse.jpt.core.context.orm.OrmNamedNativeQuery;
-import org.eclipse.jpt.core.context.orm.OrmNamedQuery;
-
-public interface EclipseLinkEntityMappings 
-	extends EntityMappings
-{
-	
-	ConverterHolder getConverterHolder();
-
-	// hmmm - these suppress various warnings in EclipseLinkEntityMappingImpl...
-	ListIterator<OrmNamedQuery> namedQueries();
-	ListIterator<OrmNamedNativeQuery> namedNativeQueries();
-
-}
diff --git a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/context/orm/EclipseLinkEntityMappingsImpl.java b/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/context/orm/EclipseLinkEntityMappingsImpl.java
deleted file mode 100644
index 5aaa342..0000000
--- a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/context/orm/EclipseLinkEntityMappingsImpl.java
+++ /dev/null
@@ -1,72 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008, 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.eclipselink.core.internal.context.orm;
-
-import java.util.List;
-import org.eclipse.jpt.core.context.orm.OrmPersistentType;
-import org.eclipse.jpt.core.context.orm.OrmXml;
-import org.eclipse.jpt.core.context.orm.PersistenceUnitMetadata;
-import org.eclipse.jpt.core.internal.context.orm.AbstractEntityMappings;
-import org.eclipse.jpt.core.resource.orm.XmlTypeMapping;
-import org.eclipse.jpt.eclipselink.core.internal.EclipseLinkJpaFactory;
-import org.eclipse.jpt.eclipselink.core.resource.orm.XmlEntityMappings;
-import org.eclipse.wst.validation.internal.provisional.core.IMessage;
-import org.eclipse.wst.validation.internal.provisional.core.IReporter;
-
-public class EclipseLinkEntityMappingsImpl
-	extends AbstractEntityMappings
-	implements EclipseLinkEntityMappings
-{
-
-	protected final EclipseLinkOrmConverterHolder converterHolder;
-	
-	public EclipseLinkEntityMappingsImpl(OrmXml parent, XmlEntityMappings resource) {
-		super(parent, resource);
-		this.converterHolder = new EclipseLinkOrmConverterHolder(this, (XmlEntityMappings) this.xmlEntityMappings);
-	}
-	
-	@Override
-	protected PersistenceUnitMetadata buildPersistenceUnitMetadata() {
-		return 	getJpaFactory().buildEclipseLinkPersistenceUnitMetadata(this, (XmlEntityMappings) this.xmlEntityMappings);
-	}	
-	
-	@Override
-	protected OrmPersistentType buildPersistentType(XmlTypeMapping resourceMapping) {
-		return getJpaFactory().buildEclipseLinkOrmPersistentType(this, resourceMapping);
-	}
-	
-	// **************** JpaNode impl *******************************************
-	
-	@Override
-	protected EclipseLinkJpaFactory getJpaFactory() {
-		return (EclipseLinkJpaFactory) super.getJpaFactory();
-	}
-	
-	// **************** EclipseLinkEntityMappings impl **********************************
-
-	public ConverterHolder getConverterHolder() {
-		return this.converterHolder;
-	}
-	
-	
-	@Override
-	public void update() {
-		super.update();
-		this.converterHolder.update();
-	}
-	
-	// **************** validation *********************************************
-	
-	@Override
-	public void validate(List<IMessage> messages, IReporter reporter) {
-		super.validate(messages, reporter);
-		this.converterHolder.validate(messages, reporter);
-	}
-}
diff --git a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/context/orm/EclipseLinkOrmBasicMapping.java b/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/context/orm/EclipseLinkOrmBasicMapping.java
deleted file mode 100644
index 874ec6d..0000000
--- a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/context/orm/EclipseLinkOrmBasicMapping.java
+++ /dev/null
@@ -1,79 +0,0 @@
-/*******************************************************************************
- *  Copyright (c) 2008, 2009 Oracle. 
- *  All rights reserved.  This program and the accompanying materials are 
- *  made available under the terms of the Eclipse Public License v1.0 which 
- *  accompanies this distribution, and is available at 
- *  http://www.eclipse.org/legal/epl-v10.html
- *  
- *  Contributors: 
- *  	Oracle - initial API and implementation
- *******************************************************************************/
-package org.eclipse.jpt.eclipselink.core.internal.context.orm;
-
-import java.util.List;
-import org.eclipse.jpt.core.context.orm.OrmConverter;
-import org.eclipse.jpt.core.context.orm.OrmPersistentAttribute;
-import org.eclipse.jpt.core.internal.context.orm.GenericOrmBasicMapping;
-import org.eclipse.jpt.eclipselink.core.context.Convert;
-import org.eclipse.jpt.eclipselink.core.context.EclipseLinkBasicMapping;
-import org.eclipse.jpt.eclipselink.core.context.Mutable;
-import org.eclipse.jpt.eclipselink.core.resource.orm.XmlBasic;
-import org.eclipse.wst.validation.internal.provisional.core.IMessage;
-import org.eclipse.wst.validation.internal.provisional.core.IReporter;
-
-public class EclipseLinkOrmBasicMapping<T extends XmlBasic>
-	extends GenericOrmBasicMapping<T>
-	implements EclipseLinkBasicMapping
-{
-	protected EclipseLinkOrmMutable mutable;
-	
-	
-	public EclipseLinkOrmBasicMapping(OrmPersistentAttribute parent, T resourceMapping) {
-		super(parent, resourceMapping);
-		this.mutable = new EclipseLinkOrmMutable(this, this.resourceAttributeMapping);
-	}
-	
-	
-	public Mutable getMutable() {
-		return this.mutable;
-	}
-
-	@Override
-	protected OrmConverter buildSpecifiedConverter(String converterType) {
-		OrmConverter ormConverter = super.buildSpecifiedConverter(converterType);
-		if (ormConverter != null) {
-			return ormConverter;
-		}
-		if (converterType == Convert.ECLIPSE_LINK_CONVERTER) {
-			return new EclipseLinkOrmConvert(this, this.resourceAttributeMapping);
-		}
-		return null;
-	}
-
-	@Override
-	protected String getResourceConverterType() {
-		//check @Convert first, this is the order that EclipseLink searches
-		if (((XmlBasic) this.resourceAttributeMapping).getConvert() != null) {
-			return Convert.ECLIPSE_LINK_CONVERTER;
-		}
-		return super.getResourceConverterType();
-	}
-	
-	
-	// **************** resource-context interaction ***************************
-	
-	@Override
-	public void update() {
-		super.update();
-		this.mutable.update();
-	}
-	
-	
-	// **************** validation **************************************
-	
-	@Override
-	public void validate(List<IMessage> messages, IReporter reporter) {
-		super.validate(messages, reporter);
-		// TODO - mutable validation
-	}
-}
diff --git a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/context/orm/EclipseLinkOrmBasicMappingProvider.java b/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/context/orm/EclipseLinkOrmBasicMappingProvider.java
deleted file mode 100644
index 7626a17..0000000
--- a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/context/orm/EclipseLinkOrmBasicMappingProvider.java
+++ /dev/null
@@ -1,67 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008, 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.eclipselink.core.internal.context.orm;
-
-import org.eclipse.core.runtime.content.IContentType;
-import org.eclipse.jpt.core.JpaFactory;
-import org.eclipse.jpt.core.MappingKeys;
-import org.eclipse.jpt.core.context.java.JavaAttributeMapping;
-import org.eclipse.jpt.core.context.java.JavaBasicMapping;
-import org.eclipse.jpt.core.context.orm.OrmAttributeMapping;
-import org.eclipse.jpt.core.context.orm.OrmAttributeMappingProvider;
-import org.eclipse.jpt.core.context.orm.OrmPersistentAttribute;
-import org.eclipse.jpt.core.context.orm.OrmTypeMapping;
-import org.eclipse.jpt.core.resource.orm.XmlAttributeMapping;
-import org.eclipse.jpt.eclipselink.core.internal.EclipseLinkJpaFactory;
-import org.eclipse.jpt.eclipselink.core.internal.JptEclipseLinkCorePlugin;
-import org.eclipse.jpt.eclipselink.core.resource.orm.EclipseLinkOrmFactory;
-import org.eclipse.jpt.eclipselink.core.resource.orm.XmlBasic;
-
-public class EclipseLinkOrmBasicMappingProvider
-	implements OrmAttributeMappingProvider
-{
-	// singleton
-	private static final OrmAttributeMappingProvider INSTANCE = new EclipseLinkOrmBasicMappingProvider();
-
-	/**
-	 * Return the singleton.
-	 */
-	public static OrmAttributeMappingProvider instance() {
-		return INSTANCE;
-	}
-
-	/**
-	 * Ensure single instance.
-	 */
-	private EclipseLinkOrmBasicMappingProvider() {
-		super();
-	}
-
-	public IContentType getContentType() {
-		return JptEclipseLinkCorePlugin.ECLIPSELINK_ORM_XML_CONTENT_TYPE;
-	}
-
-	public String getKey() {
-		return MappingKeys.BASIC_ATTRIBUTE_MAPPING_KEY;
-	}
-	
-	public XmlAttributeMapping buildResourceMapping() {
-		return EclipseLinkOrmFactory.eINSTANCE.createXmlBasicImpl();
-	}
-	
-	public OrmAttributeMapping buildMapping(OrmPersistentAttribute parent, XmlAttributeMapping resourceMapping, JpaFactory factory) {
-		return ((EclipseLinkJpaFactory) factory).buildEclipseLinkOrmBasicMapping(parent, (XmlBasic) resourceMapping);
-	}
-
-	public XmlAttributeMapping buildVirtualResourceMapping(OrmTypeMapping ormTypeMapping, JavaAttributeMapping javaAttributeMapping, JpaFactory factory) {
-		return ((EclipseLinkJpaFactory) factory).buildEclipseLinkVirtualXmlBasic(ormTypeMapping, (JavaBasicMapping) javaAttributeMapping);
-	}
-
-}
diff --git a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/context/orm/EclipseLinkOrmCaching.java b/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/context/orm/EclipseLinkOrmCaching.java
deleted file mode 100644
index 1c832cb..0000000
--- a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/context/orm/EclipseLinkOrmCaching.java
+++ /dev/null
@@ -1,662 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008, 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.eclipselink.core.internal.context.orm;
-
-import org.eclipse.jpt.core.context.orm.OrmTypeMapping;
-import org.eclipse.jpt.core.internal.context.AbstractXmlContextNode;
-import org.eclipse.jpt.core.utility.TextRange;
-import org.eclipse.jpt.eclipselink.core.context.CacheCoordinationType;
-import org.eclipse.jpt.eclipselink.core.context.CacheType;
-import org.eclipse.jpt.eclipselink.core.context.ExistenceType;
-import org.eclipse.jpt.eclipselink.core.context.ExpiryTimeOfDay;
-import org.eclipse.jpt.eclipselink.core.context.java.JavaCaching;
-import org.eclipse.jpt.eclipselink.core.context.orm.OrmCaching;
-import org.eclipse.jpt.eclipselink.core.resource.orm.EclipseLinkOrmFactory;
-import org.eclipse.jpt.eclipselink.core.resource.orm.XmlCache;
-import org.eclipse.jpt.eclipselink.core.resource.orm.XmlCacheHolder;
-import org.eclipse.jpt.eclipselink.core.resource.orm.XmlTimeOfDay;
-
-public class EclipseLinkOrmCaching extends AbstractXmlContextNode
-	implements OrmCaching
-{
-	protected final XmlCacheHolder resource;
-	
-	protected int defaultSize;
-	protected Integer specifiedSize;
-	
-	protected boolean defaultShared;
-	protected Boolean specifiedShared;
-	
-	protected CacheType defaultType;
-	protected CacheType specifiedType;
-	
-	protected boolean defaultAlwaysRefresh;
-	protected Boolean specifiedAlwaysRefresh;
-	
-	protected boolean defaultRefreshOnlyIfNewer;
-	protected Boolean specifiedRefreshOnlyIfNewer;
-	
-	protected boolean defaultDisableHits;
-	protected Boolean specifiedDisableHits;
-	
-	protected CacheCoordinationType defaultCoordinationType;
-	protected CacheCoordinationType specifiedCoordinationType;
-	
-	protected ExistenceType specifiedExistenceType;
-	protected ExistenceType defaultExistenceType;
-	
-	protected Integer expiry;
-	protected EclipseLinkOrmExpiryTimeOfDay expiryTimeOfDay;
-	
-	public EclipseLinkOrmCaching(OrmTypeMapping parent, XmlCacheHolder resource, JavaCaching javaCaching) {
-		super(parent);
-		this.resource = resource;
-		XmlCache resourceCache = getResourceCache();
-		this.defaultSize = this.defaultSize(javaCaching);
-		this.specifiedSize = getResourceSize(resourceCache);
-		this.defaultShared = this.defaultShared(javaCaching);
-		this.specifiedShared = this.getResourceShared(resourceCache);
-		this.defaultAlwaysRefresh = this.defaultAlwaysRefresh(javaCaching);
-		this.specifiedAlwaysRefresh = this.getResourceAlwaysRefresh(resourceCache);
-		this.defaultRefreshOnlyIfNewer = this.defaultRefreshOnlyIfNewer(javaCaching);
-		this.specifiedRefreshOnlyIfNewer = this.getResourceRefreshOnlyIfNewer(resourceCache);
-		this.defaultDisableHits = this.defaultDisableHits(javaCaching);
-		this.specifiedDisableHits = this.getResourceDisableHits(resourceCache);
-		this.defaultType = this.defaultType(javaCaching);
-		this.specifiedType = this.getResourceType(resourceCache);
-		this.defaultCoordinationType = this.defaultCoordinationType(javaCaching);
-		this.specifiedCoordinationType = this.getResourceCoordinationType(resourceCache);
-		this.defaultExistenceType = this.defaultExistenceType(javaCaching);
-		this.specifiedExistenceType = this.getResourceExistenceChecking();
-		this.initializeExpiry(resourceCache);
-	}
-
-	public int getSize() {
-		return (this.specifiedSize == null) ? this.defaultSize : this.specifiedSize.intValue();
-	}
-	
-	public int getDefaultSize() {
-		return this.defaultSize;
-	}
-	
-	protected void setDefaultSize(int newSize) {
-		int oldSize = this.defaultSize;
-		this.defaultSize = newSize;
-		firePropertyChanged(DEFAULT_SIZE_PROPERTY, oldSize, newSize);
-	}
-	
-	public Integer getSpecifiedSize() {
-		return this.specifiedSize;
-	}
-	
-	public void setSpecifiedSize(Integer newSpecifiedSize) {
-		Integer oldSpecifiedSize = this.specifiedSize;
-		this.specifiedSize = newSpecifiedSize;
-		if (oldSpecifiedSize != newSpecifiedSize) {
-			if (this.getResourceCache() != null) {
-				this.getResourceCache().setSize(newSpecifiedSize);						
-				if (this.getResourceCache().isUnset()) {
-					removeResourceCache();
-				}
-			}
-			else if (newSpecifiedSize != null) {
-				addResourceCache();
-				getResourceCache().setSize(newSpecifiedSize);
-			}
-		}
-		firePropertyChanged(SPECIFIED_SIZE_PROPERTY, oldSpecifiedSize, newSpecifiedSize);		
-	}
-	
-	protected void setSpecifiedSize_(Integer newSpecifiedSize) {
-		Integer oldSpecifiedSize = this.specifiedSize;
-		this.specifiedSize = newSpecifiedSize;
-		firePropertyChanged(SPECIFIED_SIZE_PROPERTY, oldSpecifiedSize, newSpecifiedSize);
-	}
-	
-	
-	public boolean isShared() {
-		return (this.specifiedShared == null) ? this.defaultShared : this.specifiedShared.booleanValue();
-	}
-	
-	public boolean isDefaultShared() {
-		return this.defaultShared;
-	}
-	
-	protected void setDefaultShared(boolean newDefaultShared) {
-		boolean oldDefaultShared = this.defaultShared;
-		this.defaultShared = newDefaultShared;
-		firePropertyChanged(DEFAULT_SHARED_PROPERTY, oldDefaultShared, newDefaultShared);	
-	}
-	
-	public Boolean getSpecifiedShared() {
-		return this.specifiedShared;
-	}
-	
-	public void setSpecifiedShared(Boolean newSpecifiedShared) {
-		Boolean oldSpecifiedShared = this.specifiedShared;
-		this.specifiedShared = newSpecifiedShared;
-		if (oldSpecifiedShared != newSpecifiedShared) {
-			if (this.getResourceCache() != null) {
-				this.getResourceCache().setShared(newSpecifiedShared);						
-				if (this.getResourceCache().isUnset()) {
-					removeResourceCache();
-				}
-			}
-			else if (newSpecifiedShared != null) {
-				addResourceCache();
-				getResourceCache().setShared(newSpecifiedShared);
-			}
-		}
-		firePropertyChanged(SPECIFIED_SHARED_PROPERTY, oldSpecifiedShared, newSpecifiedShared);		
-		if (newSpecifiedShared == Boolean.FALSE) {
-			setSpecifiedType(null);
-			setSpecifiedSize(null);
-			setSpecifiedAlwaysRefresh(null);
-			setSpecifiedRefreshOnlyIfNewer(null);
-			setSpecifiedDisableHits(null);
-			setSpecifiedCoordinationType(null);
-			setExpiry(null);
-			if (this.expiryTimeOfDay != null) {
-				removeExpiryTimeOfDay();
-			}
-		}
-	}
-	
-	protected void setSpecifiedShared_(Boolean newSpecifiedShared) {
-		Boolean oldSpecifiedShared = this.specifiedShared;
-		this.specifiedShared = newSpecifiedShared;
-		firePropertyChanged(SPECIFIED_SHARED_PROPERTY, oldSpecifiedShared, newSpecifiedShared);	
-	}
-	
-	
-	public boolean isAlwaysRefresh() {
-		return (this.specifiedAlwaysRefresh == null) ? this.defaultAlwaysRefresh : this.specifiedAlwaysRefresh.booleanValue();
-	}
-	
-	public boolean isDefaultAlwaysRefresh() {
-		return this.defaultAlwaysRefresh;
-	}
-	
-	protected void setDefaultAlwaysRefresh(boolean newDefaultAlwaysRefresh) {
-		boolean oldDefaultAlwaysRefresh = this.defaultAlwaysRefresh;
-		this.defaultAlwaysRefresh = newDefaultAlwaysRefresh;
-		firePropertyChanged(DEFAULT_ALWAYS_REFRESH_PROPERTY, oldDefaultAlwaysRefresh, newDefaultAlwaysRefresh);	
-	}
-	
-	public Boolean getSpecifiedAlwaysRefresh() {
-		return this.specifiedAlwaysRefresh;
-	}
-	
-	public void setSpecifiedAlwaysRefresh(Boolean newSpecifiedAlwaysRefresh) {
-		Boolean oldSpecifiedAlwaysRefresh = this.specifiedAlwaysRefresh;
-		this.specifiedAlwaysRefresh = newSpecifiedAlwaysRefresh;
-		if (oldSpecifiedAlwaysRefresh != newSpecifiedAlwaysRefresh) {
-			if (this.getResourceCache() != null) {
-				this.getResourceCache().setAlwaysRefresh(newSpecifiedAlwaysRefresh);						
-				if (this.getResourceCache().isUnset()) {
-					removeResourceCache();
-				}
-			}
-			else if (newSpecifiedAlwaysRefresh != null) {
-				addResourceCache();
-				getResourceCache().setAlwaysRefresh(newSpecifiedAlwaysRefresh);
-			}
-		}
-		firePropertyChanged(SPECIFIED_ALWAYS_REFRESH_PROPERTY, oldSpecifiedAlwaysRefresh, newSpecifiedAlwaysRefresh);		
-	}
-	
-	protected void setSpecifiedAlwaysRefresh_(Boolean newSpecifiedAlwaysRefresh) {
-		Boolean oldSpecifiedAlwaysRefresh = this.specifiedAlwaysRefresh;
-		this.specifiedAlwaysRefresh = newSpecifiedAlwaysRefresh;
-		firePropertyChanged(SPECIFIED_ALWAYS_REFRESH_PROPERTY, oldSpecifiedAlwaysRefresh, newSpecifiedAlwaysRefresh);	
-	}
-	
-	
-	public boolean isRefreshOnlyIfNewer() {
-		return (this.specifiedRefreshOnlyIfNewer == null) ? this.defaultRefreshOnlyIfNewer : this.specifiedRefreshOnlyIfNewer.booleanValue();
-	}
-	
-	public boolean isDefaultRefreshOnlyIfNewer() {
-		return this.defaultRefreshOnlyIfNewer;
-	}
-	
-	protected void setDefaultRefreshOnlyIfNewer(boolean newDefaultRefreshOnlyIfNewer) {
-		boolean oldDefaultRefreshOnlyIfNewer = this.defaultRefreshOnlyIfNewer;
-		this.defaultRefreshOnlyIfNewer = newDefaultRefreshOnlyIfNewer;
-		firePropertyChanged(DEFAULT_REFRESH_ONLY_IF_NEWER_PROPERTY, oldDefaultRefreshOnlyIfNewer, newDefaultRefreshOnlyIfNewer);	
-	}
-	
-	public Boolean getSpecifiedRefreshOnlyIfNewer() {
-		return this.specifiedRefreshOnlyIfNewer;
-	}
-	
-	public void setSpecifiedRefreshOnlyIfNewer(Boolean newSpecifiedRefreshOnlyIfNewer) {
-		Boolean oldSpecifiedRefreshOnlyIfNewer = this.specifiedRefreshOnlyIfNewer;
-		this.specifiedRefreshOnlyIfNewer = newSpecifiedRefreshOnlyIfNewer;
-		if (oldSpecifiedRefreshOnlyIfNewer != newSpecifiedRefreshOnlyIfNewer) {
-			if (this.getResourceCache() != null) {
-				this.getResourceCache().setRefreshOnlyIfNewer(newSpecifiedRefreshOnlyIfNewer);						
-				if (this.getResourceCache().isUnset()) {
-					removeResourceCache();
-				}
-			}
-			else if (newSpecifiedRefreshOnlyIfNewer != null) {
-				addResourceCache();
-				getResourceCache().setRefreshOnlyIfNewer(newSpecifiedRefreshOnlyIfNewer);
-			}
-		}
-		firePropertyChanged(SPECIFIED_REFRESH_ONLY_IF_NEWER_PROPERTY, oldSpecifiedRefreshOnlyIfNewer, newSpecifiedRefreshOnlyIfNewer);		
-	}
-	
-	protected void setSpecifiedRefreshOnlyIfNewer_(Boolean newSpecifiedRefreshOnlyIfNewer) {
-		Boolean oldSpecifiedRefreshOnlyIfNewer = this.specifiedRefreshOnlyIfNewer;
-		this.specifiedRefreshOnlyIfNewer = newSpecifiedRefreshOnlyIfNewer;
-		firePropertyChanged(SPECIFIED_REFRESH_ONLY_IF_NEWER_PROPERTY, oldSpecifiedRefreshOnlyIfNewer, newSpecifiedRefreshOnlyIfNewer);	
-	}
-	
-	
-	public boolean isDisableHits() {
-		return (this.specifiedDisableHits == null) ? this.defaultDisableHits : this.specifiedDisableHits.booleanValue();
-	}
-	
-	public boolean isDefaultDisableHits() {
-		return this.defaultDisableHits;
-	}
-	
-	protected void setDefaultDisableHits(boolean newDefaultDisableHits) {
-		boolean oldDefaultDisableHits = this.defaultDisableHits;
-		this.defaultDisableHits = newDefaultDisableHits;
-		firePropertyChanged(DEFAULT_DISABLE_HITS_PROPERTY, oldDefaultDisableHits, newDefaultDisableHits);	
-	}
-	
-	public Boolean getSpecifiedDisableHits() {
-		return this.specifiedDisableHits;
-	}
-	
-	public void setSpecifiedDisableHits(Boolean newSpecifiedDisableHits) {
-		Boolean oldSpecifiedDisableHits = this.specifiedDisableHits;
-		this.specifiedDisableHits = newSpecifiedDisableHits;
-		if (oldSpecifiedDisableHits != newSpecifiedDisableHits) {
-			if (this.getResourceCache() != null) {
-				this.getResourceCache().setDisableHits(newSpecifiedDisableHits);						
-				if (this.getResourceCache().isUnset()) {
-					removeResourceCache();
-				}
-			}
-			else if (newSpecifiedDisableHits != null) {
-				addResourceCache();
-				getResourceCache().setDisableHits(newSpecifiedDisableHits);
-			}
-		}
-		firePropertyChanged(SPECIFIED_DISABLE_HITS_PROPERTY, oldSpecifiedDisableHits, newSpecifiedDisableHits);		
-	}
-	
-	protected void setSpecifiedDisableHits_(Boolean newSpecifiedDisableHits) {
-		Boolean oldSpecifiedDisableHits = this.specifiedDisableHits;
-		this.specifiedDisableHits = newSpecifiedDisableHits;
-		firePropertyChanged(SPECIFIED_DISABLE_HITS_PROPERTY, oldSpecifiedDisableHits, newSpecifiedDisableHits);	
-	}
-	
-	public CacheType getType() {
-		return (this.specifiedType == null) ? this.defaultType : this.specifiedType;
-	}
-
-	public CacheType getDefaultType() {
-		return this.defaultType;
-	}
-	
-	protected void setDefaultType(CacheType newDefaultType) {
-		CacheType oldDefaultType= this.defaultType;
-		this.defaultType = newDefaultType;
-		firePropertyChanged(DEFAULT_TYPE_PROPERTY, oldDefaultType, newDefaultType);				
-	}
-	
-	public CacheType getSpecifiedType() {
-		return this.specifiedType;
-	}
-	
-	public void setSpecifiedType(CacheType newSpecifiedType) {
-		CacheType oldSpecifiedType = this.specifiedType;
-		this.specifiedType = newSpecifiedType;
-		if (oldSpecifiedType != newSpecifiedType) {
-			if (this.getResourceCache() != null) {
-				this.getResourceCache().setType(CacheType.toOrmResourceModel(newSpecifiedType));						
-				if (this.getResourceCache().isUnset()) {
-					removeResourceCache();
-				}
-			}
-			else if (newSpecifiedType != null) {
-				addResourceCache();
-				getResourceCache().setType(CacheType.toOrmResourceModel(newSpecifiedType));
-			}
-		}
-		firePropertyChanged(SPECIFIED_TYPE_PROPERTY, oldSpecifiedType, newSpecifiedType);		
-	}
-	
-	protected void setSpecifiedType_(CacheType newSpecifiedType) {
-		CacheType oldSpecifiedType= this.specifiedType;
-		this.specifiedType = newSpecifiedType;
-		firePropertyChanged(SPECIFIED_TYPE_PROPERTY, oldSpecifiedType, newSpecifiedType);		
-	}
-	
-	
-	public CacheCoordinationType getCoordinationType() {
-		return (this.specifiedCoordinationType == null) ? this.defaultCoordinationType : this.specifiedCoordinationType;
-	}
-	
-	public CacheCoordinationType getDefaultCoordinationType() {
-		return this.defaultCoordinationType;
-	}
-	
-	protected void setDefaultCoordinationType(CacheCoordinationType newDefaultcCoordinationType) {
-		CacheCoordinationType oldDefaultcCoordinationType= this.defaultCoordinationType;
-		this.defaultCoordinationType = newDefaultcCoordinationType;
-		firePropertyChanged(DEFAULT_COORDINATION_TYPE_PROPERTY, oldDefaultcCoordinationType, newDefaultcCoordinationType);				
-	}
-	
-	public CacheCoordinationType getSpecifiedCoordinationType() {
-		return this.specifiedCoordinationType;
-	}
-	
-	public void setSpecifiedCoordinationType(CacheCoordinationType newSpecifiedCoordinationType) {
-		CacheCoordinationType oldSpecifiedCoordinationType = this.specifiedCoordinationType;
-		this.specifiedCoordinationType = newSpecifiedCoordinationType;
-		if (oldSpecifiedCoordinationType != newSpecifiedCoordinationType) {
-			if (this.getResourceCache() != null) {
-				this.getResourceCache().setCoordinationType(CacheCoordinationType.toOrmResourceModel(newSpecifiedCoordinationType));						
-				if (this.getResourceCache().isUnset()) {
-					removeResourceCache();
-				}
-			}
-			else if (newSpecifiedCoordinationType != null) {
-				addResourceCache();
-				getResourceCache().setCoordinationType(CacheCoordinationType.toOrmResourceModel(newSpecifiedCoordinationType));
-			}
-		}
-		firePropertyChanged(SPECIFIED_COORDINATION_TYPE_PROPERTY, oldSpecifiedCoordinationType, newSpecifiedCoordinationType);		
-	}
-	
-	protected void setSpecifiedCoordinationType_(CacheCoordinationType newSpecifiedCoordinationType) {
-		CacheCoordinationType oldSpecifiedCoordinationType = this.specifiedCoordinationType;
-		this.specifiedCoordinationType = newSpecifiedCoordinationType;
-		firePropertyChanged(SPECIFIED_COORDINATION_TYPE_PROPERTY, oldSpecifiedCoordinationType, newSpecifiedCoordinationType);		
-	}
-	
-	public ExistenceType getExistenceType() {
-		return (this.specifiedExistenceType == null) ? this.defaultExistenceType : this.specifiedExistenceType;
-	}
-	
-	public ExistenceType getDefaultExistenceType() {
-		return this.defaultExistenceType;
-	}
-	
-	protected void setDefaultExistenceType(ExistenceType newDefaultExistenceType) {
-		ExistenceType oldDefaultExistenceType = this.defaultExistenceType;
-		this.defaultExistenceType = newDefaultExistenceType;
-		firePropertyChanged(DEFAULT_EXISTENCE_TYPE_PROPERTY, oldDefaultExistenceType, newDefaultExistenceType);
-	}
-	
-	public ExistenceType getSpecifiedExistenceType() {
-		return this.specifiedExistenceType;
-	}
-	
-	public void setSpecifiedExistenceType(ExistenceType newSpecifiedExistenceType) {
-		ExistenceType oldSpecifiedExistenceType = this.specifiedExistenceType;
-		this.specifiedExistenceType = newSpecifiedExistenceType;
-		this.resource.setExistenceChecking(ExistenceType.toOrmResourceModel(newSpecifiedExistenceType));
-		firePropertyChanged(SPECIFIED_EXISTENCE_TYPE_PROPERTY, oldSpecifiedExistenceType, newSpecifiedExistenceType);			
-	}
-	
-	protected void setSpecifiedExistenceType_(ExistenceType newSpecifiedExistenceType) {
-		ExistenceType oldSpecifiedExistenceType = this.specifiedExistenceType;
-		this.specifiedExistenceType = newSpecifiedExistenceType;
-		firePropertyChanged(SPECIFIED_EXISTENCE_TYPE_PROPERTY, oldSpecifiedExistenceType, newSpecifiedExistenceType);		
-	}	
-	
-	public Integer getExpiry() {
-		return this.expiry;
-	}
-	
-	public void setExpiry(Integer newExpiry) {
-		Integer oldExpiry = this.expiry;
-		this.expiry = newExpiry;
-		if (oldExpiry != newExpiry) {
-			if (this.getResourceCache() != null) {
-				this.getResourceCache().setExpiry(newExpiry);						
-				if (this.getResourceCache().isUnset()) {
-					removeResourceCache();
-				}
-			}
-			else if (newExpiry != null) {
-				addResourceCache();
-				this.getResourceCache().setExpiry(newExpiry);						
-			}
-		}
-		firePropertyChanged(EXPIRY_PROPERTY, oldExpiry, newExpiry);
-		if (newExpiry != null && this.expiryTimeOfDay != null) {
-			removeExpiryTimeOfDay();
-		}
-	}
-	
-	protected void setExpiry_(Integer newExpiry) {
-		Integer oldExpiry = this.expiry;
-		this.expiry = newExpiry;		
-		firePropertyChanged(EXPIRY_PROPERTY, oldExpiry, newExpiry);
-	}
-	
-	public ExpiryTimeOfDay getExpiryTimeOfDay() {
-		return this.expiryTimeOfDay;
-	}
-	
-	public ExpiryTimeOfDay addExpiryTimeOfDay() {
-		if (this.expiryTimeOfDay != null) {
-			throw new IllegalStateException("expiryTimeOfDay already exists, use getExpiryTimeOfDay()"); //$NON-NLS-1$
-		}
-		if (getResourceCache() == null) {
-			addResourceCache();
-		}
-		EclipseLinkOrmExpiryTimeOfDay newExpiryTimeOfDay = new EclipseLinkOrmExpiryTimeOfDay(this);
-		this.expiryTimeOfDay = newExpiryTimeOfDay;
-		XmlTimeOfDay resourceTimeOfDay = EclipseLinkOrmFactory.eINSTANCE.createXmlTimeOfDay();
-		newExpiryTimeOfDay.initialize(resourceTimeOfDay);
-		getResourceCache().setExpiryTimeOfDay(resourceTimeOfDay);
-		firePropertyChanged(EXPIRY_TIME_OF_DAY_PROPERTY, null, newExpiryTimeOfDay);
-		setExpiry(null);
-		return newExpiryTimeOfDay;
-	}
-	
-	public void removeExpiryTimeOfDay() {
-		if (this.expiryTimeOfDay == null) {
-			throw new IllegalStateException("timeOfDayExpiry does not exist"); //$NON-NLS-1$
-		}
-		ExpiryTimeOfDay oldExpiryTimeOfDay = this.expiryTimeOfDay;
-		this.expiryTimeOfDay = null;
-		getResourceCache().setExpiryTimeOfDay(null);
-		if (this.getResourceCache().isUnset()) {
-			removeResourceCache();
-		}
-		firePropertyChanged(EXPIRY_TIME_OF_DAY_PROPERTY, oldExpiryTimeOfDay, null);
-	}
-	
-	protected void setExpiryTimeOfDay(EclipseLinkOrmExpiryTimeOfDay newExpiryTimeOfDay) {
-		EclipseLinkOrmExpiryTimeOfDay oldExpiryTimeOfDay = this.expiryTimeOfDay;
-		this.expiryTimeOfDay = newExpiryTimeOfDay;
-		firePropertyChanged(EXPIRY_TIME_OF_DAY_PROPERTY, oldExpiryTimeOfDay, newExpiryTimeOfDay);
-	}
-	
-	protected XmlCache getResourceCache() {
-		return this.resource.getCache();
-	}
-	
-	protected void addResourceCache() {
-		this.resource.setCache(EclipseLinkOrmFactory.eINSTANCE.createXmlCache());		
-	}
-	
-	protected void removeResourceCache() {
-		this.resource.setCache(null);
-	}
-	
-	
-	// **************** initialize/update **************************************
-
-	protected void initializeExpiry(XmlCache resourceCache) {
-		if (resourceCache == null) {
-			return;
-		}
-		if (resourceCache.getExpiryTimeOfDay() == null) {
-			this.expiry = resourceCache.getExpiry();
-		}
-		else {
-			if (resourceCache.getExpiry() == null) { //handle with validation if both expiry and expiryTimeOfDay are set
-				this.expiryTimeOfDay = new EclipseLinkOrmExpiryTimeOfDay(this);
-				this.expiryTimeOfDay.initialize(resourceCache.getExpiryTimeOfDay());
-			}
-		}
-	}
-
-	protected void update(JavaCaching javaCaching) {
-		XmlCache resourceCache = getResourceCache();
-		setDefaultSize(this.defaultSize(javaCaching));
-		setSpecifiedSize_(this.getResourceSize(resourceCache));
-		setDefaultShared(this.defaultShared(javaCaching));
-		setSpecifiedShared_(this.getResourceShared(resourceCache));
-		setDefaultAlwaysRefresh(this.defaultAlwaysRefresh(javaCaching));
-		setSpecifiedAlwaysRefresh_(this.getResourceAlwaysRefresh(resourceCache));
-		setDefaultRefreshOnlyIfNewer(this.defaultRefreshOnlyIfNewer(javaCaching));
-		setSpecifiedRefreshOnlyIfNewer_(this.getResourceRefreshOnlyIfNewer(resourceCache));
-		setDefaultDisableHits(this.defaultDisableHits(javaCaching));
-		setSpecifiedDisableHits_(this.getResourceDisableHits(resourceCache));
-		setDefaultType(this.defaultType(javaCaching));
-		setSpecifiedType_(this.getResourceType(resourceCache));
-		setDefaultCoordinationType(this.defaultCoordinationType(javaCaching));
-		setSpecifiedCoordinationType_(this.getResourceCoordinationType(resourceCache));
-		setDefaultExistenceType(this.defaultExistenceType(javaCaching));
-		setSpecifiedExistenceType_(this.getResourceExistenceChecking());
-		this.updateExpiry(resourceCache);
-	}
-	
-	protected void updateExpiry(XmlCache resourceCache) {
-		if (resourceCache == null) {
-			setExpiryTimeOfDay(null);
-			setExpiry_(null);
-			return;
-		}
-		if (resourceCache.getExpiryTimeOfDay() == null) {
-			setExpiryTimeOfDay(null);
-			setExpiry_(resourceCache.getExpiry());
-		}
-		else {
-			if (this.expiryTimeOfDay != null) {
-				this.expiryTimeOfDay.update(resourceCache.getExpiryTimeOfDay());
-			}
-			else if (resourceCache.getExpiry() == null){
-				setExpiryTimeOfDay(new EclipseLinkOrmExpiryTimeOfDay(this));
-				this.expiryTimeOfDay.initialize(resourceCache.getExpiryTimeOfDay());
-			}
-			else { //handle with validation if both expiry and expiryTimeOfDay are set
-				setExpiryTimeOfDay(null);
-			}
-		}
-	}
-	
-	protected int defaultSize(JavaCaching javaCaching) {
-		return (javaCaching == null) ? DEFAULT_SIZE : javaCaching.getSize();
-	}
-	
-	protected Integer getResourceSize(XmlCache resource) {
-		return (resource == null) ? null : resource.getSize();
-	}
-	
-	protected boolean defaultShared(JavaCaching javaCaching) {
-		if (javaCaching == null) {
-			return DEFAULT_SHARED;
-		}
-		return getResourceCache() == null ? javaCaching.isShared() : DEFAULT_SHARED;
-	}
-	
-	protected Boolean getResourceShared(XmlCache resource) {
-		return (resource == null) ? null : resource.getShared();
-	}
-	
-	protected boolean defaultAlwaysRefresh(JavaCaching javaCaching) {
-		if (javaCaching == null) {
-			return DEFAULT_ALWAYS_REFRESH;
-		}
-		return getResourceCache() == null ? javaCaching.isAlwaysRefresh() : DEFAULT_ALWAYS_REFRESH;
-	}
-	
-	protected Boolean getResourceAlwaysRefresh(XmlCache resource) {
-		return (resource == null) ? null : resource.getAlwaysRefresh();
-	}
-	
-	protected boolean defaultRefreshOnlyIfNewer(JavaCaching javaCaching) {
-		if (javaCaching == null) {
-			return DEFAULT_REFRESH_ONLY_IF_NEWER;
-		}
-		return getResourceCache() == null ? javaCaching.isRefreshOnlyIfNewer() : DEFAULT_REFRESH_ONLY_IF_NEWER;
-	}
-	
-	protected Boolean getResourceRefreshOnlyIfNewer(XmlCache resource) {
-		return (resource == null) ? null : resource.getRefreshOnlyIfNewer();
-	}
-	
-	protected boolean defaultDisableHits(JavaCaching javaCaching) {
-		if (javaCaching == null) {
-			return DEFAULT_DISABLE_HITS;
-		}
-		return getResourceCache() == null ? javaCaching.isDisableHits() : DEFAULT_DISABLE_HITS;
-	}
-	
-	protected Boolean getResourceDisableHits(XmlCache resource) {
-		return (resource == null) ? null : resource.getDisableHits();
-	}
-	
-	protected CacheType defaultType(JavaCaching javaCaching) {
-		if (javaCaching == null) {
-			return DEFAULT_TYPE;
-		}
-		return getResourceCache() == null ? javaCaching.getType() : DEFAULT_TYPE;
-	}
-	
-	protected CacheType getResourceType(XmlCache resource) {
-		return (resource == null) ? null : CacheType.fromOrmResourceModel(resource.getType());
-	}
-	
-	protected CacheCoordinationType defaultCoordinationType(JavaCaching javaCaching) {
-		if (javaCaching == null) {
-			return DEFAULT_COORDINATION_TYPE;
-		}
-		return getResourceCache() == null ? javaCaching.getCoordinationType() : DEFAULT_COORDINATION_TYPE;
-	}
-	
-	protected CacheCoordinationType getResourceCoordinationType(XmlCache resource) {
-		return (resource == null) ? null : CacheCoordinationType.fromOrmResourceModel(resource.getCoordinationType());
-	}
-	
-	protected ExistenceType defaultExistenceType(JavaCaching javaCaching) {
-		return (javaCaching == null) ? DEFAULT_EXISTENCE_TYPE : javaCaching.getExistenceType();
-	}
-	
-	protected ExistenceType getResourceExistenceChecking() {
-		return (this.resource == null) ? null : ExistenceType.fromOrmResourceModel(this.resource.getExistenceChecking());
-	}
-	
-	protected Integer getResourceExpiry(XmlCache resource) {
-		return (resource == null) ? null : resource.getExpiry();
-	}
-	
-	// **************** validation **************************************
-	
-	public TextRange getValidationTextRange() {
-		XmlCache resource = getResourceCache();
-		return resource == null ? null : resource.getValidationTextRange();
-	}
-
-}
diff --git a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/context/orm/EclipseLinkOrmChangeTracking.java b/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/context/orm/EclipseLinkOrmChangeTracking.java
deleted file mode 100644
index 42c7470..0000000
--- a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/context/orm/EclipseLinkOrmChangeTracking.java
+++ /dev/null
@@ -1,104 +0,0 @@
-/*******************************************************************************
- *  Copyright (c) 2008, 2009  Oracle. 
- *  All rights reserved.  This program and the accompanying materials are 
- *  made available under the terms of the Eclipse Public License v1.0 which 
- *  accompanies this distribution, and is available at 
- *  http://www.eclipse.org/legal/epl-v10.html
- *  
- *  Contributors: 
- *  	Oracle - initial API and implementation
- *******************************************************************************/
-package org.eclipse.jpt.eclipselink.core.internal.context.orm;
-
-import org.eclipse.jpt.core.context.orm.OrmTypeMapping;
-import org.eclipse.jpt.core.internal.context.AbstractXmlContextNode;
-import org.eclipse.jpt.core.utility.TextRange;
-import org.eclipse.jpt.eclipselink.core.context.ChangeTracking;
-import org.eclipse.jpt.eclipselink.core.context.ChangeTrackingType;
-import org.eclipse.jpt.eclipselink.core.resource.orm.EclipseLinkOrmFactory;
-import org.eclipse.jpt.eclipselink.core.resource.orm.XmlChangeTracking;
-import org.eclipse.jpt.eclipselink.core.resource.orm.XmlChangeTrackingHolder;
-
-public class EclipseLinkOrmChangeTracking extends AbstractXmlContextNode
-	implements ChangeTracking
-{
-	protected final XmlChangeTrackingHolder resource;
-	
-	protected ChangeTrackingType defaultType;
-	
-	protected ChangeTrackingType specifiedType;
-	
-	
-	public EclipseLinkOrmChangeTracking(OrmTypeMapping parent, XmlChangeTrackingHolder resource, ChangeTracking javaChangeTracking) {
-		super(parent);
-		this.resource = resource;
-		this.defaultType = calculateDefaultType(javaChangeTracking);
-		this.specifiedType = getResourceChangeTracking();
-	}
-	
-	
-	public ChangeTrackingType getType() {
-		return (getSpecifiedType() != null) ? getSpecifiedType() : getDefaultType();
-	}
-	
-	public ChangeTrackingType getDefaultType() {
-		return this.defaultType;
-	}
-	
-	protected void setDefaultType_(ChangeTrackingType newDefaultType) {
-		ChangeTrackingType oldDefaultType = this.defaultType;
-		this.defaultType = newDefaultType;
-		firePropertyChanged(DEFAULT_TYPE_PROPERTY, oldDefaultType, newDefaultType);
-	}
-	
-	public ChangeTrackingType getSpecifiedType() {
-		return this.specifiedType;
-	}
-	
-	public void setSpecifiedType(ChangeTrackingType newSpecifiedType) {
-		ChangeTrackingType oldSpecifiedType = this.specifiedType;
-		this.specifiedType = newSpecifiedType;
-		
-		if (newSpecifiedType == null) {
-			this.resource.setChangeTracking(null);
-		}
-		else {
-			if (this.resource.getChangeTracking() == null) {
-				this.resource.setChangeTracking(EclipseLinkOrmFactory.eINSTANCE.createXmlChangeTracking());
-			}
-			this.resource.getChangeTracking().setType(ChangeTrackingType.toOrmResourceModel(newSpecifiedType));
-		}
-		
-		firePropertyChanged(SPECIFIED_TYPE_PROPERTY, oldSpecifiedType, newSpecifiedType);
-	}
-	
-	protected void setSpecifiedType_(ChangeTrackingType newSpecifiedType) {
-		ChangeTrackingType oldSpecifiedType = this.specifiedType;
-		this.specifiedType = newSpecifiedType;
-		firePropertyChanged(SPECIFIED_TYPE_PROPERTY, oldSpecifiedType, newSpecifiedType);
-	}
-	
-	
-	// **************** updating **************************************
-	
-	protected void update(ChangeTracking javaChangeTracking) {
-		setDefaultType_(calculateDefaultType(javaChangeTracking));
-		setSpecifiedType_(getResourceChangeTracking());
-	}
-	
-	protected ChangeTrackingType calculateDefaultType(ChangeTracking javaChangeTracking) {
-		return (javaChangeTracking != null) ? javaChangeTracking.getType() : ChangeTracking.DEFAULT_TYPE;
-	}
-	
-	protected ChangeTrackingType getResourceChangeTracking() {
-		XmlChangeTracking xmlChangeTracking = this.resource.getChangeTracking();
-		return (xmlChangeTracking != null) ? ChangeTrackingType.fromOrmResourceModel(xmlChangeTracking.getType()) : null;
-	}
-	
-	
-	// **************** validation **************************************
-	
-	public TextRange getValidationTextRange() {
-		return this.resource.getValidationTextRange();
-	}
-}
diff --git a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/context/orm/EclipseLinkOrmConversionValue.java b/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/context/orm/EclipseLinkOrmConversionValue.java
deleted file mode 100644
index 443d94e..0000000
--- a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/context/orm/EclipseLinkOrmConversionValue.java
+++ /dev/null
@@ -1,127 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008, 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.eclipselink.core.internal.context.orm;
-
-import java.util.List;
-import org.eclipse.jpt.core.internal.context.AbstractXmlContextNode;
-import org.eclipse.jpt.core.utility.TextRange;
-import org.eclipse.jpt.eclipselink.core.context.ConversionValue;
-import org.eclipse.jpt.eclipselink.core.internal.DefaultEclipseLinkJpaValidationMessages;
-import org.eclipse.jpt.eclipselink.core.internal.EclipseLinkJpaValidationMessages;
-import org.eclipse.jpt.eclipselink.core.resource.orm.XmlConversionValue;
-import org.eclipse.jpt.utility.internal.CollectionTools;
-import org.eclipse.wst.validation.internal.provisional.core.IMessage;
-import org.eclipse.wst.validation.internal.provisional.core.IReporter;
-
-public class EclipseLinkOrmConversionValue extends AbstractXmlContextNode implements ConversionValue
-{	
-	private XmlConversionValue resourceConversionValue;
-	
-	private String dataValue;
-	
-	private String objectValue;
-	
-	public EclipseLinkOrmConversionValue(EclipseLinkOrmObjectTypeConverter parent) {
-		super(parent);
-	}
-	
-	@Override
-	public EclipseLinkOrmObjectTypeConverter getParent() {
-		return (EclipseLinkOrmObjectTypeConverter) super.getParent();
-	}
-
-	public TextRange getValidationTextRange() {
-		return this.resourceConversionValue.getValidationTextRange();
-	}
-	
-	public String getDataValue() {
-		return this.dataValue;
-	}
-
-	public void setDataValue(String newDataValue) {
-		String oldDataValue = this.dataValue;
-		this.dataValue = newDataValue;
-		this.resourceConversionValue.setDataValue(newDataValue);
-		firePropertyChanged(DATA_VALUE_PROPERTY, oldDataValue, newDataValue);
-	}
-	
-	protected void setDataValue_(String newDataValue) {
-		String oldDataValue = this.dataValue;
-		this.dataValue = newDataValue;
-		firePropertyChanged(DATA_VALUE_PROPERTY, oldDataValue, newDataValue);
-	}
-	
-	public String getObjectValue() {
-		return this.objectValue;
-	}
-
-	public void setObjectValue(String newObjectValue) {
-		String oldObjectValue = this.objectValue;
-		this.objectValue = newObjectValue;
-		this.resourceConversionValue.setObjectValue(newObjectValue);
-		firePropertyChanged(OBJECT_VALUE_PROPERTY, oldObjectValue, newObjectValue);
-	}
-	
-	protected void setObjectValue_(String newObjectValue) {
-		String oldObjectValue = this.objectValue;
-		this.objectValue = newObjectValue;
-		firePropertyChanged(OBJECT_VALUE_PROPERTY, oldObjectValue, newObjectValue);
-	}
-
-	public void initialize(XmlConversionValue resourceConversionValue) {
-		this.resourceConversionValue = resourceConversionValue;
-		this.dataValue = this.getResourceDataValue();
-		this.objectValue = this.getResourceObjectValue();
-	}
-	
-	public void update(XmlConversionValue resourceConversionValue) {
-		this.resourceConversionValue = resourceConversionValue;
-		this.setDataValue_(this.getResourceDataValue());
-		this.setObjectValue_(this.getResourceObjectValue());
-	}
-
-	protected String getResourceDataValue() {
-		return this.resourceConversionValue.getDataValue();
-	}
-
-	protected String getResourceObjectValue() {
-		return this.resourceConversionValue.getObjectValue();
-	}
-
-	public TextRange getDataValueTextRange() {
-		return this.resourceConversionValue.getDataValueTextRange();
-	}
-
-	public TextRange getObjectValueTextRange() {
-		return this.resourceConversionValue.getObjectValueTextRange();
-	}
-	
-	@Override
-	public void validate(List<IMessage> messages, IReporter reporter) {
-		super.validate(messages, reporter);
-		validateDataValuesUnique(messages);
-	}
-	
-	protected void validateDataValuesUnique(List<IMessage> messages) {
-		List<String> dataValues = CollectionTools.list(getParent().dataValues());
-		dataValues.remove(this.dataValue);
-		if (dataValues.contains(this.dataValue)) {
-			messages.add(
-				DefaultEclipseLinkJpaValidationMessages.buildMessage(
-					IMessage.HIGH_SEVERITY,
-					EclipseLinkJpaValidationMessages.MULTIPLE_OBJECT_VALUES_FOR_DATA_VALUE,
-					new String[] {this.dataValue}, 
-					this,
-					this.getDataValueTextRange()
-				)
-			);
-		}
-	}
-}
diff --git a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/context/orm/EclipseLinkOrmConvert.java b/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/context/orm/EclipseLinkOrmConvert.java
deleted file mode 100644
index 9a13e6a..0000000
--- a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/context/orm/EclipseLinkOrmConvert.java
+++ /dev/null
@@ -1,274 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008, 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.eclipselink.core.internal.context.orm;
-
-import java.util.List;
-import org.eclipse.jpt.core.context.orm.OrmAttributeMapping;
-import org.eclipse.jpt.core.context.orm.OrmConverter;
-import org.eclipse.jpt.core.internal.context.AbstractXmlContextNode;
-import org.eclipse.jpt.core.resource.xml.JpaEObject;
-import org.eclipse.jpt.core.utility.TextRange;
-import org.eclipse.jpt.eclipselink.core.context.Convert;
-import org.eclipse.jpt.eclipselink.core.context.EclipseLinkConverter;
-import org.eclipse.jpt.eclipselink.core.resource.orm.EclipseLinkOrmFactory;
-import org.eclipse.jpt.eclipselink.core.resource.orm.XmlConverter;
-import org.eclipse.jpt.eclipselink.core.resource.orm.XmlConvertibleMapping;
-import org.eclipse.jpt.eclipselink.core.resource.orm.XmlObjectTypeConverter;
-import org.eclipse.jpt.eclipselink.core.resource.orm.XmlStructConverter;
-import org.eclipse.jpt.eclipselink.core.resource.orm.XmlTypeConverter;
-import org.eclipse.wst.validation.internal.provisional.core.IMessage;
-import org.eclipse.wst.validation.internal.provisional.core.IReporter;
-
-public class EclipseLinkOrmConvert extends AbstractXmlContextNode implements Convert, OrmConverter
-{
-	protected String specifiedConverterName;
-	
-	protected XmlConvertibleMapping resourceMapping;
-	
-	protected EclipseLinkOrmConverter converter;
-	
-	public EclipseLinkOrmConvert(OrmAttributeMapping parent, XmlConvertibleMapping resourceMapping) {
-		super(parent);
-		this.initialize(resourceMapping);
-	}
-
-	@Override
-	public OrmAttributeMapping getParent() {
-		return (OrmAttributeMapping) super.getParent();
-	}
-
-	public String getType() {
-		return Convert.ECLIPSE_LINK_CONVERTER;
-	}
-		
-	public void addToResourceModel() {
-		this.resourceMapping.setConvert(""); //$NON-NLS-1$
-	}
-	
-	public void removeFromResourceModel() {
-		this.resourceMapping.setConvert(null);
-	}
-
-	public TextRange getValidationTextRange() {
-		return this.resourceMapping.getConvertTextRange();
-	}
-	
-	public String getConverterName() {
-		return getSpecifiedConverterName() == null ? getDefaultConverterName() : getSpecifiedConverterName();
-	}
-
-	public String getDefaultConverterName() {
-		return DEFAULT_CONVERTER_NAME;
-	}
-
-	public String getSpecifiedConverterName() {
-		return this.specifiedConverterName;
-	}
-
-	public void setSpecifiedConverterName(String newSpecifiedConverterName) {
-		String oldSpecifiedConverterName = this.specifiedConverterName;
-		this.specifiedConverterName = newSpecifiedConverterName;
-		this.resourceMapping.setConvert(newSpecifiedConverterName);
-		firePropertyChanged(SPECIFIED_CONVERTER_NAME_PROPERTY, oldSpecifiedConverterName, newSpecifiedConverterName);
-	}
-	
-	protected void setSpecifiedConverterName_(String newSpecifiedConverterName) {
-		String oldSpecifiedConverterName = this.specifiedConverterName;
-		this.specifiedConverterName = newSpecifiedConverterName;
-		firePropertyChanged(SPECIFIED_CONVERTER_NAME_PROPERTY, oldSpecifiedConverterName, newSpecifiedConverterName);
-	}
-
-	public EclipseLinkOrmConverter getConverter() {
-		return this.converter;
-	}
-	
-	protected String getConverterType() {
-		if (this.converter == null) {
-			return EclipseLinkConverter.NO_CONVERTER;
-		}
-		return this.converter.getType();
-	}
-
-	public void setConverter(String converterType) {
-		if (getConverterType() == converterType) {
-			return;
-		}
-		EclipseLinkOrmConverter oldConverter = this.converter;
-		if (oldConverter != null) {
-			this.converter = null; //set to null now to avoid update triggering events
-			removeConverter(oldConverter.getType());
-		}
-		JpaEObject resourceConverter = buildResourceConverter(converterType);
-		EclipseLinkOrmConverter newConverter = buildConverter(converterType, resourceConverter);
-		this.converter = newConverter;
-		if (newConverter != null) {
-			addConverter(converterType, resourceConverter);
-		}
-		firePropertyChanged(CONVERTER_PROPERTY, oldConverter, newConverter);
-	}
-
-	//TODO yes, i know, many if/else type checks in the methods below.
-	//will look at factoring this out when I have time after M3!  Also EclipseLinkJavaConvert
-	protected void removeConverter(String converterType) {
-		if (converterType == EclipseLinkConverter.CUSTOM_CONVERTER) {
-			this.resourceMapping.setConverter(null);
-		}
-		else if (converterType == EclipseLinkConverter.TYPE_CONVERTER) {
-			this.resourceMapping.setTypeConverter(null);
-		}
-		else if (converterType == EclipseLinkConverter.OBJECT_TYPE_CONVERTER) {
-			this.resourceMapping.setObjectTypeConverter(null);
-		}
-		else if (converterType == EclipseLinkConverter.STRUCT_CONVERTER) {
-			this.resourceMapping.setStructConverter(null);
-		}
-	}
-	
-	protected JpaEObject buildResourceConverter(String converterType) {
-		if (converterType == EclipseLinkConverter.CUSTOM_CONVERTER) {
-			return EclipseLinkOrmFactory.eINSTANCE.createXmlConverterImpl();
-		}
-		else if (converterType == EclipseLinkConverter.TYPE_CONVERTER) {
-			return EclipseLinkOrmFactory.eINSTANCE.createXmlTypeConverterImpl();
-		}
-		else if (converterType == EclipseLinkConverter.OBJECT_TYPE_CONVERTER) {
-			return EclipseLinkOrmFactory.eINSTANCE.createXmlObjectTypeConverterImpl();
-		}
-		else if (converterType == EclipseLinkConverter.STRUCT_CONVERTER) {
-			return EclipseLinkOrmFactory.eINSTANCE.createXmlStructConverterImpl();
-		}
-		return null;
-	}
-
-	protected void addConverter(String converterType, JpaEObject resourceConverter) {
-		if (converterType == EclipseLinkConverter.CUSTOM_CONVERTER) {
-			this.resourceMapping.setConverter((XmlConverter) resourceConverter);
-		}
-		else if (converterType == EclipseLinkConverter.TYPE_CONVERTER) {
-			this.resourceMapping.setTypeConverter((XmlTypeConverter) resourceConverter);
-		}
-		else if (converterType == EclipseLinkConverter.OBJECT_TYPE_CONVERTER) {
-			this.resourceMapping.setObjectTypeConverter((XmlObjectTypeConverter) resourceConverter);
-		}
-		else if (converterType == EclipseLinkConverter.STRUCT_CONVERTER) {
-			this.resourceMapping.setStructConverter((XmlStructConverter) resourceConverter);
-		}
-	}
-	
-	protected EclipseLinkOrmConverter<?> buildConverter(String converterType, JpaEObject resourceConverter) {
-		if (converterType == EclipseLinkConverter.NO_CONVERTER) {
-			return null;
-		}
-		if (converterType == EclipseLinkConverter.CUSTOM_CONVERTER) {
-			return buildCustomConverter((XmlConverter) resourceConverter);
-		}
-		else if (converterType == EclipseLinkConverter.TYPE_CONVERTER) {
-			return buildTypeConverter((XmlTypeConverter) resourceConverter);
-		}
-		else if (converterType == EclipseLinkConverter.OBJECT_TYPE_CONVERTER) {
-			return buildObjectTypeConverter((XmlObjectTypeConverter) resourceConverter);
-		}
-		else if (converterType == EclipseLinkConverter.STRUCT_CONVERTER) {
-			return buildStructConverter((XmlStructConverter) resourceConverter);
-		}
-		return null;
-	}
-
-	protected void setConverter(EclipseLinkOrmConverter<?> newConverter) {
-		EclipseLinkOrmConverter<?> oldConverter = this.converter;
-		this.converter = newConverter;
-		firePropertyChanged(CONVERTER_PROPERTY, oldConverter, newConverter);
-	}
-	
-	protected void initialize(XmlConvertibleMapping resourceMapping) {
-		this.resourceMapping = resourceMapping;
-		this.specifiedConverterName = this.getResourceConvert();
-		this.converter = this.buildConverter();
-	}
-	
-	public void update() {
-		this.setSpecifiedConverterName_(this.getResourceConvert());
-		if (getResourceConverterType() == getConverterType()) {
-			this.converter.update();
-		}
-		else {
-			setConverter(buildConverter());
-		}
-	}
-	
-	protected String getResourceConvert() {
-		return this.resourceMapping == null ? null : this.resourceMapping.getConvert();
-	}
-
-	protected String getResourceConverterType() {
-		if (this.resourceMapping.getConverter() != null) {
-			return EclipseLinkConverter.CUSTOM_CONVERTER;
-		}
-		else if (this.resourceMapping.getTypeConverter() != null) {
-			return EclipseLinkConverter.TYPE_CONVERTER;
-		}
-		else if (this.resourceMapping.getObjectTypeConverter() != null) {
-			return EclipseLinkConverter.OBJECT_TYPE_CONVERTER;
-		}
-		else if (this.resourceMapping.getStructConverter() != null) {
-			return EclipseLinkConverter.STRUCT_CONVERTER;
-		}
-		
-		return null;
-	}
-	protected EclipseLinkOrmConverter<?> buildConverter() {
-		if (this.resourceMapping.getConverter() != null) {
-			return buildCustomConverter(this.resourceMapping.getConverter());
-		}
-		else if (this.resourceMapping.getTypeConverter() != null) {
-			return buildTypeConverter(this.resourceMapping.getTypeConverter());
-		}
-		else if (this.resourceMapping.getObjectTypeConverter() != null) {
-			return buildObjectTypeConverter(this.resourceMapping.getObjectTypeConverter());
-		}
-		else if (this.resourceMapping.getStructConverter() != null) {
-			return buildStructConverter(this.resourceMapping.getStructConverter());
-		}
-		
-		return null;
-	}
-
-	protected EclipseLinkOrmCustomConverter buildCustomConverter(XmlConverter resourceConverter) {
-		EclipseLinkOrmCustomConverter contextConverter = new EclipseLinkOrmCustomConverter(this);
-		contextConverter.initialize(resourceConverter);
-		return contextConverter;
-	}
-
-	protected EclipseLinkOrmTypeConverter buildTypeConverter(XmlTypeConverter resourceConverter) {
-		EclipseLinkOrmTypeConverter contextConverter = new EclipseLinkOrmTypeConverter(this);
-		contextConverter.initialize(resourceConverter);
-		return contextConverter;
-	}
-
-	protected EclipseLinkOrmObjectTypeConverter buildObjectTypeConverter(XmlObjectTypeConverter resourceConverter) {
-		EclipseLinkOrmObjectTypeConverter contextConverter = new EclipseLinkOrmObjectTypeConverter(this);
-		contextConverter.initialize(resourceConverter);
-		return contextConverter;
-	}
-
-	protected EclipseLinkOrmStructConverter buildStructConverter(XmlStructConverter resourceConverter) {
-		EclipseLinkOrmStructConverter contextConverter = new EclipseLinkOrmStructConverter(this);
-		contextConverter.initialize(resourceConverter);
-		return contextConverter;
-	}
-
-	@Override
-	public void validate(List<IMessage> messages, IReporter reporter) {
-		super.validate(messages, reporter);
-		if (getConverter() != null) {
-			getConverter().validate(messages, reporter);
-		}
-	}
-}
diff --git a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/context/orm/EclipseLinkOrmConverter.java b/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/context/orm/EclipseLinkOrmConverter.java
deleted file mode 100644
index 2a3a66b..0000000
--- a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/context/orm/EclipseLinkOrmConverter.java
+++ /dev/null
@@ -1,106 +0,0 @@
-/*******************************************************************************
- *  Copyright (c) 2008, 2009  Oracle. 
- *  All rights reserved.  This program and the accompanying materials are 
- *  made available under the terms of the Eclipse Public License v1.0 which 
- *  accompanies this distribution, and is available at 
- *  http://www.eclipse.org/legal/epl-v10.html
- *  
- *  Contributors: 
- *  	Oracle - initial API and implementation
- *******************************************************************************/
-package org.eclipse.jpt.eclipselink.core.internal.context.orm;
-
-import org.eclipse.jpt.core.context.XmlContextNode;
-import org.eclipse.jpt.core.internal.context.AbstractXmlContextNode;
-import org.eclipse.jpt.core.utility.TextRange;
-import org.eclipse.jpt.eclipselink.core.context.EclipseLinkConverter;
-import org.eclipse.jpt.eclipselink.core.internal.context.java.EclipseLinkJavaConverter;
-import org.eclipse.jpt.eclipselink.core.internal.context.persistence.EclipseLinkPersistenceUnit;
-import org.eclipse.jpt.eclipselink.core.resource.orm.XmlNamedConverter;
-import org.eclipse.jpt.utility.internal.StringTools;
-
-public abstract class EclipseLinkOrmConverter<T extends XmlNamedConverter>
-	extends AbstractXmlContextNode implements EclipseLinkConverter
-{
-	protected T resourceConverter;
-	
-	protected String name;
-	
-	
-	protected EclipseLinkOrmConverter(XmlContextNode parent) {
-		super(parent);
-	}
-		
-	@Override
-	public EclipseLinkPersistenceUnit getPersistenceUnit() {
-		return (EclipseLinkPersistenceUnit) super.getPersistenceUnit();
-	}
-	
-	
-	protected T getXmlResource() {
-		return this.resourceConverter;
-	}
-	
-	public char getEnclosingTypeSeparator() {
-		return '$';
-	}
-	
-	// **************** name ***************************************************
-	
-	public String getName() {
-		return this.name;
-	}
-
-	public void setName(String newName) {
-		String oldName = this.name;
-		this.name = newName;
-		this.resourceConverter.setName(newName);
-		firePropertyChanged(NAME_PROPERTY, oldName, newName);
-	}
-
-	protected void setName_(String newName) {
-		String oldName = this.name;
-		this.name = newName;
-		firePropertyChanged(NAME_PROPERTY, oldName, newName);
-	}
-	
-	
-	// **************** resource interaction ***********************************
-	
-	protected void initialize(T resource) {
-		this.resourceConverter = resource;
-		this.name = getResourceName();
-	}
-	
-	public void update() {
-		this.setName_(getResourceName());
-		getPersistenceUnit().addConverter(this);
-	}
-	
-	protected String getResourceName() {
-		return this.resourceConverter.getName();
-	}
-	
-	
-	// **************** validation *********************************************
-	
-	public boolean overrides(EclipseLinkConverter converter) {
-		if (getName() == null) {
-			return false;
-		}
-		// this isn't ideal, but it will have to do until we have further adopter input
-		return this.getName().equals(converter.getName()) && converter instanceof EclipseLinkJavaConverter;
-	}
-	
-	public boolean duplicates(EclipseLinkConverter converter) {
-		return (this != converter)
-				&& ! StringTools.stringIsEmpty(this.name)
-				&& this.name.equals(converter.getName())
-				&& ! this.overrides(converter)
-				&& ! converter.overrides(this);
-	}
-	
-	public TextRange getValidationTextRange() {
-		return this.resourceConverter.getValidationTextRange();
-	}
-}
\ No newline at end of file
diff --git a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/context/orm/EclipseLinkOrmConverterHolder.java b/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/context/orm/EclipseLinkOrmConverterHolder.java
deleted file mode 100644
index dbe705a..0000000
--- a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/context/orm/EclipseLinkOrmConverterHolder.java
+++ /dev/null
@@ -1,451 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008, 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.eclipselink.core.internal.context.orm;
-
-import java.util.ArrayList;
-import java.util.Collection;
-import java.util.List;
-import java.util.ListIterator;
-import org.eclipse.jpt.core.context.XmlContextNode;
-import org.eclipse.jpt.core.internal.context.AbstractXmlContextNode;
-import org.eclipse.jpt.core.utility.TextRange;
-import org.eclipse.jpt.eclipselink.core.context.CustomConverter;
-import org.eclipse.jpt.eclipselink.core.context.ObjectTypeConverter;
-import org.eclipse.jpt.eclipselink.core.context.StructConverter;
-import org.eclipse.jpt.eclipselink.core.context.TypeConverter;
-import org.eclipse.jpt.eclipselink.core.resource.orm.EclipseLinkOrmFactory;
-import org.eclipse.jpt.eclipselink.core.resource.orm.XmlConverter;
-import org.eclipse.jpt.eclipselink.core.resource.orm.XmlConvertersHolder;
-import org.eclipse.jpt.eclipselink.core.resource.orm.XmlObjectTypeConverter;
-import org.eclipse.jpt.eclipselink.core.resource.orm.XmlStructConverter;
-import org.eclipse.jpt.eclipselink.core.resource.orm.XmlTypeConverter;
-import org.eclipse.jpt.utility.internal.CollectionTools;
-import org.eclipse.wst.validation.internal.provisional.core.IMessage;
-import org.eclipse.wst.validation.internal.provisional.core.IReporter;
-
-public class EclipseLinkOrmConverterHolder extends AbstractXmlContextNode implements ConverterHolder
-{	
-	private final XmlConvertersHolder resourceConvertersHolder;
-	
-	protected final List<EclipseLinkOrmCustomConverter> customConverters;
-	protected final List<EclipseLinkOrmObjectTypeConverter> objectTypeConverters;
-	protected final List<EclipseLinkOrmStructConverter> structConverters;
-	protected final List<EclipseLinkOrmTypeConverter> typeConverters;
-	
-	public EclipseLinkOrmConverterHolder(XmlContextNode parent, XmlConvertersHolder resourceConvertersHolder) {
-		super(parent);
-		this.resourceConvertersHolder = resourceConvertersHolder;
-		this.customConverters = new ArrayList<EclipseLinkOrmCustomConverter>();
-		this.objectTypeConverters = new ArrayList<EclipseLinkOrmObjectTypeConverter>();
-		this.structConverters = new ArrayList<EclipseLinkOrmStructConverter>();
-		this.typeConverters = new ArrayList<EclipseLinkOrmTypeConverter>();
-		this.initializeCustomConverters();
-		this.initializeObjectTypeConverters();
-		this.initializeStructConverters();
-		this.initializeTypeConverters();		
-	}
-
-	public ListIterator<EclipseLinkOrmCustomConverter> customConverters() {
-		return this.customConverters.listIterator();
-	}
-
-	public int customConvertersSize() {
-		return this.customConverters.size();
-	}
-
-	public CustomConverter addCustomConverter(int index) {
-		XmlConverter resourceConverter = EclipseLinkOrmFactory.eINSTANCE.createXmlConverterImpl();
-		EclipseLinkOrmCustomConverter contextConverter = this.buildCustomConverter(resourceConverter);
-		this.customConverters.add(index, contextConverter);
-		this.resourceConvertersHolder.getConverters().add(index, resourceConverter);
-		this.fireItemAdded(CUSTOM_CONVERTERS_LIST, index, contextConverter);
-		return contextConverter;
-	}
-
-	protected void addCustomConverter(int index, EclipseLinkOrmCustomConverter converter) {
-		addItemToList(index, converter, this.customConverters, CUSTOM_CONVERTERS_LIST);
-	}
-
-	protected void addCustomConverter(EclipseLinkOrmCustomConverter converter) {
-		this.addCustomConverter(this.customConverters.size(), converter);
-	}
-
-	public void removeCustomConverter(int index) {
-		EclipseLinkOrmCustomConverter removedConverter = this.customConverters.remove(index);
-		this.resourceConvertersHolder.getConverters().remove(index);
-		fireItemRemoved(CUSTOM_CONVERTERS_LIST, index, removedConverter);
-	}
-
-	public void removeCustomConverter(CustomConverter converter) {
-		this.removeCustomConverter(this.customConverters.indexOf(converter));
-	}
-
-	protected void removeConverter_(CustomConverter converter) {
-		removeItemFromList(converter, this.customConverters, CUSTOM_CONVERTERS_LIST);
-	}
-
-	public void moveCustomConverter(int targetIndex, int sourceIndex) {
-		CollectionTools.move(this.customConverters, targetIndex, sourceIndex);
-		this.resourceConvertersHolder.getConverters().move(targetIndex, sourceIndex);
-		fireItemMoved(CUSTOM_CONVERTERS_LIST, targetIndex, sourceIndex);		
-	}
-	
-	protected void moveCustomConverter_(int index, EclipseLinkOrmCustomConverter converter) {
-		moveItemInList(index, this.customConverters.indexOf(converter), this.customConverters, CUSTOM_CONVERTERS_LIST);
-	}
-
-	public ListIterator<EclipseLinkOrmObjectTypeConverter> objectTypeConverters() {
-		return this.objectTypeConverters.listIterator();
-	}
-
-	public int objectTypeConvertersSize() {
-		return this.objectTypeConverters.size();
-	}
-
-	public ObjectTypeConverter addObjectTypeConverter(int index) {
-		XmlObjectTypeConverter resourceObjectTypeConverter = EclipseLinkOrmFactory.eINSTANCE.createXmlObjectTypeConverterImpl();
-		EclipseLinkOrmObjectTypeConverter contextObjectTypeConverter = this.buildObjectTypeConverter(resourceObjectTypeConverter);
-		this.objectTypeConverters.add(index, contextObjectTypeConverter);
-		this.resourceConvertersHolder.getObjectTypeConverters().add(index, resourceObjectTypeConverter);
-		this.fireItemAdded(OBJECT_TYPE_CONVERTERS_LIST, index, contextObjectTypeConverter);
-		return contextObjectTypeConverter;
-	}
-
-	protected void addObjectTypeConverter(int index, EclipseLinkOrmObjectTypeConverter converter) {
-		addItemToList(index, converter, this.objectTypeConverters, OBJECT_TYPE_CONVERTERS_LIST);
-	}
-
-	protected void addObjectTypeConverter(EclipseLinkOrmObjectTypeConverter converter) {
-		this.addObjectTypeConverter(this.objectTypeConverters.size(), converter);
-	}
-
-	public void removeObjectTypeConverter(int index) {
-		EclipseLinkOrmObjectTypeConverter removedObjectTypeConverter = this.objectTypeConverters.remove(index);
-		this.resourceConvertersHolder.getObjectTypeConverters().remove(index);
-		fireItemRemoved(OBJECT_TYPE_CONVERTERS_LIST, index, removedObjectTypeConverter);
-	}
-
-	public void removeObjectTypeConverter(ObjectTypeConverter converter) {
-		this.removeObjectTypeConverter(this.objectTypeConverters.indexOf(converter));
-	}
-
-	protected void removeObjectTypeConverter_(ObjectTypeConverter converter) {
-		removeItemFromList(converter, this.objectTypeConverters, OBJECT_TYPE_CONVERTERS_LIST);
-	}
-
-	public void moveObjectTypeConverter(int targetIndex, int sourceIndex) {
-		CollectionTools.move(this.objectTypeConverters, targetIndex, sourceIndex);
-		this.resourceConvertersHolder.getObjectTypeConverters().move(targetIndex, sourceIndex);
-		fireItemMoved(OBJECT_TYPE_CONVERTERS_LIST, targetIndex, sourceIndex);		
-	}
-	
-	protected void moveObjectTypeConverter_(int index, EclipseLinkOrmObjectTypeConverter converter) {
-		moveItemInList(index, this.objectTypeConverters.indexOf(converter), this.objectTypeConverters, OBJECT_TYPE_CONVERTERS_LIST);
-	}
-
-	public ListIterator<EclipseLinkOrmStructConverter> structConverters() {
-		return this.structConverters.listIterator();
-	}
-
-	public int structConvertersSize() {
-		return this.structConverters.size();
-	}
-
-	public StructConverter addStructConverter(int index) {
-		XmlStructConverter resourceStructConverter = EclipseLinkOrmFactory.eINSTANCE.createXmlStructConverterImpl();
-		EclipseLinkOrmStructConverter contextStructConverter = this.buildStructConverter(resourceStructConverter);
-		this.structConverters.add(index, contextStructConverter);
-		this.resourceConvertersHolder.getStructConverters().add(index, resourceStructConverter);
-		this.fireItemAdded(STRUCT_CONVERTERS_LIST, index, contextStructConverter);
-		return contextStructConverter;
-	}
-
-	protected void addStructConverter(int index, EclipseLinkOrmStructConverter converter) {
-		addItemToList(index, converter, this.structConverters, STRUCT_CONVERTERS_LIST);
-	}
-
-	protected void addStructConverter(EclipseLinkOrmStructConverter converter) {
-		this.addStructConverter(this.structConverters.size(), converter);
-	}
-
-	public void removeStructConverter(int index) {
-		EclipseLinkOrmStructConverter removedStructConverter = this.structConverters.remove(index);
-		this.resourceConvertersHolder.getStructConverters().remove(index);
-		fireItemRemoved(STRUCT_CONVERTERS_LIST, index, removedStructConverter);
-	}
-
-	public void removeStructConverter(StructConverter converter) {
-		this.removeStructConverter(this.structConverters.indexOf(converter));
-	}
-
-	protected void removeStructConverter_(StructConverter converter) {
-		removeItemFromList(converter, this.structConverters, STRUCT_CONVERTERS_LIST);
-	}
-
-	public void moveStructConverter(int targetIndex, int sourceIndex) {
-		CollectionTools.move(this.structConverters, targetIndex, sourceIndex);
-		this.resourceConvertersHolder.getStructConverters().move(targetIndex, sourceIndex);
-		fireItemMoved(STRUCT_CONVERTERS_LIST, targetIndex, sourceIndex);		
-	}
-	
-	protected void moveStructConverter_(int index, EclipseLinkOrmStructConverter converter) {
-		moveItemInList(index, this.structConverters.indexOf(converter), this.structConverters, STRUCT_CONVERTERS_LIST);
-	}
-
-
-	public ListIterator<EclipseLinkOrmTypeConverter> typeConverters() {
-		return this.typeConverters.listIterator();
-	}
-
-	public int typeConvertersSize() {
-		return this.typeConverters.size();
-	}
-
-	public TypeConverter addTypeConverter(int index) {
-		XmlTypeConverter resourceTypeConverter = EclipseLinkOrmFactory.eINSTANCE.createXmlTypeConverterImpl();
-		EclipseLinkOrmTypeConverter contextTypeConverter = this.buildTypeConverter(resourceTypeConverter);
-		this.typeConverters.add(index, contextTypeConverter);
-		this.resourceConvertersHolder.getTypeConverters().add(index, resourceTypeConverter);
-		this.fireItemAdded(TYPE_CONVERTERS_LIST, index, contextTypeConverter);
-		return contextTypeConverter;
-	}
-
-	protected void addTypeConverter(int index, EclipseLinkOrmTypeConverter converter) {
-		addItemToList(index, converter, this.typeConverters, TYPE_CONVERTERS_LIST);
-	}
-
-	protected void addTypeConverter(EclipseLinkOrmTypeConverter converter) {
-		this.addTypeConverter(this.typeConverters.size(), converter);
-	}
-
-	public void removeTypeConverter(int index) {
-		EclipseLinkOrmTypeConverter removedTypeConverter = this.typeConverters.remove(index);
-		this.resourceConvertersHolder.getTypeConverters().remove(index);
-		fireItemRemoved(TYPE_CONVERTERS_LIST, index, removedTypeConverter);
-	}
-
-	public void removeTypeConverter(TypeConverter converter) {
-		this.removeTypeConverter(this.typeConverters.indexOf(converter));
-	}
-
-	protected void removeTypeConverter_(TypeConverter converter) {
-		removeItemFromList(converter, this.typeConverters, TYPE_CONVERTERS_LIST);
-	}
-
-	public void moveTypeConverter(int targetIndex, int sourceIndex) {
-		CollectionTools.move(this.typeConverters, targetIndex, sourceIndex);
-		this.resourceConvertersHolder.getTypeConverters().move(targetIndex, sourceIndex);
-		fireItemMoved(TYPE_CONVERTERS_LIST, targetIndex, sourceIndex);		
-	}
-	
-	protected void moveTypeConverter_(int index, EclipseLinkOrmTypeConverter converter) {
-		moveItemInList(index, this.typeConverters.indexOf(converter), this.typeConverters, TYPE_CONVERTERS_LIST);
-	}
-		
-	protected void initializeCustomConverters() {
-		for (XmlConverter resourceConverter : this.resourceConvertersHolder.getConverters()) {
-			this.customConverters.add(this.buildCustomConverter(resourceConverter));
-		}
-	}
-	
-	protected void initializeObjectTypeConverters() {
-		for (XmlObjectTypeConverter resourceConverter : this.resourceConvertersHolder.getObjectTypeConverters()) {
-			this.objectTypeConverters.add(this.buildObjectTypeConverter(resourceConverter));
-		}
-	}
-	
-	protected void initializeStructConverters() {
-		for (XmlStructConverter resourceConverter : this.resourceConvertersHolder.getStructConverters()) {
-			this.structConverters.add(this.buildStructConverter(resourceConverter));
-		}
-	}
-	
-	protected void initializeTypeConverters() {
-		for (XmlTypeConverter resourceConverter : this.resourceConvertersHolder.getTypeConverters()) {
-			this.typeConverters.add(this.buildTypeConverter(resourceConverter));
-		}
-	}
-	
-	protected EclipseLinkOrmCustomConverter buildCustomConverter(XmlConverter resourceConverter) {
-		EclipseLinkOrmCustomConverter contextConverter = new EclipseLinkOrmCustomConverter(this);
-		contextConverter.initialize(resourceConverter);
-		return contextConverter;
-	}
-
-	protected EclipseLinkOrmTypeConverter buildTypeConverter(XmlTypeConverter resourceConverter) {
-		EclipseLinkOrmTypeConverter contextConverter = new EclipseLinkOrmTypeConverter(this);
-		contextConverter.initialize(resourceConverter);
-		return contextConverter;
-	}
-
-	protected EclipseLinkOrmObjectTypeConverter buildObjectTypeConverter(XmlObjectTypeConverter resourceConverter) {
-		EclipseLinkOrmObjectTypeConverter contextConverter = new EclipseLinkOrmObjectTypeConverter(this);
-		contextConverter.initialize(resourceConverter);
-		return contextConverter;
-	}
-
-	protected EclipseLinkOrmStructConverter buildStructConverter(XmlStructConverter resourceConverter) {
-		EclipseLinkOrmStructConverter contextConverter = new EclipseLinkOrmStructConverter(this);
-		contextConverter.initialize(resourceConverter);
-		return contextConverter;
-	}
-
-	public void update() {
-		this.updateCustomConverters();
-		this.updateObjectTypeConverters();
-		this.updateStructConverters();
-		this.updateTypeConverters();		
-	}
-	
-	protected void updateCustomConverters() {
-		Collection<EclipseLinkOrmCustomConverter> contextConvertersToRemove = CollectionTools.collection(customConverters());
-		Collection<EclipseLinkOrmCustomConverter> contextConvertersToUpdate = new ArrayList<EclipseLinkOrmCustomConverter>();
-		int resourceIndex = 0;
-		
-		// make a copy of the XML conversion values (to prevent ConcurrentModificationException)
-		List<XmlConverter> xmlConverters = this.resourceConvertersHolder.getConverters();
-		for (XmlConverter resourceConverter : xmlConverters.toArray(new XmlConverter[xmlConverters.size()])) {
-			boolean contextConverterFound = false;
-			for (EclipseLinkOrmCustomConverter contextConverter : contextConvertersToRemove) {
-				if (contextConverter.getXmlResource() == resourceConverter) {
-					moveCustomConverter_(resourceIndex, contextConverter);
-					contextConvertersToRemove.remove(contextConverter);
-					contextConvertersToUpdate.add(contextConverter);
-					contextConverterFound = true;
-					break;
-				}
-			}
-			if (!contextConverterFound) {
-				addCustomConverter(this.buildCustomConverter(resourceConverter));
-			}
-			resourceIndex++;
-		}
-		for (EclipseLinkOrmCustomConverter contextConverter : contextConvertersToRemove) {
-			removeConverter_(contextConverter);
-		}
-		//first handle adding/removing of the converters, then update the others last, 
-		//this causes less churn in the update process
-		for (EclipseLinkOrmCustomConverter contextConverter : contextConvertersToUpdate) {
-			contextConverter.update();
-		}	
-	}
-	
-	protected void updateObjectTypeConverters() {
-		Collection<EclipseLinkOrmObjectTypeConverter> contextConvertersToRemove = CollectionTools.collection(objectTypeConverters());
-		Collection<EclipseLinkOrmObjectTypeConverter> contextConvertersToUpdate = new ArrayList<EclipseLinkOrmObjectTypeConverter>();
-		int resourceIndex = 0;
-
-		// make a copy of the XML converters (to prevent ConcurrentModificationException)
-		List<XmlObjectTypeConverter> xmlConverters = this.resourceConvertersHolder.getObjectTypeConverters();
-		for (XmlObjectTypeConverter xmlConverter : xmlConverters.toArray(new XmlObjectTypeConverter[xmlConverters.size()])) {
-			boolean contextConverterFound = false;
-			for (EclipseLinkOrmObjectTypeConverter contextObjectTypeConverter : contextConvertersToRemove) {
-				if (contextObjectTypeConverter.getXmlResource() == xmlConverter) {
-					moveObjectTypeConverter_(resourceIndex, contextObjectTypeConverter);
-					contextConvertersToRemove.remove(contextObjectTypeConverter);
-					contextConvertersToUpdate.add(contextObjectTypeConverter);
-					contextConverterFound = true;
-					break;
-				}
-			}
-			if (!contextConverterFound) {
-				addObjectTypeConverter(this.buildObjectTypeConverter(xmlConverter));
-			}
-			resourceIndex++;
-		}
-		for (EclipseLinkOrmObjectTypeConverter contextObjectTypeConverter : contextConvertersToRemove) {
-			removeObjectTypeConverter_(contextObjectTypeConverter);
-		}
-		//first handle adding/removing of the converters, then update the others last, 
-		//this causes less churn in the update process
-		for (EclipseLinkOrmObjectTypeConverter contextObjectTypeConverter : contextConvertersToUpdate) {
-			contextObjectTypeConverter.update();
-		}	
-	}
-	
-	protected void updateTypeConverters() {
-		Collection<EclipseLinkOrmTypeConverter> contextConvertersToRemove = CollectionTools.collection(typeConverters());
-		Collection<EclipseLinkOrmTypeConverter> contextConvertersToUpdate = new ArrayList<EclipseLinkOrmTypeConverter>();
-		int resourceIndex = 0;
-		
-		List<XmlTypeConverter> xmlConverters = this.resourceConvertersHolder.getTypeConverters();
-		for (XmlTypeConverter xmlConverter : xmlConverters.toArray(new XmlTypeConverter[xmlConverters.size()])) {
-			boolean contextTypeConverterFound = false;
-			for (EclipseLinkOrmTypeConverter contextTypeConverter : contextConvertersToRemove) {
-				if (contextTypeConverter.getXmlResource() == xmlConverter) {
-					moveTypeConverter_(resourceIndex, contextTypeConverter);
-					contextConvertersToRemove.remove(contextTypeConverter);
-					contextConvertersToUpdate.add(contextTypeConverter);
-					contextTypeConverterFound = true;
-					break;
-				}
-			}
-			if (!contextTypeConverterFound) {
-				addTypeConverter(this.buildTypeConverter(xmlConverter));
-			}
-			resourceIndex++;
-		}
-		for (EclipseLinkOrmTypeConverter contextTypeConverter : contextConvertersToRemove) {
-			removeTypeConverter_(contextTypeConverter);
-		}
-		//first handle adding/removing of the converters, then update the others last, 
-		//this causes less churn in the update process
-		for (EclipseLinkOrmTypeConverter contextTypeConverter : contextConvertersToUpdate) {
-			contextTypeConverter.update();
-		}	
-	}
-	
-	protected void updateStructConverters() {
-		Collection<EclipseLinkOrmStructConverter> contextConvertersToRemove = CollectionTools.collection(structConverters());
-		Collection<EclipseLinkOrmStructConverter> contextConvertersToUpdate = new ArrayList<EclipseLinkOrmStructConverter>();
-		int resourceIndex = 0;
-		
-		// make a copy of the XML converters (to prevent ConcurrentModificationException)
-		List<XmlStructConverter> xmlConverters = this.resourceConvertersHolder.getStructConverters();
-		for (XmlStructConverter resourceStructConverter : xmlConverters.toArray(new XmlStructConverter[xmlConverters.size()])) {
-			boolean contextStructConverterFound = false;
-			for (EclipseLinkOrmStructConverter contextStructConverter : contextConvertersToRemove) {
-				if (contextStructConverter.getXmlResource() == resourceStructConverter) {
-					moveStructConverter_(resourceIndex, contextStructConverter);
-					contextConvertersToRemove.remove(contextStructConverter);
-					contextConvertersToUpdate.add(contextStructConverter);
-					contextStructConverterFound = true;
-					break;
-				}
-			}
-			if (!contextStructConverterFound) {
-				addStructConverter(this.buildStructConverter(resourceStructConverter));
-			}
-			resourceIndex++;
-		}
-		for (EclipseLinkOrmStructConverter contextStructConverter : contextConvertersToRemove) {
-			removeStructConverter_(contextStructConverter);
-		}
-		//first handle adding/removing of the converters, then update the others last, 
-		//this causes less churn in the update process
-		for (EclipseLinkOrmStructConverter contextStructConverter : contextConvertersToUpdate) {
-			contextStructConverter.update();
-		}	
-	}
-
-	//************ validation ***************
-	
-	@Override
-	public void validate(List<IMessage> messages, IReporter reporter) {
-		super.validate(messages, reporter);
-	}
-
-
-	public TextRange getValidationTextRange() {
-		return this.resourceConvertersHolder.getValidationTextRange();
-	}
-
-
-}
diff --git a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/context/orm/EclipseLinkOrmCustomConverter.java b/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/context/orm/EclipseLinkOrmCustomConverter.java
deleted file mode 100644
index c055b16..0000000
--- a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/context/orm/EclipseLinkOrmCustomConverter.java
+++ /dev/null
@@ -1,100 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008, 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.eclipselink.core.internal.context.orm;
-
-import java.util.List;
-import org.eclipse.jpt.core.context.XmlContextNode;
-import org.eclipse.jpt.eclipselink.core.context.CustomConverter;
-import org.eclipse.jpt.eclipselink.core.context.EclipseLinkConverter;
-import org.eclipse.jpt.eclipselink.core.resource.orm.XmlConverter;
-import org.eclipse.wst.validation.internal.provisional.core.IMessage;
-import org.eclipse.wst.validation.internal.provisional.core.IReporter;
-
-public class EclipseLinkOrmCustomConverter extends EclipseLinkOrmConverter<XmlConverter>
-	implements CustomConverter
-{	
-	private String converterClass;
-	
-	
-	public EclipseLinkOrmCustomConverter(XmlContextNode parent) {
-		super(parent);
-	}
-	
-	
-	public String getType() {
-		return EclipseLinkConverter.CUSTOM_CONVERTER;
-	}
-
-	
-	// **************** converter class ****************************************
-	
-	public String getConverterClass() {
-		return this.converterClass;
-	}
-	
-	public void setConverterClass(String newConverterClass) {
-		String oldConverterClass = this.converterClass;
-		this.converterClass = newConverterClass;
-		this.resourceConverter.setClassName(newConverterClass);
-		firePropertyChanged(CONVERTER_CLASS_PROPERTY, oldConverterClass, newConverterClass);
-	}
-	
-	protected void setConverterClass_(String newConverterClass) {
-		String oldConverterClass = this.converterClass;
-		this.converterClass = newConverterClass;
-		firePropertyChanged(CONVERTER_CLASS_PROPERTY, oldConverterClass, newConverterClass);
-	}
-	
-	
-	// **************** resource interaction ***********************************
-	
-	@Override
-	protected void initialize(XmlConverter xmlResource) {
-		super.initialize(xmlResource);
-		this.converterClass = getResourceClassName();
-	}
-	
-	@Override
-	public void update() {
-		super.update();
-		setConverterClass_(getResourceClassName());
-	}
-	
-	protected String getResourceClassName() {
-		return this.resourceConverter.getClassName();
-	}
-	
-	
-	// **************** validation *********************************************
-	
-	@Override
-	public void validate(List<IMessage> messages, IReporter reporter) {
-		super.validate(messages, reporter);
-		validateConverterClass(messages);
-	}
-//TODO validate converter class	
-	protected void validateConverterClass(List<IMessage> messages) {
-//		if (!getResourceConverter().implementsConverter()) {
-//			messages.add(
-//				DefaultEclipseLinkJpaValidationMessages.buildMessage(
-//					IMessage.HIGH_SEVERITY,
-//					EclipseLinkJpaValidationMessages.CONVERTER_CLASS_IMPLEMENTS_CONVERTER,
-//					new String[] {this.converterClass},
-//					this, 
-//					getConverterClassTextRange()
-//				)
-//			);
-//		}
-	}
-	
-//	public TextRange getConverterClassTextRange() {
-//		return getResourceConverter().getClassNameTextRange();
-//	}
-}
\ No newline at end of file
diff --git a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/context/orm/EclipseLinkOrmCustomizer.java b/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/context/orm/EclipseLinkOrmCustomizer.java
deleted file mode 100644
index 90e96d4..0000000
--- a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/context/orm/EclipseLinkOrmCustomizer.java
+++ /dev/null
@@ -1,119 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008, 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.eclipselink.core.internal.context.orm;
-
-import org.eclipse.jpt.core.context.orm.OrmTypeMapping;
-import org.eclipse.jpt.core.internal.context.AbstractXmlContextNode;
-import org.eclipse.jpt.core.utility.TextRange;
-import org.eclipse.jpt.eclipselink.core.context.Customizer;
-import org.eclipse.jpt.eclipselink.core.resource.orm.EclipseLinkOrmFactory;
-import org.eclipse.jpt.eclipselink.core.resource.orm.XmlCustomizer;
-import org.eclipse.jpt.eclipselink.core.resource.orm.XmlCustomizerHolder;
-
-public class EclipseLinkOrmCustomizer extends AbstractXmlContextNode
-	implements Customizer
-{
-	protected final XmlCustomizerHolder resource;
-	
-	protected String specifiedCustomizerClass;
-	
-	protected String defaultCustomizerClass;
-	
-	public EclipseLinkOrmCustomizer(OrmTypeMapping parent, XmlCustomizerHolder resource, Customizer javaCustomizer) {
-		super(parent);
-		this.resource = resource;
-		this.defaultCustomizerClass = getJavaCustomizerClass(javaCustomizer);
-		this.specifiedCustomizerClass = getResourceCustomizerClass();
-	}
-	
-	public char getCustomizerClassEnclosingTypeSeparator() {
-		return '$';
-	}
-	
-	public String getCustomizerClass() {
-		return this.specifiedCustomizerClass == null ? this.defaultCustomizerClass : this.specifiedCustomizerClass;
-	}
-	
-	public String getDefaultCustomizerClass() {
-		return this.defaultCustomizerClass;
-	}
-	
-	protected void setDefaultCustomizerClass(String newDefaultCustomizerClass) {
-		String oldDefaultCustomizerClass = this.defaultCustomizerClass;
-		this.defaultCustomizerClass = newDefaultCustomizerClass;
-		firePropertyChanged(DEFAULT_CUSTOMIZER_CLASS_PROPERTY, oldDefaultCustomizerClass, newDefaultCustomizerClass);
-	}
-	
-	public String getSpecifiedCustomizerClass() {
-		return this.specifiedCustomizerClass;
-	}
-	
-	public void setSpecifiedCustomizerClass(String newCustomizerClass) {
-		String oldCustomizerClass = this.specifiedCustomizerClass;
-		this.specifiedCustomizerClass = newCustomizerClass;
-		if (oldCustomizerClass != newCustomizerClass) {
-			if (this.getResourceCustomizer() != null) {
-				this.getResourceCustomizer().setCustomizerClassName(newCustomizerClass);						
-				if (this.getResourceCustomizer().isUnset()) {
-					removeResourceCustomizer();
-				}
-			}
-			else if (newCustomizerClass != null) {
-				addResourceCustomizer();
-				getResourceCustomizer().setCustomizerClassName(newCustomizerClass);
-			}
-		}
-		firePropertyChanged(SPECIFIED_CUSTOMIZER_CLASS_PROPERTY, oldCustomizerClass, newCustomizerClass);
-	}
-	
-	protected void setSpecifiedCustomizerClass_(String newCustomizerClass) {
-		String oldCustomizerClass = this.specifiedCustomizerClass;
-		this.specifiedCustomizerClass = newCustomizerClass;
-		firePropertyChanged(SPECIFIED_CUSTOMIZER_CLASS_PROPERTY, oldCustomizerClass, newCustomizerClass);
-	}
-	
-	protected XmlCustomizer getResourceCustomizer() {
-		return this.resource.getCustomizer();
-	}
-	
-	protected void addResourceCustomizer() {
-		this.resource.setCustomizer(EclipseLinkOrmFactory.eINSTANCE.createXmlCustomizer());		
-	}
-	
-	protected void removeResourceCustomizer() {
-		this.resource.setCustomizer(null);
-	}
-	
-	
-	// **************** updating **************************************
-	
-	protected void update(Customizer javaCustomizer) {
-		setDefaultCustomizerClass(getJavaCustomizerClass(javaCustomizer));
-		setSpecifiedCustomizerClass_(getResourceCustomizerClass());
-	}
-	
-	protected String getJavaCustomizerClass(Customizer javaCustomizer) {
-		return (javaCustomizer == null) ? null : javaCustomizer.getCustomizerClass();
-	}
-	
-	protected String getResourceCustomizerClass() {
-		XmlCustomizer resource = getResourceCustomizer();
-		return (resource == null) ? null : resource.getCustomizerClassName();
-	}
-	
-	
-	// **************** validation **************************************
-	
-	public TextRange getValidationTextRange() {
-		XmlCustomizer resource = getResourceCustomizer();
-		return resource == null ? null : resource.getCustomizerClassNameTextRange();
-	}
-
-}
diff --git a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/context/orm/EclipseLinkOrmEmbeddable.java b/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/context/orm/EclipseLinkOrmEmbeddable.java
deleted file mode 100644
index 22811ef..0000000
--- a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/context/orm/EclipseLinkOrmEmbeddable.java
+++ /dev/null
@@ -1,30 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.eclipselink.core.internal.context.orm;
-
-import org.eclipse.jpt.core.context.orm.OrmEmbeddable;
-import org.eclipse.jpt.eclipselink.core.context.EclipseLinkEmbeddable;
-
-/**
- * 
- * 
- * Provisional API: This interface is part of an interim API that is still
- * under development and expected to change significantly before reaching
- * stability. It is available at this early stage to solicit feedback from
- * pioneering adopters on the understanding that any code that uses this API
- * will almost certainly be broken (repeatedly) as the API evolves.
- * 
- * @version 2.1
- * @since 2.1
- */
-public interface EclipseLinkOrmEmbeddable extends EclipseLinkEmbeddable, OrmEmbeddable
-{
-	ConverterHolder getConverterHolder();
-}
diff --git a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/context/orm/EclipseLinkOrmEmbeddableImpl.java b/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/context/orm/EclipseLinkOrmEmbeddableImpl.java
deleted file mode 100644
index 7a077e5..0000000
--- a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/context/orm/EclipseLinkOrmEmbeddableImpl.java
+++ /dev/null
@@ -1,90 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008, 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.eclipselink.core.internal.context.orm;
-
-import java.util.List;
-import org.eclipse.jpt.core.context.orm.OrmPersistentType;
-import org.eclipse.jpt.core.internal.context.orm.AbstractOrmEmbeddable;
-import org.eclipse.jpt.eclipselink.core.context.ChangeTracking;
-import org.eclipse.jpt.eclipselink.core.context.Customizer;
-import org.eclipse.jpt.eclipselink.core.context.java.EclipseLinkJavaEmbeddable;
-import org.eclipse.jpt.eclipselink.core.resource.orm.XmlChangeTrackingHolder;
-import org.eclipse.jpt.eclipselink.core.resource.orm.XmlConvertersHolder;
-import org.eclipse.jpt.eclipselink.core.resource.orm.XmlCustomizerHolder;
-import org.eclipse.jpt.eclipselink.core.resource.orm.XmlEmbeddable;
-import org.eclipse.wst.validation.internal.provisional.core.IMessage;
-import org.eclipse.wst.validation.internal.provisional.core.IReporter;
-
-public class EclipseLinkOrmEmbeddableImpl extends AbstractOrmEmbeddable
-	implements EclipseLinkOrmEmbeddable
-{
-	protected final EclipseLinkOrmCustomizer customizer;
-	
-	protected final EclipseLinkOrmChangeTracking changeTracking;
-	
-	protected final EclipseLinkOrmConverterHolder converterHolder;
-	
-	public EclipseLinkOrmEmbeddableImpl(OrmPersistentType parent, XmlEmbeddable resourceMapping) {
-		super(parent, resourceMapping);
-		this.customizer = new EclipseLinkOrmCustomizer(this, (XmlCustomizerHolder) this.resourceTypeMapping, getJavaCustomizer());
-		this.changeTracking = new EclipseLinkOrmChangeTracking(this, (XmlChangeTrackingHolder) this.resourceTypeMapping, getJavaChangeTracking());
-		this.converterHolder = new EclipseLinkOrmConverterHolder(this, (XmlConvertersHolder) this.resourceTypeMapping); 
-	}
-
-	public Customizer getCustomizer() {
-		return this.customizer;
-	}
-	
-	public ChangeTracking getChangeTracking() {
-		return this.changeTracking;
-	}
-
-	public ConverterHolder getConverterHolder() {
-		return this.converterHolder;
-	}
-
-	
-	
-	// **************** resource-context interaction ***************************
-
-	@Override
-	public void update() {
-		super.update();
-		this.customizer.update(getJavaCustomizer());
-		this.changeTracking.update(getJavaChangeTracking());
-		this.converterHolder.update(); 
-	}
-	
-	@Override
-	protected EclipseLinkJavaEmbeddable getJavaEmbeddableForDefaults() {
-		return (EclipseLinkJavaEmbeddable) super.getJavaEmbeddableForDefaults();
-	}
-	
-	
-	protected Customizer getJavaCustomizer() {
-		EclipseLinkJavaEmbeddable javaEmbeddable = getJavaEmbeddableForDefaults();
-		return (javaEmbeddable == null) ? null : javaEmbeddable.getCustomizer();
-	}
-	
-	protected ChangeTracking getJavaChangeTracking() {
-		EclipseLinkJavaEmbeddable javaEmbeddable = getJavaEmbeddableForDefaults();
-		return (javaEmbeddable == null) ? null : javaEmbeddable.getChangeTracking();
-	}
-	
-	
-	// **************** validation **************************************
-	
-	@Override
-	public void validate(List<IMessage> messages, IReporter reporter) {
-		super.validate(messages, reporter);
-		this.customizer.validate(messages, reporter);
-		this.changeTracking.validate(messages, reporter);
-	}
-}
diff --git a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/context/orm/EclipseLinkOrmEmbeddableProvider.java b/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/context/orm/EclipseLinkOrmEmbeddableProvider.java
deleted file mode 100644
index 52b570b..0000000
--- a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/context/orm/EclipseLinkOrmEmbeddableProvider.java
+++ /dev/null
@@ -1,65 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008, 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.eclipselink.core.internal.context.orm;
-
-import org.eclipse.core.runtime.content.IContentType;
-import org.eclipse.jpt.core.JpaFactory;
-import org.eclipse.jpt.core.MappingKeys;
-import org.eclipse.jpt.core.context.orm.OrmPersistentType;
-import org.eclipse.jpt.core.context.orm.OrmTypeMapping;
-import org.eclipse.jpt.core.context.orm.OrmTypeMappingProvider;
-import org.eclipse.jpt.core.resource.orm.XmlTypeMapping;
-import org.eclipse.jpt.eclipselink.core.internal.EclipseLinkJpaFactory;
-import org.eclipse.jpt.eclipselink.core.internal.JptEclipseLinkCorePlugin;
-import org.eclipse.jpt.eclipselink.core.resource.orm.EclipseLinkOrmFactory;
-import org.eclipse.jpt.eclipselink.core.resource.orm.XmlEmbeddable;
-
-/**
- * EclipseLink ORM Embeddable provider
- * Allow for EclipseLink extensions to Embeddable
- */
-public class EclipseLinkOrmEmbeddableProvider
-	implements OrmTypeMappingProvider
-{
-
-	// singleton
-	private static final OrmTypeMappingProvider INSTANCE = new EclipseLinkOrmEmbeddableProvider();
-
-	/**
-	 * Return the singleton.
-	 */
-	public static OrmTypeMappingProvider instance() {
-		return INSTANCE;
-	}
-
-	/**
-	 * Ensure single instance.
-	 */
-	private EclipseLinkOrmEmbeddableProvider() {
-		super();
-	}
-
-	public IContentType getContentType() {
-		return JptEclipseLinkCorePlugin.ECLIPSELINK_ORM_XML_CONTENT_TYPE;
-	}
-	
-	public XmlTypeMapping buildResourceMapping() {
-		return EclipseLinkOrmFactory.eINSTANCE.createXmlEmbeddable();
-	}
-
-	public OrmTypeMapping buildMapping(OrmPersistentType parent, XmlTypeMapping resourceMapping, JpaFactory factory) {
-		return ((EclipseLinkJpaFactory) factory).buildEclipseLinkOrmEmbeddable(parent, (XmlEmbeddable) resourceMapping);
-	}
-
-	public String getKey() {
-		return MappingKeys.EMBEDDABLE_TYPE_MAPPING_KEY;
-	}
-
-}
diff --git a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/context/orm/EclipseLinkOrmEmbeddedIdMappingProvider.java b/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/context/orm/EclipseLinkOrmEmbeddedIdMappingProvider.java
deleted file mode 100644
index c94f416..0000000
--- a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/context/orm/EclipseLinkOrmEmbeddedIdMappingProvider.java
+++ /dev/null
@@ -1,67 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.eclipselink.core.internal.context.orm;
-
-import org.eclipse.core.runtime.content.IContentType;
-import org.eclipse.jpt.core.JpaFactory;
-import org.eclipse.jpt.core.MappingKeys;
-import org.eclipse.jpt.core.context.java.JavaAttributeMapping;
-import org.eclipse.jpt.core.context.java.JavaEmbeddedIdMapping;
-import org.eclipse.jpt.core.context.orm.OrmAttributeMapping;
-import org.eclipse.jpt.core.context.orm.OrmAttributeMappingProvider;
-import org.eclipse.jpt.core.context.orm.OrmPersistentAttribute;
-import org.eclipse.jpt.core.context.orm.OrmTypeMapping;
-import org.eclipse.jpt.core.resource.orm.XmlAttributeMapping;
-import org.eclipse.jpt.eclipselink.core.internal.EclipseLinkJpaFactory;
-import org.eclipse.jpt.eclipselink.core.internal.JptEclipseLinkCorePlugin;
-import org.eclipse.jpt.eclipselink.core.resource.orm.EclipseLinkOrmFactory;
-import org.eclipse.jpt.eclipselink.core.resource.orm.XmlEmbeddedId;
-
-public class EclipseLinkOrmEmbeddedIdMappingProvider
-	implements OrmAttributeMappingProvider
-{
-	// singleton
-	private static final OrmAttributeMappingProvider INSTANCE = new EclipseLinkOrmEmbeddedIdMappingProvider();
-
-	/**
-	 * Return the singleton.
-	 */
-	public static OrmAttributeMappingProvider instance() {
-		return INSTANCE;
-	}
-
-	/**
-	 * Ensure single instance.
-	 */
-	private EclipseLinkOrmEmbeddedIdMappingProvider() {
-		super();
-	}
-
-	public IContentType getContentType() {
-		return JptEclipseLinkCorePlugin.ECLIPSELINK_ORM_XML_CONTENT_TYPE;
-	}
-
-	public String getKey() {
-		return MappingKeys.EMBEDDED_ID_ATTRIBUTE_MAPPING_KEY;
-	}
-	
-	public XmlAttributeMapping buildResourceMapping() {
-		return EclipseLinkOrmFactory.eINSTANCE.createXmlEmbeddedIdImpl();
-	}
-
-	public OrmAttributeMapping buildMapping(OrmPersistentAttribute parent, XmlAttributeMapping resourceMapping, JpaFactory factory) {
-		return ((EclipseLinkJpaFactory) factory).buildEclipseLinkOrmEmbeddedIdMapping(parent, (XmlEmbeddedId) resourceMapping);
-	}
-
-	public XmlAttributeMapping buildVirtualResourceMapping(OrmTypeMapping ormTypeMapping, JavaAttributeMapping javaAttributeMapping, JpaFactory factory) {
-		return ((EclipseLinkJpaFactory) factory).buildEclipseLinkVirtualXmlEmbeddedId(ormTypeMapping, (JavaEmbeddedIdMapping) javaAttributeMapping);
-	}
-
-}
diff --git a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/context/orm/EclipseLinkOrmEmbeddedMappingProvider.java b/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/context/orm/EclipseLinkOrmEmbeddedMappingProvider.java
deleted file mode 100644
index 4098dc9..0000000
--- a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/context/orm/EclipseLinkOrmEmbeddedMappingProvider.java
+++ /dev/null
@@ -1,67 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.eclipselink.core.internal.context.orm;
-
-import org.eclipse.core.runtime.content.IContentType;
-import org.eclipse.jpt.core.JpaFactory;
-import org.eclipse.jpt.core.MappingKeys;
-import org.eclipse.jpt.core.context.java.JavaAttributeMapping;
-import org.eclipse.jpt.core.context.java.JavaEmbeddedMapping;
-import org.eclipse.jpt.core.context.orm.OrmAttributeMapping;
-import org.eclipse.jpt.core.context.orm.OrmAttributeMappingProvider;
-import org.eclipse.jpt.core.context.orm.OrmPersistentAttribute;
-import org.eclipse.jpt.core.context.orm.OrmTypeMapping;
-import org.eclipse.jpt.core.resource.orm.XmlAttributeMapping;
-import org.eclipse.jpt.eclipselink.core.internal.EclipseLinkJpaFactory;
-import org.eclipse.jpt.eclipselink.core.internal.JptEclipseLinkCorePlugin;
-import org.eclipse.jpt.eclipselink.core.resource.orm.EclipseLinkOrmFactory;
-import org.eclipse.jpt.eclipselink.core.resource.orm.XmlEmbedded;
-
-public class EclipseLinkOrmEmbeddedMappingProvider
-	implements OrmAttributeMappingProvider
-{
-	// singleton
-	private static final OrmAttributeMappingProvider INSTANCE = new EclipseLinkOrmEmbeddedMappingProvider();
-
-	/**
-	 * Return the singleton.
-	 */
-	public static OrmAttributeMappingProvider instance() {
-		return INSTANCE;
-	}
-
-	/**
-	 * Ensure single instance.
-	 */
-	private EclipseLinkOrmEmbeddedMappingProvider() {
-		super();
-	}
-
-	public IContentType getContentType() {
-		return JptEclipseLinkCorePlugin.ECLIPSELINK_ORM_XML_CONTENT_TYPE;
-	}
-
-	public String getKey() {
-		return MappingKeys.EMBEDDED_ATTRIBUTE_MAPPING_KEY;
-	}
-	
-	public XmlAttributeMapping buildResourceMapping() {
-		return EclipseLinkOrmFactory.eINSTANCE.createXmlEmbeddedImpl();
-	}
-
-	public OrmAttributeMapping buildMapping(OrmPersistentAttribute parent, XmlAttributeMapping resourceMapping, JpaFactory factory) {
-		return ((EclipseLinkJpaFactory) factory).buildEclipseLinkOrmEmbeddedMapping(parent, (XmlEmbedded) resourceMapping);
-	}
-
-	public XmlAttributeMapping buildVirtualResourceMapping(OrmTypeMapping ormTypeMapping, JavaAttributeMapping javaAttributeMapping, JpaFactory factory) {
-		return ((EclipseLinkJpaFactory) factory).buildEclipseLinkVirtualXmlEmbedded(ormTypeMapping, (JavaEmbeddedMapping) javaAttributeMapping);
-	}
-
-}
diff --git a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/context/orm/EclipseLinkOrmEntity.java b/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/context/orm/EclipseLinkOrmEntity.java
deleted file mode 100644
index 43fafde..0000000
--- a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/context/orm/EclipseLinkOrmEntity.java
+++ /dev/null
@@ -1,18 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.eclipselink.core.internal.context.orm;
-
-import org.eclipse.jpt.core.context.orm.OrmEntity;
-import org.eclipse.jpt.eclipselink.core.context.EclipseLinkEntity;
-
-public interface EclipseLinkOrmEntity extends EclipseLinkEntity, OrmEntity
-{
-	ConverterHolder getConverterHolder();
-}
diff --git a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/context/orm/EclipseLinkOrmEntityImpl.java b/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/context/orm/EclipseLinkOrmEntityImpl.java
deleted file mode 100644
index 6eac4be..0000000
--- a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/context/orm/EclipseLinkOrmEntityImpl.java
+++ /dev/null
@@ -1,121 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008, 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.eclipselink.core.internal.context.orm;
-
-import java.util.List;
-import org.eclipse.jpt.core.context.orm.OrmPersistentType;
-import org.eclipse.jpt.core.internal.context.orm.AbstractOrmEntity;
-import org.eclipse.jpt.eclipselink.core.context.Caching;
-import org.eclipse.jpt.eclipselink.core.context.ChangeTracking;
-import org.eclipse.jpt.eclipselink.core.context.Customizer;
-import org.eclipse.jpt.eclipselink.core.context.ReadOnly;
-import org.eclipse.jpt.eclipselink.core.context.java.EclipseLinkJavaEntity;
-import org.eclipse.jpt.eclipselink.core.context.java.JavaCaching;
-import org.eclipse.jpt.eclipselink.core.resource.orm.XmlCacheHolder;
-import org.eclipse.jpt.eclipselink.core.resource.orm.XmlChangeTrackingHolder;
-import org.eclipse.jpt.eclipselink.core.resource.orm.XmlConvertersHolder;
-import org.eclipse.jpt.eclipselink.core.resource.orm.XmlCustomizerHolder;
-import org.eclipse.jpt.eclipselink.core.resource.orm.XmlEntity;
-import org.eclipse.jpt.eclipselink.core.resource.orm.XmlReadOnly;
-import org.eclipse.wst.validation.internal.provisional.core.IMessage;
-import org.eclipse.wst.validation.internal.provisional.core.IReporter;
-
-public class EclipseLinkOrmEntityImpl extends AbstractOrmEntity
-	implements EclipseLinkOrmEntity
-{
-	protected final EclipseLinkOrmReadOnly readOnly;
-	
-	protected final EclipseLinkOrmCustomizer customizer;
-	
-	protected final EclipseLinkOrmChangeTracking changeTracking;
-	
-	protected final EclipseLinkOrmCaching caching;
-	
-	protected final EclipseLinkOrmConverterHolder converterHolder;
-	
-	
-	public EclipseLinkOrmEntityImpl(OrmPersistentType parent, XmlEntity resourceMapping) {
-		super(parent, resourceMapping);
-		this.readOnly = new EclipseLinkOrmReadOnly(this, (XmlReadOnly) this.resourceTypeMapping, getJavaReadOnly());
-		this.customizer = new EclipseLinkOrmCustomizer(this, (XmlCustomizerHolder) this.resourceTypeMapping, getJavaCustomizer());
-		this.changeTracking = new EclipseLinkOrmChangeTracking(this, (XmlChangeTrackingHolder) this.resourceTypeMapping, getJavaChangeTracking());
-		this.caching = new EclipseLinkOrmCaching(this, (XmlCacheHolder) this.resourceTypeMapping, getJavaCaching());
-		this.converterHolder = new EclipseLinkOrmConverterHolder(this, (XmlConvertersHolder) this.resourceTypeMapping);
-	}
-	
-	public Caching getCaching() {
-		return this.caching;
-	}
-
-	public Customizer getCustomizer() {
-		return this.customizer;
-	}
-
-	public ChangeTracking getChangeTracking() {
-		return this.changeTracking;
-	}
-
-	public EclipseLinkOrmReadOnly getReadOnly() {
-		return this.readOnly;
-	}
-	
-	public ConverterHolder getConverterHolder() {
-		return this.converterHolder;
-	}
-	
-	// **************** resource-context interaction ***************************
-	
-	@Override
-	public void update() {
-		super.update();
-		this.readOnly.update(getJavaReadOnly());
-		this.customizer.update(getJavaCustomizer());
-		this.changeTracking.update(getJavaChangeTracking());
-		this.caching.update(getJavaCaching());
-		this.converterHolder.update(); 
-	}
-	
-	@Override
-	protected EclipseLinkJavaEntity getJavaEntityForDefaults() {
-		return (EclipseLinkJavaEntity) super.getJavaEntityForDefaults();
-	}
-	
-	protected ReadOnly getJavaReadOnly() {
-		EclipseLinkJavaEntity javaEntity = getJavaEntityForDefaults();
-		return (javaEntity == null) ? null : javaEntity.getReadOnly();
-	}
-	
-	protected Customizer getJavaCustomizer() {
-		EclipseLinkJavaEntity javaEntity = getJavaEntityForDefaults();
-		return (javaEntity == null) ? null : javaEntity.getCustomizer();
-	}
-	
-	protected ChangeTracking getJavaChangeTracking() {
-		EclipseLinkJavaEntity javaEntity = getJavaEntityForDefaults();
-		return (javaEntity == null) ? null : javaEntity.getChangeTracking();
-	}
-	
-	protected JavaCaching getJavaCaching() {
-		EclipseLinkJavaEntity javaEntity = getJavaEntityForDefaults();
-		return (javaEntity == null) ? null : javaEntity.getCaching();
-	}
-	
-	
-	// **************** validation **************************************
-	
-	@Override
-	public void validate(List<IMessage> messages, IReporter reporter) {
-		super.validate(messages, reporter);
-		this.readOnly.validate(messages, reporter);
-		this.customizer.validate(messages, reporter);
-		this.changeTracking.validate(messages, reporter);
-		this.caching.validate(messages, reporter);
-	}
-}
diff --git a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/context/orm/EclipseLinkOrmEntityProvider.java b/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/context/orm/EclipseLinkOrmEntityProvider.java
deleted file mode 100644
index f9e9483..0000000
--- a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/context/orm/EclipseLinkOrmEntityProvider.java
+++ /dev/null
@@ -1,64 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008, 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.eclipselink.core.internal.context.orm;
-
-import org.eclipse.core.runtime.content.IContentType;
-import org.eclipse.jpt.core.JpaFactory;
-import org.eclipse.jpt.core.MappingKeys;
-import org.eclipse.jpt.core.context.orm.OrmPersistentType;
-import org.eclipse.jpt.core.context.orm.OrmTypeMapping;
-import org.eclipse.jpt.core.context.orm.OrmTypeMappingProvider;
-import org.eclipse.jpt.core.resource.orm.XmlTypeMapping;
-import org.eclipse.jpt.eclipselink.core.internal.EclipseLinkJpaFactory;
-import org.eclipse.jpt.eclipselink.core.internal.JptEclipseLinkCorePlugin;
-import org.eclipse.jpt.eclipselink.core.resource.orm.EclipseLinkOrmFactory;
-import org.eclipse.jpt.eclipselink.core.resource.orm.XmlEntity;
-
-/**
- * EclipseLink ORM Entity provider
- * Allow for EclipseLink extensions to Entity
- */
-public class EclipseLinkOrmEntityProvider
-	implements OrmTypeMappingProvider
-{
-	// singleton
-	private static final OrmTypeMappingProvider INSTANCE = new EclipseLinkOrmEntityProvider();
-
-	/**
-	 * Return the singleton.
-	 */
-	public static OrmTypeMappingProvider instance() {
-		return INSTANCE;
-	}
-
-	/**
-	 * Ensure single instance.
-	 */
-	private EclipseLinkOrmEntityProvider() {
-		super();
-	}
-
-	public IContentType getContentType() {
-		return JptEclipseLinkCorePlugin.ECLIPSELINK_ORM_XML_CONTENT_TYPE;
-	}
-	
-	public XmlTypeMapping buildResourceMapping() {
-		return EclipseLinkOrmFactory.eINSTANCE.createXmlEntity();
-	}
-
-	public OrmTypeMapping buildMapping(OrmPersistentType parent, XmlTypeMapping resourceMapping, JpaFactory factory) {
-		return ((EclipseLinkJpaFactory) factory).buildEclipseLinkOrmEntity(parent, (XmlEntity) resourceMapping);
-	}
-
-	public String getKey() {
-		return MappingKeys.ENTITY_TYPE_MAPPING_KEY;
-	}
-
-}
diff --git a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/context/orm/EclipseLinkOrmExpiryTimeOfDay.java b/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/context/orm/EclipseLinkOrmExpiryTimeOfDay.java
deleted file mode 100644
index 490730e..0000000
--- a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/context/orm/EclipseLinkOrmExpiryTimeOfDay.java
+++ /dev/null
@@ -1,137 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008, 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.eclipselink.core.internal.context.orm;
-
-import org.eclipse.jpt.core.internal.context.AbstractXmlContextNode;
-import org.eclipse.jpt.core.utility.TextRange;
-import org.eclipse.jpt.eclipselink.core.context.ExpiryTimeOfDay;
-import org.eclipse.jpt.eclipselink.core.context.orm.OrmCaching;
-import org.eclipse.jpt.eclipselink.core.resource.orm.XmlTimeOfDay;
-
-public class EclipseLinkOrmExpiryTimeOfDay extends AbstractXmlContextNode
-	implements ExpiryTimeOfDay
-{
-	
-	protected Integer hour;
-	protected Integer minute;
-	protected Integer second;
-	protected Integer millisecond;
-	
-	protected XmlTimeOfDay resourceTimeOfDay;
-	
-	public EclipseLinkOrmExpiryTimeOfDay(OrmCaching parent) {
-		super(parent);
-	}
-	
-	
-	public Integer getHour() {
-		return this.hour;
-	}
-
-	public void setHour(Integer newHour) {
-		Integer oldHour = this.hour;
-		this.hour = newHour;
-		this.resourceTimeOfDay.setHour(newHour);
-		firePropertyChanged(HOUR_PROPERTY, oldHour, newHour);
-	}
-
-	protected void setHour_(Integer newHour) {
-		Integer oldHour = this.hour;
-		this.hour = newHour;
-		firePropertyChanged(HOUR_PROPERTY, oldHour, newHour);
-	}
-
-	public Integer getMinute() {
-		return this.minute;
-	}
-
-	public void setMinute(Integer newMinute) {
-		Integer oldMinute = this.minute;
-		this.minute = newMinute;
-		this.resourceTimeOfDay.setMinute(newMinute);
-		firePropertyChanged(MINUTE_PROPERTY, oldMinute, newMinute);
-	}
-
-	protected void setMinute_(Integer newMinute) {
-		Integer oldMinute = this.minute;
-		this.minute = newMinute;
-		firePropertyChanged(MINUTE_PROPERTY, oldMinute, newMinute);
-	}
-
-	public Integer getSecond() {
-		return this.second;
-	}
-
-	public void setSecond(Integer newSecond) {
-		Integer oldSecond = this.second;
-		this.second = newSecond;
-		this.resourceTimeOfDay.setSecond(newSecond);
-		firePropertyChanged(SECOND_PROPERTY, oldSecond, newSecond);
-	}
-	
-	protected void setSecond_(Integer newSecond) {
-		Integer oldSecond = this.second;
-		this.second = newSecond;
-		firePropertyChanged(SECOND_PROPERTY, oldSecond, newSecond);
-	}
-
-	public Integer getMillisecond() {
-		return this.millisecond;
-	}
-
-	public void setMillisecond(Integer newMillisecond) {
-		Integer oldMillisecond = this.millisecond;
-		this.millisecond = newMillisecond;
-		this.resourceTimeOfDay.setMillisecond(newMillisecond);
-		firePropertyChanged(MILLISECOND_PROPERTY, oldMillisecond, newMillisecond);
-	}
-	
-	protected void setMillisecond_(Integer newMillisecond) {
-		Integer oldMillisecond = this.millisecond;
-		this.millisecond = newMillisecond;
-		firePropertyChanged(MILLISECOND_PROPERTY, oldMillisecond, newMillisecond);
-	}
-
-	public TextRange getValidationTextRange() {
-		return this.resourceTimeOfDay.getValidationTextRange();
-	}
-	
-	public void initialize(XmlTimeOfDay resource) {
-		this.resourceTimeOfDay = resource;
-		this.hour = getResourceHour();
-		this.minute = getResourceMinute();
-		this.second = getResourceSecond();
-		this.millisecond = getResourceMillisecond();
-	}
-	
-	public void update(XmlTimeOfDay resource) {
-		this.resourceTimeOfDay = resource;
-		this.setHour_(getResourceHour());
-		this.setMinute_(getResourceMinute());
-		this.setSecond_(getResourceSecond());
-		this.setMillisecond_(getResourceMillisecond());
-	}
-	
-	protected Integer getResourceHour() {
-		return this.resourceTimeOfDay.getHour();
-	}
-	
-	protected Integer getResourceMinute() {
-		return this.resourceTimeOfDay.getMinute();
-	}
-	
-	protected Integer getResourceSecond() {
-		return this.resourceTimeOfDay.getSecond();
-	}
-	
-	protected Integer getResourceMillisecond() {
-		return this.resourceTimeOfDay.getMillisecond();
-	}
-}
diff --git a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/context/orm/EclipseLinkOrmIdMapping.java b/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/context/orm/EclipseLinkOrmIdMapping.java
deleted file mode 100644
index 74a8074..0000000
--- a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/context/orm/EclipseLinkOrmIdMapping.java
+++ /dev/null
@@ -1,78 +0,0 @@
-/*******************************************************************************
- *  Copyright (c) 2008, 2009  Oracle. 
- *  All rights reserved.  This program and the accompanying materials are 
- *  made available under the terms of the Eclipse Public License v1.0 which 
- *  accompanies this distribution, and is available at 
- *  http://www.eclipse.org/legal/epl-v10.html
- *  
- *  Contributors: 
- *  	Oracle - initial API and implementation
- *******************************************************************************/
-package org.eclipse.jpt.eclipselink.core.internal.context.orm;
-
-import java.util.List;
-import org.eclipse.jpt.core.context.orm.OrmConverter;
-import org.eclipse.jpt.core.context.orm.OrmPersistentAttribute;
-import org.eclipse.jpt.core.internal.context.orm.GenericOrmIdMapping;
-import org.eclipse.jpt.eclipselink.core.context.Convert;
-import org.eclipse.jpt.eclipselink.core.context.EclipseLinkIdMapping;
-import org.eclipse.jpt.eclipselink.core.context.Mutable;
-import org.eclipse.jpt.eclipselink.core.resource.orm.XmlId;
-import org.eclipse.wst.validation.internal.provisional.core.IMessage;
-import org.eclipse.wst.validation.internal.provisional.core.IReporter;
-
-public class EclipseLinkOrmIdMapping<T extends XmlId> 
-	extends GenericOrmIdMapping<T>
-	implements EclipseLinkIdMapping
-{
-	protected EclipseLinkOrmMutable mutable;
-	
-	
-	public EclipseLinkOrmIdMapping(OrmPersistentAttribute parent, T resourceMapping) {
-		super(parent, resourceMapping);
-		this.mutable = new EclipseLinkOrmMutable(this, this.resourceAttributeMapping);
-	}
-	
-	
-	public Mutable getMutable() {
-		return this.mutable;
-	}
-
-	@Override
-	protected OrmConverter buildSpecifiedConverter(String converterType) {
-		OrmConverter ormConverter = super.buildSpecifiedConverter(converterType);
-		if (ormConverter != null) {
-			return ormConverter;
-		}
-		if (converterType == Convert.ECLIPSE_LINK_CONVERTER) {
-			return new EclipseLinkOrmConvert(this, this.resourceAttributeMapping);
-		}
-		return null;
-	}
-	
-	@Override
-	protected String getResourceConverterType() {
-		//check @Convert first, this is the order that EclipseLink searches
-		if (((XmlId) this.resourceAttributeMapping).getConvert() != null) {
-			return Convert.ECLIPSE_LINK_CONVERTER;
-		}
-		return super.getResourceConverterType();
-	}
-	
-	// **************** resource-context interaction ***************************
-	
-	@Override
-	public void update() {
-		super.update();
-		this.mutable.update();
-	}
-	
-	
-	// **************** validation **************************************
-	
-	@Override
-	public void validate(List<IMessage> messages, IReporter reporter) {
-		super.validate(messages, reporter);
-		// TODO - mutable validation
-	}
-}
diff --git a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/context/orm/EclipseLinkOrmIdMappingProvider.java b/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/context/orm/EclipseLinkOrmIdMappingProvider.java
deleted file mode 100644
index 964cc6f..0000000
--- a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/context/orm/EclipseLinkOrmIdMappingProvider.java
+++ /dev/null
@@ -1,67 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008, 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.eclipselink.core.internal.context.orm;
-
-import org.eclipse.core.runtime.content.IContentType;
-import org.eclipse.jpt.core.JpaFactory;
-import org.eclipse.jpt.core.MappingKeys;
-import org.eclipse.jpt.core.context.java.JavaAttributeMapping;
-import org.eclipse.jpt.core.context.java.JavaIdMapping;
-import org.eclipse.jpt.core.context.orm.OrmAttributeMapping;
-import org.eclipse.jpt.core.context.orm.OrmAttributeMappingProvider;
-import org.eclipse.jpt.core.context.orm.OrmPersistentAttribute;
-import org.eclipse.jpt.core.context.orm.OrmTypeMapping;
-import org.eclipse.jpt.core.resource.orm.XmlAttributeMapping;
-import org.eclipse.jpt.eclipselink.core.internal.EclipseLinkJpaFactory;
-import org.eclipse.jpt.eclipselink.core.internal.JptEclipseLinkCorePlugin;
-import org.eclipse.jpt.eclipselink.core.resource.orm.EclipseLinkOrmFactory;
-import org.eclipse.jpt.eclipselink.core.resource.orm.XmlId;
-
-public class EclipseLinkOrmIdMappingProvider
-	implements OrmAttributeMappingProvider
-{
-	// singleton
-	private static final OrmAttributeMappingProvider INSTANCE = new EclipseLinkOrmIdMappingProvider();
-
-	/**
-	 * Return the singleton.
-	 */
-	public static OrmAttributeMappingProvider instance() {
-		return INSTANCE;
-	}
-
-	/**
-	 * Ensure single instance.
-	 */
-	private EclipseLinkOrmIdMappingProvider() {
-		super();
-	}
-
-	public IContentType getContentType() {
-		return JptEclipseLinkCorePlugin.ECLIPSELINK_ORM_XML_CONTENT_TYPE;
-	}
-
-	public String getKey() {
-		return MappingKeys.ID_ATTRIBUTE_MAPPING_KEY;
-	}
-	
-	public XmlAttributeMapping buildResourceMapping() {
-		return EclipseLinkOrmFactory.eINSTANCE.createXmlIdImpl();
-	}
-
-	public OrmAttributeMapping buildMapping(OrmPersistentAttribute parent, XmlAttributeMapping resourceMapping, JpaFactory factory) {
-		return ((EclipseLinkJpaFactory) factory).buildEclipseLinkOrmIdMapping(parent, (XmlId) resourceMapping);
-	}
-
-	public XmlAttributeMapping buildVirtualResourceMapping(OrmTypeMapping ormTypeMapping, JavaAttributeMapping javaAttributeMapping, JpaFactory factory) {
-		return ((EclipseLinkJpaFactory) factory).buildEclipseLinkVirtualXmlId(ormTypeMapping, (JavaIdMapping) javaAttributeMapping);
-	}
-
-}
diff --git a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/context/orm/EclipseLinkOrmJoinFetch.java b/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/context/orm/EclipseLinkOrmJoinFetch.java
deleted file mode 100644
index 1ee0b44..0000000
--- a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/context/orm/EclipseLinkOrmJoinFetch.java
+++ /dev/null
@@ -1,68 +0,0 @@
-/*******************************************************************************
- *  Copyright (c) 2008, 2009  Oracle. 
- *  All rights reserved.  This program and the accompanying materials are 
- *  made available under the terms of the Eclipse Public License v1.0 which 
- *  accompanies this distribution, and is available at 
- *  http://www.eclipse.org/legal/epl-v10.html
- *  
- *  Contributors: 
- *  	Oracle - initial API and implementation
- *******************************************************************************/
-package org.eclipse.jpt.eclipselink.core.internal.context.orm;
-
-import org.eclipse.jpt.core.context.orm.OrmAttributeMapping;
-import org.eclipse.jpt.core.internal.context.AbstractXmlContextNode;
-import org.eclipse.jpt.core.utility.TextRange;
-import org.eclipse.jpt.eclipselink.core.context.JoinFetch;
-import org.eclipse.jpt.eclipselink.core.context.JoinFetchType;
-import org.eclipse.jpt.eclipselink.core.resource.orm.XmlJoinFetch;
-
-public class EclipseLinkOrmJoinFetch extends AbstractXmlContextNode
-	implements JoinFetch
-{
-	protected XmlJoinFetch resource;
-	
-	protected JoinFetchType joinFetchValue;
-	
-	
-	public EclipseLinkOrmJoinFetch(OrmAttributeMapping parent, XmlJoinFetch resource) {
-		super(parent);
-		this.resource = resource;
-		this.joinFetchValue = getResourceJoinFetch();
-	}
-	
-	
-	public JoinFetchType getValue() {
-		return this.joinFetchValue;
-	}
-	
-	public void setValue(JoinFetchType newJoinFetchValue) {
-		JoinFetchType oldJoinFetchValue = this.joinFetchValue;
-		this.joinFetchValue = newJoinFetchValue;
-		this.resource.setJoinFetch(JoinFetchType.toOrmResourceModel(newJoinFetchValue));
-		firePropertyChanged(VALUE_PROPERTY, oldJoinFetchValue, newJoinFetchValue);
-	}
-	
-	protected void setValue_(JoinFetchType newJoinFetchValue) {
-		JoinFetchType oldJoinFetchValue = this.joinFetchValue;
-		this.joinFetchValue = newJoinFetchValue;
-		firePropertyChanged(VALUE_PROPERTY, oldJoinFetchValue, newJoinFetchValue);
-	}
-	
-	
-	// **************** initialize/update **************************************
-	
-	protected void update() {
-		setValue_(getResourceJoinFetch());
-	}
-	
-	protected JoinFetchType getResourceJoinFetch() {
-		return JoinFetchType.fromOrmResourceModel(this.resource.getJoinFetch());
-	}
-	
-	// **************** validation **************************************
-	
-	public TextRange getValidationTextRange() {
-		return this.resource.getJoinFetchTextRange();
-	}
-}
diff --git a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/context/orm/EclipseLinkOrmManyToManyMapping.java b/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/context/orm/EclipseLinkOrmManyToManyMapping.java
deleted file mode 100644
index 59ef5f1..0000000
--- a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/context/orm/EclipseLinkOrmManyToManyMapping.java
+++ /dev/null
@@ -1,57 +0,0 @@
-/*******************************************************************************
- *  Copyright (c) 2008, 2009  Oracle. 
- *  All rights reserved.  This program and the accompanying materials are 
- *  made available under the terms of the Eclipse Public License v1.0 which 
- *  accompanies this distribution, and is available at 
- *  http://www.eclipse.org/legal/epl-v10.html
- *  
- *  Contributors: 
- *  	Oracle - initial API and implementation
- *******************************************************************************/
-package org.eclipse.jpt.eclipselink.core.internal.context.orm;
-
-import java.util.List;
-import org.eclipse.jpt.core.context.orm.OrmPersistentAttribute;
-import org.eclipse.jpt.core.internal.context.orm.GenericOrmManyToManyMapping;
-import org.eclipse.jpt.eclipselink.core.context.EclipseLinkRelationshipMapping;
-import org.eclipse.jpt.eclipselink.core.context.JoinFetch;
-import org.eclipse.jpt.eclipselink.core.resource.orm.XmlJoinFetch;
-import org.eclipse.jpt.eclipselink.core.resource.orm.XmlManyToMany;
-import org.eclipse.wst.validation.internal.provisional.core.IMessage;
-import org.eclipse.wst.validation.internal.provisional.core.IReporter;
-
-public class EclipseLinkOrmManyToManyMapping<T extends XmlManyToMany>
-	extends GenericOrmManyToManyMapping<T>
-	implements EclipseLinkRelationshipMapping
-{
-	protected EclipseLinkOrmJoinFetch joinFetch;
-	
-	
-	public EclipseLinkOrmManyToManyMapping(OrmPersistentAttribute parent, T resourceMapping) {
-		super(parent, resourceMapping);
-		this.joinFetch = new EclipseLinkOrmJoinFetch(this, (XmlJoinFetch) this.resourceAttributeMapping);
-	}
-	
-	
-	public JoinFetch getJoinFetch() {
-		return this.joinFetch;
-	}
-	
-	
-	// **************** resource-context interaction ***************************
-	
-	@Override
-	public void update() {
-		super.update();
-		this.joinFetch.update();
-	}
-	
-	
-	// **************** validation **************************************
-	
-	@Override
-	public void validate(List<IMessage> messages, IReporter reporter) {
-		super.validate(messages, reporter);
-		// TODO - private owned, join fetch validation
-	}
-}
\ No newline at end of file
diff --git a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/context/orm/EclipseLinkOrmManyToManyMappingProvider.java b/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/context/orm/EclipseLinkOrmManyToManyMappingProvider.java
deleted file mode 100644
index 9fdc4be..0000000
--- a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/context/orm/EclipseLinkOrmManyToManyMappingProvider.java
+++ /dev/null
@@ -1,67 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008, 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.eclipselink.core.internal.context.orm;
-
-import org.eclipse.core.runtime.content.IContentType;
-import org.eclipse.jpt.core.JpaFactory;
-import org.eclipse.jpt.core.MappingKeys;
-import org.eclipse.jpt.core.context.java.JavaAttributeMapping;
-import org.eclipse.jpt.core.context.java.JavaManyToManyMapping;
-import org.eclipse.jpt.core.context.orm.OrmAttributeMapping;
-import org.eclipse.jpt.core.context.orm.OrmAttributeMappingProvider;
-import org.eclipse.jpt.core.context.orm.OrmPersistentAttribute;
-import org.eclipse.jpt.core.context.orm.OrmTypeMapping;
-import org.eclipse.jpt.core.resource.orm.XmlAttributeMapping;
-import org.eclipse.jpt.eclipselink.core.internal.EclipseLinkJpaFactory;
-import org.eclipse.jpt.eclipselink.core.internal.JptEclipseLinkCorePlugin;
-import org.eclipse.jpt.eclipselink.core.resource.orm.EclipseLinkOrmFactory;
-import org.eclipse.jpt.eclipselink.core.resource.orm.XmlManyToMany;
-
-public class EclipseLinkOrmManyToManyMappingProvider
-	implements OrmAttributeMappingProvider
-{
-	// singleton
-	private static final OrmAttributeMappingProvider INSTANCE = new EclipseLinkOrmManyToManyMappingProvider();
-
-	/**
-	 * Return the singleton.
-	 */
-	public static OrmAttributeMappingProvider instance() {
-		return INSTANCE;
-	}
-
-	/**
-	 * Ensure single instance.
-	 */
-	private EclipseLinkOrmManyToManyMappingProvider() {
-		super();
-	}
-
-	public IContentType getContentType() {
-		return JptEclipseLinkCorePlugin.ECLIPSELINK_ORM_XML_CONTENT_TYPE;
-	}
-
-	public String getKey() {
-		return MappingKeys.MANY_TO_MANY_ATTRIBUTE_MAPPING_KEY;
-	}
-	
-	public XmlAttributeMapping buildResourceMapping() {
-		return EclipseLinkOrmFactory.eINSTANCE.createXmlManyToManyImpl();
-	}
-
-	public OrmAttributeMapping buildMapping(OrmPersistentAttribute parent, XmlAttributeMapping resourceMapping, JpaFactory factory) {
-		return ((EclipseLinkJpaFactory) factory).buildEclipseLinkOrmManyToManyMapping(parent, (XmlManyToMany) resourceMapping);
-	}
-
-	public XmlAttributeMapping buildVirtualResourceMapping(OrmTypeMapping ormTypeMapping, JavaAttributeMapping javaAttributeMapping, JpaFactory factory) {
-		return ((EclipseLinkJpaFactory) factory).buildEclipseLinkVirtualXmlManyToMany(ormTypeMapping, (JavaManyToManyMapping) javaAttributeMapping);
-	}
-
-}
diff --git a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/context/orm/EclipseLinkOrmManyToOneMapping.java b/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/context/orm/EclipseLinkOrmManyToOneMapping.java
deleted file mode 100644
index 0a26017..0000000
--- a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/context/orm/EclipseLinkOrmManyToOneMapping.java
+++ /dev/null
@@ -1,57 +0,0 @@
-/*******************************************************************************
- *  Copyright (c) 2008, 2009  Oracle. 
- *  All rights reserved.  This program and the accompanying materials are 
- *  made available under the terms of the Eclipse Public License v1.0 which 
- *  accompanies this distribution, and is available at 
- *  http://www.eclipse.org/legal/epl-v10.html
- *  
- *  Contributors: 
- *  	Oracle - initial API and implementation
- *******************************************************************************/
-package org.eclipse.jpt.eclipselink.core.internal.context.orm;
-
-import java.util.List;
-import org.eclipse.jpt.core.context.orm.OrmPersistentAttribute;
-import org.eclipse.jpt.core.internal.context.orm.GenericOrmManyToOneMapping;
-import org.eclipse.jpt.eclipselink.core.context.EclipseLinkRelationshipMapping;
-import org.eclipse.jpt.eclipselink.core.context.JoinFetch;
-import org.eclipse.jpt.eclipselink.core.resource.orm.XmlJoinFetch;
-import org.eclipse.jpt.eclipselink.core.resource.orm.XmlManyToOne;
-import org.eclipse.wst.validation.internal.provisional.core.IMessage;
-import org.eclipse.wst.validation.internal.provisional.core.IReporter;
-
-public class EclipseLinkOrmManyToOneMapping<T extends XmlManyToOne>
-	extends GenericOrmManyToOneMapping<T>
-	implements EclipseLinkRelationshipMapping
-{
-	protected EclipseLinkOrmJoinFetch joinFetch;
-	
-	
-	public EclipseLinkOrmManyToOneMapping(OrmPersistentAttribute parent, T resourceMapping) {
-		super(parent, resourceMapping);
-		this.joinFetch = new EclipseLinkOrmJoinFetch(this, (XmlJoinFetch) this.resourceAttributeMapping);
-	}
-	
-	
-	public JoinFetch getJoinFetch() {
-		return this.joinFetch;
-	}
-	
-	
-	// **************** resource-context interaction ***************************
-	
-	@Override
-	public void update() {
-		super.update();
-		this.joinFetch.update();
-	}
-	
-	
-	// **************** validation **************************************
-	
-	@Override
-	public void validate(List<IMessage> messages, IReporter reporter) {
-		super.validate(messages, reporter);
-		// TODO - private owned, join fetch validation
-	}
-}
\ No newline at end of file
diff --git a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/context/orm/EclipseLinkOrmManyToOneMappingProvider.java b/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/context/orm/EclipseLinkOrmManyToOneMappingProvider.java
deleted file mode 100644
index ac27afa..0000000
--- a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/context/orm/EclipseLinkOrmManyToOneMappingProvider.java
+++ /dev/null
@@ -1,67 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008, 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.eclipselink.core.internal.context.orm;
-
-import org.eclipse.core.runtime.content.IContentType;
-import org.eclipse.jpt.core.JpaFactory;
-import org.eclipse.jpt.core.MappingKeys;
-import org.eclipse.jpt.core.context.java.JavaAttributeMapping;
-import org.eclipse.jpt.core.context.java.JavaManyToOneMapping;
-import org.eclipse.jpt.core.context.orm.OrmAttributeMapping;
-import org.eclipse.jpt.core.context.orm.OrmAttributeMappingProvider;
-import org.eclipse.jpt.core.context.orm.OrmPersistentAttribute;
-import org.eclipse.jpt.core.context.orm.OrmTypeMapping;
-import org.eclipse.jpt.core.resource.orm.XmlAttributeMapping;
-import org.eclipse.jpt.eclipselink.core.internal.EclipseLinkJpaFactory;
-import org.eclipse.jpt.eclipselink.core.internal.JptEclipseLinkCorePlugin;
-import org.eclipse.jpt.eclipselink.core.resource.orm.EclipseLinkOrmFactory;
-import org.eclipse.jpt.eclipselink.core.resource.orm.XmlManyToOne;
-
-public class EclipseLinkOrmManyToOneMappingProvider
-	implements OrmAttributeMappingProvider
-{
-	// singleton
-	private static final OrmAttributeMappingProvider INSTANCE = new EclipseLinkOrmManyToOneMappingProvider();
-
-	/**
-	 * Return the singleton.
-	 */
-	public static OrmAttributeMappingProvider instance() {
-		return INSTANCE;
-	}
-
-	/**
-	 * Ensure single instance.
-	 */
-	private EclipseLinkOrmManyToOneMappingProvider() {
-		super();
-	}
-
-	public IContentType getContentType() {
-		return JptEclipseLinkCorePlugin.ECLIPSELINK_ORM_XML_CONTENT_TYPE;
-	}
-
-	public String getKey() {
-		return MappingKeys.MANY_TO_ONE_ATTRIBUTE_MAPPING_KEY;
-	}
-	
-	public XmlAttributeMapping buildResourceMapping() {
-		return EclipseLinkOrmFactory.eINSTANCE.createXmlManyToOneImpl();
-	}
-
-	public OrmAttributeMapping buildMapping(OrmPersistentAttribute parent, XmlAttributeMapping resourceMapping, JpaFactory factory) {
-		return ((EclipseLinkJpaFactory) factory).buildEclipseLinkOrmManyToOneMapping(parent, (XmlManyToOne) resourceMapping);
-	}
-
-	public XmlAttributeMapping buildVirtualResourceMapping(OrmTypeMapping ormTypeMapping, JavaAttributeMapping javaAttributeMapping, JpaFactory factory) {
-		return ((EclipseLinkJpaFactory) factory).buildEclipseLinkVirtualXmlManyToOne(ormTypeMapping, (JavaManyToOneMapping) javaAttributeMapping);
-	}
-
-}
diff --git a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/context/orm/EclipseLinkOrmMappedSuperclass.java b/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/context/orm/EclipseLinkOrmMappedSuperclass.java
deleted file mode 100644
index 09950fc..0000000
--- a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/context/orm/EclipseLinkOrmMappedSuperclass.java
+++ /dev/null
@@ -1,18 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.eclipselink.core.internal.context.orm;
-
-import org.eclipse.jpt.core.context.orm.OrmMappedSuperclass;
-import org.eclipse.jpt.eclipselink.core.context.EclipseLinkMappedSuperclass;
-
-public interface EclipseLinkOrmMappedSuperclass extends EclipseLinkMappedSuperclass, OrmMappedSuperclass
-{
-	ConverterHolder getConverterHolder();
-}
diff --git a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/context/orm/EclipseLinkOrmMappedSuperclassImpl.java b/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/context/orm/EclipseLinkOrmMappedSuperclassImpl.java
deleted file mode 100644
index b06d095..0000000
--- a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/context/orm/EclipseLinkOrmMappedSuperclassImpl.java
+++ /dev/null
@@ -1,122 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008, 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.eclipselink.core.internal.context.orm;
-
-import java.util.List;
-import org.eclipse.jpt.core.context.orm.OrmPersistentType;
-import org.eclipse.jpt.core.internal.context.orm.AbstractOrmMappedSuperclass;
-import org.eclipse.jpt.core.resource.orm.XmlMappedSuperclass;
-import org.eclipse.jpt.eclipselink.core.context.Caching;
-import org.eclipse.jpt.eclipselink.core.context.ChangeTracking;
-import org.eclipse.jpt.eclipselink.core.context.Customizer;
-import org.eclipse.jpt.eclipselink.core.context.ReadOnly;
-import org.eclipse.jpt.eclipselink.core.context.java.EclipseLinkJavaMappedSuperclass;
-import org.eclipse.jpt.eclipselink.core.context.java.JavaCaching;
-import org.eclipse.jpt.eclipselink.core.resource.orm.XmlCacheHolder;
-import org.eclipse.jpt.eclipselink.core.resource.orm.XmlChangeTrackingHolder;
-import org.eclipse.jpt.eclipselink.core.resource.orm.XmlConvertersHolder;
-import org.eclipse.jpt.eclipselink.core.resource.orm.XmlCustomizerHolder;
-import org.eclipse.jpt.eclipselink.core.resource.orm.XmlReadOnly;
-import org.eclipse.wst.validation.internal.provisional.core.IMessage;
-import org.eclipse.wst.validation.internal.provisional.core.IReporter;
-
-public class EclipseLinkOrmMappedSuperclassImpl extends AbstractOrmMappedSuperclass
-	implements EclipseLinkOrmMappedSuperclass
-{
-	protected final EclipseLinkOrmReadOnly readOnly;
-	
-	protected final EclipseLinkOrmCustomizer customizer;
-	
-	protected final EclipseLinkOrmChangeTracking changeTracking;
-	
-	protected final EclipseLinkOrmCaching caching;
-	
-	protected final EclipseLinkOrmConverterHolder converterHolder;
-	
-	
-	public EclipseLinkOrmMappedSuperclassImpl(OrmPersistentType parent, XmlMappedSuperclass resourceMapping) {
-		super(parent, resourceMapping);
-		this.readOnly = new EclipseLinkOrmReadOnly(this, (XmlReadOnly) this.resourceTypeMapping, getJavaReadOnly());
-		this.customizer = new EclipseLinkOrmCustomizer(this, (XmlCustomizerHolder) this.resourceTypeMapping, getJavaCustomizer());
-		this.changeTracking = new EclipseLinkOrmChangeTracking(this, (XmlChangeTrackingHolder) this.resourceTypeMapping, getJavaChangeTracking());
-		this.caching = new EclipseLinkOrmCaching(this, (XmlCacheHolder) this.resourceTypeMapping, getJavaCaching());
-		this.converterHolder = new EclipseLinkOrmConverterHolder(this, (XmlConvertersHolder) this.resourceTypeMapping);
-	}
-	
-	public Caching getCaching() {
-		return this.caching;
-	}
-
-	public Customizer getCustomizer() {
-		return this.customizer;
-	}
-
-	public ChangeTracking getChangeTracking() {
-		return this.changeTracking;
-	}
-
-	public EclipseLinkOrmReadOnly getReadOnly() {
-		return this.readOnly;
-	}
-	
-	public ConverterHolder getConverterHolder() {
-		return this.converterHolder;
-	}
-	
-	
-	// **************** resource-context interaction ***************************
-	
-	@Override
-	public void update() {
-		super.update();
-		this.readOnly.update(getJavaReadOnly());
-		this.customizer.update(getJavaCustomizer());
-		this.changeTracking.update(getJavaChangeTracking());
-		this.caching.update(getJavaCaching());
-		this.converterHolder.update(); 
-	}
-	
-	@Override
-	protected EclipseLinkJavaMappedSuperclass getJavaMappedSuperclassForDefaults() {
-		return (EclipseLinkJavaMappedSuperclass) super.getJavaMappedSuperclassForDefaults();
-	}
-	
-	protected ReadOnly getJavaReadOnly() {
-		EclipseLinkJavaMappedSuperclass javaMappedSuperclass = getJavaMappedSuperclassForDefaults();
-		return (javaMappedSuperclass == null) ? null : javaMappedSuperclass.getReadOnly();
-	}
-	
-	protected Customizer getJavaCustomizer() {
-		EclipseLinkJavaMappedSuperclass javaMappedSuperclass = getJavaMappedSuperclassForDefaults();
-		return (javaMappedSuperclass == null) ? null : javaMappedSuperclass.getCustomizer();
-	}
-	
-	protected ChangeTracking getJavaChangeTracking() {
-		EclipseLinkJavaMappedSuperclass javaMappedSuperclass = getJavaMappedSuperclassForDefaults();
-		return (javaMappedSuperclass == null) ? null : javaMappedSuperclass.getChangeTracking();
-	}
-	
-	protected JavaCaching getJavaCaching() {
-		EclipseLinkJavaMappedSuperclass javaMappedSuperclass = getJavaMappedSuperclassForDefaults();
-		return (javaMappedSuperclass == null) ? null : javaMappedSuperclass.getCaching();
-	}
-	
-	
-	// **************** validation **************************************
-	
-	@Override
-	public void validate(List<IMessage> messages, IReporter reporter) {
-		super.validate(messages, reporter);
-		this.readOnly.validate(messages, reporter);
-		this.customizer.validate(messages, reporter);
-		this.changeTracking.validate(messages, reporter);
-		this.caching.validate(messages, reporter);
-	}
-}
diff --git a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/context/orm/EclipseLinkOrmMappedSuperclassProvider.java b/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/context/orm/EclipseLinkOrmMappedSuperclassProvider.java
deleted file mode 100644
index 9081ecd..0000000
--- a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/context/orm/EclipseLinkOrmMappedSuperclassProvider.java
+++ /dev/null
@@ -1,64 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008, 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.eclipselink.core.internal.context.orm;
-
-import org.eclipse.core.runtime.content.IContentType;
-import org.eclipse.jpt.core.JpaFactory;
-import org.eclipse.jpt.core.MappingKeys;
-import org.eclipse.jpt.core.context.orm.OrmPersistentType;
-import org.eclipse.jpt.core.context.orm.OrmTypeMapping;
-import org.eclipse.jpt.core.context.orm.OrmTypeMappingProvider;
-import org.eclipse.jpt.core.resource.orm.XmlTypeMapping;
-import org.eclipse.jpt.eclipselink.core.internal.EclipseLinkJpaFactory;
-import org.eclipse.jpt.eclipselink.core.internal.JptEclipseLinkCorePlugin;
-import org.eclipse.jpt.eclipselink.core.resource.orm.EclipseLinkOrmFactory;
-import org.eclipse.jpt.eclipselink.core.resource.orm.XmlMappedSuperclass;
-
-/**
- * EclipseLink ORM Mapped Superclass provider
- * Allow for EclipseLink extensions to Mapped Superclass
- */
-public class EclipseLinkOrmMappedSuperclassProvider
-	implements OrmTypeMappingProvider
-{
-	// singleton
-	private static final OrmTypeMappingProvider INSTANCE = new EclipseLinkOrmMappedSuperclassProvider();
-
-	/**
-	 * Return the singleton.
-	 */
-	public static OrmTypeMappingProvider instance() {
-		return INSTANCE;
-	}
-
-	/**
-	 * Ensure single instance.
-	 */
-	private EclipseLinkOrmMappedSuperclassProvider() {
-		super();
-	}
-
-	public IContentType getContentType() {
-		return JptEclipseLinkCorePlugin.ECLIPSELINK_ORM_XML_CONTENT_TYPE;
-	}
-	
-	public XmlTypeMapping buildResourceMapping() {
-		return EclipseLinkOrmFactory.eINSTANCE.createXmlMappedSuperclass();
-	}
-
-	public OrmTypeMapping buildMapping(OrmPersistentType parent, XmlTypeMapping resourceMapping, JpaFactory factory) {
-		return ((EclipseLinkJpaFactory) factory).buildEclipseLinkOrmMappedSuperclass(parent, (XmlMappedSuperclass) resourceMapping);
-	}
-
-	public String getKey() {
-		return MappingKeys.MAPPED_SUPERCLASS_TYPE_MAPPING_KEY;
-	}
-
-}
diff --git a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/context/orm/EclipseLinkOrmMutable.java b/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/context/orm/EclipseLinkOrmMutable.java
deleted file mode 100644
index 486fab5..0000000
--- a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/context/orm/EclipseLinkOrmMutable.java
+++ /dev/null
@@ -1,107 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008, 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.eclipselink.core.internal.context.orm;
-
-import org.eclipse.jpt.core.context.orm.OrmAttributeMapping;
-import org.eclipse.jpt.core.internal.context.AbstractXmlContextNode;
-import org.eclipse.jpt.core.utility.TextRange;
-import org.eclipse.jpt.eclipselink.core.context.Mutable;
-import org.eclipse.jpt.eclipselink.core.internal.context.java.AbstractEclipseLinkJavaPersistentAttribute;
-import org.eclipse.jpt.eclipselink.core.internal.context.persistence.EclipseLinkPersistenceUnit;
-import org.eclipse.jpt.eclipselink.core.resource.orm.XmlMutable;
-
-public class EclipseLinkOrmMutable extends AbstractXmlContextNode 
-	implements Mutable
-{
-	protected final XmlMutable resource;
-	
-	protected boolean defaultMutable;
-	
-	protected Boolean specifiedMutable;
-	
-	
-	public EclipseLinkOrmMutable(OrmAttributeMapping parent, XmlMutable resource) {
-		super(parent);
-		this.resource = resource;
-		this.defaultMutable = this.calculateDefaultMutable();
-		this.specifiedMutable = this.getResourceMutable();
-	}
-		
-	@Override
-	public EclipseLinkPersistenceUnit getPersistenceUnit() {
-		return (EclipseLinkPersistenceUnit) super.getPersistenceUnit();
-	}
-	
-	protected OrmAttributeMapping getAttributeMapping() {
-		return (OrmAttributeMapping) getParent();
-	}
-	
-	public boolean isMutable() {
-		return (this.specifiedMutable != null) ? this.specifiedMutable.booleanValue() : this.defaultMutable;
-	}
-	
-	public boolean isDefaultMutable() {
-		return this.defaultMutable;
-	}
-	
-	protected void setDefaultMutable(boolean newDefaultMutable) {
-		boolean oldDefaultMutable = this.defaultMutable;
-		this.defaultMutable = newDefaultMutable;
-		firePropertyChanged(DEFAULT_MUTABLE_PROPERTY, oldDefaultMutable, newDefaultMutable);
-	}
-	
-	public Boolean getSpecifiedMutable() {
-		return this.specifiedMutable;
-	}
-	
-	public void setSpecifiedMutable(Boolean newSpecifiedMutable) {
-		Boolean oldSpecifiedMutable = this.specifiedMutable;
-		this.specifiedMutable = newSpecifiedMutable;
-		this.resource.setMutable(newSpecifiedMutable);
-		firePropertyChanged(SPECIFIED_MUTABLE_PROPERTY, oldSpecifiedMutable, newSpecifiedMutable);
-	}
-	
-	protected void setSpecifiedMutable_(Boolean newSpecifiedMutable) {
-		Boolean oldSpecifiedMutable = this.specifiedMutable;
-		this.specifiedMutable = newSpecifiedMutable;
-		firePropertyChanged(SPECIFIED_MUTABLE_PROPERTY, oldSpecifiedMutable, newSpecifiedMutable);
-	}
-	
-	
-	// **************** initialize/update **************************************
-		
-	protected void update() {
-		setDefaultMutable(this.calculateDefaultMutable());
-		setSpecifiedMutable_(this.getResourceMutable());
-	}
-	
-	protected Boolean getResourceMutable() {
-		return this.resource.getMutable();
-	}
-	
-	protected boolean calculateDefaultMutable() {
-		AbstractEclipseLinkJavaPersistentAttribute javaAttribute = (AbstractEclipseLinkJavaPersistentAttribute) this.getAttributeMapping().getPersistentAttribute().getJavaPersistentAttribute();
-		if (javaAttribute == null) {
-			return false;
-		}
-		if (javaAttribute.typeIsDateOrCalendar()) {
-			Boolean persistenceUnitDefaultMutable = getPersistenceUnit().getOptions().getTemporalMutable();
-			return persistenceUnitDefaultMutable == null ? false : persistenceUnitDefaultMutable.booleanValue();
-		}
-		return javaAttribute.typeIsSerializable();
-	}
-	
-	
-	// **************** validation **************************************
-	
-	public TextRange getValidationTextRange() {
-		return this.resource.getMutableTextRange();
-	}
-}
diff --git a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/context/orm/EclipseLinkOrmObjectTypeConverter.java b/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/context/orm/EclipseLinkOrmObjectTypeConverter.java
deleted file mode 100644
index f5e49a6..0000000
--- a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/context/orm/EclipseLinkOrmObjectTypeConverter.java
+++ /dev/null
@@ -1,245 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008, 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.eclipselink.core.internal.context.orm;
-
-import java.util.ArrayList;
-import java.util.Iterator;
-import java.util.List;
-import java.util.ListIterator;
-import org.eclipse.jpt.core.context.XmlContextNode;
-import org.eclipse.jpt.eclipselink.core.context.ConversionValue;
-import org.eclipse.jpt.eclipselink.core.context.EclipseLinkConverter;
-import org.eclipse.jpt.eclipselink.core.context.ObjectTypeConverter;
-import org.eclipse.jpt.eclipselink.core.resource.orm.EclipseLinkOrmFactory;
-import org.eclipse.jpt.eclipselink.core.resource.orm.XmlConversionValue;
-import org.eclipse.jpt.eclipselink.core.resource.orm.XmlObjectTypeConverter;
-import org.eclipse.jpt.utility.internal.CollectionTools;
-import org.eclipse.jpt.utility.internal.iterators.CloneIterator;
-import org.eclipse.jpt.utility.internal.iterators.CloneListIterator;
-import org.eclipse.jpt.utility.internal.iterators.TransformationListIterator;
-import org.eclipse.wst.validation.internal.provisional.core.IMessage;
-import org.eclipse.wst.validation.internal.provisional.core.IReporter;
-
-public class EclipseLinkOrmObjectTypeConverter extends EclipseLinkOrmConverter<XmlObjectTypeConverter>
-	implements ObjectTypeConverter
-{	
-	private String dataType;
-	
-	private String objectType;
-	
-	private final List<EclipseLinkOrmConversionValue> conversionValues;
-	
-	private String defaultObjectValue;
-	
-	
-	public EclipseLinkOrmObjectTypeConverter(XmlContextNode parent) {
-		super(parent);
-		this.conversionValues = new ArrayList<EclipseLinkOrmConversionValue>();
-	}
-	
-	public String getType() {
-		return EclipseLinkConverter.OBJECT_TYPE_CONVERTER;
-	}	
-	
-	// **************** data type **********************************************
-	
-	public String getDataType() {
-		return this.dataType;
-	}
-	
-	public void setDataType(String newDataType) {
-		String oldDataType = this.dataType;
-		this.dataType = newDataType;
-		getXmlResource().setDataType(newDataType);
-		firePropertyChanged(DATA_TYPE_PROPERTY, oldDataType, newDataType);
-	}
-	
-	protected void setDataType_(String newDataType) {
-		String oldDataType = this.dataType;
-		this.dataType = newDataType;
-		firePropertyChanged(DATA_TYPE_PROPERTY, oldDataType, newDataType);
-	}
-	
-	
-	// **************** object type ********************************************
-	
-	public String getObjectType() {
-		return this.objectType;
-	}
-	
-	public void setObjectType(String newObjectType) {
-		String oldObjectType = this.objectType;
-		this.objectType = newObjectType;
-		getXmlResource().setObjectType(newObjectType);
-		firePropertyChanged(OBJECT_TYPE_PROPERTY, oldObjectType, newObjectType);
-	}
-	
-	protected void setObjectType_(String newObjectType) {
-		String oldObjectType = this.objectType;
-		this.objectType = newObjectType;
-		firePropertyChanged(OBJECT_TYPE_PROPERTY, oldObjectType, newObjectType);
-	}
-	
-	
-	// **************** conversion values **************************************
-	
-	public ListIterator<EclipseLinkOrmConversionValue> conversionValues() {
-		return new CloneListIterator<EclipseLinkOrmConversionValue>(this.conversionValues);
-	}
-	
-	public int conversionValuesSize() {
-		return this.conversionValues.size();
-	}
-	
-	public EclipseLinkOrmConversionValue addConversionValue(int index) {
-		XmlConversionValue resourceConversionValue = EclipseLinkOrmFactory.eINSTANCE.createXmlConversionValueImpl();
-		EclipseLinkOrmConversionValue contextConversionValue = buildConversionValue(resourceConversionValue);
-		this.conversionValues.add(index, contextConversionValue);
-		getXmlResource().getConversionValues().add(index, resourceConversionValue);
-		fireItemAdded(CONVERSION_VALUES_LIST, index, contextConversionValue);
-		return contextConversionValue;
-	}
-	
-	public EclipseLinkOrmConversionValue addConversionValue() {
-		return this.addConversionValue(this.conversionValues.size());
-	}
-	
-	protected void addConversionValue(int index, EclipseLinkOrmConversionValue conversionValue) {
-		addItemToList(index, conversionValue, this.conversionValues, CONVERSION_VALUES_LIST);
-	}
-	
-	protected void addConversionValue(EclipseLinkOrmConversionValue conversionValue) {
-		this.addConversionValue(this.conversionValues.size(), conversionValue);
-	}
-	
-	public void removeConversionValue(int index) {
-		EclipseLinkOrmConversionValue removedJoinColumn = this.conversionValues.remove(index);
-		getXmlResource().getConversionValues().remove(index);
-		fireItemRemoved(CONVERSION_VALUES_LIST, index, removedJoinColumn);
-	}
-	
-	public void removeConversionValue(ConversionValue conversionValue) {
-		this.removeConversionValue(this.conversionValues.indexOf(conversionValue));
-	}
-	
-	protected void removeConversionValue_(ConversionValue conversionValue) {
-		removeItemFromList(conversionValue, this.conversionValues, CONVERSION_VALUES_LIST);
-	}
-	
-	public void moveConversionValue(int targetIndex, int sourceIndex) {
-		CollectionTools.move(this.conversionValues, targetIndex, sourceIndex);
-		getXmlResource().getConversionValues().move(targetIndex, sourceIndex);
-		fireItemMoved(CONVERSION_VALUES_LIST, targetIndex, sourceIndex);		
-	}
-	
-	public ListIterator<String> dataValues() {
-		return new TransformationListIterator<EclipseLinkOrmConversionValue, String>(conversionValues()) {
-			@Override
-			protected String transform(EclipseLinkOrmConversionValue next) {
-				return next.getDataValue();
-			}
-		};
-	}
-	
-	
-	// **************** default object value ***********************************
-	
-	public String getDefaultObjectValue() {
-		return this.defaultObjectValue;
-	}
-	
-	public void setDefaultObjectValue(String newDefaultObjectValue) {
-		String oldDefaultObjectValue = this.defaultObjectValue;
-		this.defaultObjectValue = newDefaultObjectValue;
-		getXmlResource().setDefaultObjectValue(newDefaultObjectValue);
-		firePropertyChanged(DEFAULT_OBJECT_VALUE_PROPERTY, oldDefaultObjectValue, newDefaultObjectValue);
-	}
-	
-	protected void setDefaultObjectValue_(String newDefaultObjectValue) {
-		String oldDefaultObjectValue = this.defaultObjectValue;
-		this.defaultObjectValue = newDefaultObjectValue;
-		firePropertyChanged(DEFAULT_OBJECT_VALUE_PROPERTY, oldDefaultObjectValue, newDefaultObjectValue);
-	}
-	
-	
-	// **************** resource interaction ***********************************
-	
-	@Override
-	protected void initialize(XmlObjectTypeConverter xmlResource) {
-		super.initialize(xmlResource);
-		this.dataType = this.getResourceDataType();
-		this.objectType = this.getResourceObjectType();
-		this.defaultObjectValue = this.getResourceDefaultObjectValue();
-		this.initializeConversionValues();
-	}
-	
-	protected void initializeConversionValues() {	
-		for (XmlConversionValue resourceConversionValue : getXmlResource().getConversionValues()) {
-			this.conversionValues.add(buildConversionValue(resourceConversionValue));
-		}
-	}
-	
-	@Override
-	public void update() {
-		super.update();
-		setDataType_(getResourceDataType());
-		setObjectType_(getResourceObjectType());
-		setDefaultObjectValue_(getResourceDefaultObjectValue());
-		updateConversionValues();
-	}
-	
-	protected void updateConversionValues( ) {
-		// make a copy of the XML conversion values (to prevent ConcurrentModificationException)
-		Iterator<XmlConversionValue> xmlConversionValues = new CloneIterator<XmlConversionValue>(this.getXmlResource().getConversionValues());
-		
-		for (Iterator<EclipseLinkOrmConversionValue> contextConversionValues = this.conversionValues(); contextConversionValues.hasNext(); ) {
-			EclipseLinkOrmConversionValue contextConversionValue = contextConversionValues.next();
-			if (xmlConversionValues.hasNext()) {
-				contextConversionValue.update(xmlConversionValues.next());
-			}
-			else {
-				removeConversionValue_(contextConversionValue);
-			}
-		}
-		
-		while (xmlConversionValues.hasNext()) {
-			addConversionValue(buildConversionValue(xmlConversionValues.next()));
-		}
-	}
-	
-	protected EclipseLinkOrmConversionValue buildConversionValue(XmlConversionValue resourceConversionValue) {
-		EclipseLinkOrmConversionValue conversionValue = new EclipseLinkOrmConversionValue(this);
-		conversionValue.initialize(resourceConversionValue);
-		return conversionValue;
-	}
-	
-	protected String getResourceDataType() {
-		return this.resourceConverter.getDataType();
-	}
-
-	protected String getResourceObjectType() {
-		return this.resourceConverter.getObjectType();
-	}
-
-	protected String getResourceDefaultObjectValue() {
-		return this.resourceConverter.getDefaultObjectValue();
-	}
-	
-	
-	// **************** validation *********************************************
-	
-	@Override
-	public void validate(List<IMessage> messages, IReporter reporter) {
-		super.validate(messages, reporter);
-		for (Iterator<EclipseLinkOrmConversionValue> stream = conversionValues(); stream.hasNext();) {
-			stream.next().validate(messages, reporter);
-		}
-	}
-}
\ No newline at end of file
diff --git a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/context/orm/EclipseLinkOrmOneToManyMapping.java b/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/context/orm/EclipseLinkOrmOneToManyMapping.java
deleted file mode 100644
index 6e89f05..0000000
--- a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/context/orm/EclipseLinkOrmOneToManyMapping.java
+++ /dev/null
@@ -1,78 +0,0 @@
-/*******************************************************************************
- *  Copyright (c) 2008, 2009  Oracle. 
- *  All rights reserved.  This program and the accompanying materials are 
- *  made available under the terms of the Eclipse Public License v1.0 which 
- *  accompanies this distribution, and is available at 
- *  http://www.eclipse.org/legal/epl-v10.html
- *  
- *  Contributors: 
- *  	Oracle - initial API and implementation
- *******************************************************************************/
-package org.eclipse.jpt.eclipselink.core.internal.context.orm;
-
-import java.util.List;
-import org.eclipse.jpt.core.context.orm.OrmPersistentAttribute;
-import org.eclipse.jpt.core.context.orm.OrmRelationshipReference;
-import org.eclipse.jpt.core.internal.context.orm.GenericOrmOneToManyMapping;
-import org.eclipse.jpt.eclipselink.core.context.EclipseLinkOneToManyMapping;
-import org.eclipse.jpt.eclipselink.core.context.JoinFetch;
-import org.eclipse.jpt.eclipselink.core.context.PrivateOwned;
-import org.eclipse.jpt.eclipselink.core.resource.orm.XmlJoinFetch;
-import org.eclipse.jpt.eclipselink.core.resource.orm.XmlOneToMany;
-import org.eclipse.jpt.eclipselink.core.resource.orm.XmlPrivateOwned;
-import org.eclipse.wst.validation.internal.provisional.core.IMessage;
-import org.eclipse.wst.validation.internal.provisional.core.IReporter;
-
-public class EclipseLinkOrmOneToManyMapping<T extends XmlOneToMany>
-	extends GenericOrmOneToManyMapping<T>
-	implements EclipseLinkOneToManyMapping
-{
-	protected EclipseLinkOrmPrivateOwned privateOwned;
-	
-	protected EclipseLinkOrmJoinFetch joinFetch;
-	
-	
-	public EclipseLinkOrmOneToManyMapping(OrmPersistentAttribute parent, T resourceMapping) {
-		super(parent, resourceMapping);
-		this.privateOwned = new EclipseLinkOrmPrivateOwned(this, (XmlPrivateOwned) this.resourceAttributeMapping);
-		this.joinFetch = new EclipseLinkOrmJoinFetch(this, (XmlJoinFetch) this.resourceAttributeMapping);
-	}
-	
-	
-	@Override
-	protected OrmRelationshipReference buildRelationshipReference() {
-		return new EclipseLinkOrmOneToManyRelationshipReference(this, this.resourceAttributeMapping);
-	}
-	
-	@Override
-	public EclipseLinkOrmOneToManyRelationshipReference getRelationshipReference() {
-		return (EclipseLinkOrmOneToManyRelationshipReference) super.getRelationshipReference();
-	}
-	
-	public PrivateOwned getPrivateOwned() {
-		return this.privateOwned;
-	}
-	
-	public JoinFetch getJoinFetch() {
-		return this.joinFetch;
-	}
-	
-	
-	// **************** resource -> context ************************************
-	
-	@Override
-	public void update() {
-		super.update();
-		this.privateOwned.update();
-		this.joinFetch.update();
-	}
-	
-	
-	// **************** validation *********************************************
-	
-	@Override
-	public void validate(List<IMessage> messages, IReporter reporter) {
-		super.validate(messages, reporter);
-		// TODO - private owned, join fetch validation
-	}
-}
diff --git a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/context/orm/EclipseLinkOrmOneToManyMappingProvider.java b/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/context/orm/EclipseLinkOrmOneToManyMappingProvider.java
deleted file mode 100644
index 256327d..0000000
--- a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/context/orm/EclipseLinkOrmOneToManyMappingProvider.java
+++ /dev/null
@@ -1,66 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008, 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.eclipselink.core.internal.context.orm;
-
-import org.eclipse.core.runtime.content.IContentType;
-import org.eclipse.jpt.core.JpaFactory;
-import org.eclipse.jpt.core.MappingKeys;
-import org.eclipse.jpt.core.context.java.JavaAttributeMapping;
-import org.eclipse.jpt.core.context.orm.OrmAttributeMapping;
-import org.eclipse.jpt.core.context.orm.OrmAttributeMappingProvider;
-import org.eclipse.jpt.core.context.orm.OrmPersistentAttribute;
-import org.eclipse.jpt.core.context.orm.OrmTypeMapping;
-import org.eclipse.jpt.core.resource.orm.XmlAttributeMapping;
-import org.eclipse.jpt.eclipselink.core.internal.EclipseLinkJpaFactory;
-import org.eclipse.jpt.eclipselink.core.internal.JptEclipseLinkCorePlugin;
-import org.eclipse.jpt.eclipselink.core.internal.context.java.EclipseLinkJavaOneToManyMapping;
-import org.eclipse.jpt.eclipselink.core.resource.orm.EclipseLinkOrmFactory;
-import org.eclipse.jpt.eclipselink.core.resource.orm.XmlOneToMany;
-
-public class EclipseLinkOrmOneToManyMappingProvider
-	implements OrmAttributeMappingProvider
-{
-	// singleton
-	private static final OrmAttributeMappingProvider INSTANCE = new EclipseLinkOrmOneToManyMappingProvider();
-
-	/**
-	 * Return the singleton.
-	 */
-	public static OrmAttributeMappingProvider instance() {
-		return INSTANCE;
-	}
-
-	/**
-	 * Ensure single instance.
-	 */
-	private EclipseLinkOrmOneToManyMappingProvider() {
-		super();
-	}
-
-	public IContentType getContentType() {
-		return JptEclipseLinkCorePlugin.ECLIPSELINK_ORM_XML_CONTENT_TYPE;
-	}
-
-	public String getKey() {
-		return MappingKeys.ONE_TO_MANY_ATTRIBUTE_MAPPING_KEY;
-	}
-	
-	public XmlAttributeMapping buildResourceMapping() {
-		return EclipseLinkOrmFactory.eINSTANCE.createXmlOneToManyImpl();
-	}
-
-	public OrmAttributeMapping buildMapping(OrmPersistentAttribute parent, XmlAttributeMapping resourceMapping, JpaFactory factory) {
-		return ((EclipseLinkJpaFactory) factory).buildEclipseLinkOrmOneToManyMapping(parent, (XmlOneToMany) resourceMapping);
-	}
-
-	public XmlAttributeMapping buildVirtualResourceMapping(OrmTypeMapping ormTypeMapping, JavaAttributeMapping javaAttributeMapping, JpaFactory factory) {
-		return ((EclipseLinkJpaFactory) factory).buildEclipseLinkVirtualXmlOneToMany(ormTypeMapping, (EclipseLinkJavaOneToManyMapping) javaAttributeMapping);
-	}
-}
diff --git a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/context/orm/EclipseLinkOrmOneToManyRelationshipReference.java b/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/context/orm/EclipseLinkOrmOneToManyRelationshipReference.java
deleted file mode 100644
index 946a013..0000000
--- a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/context/orm/EclipseLinkOrmOneToManyRelationshipReference.java
+++ /dev/null
@@ -1,169 +0,0 @@
-/*******************************************************************************
- *  Copyright (c) 2009  Oracle. 
- *  All rights reserved.  This program and the accompanying materials are 
- *  made available under the terms of the Eclipse Public License v1.0 which 
- *  accompanies this distribution, and is available at 
- *  http://www.eclipse.org/legal/epl-v10.html
- *  
- *  Contributors: 
- *  	Oracle - initial API and implementation
- *******************************************************************************/
-package org.eclipse.jpt.eclipselink.core.internal.context.orm;
-
-import java.util.List;
-import org.eclipse.jpt.core.MappingKeys;
-import org.eclipse.jpt.core.context.AttributeMapping;
-import org.eclipse.jpt.core.context.JoinColumn;
-import org.eclipse.jpt.core.context.JoiningStrategy;
-import org.eclipse.jpt.core.context.orm.OrmJoinColumn;
-import org.eclipse.jpt.core.context.orm.OrmJoinColumnEnabledRelationshipReference;
-import org.eclipse.jpt.core.context.orm.OrmJoinColumnJoiningStrategy;
-import org.eclipse.jpt.core.context.orm.OrmOneToManyMapping;
-import org.eclipse.jpt.core.context.orm.OrmRelationshipReference;
-import org.eclipse.jpt.core.internal.context.orm.GenericOrmJoinColumnJoiningStrategy;
-import org.eclipse.jpt.core.internal.context.orm.GenericOrmOneToManyRelationshipReference;
-import org.eclipse.jpt.eclipselink.core.context.EclipseLinkOneToManyRelationshipReference;
-import org.eclipse.jpt.eclipselink.core.resource.orm.XmlOneToMany;
-import org.eclipse.jpt.utility.internal.CollectionTools;
-import org.eclipse.wst.validation.internal.provisional.core.IMessage;
-import org.eclipse.wst.validation.internal.provisional.core.IReporter;
-
-public class EclipseLinkOrmOneToManyRelationshipReference
-	extends GenericOrmOneToManyRelationshipReference
-	implements EclipseLinkOneToManyRelationshipReference,
-		OrmJoinColumnEnabledRelationshipReference
-{
-	protected OrmJoinColumnJoiningStrategy joinColumnJoiningStrategy;
-	
-	
-	public EclipseLinkOrmOneToManyRelationshipReference(
-			EclipseLinkOrmOneToManyMapping parent, XmlOneToMany resource) {
-		super(parent, resource);
-	}
-	
-	
-	@Override
-	protected void initializeJoiningStrategies() {
-		this.joinColumnJoiningStrategy = buildJoinColumnJoiningStrategy();		
-		super.initializeJoiningStrategies();
-	}
-	
-	protected OrmJoinColumnJoiningStrategy buildJoinColumnJoiningStrategy() {
-		return new GenericOrmJoinColumnJoiningStrategy(this, getResourceMapping());
-	}
-	
-	@Override
-	public void initializeOn(OrmRelationshipReference newRelationshipReference) {
-		super.initializeOn(newRelationshipReference);
-		newRelationshipReference.initializeFromJoinColumnEnabledRelationshipReference(this);
-	}
-	
-	@Override
-	public void initializeFromJoinColumnEnabledRelationshipReference(
-			OrmJoinColumnEnabledRelationshipReference oldRelationshipReference) {
-		super.initializeFromJoinColumnEnabledRelationshipReference(oldRelationshipReference);
-		int index = 0;
-		for (JoinColumn joinColumn : 
-				CollectionTools.iterable(
-					oldRelationshipReference.getJoinColumnJoiningStrategy().specifiedJoinColumns())) {
-			OrmJoinColumn newJoinColumn = getJoinColumnJoiningStrategy().addSpecifiedJoinColumn(index++);
-			newJoinColumn.initializeFrom(joinColumn);
-		}
-	}
-	
-	@Override
-	public OrmOneToManyMapping getRelationshipMapping() {
-		return (OrmOneToManyMapping) getParent();
-	}
-	
-	@Override
-	public XmlOneToMany getResourceMapping() {
-		return (XmlOneToMany) super.getResourceMapping();
-	}
-	
-	@Override
-	protected JoiningStrategy calculatePredominantJoiningStrategy() {
-		if (this.mappedByJoiningStrategy.getMappedByAttribute() != null) {
-			return this.mappedByJoiningStrategy;
-		}
-		else if (this.joinColumnJoiningStrategy.hasSpecifiedJoinColumns()) {
-			return this.joinColumnJoiningStrategy;
-		}
-		else {
-			return this.joinTableJoiningStrategy;
-		}
-	}
-	
-	
-	// **************** mapped by **********************************************
-	
-	@Override
-	public void setMappedByJoiningStrategy() {
-		super.setMappedByJoiningStrategy();
-		this.joinColumnJoiningStrategy.removeStrategy();
-	}
-	
-	@Override
-	public boolean mayBeMappedBy(AttributeMapping mappedByMapping) {
-		return super.mayBeMappedBy(mappedByMapping) ||
-			mappedByMapping.getKey() == MappingKeys.ONE_TO_ONE_ATTRIBUTE_MAPPING_KEY;
-	}
-	
-	
-	// **************** join table *********************************************
-	
-	@Override
-	public void setJoinTableJoiningStrategy() {
-		super.setJoinTableJoiningStrategy();
-		this.joinColumnJoiningStrategy.removeStrategy();
-	}
-	
-	@Override
-	public boolean mayHaveDefaultJoinTable() {
-		return super.mayHaveDefaultJoinTable()
-			&& ! this.joinColumnJoiningStrategy.hasSpecifiedJoinColumns();
-	}
-	
-	
-	// **************** join columns *******************************************
-	
-	public OrmJoinColumnJoiningStrategy getJoinColumnJoiningStrategy() {
-		return this.joinColumnJoiningStrategy;
-	}
-	
-	public boolean usesJoinColumnJoiningStrategy() {
-		return getPredominantJoiningStrategy() == this.joinColumnJoiningStrategy;
-	}
-	
-	public void setJoinColumnJoiningStrategy() {
-		this.joinColumnJoiningStrategy.addStrategy();
-		this.mappedByJoiningStrategy.removeStrategy();
-		this.joinTableJoiningStrategy.removeStrategy();
-	}
-	
-	public void unsetJoinColumnJoiningStrategy() {
-		this.joinColumnJoiningStrategy.removeStrategy();
-	}
-	
-	public boolean mayHaveDefaultJoinColumn() {
-		return false;
-	}
-	
-	
-	// **************** resource => context ************************************
-	
-	@Override
-	protected void updateJoiningStrategies() {
-		this.joinColumnJoiningStrategy.update();
-		super.updateJoiningStrategies();
-	}
-	
-	
-	// **************** Validation *********************************************
-	
-	@Override
-	public void validate(List<IMessage> messages, IReporter reporter) {
-		super.validate(messages, reporter);
-		this.joinColumnJoiningStrategy.validate(messages, reporter);
-	}
-}
diff --git a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/context/orm/EclipseLinkOrmOneToOneMapping.java b/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/context/orm/EclipseLinkOrmOneToOneMapping.java
deleted file mode 100644
index a5064c6..0000000
--- a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/context/orm/EclipseLinkOrmOneToOneMapping.java
+++ /dev/null
@@ -1,66 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008, 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.eclipselink.core.internal.context.orm;
-
-import java.util.List;
-import org.eclipse.jpt.core.context.orm.OrmPersistentAttribute;
-import org.eclipse.jpt.core.internal.context.orm.GenericOrmOneToOneMapping;
-import org.eclipse.jpt.eclipselink.core.context.EclipseLinkOneToOneMapping;
-import org.eclipse.jpt.eclipselink.core.context.JoinFetch;
-import org.eclipse.jpt.eclipselink.core.context.PrivateOwned;
-import org.eclipse.jpt.eclipselink.core.resource.orm.XmlJoinFetch;
-import org.eclipse.jpt.eclipselink.core.resource.orm.XmlOneToOne;
-import org.eclipse.jpt.eclipselink.core.resource.orm.XmlPrivateOwned;
-import org.eclipse.wst.validation.internal.provisional.core.IMessage;
-import org.eclipse.wst.validation.internal.provisional.core.IReporter;
-
-public class EclipseLinkOrmOneToOneMapping<T extends XmlOneToOne>
-	extends GenericOrmOneToOneMapping<T>
-	implements EclipseLinkOneToOneMapping
-{
-	protected EclipseLinkOrmPrivateOwned privateOwned;
-	
-	protected EclipseLinkOrmJoinFetch joinFetch;
-	
-	
-	public EclipseLinkOrmOneToOneMapping(OrmPersistentAttribute parent, T resourceMapping) {
-		super(parent, resourceMapping);
-		this.privateOwned = new EclipseLinkOrmPrivateOwned(this, (XmlPrivateOwned) this.resourceAttributeMapping);
-		this.joinFetch = new EclipseLinkOrmJoinFetch(this, (XmlJoinFetch) this.resourceAttributeMapping);
-	}
-	
-	
-	public PrivateOwned getPrivateOwned() {
-		return this.privateOwned;
-	}
-	
-	public JoinFetch getJoinFetch() {
-		return this.joinFetch;
-	}
-	
-	
-	// **************** resource-context interaction ***************************
-	
-	@Override
-	public void update() {
-		super.update();
-		this.privateOwned.update();
-		this.joinFetch.update();
-	}
-	
-	
-	// **************** validation **************************************
-	
-	@Override
-	public void validate(List<IMessage> messages, IReporter reporter) {
-		super.validate(messages, reporter);
-		// TODO - private owned, join fetch validation
-	}
-}
\ No newline at end of file
diff --git a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/context/orm/EclipseLinkOrmOneToOneMappingProvider.java b/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/context/orm/EclipseLinkOrmOneToOneMappingProvider.java
deleted file mode 100644
index 6da6412..0000000
--- a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/context/orm/EclipseLinkOrmOneToOneMappingProvider.java
+++ /dev/null
@@ -1,67 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008, 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.eclipselink.core.internal.context.orm;
-
-import org.eclipse.core.runtime.content.IContentType;
-import org.eclipse.jpt.core.JpaFactory;
-import org.eclipse.jpt.core.MappingKeys;
-import org.eclipse.jpt.core.context.java.JavaAttributeMapping;
-import org.eclipse.jpt.core.context.java.JavaOneToOneMapping;
-import org.eclipse.jpt.core.context.orm.OrmAttributeMapping;
-import org.eclipse.jpt.core.context.orm.OrmAttributeMappingProvider;
-import org.eclipse.jpt.core.context.orm.OrmPersistentAttribute;
-import org.eclipse.jpt.core.context.orm.OrmTypeMapping;
-import org.eclipse.jpt.core.resource.orm.XmlAttributeMapping;
-import org.eclipse.jpt.eclipselink.core.internal.EclipseLinkJpaFactory;
-import org.eclipse.jpt.eclipselink.core.internal.JptEclipseLinkCorePlugin;
-import org.eclipse.jpt.eclipselink.core.resource.orm.EclipseLinkOrmFactory;
-import org.eclipse.jpt.eclipselink.core.resource.orm.XmlOneToOne;
-
-public class EclipseLinkOrmOneToOneMappingProvider
-	implements OrmAttributeMappingProvider
-{
-	// singleton
-	private static final OrmAttributeMappingProvider INSTANCE = new EclipseLinkOrmOneToOneMappingProvider();
-
-	/**
-	 * Return the singleton.
-	 */
-	public static OrmAttributeMappingProvider instance() {
-		return INSTANCE;
-	}
-
-	/**
-	 * Ensure single instance.
-	 */
-	private EclipseLinkOrmOneToOneMappingProvider() {
-		super();
-	}
-
-	public IContentType getContentType() {
-		return JptEclipseLinkCorePlugin.ECLIPSELINK_ORM_XML_CONTENT_TYPE;
-	}
-
-	public String getKey() {
-		return MappingKeys.ONE_TO_ONE_ATTRIBUTE_MAPPING_KEY;
-	}
-	
-	public XmlAttributeMapping buildResourceMapping() {
-		return EclipseLinkOrmFactory.eINSTANCE.createXmlOneToOneImpl();
-	}
-
-	public OrmAttributeMapping buildMapping(OrmPersistentAttribute parent, XmlAttributeMapping resourceMapping, JpaFactory factory) {
-		return ((EclipseLinkJpaFactory) factory).buildEclipseLinkOrmOneToOneMapping(parent, (XmlOneToOne) resourceMapping);
-	}
-
-	public XmlAttributeMapping buildVirtualResourceMapping(OrmTypeMapping ormTypeMapping, JavaAttributeMapping javaAttributeMapping, JpaFactory factory) {
-		return ((EclipseLinkJpaFactory) factory).buildEclipseLinkVirtualXmlOneToOne(ormTypeMapping, (JavaOneToOneMapping) javaAttributeMapping);
-	}
-
-}
diff --git a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/context/orm/EclipseLinkOrmPersistentAttribute.java b/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/context/orm/EclipseLinkOrmPersistentAttribute.java
deleted file mode 100644
index a56dbc3..0000000
--- a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/context/orm/EclipseLinkOrmPersistentAttribute.java
+++ /dev/null
@@ -1,38 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.eclipselink.core.internal.context.orm;
-
-import org.eclipse.jpt.core.context.AccessType;
-import org.eclipse.jpt.core.context.orm.OrmPersistentType;
-import org.eclipse.jpt.core.internal.context.orm.AbstractOrmPersistentAttribute;
-import org.eclipse.jpt.core.resource.orm.XmlAttributeMapping;
-
-
-public class EclipseLinkOrmPersistentAttribute extends AbstractOrmPersistentAttribute
-{
-	
-	public EclipseLinkOrmPersistentAttribute(OrmPersistentType parent, Owner owner, XmlAttributeMapping resourceMapping) {
-		super(parent, owner, resourceMapping);
-	}
-	
-	//****************** AccessHolder implementation *******************
-	
-	/**
-	 * EclipseLinkOrmPersistentAttribute does not support specified access (no access element in 1.0), so we return null
-	 */
-	public AccessType getSpecifiedAccess() {
-		return null;
-	}
-	
-	public void setSpecifiedAccess(AccessType newSpecifiedAccess) {
-		throw new UnsupportedOperationException("specifiedAccess is not supported for EclipseLinkOrmPersistentAttribute"); //$NON-NLS-1$
-	}
-
-}
diff --git a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/context/orm/EclipseLinkOrmPersistentType.java b/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/context/orm/EclipseLinkOrmPersistentType.java
deleted file mode 100644
index c5a884c..0000000
--- a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/context/orm/EclipseLinkOrmPersistentType.java
+++ /dev/null
@@ -1,42 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008, 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.eclipselink.core.internal.context.orm;
-
-import org.eclipse.jpt.core.context.orm.OrmPersistentAttribute;
-import org.eclipse.jpt.core.internal.context.orm.AbstractOrmPersistentType;
-import org.eclipse.jpt.core.resource.orm.Attributes;
-import org.eclipse.jpt.core.resource.orm.XmlAttributeMapping;
-import org.eclipse.jpt.core.resource.orm.XmlTypeMapping;
-import org.eclipse.jpt.eclipselink.core.internal.EclipseLinkJpaFactory;
-import org.eclipse.jpt.eclipselink.core.resource.orm.EclipseLinkOrmFactory;
-
-public class EclipseLinkOrmPersistentType extends AbstractOrmPersistentType
-{
-	
-	public EclipseLinkOrmPersistentType(EclipseLinkEntityMappings parent, XmlTypeMapping resourceMapping) {
-		super(parent, resourceMapping);
-	}
-	
-	@Override
-	protected EclipseLinkJpaFactory getJpaFactory() {
-		return (EclipseLinkJpaFactory)  super.getJpaFactory();
-	}
-	
-	@Override
-	protected Attributes createResourceAttributes() {
-		return EclipseLinkOrmFactory.eINSTANCE.createAttributes();
-	}
-	
-	@Override
-	protected OrmPersistentAttribute buildOrmPersistentAttribute(OrmPersistentAttribute.Owner owner, XmlAttributeMapping resourceMapping) {
-		return getJpaFactory().buildEclipseLinkOrmPersistentAttribute(this, owner, resourceMapping);
-	}
-
-}
diff --git a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/context/orm/EclipseLinkOrmPrivateOwned.java b/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/context/orm/EclipseLinkOrmPrivateOwned.java
deleted file mode 100644
index ef58b74..0000000
--- a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/context/orm/EclipseLinkOrmPrivateOwned.java
+++ /dev/null
@@ -1,67 +0,0 @@
-/*******************************************************************************
- *  Copyright (c) 2008, 2009  Oracle. 
- *  All rights reserved.  This program and the accompanying materials are 
- *  made available under the terms of the Eclipse Public License v1.0 which 
- *  accompanies this distribution, and is available at 
- *  http://www.eclipse.org/legal/epl-v10.html
- *  
- *  Contributors: 
- *  	Oracle - initial API and implementation
- *******************************************************************************/
-package org.eclipse.jpt.eclipselink.core.internal.context.orm;
-
-import org.eclipse.jpt.core.context.orm.OrmAttributeMapping;
-import org.eclipse.jpt.core.internal.context.AbstractXmlContextNode;
-import org.eclipse.jpt.core.utility.TextRange;
-import org.eclipse.jpt.eclipselink.core.context.PrivateOwned;
-import org.eclipse.jpt.eclipselink.core.resource.orm.XmlPrivateOwned;
-
-public class EclipseLinkOrmPrivateOwned extends AbstractXmlContextNode
-	implements PrivateOwned
-{
-	protected final XmlPrivateOwned resource;
-	
-	protected boolean privateOwned;
-	
-	
-	public EclipseLinkOrmPrivateOwned(OrmAttributeMapping parent, XmlPrivateOwned resource) {
-		super(parent);
-		this.resource = resource;
-		this.privateOwned = this.getResourcePrivateOwned();
-	}
-	
-	
-	public boolean isPrivateOwned() {
-		return this.privateOwned;
-	}
-	
-	public void setPrivateOwned(boolean newPrivateOwned) {
-		boolean oldPrivateOwned = this.privateOwned;
-		this.privateOwned = newPrivateOwned;
-		this.resource.setPrivateOwned(newPrivateOwned);
-		firePropertyChanged(PRIVATE_OWNED_PROPERTY, oldPrivateOwned, newPrivateOwned);
-	}
-	
-	protected void setPrivateOwned_(boolean newPrivateOwned) {
-		boolean oldPrivateOwned = this.privateOwned;
-		this.privateOwned = newPrivateOwned;
-		firePropertyChanged(PRIVATE_OWNED_PROPERTY, oldPrivateOwned, newPrivateOwned);
-	}
-	
-	
-	// **************** initialize/update **************************************
-	
-	protected void update() {
-		setPrivateOwned_(this.getResourcePrivateOwned());
-	}
-	
-	protected boolean getResourcePrivateOwned() {
-		return this.resource.isPrivateOwned();
-	}
-	
-	// **************** validation **************************************
-	
-	public TextRange getValidationTextRange() {
-		return this.resource.getPrivateOwnedTextRange();
-	}
-}
diff --git a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/context/orm/EclipseLinkOrmReadOnly.java b/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/context/orm/EclipseLinkOrmReadOnly.java
deleted file mode 100644
index b292b0f..0000000
--- a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/context/orm/EclipseLinkOrmReadOnly.java
+++ /dev/null
@@ -1,83 +0,0 @@
-/*******************************************************************************
- *  Copyright (c) 2008  Oracle. 
- *  All rights reserved.  This program and the accompanying materials are 
- *  made available under the terms of the Eclipse Public License v1.0 which 
- *  accompanies this distribution, and is available at 
- *  http://www.eclipse.org/legal/epl-v10.html
- *  
- *  Contributors: 
- *  	Oracle - initial API and implementation
- *******************************************************************************/
-package org.eclipse.jpt.eclipselink.core.internal.context.orm;
-
-import org.eclipse.jpt.core.context.orm.OrmTypeMapping;
-import org.eclipse.jpt.core.internal.context.AbstractXmlContextNode;
-import org.eclipse.jpt.core.utility.TextRange;
-import org.eclipse.jpt.eclipselink.core.context.ReadOnly;
-import org.eclipse.jpt.eclipselink.core.resource.orm.XmlReadOnly;
-
-public class EclipseLinkOrmReadOnly extends AbstractXmlContextNode
-	implements ReadOnly
-{
-	protected final XmlReadOnly resource;
-	
-	protected boolean defaultReadOnly;
-	
-	protected Boolean specifiedReadOnly;
-	
-	
-	public EclipseLinkOrmReadOnly(OrmTypeMapping parent, XmlReadOnly resource, ReadOnly javaReadOnly) {
-		super(parent);
-		this.resource = resource;
-		this.defaultReadOnly = this.getJavaReadOnly(javaReadOnly);
-		this.specifiedReadOnly = this.getResourceReadOnly();
-	}
-	
-	
-	public boolean isReadOnly() {
-		return (this.specifiedReadOnly == null) ? this.defaultReadOnly : this.specifiedReadOnly.booleanValue();
-	}
-	
-	public boolean isDefaultReadOnly() {
-		return this.defaultReadOnly;
-	}
-	
-	public void setDefaultReadOnly(boolean newValue) {
-		boolean oldValue = this.defaultReadOnly;
-		this.defaultReadOnly = newValue;
-		firePropertyChanged(DEFAULT_READ_ONLY_PROPERTY, oldValue, newValue);
-	}
-	
-	public Boolean getSpecifiedReadOnly() {
-		return this.specifiedReadOnly;
-	}
-	
-	public void setSpecifiedReadOnly(Boolean newSpecifiedReadOnly) {
-		Boolean oldSpecifiedReadOnly = this.specifiedReadOnly;
-		this.specifiedReadOnly = newSpecifiedReadOnly;
-		this.resource.setReadOnly(newSpecifiedReadOnly);
-		firePropertyChanged(SPECIFIED_READ_ONLY_PROPERTY, oldSpecifiedReadOnly, newSpecifiedReadOnly);
-	}
-	
-	
-	// **************** initialize/update **************************************
-	
-	protected void update(ReadOnly javaReadOnly) {
-		setDefaultReadOnly(this.getJavaReadOnly(javaReadOnly));
-		setSpecifiedReadOnly(this.getResourceReadOnly());
-	}
-	
-	protected boolean getJavaReadOnly(ReadOnly javaReadOnly) {
-		return (javaReadOnly == null) ? false : javaReadOnly.isReadOnly();
-	}
-	
-	protected Boolean getResourceReadOnly() {
-		return this.resource.getReadOnly();
-	}
-	
-	// **************** validation **************************************
-	
-	public TextRange getValidationTextRange() {
-		return this.resource.getReadOnlyTextRange();
-	}
-}
diff --git a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/context/orm/EclipseLinkOrmStructConverter.java b/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/context/orm/EclipseLinkOrmStructConverter.java
deleted file mode 100644
index 1b408df..0000000
--- a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/context/orm/EclipseLinkOrmStructConverter.java
+++ /dev/null
@@ -1,100 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008, 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.eclipselink.core.internal.context.orm;
-
-import java.util.List;
-import org.eclipse.jpt.core.context.XmlContextNode;
-import org.eclipse.jpt.eclipselink.core.context.EclipseLinkConverter;
-import org.eclipse.jpt.eclipselink.core.context.StructConverter;
-import org.eclipse.jpt.eclipselink.core.resource.orm.XmlStructConverter;
-import org.eclipse.wst.validation.internal.provisional.core.IMessage;
-import org.eclipse.wst.validation.internal.provisional.core.IReporter;
-
-public class EclipseLinkOrmStructConverter extends EclipseLinkOrmConverter<XmlStructConverter>
-	implements StructConverter
-{	
-	private String converterClass;
-	
-	
-	public EclipseLinkOrmStructConverter(XmlContextNode parent) {
-		super(parent);
-	}
-		
-	public String getType() {
-		return EclipseLinkConverter.STRUCT_CONVERTER;
-	}
-	
-	
-	// **************** converter class ****************************************
-	
-	public String getConverterClass() {
-		return this.converterClass;
-	}
-	
-	public void setConverterClass(String newConverterClass) {
-		String oldConverterClass = this.converterClass;
-		this.converterClass = newConverterClass;
-		getXmlResource().setConverter(newConverterClass);
-		firePropertyChanged(CONVERTER_CLASS_PROPERTY, oldConverterClass, newConverterClass);
-	}
-	
-	protected void setConverterClass_(String newConverterClass) {
-		String oldConverterClass = this.converterClass;
-		this.converterClass = newConverterClass;
-		firePropertyChanged(CONVERTER_CLASS_PROPERTY, oldConverterClass, newConverterClass);
-	}
-	
-	
-	// **************** resource interaction ***********************************
-	
-	@Override
-	protected void initialize(XmlStructConverter xmlResource) {
-		super.initialize(xmlResource);
-		this.converterClass = getResourceConverterClass();
-	}
-	
-	@Override
-	public void update() {
-		super.update();
-		setConverterClass_(getResourceConverterClass());
-	}
-	
-	protected String getResourceConverterClass() {
-		return this.resourceConverter.getConverter();
-	}
-	
-	
-	// **************** validation *********************************************
-	
-	@Override
-	public void validate(List<IMessage> messages, IReporter reporter) {
-		super.validate(messages, reporter);
-		validateConverterClass(messages);
-	}
-	
-//TODO validate converter class	
-	protected void validateConverterClass(List<IMessage> messages) {
-//		if (!getResourceConverter().implementsConverter()) {
-//			messages.add(
-//				DefaultEclipseLinkJpaValidationMessages.buildMessage(
-//					IMessage.HIGH_SEVERITY,
-//					EclipseLinkJpaValidationMessages.CONVERTER_CLASS_IMPLEMENTS_CONVERTER,
-//					new String[] {this.converterClass},
-//					this, 
-//					getConverterClassTextRange()
-//				)
-//			);
-//		}
-	}
-	
-//	public TextRange getConverterClassTextRange() {
-//		return getResourceConverter().getClassNameTextRange();
-//	}
-}
\ No newline at end of file
diff --git a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/context/orm/EclipseLinkOrmTypeConverter.java b/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/context/orm/EclipseLinkOrmTypeConverter.java
deleted file mode 100644
index 3ea6279..0000000
--- a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/context/orm/EclipseLinkOrmTypeConverter.java
+++ /dev/null
@@ -1,96 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008, 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.eclipselink.core.internal.context.orm;
-
-import org.eclipse.jpt.core.context.XmlContextNode;
-import org.eclipse.jpt.eclipselink.core.context.EclipseLinkConverter;
-import org.eclipse.jpt.eclipselink.core.context.TypeConverter;
-import org.eclipse.jpt.eclipselink.core.resource.orm.XmlTypeConverter;
-
-public class EclipseLinkOrmTypeConverter extends EclipseLinkOrmConverter<XmlTypeConverter> 
-	implements TypeConverter
-{	
-	private String dataType;
-	
-	private String objectType;
-	
-	
-	public EclipseLinkOrmTypeConverter(XmlContextNode parent) {
-		super(parent);
-	}
-		
-	public String getType() {
-		return EclipseLinkConverter.TYPE_CONVERTER;
-	}
-		
-	// **************** data type **********************************************
-	
-	public String getDataType() {
-		return this.dataType;
-	}
-	
-	public void setDataType(String newDataType) {
-		String oldDataType = this.dataType;
-		this.dataType = newDataType;
-		getXmlResource().setDataType(newDataType);
-		firePropertyChanged(DATA_TYPE_PROPERTY, oldDataType, newDataType);
-	}
-	
-	protected void setDataType_(String newDataType) {
-		String oldDataType = this.dataType;
-		this.dataType = newDataType;
-		firePropertyChanged(DATA_TYPE_PROPERTY, oldDataType, newDataType);
-	}
-	
-	
-	// **************** object type ********************************************
-	
-	public String getObjectType() {
-		return this.objectType;
-	}
-	
-	public void setObjectType(String newObjectType) {
-		String oldObjectType = this.objectType;
-		this.objectType = newObjectType;
-		getXmlResource().setObjectType(newObjectType);
-		firePropertyChanged(OBJECT_TYPE_PROPERTY, oldObjectType, newObjectType);
-	}
-	
-	protected void setObjectType_(String newObjectType) {
-		String oldObjectType = this.objectType;
-		this.objectType = newObjectType;
-		firePropertyChanged(OBJECT_TYPE_PROPERTY, oldObjectType, newObjectType);
-	}
-	
-	
-	// **************** resource interaction ***********************************
-	
-	@Override
-	protected void initialize(XmlTypeConverter xmlResource) {
-		super.initialize(xmlResource);
-		this.dataType = getResourceDataType();
-		this.objectType = getResourceObjectType();
-	}
-	
-	@Override
-	public void update() {
-		super.update();
-		setDataType_(getResourceDataType());
-		setObjectType_(getResourceObjectType());
-	}
-	
-	protected String getResourceDataType() {
-		return this.resourceConverter.getDataType();
-	}
-	
-	protected String getResourceObjectType() {
-		return this.resourceConverter.getObjectType();
-	}
-}
\ No newline at end of file
diff --git a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/context/orm/EclipseLinkOrmVersionMapping.java b/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/context/orm/EclipseLinkOrmVersionMapping.java
deleted file mode 100644
index f710d3e..0000000
--- a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/context/orm/EclipseLinkOrmVersionMapping.java
+++ /dev/null
@@ -1,79 +0,0 @@
-/*******************************************************************************
- *  Copyright (c) 2008, 2009  Oracle. 
- *  All rights reserved.  This program and the accompanying materials are 
- *  made available under the terms of the Eclipse Public License v1.0 which 
- *  accompanies this distribution, and is available at 
- *  http://www.eclipse.org/legal/epl-v10.html
- *  
- *  Contributors: 
- *  	Oracle - initial API and implementation
- *******************************************************************************/
-package org.eclipse.jpt.eclipselink.core.internal.context.orm;
-
-import java.util.List;
-import org.eclipse.jpt.core.context.orm.OrmConverter;
-import org.eclipse.jpt.core.context.orm.OrmPersistentAttribute;
-import org.eclipse.jpt.core.internal.context.orm.GenericOrmVersionMapping;
-import org.eclipse.jpt.eclipselink.core.context.Convert;
-import org.eclipse.jpt.eclipselink.core.context.EclipseLinkVersionMapping;
-import org.eclipse.jpt.eclipselink.core.context.Mutable;
-import org.eclipse.jpt.eclipselink.core.resource.orm.XmlVersion;
-import org.eclipse.wst.validation.internal.provisional.core.IMessage;
-import org.eclipse.wst.validation.internal.provisional.core.IReporter;
-
-public class EclipseLinkOrmVersionMapping<T extends XmlVersion>
-	extends GenericOrmVersionMapping<T>
-	implements EclipseLinkVersionMapping
-{	
-	protected EclipseLinkOrmMutable mutable;
-	
-	
-	public EclipseLinkOrmVersionMapping(OrmPersistentAttribute parent, T resourceMapping) {
-		super(parent, resourceMapping);
-		this.mutable = new EclipseLinkOrmMutable(this, this.resourceAttributeMapping);
-	}
-	
-	
-	public Mutable getMutable() {
-		return this.mutable;
-	}
-
-	@Override
-	protected OrmConverter buildSpecifiedConverter(String converterType) {
-		OrmConverter ormConverter = super.buildSpecifiedConverter(converterType);
-		if (ormConverter != null) {
-			return ormConverter;
-		}
-		if (converterType == Convert.ECLIPSE_LINK_CONVERTER) {
-			return new EclipseLinkOrmConvert(this, this.resourceAttributeMapping);
-		}
-		return null;
-	}
-	
-	@Override
-	protected String getResourceConverterType() {
-		//check @Convert first, this is the order that EclipseLink searches
-		if (((XmlVersion) this.resourceAttributeMapping).getConvert() != null) {
-			return Convert.ECLIPSE_LINK_CONVERTER;
-		}
-		return super.getResourceConverterType();
-	}
-	
-	// **************** resource-context interaction ***************************
-
-	
-	@Override
-	public void update() {
-		super.update();
-		this.mutable.update();
-	}
-	
-	
-	// **************** validation **************************************
-	
-	@Override
-	public void validate(List<IMessage> messages, IReporter reporter) {
-		super.validate(messages, reporter);
-		// TODO - mutable validation
-	}
-}
diff --git a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/context/orm/EclipseLinkOrmVersionMappingProvider.java b/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/context/orm/EclipseLinkOrmVersionMappingProvider.java
deleted file mode 100644
index 625dd25..0000000
--- a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/context/orm/EclipseLinkOrmVersionMappingProvider.java
+++ /dev/null
@@ -1,67 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008, 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.eclipselink.core.internal.context.orm;
-
-import org.eclipse.core.runtime.content.IContentType;
-import org.eclipse.jpt.core.JpaFactory;
-import org.eclipse.jpt.core.MappingKeys;
-import org.eclipse.jpt.core.context.java.JavaAttributeMapping;
-import org.eclipse.jpt.core.context.java.JavaVersionMapping;
-import org.eclipse.jpt.core.context.orm.OrmAttributeMapping;
-import org.eclipse.jpt.core.context.orm.OrmAttributeMappingProvider;
-import org.eclipse.jpt.core.context.orm.OrmPersistentAttribute;
-import org.eclipse.jpt.core.context.orm.OrmTypeMapping;
-import org.eclipse.jpt.core.resource.orm.XmlAttributeMapping;
-import org.eclipse.jpt.eclipselink.core.internal.EclipseLinkJpaFactory;
-import org.eclipse.jpt.eclipselink.core.internal.JptEclipseLinkCorePlugin;
-import org.eclipse.jpt.eclipselink.core.resource.orm.EclipseLinkOrmFactory;
-import org.eclipse.jpt.eclipselink.core.resource.orm.XmlVersion;
-
-public class EclipseLinkOrmVersionMappingProvider
-	implements OrmAttributeMappingProvider
-{
-	// singleton
-	private static final OrmAttributeMappingProvider INSTANCE = new EclipseLinkOrmVersionMappingProvider();
-
-	/**
-	 * Return the singleton.
-	 */
-	public static OrmAttributeMappingProvider instance() {
-		return INSTANCE;
-	}
-
-	/**
-	 * Ensure single instance.
-	 */
-	private EclipseLinkOrmVersionMappingProvider() {
-		super();
-	}
-
-	public IContentType getContentType() {
-		return JptEclipseLinkCorePlugin.ECLIPSELINK_ORM_XML_CONTENT_TYPE;
-	}
-
-	public String getKey() {
-		return MappingKeys.VERSION_ATTRIBUTE_MAPPING_KEY;
-	}
-	
-	public XmlAttributeMapping buildResourceMapping() {
-		return EclipseLinkOrmFactory.eINSTANCE.createXmlVersionImpl();
-	}
-
-	public OrmAttributeMapping buildMapping(OrmPersistentAttribute parent, XmlAttributeMapping resourceMapping, JpaFactory factory) {
-		return ((EclipseLinkJpaFactory) factory).buildEclipseLinkOrmVersionMapping(parent, (XmlVersion) resourceMapping);
-	}
-
-	public XmlAttributeMapping buildVirtualResourceMapping(OrmTypeMapping ormTypeMapping, JavaAttributeMapping javaAttributeMapping, JpaFactory factory) {
-		return ((EclipseLinkJpaFactory) factory).buildEclipseLinkVirtualXmlVersion(ormTypeMapping, (JavaVersionMapping) javaAttributeMapping);
-	}
-
-}
diff --git a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/context/orm/EclipseLinkOrmXml.java b/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/context/orm/EclipseLinkOrmXml.java
deleted file mode 100644
index 2f5ab59..0000000
--- a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/context/orm/EclipseLinkOrmXml.java
+++ /dev/null
@@ -1,57 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008, 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.eclipselink.core.internal.context.orm;
-
-import org.eclipse.jpt.core.context.orm.EntityMappings;
-import org.eclipse.jpt.core.context.persistence.MappingFileRef;
-import org.eclipse.jpt.core.internal.context.orm.AbstractOrmXml;
-import org.eclipse.jpt.core.resource.orm.XmlEntityMappings;
-import org.eclipse.jpt.core.resource.xml.JpaXmlResource;
-import org.eclipse.jpt.eclipselink.core.internal.EclipseLinkJpaFactory;
-import org.eclipse.jpt.eclipselink.core.internal.JptEclipseLinkCorePlugin;
-import org.eclipse.jpt.eclipselink.core.resource.orm.EclipseLinkOrmFactory;
-
-public class EclipseLinkOrmXml extends AbstractOrmXml
-{
-	public EclipseLinkOrmXml(MappingFileRef parent, JpaXmlResource resource) {
-		super(parent, resource);
-		if (!resource.getContentType().isKindOf(JptEclipseLinkCorePlugin.ECLIPSELINK_ORM_XML_CONTENT_TYPE)) {
-			throw new IllegalArgumentException(resource + " does not have eclipselink orm xml content type"); //$NON-NLS-1$ 
-		}
-	}
-	
-	@Override
-	protected EclipseLinkJpaFactory getJpaFactory() {
-		return (EclipseLinkJpaFactory) super.getJpaFactory();
-	}
-	
-	@Override
-	protected XmlEntityMappings buildEntityMappingsResource() {
-		return EclipseLinkOrmFactory.eINSTANCE.createXmlEntityMappings();
-	}
-	
-	
-	@Override
-	protected EntityMappings buildEntityMappings(XmlEntityMappings xmlEntityMappings) {
-		return getJpaFactory().buildEclipseLinkEntityMappings(this, (org.eclipse.jpt.eclipselink.core.resource.orm.XmlEntityMappings) xmlEntityMappings);
-	}
-	
-	
-	// ********** updating **********
-	
-	@Override
-	public void update(JpaXmlResource resource) {
-		if (!resource.getContentType().isKindOf(JptEclipseLinkCorePlugin.ECLIPSELINK_ORM_XML_CONTENT_TYPE)) {
-			throw new IllegalArgumentException(resource + " does not have eclipselink orm xml content type"); //$NON-NLS-1$ 
-		}
-		super.update(resource);
-	}
-
-}
diff --git a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/context/orm/EclipseLinkPersistenceUnitMetadata.java b/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/context/orm/EclipseLinkPersistenceUnitMetadata.java
deleted file mode 100644
index 27aaa01..0000000
--- a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/context/orm/EclipseLinkPersistenceUnitMetadata.java
+++ /dev/null
@@ -1,28 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the terms of
- * the Eclipse Public License v1.0, which accompanies this distribution and is available at
- * http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.eclipselink.core.internal.context.orm;
-
-import org.eclipse.jpt.core.context.orm.EntityMappings;
-import org.eclipse.jpt.core.internal.context.orm.AbstractPersistenceUnitMetadata;
-import org.eclipse.jpt.core.resource.orm.XmlEntityMappings;
-import org.eclipse.jpt.core.resource.orm.XmlPersistenceUnitMetadata;
-import org.eclipse.jpt.eclipselink.core.resource.orm.EclipseLinkOrmFactory;
-
-public class EclipseLinkPersistenceUnitMetadata extends AbstractPersistenceUnitMetadata
-{
-
-	public EclipseLinkPersistenceUnitMetadata(EntityMappings parent, XmlEntityMappings resource) {
-		super(parent, resource);
-	}
-
-	public XmlPersistenceUnitMetadata createResourcePersistenceUnitMetadata() {
-		return EclipseLinkOrmFactory.eINSTANCE.createXmlPersistenceUnitMetadata();
-	}
-}
\ No newline at end of file
diff --git a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/context/orm/EclipseLinkVirtualXmlBasic.java b/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/context/orm/EclipseLinkVirtualXmlBasic.java
deleted file mode 100644
index c218bd7..0000000
--- a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/context/orm/EclipseLinkVirtualXmlBasic.java
+++ /dev/null
@@ -1,156 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.eclipselink.core.internal.context.orm;
-
-import org.eclipse.emf.common.util.EList;
-import org.eclipse.jpt.core.context.java.JavaBasicMapping;
-import org.eclipse.jpt.core.context.orm.OrmTypeMapping;
-import org.eclipse.jpt.core.internal.context.orm.VirtualXmlBasic;
-import org.eclipse.jpt.core.utility.TextRange;
-import org.eclipse.jpt.eclipselink.core.context.Convert;
-import org.eclipse.jpt.eclipselink.core.context.CustomConverter;
-import org.eclipse.jpt.eclipselink.core.context.EclipseLinkBasicMapping;
-import org.eclipse.jpt.eclipselink.core.context.EclipseLinkConverter;
-import org.eclipse.jpt.eclipselink.core.context.ObjectTypeConverter;
-import org.eclipse.jpt.eclipselink.core.context.StructConverter;
-import org.eclipse.jpt.eclipselink.core.context.TypeConverter;
-import org.eclipse.jpt.eclipselink.core.resource.orm.XmlAccessMethods;
-import org.eclipse.jpt.eclipselink.core.resource.orm.XmlBasic;
-import org.eclipse.jpt.eclipselink.core.resource.orm.XmlConverter;
-import org.eclipse.jpt.eclipselink.core.resource.orm.XmlObjectTypeConverter;
-import org.eclipse.jpt.eclipselink.core.resource.orm.XmlProperty;
-import org.eclipse.jpt.eclipselink.core.resource.orm.XmlStructConverter;
-import org.eclipse.jpt.eclipselink.core.resource.orm.XmlTypeConverter;
-
-/**
- * VirtualBasic is an implementation of Basic used when there is 
- * no tag in the orm.xml and an underlying javaBasicMapping exists.
- */
-public class EclipseLinkVirtualXmlBasic extends VirtualXmlBasic implements XmlBasic
-{
-		
-	public EclipseLinkVirtualXmlBasic(OrmTypeMapping ormTypeMapping, JavaBasicMapping javaBasicMapping) {
-		super(ormTypeMapping, javaBasicMapping);
-	}
-
-	public Boolean getMutable() {
-		if (isOrmMetadataComplete()) {
-			return Boolean.valueOf(((EclipseLinkBasicMapping) this.javaAttributeMapping).getMutable().isDefaultMutable());
-		}
-		return Boolean.valueOf(((EclipseLinkBasicMapping) this.javaAttributeMapping).getMutable().isMutable());
-	}
-	
-	public void setMutable(@SuppressWarnings("unused") Boolean value) {
-		throw new UnsupportedOperationException("cannot set values on a virtual mapping"); //$NON-NLS-1$
-	}
-
-	public String getConvert() {
-		if (isOrmMetadataComplete()) {
-			return null;
-		}
-		if (this.javaAttributeMapping.getConverter().getType() == Convert.ECLIPSE_LINK_CONVERTER) {
-			return ((Convert) this.javaAttributeMapping.getConverter()).getConverterName();
-		}
-		return null;
-	}
-	
-	public void setConvert(@SuppressWarnings("unused") String value) {
-		throw new UnsupportedOperationException("cannot set values on a virtual mapping"); //$NON-NLS-1$
-	}
-	
-	public TextRange getMutableTextRange() {
-		return null;
-	}
-	
-	public TextRange getConvertTextRange() {
-		return null;
-	}
-
-	public XmlConverter getConverter() {
-		if (isOrmMetadataComplete()) {
-			return null;
-		}
-		if (this.javaAttributeMapping.getConverter().getType() == Convert.ECLIPSE_LINK_CONVERTER) {
-			EclipseLinkConverter converter = ((Convert) this.javaAttributeMapping.getConverter()).getConverter();
-			if (converter != null && converter.getType() == EclipseLinkConverter.CUSTOM_CONVERTER) {
-				return new EclipseLinkVirtualXmlConverter(this.ormTypeMapping, (CustomConverter) ((Convert) this.javaAttributeMapping.getConverter()).getConverter());
-			}
-		}
-		return null;
-	}
-
-	public void setConverter(@SuppressWarnings("unused") XmlConverter value) {
-		throw new UnsupportedOperationException("cannot set values on a virtual mapping"); //$NON-NLS-1$
-	}
-
-	public XmlObjectTypeConverter getObjectTypeConverter() {
-		if (isOrmMetadataComplete()) {
-			return null;
-		}
-		if (this.javaAttributeMapping.getConverter().getType() == Convert.ECLIPSE_LINK_CONVERTER) {
-			EclipseLinkConverter converter = ((Convert) this.javaAttributeMapping.getConverter()).getConverter();
-			if (converter != null && converter.getType() == EclipseLinkConverter.OBJECT_TYPE_CONVERTER) {
-				return new EclipseLinkVirtualXmlObjectTypeConverter(this.ormTypeMapping, (ObjectTypeConverter) ((Convert) this.javaAttributeMapping.getConverter()).getConverter());
-			}
-		}
-		return null;
-	}
-
-	public void setObjectTypeConverter(@SuppressWarnings("unused") XmlObjectTypeConverter value) {
-		throw new UnsupportedOperationException("cannot set values on a virtual mapping"); //$NON-NLS-1$
-	}
-
-	public XmlStructConverter getStructConverter() {
-		if (isOrmMetadataComplete()) {
-			return null;
-		}
-		if (this.javaAttributeMapping.getConverter().getType() == Convert.ECLIPSE_LINK_CONVERTER) {
-			EclipseLinkConverter converter = ((Convert) this.javaAttributeMapping.getConverter()).getConverter();
-			if (converter != null && converter.getType() == EclipseLinkConverter.STRUCT_CONVERTER) {
-				return new EclipseLinkVirtualXmlStructConverter(this.ormTypeMapping, (StructConverter) ((Convert) this.javaAttributeMapping.getConverter()).getConverter());
-			}
-		}
-		return null;
-	}
-
-	public void setStructConverter(@SuppressWarnings("unused") XmlStructConverter value) {
-		throw new UnsupportedOperationException("cannot set values on a virtual mapping"); //$NON-NLS-1$
-	}
-
-	public XmlTypeConverter getTypeConverter() {
-		if (isOrmMetadataComplete()) {
-			return null;
-		}
-		if (this.javaAttributeMapping.getConverter().getType() == Convert.ECLIPSE_LINK_CONVERTER) {
-			EclipseLinkConverter converter = ((Convert) this.javaAttributeMapping.getConverter()).getConverter();
-			if (converter != null && converter.getType() == EclipseLinkConverter.TYPE_CONVERTER) {
-				return new EclipseLinkVirtualXmlTypeConverter(this.ormTypeMapping, (TypeConverter) ((Convert) this.javaAttributeMapping.getConverter()).getConverter());
-			}
-		}
-		return null;
-	}
-
-	public void setTypeConverter(@SuppressWarnings("unused") XmlTypeConverter value) {
-		throw new UnsupportedOperationException("cannot set values on a virtual mapping"); //$NON-NLS-1$
-	}
-		
-	public XmlAccessMethods getAccessMethods() {
-		return null;
-	}
-	
-	public void setAccessMethods(XmlAccessMethods value) {
-		throw new UnsupportedOperationException("cannot set values on a virtual mapping"); //$NON-NLS-1$		
-	}
-	
-	public EList<XmlProperty> getProperties() {
-		// TODO get from java annotations
-		return null;
-	}
-}
diff --git a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/context/orm/EclipseLinkVirtualXmlConversionValue.java b/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/context/orm/EclipseLinkVirtualXmlConversionValue.java
deleted file mode 100644
index f81aefc..0000000
--- a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/context/orm/EclipseLinkVirtualXmlConversionValue.java
+++ /dev/null
@@ -1,67 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008, 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.eclipselink.core.internal.context.orm;
-
-import org.eclipse.jpt.core.context.orm.OrmTypeMapping;
-import org.eclipse.jpt.core.resource.xml.AbstractJpaEObject;
-import org.eclipse.jpt.core.utility.TextRange;
-import org.eclipse.jpt.eclipselink.core.context.ConversionValue;
-import org.eclipse.jpt.eclipselink.core.resource.orm.XmlConversionValue;
-
-/**
- * VirtualBasic is an implementation of Basic used when there is 
- * no tag in the orm.xml and an underlying javaBasicMapping exists.
- */
-public class EclipseLinkVirtualXmlConversionValue extends AbstractJpaEObject implements XmlConversionValue
-{
-	protected OrmTypeMapping ormTypeMapping;
-	
-	protected ConversionValue javaConversionValue;
-	
-	public EclipseLinkVirtualXmlConversionValue(OrmTypeMapping ormTypeMapping, ConversionValue javaConversionValue) {
-		super();
-		this.ormTypeMapping = ormTypeMapping;
-		this.javaConversionValue = javaConversionValue;
-	}
-	
-	protected boolean isOrmMetadataComplete() {
-		return this.ormTypeMapping.isMetadataComplete();
-	}
-	
-	public String getDataValue() {
-		if (isOrmMetadataComplete()) {
-			return null;
-		}
-		return this.javaConversionValue.getDataValue();
-	}
-	
-	public void setDataValue(@SuppressWarnings("unused") String value) {
-		throw new UnsupportedOperationException("cannot set values on a virtual mapping"); //$NON-NLS-1$
-	}
-	
-	public String getObjectValue() {
-		if (isOrmMetadataComplete()) {
-			return null;
-		}
-		return this.javaConversionValue.getObjectValue();
-	}
-	
-	public void setObjectValue(@SuppressWarnings("unused") String value) {
-		throw new UnsupportedOperationException("cannot set values on a virtual mapping"); //$NON-NLS-1$
-	}
-
-	public TextRange getDataValueTextRange() {
-		return null;
-	}
-	
-	public TextRange getObjectValueTextRange() {
-		return null;
-	}
-}
diff --git a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/context/orm/EclipseLinkVirtualXmlConverter.java b/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/context/orm/EclipseLinkVirtualXmlConverter.java
deleted file mode 100644
index 4479f80..0000000
--- a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/context/orm/EclipseLinkVirtualXmlConverter.java
+++ /dev/null
@@ -1,58 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008, 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.eclipselink.core.internal.context.orm;
-
-import org.eclipse.jpt.core.context.orm.OrmTypeMapping;
-import org.eclipse.jpt.core.resource.xml.AbstractJpaEObject;
-import org.eclipse.jpt.eclipselink.core.context.CustomConverter;
-import org.eclipse.jpt.eclipselink.core.resource.orm.XmlConverter;
-
-/**
- * VirtualBasic is an implementation of Basic used when there is 
- * no tag in the orm.xml and an underlying javaBasicMapping exists.
- */
-public class EclipseLinkVirtualXmlConverter extends AbstractJpaEObject implements XmlConverter
-{
-	protected OrmTypeMapping ormTypeMapping;
-	
-	protected CustomConverter javaConverter;
-	
-	public EclipseLinkVirtualXmlConverter(OrmTypeMapping ormTypeMapping, CustomConverter javaConverter) {
-		super();
-		this.ormTypeMapping = ormTypeMapping;
-		this.javaConverter = javaConverter;
-	}
-	
-	protected boolean isOrmMetadataComplete() {
-		return this.ormTypeMapping.isMetadataComplete();
-	}
-
-	public String getClassName() {
-		if (isOrmMetadataComplete()) {
-			return null;
-		}
-		return this.javaConverter.getConverterClass();
-	}
-	
-	public void setClassName(@SuppressWarnings("unused") String value) {
-		throw new UnsupportedOperationException("cannot set values on a virtual mapping"); //$NON-NLS-1$
-	}
-	
-	public String getName() {
-		if (isOrmMetadataComplete()) {
-			return null;
-		}
-		return this.javaConverter.getName();
-	}
-	
-	public void setName(@SuppressWarnings("unused") String value) {
-		throw new UnsupportedOperationException("cannot set values on a virtual mapping"); //$NON-NLS-1$
-	}
-}
diff --git a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/context/orm/EclipseLinkVirtualXmlEmbedded.java b/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/context/orm/EclipseLinkVirtualXmlEmbedded.java
deleted file mode 100644
index 8ce8a65..0000000
--- a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/context/orm/EclipseLinkVirtualXmlEmbedded.java
+++ /dev/null
@@ -1,43 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.eclipselink.core.internal.context.orm;
-
-import org.eclipse.emf.common.util.EList;
-import org.eclipse.jpt.core.context.java.JavaEmbeddedMapping;
-import org.eclipse.jpt.core.context.orm.OrmTypeMapping;
-import org.eclipse.jpt.core.internal.context.orm.VirtualXmlEmbedded;
-import org.eclipse.jpt.eclipselink.core.resource.orm.XmlAccessMethods;
-import org.eclipse.jpt.eclipselink.core.resource.orm.XmlEmbedded;
-import org.eclipse.jpt.eclipselink.core.resource.orm.XmlProperty;
-
-/**
- * VirtualBasic is an implementation of Basic used when there is 
- * no tag in the orm.xml and an underlying javaBasicMapping exists.
- */
-public class EclipseLinkVirtualXmlEmbedded extends VirtualXmlEmbedded implements XmlEmbedded
-{
-		
-	public EclipseLinkVirtualXmlEmbedded(OrmTypeMapping ormTypeMapping, JavaEmbeddedMapping javaEmbeddedMapping) {
-		super(ormTypeMapping, javaEmbeddedMapping);
-	}
-	
-	public XmlAccessMethods getAccessMethods() {
-		return null;
-	}
-	
-	public void setAccessMethods(XmlAccessMethods value) {
-		throw new UnsupportedOperationException("cannot set values on a virtual mapping"); //$NON-NLS-1$		
-	}
-	
-	public EList<XmlProperty> getProperties() {
-		// TODO get from java annotations
-		return null;
-	}
-}
diff --git a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/context/orm/EclipseLinkVirtualXmlEmbeddedId.java b/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/context/orm/EclipseLinkVirtualXmlEmbeddedId.java
deleted file mode 100644
index dda40aa..0000000
--- a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/context/orm/EclipseLinkVirtualXmlEmbeddedId.java
+++ /dev/null
@@ -1,43 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.eclipselink.core.internal.context.orm;
-
-import org.eclipse.emf.common.util.EList;
-import org.eclipse.jpt.core.context.java.JavaEmbeddedIdMapping;
-import org.eclipse.jpt.core.context.orm.OrmTypeMapping;
-import org.eclipse.jpt.core.internal.context.orm.VirtualXmlEmbeddedId;
-import org.eclipse.jpt.eclipselink.core.resource.orm.XmlAccessMethods;
-import org.eclipse.jpt.eclipselink.core.resource.orm.XmlEmbeddedId;
-import org.eclipse.jpt.eclipselink.core.resource.orm.XmlProperty;
-
-/**
- * VirtualBasic is an implementation of Basic used when there is 
- * no tag in the orm.xml and an underlying javaBasicMapping exists.
- */
-public class EclipseLinkVirtualXmlEmbeddedId extends VirtualXmlEmbeddedId implements XmlEmbeddedId
-{
-		
-	public EclipseLinkVirtualXmlEmbeddedId(OrmTypeMapping ormTypeMapping, JavaEmbeddedIdMapping javaEmbeddedIdMapping) {
-		super(ormTypeMapping, javaEmbeddedIdMapping);
-	}
-	
-	public XmlAccessMethods getAccessMethods() {
-		return null;
-	}
-	
-	public void setAccessMethods(XmlAccessMethods value) {
-		throw new UnsupportedOperationException("cannot set values on a virtual mapping"); //$NON-NLS-1$		
-	}
-	
-	public EList<XmlProperty> getProperties() {
-		// TODO get from java annotations
-		return null;
-	}
-}
diff --git a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/context/orm/EclipseLinkVirtualXmlId.java b/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/context/orm/EclipseLinkVirtualXmlId.java
deleted file mode 100644
index 2f7abd7..0000000
--- a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/context/orm/EclipseLinkVirtualXmlId.java
+++ /dev/null
@@ -1,145 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.eclipselink.core.internal.context.orm;
-
-import org.eclipse.emf.common.util.EList;
-import org.eclipse.jpt.core.context.java.JavaIdMapping;
-import org.eclipse.jpt.core.context.orm.OrmTypeMapping;
-import org.eclipse.jpt.core.internal.context.orm.VirtualXmlId;
-import org.eclipse.jpt.core.utility.TextRange;
-import org.eclipse.jpt.eclipselink.core.context.Convert;
-import org.eclipse.jpt.eclipselink.core.context.CustomConverter;
-import org.eclipse.jpt.eclipselink.core.context.EclipseLinkConverter;
-import org.eclipse.jpt.eclipselink.core.context.EclipseLinkIdMapping;
-import org.eclipse.jpt.eclipselink.core.context.ObjectTypeConverter;
-import org.eclipse.jpt.eclipselink.core.context.StructConverter;
-import org.eclipse.jpt.eclipselink.core.context.TypeConverter;
-import org.eclipse.jpt.eclipselink.core.resource.orm.XmlAccessMethods;
-import org.eclipse.jpt.eclipselink.core.resource.orm.XmlConverter;
-import org.eclipse.jpt.eclipselink.core.resource.orm.XmlId;
-import org.eclipse.jpt.eclipselink.core.resource.orm.XmlObjectTypeConverter;
-import org.eclipse.jpt.eclipselink.core.resource.orm.XmlProperty;
-import org.eclipse.jpt.eclipselink.core.resource.orm.XmlStructConverter;
-import org.eclipse.jpt.eclipselink.core.resource.orm.XmlTypeConverter;
-
-/**
- * VirtualBasic is an implementation of Basic used when there is 
- * no tag in the orm.xml and an underlying javaBasicMapping exists.
- */
-public class EclipseLinkVirtualXmlId extends VirtualXmlId implements XmlId
-{
-		
-	public EclipseLinkVirtualXmlId(OrmTypeMapping ormTypeMapping, JavaIdMapping javaIdMapping) {
-		super(ormTypeMapping, javaIdMapping);
-	}
-
-	public Boolean getMutable() {
-		//don't need isOrmMetadataComplete() check because there is no default Id mapping
-		return Boolean.valueOf(((EclipseLinkIdMapping) this.javaAttributeMapping).getMutable().isMutable());
-	}
-	
-	public void setMutable(@SuppressWarnings("unused") Boolean value) {
-		throw new UnsupportedOperationException("cannot set values on a virtual mapping"); //$NON-NLS-1$
-	}
-
-	public String getConvert() {
-		//don't need isOrmMetadataComplete() check because there is no default Id mapping
-		if (this.javaAttributeMapping.getConverter().getType() == Convert.ECLIPSE_LINK_CONVERTER) {
-			return ((Convert) this.javaAttributeMapping.getConverter()).getConverterName();
-		}
-		return null;
-	}
-	
-	public void setConvert(@SuppressWarnings("unused") String value) {
-		throw new UnsupportedOperationException("cannot set values on a virtual mapping"); //$NON-NLS-1$
-	}
-	
-	public XmlConverter getConverter() {
-		//don't need isOrmMetadataComplete() check because there is no default Id mapping
-		if (this.javaAttributeMapping.getConverter().getType() == Convert.ECLIPSE_LINK_CONVERTER) {
-			EclipseLinkConverter converter = ((Convert) this.javaAttributeMapping.getConverter()).getConverter();
-			if (converter != null && converter.getType() == EclipseLinkConverter.CUSTOM_CONVERTER) {
-				return new EclipseLinkVirtualXmlConverter(this.ormTypeMapping, (CustomConverter) ((Convert) this.javaAttributeMapping.getConverter()).getConverter());
-			}
-		}
-		return null;
-	}
-
-	public void setConverter(@SuppressWarnings("unused") XmlConverter value) {
-		throw new UnsupportedOperationException("cannot set values on a virtual mapping"); //$NON-NLS-1$
-	}
-
-	public XmlObjectTypeConverter getObjectTypeConverter() {
-		//don't need isOrmMetadataComplete() check because there is no default Id mapping
-		if (this.javaAttributeMapping.getConverter().getType() == Convert.ECLIPSE_LINK_CONVERTER) {
-			EclipseLinkConverter converter = ((Convert) this.javaAttributeMapping.getConverter()).getConverter();
-			if (converter != null && converter.getType() == EclipseLinkConverter.OBJECT_TYPE_CONVERTER) {
-				return new EclipseLinkVirtualXmlObjectTypeConverter(this.ormTypeMapping, (ObjectTypeConverter) ((Convert) this.javaAttributeMapping.getConverter()).getConverter());
-			}
-		}
-		return null;
-	}
-
-	public void setObjectTypeConverter(@SuppressWarnings("unused") XmlObjectTypeConverter value) {
-		throw new UnsupportedOperationException("cannot set values on a virtual mapping"); //$NON-NLS-1$
-	}
-
-	public XmlStructConverter getStructConverter() {
-		//don't need isOrmMetadataComplete() check because there is no default Id mapping
-		if (this.javaAttributeMapping.getConverter().getType() == Convert.ECLIPSE_LINK_CONVERTER) {
-			EclipseLinkConverter converter = ((Convert) this.javaAttributeMapping.getConverter()).getConverter();
-			if (converter != null && converter.getType() == EclipseLinkConverter.STRUCT_CONVERTER) {
-				return new EclipseLinkVirtualXmlStructConverter(this.ormTypeMapping, (StructConverter) ((Convert) this.javaAttributeMapping.getConverter()).getConverter());
-			}
-		}
-		return null;
-	}
-
-	public void setStructConverter(@SuppressWarnings("unused") XmlStructConverter value) {
-		throw new UnsupportedOperationException("cannot set values on a virtual mapping"); //$NON-NLS-1$
-	}
-
-	public XmlTypeConverter getTypeConverter() {
-		//don't need isOrmMetadataComplete() check because there is no default Id mapping
-		if (this.javaAttributeMapping.getConverter().getType() == Convert.ECLIPSE_LINK_CONVERTER) {
-			EclipseLinkConverter converter = ((Convert) this.javaAttributeMapping.getConverter()).getConverter();
-			if (converter != null && converter.getType() == EclipseLinkConverter.TYPE_CONVERTER) {
-				return new EclipseLinkVirtualXmlTypeConverter(this.ormTypeMapping, (TypeConverter) ((Convert) this.javaAttributeMapping.getConverter()).getConverter());
-			}
-		}
-		return null;
-	}
-
-	public void setTypeConverter(@SuppressWarnings("unused") XmlTypeConverter value) {
-		throw new UnsupportedOperationException("cannot set values on a virtual mapping"); //$NON-NLS-1$
-	}
-	
-	public XmlAccessMethods getAccessMethods() {
-		return null;
-	}
-	
-	public void setAccessMethods(XmlAccessMethods value) {
-		throw new UnsupportedOperationException("cannot set values on a virtual mapping"); //$NON-NLS-1$		
-	}
-	
-	public EList<XmlProperty> getProperties() {
-		// TODO get from java annotations
-		return null;
-	}
-	
-	public TextRange getMutableTextRange() {
-		return null;
-	}
-
-	public TextRange getConvertTextRange() {
-		return null;
-	}
-
-}
diff --git a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/context/orm/EclipseLinkVirtualXmlManyToMany.java b/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/context/orm/EclipseLinkVirtualXmlManyToMany.java
deleted file mode 100644
index 345ed5f..0000000
--- a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/context/orm/EclipseLinkVirtualXmlManyToMany.java
+++ /dev/null
@@ -1,62 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008, 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.eclipselink.core.internal.context.orm;
-
-import org.eclipse.emf.common.util.EList;
-import org.eclipse.jpt.core.context.java.JavaManyToManyMapping;
-import org.eclipse.jpt.core.context.orm.OrmTypeMapping;
-import org.eclipse.jpt.core.internal.context.orm.VirtualXmlManyToMany;
-import org.eclipse.jpt.core.utility.TextRange;
-import org.eclipse.jpt.eclipselink.core.context.JoinFetchType;
-import org.eclipse.jpt.eclipselink.core.internal.context.java.EclipseLinkJavaManyToManyMappingImpl;
-import org.eclipse.jpt.eclipselink.core.resource.orm.XmlAccessMethods;
-import org.eclipse.jpt.eclipselink.core.resource.orm.XmlJoinFetchType;
-import org.eclipse.jpt.eclipselink.core.resource.orm.XmlManyToMany;
-import org.eclipse.jpt.eclipselink.core.resource.orm.XmlProperty;
-
-/**
- * VirtualBasic is an implementation of Basic used when there is 
- * no tag in the orm.xml and an underlying javaBasicMapping exists.
- */
-public class EclipseLinkVirtualXmlManyToMany extends VirtualXmlManyToMany implements XmlManyToMany
-{
-		
-	public EclipseLinkVirtualXmlManyToMany(OrmTypeMapping ormTypeMapping, JavaManyToManyMapping javaManyToManyMapping) {
-		super(ormTypeMapping, javaManyToManyMapping);
-	}
-
-	public XmlJoinFetchType getJoinFetch() {
-		if (isOrmMetadataComplete()) {
-			return null; //don't return default value, it only applies for an empty @JoinFetch
-		}
-		return JoinFetchType.toOrmResourceModel(((EclipseLinkJavaManyToManyMappingImpl) this.javaAttributeMapping).getJoinFetch().getValue());
-	}
-	
-	public void setJoinFetch(XmlJoinFetchType value) {
-		throw new UnsupportedOperationException("cannot set values on a virtual mapping"); //$NON-NLS-1$
-	}
-	
-	public XmlAccessMethods getAccessMethods() {
-		return null;
-	}
-	
-	public void setAccessMethods(XmlAccessMethods value) {
-		throw new UnsupportedOperationException("cannot set values on a virtual mapping"); //$NON-NLS-1$		
-	}
-	
-	public EList<XmlProperty> getProperties() {
-		// TODO get from java annotations
-		return null;
-	}
-	
-	public TextRange getJoinFetchTextRange() {
-		return null;
-	}
-}
diff --git a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/context/orm/EclipseLinkVirtualXmlManyToOne.java b/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/context/orm/EclipseLinkVirtualXmlManyToOne.java
deleted file mode 100644
index a97861e..0000000
--- a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/context/orm/EclipseLinkVirtualXmlManyToOne.java
+++ /dev/null
@@ -1,62 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008, 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.eclipselink.core.internal.context.orm;
-
-import org.eclipse.emf.common.util.EList;
-import org.eclipse.jpt.core.context.java.JavaManyToOneMapping;
-import org.eclipse.jpt.core.context.orm.OrmTypeMapping;
-import org.eclipse.jpt.core.internal.context.orm.VirtualXmlManyToOne;
-import org.eclipse.jpt.core.utility.TextRange;
-import org.eclipse.jpt.eclipselink.core.context.JoinFetchType;
-import org.eclipse.jpt.eclipselink.core.internal.context.java.EclipseLinkJavaManyToOneMappingImpl;
-import org.eclipse.jpt.eclipselink.core.resource.orm.XmlAccessMethods;
-import org.eclipse.jpt.eclipselink.core.resource.orm.XmlJoinFetchType;
-import org.eclipse.jpt.eclipselink.core.resource.orm.XmlManyToOne;
-import org.eclipse.jpt.eclipselink.core.resource.orm.XmlProperty;
-
-/**
- * VirtualBasic is an implementation of Basic used when there is 
- * no tag in the orm.xml and an underlying javaBasicMapping exists.
- */
-public class EclipseLinkVirtualXmlManyToOne extends VirtualXmlManyToOne implements XmlManyToOne
-{
-		
-	public EclipseLinkVirtualXmlManyToOne(OrmTypeMapping ormTypeMapping, JavaManyToOneMapping javaManyToOneMapping) {
-		super(ormTypeMapping, javaManyToOneMapping);
-	}
-
-	public XmlJoinFetchType getJoinFetch() {
-		if (isOrmMetadataComplete()) {
-			return null; //don't return default value, it only applies for an empty @JoinFetch
-		}
-		return JoinFetchType.toOrmResourceModel(((EclipseLinkJavaManyToOneMappingImpl) this.javaAttributeMapping).getJoinFetch().getValue());
-	}
-	
-	public void setJoinFetch(XmlJoinFetchType value) {
-		throw new UnsupportedOperationException("cannot set values on a virtual mapping"); //$NON-NLS-1$
-	}
-	
-	public XmlAccessMethods getAccessMethods() {
-		return null;
-	}
-	
-	public void setAccessMethods(XmlAccessMethods value) {
-		throw new UnsupportedOperationException("cannot set values on a virtual mapping"); //$NON-NLS-1$		
-	}
-	
-	public EList<XmlProperty> getProperties() {
-		// TODO get from java annotations
-		return null;
-	}
-	
-	public TextRange getJoinFetchTextRange() {
-		return null;
-	}
-}
diff --git a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/context/orm/EclipseLinkVirtualXmlObjectTypeConverter.java b/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/context/orm/EclipseLinkVirtualXmlObjectTypeConverter.java
deleted file mode 100644
index 002f851..0000000
--- a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/context/orm/EclipseLinkVirtualXmlObjectTypeConverter.java
+++ /dev/null
@@ -1,99 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008, 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.eclipselink.core.internal.context.orm;
-
-import org.eclipse.emf.common.util.EList;
-import org.eclipse.emf.ecore.util.EObjectContainmentEList;
-import org.eclipse.jpt.core.context.orm.OrmTypeMapping;
-import org.eclipse.jpt.core.resource.xml.AbstractJpaEObject;
-import org.eclipse.jpt.eclipselink.core.context.ConversionValue;
-import org.eclipse.jpt.eclipselink.core.context.ObjectTypeConverter;
-import org.eclipse.jpt.eclipselink.core.resource.orm.EclipseLinkOrmPackage;
-import org.eclipse.jpt.eclipselink.core.resource.orm.XmlConversionValue;
-import org.eclipse.jpt.eclipselink.core.resource.orm.XmlObjectTypeConverter;
-import org.eclipse.jpt.utility.internal.CollectionTools;
-
-/**
- * VirtualBasic is an implementation of Basic used when there is 
- * no tag in the orm.xml and an underlying javaBasicMapping exists.
- */
-public class EclipseLinkVirtualXmlObjectTypeConverter extends AbstractJpaEObject implements XmlObjectTypeConverter
-{
-	protected OrmTypeMapping ormTypeMapping;
-	
-	protected ObjectTypeConverter javaConverter;
-	
-	public EclipseLinkVirtualXmlObjectTypeConverter(OrmTypeMapping ormTypeMapping, ObjectTypeConverter javaConverter) {
-		super();
-		this.ormTypeMapping = ormTypeMapping;
-		this.javaConverter = javaConverter;
-	}
-	
-	protected boolean isOrmMetadataComplete() {
-		return this.ormTypeMapping.isMetadataComplete();
-	}
-	
-	public String getName() {
-		if (isOrmMetadataComplete()) {
-			return null;
-		}
-		return this.javaConverter.getName();
-	}
-	
-	public void setName(@SuppressWarnings("unused") String value) {
-		throw new UnsupportedOperationException("cannot set values on a virtual mapping"); //$NON-NLS-1$
-	}
-
-	public String getDataType() {
-		if (isOrmMetadataComplete()) {
-			return null;
-		}
-		return this.javaConverter.getDataType();
-	}
-	
-	public void setDataType(@SuppressWarnings("unused") String value) {
-		throw new UnsupportedOperationException("cannot set values on a virtual mapping"); //$NON-NLS-1$
-	}
-
-	public String getObjectType() {
-		if (isOrmMetadataComplete()) {
-			return null;
-		}
-		return this.javaConverter.getObjectType();
-	}
-	
-	public void setObjectType(@SuppressWarnings("unused") String value) {
-		throw new UnsupportedOperationException("cannot set values on a virtual mapping"); //$NON-NLS-1$
-	}
-
-	public String getDefaultObjectValue() {
-		if (isOrmMetadataComplete()) {
-			return null;
-		}
-		return this.javaConverter.getDefaultObjectValue();
-	}
-
-	public void setDefaultObjectValue(@SuppressWarnings("unused") String value) {
-		throw new UnsupportedOperationException("cannot set values on a virtual mapping"); //$NON-NLS-1$
-	}
-	
-	public EList<XmlConversionValue> getConversionValues() {
-		EList<XmlConversionValue> conversionValues = new EObjectContainmentEList<XmlConversionValue>(XmlConversionValue.class, this, EclipseLinkOrmPackage.XML_OBJECT_TYPE_CONVERTER__CONVERSION_VALUES);
-		if (isOrmMetadataComplete()) {
-			return conversionValues;
-		}
-		for (ConversionValue javaConversionValue : CollectionTools.iterable(this.javaConverter.conversionValues())) {
-			XmlConversionValue xmlConversionValue = new EclipseLinkVirtualXmlConversionValue(this.ormTypeMapping, javaConversionValue);
-			conversionValues.add(xmlConversionValue);
-		}
-		return conversionValues;
-	}
-
-}
diff --git a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/context/orm/EclipseLinkVirtualXmlOneToMany.java b/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/context/orm/EclipseLinkVirtualXmlOneToMany.java
deleted file mode 100644
index acc4a1f..0000000
--- a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/context/orm/EclipseLinkVirtualXmlOneToMany.java
+++ /dev/null
@@ -1,101 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008, 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.eclipselink.core.internal.context.orm;
-
-import org.eclipse.emf.common.util.EList;
-import org.eclipse.emf.ecore.util.EObjectContainmentEList;
-import org.eclipse.jpt.core.context.java.JavaJoinColumn;
-import org.eclipse.jpt.core.context.orm.OrmTypeMapping;
-import org.eclipse.jpt.core.internal.context.orm.VirtualXmlJoinColumn;
-import org.eclipse.jpt.core.internal.context.orm.VirtualXmlOneToMany;
-import org.eclipse.jpt.core.resource.orm.OrmPackage;
-import org.eclipse.jpt.core.resource.orm.XmlJoinColumn;
-import org.eclipse.jpt.core.utility.TextRange;
-import org.eclipse.jpt.eclipselink.core.context.JoinFetchType;
-import org.eclipse.jpt.eclipselink.core.internal.context.java.EclipseLinkJavaOneToManyMapping;
-import org.eclipse.jpt.eclipselink.core.resource.orm.XmlAccessMethods;
-import org.eclipse.jpt.eclipselink.core.resource.orm.XmlJoinFetchType;
-import org.eclipse.jpt.eclipselink.core.resource.orm.XmlOneToMany;
-import org.eclipse.jpt.eclipselink.core.resource.orm.XmlProperty;
-import org.eclipse.jpt.utility.internal.CollectionTools;
-
-/**
- * VirtualBasic is an implementation of Basic used when there is 
- * no tag in the orm.xml and an underlying javaBasicMapping exists.
- */
-public class EclipseLinkVirtualXmlOneToMany<T extends EclipseLinkJavaOneToManyMapping>
-	extends VirtualXmlOneToMany<T>
-	implements XmlOneToMany
-{	
-	public EclipseLinkVirtualXmlOneToMany(
-			OrmTypeMapping ormTypeMapping, T javaOneToManyMapping) {
-		super(ormTypeMapping, javaOneToManyMapping);
-	}
-	
-	
-	@Override
-	public EList<XmlJoinColumn> getJoinColumns() {
-		//TODO need to check metadataComplete here
-		EList<XmlJoinColumn> joinColumns = 
-			new EObjectContainmentEList<XmlJoinColumn>(XmlJoinColumn.class, this, OrmPackage.XML_ONE_TO_ONE__JOIN_COLUMNS);
-		//TODO here i'm using joinColumns() while VirtualXmlJoinTable uses specifiedJoinColumns()???
-		for (JavaJoinColumn joinColumn : 
-				CollectionTools.iterable(
-					this.javaAttributeMapping.getRelationshipReference().
-						getJoinColumnJoiningStrategy().joinColumns())) {
-			XmlJoinColumn xmlJoinColumn = new VirtualXmlJoinColumn(joinColumn, this.isOrmMetadataComplete());
-			joinColumns.add(xmlJoinColumn);
-		}
-		return joinColumns;
-	}
-
-	public XmlJoinFetchType getJoinFetch() {
-		if (isOrmMetadataComplete()) {
-			return null; //don't return default value, it only applies for an empty @JoinFetch
-		}
-		return JoinFetchType.toOrmResourceModel(((EclipseLinkJavaOneToManyMapping) this.javaAttributeMapping).getJoinFetch().getValue());
-	}
-	
-	public void setJoinFetch(XmlJoinFetchType value) {
-		throw new UnsupportedOperationException("cannot set values on a virtual mapping"); //$NON-NLS-1$
-	}
-	
-	public boolean isPrivateOwned() {
-		if (isOrmMetadataComplete()) {
-			return false;
-		}
-		return ((EclipseLinkJavaOneToManyMapping) this.javaAttributeMapping).getPrivateOwned().isPrivateOwned();
-	}
-	
-	public void setPrivateOwned(boolean value) {
-		throw new UnsupportedOperationException("cannot set values on a virtual mapping"); //$NON-NLS-1$
-	}
-	
-	public XmlAccessMethods getAccessMethods() {
-		return null;
-	}
-	
-	public void setAccessMethods(XmlAccessMethods value) {
-		throw new UnsupportedOperationException("cannot set values on a virtual mapping"); //$NON-NLS-1$		
-	}
-	
-	public EList<XmlProperty> getProperties() {
-		// TODO get from java annotations
-		return null;
-	}
-	
-	public TextRange getJoinFetchTextRange() {
-		return null;
-	}
-	
-	public TextRange getPrivateOwnedTextRange() {
-		return null;
-	}
-}
diff --git a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/context/orm/EclipseLinkVirtualXmlOneToOne.java b/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/context/orm/EclipseLinkVirtualXmlOneToOne.java
deleted file mode 100644
index 914d6b0..0000000
--- a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/context/orm/EclipseLinkVirtualXmlOneToOne.java
+++ /dev/null
@@ -1,77 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008, 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.eclipselink.core.internal.context.orm;
-
-import org.eclipse.emf.common.util.EList;
-import org.eclipse.jpt.core.context.java.JavaOneToOneMapping;
-import org.eclipse.jpt.core.context.orm.OrmTypeMapping;
-import org.eclipse.jpt.core.internal.context.orm.VirtualXmlOneToOne;
-import org.eclipse.jpt.core.utility.TextRange;
-import org.eclipse.jpt.eclipselink.core.context.JoinFetchType;
-import org.eclipse.jpt.eclipselink.core.internal.context.java.EclipseLinkJavaOneToOneMappingImpl;
-import org.eclipse.jpt.eclipselink.core.resource.orm.XmlAccessMethods;
-import org.eclipse.jpt.eclipselink.core.resource.orm.XmlJoinFetchType;
-import org.eclipse.jpt.eclipselink.core.resource.orm.XmlOneToOne;
-import org.eclipse.jpt.eclipselink.core.resource.orm.XmlProperty;
-
-/**
- * VirtualBasic is an implementation of Basic used when there is 
- * no tag in the orm.xml and an underlying javaBasicMapping exists.
- */
-public class EclipseLinkVirtualXmlOneToOne extends VirtualXmlOneToOne implements XmlOneToOne
-{
-		
-	public EclipseLinkVirtualXmlOneToOne(OrmTypeMapping ormTypeMapping, JavaOneToOneMapping javaOneToOneMapping) {
-		super(ormTypeMapping, javaOneToOneMapping);
-	}
-
-	public XmlJoinFetchType getJoinFetch() {
-		if (isOrmMetadataComplete()) {
-			return null; //don't return default value, it only applies for an empty @JoinFetch
-		}
-		return JoinFetchType.toOrmResourceModel(((EclipseLinkJavaOneToOneMappingImpl) this.javaAttributeMapping).getJoinFetch().getValue());
-	}
-	
-	public void setJoinFetch(XmlJoinFetchType value) {
-		throw new UnsupportedOperationException("cannot set values on a virtual mapping"); //$NON-NLS-1$
-	}
-	
-	public boolean isPrivateOwned() {
-		if (isOrmMetadataComplete()) {
-			return false;
-		}
-		return ((EclipseLinkJavaOneToOneMappingImpl) this.javaAttributeMapping).getPrivateOwned().isPrivateOwned();
-	}
-	
-	public void setPrivateOwned(boolean value) {
-		throw new UnsupportedOperationException("cannot set values on a virtual mapping"); //$NON-NLS-1$
-	}
-	
-	public XmlAccessMethods getAccessMethods() {
-		return null;
-	}
-	
-	public void setAccessMethods(XmlAccessMethods value) {
-		throw new UnsupportedOperationException("cannot set values on a virtual mapping"); //$NON-NLS-1$		
-	}
-	
-	public EList<XmlProperty> getProperties() {
-		// TODO get from java annotations
-		return null;
-	}
-	
-	public TextRange getJoinFetchTextRange() {
-		return null;
-	}
-	
-	public TextRange getPrivateOwnedTextRange() {
-		return null;
-	}
-}
diff --git a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/context/orm/EclipseLinkVirtualXmlStructConverter.java b/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/context/orm/EclipseLinkVirtualXmlStructConverter.java
deleted file mode 100644
index b4179db..0000000
--- a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/context/orm/EclipseLinkVirtualXmlStructConverter.java
+++ /dev/null
@@ -1,58 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008, 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.eclipselink.core.internal.context.orm;
-
-import org.eclipse.jpt.core.context.orm.OrmTypeMapping;
-import org.eclipse.jpt.core.resource.xml.AbstractJpaEObject;
-import org.eclipse.jpt.eclipselink.core.context.StructConverter;
-import org.eclipse.jpt.eclipselink.core.resource.orm.XmlStructConverter;
-
-/**
- * VirtualBasic is an implementation of Basic used when there is 
- * no tag in the orm.xml and an underlying javaBasicMapping exists.
- */
-public class EclipseLinkVirtualXmlStructConverter extends AbstractJpaEObject implements XmlStructConverter
-{
-	protected OrmTypeMapping ormTypeMapping;
-	
-	protected StructConverter javaConverter;
-	
-	public EclipseLinkVirtualXmlStructConverter(OrmTypeMapping ormTypeMapping, StructConverter javaConverter) {
-		super();
-		this.ormTypeMapping = ormTypeMapping;
-		this.javaConverter = javaConverter;
-	}
-	
-	protected boolean isOrmMetadataComplete() {
-		return this.ormTypeMapping.isMetadataComplete();
-	}
-
-	public String getConverter() {
-		if (isOrmMetadataComplete()) {
-			return null;
-		}
-		return this.javaConverter.getConverterClass();
-	}
-	
-	public void setConverter(@SuppressWarnings("unused") String value) {
-		throw new UnsupportedOperationException("cannot set values on a virtual mapping"); //$NON-NLS-1$
-	}
-	
-	public String getName() {
-		if (isOrmMetadataComplete()) {
-			return null;
-		}
-		return this.javaConverter.getName();
-	}
-	
-	public void setName(@SuppressWarnings("unused") String value) {
-		throw new UnsupportedOperationException("cannot set values on a virtual mapping"); //$NON-NLS-1$
-	}
-}
diff --git a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/context/orm/EclipseLinkVirtualXmlTypeConverter.java b/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/context/orm/EclipseLinkVirtualXmlTypeConverter.java
deleted file mode 100644
index ad63917..0000000
--- a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/context/orm/EclipseLinkVirtualXmlTypeConverter.java
+++ /dev/null
@@ -1,69 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008, 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.eclipselink.core.internal.context.orm;
-
-import org.eclipse.jpt.core.context.orm.OrmTypeMapping;
-import org.eclipse.jpt.core.resource.xml.AbstractJpaEObject;
-import org.eclipse.jpt.eclipselink.core.context.TypeConverter;
-import org.eclipse.jpt.eclipselink.core.resource.orm.XmlTypeConverter;
-
-/**
- * VirtualBasic is an implementation of Basic used when there is 
- * no tag in the orm.xml and an underlying javaBasicMapping exists.
- */
-public class EclipseLinkVirtualXmlTypeConverter extends AbstractJpaEObject implements XmlTypeConverter
-{
-	protected OrmTypeMapping ormTypeMapping;
-	
-	protected TypeConverter javaConverter;
-	
-	public EclipseLinkVirtualXmlTypeConverter(OrmTypeMapping ormTypeMapping, TypeConverter javaConverter) {
-		super();
-		this.ormTypeMapping = ormTypeMapping;
-		this.javaConverter = javaConverter;
-	}
-	
-	protected boolean isOrmMetadataComplete() {
-		return this.ormTypeMapping.isMetadataComplete();
-	}
-	
-	public String getName() {
-		if (isOrmMetadataComplete()) {
-			return null;
-		}
-		return this.javaConverter.getName();
-	}
-	
-	public void setName(@SuppressWarnings("unused") String value) {
-		throw new UnsupportedOperationException("cannot set values on a virtual mapping"); //$NON-NLS-1$
-	}
-
-	public String getDataType() {
-		if (isOrmMetadataComplete()) {
-			return null;
-		}
-		return this.javaConverter.getDataType();
-	}
-	
-	public void setDataType(@SuppressWarnings("unused") String value) {
-		throw new UnsupportedOperationException("cannot set values on a virtual mapping"); //$NON-NLS-1$
-	}
-
-	public String getObjectType() {
-		if (isOrmMetadataComplete()) {
-			return null;
-		}
-		return this.javaConverter.getObjectType();
-	}
-	
-	public void setObjectType(@SuppressWarnings("unused") String value) {
-		throw new UnsupportedOperationException("cannot set values on a virtual mapping"); //$NON-NLS-1$
-	}
-}
diff --git a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/context/orm/EclipseLinkVirtualXmlVersion.java b/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/context/orm/EclipseLinkVirtualXmlVersion.java
deleted file mode 100644
index 887bfce..0000000
--- a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/context/orm/EclipseLinkVirtualXmlVersion.java
+++ /dev/null
@@ -1,146 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.eclipselink.core.internal.context.orm;
-
-import org.eclipse.emf.common.util.EList;
-import org.eclipse.jpt.core.context.java.JavaVersionMapping;
-import org.eclipse.jpt.core.context.orm.OrmTypeMapping;
-import org.eclipse.jpt.core.internal.context.orm.VirtualXmlVersion;
-import org.eclipse.jpt.core.utility.TextRange;
-import org.eclipse.jpt.eclipselink.core.context.Convert;
-import org.eclipse.jpt.eclipselink.core.context.CustomConverter;
-import org.eclipse.jpt.eclipselink.core.context.EclipseLinkConverter;
-import org.eclipse.jpt.eclipselink.core.context.EclipseLinkVersionMapping;
-import org.eclipse.jpt.eclipselink.core.context.ObjectTypeConverter;
-import org.eclipse.jpt.eclipselink.core.context.StructConverter;
-import org.eclipse.jpt.eclipselink.core.context.TypeConverter;
-import org.eclipse.jpt.eclipselink.core.resource.orm.XmlAccessMethods;
-import org.eclipse.jpt.eclipselink.core.resource.orm.XmlConverter;
-import org.eclipse.jpt.eclipselink.core.resource.orm.XmlObjectTypeConverter;
-import org.eclipse.jpt.eclipselink.core.resource.orm.XmlProperty;
-import org.eclipse.jpt.eclipselink.core.resource.orm.XmlStructConverter;
-import org.eclipse.jpt.eclipselink.core.resource.orm.XmlTypeConverter;
-import org.eclipse.jpt.eclipselink.core.resource.orm.XmlVersion;
-
-/**
- * VirtualBasic is an implementation of Basic used when there is 
- * no tag in the orm.xml and an underlying javaBasicMapping exists.
- */
-public class EclipseLinkVirtualXmlVersion extends VirtualXmlVersion implements XmlVersion
-{
-		
-	public EclipseLinkVirtualXmlVersion(OrmTypeMapping ormTypeMapping, JavaVersionMapping javaVersionMapping) {
-		super(ormTypeMapping, javaVersionMapping);
-	}
-
-	public Boolean getMutable() {
-		//don't need isOrmMetadataComplete() check because there is no default Id mapping
-		return Boolean.valueOf(((EclipseLinkVersionMapping) this.javaAttributeMapping).getMutable().isMutable());
-	}
-	
-	public void setMutable(@SuppressWarnings("unused") Boolean value) {
-		throw new UnsupportedOperationException("cannot set values on a virtual mapping"); //$NON-NLS-1$
-	}
-
-	public String getConvert() {
-		//don't need isOrmMetadataComplete() check because there is no default Id mapping
-		if (this.javaAttributeMapping.getConverter().getType() == Convert.ECLIPSE_LINK_CONVERTER) {
-			return ((Convert) this.javaAttributeMapping.getConverter()).getConverterName();
-		}
-		return null;
-	}
-	
-	public void setConvert(@SuppressWarnings("unused") String value) {
-		throw new UnsupportedOperationException("cannot set values on a virtual mapping"); //$NON-NLS-1$
-	}
-
-	public TextRange getMutableTextRange() {
-		return null;
-	}
-	
-	public TextRange getConvertTextRange() {
-		return null;
-	}
-
-	public XmlConverter getConverter() {
-		//don't need isOrmMetadataComplete() check because there is no default Id mapping
-		if (this.javaAttributeMapping.getConverter().getType() == Convert.ECLIPSE_LINK_CONVERTER) {
-			EclipseLinkConverter converter = ((Convert) this.javaAttributeMapping.getConverter()).getConverter();
-			if (converter != null && converter.getType() == EclipseLinkConverter.CUSTOM_CONVERTER) {
-				return new EclipseLinkVirtualXmlConverter(this.ormTypeMapping, (CustomConverter) ((Convert) this.javaAttributeMapping.getConverter()).getConverter());
-			}
-		}
-		return null;
-	}
-
-	public void setConverter(@SuppressWarnings("unused") XmlConverter value) {
-		throw new UnsupportedOperationException("cannot set values on a virtual mapping"); //$NON-NLS-1$
-	}
-
-	public XmlObjectTypeConverter getObjectTypeConverter() {
-		//don't need isOrmMetadataComplete() check because there is no default Id mapping
-		if (this.javaAttributeMapping.getConverter().getType() == Convert.ECLIPSE_LINK_CONVERTER) {
-			EclipseLinkConverter converter = ((Convert) this.javaAttributeMapping.getConverter()).getConverter();
-			if (converter != null && converter.getType() == EclipseLinkConverter.OBJECT_TYPE_CONVERTER) {
-				return new EclipseLinkVirtualXmlObjectTypeConverter(this.ormTypeMapping, (ObjectTypeConverter) ((Convert) this.javaAttributeMapping.getConverter()).getConverter());
-			}
-		}
-		return null;
-	}
-
-	public void setObjectTypeConverter(@SuppressWarnings("unused") XmlObjectTypeConverter value) {
-		throw new UnsupportedOperationException("cannot set values on a virtual mapping"); //$NON-NLS-1$
-	}
-
-	public XmlStructConverter getStructConverter() {
-		//don't need isOrmMetadataComplete() check because there is no default Id mapping
-		if (this.javaAttributeMapping.getConverter().getType() == Convert.ECLIPSE_LINK_CONVERTER) {
-			EclipseLinkConverter converter = ((Convert) this.javaAttributeMapping.getConverter()).getConverter();
-			if (converter != null && converter.getType() == EclipseLinkConverter.STRUCT_CONVERTER) {
-				return new EclipseLinkVirtualXmlStructConverter(this.ormTypeMapping, (StructConverter) ((Convert) this.javaAttributeMapping.getConverter()).getConverter());
-			}
-		}
-		return null;
-	}
-
-	public void setStructConverter(@SuppressWarnings("unused") XmlStructConverter value) {
-		throw new UnsupportedOperationException("cannot set values on a virtual mapping"); //$NON-NLS-1$
-	}
-
-	public XmlTypeConverter getTypeConverter() {
-		//don't need isOrmMetadataComplete() check because there is no default Id mapping
-		if (this.javaAttributeMapping.getConverter().getType() == Convert.ECLIPSE_LINK_CONVERTER) {
-			EclipseLinkConverter converter = ((Convert) this.javaAttributeMapping.getConverter()).getConverter();
-			if (converter != null && converter.getType() == EclipseLinkConverter.TYPE_CONVERTER) {
-				return new EclipseLinkVirtualXmlTypeConverter(this.ormTypeMapping, (TypeConverter) ((Convert) this.javaAttributeMapping.getConverter()).getConverter());
-			}
-		}
-		return null;
-	}
-
-	public void setTypeConverter(@SuppressWarnings("unused") XmlTypeConverter value) {
-		throw new UnsupportedOperationException("cannot set values on a virtual mapping"); //$NON-NLS-1$
-	}
-	
-	
-	public XmlAccessMethods getAccessMethods() {
-		return null;
-	}
-	
-	public void setAccessMethods(XmlAccessMethods value) {
-		throw new UnsupportedOperationException("cannot set values on a virtual mapping"); //$NON-NLS-1$		
-	}
-	
-	public EList<XmlProperty> getProperties() {
-		// TODO get from java annotations
-		return null;
-	}
-
-}
diff --git a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/context/orm/OrmBasicCollectionMapping.java b/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/context/orm/OrmBasicCollectionMapping.java
deleted file mode 100644
index cf38130..0000000
--- a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/context/orm/OrmBasicCollectionMapping.java
+++ /dev/null
@@ -1,47 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008, 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.eclipselink.core.internal.context.orm;
-
-import org.eclipse.jpt.core.context.orm.OrmAttributeMapping;
-import org.eclipse.jpt.core.context.orm.OrmPersistentAttribute;
-import org.eclipse.jpt.core.internal.context.orm.AbstractOrmAttributeMapping;
-import org.eclipse.jpt.eclipselink.core.EclipseLinkMappingKeys;
-import org.eclipse.jpt.eclipselink.core.context.BasicCollectionMapping;
-import org.eclipse.jpt.eclipselink.core.resource.orm.Attributes;
-import org.eclipse.jpt.eclipselink.core.resource.orm.XmlBasicCollection;
-
-public class OrmBasicCollectionMapping<T extends XmlBasicCollection>
-	extends AbstractOrmAttributeMapping<T> 
-	implements BasicCollectionMapping
-{
-	public OrmBasicCollectionMapping(OrmPersistentAttribute parent, T resourceMapping) {
-		super(parent, resourceMapping);
-	}
-	
-	public void initializeOn(OrmAttributeMapping newMapping) {
-		newMapping.initializeFromOrmAttributeMapping(this);
-	}
-	
-	public String getKey() {
-		return EclipseLinkMappingKeys.BASIC_COLLECTION_ATTRIBUTE_MAPPING_KEY;
-	}
-	
-	public void addToResourceModel(org.eclipse.jpt.core.resource.orm.Attributes resourceAttributes) {
-		((Attributes) resourceAttributes).getBasicCollections().add(this.resourceAttributeMapping);
-	}
-	
-	public void removeFromResourceModel(org.eclipse.jpt.core.resource.orm.Attributes resourceAttributes) {
-		((Attributes) resourceAttributes).getBasicCollections().remove(this.resourceAttributeMapping);
-	}
-
-	public int getXmlSequence() {
-		return 23;
-	}
-}
diff --git a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/context/orm/OrmBasicCollectionMappingProvider.java b/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/context/orm/OrmBasicCollectionMappingProvider.java
deleted file mode 100644
index e1bc974..0000000
--- a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/context/orm/OrmBasicCollectionMappingProvider.java
+++ /dev/null
@@ -1,67 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008, 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.eclipselink.core.internal.context.orm;
-
-import org.eclipse.core.runtime.content.IContentType;
-import org.eclipse.jpt.core.JpaFactory;
-import org.eclipse.jpt.core.context.java.JavaAttributeMapping;
-import org.eclipse.jpt.core.context.orm.OrmAttributeMapping;
-import org.eclipse.jpt.core.context.orm.OrmAttributeMappingProvider;
-import org.eclipse.jpt.core.context.orm.OrmPersistentAttribute;
-import org.eclipse.jpt.core.context.orm.OrmTypeMapping;
-import org.eclipse.jpt.core.resource.orm.XmlAttributeMapping;
-import org.eclipse.jpt.eclipselink.core.EclipseLinkMappingKeys;
-import org.eclipse.jpt.eclipselink.core.internal.EclipseLinkJpaFactory;
-import org.eclipse.jpt.eclipselink.core.internal.JptEclipseLinkCorePlugin;
-import org.eclipse.jpt.eclipselink.core.internal.context.java.JavaBasicCollectionMapping;
-import org.eclipse.jpt.eclipselink.core.resource.orm.EclipseLinkOrmFactory;
-import org.eclipse.jpt.eclipselink.core.resource.orm.XmlBasicCollection;
-
-public class OrmBasicCollectionMappingProvider
-	implements OrmAttributeMappingProvider
-{
-
-	// singleton
-	private static final OrmBasicCollectionMappingProvider INSTANCE = new OrmBasicCollectionMappingProvider();
-
-	/**
-	 * Return the singleton.
-	 */
-	public static OrmAttributeMappingProvider instance() {
-		return INSTANCE;
-	}
-
-	/**
-	 * Ensure single instance.
-	 */
-	private OrmBasicCollectionMappingProvider() {
-		super();
-	}
-	
-	public IContentType getContentType() {
-		return JptEclipseLinkCorePlugin.ECLIPSELINK_ORM_XML_CONTENT_TYPE;
-	}
-	
-	public String getKey() {
-		return EclipseLinkMappingKeys.BASIC_COLLECTION_ATTRIBUTE_MAPPING_KEY;
-	}
-	
-	public XmlAttributeMapping buildResourceMapping() {
-		return EclipseLinkOrmFactory.eINSTANCE.createXmlBasicCollectionImpl();
-	}
-
-	public OrmAttributeMapping buildMapping(OrmPersistentAttribute parent, XmlAttributeMapping resourceMapping, JpaFactory factory) {
-		return ((EclipseLinkJpaFactory) factory).buildOrmBasicCollectionMapping(parent, (XmlBasicCollection) resourceMapping);
-	}
-	
-	public XmlAttributeMapping buildVirtualResourceMapping(OrmTypeMapping ormTypeMapping, JavaAttributeMapping javaAttributeMapping, JpaFactory factory) {
-		return ((EclipseLinkJpaFactory) factory).buildVirtualXmlBasicCollection(ormTypeMapping, (JavaBasicCollectionMapping) javaAttributeMapping);
-	}
-}
diff --git a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/context/orm/OrmBasicMapMapping.java b/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/context/orm/OrmBasicMapMapping.java
deleted file mode 100644
index f1a0ed2..0000000
--- a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/context/orm/OrmBasicMapMapping.java
+++ /dev/null
@@ -1,48 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008, 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.eclipselink.core.internal.context.orm;
-
-import org.eclipse.jpt.core.context.orm.OrmAttributeMapping;
-import org.eclipse.jpt.core.context.orm.OrmPersistentAttribute;
-import org.eclipse.jpt.core.internal.context.orm.AbstractOrmAttributeMapping;
-import org.eclipse.jpt.eclipselink.core.EclipseLinkMappingKeys;
-import org.eclipse.jpt.eclipselink.core.context.BasicMapMapping;
-import org.eclipse.jpt.eclipselink.core.resource.orm.Attributes;
-import org.eclipse.jpt.eclipselink.core.resource.orm.XmlBasicMap;
-
-public class OrmBasicMapMapping<T extends XmlBasicMap>
-	extends AbstractOrmAttributeMapping<T> 
-	implements BasicMapMapping
-{
-	public OrmBasicMapMapping(OrmPersistentAttribute parent, T resourceMapping) {
-		super(parent, resourceMapping);
-	}
-	
-	public void initializeOn(OrmAttributeMapping newMapping) {
-		newMapping.initializeFromOrmAttributeMapping(this);
-	}
-	
-	public String getKey() {
-		return EclipseLinkMappingKeys.BASIC_MAP_ATTRIBUTE_MAPPING_KEY;
-	}
-	
-	public void addToResourceModel(org.eclipse.jpt.core.resource.orm.Attributes resourceAttributes) {
-		((Attributes) resourceAttributes).getBasicMaps().add(this.resourceAttributeMapping);
-	}
-	
-	public void removeFromResourceModel(org.eclipse.jpt.core.resource.orm.Attributes resourceAttributes) {
-		((Attributes) resourceAttributes).getBasicMaps().remove(this.resourceAttributeMapping);
-	}
-
-	
-	public int getXmlSequence() {
-		return 27;
-	}
-}
diff --git a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/context/orm/OrmBasicMapMappingProvider.java b/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/context/orm/OrmBasicMapMappingProvider.java
deleted file mode 100644
index f437248..0000000
--- a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/context/orm/OrmBasicMapMappingProvider.java
+++ /dev/null
@@ -1,67 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008, 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.eclipselink.core.internal.context.orm;
-
-import org.eclipse.core.runtime.content.IContentType;
-import org.eclipse.jpt.core.JpaFactory;
-import org.eclipse.jpt.core.context.java.JavaAttributeMapping;
-import org.eclipse.jpt.core.context.orm.OrmAttributeMapping;
-import org.eclipse.jpt.core.context.orm.OrmAttributeMappingProvider;
-import org.eclipse.jpt.core.context.orm.OrmPersistentAttribute;
-import org.eclipse.jpt.core.context.orm.OrmTypeMapping;
-import org.eclipse.jpt.core.resource.orm.XmlAttributeMapping;
-import org.eclipse.jpt.eclipselink.core.EclipseLinkMappingKeys;
-import org.eclipse.jpt.eclipselink.core.internal.EclipseLinkJpaFactory;
-import org.eclipse.jpt.eclipselink.core.internal.JptEclipseLinkCorePlugin;
-import org.eclipse.jpt.eclipselink.core.internal.context.java.JavaBasicMapMapping;
-import org.eclipse.jpt.eclipselink.core.resource.orm.EclipseLinkOrmFactory;
-import org.eclipse.jpt.eclipselink.core.resource.orm.XmlBasicMap;
-
-public class OrmBasicMapMappingProvider
-	implements OrmAttributeMappingProvider
-{
-
-	// singleton
-	private static final OrmBasicMapMappingProvider INSTANCE = new OrmBasicMapMappingProvider();
-
-	/**
-	 * Return the singleton.
-	 */
-	public static OrmAttributeMappingProvider instance() {
-		return INSTANCE;
-	}
-
-	/**
-	 * Ensure single instance.
-	 */
-	private OrmBasicMapMappingProvider() {
-		super();
-	}
-	
-	public IContentType getContentType() {
-		return JptEclipseLinkCorePlugin.ECLIPSELINK_ORM_XML_CONTENT_TYPE;
-	}
-
-	public String getKey() {
-		return EclipseLinkMappingKeys.BASIC_MAP_ATTRIBUTE_MAPPING_KEY;
-	}
-	
-	public XmlAttributeMapping buildResourceMapping() {
-		return EclipseLinkOrmFactory.eINSTANCE.createXmlBasicMapImpl();
-	}
-
-	public OrmAttributeMapping buildMapping(OrmPersistentAttribute parent, XmlAttributeMapping resourceMapping, JpaFactory factory) {
-		return ((EclipseLinkJpaFactory) factory).buildOrmBasicMapMapping(parent, (XmlBasicMap) resourceMapping);
-	}
-	
-	public XmlAttributeMapping buildVirtualResourceMapping(OrmTypeMapping ormTypeMapping, JavaAttributeMapping javaAttributeMapping, JpaFactory factory) {
-		return ((EclipseLinkJpaFactory) factory).buildVirtualXmlBasicMap(ormTypeMapping, (JavaBasicMapMapping) javaAttributeMapping);
-	}
-}
diff --git a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/context/orm/OrmTransformationMapping.java b/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/context/orm/OrmTransformationMapping.java
deleted file mode 100644
index 1f0127e..0000000
--- a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/context/orm/OrmTransformationMapping.java
+++ /dev/null
@@ -1,48 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008, 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.eclipselink.core.internal.context.orm;
-
-import org.eclipse.jpt.core.context.orm.OrmAttributeMapping;
-import org.eclipse.jpt.core.context.orm.OrmPersistentAttribute;
-import org.eclipse.jpt.core.internal.context.orm.AbstractOrmAttributeMapping;
-import org.eclipse.jpt.eclipselink.core.EclipseLinkMappingKeys;
-import org.eclipse.jpt.eclipselink.core.context.TransformationMapping;
-import org.eclipse.jpt.eclipselink.core.resource.orm.Attributes;
-import org.eclipse.jpt.eclipselink.core.resource.orm.XmlTransformation;
-
-public class OrmTransformationMapping<T extends XmlTransformation>
-	extends AbstractOrmAttributeMapping<T> 
-	implements TransformationMapping
-{
-	public OrmTransformationMapping(OrmPersistentAttribute parent, T resourceMapping) {
-		super(parent, resourceMapping);
-	}
-	
-	public void initializeOn(OrmAttributeMapping newMapping) {
-		newMapping.initializeFromOrmAttributeMapping(this);
-	}
-	
-	public String getKey() {
-		return EclipseLinkMappingKeys.TRANSFORMATION_ATTRIBUTE_MAPPING_KEY;
-	}
-	
-	public void addToResourceModel(org.eclipse.jpt.core.resource.orm.Attributes resourceAttributes) {
-		((Attributes) resourceAttributes).getTransformations().add(this.resourceAttributeMapping);
-	}
-	
-	public void removeFromResourceModel(org.eclipse.jpt.core.resource.orm.Attributes resourceAttributes) {
-		((Attributes) resourceAttributes).getTransformations().remove(this.resourceAttributeMapping);
-	}
-
-	
-	public int getXmlSequence() {
-		return 85;
-	}
-}
diff --git a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/context/orm/OrmTransformationMappingProvider.java b/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/context/orm/OrmTransformationMappingProvider.java
deleted file mode 100644
index c70751b..0000000
--- a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/context/orm/OrmTransformationMappingProvider.java
+++ /dev/null
@@ -1,67 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008, 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.eclipselink.core.internal.context.orm;
-
-import org.eclipse.core.runtime.content.IContentType;
-import org.eclipse.jpt.core.JpaFactory;
-import org.eclipse.jpt.core.context.java.JavaAttributeMapping;
-import org.eclipse.jpt.core.context.orm.OrmAttributeMapping;
-import org.eclipse.jpt.core.context.orm.OrmAttributeMappingProvider;
-import org.eclipse.jpt.core.context.orm.OrmPersistentAttribute;
-import org.eclipse.jpt.core.context.orm.OrmTypeMapping;
-import org.eclipse.jpt.core.resource.orm.XmlAttributeMapping;
-import org.eclipse.jpt.eclipselink.core.EclipseLinkMappingKeys;
-import org.eclipse.jpt.eclipselink.core.internal.EclipseLinkJpaFactory;
-import org.eclipse.jpt.eclipselink.core.internal.JptEclipseLinkCorePlugin;
-import org.eclipse.jpt.eclipselink.core.internal.context.java.JavaTransformationMapping;
-import org.eclipse.jpt.eclipselink.core.resource.orm.EclipseLinkOrmFactory;
-import org.eclipse.jpt.eclipselink.core.resource.orm.XmlTransformation;
-
-public class OrmTransformationMappingProvider
-	implements OrmAttributeMappingProvider
-{
-
-	// singleton
-	private static final OrmTransformationMappingProvider INSTANCE = new OrmTransformationMappingProvider();
-
-	/**
-	 * Return the singleton.
-	 */
-	public static OrmAttributeMappingProvider instance() {
-		return INSTANCE;
-	}
-
-	/**
-	 * Ensure single instance.
-	 */
-	private OrmTransformationMappingProvider() {
-		super();
-	}
-	
-	public IContentType getContentType() {
-		return JptEclipseLinkCorePlugin.ECLIPSELINK_ORM_XML_CONTENT_TYPE;
-	}
-
-	public String getKey() {
-		return EclipseLinkMappingKeys.TRANSFORMATION_ATTRIBUTE_MAPPING_KEY;
-	}
-	
-	public XmlAttributeMapping buildResourceMapping() {
-		return EclipseLinkOrmFactory.eINSTANCE.createXmlTransformationImpl();
-	}
-
-	public OrmAttributeMapping buildMapping(OrmPersistentAttribute parent, XmlAttributeMapping resourceMapping, JpaFactory factory) {
-		return ((EclipseLinkJpaFactory) factory).buildOrmTransformationMapping(parent, (XmlTransformation) resourceMapping);
-	}
-	
-	public XmlAttributeMapping buildVirtualResourceMapping(OrmTypeMapping ormTypeMapping, JavaAttributeMapping javaAttributeMapping, JpaFactory factory) {
-		return ((EclipseLinkJpaFactory) factory).buildVirtualXmlTransformation(ormTypeMapping, (JavaTransformationMapping) javaAttributeMapping);
-	}
-}
diff --git a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/context/orm/OrmVariableOneToOneMapping.java b/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/context/orm/OrmVariableOneToOneMapping.java
deleted file mode 100644
index ac8cb8d..0000000
--- a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/context/orm/OrmVariableOneToOneMapping.java
+++ /dev/null
@@ -1,47 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.eclipselink.core.internal.context.orm;
-
-import org.eclipse.jpt.core.context.orm.OrmAttributeMapping;
-import org.eclipse.jpt.core.context.orm.OrmPersistentAttribute;
-import org.eclipse.jpt.core.internal.context.orm.AbstractOrmAttributeMapping;
-import org.eclipse.jpt.eclipselink.core.EclipseLinkMappingKeys;
-import org.eclipse.jpt.eclipselink.core.context.VariableOneToOneMapping;
-import org.eclipse.jpt.eclipselink.core.resource.orm.Attributes;
-import org.eclipse.jpt.eclipselink.core.resource.orm.XmlVariableOneToOne;
-
-public class OrmVariableOneToOneMapping<T extends XmlVariableOneToOne>
-	extends AbstractOrmAttributeMapping<T> 
-	implements VariableOneToOneMapping
-{
-	public OrmVariableOneToOneMapping(OrmPersistentAttribute parent, T resourceMapping) {
-		super(parent, resourceMapping);
-	}
-	
-	public void initializeOn(OrmAttributeMapping newMapping) {
-		newMapping.initializeFromOrmAttributeMapping(this);
-	}
-	
-	public String getKey() {
-		return EclipseLinkMappingKeys.VARIABLE_ONE_TO_ONE_ATTRIBUTE_MAPPING_KEY;
-	}
-	
-	public void addToResourceModel(org.eclipse.jpt.core.resource.orm.Attributes resourceAttributes) {
-		((Attributes) resourceAttributes).getVariableOneToOnes().add(this.resourceAttributeMapping);
-	}
-	
-	public void removeFromResourceModel(org.eclipse.jpt.core.resource.orm.Attributes resourceAttributes) {
-		((Attributes) resourceAttributes).getVariableOneToOnes().remove(this.resourceAttributeMapping);
-	}
-
-	public int getXmlSequence() {
-		return 65;
-	}
-}
diff --git a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/context/orm/OrmVariableOneToOneMappingProvider.java b/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/context/orm/OrmVariableOneToOneMappingProvider.java
deleted file mode 100644
index 7b6cb22..0000000
--- a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/context/orm/OrmVariableOneToOneMappingProvider.java
+++ /dev/null
@@ -1,67 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.eclipselink.core.internal.context.orm;
-
-import org.eclipse.core.runtime.content.IContentType;
-import org.eclipse.jpt.core.JpaFactory;
-import org.eclipse.jpt.core.context.java.JavaAttributeMapping;
-import org.eclipse.jpt.core.context.orm.OrmAttributeMapping;
-import org.eclipse.jpt.core.context.orm.OrmAttributeMappingProvider;
-import org.eclipse.jpt.core.context.orm.OrmPersistentAttribute;
-import org.eclipse.jpt.core.context.orm.OrmTypeMapping;
-import org.eclipse.jpt.core.resource.orm.XmlAttributeMapping;
-import org.eclipse.jpt.eclipselink.core.EclipseLinkMappingKeys;
-import org.eclipse.jpt.eclipselink.core.internal.EclipseLinkJpaFactory;
-import org.eclipse.jpt.eclipselink.core.internal.JptEclipseLinkCorePlugin;
-import org.eclipse.jpt.eclipselink.core.internal.context.java.JavaVariableOneToOneMapping;
-import org.eclipse.jpt.eclipselink.core.resource.orm.EclipseLinkOrmFactory;
-import org.eclipse.jpt.eclipselink.core.resource.orm.XmlVariableOneToOne;
-
-public class OrmVariableOneToOneMappingProvider
-	implements OrmAttributeMappingProvider
-{
-
-	// singleton
-	private static final OrmVariableOneToOneMappingProvider INSTANCE = new OrmVariableOneToOneMappingProvider();
-
-	/**
-	 * Return the singleton.
-	 */
-	public static OrmAttributeMappingProvider instance() {
-		return INSTANCE;
-	}
-
-	/**
-	 * Ensure single instance.
-	 */
-	private OrmVariableOneToOneMappingProvider() {
-		super();
-	}
-	
-	public IContentType getContentType() {
-		return JptEclipseLinkCorePlugin.ECLIPSELINK_ORM_XML_CONTENT_TYPE;
-	}
-
-	public String getKey() {
-		return EclipseLinkMappingKeys.VARIABLE_ONE_TO_ONE_ATTRIBUTE_MAPPING_KEY;
-	}
-	
-	public XmlAttributeMapping buildResourceMapping() {
-		return EclipseLinkOrmFactory.eINSTANCE.createXmlVariableOneToOneImpl();
-	}
-
-	public OrmAttributeMapping buildMapping(OrmPersistentAttribute parent, XmlAttributeMapping resourceMapping, JpaFactory factory) {
-		return ((EclipseLinkJpaFactory) factory).buildOrmVariableOneToOneMapping(parent, (XmlVariableOneToOne) resourceMapping);
-	}
-	
-	public XmlAttributeMapping buildVirtualResourceMapping(OrmTypeMapping ormTypeMapping, JavaAttributeMapping javaAttributeMapping, JpaFactory factory) {
-		return ((EclipseLinkJpaFactory) factory).buildVirtualXmlVariableOneToOne(ormTypeMapping, (JavaVariableOneToOneMapping) javaAttributeMapping);
-	}
-}
diff --git a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/context/orm/VirtualXmlBasicCollection.java b/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/context/orm/VirtualXmlBasicCollection.java
deleted file mode 100644
index b1b6945..0000000
--- a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/context/orm/VirtualXmlBasicCollection.java
+++ /dev/null
@@ -1,45 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.eclipselink.core.internal.context.orm;
-
-import org.eclipse.emf.common.util.EList;
-import org.eclipse.jpt.core.context.orm.OrmTypeMapping;
-import org.eclipse.jpt.core.internal.context.orm.VirtualXmlAttributeMapping;
-import org.eclipse.jpt.eclipselink.core.internal.context.java.JavaBasicCollectionMapping;
-import org.eclipse.jpt.eclipselink.core.resource.orm.XmlAccessMethods;
-import org.eclipse.jpt.eclipselink.core.resource.orm.XmlBasicCollection;
-import org.eclipse.jpt.eclipselink.core.resource.orm.XmlProperty;
-
-/**
- * VirtualBasic is an implementation of Basic used when there is 
- * no tag in the orm.xml and an underlying javaBasicMapping exists.
- */
-public class VirtualXmlBasicCollection extends VirtualXmlAttributeMapping<JavaBasicCollectionMapping> implements XmlBasicCollection
-{
-
-	public VirtualXmlBasicCollection(OrmTypeMapping ormTypeMapping, JavaBasicCollectionMapping javaBasicCollectionMapping) {
-		super(ormTypeMapping, javaBasicCollectionMapping);
-	}
-	
-	public XmlAccessMethods getAccessMethods() {
-		return null;
-	}
-	
-	public void setAccessMethods(XmlAccessMethods value) {
-		throw new UnsupportedOperationException("cannot set values on a virtual mapping"); //$NON-NLS-1$		
-	}
-	
-	
-	public EList<XmlProperty> getProperties() {
-		// TODO get from java annotations
-		return null;
-	}
-
-}
diff --git a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/context/orm/VirtualXmlBasicMap.java b/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/context/orm/VirtualXmlBasicMap.java
deleted file mode 100644
index 657af71..0000000
--- a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/context/orm/VirtualXmlBasicMap.java
+++ /dev/null
@@ -1,45 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.eclipselink.core.internal.context.orm;
-
-import org.eclipse.emf.common.util.EList;
-import org.eclipse.jpt.core.context.orm.OrmTypeMapping;
-import org.eclipse.jpt.core.internal.context.orm.VirtualXmlAttributeMapping;
-import org.eclipse.jpt.eclipselink.core.internal.context.java.JavaBasicMapMapping;
-import org.eclipse.jpt.eclipselink.core.resource.orm.XmlAccessMethods;
-import org.eclipse.jpt.eclipselink.core.resource.orm.XmlBasicMap;
-import org.eclipse.jpt.eclipselink.core.resource.orm.XmlProperty;
-
-/**
- * VirtualBasic is an implementation of Basic used when there is 
- * no tag in the orm.xml and an underlying javaBasicMapping exists.
- */
-public class VirtualXmlBasicMap extends VirtualXmlAttributeMapping<JavaBasicMapMapping> implements XmlBasicMap
-{
-
-	public VirtualXmlBasicMap(OrmTypeMapping ormTypeMapping, JavaBasicMapMapping javaBasicMapMappingg) {
-		super(ormTypeMapping, javaBasicMapMappingg);
-	}
-	
-	public XmlAccessMethods getAccessMethods() {
-		return null;
-	}
-	
-	public void setAccessMethods(XmlAccessMethods value) {
-		throw new UnsupportedOperationException("cannot set values on a virtual mapping"); //$NON-NLS-1$		
-	}
-	
-	
-	public EList<XmlProperty> getProperties() {
-		// TODO get from java annotations
-		return null;
-	}
-
-}
diff --git a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/context/orm/VirtualXmlTransformation.java b/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/context/orm/VirtualXmlTransformation.java
deleted file mode 100644
index 3460a80..0000000
--- a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/context/orm/VirtualXmlTransformation.java
+++ /dev/null
@@ -1,45 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.eclipselink.core.internal.context.orm;
-
-import org.eclipse.emf.common.util.EList;
-import org.eclipse.jpt.core.context.orm.OrmTypeMapping;
-import org.eclipse.jpt.core.internal.context.orm.VirtualXmlAttributeMapping;
-import org.eclipse.jpt.eclipselink.core.internal.context.java.JavaTransformationMapping;
-import org.eclipse.jpt.eclipselink.core.resource.orm.XmlAccessMethods;
-import org.eclipse.jpt.eclipselink.core.resource.orm.XmlProperty;
-import org.eclipse.jpt.eclipselink.core.resource.orm.XmlTransformation;
-
-/**
- * VirtualBasic is an implementation of Basic used when there is 
- * no tag in the orm.xml and an underlying javaBasicMapping exists.
- */
-public class VirtualXmlTransformation extends VirtualXmlAttributeMapping<JavaTransformationMapping> implements XmlTransformation
-{
-
-	public VirtualXmlTransformation(OrmTypeMapping ormTypeMapping, JavaTransformationMapping javaTransformationMapping) {
-		super(ormTypeMapping, javaTransformationMapping);
-	}
-	
-	public XmlAccessMethods getAccessMethods() {
-		return null;
-	}
-	
-	public void setAccessMethods(XmlAccessMethods value) {
-		throw new UnsupportedOperationException("cannot set values on a virtual mapping"); //$NON-NLS-1$		
-	}
-	
-	
-	public EList<XmlProperty> getProperties() {
-		// TODO get from java annotations
-		return null;
-	}
-
-}
diff --git a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/context/orm/VirtualXmlVariableOneToOne.java b/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/context/orm/VirtualXmlVariableOneToOne.java
deleted file mode 100644
index 48487a9..0000000
--- a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/context/orm/VirtualXmlVariableOneToOne.java
+++ /dev/null
@@ -1,45 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.eclipselink.core.internal.context.orm;
-
-import org.eclipse.emf.common.util.EList;
-import org.eclipse.jpt.core.context.orm.OrmTypeMapping;
-import org.eclipse.jpt.core.internal.context.orm.VirtualXmlAttributeMapping;
-import org.eclipse.jpt.eclipselink.core.internal.context.java.JavaVariableOneToOneMapping;
-import org.eclipse.jpt.eclipselink.core.resource.orm.XmlAccessMethods;
-import org.eclipse.jpt.eclipselink.core.resource.orm.XmlProperty;
-import org.eclipse.jpt.eclipselink.core.resource.orm.XmlVariableOneToOne;
-
-/**
- * VirtualBasic is an implementation of Basic used when there is 
- * no tag in the orm.xml and an underlying javaBasicMapping exists.
- */
-public class VirtualXmlVariableOneToOne extends VirtualXmlAttributeMapping<JavaVariableOneToOneMapping> implements XmlVariableOneToOne
-{
-
-	public VirtualXmlVariableOneToOne(OrmTypeMapping ormTypeMapping, JavaVariableOneToOneMapping javaVariableOneToOneMapping) {
-		super(ormTypeMapping, javaVariableOneToOneMapping);
-	}
-	
-	public XmlAccessMethods getAccessMethods() {
-		return null;
-	}
-	
-	public void setAccessMethods(XmlAccessMethods value) {
-		throw new UnsupportedOperationException("cannot set values on a virtual mapping"); //$NON-NLS-1$		
-	}
-	
-	
-	public EList<XmlProperty> getProperties() {
-		// TODO get from java annotations
-		return null;
-	}
-
-}
diff --git a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/context/persistence/EclipseLinkJarFileRef.java b/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/context/persistence/EclipseLinkJarFileRef.java
deleted file mode 100644
index 84987e1..0000000
--- a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/context/persistence/EclipseLinkJarFileRef.java
+++ /dev/null
@@ -1,49 +0,0 @@
-/*******************************************************************************
- *  Copyright (c) 2009  Oracle. 
- *  All rights reserved.  This program and the accompanying materials are 
- *  made available under the terms of the Eclipse Public License v1.0 which 
- *  accompanies this distribution, and is available at 
- *  http://www.eclipse.org/legal/epl-v10.html
- *  
- *  Contributors: 
- *  	Oracle - initial API and implementation
- *******************************************************************************/
-package org.eclipse.jpt.eclipselink.core.internal.context.persistence;
-
-import org.eclipse.core.resources.IProject;
-import org.eclipse.core.runtime.IPath;
-import org.eclipse.jpt.core.JptCorePlugin;
-import org.eclipse.jpt.core.context.persistence.PersistenceUnit;
-import org.eclipse.jpt.core.internal.context.persistence.AbstractJarFileRef;
-import org.eclipse.jpt.core.resource.persistence.XmlJarFileRef;
-
-public class EclipseLinkJarFileRef 
-	extends AbstractJarFileRef
-{
-	// **************** construction/initialization ****************************
-	
-	public EclipseLinkJarFileRef(PersistenceUnit parent, XmlJarFileRef xmlJarFileRef) {
-		super(parent, xmlJarFileRef);
-	}
-	
-	
-	// **************** overrides **********************************************
-	
-	@Override
-	protected IPath[] resolveDeploymentJarFilePath(IPath jarFilePath) {
-		IProject project = getJpaProject().getProject();
-		IPath rootPath = JptCorePlugin.getJarDeploymentRootPath(project);
-		
-		if (JptCorePlugin.projectHasWebFacet(project)) {
-			return new IPath[] {
-				// assumes form "../lib/other.jar"
-				rootPath.append(jarFilePath.removeFirstSegments(1))
-			};
-		}
-		else {
-			return new IPath[] {
-				rootPath.append(jarFilePath)
-			};
-		}
-	}
-}
diff --git a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/context/persistence/EclipseLinkPersistenceUnit.java b/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/context/persistence/EclipseLinkPersistenceUnit.java
deleted file mode 100644
index 12d0ed3..0000000
--- a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/context/persistence/EclipseLinkPersistenceUnit.java
+++ /dev/null
@@ -1,346 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008, 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- *******************************************************************************/
-package org.eclipse.jpt.eclipselink.core.internal.context.persistence;
-
-import java.util.ArrayList;
-import java.util.HashSet;
-import java.util.Iterator;
-import java.util.List;
-import java.util.ListIterator;
-import java.util.Set;
-import org.eclipse.jpt.core.context.persistence.MappingFileRef;
-import org.eclipse.jpt.core.context.persistence.Persistence;
-import org.eclipse.jpt.core.internal.context.persistence.AbstractPersistenceUnit;
-import org.eclipse.jpt.core.internal.context.persistence.ImpliedMappingFileRef;
-import org.eclipse.jpt.core.resource.persistence.XmlPersistenceUnit;
-import org.eclipse.jpt.eclipselink.core.EclipseLinkJpaProject;
-import org.eclipse.jpt.eclipselink.core.context.EclipseLinkConverter;
-import org.eclipse.jpt.eclipselink.core.internal.JptEclipseLinkCorePlugin;
-import org.eclipse.jpt.eclipselink.core.internal.context.persistence.caching.Caching;
-import org.eclipse.jpt.eclipselink.core.internal.context.persistence.caching.EclipseLinkCaching;
-import org.eclipse.jpt.eclipselink.core.internal.context.persistence.connection.Connection;
-import org.eclipse.jpt.eclipselink.core.internal.context.persistence.connection.EclipseLinkConnection;
-import org.eclipse.jpt.eclipselink.core.internal.context.persistence.customization.Customization;
-import org.eclipse.jpt.eclipselink.core.internal.context.persistence.customization.EclipseLinkCustomization;
-import org.eclipse.jpt.eclipselink.core.internal.context.persistence.general.EclipseLinkGeneralProperties;
-import org.eclipse.jpt.eclipselink.core.internal.context.persistence.general.GeneralProperties;
-import org.eclipse.jpt.eclipselink.core.internal.context.persistence.logging.EclipseLinkLogging;
-import org.eclipse.jpt.eclipselink.core.internal.context.persistence.logging.Logging;
-import org.eclipse.jpt.eclipselink.core.internal.context.persistence.options.EclipseLinkOptions;
-import org.eclipse.jpt.eclipselink.core.internal.context.persistence.options.Options;
-import org.eclipse.jpt.eclipselink.core.internal.context.persistence.schema.generation.EclipseLinkSchemaGeneration;
-import org.eclipse.jpt.eclipselink.core.internal.context.persistence.schema.generation.SchemaGeneration;
-import org.eclipse.jpt.utility.internal.CollectionTools;
-import org.eclipse.jpt.utility.internal.iterators.CloneListIterator;
-import org.eclipse.jpt.utility.internal.iterators.FilteringIterator;
-import org.eclipse.jpt.utility.internal.iterators.ReadOnlyCompositeListIterator;
-import org.eclipse.jpt.utility.internal.iterators.TransformationIterator;
-
-/**
- * EclipseLink persistence unit
- */
-public class EclipseLinkPersistenceUnit
-	extends AbstractPersistenceUnit
-{
-	protected MappingFileRef impliedEclipseLinkMappingFileRef;
-
-	private/*final*/ GeneralProperties generalProperties;
-	private Connection connection;
-	private Customization customization;
-	private Caching caching;
-	private Logging logging;
-	private Options options;
-	private SchemaGeneration schemaGeneration;
-
-	/* global converter definitions, defined elsewhere in model */
-	protected final List<EclipseLinkConverter> converters = new ArrayList<EclipseLinkConverter>();
-
-
-	public EclipseLinkPersistenceUnit(Persistence parent, XmlPersistenceUnit xmlPersistenceUnit) {
-		super(parent, xmlPersistenceUnit);
-	}
-
-	@Override
-	protected void initializeProperties() {
-		super.initializeProperties();
-
-		this.generalProperties = new EclipseLinkGeneralProperties(this);
-		this.connection = new EclipseLinkConnection(this);
-		this.customization = new EclipseLinkCustomization(this);
-		this.caching = new EclipseLinkCaching(this);
-		this.logging = new EclipseLinkLogging(this);
-		this.options = new EclipseLinkOptions(this);
-		this.schemaGeneration = new EclipseLinkSchemaGeneration(this);
-	}
-
-	@Override
-	protected void addNonUpdateAspectNamesTo(Set<String> nonUpdateAspectNames) {
-		super.addNonUpdateAspectNamesTo(nonUpdateAspectNames);
-		nonUpdateAspectNames.add(CONVERTERS_LIST);
-	}
-	
-	@Override
-	public void propertyValueChanged(String propertyName, String newValue) {
-		super.propertyValueChanged(propertyName, newValue);
-		this.generalProperties.propertyValueChanged(propertyName, newValue);
-		this.connection.propertyValueChanged(propertyName, newValue);
-		this.customization.propertyValueChanged(propertyName, newValue);
-		this.caching.propertyValueChanged(propertyName, newValue);
-		this.logging.propertyValueChanged(propertyName, newValue);
-		this.options.propertyValueChanged(propertyName, newValue);
-		this.schemaGeneration.propertyValueChanged(propertyName, newValue);
-	}
-	
-	@Override
-	public void propertyRemoved(String propertyName) {
-		super.propertyRemoved(propertyName);
-		this.generalProperties.propertyRemoved(propertyName);
-		this.connection.propertyRemoved(propertyName);
-		this.customization.propertyRemoved(propertyName);
-		this.caching.propertyRemoved(propertyName);
-		this.logging.propertyRemoved(propertyName);
-		this.options.propertyRemoved(propertyName);
-		this.schemaGeneration.propertyRemoved(propertyName);
-	}
-	
-	
-	// **************** mapping file refs **************************************
-
-	@Override
-	public ListIterator<MappingFileRef> mappingFileRefs() {
-		if (this.impliedEclipseLinkMappingFileRef == null) {
-			return super.mappingFileRefs();
-		}
-		return new ReadOnlyCompositeListIterator<MappingFileRef>(
-			super.mappingFileRefs(), this.impliedEclipseLinkMappingFileRef);
-	}
-
-	@Override
-	public int mappingFileRefsSize() {
-		if (this.impliedEclipseLinkMappingFileRef == null) {
-			return super.mappingFileRefsSize();
-		}
-		return 1 + super.mappingFileRefsSize();
-	}
-
-
-	// **************** implied eclipselink mapping file ref *******************
-
-	/**
-	 * String constant associated with changes to the implied eclipselink mapping file ref
-	 */
-	public final static String IMPLIED_ECLIPSELINK_MAPPING_FILE_REF_PROPERTY = "impliedEclipseLinkMappingFileRef"; //$NON-NLS-1$
-
-
-	public MappingFileRef getImpliedEclipseLinkMappingFileRef() {
-		return this.impliedEclipseLinkMappingFileRef;
-	}
-
-	protected MappingFileRef setImpliedEclipseLinkMappingFileRef() {
-		if (this.impliedEclipseLinkMappingFileRef != null) {
-			throw new IllegalStateException("The implied eclipselink mapping file ref is already set."); //$NON-NLS-1$
-		}
-		MappingFileRef mappingFileRef = buildEclipseLinkImpliedMappingFileRef();
-		this.impliedEclipseLinkMappingFileRef = mappingFileRef;
-		firePropertyChanged(IMPLIED_ECLIPSELINK_MAPPING_FILE_REF_PROPERTY, null, mappingFileRef);
-		return mappingFileRef;
-	}
-
-	protected void unsetImpliedEclipseLinkMappingFileRef() {
-		if (this.impliedEclipseLinkMappingFileRef == null) {
-			throw new IllegalStateException("The implied eclipselink mapping file ref is already unset."); //$NON-NLS-1$
-		}
-		MappingFileRef mappingFileRef = this.impliedEclipseLinkMappingFileRef;
-		this.impliedEclipseLinkMappingFileRef.dispose();
-		this.impliedEclipseLinkMappingFileRef = null;
-		firePropertyChanged(IMPLIED_ECLIPSELINK_MAPPING_FILE_REF_PROPERTY, mappingFileRef, null);
-	}
-
-
-	// **************** properties *********************************************
-
-	public GeneralProperties getGeneralProperties() {
-		return this.generalProperties;
-	}
-
-	public Connection getConnection() {
-		return this.connection;
-	}
-
-	public Customization getCustomization() {
-		return this.customization;
-	}
-
-	public Caching getCaching() {
-		return this.caching;
-	}
-
-	public Logging getLogging() {
-		return this.logging;
-	}
-
-	public Options getOptions() {
-		return this.options;
-	}
-
-	public SchemaGeneration getSchemaGeneration() {
-		return this.schemaGeneration;
-	}
-
-
-	// **************** converters *********************************************
-
-	/**
-	 * Identifier for changes to the list of global converter definitions.
-	 * Note that there are no granular changes to this list.  There is only
-	 * notification that the entire list has changed.
-	 */
-	public static final String CONVERTERS_LIST = "converters"; //$NON-NLS-1$
-
-	/**
-	 * Add the converter definition (defined elsewhere) to the list of converters
-	 * defined within this persistence unit.
-	 * Note that this should only be called during the process of updating the
-	 * local converter definition.
-	 * No change notification accompanies this action specifically.
-	 */
-	public void addConverter(EclipseLinkConverter converter) {
-		this.converters.add(converter);
-	}
-
-	/**
-	 * Return an iterator on all converters defined within this persistence unit,
-	 * included duplicately named converters definitions.
-	 */
-	public ListIterator<EclipseLinkConverter> allConverters() {
-		return new CloneListIterator<EclipseLinkConverter>(this.converters);
-	}
-
-	public int convertersSize() {
-		return this.converters.size();
-	}
-
-	/**
-	 * Return an array of the names of the converters defined in the persistence
-	 * unit, with duplicates removed.
-	 */
-	public String[] uniqueConverterNames() {
-		HashSet<String> names = CollectionTools.set(this.allNonNullConverterNames());
-		return names.toArray(new String[names.size()]);
-	}
-
-	protected Iterator<String> allNonNullConverterNames() {
-		return new FilteringIterator<String, String>(this.allConverterNames()) {
-			@Override
-			protected boolean accept(String converterName) {
-				return converterName != null;
-			}
-		};
-	}
-
-	protected Iterator<String> allConverterNames() {
-		return new TransformationIterator<EclipseLinkConverter, String>(this.allConverters()) {
-			@Override
-			protected String transform(EclipseLinkConverter converter) {
-				return converter.getName();
-			}
-		};
-	}
-
-
-	// **************** updating ***********************************************
-
-	@Override
-	public void update(XmlPersistenceUnit persistenceUnit) {
-		this.converters.clear();
-		super.update(persistenceUnit);
-		convertersUpdated();
-	}
-
-	@Override
-	public void postUpdate() {
-		super.postUpdate();
-		if (this.impliedEclipseLinkMappingFileRef != null) {
-			this.impliedEclipseLinkMappingFileRef.postUpdate();
-		}
-	}
-
-	@Override
-	protected void initializeMappingFileRefs() {
-		super.initializeMappingFileRefs();
-
-		// use implied mapping file if 
-		// a) properties does not exclude it
-		// b) it isn't otherwise specified
-		// c) the file actually exists
-		if (! impliedEclipseLinkMappingFileIsExcluded()
-				&& ! impliedEclipseLinkMappingFileIsSpecified()
-				&& impliedEclipseLinkMappingFileExists()) {
-
-			this.impliedEclipseLinkMappingFileRef = buildEclipseLinkImpliedMappingFileRef();
-		}
-	}
-
-	private ImpliedMappingFileRef buildEclipseLinkImpliedMappingFileRef() {
-		return new ImpliedMappingFileRef(this, JptEclipseLinkCorePlugin.DEFAULT_ECLIPSELINK_ORM_XML_FILE_PATH);
-	}
-
-	@Override
-	protected void updateMappingFileRefs() {
-		super.updateMappingFileRefs();
-
-		// use implied mapping file if 
-		// a) properties does not exclude it
-		// b) it isn't otherwise specified
-		// c) the file actually exists
-		if (! impliedEclipseLinkMappingFileIsExcluded()
-				&& ! impliedEclipseLinkMappingFileIsSpecified()
-				&& impliedEclipseLinkMappingFileExists()) {
-
-			if (this.impliedEclipseLinkMappingFileRef == null) {
-				setImpliedEclipseLinkMappingFileRef();
-			}
-			getImpliedEclipseLinkMappingFileRef().update(null);
-		}
-		else if (this.impliedEclipseLinkMappingFileRef != null) {
-			unsetImpliedEclipseLinkMappingFileRef();
-		}
-	}
-
-	protected boolean impliedEclipseLinkMappingFileIsExcluded() {
-		return getGeneralProperties().getExcludeEclipselinkOrm() == Boolean.TRUE;
-	}
-
-	protected boolean impliedEclipseLinkMappingFileIsSpecified() {
-		String impliedMappingFile = JptEclipseLinkCorePlugin.DEFAULT_ECLIPSELINK_ORM_XML_FILE_PATH;
-		for (Iterator<MappingFileRef> stream = specifiedMappingFileRefs(); stream.hasNext(); ) {
-			if (impliedMappingFile.equals(stream.next().getFileName())) {
-				return true;
-			}
-		}
-		return false;
-	}
-
-	@Override
-	public EclipseLinkJpaProject getJpaProject() {
-		return (EclipseLinkJpaProject) super.getJpaProject();
-	}
-	
-	protected boolean impliedEclipseLinkMappingFileExists() {
-		return getJpaProject().getDefaultEclipseLinkOrmXmlResource() != null;
-	}
-
-	// This is called after the persistence unit has been updated to ensure
-	// we catch all added converters
-	protected void convertersUpdated() {
-		fireListChanged(CONVERTERS_LIST);
-	}
-
-}
diff --git a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/context/persistence/EclipseLinkPersistenceUnitProperties.java b/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/context/persistence/EclipseLinkPersistenceUnitProperties.java
deleted file mode 100644
index ad8a421..0000000
--- a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/context/persistence/EclipseLinkPersistenceUnitProperties.java
+++ /dev/null
@@ -1,411 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008, 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- *******************************************************************************/
-package org.eclipse.jpt.eclipselink.core.internal.context.persistence;
-
-import java.util.HashMap;
-import java.util.Locale;
-import java.util.Map;
-import java.util.Set;
-import org.eclipse.jpt.core.JpaProject;
-import org.eclipse.jpt.core.context.persistence.PersistenceUnit;
-import org.eclipse.jpt.utility.internal.ClassTools;
-import org.eclipse.jpt.utility.internal.CollectionTools;
-import org.eclipse.jpt.utility.internal.model.AbstractModel;
-
-/**
- * EclipseLinkPersistenceUnitProperties
- * 
- * Listens to the propertyListAdapter
- */
-public abstract class EclipseLinkPersistenceUnitProperties extends AbstractModel 
-				implements PersistenceUnitProperties
-{
-	private PersistenceUnit persistenceUnit;
-
-	// key = EclipseLink property key; value = property id
-	private Map<String, String> propertyNames;
-
-	private static final long serialVersionUID = 1L;
-	
-	// ********** constructors / initialization **********
-	protected EclipseLinkPersistenceUnitProperties(PersistenceUnit parent) {
-		super();
-		this.initialize(parent);
-	}
-
-	protected void initialize(PersistenceUnit parent) {
-		this.persistenceUnit = parent;
-		
-		this.initializePropertyNames();
-		this.initializeProperties();
-	}
-
-	protected void initializePropertyNames() {
-		this.propertyNames = new HashMap<String, String>();
-		this.addPropertyNames(this.propertyNames);
-	}
-
-	/**
-	 * Initializes properties with values from the persistence unit.
-	 */
-	protected abstract void initializeProperties();
-
-	// ********** behavior **********
-	public PersistenceUnit getPersistenceUnit() {
-		return this.persistenceUnit;
-	}
-	
-	public JpaProject getJpaProject() {
-		return this.persistenceUnit.getJpaProject();
-	}
-
-	private Map<String, String> propertyNames() {
-		return this.propertyNames;
-	}
-
-	/**
-	 * Adds property names key/value pairs, used by the methods: itemIsProperty
-	 * and propertyIdFor.
-	 * 
-	 * key = EclipseLink property key; value = property id
-	 */
-	protected abstract void addPropertyNames(Map<String, String> pNames);
-
-	/**
-	 * Method used for identifying the given property.
-	 */
-	public boolean itemIsProperty(PersistenceUnit.Property item) {
-		if (item == null) {
-			throw new NullPointerException();
-		}
-		return this.propertyNames().keySet().contains(item.getName());
-	}
-
-	/**
-	 * Returns the property name used for change notification of the given
-	 * property.
-	 */
-	public String propertyIdFor(PersistenceUnit.Property property) {
-		String propertyId = this.propertyNames().get(property.getName());
-		if (propertyId == null) {
-			throw new IllegalArgumentException("Illegal property: " + property); //$NON-NLS-1$
-		}
-		return propertyId;
-	}
-
-	protected String eclipseLinkKeyFor(String propertyId) {
-		for (String eclipseLinkKey : this.propertyNames().keySet()) {
-			if (this.propertyNames().get(eclipseLinkKey).equals(propertyId)) {
-				return eclipseLinkKey;
-			}
-		}
-		throw new IllegalArgumentException("Illegal property ID: " + propertyId); //$NON-NLS-1$
-	}
-
-	// ****** get/set String convenience methods *******
-	/**
-	 * Returns the String value of the given Property from the PersistenceXml.
-	 */
-	// TOREVIEW - handle incorrect String in persistence.xml
-	protected String getStringValue(String elKey) {
-		PersistenceUnit.Property p = this.getPersistenceUnit().getProperty(elKey);
-		return (p == null) ? null : p.getValue();
-	}
-
-	protected String getStringValue(String key, String keySuffix) {
-		return this.getStringValue((keySuffix == null) ? key : key + keySuffix);
-	}
-
-	/**
-	 * Put the given String value into the PersistenceXml.
-	 * @param key -
-	 *            EclipseLink Key
-	 * @param newValue
-	 *            value to be associated with the key
-	 */
-	protected void putStringValue(String key, String newValue) {
-		this.putStringValue(key, null, newValue, false);
-	}
-
-	/**
-	 * Put the given String value into the PersistenceXml.
-	 * @param key
-	 *            EclipseLink Key
-	 * @param newValue
-	 *            value to be associated with the key
-	 * @param allowDuplicate
-	 */
-	protected void putStringValue(String key, String newValue, boolean allowDuplicate) {
-		this.putStringValue(key, null, newValue, allowDuplicate);
-	}
-
-	/**
-	 * Put the given String value into the PersistenceXml.
-	 * @param key
-	 *            EclipseLink Key
-	 * @param keySuffix
-	 *            e.g. entity name
-	 * @param newValue
-	 *            value to be associated with the key
-	 * @param allowDuplicate
-	 */
-	protected void putStringValue(String key, String keySuffix, String newValue, boolean allowDuplicate) {
-		String elKey = (keySuffix == null) ? key : key + keySuffix;
-		this.getPersistenceUnit().setProperty(elKey, newValue, allowDuplicate);
-	}
-
-	// ****** Integer convenience methods *******
-	/**
-	 * Returns the Integer value of the given Property from the PersistenceXml.
-	 */
-	// TOREVIEW - handle incorrect eclipseLinkValue String in
-	// persistence.xml
-	protected Integer getIntegerValue(String elKey) {
-		PersistenceUnit.Property p = this.getPersistenceUnit().getProperty(elKey);
-		return (p == null) ? null : getIntegerValueOf(p.getValue());
-	}
-
-	protected Integer getIntegerValue(String key, String keySuffix) {
-		return this.getIntegerValue((keySuffix == null) ? key : key + keySuffix);
-	}
-
-	/**
-	 * Put the given Integer value into the PersistenceXml.
-	 * @param key -
-	 *            EclipseLink Key
-	 * @param newValue
-	 *            value to be associated with the key
-	 */
-	protected void putIntegerValue(String key, Integer newValue) {
-		this.putIntegerValue(key, null, newValue, false);
-	}
-
-	/**
-	 * Put the given Integer value into the PersistenceXml.
-	 * @param key
-	 *            EclipseLink Key
-	 * @param newValue
-	 *            value to be associated with the key
-	 * @param allowDuplicate
-	 */
-	protected void putIntegerValue(String key, Integer newValue, boolean allowDuplicate) {
-		this.putIntegerValue(key, null, newValue, allowDuplicate);
-	}
-
-	/**
-	 * Put the given Integer value into the PersistenceXml.
-	 * @param key
-	 *            EclipseLink Key
-	 * @param keySuffix
-	 *            e.g. entity name
-	 * @param newValue
-	 *            value to be associated with the key
-	 * @param allowDuplicate
-	 */
-	protected void putIntegerValue(String key, String keySuffix, Integer newValue, boolean allowDuplicate) {
-		String elKey = (keySuffix == null) ? key : key + keySuffix;
-		String elValue = (newValue == null) ? null : newValue.toString();
-		this.getPersistenceUnit().setProperty(elKey, elValue, allowDuplicate);
-	}
-
-	// ****** Boolean convenience methods ******* 
-	/**
-	 * Returns the Boolean value of the given Property from the PersistenceXml.
-	 */
-	// TOREVIEW - handle incorrect eclipseLinkValue String in
-	// persistence.xml
-	protected Boolean getBooleanValue(String elKey) {
-		PersistenceUnit.Property p = this.getPersistenceUnit().getProperty(elKey);
-		return (p == null) ? null : getBooleanValueOf(p.getValue());
-	}
-
-	protected Boolean getBooleanValue(String key, String keySuffix) {
-		return this.getBooleanValue((keySuffix == null) ? key : key + keySuffix);
-	}
-
-	/**
-	 * Put the given Boolean value into the PersistenceXml.
-	 * @param key
-	 *            EclipseLink Key
-	 * @param newValue
-	 *            value to be associated with the key
-	 */
-	protected void putBooleanValue(String key, Boolean newValue) {
-		this.putBooleanValue(key, null, newValue, false);
-	}
-
-	/**
-	 * Put the given Boolean value into the PersistenceXml.
-	 * @param key
-	 *            EclipseLink Key
-	 * @param newValue
-	 *            value to be associated with the key
-	 * @param allowDuplicate
-	 */
-	protected void putBooleanValue(String key, Boolean newValue, boolean allowDuplicate) {
-		this.putBooleanValue(key, null, newValue, allowDuplicate);
-	}
-
-	/**
-	 * Put the given Boolean value into the PersistenceXml.
-	 * @param key
-	 *            EclipseLink Key
-	 * @param keySuffix
-	 *            e.g. entity name
-	 * @param newValue
-	 *            value to be associated with the key
-	 * @param allowDuplicate
-	 */
-	protected void putBooleanValue(String key, String keySuffix, Boolean newValue, boolean allowDuplicate) {
-		String elKey = (keySuffix == null) ? key : key + keySuffix;
-		String elValue = (newValue == null) ? null : newValue.toString();
-		this.getPersistenceUnit().setProperty(elKey, elValue, allowDuplicate);
-	}
-
-	// ****** Enum convenience methods ******* 
-	/**
-	 * Returns the Enum value of the given Property from the PersistenceXml.
-	 */
-	// TOREVIEW - handle incorrect eclipseLinkValue String in persistence.xml
-	protected <T extends Enum<T>> T getEnumValue(String elKey, T[] enumValues) {
-		PersistenceUnit.Property p = this.getPersistenceUnit().getProperty(elKey);
-		return (p == null) ? null : getEnumValueOf(p.getValue(), enumValues);
-	}
-
-	protected <T extends Enum<T>> T getEnumValue(String key, String keySuffix, T[] enumValues) {
-		return this.getEnumValue((keySuffix == null) ? key : key + keySuffix, enumValues);
-	}
-
-	/**
-	 * Put the given Enum value into the PersistenceXml.
-	 * 
-	 * @param key -
-	 *            EclipseLink Key
-	 */
-	protected <T extends Enum<T>> void putEnumValue(String key, T newValue) {
-		this.putEnumValue(key, null, newValue, false);
-	}
-
-	protected <T extends Enum<T>> void putEnumValue(String key, T newValue, boolean allowDuplicate) {
-		this.putEnumValue(key, null, newValue, allowDuplicate);
-	}
-
-	protected <T extends Enum<T>> void putEnumValue(String key, String keySuffix, T newValue, boolean allowDuplicate) {
-		String elKey = (keySuffix == null) ? key : key + keySuffix;
-		this.getPersistenceUnit().setProperty(elKey, getEclipseLinkStringValueOf(newValue), allowDuplicate);
-	}
-
-	// ******** Convenience methods ********
-	/**
-	 * Put into persistenceUnit properties.
-	 * 
-	 * @param key -
-	 *            property name
-	 * @param value -
-	 *            property value
-	 */
-	protected void putProperty(String key, Object value) {
-		putProperty(key, value, false);
-	}
-	
-	@SuppressWarnings("unchecked")
-	protected void putProperty(String key, Object value, boolean allowDuplicates) {
-		String elKey = this.eclipseLinkKeyFor(key);
-		if ((value != null) && value.getClass().isEnum()) {
-			this.putEnumValue(elKey, (Enum) value, allowDuplicates);
-		} else {
-			this.putEclipseLinkProperty(elKey, value, allowDuplicates);
-		}
-	}
-
-	private void putEclipseLinkProperty(String key, Object value, boolean allowDuplicates) {
-		String string = (value == null) ? null : value.toString();
-		this.getPersistenceUnit().setProperty(key, string, allowDuplicates);
-	}
-
-	/**
-	 * Removes a persistenceUnit property.
-	 * 
-	 * @param key -
-	 *            property name
-	 * @param value -
-	 *            property value
-	 */
-	protected void removeProperty(String key, String value) {
-		String elKey = this.eclipseLinkKeyFor(key);
-		
-		this.getPersistenceUnit().removeProperty(elKey, value);
-	}
-
-	protected Set<PersistenceUnit.Property> getPropertiesSetWithPrefix(String keyPrefix) {
-		return CollectionTools.set(this.getPersistenceUnit().propertiesWithNamePrefix(keyPrefix));
-	}
-
-	/**
-	 * Extracts the entityName of the specified property name. If the property name
-	 * has no suffix, return an empty string.
-	 */
-	protected String getEntityName(PersistenceUnit.Property property) {
-		return getEntityName(property.getName());
-	}
-
-	/**
-	 * Extracts the entityName of the specified string. If the string
-	 * has no suffix, return an empty string.
-	 */
-	protected String getEntityName(String propertyName) {
-		int index = propertyName.lastIndexOf('.');
-		if (index == -1) {
-			return ""; //$NON-NLS-1$
-		}
-		return propertyName.substring(index + 1);
-	}
-
-	// ****** Static methods ******* 
-	/**
-	 * Returns the EclipseLink string value for the given property value.
-	 */
-	public static String getEclipseLinkStringValueOf(Object value) {
-		if (value == null) {
-			return null;
-		}
-		if (value.getClass().isEnum()) {
-			return (String) ClassTools.staticFieldValue(value.getClass(), value.toString().toUpperCase(Locale.ENGLISH));
-		}
-		return value.toString();
-	}
-
-	/**
-	 * Returns the enum constant of the specified enum type with the specified
-	 * EclipseLink value string.
-	 */
-	public static <T extends Enum<T>> T getEnumValueOf(String elStringValue, T[] enumValues) {
-		for (T enumValue : enumValues) {
-			if (getEclipseLinkStringValueOf(enumValue).equals(elStringValue)) {
-				return enumValue;
-			}
-		}
-		return null;
-	}
-
-	public static Boolean getBooleanValueOf(String elStringValue) {
-		if (elStringValue == null) {
-			return null;
-		}
-		return Boolean.valueOf(elStringValue);
-	}
-
-	public static Integer getIntegerValueOf(String elStringValue) {
-		if (elStringValue == null) {
-			return null;
-		}
-		return Integer.valueOf(elStringValue);
-	}
-}
diff --git a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/context/persistence/PersistenceUnitProperties.java b/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/context/persistence/PersistenceUnitProperties.java
deleted file mode 100644
index d13ad8a..0000000
--- a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/context/persistence/PersistenceUnitProperties.java
+++ /dev/null
@@ -1,52 +0,0 @@
-/*******************************************************************************
-* Copyright (c) 2007, 2009 Oracle. All rights reserved.
-* This program and the accompanying materials are made available under the
-* terms of the Eclipse Public License v1.0, which accompanies this distribution
-* and is available at http://www.eclipse.org/legal/epl-v10.html.
-* 
-* Contributors:
-*     Oracle - initial API and implementation
-*******************************************************************************/
-package org.eclipse.jpt.eclipselink.core.internal.context.persistence;
-
-import org.eclipse.jpt.core.JpaProject;
-import org.eclipse.jpt.core.context.persistence.PersistenceUnit;
-import org.eclipse.jpt.utility.model.Model;
-
-/**
- * PersistenceUnitProperties
- */
-public interface PersistenceUnitProperties extends Model
-{
-	/**
-	 * Method used for identifying the given property.
-	 */
-	boolean itemIsProperty(PersistenceUnit.Property item);
-
-	/**
-	 * Returns the property name used for change notification of the given property.
-	 */
-	String propertyIdFor(PersistenceUnit.Property property);
-	
-	/**
-	 * Return the PersistenceUnit of this Properties.
-	 */
-	PersistenceUnit getPersistenceUnit();
-	
-	/**
-	 * Return the JPA project the PersistenceUnit belongs to.
-	 */
-	JpaProject getJpaProject();
-	
-	/**
-	 * A Property with the given name had its value changed
-	 */
-	void propertyValueChanged(String propertyName, String newValue);
-	
-	/**
-	 * A Property with the given name was removed
-	 */
-	void propertyRemoved(String propertyName);
-
-
-}
\ No newline at end of file
diff --git a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/context/persistence/caching/CacheProperties.java b/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/context/persistence/caching/CacheProperties.java
deleted file mode 100644
index e801f0b..0000000
--- a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/context/persistence/caching/CacheProperties.java
+++ /dev/null
@@ -1,115 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008, 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- *******************************************************************************/
-package org.eclipse.jpt.eclipselink.core.internal.context.persistence.caching;
-
-import java.io.Serializable;
-import org.eclipse.jpt.utility.internal.StringTools;
-
-/**
- * CacheProperties
- */
-public class CacheProperties implements Cloneable, Serializable
-{
-	private String entityName;
-
-	// ********** EclipseLink properties **********
-	private CacheType type;
-	private Integer size;
-	private Boolean isShared;
-
-	private static final long serialVersionUID = 1L;
-
-	// ********** constructors **********
-	public CacheProperties(String entityName) {
-		this.entityName = entityName;
-	}
-
-	// ********** behaviors **********
-	@Override
-	public boolean equals(Object o) {
-		if(o == null) {
-			return false;
-		}
-		CacheProperties cache = (CacheProperties) o;
-		return (
-			(this.type == null ?
-				cache.type == null : this.type.equals(cache.type)) &&
-			(this.isShared == null ?
-				cache.isShared == null : this.isShared.equals(cache.isShared)) &&
-			(this.size == null ?
-				cache.size == null : this.size.equals(cache.size)));
-	}
-	
-	 @Override
-	 public CacheProperties clone() {
-		 try {
-			 return (CacheProperties)super.clone();
-		 }
-		 catch (CloneNotSupportedException ex) {
-			 throw new InternalError();
-		 }
-	 }
-
-	public boolean isEmpty() {
-		return (this.type == null) &&
-					(this.size == null) &&
-					(this.isShared == null);
-	}
-
-	// ********** getter/setter **********
-	public String getEntityName() {
-		return entityName;
-	}
-
-	public CacheType getType() {
-		return this.type;
-	}
-
-	public void setType(CacheType cacheType) {
-		this.type = cacheType;
-	}
-
-	public Integer getSize() {
-		return this.size;
-	}
-
-	public void setSize(Integer cacheSize) {
-		this.size = cacheSize;
-	}
-
-	public Boolean isShared() {
-		return this.isShared;
-	}
-
-	public void setShared(Boolean isShared) {
-		this.isShared = isShared;
-	}
-
-	@Override
-	public String toString() {
-		StringBuilder sb = new StringBuilder();
-		StringTools.buildSimpleToStringOn(this, sb);
-		sb.append(" (");
-		this.toString(sb);
-		sb.append(')');
-		return sb.toString();
-	}
-
-	public void toString(StringBuilder sb) {
-		sb.append("type: ");
-		sb.append(this.type);
-		sb.append(", size: ");
-		sb.append(this.size);
-		sb.append(", isShared: ");
-		sb.append(this.isShared);
-		sb.append(", entityName: ");
-		sb.append(this.entityName);
-	}
-}
\ No newline at end of file
diff --git a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/context/persistence/caching/CacheType.java b/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/context/persistence/caching/CacheType.java
deleted file mode 100644
index 0c66da4..0000000
--- a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/context/persistence/caching/CacheType.java
+++ /dev/null
@@ -1,30 +0,0 @@
-/*******************************************************************************
-* Copyright (c) 2008 Oracle. All rights reserved.
-* This program and the accompanying materials are made available under the
-* terms of the Eclipse Public License v1.0, which accompanies this distribution
-* and is available at http://www.eclipse.org/legal/epl-v10.html.
-* 
-* Contributors:
-*     Oracle - initial API and implementation
-*******************************************************************************/
-package org.eclipse.jpt.eclipselink.core.internal.context.persistence.caching;
-
-/**
- *  CacheType
- */
-public enum CacheType {
-	soft_weak, 
-	hard_weak, 
-	weak,
-	soft,
-	full,
-	none; 
-
-	// EclipseLink value string
-	public static final String FULL = "Full";
-	public static final String HARD_WEAK = "HardWeak";
-	public static final String NONE = "NONE";
-	public static final String SOFT = "Soft";
-	public static final String SOFT_WEAK = "SoftWeak";
-	public static final String WEAK = "Weak";
-}
diff --git a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/context/persistence/caching/Caching.java b/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/context/persistence/caching/Caching.java
deleted file mode 100644
index 820a530..0000000
--- a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/context/persistence/caching/Caching.java
+++ /dev/null
@@ -1,85 +0,0 @@
-/*******************************************************************************
-* Copyright (c) 2008 Oracle. All rights reserved.
-* This program and the accompanying materials are made available under the
-* terms of the Eclipse Public License v1.0, which accompanies this distribution
-* and is available at http://www.eclipse.org/legal/epl-v10.html.
-* 
-* Contributors:
-*     Oracle - initial API and implementation
-*******************************************************************************/
-package org.eclipse.jpt.eclipselink.core.internal.context.persistence.caching;
-
-import java.util.ListIterator;
-import org.eclipse.jpt.eclipselink.core.internal.context.persistence.PersistenceUnitProperties;
-
-/**
- *  Caching
- */
-public interface Caching extends PersistenceUnitProperties
-{
-	CacheType getDefaultCacheTypeDefault();
-	CacheType getCacheTypeDefault();
-	void setCacheTypeDefault(CacheType cacheTypeDefault);
-		static final String CACHE_TYPE_DEFAULT_PROPERTY = "cacheTypeDefault"; //$NON-NLS-1$
-		// EclipseLink key string
-		static final String ECLIPSELINK_CACHE_TYPE_DEFAULT = "eclipselink.cache.type.default"; //$NON-NLS-1$
-		static final CacheType DEFAULT_CACHE_TYPE_DEFAULT = CacheType.soft_weak;
-
-	Integer getDefaultCacheSizeDefault();
-	Integer getCacheSizeDefault();
-	void setCacheSizeDefault(Integer cacheSizeDefault);
-		static final String CACHE_SIZE_DEFAULT_PROPERTY = "cacheSizeDefault"; //$NON-NLS-1$
-		// EclipseLink key string
-		static final String ECLIPSELINK_CACHE_SIZE_DEFAULT = "eclipselink.cache.size.default"; //$NON-NLS-1$
-		static final Integer DEFAULT_CACHE_SIZE_DEFAULT = Integer.valueOf(100);
-
-	Boolean getDefaultSharedCacheDefault();
-	Boolean getSharedCacheDefault();
-	void setSharedCacheDefault(Boolean sharedCacheDefault);
-		static final String SHARED_CACHE_DEFAULT_PROPERTY = "sharedCacheDefault"; //$NON-NLS-1$
-		// EclipseLink key string
-		static final String ECLIPSELINK_CACHE_SHARED_DEFAULT = "eclipselink.cache.shared.default"; //$NON-NLS-1$
-		static final Boolean DEFAULT_SHARED_CACHE_DEFAULT = Boolean.TRUE;
-
-
-	CacheType getDefaultCacheType();
-	CacheType getCacheType(String entityName);
-	void setCacheType(CacheType cacheType, String entityName);
-		static final String CACHE_TYPE_PROPERTY = "cacheType"; //$NON-NLS-1$
-		// EclipseLink key string
-		static final String ECLIPSELINK_CACHE_TYPE = "eclipselink.cache.type."; //$NON-NLS-1$
-		static final CacheType DEFAULT_CACHE_TYPE = CacheType.soft_weak;
-
-	Integer getDefaultCacheSize();
-	Integer getCacheSize(String entityName);
-	void setCacheSize(Integer cacheSize, String entityName);
-		static final String CACHE_SIZE_PROPERTY = "cacheSize"; //$NON-NLS-1$
-		// EclipseLink key string
-		static final String ECLIPSELINK_CACHE_SIZE = "eclipselink.cache.size."; //$NON-NLS-1$
-		static final Integer DEFAULT_CACHE_SIZE = Integer.valueOf(100);
-
-	Boolean getDefaultSharedCache();
-	Boolean getSharedCache(String entityName);
-	void setSharedCache(Boolean sharedCache, String entityName);
-		static final String SHARED_CACHE_PROPERTY = "sharedCache"; //$NON-NLS-1$
-		// EclipseLink key string
-		static final String ECLIPSELINK_SHARED_CACHE = "eclipselink.cache.shared."; //$NON-NLS-1$
-		static final Boolean DEFAULT_SHARED_CACHE = Boolean.TRUE;
-
-	FlushClearCache getDefaultFlushClearCache();
-	FlushClearCache getFlushClearCache();
-	void setFlushClearCache(FlushClearCache newFlushClearCache);
-		static final String FLUSH_CLEAR_CACHE_PROPERTY = "flushClearCache"; //$NON-NLS-1$
-		// EclipseLink key string
-		static final String ECLIPSELINK_FLUSH_CLEAR_CACHE = "eclipselink.flush-clear.cache"; //$NON-NLS-1$
-		static final FlushClearCache DEFAULT_FLUSH_CLEAR_CACHE = FlushClearCache.drop_invalidate;
-
-
-	ListIterator<String> entities();
-	int entitiesSize();
-	boolean entityExists(String entity);
-	String addEntity(String entity);
-	void removeEntity(String entity);
-		String ENTITIES_LIST_PROPERTY = "entities"; //$NON-NLS-1$
-
-}
diff --git a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/context/persistence/caching/EclipseLinkCaching.java b/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/context/persistence/caching/EclipseLinkCaching.java
deleted file mode 100644
index c5b7ce8..0000000
--- a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/context/persistence/caching/EclipseLinkCaching.java
+++ /dev/null
@@ -1,521 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008, 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- *******************************************************************************/
-package org.eclipse.jpt.eclipselink.core.internal.context.persistence.caching;
-
-import java.util.HashMap;
-import java.util.ListIterator;
-import java.util.Map;
-import java.util.Set;
-import org.eclipse.jpt.core.context.persistence.PersistenceUnit;
-import org.eclipse.jpt.eclipselink.core.internal.context.persistence.EclipseLinkPersistenceUnitProperties;
-import org.eclipse.jpt.utility.internal.CollectionTools;
-
-/**
- * EclipseLinkCaching encapsulates EclipseLink Caching properties.
- */
-public class EclipseLinkCaching extends EclipseLinkPersistenceUnitProperties
-	implements Caching
-{
-	// ********** EclipseLink properties **********
-	private CacheType cacheTypeDefault;
-	private Integer cacheSizeDefault;
-	private Boolean sharedCacheDefault;
-	private FlushClearCache flushClearCache;
-
-	// key = Entity name ; value = Cache properties
-	private Map<String, CacheProperties> entitiesCacheProperties;
-	
-	// ********** constructors **********
-	public EclipseLinkCaching(PersistenceUnit parent) {
-		super(parent);
-	}
-
-	// ********** initialization **********
-	/**
-	 * Initializes properties with values from the persistence unit.
-	 */
-	@Override
-	protected void initializeProperties() {
-		// TOREVIEW - handle incorrect String in persistence.xml
-		this.entitiesCacheProperties = 
-			new HashMap<String, CacheProperties>();
-		this.cacheTypeDefault = 
-			this.getEnumValue(ECLIPSELINK_CACHE_TYPE_DEFAULT, CacheType.values());
-		this.cacheSizeDefault = 
-			this.getIntegerValue(ECLIPSELINK_CACHE_SIZE_DEFAULT);
-		this.sharedCacheDefault = 
-			this.getBooleanValue(ECLIPSELINK_CACHE_SHARED_DEFAULT);
-		this.flushClearCache = 
-			this.getEnumValue(ECLIPSELINK_FLUSH_CLEAR_CACHE, FlushClearCache.values());
-		
-		Set<PersistenceUnit.Property> cacheTypeProperties = 
-			this.getPropertiesSetWithPrefix(ECLIPSELINK_CACHE_TYPE);
-		Set<PersistenceUnit.Property> cacheSizeProperties = 
-			this.getPropertiesSetWithPrefix(ECLIPSELINK_CACHE_SIZE);
-		Set<PersistenceUnit.Property> sharedCacheProperties = 
-			this.getPropertiesSetWithPrefix(ECLIPSELINK_SHARED_CACHE);
-		
-		this.initializeEntitiesCacheType(cacheTypeProperties);
-		this.initializeEntitiesCacheSize(cacheSizeProperties);
-		this.initializeEntitiesSharedCache(sharedCacheProperties);
-	}
-
-	private void initializeEntitiesCacheType(Set<PersistenceUnit.Property> properties) {
-		for (PersistenceUnit.Property property : properties) {
-			String entityName = this.getEntityName(property);
-			this.setCacheType_(property.getValue(), entityName);
-		}
-	}
-
-	private void initializeEntitiesCacheSize(Set<PersistenceUnit.Property> properties) {
-		for (PersistenceUnit.Property property : properties) {
-			String entityName = this.getEntityName(property);
-			this.setCacheSize_(property.getValue(), entityName);
-		}
-	}
-
-	private void initializeEntitiesSharedCache(Set<PersistenceUnit.Property> properties) {
-		for (PersistenceUnit.Property property : properties) {
-			String entityName = this.getEntityName(property);
-			this.setSharedCache_(property.getValue(), entityName);
-		}
-	}
-
-	// ********** behavior **********
-	
-	public void propertyValueChanged(String propertyName, String newValue) {
-		if (propertyName.equals(ECLIPSELINK_CACHE_TYPE_DEFAULT)) {
-			this.cacheTypeDefaultChanged(newValue);
-		}
-		else if (propertyName.equals(ECLIPSELINK_CACHE_SIZE_DEFAULT)) {
-			this.cacheSizeDefaultChanged(newValue);
-		}
-		else if (propertyName.equals(ECLIPSELINK_CACHE_SHARED_DEFAULT)) {
-			this.sharedCacheDefaultChanged(newValue);
-		}
-		else if (propertyName.startsWith(ECLIPSELINK_CACHE_TYPE)) {
-			this.cacheTypeChanged(propertyName, newValue);
-		}
-		else if (propertyName.startsWith(ECLIPSELINK_CACHE_SIZE)) {
-			this.cacheSizeChanged(propertyName, newValue);
-		}
-		else if (propertyName.startsWith(ECLIPSELINK_SHARED_CACHE)) {
-			this.sharedCacheChanged(propertyName, newValue);
-		}
-		else if (propertyName.equals(ECLIPSELINK_FLUSH_CLEAR_CACHE)) {
-			this.flushClearCacheChanged(newValue);
-		}
-	}
-	
-	public void propertyRemoved(String propertyName) {
-		if (propertyName.equals(ECLIPSELINK_CACHE_TYPE_DEFAULT)) {
-			this.cacheTypeDefaultChanged(null);
-		}
-		else if (propertyName.equals(ECLIPSELINK_CACHE_SIZE_DEFAULT)) {
-			this.cacheSizeDefaultChanged(null);
-		}
-		else if (propertyName.equals(ECLIPSELINK_CACHE_SHARED_DEFAULT)) {
-			this.sharedCacheDefaultChanged(null);
-		}
-		else if (propertyName.startsWith(ECLIPSELINK_CACHE_TYPE)) {
-			this.cacheTypeChanged(propertyName, null);
-		}
-		else if (propertyName.startsWith(ECLIPSELINK_CACHE_SIZE)) {
-			this.cacheSizeChanged(propertyName, null);
-		}
-		else if (propertyName.startsWith(ECLIPSELINK_SHARED_CACHE)) {
-			this.sharedCacheChanged(propertyName, null);
-		}
-		else if (propertyName.equals(ECLIPSELINK_FLUSH_CLEAR_CACHE)) {
-			this.flushClearCacheChanged(null);
-		}
-	}
-	
-	/**
-	 * Adds property names key/value pairs, where: 
-	 * 		key = EclipseLink property key;
-	 * 		value = property id
-	 */
-	@Override
-	protected void addPropertyNames(Map<String, String> propertyNames) {
-		propertyNames.put(
-			ECLIPSELINK_CACHE_TYPE_DEFAULT,
-			CACHE_TYPE_DEFAULT_PROPERTY);
-		propertyNames.put(
-			ECLIPSELINK_CACHE_SIZE_DEFAULT,
-			CACHE_SIZE_DEFAULT_PROPERTY);
-		propertyNames.put(
-			ECLIPSELINK_CACHE_SHARED_DEFAULT,
-			SHARED_CACHE_DEFAULT_PROPERTY);
-		propertyNames.put(
-			ECLIPSELINK_FLUSH_CLEAR_CACHE,
-			FLUSH_CLEAR_CACHE_PROPERTY);
-		
-		// Don't need to initialize propertyNames for: 
-		// cacheType, sharedCache, cacheSize
-	}
-
-	/**
-	 * Method used for identifying the given property.
-	 */
-	@Override
-	public boolean itemIsProperty(PersistenceUnit.Property item) {
-		boolean isProperty = super.itemIsProperty(item);
-		
-		if ( ! isProperty && item.getName() != null) {
-				if (item.getName().startsWith(ECLIPSELINK_CACHE_TYPE) || 
-						item.getName().startsWith(ECLIPSELINK_CACHE_SIZE) || 
-						item.getName().startsWith(ECLIPSELINK_SHARED_CACHE)) {
-					return true;
-				}
-		}
-		return isProperty;
-	}
-
-	/**
-	 * Returns the property name used for change notification of the given
-	 * property.
-	 */
-	@Override
-	public String propertyIdFor(PersistenceUnit.Property property) {
-		try {
-			return super.propertyIdFor(property);
-		}
-		catch (IllegalArgumentException e) {
-			if (property.getName().startsWith(ECLIPSELINK_CACHE_TYPE)) {
-				return CACHE_TYPE_PROPERTY;
-			}
-			else if (property.getName().startsWith(ECLIPSELINK_CACHE_SIZE)) {
-				return CACHE_SIZE_PROPERTY;
-			}
-			else if (property.getName().startsWith(ECLIPSELINK_SHARED_CACHE)) {
-				return SHARED_CACHE_PROPERTY;
-			}
-		}
-		throw new IllegalArgumentException("Illegal property: " + property.toString());
-	}
-
-	// ********** CacheType **********
-	public CacheType getCacheType(String entityName) {
-		CacheProperties cache = this.cachePropertiesOf(entityName);
-		return (cache == null) ? null : cache.getType();
-	}
-
-	public void setCacheType(CacheType newCacheType, String entityName) {
-		CacheProperties old = this.setCacheType_(newCacheType, entityName);
-		this.putEnumValue(ECLIPSELINK_CACHE_TYPE, entityName, newCacheType, false);
-		this.firePropertyChanged(CACHE_TYPE_PROPERTY, old, this.cachePropertiesOf(entityName));
-	}
-
-	private void cacheTypeChanged(String propertyName, String stringValue) {
-		String entityName = this.getEntityName(propertyName);
-		CacheProperties old = this.setCacheType_(stringValue, entityName);
-		this.firePropertyChanged(CACHE_TYPE_PROPERTY, old, this.cachePropertiesOf(entityName));
-	}
-	
-	public CacheType getDefaultCacheType() {
-		return (this.cacheTypeDefault == null) ? DEFAULT_CACHE_TYPE : this.cacheTypeDefault;
-	}
-
-	// ********** CacheSize **********
-	public Integer getCacheSize(String entityName) {
-		CacheProperties cache = this.cachePropertiesOf(entityName);
-		return (cache == null) ? null : cache.getSize();
-	}
-
-	public void setCacheSize(Integer newCacheSize, String entityName) {
-		CacheProperties old = this.setCacheSize_(newCacheSize, entityName);
-		this.putIntegerValue(ECLIPSELINK_CACHE_SIZE + entityName, newCacheSize);
-		this.firePropertyChanged(CACHE_SIZE_PROPERTY, old, this.cachePropertiesOf(entityName));
-	}
-
-	private void cacheSizeChanged(String propertyName, String stringValue) {
-		String entityName = this.getEntityName(propertyName);
-		CacheProperties old = this.setCacheSize_(stringValue, entityName);
-		this.firePropertyChanged(CACHE_SIZE_PROPERTY, old, this.cachePropertiesOf(entityName));
-	}
-
-	public Integer getDefaultCacheSize() {
-		return (this.cacheSizeDefault == null) ? DEFAULT_CACHE_SIZE : this.cacheSizeDefault;
-	}
-
-	// ********** SharedCache **********
-	public Boolean getSharedCache(String entityName) {
-		CacheProperties cache = this.cachePropertiesOf(entityName);
-		return (cache == null) ? null : cache.isShared();
-	}
-
-	public void setSharedCache(Boolean newSharedCache, String entityName) {
-		CacheProperties old = this.setSharedCache_(newSharedCache, entityName);
-		this.putBooleanValue(ECLIPSELINK_SHARED_CACHE, entityName, newSharedCache, false);
-		this.firePropertyChanged(SHARED_CACHE_PROPERTY, old, this.cachePropertiesOf(entityName));
-	}
-
-	private void sharedCacheChanged(String propertyName, String stringValue) {
-		String entityName = this.getEntityName(propertyName);
-		CacheProperties old = this.setSharedCache_(stringValue, entityName);
-		this.firePropertyChanged(SHARED_CACHE_PROPERTY, old, this.cachePropertiesOf(entityName));
-	}
-
-	public Boolean getDefaultSharedCache() {
-		return (this.sharedCacheDefault == null) ? DEFAULT_SHARED_CACHE : this.sharedCacheDefault;
-	}
-
-	// ********** CacheTypeDefault **********
-	public CacheType getCacheTypeDefault() {
-		return this.cacheTypeDefault;
-	}
-
-	public void setCacheTypeDefault(CacheType newCacheTypeDefault) {
-		CacheType old = this.cacheTypeDefault;
-		this.cacheTypeDefault = newCacheTypeDefault;
-		this.putProperty(CACHE_TYPE_DEFAULT_PROPERTY, newCacheTypeDefault);
-		this.firePropertyChanged(CACHE_TYPE_DEFAULT_PROPERTY, old, newCacheTypeDefault);
-	}
-
-	private void cacheTypeDefaultChanged(String stringValue) {
-		CacheType newValue = getEnumValueOf(stringValue, CacheType.values());
-		CacheType old = this.cacheTypeDefault;
-		this.cacheTypeDefault = newValue;
-		this.firePropertyChanged(CACHE_TYPE_DEFAULT_PROPERTY, old, newValue);
-	}
-
-	public CacheType getDefaultCacheTypeDefault() {
-		return DEFAULT_CACHE_TYPE_DEFAULT;
-	}
-
-	// ********** CacheSizeDefault **********
-	public Integer getCacheSizeDefault() {
-		return this.cacheSizeDefault;
-	}
-
-	public void setCacheSizeDefault(Integer newCacheSizeDefault) {
-		Integer old = this.cacheSizeDefault;
-		this.cacheSizeDefault = newCacheSizeDefault;
-		this.putProperty(CACHE_SIZE_DEFAULT_PROPERTY, newCacheSizeDefault);
-		this.firePropertyChanged(CACHE_SIZE_DEFAULT_PROPERTY, old, newCacheSizeDefault);
-	}
-
-	private void cacheSizeDefaultChanged(String stringValue) {
-		Integer newValue = getIntegerValueOf(stringValue);
-		Integer old = this.cacheSizeDefault;
-		this.cacheSizeDefault = newValue;
-		this.firePropertyChanged(CACHE_SIZE_DEFAULT_PROPERTY, old, newValue);
-	}
-
-	public Integer getDefaultCacheSizeDefault() {
-		return DEFAULT_CACHE_SIZE_DEFAULT;
-	}
-
-	// ********** SharedCacheDefault **********
-	public Boolean getSharedCacheDefault() {
-		return this.sharedCacheDefault;
-	}
-
-	public void setSharedCacheDefault(Boolean newSharedCacheDefault) {
-		Boolean old = this.sharedCacheDefault;
-		this.sharedCacheDefault = newSharedCacheDefault;
-		this.putProperty(SHARED_CACHE_DEFAULT_PROPERTY, newSharedCacheDefault);
-		this.firePropertyChanged(SHARED_CACHE_DEFAULT_PROPERTY, old, newSharedCacheDefault);
-	}
-
-	private void sharedCacheDefaultChanged(String stringValue) {
-		Boolean newValue = getBooleanValueOf(stringValue);
-		
-		Boolean old = this.sharedCacheDefault;
-		this.sharedCacheDefault = newValue;
-		this.firePropertyChanged(SHARED_CACHE_DEFAULT_PROPERTY, old, newValue);
-	}
-
-	public Boolean getDefaultSharedCacheDefault() {
-		return DEFAULT_SHARED_CACHE_DEFAULT;
-	}
-
-	// ********** FlushClearCache **********
-	
-	public FlushClearCache getFlushClearCache() {
-		return this.flushClearCache;
-	}
-	
-	public void setFlushClearCache(FlushClearCache newFlushClearCache) {
-		FlushClearCache old = this.flushClearCache;
-		this.flushClearCache = newFlushClearCache;
-		this.putProperty(FLUSH_CLEAR_CACHE_PROPERTY, newFlushClearCache);
-		this.firePropertyChanged(FLUSH_CLEAR_CACHE_PROPERTY, old, newFlushClearCache);
-	}
-
-	private void flushClearCacheChanged(String stringValue) {
-		FlushClearCache newValue = getEnumValueOf(stringValue, FlushClearCache.values());
-		FlushClearCache old = this.flushClearCache;
-		this.flushClearCache = newValue;
-		this.firePropertyChanged(FLUSH_CLEAR_CACHE_PROPERTY, old, newValue);
-	}
-	
-	public FlushClearCache getDefaultFlushClearCache() {
-		return DEFAULT_FLUSH_CLEAR_CACHE;
-	}
-
-	// ****** CacheProperties *******
-	/**
-	 * Convenience method to update the CacheType in entitiesCache map. Returns
-	 * the old value of CacheProperties
-	 */
-	private CacheProperties setCacheType_(String stringValue, String entityName) {
-		CacheType newValue = getEnumValueOf(stringValue, CacheType.values());
-		return this.setCacheType_(newValue, entityName);
-	}
-
-	private CacheProperties setCacheType_(CacheType newValue, String entityName) {
-		CacheProperties properties = this.cachePropertiesOf(entityName);
-		CacheProperties old = properties.clone();
-		properties.setType(newValue);
-		this.putEntityCacheProperties(entityName, properties);
-		return old;
-	}
-
-	/**
-	 * Convenience method to update the CacheSize in entitiesCache map. Returns
-	 * the old value of CacheProperties
-	 */
-	private CacheProperties setCacheSize_(String stringValue, String entityName) {
-		Integer newValue = getIntegerValueOf(stringValue);
-		return this.setCacheSize_(newValue, entityName);
-	}
-
-	private CacheProperties setCacheSize_(Integer newValue, String entityName) {
-		CacheProperties properties = this.cachePropertiesOf(entityName);
-		CacheProperties old = properties.clone();
-		properties.setSize(newValue);
-		this.putEntityCacheProperties(entityName, properties);
-		return old;
-	}
-
-	/**
-	 * Convenience method to update the SharedCache in entitiesCacheProperties map.
-	 * Returns the old value of CacheProperties
-	 */
-	private CacheProperties setSharedCache_(String newString, String entityName) {
-		Boolean newValue = getBooleanValueOf(newString);
-		return setSharedCache_(newValue, entityName);
-	}
-
-	private CacheProperties setSharedCache_(Boolean newValue, String entityName) {
-		CacheProperties properties = this.cachePropertiesOf(entityName);
-		CacheProperties old = properties.clone();
-		properties.setShared(newValue);
-		this.putEntityCacheProperties(entityName, properties);
-		return old;
-	}
-
-	/**
-	 * Returns the CacheProperties of the Entity with the given name.
-	 */
-	private CacheProperties cachePropertiesOf(String entityName) {
-		CacheProperties properties = this.entitiesCacheProperties.get(entityName);
-		if (properties == null) {
-			properties = new CacheProperties(entityName);
-		}
-		return properties;
-	}
-
-	/**
-	 * Set all CacheProperties to default.
-	 */
-	private void clearCacheProperties(String entityName) {
-		this.setCacheType(null, entityName);
-		this.setCacheSize(null, entityName);
-		this.setSharedCache(null, entityName);
-	}
-
-	// ****** convenience methods *******
-
-	/**
-	 * Put the given Entity CacheProperties in this entitiesCacheProperties map.
-	 * @param entityName - Entity name. The entity may be a new or an existing entity.
-	 * @param properties - Entity CacheProperties
-	 */
-	private void putEntityCacheProperties(String entityName, CacheProperties properties) {
-		this.addOrReplacePropertiesForEntity(entityName, properties);
-	}
-
-	// ****** entities list *******
-
-	public ListIterator<String> entities() {
-		return CollectionTools.list(this.entitiesCacheProperties.keySet()).listIterator();
-	}
-
-	public int entitiesSize() {
-		return this.entitiesCacheProperties.size();
-	}
-
-	/* 
-	 * Verifies if this entitiesCacheProperties map contains the given Entity. 
-	 */
-	public boolean entityExists(String entity) {
-		return this.entitiesCacheProperties.containsKey(entity);
-	}
-
-	public String addEntity(String entity) {
-		if (entityExists(entity)) {
-			throw new IllegalStateException("Entity " + entity + " already exists.");
-		}
-		return this.addOrReplacePropertiesForEntity(entity, new CacheProperties(entity));
-	}
-
-	/**
-	 * Adds or replaces the given Entity CacheProperties in this
-	 * entitiesCacheProperties map. 
-	 * If the specified Entity exists and the given CacheProperties is empty 
-	 * (i.e. all properties are null) the mapping will be removed from the map.
-	 * 
-	 * @param entity - Entity name
-	 * @param properties - Entity CacheProperties
-	 * @return Entity name added
-	 */
-	private String addOrReplacePropertiesForEntity(String entity, CacheProperties properties) {
-		if (this.entityExists(entity)) {
-			this.replaceEntity_(entity, properties);
-			return null;
-		}
-		this.entitiesCacheProperties.put(entity, properties);
-		this.fireListChanged(ENTITIES_LIST_PROPERTY);
-		return entity;
-	}
-
-	/**
-	 * Replaces the given Entity CacheProperties in this
-	 * entitiesCacheProperties map.
-	 * If the given Entity CacheProperties is empty (i.e. all properties are null) the 
-	 * mapping will be removed from the map.
-	 * @param entity - Entity name
-	 * @param properties - Entity CacheProperties
-	 * @return Entity name replaced
-	 */
-	private CacheProperties replaceEntity_(String entity, CacheProperties properties) {
-		CacheProperties old = this.entitiesCacheProperties.get(entity);
-		if (properties.isEmpty()) {
-			this.entitiesCacheProperties.remove(entity);
-			this.fireListChanged(ENTITIES_LIST_PROPERTY);
-		}
-		else {
-			this.entitiesCacheProperties.put(entity, properties);
-		}
-		return old;
-	}
-
-	public void removeEntity(String entity) {
-		if ( ! this.entityExists(entity)) {
-			return;
-		}
-		this.clearCacheProperties(entity);
-		this.entitiesCacheProperties.remove(entity);
-		this.fireListChanged(ENTITIES_LIST_PROPERTY);
-	}
-}
diff --git a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/context/persistence/caching/FlushClearCache.java b/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/context/persistence/caching/FlushClearCache.java
deleted file mode 100644
index c29a27f..0000000
--- a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/context/persistence/caching/FlushClearCache.java
+++ /dev/null
@@ -1,24 +0,0 @@
-/*******************************************************************************
-* Copyright (c) 2008 Oracle. All rights reserved.
-* This program and the accompanying materials are made available under the
-* terms of the Eclipse Public License v1.0, which accompanies this distribution
-* and is available at http://www.eclipse.org/legal/epl-v10.html.
-* 
-* Contributors:
-*     Oracle - initial API and implementation
-*******************************************************************************/
-package org.eclipse.jpt.eclipselink.core.internal.context.persistence.caching;
-
-/**
- *  FlushClearCache
- */
-public enum FlushClearCache {
-	drop,
-	drop_invalidate,
-	merge; 
-
-	// EclipseLink value string
-	public static final String DROP = "Drop";
-	public static final String DROP_INVALIDATE = "DropInvalidate";
-	public static final String MERGE = "Merge";
-}
diff --git a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/context/persistence/connection/BatchWriting.java b/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/context/persistence/connection/BatchWriting.java
deleted file mode 100644
index 5494a1a..0000000
--- a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/context/persistence/connection/BatchWriting.java
+++ /dev/null
@@ -1,26 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- *******************************************************************************/
-package org.eclipse.jpt.eclipselink.core.internal.context.persistence.connection;
-
-/**
- *  BatchWriting
- */
-public enum BatchWriting {
-			none, 
-			jdbc, 
-			buffered, 
-			oracle_jdbc;
-
-	// EclipseLink value string
-	static final String NONE = "None";
-	static final String JDBC = "JDBC";
-	static final String BUFFERED = "Buffered";
-	static final String ORACLE_JDBC = "Oracle-JDBC";
-}
diff --git a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/context/persistence/connection/Connection.java b/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/context/persistence/connection/Connection.java
deleted file mode 100644
index 2467819..0000000
--- a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/context/persistence/connection/Connection.java
+++ /dev/null
@@ -1,131 +0,0 @@
-/*******************************************************************************
-* Copyright (c) 2008, 2009 Oracle. All rights reserved.
-* This program and the accompanying materials are made available under the
-* terms of the Eclipse Public License v1.0, which accompanies this distribution
-* and is available at http://www.eclipse.org/legal/epl-v10.html.
-* 
-* Contributors:
-*     Oracle - initial API and implementation
-*******************************************************************************/
-package org.eclipse.jpt.eclipselink.core.internal.context.persistence.connection;
-
-import org.eclipse.jpt.eclipselink.core.internal.context.persistence.PersistenceUnitProperties;
-
-/**
- *  Connection
- */
-public interface Connection extends PersistenceUnitProperties
-{
-
-	Boolean getDefaultNativeSql();
-	Boolean getNativeSql();
-	void setNativeSql(Boolean newNativeSql);
-		static final String NATIVE_SQL_PROPERTY = "nativeSql"; //$NON-NLS-1$
-		// EclipseLink key string
-		static final String ECLIPSELINK_NATIVE_SQL = "eclipselink.jdbc.native-sql"; //$NON-NLS-1$
-		static final Boolean DEFAULT_NATIVE_SQL = Boolean.FALSE;
-
-	BatchWriting getDefaultBatchWriting();
-	BatchWriting getBatchWriting();
-	void setBatchWriting(BatchWriting newBatchWriting);
-		static final String BATCH_WRITING_PROPERTY = "batchWriting"; //$NON-NLS-1$
-		// EclipseLink key string
-		static final String ECLIPSELINK_BATCH_WRITING = "eclipselink.jdbc.batch-writing"; //$NON-NLS-1$
-		static final BatchWriting DEFAULT_BATCH_WRITING = BatchWriting.none;
-		
-	Boolean getDefaultCacheStatements();
-	Boolean getCacheStatements();
-	void setCacheStatements(Boolean newCacheStatements);
-		static final String CACHE_STATEMENTS_PROPERTY = "cacheStatements"; //$NON-NLS-1$
-		// EclipseLink key string
-		static final String ECLIPSELINK_CACHE_STATEMENTS = "eclipselink.jdbc.cache-statements"; //$NON-NLS-1$
-		static final Boolean DEFAULT_CACHE_STATEMENTS = Boolean.FALSE;
-		
-	Integer getDefaultCacheStatementsSize();
-	Integer getCacheStatementsSize();
-	void setCacheStatementsSize(Integer newCacheStatementsSize);
-		static final String CACHE_STATEMENTS_SIZE_PROPERTY = "cacheStatementsSize"; //$NON-NLS-1$
-		// EclipseLink key string
-		static final String ECLIPSELINK_CACHE_STATEMENTS_SIZE = "eclipselink.jdbc.cache-statements.size"; //$NON-NLS-1$
-		static final Integer DEFAULT_CACHE_STATEMENTS_SIZE = Integer.valueOf(50);
-		
-	String getDefaultDriver();
-	String getDriver();
-	void setDriver(String newDriver);
-		static final String DRIVER_PROPERTY = "driver"; //$NON-NLS-1$
-		// EclipseLink key string
-		static final String ECLIPSELINK_DRIVER = "eclipselink.jdbc.driver"; //$NON-NLS-1$
-		static final String DEFAULT_DRIVER = ""; //$NON-NLS-1$
-		
-	String getDefaultUrl();
-	String getUrl();
-	void setUrl(String newUrl);
-		static final String URL_PROPERTY = "url"; //$NON-NLS-1$
-		// EclipseLink key string
-		static final String ECLIPSELINK_URL = "eclipselink.jdbc.url"; //$NON-NLS-1$
-		static final String DEFAULT_URL = ""; //$NON-NLS-1$
-		
-	String getDefaultUser();
-	String getUser();
-	void setUser(String newUser);
-		static final String USER_PROPERTY = "user"; //$NON-NLS-1$
-		// EclipseLink key string
-		static final String ECLIPSELINK_USER = "eclipselink.jdbc.user"; //$NON-NLS-1$
-		static final String DEFAULT_USER = ""; //$NON-NLS-1$
-		
-	String getDefaultPassword();
-	String getPassword();
-	void setPassword(String newPassword);
-		static final String PASSWORD_PROPERTY = "password"; //$NON-NLS-1$
-		// EclipseLink key string
-		static final String ECLIPSELINK_PASSWORD = "eclipselink.jdbc.password"; //$NON-NLS-1$
-		static final String DEFAULT_PASSWORD = ""; //$NON-NLS-1$
-
-	Boolean getDefaultBindParameters();
-	Boolean getBindParameters();
-	void setBindParameters(Boolean newBindParameters);
-		static final String BIND_PARAMETERS_PROPERTY = "bindParameters"; //$NON-NLS-1$
-		// EclipseLink key string
-		static final String ECLIPSELINK_BIND_PARAMETERS = "eclipselink.jdbc.bind-parameters"; //$NON-NLS-1$
-		static final Boolean DEFAULT_BIND_PARAMETERS = Boolean.TRUE;
-		
-	Boolean getDefaultReadConnectionsShared();
-	Boolean getReadConnectionsShared();
-	void setReadConnectionsShared(Boolean newReadConnectionsShared);
-		static final String READ_CONNECTIONS_SHARED_PROPERTY = "readConnectionsShared"; //$NON-NLS-1$
-		// EclipseLink key string
-		static final String ECLIPSELINK_READ_CONNECTIONS_SHARED = "eclipselink.jdbc.read-connections.shared"; //$NON-NLS-1$
-		static final Boolean DEFAULT_READ_CONNECTIONS_SHARED = Boolean.FALSE;
-
-	Integer getDefaultReadConnectionsMin();
-	Integer getReadConnectionsMin();
-	void setReadConnectionsMin(Integer newReadConnectionsMin);
-		static final String READ_CONNECTIONS_MIN_PROPERTY = "readConnectionsMin"; //$NON-NLS-1$
-		// EclipseLink key string
-		static final String ECLIPSELINK_READ_CONNECTIONS_MIN = "eclipselink.jdbc.read-connections.min"; //$NON-NLS-1$
-		static final Integer DEFAULT_READ_CONNECTIONS_MIN = Integer.valueOf(2);
-
-	Integer getDefaultReadConnectionsMax();
-	Integer getReadConnectionsMax();
-	void setReadConnectionsMax(Integer newReadConnectionsMax);
-		static final String READ_CONNECTIONS_MAX_PROPERTY = "readConnectionsMax"; //$NON-NLS-1$
-		// EclipseLink key string
-		static final String ECLIPSELINK_READ_CONNECTIONS_MAX = "eclipselink.jdbc.read-connections.max"; //$NON-NLS-1$
-		static final Integer DEFAULT_READ_CONNECTIONS_MAX = Integer.valueOf(2);
-
-	Integer getDefaultWriteConnectionsMin();
-	Integer getWriteConnectionsMin();
-	void setWriteConnectionsMin(Integer newWriteConnectionsMin);
-		static final String WRITE_CONNECTIONS_MIN_PROPERTY = "writeConnectionsMin"; //$NON-NLS-1$
-		// EclipseLink key string
-		static final String ECLIPSELINK_WRITE_CONNECTIONS_MIN = "eclipselink.jdbc.write-connections.min"; //$NON-NLS-1$
-		static final Integer DEFAULT_WRITE_CONNECTIONS_MIN = Integer.valueOf(5);
-
-	Integer getDefaultWriteConnectionsMax();
-	Integer getWriteConnectionsMax();
-	void setWriteConnectionsMax(Integer newWriteConnectionsMax);
-		static final String WRITE_CONNECTIONS_MAX_PROPERTY = "writeConnectionsMax"; //$NON-NLS-1$
-		// EclipseLink key string
-		static final String ECLIPSELINK_WRITE_CONNECTIONS_MAX = "eclipselink.jdbc.write-connections.max"; //$NON-NLS-1$
-		static final Integer DEFAULT_WRITE_CONNECTIONS_MAX = Integer.valueOf(10);
-}
diff --git a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/context/persistence/connection/EclipseLinkConnection.java b/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/context/persistence/connection/EclipseLinkConnection.java
deleted file mode 100644
index af7f845..0000000
--- a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/context/persistence/connection/EclipseLinkConnection.java
+++ /dev/null
@@ -1,554 +0,0 @@
-/*******************************************************************************
-* Copyright (c) 2008, 2009 Oracle. All rights reserved.
-* This program and the accompanying materials are made available under the
-* terms of the Eclipse Public License v1.0, which accompanies this distribution
-* and is available at http://www.eclipse.org/legal/epl-v10.html.
-* 
-* Contributors:
-*     Oracle - initial API and implementation
-*******************************************************************************/
-package org.eclipse.jpt.eclipselink.core.internal.context.persistence.connection;
-
-import java.util.Map;
-import org.eclipse.jpt.core.context.persistence.PersistenceUnit;
-import org.eclipse.jpt.eclipselink.core.internal.context.persistence.EclipseLinkPersistenceUnitProperties;
-
-/**
- *  EclipseLinkConnection
- */
-public class EclipseLinkConnection extends EclipseLinkPersistenceUnitProperties
-	implements Connection
-{
-	
-	// ********** EclipseLink properties **********
-	private BatchWriting batchWriting;
-	private Boolean nativeSql;
-	private Boolean cacheStatements;
-	private Integer cacheStatementsSize;
-	private String driver;
-	private String url;
-	private String user;
-	private String password;
-	private Boolean bindParameters;
-	private Boolean readConnectionsShared;
-	private Integer readConnectionsMin;
-	private Integer readConnectionsMax;
-	private Integer writeConnectionsMin;
-	private Integer writeConnectionsMax;
-	
-
-	// ********** constructors **********
-	public EclipseLinkConnection(PersistenceUnit parent) {
-		super(parent);
-	}
-
-	// ********** initialization **********
-	/**
-	 * Initializes properties with values from the persistence unit.
-	 */
-	@Override
-	protected void initializeProperties() {
-		// TOREVIEW - handle incorrect String in persistence.xml
-		this.batchWriting = 
-			this.getEnumValue(ECLIPSELINK_BATCH_WRITING, BatchWriting.values());
-		this.nativeSql = 
-			this.getBooleanValue(ECLIPSELINK_NATIVE_SQL);
-		this.cacheStatements = 
-			this.getBooleanValue(ECLIPSELINK_CACHE_STATEMENTS);
-		this.cacheStatementsSize = 
-			this.getIntegerValue(ECLIPSELINK_CACHE_STATEMENTS_SIZE);
-		this.driver = 
-			this.getStringValue(ECLIPSELINK_DRIVER);
-		this.url = 
-			this.getStringValue(ECLIPSELINK_URL);
-		this.user = 
-			this.getStringValue(ECLIPSELINK_USER);
-		this.password = 
-			this.getStringValue(ECLIPSELINK_PASSWORD);
-		this.bindParameters = 
-			this.getBooleanValue(ECLIPSELINK_BIND_PARAMETERS);
-		this.readConnectionsShared = 
-			this.getBooleanValue(ECLIPSELINK_READ_CONNECTIONS_SHARED);
-		this.readConnectionsMin = 
-			this.getIntegerValue(ECLIPSELINK_READ_CONNECTIONS_MIN);
-		this.readConnectionsMax = 
-			this.getIntegerValue(ECLIPSELINK_READ_CONNECTIONS_MAX);
-		this.writeConnectionsMin = 
-			this.getIntegerValue(ECLIPSELINK_WRITE_CONNECTIONS_MIN);
-		this.writeConnectionsMax = 
-			this.getIntegerValue(ECLIPSELINK_WRITE_CONNECTIONS_MAX);
-		
-	}
-
-	// ********** behavior **********
-	
-	public void propertyValueChanged(String propertyName, String newValue) {
-		if (propertyName.equals(ECLIPSELINK_NATIVE_SQL)) {
-			this.nativeSqlChanged(newValue);
-		}
-		else if (propertyName.equals(ECLIPSELINK_BATCH_WRITING)) {
-			this.batchWritingChanged(newValue);
-		}
-		else if (propertyName.equals(ECLIPSELINK_CACHE_STATEMENTS)) {
-			this.cacheStatementsChanged(newValue);
-		}
-		else if (propertyName.equals(ECLIPSELINK_DRIVER)) {
-			this.driverChanged(newValue);
-		}
-		else if (propertyName.equals(ECLIPSELINK_URL)) {
-			this.urlChanged(newValue);
-		}
-		else if (propertyName.equals(ECLIPSELINK_USER)) {
-			this.userChanged(newValue);
-		}
-		else if (propertyName.equals(ECLIPSELINK_PASSWORD)) {
-			this.passwordChanged(newValue);
-		}
-		else if (propertyName.equals(ECLIPSELINK_BIND_PARAMETERS)) {
-			this.bindParametersChanged(newValue);
-		}
-		else if (propertyName.equals(ECLIPSELINK_READ_CONNECTIONS_SHARED)) {
-			this.readConnectionsSharedChanged(newValue);
-		}
-		else if (propertyName.equals(ECLIPSELINK_CACHE_STATEMENTS_SIZE)) {
-			this.cacheStatementsSizeChanged(newValue);
-		}
-		else if (propertyName.equals(ECLIPSELINK_READ_CONNECTIONS_MIN)) {
-			readConnectionsMinChanged(newValue);
-		}
-		else if (propertyName.equals(ECLIPSELINK_READ_CONNECTIONS_MAX)) {
-			readConnectionsMaxChanged(newValue);
-		}
-		else if (propertyName.equals(ECLIPSELINK_WRITE_CONNECTIONS_MIN)) {
-			writeConnectionsMinChanged(newValue);
-		}
-		else if (propertyName.equals(ECLIPSELINK_WRITE_CONNECTIONS_MAX)) {
-			writeConnectionsMaxChanged(newValue);
-		}
-	}
-	
-	public void propertyRemoved(String propertyName) {
-		if (propertyName.equals(ECLIPSELINK_NATIVE_SQL)) {
-			this.nativeSqlChanged(null);
-		}
-		else if (propertyName.equals(ECLIPSELINK_BATCH_WRITING)) {
-			this.batchWritingChanged(null);
-		}
-		else if (propertyName.equals(ECLIPSELINK_CACHE_STATEMENTS)) {
-			this.cacheStatementsChanged(null);
-		}
-		else if (propertyName.equals(ECLIPSELINK_DRIVER)) {
-			this.driverChanged(null);
-		}
-		else if (propertyName.equals(ECLIPSELINK_URL)) {
-			this.urlChanged(null);
-		}
-		else if (propertyName.equals(ECLIPSELINK_USER)) {
-			this.userChanged(null);
-		}
-		else if (propertyName.equals(ECLIPSELINK_PASSWORD)) {
-			this.passwordChanged(null);
-		}
-		else if (propertyName.equals(ECLIPSELINK_BIND_PARAMETERS)) {
-			this.bindParametersChanged(null);
-		}
-		else if (propertyName.equals(ECLIPSELINK_READ_CONNECTIONS_SHARED)) {
-			this.readConnectionsSharedChanged(null);
-		}
-		else if (propertyName.equals(ECLIPSELINK_CACHE_STATEMENTS_SIZE)) {
-			this.cacheStatementsSizeChanged(null);
-		}
-		else if (propertyName.equals(ECLIPSELINK_READ_CONNECTIONS_MIN)) {
-			readConnectionsMinChanged(null);
-		}
-		else if (propertyName.equals(ECLIPSELINK_READ_CONNECTIONS_MAX)) {
-			readConnectionsMaxChanged(null);
-		}
-		else if (propertyName.equals(ECLIPSELINK_WRITE_CONNECTIONS_MIN)) {
-			writeConnectionsMinChanged(null);
-		}
-		else if (propertyName.equals(ECLIPSELINK_WRITE_CONNECTIONS_MAX)) {
-			writeConnectionsMaxChanged(null);
-		}
-	}
-
-	/**
-	 * Adds property names key/value pairs, where: 
-	 * 		key = EclipseLink property key
-	 * 		value = property id
-	 */
-	@Override
-	protected void addPropertyNames(Map<String, String> propertyNames) {
-		propertyNames.put(
-			ECLIPSELINK_NATIVE_SQL,
-			NATIVE_SQL_PROPERTY);
-		propertyNames.put(
-			ECLIPSELINK_BATCH_WRITING,
-			BATCH_WRITING_PROPERTY);
-		propertyNames.put(
-			ECLIPSELINK_CACHE_STATEMENTS,
-			CACHE_STATEMENTS_PROPERTY);
-		propertyNames.put(
-			ECLIPSELINK_CACHE_STATEMENTS_SIZE,
-			CACHE_STATEMENTS_SIZE_PROPERTY);
-		propertyNames.put(
-			ECLIPSELINK_DRIVER,
-			DRIVER_PROPERTY);
-		propertyNames.put(
-			ECLIPSELINK_URL,
-			URL_PROPERTY);
-		propertyNames.put(
-			ECLIPSELINK_USER,
-			USER_PROPERTY);
-		propertyNames.put(
-			ECLIPSELINK_PASSWORD,
-			PASSWORD_PROPERTY);
-		propertyNames.put(
-			ECLIPSELINK_BIND_PARAMETERS,
-			BIND_PARAMETERS_PROPERTY);
-		propertyNames.put(
-			ECLIPSELINK_READ_CONNECTIONS_SHARED,
-			READ_CONNECTIONS_SHARED_PROPERTY);
-		propertyNames.put(
-			ECLIPSELINK_READ_CONNECTIONS_MIN,
-			READ_CONNECTIONS_MIN_PROPERTY);
-		propertyNames.put(
-			ECLIPSELINK_READ_CONNECTIONS_MAX,
-			READ_CONNECTIONS_MAX_PROPERTY);
-		propertyNames.put(
-			ECLIPSELINK_WRITE_CONNECTIONS_MIN,
-			WRITE_CONNECTIONS_MIN_PROPERTY);
-		propertyNames.put(
-			ECLIPSELINK_WRITE_CONNECTIONS_MAX,
-			WRITE_CONNECTIONS_MAX_PROPERTY);
-	}
-
-	// ********** NativeSql **********
-	public Boolean getNativeSql() {
-		return this.nativeSql;
-	}
-
-	public void setNativeSql(Boolean newNativeSql) {
-		Boolean old = this.nativeSql;
-		this.nativeSql = newNativeSql;
-		this.putProperty(NATIVE_SQL_PROPERTY, newNativeSql);
-		this.firePropertyChanged(NATIVE_SQL_PROPERTY, old, newNativeSql);
-	}
-	
-	private void nativeSqlChanged(String stringValue) {
-		Boolean newValue = getBooleanValueOf(stringValue);
-		
-		Boolean old = this.nativeSql;
-		this.nativeSql = newValue;
-		this.firePropertyChanged(NATIVE_SQL_PROPERTY, old, newValue);
-	}
-
-	public Boolean getDefaultNativeSql() {
-		return DEFAULT_NATIVE_SQL;
-	}
-
-	// ********** BatchWriting **********
-	
-	public BatchWriting getBatchWriting() {
-		return this.batchWriting;
-	}
-	
-	public void setBatchWriting(BatchWriting newBatchWriting) {
-		BatchWriting old = this.batchWriting;
-		this.batchWriting = newBatchWriting;
-		this.putProperty(BATCH_WRITING_PROPERTY, newBatchWriting);
-		this.firePropertyChanged(BATCH_WRITING_PROPERTY, old, newBatchWriting);
-	}
-
-	private void batchWritingChanged(String stringValue) {
-		BatchWriting newValue = getEnumValueOf(stringValue, BatchWriting.values());
-		BatchWriting old = this.batchWriting;
-		this.batchWriting = newValue;
-		this.firePropertyChanged(BATCH_WRITING_PROPERTY, old, newValue);
-	}
-	
-	public BatchWriting getDefaultBatchWriting() {
-		return DEFAULT_BATCH_WRITING;
-	}
-
-	// ********** CacheStatements **********
-	public Boolean getCacheStatements() {
-		return this.cacheStatements;
-	}
-
-	public void setCacheStatements(Boolean newCacheStatements) {
-		Boolean old = this.cacheStatements;
-		this.cacheStatements = newCacheStatements;
-		this.putProperty(CACHE_STATEMENTS_PROPERTY, newCacheStatements);
-		this.firePropertyChanged(CACHE_STATEMENTS_PROPERTY, old, newCacheStatements);
-	}
-
-	private void cacheStatementsChanged(String stringValue) {
-		Boolean newValue = getBooleanValueOf(stringValue);
-		
-		Boolean old = this.cacheStatements;
-		this.cacheStatements = newValue;
-		this.firePropertyChanged(CACHE_STATEMENTS_PROPERTY, old, newValue);
-	}
-
-	public Boolean getDefaultCacheStatements() {
-		return DEFAULT_CACHE_STATEMENTS;
-	}
-
-	// ********** CacheStatementsSize **********
-	public Integer getCacheStatementsSize() {
-		return this.cacheStatementsSize;
-	}
-
-	public void setCacheStatementsSize(Integer newCacheStatementsSize) {
-		Integer old = this.cacheStatementsSize;
-		this.cacheStatementsSize = newCacheStatementsSize;
-		this.putProperty(CACHE_STATEMENTS_SIZE_PROPERTY, newCacheStatementsSize);
-		this.firePropertyChanged(CACHE_STATEMENTS_SIZE_PROPERTY, old, newCacheStatementsSize);
-	}
-
-	private void cacheStatementsSizeChanged(String stringValue) {
-		Integer newValue = getIntegerValueOf(stringValue);
-		
-		Integer old = this.cacheStatementsSize;
-		this.cacheStatementsSize = newValue;
-		this.firePropertyChanged(CACHE_STATEMENTS_SIZE_PROPERTY, old, newValue);
-	}
-
-	public Integer getDefaultCacheStatementsSize() {
-		return DEFAULT_CACHE_STATEMENTS_SIZE;
-	}
-
-	// ********** Driver **********
-	public String getDriver() {
-		return this.driver;
-	}
-
-	public void setDriver(String newDriver) {
-		String old = this.driver;
-		this.driver = newDriver;
-		this.putProperty(DRIVER_PROPERTY, newDriver);
-		this.firePropertyChanged(DRIVER_PROPERTY, old, newDriver);
-	}
-
-	private void driverChanged(String newValue) {
-		String old = this.driver;
-		this.driver = newValue;
-		this.firePropertyChanged(DRIVER_PROPERTY, old, newValue);
-	}
-
-	public String getDefaultDriver() {
-		return DEFAULT_DRIVER;
-	}
-
-	// ********** URL **********
-	public String getUrl() {
-		return this.url;
-	}
-
-	public void setUrl(String newUrl) {
-		String old = this.url;
-		this.url = newUrl;
-		this.putProperty(URL_PROPERTY, newUrl);
-		this.firePropertyChanged(URL_PROPERTY, old, newUrl);
-	}
-
-	private void urlChanged(String newValue) {
-		String old = this.url;
-		this.url = newValue;
-		this.firePropertyChanged(URL_PROPERTY, old, newValue);
-	}
-
-	public String getDefaultUrl() {
-		return DEFAULT_URL;
-	}
-
-	// ********** User **********
-	public String getUser() {
-		return this.user;
-	}
-
-	public void setUser(String newUser) {
-		String old = this.user;
-		this.user = newUser;
-		this.putProperty(USER_PROPERTY, newUser);
-		this.firePropertyChanged(USER_PROPERTY, old, newUser);
-	}
-
-	private void userChanged(String newValue) {
-		String old = this.user;
-		this.user = newValue;
-		this.firePropertyChanged(USER_PROPERTY, old, newValue);
-	}
-
-	public String getDefaultUser() {
-		return DEFAULT_USER;
-	}
-
-	// ********** Password **********
-	public String getPassword() {
-		return this.password;
-	}
-
-	public void setPassword(String newPassword) {
-		String old = this.password;
-		this.password = newPassword;
-		this.putProperty(PASSWORD_PROPERTY, newPassword);
-		this.firePropertyChanged(PASSWORD_PROPERTY, old, newPassword);
-	}
-
-	private void passwordChanged(String newValue) {
-		String old = this.password;
-		this.password = newValue;
-		this.firePropertyChanged(PASSWORD_PROPERTY, old, newValue);
-	}
-
-	public String getDefaultPassword() {
-		return DEFAULT_PASSWORD;
-	}
-
-	// ********** BindParameters **********
-	public Boolean getBindParameters() {
-		return this.bindParameters;
-	}
-
-	public void setBindParameters(Boolean newBindParameters) {
-		Boolean old = this.bindParameters;
-		this.bindParameters = newBindParameters;
-		this.putProperty(BIND_PARAMETERS_PROPERTY, newBindParameters);
-		this.firePropertyChanged(BIND_PARAMETERS_PROPERTY, old, newBindParameters);
-	}
-
-	private void bindParametersChanged(String stringValue) {
-		Boolean newValue = getBooleanValueOf(stringValue);
-		
-		Boolean old = this.bindParameters;
-		this.bindParameters = newValue;
-		this.firePropertyChanged(BIND_PARAMETERS_PROPERTY, old, newValue);
-	}
-
-	public Boolean getDefaultBindParameters() {
-		return DEFAULT_BIND_PARAMETERS;
-	}
-
-	// ********** ReadConnectionsShared **********
-	public Boolean getReadConnectionsShared() {
-		return this.readConnectionsShared;
-	}
-
-	public void setReadConnectionsShared(Boolean newReadConnectionsShared) {
-		Boolean old = this.readConnectionsShared;
-		this.readConnectionsShared = newReadConnectionsShared;
-		this.putProperty(READ_CONNECTIONS_SHARED_PROPERTY, newReadConnectionsShared);
-		this.firePropertyChanged(READ_CONNECTIONS_SHARED_PROPERTY, old, newReadConnectionsShared);
-	}
-
-	private void readConnectionsSharedChanged(String stringValue) {
-		Boolean newValue = getBooleanValueOf(stringValue);
-		
-		Boolean old = this.readConnectionsShared;
-		this.readConnectionsShared = newValue;
-		this.firePropertyChanged(READ_CONNECTIONS_SHARED_PROPERTY, old, newValue);
-	}
-
-	public Boolean getDefaultReadConnectionsShared() {
-		return DEFAULT_READ_CONNECTIONS_SHARED;
-	}
-
-	// ********** ReadConnectionsMin **********
-	public Integer getReadConnectionsMin() {
-		return this.readConnectionsMin;
-	}
-
-	public void setReadConnectionsMin(Integer newReadConnectionsMin) {
-		Integer old = this.readConnectionsMin;
-		this.readConnectionsMin = newReadConnectionsMin;
-		this.putProperty(READ_CONNECTIONS_MIN_PROPERTY, newReadConnectionsMin);
-		this.firePropertyChanged(READ_CONNECTIONS_MIN_PROPERTY, old, newReadConnectionsMin);
-	}
-
-	private void readConnectionsMinChanged(String stringValue) {
-		Integer newValue = getIntegerValueOf(stringValue);
-		
-		Integer old = this.readConnectionsMin;
-		this.readConnectionsMin = newValue;
-		this.firePropertyChanged(READ_CONNECTIONS_MIN_PROPERTY, old, newValue);
-	}
-
-	public Integer getDefaultReadConnectionsMin() {
-		return DEFAULT_READ_CONNECTIONS_MIN;
-	}
-
-	// ********** ReadConnectionsMax **********
-	public Integer getReadConnectionsMax() {
-		return this.readConnectionsMax;
-	}
-
-	public void setReadConnectionsMax(Integer newReadConnectionsMax) {
-		Integer old = this.readConnectionsMax;
-		this.readConnectionsMax = newReadConnectionsMax;
-		this.putProperty(READ_CONNECTIONS_MAX_PROPERTY, newReadConnectionsMax);
-		this.firePropertyChanged(READ_CONNECTIONS_MAX_PROPERTY, old, newReadConnectionsMax);
-	}
-
-	private void readConnectionsMaxChanged(String stringValue) {
-		Integer newValue = getIntegerValueOf(stringValue);
-		
-		Integer old = this.readConnectionsMax;
-		this.readConnectionsMax = newValue;
-		this.firePropertyChanged(READ_CONNECTIONS_MAX_PROPERTY, old, newValue);
-	}
-
-	public Integer getDefaultReadConnectionsMax() {
-		return DEFAULT_READ_CONNECTIONS_MAX;
-	}
-
-	// ********** WriteConnectionsMin **********
-	public Integer getWriteConnectionsMin() {
-		return this.writeConnectionsMin;
-	}
-
-	public void setWriteConnectionsMin(Integer newWriteConnectionsMin) {
-		Integer old = this.writeConnectionsMin;
-		this.writeConnectionsMin = newWriteConnectionsMin;
-		this.putProperty(WRITE_CONNECTIONS_MIN_PROPERTY, newWriteConnectionsMin);
-		this.firePropertyChanged(WRITE_CONNECTIONS_MIN_PROPERTY, old, newWriteConnectionsMin);
-	}
-
-	private void writeConnectionsMinChanged(String stringValue) {
-		Integer newValue = getIntegerValueOf(stringValue);
-		
-		Integer old = this.writeConnectionsMin;
-		this.writeConnectionsMin = newValue;
-		this.firePropertyChanged(WRITE_CONNECTIONS_MIN_PROPERTY, old, newValue);
-	}
-
-	public Integer getDefaultWriteConnectionsMin() {
-		return DEFAULT_WRITE_CONNECTIONS_MIN;
-	}
-
-	// ********** WriteConnectionsMax **********
-	public Integer getWriteConnectionsMax() {
-		return this.writeConnectionsMax;
-	}
-
-	public void setWriteConnectionsMax(Integer newWriteConnectionsMax) {
-		Integer old = this.writeConnectionsMax;
-		this.writeConnectionsMax = newWriteConnectionsMax;
-		this.putProperty(WRITE_CONNECTIONS_MAX_PROPERTY, newWriteConnectionsMax);
-		this.firePropertyChanged(WRITE_CONNECTIONS_MAX_PROPERTY, old, newWriteConnectionsMax);
-	}
-
-	private void writeConnectionsMaxChanged(String stringValue) {
-		Integer newValue = getIntegerValueOf(stringValue);
-		
-		Integer old = this.writeConnectionsMax;
-		this.writeConnectionsMax = newValue;
-		this.firePropertyChanged(WRITE_CONNECTIONS_MAX_PROPERTY, old, newValue);
-	}
-
-	public Integer getDefaultWriteConnectionsMax() {
-		return DEFAULT_WRITE_CONNECTIONS_MAX;
-	}
-
-}
diff --git a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/context/persistence/customization/Customization.java b/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/context/persistence/customization/Customization.java
deleted file mode 100644
index 9b16b72..0000000
--- a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/context/persistence/customization/Customization.java
+++ /dev/null
@@ -1,131 +0,0 @@
-/*******************************************************************************
-* Copyright (c) 2008, 2009 Oracle. All rights reserved.
-* This program and the accompanying materials are made available under the
-* terms of the Eclipse Public License v1.0, which accompanies this distribution
-* and is available at http://www.eclipse.org/legal/epl-v10.html.
-* 
-* Contributors:
-*     Oracle - initial API and implementation
-*******************************************************************************/
-package org.eclipse.jpt.eclipselink.core.internal.context.persistence.customization;
-
-import java.util.ListIterator;
-import org.eclipse.jpt.eclipselink.core.internal.context.persistence.EclipseLinkPersistenceUnitProperties;
-import org.eclipse.jpt.eclipselink.core.internal.context.persistence.PersistenceUnitProperties;
-
-/**
- *  Customization
- */
-public interface Customization extends PersistenceUnitProperties
-{
-	Boolean getDefaultThrowExceptions();
-	Boolean getThrowExceptions();
-	void setThrowExceptions(Boolean newThrowExceptions);
-		static final String THROW_EXCEPTIONS_PROPERTY = "throwExceptions"; //$NON-NLS-1$
-		// EclipseLink key string
-		static final String ECLIPSELINK_THROW_EXCEPTIONS = "eclipselink.orm.throw.exceptions"; //$NON-NLS-1$
-		static final Boolean DEFAULT_THROW_EXCEPTIONS = Boolean.TRUE;
-	
-	Weaving getDefaultWeaving();
-	Weaving getWeaving();
-	void setWeaving(Weaving newWeaving);
-		static final String WEAVING_PROPERTY = "weaving"; //$NON-NLS-1$
-		// EclipseLink key string
-		static final String ECLIPSELINK_WEAVING = "eclipselink.weaving"; //$NON-NLS-1$
-		static final Weaving DEFAULT_WEAVING = Weaving.true_;
- 
-	Boolean getDefaultWeavingLazy();
-	Boolean getWeavingLazy();
-	void setWeavingLazy(Boolean newWeavingLazy);
-		static final String WEAVING_LAZY_PROPERTY = "weavingLazy"; //$NON-NLS-1$
-		// EclipseLink key string
-		static final String ECLIPSELINK_WEAVING_LAZY = "eclipselink.weaving.lazy"; //$NON-NLS-1$
-		static final Boolean DEFAULT_WEAVING_LAZY = Boolean.TRUE;
-	
-	Boolean getDefaultWeavingChangeTracking();
-	Boolean getWeavingChangeTracking();
-	void setWeavingChangeTracking(Boolean newWeavingChangeTracking);
-		static final String WEAVING_CHANGE_TRACKING_PROPERTY = "weavingChangeTracking"; //$NON-NLS-1$
-		// EclipseLink key string
-		static final String ECLIPSELINK_WEAVING_CHANGE_TRACKING = "eclipselink.weaving.changetracking"; //$NON-NLS-1$
-		static final Boolean DEFAULT_WEAVING_CHANGE_TRACKING = Boolean.TRUE;
-
-	Boolean getDefaultWeavingFetchGroups();
-	Boolean getWeavingFetchGroups();
-	void setWeavingFetchGroups(Boolean newWeavingFetchGroups);
-		static final String WEAVING_FETCH_GROUPS_PROPERTY = "weavingFetchGroups"; //$NON-NLS-1$
-		// EclipseLink key string
-		static final String ECLIPSELINK_WEAVING_FETCH_GROUPS = "eclipselink.weaving.fetchgroups"; //$NON-NLS-1$
-		static final Boolean DEFAULT_WEAVING_FETCH_GROUPS = Boolean.TRUE;
-
-	Boolean getDefaultWeavingInternal();
-	Boolean getWeavingInternal();
-	void setWeavingInternal(Boolean newWeavingInternal);
-		static final String WEAVING_INTERNAL_PROPERTY = "weavingInternal"; //$NON-NLS-1$
-		// EclipseLink key string
-		static final String ECLIPSELINK_WEAVING_INTERNAL = "eclipselink.weaving.internal"; //$NON-NLS-1$
-		static final Boolean DEFAULT_WEAVING_INTERNAL = Boolean.TRUE;
-
-	Boolean getDefaultWeavingEager();
-	Boolean getWeavingEager();
-	void setWeavingEager(Boolean newWeavingEager);
-		static final String WEAVING_EAGER_PROPERTY = "weavingEager"; //$NON-NLS-1$
-		// EclipseLink key string
-		static final String ECLIPSELINK_WEAVING_EAGER = "eclipselink.weaving.eager"; //$NON-NLS-1$
-		static final Boolean DEFAULT_WEAVING_EAGER = Boolean.FALSE;
-
-	String getDefaultDescriptorCustomizer();
-	String getDescriptorCustomizer(String entityName);
-	void setDescriptorCustomizer(String newDescriptorCustomizer, String entityName);
-		static final String DESCRIPTOR_CUSTOMIZER_PROPERTY = "descriptorCustomizer"; //$NON-NLS-1$
-		// EclipseLink key string
-		static final String ECLIPSELINK_DESCRIPTOR_CUSTOMIZER = "eclipselink.descriptor.customizer."; //$NON-NLS-1$
-		static final String DEFAULT_DESCRIPTOR_CUSTOMIZER = null;	// no default
-
-	ListIterator<String> sessionCustomizers();
-	int sessionCustomizersSize();
-	boolean sessionCustomizerExists(String sessionCustomizerClassName);
-	String addSessionCustomizer(String newSessionCustomizerClassName);
-	void removeSessionCustomizer(String sessionCustomizerClassName);
-		static final String SESSION_CUSTOMIZER_LIST_PROPERTY = "sessionCustomizers"; //$NON-NLS-1$
-		static final String SESSION_CUSTOMIZER_PROPERTY = "sessionCustomizer"; //$NON-NLS-1$
-		// EclipseLink key string
-		static final String ECLIPSELINK_SESSION_CUSTOMIZER = "eclipselink.session.customizer"; //$NON-NLS-1$
-
-	ListIterator<String> entities();
-	int entitiesSize();
-	boolean entityExists(String entity);
-	String addEntity(String entity);
-	void removeEntity(String entity);
-		static final String ENTITIES_LIST_PROPERTY = "entities"; //$NON-NLS-1$
-		
-	String getDefaultProfiler();
-	String getProfiler();
-	void setProfiler(String newProfiler);
-	void setProfiler(Profiler newProfiler);
-		static final String PROFILER_PROPERTY = "profiler"; //$NON-NLS-1$
-		// EclipseLink key string
-		static final String ECLIPSELINK_PROFILER = "eclipselink.profiler"; //$NON-NLS-1$
-		static final String DEFAULT_PROFILER = 
-			EclipseLinkPersistenceUnitProperties.getEclipseLinkStringValueOf(Profiler.no_profiler);
-		String ECLIPSELINK_SESSION_PROFILER_CLASS_NAME = "org.eclipse.persistence.sessions.SessionProfiler"; //$NON-NLS-1$
-		
-	Boolean getDefaultValidationOnly();
-	Boolean getValidationOnly();
-	void setValidationOnly(Boolean newValidationOnly);
-		static final String VALIDATION_ONLY_PROPERTY = "validationOnly"; //$NON-NLS-1$
-		// EclipseLink key string
-		static final String ECLIPSELINK_VALIDATION_ONLY = "eclipselink.validation-only"; //$NON-NLS-1$
-		static final Boolean DEFAULT_VALIDATION_ONLY = Boolean.TRUE;
-
-	String getDefaultExceptionHandler();
-	String getExceptionHandler();
-	void setExceptionHandler(String newExceptionHandler);
-		static final String EXCEPTION_HANDLER_PROPERTY = "exceptionHandler"; //$NON-NLS-1$
-		// EclipseLink key string
-		static final String ECLIPSELINK_EXCEPTION_HANDLER = "eclipselink.exception-handler"; //$NON-NLS-1$
-		static final String DEFAULT_EXCEPTION_HANDLER = null;	// no default
-
-		String ECLIPSELINK_EXCEPTION_HANDLER_CLASS_NAME = "org.eclipse.persistence.exceptions.ExceptionHandler"; //$NON-NLS-1$
-
-}
diff --git a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/context/persistence/customization/CustomizerProperties.java b/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/context/persistence/customization/CustomizerProperties.java
deleted file mode 100644
index a78c1d6..0000000
--- a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/context/persistence/customization/CustomizerProperties.java
+++ /dev/null
@@ -1,87 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008, 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- *******************************************************************************/
-package org.eclipse.jpt.eclipselink.core.internal.context.persistence.customization;
-
-import java.io.Serializable;
-import org.eclipse.jpt.utility.internal.StringTools;
-
-/**
- * CustomizerProperties
- */
-public class CustomizerProperties implements Cloneable, Serializable
-{
-	private String entityName;
-
-	// ********** EclipseLink properties **********
-	private String className;
-
-	private static final long serialVersionUID = 1L;
-
-	// ********** constructors **********
-	public CustomizerProperties(String entityName) {
-		this.entityName = entityName;
-	}
-
-	// ********** behaviors **********
-	@Override
-	public boolean equals(Object o) {
-		if(o == null) {
-			return false;
-		}
-		CustomizerProperties customizer = (CustomizerProperties) o;
-		return (
-			(this.className == null ?
-				customizer.className == null : this.className.equals(customizer.className)));
-	}
-	
-	 @Override
-	 public CustomizerProperties clone() {
-		 try {
-			 return (CustomizerProperties)super.clone();
-		 }
-		 catch (CloneNotSupportedException ex) {
-			 throw new InternalError();
-		 }
-	 }
-
-	public boolean isEmpty() {
-		return this.className == null;
-	}
-
-	// ********** getter/setter **********
-	public String getEntityName() {
-		return this.entityName;
-	}
-
-	public String getClassName() {
-		return this.className;
-	}
-
-	public void setClassName(String newClassName) {
-		this.className = newClassName;
-	}
-
-	@Override
-	public String toString() {
-		StringBuilder sb = new StringBuilder();
-		StringTools.buildSimpleToStringOn(this, sb);
-		sb.append(" (");
-		this.toString(sb);
-		sb.append(')');
-		return sb.toString();
-	}
-
-	public void toString(StringBuilder sb) {
-		sb.append(" class: ");
-		sb.append(this.className);
-		sb.append(", entityName: ");
-		sb.append(this.entityName);
-	}
-}
\ No newline at end of file
diff --git a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/context/persistence/customization/EclipseLinkCustomization.java b/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/context/persistence/customization/EclipseLinkCustomization.java
deleted file mode 100644
index bb656bb..0000000
--- a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/context/persistence/customization/EclipseLinkCustomization.java
+++ /dev/null
@@ -1,756 +0,0 @@
-/*******************************************************************************
-* Copyright (c) 2008, 2009 Oracle. All rights reserved.
-* This program and the accompanying materials are made available under the
-* terms of the Eclipse Public License v1.0, which accompanies this distribution
-* and is available at http://www.eclipse.org/legal/epl-v10.html.
-* 
-* Contributors:
-*     Oracle - initial API and implementation
-*******************************************************************************/
-package org.eclipse.jpt.eclipselink.core.internal.context.persistence.customization;
-
-import java.util.ArrayList;
-import java.util.HashMap;
-import java.util.ListIterator;
-import java.util.Map;
-import java.util.Set;
-import org.eclipse.jpt.core.context.persistence.PersistenceUnit;
-import org.eclipse.jpt.eclipselink.core.internal.context.persistence.EclipseLinkPersistenceUnitProperties;
-import org.eclipse.jpt.utility.internal.CollectionTools;
-import org.eclipse.jpt.utility.internal.iterators.CloneListIterator;
-
-/**
- *  EclipseLinkCustomization
- */
-public class EclipseLinkCustomization extends EclipseLinkPersistenceUnitProperties
-	implements Customization
-{
-	// ********** EclipseLink properties **********
-	private Boolean throwExceptions;
-	private Weaving weaving;
-	private Boolean weavingLazy;
-	private Boolean weavingChangeTracking;
-	private Boolean weavingFetchGroups;
-	private Boolean weavingInternal;
-	private Boolean weavingEager;
-	private Boolean validationOnly;
-	private ArrayList<String> sessionCustomizers;
-	private String profiler; // storing EclipseLinkStringValue since value can be Profiler or custom class
-	private String exceptionHandler;
-
-	// key = Entity name ; value = Customizer properties
-	private Map<String, CustomizerProperties> entitiesCustomizerProperties;
-	
-	// ********** constructors **********
-	public EclipseLinkCustomization(PersistenceUnit parent) {
-		super(parent);
-	}
-
-	// ********** initialization **********
-	/**
-	 * Initializes properties with values from the persistence unit.
-	 */
-	@Override
-	protected void initializeProperties() {
-		// TOREVIEW - handle incorrect String in persistence.xml
-		this.entitiesCustomizerProperties = 
-			new HashMap<String, CustomizerProperties>();
-
-		this.throwExceptions = 
-			this.getBooleanValue(ECLIPSELINK_THROW_EXCEPTIONS);
-		this.weaving = 
-			this.getEnumValue(ECLIPSELINK_WEAVING, Weaving.values());
-		this.weavingLazy = 
-			this.getBooleanValue(ECLIPSELINK_WEAVING_LAZY);
-		this.weavingChangeTracking = 
-			this.getBooleanValue(ECLIPSELINK_WEAVING_CHANGE_TRACKING);
-		this.weavingFetchGroups = 
-			this.getBooleanValue(ECLIPSELINK_WEAVING_FETCH_GROUPS);
-		this.weavingInternal = 
-			this.getBooleanValue(ECLIPSELINK_WEAVING_INTERNAL);
-		this.weavingEager = 
-			this.getBooleanValue(ECLIPSELINK_WEAVING_EAGER);
-		this.validationOnly = 
-			this.getBooleanValue(ECLIPSELINK_VALIDATION_ONLY);
-		this.initializeSessionCustomizersFromPersistenceUnit();
-
-		Set<PersistenceUnit.Property> properties = 
-			this.getPropertiesSetWithPrefix(ECLIPSELINK_DESCRIPTOR_CUSTOMIZER);
-		this.initializeEntitiesCustomizerClass(properties);
-		
-		this.profiler = this.getProfilerPropertyValue();
-		this.exceptionHandler = 
-			this.getStringValue(ECLIPSELINK_EXCEPTION_HANDLER);
-	}
-
-	private void initializeSessionCustomizersFromPersistenceUnit() {
-		Set<PersistenceUnit.Property> properties = 
-			this.getPropertiesSetWithPrefix(ECLIPSELINK_SESSION_CUSTOMIZER);
-		
-		this.sessionCustomizers = new ArrayList<String>(properties.size());
-		this.initializeSessionCustomizersWith(properties);
-	}
-
-	private void initializeSessionCustomizersWith(Set<PersistenceUnit.Property> properties) {
-		for (PersistenceUnit.Property property : properties) {
-			this.sessionCustomizers.add(property.getValue());
-		}
-	}
-
-	private void initializeEntitiesCustomizerClass(Set<PersistenceUnit.Property> properties) {
-		for (PersistenceUnit.Property property : properties) {
-			String entityName = this.getEntityName(property);
-			this.setCustomizerClass_(property, entityName);
-		}
-	}
-
-	/**
-	 * Gets the Profiler property from the persistence unit.
-	 */
-	private String getProfilerPropertyValue() {
-
-		String value = this.getStringValue(ECLIPSELINK_PROFILER);
-		if (value == null) {
-			return null;	// no property found
-		}
-		Profiler standardProfiler = this.getEnumValue(ECLIPSELINK_PROFILER, Profiler.values());
-		return (standardProfiler == null) ? value : getEclipseLinkStringValueOf(standardProfiler);
-	}
-
-	// ********** behavior **********
-	
-	public void propertyValueChanged(String propertyName, String newValue) {
-		if (propertyName.equals(ECLIPSELINK_THROW_EXCEPTIONS)) {
-			this.throwExceptionsChanged(newValue);
-		}
-		else if (propertyName.equals(ECLIPSELINK_WEAVING)) {
-			this.weavingChanged(newValue);
-		}
-		else if (propertyName.equals(ECLIPSELINK_WEAVING_LAZY)) {
-			this.weavingLazyChanged(newValue);
-		}
-		else if (propertyName.equals(ECLIPSELINK_WEAVING_CHANGE_TRACKING)) {
-			this.weavingChangeTrackingChanged(newValue);
-		}
-		else if (propertyName.equals(ECLIPSELINK_WEAVING_FETCH_GROUPS)) {
-			this.weavingFetchGroupsChanged(newValue);
-		}
-		else if (propertyName.equals(ECLIPSELINK_WEAVING_INTERNAL)) {
-			this.weavingInternalChanged(newValue);
-		}
-		else if (propertyName.equals(ECLIPSELINK_WEAVING_EAGER)) {
-			this.weavingEagerChanged(newValue);
-		}
-		else if (propertyName.equals(ECLIPSELINK_VALIDATION_ONLY)) {
-			this.validationOnlyChanged(newValue);
-		}
-		else if (propertyName.equals(ECLIPSELINK_SESSION_CUSTOMIZER)) {
-			this.sessionCustomizersChanged();
-		}
-		else if (propertyName.startsWith(ECLIPSELINK_DESCRIPTOR_CUSTOMIZER)) {
-			this.descriptorCustomizerChanged(propertyName, newValue);
-		}
-		else if (propertyName.equals(ECLIPSELINK_PROFILER)) {
-			this.profilerChanged(newValue);
-		}
-		else if (propertyName.equals(ECLIPSELINK_EXCEPTION_HANDLER)) {
-			this.exceptionHandlerChanged(newValue);
-		}
-	}
-		
-	public void propertyRemoved(String propertyName) {
-		if (propertyName.equals(ECLIPSELINK_THROW_EXCEPTIONS)) {
-			this.throwExceptionsChanged(null);
-		}
-		else if (propertyName.equals(ECLIPSELINK_WEAVING)) {
-			this.weavingChanged(null);
-		}
-		else if (propertyName.equals(ECLIPSELINK_WEAVING_LAZY)) {
-			this.weavingLazyChanged(null);
-		}
-		else if (propertyName.equals(ECLIPSELINK_WEAVING_CHANGE_TRACKING)) {
-			this.weavingChangeTrackingChanged(null);
-		}
-		else if (propertyName.equals(ECLIPSELINK_WEAVING_FETCH_GROUPS)) {
-			this.weavingFetchGroupsChanged(null);
-		}
-		else if (propertyName.equals(ECLIPSELINK_WEAVING_INTERNAL)) {
-			this.weavingInternalChanged(null);
-		}
-		else if (propertyName.equals(ECLIPSELINK_WEAVING_EAGER)) {
-			this.weavingEagerChanged(null);
-		}
-		else if (propertyName.equals(ECLIPSELINK_VALIDATION_ONLY)) {
-			this.validationOnlyChanged(null);
-		}
-		else if (propertyName.equals(ECLIPSELINK_SESSION_CUSTOMIZER)) {
-			this.sessionCustomizersChanged();
-		}
-		else if (propertyName.startsWith(ECLIPSELINK_DESCRIPTOR_CUSTOMIZER)) {
-			this.descriptorCustomizerChanged(propertyName, null);
-		}
-		else if (propertyName.equals(ECLIPSELINK_PROFILER)) {
-			this.profilerChanged(null);
-		}
-		else if (propertyName.equals(ECLIPSELINK_EXCEPTION_HANDLER)) {
-			this.exceptionHandlerChanged(null);
-		}
-		
-	}
-
-	/**
-	 * Adds property names key/value pairs, where: 
-	 * 		key = EclipseLink property key
-	 * 		value = property id
-	 */
-	@Override
-	protected void addPropertyNames(Map<String, String> propertyNames) {
-		propertyNames.put(
-			ECLIPSELINK_THROW_EXCEPTIONS,
-			THROW_EXCEPTIONS_PROPERTY);
-		propertyNames.put(
-			ECLIPSELINK_WEAVING,
-			WEAVING_PROPERTY);
-		propertyNames.put(
-			ECLIPSELINK_WEAVING_LAZY,
-			WEAVING_LAZY_PROPERTY);
-		propertyNames.put(
-			ECLIPSELINK_WEAVING_CHANGE_TRACKING,
-			WEAVING_CHANGE_TRACKING_PROPERTY);
-		propertyNames.put(
-			ECLIPSELINK_WEAVING_FETCH_GROUPS,
-			WEAVING_FETCH_GROUPS_PROPERTY);
-		propertyNames.put(
-			ECLIPSELINK_WEAVING_INTERNAL,
-			WEAVING_INTERNAL_PROPERTY);
-		propertyNames.put(
-			ECLIPSELINK_WEAVING_EAGER,
-			WEAVING_EAGER_PROPERTY);
-		propertyNames.put(
-			ECLIPSELINK_VALIDATION_ONLY,
-			VALIDATION_ONLY_PROPERTY);
-		propertyNames.put(
-			ECLIPSELINK_SESSION_CUSTOMIZER,
-			SESSION_CUSTOMIZER_PROPERTY);
-		propertyNames.put(
-			ECLIPSELINK_PROFILER,
-			PROFILER_PROPERTY);
-		propertyNames.put(
-			ECLIPSELINK_EXCEPTION_HANDLER,
-			EXCEPTION_HANDLER_PROPERTY);
-
-		// Don't need to initialize propertyNames for: 
-		// descriptorCustomizerProperty
-	}
-
-	/**
-	 * Method used for identifying the given property.
-	 */
-	@Override
-	public boolean itemIsProperty(PersistenceUnit.Property item) {
-		boolean isProperty = super.itemIsProperty(item);
-		
-		if ( ! isProperty && item.getName() != null) {
-				if (item.getName().startsWith(ECLIPSELINK_DESCRIPTOR_CUSTOMIZER)) {
-					return true;
-				}
-		}
-		return isProperty;
-	}
-
-	/**
-	 * Returns the property name used for change notification of the given
-	 * property.
-	 */
-	@Override
-	public String propertyIdFor(PersistenceUnit.Property property) {
-		try {
-			return super.propertyIdFor(property);
-		}
-		catch (IllegalArgumentException e) {
-			if (property.getName().startsWith(ECLIPSELINK_DESCRIPTOR_CUSTOMIZER)) {
-				return DESCRIPTOR_CUSTOMIZER_PROPERTY;
-			}
-		}
-		throw new IllegalArgumentException("Illegal property: " + property); //$NON-NLS-1$
-	}
-
-	
-	// ********** ThrowExceptions **********
-	public Boolean getThrowExceptions() {
-		return this.throwExceptions;
-	}
-	
-	public void setThrowExceptions(Boolean newThrowExceptions) {
-		Boolean old = this.throwExceptions;
-		this.throwExceptions = newThrowExceptions;
-		this.putProperty(THROW_EXCEPTIONS_PROPERTY, newThrowExceptions);
-		this.firePropertyChanged(THROW_EXCEPTIONS_PROPERTY, old, newThrowExceptions);
-	}
-
-	private void throwExceptionsChanged(String stringValue) {
-		Boolean newValue = getBooleanValueOf(stringValue);
-		
-		Boolean old = this.throwExceptions;
-		this.throwExceptions = newValue;
-		this.firePropertyChanged(THROW_EXCEPTIONS_PROPERTY, old, newValue);
-	}
-	
-	public Boolean getDefaultThrowExceptions() {
-		return DEFAULT_THROW_EXCEPTIONS;
-	}
-
-	// ********** WeavingLazy **********
-	public Boolean getWeavingLazy() {
-		return this.weavingLazy;
-	}
-
-	public void setWeavingLazy(Boolean newWeavingLazy) {
-		Boolean old = this.weavingLazy;
-		this.weavingLazy = newWeavingLazy;
-		this.putProperty(WEAVING_LAZY_PROPERTY, newWeavingLazy);
-		this.firePropertyChanged(WEAVING_LAZY_PROPERTY, old, newWeavingLazy);
-	}
-
-	private void weavingLazyChanged(String stringValue) {
-		Boolean newValue = getBooleanValueOf(stringValue);
-		
-		Boolean old = this.weavingLazy;
-		this.weavingLazy = newValue;
-		this.firePropertyChanged(WEAVING_LAZY_PROPERTY, old, newValue);
-	}
-
-	public Boolean getDefaultWeavingLazy() {
-		return DEFAULT_WEAVING_LAZY;
-	}
-
-	// ********** WeavingChangeTracking **********
-	public Boolean getWeavingChangeTracking() {
-		return this.weavingChangeTracking;
-	}
-
-	public void setWeavingChangeTracking(Boolean newWeavingChangeTracking) {
-		Boolean old = this.weavingChangeTracking;
-		this.weavingChangeTracking = newWeavingChangeTracking;
-		this.putProperty(WEAVING_CHANGE_TRACKING_PROPERTY, newWeavingChangeTracking);
-		this.firePropertyChanged(WEAVING_CHANGE_TRACKING_PROPERTY, old, newWeavingChangeTracking);
-	}
-
-	private void weavingChangeTrackingChanged(String stringValue) {
-		Boolean newValue = getBooleanValueOf(stringValue);
-		
-		Boolean old = this.weavingChangeTracking;
-		this.weavingChangeTracking = newValue;
-		this.firePropertyChanged(WEAVING_CHANGE_TRACKING_PROPERTY, old, newValue);
-	}
-
-	public Boolean getDefaultWeavingChangeTracking() {
-		return DEFAULT_WEAVING_CHANGE_TRACKING;
-	}
-
-	// ********** WeavingFetchGroups **********
-	public Boolean getWeavingFetchGroups() {
-		return this.weavingFetchGroups;
-	}
-
-	public void setWeavingFetchGroups(Boolean newWeavingFetchGroups) {
-		Boolean old = this.weavingFetchGroups;
-		this.weavingFetchGroups = newWeavingFetchGroups;
-		this.putProperty(WEAVING_FETCH_GROUPS_PROPERTY, newWeavingFetchGroups);
-		this.firePropertyChanged(WEAVING_FETCH_GROUPS_PROPERTY, old, newWeavingFetchGroups);
-	}
-
-	private void weavingFetchGroupsChanged(String stringValue) {
-		Boolean newValue = getBooleanValueOf(stringValue);
-		
-		Boolean old = this.weavingFetchGroups;
-		this.weavingFetchGroups = newValue;
-		this.firePropertyChanged(WEAVING_FETCH_GROUPS_PROPERTY, old, newValue);
-	}
-
-	public Boolean getDefaultWeavingFetchGroups() {
-		return DEFAULT_WEAVING_FETCH_GROUPS;
-	}
-
-	// ********** WeavingInternal **********
-	public Boolean getWeavingInternal() {
-		return this.weavingInternal;
-	}
-
-	public void setWeavingInternal(Boolean newWeavingInternal) {
-		Boolean old = this.weavingInternal;
-		this.weavingInternal = newWeavingInternal;
-		this.putProperty(WEAVING_INTERNAL_PROPERTY, newWeavingInternal);
-		this.firePropertyChanged(WEAVING_INTERNAL_PROPERTY, old, newWeavingInternal);
-	}
-
-	private void weavingInternalChanged(String stringValue) {
-		Boolean newValue = getBooleanValueOf(stringValue);
-		
-		Boolean old = this.weavingInternal;
-		this.weavingInternal = newValue;
-		this.firePropertyChanged(WEAVING_INTERNAL_PROPERTY, old, newValue);
-	}
-
-	public Boolean getDefaultWeavingInternal() {
-		return DEFAULT_WEAVING_INTERNAL;
-	}
-
-	// ********** WeavingEager **********
-	public Boolean getWeavingEager() {
-		return this.weavingEager;
-	}
-
-	public void setWeavingEager(Boolean newWeavingEager) {
-		Boolean old = this.weavingEager;
-		this.weavingEager = newWeavingEager;
-		this.putProperty(WEAVING_EAGER_PROPERTY, newWeavingEager);
-		this.firePropertyChanged(WEAVING_EAGER_PROPERTY, old, newWeavingEager);
-	}
-
-	private void weavingEagerChanged(String stringValue) {
-		Boolean newValue = getBooleanValueOf(stringValue);
-		
-		Boolean old = this.weavingEager;
-		this.weavingEager = newValue;
-		this.firePropertyChanged(WEAVING_EAGER_PROPERTY, old, newValue);
-	}
-
-	public Boolean getDefaultWeavingEager() {
-		return DEFAULT_WEAVING_EAGER;
-	}
-
-	// ********** ValidationOnly **********
-	public Boolean getValidationOnly() {
-		return this.validationOnly;
-	}
-
-	public void setValidationOnly(Boolean newValidationOnly) {
-		Boolean old = this.validationOnly;
-		this.validationOnly = newValidationOnly;
-		this.putProperty(VALIDATION_ONLY_PROPERTY, newValidationOnly);
-		this.firePropertyChanged(VALIDATION_ONLY_PROPERTY, old, newValidationOnly);
-	}
-
-	private void validationOnlyChanged(String stringValue) {
-		Boolean newValue = getBooleanValueOf(stringValue);
-		
-		Boolean old = this.validationOnly;
-		this.validationOnly = newValue;
-		this.firePropertyChanged(VALIDATION_ONLY_PROPERTY, old, newValue);
-	}
-
-	public Boolean getDefaultValidationOnly() {
-		return DEFAULT_VALIDATION_ONLY;
-	}
-
-	// ********** SessionCustomizers **********
-	public ListIterator<String> sessionCustomizers(){
-		return new CloneListIterator<String>(this.sessionCustomizers);
-	}
-	
-	public int sessionCustomizersSize(){
-		return this.sessionCustomizers.size();
-	}
-
-	public boolean sessionCustomizerExists(String sessionCustomizerClassName) {
-
-		for (String sessionCustomizer : this.sessionCustomizers) {
-			if(sessionCustomizer.equals(sessionCustomizerClassName)) {
-				return true;
-			}
-		}
-		return false;
-	}
-
-	public String addSessionCustomizer(String newSessionCustomizerClassName){
-
-		if( ! this.sessionCustomizerExists(newSessionCustomizerClassName)) {
-			this.sessionCustomizers.add(newSessionCustomizerClassName);
-			this.putProperty(SESSION_CUSTOMIZER_PROPERTY, newSessionCustomizerClassName, true);
-			this.fireListChanged(SESSION_CUSTOMIZER_LIST_PROPERTY);
-			return newSessionCustomizerClassName;
-		}
-		return null;
-	}
-	
-	public void removeSessionCustomizer(String className){
-
-		if(this.removeSessionCustomizer_(className) != null) {
-			this.removeProperty(SESSION_CUSTOMIZER_PROPERTY, className);
-			this.fireListChanged(SESSION_CUSTOMIZER_LIST_PROPERTY);
-		}
-	}
-	
-	private String removeSessionCustomizer_(String className){
-
-		for ( ListIterator<String> i = this.sessionCustomizers(); i.hasNext();) {
-			String sessionCustomizer = i.next();
-			if(sessionCustomizer.equals(className)) {
-				this.sessionCustomizers.remove(sessionCustomizer);
-				return sessionCustomizer;
-			}
-		}
-		return null;
-	}
-
-	private void sessionCustomizersChanged() {
-
-		this.initializeSessionCustomizersFromPersistenceUnit();
-		this.fireListChanged(SESSION_CUSTOMIZER_LIST_PROPERTY);
-	}
-
-	// ********** Weaving **********
-	
-	public Weaving getWeaving() {
-		return this.weaving;
-	}
-	
-	public void setWeaving(Weaving newWeaving) {
-		Weaving old = this.weaving;
-		this.weaving = newWeaving;
-		this.putProperty(WEAVING_PROPERTY, newWeaving);
-		this.firePropertyChanged(WEAVING_PROPERTY, old, newWeaving);
-	}
-
-	private void weavingChanged(String stringValue) {
-		Weaving newValue = getEnumValueOf(stringValue, Weaving.values());
-		Weaving old = this.weaving;
-		this.weaving = newValue;
-		this.firePropertyChanged(WEAVING_PROPERTY, old, newValue);
-	}
-	
-	public Weaving getDefaultWeaving() {
-		return DEFAULT_WEAVING;
-	}
-
-	// ********** ExceptionHandler **********
-	public String getExceptionHandler() {
-		return this.exceptionHandler;
-	}
-
-	public void setExceptionHandler(String newExceptionHandler) {
-		String old = this.exceptionHandler;
-		this.exceptionHandler = newExceptionHandler;
-		this.putProperty(EXCEPTION_HANDLER_PROPERTY, newExceptionHandler);
-		this.firePropertyChanged(EXCEPTION_HANDLER_PROPERTY, old, newExceptionHandler);
-	}
-
-	private void exceptionHandlerChanged(String newValue) {
-		String old = this.exceptionHandler;
-		this.exceptionHandler = newValue;
-		this.firePropertyChanged(EXCEPTION_HANDLER_PROPERTY, old, newValue);
-	}
-
-	public String getDefaultExceptionHandler() {
-		return DEFAULT_EXCEPTION_HANDLER;
-	}
-
-	// ********** DescriptorCustomizer **********
-	
-	public String getDescriptorCustomizer(String entityName) {
-		CustomizerProperties customizer = this.customizerPropertiesOf(entityName);
-		return (customizer == null) ? null : customizer.getClassName();
-	}
-	
-	public void setDescriptorCustomizer(String newDescriptorCustomizer, String entityName) {
-		CustomizerProperties old = this.setCustomizerClass_(newDescriptorCustomizer, entityName);
-		this.putStringValue(ECLIPSELINK_DESCRIPTOR_CUSTOMIZER, entityName, newDescriptorCustomizer, false);
-		this.firePropertyChanged(DESCRIPTOR_CUSTOMIZER_PROPERTY, old, this.customizerPropertiesOf(entityName));
-	}
-
-	private void descriptorCustomizerChanged(String propertyName, String stringValue) {
-		String entityName = this.getEntityName(propertyName);
-		CustomizerProperties old = this.setCustomizerClass_(stringValue, entityName);
-		this.firePropertyChanged(DESCRIPTOR_CUSTOMIZER_PROPERTY, old, this.customizerPropertiesOf(entityName));
-	}
-	
-	public String getDefaultDescriptorCustomizer() {
-		return DEFAULT_DESCRIPTOR_CUSTOMIZER;
-	}
-
-
-	// ****** CustomizerProperties *******
-
-	/**
-	 * Convenience method to update the CustomizerClass in entitiesCustomizerProperties map.
-	 * Returns the old value of CustomizerProperties
-	 */
-	private CustomizerProperties setCustomizerClass_(PersistenceUnit.Property newProperty, String entityName) {
-		String newValue = (newProperty == null) ? null : newProperty.getValue();
-		return this.setCustomizerClass_(newValue, entityName);
-	}
-
-	private CustomizerProperties setCustomizerClass_(String newValue, String entityName) {
-		CustomizerProperties properties = this.customizerPropertiesOf(entityName);
-		CustomizerProperties old = properties.clone();
-		properties.setClassName(newValue);
-		this.putEntityCustomizerProperties(entityName, properties);
-		return old;
-	}
-
-	/**
-	 * Returns the CustomizerProperties of the Entity with the given name.
-	 */
-	private CustomizerProperties customizerPropertiesOf(String entityName) {
-		CustomizerProperties properties = this.entitiesCustomizerProperties.get(entityName);
-		if (properties == null) {
-			properties = new CustomizerProperties(entityName);
-		}
-		return properties;
-	}
-
-	/**
-	 * Set all CustomizerProperties to default.
-	 */
-	private void clearCustomizerProperties(String entityName) {
-		this.setDescriptorCustomizer(null, entityName);
-	}
-
-	// ****** convenience methods *******
-	/**
-	 * Put the given Entity CustomizerProperties in this entitiesCustomizerProperties map.
-	 * @param entityName - Entity name. The entity may be a new or an existing entity.
-	 * @param properties - Entity CustomizerProperties
-	 */
-	private void putEntityCustomizerProperties(String entityName, CustomizerProperties properties) {
-		this.addOrReplacePropertiesForEntity(entityName, properties);
-	}
-	
-
-
-	// ****** entities list *******
-	
-	public ListIterator<String> entities() {
-		return CollectionTools.list(this.entitiesCustomizerProperties.keySet()).listIterator();
-	}
-
-	public int entitiesSize() {
-		return this.entitiesCustomizerProperties.size();
-	}
-
-	/* 
-	 * Verifies if this entitiesCacheProperties map contains the given Entity. 
-	 */
-	public boolean entityExists(String entity) {
-		return this.entitiesCustomizerProperties.containsKey(entity);
-	}
-
-	public String addEntity(String entity) {
-		if (entityExists(entity)) {
-			throw new IllegalStateException("Entity already exists: " + entity); //$NON-NLS-1$
-		}
-		return this.addOrReplacePropertiesForEntity(entity, new CustomizerProperties(entity));
-	}
-
-	/**
-	 * Adds or Replaces the given Entity CustomizerProperties in 
-	 * this entitiesCustomizerProperties map.
-	 * If the specified Entity exists and the given CustomizerProperties is empty 
-	 * (i.e. all properties are null) the mapping will be removed from the map.
-	 * @param entity - Entity name
-	 * @param properties - Entity CustomizerProperties
-	 * @return
-	 */
-	private String addOrReplacePropertiesForEntity(String entity, CustomizerProperties properties) {
-		if (entityExists(entity)) {
-			this.replaceEntity_(entity, properties);
-			return null;
-		}
-		this.entitiesCustomizerProperties.put(entity, properties);
-		this.fireListChanged(ENTITIES_LIST_PROPERTY);
-		return entity;
-	}
-
-	/**
-	 * Replaces the given Entity CustomizerProperties in this
-	 * entitiesCustomizerProperties map.
-	 * If the Entity CustomizerProperties is empty (i.e. all properties is null) the 
-	 * mapping will be removed from the map.
-	 * @param entity - Entity name
-	 * @param properties - Entity CustomizerProperties
-	 * @return
-	 */
-	private CustomizerProperties replaceEntity_(String entity, CustomizerProperties properties) {
-		CustomizerProperties old = this.entitiesCustomizerProperties.get(entity);
-		if (properties.isEmpty()) {
-			this.entitiesCustomizerProperties.remove(entity);
-			this.fireListChanged(ENTITIES_LIST_PROPERTY);
-		}
-		else {
-			this.entitiesCustomizerProperties.put(entity, properties);
-		}
-		return old;
-	}
-
-	public void removeEntity(String entity) {
-		if ( ! entityExists(entity)) {
-			return;
-		}
-		this.clearCustomizerProperties(entity);
-		this.entitiesCustomizerProperties.remove(entity);
-		this.fireListChanged(ENTITIES_LIST_PROPERTY);
-	}
-
-	// ********** Profiler **********
-	/**
-	 * Returns Profiler or custom profiler class.
-	 * 
-	 * @return EclipseLink string value for Profiler enum or custom profiler class
-	 */
-	public String getProfiler() {
-		return this.profiler;
-	}
-
-	/**
-	 * Sets EclipseLink profiler.
-	 * 
-	 * @param newProfiler - Profiler
-	 */
-	public void setProfiler(Profiler newProfiler) {
-		if( newProfiler == null) {
-			this.setProfiler_((String) null);
-			return;
-		}
-		this.setProfiler_(getEclipseLinkStringValueOf(newProfiler));
-	}
-
-	/**
-	 * Sets EclipseLink profiler or custom profiler.
-	 * 
-	 * @param newProfiler -
-	 *            Can be a EclipseLink profiler literal or
-	 *            a fully qualified class name of a custom profiler.
-	 */
-	public void setProfiler(String newProfiler) {
-		if( newProfiler == null) {
-			this.setProfiler_((String) null);
-			return;
-		}
-		Profiler p = Profiler.getProfilerFor(newProfiler);
-		if(p == null) {	// custom profiler class
-			this.setProfiler_(newProfiler);
-		}
-		else {
-			this.setProfiler(p);
-		}
-	}
-	
-	private void setProfiler_(String newProfiler) {
-		String old = this.profiler;
-		this.profiler = newProfiler;
-		this.putProperty(PROFILER_PROPERTY, newProfiler);
-		this.firePropertyChanged(PROFILER_PROPERTY, old, newProfiler);
-	}
-
-	private void profilerChanged(String newValue) {
-		String old = this.profiler;
-		this.profiler = newValue;
-		this.firePropertyChanged(PROFILER_PROPERTY, old, newValue);
-	}
-
-	public String getDefaultProfiler() {
-		return DEFAULT_PROFILER;
-	}
-
-}
\ No newline at end of file
diff --git a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/context/persistence/customization/Profiler.java b/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/context/persistence/customization/Profiler.java
deleted file mode 100644
index 903b09a..0000000
--- a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/context/persistence/customization/Profiler.java
+++ /dev/null
@@ -1,52 +0,0 @@
-/*******************************************************************************
-* Copyright (c) 2008 Oracle. All rights reserved.
-* This program and the accompanying materials are made available under the
-* terms of the Eclipse Public License v1.0, which accompanies this distribution
-* and is available at http://www.eclipse.org/legal/epl-v10.html.
-* 
-* Contributors:
-*     Oracle - initial API and implementation
-*******************************************************************************/
-package org.eclipse.jpt.eclipselink.core.internal.context.persistence.customization;
-
-/**
- *  Profiler
- */
-public enum Profiler {
-	performance_profiler, 
-	query_monitor,
-	no_profiler;
-
-	// EclipseLink value string
-	public static final String PERFORMANCE_PROFILER = "PerformanceProfiler"; //$NON-NLS-1$
-	public static final String QUERY_MONITOR = "QueryMonitor"; //$NON-NLS-1$
-	public static final String NO_PROFILER = "NoProfiler"; //$NON-NLS-1$
-
-	// EclipseLink profiler class names
-	public static final String PERFORMANCE_PROFILER_CLASS_NAME = "org.eclipse.persistence.tools.profiler.PerformanceProfiler"; //$NON-NLS-1$
-	public static final String QUERY_MONITOR_CLASS_NAME = "org.eclipse.persistence.tools.profiler.QueryMonitor"; //$NON-NLS-1$
-
-	/**
-	 * Return the Profiler value corresponding to the given literal.
-	 */
-	public static Profiler getProfilerFor(String literal) {
-		
-		for( Profiler profiler : Profiler.values()) {
-			if(profiler.toString().equals(literal)) {
-				return profiler;
-			}
-		}
-		return null;
-	}
-	
-	
-	public static String getProfilerClassName(String profilerValue) {
-		if (profilerValue == PERFORMANCE_PROFILER) {
-			return PERFORMANCE_PROFILER_CLASS_NAME;
-		}
-		if (profilerValue == QUERY_MONITOR) {
-			return QUERY_MONITOR_CLASS_NAME;
-		}
-		return profilerValue;
-	}
-}
diff --git a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/context/persistence/customization/Weaving.java b/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/context/persistence/customization/Weaving.java
deleted file mode 100644
index 0ecfedf..0000000
--- a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/context/persistence/customization/Weaving.java
+++ /dev/null
@@ -1,24 +0,0 @@
-/*******************************************************************************
-* Copyright (c) 2008 Oracle. All rights reserved.
-* This program and the accompanying materials are made available under the
-* terms of the Eclipse Public License v1.0, which accompanies this distribution
-* and is available at http://www.eclipse.org/legal/epl-v10.html.
-* 
-* Contributors:
-*     Oracle - initial API and implementation
-*******************************************************************************/
-package org.eclipse.jpt.eclipselink.core.internal.context.persistence.customization;
-
-/**
- *  Weaving
- */
-public enum Weaving {
-	true_,
-	false_, 
-	static_;
-
-	// EclipseLink value string
-	public static final String TRUE_ = "true";
-	public static final String FALSE_ = "false";
-	public static final String STATIC_ = "static";
-}
diff --git a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/context/persistence/general/EclipseLinkGeneralProperties.java b/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/context/persistence/general/EclipseLinkGeneralProperties.java
deleted file mode 100644
index 3069db7..0000000
--- a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/context/persistence/general/EclipseLinkGeneralProperties.java
+++ /dev/null
@@ -1,95 +0,0 @@
-/*******************************************************************************
-* Copyright (c) 2008, 2009 Oracle. All rights reserved.
-* This program and the accompanying materials are made available under the
-* terms of the Eclipse Public License v1.0, which accompanies this distribution
-* and is available at http://www.eclipse.org/legal/epl-v10.html.
-* 
-* Contributors:
-*     Oracle - initial API and implementation
-*******************************************************************************/
-package org.eclipse.jpt.eclipselink.core.internal.context.persistence.general;
-
-import java.util.Map;
-
-import org.eclipse.jpt.core.context.persistence.PersistenceUnit;
-import org.eclipse.jpt.eclipselink.core.internal.context.persistence.EclipseLinkPersistenceUnitProperties;
-
-/**
- *  EclipseLinkGeneralProperties
- */
-public class EclipseLinkGeneralProperties extends EclipseLinkPersistenceUnitProperties
-	implements GeneralProperties
-{
-	// ********** EclipseLink properties **********
-	private Boolean excludeEclipselinkOrm;
-
-	// ********** constructors **********
-	public EclipseLinkGeneralProperties(PersistenceUnit parent) {
-		super(parent);
-	}
-
-	// ********** initialization **********
-	/**
-	 * Initializes properties with values from the persistence unit.
-	 */
-	@Override
-	protected void initializeProperties() {
-		
-		this.excludeEclipselinkOrm = 
-			this.getBooleanValue(ECLIPSELINK_EXCLUDE_ECLIPSELINK_ORM);
-	}
-
-
-	// ********** behavior **********
-	
-	public void propertyValueChanged(String propertyName, String newValue) {
-		if (propertyName.equals(ECLIPSELINK_EXCLUDE_ECLIPSELINK_ORM)) {
-			excludeEclipselinkOrmChanged(newValue);
-		}
-	}
-	
-	public void propertyRemoved(String propertyName) {
-		if (propertyName.equals(ECLIPSELINK_EXCLUDE_ECLIPSELINK_ORM)) {
-			excludeEclipselinkOrmChanged(null);			
-		}
-	}
-	
-	
-	/**
-	 * Adds property names key/value pairs, where: 
-	 * 		key = EclipseLink property key
-	 * 		value = property id
-	 */
-	@Override
-	protected void addPropertyNames(Map<String, String> propertyNames) {
-		propertyNames.put(
-			ECLIPSELINK_EXCLUDE_ECLIPSELINK_ORM,
-			EXCLUDE_ECLIPSELINK_ORM_PROPERTY);
-	}
-
-	
-	// ********** ExcludeEclipselinkOrm **********
-	public Boolean getExcludeEclipselinkOrm() {
-		return this.excludeEclipselinkOrm;
-	}
-
-	public void setExcludeEclipselinkOrm(Boolean newExcludeEclipselinkOrm) {
-		Boolean old = this.excludeEclipselinkOrm;
-		this.excludeEclipselinkOrm = newExcludeEclipselinkOrm;
-		this.putProperty(EXCLUDE_ECLIPSELINK_ORM_PROPERTY, newExcludeEclipselinkOrm);
-		this.firePropertyChanged(EXCLUDE_ECLIPSELINK_ORM_PROPERTY, old, newExcludeEclipselinkOrm);
-	}
-
-	private void excludeEclipselinkOrmChanged(String stringValue) {
-		Boolean newValue = getBooleanValueOf(stringValue);
-		
-		Boolean old = this.excludeEclipselinkOrm;
-		this.excludeEclipselinkOrm = newValue;
-		this.firePropertyChanged(EXCLUDE_ECLIPSELINK_ORM_PROPERTY, old, newValue);
-	}
-
-	public Boolean getDefaultExcludeEclipselinkOrm() {
-		return DEFAULT_EXCLUDE_ECLIPSELINK_ORM;
-	}
-	
-}
diff --git a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/context/persistence/general/GeneralProperties.java b/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/context/persistence/general/GeneralProperties.java
deleted file mode 100644
index ebc2927..0000000
--- a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/context/persistence/general/GeneralProperties.java
+++ /dev/null
@@ -1,28 +0,0 @@
-/*******************************************************************************
-* Copyright (c) 2008 Oracle. All rights reserved.
-* This program and the accompanying materials are made available under the
-* terms of the Eclipse Public License v1.0, which accompanies this distribution
-* and is available at http://www.eclipse.org/legal/epl-v10.html.
-* 
-* Contributors:
-*     Oracle - initial API and implementation
-*******************************************************************************/
-package org.eclipse.jpt.eclipselink.core.internal.context.persistence.general;
-
-import org.eclipse.jpt.eclipselink.core.internal.context.persistence.PersistenceUnitProperties;
-
-/**
- *  GeneralProperties
- */
-public interface GeneralProperties extends PersistenceUnitProperties
-{
-
-	Boolean getDefaultExcludeEclipselinkOrm();
-	Boolean getExcludeEclipselinkOrm();
-	void setExcludeEclipselinkOrm(Boolean newExcludeEclipselinkOrm);
-		static final String EXCLUDE_ECLIPSELINK_ORM_PROPERTY = "excludeEclipselinkOrm"; //$NON-NLS-1$
-		// EclipseLink key string
-		static final String ECLIPSELINK_EXCLUDE_ECLIPSELINK_ORM = "eclipselink.exclude-eclipselink-orm"; //$NON-NLS-1$
-		static final Boolean DEFAULT_EXCLUDE_ECLIPSELINK_ORM = Boolean.FALSE;
-		
-}
diff --git a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/context/persistence/logging/EclipseLinkLogging.java b/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/context/persistence/logging/EclipseLinkLogging.java
deleted file mode 100644
index 5ab06af..0000000
--- a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/context/persistence/logging/EclipseLinkLogging.java
+++ /dev/null
@@ -1,355 +0,0 @@
-/*******************************************************************************
-* Copyright (c) 2008, 2009 Oracle. All rights reserved.
-* This program and the accompanying materials are made available under the
-* terms of the Eclipse Public License v1.0, which accompanies this distribution
-* and is available at http://www.eclipse.org/legal/epl-v10.html.
-* 
-* Contributors:
-*     Oracle - initial API and implementation
-*******************************************************************************/
-package org.eclipse.jpt.eclipselink.core.internal.context.persistence.logging;
-
-import java.util.Map;
-import org.eclipse.jpt.core.context.persistence.PersistenceUnit;
-import org.eclipse.jpt.eclipselink.core.internal.context.persistence.EclipseLinkPersistenceUnitProperties;
-
-/**
- *  EclipseLinkLogging
- */
-public class EclipseLinkLogging extends EclipseLinkPersistenceUnitProperties
-	implements Logging
-{
-	// ********** EclipseLink properties **********
-	private LoggingLevel level;
-	private Boolean timestamp;
-	private Boolean thread;
-	private Boolean session;
-	private Boolean exceptions;
-	private String logFileLocation;
-	private String logger; // storing EclipseLinkStringValue since value can be Logger or custom class
-
-	// ********** constructors **********
-	public EclipseLinkLogging(PersistenceUnit parent) {
-		super(parent);
-	}
-
-	// ********** initialization **********
-	/**
-	 * Initializes properties with values from the persistence unit.
-	 */
-	@Override
-	protected void initializeProperties() {
-		// TOREVIEW - handle incorrect String in persistence.xml
-		this.level = 
-			this.getEnumValue(ECLIPSELINK_LEVEL, LoggingLevel.values());
-		this.timestamp = 
-			this.getBooleanValue(ECLIPSELINK_TIMESTAMP);
-		this.thread = 
-			this.getBooleanValue(ECLIPSELINK_THREAD);
-		this.session = 
-			this.getBooleanValue(ECLIPSELINK_SESSION);
-		this.exceptions = 
-			this.getBooleanValue(ECLIPSELINK_EXCEPTIONS);
-		this.logFileLocation = 
-			this.getStringValue(ECLIPSELINK_LOG_FILE_LOCATION);
-		
-		this.logger = this.getLoggerProtertyValue();
-	}
-
-	/**
-	 * Gets the Logger property from the persistence unit.
-	 */
-	private String getLoggerProtertyValue() {
-
-		String value = this.getStringValue(ECLIPSELINK_LOGGER);
-		if (value == null) {
-			return null;	// no property found
-		}
-		Logger standardLogger = this.getEnumValue(ECLIPSELINK_LOGGER, Logger.values());
-		return (standardLogger == null) ? value : getEclipseLinkStringValueOf(standardLogger);
-	}
-
-	// ********** behavior **********
-	
-	public void propertyValueChanged(String propertyName, String newValue) {
-		if (propertyName.equals(ECLIPSELINK_LEVEL)) {
-			this.levelChanged(newValue);
-		}
-		else if (propertyName.equals(ECLIPSELINK_TIMESTAMP)) {
-			this.timestampChanged(newValue);
-		}
-		else if (propertyName.equals(ECLIPSELINK_THREAD)) {
-			this.threadChanged(newValue);
-		}
-		else if (propertyName.equals(ECLIPSELINK_SESSION)) {
-			this.sessionChanged(newValue);
-		}
-		else if (propertyName.equals(ECLIPSELINK_EXCEPTIONS)) {
-			this.exceptionsChanged(newValue);
-		}
-		else if (propertyName.equals(ECLIPSELINK_LOG_FILE_LOCATION)) {
-			this.logFileLocationChanged(newValue);
-		}
-		else if (propertyName.equals(ECLIPSELINK_LOGGER)) {
-			this.loggerChanged(newValue);
-		}
-	}
-		
-	public void propertyRemoved(String propertyName) {
-		if (propertyName.equals(ECLIPSELINK_LEVEL)) {
-			this.levelChanged(null);
-		}
-		else if (propertyName.equals(ECLIPSELINK_TIMESTAMP)) {
-			this.timestampChanged(null);
-		}
-		else if (propertyName.equals(ECLIPSELINK_THREAD)) {
-			this.threadChanged(null);
-		}
-		else if (propertyName.equals(ECLIPSELINK_SESSION)) {
-			this.sessionChanged(null);
-		}
-		else if (propertyName.equals(ECLIPSELINK_EXCEPTIONS)) {
-			this.exceptionsChanged(null);
-		}
-		else if (propertyName.equals(ECLIPSELINK_LOG_FILE_LOCATION)) {
-			this.logFileLocationChanged(null);
-		}
-		else if (propertyName.equals(ECLIPSELINK_LOGGER)) {
-			this.loggerChanged(null);
-		}
-	}
-
-	/**
-	 * Adds property names key/value pairs, where: 
-	 * 		key = EclipseLink property key
-	 * 		value = property id
-	 */
-	@Override
-	protected void addPropertyNames(Map<String, String> propertyNames) {
-		propertyNames.put(
-			ECLIPSELINK_LEVEL,
-			LEVEL_PROPERTY);
-		propertyNames.put(
-			ECLIPSELINK_TIMESTAMP,
-			TIMESTAMP_PROPERTY);
-		propertyNames.put(
-			ECLIPSELINK_THREAD,
-			THREAD_PROPERTY);
-		propertyNames.put(
-			ECLIPSELINK_SESSION,
-			SESSION_PROPERTY);
-		propertyNames.put(
-			ECLIPSELINK_EXCEPTIONS,
-			EXCEPTIONS_PROPERTY);
-		propertyNames.put(
-			ECLIPSELINK_LOG_FILE_LOCATION,
-			LOG_FILE_LOCATION_PROPERTY);
-		propertyNames.put(
-			ECLIPSELINK_LOGGER,
-			LOGGER_PROPERTY);
-	}
-
-	// ********** LoggingLevel **********
-	
-	public LoggingLevel getLevel() {
-		return this.level;
-	}
-	
-	public void setLevel(LoggingLevel newLevel) {
-		LoggingLevel old = this.level;
-		this.level = newLevel;
-		this.putProperty(LEVEL_PROPERTY, newLevel);
-		this.firePropertyChanged(LEVEL_PROPERTY, old, newLevel);
-	}
-
-	private void levelChanged(String stringValue) {
-		LoggingLevel newValue = getEnumValueOf(stringValue, LoggingLevel.values());
-		LoggingLevel old = this.level;
-		this.level = newValue;
-		this.firePropertyChanged(LEVEL_PROPERTY, old, newValue);
-	}
-	
-	public LoggingLevel getDefaultLevel() {
-		return DEFAULT_LEVEL;
-	}
-
-	// ********** Timestamp **********
-	public Boolean getTimestamp() {
-		return this.timestamp;
-	}
-
-	public void setTimestamp(Boolean newTimestamp) {
-		Boolean old = this.timestamp;
-		this.timestamp = newTimestamp;
-		this.putProperty(TIMESTAMP_PROPERTY, newTimestamp);
-		this.firePropertyChanged(TIMESTAMP_PROPERTY, old, newTimestamp);
-	}
-
-	private void timestampChanged(String stringValue) {
-		Boolean newValue = getBooleanValueOf(stringValue);
-		
-		Boolean old = this.timestamp;
-		this.timestamp = newValue;
-		this.firePropertyChanged(TIMESTAMP_PROPERTY, old, newValue);
-	}
-
-	public Boolean getDefaultTimestamp() {
-		return DEFAULT_TIMESTAMP;
-	}
-
-	// ********** Thread **********
-	public Boolean getThread() {
-		return this.thread;
-	}
-
-	public void setThread(Boolean newThread) {
-		Boolean old = this.thread;
-		this.thread = newThread;
-		this.putProperty(THREAD_PROPERTY, newThread);
-		this.firePropertyChanged(THREAD_PROPERTY, old, newThread);
-	}
-
-	private void threadChanged(String stringValue) {
-		Boolean newValue = getBooleanValueOf(stringValue);
-		
-		Boolean old = this.thread;
-		this.thread = newValue;
-		this.firePropertyChanged(THREAD_PROPERTY, old, newValue);
-	}
-
-	public Boolean getDefaultThread() {
-		return DEFAULT_THREAD;
-	}
-
-	// ********** Session **********
-	public Boolean getSession() {
-		return this.session;
-	}
-
-	public void setSession(Boolean newSession) {
-		Boolean old = this.session;
-		this.session = newSession;
-		this.putProperty(SESSION_PROPERTY, newSession);
-		this.firePropertyChanged(SESSION_PROPERTY, old, newSession);
-	}
-
-	private void sessionChanged(String stringValue) {
-		Boolean newValue = getBooleanValueOf(stringValue);
-		
-		Boolean old = this.session;
-		this.session = newValue;
-		this.firePropertyChanged(SESSION_PROPERTY, old, newValue);
-	}
-
-	public Boolean getDefaultSession() {
-		return DEFAULT_SESSION;
-	}
-
-	// ********** Exceptions **********
-	public Boolean getExceptions() {
-		return this.exceptions;
-	}
-
-	public void setExceptions(Boolean newExceptions) {
-		Boolean old = this.exceptions;
-		this.exceptions = newExceptions;
-		this.putProperty(EXCEPTIONS_PROPERTY, newExceptions);
-		this.firePropertyChanged(EXCEPTIONS_PROPERTY, old, newExceptions);
-	}
-
-	private void exceptionsChanged(String stringValue) {
-		Boolean newValue = getBooleanValueOf(stringValue);
-		
-		Boolean old = this.exceptions;
-		this.exceptions = newValue;
-		this.firePropertyChanged(EXCEPTIONS_PROPERTY, old, newValue);
-	}
-
-	public Boolean getDefaultExceptions() {
-		return DEFAULT_EXCEPTIONS;
-	}
-
-	// ********** logFileLocation **********
-	public String getLogFileLocation() {
-		return this.logFileLocation;
-	}
-
-	public void setLogFileLocation(String newLogFileLocation) {
-		String old = this.logFileLocation;
-		this.logFileLocation = newLogFileLocation;
-		this.putProperty(LOG_FILE_LOCATION_PROPERTY, newLogFileLocation);
-		this.firePropertyChanged(LOG_FILE_LOCATION_PROPERTY, old, newLogFileLocation);
-	}
-
-	private void logFileLocationChanged(String newValue) {
-		String old = this.logFileLocation;
-		this.logFileLocation = newValue;
-		this.firePropertyChanged(LOG_FILE_LOCATION_PROPERTY, old, newValue);
-	}
-
-	public String getDefaultLogFileLocation() {
-		return DEFAULT_LOG_FILE_LOCATION;
-	}
-
-	// ********** Logger **********
-	/**
-	 * Returns Logger or custom logger class.
-	 * 
-	 * @return EclipseLink string value for Logger enum or custom logger class
-	 */
-	public String getLogger() {
-		return this.logger;
-	}
-
-	/**
-	 * Sets EclipseLink logger.
-	 * 
-	 * @param newLogger - Logger
-	 */
-	public void setLogger(Logger newLogger) {
-		if( newLogger == null) {
-			this.setLogger_((String) null);
-			return;
-		}
-		this.setLogger_(getEclipseLinkStringValueOf(newLogger));
-	}
-
-	/**
-	 * Sets EclipseLink logger or custom logger.
-	 * 
-	 * @param newLogger -
-	 *            Can be a EclipseLink logger literal or
-	 *            a fully qualified class name of a custom logger.
-	 */
-	public void setLogger(String newLogger) {
-		if( newLogger == null) {
-			this.setLogger_(null);
-			return;
-		}
-		Logger l = Logger.getLoggerFor(newLogger);
-		if(l == null) {	// custom Logger class
-			this.setLogger_(newLogger);
-		}
-		else {
-			this.setLogger(l);
-		}
-	}
-	
-	private void setLogger_(String newLogger) {
-		String old = this.logger;
-		this.logger = newLogger;
-		this.putProperty(LOGGER_PROPERTY, newLogger);
-		this.firePropertyChanged(LOGGER_PROPERTY, old, newLogger);
-	}
-
-	private void loggerChanged(String newValue) {
-		String old = this.logger;
-		this.logger = newValue;
-		this.firePropertyChanged(LOGGER_PROPERTY, old, newValue);
-	}
-
-	public String getDefaultLogger() {
-		return DEFAULT_LOGGER;
-	}
-
-}
\ No newline at end of file
diff --git a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/context/persistence/logging/Logger.java b/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/context/persistence/logging/Logger.java
deleted file mode 100644
index 63b2c60..0000000
--- a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/context/persistence/logging/Logger.java
+++ /dev/null
@@ -1,55 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- *******************************************************************************/
-package org.eclipse.jpt.eclipselink.core.internal.context.persistence.logging;
-
-/**
- * Logger
- */
-public enum Logger {
-			default_logger, 
-			java_logger, 
-			server_logger;
-	
-	// EclipseLink value string
-	public static final String DEFAULT_LOGGER = "DefaultLogger"; //$NON-NLS-1$
-	public static final String JAVA_LOGGER = "JavaLogger"; //$NON-NLS-1$
-	public static final String SERVER_LOGGER = "ServerLogger"; //$NON-NLS-1$
-	
-	// EclipseLink logger class names
-	public static final String DEFAULT_LOGGER_CLASS_NAME = "org.eclipse.persistence.logging.DefaultSessionLog"; //$NON-NLS-1$
-	public static final String JAVA_LOGGER_CLASS_NAME = "org.eclipse.persistence.logging.JavaLog"; //$NON-NLS-1$
-	public static final String SERVER_LOGGER_CLASS_NAME = "org.eclipse.persistence.platform.server.ServerLog"; //$NON-NLS-1$
-	
-	/**
-	 * Return the Logger value corresponding to the given literal.
-	 */
-	public static Logger getLoggerFor(String literal) {
-		
-		for( Logger logger : Logger.values()) {
-			if(logger.toString().equals(literal)) {
-				return logger;
-			}
-		}
-		return null;
-	}
-	
-	public static String getLoggerClassName(String loggerValue) {
-		if (loggerValue == DEFAULT_LOGGER) {
-			return DEFAULT_LOGGER_CLASS_NAME;
-		}
-		if (loggerValue == JAVA_LOGGER) {
-			return JAVA_LOGGER_CLASS_NAME;
-		}
-		if (loggerValue == SERVER_LOGGER) {
-			return SERVER_LOGGER_CLASS_NAME;
-		}
-		return loggerValue;
-	}
-}
\ No newline at end of file
diff --git a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/context/persistence/logging/Logging.java b/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/context/persistence/logging/Logging.java
deleted file mode 100644
index 45084c8..0000000
--- a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/context/persistence/logging/Logging.java
+++ /dev/null
@@ -1,78 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- *******************************************************************************/
-package org.eclipse.jpt.eclipselink.core.internal.context.persistence.logging;
-
-import org.eclipse.jpt.eclipselink.core.internal.context.persistence.EclipseLinkPersistenceUnitProperties;
-import org.eclipse.jpt.eclipselink.core.internal.context.persistence.PersistenceUnitProperties;
-
-/**
- * Logging
- */
-public interface Logging extends PersistenceUnitProperties
-{
-	LoggingLevel getDefaultLevel();
-	LoggingLevel getLevel();
-	void setLevel(LoggingLevel level);
-		static final String LEVEL_PROPERTY = "level"; //$NON-NLS-1$
-		// EclipseLink key string
-		static final String ECLIPSELINK_LEVEL = "eclipselink.logging.level"; //$NON-NLS-1$
-		static final LoggingLevel DEFAULT_LEVEL = LoggingLevel.info;
-	
-	Boolean getDefaultTimestamp();
-	Boolean getTimestamp();
-	void setTimestamp(Boolean timestamp);
-		static final String TIMESTAMP_PROPERTY = "timestamp"; //$NON-NLS-1$
-		// EclipseLink key string
-		static final String ECLIPSELINK_TIMESTAMP = "eclipselink.logging.timestamp"; //$NON-NLS-1$
-		static final Boolean DEFAULT_TIMESTAMP = Boolean.TRUE;
-	
-	Boolean getDefaultThread();
-	Boolean getThread();
-	void setThread(Boolean thread);
-		static final String THREAD_PROPERTY = "thread"; //$NON-NLS-1$
-		// EclipseLink key string
-		static final String ECLIPSELINK_THREAD = "eclipselink.logging.thread"; //$NON-NLS-1$
-		static final Boolean DEFAULT_THREAD = Boolean.TRUE;
-	
-	Boolean getDefaultSession();
-	Boolean getSession();
-	void setSession(Boolean session);
-		static final String SESSION_PROPERTY = "session"; //$NON-NLS-1$
-		// EclipseLink key string
-		static final String ECLIPSELINK_SESSION = "eclipselink.logging.session"; //$NON-NLS-1$
-		static final Boolean DEFAULT_SESSION = Boolean.TRUE;
-	
-	Boolean getDefaultExceptions();
-	Boolean getExceptions();
-	void setExceptions(Boolean exceptions);
-		static final String EXCEPTIONS_PROPERTY = "exceptions"; //$NON-NLS-1$
-		// EclipseLink key string
-		static final String ECLIPSELINK_EXCEPTIONS = "eclipselink.logging.exceptions"; //$NON-NLS-1$
-		static final Boolean DEFAULT_EXCEPTIONS = Boolean.FALSE;
-		
-	String getDefaultLogFileLocation();
-	String getLogFileLocation();
-	void setLogFileLocation(String newLogFileLocation);
-		static final String LOG_FILE_LOCATION_PROPERTY = "logFileLocation"; //$NON-NLS-1$
-		// EclipseLink key string
-		static final String ECLIPSELINK_LOG_FILE_LOCATION = "eclipselink.logging.file"; //$NON-NLS-1$
-		static final String DEFAULT_LOG_FILE_LOCATION = null;		// No Default
-		
-	String getDefaultLogger();
-	String getLogger();
-	void setLogger(String newLogger);
-	void setLogger(Logger newLogger);
-		static final String LOGGER_PROPERTY = "logger"; //$NON-NLS-1$
-		// EclipseLink key string
-		static final String ECLIPSELINK_LOGGER = "eclipselink.logging.logger"; //$NON-NLS-1$
-		static final String DEFAULT_LOGGER = 
-			EclipseLinkPersistenceUnitProperties.getEclipseLinkStringValueOf(Logger.default_logger);
-		String ECLIPSELINK_LOGGER_CLASS_NAME = "org.eclipse.persistence.logging.SessionLog"; //$NON-NLS-1$
-}
diff --git a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/context/persistence/logging/LoggingLevel.java b/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/context/persistence/logging/LoggingLevel.java
deleted file mode 100644
index 0158858..0000000
--- a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/context/persistence/logging/LoggingLevel.java
+++ /dev/null
@@ -1,36 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- *******************************************************************************/
-package org.eclipse.jpt.eclipselink.core.internal.context.persistence.logging;
-
-/**
- *  LoggingLevel
- */
-public enum LoggingLevel {
-			off, 
-			severe, 
-			warning, 
-			info, 
-			config, 
-			fine, 
-			finer,
-			finest,
-			all;
-
-	// EclipseLink value string
-	public static final String OFF = "OFF";
-	public static final String SEVERE = "SEVERE";
-	public static final String WARNING = "WARNING";
-	public static final String INFO = "INFO";
-	public static final String CONFIG = "CONFIG";
-	public static final String FINE = "FINE";
-	public static final String FINER = "FINER";
-	public static final String FINEST = "FINEST";
-	public static final String ALL = "ALL";
-}
diff --git a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/context/persistence/options/EclipseLinkOptions.java b/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/context/persistence/options/EclipseLinkOptions.java
deleted file mode 100644
index fcaf415..0000000
--- a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/context/persistence/options/EclipseLinkOptions.java
+++ /dev/null
@@ -1,395 +0,0 @@
-/*******************************************************************************
-* Copyright (c) 2008, 2009 Oracle. All rights reserved.
-* This program and the accompanying materials are made available under the
-* terms of the Eclipse Public License v1.0, which accompanies this distribution
-* and is available at http://www.eclipse.org/legal/epl-v10.html.
-* 
-* Contributors:
-*     Oracle - initial API and implementation
-*******************************************************************************/
-package org.eclipse.jpt.eclipselink.core.internal.context.persistence.options;
-
-import java.util.Map;
-import org.eclipse.jpt.core.context.persistence.PersistenceUnit;
-import org.eclipse.jpt.eclipselink.core.internal.context.persistence.EclipseLinkPersistenceUnitProperties;
-
-/**
- *  EclipseLinkOptions
- */
-public class EclipseLinkOptions extends EclipseLinkPersistenceUnitProperties
-	implements Options
-{
-	// ********** EclipseLink properties **********
-	private String sessionName;
-	private String sessionsXml;
-	private Boolean includeDescriptorQueries;
-	private String targetDatabase; // storing EclipseLinkStringValue since value can be TargetDatabase or custom class
-	private String targetServer; // storing EclipseLinkStringValue since value can be TargetServer or custom class
-	private String eventListener;
-	private Boolean temporalMutable;
-
-
-	// ********** constructors **********
-	public EclipseLinkOptions(PersistenceUnit parent) {
-		super(parent);
-	}
-
-	// ********** initialization **********
-	/**
-	 * Initializes properties with values from the persistence unit.
-	 */
-	@Override
-	protected void initializeProperties() {
-		// TOREVIEW - handle incorrect String in persistence.xml
-		this.sessionName = 
-			this.getStringValue(ECLIPSELINK_SESSION_NAME);
-		this.sessionsXml = 
-			this.getStringValue(ECLIPSELINK_SESSIONS_XML);
-		this.includeDescriptorQueries = 
-			this.getBooleanValue(ECLIPSELINK_SESSION_INCLUDE_DESCRIPTOR_QUERIES);
-		this.targetDatabase = this.getTargetDatabaseFromPersistenceXml();
-		this.targetServer = this.getTargetServerFromPersistenceXml();
-		this.eventListener = 
-			this.getStringValue(ECLIPSELINK_SESSION_EVENT_LISTENER);
-		this.temporalMutable = 
-			this.getBooleanValue(ECLIPSELINK_TEMPORAL_MUTABLE);
-	}
-	
-	protected String getTargetDatabaseFromPersistenceXml() {
-
-		String value = this.getStringValue(ECLIPSELINK_TARGET_DATABASE);
-		if (value == null) {
-			return null;
-		}
-		TargetDatabase standardTargetDatabase = this.getEnumValue(ECLIPSELINK_TARGET_DATABASE, TargetDatabase.values());
-		return (standardTargetDatabase == null) ? value : getEclipseLinkStringValueOf(standardTargetDatabase);
-	}
-	
-	protected String getTargetServerFromPersistenceXml() {
-
-		String value = this.getStringValue(ECLIPSELINK_TARGET_SERVER);
-		if (value == null) {
-			return null;
-		}
-		TargetServer standardTargetServer = this.getEnumValue(ECLIPSELINK_TARGET_SERVER, TargetServer.values());
-		return (standardTargetServer == null) ? value : getEclipseLinkStringValueOf(standardTargetServer);
-	}
-
-	// ********** behavior **********
-	
-	public void propertyValueChanged(String propertyName, String newValue) {
-		if (propertyName.equals(ECLIPSELINK_SESSION_NAME)) {
-			this.sessionNameChanged(newValue);
-		}
-		else if (propertyName.equals(ECLIPSELINK_SESSIONS_XML)) {
-			this.sessionsXmlChanged(newValue);
-		}
-		else if (propertyName.equals(ECLIPSELINK_TARGET_DATABASE)) {
-			this.targetDatabaseChanged(newValue);
-		}
-		else if (propertyName.equals(ECLIPSELINK_TARGET_SERVER)) {
-			this.targetServerChanged(newValue);
-		}
-		else if (propertyName.equals(ECLIPSELINK_SESSION_INCLUDE_DESCRIPTOR_QUERIES)) {
-			this.includeDescriptorQueriesChanged(newValue);
-		}
-		else if (propertyName.equals(ECLIPSELINK_SESSION_EVENT_LISTENER)) {
-			this.eventListenerChanged(newValue);
-		}
-		else if (propertyName.equals(ECLIPSELINK_TEMPORAL_MUTABLE)) {
-			this.temporalMutableChanged(newValue);
-		}	
-	}
-	
-	public void propertyRemoved(String propertyName) {
-		if (propertyName.equals(ECLIPSELINK_SESSION_NAME)) {
-			this.sessionNameChanged(null);
-		}
-		else if (propertyName.equals(ECLIPSELINK_SESSIONS_XML)) {
-			this.sessionsXmlChanged(null);
-		}
-		else if (propertyName.equals(ECLIPSELINK_TARGET_DATABASE)) {
-			this.targetDatabaseChanged(null);
-		}
-		else if (propertyName.equals(ECLIPSELINK_TARGET_SERVER)) {
-			this.targetServerChanged(null);
-		}
-		else if (propertyName.equals(ECLIPSELINK_SESSION_INCLUDE_DESCRIPTOR_QUERIES)) {
-			this.includeDescriptorQueriesChanged(null);
-		}
-		else if (propertyName.equals(ECLIPSELINK_SESSION_EVENT_LISTENER)) {
-			this.eventListenerChanged(null);
-		}
-		else if (propertyName.equals(ECLIPSELINK_TEMPORAL_MUTABLE)) {
-			this.temporalMutableChanged(null);
-		}	
-	}
-
-	/**
-	 * Adds property names key/value pairs, where: 
-	 * 		key = EclipseLink property key
-	 * 		value = property id
-	 */
-	@Override
-	protected void addPropertyNames(Map<String, String> propertyNames) {
-		propertyNames.put(
-			ECLIPSELINK_SESSION_NAME,
-			SESSION_NAME_PROPERTY);
-		propertyNames.put(
-			ECLIPSELINK_SESSIONS_XML,
-			SESSIONS_XML_PROPERTY);
-		propertyNames.put(
-			ECLIPSELINK_SESSION_INCLUDE_DESCRIPTOR_QUERIES,
-			SESSION_INCLUDE_DESCRIPTOR_QUERIES_PROPERTY);
-		propertyNames.put(
-			ECLIPSELINK_TARGET_DATABASE,
-			TARGET_DATABASE_PROPERTY);
-		propertyNames.put(
-			ECLIPSELINK_TARGET_SERVER,
-			TARGET_SERVER_PROPERTY);
-		propertyNames.put(
-			ECLIPSELINK_SESSION_EVENT_LISTENER,
-			SESSION_EVENT_LISTENER_PROPERTY);
-		propertyNames.put(
-			ECLIPSELINK_TEMPORAL_MUTABLE,
-			TEMPORAL_MUTABLE_PROPERTY);
-	}
-
-	// ********** SessionName **********
-	public String getSessionName() {
-		return this.sessionName;
-	}
-
-	public void setSessionName(String newSessionName) {
-		String old = this.sessionName;
-		this.sessionName = newSessionName;
-		this.putProperty(SESSION_NAME_PROPERTY, newSessionName);
-		this.firePropertyChanged(SESSION_NAME_PROPERTY, old, newSessionName);
-	}
-
-	private void sessionNameChanged(String newValue) {
-		String old = this.sessionName;
-		this.sessionName = newValue;
-		this.firePropertyChanged(SESSION_NAME_PROPERTY, old, newValue);
-	}
-
-	public String getDefaultSessionName() {
-		return DEFAULT_SESSION_NAME;
-	}
-
-	// ********** SessionsXml **********
-	public String getSessionsXml() {
-		return this.sessionsXml;
-	}
-
-	public void setSessionsXml(String newSessionsXml) {
-		String old = this.sessionsXml;
-		this.sessionsXml = newSessionsXml;
-		this.putProperty(SESSIONS_XML_PROPERTY, newSessionsXml);
-		this.firePropertyChanged(SESSIONS_XML_PROPERTY, old, newSessionsXml);
-	}
-
-	private void sessionsXmlChanged(String newValue) {
-		String old = this.sessionsXml;
-		this.sessionsXml = newValue;
-		this.firePropertyChanged(SESSIONS_XML_PROPERTY, old, newValue);
-	}
-
-	public String getDefaultSessionsXml() {
-		return DEFAULT_SESSIONS_XML;
-	}
-
-	// ********** IncludeDescriptorQueries **********
-	public Boolean getIncludeDescriptorQueries() {
-		return this.includeDescriptorQueries;
-	}
-
-	public void setIncludeDescriptorQueries(Boolean newIncludeDescriptorQueries) {
-		Boolean old = this.includeDescriptorQueries;
-		this.includeDescriptorQueries = newIncludeDescriptorQueries;
-		this.putProperty(SESSION_INCLUDE_DESCRIPTOR_QUERIES_PROPERTY, newIncludeDescriptorQueries);
-		this.firePropertyChanged(SESSION_INCLUDE_DESCRIPTOR_QUERIES_PROPERTY, old, newIncludeDescriptorQueries);
-	}
-
-	private void includeDescriptorQueriesChanged(String stringValue) {
-		Boolean newValue = getBooleanValueOf(stringValue);
-		
-		Boolean old = this.includeDescriptorQueries;
-		this.includeDescriptorQueries = newValue;
-		this.firePropertyChanged(SESSION_INCLUDE_DESCRIPTOR_QUERIES_PROPERTY, old, newValue);
-	}
-
-	public Boolean getDefaultIncludeDescriptorQueries() {
-		return DEFAULT_SESSION_INCLUDE_DESCRIPTOR_QUERIES;
-	}
-
-	// ********** TargetDatabase **********
-	/**
-	 * Returns TargetDatabase or custom targetDatabase class.
-	 * 
-	 * @return EclipseLink string value for TargetDatabase enum or custom targetDatabase class
-	 */
-	public String getTargetDatabase() {
-		return this.targetDatabase;
-	}
-
-	/**
-	 * Sets EclipseLink targetDatabase.
-	 * 
-	 * @param newTargetDatabase - TargetDatabase
-	 */
-	public void setTargetDatabase(TargetDatabase newTargetDatabase) {
-		if( newTargetDatabase == null) {
-			this.setTargetDatabase_((String) null);
-			return;
-		}
-		this.setTargetDatabase_(getEclipseLinkStringValueOf(newTargetDatabase));
-	}
-
-	/**
-	 * Sets EclipseLink targetDatabase or custom targetDatabase.
-	 * 
-	 * @param newTargetDatabase -
-	 *            Can be a EclipseLink TargetDatabase literal or
-	 *            a fully qualified class name of a custom targetDatabase.
-	 */
-	public void setTargetDatabase(String newTargetDatabase) {
-		if( newTargetDatabase == null) {
-			this.setTargetDatabase_((String) null);
-			return;
-		}
-		TargetDatabase customTargetDatabase = TargetDatabase.getTargetDatabaseFor(newTargetDatabase);
-		if(customTargetDatabase == null) {	// custom TargetDatabase class
-			this.setTargetDatabase_(newTargetDatabase);
-		}
-		else {
-			this.setTargetDatabase(customTargetDatabase);
-		}
-	}
-	
-	private void setTargetDatabase_(String newTargetDatabase) {
-		String old = this.targetDatabase;
-		this.targetDatabase = newTargetDatabase;
-		this.putProperty(TARGET_DATABASE_PROPERTY, newTargetDatabase);
-		this.firePropertyChanged(TARGET_DATABASE_PROPERTY, old, newTargetDatabase);
-	}
-
-	private void targetDatabaseChanged(String newValue) {
-		String old = this.targetDatabase;
-		this.targetDatabase = newValue;
-		this.firePropertyChanged(TARGET_DATABASE_PROPERTY, old, newValue);
-	}
-	
-	public String getDefaultTargetDatabase() {
-		return DEFAULT_TARGET_DATABASE;
-	}
-
-	// ********** TargetServer **********
-	/**
-	 * Returns TargetServer or custom targetServer class.
-	 * 
-	 * @return EclipseLink string value for TargetServer enum or custom targetServer class
-	 */
-	public String getTargetServer() {
-		return this.targetServer;
-	}
-
-	/**
-	 * Sets EclipseLink targetServer.
-	 * 
-	 * @param newTargetServer - TargetServer
-	 */
-	public void setTargetServer(TargetServer newTargetServer) {
-		if( newTargetServer == null) {
-			this.setTargetServer_((String) null);
-			return;
-		}
-		this.setTargetServer_(getEclipseLinkStringValueOf(newTargetServer));
-	}
-
-	/**
-	 * Sets EclipseLink targetServer or custom targetServer.
-	 * 
-	 * @param newTargetServer -
-	 *            Can be a EclipseLink TargetServer literal or
-	 *            a fully qualified class name of a custom targetServer.
-	 */
-	public void setTargetServer(String newTargetServer) {
-		if( newTargetServer == null) {
-			this.setTargetServer_((String) null);
-			return;
-		}
-		TargetServer customTargetServer = TargetServer.getTargetServerFor(newTargetServer);
-		if(customTargetServer == null) {	// custom TargetServer class
-			this.setTargetServer_(newTargetServer);
-		}
-		else {
-			this.setTargetServer(customTargetServer);
-		}
-	}
-	
-	private void setTargetServer_(String newTargetServer) {
-		String old = this.targetServer;
-		this.targetServer = newTargetServer;
-		this.putProperty(TARGET_SERVER_PROPERTY, newTargetServer);
-		this.firePropertyChanged(TARGET_SERVER_PROPERTY, old, newTargetServer);
-	}
-
-	private void targetServerChanged(String newValue) {
-		String old = this.targetServer;
-		this.targetServer = newValue;
-		this.firePropertyChanged(TARGET_SERVER_PROPERTY, old, newValue);
-	}
-	
-	public String getDefaultTargetServer() {
-		return DEFAULT_TARGET_SERVER;
-	}
-
-	// ********** EventListener **********
-	public String getEventListener() {
-		return this.eventListener;
-	}
-
-	public void setEventListener(String newEventListener) {
-		String old = this.eventListener;
-		this.eventListener = newEventListener;
-		this.putProperty(SESSION_EVENT_LISTENER_PROPERTY, newEventListener);
-		this.firePropertyChanged(SESSION_EVENT_LISTENER_PROPERTY, old, newEventListener);
-	}
-
-	private void eventListenerChanged(String newValue) {
-		String old = this.eventListener;
-		this.eventListener = newValue;
-		this.firePropertyChanged(SESSION_EVENT_LISTENER_PROPERTY, old, newValue);
-	}
-
-	public String getDefaultEventListener() {
-		return DEFAULT_SESSION_EVENT_LISTENER;
-	}
-	
-	// ********** TemporalMutable **********
-
-	public Boolean getTemporalMutable() {
-		return this.temporalMutable;
-	}
-
-	public void setTemporalMutable(Boolean newTemporalMutable) {
-		Boolean old = this.temporalMutable;
-		this.temporalMutable = newTemporalMutable;
-		this.putProperty(TEMPORAL_MUTABLE_PROPERTY, newTemporalMutable);
-		this.firePropertyChanged(TEMPORAL_MUTABLE_PROPERTY, old, newTemporalMutable);
-	}
-
-	private void temporalMutableChanged(String stringValue) {
-		Boolean newValue = getBooleanValueOf(stringValue);
-		
-		Boolean old = this.temporalMutable;
-		this.temporalMutable = newValue;
-		this.firePropertyChanged(TEMPORAL_MUTABLE_PROPERTY, old, newValue);
-	}
-	
-	public Boolean getDefaultTemporalMutable() {
-		return DEFAULT_TEMPORAL_MUTABLE;
-	}
-
-}
\ No newline at end of file
diff --git a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/context/persistence/options/Options.java b/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/context/persistence/options/Options.java
deleted file mode 100644
index 3b74a25..0000000
--- a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/context/persistence/options/Options.java
+++ /dev/null
@@ -1,81 +0,0 @@
-/*******************************************************************************
-* Copyright (c) 2008 Oracle. All rights reserved.
-* This program and the accompanying materials are made available under the
-* terms of the Eclipse Public License v1.0, which accompanies this distribution
-* and is available at http://www.eclipse.org/legal/epl-v10.html.
-* 
-* Contributors:
-*     Oracle - initial API and implementation
-*******************************************************************************/
-package org.eclipse.jpt.eclipselink.core.internal.context.persistence.options;
-
-import org.eclipse.jpt.eclipselink.core.internal.context.persistence.EclipseLinkPersistenceUnitProperties;
-import org.eclipse.jpt.eclipselink.core.internal.context.persistence.PersistenceUnitProperties;
-
-/**
- *  Session Options
- */
-public interface Options extends PersistenceUnitProperties
-{
-	String getDefaultSessionName();
-	String getSessionName();
-	void setSessionName(String newSessionName); 
-		static final String SESSION_NAME_PROPERTY = "sessionName"; //$NON-NLS-1$
-		// EclipseLink key string
-		static final String ECLIPSELINK_SESSION_NAME = "eclipselink.session-name"; //$NON-NLS-1$
-		static final String DEFAULT_SESSION_NAME = "";	// no default //$NON-NLS-1$
-
-	String getDefaultSessionsXml();
-	String getSessionsXml();
-	void setSessionsXml(String newSessionsXml);
-		static final String SESSIONS_XML_PROPERTY = "sessionsXml"; //$NON-NLS-1$
-		// EclipseLink key string
-		static final String ECLIPSELINK_SESSIONS_XML = "eclipselink.sessions-xml"; //$NON-NLS-1$
-		static final String DEFAULT_SESSIONS_XML = "";	// no default //$NON-NLS-1$
-		
-	Boolean getDefaultIncludeDescriptorQueries();
-	Boolean getIncludeDescriptorQueries();
-	void setIncludeDescriptorQueries(Boolean newIncludeDescriptorQueries);
-		static final String SESSION_INCLUDE_DESCRIPTOR_QUERIES_PROPERTY = "includeDescriptorQueriesy"; //$NON-NLS-1$
-		// EclipseLink key string
-		static final String ECLIPSELINK_SESSION_INCLUDE_DESCRIPTOR_QUERIES = "eclipselink.session.include.descriptor.queries"; //$NON-NLS-1$
-		static final Boolean DEFAULT_SESSION_INCLUDE_DESCRIPTOR_QUERIES = Boolean.TRUE;
-		
-	String getDefaultTargetDatabase();
-	String getTargetDatabase();
-	void setTargetDatabase(String newTargetDatabase);
-	void setTargetDatabase(TargetDatabase newTargetDatabase);
-		static final String TARGET_DATABASE_PROPERTY = "targetDatabase"; //$NON-NLS-1$
-		// EclipseLink key string
-		static final String ECLIPSELINK_TARGET_DATABASE = "eclipselink.target-database"; //$NON-NLS-1$
-		static final String DEFAULT_TARGET_DATABASE = 
-			EclipseLinkPersistenceUnitProperties.getEclipseLinkStringValueOf(TargetDatabase.auto);
-
-	String getDefaultTargetServer();
-	String getTargetServer();
-	void setTargetServer(String newTargetServer);
-	void setTargetServer(TargetServer newTargetServer);
-		static final String TARGET_SERVER_PROPERTY = "targetServer"; //$NON-NLS-1$
-		// EclipseLink key string
-		static final String ECLIPSELINK_TARGET_SERVER = "eclipselink.target-server"; //$NON-NLS-1$
-		static final String DEFAULT_TARGET_SERVER = 
-			EclipseLinkPersistenceUnitProperties.getEclipseLinkStringValueOf(TargetServer.none);
-
-	String getDefaultEventListener();
-	String getEventListener();
-	void setEventListener(String newEventListener);
-		static final String SESSION_EVENT_LISTENER_PROPERTY = "eventListener"; //$NON-NLS-1$
-		// EclipseLink key string
-		static final String ECLIPSELINK_SESSION_EVENT_LISTENER = "eclipselink.session-event-listener"; //$NON-NLS-1$
-		static final String DEFAULT_SESSION_EVENT_LISTENER = null;	// no default
-		String ECLIPSELINK_EVENT_LISTENER_CLASS_NAME = "org.eclipse.persistence.sessions.SessionEventListener"; //$NON-NLS-1$
-
-	Boolean getDefaultTemporalMutable();
-	Boolean getTemporalMutable();
-	void setTemporalMutable(Boolean temporalMutable);
-		static final String TEMPORAL_MUTABLE_PROPERTY = "temporalMutable"; //$NON-NLS-1$
-		// EclipseLink key string
-		static final String ECLIPSELINK_TEMPORAL_MUTABLE = "eclipselink.temporal.mutable"; //$NON-NLS-1$
-		static final Boolean DEFAULT_TEMPORAL_MUTABLE = Boolean.FALSE;
-	
-}
diff --git a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/context/persistence/options/TargetDatabase.java b/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/context/persistence/options/TargetDatabase.java
deleted file mode 100644
index 9b7c64e..0000000
--- a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/context/persistence/options/TargetDatabase.java
+++ /dev/null
@@ -1,77 +0,0 @@
-/*******************************************************************************
-* Copyright (c) 2008 Oracle. All rights reserved.
-* This program and the accompanying materials are made available under the
-* terms of the Eclipse Public License v1.0, which accompanies this distribution
-* and is available at http://www.eclipse.org/legal/epl-v10.html.
-* 
-* Contributors:
-*     Oracle - initial API and implementation
-*******************************************************************************/
-package org.eclipse.jpt.eclipselink.core.internal.context.persistence.options;
-
-/**
- *  TargetDatabase
- */
-public enum TargetDatabase {
-			attunity,
-			auto,
-			cloudscape,
-			database,
-			db2,
-			db2mainframe,
-			dbase,
-			derby,
-			hsql,
-			informix,
-			javadb,
-			mysql,
-			oracle,
-			oracle11,
-			oracle10,
-			oracle9,
-			oracle8,
-			pointbase,
-			postgresql,
-			sqlanywhere,
-			sqlserver,
-			sybase,
-			timesten;
-
-	// EclipseLink value string
-	static final String ATTUNITY = "Attunity";
-    static final String AUTO = "Auto";
-    static final String CLOUDSCAPE = "Cloudscape";
-    static final String DATABASE = "Database";
-    static final String DB2 = "DB2";
-    static final String DB2MAINFRAME = "DB2Mainframe";
-    static final String DBASE = "DBase";
-    static final String DERBY = "Derby";
-    static final String HSQL = "HSQL";
-    static final String INFORMIX = "Informix";
-    static final String JAVADB = "JavaDB";
-    static final String MYSQL = "MySQL";
-    static final String ORACLE = "Oracle";
-    static final String ORACLE11 = "Oracle11";
-    static final String ORACLE10 = "Oracle10g";
-    static final String ORACLE9 = "Oracle9i";
-    static final String ORACLE8 = "Oracle8i";
-    static final String POINTBASE = "PointBase";
-    static final String POSTGRESQL = "PostgreSQL";
-    static final String SQLANYWHERE = "SQLAnywhere";
-    static final String SQLSERVER = "SQLServer";
-    static final String SYBASE = "Sybase";
-    static final String TIMESTEN = "TimesTen";
-
-	/**
-	 * Return the TargetDatabase value corresponding to the given literal.
-	 */
-	public static TargetDatabase getTargetDatabaseFor(String literal) {
-		
-		for( TargetDatabase targetDatabase : TargetDatabase.values()) {
-			if(targetDatabase.toString().equals(literal)) {
-				return targetDatabase;
-			}
-		}
-		return null;
-	}
-}
diff --git a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/context/persistence/options/TargetServer.java b/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/context/persistence/options/TargetServer.java
deleted file mode 100644
index e0ea2a0..0000000
--- a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/context/persistence/options/TargetServer.java
+++ /dev/null
@@ -1,49 +0,0 @@
-/*******************************************************************************
-* Copyright (c) 2008 Oracle. All rights reserved.
-* This program and the accompanying materials are made available under the
-* terms of the Eclipse Public License v1.0, which accompanies this distribution
-* and is available at http://www.eclipse.org/legal/epl-v10.html.
-* 
-* Contributors:
-*     Oracle - initial API and implementation
-*******************************************************************************/
-package org.eclipse.jpt.eclipselink.core.internal.context.persistence.options;
-
-/**
- *  TargetServer
- */
-public enum TargetServer {
-			none,
-			oc4j,
-			sunas9,
-			websphere,
-			websphere_6_1,
-			weblogic,
-			weblogic_9,
-			weblogic_10,
-			jboss;
-
-	// EclipseLink value string
-	static final String NONE = "None";
-	static final String OC4J = "OC4J";
-	static final String SUNAS9 = "SunAS9";
-	static final String WEBSPHERE = "WebSphere";
-	static final String WEBSPHERE_6_1 = "WebSphere_6_1";
-	static final String WEBLOGIC = "WebLogic";
-	static final String WEBLOGIC_9 = "WebLogic_9";
-	static final String WEBLOGIC_10 = "WebLogic_10";
-	static final String JBOSS = "JBoss";
-
-	/**
-	 * Return the TargetServer value corresponding to the given literal.
-	 */
-	public static TargetServer getTargetServerFor(String literal) {
-		
-		for( TargetServer targetServer : TargetServer.values()) {
-			if(targetServer.toString().equals(literal)) {
-				return targetServer;
-			}
-		}
-		return null;
-	}
-}
\ No newline at end of file
diff --git a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/context/persistence/schema/generation/DdlGenerationType.java b/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/context/persistence/schema/generation/DdlGenerationType.java
deleted file mode 100644
index 6abdfc3..0000000
--- a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/context/persistence/schema/generation/DdlGenerationType.java
+++ /dev/null
@@ -1,24 +0,0 @@
-/*******************************************************************************
-* Copyright (c) 2008 Oracle. All rights reserved.
-* This program and the accompanying materials are made available under the
-* terms of the Eclipse Public License v1.0, which accompanies this distribution
-* and is available at http://www.eclipse.org/legal/epl-v10.html.
-* 
-* Contributors:
-*     Oracle - initial API and implementation
-*******************************************************************************/
-package org.eclipse.jpt.eclipselink.core.internal.context.persistence.schema.generation;
-
-/**
- *  DdlGenerationType
- */
-public enum DdlGenerationType {
-	none, 
-	create_tables, 
-	drop_and_create_tables;
-	
-	// EclipseLink value string
-	public static final String NONE = "none";
-	public static final String CREATE_TABLES = "create-tables";
-	public static final String DROP_AND_CREATE_TABLES = "drop-and-create-tables";
-}
\ No newline at end of file
diff --git a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/context/persistence/schema/generation/EclipseLinkSchemaGeneration.java b/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/context/persistence/schema/generation/EclipseLinkSchemaGeneration.java
deleted file mode 100644
index 685ff17..0000000
--- a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/context/persistence/schema/generation/EclipseLinkSchemaGeneration.java
+++ /dev/null
@@ -1,226 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008, 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- *******************************************************************************/
-package org.eclipse.jpt.eclipselink.core.internal.context.persistence.schema.generation;
-
-import java.util.Map;
-import org.eclipse.jpt.core.context.persistence.PersistenceUnit;
-import org.eclipse.jpt.eclipselink.core.internal.context.persistence.EclipseLinkPersistenceUnitProperties;
-
-/**
- * EclipseLinkSchemaGeneration encapsulates EclipseLink SchemaGeneration
- * properties.
- */
-public class EclipseLinkSchemaGeneration
-	extends EclipseLinkPersistenceUnitProperties implements SchemaGeneration
-{
-	// ********** EclipseLink properties **********
-	
-	private OutputMode outputMode;
-	private DdlGenerationType ddlGenerationType;
-	private String createFileName;
-	private String dropFileName;
-	private String applicationLocation;
-
-	// ********** constructors/initialization **********
-	
-	public EclipseLinkSchemaGeneration(PersistenceUnit parent) {
-		super(parent);
-	}
-
-	/**
-	 * Initializes properties with values from the persistence unit.
-	 */
-	@Override
-	protected void initializeProperties() {
-		this.outputMode = 
-			this.getEnumValue(ECLIPSELINK_DDL_GENERATION_OUTPUT_MODE, OutputMode.values());
-		this.ddlGenerationType = 
-			this.getEnumValue(ECLIPSELINK_DDL_GENERATION_TYPE, DdlGenerationType.values());
-		this.createFileName = 
-			this.getStringValue(ECLIPSELINK_CREATE_FILE_NAME);
-		this.dropFileName = 
-			this.getStringValue(ECLIPSELINK_DROP_FILE_NAME);
-		this.applicationLocation = 
-			this.getStringValue(ECLIPSELINK_APPLICATION_LOCATION);
-	}
-
-	/**
-	 * Adds property names key/value pairs, where: key = EclipseLink property
-	 * key; value = property id
-	 */
-	@Override
-	protected void addPropertyNames(Map<String, String> propertyNames) {
-		propertyNames.put(
-			ECLIPSELINK_DDL_GENERATION_OUTPUT_MODE,
-			OUTPUT_MODE_PROPERTY);
-		propertyNames.put(
-			ECLIPSELINK_DDL_GENERATION_TYPE,
-			DDL_GENERATION_TYPE_PROPERTY);
-		propertyNames.put(
-			ECLIPSELINK_CREATE_FILE_NAME,
-			CREATE_FILE_NAME_PROPERTY);
-		propertyNames.put(
-			ECLIPSELINK_DROP_FILE_NAME,
-			DROP_FILE_NAME_PROPERTY);
-		propertyNames.put(
-			ECLIPSELINK_APPLICATION_LOCATION,
-			APPLICATION_LOCATION_PROPERTY);
-	}
-
-	// ********** behavior **********
-	
-	public void propertyValueChanged(String propertyName, String newValue) {
-		if (propertyName.equals(ECLIPSELINK_DDL_GENERATION_OUTPUT_MODE)) {
-			this.outputModeChanged(newValue);
-		}
-		else if (propertyName.equals(ECLIPSELINK_DDL_GENERATION_TYPE)) {
-			this.ddlGenerationTypeChanged(newValue);
-		}
-		else if (propertyName.equals(ECLIPSELINK_CREATE_FILE_NAME)) {
-			this.createFileNameChanged(newValue);
-		}
-		else if (propertyName.equals(ECLIPSELINK_DROP_FILE_NAME)) {
-			this.dropFileNameChanged(newValue);
-		}
-		else if (propertyName.equals(ECLIPSELINK_APPLICATION_LOCATION)) {
-			this.applicationLocationChanged(newValue);
-		}
-	}
-	
-	public void propertyRemoved(String propertyName) {
-		if (propertyName.equals(ECLIPSELINK_DDL_GENERATION_OUTPUT_MODE)) {
-			this.outputModeChanged(null);
-		}
-		else if (propertyName.equals(ECLIPSELINK_DDL_GENERATION_TYPE)) {
-			this.ddlGenerationTypeChanged(null);
-		}
-		else if (propertyName.equals(ECLIPSELINK_CREATE_FILE_NAME)) {
-			this.createFileNameChanged(null);
-		}
-		else if (propertyName.equals(ECLIPSELINK_DROP_FILE_NAME)) {
-			this.dropFileNameChanged(null);
-		}
-		else if (propertyName.equals(ECLIPSELINK_APPLICATION_LOCATION)) {
-			this.applicationLocationChanged(null);
-		}
-	}
-
-	// ********** DdlGenerationType **********
-	public DdlGenerationType getDdlGenerationType() {
-		return this.ddlGenerationType;
-	}
-
-	public void setDdlGenerationType(DdlGenerationType newDdlGenType) {
-		DdlGenerationType old = this.ddlGenerationType;
-		this.ddlGenerationType = newDdlGenType;
-		this.putProperty(DDL_GENERATION_TYPE_PROPERTY, newDdlGenType);
-		this.firePropertyChanged(DDL_GENERATION_TYPE_PROPERTY, old, newDdlGenType);
-	}
-
-	private void ddlGenerationTypeChanged(String stringValue) {
-		DdlGenerationType newValue = getEnumValueOf(stringValue, DdlGenerationType.values());
-		DdlGenerationType old = this.ddlGenerationType;
-		this.ddlGenerationType = newValue;
-		this.firePropertyChanged(DDL_GENERATION_TYPE_PROPERTY, old, newValue);
-	}
-
-	public DdlGenerationType getDefaultDdlGenerationType() {
-		return DEFAULT_SCHEMA_GENERATION_DDL_GENERATION_TYPE;
-	}
-
-	// ********** OutputMode **********
-	public OutputMode getOutputMode() {
-		return this.outputMode;
-	}
-
-	public void setOutputMode(OutputMode newOutputMode) {
-		OutputMode old = this.outputMode;
-		this.outputMode = newOutputMode;
-		this.putProperty(OUTPUT_MODE_PROPERTY, newOutputMode);
-		this.firePropertyChanged(OUTPUT_MODE_PROPERTY, old, newOutputMode);
-	}
-
-	private void outputModeChanged(String stringValue) {
-		OutputMode newValue = getEnumValueOf(stringValue, OutputMode.values());
-		OutputMode old = this.outputMode;
-		this.outputMode = newValue;
-		this.firePropertyChanged(OUTPUT_MODE_PROPERTY, old, newValue);
-	}
-
-	public OutputMode getDefaultOutputMode() {
-		return DEFAULT_SCHEMA_GENERATION_OUTPUT_MODE;
-	}
-
-	// ********** CreateFileName **********
-	public String getCreateFileName() {
-		return this.createFileName;
-	}
-
-	public void setCreateFileName(String newCreateFileName) {
-		String old = this.createFileName;
-		this.createFileName = newCreateFileName;
-		this.putProperty(CREATE_FILE_NAME_PROPERTY, newCreateFileName);
-		this.firePropertyChanged(CREATE_FILE_NAME_PROPERTY, old, newCreateFileName);
-	}
-
-	private void createFileNameChanged(String newValue) {
-		String old = this.createFileName;
-		this.createFileName = newValue;
-		this.firePropertyChanged(CREATE_FILE_NAME_PROPERTY, old, newValue);
-	}
-
-	public String getDefaultCreateFileName() {
-		return DEFAULT_SCHEMA_GENERATION_CREATE_FILE_NAME;
-	}
-
-	// ********** dropFileName **********
-	public String getDropFileName() {
-		return this.dropFileName;
-	}
-
-	public void setDropFileName(String newDropFileName) {
-		String old = this.dropFileName;
-		this.dropFileName = newDropFileName;
-		this.putProperty(DROP_FILE_NAME_PROPERTY, newDropFileName);
-		this.firePropertyChanged(DROP_FILE_NAME_PROPERTY, old, newDropFileName);
-	}
-
-	private void dropFileNameChanged(String newValue) {
-		String old = this.dropFileName;
-		this.dropFileName = newValue;
-		this.firePropertyChanged(DROP_FILE_NAME_PROPERTY, old, newValue);
-	}
-
-	public String getDefaultDropFileName() {
-		return DEFAULT_SCHEMA_GENERATION_DROP_FILE_NAME;
-	}
-
-	// ********** applicationLocation **********
-	public String getApplicationLocation() {
-		return this.applicationLocation;
-	}
-
-	public void setApplicationLocation(String newApplicationLocation) {
-		String old = this.applicationLocation;
-		this.applicationLocation = newApplicationLocation;
-		this.putProperty(APPLICATION_LOCATION_PROPERTY, newApplicationLocation);
-		this.firePropertyChanged(APPLICATION_LOCATION_PROPERTY, old, newApplicationLocation);
-	}
-
-	private void applicationLocationChanged(String newValue) {
-		String old = this.applicationLocation;
-		this.applicationLocation = newValue;
-		this.firePropertyChanged(APPLICATION_LOCATION_PROPERTY, old, newValue);
-	}
-
-	public String getDefaultApplicationLocation() {
-		return DEFAULT_SCHEMA_GENERATION_APPLICATION_LOCATION;
-	}
-}
diff --git a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/context/persistence/schema/generation/OutputMode.java b/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/context/persistence/schema/generation/OutputMode.java
deleted file mode 100644
index a8617da..0000000
--- a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/context/persistence/schema/generation/OutputMode.java
+++ /dev/null
@@ -1,24 +0,0 @@
-/*******************************************************************************
-* Copyright (c) 2008 Oracle. All rights reserved.
-* This program and the accompanying materials are made available under the
-* terms of the Eclipse Public License v1.0, which accompanies this distribution
-* and is available at http://www.eclipse.org/legal/epl-v10.html.
-* 
-* Contributors:
-*     Oracle - initial API and implementation
-*******************************************************************************/
-package org.eclipse.jpt.eclipselink.core.internal.context.persistence.schema.generation;
-
-/**
- *  OutputMode
- */
-public enum OutputMode {
-	both, 
-	sql_script, 
-	database;
-
-	// EclipseLink value string
-	public static final String BOTH = "both";
-	public static final String DATABASE = "database";
-	public static final String SQL_SCRIPT = "sql-script";
-}
diff --git a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/context/persistence/schema/generation/SchemaGeneration.java b/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/context/persistence/schema/generation/SchemaGeneration.java
deleted file mode 100644
index 71604ba..0000000
--- a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/context/persistence/schema/generation/SchemaGeneration.java
+++ /dev/null
@@ -1,59 +0,0 @@
-/*******************************************************************************
-* Copyright (c) 2008 Oracle. All rights reserved.
-* This program and the accompanying materials are made available under the
-* terms of the Eclipse Public License v1.0, which accompanies this distribution
-* and is available at http://www.eclipse.org/legal/epl-v10.html.
-* 
-* Contributors:
-*     Oracle - initial API and implementation
-*******************************************************************************/
-package org.eclipse.jpt.eclipselink.core.internal.context.persistence.schema.generation;
-
-import org.eclipse.jpt.eclipselink.core.internal.context.persistence.PersistenceUnitProperties;
-
-/**
- *  SchemaGeneration
- */
-public interface SchemaGeneration extends PersistenceUnitProperties
-{
-	DdlGenerationType getDefaultDdlGenerationType();
-	DdlGenerationType getDdlGenerationType();
-	void setDdlGenerationType(DdlGenerationType ddlGenerationType);
-		static final String DDL_GENERATION_TYPE_PROPERTY = "ddlGenerationType"; //$NON-NLS-1$
-		// EclipseLink key string
-		static final String ECLIPSELINK_DDL_GENERATION_TYPE = "eclipselink.ddl-generation"; //$NON-NLS-1$
-		static final DdlGenerationType DEFAULT_SCHEMA_GENERATION_DDL_GENERATION_TYPE = DdlGenerationType.none;
-
-	OutputMode getDefaultOutputMode();
-	OutputMode getOutputMode();
-	void setOutputMode(OutputMode outputMode); // put
-		static final String OUTPUT_MODE_PROPERTY = "outputMode"; //$NON-NLS-1$
-		// EclipseLink key string
-		static final String ECLIPSELINK_DDL_GENERATION_OUTPUT_MODE = "eclipselink.ddl-generation.output-mode"; //$NON-NLS-1$
-		static final OutputMode DEFAULT_SCHEMA_GENERATION_OUTPUT_MODE = null;		// No Default
-
-	String getDefaultCreateFileName();
-	String getCreateFileName();
-	void setCreateFileName(String createFileName);
-		static final String CREATE_FILE_NAME_PROPERTY = "createFileName"; //$NON-NLS-1$
-		// EclipseLink key string
-		static final String ECLIPSELINK_CREATE_FILE_NAME = "eclipselink.create-ddl-jdbc-file-name"; //$NON-NLS-1$
-		static final String DEFAULT_SCHEMA_GENERATION_CREATE_FILE_NAME = "createDDL.jdbc"; //$NON-NLS-1$
-	
-	String getDefaultDropFileName();
-	String getDropFileName();
-	void setDropFileName(String dropFileName);
-		static final String DROP_FILE_NAME_PROPERTY = "dropFileName"; //$NON-NLS-1$
-		// EclipseLink key string
-		static final String ECLIPSELINK_DROP_FILE_NAME = "eclipselink.drop-ddl-jdbc-file-name"; //$NON-NLS-1$
-		static final String DEFAULT_SCHEMA_GENERATION_DROP_FILE_NAME = "dropDDL.jdbc"; //$NON-NLS-1$
-		
-	String getDefaultApplicationLocation();
-	String getApplicationLocation();
-	void setApplicationLocation(String applicationLocation);
-		static final String APPLICATION_LOCATION_PROPERTY = "applicationLocation"; //$NON-NLS-1$
-		// EclipseLink key string
-		static final String ECLIPSELINK_APPLICATION_LOCATION = "eclipselink.application-location"; //$NON-NLS-1$
-		static final String DEFAULT_SCHEMA_GENERATION_APPLICATION_LOCATION = "."; //$NON-NLS-1$
-	
-}
diff --git a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/ddlgen/EclipseLinkDDLGenerator.java b/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/ddlgen/EclipseLinkDDLGenerator.java
deleted file mode 100644
index ddd011d..0000000
--- a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/ddlgen/EclipseLinkDDLGenerator.java
+++ /dev/null
@@ -1,640 +0,0 @@
-/*******************************************************************************
-* Copyright (c) 2008, 2009 Oracle. All rights reserved.
-* This program and the accompanying materials are made available under the
-* terms of the Eclipse Public License v1.0, which accompanies this distribution
-* and is available at http://www.eclipse.org/legal/epl-v10.html.
-* 
-* Contributors:
-*     Oracle - initial API and implementation
-*******************************************************************************/
-package org.eclipse.jpt.eclipselink.core.internal.ddlgen;
-
-import java.io.File;
-import java.io.FileOutputStream;
-import java.io.IOException;
-import java.net.URL;
-import java.util.ArrayList;
-import java.util.Collection;
-import java.util.HashSet;
-import java.util.List;
-import java.util.Properties;
-
-import org.eclipse.core.resources.IProject;
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.FileLocator;
-import org.eclipse.core.runtime.IPath;
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.core.runtime.NullProgressMonitor;
-import org.eclipse.core.runtime.Path;
-import org.eclipse.core.runtime.Platform;
-import org.eclipse.core.runtime.Status;
-import org.eclipse.core.runtime.jobs.Job;
-import org.eclipse.debug.core.DebugPlugin;
-import org.eclipse.debug.core.ILaunch;
-import org.eclipse.debug.core.ILaunchConfiguration;
-import org.eclipse.debug.core.ILaunchConfigurationType;
-import org.eclipse.debug.core.ILaunchConfigurationWorkingCopy;
-import org.eclipse.debug.core.ILaunchManager;
-import org.eclipse.debug.core.ILaunchesListener2;
-import org.eclipse.jdt.core.IJavaProject;
-import org.eclipse.jdt.launching.IJavaLaunchConfigurationConstants;
-import org.eclipse.jdt.launching.IRuntimeClasspathEntry;
-import org.eclipse.jdt.launching.IVMInstall;
-import org.eclipse.jdt.launching.JavaRuntime;
-import org.eclipse.jpt.core.JpaPlatform;
-import org.eclipse.jpt.core.JpaProject;
-import org.eclipse.jpt.core.internal.JptCoreMessages;
-import org.eclipse.jpt.db.ConnectionProfile;
-import org.eclipse.jpt.eclipselink.core.internal.JptEclipseLinkCorePlugin;
-import org.eclipse.jpt.eclipselink.core.internal.context.persistence.connection.Connection;
-import org.eclipse.jpt.eclipselink.core.internal.context.persistence.customization.Customization;
-import org.eclipse.jpt.eclipselink.core.internal.context.persistence.logging.Logging;
-import org.eclipse.jpt.eclipselink.core.internal.context.persistence.logging.LoggingLevel;
-import org.eclipse.jpt.eclipselink.core.internal.context.persistence.schema.generation.DdlGenerationType;
-import org.eclipse.jpt.eclipselink.core.internal.context.persistence.schema.generation.OutputMode;
-import org.eclipse.jpt.eclipselink.core.internal.context.persistence.schema.generation.SchemaGeneration;
-import org.eclipse.osgi.service.datalocation.Location;
-import org.eclipse.osgi.util.ManifestElement;
-import org.eclipse.wst.validation.ValidationFramework;
-import org.osgi.framework.Bundle;
-import org.osgi.framework.BundleException;
-
-/**
- *  EclipseLinkDLLGenerator launches the EclipseLink DDL generator in a separate VM.
- *  For this it will create a Java Configuration named "EclipseLink" 
- *  in the target workspace (note: the configuration will be overridden at each run).
- *  It will than launch the configuration created with the login information from 
- *  the current Dali project, and passes it to EclipseLink.
- *  
- *  Pre-req in PDE environment:
- *  	org.eclipse.jpt.eclipselink.core.ddlgen.jar in ECLIPSE_HOME/plugins
- */
-public class EclipseLinkDDLGenerator
-{
-	static public String ECLIPSELINK_DDL_GEN_JAR_VERSION = "1.0.100";	//$NON-NLS-1$
-	static public String LAUNCH_CONFIG_NAME = "EclipseLink";   //$NON-NLS-1$
-	static public String DDL_GEN_PACKAGE_NAME = "org.eclipse.jpt.eclipselink.core.ddlgen";   //$NON-NLS-1$
-	static public String ECLIPSELINK_DDL_GEN_CLASS = DDL_GEN_PACKAGE_NAME + ".Main";	  //$NON-NLS-1$
-	static public String ECLIPSELINK_DDL_GEN_JAR = DDL_GEN_PACKAGE_NAME + "_";	//$NON-NLS-1$
-	static public String BUNDLE_CLASSPATH = "Bundle-ClassPath";	  //$NON-NLS-1$
-	static public String PROPERTIES_FILE_NAME = "login.properties";	  //$NON-NLS-1$
-	static public String PLUGINS_DIR = "plugins/";	  //$NON-NLS-1$
-	private IVMInstall jre;
-	private ILaunchConfigurationWorkingCopy launchConfig;
-	private ILaunch launch;
-	
-	private String puName;
-	private JpaProject jpaProject;
-	private String projectLocation;
-	private boolean isDebug = false;
-	
-	// ********** constructors **********
-	
-	public static void generate(String puName, JpaProject project, String projectLocation, IProgressMonitor monitor) {
-		if (puName == null || puName.length() == 0 || project == null) {
-			throw new NullPointerException();
-		}
-		new EclipseLinkDDLGenerator(puName, project, projectLocation, monitor).generate();
-	}
-
-	private EclipseLinkDDLGenerator(String puName, JpaProject jpaProject, String projectLocation, @SuppressWarnings("unused") IProgressMonitor monitor) {
-		super();
-		this.puName = puName;
-		this.jpaProject = jpaProject;
-		this.projectLocation = projectLocation;
-		this.initialize();
-	}
-
-	// ********** behavior **********
-	
-	protected void initialize() {
-		try {
-			this.jre = this.getProjectJRE();
-			if (this.jre == null) {
-				String message = "Could not identify the VM.";
-				throw new RuntimeException(message);
-			}
-			this.launchConfig = this.buildLaunchConfiguration();
-		} 
-		catch (CoreException e) {
-			throw new RuntimeException(e);
-		}
-	}
-
-	protected void generate() {
-		this.preGenerate();
-		String propertiesFile  = this.projectLocation + "/" + PROPERTIES_FILE_NAME;
-		
-		this.initializeLaunchConfiguration(this.projectLocation, propertiesFile);
-
-		this.saveLoginProperties(this.projectLocation, propertiesFile);
-
-		this.addLaunchListener();
-		this.launch = this.saveAndLaunchConfig();
-	}
-	
-	private void initializeLaunchConfiguration(String projectLocation, String propertiesFile) {
-
-		this.specifyJRE(this.jre.getName(), this.jre.getVMInstallType().getId());
-		
-		this.specifyProject(this.jpaProject.getProject().getName()); 
-		this.specifyMainType(ECLIPSELINK_DDL_GEN_CLASS);	
-		
-		this.specifyProgramArguments(this.puName, propertiesFile);  // -pu & -p
-		this.specifyWorkingDir(projectLocation); 
-
-		this.specifyClasspathProperties(this.jpaProject, this.buildJdbcJarPath(), this.buildBootstrapJarPath());
-	}
-	
-	private void addLaunchListener() {
-
-		this.getLaunchManager().addLaunchListener(this.buildLaunchListener());
-	}
-	
-	protected void preGenerate() {
-		//disconnect since the runtime provider will need to connect to generate the tables
-		ConnectionProfile cp = this.jpaProject.getConnectionProfile();
-		if (cp != null) {
-			cp.disconnect();
-		}
-	}
-	
-	protected void postGenerate() {
-		try {
-			if ( ! this.isDebug) {
-				this.removeLaunchConfiguration(LAUNCH_CONFIG_NAME);
-			}
-		}
-		catch ( CoreException e) {
-			throw new RuntimeException(e);
-		}
-		//reconnect since we disconnected in preGenerate(), 
-		ConnectionProfile cp = this.jpaProject.getConnectionProfile();
-		if (cp != null) {
-			cp.connect();
-		}
-		
-		this.validateProject();
-	}
-
-	protected void validateProject() {
-		IProject project = this.jpaProject.getProject();
-		ValidateJob job = new ValidateJob(project);
-		job.setRule(project);
-		job.schedule();
-	}
-
-	/**
-	 * Performs validation after tables have been generated
-	 */
-	private class ValidateJob extends Job 
-	{	
-		private IProject project;
-		
-		
-		public ValidateJob(IProject project) {
-			super(JptCoreMessages.VALIDATE_JOB);
-			this.project = project;
-		}
-		
-		
-		@Override
-		protected IStatus run(IProgressMonitor monitor) {
-			IStatus status = Status.OK_STATUS;
-			try {
-				ValidationFramework.getDefault().validate(
-					new IProject[] {this.project}, true, false, monitor);
-			}
-			catch (CoreException ce) {
-				status = Status.CANCEL_STATUS;
-			}
-			return status;
-		}
-	}
-	
-	private IPath buildJdbcJarPath() {
-		return new Path(this.getJpaProjectConnectionDriverJarList());
-	}
-	
-	private String getJpaProjectConnectionDriverJarList() {
-		ConnectionProfile cp = this.jpaProject.getConnectionProfile();
-		return (cp == null) ? "" : cp.getDriverJarList(); //$NON-NLS-1$
-	}
-	
-	private IPath buildBootstrapJarPath() {
-		try {
-			File jarInstallDir = this.getBundleParentDir(JptEclipseLinkCorePlugin.PLUGIN_ID);
-
-			List<File> result = new ArrayList<File>();
-			this.findFile(ECLIPSELINK_DDL_GEN_JAR, jarInstallDir, result);
-			if (result.isEmpty()) {
-				throw new RuntimeException("Could not find: " + DDL_GEN_PACKAGE_NAME + ".jar in: " + jarInstallDir);
-			}
-			File ddlGenJarFile = result.get(0);
-			String ddlGenJarPath = ddlGenJarFile.getCanonicalPath();
-			return new Path(ddlGenJarPath);
-		}
-		catch (IOException e) {
-			throw new RuntimeException(e);
-		}
-	}
-
-	private void findFile(String fileName, File directory, List<? super File> list) {
-		if(directory.listFiles() == null) {
-			throw new RuntimeException("Could not find directory: " + directory);
-		}
-		for (File file : directory.listFiles()) {
-			if (file.getName().startsWith(fileName)) {
-				list.add(file);
-			}
-			if (file.isDirectory()) {
-				this.findFile(fileName, file, list);
-			}
-		}
-	} 
-	
-	private File getBundleParentDir(String bundleName) throws IOException {
-
-		if (Platform.inDevelopmentMode()) {
-			Location eclipseHomeLoc = Platform.getInstallLocation();
-			String eclipseHome = eclipseHomeLoc.getURL().getPath();
-			if ( ! eclipseHome.endsWith(PLUGINS_DIR)) {
-				eclipseHome += PLUGINS_DIR;
-			}
-			return new File(eclipseHome);
-		}
-		Bundle bundle = Platform.getBundle(bundleName);
-		return FileLocator.getBundleFile(bundle).getParentFile();
-	}
-
-	private ILaunchesListener2 buildLaunchListener() {
-		return new ILaunchesListener2() {
-			
-			public void launchesTerminated(ILaunch[] launches) {
-				for (int i = 0; i < launches.length; i++) {
-					ILaunch launch = launches[i];
-					if (launch.equals(EclipseLinkDDLGenerator.this.getLaunch())) {
-
-						EclipseLinkDDLGenerator.this.postGenerate();
-						return;
-					}
-				}
-			}
-
-			public void launchesAdded(ILaunch[] launches) {
-				// not interested to this event
-			}
-
-			public void launchesChanged(ILaunch[] launches) {
-				// not interested to this event
-			}
-
-			public void launchesRemoved(ILaunch[] launches) {
-				// not interested to this event
-			}
-		};
-	}
-
-	// ********** Setting Launch Configuration **********
-	
-	private void specifyJRE(String jreName, String vmId) {
-
-		this.launchConfig.setAttribute(IJavaLaunchConfigurationConstants.ATTR_JRE_CONTAINER_PATH, jreName);
-		this.launchConfig.setAttribute(IJavaLaunchConfigurationConstants.ATTR_JRE_CONTAINER_PATH, vmId);
-	}
-	
-	private void specifyProject(String projectName) {
-
-		this.launchConfig.setAttribute(IJavaLaunchConfigurationConstants.ATTR_PROJECT_NAME, projectName);
-	}
-	
-	private void specifyMainType(String mainType) {
-
-		this.launchConfig.setAttribute(IJavaLaunchConfigurationConstants.ATTR_MAIN_TYPE_NAME, mainType);
-	}
-	
-	private void specifyProgramArguments(String puName, String propertiesPath) {
-
-		StringBuffer programArguments = new StringBuffer();
-		programArguments.append(this.buildPuNameArgument(puName));
-		programArguments.append(this.buildPropertiesFileArgument(propertiesPath));
-		programArguments.append(this.buildDebugArgument());
-		
-		this.launchConfig.setAttribute(IJavaLaunchConfigurationConstants.ATTR_PROGRAM_ARGUMENTS, programArguments.toString());
-	}
-
-	private void specifyClasspathProperties(JpaProject project, IPath jdbcJar, IPath bootstrapJar)  {
-		List<String> classpath = new ArrayList<String>();
-		try {
-			// DDL_GEN jar
-			classpath.add(this.getArchiveClasspathEntry(bootstrapJar).getMemento());
-			// Default Project classpath
-			classpath.add(this.getDefaultProjectClasspathEntry(project.getJavaProject()).getMemento());
-			// Osgi Bundles
-			classpath.addAll(this.getPersistenceOsgiBundlesMemento());
-			// JDBC jar
-			classpath.add(this.getArchiveClasspathEntry(jdbcJar).getMemento());
-			// System Library  
-			classpath.add(this.getSystemLibraryClasspathEntry().getMemento());
-		}
-		catch (CoreException e) {
-			throw new RuntimeException("An error occurs generating a memento", e);
-		}
-		this.launchConfig.setAttribute(IJavaLaunchConfigurationConstants.ATTR_CLASSPATH, classpath);
-		this.launchConfig.setAttribute(IJavaLaunchConfigurationConstants.ATTR_DEFAULT_CLASSPATH, false);
-	}
-	
-	private void specifyWorkingDir(String projectLocation) {
-		
-		File workingDir = new Path(projectLocation).toFile();
-		this.launchConfig.setAttribute(IJavaLaunchConfigurationConstants.ATTR_WORKING_DIRECTORY, workingDir.getAbsolutePath());
-	}
-
-	// ********** ClasspathEntry **********
-	
-	private IRuntimeClasspathEntry getSystemLibraryClasspathEntry() throws CoreException {
-
-		IPath systemLibsPath = new Path(JavaRuntime.JRE_CONTAINER);
-		return JavaRuntime.newRuntimeContainerClasspathEntry(systemLibsPath, IRuntimeClasspathEntry.STANDARD_CLASSES);
-	}
-	
-	private IRuntimeClasspathEntry getDefaultProjectClasspathEntry(IJavaProject project) {
-
-		IRuntimeClasspathEntry projectEntry = JavaRuntime.newDefaultProjectClasspathEntry(project);
-		projectEntry.setClasspathProperty(IRuntimeClasspathEntry.USER_CLASSES);
-		
-		return projectEntry;
-	}
-	
-	private IRuntimeClasspathEntry getArchiveClasspathEntry(IPath archivePath) {
-
-		IRuntimeClasspathEntry archiveEntry = JavaRuntime.newArchiveRuntimeClasspathEntry(archivePath);
-		archiveEntry.setClasspathProperty(IRuntimeClasspathEntry.USER_CLASSES);
-		
-		return archiveEntry;
-	}
-	
-	private IRuntimeClasspathEntry getBundleClasspathEntry(String bundleId) {
-
-		IPath persistClasspath = this.getBundleClasspath(bundleId);
-		IRuntimeClasspathEntry bundleEntry = this.getArchiveClasspathEntry(persistClasspath);
-		
-		return bundleEntry;
-	}
-
-	// ********** LaunchConfig **********
-	
-	private ILaunch saveAndLaunchConfig() {
-		ILaunchConfiguration configuration = null;
-		ILaunch result = null;
-		try {
-			configuration = this.launchConfig.doSave();
-		}
-		catch (CoreException saveException) {
-			throw new RuntimeException("Could not save LaunchConfig", saveException);
-		}
-		 try {
-			result = configuration.launch(ILaunchManager.RUN_MODE, new NullProgressMonitor());
-		}
-		catch (CoreException lauchException) {
-			throw new RuntimeException("An error occured during launch", lauchException);
-		}
-		return result;
-	}
-
-	private ILaunchConfigurationWorkingCopy buildLaunchConfiguration() throws CoreException {
-		ILaunchConfigurationWorkingCopy launchConfig = null;
-		this.removeLaunchConfiguration( LAUNCH_CONFIG_NAME);
-
-		ILaunchManager manager = DebugPlugin.getDefault().getLaunchManager();
-		ILaunchConfigurationType type = manager.getLaunchConfigurationType(IJavaLaunchConfigurationConstants.ID_JAVA_APPLICATION);
-
-		launchConfig = type.newInstance(null, LAUNCH_CONFIG_NAME);
-		return launchConfig;
-	}
-
-	private void removeLaunchConfiguration(String launchConfigurationName) throws CoreException {
-
-		ILaunchManager manager = DebugPlugin.getDefault().getLaunchManager();
-		ILaunchConfigurationType type = manager.getLaunchConfigurationType(IJavaLaunchConfigurationConstants.ID_JAVA_APPLICATION);
-	
-		ILaunchConfiguration[] configurations = manager.getLaunchConfigurations(type);
-				for (int i = 0; i < configurations.length; i++) {
-			ILaunchConfiguration configuration = configurations[i];
-			if (configuration.getName().equals(launchConfigurationName)) {
-				configuration.delete();
-				break;
-			}
-		}
-	}
-
-	// ********** EclipseLink properties **********
-	
-	private void buildProjectLocationProperty(Properties properties, String location) {
-		this.putProperty(properties, 
-			SchemaGeneration.ECLIPSELINK_APPLICATION_LOCATION,
-			location);
-	}
-	
-	private void buildDDLModeProperties(Properties properties) {
-		this.putProperty(properties,  
-			SchemaGeneration.ECLIPSELINK_DDL_GENERATION_TYPE,
-			DdlGenerationType.DROP_AND_CREATE_TABLES);
-		this.putProperty(properties,  
-			SchemaGeneration.ECLIPSELINK_DDL_GENERATION_OUTPUT_MODE,
-			OutputMode.DATABASE);
-	}
-	
-	private void buildConnectionProperties(Properties properties) {
-		ConnectionProfile cp = this.jpaProject.getConnectionProfile();
-
-		this.putProperty(properties,  
-			Connection.ECLIPSELINK_BIND_PARAMETERS,
-			"false");
-		this.putProperty(properties, 
-			Connection.ECLIPSELINK_DRIVER,
-			(cp == null) ? "" : cp.getDriverClassName());
-		this.putProperty(properties,
-			Connection.ECLIPSELINK_URL,
-			(cp == null) ? "" : cp.getURL());
-		this.putProperty(properties,
-			Connection.ECLIPSELINK_USER,
-			(cp == null) ? "" : cp.getUserName());
-		this.putProperty(properties,
-			Connection.ECLIPSELINK_PASSWORD,
-			(cp == null) ? "" : cp.getUserPassword());
-	}
-	
-	private void buildConnectionPoolingProperties(Properties properties) {
-		this.putProperty(properties,
-			Connection.ECLIPSELINK_READ_CONNECTIONS_SHARED,
-			"true");
-	}
-	
-	private void buildLoggingProperties(Properties properties) {
-		this.putProperty(properties,
-			Logging.ECLIPSELINK_LEVEL,
-			LoggingLevel.FINE);
-		this.putProperty(properties,
-			Logging.ECLIPSELINK_TIMESTAMP,
-			"false");
-		this.putProperty(properties,
-			Logging.ECLIPSELINK_THREAD,
-			"false");
-		this.putProperty(properties,
-			Logging.ECLIPSELINK_SESSION,
-			"false");
-		this.putProperty(properties,
-			Logging.ECLIPSELINK_EXCEPTIONS,
-			"true");
-	}
-	
-	private void buildCustomizationProperties(Properties properties) {
-		this.putProperty(properties,
-			Customization.ECLIPSELINK_THROW_EXCEPTIONS,
-			"true");
-	}
-	
-	private void putProperty(Properties properties, String key, String value) {
-		properties.put(key, (value == null) ? "" : value);
-	}
-	
-	private void saveLoginProperties(String projectLocation, String propertiesFile) {
-		Properties elProperties = new Properties();
-		
-		this.buildConnectionProperties(elProperties);
-		
-		this.buildConnectionPoolingProperties(elProperties);
-		
-		this.buildLoggingProperties(elProperties);
-		
-		this.buildCustomizationProperties(elProperties);
-		
-		this.buildDDLModeProperties(elProperties);
-
-		this.buildProjectLocationProperty(elProperties, projectLocation);
-	    try {
-	        File file = new File(propertiesFile);
-	        file.createNewFile();
-	        FileOutputStream stream = new FileOutputStream(file);
-	        elProperties.store(stream, null);
-		    stream.close();
-	    }
-	    catch (Exception e) {
-	    	String message = "Error saving: " + propertiesFile;
-			throw new RuntimeException(message, e);
-		}
-	}
-
-	// ********** Main arguments **********
-
-	private String buildPuNameArgument(String puName) {
-		return " -pu \"" + puName + "\"";
-	}
-	
-	private String buildPropertiesFileArgument(String propertiesFile) {
-		return " -p \"" + propertiesFile + "\"";
-	}
-	
-	private String buildDebugArgument() {
-		return (this.isDebug) ? " -debug" : "";
-	}
-	
-	// ********** Queries **********
-	
-	protected JpaPlatform getPlatform() {
-		return this.jpaProject.getJpaPlatform();
-	}
-	
-	protected ILaunch getLaunch() {
-		return this.launch;
-	}
-	
-	protected ILaunchManager getLaunchManager() {
-		return DebugPlugin.getDefault().getLaunchManager();
-	}
-	
-	private IVMInstall getProjectJRE() throws CoreException {
-		return JavaRuntime.getVMInstall(this.jpaProject.getJavaProject());
-	}
-
-	// ********** Bundles *********
-
-	private Collection<String> getPersistenceOsgiBundlesMemento() throws CoreException {
-
-		Collection<String> result = new HashSet<String>();
-		if (javaxPersistenceBundleExists()) {
-			result.add(this.getBundleClasspathEntry(JAVAX_PERSISTENCE_BUNDLE).getMemento());
-			result.add(this.getBundleClasspathEntry(ORG_ECLIPSE_PERSISTENCE_CORE_BUNDLE).getMemento());
-			result.add(this.getBundleClasspathEntry(ORG_ECLIPSE_PERSISTENCE_ASM_BUNDLE).getMemento());
-			result.add(this.getBundleClasspathEntry(ORG_ECLIPSE_PERSISTENCE_ANTLR_BUNDLE).getMemento());
-			result.add(this.getBundleClasspathEntry(ORG_ECLIPSE_PERSISTENCE_JPA_BUNDLE).getMemento());
-		}
-		return result;
-	}
-	
-	private IPath getBundleClasspath(String pluginID) {
-		Bundle bundle = Platform.getBundle(pluginID);
-		if (bundle == null) {
-			throw new RuntimeException(pluginID + " cannot be retrieved from the Platform");
-		}
-		return this.getClassPath(bundle);
-	}
-
-	private IPath getClassPath(Bundle bundle) {
-		String path = (String) bundle.getHeaders().get(BUNDLE_CLASSPATH);
-		if (path == null) {
-			path = ".";
-		}
-		ManifestElement[] elements = null;
-		try {
-			elements = ManifestElement.parseHeader(BUNDLE_CLASSPATH, path);
-		}
-		catch (BundleException e) {
-			throw new RuntimeException("Error parsing bundle header: " + bundle, e);
-		}
-		if (elements != null) {
-			for (int i = 0; i < elements.length; ++i) {
-				ManifestElement element = elements[i];
-				String value = element.getValue();
-				if (".".equals(value)) {
-					value = "/";		//$NON-NLS-1$
-				}
-				URL url = bundle.getEntry(value);
-				if (url != null) {
-					try {
-						URL resolvedURL = FileLocator.resolve(url);
-						String filestring = FileLocator.toFileURL(resolvedURL).getFile();
-		                if (filestring.startsWith("file:")) {	//$NON-NLS-1$
-		                	filestring = filestring.substring(filestring.indexOf(':') + 1);
-		                }
-		                if (filestring.endsWith("!/")) {		//$NON-NLS-1$
-		                	filestring = filestring.substring(0, filestring.lastIndexOf('!'));
-		                }
-						File file = new File(filestring);
-						String filePath = file.getCanonicalPath();
-						return new Path(filePath);
-					}
-					catch (IOException e) {
-						throw new RuntimeException("Error locating bundle: " + bundle, e);
-					}
-				}
-			}
-		}
-		return null;
-	}
-	
-	private boolean javaxPersistenceBundleExists() {
-		return Platform.getBundle(JAVAX_PERSISTENCE_BUNDLE) != null;
-	}
-
-	// ********** constants **********
-
-	String JAVAX_PERSISTENCE_BUNDLE = "javax.persistence";					//$NON-NLS-1$
-	String ORG_ECLIPSE_PERSISTENCE_CORE_BUNDLE = "org.eclipse.persistence.core";	//$NON-NLS-1$
-	String ORG_ECLIPSE_PERSISTENCE_ASM_BUNDLE = "org.eclipse.persistence.asm";	//$NON-NLS-1$
-	String ORG_ECLIPSE_PERSISTENCE_ANTLR_BUNDLE = "org.eclipse.persistence.antlr";	//$NON-NLS-1$
-	String ORG_ECLIPSE_PERSISTENCE_JPA_BUNDLE = "org.eclipse.persistence.jpa";	//$NON-NLS-1$
-
-}
diff --git a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/operations/EclipseLink1_1OrmFileCreationDataModelProvider.java b/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/operations/EclipseLink1_1OrmFileCreationDataModelProvider.java
deleted file mode 100644
index 753e073..0000000
--- a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/operations/EclipseLink1_1OrmFileCreationDataModelProvider.java
+++ /dev/null
@@ -1,46 +0,0 @@
-/*******************************************************************************
- *  Copyright (c) 2009  Oracle. 
- *  All rights reserved.  This program and the accompanying materials are 
- *  made available under the terms of the Eclipse Public License v1.0 which 
- *  accompanies this distribution, and is available at 
- *  http://www.eclipse.org/legal/epl-v10.html
- *  
- *  Contributors: 
- *  	Oracle - initial API and implementation
- *******************************************************************************/
-package org.eclipse.jpt.eclipselink.core.internal.operations;
-
-import org.eclipse.core.runtime.Path;
-import org.eclipse.jpt.core.internal.operations.OrmFileCreationDataModelProvider;
-import org.eclipse.jpt.eclipselink.core.internal.EclipseLink1_1JpaPlatformProvider;
-import org.eclipse.jpt.eclipselink.core.internal.JptEclipseLinkCorePlugin;
-import org.eclipse.wst.common.frameworks.datamodel.IDataModelOperation;
-
-public class EclipseLink1_1OrmFileCreationDataModelProvider extends OrmFileCreationDataModelProvider
-{
-	/**
-	 * required default constructor
-	 */
-	public EclipseLink1_1OrmFileCreationDataModelProvider() {
-		super();
-	}
-	
-	
-	@Override
-	public IDataModelOperation getDefaultOperation() {
-		return new EclipseLink1_1OrmFileCreationOperation(getDataModel());
-	}
-	
-	@Override
-	public Object getDefaultProperty(String propertyName) {
-		if (propertyName.equals(FILE_PATH)) {
-			return new Path(JptEclipseLinkCorePlugin.DEFAULT_ECLIPSELINK_ORM_XML_FILE_PATH).toPortableString();
-		}
-		return super.getDefaultProperty(propertyName);
-	}
-	
-	@Override
-	protected boolean isSupportedPlatformId(String id) {
-		return id.equals(EclipseLink1_1JpaPlatformProvider.ID);
-	}
-}
diff --git a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/operations/EclipseLink1_1OrmFileCreationOperation.java b/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/operations/EclipseLink1_1OrmFileCreationOperation.java
deleted file mode 100644
index 2d533e4..0000000
--- a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/operations/EclipseLink1_1OrmFileCreationOperation.java
+++ /dev/null
@@ -1,36 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- *******************************************************************************/
-package org.eclipse.jpt.eclipselink.core.internal.operations;
-
-import org.eclipse.core.resources.IFile;
-import org.eclipse.jpt.core.internal.operations.OrmFileCreationOperation;
-import org.eclipse.jpt.core.resource.AbstractXmlResourceProvider;
-import org.eclipse.jpt.core.resource.orm.XmlPersistenceUnitMetadata;
-import org.eclipse.jpt.eclipselink.core.internal.resource.orm.EclipseLink1_1OrmXmlResourceProvider;
-import org.eclipse.jpt.eclipselink.core.resource.orm.EclipseLinkOrmFactory;
-import org.eclipse.wst.common.frameworks.datamodel.IDataModel;
-
-public class EclipseLink1_1OrmFileCreationOperation extends OrmFileCreationOperation
-{
-	public EclipseLink1_1OrmFileCreationOperation(IDataModel dataModel) {
-		super(dataModel);
-	}
-	
-	@Override
-	protected AbstractXmlResourceProvider getXmlResourceProvider(IFile file) {
-		return EclipseLink1_1OrmXmlResourceProvider.getXmlResourceProvider(file);
-	}
-	
-	@Override
-	protected XmlPersistenceUnitMetadata createXmlPersistenceUnitMetadata() {
-		return EclipseLinkOrmFactory.eINSTANCE.createXmlPersistenceUnitMetadata();
-	}
-
-}
diff --git a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/operations/EclipseLinkOrmFileCreationDataModelProvider.java b/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/operations/EclipseLinkOrmFileCreationDataModelProvider.java
deleted file mode 100644
index 2a23df4..0000000
--- a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/operations/EclipseLinkOrmFileCreationDataModelProvider.java
+++ /dev/null
@@ -1,49 +0,0 @@
-/*******************************************************************************
- *  Copyright (c) 2008, 2009 Oracle. 
- *  All rights reserved.  This program and the accompanying materials are 
- *  made available under the terms of the Eclipse Public License v1.0 which 
- *  accompanies this distribution, and is available at 
- *  http://www.eclipse.org/legal/epl-v10.html
- *  
- *  Contributors: 
- *  	Oracle - initial API and implementation
- *******************************************************************************/
-package org.eclipse.jpt.eclipselink.core.internal.operations;
-
-import org.eclipse.core.runtime.Path;
-import org.eclipse.jpt.core.internal.operations.OrmFileCreationDataModelProvider;
-import org.eclipse.jpt.eclipselink.core.internal.EclipseLink1_1JpaPlatformProvider;
-import org.eclipse.jpt.eclipselink.core.internal.EclipseLinkJpaPlatformProvider;
-import org.eclipse.jpt.eclipselink.core.internal.JptEclipseLinkCorePlugin;
-import org.eclipse.wst.common.frameworks.datamodel.IDataModelOperation;
-
-public class EclipseLinkOrmFileCreationDataModelProvider extends OrmFileCreationDataModelProvider
-{
-	/**
-	 * required default constructor
-	 */
-	public EclipseLinkOrmFileCreationDataModelProvider() {
-		super();
-	}
-	
-	
-	@Override
-	public IDataModelOperation getDefaultOperation() {
-		return new EclipseLinkOrmFileCreationOperation(getDataModel());
-	}
-	
-	@Override
-	public Object getDefaultProperty(String propertyName) {
-		if (propertyName.equals(FILE_PATH)) {
-			return new Path(JptEclipseLinkCorePlugin.DEFAULT_ECLIPSELINK_ORM_XML_FILE_PATH).toPortableString();
-		}
-		return super.getDefaultProperty(propertyName);
-	}
-	
-	
-	@Override
-	protected boolean isSupportedPlatformId(String id) {
-		return id.equals(EclipseLinkJpaPlatformProvider.ID) || id.equals(EclipseLink1_1JpaPlatformProvider.ID);
-	}
-	
-}
diff --git a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/operations/EclipseLinkOrmFileCreationOperation.java b/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/operations/EclipseLinkOrmFileCreationOperation.java
deleted file mode 100644
index 6e56cb6..0000000
--- a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/operations/EclipseLinkOrmFileCreationOperation.java
+++ /dev/null
@@ -1,35 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008, 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- *******************************************************************************/
-package org.eclipse.jpt.eclipselink.core.internal.operations;
-
-import org.eclipse.core.resources.IFile;
-import org.eclipse.jpt.core.internal.operations.OrmFileCreationOperation;
-import org.eclipse.jpt.core.resource.AbstractXmlResourceProvider;
-import org.eclipse.jpt.core.resource.orm.XmlPersistenceUnitMetadata;
-import org.eclipse.jpt.eclipselink.core.internal.resource.orm.EclipseLinkOrmXmlResourceProvider;
-import org.eclipse.jpt.eclipselink.core.resource.orm.EclipseLinkOrmFactory;
-import org.eclipse.wst.common.frameworks.datamodel.IDataModel;
-
-public class EclipseLinkOrmFileCreationOperation extends OrmFileCreationOperation
-{
-	public EclipseLinkOrmFileCreationOperation(IDataModel dataModel) {
-		super(dataModel);
-	}
-	
-	@Override
-	protected AbstractXmlResourceProvider getXmlResourceProvider(IFile file) {
-		return EclipseLinkOrmXmlResourceProvider.getXmlResourceProvider(file);
-	}
-	
-	@Override
-	protected XmlPersistenceUnitMetadata createXmlPersistenceUnitMetadata() {
-		return EclipseLinkOrmFactory.eINSTANCE.createXmlPersistenceUnitMetadata();
-	}
-}
diff --git a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/resource/java/BasicCollectionAnnotationDefinition.java b/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/resource/java/BasicCollectionAnnotationDefinition.java
deleted file mode 100644
index 8c7aa7d..0000000
--- a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/resource/java/BasicCollectionAnnotationDefinition.java
+++ /dev/null
@@ -1,62 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.eclipselink.core.internal.resource.java;
-
-import org.eclipse.jdt.core.IAnnotation;
-import org.eclipse.jpt.core.resource.java.Annotation;
-import org.eclipse.jpt.core.resource.java.AnnotationDefinition;
-import org.eclipse.jpt.core.resource.java.JavaResourcePersistentAttribute;
-import org.eclipse.jpt.core.resource.java.JavaResourcePersistentMember;
-import org.eclipse.jpt.core.utility.jdt.Attribute;
-import org.eclipse.jpt.core.utility.jdt.Member;
-import org.eclipse.jpt.eclipselink.core.internal.resource.java.binary.BinaryBasicCollectionAnnotation;
-import org.eclipse.jpt.eclipselink.core.internal.resource.java.source.SourceBasicCollectionAnnotation;
-import org.eclipse.jpt.eclipselink.core.resource.java.BasicCollectionAnnotation;
-
-/**
- * org.eclipse.persistence.annotations.BasicCollection
- */
-public class BasicCollectionAnnotationDefinition
-	implements AnnotationDefinition
-{
-	// singleton
-	private static final AnnotationDefinition INSTANCE = new BasicCollectionAnnotationDefinition();
-
-	/**
-	 * Return the singleton.
-	 */
-	public static AnnotationDefinition instance() {
-		return INSTANCE;
-	}
-
-	/**
-	 * Ensure single instance.
-	 */
-	private BasicCollectionAnnotationDefinition() {
-		super();
-	}
-
-	public Annotation buildAnnotation(JavaResourcePersistentMember parent, Member member) {
-		return new SourceBasicCollectionAnnotation((JavaResourcePersistentAttribute) parent, (Attribute) member);
-	}
-	
-	public Annotation buildNullAnnotation(JavaResourcePersistentMember parent) {
-		throw new UnsupportedOperationException();
-	}
-
-	public Annotation buildAnnotation(JavaResourcePersistentMember parent, IAnnotation jdtAnnotation) {
-		return new BinaryBasicCollectionAnnotation((JavaResourcePersistentAttribute) parent, jdtAnnotation);
-	}
-
-	public String getAnnotationName() {
-		return BasicCollectionAnnotation.ANNOTATION_NAME;
-	}
-
-}
diff --git a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/resource/java/BasicMapAnnotationDefinition.java b/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/resource/java/BasicMapAnnotationDefinition.java
deleted file mode 100644
index 204305d..0000000
--- a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/resource/java/BasicMapAnnotationDefinition.java
+++ /dev/null
@@ -1,62 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.eclipselink.core.internal.resource.java;
-
-import org.eclipse.jdt.core.IAnnotation;
-import org.eclipse.jpt.core.resource.java.Annotation;
-import org.eclipse.jpt.core.resource.java.AnnotationDefinition;
-import org.eclipse.jpt.core.resource.java.JavaResourcePersistentAttribute;
-import org.eclipse.jpt.core.resource.java.JavaResourcePersistentMember;
-import org.eclipse.jpt.core.utility.jdt.Attribute;
-import org.eclipse.jpt.core.utility.jdt.Member;
-import org.eclipse.jpt.eclipselink.core.internal.resource.java.binary.BinaryBasicMapAnnotation;
-import org.eclipse.jpt.eclipselink.core.internal.resource.java.source.SourceBasicMapAnnotation;
-import org.eclipse.jpt.eclipselink.core.resource.java.BasicMapAnnotation;
-
-/**
- * org.eclipse.persistence.annotations.BasicMap
- */
-public class BasicMapAnnotationDefinition
-	implements AnnotationDefinition
-{
-	// singleton
-	private static final AnnotationDefinition INSTANCE = new BasicMapAnnotationDefinition();
-
-	/**
-	 * Return the singleton.
-	 */
-	public static AnnotationDefinition instance() {
-		return INSTANCE;
-	}
-
-	/**
-	 * Ensure single instance.
-	 */
-	private BasicMapAnnotationDefinition() {
-		super();
-	}
-
-	public Annotation buildAnnotation(JavaResourcePersistentMember parent, Member member) {
-		return new SourceBasicMapAnnotation((JavaResourcePersistentAttribute) parent, (Attribute) member);
-	}
-	
-	public Annotation buildNullAnnotation(JavaResourcePersistentMember parent) {
-		throw new UnsupportedOperationException();
-	}
-
-	public Annotation buildAnnotation(JavaResourcePersistentMember parent, IAnnotation jdtAnnotation) {
-		return new BinaryBasicMapAnnotation((JavaResourcePersistentAttribute) parent, jdtAnnotation);
-	}
-
-	public String getAnnotationName() {
-		return BasicMapAnnotation.ANNOTATION_NAME;
-	}
-
-}
diff --git a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/resource/java/CacheAnnotationDefinition.java b/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/resource/java/CacheAnnotationDefinition.java
deleted file mode 100644
index f4a124c..0000000
--- a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/resource/java/CacheAnnotationDefinition.java
+++ /dev/null
@@ -1,62 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.eclipselink.core.internal.resource.java;
-
-import org.eclipse.jdt.core.IAnnotation;
-import org.eclipse.jpt.core.resource.java.Annotation;
-import org.eclipse.jpt.core.resource.java.AnnotationDefinition;
-import org.eclipse.jpt.core.resource.java.JavaResourcePersistentMember;
-import org.eclipse.jpt.core.resource.java.JavaResourcePersistentType;
-import org.eclipse.jpt.core.utility.jdt.Member;
-import org.eclipse.jpt.core.utility.jdt.Type;
-import org.eclipse.jpt.eclipselink.core.internal.resource.java.binary.BinaryCacheAnnotation;
-import org.eclipse.jpt.eclipselink.core.internal.resource.java.source.SourceCacheAnnotation;
-import org.eclipse.jpt.eclipselink.core.resource.java.CacheAnnotation;
-
-/**
- * org.eclipse.persistence.annotations.Cache
- */
-public class CacheAnnotationDefinition
-	implements AnnotationDefinition
-{
-	// singleton
-	private static final AnnotationDefinition INSTANCE = new CacheAnnotationDefinition();
-
-	/**
-	 * Return the singleton.
-	 */
-	public static AnnotationDefinition instance() {
-		return INSTANCE;
-	}
-
-	/**
-	 * Ensure single instance.
-	 */
-	private CacheAnnotationDefinition() {
-		super();
-	}
-
-	public Annotation buildAnnotation(JavaResourcePersistentMember parent, Member member) {
-		return new SourceCacheAnnotation((JavaResourcePersistentType) parent, (Type) member);
-	}
-
-	public Annotation buildNullAnnotation(JavaResourcePersistentMember parent) {
-		return new NullCacheAnnotation((JavaResourcePersistentType) parent);
-	}
-
-	public Annotation buildAnnotation(JavaResourcePersistentMember parent, IAnnotation jdtAnnotation) {
-		return new BinaryCacheAnnotation((JavaResourcePersistentType) parent, jdtAnnotation);
-	}
-
-	public String getAnnotationName() {
-		return CacheAnnotation.ANNOTATION_NAME;
-	}
-
-}
diff --git a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/resource/java/ChangeTrackingAnnotationDefinition.java b/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/resource/java/ChangeTrackingAnnotationDefinition.java
deleted file mode 100644
index 610fc89..0000000
--- a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/resource/java/ChangeTrackingAnnotationDefinition.java
+++ /dev/null
@@ -1,62 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.eclipselink.core.internal.resource.java;
-
-import org.eclipse.jdt.core.IAnnotation;
-import org.eclipse.jpt.core.resource.java.Annotation;
-import org.eclipse.jpt.core.resource.java.AnnotationDefinition;
-import org.eclipse.jpt.core.resource.java.JavaResourcePersistentMember;
-import org.eclipse.jpt.core.resource.java.JavaResourcePersistentType;
-import org.eclipse.jpt.core.utility.jdt.Member;
-import org.eclipse.jpt.core.utility.jdt.Type;
-import org.eclipse.jpt.eclipselink.core.internal.resource.java.binary.BinaryChangeTrackingAnnotation;
-import org.eclipse.jpt.eclipselink.core.internal.resource.java.source.SourceChangeTrackingAnnotation;
-import org.eclipse.jpt.eclipselink.core.resource.java.ChangeTrackingAnnotation;
-
-/**
- * org.eclipse.persistence.annotations.ChangeTracking
- */
-public class ChangeTrackingAnnotationDefinition
-	implements AnnotationDefinition
-{
-	// singleton
-	private static final AnnotationDefinition INSTANCE = new ChangeTrackingAnnotationDefinition();
-
-	/**
-	 * Return the singleton.
-	 */
-	public static AnnotationDefinition instance() {
-		return INSTANCE;
-	}
-
-	/**
-	 * Ensure single instance.
-	 */
-	private ChangeTrackingAnnotationDefinition() {
-		super();
-	}
-
-	public Annotation buildAnnotation(JavaResourcePersistentMember parent, Member member) {
-		return new SourceChangeTrackingAnnotation((JavaResourcePersistentType) parent, (Type) member);
-	}
-
-	public Annotation buildNullAnnotation(JavaResourcePersistentMember parent) {
-		throw new UnsupportedOperationException();
-	}
-
-	public Annotation buildAnnotation(JavaResourcePersistentMember parent, IAnnotation jdtAnnotation) {
-		return new BinaryChangeTrackingAnnotation((JavaResourcePersistentType) parent, jdtAnnotation);
-	}
-
-	public String getAnnotationName() {
-		return ChangeTrackingAnnotation.ANNOTATION_NAME;
-	}
-
-}
diff --git a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/resource/java/ConvertAnnotationDefinition.java b/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/resource/java/ConvertAnnotationDefinition.java
deleted file mode 100644
index 46053af..0000000
--- a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/resource/java/ConvertAnnotationDefinition.java
+++ /dev/null
@@ -1,62 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.eclipselink.core.internal.resource.java;
-
-import org.eclipse.jdt.core.IAnnotation;
-import org.eclipse.jpt.core.resource.java.Annotation;
-import org.eclipse.jpt.core.resource.java.AnnotationDefinition;
-import org.eclipse.jpt.core.resource.java.JavaResourcePersistentAttribute;
-import org.eclipse.jpt.core.resource.java.JavaResourcePersistentMember;
-import org.eclipse.jpt.core.utility.jdt.Attribute;
-import org.eclipse.jpt.core.utility.jdt.Member;
-import org.eclipse.jpt.eclipselink.core.internal.resource.java.binary.BinaryConvertAnnotation;
-import org.eclipse.jpt.eclipselink.core.internal.resource.java.source.SourceConvertAnnotation;
-import org.eclipse.jpt.eclipselink.core.resource.java.ConvertAnnotation;
-
-/**
- * org.eclipse.persistence.annotations.Convert
- */
-public class ConvertAnnotationDefinition
-	implements AnnotationDefinition
-{
-	// singleton
-	private static final AnnotationDefinition INSTANCE = new ConvertAnnotationDefinition();
-
-	/**
-	 * Return the singleton.
-	 */
-	public static AnnotationDefinition instance() {
-		return INSTANCE;
-	}
-
-	/**
-	 * Ensure single instance.
-	 */
-	private ConvertAnnotationDefinition() {
-		super();
-	}
-
-	public Annotation buildAnnotation(JavaResourcePersistentMember parent, Member member) {
-		return new SourceConvertAnnotation((JavaResourcePersistentAttribute) parent, (Attribute) member);
-	}
-
-	public Annotation buildNullAnnotation(JavaResourcePersistentMember parent) {
-		throw new UnsupportedOperationException();
-	}
-
-	public Annotation buildAnnotation(JavaResourcePersistentMember parent, IAnnotation jdtAnnotation) {
-		return new BinaryConvertAnnotation((JavaResourcePersistentAttribute) parent, jdtAnnotation);
-	}
-
-	public String getAnnotationName() {
-		return ConvertAnnotation.ANNOTATION_NAME;
-	}
-
-}
diff --git a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/resource/java/ConverterAnnotationDefinition.java b/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/resource/java/ConverterAnnotationDefinition.java
deleted file mode 100644
index 6fd2480..0000000
--- a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/resource/java/ConverterAnnotationDefinition.java
+++ /dev/null
@@ -1,60 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.eclipselink.core.internal.resource.java;
-
-import org.eclipse.jdt.core.IAnnotation;
-import org.eclipse.jpt.core.resource.java.Annotation;
-import org.eclipse.jpt.core.resource.java.AnnotationDefinition;
-import org.eclipse.jpt.core.resource.java.JavaResourcePersistentMember;
-import org.eclipse.jpt.core.utility.jdt.Member;
-import org.eclipse.jpt.eclipselink.core.internal.resource.java.binary.BinaryConverterAnnotation;
-import org.eclipse.jpt.eclipselink.core.internal.resource.java.source.SourceConverterAnnotation;
-import org.eclipse.jpt.eclipselink.core.resource.java.ConverterAnnotation;
-
-/**
- * org.eclipse.persistence.annotations.Converter
- */
-public class ConverterAnnotationDefinition
-	implements AnnotationDefinition
-{
-	// singleton
-	private static final AnnotationDefinition INSTANCE = new ConverterAnnotationDefinition();
-
-	/**
-	 * Return the singleton.
-	 */
-	public static AnnotationDefinition instance() {
-		return INSTANCE;
-	}
-
-	/**
-	 * Ensure single instance.
-	 */
-	private ConverterAnnotationDefinition() {
-		super();
-	}
-
-	public Annotation buildAnnotation(JavaResourcePersistentMember parent, Member member) {
-		return new SourceConverterAnnotation(parent, member);
-	}
-
-	public Annotation buildNullAnnotation(JavaResourcePersistentMember parent) {
-		throw new UnsupportedOperationException();
-	}
-
-	public Annotation buildAnnotation(JavaResourcePersistentMember parent, IAnnotation jdtAnnotation) {
-		return new BinaryConverterAnnotation(parent, jdtAnnotation);
-	}
-
-	public String getAnnotationName() {
-		return ConverterAnnotation.ANNOTATION_NAME;
-	}
-
-}
diff --git a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/resource/java/CustomizerAnnotationDefinition.java b/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/resource/java/CustomizerAnnotationDefinition.java
deleted file mode 100644
index e4a2d1e..0000000
--- a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/resource/java/CustomizerAnnotationDefinition.java
+++ /dev/null
@@ -1,61 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.eclipselink.core.internal.resource.java;
-
-import org.eclipse.jdt.core.IAnnotation;
-import org.eclipse.jpt.core.resource.java.Annotation;
-import org.eclipse.jpt.core.resource.java.AnnotationDefinition;
-import org.eclipse.jpt.core.resource.java.JavaResourcePersistentMember;
-import org.eclipse.jpt.core.utility.jdt.Member;
-import org.eclipse.jpt.core.utility.jdt.Type;
-import org.eclipse.jpt.eclipselink.core.internal.resource.java.binary.BinaryCustomizerAnnotation;
-import org.eclipse.jpt.eclipselink.core.internal.resource.java.source.SourceCustomizerAnnotation;
-import org.eclipse.jpt.eclipselink.core.resource.java.CustomizerAnnotation;
-
-/**
- * org.eclipse.persistence.annotations.Customizer
- */
-public class CustomizerAnnotationDefinition
-	implements AnnotationDefinition
-{
-	// singleton
-	private static final AnnotationDefinition INSTANCE = new CustomizerAnnotationDefinition();
-
-	/**
-	 * Return the singleton.
-	 */
-	public static AnnotationDefinition instance() {
-		return INSTANCE;
-	}
-
-	/**
-	 * Ensure single instance.
-	 */
-	private CustomizerAnnotationDefinition() {
-		super();
-	}
-
-	public Annotation buildAnnotation(JavaResourcePersistentMember parent, Member member) {
-		return new SourceCustomizerAnnotation(parent, (Type) member);
-	}
-
-	public Annotation buildNullAnnotation(JavaResourcePersistentMember parent) {
-		throw new UnsupportedOperationException();
-	}
-
-	public Annotation buildAnnotation(JavaResourcePersistentMember parent, IAnnotation jdtAnnotation) {
-		return new BinaryCustomizerAnnotation(parent, jdtAnnotation);
-	}
-
-	public String getAnnotationName() {
-		return CustomizerAnnotation.ANNOTATION_NAME;
-	}
-
-}
diff --git a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/resource/java/ExistenceCheckingAnnotationDefinition.java b/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/resource/java/ExistenceCheckingAnnotationDefinition.java
deleted file mode 100644
index b27147a..0000000
--- a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/resource/java/ExistenceCheckingAnnotationDefinition.java
+++ /dev/null
@@ -1,62 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.eclipselink.core.internal.resource.java;
-
-import org.eclipse.jdt.core.IAnnotation;
-import org.eclipse.jpt.core.resource.java.Annotation;
-import org.eclipse.jpt.core.resource.java.AnnotationDefinition;
-import org.eclipse.jpt.core.resource.java.JavaResourcePersistentMember;
-import org.eclipse.jpt.core.resource.java.JavaResourcePersistentType;
-import org.eclipse.jpt.core.utility.jdt.Member;
-import org.eclipse.jpt.core.utility.jdt.Type;
-import org.eclipse.jpt.eclipselink.core.internal.resource.java.binary.BinaryExistenceCheckingAnnotation;
-import org.eclipse.jpt.eclipselink.core.internal.resource.java.source.SourceExistenceCheckingAnnotation;
-import org.eclipse.jpt.eclipselink.core.resource.java.ExistenceCheckingAnnotation;
-
-/**
- * org.eclipse.persistence.annotations.ExistenceChecking
- */
-public class ExistenceCheckingAnnotationDefinition
-	implements AnnotationDefinition
-{
-	// singleton
-	private static final AnnotationDefinition INSTANCE = new ExistenceCheckingAnnotationDefinition();
-
-	/**
-	 * Return the singleton.
-	 */
-	public static AnnotationDefinition instance() {
-		return INSTANCE;
-	}
-
-	/**
-	 * Ensure single instance.
-	 */
-	private ExistenceCheckingAnnotationDefinition() {
-		super();
-	}
-
-	public Annotation buildAnnotation(JavaResourcePersistentMember parent, Member member) {
-		return new SourceExistenceCheckingAnnotation((JavaResourcePersistentType) parent, (Type) member);
-	}
-
-	public Annotation buildNullAnnotation(JavaResourcePersistentMember parent) {
-		throw new UnsupportedOperationException();
-	}
-
-	public Annotation buildAnnotation(JavaResourcePersistentMember parent, IAnnotation jdtAnnotation) {
-		return new BinaryExistenceCheckingAnnotation((JavaResourcePersistentType) parent, jdtAnnotation);
-	}
-
-	public String getAnnotationName() {
-		return ExistenceCheckingAnnotation.ANNOTATION_NAME;
-	}
-
-}
diff --git a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/resource/java/JoinFetchAnnotationDefinition.java b/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/resource/java/JoinFetchAnnotationDefinition.java
deleted file mode 100644
index 74c30b2..0000000
--- a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/resource/java/JoinFetchAnnotationDefinition.java
+++ /dev/null
@@ -1,62 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.eclipselink.core.internal.resource.java;
-
-import org.eclipse.jdt.core.IAnnotation;
-import org.eclipse.jpt.core.resource.java.Annotation;
-import org.eclipse.jpt.core.resource.java.AnnotationDefinition;
-import org.eclipse.jpt.core.resource.java.JavaResourcePersistentAttribute;
-import org.eclipse.jpt.core.resource.java.JavaResourcePersistentMember;
-import org.eclipse.jpt.core.utility.jdt.Attribute;
-import org.eclipse.jpt.core.utility.jdt.Member;
-import org.eclipse.jpt.eclipselink.core.internal.resource.java.binary.BinaryJoinFetchAnnotation;
-import org.eclipse.jpt.eclipselink.core.internal.resource.java.source.SourceJoinFetchAnnotation;
-import org.eclipse.jpt.eclipselink.core.resource.java.JoinFetchAnnotation;
-
-/**
- * org.eclipse.persistence.annotations.JoinFetch
- */
-public class JoinFetchAnnotationDefinition
-	implements AnnotationDefinition
-{
-	// singleton
-	private static final AnnotationDefinition INSTANCE = new JoinFetchAnnotationDefinition();
-
-	/**
-	 * Return the singleton.
-	 */
-	public static AnnotationDefinition instance() {
-		return INSTANCE;
-	}
-
-	/**
-	 * Ensure single instance.
-	 */
-	private JoinFetchAnnotationDefinition() {
-		super();
-	}
-
-	public Annotation buildAnnotation(JavaResourcePersistentMember parent, Member member) {
-		return new SourceJoinFetchAnnotation((JavaResourcePersistentAttribute) parent, (Attribute) member);
-	}
-
-	public Annotation buildNullAnnotation(JavaResourcePersistentMember parent) {
-		return new NullJoinFetchAnnotation((JavaResourcePersistentAttribute) parent);
-	}
-
-	public Annotation buildAnnotation(JavaResourcePersistentMember parent, IAnnotation jdtAnnotation) {
-		return new BinaryJoinFetchAnnotation((JavaResourcePersistentAttribute) parent, jdtAnnotation);
-	}
-
-	public String getAnnotationName() {
-		return JoinFetchAnnotation.ANNOTATION_NAME;
-	}
-
-}
diff --git a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/resource/java/MutableAnnotationDefinition.java b/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/resource/java/MutableAnnotationDefinition.java
deleted file mode 100644
index e0d42d8..0000000
--- a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/resource/java/MutableAnnotationDefinition.java
+++ /dev/null
@@ -1,62 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.eclipselink.core.internal.resource.java;
-
-import org.eclipse.jdt.core.IAnnotation;
-import org.eclipse.jpt.core.resource.java.Annotation;
-import org.eclipse.jpt.core.resource.java.AnnotationDefinition;
-import org.eclipse.jpt.core.resource.java.JavaResourcePersistentAttribute;
-import org.eclipse.jpt.core.resource.java.JavaResourcePersistentMember;
-import org.eclipse.jpt.core.utility.jdt.Attribute;
-import org.eclipse.jpt.core.utility.jdt.Member;
-import org.eclipse.jpt.eclipselink.core.internal.resource.java.binary.BinaryMutableAnnotation;
-import org.eclipse.jpt.eclipselink.core.internal.resource.java.source.SourceMutableAnnotation;
-import org.eclipse.jpt.eclipselink.core.resource.java.MutableAnnotation;
-
-/**
- * org.eclipse.persistence.annotations.Mutable
- */
-public class MutableAnnotationDefinition
-	implements AnnotationDefinition
-{
-	// singleton
-	private static final AnnotationDefinition INSTANCE = new MutableAnnotationDefinition();
-
-	/**
-	 * Return the singleton.
-	 */
-	public static AnnotationDefinition instance() {
-		return INSTANCE;
-	}
-
-	/**
-	 * Ensure single instance.
-	 */
-	private MutableAnnotationDefinition() {
-		super();
-	}
-
-	public Annotation buildAnnotation(JavaResourcePersistentMember parent, Member member) {
-		return new SourceMutableAnnotation((JavaResourcePersistentAttribute) parent, (Attribute) member);
-	}
-
-	public Annotation buildNullAnnotation(JavaResourcePersistentMember parent) {
-		throw new UnsupportedOperationException();
-	}
-
-	public Annotation buildAnnotation(JavaResourcePersistentMember parent, IAnnotation jdtAnnotation) {
-		return new BinaryMutableAnnotation((JavaResourcePersistentAttribute) parent, jdtAnnotation);
-	}
-
-	public String getAnnotationName() {
-		return MutableAnnotation.ANNOTATION_NAME;
-	}
-
-}
diff --git a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/resource/java/NullCacheAnnotation.java b/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/resource/java/NullCacheAnnotation.java
deleted file mode 100644
index 5ec16de..0000000
--- a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/resource/java/NullCacheAnnotation.java
+++ /dev/null
@@ -1,179 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008, 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.eclipselink.core.internal.resource.java;
-
-import org.eclipse.jdt.core.dom.CompilationUnit;
-import org.eclipse.jpt.core.internal.resource.java.NullAnnotation;
-import org.eclipse.jpt.core.resource.java.JavaResourcePersistentType;
-import org.eclipse.jpt.core.utility.TextRange;
-import org.eclipse.jpt.eclipselink.core.resource.java.CacheAnnotation;
-import org.eclipse.jpt.eclipselink.core.resource.java.CacheCoordinationType;
-import org.eclipse.jpt.eclipselink.core.resource.java.CacheType;
-import org.eclipse.jpt.eclipselink.core.resource.java.TimeOfDayAnnotation;
-
-/**
- * org.eclipse.persistence.annotations.Cache
- */
-public class NullCacheAnnotation
-	extends NullAnnotation
-	implements CacheAnnotation
-{
-
-	protected NullCacheAnnotation(JavaResourcePersistentType parent) {
-		super(parent);
-	}
-
-	public String getAnnotationName() {
-		return ANNOTATION_NAME;
-	}
-
-	@Override
-	protected CacheAnnotation buildSupportingAnnotation() {
-		return (CacheAnnotation) super.buildSupportingAnnotation();
-	}
-
-	// ***** type
-	public CacheType getType() {
-		return null;
-	}
-
-	public void setType(CacheType type) {
-		if (type != null) {
-			this.buildSupportingAnnotation().setType(type);
-		}
-	}
-
-	public TextRange getTypeTextRange(CompilationUnit astRoot) {
-		return null;
-	}
-
-	// ***** size
-	public Integer getSize() {
-		return null;
-	}
-
-	public void setSize(Integer size) {
-		if (size != null) {
-			this.buildSupportingAnnotation().setSize(size);
-		}
-	}
-
-	public TextRange getSizeTextRange(CompilationUnit astRoot) {
-		return null;
-	}
-
-	// ***** shared
-	public Boolean getShared() {
-		return null;
-	}
-
-	public void setShared(Boolean shared) {
-		if (shared != null) {
-			this.buildSupportingAnnotation().setShared(shared);
-		}
-	}
-
-	public TextRange getSharedTextRange(CompilationUnit astRoot) {
-		return null;
-	}
-
-	// ***** expiry
-	public Integer getExpiry() {
-		return null;
-	}
-
-	public void setExpiry(Integer expiry) {
-		if (expiry != null) {
-			this.buildSupportingAnnotation().setExpiry(expiry);
-		}
-	}
-
-	public TextRange getExpiryTextRange(CompilationUnit astRoot) {
-		return null;
-	}
-
-	// ***** expiry time of day
-	public TimeOfDayAnnotation getExpiryTimeOfDay() {
-		return null;
-	}
-
-	public TimeOfDayAnnotation addExpiryTimeOfDay() {
-		return this.buildSupportingAnnotation().addExpiryTimeOfDay();
-	}
-
-	public void removeExpiryTimeOfDay() {
-		// do nothing
-	}
-
-	public TextRange getExpiryTimeOfDayTextRange(CompilationUnit astRoot) {
-		return null;
-	}
-
-	// ***** always refresh
-	public Boolean getAlwaysRefresh() {
-		return null;
-	}
-
-	public void setAlwaysRefresh(Boolean alwaysRefresh) {
-		if (alwaysRefresh != null) {
-			this.buildSupportingAnnotation().setAlwaysRefresh(alwaysRefresh);
-		}
-	}
-
-	public TextRange getAlwaysRefreshTextRange(CompilationUnit astRoot) {
-		return null;
-	}
-
-	// ***** refresh only if newer
-	public Boolean getRefreshOnlyIfNewer() {
-		return null;
-	}
-
-	public void setRefreshOnlyIfNewer(Boolean refreshOnlyIfNewer) {
-		if (refreshOnlyIfNewer != null) {
-			this.buildSupportingAnnotation().setRefreshOnlyIfNewer(refreshOnlyIfNewer);
-		}
-	}
-
-	public TextRange getRefreshOnlyIfNewerTextRange(CompilationUnit astRoot) {
-		return null;
-	}
-
-	// ***** disable hits
-	public Boolean getDisableHits() {
-		return null;
-	}
-
-	public void setDisableHits(Boolean disableHits) {
-		if (disableHits != null) {
-			this.buildSupportingAnnotation().setDisableHits(disableHits);
-		}
-	}
-
-	public TextRange getDisablesHitsTextRange(CompilationUnit astRoot) {
-		return null;
-	}
-
-	// ***** coordination type
-	public CacheCoordinationType getCoordinationType() {
-		return null;
-	}
-
-	public void setCoordinationType(CacheCoordinationType coordinationType) {
-		if (coordinationType != null) {
-			this.buildSupportingAnnotation().setCoordinationType(coordinationType);
-		}
-	}
-
-	public TextRange getCoordinationTypeTextRange(CompilationUnit astRoot) {
-		return null;
-	}
-
-}
diff --git a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/resource/java/NullJoinFetchAnnotation.java b/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/resource/java/NullJoinFetchAnnotation.java
deleted file mode 100644
index 63aed44..0000000
--- a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/resource/java/NullJoinFetchAnnotation.java
+++ /dev/null
@@ -1,54 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008, 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.eclipselink.core.internal.resource.java;
-
-import org.eclipse.jdt.core.dom.CompilationUnit;
-import org.eclipse.jpt.core.internal.resource.java.NullAnnotation;
-import org.eclipse.jpt.core.resource.java.JavaResourcePersistentAttribute;
-import org.eclipse.jpt.core.utility.TextRange;
-import org.eclipse.jpt.eclipselink.core.resource.java.JoinFetchAnnotation;
-import org.eclipse.jpt.eclipselink.core.resource.java.JoinFetchType;
-
-/**
- * org.eclipse.persistence.annotations.JoinFetch
- */
-public class NullJoinFetchAnnotation
-	extends NullAnnotation
-	implements JoinFetchAnnotation
-{
-	protected NullJoinFetchAnnotation(JavaResourcePersistentAttribute parent) {
-		super(parent);
-	}
-
-	public String getAnnotationName() {
-		return ANNOTATION_NAME;
-	}
-
-	@Override
-	protected JoinFetchAnnotation buildSupportingAnnotation() {
-		return (JoinFetchAnnotation) super.buildSupportingAnnotation();
-	}
-
-	// ***** value
-	public JoinFetchType getValue() {
-		return null;
-	}
-
-	public void setValue(JoinFetchType value) {
-		if (value != null) {
-			this.buildSupportingAnnotation().setValue(value);
-		}
-	}
-
-	public TextRange getValueTextRange(CompilationUnit astRoot) {
-		return null;
-	}
-
-}
diff --git a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/resource/java/NullTransformationAnnotation.java b/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/resource/java/NullTransformationAnnotation.java
deleted file mode 100644
index 4e5fd75..0000000
--- a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/resource/java/NullTransformationAnnotation.java
+++ /dev/null
@@ -1,69 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008, 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.eclipselink.core.internal.resource.java;
-
-import org.eclipse.jdt.core.dom.CompilationUnit;
-import org.eclipse.jpt.core.internal.resource.java.NullAnnotation;
-import org.eclipse.jpt.core.resource.java.FetchType;
-import org.eclipse.jpt.core.resource.java.JavaResourcePersistentAttribute;
-import org.eclipse.jpt.core.utility.TextRange;
-import org.eclipse.jpt.eclipselink.core.resource.java.TransformationAnnotation;
-
-/**
- * org.eclipse.persistence.annotations.Transformation
- */
-public class NullTransformationAnnotation
-	extends NullAnnotation
-	implements TransformationAnnotation
-{	
-	protected NullTransformationAnnotation(JavaResourcePersistentAttribute parent) {
-		super(parent);
-	}
-
-	public String getAnnotationName() {
-		return ANNOTATION_NAME;
-	}
-	
-	@Override
-	protected TransformationAnnotation buildMappingAnnotation() {
-		return (TransformationAnnotation) super.buildMappingAnnotation();
-	}
-
-	// ***** fetch
-	public FetchType getFetch() {
-		return null;
-	}
-	
-	public void setFetch(FetchType fetch) {
-		if (fetch != null) {
-			this.buildMappingAnnotation().setFetch(fetch);
-		}				
-	}
-	
-	public TextRange getFetchTextRange(CompilationUnit astRoot) {
-		return null;
-	}
-	
-	// ***** optional
-	public Boolean getOptional() {
-		return null;
-	}
-
-	public void setOptional(Boolean optional) {
-		if (optional != null) {
-			this.buildMappingAnnotation().setOptional(optional);
-		}				
-	}
-
-	public TextRange getOptionalTextRange(CompilationUnit astRoot) {
-		return null;
-	}
-
-}
diff --git a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/resource/java/NullVariableOneToOneAnnotation.java b/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/resource/java/NullVariableOneToOneAnnotation.java
deleted file mode 100644
index 23eeefc..0000000
--- a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/resource/java/NullVariableOneToOneAnnotation.java
+++ /dev/null
@@ -1,36 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.eclipselink.core.internal.resource.java;
-
-import org.eclipse.jpt.core.internal.resource.java.NullAnnotation;
-import org.eclipse.jpt.core.resource.java.JavaResourcePersistentAttribute;
-import org.eclipse.jpt.eclipselink.core.resource.java.VariableOneToOneAnnotation;
-
-/**
- * org.eclipse.persistence.annotations.VariableOneToOne
- */
-public class NullVariableOneToOneAnnotation
-	extends NullAnnotation
-	implements VariableOneToOneAnnotation
-{	
-	protected NullVariableOneToOneAnnotation(JavaResourcePersistentAttribute parent) {
-		super(parent);
-	}
-
-	public String getAnnotationName() {
-		return ANNOTATION_NAME;
-	}
-	
-	@Override
-	protected VariableOneToOneAnnotation buildMappingAnnotation() {
-		return (VariableOneToOneAnnotation) super.buildMappingAnnotation();
-	}
-
-}
diff --git a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/resource/java/NullWriteTransformerColumnAnnotation.java b/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/resource/java/NullWriteTransformerColumnAnnotation.java
deleted file mode 100644
index 333003e..0000000
--- a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/resource/java/NullWriteTransformerColumnAnnotation.java
+++ /dev/null
@@ -1,35 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.eclipselink.core.internal.resource.java;
-
-import org.eclipse.jpt.core.internal.resource.java.NullColumnAnnotation;
-import org.eclipse.jpt.core.resource.java.ColumnAnnotation;
-import org.eclipse.jpt.eclipselink.core.resource.java.WriteTransformerAnnotation;
-
-/**
- * javax.persistence.Column
- */
-public class NullWriteTransformerColumnAnnotation
-	extends NullColumnAnnotation
-{	
-	public NullWriteTransformerColumnAnnotation(WriteTransformerAnnotation parent) {
-		super(parent);
-	}
-
-	private WriteTransformerAnnotation getWriteTransformerAnnotation() {
-		return (WriteTransformerAnnotation) this.parent;
-	}
-	
-	@Override
-	protected ColumnAnnotation buildAnnotation() {
-		return this.getWriteTransformerAnnotation().addColumn();
-	}
-
-}
diff --git a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/resource/java/ObjectTypeConverterAnnotationDefinition.java b/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/resource/java/ObjectTypeConverterAnnotationDefinition.java
deleted file mode 100644
index 0c35d25..0000000
--- a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/resource/java/ObjectTypeConverterAnnotationDefinition.java
+++ /dev/null
@@ -1,60 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.eclipselink.core.internal.resource.java;
-
-import org.eclipse.jdt.core.IAnnotation;
-import org.eclipse.jpt.core.resource.java.Annotation;
-import org.eclipse.jpt.core.resource.java.AnnotationDefinition;
-import org.eclipse.jpt.core.resource.java.JavaResourcePersistentMember;
-import org.eclipse.jpt.core.utility.jdt.Member;
-import org.eclipse.jpt.eclipselink.core.internal.resource.java.binary.BinaryObjectTypeConverterAnnotation;
-import org.eclipse.jpt.eclipselink.core.internal.resource.java.source.SourceObjectTypeConverterAnnotation;
-import org.eclipse.jpt.eclipselink.core.resource.java.ObjectTypeConverterAnnotation;
-
-/**
- * org.eclipse.persistence.annotations.ObjectTypeConverter
- */
-public class ObjectTypeConverterAnnotationDefinition
-	implements AnnotationDefinition
-{
-	// singleton
-	private static final AnnotationDefinition INSTANCE = new ObjectTypeConverterAnnotationDefinition();
-
-	/**
-	 * Return the singleton.
-	 */
-	public static AnnotationDefinition instance() {
-		return INSTANCE;
-	}
-
-	/**
-	 * Ensure single instance.
-	 */
-	private ObjectTypeConverterAnnotationDefinition() {
-		super();
-	}
-
-	public Annotation buildAnnotation(JavaResourcePersistentMember parent, Member member) {
-		return new SourceObjectTypeConverterAnnotation(parent, member);
-	}
-
-	public Annotation buildNullAnnotation(JavaResourcePersistentMember parent) {
-		throw new UnsupportedOperationException();
-	}
-
-	public Annotation buildAnnotation(JavaResourcePersistentMember parent, IAnnotation jdtAnnotation) {
-		return new BinaryObjectTypeConverterAnnotation(parent, jdtAnnotation);
-	}
-
-	public String getAnnotationName() {
-		return ObjectTypeConverterAnnotation.ANNOTATION_NAME;
-	}
-
-}
diff --git a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/resource/java/PrivateOwnedAnnotationDefinition.java b/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/resource/java/PrivateOwnedAnnotationDefinition.java
deleted file mode 100644
index 843d9d3..0000000
--- a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/resource/java/PrivateOwnedAnnotationDefinition.java
+++ /dev/null
@@ -1,61 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.eclipselink.core.internal.resource.java;
-
-import org.eclipse.jdt.core.IAnnotation;
-import org.eclipse.jpt.core.resource.java.Annotation;
-import org.eclipse.jpt.core.resource.java.AnnotationDefinition;
-import org.eclipse.jpt.core.resource.java.JavaResourcePersistentMember;
-import org.eclipse.jpt.core.utility.jdt.Attribute;
-import org.eclipse.jpt.core.utility.jdt.Member;
-import org.eclipse.jpt.eclipselink.core.internal.resource.java.binary.BinaryPrivateOwnedAnnotation;
-import org.eclipse.jpt.eclipselink.core.internal.resource.java.source.SourcePrivateOwnedAnnotation;
-import org.eclipse.jpt.eclipselink.core.resource.java.PrivateOwnedAnnotation;
-
-/**
- * org.eclipse.persistence.annotations.PrivateOwned
- */
-public class PrivateOwnedAnnotationDefinition
-	implements AnnotationDefinition
-{
-	// singleton
-	private static final AnnotationDefinition INSTANCE = new PrivateOwnedAnnotationDefinition();
-
-	/**
-	 * Return the singleton.
-	 */
-	public static AnnotationDefinition instance() {
-		return INSTANCE;
-	}
-
-	/**
-	 * Ensure single instance.
-	 */
-	private PrivateOwnedAnnotationDefinition() {
-		super();
-	}
-
-	public Annotation buildAnnotation(JavaResourcePersistentMember parent, Member member) {
-		return new SourcePrivateOwnedAnnotation(parent, (Attribute) member);
-	}
-
-	public Annotation buildNullAnnotation(JavaResourcePersistentMember parent) {
-		throw new UnsupportedOperationException();
-	}
-
-	public Annotation buildAnnotation(JavaResourcePersistentMember parent, IAnnotation jdtAnnotation) {
-		return new BinaryPrivateOwnedAnnotation(parent, jdtAnnotation);
-	}
-
-	public String getAnnotationName() {
-		return PrivateOwnedAnnotation.ANNOTATION_NAME;
-	}
-
-}
diff --git a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/resource/java/ReadOnlyAnnotationDefinition.java b/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/resource/java/ReadOnlyAnnotationDefinition.java
deleted file mode 100644
index 5685243..0000000
--- a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/resource/java/ReadOnlyAnnotationDefinition.java
+++ /dev/null
@@ -1,61 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.eclipselink.core.internal.resource.java;
-
-import org.eclipse.jdt.core.IAnnotation;
-import org.eclipse.jpt.core.resource.java.Annotation;
-import org.eclipse.jpt.core.resource.java.AnnotationDefinition;
-import org.eclipse.jpt.core.resource.java.JavaResourcePersistentMember;
-import org.eclipse.jpt.core.utility.jdt.Member;
-import org.eclipse.jpt.core.utility.jdt.Type;
-import org.eclipse.jpt.eclipselink.core.internal.resource.java.binary.BinaryReadOnlyAnnotation;
-import org.eclipse.jpt.eclipselink.core.internal.resource.java.source.SourceReadOnlyAnnotation;
-import org.eclipse.jpt.eclipselink.core.resource.java.ReadOnlyAnnotation;
-
-/**
- * org.eclipse.persistence.annotations.ReadOnly
- */
-public class ReadOnlyAnnotationDefinition
-	implements AnnotationDefinition
-{
-	// singleton
-	private static final AnnotationDefinition INSTANCE = new ReadOnlyAnnotationDefinition();
-
-	/**
-	 * Return the singleton.
-	 */
-	public static AnnotationDefinition instance() {
-		return INSTANCE;
-	}
-
-	/**
-	 * Ensure single instance.
-	 */
-	private ReadOnlyAnnotationDefinition() {
-		super();
-	}
-
-	public Annotation buildAnnotation(JavaResourcePersistentMember parent, Member member) {
-		return new SourceReadOnlyAnnotation(parent, (Type) member);
-	}
-
-	public Annotation buildNullAnnotation(JavaResourcePersistentMember parent) {
-		throw new UnsupportedOperationException();
-	}
-
-	public Annotation buildAnnotation(JavaResourcePersistentMember parent, IAnnotation jdtAnnotation) {
-		return new BinaryReadOnlyAnnotation(parent, jdtAnnotation);
-	}
-
-	public String getAnnotationName() {
-		return ReadOnlyAnnotation.ANNOTATION_NAME;
-	}
-
-}
diff --git a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/resource/java/ReadTransformerAnnotationDefinition.java b/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/resource/java/ReadTransformerAnnotationDefinition.java
deleted file mode 100644
index 1695295..0000000
--- a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/resource/java/ReadTransformerAnnotationDefinition.java
+++ /dev/null
@@ -1,62 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.eclipselink.core.internal.resource.java;
-
-import org.eclipse.jdt.core.IAnnotation;
-import org.eclipse.jpt.core.resource.java.Annotation;
-import org.eclipse.jpt.core.resource.java.AnnotationDefinition;
-import org.eclipse.jpt.core.resource.java.JavaResourcePersistentAttribute;
-import org.eclipse.jpt.core.resource.java.JavaResourcePersistentMember;
-import org.eclipse.jpt.core.utility.jdt.Attribute;
-import org.eclipse.jpt.core.utility.jdt.Member;
-import org.eclipse.jpt.eclipselink.core.internal.resource.java.binary.BinaryReadTransformerAnnotation;
-import org.eclipse.jpt.eclipselink.core.internal.resource.java.source.SourceReadTransformerAnnotation;
-import org.eclipse.jpt.eclipselink.core.resource.java.ReadTransformerAnnotation;
-
-/**
- * org.eclipse.persistence.annotations.ReadTransformer
- */
-public class ReadTransformerAnnotationDefinition
-	implements AnnotationDefinition
-{
-	// singleton
-	private static final AnnotationDefinition INSTANCE = new ReadTransformerAnnotationDefinition();
-
-	/**
-	 * Return the singleton.
-	 */
-	public static AnnotationDefinition instance() {
-		return INSTANCE;
-	}
-
-	/**
-	 * Ensure single instance.
-	 */
-	private ReadTransformerAnnotationDefinition() {
-		super();
-	}
-
-	public Annotation buildAnnotation(JavaResourcePersistentMember parent, Member member) {
-		return new SourceReadTransformerAnnotation((JavaResourcePersistentAttribute) parent, (Attribute) member);
-	}
-
-	public Annotation buildNullAnnotation(JavaResourcePersistentMember parent) {
-		throw new UnsupportedOperationException();
-	}
-
-	public Annotation buildAnnotation(JavaResourcePersistentMember parent, IAnnotation jdtAnnotation) {
-		return new BinaryReadTransformerAnnotation((JavaResourcePersistentAttribute) parent, jdtAnnotation);
-	}
-
-	public String getAnnotationName() {
-		return ReadTransformerAnnotation.ANNOTATION_NAME;
-	}
-
-}
diff --git a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/resource/java/StructConverterAnnotationDefinition.java b/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/resource/java/StructConverterAnnotationDefinition.java
deleted file mode 100644
index 50bc421..0000000
--- a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/resource/java/StructConverterAnnotationDefinition.java
+++ /dev/null
@@ -1,60 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.eclipselink.core.internal.resource.java;
-
-import org.eclipse.jdt.core.IAnnotation;
-import org.eclipse.jpt.core.resource.java.Annotation;
-import org.eclipse.jpt.core.resource.java.AnnotationDefinition;
-import org.eclipse.jpt.core.resource.java.JavaResourcePersistentMember;
-import org.eclipse.jpt.core.utility.jdt.Member;
-import org.eclipse.jpt.eclipselink.core.internal.resource.java.binary.BinaryStructConverterAnnotation;
-import org.eclipse.jpt.eclipselink.core.internal.resource.java.source.SourceStructConverterAnnotation;
-import org.eclipse.jpt.eclipselink.core.resource.java.StructConverterAnnotation;
-
-/**
- * org.eclipse.persistence.annotations.StructConverter
- */
-public class StructConverterAnnotationDefinition
-	implements AnnotationDefinition
-{
-	// singleton
-	private static final AnnotationDefinition INSTANCE = new StructConverterAnnotationDefinition();
-
-	/**
-	 * Return the singleton.
-	 */
-	public static AnnotationDefinition instance() {
-		return INSTANCE;
-	}
-
-	/**
-	 * Ensure single instance.
-	 */
-	private StructConverterAnnotationDefinition() {
-		super();
-	}
-
-	public Annotation buildAnnotation(JavaResourcePersistentMember parent, Member member) {
-		return new SourceStructConverterAnnotation(parent, member);
-	}
-
-	public Annotation buildNullAnnotation(JavaResourcePersistentMember parent) {
-		throw new UnsupportedOperationException();
-	}
-
-	public Annotation buildAnnotation(JavaResourcePersistentMember parent, IAnnotation jdtAnnotation) {
-		return new BinaryStructConverterAnnotation(parent, jdtAnnotation);
-	}
-
-	public String getAnnotationName() {
-		return StructConverterAnnotation.ANNOTATION_NAME;
-	}
-
-}
diff --git a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/resource/java/TransformationAnnotationDefinition.java b/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/resource/java/TransformationAnnotationDefinition.java
deleted file mode 100644
index 87968a3..0000000
--- a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/resource/java/TransformationAnnotationDefinition.java
+++ /dev/null
@@ -1,62 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.eclipselink.core.internal.resource.java;
-
-import org.eclipse.jdt.core.IAnnotation;
-import org.eclipse.jpt.core.resource.java.Annotation;
-import org.eclipse.jpt.core.resource.java.AnnotationDefinition;
-import org.eclipse.jpt.core.resource.java.JavaResourcePersistentAttribute;
-import org.eclipse.jpt.core.resource.java.JavaResourcePersistentMember;
-import org.eclipse.jpt.core.utility.jdt.Attribute;
-import org.eclipse.jpt.core.utility.jdt.Member;
-import org.eclipse.jpt.eclipselink.core.internal.resource.java.binary.BinaryTransformationAnnotation;
-import org.eclipse.jpt.eclipselink.core.internal.resource.java.source.SourceTransformationAnnotation;
-import org.eclipse.jpt.eclipselink.core.resource.java.TransformationAnnotation;
-
-/**
- * org.eclipse.persistence.annotations.Transformation
- */
-public class TransformationAnnotationDefinition
-	implements AnnotationDefinition
-{
-	// singleton
-	private static final AnnotationDefinition INSTANCE = new TransformationAnnotationDefinition();
-
-	/**
-	 * Return the singleton.
-	 */
-	public static AnnotationDefinition instance() {
-		return INSTANCE;
-	}
-
-	/**
-	 * Ensure single instance.
-	 */
-	private TransformationAnnotationDefinition() {
-		super();
-	}
-
-	public Annotation buildAnnotation(JavaResourcePersistentMember parent, Member member) {
-		return new SourceTransformationAnnotation((JavaResourcePersistentAttribute) parent, (Attribute) member);
-	}
-
-	public Annotation buildNullAnnotation(JavaResourcePersistentMember parent) {
-		return new NullTransformationAnnotation((JavaResourcePersistentAttribute) parent);
-	}
-
-	public Annotation buildAnnotation(JavaResourcePersistentMember parent, IAnnotation jdtAnnotation) {
-		return new BinaryTransformationAnnotation((JavaResourcePersistentAttribute) parent, jdtAnnotation);
-	}
-
-	public String getAnnotationName() {
-		return TransformationAnnotation.ANNOTATION_NAME;
-	}
-
-}
diff --git a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/resource/java/TypeConverterAnnotationDefinition.java b/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/resource/java/TypeConverterAnnotationDefinition.java
deleted file mode 100644
index 6bb9678..0000000
--- a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/resource/java/TypeConverterAnnotationDefinition.java
+++ /dev/null
@@ -1,60 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.eclipselink.core.internal.resource.java;
-
-import org.eclipse.jdt.core.IAnnotation;
-import org.eclipse.jpt.core.resource.java.Annotation;
-import org.eclipse.jpt.core.resource.java.AnnotationDefinition;
-import org.eclipse.jpt.core.resource.java.JavaResourcePersistentMember;
-import org.eclipse.jpt.core.utility.jdt.Member;
-import org.eclipse.jpt.eclipselink.core.internal.resource.java.binary.BinaryTypeConverterAnnotation;
-import org.eclipse.jpt.eclipselink.core.internal.resource.java.source.SourceTypeConverterAnnotation;
-import org.eclipse.jpt.eclipselink.core.resource.java.TypeConverterAnnotation;
-
-/**
- * org.eclipse.persistence.annotations.TypeConverter
- */
-public class TypeConverterAnnotationDefinition
-	implements AnnotationDefinition
-{
-	// singleton
-	private static final AnnotationDefinition INSTANCE = new TypeConverterAnnotationDefinition();
-
-	/**
-	 * Return the singleton.
-	 */
-	public static AnnotationDefinition instance() {
-		return INSTANCE;
-	}
-
-	/**
-	 * Ensure single instance.
-	 */
-	private TypeConverterAnnotationDefinition() {
-		super();
-	}
-
-	public Annotation buildAnnotation(JavaResourcePersistentMember parent, Member member) {
-		return new SourceTypeConverterAnnotation(parent, member);
-	}
-
-	public Annotation buildNullAnnotation(JavaResourcePersistentMember parent) {
-		throw new UnsupportedOperationException();
-	}
-
-	public Annotation buildAnnotation(JavaResourcePersistentMember parent, IAnnotation jdtAnnotation) {
-		return new BinaryTypeConverterAnnotation(parent, jdtAnnotation);
-	}
-
-	public String getAnnotationName() {
-		return TypeConverterAnnotation.ANNOTATION_NAME;
-	}
-
-}
diff --git a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/resource/java/VariableOneToOneAnnotationDefinition.java b/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/resource/java/VariableOneToOneAnnotationDefinition.java
deleted file mode 100644
index 4d4bd65..0000000
--- a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/resource/java/VariableOneToOneAnnotationDefinition.java
+++ /dev/null
@@ -1,62 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.eclipselink.core.internal.resource.java;
-
-import org.eclipse.jdt.core.IAnnotation;
-import org.eclipse.jpt.core.resource.java.Annotation;
-import org.eclipse.jpt.core.resource.java.AnnotationDefinition;
-import org.eclipse.jpt.core.resource.java.JavaResourcePersistentAttribute;
-import org.eclipse.jpt.core.resource.java.JavaResourcePersistentMember;
-import org.eclipse.jpt.core.utility.jdt.Attribute;
-import org.eclipse.jpt.core.utility.jdt.Member;
-import org.eclipse.jpt.eclipselink.core.internal.resource.java.binary.BinaryVariableOneToOneAnnotation;
-import org.eclipse.jpt.eclipselink.core.internal.resource.java.source.SourceVariableOneToOneAnnotation;
-import org.eclipse.jpt.eclipselink.core.resource.java.VariableOneToOneAnnotation;
-
-/**
- * org.eclipse.persistence.annotations.VariableOneToOne
- */
-public class VariableOneToOneAnnotationDefinition
-	implements AnnotationDefinition
-{
-	// singleton
-	private static final AnnotationDefinition INSTANCE = new VariableOneToOneAnnotationDefinition();
-
-	/**
-	 * Return the singleton.
-	 */
-	public static AnnotationDefinition instance() {
-		return INSTANCE;
-	}
-
-	/**
-	 * Ensure single instance.
-	 */
-	private VariableOneToOneAnnotationDefinition() {
-		super();
-	}
-
-	public Annotation buildAnnotation(JavaResourcePersistentMember parent, Member member) {
-		return new SourceVariableOneToOneAnnotation((JavaResourcePersistentAttribute) parent, (Attribute) member);
-	}
-
-	public Annotation buildNullAnnotation(JavaResourcePersistentMember parent) {
-		return new NullVariableOneToOneAnnotation((JavaResourcePersistentAttribute) parent);
-	}
-
-	public Annotation buildAnnotation(JavaResourcePersistentMember parent, IAnnotation jdtAnnotation) {
-		return new BinaryVariableOneToOneAnnotation((JavaResourcePersistentAttribute) parent, jdtAnnotation);
-	}
-
-	public String getAnnotationName() {
-		return VariableOneToOneAnnotation.ANNOTATION_NAME;
-	}
-
-}
diff --git a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/resource/java/WriteTransformerAnnotationDefinition.java b/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/resource/java/WriteTransformerAnnotationDefinition.java
deleted file mode 100644
index 6bd1146..0000000
--- a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/resource/java/WriteTransformerAnnotationDefinition.java
+++ /dev/null
@@ -1,62 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.eclipselink.core.internal.resource.java;
-
-import org.eclipse.jdt.core.IAnnotation;
-import org.eclipse.jpt.core.resource.java.Annotation;
-import org.eclipse.jpt.core.resource.java.AnnotationDefinition;
-import org.eclipse.jpt.core.resource.java.JavaResourcePersistentAttribute;
-import org.eclipse.jpt.core.resource.java.JavaResourcePersistentMember;
-import org.eclipse.jpt.core.utility.jdt.Attribute;
-import org.eclipse.jpt.core.utility.jdt.Member;
-import org.eclipse.jpt.eclipselink.core.internal.resource.java.binary.BinaryWriteTransformerAnnotation;
-import org.eclipse.jpt.eclipselink.core.internal.resource.java.source.SourceWriteTransformerAnnotation;
-import org.eclipse.jpt.eclipselink.core.resource.java.WriteTransformerAnnotation;
-
-/**
- * org.eclipse.persistence.annotations.WriteTransformer
- */
-public class WriteTransformerAnnotationDefinition
-	implements AnnotationDefinition
-{
-	// singleton
-	private static final AnnotationDefinition INSTANCE = new WriteTransformerAnnotationDefinition();
-
-	/**
-	 * Return the singleton.
-	 */
-	public static AnnotationDefinition instance() {
-		return INSTANCE;
-	}
-
-	/**
-	 * Ensure single instance.
-	 */
-	private WriteTransformerAnnotationDefinition() {
-		super();
-	}
-
-	public Annotation buildAnnotation(JavaResourcePersistentMember parent, Member member) {
-		return new SourceWriteTransformerAnnotation((JavaResourcePersistentAttribute) parent, (Attribute) member);
-	}
-
-	public Annotation buildNullAnnotation(JavaResourcePersistentMember parent) {
-		throw new UnsupportedOperationException();
-	}
-
-	public Annotation buildAnnotation(JavaResourcePersistentMember parent, IAnnotation jdtAnnotation) {
-		return new BinaryWriteTransformerAnnotation((JavaResourcePersistentAttribute) parent, jdtAnnotation);
-	}
-
-	public String getAnnotationName() {
-		return WriteTransformerAnnotation.ANNOTATION_NAME;
-	}
-
-}
diff --git a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/resource/java/binary/BinaryBaseTypeConverterAnnotation.java b/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/resource/java/binary/BinaryBaseTypeConverterAnnotation.java
deleted file mode 100644
index f65760a..0000000
--- a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/resource/java/binary/BinaryBaseTypeConverterAnnotation.java
+++ /dev/null
@@ -1,96 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.eclipselink.core.internal.resource.java.binary;
-
-import org.eclipse.jdt.core.IAnnotation;
-import org.eclipse.jdt.core.dom.CompilationUnit;
-import org.eclipse.jpt.core.resource.java.JavaResourcePersistentMember;
-import org.eclipse.jpt.core.utility.TextRange;
-import org.eclipse.jpt.eclipselink.core.resource.java.BaseTypeConverterAnnotation;
-
-/**
- * org.eclipse.persistence.annotations.ObjectTypeConverter
- * org.eclipse.persistence.annotations.TypeConverter
- */
-abstract class BinaryBaseTypeConverterAnnotation
-	extends BinaryNamedConverterAnnotation
-	implements BaseTypeConverterAnnotation
-{
-	String dataType;
-	String objectType;
-
-
-	BinaryBaseTypeConverterAnnotation(JavaResourcePersistentMember parent, IAnnotation jdtAnnotation) {
-		super(parent, jdtAnnotation);
-		this.dataType = this.buildDataType();
-		this.objectType = this.buildObjectType();
-	}
-
-	@Override
-	public void update() {
-		super.update();
-		this.setDataType_(this.buildDataType());
-		this.setObjectType_(this.buildObjectType());
-	}
-
-
-	// ********** ObjectTypeConverterAnnotation implementation **********
-
-	// ***** data type
-	public String getDataType() {
-		return this.dataType;
-	}
-
-	public void setDataType(String dataType) {
-		throw new UnsupportedOperationException();
-	}
-
-	private void setDataType_(String dataType) {
-		String old = this.dataType;
-		this.dataType = dataType;
-		this.firePropertyChanged(DATA_TYPE_PROPERTY, old, dataType);
-	}
-
-	private String buildDataType() {
-		return (String) this.getJdtMemberValue(this.getDataTypeElementName());
-	}
-
-	public TextRange getDataTypeTextRange(CompilationUnit astRoot) {
-		throw new UnsupportedOperationException();
-	}
-
-	abstract String getDataTypeElementName();
-
-	// ***** object type
-	public String getObjectType() {
-		return this.objectType;
-	}
-
-	public void setObjectType(String objectType) {
-		throw new UnsupportedOperationException();
-	}
-
-	private void setObjectType_(String objectType) {
-		String old = this.objectType;
-		this.objectType = objectType;
-		this.firePropertyChanged(OBJECT_TYPE_PROPERTY, old, objectType);
-	}
-
-	private String buildObjectType() {
-		return (String) this.getJdtMemberValue(this.getObjectTypeElementName());
-	}
-
-	public TextRange getObjectTypeTextRange(CompilationUnit astRoot) {
-		throw new UnsupportedOperationException();
-	}
-
-	abstract String getObjectTypeElementName();
-
-}
diff --git a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/resource/java/binary/BinaryBasicCollectionAnnotation.java b/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/resource/java/binary/BinaryBasicCollectionAnnotation.java
deleted file mode 100644
index 5731e49..0000000
--- a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/resource/java/binary/BinaryBasicCollectionAnnotation.java
+++ /dev/null
@@ -1,32 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.eclipselink.core.internal.resource.java.binary;
-
-import org.eclipse.jdt.core.IAnnotation;
-import org.eclipse.jpt.core.internal.resource.java.binary.BinaryAnnotation;
-import org.eclipse.jpt.core.resource.java.JavaResourcePersistentAttribute;
-import org.eclipse.jpt.eclipselink.core.resource.java.BasicCollectionAnnotation;
-
-/**
- * org.eclipse.persistence.annotations.BasicCollection
- */
-public final class BinaryBasicCollectionAnnotation
-	extends BinaryAnnotation
-	implements BasicCollectionAnnotation
-{
-	public BinaryBasicCollectionAnnotation(JavaResourcePersistentAttribute parent, IAnnotation jdtAnnotation) {
-		super(parent, jdtAnnotation);
-	}
-
-	public String getAnnotationName() {
-		return ANNOTATION_NAME;
-	}
-
-}
diff --git a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/resource/java/binary/BinaryBasicMapAnnotation.java b/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/resource/java/binary/BinaryBasicMapAnnotation.java
deleted file mode 100644
index 77089c7..0000000
--- a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/resource/java/binary/BinaryBasicMapAnnotation.java
+++ /dev/null
@@ -1,32 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.eclipselink.core.internal.resource.java.binary;
-
-import org.eclipse.jdt.core.IAnnotation;
-import org.eclipse.jpt.core.internal.resource.java.binary.BinaryAnnotation;
-import org.eclipse.jpt.core.resource.java.JavaResourcePersistentAttribute;
-import org.eclipse.jpt.eclipselink.core.resource.java.BasicMapAnnotation;
-
-/**
- * org.eclipse.persistence.annotations.BasicMap
- */
-public final class BinaryBasicMapAnnotation
-	extends BinaryAnnotation
-	implements BasicMapAnnotation
-{
-	public BinaryBasicMapAnnotation(JavaResourcePersistentAttribute parent, IAnnotation jdtAnnotation) {
-		super(parent, jdtAnnotation);
-	}
-
-	public String getAnnotationName() {
-		return ANNOTATION_NAME;
-	}
-
-}
diff --git a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/resource/java/binary/BinaryCacheAnnotation.java b/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/resource/java/binary/BinaryCacheAnnotation.java
deleted file mode 100644
index 3d9e758..0000000
--- a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/resource/java/binary/BinaryCacheAnnotation.java
+++ /dev/null
@@ -1,311 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.eclipselink.core.internal.resource.java.binary;
-
-import org.eclipse.jdt.core.IAnnotation;
-import org.eclipse.jdt.core.dom.CompilationUnit;
-import org.eclipse.jpt.core.internal.resource.java.binary.BinaryAnnotation;
-import org.eclipse.jpt.core.resource.java.JavaResourcePersistentType;
-import org.eclipse.jpt.core.utility.TextRange;
-import org.eclipse.jpt.eclipselink.core.resource.java.CacheAnnotation;
-import org.eclipse.jpt.eclipselink.core.resource.java.CacheCoordinationType;
-import org.eclipse.jpt.eclipselink.core.resource.java.CacheType;
-import org.eclipse.jpt.eclipselink.core.resource.java.EclipseLinkJPA;
-import org.eclipse.jpt.eclipselink.core.resource.java.TimeOfDayAnnotation;
-
-/**
- * org.eclipse.persistence.annotations.Cache
- */
-public final class BinaryCacheAnnotation
-	extends BinaryAnnotation
-	implements CacheAnnotation
-{
-	private CacheType type;
-	private Integer size;
-	private Boolean shared;
-	private Integer expiry;
-	private TimeOfDayAnnotation expiryTimeOfDay;
-	private Boolean alwaysRefresh;
-	private Boolean refreshOnlyIfNewer;
-	private Boolean disableHits;
-	private CacheCoordinationType coordinationType;
-
-
-	public BinaryCacheAnnotation(JavaResourcePersistentType parent, IAnnotation jdtAnnotation) {
-		super(parent, jdtAnnotation);
-		this.type = this.buildType();
-		this.size = this.buildSize();
-		this.shared = this.buildShared();
-		this.expiry = this.buildExpiry();
-		this.expiryTimeOfDay = this.buildExpiryTimeOfDay();
-		this.alwaysRefresh = this.buildAlwaysRefresh();
-		this.refreshOnlyIfNewer = this.buildRefreshOnlyIfNewer();
-		this.disableHits = this.buildDisableHits();
-		this.coordinationType = this.buildCoordinationType();
-	}
-
-	public String getAnnotationName() {
-		return ANNOTATION_NAME;
-	}
-
-	// TODO
-	@Override
-	public void update() {
-		super.update();
-		this.setType_(this.buildType());
-		this.setSize_(this.buildSize());
-		this.setShared_(this.buildShared());
-		this.setExpiry_(this.buildExpiry());
-		this.updateExpiryTimeOfDay();
-		this.setAlwaysRefresh_(this.buildAlwaysRefresh());
-		this.setRefreshOnlyIfNewer_(this.buildRefreshOnlyIfNewer());
-		this.setDisableHits_(this.buildDisableHits());
-		this.setCoordinationType_(this.buildCoordinationType());
-	}
-
-
-	// ********** CacheAnnotation implementation **********
-
-	// ***** type
-	public CacheType getType() {
-		return this.type;
-	}
-
-	public void setType(CacheType type) {
-		throw new UnsupportedOperationException();
-	}
-
-	private void setType_(CacheType type) {
-		CacheType old = this.type;
-		this.type = type;
-		this.firePropertyChanged(TYPE_PROPERTY, old, type);
-	}
-
-	private CacheType buildType() {
-		return CacheType.fromJavaAnnotationValue(this.getJdtMemberValue(EclipseLinkJPA.CACHE__TYPE));
-	}
-
-	public TextRange getTypeTextRange(CompilationUnit astRoot) {
-		throw new UnsupportedOperationException();
-	}
-
-	// ***** size
-	public Integer getSize() {
-		return this.size;
-	}
-
-	public void setSize(Integer size) {
-		throw new UnsupportedOperationException();
-	}
-
-	private void setSize_(Integer size) {
-		Integer old = this.size;
-		this.size = size;
-		this.firePropertyChanged(SIZE_PROPERTY, old, size);
-	}
-
-	private Integer buildSize() {
-		return (Integer) this.getJdtMemberValue(EclipseLinkJPA.CACHE__SIZE);
-	}
-
-	public TextRange getSizeTextRange(CompilationUnit astRoot) {
-		throw new UnsupportedOperationException();
-	}
-
-	// ***** shared
-	public Boolean getShared() {
-		return this.shared;
-	}
-
-	public void setShared(Boolean shared) {
-		throw new UnsupportedOperationException();
-	}
-
-	private void setShared_(Boolean shared) {
-		Boolean old = this.shared;
-		this.shared = shared;
-		this.firePropertyChanged(SHARED_PROPERTY, old, shared);
-	}
-
-	private Boolean buildShared() {
-		return (Boolean) this.getJdtMemberValue(EclipseLinkJPA.CACHE__SHARED);
-	}
-
-	public TextRange getSharedTextRange(CompilationUnit astRoot) {
-		throw new UnsupportedOperationException();
-	}
-
-	// ***** expiry
-	public Integer getExpiry() {
-		return this.expiry;
-	}
-
-	public void setExpiry(Integer expiry) {
-		throw new UnsupportedOperationException();
-	}
-
-	private void setExpiry_(Integer expiry) {
-		Integer old = this.expiry;
-		this.expiry = expiry;
-		this.firePropertyChanged(EXPIRY_PROPERTY, old, expiry);
-	}
-
-	private Integer buildExpiry() {
-		return (Integer) this.getJdtMemberValue(EclipseLinkJPA.CACHE__EXPIRY);
-	}
-
-	public TextRange getExpiryTextRange(CompilationUnit astRoot) {
-		throw new UnsupportedOperationException();
-	}
-
-	// ***** expiry time of day
-	public TimeOfDayAnnotation getExpiryTimeOfDay() {
-		return this.expiryTimeOfDay;
-	}
-
-	public TimeOfDayAnnotation addExpiryTimeOfDay() {
-		throw new UnsupportedOperationException();
-	}
-
-	public void removeExpiryTimeOfDay() {
-		throw new UnsupportedOperationException();
-	}
-
-	private TimeOfDayAnnotation buildExpiryTimeOfDay() {
-		IAnnotation jdtTimeOfDay = this.getJdtExpiryTimeOfDay();
-		return (jdtTimeOfDay == null) ? null : this.buildTimeOfDay(jdtTimeOfDay);
-	}
-
-	private TimeOfDayAnnotation buildTimeOfDay(IAnnotation jdtTimeOfDay) {
-		return new BinaryTimeOfDayAnnotation(this, jdtTimeOfDay);
-	}
-
-	private IAnnotation getJdtExpiryTimeOfDay() {
-		return (IAnnotation) this.getJdtMemberValue(EclipseLinkJPA.CACHE__EXPIRY_TIME_OF_DAY);
-	}
-
-	private void setExpiryTimeOfDay(TimeOfDayAnnotation expiryTimeOfDay) {
-		TimeOfDayAnnotation old = this.expiryTimeOfDay;
-		this.expiryTimeOfDay = expiryTimeOfDay;
-		this.firePropertyChanged(EXPIRY_TIME_OF_DAY_PROPERTY, old, expiryTimeOfDay);
-	}
-
-	// TODO
-	private void updateExpiryTimeOfDay() {
-		throw new UnsupportedOperationException();
-//		IAnnotation jdtTimeOfDay = this.getJdtExpiryTimeOfDay();
-//		if (jdtTimeOfDay == null) {
-//			this.setExpiryTimeOfDay(null);
-//		} else {
-//			if (this.expiryTimeOfDay == null) {
-//				this.setExpiryTimeOfDay(this.buildTimeOfDay(jdtTimeOfDay));
-//			} else {
-//				this.expiryTimeOfDay.update(jdtTimeOfDay);
-//			}
-//		}
-	}
-
-	public TextRange getExpiryTimeOfDayTextRange(CompilationUnit astRoot) {
-		throw new UnsupportedOperationException();
-	}
-
-	// ***** always refresh
-	public Boolean getAlwaysRefresh() {
-		return this.alwaysRefresh;
-	}
-
-	public void setAlwaysRefresh(Boolean alwaysRefresh) {
-		throw new UnsupportedOperationException();
-	}
-
-	private void setAlwaysRefresh_(Boolean alwaysRefresh) {
-		Boolean old = this.alwaysRefresh;
-		this.alwaysRefresh = alwaysRefresh;
-		this.firePropertyChanged(ALWAYS_REFRESH_PROPERTY, old, alwaysRefresh);
-	}
-
-	private Boolean buildAlwaysRefresh() {
-		return (Boolean) this.getJdtMemberValue(EclipseLinkJPA.CACHE__ALWAYS_REFRESH);
-	}
-
-	public TextRange getAlwaysRefreshTextRange(CompilationUnit astRoot) {
-		throw new UnsupportedOperationException();
-	}
-
-	// ***** refresh only if newer
-	public Boolean getRefreshOnlyIfNewer() {
-		return this.refreshOnlyIfNewer;
-	}
-
-	public void setRefreshOnlyIfNewer(Boolean refreshOnlyIfNewer) {
-		throw new UnsupportedOperationException();
-	}
-
-	private void setRefreshOnlyIfNewer_(Boolean refreshOnlyIfNewer) {
-		Boolean old = this.refreshOnlyIfNewer;
-		this.refreshOnlyIfNewer = refreshOnlyIfNewer;
-		this.firePropertyChanged(REFRESH_ONLY_IF_NEWER_PROPERTY, old, refreshOnlyIfNewer);
-	}
-
-	private Boolean buildRefreshOnlyIfNewer() {
-		return (Boolean) this.getJdtMemberValue(EclipseLinkJPA.CACHE__REFRESH_ONLY_IF_NEWER);
-	}
-
-	public TextRange getRefreshOnlyIfNewerTextRange(CompilationUnit astRoot) {
-		throw new UnsupportedOperationException();
-	}
-
-	// ***** disable hits
-	public Boolean getDisableHits() {
-		return this.disableHits;
-	}
-
-	public void setDisableHits(Boolean disableHits) {
-		throw new UnsupportedOperationException();
-	}
-
-	private void setDisableHits_(Boolean disableHits) {
-		Boolean old = this.disableHits;
-		this.disableHits = disableHits;
-		this.firePropertyChanged(DISABLE_HITS_PROPERTY, old, disableHits);
-	}
-
-	private Boolean buildDisableHits() {
-		return (Boolean) this.getJdtMemberValue(EclipseLinkJPA.CACHE__DISABLE_HITS);
-	}
-
-	public TextRange getDisablesHitsTextRange(CompilationUnit astRoot) {
-		throw new UnsupportedOperationException();
-	}
-
-	// ***** coordination type
-	public CacheCoordinationType getCoordinationType() {
-		return this.coordinationType;
-	}
-
-	public void setCoordinationType(CacheCoordinationType coordinationType) {
-		throw new UnsupportedOperationException();
-	}
-
-	private void setCoordinationType_(CacheCoordinationType coordinationType) {
-		CacheCoordinationType old = this.coordinationType;
-		this.coordinationType = coordinationType;
-		this.firePropertyChanged(TYPE_PROPERTY, old, coordinationType);
-	}
-
-	private CacheCoordinationType buildCoordinationType() {
-		return CacheCoordinationType.fromJavaAnnotationValue(this.getJdtMemberValue(EclipseLinkJPA.CACHE__COORDINATION_TYPE));
-	}
-
-	public TextRange getCoordinationTypeTextRange(CompilationUnit astRoot) {
-		throw new UnsupportedOperationException();
-	}
-
-}
diff --git a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/resource/java/binary/BinaryChangeTrackingAnnotation.java b/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/resource/java/binary/BinaryChangeTrackingAnnotation.java
deleted file mode 100644
index 2fdb39a..0000000
--- a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/resource/java/binary/BinaryChangeTrackingAnnotation.java
+++ /dev/null
@@ -1,73 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.eclipselink.core.internal.resource.java.binary;
-
-import org.eclipse.jdt.core.IAnnotation;
-import org.eclipse.jdt.core.dom.CompilationUnit;
-import org.eclipse.jpt.core.internal.resource.java.binary.BinaryAnnotation;
-import org.eclipse.jpt.core.resource.java.JavaResourcePersistentType;
-import org.eclipse.jpt.core.utility.TextRange;
-import org.eclipse.jpt.eclipselink.core.resource.java.ChangeTrackingAnnotation;
-import org.eclipse.jpt.eclipselink.core.resource.java.ChangeTrackingType;
-import org.eclipse.jpt.eclipselink.core.resource.java.EclipseLinkJPA;
-
-/**
- * org.eclipse.persistence.annotations.ChangeTracking
- */
-public final class BinaryChangeTrackingAnnotation
-	extends BinaryAnnotation
-	implements ChangeTrackingAnnotation
-{
-	private ChangeTrackingType value;
-
-
-	public BinaryChangeTrackingAnnotation(JavaResourcePersistentType parent, IAnnotation jdtAnnotation) {
-		super(parent, jdtAnnotation);
-		this.value = this.buildValue();
-	}
-
-	public String getAnnotationName() {
-		return ANNOTATION_NAME;
-	}
-
-	// TODO
-	@Override
-	public void update() {
-		super.update();
-		this.setValue_(this.buildValue());
-	}
-
-
-	// ********** ChangeTrackingAnnotation implementation **********
-
-	// ***** value
-	public ChangeTrackingType getValue() {
-		return this.value;
-	}
-
-	public void setValue(ChangeTrackingType value) {
-		throw new UnsupportedOperationException();
-	}
-
-	private void setValue_(ChangeTrackingType value) {
-		ChangeTrackingType old = this.value;
-		this.value = value;
-		this.firePropertyChanged(VALUE_PROPERTY, old, value);
-	}
-
-	private ChangeTrackingType buildValue() {
-		return ChangeTrackingType.fromJavaAnnotationValue(this.getJdtMemberValue(EclipseLinkJPA.CHANGE_TRACKING__VALUE));
-	}
-
-	public TextRange getValueTextRange(CompilationUnit astRoot) {
-		throw new UnsupportedOperationException();
-	}
-
-}
diff --git a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/resource/java/binary/BinaryConversionValueAnnotation.java b/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/resource/java/binary/BinaryConversionValueAnnotation.java
deleted file mode 100644
index e6a4b6b..0000000
--- a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/resource/java/binary/BinaryConversionValueAnnotation.java
+++ /dev/null
@@ -1,97 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.eclipselink.core.internal.resource.java.binary;
-
-import org.eclipse.jdt.core.IAnnotation;
-import org.eclipse.jdt.core.dom.CompilationUnit;
-import org.eclipse.jpt.core.internal.resource.java.binary.BinaryAnnotation;
-import org.eclipse.jpt.core.resource.java.JavaResourceNode;
-import org.eclipse.jpt.core.utility.TextRange;
-import org.eclipse.jpt.eclipselink.core.resource.java.ConversionValueAnnotation;
-import org.eclipse.jpt.eclipselink.core.resource.java.EclipseLinkJPA;
-
-/**
- * org.eclipse.persistence.annotations.ConversionValue
- */
-final class BinaryConversionValueAnnotation
-	extends BinaryAnnotation
-	implements ConversionValueAnnotation
-{
-	private String dataValue;
-	private String objectValue;
-
-
-	BinaryConversionValueAnnotation(JavaResourceNode parent, IAnnotation jdtAnnotation) {
-		super(parent, jdtAnnotation);
-		this.dataValue = this.buildDataValue();
-		this.objectValue = this.buildObjectValue();
-	}
-
-	public String getAnnotationName() {
-		return ANNOTATION_NAME;
-	}
-
-	@Override
-	public void update() {
-		super.update();
-		this.setDataValue_(this.buildDataValue());
-		this.setObjectValue_(this.buildObjectValue());
-	}
-
-
-	// ********** ConversionValueAnnotation implementation **********
-
-	// ***** data value
-	public String getDataValue() {
-		return this.dataValue;
-	}
-
-	public void setDataValue(String dataValue) {
-		throw new UnsupportedOperationException();
-	}
-
-	private void setDataValue_(String dataValue) {
-		String old = this.dataValue;
-		this.dataValue = dataValue;
-		this.firePropertyChanged(DATA_VALUE_PROPERTY, old, dataValue);
-	}
-
-	private String buildDataValue() {
-		return (String) this.getJdtMemberValue(EclipseLinkJPA.CONVERSION_VALUE__DATA_VALUE);
-	}
-
-	public TextRange getDataValueTextRange(CompilationUnit astRoot) {
-		throw new UnsupportedOperationException();
-	}
-
-	// ***** object value
-	public String getObjectValue() {
-		return this.objectValue;
-	}
-
-	public void setObjectValue(String objectValue) {
-		throw new UnsupportedOperationException();
-	}
-
-	private void setObjectValue_(String objectValue) {
-		String old = this.objectValue;
-		this.objectValue = objectValue;
-		this.firePropertyChanged(OBJECT_VALUE_PROPERTY, old, objectValue);
-	}
-
-	private String buildObjectValue() {
-		return (String) this.getJdtMemberValue(EclipseLinkJPA.CONVERSION_VALUE__OBJECT_VALUE);
-	}
-
-	public TextRange getObjectValueTextRange(CompilationUnit astRoot) {
-		throw new UnsupportedOperationException();
-	}
-
-}
diff --git a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/resource/java/binary/BinaryConvertAnnotation.java b/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/resource/java/binary/BinaryConvertAnnotation.java
deleted file mode 100644
index e2004eb..0000000
--- a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/resource/java/binary/BinaryConvertAnnotation.java
+++ /dev/null
@@ -1,74 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.eclipselink.core.internal.resource.java.binary;
-
-import org.eclipse.jdt.core.IAnnotation;
-import org.eclipse.jdt.core.dom.CompilationUnit;
-import org.eclipse.jpt.core.internal.resource.java.binary.BinaryAnnotation;
-import org.eclipse.jpt.core.resource.java.JavaResourcePersistentAttribute;
-import org.eclipse.jpt.core.utility.TextRange;
-import org.eclipse.jpt.eclipselink.core.resource.java.ConvertAnnotation;
-import org.eclipse.jpt.eclipselink.core.resource.java.EclipseLinkJPA;
-
-/**
- * org.eclipse.persistence.annotations.Convert
- */
-public final class BinaryConvertAnnotation
-	extends BinaryAnnotation
-	implements ConvertAnnotation
-{
-	private String value;
-
-	public BinaryConvertAnnotation(JavaResourcePersistentAttribute parent, IAnnotation jdtAnnotation) {
-		super(parent, jdtAnnotation);
-		this.value = this.buildValue();
-	}
-
-	public String getAnnotationName() {
-		return ANNOTATION_NAME;
-	}
-
-	@Override
-	public void update() {
-		super.update();
-		this.setValue_(this.buildValue());
-	}
-
-
-	// ********** ConvertAnnotation implementation **********
-
-	// ***** value
-	public String getValue() {
-		return this.value;
-	}
-
-	public void setValue(String value) {
-		throw new UnsupportedOperationException();
-	}
-
-	private void setValue_(String value) {
-		String old = this.value;
-		this.value = value;
-		this.firePropertyChanged(VALUE_PROPERTY, old, value);
-	}
-
-	private String buildValue() {
-		return (String) this.getJdtMemberValue(EclipseLinkJPA.CONVERT__VALUE);
-	}
-
-	public TextRange getValueTextRange(CompilationUnit astRoot) {
-		throw new UnsupportedOperationException();
-	}
-
-	public boolean valueTouches(int pos, CompilationUnit astRoot) {
-		throw new UnsupportedOperationException();
-	}
-
-}
diff --git a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/resource/java/binary/BinaryConverterAnnotation.java b/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/resource/java/binary/BinaryConverterAnnotation.java
deleted file mode 100644
index 439efe6..0000000
--- a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/resource/java/binary/BinaryConverterAnnotation.java
+++ /dev/null
@@ -1,81 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.eclipselink.core.internal.resource.java.binary;
-
-import org.eclipse.jdt.core.IAnnotation;
-import org.eclipse.jdt.core.dom.CompilationUnit;
-import org.eclipse.jpt.core.resource.java.JavaResourcePersistentMember;
-import org.eclipse.jpt.core.utility.TextRange;
-import org.eclipse.jpt.eclipselink.core.resource.java.ConverterAnnotation;
-import org.eclipse.jpt.eclipselink.core.resource.java.EclipseLinkJPA;
-
-/**
- * org.eclipse.persistence.annotations.Converter
- */
-public final class BinaryConverterAnnotation
-	extends BinaryNamedConverterAnnotation
-	implements ConverterAnnotation
-{
-	private String converterClass;
-
-
-	public BinaryConverterAnnotation(JavaResourcePersistentMember parent, IAnnotation jdtAnnotation) {
-		super(parent, jdtAnnotation);
-		this.converterClass = this.buildConverterClass();
-	}
-
-	public String getAnnotationName() {
-		return ANNOTATION_NAME;
-	}
-
-	@Override
-	public void update() {
-		super.update();
-		this.setConverterClass_(this.buildConverterClass());
-	}
-
-
-	// ********** BinaryNamedConverterAnnotation implementation **********
-
-	@Override
-	String getNameElementName() {
-		return EclipseLinkJPA.CONVERTER__NAME;
-	}
-
-	// ********** ConverterAnnotation implementation **********
-
-	// ***** converter class
-	public String getConverterClass() {
-		return this.converterClass;
-	}
-
-	public void setConverterClass(String converterClass) {
-		throw new UnsupportedOperationException();
-	}
-
-	private void setConverterClass_(String converterClass) {
-		String old = this.converterClass;
-		this.converterClass = converterClass;
-		this.firePropertyChanged(CONVERTER_CLASS_PROPERTY, old, converterClass);
-	}
-
-	private String buildConverterClass() {
-		return (String) this.getJdtMemberValue(EclipseLinkJPA.CONVERTER__CONVERTER_CLASS);
-	}
-
-	public TextRange getConverterClassTextRange(CompilationUnit astRoot) {
-		throw new UnsupportedOperationException();
-	}
-
-	public boolean converterClassImplementsInterface(String interfaceName, CompilationUnit astRoot) {
-		throw new UnsupportedOperationException();
-	}
-
-}
diff --git a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/resource/java/binary/BinaryCustomizerAnnotation.java b/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/resource/java/binary/BinaryCustomizerAnnotation.java
deleted file mode 100644
index 93e22a5..0000000
--- a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/resource/java/binary/BinaryCustomizerAnnotation.java
+++ /dev/null
@@ -1,75 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.eclipselink.core.internal.resource.java.binary;
-
-import org.eclipse.jdt.core.IAnnotation;
-import org.eclipse.jdt.core.dom.CompilationUnit;
-import org.eclipse.jpt.core.internal.resource.java.binary.BinaryAnnotation;
-import org.eclipse.jpt.core.resource.java.JavaResourcePersistentMember;
-import org.eclipse.jpt.core.utility.TextRange;
-import org.eclipse.jpt.eclipselink.core.resource.java.CustomizerAnnotation;
-import org.eclipse.jpt.eclipselink.core.resource.java.EclipseLinkJPA;
-
-/**
- * org.eclipse.persistence.annotations.Customizer
- */
-public final class BinaryCustomizerAnnotation
-	extends BinaryAnnotation
-	implements CustomizerAnnotation
-{
-	private String value;
-
-
-	public BinaryCustomizerAnnotation(JavaResourcePersistentMember parent, IAnnotation jdtAnnotation) {
-		super(parent, jdtAnnotation);
-		this.value = this.buildValue();
-	}
-
-	public String getAnnotationName() {
-		return ANNOTATION_NAME;
-	}
-
-	@Override
-	public void update() {
-		super.update();
-		this.setValue_(this.buildValue());
-	}
-
-
-	// ********** CustomizerAnnotation implementation **********
-
-	// ***** value
-	public String getValue() {
-		return this.value;
-	}
-
-	public void setValue(String value) {
-		throw new UnsupportedOperationException();
-	}
-
-	private void setValue_(String value) {
-		String old = this.value;
-		this.value = value;
-		this.firePropertyChanged(VALUE_PROPERTY, old, value);
-	}
-
-	private String buildValue() {
-		return (String) this.getJdtMemberValue(EclipseLinkJPA.CUSTOMIZER__VALUE);
-	}
-
-	public TextRange getValueTextRange(CompilationUnit astRoot) {
-		throw new UnsupportedOperationException();
-	}
-
-	public boolean customizerClassImplementsInterface(String interfaceName, CompilationUnit astRoot) {
-		throw new UnsupportedOperationException();
-	}
-
-}
diff --git a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/resource/java/binary/BinaryExistenceCheckingAnnotation.java b/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/resource/java/binary/BinaryExistenceCheckingAnnotation.java
deleted file mode 100644
index c9a16bf..0000000
--- a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/resource/java/binary/BinaryExistenceCheckingAnnotation.java
+++ /dev/null
@@ -1,72 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.eclipselink.core.internal.resource.java.binary;
-
-import org.eclipse.jdt.core.IAnnotation;
-import org.eclipse.jdt.core.dom.CompilationUnit;
-import org.eclipse.jpt.core.internal.resource.java.binary.BinaryAnnotation;
-import org.eclipse.jpt.core.resource.java.JavaResourcePersistentType;
-import org.eclipse.jpt.core.utility.TextRange;
-import org.eclipse.jpt.eclipselink.core.resource.java.EclipseLinkJPA;
-import org.eclipse.jpt.eclipselink.core.resource.java.ExistenceCheckingAnnotation;
-import org.eclipse.jpt.eclipselink.core.resource.java.ExistenceType;
-
-/**
- * org.eclipse.persistence.annotations.ExistenceChecking
- */
-public final class BinaryExistenceCheckingAnnotation
-	extends BinaryAnnotation
-	implements ExistenceCheckingAnnotation
-{
-	private ExistenceType value;
-
-
-	public BinaryExistenceCheckingAnnotation(JavaResourcePersistentType parent, IAnnotation jdtAnnotation) {
-		super(parent, jdtAnnotation);
-		this.value = this.buildValue();
-	}
-
-	public String getAnnotationName() {
-		return ANNOTATION_NAME;
-	}
-
-	@Override
-	public void update() {
-		super.update();
-		this.setValue_(this.buildValue());
-	}
-
-
-	// ********** ExistenceCheckingAnnotation implementation **********
-
-	// ***** value
-	public ExistenceType getValue() {
-		return this.value;
-	}
-
-	public void setValue(ExistenceType value) {
-		throw new UnsupportedOperationException();
-	}
-
-	private void setValue_(ExistenceType value) {
-		ExistenceType old = this.value;
-		this.value = value;
-		this.firePropertyChanged(VALUE_PROPERTY, old, value);
-	}
-
-	private ExistenceType buildValue() {
-		return ExistenceType.fromJavaAnnotationValue(this.getJdtMemberValue(EclipseLinkJPA.EXISTENCE_CHECKING__VALUE));
-	}
-
-	public TextRange getValueTextRange(CompilationUnit astRoot) {
-		throw new UnsupportedOperationException();
-	}
-	
-}
diff --git a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/resource/java/binary/BinaryJoinFetchAnnotation.java b/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/resource/java/binary/BinaryJoinFetchAnnotation.java
deleted file mode 100644
index 377a92a..0000000
--- a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/resource/java/binary/BinaryJoinFetchAnnotation.java
+++ /dev/null
@@ -1,72 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.eclipselink.core.internal.resource.java.binary;
-
-import org.eclipse.jdt.core.IAnnotation;
-import org.eclipse.jdt.core.dom.CompilationUnit;
-import org.eclipse.jpt.core.internal.resource.java.binary.BinaryAnnotation;
-import org.eclipse.jpt.core.resource.java.JavaResourcePersistentAttribute;
-import org.eclipse.jpt.core.utility.TextRange;
-import org.eclipse.jpt.eclipselink.core.resource.java.EclipseLinkJPA;
-import org.eclipse.jpt.eclipselink.core.resource.java.JoinFetchAnnotation;
-import org.eclipse.jpt.eclipselink.core.resource.java.JoinFetchType;
-
-/**
- * org.eclipse.persistence.annotations.JoinFetch
- */
-public final class BinaryJoinFetchAnnotation
-	extends BinaryAnnotation
-	implements JoinFetchAnnotation
-{
-	private JoinFetchType value;
-
-
-	public BinaryJoinFetchAnnotation(JavaResourcePersistentAttribute parent, IAnnotation jdtAnnotation) {
-		super(parent, jdtAnnotation);
-		this.value = this.buildValue();
-	}
-
-	public String getAnnotationName() {
-		return ANNOTATION_NAME;
-	}
-
-	@Override
-	public void update() {
-		super.update();
-		this.setValue_(this.buildValue());
-	}
-
-
-	// ********** BinaryJoinFetchAnnotation implementation **********
-
-	// ***** value
-	public JoinFetchType getValue() {
-		return this.value;
-	}
-
-	public void setValue(JoinFetchType value) {
-		throw new UnsupportedOperationException();
-	}
-
-	private void setValue_(JoinFetchType value) {
-		JoinFetchType old = this.value;
-		this.value = value;
-		this.firePropertyChanged(VALUE_PROPERTY, old, value);
-	}
-
-	private JoinFetchType buildValue() {
-		return JoinFetchType.fromJavaAnnotationValue(this.getJdtMemberValue(EclipseLinkJPA.JOIN_FETCH__VALUE));
-	}
-
-	public TextRange getValueTextRange(CompilationUnit astRoot) {
-		throw new UnsupportedOperationException();
-	}
-
-}
diff --git a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/resource/java/binary/BinaryMutableAnnotation.java b/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/resource/java/binary/BinaryMutableAnnotation.java
deleted file mode 100644
index 3cab5da..0000000
--- a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/resource/java/binary/BinaryMutableAnnotation.java
+++ /dev/null
@@ -1,71 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.eclipselink.core.internal.resource.java.binary;
-
-import org.eclipse.jdt.core.IAnnotation;
-import org.eclipse.jdt.core.dom.CompilationUnit;
-import org.eclipse.jpt.core.internal.resource.java.binary.BinaryAnnotation;
-import org.eclipse.jpt.core.resource.java.JavaResourcePersistentAttribute;
-import org.eclipse.jpt.core.utility.TextRange;
-import org.eclipse.jpt.eclipselink.core.resource.java.EclipseLinkJPA;
-import org.eclipse.jpt.eclipselink.core.resource.java.MutableAnnotation;
-
-/**
- * org.eclipse.persistence.annotations.Mutable
- */
-public final class BinaryMutableAnnotation
-	extends BinaryAnnotation
-	implements MutableAnnotation
-{
-	private Boolean value;
-
-
-	public BinaryMutableAnnotation(JavaResourcePersistentAttribute parent, IAnnotation jdtAnnotation) {
-		super(parent, jdtAnnotation);
-		this.value = this.buildValue();
-	}
-
-	public String getAnnotationName() {
-		return ANNOTATION_NAME;
-	}
-
-	@Override
-	public void update() {
-		super.update();
-		this.setValue_(this.buildValue());
-	}
-
-
-	// ********** MutableAnnotation implementation **********
-
-	// ***** value
-	public Boolean getValue() {
-		return this.value;
-	}
-
-	public void setValue(Boolean value) {
-		throw new UnsupportedOperationException();
-	}
-
-	private void setValue_(Boolean value) {
-		Boolean old = this.value;
-		this.value = value;
-		this.firePropertyChanged(VALUE_PROPERTY, old, value);
-	}
-
-	private Boolean buildValue() {
-		return (Boolean) this.getJdtMemberValue(EclipseLinkJPA.MUTABLE__VALUE);
-	}
-
-	public TextRange getValueTextRange(CompilationUnit astRoot) {
-		throw new UnsupportedOperationException();
-	}
-	
-}
diff --git a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/resource/java/binary/BinaryNamedConverterAnnotation.java b/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/resource/java/binary/BinaryNamedConverterAnnotation.java
deleted file mode 100644
index 64dec4d..0000000
--- a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/resource/java/binary/BinaryNamedConverterAnnotation.java
+++ /dev/null
@@ -1,75 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.eclipselink.core.internal.resource.java.binary;
-
-import org.eclipse.jdt.core.IAnnotation;
-import org.eclipse.jdt.core.dom.CompilationUnit;
-import org.eclipse.jpt.core.internal.resource.java.binary.BinaryAnnotation;
-import org.eclipse.jpt.core.resource.java.JavaResourcePersistentMember;
-import org.eclipse.jpt.core.utility.TextRange;
-import org.eclipse.jpt.eclipselink.core.resource.java.NamedConverterAnnotation;
-
-/**
- * org.eclipse.persistence.annotations.Converter
- * org.eclipse.persistence.annotations.StructConverter
- * org.eclipse.persistence.annotations.TypeConverter
- * org.eclipse.persistence.annotations.ObjectTypeConverter
- */
-abstract class BinaryNamedConverterAnnotation
-	extends BinaryAnnotation
-	implements NamedConverterAnnotation
-{
-	String name;
-
-	BinaryNamedConverterAnnotation(JavaResourcePersistentMember parent, IAnnotation jdtAnnotation) {
-		super(parent, jdtAnnotation);
-		this.name = this.buildName();
-	}
-
-	@Override
-	public void update() {
-		super.update();
-		this.setName_(this.buildName());
-	}
-
-	@Override
-	public void toString(StringBuilder sb) {
-		sb.append(this.name);
-	}
-
-
-	// ********** NamedConverterAnnotation implementation **********
-
-	// ***** name
-	public String getName() {
-		return this.name;
-	}
-
-	public void setName(String name) {
-		throw new UnsupportedOperationException();
-	}
-
-	private void setName_(String name) {
-		String old = this.name;
-		this.name = name;
-		this.firePropertyChanged(NAME_PROPERTY, old, name);
-	}
-
-	private String buildName() {
-		return (String) this.getJdtMemberValue(this.getNameElementName());
-	}
-
-	public TextRange getNameTextRange(CompilationUnit astRoot) {
-		throw new UnsupportedOperationException();
-	}
-
-	abstract String getNameElementName();
-
-}
diff --git a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/resource/java/binary/BinaryObjectTypeConverterAnnotation.java b/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/resource/java/binary/BinaryObjectTypeConverterAnnotation.java
deleted file mode 100644
index f67c75c..0000000
--- a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/resource/java/binary/BinaryObjectTypeConverterAnnotation.java
+++ /dev/null
@@ -1,140 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.eclipselink.core.internal.resource.java.binary;
-
-import java.util.ListIterator;
-import java.util.Vector;
-
-import org.eclipse.jdt.core.IAnnotation;
-import org.eclipse.jdt.core.dom.CompilationUnit;
-import org.eclipse.jpt.core.resource.java.JavaResourcePersistentMember;
-import org.eclipse.jpt.core.utility.TextRange;
-import org.eclipse.jpt.eclipselink.core.resource.java.ConversionValueAnnotation;
-import org.eclipse.jpt.eclipselink.core.resource.java.EclipseLinkJPA;
-import org.eclipse.jpt.eclipselink.core.resource.java.ObjectTypeConverterAnnotation;
-import org.eclipse.jpt.utility.internal.iterators.CloneListIterator;
-
-/**
- * org.eclipse.persistence.annotations.ObjectTypeConverter
- */
-public final class BinaryObjectTypeConverterAnnotation
-	extends BinaryBaseTypeConverterAnnotation
-	implements ObjectTypeConverterAnnotation
-{
-	private String defaultObjectValue;
-	private final Vector<ConversionValueAnnotation> conversionValues;
-
-
-	public BinaryObjectTypeConverterAnnotation(JavaResourcePersistentMember parent, IAnnotation jdtAnnotation) {
-		super(parent, jdtAnnotation);
-		this.defaultObjectValue = this.buildDefaultObjectValue();
-		this.conversionValues = this.buildConversionValues();
-	}
-
-	public String getAnnotationName() {
-		return ANNOTATION_NAME;
-	}
-
-	@Override
-	public void update() {
-		super.update();
-		this.setDefaultObjectValue_(this.buildDefaultObjectValue());
-		this.updateConversionValues();
-	}
-
-
-	// ********** BinaryNamedConverterAnnotation implementation **********
-
-	@Override
-	String getNameElementName() {
-		return EclipseLinkJPA.OBJECT_TYPE_CONVERTER__NAME;
-	}
-
-	// ********** BinaryBaseTypeConverterAnnotation implementation **********
-
-	@Override
-	String getDataTypeElementName() {
-		return EclipseLinkJPA.OBJECT_TYPE_CONVERTER__DATA_TYPE;
-	}
-
-	@Override
-	String getObjectTypeElementName() {
-		return EclipseLinkJPA.OBJECT_TYPE_CONVERTER__OBJECT_TYPE;
-	}
-
-	// ********** ObjectTypeConverterAnnotation implementation **********
-
-	// ***** default object value
-	public String getDefaultObjectValue() {
-		return this.defaultObjectValue;
-	}
-
-	public void setDefaultObjectValue(String defaultObjectValue) {
-		throw new UnsupportedOperationException();
-	}
-
-	private void setDefaultObjectValue_(String defaultObjectValue) {
-		String old = this.defaultObjectValue;
-		this.defaultObjectValue = defaultObjectValue;
-		this.firePropertyChanged(DEFAULT_OBJECT_VALUE_PROPERTY, old, defaultObjectValue);
-	}
-
-	private String buildDefaultObjectValue() {
-		return (String) this.getJdtMemberValue(EclipseLinkJPA.OBJECT_TYPE_CONVERTER__DEFAULT_OBJECT_VALUE);
-	}
-
-	public TextRange getDefaultObjectValueTextRange(CompilationUnit astRoot) {
-		throw new UnsupportedOperationException();
-	}
-
-	// ***** conversion values
-	public ListIterator<ConversionValueAnnotation> conversionValues() {
-		return new CloneListIterator<ConversionValueAnnotation>(this.conversionValues);
-	}
-
-	public int conversionValuesSize() {
-		return this.conversionValues.size();
-	}
-
-	public ConversionValueAnnotation conversionValueAt(int index) {
-		return this.conversionValues.get(index);
-	}
-
-	public int indexOfConversionValue(ConversionValueAnnotation conversionValue) {
-		return this.conversionValues.indexOf(conversionValue);
-	}
-
-	public ConversionValueAnnotation addConversionValue(int index) {
-		throw new UnsupportedOperationException();
-	}
-
-	public void moveConversionValue(int targetIndex, int sourceIndex) {
-		throw new UnsupportedOperationException();
-	}
-
-	public void removeConversionValue(int index) {
-		throw new UnsupportedOperationException();
-	}
-
-	private Vector<ConversionValueAnnotation> buildConversionValues() {
-		Object[] jdtConversionValues = this.getJdtMemberValues(EclipseLinkJPA.OBJECT_TYPE_CONVERTER__CONVERSION_VALUES);
-		Vector<ConversionValueAnnotation> result = new Vector<ConversionValueAnnotation>(jdtConversionValues.length);
-		for (Object jdtConversionValue : jdtConversionValues) {
-			result.add(new BinaryConversionValueAnnotation(this, (IAnnotation) jdtConversionValue));
-		}
-		return result;
-	}
-
-	// TODO
-	private void updateConversionValues() {
-		throw new UnsupportedOperationException();
-	}
-
-}
diff --git a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/resource/java/binary/BinaryPrivateOwnedAnnotation.java b/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/resource/java/binary/BinaryPrivateOwnedAnnotation.java
deleted file mode 100644
index 5bcff08..0000000
--- a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/resource/java/binary/BinaryPrivateOwnedAnnotation.java
+++ /dev/null
@@ -1,33 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.eclipselink.core.internal.resource.java.binary;
-
-import org.eclipse.jdt.core.IAnnotation;
-import org.eclipse.jpt.core.internal.resource.java.binary.BinaryAnnotation;
-import org.eclipse.jpt.core.resource.java.JavaResourceNode;
-import org.eclipse.jpt.eclipselink.core.resource.java.PrivateOwnedAnnotation;
-
-/**
- * org.eclipse.persistence.annotations.PrivateOwned
- */
-public final class BinaryPrivateOwnedAnnotation
-	extends BinaryAnnotation
-	implements PrivateOwnedAnnotation
-{
-
-	public BinaryPrivateOwnedAnnotation(JavaResourceNode parent, IAnnotation jdtAnnotation) {
-		super(parent, jdtAnnotation);
-	}
-
-	public String getAnnotationName() {
-		return ANNOTATION_NAME;
-	}
-
-}
diff --git a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/resource/java/binary/BinaryReadOnlyAnnotation.java b/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/resource/java/binary/BinaryReadOnlyAnnotation.java
deleted file mode 100644
index 4c4bc0e..0000000
--- a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/resource/java/binary/BinaryReadOnlyAnnotation.java
+++ /dev/null
@@ -1,33 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.eclipselink.core.internal.resource.java.binary;
-
-import org.eclipse.jdt.core.IAnnotation;
-import org.eclipse.jpt.core.internal.resource.java.binary.BinaryAnnotation;
-import org.eclipse.jpt.core.resource.java.JavaResourceNode;
-import org.eclipse.jpt.eclipselink.core.resource.java.ReadOnlyAnnotation;
-
-/**
- * org.eclipse.persistence.annotations.ReadOnly
- */
-public final class BinaryReadOnlyAnnotation
-	extends BinaryAnnotation
-	implements ReadOnlyAnnotation
-{
-
-	public BinaryReadOnlyAnnotation(JavaResourceNode parent, IAnnotation jdtAnnotation) {
-		super(parent, jdtAnnotation);
-	}
-
-	public String getAnnotationName() {
-		return ANNOTATION_NAME;
-	}
-
-}
diff --git a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/resource/java/binary/BinaryReadTransformerAnnotation.java b/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/resource/java/binary/BinaryReadTransformerAnnotation.java
deleted file mode 100644
index b03643c..0000000
--- a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/resource/java/binary/BinaryReadTransformerAnnotation.java
+++ /dev/null
@@ -1,46 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.eclipselink.core.internal.resource.java.binary;
-
-import org.eclipse.jdt.core.IAnnotation;
-import org.eclipse.jpt.core.resource.java.JavaResourcePersistentAttribute;
-import org.eclipse.jpt.eclipselink.core.resource.java.EclipseLinkJPA;
-import org.eclipse.jpt.eclipselink.core.resource.java.ReadTransformerAnnotation;
-
-/**
- * org.eclipse.persistence.annotations.ReadTransformer
- */
-public final class BinaryReadTransformerAnnotation
-	extends BinaryTransformerAnnotation
-	implements ReadTransformerAnnotation
-{
-
-	public BinaryReadTransformerAnnotation(JavaResourcePersistentAttribute parent, IAnnotation jdtAnnotation) {
-		super(parent, jdtAnnotation);
-	}
-
-	public String getAnnotationName() {
-		return ANNOTATION_NAME;
-	}
-
-
-	// ********** BinaryTransformerAnnotation implementation **********
-
-	@Override
-	String getTransformerClassElementName() {
-		return EclipseLinkJPA.READ_TRANSFORMER__TRANSFORMER_CLASS;
-	}
-
-	@Override
-	String getMethodElementName() {
-		return EclipseLinkJPA.READ_TRANSFORMER__METHOD;
-	}
-
-}
diff --git a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/resource/java/binary/BinaryStructConverterAnnotation.java b/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/resource/java/binary/BinaryStructConverterAnnotation.java
deleted file mode 100644
index 023ee3a..0000000
--- a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/resource/java/binary/BinaryStructConverterAnnotation.java
+++ /dev/null
@@ -1,78 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.eclipselink.core.internal.resource.java.binary;
-
-import org.eclipse.jdt.core.IAnnotation;
-import org.eclipse.jdt.core.dom.CompilationUnit;
-import org.eclipse.jpt.core.resource.java.JavaResourcePersistentMember;
-import org.eclipse.jpt.core.utility.TextRange;
-import org.eclipse.jpt.eclipselink.core.resource.java.EclipseLinkJPA;
-import org.eclipse.jpt.eclipselink.core.resource.java.StructConverterAnnotation;
-
-/**
- * org.eclipse.persistence.annotations.StructConverter
- */
-public final class BinaryStructConverterAnnotation
-	extends BinaryNamedConverterAnnotation
-	implements StructConverterAnnotation
-{
-	private String converter;
-
-
-	public BinaryStructConverterAnnotation(JavaResourcePersistentMember parent, IAnnotation jdtAnnotation) {
-		super(parent, jdtAnnotation);
-		this.converter = this.buildConverter();
-	}
-
-	public String getAnnotationName() {
-		return ANNOTATION_NAME;
-	}
-
-	@Override
-	public void update() {
-		super.update();
-		this.setConverter_(this.buildConverter());
-	}
-
-
-	// ********** BinaryNamedConverterAnnotation implementation **********
-
-	@Override
-	String getNameElementName() {
-		return EclipseLinkJPA.STRUCT_CONVERTER__NAME;
-	}
-
-
-	// ********** StructConverterAnnotation implementation **********
-
-	// ***** converter
-	public String getConverter() {
-		return this.converter;
-	}
-
-	public void setConverter(String converter) {
-		throw new UnsupportedOperationException();
-	}
-
-	private void setConverter_(String converter) {
-		String old = this.converter;
-		this.converter = converter;
-		this.firePropertyChanged(CONVERTER_PROPERTY, old, converter);
-	}
-
-	private String buildConverter() {
-		return (String) this.getJdtMemberValue(EclipseLinkJPA.STRUCT_CONVERTER__CONVERTER);
-	}
-
-	public TextRange getConverterTextRange(CompilationUnit astRoot) {
-		throw new UnsupportedOperationException();
-	}
-
-}
diff --git a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/resource/java/binary/BinaryTimeOfDayAnnotation.java b/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/resource/java/binary/BinaryTimeOfDayAnnotation.java
deleted file mode 100644
index 283aac9..0000000
--- a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/resource/java/binary/BinaryTimeOfDayAnnotation.java
+++ /dev/null
@@ -1,149 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.eclipselink.core.internal.resource.java.binary;
-
-import org.eclipse.jdt.core.IAnnotation;
-import org.eclipse.jdt.core.dom.CompilationUnit;
-import org.eclipse.jpt.core.internal.resource.java.binary.BinaryAnnotation;
-import org.eclipse.jpt.core.resource.java.JavaResourceNode;
-import org.eclipse.jpt.core.utility.TextRange;
-import org.eclipse.jpt.eclipselink.core.resource.java.EclipseLinkJPA;
-import org.eclipse.jpt.eclipselink.core.resource.java.TimeOfDayAnnotation;
-
-/**
- * org.eclipse.persistence.annotations.TimeOfDay
- */
-public final class BinaryTimeOfDayAnnotation
-	extends BinaryAnnotation
-	implements TimeOfDayAnnotation
-{
-	private Integer hour;
-	private Integer minute;
-	private Integer second;
-	private Integer millisecond;
-
-
-	public BinaryTimeOfDayAnnotation(JavaResourceNode parent, IAnnotation jdtAnnotation) {
-		super(parent, jdtAnnotation);
-		this.hour = this.buildHour();
-		this.minute = this.buildMinute();
-		this.second = this.buildSecond();
-		this.millisecond = this.buildMillisecond();
-	}
-
-	public String getAnnotationName() {
-		return ANNOTATION_NAME;
-	}
-
-	@Override
-	public void update() {
-		super.update();
-		this.setHour_(this.buildHour());
-		this.setMinute_(this.buildMinute());
-		this.setSecond_(this.buildSecond());
-		this.setMillisecond_(this.buildMillisecond());
-	}
-
-
-	// ********** TimeOfDayAnnotation implementation **********
-
-	// ***** hour
-	public Integer getHour() {
-		return this.hour;
-	}
-
-	public void setHour(Integer hour) {
-		throw new UnsupportedOperationException();
-	}
-
-	private void setHour_(Integer hour) {
-		Integer old = this.hour;
-		this.hour = hour;
-		this.firePropertyChanged(HOUR_PROPERTY, old, hour);
-	}
-
-	private Integer buildHour() {
-		return (Integer) this.getJdtMemberValue(EclipseLinkJPA.TIME_OF_DAY__HOUR);
-	}
-
-	public TextRange getHourTextRange(CompilationUnit astRoot) {
-		throw new UnsupportedOperationException();
-	}
-
-	// ***** minute
-	public Integer getMinute() {
-		return this.minute;
-	}
-
-	public void setMinute(Integer newMinute) {
-		throw new UnsupportedOperationException();
-	}
-
-	private void setMinute_(Integer newMinute) {
-		Integer oldMinute = this.minute;
-		this.minute = newMinute;
-		this.firePropertyChanged(MINUTE_PROPERTY, oldMinute, newMinute);
-	}
-
-	private Integer buildMinute() {
-		return (Integer) this.getJdtMemberValue(EclipseLinkJPA.TIME_OF_DAY__MINUTE);
-	}
-
-	public TextRange getMinuteTextRange(CompilationUnit astRoot) {
-		throw new UnsupportedOperationException();
-	}
-
-	// ***** second
-	public Integer getSecond() {
-		return this.second;
-	}
-
-	public void setSecond(Integer newSecond) {
-		throw new UnsupportedOperationException();
-	}
-
-	private void setSecond_(Integer newSecond) {
-		Integer oldSecond = this.second;
-		this.second = newSecond;
-		this.firePropertyChanged(SECOND_PROPERTY, oldSecond, newSecond);
-	}
-
-	private Integer buildSecond() {
-		return (Integer) this.getJdtMemberValue(EclipseLinkJPA.TIME_OF_DAY__SECOND);
-	}
-
-	public TextRange getSecondTextRange(CompilationUnit astRoot) {
-		throw new UnsupportedOperationException();
-	}
-
-	// ***** millisecond
-	public Integer getMillisecond() {
-		return this.millisecond;
-	}
-
-	public void setMillisecond(Integer newMillisecond) {
-		throw new UnsupportedOperationException();
-	}
-
-	private void setMillisecond_(Integer newMillisecond) {
-		Integer oldMillisecond = this.millisecond;
-		this.millisecond = newMillisecond;
-		this.firePropertyChanged(MILLISECOND_PROPERTY, oldMillisecond, newMillisecond);
-	}
-
-	private Integer buildMillisecond() {
-		return (Integer) this.getJdtMemberValue(EclipseLinkJPA.TIME_OF_DAY__MILLISECOND);
-	}
-
-	public TextRange getMillisecondTextRange(CompilationUnit astRoot) {
-		throw new UnsupportedOperationException();
-	}
-
-}
diff --git a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/resource/java/binary/BinaryTransformationAnnotation.java b/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/resource/java/binary/BinaryTransformationAnnotation.java
deleted file mode 100644
index 60ab1e6..0000000
--- a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/resource/java/binary/BinaryTransformationAnnotation.java
+++ /dev/null
@@ -1,98 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.eclipselink.core.internal.resource.java.binary;
-
-import org.eclipse.jdt.core.IAnnotation;
-import org.eclipse.jdt.core.dom.CompilationUnit;
-import org.eclipse.jpt.core.internal.resource.java.binary.BinaryAnnotation;
-import org.eclipse.jpt.core.resource.java.FetchType;
-import org.eclipse.jpt.core.resource.java.JavaResourcePersistentAttribute;
-import org.eclipse.jpt.core.utility.TextRange;
-import org.eclipse.jpt.eclipselink.core.resource.java.EclipseLinkJPA;
-import org.eclipse.jpt.eclipselink.core.resource.java.TransformationAnnotation;
-
-/**
- * org.eclipse.persistence.annotations.Transformation
- */
-public class BinaryTransformationAnnotation
-	extends BinaryAnnotation
-	implements TransformationAnnotation
-{
-	private FetchType fetch;
-	private Boolean optional;
-
-
-	public BinaryTransformationAnnotation(JavaResourcePersistentAttribute parent, IAnnotation jdtAnnotation) {
-		super(parent, jdtAnnotation);
-		this.fetch = this.buildFetch();
-		this.optional = this.buildOptional();
-	}
-
-	public String getAnnotationName() {
-		return ANNOTATION_NAME;
-	}
-
-	@Override
-	public void update() {
-		super.update();
-		this.setFetch_(this.buildFetch());
-		this.setOptional_(this.buildOptional());
-	}
-
-
-	// ********** TransformationAnnotation implementation **********
-
-	// ***** fetch
-	public FetchType getFetch() {
-		return this.fetch;
-	}
-
-	public void setFetch(FetchType fetch) {
-		throw new UnsupportedOperationException();
-	}
-
-	private void setFetch_(FetchType fetch) {
-		FetchType old = this.fetch;
-		this.fetch = fetch;
-		this.firePropertyChanged(FETCH_PROPERTY, old, fetch);
-	}
-
-	private FetchType buildFetch() {
-		return FetchType.fromJavaAnnotationValue(this.getJdtMemberValue(EclipseLinkJPA.TRANSFORMATION__FETCH));
-	}
-
-	public TextRange getFetchTextRange(CompilationUnit astRoot) {
-		throw new UnsupportedOperationException();
-	}
-
-	// ***** optional
-	public Boolean getOptional() {
-		return this.optional;
-	}
-
-	public void setOptional(Boolean optional) {
-		throw new UnsupportedOperationException();
-	}
-
-	private void setOptional_(Boolean optional) {
-		Boolean old = this.optional;
-		this.optional = optional;
-		this.firePropertyChanged(OPTIONAL_PROPERTY, old, optional);
-	}
-
-	private Boolean buildOptional() {
-		return (Boolean) this.getJdtMemberValue(EclipseLinkJPA.TRANSFORMATION__OPTIONAL);
-	}
-
-	public TextRange getOptionalTextRange(CompilationUnit astRoot) {
-		throw new UnsupportedOperationException();
-	}
-
-}
diff --git a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/resource/java/binary/BinaryTransformerAnnotation.java b/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/resource/java/binary/BinaryTransformerAnnotation.java
deleted file mode 100644
index 3bc76f1..0000000
--- a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/resource/java/binary/BinaryTransformerAnnotation.java
+++ /dev/null
@@ -1,97 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.eclipselink.core.internal.resource.java.binary;
-
-import org.eclipse.jdt.core.IAnnotation;
-import org.eclipse.jdt.core.dom.CompilationUnit;
-import org.eclipse.jpt.core.internal.resource.java.binary.BinaryAnnotation;
-import org.eclipse.jpt.core.resource.java.JavaResourcePersistentAttribute;
-import org.eclipse.jpt.core.utility.TextRange;
-import org.eclipse.jpt.eclipselink.core.resource.java.TransformerAnnotation;
-
-/**
- * org.eclipse.persistence.annotations.ReadTransformer
- * org.eclipse.persistence.annotations.WriteTransformer
- */
-abstract class BinaryTransformerAnnotation
-	extends BinaryAnnotation
-	implements TransformerAnnotation
-{
-	private String transformerClass;
-	private String method;
-
-
-	BinaryTransformerAnnotation(JavaResourcePersistentAttribute parent, IAnnotation jdtAnnotation) {
-		super(parent, jdtAnnotation);
-		this.transformerClass = this.buildTransformerClass();
-		this.method = this.buildMethod();
-	}
-
-	@Override
-	public void update() {
-		super.update();
-		this.setTransformerClass_(this.buildTransformerClass());
-		this.setMethod_(this.buildMethod());
-	}
-
-
-	// ********** TransformerAnnotation implementation **********
-
-	// ***** transformer class
-	public String getTransformerClass() {
-		return this.transformerClass;
-	}
-
-	public void setTransformerClass(String transformerClass) {
-		throw new UnsupportedOperationException();
-	}
-
-	private void setTransformerClass_(String transformerClass) {
-		String old = this.transformerClass;
-		this.transformerClass = transformerClass;
-		this.firePropertyChanged(TRANSFORMER_CLASS_PROPERTY, old, transformerClass);
-	}
-
-	private String buildTransformerClass() {
-		return (String) this.getJdtMemberValue(this.getTransformerClassElementName());
-	}
-
-	public TextRange getTransformerClassTextRange(CompilationUnit astRoot) {
-		throw new UnsupportedOperationException();
-	}
-
-	abstract String getTransformerClassElementName();
-
-	// ***** method
-	public String getMethod() {
-		return this.method;
-	}
-
-	public void setMethod(String method) {
-		throw new UnsupportedOperationException();
-	}
-
-	private void setMethod_(String method) {
-		String old = this.method;
-		this.method = method;
-		this.firePropertyChanged(METHOD_PROPERTY, old, method);
-	}
-
-	private String buildMethod() {
-		return (String) this.getJdtMemberValue(this.getMethodElementName());
-	}
-
-	public TextRange getMethodTextRange(CompilationUnit astRoot) {
-		throw new UnsupportedOperationException();
-	}
-
-	abstract String getMethodElementName();
-
-}
diff --git a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/resource/java/binary/BinaryTypeConverterAnnotation.java b/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/resource/java/binary/BinaryTypeConverterAnnotation.java
deleted file mode 100644
index 78d5c01..0000000
--- a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/resource/java/binary/BinaryTypeConverterAnnotation.java
+++ /dev/null
@@ -1,53 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.eclipselink.core.internal.resource.java.binary;
-
-import org.eclipse.jdt.core.IAnnotation;
-import org.eclipse.jpt.core.resource.java.JavaResourcePersistentMember;
-import org.eclipse.jpt.eclipselink.core.resource.java.EclipseLinkJPA;
-import org.eclipse.jpt.eclipselink.core.resource.java.TypeConverterAnnotation;
-
-/**
- * org.eclipse.persistence.annotations.TypeConverter
- */
-public final class BinaryTypeConverterAnnotation
-	extends BinaryBaseTypeConverterAnnotation
-	implements TypeConverterAnnotation
-{
-	public BinaryTypeConverterAnnotation(JavaResourcePersistentMember parent, IAnnotation jdtAnnotation) {
-		super(parent, jdtAnnotation);
-	}
-
-	public String getAnnotationName() {
-		return ANNOTATION_NAME;
-	}
-
-
-	// ********** BinaryNamedConverterAnnotation implementation **********
-
-	@Override
-	String getNameElementName() {
-		return EclipseLinkJPA.TYPE_CONVERTER__NAME;
-	}
-
-
-	// ********** BinaryBaseTypeConverterAnnotation implementation **********
-
-	@Override
-	String getDataTypeElementName() {
-		return EclipseLinkJPA.TYPE_CONVERTER__DATA_TYPE;
-	}
-
-	@Override
-	String getObjectTypeElementName() {
-		return EclipseLinkJPA.TYPE_CONVERTER__OBJECT_TYPE;
-	}
-
-}
diff --git a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/resource/java/binary/BinaryVariableOneToOneAnnotation.java b/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/resource/java/binary/BinaryVariableOneToOneAnnotation.java
deleted file mode 100644
index 89834ac..0000000
--- a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/resource/java/binary/BinaryVariableOneToOneAnnotation.java
+++ /dev/null
@@ -1,32 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.eclipselink.core.internal.resource.java.binary;
-
-import org.eclipse.jdt.core.IAnnotation;
-import org.eclipse.jpt.core.internal.resource.java.binary.BinaryAnnotation;
-import org.eclipse.jpt.core.resource.java.JavaResourcePersistentAttribute;
-import org.eclipse.jpt.eclipselink.core.resource.java.VariableOneToOneAnnotation;
-
-/**
- * org.eclipse.persistence.annotations.VariableOneToOne
- */
-public class BinaryVariableOneToOneAnnotation
-	extends BinaryAnnotation
-	implements VariableOneToOneAnnotation
-{
-	public BinaryVariableOneToOneAnnotation(JavaResourcePersistentAttribute parent, IAnnotation jdtAnnotation) {
-		super(parent, jdtAnnotation);
-	}
-
-	public String getAnnotationName() {
-		return ANNOTATION_NAME;
-	}
-
-}
diff --git a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/resource/java/binary/BinaryWriteTransformerAnnotation.java b/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/resource/java/binary/BinaryWriteTransformerAnnotation.java
deleted file mode 100644
index f5de42d..0000000
--- a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/resource/java/binary/BinaryWriteTransformerAnnotation.java
+++ /dev/null
@@ -1,118 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.eclipselink.core.internal.resource.java.binary;
-
-import org.eclipse.jdt.core.IAnnotation;
-import org.eclipse.jdt.core.dom.CompilationUnit;
-import org.eclipse.jpt.core.internal.resource.java.binary.BinaryColumnAnnotation;
-import org.eclipse.jpt.core.resource.java.ColumnAnnotation;
-import org.eclipse.jpt.core.resource.java.JavaResourcePersistentAttribute;
-import org.eclipse.jpt.core.utility.TextRange;
-import org.eclipse.jpt.eclipselink.core.internal.resource.java.NullWriteTransformerColumnAnnotation;
-import org.eclipse.jpt.eclipselink.core.resource.java.EclipseLinkJPA;
-import org.eclipse.jpt.eclipselink.core.resource.java.WriteTransformerAnnotation;
-
-/**
- * org.eclipse.persistence.annotations.ReadTransformer
- */
-public class BinaryWriteTransformerAnnotation
-	extends BinaryTransformerAnnotation
-	implements WriteTransformerAnnotation
-{
-	private ColumnAnnotation column;
-
-
-	public BinaryWriteTransformerAnnotation(JavaResourcePersistentAttribute parent, IAnnotation jdtAnnotation) {
-		super(parent, jdtAnnotation);
-		this.column = this.buildColumn();
-	}
-
-	public String getAnnotationName() {
-		return ANNOTATION_NAME;
-	}
-
-	@Override
-	public void update() {
-		super.update();
-		this.updateColumn();
-	}
-
-
-	// ********** BinaryTransformerAnnotation implementation **********
-
-	@Override
-	String getTransformerClassElementName() {
-		return EclipseLinkJPA.WRITE_TRANSFORMER__TRANSFORMER_CLASS;
-	}
-
-	@Override
-	String getMethodElementName() {
-		return EclipseLinkJPA.WRITE_TRANSFORMER__METHOD;
-	}
-
-
-	// ********** WriteTransformerAnnotation implementation **********
-
-	// ***** column
-	public ColumnAnnotation getColumn() {
-		return this.column;
-	}
-
-	public ColumnAnnotation getNonNullColumn() {
-		return (this.column != null) ? this.column : new NullWriteTransformerColumnAnnotation(this);
-	}
-
-	public ColumnAnnotation addColumn() {
-		throw new UnsupportedOperationException();
-	}
-
-	public void removeColumn() {
-		throw new UnsupportedOperationException();
-	}
-
-	public TextRange getColumnTextRange(CompilationUnit astRoot) {
-		throw new UnsupportedOperationException();
-	}
-
-	private ColumnAnnotation buildColumn() {
-		IAnnotation jdtColumn = this.getJdtColumn();
-		return (jdtColumn == null) ? null : this.buildColumn(jdtColumn);
-	}
-
-	private ColumnAnnotation buildColumn(IAnnotation jdtColumn) {
-		return new BinaryColumnAnnotation(this, jdtColumn);
-	}
-
-	private IAnnotation getJdtColumn() {
-		return (IAnnotation) this.getJdtMemberValue(EclipseLinkJPA.WRITE_TRANSFORMER__COLUMN);
-	}
-
-	private void setColumn(ColumnAnnotation column) {
-		ColumnAnnotation old = this.column;
-		this.column = column;
-		this.firePropertyChanged(COLUMN_PROPERTY, old, column);
-	}
-
-	// TODO
-	private void updateColumn() {
-		throw new UnsupportedOperationException();
-//		IAnnotation jdtColumn = this.getJdtColumn();
-//		if (jdtColumn == null) {
-//			this.setColumn(null);
-//		} else {
-//			if (this.column == null) {
-//				this.setColumn(this.buildColumn(jdtColumn));
-//			} else {
-//				this.column.update(jdtColumn);
-//			}
-//		}
-	}
-
-}
diff --git a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/resource/java/source/SourceBaseTypeConverterAnnotation.java b/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/resource/java/source/SourceBaseTypeConverterAnnotation.java
deleted file mode 100644
index c6472b8..0000000
--- a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/resource/java/source/SourceBaseTypeConverterAnnotation.java
+++ /dev/null
@@ -1,122 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008, 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.eclipselink.core.internal.resource.java.source;
-
-import org.eclipse.jdt.core.dom.CompilationUnit;
-import org.eclipse.jpt.core.internal.utility.jdt.ConversionDeclarationAnnotationElementAdapter;
-import org.eclipse.jpt.core.internal.utility.jdt.ShortCircuitAnnotationElementAdapter;
-import org.eclipse.jpt.core.internal.utility.jdt.TypeStringExpressionConverter;
-import org.eclipse.jpt.core.resource.java.JavaResourcePersistentMember;
-import org.eclipse.jpt.core.utility.TextRange;
-import org.eclipse.jpt.core.utility.jdt.AnnotationElementAdapter;
-import org.eclipse.jpt.core.utility.jdt.DeclarationAnnotationAdapter;
-import org.eclipse.jpt.core.utility.jdt.DeclarationAnnotationElementAdapter;
-import org.eclipse.jpt.core.utility.jdt.Member;
-import org.eclipse.jpt.eclipselink.core.resource.java.BaseTypeConverterAnnotation;
-
-/**
- * org.eclipse.persistence.annotations.TypeConverter
- * org.eclipse.persistence.annotations.ObjectTypeConverter
- */
-abstract class SourceBaseTypeConverterAnnotation
-	extends SourceNamedConverterAnnotation
-	implements BaseTypeConverterAnnotation
-{
-	final DeclarationAnnotationElementAdapter<String> dataTypeDeclarationAdapter;
-	final AnnotationElementAdapter<String> dataTypeAdapter;
-	String dataType;
-
-	final DeclarationAnnotationElementAdapter<String> objectTypeDeclarationAdapter;
-	final AnnotationElementAdapter<String> objectTypeAdapter;
-	String objectType;
-
-
-	SourceBaseTypeConverterAnnotation(JavaResourcePersistentMember parent, Member member, DeclarationAnnotationAdapter daa) {
-		super(parent, member, daa);
-		this.dataTypeDeclarationAdapter = this.buildTypeAdapter(this.getDataTypeElementName());
-		this.dataTypeAdapter = new ShortCircuitAnnotationElementAdapter<String>(this.member, this.dataTypeDeclarationAdapter);
-
-		this.objectTypeDeclarationAdapter = this.buildTypeAdapter(this.getObjectTypeElementName());
-		this.objectTypeAdapter = new ShortCircuitAnnotationElementAdapter<String>(this.member, this.objectTypeDeclarationAdapter);
-	}
-
-	private DeclarationAnnotationElementAdapter<String> buildTypeAdapter(String elementName) {
-		 // false = do not remove annotation when empty
-		return new ConversionDeclarationAnnotationElementAdapter<String>(this.daa, elementName, false, TypeStringExpressionConverter.instance());
-	}
-
-	@Override
-	public void initialize(CompilationUnit astRoot) {
-		super.initialize(astRoot);
-		this.dataType = this.buildDataType(astRoot);
-		this.objectType = this.buildObjectType(astRoot);
-	}
-
-	@Override
-	public void update(CompilationUnit astRoot) {
-		super.update(astRoot);
-		this.setDataType(this.buildDataType(astRoot));
-		this.setObjectType(this.buildObjectType(astRoot));
-	}
-
-
-	// ********** BaseTypeConverterAnnotation implementation **********
-
-	// ***** data type
-	public String getDataType() {
-		return this.dataType;
-	}
-
-	public void setDataType(String dataType) {
-		if (this.attributeValueHasNotChanged(this.dataType, dataType)) {
-			return;
-		}
-		String old = this.dataType;
-		this.dataType = dataType;
-		this.dataTypeAdapter.setValue(dataType);
-		this.firePropertyChanged(DATA_TYPE_PROPERTY, old, dataType);
-	}
-
-	private String buildDataType(CompilationUnit astRoot) {
-		return this.dataTypeAdapter.getValue(astRoot);
-	}
-
-	public TextRange getDataTypeTextRange(CompilationUnit astRoot) {
-		return this.getElementTextRange(this.dataTypeDeclarationAdapter, astRoot);
-	}
-
-	abstract String getDataTypeElementName();
-
-	// ***** object type
-	public String getObjectType() {
-		return this.objectType;
-	}
-
-	public void setObjectType(String objectType) {
-		if (this.attributeValueHasNotChanged(this.objectType, objectType)) {
-			return;
-		}
-		String old = this.objectType;
-		this.objectType = objectType;
-		this.objectTypeAdapter.setValue(objectType);
-		this.firePropertyChanged(OBJECT_TYPE_PROPERTY, old, objectType);
-	}
-
-	public TextRange getObjectTypeTextRange(CompilationUnit astRoot) {
-		return this.getElementTextRange(this.objectTypeDeclarationAdapter, astRoot);
-	}
-
-	private String buildObjectType(CompilationUnit astRoot) {
-		return this.objectTypeAdapter.getValue(astRoot);
-	}
-
-	abstract String getObjectTypeElementName();
-
-}
diff --git a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/resource/java/source/SourceBasicCollectionAnnotation.java b/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/resource/java/source/SourceBasicCollectionAnnotation.java
deleted file mode 100644
index 05838c6..0000000
--- a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/resource/java/source/SourceBasicCollectionAnnotation.java
+++ /dev/null
@@ -1,46 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008, 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.eclipselink.core.internal.resource.java.source;
-
-import org.eclipse.jdt.core.dom.CompilationUnit;
-import org.eclipse.jpt.core.internal.resource.java.source.SourceAnnotation;
-import org.eclipse.jpt.core.internal.utility.jdt.SimpleDeclarationAnnotationAdapter;
-import org.eclipse.jpt.core.resource.java.JavaResourcePersistentAttribute;
-import org.eclipse.jpt.core.utility.jdt.Attribute;
-import org.eclipse.jpt.core.utility.jdt.DeclarationAnnotationAdapter;
-import org.eclipse.jpt.eclipselink.core.resource.java.BasicCollectionAnnotation;
-
-/**
- * org.eclipse.persistence.annotations.BasicCollection
- */
-public final class SourceBasicCollectionAnnotation
-	extends SourceAnnotation<Attribute>
-	implements BasicCollectionAnnotation
-{
-	private static final DeclarationAnnotationAdapter DECLARATION_ANNOTATION_ADAPTER = new SimpleDeclarationAnnotationAdapter(ANNOTATION_NAME);
-
-	
-	public SourceBasicCollectionAnnotation(JavaResourcePersistentAttribute parent, Attribute attribute) {
-		super(parent, attribute, DECLARATION_ANNOTATION_ADAPTER);
-	}
-	
-	public String getAnnotationName() {
-		return ANNOTATION_NAME;
-	}
-
-	public void initialize(CompilationUnit astRoot) {
-		// do nothing
-	}
-	
-	public void update(CompilationUnit astRoot) {
-		// do nothing
-	}
-
-}
diff --git a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/resource/java/source/SourceBasicMapAnnotation.java b/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/resource/java/source/SourceBasicMapAnnotation.java
deleted file mode 100644
index d2a148a..0000000
--- a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/resource/java/source/SourceBasicMapAnnotation.java
+++ /dev/null
@@ -1,46 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008, 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.eclipselink.core.internal.resource.java.source;
-
-import org.eclipse.jdt.core.dom.CompilationUnit;
-import org.eclipse.jpt.core.internal.resource.java.source.SourceAnnotation;
-import org.eclipse.jpt.core.internal.utility.jdt.SimpleDeclarationAnnotationAdapter;
-import org.eclipse.jpt.core.resource.java.JavaResourcePersistentAttribute;
-import org.eclipse.jpt.core.utility.jdt.Attribute;
-import org.eclipse.jpt.core.utility.jdt.DeclarationAnnotationAdapter;
-import org.eclipse.jpt.eclipselink.core.resource.java.BasicMapAnnotation;
-
-/**
- * org.eclipse.persistence.annotations.BasicMap
- */
-public final class SourceBasicMapAnnotation
-	extends SourceAnnotation<Attribute>
-	implements BasicMapAnnotation
-{
-	private static final DeclarationAnnotationAdapter DECLARATION_ANNOTATION_ADAPTER = new SimpleDeclarationAnnotationAdapter(ANNOTATION_NAME);
-
-	
-	public SourceBasicMapAnnotation(JavaResourcePersistentAttribute parent, Attribute attribute) {
-		super(parent, attribute, DECLARATION_ANNOTATION_ADAPTER);
-	}
-
-	public String getAnnotationName() {
-		return ANNOTATION_NAME;
-	}
-
-	public void initialize(CompilationUnit astRoot) {
-		// do nothing
-	}
-	
-	public void update(CompilationUnit astRoot) {
-		// do nothing
-	}
-
-}
diff --git a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/resource/java/source/SourceCacheAnnotation.java b/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/resource/java/source/SourceCacheAnnotation.java
deleted file mode 100644
index 95be867..0000000
--- a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/resource/java/source/SourceCacheAnnotation.java
+++ /dev/null
@@ -1,411 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008, 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.eclipselink.core.internal.resource.java.source;
-
-import org.eclipse.jdt.core.dom.CompilationUnit;
-import org.eclipse.jpt.core.internal.resource.java.source.SourceAnnotation;
-import org.eclipse.jpt.core.internal.utility.jdt.BooleanExpressionConverter;
-import org.eclipse.jpt.core.internal.utility.jdt.ConversionDeclarationAnnotationElementAdapter;
-import org.eclipse.jpt.core.internal.utility.jdt.EnumDeclarationAnnotationElementAdapter;
-import org.eclipse.jpt.core.internal.utility.jdt.MemberAnnotationAdapter;
-import org.eclipse.jpt.core.internal.utility.jdt.NestedDeclarationAnnotationAdapter;
-import org.eclipse.jpt.core.internal.utility.jdt.NumberIntegerExpressionConverter;
-import org.eclipse.jpt.core.internal.utility.jdt.ShortCircuitAnnotationElementAdapter;
-import org.eclipse.jpt.core.internal.utility.jdt.SimpleDeclarationAnnotationAdapter;
-import org.eclipse.jpt.core.resource.java.JavaResourcePersistentType;
-import org.eclipse.jpt.core.utility.TextRange;
-import org.eclipse.jpt.core.utility.jdt.AnnotationElementAdapter;
-import org.eclipse.jpt.core.utility.jdt.DeclarationAnnotationAdapter;
-import org.eclipse.jpt.core.utility.jdt.DeclarationAnnotationElementAdapter;
-import org.eclipse.jpt.core.utility.jdt.Type;
-import org.eclipse.jpt.eclipselink.core.resource.java.CacheAnnotation;
-import org.eclipse.jpt.eclipselink.core.resource.java.CacheCoordinationType;
-import org.eclipse.jpt.eclipselink.core.resource.java.CacheType;
-import org.eclipse.jpt.eclipselink.core.resource.java.EclipseLinkJPA;
-import org.eclipse.jpt.eclipselink.core.resource.java.TimeOfDayAnnotation;
-
-/**
- * org.eclipse.persistence.annotations.Cache
- */
-public final class SourceCacheAnnotation
-	extends SourceAnnotation<Type>
-	implements CacheAnnotation
-{
-	private static final DeclarationAnnotationAdapter DECLARATION_ANNOTATION_ADAPTER = new SimpleDeclarationAnnotationAdapter(ANNOTATION_NAME);
-
-	private static final DeclarationAnnotationElementAdapter<String> TYPE_ADAPTER = buildTypeAdapter();
-	private final AnnotationElementAdapter<String> typeAdapter;
-	private CacheType type;
-
-	private static final DeclarationAnnotationElementAdapter<Integer> SIZE_ADAPTER = buildSizeAdapter();
-	private final AnnotationElementAdapter<Integer> sizeAdapter;
-	private Integer size;
-
-	private static final DeclarationAnnotationElementAdapter<Boolean> SHARED_ADAPTER = buildSharedAdapter();
-	private final AnnotationElementAdapter<Boolean> sharedAdapter;
-	private Boolean shared;
-
-	private static final DeclarationAnnotationElementAdapter<Integer> EXPIRY_ADAPTER = buildExpiryAdapter();
-	private final AnnotationElementAdapter<Integer> expiryAdapter;
-	private Integer expiry;
-
-	private static final DeclarationAnnotationElementAdapter<Boolean> ALWAYS_REFRESH_ADAPTER = buildAlwaysRefreshAdapter();
-	private final AnnotationElementAdapter<Boolean> alwaysRefreshAdapter;
-	private TimeOfDayAnnotation expiryTimeOfDay;
-
-	private static final DeclarationAnnotationElementAdapter<Boolean> REFRESH_ONLY_IF_NEWER_ADAPTER = buildRefreshOnlyIfNewerAdapter();
-	private final AnnotationElementAdapter<Boolean> refreshOnlyIfNewerAdapter;
-	private Boolean alwaysRefresh;
-
-	private static final DeclarationAnnotationElementAdapter<Boolean> DISABLE_HITS_ADAPTER = buildDisableHitsAdapter();
-	private final AnnotationElementAdapter<Boolean> disableHitsAdapter;
-	private Boolean refreshOnlyIfNewer;
-
-	private static final DeclarationAnnotationElementAdapter<String> COORDINATION_TYPE_ADAPTER = buildCoordinationTypeAdapter();
-	private final AnnotationElementAdapter<String> coordinationTypeAdapter;
-	private Boolean disableHits;
-
-	private static final NestedDeclarationAnnotationAdapter EXPIRY_TIME_OF_DAY_ADAPTER = buildExpiryTimeOfDayAdapter();
-	private final MemberAnnotationAdapter expiryTimeOfDayAdapter;
-	private CacheCoordinationType coordinationType;
-
-
-	public SourceCacheAnnotation(JavaResourcePersistentType parent, Type type) {
-		super(parent, type, DECLARATION_ANNOTATION_ADAPTER);
-		this.typeAdapter = new ShortCircuitAnnotationElementAdapter<String>(type, TYPE_ADAPTER);
-		this.sizeAdapter = new ShortCircuitAnnotationElementAdapter<Integer>(type, SIZE_ADAPTER);
-		this.sharedAdapter = new ShortCircuitAnnotationElementAdapter<Boolean>(type, SHARED_ADAPTER);
-		this.expiryAdapter = new ShortCircuitAnnotationElementAdapter<Integer>(type, EXPIRY_ADAPTER);
-		this.alwaysRefreshAdapter = new ShortCircuitAnnotationElementAdapter<Boolean>(type, ALWAYS_REFRESH_ADAPTER);
-		this.refreshOnlyIfNewerAdapter = new ShortCircuitAnnotationElementAdapter<Boolean>(type, REFRESH_ONLY_IF_NEWER_ADAPTER);
-		this.disableHitsAdapter = new ShortCircuitAnnotationElementAdapter<Boolean>(type, DISABLE_HITS_ADAPTER);
-		this.coordinationTypeAdapter = new ShortCircuitAnnotationElementAdapter<String>(type, COORDINATION_TYPE_ADAPTER);
-		this.expiryTimeOfDayAdapter = new MemberAnnotationAdapter(type, EXPIRY_TIME_OF_DAY_ADAPTER);
-	}
-
-	public String getAnnotationName() {
-		return ANNOTATION_NAME;
-	}
-
-	public void initialize(CompilationUnit astRoot) {
-		this.type = this.buildType(astRoot);
-		this.size = this.buildSize(astRoot);
-		this.shared = this.buildShared(astRoot);
-		this.expiry = this.buildExpiry(astRoot);
-		this.initializeExpiryTimeOfDay(astRoot);
-		this.alwaysRefresh = this.buildAlwaysRefresh(astRoot);
-		this.refreshOnlyIfNewer = this.buildRefreshOnlyIfNewer(astRoot);
-		this.disableHits = this.buildDisableHits(astRoot);
-		this.coordinationType = this.buildCoordinationType(astRoot);
-	}
-
-	private void initializeExpiryTimeOfDay(CompilationUnit astRoot) {
-		if (this.expiryTimeOfDayAdapter.getAnnotation(astRoot) != null) {
-			this.expiryTimeOfDay = this.buildExpiryTimeOfDay();
-			this.expiryTimeOfDay.initialize(astRoot);
-		}
-	}
-
-	public void update(CompilationUnit astRoot) {
-		this.setType(this.buildType(astRoot));
-		this.setSize(this.buildSize(astRoot));
-		this.setShared(this.buildShared(astRoot));
-		this.setExpiry(this.buildExpiry(astRoot));
-		this.updateExpiryTimeOfDay(astRoot);
-		this.setAlwaysRefresh(this.buildAlwaysRefresh(astRoot));
-		this.setRefreshOnlyIfNewer(this.buildRefreshOnlyIfNewer(astRoot));
-		this.setDisableHits(this.buildDisableHits(astRoot));
-		this.setCoordinationType(this.buildCoordinationType(astRoot));
-	}
-
-	private void updateExpiryTimeOfDay(CompilationUnit astRoot) {
-		if (this.expiryTimeOfDayAdapter.getAnnotation(astRoot) == null) {
-			this.setExpiryTimeOfDay(null);
-		} else {
-			if (this.getExpiryTimeOfDay() == null) {
-				TimeOfDayAnnotation etod = this.buildExpiryTimeOfDay();
-				etod.initialize(astRoot);
-				this.setExpiryTimeOfDay(etod);
-			} else {
-				this.getExpiryTimeOfDay().update(astRoot);
-			}
-		}
-	}
-
-	@Override
-	public void toString(StringBuilder sb) {
-		sb.append(this.type);
-	}
-
-
-	// ********** CacheAnnotation implementation **********
-
-	// ***** type
-	public CacheType getType() {
-		return this.type;
-	}
-
-	public void setType(CacheType type) {
-		if (this.attributeValueHasNotChanged(this.type, type)) {
-			return;
-		}
-		CacheType old = this.type;
-		this.type = type;
-		this.typeAdapter.setValue(CacheType.toJavaAnnotationValue(type));
-		this.firePropertyChanged(TYPE_PROPERTY, old, type);
-	}
-
-	private CacheType buildType(CompilationUnit astRoot) {
-		return CacheType.fromJavaAnnotationValue(this.typeAdapter.getValue(astRoot));
-	}
-
-	public TextRange getTypeTextRange(CompilationUnit astRoot) {
-		return this.getElementTextRange(TYPE_ADAPTER, astRoot);
-	}
-
-	// ***** size
-	public Integer getSize() {
-		return this.size;
-	}
-
-	public void setSize(Integer size) {
-		if (this.attributeValueHasNotChanged(this.size, size)) {
-			return;
-		}
-		Integer old = this.size;
-		this.size = size;
-		this.sizeAdapter.setValue(size);
-		this.firePropertyChanged(SIZE_PROPERTY, old, size);
-	}
-
-	private Integer buildSize(CompilationUnit astRoot) {
-		return this.sizeAdapter.getValue(astRoot);
-	}
-
-	public TextRange getSizeTextRange(CompilationUnit astRoot) {
-		return this.getElementTextRange(SIZE_ADAPTER, astRoot);
-	}
-
-	// ***** shared
-	public Boolean getShared() {
-		return this.shared;
-	}
-
-	public void setShared(Boolean shared) {
-		if (this.attributeValueHasNotChanged(this.shared, shared)) {
-			return;
-		}
-		Boolean old = this.shared;
-		this.shared = shared;
-		this.sharedAdapter.setValue(shared);
-		this.firePropertyChanged(SHARED_PROPERTY, old, shared);
-	}
-
-	private Boolean buildShared(CompilationUnit astRoot) {
-		return this.sharedAdapter.getValue(astRoot);
-	}
-
-	public TextRange getSharedTextRange(CompilationUnit astRoot) {
-		return this.getElementTextRange(SHARED_ADAPTER, astRoot);
-	}
-
-	// ***** expiry
-	public Integer getExpiry() {
-		return this.expiry;
-	}
-
-	public void setExpiry(Integer expiry) {
-		if (this.attributeValueHasNotChanged(this.expiry, expiry)) {
-			return;
-		}
-		Integer old = this.expiry;
-		this.expiry = expiry;
-		this.expiryAdapter.setValue(expiry);
-		this.firePropertyChanged(EXPIRY_PROPERTY, old, expiry);
-	}
-
-	private Integer buildExpiry(CompilationUnit astRoot) {
-		return this.expiryAdapter.getValue(astRoot);
-	}
-
-	public TextRange getExpiryTextRange(CompilationUnit astRoot) {
-		return this.getElementTextRange(EXPIRY_ADAPTER, astRoot);
-	}
-
-	// ***** expiry time of day
-	public TimeOfDayAnnotation getExpiryTimeOfDay() {
-		return this.expiryTimeOfDay;
-	}
-
-	public TimeOfDayAnnotation addExpiryTimeOfDay() {
-		if (this.expiryTimeOfDay != null) {
-			throw new IllegalStateException("'expiryTimeOfDay' element already exists"); //$NON-NLS-1$
-		}
-		this.expiryTimeOfDay = this.buildExpiryTimeOfDay();
-		this.expiryTimeOfDayAdapter.newMarkerAnnotation();
-		this.firePropertyChanged(EXPIRY_TIME_OF_DAY_PROPERTY, null, this.expiryTimeOfDay);
-		return this.expiryTimeOfDay;
-	}
-
-	public void removeExpiryTimeOfDay() {
-		if (this.expiryTimeOfDay == null) {
-			throw new IllegalStateException("No expiryTimeOfDay element exists"); //$NON-NLS-1$
-		}
-		this.expiryTimeOfDay = null;
-		this.expiryTimeOfDayAdapter.removeAnnotation();
-		this.firePropertyChanged(EXPIRY_TIME_OF_DAY_PROPERTY, this.expiryTimeOfDay, null);
-	}
-
-	private void setExpiryTimeOfDay(TimeOfDayAnnotation expiryTimeOfDay) {
-		TimeOfDayAnnotation old = this.expiryTimeOfDay;
-		this.expiryTimeOfDay = expiryTimeOfDay;
-		this.firePropertyChanged(EXPIRY_TIME_OF_DAY_PROPERTY, old, expiryTimeOfDay);
-	}
-
-	private TimeOfDayAnnotation buildExpiryTimeOfDay() {
-		return new SourceTimeOfDayAnnotation(this, this.member, EXPIRY_TIME_OF_DAY_ADAPTER);
-	}
-
-	public TextRange getExpiryTimeOfDayTextRange(CompilationUnit astRoot) {
-		return null;//TODO return this.getElementTextRange(EXPIRY_TIME_OF_DAY_ADAPTER, astRoot);
-	}
-
-	// ***** always refresh
-	public Boolean getAlwaysRefresh() {
-		return this.alwaysRefresh;
-	}
-
-	public void setAlwaysRefresh(Boolean alwaysRefresh) {
-		if (this.attributeValueHasNotChanged(this.alwaysRefresh, alwaysRefresh)) {
-			return;
-		}
-		Boolean old = this.alwaysRefresh;
-		this.alwaysRefresh = alwaysRefresh;
-		this.alwaysRefreshAdapter.setValue(alwaysRefresh);
-		this.firePropertyChanged(ALWAYS_REFRESH_PROPERTY, old, alwaysRefresh);
-	}
-
-	private Boolean buildAlwaysRefresh(CompilationUnit astRoot) {
-		return this.alwaysRefreshAdapter.getValue(astRoot);
-	}
-
-	public TextRange getAlwaysRefreshTextRange(CompilationUnit astRoot) {
-		return this.getElementTextRange(ALWAYS_REFRESH_ADAPTER, astRoot);
-	}
-
-	// ***** refresh only if newer
-	public Boolean getRefreshOnlyIfNewer() {
-		return this.refreshOnlyIfNewer;
-	}
-
-	public void setRefreshOnlyIfNewer(Boolean refreshOnlyIfNewer) {
-		if (this.attributeValueHasNotChanged(this.refreshOnlyIfNewer, refreshOnlyIfNewer)) {
-			return;
-		}
-		Boolean old = this.refreshOnlyIfNewer;
-		this.refreshOnlyIfNewer = refreshOnlyIfNewer;
-		this.refreshOnlyIfNewerAdapter.setValue(refreshOnlyIfNewer);
-		this.firePropertyChanged(REFRESH_ONLY_IF_NEWER_PROPERTY, old, refreshOnlyIfNewer);
-	}
-
-	private Boolean buildRefreshOnlyIfNewer(CompilationUnit astRoot) {
-		return this.refreshOnlyIfNewerAdapter.getValue(astRoot);
-	}
-
-	public TextRange getRefreshOnlyIfNewerTextRange(CompilationUnit astRoot) {
-		return this.getElementTextRange(REFRESH_ONLY_IF_NEWER_ADAPTER, astRoot);
-	}
-
-	// ***** disable hits
-	public Boolean getDisableHits() {
-		return this.disableHits;
-	}
-
-	public void setDisableHits(Boolean disableHits) {
-		if (this.attributeValueHasNotChanged(this.disableHits, disableHits)) {
-			return;
-		}
-		Boolean old = this.disableHits;
-		this.disableHits = disableHits;
-		this.disableHitsAdapter.setValue(disableHits);
-		this.firePropertyChanged(DISABLE_HITS_PROPERTY, old, disableHits);
-	}
-
-	private Boolean buildDisableHits(CompilationUnit astRoot) {
-		return this.disableHitsAdapter.getValue(astRoot);
-	}
-
-	public TextRange getDisablesHitsTextRange(CompilationUnit astRoot) {
-		return this.getElementTextRange(DISABLE_HITS_ADAPTER, astRoot);
-	}
-
-	// ***** coordination type
-	public CacheCoordinationType getCoordinationType() {
-		return this.coordinationType;
-	}
-
-	public void setCoordinationType(CacheCoordinationType coordinationType) {
-		if (this.attributeValueHasNotChanged(this.coordinationType, coordinationType)) {
-			return;
-		}
-		CacheCoordinationType old = this.coordinationType;
-		this.coordinationType = coordinationType;
-		this.coordinationTypeAdapter.setValue(CacheCoordinationType.toJavaAnnotationValue(coordinationType));
-		this.firePropertyChanged(TYPE_PROPERTY, old, coordinationType);
-	}
-
-	private CacheCoordinationType buildCoordinationType(CompilationUnit astRoot) {
-		return CacheCoordinationType.fromJavaAnnotationValue(this.coordinationTypeAdapter.getValue(astRoot));
-	}
-
-	public TextRange getCoordinationTypeTextRange(CompilationUnit astRoot) {
-		return this.getElementTextRange(COORDINATION_TYPE_ADAPTER, astRoot);
-	}
-
-
-	// ********** static methods **********
-
-	private static DeclarationAnnotationElementAdapter<String> buildTypeAdapter() {
-		return new EnumDeclarationAnnotationElementAdapter(DECLARATION_ANNOTATION_ADAPTER, EclipseLinkJPA.CACHE__TYPE);
-	}
-
-	private static DeclarationAnnotationElementAdapter<Integer> buildSizeAdapter() {
-		return new ConversionDeclarationAnnotationElementAdapter<Integer>(DECLARATION_ANNOTATION_ADAPTER, EclipseLinkJPA.CACHE__SIZE, NumberIntegerExpressionConverter.instance());
-	}
-
-	private static DeclarationAnnotationElementAdapter<Boolean> buildSharedAdapter() {
-		return new ConversionDeclarationAnnotationElementAdapter<Boolean>(DECLARATION_ANNOTATION_ADAPTER, EclipseLinkJPA.CACHE__SHARED, BooleanExpressionConverter.instance());
-	}
-
-	private static DeclarationAnnotationElementAdapter<Integer> buildExpiryAdapter() {
-		return new ConversionDeclarationAnnotationElementAdapter<Integer>(DECLARATION_ANNOTATION_ADAPTER, EclipseLinkJPA.CACHE__EXPIRY, NumberIntegerExpressionConverter.instance());
-	}
-
-	private static DeclarationAnnotationElementAdapter<Boolean> buildAlwaysRefreshAdapter() {
-		return new ConversionDeclarationAnnotationElementAdapter<Boolean>(DECLARATION_ANNOTATION_ADAPTER, EclipseLinkJPA.CACHE__ALWAYS_REFRESH, BooleanExpressionConverter.instance());
-	}
-
-	private static DeclarationAnnotationElementAdapter<Boolean> buildRefreshOnlyIfNewerAdapter() {
-		return new ConversionDeclarationAnnotationElementAdapter<Boolean>(DECLARATION_ANNOTATION_ADAPTER, EclipseLinkJPA.CACHE__REFRESH_ONLY_IF_NEWER, BooleanExpressionConverter.instance());
-	}
-
-	private static DeclarationAnnotationElementAdapter<Boolean> buildDisableHitsAdapter() {
-		return new ConversionDeclarationAnnotationElementAdapter<Boolean>(DECLARATION_ANNOTATION_ADAPTER, EclipseLinkJPA.CACHE__DISABLE_HITS, BooleanExpressionConverter.instance());
-	}
-
-	private static DeclarationAnnotationElementAdapter<String> buildCoordinationTypeAdapter() {
-		return new EnumDeclarationAnnotationElementAdapter(DECLARATION_ANNOTATION_ADAPTER, EclipseLinkJPA.CACHE__COORDINATION_TYPE);
-	}
-
-	private static NestedDeclarationAnnotationAdapter buildExpiryTimeOfDayAdapter() {
-		return new NestedDeclarationAnnotationAdapter(DECLARATION_ANNOTATION_ADAPTER, EclipseLinkJPA.CACHE__EXPIRY_TIME_OF_DAY, EclipseLinkJPA.TIME_OF_DAY);
-	}
-
-}
diff --git a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/resource/java/source/SourceChangeTrackingAnnotation.java b/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/resource/java/source/SourceChangeTrackingAnnotation.java
deleted file mode 100644
index 91024a7..0000000
--- a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/resource/java/source/SourceChangeTrackingAnnotation.java
+++ /dev/null
@@ -1,96 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008, 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.eclipselink.core.internal.resource.java.source;
-
-import org.eclipse.jdt.core.dom.CompilationUnit;
-import org.eclipse.jpt.core.internal.resource.java.source.SourceAnnotation;
-import org.eclipse.jpt.core.internal.utility.jdt.EnumDeclarationAnnotationElementAdapter;
-import org.eclipse.jpt.core.internal.utility.jdt.ShortCircuitAnnotationElementAdapter;
-import org.eclipse.jpt.core.internal.utility.jdt.SimpleDeclarationAnnotationAdapter;
-import org.eclipse.jpt.core.resource.java.JavaResourcePersistentType;
-import org.eclipse.jpt.core.utility.TextRange;
-import org.eclipse.jpt.core.utility.jdt.AnnotationElementAdapter;
-import org.eclipse.jpt.core.utility.jdt.DeclarationAnnotationAdapter;
-import org.eclipse.jpt.core.utility.jdt.DeclarationAnnotationElementAdapter;
-import org.eclipse.jpt.core.utility.jdt.Type;
-import org.eclipse.jpt.eclipselink.core.resource.java.ChangeTrackingAnnotation;
-import org.eclipse.jpt.eclipselink.core.resource.java.ChangeTrackingType;
-import org.eclipse.jpt.eclipselink.core.resource.java.EclipseLinkJPA;
-
-/**
- * org.eclipse.persistence.annotations.ChangeTracking
- */
-public final class SourceChangeTrackingAnnotation
-	extends SourceAnnotation<Type>
-	implements ChangeTrackingAnnotation
-{
-	private static final DeclarationAnnotationAdapter DECLARATION_ANNOTATION_ADAPTER = new SimpleDeclarationAnnotationAdapter(ANNOTATION_NAME);
-
-	private static final DeclarationAnnotationElementAdapter<String> VALUE_ADAPTER = buildValueAdapter();
-	private final AnnotationElementAdapter<String> valueAdapter;
-	private ChangeTrackingType value;
-
-
-	public SourceChangeTrackingAnnotation(JavaResourcePersistentType parent, Type type) {
-		super(parent, type, DECLARATION_ANNOTATION_ADAPTER);
-		this.valueAdapter = new ShortCircuitAnnotationElementAdapter<String>(type, VALUE_ADAPTER);
-	}
-
-	public String getAnnotationName() {
-		return ANNOTATION_NAME;
-	}
-
-	public void initialize(CompilationUnit astRoot) {
-		this.value = this.buildValue(astRoot);
-	}
-
-	public void update(CompilationUnit astRoot) {
-		this.setValue(this.buildValue(astRoot));
-	}
-
-	@Override
-	public void toString(StringBuilder sb) {
-		sb.append(this.value);
-	}
-
-
-	// ********** ChangeTrackingAnnotation implementation **********
-
-	// ***** value
-	public ChangeTrackingType getValue() {
-		return this.value;
-	}
-
-	public void setValue(ChangeTrackingType value) {
-		if (this.attributeValueHasNotChanged(this.value, value)) {
-			return;
-		}
-		ChangeTrackingType old = this.value;
-		this.value = value;
-		this.valueAdapter.setValue(ChangeTrackingType.toJavaAnnotationValue(value));
-		this.firePropertyChanged(VALUE_PROPERTY, old, value);
-	}
-
-	private ChangeTrackingType buildValue(CompilationUnit astRoot) {
-		return ChangeTrackingType.fromJavaAnnotationValue(this.valueAdapter.getValue(astRoot));
-	}
-
-	public TextRange getValueTextRange(CompilationUnit astRoot) {
-		return this.getElementTextRange(VALUE_ADAPTER, astRoot);
-	}
-
-
-	// ********** static methods **********
-
-	private static DeclarationAnnotationElementAdapter<String> buildValueAdapter() {
-		return new EnumDeclarationAnnotationElementAdapter(DECLARATION_ANNOTATION_ADAPTER, EclipseLinkJPA.CHANGE_TRACKING__VALUE, false);
-	}
-
-}
diff --git a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/resource/java/source/SourceConversionValueAnnotation.java b/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/resource/java/source/SourceConversionValueAnnotation.java
deleted file mode 100644
index 2868821..0000000
--- a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/resource/java/source/SourceConversionValueAnnotation.java
+++ /dev/null
@@ -1,165 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008, 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.eclipselink.core.internal.resource.java.source;
-
-import org.eclipse.jdt.core.dom.CompilationUnit;
-import org.eclipse.jpt.core.internal.resource.java.source.SourceAnnotation;
-import org.eclipse.jpt.core.internal.utility.jdt.ConversionDeclarationAnnotationElementAdapter;
-import org.eclipse.jpt.core.internal.utility.jdt.MemberIndexedAnnotationAdapter;
-import org.eclipse.jpt.core.internal.utility.jdt.NestedIndexedDeclarationAnnotationAdapter;
-import org.eclipse.jpt.core.internal.utility.jdt.ShortCircuitAnnotationElementAdapter;
-import org.eclipse.jpt.core.resource.java.NestableAnnotation;
-import org.eclipse.jpt.core.utility.TextRange;
-import org.eclipse.jpt.core.utility.jdt.AnnotationElementAdapter;
-import org.eclipse.jpt.core.utility.jdt.DeclarationAnnotationAdapter;
-import org.eclipse.jpt.core.utility.jdt.DeclarationAnnotationElementAdapter;
-import org.eclipse.jpt.core.utility.jdt.IndexedAnnotationAdapter;
-import org.eclipse.jpt.core.utility.jdt.IndexedDeclarationAnnotationAdapter;
-import org.eclipse.jpt.core.utility.jdt.Member;
-import org.eclipse.jpt.eclipselink.core.resource.java.ConversionValueAnnotation;
-import org.eclipse.jpt.eclipselink.core.resource.java.EclipseLinkJPA;
-import org.eclipse.jpt.eclipselink.core.resource.java.NestableConversionValueAnnotation;
-import org.eclipse.jpt.eclipselink.core.resource.java.ObjectTypeConverterAnnotation;
-
-/**
- * org.eclipse.persistence.annotations.ConversionValue
- */
-final class SourceConversionValueAnnotation
-	extends SourceAnnotation<Member>
-	implements NestableConversionValueAnnotation
-{
-	private final DeclarationAnnotationElementAdapter<String> dataValueDeclarationAdapter;
-	private final AnnotationElementAdapter<String> dataValueAdapter;
-	private String dataValue;
-
-	private final DeclarationAnnotationElementAdapter<String> objectValueDeclarationAdapter;
-	private final AnnotationElementAdapter<String> objectValueAdapter;
-	private String objectValue;
-
-
-	SourceConversionValueAnnotation(ObjectTypeConverterAnnotation parent, Member member, IndexedDeclarationAnnotationAdapter idaa) {
-		super(parent, member, idaa, new MemberIndexedAnnotationAdapter(member, idaa));
-		this.dataValueDeclarationAdapter = this.buildDataValueAdapter(idaa);
-		this.dataValueAdapter = this.buildAdapter(this.dataValueDeclarationAdapter);
-		this.objectValueDeclarationAdapter = this.buildObjectValueAdapter(idaa);
-		this.objectValueAdapter = this.buildAdapter(this.objectValueDeclarationAdapter);
-	}
-
-	private AnnotationElementAdapter<String> buildAdapter(DeclarationAnnotationElementAdapter<String> daea) {
-		return new ShortCircuitAnnotationElementAdapter<String>(this.member, daea);
-	}
-
-	private DeclarationAnnotationElementAdapter<String> buildDataValueAdapter(DeclarationAnnotationAdapter declarationAnnotationAdapter) {
-		return ConversionDeclarationAnnotationElementAdapter.forStrings(declarationAnnotationAdapter, EclipseLinkJPA.CONVERSION_VALUE__DATA_VALUE, false);
-	}
-
-	private DeclarationAnnotationElementAdapter<String> buildObjectValueAdapter(DeclarationAnnotationAdapter declarationAnnotationAdapter) {
-		return ConversionDeclarationAnnotationElementAdapter.forStrings(declarationAnnotationAdapter, EclipseLinkJPA.CONVERSION_VALUE__OBJECT_VALUE, false);
-	}
-
-	public String getAnnotationName() {
-		return ANNOTATION_NAME;
-	}
-
-	public void initialize(CompilationUnit astRoot) {
-		this.dataValue = this.buildDataValue(astRoot);
-		this.objectValue = this.buildObjectValue(astRoot);
-	}
-
-	public void update(CompilationUnit astRoot) {
-		this.setDataValue(this.buildDataValue(astRoot));
-		this.setObjectValue(this.buildObjectValue(astRoot));
-	}
-
-	public IndexedAnnotationAdapter getIndexedAnnotationAdapter() {
-		return (IndexedAnnotationAdapter) this.annotationAdapter;
-	}
-
-	@Override
-	public void toString(StringBuilder sb) {
-		sb.append(this.dataValue);
-		sb.append("=>"); //$NON-NLS-1$
-		sb.append(this.objectValue);
-	}
-
-
-	// ********** ConversionValueAnnotation implementation **********
-
-	// ***** data value
-	public String getDataValue() {
-		return this.dataValue;
-	}
-
-	public void setDataValue(String dataValue) {
-		if (this.attributeValueHasNotChanged(this.dataValue, dataValue)) {
-			return;
-		}
-		String old = this.dataValue;
-		this.dataValue = dataValue;
-		this.dataValueAdapter.setValue(dataValue);
-		this.firePropertyChanged(DATA_VALUE_PROPERTY, old, dataValue);
-	}
-
-	private String buildDataValue(CompilationUnit astRoot) {
-		return this.dataValueAdapter.getValue(astRoot);
-	}
-
-	public TextRange getDataValueTextRange(CompilationUnit astRoot) {
-		return this.getElementTextRange(this.dataValueDeclarationAdapter, astRoot);
-	}
-
-	// ***** object value
-	public String getObjectValue() {
-		return this.objectValue;
-	}
-
-	public void setObjectValue(String objectValue) {
-		if (this.attributeValueHasNotChanged(this.objectValue, objectValue)) {
-			return;
-		}
-		String old = this.objectValue;
-		this.objectValue = objectValue;
-		this.objectValueAdapter.setValue(objectValue);
-		this.firePropertyChanged(OBJECT_VALUE_PROPERTY, old, objectValue);
-	}
-
-	private String buildObjectValue(CompilationUnit astRoot) {
-		return this.objectValueAdapter.getValue(astRoot);
-	}
-
-	public TextRange getObjectValueTextRange(CompilationUnit astRoot) {
-		return this.getElementTextRange(this.objectValueDeclarationAdapter, astRoot);
-	}
-
-
-	//************ NestableAnnotation implementation
-
-	public void initializeFrom(NestableAnnotation oldAnnotation) {
-		ConversionValueAnnotation oldConversionValue = (ConversionValueAnnotation) oldAnnotation;
-		this.setDataValue(oldConversionValue.getDataValue());
-		this.setObjectValue(oldConversionValue.getObjectValue());
-	}
-
-	public void moveAnnotation(int newIndex) {
-		this.getIndexedAnnotationAdapter().moveAnnotation(newIndex);
-	}
-
-
-	// ********** static methods **********
-
-	static NestableConversionValueAnnotation createConversionValue(ObjectTypeConverterAnnotation parent, Member member, DeclarationAnnotationAdapter daa, int index) {
-		return new SourceConversionValueAnnotation(parent, member, buildConversionValueAnnotationAdapter(daa, index));
-	}
-
-	private static IndexedDeclarationAnnotationAdapter buildConversionValueAnnotationAdapter(DeclarationAnnotationAdapter daa, int index) {
-		return new NestedIndexedDeclarationAnnotationAdapter(daa, EclipseLinkJPA.OBJECT_TYPE_CONVERTER__CONVERSION_VALUES, index, EclipseLinkJPA.CONVERSION_VALUE, false);
-	}
-
-}
diff --git a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/resource/java/source/SourceConvertAnnotation.java b/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/resource/java/source/SourceConvertAnnotation.java
deleted file mode 100644
index 28f0c46..0000000
--- a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/resource/java/source/SourceConvertAnnotation.java
+++ /dev/null
@@ -1,100 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008, 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.eclipselink.core.internal.resource.java.source;
-
-import org.eclipse.jdt.core.dom.CompilationUnit;
-import org.eclipse.jpt.core.internal.resource.java.source.SourceAnnotation;
-import org.eclipse.jpt.core.internal.utility.jdt.ConversionDeclarationAnnotationElementAdapter;
-import org.eclipse.jpt.core.internal.utility.jdt.ShortCircuitAnnotationElementAdapter;
-import org.eclipse.jpt.core.internal.utility.jdt.SimpleDeclarationAnnotationAdapter;
-import org.eclipse.jpt.core.internal.utility.jdt.StringExpressionConverter;
-import org.eclipse.jpt.core.resource.java.JavaResourcePersistentAttribute;
-import org.eclipse.jpt.core.utility.TextRange;
-import org.eclipse.jpt.core.utility.jdt.AnnotationElementAdapter;
-import org.eclipse.jpt.core.utility.jdt.Attribute;
-import org.eclipse.jpt.core.utility.jdt.DeclarationAnnotationAdapter;
-import org.eclipse.jpt.core.utility.jdt.DeclarationAnnotationElementAdapter;
-import org.eclipse.jpt.eclipselink.core.resource.java.ConvertAnnotation;
-import org.eclipse.jpt.eclipselink.core.resource.java.EclipseLinkJPA;
-
-/**
- * org.eclipse.persistence.annotations.Convert
- */
-public final class SourceConvertAnnotation
-	extends SourceAnnotation<Attribute>
-	implements ConvertAnnotation
-{
-	private static final DeclarationAnnotationAdapter DECLARATION_ANNOTATION_ADAPTER = new SimpleDeclarationAnnotationAdapter(ANNOTATION_NAME);
-
-	private static final DeclarationAnnotationElementAdapter<String> VALUE_ADAPTER = buildValueAdapter();
-	private final AnnotationElementAdapter<String> valueAdapter;
-	private String value;
-
-
-	public SourceConvertAnnotation(JavaResourcePersistentAttribute parent, Attribute attribute) {
-		super(parent, attribute, DECLARATION_ANNOTATION_ADAPTER);
-		this.valueAdapter = new ShortCircuitAnnotationElementAdapter<String>(attribute, VALUE_ADAPTER);
-	}
-
-	public String getAnnotationName() {
-		return ANNOTATION_NAME;
-	}
-
-	public void initialize(CompilationUnit astRoot) {
-		this.value = this.buildValue(astRoot);
-	}
-
-	public void update(CompilationUnit astRoot) {
-		this.setValue(this.buildValue(astRoot));
-	}
-
-	@Override
-	public void toString(StringBuilder sb) {
-		sb.append(this.value);
-	}
-
-
-	// ********** ConvertAnnotation implementation **********
-
-	// ***** value
-	public String getValue() {
-		return this.value;
-	}
-
-	public void setValue(String value) {
-		if (this.attributeValueHasNotChanged(this.value, value)) {
-			return;
-		}
-		String old = this.value;
-		this.value = value;
-		this.valueAdapter.setValue(value);
-		this.firePropertyChanged(VALUE_PROPERTY, old, value);
-	}
-
-	private String buildValue(CompilationUnit astRoot) {
-		return this.valueAdapter.getValue(astRoot);
-	}
-
-	public TextRange getValueTextRange(CompilationUnit astRoot) {
-		return this.getElementTextRange(VALUE_ADAPTER, astRoot);
-	}
-
-	public boolean valueTouches(int pos, CompilationUnit astRoot) {
-		return this.elementTouches(VALUE_ADAPTER, pos, astRoot);
-	}
-
-
-	// ********** static methods **********
-
-	private static DeclarationAnnotationElementAdapter<String> buildValueAdapter() {
-		return new ConversionDeclarationAnnotationElementAdapter<String>(DECLARATION_ANNOTATION_ADAPTER, EclipseLinkJPA.CONVERT__VALUE, false, StringExpressionConverter.instance());
-	}
-
-}
diff --git a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/resource/java/source/SourceConverterAnnotation.java b/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/resource/java/source/SourceConverterAnnotation.java
deleted file mode 100644
index d7aaf48..0000000
--- a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/resource/java/source/SourceConverterAnnotation.java
+++ /dev/null
@@ -1,108 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008, 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.eclipselink.core.internal.resource.java.source;
-
-import org.eclipse.jdt.core.dom.CompilationUnit;
-import org.eclipse.jpt.core.internal.utility.jdt.ConversionDeclarationAnnotationElementAdapter;
-import org.eclipse.jpt.core.internal.utility.jdt.JDTTools;
-import org.eclipse.jpt.core.internal.utility.jdt.ShortCircuitAnnotationElementAdapter;
-import org.eclipse.jpt.core.internal.utility.jdt.SimpleDeclarationAnnotationAdapter;
-import org.eclipse.jpt.core.internal.utility.jdt.SimpleTypeStringExpressionConverter;
-import org.eclipse.jpt.core.resource.java.JavaResourcePersistentMember;
-import org.eclipse.jpt.core.utility.TextRange;
-import org.eclipse.jpt.core.utility.jdt.AnnotationElementAdapter;
-import org.eclipse.jpt.core.utility.jdt.DeclarationAnnotationAdapter;
-import org.eclipse.jpt.core.utility.jdt.DeclarationAnnotationElementAdapter;
-import org.eclipse.jpt.core.utility.jdt.Member;
-import org.eclipse.jpt.eclipselink.core.resource.java.ConverterAnnotation;
-import org.eclipse.jpt.eclipselink.core.resource.java.EclipseLinkJPA;
-
-/**
- * org.eclipse.persistence.annotations.Converter
- */
-public final class SourceConverterAnnotation
-	extends SourceNamedConverterAnnotation
-	implements ConverterAnnotation
-{
-	private static final DeclarationAnnotationAdapter DECLARATION_ANNOTATION_ADAPTER = new SimpleDeclarationAnnotationAdapter(ANNOTATION_NAME);
-
-	private static final DeclarationAnnotationElementAdapter<String> CONVERTER_CLASS_ADAPTER = buildConverterClassAdapter();
-	private final AnnotationElementAdapter<String> converterClassAdapter;
-	private String converterClass;
-
-
-	public SourceConverterAnnotation(JavaResourcePersistentMember parent, Member member) {
-		super(parent, member, DECLARATION_ANNOTATION_ADAPTER);
-		this.converterClassAdapter = new ShortCircuitAnnotationElementAdapter<String>(member, CONVERTER_CLASS_ADAPTER);
-	}
-
-	public String getAnnotationName() {
-		return ANNOTATION_NAME;
-	}
-
-	@Override
-	public void initialize(CompilationUnit astRoot) {
-		super.initialize(astRoot);
-		this.converterClass = this.buildConverterClass(astRoot);
-	}
-
-	@Override
-	public void update(CompilationUnit astRoot) {
-		super.update(astRoot);
-		this.setConverterClass(this.buildConverterClass(astRoot));
-	}
-
-
-	// ********** SourceNamedConverterAnnotation implementation **********
-
-	@Override
-	String getNameElementName() {
-		return EclipseLinkJPA.CONVERTER__NAME;
-	}
-
-
-	// ********** ConverterAnnotation implementation **********
-
-	// ***** converter class
-	public String getConverterClass() {
-		return this.converterClass;
-	}
-
-	public void setConverterClass(String converterClass) {
-		if (this.attributeValueHasNotChanged(this.converterClass, converterClass)) {
-			return;
-		}
-		String old = this.converterClass;
-		this.converterClass = converterClass;
-		this.converterClassAdapter.setValue(converterClass);
-		this.firePropertyChanged(CONVERTER_CLASS_PROPERTY, old, converterClass);
-	}
-
-	private String buildConverterClass(CompilationUnit astRoot) {
-		return this.converterClassAdapter.getValue(astRoot);
-	}
-
-	public TextRange getConverterClassTextRange(CompilationUnit astRoot) {
-		return this.getElementTextRange(CONVERTER_CLASS_ADAPTER, astRoot);
-	}
-
-	public boolean converterClassImplementsInterface(String interfaceName, CompilationUnit astRoot) {
-		return (this.converterClass != null)
-				&& JDTTools.typeIsSubTypeOf(this.converterClassAdapter.getExpression(astRoot), interfaceName);
-	}
-
-
-	// ********** static methods **********
-
-	private static DeclarationAnnotationElementAdapter<String> buildConverterClassAdapter() {
-		return new ConversionDeclarationAnnotationElementAdapter<String>(DECLARATION_ANNOTATION_ADAPTER, EclipseLinkJPA.CONVERTER__CONVERTER_CLASS, false, SimpleTypeStringExpressionConverter.instance());
-	}
-
-}
diff --git a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/resource/java/source/SourceCustomizerAnnotation.java b/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/resource/java/source/SourceCustomizerAnnotation.java
deleted file mode 100644
index bce88e5..0000000
--- a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/resource/java/source/SourceCustomizerAnnotation.java
+++ /dev/null
@@ -1,102 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008, 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.eclipselink.core.internal.resource.java.source;
-
-import org.eclipse.jdt.core.dom.CompilationUnit;
-import org.eclipse.jpt.core.internal.resource.java.source.SourceAnnotation;
-import org.eclipse.jpt.core.internal.utility.jdt.ConversionDeclarationAnnotationElementAdapter;
-import org.eclipse.jpt.core.internal.utility.jdt.JDTTools;
-import org.eclipse.jpt.core.internal.utility.jdt.ShortCircuitAnnotationElementAdapter;
-import org.eclipse.jpt.core.internal.utility.jdt.SimpleDeclarationAnnotationAdapter;
-import org.eclipse.jpt.core.internal.utility.jdt.SimpleTypeStringExpressionConverter;
-import org.eclipse.jpt.core.resource.java.JavaResourcePersistentMember;
-import org.eclipse.jpt.core.utility.TextRange;
-import org.eclipse.jpt.core.utility.jdt.AnnotationElementAdapter;
-import org.eclipse.jpt.core.utility.jdt.DeclarationAnnotationAdapter;
-import org.eclipse.jpt.core.utility.jdt.DeclarationAnnotationElementAdapter;
-import org.eclipse.jpt.core.utility.jdt.Type;
-import org.eclipse.jpt.eclipselink.core.resource.java.CustomizerAnnotation;
-import org.eclipse.jpt.eclipselink.core.resource.java.EclipseLinkJPA;
-
-/**
- * org.eclipse.persistence.annotations.Customizer
- */
-public final class SourceCustomizerAnnotation
-	extends SourceAnnotation<Type>
-	implements CustomizerAnnotation
-{
-	private static final DeclarationAnnotationAdapter DECLARATION_ANNOTATION_ADAPTER = new SimpleDeclarationAnnotationAdapter(ANNOTATION_NAME);
-
-	private static final DeclarationAnnotationElementAdapter<String> VALUE_ADAPTER = buildValueAdapter();
-	private final AnnotationElementAdapter<String> valueAdapter;
-	private String value;
-
-
-	public SourceCustomizerAnnotation(JavaResourcePersistentMember parent, Type type) {
-		super(parent, type, DECLARATION_ANNOTATION_ADAPTER);
-		this.valueAdapter = new ShortCircuitAnnotationElementAdapter<String>(type, VALUE_ADAPTER);
-	}
-
-	public String getAnnotationName() {
-		return ANNOTATION_NAME;
-	}
-
-	public void initialize(CompilationUnit astRoot) {
-		this.value = this.buildValue(astRoot);
-	}
-
-	public void update(CompilationUnit astRoot) {
-		this.setValue(this.buildValue(astRoot));
-	}
-
-	@Override
-	public void toString(StringBuilder sb) {
-		sb.append(this.value);
-	}
-
-
-	// ********** CustomizerAnnotation implementation **********
-
-	// ***** value
-	public String getValue() {
-		return this.value;
-	}
-
-	public void setValue(String value) {
-		if (this.attributeValueHasNotChanged(this.value, value)) {
-			return;
-		}
-		String old = this.value;
-		this.value = value;
-		this.valueAdapter.setValue(value);
-		this.firePropertyChanged(VALUE_PROPERTY, old, value);
-	}
-
-	private String buildValue(CompilationUnit astRoot) {
-		return this.valueAdapter.getValue(astRoot);
-	}
-
-	public TextRange getValueTextRange(CompilationUnit astRoot) {
-		return this.getElementTextRange(VALUE_ADAPTER, astRoot);
-	}
-
-	public boolean customizerClassImplementsInterface(String interfaceName, CompilationUnit astRoot) {
-		return (this.value != null)
-				&& JDTTools.typeIsSubTypeOf(this.valueAdapter.getExpression(astRoot), interfaceName);
-	}
-
-
-	// ********** static methods **********
-
-	private static DeclarationAnnotationElementAdapter<String> buildValueAdapter() {
-		return new ConversionDeclarationAnnotationElementAdapter<String>(DECLARATION_ANNOTATION_ADAPTER, EclipseLinkJPA.CUSTOMIZER__VALUE, false, SimpleTypeStringExpressionConverter.instance());
-	}
-
-}
diff --git a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/resource/java/source/SourceExistenceCheckingAnnotation.java b/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/resource/java/source/SourceExistenceCheckingAnnotation.java
deleted file mode 100644
index 0c1132a..0000000
--- a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/resource/java/source/SourceExistenceCheckingAnnotation.java
+++ /dev/null
@@ -1,96 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008, 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.eclipselink.core.internal.resource.java.source;
-
-import org.eclipse.jdt.core.dom.CompilationUnit;
-import org.eclipse.jpt.core.internal.resource.java.source.SourceAnnotation;
-import org.eclipse.jpt.core.internal.utility.jdt.EnumDeclarationAnnotationElementAdapter;
-import org.eclipse.jpt.core.internal.utility.jdt.ShortCircuitAnnotationElementAdapter;
-import org.eclipse.jpt.core.internal.utility.jdt.SimpleDeclarationAnnotationAdapter;
-import org.eclipse.jpt.core.resource.java.JavaResourcePersistentType;
-import org.eclipse.jpt.core.utility.TextRange;
-import org.eclipse.jpt.core.utility.jdt.AnnotationElementAdapter;
-import org.eclipse.jpt.core.utility.jdt.DeclarationAnnotationAdapter;
-import org.eclipse.jpt.core.utility.jdt.DeclarationAnnotationElementAdapter;
-import org.eclipse.jpt.core.utility.jdt.Type;
-import org.eclipse.jpt.eclipselink.core.resource.java.EclipseLinkJPA;
-import org.eclipse.jpt.eclipselink.core.resource.java.ExistenceCheckingAnnotation;
-import org.eclipse.jpt.eclipselink.core.resource.java.ExistenceType;
-
-/**
- * org.eclipse.persistence.annotations.ExistenceChecking
- */
-public final class SourceExistenceCheckingAnnotation
-	extends SourceAnnotation<Type>
-	implements ExistenceCheckingAnnotation
-{
-	private static final DeclarationAnnotationAdapter DECLARATION_ANNOTATION_ADAPTER = new SimpleDeclarationAnnotationAdapter(ANNOTATION_NAME);
-
-	private static final DeclarationAnnotationElementAdapter<String> VALUE_ADAPTER = buildValueAdapter();
-	private final AnnotationElementAdapter<String> valueAdapter;
-	private ExistenceType value;
-
-
-	public SourceExistenceCheckingAnnotation(JavaResourcePersistentType parent, Type type) {
-		super(parent, type, DECLARATION_ANNOTATION_ADAPTER);
-		this.valueAdapter = new ShortCircuitAnnotationElementAdapter<String>(type, VALUE_ADAPTER);
-	}
-
-	public String getAnnotationName() {
-		return ANNOTATION_NAME;
-	}
-
-	public void initialize(CompilationUnit astRoot) {
-		this.value = this.buildValue(astRoot);
-	}
-
-	public void update(CompilationUnit astRoot) {
-		this.setValue(this.buildValue(astRoot));
-	}
-
-	@Override
-	public void toString(StringBuilder sb) {
-		sb.append(this.value);
-	}
-
-
-	// ********** ExistenceCheckingAnnotation implementation **********
-
-	// ***** value
-	public ExistenceType getValue() {
-		return this.value;
-	}
-
-	public void setValue(ExistenceType value) {
-		if (this.attributeValueHasNotChanged(this.value, value)) {
-			return;
-		}
-		ExistenceType old = this.value;
-		this.value = value;
-		this.valueAdapter.setValue(ExistenceType.toJavaAnnotationValue(value));
-		this.firePropertyChanged(VALUE_PROPERTY, old, value);
-	}
-
-	private ExistenceType buildValue(CompilationUnit astRoot) {
-		return ExistenceType.fromJavaAnnotationValue(this.valueAdapter.getValue(astRoot));
-	}
-
-	public TextRange getValueTextRange(CompilationUnit astRoot) {
-		return this.getElementTextRange(VALUE_ADAPTER, astRoot);
-	}
-
-
-	// ********** static methods **********
-
-	private static DeclarationAnnotationElementAdapter<String> buildValueAdapter() {
-		return new EnumDeclarationAnnotationElementAdapter(DECLARATION_ANNOTATION_ADAPTER, EclipseLinkJPA.EXISTENCE_CHECKING__VALUE, false);
-	}
-
-}
diff --git a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/resource/java/source/SourceJoinFetchAnnotation.java b/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/resource/java/source/SourceJoinFetchAnnotation.java
deleted file mode 100644
index 580a003..0000000
--- a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/resource/java/source/SourceJoinFetchAnnotation.java
+++ /dev/null
@@ -1,96 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008, 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.eclipselink.core.internal.resource.java.source;
-
-import org.eclipse.jdt.core.dom.CompilationUnit;
-import org.eclipse.jpt.core.internal.resource.java.source.SourceAnnotation;
-import org.eclipse.jpt.core.internal.utility.jdt.EnumDeclarationAnnotationElementAdapter;
-import org.eclipse.jpt.core.internal.utility.jdt.ShortCircuitAnnotationElementAdapter;
-import org.eclipse.jpt.core.internal.utility.jdt.SimpleDeclarationAnnotationAdapter;
-import org.eclipse.jpt.core.resource.java.JavaResourcePersistentAttribute;
-import org.eclipse.jpt.core.utility.TextRange;
-import org.eclipse.jpt.core.utility.jdt.AnnotationElementAdapter;
-import org.eclipse.jpt.core.utility.jdt.Attribute;
-import org.eclipse.jpt.core.utility.jdt.DeclarationAnnotationAdapter;
-import org.eclipse.jpt.core.utility.jdt.DeclarationAnnotationElementAdapter;
-import org.eclipse.jpt.eclipselink.core.resource.java.EclipseLinkJPA;
-import org.eclipse.jpt.eclipselink.core.resource.java.JoinFetchAnnotation;
-import org.eclipse.jpt.eclipselink.core.resource.java.JoinFetchType;
-
-/**
- * org.eclipse.persistence.annotations.JoinFetch
- */
-public final class SourceJoinFetchAnnotation
-	extends SourceAnnotation<Attribute>
-	implements JoinFetchAnnotation
-{
-	private static final DeclarationAnnotationAdapter DECLARATION_ANNOTATION_ADAPTER = new SimpleDeclarationAnnotationAdapter(ANNOTATION_NAME);
-
-	private static final DeclarationAnnotationElementAdapter<String> VALUE_ADAPTER = buildValueAdapter();
-	private final AnnotationElementAdapter<String> valueAdapter;
-	private JoinFetchType value;
-
-
-	public SourceJoinFetchAnnotation(JavaResourcePersistentAttribute parent, Attribute attribute) {
-		super(parent, attribute, DECLARATION_ANNOTATION_ADAPTER);
-		this.valueAdapter = new ShortCircuitAnnotationElementAdapter<String>(attribute, VALUE_ADAPTER);
-	}
-
-	public String getAnnotationName() {
-		return ANNOTATION_NAME;
-	}
-
-	public void initialize(CompilationUnit astRoot) {
-		this.value = this.buildValue(astRoot);
-	}
-
-	public void update(CompilationUnit astRoot) {
-		this.setValue(this.buildValue(astRoot));
-	}
-
-	@Override
-	public void toString(StringBuilder sb) {
-		sb.append(this.value);
-	}
-
-
-	// ********** JoinFetchAnnotation implementation **********
-
-	// ***** value
-	public JoinFetchType getValue() {
-		return this.value;
-	}
-
-	public void setValue(JoinFetchType value) {
-		if (this.attributeValueHasNotChanged(this.value, value)) {
-			return;
-		}
-		JoinFetchType old = this.value;
-		this.value = value;
-		this.valueAdapter.setValue(JoinFetchType.toJavaAnnotationValue(value));
-		this.firePropertyChanged(VALUE_PROPERTY, old, value);
-	}
-
-	private JoinFetchType buildValue(CompilationUnit astRoot) {
-		return JoinFetchType.fromJavaAnnotationValue(this.valueAdapter.getValue(astRoot));
-	}
-
-	public TextRange getValueTextRange(CompilationUnit astRoot) {
-		return this.getElementTextRange(VALUE_ADAPTER, astRoot);
-	}
-
-
-	// ********** static methods **********
-
-	private static DeclarationAnnotationElementAdapter<String> buildValueAdapter() {
-		return new EnumDeclarationAnnotationElementAdapter(DECLARATION_ANNOTATION_ADAPTER, EclipseLinkJPA.JOIN_FETCH__VALUE, false);
-	}
-
-}
diff --git a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/resource/java/source/SourceMutableAnnotation.java b/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/resource/java/source/SourceMutableAnnotation.java
deleted file mode 100644
index a745a7d..0000000
--- a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/resource/java/source/SourceMutableAnnotation.java
+++ /dev/null
@@ -1,96 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008, 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.eclipselink.core.internal.resource.java.source;
-
-import org.eclipse.jdt.core.dom.CompilationUnit;
-import org.eclipse.jpt.core.internal.resource.java.source.SourceAnnotation;
-import org.eclipse.jpt.core.internal.utility.jdt.BooleanExpressionConverter;
-import org.eclipse.jpt.core.internal.utility.jdt.ConversionDeclarationAnnotationElementAdapter;
-import org.eclipse.jpt.core.internal.utility.jdt.ShortCircuitAnnotationElementAdapter;
-import org.eclipse.jpt.core.internal.utility.jdt.SimpleDeclarationAnnotationAdapter;
-import org.eclipse.jpt.core.resource.java.JavaResourcePersistentAttribute;
-import org.eclipse.jpt.core.utility.TextRange;
-import org.eclipse.jpt.core.utility.jdt.AnnotationElementAdapter;
-import org.eclipse.jpt.core.utility.jdt.Attribute;
-import org.eclipse.jpt.core.utility.jdt.DeclarationAnnotationAdapter;
-import org.eclipse.jpt.core.utility.jdt.DeclarationAnnotationElementAdapter;
-import org.eclipse.jpt.eclipselink.core.resource.java.EclipseLinkJPA;
-import org.eclipse.jpt.eclipselink.core.resource.java.MutableAnnotation;
-
-/**
- * org.eclipse.persistence.annotations.Mutable
- */
-public final class SourceMutableAnnotation
-	extends SourceAnnotation<Attribute>
-	implements MutableAnnotation
-{
-	private static final DeclarationAnnotationAdapter DECLARATION_ANNOTATION_ADAPTER = new SimpleDeclarationAnnotationAdapter(ANNOTATION_NAME);
-
-	private static final DeclarationAnnotationElementAdapter<Boolean> VALUE_ADAPTER = buildValueAdapter();
-	private final AnnotationElementAdapter<Boolean> valueAdapter;
-	private Boolean value;
-
-
-	public SourceMutableAnnotation(JavaResourcePersistentAttribute parent, Attribute attribute) {
-		super(parent, attribute, DECLARATION_ANNOTATION_ADAPTER);
-		this.valueAdapter = new ShortCircuitAnnotationElementAdapter<Boolean>(attribute, VALUE_ADAPTER);
-	}
-
-	public String getAnnotationName() {
-		return ANNOTATION_NAME;
-	}
-
-	public void initialize(CompilationUnit astRoot) {
-		this.value = this.buildValue(astRoot);
-	}
-
-	public void update(CompilationUnit astRoot) {
-		this.setValue(this.buildValue(astRoot));
-	}
-
-	@Override
-	public void toString(StringBuilder sb) {
-		sb.append(this.value);
-	}
-
-
-	// ********** MutableAnnotation implementation **********
-
-	// ***** value
-	public Boolean getValue() {
-		return this.value;
-	}
-
-	public void setValue(Boolean value) {
-		if (this.attributeValueHasNotChanged(this.value, value)) {
-			return;
-		}
-		Boolean old = this.value;
-		this.value = value;
-		this.valueAdapter.setValue(value);
-		this.firePropertyChanged(VALUE_PROPERTY, old, value);
-	}
-
-	private Boolean buildValue(CompilationUnit astRoot) {
-		return this.valueAdapter.getValue(astRoot);
-	}
-
-	public TextRange getValueTextRange(CompilationUnit astRoot) {
-		return this.getElementTextRange(VALUE_ADAPTER, astRoot);
-	}
-
-
-	// ********** static methods **********
-
-	private static DeclarationAnnotationElementAdapter<Boolean> buildValueAdapter() {
-		return new ConversionDeclarationAnnotationElementAdapter<Boolean>(DECLARATION_ANNOTATION_ADAPTER, EclipseLinkJPA.MUTABLE__VALUE, false, BooleanExpressionConverter.instance());
-	}
-
-}
diff --git a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/resource/java/source/SourceNamedConverterAnnotation.java b/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/resource/java/source/SourceNamedConverterAnnotation.java
deleted file mode 100644
index 40c399e..0000000
--- a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/resource/java/source/SourceNamedConverterAnnotation.java
+++ /dev/null
@@ -1,93 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.eclipselink.core.internal.resource.java.source;
-
-import org.eclipse.jdt.core.dom.CompilationUnit;
-import org.eclipse.jpt.core.internal.resource.java.source.SourceAnnotation;
-import org.eclipse.jpt.core.internal.utility.jdt.ConversionDeclarationAnnotationElementAdapter;
-import org.eclipse.jpt.core.internal.utility.jdt.ShortCircuitAnnotationElementAdapter;
-import org.eclipse.jpt.core.resource.java.JavaResourceNode;
-import org.eclipse.jpt.core.resource.java.OverrideAnnotation;
-import org.eclipse.jpt.core.utility.TextRange;
-import org.eclipse.jpt.core.utility.jdt.AnnotationElementAdapter;
-import org.eclipse.jpt.core.utility.jdt.DeclarationAnnotationAdapter;
-import org.eclipse.jpt.core.utility.jdt.DeclarationAnnotationElementAdapter;
-import org.eclipse.jpt.core.utility.jdt.Member;
-import org.eclipse.jpt.eclipselink.core.resource.java.NamedConverterAnnotation;
-
-/**
- * org.eclipse.persistence.annotations.Converter
- * org.eclipse.persistence.annotations.StructConverter
- * org.eclipse.persistence.annotations.TypeConverter
- * org.eclipse.persistence.annotations.ObjectTypeConverter
- */
-abstract class SourceNamedConverterAnnotation
-	extends SourceAnnotation<Member>
-	implements NamedConverterAnnotation
-{
-	final DeclarationAnnotationElementAdapter<String> nameDeclarationAdapter;
-	final AnnotationElementAdapter<String> nameAdapter;
-	String name;
-		
-
-	// ********** construction/initialization **********
-
-	SourceNamedConverterAnnotation(JavaResourceNode parent, Member member, DeclarationAnnotationAdapter daa) {
-		super(parent, member, daa);
-		this.nameDeclarationAdapter = ConversionDeclarationAnnotationElementAdapter.forStrings(daa, this.getNameElementName(), false); // false = do not remove annotation when empty
-		this.nameAdapter = new ShortCircuitAnnotationElementAdapter<String>(this.member, this.nameDeclarationAdapter);
-	}
-
-	public void initialize(CompilationUnit astRoot) {
-		this.name = this.buildName(astRoot);
-	}
-	
-	public void update(CompilationUnit astRoot) {
-		this.setName(this.buildName(astRoot));
-	}
-	
-	@Override
-	public void toString(StringBuilder sb) {
-		sb.append(this.name);
-	}
-	
-
-	// ********** NamedConverterAnnotation implementation **********
-
-	// ***** name
-	public String getName() {
-		return this.name;
-	}
-
-	public void setName(String name) {
-		if (this.attributeValueHasNotChanged(this.name, name)) {
-			return;
-		}
-		String old = this.name;
-		this.name = name;
-		this.nameAdapter.setValue(name);
-		this.firePropertyChanged(OverrideAnnotation.NAME_PROPERTY, old, name);
-	}
-
-	private String buildName(CompilationUnit astRoot) {
-		return this.nameAdapter.getValue(astRoot);
-	}
-
-	public TextRange getNameTextRange(CompilationUnit astRoot) {
-		return this.getElementTextRange(this.nameDeclarationAdapter, astRoot);
-	}
-
-	public boolean nameTouches(int pos, CompilationUnit astRoot) {
-		return this.elementTouches(this.nameDeclarationAdapter, pos, astRoot);
-	}
-
-	abstract String getNameElementName();
-
-}
diff --git a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/resource/java/source/SourceObjectTypeConverterAnnotation.java b/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/resource/java/source/SourceObjectTypeConverterAnnotation.java
deleted file mode 100644
index b09c391..0000000
--- a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/resource/java/source/SourceObjectTypeConverterAnnotation.java
+++ /dev/null
@@ -1,258 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008, 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.eclipselink.core.internal.resource.java.source;
-
-import java.util.ListIterator;
-import java.util.Vector;
-
-import org.eclipse.jdt.core.dom.CompilationUnit;
-import org.eclipse.jpt.core.internal.resource.java.source.AnnotationContainerTools;
-import org.eclipse.jpt.core.internal.utility.jdt.ConversionDeclarationAnnotationElementAdapter;
-import org.eclipse.jpt.core.internal.utility.jdt.ShortCircuitAnnotationElementAdapter;
-import org.eclipse.jpt.core.internal.utility.jdt.SimpleDeclarationAnnotationAdapter;
-import org.eclipse.jpt.core.internal.utility.jdt.StringExpressionConverter;
-import org.eclipse.jpt.core.resource.java.AnnotationContainer;
-import org.eclipse.jpt.core.resource.java.JavaResourcePersistentMember;
-import org.eclipse.jpt.core.utility.TextRange;
-import org.eclipse.jpt.core.utility.jdt.AnnotationElementAdapter;
-import org.eclipse.jpt.core.utility.jdt.DeclarationAnnotationAdapter;
-import org.eclipse.jpt.core.utility.jdt.DeclarationAnnotationElementAdapter;
-import org.eclipse.jpt.core.utility.jdt.Member;
-import org.eclipse.jpt.eclipselink.core.resource.java.ConversionValueAnnotation;
-import org.eclipse.jpt.eclipselink.core.resource.java.EclipseLinkJPA;
-import org.eclipse.jpt.eclipselink.core.resource.java.NestableConversionValueAnnotation;
-import org.eclipse.jpt.eclipselink.core.resource.java.ObjectTypeConverterAnnotation;
-import org.eclipse.jpt.utility.internal.CollectionTools;
-import org.eclipse.jpt.utility.internal.StringTools;
-import org.eclipse.jpt.utility.internal.iterators.CloneListIterator;
-
-/**
- * org.eclipse.persistence.annotations.ObjectTypeConverter
- */
-public final class SourceObjectTypeConverterAnnotation
-	extends SourceBaseTypeConverterAnnotation
-	implements ObjectTypeConverterAnnotation
-{
-	private static final DeclarationAnnotationAdapter DECLARATION_ANNOTATION_ADAPTER = new SimpleDeclarationAnnotationAdapter(ANNOTATION_NAME);
-
-	private static final DeclarationAnnotationElementAdapter<String> DEFAULT_OBJECT_VALUE_ADAPTER = buildDefaultObjectValueAdapter();
-	private final AnnotationElementAdapter<String> defaultObjectValueAdapter;
-	private String defaultObjectValue;
-
-	private final Vector<NestableConversionValueAnnotation> conversionValues = new Vector<NestableConversionValueAnnotation>();
-	private final ConversionValuesAnnotationContainer conversionValuesContainer = new ConversionValuesAnnotationContainer();
-
-
-	public SourceObjectTypeConverterAnnotation(JavaResourcePersistentMember parent, Member member) {
-		super(parent, member, DECLARATION_ANNOTATION_ADAPTER);
-		this.defaultObjectValueAdapter = new ShortCircuitAnnotationElementAdapter<String>(member, DEFAULT_OBJECT_VALUE_ADAPTER);
-	}
-
-	public String getAnnotationName() {
-		return ANNOTATION_NAME;
-	}
-
-	@Override
-	public void initialize(CompilationUnit astRoot) {
-		super.initialize(astRoot);
-		this.defaultObjectValue = this.buildDefaultObjectValue(astRoot);
-		AnnotationContainerTools.initialize(this.conversionValuesContainer, astRoot);
-	}
-
-	@Override
-	public void update(CompilationUnit astRoot) {
-		super.update(astRoot);
-		this.setDefaultObjectValue(this.buildDefaultObjectValue(astRoot));
-		AnnotationContainerTools.update(this.conversionValuesContainer, astRoot);
-	}
-
-
-	// ********** SourceNamedConverterAnnotation implementation **********
-
-	@Override
-	String getNameElementName() {
-		return EclipseLinkJPA.OBJECT_TYPE_CONVERTER__NAME;
-	}
-
-
-	// ********** SourceBaseTypeConverterAnnotation implementation **********
-
-	@Override
-	String getDataTypeElementName() {
-		return EclipseLinkJPA.OBJECT_TYPE_CONVERTER__DATA_TYPE;
-	}
-
-	@Override
-	String getObjectTypeElementName() {
-		return EclipseLinkJPA.OBJECT_TYPE_CONVERTER__OBJECT_TYPE;
-	}
-
-
-	// ********** ObjectTypeConverterAnnotation implementation **********
-
-	// ***** default object value
-	public String getDefaultObjectValue() {
-		return this.defaultObjectValue;
-	}
-
-	public void setDefaultObjectValue(String defaultObjectValue) {
-		if (this.attributeValueHasNotChanged(this.defaultObjectValue, defaultObjectValue)) {
-			return;
-		}
-		String old = this.defaultObjectValue;
-		this.defaultObjectValue = defaultObjectValue;
-		this.defaultObjectValueAdapter.setValue(defaultObjectValue);
-		this.firePropertyChanged(DEFAULT_OBJECT_VALUE_PROPERTY, old, defaultObjectValue);
-	}
-
-	private String buildDefaultObjectValue(CompilationUnit astRoot) {
-		return this.defaultObjectValueAdapter.getValue(astRoot);
-	}
-
-	public TextRange getDefaultObjectValueTextRange(CompilationUnit astRoot) {
-		return this.getElementTextRange(DEFAULT_OBJECT_VALUE_ADAPTER, astRoot);
-	}
-
-	// ***** conversion values
-	public ListIterator<ConversionValueAnnotation> conversionValues() {
-		return new CloneListIterator<ConversionValueAnnotation>(this.conversionValues);
-	}
-
-	ListIterator<NestableConversionValueAnnotation> nestableConversionValues() {
-		return new CloneListIterator<NestableConversionValueAnnotation>(this.conversionValues);
-	}
-
-	public int conversionValuesSize() {
-		return this.conversionValues.size();
-	}
-
-	public NestableConversionValueAnnotation conversionValueAt(int index) {
-		return this.conversionValues.get(index);
-	}
-
-	public int indexOfConversionValue(ConversionValueAnnotation conversionValue) {
-		return this.conversionValues.indexOf(conversionValue);
-	}
-
-	public NestableConversionValueAnnotation addConversionValue(int index) {
-		return (NestableConversionValueAnnotation) AnnotationContainerTools.addNestedAnnotation(index, this.conversionValuesContainer);
-	}
-
-	NestableConversionValueAnnotation addConversionValueInternal() {
-		NestableConversionValueAnnotation conversionValue = this.buildConversionValue(this.conversionValues.size());
-		this.conversionValues.add(conversionValue);
-		return conversionValue;
-	}
-
-	private NestableConversionValueAnnotation buildConversionValue(int index) {
-		return SourceConversionValueAnnotation.createConversionValue(this, this.member, this.daa, index);
-	}
-
-	void conversionValueAdded(int index, NestableConversionValueAnnotation conversionValue) {
-		this.fireItemAdded(CONVERSION_VALUES_LIST, index, conversionValue);
-	}
-
-	public void moveConversionValue(int targetIndex, int sourceIndex) {
-		AnnotationContainerTools.moveNestedAnnotation(targetIndex, sourceIndex, this.conversionValuesContainer);
-	}
-
-	NestableConversionValueAnnotation moveConversionValueInternal(int targetIndex, int sourceIndex) {
-		return CollectionTools.move(this.conversionValues, targetIndex, sourceIndex).get(targetIndex);
-	}
-
-	void conversionValueMoved(int targetIndex, int sourceIndex) {
-		this.fireItemMoved(CONVERSION_VALUES_LIST, targetIndex, sourceIndex);
-	}
-
-	public void removeConversionValue(int index) {
-		AnnotationContainerTools.removeNestedAnnotation(index, this.conversionValuesContainer);
-	}
-
-	NestableConversionValueAnnotation removeConversionValueInternal(int index) {
-		return this.conversionValues.remove(index);
-	}
-
-	void conversionValueRemoved(int index, NestableConversionValueAnnotation conversionValue) {
-		this.fireItemRemoved(CONVERSION_VALUES_LIST, index, conversionValue);
-	}
-
-
-	// ********** static methods **********
-
-	private static DeclarationAnnotationElementAdapter<String> buildDefaultObjectValueAdapter() {
-		return new ConversionDeclarationAnnotationElementAdapter<String>(DECLARATION_ANNOTATION_ADAPTER, EclipseLinkJPA.OBJECT_TYPE_CONVERTER__DEFAULT_OBJECT_VALUE, false, StringExpressionConverter.instance());
-	}
-
-
-	// ********** conversion value container **********
-
-	/**
-	 * adapt the AnnotationContainer interface to the object type converter's
-	 * conversion values
-	 */
-	class ConversionValuesAnnotationContainer
-		implements AnnotationContainer<NestableConversionValueAnnotation> 
-	{
-		public String getContainerAnnotationName() {
-			return SourceObjectTypeConverterAnnotation.this.getAnnotationName();
-		}
-
-		public org.eclipse.jdt.core.dom.Annotation getContainerJdtAnnotation(CompilationUnit astRoot) {
-			return SourceObjectTypeConverterAnnotation.this.getJdtAnnotation(astRoot);
-		}
-
-		public String getElementName() {
-			return EclipseLinkJPA.OBJECT_TYPE_CONVERTER__CONVERSION_VALUES;
-		}
-
-		public String getNestableAnnotationName() {
-			return ConversionValueAnnotation.ANNOTATION_NAME;
-		}
-
-		public ListIterator<NestableConversionValueAnnotation> nestedAnnotations() {
-			return SourceObjectTypeConverterAnnotation.this.nestableConversionValues();
-		}
-
-		public int nestedAnnotationsSize() {
-			return SourceObjectTypeConverterAnnotation.this.conversionValuesSize();
-		}
-
-		public NestableConversionValueAnnotation addNestedAnnotationInternal() {
-			return SourceObjectTypeConverterAnnotation.this.addConversionValueInternal();
-		}
-
-		public void nestedAnnotationAdded(int index, NestableConversionValueAnnotation nestedAnnotation) {
-			SourceObjectTypeConverterAnnotation.this.conversionValueAdded(index, nestedAnnotation);
-		}
-
-		public NestableConversionValueAnnotation moveNestedAnnotationInternal(int targetIndex, int sourceIndex) {
-			return SourceObjectTypeConverterAnnotation.this.moveConversionValueInternal(targetIndex, sourceIndex);
-		}
-
-		public void nestedAnnotationMoved(int targetIndex, int sourceIndex) {
-			SourceObjectTypeConverterAnnotation.this.conversionValueMoved(targetIndex, sourceIndex);
-		}
-
-		public NestableConversionValueAnnotation removeNestedAnnotationInternal(int index) {
-			return SourceObjectTypeConverterAnnotation.this.removeConversionValueInternal(index);
-		}
-
-		public void nestedAnnotationRemoved(int index, NestableConversionValueAnnotation nestedAnnotation) {
-			SourceObjectTypeConverterAnnotation.this.conversionValueRemoved(index, nestedAnnotation);
-		}
-
-		@Override
-		public String toString() {
-			return StringTools.buildToStringFor(this);
-		}
-
-	}
-
-}
diff --git a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/resource/java/source/SourcePrivateOwnedAnnotation.java b/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/resource/java/source/SourcePrivateOwnedAnnotation.java
deleted file mode 100644
index f21fa21..0000000
--- a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/resource/java/source/SourcePrivateOwnedAnnotation.java
+++ /dev/null
@@ -1,46 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008, 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.eclipselink.core.internal.resource.java.source;
-
-import org.eclipse.jdt.core.dom.CompilationUnit;
-import org.eclipse.jpt.core.internal.resource.java.source.SourceAnnotation;
-import org.eclipse.jpt.core.internal.utility.jdt.SimpleDeclarationAnnotationAdapter;
-import org.eclipse.jpt.core.resource.java.JavaResourceNode;
-import org.eclipse.jpt.core.utility.jdt.Attribute;
-import org.eclipse.jpt.core.utility.jdt.DeclarationAnnotationAdapter;
-import org.eclipse.jpt.eclipselink.core.resource.java.PrivateOwnedAnnotation;
-
-/**
- * org.eclipse.persistence.annotations.PrivateOwned
- */
-public final class SourcePrivateOwnedAnnotation
-	extends SourceAnnotation<Attribute>
-	implements PrivateOwnedAnnotation
-{
-	private static final DeclarationAnnotationAdapter DECLARATION_ANNOTATION_ADAPTER = new SimpleDeclarationAnnotationAdapter(ANNOTATION_NAME);
-
-
-	public SourcePrivateOwnedAnnotation(JavaResourceNode parent, Attribute attribute) {
-		super(parent, attribute, DECLARATION_ANNOTATION_ADAPTER);
-	}
-
-	public String getAnnotationName() {
-		return ANNOTATION_NAME;
-	}
-
-	public void initialize(CompilationUnit astRoot) {
-		// nothing to initialize
-	}
-
-	public void update(CompilationUnit astRoot) {
-		// nothing to update
-	}
-
-}
diff --git a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/resource/java/source/SourceReadOnlyAnnotation.java b/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/resource/java/source/SourceReadOnlyAnnotation.java
deleted file mode 100644
index 7298413..0000000
--- a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/resource/java/source/SourceReadOnlyAnnotation.java
+++ /dev/null
@@ -1,46 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008, 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.eclipselink.core.internal.resource.java.source;
-
-import org.eclipse.jdt.core.dom.CompilationUnit;
-import org.eclipse.jpt.core.internal.resource.java.source.SourceAnnotation;
-import org.eclipse.jpt.core.internal.utility.jdt.SimpleDeclarationAnnotationAdapter;
-import org.eclipse.jpt.core.resource.java.JavaResourceNode;
-import org.eclipse.jpt.core.utility.jdt.DeclarationAnnotationAdapter;
-import org.eclipse.jpt.core.utility.jdt.Type;
-import org.eclipse.jpt.eclipselink.core.resource.java.ReadOnlyAnnotation;
-
-/**
- * org.eclipse.persistence.annotations.ReadOnly
- */
-public final class SourceReadOnlyAnnotation
-	extends SourceAnnotation<Type>
-	implements ReadOnlyAnnotation
-{
-	private static final DeclarationAnnotationAdapter DECLARATION_ANNOTATION_ADAPTER = new SimpleDeclarationAnnotationAdapter(ANNOTATION_NAME);
-
-
-	public SourceReadOnlyAnnotation(JavaResourceNode parent, Type type) {
-		super(parent, type, DECLARATION_ANNOTATION_ADAPTER);
-	}
-
-	public String getAnnotationName() {
-		return ANNOTATION_NAME;
-	}
-
-	public void initialize(CompilationUnit astRoot) {
-		// nothing to initialize
-	}
-
-	public void update(CompilationUnit astRoot) {
-		// nothing to update
-	}
-
-}
diff --git a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/resource/java/source/SourceReadTransformerAnnotation.java b/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/resource/java/source/SourceReadTransformerAnnotation.java
deleted file mode 100644
index e5da4f3..0000000
--- a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/resource/java/source/SourceReadTransformerAnnotation.java
+++ /dev/null
@@ -1,50 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008, 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.eclipselink.core.internal.resource.java.source;
-
-import org.eclipse.jpt.core.internal.utility.jdt.SimpleDeclarationAnnotationAdapter;
-import org.eclipse.jpt.core.resource.java.JavaResourcePersistentAttribute;
-import org.eclipse.jpt.core.utility.jdt.Attribute;
-import org.eclipse.jpt.core.utility.jdt.DeclarationAnnotationAdapter;
-import org.eclipse.jpt.eclipselink.core.resource.java.EclipseLinkJPA;
-import org.eclipse.jpt.eclipselink.core.resource.java.ReadTransformerAnnotation;
-
-/**
- * org.eclipse.persistence.annotations.ReadTransformer
- */
-public final class SourceReadTransformerAnnotation
-	extends SourceTransformerAnnotation
-	implements ReadTransformerAnnotation
-{
-	private static final DeclarationAnnotationAdapter DECLARATION_ANNOTATION_ADAPTER = new SimpleDeclarationAnnotationAdapter(ANNOTATION_NAME);
-
-
-	public SourceReadTransformerAnnotation(JavaResourcePersistentAttribute parent, Attribute attribute) {
-		super(parent, attribute, DECLARATION_ANNOTATION_ADAPTER);
-	}
-
-	public String getAnnotationName() {
-		return ANNOTATION_NAME;
-	}
-
-
-	// ********** SourceTransformerAnnotation implementation **********
-
-	@Override
-	String getTransformerClassElementName() {
-		return EclipseLinkJPA.READ_TRANSFORMER__TRANSFORMER_CLASS;
-	}
-
-	@Override
-	String getMethodElementName() {
-		return EclipseLinkJPA.READ_TRANSFORMER__METHOD;
-	}
-
-}
diff --git a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/resource/java/source/SourceStructConverterAnnotation.java b/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/resource/java/source/SourceStructConverterAnnotation.java
deleted file mode 100644
index 48823b4..0000000
--- a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/resource/java/source/SourceStructConverterAnnotation.java
+++ /dev/null
@@ -1,102 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008, 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.eclipselink.core.internal.resource.java.source;
-
-import org.eclipse.jdt.core.dom.CompilationUnit;
-import org.eclipse.jpt.core.internal.utility.jdt.ConversionDeclarationAnnotationElementAdapter;
-import org.eclipse.jpt.core.internal.utility.jdt.ShortCircuitAnnotationElementAdapter;
-import org.eclipse.jpt.core.internal.utility.jdt.SimpleDeclarationAnnotationAdapter;
-import org.eclipse.jpt.core.internal.utility.jdt.StringExpressionConverter;
-import org.eclipse.jpt.core.resource.java.JavaResourcePersistentMember;
-import org.eclipse.jpt.core.utility.TextRange;
-import org.eclipse.jpt.core.utility.jdt.AnnotationElementAdapter;
-import org.eclipse.jpt.core.utility.jdt.DeclarationAnnotationAdapter;
-import org.eclipse.jpt.core.utility.jdt.DeclarationAnnotationElementAdapter;
-import org.eclipse.jpt.core.utility.jdt.Member;
-import org.eclipse.jpt.eclipselink.core.resource.java.EclipseLinkJPA;
-import org.eclipse.jpt.eclipselink.core.resource.java.StructConverterAnnotation;
-
-/**
- * org.eclipse.persistence.annotations.StructConverter
- */
-public final class SourceStructConverterAnnotation
-	extends SourceNamedConverterAnnotation
-	implements StructConverterAnnotation
-{
-	private static final DeclarationAnnotationAdapter DECLARATION_ANNOTATION_ADAPTER = new SimpleDeclarationAnnotationAdapter(ANNOTATION_NAME);
-
-	private static final DeclarationAnnotationElementAdapter<String> CONVERTER_ADAPTER = buildConverterAdapter();
-	private final AnnotationElementAdapter<String> converterAdapter;
-	private String converter;
-
-
-	public SourceStructConverterAnnotation(JavaResourcePersistentMember parent, Member member) {
-		super(parent, member, DECLARATION_ANNOTATION_ADAPTER);
-		this.converterAdapter = new ShortCircuitAnnotationElementAdapter<String>(member, CONVERTER_ADAPTER);
-	}
-
-	public String getAnnotationName() {
-		return ANNOTATION_NAME;
-	}
-
-	@Override
-	public void initialize(CompilationUnit astRoot) {
-		super.initialize(astRoot);
-		this.converter = this.buildConverter(astRoot);
-	}
-
-	@Override
-	public void update(CompilationUnit astRoot) {
-		super.update(astRoot);
-		this.setConverter(this.buildConverter(astRoot));
-	}
-
-
-	// ********** SourceNamedConverterAnnotation implementation **********
-
-	@Override
-	String getNameElementName() {
-		return EclipseLinkJPA.STRUCT_CONVERTER__NAME;
-	}
-
-
-	// ********** StructConverterAnnotation implementation **********
-
-	// ***** converter
-	public String getConverter() {
-		return this.converter;
-	}
-
-	public void setConverter(String converter) {
-		if (this.attributeValueHasNotChanged(this.converter, converter)) {
-			return;
-		}
-		String old = this.converter;
-		this.converter = converter;
-		this.converterAdapter.setValue(converter);
-		this.firePropertyChanged(CONVERTER_PROPERTY, old, converter);
-	}
-
-	private String buildConverter(CompilationUnit astRoot) {
-		return this.converterAdapter.getValue(astRoot);
-	}
-
-	public TextRange getConverterTextRange(CompilationUnit astRoot) {
-		return this.getElementTextRange(CONVERTER_ADAPTER, astRoot);
-	}
-
-
-	// ********** static methods **********
-
-	private static DeclarationAnnotationElementAdapter<String> buildConverterAdapter() {
-		return new ConversionDeclarationAnnotationElementAdapter<String>(DECLARATION_ANNOTATION_ADAPTER, EclipseLinkJPA.STRUCT_CONVERTER__CONVERTER, false, StringExpressionConverter.instance());
-	}
-
-}
diff --git a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/resource/java/source/SourceTimeOfDayAnnotation.java b/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/resource/java/source/SourceTimeOfDayAnnotation.java
deleted file mode 100644
index 5e737f6..0000000
--- a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/resource/java/source/SourceTimeOfDayAnnotation.java
+++ /dev/null
@@ -1,194 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008, 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.eclipselink.core.internal.resource.java.source;
-
-import org.eclipse.jdt.core.dom.CompilationUnit;
-import org.eclipse.jpt.core.internal.resource.java.source.SourceAnnotation;
-import org.eclipse.jpt.core.internal.utility.jdt.ConversionDeclarationAnnotationElementAdapter;
-import org.eclipse.jpt.core.internal.utility.jdt.NumberIntegerExpressionConverter;
-import org.eclipse.jpt.core.internal.utility.jdt.ShortCircuitAnnotationElementAdapter;
-import org.eclipse.jpt.core.resource.java.JavaResourceNode;
-import org.eclipse.jpt.core.utility.TextRange;
-import org.eclipse.jpt.core.utility.jdt.AnnotationElementAdapter;
-import org.eclipse.jpt.core.utility.jdt.DeclarationAnnotationAdapter;
-import org.eclipse.jpt.core.utility.jdt.DeclarationAnnotationElementAdapter;
-import org.eclipse.jpt.core.utility.jdt.Type;
-import org.eclipse.jpt.eclipselink.core.resource.java.EclipseLinkJPA;
-import org.eclipse.jpt.eclipselink.core.resource.java.TimeOfDayAnnotation;
-
-/**
- * org.eclipse.persistence.annotations.TimeOfDay
- */
-public final class SourceTimeOfDayAnnotation
-	extends SourceAnnotation<Type>
-	implements TimeOfDayAnnotation
-{
-	private final DeclarationAnnotationElementAdapter<Integer> hourDeclarationAdapter;
-	private final AnnotationElementAdapter<Integer> hourAdapter;
-	private Integer hour;
-
-	private final DeclarationAnnotationElementAdapter<Integer> minuteDeclarationAdapter;
-	private final AnnotationElementAdapter<Integer> minuteAdapter;
-	private Integer minute;
-
-	private final DeclarationAnnotationElementAdapter<Integer> secondDeclarationAdapter;
-	private final AnnotationElementAdapter<Integer> secondAdapter;
-	private Integer second;
-
-	private final DeclarationAnnotationElementAdapter<Integer> millisecondDeclarationAdapter;
-	private final AnnotationElementAdapter<Integer> millisecondAdapter;
-	private Integer millisecond;
-
-
-	public SourceTimeOfDayAnnotation(JavaResourceNode parent, Type type, DeclarationAnnotationAdapter daa) {
-		super(parent, type, daa);
-		this.hourDeclarationAdapter = buildHourAdapter(daa);
-		this.hourAdapter = new ShortCircuitAnnotationElementAdapter<Integer>(type, this.hourDeclarationAdapter);
-		this.minuteDeclarationAdapter = buildMinuteAdapter(daa);
-		this.minuteAdapter = new ShortCircuitAnnotationElementAdapter<Integer>(type, this.minuteDeclarationAdapter);
-		this.secondDeclarationAdapter = buildSecondAdapter(daa);
-		this.secondAdapter = new ShortCircuitAnnotationElementAdapter<Integer>(type, this.secondDeclarationAdapter);
-		this.millisecondDeclarationAdapter = buildMillisecondAdapter(daa);
-		this.millisecondAdapter = new ShortCircuitAnnotationElementAdapter<Integer>(type, this.millisecondDeclarationAdapter);
-	}
-
-	public String getAnnotationName() {
-		return ANNOTATION_NAME;
-	}
-
-	public void initialize(CompilationUnit astRoot) {
-		this.hour = this.buildHour(astRoot);
-		this.minute = this.buildMinute(astRoot);
-		this.second = this.buildSecond(astRoot);
-		this.millisecond = this.buildMillisecond(astRoot);
-	}
-
-	public void update(CompilationUnit astRoot) {
-		this.setHour(this.buildHour(astRoot));
-		this.setMinute(this.buildMinute(astRoot));
-		this.setSecond(this.buildSecond(astRoot));
-		this.setMillisecond(this.buildMillisecond(astRoot));
-	}
-
-
-	// ********** TimeOfDayAnnotation implementation **********
-
-	// ***** hour
-	public Integer getHour() {
-		return this.hour;
-	}
-
-	public void setHour(Integer hour) {
-		if (this.attributeValueHasNotChanged(this.hour, hour)) {
-			return;
-		}
-		Integer old = this.hour;
-		this.hour = hour;
-		this.hourAdapter.setValue(hour);
-		this.firePropertyChanged(HOUR_PROPERTY, old, hour);
-	}
-
-	private Integer buildHour(CompilationUnit astRoot) {
-		return this.hourAdapter.getValue(astRoot);
-	}
-
-	public TextRange getHourTextRange(CompilationUnit astRoot) {
-		return this.getElementTextRange(this.hourDeclarationAdapter, astRoot);
-	}
-
-	// ***** minute
-	public Integer getMinute() {
-		return this.minute;
-	}
-
-	public void setMinute(Integer newMinute) {
-		if (attributeValueHasNotChanged(this.minute, newMinute)) {
-			return;
-		}
-		Integer oldMinute = this.minute;
-		this.minute = newMinute;
-		this.minuteAdapter.setValue(newMinute);
-		firePropertyChanged(MINUTE_PROPERTY, oldMinute, newMinute);
-	}
-
-	private Integer buildMinute(CompilationUnit astRoot) {
-		return this.minuteAdapter.getValue(astRoot);
-	}
-
-	public TextRange getMinuteTextRange(CompilationUnit astRoot) {
-		return this.getElementTextRange(this.minuteDeclarationAdapter, astRoot);
-	}
-
-	// ***** second
-	public Integer getSecond() {
-		return this.second;
-	}
-
-	public void setSecond(Integer newSecond) {
-		if (attributeValueHasNotChanged(this.second, newSecond)) {
-			return;
-		}
-		Integer oldSecond = this.second;
-		this.second = newSecond;
-		this.secondAdapter.setValue(newSecond);
-		firePropertyChanged(SECOND_PROPERTY, oldSecond, newSecond);
-	}
-
-	private Integer buildSecond(CompilationUnit astRoot) {
-		return this.secondAdapter.getValue(astRoot);
-	}
-
-	public TextRange getSecondTextRange(CompilationUnit astRoot) {
-		return this.getElementTextRange(this.secondDeclarationAdapter, astRoot);
-	}
-
-	// ***** millisecond
-	public Integer getMillisecond() {
-		return this.millisecond;
-	}
-
-	public void setMillisecond(Integer newMillisecond) {
-		if (attributeValueHasNotChanged(this.millisecond, newMillisecond)) {
-			return;
-		}
-		Integer oldMillisecond = this.millisecond;
-		this.millisecond = newMillisecond;
-		this.millisecondAdapter.setValue(newMillisecond);
-		firePropertyChanged(MILLISECOND_PROPERTY, oldMillisecond, newMillisecond);
-	}
-
-	private Integer buildMillisecond(CompilationUnit astRoot) {
-		return this.millisecondAdapter.getValue(astRoot);
-	}
-
-	public TextRange getMillisecondTextRange(CompilationUnit astRoot) {
-		return this.getElementTextRange(this.millisecondDeclarationAdapter, astRoot);
-	}
-
-
-	// ********** static methods **********
-
-	private static DeclarationAnnotationElementAdapter<Integer> buildHourAdapter(DeclarationAnnotationAdapter daa) {
-		return new ConversionDeclarationAnnotationElementAdapter<Integer>(daa, EclipseLinkJPA.TIME_OF_DAY__HOUR, false, NumberIntegerExpressionConverter.instance());
-	}
-
-	private static DeclarationAnnotationElementAdapter<Integer> buildMinuteAdapter(DeclarationAnnotationAdapter daa) {
-		return new ConversionDeclarationAnnotationElementAdapter<Integer>(daa, EclipseLinkJPA.TIME_OF_DAY__MINUTE, false, NumberIntegerExpressionConverter.instance());
-	}
-
-	private static DeclarationAnnotationElementAdapter<Integer> buildSecondAdapter(DeclarationAnnotationAdapter daa) {
-		return new ConversionDeclarationAnnotationElementAdapter<Integer>(daa, EclipseLinkJPA.TIME_OF_DAY__SECOND, false, NumberIntegerExpressionConverter.instance());
-	}
-
-	private static DeclarationAnnotationElementAdapter<Integer> buildMillisecondAdapter(DeclarationAnnotationAdapter daa) {
-		return new ConversionDeclarationAnnotationElementAdapter<Integer>(daa, EclipseLinkJPA.TIME_OF_DAY__MILLISECOND, false, NumberIntegerExpressionConverter.instance());
-	}
-
-}
diff --git a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/resource/java/source/SourceTransformationAnnotation.java b/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/resource/java/source/SourceTransformationAnnotation.java
deleted file mode 100644
index f08676b..0000000
--- a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/resource/java/source/SourceTransformationAnnotation.java
+++ /dev/null
@@ -1,132 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008, 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.eclipselink.core.internal.resource.java.source;
-
-import org.eclipse.jdt.core.dom.CompilationUnit;
-import org.eclipse.jpt.core.internal.resource.java.source.SourceAnnotation;
-import org.eclipse.jpt.core.internal.utility.jdt.BooleanExpressionConverter;
-import org.eclipse.jpt.core.internal.utility.jdt.ConversionDeclarationAnnotationElementAdapter;
-import org.eclipse.jpt.core.internal.utility.jdt.EnumDeclarationAnnotationElementAdapter;
-import org.eclipse.jpt.core.internal.utility.jdt.ShortCircuitAnnotationElementAdapter;
-import org.eclipse.jpt.core.internal.utility.jdt.SimpleDeclarationAnnotationAdapter;
-import org.eclipse.jpt.core.resource.java.FetchType;
-import org.eclipse.jpt.core.resource.java.JavaResourcePersistentAttribute;
-import org.eclipse.jpt.core.utility.TextRange;
-import org.eclipse.jpt.core.utility.jdt.AnnotationElementAdapter;
-import org.eclipse.jpt.core.utility.jdt.Attribute;
-import org.eclipse.jpt.core.utility.jdt.DeclarationAnnotationAdapter;
-import org.eclipse.jpt.core.utility.jdt.DeclarationAnnotationElementAdapter;
-import org.eclipse.jpt.eclipselink.core.resource.java.EclipseLinkJPA;
-import org.eclipse.jpt.eclipselink.core.resource.java.TransformationAnnotation;
-
-/**
- * org.eclipse.persistence.annotations.Transformation
- */
-public final class SourceTransformationAnnotation
-	extends SourceAnnotation<Attribute>
-	implements TransformationAnnotation
-{
-	private static final DeclarationAnnotationAdapter DECLARATION_ANNOTATION_ADAPTER = new SimpleDeclarationAnnotationAdapter(ANNOTATION_NAME);
-
-	private static final DeclarationAnnotationElementAdapter<String> FETCH_ADAPTER = buildFetchAdapter();
-	private final AnnotationElementAdapter<String> fetchAdapter;
-	private FetchType fetch;
-
-	private static final DeclarationAnnotationElementAdapter<Boolean> OPTIONAL_ADAPTER = buildOptionalAdapter();
-	private final AnnotationElementAdapter<Boolean> optionalAdapter;
-	private Boolean optional;
-
-
-	public SourceTransformationAnnotation(JavaResourcePersistentAttribute parent, Attribute attribute) {
-		super(parent, attribute, DECLARATION_ANNOTATION_ADAPTER);
-		this.fetchAdapter = new ShortCircuitAnnotationElementAdapter<String>(attribute, FETCH_ADAPTER);
-		this.optionalAdapter = new ShortCircuitAnnotationElementAdapter<Boolean>(attribute, OPTIONAL_ADAPTER);
-	}
-
-	public String getAnnotationName() {
-		return ANNOTATION_NAME;
-	}
-
-	public void initialize(CompilationUnit astRoot) {
-		this.optional = this.buildOptional(astRoot);
-		this.fetch = this.buildFetch(astRoot);
-	}
-
-	public void update(CompilationUnit astRoot) {
-		this.setOptional(this.buildOptional(astRoot));
-		this.setFetch(this.buildFetch(astRoot));
-	}
-
-	@Override
-	public void toString(StringBuilder sb) {
-		sb.append(this.fetch);
-	}
-
-
-	// ********** TransformationAnnotation implementation **********
-
-	// ***** fetch
-	public FetchType getFetch() {
-		return this.fetch;
-	}
-
-	public void setFetch(FetchType fetch) {
-		if (this.attributeValueHasNotChanged(this.fetch, fetch)) {
-			return;
-		}
-		FetchType old = this.fetch;
-		this.fetch = fetch;
-		this.fetchAdapter.setValue(FetchType.toJavaAnnotationValue(fetch));
-		this.firePropertyChanged(FETCH_PROPERTY, old, fetch);
-	}
-
-	private FetchType buildFetch(CompilationUnit astRoot) {
-		return FetchType.fromJavaAnnotationValue(this.fetchAdapter.getValue(astRoot));
-	}
-
-	public TextRange getFetchTextRange(CompilationUnit astRoot) {
-		return this.getElementTextRange(FETCH_ADAPTER, astRoot);
-	}
-
-	// ***** optional
-	public Boolean getOptional() {
-		return this.optional;
-	}
-
-	public void setOptional(Boolean optional) {
-		if (this.attributeValueHasNotChanged(this.optional, optional)) {
-			return;
-		}
-		Boolean old = this.optional;
-		this.optional = optional;
-		this.optionalAdapter.setValue(optional);
-		this.firePropertyChanged(OPTIONAL_PROPERTY, old, optional);
-	}
-
-	private Boolean buildOptional(CompilationUnit astRoot) {
-		return this.optionalAdapter.getValue(astRoot);
-	}
-
-	public TextRange getOptionalTextRange(CompilationUnit astRoot) {
-		return this.getElementTextRange(OPTIONAL_ADAPTER, astRoot);
-	}
-
-
-	// ********** static methods **********
-
-	private static DeclarationAnnotationElementAdapter<Boolean> buildOptionalAdapter() {
-		return new ConversionDeclarationAnnotationElementAdapter<Boolean>(DECLARATION_ANNOTATION_ADAPTER, EclipseLinkJPA.TRANSFORMATION__OPTIONAL, false, BooleanExpressionConverter.instance());
-	}
-
-	private static DeclarationAnnotationElementAdapter<String> buildFetchAdapter() {
-		return new EnumDeclarationAnnotationElementAdapter(DECLARATION_ANNOTATION_ADAPTER, EclipseLinkJPA.TRANSFORMATION__FETCH, false);
-	}
-
-}
diff --git a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/resource/java/source/SourceTransformerAnnotation.java b/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/resource/java/source/SourceTransformerAnnotation.java
deleted file mode 100644
index b5f6da3..0000000
--- a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/resource/java/source/SourceTransformerAnnotation.java
+++ /dev/null
@@ -1,119 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008, 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.eclipselink.core.internal.resource.java.source;
-
-import org.eclipse.jdt.core.dom.CompilationUnit;
-import org.eclipse.jpt.core.internal.resource.java.source.SourceAnnotation;
-import org.eclipse.jpt.core.internal.utility.jdt.ConversionDeclarationAnnotationElementAdapter;
-import org.eclipse.jpt.core.internal.utility.jdt.ShortCircuitAnnotationElementAdapter;
-import org.eclipse.jpt.core.internal.utility.jdt.SimpleTypeStringExpressionConverter;
-import org.eclipse.jpt.core.resource.java.JavaResourcePersistentAttribute;
-import org.eclipse.jpt.core.utility.TextRange;
-import org.eclipse.jpt.core.utility.jdt.AnnotationElementAdapter;
-import org.eclipse.jpt.core.utility.jdt.Attribute;
-import org.eclipse.jpt.core.utility.jdt.DeclarationAnnotationAdapter;
-import org.eclipse.jpt.core.utility.jdt.DeclarationAnnotationElementAdapter;
-import org.eclipse.jpt.eclipselink.core.resource.java.TransformerAnnotation;
-
-/**
- * org.eclipse.persistence.annotations.ReadTransformer
- * org.eclipse.persistence.annotations.WriteTransformer
- */
-abstract class SourceTransformerAnnotation
-	extends SourceAnnotation<Attribute>
-	implements TransformerAnnotation
-{
-	final DeclarationAnnotationElementAdapter<String> transformerClassDeclarationAdapter;
-	final AnnotationElementAdapter<String> transformerClassAdapter;
-	String transformerClass;
-
-	final DeclarationAnnotationElementAdapter<String> methodDeclarationAdapter;
-	final AnnotationElementAdapter<String> methodAdapter;
-	String method;
-
-
-	SourceTransformerAnnotation(JavaResourcePersistentAttribute parent, Attribute attribute, DeclarationAnnotationAdapter daa) {
-		super(parent, attribute, daa);
-		this.transformerClassDeclarationAdapter = new ConversionDeclarationAnnotationElementAdapter<String>(daa, this.getTransformerClassElementName(), false, SimpleTypeStringExpressionConverter.instance());
-		this.transformerClassAdapter = new ShortCircuitAnnotationElementAdapter<String>(attribute, this.transformerClassDeclarationAdapter);
-
-		this.methodDeclarationAdapter = ConversionDeclarationAnnotationElementAdapter.forStrings(daa, this.getMethodElementName(), false);
-		this.methodAdapter = new ShortCircuitAnnotationElementAdapter<String>(attribute, this.methodDeclarationAdapter);
-	}
-
-	public void initialize(CompilationUnit astRoot) {
-		this.transformerClass = this.buildTransformerClass(astRoot);
-		this.method = this.buildMethod(astRoot);
-	}
-
-	public void update(CompilationUnit astRoot) {
-		this.setTransformerClass(this.buildTransformerClass(astRoot));
-		this.setMethod(this.buildMethod(astRoot));
-	}
-
-	@Override
-	public void toString(StringBuilder sb) {
-		sb.append(this.transformerClass);
-	}
-
-
-	// ********** TransformerAnnotation implementation **********
-
-	// ***** transformer class
-	public String getTransformerClass() {
-		return this.transformerClass;
-	}
-
-	public void setTransformerClass(String transformerClass) {
-		if (this.attributeValueHasNotChanged(this.transformerClass, transformerClass)) {
-			return;
-		}
-		String old = this.transformerClass;
-		this.transformerClass = transformerClass;
-		this.transformerClassAdapter.setValue(transformerClass);
-		this.firePropertyChanged(TRANSFORMER_CLASS_PROPERTY, old, transformerClass);
-	}
-
-	private String buildTransformerClass(CompilationUnit astRoot) {
-		return this.transformerClassAdapter.getValue(astRoot);
-	}
-
-	public TextRange getTransformerClassTextRange(CompilationUnit astRoot) {
-		return this.getElementTextRange(this.transformerClassDeclarationAdapter, astRoot);
-	}
-
-	abstract String getTransformerClassElementName();
-
-	// ***** method
-	public String getMethod() {
-		return this.method;
-	}
-
-	public void setMethod(String method) {
-		if (this.attributeValueHasNotChanged(this.method, method)) {
-			return;
-		}
-		String old = this.method;
-		this.method = method;
-		this.methodAdapter.setValue(method);
-		this.firePropertyChanged(METHOD_PROPERTY, old, method);
-	}
-
-	private String buildMethod(CompilationUnit astRoot) {
-		return this.methodAdapter.getValue(astRoot);
-	}
-
-	public TextRange getMethodTextRange(CompilationUnit astRoot) {
-		return this.getElementTextRange(this.methodDeclarationAdapter, astRoot);
-	}
-
-	abstract String getMethodElementName();
-
-}
diff --git a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/resource/java/source/SourceTypeConverterAnnotation.java b/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/resource/java/source/SourceTypeConverterAnnotation.java
deleted file mode 100644
index 9913741..0000000
--- a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/resource/java/source/SourceTypeConverterAnnotation.java
+++ /dev/null
@@ -1,58 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008, 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.eclipselink.core.internal.resource.java.source;
-
-import org.eclipse.jpt.core.internal.utility.jdt.SimpleDeclarationAnnotationAdapter;
-import org.eclipse.jpt.core.resource.java.JavaResourcePersistentMember;
-import org.eclipse.jpt.core.utility.jdt.DeclarationAnnotationAdapter;
-import org.eclipse.jpt.core.utility.jdt.Member;
-import org.eclipse.jpt.eclipselink.core.resource.java.EclipseLinkJPA;
-import org.eclipse.jpt.eclipselink.core.resource.java.TypeConverterAnnotation;
-
-/**
- * org.eclipse.persistence.annotations.TypeConverter
- */
-public final class SourceTypeConverterAnnotation
-	extends SourceBaseTypeConverterAnnotation
-	implements TypeConverterAnnotation
-{
-	private static final DeclarationAnnotationAdapter DECLARATION_ANNOTATION_ADAPTER = new SimpleDeclarationAnnotationAdapter(ANNOTATION_NAME);
-
-
-	public SourceTypeConverterAnnotation(JavaResourcePersistentMember parent, Member member) {
-		super(parent, member, DECLARATION_ANNOTATION_ADAPTER);
-	}
-
-	public String getAnnotationName() {
-		return ANNOTATION_NAME;
-	}
-
-
-	// ********** SourceNamedConverterAnnotation implementation **********
-
-	@Override
-	String getNameElementName() {
-		return EclipseLinkJPA.TYPE_CONVERTER__NAME;
-	}
-
-
-	// ********** SourceBaseTypeConverterAnnotation implementation **********
-
-	@Override
-	String getDataTypeElementName() {
-		return EclipseLinkJPA.TYPE_CONVERTER__DATA_TYPE;
-	}
-
-	@Override
-	String getObjectTypeElementName() {
-		return EclipseLinkJPA.TYPE_CONVERTER__OBJECT_TYPE;
-	}
-
-}
diff --git a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/resource/java/source/SourceVariableOneToOneAnnotation.java b/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/resource/java/source/SourceVariableOneToOneAnnotation.java
deleted file mode 100644
index a539a43..0000000
--- a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/resource/java/source/SourceVariableOneToOneAnnotation.java
+++ /dev/null
@@ -1,46 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.eclipselink.core.internal.resource.java.source;
-
-import org.eclipse.jdt.core.dom.CompilationUnit;
-import org.eclipse.jpt.core.internal.resource.java.source.SourceAnnotation;
-import org.eclipse.jpt.core.internal.utility.jdt.SimpleDeclarationAnnotationAdapter;
-import org.eclipse.jpt.core.resource.java.JavaResourcePersistentAttribute;
-import org.eclipse.jpt.core.utility.jdt.Attribute;
-import org.eclipse.jpt.core.utility.jdt.DeclarationAnnotationAdapter;
-import org.eclipse.jpt.eclipselink.core.resource.java.VariableOneToOneAnnotation;
-
-/**
- * org.eclipse.persistence.annotations.VariableOneToOne
- */
-public final class SourceVariableOneToOneAnnotation
-	extends SourceAnnotation<Attribute>
-	implements VariableOneToOneAnnotation
-{
-	private static final DeclarationAnnotationAdapter DECLARATION_ANNOTATION_ADAPTER = new SimpleDeclarationAnnotationAdapter(ANNOTATION_NAME);
-
-
-	public SourceVariableOneToOneAnnotation(JavaResourcePersistentAttribute parent, Attribute attribute) {
-		super(parent, attribute, DECLARATION_ANNOTATION_ADAPTER);
-	}
-
-	public String getAnnotationName() {
-		return ANNOTATION_NAME;
-	}
-
-	public void initialize(CompilationUnit astRoot) {
-		// nothing to initialize
-	}
-
-	public void update(CompilationUnit astRoot) {
-		// nothing to update
-	}
-
-}
diff --git a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/resource/java/source/SourceWriteTransformerAnnotation.java b/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/resource/java/source/SourceWriteTransformerAnnotation.java
deleted file mode 100644
index 59ba8b9..0000000
--- a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/resource/java/source/SourceWriteTransformerAnnotation.java
+++ /dev/null
@@ -1,137 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008, 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.eclipselink.core.internal.resource.java.source;
-
-import org.eclipse.jdt.core.dom.CompilationUnit;
-import org.eclipse.jpt.core.internal.resource.java.source.SourceColumnAnnotation;
-import org.eclipse.jpt.core.internal.utility.jdt.MemberAnnotationAdapter;
-import org.eclipse.jpt.core.internal.utility.jdt.NestedDeclarationAnnotationAdapter;
-import org.eclipse.jpt.core.internal.utility.jdt.SimpleDeclarationAnnotationAdapter;
-import org.eclipse.jpt.core.resource.java.ColumnAnnotation;
-import org.eclipse.jpt.core.resource.java.JPA;
-import org.eclipse.jpt.core.resource.java.JavaResourceNode;
-import org.eclipse.jpt.core.resource.java.JavaResourcePersistentAttribute;
-import org.eclipse.jpt.core.utility.TextRange;
-import org.eclipse.jpt.core.utility.jdt.Attribute;
-import org.eclipse.jpt.core.utility.jdt.DeclarationAnnotationAdapter;
-import org.eclipse.jpt.core.utility.jdt.Member;
-import org.eclipse.jpt.eclipselink.core.internal.resource.java.NullWriteTransformerColumnAnnotation;
-import org.eclipse.jpt.eclipselink.core.resource.java.EclipseLinkJPA;
-import org.eclipse.jpt.eclipselink.core.resource.java.WriteTransformerAnnotation;
-
-/**
- * org.eclipse.persistence.annotations.WriteTransformer
- */
-public final class SourceWriteTransformerAnnotation
-	extends SourceTransformerAnnotation
-	implements WriteTransformerAnnotation
-{
-	private static final DeclarationAnnotationAdapter DECLARATION_ANNOTATION_ADAPTER = new SimpleDeclarationAnnotationAdapter(ANNOTATION_NAME);
-
-	private final MemberAnnotationAdapter columnAdapter;
-	private ColumnAnnotation column;
-
-
-	public SourceWriteTransformerAnnotation(JavaResourcePersistentAttribute parent, Attribute attribute) {
-		super(parent, attribute, DECLARATION_ANNOTATION_ADAPTER);
-		this.columnAdapter = new MemberAnnotationAdapter(this.member, buildColumnAnnotationAdapter(this.daa));
-	}
-
-	public String getAnnotationName() {
-		return ANNOTATION_NAME;
-	}
-
-	@Override
-	public void initialize(CompilationUnit astRoot) {
-		super.initialize(astRoot);
-		if (this.columnAdapter.getAnnotation(astRoot) != null) {
-			this.column = createColumn(this, this.member, this.daa);
-			this.column.initialize(astRoot);
-		}
-	}
-
-	@Override
-	public void update(CompilationUnit astRoot) {
-		super.update(astRoot);
-		if (this.columnAdapter.getAnnotation(astRoot) == null) {
-			this.setColumn(null);
-		} else {
-			if (this.column == null) {
-				ColumnAnnotation col = createColumn(this, this.member, this.daa);
-				col.initialize(astRoot);
-				this.setColumn(col);
-			} else {
-				this.column.update(astRoot);
-			}
-		}
-	}
-
-
-	// ********** SourceTransformerAnnotation implementation **********
-
-	@Override
-	String getTransformerClassElementName() {
-		return EclipseLinkJPA.WRITE_TRANSFORMER__TRANSFORMER_CLASS;
-	}
-
-	@Override
-	String getMethodElementName() {
-		return EclipseLinkJPA.WRITE_TRANSFORMER__METHOD;
-	}
-
-
-	// ********** WriteTransformerAnnotation implementation **********
-
-	// ***** column
-	public ColumnAnnotation getColumn() {
-		return this.column;
-	}
-
-	public ColumnAnnotation getNonNullColumn() {
-		return (this.column != null) ? this.column : new NullWriteTransformerColumnAnnotation(this);
-	}
-
-	public ColumnAnnotation addColumn() {
-		ColumnAnnotation col = createColumn(this, this.member, this.daa);
-		col.newAnnotation();
-		this.setColumn(col);
-		return col;
-	}
-
-	public void removeColumn() {
-		this.column.removeAnnotation();
-		this.setColumn(null);
-	}
-
-	private void setColumn(ColumnAnnotation newColumn) {
-		ColumnAnnotation old = this.column;
-		this.column = newColumn;
-		this.firePropertyChanged(COLUMN_PROPERTY, old, newColumn);
-	}
-
-	public TextRange getColumnTextRange(CompilationUnit astRoot) {
-		if (this.column != null) {
-			return this.column.getTextRange(astRoot);
-		}
-		return getTextRange(astRoot);
-	}
-
-
-	// ********** static methods **********
-
-	private static DeclarationAnnotationAdapter buildColumnAnnotationAdapter(DeclarationAnnotationAdapter writeTransformerAnnotationAdapter) {
-		return new NestedDeclarationAnnotationAdapter(writeTransformerAnnotationAdapter, EclipseLinkJPA.WRITE_TRANSFORMER__COLUMN, JPA.COLUMN, false);
-	}
-
-	private static ColumnAnnotation createColumn(JavaResourceNode parent, Member member, DeclarationAnnotationAdapter writeTransformerAnnotationAdapter) {
-		return new SourceColumnAnnotation(parent, member, buildColumnAnnotationAdapter(writeTransformerAnnotationAdapter));
-	}
-
-}
diff --git a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/resource/orm/EclipseLink1_1OrmXmlResourceProvider.java b/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/resource/orm/EclipseLink1_1OrmXmlResourceProvider.java
deleted file mode 100644
index 6d8851b..0000000
--- a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/resource/orm/EclipseLink1_1OrmXmlResourceProvider.java
+++ /dev/null
@@ -1,72 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- *******************************************************************************/
-package org.eclipse.jpt.eclipselink.core.internal.resource.orm;
-
-import org.eclipse.core.resources.IFile;
-import org.eclipse.core.resources.IProject;
-import org.eclipse.core.runtime.IPath;
-import org.eclipse.core.runtime.Path;
-import org.eclipse.jpt.core.JptCorePlugin;
-import org.eclipse.jpt.core.resource.AbstractXmlResourceProvider;
-import org.eclipse.jpt.core.resource.orm.XmlEntityMappings;
-import org.eclipse.jpt.eclipselink.core.internal.EclipseLinkConstants;
-import org.eclipse.jpt.eclipselink.core.internal.JptEclipseLinkCorePlugin;
-import org.eclipse.jpt.eclipselink1_1.core.resource.orm.EclipseLink1_1OrmFactory;
-
-public class EclipseLink1_1OrmXmlResourceProvider
-	extends AbstractXmlResourceProvider
-{
-	/**
-	 * (Convenience method) Returns an EclipseLink ORM resource model provider for 
-	 * the given file.
-	 */
-	public static EclipseLink1_1OrmXmlResourceProvider getXmlResourceProvider(IFile file) {
-		return getXmlResourceProvider_(file.getProject(), file.getFullPath().toString());
-	}
-	
-	/**
-	 * (Convenience method) Returns an EclipseLink ORM resource model provider for
-	 * the given project in the specified deploy location
-	 */
-	public static EclipseLink1_1OrmXmlResourceProvider getXmlResourceProvider(IProject project, String deployLocation) {
-		return getXmlResourceProvider_(project, JptCorePlugin.getDeploymentURI(project, deployLocation));
-		
-	}
-	
-	/**
-	 * (Convenience method) Returns an EclipseLink ORM resource model provider for 
-	 * the given project in the default deploy location
-	 */
-	public static EclipseLink1_1OrmXmlResourceProvider getDefaultXmlResourceProvider(IProject project) {
-		return getXmlResourceProvider(project, JptEclipseLinkCorePlugin.DEFAULT_ECLIPSELINK_ORM_XML_FILE_PATH);
-	}
-	
-	private static EclipseLink1_1OrmXmlResourceProvider getXmlResourceProvider_(IProject project, String location) {
-		return new EclipseLink1_1OrmXmlResourceProvider(project, new Path(location));
-	}
-	
-	
-	public EclipseLink1_1OrmXmlResourceProvider(IProject project) {
-		this(project, new Path(JptEclipseLinkCorePlugin.DEFAULT_ECLIPSELINK_ORM_XML_FILE_PATH));
-	}
-	
-	public EclipseLink1_1OrmXmlResourceProvider(IProject project, IPath filePath) {
-		super(project, filePath, JptEclipseLinkCorePlugin.ECLIPSELINK1_1_ORM_XML_CONTENT_TYPE);
-	}
-	
-
-	@Override
-	protected void populateRoot() {
-		XmlEntityMappings entityMappings = EclipseLink1_1OrmFactory.eINSTANCE.createXmlEntityMappings();
-		entityMappings.setVersion(EclipseLinkConstants.VERSION_1_1_TEXT);
-		getResourceContents().add(entityMappings);
-	}
-	
-}
diff --git a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/resource/orm/EclipseLinkOrmXmlResourceProvider.java b/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/resource/orm/EclipseLinkOrmXmlResourceProvider.java
deleted file mode 100644
index 10aa5d8..0000000
--- a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/resource/orm/EclipseLinkOrmXmlResourceProvider.java
+++ /dev/null
@@ -1,70 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008, 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- *******************************************************************************/
-package org.eclipse.jpt.eclipselink.core.internal.resource.orm;
-
-import org.eclipse.core.resources.IFile;
-import org.eclipse.core.resources.IProject;
-import org.eclipse.core.runtime.IPath;
-import org.eclipse.core.runtime.Path;
-import org.eclipse.jpt.core.JptCorePlugin;
-import org.eclipse.jpt.core.resource.AbstractXmlResourceProvider;
-import org.eclipse.jpt.core.resource.orm.XmlEntityMappings;
-import org.eclipse.jpt.eclipselink.core.internal.EclipseLinkConstants;
-import org.eclipse.jpt.eclipselink.core.internal.JptEclipseLinkCorePlugin;
-import org.eclipse.jpt.eclipselink.core.resource.orm.EclipseLinkOrmFactory;
-
-public class EclipseLinkOrmXmlResourceProvider
-	extends AbstractXmlResourceProvider
-{
-	/**
-	 * (Convenience method) Returns an EclipseLink ORM resource model provider for 
-	 * the given file.
-	 */
-	public static EclipseLinkOrmXmlResourceProvider getXmlResourceProvider(IFile file) {
-		return getXmlResourceProvider_(file.getProject(), file.getFullPath().toString());
-	}
-	
-	/**
-	 * (Convenience method) Returns an EclipseLink ORM resource model provider for
-	 * the given project in the specified deploy location
-	 */
-	public static EclipseLinkOrmXmlResourceProvider getXmlResourceProvider(IProject project, String deployLocation) {
-		return getXmlResourceProvider_(project, JptCorePlugin.getDeploymentURI(project, deployLocation));
-		
-	}
-	
-	/**
-	 * (Convenience method) Returns an EclipseLink ORM resource model provider for 
-	 * the given project in the default deploy location
-	 */
-	public static EclipseLinkOrmXmlResourceProvider getDefaultXmlResourceProvider(IProject project) {
-		return getXmlResourceProvider(project, JptEclipseLinkCorePlugin.DEFAULT_ECLIPSELINK_ORM_XML_FILE_PATH);
-	}
-	
-	private static EclipseLinkOrmXmlResourceProvider getXmlResourceProvider_(IProject project, String location) {
-		return new EclipseLinkOrmXmlResourceProvider(project, new Path(location));
-	}
-	
-	
-	public EclipseLinkOrmXmlResourceProvider(IProject project) {
-		this(project, new Path(JptEclipseLinkCorePlugin.DEFAULT_ECLIPSELINK_ORM_XML_FILE_PATH));
-	}
-	
-	public EclipseLinkOrmXmlResourceProvider(IProject project, IPath filePath) {
-		super(project, filePath, JptEclipseLinkCorePlugin.ECLIPSELINK_ORM_XML_CONTENT_TYPE);
-	}
-	
-	@Override
-	protected void populateRoot() {
-		XmlEntityMappings entityMappings = EclipseLinkOrmFactory.eINSTANCE.createXmlEntityMappings();
-		entityMappings.setVersion(EclipseLinkConstants.VERSION_1_0_TEXT);
-		getResourceContents().add(entityMappings);
-	}
-}
diff --git a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/resource/orm/XMLRootElementContentDescriber2.java b/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/resource/orm/XMLRootElementContentDescriber2.java
deleted file mode 100644
index c4d468e..0000000
--- a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/resource/orm/XMLRootElementContentDescriber2.java
+++ /dev/null
@@ -1,260 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     Jesper Steen Moeller - added namespace support
- *******************************************************************************/
-package org.eclipse.jpt.eclipselink.core.internal.resource.orm;
-
-import java.io.IOException;
-import java.io.InputStream;
-import java.io.Reader;
-import java.util.ArrayList;
-import java.util.Hashtable;
-import java.util.Iterator;
-import java.util.LinkedList;
-import java.util.List;
-import javax.xml.parsers.ParserConfigurationException;
-import org.eclipse.core.internal.content.ContentMessages;
-import org.eclipse.core.internal.runtime.RuntimeLog;
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.IConfigurationElement;
-import org.eclipse.core.runtime.IExecutableExtension;
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.core.runtime.Status;
-import org.eclipse.core.runtime.content.IContentDescription;
-import org.eclipse.core.runtime.content.XMLContentDescriber;
-import org.eclipse.osgi.util.NLS;
-import org.xml.sax.InputSource;
-import org.xml.sax.SAXException;
-
-//TODO bug 263976 - copied from org.eclipse.core.runtime.content.XMLRootElementContentDescriber2
-/**
- * A content describer for detecting the name of the top-level element, 
- * its namespace and the DTD system identifier in an XML file.
- * <p>
- * This executable extension supports "element" parameter, that 
- * can be specified more than once. If the
- * <code>":-"</code> method is used, then the value is treated as
- * "element" (always just one)
- * </p>
- * <p>
- * The value of "element" is specified using such a format
- * <code>{namespace}name/dtd:version</code>. The namespace or dtd part  
- * can be omitted and accepted are values like <code>name/dtd</code>,
- * <code>{ns}name</code> and <code>name</code>.
- * </p>
- * <p>
- * The describer will detect a document, if it matches at least one "element"
- * what means, that dtd, namespace (if specified) and name in "element"
- * match those in the document.
- * </p>
- * <p>
- * If the "element" name part is "*", e.g. <code>{namespace}*</code>, 
- * it denotes a wildcard match. If the "element" namespace part is empty, 
- * e.g. <code>{}name</code>, only these documents with the root element 
- * that belong to the unnamed namespace <code><elem xmlns=""></code> 
- * will be detected.
- * </p>
- * <p>
- * This class should be used instead of {@link XMLRootElementContentDescriber}
- * which doesn't detect namespaces and doesn't allow to specify 
- * more than one set of dtds, root element names and namespaces which 
- * should be detected.
- * </p>
- * <p>
- * This class is not intended to be subclassed or instantiated by clients, 
- * only to be referenced by the "describer" configuration element in
- * extensions to the <code>org.eclipse.core.runtime.contentTypes</code>
- * extension point.
- * </p>
- * 
- * @since org.eclipse.core.contenttype 3.3
- */
-public final class XMLRootElementContentDescriber2 extends XMLContentDescriber implements IExecutableExtension {
-	private static final String ELEMENT_TO_FIND = "element"; //$NON-NLS-1$
-	
-	/* (Intentionally not included in javadoc)
-	 * The top-level elements we are looking for. This value will be initialized
-	 * by the <code>setInitializationData</code> method. If no value is
-	 * provided, then this means that we don't care what the top-level element
-	 * will be. The list is a collection of <code>QualifiedElement</code>. 
-	 */
-	private QualifiedElement[] elementsToFind = null;
-
-	/* (Intentionally not included in javadoc)
-	 * Simple value holder for root element name, its namespace and dtd.
-	 */
-	 private class QualifiedElement {
-		private String namespace;
-		private String element;
-		private String dtd;
-		private String version;
-		
-		public QualifiedElement(String namespace, String element, String dtd, String version) {
-			this.namespace = namespace;
-			this.element = element;
-			this.dtd = dtd;
-			this.version = version;
-		}
-
-		public QualifiedElement(String qualifiedElement) {
-			// Extract namespace part
-			int openBrace = qualifiedElement.indexOf('{');
-			int closeBrace = qualifiedElement.indexOf('}');
-			if (openBrace == 0 && closeBrace >=1 ) {
-				namespace = qualifiedElement.substring(1, closeBrace);
-				qualifiedElement = qualifiedElement.substring(closeBrace+1);
-			}
-			// Extract dtd part
-			int dtdSlash = qualifiedElement.indexOf('/');
-			if (dtdSlash > 0) {
-				dtd = qualifiedElement.substring(dtdSlash+1);
-				qualifiedElement = qualifiedElement.substring(0, dtdSlash);
-			}
-			// Extract version part
-			int versionSlash = qualifiedElement.indexOf(':');
-			if (versionSlash > 0) {
-				version = qualifiedElement.substring(versionSlash + 1);
-				qualifiedElement = qualifiedElement.substring(0, versionSlash);
-			}
-			
-			// Check if the name is a wildcard
-			element = ("*".equals(qualifiedElement) ? null : qualifiedElement);
-		}
-
-		public String getNamespace() {
-			return namespace;
-		}
-		
-		public String getElement() {
-			return element;
-		}
-		public String getDTD() {
-			return dtd;
-		}
-		
-		public String getVersion() {
-			return version;
-		}
-		
-		public boolean matches(String someNamespace, String someElement, String someDtd, String someVersion) {
-			boolean nsMatch = this.namespace != null ? this.namespace.equals(someNamespace) : true;
-			boolean elementEquals = this.element != null ? this.element.equals(someElement) : true;
-			boolean dtdEquals = this.dtd != null ? this.dtd.equals(someDtd) : true;
-			boolean versionEquals = this.version != null ? this.version.equals(someVersion) : true;
-			return nsMatch && elementEquals && dtdEquals && versionEquals;
-		}
-	}
-	
-	/* (Intentionally not included in javadoc)
-	 * Determines the validation status for the given contents.
-	 * 
-	 * @param contents the contents to be evaluated
-	 * @return one of the following:<ul>
-	 * <li><code>VALID</code></li>,
-	 * <li><code>INVALID</code></li>,
-	 * <li><code>INDETERMINATE</code></li>
-	 * </ul>
-	 * @throws IOException
-	 */
-	private int checkCriteria(InputSource contents) throws IOException {
-		XMLRootHandler xmlHandler = new XMLRootHandler(elementsToFind != null);
-		try {
-			if (!xmlHandler.parseContents(contents))
-				return INDETERMINATE;
-		} catch (SAXException e) {
-			// we may be handed any kind of contents... it is normal we fail to parse
-			return INDETERMINATE;
-		} catch (ParserConfigurationException e) {
-			// some bad thing happened - force this describer to be disabled
-			String message = ContentMessages.content_parserConfiguration;
-			RuntimeLog.log(new Status(IStatus.ERROR, ContentMessages.OWNER_NAME, 0, message, e));
-			throw new RuntimeException(message);
-		}
-		// Check to see if we matched our criteria.
-		if (elementsToFind != null) {
-			boolean foundOne = false;
-			for (int i = 0; i < elementsToFind.length && !foundOne; ++i) {
-				foundOne |= elementsToFind[i].matches(xmlHandler.getRootNamespace(), xmlHandler.getRootName(), xmlHandler.getDTD(), xmlHandler.getVersion());
-			}
-			if (!foundOne)
-				return INDETERMINATE;
-		}
-		// We must be okay then.		
-		return VALID;
-	}
-
-	/* (Intentionally not included in javadoc)
-	 * @see IContentDescriber#describe(InputStream, IContentDescription)
-	 */
-	@Override
-	public int describe(InputStream contents, IContentDescription description) throws IOException {
-		// call the basic XML describer to do basic recognition
-		if (super.describe(contents, description) == INVALID)
-			return INVALID;
-		// super.describe will have consumed some chars, need to rewind		
-		contents.reset();
-		// Check to see if we matched our criteria.		
-		return checkCriteria(new InputSource(contents));
-	}
-
-	/* (Intentionally not included in javadoc)
-	 * @see IContentDescriber#describe(Reader, IContentDescription)
-	 */
-	@Override
-	public int describe(Reader contents, IContentDescription description) throws IOException {
-		// call the basic XML describer to do basic recognition
-		if (super.describe(contents, description) == INVALID)
-			return INVALID;
-		// super.describe will have consumed some chars, need to rewind
-		contents.reset();
-		// Check to see if we matched our criteria.
-		return checkCriteria(new InputSource(contents));
-	}
-
-	/* (Intentionally not included in javadoc)
-	 * @see IExecutableExtension#setInitializationData
-	 */
-	public void setInitializationData(final IConfigurationElement config, final String propertyName, final Object data) throws CoreException {
-		if (data instanceof String)
-			elementsToFind = new QualifiedElement[] {new QualifiedElement((String) data)};
-		else if (data instanceof Hashtable) {
-			List elements = null;
-
-			// the describer parameters have to be read again, because "element" parameter can be specified multiple times 
-			// and the given hashtable carries only one of them
-			IConfigurationElement describerElement = config.getChildren("describer")[0]; //$NON-NLS-1$
-			IConfigurationElement[] params = describerElement.getChildren("parameter"); //$NON-NLS-1$
-			String pname = null;
-			for (int i = 0; i < params.length; i++) {
-				pname = params[i].getAttribute("name"); //$NON-NLS-1$
-				if (ELEMENT_TO_FIND.equals(pname)) {
-					if (elements == null)
-						elements = new LinkedList();
-					elements.add(new QualifiedElement(params[i].getAttribute("value"))); //$NON-NLS-1$
-				}
-			}
-
-			List qualifiedElements = new ArrayList();
-
-			// create list of qualified elements
-			if (elements != null) {
-				for (Iterator it = elements.iterator(); it.hasNext();) {
-					qualifiedElements.add(it.next());
-				}
-			}
-			elementsToFind = (QualifiedElement[]) qualifiedElements.toArray(new QualifiedElement[qualifiedElements.size()]);
-		}
-
-		if (elementsToFind.length == 0) {
-			String message = NLS.bind(ContentMessages.content_badInitializationData, XMLRootElementContentDescriber2.class.getName());
-			throw new CoreException(new Status(IStatus.ERROR, ContentMessages.OWNER_NAME, 0, message, null));
-		}
-	}
-}
diff --git a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/resource/orm/XMLRootHandler.java b/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/resource/orm/XMLRootHandler.java
deleted file mode 100644
index 8dc9709..0000000
--- a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/resource/orm/XMLRootHandler.java
+++ /dev/null
@@ -1,252 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.jpt.eclipselink.core.internal.resource.orm;
-
-import java.io.IOException;
-import java.io.StringReader;
-import javax.xml.parsers.ParserConfigurationException;
-import javax.xml.parsers.SAXParser;
-import javax.xml.parsers.SAXParserFactory;
-import org.eclipse.core.internal.content.Activator;
-import org.xml.sax.Attributes;
-import org.xml.sax.InputSource;
-import org.xml.sax.SAXException;
-import org.xml.sax.SAXNotRecognizedException;
-import org.xml.sax.SAXNotSupportedException;
-import org.xml.sax.XMLReader;
-import org.xml.sax.ext.LexicalHandler;
-import org.xml.sax.helpers.DefaultHandler;
-
-//TODO bug 263976 - copied from org.eclipse.core.internal.content.XMLRootHandler
-/**
- * A content describer for detecting the name of the top-level element of the
- * DTD system identifier in an XML file. This supports two parameters:
- * <code>DTD_TO_FIND</code> and <code>ELEMENT_TO_FIND</code>. This is done
- * using the <code>IExecutableExtension</code> mechanism. If the
- * <code>":-"</code> method is used, then the value is treated as the
- * <code>ELEMENT_TO_FIND</code>.
- * 
- * @since 3.0
- */
-public final class XMLRootHandler extends DefaultHandler implements LexicalHandler {
-	/**
-	 * An exception indicating that the parsing should stop. This is usually
-	 * triggered when the top-level element has been found.
-	 * 
-	 * @since 3.0
-	 */
-	private class StopParsingException extends SAXException {
-		/**
-		 * All serializable objects should have a stable serialVersionUID
-		 */
-		private static final long serialVersionUID = 1L;
-
-		/**
-		 * Constructs an instance of <code>StopParsingException</code> with a
-		 * <code>null</code> detail message.
-		 */
-		public StopParsingException() {
-			super((String) null);
-		}
-	}
-
-	/**
-	 * Should we check the root element?
-	 */
-	private boolean checkRoot;
-	/**
-	 * The system identifier for the DTD that was found while parsing the XML.
-	 * This member variable is <code>null</code> unless the file has been
-	 * parsed successful to the point of finding the DTD's system identifier.
-	 */
-	private String dtdFound = null;
-	/**
-	 * This is the name of the top-level element found in the XML file. This
-	 * member variable is <code>null</code> unless the file has been parsed
-	 * successful to the point of finding the top-level element.
-	 */
-	private String elementFound = null;
-
-	/**
-	 * This is the namespace of the top-level element found in the XML file. This
-	 * member variable is <code>null</code> unless the file has been parsed
-	 * successful to the point of finding the top-level element.
-	 */
-	private String namespaceFound = null;
-	
-	private String versionFound = null;
-	
-	public XMLRootHandler(boolean checkRoot) {
-		this.checkRoot = checkRoot;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.xml.sax.ext.LexicalHandler#comment(char[], int, int)
-	 */
-	public final void comment(final char[] ch, final int start, final int length) {
-		// Not interested.
-	}
-
-	/**
-	 * Creates a new SAX parser for use within this instance.
-	 * 
-	 * @return The newly created parser.
-	 * 
-	 * @throws ParserConfigurationException
-	 *             If a parser of the given configuration cannot be created.
-	 * @throws SAXException
-	 *             If something in general goes wrong when creating the parser.
-	 * @throws SAXNotRecognizedException
-	 *             If the <code>XMLReader</code> does not recognize the
-	 *             lexical handler configuration option.
-	 * @throws SAXNotSupportedException
-	 *             If the <code>XMLReader</code> does not support the lexical
-	 *             handler configuration option.
-	 */
-	private final SAXParser createParser(SAXParserFactory parserFactory) throws ParserConfigurationException, SAXException, SAXNotRecognizedException, SAXNotSupportedException {
-		// Initialize the parser.
-		final SAXParser parser = parserFactory.newSAXParser();
-		final XMLReader reader = parser.getXMLReader();
-		reader.setProperty("http://xml.org/sax/properties/lexical-handler", this); //$NON-NLS-1$
-		// disable DTD validation (bug 63625)
-		try {
-			//	be sure validation is "off" or the feature to ignore DTD's will not apply
-			reader.setFeature("http://xml.org/sax/features/validation", false); //$NON-NLS-1$
-			reader.setFeature("http://apache.org/xml/features/nonvalidating/load-external-dtd", false); //$NON-NLS-1$
-		} catch (SAXNotRecognizedException e) {
-			// not a big deal if the parser does not recognize the features
-		} catch (SAXNotSupportedException e) {
-			// not a big deal if the parser does not support the features
-		}
-		return parser;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.xml.sax.ext.LexicalHandler#endCDATA()
-	 */
-	public final void endCDATA() {
-		// Not interested.
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.xml.sax.ext.LexicalHandler#endDTD()
-	 */
-	public final void endDTD() {
-		// Not interested.
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.xml.sax.ext.LexicalHandler#endEntity(java.lang.String)
-	 */
-	public final void endEntity(final String name) {
-		// Not interested.
-	}
-
-	public String getDTD() {
-		return dtdFound;
-	}
-
-	public String getRootName() {
-		return elementFound;
-	}
-
-	/**
-	 * @since org.eclipse.core.contenttype 3.3
-	 */
-	public String getRootNamespace() {
-		return namespaceFound;
-	}
-
-	public String getVersion() {
-		return this.versionFound;
-	}
-	
-	public boolean parseContents(InputSource contents) throws IOException, ParserConfigurationException, SAXException {
-		// Parse the file into we have what we need (or an error occurs).
-		try {
-			SAXParserFactory factory = Activator.getDefault().getFactory();
-			if (factory == null)
-				return false;
-			final SAXParser parser = createParser(factory);
-			// to support external entities specified as relative URIs (see bug 63298)
-			contents.setSystemId("/"); //$NON-NLS-1$
-			parser.parse(contents, this);
-		} catch (StopParsingException e) {
-			// Abort the parsing normally. Fall through...
-		}
-		return true;
-	}
-
-	/*
-	 * Resolve external entity definitions to an empty string.  This is to speed
-	 * up processing of files with external DTDs.  Not resolving the contents 
-	 * of the DTD is ok, as only the System ID of the DTD declaration is used.
-	 * @see org.xml.sax.helpers.DefaultHandler#resolveEntity(java.lang.String, java.lang.String)
-	 */
-	@Override
-	public InputSource resolveEntity(String publicId, String systemId) throws SAXException {
-		return new InputSource(new StringReader("")); //$NON-NLS-1$
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.xml.sax.ext.LexicalHandler#startCDATA()
-	 */
-	public final void startCDATA() {
-		// Not interested.
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.xml.sax.ext.LexicalHandler#startDTD(java.lang.String,
-	 *      java.lang.String, java.lang.String)
-	 */
-	public final void startDTD(final String name, final String publicId, final String systemId) throws SAXException {
-		dtdFound = systemId;
-		// If we don't care about the top-level element, we can stop here.
-		if (!checkRoot)
-			throw new StopParsingException();
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.xml.sax.ContentHandler#startElement(java.lang.String,
-	 *      java.lang.String, java.lang.String, org.xml.sax.Attributes)
-	 */
-	@Override
-	public final void startElement(final String uri, final String elementName, final String qualifiedName, final Attributes attributes) throws SAXException {
-		elementFound = elementName;
-		namespaceFound = uri;
-		versionFound = attributes.getValue("version");
-		throw new StopParsingException();
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.xml.sax.ext.LexicalHandler#startEntity(java.lang.String)
-	 */
-	public final void startEntity(final String name) {
-		// Not interested.
-	}
-}
-
diff --git a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/resource/orm/translators/AccessMethodsTranslator.java b/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/resource/orm/translators/AccessMethodsTranslator.java
deleted file mode 100644
index d48c4f3..0000000
--- a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/resource/orm/translators/AccessMethodsTranslator.java
+++ /dev/null
@@ -1,52 +0,0 @@
-/*******************************************************************************
- *  Copyright (c) 2009 Oracle. All rights reserved. This
- *  program and the accompanying materials are made available under the terms of
- *  the Eclipse Public License v1.0 which accompanies this distribution, and is
- *  available at http://www.eclipse.org/legal/epl-v10.html
- *  
- *  Contributors: Oracle. - initial API and implementation
- *******************************************************************************/
-package org.eclipse.jpt.eclipselink.core.internal.resource.orm.translators;
-
-import org.eclipse.emf.ecore.EObject;
-import org.eclipse.jpt.eclipselink.core.resource.orm.EclipseLinkOrmFactory;
-import org.eclipse.wst.common.internal.emf.resource.Translator;
-
-public class AccessMethodsTranslator extends Translator
-	implements EclipseLinkOrmXmlMapper
-{	
-	private Translator[] children;	
-	
-	
-	public AccessMethodsTranslator() {
-		super(ACCESS_METHODS, ECLIPSELINK_ORM_PKG.getXmlAccessMethodsHolder_AccessMethods());
-	}
-	
-	@Override
-	public EObject createEMFObject(@SuppressWarnings("unused") String nodeName, @SuppressWarnings("unused") String readAheadName) {
-		return EclipseLinkOrmFactory.eINSTANCE.createXmlAccessMethods();
-	}
-	
-	@Override
-	protected Translator[] getChildren() {
-		if (this.children == null) {
-			this.children = createChildren();
-		}
-		return this.children;
-	}
-		
-	protected Translator[] createChildren() {
-		return new Translator[] {
-			createGetMethodTranslator(),
-			createSetMethodTranslator(),
-		};
-	}
-	
-	protected Translator createGetMethodTranslator() {
-		return new Translator(ACCESS_METHODS__GET_METHOD, ECLIPSELINK_ORM_PKG.getXmlAccessMethods_GetMethod(), DOM_ATTRIBUTE);
-	}
-	
-	protected Translator createSetMethodTranslator() {
-		return new Translator(ACCESS_METHODS__SET_METHOD, ECLIPSELINK_ORM_PKG.getXmlAccessMethods_SetMethod(), DOM_ATTRIBUTE);
-	}
-}
diff --git a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/resource/orm/translators/BasicCollectionTranslator.java b/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/resource/orm/translators/BasicCollectionTranslator.java
deleted file mode 100644
index b18deca..0000000
--- a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/resource/orm/translators/BasicCollectionTranslator.java
+++ /dev/null
@@ -1,49 +0,0 @@
-/*******************************************************************************
- *  Copyright (c) 2008  Oracle. 
- *  All rights reserved.  This program and the accompanying materials are 
- *  made available under the terms of the Eclipse Public License v1.0 which 
- *  accompanies this distribution, and is available at 
- *  http://www.eclipse.org/legal/epl-v10.html
- *  
- *  Contributors: 
- *  	Oracle - initial API and implementation
- *******************************************************************************/
-package org.eclipse.jpt.eclipselink.core.internal.resource.orm.translators;
-
-import org.eclipse.emf.ecore.EObject;
-import org.eclipse.emf.ecore.EStructuralFeature;
-import org.eclipse.jpt.eclipselink.core.resource.orm.EclipseLinkOrmFactory;
-import org.eclipse.wst.common.internal.emf.resource.Translator;
-
-public class BasicCollectionTranslator extends Translator
-	implements EclipseLinkOrmXmlMapper
-{
-	private Translator[] children;	
-
-	public BasicCollectionTranslator(String domNameAndPath, EStructuralFeature aFeature) {
-		super(domNameAndPath, aFeature);
-	}
-	
-	@Override
-	public EObject createEMFObject(String nodeName, String readAheadName) {
-		return EclipseLinkOrmFactory.eINSTANCE.createXmlBasicCollectionImpl();
-	}
-	
-	@Override
-	protected Translator[] getChildren() {
-		if (this.children == null) {
-			this.children = createChildren();
-		}
-		return this.children;
-	}
-	
-	protected Translator[] createChildren() {
-		return new Translator[] {
-			createNameTranslator()
-		};
-	}
-	
-	protected Translator createNameTranslator() {
-		return new Translator(NAME, ORM_PKG.getXmlAttributeMapping_Name(), DOM_ATTRIBUTE);
-	}
-}
diff --git a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/resource/orm/translators/BasicMapTranslator.java b/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/resource/orm/translators/BasicMapTranslator.java
deleted file mode 100644
index 3c244c1..0000000
--- a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/resource/orm/translators/BasicMapTranslator.java
+++ /dev/null
@@ -1,52 +0,0 @@
-/*******************************************************************************
- *  Copyright (c) 2008  Oracle. 
- *  All rights reserved.  This program and the accompanying materials are 
- *  made available under the terms of the Eclipse Public License v1.0 which 
- *  accompanies this distribution, and is available at 
- *  http://www.eclipse.org/legal/epl-v10.html
- *  
- *  Contributors: 
- *  	Oracle - initial API and implementation
- *******************************************************************************/
-package org.eclipse.jpt.eclipselink.core.internal.resource.orm.translators;
-
-import org.eclipse.emf.ecore.EObject;
-import org.eclipse.emf.ecore.EStructuralFeature;
-import org.eclipse.jpt.core.internal.resource.orm.translators.BasicTranslator;
-import org.eclipse.jpt.eclipselink.core.resource.orm.EclipseLinkOrmFactory;
-import org.eclipse.wst.common.internal.emf.resource.Translator;
-
-public class BasicMapTranslator extends BasicTranslator
-	implements EclipseLinkOrmXmlMapper
-{
-	private Translator[] children;	
-
-	public BasicMapTranslator(String domNameAndPath, EStructuralFeature aFeature) {
-		super(domNameAndPath, aFeature);
-	}
-	
-	@Override
-	public EObject createEMFObject(String nodeName, String readAheadName) {
-		return EclipseLinkOrmFactory.eINSTANCE.createXmlBasicMapImpl();
-	}
-	
-	@Override
-	protected Translator[] getChildren() {
-		if (this.children == null) {
-			this.children = createChildren();
-		}
-		return this.children;
-	}
-	
-	@Override
-	protected Translator[] createChildren() {
-		return new Translator[] {
-			createNameTranslator()
-		};
-	}
-	
-	@Override
-	protected Translator createNameTranslator() {
-		return new Translator(NAME, ORM_PKG.getXmlAttributeMapping_Name(), DOM_ATTRIBUTE);
-	}
-}
diff --git a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/resource/orm/translators/CacheTranslator.java b/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/resource/orm/translators/CacheTranslator.java
deleted file mode 100644
index 5e058f1..0000000
--- a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/resource/orm/translators/CacheTranslator.java
+++ /dev/null
@@ -1,81 +0,0 @@
-/*******************************************************************************
- *  Copyright (c) 2008 Oracle. All rights reserved. This
- *  program and the accompanying materials are made available under the terms of
- *  the Eclipse Public License v1.0 which accompanies this distribution, and is
- *  available at http://www.eclipse.org/legal/epl-v10.html
- *  
- *  Contributors: Oracle. - initial API and implementation
- *******************************************************************************/
-package org.eclipse.jpt.eclipselink.core.internal.resource.orm.translators;
-
-import org.eclipse.wst.common.internal.emf.resource.Translator;
-
-public class CacheTranslator extends Translator
-	implements EclipseLinkOrmXmlMapper
-{	
-	private Translator[] children;	
-	
-	
-	public CacheTranslator() {
-		super(CACHE, ECLIPSELINK_ORM_PKG.getXmlCacheHolder_Cache());
-	}
-	
-	@Override
-	protected Translator[] getChildren() {
-		if (this.children == null) {
-			this.children = createChildren();
-		}
-		return this.children;
-	}
-		
-	protected Translator[] createChildren() {
-		return new Translator[] {
-			createExpiryTranslator(),
-			createExpiryTimeOfDayTranslator(),
-			createSizeTranslator(),
-			createSharedTranslator(),
-			createTypeTranslator(),
-			createAlwaysRefreshTranslator(),
-			createRefreshOnlyIfNewerTranslator(),
-			createDisableHitsTranslator(),
-			createCoordinationTypeTranslator(),
-		};
-	}
-
-	protected Translator createExpiryTranslator() {
-		return new Translator(CACHE__EXPIRY, ECLIPSELINK_ORM_PKG.getXmlCache_Expiry());
-	}
-	
-	protected Translator createExpiryTimeOfDayTranslator() {
-		return new ExpiryTimeOfDayTranslator();
-	}
-	
-	protected Translator createSizeTranslator() {
-		return new Translator(CACHE__SIZE, ECLIPSELINK_ORM_PKG.getXmlCache_Size(), DOM_ATTRIBUTE);
-	}
-	
-	protected Translator createSharedTranslator() {
-		return new Translator(CACHE__SHARED, ECLIPSELINK_ORM_PKG.getXmlCache_Shared(), DOM_ATTRIBUTE);
-	}
-	
-	protected Translator createTypeTranslator() {
-		return new Translator(CACHE__TYPE, ECLIPSELINK_ORM_PKG.getXmlCache_Type(), DOM_ATTRIBUTE);
-	}
-	
-	protected Translator createAlwaysRefreshTranslator() {
-		return new Translator(CACHE__ALWAYS_REFRESH, ECLIPSELINK_ORM_PKG.getXmlCache_AlwaysRefresh(), DOM_ATTRIBUTE);
-	}
-	
-	protected Translator createRefreshOnlyIfNewerTranslator() {
-		return new Translator(CACHE__REFRESH_ONLY_IF_NEWER, ECLIPSELINK_ORM_PKG.getXmlCache_RefreshOnlyIfNewer(), DOM_ATTRIBUTE);
-	}
-	
-	protected Translator createDisableHitsTranslator() {
-		return new Translator(CACHE__DISABLE_HITS, ECLIPSELINK_ORM_PKG.getXmlCache_DisableHits(), DOM_ATTRIBUTE);
-	}
-	
-	protected Translator createCoordinationTypeTranslator() {
-		return new Translator(CACHE__COORDINATION_TYPE, ECLIPSELINK_ORM_PKG.getXmlCache_CoordinationType(), DOM_ATTRIBUTE);
-	}
-	
-}
diff --git a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/resource/orm/translators/CloneCopyPolicyTranslator.java b/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/resource/orm/translators/CloneCopyPolicyTranslator.java
deleted file mode 100644
index 35bf0fc..0000000
--- a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/resource/orm/translators/CloneCopyPolicyTranslator.java
+++ /dev/null
@@ -1,53 +0,0 @@
-/*******************************************************************************
- *  Copyright (c) 2009 Oracle. All rights reserved. This
- *  program and the accompanying materials are made available under the terms of
- *  the Eclipse Public License v1.0 which accompanies this distribution, and is
- *  available at http://www.eclipse.org/legal/epl-v10.html
- *  
- *  Contributors: Oracle. - initial API and implementation
- *******************************************************************************/
-package org.eclipse.jpt.eclipselink.core.internal.resource.orm.translators;
-
-import org.eclipse.emf.ecore.EObject;
-import org.eclipse.emf.ecore.EStructuralFeature;
-import org.eclipse.jpt.eclipselink.core.resource.orm.EclipseLinkOrmFactory;
-import org.eclipse.wst.common.internal.emf.resource.Translator;
-
-public class CloneCopyPolicyTranslator extends Translator
-	implements EclipseLinkOrmXmlMapper
-{	
-	private Translator[] children;	
-	
-	
-	public CloneCopyPolicyTranslator(String domNameAndPath, EStructuralFeature aFeature) {
-		super(domNameAndPath, aFeature, END_TAG_NO_INDENT);
-	}
-	
-	@Override
-	public EObject createEMFObject(@SuppressWarnings("unused") String nodeName, @SuppressWarnings("unused") String readAheadName) {
-		return EclipseLinkOrmFactory.eINSTANCE.createXmlCloneCopyPolicy();
-	}
-	
-	@Override
-	protected Translator[] getChildren() {
-		if (this.children == null) {
-			this.children = createChildren();
-		}
-		return this.children;
-	}
-		
-	protected Translator[] createChildren() {
-		return new Translator[] {
-			createMethodTranslator(),
-			createWorkingCopyMethodTranslator(),
-		};
-	}
-	
-	protected Translator createMethodTranslator() {
-		return new Translator(CLONE_COPY_POLICY__METHOD, ECLIPSELINK_ORM_PKG.getXmlCloneCopyPolicy_Method(), DOM_ATTRIBUTE);
-	}
-	
-	protected Translator createWorkingCopyMethodTranslator() {
-		return new Translator(CLONE_COPY_POLICY__WORKING_COPY_METHOD, ECLIPSELINK_ORM_PKG.getXmlCloneCopyPolicy_WorkingCopyMethod(), DOM_ATTRIBUTE);
-	}
-}
diff --git a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/resource/orm/translators/ConversionValueTranslator.java b/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/resource/orm/translators/ConversionValueTranslator.java
deleted file mode 100644
index 45f04b9..0000000
--- a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/resource/orm/translators/ConversionValueTranslator.java
+++ /dev/null
@@ -1,52 +0,0 @@
-/*******************************************************************************
- *  Copyright (c) 2008 Oracle. All rights reserved. This
- *  program and the accompanying materials are made available under the terms of
- *  the Eclipse Public License v1.0 which accompanies this distribution, and is
- *  available at http://www.eclipse.org/legal/epl-v10.html
- *  
- *  Contributors: Oracle. - initial API and implementation
- *******************************************************************************/
-package org.eclipse.jpt.eclipselink.core.internal.resource.orm.translators;
-
-import org.eclipse.emf.ecore.EObject;
-import org.eclipse.jpt.eclipselink.core.resource.orm.EclipseLinkOrmFactory;
-import org.eclipse.wst.common.internal.emf.resource.Translator;
-
-public class ConversionValueTranslator extends Translator
-	implements EclipseLinkOrmXmlMapper
-{	
-	private Translator[] children;	
-	
-	
-	public ConversionValueTranslator() {
-		super(CONVERSION_VALUE, ECLIPSELINK_ORM_PKG.getXmlObjectTypeConverter_ConversionValues(), END_TAG_NO_INDENT);
-	}
-	
-	@Override
-	public EObject createEMFObject(@SuppressWarnings("unused") String nodeName, @SuppressWarnings("unused") String readAheadName) {
-		return EclipseLinkOrmFactory.eINSTANCE.createXmlConversionValueImpl();
-	}
-	
-	@Override
-	protected Translator[] getChildren() {
-		if (this.children == null) {
-			this.children = createChildren();
-		}
-		return this.children;
-	}
-		
-	protected Translator[] createChildren() {
-		return new Translator[] {
-			createDataValueTranslator(),
-			createObjectValueTranslator(),
-		};
-	}
-	
-	protected Translator createDataValueTranslator() {
-		return new Translator(CONVERSION_VALUE__DATA_VALUE, ECLIPSELINK_ORM_PKG.getXmlConversionValue_DataValue(), DOM_ATTRIBUTE);
-	}
-	
-	protected Translator createObjectValueTranslator() {
-		return new Translator(CONVERSION_VALUE__OBJECT_VALUE, ECLIPSELINK_ORM_PKG.getXmlConversionValue_ObjectValue(), DOM_ATTRIBUTE);
-	}
-}
diff --git a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/resource/orm/translators/ConverterTranslator.java b/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/resource/orm/translators/ConverterTranslator.java
deleted file mode 100644
index 024478c..0000000
--- a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/resource/orm/translators/ConverterTranslator.java
+++ /dev/null
@@ -1,53 +0,0 @@
-/*******************************************************************************
- *  Copyright (c) 2008 Oracle. All rights reserved. This
- *  program and the accompanying materials are made available under the terms of
- *  the Eclipse Public License v1.0 which accompanies this distribution, and is
- *  available at http://www.eclipse.org/legal/epl-v10.html
- *  
- *  Contributors: Oracle. - initial API and implementation
- *******************************************************************************/
-package org.eclipse.jpt.eclipselink.core.internal.resource.orm.translators;
-
-import org.eclipse.emf.ecore.EObject;
-import org.eclipse.emf.ecore.EStructuralFeature;
-import org.eclipse.jpt.eclipselink.core.resource.orm.EclipseLinkOrmFactory;
-import org.eclipse.wst.common.internal.emf.resource.Translator;
-
-public class ConverterTranslator extends Translator
-	implements EclipseLinkOrmXmlMapper
-{	
-	private Translator[] children;	
-	
-	
-	public ConverterTranslator(String domNameAndPath, EStructuralFeature aFeature) {
-		super(domNameAndPath, aFeature, END_TAG_NO_INDENT);
-	}
-	
-	@Override
-	public EObject createEMFObject(@SuppressWarnings("unused") String nodeName, @SuppressWarnings("unused") String readAheadName) {
-		return EclipseLinkOrmFactory.eINSTANCE.createXmlConverterImpl();
-	}
-	
-	@Override
-	protected Translator[] getChildren() {
-		if (this.children == null) {
-			this.children = createChildren();
-		}
-		return this.children;
-	}
-		
-	protected Translator[] createChildren() {
-		return new Translator[] {
-			createNameTranslator(),
-			createClassTranslator(),
-		};
-	}
-	
-	protected Translator createNameTranslator() {
-		return new Translator(CONVERTER__NAME, ECLIPSELINK_ORM_PKG.getXmlNamedConverter_Name(), DOM_ATTRIBUTE);
-	}
-	
-	protected Translator createClassTranslator() {
-		return new Translator(CONVERTER__CLASS, ECLIPSELINK_ORM_PKG.getXmlConverter_ClassName(), DOM_ATTRIBUTE);
-	}
-}
diff --git a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/resource/orm/translators/CopyPolicyTranslator.java b/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/resource/orm/translators/CopyPolicyTranslator.java
deleted file mode 100644
index 012e354..0000000
--- a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/resource/orm/translators/CopyPolicyTranslator.java
+++ /dev/null
@@ -1,48 +0,0 @@
-/*******************************************************************************
- *  Copyright (c) 2009 Oracle. All rights reserved. This
- *  program and the accompanying materials are made available under the terms of
- *  the Eclipse Public License v1.0 which accompanies this distribution, and is
- *  available at http://www.eclipse.org/legal/epl-v10.html
- *  
- *  Contributors: Oracle. - initial API and implementation
- *******************************************************************************/
-package org.eclipse.jpt.eclipselink.core.internal.resource.orm.translators;
-
-import org.eclipse.emf.ecore.EObject;
-import org.eclipse.emf.ecore.EStructuralFeature;
-import org.eclipse.jpt.eclipselink.core.resource.orm.EclipseLinkOrmFactory;
-import org.eclipse.wst.common.internal.emf.resource.Translator;
-
-public class CopyPolicyTranslator extends Translator
-	implements EclipseLinkOrmXmlMapper
-{	
-	private Translator[] children;	
-	
-	
-	public CopyPolicyTranslator(String domNameAndPath, EStructuralFeature aFeature) {
-		super(domNameAndPath, aFeature, END_TAG_NO_INDENT);
-	}
-	
-	@Override
-	public EObject createEMFObject(@SuppressWarnings("unused") String nodeName, @SuppressWarnings("unused") String readAheadName) {
-		return EclipseLinkOrmFactory.eINSTANCE.createXmlCopyPolicy();
-	}
-	
-	@Override
-	protected Translator[] getChildren() {
-		if (this.children == null) {
-			this.children = createChildren();
-		}
-		return this.children;
-	}
-		
-	protected Translator[] createChildren() {
-		return new Translator[] {
-			createClassTranslator(),
-		};
-	}
-	
-	protected Translator createClassTranslator() {
-		return new Translator(COPY_POLICY__CLASS, ECLIPSELINK_ORM_PKG.getXmlCopyPolicy_Class(), DOM_ATTRIBUTE);
-	}
-}
diff --git a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/resource/orm/translators/CustomizerTranslator.java b/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/resource/orm/translators/CustomizerTranslator.java
deleted file mode 100644
index e3eca63..0000000
--- a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/resource/orm/translators/CustomizerTranslator.java
+++ /dev/null
@@ -1,41 +0,0 @@
-/*******************************************************************************
- *  Copyright (c) 2008 Oracle. All rights reserved. This
- *  program and the accompanying materials are made available under the terms of
- *  the Eclipse Public License v1.0 which accompanies this distribution, and is
- *  available at http://www.eclipse.org/legal/epl-v10.html
- *  
- *  Contributors: Oracle. - initial API and implementation
- *******************************************************************************/
-package org.eclipse.jpt.eclipselink.core.internal.resource.orm.translators;
-
-import org.eclipse.emf.ecore.EStructuralFeature;
-import org.eclipse.wst.common.internal.emf.resource.Translator;
-
-public class CustomizerTranslator extends Translator 
-	implements EclipseLinkOrmXmlMapper
-{
-	private Translator[] children;	
-	
-	
-	public CustomizerTranslator(String domNameAndPath, EStructuralFeature aFeature) {
-		super(domNameAndPath, aFeature, END_TAG_NO_INDENT);
-	}
-	
-	@Override
-	protected Translator[] getChildren() {
-		if (this.children == null) {
-			this.children = createChildren();
-		}
-		return this.children;
-	}
-		
-	protected Translator[] createChildren() {
-		return new Translator[] {
-			createClassTranslator()
-		};
-	}
-	
-	protected Translator createClassTranslator() {
-		return new Translator(CLASS, ECLIPSELINK_ORM_PKG.getXmlCustomizer_CustomizerClassName(), DOM_ATTRIBUTE);
-	}
-}
diff --git a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/resource/orm/translators/EclipseLinkAttributesTranslator.java b/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/resource/orm/translators/EclipseLinkAttributesTranslator.java
deleted file mode 100644
index 435d947..0000000
--- a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/resource/orm/translators/EclipseLinkAttributesTranslator.java
+++ /dev/null
@@ -1,111 +0,0 @@
-/*******************************************************************************
- *  Copyright (c) 2008, 2009  Oracle. 
- *  All rights reserved.  This program and the accompanying materials are 
- *  made available under the terms of the Eclipse Public License v1.0 which 
- *  accompanies this distribution, and is available at 
- *  http://www.eclipse.org/legal/epl-v10.html
- *  
- *  Contributors: 
- *  	Oracle - initial API and implementation
- *******************************************************************************/
-package org.eclipse.jpt.eclipselink.core.internal.resource.orm.translators;
-
-import org.eclipse.emf.ecore.EObject;
-import org.eclipse.emf.ecore.EStructuralFeature;
-import org.eclipse.jpt.core.internal.resource.orm.translators.AttributesTranslator;
-import org.eclipse.jpt.eclipselink.core.resource.orm.EclipseLinkOrmFactory;
-import org.eclipse.wst.common.internal.emf.resource.Translator;
-
-public class EclipseLinkAttributesTranslator extends AttributesTranslator
-	implements EclipseLinkOrmXmlMapper
-{
-	public EclipseLinkAttributesTranslator(String domNameAndPath, EStructuralFeature aFeature) {
-		super(domNameAndPath, aFeature);
-	}
-	
-	@Override
-	public EObject createEMFObject(String nodeName, String readAheadName) {
-		return EclipseLinkOrmFactory.eINSTANCE.createAttributes();
-		
-	}
-	@Override
-	protected Translator[] createChildren() {
-		return new Translator[] {
-			createIdTranslator(),
-			createEmbeddedIdTranslator(),
-			createBasicTranslator(),
-			createBasicCollectionTranslator(),
-			createBasicMapTranslator(),
-			createVersionTranslator(),
-			createManyToOneTranslator(),
-			createOneToManyTranslator(),
-			createOneToOneTranslator(),
-			createVariableOneToOneTranslator(),
-			createManyToManyTranslator(),
-			createEmbeddedTranslator(),
-			createTransformationTranslator(),
-			createTransientTranslator()
-		};
-	}
-	
-	@Override
-	protected Translator createIdTranslator() {
-		return new EclipseLinkIdTranslator(ID, ORM_PKG.getAttributes_Ids());
-	}
-	
-	@Override
-	protected Translator createEmbeddedIdTranslator() {
-		return new EclipseLinkEmbeddedIdTranslator(EMBEDDED_ID, ORM_PKG.getAttributes_EmbeddedIds());
-	}
-	
-	@Override
-	protected Translator createBasicTranslator() {
-		return new EclipseLinkBasicTranslator(BASIC, ORM_PKG.getAttributes_Basics());
-	}
-	
-	@Override
-	protected Translator createVersionTranslator() {
-		return new EclipseLinkVersionTranslator(VERSION, ORM_PKG.getAttributes_Versions());
-	}
-	
-	@Override
-	protected Translator createManyToOneTranslator() {
-		return new EclipseLinkManyToOneTranslator(MANY_TO_ONE, ORM_PKG.getAttributes_ManyToOnes());
-	}
-	
-	@Override
-	protected Translator createOneToOneTranslator() {
-		return new EclipseLinkOneToOneTranslator(ONE_TO_ONE, ORM_PKG.getAttributes_OneToOnes());
-	}
-	
-	@Override
-	protected Translator createOneToManyTranslator() {
-		return new EclipseLinkOneToManyTranslator(ONE_TO_MANY, ORM_PKG.getAttributes_OneToManys());
-	}
-	
-	@Override
-	protected Translator createManyToManyTranslator() {
-		return new EclipseLinkManyToManyTranslator(MANY_TO_MANY, ORM_PKG.getAttributes_ManyToManys());
-	}
-	
-	@Override
-	protected Translator createEmbeddedTranslator() {
-		return new EclipseLinkEmbeddedTranslator(EMBEDDED, ORM_PKG.getAttributes_Embeddeds());
-	}
-	
-	protected Translator createVariableOneToOneTranslator() {
-		return new VariableOneToOneTranslator(VARIABLE_ONE_TO_ONE, ECLIPSELINK_ORM_PKG.getAttributes_VariableOneToOnes());
-	}
-
-	protected Translator createBasicCollectionTranslator() {
-		return new BasicCollectionTranslator(BASIC_COLLECTION, ECLIPSELINK_ORM_PKG.getAttributes_BasicCollections());
-	}
-	
-	protected Translator createBasicMapTranslator() {
-		return new BasicMapTranslator(BASIC_MAP, ECLIPSELINK_ORM_PKG.getAttributes_BasicMaps());
-	}
-	
-	protected Translator createTransformationTranslator() {
-		return new TransformationTranslator(TRANSFORMATION, ECLIPSELINK_ORM_PKG.getAttributes_Transformations());
-	}
-}
diff --git a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/resource/orm/translators/EclipseLinkBasicTranslator.java b/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/resource/orm/translators/EclipseLinkBasicTranslator.java
deleted file mode 100644
index e9bdf53..0000000
--- a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/resource/orm/translators/EclipseLinkBasicTranslator.java
+++ /dev/null
@@ -1,83 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008, 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.eclipselink.core.internal.resource.orm.translators;
-
-import org.eclipse.emf.ecore.EObject;
-import org.eclipse.emf.ecore.EStructuralFeature;
-import org.eclipse.jpt.core.internal.resource.orm.translators.BasicTranslator;
-import org.eclipse.jpt.eclipselink.core.resource.orm.EclipseLinkOrmFactory;
-import org.eclipse.wst.common.internal.emf.resource.Translator;
-
-public class EclipseLinkBasicTranslator extends BasicTranslator
-	implements EclipseLinkOrmXmlMapper
-{
-	public EclipseLinkBasicTranslator(String domNameAndPath, EStructuralFeature aFeature) {
-		super(domNameAndPath, aFeature);
-	}
-	
-	
-	@Override
-	public EObject createEMFObject(String nodeName, String readAheadName) {
-		return EclipseLinkOrmFactory.eINSTANCE.createXmlBasicImpl();
-	}
-	
-	@Override
-	protected Translator[] createChildren() {
-		return new Translator[] {
-			createNameTranslator(),
-			createFetchTranslator(),
-			createOptionalTranslator(),
-			createMutableTranslator(),
-			createColumnTranslator(), 
-			createLobTranslator(),
-			createTemporalTranslator(),
-			createEnumeratedTranslator(),
-			createConvertTranslator(),
-			createConverterTranslator(),
-			createTypeConverterTranslator(),
-			createObjectTypeConverterTranslator(),
-			createStructConverterTranslator(),
-			createPropertyTranslator(),
-			createAccessMethodsTranslator()			
-		};
-	}
-	
-	protected Translator createMutableTranslator() {
-		return new Translator(MUTABLE, ECLIPSELINK_ORM_PKG.getXmlMutable_Mutable(), DOM_ATTRIBUTE);
-	}
-		
-	protected Translator createConvertTranslator() {
-		return new Translator(CONVERT, ECLIPSELINK_ORM_PKG.getXmlConvertibleMapping_Convert());
-	}
-	
-	protected Translator createConverterTranslator() {
-		return new ConverterTranslator(CONVERTER, ECLIPSELINK_ORM_PKG.getXmlConverterHolder_Converter());
-	}
-	
-	protected Translator createTypeConverterTranslator() {
-		return new TypeConverterTranslator(TYPE_CONVERTER, ECLIPSELINK_ORM_PKG.getXmlConverterHolder_TypeConverter());
-	}
-	
-	protected Translator createObjectTypeConverterTranslator() {
-		return new ObjectTypeConverterTranslator(OBJECT_TYPE_CONVERTER, ECLIPSELINK_ORM_PKG.getXmlConverterHolder_ObjectTypeConverter());
-	}
-	
-	protected Translator createStructConverterTranslator() {
-		return new StructConverterTranslator(STRUCT_CONVERTER, ECLIPSELINK_ORM_PKG.getXmlConverterHolder_StructConverter());
-	}
-	
-	protected Translator createPropertyTranslator() {
-		return new PropertyTranslator(PROPERTY, ECLIPSELINK_ORM_PKG.getXmlBasic_Properties());
-	}
-	
-	protected Translator createAccessMethodsTranslator() {
-		return new AccessMethodsTranslator();
-	}
-}
diff --git a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/resource/orm/translators/EclipseLinkChangeTrackingTranslator.java b/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/resource/orm/translators/EclipseLinkChangeTrackingTranslator.java
deleted file mode 100644
index 12a70b1..0000000
--- a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/resource/orm/translators/EclipseLinkChangeTrackingTranslator.java
+++ /dev/null
@@ -1,44 +0,0 @@
-/*******************************************************************************
- *  Copyright (c) 2008  Oracle. 
- *  All rights reserved.  This program and the accompanying materials are 
- *  made available under the terms of the Eclipse Public License v1.0 which 
- *  accompanies this distribution, and is available at 
- *  http://www.eclipse.org/legal/epl-v10.html
- *  
- *  Contributors: 
- *  	Oracle - initial API and implementation
- *******************************************************************************/
-package org.eclipse.jpt.eclipselink.core.internal.resource.orm.translators;
-
-import org.eclipse.emf.ecore.EStructuralFeature;
-import org.eclipse.wst.common.internal.emf.resource.Translator;
-
-public class EclipseLinkChangeTrackingTranslator extends Translator
-	implements EclipseLinkOrmXmlMapper
-{
-	private Translator[] children;	
-	
-	
-	public EclipseLinkChangeTrackingTranslator(String domNameAndPath, EStructuralFeature aFeature, int style) {
-		super(domNameAndPath, aFeature, style);
-	}
-	
-	
-	@Override
-	protected Translator[] getChildren() {
-		if (this.children == null) {
-			this.children = createChildren();
-		}
-		return this.children;
-	}
-		
-	protected Translator[] createChildren() {
-		return new Translator[] {
-			createTypeTranslator()
-		};
-	}
-	
-	protected Translator createTypeTranslator() {
-		return new Translator(TYPE, ECLIPSELINK_ORM_PKG.getXmlChangeTracking_Type(), Translator.DOM_ATTRIBUTE);
-	}
-}
diff --git a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/resource/orm/translators/EclipseLinkEmbeddableTranslator.java b/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/resource/orm/translators/EclipseLinkEmbeddableTranslator.java
deleted file mode 100644
index 2227392..0000000
--- a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/resource/orm/translators/EclipseLinkEmbeddableTranslator.java
+++ /dev/null
@@ -1,102 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008, 2009 Oracle. All rights reserved. This
- * program and the accompanying materials are made available under the terms of
- * the Eclipse Public License v1.0 which accompanies this distribution, and is
- * available at http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors: Oracle. - initial API and implementation
- *******************************************************************************/
-package org.eclipse.jpt.eclipselink.core.internal.resource.orm.translators;
-
-import org.eclipse.emf.ecore.EObject;
-import org.eclipse.emf.ecore.EStructuralFeature;
-import org.eclipse.jpt.core.internal.resource.orm.translators.EmbeddableTranslator;
-import org.eclipse.jpt.eclipselink.core.resource.orm.EclipseLinkOrmFactory;
-import org.eclipse.wst.common.internal.emf.resource.Translator;
-
-public class EclipseLinkEmbeddableTranslator extends EmbeddableTranslator
-	implements EclipseLinkOrmXmlMapper
-{
-	public EclipseLinkEmbeddableTranslator(String domNameAndPath, EStructuralFeature aFeature) {
-		super(domNameAndPath, aFeature);
-	}
-	
-	
-	@Override
-	public EObject createEMFObject(String nodeName, String readAheadName) {
-		return EclipseLinkOrmFactory.eINSTANCE.createXmlEmbeddable();
-	}
-	
-	
-	@Override
-	protected Translator[] createChildren() {
-		return new Translator[] {
-			createClassTranslator(),
-			createAccessTranslator(),
-			createMetadataCompleteTranslator(),
-			createExcludeDefaultMappingsTranslator(),
-			createDescriptionTranslator(),
-			createCustomizerTranslator(),
-			createChangeTrackingTranslator(),
-			createConverterTranslator(),
-			createTypeConverterTranslator(),
-			createObjectTypeConverterTranslator(),
-			createStructConverterTranslator(),
-			createPropertyTranslator(),
-			createAttributesTranslator(),
-			createCopyPolicyTranslator(),
-			createInstantiationCopyPolicyTranslator(),
-			createCloneCopyPolicyTranslator(),
-		};
-	}
-
-	protected Translator createCustomizerTranslator() {
-		return new CustomizerTranslator(CUSTOMIZER, ECLIPSELINK_ORM_PKG.getXmlCustomizerHolder_Customizer());
-	}
-	
-	protected Translator createChangeTrackingTranslator() {
-		return new EclipseLinkChangeTrackingTranslator(CHANGE_TRACKING, ECLIPSELINK_ORM_PKG.getXmlChangeTrackingHolder_ChangeTracking(), END_TAG_NO_INDENT);
-	}
-	
-	protected Translator createConverterTranslator() {
-		return new ConverterTranslator(CONVERTER, ECLIPSELINK_ORM_PKG.getXmlConvertersHolder_Converters());
-	}
-	
-	protected Translator createTypeConverterTranslator() {
-		return new TypeConverterTranslator(TYPE_CONVERTER, ECLIPSELINK_ORM_PKG.getXmlConvertersHolder_TypeConverters());
-	}
-	
-	protected Translator createObjectTypeConverterTranslator() {
-		return new ObjectTypeConverterTranslator(OBJECT_TYPE_CONVERTER, ECLIPSELINK_ORM_PKG.getXmlConvertersHolder_ObjectTypeConverters());
-	}
-	
-	protected Translator createStructConverterTranslator() {
-		return new StructConverterTranslator(STRUCT_CONVERTER, ECLIPSELINK_ORM_PKG.getXmlConvertersHolder_StructConverters());
-	}
-	
-	@Override
-	protected Translator createAttributesTranslator() {
-		return new EclipseLinkAttributesTranslator(ATTRIBUTES, ORM_PKG.getXmlTypeMapping_Attributes());
-	}
-	
-	protected Translator createPropertyTranslator() {
-		return new PropertyTranslator(PROPERTY, ECLIPSELINK_ORM_PKG.getXmlEmbeddable_Properties());
-	}
-	
-	protected Translator createCopyPolicyTranslator() {
-		return new CopyPolicyTranslator(COPY_POLICY, ECLIPSELINK_ORM_PKG.getXmlEmbeddable_CopyPolicy());
-	}
-	
-	protected Translator createInstantiationCopyPolicyTranslator() {
-		return new InstantiationCopyPolicyTranslator(INSTANTIATION_COPY_POLICY, ECLIPSELINK_ORM_PKG.getXmlEmbeddable_InstantiationCopyPolicy());
-	}
-	
-	protected Translator createCloneCopyPolicyTranslator() {
-		return new CloneCopyPolicyTranslator(CLONE_COPY_POLICY, ECLIPSELINK_ORM_PKG.getXmlEmbeddable_CloneCopyPolicy());
-	}
-	
-
-	protected Translator createExcludeDefaultMappingsTranslator() {
-		return new Translator(EXCLUDE_DEFAULT_MAPPINGS, ECLIPSELINK_ORM_PKG.getXmlEmbeddable_ExcludeDefaultMappings(), DOM_ATTRIBUTE);
-	}
-}
diff --git a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/resource/orm/translators/EclipseLinkEmbeddedIdTranslator.java b/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/resource/orm/translators/EclipseLinkEmbeddedIdTranslator.java
deleted file mode 100644
index cbdf94a..0000000
--- a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/resource/orm/translators/EclipseLinkEmbeddedIdTranslator.java
+++ /dev/null
@@ -1,47 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.eclipselink.core.internal.resource.orm.translators;
-
-import org.eclipse.emf.ecore.EObject;
-import org.eclipse.emf.ecore.EStructuralFeature;
-import org.eclipse.jpt.core.internal.resource.orm.translators.EmbeddedIdTranslator;
-import org.eclipse.jpt.eclipselink.core.resource.orm.EclipseLinkOrmFactory;
-import org.eclipse.wst.common.internal.emf.resource.Translator;
-
-public class EclipseLinkEmbeddedIdTranslator extends EmbeddedIdTranslator
-	implements EclipseLinkOrmXmlMapper
-{
-	public EclipseLinkEmbeddedIdTranslator(String domNameAndPath, EStructuralFeature aFeature) {
-		super(domNameAndPath, aFeature);
-	}
-	
-	@Override
-	public EObject createEMFObject(String nodeName, String readAheadName) {
-		return EclipseLinkOrmFactory.eINSTANCE.createXmlEmbeddedIdImpl();
-	}
-	
-	@Override
-	protected Translator[] createChildren() {
-		return new Translator[] {
-			createNameTranslator(),
-			createAttributeOverrideTranslator(),
-			createPropertyTranslator(),
-			createAccessMethodsTranslator()
-		};
-	}
-		
-	protected Translator createPropertyTranslator() {
-		return new PropertyTranslator(PROPERTY, ECLIPSELINK_ORM_PKG.getXmlEmbeddedId_Properties());
-	}
-	
-	protected Translator createAccessMethodsTranslator() {
-		return new AccessMethodsTranslator();
-	}
-}
diff --git a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/resource/orm/translators/EclipseLinkEmbeddedTranslator.java b/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/resource/orm/translators/EclipseLinkEmbeddedTranslator.java
deleted file mode 100644
index e017af2..0000000
--- a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/resource/orm/translators/EclipseLinkEmbeddedTranslator.java
+++ /dev/null
@@ -1,47 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.eclipselink.core.internal.resource.orm.translators;
-
-import org.eclipse.emf.ecore.EObject;
-import org.eclipse.emf.ecore.EStructuralFeature;
-import org.eclipse.jpt.core.internal.resource.orm.translators.EmbeddedTranslator;
-import org.eclipse.jpt.eclipselink.core.resource.orm.EclipseLinkOrmFactory;
-import org.eclipse.wst.common.internal.emf.resource.Translator;
-
-public class EclipseLinkEmbeddedTranslator extends EmbeddedTranslator
-	implements EclipseLinkOrmXmlMapper
-{
-	public EclipseLinkEmbeddedTranslator(String domNameAndPath, EStructuralFeature aFeature) {
-		super(domNameAndPath, aFeature);
-	}
-	
-	@Override
-	public EObject createEMFObject(String nodeName, String readAheadName) {
-		return EclipseLinkOrmFactory.eINSTANCE.createXmlEmbeddedImpl();
-	}
-		
-	@Override
-	protected Translator[] createChildren() {
-		return new Translator[] {
-			createNameTranslator(),
-			createAttributeOverrideTranslator(),
-			createPropertyTranslator(),
-			createAccessMethodsTranslator()
-		};
-	}
-	
-	protected Translator createPropertyTranslator() {
-		return new PropertyTranslator(PROPERTY, ECLIPSELINK_ORM_PKG.getXmlEmbedded_Properties());
-	}
-	
-	protected Translator createAccessMethodsTranslator() {
-		return new AccessMethodsTranslator();
-	}
-}
diff --git a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/resource/orm/translators/EclipseLinkEntityMappingsTranslator.java b/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/resource/orm/translators/EclipseLinkEntityMappingsTranslator.java
deleted file mode 100644
index f130a23..0000000
--- a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/resource/orm/translators/EclipseLinkEntityMappingsTranslator.java
+++ /dev/null
@@ -1,110 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008, 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.eclipselink.core.internal.resource.orm.translators;
-
-import org.eclipse.emf.ecore.EClass;
-import org.eclipse.jpt.core.internal.resource.orm.translators.EntityMappingsTranslator;
-import org.eclipse.jpt.core.resource.xml.XML;
-import org.eclipse.wst.common.internal.emf.resource.ConstantAttributeTranslator;
-import org.eclipse.wst.common.internal.emf.resource.Translator;
-
-public class EclipseLinkEntityMappingsTranslator extends EntityMappingsTranslator
-	implements EclipseLinkOrmXmlMapper
-{
-	public static EclipseLinkEntityMappingsTranslator INSTANCE = new EclipseLinkEntityMappingsTranslator();
-	
-	protected EclipseLinkEntityMappingsTranslator(String domNameAndPath, EClass eClass) {
-		super(domNameAndPath, eClass);
-	}
-	
-	public EclipseLinkEntityMappingsTranslator() {
-		this(ENTITY_MAPPINGS, ECLIPSELINK_ORM_PKG.getXmlEntityMappings());
-	}
-	
-	@Override
-	protected Translator[] createChildren() {
-		return new Translator[] {
-			createVersionTranslator(),
-			createNamespaceTranslator(),
-			createSchemaNamespaceTranslator(),
-			createSchemaLocationTranslator(),
-			createDescriptionTranslator(),
-			createPersistenceUnitMetadataTranslator(),
-			createPackageTranslator(),
-			createSchemaTranslator(),
-			createCatalogTranslator(),
-			createAccessTranslator(),
-			createConverterTranslator(),
-			createTypeConverterTranslator(),
-			createObjectTypeConverterTranslator(),
-			createStructConverterTranslator(),
-			createSequenceGeneratorTranslator(),
-			createTableGeneratorTranslator(),
-			createNamedQueryTranslator(),
-			createNamedNativeQueryTranslator(),
-			createNamedStoredProcedureQueryTranslator(),
-			createSqlResultSetMappingTranslator(),
-			createMappedSuperclassTranslator(),
-			createEntityTranslator(),
-			createEmbeddableTranslator()
-		};
-	}
-	
-	@Override
-	protected Translator createNamespaceTranslator() {
-		return new ConstantAttributeTranslator(XML.NAMESPACE, ECLIPSELINK_ORM_NS_URL);
-	}
-	
-	@Override
-	protected Translator createSchemaLocationTranslator() {
-		return new ConstantAttributeTranslator(XML.XSI_SCHEMA_LOCATION, ECLIPSELINK_ORM_NS_URL + ' ' + ECLIPSELINK_ORM_SCHEMA_LOC_1_0);
-	}
-	
-	@Override
-	protected Translator createPersistenceUnitMetadataTranslator() {
-		return new EclipseLinkPersistenceUnitMetadataTranslator(PERSISTENCE_UNIT_METADATA, ORM_PKG.getXmlEntityMappings_PersistenceUnitMetadata());
-	}
-	
-	@Override
-	protected Translator createEmbeddableTranslator() {
-		return new EclipseLinkEmbeddableTranslator(EMBEDDABLE, ORM_PKG.getXmlEntityMappings_Embeddables());
-	}
-	
-	@Override
-	protected Translator createEntityTranslator() {
-		return new EclipseLinkEntityTranslator(ENTITY, ORM_PKG.getXmlEntityMappings_Entities());
-	}
-	
-	@Override
-	protected Translator createMappedSuperclassTranslator() {
-		return new EclipseLinkMappedSuperclassTranslator(MAPPED_SUPERCLASS, ORM_PKG.getXmlEntityMappings_MappedSuperclasses());
-	}
-	
-	
-	protected Translator createConverterTranslator() {
-		return new ConverterTranslator(CONVERTER, ECLIPSELINK_ORM_PKG.getXmlConvertersHolder_Converters());
-	}
-	
-	protected Translator createTypeConverterTranslator() {
-		return new TypeConverterTranslator(TYPE_CONVERTER, ECLIPSELINK_ORM_PKG.getXmlConvertersHolder_TypeConverters());
-	}
-	
-	protected Translator createObjectTypeConverterTranslator() {
-		return new ObjectTypeConverterTranslator(OBJECT_TYPE_CONVERTER, ECLIPSELINK_ORM_PKG.getXmlConvertersHolder_ObjectTypeConverters());
-	}
-	
-	protected Translator createStructConverterTranslator() {
-		return new StructConverterTranslator(STRUCT_CONVERTER, ECLIPSELINK_ORM_PKG.getXmlConvertersHolder_StructConverters());
-	}
-	
-	protected Translator createNamedStoredProcedureQueryTranslator() {
-		return new NamedStoredProcedureQueryTranslator(NAMED_STORED_PROCEDURE_QUERY, ECLIPSELINK_ORM_PKG.getXmlEntityMappings_NamedStoredProcedureQueries());
-	}
-}
diff --git a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/resource/orm/translators/EclipseLinkEntityTranslator.java b/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/resource/orm/translators/EclipseLinkEntityTranslator.java
deleted file mode 100644
index bac233e..0000000
--- a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/resource/orm/translators/EclipseLinkEntityTranslator.java
+++ /dev/null
@@ -1,151 +0,0 @@
-/*******************************************************************************
- *  Copyright (c) 2008, 2009  Oracle. 
- *  All rights reserved.  This program and the accompanying materials are 
- *  made available under the terms of the Eclipse Public License v1.0 which 
- *  accompanies this distribution, and is available at 
- *  http://www.eclipse.org/legal/epl-v10.html
- *  
- *  Contributors: 
- *  	Oracle - initial API and implementation
- *******************************************************************************/
-package org.eclipse.jpt.eclipselink.core.internal.resource.orm.translators;
-
-import org.eclipse.emf.ecore.EObject;
-import org.eclipse.emf.ecore.EStructuralFeature;
-import org.eclipse.jpt.core.internal.resource.orm.translators.EntityTranslator;
-import org.eclipse.jpt.eclipselink.core.resource.orm.EclipseLinkOrmFactory;
-import org.eclipse.wst.common.internal.emf.resource.Translator;
-
-public class EclipseLinkEntityTranslator extends EntityTranslator
-	implements EclipseLinkOrmXmlMapper
-{
-	public EclipseLinkEntityTranslator(String domNameAndPath, EStructuralFeature aFeature) {
-		super(domNameAndPath, aFeature);
-	}
-	
-	@Override
-	public EObject createEMFObject(String nodeName, String readAheadName) {
-		return EclipseLinkOrmFactory.eINSTANCE.createXmlEntity();
-	}
-	
-	@Override
-	protected Translator[] createChildren() {
-		return new Translator[] {
-			createNameTranslator(),
-			createClassTranslator(),
-			createAccessTranslator(),
-			createMetadataCompleteTranslator(),
-			createReadOnlyTranslator(),
-			createExistenceCheckingTranslator(),
-			createExcludeDefaultMappingsTranslator(),
-			createDescriptionTranslator(),
-			createCustomizerTranslator(),
-			createChangeTrackingTranslator(),
-			createTableTranslator(),
-			createSecondaryTableTranslator(),
-			createPrimaryKeyJoinColumnTranslator(),
-			createIdClassTranslator(),
-			createInheritanceTranslator(),
-			createDiscriminatorValueTranslator(),
-			createDiscriminatorColumnTranslator(),
-			createOptimisticLockingTranslator(),
-			createCacheTranslator(),
-			createConverterTranslator(),
-			createTypeConverterTranslator(),
-			createObjectTypeConverterTranslator(),
-			createStructConverterTranslator(),
-			createCopyPolicyTranslator(),
-			createInstantiationCopyPolicyTranslator(),
-			createCloneCopyPolicyTranslator(),
-			createSequenceGeneratorTranslator(),
-			createTableGeneratorTranslator(),
-			createNamedQueryTranslator(),
-			createNamedNativeQueryTranslator(),
-			createNamedStoredProcedureQueryTranslator(),
-			createSqlResultSetMappingTranslator(),
-			createExcludeDefaultListenersTranslator(),
-			createExcludeSuperclassListenersTranslator(),
-			createEntityListenersTranslator(),
-			createPrePersistTranslator(),
-			createPostPersistTranslator(),
-			createPreRemoveTranslator(),
-			createPostRemoveTranslator(),
-			createPreUpdateTranslator(),
-			createPostUpdateTranslator(),
-			createPostLoadTranslator(),
-			createPropertyTranslator(),
-			createAttributeOverrideTranslator(),
-			createAssociationOverrideTranslator(),
-			createAttributesTranslator(),
-		};
-	}
-	
-	protected Translator createReadOnlyTranslator() {
-		return new Translator(READ_ONLY, ECLIPSELINK_ORM_PKG.getXmlReadOnly_ReadOnly(), DOM_ATTRIBUTE);
-	}
-	
-	protected Translator createExistenceCheckingTranslator() {
-		return new Translator(EXISTENCE_CHECKING, ECLIPSELINK_ORM_PKG.getXmlCacheHolder_ExistenceChecking(), DOM_ATTRIBUTE);
-	}
-
-	protected Translator createCustomizerTranslator() {
-		return new CustomizerTranslator(CUSTOMIZER, ECLIPSELINK_ORM_PKG.getXmlCustomizerHolder_Customizer());
-	}
-	
-	protected Translator createChangeTrackingTranslator() {
-		return new EclipseLinkChangeTrackingTranslator(CHANGE_TRACKING, ECLIPSELINK_ORM_PKG.getXmlChangeTrackingHolder_ChangeTracking(), END_TAG_NO_INDENT);
-	}
-	
-	protected Translator createCacheTranslator() {
-		return new CacheTranslator();
-	}
-	
-	protected Translator createConverterTranslator() {
-		return new ConverterTranslator(CONVERTER, ECLIPSELINK_ORM_PKG.getXmlConvertersHolder_Converters());
-	}
-	
-	protected Translator createTypeConverterTranslator() {
-		return new TypeConverterTranslator(TYPE_CONVERTER, ECLIPSELINK_ORM_PKG.getXmlConvertersHolder_TypeConverters());
-	}
-	
-	protected Translator createObjectTypeConverterTranslator() {
-		return new ObjectTypeConverterTranslator(OBJECT_TYPE_CONVERTER, ECLIPSELINK_ORM_PKG.getXmlConvertersHolder_ObjectTypeConverters());
-	}
-	
-	protected Translator createStructConverterTranslator() {
-		return new StructConverterTranslator(STRUCT_CONVERTER, ECLIPSELINK_ORM_PKG.getXmlConvertersHolder_StructConverters());
-	}
-	
-	@Override
-	protected Translator createAttributesTranslator() {
-		return new EclipseLinkAttributesTranslator(ATTRIBUTES, ORM_PKG.getXmlTypeMapping_Attributes());
-	}
-	
-	protected Translator createPropertyTranslator() {
-		return new PropertyTranslator(PROPERTY, ECLIPSELINK_ORM_PKG.getXmlEntity_Properties());
-	}
-	
-	protected Translator createNamedStoredProcedureQueryTranslator() {
-		return new NamedStoredProcedureQueryTranslator(NAMED_STORED_PROCEDURE_QUERY, ECLIPSELINK_ORM_PKG.getXmlEntity_NamedStoredProcedureQueries());
-	}
-	
-	protected Translator createCopyPolicyTranslator() {
-		return new CopyPolicyTranslator(COPY_POLICY, ECLIPSELINK_ORM_PKG.getXmlEntity_CopyPolicy());
-	}
-	
-	protected Translator createInstantiationCopyPolicyTranslator() {
-		return new InstantiationCopyPolicyTranslator(INSTANTIATION_COPY_POLICY, ECLIPSELINK_ORM_PKG.getXmlEntity_InstantiationCopyPolicy());
-	}
-	
-	protected Translator createCloneCopyPolicyTranslator() {
-		return new CloneCopyPolicyTranslator(CLONE_COPY_POLICY, ECLIPSELINK_ORM_PKG.getXmlEntity_CloneCopyPolicy());
-	}
-	
-	protected Translator createOptimisticLockingTranslator() {
-		return new OptimisticLockingTranslator(OPTIMISTIC_LOCKING, ECLIPSELINK_ORM_PKG.getXmlEntity_OptimisticLocking());
-	}
-
-	protected Translator createExcludeDefaultMappingsTranslator() {
-		return new Translator(EXCLUDE_DEFAULT_MAPPINGS, ECLIPSELINK_ORM_PKG.getXmlEntity_ExcludeDefaultMappings(), DOM_ATTRIBUTE);
-	}
-}
diff --git a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/resource/orm/translators/EclipseLinkIdTranslator.java b/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/resource/orm/translators/EclipseLinkIdTranslator.java
deleted file mode 100644
index 824ca9a..0000000
--- a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/resource/orm/translators/EclipseLinkIdTranslator.java
+++ /dev/null
@@ -1,81 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008, 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.eclipselink.core.internal.resource.orm.translators;
-
-import org.eclipse.emf.ecore.EObject;
-import org.eclipse.emf.ecore.EStructuralFeature;
-import org.eclipse.jpt.core.internal.resource.orm.translators.IdTranslator;
-import org.eclipse.jpt.eclipselink.core.resource.orm.EclipseLinkOrmFactory;
-import org.eclipse.wst.common.internal.emf.resource.Translator;
-
-public class EclipseLinkIdTranslator extends IdTranslator
-	implements EclipseLinkOrmXmlMapper
-{
-	public EclipseLinkIdTranslator(String domNameAndPath, EStructuralFeature aFeature) {
-		super(domNameAndPath, aFeature);
-	}
-	
-	@Override
-	public EObject createEMFObject(String nodeName, String readAheadName) {
-		return EclipseLinkOrmFactory.eINSTANCE.createXmlIdImpl();
-	}
-	
-	@Override
-	protected Translator[] createChildren() {
-		return new Translator[] {
-			createNameTranslator(),
-			createMutableTranslator(),
-			createColumnTranslator(),
-			createGeneratedValueTranslator(),
-			createTemporalTranslator(),
-			createConvertTranslator(),
-			createConverterTranslator(),
-			createTypeConverterTranslator(),
-			createObjectTypeConverterTranslator(),
-			createStructConverterTranslator(),
-			createTableGeneratorTranslator(),
-			createSequenceGeneratorTranslator(),
-			createPropertyTranslator(),
-			createAccessMethodsTranslator()
-		};
-	}
-	
-	protected Translator createMutableTranslator() {
-		return new Translator(MUTABLE, ECLIPSELINK_ORM_PKG.getXmlMutable_Mutable(), DOM_ATTRIBUTE);
-	}
-	
-	protected Translator createConvertTranslator() {
-		return new Translator(CONVERT, ECLIPSELINK_ORM_PKG.getXmlConvertibleMapping_Convert());
-	}
-	
-	protected Translator createConverterTranslator() {
-		return new ConverterTranslator(CONVERTER, ECLIPSELINK_ORM_PKG.getXmlConverterHolder_Converter());
-	}
-	
-	protected Translator createTypeConverterTranslator() {
-		return new TypeConverterTranslator(TYPE_CONVERTER, ECLIPSELINK_ORM_PKG.getXmlConverterHolder_TypeConverter());
-	}
-	
-	protected Translator createObjectTypeConverterTranslator() {
-		return new ObjectTypeConverterTranslator(OBJECT_TYPE_CONVERTER, ECLIPSELINK_ORM_PKG.getXmlConverterHolder_ObjectTypeConverter());
-	}
-	
-	protected Translator createStructConverterTranslator() {
-		return new StructConverterTranslator(STRUCT_CONVERTER, ECLIPSELINK_ORM_PKG.getXmlConverterHolder_StructConverter());
-	}
-		
-	protected Translator createPropertyTranslator() {
-		return new PropertyTranslator(PROPERTY, ECLIPSELINK_ORM_PKG.getXmlId_Properties());
-	}
-	
-	protected Translator createAccessMethodsTranslator() {
-		return new AccessMethodsTranslator();
-	}
-}
diff --git a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/resource/orm/translators/EclipseLinkManyToManyTranslator.java b/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/resource/orm/translators/EclipseLinkManyToManyTranslator.java
deleted file mode 100644
index b1ef99d..0000000
--- a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/resource/orm/translators/EclipseLinkManyToManyTranslator.java
+++ /dev/null
@@ -1,59 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008, 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.eclipselink.core.internal.resource.orm.translators;
-
-import org.eclipse.emf.ecore.EObject;
-import org.eclipse.emf.ecore.EStructuralFeature;
-import org.eclipse.jpt.core.internal.resource.orm.translators.ManyToManyTranslator;
-import org.eclipse.jpt.eclipselink.core.resource.orm.EclipseLinkOrmFactory;
-import org.eclipse.wst.common.internal.emf.resource.Translator;
-
-public class EclipseLinkManyToManyTranslator extends ManyToManyTranslator
-	implements EclipseLinkOrmXmlMapper
-{
-	public EclipseLinkManyToManyTranslator(String domNameAndPath, EStructuralFeature aFeature) {
-		super(domNameAndPath, aFeature);
-	}
-	
-	
-	@Override
-	public EObject createEMFObject(String nodeName, String readAheadName) {
-		return EclipseLinkOrmFactory.eINSTANCE.createXmlManyToManyImpl();
-	}
-		
-	@Override
-	protected Translator[] createChildren() {
-		return new Translator[] {
-			createNameTranslator(),
-			createTargetEntityTranslator(),
-			createFetchTranslator(),
-			createMappedByTranslator(),
-			createOrderByTranslator(),
-			createMapKeyTranslator(),
-			createJoinTableTranslator(),
-			createCascadeTranslator(),
-			createJoinFetchTranslator(),
-			createPropertyTranslator(),
-			createAccessMethodsTranslator()
-		};
-	}
-	
-	protected Translator createJoinFetchTranslator() {
-		return new Translator(JOIN_FETCH, ECLIPSELINK_ORM_PKG.getXmlJoinFetch_JoinFetch());
-	}
-	
-	protected Translator createPropertyTranslator() {
-		return new PropertyTranslator(PROPERTY, ECLIPSELINK_ORM_PKG.getXmlManyToMany_Properties());
-	}
-	
-	protected Translator createAccessMethodsTranslator() {
-		return new AccessMethodsTranslator();
-	}
-}
diff --git a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/resource/orm/translators/EclipseLinkManyToOneTranslator.java b/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/resource/orm/translators/EclipseLinkManyToOneTranslator.java
deleted file mode 100644
index 9cabe2e..0000000
--- a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/resource/orm/translators/EclipseLinkManyToOneTranslator.java
+++ /dev/null
@@ -1,58 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008, 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.eclipselink.core.internal.resource.orm.translators;
-
-import org.eclipse.emf.ecore.EObject;
-import org.eclipse.emf.ecore.EStructuralFeature;
-import org.eclipse.jpt.core.internal.resource.orm.translators.ManyToOneTranslator;
-import org.eclipse.jpt.eclipselink.core.resource.orm.EclipseLinkOrmFactory;
-import org.eclipse.wst.common.internal.emf.resource.Translator;
-
-public class EclipseLinkManyToOneTranslator extends ManyToOneTranslator
-	implements EclipseLinkOrmXmlMapper
-{
-	public EclipseLinkManyToOneTranslator(String domNameAndPath, EStructuralFeature aFeature) {
-		super(domNameAndPath, aFeature);
-	}
-	
-	
-	@Override
-	public EObject createEMFObject(String nodeName, String readAheadName) {
-		return EclipseLinkOrmFactory.eINSTANCE.createXmlManyToOneImpl();
-	}
-		
-	@Override
-	protected Translator[] createChildren() {
-		return new Translator[] {
-			createNameTranslator(),
-			createTargetEntityTranslator(),
-			createFetchTranslator(),
-			createOptionalTranslator(),
-			createJoinColumnTranslator(),
-			createJoinTableTranslator(),
-			createCascadeTranslator(),
-			createJoinFetchTranslator(),
-			createPropertyTranslator(),
-			createAccessMethodsTranslator()
-		};
-	}
-	
-	protected Translator createJoinFetchTranslator() {
-		return new Translator(JOIN_FETCH, ECLIPSELINK_ORM_PKG.getXmlJoinFetch_JoinFetch());
-	}
-	
-	protected Translator createPropertyTranslator() {
-		return new PropertyTranslator(PROPERTY, ECLIPSELINK_ORM_PKG.getXmlManyToOne_Properties());
-	}
-	
-	protected Translator createAccessMethodsTranslator() {
-		return new AccessMethodsTranslator();
-	}
-}
diff --git a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/resource/orm/translators/EclipseLinkMappedSuperclassTranslator.java b/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/resource/orm/translators/EclipseLinkMappedSuperclassTranslator.java
deleted file mode 100644
index 4692ace..0000000
--- a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/resource/orm/translators/EclipseLinkMappedSuperclassTranslator.java
+++ /dev/null
@@ -1,134 +0,0 @@
-/*******************************************************************************
- *  Copyright (c) 2008, 2009  Oracle. 
- *  All rights reserved.  This program and the accompanying materials are 
- *  made available under the terms of the Eclipse Public License v1.0 which 
- *  accompanies this distribution, and is available at 
- *  http://www.eclipse.org/legal/epl-v10.html
- *  
- *  Contributors: 
- *  	Oracle - initial API and implementation
- *******************************************************************************/
-package org.eclipse.jpt.eclipselink.core.internal.resource.orm.translators;
-
-import org.eclipse.emf.ecore.EObject;
-import org.eclipse.emf.ecore.EStructuralFeature;
-import org.eclipse.jpt.core.internal.resource.orm.translators.MappedSuperclassTranslator;
-import org.eclipse.jpt.eclipselink.core.resource.orm.EclipseLinkOrmFactory;
-import org.eclipse.wst.common.internal.emf.resource.Translator;
-
-public class EclipseLinkMappedSuperclassTranslator extends MappedSuperclassTranslator
-	implements EclipseLinkOrmXmlMapper
-{
-	public EclipseLinkMappedSuperclassTranslator(String domNameAndPath, EStructuralFeature aFeature) {
-		super(domNameAndPath, aFeature);
-	}
-	
-	
-	@Override
-	public EObject createEMFObject(String nodeName, String readAheadName) {
-		return EclipseLinkOrmFactory.eINSTANCE.createXmlMappedSuperclass();
-	}
-	
-	
-	@Override
-	protected Translator[] createChildren() {
-		return new Translator[] {
-			createClassTranslator(),
-			createAccessTranslator(),
-			createMetadataCompleteTranslator(),
-			createReadOnlyTranslator(),
-			createExistenceCheckingTranslator(),
-			createExcludeDefaultMappingsTranslator(),
-			createDescriptionTranslator(),
-			createCustomizerTranslator(),
-			createChangeTrackingTranslator(),
-			createIdClassTranslator(),
-			createOptimisticLockingTranslator(),
-			createCacheTranslator(),
-			createConverterTranslator(),
-			createTypeConverterTranslator(),
-			createObjectTypeConverterTranslator(),
-			createStructConverterTranslator(),
-			createCopyPolicyTranslator(),
-			createInstantiationCopyPolicyTranslator(),
-			createCloneCopyPolicyTranslator(),
-			createExcludeDefaultListenersTranslator(),
-			createExcludeSuperclassListenersTranslator(),
-			createEntityListenersTranslator(),
-			createPrePersistTranslator(),
-			createPostPersistTranslator(),
-			createPreRemoveTranslator(),
-			createPostRemoveTranslator(),
-			createPreUpdateTranslator(),
-			createPostUpdateTranslator(),
-			createPostLoadTranslator(),
-			createPropertyTranslator(),
-			createAttributesTranslator()
-		};
-	}
-	
-	protected Translator createReadOnlyTranslator() {
-		return new Translator(READ_ONLY, ECLIPSELINK_ORM_PKG.getXmlReadOnly_ReadOnly(), DOM_ATTRIBUTE);
-	}
-	
-	protected Translator createExistenceCheckingTranslator() {
-		return new Translator(EXISTENCE_CHECKING, ECLIPSELINK_ORM_PKG.getXmlCacheHolder_ExistenceChecking(), DOM_ATTRIBUTE);
-	}
-	
-	protected Translator createCustomizerTranslator() {
-		return new CustomizerTranslator(CUSTOMIZER, ECLIPSELINK_ORM_PKG.getXmlCustomizerHolder_Customizer());
-	}
-	
-	protected Translator createChangeTrackingTranslator() {
-		return new EclipseLinkChangeTrackingTranslator(CHANGE_TRACKING, ECLIPSELINK_ORM_PKG.getXmlChangeTrackingHolder_ChangeTracking(), END_TAG_NO_INDENT);
-	}
-	
-	protected Translator createCacheTranslator() {
-		return new CacheTranslator();
-	}
-	
-	protected Translator createConverterTranslator() {
-		return new ConverterTranslator(CONVERTER, ECLIPSELINK_ORM_PKG.getXmlConvertersHolder_Converters());
-	}
-	
-	protected Translator createTypeConverterTranslator() {
-		return new TypeConverterTranslator(TYPE_CONVERTER, ECLIPSELINK_ORM_PKG.getXmlConvertersHolder_TypeConverters());
-	}
-	
-	protected Translator createObjectTypeConverterTranslator() {
-		return new ObjectTypeConverterTranslator(OBJECT_TYPE_CONVERTER, ECLIPSELINK_ORM_PKG.getXmlConvertersHolder_ObjectTypeConverters());
-	}
-	
-	protected Translator createStructConverterTranslator() {
-		return new StructConverterTranslator(STRUCT_CONVERTER, ECLIPSELINK_ORM_PKG.getXmlConvertersHolder_StructConverters());
-	}
-	
-	@Override
-	protected Translator createAttributesTranslator() {
-		return new EclipseLinkAttributesTranslator(ATTRIBUTES, ORM_PKG.getXmlTypeMapping_Attributes());
-	}
-	
-	protected Translator createPropertyTranslator() {
-		return new PropertyTranslator(PROPERTY, ECLIPSELINK_ORM_PKG.getXmlMappedSuperclass_Properties());
-	}
-	
-	protected Translator createCopyPolicyTranslator() {
-		return new CopyPolicyTranslator(COPY_POLICY, ECLIPSELINK_ORM_PKG.getXmlMappedSuperclass_CopyPolicy());
-	}
-	
-	protected Translator createInstantiationCopyPolicyTranslator() {
-		return new InstantiationCopyPolicyTranslator(INSTANTIATION_COPY_POLICY, ECLIPSELINK_ORM_PKG.getXmlMappedSuperclass_InstantiationCopyPolicy());
-	}
-	
-	protected Translator createCloneCopyPolicyTranslator() {
-		return new CloneCopyPolicyTranslator(CLONE_COPY_POLICY, ECLIPSELINK_ORM_PKG.getXmlMappedSuperclass_CloneCopyPolicy());
-	}
-	
-	protected Translator createOptimisticLockingTranslator() {
-		return new OptimisticLockingTranslator(OPTIMISTIC_LOCKING, ECLIPSELINK_ORM_PKG.getXmlMappedSuperclass_OptimisticLocking());
-	}
-
-	protected Translator createExcludeDefaultMappingsTranslator() {
-		return new Translator(EXCLUDE_DEFAULT_MAPPINGS, ECLIPSELINK_ORM_PKG.getXmlMappedSuperclass_ExcludeDefaultMappings(), DOM_ATTRIBUTE);
-	}
-}
diff --git a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/resource/orm/translators/EclipseLinkOneToManyTranslator.java b/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/resource/orm/translators/EclipseLinkOneToManyTranslator.java
deleted file mode 100644
index 336ae2b..0000000
--- a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/resource/orm/translators/EclipseLinkOneToManyTranslator.java
+++ /dev/null
@@ -1,66 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008, 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.eclipselink.core.internal.resource.orm.translators;
-
-import org.eclipse.emf.ecore.EObject;
-import org.eclipse.emf.ecore.EStructuralFeature;
-import org.eclipse.jpt.core.internal.resource.orm.translators.OneToManyTranslator;
-import org.eclipse.jpt.core.internal.resource.xml.translators.EmptyTagBooleanTranslator;
-import org.eclipse.jpt.eclipselink.core.resource.orm.EclipseLinkOrmFactory;
-import org.eclipse.wst.common.internal.emf.resource.Translator;
-
-public class EclipseLinkOneToManyTranslator extends OneToManyTranslator
-	implements EclipseLinkOrmXmlMapper
-{
-	public EclipseLinkOneToManyTranslator(String domNameAndPath, EStructuralFeature aFeature) {
-		super(domNameAndPath, aFeature);
-	}
-	
-	
-	@Override
-	public EObject createEMFObject(String nodeName, String readAheadName) {
-		return EclipseLinkOrmFactory.eINSTANCE.createXmlOneToManyImpl();
-	}
-	
-	@Override
-	protected Translator[] createChildren() {
-		return new Translator[] {
-			createNameTranslator(),
-			createTargetEntityTranslator(),
-			createFetchTranslator(),
-			createMappedByTranslator(),
-			createOrderByTranslator(),
-			createMapKeyTranslator(),
-			createJoinTableTranslator(),
-			createJoinColumnTranslator(),
-			createCascadeTranslator(),
-			createPrivateOwnedTranslator(),
-			createJoinFetchTranslator(),
-			createPropertyTranslator(),
-			createAccessMethodsTranslator()
-		};
-	}
-	
-	protected Translator createPrivateOwnedTranslator() {
-		return new EmptyTagBooleanTranslator(PRIVATE_OWNED, ECLIPSELINK_ORM_PKG.getXmlPrivateOwned_PrivateOwned());
-	}
-	
-	protected Translator createJoinFetchTranslator() {
-		return new Translator(JOIN_FETCH, ECLIPSELINK_ORM_PKG.getXmlJoinFetch_JoinFetch());
-	}
-	
-	protected Translator createPropertyTranslator() {
-		return new PropertyTranslator(PROPERTY, ECLIPSELINK_ORM_PKG.getXmlOneToMany_Properties());
-	}
-
-	protected Translator createAccessMethodsTranslator() {
-		return new AccessMethodsTranslator();
-	}
-}
diff --git a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/resource/orm/translators/EclipseLinkOneToOneTranslator.java b/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/resource/orm/translators/EclipseLinkOneToOneTranslator.java
deleted file mode 100644
index 37f32c7..0000000
--- a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/resource/orm/translators/EclipseLinkOneToOneTranslator.java
+++ /dev/null
@@ -1,66 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008, 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.eclipselink.core.internal.resource.orm.translators;
-
-import org.eclipse.emf.ecore.EObject;
-import org.eclipse.emf.ecore.EStructuralFeature;
-import org.eclipse.jpt.core.internal.resource.orm.translators.OneToOneTranslator;
-import org.eclipse.jpt.core.internal.resource.xml.translators.EmptyTagBooleanTranslator;
-import org.eclipse.jpt.eclipselink.core.resource.orm.EclipseLinkOrmFactory;
-import org.eclipse.wst.common.internal.emf.resource.Translator;
-
-public class EclipseLinkOneToOneTranslator extends OneToOneTranslator
-	implements EclipseLinkOrmXmlMapper
-{
-	public EclipseLinkOneToOneTranslator(String domNameAndPath, EStructuralFeature aFeature) {
-		super(domNameAndPath, aFeature);
-	}
-	
-	
-	@Override
-	public EObject createEMFObject(String nodeName, String readAheadName) {
-		return EclipseLinkOrmFactory.eINSTANCE.createXmlOneToOneImpl();
-	}
-	
-	@Override
-	protected Translator[] createChildren() {
-		return new Translator[] {
-			createNameTranslator(),
-			createTargetEntityTranslator(),
-			createFetchTranslator(),
-			createOptionalTranslator(),
-			createMappedByTranslator(),
-			createPrimaryKeyJoinColumnTranslator(),
-			createJoinColumnTranslator(),
-			createJoinTableTranslator(),
-			createCascadeTranslator(),
-			createPrivateOwnedTranslator(),
-			createJoinFetchTranslator(),
-			createPropertyTranslator(),
-			createAccessMethodsTranslator()
-		};
-	}
-	
-	protected Translator createPrivateOwnedTranslator() {
-		return new EmptyTagBooleanTranslator(PRIVATE_OWNED, ECLIPSELINK_ORM_PKG.getXmlPrivateOwned_PrivateOwned());
-	}
-	
-	protected Translator createJoinFetchTranslator() {
-		return new Translator(JOIN_FETCH, ECLIPSELINK_ORM_PKG.getXmlJoinFetch_JoinFetch());
-	}
-	
-	protected Translator createPropertyTranslator() {
-		return new PropertyTranslator(PROPERTY, ECLIPSELINK_ORM_PKG.getXmlOneToOne_Properties());
-	}
-	
-	protected Translator createAccessMethodsTranslator() {
-		return new AccessMethodsTranslator();
-	}
-}
diff --git a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/resource/orm/translators/EclipseLinkOrmXmlMapper.java b/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/resource/orm/translators/EclipseLinkOrmXmlMapper.java
deleted file mode 100644
index 6942576..0000000
--- a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/resource/orm/translators/EclipseLinkOrmXmlMapper.java
+++ /dev/null
@@ -1,127 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008, 2009 Oracle. All rights reserved. This
- * program and the accompanying materials are made available under the terms of
- * the Eclipse Public License v1.0 which accompanies this distribution, and is
- * available at http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors: Oracle. - initial API and implementation
- *******************************************************************************/
-package org.eclipse.jpt.eclipselink.core.internal.resource.orm.translators;
-
-import org.eclipse.jpt.core.internal.resource.orm.translators.OrmXmlMapper;
-import org.eclipse.jpt.eclipselink.core.internal.EclipseLinkConstants;
-import org.eclipse.jpt.eclipselink.core.resource.orm.EclipseLinkOrmPackage;
-
-public interface EclipseLinkOrmXmlMapper
-	extends OrmXmlMapper, EclipseLinkConstants
-{
-	EclipseLinkOrmPackage ECLIPSELINK_ORM_PKG = EclipseLinkOrmPackage.eINSTANCE;
-	
-	String ACCESS_METHODS = "access-methods"; //$NON-NLS-1$
-	String ACCESS_METHODS__GET_METHOD = "get-method"; //$NON-NLS-1$
-	String ACCESS_METHODS__SET_METHOD = "set-method"; //$NON-NLS-1$
-	
-	String BASIC_COLLECTION = "basic-collection";  //$NON-NLS-1$
-	
-	String BASIC_MAP = "basic-map";  //$NON-NLS-1$
-	
-	String CACHE = "cache";  //$NON-NLS-1$
-	String CACHE__EXPIRY = "expiry";  //$NON-NLS-1$
-	String CACHE__SIZE = "size";  //$NON-NLS-1$
-	String CACHE__SHARED = "shared";  //$NON-NLS-1$
-	String CACHE__TYPE = "type";  //$NON-NLS-1$
-	String CACHE__ALWAYS_REFRESH = "always-refresh";  //$NON-NLS-1$
-	String CACHE__REFRESH_ONLY_IF_NEWER = "refresh-only-if-newer";  //$NON-NLS-1$
-	String CACHE__DISABLE_HITS = "disable-hits";  //$NON-NLS-1$
-	String CACHE__COORDINATION_TYPE = "coordination-type";  //$NON-NLS-1$
-	
-	String CHANGE_TRACKING = "change-tracking";  //$NON-NLS-1$
-		
-	String CONVERSION_VALUE = "conversion-value"; //$NON-NLS-1$
-	String CONVERSION_VALUE__DATA_VALUE = "data-value"; //$NON-NLS-1$
-	String CONVERSION_VALUE__OBJECT_VALUE = "object-value"; //$NON-NLS-1$
-
-	String CONVERT = "convert"; //$NON-NLS-1$
-	
-	String CONVERTER = "converter"; //$NON-NLS-1$
-	String CONVERTER__CLASS = "class"; //$NON-NLS-1$
-	String CONVERTER__NAME = "name"; //$NON-NLS-1$
-	
-	String COPY_POLICY = "copy-policy"; //$NON-NLS-1$
-		String COPY_POLICY__CLASS = "class"; //$NON-NLS-1$
-	
-	String CLONE_COPY_POLICY = "clone-copy-policy"; //$NON-NLS-1$
-		String CLONE_COPY_POLICY__METHOD = "method"; //$NON-NLS-1$
-		String CLONE_COPY_POLICY__WORKING_COPY_METHOD = "working-copy-method"; //$NON-NLS-1$
-	
-	String CUSTOMIZER = "customizer";  //$NON-NLS-1$
-
-	String EXCLUDE_DEFAULT_MAPPINGS = "exclude-default-mappings";  //$NON-NLS-1$
-
-	String EXISTENCE_CHECKING = "existence-checking";  //$NON-NLS-1$
-	
-	String EXPIRY_TIME_OF_DAY = "expiry-time-of-day";  //$NON-NLS-1$
-	String EXPIRY_TIME_OF_DAY__HOUR = "hour";  //$NON-NLS-1$
-	String EXPIRY_TIME_OF_DAY__MINUTE = "minute";  //$NON-NLS-1$
-	String EXPIRY_TIME_OF_DAY__SECOND = "second";  //$NON-NLS-1$
-	String EXPIRY_TIME_OF_DAY__MILLISECOND = "millisecond";  //$NON-NLS-1$
-	
-	String INSTANTIATION_COPY_POLICY = "instantiation-copy-policy"; //$NON-NLS-1$
-
-	String JOIN_FETCH = "join-fetch";  //$NON-NLS-1$
-	
-	String MUTABLE = "mutable";  //$NON-NLS-1$
-	
-	String NAMED_STORED_PROCEDURE_QUERY = "named-stored-procedure-query"; //$NON-NLS-1$
-		String NAMED_STORED_PROCEDURE_QUERY__NAME = "name"; //$NON-NLS-1$
-		String NAMED_STORED_PROCEDURE_QUERY__HINT = "hint"; //$NON-NLS-1$
-		String NAMED_STORED_PROCEDURE_QUERY__RESULT_CLASS = "result-class"; //$NON-NLS-1$
-		String NAMED_STORED_PROCEDURE_QUERY__RESULT_SET_MAPPING = "result-set-mapping"; //$NON-NLS-1$
-		String NAMED_STORED_PROCEDURE_QUERY__PROCEDURE_NAME = "procedure-name"; //$NON-NLS-1$
-		String NAMED_STORED_PROCEDURE_QUERY__RETURNS_RESULT_SET = "returns-result-set"; //$NON-NLS-1$
-	String NAMED_STORED_PROCEDURE_QUERY__PARAMETER = "parameter"; //$NON-NLS-1$
-		String PARAMETER__DIRECTION = "direction"; //$NON-NLS-1$
-		String PARAMETER__NAME = "name"; //$NON-NLS-1$
-		String PARAMETER__QUERY_PARAMETER = "query-parameter"; //$NON-NLS-1$
-		String PARAMETER__TYPE = "type"; //$NON-NLS-1$
-		String PARAMETER__JDBC_TYPE = "jdbc-type"; //$NON-NLS-1$
-		String PARAMETER__JDBC_TYPE_NAME = "jdbc-type-name"; //$NON-NLS-1$
-		
-
-	String OBJECT_TYPE_CONVERTER = "object-type-converter"; //$NON-NLS-1$
-	String OBJECT_TYPE_CONVERTER__NAME = "name"; //$NON-NLS-1$
-	String OBJECT_TYPE_CONVERTER__DATA_TYPE = "data-type"; //$NON-NLS-1$
-	String OBJECT_TYPE_CONVERTER__OBJECT_TYPE = "object-type"; //$NON-NLS-1$
-	String OBJECT_TYPE_CONVERTER__DEFAULT_OBJECT_VALUE = "default-object-value"; //$NON-NLS-1$
-
-	String OPTIMISTIC_LOCKING = "optimistic-locking"; //$NON-NLS-1$
-		String OPTIMISTIC_LOCKING__SELECTED_COLUMN = "selected-column"; //$NON-NLS-1$
-		String OPTIMISTIC_LOCKING__TYPE = "type"; //$NON-NLS-1$
-		String OPTIMISTIC_LOCKING__CASCADE = "cascade"; //$NON-NLS-1$
-
-	String PRIVATE_OWNED = "private-owned";  //$NON-NLS-1$
-	
-	String PROPERTY = "property"; //$NON-NLS-1$
-	String PROPERTY__NAME = "name"; //$NON-NLS-1$
-	String PROPERTY__VALUE = "value"; //$NON-NLS-1$
-	String PROPERTY__VALUE_TYPE = "value-type"; //$NON-NLS-1$
-	
-	String READ_ONLY = "read-only";  //$NON-NLS-1$
-	
-	
-	String STRUCT_CONVERTER = "struct-converter"; //$NON-NLS-1$
-	String STRUCT_CONVERTER__NAME = "name"; //$NON-NLS-1$
-	String STRUCT_CONVERTER__CONVERTER = "converter"; //$NON-NLS-1$
-	
-	String TRANSFORMATION = "transformation";  //$NON-NLS-1$
-
-	String TYPE = "type";  //$NON-NLS-1$
-	
-	String TYPE_CONVERTER = "type-converter"; //$NON-NLS-1$
-	String TYPE_CONVERTER__NAME = "name"; //$NON-NLS-1$
-	String TYPE_CONVERTER__DATA_TYPE = "data-type"; //$NON-NLS-1$
-	String TYPE_CONVERTER__OBJECT_TYPE = "object-type"; //$NON-NLS-1$
-		
-	String VARIABLE_ONE_TO_ONE = "variable-one-to-one";  //$NON-NLS-1$
-
-}
diff --git a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/resource/orm/translators/EclipseLinkPersistenceUnitMetadataTranslator.java b/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/resource/orm/translators/EclipseLinkPersistenceUnitMetadataTranslator.java
deleted file mode 100644
index 44a9461..0000000
--- a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/resource/orm/translators/EclipseLinkPersistenceUnitMetadataTranslator.java
+++ /dev/null
@@ -1,42 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- *******************************************************************************/
-package org.eclipse.jpt.eclipselink.core.internal.resource.orm.translators;
-
-import org.eclipse.emf.ecore.EObject;
-import org.eclipse.emf.ecore.EStructuralFeature;
-import org.eclipse.jpt.core.internal.resource.orm.translators.PersistenceUnitMetadataTranslator;
-import org.eclipse.jpt.core.internal.resource.xml.translators.EmptyTagBooleanTranslator;
-import org.eclipse.jpt.eclipselink.core.resource.orm.EclipseLinkOrmFactory;
-import org.eclipse.wst.common.internal.emf.resource.Translator;
-
-public class EclipseLinkPersistenceUnitMetadataTranslator extends PersistenceUnitMetadataTranslator implements EclipseLinkOrmXmlMapper
-{
-	public EclipseLinkPersistenceUnitMetadataTranslator(String domNameAndPath, EStructuralFeature aFeature) {
-		super(domNameAndPath, aFeature);
-	}
-
-	@Override
-	public EObject createEMFObject(String nodeName, String readAheadName) {
-		return EclipseLinkOrmFactory.eINSTANCE.createXmlPersistenceUnitMetadata();
-	}
-	
-	@Override
-	protected Translator[] createChildren() {
-		return new Translator[] {
-			createXmlMappingMetadataCompleteTranslator(),
-			createExcludeDefaultMappingsTranslator(),
-			createPersistenceUnitDefaultsTranslator(),
-		};
-	}
-
-	protected Translator createExcludeDefaultMappingsTranslator() {
-		return new EmptyTagBooleanTranslator(EXCLUDE_DEFAULT_MAPPINGS, ECLIPSELINK_ORM_PKG.getXmlPersistenceUnitMetadata_ExcludeDefaultMappings());
-	}
-}
diff --git a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/resource/orm/translators/EclipseLinkVersionTranslator.java b/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/resource/orm/translators/EclipseLinkVersionTranslator.java
deleted file mode 100644
index d20c705..0000000
--- a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/resource/orm/translators/EclipseLinkVersionTranslator.java
+++ /dev/null
@@ -1,78 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008, 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.eclipselink.core.internal.resource.orm.translators;
-
-import org.eclipse.emf.ecore.EObject;
-import org.eclipse.emf.ecore.EStructuralFeature;
-import org.eclipse.jpt.core.internal.resource.orm.translators.VersionTranslator;
-import org.eclipse.jpt.eclipselink.core.resource.orm.EclipseLinkOrmFactory;
-import org.eclipse.wst.common.internal.emf.resource.Translator;
-
-public class EclipseLinkVersionTranslator extends VersionTranslator
-	implements EclipseLinkOrmXmlMapper
-{
-	public EclipseLinkVersionTranslator(String domNameAndPath, EStructuralFeature aFeature) {
-		super(domNameAndPath, aFeature);
-	}
-	
-	@Override
-	public EObject createEMFObject(String nodeName, String readAheadName) {
-		return EclipseLinkOrmFactory.eINSTANCE.createXmlVersionImpl();
-	}
-	
-	@Override
-	protected Translator[] createChildren() {
-		return new Translator[] {
-			createNameTranslator(),
-			createMutableTranslator(),
-			createColumnTranslator(), 
-			createTemporalTranslator(),
-			createConvertTranslator(),
-			createConverterTranslator(),
-			createTypeConverterTranslator(),
-			createObjectTypeConverterTranslator(),
-			createStructConverterTranslator(),
-			createPropertyTranslator(),
-			createAccessMethodsTranslator()
-		};
-	}
-	
-	protected Translator createMutableTranslator() {
-		return new Translator(MUTABLE, ECLIPSELINK_ORM_PKG.getXmlMutable_Mutable(), DOM_ATTRIBUTE);
-	}
-	
-	protected Translator createConvertTranslator() {
-		return new Translator(CONVERT, ECLIPSELINK_ORM_PKG.getXmlConvertibleMapping_Convert());
-	}
-	
-	protected Translator createConverterTranslator() {
-		return new ConverterTranslator(CONVERTER, ECLIPSELINK_ORM_PKG.getXmlConverterHolder_Converter());
-	}
-	
-	protected Translator createTypeConverterTranslator() {
-		return new TypeConverterTranslator(TYPE_CONVERTER, ECLIPSELINK_ORM_PKG.getXmlConverterHolder_TypeConverter());
-	}
-	
-	protected Translator createObjectTypeConverterTranslator() {
-		return new ObjectTypeConverterTranslator(OBJECT_TYPE_CONVERTER, ECLIPSELINK_ORM_PKG.getXmlConverterHolder_ObjectTypeConverter());
-	}
-	
-	protected Translator createStructConverterTranslator() {
-		return new StructConverterTranslator(STRUCT_CONVERTER, ECLIPSELINK_ORM_PKG.getXmlConverterHolder_StructConverter());
-	}
-	
-	protected Translator createPropertyTranslator() {
-		return new PropertyTranslator(PROPERTY, ECLIPSELINK_ORM_PKG.getXmlVersion_Properties());
-	}
-	
-	protected Translator createAccessMethodsTranslator() {
-		return new AccessMethodsTranslator();
-	}
-}
diff --git a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/resource/orm/translators/ExpiryTimeOfDayTranslator.java b/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/resource/orm/translators/ExpiryTimeOfDayTranslator.java
deleted file mode 100644
index 7fb7c68..0000000
--- a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/resource/orm/translators/ExpiryTimeOfDayTranslator.java
+++ /dev/null
@@ -1,54 +0,0 @@
-/*******************************************************************************
- *  Copyright (c) 2008 Oracle. All rights reserved. This
- *  program and the accompanying materials are made available under the terms of
- *  the Eclipse Public License v1.0 which accompanies this distribution, and is
- *  available at http://www.eclipse.org/legal/epl-v10.html
- *  
- *  Contributors: Oracle. - initial API and implementation
- *******************************************************************************/
-package org.eclipse.jpt.eclipselink.core.internal.resource.orm.translators;
-
-import org.eclipse.wst.common.internal.emf.resource.Translator;
-
-public class ExpiryTimeOfDayTranslator extends Translator
-	implements EclipseLinkOrmXmlMapper
-{	
-	private Translator[] children;	
-	
-	
-	public ExpiryTimeOfDayTranslator() {
-		super(EXPIRY_TIME_OF_DAY, ECLIPSELINK_ORM_PKG.getXmlCache_ExpiryTimeOfDay(), END_TAG_NO_INDENT);
-	}
-	
-	@Override
-	protected Translator[] getChildren() {
-		if (this.children == null) {
-			this.children = createChildren();
-		}
-		return this.children;
-	}
-		
-	protected Translator[] createChildren() {
-		return new Translator[] {
-			createHourTranslator(),
-			createMinuteTranslator(),
-			createSecondTranslator(),
-			createMillisecondTranslator(),
-		};
-	}
-	protected Translator createHourTranslator() {
-		return new Translator(EXPIRY_TIME_OF_DAY__HOUR, ECLIPSELINK_ORM_PKG.getXmlTimeOfDay_Hour(), DOM_ATTRIBUTE);
-	}
-	
-	protected Translator createMinuteTranslator() {
-		return new Translator(EXPIRY_TIME_OF_DAY__MINUTE, ECLIPSELINK_ORM_PKG.getXmlTimeOfDay_Minute(), DOM_ATTRIBUTE);
-	}
-	
-	protected Translator createSecondTranslator() {
-		return new Translator(EXPIRY_TIME_OF_DAY__SECOND, ECLIPSELINK_ORM_PKG.getXmlTimeOfDay_Second(), DOM_ATTRIBUTE);
-	}
-	
-	protected Translator createMillisecondTranslator() {
-		return new Translator(EXPIRY_TIME_OF_DAY__MILLISECOND, ECLIPSELINK_ORM_PKG.getXmlTimeOfDay_Millisecond(), DOM_ATTRIBUTE);
-	}
-}
diff --git a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/resource/orm/translators/InstantiationCopyPolicyTranslator.java b/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/resource/orm/translators/InstantiationCopyPolicyTranslator.java
deleted file mode 100644
index ca8f9b5..0000000
--- a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/resource/orm/translators/InstantiationCopyPolicyTranslator.java
+++ /dev/null
@@ -1,28 +0,0 @@
-/*******************************************************************************
- *  Copyright (c) 2009 Oracle. All rights reserved. This
- *  program and the accompanying materials are made available under the terms of
- *  the Eclipse Public License v1.0 which accompanies this distribution, and is
- *  available at http://www.eclipse.org/legal/epl-v10.html
- *  
- *  Contributors: Oracle. - initial API and implementation
- *******************************************************************************/
-package org.eclipse.jpt.eclipselink.core.internal.resource.orm.translators;
-
-import org.eclipse.emf.ecore.EObject;
-import org.eclipse.emf.ecore.EStructuralFeature;
-import org.eclipse.jpt.eclipselink.core.resource.orm.EclipseLinkOrmFactory;
-import org.eclipse.wst.common.internal.emf.resource.Translator;
-
-public class InstantiationCopyPolicyTranslator extends Translator
-	implements EclipseLinkOrmXmlMapper
-{	
-	
-	public InstantiationCopyPolicyTranslator(String domNameAndPath, EStructuralFeature aFeature) {
-		super(domNameAndPath, aFeature, END_TAG_NO_INDENT);
-	}
-	
-	@Override
-	public EObject createEMFObject(@SuppressWarnings("unused") String nodeName, @SuppressWarnings("unused") String readAheadName) {
-		return EclipseLinkOrmFactory.eINSTANCE.createXmlInstantiationPolicy();
-	}
-}
diff --git a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/resource/orm/translators/NamedStoredProcedureQueryTranslator.java b/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/resource/orm/translators/NamedStoredProcedureQueryTranslator.java
deleted file mode 100644
index 8b2e6ea..0000000
--- a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/resource/orm/translators/NamedStoredProcedureQueryTranslator.java
+++ /dev/null
@@ -1,74 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- *******************************************************************************/
-package org.eclipse.jpt.eclipselink.core.internal.resource.orm.translators;
-
-import org.eclipse.emf.ecore.EStructuralFeature;
-import org.eclipse.jpt.core.internal.resource.orm.translators.QueryHintTranslator;
-import org.eclipse.jpt.core.internal.resource.xml.translators.BooleanTranslator;
-import org.eclipse.wst.common.internal.emf.resource.Translator;
-
-public class NamedStoredProcedureQueryTranslator extends Translator 
-	implements EclipseLinkOrmXmlMapper
-{
-	private Translator[] children;	
-	
-	
-	public NamedStoredProcedureQueryTranslator(String domNameAndPath, EStructuralFeature aFeature) {
-		super(domNameAndPath, aFeature);
-	}
-	
-	@Override
-	protected Translator[] getChildren() {
-		if (this.children == null) {
-			this.children = createChildren();
-		}
-		return this.children;
-	}
-	
-	protected Translator[] createChildren() {
-		return new Translator[] {
-			createNameTranslator(),
-			createResultClassTranslator(),
-			createResultSetMappingTranslator(),
-			createProcedureNameTranslator(),
-			createReturnResultSetTranslator(),
-			createHintTranslator(),
-			createParameterTranslator(),
-		};
-	}
-
-	private Translator createNameTranslator() {
-		return new Translator(NAMED_STORED_PROCEDURE_QUERY__NAME, ECLIPSELINK_ORM_PKG.getXmlNamedStoredProcedureQuery_Name(), DOM_ATTRIBUTE);
-	}
-	
-	private Translator createResultClassTranslator() {
-		return new Translator(NAMED_STORED_PROCEDURE_QUERY__RESULT_CLASS, ECLIPSELINK_ORM_PKG.getXmlNamedStoredProcedureQuery_ResultClass(), DOM_ATTRIBUTE);
-	}
-	
-	private Translator createResultSetMappingTranslator() {
-		return new Translator(NAMED_STORED_PROCEDURE_QUERY__RESULT_SET_MAPPING, ECLIPSELINK_ORM_PKG.getXmlNamedStoredProcedureQuery_ResultSetMapping(), DOM_ATTRIBUTE);
-	}
-	
-	private Translator createProcedureNameTranslator() {
-		return new Translator(NAMED_STORED_PROCEDURE_QUERY__PROCEDURE_NAME, ECLIPSELINK_ORM_PKG.getXmlNamedStoredProcedureQuery_ProcedureName(), DOM_ATTRIBUTE);
-	}
-	
-	private Translator createReturnResultSetTranslator() {
-		return new BooleanTranslator(NAMED_STORED_PROCEDURE_QUERY__RETURNS_RESULT_SET, ECLIPSELINK_ORM_PKG.getXmlNamedStoredProcedureQuery_ReturnsResultSet(), DOM_ATTRIBUTE);
-	}
-	
-	private Translator createHintTranslator() {
-		return new QueryHintTranslator(NAMED_STORED_PROCEDURE_QUERY__HINT, ECLIPSELINK_ORM_PKG.getXmlNamedStoredProcedureQuery_Hints());
-	}
-	
-	private Translator createParameterTranslator() {
-		return new StoredProcedureParameterTranslator(NAMED_STORED_PROCEDURE_QUERY__PARAMETER, ECLIPSELINK_ORM_PKG.getXmlNamedStoredProcedureQuery_Parameters());
-	}
-}
diff --git a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/resource/orm/translators/ObjectTypeConverterTranslator.java b/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/resource/orm/translators/ObjectTypeConverterTranslator.java
deleted file mode 100644
index f85f678..0000000
--- a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/resource/orm/translators/ObjectTypeConverterTranslator.java
+++ /dev/null
@@ -1,68 +0,0 @@
-/*******************************************************************************
- *  Copyright (c) 2008 Oracle. All rights reserved. This
- *  program and the accompanying materials are made available under the terms of
- *  the Eclipse Public License v1.0 which accompanies this distribution, and is
- *  available at http://www.eclipse.org/legal/epl-v10.html
- *  
- *  Contributors: Oracle. - initial API and implementation
- *******************************************************************************/
-package org.eclipse.jpt.eclipselink.core.internal.resource.orm.translators;
-
-import org.eclipse.emf.ecore.EObject;
-import org.eclipse.emf.ecore.EStructuralFeature;
-import org.eclipse.jpt.eclipselink.core.resource.orm.EclipseLinkOrmFactory;
-import org.eclipse.wst.common.internal.emf.resource.Translator;
-
-public class ObjectTypeConverterTranslator extends Translator
-	implements EclipseLinkOrmXmlMapper
-{	
-	private Translator[] children;	
-	
-	
-	public ObjectTypeConverterTranslator(String domNameAndPath, EStructuralFeature aFeature) {
-		super(domNameAndPath, aFeature);
-	}
-	
-	@Override
-	public EObject createEMFObject(@SuppressWarnings("unused") String nodeName, @SuppressWarnings("unused") String readAheadName) {
-		return EclipseLinkOrmFactory.eINSTANCE.createXmlObjectTypeConverterImpl();
-	}
-	
-	@Override
-	protected Translator[] getChildren() {
-		if (this.children == null) {
-			this.children = createChildren();
-		}
-		return this.children;
-	}
-		
-	protected Translator[] createChildren() {
-		return new Translator[] {
-			createConversionValueTranslator(),
-			createDefaultObjectValueTranslator(),
-			createNameTranslator(),
-			createDataTypeTranslator(),
-			createObjectTypeTranslator(),
-		};
-	}
-	
-	protected Translator createConversionValueTranslator() {
-		return new ConversionValueTranslator();
-	}
-	
-	protected Translator createDefaultObjectValueTranslator() {
-		return new Translator(OBJECT_TYPE_CONVERTER__DEFAULT_OBJECT_VALUE, ECLIPSELINK_ORM_PKG.getXmlObjectTypeConverter_DefaultObjectValue());
-	}
-	
-	protected Translator createNameTranslator() {
-		return new Translator(OBJECT_TYPE_CONVERTER__NAME, ECLIPSELINK_ORM_PKG.getXmlNamedConverter_Name(), DOM_ATTRIBUTE);
-	}
-	
-	protected Translator createDataTypeTranslator() {
-		return new Translator(OBJECT_TYPE_CONVERTER__DATA_TYPE, ECLIPSELINK_ORM_PKG.getXmlObjectTypeConverter_DataType(), DOM_ATTRIBUTE);
-	}
-	
-	protected Translator createObjectTypeTranslator() {
-		return new Translator(OBJECT_TYPE_CONVERTER__OBJECT_TYPE, ECLIPSELINK_ORM_PKG.getXmlObjectTypeConverter_ObjectType(), DOM_ATTRIBUTE);
-	}
-}
diff --git a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/resource/orm/translators/OptimisticLockingTranslator.java b/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/resource/orm/translators/OptimisticLockingTranslator.java
deleted file mode 100644
index b885603..0000000
--- a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/resource/orm/translators/OptimisticLockingTranslator.java
+++ /dev/null
@@ -1,61 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- *******************************************************************************/
-package org.eclipse.jpt.eclipselink.core.internal.resource.orm.translators;
-
-import org.eclipse.emf.ecore.EObject;
-import org.eclipse.emf.ecore.EStructuralFeature;
-import org.eclipse.jpt.core.internal.resource.orm.translators.ColumnTranslator;
-import org.eclipse.jpt.core.internal.resource.xml.translators.BooleanTranslator;
-import org.eclipse.jpt.eclipselink.core.resource.orm.EclipseLinkOrmFactory;
-import org.eclipse.wst.common.internal.emf.resource.Translator;
-
-public class OptimisticLockingTranslator extends Translator
-	implements EclipseLinkOrmXmlMapper
-{	
-	private Translator[] children;	
-	
-	
-	public OptimisticLockingTranslator(String domNameAndPath, EStructuralFeature aFeature) {
-		super(domNameAndPath, aFeature);
-	}
-	
-	@Override
-	public EObject createEMFObject(@SuppressWarnings("unused") String nodeName, @SuppressWarnings("unused") String readAheadName) {
-		return EclipseLinkOrmFactory.eINSTANCE.createXmlOptimisticLocking();
-	}
-	
-	@Override
-	protected Translator[] getChildren() {
-		if (this.children == null) {
-			this.children = createChildren();
-		}
-		return this.children;
-	}
-		
-	protected Translator[] createChildren() {
-		return new Translator[] {
-			createTypeTranslator(),
-			createCascadeTranslator(),
-			createSelectedColumnTranslator(),
-		};
-	}
-	
-	protected Translator createTypeTranslator() {
-		return new Translator(OPTIMISTIC_LOCKING__TYPE, ECLIPSELINK_ORM_PKG.getXmlOptimisticLocking_Type(), DOM_ATTRIBUTE);
-	}
-	
-	protected Translator createCascadeTranslator() {
-		return new BooleanTranslator(OPTIMISTIC_LOCKING__CASCADE, ECLIPSELINK_ORM_PKG.getXmlOptimisticLocking_Cascade(), DOM_ATTRIBUTE);
-	}
-	
-	protected Translator createSelectedColumnTranslator() {
-		return new ColumnTranslator(OPTIMISTIC_LOCKING__SELECTED_COLUMN, ECLIPSELINK_ORM_PKG.getXmlOptimisticLocking_SelectedColumns());
-	}
-}
diff --git a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/resource/orm/translators/PropertyTranslator.java b/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/resource/orm/translators/PropertyTranslator.java
deleted file mode 100644
index 407228a..0000000
--- a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/resource/orm/translators/PropertyTranslator.java
+++ /dev/null
@@ -1,58 +0,0 @@
-/*******************************************************************************
- *  Copyright (c) 2009 Oracle. All rights reserved. This
- *  program and the accompanying materials are made available under the terms of
- *  the Eclipse Public License v1.0 which accompanies this distribution, and is
- *  available at http://www.eclipse.org/legal/epl-v10.html
- *  
- *  Contributors: Oracle. - initial API and implementation
- *******************************************************************************/
-package org.eclipse.jpt.eclipselink.core.internal.resource.orm.translators;
-
-import org.eclipse.emf.ecore.EObject;
-import org.eclipse.emf.ecore.EStructuralFeature;
-import org.eclipse.jpt.eclipselink.core.resource.orm.EclipseLinkOrmFactory;
-import org.eclipse.wst.common.internal.emf.resource.Translator;
-
-public class PropertyTranslator extends Translator
-	implements EclipseLinkOrmXmlMapper
-{	
-	private Translator[] children;	
-	
-	
-	public PropertyTranslator(String domNameAndPath, EStructuralFeature aFeature) {
-		super(domNameAndPath, aFeature, END_TAG_NO_INDENT);
-	}
-	
-	@Override
-	public EObject createEMFObject(@SuppressWarnings("unused") String nodeName, @SuppressWarnings("unused") String readAheadName) {
-		return EclipseLinkOrmFactory.eINSTANCE.createXmlProperty();
-	}
-	
-	@Override
-	protected Translator[] getChildren() {
-		if (this.children == null) {
-			this.children = createChildren();
-		}
-		return this.children;
-	}
-		
-	protected Translator[] createChildren() {
-		return new Translator[] {
-			createNameTranslator(),
-			createValueTranslator(),
-			createValueTypeTranslator(),
-		};
-	}
-	
-	protected Translator createNameTranslator() {
-		return new Translator(PROPERTY__NAME, ECLIPSELINK_ORM_PKG.getXmlProperty_Name(), DOM_ATTRIBUTE);
-	}
-	
-	protected Translator createValueTranslator() {
-		return new Translator(PROPERTY__VALUE, ECLIPSELINK_ORM_PKG.getXmlProperty_Value(), DOM_ATTRIBUTE);
-	}
-	
-	protected Translator createValueTypeTranslator() {
-		return new Translator(PROPERTY__VALUE_TYPE, ECLIPSELINK_ORM_PKG.getXmlProperty_ValueType(), DOM_ATTRIBUTE);
-	}
-}
diff --git a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/resource/orm/translators/StoredProcedureParameterTranslator.java b/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/resource/orm/translators/StoredProcedureParameterTranslator.java
deleted file mode 100644
index 9ffe511..0000000
--- a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/resource/orm/translators/StoredProcedureParameterTranslator.java
+++ /dev/null
@@ -1,66 +0,0 @@
-/*******************************************************************************
- *  Copyright (c) 2009 Oracle. All rights reserved. This
- *  program and the accompanying materials are made available under the terms of
- *  the Eclipse Public License v1.0 which accompanies this distribution, and is
- *  available at http://www.eclipse.org/legal/epl-v10.html
- *  
- *  Contributors: Oracle. - initial API and implementation
- *******************************************************************************/
-package org.eclipse.jpt.eclipselink.core.internal.resource.orm.translators;
-
-import org.eclipse.emf.ecore.EStructuralFeature;
-import org.eclipse.wst.common.internal.emf.resource.Translator;
-
-public class StoredProcedureParameterTranslator extends Translator 
-	implements EclipseLinkOrmXmlMapper
-{
-	private Translator[] children;	
-	
-	
-	public StoredProcedureParameterTranslator(String domNameAndPath, EStructuralFeature aFeature) {
-		super(domNameAndPath, aFeature, END_TAG_NO_INDENT);
-	}
-	
-	@Override
-	protected Translator[] getChildren() {
-		if (this.children == null) {
-			this.children = createChildren();
-		}
-		return this.children;
-	}
-	
-	protected Translator[] createChildren() {
-		return new Translator[] {
-			createDirectionTranslator(),
-			createNameTranslator(),
-			createQueryParameterTranslator(),
-			createTypeTranslator(),
-			createJdbcTypeTranslator(),
-			createJdbcTypeNameTranslator(),
-		};
-	}
-
-	private Translator createDirectionTranslator() {
-		return new Translator(PARAMETER__DIRECTION, ECLIPSELINK_ORM_PKG.getXmlStoredProcedureParameter_Direction(), DOM_ATTRIBUTE);
-	}
-
-	private Translator createNameTranslator() {
-		return new Translator(PARAMETER__NAME, ECLIPSELINK_ORM_PKG.getXmlStoredProcedureParameter_Name(), DOM_ATTRIBUTE);
-	}
-
-	private Translator createQueryParameterTranslator() {
-		return new Translator(PARAMETER__QUERY_PARAMETER, ECLIPSELINK_ORM_PKG.getXmlStoredProcedureParameter_QueryParameter(), DOM_ATTRIBUTE);
-	}
-
-	private Translator createTypeTranslator() {
-		return new Translator(PARAMETER__TYPE, ECLIPSELINK_ORM_PKG.getXmlStoredProcedureParameter_Type(), DOM_ATTRIBUTE);
-	}
-
-	private Translator createJdbcTypeTranslator() {
-		return new Translator(PARAMETER__JDBC_TYPE, ECLIPSELINK_ORM_PKG.getXmlStoredProcedureParameter_JdbcType(), DOM_ATTRIBUTE);
-	}
-
-	private Translator createJdbcTypeNameTranslator() {
-		return new Translator(PARAMETER__JDBC_TYPE_NAME, ECLIPSELINK_ORM_PKG.getXmlStoredProcedureParameter_JdbcTypeName(), DOM_ATTRIBUTE);
-	}
-}
diff --git a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/resource/orm/translators/StructConverterTranslator.java b/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/resource/orm/translators/StructConverterTranslator.java
deleted file mode 100644
index 50eba69..0000000
--- a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/resource/orm/translators/StructConverterTranslator.java
+++ /dev/null
@@ -1,54 +0,0 @@
-/*******************************************************************************
- *  Copyright (c) 2008 Oracle. All rights reserved. This
- *  program and the accompanying materials are made available under the terms of
- *  the Eclipse Public License v1.0 which accompanies this distribution, and is
- *  available at http://www.eclipse.org/legal/epl-v10.html
- *  
- *  Contributors: Oracle. - initial API and implementation
- *******************************************************************************/
-package org.eclipse.jpt.eclipselink.core.internal.resource.orm.translators;
-
-import org.eclipse.emf.ecore.EObject;
-import org.eclipse.emf.ecore.EStructuralFeature;
-import org.eclipse.jpt.eclipselink.core.resource.orm.EclipseLinkOrmFactory;
-import org.eclipse.wst.common.internal.emf.resource.Translator;
-
-public class StructConverterTranslator extends Translator
-	implements EclipseLinkOrmXmlMapper
-{	
-	private Translator[] children;	
-	
-	
-	public StructConverterTranslator(String domNameAndPath, EStructuralFeature aFeature) {
-		super(domNameAndPath, aFeature, END_TAG_NO_INDENT);
-	}
-	
-	@Override
-	public EObject createEMFObject(@SuppressWarnings("unused") String nodeName, @SuppressWarnings("unused") String readAheadName) {
-		return EclipseLinkOrmFactory.eINSTANCE.createXmlStructConverterImpl();
-	}
-	
-	@Override
-	protected Translator[] getChildren() {
-		if (this.children == null) {
-			this.children = createChildren();
-		}
-		return this.children;
-	}
-		
-	protected Translator[] createChildren() {
-		return new Translator[] {
-			createNameTranslator(),
-			createConverterTranslator(),
-		};
-	}
-	
-	protected Translator createNameTranslator() {
-		return new Translator(STRUCT_CONVERTER__NAME, ECLIPSELINK_ORM_PKG.getXmlNamedConverter_Name(), DOM_ATTRIBUTE);
-	}
-	
-	protected Translator createConverterTranslator() {
-		return new Translator(STRUCT_CONVERTER__CONVERTER, ECLIPSELINK_ORM_PKG.getXmlStructConverter_Converter(), DOM_ATTRIBUTE);
-	}
-
-}
diff --git a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/resource/orm/translators/TransformationTranslator.java b/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/resource/orm/translators/TransformationTranslator.java
deleted file mode 100644
index faeacee..0000000
--- a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/resource/orm/translators/TransformationTranslator.java
+++ /dev/null
@@ -1,63 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008, 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.eclipselink.core.internal.resource.orm.translators;
-
-import org.eclipse.emf.ecore.EObject;
-import org.eclipse.emf.ecore.EStructuralFeature;
-import org.eclipse.jpt.eclipselink.core.resource.orm.EclipseLinkOrmFactory;
-import org.eclipse.wst.common.internal.emf.resource.Translator;
-
-public class TransformationTranslator extends Translator
-	implements EclipseLinkOrmXmlMapper
-{
-	private Translator[] children;	
-
-	public TransformationTranslator(String domNameAndPath, EStructuralFeature aFeature) {
-		super(domNameAndPath, aFeature);
-	}
-	
-	@Override
-	public EObject createEMFObject(String nodeName, String readAheadName) {
-		return EclipseLinkOrmFactory.eINSTANCE.createXmlTransformationImpl();
-	}
-	
-	@Override
-	protected Translator[] getChildren() {
-		if (this.children == null) {
-			this.children = createChildren();
-		}
-		return this.children;
-	}
-	
-	protected Translator[] createChildren() {
-		return new Translator[] {
-			createNameTranslator(),
-//			createFetchTranslator(),
-//			createOptionalTranslator(),
-//			createMutableTranslator(),
-//			createReadTransformerTranslator(),
-//			createWriteTransformerTranslator(),
-			createPropertyTranslator(),
-			createAccessMethodsTranslator()
-		};
-	}
-	
-	protected Translator createNameTranslator() {
-		return new Translator(NAME, ORM_PKG.getXmlAttributeMapping_Name(), DOM_ATTRIBUTE);
-	}
-	
-	protected Translator createPropertyTranslator() {
-		return new PropertyTranslator(PROPERTY, ECLIPSELINK_ORM_PKG.getXmlTransformation_Properties());
-	}
-
-	protected Translator createAccessMethodsTranslator() {
-		return new AccessMethodsTranslator();
-	}
-}
diff --git a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/resource/orm/translators/TypeConverterTranslator.java b/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/resource/orm/translators/TypeConverterTranslator.java
deleted file mode 100644
index 2601c2a..0000000
--- a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/resource/orm/translators/TypeConverterTranslator.java
+++ /dev/null
@@ -1,58 +0,0 @@
-/*******************************************************************************
- *  Copyright (c) 2008 Oracle. All rights reserved. This
- *  program and the accompanying materials are made available under the terms of
- *  the Eclipse Public License v1.0 which accompanies this distribution, and is
- *  available at http://www.eclipse.org/legal/epl-v10.html
- *  
- *  Contributors: Oracle. - initial API and implementation
- *******************************************************************************/
-package org.eclipse.jpt.eclipselink.core.internal.resource.orm.translators;
-
-import org.eclipse.emf.ecore.EObject;
-import org.eclipse.emf.ecore.EStructuralFeature;
-import org.eclipse.jpt.eclipselink.core.resource.orm.EclipseLinkOrmFactory;
-import org.eclipse.wst.common.internal.emf.resource.Translator;
-
-public class TypeConverterTranslator extends Translator
-	implements EclipseLinkOrmXmlMapper
-{	
-	private Translator[] children;	
-	
-	
-	public TypeConverterTranslator(String domNameAndPath, EStructuralFeature aFeature) {
-		super(domNameAndPath, aFeature, END_TAG_NO_INDENT);
-	}
-	
-	@Override
-	public EObject createEMFObject(@SuppressWarnings("unused") String nodeName, @SuppressWarnings("unused") String readAheadName) {
-		return EclipseLinkOrmFactory.eINSTANCE.createXmlTypeConverterImpl();
-	}
-	
-	@Override
-	protected Translator[] getChildren() {
-		if (this.children == null) {
-			this.children = createChildren();
-		}
-		return this.children;
-	}
-		
-	protected Translator[] createChildren() {
-		return new Translator[] {
-			createNameTranslator(),
-			createDataTypeTranslator(),
-			createObjectTypeTranslator(),
-		};
-	}
-	
-	protected Translator createNameTranslator() {
-		return new Translator(TYPE_CONVERTER__NAME, ECLIPSELINK_ORM_PKG.getXmlNamedConverter_Name(), DOM_ATTRIBUTE);
-	}
-	
-	protected Translator createDataTypeTranslator() {
-		return new Translator(TYPE_CONVERTER__DATA_TYPE, ECLIPSELINK_ORM_PKG.getXmlTypeConverter_DataType(), DOM_ATTRIBUTE);
-	}
-	
-	protected Translator createObjectTypeTranslator() {
-		return new Translator(TYPE_CONVERTER__OBJECT_TYPE, ECLIPSELINK_ORM_PKG.getXmlTypeConverter_ObjectType(), DOM_ATTRIBUTE);
-	}
-}
diff --git a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/resource/orm/translators/VariableOneToOneTranslator.java b/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/resource/orm/translators/VariableOneToOneTranslator.java
deleted file mode 100644
index 93fb11e..0000000
--- a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/resource/orm/translators/VariableOneToOneTranslator.java
+++ /dev/null
@@ -1,49 +0,0 @@
-/*******************************************************************************
- *  Copyright (c) 2009  Oracle. 
- *  All rights reserved.  This program and the accompanying materials are 
- *  made available under the terms of the Eclipse Public License v1.0 which 
- *  accompanies this distribution, and is available at 
- *  http://www.eclipse.org/legal/epl-v10.html
- *  
- *  Contributors: 
- *  	Oracle - initial API and implementation
- *******************************************************************************/
-package org.eclipse.jpt.eclipselink.core.internal.resource.orm.translators;
-
-import org.eclipse.emf.ecore.EObject;
-import org.eclipse.emf.ecore.EStructuralFeature;
-import org.eclipse.jpt.eclipselink.core.resource.orm.EclipseLinkOrmFactory;
-import org.eclipse.wst.common.internal.emf.resource.Translator;
-
-public class VariableOneToOneTranslator extends Translator
-	implements EclipseLinkOrmXmlMapper
-{
-	private Translator[] children;	
-
-	public VariableOneToOneTranslator(String domNameAndPath, EStructuralFeature aFeature) {
-		super(domNameAndPath, aFeature);
-	}
-	
-	@Override
-	public EObject createEMFObject(String nodeName, String readAheadName) {
-		return EclipseLinkOrmFactory.eINSTANCE.createXmlVariableOneToOneImpl();
-	}
-	
-	@Override
-	protected Translator[] getChildren() {
-		if (this.children == null) {
-			this.children = createChildren();
-		}
-		return this.children;
-	}
-	
-	protected Translator[] createChildren() {
-		return new Translator[] {
-			createNameTranslator()
-		};
-	}
-	
-	protected Translator createNameTranslator() {
-		return new Translator(NAME, ORM_PKG.getXmlAttributeMapping_Name(), DOM_ATTRIBUTE);
-	}
-}
diff --git a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/resource/java/BaseTypeConverterAnnotation.java b/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/resource/java/BaseTypeConverterAnnotation.java
deleted file mode 100644
index 5ad6acc..0000000
--- a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/resource/java/BaseTypeConverterAnnotation.java
+++ /dev/null
@@ -1,68 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008, 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.eclipselink.core.resource.java;
-
-import org.eclipse.jdt.core.dom.CompilationUnit;
-import org.eclipse.jpt.core.utility.TextRange;
-
-/**
- * Common protocol among:
- *     org.eclipse.persistence.annotations.TypeConverter
- *     org.eclipse.persistence.annotations.ObjectTypeConverter
- * 
- * Provisional API: This interface is part of an interim API that is still
- * under development and expected to change significantly before reaching
- * stability. It is available at this early stage to solicit feedback from
- * pioneering adopters on the understanding that any code that uses this API
- * will almost certainly be broken (repeatedly) as the API evolves.
- */
-public interface BaseTypeConverterAnnotation
-	extends NamedConverterAnnotation
-{
-	/**
-	 * Corresponds to the 'dataType' element of the TypeConverter annotation.
-	 * Returns null if the element does not exist in Java.
-	 */
-	String getDataType();
-		String DATA_TYPE_PROPERTY = "dataType"; //$NON-NLS-1$
-	
-	/**
-	 * Corresponds to the 'dataType' element of the TypeConverter annotation.
-	 * Set to null to remove the element.
-	 */
-	void setDataType(String dataType);
-	
-	/**
-	 * Return the {@link TextRange} for the 'dataType' element. If the element 
-	 * does not exist return the {@link TextRange} for the TypeConverter annotation.
-	 */
-	TextRange getDataTypeTextRange(CompilationUnit astRoot);
-
-
-	/**
-	 * Corresponds to the 'objectType' element of the TypeConverter annotation.
-	 * Returns null if the element does not exist in Java.
-	 */
-	String getObjectType();
-		String OBJECT_TYPE_PROPERTY = "objectType"; //$NON-NLS-1$
-	
-	/**
-	 * Corresponds to the 'objectType' element of the TypeConverter annotation.
-	 * Set to null to remove the element.
-	 */
-	void setObjectType(String objectType);
-	
-	/**
-	 * Return the {@link TextRange} for the 'objectType' element. If the element 
-	 * does not exist return the {@link TextRange} for the TypeConverter annotation.
-	 */
-	TextRange getObjectTypeTextRange(CompilationUnit astRoot);
-
-}
diff --git a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/resource/java/BasicCollectionAnnotation.java b/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/resource/java/BasicCollectionAnnotation.java
deleted file mode 100644
index 697211b..0000000
--- a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/resource/java/BasicCollectionAnnotation.java
+++ /dev/null
@@ -1,31 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008, 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.eclipselink.core.resource.java;
-
-import org.eclipse.jpt.core.resource.java.Annotation;
-
-/**
- * Corresponds to the EclipseLink annotation
- * org.eclipse.persistence.annotations.BasicCollection
- * 
- * Provisional API: This interface is part of an interim API that is still
- * under development and expected to change significantly before reaching
- * stability. It is available at this early stage to solicit feedback from
- * pioneering adopters on the understanding that any code that uses this API
- * will almost certainly be broken (repeatedly) as the API evolves.
- * 
- * @version 2.1
- * @since 2.1
- */
-public interface BasicCollectionAnnotation
-	extends Annotation
-{
-	String ANNOTATION_NAME = EclipseLinkJPA.BASIC_COLLECTION;
-}
diff --git a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/resource/java/BasicMapAnnotation.java b/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/resource/java/BasicMapAnnotation.java
deleted file mode 100644
index e719f86..0000000
--- a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/resource/java/BasicMapAnnotation.java
+++ /dev/null
@@ -1,31 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008, 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.eclipselink.core.resource.java;
-
-import org.eclipse.jpt.core.resource.java.Annotation;
-
-/**
- * Corresponds to the Eclipselink annotation
- * org.eclipse.persistence.annotations.BasicMap
- * 
- * Provisional API: This interface is part of an interim API that is still
- * under development and expected to change significantly before reaching
- * stability. It is available at this early stage to solicit feedback from
- * pioneering adopters on the understanding that any code that uses this API
- * will almost certainly be broken (repeatedly) as the API evolves.
- * 
- * @version 2.1
- * @since 2.1
- */
-public interface BasicMapAnnotation
-	extends Annotation
-{
-	String ANNOTATION_NAME = EclipseLinkJPA.BASIC_MAP;
-}
diff --git a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/resource/java/CacheAnnotation.java b/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/resource/java/CacheAnnotation.java
deleted file mode 100644
index 4479766..0000000
--- a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/resource/java/CacheAnnotation.java
+++ /dev/null
@@ -1,220 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008, 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.eclipselink.core.resource.java;
-
-import org.eclipse.jdt.core.dom.CompilationUnit;
-import org.eclipse.jpt.core.resource.java.Annotation;
-import org.eclipse.jpt.core.utility.TextRange;
-
-/**
- * Corresponds to the EclipseLink annotation
- * org.eclipse.persistence.annotations.Cache
- * 
- * Provisional API: This interface is part of an interim API that is still
- * under development and expected to change significantly before reaching
- * stability. It is available at this early stage to solicit feedback from
- * pioneering adopters on the understanding that any code that uses this API
- * will almost certainly be broken (repeatedly) as the API evolves.
- * 
- * @version 2.1
- * @since 2.1
- */
-public interface CacheAnnotation
-	extends Annotation
-{
-	String ANNOTATION_NAME = EclipseLinkJPA.CACHE;
-
-	/**
-	 * Corresponds to the 'type' element of the Cache annotation.
-	 * Return null if the element does not exist in Java.
-	 */
-	CacheType getType();
-		String TYPE_PROPERTY = "type"; //$NON-NLS-1$
-	
-	/**
-	 * Corresponds to the 'type' element of the Cache annotation.
-	 * Set to null to remove the element.
-	 */
-	void setType(CacheType type);
-
-	/**
-	 * Return the {@link TextRange} for the 'type' element.
-	 * If the element does not exist return the {@link TextRange}
-	 * for the Cache annotation.
-	 */
-	TextRange getTypeTextRange(CompilationUnit astRoot);
-	
-
-	/**
-	 * Corresponds to the 'size' element of the Cache annotation.
-	 * Return null if the element does not exist in Java.
-	 */
-	Integer getSize();
-		String SIZE_PROPERTY = "size"; //$NON-NLS-1$
-	
-	/**
-	 * Corresponds to the 'size' element of the Cache annotation.
-	 * Set to null to remove the element.
-	 */
-	void setSize(Integer size);
-		
-	/**
-	 * Return the {@link TextRange} for the 'size' element.
-	 * If the element does not exist return the {@link TextRange}
-	 * for the Cache annotation.
-	 */
-	TextRange getSizeTextRange(CompilationUnit astRoot);
-	
-
-	/**
-	 * Corresponds to the 'shared' element of the Cache annotation.
-	 * Return null if the element does not exist in Java.
-	 */
-	Boolean getShared();
-		String SHARED_PROPERTY = "shared"; //$NON-NLS-1$
-	
-	/**
-	 * Corresponds to the 'shared' element of the Cache annotation.
-	 * Set to null to remove the element.
-	 */
-	void setShared(Boolean shared);
-
-	/**
-	 * Return the {@link TextRange} for the 'shared' element.
-	 * If the element does not exist return the {@link TextRange}
-	 * for the Cache annotation.
-	 */
-	TextRange getSharedTextRange(CompilationUnit astRoot);
-
-
-	/**
-	 * Corresponds to the 'expiry' element of the Cache annotation.
-	 * Return null if the element does not exist in Java.
-	 */
-	Integer getExpiry();
-		String EXPIRY_PROPERTY = "expiry"; //$NON-NLS-1$
-	
-	/**
-	 * Corresponds to the 'expiry' element of the Cache annotation.
-	 * Set to null to remove the element.
-	 */
-	void setExpiry(Integer expiry);
-
-	/**
-	 * Return the {@link TextRange} for the 'expiry' element.
-	 * If the element does not exist return the {@link TextRange}
-	 * for the Cache annotation.
-	 */
-	TextRange getExpiryTextRange(CompilationUnit astRoot);
-	
-
-	/**
-	 * Corresponds to the 'expiryTimeOfDay' element of the Cache annotation.
-	 * Return null if the element does not exist in Java.
-	 */
-	TimeOfDayAnnotation getExpiryTimeOfDay();
-		String EXPIRY_TIME_OF_DAY_PROPERTY = "expiryTimeOfDay"; //$NON-NLS-1$
-
-	TimeOfDayAnnotation addExpiryTimeOfDay();
-
-	void removeExpiryTimeOfDay();
-		
-	/**
-	 * Return the {@link TextRange} for the 'expiryTimeOfDay' element.
-	 * If the element does not exist return the {@link TextRange}
-	 * for the Cache annotation.
-	 */
-	TextRange getExpiryTimeOfDayTextRange(CompilationUnit astRoot);
-	
-
-	/**
-	 * Corresponds to the 'alwaysRefresh' element of the Cache annotation.
-	 * Return null if the element does not exist in Java.
-	 */
-	Boolean getAlwaysRefresh();
-		String ALWAYS_REFRESH_PROPERTY = "alwaysRefresh"; //$NON-NLS-1$
-	
-	/**
-	 * Corresponds to the 'alwaysRefresh' element of the Cache annotation.
-	 * Set to null to remove the element.
-	 */
-	void setAlwaysRefresh(Boolean alwaysRefresh);
-		
-	/**
-	 * Return the {@link TextRange} for the 'alwaysRefresh' element.
-	 * If the element does not exist return the {@link TextRange}
-	 * for the Cache annotation.
-	 */
-	TextRange getAlwaysRefreshTextRange(CompilationUnit astRoot);
-	
-
-	/**
-	 * Corresponds to the 'refreshOnlyIfNewer' element of the Cache annotation.
-	 * Return null if the element does not exist in Java.
-	 */
-	Boolean getRefreshOnlyIfNewer();
-		String REFRESH_ONLY_IF_NEWER_PROPERTY = "refreshOnlyIfNewer"; //$NON-NLS-1$
-	
-	/**
-	 * Corresponds to the 'refreshOnlyIfNewer' element of the Cache annotation.
-	 * Set to null to remove the element.
-	 */
-	void setRefreshOnlyIfNewer(Boolean refreshOnlyIfNewer);
-		
-	/**
-	 * Return the {@link TextRange} for the 'refreshOnlyIfNewer' element.
-	 * If the element does not exist return the {@link TextRange}
-	 * for the Cache annotation.
-	 */
-	TextRange getRefreshOnlyIfNewerTextRange(CompilationUnit astRoot);
-	
-
-	/**
-	 * Corresponds to the 'disableHits' element of the Cache annotation.
-	 * Return null if the element does not exist in Java.
-	 */
-	Boolean getDisableHits();
-		String DISABLE_HITS_PROPERTY = "disableHits"; //$NON-NLS-1$
-	
-	/**
-	 * Corresponds to the 'disableHits' element of the Cache annotation.
-	 * Set to null to remove the element.
-	 */
-	void setDisableHits(Boolean disableHits);
-		
-	/**
-	 * Return the {@link TextRange} for the 'disableHits' element.
-	 * If the element does not exist return the {@link TextRange}
-	 * for the Cache annotation.
-	 */
-	TextRange getDisablesHitsTextRange(CompilationUnit astRoot);
-	
-
-	/**
-	 * Corresponds to the 'coordinationType' element of the Cache annotation.
-	 * Return null if the element does not exist in Java.
-	 */
-	CacheCoordinationType getCoordinationType();
-		String COORDINATION_TYPE_PROPERTY = "coordinationType"; //$NON-NLS-1$
-	
-	/**
-	 * Corresponds to the 'coordinationType' element of the Cache annotation.
-	 * Set to null to remove the element.
-	 */
-	void setCoordinationType(CacheCoordinationType coordinationType);
-
-	/**
-	 * Return the {@link TextRange} for the 'coordinationType' element.
-	 * If the element does not exist return the {@link TextRange}
-	 * for the Cache annotation.
-	 */
-	TextRange getCoordinationTypeTextRange(CompilationUnit astRoot);
-	
-}
diff --git a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/resource/java/CacheCoordinationType.java b/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/resource/java/CacheCoordinationType.java
deleted file mode 100644
index a7a8bdf..0000000
--- a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/resource/java/CacheCoordinationType.java
+++ /dev/null
@@ -1,66 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008, 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.eclipselink.core.resource.java;
-
-/**
- * Corresponds to the EclipseLink enum
- * org.eclipse.persistence.annotations.CacheCoordinationType
- * 
- * Provisional API: This interface is part of an interim API that is still
- * under development and expected to change significantly before reaching
- * stability. It is available at this early stage to solicit feedback from
- * pioneering adopters on the understanding that any code that uses this API
- * will almost certainly be broken (repeatedly) as the API evolves.
- * 
- * @version 2.1
- * @since 2.1
- */
-public enum CacheCoordinationType {
-
-	SEND_OBJECT_CHANGES(EclipseLinkJPA.CACHE_COORDINATION_TYPE__SEND_OBJECT_CHANGES),
-	INVALIDATE_CHANGED_OBJECTS(EclipseLinkJPA.CACHE_COORDINATION_TYPE__INVALIDATE_CHANGED_OBJECTS),
-	SEND_NEW_OBJECTS_WITH_CHANGES(EclipseLinkJPA.CACHE_COORDINATION_TYPE__SEND_NEW_OBJECTS_WITH_CHANGES),
-	NONE(EclipseLinkJPA.CACHE_COORDINATION_TYPE__NONE);
-
-
-	private String javaAnnotationValue;
-
-	CacheCoordinationType(String javaAnnotationValue) {
-		if (javaAnnotationValue == null) {
-			throw new NullPointerException();
-		}
-		this.javaAnnotationValue = javaAnnotationValue;
-	}
-
-	public String getJavaAnnotationValue() {
-		return this.javaAnnotationValue;
-	}
-
-
-	// ********** static methods **********
-
-	public static CacheCoordinationType fromJavaAnnotationValue(Object javaAnnotationValue) {
-		return (javaAnnotationValue == null) ? null : fromJavaAnnotationValue_(javaAnnotationValue);
-	}
-
-	private static CacheCoordinationType fromJavaAnnotationValue_(Object javaAnnotationValue) {
-		for (CacheCoordinationType cacheCoordinationType : CacheCoordinationType.values()) {
-			if (cacheCoordinationType.getJavaAnnotationValue().equals(javaAnnotationValue)) {
-				return cacheCoordinationType;
-			}
-		}
-		return null;
-	}
-
-	public static String toJavaAnnotationValue(CacheCoordinationType cacheCoordinationType) {
-		return (cacheCoordinationType == null) ? null : cacheCoordinationType.getJavaAnnotationValue();
-	}
-
-}
diff --git a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/resource/java/CacheType.java b/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/resource/java/CacheType.java
deleted file mode 100644
index d569be1..0000000
--- a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/resource/java/CacheType.java
+++ /dev/null
@@ -1,69 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008, 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.eclipselink.core.resource.java;
-
-/**
- * Corresponds to the EclipseLink enum
- * org.eclipse.persistence.annotations.CacheType
- * 
- * Provisional API: This interface is part of an interim API that is still
- * under development and expected to change significantly before reaching
- * stability. It is available at this early stage to solicit feedback from
- * pioneering adopters on the understanding that any code that uses this API
- * will almost certainly be broken (repeatedly) as the API evolves.
- * 
- * @version 2.1
- * @since 2.1
- */
-public enum CacheType {
-
-	FULL(EclipseLinkJPA.CACHE_TYPE__FULL),
-	WEAK(EclipseLinkJPA.CACHE_TYPE__WEAK),
-	SOFT(EclipseLinkJPA.CACHE_TYPE__SOFT),
-	SOFT_WEAK(EclipseLinkJPA.CACHE_TYPE__SOFT_WEAK),
-	HARD_WEAK(EclipseLinkJPA.CACHE_TYPE__HARD_WEAK),
-	CACHE(EclipseLinkJPA.CACHE_TYPE__CACHE),
-	NONE(EclipseLinkJPA.CACHE_TYPE__NONE);
-
-
-	private String javaAnnotationValue;
-
-	CacheType(String javaAnnotationValue) {
-		if (javaAnnotationValue == null) {
-			throw new NullPointerException();
-		}
-		this.javaAnnotationValue = javaAnnotationValue;
-	}
-
-	public String getJavaAnnotationValue() {
-		return this.javaAnnotationValue;
-	}
-
-
-	// ********** static methods **********
-
-	public static CacheType fromJavaAnnotationValue(Object javaAnnotationValue) {
-		return (javaAnnotationValue == null) ? null : fromJavaAnnotationValue_(javaAnnotationValue);
-	}
-
-	private static CacheType fromJavaAnnotationValue_(Object javaAnnotationValue) {
-		for (CacheType cacheType : CacheType.values()) {
-			if (cacheType.getJavaAnnotationValue().equals(javaAnnotationValue)) {
-				return cacheType;
-			}
-		}
-		return null;
-	}
-
-	public static String toJavaAnnotationValue(CacheType cacheType) {
-		return (cacheType == null) ? null : cacheType.getJavaAnnotationValue();
-	}
-
-}
diff --git a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/resource/java/ChangeTrackingAnnotation.java b/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/resource/java/ChangeTrackingAnnotation.java
deleted file mode 100644
index dfdd036..0000000
--- a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/resource/java/ChangeTrackingAnnotation.java
+++ /dev/null
@@ -1,53 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008, 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.eclipselink.core.resource.java;
-
-import org.eclipse.jdt.core.dom.CompilationUnit;
-import org.eclipse.jpt.core.resource.java.Annotation;
-import org.eclipse.jpt.core.utility.TextRange;
-
-/**
- * Corresponds to the EclipseLink annotation
- * org.eclipse.persistence.annotations.ChangeTracking
- * 
- * Provisional API: This interface is part of an interim API that is still
- * under development and expected to change significantly before reaching
- * stability. It is available at this early stage to solicit feedback from
- * pioneering adopters on the understanding that any code that uses this API
- * will almost certainly be broken (repeatedly) as the API evolves.
- * 
- * @version 2.1
- * @since 2.1
- */
-public interface ChangeTrackingAnnotation
-	extends Annotation
-{
-	String ANNOTATION_NAME = EclipseLinkJPA.CHANGE_TRACKING;
-
-	/**
-	 * Corresponds to the 'value' element of the ChangeTracking annotation.
-	 * Return null if the element does not exist in Java.
-	 */
-	ChangeTrackingType getValue();
-		String VALUE_PROPERTY = "value"; //$NON-NLS-1$
-
-	/**
-	 * Corresponds to the 'value' element of the ChangeTracking annotation.
-	 * Set to null to remove the element.
-	 */
-	void setValue(ChangeTrackingType value);
-
-	/**
-	 * Return the {@link TextRange} for the 'value' element.  If the element 
-	 * does not exist return the {@link TextRange} for the ChangeTracking annotation.
-	 */
-	TextRange getValueTextRange(CompilationUnit astRoot);
-
-}
diff --git a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/resource/java/ChangeTrackingType.java b/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/resource/java/ChangeTrackingType.java
deleted file mode 100644
index 4fc6488..0000000
--- a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/resource/java/ChangeTrackingType.java
+++ /dev/null
@@ -1,66 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008, 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.eclipselink.core.resource.java;
-
-/**
- * Corresponds to the EclipseLink enum
- * org.eclipse.persistence.annotations.ChangeTrackingType
- * 
- * Provisional API: This interface is part of an interim API that is still
- * under development and expected to change significantly before reaching
- * stability. It is available at this early stage to solicit feedback from
- * pioneering adopters on the understanding that any code that uses this API
- * will almost certainly be broken (repeatedly) as the API evolves.
- * 
- * @version 2.1
- * @since 2.1
- */
-public enum ChangeTrackingType {
-
-	ATTRIBUTE(EclipseLinkJPA.CHANGE_TRACKING_TYPE__ATTRIBUTE),
-	OBJECT(EclipseLinkJPA.CHANGE_TRACKING_TYPE__OBJECT),
-	DEFERRED(EclipseLinkJPA.CHANGE_TRACKING_TYPE__DEFERRED),
-	AUTO(EclipseLinkJPA.CHANGE_TRACKING_TYPE__AUTO);
-
-
-	private String javaAnnotationValue;
-
-	ChangeTrackingType(String javaAnnotationValue) {
-		if (javaAnnotationValue == null) {
-			throw new NullPointerException();
-		}
-		this.javaAnnotationValue = javaAnnotationValue;
-	}
-
-	public String getJavaAnnotationValue() {
-		return this.javaAnnotationValue;
-	}
-
-
-	// ********** static methods **********
-
-	public static ChangeTrackingType fromJavaAnnotationValue(Object javaAnnotationValue) {
-		return (javaAnnotationValue == null) ? null : fromJavaAnnotationValue_(javaAnnotationValue);
-	}
-
-	private static ChangeTrackingType fromJavaAnnotationValue_(Object javaAnnotationValue) {
-		for (ChangeTrackingType changeTrackingType : ChangeTrackingType.values()) {
-			if (changeTrackingType.getJavaAnnotationValue().equals(javaAnnotationValue)) {
-				return changeTrackingType;
-			}
-		}
-		return null;
-	}
-
-	public static String toJavaAnnotationValue(ChangeTrackingType changeTrackingType) {
-		return (changeTrackingType == null) ? null : changeTrackingType.getJavaAnnotationValue();
-	}
-
-}
diff --git a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/resource/java/ConversionValueAnnotation.java b/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/resource/java/ConversionValueAnnotation.java
deleted file mode 100644
index 981588b..0000000
--- a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/resource/java/ConversionValueAnnotation.java
+++ /dev/null
@@ -1,73 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008, 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.eclipselink.core.resource.java;
-
-import org.eclipse.jdt.core.dom.CompilationUnit;
-import org.eclipse.jpt.core.resource.java.Annotation;
-import org.eclipse.jpt.core.utility.TextRange;
-
-/**
- * Corresponds to the EclipseLink annotation
- * org.eclipse.persistence.annotations.ConversionValue
- * 
- * Provisional API: This interface is part of an interim API that is still
- * under development and expected to change significantly before reaching
- * stability. It is available at this early stage to solicit feedback from
- * pioneering adopters on the understanding that any code that uses this API
- * will almost certainly be broken (repeatedly) as the API evolves.
- * 
- * @version 2.1
- * @since 2.1
- */
-public interface ConversionValueAnnotation
-	extends Annotation
-{
-	String ANNOTATION_NAME = EclipseLinkJPA.CONVERSION_VALUE;
-
-	/**
-	 * Corresponds to the 'dataValue' element of the ConversionValue annotation.
-	 * Return null if the element does not exist in Java.
-	 */
-	String getDataValue();
-		String DATA_VALUE_PROPERTY = "dataValue"; //$NON-NLS-1$
-
-	/**
-	 * Corresponds to the 'dataValue' element of the ConversionValue annotation.
-	 * Set to null to remove the element.
-	 */
-	void setDataValue(String dataValue);
-
-	/**
-	 * Return the {@link TextRange} for the 'dataValue' element. If the element 
-	 * does not exist return the {@link TextRange} for the ConversionValue annotation.
-	 */
-	TextRange getDataValueTextRange(CompilationUnit astRoot);
-
-
-	/**
-	 * Corresponds to the 'objectValue' element of the ConversionValue annotation.
-	 * Return null if the element does not exist in Java.
-	 */
-	String getObjectValue();
-		String OBJECT_VALUE_PROPERTY = "objectValue"; //$NON-NLS-1$
-
-	/**
-	 * Corresponds to the 'objectValue' element of the ConversionValue annotation.
-	 * Set to null to remove the element.
-	 */
-	void setObjectValue(String objectValue);
-
-	/**
-	 * Return the {@link TextRange} for the 'objectValue' element. If the element 
-	 * does not exist return the {@link TextRange} for the ConversionValue annotation.
-	 */
-	TextRange getObjectValueTextRange(CompilationUnit astRoot);
-
-}
diff --git a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/resource/java/ConvertAnnotation.java b/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/resource/java/ConvertAnnotation.java
deleted file mode 100644
index 3cdde23..0000000
--- a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/resource/java/ConvertAnnotation.java
+++ /dev/null
@@ -1,59 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008, 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.eclipselink.core.resource.java;
-
-import org.eclipse.jdt.core.dom.CompilationUnit;
-import org.eclipse.jpt.core.resource.java.Annotation;
-import org.eclipse.jpt.core.utility.TextRange;
-
-/**
- * Corresponds to the EclipseLink annotation
- * org.eclipse.persistence.annotations.Convert
- * 
- * Provisional API: This interface is part of an interim API that is still
- * under development and expected to change significantly before reaching
- * stability. It is available at this early stage to solicit feedback from
- * pioneering adopters on the understanding that any code that uses this API
- * will almost certainly be broken (repeatedly) as the API evolves.
- * 
- * @version 2.1
- * @since 2.1
- */
-public interface ConvertAnnotation
-	extends Annotation
-{
-	String ANNOTATION_NAME = EclipseLinkJPA.CONVERT;
-		
-	/**
-	 * Corresponds to the 'value' element of the Convert annotation.
-	 * Return null if the element does not exist in Java.
-	 */
-	String getValue();
-		String VALUE_PROPERTY = "value"; //$NON-NLS-1$
-	
-	/**
-	 * Corresponds to the 'value' element of the Convert annotation.
-	 * Set to null to remove the element.
-	 */
-	void setValue(String value);
-	
-	/**
-	 * Return the {@link TextRange} for the 'value' element. If the element 
-	 * does not exist return the {@link TextRange} for the Convert annotation.
-	 */
-	TextRange getValueTextRange(CompilationUnit astRoot);
-
-	/**
-	 * Return whether the specified position touches the 'value' element.
-	 * Return false if the element does not exist.
-	 */
-	boolean valueTouches(int pos, CompilationUnit astRoot);
-
-}
diff --git a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/resource/java/ConverterAnnotation.java b/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/resource/java/ConverterAnnotation.java
deleted file mode 100644
index ab20f86..0000000
--- a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/resource/java/ConverterAnnotation.java
+++ /dev/null
@@ -1,58 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008, 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.eclipselink.core.resource.java;
-
-import org.eclipse.jdt.core.dom.CompilationUnit;
-import org.eclipse.jpt.core.utility.TextRange;
-
-/**
- * Corresponds to the EclipseLink annotation
- * org.eclipse.persistence.annotations.Converter
- * 
- * Provisional API: This interface is part of an interim API that is still
- * under development and expected to change significantly before reaching
- * stability. It is available at this early stage to solicit feedback from
- * pioneering adopters on the understanding that any code that uses this API
- * will almost certainly be broken (repeatedly) as the API evolves.
- * 
- * @version 2.1
- * @since 2.1
- */
-public interface ConverterAnnotation
-	extends NamedConverterAnnotation
-{
-	String ANNOTATION_NAME = EclipseLinkJPA.CONVERTER;
-		
-	/**
-	 * Corresponds to the 'converterClass' element of the Converter annotation.
-	 * Returns null if the element does not exist in java.
-	 */
-	String getConverterClass();
-		String CONVERTER_CLASS_PROPERTY = "converterClass"; //$NON-NLS-1$
-	
-	/**
-	 * Corresponds to the 'converterClass' element of the Converter annotation.
-	 * Set to null to remove the element.
-	 */
-	void setConverterClass(String value);
-		
-	/**
-	 * Return the {@link TextRange} for the 'converterClass' element. If the element 
-	 * does not exist return the {@link TextRange} for the Converter annotation.
-	 */
-	TextRange getConverterClassTextRange(CompilationUnit astRoot);
-
-	/**
-	 * Return whether the converter class implements the specified interface.
-	 * @see org.eclipse.jpt.eclipselink.core.context.CustomConverter#ECLIPSELINK_CONVERTER_CLASS_NAME
-	 */
-	boolean converterClassImplementsInterface(String interfaceName, CompilationUnit astRoot);
-
-}
diff --git a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/resource/java/CustomizerAnnotation.java b/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/resource/java/CustomizerAnnotation.java
deleted file mode 100644
index 8d5e1ce..0000000
--- a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/resource/java/CustomizerAnnotation.java
+++ /dev/null
@@ -1,59 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008, 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.eclipselink.core.resource.java;
-
-import org.eclipse.jdt.core.dom.CompilationUnit;
-import org.eclipse.jpt.core.resource.java.Annotation;
-import org.eclipse.jpt.core.utility.TextRange;
-
-/**
- * Corresponds to the Eclipselink annotation
- * org.eclipse.persistence.annotations.Customizer
- * 
- * Provisional API: This interface is part of an interim API that is still
- * under development and expected to change significantly before reaching
- * stability. It is available at this early stage to solicit feedback from
- * pioneering adopters on the understanding that any code that uses this API
- * will almost certainly be broken (repeatedly) as the API evolves.
- * 
- * @version 2.1
- * @since 2.1
- */
-public interface CustomizerAnnotation
-	extends Annotation
-{
-	String ANNOTATION_NAME = EclipseLinkJPA.CUSTOMIZER;
-
-	/**
-	 * Corresponds to the 'value' element of the Customizer annotation.
-	 * Return null if the element does not exist in Java.
-	 */
-	String getValue();
-		String VALUE_PROPERTY = "value"; //$NON-NLS-1$
-
-	/**
-	 * Corresponds to the 'value' element of the Customizer annotation.
-	 * Set to null to remove the element.
-	 */
-	void setValue(String value);
-
-	/**
-	 * Return the {@link TextRange} for the 'value' element. If the element 
-	 * does not exist return the {@link TextRange} for the Customizer annotation.
-	 */
-	TextRange getValueTextRange(CompilationUnit astRoot);
-
-	/**
-	 * Return whether the customizer class implements the specified interface.
-	 * @see org.eclipse.jpt.eclipselink.core.context.Customizer#ECLIPSELINK_DESCRIPTOR_CUSTOMIZER_CLASS_NAME
-	 */
-	boolean customizerClassImplementsInterface(String interfaceName, CompilationUnit astRoot);
-
-}
diff --git a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/resource/java/EclipseLinkJPA.java b/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/resource/java/EclipseLinkJPA.java
deleted file mode 100644
index b08036a..0000000
--- a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/resource/java/EclipseLinkJPA.java
+++ /dev/null
@@ -1,132 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008, 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.eclipselink.core.resource.java;
-
-/**
- * EclipseLink Java-related stuff (annotations etc.)
- * 
- * Provisional API: This interface is part of an interim API that is still
- * under development and expected to change significantly before reaching
- * stability. It is available at this early stage to solicit feedback from
- * pioneering adopters on the understanding that any code that uses this API
- * will almost certainly be broken (repeatedly) as the API evolves.
- * 
- * @version 2.1
- * @since 2.1
- */
-@SuppressWarnings("nls")
-public interface EclipseLinkJPA {
-
-	// EclipseLink package
-	String PACKAGE = "org.eclipse.persistence.annotations"; //$NON-NLS-1$
-	String PACKAGE_ = PACKAGE + ".";
-
-
-	// ********** API **********
-
-	// EclispeLink annotations
-	String BASIC_COLLECTION = PACKAGE_ + "BasicCollection";
-	String BASIC_MAP = PACKAGE_ + "BasicMap";
-	String CACHE = PACKAGE_ + "Cache";
-		String CACHE__SHARED = "shared";
-		String CACHE__EXPIRY = "expiry";
-		String CACHE__EXPIRY_TIME_OF_DAY = "expiryTimeOfDay";
-		String CACHE__TYPE = "type";
-		String CACHE__SIZE = "size";
-		String CACHE__ALWAYS_REFRESH = "alwaysRefresh";
-		String CACHE__REFRESH_ONLY_IF_NEWER = "refreshOnlyIfNewer";
-		String CACHE__DISABLE_HITS = "disableHits";
-		String CACHE__COORDINATION_TYPE = "coordinationType";
-	String CHANGE_TRACKING = PACKAGE_ + "ChangeTracking";
-		String CHANGE_TRACKING__VALUE = "value";
-	String CONVERSION_VALUE = PACKAGE_ + "ConversionValue";
-		String CONVERSION_VALUE__DATA_VALUE = "dataValue";
-		String CONVERSION_VALUE__OBJECT_VALUE = "objectValue";
-	String CONVERT = PACKAGE_ + "Convert";
-		String CONVERT__VALUE = "value";
-	String CONVERTER = PACKAGE_ + "Converter";
-		String CONVERTER__NAME = "name";
-		String CONVERTER__CONVERTER_CLASS = "converterClass";
-	String CUSTOMIZER = PACKAGE_ + "Customizer";
-		String CUSTOMIZER__VALUE = "value";
-	String EXISTENCE_CHECKING = PACKAGE_ + "ExistenceChecking";
-		String EXISTENCE_CHECKING__VALUE = "value";
-	String JOIN_FETCH = PACKAGE_ + "JoinFetch";
-		String JOIN_FETCH__VALUE = "value";
-	String MUTABLE = PACKAGE_ + "Mutable";
-		String MUTABLE__VALUE = "value";
-	String OBJECT_TYPE_CONVERTER = PACKAGE_ + "ObjectTypeConverter";
-		String OBJECT_TYPE_CONVERTER__NAME = "name";
-		String OBJECT_TYPE_CONVERTER__DATA_TYPE = "dataType";
-		String OBJECT_TYPE_CONVERTER__OBJECT_TYPE = "objectType";
-		String OBJECT_TYPE_CONVERTER__CONVERSION_VALUES = "conversionValues";
-		String OBJECT_TYPE_CONVERTER__DEFAULT_OBJECT_VALUE = "defaultObjectValue";
-	String PRIVATE_OWNED = PACKAGE_ + "PrivateOwned";
-	String READ_ONLY = PACKAGE_ + "ReadOnly";
-	String READ_TRANSFORMER = PACKAGE_ + "ReadTransformer";
-		String READ_TRANSFORMER__TRANSFORMER_CLASS = "transformerClass";
-		String READ_TRANSFORMER__METHOD = "method";
-	String STRUCT_CONVERTER = PACKAGE_ + "StructConverter";
-		String STRUCT_CONVERTER__NAME = "name";
-		String STRUCT_CONVERTER__CONVERTER = "converter";
-	String TIME_OF_DAY = PACKAGE_ + "TimeOfDay";
-		String TIME_OF_DAY__HOUR = "hour";
-		String TIME_OF_DAY__MINUTE = "minute";
-		String TIME_OF_DAY__SECOND = "second";
-		String TIME_OF_DAY__MILLISECOND = "millisecond";
-	String TRANSFORMATION = PACKAGE_ + "Transformation";
-		String TRANSFORMATION__FETCH = "fetch";
-		String TRANSFORMATION__OPTIONAL = "optional";
-	String TYPE_CONVERTER = PACKAGE_ + "TypeConverter";
-		String TYPE_CONVERTER__NAME = "name";
-		String TYPE_CONVERTER__DATA_TYPE = "dataType";
-		String TYPE_CONVERTER__OBJECT_TYPE = "objectType";
-	String VARIABLE_ONE_TO_ONE = PACKAGE_ + "VariableOneToOne";
-	String WRITE_TRANSFORMER = PACKAGE_ + "WriteTransformer";
-		String WRITE_TRANSFORMER__TRANSFORMER_CLASS = "transformerClass";
-		String WRITE_TRANSFORMER__METHOD = "method";
-		String WRITE_TRANSFORMER__COLUMN = "column";
-	String WRITE_TRANSFORMERS = PACKAGE_ + "WriteTransformers";
-		String WRITE_TRANSFORMERS__VALUE = "value";
-
-	// EclipseLink enums
-	String CACHE_COORDINATION_TYPE = PACKAGE_ + "CacheCoordinationType";
-		String CACHE_COORDINATION_TYPE_ = CACHE_COORDINATION_TYPE + ".";
-		String CACHE_COORDINATION_TYPE__SEND_OBJECT_CHANGES = CACHE_COORDINATION_TYPE_ + "SEND_OBJECT_CHANGES";
-		String CACHE_COORDINATION_TYPE__INVALIDATE_CHANGED_OBJECTS = CACHE_COORDINATION_TYPE_ + "INVALIDATE_CHANGED_OBJECTS";
-		String CACHE_COORDINATION_TYPE__SEND_NEW_OBJECTS_WITH_CHANGES = CACHE_COORDINATION_TYPE_ + "SEND_NEW_OBJECTS_WITH_CHANGES";
-		String CACHE_COORDINATION_TYPE__NONE = CACHE_COORDINATION_TYPE_ + "NONE";
-	String CACHE_TYPE = PACKAGE_ + "CacheType";
-		String CACHE_TYPE_ = CACHE_TYPE + ".";
-		String CACHE_TYPE__FULL = CACHE_TYPE_ + "FULL";
-		String CACHE_TYPE__WEAK = CACHE_TYPE_ + "WEAK";
-		String CACHE_TYPE__SOFT = CACHE_TYPE_ + "SOFT";
-		String CACHE_TYPE__SOFT_WEAK = CACHE_TYPE_ + "SOFT_WEAK";
-		String CACHE_TYPE__HARD_WEAK = CACHE_TYPE_ + "HARD_WEAK";
-		String CACHE_TYPE__CACHE = CACHE_TYPE_ + "CACHE";
-		String CACHE_TYPE__NONE = CACHE_TYPE_ + "NONE";
-	String CHANGE_TRACKING_TYPE = PACKAGE_ + "ChangeTrackingType";
-		String CHANGE_TRACKING_TYPE_ = CHANGE_TRACKING_TYPE + ".";
-		String CHANGE_TRACKING_TYPE__ATTRIBUTE = CHANGE_TRACKING_TYPE_ + "ATTRIBUTE";
-		String CHANGE_TRACKING_TYPE__OBJECT = CHANGE_TRACKING_TYPE_ + "OBJECT";
-		String CHANGE_TRACKING_TYPE__DEFERRED = CHANGE_TRACKING_TYPE_ + "DEFERRED";
-		String CHANGE_TRACKING_TYPE__AUTO = CHANGE_TRACKING_TYPE_ + "AUTO";
-	String EXISTENCE_TYPE = PACKAGE_ + "ExistenceType";
-		String EXISTENCE_TYPE_ = EXISTENCE_TYPE + ".";
-		String EXISTENCE_TYPE__CHECK_CACHE = EXISTENCE_TYPE_ + "CHECK_CACHE";
-		String EXISTENCE_TYPE__CHECK_DATABASE = EXISTENCE_TYPE_ + "CHECK_DATABASE";
-		String EXISTENCE_TYPE__ASSUME_EXISTENCE = EXISTENCE_TYPE_ + "ASSUME_EXISTENCE";
-		String EXISTENCE_TYPE__ASSUME_NON_EXISTENCE = EXISTENCE_TYPE_ + "ASSUME_NON_EXISTENCE";
-	String JOIN_FETCH_TYPE = PACKAGE_ + "JoinFetchType";
-		String JOIN_FETCH_TYPE_ = JOIN_FETCH_TYPE + ".";
-		String JOIN_FETCH_TYPE__INNER = JOIN_FETCH_TYPE_ + "INNER";
-		String JOIN_FETCH_TYPE__OUTER = JOIN_FETCH_TYPE_ + "OUTER";
-
-}
diff --git a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/resource/java/ExistenceCheckingAnnotation.java b/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/resource/java/ExistenceCheckingAnnotation.java
deleted file mode 100644
index fb65657..0000000
--- a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/resource/java/ExistenceCheckingAnnotation.java
+++ /dev/null
@@ -1,53 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008, 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.eclipselink.core.resource.java;
-
-import org.eclipse.jdt.core.dom.CompilationUnit;
-import org.eclipse.jpt.core.resource.java.Annotation;
-import org.eclipse.jpt.core.utility.TextRange;
-
-/**
- * Corresponds to the EclipseLink annotation
- * org.eclipse.persistence.annotations.ExistenceChecking
- * 
- * Provisional API: This interface is part of an interim API that is still
- * under development and expected to change significantly before reaching
- * stability. It is available at this early stage to solicit feedback from
- * pioneering adopters on the understanding that any code that uses this API
- * will almost certainly be broken (repeatedly) as the API evolves.
- * 
- * @version 2.1
- * @since 2.1
- */
-public interface ExistenceCheckingAnnotation
-	extends Annotation
-{
-	String ANNOTATION_NAME = EclipseLinkJPA.EXISTENCE_CHECKING;
-
-	/**
-	 * Corresponds to the 'value' element of the ExistenceChecking annotation.
-	 * Return null if the element does not exist in Java.
-	 */
-	ExistenceType getValue();
-		String VALUE_PROPERTY = "value"; //$NON-NLS-1$
-
-	/**
-	 * Corresponds to the 'value' element of the ExistenceChecking annotation.
-	 * Set to null to remove the element.
-	 */
-	void setValue(ExistenceType value);
-
-	/**
-	 * Return the {@link TextRange} for the 'value' element. If the element 
-	 * does not exist return the {@link TextRange} for the ExistenceChecking annotation.
-	 */
-	TextRange getValueTextRange(CompilationUnit astRoot);
-
-}
diff --git a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/resource/java/ExistenceType.java b/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/resource/java/ExistenceType.java
deleted file mode 100644
index 8b80206..0000000
--- a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/resource/java/ExistenceType.java
+++ /dev/null
@@ -1,66 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008, 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.eclipselink.core.resource.java;
-
-/**
- * Corresponds to the EclipseLink enum
- * org.eclipse.persistence.annotations.ExistenceType
- * 
- * Provisional API: This interface is part of an interim API that is still
- * under development and expected to change significantly before reaching
- * stability. It is available at this early stage to solicit feedback from
- * pioneering adopters on the understanding that any code that uses this API
- * will almost certainly be broken (repeatedly) as the API evolves.
- * 
- * @version 2.1
- * @since 2.1
- */
-public enum ExistenceType {
-
-    CHECK_CACHE(EclipseLinkJPA.EXISTENCE_TYPE__CHECK_CACHE),
-    CHECK_DATABASE(EclipseLinkJPA.EXISTENCE_TYPE__CHECK_DATABASE),
-    ASSUME_EXISTENCE(EclipseLinkJPA.EXISTENCE_TYPE__ASSUME_EXISTENCE),
-    ASSUME_NON_EXISTENCE(EclipseLinkJPA.EXISTENCE_TYPE__ASSUME_NON_EXISTENCE);
-
-
-	private String javaAnnotationValue;
-
-	ExistenceType(String javaAnnotationValue) {
-		if (javaAnnotationValue == null) {
-			throw new NullPointerException();
-		}
-		this.javaAnnotationValue = javaAnnotationValue;
-	}
-
-	public String getJavaAnnotationValue() {
-		return this.javaAnnotationValue;
-	}
-
-
-	// ********** static methods **********
-
-	public static ExistenceType fromJavaAnnotationValue(Object javaAnnotationValue) {
-		return (javaAnnotationValue == null) ? null : fromJavaAnnotationValue_(javaAnnotationValue);
-	}
-
-	private static ExistenceType fromJavaAnnotationValue_(Object javaAnnotationValue) {
-		for (ExistenceType existenceType : ExistenceType.values()) {
-			if (existenceType.getJavaAnnotationValue().equals(javaAnnotationValue)) {
-				return existenceType;
-			}
-		}
-		return null;
-	}
-
-	public static String toJavaAnnotationValue(ExistenceType existenceType) {
-		return (existenceType == null) ? null : existenceType.getJavaAnnotationValue();
-	}
-
-}
diff --git a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/resource/java/JoinFetchAnnotation.java b/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/resource/java/JoinFetchAnnotation.java
deleted file mode 100644
index f2f2b85..0000000
--- a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/resource/java/JoinFetchAnnotation.java
+++ /dev/null
@@ -1,53 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008, 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.eclipselink.core.resource.java;
-
-import org.eclipse.jdt.core.dom.CompilationUnit;
-import org.eclipse.jpt.core.resource.java.Annotation;
-import org.eclipse.jpt.core.utility.TextRange;
-
-/**
- * Corresponds to the EclipseLink annotation
- * org.eclipse.persistence.annotations.JoinFetch
- * 
- * Provisional API: This interface is part of an interim API that is still
- * under development and expected to change significantly before reaching
- * stability. It is available at this early stage to solicit feedback from
- * pioneering adopters on the understanding that any code that uses this API
- * will almost certainly be broken (repeatedly) as the API evolves.
- * 
- * @version 2.1
- * @since 2.1
- */
-public interface JoinFetchAnnotation
-	extends Annotation
-{
-	String ANNOTATION_NAME = EclipseLinkJPA.JOIN_FETCH;
-
-	/**
-	 * Corresponds to the 'value' element of the JoinFetch annotation.
-	 * Return null if the element does not exist in Java.
-	 */
-	JoinFetchType getValue();
-		String VALUE_PROPERTY = "value"; //$NON-NLS-1$
-
-	/**
-	 * Corresponds to the 'value' element of the JoinFetch annotation.
-	 * Set to null to remove the element.
-	 */
-	void setValue(JoinFetchType value);
-
-	/**
-	 * Return the {@link TextRange} for the 'value' element. If the element 
-	 * does not exist return the {@link TextRange} for the JoinFetch annotation.
-	 */
-	TextRange getValueTextRange(CompilationUnit astRoot);
-
-}
diff --git a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/resource/java/JoinFetchType.java b/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/resource/java/JoinFetchType.java
deleted file mode 100644
index 40bc617..0000000
--- a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/resource/java/JoinFetchType.java
+++ /dev/null
@@ -1,64 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008, 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.eclipselink.core.resource.java;
-
-/**
- * Corresponds to the EclipseLink enum
- * org.eclipse.persistence.annotations.JoinFetchType
- * 
- * Provisional API: This interface is part of an interim API that is still
- * under development and expected to change significantly before reaching
- * stability. It is available at this early stage to solicit feedback from
- * pioneering adopters on the understanding that any code that uses this API
- * will almost certainly be broken (repeatedly) as the API evolves.
- * 
- * @version 2.1
- * @since 2.1
- */
-public enum JoinFetchType {
-
-    INNER(EclipseLinkJPA.JOIN_FETCH_TYPE__INNER),
-    OUTER(EclipseLinkJPA.JOIN_FETCH_TYPE__OUTER);
-
-
-	private String javaAnnotationValue;
-
-	JoinFetchType(String javaAnnotationValue) {
-		if (javaAnnotationValue == null) {
-			throw new NullPointerException();
-		}
-		this.javaAnnotationValue = javaAnnotationValue;
-	}
-
-	public String getJavaAnnotationValue() {
-		return this.javaAnnotationValue;
-	}
-
-
-	// ********** static methods **********
-
-	public static JoinFetchType fromJavaAnnotationValue(Object javaAnnotationValue) {
-		return (javaAnnotationValue == null) ? null : fromJavaAnnotationValue_(javaAnnotationValue);
-	}
-
-	private static JoinFetchType fromJavaAnnotationValue_(Object javaAnnotationValue) {
-		for (JoinFetchType joinFetchType : JoinFetchType.values()) {
-			if (joinFetchType.getJavaAnnotationValue().equals(javaAnnotationValue)) {
-				return joinFetchType;
-			}
-		}
-		return null;
-	}
-
-	public static String toJavaAnnotationValue(JoinFetchType joinFetchType) {
-		return (joinFetchType == null) ? null : joinFetchType.getJavaAnnotationValue();
-	}
-
-}
diff --git a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/resource/java/MutableAnnotation.java b/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/resource/java/MutableAnnotation.java
deleted file mode 100644
index 5164635..0000000
--- a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/resource/java/MutableAnnotation.java
+++ /dev/null
@@ -1,53 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008, 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.eclipselink.core.resource.java;
-
-import org.eclipse.jdt.core.dom.CompilationUnit;
-import org.eclipse.jpt.core.resource.java.Annotation;
-import org.eclipse.jpt.core.utility.TextRange;
-
-/**
- * Corresponds to the Eclipselink annotation
- * org.eclipse.persistence.annotations.Mutable
- * 
- * Provisional API: This interface is part of an interim API that is still
- * under development and expected to change significantly before reaching
- * stability. It is available at this early stage to solicit feedback from
- * pioneering adopters on the understanding that any code that uses this API
- * will almost certainly be broken (repeatedly) as the API evolves.
- * 
- * @version 2.1
- * @since 2.1
- */
-public interface MutableAnnotation
-	extends Annotation
-{
-	String ANNOTATION_NAME = EclipseLinkJPA.MUTABLE;
-		
-	/**
-	 * Corresponds to the 'value' element of the Mutable annotation.
-	 * Return null if the element does not exist in Java.
-	 */
-	Boolean getValue();
-		String VALUE_PROPERTY = "value"; //$NON-NLS-1$
-	
-	/**
-	 * Corresponds to the 'value' element of the Mutable annotation.
-	 * Set to null to remove the element.
-	 */
-	void setValue(Boolean value);
-	
-	/**
-	 * Return the {@link TextRange} for the 'value' element. If the element 
-	 * does not exist return the {@link TextRange} for the Mutable annotation.
-	 */
-	TextRange getValueTextRange(CompilationUnit astRoot);
-
-}
diff --git a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/resource/java/NamedConverterAnnotation.java b/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/resource/java/NamedConverterAnnotation.java
deleted file mode 100644
index a77ec3c..0000000
--- a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/resource/java/NamedConverterAnnotation.java
+++ /dev/null
@@ -1,54 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008, 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.eclipselink.core.resource.java;
-
-import org.eclipse.jdt.core.dom.CompilationUnit;
-import org.eclipse.jpt.core.resource.java.Annotation;
-import org.eclipse.jpt.core.utility.TextRange;
-
-/**
- * Common protocol among:
- *     org.eclipse.persistence.annotations.Converter
- *     org.eclipse.persistence.annotations.StructConverter
- *     org.eclipse.persistence.annotations.TypeConverter
- *     org.eclipse.persistence.annotations.ObjectTypeConverter
- * 
- * Provisional API: This interface is part of an interim API that is still
- * under development and expected to change significantly before reaching
- * stability. It is available at this early stage to solicit feedback from
- * pioneering adopters on the understanding that any code that uses this API
- * will almost certainly be broken (repeatedly) as the API evolves.
- * 
- * @version 2.1
- * @since 2.1
- */
-public interface NamedConverterAnnotation
-	extends Annotation
-{
-	/**
-	 * Corresponds to the 'name' element of the *Converter annotation.
-	 * Return null if the element does not exist in Java.
-	 */
-	String getName();
-		String NAME_PROPERTY = "name"; //$NON-NLS-1$
-	
-	/**
-	 * Corresponds to the 'name' element of the *Converter annotation.
-	 * Set to null to remove the element.
-	 */
-	void setName(String value);
-
-	/**
-	 * Return the {@link TextRange} for the 'name' element. If the element 
-	 * does not exist return the {@link TextRange} for the CustomConverter annotation.
-	 */
-	TextRange getNameTextRange(CompilationUnit astRoot);
-
-}
diff --git a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/resource/java/NestableConversionValueAnnotation.java b/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/resource/java/NestableConversionValueAnnotation.java
deleted file mode 100644
index 5fe0f51..0000000
--- a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/resource/java/NestableConversionValueAnnotation.java
+++ /dev/null
@@ -1,28 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.eclipselink.core.resource.java;
-
-import org.eclipse.jpt.core.resource.java.NestableAnnotation;
-
-/**
- * Corresponds to the EclipseLink annotation
- * org.eclipse.persistence.annotations.ConversionValue
- * 
- * Provisional API: This interface is part of an interim API that is still
- * under development and expected to change significantly before reaching
- * stability. It is available at this early stage to solicit feedback from
- * pioneering adopters on the understanding that any code that uses this API
- * will almost certainly be broken (repeatedly) as the API evolves.
- */
-public interface NestableConversionValueAnnotation
-	extends ConversionValueAnnotation, NestableAnnotation
-{
-	// combine two interfaces
-}
diff --git a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/resource/java/ObjectTypeConverterAnnotation.java b/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/resource/java/ObjectTypeConverterAnnotation.java
deleted file mode 100644
index 1f87a08..0000000
--- a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/resource/java/ObjectTypeConverterAnnotation.java
+++ /dev/null
@@ -1,91 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008, 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.eclipselink.core.resource.java;
-
-import java.util.ListIterator;
-import org.eclipse.jdt.core.dom.CompilationUnit;
-import org.eclipse.jpt.core.utility.TextRange;
-
-/**
- * Corresponds to the EclipseLink annotation
- * org.eclipse.persistence.annotations.ObjectTypeConverter
- * 
- * Provisional API: This interface is part of an interim API that is still
- * under development and expected to change significantly before reaching
- * stability. It is available at this early stage to solicit feedback from
- * pioneering adopters on the understanding that any code that uses this API
- * will almost certainly be broken (repeatedly) as the API evolves.
- * 
- * @version 2.1
- * @since 2.1
- */
-public interface ObjectTypeConverterAnnotation
-	extends BaseTypeConverterAnnotation
-{
-	String ANNOTATION_NAME = EclipseLinkJPA.OBJECT_TYPE_CONVERTER;
-	
-	/**
-	 * Corresponds to the 'conversionValues' element of the ObjectTypeConverter annotation.
-	 * Return an empty iterator if the element does not exist in Java.
-	 */
-	ListIterator<ConversionValueAnnotation> conversionValues();
-		String CONVERSION_VALUES_LIST = "conversionValues"; //$NON-NLS-1$
-	
-	/**
-	 * Corresponds to the 'conversionValues' element of the ObjectTypeConverter annotation.
-	 */
-	int conversionValuesSize();
-	
-	/**
-	 * Corresponds to the 'conversionValues' element of the ObjectTypeConverter annotation.
-	 */
-	ConversionValueAnnotation conversionValueAt(int index);
-	
-	/**
-	 * Corresponds to the 'conversionValues' element of the ObjectTypeConverter annotation.
-	 */
-	int indexOfConversionValue(ConversionValueAnnotation conversionValue);
-	
-	/**
-	 * Corresponds to the 'conversionValues' element of the ObjectTypeConverter annotation.
-	 */
-	ConversionValueAnnotation addConversionValue(int index);
-	
-	/**
-	 * Corresponds to the 'conversionValues' element of the ObjectTypeConverter annotation.
-	 */
-	void moveConversionValue(int targetIndex, int sourceIndex);
-	
-	/**
-	 * Corresponds to the 'conversionValues' element of the ObjectTypeConverter annotation.
-	 */
-	void removeConversionValue(int index);
-	
-
-	/**
-	 * Corresponds to the 'defaultObjectValue' element of the ObjectTypeConverter annotation.
-	 * Return null if the element does not exist in Java.
-	 */
-	String getDefaultObjectValue();
-		String DEFAULT_OBJECT_VALUE_PROPERTY = "defaultObjectValue"; //$NON-NLS-1$
-
-	/**
-	 * Corresponds to the 'defaultObjectValue' element of the ObjectTypeConverter annotation.
-	 * Set to null to remove the element.
-	 */
-	void setDefaultObjectValue(String value);
-
-	/**
-	 * Return the {@link TextRange} for the 'defaultObjectValue' element. If the element 
-	 * does not exist return the {@link TextRange} for the ObjectTypeConverter annotation.
-	 */
-	TextRange getDefaultObjectValueTextRange(CompilationUnit astRoot);
-
-}
diff --git a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/resource/java/PrivateOwnedAnnotation.java b/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/resource/java/PrivateOwnedAnnotation.java
deleted file mode 100644
index 7da119f..0000000
--- a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/resource/java/PrivateOwnedAnnotation.java
+++ /dev/null
@@ -1,31 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008, 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.eclipselink.core.resource.java;
-
-import org.eclipse.jpt.core.resource.java.Annotation;
-
-/**
- * Corresponds to the EclipseLink annotation
- * org.eclipse.persistence.annotations.PrivateOwned
- * 
- * Provisional API: This interface is part of an interim API that is still
- * under development and expected to change significantly before reaching
- * stability. It is available at this early stage to solicit feedback from
- * pioneering adopters on the understanding that any code that uses this API
- * will almost certainly be broken (repeatedly) as the API evolves.
- * 
- * @version 2.1
- * @since 2.1
- */
-public interface PrivateOwnedAnnotation
-	extends Annotation
-{	
-	String ANNOTATION_NAME = EclipseLinkJPA.PRIVATE_OWNED;
-}
diff --git a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/resource/java/ReadOnlyAnnotation.java b/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/resource/java/ReadOnlyAnnotation.java
deleted file mode 100644
index 17bddce..0000000
--- a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/resource/java/ReadOnlyAnnotation.java
+++ /dev/null
@@ -1,31 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008, 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.eclipselink.core.resource.java;
-
-import org.eclipse.jpt.core.resource.java.Annotation;
-
-/**
- * Corresponds to the EclipseLink annotation
- * org.eclipse.persistence.annotations.ReadOnly
- * 
- * Provisional API: This interface is part of an interim API that is still
- * under development and expected to change significantly before reaching
- * stability. It is available at this early stage to solicit feedback from
- * pioneering adopters on the understanding that any code that uses this API
- * will almost certainly be broken (repeatedly) as the API evolves.
- * 
- * @version 2.1
- * @since 2.1
- */
-public interface ReadOnlyAnnotation
-	extends Annotation
-{	
-	String ANNOTATION_NAME = EclipseLinkJPA.READ_ONLY;
-}
diff --git a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/resource/java/ReadTransformerAnnotation.java b/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/resource/java/ReadTransformerAnnotation.java
deleted file mode 100644
index 0421af5..0000000
--- a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/resource/java/ReadTransformerAnnotation.java
+++ /dev/null
@@ -1,29 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008, 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.eclipselink.core.resource.java;
-
-/**
- * Corresponds to the EclipseLink annotation
- * org.eclipse.persistence.annotations.ReadTransformer
- * 
- * Provisional API: This interface is part of an interim API that is still
- * under development and expected to change significantly before reaching
- * stability. It is available at this early stage to solicit feedback from
- * pioneering adopters on the understanding that any code that uses this API
- * will almost certainly be broken (repeatedly) as the API evolves.
- * 
- * @version 2.1
- * @since 2.1
- */
-public interface ReadTransformerAnnotation
-	extends TransformerAnnotation
-{
-	String ANNOTATION_NAME = EclipseLinkJPA.READ_TRANSFORMER;
-}
diff --git a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/resource/java/StructConverterAnnotation.java b/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/resource/java/StructConverterAnnotation.java
deleted file mode 100644
index ebcd5a2..0000000
--- a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/resource/java/StructConverterAnnotation.java
+++ /dev/null
@@ -1,52 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008, 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.eclipselink.core.resource.java;
-
-import org.eclipse.jdt.core.dom.CompilationUnit;
-import org.eclipse.jpt.core.utility.TextRange;
-
-/**
- * Corresponds to the EclipseLink annotation
- * org.eclipse.persistence.annotations.StructConverter
- * 
- * Provisional API: This interface is part of an interim API that is still
- * under development and expected to change significantly before reaching
- * stability. It is available at this early stage to solicit feedback from
- * pioneering adopters on the understanding that any code that uses this API
- * will almost certainly be broken (repeatedly) as the API evolves.
- * 
- * @version 2.1
- * @since 2.1
- */
-public interface StructConverterAnnotation
-	extends NamedConverterAnnotation
-{
-	String ANNOTATION_NAME = EclipseLinkJPA.STRUCT_CONVERTER;
-
-	/**
-	 * Corresponds to the 'converter' element of the StructConverter annotation.
-	 * Returns null if the element does not exist in Java.
-	 */
-	String getConverter();
-		String CONVERTER_PROPERTY = "converter"; //$NON-NLS-1$
-
-	/**
-	 * Corresponds to the 'converter' element of the StructConverter annotation.
-	 * Set to null to remove the element.
-	 */
-	void setConverter(String converter);
-
-	/**
-	 * Return the {@link TextRange} for the 'converter' element. If the element 
-	 * does not exist return the {@link TextRange} for the StructConverter annotation.
-	 */
-	TextRange getConverterTextRange(CompilationUnit astRoot);
-
-}
diff --git a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/resource/java/TimeOfDayAnnotation.java b/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/resource/java/TimeOfDayAnnotation.java
deleted file mode 100644
index a03b7f3..0000000
--- a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/resource/java/TimeOfDayAnnotation.java
+++ /dev/null
@@ -1,113 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008, 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.eclipselink.core.resource.java;
-
-import org.eclipse.jdt.core.dom.CompilationUnit;
-import org.eclipse.jpt.core.resource.java.Annotation;
-import org.eclipse.jpt.core.utility.TextRange;
-
-/**
- * Corresponds to the EclipseLink annotation
- * org.eclipse.persistence.annotations.TimeOfDay
- * 
- * Provisional API: This interface is part of an interim API that is still
- * under development and expected to change significantly before reaching
- * stability. It is available at this early stage to solicit feedback from
- * pioneering adopters on the understanding that any code that uses this API
- * will almost certainly be broken (repeatedly) as the API evolves.
- * 
- * @version 2.1
- * @since 2.1
- */
-public interface TimeOfDayAnnotation
-	extends Annotation
-{
-	String ANNOTATION_NAME = EclipseLinkJPA.TIME_OF_DAY;
-
-	/**
-	 * Corresponds to the 'hour' element of the TimeOfDay annotation.
-	 * Return null if the element does not exist in the annotation.
-	 */
-	Integer getHour();
-		String HOUR_PROPERTY = "hour"; //$NON-NLS-1$
-
-	/**
-	 * Corresponds to the 'hour' element of the TimeOfDay annotation.
-	 * Set to null to remove the element from the annotation
-	 */
-	void setHour(Integer hour);
-
-	/**
-	 * Return the {@link TextRange} for the 'hour' element. If the element 
-	 * does not exist return the {@link TextRange} for the TimeOfDay annotation.
-	 */
-	TextRange getHourTextRange(CompilationUnit astRoot);
-
-
-	/**
-	 * Corresponds to the 'minute' element of the TimeOfDay annotation.
-	 * Return null if the element does not exist in the annotation.
-	 */
-	Integer getMinute();
-		String MINUTE_PROPERTY = "minute"; //$NON-NLS-1$
-
-	/**
-	 * Corresponds to the 'minute' element of the TimeOfDay annotation.
-	 * Set to null to remove the element from the annotation
-	 */
-	void setMinute(Integer minute);
-
-	/**
-	 * Return the {@link TextRange} for the 'minute' element. If the element 
-	 * does not exist return the {@link TextRange} for the TimeOfDay annotation.
-	 */
-	TextRange getMinuteTextRange(CompilationUnit astRoot);
-
-
-	/**
-	 * Corresponds to the 'second' element of the TimeOfDay annotation.
-	 * Return null if the element does not exist in the annotation.
-	 */
-	Integer getSecond();
-		String SECOND_PROPERTY = "second"; //$NON-NLS-1$
-
-	/**
-	 * Corresponds to the 'second' element of the TimeOfDay annotation.
-	 * Set to null to remove the element from the annotation
-	 */
-	void setSecond(Integer second);
-
-	/**
-	 * Return the {@link TextRange} for the 'second' element. If the element 
-	 * does not exist return the {@link TextRange} for the TimeOfDay annotation.
-	 */
-	TextRange getSecondTextRange(CompilationUnit astRoot);
-
-
-	/**
-	 * Corresponds to the 'millisecond' element of the TimeOfDay annotation.
-	 * Return null if the element does not exist in the annotation.
-	 */
-	Integer getMillisecond();
-		String MILLISECOND_PROPERTY = "millisecond"; //$NON-NLS-1$
-
-	/**
-	 * Corresponds to the 'millisecond' element of the TimeOfDay annotation.
-	 * Set to null to remove the element from the annotation
-	 */
-	void setMillisecond(Integer millisecond);
-
-	/**
-	 * Return the {@link TextRange} for the 'millisecond' element. If the element 
-	 * does not exist return the {@link TextRange} for the TimeOfDay annotation.
-	 */
-	TextRange getMillisecondTextRange(CompilationUnit astRoot);
-
-}
diff --git a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/resource/java/TransformationAnnotation.java b/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/resource/java/TransformationAnnotation.java
deleted file mode 100644
index 347a94b..0000000
--- a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/resource/java/TransformationAnnotation.java
+++ /dev/null
@@ -1,74 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008, 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.eclipselink.core.resource.java;
-
-import org.eclipse.jdt.core.dom.CompilationUnit;
-import org.eclipse.jpt.core.resource.java.Annotation;
-import org.eclipse.jpt.core.resource.java.FetchType;
-import org.eclipse.jpt.core.utility.TextRange;
-
-/**
- * Corresponds to the EclipseLink annotation
- * org.eclipse.persistence.annotations.Transformation
- * 
- * Provisional API: This interface is part of an interim API that is still
- * under development and expected to change significantly before reaching
- * stability. It is available at this early stage to solicit feedback from
- * pioneering adopters on the understanding that any code that uses this API
- * will almost certainly be broken (repeatedly) as the API evolves.
- * 
- * @version 2.1
- * @since 2.1
- */
-public interface TransformationAnnotation
-	extends Annotation
-{
-	String ANNOTATION_NAME = EclipseLinkJPA.TRANSFORMATION;
-
-	/**
-	 * Corresponds to the 'fetch' element of the Transformation annotation.
-	 * Return null if the element does not exist in Java.
-	 */
-	FetchType getFetch();
-		String FETCH_PROPERTY = "fetch"; //$NON-NLS-1$
-
-	/**
-	 * Corresponds to the 'fetch' element of the Transformation annotation.
-	 * Set to null to remove the element.
-	 */
-	void setFetch(FetchType fetch);
-
-	/**
-	 * Return the {@link TextRange} for the 'fetch' element. If the element 
-	 * does not exist return the {@link TextRange} for the Transformation annotation.
-	 */
-	TextRange getFetchTextRange(CompilationUnit astRoot);
-
-
-	/**
-	 * Corresponds to the 'optional' element of the Transformation annotation.
-	 * Return null if the element does not exist in Java.
-	 */
-	Boolean getOptional();
-		String OPTIONAL_PROPERTY = "optional"; //$NON-NLS-1$
-
-	/**
-	 * Corresponds to the 'optional' element of the Transformation annotation.
-	 * Set to null to remove the element.
-	 */
-	void setOptional(Boolean optional);
-
-	/**
-	 * Return the {@link TextRange} for the 'optional' element. If the element 
-	 * does not exist return the {@link TextRange} for the Transformation annotation.
-	 */
-	TextRange getOptionalTextRange(CompilationUnit astRoot);
-
-}
diff --git a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/resource/java/TransformerAnnotation.java b/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/resource/java/TransformerAnnotation.java
deleted file mode 100644
index e75ca3e..0000000
--- a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/resource/java/TransformerAnnotation.java
+++ /dev/null
@@ -1,77 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008, 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.eclipselink.core.resource.java;
-
-import org.eclipse.jdt.core.dom.CompilationUnit;
-import org.eclipse.jpt.core.resource.java.Annotation;
-import org.eclipse.jpt.core.utility.TextRange;
-
-/**
- * Common protocol among:
- *     org.eclipse.persistence.annotations.ReadTransformer
- *     org.eclipse.persistence.annotations.WriteTransformer
- * 
- * Provisional API: This interface is part of an interim API that is still
- * under development and expected to change significantly before reaching
- * stability. It is available at this early stage to solicit feedback from
- * pioneering adopters on the understanding that any code that uses this API
- * will almost certainly be broken (repeatedly) as the API evolves.
- * 
- * @version 2.1
- * @since 2.1
- */
-public interface TransformerAnnotation
-	extends Annotation
-{
-	/**
-	 * Corresponds to the 'transformerClass' element of the *Transformer annotation.
-	 * Return null if the element does not exist in Java.
-	 * Return the portion of the value preceding ".class".
-	 * <pre>
-	 *     &#64;ReadTransformer(transformerClass=Employee.class)
-	 * </pre>
-	 * will return "Employee".
-	 */
-	String getTransformerClass();
-		String TRANSFORMER_CLASS_PROPERTY = "transformerClass"; //$NON-NLS-1$
-
-	/**
-	 * Corresponds to the 'transformerClass' element of the *Transformer annotation.
-	 * Set to null to remove the element.
-	 */
-	void setTransformerClass(String transformerClass);
-
-	/**
-	 * Return the {@link TextRange} for the 'transformerClass' element. If the element 
-	 * does not exist return the {@link TextRange} for the *Transformer annotation.
-	 */
-	TextRange getTransformerClassTextRange(CompilationUnit astRoot);
-
-
-	/**
-	 * Corresponds to the 'method' element of the *Transformer annotation.
-	 * Return null if the element does not exist in Java.
-	 */
-	String getMethod();
-		String METHOD_PROPERTY = "method"; //$NON-NLS-1$
-
-	/**
-	 * Corresponds to the 'method' element of the *Transformer annotation.
-	 * Set to null to remove the element.
-	 */
-	void setMethod(String method);
-
-	/**
-	 * Return the {@link TextRange} for the 'method' element. If the element 
-	 * does not exist return the {@link TextRange} for the *Transformer annotation.
-	 */
-	TextRange getMethodTextRange(CompilationUnit astRoot);
-
-}
diff --git a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/resource/java/TypeConverterAnnotation.java b/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/resource/java/TypeConverterAnnotation.java
deleted file mode 100644
index ba1fd80..0000000
--- a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/resource/java/TypeConverterAnnotation.java
+++ /dev/null
@@ -1,29 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008, 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.eclipselink.core.resource.java;
-
-/**
- * Corresponds to the EclipseLink annotation
- * org.eclipse.persistence.annotations.TypeConverter
- * 
- * Provisional API: This interface is part of an interim API that is still
- * under development and expected to change significantly before reaching
- * stability. It is available at this early stage to solicit feedback from
- * pioneering adopters on the understanding that any code that uses this API
- * will almost certainly be broken (repeatedly) as the API evolves.
- * 
- * @version 2.1
- * @since 2.1
- */
-public interface TypeConverterAnnotation
-	extends BaseTypeConverterAnnotation
-{
-	String ANNOTATION_NAME = EclipseLinkJPA.TYPE_CONVERTER;
-}
diff --git a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/resource/java/VariableOneToOneAnnotation.java b/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/resource/java/VariableOneToOneAnnotation.java
deleted file mode 100644
index 002c5c2..0000000
--- a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/resource/java/VariableOneToOneAnnotation.java
+++ /dev/null
@@ -1,31 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.eclipselink.core.resource.java;
-
-import org.eclipse.jpt.core.resource.java.Annotation;
-
-/**
- * Corresponds to EclipseLink annotation
- * org.eclipse.persistence.annotations.VariableOneToOne
- * 
- * Provisional API: This interface is part of an interim API that is still
- * under development and expected to change significantly before reaching
- * stability. It is available at this early stage to solicit feedback from
- * pioneering adopters on the understanding that any code that uses this API
- * will almost certainly be broken (repeatedly) as the API evolves.
- * 
- * @version 2.2
- * @since 2.2
- */
-public interface VariableOneToOneAnnotation
-	extends Annotation
-{
-	String ANNOTATION_NAME = EclipseLinkJPA.VARIABLE_ONE_TO_ONE;
-}
diff --git a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/resource/java/WriteTransformerAnnotation.java b/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/resource/java/WriteTransformerAnnotation.java
deleted file mode 100644
index e993c52..0000000
--- a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/resource/java/WriteTransformerAnnotation.java
+++ /dev/null
@@ -1,64 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008, 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.eclipselink.core.resource.java;
-
-import org.eclipse.jdt.core.dom.CompilationUnit;
-import org.eclipse.jpt.core.resource.java.ColumnAnnotation;
-import org.eclipse.jpt.core.utility.TextRange;
-
-/**
- * Corresponds to the Eclipselink annotation
- * org.eclipse.persistence.annotations.WriteTransformer
- * 
- * Provisional API: This interface is part of an interim API that is still
- * under development and expected to change significantly before reaching
- * stability. It is available at this early stage to solicit feedback from
- * pioneering adopters on the understanding that any code that uses this API
- * will almost certainly be broken (repeatedly) as the API evolves.
- * 
- * @version 2.1
- * @since 2.1
- */
-public interface WriteTransformerAnnotation
-	extends TransformerAnnotation
-{
-	String ANNOTATION_NAME = EclipseLinkJPA.WRITE_TRANSFORMER;
-
-	/**
-	 * Corresponds to the 'column' element of the WriteTransformer annotation.
-	 * Return null if the element does not exist in Java.
-	 */
-	ColumnAnnotation getColumn();
-		String COLUMN_PROPERTY = "column"; //$NON-NLS-1$
-
-	/**
-	 * Return a ColumnAnnotation, but do not return null if the 'column'
-	 * element does not exist on the WriteTransformer annotation. Instead
-	 * return a null object.
-	 */
-	ColumnAnnotation getNonNullColumn();
-
-	/**
-	 * Add the 'column' element to the WriteTransformer annotation.
-	 */
-	ColumnAnnotation addColumn();
-
-	/**
-	 * Remove the 'column' element from the WriteTransformer annotation.
-	 */
-	void removeColumn();
-
-	/**
-	 * Return the {@link TextRange} for the 'column' element. If the element 
-	 * does not exist return the {@link TextRange} for the WriteTransformer annotation.
-	 */
-	TextRange getColumnTextRange(CompilationUnit astRoot);
-
-}
diff --git a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/resource/orm/Attributes.java b/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/resource/orm/Attributes.java
deleted file mode 100644
index 4350910..0000000
--- a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/resource/orm/Attributes.java
+++ /dev/null
@@ -1,352 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008, 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.eclipselink.core.resource.orm;
-
-import java.util.ArrayList;
-import java.util.Collection;
-import java.util.List;
-
-import org.eclipse.emf.common.notify.NotificationChain;
-import org.eclipse.emf.common.util.EList;
-import org.eclipse.emf.ecore.EClass;
-import org.eclipse.emf.ecore.InternalEObject;
-import org.eclipse.emf.ecore.util.EObjectContainmentEList;
-import org.eclipse.emf.ecore.util.InternalEList;
-import org.eclipse.jpt.core.resource.orm.XmlAttributeMapping;
-import org.eclipse.jpt.utility.internal.CollectionTools;
-
-/**
- * <!-- begin-user-doc -->
- * A representation of the model object '<em><b>Attributes</b></em>'.
- *
- * Provisional API: This interface is part of an interim API that is still
- * under development and expected to change significantly before reaching
- * stability. It is available at this early stage to solicit feedback from
- * pioneering adopters on the understanding that any code that uses this API
- * will almost certainly be broken (repeatedly) as the API evolves.
- *
- * <!-- end-user-doc -->
- *
- * <p>
- * The following features are supported:
- * <ul>
- *   <li>{@link org.eclipse.jpt.eclipselink.core.resource.orm.Attributes#getBasicCollections <em>Basic Collections</em>}</li>
- *   <li>{@link org.eclipse.jpt.eclipselink.core.resource.orm.Attributes#getBasicMaps <em>Basic Maps</em>}</li>
- *   <li>{@link org.eclipse.jpt.eclipselink.core.resource.orm.Attributes#getTransformations <em>Transformations</em>}</li>
- *   <li>{@link org.eclipse.jpt.eclipselink.core.resource.orm.Attributes#getVariableOneToOnes <em>Variable One To Ones</em>}</li>
- * </ul>
- * </p>
- *
- * @see org.eclipse.jpt.eclipselink.core.resource.orm.EclipseLinkOrmPackage#getAttributes()
- * @model kind="class"
- * @generated
- */
-public class Attributes extends org.eclipse.jpt.core.resource.orm.Attributes
-{
-	/**
-	 * The cached value of the '{@link #getBasicCollections() <em>Basic Collections</em>}' containment reference list.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see #getBasicCollections()
-	 * @generated
-	 * @ordered
-	 */
-	protected EList<XmlBasicCollection> basicCollections;
-
-	/**
-	 * The cached value of the '{@link #getBasicMaps() <em>Basic Maps</em>}' containment reference list.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see #getBasicMaps()
-	 * @generated
-	 * @ordered
-	 */
-	protected EList<XmlBasicMap> basicMaps;
-
-	/**
-	 * The cached value of the '{@link #getTransformations() <em>Transformations</em>}' containment reference list.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see #getTransformations()
-	 * @generated
-	 * @ordered
-	 */
-	protected EList<XmlTransformation> transformations;
-
-	/**
-	 * The cached value of the '{@link #getVariableOneToOnes() <em>Variable One To Ones</em>}' containment reference list.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see #getVariableOneToOnes()
-	 * @generated
-	 * @ordered
-	 */
-	protected EList<XmlVariableOneToOne> variableOneToOnes;
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	protected Attributes()
-	{
-		super();
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	protected EClass eStaticClass()
-	{
-		return EclipseLinkOrmPackage.Literals.ATTRIBUTES;
-	}
-
-	/**
-	 * Returns the value of the '<em><b>Basic Collections</b></em>' containment reference list.
-	 * The list contents are of type {@link org.eclipse.jpt.eclipselink.core.resource.orm.XmlBasicCollection}.
-	 * <!-- begin-user-doc -->
-	 * <p>
-	 * If the meaning of the '<em>Basic Collections</em>' containment reference list isn't clear,
-	 * there really should be more of a description here...
-	 * </p>
-	 * <!-- end-user-doc -->
-	 * @return the value of the '<em>Basic Collections</em>' containment reference list.
-	 * @see org.eclipse.jpt.eclipselink.core.resource.orm.EclipseLinkOrmPackage#getAttributes_BasicCollections()
-	 * @model containment="true"
-	 * @generated
-	 */
-	public EList<XmlBasicCollection> getBasicCollections()
-	{
-		if (basicCollections == null)
-		{
-			basicCollections = new EObjectContainmentEList<XmlBasicCollection>(XmlBasicCollection.class, this, EclipseLinkOrmPackage.ATTRIBUTES__BASIC_COLLECTIONS);
-		}
-		return basicCollections;
-	}
-
-	/**
-	 * Returns the value of the '<em><b>Basic Maps</b></em>' containment reference list.
-	 * The list contents are of type {@link org.eclipse.jpt.eclipselink.core.resource.orm.XmlBasicMap}.
-	 * <!-- begin-user-doc -->
-	 * <p>
-	 * If the meaning of the '<em>Basic Maps</em>' containment reference list isn't clear,
-	 * there really should be more of a description here...
-	 * </p>
-	 * <!-- end-user-doc -->
-	 * @return the value of the '<em>Basic Maps</em>' containment reference list.
-	 * @see org.eclipse.jpt.eclipselink.core.resource.orm.EclipseLinkOrmPackage#getAttributes_BasicMaps()
-	 * @model containment="true"
-	 * @generated
-	 */
-	public EList<XmlBasicMap> getBasicMaps()
-	{
-		if (basicMaps == null)
-		{
-			basicMaps = new EObjectContainmentEList<XmlBasicMap>(XmlBasicMap.class, this, EclipseLinkOrmPackage.ATTRIBUTES__BASIC_MAPS);
-		}
-		return basicMaps;
-	}
-
-	/**
-	 * Returns the value of the '<em><b>Transformations</b></em>' containment reference list.
-	 * The list contents are of type {@link org.eclipse.jpt.eclipselink.core.resource.orm.XmlTransformation}.
-	 * <!-- begin-user-doc -->
-	 * <p>
-	 * If the meaning of the '<em>Transformations</em>' containment reference list isn't clear,
-	 * there really should be more of a description here...
-	 * </p>
-	 * <!-- end-user-doc -->
-	 * @return the value of the '<em>Transformations</em>' containment reference list.
-	 * @see org.eclipse.jpt.eclipselink.core.resource.orm.EclipseLinkOrmPackage#getAttributes_Transformations()
-	 * @model containment="true"
-	 * @generated
-	 */
-	public EList<XmlTransformation> getTransformations()
-	{
-		if (transformations == null)
-		{
-			transformations = new EObjectContainmentEList<XmlTransformation>(XmlTransformation.class, this, EclipseLinkOrmPackage.ATTRIBUTES__TRANSFORMATIONS);
-		}
-		return transformations;
-	}
-
-	/**
-	 * Returns the value of the '<em><b>Variable One To Ones</b></em>' containment reference list.
-	 * The list contents are of type {@link org.eclipse.jpt.eclipselink.core.resource.orm.XmlVariableOneToOne}.
-	 * <!-- begin-user-doc -->
-	 * <p>
-	 * If the meaning of the '<em>Variable One To Ones</em>' containment reference list isn't clear,
-	 * there really should be more of a description here...
-	 * </p>
-	 * <!-- end-user-doc -->
-	 * @return the value of the '<em>Variable One To Ones</em>' containment reference list.
-	 * @see org.eclipse.jpt.eclipselink.core.resource.orm.EclipseLinkOrmPackage#getAttributes_VariableOneToOnes()
-	 * @model containment="true"
-	 * @generated
-	 */
-	public EList<XmlVariableOneToOne> getVariableOneToOnes()
-	{
-		if (variableOneToOnes == null)
-		{
-			variableOneToOnes = new EObjectContainmentEList<XmlVariableOneToOne>(XmlVariableOneToOne.class, this, EclipseLinkOrmPackage.ATTRIBUTES__VARIABLE_ONE_TO_ONES);
-		}
-		return variableOneToOnes;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs)
-	{
-		switch (featureID)
-		{
-			case EclipseLinkOrmPackage.ATTRIBUTES__BASIC_COLLECTIONS:
-				return ((InternalEList<?>)getBasicCollections()).basicRemove(otherEnd, msgs);
-			case EclipseLinkOrmPackage.ATTRIBUTES__BASIC_MAPS:
-				return ((InternalEList<?>)getBasicMaps()).basicRemove(otherEnd, msgs);
-			case EclipseLinkOrmPackage.ATTRIBUTES__TRANSFORMATIONS:
-				return ((InternalEList<?>)getTransformations()).basicRemove(otherEnd, msgs);
-			case EclipseLinkOrmPackage.ATTRIBUTES__VARIABLE_ONE_TO_ONES:
-				return ((InternalEList<?>)getVariableOneToOnes()).basicRemove(otherEnd, msgs);
-		}
-		return super.eInverseRemove(otherEnd, featureID, msgs);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public Object eGet(int featureID, boolean resolve, boolean coreType)
-	{
-		switch (featureID)
-		{
-			case EclipseLinkOrmPackage.ATTRIBUTES__BASIC_COLLECTIONS:
-				return getBasicCollections();
-			case EclipseLinkOrmPackage.ATTRIBUTES__BASIC_MAPS:
-				return getBasicMaps();
-			case EclipseLinkOrmPackage.ATTRIBUTES__TRANSFORMATIONS:
-				return getTransformations();
-			case EclipseLinkOrmPackage.ATTRIBUTES__VARIABLE_ONE_TO_ONES:
-				return getVariableOneToOnes();
-		}
-		return super.eGet(featureID, resolve, coreType);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@SuppressWarnings("unchecked")
-	@Override
-	public void eSet(int featureID, Object newValue)
-	{
-		switch (featureID)
-		{
-			case EclipseLinkOrmPackage.ATTRIBUTES__BASIC_COLLECTIONS:
-				getBasicCollections().clear();
-				getBasicCollections().addAll((Collection<? extends XmlBasicCollection>)newValue);
-				return;
-			case EclipseLinkOrmPackage.ATTRIBUTES__BASIC_MAPS:
-				getBasicMaps().clear();
-				getBasicMaps().addAll((Collection<? extends XmlBasicMap>)newValue);
-				return;
-			case EclipseLinkOrmPackage.ATTRIBUTES__TRANSFORMATIONS:
-				getTransformations().clear();
-				getTransformations().addAll((Collection<? extends XmlTransformation>)newValue);
-				return;
-			case EclipseLinkOrmPackage.ATTRIBUTES__VARIABLE_ONE_TO_ONES:
-				getVariableOneToOnes().clear();
-				getVariableOneToOnes().addAll((Collection<? extends XmlVariableOneToOne>)newValue);
-				return;
-		}
-		super.eSet(featureID, newValue);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public void eUnset(int featureID)
-	{
-		switch (featureID)
-		{
-			case EclipseLinkOrmPackage.ATTRIBUTES__BASIC_COLLECTIONS:
-				getBasicCollections().clear();
-				return;
-			case EclipseLinkOrmPackage.ATTRIBUTES__BASIC_MAPS:
-				getBasicMaps().clear();
-				return;
-			case EclipseLinkOrmPackage.ATTRIBUTES__TRANSFORMATIONS:
-				getTransformations().clear();
-				return;
-			case EclipseLinkOrmPackage.ATTRIBUTES__VARIABLE_ONE_TO_ONES:
-				getVariableOneToOnes().clear();
-				return;
-		}
-		super.eUnset(featureID);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public boolean eIsSet(int featureID)
-	{
-		switch (featureID)
-		{
-			case EclipseLinkOrmPackage.ATTRIBUTES__BASIC_COLLECTIONS:
-				return basicCollections != null && !basicCollections.isEmpty();
-			case EclipseLinkOrmPackage.ATTRIBUTES__BASIC_MAPS:
-				return basicMaps != null && !basicMaps.isEmpty();
-			case EclipseLinkOrmPackage.ATTRIBUTES__TRANSFORMATIONS:
-				return transformations != null && !transformations.isEmpty();
-			case EclipseLinkOrmPackage.ATTRIBUTES__VARIABLE_ONE_TO_ONES:
-				return variableOneToOnes != null && !variableOneToOnes.isEmpty();
-		}
-		return super.eIsSet(featureID);
-	}
-	
-	@Override
-	public List<XmlAttributeMapping> getAttributeMappings() {
-		// convert lists to arrays to avoid ConcurrentModificationException while adding to result list
-		ArrayList<XmlAttributeMapping> attributeMappings = new ArrayList<XmlAttributeMapping>();
-		CollectionTools.addAll(attributeMappings, this.getIds().toArray(EMPTY_XML_ATTRIBUTE_MAPPING_ARRAY));
-		CollectionTools.addAll(attributeMappings, this.getEmbeddedIds().toArray(EMPTY_XML_ATTRIBUTE_MAPPING_ARRAY));
-		CollectionTools.addAll(attributeMappings, this.getBasics().toArray(EMPTY_XML_ATTRIBUTE_MAPPING_ARRAY));
-		CollectionTools.addAll(attributeMappings, this.getBasicCollections().toArray(EMPTY_XML_ATTRIBUTE_MAPPING_ARRAY));
-		CollectionTools.addAll(attributeMappings, this.getBasicMaps().toArray(EMPTY_XML_ATTRIBUTE_MAPPING_ARRAY));
-		CollectionTools.addAll(attributeMappings, this.getVersions().toArray(EMPTY_XML_ATTRIBUTE_MAPPING_ARRAY));
-		CollectionTools.addAll(attributeMappings, this.getManyToOnes().toArray(EMPTY_XML_ATTRIBUTE_MAPPING_ARRAY));
-		CollectionTools.addAll(attributeMappings, this.getOneToManys().toArray(EMPTY_XML_ATTRIBUTE_MAPPING_ARRAY));
-		CollectionTools.addAll(attributeMappings, this.getOneToOnes().toArray(EMPTY_XML_ATTRIBUTE_MAPPING_ARRAY));
-		CollectionTools.addAll(attributeMappings, this.getVariableOneToOnes().toArray(EMPTY_XML_ATTRIBUTE_MAPPING_ARRAY));
-		CollectionTools.addAll(attributeMappings, this.getManyToManys().toArray(EMPTY_XML_ATTRIBUTE_MAPPING_ARRAY));
-		CollectionTools.addAll(attributeMappings, this.getEmbeddeds().toArray(EMPTY_XML_ATTRIBUTE_MAPPING_ARRAY));
-		CollectionTools.addAll(attributeMappings, this.getTransformations().toArray(EMPTY_XML_ATTRIBUTE_MAPPING_ARRAY));
-		CollectionTools.addAll(attributeMappings, this.getTransients().toArray(EMPTY_XML_ATTRIBUTE_MAPPING_ARRAY));
-		return attributeMappings;
-	}
-
-	protected static final XmlAttributeMapping[] EMPTY_XML_ATTRIBUTE_MAPPING_ARRAY = new XmlAttributeMapping[0];
-
-} // Attributes
diff --git a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/resource/orm/CacheCoordinationType.java b/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/resource/orm/CacheCoordinationType.java
deleted file mode 100644
index c050c81..0000000
--- a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/resource/orm/CacheCoordinationType.java
+++ /dev/null
@@ -1,294 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.eclipselink.core.resource.orm;
-
-import java.util.Arrays;
-import java.util.Collections;
-import java.util.List;
-import org.eclipse.emf.common.util.Enumerator;
-
-/**
- * <!-- begin-user-doc -->
- * 
- * A representation of the literals of the enumeration '<em><b>Cache Coordination Type</b></em>',
- * and utility methods for working with them.
- * 
- * Provisional API: This interface is part of an interim API that is still
- * under development and expected to change significantly before reaching
- * stability. It is available at this early stage to solicit feedback from
- * pioneering adopters on the understanding that any code that uses this API
- * will almost certainly be broken (repeatedly) as the API evolves.
- * 
- * @version 2.1
- * @since 2.1
- * 
- * <!-- end-user-doc -->
- * @see org.eclipse.jpt.eclipselink.core.resource.orm.EclipseLinkOrmPackage#getCacheCoordinationType()
- * @model
- * @generated
- */
-public enum CacheCoordinationType implements Enumerator
-{
-	/**
-	 * The '<em><b>SEND OBJECT CHANGES</b></em>' literal object.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see #SEND_OBJECT_CHANGES_VALUE
-	 * @generated
-	 * @ordered
-	 */
-	SEND_OBJECT_CHANGES(0, "SEND_OBJECT_CHANGES", "SEND_OBJECT_CHANGES"),
-
-	/**
-	 * The '<em><b>INVALIDATE CHANGED OBJECTS</b></em>' literal object.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see #INVALIDATE_CHANGED_OBJECTS_VALUE
-	 * @generated
-	 * @ordered
-	 */
-	INVALIDATE_CHANGED_OBJECTS(1, "INVALIDATE_CHANGED_OBJECTS", "INVALIDATE_CHANGED_OBJECTS"),
-
-	/**
-	 * The '<em><b>SEND NEW OBJECTS WITH CHANGES</b></em>' literal object.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see #SEND_NEW_OBJECTS_WITH_CHANGES_VALUE
-	 * @generated
-	 * @ordered
-	 */
-	SEND_NEW_OBJECTS_WITH_CHANGES(2, "SEND_NEW_OBJECTS_WITH_CHANGES", "SEND_NEW_OBJECTS_WITH_CHANGES"),
-
-	/**
-	 * The '<em><b>NONE</b></em>' literal object.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see #NONE_VALUE
-	 * @generated
-	 * @ordered
-	 */
-	NONE(3, "NONE", "NONE");
-
-	/**
-	 * The '<em><b>SEND OBJECT CHANGES</b></em>' literal value.
-	 * <!-- begin-user-doc -->
-	 * <p>
-	 * If the meaning of '<em><b>SEND OBJECT CHANGES</b></em>' literal object isn't clear,
-	 * there really should be more of a description here...
-	 * </p>
-	 * <!-- end-user-doc -->
-	 * @see #SEND_OBJECT_CHANGES
-	 * @model
-	 * @generated
-	 * @ordered
-	 */
-	public static final int SEND_OBJECT_CHANGES_VALUE = 0;
-
-	/**
-	 * The '<em><b>INVALIDATE CHANGED OBJECTS</b></em>' literal value.
-	 * <!-- begin-user-doc -->
-	 * <p>
-	 * If the meaning of '<em><b>INVALIDATE CHANGED OBJECTS</b></em>' literal object isn't clear,
-	 * there really should be more of a description here...
-	 * </p>
-	 * <!-- end-user-doc -->
-	 * @see #INVALIDATE_CHANGED_OBJECTS
-	 * @model
-	 * @generated
-	 * @ordered
-	 */
-	public static final int INVALIDATE_CHANGED_OBJECTS_VALUE = 1;
-
-	/**
-	 * The '<em><b>SEND NEW OBJECTS WITH CHANGES</b></em>' literal value.
-	 * <!-- begin-user-doc -->
-	 * <p>
-	 * If the meaning of '<em><b>SEND NEW OBJECTS WITH CHANGES</b></em>' literal object isn't clear,
-	 * there really should be more of a description here...
-	 * </p>
-	 * <!-- end-user-doc -->
-	 * @see #SEND_NEW_OBJECTS_WITH_CHANGES
-	 * @model
-	 * @generated
-	 * @ordered
-	 */
-	public static final int SEND_NEW_OBJECTS_WITH_CHANGES_VALUE = 2;
-
-	/**
-	 * The '<em><b>NONE</b></em>' literal value.
-	 * <!-- begin-user-doc -->
-	 * <p>
-	 * If the meaning of '<em><b>NONE</b></em>' literal object isn't clear,
-	 * there really should be more of a description here...
-	 * </p>
-	 * <!-- end-user-doc -->
-	 * @see #NONE
-	 * @model
-	 * @generated
-	 * @ordered
-	 */
-	public static final int NONE_VALUE = 3;
-
-	/**
-	 * An array of all the '<em><b>Cache Coordination Type</b></em>' enumerators.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	private static final CacheCoordinationType[] VALUES_ARRAY =
-		new CacheCoordinationType[]
-		{
-			SEND_OBJECT_CHANGES,
-			INVALIDATE_CHANGED_OBJECTS,
-			SEND_NEW_OBJECTS_WITH_CHANGES,
-			NONE,
-		};
-
-	/**
-	 * A public read-only list of all the '<em><b>Cache Coordination Type</b></em>' enumerators.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public static final List<CacheCoordinationType> VALUES = Collections.unmodifiableList(Arrays.asList(VALUES_ARRAY));
-
-	/**
-	 * Returns the '<em><b>Cache Coordination Type</b></em>' literal with the specified literal value.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public static CacheCoordinationType get(String literal)
-	{
-		for (int i = 0; i < VALUES_ARRAY.length; ++i)
-		{
-			CacheCoordinationType result = VALUES_ARRAY[i];
-			if (result.toString().equals(literal))
-			{
-				return result;
-			}
-		}
-		return null;
-	}
-
-	/**
-	 * Returns the '<em><b>Cache Coordination Type</b></em>' literal with the specified name.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public static CacheCoordinationType getByName(String name)
-	{
-		for (int i = 0; i < VALUES_ARRAY.length; ++i)
-		{
-			CacheCoordinationType result = VALUES_ARRAY[i];
-			if (result.getName().equals(name))
-			{
-				return result;
-			}
-		}
-		return null;
-	}
-
-	/**
-	 * Returns the '<em><b>Cache Coordination Type</b></em>' literal with the specified integer value.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public static CacheCoordinationType get(int value)
-	{
-		switch (value)
-		{
-			case SEND_OBJECT_CHANGES_VALUE: return SEND_OBJECT_CHANGES;
-			case INVALIDATE_CHANGED_OBJECTS_VALUE: return INVALIDATE_CHANGED_OBJECTS;
-			case SEND_NEW_OBJECTS_WITH_CHANGES_VALUE: return SEND_NEW_OBJECTS_WITH_CHANGES;
-			case NONE_VALUE: return NONE;
-		}
-		return null;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	private final int value;
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	private final String name;
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	private final String literal;
-
-	/**
-	 * Only this class can construct instances.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	private CacheCoordinationType(int value, String name, String literal)
-	{
-		this.value = value;
-		this.name = name;
-		this.literal = literal;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public int getValue()
-	{
-	  return value;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public String getName()
-	{
-	  return name;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public String getLiteral()
-	{
-	  return literal;
-	}
-
-	/**
-	 * Returns the literal value of the enumerator, which is its string representation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public String toString()
-	{
-		return literal;
-	}
-	
-} //CacheCoordinationType
diff --git a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/resource/orm/CacheType.java b/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/resource/orm/CacheType.java
deleted file mode 100644
index 8515373..0000000
--- a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/resource/orm/CacheType.java
+++ /dev/null
@@ -1,372 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.eclipselink.core.resource.orm;
-
-import java.util.Arrays;
-import java.util.Collections;
-import java.util.List;
-import org.eclipse.emf.common.util.Enumerator;
-
-/**
- * <!-- begin-user-doc -->
- * 
- * Provisional API: This interface is part of an interim API that is still
- * under development and expected to change significantly before reaching
- * stability. It is available at this early stage to solicit feedback from
- * pioneering adopters on the understanding that any code that uses this API
- * will almost certainly be broken (repeatedly) as the API evolves.
- * 
- * @version 2.1
- * @since 2.1
- * 
- * <!-- end-user-doc -->
- * @see org.eclipse.jpt.eclipselink.core.resource.orm.EclipseLinkOrmPackage#getCacheType()
- * @model
- * @generated
- */
-public enum CacheType implements Enumerator
-{
-	/**
-	 * The '<em><b>FULL</b></em>' literal object.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see #FULL_VALUE
-	 * @generated
-	 * @ordered
-	 */
-	FULL(0, "FULL", "FULL"),
-
-	/**
-	 * The '<em><b>WEAK</b></em>' literal object.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see #WEAK_VALUE
-	 * @generated
-	 * @ordered
-	 */
-	WEAK(1, "WEAK", "WEAK"),
-
-	/**
-	 * The '<em><b>SOFT</b></em>' literal object.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see #SOFT_VALUE
-	 * @generated
-	 * @ordered
-	 */
-	SOFT(2, "SOFT", "SOFT"),
-
-	/**
-	 * The '<em><b>SOFT WEAK</b></em>' literal object.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see #SOFT_WEAK_VALUE
-	 * @generated
-	 * @ordered
-	 */
-	SOFT_WEAK(3, "SOFT_WEAK", "SOFT_WEAK"),
-
-	/**
-	 * The '<em><b>HARD WEAK</b></em>' literal object.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see #HARD_WEAK_VALUE
-	 * @generated
-	 * @ordered
-	 */
-	HARD_WEAK(4, "HARD_WEAK", "HARD_WEAK"),
-
-	/**
-	 * The '<em><b>CACHE</b></em>' literal object.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see #CACHE_VALUE
-	 * @generated
-	 * @ordered
-	 */
-	CACHE(5, "CACHE", "CACHE"),
-
-	/**
-	 * The '<em><b>NONE</b></em>' literal object.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see #NONE_VALUE
-	 * @generated
-	 * @ordered
-	 */
-	NONE(6, "NONE", "NONE");
-
-	/**
-	 * The '<em><b>FULL</b></em>' literal value.
-	 * <!-- begin-user-doc -->
-	 * <p>
-	 * If the meaning of '<em><b>FULL</b></em>' literal object isn't clear,
-	 * there really should be more of a description here...
-	 * </p>
-	 * <!-- end-user-doc -->
-	 * @see #FULL
-	 * @model
-	 * @generated
-	 * @ordered
-	 */
-	public static final int FULL_VALUE = 0;
-
-	/**
-	 * The '<em><b>WEAK</b></em>' literal value.
-	 * <!-- begin-user-doc -->
-	 * <p>
-	 * If the meaning of '<em><b>WEAK</b></em>' literal object isn't clear,
-	 * there really should be more of a description here...
-	 * </p>
-	 * <!-- end-user-doc -->
-	 * @see #WEAK
-	 * @model
-	 * @generated
-	 * @ordered
-	 */
-	public static final int WEAK_VALUE = 1;
-
-	/**
-	 * The '<em><b>SOFT</b></em>' literal value.
-	 * <!-- begin-user-doc -->
-	 * <p>
-	 * If the meaning of '<em><b>SOFT</b></em>' literal object isn't clear,
-	 * there really should be more of a description here...
-	 * </p>
-	 * <!-- end-user-doc -->
-	 * @see #SOFT
-	 * @model
-	 * @generated
-	 * @ordered
-	 */
-	public static final int SOFT_VALUE = 2;
-
-	/**
-	 * The '<em><b>SOFT WEAK</b></em>' literal value.
-	 * <!-- begin-user-doc -->
-	 * <p>
-	 * If the meaning of '<em><b>SOFT WEAK</b></em>' literal object isn't clear,
-	 * there really should be more of a description here...
-	 * </p>
-	 * <!-- end-user-doc -->
-	 * @see #SOFT_WEAK
-	 * @model
-	 * @generated
-	 * @ordered
-	 */
-	public static final int SOFT_WEAK_VALUE = 3;
-
-	/**
-	 * The '<em><b>HARD WEAK</b></em>' literal value.
-	 * <!-- begin-user-doc -->
-	 * <p>
-	 * If the meaning of '<em><b>HARD WEAK</b></em>' literal object isn't clear,
-	 * there really should be more of a description here...
-	 * </p>
-	 * <!-- end-user-doc -->
-	 * @see #HARD_WEAK
-	 * @model
-	 * @generated
-	 * @ordered
-	 */
-	public static final int HARD_WEAK_VALUE = 4;
-
-	/**
-	 * The '<em><b>CACHE</b></em>' literal value.
-	 * <!-- begin-user-doc -->
-	 * <p>
-	 * If the meaning of '<em><b>CACHE</b></em>' literal object isn't clear,
-	 * there really should be more of a description here...
-	 * </p>
-	 * <!-- end-user-doc -->
-	 * @see #CACHE
-	 * @model
-	 * @generated
-	 * @ordered
-	 */
-	public static final int CACHE_VALUE = 5;
-
-	/**
-	 * The '<em><b>NONE</b></em>' literal value.
-	 * <!-- begin-user-doc -->
-	 * <p>
-	 * If the meaning of '<em><b>NONE</b></em>' literal object isn't clear,
-	 * there really should be more of a description here...
-	 * </p>
-	 * <!-- end-user-doc -->
-	 * @see #NONE
-	 * @model
-	 * @generated
-	 * @ordered
-	 */
-	public static final int NONE_VALUE = 6;
-
-	/**
-	 * An array of all the '<em><b>Cache Type</b></em>' enumerators.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	private static final CacheType[] VALUES_ARRAY =
-		new CacheType[]
-		{
-			FULL,
-			WEAK,
-			SOFT,
-			SOFT_WEAK,
-			HARD_WEAK,
-			CACHE,
-			NONE,
-		};
-
-	/**
-	 * A public read-only list of all the '<em><b>Cache Type</b></em>' enumerators.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public static final List<CacheType> VALUES = Collections.unmodifiableList(Arrays.asList(VALUES_ARRAY));
-
-	/**
-	 * Returns the '<em><b>Cache Type</b></em>' literal with the specified literal value.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public static CacheType get(String literal)
-	{
-		for (int i = 0; i < VALUES_ARRAY.length; ++i)
-		{
-			CacheType result = VALUES_ARRAY[i];
-			if (result.toString().equals(literal))
-			{
-				return result;
-			}
-		}
-		return null;
-	}
-
-	/**
-	 * Returns the '<em><b>Cache Type</b></em>' literal with the specified name.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public static CacheType getByName(String name)
-	{
-		for (int i = 0; i < VALUES_ARRAY.length; ++i)
-		{
-			CacheType result = VALUES_ARRAY[i];
-			if (result.getName().equals(name))
-			{
-				return result;
-			}
-		}
-		return null;
-	}
-
-	/**
-	 * Returns the '<em><b>Cache Type</b></em>' literal with the specified integer value.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public static CacheType get(int value)
-	{
-		switch (value)
-		{
-			case FULL_VALUE: return FULL;
-			case WEAK_VALUE: return WEAK;
-			case SOFT_VALUE: return SOFT;
-			case SOFT_WEAK_VALUE: return SOFT_WEAK;
-			case HARD_WEAK_VALUE: return HARD_WEAK;
-			case CACHE_VALUE: return CACHE;
-			case NONE_VALUE: return NONE;
-		}
-		return null;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	private final int value;
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	private final String name;
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	private final String literal;
-
-	/**
-	 * Only this class can construct instances.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	private CacheType(int value, String name, String literal)
-	{
-		this.value = value;
-		this.name = name;
-		this.literal = literal;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public int getValue()
-	{
-	  return value;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public String getName()
-	{
-	  return name;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public String getLiteral()
-	{
-	  return literal;
-	}
-
-	/**
-	 * Returns the literal value of the enumerator, which is its string representation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public String toString()
-	{
-		return literal;
-	}
-	
-} //CacheType
diff --git a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/resource/orm/EclipseLinkOrmFactory.java b/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/resource/orm/EclipseLinkOrmFactory.java
deleted file mode 100644
index a8b5be6..0000000
--- a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/resource/orm/EclipseLinkOrmFactory.java
+++ /dev/null
@@ -1,761 +0,0 @@
-/*******************************************************************************
- *  Copyright (c) 2008, 2009  Oracle. 
- *  All rights reserved.  This program and the accompanying materials are 
- *  made available under the terms of the Eclipse Public License v1.0 which 
- *  accompanies this distribution, and is available at 
- *  http://www.eclipse.org/legal/epl-v10.html
- *  
- *  Contributors: 
- *  	Oracle - initial API and implementation
- *******************************************************************************/
-package org.eclipse.jpt.eclipselink.core.resource.orm;
-
-import org.eclipse.emf.ecore.EClass;
-import org.eclipse.emf.ecore.EDataType;
-import org.eclipse.emf.ecore.EObject;
-import org.eclipse.emf.ecore.EPackage;
-import org.eclipse.emf.ecore.impl.EFactoryImpl;
-import org.eclipse.emf.ecore.plugin.EcorePlugin;
-
-/**
- * <!-- begin-user-doc -->
- * 
- * Provisional API: This interface is part of an interim API that is still
- * under development and expected to change significantly before reaching
- * stability. It is available at this early stage to solicit feedback from
- * pioneering adopters on the understanding that any code that uses this API
- * will almost certainly be broken (repeatedly) as the API evolves.
- * 
- * @version 2.1
- * @since 2.1
- * 
- * <!-- end-user-doc -->
- * @see org.eclipse.jpt.eclipselink.core.resource.orm.EclipseLinkOrmPackage
- * @generated
- */
-public class EclipseLinkOrmFactory extends EFactoryImpl
-{
-	/**
-	 * The singleton instance of the factory.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public static final EclipseLinkOrmFactory eINSTANCE = init();
-
-	/**
-	 * Creates the default factory implementation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public static EclipseLinkOrmFactory init()
-	{
-		try
-		{
-			EclipseLinkOrmFactory theEclipseLinkOrmFactory = (EclipseLinkOrmFactory)EPackage.Registry.INSTANCE.getEFactory("jpt.eclipselink.orm.xmi"); 
-			if (theEclipseLinkOrmFactory != null)
-			{
-				return theEclipseLinkOrmFactory;
-			}
-		}
-		catch (Exception exception)
-		{
-			EcorePlugin.INSTANCE.log(exception);
-		}
-		return new EclipseLinkOrmFactory();
-	}
-
-	/**
-	 * Creates an instance of the factory.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public EclipseLinkOrmFactory()
-	{
-		super();
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public EObject create(EClass eClass)
-	{
-		switch (eClass.getClassifierID())
-		{
-			case EclipseLinkOrmPackage.XML_CONVERTER_IMPL: return (EObject)createXmlConverterImpl();
-			case EclipseLinkOrmPackage.XML_TYPE_CONVERTER_IMPL: return (EObject)createXmlTypeConverterImpl();
-			case EclipseLinkOrmPackage.XML_CONVERSION_VALUE_IMPL: return (EObject)createXmlConversionValueImpl();
-			case EclipseLinkOrmPackage.XML_OBJECT_TYPE_CONVERTER_IMPL: return (EObject)createXmlObjectTypeConverterImpl();
-			case EclipseLinkOrmPackage.XML_STRUCT_CONVERTER_IMPL: return (EObject)createXmlStructConverterImpl();
-			case EclipseLinkOrmPackage.XML_STORED_PROCEDURE_PARAMETER: return (EObject)createXmlStoredProcedureParameter();
-			case EclipseLinkOrmPackage.XML_NAMED_STORED_PROCEDURE_QUERY: return (EObject)createXmlNamedStoredProcedureQuery();
-			case EclipseLinkOrmPackage.XML_ENTITY_MAPPINGS: return (EObject)createXmlEntityMappings();
-			case EclipseLinkOrmPackage.XML_PERSISTENCE_UNIT_METADATA: return (EObject)createXmlPersistenceUnitMetadata();
-			case EclipseLinkOrmPackage.XML_CUSTOMIZER: return (EObject)createXmlCustomizer();
-			case EclipseLinkOrmPackage.XML_CHANGE_TRACKING: return (EObject)createXmlChangeTracking();
-			case EclipseLinkOrmPackage.XML_COPY_POLICY: return (EObject)createXmlCopyPolicy();
-			case EclipseLinkOrmPackage.XML_INSTANTIATION_POLICY: return (EObject)createXmlInstantiationPolicy();
-			case EclipseLinkOrmPackage.XML_CLONE_COPY_POLICY: return (EObject)createXmlCloneCopyPolicy();
-			case EclipseLinkOrmPackage.XML_EMBEDDABLE: return (EObject)createXmlEmbeddable();
-			case EclipseLinkOrmPackage.XML_TIME_OF_DAY: return (EObject)createXmlTimeOfDay();
-			case EclipseLinkOrmPackage.XML_CACHE: return (EObject)createXmlCache();
-			case EclipseLinkOrmPackage.XML_OPTIMISTIC_LOCKING: return (EObject)createXmlOptimisticLocking();
-			case EclipseLinkOrmPackage.XML_ENTITY: return (EObject)createXmlEntity();
-			case EclipseLinkOrmPackage.XML_MAPPED_SUPERCLASS: return (EObject)createXmlMappedSuperclass();
-			case EclipseLinkOrmPackage.XML_ACCESS_METHODS: return (EObject)createXmlAccessMethods();
-			case EclipseLinkOrmPackage.XML_PROPERTY: return (EObject)createXmlProperty();
-			case EclipseLinkOrmPackage.XML_ID_IMPL: return (EObject)createXmlIdImpl();
-			case EclipseLinkOrmPackage.XML_EMBEDDED_ID_IMPL: return (EObject)createXmlEmbeddedIdImpl();
-			case EclipseLinkOrmPackage.XML_EMBEDDED_IMPL: return (EObject)createXmlEmbeddedImpl();
-			case EclipseLinkOrmPackage.XML_BASIC_IMPL: return (EObject)createXmlBasicImpl();
-			case EclipseLinkOrmPackage.XML_VERSION_IMPL: return (EObject)createXmlVersionImpl();
-			case EclipseLinkOrmPackage.XML_ONE_TO_ONE_IMPL: return (EObject)createXmlOneToOneImpl();
-			case EclipseLinkOrmPackage.XML_ONE_TO_MANY_IMPL: return (EObject)createXmlOneToManyImpl();
-			case EclipseLinkOrmPackage.XML_MANY_TO_ONE_IMPL: return (EObject)createXmlManyToOneImpl();
-			case EclipseLinkOrmPackage.XML_MANY_TO_MANY_IMPL: return (EObject)createXmlManyToManyImpl();
-			case EclipseLinkOrmPackage.XML_BASIC_COLLECTION_IMPL: return (EObject)createXmlBasicCollectionImpl();
-			case EclipseLinkOrmPackage.XML_BASIC_MAP_IMPL: return (EObject)createXmlBasicMapImpl();
-			case EclipseLinkOrmPackage.XML_TRANSFORMATION_IMPL: return (EObject)createXmlTransformationImpl();
-			case EclipseLinkOrmPackage.XML_VARIABLE_ONE_TO_ONE_IMPL: return (EObject)createXmlVariableOneToOneImpl();
-			case EclipseLinkOrmPackage.ATTRIBUTES: return (EObject)createAttributes();
-			default:
-				throw new IllegalArgumentException("The class '" + eClass.getName() + "' is not a valid classifier");
-		}
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public Object createFromString(EDataType eDataType, String initialValue)
-	{
-		switch (eDataType.getClassifierID())
-		{
-			case EclipseLinkOrmPackage.XML_DIRECTION:
-				return createXmlDirectionFromString(eDataType, initialValue);
-			case EclipseLinkOrmPackage.XML_CHANGE_TRACKING_TYPE:
-				return createXmlChangeTrackingTypeFromString(eDataType, initialValue);
-			case EclipseLinkOrmPackage.CACHE_TYPE:
-				return createCacheTypeFromString(eDataType, initialValue);
-			case EclipseLinkOrmPackage.CACHE_COORDINATION_TYPE:
-				return createCacheCoordinationTypeFromString(eDataType, initialValue);
-			case EclipseLinkOrmPackage.EXISTENCE_TYPE:
-				return createExistenceTypeFromString(eDataType, initialValue);
-			case EclipseLinkOrmPackage.XML_OPTIMISTIC_LOCKING_TYPE:
-				return createXmlOptimisticLockingTypeFromString(eDataType, initialValue);
-			case EclipseLinkOrmPackage.XML_JOIN_FETCH_TYPE:
-				return createXmlJoinFetchTypeFromString(eDataType, initialValue);
-			default:
-				throw new IllegalArgumentException("The datatype '" + eDataType.getName() + "' is not a valid classifier");
-		}
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public String convertToString(EDataType eDataType, Object instanceValue)
-	{
-		switch (eDataType.getClassifierID())
-		{
-			case EclipseLinkOrmPackage.XML_DIRECTION:
-				return convertXmlDirectionToString(eDataType, instanceValue);
-			case EclipseLinkOrmPackage.XML_CHANGE_TRACKING_TYPE:
-				return convertXmlChangeTrackingTypeToString(eDataType, instanceValue);
-			case EclipseLinkOrmPackage.CACHE_TYPE:
-				return convertCacheTypeToString(eDataType, instanceValue);
-			case EclipseLinkOrmPackage.CACHE_COORDINATION_TYPE:
-				return convertCacheCoordinationTypeToString(eDataType, instanceValue);
-			case EclipseLinkOrmPackage.EXISTENCE_TYPE:
-				return convertExistenceTypeToString(eDataType, instanceValue);
-			case EclipseLinkOrmPackage.XML_OPTIMISTIC_LOCKING_TYPE:
-				return convertXmlOptimisticLockingTypeToString(eDataType, instanceValue);
-			case EclipseLinkOrmPackage.XML_JOIN_FETCH_TYPE:
-				return convertXmlJoinFetchTypeToString(eDataType, instanceValue);
-			default:
-				throw new IllegalArgumentException("The datatype '" + eDataType.getName() + "' is not a valid classifier");
-		}
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public XmlEntityMappings createXmlEntityMappings()
-	{
-		XmlEntityMappings xmlEntityMappings = new XmlEntityMappings();
-		return xmlEntityMappings;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public XmlPersistenceUnitMetadata createXmlPersistenceUnitMetadata()
-	{
-		XmlPersistenceUnitMetadata xmlPersistenceUnitMetadata = new XmlPersistenceUnitMetadata();
-		return xmlPersistenceUnitMetadata;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public XmlCustomizer createXmlCustomizer()
-	{
-		XmlCustomizer xmlCustomizer = new XmlCustomizer();
-		return xmlCustomizer;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public XmlChangeTracking createXmlChangeTracking()
-	{
-		XmlChangeTracking xmlChangeTracking = new XmlChangeTracking();
-		return xmlChangeTracking;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public XmlCopyPolicy createXmlCopyPolicy()
-	{
-		XmlCopyPolicy xmlCopyPolicy = new XmlCopyPolicy();
-		return xmlCopyPolicy;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public XmlInstantiationPolicy createXmlInstantiationPolicy()
-	{
-		XmlInstantiationPolicy xmlInstantiationPolicy = new XmlInstantiationPolicy();
-		return xmlInstantiationPolicy;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public XmlCloneCopyPolicy createXmlCloneCopyPolicy()
-	{
-		XmlCloneCopyPolicy xmlCloneCopyPolicy = new XmlCloneCopyPolicy();
-		return xmlCloneCopyPolicy;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public XmlEmbeddable createXmlEmbeddable()
-	{
-		XmlEmbeddable xmlEmbeddable = new XmlEmbeddable();
-		return xmlEmbeddable;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public XmlEntity createXmlEntity()
-	{
-		XmlEntity xmlEntity = new XmlEntity();
-		return xmlEntity;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public XmlMappedSuperclass createXmlMappedSuperclass()
-	{
-		XmlMappedSuperclass xmlMappedSuperclass = new XmlMappedSuperclass();
-		return xmlMappedSuperclass;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public XmlAccessMethods createXmlAccessMethods()
-	{
-		XmlAccessMethods xmlAccessMethods = new XmlAccessMethods();
-		return xmlAccessMethods;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public XmlConverterImpl createXmlConverterImpl()
-	{
-		XmlConverterImpl xmlConverterImpl = new XmlConverterImpl();
-		return xmlConverterImpl;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public XmlTypeConverterImpl createXmlTypeConverterImpl()
-	{
-		XmlTypeConverterImpl xmlTypeConverterImpl = new XmlTypeConverterImpl();
-		return xmlTypeConverterImpl;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public XmlConversionValueImpl createXmlConversionValueImpl()
-	{
-		XmlConversionValueImpl xmlConversionValueImpl = new XmlConversionValueImpl();
-		return xmlConversionValueImpl;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public XmlObjectTypeConverterImpl createXmlObjectTypeConverterImpl()
-	{
-		XmlObjectTypeConverterImpl xmlObjectTypeConverterImpl = new XmlObjectTypeConverterImpl();
-		return xmlObjectTypeConverterImpl;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public XmlStructConverterImpl createXmlStructConverterImpl()
-	{
-		XmlStructConverterImpl xmlStructConverterImpl = new XmlStructConverterImpl();
-		return xmlStructConverterImpl;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public XmlStoredProcedureParameter createXmlStoredProcedureParameter()
-	{
-		XmlStoredProcedureParameter xmlStoredProcedureParameter = new XmlStoredProcedureParameter();
-		return xmlStoredProcedureParameter;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public XmlNamedStoredProcedureQuery createXmlNamedStoredProcedureQuery()
-	{
-		XmlNamedStoredProcedureQuery xmlNamedStoredProcedureQuery = new XmlNamedStoredProcedureQuery();
-		return xmlNamedStoredProcedureQuery;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public XmlIdImpl createXmlIdImpl()
-	{
-		XmlIdImpl xmlIdImpl = new XmlIdImpl();
-		return xmlIdImpl;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public XmlEmbeddedIdImpl createXmlEmbeddedIdImpl()
-	{
-		XmlEmbeddedIdImpl xmlEmbeddedIdImpl = new XmlEmbeddedIdImpl();
-		return xmlEmbeddedIdImpl;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public XmlEmbeddedImpl createXmlEmbeddedImpl()
-	{
-		XmlEmbeddedImpl xmlEmbeddedImpl = new XmlEmbeddedImpl();
-		return xmlEmbeddedImpl;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public XmlBasicImpl createXmlBasicImpl()
-	{
-		XmlBasicImpl xmlBasicImpl = new XmlBasicImpl();
-		return xmlBasicImpl;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public XmlVersionImpl createXmlVersionImpl()
-	{
-		XmlVersionImpl xmlVersionImpl = new XmlVersionImpl();
-		return xmlVersionImpl;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public XmlOneToOneImpl createXmlOneToOneImpl()
-	{
-		XmlOneToOneImpl xmlOneToOneImpl = new XmlOneToOneImpl();
-		return xmlOneToOneImpl;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public XmlOneToManyImpl createXmlOneToManyImpl()
-	{
-		XmlOneToManyImpl xmlOneToManyImpl = new XmlOneToManyImpl();
-		return xmlOneToManyImpl;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public XmlManyToOneImpl createXmlManyToOneImpl()
-	{
-		XmlManyToOneImpl xmlManyToOneImpl = new XmlManyToOneImpl();
-		return xmlManyToOneImpl;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public XmlManyToManyImpl createXmlManyToManyImpl()
-	{
-		XmlManyToManyImpl xmlManyToManyImpl = new XmlManyToManyImpl();
-		return xmlManyToManyImpl;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public Attributes createAttributes()
-	{
-		Attributes attributes = new Attributes();
-		return attributes;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public XmlBasicCollectionImpl createXmlBasicCollectionImpl()
-	{
-		XmlBasicCollectionImpl xmlBasicCollectionImpl = new XmlBasicCollectionImpl();
-		return xmlBasicCollectionImpl;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public XmlBasicMapImpl createXmlBasicMapImpl()
-	{
-		XmlBasicMapImpl xmlBasicMapImpl = new XmlBasicMapImpl();
-		return xmlBasicMapImpl;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public XmlTransformationImpl createXmlTransformationImpl()
-	{
-		XmlTransformationImpl xmlTransformationImpl = new XmlTransformationImpl();
-		return xmlTransformationImpl;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public XmlProperty createXmlProperty()
-	{
-		XmlProperty xmlProperty = new XmlProperty();
-		return xmlProperty;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public XmlVariableOneToOneImpl createXmlVariableOneToOneImpl()
-	{
-		XmlVariableOneToOneImpl xmlVariableOneToOneImpl = new XmlVariableOneToOneImpl();
-		return xmlVariableOneToOneImpl;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public XmlDirection createXmlDirectionFromString(EDataType eDataType, String initialValue)
-	{
-		XmlDirection result = XmlDirection.get(initialValue);
-		if (result == null) throw new IllegalArgumentException("The value '" + initialValue + "' is not a valid enumerator of '" + eDataType.getName() + "'");
-		return result;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public String convertXmlDirectionToString(EDataType eDataType, Object instanceValue)
-	{
-		return instanceValue == null ? null : instanceValue.toString();
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public XmlChangeTrackingType createXmlChangeTrackingTypeFromString(EDataType eDataType, String initialValue)
-	{
-		XmlChangeTrackingType result = XmlChangeTrackingType.get(initialValue);
-		if (result == null) throw new IllegalArgumentException("The value '" + initialValue + "' is not a valid enumerator of '" + eDataType.getName() + "'");
-		return result;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public String convertXmlChangeTrackingTypeToString(EDataType eDataType, Object instanceValue)
-	{
-		return instanceValue == null ? null : instanceValue.toString();
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public XmlTimeOfDay createXmlTimeOfDay()
-	{
-		XmlTimeOfDay xmlTimeOfDay = new XmlTimeOfDay();
-		return xmlTimeOfDay;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public XmlCache createXmlCache()
-	{
-		XmlCache xmlCache = new XmlCache();
-		return xmlCache;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public XmlOptimisticLocking createXmlOptimisticLocking()
-	{
-		XmlOptimisticLocking xmlOptimisticLocking = new XmlOptimisticLocking();
-		return xmlOptimisticLocking;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public XmlJoinFetchType createXmlJoinFetchTypeFromString(EDataType eDataType, String initialValue)
-	{
-		XmlJoinFetchType result = XmlJoinFetchType.get(initialValue);
-		if (result == null) throw new IllegalArgumentException("The value '" + initialValue + "' is not a valid enumerator of '" + eDataType.getName() + "'");
-		return result;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public String convertXmlJoinFetchTypeToString(EDataType eDataType, Object instanceValue)
-	{
-		return instanceValue == null ? null : instanceValue.toString();
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public CacheType createCacheTypeFromString(EDataType eDataType, String initialValue)
-	{
-		CacheType result = CacheType.get(initialValue);
-		if (result == null) throw new IllegalArgumentException("The value '" + initialValue + "' is not a valid enumerator of '" + eDataType.getName() + "'");
-		return result;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public String convertCacheTypeToString(EDataType eDataType, Object instanceValue)
-	{
-		return instanceValue == null ? null : instanceValue.toString();
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public CacheCoordinationType createCacheCoordinationTypeFromString(EDataType eDataType, String initialValue)
-	{
-		CacheCoordinationType result = CacheCoordinationType.get(initialValue);
-		if (result == null) throw new IllegalArgumentException("The value '" + initialValue + "' is not a valid enumerator of '" + eDataType.getName() + "'");
-		return result;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public String convertCacheCoordinationTypeToString(EDataType eDataType, Object instanceValue)
-	{
-		return instanceValue == null ? null : instanceValue.toString();
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public ExistenceType createExistenceTypeFromString(EDataType eDataType, String initialValue)
-	{
-		ExistenceType result = ExistenceType.get(initialValue);
-		if (result == null) throw new IllegalArgumentException("The value '" + initialValue + "' is not a valid enumerator of '" + eDataType.getName() + "'");
-		return result;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public String convertExistenceTypeToString(EDataType eDataType, Object instanceValue)
-	{
-		return instanceValue == null ? null : instanceValue.toString();
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public XmlOptimisticLockingType createXmlOptimisticLockingTypeFromString(EDataType eDataType, String initialValue)
-	{
-		XmlOptimisticLockingType result = XmlOptimisticLockingType.get(initialValue);
-		if (result == null) throw new IllegalArgumentException("The value '" + initialValue + "' is not a valid enumerator of '" + eDataType.getName() + "'");
-		return result;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public String convertXmlOptimisticLockingTypeToString(EDataType eDataType, Object instanceValue)
-	{
-		return instanceValue == null ? null : instanceValue.toString();
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public EclipseLinkOrmPackage getEclipseLinkOrmPackage()
-	{
-		return (EclipseLinkOrmPackage)getEPackage();
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @deprecated
-	 * @generated
-	 */
-	@Deprecated
-	public static EclipseLinkOrmPackage getPackage()
-	{
-		return EclipseLinkOrmPackage.eINSTANCE;
-	}
-
-} //EclipseLinkOrmFactory
diff --git a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/resource/orm/EclipseLinkOrmPackage.java b/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/resource/orm/EclipseLinkOrmPackage.java
deleted file mode 100644
index 5f29e33..0000000
--- a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/resource/orm/EclipseLinkOrmPackage.java
+++ /dev/null
@@ -1,10831 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008, 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.eclipselink.core.resource.orm;
-
-import org.eclipse.emf.ecore.EAttribute;
-import org.eclipse.emf.ecore.EClass;
-import org.eclipse.emf.ecore.EEnum;
-import org.eclipse.emf.ecore.EPackage;
-import org.eclipse.emf.ecore.EReference;
-import org.eclipse.emf.ecore.impl.EPackageImpl;
-import org.eclipse.emf.ecore.xml.type.XMLTypePackage;
-import org.eclipse.jpt.core.resource.orm.OrmPackage;
-
-/**
- * <!-- begin-user-doc -->
- * 
- * The <b>Package</b> for the model.
- * It contains accessors for the meta objects to represent
- * <ul>
- *   <li>each class,</li>
- *   <li>each feature of each class,</li>
- *   <li>each enum,</li>
- *   <li>and each data type</li>
- * </ul>
- *  
- * Provisional API: This interface is part of an interim API that is still
- * under development and expected to change significantly before reaching
- * stability. It is available at this early stage to solicit feedback from
- * pioneering adopters on the understanding that any code that uses this API
- * will almost certainly be broken (repeatedly) as the API evolves.
- * 
- * @version 2.1
- * @since 2.1
- * 
- * <!-- end-user-doc -->
- * @see org.eclipse.jpt.eclipselink.core.resource.orm.EclipseLinkOrmFactory
- * @model kind="package"
- * @generated
- */
-public class EclipseLinkOrmPackage extends EPackageImpl
-{
-	/**
-	 * The package name.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public static final String eNAME = "orm";
-
-	/**
-	 * The package namespace URI.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public static final String eNS_URI = "jpt.eclipselink.orm.xmi";
-
-	/**
-	 * The package namespace name.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public static final String eNS_PREFIX = "org.eclipse.jpt.eclipselink.core.resource.orm";
-
-	/**
-	 * The singleton instance of the package.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public static final EclipseLinkOrmPackage eINSTANCE = org.eclipse.jpt.eclipselink.core.resource.orm.EclipseLinkOrmPackage.init();
-
-	/**
-	 * The meta object id for the '{@link org.eclipse.jpt.eclipselink.core.resource.orm.XmlNamedConverter <em>Xml Named Converter</em>}' class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see org.eclipse.jpt.eclipselink.core.resource.orm.XmlNamedConverter
-	 * @see org.eclipse.jpt.eclipselink.core.resource.orm.EclipseLinkOrmPackage#getXmlNamedConverter()
-	 * @generated
-	 */
-	public static final int XML_NAMED_CONVERTER = 0;
-
-	/**
-	 * The feature id for the '<em><b>Name</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	public static final int XML_NAMED_CONVERTER__NAME = 0;
-
-	/**
-	 * The number of structural features of the '<em>Xml Named Converter</em>' class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	public static final int XML_NAMED_CONVERTER_FEATURE_COUNT = 1;
-
-	/**
-	 * The meta object id for the '{@link org.eclipse.jpt.eclipselink.core.resource.orm.XmlCustomizer <em>Xml Customizer</em>}' class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see org.eclipse.jpt.eclipselink.core.resource.orm.XmlCustomizer
-	 * @see org.eclipse.jpt.eclipselink.core.resource.orm.EclipseLinkOrmPackage#getXmlCustomizer()
-	 * @generated
-	 */
-	public static final int XML_CUSTOMIZER = 16;
-
-	/**
-	 * The meta object id for the '{@link org.eclipse.jpt.eclipselink.core.resource.orm.XmlCustomizerHolder <em>Xml Customizer Holder</em>}' class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see org.eclipse.jpt.eclipselink.core.resource.orm.XmlCustomizerHolder
-	 * @see org.eclipse.jpt.eclipselink.core.resource.orm.EclipseLinkOrmPackage#getXmlCustomizerHolder()
-	 * @generated
-	 */
-	public static final int XML_CUSTOMIZER_HOLDER = 17;
-
-	/**
-	 * The meta object id for the '{@link org.eclipse.jpt.eclipselink.core.resource.orm.XmlConvertersHolder <em>Xml Converters Holder</em>}' class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see org.eclipse.jpt.eclipselink.core.resource.orm.XmlConvertersHolder
-	 * @see org.eclipse.jpt.eclipselink.core.resource.orm.EclipseLinkOrmPackage#getXmlConvertersHolder()
-	 * @generated
-	 */
-	public static final int XML_CONVERTERS_HOLDER = 11;
-
-	/**
-	 * The meta object id for the '{@link org.eclipse.jpt.eclipselink.core.resource.orm.XmlEntityMappings <em>Xml Entity Mappings</em>}' class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see org.eclipse.jpt.eclipselink.core.resource.orm.XmlEntityMappings
-	 * @see org.eclipse.jpt.eclipselink.core.resource.orm.EclipseLinkOrmPackage#getXmlEntityMappings()
-	 * @generated
-	 */
-	public static final int XML_ENTITY_MAPPINGS = 14;
-
-	/**
-	 * The meta object id for the '{@link org.eclipse.jpt.eclipselink.core.resource.orm.XmlChangeTracking <em>Xml Change Tracking</em>}' class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see org.eclipse.jpt.eclipselink.core.resource.orm.XmlChangeTracking
-	 * @see org.eclipse.jpt.eclipselink.core.resource.orm.EclipseLinkOrmPackage#getXmlChangeTracking()
-	 * @generated
-	 */
-	public static final int XML_CHANGE_TRACKING = 18;
-
-	/**
-	 * The meta object id for the '{@link org.eclipse.jpt.eclipselink.core.resource.orm.XmlChangeTrackingHolder <em>Xml Change Tracking Holder</em>}' class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see org.eclipse.jpt.eclipselink.core.resource.orm.XmlChangeTrackingHolder
-	 * @see org.eclipse.jpt.eclipselink.core.resource.orm.EclipseLinkOrmPackage#getXmlChangeTrackingHolder()
-	 * @generated
-	 */
-	public static final int XML_CHANGE_TRACKING_HOLDER = 19;
-
-	/**
-	 * The meta object id for the '{@link org.eclipse.jpt.eclipselink.core.resource.orm.XmlEmbeddable <em>Xml Embeddable</em>}' class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see org.eclipse.jpt.eclipselink.core.resource.orm.XmlEmbeddable
-	 * @see org.eclipse.jpt.eclipselink.core.resource.orm.EclipseLinkOrmPackage#getXmlEmbeddable()
-	 * @generated
-	 */
-	public static final int XML_EMBEDDABLE = 23;
-
-	/**
-	 * The meta object id for the '{@link org.eclipse.jpt.eclipselink.core.resource.orm.XmlReadOnly <em>Xml Read Only</em>}' class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see org.eclipse.jpt.eclipselink.core.resource.orm.XmlReadOnly
-	 * @see org.eclipse.jpt.eclipselink.core.resource.orm.EclipseLinkOrmPackage#getXmlReadOnly()
-	 * @generated
-	 */
-	public static final int XML_READ_ONLY = 24;
-
-	/**
-	 * The meta object id for the '{@link org.eclipse.jpt.eclipselink.core.resource.orm.XmlTimeOfDay <em>Xml Time Of Day</em>}' class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see org.eclipse.jpt.eclipselink.core.resource.orm.XmlTimeOfDay
-	 * @see org.eclipse.jpt.eclipselink.core.resource.orm.EclipseLinkOrmPackage#getXmlTimeOfDay()
-	 * @generated
-	 */
-	public static final int XML_TIME_OF_DAY = 25;
-
-	/**
-	 * The meta object id for the '{@link org.eclipse.jpt.eclipselink.core.resource.orm.XmlCache <em>Xml Cache</em>}' class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see org.eclipse.jpt.eclipselink.core.resource.orm.XmlCache
-	 * @see org.eclipse.jpt.eclipselink.core.resource.orm.EclipseLinkOrmPackage#getXmlCache()
-	 * @generated
-	 */
-	public static final int XML_CACHE = 26;
-
-	/**
-	 * The meta object id for the '{@link org.eclipse.jpt.eclipselink.core.resource.orm.XmlCacheHolder <em>Xml Cache Holder</em>}' class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see org.eclipse.jpt.eclipselink.core.resource.orm.XmlCacheHolder
-	 * @see org.eclipse.jpt.eclipselink.core.resource.orm.EclipseLinkOrmPackage#getXmlCacheHolder()
-	 * @generated
-	 */
-	public static final int XML_CACHE_HOLDER = 27;
-
-	/**
-	 * The meta object id for the '{@link org.eclipse.jpt.eclipselink.core.resource.orm.XmlEntity <em>Xml Entity</em>}' class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see org.eclipse.jpt.eclipselink.core.resource.orm.XmlEntity
-	 * @see org.eclipse.jpt.eclipselink.core.resource.orm.EclipseLinkOrmPackage#getXmlEntity()
-	 * @generated
-	 */
-	public static final int XML_ENTITY = 29;
-
-	/**
-	 * The meta object id for the '{@link org.eclipse.jpt.eclipselink.core.resource.orm.XmlMappedSuperclass <em>Xml Mapped Superclass</em>}' class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see org.eclipse.jpt.eclipselink.core.resource.orm.XmlMappedSuperclass
-	 * @see org.eclipse.jpt.eclipselink.core.resource.orm.EclipseLinkOrmPackage#getXmlMappedSuperclass()
-	 * @generated
-	 */
-	public static final int XML_MAPPED_SUPERCLASS = 30;
-
-	/**
-	 * The meta object id for the '{@link org.eclipse.jpt.eclipselink.core.resource.orm.XmlMutable <em>Xml Mutable</em>}' class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see org.eclipse.jpt.eclipselink.core.resource.orm.XmlMutable
-	 * @see org.eclipse.jpt.eclipselink.core.resource.orm.EclipseLinkOrmPackage#getXmlMutable()
-	 * @generated
-	 */
-	public static final int XML_MUTABLE = 31;
-
-	/**
-	 * The meta object id for the '{@link org.eclipse.jpt.eclipselink.core.resource.orm.XmlConvertibleMapping <em>Xml Convertible Mapping</em>}' class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see org.eclipse.jpt.eclipselink.core.resource.orm.XmlConvertibleMapping
-	 * @see org.eclipse.jpt.eclipselink.core.resource.orm.EclipseLinkOrmPackage#getXmlConvertibleMapping()
-	 * @generated
-	 */
-	public static final int XML_CONVERTIBLE_MAPPING = 33;
-
-	/**
-	 * The meta object id for the '{@link org.eclipse.jpt.eclipselink.core.resource.orm.XmlId <em>Xml Id</em>}' class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see org.eclipse.jpt.eclipselink.core.resource.orm.XmlId
-	 * @see org.eclipse.jpt.eclipselink.core.resource.orm.EclipseLinkOrmPackage#getXmlId()
-	 * @generated
-	 */
-	public static final int XML_ID = 37;
-
-	/**
-	 * The meta object id for the '{@link org.eclipse.jpt.eclipselink.core.resource.orm.XmlIdImpl <em>Xml Id Impl</em>}' class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see org.eclipse.jpt.eclipselink.core.resource.orm.XmlIdImpl
-	 * @see org.eclipse.jpt.eclipselink.core.resource.orm.EclipseLinkOrmPackage#getXmlIdImpl()
-	 * @generated
-	 */
-	public static final int XML_ID_IMPL = 38;
-
-	/**
-	 * The meta object id for the '{@link org.eclipse.jpt.eclipselink.core.resource.orm.XmlBasic <em>Xml Basic</em>}' class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see org.eclipse.jpt.eclipselink.core.resource.orm.XmlBasic
-	 * @see org.eclipse.jpt.eclipselink.core.resource.orm.EclipseLinkOrmPackage#getXmlBasic()
-	 * @generated
-	 */
-	public static final int XML_BASIC = 43;
-
-	/**
-	 * The meta object id for the '{@link org.eclipse.jpt.eclipselink.core.resource.orm.XmlBasicImpl <em>Xml Basic Impl</em>}' class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see org.eclipse.jpt.eclipselink.core.resource.orm.XmlBasicImpl
-	 * @see org.eclipse.jpt.eclipselink.core.resource.orm.EclipseLinkOrmPackage#getXmlBasicImpl()
-	 * @generated
-	 */
-	public static final int XML_BASIC_IMPL = 44;
-
-	/**
-	 * The meta object id for the '{@link org.eclipse.jpt.eclipselink.core.resource.orm.XmlVersion <em>Xml Version</em>}' class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see org.eclipse.jpt.eclipselink.core.resource.orm.XmlVersion
-	 * @see org.eclipse.jpt.eclipselink.core.resource.orm.EclipseLinkOrmPackage#getXmlVersion()
-	 * @generated
-	 */
-	public static final int XML_VERSION = 45;
-
-	/**
-	 * The meta object id for the '{@link org.eclipse.jpt.eclipselink.core.resource.orm.XmlVersionImpl <em>Xml Version Impl</em>}' class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see org.eclipse.jpt.eclipselink.core.resource.orm.XmlVersionImpl
-	 * @see org.eclipse.jpt.eclipselink.core.resource.orm.EclipseLinkOrmPackage#getXmlVersionImpl()
-	 * @generated
-	 */
-	public static final int XML_VERSION_IMPL = 46;
-
-	/**
-	 * The meta object id for the '{@link org.eclipse.jpt.eclipselink.core.resource.orm.XmlPrivateOwned <em>Xml Private Owned</em>}' class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see org.eclipse.jpt.eclipselink.core.resource.orm.XmlPrivateOwned
-	 * @see org.eclipse.jpt.eclipselink.core.resource.orm.EclipseLinkOrmPackage#getXmlPrivateOwned()
-	 * @generated
-	 */
-	public static final int XML_PRIVATE_OWNED = 47;
-
-	/**
-	 * The meta object id for the '{@link org.eclipse.jpt.eclipselink.core.resource.orm.XmlJoinFetch <em>Xml Join Fetch</em>}' class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see org.eclipse.jpt.eclipselink.core.resource.orm.XmlJoinFetch
-	 * @see org.eclipse.jpt.eclipselink.core.resource.orm.EclipseLinkOrmPackage#getXmlJoinFetch()
-	 * @generated
-	 */
-	public static final int XML_JOIN_FETCH = 48;
-
-	/**
-	 * The meta object id for the '{@link org.eclipse.jpt.eclipselink.core.resource.orm.XmlOneToOne <em>Xml One To One</em>}' class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see org.eclipse.jpt.eclipselink.core.resource.orm.XmlOneToOne
-	 * @see org.eclipse.jpt.eclipselink.core.resource.orm.EclipseLinkOrmPackage#getXmlOneToOne()
-	 * @generated
-	 */
-	public static final int XML_ONE_TO_ONE = 49;
-
-	/**
-	 * The meta object id for the '{@link org.eclipse.jpt.eclipselink.core.resource.orm.XmlOneToOneImpl <em>Xml One To One Impl</em>}' class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see org.eclipse.jpt.eclipselink.core.resource.orm.XmlOneToOneImpl
-	 * @see org.eclipse.jpt.eclipselink.core.resource.orm.EclipseLinkOrmPackage#getXmlOneToOneImpl()
-	 * @generated
-	 */
-	public static final int XML_ONE_TO_ONE_IMPL = 50;
-
-	/**
-	 * The meta object id for the '{@link org.eclipse.jpt.eclipselink.core.resource.orm.XmlOneToMany <em>Xml One To Many</em>}' class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see org.eclipse.jpt.eclipselink.core.resource.orm.XmlOneToMany
-	 * @see org.eclipse.jpt.eclipselink.core.resource.orm.EclipseLinkOrmPackage#getXmlOneToMany()
-	 * @generated
-	 */
-	public static final int XML_ONE_TO_MANY = 51;
-
-	/**
-	 * The meta object id for the '{@link org.eclipse.jpt.eclipselink.core.resource.orm.XmlOneToManyImpl <em>Xml One To Many Impl</em>}' class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see org.eclipse.jpt.eclipselink.core.resource.orm.XmlOneToManyImpl
-	 * @see org.eclipse.jpt.eclipselink.core.resource.orm.EclipseLinkOrmPackage#getXmlOneToManyImpl()
-	 * @generated
-	 */
-	public static final int XML_ONE_TO_MANY_IMPL = 52;
-
-	/**
-	 * The meta object id for the '{@link org.eclipse.jpt.eclipselink.core.resource.orm.XmlManyToOne <em>Xml Many To One</em>}' class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see org.eclipse.jpt.eclipselink.core.resource.orm.XmlManyToOne
-	 * @see org.eclipse.jpt.eclipselink.core.resource.orm.EclipseLinkOrmPackage#getXmlManyToOne()
-	 * @generated
-	 */
-	public static final int XML_MANY_TO_ONE = 53;
-
-	/**
-	 * The meta object id for the '{@link org.eclipse.jpt.eclipselink.core.resource.orm.XmlManyToOneImpl <em>Xml Many To One Impl</em>}' class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see org.eclipse.jpt.eclipselink.core.resource.orm.XmlManyToOneImpl
-	 * @see org.eclipse.jpt.eclipselink.core.resource.orm.EclipseLinkOrmPackage#getXmlManyToOneImpl()
-	 * @generated
-	 */
-	public static final int XML_MANY_TO_ONE_IMPL = 54;
-
-	/**
-	 * The meta object id for the '{@link org.eclipse.jpt.eclipselink.core.resource.orm.XmlManyToMany <em>Xml Many To Many</em>}' class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see org.eclipse.jpt.eclipselink.core.resource.orm.XmlManyToMany
-	 * @see org.eclipse.jpt.eclipselink.core.resource.orm.EclipseLinkOrmPackage#getXmlManyToMany()
-	 * @generated
-	 */
-	public static final int XML_MANY_TO_MANY = 55;
-
-	/**
-	 * The meta object id for the '{@link org.eclipse.jpt.eclipselink.core.resource.orm.XmlManyToManyImpl <em>Xml Many To Many Impl</em>}' class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see org.eclipse.jpt.eclipselink.core.resource.orm.XmlManyToManyImpl
-	 * @see org.eclipse.jpt.eclipselink.core.resource.orm.EclipseLinkOrmPackage#getXmlManyToManyImpl()
-	 * @generated
-	 */
-	public static final int XML_MANY_TO_MANY_IMPL = 56;
-
-	/**
-	 * The meta object id for the '{@link org.eclipse.jpt.eclipselink.core.resource.orm.XmlConverter <em>Xml Converter</em>}' class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see org.eclipse.jpt.eclipselink.core.resource.orm.XmlConverter
-	 * @see org.eclipse.jpt.eclipselink.core.resource.orm.EclipseLinkOrmPackage#getXmlConverter()
-	 * @generated
-	 */
-	public static final int XML_CONVERTER = 1;
-
-	/**
-	 * The meta object id for the '{@link org.eclipse.jpt.eclipselink.core.resource.orm.XmlTypeConverter <em>Xml Type Converter</em>}' class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see org.eclipse.jpt.eclipselink.core.resource.orm.XmlTypeConverter
-	 * @see org.eclipse.jpt.eclipselink.core.resource.orm.EclipseLinkOrmPackage#getXmlTypeConverter()
-	 * @generated
-	 */
-	public static final int XML_TYPE_CONVERTER = 3;
-
-	/**
-	 * The meta object id for the '{@link org.eclipse.jpt.eclipselink.core.resource.orm.XmlConversionValue <em>Xml Conversion Value</em>}' class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see org.eclipse.jpt.eclipselink.core.resource.orm.XmlConversionValue
-	 * @see org.eclipse.jpt.eclipselink.core.resource.orm.EclipseLinkOrmPackage#getXmlConversionValue()
-	 * @generated
-	 */
-	public static final int XML_CONVERSION_VALUE = 5;
-
-	/**
-	 * The meta object id for the '{@link org.eclipse.jpt.eclipselink.core.resource.orm.XmlObjectTypeConverter <em>Xml Object Type Converter</em>}' class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see org.eclipse.jpt.eclipselink.core.resource.orm.XmlObjectTypeConverter
-	 * @see org.eclipse.jpt.eclipselink.core.resource.orm.EclipseLinkOrmPackage#getXmlObjectTypeConverter()
-	 * @generated
-	 */
-	public static final int XML_OBJECT_TYPE_CONVERTER = 7;
-
-	/**
-	 * The meta object id for the '{@link org.eclipse.jpt.eclipselink.core.resource.orm.XmlStructConverter <em>Xml Struct Converter</em>}' class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see org.eclipse.jpt.eclipselink.core.resource.orm.XmlStructConverter
-	 * @see org.eclipse.jpt.eclipselink.core.resource.orm.EclipseLinkOrmPackage#getXmlStructConverter()
-	 * @generated
-	 */
-	public static final int XML_STRUCT_CONVERTER = 9;
-
-	/**
-	 * The meta object id for the '{@link org.eclipse.jpt.eclipselink.core.resource.orm.XmlConverterHolder <em>Xml Converter Holder</em>}' class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see org.eclipse.jpt.eclipselink.core.resource.orm.XmlConverterHolder
-	 * @see org.eclipse.jpt.eclipselink.core.resource.orm.EclipseLinkOrmPackage#getXmlConverterHolder()
-	 * @generated
-	 */
-	public static final int XML_CONVERTER_HOLDER = 32;
-
-	/**
-	 * The feature id for the '<em><b>Name</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	public static final int XML_CONVERTER__NAME = XML_NAMED_CONVERTER__NAME;
-
-	/**
-	 * The feature id for the '<em><b>Class Name</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	public static final int XML_CONVERTER__CLASS_NAME = XML_NAMED_CONVERTER_FEATURE_COUNT + 0;
-
-	/**
-	 * The number of structural features of the '<em>Xml Converter</em>' class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	public static final int XML_CONVERTER_FEATURE_COUNT = XML_NAMED_CONVERTER_FEATURE_COUNT + 1;
-
-	/**
-	 * The meta object id for the '{@link org.eclipse.jpt.eclipselink.core.resource.orm.XmlConverterImpl <em>Xml Converter Impl</em>}' class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see org.eclipse.jpt.eclipselink.core.resource.orm.XmlConverterImpl
-	 * @see org.eclipse.jpt.eclipselink.core.resource.orm.EclipseLinkOrmPackage#getXmlConverterImpl()
-	 * @generated
-	 */
-	public static final int XML_CONVERTER_IMPL = 2;
-
-	/**
-	 * The feature id for the '<em><b>Name</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	public static final int XML_CONVERTER_IMPL__NAME = XML_CONVERTER__NAME;
-
-	/**
-	 * The feature id for the '<em><b>Class Name</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	public static final int XML_CONVERTER_IMPL__CLASS_NAME = XML_CONVERTER__CLASS_NAME;
-
-	/**
-	 * The number of structural features of the '<em>Xml Converter Impl</em>' class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	public static final int XML_CONVERTER_IMPL_FEATURE_COUNT = XML_CONVERTER_FEATURE_COUNT + 0;
-
-	/**
-	 * The feature id for the '<em><b>Name</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	public static final int XML_TYPE_CONVERTER__NAME = XML_NAMED_CONVERTER__NAME;
-
-	/**
-	 * The feature id for the '<em><b>Data Type</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	public static final int XML_TYPE_CONVERTER__DATA_TYPE = XML_NAMED_CONVERTER_FEATURE_COUNT + 0;
-
-	/**
-	 * The feature id for the '<em><b>Object Type</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	public static final int XML_TYPE_CONVERTER__OBJECT_TYPE = XML_NAMED_CONVERTER_FEATURE_COUNT + 1;
-
-	/**
-	 * The number of structural features of the '<em>Xml Type Converter</em>' class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	public static final int XML_TYPE_CONVERTER_FEATURE_COUNT = XML_NAMED_CONVERTER_FEATURE_COUNT + 2;
-
-	/**
-	 * The meta object id for the '{@link org.eclipse.jpt.eclipselink.core.resource.orm.XmlTypeConverterImpl <em>Xml Type Converter Impl</em>}' class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see org.eclipse.jpt.eclipselink.core.resource.orm.XmlTypeConverterImpl
-	 * @see org.eclipse.jpt.eclipselink.core.resource.orm.EclipseLinkOrmPackage#getXmlTypeConverterImpl()
-	 * @generated
-	 */
-	public static final int XML_TYPE_CONVERTER_IMPL = 4;
-
-	/**
-	 * The feature id for the '<em><b>Name</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	public static final int XML_TYPE_CONVERTER_IMPL__NAME = XML_TYPE_CONVERTER__NAME;
-
-	/**
-	 * The feature id for the '<em><b>Data Type</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	public static final int XML_TYPE_CONVERTER_IMPL__DATA_TYPE = XML_TYPE_CONVERTER__DATA_TYPE;
-
-	/**
-	 * The feature id for the '<em><b>Object Type</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	public static final int XML_TYPE_CONVERTER_IMPL__OBJECT_TYPE = XML_TYPE_CONVERTER__OBJECT_TYPE;
-
-	/**
-	 * The number of structural features of the '<em>Xml Type Converter Impl</em>' class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	public static final int XML_TYPE_CONVERTER_IMPL_FEATURE_COUNT = XML_TYPE_CONVERTER_FEATURE_COUNT + 0;
-
-	/**
-	 * The feature id for the '<em><b>Data Value</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	public static final int XML_CONVERSION_VALUE__DATA_VALUE = 0;
-
-	/**
-	 * The feature id for the '<em><b>Object Value</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	public static final int XML_CONVERSION_VALUE__OBJECT_VALUE = 1;
-
-	/**
-	 * The number of structural features of the '<em>Xml Conversion Value</em>' class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	public static final int XML_CONVERSION_VALUE_FEATURE_COUNT = 2;
-
-	/**
-	 * The meta object id for the '{@link org.eclipse.jpt.eclipselink.core.resource.orm.XmlConversionValueImpl <em>Xml Conversion Value Impl</em>}' class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see org.eclipse.jpt.eclipselink.core.resource.orm.XmlConversionValueImpl
-	 * @see org.eclipse.jpt.eclipselink.core.resource.orm.EclipseLinkOrmPackage#getXmlConversionValueImpl()
-	 * @generated
-	 */
-	public static final int XML_CONVERSION_VALUE_IMPL = 6;
-
-	/**
-	 * The feature id for the '<em><b>Data Value</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	public static final int XML_CONVERSION_VALUE_IMPL__DATA_VALUE = XML_CONVERSION_VALUE__DATA_VALUE;
-
-	/**
-	 * The feature id for the '<em><b>Object Value</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	public static final int XML_CONVERSION_VALUE_IMPL__OBJECT_VALUE = XML_CONVERSION_VALUE__OBJECT_VALUE;
-
-	/**
-	 * The number of structural features of the '<em>Xml Conversion Value Impl</em>' class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	public static final int XML_CONVERSION_VALUE_IMPL_FEATURE_COUNT = XML_CONVERSION_VALUE_FEATURE_COUNT + 0;
-
-	/**
-	 * The feature id for the '<em><b>Name</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	public static final int XML_OBJECT_TYPE_CONVERTER__NAME = XML_NAMED_CONVERTER__NAME;
-
-	/**
-	 * The feature id for the '<em><b>Data Type</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	public static final int XML_OBJECT_TYPE_CONVERTER__DATA_TYPE = XML_NAMED_CONVERTER_FEATURE_COUNT + 0;
-
-	/**
-	 * The feature id for the '<em><b>Object Type</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	public static final int XML_OBJECT_TYPE_CONVERTER__OBJECT_TYPE = XML_NAMED_CONVERTER_FEATURE_COUNT + 1;
-
-	/**
-	 * The feature id for the '<em><b>Conversion Values</b></em>' containment reference list.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	public static final int XML_OBJECT_TYPE_CONVERTER__CONVERSION_VALUES = XML_NAMED_CONVERTER_FEATURE_COUNT + 2;
-
-	/**
-	 * The feature id for the '<em><b>Default Object Value</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	public static final int XML_OBJECT_TYPE_CONVERTER__DEFAULT_OBJECT_VALUE = XML_NAMED_CONVERTER_FEATURE_COUNT + 3;
-
-	/**
-	 * The number of structural features of the '<em>Xml Object Type Converter</em>' class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	public static final int XML_OBJECT_TYPE_CONVERTER_FEATURE_COUNT = XML_NAMED_CONVERTER_FEATURE_COUNT + 4;
-
-	/**
-	 * The meta object id for the '{@link org.eclipse.jpt.eclipselink.core.resource.orm.XmlObjectTypeConverterImpl <em>Xml Object Type Converter Impl</em>}' class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see org.eclipse.jpt.eclipselink.core.resource.orm.XmlObjectTypeConverterImpl
-	 * @see org.eclipse.jpt.eclipselink.core.resource.orm.EclipseLinkOrmPackage#getXmlObjectTypeConverterImpl()
-	 * @generated
-	 */
-	public static final int XML_OBJECT_TYPE_CONVERTER_IMPL = 8;
-
-	/**
-	 * The feature id for the '<em><b>Name</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	public static final int XML_OBJECT_TYPE_CONVERTER_IMPL__NAME = XML_OBJECT_TYPE_CONVERTER__NAME;
-
-	/**
-	 * The feature id for the '<em><b>Data Type</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	public static final int XML_OBJECT_TYPE_CONVERTER_IMPL__DATA_TYPE = XML_OBJECT_TYPE_CONVERTER__DATA_TYPE;
-
-	/**
-	 * The feature id for the '<em><b>Object Type</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	public static final int XML_OBJECT_TYPE_CONVERTER_IMPL__OBJECT_TYPE = XML_OBJECT_TYPE_CONVERTER__OBJECT_TYPE;
-
-	/**
-	 * The feature id for the '<em><b>Conversion Values</b></em>' containment reference list.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	public static final int XML_OBJECT_TYPE_CONVERTER_IMPL__CONVERSION_VALUES = XML_OBJECT_TYPE_CONVERTER__CONVERSION_VALUES;
-
-	/**
-	 * The feature id for the '<em><b>Default Object Value</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	public static final int XML_OBJECT_TYPE_CONVERTER_IMPL__DEFAULT_OBJECT_VALUE = XML_OBJECT_TYPE_CONVERTER__DEFAULT_OBJECT_VALUE;
-
-	/**
-	 * The number of structural features of the '<em>Xml Object Type Converter Impl</em>' class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	public static final int XML_OBJECT_TYPE_CONVERTER_IMPL_FEATURE_COUNT = XML_OBJECT_TYPE_CONVERTER_FEATURE_COUNT + 0;
-
-	/**
-	 * The feature id for the '<em><b>Name</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	public static final int XML_STRUCT_CONVERTER__NAME = XML_NAMED_CONVERTER__NAME;
-
-	/**
-	 * The feature id for the '<em><b>Converter</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	public static final int XML_STRUCT_CONVERTER__CONVERTER = XML_NAMED_CONVERTER_FEATURE_COUNT + 0;
-
-	/**
-	 * The number of structural features of the '<em>Xml Struct Converter</em>' class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	public static final int XML_STRUCT_CONVERTER_FEATURE_COUNT = XML_NAMED_CONVERTER_FEATURE_COUNT + 1;
-
-	/**
-	 * The meta object id for the '{@link org.eclipse.jpt.eclipselink.core.resource.orm.XmlStructConverterImpl <em>Xml Struct Converter Impl</em>}' class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see org.eclipse.jpt.eclipselink.core.resource.orm.XmlStructConverterImpl
-	 * @see org.eclipse.jpt.eclipselink.core.resource.orm.EclipseLinkOrmPackage#getXmlStructConverterImpl()
-	 * @generated
-	 */
-	public static final int XML_STRUCT_CONVERTER_IMPL = 10;
-
-	/**
-	 * The feature id for the '<em><b>Name</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	public static final int XML_STRUCT_CONVERTER_IMPL__NAME = XML_STRUCT_CONVERTER__NAME;
-
-	/**
-	 * The feature id for the '<em><b>Converter</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	public static final int XML_STRUCT_CONVERTER_IMPL__CONVERTER = XML_STRUCT_CONVERTER__CONVERTER;
-
-	/**
-	 * The number of structural features of the '<em>Xml Struct Converter Impl</em>' class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	public static final int XML_STRUCT_CONVERTER_IMPL_FEATURE_COUNT = XML_STRUCT_CONVERTER_FEATURE_COUNT + 0;
-
-	/**
-	 * The feature id for the '<em><b>Converters</b></em>' containment reference list.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	public static final int XML_CONVERTERS_HOLDER__CONVERTERS = 0;
-
-	/**
-	 * The feature id for the '<em><b>Type Converters</b></em>' containment reference list.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	public static final int XML_CONVERTERS_HOLDER__TYPE_CONVERTERS = 1;
-
-	/**
-	 * The feature id for the '<em><b>Object Type Converters</b></em>' containment reference list.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	public static final int XML_CONVERTERS_HOLDER__OBJECT_TYPE_CONVERTERS = 2;
-
-	/**
-	 * The feature id for the '<em><b>Struct Converters</b></em>' containment reference list.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	public static final int XML_CONVERTERS_HOLDER__STRUCT_CONVERTERS = 3;
-
-	/**
-	 * The number of structural features of the '<em>Xml Converters Holder</em>' class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	public static final int XML_CONVERTERS_HOLDER_FEATURE_COUNT = 4;
-
-	/**
-	 * The meta object id for the '{@link org.eclipse.jpt.eclipselink.core.resource.orm.XmlStoredProcedureParameter <em>Xml Stored Procedure Parameter</em>}' class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see org.eclipse.jpt.eclipselink.core.resource.orm.XmlStoredProcedureParameter
-	 * @see org.eclipse.jpt.eclipselink.core.resource.orm.EclipseLinkOrmPackage#getXmlStoredProcedureParameter()
-	 * @generated
-	 */
-	public static final int XML_STORED_PROCEDURE_PARAMETER = 12;
-
-	/**
-	 * The feature id for the '<em><b>Direction</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	public static final int XML_STORED_PROCEDURE_PARAMETER__DIRECTION = 0;
-
-	/**
-	 * The feature id for the '<em><b>Name</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	public static final int XML_STORED_PROCEDURE_PARAMETER__NAME = 1;
-
-	/**
-	 * The feature id for the '<em><b>Query Parameter</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	public static final int XML_STORED_PROCEDURE_PARAMETER__QUERY_PARAMETER = 2;
-
-	/**
-	 * The feature id for the '<em><b>Type</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	public static final int XML_STORED_PROCEDURE_PARAMETER__TYPE = 3;
-
-	/**
-	 * The feature id for the '<em><b>Jdbc Type</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	public static final int XML_STORED_PROCEDURE_PARAMETER__JDBC_TYPE = 4;
-
-	/**
-	 * The feature id for the '<em><b>Jdbc Type Name</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	public static final int XML_STORED_PROCEDURE_PARAMETER__JDBC_TYPE_NAME = 5;
-
-	/**
-	 * The number of structural features of the '<em>Xml Stored Procedure Parameter</em>' class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	public static final int XML_STORED_PROCEDURE_PARAMETER_FEATURE_COUNT = 6;
-
-	/**
-	 * The meta object id for the '{@link org.eclipse.jpt.eclipselink.core.resource.orm.XmlNamedStoredProcedureQuery <em>Xml Named Stored Procedure Query</em>}' class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see org.eclipse.jpt.eclipselink.core.resource.orm.XmlNamedStoredProcedureQuery
-	 * @see org.eclipse.jpt.eclipselink.core.resource.orm.EclipseLinkOrmPackage#getXmlNamedStoredProcedureQuery()
-	 * @generated
-	 */
-	public static final int XML_NAMED_STORED_PROCEDURE_QUERY = 13;
-
-	/**
-	 * The feature id for the '<em><b>Name</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	public static final int XML_NAMED_STORED_PROCEDURE_QUERY__NAME = 0;
-
-	/**
-	 * The feature id for the '<em><b>Result Class</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	public static final int XML_NAMED_STORED_PROCEDURE_QUERY__RESULT_CLASS = 1;
-
-	/**
-	 * The feature id for the '<em><b>Result Set Mapping</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	public static final int XML_NAMED_STORED_PROCEDURE_QUERY__RESULT_SET_MAPPING = 2;
-
-	/**
-	 * The feature id for the '<em><b>Procedure Name</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	public static final int XML_NAMED_STORED_PROCEDURE_QUERY__PROCEDURE_NAME = 3;
-
-	/**
-	 * The feature id for the '<em><b>Returns Result Set</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	public static final int XML_NAMED_STORED_PROCEDURE_QUERY__RETURNS_RESULT_SET = 4;
-
-	/**
-	 * The feature id for the '<em><b>Hints</b></em>' containment reference list.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	public static final int XML_NAMED_STORED_PROCEDURE_QUERY__HINTS = 5;
-
-	/**
-	 * The feature id for the '<em><b>Parameters</b></em>' containment reference list.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	public static final int XML_NAMED_STORED_PROCEDURE_QUERY__PARAMETERS = 6;
-
-	/**
-	 * The number of structural features of the '<em>Xml Named Stored Procedure Query</em>' class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	public static final int XML_NAMED_STORED_PROCEDURE_QUERY_FEATURE_COUNT = 7;
-
-	/**
-	 * The feature id for the '<em><b>Version</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	public static final int XML_ENTITY_MAPPINGS__VERSION = OrmPackage.XML_ENTITY_MAPPINGS__VERSION;
-
-	/**
-	 * The feature id for the '<em><b>Description</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	public static final int XML_ENTITY_MAPPINGS__DESCRIPTION = OrmPackage.XML_ENTITY_MAPPINGS__DESCRIPTION;
-
-	/**
-	 * The feature id for the '<em><b>Persistence Unit Metadata</b></em>' containment reference.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	public static final int XML_ENTITY_MAPPINGS__PERSISTENCE_UNIT_METADATA = OrmPackage.XML_ENTITY_MAPPINGS__PERSISTENCE_UNIT_METADATA;
-
-	/**
-	 * The feature id for the '<em><b>Package</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	public static final int XML_ENTITY_MAPPINGS__PACKAGE = OrmPackage.XML_ENTITY_MAPPINGS__PACKAGE;
-
-	/**
-	 * The feature id for the '<em><b>Schema</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	public static final int XML_ENTITY_MAPPINGS__SCHEMA = OrmPackage.XML_ENTITY_MAPPINGS__SCHEMA;
-
-	/**
-	 * The feature id for the '<em><b>Catalog</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	public static final int XML_ENTITY_MAPPINGS__CATALOG = OrmPackage.XML_ENTITY_MAPPINGS__CATALOG;
-
-	/**
-	 * The feature id for the '<em><b>Access</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	public static final int XML_ENTITY_MAPPINGS__ACCESS = OrmPackage.XML_ENTITY_MAPPINGS__ACCESS;
-
-	/**
-	 * The feature id for the '<em><b>Sequence Generators</b></em>' containment reference list.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	public static final int XML_ENTITY_MAPPINGS__SEQUENCE_GENERATORS = OrmPackage.XML_ENTITY_MAPPINGS__SEQUENCE_GENERATORS;
-
-	/**
-	 * The feature id for the '<em><b>Table Generators</b></em>' containment reference list.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	public static final int XML_ENTITY_MAPPINGS__TABLE_GENERATORS = OrmPackage.XML_ENTITY_MAPPINGS__TABLE_GENERATORS;
-
-	/**
-	 * The feature id for the '<em><b>Named Queries</b></em>' containment reference list.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	public static final int XML_ENTITY_MAPPINGS__NAMED_QUERIES = OrmPackage.XML_ENTITY_MAPPINGS__NAMED_QUERIES;
-
-	/**
-	 * The feature id for the '<em><b>Named Native Queries</b></em>' containment reference list.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	public static final int XML_ENTITY_MAPPINGS__NAMED_NATIVE_QUERIES = OrmPackage.XML_ENTITY_MAPPINGS__NAMED_NATIVE_QUERIES;
-
-	/**
-	 * The feature id for the '<em><b>Sql Result Set Mappings</b></em>' containment reference list.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	public static final int XML_ENTITY_MAPPINGS__SQL_RESULT_SET_MAPPINGS = OrmPackage.XML_ENTITY_MAPPINGS__SQL_RESULT_SET_MAPPINGS;
-
-	/**
-	 * The feature id for the '<em><b>Mapped Superclasses</b></em>' containment reference list.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	public static final int XML_ENTITY_MAPPINGS__MAPPED_SUPERCLASSES = OrmPackage.XML_ENTITY_MAPPINGS__MAPPED_SUPERCLASSES;
-
-	/**
-	 * The feature id for the '<em><b>Entities</b></em>' containment reference list.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	public static final int XML_ENTITY_MAPPINGS__ENTITIES = OrmPackage.XML_ENTITY_MAPPINGS__ENTITIES;
-
-	/**
-	 * The feature id for the '<em><b>Embeddables</b></em>' containment reference list.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	public static final int XML_ENTITY_MAPPINGS__EMBEDDABLES = OrmPackage.XML_ENTITY_MAPPINGS__EMBEDDABLES;
-
-	/**
-	 * The feature id for the '<em><b>Converters</b></em>' containment reference list.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	public static final int XML_ENTITY_MAPPINGS__CONVERTERS = OrmPackage.XML_ENTITY_MAPPINGS_FEATURE_COUNT + 0;
-
-	/**
-	 * The feature id for the '<em><b>Type Converters</b></em>' containment reference list.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	public static final int XML_ENTITY_MAPPINGS__TYPE_CONVERTERS = OrmPackage.XML_ENTITY_MAPPINGS_FEATURE_COUNT + 1;
-
-	/**
-	 * The feature id for the '<em><b>Object Type Converters</b></em>' containment reference list.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	public static final int XML_ENTITY_MAPPINGS__OBJECT_TYPE_CONVERTERS = OrmPackage.XML_ENTITY_MAPPINGS_FEATURE_COUNT + 2;
-
-	/**
-	 * The feature id for the '<em><b>Struct Converters</b></em>' containment reference list.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	public static final int XML_ENTITY_MAPPINGS__STRUCT_CONVERTERS = OrmPackage.XML_ENTITY_MAPPINGS_FEATURE_COUNT + 3;
-
-	/**
-	 * The feature id for the '<em><b>Named Stored Procedure Queries</b></em>' containment reference list.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	public static final int XML_ENTITY_MAPPINGS__NAMED_STORED_PROCEDURE_QUERIES = OrmPackage.XML_ENTITY_MAPPINGS_FEATURE_COUNT + 4;
-
-	/**
-	 * The number of structural features of the '<em>Xml Entity Mappings</em>' class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	public static final int XML_ENTITY_MAPPINGS_FEATURE_COUNT = OrmPackage.XML_ENTITY_MAPPINGS_FEATURE_COUNT + 5;
-
-	/**
-	 * The meta object id for the '{@link org.eclipse.jpt.eclipselink.core.resource.orm.XmlPersistenceUnitMetadata <em>Xml Persistence Unit Metadata</em>}' class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see org.eclipse.jpt.eclipselink.core.resource.orm.XmlPersistenceUnitMetadata
-	 * @see org.eclipse.jpt.eclipselink.core.resource.orm.EclipseLinkOrmPackage#getXmlPersistenceUnitMetadata()
-	 * @generated
-	 */
-	public static final int XML_PERSISTENCE_UNIT_METADATA = 15;
-
-	/**
-	 * The feature id for the '<em><b>Xml Mapping Metadata Complete</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	public static final int XML_PERSISTENCE_UNIT_METADATA__XML_MAPPING_METADATA_COMPLETE = OrmPackage.XML_PERSISTENCE_UNIT_METADATA__XML_MAPPING_METADATA_COMPLETE;
-
-	/**
-	 * The feature id for the '<em><b>Persistence Unit Defaults</b></em>' containment reference.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	public static final int XML_PERSISTENCE_UNIT_METADATA__PERSISTENCE_UNIT_DEFAULTS = OrmPackage.XML_PERSISTENCE_UNIT_METADATA__PERSISTENCE_UNIT_DEFAULTS;
-
-	/**
-	 * The feature id for the '<em><b>Exclude Default Mappings</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	public static final int XML_PERSISTENCE_UNIT_METADATA__EXCLUDE_DEFAULT_MAPPINGS = OrmPackage.XML_PERSISTENCE_UNIT_METADATA_FEATURE_COUNT + 0;
-
-	/**
-	 * The number of structural features of the '<em>Xml Persistence Unit Metadata</em>' class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	public static final int XML_PERSISTENCE_UNIT_METADATA_FEATURE_COUNT = OrmPackage.XML_PERSISTENCE_UNIT_METADATA_FEATURE_COUNT + 1;
-
-	/**
-	 * The feature id for the '<em><b>Customizer Class Name</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	public static final int XML_CUSTOMIZER__CUSTOMIZER_CLASS_NAME = 0;
-
-	/**
-	 * The number of structural features of the '<em>Xml Customizer</em>' class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	public static final int XML_CUSTOMIZER_FEATURE_COUNT = 1;
-
-	/**
-	 * The feature id for the '<em><b>Customizer</b></em>' containment reference.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	public static final int XML_CUSTOMIZER_HOLDER__CUSTOMIZER = 0;
-
-	/**
-	 * The number of structural features of the '<em>Xml Customizer Holder</em>' class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	public static final int XML_CUSTOMIZER_HOLDER_FEATURE_COUNT = 1;
-
-	/**
-	 * The feature id for the '<em><b>Type</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	public static final int XML_CHANGE_TRACKING__TYPE = 0;
-
-	/**
-	 * The number of structural features of the '<em>Xml Change Tracking</em>' class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	public static final int XML_CHANGE_TRACKING_FEATURE_COUNT = 1;
-
-	/**
-	 * The feature id for the '<em><b>Change Tracking</b></em>' containment reference.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	public static final int XML_CHANGE_TRACKING_HOLDER__CHANGE_TRACKING = 0;
-
-	/**
-	 * The number of structural features of the '<em>Xml Change Tracking Holder</em>' class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	public static final int XML_CHANGE_TRACKING_HOLDER_FEATURE_COUNT = 1;
-
-	/**
-	 * The meta object id for the '{@link org.eclipse.jpt.eclipselink.core.resource.orm.XmlCopyPolicy <em>Xml Copy Policy</em>}' class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see org.eclipse.jpt.eclipselink.core.resource.orm.XmlCopyPolicy
-	 * @see org.eclipse.jpt.eclipselink.core.resource.orm.EclipseLinkOrmPackage#getXmlCopyPolicy()
-	 * @generated
-	 */
-	public static final int XML_COPY_POLICY = 20;
-
-	/**
-	 * The feature id for the '<em><b>Class</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	public static final int XML_COPY_POLICY__CLASS = 0;
-
-	/**
-	 * The number of structural features of the '<em>Xml Copy Policy</em>' class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	public static final int XML_COPY_POLICY_FEATURE_COUNT = 1;
-
-	/**
-	 * The meta object id for the '{@link org.eclipse.jpt.eclipselink.core.resource.orm.XmlInstantiationPolicy <em>Xml Instantiation Policy</em>}' class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see org.eclipse.jpt.eclipselink.core.resource.orm.XmlInstantiationPolicy
-	 * @see org.eclipse.jpt.eclipselink.core.resource.orm.EclipseLinkOrmPackage#getXmlInstantiationPolicy()
-	 * @generated
-	 */
-	public static final int XML_INSTANTIATION_POLICY = 21;
-
-	/**
-	 * The number of structural features of the '<em>Xml Instantiation Policy</em>' class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	public static final int XML_INSTANTIATION_POLICY_FEATURE_COUNT = 0;
-
-	/**
-	 * The meta object id for the '{@link org.eclipse.jpt.eclipselink.core.resource.orm.XmlCloneCopyPolicy <em>Xml Clone Copy Policy</em>}' class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see org.eclipse.jpt.eclipselink.core.resource.orm.XmlCloneCopyPolicy
-	 * @see org.eclipse.jpt.eclipselink.core.resource.orm.EclipseLinkOrmPackage#getXmlCloneCopyPolicy()
-	 * @generated
-	 */
-	public static final int XML_CLONE_COPY_POLICY = 22;
-
-	/**
-	 * The feature id for the '<em><b>Method</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	public static final int XML_CLONE_COPY_POLICY__METHOD = 0;
-
-	/**
-	 * The feature id for the '<em><b>Working Copy Method</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	public static final int XML_CLONE_COPY_POLICY__WORKING_COPY_METHOD = 1;
-
-	/**
-	 * The number of structural features of the '<em>Xml Clone Copy Policy</em>' class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	public static final int XML_CLONE_COPY_POLICY_FEATURE_COUNT = 2;
-
-	/**
-	 * The feature id for the '<em><b>Class Name</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	public static final int XML_EMBEDDABLE__CLASS_NAME = OrmPackage.XML_EMBEDDABLE__CLASS_NAME;
-
-	/**
-	 * The feature id for the '<em><b>Access</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	public static final int XML_EMBEDDABLE__ACCESS = OrmPackage.XML_EMBEDDABLE__ACCESS;
-
-	/**
-	 * The feature id for the '<em><b>Metadata Complete</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	public static final int XML_EMBEDDABLE__METADATA_COMPLETE = OrmPackage.XML_EMBEDDABLE__METADATA_COMPLETE;
-
-	/**
-	 * The feature id for the '<em><b>Description</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	public static final int XML_EMBEDDABLE__DESCRIPTION = OrmPackage.XML_EMBEDDABLE__DESCRIPTION;
-
-	/**
-	 * The feature id for the '<em><b>Attributes</b></em>' containment reference.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	public static final int XML_EMBEDDABLE__ATTRIBUTES = OrmPackage.XML_EMBEDDABLE__ATTRIBUTES;
-
-	/**
-	 * The feature id for the '<em><b>Customizer</b></em>' containment reference.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	public static final int XML_EMBEDDABLE__CUSTOMIZER = OrmPackage.XML_EMBEDDABLE_FEATURE_COUNT + 0;
-
-	/**
-	 * The feature id for the '<em><b>Change Tracking</b></em>' containment reference.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	public static final int XML_EMBEDDABLE__CHANGE_TRACKING = OrmPackage.XML_EMBEDDABLE_FEATURE_COUNT + 1;
-
-	/**
-	 * The feature id for the '<em><b>Converters</b></em>' containment reference list.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	public static final int XML_EMBEDDABLE__CONVERTERS = OrmPackage.XML_EMBEDDABLE_FEATURE_COUNT + 2;
-
-	/**
-	 * The feature id for the '<em><b>Type Converters</b></em>' containment reference list.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	public static final int XML_EMBEDDABLE__TYPE_CONVERTERS = OrmPackage.XML_EMBEDDABLE_FEATURE_COUNT + 3;
-
-	/**
-	 * The feature id for the '<em><b>Object Type Converters</b></em>' containment reference list.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	public static final int XML_EMBEDDABLE__OBJECT_TYPE_CONVERTERS = OrmPackage.XML_EMBEDDABLE_FEATURE_COUNT + 4;
-
-	/**
-	 * The feature id for the '<em><b>Struct Converters</b></em>' containment reference list.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	public static final int XML_EMBEDDABLE__STRUCT_CONVERTERS = OrmPackage.XML_EMBEDDABLE_FEATURE_COUNT + 5;
-
-	/**
-	 * The feature id for the '<em><b>Copy Policy</b></em>' containment reference.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	public static final int XML_EMBEDDABLE__COPY_POLICY = OrmPackage.XML_EMBEDDABLE_FEATURE_COUNT + 6;
-
-	/**
-	 * The feature id for the '<em><b>Instantiation Copy Policy</b></em>' containment reference.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	public static final int XML_EMBEDDABLE__INSTANTIATION_COPY_POLICY = OrmPackage.XML_EMBEDDABLE_FEATURE_COUNT + 7;
-
-	/**
-	 * The feature id for the '<em><b>Clone Copy Policy</b></em>' containment reference.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	public static final int XML_EMBEDDABLE__CLONE_COPY_POLICY = OrmPackage.XML_EMBEDDABLE_FEATURE_COUNT + 8;
-
-	/**
-	 * The feature id for the '<em><b>Properties</b></em>' containment reference list.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	public static final int XML_EMBEDDABLE__PROPERTIES = OrmPackage.XML_EMBEDDABLE_FEATURE_COUNT + 9;
-
-	/**
-	 * The feature id for the '<em><b>Exclude Default Mappings</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	public static final int XML_EMBEDDABLE__EXCLUDE_DEFAULT_MAPPINGS = OrmPackage.XML_EMBEDDABLE_FEATURE_COUNT + 10;
-
-	/**
-	 * The number of structural features of the '<em>Xml Embeddable</em>' class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	public static final int XML_EMBEDDABLE_FEATURE_COUNT = OrmPackage.XML_EMBEDDABLE_FEATURE_COUNT + 11;
-
-	/**
-	 * The feature id for the '<em><b>Read Only</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	public static final int XML_READ_ONLY__READ_ONLY = 0;
-
-	/**
-	 * The number of structural features of the '<em>Xml Read Only</em>' class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	public static final int XML_READ_ONLY_FEATURE_COUNT = 1;
-
-	/**
-	 * The feature id for the '<em><b>Hour</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	public static final int XML_TIME_OF_DAY__HOUR = 0;
-
-	/**
-	 * The feature id for the '<em><b>Minute</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	public static final int XML_TIME_OF_DAY__MINUTE = 1;
-
-	/**
-	 * The feature id for the '<em><b>Second</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	public static final int XML_TIME_OF_DAY__SECOND = 2;
-
-	/**
-	 * The feature id for the '<em><b>Millisecond</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	public static final int XML_TIME_OF_DAY__MILLISECOND = 3;
-
-	/**
-	 * The number of structural features of the '<em>Xml Time Of Day</em>' class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	public static final int XML_TIME_OF_DAY_FEATURE_COUNT = 4;
-
-	/**
-	 * The feature id for the '<em><b>Expiry</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	public static final int XML_CACHE__EXPIRY = 0;
-
-	/**
-	 * The feature id for the '<em><b>Size</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	public static final int XML_CACHE__SIZE = 1;
-
-	/**
-	 * The feature id for the '<em><b>Shared</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	public static final int XML_CACHE__SHARED = 2;
-
-	/**
-	 * The feature id for the '<em><b>Type</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	public static final int XML_CACHE__TYPE = 3;
-
-	/**
-	 * The feature id for the '<em><b>Always Refresh</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	public static final int XML_CACHE__ALWAYS_REFRESH = 4;
-
-	/**
-	 * The feature id for the '<em><b>Refresh Only If Newer</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	public static final int XML_CACHE__REFRESH_ONLY_IF_NEWER = 5;
-
-	/**
-	 * The feature id for the '<em><b>Disable Hits</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	public static final int XML_CACHE__DISABLE_HITS = 6;
-
-	/**
-	 * The feature id for the '<em><b>Coordination Type</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	public static final int XML_CACHE__COORDINATION_TYPE = 7;
-
-	/**
-	 * The feature id for the '<em><b>Expiry Time Of Day</b></em>' containment reference.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	public static final int XML_CACHE__EXPIRY_TIME_OF_DAY = 8;
-
-	/**
-	 * The number of structural features of the '<em>Xml Cache</em>' class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	public static final int XML_CACHE_FEATURE_COUNT = 9;
-
-	/**
-	 * The feature id for the '<em><b>Cache</b></em>' containment reference.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	public static final int XML_CACHE_HOLDER__CACHE = 0;
-
-	/**
-	 * The feature id for the '<em><b>Existence Checking</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	public static final int XML_CACHE_HOLDER__EXISTENCE_CHECKING = 1;
-
-	/**
-	 * The number of structural features of the '<em>Xml Cache Holder</em>' class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	public static final int XML_CACHE_HOLDER_FEATURE_COUNT = 2;
-
-	/**
-	 * The meta object id for the '{@link org.eclipse.jpt.eclipselink.core.resource.orm.XmlOptimisticLocking <em>Xml Optimistic Locking</em>}' class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see org.eclipse.jpt.eclipselink.core.resource.orm.XmlOptimisticLocking
-	 * @see org.eclipse.jpt.eclipselink.core.resource.orm.EclipseLinkOrmPackage#getXmlOptimisticLocking()
-	 * @generated
-	 */
-	public static final int XML_OPTIMISTIC_LOCKING = 28;
-
-	/**
-	 * The feature id for the '<em><b>Type</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	public static final int XML_OPTIMISTIC_LOCKING__TYPE = 0;
-
-	/**
-	 * The feature id for the '<em><b>Cascade</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	public static final int XML_OPTIMISTIC_LOCKING__CASCADE = 1;
-
-	/**
-	 * The feature id for the '<em><b>Selected Columns</b></em>' containment reference list.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	public static final int XML_OPTIMISTIC_LOCKING__SELECTED_COLUMNS = 2;
-
-	/**
-	 * The number of structural features of the '<em>Xml Optimistic Locking</em>' class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	public static final int XML_OPTIMISTIC_LOCKING_FEATURE_COUNT = 3;
-
-	/**
-	 * The feature id for the '<em><b>Class Name</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	public static final int XML_ENTITY__CLASS_NAME = OrmPackage.XML_ENTITY__CLASS_NAME;
-
-	/**
-	 * The feature id for the '<em><b>Access</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	public static final int XML_ENTITY__ACCESS = OrmPackage.XML_ENTITY__ACCESS;
-
-	/**
-	 * The feature id for the '<em><b>Metadata Complete</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	public static final int XML_ENTITY__METADATA_COMPLETE = OrmPackage.XML_ENTITY__METADATA_COMPLETE;
-
-	/**
-	 * The feature id for the '<em><b>Description</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	public static final int XML_ENTITY__DESCRIPTION = OrmPackage.XML_ENTITY__DESCRIPTION;
-
-	/**
-	 * The feature id for the '<em><b>Attributes</b></em>' containment reference.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	public static final int XML_ENTITY__ATTRIBUTES = OrmPackage.XML_ENTITY__ATTRIBUTES;
-
-	/**
-	 * The feature id for the '<em><b>Name</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	public static final int XML_ENTITY__NAME = OrmPackage.XML_ENTITY__NAME;
-
-	/**
-	 * The feature id for the '<em><b>Table</b></em>' containment reference.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	public static final int XML_ENTITY__TABLE = OrmPackage.XML_ENTITY__TABLE;
-
-	/**
-	 * The feature id for the '<em><b>Secondary Tables</b></em>' containment reference list.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	public static final int XML_ENTITY__SECONDARY_TABLES = OrmPackage.XML_ENTITY__SECONDARY_TABLES;
-
-	/**
-	 * The feature id for the '<em><b>Primary Key Join Columns</b></em>' containment reference list.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	public static final int XML_ENTITY__PRIMARY_KEY_JOIN_COLUMNS = OrmPackage.XML_ENTITY__PRIMARY_KEY_JOIN_COLUMNS;
-
-	/**
-	 * The feature id for the '<em><b>Id Class</b></em>' containment reference.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	public static final int XML_ENTITY__ID_CLASS = OrmPackage.XML_ENTITY__ID_CLASS;
-
-	/**
-	 * The feature id for the '<em><b>Inheritance</b></em>' containment reference.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	public static final int XML_ENTITY__INHERITANCE = OrmPackage.XML_ENTITY__INHERITANCE;
-
-	/**
-	 * The feature id for the '<em><b>Discriminator Value</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	public static final int XML_ENTITY__DISCRIMINATOR_VALUE = OrmPackage.XML_ENTITY__DISCRIMINATOR_VALUE;
-
-	/**
-	 * The feature id for the '<em><b>Discriminator Column</b></em>' containment reference.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	public static final int XML_ENTITY__DISCRIMINATOR_COLUMN = OrmPackage.XML_ENTITY__DISCRIMINATOR_COLUMN;
-
-	/**
-	 * The feature id for the '<em><b>Sequence Generator</b></em>' containment reference.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	public static final int XML_ENTITY__SEQUENCE_GENERATOR = OrmPackage.XML_ENTITY__SEQUENCE_GENERATOR;
-
-	/**
-	 * The feature id for the '<em><b>Table Generator</b></em>' containment reference.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	public static final int XML_ENTITY__TABLE_GENERATOR = OrmPackage.XML_ENTITY__TABLE_GENERATOR;
-
-	/**
-	 * The feature id for the '<em><b>Named Queries</b></em>' containment reference list.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	public static final int XML_ENTITY__NAMED_QUERIES = OrmPackage.XML_ENTITY__NAMED_QUERIES;
-
-	/**
-	 * The feature id for the '<em><b>Named Native Queries</b></em>' containment reference list.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	public static final int XML_ENTITY__NAMED_NATIVE_QUERIES = OrmPackage.XML_ENTITY__NAMED_NATIVE_QUERIES;
-
-	/**
-	 * The feature id for the '<em><b>Sql Result Set Mappings</b></em>' containment reference list.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	public static final int XML_ENTITY__SQL_RESULT_SET_MAPPINGS = OrmPackage.XML_ENTITY__SQL_RESULT_SET_MAPPINGS;
-
-	/**
-	 * The feature id for the '<em><b>Exclude Default Listeners</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	public static final int XML_ENTITY__EXCLUDE_DEFAULT_LISTENERS = OrmPackage.XML_ENTITY__EXCLUDE_DEFAULT_LISTENERS;
-
-	/**
-	 * The feature id for the '<em><b>Exclude Superclass Listeners</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	public static final int XML_ENTITY__EXCLUDE_SUPERCLASS_LISTENERS = OrmPackage.XML_ENTITY__EXCLUDE_SUPERCLASS_LISTENERS;
-
-	/**
-	 * The feature id for the '<em><b>Entity Listeners</b></em>' containment reference.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	public static final int XML_ENTITY__ENTITY_LISTENERS = OrmPackage.XML_ENTITY__ENTITY_LISTENERS;
-
-	/**
-	 * The feature id for the '<em><b>Pre Persist</b></em>' containment reference.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	public static final int XML_ENTITY__PRE_PERSIST = OrmPackage.XML_ENTITY__PRE_PERSIST;
-
-	/**
-	 * The feature id for the '<em><b>Post Persist</b></em>' containment reference.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	public static final int XML_ENTITY__POST_PERSIST = OrmPackage.XML_ENTITY__POST_PERSIST;
-
-	/**
-	 * The feature id for the '<em><b>Pre Remove</b></em>' containment reference.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	public static final int XML_ENTITY__PRE_REMOVE = OrmPackage.XML_ENTITY__PRE_REMOVE;
-
-	/**
-	 * The feature id for the '<em><b>Post Remove</b></em>' containment reference.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	public static final int XML_ENTITY__POST_REMOVE = OrmPackage.XML_ENTITY__POST_REMOVE;
-
-	/**
-	 * The feature id for the '<em><b>Pre Update</b></em>' containment reference.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	public static final int XML_ENTITY__PRE_UPDATE = OrmPackage.XML_ENTITY__PRE_UPDATE;
-
-	/**
-	 * The feature id for the '<em><b>Post Update</b></em>' containment reference.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	public static final int XML_ENTITY__POST_UPDATE = OrmPackage.XML_ENTITY__POST_UPDATE;
-
-	/**
-	 * The feature id for the '<em><b>Post Load</b></em>' containment reference.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	public static final int XML_ENTITY__POST_LOAD = OrmPackage.XML_ENTITY__POST_LOAD;
-
-	/**
-	 * The feature id for the '<em><b>Attribute Overrides</b></em>' containment reference list.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	public static final int XML_ENTITY__ATTRIBUTE_OVERRIDES = OrmPackage.XML_ENTITY__ATTRIBUTE_OVERRIDES;
-
-	/**
-	 * The feature id for the '<em><b>Association Overrides</b></em>' containment reference list.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	public static final int XML_ENTITY__ASSOCIATION_OVERRIDES = OrmPackage.XML_ENTITY__ASSOCIATION_OVERRIDES;
-
-	/**
-	 * The feature id for the '<em><b>Read Only</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	public static final int XML_ENTITY__READ_ONLY = OrmPackage.XML_ENTITY_FEATURE_COUNT + 0;
-
-	/**
-	 * The feature id for the '<em><b>Customizer</b></em>' containment reference.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	public static final int XML_ENTITY__CUSTOMIZER = OrmPackage.XML_ENTITY_FEATURE_COUNT + 1;
-
-	/**
-	 * The feature id for the '<em><b>Change Tracking</b></em>' containment reference.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	public static final int XML_ENTITY__CHANGE_TRACKING = OrmPackage.XML_ENTITY_FEATURE_COUNT + 2;
-
-	/**
-	 * The feature id for the '<em><b>Cache</b></em>' containment reference.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	public static final int XML_ENTITY__CACHE = OrmPackage.XML_ENTITY_FEATURE_COUNT + 3;
-
-	/**
-	 * The feature id for the '<em><b>Existence Checking</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	public static final int XML_ENTITY__EXISTENCE_CHECKING = OrmPackage.XML_ENTITY_FEATURE_COUNT + 4;
-
-	/**
-	 * The feature id for the '<em><b>Converters</b></em>' containment reference list.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	public static final int XML_ENTITY__CONVERTERS = OrmPackage.XML_ENTITY_FEATURE_COUNT + 5;
-
-	/**
-	 * The feature id for the '<em><b>Type Converters</b></em>' containment reference list.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	public static final int XML_ENTITY__TYPE_CONVERTERS = OrmPackage.XML_ENTITY_FEATURE_COUNT + 6;
-
-	/**
-	 * The feature id for the '<em><b>Object Type Converters</b></em>' containment reference list.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	public static final int XML_ENTITY__OBJECT_TYPE_CONVERTERS = OrmPackage.XML_ENTITY_FEATURE_COUNT + 7;
-
-	/**
-	 * The feature id for the '<em><b>Struct Converters</b></em>' containment reference list.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	public static final int XML_ENTITY__STRUCT_CONVERTERS = OrmPackage.XML_ENTITY_FEATURE_COUNT + 8;
-
-	/**
-	 * The feature id for the '<em><b>Optimistic Locking</b></em>' containment reference.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	public static final int XML_ENTITY__OPTIMISTIC_LOCKING = OrmPackage.XML_ENTITY_FEATURE_COUNT + 9;
-
-	/**
-	 * The feature id for the '<em><b>Copy Policy</b></em>' containment reference.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	public static final int XML_ENTITY__COPY_POLICY = OrmPackage.XML_ENTITY_FEATURE_COUNT + 10;
-
-	/**
-	 * The feature id for the '<em><b>Instantiation Copy Policy</b></em>' containment reference.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	public static final int XML_ENTITY__INSTANTIATION_COPY_POLICY = OrmPackage.XML_ENTITY_FEATURE_COUNT + 11;
-
-	/**
-	 * The feature id for the '<em><b>Clone Copy Policy</b></em>' containment reference.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	public static final int XML_ENTITY__CLONE_COPY_POLICY = OrmPackage.XML_ENTITY_FEATURE_COUNT + 12;
-
-	/**
-	 * The feature id for the '<em><b>Named Stored Procedure Queries</b></em>' containment reference list.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	public static final int XML_ENTITY__NAMED_STORED_PROCEDURE_QUERIES = OrmPackage.XML_ENTITY_FEATURE_COUNT + 13;
-
-	/**
-	 * The feature id for the '<em><b>Properties</b></em>' containment reference list.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	public static final int XML_ENTITY__PROPERTIES = OrmPackage.XML_ENTITY_FEATURE_COUNT + 14;
-
-	/**
-	 * The feature id for the '<em><b>Exclude Default Mappings</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	public static final int XML_ENTITY__EXCLUDE_DEFAULT_MAPPINGS = OrmPackage.XML_ENTITY_FEATURE_COUNT + 15;
-
-	/**
-	 * The number of structural features of the '<em>Xml Entity</em>' class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	public static final int XML_ENTITY_FEATURE_COUNT = OrmPackage.XML_ENTITY_FEATURE_COUNT + 16;
-
-	/**
-	 * The feature id for the '<em><b>Class Name</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	public static final int XML_MAPPED_SUPERCLASS__CLASS_NAME = OrmPackage.XML_MAPPED_SUPERCLASS__CLASS_NAME;
-
-	/**
-	 * The feature id for the '<em><b>Access</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	public static final int XML_MAPPED_SUPERCLASS__ACCESS = OrmPackage.XML_MAPPED_SUPERCLASS__ACCESS;
-
-	/**
-	 * The feature id for the '<em><b>Metadata Complete</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	public static final int XML_MAPPED_SUPERCLASS__METADATA_COMPLETE = OrmPackage.XML_MAPPED_SUPERCLASS__METADATA_COMPLETE;
-
-	/**
-	 * The feature id for the '<em><b>Description</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	public static final int XML_MAPPED_SUPERCLASS__DESCRIPTION = OrmPackage.XML_MAPPED_SUPERCLASS__DESCRIPTION;
-
-	/**
-	 * The feature id for the '<em><b>Attributes</b></em>' containment reference.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	public static final int XML_MAPPED_SUPERCLASS__ATTRIBUTES = OrmPackage.XML_MAPPED_SUPERCLASS__ATTRIBUTES;
-
-	/**
-	 * The feature id for the '<em><b>Id Class</b></em>' containment reference.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	public static final int XML_MAPPED_SUPERCLASS__ID_CLASS = OrmPackage.XML_MAPPED_SUPERCLASS__ID_CLASS;
-
-	/**
-	 * The feature id for the '<em><b>Exclude Default Listeners</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	public static final int XML_MAPPED_SUPERCLASS__EXCLUDE_DEFAULT_LISTENERS = OrmPackage.XML_MAPPED_SUPERCLASS__EXCLUDE_DEFAULT_LISTENERS;
-
-	/**
-	 * The feature id for the '<em><b>Exclude Superclass Listeners</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	public static final int XML_MAPPED_SUPERCLASS__EXCLUDE_SUPERCLASS_LISTENERS = OrmPackage.XML_MAPPED_SUPERCLASS__EXCLUDE_SUPERCLASS_LISTENERS;
-
-	/**
-	 * The feature id for the '<em><b>Entity Listeners</b></em>' containment reference.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	public static final int XML_MAPPED_SUPERCLASS__ENTITY_LISTENERS = OrmPackage.XML_MAPPED_SUPERCLASS__ENTITY_LISTENERS;
-
-	/**
-	 * The feature id for the '<em><b>Pre Persist</b></em>' containment reference.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	public static final int XML_MAPPED_SUPERCLASS__PRE_PERSIST = OrmPackage.XML_MAPPED_SUPERCLASS__PRE_PERSIST;
-
-	/**
-	 * The feature id for the '<em><b>Post Persist</b></em>' containment reference.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	public static final int XML_MAPPED_SUPERCLASS__POST_PERSIST = OrmPackage.XML_MAPPED_SUPERCLASS__POST_PERSIST;
-
-	/**
-	 * The feature id for the '<em><b>Pre Remove</b></em>' containment reference.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	public static final int XML_MAPPED_SUPERCLASS__PRE_REMOVE = OrmPackage.XML_MAPPED_SUPERCLASS__PRE_REMOVE;
-
-	/**
-	 * The feature id for the '<em><b>Post Remove</b></em>' containment reference.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	public static final int XML_MAPPED_SUPERCLASS__POST_REMOVE = OrmPackage.XML_MAPPED_SUPERCLASS__POST_REMOVE;
-
-	/**
-	 * The feature id for the '<em><b>Pre Update</b></em>' containment reference.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	public static final int XML_MAPPED_SUPERCLASS__PRE_UPDATE = OrmPackage.XML_MAPPED_SUPERCLASS__PRE_UPDATE;
-
-	/**
-	 * The feature id for the '<em><b>Post Update</b></em>' containment reference.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	public static final int XML_MAPPED_SUPERCLASS__POST_UPDATE = OrmPackage.XML_MAPPED_SUPERCLASS__POST_UPDATE;
-
-	/**
-	 * The feature id for the '<em><b>Post Load</b></em>' containment reference.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	public static final int XML_MAPPED_SUPERCLASS__POST_LOAD = OrmPackage.XML_MAPPED_SUPERCLASS__POST_LOAD;
-
-	/**
-	 * The feature id for the '<em><b>Read Only</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	public static final int XML_MAPPED_SUPERCLASS__READ_ONLY = OrmPackage.XML_MAPPED_SUPERCLASS_FEATURE_COUNT + 0;
-
-	/**
-	 * The feature id for the '<em><b>Customizer</b></em>' containment reference.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	public static final int XML_MAPPED_SUPERCLASS__CUSTOMIZER = OrmPackage.XML_MAPPED_SUPERCLASS_FEATURE_COUNT + 1;
-
-	/**
-	 * The feature id for the '<em><b>Change Tracking</b></em>' containment reference.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	public static final int XML_MAPPED_SUPERCLASS__CHANGE_TRACKING = OrmPackage.XML_MAPPED_SUPERCLASS_FEATURE_COUNT + 2;
-
-	/**
-	 * The feature id for the '<em><b>Cache</b></em>' containment reference.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	public static final int XML_MAPPED_SUPERCLASS__CACHE = OrmPackage.XML_MAPPED_SUPERCLASS_FEATURE_COUNT + 3;
-
-	/**
-	 * The feature id for the '<em><b>Existence Checking</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	public static final int XML_MAPPED_SUPERCLASS__EXISTENCE_CHECKING = OrmPackage.XML_MAPPED_SUPERCLASS_FEATURE_COUNT + 4;
-
-	/**
-	 * The feature id for the '<em><b>Converters</b></em>' containment reference list.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	public static final int XML_MAPPED_SUPERCLASS__CONVERTERS = OrmPackage.XML_MAPPED_SUPERCLASS_FEATURE_COUNT + 5;
-
-	/**
-	 * The feature id for the '<em><b>Type Converters</b></em>' containment reference list.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	public static final int XML_MAPPED_SUPERCLASS__TYPE_CONVERTERS = OrmPackage.XML_MAPPED_SUPERCLASS_FEATURE_COUNT + 6;
-
-	/**
-	 * The feature id for the '<em><b>Object Type Converters</b></em>' containment reference list.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	public static final int XML_MAPPED_SUPERCLASS__OBJECT_TYPE_CONVERTERS = OrmPackage.XML_MAPPED_SUPERCLASS_FEATURE_COUNT + 7;
-
-	/**
-	 * The feature id for the '<em><b>Struct Converters</b></em>' containment reference list.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	public static final int XML_MAPPED_SUPERCLASS__STRUCT_CONVERTERS = OrmPackage.XML_MAPPED_SUPERCLASS_FEATURE_COUNT + 8;
-
-	/**
-	 * The feature id for the '<em><b>Optimistic Locking</b></em>' containment reference.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	public static final int XML_MAPPED_SUPERCLASS__OPTIMISTIC_LOCKING = OrmPackage.XML_MAPPED_SUPERCLASS_FEATURE_COUNT + 9;
-
-	/**
-	 * The feature id for the '<em><b>Copy Policy</b></em>' containment reference.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	public static final int XML_MAPPED_SUPERCLASS__COPY_POLICY = OrmPackage.XML_MAPPED_SUPERCLASS_FEATURE_COUNT + 10;
-
-	/**
-	 * The feature id for the '<em><b>Instantiation Copy Policy</b></em>' containment reference.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	public static final int XML_MAPPED_SUPERCLASS__INSTANTIATION_COPY_POLICY = OrmPackage.XML_MAPPED_SUPERCLASS_FEATURE_COUNT + 11;
-
-	/**
-	 * The feature id for the '<em><b>Clone Copy Policy</b></em>' containment reference.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	public static final int XML_MAPPED_SUPERCLASS__CLONE_COPY_POLICY = OrmPackage.XML_MAPPED_SUPERCLASS_FEATURE_COUNT + 12;
-
-	/**
-	 * The feature id for the '<em><b>Properties</b></em>' containment reference list.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	public static final int XML_MAPPED_SUPERCLASS__PROPERTIES = OrmPackage.XML_MAPPED_SUPERCLASS_FEATURE_COUNT + 13;
-
-	/**
-	 * The feature id for the '<em><b>Exclude Default Mappings</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	public static final int XML_MAPPED_SUPERCLASS__EXCLUDE_DEFAULT_MAPPINGS = OrmPackage.XML_MAPPED_SUPERCLASS_FEATURE_COUNT + 14;
-
-	/**
-	 * The number of structural features of the '<em>Xml Mapped Superclass</em>' class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	public static final int XML_MAPPED_SUPERCLASS_FEATURE_COUNT = OrmPackage.XML_MAPPED_SUPERCLASS_FEATURE_COUNT + 15;
-
-	/**
-	 * The feature id for the '<em><b>Mutable</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	public static final int XML_MUTABLE__MUTABLE = 0;
-
-	/**
-	 * The number of structural features of the '<em>Xml Mutable</em>' class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	public static final int XML_MUTABLE_FEATURE_COUNT = 1;
-
-	/**
-	 * The feature id for the '<em><b>Converter</b></em>' containment reference.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	public static final int XML_CONVERTER_HOLDER__CONVERTER = 0;
-
-	/**
-	 * The feature id for the '<em><b>Type Converter</b></em>' containment reference.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	public static final int XML_CONVERTER_HOLDER__TYPE_CONVERTER = 1;
-
-	/**
-	 * The feature id for the '<em><b>Object Type Converter</b></em>' containment reference.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	public static final int XML_CONVERTER_HOLDER__OBJECT_TYPE_CONVERTER = 2;
-
-	/**
-	 * The feature id for the '<em><b>Struct Converter</b></em>' containment reference.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	public static final int XML_CONVERTER_HOLDER__STRUCT_CONVERTER = 3;
-
-	/**
-	 * The number of structural features of the '<em>Xml Converter Holder</em>' class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	public static final int XML_CONVERTER_HOLDER_FEATURE_COUNT = 4;
-
-	/**
-	 * The feature id for the '<em><b>Lob</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	public static final int XML_CONVERTIBLE_MAPPING__LOB = OrmPackage.XML_CONVERTIBLE_MAPPING__LOB;
-
-	/**
-	 * The feature id for the '<em><b>Temporal</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	public static final int XML_CONVERTIBLE_MAPPING__TEMPORAL = OrmPackage.XML_CONVERTIBLE_MAPPING__TEMPORAL;
-
-	/**
-	 * The feature id for the '<em><b>Enumerated</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	public static final int XML_CONVERTIBLE_MAPPING__ENUMERATED = OrmPackage.XML_CONVERTIBLE_MAPPING__ENUMERATED;
-
-	/**
-	 * The feature id for the '<em><b>Converter</b></em>' containment reference.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	public static final int XML_CONVERTIBLE_MAPPING__CONVERTER = OrmPackage.XML_CONVERTIBLE_MAPPING_FEATURE_COUNT + 0;
-
-	/**
-	 * The feature id for the '<em><b>Type Converter</b></em>' containment reference.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	public static final int XML_CONVERTIBLE_MAPPING__TYPE_CONVERTER = OrmPackage.XML_CONVERTIBLE_MAPPING_FEATURE_COUNT + 1;
-
-	/**
-	 * The feature id for the '<em><b>Object Type Converter</b></em>' containment reference.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	public static final int XML_CONVERTIBLE_MAPPING__OBJECT_TYPE_CONVERTER = OrmPackage.XML_CONVERTIBLE_MAPPING_FEATURE_COUNT + 2;
-
-	/**
-	 * The feature id for the '<em><b>Struct Converter</b></em>' containment reference.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	public static final int XML_CONVERTIBLE_MAPPING__STRUCT_CONVERTER = OrmPackage.XML_CONVERTIBLE_MAPPING_FEATURE_COUNT + 3;
-
-	/**
-	 * The feature id for the '<em><b>Convert</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	public static final int XML_CONVERTIBLE_MAPPING__CONVERT = OrmPackage.XML_CONVERTIBLE_MAPPING_FEATURE_COUNT + 4;
-
-	/**
-	 * The number of structural features of the '<em>Xml Convertible Mapping</em>' class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	public static final int XML_CONVERTIBLE_MAPPING_FEATURE_COUNT = OrmPackage.XML_CONVERTIBLE_MAPPING_FEATURE_COUNT + 5;
-
-	/**
-	 * The meta object id for the '{@link org.eclipse.jpt.eclipselink.core.resource.orm.XmlAccessMethods <em>Xml Access Methods</em>}' class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see org.eclipse.jpt.eclipselink.core.resource.orm.XmlAccessMethods
-	 * @see org.eclipse.jpt.eclipselink.core.resource.orm.EclipseLinkOrmPackage#getXmlAccessMethods()
-	 * @generated
-	 */
-	public static final int XML_ACCESS_METHODS = 34;
-
-	/**
-	 * The feature id for the '<em><b>Get Method</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	public static final int XML_ACCESS_METHODS__GET_METHOD = 0;
-
-	/**
-	 * The feature id for the '<em><b>Set Method</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	public static final int XML_ACCESS_METHODS__SET_METHOD = 1;
-
-	/**
-	 * The number of structural features of the '<em>Xml Access Methods</em>' class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	public static final int XML_ACCESS_METHODS_FEATURE_COUNT = 2;
-
-	/**
-	 * The meta object id for the '{@link org.eclipse.jpt.eclipselink.core.resource.orm.XmlAccessMethodsHolder <em>Xml Access Methods Holder</em>}' class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see org.eclipse.jpt.eclipselink.core.resource.orm.XmlAccessMethodsHolder
-	 * @see org.eclipse.jpt.eclipselink.core.resource.orm.EclipseLinkOrmPackage#getXmlAccessMethodsHolder()
-	 * @generated
-	 */
-	public static final int XML_ACCESS_METHODS_HOLDER = 35;
-
-	/**
-	 * The feature id for the '<em><b>Access Methods</b></em>' containment reference.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	public static final int XML_ACCESS_METHODS_HOLDER__ACCESS_METHODS = 0;
-
-	/**
-	 * The number of structural features of the '<em>Xml Access Methods Holder</em>' class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	public static final int XML_ACCESS_METHODS_HOLDER_FEATURE_COUNT = 1;
-
-	/**
-	 * The meta object id for the '{@link org.eclipse.jpt.eclipselink.core.resource.orm.XmlEmbeddedId <em>Xml Embedded Id</em>}' class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see org.eclipse.jpt.eclipselink.core.resource.orm.XmlEmbeddedId
-	 * @see org.eclipse.jpt.eclipselink.core.resource.orm.EclipseLinkOrmPackage#getXmlEmbeddedId()
-	 * @generated
-	 */
-	public static final int XML_EMBEDDED_ID = 39;
-
-	/**
-	 * The meta object id for the '{@link org.eclipse.jpt.eclipselink.core.resource.orm.XmlEmbeddedIdImpl <em>Xml Embedded Id Impl</em>}' class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see org.eclipse.jpt.eclipselink.core.resource.orm.XmlEmbeddedIdImpl
-	 * @see org.eclipse.jpt.eclipselink.core.resource.orm.EclipseLinkOrmPackage#getXmlEmbeddedIdImpl()
-	 * @generated
-	 */
-	public static final int XML_EMBEDDED_ID_IMPL = 40;
-
-	/**
-	 * The meta object id for the '{@link org.eclipse.jpt.eclipselink.core.resource.orm.XmlEmbedded <em>Xml Embedded</em>}' class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see org.eclipse.jpt.eclipselink.core.resource.orm.XmlEmbedded
-	 * @see org.eclipse.jpt.eclipselink.core.resource.orm.EclipseLinkOrmPackage#getXmlEmbedded()
-	 * @generated
-	 */
-	public static final int XML_EMBEDDED = 41;
-
-	/**
-	 * The meta object id for the '{@link org.eclipse.jpt.eclipselink.core.resource.orm.XmlEmbeddedImpl <em>Xml Embedded Impl</em>}' class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see org.eclipse.jpt.eclipselink.core.resource.orm.XmlEmbeddedImpl
-	 * @see org.eclipse.jpt.eclipselink.core.resource.orm.EclipseLinkOrmPackage#getXmlEmbeddedImpl()
-	 * @generated
-	 */
-	public static final int XML_EMBEDDED_IMPL = 42;
-
-	/**
-	 * The meta object id for the '{@link org.eclipse.jpt.eclipselink.core.resource.orm.Attributes <em>Attributes</em>}' class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see org.eclipse.jpt.eclipselink.core.resource.orm.Attributes
-	 * @see org.eclipse.jpt.eclipselink.core.resource.orm.EclipseLinkOrmPackage#getAttributes()
-	 * @generated
-	 */
-	public static final int ATTRIBUTES = 65;
-
-	/**
-	 * The meta object id for the '{@link org.eclipse.jpt.eclipselink.core.resource.orm.XmlBasicCollection <em>Xml Basic Collection</em>}' class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see org.eclipse.jpt.eclipselink.core.resource.orm.XmlBasicCollection
-	 * @see org.eclipse.jpt.eclipselink.core.resource.orm.EclipseLinkOrmPackage#getXmlBasicCollection()
-	 * @generated
-	 */
-	public static final int XML_BASIC_COLLECTION = 57;
-
-	/**
-	 * The meta object id for the '{@link org.eclipse.jpt.eclipselink.core.resource.orm.XmlBasicCollectionImpl <em>Xml Basic Collection Impl</em>}' class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see org.eclipse.jpt.eclipselink.core.resource.orm.XmlBasicCollectionImpl
-	 * @see org.eclipse.jpt.eclipselink.core.resource.orm.EclipseLinkOrmPackage#getXmlBasicCollectionImpl()
-	 * @generated
-	 */
-	public static final int XML_BASIC_COLLECTION_IMPL = 58;
-
-	/**
-	 * The meta object id for the '{@link org.eclipse.jpt.eclipselink.core.resource.orm.XmlBasicMap <em>Xml Basic Map</em>}' class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see org.eclipse.jpt.eclipselink.core.resource.orm.XmlBasicMap
-	 * @see org.eclipse.jpt.eclipselink.core.resource.orm.EclipseLinkOrmPackage#getXmlBasicMap()
-	 * @generated
-	 */
-	public static final int XML_BASIC_MAP = 59;
-
-	/**
-	 * The meta object id for the '{@link org.eclipse.jpt.eclipselink.core.resource.orm.XmlBasicMapImpl <em>Xml Basic Map Impl</em>}' class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see org.eclipse.jpt.eclipselink.core.resource.orm.XmlBasicMapImpl
-	 * @see org.eclipse.jpt.eclipselink.core.resource.orm.EclipseLinkOrmPackage#getXmlBasicMapImpl()
-	 * @generated
-	 */
-	public static final int XML_BASIC_MAP_IMPL = 60;
-
-	/**
-	 * The meta object id for the '{@link org.eclipse.jpt.eclipselink.core.resource.orm.XmlTransformation <em>Xml Transformation</em>}' class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see org.eclipse.jpt.eclipselink.core.resource.orm.XmlTransformation
-	 * @see org.eclipse.jpt.eclipselink.core.resource.orm.EclipseLinkOrmPackage#getXmlTransformation()
-	 * @generated
-	 */
-	public static final int XML_TRANSFORMATION = 61;
-
-	/**
-	 * The meta object id for the '{@link org.eclipse.jpt.eclipselink.core.resource.orm.XmlTransformationImpl <em>Xml Transformation Impl</em>}' class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see org.eclipse.jpt.eclipselink.core.resource.orm.XmlTransformationImpl
-	 * @see org.eclipse.jpt.eclipselink.core.resource.orm.EclipseLinkOrmPackage#getXmlTransformationImpl()
-	 * @generated
-	 */
-	public static final int XML_TRANSFORMATION_IMPL = 62;
-
-	/**
-	 * The meta object id for the '{@link org.eclipse.jpt.eclipselink.core.resource.orm.XmlProperty <em>Xml Property</em>}' class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see org.eclipse.jpt.eclipselink.core.resource.orm.XmlProperty
-	 * @see org.eclipse.jpt.eclipselink.core.resource.orm.EclipseLinkOrmPackage#getXmlProperty()
-	 * @generated
-	 */
-	public static final int XML_PROPERTY = 36;
-
-	/**
-	 * The feature id for the '<em><b>Name</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	public static final int XML_PROPERTY__NAME = 0;
-
-	/**
-	 * The feature id for the '<em><b>Value</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	public static final int XML_PROPERTY__VALUE = 1;
-
-	/**
-	 * The feature id for the '<em><b>Value Type</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	public static final int XML_PROPERTY__VALUE_TYPE = 2;
-
-	/**
-	 * The number of structural features of the '<em>Xml Property</em>' class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	public static final int XML_PROPERTY_FEATURE_COUNT = 3;
-
-	/**
-	 * The feature id for the '<em><b>Name</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	public static final int XML_ID__NAME = OrmPackage.XML_ID__NAME;
-
-	/**
-	 * The feature id for the '<em><b>Column</b></em>' containment reference.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	public static final int XML_ID__COLUMN = OrmPackage.XML_ID__COLUMN;
-
-	/**
-	 * The feature id for the '<em><b>Lob</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	public static final int XML_ID__LOB = OrmPackage.XML_ID__LOB;
-
-	/**
-	 * The feature id for the '<em><b>Temporal</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	public static final int XML_ID__TEMPORAL = OrmPackage.XML_ID__TEMPORAL;
-
-	/**
-	 * The feature id for the '<em><b>Enumerated</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	public static final int XML_ID__ENUMERATED = OrmPackage.XML_ID__ENUMERATED;
-
-	/**
-	 * The feature id for the '<em><b>Generated Value</b></em>' containment reference.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	public static final int XML_ID__GENERATED_VALUE = OrmPackage.XML_ID__GENERATED_VALUE;
-
-	/**
-	 * The feature id for the '<em><b>Table Generator</b></em>' containment reference.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	public static final int XML_ID__TABLE_GENERATOR = OrmPackage.XML_ID__TABLE_GENERATOR;
-
-	/**
-	 * The feature id for the '<em><b>Sequence Generator</b></em>' containment reference.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	public static final int XML_ID__SEQUENCE_GENERATOR = OrmPackage.XML_ID__SEQUENCE_GENERATOR;
-
-	/**
-	 * The feature id for the '<em><b>Mutable</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	public static final int XML_ID__MUTABLE = OrmPackage.XML_ID_FEATURE_COUNT + 0;
-
-	/**
-	 * The feature id for the '<em><b>Converter</b></em>' containment reference.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	public static final int XML_ID__CONVERTER = OrmPackage.XML_ID_FEATURE_COUNT + 1;
-
-	/**
-	 * The feature id for the '<em><b>Type Converter</b></em>' containment reference.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	public static final int XML_ID__TYPE_CONVERTER = OrmPackage.XML_ID_FEATURE_COUNT + 2;
-
-	/**
-	 * The feature id for the '<em><b>Object Type Converter</b></em>' containment reference.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	public static final int XML_ID__OBJECT_TYPE_CONVERTER = OrmPackage.XML_ID_FEATURE_COUNT + 3;
-
-	/**
-	 * The feature id for the '<em><b>Struct Converter</b></em>' containment reference.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	public static final int XML_ID__STRUCT_CONVERTER = OrmPackage.XML_ID_FEATURE_COUNT + 4;
-
-	/**
-	 * The feature id for the '<em><b>Convert</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	public static final int XML_ID__CONVERT = OrmPackage.XML_ID_FEATURE_COUNT + 5;
-
-	/**
-	 * The feature id for the '<em><b>Access Methods</b></em>' containment reference.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	public static final int XML_ID__ACCESS_METHODS = OrmPackage.XML_ID_FEATURE_COUNT + 6;
-
-	/**
-	 * The feature id for the '<em><b>Properties</b></em>' containment reference list.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	public static final int XML_ID__PROPERTIES = OrmPackage.XML_ID_FEATURE_COUNT + 7;
-
-	/**
-	 * The number of structural features of the '<em>Xml Id</em>' class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	public static final int XML_ID_FEATURE_COUNT = OrmPackage.XML_ID_FEATURE_COUNT + 8;
-
-	/**
-	 * The feature id for the '<em><b>Name</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	public static final int XML_ID_IMPL__NAME = OrmPackage.XML_ID_IMPL__NAME;
-
-	/**
-	 * The feature id for the '<em><b>Column</b></em>' containment reference.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	public static final int XML_ID_IMPL__COLUMN = OrmPackage.XML_ID_IMPL__COLUMN;
-
-	/**
-	 * The feature id for the '<em><b>Lob</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	public static final int XML_ID_IMPL__LOB = OrmPackage.XML_ID_IMPL__LOB;
-
-	/**
-	 * The feature id for the '<em><b>Temporal</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	public static final int XML_ID_IMPL__TEMPORAL = OrmPackage.XML_ID_IMPL__TEMPORAL;
-
-	/**
-	 * The feature id for the '<em><b>Enumerated</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	public static final int XML_ID_IMPL__ENUMERATED = OrmPackage.XML_ID_IMPL__ENUMERATED;
-
-	/**
-	 * The feature id for the '<em><b>Generated Value</b></em>' containment reference.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	public static final int XML_ID_IMPL__GENERATED_VALUE = OrmPackage.XML_ID_IMPL__GENERATED_VALUE;
-
-	/**
-	 * The feature id for the '<em><b>Table Generator</b></em>' containment reference.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	public static final int XML_ID_IMPL__TABLE_GENERATOR = OrmPackage.XML_ID_IMPL__TABLE_GENERATOR;
-
-	/**
-	 * The feature id for the '<em><b>Sequence Generator</b></em>' containment reference.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	public static final int XML_ID_IMPL__SEQUENCE_GENERATOR = OrmPackage.XML_ID_IMPL__SEQUENCE_GENERATOR;
-
-	/**
-	 * The feature id for the '<em><b>Mutable</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	public static final int XML_ID_IMPL__MUTABLE = OrmPackage.XML_ID_IMPL_FEATURE_COUNT + 0;
-
-	/**
-	 * The feature id for the '<em><b>Converter</b></em>' containment reference.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	public static final int XML_ID_IMPL__CONVERTER = OrmPackage.XML_ID_IMPL_FEATURE_COUNT + 1;
-
-	/**
-	 * The feature id for the '<em><b>Type Converter</b></em>' containment reference.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	public static final int XML_ID_IMPL__TYPE_CONVERTER = OrmPackage.XML_ID_IMPL_FEATURE_COUNT + 2;
-
-	/**
-	 * The feature id for the '<em><b>Object Type Converter</b></em>' containment reference.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	public static final int XML_ID_IMPL__OBJECT_TYPE_CONVERTER = OrmPackage.XML_ID_IMPL_FEATURE_COUNT + 3;
-
-	/**
-	 * The feature id for the '<em><b>Struct Converter</b></em>' containment reference.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	public static final int XML_ID_IMPL__STRUCT_CONVERTER = OrmPackage.XML_ID_IMPL_FEATURE_COUNT + 4;
-
-	/**
-	 * The feature id for the '<em><b>Convert</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	public static final int XML_ID_IMPL__CONVERT = OrmPackage.XML_ID_IMPL_FEATURE_COUNT + 5;
-
-	/**
-	 * The feature id for the '<em><b>Access Methods</b></em>' containment reference.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	public static final int XML_ID_IMPL__ACCESS_METHODS = OrmPackage.XML_ID_IMPL_FEATURE_COUNT + 6;
-
-	/**
-	 * The feature id for the '<em><b>Properties</b></em>' containment reference list.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	public static final int XML_ID_IMPL__PROPERTIES = OrmPackage.XML_ID_IMPL_FEATURE_COUNT + 7;
-
-	/**
-	 * The number of structural features of the '<em>Xml Id Impl</em>' class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	public static final int XML_ID_IMPL_FEATURE_COUNT = OrmPackage.XML_ID_IMPL_FEATURE_COUNT + 8;
-
-	/**
-	 * The feature id for the '<em><b>Name</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	public static final int XML_EMBEDDED_ID__NAME = OrmPackage.XML_EMBEDDED_ID__NAME;
-
-	/**
-	 * The feature id for the '<em><b>Attribute Overrides</b></em>' containment reference list.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	public static final int XML_EMBEDDED_ID__ATTRIBUTE_OVERRIDES = OrmPackage.XML_EMBEDDED_ID__ATTRIBUTE_OVERRIDES;
-
-	/**
-	 * The feature id for the '<em><b>Access Methods</b></em>' containment reference.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	public static final int XML_EMBEDDED_ID__ACCESS_METHODS = OrmPackage.XML_EMBEDDED_ID_FEATURE_COUNT + 0;
-
-	/**
-	 * The feature id for the '<em><b>Properties</b></em>' containment reference list.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	public static final int XML_EMBEDDED_ID__PROPERTIES = OrmPackage.XML_EMBEDDED_ID_FEATURE_COUNT + 1;
-
-	/**
-	 * The number of structural features of the '<em>Xml Embedded Id</em>' class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	public static final int XML_EMBEDDED_ID_FEATURE_COUNT = OrmPackage.XML_EMBEDDED_ID_FEATURE_COUNT + 2;
-
-	/**
-	 * The feature id for the '<em><b>Name</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	public static final int XML_EMBEDDED_ID_IMPL__NAME = OrmPackage.XML_EMBEDDED_ID_IMPL__NAME;
-
-	/**
-	 * The feature id for the '<em><b>Attribute Overrides</b></em>' containment reference list.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	public static final int XML_EMBEDDED_ID_IMPL__ATTRIBUTE_OVERRIDES = OrmPackage.XML_EMBEDDED_ID_IMPL__ATTRIBUTE_OVERRIDES;
-
-	/**
-	 * The feature id for the '<em><b>Access Methods</b></em>' containment reference.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	public static final int XML_EMBEDDED_ID_IMPL__ACCESS_METHODS = OrmPackage.XML_EMBEDDED_ID_IMPL_FEATURE_COUNT + 0;
-
-	/**
-	 * The feature id for the '<em><b>Properties</b></em>' containment reference list.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	public static final int XML_EMBEDDED_ID_IMPL__PROPERTIES = OrmPackage.XML_EMBEDDED_ID_IMPL_FEATURE_COUNT + 1;
-
-	/**
-	 * The number of structural features of the '<em>Xml Embedded Id Impl</em>' class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	public static final int XML_EMBEDDED_ID_IMPL_FEATURE_COUNT = OrmPackage.XML_EMBEDDED_ID_IMPL_FEATURE_COUNT + 2;
-
-	/**
-	 * The feature id for the '<em><b>Name</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	public static final int XML_EMBEDDED__NAME = OrmPackage.XML_EMBEDDED__NAME;
-
-	/**
-	 * The feature id for the '<em><b>Attribute Overrides</b></em>' containment reference list.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	public static final int XML_EMBEDDED__ATTRIBUTE_OVERRIDES = OrmPackage.XML_EMBEDDED__ATTRIBUTE_OVERRIDES;
-
-	/**
-	 * The feature id for the '<em><b>Access Methods</b></em>' containment reference.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	public static final int XML_EMBEDDED__ACCESS_METHODS = OrmPackage.XML_EMBEDDED_FEATURE_COUNT + 0;
-
-	/**
-	 * The feature id for the '<em><b>Properties</b></em>' containment reference list.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	public static final int XML_EMBEDDED__PROPERTIES = OrmPackage.XML_EMBEDDED_FEATURE_COUNT + 1;
-
-	/**
-	 * The number of structural features of the '<em>Xml Embedded</em>' class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	public static final int XML_EMBEDDED_FEATURE_COUNT = OrmPackage.XML_EMBEDDED_FEATURE_COUNT + 2;
-
-	/**
-	 * The feature id for the '<em><b>Name</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	public static final int XML_EMBEDDED_IMPL__NAME = OrmPackage.XML_EMBEDDED_IMPL__NAME;
-
-	/**
-	 * The feature id for the '<em><b>Attribute Overrides</b></em>' containment reference list.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	public static final int XML_EMBEDDED_IMPL__ATTRIBUTE_OVERRIDES = OrmPackage.XML_EMBEDDED_IMPL__ATTRIBUTE_OVERRIDES;
-
-	/**
-	 * The feature id for the '<em><b>Access Methods</b></em>' containment reference.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	public static final int XML_EMBEDDED_IMPL__ACCESS_METHODS = OrmPackage.XML_EMBEDDED_IMPL_FEATURE_COUNT + 0;
-
-	/**
-	 * The feature id for the '<em><b>Properties</b></em>' containment reference list.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	public static final int XML_EMBEDDED_IMPL__PROPERTIES = OrmPackage.XML_EMBEDDED_IMPL_FEATURE_COUNT + 1;
-
-	/**
-	 * The number of structural features of the '<em>Xml Embedded Impl</em>' class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	public static final int XML_EMBEDDED_IMPL_FEATURE_COUNT = OrmPackage.XML_EMBEDDED_IMPL_FEATURE_COUNT + 2;
-
-	/**
-	 * The feature id for the '<em><b>Name</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	public static final int XML_BASIC__NAME = OrmPackage.XML_BASIC__NAME;
-
-	/**
-	 * The feature id for the '<em><b>Column</b></em>' containment reference.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	public static final int XML_BASIC__COLUMN = OrmPackage.XML_BASIC__COLUMN;
-
-	/**
-	 * The feature id for the '<em><b>Lob</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	public static final int XML_BASIC__LOB = OrmPackage.XML_BASIC__LOB;
-
-	/**
-	 * The feature id for the '<em><b>Temporal</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	public static final int XML_BASIC__TEMPORAL = OrmPackage.XML_BASIC__TEMPORAL;
-
-	/**
-	 * The feature id for the '<em><b>Enumerated</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	public static final int XML_BASIC__ENUMERATED = OrmPackage.XML_BASIC__ENUMERATED;
-
-	/**
-	 * The feature id for the '<em><b>Fetch</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	public static final int XML_BASIC__FETCH = OrmPackage.XML_BASIC__FETCH;
-
-	/**
-	 * The feature id for the '<em><b>Optional</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	public static final int XML_BASIC__OPTIONAL = OrmPackage.XML_BASIC__OPTIONAL;
-
-	/**
-	 * The feature id for the '<em><b>Mutable</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	public static final int XML_BASIC__MUTABLE = OrmPackage.XML_BASIC_FEATURE_COUNT + 0;
-
-	/**
-	 * The feature id for the '<em><b>Converter</b></em>' containment reference.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	public static final int XML_BASIC__CONVERTER = OrmPackage.XML_BASIC_FEATURE_COUNT + 1;
-
-	/**
-	 * The feature id for the '<em><b>Type Converter</b></em>' containment reference.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	public static final int XML_BASIC__TYPE_CONVERTER = OrmPackage.XML_BASIC_FEATURE_COUNT + 2;
-
-	/**
-	 * The feature id for the '<em><b>Object Type Converter</b></em>' containment reference.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	public static final int XML_BASIC__OBJECT_TYPE_CONVERTER = OrmPackage.XML_BASIC_FEATURE_COUNT + 3;
-
-	/**
-	 * The feature id for the '<em><b>Struct Converter</b></em>' containment reference.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	public static final int XML_BASIC__STRUCT_CONVERTER = OrmPackage.XML_BASIC_FEATURE_COUNT + 4;
-
-	/**
-	 * The feature id for the '<em><b>Convert</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	public static final int XML_BASIC__CONVERT = OrmPackage.XML_BASIC_FEATURE_COUNT + 5;
-
-	/**
-	 * The feature id for the '<em><b>Access Methods</b></em>' containment reference.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	public static final int XML_BASIC__ACCESS_METHODS = OrmPackage.XML_BASIC_FEATURE_COUNT + 6;
-
-	/**
-	 * The feature id for the '<em><b>Properties</b></em>' containment reference list.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	public static final int XML_BASIC__PROPERTIES = OrmPackage.XML_BASIC_FEATURE_COUNT + 7;
-
-	/**
-	 * The number of structural features of the '<em>Xml Basic</em>' class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	public static final int XML_BASIC_FEATURE_COUNT = OrmPackage.XML_BASIC_FEATURE_COUNT + 8;
-
-	/**
-	 * The feature id for the '<em><b>Name</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	public static final int XML_BASIC_IMPL__NAME = OrmPackage.XML_BASIC_IMPL__NAME;
-
-	/**
-	 * The feature id for the '<em><b>Column</b></em>' containment reference.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	public static final int XML_BASIC_IMPL__COLUMN = OrmPackage.XML_BASIC_IMPL__COLUMN;
-
-	/**
-	 * The feature id for the '<em><b>Lob</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	public static final int XML_BASIC_IMPL__LOB = OrmPackage.XML_BASIC_IMPL__LOB;
-
-	/**
-	 * The feature id for the '<em><b>Temporal</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	public static final int XML_BASIC_IMPL__TEMPORAL = OrmPackage.XML_BASIC_IMPL__TEMPORAL;
-
-	/**
-	 * The feature id for the '<em><b>Enumerated</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	public static final int XML_BASIC_IMPL__ENUMERATED = OrmPackage.XML_BASIC_IMPL__ENUMERATED;
-
-	/**
-	 * The feature id for the '<em><b>Fetch</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	public static final int XML_BASIC_IMPL__FETCH = OrmPackage.XML_BASIC_IMPL__FETCH;
-
-	/**
-	 * The feature id for the '<em><b>Optional</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	public static final int XML_BASIC_IMPL__OPTIONAL = OrmPackage.XML_BASIC_IMPL__OPTIONAL;
-
-	/**
-	 * The feature id for the '<em><b>Mutable</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	public static final int XML_BASIC_IMPL__MUTABLE = OrmPackage.XML_BASIC_IMPL_FEATURE_COUNT + 0;
-
-	/**
-	 * The feature id for the '<em><b>Converter</b></em>' containment reference.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	public static final int XML_BASIC_IMPL__CONVERTER = OrmPackage.XML_BASIC_IMPL_FEATURE_COUNT + 1;
-
-	/**
-	 * The feature id for the '<em><b>Type Converter</b></em>' containment reference.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	public static final int XML_BASIC_IMPL__TYPE_CONVERTER = OrmPackage.XML_BASIC_IMPL_FEATURE_COUNT + 2;
-
-	/**
-	 * The feature id for the '<em><b>Object Type Converter</b></em>' containment reference.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	public static final int XML_BASIC_IMPL__OBJECT_TYPE_CONVERTER = OrmPackage.XML_BASIC_IMPL_FEATURE_COUNT + 3;
-
-	/**
-	 * The feature id for the '<em><b>Struct Converter</b></em>' containment reference.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	public static final int XML_BASIC_IMPL__STRUCT_CONVERTER = OrmPackage.XML_BASIC_IMPL_FEATURE_COUNT + 4;
-
-	/**
-	 * The feature id for the '<em><b>Convert</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	public static final int XML_BASIC_IMPL__CONVERT = OrmPackage.XML_BASIC_IMPL_FEATURE_COUNT + 5;
-
-	/**
-	 * The feature id for the '<em><b>Access Methods</b></em>' containment reference.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	public static final int XML_BASIC_IMPL__ACCESS_METHODS = OrmPackage.XML_BASIC_IMPL_FEATURE_COUNT + 6;
-
-	/**
-	 * The feature id for the '<em><b>Properties</b></em>' containment reference list.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	public static final int XML_BASIC_IMPL__PROPERTIES = OrmPackage.XML_BASIC_IMPL_FEATURE_COUNT + 7;
-
-	/**
-	 * The number of structural features of the '<em>Xml Basic Impl</em>' class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	public static final int XML_BASIC_IMPL_FEATURE_COUNT = OrmPackage.XML_BASIC_IMPL_FEATURE_COUNT + 8;
-
-	/**
-	 * The feature id for the '<em><b>Name</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	public static final int XML_VERSION__NAME = OrmPackage.XML_VERSION__NAME;
-
-	/**
-	 * The feature id for the '<em><b>Column</b></em>' containment reference.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	public static final int XML_VERSION__COLUMN = OrmPackage.XML_VERSION__COLUMN;
-
-	/**
-	 * The feature id for the '<em><b>Lob</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	public static final int XML_VERSION__LOB = OrmPackage.XML_VERSION__LOB;
-
-	/**
-	 * The feature id for the '<em><b>Temporal</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	public static final int XML_VERSION__TEMPORAL = OrmPackage.XML_VERSION__TEMPORAL;
-
-	/**
-	 * The feature id for the '<em><b>Enumerated</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	public static final int XML_VERSION__ENUMERATED = OrmPackage.XML_VERSION__ENUMERATED;
-
-	/**
-	 * The feature id for the '<em><b>Mutable</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	public static final int XML_VERSION__MUTABLE = OrmPackage.XML_VERSION_FEATURE_COUNT + 0;
-
-	/**
-	 * The feature id for the '<em><b>Converter</b></em>' containment reference.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	public static final int XML_VERSION__CONVERTER = OrmPackage.XML_VERSION_FEATURE_COUNT + 1;
-
-	/**
-	 * The feature id for the '<em><b>Type Converter</b></em>' containment reference.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	public static final int XML_VERSION__TYPE_CONVERTER = OrmPackage.XML_VERSION_FEATURE_COUNT + 2;
-
-	/**
-	 * The feature id for the '<em><b>Object Type Converter</b></em>' containment reference.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	public static final int XML_VERSION__OBJECT_TYPE_CONVERTER = OrmPackage.XML_VERSION_FEATURE_COUNT + 3;
-
-	/**
-	 * The feature id for the '<em><b>Struct Converter</b></em>' containment reference.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	public static final int XML_VERSION__STRUCT_CONVERTER = OrmPackage.XML_VERSION_FEATURE_COUNT + 4;
-
-	/**
-	 * The feature id for the '<em><b>Convert</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	public static final int XML_VERSION__CONVERT = OrmPackage.XML_VERSION_FEATURE_COUNT + 5;
-
-	/**
-	 * The feature id for the '<em><b>Access Methods</b></em>' containment reference.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	public static final int XML_VERSION__ACCESS_METHODS = OrmPackage.XML_VERSION_FEATURE_COUNT + 6;
-
-	/**
-	 * The feature id for the '<em><b>Properties</b></em>' containment reference list.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	public static final int XML_VERSION__PROPERTIES = OrmPackage.XML_VERSION_FEATURE_COUNT + 7;
-
-	/**
-	 * The number of structural features of the '<em>Xml Version</em>' class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	public static final int XML_VERSION_FEATURE_COUNT = OrmPackage.XML_VERSION_FEATURE_COUNT + 8;
-
-	/**
-	 * The feature id for the '<em><b>Name</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	public static final int XML_VERSION_IMPL__NAME = OrmPackage.XML_VERSION_IMPL__NAME;
-
-	/**
-	 * The feature id for the '<em><b>Column</b></em>' containment reference.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	public static final int XML_VERSION_IMPL__COLUMN = OrmPackage.XML_VERSION_IMPL__COLUMN;
-
-	/**
-	 * The feature id for the '<em><b>Lob</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	public static final int XML_VERSION_IMPL__LOB = OrmPackage.XML_VERSION_IMPL__LOB;
-
-	/**
-	 * The feature id for the '<em><b>Temporal</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	public static final int XML_VERSION_IMPL__TEMPORAL = OrmPackage.XML_VERSION_IMPL__TEMPORAL;
-
-	/**
-	 * The feature id for the '<em><b>Enumerated</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	public static final int XML_VERSION_IMPL__ENUMERATED = OrmPackage.XML_VERSION_IMPL__ENUMERATED;
-
-	/**
-	 * The feature id for the '<em><b>Mutable</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	public static final int XML_VERSION_IMPL__MUTABLE = OrmPackage.XML_VERSION_IMPL_FEATURE_COUNT + 0;
-
-	/**
-	 * The feature id for the '<em><b>Converter</b></em>' containment reference.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	public static final int XML_VERSION_IMPL__CONVERTER = OrmPackage.XML_VERSION_IMPL_FEATURE_COUNT + 1;
-
-	/**
-	 * The feature id for the '<em><b>Type Converter</b></em>' containment reference.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	public static final int XML_VERSION_IMPL__TYPE_CONVERTER = OrmPackage.XML_VERSION_IMPL_FEATURE_COUNT + 2;
-
-	/**
-	 * The feature id for the '<em><b>Object Type Converter</b></em>' containment reference.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	public static final int XML_VERSION_IMPL__OBJECT_TYPE_CONVERTER = OrmPackage.XML_VERSION_IMPL_FEATURE_COUNT + 3;
-
-	/**
-	 * The feature id for the '<em><b>Struct Converter</b></em>' containment reference.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	public static final int XML_VERSION_IMPL__STRUCT_CONVERTER = OrmPackage.XML_VERSION_IMPL_FEATURE_COUNT + 4;
-
-	/**
-	 * The feature id for the '<em><b>Convert</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	public static final int XML_VERSION_IMPL__CONVERT = OrmPackage.XML_VERSION_IMPL_FEATURE_COUNT + 5;
-
-	/**
-	 * The feature id for the '<em><b>Access Methods</b></em>' containment reference.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	public static final int XML_VERSION_IMPL__ACCESS_METHODS = OrmPackage.XML_VERSION_IMPL_FEATURE_COUNT + 6;
-
-	/**
-	 * The feature id for the '<em><b>Properties</b></em>' containment reference list.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	public static final int XML_VERSION_IMPL__PROPERTIES = OrmPackage.XML_VERSION_IMPL_FEATURE_COUNT + 7;
-
-	/**
-	 * The number of structural features of the '<em>Xml Version Impl</em>' class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	public static final int XML_VERSION_IMPL_FEATURE_COUNT = OrmPackage.XML_VERSION_IMPL_FEATURE_COUNT + 8;
-
-	/**
-	 * The feature id for the '<em><b>Private Owned</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	public static final int XML_PRIVATE_OWNED__PRIVATE_OWNED = 0;
-
-	/**
-	 * The number of structural features of the '<em>Xml Private Owned</em>' class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	public static final int XML_PRIVATE_OWNED_FEATURE_COUNT = 1;
-
-	/**
-	 * The feature id for the '<em><b>Join Fetch</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	public static final int XML_JOIN_FETCH__JOIN_FETCH = 0;
-
-	/**
-	 * The number of structural features of the '<em>Xml Join Fetch</em>' class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	public static final int XML_JOIN_FETCH_FEATURE_COUNT = 1;
-
-	/**
-	 * The feature id for the '<em><b>Name</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	public static final int XML_ONE_TO_ONE__NAME = OrmPackage.XML_ONE_TO_ONE__NAME;
-
-	/**
-	 * The feature id for the '<em><b>Target Entity</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	public static final int XML_ONE_TO_ONE__TARGET_ENTITY = OrmPackage.XML_ONE_TO_ONE__TARGET_ENTITY;
-
-	/**
-	 * The feature id for the '<em><b>Fetch</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	public static final int XML_ONE_TO_ONE__FETCH = OrmPackage.XML_ONE_TO_ONE__FETCH;
-
-	/**
-	 * The feature id for the '<em><b>Cascade</b></em>' containment reference.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	public static final int XML_ONE_TO_ONE__CASCADE = OrmPackage.XML_ONE_TO_ONE__CASCADE;
-
-	/**
-	 * The feature id for the '<em><b>Join Table</b></em>' containment reference.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	public static final int XML_ONE_TO_ONE__JOIN_TABLE = OrmPackage.XML_ONE_TO_ONE__JOIN_TABLE;
-
-	/**
-	 * The feature id for the '<em><b>Join Columns</b></em>' containment reference list.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	public static final int XML_ONE_TO_ONE__JOIN_COLUMNS = OrmPackage.XML_ONE_TO_ONE__JOIN_COLUMNS;
-
-	/**
-	 * The feature id for the '<em><b>Optional</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	public static final int XML_ONE_TO_ONE__OPTIONAL = OrmPackage.XML_ONE_TO_ONE__OPTIONAL;
-
-	/**
-	 * The feature id for the '<em><b>Mapped By</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	public static final int XML_ONE_TO_ONE__MAPPED_BY = OrmPackage.XML_ONE_TO_ONE__MAPPED_BY;
-
-	/**
-	 * The feature id for the '<em><b>Primary Key Join Columns</b></em>' containment reference list.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	public static final int XML_ONE_TO_ONE__PRIMARY_KEY_JOIN_COLUMNS = OrmPackage.XML_ONE_TO_ONE__PRIMARY_KEY_JOIN_COLUMNS;
-
-	/**
-	 * The feature id for the '<em><b>Private Owned</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	public static final int XML_ONE_TO_ONE__PRIVATE_OWNED = OrmPackage.XML_ONE_TO_ONE_FEATURE_COUNT + 0;
-
-	/**
-	 * The feature id for the '<em><b>Join Fetch</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	public static final int XML_ONE_TO_ONE__JOIN_FETCH = OrmPackage.XML_ONE_TO_ONE_FEATURE_COUNT + 1;
-
-	/**
-	 * The feature id for the '<em><b>Access Methods</b></em>' containment reference.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	public static final int XML_ONE_TO_ONE__ACCESS_METHODS = OrmPackage.XML_ONE_TO_ONE_FEATURE_COUNT + 2;
-
-	/**
-	 * The feature id for the '<em><b>Properties</b></em>' containment reference list.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	public static final int XML_ONE_TO_ONE__PROPERTIES = OrmPackage.XML_ONE_TO_ONE_FEATURE_COUNT + 3;
-
-	/**
-	 * The number of structural features of the '<em>Xml One To One</em>' class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	public static final int XML_ONE_TO_ONE_FEATURE_COUNT = OrmPackage.XML_ONE_TO_ONE_FEATURE_COUNT + 4;
-
-	/**
-	 * The feature id for the '<em><b>Name</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	public static final int XML_ONE_TO_ONE_IMPL__NAME = OrmPackage.XML_ONE_TO_ONE_IMPL__NAME;
-
-	/**
-	 * The feature id for the '<em><b>Target Entity</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	public static final int XML_ONE_TO_ONE_IMPL__TARGET_ENTITY = OrmPackage.XML_ONE_TO_ONE_IMPL__TARGET_ENTITY;
-
-	/**
-	 * The feature id for the '<em><b>Fetch</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	public static final int XML_ONE_TO_ONE_IMPL__FETCH = OrmPackage.XML_ONE_TO_ONE_IMPL__FETCH;
-
-	/**
-	 * The feature id for the '<em><b>Cascade</b></em>' containment reference.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	public static final int XML_ONE_TO_ONE_IMPL__CASCADE = OrmPackage.XML_ONE_TO_ONE_IMPL__CASCADE;
-
-	/**
-	 * The feature id for the '<em><b>Join Table</b></em>' containment reference.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	public static final int XML_ONE_TO_ONE_IMPL__JOIN_TABLE = OrmPackage.XML_ONE_TO_ONE_IMPL__JOIN_TABLE;
-
-	/**
-	 * The feature id for the '<em><b>Join Columns</b></em>' containment reference list.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	public static final int XML_ONE_TO_ONE_IMPL__JOIN_COLUMNS = OrmPackage.XML_ONE_TO_ONE_IMPL__JOIN_COLUMNS;
-
-	/**
-	 * The feature id for the '<em><b>Optional</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	public static final int XML_ONE_TO_ONE_IMPL__OPTIONAL = OrmPackage.XML_ONE_TO_ONE_IMPL__OPTIONAL;
-
-	/**
-	 * The feature id for the '<em><b>Mapped By</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	public static final int XML_ONE_TO_ONE_IMPL__MAPPED_BY = OrmPackage.XML_ONE_TO_ONE_IMPL__MAPPED_BY;
-
-	/**
-	 * The feature id for the '<em><b>Primary Key Join Columns</b></em>' containment reference list.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	public static final int XML_ONE_TO_ONE_IMPL__PRIMARY_KEY_JOIN_COLUMNS = OrmPackage.XML_ONE_TO_ONE_IMPL__PRIMARY_KEY_JOIN_COLUMNS;
-
-	/**
-	 * The feature id for the '<em><b>Private Owned</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	public static final int XML_ONE_TO_ONE_IMPL__PRIVATE_OWNED = OrmPackage.XML_ONE_TO_ONE_IMPL_FEATURE_COUNT + 0;
-
-	/**
-	 * The feature id for the '<em><b>Join Fetch</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	public static final int XML_ONE_TO_ONE_IMPL__JOIN_FETCH = OrmPackage.XML_ONE_TO_ONE_IMPL_FEATURE_COUNT + 1;
-
-	/**
-	 * The feature id for the '<em><b>Access Methods</b></em>' containment reference.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	public static final int XML_ONE_TO_ONE_IMPL__ACCESS_METHODS = OrmPackage.XML_ONE_TO_ONE_IMPL_FEATURE_COUNT + 2;
-
-	/**
-	 * The feature id for the '<em><b>Properties</b></em>' containment reference list.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	public static final int XML_ONE_TO_ONE_IMPL__PROPERTIES = OrmPackage.XML_ONE_TO_ONE_IMPL_FEATURE_COUNT + 3;
-
-	/**
-	 * The number of structural features of the '<em>Xml One To One Impl</em>' class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	public static final int XML_ONE_TO_ONE_IMPL_FEATURE_COUNT = OrmPackage.XML_ONE_TO_ONE_IMPL_FEATURE_COUNT + 4;
-
-	/**
-	 * The feature id for the '<em><b>Name</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	public static final int XML_ONE_TO_MANY__NAME = OrmPackage.XML_ONE_TO_MANY__NAME;
-
-	/**
-	 * The feature id for the '<em><b>Target Entity</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	public static final int XML_ONE_TO_MANY__TARGET_ENTITY = OrmPackage.XML_ONE_TO_MANY__TARGET_ENTITY;
-
-	/**
-	 * The feature id for the '<em><b>Fetch</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	public static final int XML_ONE_TO_MANY__FETCH = OrmPackage.XML_ONE_TO_MANY__FETCH;
-
-	/**
-	 * The feature id for the '<em><b>Cascade</b></em>' containment reference.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	public static final int XML_ONE_TO_MANY__CASCADE = OrmPackage.XML_ONE_TO_MANY__CASCADE;
-
-	/**
-	 * The feature id for the '<em><b>Mapped By</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	public static final int XML_ONE_TO_MANY__MAPPED_BY = OrmPackage.XML_ONE_TO_MANY__MAPPED_BY;
-
-	/**
-	 * The feature id for the '<em><b>Join Table</b></em>' containment reference.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	public static final int XML_ONE_TO_MANY__JOIN_TABLE = OrmPackage.XML_ONE_TO_MANY__JOIN_TABLE;
-
-	/**
-	 * The feature id for the '<em><b>Order By</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	public static final int XML_ONE_TO_MANY__ORDER_BY = OrmPackage.XML_ONE_TO_MANY__ORDER_BY;
-
-	/**
-	 * The feature id for the '<em><b>Map Key</b></em>' containment reference.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	public static final int XML_ONE_TO_MANY__MAP_KEY = OrmPackage.XML_ONE_TO_MANY__MAP_KEY;
-
-	/**
-	 * The feature id for the '<em><b>Join Columns</b></em>' containment reference list.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	public static final int XML_ONE_TO_MANY__JOIN_COLUMNS = OrmPackage.XML_ONE_TO_MANY__JOIN_COLUMNS;
-
-	/**
-	 * The feature id for the '<em><b>Private Owned</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	public static final int XML_ONE_TO_MANY__PRIVATE_OWNED = OrmPackage.XML_ONE_TO_MANY_FEATURE_COUNT + 0;
-
-	/**
-	 * The feature id for the '<em><b>Join Fetch</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	public static final int XML_ONE_TO_MANY__JOIN_FETCH = OrmPackage.XML_ONE_TO_MANY_FEATURE_COUNT + 1;
-
-	/**
-	 * The feature id for the '<em><b>Access Methods</b></em>' containment reference.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	public static final int XML_ONE_TO_MANY__ACCESS_METHODS = OrmPackage.XML_ONE_TO_MANY_FEATURE_COUNT + 2;
-
-	/**
-	 * The feature id for the '<em><b>Properties</b></em>' containment reference list.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	public static final int XML_ONE_TO_MANY__PROPERTIES = OrmPackage.XML_ONE_TO_MANY_FEATURE_COUNT + 3;
-
-	/**
-	 * The number of structural features of the '<em>Xml One To Many</em>' class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	public static final int XML_ONE_TO_MANY_FEATURE_COUNT = OrmPackage.XML_ONE_TO_MANY_FEATURE_COUNT + 4;
-
-	/**
-	 * The feature id for the '<em><b>Name</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	public static final int XML_ONE_TO_MANY_IMPL__NAME = OrmPackage.XML_ONE_TO_MANY_IMPL__NAME;
-
-	/**
-	 * The feature id for the '<em><b>Target Entity</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	public static final int XML_ONE_TO_MANY_IMPL__TARGET_ENTITY = OrmPackage.XML_ONE_TO_MANY_IMPL__TARGET_ENTITY;
-
-	/**
-	 * The feature id for the '<em><b>Fetch</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	public static final int XML_ONE_TO_MANY_IMPL__FETCH = OrmPackage.XML_ONE_TO_MANY_IMPL__FETCH;
-
-	/**
-	 * The feature id for the '<em><b>Cascade</b></em>' containment reference.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	public static final int XML_ONE_TO_MANY_IMPL__CASCADE = OrmPackage.XML_ONE_TO_MANY_IMPL__CASCADE;
-
-	/**
-	 * The feature id for the '<em><b>Mapped By</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	public static final int XML_ONE_TO_MANY_IMPL__MAPPED_BY = OrmPackage.XML_ONE_TO_MANY_IMPL__MAPPED_BY;
-
-	/**
-	 * The feature id for the '<em><b>Join Table</b></em>' containment reference.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	public static final int XML_ONE_TO_MANY_IMPL__JOIN_TABLE = OrmPackage.XML_ONE_TO_MANY_IMPL__JOIN_TABLE;
-
-	/**
-	 * The feature id for the '<em><b>Order By</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	public static final int XML_ONE_TO_MANY_IMPL__ORDER_BY = OrmPackage.XML_ONE_TO_MANY_IMPL__ORDER_BY;
-
-	/**
-	 * The feature id for the '<em><b>Map Key</b></em>' containment reference.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	public static final int XML_ONE_TO_MANY_IMPL__MAP_KEY = OrmPackage.XML_ONE_TO_MANY_IMPL__MAP_KEY;
-
-	/**
-	 * The feature id for the '<em><b>Join Columns</b></em>' containment reference list.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	public static final int XML_ONE_TO_MANY_IMPL__JOIN_COLUMNS = OrmPackage.XML_ONE_TO_MANY_IMPL__JOIN_COLUMNS;
-
-	
-	/**
-	 * The feature id for the '<em><b>Private Owned</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	public static final int XML_ONE_TO_MANY_IMPL__PRIVATE_OWNED = OrmPackage.XML_ONE_TO_MANY_IMPL_FEATURE_COUNT + 0;
-
-	/**
-	 * The feature id for the '<em><b>Join Fetch</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	public static final int XML_ONE_TO_MANY_IMPL__JOIN_FETCH = OrmPackage.XML_ONE_TO_MANY_IMPL_FEATURE_COUNT + 1;
-
-	/**
-	 * The feature id for the '<em><b>Access Methods</b></em>' containment reference.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	public static final int XML_ONE_TO_MANY_IMPL__ACCESS_METHODS = OrmPackage.XML_ONE_TO_MANY_IMPL_FEATURE_COUNT + 2;
-
-	/**
-	 * The feature id for the '<em><b>Properties</b></em>' containment reference list.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	public static final int XML_ONE_TO_MANY_IMPL__PROPERTIES = OrmPackage.XML_ONE_TO_MANY_IMPL_FEATURE_COUNT + 3;
-
-	/**
-	 * The number of structural features of the '<em>Xml One To Many Impl</em>' class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	public static final int XML_ONE_TO_MANY_IMPL_FEATURE_COUNT = OrmPackage.XML_ONE_TO_MANY_IMPL_FEATURE_COUNT + 4;
-
-	/**
-	 * The feature id for the '<em><b>Name</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	public static final int XML_MANY_TO_ONE__NAME = OrmPackage.XML_MANY_TO_ONE__NAME;
-
-	/**
-	 * The feature id for the '<em><b>Target Entity</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	public static final int XML_MANY_TO_ONE__TARGET_ENTITY = OrmPackage.XML_MANY_TO_ONE__TARGET_ENTITY;
-
-	/**
-	 * The feature id for the '<em><b>Fetch</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	public static final int XML_MANY_TO_ONE__FETCH = OrmPackage.XML_MANY_TO_ONE__FETCH;
-
-	/**
-	 * The feature id for the '<em><b>Cascade</b></em>' containment reference.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	public static final int XML_MANY_TO_ONE__CASCADE = OrmPackage.XML_MANY_TO_ONE__CASCADE;
-
-	/**
-	 * The feature id for the '<em><b>Join Table</b></em>' containment reference.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	public static final int XML_MANY_TO_ONE__JOIN_TABLE = OrmPackage.XML_MANY_TO_ONE__JOIN_TABLE;
-
-	/**
-	 * The feature id for the '<em><b>Join Columns</b></em>' containment reference list.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	public static final int XML_MANY_TO_ONE__JOIN_COLUMNS = OrmPackage.XML_MANY_TO_ONE__JOIN_COLUMNS;
-
-	/**
-	 * The feature id for the '<em><b>Optional</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	public static final int XML_MANY_TO_ONE__OPTIONAL = OrmPackage.XML_MANY_TO_ONE__OPTIONAL;
-
-	/**
-	 * The feature id for the '<em><b>Join Fetch</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	public static final int XML_MANY_TO_ONE__JOIN_FETCH = OrmPackage.XML_MANY_TO_ONE_FEATURE_COUNT + 0;
-
-	/**
-	 * The feature id for the '<em><b>Access Methods</b></em>' containment reference.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	public static final int XML_MANY_TO_ONE__ACCESS_METHODS = OrmPackage.XML_MANY_TO_ONE_FEATURE_COUNT + 1;
-
-	/**
-	 * The feature id for the '<em><b>Properties</b></em>' containment reference list.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	public static final int XML_MANY_TO_ONE__PROPERTIES = OrmPackage.XML_MANY_TO_ONE_FEATURE_COUNT + 2;
-
-	/**
-	 * The number of structural features of the '<em>Xml Many To One</em>' class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	public static final int XML_MANY_TO_ONE_FEATURE_COUNT = OrmPackage.XML_MANY_TO_ONE_FEATURE_COUNT + 3;
-
-	/**
-	 * The feature id for the '<em><b>Name</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	public static final int XML_MANY_TO_ONE_IMPL__NAME = OrmPackage.XML_MANY_TO_ONE_IMPL__NAME;
-
-	/**
-	 * The feature id for the '<em><b>Target Entity</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	public static final int XML_MANY_TO_ONE_IMPL__TARGET_ENTITY = OrmPackage.XML_MANY_TO_ONE_IMPL__TARGET_ENTITY;
-
-	/**
-	 * The feature id for the '<em><b>Fetch</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	public static final int XML_MANY_TO_ONE_IMPL__FETCH = OrmPackage.XML_MANY_TO_ONE_IMPL__FETCH;
-
-	/**
-	 * The feature id for the '<em><b>Cascade</b></em>' containment reference.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	public static final int XML_MANY_TO_ONE_IMPL__CASCADE = OrmPackage.XML_MANY_TO_ONE_IMPL__CASCADE;
-
-	/**
-	 * The feature id for the '<em><b>Join Table</b></em>' containment reference.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	public static final int XML_MANY_TO_ONE_IMPL__JOIN_TABLE = OrmPackage.XML_MANY_TO_ONE_IMPL__JOIN_TABLE;
-
-	/**
-	 * The feature id for the '<em><b>Join Columns</b></em>' containment reference list.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	public static final int XML_MANY_TO_ONE_IMPL__JOIN_COLUMNS = OrmPackage.XML_MANY_TO_ONE_IMPL__JOIN_COLUMNS;
-
-	/**
-	 * The feature id for the '<em><b>Optional</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	public static final int XML_MANY_TO_ONE_IMPL__OPTIONAL = OrmPackage.XML_MANY_TO_ONE_IMPL__OPTIONAL;
-
-	/**
-	 * The feature id for the '<em><b>Join Fetch</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	public static final int XML_MANY_TO_ONE_IMPL__JOIN_FETCH = OrmPackage.XML_MANY_TO_ONE_IMPL_FEATURE_COUNT + 0;
-
-	/**
-	 * The feature id for the '<em><b>Access Methods</b></em>' containment reference.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	public static final int XML_MANY_TO_ONE_IMPL__ACCESS_METHODS = OrmPackage.XML_MANY_TO_ONE_IMPL_FEATURE_COUNT + 1;
-
-	/**
-	 * The feature id for the '<em><b>Properties</b></em>' containment reference list.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	public static final int XML_MANY_TO_ONE_IMPL__PROPERTIES = OrmPackage.XML_MANY_TO_ONE_IMPL_FEATURE_COUNT + 2;
-
-	/**
-	 * The number of structural features of the '<em>Xml Many To One Impl</em>' class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	public static final int XML_MANY_TO_ONE_IMPL_FEATURE_COUNT = OrmPackage.XML_MANY_TO_ONE_IMPL_FEATURE_COUNT + 3;
-
-	/**
-	 * The feature id for the '<em><b>Name</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	public static final int XML_MANY_TO_MANY__NAME = OrmPackage.XML_MANY_TO_MANY__NAME;
-
-	/**
-	 * The feature id for the '<em><b>Target Entity</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	public static final int XML_MANY_TO_MANY__TARGET_ENTITY = OrmPackage.XML_MANY_TO_MANY__TARGET_ENTITY;
-
-	/**
-	 * The feature id for the '<em><b>Fetch</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	public static final int XML_MANY_TO_MANY__FETCH = OrmPackage.XML_MANY_TO_MANY__FETCH;
-
-	/**
-	 * The feature id for the '<em><b>Cascade</b></em>' containment reference.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	public static final int XML_MANY_TO_MANY__CASCADE = OrmPackage.XML_MANY_TO_MANY__CASCADE;
-
-	/**
-	 * The feature id for the '<em><b>Mapped By</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	public static final int XML_MANY_TO_MANY__MAPPED_BY = OrmPackage.XML_MANY_TO_MANY__MAPPED_BY;
-
-	/**
-	 * The feature id for the '<em><b>Join Table</b></em>' containment reference.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	public static final int XML_MANY_TO_MANY__JOIN_TABLE = OrmPackage.XML_MANY_TO_MANY__JOIN_TABLE;
-
-	/**
-	 * The feature id for the '<em><b>Order By</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	public static final int XML_MANY_TO_MANY__ORDER_BY = OrmPackage.XML_MANY_TO_MANY__ORDER_BY;
-
-	/**
-	 * The feature id for the '<em><b>Map Key</b></em>' containment reference.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	public static final int XML_MANY_TO_MANY__MAP_KEY = OrmPackage.XML_MANY_TO_MANY__MAP_KEY;
-
-	/**
-	 * The feature id for the '<em><b>Join Fetch</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	public static final int XML_MANY_TO_MANY__JOIN_FETCH = OrmPackage.XML_MANY_TO_MANY_FEATURE_COUNT + 0;
-
-	/**
-	 * The feature id for the '<em><b>Access Methods</b></em>' containment reference.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	public static final int XML_MANY_TO_MANY__ACCESS_METHODS = OrmPackage.XML_MANY_TO_MANY_FEATURE_COUNT + 1;
-
-	/**
-	 * The feature id for the '<em><b>Properties</b></em>' containment reference list.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	public static final int XML_MANY_TO_MANY__PROPERTIES = OrmPackage.XML_MANY_TO_MANY_FEATURE_COUNT + 2;
-
-	/**
-	 * The number of structural features of the '<em>Xml Many To Many</em>' class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	public static final int XML_MANY_TO_MANY_FEATURE_COUNT = OrmPackage.XML_MANY_TO_MANY_FEATURE_COUNT + 3;
-
-	/**
-	 * The feature id for the '<em><b>Name</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	public static final int XML_MANY_TO_MANY_IMPL__NAME = OrmPackage.XML_MANY_TO_MANY_IMPL__NAME;
-
-	/**
-	 * The feature id for the '<em><b>Target Entity</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	public static final int XML_MANY_TO_MANY_IMPL__TARGET_ENTITY = OrmPackage.XML_MANY_TO_MANY_IMPL__TARGET_ENTITY;
-
-	/**
-	 * The feature id for the '<em><b>Fetch</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	public static final int XML_MANY_TO_MANY_IMPL__FETCH = OrmPackage.XML_MANY_TO_MANY_IMPL__FETCH;
-
-	/**
-	 * The feature id for the '<em><b>Cascade</b></em>' containment reference.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	public static final int XML_MANY_TO_MANY_IMPL__CASCADE = OrmPackage.XML_MANY_TO_MANY_IMPL__CASCADE;
-
-	/**
-	 * The feature id for the '<em><b>Mapped By</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	public static final int XML_MANY_TO_MANY_IMPL__MAPPED_BY = OrmPackage.XML_MANY_TO_MANY_IMPL__MAPPED_BY;
-
-	/**
-	 * The feature id for the '<em><b>Join Table</b></em>' containment reference.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	public static final int XML_MANY_TO_MANY_IMPL__JOIN_TABLE = OrmPackage.XML_MANY_TO_MANY_IMPL__JOIN_TABLE;
-
-	/**
-	 * The feature id for the '<em><b>Order By</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	public static final int XML_MANY_TO_MANY_IMPL__ORDER_BY = OrmPackage.XML_MANY_TO_MANY_IMPL__ORDER_BY;
-
-	/**
-	 * The feature id for the '<em><b>Map Key</b></em>' containment reference.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	public static final int XML_MANY_TO_MANY_IMPL__MAP_KEY = OrmPackage.XML_MANY_TO_MANY_IMPL__MAP_KEY;
-
-	/**
-	 * The feature id for the '<em><b>Join Fetch</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	public static final int XML_MANY_TO_MANY_IMPL__JOIN_FETCH = OrmPackage.XML_MANY_TO_MANY_IMPL_FEATURE_COUNT + 0;
-
-	/**
-	 * The feature id for the '<em><b>Access Methods</b></em>' containment reference.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	public static final int XML_MANY_TO_MANY_IMPL__ACCESS_METHODS = OrmPackage.XML_MANY_TO_MANY_IMPL_FEATURE_COUNT + 1;
-
-	/**
-	 * The feature id for the '<em><b>Properties</b></em>' containment reference list.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	public static final int XML_MANY_TO_MANY_IMPL__PROPERTIES = OrmPackage.XML_MANY_TO_MANY_IMPL_FEATURE_COUNT + 2;
-
-	/**
-	 * The number of structural features of the '<em>Xml Many To Many Impl</em>' class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	public static final int XML_MANY_TO_MANY_IMPL_FEATURE_COUNT = OrmPackage.XML_MANY_TO_MANY_IMPL_FEATURE_COUNT + 3;
-
-	/**
-	 * The feature id for the '<em><b>Name</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	public static final int XML_BASIC_COLLECTION__NAME = OrmPackage.XML_ATTRIBUTE_MAPPING__NAME;
-
-	/**
-	 * The feature id for the '<em><b>Access Methods</b></em>' containment reference.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	public static final int XML_BASIC_COLLECTION__ACCESS_METHODS = OrmPackage.XML_ATTRIBUTE_MAPPING_FEATURE_COUNT + 0;
-
-	/**
-	 * The feature id for the '<em><b>Properties</b></em>' containment reference list.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	public static final int XML_BASIC_COLLECTION__PROPERTIES = OrmPackage.XML_ATTRIBUTE_MAPPING_FEATURE_COUNT + 1;
-
-	/**
-	 * The number of structural features of the '<em>Xml Basic Collection</em>' class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	public static final int XML_BASIC_COLLECTION_FEATURE_COUNT = OrmPackage.XML_ATTRIBUTE_MAPPING_FEATURE_COUNT + 2;
-
-	/**
-	 * The feature id for the '<em><b>Name</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	public static final int XML_BASIC_COLLECTION_IMPL__NAME = OrmPackage.ABSTRACT_XML_ATTRIBUTE_MAPPING__NAME;
-
-	/**
-	 * The feature id for the '<em><b>Access Methods</b></em>' containment reference.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	public static final int XML_BASIC_COLLECTION_IMPL__ACCESS_METHODS = OrmPackage.ABSTRACT_XML_ATTRIBUTE_MAPPING_FEATURE_COUNT + 0;
-
-	/**
-	 * The feature id for the '<em><b>Properties</b></em>' containment reference list.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	public static final int XML_BASIC_COLLECTION_IMPL__PROPERTIES = OrmPackage.ABSTRACT_XML_ATTRIBUTE_MAPPING_FEATURE_COUNT + 1;
-
-	/**
-	 * The number of structural features of the '<em>Xml Basic Collection Impl</em>' class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	public static final int XML_BASIC_COLLECTION_IMPL_FEATURE_COUNT = OrmPackage.ABSTRACT_XML_ATTRIBUTE_MAPPING_FEATURE_COUNT + 2;
-
-	/**
-	 * The feature id for the '<em><b>Name</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	public static final int XML_BASIC_MAP__NAME = OrmPackage.XML_ATTRIBUTE_MAPPING__NAME;
-
-	/**
-	 * The feature id for the '<em><b>Access Methods</b></em>' containment reference.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	public static final int XML_BASIC_MAP__ACCESS_METHODS = OrmPackage.XML_ATTRIBUTE_MAPPING_FEATURE_COUNT + 0;
-
-	/**
-	 * The feature id for the '<em><b>Properties</b></em>' containment reference list.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	public static final int XML_BASIC_MAP__PROPERTIES = OrmPackage.XML_ATTRIBUTE_MAPPING_FEATURE_COUNT + 1;
-
-	/**
-	 * The number of structural features of the '<em>Xml Basic Map</em>' class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	public static final int XML_BASIC_MAP_FEATURE_COUNT = OrmPackage.XML_ATTRIBUTE_MAPPING_FEATURE_COUNT + 2;
-
-	/**
-	 * The feature id for the '<em><b>Name</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	public static final int XML_BASIC_MAP_IMPL__NAME = OrmPackage.ABSTRACT_XML_ATTRIBUTE_MAPPING__NAME;
-
-	/**
-	 * The feature id for the '<em><b>Access Methods</b></em>' containment reference.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	public static final int XML_BASIC_MAP_IMPL__ACCESS_METHODS = OrmPackage.ABSTRACT_XML_ATTRIBUTE_MAPPING_FEATURE_COUNT + 0;
-
-	/**
-	 * The feature id for the '<em><b>Properties</b></em>' containment reference list.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	public static final int XML_BASIC_MAP_IMPL__PROPERTIES = OrmPackage.ABSTRACT_XML_ATTRIBUTE_MAPPING_FEATURE_COUNT + 1;
-
-	/**
-	 * The number of structural features of the '<em>Xml Basic Map Impl</em>' class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	public static final int XML_BASIC_MAP_IMPL_FEATURE_COUNT = OrmPackage.ABSTRACT_XML_ATTRIBUTE_MAPPING_FEATURE_COUNT + 2;
-
-	/**
-	 * The feature id for the '<em><b>Name</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	public static final int XML_TRANSFORMATION__NAME = OrmPackage.XML_ATTRIBUTE_MAPPING__NAME;
-
-	/**
-	 * The feature id for the '<em><b>Access Methods</b></em>' containment reference.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	public static final int XML_TRANSFORMATION__ACCESS_METHODS = OrmPackage.XML_ATTRIBUTE_MAPPING_FEATURE_COUNT + 0;
-
-	/**
-	 * The feature id for the '<em><b>Properties</b></em>' containment reference list.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	public static final int XML_TRANSFORMATION__PROPERTIES = OrmPackage.XML_ATTRIBUTE_MAPPING_FEATURE_COUNT + 1;
-
-	/**
-	 * The number of structural features of the '<em>Xml Transformation</em>' class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	public static final int XML_TRANSFORMATION_FEATURE_COUNT = OrmPackage.XML_ATTRIBUTE_MAPPING_FEATURE_COUNT + 2;
-
-	/**
-	 * The feature id for the '<em><b>Name</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	public static final int XML_TRANSFORMATION_IMPL__NAME = OrmPackage.ABSTRACT_XML_ATTRIBUTE_MAPPING__NAME;
-
-	/**
-	 * The feature id for the '<em><b>Access Methods</b></em>' containment reference.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	public static final int XML_TRANSFORMATION_IMPL__ACCESS_METHODS = OrmPackage.ABSTRACT_XML_ATTRIBUTE_MAPPING_FEATURE_COUNT + 0;
-
-	/**
-	 * The feature id for the '<em><b>Properties</b></em>' containment reference list.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	public static final int XML_TRANSFORMATION_IMPL__PROPERTIES = OrmPackage.ABSTRACT_XML_ATTRIBUTE_MAPPING_FEATURE_COUNT + 1;
-
-	/**
-	 * The number of structural features of the '<em>Xml Transformation Impl</em>' class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	public static final int XML_TRANSFORMATION_IMPL_FEATURE_COUNT = OrmPackage.ABSTRACT_XML_ATTRIBUTE_MAPPING_FEATURE_COUNT + 2;
-
-	/**
-	 * The meta object id for the '{@link org.eclipse.jpt.eclipselink.core.resource.orm.XmlVariableOneToOne <em>Xml Variable One To One</em>}' class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see org.eclipse.jpt.eclipselink.core.resource.orm.XmlVariableOneToOne
-	 * @see org.eclipse.jpt.eclipselink.core.resource.orm.EclipseLinkOrmPackage#getXmlVariableOneToOne()
-	 * @generated
-	 */
-	public static final int XML_VARIABLE_ONE_TO_ONE = 63;
-
-	/**
-	 * The feature id for the '<em><b>Name</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	public static final int XML_VARIABLE_ONE_TO_ONE__NAME = OrmPackage.XML_ATTRIBUTE_MAPPING__NAME;
-
-	/**
-	 * The feature id for the '<em><b>Access Methods</b></em>' containment reference.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	public static final int XML_VARIABLE_ONE_TO_ONE__ACCESS_METHODS = OrmPackage.XML_ATTRIBUTE_MAPPING_FEATURE_COUNT + 0;
-
-	/**
-	 * The feature id for the '<em><b>Properties</b></em>' containment reference list.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	public static final int XML_VARIABLE_ONE_TO_ONE__PROPERTIES = OrmPackage.XML_ATTRIBUTE_MAPPING_FEATURE_COUNT + 1;
-
-	/**
-	 * The number of structural features of the '<em>Xml Variable One To One</em>' class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	public static final int XML_VARIABLE_ONE_TO_ONE_FEATURE_COUNT = OrmPackage.XML_ATTRIBUTE_MAPPING_FEATURE_COUNT + 2;
-
-	/**
-	 * The meta object id for the '{@link org.eclipse.jpt.eclipselink.core.resource.orm.XmlVariableOneToOneImpl <em>Xml Variable One To One Impl</em>}' class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see org.eclipse.jpt.eclipselink.core.resource.orm.XmlVariableOneToOneImpl
-	 * @see org.eclipse.jpt.eclipselink.core.resource.orm.EclipseLinkOrmPackage#getXmlVariableOneToOneImpl()
-	 * @generated
-	 */
-	public static final int XML_VARIABLE_ONE_TO_ONE_IMPL = 64;
-
-	/**
-	 * The feature id for the '<em><b>Name</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	public static final int XML_VARIABLE_ONE_TO_ONE_IMPL__NAME = OrmPackage.ABSTRACT_XML_ATTRIBUTE_MAPPING__NAME;
-
-	/**
-	 * The feature id for the '<em><b>Access Methods</b></em>' containment reference.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	public static final int XML_VARIABLE_ONE_TO_ONE_IMPL__ACCESS_METHODS = OrmPackage.ABSTRACT_XML_ATTRIBUTE_MAPPING_FEATURE_COUNT + 0;
-
-	/**
-	 * The feature id for the '<em><b>Properties</b></em>' containment reference list.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	public static final int XML_VARIABLE_ONE_TO_ONE_IMPL__PROPERTIES = OrmPackage.ABSTRACT_XML_ATTRIBUTE_MAPPING_FEATURE_COUNT + 1;
-
-	/**
-	 * The number of structural features of the '<em>Xml Variable One To One Impl</em>' class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	public static final int XML_VARIABLE_ONE_TO_ONE_IMPL_FEATURE_COUNT = OrmPackage.ABSTRACT_XML_ATTRIBUTE_MAPPING_FEATURE_COUNT + 2;
-
-	/**
-	 * The feature id for the '<em><b>Ids</b></em>' containment reference list.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	public static final int ATTRIBUTES__IDS = OrmPackage.ATTRIBUTES__IDS;
-
-	/**
-	 * The feature id for the '<em><b>Embedded Ids</b></em>' containment reference list.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	public static final int ATTRIBUTES__EMBEDDED_IDS = OrmPackage.ATTRIBUTES__EMBEDDED_IDS;
-
-	/**
-	 * The feature id for the '<em><b>Basics</b></em>' containment reference list.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	public static final int ATTRIBUTES__BASICS = OrmPackage.ATTRIBUTES__BASICS;
-
-	/**
-	 * The feature id for the '<em><b>Versions</b></em>' containment reference list.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	public static final int ATTRIBUTES__VERSIONS = OrmPackage.ATTRIBUTES__VERSIONS;
-
-	/**
-	 * The feature id for the '<em><b>Many To Ones</b></em>' containment reference list.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	public static final int ATTRIBUTES__MANY_TO_ONES = OrmPackage.ATTRIBUTES__MANY_TO_ONES;
-
-	/**
-	 * The feature id for the '<em><b>One To Manys</b></em>' containment reference list.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	public static final int ATTRIBUTES__ONE_TO_MANYS = OrmPackage.ATTRIBUTES__ONE_TO_MANYS;
-
-	/**
-	 * The feature id for the '<em><b>One To Ones</b></em>' containment reference list.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	public static final int ATTRIBUTES__ONE_TO_ONES = OrmPackage.ATTRIBUTES__ONE_TO_ONES;
-
-	/**
-	 * The feature id for the '<em><b>Many To Manys</b></em>' containment reference list.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	public static final int ATTRIBUTES__MANY_TO_MANYS = OrmPackage.ATTRIBUTES__MANY_TO_MANYS;
-
-	/**
-	 * The feature id for the '<em><b>Embeddeds</b></em>' containment reference list.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	public static final int ATTRIBUTES__EMBEDDEDS = OrmPackage.ATTRIBUTES__EMBEDDEDS;
-
-	/**
-	 * The feature id for the '<em><b>Transients</b></em>' containment reference list.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	public static final int ATTRIBUTES__TRANSIENTS = OrmPackage.ATTRIBUTES__TRANSIENTS;
-
-	/**
-	 * The feature id for the '<em><b>Basic Collections</b></em>' containment reference list.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	public static final int ATTRIBUTES__BASIC_COLLECTIONS = OrmPackage.ATTRIBUTES_FEATURE_COUNT + 0;
-
-	/**
-	 * The feature id for the '<em><b>Basic Maps</b></em>' containment reference list.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	public static final int ATTRIBUTES__BASIC_MAPS = OrmPackage.ATTRIBUTES_FEATURE_COUNT + 1;
-
-	/**
-	 * The feature id for the '<em><b>Transformations</b></em>' containment reference list.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	public static final int ATTRIBUTES__TRANSFORMATIONS = OrmPackage.ATTRIBUTES_FEATURE_COUNT + 2;
-
-	/**
-	 * The feature id for the '<em><b>Variable One To Ones</b></em>' containment reference list.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	public static final int ATTRIBUTES__VARIABLE_ONE_TO_ONES = OrmPackage.ATTRIBUTES_FEATURE_COUNT + 3;
-
-	/**
-	 * The number of structural features of the '<em>Attributes</em>' class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	public static final int ATTRIBUTES_FEATURE_COUNT = OrmPackage.ATTRIBUTES_FEATURE_COUNT + 4;
-
-	/**
-	 * The meta object id for the '{@link org.eclipse.jpt.eclipselink.core.resource.orm.XmlDirection <em>Xml Direction</em>}' enum.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see org.eclipse.jpt.eclipselink.core.resource.orm.XmlDirection
-	 * @see org.eclipse.jpt.eclipselink.core.resource.orm.EclipseLinkOrmPackage#getXmlDirection()
-	 * @generated
-	 */
-	public static final int XML_DIRECTION = 66;
-
-	/**
-	 * The meta object id for the '{@link org.eclipse.jpt.eclipselink.core.resource.orm.XmlChangeTrackingType <em>Xml Change Tracking Type</em>}' enum.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see org.eclipse.jpt.eclipselink.core.resource.orm.XmlChangeTrackingType
-	 * @see org.eclipse.jpt.eclipselink.core.resource.orm.EclipseLinkOrmPackage#getXmlChangeTrackingType()
-	 * @generated
-	 */
-	public static final int XML_CHANGE_TRACKING_TYPE = 67;
-
-	/**
-	 * The meta object id for the '{@link org.eclipse.jpt.eclipselink.core.resource.orm.CacheType <em>Cache Type</em>}' enum.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see org.eclipse.jpt.eclipselink.core.resource.orm.CacheType
-	 * @see org.eclipse.jpt.eclipselink.core.resource.orm.EclipseLinkOrmPackage#getCacheType()
-	 * @generated
-	 */
-	public static final int CACHE_TYPE = 68;
-
-	/**
-	 * The meta object id for the '{@link org.eclipse.jpt.eclipselink.core.resource.orm.CacheCoordinationType <em>Cache Coordination Type</em>}' enum.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see org.eclipse.jpt.eclipselink.core.resource.orm.CacheCoordinationType
-	 * @see org.eclipse.jpt.eclipselink.core.resource.orm.EclipseLinkOrmPackage#getCacheCoordinationType()
-	 * @generated
-	 */
-	public static final int CACHE_COORDINATION_TYPE = 69;
-
-	/**
-	 * The meta object id for the '{@link org.eclipse.jpt.eclipselink.core.resource.orm.XmlJoinFetchType <em>Xml Join Fetch Type</em>}' enum.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see org.eclipse.jpt.eclipselink.core.resource.orm.XmlJoinFetchType
-	 * @see org.eclipse.jpt.eclipselink.core.resource.orm.EclipseLinkOrmPackage#getXmlJoinFetchType()
-	 * @generated
-	 */
-	public static final int XML_JOIN_FETCH_TYPE = 72;
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	private EClass xmlNamedConverterEClass = null;
-
-	/**
-	 * The meta object id for the '{@link org.eclipse.jpt.eclipselink.core.resource.orm.ExistenceType <em>Existence Type</em>}' enum.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see org.eclipse.jpt.eclipselink.core.resource.orm.ExistenceType
-	 * @see org.eclipse.jpt.eclipselink.core.resource.orm.EclipseLinkOrmPackage#getExistenceType()
-	 * @generated
-	 */
-	public static final int EXISTENCE_TYPE = 70;
-
-	/**
-	 * The meta object id for the '{@link org.eclipse.jpt.eclipselink.core.resource.orm.XmlOptimisticLockingType <em>Xml Optimistic Locking Type</em>}' enum.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see org.eclipse.jpt.eclipselink.core.resource.orm.XmlOptimisticLockingType
-	 * @see org.eclipse.jpt.eclipselink.core.resource.orm.EclipseLinkOrmPackage#getXmlOptimisticLockingType()
-	 * @generated
-	 */
-	public static final int XML_OPTIMISTIC_LOCKING_TYPE = 71;
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	private EClass xmlCustomizerEClass = null;
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	private EClass xmlCustomizerHolderEClass = null;
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	private EClass xmlChangeTrackingEClass = null;
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	private EClass xmlChangeTrackingHolderEClass = null;
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	private EClass xmlCopyPolicyEClass = null;
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	private EClass xmlInstantiationPolicyEClass = null;
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	private EClass xmlCloneCopyPolicyEClass = null;
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	private EClass xmlConvertersHolderEClass = null;
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	private EClass xmlStoredProcedureParameterEClass = null;
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	private EClass xmlNamedStoredProcedureQueryEClass = null;
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	private EClass xmlEntityMappingsEClass = null;
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	private EClass xmlPersistenceUnitMetadataEClass = null;
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	private EClass xmlEmbeddableEClass = null;
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	private EClass xmlReadOnlyEClass = null;
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	private EClass xmlTimeOfDayEClass = null;
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	private EClass xmlCacheEClass = null;
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	private EClass xmlCacheHolderEClass = null;
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	private EClass xmlOptimisticLockingEClass = null;
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	private EClass xmlEntityEClass = null;
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	private EClass xmlMappedSuperclassEClass = null;
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	private EClass xmlMutableEClass = null;
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	private EClass xmlConvertibleMappingEClass = null;
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	private EClass xmlAccessMethodsEClass = null;
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	private EClass xmlAccessMethodsHolderEClass = null;
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	private EClass xmlIdEClass = null;
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	private EClass xmlIdImplEClass = null;
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	private EClass xmlEmbeddedIdEClass = null;
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	private EClass xmlEmbeddedIdImplEClass = null;
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	private EClass xmlEmbeddedEClass = null;
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	private EClass xmlEmbeddedImplEClass = null;
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	private EClass xmlBasicEClass = null;
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	private EClass xmlBasicImplEClass = null;
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	private EClass xmlVersionEClass = null;
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	private EClass xmlVersionImplEClass = null;
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	private EClass xmlPrivateOwnedEClass = null;
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	private EClass xmlJoinFetchEClass = null;
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	private EClass xmlOneToOneEClass = null;
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	private EClass xmlOneToOneImplEClass = null;
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	private EClass xmlOneToManyEClass = null;
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	private EClass xmlOneToManyImplEClass = null;
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	private EClass xmlManyToOneEClass = null;
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	private EClass xmlManyToOneImplEClass = null;
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	private EClass xmlManyToManyEClass = null;
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	private EClass xmlManyToManyImplEClass = null;
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	private EClass attributesEClass = null;
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	private EClass xmlBasicCollectionEClass = null;
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	private EClass xmlBasicCollectionImplEClass = null;
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	private EClass xmlBasicMapEClass = null;
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	private EClass xmlBasicMapImplEClass = null;
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	private EClass xmlTransformationEClass = null;
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	private EClass xmlTransformationImplEClass = null;
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	private EClass xmlPropertyEClass = null;
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	private EClass xmlVariableOneToOneEClass = null;
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	private EClass xmlVariableOneToOneImplEClass = null;
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	private EEnum xmlDirectionEEnum = null;
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	private EEnum xmlChangeTrackingTypeEEnum = null;
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	private EClass xmlConverterEClass = null;
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	private EClass xmlConverterImplEClass = null;
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	private EClass xmlTypeConverterEClass = null;
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	private EClass xmlTypeConverterImplEClass = null;
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	private EClass xmlConversionValueEClass = null;
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	private EClass xmlConversionValueImplEClass = null;
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	private EClass xmlObjectTypeConverterEClass = null;
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	private EClass xmlObjectTypeConverterImplEClass = null;
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	private EClass xmlStructConverterEClass = null;
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	private EClass xmlStructConverterImplEClass = null;
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	private EClass xmlConverterHolderEClass = null;
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	private EEnum cacheTypeEEnum = null;
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	private EEnum cacheCoordinationTypeEEnum = null;
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	private EEnum xmlJoinFetchTypeEEnum = null;
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	private EEnum existenceTypeEEnum = null;
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	private EEnum xmlOptimisticLockingTypeEEnum = null;
-
-	/**
-	 * Creates an instance of the model <b>Package</b>, registered with
-	 * {@link org.eclipse.emf.ecore.EPackage.Registry EPackage.Registry} by the package
-	 * package URI value.
-	 * <p>Note: the correct way to create the package is via the static
-	 * factory method {@link #init init()}, which also performs
-	 * initialization of the package, or returns the registered package,
-	 * if one already exists.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see org.eclipse.emf.ecore.EPackage.Registry
-	 * @see org.eclipse.jpt.eclipselink.core.resource.orm.EclipseLinkOrmPackage#eNS_URI
-	 * @see #init()
-	 * @generated
-	 */
-	private EclipseLinkOrmPackage()
-	{
-		super(eNS_URI, EclipseLinkOrmFactory.eINSTANCE);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	private static boolean isInited = false;
-
-	/**
-	 * Creates, registers, and initializes the <b>Package</b> for this
-	 * model, and for any others upon which it depends.  Simple
-	 * dependencies are satisfied by calling this method on all
-	 * dependent packages before doing anything else.  This method drives
-	 * initialization for interdependent packages directly, in parallel
-	 * with this package, itself.
-	 * <p>Of this package and its interdependencies, all packages which
-	 * have not yet been registered by their URI values are first created
-	 * and registered.  The packages are then initialized in two steps:
-	 * meta-model objects for all of the packages are created before any
-	 * are initialized, since one package's meta-model objects may refer to
-	 * those of another.
-	 * <p>Invocation of this method will not affect any packages that have
-	 * already been initialized.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see #eNS_URI
-	 * @see #createPackageContents()
-	 * @see #initializePackageContents()
-	 * @generated
-	 */
-	public static EclipseLinkOrmPackage init()
-	{
-		if (isInited) return (EclipseLinkOrmPackage)EPackage.Registry.INSTANCE.getEPackage(EclipseLinkOrmPackage.eNS_URI);
-
-		// Obtain or create and register package
-		EclipseLinkOrmPackage theEclipseLinkOrmPackage = (EclipseLinkOrmPackage)(EPackage.Registry.INSTANCE.getEPackage(eNS_URI) instanceof EclipseLinkOrmPackage ? EPackage.Registry.INSTANCE.getEPackage(eNS_URI) : new EclipseLinkOrmPackage());
-
-		isInited = true;
-
-		// Initialize simple dependencies
-		OrmPackage.eINSTANCE.eClass();
-		XMLTypePackage.eINSTANCE.eClass();
-
-		// Create package meta-data objects
-		theEclipseLinkOrmPackage.createPackageContents();
-
-		// Initialize created meta-data
-		theEclipseLinkOrmPackage.initializePackageContents();
-
-		// Mark meta-data to indicate it can't be changed
-		theEclipseLinkOrmPackage.freeze();
-
-		return theEclipseLinkOrmPackage;
-	}
-
-
-	/**
-	 * Returns the meta object for class '{@link org.eclipse.jpt.eclipselink.core.resource.orm.XmlNamedConverter <em>Xml Named Converter</em>}'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return the meta object for class '<em>Xml Named Converter</em>'.
-	 * @see org.eclipse.jpt.eclipselink.core.resource.orm.XmlNamedConverter
-	 * @generated
-	 */
-	public EClass getXmlNamedConverter()
-	{
-		return xmlNamedConverterEClass;
-	}
-
-
-	/**
-	 * Returns the meta object for the attribute '{@link org.eclipse.jpt.eclipselink.core.resource.orm.XmlNamedConverter#getName <em>Name</em>}'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return the meta object for the attribute '<em>Name</em>'.
-	 * @see org.eclipse.jpt.eclipselink.core.resource.orm.XmlNamedConverter#getName()
-	 * @see #getXmlNamedConverter()
-	 * @generated
-	 */
-	public EAttribute getXmlNamedConverter_Name()
-	{
-		return (EAttribute)xmlNamedConverterEClass.getEStructuralFeatures().get(0);
-	}
-
-
-	/**
-	 * Returns the meta object for class '{@link org.eclipse.jpt.eclipselink.core.resource.orm.XmlCustomizer <em>Xml Customizer</em>}'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return the meta object for class '<em>Xml Customizer</em>'.
-	 * @see org.eclipse.jpt.eclipselink.core.resource.orm.XmlCustomizer
-	 * @generated
-	 */
-	public EClass getXmlCustomizer()
-	{
-		return xmlCustomizerEClass;
-	}
-
-	/**
-	 * Returns the meta object for the attribute '{@link org.eclipse.jpt.eclipselink.core.resource.orm.XmlCustomizer#getCustomizerClassName <em>Customizer Class Name</em>}'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return the meta object for the attribute '<em>Customizer Class Name</em>'.
-	 * @see org.eclipse.jpt.eclipselink.core.resource.orm.XmlCustomizer#getCustomizerClassName()
-	 * @see #getXmlCustomizer()
-	 * @generated
-	 */
-	public EAttribute getXmlCustomizer_CustomizerClassName()
-	{
-		return (EAttribute)xmlCustomizerEClass.getEStructuralFeatures().get(0);
-	}
-
-	/**
-	 * Returns the meta object for class '{@link org.eclipse.jpt.eclipselink.core.resource.orm.XmlCustomizerHolder <em>Xml Customizer Holder</em>}'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return the meta object for class '<em>Xml Customizer Holder</em>'.
-	 * @see org.eclipse.jpt.eclipselink.core.resource.orm.XmlCustomizerHolder
-	 * @generated
-	 */
-	public EClass getXmlCustomizerHolder()
-	{
-		return xmlCustomizerHolderEClass;
-	}
-
-	/**
-	 * Returns the meta object for the containment reference '{@link org.eclipse.jpt.eclipselink.core.resource.orm.XmlCustomizerHolder#getCustomizer <em>Customizer</em>}'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return the meta object for the containment reference '<em>Customizer</em>'.
-	 * @see org.eclipse.jpt.eclipselink.core.resource.orm.XmlCustomizerHolder#getCustomizer()
-	 * @see #getXmlCustomizerHolder()
-	 * @generated
-	 */
-	public EReference getXmlCustomizerHolder_Customizer()
-	{
-		return (EReference)xmlCustomizerHolderEClass.getEStructuralFeatures().get(0);
-	}
-
-	/**
-	 * Returns the meta object for class '{@link org.eclipse.jpt.eclipselink.core.resource.orm.XmlChangeTracking <em>Xml Change Tracking</em>}'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return the meta object for class '<em>Xml Change Tracking</em>'.
-	 * @see org.eclipse.jpt.eclipselink.core.resource.orm.XmlChangeTracking
-	 * @generated
-	 */
-	public EClass getXmlChangeTracking()
-	{
-		return xmlChangeTrackingEClass;
-	}
-
-
-	/**
-	 * Returns the meta object for the attribute '{@link org.eclipse.jpt.eclipselink.core.resource.orm.XmlChangeTracking#getType <em>Type</em>}'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return the meta object for the attribute '<em>Type</em>'.
-	 * @see org.eclipse.jpt.eclipselink.core.resource.orm.XmlChangeTracking#getType()
-	 * @see #getXmlChangeTracking()
-	 * @generated
-	 */
-	public EAttribute getXmlChangeTracking_Type()
-	{
-		return (EAttribute)xmlChangeTrackingEClass.getEStructuralFeatures().get(0);
-	}
-
-
-	/**
-	 * Returns the meta object for class '{@link org.eclipse.jpt.eclipselink.core.resource.orm.XmlChangeTrackingHolder <em>Xml Change Tracking Holder</em>}'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return the meta object for class '<em>Xml Change Tracking Holder</em>'.
-	 * @see org.eclipse.jpt.eclipselink.core.resource.orm.XmlChangeTrackingHolder
-	 * @generated
-	 */
-	public EClass getXmlChangeTrackingHolder()
-	{
-		return xmlChangeTrackingHolderEClass;
-	}
-
-
-	/**
-	 * Returns the meta object for the containment reference '{@link org.eclipse.jpt.eclipselink.core.resource.orm.XmlChangeTrackingHolder#getChangeTracking <em>Change Tracking</em>}'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return the meta object for the containment reference '<em>Change Tracking</em>'.
-	 * @see org.eclipse.jpt.eclipselink.core.resource.orm.XmlChangeTrackingHolder#getChangeTracking()
-	 * @see #getXmlChangeTrackingHolder()
-	 * @generated
-	 */
-	public EReference getXmlChangeTrackingHolder_ChangeTracking()
-	{
-		return (EReference)xmlChangeTrackingHolderEClass.getEStructuralFeatures().get(0);
-	}
-
-
-	/**
-	 * Returns the meta object for class '{@link org.eclipse.jpt.eclipselink.core.resource.orm.XmlCopyPolicy <em>Xml Copy Policy</em>}'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return the meta object for class '<em>Xml Copy Policy</em>'.
-	 * @see org.eclipse.jpt.eclipselink.core.resource.orm.XmlCopyPolicy
-	 * @generated
-	 */
-	public EClass getXmlCopyPolicy()
-	{
-		return xmlCopyPolicyEClass;
-	}
-
-
-	/**
-	 * Returns the meta object for the attribute '{@link org.eclipse.jpt.eclipselink.core.resource.orm.XmlCopyPolicy#getClass_ <em>Class</em>}'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return the meta object for the attribute '<em>Class</em>'.
-	 * @see org.eclipse.jpt.eclipselink.core.resource.orm.XmlCopyPolicy#getClass_()
-	 * @see #getXmlCopyPolicy()
-	 * @generated
-	 */
-	public EAttribute getXmlCopyPolicy_Class()
-	{
-		return (EAttribute)xmlCopyPolicyEClass.getEStructuralFeatures().get(0);
-	}
-
-
-	/**
-	 * Returns the meta object for class '{@link org.eclipse.jpt.eclipselink.core.resource.orm.XmlInstantiationPolicy <em>Xml Instantiation Policy</em>}'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return the meta object for class '<em>Xml Instantiation Policy</em>'.
-	 * @see org.eclipse.jpt.eclipselink.core.resource.orm.XmlInstantiationPolicy
-	 * @generated
-	 */
-	public EClass getXmlInstantiationPolicy()
-	{
-		return xmlInstantiationPolicyEClass;
-	}
-
-
-	/**
-	 * Returns the meta object for class '{@link org.eclipse.jpt.eclipselink.core.resource.orm.XmlCloneCopyPolicy <em>Xml Clone Copy Policy</em>}'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return the meta object for class '<em>Xml Clone Copy Policy</em>'.
-	 * @see org.eclipse.jpt.eclipselink.core.resource.orm.XmlCloneCopyPolicy
-	 * @generated
-	 */
-	public EClass getXmlCloneCopyPolicy()
-	{
-		return xmlCloneCopyPolicyEClass;
-	}
-
-
-	/**
-	 * Returns the meta object for the attribute '{@link org.eclipse.jpt.eclipselink.core.resource.orm.XmlCloneCopyPolicy#getMethod <em>Method</em>}'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return the meta object for the attribute '<em>Method</em>'.
-	 * @see org.eclipse.jpt.eclipselink.core.resource.orm.XmlCloneCopyPolicy#getMethod()
-	 * @see #getXmlCloneCopyPolicy()
-	 * @generated
-	 */
-	public EAttribute getXmlCloneCopyPolicy_Method()
-	{
-		return (EAttribute)xmlCloneCopyPolicyEClass.getEStructuralFeatures().get(0);
-	}
-
-
-	/**
-	 * Returns the meta object for the attribute '{@link org.eclipse.jpt.eclipselink.core.resource.orm.XmlCloneCopyPolicy#getWorkingCopyMethod <em>Working Copy Method</em>}'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return the meta object for the attribute '<em>Working Copy Method</em>'.
-	 * @see org.eclipse.jpt.eclipselink.core.resource.orm.XmlCloneCopyPolicy#getWorkingCopyMethod()
-	 * @see #getXmlCloneCopyPolicy()
-	 * @generated
-	 */
-	public EAttribute getXmlCloneCopyPolicy_WorkingCopyMethod()
-	{
-		return (EAttribute)xmlCloneCopyPolicyEClass.getEStructuralFeatures().get(1);
-	}
-
-
-	/**
-	 * Returns the meta object for class '{@link org.eclipse.jpt.eclipselink.core.resource.orm.XmlConvertersHolder <em>Xml Converters Holder</em>}'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return the meta object for class '<em>Xml Converters Holder</em>'.
-	 * @see org.eclipse.jpt.eclipselink.core.resource.orm.XmlConvertersHolder
-	 * @generated
-	 */
-	public EClass getXmlConvertersHolder()
-	{
-		return xmlConvertersHolderEClass;
-	}
-
-
-	/**
-	 * Returns the meta object for the containment reference list '{@link org.eclipse.jpt.eclipselink.core.resource.orm.XmlConvertersHolder#getConverters <em>Converters</em>}'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return the meta object for the containment reference list '<em>Converters</em>'.
-	 * @see org.eclipse.jpt.eclipselink.core.resource.orm.XmlConvertersHolder#getConverters()
-	 * @see #getXmlConvertersHolder()
-	 * @generated
-	 */
-	public EReference getXmlConvertersHolder_Converters()
-	{
-		return (EReference)xmlConvertersHolderEClass.getEStructuralFeatures().get(0);
-	}
-
-
-	/**
-	 * Returns the meta object for the containment reference list '{@link org.eclipse.jpt.eclipselink.core.resource.orm.XmlConvertersHolder#getTypeConverters <em>Type Converters</em>}'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return the meta object for the containment reference list '<em>Type Converters</em>'.
-	 * @see org.eclipse.jpt.eclipselink.core.resource.orm.XmlConvertersHolder#getTypeConverters()
-	 * @see #getXmlConvertersHolder()
-	 * @generated
-	 */
-	public EReference getXmlConvertersHolder_TypeConverters()
-	{
-		return (EReference)xmlConvertersHolderEClass.getEStructuralFeatures().get(1);
-	}
-
-
-	/**
-	 * Returns the meta object for the containment reference list '{@link org.eclipse.jpt.eclipselink.core.resource.orm.XmlConvertersHolder#getObjectTypeConverters <em>Object Type Converters</em>}'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return the meta object for the containment reference list '<em>Object Type Converters</em>'.
-	 * @see org.eclipse.jpt.eclipselink.core.resource.orm.XmlConvertersHolder#getObjectTypeConverters()
-	 * @see #getXmlConvertersHolder()
-	 * @generated
-	 */
-	public EReference getXmlConvertersHolder_ObjectTypeConverters()
-	{
-		return (EReference)xmlConvertersHolderEClass.getEStructuralFeatures().get(2);
-	}
-
-
-	/**
-	 * Returns the meta object for the containment reference list '{@link org.eclipse.jpt.eclipselink.core.resource.orm.XmlConvertersHolder#getStructConverters <em>Struct Converters</em>}'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return the meta object for the containment reference list '<em>Struct Converters</em>'.
-	 * @see org.eclipse.jpt.eclipselink.core.resource.orm.XmlConvertersHolder#getStructConverters()
-	 * @see #getXmlConvertersHolder()
-	 * @generated
-	 */
-	public EReference getXmlConvertersHolder_StructConverters()
-	{
-		return (EReference)xmlConvertersHolderEClass.getEStructuralFeatures().get(3);
-	}
-
-
-	/**
-	 * Returns the meta object for class '{@link org.eclipse.jpt.eclipselink.core.resource.orm.XmlStoredProcedureParameter <em>Xml Stored Procedure Parameter</em>}'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return the meta object for class '<em>Xml Stored Procedure Parameter</em>'.
-	 * @see org.eclipse.jpt.eclipselink.core.resource.orm.XmlStoredProcedureParameter
-	 * @generated
-	 */
-	public EClass getXmlStoredProcedureParameter()
-	{
-		return xmlStoredProcedureParameterEClass;
-	}
-
-
-	/**
-	 * Returns the meta object for the attribute '{@link org.eclipse.jpt.eclipselink.core.resource.orm.XmlStoredProcedureParameter#getDirection <em>Direction</em>}'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return the meta object for the attribute '<em>Direction</em>'.
-	 * @see org.eclipse.jpt.eclipselink.core.resource.orm.XmlStoredProcedureParameter#getDirection()
-	 * @see #getXmlStoredProcedureParameter()
-	 * @generated
-	 */
-	public EAttribute getXmlStoredProcedureParameter_Direction()
-	{
-		return (EAttribute)xmlStoredProcedureParameterEClass.getEStructuralFeatures().get(0);
-	}
-
-
-	/**
-	 * Returns the meta object for the attribute '{@link org.eclipse.jpt.eclipselink.core.resource.orm.XmlStoredProcedureParameter#getName <em>Name</em>}'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return the meta object for the attribute '<em>Name</em>'.
-	 * @see org.eclipse.jpt.eclipselink.core.resource.orm.XmlStoredProcedureParameter#getName()
-	 * @see #getXmlStoredProcedureParameter()
-	 * @generated
-	 */
-	public EAttribute getXmlStoredProcedureParameter_Name()
-	{
-		return (EAttribute)xmlStoredProcedureParameterEClass.getEStructuralFeatures().get(1);
-	}
-
-
-	/**
-	 * Returns the meta object for the attribute '{@link org.eclipse.jpt.eclipselink.core.resource.orm.XmlStoredProcedureParameter#getQueryParameter <em>Query Parameter</em>}'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return the meta object for the attribute '<em>Query Parameter</em>'.
-	 * @see org.eclipse.jpt.eclipselink.core.resource.orm.XmlStoredProcedureParameter#getQueryParameter()
-	 * @see #getXmlStoredProcedureParameter()
-	 * @generated
-	 */
-	public EAttribute getXmlStoredProcedureParameter_QueryParameter()
-	{
-		return (EAttribute)xmlStoredProcedureParameterEClass.getEStructuralFeatures().get(2);
-	}
-
-
-	/**
-	 * Returns the meta object for the attribute '{@link org.eclipse.jpt.eclipselink.core.resource.orm.XmlStoredProcedureParameter#getType <em>Type</em>}'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return the meta object for the attribute '<em>Type</em>'.
-	 * @see org.eclipse.jpt.eclipselink.core.resource.orm.XmlStoredProcedureParameter#getType()
-	 * @see #getXmlStoredProcedureParameter()
-	 * @generated
-	 */
-	public EAttribute getXmlStoredProcedureParameter_Type()
-	{
-		return (EAttribute)xmlStoredProcedureParameterEClass.getEStructuralFeatures().get(3);
-	}
-
-
-	/**
-	 * Returns the meta object for the attribute '{@link org.eclipse.jpt.eclipselink.core.resource.orm.XmlStoredProcedureParameter#getJdbcType <em>Jdbc Type</em>}'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return the meta object for the attribute '<em>Jdbc Type</em>'.
-	 * @see org.eclipse.jpt.eclipselink.core.resource.orm.XmlStoredProcedureParameter#getJdbcType()
-	 * @see #getXmlStoredProcedureParameter()
-	 * @generated
-	 */
-	public EAttribute getXmlStoredProcedureParameter_JdbcType()
-	{
-		return (EAttribute)xmlStoredProcedureParameterEClass.getEStructuralFeatures().get(4);
-	}
-
-
-	/**
-	 * Returns the meta object for the attribute '{@link org.eclipse.jpt.eclipselink.core.resource.orm.XmlStoredProcedureParameter#getJdbcTypeName <em>Jdbc Type Name</em>}'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return the meta object for the attribute '<em>Jdbc Type Name</em>'.
-	 * @see org.eclipse.jpt.eclipselink.core.resource.orm.XmlStoredProcedureParameter#getJdbcTypeName()
-	 * @see #getXmlStoredProcedureParameter()
-	 * @generated
-	 */
-	public EAttribute getXmlStoredProcedureParameter_JdbcTypeName()
-	{
-		return (EAttribute)xmlStoredProcedureParameterEClass.getEStructuralFeatures().get(5);
-	}
-
-
-	/**
-	 * Returns the meta object for class '{@link org.eclipse.jpt.eclipselink.core.resource.orm.XmlNamedStoredProcedureQuery <em>Xml Named Stored Procedure Query</em>}'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return the meta object for class '<em>Xml Named Stored Procedure Query</em>'.
-	 * @see org.eclipse.jpt.eclipselink.core.resource.orm.XmlNamedStoredProcedureQuery
-	 * @generated
-	 */
-	public EClass getXmlNamedStoredProcedureQuery()
-	{
-		return xmlNamedStoredProcedureQueryEClass;
-	}
-
-
-	/**
-	 * Returns the meta object for the attribute '{@link org.eclipse.jpt.eclipselink.core.resource.orm.XmlNamedStoredProcedureQuery#getName <em>Name</em>}'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return the meta object for the attribute '<em>Name</em>'.
-	 * @see org.eclipse.jpt.eclipselink.core.resource.orm.XmlNamedStoredProcedureQuery#getName()
-	 * @see #getXmlNamedStoredProcedureQuery()
-	 * @generated
-	 */
-	public EAttribute getXmlNamedStoredProcedureQuery_Name()
-	{
-		return (EAttribute)xmlNamedStoredProcedureQueryEClass.getEStructuralFeatures().get(0);
-	}
-
-
-	/**
-	 * Returns the meta object for the attribute '{@link org.eclipse.jpt.eclipselink.core.resource.orm.XmlNamedStoredProcedureQuery#getResultClass <em>Result Class</em>}'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return the meta object for the attribute '<em>Result Class</em>'.
-	 * @see org.eclipse.jpt.eclipselink.core.resource.orm.XmlNamedStoredProcedureQuery#getResultClass()
-	 * @see #getXmlNamedStoredProcedureQuery()
-	 * @generated
-	 */
-	public EAttribute getXmlNamedStoredProcedureQuery_ResultClass()
-	{
-		return (EAttribute)xmlNamedStoredProcedureQueryEClass.getEStructuralFeatures().get(1);
-	}
-
-
-	/**
-	 * Returns the meta object for the attribute '{@link org.eclipse.jpt.eclipselink.core.resource.orm.XmlNamedStoredProcedureQuery#getResultSetMapping <em>Result Set Mapping</em>}'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return the meta object for the attribute '<em>Result Set Mapping</em>'.
-	 * @see org.eclipse.jpt.eclipselink.core.resource.orm.XmlNamedStoredProcedureQuery#getResultSetMapping()
-	 * @see #getXmlNamedStoredProcedureQuery()
-	 * @generated
-	 */
-	public EAttribute getXmlNamedStoredProcedureQuery_ResultSetMapping()
-	{
-		return (EAttribute)xmlNamedStoredProcedureQueryEClass.getEStructuralFeatures().get(2);
-	}
-
-
-	/**
-	 * Returns the meta object for the attribute '{@link org.eclipse.jpt.eclipselink.core.resource.orm.XmlNamedStoredProcedureQuery#getProcedureName <em>Procedure Name</em>}'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return the meta object for the attribute '<em>Procedure Name</em>'.
-	 * @see org.eclipse.jpt.eclipselink.core.resource.orm.XmlNamedStoredProcedureQuery#getProcedureName()
-	 * @see #getXmlNamedStoredProcedureQuery()
-	 * @generated
-	 */
-	public EAttribute getXmlNamedStoredProcedureQuery_ProcedureName()
-	{
-		return (EAttribute)xmlNamedStoredProcedureQueryEClass.getEStructuralFeatures().get(3);
-	}
-
-
-	/**
-	 * Returns the meta object for the attribute '{@link org.eclipse.jpt.eclipselink.core.resource.orm.XmlNamedStoredProcedureQuery#getReturnsResultSet <em>Returns Result Set</em>}'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return the meta object for the attribute '<em>Returns Result Set</em>'.
-	 * @see org.eclipse.jpt.eclipselink.core.resource.orm.XmlNamedStoredProcedureQuery#getReturnsResultSet()
-	 * @see #getXmlNamedStoredProcedureQuery()
-	 * @generated
-	 */
-	public EAttribute getXmlNamedStoredProcedureQuery_ReturnsResultSet()
-	{
-		return (EAttribute)xmlNamedStoredProcedureQueryEClass.getEStructuralFeatures().get(4);
-	}
-
-
-	/**
-	 * Returns the meta object for the containment reference list '{@link org.eclipse.jpt.eclipselink.core.resource.orm.XmlNamedStoredProcedureQuery#getHints <em>Hints</em>}'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return the meta object for the containment reference list '<em>Hints</em>'.
-	 * @see org.eclipse.jpt.eclipselink.core.resource.orm.XmlNamedStoredProcedureQuery#getHints()
-	 * @see #getXmlNamedStoredProcedureQuery()
-	 * @generated
-	 */
-	public EReference getXmlNamedStoredProcedureQuery_Hints()
-	{
-		return (EReference)xmlNamedStoredProcedureQueryEClass.getEStructuralFeatures().get(5);
-	}
-
-
-	/**
-	 * Returns the meta object for the containment reference list '{@link org.eclipse.jpt.eclipselink.core.resource.orm.XmlNamedStoredProcedureQuery#getParameters <em>Parameters</em>}'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return the meta object for the containment reference list '<em>Parameters</em>'.
-	 * @see org.eclipse.jpt.eclipselink.core.resource.orm.XmlNamedStoredProcedureQuery#getParameters()
-	 * @see #getXmlNamedStoredProcedureQuery()
-	 * @generated
-	 */
-	public EReference getXmlNamedStoredProcedureQuery_Parameters()
-	{
-		return (EReference)xmlNamedStoredProcedureQueryEClass.getEStructuralFeatures().get(6);
-	}
-
-
-	/**
-	 * Returns the meta object for class '{@link org.eclipse.jpt.eclipselink.core.resource.orm.XmlEntityMappings <em>Xml Entity Mappings</em>}'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return the meta object for class '<em>Xml Entity Mappings</em>'.
-	 * @see org.eclipse.jpt.eclipselink.core.resource.orm.XmlEntityMappings
-	 * @generated
-	 */
-	public EClass getXmlEntityMappings()
-	{
-		return xmlEntityMappingsEClass;
-	}
-
-
-	/**
-	 * Returns the meta object for the containment reference list '{@link org.eclipse.jpt.eclipselink.core.resource.orm.XmlEntityMappings#getNamedStoredProcedureQueries <em>Named Stored Procedure Queries</em>}'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return the meta object for the containment reference list '<em>Named Stored Procedure Queries</em>'.
-	 * @see org.eclipse.jpt.eclipselink.core.resource.orm.XmlEntityMappings#getNamedStoredProcedureQueries()
-	 * @see #getXmlEntityMappings()
-	 * @generated
-	 */
-	public EReference getXmlEntityMappings_NamedStoredProcedureQueries()
-	{
-		return (EReference)xmlEntityMappingsEClass.getEStructuralFeatures().get(0);
-	}
-
-
-	/**
-	 * Returns the meta object for class '{@link org.eclipse.jpt.eclipselink.core.resource.orm.XmlPersistenceUnitMetadata <em>Xml Persistence Unit Metadata</em>}'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return the meta object for class '<em>Xml Persistence Unit Metadata</em>'.
-	 * @see org.eclipse.jpt.eclipselink.core.resource.orm.XmlPersistenceUnitMetadata
-	 * @generated
-	 */
-	public EClass getXmlPersistenceUnitMetadata()
-	{
-		return xmlPersistenceUnitMetadataEClass;
-	}
-
-
-	/**
-	 * Returns the meta object for the attribute '{@link org.eclipse.jpt.eclipselink.core.resource.orm.XmlPersistenceUnitMetadata#isExcludeDefaultMappings <em>Exclude Default Mappings</em>}'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return the meta object for the attribute '<em>Exclude Default Mappings</em>'.
-	 * @see org.eclipse.jpt.eclipselink.core.resource.orm.XmlPersistenceUnitMetadata#isExcludeDefaultMappings()
-	 * @see #getXmlPersistenceUnitMetadata()
-	 * @generated
-	 */
-	public EAttribute getXmlPersistenceUnitMetadata_ExcludeDefaultMappings()
-	{
-		return (EAttribute)xmlPersistenceUnitMetadataEClass.getEStructuralFeatures().get(0);
-	}
-
-
-	/**
-	 * Returns the meta object for class '{@link org.eclipse.jpt.eclipselink.core.resource.orm.XmlEmbeddable <em>Xml Embeddable</em>}'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return the meta object for class '<em>Xml Embeddable</em>'.
-	 * @see org.eclipse.jpt.eclipselink.core.resource.orm.XmlEmbeddable
-	 * @generated
-	 */
-	public EClass getXmlEmbeddable()
-	{
-		return xmlEmbeddableEClass;
-	}
-
-	/**
-	 * Returns the meta object for the containment reference '{@link org.eclipse.jpt.eclipselink.core.resource.orm.XmlEmbeddable#getCopyPolicy <em>Copy Policy</em>}'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return the meta object for the containment reference '<em>Copy Policy</em>'.
-	 * @see org.eclipse.jpt.eclipselink.core.resource.orm.XmlEmbeddable#getCopyPolicy()
-	 * @see #getXmlEmbeddable()
-	 * @generated
-	 */
-	public EReference getXmlEmbeddable_CopyPolicy()
-	{
-		return (EReference)xmlEmbeddableEClass.getEStructuralFeatures().get(0);
-	}
-
-
-	/**
-	 * Returns the meta object for the containment reference '{@link org.eclipse.jpt.eclipselink.core.resource.orm.XmlEmbeddable#getInstantiationCopyPolicy <em>Instantiation Copy Policy</em>}'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return the meta object for the containment reference '<em>Instantiation Copy Policy</em>'.
-	 * @see org.eclipse.jpt.eclipselink.core.resource.orm.XmlEmbeddable#getInstantiationCopyPolicy()
-	 * @see #getXmlEmbeddable()
-	 * @generated
-	 */
-	public EReference getXmlEmbeddable_InstantiationCopyPolicy()
-	{
-		return (EReference)xmlEmbeddableEClass.getEStructuralFeatures().get(1);
-	}
-
-
-	/**
-	 * Returns the meta object for the containment reference '{@link org.eclipse.jpt.eclipselink.core.resource.orm.XmlEmbeddable#getCloneCopyPolicy <em>Clone Copy Policy</em>}'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return the meta object for the containment reference '<em>Clone Copy Policy</em>'.
-	 * @see org.eclipse.jpt.eclipselink.core.resource.orm.XmlEmbeddable#getCloneCopyPolicy()
-	 * @see #getXmlEmbeddable()
-	 * @generated
-	 */
-	public EReference getXmlEmbeddable_CloneCopyPolicy()
-	{
-		return (EReference)xmlEmbeddableEClass.getEStructuralFeatures().get(2);
-	}
-
-
-	/**
-	 * Returns the meta object for the containment reference list '{@link org.eclipse.jpt.eclipselink.core.resource.orm.XmlEmbeddable#getProperties <em>Properties</em>}'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return the meta object for the containment reference list '<em>Properties</em>'.
-	 * @see org.eclipse.jpt.eclipselink.core.resource.orm.XmlEmbeddable#getProperties()
-	 * @see #getXmlEmbeddable()
-	 * @generated
-	 */
-	public EReference getXmlEmbeddable_Properties()
-	{
-		return (EReference)xmlEmbeddableEClass.getEStructuralFeatures().get(3);
-	}
-
-
-	/**
-	 * Returns the meta object for the attribute '{@link org.eclipse.jpt.eclipselink.core.resource.orm.XmlEmbeddable#getExcludeDefaultMappings <em>Exclude Default Mappings</em>}'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return the meta object for the attribute '<em>Exclude Default Mappings</em>'.
-	 * @see org.eclipse.jpt.eclipselink.core.resource.orm.XmlEmbeddable#getExcludeDefaultMappings()
-	 * @see #getXmlEmbeddable()
-	 * @generated
-	 */
-	public EAttribute getXmlEmbeddable_ExcludeDefaultMappings()
-	{
-		return (EAttribute)xmlEmbeddableEClass.getEStructuralFeatures().get(4);
-	}
-
-
-	/**
-	 * Returns the meta object for class '{@link org.eclipse.jpt.eclipselink.core.resource.orm.XmlReadOnly <em>Xml Read Only</em>}'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return the meta object for class '<em>Xml Read Only</em>'.
-	 * @see org.eclipse.jpt.eclipselink.core.resource.orm.XmlReadOnly
-	 * @generated
-	 */
-	public EClass getXmlReadOnly()
-	{
-		return xmlReadOnlyEClass;
-	}
-
-	/**
-	 * Returns the meta object for the attribute '{@link org.eclipse.jpt.eclipselink.core.resource.orm.XmlReadOnly#getReadOnly <em>Read Only</em>}'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return the meta object for the attribute '<em>Read Only</em>'.
-	 * @see org.eclipse.jpt.eclipselink.core.resource.orm.XmlReadOnly#getReadOnly()
-	 * @see #getXmlReadOnly()
-	 * @generated
-	 */
-	public EAttribute getXmlReadOnly_ReadOnly()
-	{
-		return (EAttribute)xmlReadOnlyEClass.getEStructuralFeatures().get(0);
-	}
-
-	/**
-	 * Returns the meta object for class '{@link org.eclipse.jpt.eclipselink.core.resource.orm.XmlTimeOfDay <em>Xml Time Of Day</em>}'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return the meta object for class '<em>Xml Time Of Day</em>'.
-	 * @see org.eclipse.jpt.eclipselink.core.resource.orm.XmlTimeOfDay
-	 * @generated
-	 */
-	public EClass getXmlTimeOfDay()
-	{
-		return xmlTimeOfDayEClass;
-	}
-
-	/**
-	 * Returns the meta object for the attribute '{@link org.eclipse.jpt.eclipselink.core.resource.orm.XmlTimeOfDay#getHour <em>Hour</em>}'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return the meta object for the attribute '<em>Hour</em>'.
-	 * @see org.eclipse.jpt.eclipselink.core.resource.orm.XmlTimeOfDay#getHour()
-	 * @see #getXmlTimeOfDay()
-	 * @generated
-	 */
-	public EAttribute getXmlTimeOfDay_Hour()
-	{
-		return (EAttribute)xmlTimeOfDayEClass.getEStructuralFeatures().get(0);
-	}
-
-	/**
-	 * Returns the meta object for the attribute '{@link org.eclipse.jpt.eclipselink.core.resource.orm.XmlTimeOfDay#getMinute <em>Minute</em>}'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return the meta object for the attribute '<em>Minute</em>'.
-	 * @see org.eclipse.jpt.eclipselink.core.resource.orm.XmlTimeOfDay#getMinute()
-	 * @see #getXmlTimeOfDay()
-	 * @generated
-	 */
-	public EAttribute getXmlTimeOfDay_Minute()
-	{
-		return (EAttribute)xmlTimeOfDayEClass.getEStructuralFeatures().get(1);
-	}
-
-	/**
-	 * Returns the meta object for the attribute '{@link org.eclipse.jpt.eclipselink.core.resource.orm.XmlTimeOfDay#getSecond <em>Second</em>}'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return the meta object for the attribute '<em>Second</em>'.
-	 * @see org.eclipse.jpt.eclipselink.core.resource.orm.XmlTimeOfDay#getSecond()
-	 * @see #getXmlTimeOfDay()
-	 * @generated
-	 */
-	public EAttribute getXmlTimeOfDay_Second()
-	{
-		return (EAttribute)xmlTimeOfDayEClass.getEStructuralFeatures().get(2);
-	}
-
-	/**
-	 * Returns the meta object for the attribute '{@link org.eclipse.jpt.eclipselink.core.resource.orm.XmlTimeOfDay#getMillisecond <em>Millisecond</em>}'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return the meta object for the attribute '<em>Millisecond</em>'.
-	 * @see org.eclipse.jpt.eclipselink.core.resource.orm.XmlTimeOfDay#getMillisecond()
-	 * @see #getXmlTimeOfDay()
-	 * @generated
-	 */
-	public EAttribute getXmlTimeOfDay_Millisecond()
-	{
-		return (EAttribute)xmlTimeOfDayEClass.getEStructuralFeatures().get(3);
-	}
-
-	/**
-	 * Returns the meta object for class '{@link org.eclipse.jpt.eclipselink.core.resource.orm.XmlCache <em>Xml Cache</em>}'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return the meta object for class '<em>Xml Cache</em>'.
-	 * @see org.eclipse.jpt.eclipselink.core.resource.orm.XmlCache
-	 * @generated
-	 */
-	public EClass getXmlCache()
-	{
-		return xmlCacheEClass;
-	}
-
-	/**
-	 * Returns the meta object for the attribute '{@link org.eclipse.jpt.eclipselink.core.resource.orm.XmlCache#getExpiry <em>Expiry</em>}'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return the meta object for the attribute '<em>Expiry</em>'.
-	 * @see org.eclipse.jpt.eclipselink.core.resource.orm.XmlCache#getExpiry()
-	 * @see #getXmlCache()
-	 * @generated
-	 */
-	public EAttribute getXmlCache_Expiry()
-	{
-		return (EAttribute)xmlCacheEClass.getEStructuralFeatures().get(0);
-	}
-
-	/**
-	 * Returns the meta object for the attribute '{@link org.eclipse.jpt.eclipselink.core.resource.orm.XmlCache#getSize <em>Size</em>}'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return the meta object for the attribute '<em>Size</em>'.
-	 * @see org.eclipse.jpt.eclipselink.core.resource.orm.XmlCache#getSize()
-	 * @see #getXmlCache()
-	 * @generated
-	 */
-	public EAttribute getXmlCache_Size()
-	{
-		return (EAttribute)xmlCacheEClass.getEStructuralFeatures().get(1);
-	}
-
-	/**
-	 * Returns the meta object for the attribute '{@link org.eclipse.jpt.eclipselink.core.resource.orm.XmlCache#getShared <em>Shared</em>}'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return the meta object for the attribute '<em>Shared</em>'.
-	 * @see org.eclipse.jpt.eclipselink.core.resource.orm.XmlCache#getShared()
-	 * @see #getXmlCache()
-	 * @generated
-	 */
-	public EAttribute getXmlCache_Shared()
-	{
-		return (EAttribute)xmlCacheEClass.getEStructuralFeatures().get(2);
-	}
-
-	/**
-	 * Returns the meta object for the attribute '{@link org.eclipse.jpt.eclipselink.core.resource.orm.XmlCache#getType <em>Type</em>}'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return the meta object for the attribute '<em>Type</em>'.
-	 * @see org.eclipse.jpt.eclipselink.core.resource.orm.XmlCache#getType()
-	 * @see #getXmlCache()
-	 * @generated
-	 */
-	public EAttribute getXmlCache_Type()
-	{
-		return (EAttribute)xmlCacheEClass.getEStructuralFeatures().get(3);
-	}
-
-	/**
-	 * Returns the meta object for the attribute '{@link org.eclipse.jpt.eclipselink.core.resource.orm.XmlCache#getAlwaysRefresh <em>Always Refresh</em>}'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return the meta object for the attribute '<em>Always Refresh</em>'.
-	 * @see org.eclipse.jpt.eclipselink.core.resource.orm.XmlCache#getAlwaysRefresh()
-	 * @see #getXmlCache()
-	 * @generated
-	 */
-	public EAttribute getXmlCache_AlwaysRefresh()
-	{
-		return (EAttribute)xmlCacheEClass.getEStructuralFeatures().get(4);
-	}
-
-	/**
-	 * Returns the meta object for the attribute '{@link org.eclipse.jpt.eclipselink.core.resource.orm.XmlCache#getRefreshOnlyIfNewer <em>Refresh Only If Newer</em>}'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return the meta object for the attribute '<em>Refresh Only If Newer</em>'.
-	 * @see org.eclipse.jpt.eclipselink.core.resource.orm.XmlCache#getRefreshOnlyIfNewer()
-	 * @see #getXmlCache()
-	 * @generated
-	 */
-	public EAttribute getXmlCache_RefreshOnlyIfNewer()
-	{
-		return (EAttribute)xmlCacheEClass.getEStructuralFeatures().get(5);
-	}
-
-	/**
-	 * Returns the meta object for the attribute '{@link org.eclipse.jpt.eclipselink.core.resource.orm.XmlCache#getDisableHits <em>Disable Hits</em>}'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return the meta object for the attribute '<em>Disable Hits</em>'.
-	 * @see org.eclipse.jpt.eclipselink.core.resource.orm.XmlCache#getDisableHits()
-	 * @see #getXmlCache()
-	 * @generated
-	 */
-	public EAttribute getXmlCache_DisableHits()
-	{
-		return (EAttribute)xmlCacheEClass.getEStructuralFeatures().get(6);
-	}
-
-	/**
-	 * Returns the meta object for the attribute '{@link org.eclipse.jpt.eclipselink.core.resource.orm.XmlCache#getCoordinationType <em>Coordination Type</em>}'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return the meta object for the attribute '<em>Coordination Type</em>'.
-	 * @see org.eclipse.jpt.eclipselink.core.resource.orm.XmlCache#getCoordinationType()
-	 * @see #getXmlCache()
-	 * @generated
-	 */
-	public EAttribute getXmlCache_CoordinationType()
-	{
-		return (EAttribute)xmlCacheEClass.getEStructuralFeatures().get(7);
-	}
-
-	/**
-	 * Returns the meta object for the containment reference '{@link org.eclipse.jpt.eclipselink.core.resource.orm.XmlCache#getExpiryTimeOfDay <em>Expiry Time Of Day</em>}'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return the meta object for the containment reference '<em>Expiry Time Of Day</em>'.
-	 * @see org.eclipse.jpt.eclipselink.core.resource.orm.XmlCache#getExpiryTimeOfDay()
-	 * @see #getXmlCache()
-	 * @generated
-	 */
-	public EReference getXmlCache_ExpiryTimeOfDay()
-	{
-		return (EReference)xmlCacheEClass.getEStructuralFeatures().get(8);
-	}
-
-	/**
-	 * Returns the meta object for class '{@link org.eclipse.jpt.eclipselink.core.resource.orm.XmlCacheHolder <em>Xml Cache Holder</em>}'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return the meta object for class '<em>Xml Cache Holder</em>'.
-	 * @see org.eclipse.jpt.eclipselink.core.resource.orm.XmlCacheHolder
-	 * @generated
-	 */
-	public EClass getXmlCacheHolder()
-	{
-		return xmlCacheHolderEClass;
-	}
-
-	/**
-	 * Returns the meta object for the containment reference '{@link org.eclipse.jpt.eclipselink.core.resource.orm.XmlCacheHolder#getCache <em>Cache</em>}'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return the meta object for the containment reference '<em>Cache</em>'.
-	 * @see org.eclipse.jpt.eclipselink.core.resource.orm.XmlCacheHolder#getCache()
-	 * @see #getXmlCacheHolder()
-	 * @generated
-	 */
-	public EReference getXmlCacheHolder_Cache()
-	{
-		return (EReference)xmlCacheHolderEClass.getEStructuralFeatures().get(0);
-	}
-
-	/**
-	 * Returns the meta object for the attribute '{@link org.eclipse.jpt.eclipselink.core.resource.orm.XmlCacheHolder#getExistenceChecking <em>Existence Checking</em>}'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return the meta object for the attribute '<em>Existence Checking</em>'.
-	 * @see org.eclipse.jpt.eclipselink.core.resource.orm.XmlCacheHolder#getExistenceChecking()
-	 * @see #getXmlCacheHolder()
-	 * @generated
-	 */
-	public EAttribute getXmlCacheHolder_ExistenceChecking()
-	{
-		return (EAttribute)xmlCacheHolderEClass.getEStructuralFeatures().get(1);
-	}
-
-
-	/**
-	 * Returns the meta object for class '{@link org.eclipse.jpt.eclipselink.core.resource.orm.XmlOptimisticLocking <em>Xml Optimistic Locking</em>}'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return the meta object for class '<em>Xml Optimistic Locking</em>'.
-	 * @see org.eclipse.jpt.eclipselink.core.resource.orm.XmlOptimisticLocking
-	 * @generated
-	 */
-	public EClass getXmlOptimisticLocking()
-	{
-		return xmlOptimisticLockingEClass;
-	}
-
-
-	/**
-	 * Returns the meta object for the attribute '{@link org.eclipse.jpt.eclipselink.core.resource.orm.XmlOptimisticLocking#getType <em>Type</em>}'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return the meta object for the attribute '<em>Type</em>'.
-	 * @see org.eclipse.jpt.eclipselink.core.resource.orm.XmlOptimisticLocking#getType()
-	 * @see #getXmlOptimisticLocking()
-	 * @generated
-	 */
-	public EAttribute getXmlOptimisticLocking_Type()
-	{
-		return (EAttribute)xmlOptimisticLockingEClass.getEStructuralFeatures().get(0);
-	}
-
-
-	/**
-	 * Returns the meta object for the attribute '{@link org.eclipse.jpt.eclipselink.core.resource.orm.XmlOptimisticLocking#getCascade <em>Cascade</em>}'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return the meta object for the attribute '<em>Cascade</em>'.
-	 * @see org.eclipse.jpt.eclipselink.core.resource.orm.XmlOptimisticLocking#getCascade()
-	 * @see #getXmlOptimisticLocking()
-	 * @generated
-	 */
-	public EAttribute getXmlOptimisticLocking_Cascade()
-	{
-		return (EAttribute)xmlOptimisticLockingEClass.getEStructuralFeatures().get(1);
-	}
-
-
-	/**
-	 * Returns the meta object for the containment reference list '{@link org.eclipse.jpt.eclipselink.core.resource.orm.XmlOptimisticLocking#getSelectedColumns <em>Selected Columns</em>}'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return the meta object for the containment reference list '<em>Selected Columns</em>'.
-	 * @see org.eclipse.jpt.eclipselink.core.resource.orm.XmlOptimisticLocking#getSelectedColumns()
-	 * @see #getXmlOptimisticLocking()
-	 * @generated
-	 */
-	public EReference getXmlOptimisticLocking_SelectedColumns()
-	{
-		return (EReference)xmlOptimisticLockingEClass.getEStructuralFeatures().get(2);
-	}
-
-
-	/**
-	 * Returns the meta object for class '{@link org.eclipse.jpt.eclipselink.core.resource.orm.XmlEntity <em>Xml Entity</em>}'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return the meta object for class '<em>Xml Entity</em>'.
-	 * @see org.eclipse.jpt.eclipselink.core.resource.orm.XmlEntity
-	 * @generated
-	 */
-	public EClass getXmlEntity()
-	{
-		return xmlEntityEClass;
-	}
-
-	/**
-	 * Returns the meta object for the containment reference '{@link org.eclipse.jpt.eclipselink.core.resource.orm.XmlEntity#getOptimisticLocking <em>Optimistic Locking</em>}'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return the meta object for the containment reference '<em>Optimistic Locking</em>'.
-	 * @see org.eclipse.jpt.eclipselink.core.resource.orm.XmlEntity#getOptimisticLocking()
-	 * @see #getXmlEntity()
-	 * @generated
-	 */
-	public EReference getXmlEntity_OptimisticLocking()
-	{
-		return (EReference)xmlEntityEClass.getEStructuralFeatures().get(0);
-	}
-
-
-	/**
-	 * Returns the meta object for the containment reference '{@link org.eclipse.jpt.eclipselink.core.resource.orm.XmlEntity#getCopyPolicy <em>Copy Policy</em>}'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return the meta object for the containment reference '<em>Copy Policy</em>'.
-	 * @see org.eclipse.jpt.eclipselink.core.resource.orm.XmlEntity#getCopyPolicy()
-	 * @see #getXmlEntity()
-	 * @generated
-	 */
-	public EReference getXmlEntity_CopyPolicy()
-	{
-		return (EReference)xmlEntityEClass.getEStructuralFeatures().get(1);
-	}
-
-
-	/**
-	 * Returns the meta object for the containment reference '{@link org.eclipse.jpt.eclipselink.core.resource.orm.XmlEntity#getInstantiationCopyPolicy <em>Instantiation Copy Policy</em>}'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return the meta object for the containment reference '<em>Instantiation Copy Policy</em>'.
-	 * @see org.eclipse.jpt.eclipselink.core.resource.orm.XmlEntity#getInstantiationCopyPolicy()
-	 * @see #getXmlEntity()
-	 * @generated
-	 */
-	public EReference getXmlEntity_InstantiationCopyPolicy()
-	{
-		return (EReference)xmlEntityEClass.getEStructuralFeatures().get(2);
-	}
-
-
-	/**
-	 * Returns the meta object for the containment reference '{@link org.eclipse.jpt.eclipselink.core.resource.orm.XmlEntity#getCloneCopyPolicy <em>Clone Copy Policy</em>}'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return the meta object for the containment reference '<em>Clone Copy Policy</em>'.
-	 * @see org.eclipse.jpt.eclipselink.core.resource.orm.XmlEntity#getCloneCopyPolicy()
-	 * @see #getXmlEntity()
-	 * @generated
-	 */
-	public EReference getXmlEntity_CloneCopyPolicy()
-	{
-		return (EReference)xmlEntityEClass.getEStructuralFeatures().get(3);
-	}
-
-
-	/**
-	 * Returns the meta object for the containment reference list '{@link org.eclipse.jpt.eclipselink.core.resource.orm.XmlEntity#getNamedStoredProcedureQueries <em>Named Stored Procedure Queries</em>}'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return the meta object for the containment reference list '<em>Named Stored Procedure Queries</em>'.
-	 * @see org.eclipse.jpt.eclipselink.core.resource.orm.XmlEntity#getNamedStoredProcedureQueries()
-	 * @see #getXmlEntity()
-	 * @generated
-	 */
-	public EReference getXmlEntity_NamedStoredProcedureQueries()
-	{
-		return (EReference)xmlEntityEClass.getEStructuralFeatures().get(4);
-	}
-
-
-	/**
-	 * Returns the meta object for the containment reference list '{@link org.eclipse.jpt.eclipselink.core.resource.orm.XmlEntity#getProperties <em>Properties</em>}'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return the meta object for the containment reference list '<em>Properties</em>'.
-	 * @see org.eclipse.jpt.eclipselink.core.resource.orm.XmlEntity#getProperties()
-	 * @see #getXmlEntity()
-	 * @generated
-	 */
-	public EReference getXmlEntity_Properties()
-	{
-		return (EReference)xmlEntityEClass.getEStructuralFeatures().get(5);
-	}
-
-
-	/**
-	 * Returns the meta object for the attribute '{@link org.eclipse.jpt.eclipselink.core.resource.orm.XmlEntity#getExcludeDefaultMappings <em>Exclude Default Mappings</em>}'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return the meta object for the attribute '<em>Exclude Default Mappings</em>'.
-	 * @see org.eclipse.jpt.eclipselink.core.resource.orm.XmlEntity#getExcludeDefaultMappings()
-	 * @see #getXmlEntity()
-	 * @generated
-	 */
-	public EAttribute getXmlEntity_ExcludeDefaultMappings()
-	{
-		return (EAttribute)xmlEntityEClass.getEStructuralFeatures().get(6);
-	}
-
-
-	/**
-	 * Returns the meta object for class '{@link org.eclipse.jpt.eclipselink.core.resource.orm.XmlMappedSuperclass <em>Xml Mapped Superclass</em>}'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return the meta object for class '<em>Xml Mapped Superclass</em>'.
-	 * @see org.eclipse.jpt.eclipselink.core.resource.orm.XmlMappedSuperclass
-	 * @generated
-	 */
-	public EClass getXmlMappedSuperclass()
-	{
-		return xmlMappedSuperclassEClass;
-	}
-
-	/**
-	 * Returns the meta object for the containment reference '{@link org.eclipse.jpt.eclipselink.core.resource.orm.XmlMappedSuperclass#getOptimisticLocking <em>Optimistic Locking</em>}'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return the meta object for the containment reference '<em>Optimistic Locking</em>'.
-	 * @see org.eclipse.jpt.eclipselink.core.resource.orm.XmlMappedSuperclass#getOptimisticLocking()
-	 * @see #getXmlMappedSuperclass()
-	 * @generated
-	 */
-	public EReference getXmlMappedSuperclass_OptimisticLocking()
-	{
-		return (EReference)xmlMappedSuperclassEClass.getEStructuralFeatures().get(0);
-	}
-
-
-	/**
-	 * Returns the meta object for the containment reference '{@link org.eclipse.jpt.eclipselink.core.resource.orm.XmlMappedSuperclass#getCopyPolicy <em>Copy Policy</em>}'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return the meta object for the containment reference '<em>Copy Policy</em>'.
-	 * @see org.eclipse.jpt.eclipselink.core.resource.orm.XmlMappedSuperclass#getCopyPolicy()
-	 * @see #getXmlMappedSuperclass()
-	 * @generated
-	 */
-	public EReference getXmlMappedSuperclass_CopyPolicy()
-	{
-		return (EReference)xmlMappedSuperclassEClass.getEStructuralFeatures().get(1);
-	}
-
-
-	/**
-	 * Returns the meta object for the containment reference '{@link org.eclipse.jpt.eclipselink.core.resource.orm.XmlMappedSuperclass#getInstantiationCopyPolicy <em>Instantiation Copy Policy</em>}'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return the meta object for the containment reference '<em>Instantiation Copy Policy</em>'.
-	 * @see org.eclipse.jpt.eclipselink.core.resource.orm.XmlMappedSuperclass#getInstantiationCopyPolicy()
-	 * @see #getXmlMappedSuperclass()
-	 * @generated
-	 */
-	public EReference getXmlMappedSuperclass_InstantiationCopyPolicy()
-	{
-		return (EReference)xmlMappedSuperclassEClass.getEStructuralFeatures().get(2);
-	}
-
-
-	/**
-	 * Returns the meta object for the containment reference '{@link org.eclipse.jpt.eclipselink.core.resource.orm.XmlMappedSuperclass#getCloneCopyPolicy <em>Clone Copy Policy</em>}'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return the meta object for the containment reference '<em>Clone Copy Policy</em>'.
-	 * @see org.eclipse.jpt.eclipselink.core.resource.orm.XmlMappedSuperclass#getCloneCopyPolicy()
-	 * @see #getXmlMappedSuperclass()
-	 * @generated
-	 */
-	public EReference getXmlMappedSuperclass_CloneCopyPolicy()
-	{
-		return (EReference)xmlMappedSuperclassEClass.getEStructuralFeatures().get(3);
-	}
-
-
-	/**
-	 * Returns the meta object for the containment reference list '{@link org.eclipse.jpt.eclipselink.core.resource.orm.XmlMappedSuperclass#getProperties <em>Properties</em>}'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return the meta object for the containment reference list '<em>Properties</em>'.
-	 * @see org.eclipse.jpt.eclipselink.core.resource.orm.XmlMappedSuperclass#getProperties()
-	 * @see #getXmlMappedSuperclass()
-	 * @generated
-	 */
-	public EReference getXmlMappedSuperclass_Properties()
-	{
-		return (EReference)xmlMappedSuperclassEClass.getEStructuralFeatures().get(4);
-	}
-
-
-	/**
-	 * Returns the meta object for the attribute '{@link org.eclipse.jpt.eclipselink.core.resource.orm.XmlMappedSuperclass#getExcludeDefaultMappings <em>Exclude Default Mappings</em>}'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return the meta object for the attribute '<em>Exclude Default Mappings</em>'.
-	 * @see org.eclipse.jpt.eclipselink.core.resource.orm.XmlMappedSuperclass#getExcludeDefaultMappings()
-	 * @see #getXmlMappedSuperclass()
-	 * @generated
-	 */
-	public EAttribute getXmlMappedSuperclass_ExcludeDefaultMappings()
-	{
-		return (EAttribute)xmlMappedSuperclassEClass.getEStructuralFeatures().get(5);
-	}
-
-
-	/**
-	 * Returns the meta object for class '{@link org.eclipse.jpt.eclipselink.core.resource.orm.XmlMutable <em>Xml Mutable</em>}'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return the meta object for class '<em>Xml Mutable</em>'.
-	 * @see org.eclipse.jpt.eclipselink.core.resource.orm.XmlMutable
-	 * @generated
-	 */
-	public EClass getXmlMutable()
-	{
-		return xmlMutableEClass;
-	}
-
-	/**
-	 * Returns the meta object for the attribute '{@link org.eclipse.jpt.eclipselink.core.resource.orm.XmlMutable#getMutable <em>Mutable</em>}'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return the meta object for the attribute '<em>Mutable</em>'.
-	 * @see org.eclipse.jpt.eclipselink.core.resource.orm.XmlMutable#getMutable()
-	 * @see #getXmlMutable()
-	 * @generated
-	 */
-	public EAttribute getXmlMutable_Mutable()
-	{
-		return (EAttribute)xmlMutableEClass.getEStructuralFeatures().get(0);
-	}
-
-	/**
-	 * Returns the meta object for class '{@link org.eclipse.jpt.eclipselink.core.resource.orm.XmlConvertibleMapping <em>Xml Convertible Mapping</em>}'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return the meta object for class '<em>Xml Convertible Mapping</em>'.
-	 * @see org.eclipse.jpt.eclipselink.core.resource.orm.XmlConvertibleMapping
-	 * @generated
-	 */
-	public EClass getXmlConvertibleMapping()
-	{
-		return xmlConvertibleMappingEClass;
-	}
-
-
-	/**
-	 * Returns the meta object for the attribute '{@link org.eclipse.jpt.eclipselink.core.resource.orm.XmlConvertibleMapping#getConvert <em>Convert</em>}'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return the meta object for the attribute '<em>Convert</em>'.
-	 * @see org.eclipse.jpt.eclipselink.core.resource.orm.XmlConvertibleMapping#getConvert()
-	 * @see #getXmlConvertibleMapping()
-	 * @generated
-	 */
-	public EAttribute getXmlConvertibleMapping_Convert()
-	{
-		return (EAttribute)xmlConvertibleMappingEClass.getEStructuralFeatures().get(0);
-	}
-
-
-	/**
-	 * Returns the meta object for class '{@link org.eclipse.jpt.eclipselink.core.resource.orm.XmlAccessMethods <em>Xml Access Methods</em>}'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return the meta object for class '<em>Xml Access Methods</em>'.
-	 * @see org.eclipse.jpt.eclipselink.core.resource.orm.XmlAccessMethods
-	 * @generated
-	 */
-	public EClass getXmlAccessMethods()
-	{
-		return xmlAccessMethodsEClass;
-	}
-
-
-	/**
-	 * Returns the meta object for the attribute '{@link org.eclipse.jpt.eclipselink.core.resource.orm.XmlAccessMethods#getGetMethod <em>Get Method</em>}'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return the meta object for the attribute '<em>Get Method</em>'.
-	 * @see org.eclipse.jpt.eclipselink.core.resource.orm.XmlAccessMethods#getGetMethod()
-	 * @see #getXmlAccessMethods()
-	 * @generated
-	 */
-	public EAttribute getXmlAccessMethods_GetMethod()
-	{
-		return (EAttribute)xmlAccessMethodsEClass.getEStructuralFeatures().get(0);
-	}
-
-
-	/**
-	 * Returns the meta object for the attribute '{@link org.eclipse.jpt.eclipselink.core.resource.orm.XmlAccessMethods#getSetMethod <em>Set Method</em>}'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return the meta object for the attribute '<em>Set Method</em>'.
-	 * @see org.eclipse.jpt.eclipselink.core.resource.orm.XmlAccessMethods#getSetMethod()
-	 * @see #getXmlAccessMethods()
-	 * @generated
-	 */
-	public EAttribute getXmlAccessMethods_SetMethod()
-	{
-		return (EAttribute)xmlAccessMethodsEClass.getEStructuralFeatures().get(1);
-	}
-
-
-	/**
-	 * Returns the meta object for class '{@link org.eclipse.jpt.eclipselink.core.resource.orm.XmlAccessMethodsHolder <em>Xml Access Methods Holder</em>}'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return the meta object for class '<em>Xml Access Methods Holder</em>'.
-	 * @see org.eclipse.jpt.eclipselink.core.resource.orm.XmlAccessMethodsHolder
-	 * @generated
-	 */
-	public EClass getXmlAccessMethodsHolder()
-	{
-		return xmlAccessMethodsHolderEClass;
-	}
-
-
-	/**
-	 * Returns the meta object for the containment reference '{@link org.eclipse.jpt.eclipselink.core.resource.orm.XmlAccessMethodsHolder#getAccessMethods <em>Access Methods</em>}'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return the meta object for the containment reference '<em>Access Methods</em>'.
-	 * @see org.eclipse.jpt.eclipselink.core.resource.orm.XmlAccessMethodsHolder#getAccessMethods()
-	 * @see #getXmlAccessMethodsHolder()
-	 * @generated
-	 */
-	public EReference getXmlAccessMethodsHolder_AccessMethods()
-	{
-		return (EReference)xmlAccessMethodsHolderEClass.getEStructuralFeatures().get(0);
-	}
-
-
-	/**
-	 * Returns the meta object for class '{@link org.eclipse.jpt.eclipselink.core.resource.orm.XmlId <em>Xml Id</em>}'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return the meta object for class '<em>Xml Id</em>'.
-	 * @see org.eclipse.jpt.eclipselink.core.resource.orm.XmlId
-	 * @generated
-	 */
-	public EClass getXmlId()
-	{
-		return xmlIdEClass;
-	}
-
-	/**
-	 * Returns the meta object for the containment reference list '{@link org.eclipse.jpt.eclipselink.core.resource.orm.XmlId#getProperties <em>Properties</em>}'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return the meta object for the containment reference list '<em>Properties</em>'.
-	 * @see org.eclipse.jpt.eclipselink.core.resource.orm.XmlId#getProperties()
-	 * @see #getXmlId()
-	 * @generated
-	 */
-	public EReference getXmlId_Properties()
-	{
-		return (EReference)xmlIdEClass.getEStructuralFeatures().get(0);
-	}
-
-
-	/**
-	 * Returns the meta object for class '{@link org.eclipse.jpt.eclipselink.core.resource.orm.XmlIdImpl <em>Xml Id Impl</em>}'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return the meta object for class '<em>Xml Id Impl</em>'.
-	 * @see org.eclipse.jpt.eclipselink.core.resource.orm.XmlIdImpl
-	 * @generated
-	 */
-	public EClass getXmlIdImpl()
-	{
-		return xmlIdImplEClass;
-	}
-
-
-	/**
-	 * Returns the meta object for class '{@link org.eclipse.jpt.eclipselink.core.resource.orm.XmlEmbeddedId <em>Xml Embedded Id</em>}'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return the meta object for class '<em>Xml Embedded Id</em>'.
-	 * @see org.eclipse.jpt.eclipselink.core.resource.orm.XmlEmbeddedId
-	 * @generated
-	 */
-	public EClass getXmlEmbeddedId()
-	{
-		return xmlEmbeddedIdEClass;
-	}
-
-
-	/**
-	 * Returns the meta object for the containment reference list '{@link org.eclipse.jpt.eclipselink.core.resource.orm.XmlEmbeddedId#getProperties <em>Properties</em>}'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return the meta object for the containment reference list '<em>Properties</em>'.
-	 * @see org.eclipse.jpt.eclipselink.core.resource.orm.XmlEmbeddedId#getProperties()
-	 * @see #getXmlEmbeddedId()
-	 * @generated
-	 */
-	public EReference getXmlEmbeddedId_Properties()
-	{
-		return (EReference)xmlEmbeddedIdEClass.getEStructuralFeatures().get(0);
-	}
-
-
-	/**
-	 * Returns the meta object for class '{@link org.eclipse.jpt.eclipselink.core.resource.orm.XmlEmbeddedIdImpl <em>Xml Embedded Id Impl</em>}'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return the meta object for class '<em>Xml Embedded Id Impl</em>'.
-	 * @see org.eclipse.jpt.eclipselink.core.resource.orm.XmlEmbeddedIdImpl
-	 * @generated
-	 */
-	public EClass getXmlEmbeddedIdImpl()
-	{
-		return xmlEmbeddedIdImplEClass;
-	}
-
-
-	/**
-	 * Returns the meta object for class '{@link org.eclipse.jpt.eclipselink.core.resource.orm.XmlEmbedded <em>Xml Embedded</em>}'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return the meta object for class '<em>Xml Embedded</em>'.
-	 * @see org.eclipse.jpt.eclipselink.core.resource.orm.XmlEmbedded
-	 * @generated
-	 */
-	public EClass getXmlEmbedded()
-	{
-		return xmlEmbeddedEClass;
-	}
-
-
-	/**
-	 * Returns the meta object for the containment reference list '{@link org.eclipse.jpt.eclipselink.core.resource.orm.XmlEmbedded#getProperties <em>Properties</em>}'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return the meta object for the containment reference list '<em>Properties</em>'.
-	 * @see org.eclipse.jpt.eclipselink.core.resource.orm.XmlEmbedded#getProperties()
-	 * @see #getXmlEmbedded()
-	 * @generated
-	 */
-	public EReference getXmlEmbedded_Properties()
-	{
-		return (EReference)xmlEmbeddedEClass.getEStructuralFeatures().get(0);
-	}
-
-
-	/**
-	 * Returns the meta object for class '{@link org.eclipse.jpt.eclipselink.core.resource.orm.XmlEmbeddedImpl <em>Xml Embedded Impl</em>}'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return the meta object for class '<em>Xml Embedded Impl</em>'.
-	 * @see org.eclipse.jpt.eclipselink.core.resource.orm.XmlEmbeddedImpl
-	 * @generated
-	 */
-	public EClass getXmlEmbeddedImpl()
-	{
-		return xmlEmbeddedImplEClass;
-	}
-
-
-	/**
-	 * Returns the meta object for class '{@link org.eclipse.jpt.eclipselink.core.resource.orm.XmlBasic <em>Xml Basic</em>}'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return the meta object for class '<em>Xml Basic</em>'.
-	 * @see org.eclipse.jpt.eclipselink.core.resource.orm.XmlBasic
-	 * @generated
-	 */
-	public EClass getXmlBasic()
-	{
-		return xmlBasicEClass;
-	}
-
-	/**
-	 * Returns the meta object for the containment reference list '{@link org.eclipse.jpt.eclipselink.core.resource.orm.XmlBasic#getProperties <em>Properties</em>}'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return the meta object for the containment reference list '<em>Properties</em>'.
-	 * @see org.eclipse.jpt.eclipselink.core.resource.orm.XmlBasic#getProperties()
-	 * @see #getXmlBasic()
-	 * @generated
-	 */
-	public EReference getXmlBasic_Properties()
-	{
-		return (EReference)xmlBasicEClass.getEStructuralFeatures().get(0);
-	}
-
-
-	/**
-	 * Returns the meta object for class '{@link org.eclipse.jpt.eclipselink.core.resource.orm.XmlBasicImpl <em>Xml Basic Impl</em>}'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return the meta object for class '<em>Xml Basic Impl</em>'.
-	 * @see org.eclipse.jpt.eclipselink.core.resource.orm.XmlBasicImpl
-	 * @generated
-	 */
-	public EClass getXmlBasicImpl()
-	{
-		return xmlBasicImplEClass;
-	}
-
-
-	/**
-	 * Returns the meta object for class '{@link org.eclipse.jpt.eclipselink.core.resource.orm.XmlVersion <em>Xml Version</em>}'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return the meta object for class '<em>Xml Version</em>'.
-	 * @see org.eclipse.jpt.eclipselink.core.resource.orm.XmlVersion
-	 * @generated
-	 */
-	public EClass getXmlVersion()
-	{
-		return xmlVersionEClass;
-	}
-
-	/**
-	 * Returns the meta object for the containment reference list '{@link org.eclipse.jpt.eclipselink.core.resource.orm.XmlVersion#getProperties <em>Properties</em>}'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return the meta object for the containment reference list '<em>Properties</em>'.
-	 * @see org.eclipse.jpt.eclipselink.core.resource.orm.XmlVersion#getProperties()
-	 * @see #getXmlVersion()
-	 * @generated
-	 */
-	public EReference getXmlVersion_Properties()
-	{
-		return (EReference)xmlVersionEClass.getEStructuralFeatures().get(0);
-	}
-
-
-	/**
-	 * Returns the meta object for class '{@link org.eclipse.jpt.eclipselink.core.resource.orm.XmlVersionImpl <em>Xml Version Impl</em>}'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return the meta object for class '<em>Xml Version Impl</em>'.
-	 * @see org.eclipse.jpt.eclipselink.core.resource.orm.XmlVersionImpl
-	 * @generated
-	 */
-	public EClass getXmlVersionImpl()
-	{
-		return xmlVersionImplEClass;
-	}
-
-
-	/**
-	 * Returns the meta object for class '{@link org.eclipse.jpt.eclipselink.core.resource.orm.XmlPrivateOwned <em>Xml Private Owned</em>}'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return the meta object for class '<em>Xml Private Owned</em>'.
-	 * @see org.eclipse.jpt.eclipselink.core.resource.orm.XmlPrivateOwned
-	 * @generated
-	 */
-	public EClass getXmlPrivateOwned()
-	{
-		return xmlPrivateOwnedEClass;
-	}
-
-	/**
-	 * Returns the meta object for the attribute '{@link org.eclipse.jpt.eclipselink.core.resource.orm.XmlPrivateOwned#isPrivateOwned <em>Private Owned</em>}'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return the meta object for the attribute '<em>Private Owned</em>'.
-	 * @see org.eclipse.jpt.eclipselink.core.resource.orm.XmlPrivateOwned#isPrivateOwned()
-	 * @see #getXmlPrivateOwned()
-	 * @generated
-	 */
-	public EAttribute getXmlPrivateOwned_PrivateOwned()
-	{
-		return (EAttribute)xmlPrivateOwnedEClass.getEStructuralFeatures().get(0);
-	}
-
-	/**
-	 * Returns the meta object for class '{@link org.eclipse.jpt.eclipselink.core.resource.orm.XmlJoinFetch <em>Xml Join Fetch</em>}'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return the meta object for class '<em>Xml Join Fetch</em>'.
-	 * @see org.eclipse.jpt.eclipselink.core.resource.orm.XmlJoinFetch
-	 * @generated
-	 */
-	public EClass getXmlJoinFetch()
-	{
-		return xmlJoinFetchEClass;
-	}
-
-	/**
-	 * Returns the meta object for the attribute '{@link org.eclipse.jpt.eclipselink.core.resource.orm.XmlJoinFetch#getJoinFetch <em>Join Fetch</em>}'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return the meta object for the attribute '<em>Join Fetch</em>'.
-	 * @see org.eclipse.jpt.eclipselink.core.resource.orm.XmlJoinFetch#getJoinFetch()
-	 * @see #getXmlJoinFetch()
-	 * @generated
-	 */
-	public EAttribute getXmlJoinFetch_JoinFetch()
-	{
-		return (EAttribute)xmlJoinFetchEClass.getEStructuralFeatures().get(0);
-	}
-
-	/**
-	 * Returns the meta object for class '{@link org.eclipse.jpt.eclipselink.core.resource.orm.XmlOneToOne <em>Xml One To One</em>}'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return the meta object for class '<em>Xml One To One</em>'.
-	 * @see org.eclipse.jpt.eclipselink.core.resource.orm.XmlOneToOne
-	 * @generated
-	 */
-	public EClass getXmlOneToOne()
-	{
-		return xmlOneToOneEClass;
-	}
-
-	/**
-	 * Returns the meta object for the containment reference list '{@link org.eclipse.jpt.eclipselink.core.resource.orm.XmlOneToOne#getProperties <em>Properties</em>}'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return the meta object for the containment reference list '<em>Properties</em>'.
-	 * @see org.eclipse.jpt.eclipselink.core.resource.orm.XmlOneToOne#getProperties()
-	 * @see #getXmlOneToOne()
-	 * @generated
-	 */
-	public EReference getXmlOneToOne_Properties()
-	{
-		return (EReference)xmlOneToOneEClass.getEStructuralFeatures().get(0);
-	}
-
-
-	/**
-	 * Returns the meta object for class '{@link org.eclipse.jpt.eclipselink.core.resource.orm.XmlOneToOneImpl <em>Xml One To One Impl</em>}'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return the meta object for class '<em>Xml One To One Impl</em>'.
-	 * @see org.eclipse.jpt.eclipselink.core.resource.orm.XmlOneToOneImpl
-	 * @generated
-	 */
-	public EClass getXmlOneToOneImpl()
-	{
-		return xmlOneToOneImplEClass;
-	}
-
-
-	/**
-	 * Returns the meta object for class '{@link org.eclipse.jpt.eclipselink.core.resource.orm.XmlOneToMany <em>Xml One To Many</em>}'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return the meta object for class '<em>Xml One To Many</em>'.
-	 * @see org.eclipse.jpt.eclipselink.core.resource.orm.XmlOneToMany
-	 * @generated
-	 */
-	public EClass getXmlOneToMany()
-	{
-		return xmlOneToManyEClass;
-	}
-
-	/**
-	 * Returns the meta object for the containment reference list '{@link org.eclipse.jpt.eclipselink.core.resource.orm.XmlOneToMany#getProperties <em>Properties</em>}'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return the meta object for the containment reference list '<em>Properties</em>'.
-	 * @see org.eclipse.jpt.eclipselink.core.resource.orm.XmlOneToMany#getProperties()
-	 * @see #getXmlOneToMany()
-	 * @generated
-	 */
-	public EReference getXmlOneToMany_Properties()
-	{
-		return (EReference)xmlOneToManyEClass.getEStructuralFeatures().get(0);
-	}
-
-
-	/**
-	 * Returns the meta object for class '{@link org.eclipse.jpt.eclipselink.core.resource.orm.XmlOneToManyImpl <em>Xml One To Many Impl</em>}'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return the meta object for class '<em>Xml One To Many Impl</em>'.
-	 * @see org.eclipse.jpt.eclipselink.core.resource.orm.XmlOneToManyImpl
-	 * @generated
-	 */
-	public EClass getXmlOneToManyImpl()
-	{
-		return xmlOneToManyImplEClass;
-	}
-
-
-	/**
-	 * Returns the meta object for class '{@link org.eclipse.jpt.eclipselink.core.resource.orm.XmlManyToOne <em>Xml Many To One</em>}'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return the meta object for class '<em>Xml Many To One</em>'.
-	 * @see org.eclipse.jpt.eclipselink.core.resource.orm.XmlManyToOne
-	 * @generated
-	 */
-	public EClass getXmlManyToOne()
-	{
-		return xmlManyToOneEClass;
-	}
-
-	/**
-	 * Returns the meta object for the containment reference list '{@link org.eclipse.jpt.eclipselink.core.resource.orm.XmlManyToOne#getProperties <em>Properties</em>}'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return the meta object for the containment reference list '<em>Properties</em>'.
-	 * @see org.eclipse.jpt.eclipselink.core.resource.orm.XmlManyToOne#getProperties()
-	 * @see #getXmlManyToOne()
-	 * @generated
-	 */
-	public EReference getXmlManyToOne_Properties()
-	{
-		return (EReference)xmlManyToOneEClass.getEStructuralFeatures().get(0);
-	}
-
-
-	/**
-	 * Returns the meta object for class '{@link org.eclipse.jpt.eclipselink.core.resource.orm.XmlManyToOneImpl <em>Xml Many To One Impl</em>}'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return the meta object for class '<em>Xml Many To One Impl</em>'.
-	 * @see org.eclipse.jpt.eclipselink.core.resource.orm.XmlManyToOneImpl
-	 * @generated
-	 */
-	public EClass getXmlManyToOneImpl()
-	{
-		return xmlManyToOneImplEClass;
-	}
-
-
-	/**
-	 * Returns the meta object for class '{@link org.eclipse.jpt.eclipselink.core.resource.orm.XmlManyToMany <em>Xml Many To Many</em>}'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return the meta object for class '<em>Xml Many To Many</em>'.
-	 * @see org.eclipse.jpt.eclipselink.core.resource.orm.XmlManyToMany
-	 * @generated
-	 */
-	public EClass getXmlManyToMany()
-	{
-		return xmlManyToManyEClass;
-	}
-
-	/**
-	 * Returns the meta object for the containment reference list '{@link org.eclipse.jpt.eclipselink.core.resource.orm.XmlManyToMany#getProperties <em>Properties</em>}'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return the meta object for the containment reference list '<em>Properties</em>'.
-	 * @see org.eclipse.jpt.eclipselink.core.resource.orm.XmlManyToMany#getProperties()
-	 * @see #getXmlManyToMany()
-	 * @generated
-	 */
-	public EReference getXmlManyToMany_Properties()
-	{
-		return (EReference)xmlManyToManyEClass.getEStructuralFeatures().get(0);
-	}
-
-
-	/**
-	 * Returns the meta object for class '{@link org.eclipse.jpt.eclipselink.core.resource.orm.XmlManyToManyImpl <em>Xml Many To Many Impl</em>}'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return the meta object for class '<em>Xml Many To Many Impl</em>'.
-	 * @see org.eclipse.jpt.eclipselink.core.resource.orm.XmlManyToManyImpl
-	 * @generated
-	 */
-	public EClass getXmlManyToManyImpl()
-	{
-		return xmlManyToManyImplEClass;
-	}
-
-
-	/**
-	 * Returns the meta object for class '{@link org.eclipse.jpt.eclipselink.core.resource.orm.Attributes <em>Attributes</em>}'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return the meta object for class '<em>Attributes</em>'.
-	 * @see org.eclipse.jpt.eclipselink.core.resource.orm.Attributes
-	 * @generated
-	 */
-	public EClass getAttributes()
-	{
-		return attributesEClass;
-	}
-
-
-	/**
-	 * Returns the meta object for the containment reference list '{@link org.eclipse.jpt.eclipselink.core.resource.orm.Attributes#getBasicCollections <em>Basic Collections</em>}'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return the meta object for the containment reference list '<em>Basic Collections</em>'.
-	 * @see org.eclipse.jpt.eclipselink.core.resource.orm.Attributes#getBasicCollections()
-	 * @see #getAttributes()
-	 * @generated
-	 */
-	public EReference getAttributes_BasicCollections()
-	{
-		return (EReference)attributesEClass.getEStructuralFeatures().get(0);
-	}
-
-
-	/**
-	 * Returns the meta object for the containment reference list '{@link org.eclipse.jpt.eclipselink.core.resource.orm.Attributes#getBasicMaps <em>Basic Maps</em>}'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return the meta object for the containment reference list '<em>Basic Maps</em>'.
-	 * @see org.eclipse.jpt.eclipselink.core.resource.orm.Attributes#getBasicMaps()
-	 * @see #getAttributes()
-	 * @generated
-	 */
-	public EReference getAttributes_BasicMaps()
-	{
-		return (EReference)attributesEClass.getEStructuralFeatures().get(1);
-	}
-
-
-	/**
-	 * Returns the meta object for the containment reference list '{@link org.eclipse.jpt.eclipselink.core.resource.orm.Attributes#getTransformations <em>Transformations</em>}'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return the meta object for the containment reference list '<em>Transformations</em>'.
-	 * @see org.eclipse.jpt.eclipselink.core.resource.orm.Attributes#getTransformations()
-	 * @see #getAttributes()
-	 * @generated
-	 */
-	public EReference getAttributes_Transformations()
-	{
-		return (EReference)attributesEClass.getEStructuralFeatures().get(2);
-	}
-
-
-	/**
-	 * Returns the meta object for the containment reference list '{@link org.eclipse.jpt.eclipselink.core.resource.orm.Attributes#getVariableOneToOnes <em>Variable One To Ones</em>}'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return the meta object for the containment reference list '<em>Variable One To Ones</em>'.
-	 * @see org.eclipse.jpt.eclipselink.core.resource.orm.Attributes#getVariableOneToOnes()
-	 * @see #getAttributes()
-	 * @generated
-	 */
-	public EReference getAttributes_VariableOneToOnes()
-	{
-		return (EReference)attributesEClass.getEStructuralFeatures().get(3);
-	}
-
-
-	/**
-	 * Returns the meta object for class '{@link org.eclipse.jpt.eclipselink.core.resource.orm.XmlBasicCollection <em>Xml Basic Collection</em>}'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return the meta object for class '<em>Xml Basic Collection</em>'.
-	 * @see org.eclipse.jpt.eclipselink.core.resource.orm.XmlBasicCollection
-	 * @generated
-	 */
-	public EClass getXmlBasicCollection()
-	{
-		return xmlBasicCollectionEClass;
-	}
-
-
-	/**
-	 * Returns the meta object for the containment reference list '{@link org.eclipse.jpt.eclipselink.core.resource.orm.XmlBasicCollection#getProperties <em>Properties</em>}'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return the meta object for the containment reference list '<em>Properties</em>'.
-	 * @see org.eclipse.jpt.eclipselink.core.resource.orm.XmlBasicCollection#getProperties()
-	 * @see #getXmlBasicCollection()
-	 * @generated
-	 */
-	public EReference getXmlBasicCollection_Properties()
-	{
-		return (EReference)xmlBasicCollectionEClass.getEStructuralFeatures().get(0);
-	}
-
-
-	/**
-	 * Returns the meta object for class '{@link org.eclipse.jpt.eclipselink.core.resource.orm.XmlBasicCollectionImpl <em>Xml Basic Collection Impl</em>}'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return the meta object for class '<em>Xml Basic Collection Impl</em>'.
-	 * @see org.eclipse.jpt.eclipselink.core.resource.orm.XmlBasicCollectionImpl
-	 * @generated
-	 */
-	public EClass getXmlBasicCollectionImpl()
-	{
-		return xmlBasicCollectionImplEClass;
-	}
-
-
-	/**
-	 * Returns the meta object for class '{@link org.eclipse.jpt.eclipselink.core.resource.orm.XmlBasicMap <em>Xml Basic Map</em>}'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return the meta object for class '<em>Xml Basic Map</em>'.
-	 * @see org.eclipse.jpt.eclipselink.core.resource.orm.XmlBasicMap
-	 * @generated
-	 */
-	public EClass getXmlBasicMap()
-	{
-		return xmlBasicMapEClass;
-	}
-
-
-	/**
-	 * Returns the meta object for the containment reference list '{@link org.eclipse.jpt.eclipselink.core.resource.orm.XmlBasicMap#getProperties <em>Properties</em>}'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return the meta object for the containment reference list '<em>Properties</em>'.
-	 * @see org.eclipse.jpt.eclipselink.core.resource.orm.XmlBasicMap#getProperties()
-	 * @see #getXmlBasicMap()
-	 * @generated
-	 */
-	public EReference getXmlBasicMap_Properties()
-	{
-		return (EReference)xmlBasicMapEClass.getEStructuralFeatures().get(0);
-	}
-
-
-	/**
-	 * Returns the meta object for class '{@link org.eclipse.jpt.eclipselink.core.resource.orm.XmlBasicMapImpl <em>Xml Basic Map Impl</em>}'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return the meta object for class '<em>Xml Basic Map Impl</em>'.
-	 * @see org.eclipse.jpt.eclipselink.core.resource.orm.XmlBasicMapImpl
-	 * @generated
-	 */
-	public EClass getXmlBasicMapImpl()
-	{
-		return xmlBasicMapImplEClass;
-	}
-
-
-	/**
-	 * Returns the meta object for class '{@link org.eclipse.jpt.eclipselink.core.resource.orm.XmlTransformation <em>Xml Transformation</em>}'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return the meta object for class '<em>Xml Transformation</em>'.
-	 * @see org.eclipse.jpt.eclipselink.core.resource.orm.XmlTransformation
-	 * @generated
-	 */
-	public EClass getXmlTransformation()
-	{
-		return xmlTransformationEClass;
-	}
-
-
-	/**
-	 * Returns the meta object for the containment reference list '{@link org.eclipse.jpt.eclipselink.core.resource.orm.XmlTransformation#getProperties <em>Properties</em>}'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return the meta object for the containment reference list '<em>Properties</em>'.
-	 * @see org.eclipse.jpt.eclipselink.core.resource.orm.XmlTransformation#getProperties()
-	 * @see #getXmlTransformation()
-	 * @generated
-	 */
-	public EReference getXmlTransformation_Properties()
-	{
-		return (EReference)xmlTransformationEClass.getEStructuralFeatures().get(0);
-	}
-
-
-	/**
-	 * Returns the meta object for class '{@link org.eclipse.jpt.eclipselink.core.resource.orm.XmlTransformationImpl <em>Xml Transformation Impl</em>}'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return the meta object for class '<em>Xml Transformation Impl</em>'.
-	 * @see org.eclipse.jpt.eclipselink.core.resource.orm.XmlTransformationImpl
-	 * @generated
-	 */
-	public EClass getXmlTransformationImpl()
-	{
-		return xmlTransformationImplEClass;
-	}
-
-
-	/**
-	 * Returns the meta object for class '{@link org.eclipse.jpt.eclipselink.core.resource.orm.XmlProperty <em>Xml Property</em>}'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return the meta object for class '<em>Xml Property</em>'.
-	 * @see org.eclipse.jpt.eclipselink.core.resource.orm.XmlProperty
-	 * @generated
-	 */
-	public EClass getXmlProperty()
-	{
-		return xmlPropertyEClass;
-	}
-
-
-	/**
-	 * Returns the meta object for the attribute '{@link org.eclipse.jpt.eclipselink.core.resource.orm.XmlProperty#getName <em>Name</em>}'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return the meta object for the attribute '<em>Name</em>'.
-	 * @see org.eclipse.jpt.eclipselink.core.resource.orm.XmlProperty#getName()
-	 * @see #getXmlProperty()
-	 * @generated
-	 */
-	public EAttribute getXmlProperty_Name()
-	{
-		return (EAttribute)xmlPropertyEClass.getEStructuralFeatures().get(0);
-	}
-
-
-	/**
-	 * Returns the meta object for the attribute '{@link org.eclipse.jpt.eclipselink.core.resource.orm.XmlProperty#getValue <em>Value</em>}'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return the meta object for the attribute '<em>Value</em>'.
-	 * @see org.eclipse.jpt.eclipselink.core.resource.orm.XmlProperty#getValue()
-	 * @see #getXmlProperty()
-	 * @generated
-	 */
-	public EAttribute getXmlProperty_Value()
-	{
-		return (EAttribute)xmlPropertyEClass.getEStructuralFeatures().get(1);
-	}
-
-
-	/**
-	 * Returns the meta object for the attribute '{@link org.eclipse.jpt.eclipselink.core.resource.orm.XmlProperty#getValueType <em>Value Type</em>}'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return the meta object for the attribute '<em>Value Type</em>'.
-	 * @see org.eclipse.jpt.eclipselink.core.resource.orm.XmlProperty#getValueType()
-	 * @see #getXmlProperty()
-	 * @generated
-	 */
-	public EAttribute getXmlProperty_ValueType()
-	{
-		return (EAttribute)xmlPropertyEClass.getEStructuralFeatures().get(2);
-	}
-
-
-	/**
-	 * Returns the meta object for class '{@link org.eclipse.jpt.eclipselink.core.resource.orm.XmlVariableOneToOne <em>Xml Variable One To One</em>}'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return the meta object for class '<em>Xml Variable One To One</em>'.
-	 * @see org.eclipse.jpt.eclipselink.core.resource.orm.XmlVariableOneToOne
-	 * @generated
-	 */
-	public EClass getXmlVariableOneToOne()
-	{
-		return xmlVariableOneToOneEClass;
-	}
-
-
-	/**
-	 * Returns the meta object for the containment reference list '{@link org.eclipse.jpt.eclipselink.core.resource.orm.XmlVariableOneToOne#getProperties <em>Properties</em>}'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return the meta object for the containment reference list '<em>Properties</em>'.
-	 * @see org.eclipse.jpt.eclipselink.core.resource.orm.XmlVariableOneToOne#getProperties()
-	 * @see #getXmlVariableOneToOne()
-	 * @generated
-	 */
-	public EReference getXmlVariableOneToOne_Properties()
-	{
-		return (EReference)xmlVariableOneToOneEClass.getEStructuralFeatures().get(0);
-	}
-
-
-	/**
-	 * Returns the meta object for class '{@link org.eclipse.jpt.eclipselink.core.resource.orm.XmlVariableOneToOneImpl <em>Xml Variable One To One Impl</em>}'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return the meta object for class '<em>Xml Variable One To One Impl</em>'.
-	 * @see org.eclipse.jpt.eclipselink.core.resource.orm.XmlVariableOneToOneImpl
-	 * @generated
-	 */
-	public EClass getXmlVariableOneToOneImpl()
-	{
-		return xmlVariableOneToOneImplEClass;
-	}
-
-
-	/**
-	 * Returns the meta object for enum '{@link org.eclipse.jpt.eclipselink.core.resource.orm.XmlDirection <em>Xml Direction</em>}'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return the meta object for enum '<em>Xml Direction</em>'.
-	 * @see org.eclipse.jpt.eclipselink.core.resource.orm.XmlDirection
-	 * @generated
-	 */
-	public EEnum getXmlDirection()
-	{
-		return xmlDirectionEEnum;
-	}
-
-
-	/**
-	 * Returns the meta object for enum '{@link org.eclipse.jpt.eclipselink.core.resource.orm.XmlChangeTrackingType <em>Xml Change Tracking Type</em>}'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return the meta object for enum '<em>Xml Change Tracking Type</em>'.
-	 * @see org.eclipse.jpt.eclipselink.core.resource.orm.XmlChangeTrackingType
-	 * @generated
-	 */
-	public EEnum getXmlChangeTrackingType()
-	{
-		return xmlChangeTrackingTypeEEnum;
-	}
-
-
-	/**
-	 * Returns the meta object for class '{@link org.eclipse.jpt.eclipselink.core.resource.orm.XmlConverter <em>Xml Converter</em>}'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return the meta object for class '<em>Xml Converter</em>'.
-	 * @see org.eclipse.jpt.eclipselink.core.resource.orm.XmlConverter
-	 * @generated
-	 */
-	public EClass getXmlConverter()
-	{
-		return xmlConverterEClass;
-	}
-
-
-	/**
-	 * Returns the meta object for the attribute '{@link org.eclipse.jpt.eclipselink.core.resource.orm.XmlConverter#getClassName <em>Class Name</em>}'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return the meta object for the attribute '<em>Class Name</em>'.
-	 * @see org.eclipse.jpt.eclipselink.core.resource.orm.XmlConverter#getClassName()
-	 * @see #getXmlConverter()
-	 * @generated
-	 */
-	public EAttribute getXmlConverter_ClassName()
-	{
-		return (EAttribute)xmlConverterEClass.getEStructuralFeatures().get(0);
-	}
-
-
-	/**
-	 * Returns the meta object for class '{@link org.eclipse.jpt.eclipselink.core.resource.orm.XmlConverterImpl <em>Xml Converter Impl</em>}'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return the meta object for class '<em>Xml Converter Impl</em>'.
-	 * @see org.eclipse.jpt.eclipselink.core.resource.orm.XmlConverterImpl
-	 * @generated
-	 */
-	public EClass getXmlConverterImpl()
-	{
-		return xmlConverterImplEClass;
-	}
-
-
-	/**
-	 * Returns the meta object for class '{@link org.eclipse.jpt.eclipselink.core.resource.orm.XmlTypeConverter <em>Xml Type Converter</em>}'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return the meta object for class '<em>Xml Type Converter</em>'.
-	 * @see org.eclipse.jpt.eclipselink.core.resource.orm.XmlTypeConverter
-	 * @generated
-	 */
-	public EClass getXmlTypeConverter()
-	{
-		return xmlTypeConverterEClass;
-	}
-
-
-	/**
-	 * Returns the meta object for the attribute '{@link org.eclipse.jpt.eclipselink.core.resource.orm.XmlTypeConverter#getDataType <em>Data Type</em>}'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return the meta object for the attribute '<em>Data Type</em>'.
-	 * @see org.eclipse.jpt.eclipselink.core.resource.orm.XmlTypeConverter#getDataType()
-	 * @see #getXmlTypeConverter()
-	 * @generated
-	 */
-	public EAttribute getXmlTypeConverter_DataType()
-	{
-		return (EAttribute)xmlTypeConverterEClass.getEStructuralFeatures().get(0);
-	}
-
-
-	/**
-	 * Returns the meta object for the attribute '{@link org.eclipse.jpt.eclipselink.core.resource.orm.XmlTypeConverter#getObjectType <em>Object Type</em>}'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return the meta object for the attribute '<em>Object Type</em>'.
-	 * @see org.eclipse.jpt.eclipselink.core.resource.orm.XmlTypeConverter#getObjectType()
-	 * @see #getXmlTypeConverter()
-	 * @generated
-	 */
-	public EAttribute getXmlTypeConverter_ObjectType()
-	{
-		return (EAttribute)xmlTypeConverterEClass.getEStructuralFeatures().get(1);
-	}
-
-
-	/**
-	 * Returns the meta object for class '{@link org.eclipse.jpt.eclipselink.core.resource.orm.XmlTypeConverterImpl <em>Xml Type Converter Impl</em>}'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return the meta object for class '<em>Xml Type Converter Impl</em>'.
-	 * @see org.eclipse.jpt.eclipselink.core.resource.orm.XmlTypeConverterImpl
-	 * @generated
-	 */
-	public EClass getXmlTypeConverterImpl()
-	{
-		return xmlTypeConverterImplEClass;
-	}
-
-
-	/**
-	 * Returns the meta object for class '{@link org.eclipse.jpt.eclipselink.core.resource.orm.XmlConversionValue <em>Xml Conversion Value</em>}'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return the meta object for class '<em>Xml Conversion Value</em>'.
-	 * @see org.eclipse.jpt.eclipselink.core.resource.orm.XmlConversionValue
-	 * @generated
-	 */
-	public EClass getXmlConversionValue()
-	{
-		return xmlConversionValueEClass;
-	}
-
-
-	/**
-	 * Returns the meta object for the attribute '{@link org.eclipse.jpt.eclipselink.core.resource.orm.XmlConversionValue#getDataValue <em>Data Value</em>}'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return the meta object for the attribute '<em>Data Value</em>'.
-	 * @see org.eclipse.jpt.eclipselink.core.resource.orm.XmlConversionValue#getDataValue()
-	 * @see #getXmlConversionValue()
-	 * @generated
-	 */
-	public EAttribute getXmlConversionValue_DataValue()
-	{
-		return (EAttribute)xmlConversionValueEClass.getEStructuralFeatures().get(0);
-	}
-
-
-	/**
-	 * Returns the meta object for the attribute '{@link org.eclipse.jpt.eclipselink.core.resource.orm.XmlConversionValue#getObjectValue <em>Object Value</em>}'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return the meta object for the attribute '<em>Object Value</em>'.
-	 * @see org.eclipse.jpt.eclipselink.core.resource.orm.XmlConversionValue#getObjectValue()
-	 * @see #getXmlConversionValue()
-	 * @generated
-	 */
-	public EAttribute getXmlConversionValue_ObjectValue()
-	{
-		return (EAttribute)xmlConversionValueEClass.getEStructuralFeatures().get(1);
-	}
-
-
-	/**
-	 * Returns the meta object for class '{@link org.eclipse.jpt.eclipselink.core.resource.orm.XmlConversionValueImpl <em>Xml Conversion Value Impl</em>}'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return the meta object for class '<em>Xml Conversion Value Impl</em>'.
-	 * @see org.eclipse.jpt.eclipselink.core.resource.orm.XmlConversionValueImpl
-	 * @generated
-	 */
-	public EClass getXmlConversionValueImpl()
-	{
-		return xmlConversionValueImplEClass;
-	}
-
-
-	/**
-	 * Returns the meta object for class '{@link org.eclipse.jpt.eclipselink.core.resource.orm.XmlObjectTypeConverter <em>Xml Object Type Converter</em>}'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return the meta object for class '<em>Xml Object Type Converter</em>'.
-	 * @see org.eclipse.jpt.eclipselink.core.resource.orm.XmlObjectTypeConverter
-	 * @generated
-	 */
-	public EClass getXmlObjectTypeConverter()
-	{
-		return xmlObjectTypeConverterEClass;
-	}
-
-
-	/**
-	 * Returns the meta object for the attribute '{@link org.eclipse.jpt.eclipselink.core.resource.orm.XmlObjectTypeConverter#getDataType <em>Data Type</em>}'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return the meta object for the attribute '<em>Data Type</em>'.
-	 * @see org.eclipse.jpt.eclipselink.core.resource.orm.XmlObjectTypeConverter#getDataType()
-	 * @see #getXmlObjectTypeConverter()
-	 * @generated
-	 */
-	public EAttribute getXmlObjectTypeConverter_DataType()
-	{
-		return (EAttribute)xmlObjectTypeConverterEClass.getEStructuralFeatures().get(0);
-	}
-
-
-	/**
-	 * Returns the meta object for the attribute '{@link org.eclipse.jpt.eclipselink.core.resource.orm.XmlObjectTypeConverter#getObjectType <em>Object Type</em>}'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return the meta object for the attribute '<em>Object Type</em>'.
-	 * @see org.eclipse.jpt.eclipselink.core.resource.orm.XmlObjectTypeConverter#getObjectType()
-	 * @see #getXmlObjectTypeConverter()
-	 * @generated
-	 */
-	public EAttribute getXmlObjectTypeConverter_ObjectType()
-	{
-		return (EAttribute)xmlObjectTypeConverterEClass.getEStructuralFeatures().get(1);
-	}
-
-
-	/**
-	 * Returns the meta object for class '{@link org.eclipse.jpt.eclipselink.core.resource.orm.XmlObjectTypeConverterImpl <em>Xml Object Type Converter Impl</em>}'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return the meta object for class '<em>Xml Object Type Converter Impl</em>'.
-	 * @see org.eclipse.jpt.eclipselink.core.resource.orm.XmlObjectTypeConverterImpl
-	 * @generated
-	 */
-	public EClass getXmlObjectTypeConverterImpl()
-	{
-		return xmlObjectTypeConverterImplEClass;
-	}
-
-
-	/**
-	 * Returns the meta object for the containment reference list '{@link org.eclipse.jpt.eclipselink.core.resource.orm.XmlObjectTypeConverter#getConversionValues <em>Conversion Values</em>}'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return the meta object for the containment reference list '<em>Conversion Values</em>'.
-	 * @see org.eclipse.jpt.eclipselink.core.resource.orm.XmlObjectTypeConverter#getConversionValues()
-	 * @see #getXmlObjectTypeConverter()
-	 * @generated
-	 */
-	public EReference getXmlObjectTypeConverter_ConversionValues()
-	{
-		return (EReference)xmlObjectTypeConverterEClass.getEStructuralFeatures().get(2);
-	}
-
-
-	/**
-	 * Returns the meta object for the attribute '{@link org.eclipse.jpt.eclipselink.core.resource.orm.XmlObjectTypeConverter#getDefaultObjectValue <em>Default Object Value</em>}'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return the meta object for the attribute '<em>Default Object Value</em>'.
-	 * @see org.eclipse.jpt.eclipselink.core.resource.orm.XmlObjectTypeConverter#getDefaultObjectValue()
-	 * @see #getXmlObjectTypeConverter()
-	 * @generated
-	 */
-	public EAttribute getXmlObjectTypeConverter_DefaultObjectValue()
-	{
-		return (EAttribute)xmlObjectTypeConverterEClass.getEStructuralFeatures().get(3);
-	}
-
-
-	/**
-	 * Returns the meta object for class '{@link org.eclipse.jpt.eclipselink.core.resource.orm.XmlStructConverter <em>Xml Struct Converter</em>}'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return the meta object for class '<em>Xml Struct Converter</em>'.
-	 * @see org.eclipse.jpt.eclipselink.core.resource.orm.XmlStructConverter
-	 * @generated
-	 */
-	public EClass getXmlStructConverter()
-	{
-		return xmlStructConverterEClass;
-	}
-
-
-	/**
-	 * Returns the meta object for the attribute '{@link org.eclipse.jpt.eclipselink.core.resource.orm.XmlStructConverter#getConverter <em>Converter</em>}'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return the meta object for the attribute '<em>Converter</em>'.
-	 * @see org.eclipse.jpt.eclipselink.core.resource.orm.XmlStructConverter#getConverter()
-	 * @see #getXmlStructConverter()
-	 * @generated
-	 */
-	public EAttribute getXmlStructConverter_Converter()
-	{
-		return (EAttribute)xmlStructConverterEClass.getEStructuralFeatures().get(0);
-	}
-
-
-	/**
-	 * Returns the meta object for class '{@link org.eclipse.jpt.eclipselink.core.resource.orm.XmlStructConverterImpl <em>Xml Struct Converter Impl</em>}'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return the meta object for class '<em>Xml Struct Converter Impl</em>'.
-	 * @see org.eclipse.jpt.eclipselink.core.resource.orm.XmlStructConverterImpl
-	 * @generated
-	 */
-	public EClass getXmlStructConverterImpl()
-	{
-		return xmlStructConverterImplEClass;
-	}
-
-
-	/**
-	 * Returns the meta object for class '{@link org.eclipse.jpt.eclipselink.core.resource.orm.XmlConverterHolder <em>Xml Converter Holder</em>}'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return the meta object for class '<em>Xml Converter Holder</em>'.
-	 * @see org.eclipse.jpt.eclipselink.core.resource.orm.XmlConverterHolder
-	 * @generated
-	 */
-	public EClass getXmlConverterHolder()
-	{
-		return xmlConverterHolderEClass;
-	}
-
-
-	/**
-	 * Returns the meta object for the containment reference '{@link org.eclipse.jpt.eclipselink.core.resource.orm.XmlConverterHolder#getConverter <em>Converter</em>}'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return the meta object for the containment reference '<em>Converter</em>'.
-	 * @see org.eclipse.jpt.eclipselink.core.resource.orm.XmlConverterHolder#getConverter()
-	 * @see #getXmlConverterHolder()
-	 * @generated
-	 */
-	public EReference getXmlConverterHolder_Converter()
-	{
-		return (EReference)xmlConverterHolderEClass.getEStructuralFeatures().get(0);
-	}
-
-
-	/**
-	 * Returns the meta object for the containment reference '{@link org.eclipse.jpt.eclipselink.core.resource.orm.XmlConverterHolder#getTypeConverter <em>Type Converter</em>}'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return the meta object for the containment reference '<em>Type Converter</em>'.
-	 * @see org.eclipse.jpt.eclipselink.core.resource.orm.XmlConverterHolder#getTypeConverter()
-	 * @see #getXmlConverterHolder()
-	 * @generated
-	 */
-	public EReference getXmlConverterHolder_TypeConverter()
-	{
-		return (EReference)xmlConverterHolderEClass.getEStructuralFeatures().get(1);
-	}
-
-
-	/**
-	 * Returns the meta object for the containment reference '{@link org.eclipse.jpt.eclipselink.core.resource.orm.XmlConverterHolder#getObjectTypeConverter <em>Object Type Converter</em>}'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return the meta object for the containment reference '<em>Object Type Converter</em>'.
-	 * @see org.eclipse.jpt.eclipselink.core.resource.orm.XmlConverterHolder#getObjectTypeConverter()
-	 * @see #getXmlConverterHolder()
-	 * @generated
-	 */
-	public EReference getXmlConverterHolder_ObjectTypeConverter()
-	{
-		return (EReference)xmlConverterHolderEClass.getEStructuralFeatures().get(2);
-	}
-
-
-	/**
-	 * Returns the meta object for the containment reference '{@link org.eclipse.jpt.eclipselink.core.resource.orm.XmlConverterHolder#getStructConverter <em>Struct Converter</em>}'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return the meta object for the containment reference '<em>Struct Converter</em>'.
-	 * @see org.eclipse.jpt.eclipselink.core.resource.orm.XmlConverterHolder#getStructConverter()
-	 * @see #getXmlConverterHolder()
-	 * @generated
-	 */
-	public EReference getXmlConverterHolder_StructConverter()
-	{
-		return (EReference)xmlConverterHolderEClass.getEStructuralFeatures().get(3);
-	}
-
-
-	/**
-	 * Returns the meta object for enum '{@link org.eclipse.jpt.eclipselink.core.resource.orm.CacheType <em>Cache Type</em>}'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return the meta object for enum '<em>Cache Type</em>'.
-	 * @see org.eclipse.jpt.eclipselink.core.resource.orm.CacheType
-	 * @generated
-	 */
-	public EEnum getCacheType()
-	{
-		return cacheTypeEEnum;
-	}
-
-	/**
-	 * Returns the meta object for enum '{@link org.eclipse.jpt.eclipselink.core.resource.orm.CacheCoordinationType <em>Cache Coordination Type</em>}'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return the meta object for enum '<em>Cache Coordination Type</em>'.
-	 * @see org.eclipse.jpt.eclipselink.core.resource.orm.CacheCoordinationType
-	 * @generated
-	 */
-	public EEnum getCacheCoordinationType()
-	{
-		return cacheCoordinationTypeEEnum;
-	}
-
-	/**
-	 * Returns the meta object for enum '{@link org.eclipse.jpt.eclipselink.core.resource.orm.XmlJoinFetchType <em>Xml Join Fetch Type</em>}'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return the meta object for enum '<em>Xml Join Fetch Type</em>'.
-	 * @see org.eclipse.jpt.eclipselink.core.resource.orm.XmlJoinFetchType
-	 * @generated
-	 */
-	public EEnum getXmlJoinFetchType()
-	{
-		return xmlJoinFetchTypeEEnum;
-	}
-
-	/**
-	 * Returns the meta object for enum '{@link org.eclipse.jpt.eclipselink.core.resource.orm.ExistenceType <em>Existence Type</em>}'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return the meta object for enum '<em>Existence Type</em>'.
-	 * @see org.eclipse.jpt.eclipselink.core.resource.orm.ExistenceType
-	 * @generated
-	 */
-	public EEnum getExistenceType()
-	{
-		return existenceTypeEEnum;
-	}
-
-	/**
-	 * Returns the meta object for enum '{@link org.eclipse.jpt.eclipselink.core.resource.orm.XmlOptimisticLockingType <em>Xml Optimistic Locking Type</em>}'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return the meta object for enum '<em>Xml Optimistic Locking Type</em>'.
-	 * @see org.eclipse.jpt.eclipselink.core.resource.orm.XmlOptimisticLockingType
-	 * @generated
-	 */
-	public EEnum getXmlOptimisticLockingType()
-	{
-		return xmlOptimisticLockingTypeEEnum;
-	}
-
-
-	/**
-	 * Returns the factory that creates the instances of the model.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return the factory that creates the instances of the model.
-	 * @generated
-	 */
-	public EclipseLinkOrmFactory getEclipseLinkOrmFactory()
-	{
-		return (EclipseLinkOrmFactory)getEFactoryInstance();
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	private boolean isCreated = false;
-
-	/**
-	 * Creates the meta-model objects for the package.  This method is
-	 * guarded to have no affect on any invocation but its first.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public void createPackageContents()
-	{
-		if (isCreated) return;
-		isCreated = true;
-
-		// Create classes and their features
-		xmlNamedConverterEClass = createEClass(XML_NAMED_CONVERTER);
-		createEAttribute(xmlNamedConverterEClass, XML_NAMED_CONVERTER__NAME);
-
-		xmlConverterEClass = createEClass(XML_CONVERTER);
-		createEAttribute(xmlConverterEClass, XML_CONVERTER__CLASS_NAME);
-
-		xmlConverterImplEClass = createEClass(XML_CONVERTER_IMPL);
-
-		xmlTypeConverterEClass = createEClass(XML_TYPE_CONVERTER);
-		createEAttribute(xmlTypeConverterEClass, XML_TYPE_CONVERTER__DATA_TYPE);
-		createEAttribute(xmlTypeConverterEClass, XML_TYPE_CONVERTER__OBJECT_TYPE);
-
-		xmlTypeConverterImplEClass = createEClass(XML_TYPE_CONVERTER_IMPL);
-
-		xmlConversionValueEClass = createEClass(XML_CONVERSION_VALUE);
-		createEAttribute(xmlConversionValueEClass, XML_CONVERSION_VALUE__DATA_VALUE);
-		createEAttribute(xmlConversionValueEClass, XML_CONVERSION_VALUE__OBJECT_VALUE);
-
-		xmlConversionValueImplEClass = createEClass(XML_CONVERSION_VALUE_IMPL);
-
-		xmlObjectTypeConverterEClass = createEClass(XML_OBJECT_TYPE_CONVERTER);
-		createEAttribute(xmlObjectTypeConverterEClass, XML_OBJECT_TYPE_CONVERTER__DATA_TYPE);
-		createEAttribute(xmlObjectTypeConverterEClass, XML_OBJECT_TYPE_CONVERTER__OBJECT_TYPE);
-		createEReference(xmlObjectTypeConverterEClass, XML_OBJECT_TYPE_CONVERTER__CONVERSION_VALUES);
-		createEAttribute(xmlObjectTypeConverterEClass, XML_OBJECT_TYPE_CONVERTER__DEFAULT_OBJECT_VALUE);
-
-		xmlObjectTypeConverterImplEClass = createEClass(XML_OBJECT_TYPE_CONVERTER_IMPL);
-
-		xmlStructConverterEClass = createEClass(XML_STRUCT_CONVERTER);
-		createEAttribute(xmlStructConverterEClass, XML_STRUCT_CONVERTER__CONVERTER);
-
-		xmlStructConverterImplEClass = createEClass(XML_STRUCT_CONVERTER_IMPL);
-
-		xmlConvertersHolderEClass = createEClass(XML_CONVERTERS_HOLDER);
-		createEReference(xmlConvertersHolderEClass, XML_CONVERTERS_HOLDER__CONVERTERS);
-		createEReference(xmlConvertersHolderEClass, XML_CONVERTERS_HOLDER__TYPE_CONVERTERS);
-		createEReference(xmlConvertersHolderEClass, XML_CONVERTERS_HOLDER__OBJECT_TYPE_CONVERTERS);
-		createEReference(xmlConvertersHolderEClass, XML_CONVERTERS_HOLDER__STRUCT_CONVERTERS);
-
-		xmlStoredProcedureParameterEClass = createEClass(XML_STORED_PROCEDURE_PARAMETER);
-		createEAttribute(xmlStoredProcedureParameterEClass, XML_STORED_PROCEDURE_PARAMETER__DIRECTION);
-		createEAttribute(xmlStoredProcedureParameterEClass, XML_STORED_PROCEDURE_PARAMETER__NAME);
-		createEAttribute(xmlStoredProcedureParameterEClass, XML_STORED_PROCEDURE_PARAMETER__QUERY_PARAMETER);
-		createEAttribute(xmlStoredProcedureParameterEClass, XML_STORED_PROCEDURE_PARAMETER__TYPE);
-		createEAttribute(xmlStoredProcedureParameterEClass, XML_STORED_PROCEDURE_PARAMETER__JDBC_TYPE);
-		createEAttribute(xmlStoredProcedureParameterEClass, XML_STORED_PROCEDURE_PARAMETER__JDBC_TYPE_NAME);
-
-		xmlNamedStoredProcedureQueryEClass = createEClass(XML_NAMED_STORED_PROCEDURE_QUERY);
-		createEAttribute(xmlNamedStoredProcedureQueryEClass, XML_NAMED_STORED_PROCEDURE_QUERY__NAME);
-		createEAttribute(xmlNamedStoredProcedureQueryEClass, XML_NAMED_STORED_PROCEDURE_QUERY__RESULT_CLASS);
-		createEAttribute(xmlNamedStoredProcedureQueryEClass, XML_NAMED_STORED_PROCEDURE_QUERY__RESULT_SET_MAPPING);
-		createEAttribute(xmlNamedStoredProcedureQueryEClass, XML_NAMED_STORED_PROCEDURE_QUERY__PROCEDURE_NAME);
-		createEAttribute(xmlNamedStoredProcedureQueryEClass, XML_NAMED_STORED_PROCEDURE_QUERY__RETURNS_RESULT_SET);
-		createEReference(xmlNamedStoredProcedureQueryEClass, XML_NAMED_STORED_PROCEDURE_QUERY__HINTS);
-		createEReference(xmlNamedStoredProcedureQueryEClass, XML_NAMED_STORED_PROCEDURE_QUERY__PARAMETERS);
-
-		xmlEntityMappingsEClass = createEClass(XML_ENTITY_MAPPINGS);
-		createEReference(xmlEntityMappingsEClass, XML_ENTITY_MAPPINGS__NAMED_STORED_PROCEDURE_QUERIES);
-
-		xmlPersistenceUnitMetadataEClass = createEClass(XML_PERSISTENCE_UNIT_METADATA);
-		createEAttribute(xmlPersistenceUnitMetadataEClass, XML_PERSISTENCE_UNIT_METADATA__EXCLUDE_DEFAULT_MAPPINGS);
-
-		xmlCustomizerEClass = createEClass(XML_CUSTOMIZER);
-		createEAttribute(xmlCustomizerEClass, XML_CUSTOMIZER__CUSTOMIZER_CLASS_NAME);
-
-		xmlCustomizerHolderEClass = createEClass(XML_CUSTOMIZER_HOLDER);
-		createEReference(xmlCustomizerHolderEClass, XML_CUSTOMIZER_HOLDER__CUSTOMIZER);
-
-		xmlChangeTrackingEClass = createEClass(XML_CHANGE_TRACKING);
-		createEAttribute(xmlChangeTrackingEClass, XML_CHANGE_TRACKING__TYPE);
-
-		xmlChangeTrackingHolderEClass = createEClass(XML_CHANGE_TRACKING_HOLDER);
-		createEReference(xmlChangeTrackingHolderEClass, XML_CHANGE_TRACKING_HOLDER__CHANGE_TRACKING);
-
-		xmlCopyPolicyEClass = createEClass(XML_COPY_POLICY);
-		createEAttribute(xmlCopyPolicyEClass, XML_COPY_POLICY__CLASS);
-
-		xmlInstantiationPolicyEClass = createEClass(XML_INSTANTIATION_POLICY);
-
-		xmlCloneCopyPolicyEClass = createEClass(XML_CLONE_COPY_POLICY);
-		createEAttribute(xmlCloneCopyPolicyEClass, XML_CLONE_COPY_POLICY__METHOD);
-		createEAttribute(xmlCloneCopyPolicyEClass, XML_CLONE_COPY_POLICY__WORKING_COPY_METHOD);
-
-		xmlEmbeddableEClass = createEClass(XML_EMBEDDABLE);
-		createEReference(xmlEmbeddableEClass, XML_EMBEDDABLE__COPY_POLICY);
-		createEReference(xmlEmbeddableEClass, XML_EMBEDDABLE__INSTANTIATION_COPY_POLICY);
-		createEReference(xmlEmbeddableEClass, XML_EMBEDDABLE__CLONE_COPY_POLICY);
-		createEReference(xmlEmbeddableEClass, XML_EMBEDDABLE__PROPERTIES);
-		createEAttribute(xmlEmbeddableEClass, XML_EMBEDDABLE__EXCLUDE_DEFAULT_MAPPINGS);
-
-		xmlReadOnlyEClass = createEClass(XML_READ_ONLY);
-		createEAttribute(xmlReadOnlyEClass, XML_READ_ONLY__READ_ONLY);
-
-		xmlTimeOfDayEClass = createEClass(XML_TIME_OF_DAY);
-		createEAttribute(xmlTimeOfDayEClass, XML_TIME_OF_DAY__HOUR);
-		createEAttribute(xmlTimeOfDayEClass, XML_TIME_OF_DAY__MINUTE);
-		createEAttribute(xmlTimeOfDayEClass, XML_TIME_OF_DAY__SECOND);
-		createEAttribute(xmlTimeOfDayEClass, XML_TIME_OF_DAY__MILLISECOND);
-
-		xmlCacheEClass = createEClass(XML_CACHE);
-		createEAttribute(xmlCacheEClass, XML_CACHE__EXPIRY);
-		createEAttribute(xmlCacheEClass, XML_CACHE__SIZE);
-		createEAttribute(xmlCacheEClass, XML_CACHE__SHARED);
-		createEAttribute(xmlCacheEClass, XML_CACHE__TYPE);
-		createEAttribute(xmlCacheEClass, XML_CACHE__ALWAYS_REFRESH);
-		createEAttribute(xmlCacheEClass, XML_CACHE__REFRESH_ONLY_IF_NEWER);
-		createEAttribute(xmlCacheEClass, XML_CACHE__DISABLE_HITS);
-		createEAttribute(xmlCacheEClass, XML_CACHE__COORDINATION_TYPE);
-		createEReference(xmlCacheEClass, XML_CACHE__EXPIRY_TIME_OF_DAY);
-
-		xmlCacheHolderEClass = createEClass(XML_CACHE_HOLDER);
-		createEReference(xmlCacheHolderEClass, XML_CACHE_HOLDER__CACHE);
-		createEAttribute(xmlCacheHolderEClass, XML_CACHE_HOLDER__EXISTENCE_CHECKING);
-
-		xmlOptimisticLockingEClass = createEClass(XML_OPTIMISTIC_LOCKING);
-		createEAttribute(xmlOptimisticLockingEClass, XML_OPTIMISTIC_LOCKING__TYPE);
-		createEAttribute(xmlOptimisticLockingEClass, XML_OPTIMISTIC_LOCKING__CASCADE);
-		createEReference(xmlOptimisticLockingEClass, XML_OPTIMISTIC_LOCKING__SELECTED_COLUMNS);
-
-		xmlEntityEClass = createEClass(XML_ENTITY);
-		createEReference(xmlEntityEClass, XML_ENTITY__OPTIMISTIC_LOCKING);
-		createEReference(xmlEntityEClass, XML_ENTITY__COPY_POLICY);
-		createEReference(xmlEntityEClass, XML_ENTITY__INSTANTIATION_COPY_POLICY);
-		createEReference(xmlEntityEClass, XML_ENTITY__CLONE_COPY_POLICY);
-		createEReference(xmlEntityEClass, XML_ENTITY__NAMED_STORED_PROCEDURE_QUERIES);
-		createEReference(xmlEntityEClass, XML_ENTITY__PROPERTIES);
-		createEAttribute(xmlEntityEClass, XML_ENTITY__EXCLUDE_DEFAULT_MAPPINGS);
-
-		xmlMappedSuperclassEClass = createEClass(XML_MAPPED_SUPERCLASS);
-		createEReference(xmlMappedSuperclassEClass, XML_MAPPED_SUPERCLASS__OPTIMISTIC_LOCKING);
-		createEReference(xmlMappedSuperclassEClass, XML_MAPPED_SUPERCLASS__COPY_POLICY);
-		createEReference(xmlMappedSuperclassEClass, XML_MAPPED_SUPERCLASS__INSTANTIATION_COPY_POLICY);
-		createEReference(xmlMappedSuperclassEClass, XML_MAPPED_SUPERCLASS__CLONE_COPY_POLICY);
-		createEReference(xmlMappedSuperclassEClass, XML_MAPPED_SUPERCLASS__PROPERTIES);
-		createEAttribute(xmlMappedSuperclassEClass, XML_MAPPED_SUPERCLASS__EXCLUDE_DEFAULT_MAPPINGS);
-
-		xmlMutableEClass = createEClass(XML_MUTABLE);
-		createEAttribute(xmlMutableEClass, XML_MUTABLE__MUTABLE);
-
-		xmlConverterHolderEClass = createEClass(XML_CONVERTER_HOLDER);
-		createEReference(xmlConverterHolderEClass, XML_CONVERTER_HOLDER__CONVERTER);
-		createEReference(xmlConverterHolderEClass, XML_CONVERTER_HOLDER__TYPE_CONVERTER);
-		createEReference(xmlConverterHolderEClass, XML_CONVERTER_HOLDER__OBJECT_TYPE_CONVERTER);
-		createEReference(xmlConverterHolderEClass, XML_CONVERTER_HOLDER__STRUCT_CONVERTER);
-
-		xmlConvertibleMappingEClass = createEClass(XML_CONVERTIBLE_MAPPING);
-		createEAttribute(xmlConvertibleMappingEClass, XML_CONVERTIBLE_MAPPING__CONVERT);
-
-		xmlAccessMethodsEClass = createEClass(XML_ACCESS_METHODS);
-		createEAttribute(xmlAccessMethodsEClass, XML_ACCESS_METHODS__GET_METHOD);
-		createEAttribute(xmlAccessMethodsEClass, XML_ACCESS_METHODS__SET_METHOD);
-
-		xmlAccessMethodsHolderEClass = createEClass(XML_ACCESS_METHODS_HOLDER);
-		createEReference(xmlAccessMethodsHolderEClass, XML_ACCESS_METHODS_HOLDER__ACCESS_METHODS);
-
-		xmlPropertyEClass = createEClass(XML_PROPERTY);
-		createEAttribute(xmlPropertyEClass, XML_PROPERTY__NAME);
-		createEAttribute(xmlPropertyEClass, XML_PROPERTY__VALUE);
-		createEAttribute(xmlPropertyEClass, XML_PROPERTY__VALUE_TYPE);
-
-		xmlIdEClass = createEClass(XML_ID);
-		createEReference(xmlIdEClass, XML_ID__PROPERTIES);
-
-		xmlIdImplEClass = createEClass(XML_ID_IMPL);
-
-		xmlEmbeddedIdEClass = createEClass(XML_EMBEDDED_ID);
-		createEReference(xmlEmbeddedIdEClass, XML_EMBEDDED_ID__PROPERTIES);
-
-		xmlEmbeddedIdImplEClass = createEClass(XML_EMBEDDED_ID_IMPL);
-
-		xmlEmbeddedEClass = createEClass(XML_EMBEDDED);
-		createEReference(xmlEmbeddedEClass, XML_EMBEDDED__PROPERTIES);
-
-		xmlEmbeddedImplEClass = createEClass(XML_EMBEDDED_IMPL);
-
-		xmlBasicEClass = createEClass(XML_BASIC);
-		createEReference(xmlBasicEClass, XML_BASIC__PROPERTIES);
-
-		xmlBasicImplEClass = createEClass(XML_BASIC_IMPL);
-
-		xmlVersionEClass = createEClass(XML_VERSION);
-		createEReference(xmlVersionEClass, XML_VERSION__PROPERTIES);
-
-		xmlVersionImplEClass = createEClass(XML_VERSION_IMPL);
-
-		xmlPrivateOwnedEClass = createEClass(XML_PRIVATE_OWNED);
-		createEAttribute(xmlPrivateOwnedEClass, XML_PRIVATE_OWNED__PRIVATE_OWNED);
-
-		xmlJoinFetchEClass = createEClass(XML_JOIN_FETCH);
-		createEAttribute(xmlJoinFetchEClass, XML_JOIN_FETCH__JOIN_FETCH);
-
-		xmlOneToOneEClass = createEClass(XML_ONE_TO_ONE);
-		createEReference(xmlOneToOneEClass, XML_ONE_TO_ONE__PROPERTIES);
-
-		xmlOneToOneImplEClass = createEClass(XML_ONE_TO_ONE_IMPL);
-
-		xmlOneToManyEClass = createEClass(XML_ONE_TO_MANY);
-		createEReference(xmlOneToManyEClass, XML_ONE_TO_MANY__PROPERTIES);
-
-		xmlOneToManyImplEClass = createEClass(XML_ONE_TO_MANY_IMPL);
-
-		xmlManyToOneEClass = createEClass(XML_MANY_TO_ONE);
-		createEReference(xmlManyToOneEClass, XML_MANY_TO_ONE__PROPERTIES);
-
-		xmlManyToOneImplEClass = createEClass(XML_MANY_TO_ONE_IMPL);
-
-		xmlManyToManyEClass = createEClass(XML_MANY_TO_MANY);
-		createEReference(xmlManyToManyEClass, XML_MANY_TO_MANY__PROPERTIES);
-
-		xmlManyToManyImplEClass = createEClass(XML_MANY_TO_MANY_IMPL);
-
-		xmlBasicCollectionEClass = createEClass(XML_BASIC_COLLECTION);
-		createEReference(xmlBasicCollectionEClass, XML_BASIC_COLLECTION__PROPERTIES);
-
-		xmlBasicCollectionImplEClass = createEClass(XML_BASIC_COLLECTION_IMPL);
-
-		xmlBasicMapEClass = createEClass(XML_BASIC_MAP);
-		createEReference(xmlBasicMapEClass, XML_BASIC_MAP__PROPERTIES);
-
-		xmlBasicMapImplEClass = createEClass(XML_BASIC_MAP_IMPL);
-
-		xmlTransformationEClass = createEClass(XML_TRANSFORMATION);
-		createEReference(xmlTransformationEClass, XML_TRANSFORMATION__PROPERTIES);
-
-		xmlTransformationImplEClass = createEClass(XML_TRANSFORMATION_IMPL);
-
-		xmlVariableOneToOneEClass = createEClass(XML_VARIABLE_ONE_TO_ONE);
-		createEReference(xmlVariableOneToOneEClass, XML_VARIABLE_ONE_TO_ONE__PROPERTIES);
-
-		xmlVariableOneToOneImplEClass = createEClass(XML_VARIABLE_ONE_TO_ONE_IMPL);
-
-		attributesEClass = createEClass(ATTRIBUTES);
-		createEReference(attributesEClass, ATTRIBUTES__BASIC_COLLECTIONS);
-		createEReference(attributesEClass, ATTRIBUTES__BASIC_MAPS);
-		createEReference(attributesEClass, ATTRIBUTES__TRANSFORMATIONS);
-		createEReference(attributesEClass, ATTRIBUTES__VARIABLE_ONE_TO_ONES);
-
-		// Create enums
-		xmlDirectionEEnum = createEEnum(XML_DIRECTION);
-		xmlChangeTrackingTypeEEnum = createEEnum(XML_CHANGE_TRACKING_TYPE);
-		cacheTypeEEnum = createEEnum(CACHE_TYPE);
-		cacheCoordinationTypeEEnum = createEEnum(CACHE_COORDINATION_TYPE);
-		existenceTypeEEnum = createEEnum(EXISTENCE_TYPE);
-		xmlOptimisticLockingTypeEEnum = createEEnum(XML_OPTIMISTIC_LOCKING_TYPE);
-		xmlJoinFetchTypeEEnum = createEEnum(XML_JOIN_FETCH_TYPE);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	private boolean isInitialized = false;
-
-	/**
-	 * Complete the initialization of the package and its meta-model.  This
-	 * method is guarded to have no affect on any invocation but its first.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public void initializePackageContents()
-	{
-		if (isInitialized) return;
-		isInitialized = true;
-
-		// Initialize package
-		setName(eNAME);
-		setNsPrefix(eNS_PREFIX);
-		setNsURI(eNS_URI);
-
-		// Obtain other dependent packages
-		XMLTypePackage theXMLTypePackage = (XMLTypePackage)EPackage.Registry.INSTANCE.getEPackage(XMLTypePackage.eNS_URI);
-		OrmPackage theOrmPackage = (OrmPackage)EPackage.Registry.INSTANCE.getEPackage(OrmPackage.eNS_URI);
-
-		// Create type parameters
-
-		// Set bounds for type parameters
-
-		// Add supertypes to classes
-		xmlConverterEClass.getESuperTypes().add(this.getXmlNamedConverter());
-		xmlConverterImplEClass.getESuperTypes().add(this.getXmlConverter());
-		xmlTypeConverterEClass.getESuperTypes().add(this.getXmlNamedConverter());
-		xmlTypeConverterImplEClass.getESuperTypes().add(this.getXmlTypeConverter());
-		xmlConversionValueImplEClass.getESuperTypes().add(this.getXmlConversionValue());
-		xmlObjectTypeConverterEClass.getESuperTypes().add(this.getXmlNamedConverter());
-		xmlObjectTypeConverterImplEClass.getESuperTypes().add(this.getXmlObjectTypeConverter());
-		xmlStructConverterEClass.getESuperTypes().add(this.getXmlNamedConverter());
-		xmlStructConverterImplEClass.getESuperTypes().add(this.getXmlStructConverter());
-		xmlEntityMappingsEClass.getESuperTypes().add(theOrmPackage.getXmlEntityMappings());
-		xmlEntityMappingsEClass.getESuperTypes().add(this.getXmlConvertersHolder());
-		xmlPersistenceUnitMetadataEClass.getESuperTypes().add(theOrmPackage.getXmlPersistenceUnitMetadata());
-		xmlEmbeddableEClass.getESuperTypes().add(theOrmPackage.getXmlEmbeddable());
-		xmlEmbeddableEClass.getESuperTypes().add(this.getXmlCustomizerHolder());
-		xmlEmbeddableEClass.getESuperTypes().add(this.getXmlChangeTrackingHolder());
-		xmlEmbeddableEClass.getESuperTypes().add(this.getXmlConvertersHolder());
-		xmlEntityEClass.getESuperTypes().add(theOrmPackage.getXmlEntity());
-		xmlEntityEClass.getESuperTypes().add(this.getXmlReadOnly());
-		xmlEntityEClass.getESuperTypes().add(this.getXmlCustomizerHolder());
-		xmlEntityEClass.getESuperTypes().add(this.getXmlChangeTrackingHolder());
-		xmlEntityEClass.getESuperTypes().add(this.getXmlCacheHolder());
-		xmlEntityEClass.getESuperTypes().add(this.getXmlConvertersHolder());
-		xmlMappedSuperclassEClass.getESuperTypes().add(theOrmPackage.getXmlMappedSuperclass());
-		xmlMappedSuperclassEClass.getESuperTypes().add(this.getXmlReadOnly());
-		xmlMappedSuperclassEClass.getESuperTypes().add(this.getXmlCustomizerHolder());
-		xmlMappedSuperclassEClass.getESuperTypes().add(this.getXmlChangeTrackingHolder());
-		xmlMappedSuperclassEClass.getESuperTypes().add(this.getXmlCacheHolder());
-		xmlMappedSuperclassEClass.getESuperTypes().add(this.getXmlConvertersHolder());
-		xmlConvertibleMappingEClass.getESuperTypes().add(theOrmPackage.getXmlConvertibleMapping());
-		xmlConvertibleMappingEClass.getESuperTypes().add(this.getXmlConverterHolder());
-		xmlIdEClass.getESuperTypes().add(theOrmPackage.getXmlId());
-		xmlIdEClass.getESuperTypes().add(this.getXmlMutable());
-		xmlIdEClass.getESuperTypes().add(this.getXmlConvertibleMapping());
-		xmlIdEClass.getESuperTypes().add(this.getXmlAccessMethodsHolder());
-		xmlIdImplEClass.getESuperTypes().add(theOrmPackage.getXmlIdImpl());
-		xmlIdImplEClass.getESuperTypes().add(this.getXmlId());
-		xmlEmbeddedIdEClass.getESuperTypes().add(theOrmPackage.getXmlEmbeddedId());
-		xmlEmbeddedIdEClass.getESuperTypes().add(this.getXmlAccessMethodsHolder());
-		xmlEmbeddedIdImplEClass.getESuperTypes().add(theOrmPackage.getXmlEmbeddedIdImpl());
-		xmlEmbeddedIdImplEClass.getESuperTypes().add(this.getXmlEmbeddedId());
-		xmlEmbeddedEClass.getESuperTypes().add(theOrmPackage.getXmlEmbedded());
-		xmlEmbeddedEClass.getESuperTypes().add(this.getXmlAccessMethodsHolder());
-		xmlEmbeddedImplEClass.getESuperTypes().add(theOrmPackage.getXmlEmbeddedImpl());
-		xmlEmbeddedImplEClass.getESuperTypes().add(this.getXmlEmbedded());
-		xmlBasicEClass.getESuperTypes().add(theOrmPackage.getXmlBasic());
-		xmlBasicEClass.getESuperTypes().add(this.getXmlMutable());
-		xmlBasicEClass.getESuperTypes().add(this.getXmlConvertibleMapping());
-		xmlBasicEClass.getESuperTypes().add(this.getXmlAccessMethodsHolder());
-		xmlBasicImplEClass.getESuperTypes().add(theOrmPackage.getXmlBasicImpl());
-		xmlBasicImplEClass.getESuperTypes().add(this.getXmlBasic());
-		xmlVersionEClass.getESuperTypes().add(theOrmPackage.getXmlVersion());
-		xmlVersionEClass.getESuperTypes().add(this.getXmlMutable());
-		xmlVersionEClass.getESuperTypes().add(this.getXmlConvertibleMapping());
-		xmlVersionEClass.getESuperTypes().add(this.getXmlAccessMethodsHolder());
-		xmlVersionImplEClass.getESuperTypes().add(theOrmPackage.getXmlVersionImpl());
-		xmlVersionImplEClass.getESuperTypes().add(this.getXmlVersion());
-		xmlOneToOneEClass.getESuperTypes().add(theOrmPackage.getXmlOneToOne());
-		xmlOneToOneEClass.getESuperTypes().add(this.getXmlPrivateOwned());
-		xmlOneToOneEClass.getESuperTypes().add(this.getXmlJoinFetch());
-		xmlOneToOneEClass.getESuperTypes().add(this.getXmlAccessMethodsHolder());
-		xmlOneToOneImplEClass.getESuperTypes().add(theOrmPackage.getXmlOneToOneImpl());
-		xmlOneToOneImplEClass.getESuperTypes().add(this.getXmlOneToOne());
-		xmlOneToManyEClass.getESuperTypes().add(theOrmPackage.getXmlOneToMany());
-		xmlOneToManyEClass.getESuperTypes().add(this.getXmlPrivateOwned());
-		xmlOneToManyEClass.getESuperTypes().add(this.getXmlJoinFetch());
-		xmlOneToManyEClass.getESuperTypes().add(this.getXmlAccessMethodsHolder());
-		xmlOneToManyImplEClass.getESuperTypes().add(theOrmPackage.getXmlOneToManyImpl());
-		xmlOneToManyImplEClass.getESuperTypes().add(this.getXmlOneToMany());
-		xmlManyToOneEClass.getESuperTypes().add(theOrmPackage.getXmlManyToOne());
-		xmlManyToOneEClass.getESuperTypes().add(this.getXmlJoinFetch());
-		xmlManyToOneEClass.getESuperTypes().add(this.getXmlAccessMethodsHolder());
-		xmlManyToOneImplEClass.getESuperTypes().add(theOrmPackage.getXmlManyToOneImpl());
-		xmlManyToOneImplEClass.getESuperTypes().add(this.getXmlManyToOne());
-		xmlManyToManyEClass.getESuperTypes().add(theOrmPackage.getXmlManyToMany());
-		xmlManyToManyEClass.getESuperTypes().add(this.getXmlJoinFetch());
-		xmlManyToManyEClass.getESuperTypes().add(this.getXmlAccessMethodsHolder());
-		xmlManyToManyImplEClass.getESuperTypes().add(theOrmPackage.getXmlManyToManyImpl());
-		xmlManyToManyImplEClass.getESuperTypes().add(this.getXmlManyToMany());
-		xmlBasicCollectionEClass.getESuperTypes().add(theOrmPackage.getXmlAttributeMapping());
-		xmlBasicCollectionEClass.getESuperTypes().add(this.getXmlAccessMethodsHolder());
-		xmlBasicCollectionImplEClass.getESuperTypes().add(theOrmPackage.getAbstractXmlAttributeMapping());
-		xmlBasicCollectionImplEClass.getESuperTypes().add(this.getXmlBasicCollection());
-		xmlBasicMapEClass.getESuperTypes().add(theOrmPackage.getXmlAttributeMapping());
-		xmlBasicMapEClass.getESuperTypes().add(this.getXmlAccessMethodsHolder());
-		xmlBasicMapImplEClass.getESuperTypes().add(theOrmPackage.getAbstractXmlAttributeMapping());
-		xmlBasicMapImplEClass.getESuperTypes().add(this.getXmlBasicMap());
-		xmlTransformationEClass.getESuperTypes().add(theOrmPackage.getXmlAttributeMapping());
-		xmlTransformationEClass.getESuperTypes().add(this.getXmlAccessMethodsHolder());
-		xmlTransformationImplEClass.getESuperTypes().add(theOrmPackage.getAbstractXmlAttributeMapping());
-		xmlTransformationImplEClass.getESuperTypes().add(this.getXmlTransformation());
-		xmlVariableOneToOneEClass.getESuperTypes().add(theOrmPackage.getXmlAttributeMapping());
-		xmlVariableOneToOneEClass.getESuperTypes().add(this.getXmlAccessMethodsHolder());
-		xmlVariableOneToOneImplEClass.getESuperTypes().add(theOrmPackage.getAbstractXmlAttributeMapping());
-		xmlVariableOneToOneImplEClass.getESuperTypes().add(this.getXmlVariableOneToOne());
-		attributesEClass.getESuperTypes().add(theOrmPackage.getAttributes());
-
-		// Initialize classes and features; add operations and parameters
-		initEClass(xmlNamedConverterEClass, XmlNamedConverter.class, "XmlNamedConverter", IS_ABSTRACT, IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
-		initEAttribute(getXmlNamedConverter_Name(), ecorePackage.getEString(), "name", null, 0, 1, XmlNamedConverter.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
-
-		initEClass(xmlConverterEClass, XmlConverter.class, "XmlConverter", IS_ABSTRACT, IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
-		initEAttribute(getXmlConverter_ClassName(), ecorePackage.getEString(), "className", null, 0, 1, XmlConverter.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
-
-		initEClass(xmlConverterImplEClass, XmlConverterImpl.class, "XmlConverterImpl", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
-
-		initEClass(xmlTypeConverterEClass, XmlTypeConverter.class, "XmlTypeConverter", IS_ABSTRACT, IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
-		initEAttribute(getXmlTypeConverter_DataType(), ecorePackage.getEString(), "dataType", null, 0, 1, XmlTypeConverter.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
-		initEAttribute(getXmlTypeConverter_ObjectType(), ecorePackage.getEString(), "objectType", null, 0, 1, XmlTypeConverter.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
-
-		initEClass(xmlTypeConverterImplEClass, XmlTypeConverterImpl.class, "XmlTypeConverterImpl", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
-
-		initEClass(xmlConversionValueEClass, XmlConversionValue.class, "XmlConversionValue", IS_ABSTRACT, IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
-		initEAttribute(getXmlConversionValue_DataValue(), ecorePackage.getEString(), "dataValue", null, 0, 1, XmlConversionValue.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
-		initEAttribute(getXmlConversionValue_ObjectValue(), ecorePackage.getEString(), "objectValue", null, 0, 1, XmlConversionValue.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
-
-		initEClass(xmlConversionValueImplEClass, XmlConversionValueImpl.class, "XmlConversionValueImpl", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
-
-		initEClass(xmlObjectTypeConverterEClass, XmlObjectTypeConverter.class, "XmlObjectTypeConverter", IS_ABSTRACT, IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
-		initEAttribute(getXmlObjectTypeConverter_DataType(), ecorePackage.getEString(), "dataType", null, 0, 1, XmlObjectTypeConverter.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
-		initEAttribute(getXmlObjectTypeConverter_ObjectType(), ecorePackage.getEString(), "objectType", null, 0, 1, XmlObjectTypeConverter.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
-		initEReference(getXmlObjectTypeConverter_ConversionValues(), this.getXmlConversionValue(), null, "conversionValues", null, 0, -1, XmlObjectTypeConverter.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
-		initEAttribute(getXmlObjectTypeConverter_DefaultObjectValue(), ecorePackage.getEString(), "defaultObjectValue", null, 0, 1, XmlObjectTypeConverter.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
-
-		initEClass(xmlObjectTypeConverterImplEClass, XmlObjectTypeConverterImpl.class, "XmlObjectTypeConverterImpl", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
-
-		initEClass(xmlStructConverterEClass, XmlStructConverter.class, "XmlStructConverter", IS_ABSTRACT, IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
-		initEAttribute(getXmlStructConverter_Converter(), ecorePackage.getEString(), "converter", null, 0, 1, XmlStructConverter.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
-
-		initEClass(xmlStructConverterImplEClass, XmlStructConverterImpl.class, "XmlStructConverterImpl", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
-
-		initEClass(xmlConvertersHolderEClass, XmlConvertersHolder.class, "XmlConvertersHolder", IS_ABSTRACT, IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
-		initEReference(getXmlConvertersHolder_Converters(), this.getXmlConverter(), null, "converters", null, 0, -1, XmlConvertersHolder.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
-		initEReference(getXmlConvertersHolder_TypeConverters(), this.getXmlTypeConverter(), null, "typeConverters", null, 0, -1, XmlConvertersHolder.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
-		initEReference(getXmlConvertersHolder_ObjectTypeConverters(), this.getXmlObjectTypeConverter(), null, "objectTypeConverters", null, 0, -1, XmlConvertersHolder.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
-		initEReference(getXmlConvertersHolder_StructConverters(), this.getXmlStructConverter(), null, "structConverters", null, 0, -1, XmlConvertersHolder.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
-
-		initEClass(xmlStoredProcedureParameterEClass, XmlStoredProcedureParameter.class, "XmlStoredProcedureParameter", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
-		initEAttribute(getXmlStoredProcedureParameter_Direction(), this.getXmlDirection(), "direction", null, 0, 1, XmlStoredProcedureParameter.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
-		initEAttribute(getXmlStoredProcedureParameter_Name(), theXMLTypePackage.getString(), "name", null, 0, 1, XmlStoredProcedureParameter.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
-		initEAttribute(getXmlStoredProcedureParameter_QueryParameter(), theXMLTypePackage.getString(), "queryParameter", null, 0, 1, XmlStoredProcedureParameter.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
-		initEAttribute(getXmlStoredProcedureParameter_Type(), theXMLTypePackage.getString(), "type", null, 0, 1, XmlStoredProcedureParameter.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
-		initEAttribute(getXmlStoredProcedureParameter_JdbcType(), theXMLTypePackage.getIntObject(), "jdbcType", null, 0, 1, XmlStoredProcedureParameter.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
-		initEAttribute(getXmlStoredProcedureParameter_JdbcTypeName(), theXMLTypePackage.getString(), "jdbcTypeName", null, 0, 1, XmlStoredProcedureParameter.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
-
-		initEClass(xmlNamedStoredProcedureQueryEClass, XmlNamedStoredProcedureQuery.class, "XmlNamedStoredProcedureQuery", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
-		initEAttribute(getXmlNamedStoredProcedureQuery_Name(), theXMLTypePackage.getString(), "name", null, 0, 1, XmlNamedStoredProcedureQuery.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
-		initEAttribute(getXmlNamedStoredProcedureQuery_ResultClass(), theXMLTypePackage.getString(), "resultClass", null, 0, 1, XmlNamedStoredProcedureQuery.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
-		initEAttribute(getXmlNamedStoredProcedureQuery_ResultSetMapping(), theXMLTypePackage.getString(), "resultSetMapping", null, 0, 1, XmlNamedStoredProcedureQuery.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
-		initEAttribute(getXmlNamedStoredProcedureQuery_ProcedureName(), theXMLTypePackage.getString(), "procedureName", null, 0, 1, XmlNamedStoredProcedureQuery.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
-		initEAttribute(getXmlNamedStoredProcedureQuery_ReturnsResultSet(), theXMLTypePackage.getBooleanObject(), "returnsResultSet", null, 0, 1, XmlNamedStoredProcedureQuery.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
-		initEReference(getXmlNamedStoredProcedureQuery_Hints(), theOrmPackage.getXmlQueryHint(), null, "hints", null, 0, -1, XmlNamedStoredProcedureQuery.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
-		initEReference(getXmlNamedStoredProcedureQuery_Parameters(), this.getXmlStoredProcedureParameter(), null, "parameters", null, 0, -1, XmlNamedStoredProcedureQuery.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
-
-		initEClass(xmlEntityMappingsEClass, XmlEntityMappings.class, "XmlEntityMappings", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
-		initEReference(getXmlEntityMappings_NamedStoredProcedureQueries(), this.getXmlNamedStoredProcedureQuery(), null, "namedStoredProcedureQueries", null, 0, -1, XmlEntityMappings.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
-
-		initEClass(xmlPersistenceUnitMetadataEClass, XmlPersistenceUnitMetadata.class, "XmlPersistenceUnitMetadata", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
-		initEAttribute(getXmlPersistenceUnitMetadata_ExcludeDefaultMappings(), theXMLTypePackage.getBoolean(), "excludeDefaultMappings", null, 0, 1, XmlPersistenceUnitMetadata.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
-
-		initEClass(xmlCustomizerEClass, XmlCustomizer.class, "XmlCustomizer", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
-		initEAttribute(getXmlCustomizer_CustomizerClassName(), ecorePackage.getEString(), "customizerClassName", null, 0, 1, XmlCustomizer.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
-
-		initEClass(xmlCustomizerHolderEClass, XmlCustomizerHolder.class, "XmlCustomizerHolder", IS_ABSTRACT, IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
-		initEReference(getXmlCustomizerHolder_Customizer(), this.getXmlCustomizer(), null, "customizer", null, 0, 1, XmlCustomizerHolder.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
-
-		initEClass(xmlChangeTrackingEClass, XmlChangeTracking.class, "XmlChangeTracking", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
-		initEAttribute(getXmlChangeTracking_Type(), this.getXmlChangeTrackingType(), "type", null, 0, 1, XmlChangeTracking.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
-
-		initEClass(xmlChangeTrackingHolderEClass, XmlChangeTrackingHolder.class, "XmlChangeTrackingHolder", IS_ABSTRACT, IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
-		initEReference(getXmlChangeTrackingHolder_ChangeTracking(), this.getXmlChangeTracking(), null, "changeTracking", null, 0, 1, XmlChangeTrackingHolder.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
-
-		initEClass(xmlCopyPolicyEClass, XmlCopyPolicy.class, "XmlCopyPolicy", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
-		initEAttribute(getXmlCopyPolicy_Class(), theXMLTypePackage.getString(), "class", null, 0, 1, XmlCopyPolicy.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
-
-		initEClass(xmlInstantiationPolicyEClass, XmlInstantiationPolicy.class, "XmlInstantiationPolicy", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
-
-		initEClass(xmlCloneCopyPolicyEClass, XmlCloneCopyPolicy.class, "XmlCloneCopyPolicy", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
-		initEAttribute(getXmlCloneCopyPolicy_Method(), theXMLTypePackage.getString(), "method", null, 0, 1, XmlCloneCopyPolicy.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
-		initEAttribute(getXmlCloneCopyPolicy_WorkingCopyMethod(), theXMLTypePackage.getString(), "workingCopyMethod", null, 0, 1, XmlCloneCopyPolicy.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
-
-		initEClass(xmlEmbeddableEClass, XmlEmbeddable.class, "XmlEmbeddable", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
-		initEReference(getXmlEmbeddable_CopyPolicy(), this.getXmlCopyPolicy(), null, "copyPolicy", null, 0, 1, XmlEmbeddable.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
-		initEReference(getXmlEmbeddable_InstantiationCopyPolicy(), this.getXmlCopyPolicy(), null, "instantiationCopyPolicy", null, 0, 1, XmlEmbeddable.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
-		initEReference(getXmlEmbeddable_CloneCopyPolicy(), this.getXmlCopyPolicy(), null, "cloneCopyPolicy", null, 0, 1, XmlEmbeddable.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
-		initEReference(getXmlEmbeddable_Properties(), this.getXmlProperty(), null, "properties", null, 0, -1, XmlEmbeddable.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
-		initEAttribute(getXmlEmbeddable_ExcludeDefaultMappings(), theXMLTypePackage.getBooleanObject(), "excludeDefaultMappings", null, 0, 1, XmlEmbeddable.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
-
-		initEClass(xmlReadOnlyEClass, XmlReadOnly.class, "XmlReadOnly", IS_ABSTRACT, IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
-		initEAttribute(getXmlReadOnly_ReadOnly(), theXMLTypePackage.getBooleanObject(), "readOnly", null, 0, 1, XmlReadOnly.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
-
-		initEClass(xmlTimeOfDayEClass, XmlTimeOfDay.class, "XmlTimeOfDay", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
-		initEAttribute(getXmlTimeOfDay_Hour(), theXMLTypePackage.getIntObject(), "hour", null, 0, 1, XmlTimeOfDay.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
-		initEAttribute(getXmlTimeOfDay_Minute(), theXMLTypePackage.getIntObject(), "minute", null, 0, 1, XmlTimeOfDay.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
-		initEAttribute(getXmlTimeOfDay_Second(), theXMLTypePackage.getIntObject(), "second", null, 0, 1, XmlTimeOfDay.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
-		initEAttribute(getXmlTimeOfDay_Millisecond(), theXMLTypePackage.getIntObject(), "millisecond", null, 0, 1, XmlTimeOfDay.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
-
-		initEClass(xmlCacheEClass, XmlCache.class, "XmlCache", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
-		initEAttribute(getXmlCache_Expiry(), theXMLTypePackage.getIntObject(), "expiry", null, 0, 1, XmlCache.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
-		initEAttribute(getXmlCache_Size(), theXMLTypePackage.getIntObject(), "size", null, 0, 1, XmlCache.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
-		initEAttribute(getXmlCache_Shared(), theXMLTypePackage.getBooleanObject(), "shared", null, 0, 1, XmlCache.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
-		initEAttribute(getXmlCache_Type(), this.getCacheType(), "type", null, 0, 1, XmlCache.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
-		initEAttribute(getXmlCache_AlwaysRefresh(), theXMLTypePackage.getBooleanObject(), "alwaysRefresh", null, 0, 1, XmlCache.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
-		initEAttribute(getXmlCache_RefreshOnlyIfNewer(), theXMLTypePackage.getBooleanObject(), "refreshOnlyIfNewer", null, 0, 1, XmlCache.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
-		initEAttribute(getXmlCache_DisableHits(), theXMLTypePackage.getBooleanObject(), "disableHits", null, 0, 1, XmlCache.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
-		initEAttribute(getXmlCache_CoordinationType(), this.getCacheCoordinationType(), "coordinationType", "", 0, 1, XmlCache.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
-		initEReference(getXmlCache_ExpiryTimeOfDay(), this.getXmlTimeOfDay(), null, "expiryTimeOfDay", null, 0, 1, XmlCache.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
-
-		initEClass(xmlCacheHolderEClass, XmlCacheHolder.class, "XmlCacheHolder", IS_ABSTRACT, IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
-		initEReference(getXmlCacheHolder_Cache(), this.getXmlCache(), null, "cache", null, 0, 1, XmlCacheHolder.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
-		initEAttribute(getXmlCacheHolder_ExistenceChecking(), this.getExistenceType(), "existenceChecking", "", 0, 1, XmlCacheHolder.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
-
-		initEClass(xmlOptimisticLockingEClass, XmlOptimisticLocking.class, "XmlOptimisticLocking", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
-		initEAttribute(getXmlOptimisticLocking_Type(), this.getXmlOptimisticLockingType(), "type", null, 0, 1, XmlOptimisticLocking.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
-		initEAttribute(getXmlOptimisticLocking_Cascade(), theXMLTypePackage.getBooleanObject(), "cascade", null, 0, 1, XmlOptimisticLocking.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
-		initEReference(getXmlOptimisticLocking_SelectedColumns(), theOrmPackage.getXmlColumn(), null, "selectedColumns", null, 0, -1, XmlOptimisticLocking.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
-
-		initEClass(xmlEntityEClass, XmlEntity.class, "XmlEntity", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
-		initEReference(getXmlEntity_OptimisticLocking(), this.getXmlOptimisticLocking(), null, "optimisticLocking", null, 0, 1, XmlEntity.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
-		initEReference(getXmlEntity_CopyPolicy(), this.getXmlCopyPolicy(), null, "copyPolicy", null, 0, 1, XmlEntity.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
-		initEReference(getXmlEntity_InstantiationCopyPolicy(), this.getXmlCopyPolicy(), null, "instantiationCopyPolicy", null, 0, 1, XmlEntity.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
-		initEReference(getXmlEntity_CloneCopyPolicy(), this.getXmlCopyPolicy(), null, "cloneCopyPolicy", null, 0, 1, XmlEntity.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
-		initEReference(getXmlEntity_NamedStoredProcedureQueries(), this.getXmlNamedStoredProcedureQuery(), null, "namedStoredProcedureQueries", null, 0, -1, XmlEntity.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
-		initEReference(getXmlEntity_Properties(), this.getXmlProperty(), null, "properties", null, 0, -1, XmlEntity.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
-		initEAttribute(getXmlEntity_ExcludeDefaultMappings(), theXMLTypePackage.getBooleanObject(), "excludeDefaultMappings", null, 0, 1, XmlEntity.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
-
-		initEClass(xmlMappedSuperclassEClass, XmlMappedSuperclass.class, "XmlMappedSuperclass", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
-		initEReference(getXmlMappedSuperclass_OptimisticLocking(), this.getXmlOptimisticLocking(), null, "optimisticLocking", null, 0, 1, XmlMappedSuperclass.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
-		initEReference(getXmlMappedSuperclass_CopyPolicy(), this.getXmlCopyPolicy(), null, "copyPolicy", null, 0, 1, XmlMappedSuperclass.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
-		initEReference(getXmlMappedSuperclass_InstantiationCopyPolicy(), this.getXmlCopyPolicy(), null, "instantiationCopyPolicy", null, 0, 1, XmlMappedSuperclass.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
-		initEReference(getXmlMappedSuperclass_CloneCopyPolicy(), this.getXmlCopyPolicy(), null, "cloneCopyPolicy", null, 0, 1, XmlMappedSuperclass.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
-		initEReference(getXmlMappedSuperclass_Properties(), this.getXmlProperty(), null, "properties", null, 0, -1, XmlMappedSuperclass.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
-		initEAttribute(getXmlMappedSuperclass_ExcludeDefaultMappings(), theXMLTypePackage.getBooleanObject(), "excludeDefaultMappings", null, 0, 1, XmlMappedSuperclass.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
-
-		initEClass(xmlMutableEClass, XmlMutable.class, "XmlMutable", IS_ABSTRACT, IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
-		initEAttribute(getXmlMutable_Mutable(), theXMLTypePackage.getBooleanObject(), "mutable", null, 0, 1, XmlMutable.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
-
-		initEClass(xmlConverterHolderEClass, XmlConverterHolder.class, "XmlConverterHolder", IS_ABSTRACT, IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
-		initEReference(getXmlConverterHolder_Converter(), this.getXmlConverter(), null, "converter", null, 0, 1, XmlConverterHolder.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
-		initEReference(getXmlConverterHolder_TypeConverter(), this.getXmlTypeConverter(), null, "typeConverter", null, 0, 1, XmlConverterHolder.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
-		initEReference(getXmlConverterHolder_ObjectTypeConverter(), this.getXmlObjectTypeConverter(), null, "objectTypeConverter", null, 0, 1, XmlConverterHolder.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
-		initEReference(getXmlConverterHolder_StructConverter(), this.getXmlStructConverter(), null, "structConverter", null, 0, 1, XmlConverterHolder.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
-
-		initEClass(xmlConvertibleMappingEClass, XmlConvertibleMapping.class, "XmlConvertibleMapping", IS_ABSTRACT, IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
-		initEAttribute(getXmlConvertibleMapping_Convert(), ecorePackage.getEString(), "convert", null, 0, 1, XmlConvertibleMapping.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
-
-		initEClass(xmlAccessMethodsEClass, XmlAccessMethods.class, "XmlAccessMethods", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
-		initEAttribute(getXmlAccessMethods_GetMethod(), theXMLTypePackage.getString(), "getMethod", null, 0, 1, XmlAccessMethods.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
-		initEAttribute(getXmlAccessMethods_SetMethod(), theXMLTypePackage.getString(), "setMethod", null, 0, 1, XmlAccessMethods.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
-
-		initEClass(xmlAccessMethodsHolderEClass, XmlAccessMethodsHolder.class, "XmlAccessMethodsHolder", IS_ABSTRACT, IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
-		initEReference(getXmlAccessMethodsHolder_AccessMethods(), this.getXmlAccessMethods(), null, "accessMethods", null, 0, 1, XmlAccessMethodsHolder.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
-
-		initEClass(xmlPropertyEClass, XmlProperty.class, "XmlProperty", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
-		initEAttribute(getXmlProperty_Name(), theXMLTypePackage.getString(), "name", null, 0, 1, XmlProperty.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
-		initEAttribute(getXmlProperty_Value(), theXMLTypePackage.getString(), "value", null, 0, 1, XmlProperty.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
-		initEAttribute(getXmlProperty_ValueType(), theXMLTypePackage.getString(), "valueType", null, 0, 1, XmlProperty.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
-
-		initEClass(xmlIdEClass, XmlId.class, "XmlId", IS_ABSTRACT, IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
-		initEReference(getXmlId_Properties(), this.getXmlProperty(), null, "properties", null, 0, -1, XmlId.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
-
-		initEClass(xmlIdImplEClass, XmlIdImpl.class, "XmlIdImpl", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
-
-		initEClass(xmlEmbeddedIdEClass, XmlEmbeddedId.class, "XmlEmbeddedId", IS_ABSTRACT, IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
-		initEReference(getXmlEmbeddedId_Properties(), this.getXmlProperty(), null, "properties", null, 0, -1, XmlEmbeddedId.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
-
-		initEClass(xmlEmbeddedIdImplEClass, XmlEmbeddedIdImpl.class, "XmlEmbeddedIdImpl", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
-
-		initEClass(xmlEmbeddedEClass, XmlEmbedded.class, "XmlEmbedded", IS_ABSTRACT, IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
-		initEReference(getXmlEmbedded_Properties(), this.getXmlProperty(), null, "properties", null, 0, -1, XmlEmbedded.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
-
-		initEClass(xmlEmbeddedImplEClass, XmlEmbeddedImpl.class, "XmlEmbeddedImpl", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
-
-		initEClass(xmlBasicEClass, XmlBasic.class, "XmlBasic", IS_ABSTRACT, IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
-		initEReference(getXmlBasic_Properties(), this.getXmlProperty(), null, "properties", null, 0, -1, XmlBasic.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
-
-		initEClass(xmlBasicImplEClass, XmlBasicImpl.class, "XmlBasicImpl", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
-
-		initEClass(xmlVersionEClass, XmlVersion.class, "XmlVersion", IS_ABSTRACT, IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
-		initEReference(getXmlVersion_Properties(), this.getXmlProperty(), null, "properties", null, 0, -1, XmlVersion.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
-
-		initEClass(xmlVersionImplEClass, XmlVersionImpl.class, "XmlVersionImpl", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
-
-		initEClass(xmlPrivateOwnedEClass, XmlPrivateOwned.class, "XmlPrivateOwned", IS_ABSTRACT, IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
-		initEAttribute(getXmlPrivateOwned_PrivateOwned(), theXMLTypePackage.getBoolean(), "privateOwned", null, 0, 1, XmlPrivateOwned.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
-
-		initEClass(xmlJoinFetchEClass, XmlJoinFetch.class, "XmlJoinFetch", IS_ABSTRACT, IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
-		initEAttribute(getXmlJoinFetch_JoinFetch(), this.getXmlJoinFetchType(), "joinFetch", null, 0, 1, XmlJoinFetch.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
-
-		initEClass(xmlOneToOneEClass, XmlOneToOne.class, "XmlOneToOne", IS_ABSTRACT, IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
-		initEReference(getXmlOneToOne_Properties(), this.getXmlProperty(), null, "properties", null, 0, -1, XmlOneToOne.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
-
-		initEClass(xmlOneToOneImplEClass, XmlOneToOneImpl.class, "XmlOneToOneImpl", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
-
-		initEClass(xmlOneToManyEClass, XmlOneToMany.class, "XmlOneToMany", IS_ABSTRACT, IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
-		initEReference(getXmlOneToMany_Properties(), this.getXmlProperty(), null, "properties", null, 0, -1, XmlOneToMany.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
-
-		initEClass(xmlOneToManyImplEClass, XmlOneToManyImpl.class, "XmlOneToManyImpl", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
-
-		initEClass(xmlManyToOneEClass, XmlManyToOne.class, "XmlManyToOne", IS_ABSTRACT, IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
-		initEReference(getXmlManyToOne_Properties(), this.getXmlProperty(), null, "properties", null, 0, -1, XmlManyToOne.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
-
-		initEClass(xmlManyToOneImplEClass, XmlManyToOneImpl.class, "XmlManyToOneImpl", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
-
-		initEClass(xmlManyToManyEClass, XmlManyToMany.class, "XmlManyToMany", IS_ABSTRACT, IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
-		initEReference(getXmlManyToMany_Properties(), this.getXmlProperty(), null, "properties", null, 0, -1, XmlManyToMany.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
-
-		initEClass(xmlManyToManyImplEClass, XmlManyToManyImpl.class, "XmlManyToManyImpl", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
-
-		initEClass(xmlBasicCollectionEClass, XmlBasicCollection.class, "XmlBasicCollection", IS_ABSTRACT, IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
-		initEReference(getXmlBasicCollection_Properties(), this.getXmlProperty(), null, "properties", null, 0, -1, XmlBasicCollection.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
-
-		initEClass(xmlBasicCollectionImplEClass, XmlBasicCollectionImpl.class, "XmlBasicCollectionImpl", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
-
-		initEClass(xmlBasicMapEClass, XmlBasicMap.class, "XmlBasicMap", IS_ABSTRACT, IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
-		initEReference(getXmlBasicMap_Properties(), this.getXmlProperty(), null, "properties", null, 0, -1, XmlBasicMap.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
-
-		initEClass(xmlBasicMapImplEClass, XmlBasicMapImpl.class, "XmlBasicMapImpl", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
-
-		initEClass(xmlTransformationEClass, XmlTransformation.class, "XmlTransformation", IS_ABSTRACT, IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
-		initEReference(getXmlTransformation_Properties(), this.getXmlProperty(), null, "properties", null, 0, -1, XmlTransformation.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
-
-		initEClass(xmlTransformationImplEClass, XmlTransformationImpl.class, "XmlTransformationImpl", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
-
-		initEClass(xmlVariableOneToOneEClass, XmlVariableOneToOne.class, "XmlVariableOneToOne", IS_ABSTRACT, IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
-		initEReference(getXmlVariableOneToOne_Properties(), this.getXmlProperty(), null, "properties", null, 0, -1, XmlVariableOneToOne.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
-
-		initEClass(xmlVariableOneToOneImplEClass, XmlVariableOneToOneImpl.class, "XmlVariableOneToOneImpl", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
-
-		initEClass(attributesEClass, Attributes.class, "Attributes", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
-		initEReference(getAttributes_BasicCollections(), this.getXmlBasicCollection(), null, "basicCollections", null, 0, -1, Attributes.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
-		initEReference(getAttributes_BasicMaps(), this.getXmlBasicMap(), null, "basicMaps", null, 0, -1, Attributes.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
-		initEReference(getAttributes_Transformations(), this.getXmlTransformation(), null, "transformations", null, 0, -1, Attributes.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
-		initEReference(getAttributes_VariableOneToOnes(), this.getXmlVariableOneToOne(), null, "variableOneToOnes", null, 0, -1, Attributes.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
-
-		// Initialize enums and add enum literals
-		initEEnum(xmlDirectionEEnum, XmlDirection.class, "XmlDirection");
-		addEEnumLiteral(xmlDirectionEEnum, XmlDirection.IN);
-		addEEnumLiteral(xmlDirectionEEnum, XmlDirection.OUT);
-		addEEnumLiteral(xmlDirectionEEnum, XmlDirection.IN_OUT);
-		addEEnumLiteral(xmlDirectionEEnum, XmlDirection.OUT_CURSOR);
-
-		initEEnum(xmlChangeTrackingTypeEEnum, XmlChangeTrackingType.class, "XmlChangeTrackingType");
-		addEEnumLiteral(xmlChangeTrackingTypeEEnum, XmlChangeTrackingType.ATTRIBUTE);
-		addEEnumLiteral(xmlChangeTrackingTypeEEnum, XmlChangeTrackingType.OBJECT);
-		addEEnumLiteral(xmlChangeTrackingTypeEEnum, XmlChangeTrackingType.DEFERRED);
-		addEEnumLiteral(xmlChangeTrackingTypeEEnum, XmlChangeTrackingType.AUTO);
-
-		initEEnum(cacheTypeEEnum, CacheType.class, "CacheType");
-		addEEnumLiteral(cacheTypeEEnum, CacheType.FULL);
-		addEEnumLiteral(cacheTypeEEnum, CacheType.WEAK);
-		addEEnumLiteral(cacheTypeEEnum, CacheType.SOFT);
-		addEEnumLiteral(cacheTypeEEnum, CacheType.SOFT_WEAK);
-		addEEnumLiteral(cacheTypeEEnum, CacheType.HARD_WEAK);
-		addEEnumLiteral(cacheTypeEEnum, CacheType.CACHE);
-		addEEnumLiteral(cacheTypeEEnum, CacheType.NONE);
-
-		initEEnum(cacheCoordinationTypeEEnum, CacheCoordinationType.class, "CacheCoordinationType");
-		addEEnumLiteral(cacheCoordinationTypeEEnum, CacheCoordinationType.SEND_OBJECT_CHANGES);
-		addEEnumLiteral(cacheCoordinationTypeEEnum, CacheCoordinationType.INVALIDATE_CHANGED_OBJECTS);
-		addEEnumLiteral(cacheCoordinationTypeEEnum, CacheCoordinationType.SEND_NEW_OBJECTS_WITH_CHANGES);
-		addEEnumLiteral(cacheCoordinationTypeEEnum, CacheCoordinationType.NONE);
-
-		initEEnum(existenceTypeEEnum, ExistenceType.class, "ExistenceType");
-		addEEnumLiteral(existenceTypeEEnum, ExistenceType.CHECK_CACHE);
-		addEEnumLiteral(existenceTypeEEnum, ExistenceType.CHECK_DATABASE);
-		addEEnumLiteral(existenceTypeEEnum, ExistenceType.ASSUME_EXISTENCE);
-		addEEnumLiteral(existenceTypeEEnum, ExistenceType.ASSUME_NON_EXISTENCE);
-
-		initEEnum(xmlOptimisticLockingTypeEEnum, XmlOptimisticLockingType.class, "XmlOptimisticLockingType");
-		addEEnumLiteral(xmlOptimisticLockingTypeEEnum, XmlOptimisticLockingType.ALL_COLUMNS);
-		addEEnumLiteral(xmlOptimisticLockingTypeEEnum, XmlOptimisticLockingType.CHANGED_COLUMNS);
-		addEEnumLiteral(xmlOptimisticLockingTypeEEnum, XmlOptimisticLockingType.SELECTED_COLUMNS);
-		addEEnumLiteral(xmlOptimisticLockingTypeEEnum, XmlOptimisticLockingType.VERSION_COLUMN);
-
-		initEEnum(xmlJoinFetchTypeEEnum, XmlJoinFetchType.class, "XmlJoinFetchType");
-		addEEnumLiteral(xmlJoinFetchTypeEEnum, XmlJoinFetchType.INNER);
-		addEEnumLiteral(xmlJoinFetchTypeEEnum, XmlJoinFetchType.OUTER);
-
-		// Create resource
-		createResource(eNS_URI);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * Defines literals for the meta objects that represent
-	 * <ul>
-	 *   <li>each class,</li>
-	 *   <li>each feature of each class,</li>
-	 *   <li>each enum,</li>
-	 *   <li>and each data type</li>
-	 * </ul>
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public interface Literals
-	{
-		/**
-		 * The meta object literal for the '{@link org.eclipse.jpt.eclipselink.core.resource.orm.XmlNamedConverter <em>Xml Named Converter</em>}' class.
-		 * <!-- begin-user-doc -->
-		 * <!-- end-user-doc -->
-		 * @see org.eclipse.jpt.eclipselink.core.resource.orm.XmlNamedConverter
-		 * @see org.eclipse.jpt.eclipselink.core.resource.orm.EclipseLinkOrmPackage#getXmlNamedConverter()
-		 * @generated
-		 */
-		public static final EClass XML_NAMED_CONVERTER = eINSTANCE.getXmlNamedConverter();
-
-		/**
-		 * The meta object literal for the '<em><b>Name</b></em>' attribute feature.
-		 * <!-- begin-user-doc -->
-		 * <!-- end-user-doc -->
-		 * @generated
-		 */
-		public static final EAttribute XML_NAMED_CONVERTER__NAME = eINSTANCE.getXmlNamedConverter_Name();
-
-		/**
-		 * The meta object literal for the '{@link org.eclipse.jpt.eclipselink.core.resource.orm.XmlCustomizer <em>Xml Customizer</em>}' class.
-		 * <!-- begin-user-doc -->
-		 * <!-- end-user-doc -->
-		 * @see org.eclipse.jpt.eclipselink.core.resource.orm.XmlCustomizer
-		 * @see org.eclipse.jpt.eclipselink.core.resource.orm.EclipseLinkOrmPackage#getXmlCustomizer()
-		 * @generated
-		 */
-		public static final EClass XML_CUSTOMIZER = eINSTANCE.getXmlCustomizer();
-
-		/**
-		 * The meta object literal for the '<em><b>Customizer Class Name</b></em>' attribute feature.
-		 * <!-- begin-user-doc -->
-		 * <!-- end-user-doc -->
-		 * @generated
-		 */
-		public static final EAttribute XML_CUSTOMIZER__CUSTOMIZER_CLASS_NAME = eINSTANCE.getXmlCustomizer_CustomizerClassName();
-
-		/**
-		 * The meta object literal for the '{@link org.eclipse.jpt.eclipselink.core.resource.orm.XmlCustomizerHolder <em>Xml Customizer Holder</em>}' class.
-		 * <!-- begin-user-doc -->
-		 * <!-- end-user-doc -->
-		 * @see org.eclipse.jpt.eclipselink.core.resource.orm.XmlCustomizerHolder
-		 * @see org.eclipse.jpt.eclipselink.core.resource.orm.EclipseLinkOrmPackage#getXmlCustomizerHolder()
-		 * @generated
-		 */
-		public static final EClass XML_CUSTOMIZER_HOLDER = eINSTANCE.getXmlCustomizerHolder();
-
-		/**
-		 * The meta object literal for the '<em><b>Customizer</b></em>' containment reference feature.
-		 * <!-- begin-user-doc -->
-		 * <!-- end-user-doc -->
-		 * @generated
-		 */
-		public static final EReference XML_CUSTOMIZER_HOLDER__CUSTOMIZER = eINSTANCE.getXmlCustomizerHolder_Customizer();
-
-		/**
-		 * The meta object literal for the '{@link org.eclipse.jpt.eclipselink.core.resource.orm.XmlChangeTracking <em>Xml Change Tracking</em>}' class.
-		 * <!-- begin-user-doc -->
-		 * <!-- end-user-doc -->
-		 * @see org.eclipse.jpt.eclipselink.core.resource.orm.XmlChangeTracking
-		 * @see org.eclipse.jpt.eclipselink.core.resource.orm.EclipseLinkOrmPackage#getXmlChangeTracking()
-		 * @generated
-		 */
-		public static final EClass XML_CHANGE_TRACKING = eINSTANCE.getXmlChangeTracking();
-
-		/**
-		 * The meta object literal for the '<em><b>Type</b></em>' attribute feature.
-		 * <!-- begin-user-doc -->
-		 * <!-- end-user-doc -->
-		 * @generated
-		 */
-		public static final EAttribute XML_CHANGE_TRACKING__TYPE = eINSTANCE.getXmlChangeTracking_Type();
-
-		/**
-		 * The meta object literal for the '{@link org.eclipse.jpt.eclipselink.core.resource.orm.XmlChangeTrackingHolder <em>Xml Change Tracking Holder</em>}' class.
-		 * <!-- begin-user-doc -->
-		 * <!-- end-user-doc -->
-		 * @see org.eclipse.jpt.eclipselink.core.resource.orm.XmlChangeTrackingHolder
-		 * @see org.eclipse.jpt.eclipselink.core.resource.orm.EclipseLinkOrmPackage#getXmlChangeTrackingHolder()
-		 * @generated
-		 */
-		public static final EClass XML_CHANGE_TRACKING_HOLDER = eINSTANCE.getXmlChangeTrackingHolder();
-
-		/**
-		 * The meta object literal for the '<em><b>Change Tracking</b></em>' containment reference feature.
-		 * <!-- begin-user-doc -->
-		 * <!-- end-user-doc -->
-		 * @generated
-		 */
-		public static final EReference XML_CHANGE_TRACKING_HOLDER__CHANGE_TRACKING = eINSTANCE.getXmlChangeTrackingHolder_ChangeTracking();
-
-		/**
-		 * The meta object literal for the '{@link org.eclipse.jpt.eclipselink.core.resource.orm.XmlCopyPolicy <em>Xml Copy Policy</em>}' class.
-		 * <!-- begin-user-doc -->
-		 * <!-- end-user-doc -->
-		 * @see org.eclipse.jpt.eclipselink.core.resource.orm.XmlCopyPolicy
-		 * @see org.eclipse.jpt.eclipselink.core.resource.orm.EclipseLinkOrmPackage#getXmlCopyPolicy()
-		 * @generated
-		 */
-		public static final EClass XML_COPY_POLICY = eINSTANCE.getXmlCopyPolicy();
-
-		/**
-		 * The meta object literal for the '<em><b>Class</b></em>' attribute feature.
-		 * <!-- begin-user-doc -->
-		 * <!-- end-user-doc -->
-		 * @generated
-		 */
-		public static final EAttribute XML_COPY_POLICY__CLASS = eINSTANCE.getXmlCopyPolicy_Class();
-
-		/**
-		 * The meta object literal for the '{@link org.eclipse.jpt.eclipselink.core.resource.orm.XmlInstantiationPolicy <em>Xml Instantiation Policy</em>}' class.
-		 * <!-- begin-user-doc -->
-		 * <!-- end-user-doc -->
-		 * @see org.eclipse.jpt.eclipselink.core.resource.orm.XmlInstantiationPolicy
-		 * @see org.eclipse.jpt.eclipselink.core.resource.orm.EclipseLinkOrmPackage#getXmlInstantiationPolicy()
-		 * @generated
-		 */
-		public static final EClass XML_INSTANTIATION_POLICY = eINSTANCE.getXmlInstantiationPolicy();
-
-		/**
-		 * The meta object literal for the '{@link org.eclipse.jpt.eclipselink.core.resource.orm.XmlCloneCopyPolicy <em>Xml Clone Copy Policy</em>}' class.
-		 * <!-- begin-user-doc -->
-		 * <!-- end-user-doc -->
-		 * @see org.eclipse.jpt.eclipselink.core.resource.orm.XmlCloneCopyPolicy
-		 * @see org.eclipse.jpt.eclipselink.core.resource.orm.EclipseLinkOrmPackage#getXmlCloneCopyPolicy()
-		 * @generated
-		 */
-		public static final EClass XML_CLONE_COPY_POLICY = eINSTANCE.getXmlCloneCopyPolicy();
-
-		/**
-		 * The meta object literal for the '<em><b>Method</b></em>' attribute feature.
-		 * <!-- begin-user-doc -->
-		 * <!-- end-user-doc -->
-		 * @generated
-		 */
-		public static final EAttribute XML_CLONE_COPY_POLICY__METHOD = eINSTANCE.getXmlCloneCopyPolicy_Method();
-
-		/**
-		 * The meta object literal for the '<em><b>Working Copy Method</b></em>' attribute feature.
-		 * <!-- begin-user-doc -->
-		 * <!-- end-user-doc -->
-		 * @generated
-		 */
-		public static final EAttribute XML_CLONE_COPY_POLICY__WORKING_COPY_METHOD = eINSTANCE.getXmlCloneCopyPolicy_WorkingCopyMethod();
-
-		/**
-		 * The meta object literal for the '{@link org.eclipse.jpt.eclipselink.core.resource.orm.XmlConvertersHolder <em>Xml Converters Holder</em>}' class.
-		 * <!-- begin-user-doc -->
-		 * <!-- end-user-doc -->
-		 * @see org.eclipse.jpt.eclipselink.core.resource.orm.XmlConvertersHolder
-		 * @see org.eclipse.jpt.eclipselink.core.resource.orm.EclipseLinkOrmPackage#getXmlConvertersHolder()
-		 * @generated
-		 */
-		public static final EClass XML_CONVERTERS_HOLDER = eINSTANCE.getXmlConvertersHolder();
-
-		/**
-		 * The meta object literal for the '<em><b>Converters</b></em>' containment reference list feature.
-		 * <!-- begin-user-doc -->
-		 * <!-- end-user-doc -->
-		 * @generated
-		 */
-		public static final EReference XML_CONVERTERS_HOLDER__CONVERTERS = eINSTANCE.getXmlConvertersHolder_Converters();
-
-		/**
-		 * The meta object literal for the '<em><b>Type Converters</b></em>' containment reference list feature.
-		 * <!-- begin-user-doc -->
-		 * <!-- end-user-doc -->
-		 * @generated
-		 */
-		public static final EReference XML_CONVERTERS_HOLDER__TYPE_CONVERTERS = eINSTANCE.getXmlConvertersHolder_TypeConverters();
-
-		/**
-		 * The meta object literal for the '<em><b>Object Type Converters</b></em>' containment reference list feature.
-		 * <!-- begin-user-doc -->
-		 * <!-- end-user-doc -->
-		 * @generated
-		 */
-		public static final EReference XML_CONVERTERS_HOLDER__OBJECT_TYPE_CONVERTERS = eINSTANCE.getXmlConvertersHolder_ObjectTypeConverters();
-
-		/**
-		 * The meta object literal for the '<em><b>Struct Converters</b></em>' containment reference list feature.
-		 * <!-- begin-user-doc -->
-		 * <!-- end-user-doc -->
-		 * @generated
-		 */
-		public static final EReference XML_CONVERTERS_HOLDER__STRUCT_CONVERTERS = eINSTANCE.getXmlConvertersHolder_StructConverters();
-
-		/**
-		 * The meta object literal for the '{@link org.eclipse.jpt.eclipselink.core.resource.orm.XmlStoredProcedureParameter <em>Xml Stored Procedure Parameter</em>}' class.
-		 * <!-- begin-user-doc -->
-		 * <!-- end-user-doc -->
-		 * @see org.eclipse.jpt.eclipselink.core.resource.orm.XmlStoredProcedureParameter
-		 * @see org.eclipse.jpt.eclipselink.core.resource.orm.EclipseLinkOrmPackage#getXmlStoredProcedureParameter()
-		 * @generated
-		 */
-		public static final EClass XML_STORED_PROCEDURE_PARAMETER = eINSTANCE.getXmlStoredProcedureParameter();
-
-		/**
-		 * The meta object literal for the '<em><b>Direction</b></em>' attribute feature.
-		 * <!-- begin-user-doc -->
-		 * <!-- end-user-doc -->
-		 * @generated
-		 */
-		public static final EAttribute XML_STORED_PROCEDURE_PARAMETER__DIRECTION = eINSTANCE.getXmlStoredProcedureParameter_Direction();
-
-		/**
-		 * The meta object literal for the '<em><b>Name</b></em>' attribute feature.
-		 * <!-- begin-user-doc -->
-		 * <!-- end-user-doc -->
-		 * @generated
-		 */
-		public static final EAttribute XML_STORED_PROCEDURE_PARAMETER__NAME = eINSTANCE.getXmlStoredProcedureParameter_Name();
-
-		/**
-		 * The meta object literal for the '<em><b>Query Parameter</b></em>' attribute feature.
-		 * <!-- begin-user-doc -->
-		 * <!-- end-user-doc -->
-		 * @generated
-		 */
-		public static final EAttribute XML_STORED_PROCEDURE_PARAMETER__QUERY_PARAMETER = eINSTANCE.getXmlStoredProcedureParameter_QueryParameter();
-
-		/**
-		 * The meta object literal for the '<em><b>Type</b></em>' attribute feature.
-		 * <!-- begin-user-doc -->
-		 * <!-- end-user-doc -->
-		 * @generated
-		 */
-		public static final EAttribute XML_STORED_PROCEDURE_PARAMETER__TYPE = eINSTANCE.getXmlStoredProcedureParameter_Type();
-
-		/**
-		 * The meta object literal for the '<em><b>Jdbc Type</b></em>' attribute feature.
-		 * <!-- begin-user-doc -->
-		 * <!-- end-user-doc -->
-		 * @generated
-		 */
-		public static final EAttribute XML_STORED_PROCEDURE_PARAMETER__JDBC_TYPE = eINSTANCE.getXmlStoredProcedureParameter_JdbcType();
-
-		/**
-		 * The meta object literal for the '<em><b>Jdbc Type Name</b></em>' attribute feature.
-		 * <!-- begin-user-doc -->
-		 * <!-- end-user-doc -->
-		 * @generated
-		 */
-		public static final EAttribute XML_STORED_PROCEDURE_PARAMETER__JDBC_TYPE_NAME = eINSTANCE.getXmlStoredProcedureParameter_JdbcTypeName();
-
-		/**
-		 * The meta object literal for the '{@link org.eclipse.jpt.eclipselink.core.resource.orm.XmlNamedStoredProcedureQuery <em>Xml Named Stored Procedure Query</em>}' class.
-		 * <!-- begin-user-doc -->
-		 * <!-- end-user-doc -->
-		 * @see org.eclipse.jpt.eclipselink.core.resource.orm.XmlNamedStoredProcedureQuery
-		 * @see org.eclipse.jpt.eclipselink.core.resource.orm.EclipseLinkOrmPackage#getXmlNamedStoredProcedureQuery()
-		 * @generated
-		 */
-		public static final EClass XML_NAMED_STORED_PROCEDURE_QUERY = eINSTANCE.getXmlNamedStoredProcedureQuery();
-
-		/**
-		 * The meta object literal for the '<em><b>Name</b></em>' attribute feature.
-		 * <!-- begin-user-doc -->
-		 * <!-- end-user-doc -->
-		 * @generated
-		 */
-		public static final EAttribute XML_NAMED_STORED_PROCEDURE_QUERY__NAME = eINSTANCE.getXmlNamedStoredProcedureQuery_Name();
-
-		/**
-		 * The meta object literal for the '<em><b>Result Class</b></em>' attribute feature.
-		 * <!-- begin-user-doc -->
-		 * <!-- end-user-doc -->
-		 * @generated
-		 */
-		public static final EAttribute XML_NAMED_STORED_PROCEDURE_QUERY__RESULT_CLASS = eINSTANCE.getXmlNamedStoredProcedureQuery_ResultClass();
-
-		/**
-		 * The meta object literal for the '<em><b>Result Set Mapping</b></em>' attribute feature.
-		 * <!-- begin-user-doc -->
-		 * <!-- end-user-doc -->
-		 * @generated
-		 */
-		public static final EAttribute XML_NAMED_STORED_PROCEDURE_QUERY__RESULT_SET_MAPPING = eINSTANCE.getXmlNamedStoredProcedureQuery_ResultSetMapping();
-
-		/**
-		 * The meta object literal for the '<em><b>Procedure Name</b></em>' attribute feature.
-		 * <!-- begin-user-doc -->
-		 * <!-- end-user-doc -->
-		 * @generated
-		 */
-		public static final EAttribute XML_NAMED_STORED_PROCEDURE_QUERY__PROCEDURE_NAME = eINSTANCE.getXmlNamedStoredProcedureQuery_ProcedureName();
-
-		/**
-		 * The meta object literal for the '<em><b>Returns Result Set</b></em>' attribute feature.
-		 * <!-- begin-user-doc -->
-		 * <!-- end-user-doc -->
-		 * @generated
-		 */
-		public static final EAttribute XML_NAMED_STORED_PROCEDURE_QUERY__RETURNS_RESULT_SET = eINSTANCE.getXmlNamedStoredProcedureQuery_ReturnsResultSet();
-
-		/**
-		 * The meta object literal for the '<em><b>Hints</b></em>' containment reference list feature.
-		 * <!-- begin-user-doc -->
-		 * <!-- end-user-doc -->
-		 * @generated
-		 */
-		public static final EReference XML_NAMED_STORED_PROCEDURE_QUERY__HINTS = eINSTANCE.getXmlNamedStoredProcedureQuery_Hints();
-
-		/**
-		 * The meta object literal for the '<em><b>Parameters</b></em>' containment reference list feature.
-		 * <!-- begin-user-doc -->
-		 * <!-- end-user-doc -->
-		 * @generated
-		 */
-		public static final EReference XML_NAMED_STORED_PROCEDURE_QUERY__PARAMETERS = eINSTANCE.getXmlNamedStoredProcedureQuery_Parameters();
-
-		/**
-		 * The meta object literal for the '{@link org.eclipse.jpt.eclipselink.core.resource.orm.XmlEntityMappings <em>Xml Entity Mappings</em>}' class.
-		 * <!-- begin-user-doc -->
-		 * <!-- end-user-doc -->
-		 * @see org.eclipse.jpt.eclipselink.core.resource.orm.XmlEntityMappings
-		 * @see org.eclipse.jpt.eclipselink.core.resource.orm.EclipseLinkOrmPackage#getXmlEntityMappings()
-		 * @generated
-		 */
-		public static final EClass XML_ENTITY_MAPPINGS = eINSTANCE.getXmlEntityMappings();
-
-		/**
-		 * The meta object literal for the '<em><b>Named Stored Procedure Queries</b></em>' containment reference list feature.
-		 * <!-- begin-user-doc -->
-		 * <!-- end-user-doc -->
-		 * @generated
-		 */
-		public static final EReference XML_ENTITY_MAPPINGS__NAMED_STORED_PROCEDURE_QUERIES = eINSTANCE.getXmlEntityMappings_NamedStoredProcedureQueries();
-
-		/**
-		 * The meta object literal for the '{@link org.eclipse.jpt.eclipselink.core.resource.orm.XmlPersistenceUnitMetadata <em>Xml Persistence Unit Metadata</em>}' class.
-		 * <!-- begin-user-doc -->
-		 * <!-- end-user-doc -->
-		 * @see org.eclipse.jpt.eclipselink.core.resource.orm.XmlPersistenceUnitMetadata
-		 * @see org.eclipse.jpt.eclipselink.core.resource.orm.EclipseLinkOrmPackage#getXmlPersistenceUnitMetadata()
-		 * @generated
-		 */
-		public static final EClass XML_PERSISTENCE_UNIT_METADATA = eINSTANCE.getXmlPersistenceUnitMetadata();
-
-		/**
-		 * The meta object literal for the '<em><b>Exclude Default Mappings</b></em>' attribute feature.
-		 * <!-- begin-user-doc -->
-		 * <!-- end-user-doc -->
-		 * @generated
-		 */
-		public static final EAttribute XML_PERSISTENCE_UNIT_METADATA__EXCLUDE_DEFAULT_MAPPINGS = eINSTANCE.getXmlPersistenceUnitMetadata_ExcludeDefaultMappings();
-
-		/**
-		 * The meta object literal for the '{@link org.eclipse.jpt.eclipselink.core.resource.orm.XmlEmbeddable <em>Xml Embeddable</em>}' class.
-		 * <!-- begin-user-doc -->
-		 * <!-- end-user-doc -->
-		 * @see org.eclipse.jpt.eclipselink.core.resource.orm.XmlEmbeddable
-		 * @see org.eclipse.jpt.eclipselink.core.resource.orm.EclipseLinkOrmPackage#getXmlEmbeddable()
-		 * @generated
-		 */
-		public static final EClass XML_EMBEDDABLE = eINSTANCE.getXmlEmbeddable();
-
-		/**
-		 * The meta object literal for the '<em><b>Copy Policy</b></em>' containment reference feature.
-		 * <!-- begin-user-doc -->
-		 * <!-- end-user-doc -->
-		 * @generated
-		 */
-		public static final EReference XML_EMBEDDABLE__COPY_POLICY = eINSTANCE.getXmlEmbeddable_CopyPolicy();
-
-		/**
-		 * The meta object literal for the '<em><b>Instantiation Copy Policy</b></em>' containment reference feature.
-		 * <!-- begin-user-doc -->
-		 * <!-- end-user-doc -->
-		 * @generated
-		 */
-		public static final EReference XML_EMBEDDABLE__INSTANTIATION_COPY_POLICY = eINSTANCE.getXmlEmbeddable_InstantiationCopyPolicy();
-
-		/**
-		 * The meta object literal for the '<em><b>Clone Copy Policy</b></em>' containment reference feature.
-		 * <!-- begin-user-doc -->
-		 * <!-- end-user-doc -->
-		 * @generated
-		 */
-		public static final EReference XML_EMBEDDABLE__CLONE_COPY_POLICY = eINSTANCE.getXmlEmbeddable_CloneCopyPolicy();
-
-		/**
-		 * The meta object literal for the '<em><b>Properties</b></em>' containment reference list feature.
-		 * <!-- begin-user-doc -->
-		 * <!-- end-user-doc -->
-		 * @generated
-		 */
-		public static final EReference XML_EMBEDDABLE__PROPERTIES = eINSTANCE.getXmlEmbeddable_Properties();
-
-		/**
-		 * The meta object literal for the '<em><b>Exclude Default Mappings</b></em>' attribute feature.
-		 * <!-- begin-user-doc -->
-		 * <!-- end-user-doc -->
-		 * @generated
-		 */
-		public static final EAttribute XML_EMBEDDABLE__EXCLUDE_DEFAULT_MAPPINGS = eINSTANCE.getXmlEmbeddable_ExcludeDefaultMappings();
-
-		/**
-		 * The meta object literal for the '{@link org.eclipse.jpt.eclipselink.core.resource.orm.XmlReadOnly <em>Xml Read Only</em>}' class.
-		 * <!-- begin-user-doc -->
-		 * <!-- end-user-doc -->
-		 * @see org.eclipse.jpt.eclipselink.core.resource.orm.XmlReadOnly
-		 * @see org.eclipse.jpt.eclipselink.core.resource.orm.EclipseLinkOrmPackage#getXmlReadOnly()
-		 * @generated
-		 */
-		public static final EClass XML_READ_ONLY = eINSTANCE.getXmlReadOnly();
-
-		/**
-		 * The meta object literal for the '<em><b>Read Only</b></em>' attribute feature.
-		 * <!-- begin-user-doc -->
-		 * <!-- end-user-doc -->
-		 * @generated
-		 */
-		public static final EAttribute XML_READ_ONLY__READ_ONLY = eINSTANCE.getXmlReadOnly_ReadOnly();
-
-		/**
-		 * The meta object literal for the '{@link org.eclipse.jpt.eclipselink.core.resource.orm.XmlTimeOfDay <em>Xml Time Of Day</em>}' class.
-		 * <!-- begin-user-doc -->
-		 * <!-- end-user-doc -->
-		 * @see org.eclipse.jpt.eclipselink.core.resource.orm.XmlTimeOfDay
-		 * @see org.eclipse.jpt.eclipselink.core.resource.orm.EclipseLinkOrmPackage#getXmlTimeOfDay()
-		 * @generated
-		 */
-		public static final EClass XML_TIME_OF_DAY = eINSTANCE.getXmlTimeOfDay();
-
-		/**
-		 * The meta object literal for the '<em><b>Hour</b></em>' attribute feature.
-		 * <!-- begin-user-doc -->
-		 * <!-- end-user-doc -->
-		 * @generated
-		 */
-		public static final EAttribute XML_TIME_OF_DAY__HOUR = eINSTANCE.getXmlTimeOfDay_Hour();
-
-		/**
-		 * The meta object literal for the '<em><b>Minute</b></em>' attribute feature.
-		 * <!-- begin-user-doc -->
-		 * <!-- end-user-doc -->
-		 * @generated
-		 */
-		public static final EAttribute XML_TIME_OF_DAY__MINUTE = eINSTANCE.getXmlTimeOfDay_Minute();
-
-		/**
-		 * The meta object literal for the '<em><b>Second</b></em>' attribute feature.
-		 * <!-- begin-user-doc -->
-		 * <!-- end-user-doc -->
-		 * @generated
-		 */
-		public static final EAttribute XML_TIME_OF_DAY__SECOND = eINSTANCE.getXmlTimeOfDay_Second();
-
-		/**
-		 * The meta object literal for the '<em><b>Millisecond</b></em>' attribute feature.
-		 * <!-- begin-user-doc -->
-		 * <!-- end-user-doc -->
-		 * @generated
-		 */
-		public static final EAttribute XML_TIME_OF_DAY__MILLISECOND = eINSTANCE.getXmlTimeOfDay_Millisecond();
-
-		/**
-		 * The meta object literal for the '{@link org.eclipse.jpt.eclipselink.core.resource.orm.XmlCache <em>Xml Cache</em>}' class.
-		 * <!-- begin-user-doc -->
-		 * <!-- end-user-doc -->
-		 * @see org.eclipse.jpt.eclipselink.core.resource.orm.XmlCache
-		 * @see org.eclipse.jpt.eclipselink.core.resource.orm.EclipseLinkOrmPackage#getXmlCache()
-		 * @generated
-		 */
-		public static final EClass XML_CACHE = eINSTANCE.getXmlCache();
-
-		/**
-		 * The meta object literal for the '<em><b>Expiry</b></em>' attribute feature.
-		 * <!-- begin-user-doc -->
-		 * <!-- end-user-doc -->
-		 * @generated
-		 */
-		public static final EAttribute XML_CACHE__EXPIRY = eINSTANCE.getXmlCache_Expiry();
-
-		/**
-		 * The meta object literal for the '<em><b>Size</b></em>' attribute feature.
-		 * <!-- begin-user-doc -->
-		 * <!-- end-user-doc -->
-		 * @generated
-		 */
-		public static final EAttribute XML_CACHE__SIZE = eINSTANCE.getXmlCache_Size();
-
-		/**
-		 * The meta object literal for the '<em><b>Shared</b></em>' attribute feature.
-		 * <!-- begin-user-doc -->
-		 * <!-- end-user-doc -->
-		 * @generated
-		 */
-		public static final EAttribute XML_CACHE__SHARED = eINSTANCE.getXmlCache_Shared();
-
-		/**
-		 * The meta object literal for the '<em><b>Type</b></em>' attribute feature.
-		 * <!-- begin-user-doc -->
-		 * <!-- end-user-doc -->
-		 * @generated
-		 */
-		public static final EAttribute XML_CACHE__TYPE = eINSTANCE.getXmlCache_Type();
-
-		/**
-		 * The meta object literal for the '<em><b>Always Refresh</b></em>' attribute feature.
-		 * <!-- begin-user-doc -->
-		 * <!-- end-user-doc -->
-		 * @generated
-		 */
-		public static final EAttribute XML_CACHE__ALWAYS_REFRESH = eINSTANCE.getXmlCache_AlwaysRefresh();
-
-		/**
-		 * The meta object literal for the '<em><b>Refresh Only If Newer</b></em>' attribute feature.
-		 * <!-- begin-user-doc -->
-		 * <!-- end-user-doc -->
-		 * @generated
-		 */
-		public static final EAttribute XML_CACHE__REFRESH_ONLY_IF_NEWER = eINSTANCE.getXmlCache_RefreshOnlyIfNewer();
-
-		/**
-		 * The meta object literal for the '<em><b>Disable Hits</b></em>' attribute feature.
-		 * <!-- begin-user-doc -->
-		 * <!-- end-user-doc -->
-		 * @generated
-		 */
-		public static final EAttribute XML_CACHE__DISABLE_HITS = eINSTANCE.getXmlCache_DisableHits();
-
-		/**
-		 * The meta object literal for the '<em><b>Coordination Type</b></em>' attribute feature.
-		 * <!-- begin-user-doc -->
-		 * <!-- end-user-doc -->
-		 * @generated
-		 */
-		public static final EAttribute XML_CACHE__COORDINATION_TYPE = eINSTANCE.getXmlCache_CoordinationType();
-
-		/**
-		 * The meta object literal for the '<em><b>Expiry Time Of Day</b></em>' containment reference feature.
-		 * <!-- begin-user-doc -->
-		 * <!-- end-user-doc -->
-		 * @generated
-		 */
-		public static final EReference XML_CACHE__EXPIRY_TIME_OF_DAY = eINSTANCE.getXmlCache_ExpiryTimeOfDay();
-
-		/**
-		 * The meta object literal for the '{@link org.eclipse.jpt.eclipselink.core.resource.orm.XmlCacheHolder <em>Xml Cache Holder</em>}' class.
-		 * <!-- begin-user-doc -->
-		 * <!-- end-user-doc -->
-		 * @see org.eclipse.jpt.eclipselink.core.resource.orm.XmlCacheHolder
-		 * @see org.eclipse.jpt.eclipselink.core.resource.orm.EclipseLinkOrmPackage#getXmlCacheHolder()
-		 * @generated
-		 */
-		public static final EClass XML_CACHE_HOLDER = eINSTANCE.getXmlCacheHolder();
-
-		/**
-		 * The meta object literal for the '<em><b>Cache</b></em>' containment reference feature.
-		 * <!-- begin-user-doc -->
-		 * <!-- end-user-doc -->
-		 * @generated
-		 */
-		public static final EReference XML_CACHE_HOLDER__CACHE = eINSTANCE.getXmlCacheHolder_Cache();
-
-		/**
-		 * The meta object literal for the '<em><b>Existence Checking</b></em>' attribute feature.
-		 * <!-- begin-user-doc -->
-		 * <!-- end-user-doc -->
-		 * @generated
-		 */
-		public static final EAttribute XML_CACHE_HOLDER__EXISTENCE_CHECKING = eINSTANCE.getXmlCacheHolder_ExistenceChecking();
-
-		/**
-		 * The meta object literal for the '{@link org.eclipse.jpt.eclipselink.core.resource.orm.XmlOptimisticLocking <em>Xml Optimistic Locking</em>}' class.
-		 * <!-- begin-user-doc -->
-		 * <!-- end-user-doc -->
-		 * @see org.eclipse.jpt.eclipselink.core.resource.orm.XmlOptimisticLocking
-		 * @see org.eclipse.jpt.eclipselink.core.resource.orm.EclipseLinkOrmPackage#getXmlOptimisticLocking()
-		 * @generated
-		 */
-		public static final EClass XML_OPTIMISTIC_LOCKING = eINSTANCE.getXmlOptimisticLocking();
-
-		/**
-		 * The meta object literal for the '<em><b>Type</b></em>' attribute feature.
-		 * <!-- begin-user-doc -->
-		 * <!-- end-user-doc -->
-		 * @generated
-		 */
-		public static final EAttribute XML_OPTIMISTIC_LOCKING__TYPE = eINSTANCE.getXmlOptimisticLocking_Type();
-
-		/**
-		 * The meta object literal for the '<em><b>Cascade</b></em>' attribute feature.
-		 * <!-- begin-user-doc -->
-		 * <!-- end-user-doc -->
-		 * @generated
-		 */
-		public static final EAttribute XML_OPTIMISTIC_LOCKING__CASCADE = eINSTANCE.getXmlOptimisticLocking_Cascade();
-
-		/**
-		 * The meta object literal for the '<em><b>Selected Columns</b></em>' containment reference list feature.
-		 * <!-- begin-user-doc -->
-		 * <!-- end-user-doc -->
-		 * @generated
-		 */
-		public static final EReference XML_OPTIMISTIC_LOCKING__SELECTED_COLUMNS = eINSTANCE.getXmlOptimisticLocking_SelectedColumns();
-
-		/**
-		 * The meta object literal for the '{@link org.eclipse.jpt.eclipselink.core.resource.orm.XmlEntity <em>Xml Entity</em>}' class.
-		 * <!-- begin-user-doc -->
-		 * <!-- end-user-doc -->
-		 * @see org.eclipse.jpt.eclipselink.core.resource.orm.XmlEntity
-		 * @see org.eclipse.jpt.eclipselink.core.resource.orm.EclipseLinkOrmPackage#getXmlEntity()
-		 * @generated
-		 */
-		public static final EClass XML_ENTITY = eINSTANCE.getXmlEntity();
-
-		/**
-		 * The meta object literal for the '<em><b>Optimistic Locking</b></em>' containment reference feature.
-		 * <!-- begin-user-doc -->
-		 * <!-- end-user-doc -->
-		 * @generated
-		 */
-		public static final EReference XML_ENTITY__OPTIMISTIC_LOCKING = eINSTANCE.getXmlEntity_OptimisticLocking();
-
-		/**
-		 * The meta object literal for the '<em><b>Copy Policy</b></em>' containment reference feature.
-		 * <!-- begin-user-doc -->
-		 * <!-- end-user-doc -->
-		 * @generated
-		 */
-		public static final EReference XML_ENTITY__COPY_POLICY = eINSTANCE.getXmlEntity_CopyPolicy();
-
-		/**
-		 * The meta object literal for the '<em><b>Instantiation Copy Policy</b></em>' containment reference feature.
-		 * <!-- begin-user-doc -->
-		 * <!-- end-user-doc -->
-		 * @generated
-		 */
-		public static final EReference XML_ENTITY__INSTANTIATION_COPY_POLICY = eINSTANCE.getXmlEntity_InstantiationCopyPolicy();
-
-		/**
-		 * The meta object literal for the '<em><b>Clone Copy Policy</b></em>' containment reference feature.
-		 * <!-- begin-user-doc -->
-		 * <!-- end-user-doc -->
-		 * @generated
-		 */
-		public static final EReference XML_ENTITY__CLONE_COPY_POLICY = eINSTANCE.getXmlEntity_CloneCopyPolicy();
-
-		/**
-		 * The meta object literal for the '<em><b>Named Stored Procedure Queries</b></em>' containment reference list feature.
-		 * <!-- begin-user-doc -->
-		 * <!-- end-user-doc -->
-		 * @generated
-		 */
-		public static final EReference XML_ENTITY__NAMED_STORED_PROCEDURE_QUERIES = eINSTANCE.getXmlEntity_NamedStoredProcedureQueries();
-
-		/**
-		 * The meta object literal for the '<em><b>Properties</b></em>' containment reference list feature.
-		 * <!-- begin-user-doc -->
-		 * <!-- end-user-doc -->
-		 * @generated
-		 */
-		public static final EReference XML_ENTITY__PROPERTIES = eINSTANCE.getXmlEntity_Properties();
-
-		/**
-		 * The meta object literal for the '<em><b>Exclude Default Mappings</b></em>' attribute feature.
-		 * <!-- begin-user-doc -->
-		 * <!-- end-user-doc -->
-		 * @generated
-		 */
-		public static final EAttribute XML_ENTITY__EXCLUDE_DEFAULT_MAPPINGS = eINSTANCE.getXmlEntity_ExcludeDefaultMappings();
-
-		/**
-		 * The meta object literal for the '{@link org.eclipse.jpt.eclipselink.core.resource.orm.XmlMappedSuperclass <em>Xml Mapped Superclass</em>}' class.
-		 * <!-- begin-user-doc -->
-		 * <!-- end-user-doc -->
-		 * @see org.eclipse.jpt.eclipselink.core.resource.orm.XmlMappedSuperclass
-		 * @see org.eclipse.jpt.eclipselink.core.resource.orm.EclipseLinkOrmPackage#getXmlMappedSuperclass()
-		 * @generated
-		 */
-		public static final EClass XML_MAPPED_SUPERCLASS = eINSTANCE.getXmlMappedSuperclass();
-
-		/**
-		 * The meta object literal for the '<em><b>Optimistic Locking</b></em>' containment reference feature.
-		 * <!-- begin-user-doc -->
-		 * <!-- end-user-doc -->
-		 * @generated
-		 */
-		public static final EReference XML_MAPPED_SUPERCLASS__OPTIMISTIC_LOCKING = eINSTANCE.getXmlMappedSuperclass_OptimisticLocking();
-
-		/**
-		 * The meta object literal for the '<em><b>Copy Policy</b></em>' containment reference feature.
-		 * <!-- begin-user-doc -->
-		 * <!-- end-user-doc -->
-		 * @generated
-		 */
-		public static final EReference XML_MAPPED_SUPERCLASS__COPY_POLICY = eINSTANCE.getXmlMappedSuperclass_CopyPolicy();
-
-		/**
-		 * The meta object literal for the '<em><b>Instantiation Copy Policy</b></em>' containment reference feature.
-		 * <!-- begin-user-doc -->
-		 * <!-- end-user-doc -->
-		 * @generated
-		 */
-		public static final EReference XML_MAPPED_SUPERCLASS__INSTANTIATION_COPY_POLICY = eINSTANCE.getXmlMappedSuperclass_InstantiationCopyPolicy();
-
-		/**
-		 * The meta object literal for the '<em><b>Clone Copy Policy</b></em>' containment reference feature.
-		 * <!-- begin-user-doc -->
-		 * <!-- end-user-doc -->
-		 * @generated
-		 */
-		public static final EReference XML_MAPPED_SUPERCLASS__CLONE_COPY_POLICY = eINSTANCE.getXmlMappedSuperclass_CloneCopyPolicy();
-
-		/**
-		 * The meta object literal for the '<em><b>Properties</b></em>' containment reference list feature.
-		 * <!-- begin-user-doc -->
-		 * <!-- end-user-doc -->
-		 * @generated
-		 */
-		public static final EReference XML_MAPPED_SUPERCLASS__PROPERTIES = eINSTANCE.getXmlMappedSuperclass_Properties();
-
-		/**
-		 * The meta object literal for the '<em><b>Exclude Default Mappings</b></em>' attribute feature.
-		 * <!-- begin-user-doc -->
-		 * <!-- end-user-doc -->
-		 * @generated
-		 */
-		public static final EAttribute XML_MAPPED_SUPERCLASS__EXCLUDE_DEFAULT_MAPPINGS = eINSTANCE.getXmlMappedSuperclass_ExcludeDefaultMappings();
-
-		/**
-		 * The meta object literal for the '{@link org.eclipse.jpt.eclipselink.core.resource.orm.XmlMutable <em>Xml Mutable</em>}' class.
-		 * <!-- begin-user-doc -->
-		 * <!-- end-user-doc -->
-		 * @see org.eclipse.jpt.eclipselink.core.resource.orm.XmlMutable
-		 * @see org.eclipse.jpt.eclipselink.core.resource.orm.EclipseLinkOrmPackage#getXmlMutable()
-		 * @generated
-		 */
-		public static final EClass XML_MUTABLE = eINSTANCE.getXmlMutable();
-
-		/**
-		 * The meta object literal for the '<em><b>Mutable</b></em>' attribute feature.
-		 * <!-- begin-user-doc -->
-		 * <!-- end-user-doc -->
-		 * @generated
-		 */
-		public static final EAttribute XML_MUTABLE__MUTABLE = eINSTANCE.getXmlMutable_Mutable();
-
-		/**
-		 * The meta object literal for the '{@link org.eclipse.jpt.eclipselink.core.resource.orm.XmlConvertibleMapping <em>Xml Convertible Mapping</em>}' class.
-		 * <!-- begin-user-doc -->
-		 * <!-- end-user-doc -->
-		 * @see org.eclipse.jpt.eclipselink.core.resource.orm.XmlConvertibleMapping
-		 * @see org.eclipse.jpt.eclipselink.core.resource.orm.EclipseLinkOrmPackage#getXmlConvertibleMapping()
-		 * @generated
-		 */
-		public static final EClass XML_CONVERTIBLE_MAPPING = eINSTANCE.getXmlConvertibleMapping();
-
-		/**
-		 * The meta object literal for the '<em><b>Convert</b></em>' attribute feature.
-		 * <!-- begin-user-doc -->
-		 * <!-- end-user-doc -->
-		 * @generated
-		 */
-		public static final EAttribute XML_CONVERTIBLE_MAPPING__CONVERT = eINSTANCE.getXmlConvertibleMapping_Convert();
-
-		/**
-		 * The meta object literal for the '{@link org.eclipse.jpt.eclipselink.core.resource.orm.XmlAccessMethods <em>Xml Access Methods</em>}' class.
-		 * <!-- begin-user-doc -->
-		 * <!-- end-user-doc -->
-		 * @see org.eclipse.jpt.eclipselink.core.resource.orm.XmlAccessMethods
-		 * @see org.eclipse.jpt.eclipselink.core.resource.orm.EclipseLinkOrmPackage#getXmlAccessMethods()
-		 * @generated
-		 */
-		public static final EClass XML_ACCESS_METHODS = eINSTANCE.getXmlAccessMethods();
-
-		/**
-		 * The meta object literal for the '<em><b>Get Method</b></em>' attribute feature.
-		 * <!-- begin-user-doc -->
-		 * <!-- end-user-doc -->
-		 * @generated
-		 */
-		public static final EAttribute XML_ACCESS_METHODS__GET_METHOD = eINSTANCE.getXmlAccessMethods_GetMethod();
-
-		/**
-		 * The meta object literal for the '<em><b>Set Method</b></em>' attribute feature.
-		 * <!-- begin-user-doc -->
-		 * <!-- end-user-doc -->
-		 * @generated
-		 */
-		public static final EAttribute XML_ACCESS_METHODS__SET_METHOD = eINSTANCE.getXmlAccessMethods_SetMethod();
-
-		/**
-		 * The meta object literal for the '{@link org.eclipse.jpt.eclipselink.core.resource.orm.XmlAccessMethodsHolder <em>Xml Access Methods Holder</em>}' class.
-		 * <!-- begin-user-doc -->
-		 * <!-- end-user-doc -->
-		 * @see org.eclipse.jpt.eclipselink.core.resource.orm.XmlAccessMethodsHolder
-		 * @see org.eclipse.jpt.eclipselink.core.resource.orm.EclipseLinkOrmPackage#getXmlAccessMethodsHolder()
-		 * @generated
-		 */
-		public static final EClass XML_ACCESS_METHODS_HOLDER = eINSTANCE.getXmlAccessMethodsHolder();
-
-		/**
-		 * The meta object literal for the '<em><b>Access Methods</b></em>' containment reference feature.
-		 * <!-- begin-user-doc -->
-		 * <!-- end-user-doc -->
-		 * @generated
-		 */
-		public static final EReference XML_ACCESS_METHODS_HOLDER__ACCESS_METHODS = eINSTANCE.getXmlAccessMethodsHolder_AccessMethods();
-
-		/**
-		 * The meta object literal for the '{@link org.eclipse.jpt.eclipselink.core.resource.orm.XmlId <em>Xml Id</em>}' class.
-		 * <!-- begin-user-doc -->
-		 * <!-- end-user-doc -->
-		 * @see org.eclipse.jpt.eclipselink.core.resource.orm.XmlId
-		 * @see org.eclipse.jpt.eclipselink.core.resource.orm.EclipseLinkOrmPackage#getXmlId()
-		 * @generated
-		 */
-		public static final EClass XML_ID = eINSTANCE.getXmlId();
-
-		/**
-		 * The meta object literal for the '<em><b>Properties</b></em>' containment reference list feature.
-		 * <!-- begin-user-doc -->
-		 * <!-- end-user-doc -->
-		 * @generated
-		 */
-		public static final EReference XML_ID__PROPERTIES = eINSTANCE.getXmlId_Properties();
-
-		/**
-		 * The meta object literal for the '{@link org.eclipse.jpt.eclipselink.core.resource.orm.XmlIdImpl <em>Xml Id Impl</em>}' class.
-		 * <!-- begin-user-doc -->
-		 * <!-- end-user-doc -->
-		 * @see org.eclipse.jpt.eclipselink.core.resource.orm.XmlIdImpl
-		 * @see org.eclipse.jpt.eclipselink.core.resource.orm.EclipseLinkOrmPackage#getXmlIdImpl()
-		 * @generated
-		 */
-		public static final EClass XML_ID_IMPL = eINSTANCE.getXmlIdImpl();
-
-		/**
-		 * The meta object literal for the '{@link org.eclipse.jpt.eclipselink.core.resource.orm.XmlEmbeddedId <em>Xml Embedded Id</em>}' class.
-		 * <!-- begin-user-doc -->
-		 * <!-- end-user-doc -->
-		 * @see org.eclipse.jpt.eclipselink.core.resource.orm.XmlEmbeddedId
-		 * @see org.eclipse.jpt.eclipselink.core.resource.orm.EclipseLinkOrmPackage#getXmlEmbeddedId()
-		 * @generated
-		 */
-		public static final EClass XML_EMBEDDED_ID = eINSTANCE.getXmlEmbeddedId();
-
-		/**
-		 * The meta object literal for the '<em><b>Properties</b></em>' containment reference list feature.
-		 * <!-- begin-user-doc -->
-		 * <!-- end-user-doc -->
-		 * @generated
-		 */
-		public static final EReference XML_EMBEDDED_ID__PROPERTIES = eINSTANCE.getXmlEmbeddedId_Properties();
-
-		/**
-		 * The meta object literal for the '{@link org.eclipse.jpt.eclipselink.core.resource.orm.XmlEmbeddedIdImpl <em>Xml Embedded Id Impl</em>}' class.
-		 * <!-- begin-user-doc -->
-		 * <!-- end-user-doc -->
-		 * @see org.eclipse.jpt.eclipselink.core.resource.orm.XmlEmbeddedIdImpl
-		 * @see org.eclipse.jpt.eclipselink.core.resource.orm.EclipseLinkOrmPackage#getXmlEmbeddedIdImpl()
-		 * @generated
-		 */
-		public static final EClass XML_EMBEDDED_ID_IMPL = eINSTANCE.getXmlEmbeddedIdImpl();
-
-		/**
-		 * The meta object literal for the '{@link org.eclipse.jpt.eclipselink.core.resource.orm.XmlEmbedded <em>Xml Embedded</em>}' class.
-		 * <!-- begin-user-doc -->
-		 * <!-- end-user-doc -->
-		 * @see org.eclipse.jpt.eclipselink.core.resource.orm.XmlEmbedded
-		 * @see org.eclipse.jpt.eclipselink.core.resource.orm.EclipseLinkOrmPackage#getXmlEmbedded()
-		 * @generated
-		 */
-		public static final EClass XML_EMBEDDED = eINSTANCE.getXmlEmbedded();
-
-		/**
-		 * The meta object literal for the '<em><b>Properties</b></em>' containment reference list feature.
-		 * <!-- begin-user-doc -->
-		 * <!-- end-user-doc -->
-		 * @generated
-		 */
-		public static final EReference XML_EMBEDDED__PROPERTIES = eINSTANCE.getXmlEmbedded_Properties();
-
-		/**
-		 * The meta object literal for the '{@link org.eclipse.jpt.eclipselink.core.resource.orm.XmlEmbeddedImpl <em>Xml Embedded Impl</em>}' class.
-		 * <!-- begin-user-doc -->
-		 * <!-- end-user-doc -->
-		 * @see org.eclipse.jpt.eclipselink.core.resource.orm.XmlEmbeddedImpl
-		 * @see org.eclipse.jpt.eclipselink.core.resource.orm.EclipseLinkOrmPackage#getXmlEmbeddedImpl()
-		 * @generated
-		 */
-		public static final EClass XML_EMBEDDED_IMPL = eINSTANCE.getXmlEmbeddedImpl();
-
-		/**
-		 * The meta object literal for the '{@link org.eclipse.jpt.eclipselink.core.resource.orm.XmlBasic <em>Xml Basic</em>}' class.
-		 * <!-- begin-user-doc -->
-		 * <!-- end-user-doc -->
-		 * @see org.eclipse.jpt.eclipselink.core.resource.orm.XmlBasic
-		 * @see org.eclipse.jpt.eclipselink.core.resource.orm.EclipseLinkOrmPackage#getXmlBasic()
-		 * @generated
-		 */
-		public static final EClass XML_BASIC = eINSTANCE.getXmlBasic();
-
-		/**
-		 * The meta object literal for the '<em><b>Properties</b></em>' containment reference list feature.
-		 * <!-- begin-user-doc -->
-		 * <!-- end-user-doc -->
-		 * @generated
-		 */
-		public static final EReference XML_BASIC__PROPERTIES = eINSTANCE.getXmlBasic_Properties();
-
-		/**
-		 * The meta object literal for the '{@link org.eclipse.jpt.eclipselink.core.resource.orm.XmlBasicImpl <em>Xml Basic Impl</em>}' class.
-		 * <!-- begin-user-doc -->
-		 * <!-- end-user-doc -->
-		 * @see org.eclipse.jpt.eclipselink.core.resource.orm.XmlBasicImpl
-		 * @see org.eclipse.jpt.eclipselink.core.resource.orm.EclipseLinkOrmPackage#getXmlBasicImpl()
-		 * @generated
-		 */
-		public static final EClass XML_BASIC_IMPL = eINSTANCE.getXmlBasicImpl();
-
-		/**
-		 * The meta object literal for the '{@link org.eclipse.jpt.eclipselink.core.resource.orm.XmlVersion <em>Xml Version</em>}' class.
-		 * <!-- begin-user-doc -->
-		 * <!-- end-user-doc -->
-		 * @see org.eclipse.jpt.eclipselink.core.resource.orm.XmlVersion
-		 * @see org.eclipse.jpt.eclipselink.core.resource.orm.EclipseLinkOrmPackage#getXmlVersion()
-		 * @generated
-		 */
-		public static final EClass XML_VERSION = eINSTANCE.getXmlVersion();
-
-		/**
-		 * The meta object literal for the '<em><b>Properties</b></em>' containment reference list feature.
-		 * <!-- begin-user-doc -->
-		 * <!-- end-user-doc -->
-		 * @generated
-		 */
-		public static final EReference XML_VERSION__PROPERTIES = eINSTANCE.getXmlVersion_Properties();
-
-		/**
-		 * The meta object literal for the '{@link org.eclipse.jpt.eclipselink.core.resource.orm.XmlVersionImpl <em>Xml Version Impl</em>}' class.
-		 * <!-- begin-user-doc -->
-		 * <!-- end-user-doc -->
-		 * @see org.eclipse.jpt.eclipselink.core.resource.orm.XmlVersionImpl
-		 * @see org.eclipse.jpt.eclipselink.core.resource.orm.EclipseLinkOrmPackage#getXmlVersionImpl()
-		 * @generated
-		 */
-		public static final EClass XML_VERSION_IMPL = eINSTANCE.getXmlVersionImpl();
-
-		/**
-		 * The meta object literal for the '{@link org.eclipse.jpt.eclipselink.core.resource.orm.XmlPrivateOwned <em>Xml Private Owned</em>}' class.
-		 * <!-- begin-user-doc -->
-		 * <!-- end-user-doc -->
-		 * @see org.eclipse.jpt.eclipselink.core.resource.orm.XmlPrivateOwned
-		 * @see org.eclipse.jpt.eclipselink.core.resource.orm.EclipseLinkOrmPackage#getXmlPrivateOwned()
-		 * @generated
-		 */
-		public static final EClass XML_PRIVATE_OWNED = eINSTANCE.getXmlPrivateOwned();
-
-		/**
-		 * The meta object literal for the '<em><b>Private Owned</b></em>' attribute feature.
-		 * <!-- begin-user-doc -->
-		 * <!-- end-user-doc -->
-		 * @generated
-		 */
-		public static final EAttribute XML_PRIVATE_OWNED__PRIVATE_OWNED = eINSTANCE.getXmlPrivateOwned_PrivateOwned();
-
-		/**
-		 * The meta object literal for the '{@link org.eclipse.jpt.eclipselink.core.resource.orm.XmlJoinFetch <em>Xml Join Fetch</em>}' class.
-		 * <!-- begin-user-doc -->
-		 * <!-- end-user-doc -->
-		 * @see org.eclipse.jpt.eclipselink.core.resource.orm.XmlJoinFetch
-		 * @see org.eclipse.jpt.eclipselink.core.resource.orm.EclipseLinkOrmPackage#getXmlJoinFetch()
-		 * @generated
-		 */
-		public static final EClass XML_JOIN_FETCH = eINSTANCE.getXmlJoinFetch();
-
-		/**
-		 * The meta object literal for the '<em><b>Join Fetch</b></em>' attribute feature.
-		 * <!-- begin-user-doc -->
-		 * <!-- end-user-doc -->
-		 * @generated
-		 */
-		public static final EAttribute XML_JOIN_FETCH__JOIN_FETCH = eINSTANCE.getXmlJoinFetch_JoinFetch();
-
-		/**
-		 * The meta object literal for the '{@link org.eclipse.jpt.eclipselink.core.resource.orm.XmlOneToOne <em>Xml One To One</em>}' class.
-		 * <!-- begin-user-doc -->
-		 * <!-- end-user-doc -->
-		 * @see org.eclipse.jpt.eclipselink.core.resource.orm.XmlOneToOne
-		 * @see org.eclipse.jpt.eclipselink.core.resource.orm.EclipseLinkOrmPackage#getXmlOneToOne()
-		 * @generated
-		 */
-		public static final EClass XML_ONE_TO_ONE = eINSTANCE.getXmlOneToOne();
-
-		/**
-		 * The meta object literal for the '<em><b>Properties</b></em>' containment reference list feature.
-		 * <!-- begin-user-doc -->
-		 * <!-- end-user-doc -->
-		 * @generated
-		 */
-		public static final EReference XML_ONE_TO_ONE__PROPERTIES = eINSTANCE.getXmlOneToOne_Properties();
-
-		/**
-		 * The meta object literal for the '{@link org.eclipse.jpt.eclipselink.core.resource.orm.XmlOneToOneImpl <em>Xml One To One Impl</em>}' class.
-		 * <!-- begin-user-doc -->
-		 * <!-- end-user-doc -->
-		 * @see org.eclipse.jpt.eclipselink.core.resource.orm.XmlOneToOneImpl
-		 * @see org.eclipse.jpt.eclipselink.core.resource.orm.EclipseLinkOrmPackage#getXmlOneToOneImpl()
-		 * @generated
-		 */
-		public static final EClass XML_ONE_TO_ONE_IMPL = eINSTANCE.getXmlOneToOneImpl();
-
-		/**
-		 * The meta object literal for the '{@link org.eclipse.jpt.eclipselink.core.resource.orm.XmlOneToMany <em>Xml One To Many</em>}' class.
-		 * <!-- begin-user-doc -->
-		 * <!-- end-user-doc -->
-		 * @see org.eclipse.jpt.eclipselink.core.resource.orm.XmlOneToMany
-		 * @see org.eclipse.jpt.eclipselink.core.resource.orm.EclipseLinkOrmPackage#getXmlOneToMany()
-		 * @generated
-		 */
-		public static final EClass XML_ONE_TO_MANY = eINSTANCE.getXmlOneToMany();
-
-		/**
-		 * The meta object literal for the '<em><b>Properties</b></em>' containment reference list feature.
-		 * <!-- begin-user-doc -->
-		 * <!-- end-user-doc -->
-		 * @generated
-		 */
-		public static final EReference XML_ONE_TO_MANY__PROPERTIES = eINSTANCE.getXmlOneToMany_Properties();
-
-		/**
-		 * The meta object literal for the '{@link org.eclipse.jpt.eclipselink.core.resource.orm.XmlOneToManyImpl <em>Xml One To Many Impl</em>}' class.
-		 * <!-- begin-user-doc -->
-		 * <!-- end-user-doc -->
-		 * @see org.eclipse.jpt.eclipselink.core.resource.orm.XmlOneToManyImpl
-		 * @see org.eclipse.jpt.eclipselink.core.resource.orm.EclipseLinkOrmPackage#getXmlOneToManyImpl()
-		 * @generated
-		 */
-		public static final EClass XML_ONE_TO_MANY_IMPL = eINSTANCE.getXmlOneToManyImpl();
-
-		/**
-		 * The meta object literal for the '{@link org.eclipse.jpt.eclipselink.core.resource.orm.XmlManyToOne <em>Xml Many To One</em>}' class.
-		 * <!-- begin-user-doc -->
-		 * <!-- end-user-doc -->
-		 * @see org.eclipse.jpt.eclipselink.core.resource.orm.XmlManyToOne
-		 * @see org.eclipse.jpt.eclipselink.core.resource.orm.EclipseLinkOrmPackage#getXmlManyToOne()
-		 * @generated
-		 */
-		public static final EClass XML_MANY_TO_ONE = eINSTANCE.getXmlManyToOne();
-
-		/**
-		 * The meta object literal for the '<em><b>Properties</b></em>' containment reference list feature.
-		 * <!-- begin-user-doc -->
-		 * <!-- end-user-doc -->
-		 * @generated
-		 */
-		public static final EReference XML_MANY_TO_ONE__PROPERTIES = eINSTANCE.getXmlManyToOne_Properties();
-
-		/**
-		 * The meta object literal for the '{@link org.eclipse.jpt.eclipselink.core.resource.orm.XmlManyToOneImpl <em>Xml Many To One Impl</em>}' class.
-		 * <!-- begin-user-doc -->
-		 * <!-- end-user-doc -->
-		 * @see org.eclipse.jpt.eclipselink.core.resource.orm.XmlManyToOneImpl
-		 * @see org.eclipse.jpt.eclipselink.core.resource.orm.EclipseLinkOrmPackage#getXmlManyToOneImpl()
-		 * @generated
-		 */
-		public static final EClass XML_MANY_TO_ONE_IMPL = eINSTANCE.getXmlManyToOneImpl();
-
-		/**
-		 * The meta object literal for the '{@link org.eclipse.jpt.eclipselink.core.resource.orm.XmlManyToMany <em>Xml Many To Many</em>}' class.
-		 * <!-- begin-user-doc -->
-		 * <!-- end-user-doc -->
-		 * @see org.eclipse.jpt.eclipselink.core.resource.orm.XmlManyToMany
-		 * @see org.eclipse.jpt.eclipselink.core.resource.orm.EclipseLinkOrmPackage#getXmlManyToMany()
-		 * @generated
-		 */
-		public static final EClass XML_MANY_TO_MANY = eINSTANCE.getXmlManyToMany();
-
-		/**
-		 * The meta object literal for the '<em><b>Properties</b></em>' containment reference list feature.
-		 * <!-- begin-user-doc -->
-		 * <!-- end-user-doc -->
-		 * @generated
-		 */
-		public static final EReference XML_MANY_TO_MANY__PROPERTIES = eINSTANCE.getXmlManyToMany_Properties();
-
-		/**
-		 * The meta object literal for the '{@link org.eclipse.jpt.eclipselink.core.resource.orm.XmlManyToManyImpl <em>Xml Many To Many Impl</em>}' class.
-		 * <!-- begin-user-doc -->
-		 * <!-- end-user-doc -->
-		 * @see org.eclipse.jpt.eclipselink.core.resource.orm.XmlManyToManyImpl
-		 * @see org.eclipse.jpt.eclipselink.core.resource.orm.EclipseLinkOrmPackage#getXmlManyToManyImpl()
-		 * @generated
-		 */
-		public static final EClass XML_MANY_TO_MANY_IMPL = eINSTANCE.getXmlManyToManyImpl();
-
-		/**
-		 * The meta object literal for the '{@link org.eclipse.jpt.eclipselink.core.resource.orm.Attributes <em>Attributes</em>}' class.
-		 * <!-- begin-user-doc -->
-		 * <!-- end-user-doc -->
-		 * @see org.eclipse.jpt.eclipselink.core.resource.orm.Attributes
-		 * @see org.eclipse.jpt.eclipselink.core.resource.orm.EclipseLinkOrmPackage#getAttributes()
-		 * @generated
-		 */
-		public static final EClass ATTRIBUTES = eINSTANCE.getAttributes();
-
-		/**
-		 * The meta object literal for the '<em><b>Basic Collections</b></em>' containment reference list feature.
-		 * <!-- begin-user-doc -->
-		 * <!-- end-user-doc -->
-		 * @generated
-		 */
-		public static final EReference ATTRIBUTES__BASIC_COLLECTIONS = eINSTANCE.getAttributes_BasicCollections();
-
-		/**
-		 * The meta object literal for the '<em><b>Basic Maps</b></em>' containment reference list feature.
-		 * <!-- begin-user-doc -->
-		 * <!-- end-user-doc -->
-		 * @generated
-		 */
-		public static final EReference ATTRIBUTES__BASIC_MAPS = eINSTANCE.getAttributes_BasicMaps();
-
-		/**
-		 * The meta object literal for the '<em><b>Transformations</b></em>' containment reference list feature.
-		 * <!-- begin-user-doc -->
-		 * <!-- end-user-doc -->
-		 * @generated
-		 */
-		public static final EReference ATTRIBUTES__TRANSFORMATIONS = eINSTANCE.getAttributes_Transformations();
-
-		/**
-		 * The meta object literal for the '<em><b>Variable One To Ones</b></em>' containment reference list feature.
-		 * <!-- begin-user-doc -->
-		 * <!-- end-user-doc -->
-		 * @generated
-		 */
-		public static final EReference ATTRIBUTES__VARIABLE_ONE_TO_ONES = eINSTANCE.getAttributes_VariableOneToOnes();
-
-		/**
-		 * The meta object literal for the '{@link org.eclipse.jpt.eclipselink.core.resource.orm.XmlBasicCollection <em>Xml Basic Collection</em>}' class.
-		 * <!-- begin-user-doc -->
-		 * <!-- end-user-doc -->
-		 * @see org.eclipse.jpt.eclipselink.core.resource.orm.XmlBasicCollection
-		 * @see org.eclipse.jpt.eclipselink.core.resource.orm.EclipseLinkOrmPackage#getXmlBasicCollection()
-		 * @generated
-		 */
-		public static final EClass XML_BASIC_COLLECTION = eINSTANCE.getXmlBasicCollection();
-
-		/**
-		 * The meta object literal for the '<em><b>Properties</b></em>' containment reference list feature.
-		 * <!-- begin-user-doc -->
-		 * <!-- end-user-doc -->
-		 * @generated
-		 */
-		public static final EReference XML_BASIC_COLLECTION__PROPERTIES = eINSTANCE.getXmlBasicCollection_Properties();
-
-		/**
-		 * The meta object literal for the '{@link org.eclipse.jpt.eclipselink.core.resource.orm.XmlBasicCollectionImpl <em>Xml Basic Collection Impl</em>}' class.
-		 * <!-- begin-user-doc -->
-		 * <!-- end-user-doc -->
-		 * @see org.eclipse.jpt.eclipselink.core.resource.orm.XmlBasicCollectionImpl
-		 * @see org.eclipse.jpt.eclipselink.core.resource.orm.EclipseLinkOrmPackage#getXmlBasicCollectionImpl()
-		 * @generated
-		 */
-		public static final EClass XML_BASIC_COLLECTION_IMPL = eINSTANCE.getXmlBasicCollectionImpl();
-
-		/**
-		 * The meta object literal for the '{@link org.eclipse.jpt.eclipselink.core.resource.orm.XmlBasicMap <em>Xml Basic Map</em>}' class.
-		 * <!-- begin-user-doc -->
-		 * <!-- end-user-doc -->
-		 * @see org.eclipse.jpt.eclipselink.core.resource.orm.XmlBasicMap
-		 * @see org.eclipse.jpt.eclipselink.core.resource.orm.EclipseLinkOrmPackage#getXmlBasicMap()
-		 * @generated
-		 */
-		public static final EClass XML_BASIC_MAP = eINSTANCE.getXmlBasicMap();
-
-		/**
-		 * The meta object literal for the '<em><b>Properties</b></em>' containment reference list feature.
-		 * <!-- begin-user-doc -->
-		 * <!-- end-user-doc -->
-		 * @generated
-		 */
-		public static final EReference XML_BASIC_MAP__PROPERTIES = eINSTANCE.getXmlBasicMap_Properties();
-
-		/**
-		 * The meta object literal for the '{@link org.eclipse.jpt.eclipselink.core.resource.orm.XmlBasicMapImpl <em>Xml Basic Map Impl</em>}' class.
-		 * <!-- begin-user-doc -->
-		 * <!-- end-user-doc -->
-		 * @see org.eclipse.jpt.eclipselink.core.resource.orm.XmlBasicMapImpl
-		 * @see org.eclipse.jpt.eclipselink.core.resource.orm.EclipseLinkOrmPackage#getXmlBasicMapImpl()
-		 * @generated
-		 */
-		public static final EClass XML_BASIC_MAP_IMPL = eINSTANCE.getXmlBasicMapImpl();
-
-		/**
-		 * The meta object literal for the '{@link org.eclipse.jpt.eclipselink.core.resource.orm.XmlTransformation <em>Xml Transformation</em>}' class.
-		 * <!-- begin-user-doc -->
-		 * <!-- end-user-doc -->
-		 * @see org.eclipse.jpt.eclipselink.core.resource.orm.XmlTransformation
-		 * @see org.eclipse.jpt.eclipselink.core.resource.orm.EclipseLinkOrmPackage#getXmlTransformation()
-		 * @generated
-		 */
-		public static final EClass XML_TRANSFORMATION = eINSTANCE.getXmlTransformation();
-
-		/**
-		 * The meta object literal for the '<em><b>Properties</b></em>' containment reference list feature.
-		 * <!-- begin-user-doc -->
-		 * <!-- end-user-doc -->
-		 * @generated
-		 */
-		public static final EReference XML_TRANSFORMATION__PROPERTIES = eINSTANCE.getXmlTransformation_Properties();
-
-		/**
-		 * The meta object literal for the '{@link org.eclipse.jpt.eclipselink.core.resource.orm.XmlTransformationImpl <em>Xml Transformation Impl</em>}' class.
-		 * <!-- begin-user-doc -->
-		 * <!-- end-user-doc -->
-		 * @see org.eclipse.jpt.eclipselink.core.resource.orm.XmlTransformationImpl
-		 * @see org.eclipse.jpt.eclipselink.core.resource.orm.EclipseLinkOrmPackage#getXmlTransformationImpl()
-		 * @generated
-		 */
-		public static final EClass XML_TRANSFORMATION_IMPL = eINSTANCE.getXmlTransformationImpl();
-
-		/**
-		 * The meta object literal for the '{@link org.eclipse.jpt.eclipselink.core.resource.orm.XmlProperty <em>Xml Property</em>}' class.
-		 * <!-- begin-user-doc -->
-		 * <!-- end-user-doc -->
-		 * @see org.eclipse.jpt.eclipselink.core.resource.orm.XmlProperty
-		 * @see org.eclipse.jpt.eclipselink.core.resource.orm.EclipseLinkOrmPackage#getXmlProperty()
-		 * @generated
-		 */
-		public static final EClass XML_PROPERTY = eINSTANCE.getXmlProperty();
-
-		/**
-		 * The meta object literal for the '<em><b>Name</b></em>' attribute feature.
-		 * <!-- begin-user-doc -->
-		 * <!-- end-user-doc -->
-		 * @generated
-		 */
-		public static final EAttribute XML_PROPERTY__NAME = eINSTANCE.getXmlProperty_Name();
-
-		/**
-		 * The meta object literal for the '<em><b>Value</b></em>' attribute feature.
-		 * <!-- begin-user-doc -->
-		 * <!-- end-user-doc -->
-		 * @generated
-		 */
-		public static final EAttribute XML_PROPERTY__VALUE = eINSTANCE.getXmlProperty_Value();
-
-		/**
-		 * The meta object literal for the '<em><b>Value Type</b></em>' attribute feature.
-		 * <!-- begin-user-doc -->
-		 * <!-- end-user-doc -->
-		 * @generated
-		 */
-		public static final EAttribute XML_PROPERTY__VALUE_TYPE = eINSTANCE.getXmlProperty_ValueType();
-
-		/**
-		 * The meta object literal for the '{@link org.eclipse.jpt.eclipselink.core.resource.orm.XmlVariableOneToOne <em>Xml Variable One To One</em>}' class.
-		 * <!-- begin-user-doc -->
-		 * <!-- end-user-doc -->
-		 * @see org.eclipse.jpt.eclipselink.core.resource.orm.XmlVariableOneToOne
-		 * @see org.eclipse.jpt.eclipselink.core.resource.orm.EclipseLinkOrmPackage#getXmlVariableOneToOne()
-		 * @generated
-		 */
-		public static final EClass XML_VARIABLE_ONE_TO_ONE = eINSTANCE.getXmlVariableOneToOne();
-
-		/**
-		 * The meta object literal for the '<em><b>Properties</b></em>' containment reference list feature.
-		 * <!-- begin-user-doc -->
-		 * <!-- end-user-doc -->
-		 * @generated
-		 */
-		public static final EReference XML_VARIABLE_ONE_TO_ONE__PROPERTIES = eINSTANCE.getXmlVariableOneToOne_Properties();
-
-		/**
-		 * The meta object literal for the '{@link org.eclipse.jpt.eclipselink.core.resource.orm.XmlVariableOneToOneImpl <em>Xml Variable One To One Impl</em>}' class.
-		 * <!-- begin-user-doc -->
-		 * <!-- end-user-doc -->
-		 * @see org.eclipse.jpt.eclipselink.core.resource.orm.XmlVariableOneToOneImpl
-		 * @see org.eclipse.jpt.eclipselink.core.resource.orm.EclipseLinkOrmPackage#getXmlVariableOneToOneImpl()
-		 * @generated
-		 */
-		public static final EClass XML_VARIABLE_ONE_TO_ONE_IMPL = eINSTANCE.getXmlVariableOneToOneImpl();
-
-		/**
-		 * The meta object literal for the '{@link org.eclipse.jpt.eclipselink.core.resource.orm.XmlDirection <em>Xml Direction</em>}' enum.
-		 * <!-- begin-user-doc -->
-		 * <!-- end-user-doc -->
-		 * @see org.eclipse.jpt.eclipselink.core.resource.orm.XmlDirection
-		 * @see org.eclipse.jpt.eclipselink.core.resource.orm.EclipseLinkOrmPackage#getXmlDirection()
-		 * @generated
-		 */
-		public static final EEnum XML_DIRECTION = eINSTANCE.getXmlDirection();
-
-		/**
-		 * The meta object literal for the '{@link org.eclipse.jpt.eclipselink.core.resource.orm.XmlChangeTrackingType <em>Xml Change Tracking Type</em>}' enum.
-		 * <!-- begin-user-doc -->
-		 * <!-- end-user-doc -->
-		 * @see org.eclipse.jpt.eclipselink.core.resource.orm.XmlChangeTrackingType
-		 * @see org.eclipse.jpt.eclipselink.core.resource.orm.EclipseLinkOrmPackage#getXmlChangeTrackingType()
-		 * @generated
-		 */
-		public static final EEnum XML_CHANGE_TRACKING_TYPE = eINSTANCE.getXmlChangeTrackingType();
-
-		/**
-		 * The meta object literal for the '{@link org.eclipse.jpt.eclipselink.core.resource.orm.XmlConverter <em>Xml Converter</em>}' class.
-		 * <!-- begin-user-doc -->
-		 * <!-- end-user-doc -->
-		 * @see org.eclipse.jpt.eclipselink.core.resource.orm.XmlConverter
-		 * @see org.eclipse.jpt.eclipselink.core.resource.orm.EclipseLinkOrmPackage#getXmlConverter()
-		 * @generated
-		 */
-		public static final EClass XML_CONVERTER = eINSTANCE.getXmlConverter();
-
-		/**
-		 * The meta object literal for the '<em><b>Class Name</b></em>' attribute feature.
-		 * <!-- begin-user-doc -->
-		 * <!-- end-user-doc -->
-		 * @generated
-		 */
-		public static final EAttribute XML_CONVERTER__CLASS_NAME = eINSTANCE.getXmlConverter_ClassName();
-
-		/**
-		 * The meta object literal for the '{@link org.eclipse.jpt.eclipselink.core.resource.orm.XmlConverterImpl <em>Xml Converter Impl</em>}' class.
-		 * <!-- begin-user-doc -->
-		 * <!-- end-user-doc -->
-		 * @see org.eclipse.jpt.eclipselink.core.resource.orm.XmlConverterImpl
-		 * @see org.eclipse.jpt.eclipselink.core.resource.orm.EclipseLinkOrmPackage#getXmlConverterImpl()
-		 * @generated
-		 */
-		public static final EClass XML_CONVERTER_IMPL = eINSTANCE.getXmlConverterImpl();
-
-		/**
-		 * The meta object literal for the '{@link org.eclipse.jpt.eclipselink.core.resource.orm.XmlTypeConverter <em>Xml Type Converter</em>}' class.
-		 * <!-- begin-user-doc -->
-		 * <!-- end-user-doc -->
-		 * @see org.eclipse.jpt.eclipselink.core.resource.orm.XmlTypeConverter
-		 * @see org.eclipse.jpt.eclipselink.core.resource.orm.EclipseLinkOrmPackage#getXmlTypeConverter()
-		 * @generated
-		 */
-		public static final EClass XML_TYPE_CONVERTER = eINSTANCE.getXmlTypeConverter();
-
-		/**
-		 * The meta object literal for the '<em><b>Data Type</b></em>' attribute feature.
-		 * <!-- begin-user-doc -->
-		 * <!-- end-user-doc -->
-		 * @generated
-		 */
-		public static final EAttribute XML_TYPE_CONVERTER__DATA_TYPE = eINSTANCE.getXmlTypeConverter_DataType();
-
-		/**
-		 * The meta object literal for the '<em><b>Object Type</b></em>' attribute feature.
-		 * <!-- begin-user-doc -->
-		 * <!-- end-user-doc -->
-		 * @generated
-		 */
-		public static final EAttribute XML_TYPE_CONVERTER__OBJECT_TYPE = eINSTANCE.getXmlTypeConverter_ObjectType();
-
-		/**
-		 * The meta object literal for the '{@link org.eclipse.jpt.eclipselink.core.resource.orm.XmlTypeConverterImpl <em>Xml Type Converter Impl</em>}' class.
-		 * <!-- begin-user-doc -->
-		 * <!-- end-user-doc -->
-		 * @see org.eclipse.jpt.eclipselink.core.resource.orm.XmlTypeConverterImpl
-		 * @see org.eclipse.jpt.eclipselink.core.resource.orm.EclipseLinkOrmPackage#getXmlTypeConverterImpl()
-		 * @generated
-		 */
-		public static final EClass XML_TYPE_CONVERTER_IMPL = eINSTANCE.getXmlTypeConverterImpl();
-
-		/**
-		 * The meta object literal for the '{@link org.eclipse.jpt.eclipselink.core.resource.orm.XmlConversionValue <em>Xml Conversion Value</em>}' class.
-		 * <!-- begin-user-doc -->
-		 * <!-- end-user-doc -->
-		 * @see org.eclipse.jpt.eclipselink.core.resource.orm.XmlConversionValue
-		 * @see org.eclipse.jpt.eclipselink.core.resource.orm.EclipseLinkOrmPackage#getXmlConversionValue()
-		 * @generated
-		 */
-		public static final EClass XML_CONVERSION_VALUE = eINSTANCE.getXmlConversionValue();
-
-		/**
-		 * The meta object literal for the '<em><b>Data Value</b></em>' attribute feature.
-		 * <!-- begin-user-doc -->
-		 * <!-- end-user-doc -->
-		 * @generated
-		 */
-		public static final EAttribute XML_CONVERSION_VALUE__DATA_VALUE = eINSTANCE.getXmlConversionValue_DataValue();
-
-		/**
-		 * The meta object literal for the '<em><b>Object Value</b></em>' attribute feature.
-		 * <!-- begin-user-doc -->
-		 * <!-- end-user-doc -->
-		 * @generated
-		 */
-		public static final EAttribute XML_CONVERSION_VALUE__OBJECT_VALUE = eINSTANCE.getXmlConversionValue_ObjectValue();
-
-		/**
-		 * The meta object literal for the '{@link org.eclipse.jpt.eclipselink.core.resource.orm.XmlConversionValueImpl <em>Xml Conversion Value Impl</em>}' class.
-		 * <!-- begin-user-doc -->
-		 * <!-- end-user-doc -->
-		 * @see org.eclipse.jpt.eclipselink.core.resource.orm.XmlConversionValueImpl
-		 * @see org.eclipse.jpt.eclipselink.core.resource.orm.EclipseLinkOrmPackage#getXmlConversionValueImpl()
-		 * @generated
-		 */
-		public static final EClass XML_CONVERSION_VALUE_IMPL = eINSTANCE.getXmlConversionValueImpl();
-
-		/**
-		 * The meta object literal for the '{@link org.eclipse.jpt.eclipselink.core.resource.orm.XmlObjectTypeConverter <em>Xml Object Type Converter</em>}' class.
-		 * <!-- begin-user-doc -->
-		 * <!-- end-user-doc -->
-		 * @see org.eclipse.jpt.eclipselink.core.resource.orm.XmlObjectTypeConverter
-		 * @see org.eclipse.jpt.eclipselink.core.resource.orm.EclipseLinkOrmPackage#getXmlObjectTypeConverter()
-		 * @generated
-		 */
-		public static final EClass XML_OBJECT_TYPE_CONVERTER = eINSTANCE.getXmlObjectTypeConverter();
-
-		/**
-		 * The meta object literal for the '<em><b>Data Type</b></em>' attribute feature.
-		 * <!-- begin-user-doc -->
-		 * <!-- end-user-doc -->
-		 * @generated
-		 */
-		public static final EAttribute XML_OBJECT_TYPE_CONVERTER__DATA_TYPE = eINSTANCE.getXmlObjectTypeConverter_DataType();
-
-		/**
-		 * The meta object literal for the '<em><b>Object Type</b></em>' attribute feature.
-		 * <!-- begin-user-doc -->
-		 * <!-- end-user-doc -->
-		 * @generated
-		 */
-		public static final EAttribute XML_OBJECT_TYPE_CONVERTER__OBJECT_TYPE = eINSTANCE.getXmlObjectTypeConverter_ObjectType();
-
-		/**
-		 * The meta object literal for the '{@link org.eclipse.jpt.eclipselink.core.resource.orm.XmlObjectTypeConverterImpl <em>Xml Object Type Converter Impl</em>}' class.
-		 * <!-- begin-user-doc -->
-		 * <!-- end-user-doc -->
-		 * @see org.eclipse.jpt.eclipselink.core.resource.orm.XmlObjectTypeConverterImpl
-		 * @see org.eclipse.jpt.eclipselink.core.resource.orm.EclipseLinkOrmPackage#getXmlObjectTypeConverterImpl()
-		 * @generated
-		 */
-		public static final EClass XML_OBJECT_TYPE_CONVERTER_IMPL = eINSTANCE.getXmlObjectTypeConverterImpl();
-
-		/**
-		 * The meta object literal for the '<em><b>Conversion Values</b></em>' containment reference list feature.
-		 * <!-- begin-user-doc -->
-		 * <!-- end-user-doc -->
-		 * @generated
-		 */
-		public static final EReference XML_OBJECT_TYPE_CONVERTER__CONVERSION_VALUES = eINSTANCE.getXmlObjectTypeConverter_ConversionValues();
-
-		/**
-		 * The meta object literal for the '<em><b>Default Object Value</b></em>' attribute feature.
-		 * <!-- begin-user-doc -->
-		 * <!-- end-user-doc -->
-		 * @generated
-		 */
-		public static final EAttribute XML_OBJECT_TYPE_CONVERTER__DEFAULT_OBJECT_VALUE = eINSTANCE.getXmlObjectTypeConverter_DefaultObjectValue();
-
-		/**
-		 * The meta object literal for the '{@link org.eclipse.jpt.eclipselink.core.resource.orm.XmlStructConverter <em>Xml Struct Converter</em>}' class.
-		 * <!-- begin-user-doc -->
-		 * <!-- end-user-doc -->
-		 * @see org.eclipse.jpt.eclipselink.core.resource.orm.XmlStructConverter
-		 * @see org.eclipse.jpt.eclipselink.core.resource.orm.EclipseLinkOrmPackage#getXmlStructConverter()
-		 * @generated
-		 */
-		public static final EClass XML_STRUCT_CONVERTER = eINSTANCE.getXmlStructConverter();
-
-		/**
-		 * The meta object literal for the '<em><b>Converter</b></em>' attribute feature.
-		 * <!-- begin-user-doc -->
-		 * <!-- end-user-doc -->
-		 * @generated
-		 */
-		public static final EAttribute XML_STRUCT_CONVERTER__CONVERTER = eINSTANCE.getXmlStructConverter_Converter();
-
-		/**
-		 * The meta object literal for the '{@link org.eclipse.jpt.eclipselink.core.resource.orm.XmlStructConverterImpl <em>Xml Struct Converter Impl</em>}' class.
-		 * <!-- begin-user-doc -->
-		 * <!-- end-user-doc -->
-		 * @see org.eclipse.jpt.eclipselink.core.resource.orm.XmlStructConverterImpl
-		 * @see org.eclipse.jpt.eclipselink.core.resource.orm.EclipseLinkOrmPackage#getXmlStructConverterImpl()
-		 * @generated
-		 */
-		public static final EClass XML_STRUCT_CONVERTER_IMPL = eINSTANCE.getXmlStructConverterImpl();
-
-		/**
-		 * The meta object literal for the '{@link org.eclipse.jpt.eclipselink.core.resource.orm.XmlConverterHolder <em>Xml Converter Holder</em>}' class.
-		 * <!-- begin-user-doc -->
-		 * <!-- end-user-doc -->
-		 * @see org.eclipse.jpt.eclipselink.core.resource.orm.XmlConverterHolder
-		 * @see org.eclipse.jpt.eclipselink.core.resource.orm.EclipseLinkOrmPackage#getXmlConverterHolder()
-		 * @generated
-		 */
-		public static final EClass XML_CONVERTER_HOLDER = eINSTANCE.getXmlConverterHolder();
-
-		/**
-		 * The meta object literal for the '<em><b>Converter</b></em>' containment reference feature.
-		 * <!-- begin-user-doc -->
-		 * <!-- end-user-doc -->
-		 * @generated
-		 */
-		public static final EReference XML_CONVERTER_HOLDER__CONVERTER = eINSTANCE.getXmlConverterHolder_Converter();
-
-		/**
-		 * The meta object literal for the '<em><b>Type Converter</b></em>' containment reference feature.
-		 * <!-- begin-user-doc -->
-		 * <!-- end-user-doc -->
-		 * @generated
-		 */
-		public static final EReference XML_CONVERTER_HOLDER__TYPE_CONVERTER = eINSTANCE.getXmlConverterHolder_TypeConverter();
-
-		/**
-		 * The meta object literal for the '<em><b>Object Type Converter</b></em>' containment reference feature.
-		 * <!-- begin-user-doc -->
-		 * <!-- end-user-doc -->
-		 * @generated
-		 */
-		public static final EReference XML_CONVERTER_HOLDER__OBJECT_TYPE_CONVERTER = eINSTANCE.getXmlConverterHolder_ObjectTypeConverter();
-
-		/**
-		 * The meta object literal for the '<em><b>Struct Converter</b></em>' containment reference feature.
-		 * <!-- begin-user-doc -->
-		 * <!-- end-user-doc -->
-		 * @generated
-		 */
-		public static final EReference XML_CONVERTER_HOLDER__STRUCT_CONVERTER = eINSTANCE.getXmlConverterHolder_StructConverter();
-
-		/**
-		 * The meta object literal for the '{@link org.eclipse.jpt.eclipselink.core.resource.orm.CacheType <em>Cache Type</em>}' enum.
-		 * <!-- begin-user-doc -->
-		 * <!-- end-user-doc -->
-		 * @see org.eclipse.jpt.eclipselink.core.resource.orm.CacheType
-		 * @see org.eclipse.jpt.eclipselink.core.resource.orm.EclipseLinkOrmPackage#getCacheType()
-		 * @generated
-		 */
-		public static final EEnum CACHE_TYPE = eINSTANCE.getCacheType();
-
-		/**
-		 * The meta object literal for the '{@link org.eclipse.jpt.eclipselink.core.resource.orm.CacheCoordinationType <em>Cache Coordination Type</em>}' enum.
-		 * <!-- begin-user-doc -->
-		 * <!-- end-user-doc -->
-		 * @see org.eclipse.jpt.eclipselink.core.resource.orm.CacheCoordinationType
-		 * @see org.eclipse.jpt.eclipselink.core.resource.orm.EclipseLinkOrmPackage#getCacheCoordinationType()
-		 * @generated
-		 */
-		public static final EEnum CACHE_COORDINATION_TYPE = eINSTANCE.getCacheCoordinationType();
-
-		/**
-		 * The meta object literal for the '{@link org.eclipse.jpt.eclipselink.core.resource.orm.XmlJoinFetchType <em>Xml Join Fetch Type</em>}' enum.
-		 * <!-- begin-user-doc -->
-		 * <!-- end-user-doc -->
-		 * @see org.eclipse.jpt.eclipselink.core.resource.orm.XmlJoinFetchType
-		 * @see org.eclipse.jpt.eclipselink.core.resource.orm.EclipseLinkOrmPackage#getXmlJoinFetchType()
-		 * @generated
-		 */
-		public static final EEnum XML_JOIN_FETCH_TYPE = eINSTANCE.getXmlJoinFetchType();
-
-		/**
-		 * The meta object literal for the '{@link org.eclipse.jpt.eclipselink.core.resource.orm.ExistenceType <em>Existence Type</em>}' enum.
-		 * <!-- begin-user-doc -->
-		 * <!-- end-user-doc -->
-		 * @see org.eclipse.jpt.eclipselink.core.resource.orm.ExistenceType
-		 * @see org.eclipse.jpt.eclipselink.core.resource.orm.EclipseLinkOrmPackage#getExistenceType()
-		 * @generated
-		 */
-		public static final EEnum EXISTENCE_TYPE = eINSTANCE.getExistenceType();
-
-		/**
-		 * The meta object literal for the '{@link org.eclipse.jpt.eclipselink.core.resource.orm.XmlOptimisticLockingType <em>Xml Optimistic Locking Type</em>}' enum.
-		 * <!-- begin-user-doc -->
-		 * <!-- end-user-doc -->
-		 * @see org.eclipse.jpt.eclipselink.core.resource.orm.XmlOptimisticLockingType
-		 * @see org.eclipse.jpt.eclipselink.core.resource.orm.EclipseLinkOrmPackage#getXmlOptimisticLockingType()
-		 * @generated
-		 */
-		public static final EEnum XML_OPTIMISTIC_LOCKING_TYPE = eINSTANCE.getXmlOptimisticLockingType();
-
-	}
-
-} //EclipseLinkOrmPackage
diff --git a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/resource/orm/EclipseLinkOrmXmlResourceFactory.java b/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/resource/orm/EclipseLinkOrmXmlResourceFactory.java
deleted file mode 100644
index c294522..0000000
--- a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/resource/orm/EclipseLinkOrmXmlResourceFactory.java
+++ /dev/null
@@ -1,53 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008, 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- *******************************************************************************/
-package org.eclipse.jpt.eclipselink.core.resource.orm;
-
-import org.eclipse.emf.common.util.URI;
-import org.eclipse.jpt.core.resource.xml.JpaXmlResource;
-import org.eclipse.jpt.eclipselink.core.internal.JptEclipseLinkCorePlugin;
-import org.eclipse.jpt.eclipselink.core.internal.resource.orm.translators.EclipseLinkEntityMappingsTranslator;
-import org.eclipse.wst.common.internal.emf.resource.Renderer;
-import org.eclipse.wst.common.internal.emf.resource.RendererFactory;
-import org.eclipse.wst.common.internal.emf.resource.TranslatorResource;
-import org.eclipse.wst.common.internal.emf.resource.TranslatorResourceFactory;
-
-/**
- * Provisional API: This interface is part of an interim API that is still
- * under development and expected to change significantly before reaching
- * stability. It is available at this early stage to solicit feedback from
- * pioneering adopters on the understanding that any code that uses this API
- * will almost certainly be broken (repeatedly) as the API evolves.
- * 
- * @version 2.1
- * @since 2.1
- */
-public class EclipseLinkOrmXmlResourceFactory extends TranslatorResourceFactory
-{
-	public EclipseLinkOrmXmlResourceFactory() {
-		this(RendererFactory.getDefaultRendererFactory());
-	}
-	
-	public EclipseLinkOrmXmlResourceFactory(RendererFactory aRendererFactory) {
-		super(aRendererFactory);
-	}
-	
-	public EclipseLinkOrmXmlResourceFactory(RendererFactory aRendererFactory, boolean listeningForUpdates) {
-		super(aRendererFactory, listeningForUpdates);
-	}
-	
-	
-	/**
-	 * @see TranslatorResourceFactory#createResource(URI, Renderer)
-	 */
-	@Override
-	protected TranslatorResource createResource(URI uri, Renderer renderer) {
-		return new JpaXmlResource(uri, renderer, JptEclipseLinkCorePlugin.ECLIPSELINK_ORM_XML_CONTENT_TYPE, EclipseLinkEntityMappingsTranslator.INSTANCE);
-	}
-}
diff --git a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/resource/orm/ExistenceType.java b/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/resource/orm/ExistenceType.java
deleted file mode 100644
index b0ebe4c..0000000
--- a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/resource/orm/ExistenceType.java
+++ /dev/null
@@ -1,294 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.eclipselink.core.resource.orm;
-
-import java.util.Arrays;
-import java.util.Collections;
-import java.util.List;
-import org.eclipse.emf.common.util.Enumerator;
-
-/**
- * <!-- begin-user-doc -->
- * 
- * A representation of the literals of the enumeration '<em><b>Existence Type</b></em>',
- * and utility methods for working with them.
- *  
- * Provisional API: This interface is part of an interim API that is still
- * under development and expected to change significantly before reaching
- * stability. It is available at this early stage to solicit feedback from
- * pioneering adopters on the understanding that any code that uses this API
- * will almost certainly be broken (repeatedly) as the API evolves.
- * 
- * @version 2.1
- * @since 2.1
- * 
- * <!-- end-user-doc -->
- * @see org.eclipse.jpt.eclipselink.core.resource.orm.EclipseLinkOrmPackage#getExistenceType()
- * @model
- * @generated
- */
-public enum ExistenceType implements Enumerator
-{
-	/**
-	 * The '<em><b>CHECK CACHE</b></em>' literal object.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see #CHECK_CACHE_VALUE
-	 * @generated
-	 * @ordered
-	 */
-	CHECK_CACHE(0, "CHECK_CACHE", "CHECK_CACHE"),
-
-	/**
-	 * The '<em><b>CHECK DATABASE</b></em>' literal object.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see #CHECK_DATABASE_VALUE
-	 * @generated
-	 * @ordered
-	 */
-	CHECK_DATABASE(1, "CHECK_DATABASE", "CHECK_DATABASE"),
-
-	/**
-	 * The '<em><b>ASSUME EXISTENCE</b></em>' literal object.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see #ASSUME_EXISTENCE_VALUE
-	 * @generated
-	 * @ordered
-	 */
-	ASSUME_EXISTENCE(2, "ASSUME_EXISTENCE", "ASSUME_EXISTENCE"),
-
-	/**
-	 * The '<em><b>ASSUME NON EXISTENCE</b></em>' literal object.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see #ASSUME_NON_EXISTENCE_VALUE
-	 * @generated
-	 * @ordered
-	 */
-	ASSUME_NON_EXISTENCE(3, "ASSUME_NON_EXISTENCE", "ASSUME_NON_EXISTENCE");
-
-	/**
-	 * The '<em><b>CHECK CACHE</b></em>' literal value.
-	 * <!-- begin-user-doc -->
-	 * <p>
-	 * If the meaning of '<em><b>CHECK CACHE</b></em>' literal object isn't clear,
-	 * there really should be more of a description here...
-	 * </p>
-	 * <!-- end-user-doc -->
-	 * @see #CHECK_CACHE
-	 * @model
-	 * @generated
-	 * @ordered
-	 */
-	public static final int CHECK_CACHE_VALUE = 0;
-
-	/**
-	 * The '<em><b>CHECK DATABASE</b></em>' literal value.
-	 * <!-- begin-user-doc -->
-	 * <p>
-	 * If the meaning of '<em><b>CHECK DATABASE</b></em>' literal object isn't clear,
-	 * there really should be more of a description here...
-	 * </p>
-	 * <!-- end-user-doc -->
-	 * @see #CHECK_DATABASE
-	 * @model
-	 * @generated
-	 * @ordered
-	 */
-	public static final int CHECK_DATABASE_VALUE = 1;
-
-	/**
-	 * The '<em><b>ASSUME EXISTENCE</b></em>' literal value.
-	 * <!-- begin-user-doc -->
-	 * <p>
-	 * If the meaning of '<em><b>ASSUME EXISTENCE</b></em>' literal object isn't clear,
-	 * there really should be more of a description here...
-	 * </p>
-	 * <!-- end-user-doc -->
-	 * @see #ASSUME_EXISTENCE
-	 * @model
-	 * @generated
-	 * @ordered
-	 */
-	public static final int ASSUME_EXISTENCE_VALUE = 2;
-
-	/**
-	 * The '<em><b>ASSUME NON EXISTENCE</b></em>' literal value.
-	 * <!-- begin-user-doc -->
-	 * <p>
-	 * If the meaning of '<em><b>ASSUME NON EXISTENCE</b></em>' literal object isn't clear,
-	 * there really should be more of a description here...
-	 * </p>
-	 * <!-- end-user-doc -->
-	 * @see #ASSUME_NON_EXISTENCE
-	 * @model
-	 * @generated
-	 * @ordered
-	 */
-	public static final int ASSUME_NON_EXISTENCE_VALUE = 3;
-
-	/**
-	 * An array of all the '<em><b>Existence Type</b></em>' enumerators.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	private static final ExistenceType[] VALUES_ARRAY =
-		new ExistenceType[]
-		{
-			CHECK_CACHE,
-			CHECK_DATABASE,
-			ASSUME_EXISTENCE,
-			ASSUME_NON_EXISTENCE,
-		};
-
-	/**
-	 * A public read-only list of all the '<em><b>Existence Type</b></em>' enumerators.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public static final List<ExistenceType> VALUES = Collections.unmodifiableList(Arrays.asList(VALUES_ARRAY));
-
-	/**
-	 * Returns the '<em><b>Existence Type</b></em>' literal with the specified literal value.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public static ExistenceType get(String literal)
-	{
-		for (int i = 0; i < VALUES_ARRAY.length; ++i)
-		{
-			ExistenceType result = VALUES_ARRAY[i];
-			if (result.toString().equals(literal))
-			{
-				return result;
-			}
-		}
-		return null;
-	}
-
-	/**
-	 * Returns the '<em><b>Existence Type</b></em>' literal with the specified name.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public static ExistenceType getByName(String name)
-	{
-		for (int i = 0; i < VALUES_ARRAY.length; ++i)
-		{
-			ExistenceType result = VALUES_ARRAY[i];
-			if (result.getName().equals(name))
-			{
-				return result;
-			}
-		}
-		return null;
-	}
-
-	/**
-	 * Returns the '<em><b>Existence Type</b></em>' literal with the specified integer value.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public static ExistenceType get(int value)
-	{
-		switch (value)
-		{
-			case CHECK_CACHE_VALUE: return CHECK_CACHE;
-			case CHECK_DATABASE_VALUE: return CHECK_DATABASE;
-			case ASSUME_EXISTENCE_VALUE: return ASSUME_EXISTENCE;
-			case ASSUME_NON_EXISTENCE_VALUE: return ASSUME_NON_EXISTENCE;
-		}
-		return null;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	private final int value;
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	private final String name;
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	private final String literal;
-
-	/**
-	 * Only this class can construct instances.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	private ExistenceType(int value, String name, String literal)
-	{
-		this.value = value;
-		this.name = name;
-		this.literal = literal;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public int getValue()
-	{
-	  return value;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public String getName()
-	{
-	  return name;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public String getLiteral()
-	{
-	  return literal;
-	}
-
-	/**
-	 * Returns the literal value of the enumerator, which is its string representation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public String toString()
-	{
-		return literal;
-	}
-	
-} //ExistenceType
diff --git a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/resource/orm/XmlAccessMethods.java b/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/resource/orm/XmlAccessMethods.java
deleted file mode 100644
index 2e4b64b..0000000
--- a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/resource/orm/XmlAccessMethods.java
+++ /dev/null
@@ -1,267 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.eclipselink.core.resource.orm;
-
-import org.eclipse.emf.common.notify.Notification;
-
-import org.eclipse.emf.ecore.EClass;
-
-import org.eclipse.emf.ecore.impl.ENotificationImpl;
-
-import org.eclipse.jpt.core.resource.xml.AbstractJpaEObject;
-import org.eclipse.jpt.core.resource.xml.JpaEObject;
-
-/**
- * <!-- begin-user-doc -->
- * A representation of the model object '<em><b>Xml Access Methods</b></em>'.
- * <!-- end-user-doc -->
- *
- * <p>
- * The following features are supported:
- * <ul>
- *   <li>{@link org.eclipse.jpt.eclipselink.core.resource.orm.XmlAccessMethods#getGetMethod <em>Get Method</em>}</li>
- *   <li>{@link org.eclipse.jpt.eclipselink.core.resource.orm.XmlAccessMethods#getSetMethod <em>Set Method</em>}</li>
- * </ul>
- * </p>
- *
- * @see org.eclipse.jpt.eclipselink.core.resource.orm.EclipseLinkOrmPackage#getXmlAccessMethods()
- * @model kind="class"
- * @extends JpaEObject
- * @generated
- */
-public class XmlAccessMethods extends AbstractJpaEObject implements JpaEObject
-{
-	/**
-	 * The default value of the '{@link #getGetMethod() <em>Get Method</em>}' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see #getGetMethod()
-	 * @generated
-	 * @ordered
-	 */
-	protected static final String GET_METHOD_EDEFAULT = null;
-
-	/**
-	 * The cached value of the '{@link #getGetMethod() <em>Get Method</em>}' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see #getGetMethod()
-	 * @generated
-	 * @ordered
-	 */
-	protected String getMethod = GET_METHOD_EDEFAULT;
-
-	/**
-	 * The default value of the '{@link #getSetMethod() <em>Set Method</em>}' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see #getSetMethod()
-	 * @generated
-	 * @ordered
-	 */
-	protected static final String SET_METHOD_EDEFAULT = null;
-
-	/**
-	 * The cached value of the '{@link #getSetMethod() <em>Set Method</em>}' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see #getSetMethod()
-	 * @generated
-	 * @ordered
-	 */
-	protected String setMethod = SET_METHOD_EDEFAULT;
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	protected XmlAccessMethods()
-	{
-		super();
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	protected EClass eStaticClass()
-	{
-		return EclipseLinkOrmPackage.Literals.XML_ACCESS_METHODS;
-	}
-
-	/**
-	 * Returns the value of the '<em><b>Get Method</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <p>
-	 * If the meaning of the '<em>Get Method</em>' attribute isn't clear,
-	 * there really should be more of a description here...
-	 * </p>
-	 * <!-- end-user-doc -->
-	 * @return the value of the '<em>Get Method</em>' attribute.
-	 * @see #setGetMethod(String)
-	 * @see org.eclipse.jpt.eclipselink.core.resource.orm.EclipseLinkOrmPackage#getXmlAccessMethods_GetMethod()
-	 * @model dataType="org.eclipse.emf.ecore.xml.type.String"
-	 * @generated
-	 */
-	public String getGetMethod()
-	{
-		return getMethod;
-	}
-
-	/**
-	 * Sets the value of the '{@link org.eclipse.jpt.eclipselink.core.resource.orm.XmlAccessMethods#getGetMethod <em>Get Method</em>}' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @param value the new value of the '<em>Get Method</em>' attribute.
-	 * @see #getGetMethod()
-	 * @generated
-	 */
-	public void setGetMethod(String newGetMethod)
-	{
-		String oldGetMethod = getMethod;
-		getMethod = newGetMethod;
-		if (eNotificationRequired())
-			eNotify(new ENotificationImpl(this, Notification.SET, EclipseLinkOrmPackage.XML_ACCESS_METHODS__GET_METHOD, oldGetMethod, getMethod));
-	}
-
-	/**
-	 * Returns the value of the '<em><b>Set Method</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <p>
-	 * If the meaning of the '<em>Set Method</em>' attribute isn't clear,
-	 * there really should be more of a description here...
-	 * </p>
-	 * <!-- end-user-doc -->
-	 * @return the value of the '<em>Set Method</em>' attribute.
-	 * @see #setSetMethod(String)
-	 * @see org.eclipse.jpt.eclipselink.core.resource.orm.EclipseLinkOrmPackage#getXmlAccessMethods_SetMethod()
-	 * @model dataType="org.eclipse.emf.ecore.xml.type.String"
-	 * @generated
-	 */
-	public String getSetMethod()
-	{
-		return setMethod;
-	}
-
-	/**
-	 * Sets the value of the '{@link org.eclipse.jpt.eclipselink.core.resource.orm.XmlAccessMethods#getSetMethod <em>Set Method</em>}' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @param value the new value of the '<em>Set Method</em>' attribute.
-	 * @see #getSetMethod()
-	 * @generated
-	 */
-	public void setSetMethod(String newSetMethod)
-	{
-		String oldSetMethod = setMethod;
-		setMethod = newSetMethod;
-		if (eNotificationRequired())
-			eNotify(new ENotificationImpl(this, Notification.SET, EclipseLinkOrmPackage.XML_ACCESS_METHODS__SET_METHOD, oldSetMethod, setMethod));
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public Object eGet(int featureID, boolean resolve, boolean coreType)
-	{
-		switch (featureID)
-		{
-			case EclipseLinkOrmPackage.XML_ACCESS_METHODS__GET_METHOD:
-				return getGetMethod();
-			case EclipseLinkOrmPackage.XML_ACCESS_METHODS__SET_METHOD:
-				return getSetMethod();
-		}
-		return super.eGet(featureID, resolve, coreType);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public void eSet(int featureID, Object newValue)
-	{
-		switch (featureID)
-		{
-			case EclipseLinkOrmPackage.XML_ACCESS_METHODS__GET_METHOD:
-				setGetMethod((String)newValue);
-				return;
-			case EclipseLinkOrmPackage.XML_ACCESS_METHODS__SET_METHOD:
-				setSetMethod((String)newValue);
-				return;
-		}
-		super.eSet(featureID, newValue);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public void eUnset(int featureID)
-	{
-		switch (featureID)
-		{
-			case EclipseLinkOrmPackage.XML_ACCESS_METHODS__GET_METHOD:
-				setGetMethod(GET_METHOD_EDEFAULT);
-				return;
-			case EclipseLinkOrmPackage.XML_ACCESS_METHODS__SET_METHOD:
-				setSetMethod(SET_METHOD_EDEFAULT);
-				return;
-		}
-		super.eUnset(featureID);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public boolean eIsSet(int featureID)
-	{
-		switch (featureID)
-		{
-			case EclipseLinkOrmPackage.XML_ACCESS_METHODS__GET_METHOD:
-				return GET_METHOD_EDEFAULT == null ? getMethod != null : !GET_METHOD_EDEFAULT.equals(getMethod);
-			case EclipseLinkOrmPackage.XML_ACCESS_METHODS__SET_METHOD:
-				return SET_METHOD_EDEFAULT == null ? setMethod != null : !SET_METHOD_EDEFAULT.equals(setMethod);
-		}
-		return super.eIsSet(featureID);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public String toString()
-	{
-		if (eIsProxy()) return super.toString();
-
-		StringBuffer result = new StringBuffer(super.toString());
-		result.append(" (getMethod: ");
-		result.append(getMethod);
-		result.append(", setMethod: ");
-		result.append(setMethod);
-		result.append(')');
-		return result.toString();
-	}
-
-} // XmlAccessMethods
diff --git a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/resource/orm/XmlAccessMethodsHolder.java b/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/resource/orm/XmlAccessMethodsHolder.java
deleted file mode 100644
index 22ff9a0..0000000
--- a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/resource/orm/XmlAccessMethodsHolder.java
+++ /dev/null
@@ -1,59 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.eclipselink.core.resource.orm;
-
-import org.eclipse.jpt.core.resource.xml.JpaEObject;
-
-/**
- * <!-- begin-user-doc -->
- * A representation of the model object '<em><b>Xml Access Methods Holder</b></em>'.
- * <!-- end-user-doc -->
- *
- * <p>
- * The following features are supported:
- * <ul>
- *   <li>{@link org.eclipse.jpt.eclipselink.core.resource.orm.XmlAccessMethodsHolder#getAccessMethods <em>Access Methods</em>}</li>
- * </ul>
- * </p>
- *
- * @see org.eclipse.jpt.eclipselink.core.resource.orm.EclipseLinkOrmPackage#getXmlAccessMethodsHolder()
- * @model kind="class" interface="true" abstract="true"
- * @extends JpaEObject
- * @generated
- */
-public interface XmlAccessMethodsHolder extends JpaEObject
-{
-	/**
-	 * Returns the value of the '<em><b>Access Methods</b></em>' containment reference.
-	 * <!-- begin-user-doc -->
-	 * <p>
-	 * If the meaning of the '<em>Access Methods</em>' containment reference isn't clear,
-	 * there really should be more of a description here...
-	 * </p>
-	 * <!-- end-user-doc -->
-	 * @return the value of the '<em>Access Methods</em>' containment reference.
-	 * @see #setAccessMethods(XmlAccessMethods)
-	 * @see org.eclipse.jpt.eclipselink.core.resource.orm.EclipseLinkOrmPackage#getXmlAccessMethodsHolder_AccessMethods()
-	 * @model containment="true"
-	 * @generated
-	 */
-	XmlAccessMethods getAccessMethods();
-
-	/**
-	 * Sets the value of the '{@link org.eclipse.jpt.eclipselink.core.resource.orm.XmlAccessMethodsHolder#getAccessMethods <em>Access Methods</em>}' containment reference.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @param value the new value of the '<em>Access Methods</em>' containment reference.
-	 * @see #getAccessMethods()
-	 * @generated
-	 */
-	void setAccessMethods(XmlAccessMethods value);
-
-} // XmlAccessMethodsHolder
diff --git a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/resource/orm/XmlBasic.java b/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/resource/orm/XmlBasic.java
deleted file mode 100644
index 1e63e22..0000000
--- a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/resource/orm/XmlBasic.java
+++ /dev/null
@@ -1,60 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.eclipselink.core.resource.orm;
-
-import org.eclipse.emf.common.util.EList;
-
-
-/**
- * <!-- begin-user-doc -->
- * 
- * A representation of the model object '<em><b>Xml Basic</b></em>'.
- * 
- * Provisional API: This interface is part of an interim API that is still
- * under development and expected to change significantly before reaching
- * stability. It is available at this early stage to solicit feedback from
- * pioneering adopters on the understanding that any code that uses this API
- * will almost certainly be broken (repeatedly) as the API evolves.
- * 
- * @version 2.1
- * @since 2.1
- * 
- * <!-- end-user-doc -->
- *
- * <p>
- * The following features are supported:
- * <ul>
- *   <li>{@link org.eclipse.jpt.eclipselink.core.resource.orm.XmlBasic#getProperties <em>Properties</em>}</li>
- * </ul>
- * </p>
- *
- * @see org.eclipse.jpt.eclipselink.core.resource.orm.EclipseLinkOrmPackage#getXmlBasic()
- * @model kind="class" interface="true" abstract="true"
- * @generated
- */
-public interface XmlBasic extends org.eclipse.jpt.core.resource.orm.XmlBasic, XmlMutable, XmlConvertibleMapping, XmlAccessMethodsHolder
-{
-
-	/**
-	 * Returns the value of the '<em><b>Properties</b></em>' containment reference list.
-	 * The list contents are of type {@link org.eclipse.jpt.eclipselink.core.resource.orm.XmlProperty}.
-	 * <!-- begin-user-doc -->
-	 * <p>
-	 * If the meaning of the '<em>Properties</em>' containment reference list isn't clear,
-	 * there really should be more of a description here...
-	 * </p>
-	 * <!-- end-user-doc -->
-	 * @return the value of the '<em>Properties</em>' containment reference list.
-	 * @see org.eclipse.jpt.eclipselink.core.resource.orm.EclipseLinkOrmPackage#getXmlBasic_Properties()
-	 * @model containment="true"
-	 * @generated
-	 */
-	EList<XmlProperty> getProperties();
-}
\ No newline at end of file
diff --git a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/resource/orm/XmlBasicCollection.java b/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/resource/orm/XmlBasicCollection.java
deleted file mode 100644
index 87d9736..0000000
--- a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/resource/orm/XmlBasicCollection.java
+++ /dev/null
@@ -1,56 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.eclipselink.core.resource.orm;
-
-import org.eclipse.emf.common.util.EList;
-import org.eclipse.jpt.core.resource.orm.XmlAttributeMapping;
-
-/**
- * <!-- begin-user-doc -->
- * A representation of the model object '<em><b>Xml Basic Collection</b></em>'.
- *
- * Provisional API: This interface is part of an interim API that is still
- * under development and expected to change significantly before reaching
- * stability. It is available at this early stage to solicit feedback from
- * pioneering adopters on the understanding that any code that uses this API
- * will almost certainly be broken (repeatedly) as the API evolves. *
- *
- * <!-- end-user-doc -->
- *
- * <p>
- * The following features are supported:
- * <ul>
- *   <li>{@link org.eclipse.jpt.eclipselink.core.resource.orm.XmlBasicCollection#getProperties <em>Properties</em>}</li>
- * </ul>
- * </p>
- *
- * @see org.eclipse.jpt.eclipselink.core.resource.orm.EclipseLinkOrmPackage#getXmlBasicCollection()
- * @model kind="class" interface="true" abstract="true"
- * @generated
- */
-public interface XmlBasicCollection extends XmlAttributeMapping, XmlAccessMethodsHolder
-{
-
-	/**
-	 * Returns the value of the '<em><b>Properties</b></em>' containment reference list.
-	 * The list contents are of type {@link org.eclipse.jpt.eclipselink.core.resource.orm.XmlProperty}.
-	 * <!-- begin-user-doc -->
-	 * <p>
-	 * If the meaning of the '<em>Properties</em>' containment reference list isn't clear,
-	 * there really should be more of a description here...
-	 * </p>
-	 * <!-- end-user-doc -->
-	 * @return the value of the '<em>Properties</em>' containment reference list.
-	 * @see org.eclipse.jpt.eclipselink.core.resource.orm.EclipseLinkOrmPackage#getXmlBasicCollection_Properties()
-	 * @model containment="true"
-	 * @generated
-	 */
-	EList<XmlProperty> getProperties();
-} // XmlBasicCollection
diff --git a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/resource/orm/XmlBasicCollectionImpl.java b/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/resource/orm/XmlBasicCollectionImpl.java
deleted file mode 100644
index 18512af..0000000
--- a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/resource/orm/XmlBasicCollectionImpl.java
+++ /dev/null
@@ -1,321 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.eclipselink.core.resource.orm;
-
-import java.util.Collection;
-import org.eclipse.emf.common.notify.Notification;
-import org.eclipse.emf.common.notify.NotificationChain;
-import org.eclipse.emf.common.util.EList;
-import org.eclipse.emf.ecore.EClass;
-
-import org.eclipse.emf.ecore.InternalEObject;
-import org.eclipse.emf.ecore.impl.ENotificationImpl;
-import org.eclipse.emf.ecore.util.EObjectContainmentEList;
-import org.eclipse.emf.ecore.util.InternalEList;
-import org.eclipse.jpt.core.resource.orm.AbstractXmlAttributeMapping;
-import org.eclipse.jpt.eclipselink.core.EclipseLinkMappingKeys;
-
-/**
- * <!-- begin-user-doc -->
- * A representation of the model object '<em><b>Xml Basic Collection Impl</b></em>'.
- *
- * Provisional API: This interface is part of an interim API that is still
- * under development and expected to change significantly before reaching
- * stability. It is available at this early stage to solicit feedback from
- * pioneering adopters on the understanding that any code that uses this API
- * will almost certainly be broken (repeatedly) as the API evolves. *
- *
- * <!-- end-user-doc -->
- *
- *
- * @see org.eclipse.jpt.eclipselink.core.resource.orm.EclipseLinkOrmPackage#getXmlBasicCollectionImpl()
- * @model kind="class"
- * @generated
- */
-public class XmlBasicCollectionImpl extends AbstractXmlAttributeMapping implements XmlBasicCollection
-{
-	/**
-	 * The cached value of the '{@link #getAccessMethods() <em>Access Methods</em>}' containment reference.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see #getAccessMethods()
-	 * @generated
-	 * @ordered
-	 */
-	protected XmlAccessMethods accessMethods;
-
-	/**
-	 * The cached value of the '{@link #getProperties() <em>Properties</em>}' containment reference list.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see #getProperties()
-	 * @generated
-	 * @ordered
-	 */
-	protected EList<XmlProperty> properties;
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	protected XmlBasicCollectionImpl()
-	{
-		super();
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	protected EClass eStaticClass()
-	{
-		return EclipseLinkOrmPackage.Literals.XML_BASIC_COLLECTION_IMPL;
-	}
-	
-	/**
-	 * Returns the value of the '<em><b>Access Methods</b></em>' containment reference.
-	 * <!-- begin-user-doc -->
-	 * <p>
-	 * If the meaning of the '<em>Access Methods</em>' containment reference isn't clear,
-	 * there really should be more of a description here...
-	 * </p>
-	 * <!-- end-user-doc -->
-	 * @return the value of the '<em>Access Methods</em>' containment reference.
-	 * @see #setAccessMethods(XmlAccessMethods)
-	 * @see org.eclipse.jpt.eclipselink.core.resource.orm.EclipseLinkOrmPackage#getXmlAccessMethodsHolder_AccessMethods()
-	 * @model containment="true"
-	 * @generated
-	 */
-	public XmlAccessMethods getAccessMethods()
-	{
-		return accessMethods;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public NotificationChain basicSetAccessMethods(XmlAccessMethods newAccessMethods, NotificationChain msgs)
-	{
-		XmlAccessMethods oldAccessMethods = accessMethods;
-		accessMethods = newAccessMethods;
-		if (eNotificationRequired())
-		{
-			ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, EclipseLinkOrmPackage.XML_BASIC_COLLECTION_IMPL__ACCESS_METHODS, oldAccessMethods, newAccessMethods);
-			if (msgs == null) msgs = notification; else msgs.add(notification);
-		}
-		return msgs;
-	}
-
-	/**
-	 * Sets the value of the '{@link org.eclipse.jpt.eclipselink.core.resource.orm.XmlBasicCollectionImpl#getAccessMethods <em>Access Methods</em>}' containment reference.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @param value the new value of the '<em>Access Methods</em>' containment reference.
-	 * @see #getAccessMethods()
-	 * @generated
-	 */
-	public void setAccessMethods(XmlAccessMethods newAccessMethods)
-	{
-		if (newAccessMethods != accessMethods)
-		{
-			NotificationChain msgs = null;
-			if (accessMethods != null)
-				msgs = ((InternalEObject)accessMethods).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - EclipseLinkOrmPackage.XML_BASIC_COLLECTION_IMPL__ACCESS_METHODS, null, msgs);
-			if (newAccessMethods != null)
-				msgs = ((InternalEObject)newAccessMethods).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - EclipseLinkOrmPackage.XML_BASIC_COLLECTION_IMPL__ACCESS_METHODS, null, msgs);
-			msgs = basicSetAccessMethods(newAccessMethods, msgs);
-			if (msgs != null) msgs.dispatch();
-		}
-		else if (eNotificationRequired())
-			eNotify(new ENotificationImpl(this, Notification.SET, EclipseLinkOrmPackage.XML_BASIC_COLLECTION_IMPL__ACCESS_METHODS, newAccessMethods, newAccessMethods));
-	}
-
-	/**
-	 * Returns the value of the '<em><b>Properties</b></em>' containment reference list.
-	 * The list contents are of type {@link org.eclipse.jpt.eclipselink.core.resource.orm.XmlProperty}.
-	 * <!-- begin-user-doc -->
-	 * <p>
-	 * If the meaning of the '<em>Properties</em>' containment reference list isn't clear,
-	 * there really should be more of a description here...
-	 * </p>
-	 * <!-- end-user-doc -->
-	 * @return the value of the '<em>Properties</em>' containment reference list.
-	 * @see org.eclipse.jpt.eclipselink.core.resource.orm.EclipseLinkOrmPackage#getXmlBasicCollection_Properties()
-	 * @model containment="true"
-	 * @generated
-	 */
-	public EList<XmlProperty> getProperties()
-	{
-		if (properties == null)
-		{
-			properties = new EObjectContainmentEList<XmlProperty>(XmlProperty.class, this, EclipseLinkOrmPackage.XML_BASIC_COLLECTION_IMPL__PROPERTIES);
-		}
-		return properties;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs)
-	{
-		switch (featureID)
-		{
-			case EclipseLinkOrmPackage.XML_BASIC_COLLECTION_IMPL__ACCESS_METHODS:
-				return basicSetAccessMethods(null, msgs);
-			case EclipseLinkOrmPackage.XML_BASIC_COLLECTION_IMPL__PROPERTIES:
-				return ((InternalEList<?>)getProperties()).basicRemove(otherEnd, msgs);
-		}
-		return super.eInverseRemove(otherEnd, featureID, msgs);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public Object eGet(int featureID, boolean resolve, boolean coreType)
-	{
-		switch (featureID)
-		{
-			case EclipseLinkOrmPackage.XML_BASIC_COLLECTION_IMPL__ACCESS_METHODS:
-				return getAccessMethods();
-			case EclipseLinkOrmPackage.XML_BASIC_COLLECTION_IMPL__PROPERTIES:
-				return getProperties();
-		}
-		return super.eGet(featureID, resolve, coreType);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@SuppressWarnings("unchecked")
-	@Override
-	public void eSet(int featureID, Object newValue)
-	{
-		switch (featureID)
-		{
-			case EclipseLinkOrmPackage.XML_BASIC_COLLECTION_IMPL__ACCESS_METHODS:
-				setAccessMethods((XmlAccessMethods)newValue);
-				return;
-			case EclipseLinkOrmPackage.XML_BASIC_COLLECTION_IMPL__PROPERTIES:
-				getProperties().clear();
-				getProperties().addAll((Collection<? extends XmlProperty>)newValue);
-				return;
-		}
-		super.eSet(featureID, newValue);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public void eUnset(int featureID)
-	{
-		switch (featureID)
-		{
-			case EclipseLinkOrmPackage.XML_BASIC_COLLECTION_IMPL__ACCESS_METHODS:
-				setAccessMethods((XmlAccessMethods)null);
-				return;
-			case EclipseLinkOrmPackage.XML_BASIC_COLLECTION_IMPL__PROPERTIES:
-				getProperties().clear();
-				return;
-		}
-		super.eUnset(featureID);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public boolean eIsSet(int featureID)
-	{
-		switch (featureID)
-		{
-			case EclipseLinkOrmPackage.XML_BASIC_COLLECTION_IMPL__ACCESS_METHODS:
-				return accessMethods != null;
-			case EclipseLinkOrmPackage.XML_BASIC_COLLECTION_IMPL__PROPERTIES:
-				return properties != null && !properties.isEmpty();
-		}
-		return super.eIsSet(featureID);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public int eBaseStructuralFeatureID(int derivedFeatureID, Class<?> baseClass)
-	{
-		if (baseClass == XmlAccessMethodsHolder.class)
-		{
-			switch (derivedFeatureID)
-			{
-				case EclipseLinkOrmPackage.XML_BASIC_COLLECTION_IMPL__ACCESS_METHODS: return EclipseLinkOrmPackage.XML_ACCESS_METHODS_HOLDER__ACCESS_METHODS;
-				default: return -1;
-			}
-		}
-		if (baseClass == XmlBasicCollection.class)
-		{
-			switch (derivedFeatureID)
-			{
-				case EclipseLinkOrmPackage.XML_BASIC_COLLECTION_IMPL__PROPERTIES: return EclipseLinkOrmPackage.XML_BASIC_COLLECTION__PROPERTIES;
-				default: return -1;
-			}
-		}
-		return super.eBaseStructuralFeatureID(derivedFeatureID, baseClass);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public int eDerivedStructuralFeatureID(int baseFeatureID, Class<?> baseClass)
-	{
-		if (baseClass == XmlAccessMethodsHolder.class)
-		{
-			switch (baseFeatureID)
-			{
-				case EclipseLinkOrmPackage.XML_ACCESS_METHODS_HOLDER__ACCESS_METHODS: return EclipseLinkOrmPackage.XML_BASIC_COLLECTION_IMPL__ACCESS_METHODS;
-				default: return -1;
-			}
-		}
-		if (baseClass == XmlBasicCollection.class)
-		{
-			switch (baseFeatureID)
-			{
-				case EclipseLinkOrmPackage.XML_BASIC_COLLECTION__PROPERTIES: return EclipseLinkOrmPackage.XML_BASIC_COLLECTION_IMPL__PROPERTIES;
-				default: return -1;
-			}
-		}
-		return super.eDerivedStructuralFeatureID(baseFeatureID, baseClass);
-	}
-
-	public String getMappingKey() {
-		return EclipseLinkMappingKeys.BASIC_COLLECTION_ATTRIBUTE_MAPPING_KEY;
-	}
-} // XmlBasicCollectionImpl
diff --git a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/resource/orm/XmlBasicImpl.java b/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/resource/orm/XmlBasicImpl.java
deleted file mode 100644
index 7e521a9..0000000
--- a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/resource/orm/XmlBasicImpl.java
+++ /dev/null
@@ -1,853 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.eclipselink.core.resource.orm;
-
-import java.util.Collection;
-import org.eclipse.emf.common.notify.Notification;
-import org.eclipse.emf.common.notify.NotificationChain;
-import org.eclipse.emf.common.util.EList;
-import org.eclipse.emf.ecore.EClass;
-import org.eclipse.emf.ecore.InternalEObject;
-import org.eclipse.emf.ecore.impl.ENotificationImpl;
-import org.eclipse.emf.ecore.util.EObjectContainmentEList;
-import org.eclipse.emf.ecore.util.InternalEList;
-import org.eclipse.jpt.core.utility.TextRange;
-import org.eclipse.jpt.eclipselink.core.internal.resource.orm.translators.EclipseLinkOrmXmlMapper;
-
-/**
- * <!-- begin-user-doc -->
- * 
- * A representation of the model object '<em><b>Xml Basic</b></em>'.
- *  
- * Provisional API: This interface is part of an interim API that is still
- * under development and expected to change significantly before reaching
- * stability. It is available at this early stage to solicit feedback from
- * pioneering adopters on the understanding that any code that uses this API
- * will almost certainly be broken (repeatedly) as the API evolves.
- * 
- * @version 2.1
- * @since 2.1
- * 
- * <!-- end-user-doc -->
- *
- *
- * @see org.eclipse.jpt.eclipselink.core.resource.orm.EclipseLinkOrmPackage#getXmlBasicImpl()
- * @model kind="class"
- * @generated
- */
-public class XmlBasicImpl extends org.eclipse.jpt.core.resource.orm.XmlBasicImpl implements XmlBasic
-{
-	/**
-	 * The default value of the '{@link #getMutable() <em>Mutable</em>}' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see #getMutable()
-	 * @generated
-	 * @ordered
-	 */
-	protected static final Boolean MUTABLE_EDEFAULT = null;
-	/**
-	 * The cached value of the '{@link #getMutable() <em>Mutable</em>}' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see #getMutable()
-	 * @generated
-	 * @ordered
-	 */
-	protected Boolean mutable = MUTABLE_EDEFAULT;
-
-	/**
-	 * The cached value of the '{@link #getConverter() <em>Converter</em>}' containment reference.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see #getConverter()
-	 * @generated
-	 * @ordered
-	 */
-	protected XmlConverter converter;
-	/**
-	 * The cached value of the '{@link #getTypeConverter() <em>Type Converter</em>}' containment reference.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see #getTypeConverter()
-	 * @generated
-	 * @ordered
-	 */
-	protected XmlTypeConverter typeConverter;
-	/**
-	 * The cached value of the '{@link #getObjectTypeConverter() <em>Object Type Converter</em>}' containment reference.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see #getObjectTypeConverter()
-	 * @generated
-	 * @ordered
-	 */
-	protected XmlObjectTypeConverter objectTypeConverter;
-	/**
-	 * The cached value of the '{@link #getStructConverter() <em>Struct Converter</em>}' containment reference.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see #getStructConverter()
-	 * @generated
-	 * @ordered
-	 */
-	protected XmlStructConverter structConverter;
-	/**
-	 * The default value of the '{@link #getConvert() <em>Convert</em>}' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see #getConvert()
-	 * @generated
-	 * @ordered
-	 */
-	protected static final String CONVERT_EDEFAULT = null;
-	/**
-	 * The cached value of the '{@link #getConvert() <em>Convert</em>}' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see #getConvert()
-	 * @generated
-	 * @ordered
-	 */
-	protected String convert = CONVERT_EDEFAULT;
-
-	/**
-	 * The cached value of the '{@link #getAccessMethods() <em>Access Methods</em>}' containment reference.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see #getAccessMethods()
-	 * @generated
-	 * @ordered
-	 */
-	protected XmlAccessMethods accessMethods;
-
-	/**
-	 * The cached value of the '{@link #getProperties() <em>Properties</em>}' containment reference list.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see #getProperties()
-	 * @generated
-	 * @ordered
-	 */
-	protected EList<XmlProperty> properties;
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	protected XmlBasicImpl()
-	{
-		super();
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	protected EClass eStaticClass()
-	{
-		return EclipseLinkOrmPackage.Literals.XML_BASIC_IMPL;
-	}
-
-	/**
-	 * Returns the value of the '<em><b>Mutable</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <p>
-	 * If the meaning of the '<em>Mutable</em>' attribute isn't clear,
-	 * there really should be more of a description here...
-	 * </p>
-	 * <!-- end-user-doc -->
-	 * @return the value of the '<em>Mutable</em>' attribute.
-	 * @see #setMutable(Boolean)
-	 * @see org.eclipse.jpt.eclipselink.core.resource.orm.EclipseLinkOrmPackage#getXmlMutable_Mutable()
-	 * @model dataType="org.eclipse.emf.ecore.xml.type.BooleanObject"
-	 * @generated
-	 */
-	public Boolean getMutable()
-	{
-		return mutable;
-	}
-
-	/**
-	 * Sets the value of the '{@link org.eclipse.jpt.eclipselink.core.resource.orm.XmlBasicImpl#getMutable <em>Mutable</em>}' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @param value the new value of the '<em>Mutable</em>' attribute.
-	 * @see #getMutable()
-	 * @generated
-	 */
-	public void setMutable(Boolean newMutable)
-	{
-		Boolean oldMutable = mutable;
-		mutable = newMutable;
-		if (eNotificationRequired())
-			eNotify(new ENotificationImpl(this, Notification.SET, EclipseLinkOrmPackage.XML_BASIC_IMPL__MUTABLE, oldMutable, mutable));
-	}
-
-	/**
-	 * Returns the value of the '<em><b>Convert</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <p>
-	 * If the meaning of the '<em>Convert</em>' containment reference isn't clear,
-	 * there really should be more of a description here...
-	 * </p>
-	 * <!-- end-user-doc -->
-	 * @return the value of the '<em>Convert</em>' attribute.
-	 * @see #setConvert(String)
-	 * @see org.eclipse.jpt.eclipselink.core.resource.orm.EclipseLinkOrmPackage#getXmlConvertibleMapping_Convert()
-	 * @model
-	 * @generated
-	 */
-	public String getConvert()
-	{
-		return convert;
-	}
-
-	/**
-	 * Sets the value of the '{@link org.eclipse.jpt.eclipselink.core.resource.orm.XmlBasicImpl#getConvert <em>Convert</em>}' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @param value the new value of the '<em>Convert</em>' attribute.
-	 * @see #getConvert()
-	 * @generated
-	 */
-	public void setConvert(String newConvert)
-	{
-		String oldConvert = convert;
-		convert = newConvert;
-		if (eNotificationRequired())
-			eNotify(new ENotificationImpl(this, Notification.SET, EclipseLinkOrmPackage.XML_BASIC_IMPL__CONVERT, oldConvert, convert));
-	}
-
-	/**
-	 * Returns the value of the '<em><b>Access Methods</b></em>' containment reference.
-	 * <!-- begin-user-doc -->
-	 * <p>
-	 * If the meaning of the '<em>Access Methods</em>' containment reference isn't clear,
-	 * there really should be more of a description here...
-	 * </p>
-	 * <!-- end-user-doc -->
-	 * @return the value of the '<em>Access Methods</em>' containment reference.
-	 * @see #setAccessMethods(XmlAccessMethods)
-	 * @see org.eclipse.jpt.eclipselink.core.resource.orm.EclipseLinkOrmPackage#getXmlAccessMethodsHolder_AccessMethods()
-	 * @model containment="true"
-	 * @generated
-	 */
-	public XmlAccessMethods getAccessMethods()
-	{
-		return accessMethods;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public NotificationChain basicSetAccessMethods(XmlAccessMethods newAccessMethods, NotificationChain msgs)
-	{
-		XmlAccessMethods oldAccessMethods = accessMethods;
-		accessMethods = newAccessMethods;
-		if (eNotificationRequired())
-		{
-			ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, EclipseLinkOrmPackage.XML_BASIC_IMPL__ACCESS_METHODS, oldAccessMethods, newAccessMethods);
-			if (msgs == null) msgs = notification; else msgs.add(notification);
-		}
-		return msgs;
-	}
-
-	/**
-	 * Sets the value of the '{@link org.eclipse.jpt.eclipselink.core.resource.orm.XmlBasicImpl#getAccessMethods <em>Access Methods</em>}' containment reference.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @param value the new value of the '<em>Access Methods</em>' containment reference.
-	 * @see #getAccessMethods()
-	 * @generated
-	 */
-	public void setAccessMethods(XmlAccessMethods newAccessMethods)
-	{
-		if (newAccessMethods != accessMethods)
-		{
-			NotificationChain msgs = null;
-			if (accessMethods != null)
-				msgs = ((InternalEObject)accessMethods).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - EclipseLinkOrmPackage.XML_BASIC_IMPL__ACCESS_METHODS, null, msgs);
-			if (newAccessMethods != null)
-				msgs = ((InternalEObject)newAccessMethods).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - EclipseLinkOrmPackage.XML_BASIC_IMPL__ACCESS_METHODS, null, msgs);
-			msgs = basicSetAccessMethods(newAccessMethods, msgs);
-			if (msgs != null) msgs.dispatch();
-		}
-		else if (eNotificationRequired())
-			eNotify(new ENotificationImpl(this, Notification.SET, EclipseLinkOrmPackage.XML_BASIC_IMPL__ACCESS_METHODS, newAccessMethods, newAccessMethods));
-	}
-
-	/**
-	 * Returns the value of the '<em><b>Properties</b></em>' containment reference list.
-	 * The list contents are of type {@link org.eclipse.jpt.eclipselink.core.resource.orm.XmlProperty}.
-	 * <!-- begin-user-doc -->
-	 * <p>
-	 * If the meaning of the '<em>Properties</em>' containment reference list isn't clear,
-	 * there really should be more of a description here...
-	 * </p>
-	 * <!-- end-user-doc -->
-	 * @return the value of the '<em>Properties</em>' containment reference list.
-	 * @see org.eclipse.jpt.eclipselink.core.resource.orm.EclipseLinkOrmPackage#getXmlBasic_Properties()
-	 * @model containment="true"
-	 * @generated
-	 */
-	public EList<XmlProperty> getProperties()
-	{
-		if (properties == null)
-		{
-			properties = new EObjectContainmentEList<XmlProperty>(XmlProperty.class, this, EclipseLinkOrmPackage.XML_BASIC_IMPL__PROPERTIES);
-		}
-		return properties;
-	}
-
-	/**
-	 * Returns the value of the '<em><b>Converter</b></em>' containment reference.
-	 * <!-- begin-user-doc -->
-	 * <p>
-	 * If the meaning of the '<em>CustomConverter</em>' containment reference isn't clear,
-	 * there really should be more of a description here...
-	 * </p>
-	 * <!-- end-user-doc -->
-	 * @return the value of the '<em>Converter</em>' containment reference.
-	 * @see #setConverter(XmlConverter)
-	 * @see org.eclipse.jpt.eclipselink.core.resource.orm.EclipseLinkOrmPackage#getXmlConverterHolder_Converter()
-	 * @model containment="true"
-	 * @generated
-	 */
-	public XmlConverter getConverter()
-	{
-		return converter;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public NotificationChain basicSetConverter(XmlConverter newConverter, NotificationChain msgs)
-	{
-		XmlConverter oldConverter = converter;
-		converter = newConverter;
-		if (eNotificationRequired())
-		{
-			ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, EclipseLinkOrmPackage.XML_BASIC_IMPL__CONVERTER, oldConverter, newConverter);
-			if (msgs == null) msgs = notification; else msgs.add(notification);
-		}
-		return msgs;
-	}
-
-	/**
-	 * Sets the value of the '{@link org.eclipse.jpt.eclipselink.core.resource.orm.XmlBasicImpl#getConverter <em>Converter</em>}' containment reference.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @param value the new value of the '<em>Converter</em>' containment reference.
-	 * @see #getConverter()
-	 * @generated
-	 */
-	public void setConverter(XmlConverter newConverter)
-	{
-		if (newConverter != converter)
-		{
-			NotificationChain msgs = null;
-			if (converter != null)
-				msgs = ((InternalEObject)converter).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - EclipseLinkOrmPackage.XML_BASIC_IMPL__CONVERTER, null, msgs);
-			if (newConverter != null)
-				msgs = ((InternalEObject)newConverter).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - EclipseLinkOrmPackage.XML_BASIC_IMPL__CONVERTER, null, msgs);
-			msgs = basicSetConverter(newConverter, msgs);
-			if (msgs != null) msgs.dispatch();
-		}
-		else if (eNotificationRequired())
-			eNotify(new ENotificationImpl(this, Notification.SET, EclipseLinkOrmPackage.XML_BASIC_IMPL__CONVERTER, newConverter, newConverter));
-	}
-
-	/**
-	 * Returns the value of the '<em><b>Type Converter</b></em>' containment reference.
-	 * <!-- begin-user-doc -->
-	 * <p>
-	 * If the meaning of the '<em>Type CustomConverter</em>' containment reference isn't clear,
-	 * there really should be more of a description here...
-	 * </p>
-	 * <!-- end-user-doc -->
-	 * @return the value of the '<em>Type Converter</em>' containment reference.
-	 * @see #setTypeConverter(XmlTypeConverter)
-	 * @see org.eclipse.jpt.eclipselink.core.resource.orm.EclipseLinkOrmPackage#getXmlConverterHolder_TypeConverter()
-	 * @model containment="true"
-	 * @generated
-	 */
-	public XmlTypeConverter getTypeConverter()
-	{
-		return typeConverter;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public NotificationChain basicSetTypeConverter(XmlTypeConverter newTypeConverter, NotificationChain msgs)
-	{
-		XmlTypeConverter oldTypeConverter = typeConverter;
-		typeConverter = newTypeConverter;
-		if (eNotificationRequired())
-		{
-			ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, EclipseLinkOrmPackage.XML_BASIC_IMPL__TYPE_CONVERTER, oldTypeConverter, newTypeConverter);
-			if (msgs == null) msgs = notification; else msgs.add(notification);
-		}
-		return msgs;
-	}
-
-	/**
-	 * Sets the value of the '{@link org.eclipse.jpt.eclipselink.core.resource.orm.XmlBasicImpl#getTypeConverter <em>Type Converter</em>}' containment reference.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @param value the new value of the '<em>Type Converter</em>' containment reference.
-	 * @see #getTypeConverter()
-	 * @generated
-	 */
-	public void setTypeConverter(XmlTypeConverter newTypeConverter)
-	{
-		if (newTypeConverter != typeConverter)
-		{
-			NotificationChain msgs = null;
-			if (typeConverter != null)
-				msgs = ((InternalEObject)typeConverter).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - EclipseLinkOrmPackage.XML_BASIC_IMPL__TYPE_CONVERTER, null, msgs);
-			if (newTypeConverter != null)
-				msgs = ((InternalEObject)newTypeConverter).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - EclipseLinkOrmPackage.XML_BASIC_IMPL__TYPE_CONVERTER, null, msgs);
-			msgs = basicSetTypeConverter(newTypeConverter, msgs);
-			if (msgs != null) msgs.dispatch();
-		}
-		else if (eNotificationRequired())
-			eNotify(new ENotificationImpl(this, Notification.SET, EclipseLinkOrmPackage.XML_BASIC_IMPL__TYPE_CONVERTER, newTypeConverter, newTypeConverter));
-	}
-
-	/**
-	 * Returns the value of the '<em><b>Object Type Converter</b></em>' containment reference.
-	 * <!-- begin-user-doc -->
-	 * <p>
-	 * If the meaning of the '<em>Object Type CustomConverter</em>' containment reference isn't clear,
-	 * there really should be more of a description here...
-	 * </p>
-	 * <!-- end-user-doc -->
-	 * @return the value of the '<em>Object Type Converter</em>' containment reference.
-	 * @see #setObjectTypeConverter(XmlObjectTypeConverter)
-	 * @see org.eclipse.jpt.eclipselink.core.resource.orm.EclipseLinkOrmPackage#getXmlConverterHolder_ObjectTypeConverter()
-	 * @model containment="true"
-	 * @generated
-	 */
-	public XmlObjectTypeConverter getObjectTypeConverter()
-	{
-		return objectTypeConverter;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public NotificationChain basicSetObjectTypeConverter(XmlObjectTypeConverter newObjectTypeConverter, NotificationChain msgs)
-	{
-		XmlObjectTypeConverter oldObjectTypeConverter = objectTypeConverter;
-		objectTypeConverter = newObjectTypeConverter;
-		if (eNotificationRequired())
-		{
-			ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, EclipseLinkOrmPackage.XML_BASIC_IMPL__OBJECT_TYPE_CONVERTER, oldObjectTypeConverter, newObjectTypeConverter);
-			if (msgs == null) msgs = notification; else msgs.add(notification);
-		}
-		return msgs;
-	}
-
-	/**
-	 * Sets the value of the '{@link org.eclipse.jpt.eclipselink.core.resource.orm.XmlBasicImpl#getObjectTypeConverter <em>Object Type Converter</em>}' containment reference.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @param value the new value of the '<em>Object Type Converter</em>' containment reference.
-	 * @see #getObjectTypeConverter()
-	 * @generated
-	 */
-	public void setObjectTypeConverter(XmlObjectTypeConverter newObjectTypeConverter)
-	{
-		if (newObjectTypeConverter != objectTypeConverter)
-		{
-			NotificationChain msgs = null;
-			if (objectTypeConverter != null)
-				msgs = ((InternalEObject)objectTypeConverter).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - EclipseLinkOrmPackage.XML_BASIC_IMPL__OBJECT_TYPE_CONVERTER, null, msgs);
-			if (newObjectTypeConverter != null)
-				msgs = ((InternalEObject)newObjectTypeConverter).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - EclipseLinkOrmPackage.XML_BASIC_IMPL__OBJECT_TYPE_CONVERTER, null, msgs);
-			msgs = basicSetObjectTypeConverter(newObjectTypeConverter, msgs);
-			if (msgs != null) msgs.dispatch();
-		}
-		else if (eNotificationRequired())
-			eNotify(new ENotificationImpl(this, Notification.SET, EclipseLinkOrmPackage.XML_BASIC_IMPL__OBJECT_TYPE_CONVERTER, newObjectTypeConverter, newObjectTypeConverter));
-	}
-
-	/**
-	 * Returns the value of the '<em><b>Struct Converter</b></em>' containment reference.
-	 * <!-- begin-user-doc -->
-	 * <p>
-	 * If the meaning of the '<em>Struct CustomConverter</em>' containment reference isn't clear,
-	 * there really should be more of a description here...
-	 * </p>
-	 * <!-- end-user-doc -->
-	 * @return the value of the '<em>Struct Converter</em>' containment reference.
-	 * @see #setStructConverter(XmlStructConverter)
-	 * @see org.eclipse.jpt.eclipselink.core.resource.orm.EclipseLinkOrmPackage#getXmlConverterHolder_StructConverter()
-	 * @model containment="true"
-	 * @generated
-	 */
-	public XmlStructConverter getStructConverter()
-	{
-		return structConverter;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public NotificationChain basicSetStructConverter(XmlStructConverter newStructConverter, NotificationChain msgs)
-	{
-		XmlStructConverter oldStructConverter = structConverter;
-		structConverter = newStructConverter;
-		if (eNotificationRequired())
-		{
-			ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, EclipseLinkOrmPackage.XML_BASIC_IMPL__STRUCT_CONVERTER, oldStructConverter, newStructConverter);
-			if (msgs == null) msgs = notification; else msgs.add(notification);
-		}
-		return msgs;
-	}
-
-	/**
-	 * Sets the value of the '{@link org.eclipse.jpt.eclipselink.core.resource.orm.XmlBasicImpl#getStructConverter <em>Struct Converter</em>}' containment reference.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @param value the new value of the '<em>Struct Converter</em>' containment reference.
-	 * @see #getStructConverter()
-	 * @generated
-	 */
-	public void setStructConverter(XmlStructConverter newStructConverter)
-	{
-		if (newStructConverter != structConverter)
-		{
-			NotificationChain msgs = null;
-			if (structConverter != null)
-				msgs = ((InternalEObject)structConverter).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - EclipseLinkOrmPackage.XML_BASIC_IMPL__STRUCT_CONVERTER, null, msgs);
-			if (newStructConverter != null)
-				msgs = ((InternalEObject)newStructConverter).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - EclipseLinkOrmPackage.XML_BASIC_IMPL__STRUCT_CONVERTER, null, msgs);
-			msgs = basicSetStructConverter(newStructConverter, msgs);
-			if (msgs != null) msgs.dispatch();
-		}
-		else if (eNotificationRequired())
-			eNotify(new ENotificationImpl(this, Notification.SET, EclipseLinkOrmPackage.XML_BASIC_IMPL__STRUCT_CONVERTER, newStructConverter, newStructConverter));
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs)
-	{
-		switch (featureID)
-		{
-			case EclipseLinkOrmPackage.XML_BASIC_IMPL__CONVERTER:
-				return basicSetConverter(null, msgs);
-			case EclipseLinkOrmPackage.XML_BASIC_IMPL__TYPE_CONVERTER:
-				return basicSetTypeConverter(null, msgs);
-			case EclipseLinkOrmPackage.XML_BASIC_IMPL__OBJECT_TYPE_CONVERTER:
-				return basicSetObjectTypeConverter(null, msgs);
-			case EclipseLinkOrmPackage.XML_BASIC_IMPL__STRUCT_CONVERTER:
-				return basicSetStructConverter(null, msgs);
-			case EclipseLinkOrmPackage.XML_BASIC_IMPL__ACCESS_METHODS:
-				return basicSetAccessMethods(null, msgs);
-			case EclipseLinkOrmPackage.XML_BASIC_IMPL__PROPERTIES:
-				return ((InternalEList<?>)getProperties()).basicRemove(otherEnd, msgs);
-		}
-		return super.eInverseRemove(otherEnd, featureID, msgs);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public Object eGet(int featureID, boolean resolve, boolean coreType)
-	{
-		switch (featureID)
-		{
-			case EclipseLinkOrmPackage.XML_BASIC_IMPL__MUTABLE:
-				return getMutable();
-			case EclipseLinkOrmPackage.XML_BASIC_IMPL__CONVERTER:
-				return getConverter();
-			case EclipseLinkOrmPackage.XML_BASIC_IMPL__TYPE_CONVERTER:
-				return getTypeConverter();
-			case EclipseLinkOrmPackage.XML_BASIC_IMPL__OBJECT_TYPE_CONVERTER:
-				return getObjectTypeConverter();
-			case EclipseLinkOrmPackage.XML_BASIC_IMPL__STRUCT_CONVERTER:
-				return getStructConverter();
-			case EclipseLinkOrmPackage.XML_BASIC_IMPL__CONVERT:
-				return getConvert();
-			case EclipseLinkOrmPackage.XML_BASIC_IMPL__ACCESS_METHODS:
-				return getAccessMethods();
-			case EclipseLinkOrmPackage.XML_BASIC_IMPL__PROPERTIES:
-				return getProperties();
-		}
-		return super.eGet(featureID, resolve, coreType);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@SuppressWarnings("unchecked")
-	@Override
-	public void eSet(int featureID, Object newValue)
-	{
-		switch (featureID)
-		{
-			case EclipseLinkOrmPackage.XML_BASIC_IMPL__MUTABLE:
-				setMutable((Boolean)newValue);
-				return;
-			case EclipseLinkOrmPackage.XML_BASIC_IMPL__CONVERTER:
-				setConverter((XmlConverter)newValue);
-				return;
-			case EclipseLinkOrmPackage.XML_BASIC_IMPL__TYPE_CONVERTER:
-				setTypeConverter((XmlTypeConverter)newValue);
-				return;
-			case EclipseLinkOrmPackage.XML_BASIC_IMPL__OBJECT_TYPE_CONVERTER:
-				setObjectTypeConverter((XmlObjectTypeConverter)newValue);
-				return;
-			case EclipseLinkOrmPackage.XML_BASIC_IMPL__STRUCT_CONVERTER:
-				setStructConverter((XmlStructConverter)newValue);
-				return;
-			case EclipseLinkOrmPackage.XML_BASIC_IMPL__CONVERT:
-				setConvert((String)newValue);
-				return;
-			case EclipseLinkOrmPackage.XML_BASIC_IMPL__ACCESS_METHODS:
-				setAccessMethods((XmlAccessMethods)newValue);
-				return;
-			case EclipseLinkOrmPackage.XML_BASIC_IMPL__PROPERTIES:
-				getProperties().clear();
-				getProperties().addAll((Collection<? extends XmlProperty>)newValue);
-				return;
-		}
-		super.eSet(featureID, newValue);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public void eUnset(int featureID)
-	{
-		switch (featureID)
-		{
-			case EclipseLinkOrmPackage.XML_BASIC_IMPL__MUTABLE:
-				setMutable(MUTABLE_EDEFAULT);
-				return;
-			case EclipseLinkOrmPackage.XML_BASIC_IMPL__CONVERTER:
-				setConverter((XmlConverter)null);
-				return;
-			case EclipseLinkOrmPackage.XML_BASIC_IMPL__TYPE_CONVERTER:
-				setTypeConverter((XmlTypeConverter)null);
-				return;
-			case EclipseLinkOrmPackage.XML_BASIC_IMPL__OBJECT_TYPE_CONVERTER:
-				setObjectTypeConverter((XmlObjectTypeConverter)null);
-				return;
-			case EclipseLinkOrmPackage.XML_BASIC_IMPL__STRUCT_CONVERTER:
-				setStructConverter((XmlStructConverter)null);
-				return;
-			case EclipseLinkOrmPackage.XML_BASIC_IMPL__CONVERT:
-				setConvert(CONVERT_EDEFAULT);
-				return;
-			case EclipseLinkOrmPackage.XML_BASIC_IMPL__ACCESS_METHODS:
-				setAccessMethods((XmlAccessMethods)null);
-				return;
-			case EclipseLinkOrmPackage.XML_BASIC_IMPL__PROPERTIES:
-				getProperties().clear();
-				return;
-		}
-		super.eUnset(featureID);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public boolean eIsSet(int featureID)
-	{
-		switch (featureID)
-		{
-			case EclipseLinkOrmPackage.XML_BASIC_IMPL__MUTABLE:
-				return MUTABLE_EDEFAULT == null ? mutable != null : !MUTABLE_EDEFAULT.equals(mutable);
-			case EclipseLinkOrmPackage.XML_BASIC_IMPL__CONVERTER:
-				return converter != null;
-			case EclipseLinkOrmPackage.XML_BASIC_IMPL__TYPE_CONVERTER:
-				return typeConverter != null;
-			case EclipseLinkOrmPackage.XML_BASIC_IMPL__OBJECT_TYPE_CONVERTER:
-				return objectTypeConverter != null;
-			case EclipseLinkOrmPackage.XML_BASIC_IMPL__STRUCT_CONVERTER:
-				return structConverter != null;
-			case EclipseLinkOrmPackage.XML_BASIC_IMPL__CONVERT:
-				return CONVERT_EDEFAULT == null ? convert != null : !CONVERT_EDEFAULT.equals(convert);
-			case EclipseLinkOrmPackage.XML_BASIC_IMPL__ACCESS_METHODS:
-				return accessMethods != null;
-			case EclipseLinkOrmPackage.XML_BASIC_IMPL__PROPERTIES:
-				return properties != null && !properties.isEmpty();
-		}
-		return super.eIsSet(featureID);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public int eBaseStructuralFeatureID(int derivedFeatureID, Class<?> baseClass)
-	{
-		if (baseClass == XmlMutable.class)
-		{
-			switch (derivedFeatureID)
-			{
-				case EclipseLinkOrmPackage.XML_BASIC_IMPL__MUTABLE: return EclipseLinkOrmPackage.XML_MUTABLE__MUTABLE;
-				default: return -1;
-			}
-		}
-		if (baseClass == XmlConverterHolder.class)
-		{
-			switch (derivedFeatureID)
-			{
-				case EclipseLinkOrmPackage.XML_BASIC_IMPL__CONVERTER: return EclipseLinkOrmPackage.XML_CONVERTER_HOLDER__CONVERTER;
-				case EclipseLinkOrmPackage.XML_BASIC_IMPL__TYPE_CONVERTER: return EclipseLinkOrmPackage.XML_CONVERTER_HOLDER__TYPE_CONVERTER;
-				case EclipseLinkOrmPackage.XML_BASIC_IMPL__OBJECT_TYPE_CONVERTER: return EclipseLinkOrmPackage.XML_CONVERTER_HOLDER__OBJECT_TYPE_CONVERTER;
-				case EclipseLinkOrmPackage.XML_BASIC_IMPL__STRUCT_CONVERTER: return EclipseLinkOrmPackage.XML_CONVERTER_HOLDER__STRUCT_CONVERTER;
-				default: return -1;
-			}
-		}
-		if (baseClass == XmlConvertibleMapping.class)
-		{
-			switch (derivedFeatureID)
-			{
-				case EclipseLinkOrmPackage.XML_BASIC_IMPL__CONVERT: return EclipseLinkOrmPackage.XML_CONVERTIBLE_MAPPING__CONVERT;
-				default: return -1;
-			}
-		}
-		if (baseClass == XmlAccessMethodsHolder.class)
-		{
-			switch (derivedFeatureID)
-			{
-				case EclipseLinkOrmPackage.XML_BASIC_IMPL__ACCESS_METHODS: return EclipseLinkOrmPackage.XML_ACCESS_METHODS_HOLDER__ACCESS_METHODS;
-				default: return -1;
-			}
-		}
-		if (baseClass == XmlBasic.class)
-		{
-			switch (derivedFeatureID)
-			{
-				case EclipseLinkOrmPackage.XML_BASIC_IMPL__PROPERTIES: return EclipseLinkOrmPackage.XML_BASIC__PROPERTIES;
-				default: return -1;
-			}
-		}
-		return super.eBaseStructuralFeatureID(derivedFeatureID, baseClass);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public int eDerivedStructuralFeatureID(int baseFeatureID, Class<?> baseClass)
-	{
-		if (baseClass == XmlMutable.class)
-		{
-			switch (baseFeatureID)
-			{
-				case EclipseLinkOrmPackage.XML_MUTABLE__MUTABLE: return EclipseLinkOrmPackage.XML_BASIC_IMPL__MUTABLE;
-				default: return -1;
-			}
-		}
-		if (baseClass == XmlConverterHolder.class)
-		{
-			switch (baseFeatureID)
-			{
-				case EclipseLinkOrmPackage.XML_CONVERTER_HOLDER__CONVERTER: return EclipseLinkOrmPackage.XML_BASIC_IMPL__CONVERTER;
-				case EclipseLinkOrmPackage.XML_CONVERTER_HOLDER__TYPE_CONVERTER: return EclipseLinkOrmPackage.XML_BASIC_IMPL__TYPE_CONVERTER;
-				case EclipseLinkOrmPackage.XML_CONVERTER_HOLDER__OBJECT_TYPE_CONVERTER: return EclipseLinkOrmPackage.XML_BASIC_IMPL__OBJECT_TYPE_CONVERTER;
-				case EclipseLinkOrmPackage.XML_CONVERTER_HOLDER__STRUCT_CONVERTER: return EclipseLinkOrmPackage.XML_BASIC_IMPL__STRUCT_CONVERTER;
-				default: return -1;
-			}
-		}
-		if (baseClass == XmlConvertibleMapping.class)
-		{
-			switch (baseFeatureID)
-			{
-				case EclipseLinkOrmPackage.XML_CONVERTIBLE_MAPPING__CONVERT: return EclipseLinkOrmPackage.XML_BASIC_IMPL__CONVERT;
-				default: return -1;
-			}
-		}
-		if (baseClass == XmlAccessMethodsHolder.class)
-		{
-			switch (baseFeatureID)
-			{
-				case EclipseLinkOrmPackage.XML_ACCESS_METHODS_HOLDER__ACCESS_METHODS: return EclipseLinkOrmPackage.XML_BASIC_IMPL__ACCESS_METHODS;
-				default: return -1;
-			}
-		}
-		if (baseClass == XmlBasic.class)
-		{
-			switch (baseFeatureID)
-			{
-				case EclipseLinkOrmPackage.XML_BASIC__PROPERTIES: return EclipseLinkOrmPackage.XML_BASIC_IMPL__PROPERTIES;
-				default: return -1;
-			}
-		}
-		return super.eDerivedStructuralFeatureID(baseFeatureID, baseClass);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public String toString()
-	{
-		if (eIsProxy()) return super.toString();
-
-		StringBuffer result = new StringBuffer(super.toString());
-		result.append(" (mutable: ");
-		result.append(mutable);
-		result.append(", convert: ");
-		result.append(convert);
-		result.append(')');
-		return result.toString();
-	}
-
-	public TextRange getMutableTextRange() {
-		return getAttributeTextRange(EclipseLinkOrmXmlMapper.MUTABLE);
-	}
-	
-	public TextRange getConvertTextRange() {
-		return getElementTextRange(EclipseLinkOrmXmlMapper.CONVERT);
-	}
-}
diff --git a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/resource/orm/XmlBasicMap.java b/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/resource/orm/XmlBasicMap.java
deleted file mode 100644
index 002abd3..0000000
--- a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/resource/orm/XmlBasicMap.java
+++ /dev/null
@@ -1,56 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.eclipselink.core.resource.orm;
-
-import org.eclipse.emf.common.util.EList;
-import org.eclipse.jpt.core.resource.orm.XmlAttributeMapping;
-
-/**
- * <!-- begin-user-doc -->
- * A representation of the model object '<em><b>Xml Basic Map</b></em>'.
- *
- * Provisional API: This interface is part of an interim API that is still
- * under development and expected to change significantly before reaching
- * stability. It is available at this early stage to solicit feedback from
- * pioneering adopters on the understanding that any code that uses this API
- * will almost certainly be broken (repeatedly) as the API evolves. *
- *
- * <!-- end-user-doc -->
- *
- * <p>
- * The following features are supported:
- * <ul>
- *   <li>{@link org.eclipse.jpt.eclipselink.core.resource.orm.XmlBasicMap#getProperties <em>Properties</em>}</li>
- * </ul>
- * </p>
- *
- * @see org.eclipse.jpt.eclipselink.core.resource.orm.EclipseLinkOrmPackage#getXmlBasicMap()
- * @model kind="class" interface="true" abstract="true"
- * @generated
- */
-public interface XmlBasicMap extends XmlAttributeMapping, XmlAccessMethodsHolder
-{
-
-	/**
-	 * Returns the value of the '<em><b>Properties</b></em>' containment reference list.
-	 * The list contents are of type {@link org.eclipse.jpt.eclipselink.core.resource.orm.XmlProperty}.
-	 * <!-- begin-user-doc -->
-	 * <p>
-	 * If the meaning of the '<em>Properties</em>' containment reference list isn't clear,
-	 * there really should be more of a description here...
-	 * </p>
-	 * <!-- end-user-doc -->
-	 * @return the value of the '<em>Properties</em>' containment reference list.
-	 * @see org.eclipse.jpt.eclipselink.core.resource.orm.EclipseLinkOrmPackage#getXmlBasicMap_Properties()
-	 * @model containment="true"
-	 * @generated
-	 */
-	EList<XmlProperty> getProperties();
-} // XmlBasicMap
diff --git a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/resource/orm/XmlBasicMapImpl.java b/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/resource/orm/XmlBasicMapImpl.java
deleted file mode 100644
index d9ccdf6..0000000
--- a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/resource/orm/XmlBasicMapImpl.java
+++ /dev/null
@@ -1,321 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.eclipselink.core.resource.orm;
-
-import java.util.Collection;
-import org.eclipse.emf.common.notify.Notification;
-import org.eclipse.emf.common.notify.NotificationChain;
-import org.eclipse.emf.common.util.EList;
-import org.eclipse.emf.ecore.EClass;
-
-import org.eclipse.emf.ecore.InternalEObject;
-import org.eclipse.emf.ecore.impl.ENotificationImpl;
-import org.eclipse.emf.ecore.util.EObjectContainmentEList;
-import org.eclipse.emf.ecore.util.InternalEList;
-import org.eclipse.jpt.core.resource.orm.AbstractXmlAttributeMapping;
-import org.eclipse.jpt.eclipselink.core.EclipseLinkMappingKeys;
-
-/**
- * <!-- begin-user-doc -->
- * A representation of the model object '<em><b>Xml Basic Map Impl</b></em>'.
- *
- * Provisional API: This interface is part of an interim API that is still
- * under development and expected to change significantly before reaching
- * stability. It is available at this early stage to solicit feedback from
- * pioneering adopters on the understanding that any code that uses this API
- * will almost certainly be broken (repeatedly) as the API evolves. *
- *
- * <!-- end-user-doc -->
- *
- *
- * @see org.eclipse.jpt.eclipselink.core.resource.orm.EclipseLinkOrmPackage#getXmlBasicMapImpl()
- * @model kind="class"
- * @generated
- */
-public class XmlBasicMapImpl extends AbstractXmlAttributeMapping implements XmlBasicMap
-{
-	/**
-	 * The cached value of the '{@link #getAccessMethods() <em>Access Methods</em>}' containment reference.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see #getAccessMethods()
-	 * @generated
-	 * @ordered
-	 */
-	protected XmlAccessMethods accessMethods;
-
-	/**
-	 * The cached value of the '{@link #getProperties() <em>Properties</em>}' containment reference list.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see #getProperties()
-	 * @generated
-	 * @ordered
-	 */
-	protected EList<XmlProperty> properties;
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	protected XmlBasicMapImpl()
-	{
-		super();
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	protected EClass eStaticClass()
-	{
-		return EclipseLinkOrmPackage.Literals.XML_BASIC_MAP_IMPL;
-	}
-	
-	/**
-	 * Returns the value of the '<em><b>Access Methods</b></em>' containment reference.
-	 * <!-- begin-user-doc -->
-	 * <p>
-	 * If the meaning of the '<em>Access Methods</em>' containment reference isn't clear,
-	 * there really should be more of a description here...
-	 * </p>
-	 * <!-- end-user-doc -->
-	 * @return the value of the '<em>Access Methods</em>' containment reference.
-	 * @see #setAccessMethods(XmlAccessMethods)
-	 * @see org.eclipse.jpt.eclipselink.core.resource.orm.EclipseLinkOrmPackage#getXmlAccessMethodsHolder_AccessMethods()
-	 * @model containment="true"
-	 * @generated
-	 */
-	public XmlAccessMethods getAccessMethods()
-	{
-		return accessMethods;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public NotificationChain basicSetAccessMethods(XmlAccessMethods newAccessMethods, NotificationChain msgs)
-	{
-		XmlAccessMethods oldAccessMethods = accessMethods;
-		accessMethods = newAccessMethods;
-		if (eNotificationRequired())
-		{
-			ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, EclipseLinkOrmPackage.XML_BASIC_MAP_IMPL__ACCESS_METHODS, oldAccessMethods, newAccessMethods);
-			if (msgs == null) msgs = notification; else msgs.add(notification);
-		}
-		return msgs;
-	}
-
-	/**
-	 * Sets the value of the '{@link org.eclipse.jpt.eclipselink.core.resource.orm.XmlBasicMapImpl#getAccessMethods <em>Access Methods</em>}' containment reference.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @param value the new value of the '<em>Access Methods</em>' containment reference.
-	 * @see #getAccessMethods()
-	 * @generated
-	 */
-	public void setAccessMethods(XmlAccessMethods newAccessMethods)
-	{
-		if (newAccessMethods != accessMethods)
-		{
-			NotificationChain msgs = null;
-			if (accessMethods != null)
-				msgs = ((InternalEObject)accessMethods).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - EclipseLinkOrmPackage.XML_BASIC_MAP_IMPL__ACCESS_METHODS, null, msgs);
-			if (newAccessMethods != null)
-				msgs = ((InternalEObject)newAccessMethods).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - EclipseLinkOrmPackage.XML_BASIC_MAP_IMPL__ACCESS_METHODS, null, msgs);
-			msgs = basicSetAccessMethods(newAccessMethods, msgs);
-			if (msgs != null) msgs.dispatch();
-		}
-		else if (eNotificationRequired())
-			eNotify(new ENotificationImpl(this, Notification.SET, EclipseLinkOrmPackage.XML_BASIC_MAP_IMPL__ACCESS_METHODS, newAccessMethods, newAccessMethods));
-	}
-
-	/**
-	 * Returns the value of the '<em><b>Properties</b></em>' containment reference list.
-	 * The list contents are of type {@link org.eclipse.jpt.eclipselink.core.resource.orm.XmlProperty}.
-	 * <!-- begin-user-doc -->
-	 * <p>
-	 * If the meaning of the '<em>Properties</em>' containment reference list isn't clear,
-	 * there really should be more of a description here...
-	 * </p>
-	 * <!-- end-user-doc -->
-	 * @return the value of the '<em>Properties</em>' containment reference list.
-	 * @see org.eclipse.jpt.eclipselink.core.resource.orm.EclipseLinkOrmPackage#getXmlBasicMap_Properties()
-	 * @model containment="true"
-	 * @generated
-	 */
-	public EList<XmlProperty> getProperties()
-	{
-		if (properties == null)
-		{
-			properties = new EObjectContainmentEList<XmlProperty>(XmlProperty.class, this, EclipseLinkOrmPackage.XML_BASIC_MAP_IMPL__PROPERTIES);
-		}
-		return properties;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs)
-	{
-		switch (featureID)
-		{
-			case EclipseLinkOrmPackage.XML_BASIC_MAP_IMPL__ACCESS_METHODS:
-				return basicSetAccessMethods(null, msgs);
-			case EclipseLinkOrmPackage.XML_BASIC_MAP_IMPL__PROPERTIES:
-				return ((InternalEList<?>)getProperties()).basicRemove(otherEnd, msgs);
-		}
-		return super.eInverseRemove(otherEnd, featureID, msgs);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public Object eGet(int featureID, boolean resolve, boolean coreType)
-	{
-		switch (featureID)
-		{
-			case EclipseLinkOrmPackage.XML_BASIC_MAP_IMPL__ACCESS_METHODS:
-				return getAccessMethods();
-			case EclipseLinkOrmPackage.XML_BASIC_MAP_IMPL__PROPERTIES:
-				return getProperties();
-		}
-		return super.eGet(featureID, resolve, coreType);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@SuppressWarnings("unchecked")
-	@Override
-	public void eSet(int featureID, Object newValue)
-	{
-		switch (featureID)
-		{
-			case EclipseLinkOrmPackage.XML_BASIC_MAP_IMPL__ACCESS_METHODS:
-				setAccessMethods((XmlAccessMethods)newValue);
-				return;
-			case EclipseLinkOrmPackage.XML_BASIC_MAP_IMPL__PROPERTIES:
-				getProperties().clear();
-				getProperties().addAll((Collection<? extends XmlProperty>)newValue);
-				return;
-		}
-		super.eSet(featureID, newValue);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public void eUnset(int featureID)
-	{
-		switch (featureID)
-		{
-			case EclipseLinkOrmPackage.XML_BASIC_MAP_IMPL__ACCESS_METHODS:
-				setAccessMethods((XmlAccessMethods)null);
-				return;
-			case EclipseLinkOrmPackage.XML_BASIC_MAP_IMPL__PROPERTIES:
-				getProperties().clear();
-				return;
-		}
-		super.eUnset(featureID);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public boolean eIsSet(int featureID)
-	{
-		switch (featureID)
-		{
-			case EclipseLinkOrmPackage.XML_BASIC_MAP_IMPL__ACCESS_METHODS:
-				return accessMethods != null;
-			case EclipseLinkOrmPackage.XML_BASIC_MAP_IMPL__PROPERTIES:
-				return properties != null && !properties.isEmpty();
-		}
-		return super.eIsSet(featureID);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public int eBaseStructuralFeatureID(int derivedFeatureID, Class<?> baseClass)
-	{
-		if (baseClass == XmlAccessMethodsHolder.class)
-		{
-			switch (derivedFeatureID)
-			{
-				case EclipseLinkOrmPackage.XML_BASIC_MAP_IMPL__ACCESS_METHODS: return EclipseLinkOrmPackage.XML_ACCESS_METHODS_HOLDER__ACCESS_METHODS;
-				default: return -1;
-			}
-		}
-		if (baseClass == XmlBasicMap.class)
-		{
-			switch (derivedFeatureID)
-			{
-				case EclipseLinkOrmPackage.XML_BASIC_MAP_IMPL__PROPERTIES: return EclipseLinkOrmPackage.XML_BASIC_MAP__PROPERTIES;
-				default: return -1;
-			}
-		}
-		return super.eBaseStructuralFeatureID(derivedFeatureID, baseClass);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public int eDerivedStructuralFeatureID(int baseFeatureID, Class<?> baseClass)
-	{
-		if (baseClass == XmlAccessMethodsHolder.class)
-		{
-			switch (baseFeatureID)
-			{
-				case EclipseLinkOrmPackage.XML_ACCESS_METHODS_HOLDER__ACCESS_METHODS: return EclipseLinkOrmPackage.XML_BASIC_MAP_IMPL__ACCESS_METHODS;
-				default: return -1;
-			}
-		}
-		if (baseClass == XmlBasicMap.class)
-		{
-			switch (baseFeatureID)
-			{
-				case EclipseLinkOrmPackage.XML_BASIC_MAP__PROPERTIES: return EclipseLinkOrmPackage.XML_BASIC_MAP_IMPL__PROPERTIES;
-				default: return -1;
-			}
-		}
-		return super.eDerivedStructuralFeatureID(baseFeatureID, baseClass);
-	}
-
-	public String getMappingKey() {
-		return EclipseLinkMappingKeys.BASIC_MAP_ATTRIBUTE_MAPPING_KEY;
-	}
-} // XmlBasicMapImpl
diff --git a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/resource/orm/XmlCache.java b/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/resource/orm/XmlCache.java
deleted file mode 100644
index b3b557a..0000000
--- a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/resource/orm/XmlCache.java
+++ /dev/null
@@ -1,781 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008, 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.eclipselink.core.resource.orm;
-
-import org.eclipse.emf.common.notify.Notification;
-import org.eclipse.emf.common.notify.NotificationChain;
-import org.eclipse.emf.ecore.EClass;
-import org.eclipse.emf.ecore.InternalEObject;
-import org.eclipse.emf.ecore.impl.ENotificationImpl;
-import org.eclipse.jpt.core.resource.xml.AbstractJpaEObject;
-import org.eclipse.jpt.core.resource.xml.JpaEObject;
-
-/**
- * <!-- begin-user-doc -->
- * 
- * A representation of the model object '<em><b>Xml Cache</b></em>'.
- * 
- * Provisional API: This interface is part of an interim API that is still
- * under development and expected to change significantly before reaching
- * stability. It is available at this early stage to solicit feedback from
- * pioneering adopters on the understanding that any code that uses this API
- * will almost certainly be broken (repeatedly) as the API evolves.
- * 
- * @version 2.1
- * @since 2.1
- * 
- * <!-- end-user-doc -->
- *
- * <p>
- * The following features are supported:
- * <ul>
- *   <li>{@link org.eclipse.jpt.eclipselink.core.resource.orm.XmlCache#getExpiry <em>Expiry</em>}</li>
- *   <li>{@link org.eclipse.jpt.eclipselink.core.resource.orm.XmlCache#getSize <em>Size</em>}</li>
- *   <li>{@link org.eclipse.jpt.eclipselink.core.resource.orm.XmlCache#getShared <em>Shared</em>}</li>
- *   <li>{@link org.eclipse.jpt.eclipselink.core.resource.orm.XmlCache#getType <em>Type</em>}</li>
- *   <li>{@link org.eclipse.jpt.eclipselink.core.resource.orm.XmlCache#getAlwaysRefresh <em>Always Refresh</em>}</li>
- *   <li>{@link org.eclipse.jpt.eclipselink.core.resource.orm.XmlCache#getRefreshOnlyIfNewer <em>Refresh Only If Newer</em>}</li>
- *   <li>{@link org.eclipse.jpt.eclipselink.core.resource.orm.XmlCache#getDisableHits <em>Disable Hits</em>}</li>
- *   <li>{@link org.eclipse.jpt.eclipselink.core.resource.orm.XmlCache#getCoordinationType <em>Coordination Type</em>}</li>
- *   <li>{@link org.eclipse.jpt.eclipselink.core.resource.orm.XmlCache#getExpiryTimeOfDay <em>Expiry Time Of Day</em>}</li>
- * </ul>
- * </p>
- *
- * @see org.eclipse.jpt.eclipselink.core.resource.orm.EclipseLinkOrmPackage#getXmlCache()
- * @model kind="class"
- * @extends JpaEObject
- * @generated
- */
-public class XmlCache extends AbstractJpaEObject implements JpaEObject
-{
-	/**
-	 * The default value of the '{@link #getExpiry() <em>Expiry</em>}' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see #getExpiry()
-	 * @generated
-	 * @ordered
-	 */
-	protected static final Integer EXPIRY_EDEFAULT = null;
-
-	/**
-	 * The cached value of the '{@link #getExpiry() <em>Expiry</em>}' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see #getExpiry()
-	 * @generated
-	 * @ordered
-	 */
-	protected Integer expiry = EXPIRY_EDEFAULT;
-
-	/**
-	 * The default value of the '{@link #getSize() <em>Size</em>}' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see #getSize()
-	 * @generated
-	 * @ordered
-	 */
-	protected static final Integer SIZE_EDEFAULT = null;
-
-	/**
-	 * The cached value of the '{@link #getSize() <em>Size</em>}' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see #getSize()
-	 * @generated
-	 * @ordered
-	 */
-	protected Integer size = SIZE_EDEFAULT;
-
-	/**
-	 * The default value of the '{@link #getShared() <em>Shared</em>}' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see #getShared()
-	 * @generated
-	 * @ordered
-	 */
-	protected static final Boolean SHARED_EDEFAULT = null;
-
-	/**
-	 * The cached value of the '{@link #getShared() <em>Shared</em>}' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see #getShared()
-	 * @generated
-	 * @ordered
-	 */
-	protected Boolean shared = SHARED_EDEFAULT;
-
-	/**
-	 * changed this to null and removed the generated flag so emf won't generate over it
-	 * we don't want a default for enums, just null if the tag does not exist
-	 */
-	protected static final CacheType TYPE_EDEFAULT = null;
-
-	/**
-	 * The cached value of the '{@link #getType() <em>Type</em>}' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see #getType()
-	 * @generated
-	 * @ordered
-	 */
-	protected CacheType type = TYPE_EDEFAULT;
-
-	/**
-	 * The default value of the '{@link #getAlwaysRefresh() <em>Always Refresh</em>}' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see #getAlwaysRefresh()
-	 * @generated
-	 * @ordered
-	 */
-	protected static final Boolean ALWAYS_REFRESH_EDEFAULT = null;
-
-	/**
-	 * The cached value of the '{@link #getAlwaysRefresh() <em>Always Refresh</em>}' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see #getAlwaysRefresh()
-	 * @generated
-	 * @ordered
-	 */
-	protected Boolean alwaysRefresh = ALWAYS_REFRESH_EDEFAULT;
-
-	/**
-	 * The default value of the '{@link #getRefreshOnlyIfNewer() <em>Refresh Only If Newer</em>}' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see #getRefreshOnlyIfNewer()
-	 * @generated
-	 * @ordered
-	 */
-	protected static final Boolean REFRESH_ONLY_IF_NEWER_EDEFAULT = null;
-
-	/**
-	 * The cached value of the '{@link #getRefreshOnlyIfNewer() <em>Refresh Only If Newer</em>}' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see #getRefreshOnlyIfNewer()
-	 * @generated
-	 * @ordered
-	 */
-	protected Boolean refreshOnlyIfNewer = REFRESH_ONLY_IF_NEWER_EDEFAULT;
-
-	/**
-	 * The default value of the '{@link #getDisableHits() <em>Disable Hits</em>}' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see #getDisableHits()
-	 * @generated
-	 * @ordered
-	 */
-	protected static final Boolean DISABLE_HITS_EDEFAULT = null;
-
-	/**
-	 * The cached value of the '{@link #getDisableHits() <em>Disable Hits</em>}' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see #getDisableHits()
-	 * @generated
-	 * @ordered
-	 */
-	protected Boolean disableHits = DISABLE_HITS_EDEFAULT;
-
-	/**
-	 * changed this to null and removed the generated flag so emf won't generate over it
-	 * we don't want a default for enums, just null if the tag does not exist
-	 */
-	protected static final CacheCoordinationType COORDINATION_TYPE_EDEFAULT = null;
-
-	/**
-	 * The cached value of the '{@link #getCoordinationType() <em>Coordination Type</em>}' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see #getCoordinationType()
-	 * @generated
-	 * @ordered
-	 */
-	protected CacheCoordinationType coordinationType = COORDINATION_TYPE_EDEFAULT;
-
-	/**
-	 * The cached value of the '{@link #getExpiryTimeOfDay() <em>Expiry Time Of Day</em>}' containment reference.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see #getExpiryTimeOfDay()
-	 * @generated
-	 * @ordered
-	 */
-	protected XmlTimeOfDay expiryTimeOfDay;
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	protected XmlCache()
-	{
-		super();
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	protected EClass eStaticClass()
-	{
-		return EclipseLinkOrmPackage.Literals.XML_CACHE;
-	}
-
-	/**
-	 * Returns the value of the '<em><b>Expiry</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <p>
-	 * If the meaning of the '<em>Expiry</em>' attribute isn't clear,
-	 * there really should be more of a description here...
-	 * </p>
-	 * <!-- end-user-doc -->
-	 * @return the value of the '<em>Expiry</em>' attribute.
-	 * @see #setExpiry(Integer)
-	 * @see org.eclipse.jpt.eclipselink.core.resource.orm.EclipseLinkOrmPackage#getXmlCache_Expiry()
-	 * @model dataType="org.eclipse.emf.ecore.xml.type.IntObject"
-	 * @generated
-	 */
-	public Integer getExpiry()
-	{
-		return expiry;
-	}
-
-	/**
-	 * Sets the value of the '{@link org.eclipse.jpt.eclipselink.core.resource.orm.XmlCache#getExpiry <em>Expiry</em>}' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @param value the new value of the '<em>Expiry</em>' attribute.
-	 * @see #getExpiry()
-	 * @generated
-	 */
-	public void setExpiry(Integer newExpiry)
-	{
-		Integer oldExpiry = expiry;
-		expiry = newExpiry;
-		if (eNotificationRequired())
-			eNotify(new ENotificationImpl(this, Notification.SET, EclipseLinkOrmPackage.XML_CACHE__EXPIRY, oldExpiry, expiry));
-	}
-
-	/**
-	 * Returns the value of the '<em><b>Size</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <p>
-	 * If the meaning of the '<em>Size</em>' attribute isn't clear,
-	 * there really should be more of a description here...
-	 * </p>
-	 * <!-- end-user-doc -->
-	 * @return the value of the '<em>Size</em>' attribute.
-	 * @see #setSize(Integer)
-	 * @see org.eclipse.jpt.eclipselink.core.resource.orm.EclipseLinkOrmPackage#getXmlCache_Size()
-	 * @model dataType="org.eclipse.emf.ecore.xml.type.IntObject"
-	 * @generated
-	 */
-	public Integer getSize()
-	{
-		return size;
-	}
-
-	/**
-	 * Sets the value of the '{@link org.eclipse.jpt.eclipselink.core.resource.orm.XmlCache#getSize <em>Size</em>}' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @param value the new value of the '<em>Size</em>' attribute.
-	 * @see #getSize()
-	 * @generated
-	 */
-	public void setSize(Integer newSize)
-	{
-		Integer oldSize = size;
-		size = newSize;
-		if (eNotificationRequired())
-			eNotify(new ENotificationImpl(this, Notification.SET, EclipseLinkOrmPackage.XML_CACHE__SIZE, oldSize, size));
-	}
-
-	/**
-	 * Returns the value of the '<em><b>Shared</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <p>
-	 * If the meaning of the '<em>Shared</em>' attribute isn't clear,
-	 * there really should be more of a description here...
-	 * </p>
-	 * <!-- end-user-doc -->
-	 * @return the value of the '<em>Shared</em>' attribute.
-	 * @see #setShared(Boolean)
-	 * @see org.eclipse.jpt.eclipselink.core.resource.orm.EclipseLinkOrmPackage#getXmlCache_Shared()
-	 * @model dataType="org.eclipse.emf.ecore.xml.type.BooleanObject"
-	 * @generated
-	 */
-	public Boolean getShared()
-	{
-		return shared;
-	}
-
-	/**
-	 * Sets the value of the '{@link org.eclipse.jpt.eclipselink.core.resource.orm.XmlCache#getShared <em>Shared</em>}' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @param value the new value of the '<em>Shared</em>' attribute.
-	 * @see #getShared()
-	 * @generated
-	 */
-	public void setShared(Boolean newShared)
-	{
-		Boolean oldShared = shared;
-		shared = newShared;
-		if (eNotificationRequired())
-			eNotify(new ENotificationImpl(this, Notification.SET, EclipseLinkOrmPackage.XML_CACHE__SHARED, oldShared, shared));
-	}
-
-	/**
-	 * Returns the value of the '<em><b>Type</b></em>' attribute.
-	 * The literals are from the enumeration {@link org.eclipse.jpt.eclipselink.core.resource.orm.CacheType}.
-	 * <!-- begin-user-doc -->
-	 * <p>
-	 * If the meaning of the '<em>Type</em>' attribute isn't clear,
-	 * there really should be more of a description here...
-	 * </p>
-	 * <!-- end-user-doc -->
-	 * @return the value of the '<em>Type</em>' attribute.
-	 * @see org.eclipse.jpt.eclipselink.core.resource.orm.CacheType
-	 * @see #setType(CacheType)
-	 * @see org.eclipse.jpt.eclipselink.core.resource.orm.EclipseLinkOrmPackage#getXmlCache_Type()
-	 * @model
-	 * @generated
-	 */
-	public CacheType getType()
-	{
-		return type;
-	}
-
-	/**
-	 * Sets the value of the '{@link org.eclipse.jpt.eclipselink.core.resource.orm.XmlCache#getType <em>Type</em>}' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @param value the new value of the '<em>Type</em>' attribute.
-	 * @see org.eclipse.jpt.eclipselink.core.resource.orm.CacheType
-	 * @see #getType()
-	 * @generated
-	 */
-	public void setType(CacheType newType)
-	{
-		CacheType oldType = type;
-		type = newType == null ? TYPE_EDEFAULT : newType;
-		if (eNotificationRequired())
-			eNotify(new ENotificationImpl(this, Notification.SET, EclipseLinkOrmPackage.XML_CACHE__TYPE, oldType, type));
-	}
-
-	/**
-	 * Returns the value of the '<em><b>Always Refresh</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <p>
-	 * If the meaning of the '<em>Always Refresh</em>' attribute isn't clear,
-	 * there really should be more of a description here...
-	 * </p>
-	 * <!-- end-user-doc -->
-	 * @return the value of the '<em>Always Refresh</em>' attribute.
-	 * @see #setAlwaysRefresh(Boolean)
-	 * @see org.eclipse.jpt.eclipselink.core.resource.orm.EclipseLinkOrmPackage#getXmlCache_AlwaysRefresh()
-	 * @model dataType="org.eclipse.emf.ecore.xml.type.BooleanObject"
-	 * @generated
-	 */
-	public Boolean getAlwaysRefresh()
-	{
-		return alwaysRefresh;
-	}
-
-	/**
-	 * Sets the value of the '{@link org.eclipse.jpt.eclipselink.core.resource.orm.XmlCache#getAlwaysRefresh <em>Always Refresh</em>}' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @param value the new value of the '<em>Always Refresh</em>' attribute.
-	 * @see #getAlwaysRefresh()
-	 * @generated
-	 */
-	public void setAlwaysRefresh(Boolean newAlwaysRefresh)
-	{
-		Boolean oldAlwaysRefresh = alwaysRefresh;
-		alwaysRefresh = newAlwaysRefresh;
-		if (eNotificationRequired())
-			eNotify(new ENotificationImpl(this, Notification.SET, EclipseLinkOrmPackage.XML_CACHE__ALWAYS_REFRESH, oldAlwaysRefresh, alwaysRefresh));
-	}
-
-	/**
-	 * Returns the value of the '<em><b>Refresh Only If Newer</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <p>
-	 * If the meaning of the '<em>Refresh Only If Newer</em>' attribute isn't clear,
-	 * there really should be more of a description here...
-	 * </p>
-	 * <!-- end-user-doc -->
-	 * @return the value of the '<em>Refresh Only If Newer</em>' attribute.
-	 * @see #setRefreshOnlyIfNewer(Boolean)
-	 * @see org.eclipse.jpt.eclipselink.core.resource.orm.EclipseLinkOrmPackage#getXmlCache_RefreshOnlyIfNewer()
-	 * @model dataType="org.eclipse.emf.ecore.xml.type.BooleanObject"
-	 * @generated
-	 */
-	public Boolean getRefreshOnlyIfNewer()
-	{
-		return refreshOnlyIfNewer;
-	}
-
-	/**
-	 * Sets the value of the '{@link org.eclipse.jpt.eclipselink.core.resource.orm.XmlCache#getRefreshOnlyIfNewer <em>Refresh Only If Newer</em>}' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @param value the new value of the '<em>Refresh Only If Newer</em>' attribute.
-	 * @see #getRefreshOnlyIfNewer()
-	 * @generated
-	 */
-	public void setRefreshOnlyIfNewer(Boolean newRefreshOnlyIfNewer)
-	{
-		Boolean oldRefreshOnlyIfNewer = refreshOnlyIfNewer;
-		refreshOnlyIfNewer = newRefreshOnlyIfNewer;
-		if (eNotificationRequired())
-			eNotify(new ENotificationImpl(this, Notification.SET, EclipseLinkOrmPackage.XML_CACHE__REFRESH_ONLY_IF_NEWER, oldRefreshOnlyIfNewer, refreshOnlyIfNewer));
-	}
-
-	/**
-	 * Returns the value of the '<em><b>Disable Hits</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <p>
-	 * If the meaning of the '<em>Disable Hits</em>' attribute isn't clear,
-	 * there really should be more of a description here...
-	 * </p>
-	 * <!-- end-user-doc -->
-	 * @return the value of the '<em>Disable Hits</em>' attribute.
-	 * @see #setDisableHits(Boolean)
-	 * @see org.eclipse.jpt.eclipselink.core.resource.orm.EclipseLinkOrmPackage#getXmlCache_DisableHits()
-	 * @model dataType="org.eclipse.emf.ecore.xml.type.BooleanObject"
-	 * @generated
-	 */
-	public Boolean getDisableHits()
-	{
-		return disableHits;
-	}
-
-	/**
-	 * Sets the value of the '{@link org.eclipse.jpt.eclipselink.core.resource.orm.XmlCache#getDisableHits <em>Disable Hits</em>}' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @param value the new value of the '<em>Disable Hits</em>' attribute.
-	 * @see #getDisableHits()
-	 * @generated
-	 */
-	public void setDisableHits(Boolean newDisableHits)
-	{
-		Boolean oldDisableHits = disableHits;
-		disableHits = newDisableHits;
-		if (eNotificationRequired())
-			eNotify(new ENotificationImpl(this, Notification.SET, EclipseLinkOrmPackage.XML_CACHE__DISABLE_HITS, oldDisableHits, disableHits));
-	}
-
-	/**
-	 * Returns the value of the '<em><b>Coordination Type</b></em>' attribute.
-	 * The default value is <code>""</code>.
-	 * The literals are from the enumeration {@link org.eclipse.jpt.eclipselink.core.resource.orm.CacheCoordinationType}.
-	 * <!-- begin-user-doc -->
-	 * <p>
-	 * If the meaning of the '<em>Coordination Type</em>' attribute isn't clear,
-	 * there really should be more of a description here...
-	 * </p>
-	 * <!-- end-user-doc -->
-	 * @return the value of the '<em>Coordination Type</em>' attribute.
-	 * @see org.eclipse.jpt.eclipselink.core.resource.orm.CacheCoordinationType
-	 * @see #setCoordinationType(CacheCoordinationType)
-	 * @see org.eclipse.jpt.eclipselink.core.resource.orm.EclipseLinkOrmPackage#getXmlCache_CoordinationType()
-	 * @model default=""
-	 * @generated
-	 */
-	public CacheCoordinationType getCoordinationType()
-	{
-		return coordinationType;
-	}
-
-	/**
-	 * Sets the value of the '{@link org.eclipse.jpt.eclipselink.core.resource.orm.XmlCache#getCoordinationType <em>Coordination Type</em>}' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @param value the new value of the '<em>Coordination Type</em>' attribute.
-	 * @see org.eclipse.jpt.eclipselink.core.resource.orm.CacheCoordinationType
-	 * @see #getCoordinationType()
-	 * @generated
-	 */
-	public void setCoordinationType(CacheCoordinationType newCoordinationType)
-	{
-		CacheCoordinationType oldCoordinationType = coordinationType;
-		coordinationType = newCoordinationType == null ? COORDINATION_TYPE_EDEFAULT : newCoordinationType;
-		if (eNotificationRequired())
-			eNotify(new ENotificationImpl(this, Notification.SET, EclipseLinkOrmPackage.XML_CACHE__COORDINATION_TYPE, oldCoordinationType, coordinationType));
-	}
-
-	/**
-	 * Returns the value of the '<em><b>Expiry Time Of Day</b></em>' containment reference.
-	 * <!-- begin-user-doc -->
-	 * <p>
-	 * If the meaning of the '<em>Expiry Time Of Day</em>' reference isn't clear,
-	 * there really should be more of a description here...
-	 * </p>
-	 * <!-- end-user-doc -->
-	 * @return the value of the '<em>Expiry Time Of Day</em>' containment reference.
-	 * @see #setExpiryTimeOfDay(XmlTimeOfDay)
-	 * @see org.eclipse.jpt.eclipselink.core.resource.orm.EclipseLinkOrmPackage#getXmlCache_ExpiryTimeOfDay()
-	 * @model containment="true"
-	 * @generated
-	 */
-	public XmlTimeOfDay getExpiryTimeOfDay()
-	{
-		return expiryTimeOfDay;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public NotificationChain basicSetExpiryTimeOfDay(XmlTimeOfDay newExpiryTimeOfDay, NotificationChain msgs)
-	{
-		XmlTimeOfDay oldExpiryTimeOfDay = expiryTimeOfDay;
-		expiryTimeOfDay = newExpiryTimeOfDay;
-		if (eNotificationRequired())
-		{
-			ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, EclipseLinkOrmPackage.XML_CACHE__EXPIRY_TIME_OF_DAY, oldExpiryTimeOfDay, newExpiryTimeOfDay);
-			if (msgs == null) msgs = notification; else msgs.add(notification);
-		}
-		return msgs;
-	}
-
-	/**
-	 * Sets the value of the '{@link org.eclipse.jpt.eclipselink.core.resource.orm.XmlCache#getExpiryTimeOfDay <em>Expiry Time Of Day</em>}' containment reference.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @param value the new value of the '<em>Expiry Time Of Day</em>' containment reference.
-	 * @see #getExpiryTimeOfDay()
-	 * @generated
-	 */
-	public void setExpiryTimeOfDay(XmlTimeOfDay newExpiryTimeOfDay)
-	{
-		if (newExpiryTimeOfDay != expiryTimeOfDay)
-		{
-			NotificationChain msgs = null;
-			if (expiryTimeOfDay != null)
-				msgs = ((InternalEObject)expiryTimeOfDay).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - EclipseLinkOrmPackage.XML_CACHE__EXPIRY_TIME_OF_DAY, null, msgs);
-			if (newExpiryTimeOfDay != null)
-				msgs = ((InternalEObject)newExpiryTimeOfDay).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - EclipseLinkOrmPackage.XML_CACHE__EXPIRY_TIME_OF_DAY, null, msgs);
-			msgs = basicSetExpiryTimeOfDay(newExpiryTimeOfDay, msgs);
-			if (msgs != null) msgs.dispatch();
-		}
-		else if (eNotificationRequired())
-			eNotify(new ENotificationImpl(this, Notification.SET, EclipseLinkOrmPackage.XML_CACHE__EXPIRY_TIME_OF_DAY, newExpiryTimeOfDay, newExpiryTimeOfDay));
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs)
-	{
-		switch (featureID)
-		{
-			case EclipseLinkOrmPackage.XML_CACHE__EXPIRY_TIME_OF_DAY:
-				return basicSetExpiryTimeOfDay(null, msgs);
-		}
-		return super.eInverseRemove(otherEnd, featureID, msgs);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public Object eGet(int featureID, boolean resolve, boolean coreType)
-	{
-		switch (featureID)
-		{
-			case EclipseLinkOrmPackage.XML_CACHE__EXPIRY:
-				return getExpiry();
-			case EclipseLinkOrmPackage.XML_CACHE__SIZE:
-				return getSize();
-			case EclipseLinkOrmPackage.XML_CACHE__SHARED:
-				return getShared();
-			case EclipseLinkOrmPackage.XML_CACHE__TYPE:
-				return getType();
-			case EclipseLinkOrmPackage.XML_CACHE__ALWAYS_REFRESH:
-				return getAlwaysRefresh();
-			case EclipseLinkOrmPackage.XML_CACHE__REFRESH_ONLY_IF_NEWER:
-				return getRefreshOnlyIfNewer();
-			case EclipseLinkOrmPackage.XML_CACHE__DISABLE_HITS:
-				return getDisableHits();
-			case EclipseLinkOrmPackage.XML_CACHE__COORDINATION_TYPE:
-				return getCoordinationType();
-			case EclipseLinkOrmPackage.XML_CACHE__EXPIRY_TIME_OF_DAY:
-				return getExpiryTimeOfDay();
-		}
-		return super.eGet(featureID, resolve, coreType);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public void eSet(int featureID, Object newValue)
-	{
-		switch (featureID)
-		{
-			case EclipseLinkOrmPackage.XML_CACHE__EXPIRY:
-				setExpiry((Integer)newValue);
-				return;
-			case EclipseLinkOrmPackage.XML_CACHE__SIZE:
-				setSize((Integer)newValue);
-				return;
-			case EclipseLinkOrmPackage.XML_CACHE__SHARED:
-				setShared((Boolean)newValue);
-				return;
-			case EclipseLinkOrmPackage.XML_CACHE__TYPE:
-				setType((CacheType)newValue);
-				return;
-			case EclipseLinkOrmPackage.XML_CACHE__ALWAYS_REFRESH:
-				setAlwaysRefresh((Boolean)newValue);
-				return;
-			case EclipseLinkOrmPackage.XML_CACHE__REFRESH_ONLY_IF_NEWER:
-				setRefreshOnlyIfNewer((Boolean)newValue);
-				return;
-			case EclipseLinkOrmPackage.XML_CACHE__DISABLE_HITS:
-				setDisableHits((Boolean)newValue);
-				return;
-			case EclipseLinkOrmPackage.XML_CACHE__COORDINATION_TYPE:
-				setCoordinationType((CacheCoordinationType)newValue);
-				return;
-			case EclipseLinkOrmPackage.XML_CACHE__EXPIRY_TIME_OF_DAY:
-				setExpiryTimeOfDay((XmlTimeOfDay)newValue);
-				return;
-		}
-		super.eSet(featureID, newValue);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public void eUnset(int featureID)
-	{
-		switch (featureID)
-		{
-			case EclipseLinkOrmPackage.XML_CACHE__EXPIRY:
-				setExpiry(EXPIRY_EDEFAULT);
-				return;
-			case EclipseLinkOrmPackage.XML_CACHE__SIZE:
-				setSize(SIZE_EDEFAULT);
-				return;
-			case EclipseLinkOrmPackage.XML_CACHE__SHARED:
-				setShared(SHARED_EDEFAULT);
-				return;
-			case EclipseLinkOrmPackage.XML_CACHE__TYPE:
-				setType(TYPE_EDEFAULT);
-				return;
-			case EclipseLinkOrmPackage.XML_CACHE__ALWAYS_REFRESH:
-				setAlwaysRefresh(ALWAYS_REFRESH_EDEFAULT);
-				return;
-			case EclipseLinkOrmPackage.XML_CACHE__REFRESH_ONLY_IF_NEWER:
-				setRefreshOnlyIfNewer(REFRESH_ONLY_IF_NEWER_EDEFAULT);
-				return;
-			case EclipseLinkOrmPackage.XML_CACHE__DISABLE_HITS:
-				setDisableHits(DISABLE_HITS_EDEFAULT);
-				return;
-			case EclipseLinkOrmPackage.XML_CACHE__COORDINATION_TYPE:
-				setCoordinationType(COORDINATION_TYPE_EDEFAULT);
-				return;
-			case EclipseLinkOrmPackage.XML_CACHE__EXPIRY_TIME_OF_DAY:
-				setExpiryTimeOfDay((XmlTimeOfDay)null);
-				return;
-		}
-		super.eUnset(featureID);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public boolean eIsSet(int featureID)
-	{
-		switch (featureID)
-		{
-			case EclipseLinkOrmPackage.XML_CACHE__EXPIRY:
-				return EXPIRY_EDEFAULT == null ? expiry != null : !EXPIRY_EDEFAULT.equals(expiry);
-			case EclipseLinkOrmPackage.XML_CACHE__SIZE:
-				return SIZE_EDEFAULT == null ? size != null : !SIZE_EDEFAULT.equals(size);
-			case EclipseLinkOrmPackage.XML_CACHE__SHARED:
-				return SHARED_EDEFAULT == null ? shared != null : !SHARED_EDEFAULT.equals(shared);
-			case EclipseLinkOrmPackage.XML_CACHE__TYPE:
-				return type != TYPE_EDEFAULT;
-			case EclipseLinkOrmPackage.XML_CACHE__ALWAYS_REFRESH:
-				return ALWAYS_REFRESH_EDEFAULT == null ? alwaysRefresh != null : !ALWAYS_REFRESH_EDEFAULT.equals(alwaysRefresh);
-			case EclipseLinkOrmPackage.XML_CACHE__REFRESH_ONLY_IF_NEWER:
-				return REFRESH_ONLY_IF_NEWER_EDEFAULT == null ? refreshOnlyIfNewer != null : !REFRESH_ONLY_IF_NEWER_EDEFAULT.equals(refreshOnlyIfNewer);
-			case EclipseLinkOrmPackage.XML_CACHE__DISABLE_HITS:
-				return DISABLE_HITS_EDEFAULT == null ? disableHits != null : !DISABLE_HITS_EDEFAULT.equals(disableHits);
-			case EclipseLinkOrmPackage.XML_CACHE__COORDINATION_TYPE:
-				return coordinationType != COORDINATION_TYPE_EDEFAULT;
-			case EclipseLinkOrmPackage.XML_CACHE__EXPIRY_TIME_OF_DAY:
-				return expiryTimeOfDay != null;
-		}
-		return super.eIsSet(featureID);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public String toString()
-	{
-		if (eIsProxy()) return super.toString();
-
-		StringBuffer result = new StringBuffer(super.toString());
-		result.append(" (expiry: ");
-		result.append(expiry);
-		result.append(", size: ");
-		result.append(size);
-		result.append(", shared: ");
-		result.append(shared);
-		result.append(", type: ");
-		result.append(type);
-		result.append(", alwaysRefresh: ");
-		result.append(alwaysRefresh);
-		result.append(", refreshOnlyIfNewer: ");
-		result.append(refreshOnlyIfNewer);
-		result.append(", disableHits: ");
-		result.append(disableHits);
-		result.append(", coordinationType: ");
-		result.append(coordinationType);
-		result.append(')');
-		return result.toString();
-	}
-
-} // XmlCache
diff --git a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/resource/orm/XmlCacheHolder.java b/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/resource/orm/XmlCacheHolder.java
deleted file mode 100644
index 1423b24..0000000
--- a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/resource/orm/XmlCacheHolder.java
+++ /dev/null
@@ -1,101 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008, 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.eclipselink.core.resource.orm;
-
-import org.eclipse.jpt.core.resource.xml.JpaEObject;
-
-/**
- * <!-- begin-user-doc -->
- * 
- * A representation of the model object '<em><b>Xml Cache Holder</b></em>'.
- *  
- * Provisional API: This interface is part of an interim API that is still
- * under development and expected to change significantly before reaching
- * stability. It is available at this early stage to solicit feedback from
- * pioneering adopters on the understanding that any code that uses this API
- * will almost certainly be broken (repeatedly) as the API evolves.
- * 
- * @version 2.1
- * @since 2.1
- * 
- * <!-- end-user-doc -->
- *
- * <p>
- * The following features are supported:
- * <ul>
- *   <li>{@link org.eclipse.jpt.eclipselink.core.resource.orm.XmlCacheHolder#getCache <em>Cache</em>}</li>
- *   <li>{@link org.eclipse.jpt.eclipselink.core.resource.orm.XmlCacheHolder#getExistenceChecking <em>Existence Checking</em>}</li>
- * </ul>
- * </p>
- *
- * @see org.eclipse.jpt.eclipselink.core.resource.orm.EclipseLinkOrmPackage#getXmlCacheHolder()
- * @model kind="class" interface="true" abstract="true"
- * @extends JpaEObject
- * @generated
- */
-public interface XmlCacheHolder extends JpaEObject
-{
-	/**
-	 * Returns the value of the '<em><b>Cache</b></em>' containment reference.
-	 * <!-- begin-user-doc -->
-	 * <p>
-	 * If the meaning of the '<em>Cache</em>' containment reference isn't clear,
-	 * there really should be more of a description here...
-	 * </p>
-	 * <!-- end-user-doc -->
-	 * @return the value of the '<em>Cache</em>' containment reference.
-	 * @see #setCache(XmlCache)
-	 * @see org.eclipse.jpt.eclipselink.core.resource.orm.EclipseLinkOrmPackage#getXmlCacheHolder_Cache()
-	 * @model containment="true"
-	 * @generated
-	 */
-	XmlCache getCache();
-
-	/**
-	 * Sets the value of the '{@link org.eclipse.jpt.eclipselink.core.resource.orm.XmlCacheHolder#getCache <em>Cache</em>}' containment reference.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @param value the new value of the '<em>Cache</em>' containment reference.
-	 * @see #getCache()
-	 * @generated
-	 */
-	void setCache(XmlCache value);
-
-	/**
-	 * Returns the value of the '<em><b>Existence Checking</b></em>' attribute.
-	 * The default value is <code>""</code>.
-	 * The literals are from the enumeration {@link org.eclipse.jpt.eclipselink.core.resource.orm.ExistenceType}.
-	 * <!-- begin-user-doc -->
-	 * <p>
-	 * If the meaning of the '<em>Existence Checking</em>' attribute isn't clear,
-	 * there really should be more of a description here...
-	 * </p>
-	 * <!-- end-user-doc -->
-	 * @return the value of the '<em>Existence Checking</em>' attribute.
-	 * @see org.eclipse.jpt.eclipselink.core.resource.orm.ExistenceType
-	 * @see #setExistenceChecking(ExistenceType)
-	 * @see org.eclipse.jpt.eclipselink.core.resource.orm.EclipseLinkOrmPackage#getXmlCacheHolder_ExistenceChecking()
-	 * @model default=""
-	 * @generated
-	 */
-	ExistenceType getExistenceChecking();
-
-	/**
-	 * Sets the value of the '{@link org.eclipse.jpt.eclipselink.core.resource.orm.XmlCacheHolder#getExistenceChecking <em>Existence Checking</em>}' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @param value the new value of the '<em>Existence Checking</em>' attribute.
-	 * @see org.eclipse.jpt.eclipselink.core.resource.orm.ExistenceType
-	 * @see #getExistenceChecking()
-	 * @generated
-	 */
-	void setExistenceChecking(ExistenceType value);
-
-} // XmlCacheHolder
diff --git a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/resource/orm/XmlChangeTracking.java b/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/resource/orm/XmlChangeTracking.java
deleted file mode 100644
index d487541..0000000
--- a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/resource/orm/XmlChangeTracking.java
+++ /dev/null
@@ -1,206 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008, 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.eclipselink.core.resource.orm;
-
-import org.eclipse.emf.common.notify.Notification;
-import org.eclipse.emf.ecore.EClass;
-import org.eclipse.emf.ecore.impl.ENotificationImpl;
-import org.eclipse.jpt.core.resource.xml.AbstractJpaEObject;
-import org.eclipse.jpt.core.resource.xml.JpaEObject;
-
-/**
- * <!-- begin-user-doc -->
-
- * A representation of the model object '<em><b>Xml Change Tracking</b></em>'.
- *  
- * Provisional API: This interface is part of an interim API that is still
- * under development and expected to change significantly before reaching
- * stability. It is available at this early stage to solicit feedback from
- * pioneering adopters on the understanding that any code that uses this API
- * will almost certainly be broken (repeatedly) as the API evolves.
- * 
- * @version 2.1
- * @since 2.1
- * 
- * <!-- end-user-doc -->
- *
- * <p>
- * The following features are supported:
- * <ul>
- *   <li>{@link org.eclipse.jpt.eclipselink.core.resource.orm.XmlChangeTracking#getType <em>Type</em>}</li>
- * </ul>
- * </p>
- *
- * @see org.eclipse.jpt.eclipselink.core.resource.orm.EclipseLinkOrmPackage#getXmlChangeTracking()
- * @model kind="class"
- * @extends JpaEObject
- * @generated
- */
-public class XmlChangeTracking extends AbstractJpaEObject implements JpaEObject
-{
-	/**
-	 * changed this to null and removed the generated flag so emf won't generate over it
-	 * we don't want a default for enums, just null if the tag does not exist
-	 */
-	protected static final XmlChangeTrackingType TYPE_EDEFAULT = null;
-
-	/**
-	 * The cached value of the '{@link #getType() <em>Type</em>}' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see #getType()
-	 * @generated
-	 * @ordered
-	 */
-	protected XmlChangeTrackingType type = TYPE_EDEFAULT;
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	protected XmlChangeTracking()
-	{
-		super();
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	protected EClass eStaticClass()
-	{
-		return EclipseLinkOrmPackage.Literals.XML_CHANGE_TRACKING;
-	}
-
-	/**
-	 * Returns the value of the '<em><b>Type</b></em>' attribute.
-	 * The literals are from the enumeration {@link org.eclipse.jpt.eclipselink.core.resource.orm.XmlChangeTrackingType}.
-	 * <!-- begin-user-doc -->
-	 * <p>
-	 * If the meaning of the '<em>Type</em>' attribute isn't clear,
-	 * there really should be more of a description here...
-	 * </p>
-	 * <!-- end-user-doc -->
-	 * @return the value of the '<em>Type</em>' attribute.
-	 * @see org.eclipse.jpt.eclipselink.core.resource.orm.XmlChangeTrackingType
-	 * @see #setType(XmlChangeTrackingType)
-	 * @see org.eclipse.jpt.eclipselink.core.resource.orm.EclipseLinkOrmPackage#getXmlChangeTracking_Type()
-	 * @model
-	 * @generated
-	 */
-	public XmlChangeTrackingType getType()
-	{
-		return type;
-	}
-
-	/**
-	 * Sets the value of the '{@link org.eclipse.jpt.eclipselink.core.resource.orm.XmlChangeTracking#getType <em>Type</em>}' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @param value the new value of the '<em>Type</em>' attribute.
-	 * @see org.eclipse.jpt.eclipselink.core.resource.orm.XmlChangeTrackingType
-	 * @see #getType()
-	 * @generated
-	 */
-	public void setType(XmlChangeTrackingType newType)
-	{
-		XmlChangeTrackingType oldType = type;
-		type = newType == null ? TYPE_EDEFAULT : newType;
-		if (eNotificationRequired())
-			eNotify(new ENotificationImpl(this, Notification.SET, EclipseLinkOrmPackage.XML_CHANGE_TRACKING__TYPE, oldType, type));
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public Object eGet(int featureID, boolean resolve, boolean coreType)
-	{
-		switch (featureID)
-		{
-			case EclipseLinkOrmPackage.XML_CHANGE_TRACKING__TYPE:
-				return getType();
-		}
-		return super.eGet(featureID, resolve, coreType);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public void eSet(int featureID, Object newValue)
-	{
-		switch (featureID)
-		{
-			case EclipseLinkOrmPackage.XML_CHANGE_TRACKING__TYPE:
-				setType((XmlChangeTrackingType)newValue);
-				return;
-		}
-		super.eSet(featureID, newValue);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public void eUnset(int featureID)
-	{
-		switch (featureID)
-		{
-			case EclipseLinkOrmPackage.XML_CHANGE_TRACKING__TYPE:
-				setType(TYPE_EDEFAULT);
-				return;
-		}
-		super.eUnset(featureID);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public boolean eIsSet(int featureID)
-	{
-		switch (featureID)
-		{
-			case EclipseLinkOrmPackage.XML_CHANGE_TRACKING__TYPE:
-				return type != TYPE_EDEFAULT;
-		}
-		return super.eIsSet(featureID);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public String toString()
-	{
-		if (eIsProxy()) return super.toString();
-
-		StringBuffer result = new StringBuffer(super.toString());
-		result.append(" (type: ");
-		result.append(type);
-		result.append(')');
-		return result.toString();
-	}
-
-} // XmlChangeTracking
diff --git a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/resource/orm/XmlChangeTrackingHolder.java b/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/resource/orm/XmlChangeTrackingHolder.java
deleted file mode 100644
index 6b7a687..0000000
--- a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/resource/orm/XmlChangeTrackingHolder.java
+++ /dev/null
@@ -1,70 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008, 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.eclipselink.core.resource.orm;
-
-import org.eclipse.jpt.core.resource.xml.JpaEObject;
-
-/**
- * <!-- begin-user-doc -->
- * 
- * A representation of the model object '<em><b>Xml Change Tracking Holder</b></em>'.
- *  
- * Provisional API: This interface is part of an interim API that is still
- * under development and expected to change significantly before reaching
- * stability. It is available at this early stage to solicit feedback from
- * pioneering adopters on the understanding that any code that uses this API
- * will almost certainly be broken (repeatedly) as the API evolves.
- * 
- * @version 2.1
- * @since 2.1
- * 
- * <!-- end-user-doc -->
- *
- * <p>
- * The following features are supported:
- * <ul>
- *   <li>{@link org.eclipse.jpt.eclipselink.core.resource.orm.XmlChangeTrackingHolder#getChangeTracking <em>Change Tracking</em>}</li>
- * </ul>
- * </p>
- *
- * @see org.eclipse.jpt.eclipselink.core.resource.orm.EclipseLinkOrmPackage#getXmlChangeTrackingHolder()
- * @model kind="class" interface="true" abstract="true"
- * @extends JpaEObject
- * @generated
- */
-public interface XmlChangeTrackingHolder extends JpaEObject
-{
-	/**
-	 * Returns the value of the '<em><b>Change Tracking</b></em>' containment reference.
-	 * <!-- begin-user-doc -->
-	 * <p>
-	 * If the meaning of the '<em>Change Tracking</em>' containment reference isn't clear,
-	 * there really should be more of a description here...
-	 * </p>
-	 * <!-- end-user-doc -->
-	 * @return the value of the '<em>Change Tracking</em>' containment reference.
-	 * @see #setChangeTracking(XmlChangeTracking)
-	 * @see org.eclipse.jpt.eclipselink.core.resource.orm.EclipseLinkOrmPackage#getXmlChangeTrackingHolder_ChangeTracking()
-	 * @model containment="true"
-	 * @generated
-	 */
-	XmlChangeTracking getChangeTracking();
-
-	/**
-	 * Sets the value of the '{@link org.eclipse.jpt.eclipselink.core.resource.orm.XmlChangeTrackingHolder#getChangeTracking <em>Change Tracking</em>}' containment reference.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @param value the new value of the '<em>Change Tracking</em>' containment reference.
-	 * @see #getChangeTracking()
-	 * @generated
-	 */
-	void setChangeTracking(XmlChangeTracking value);
-
-} // XmlChangeTrackingHolder
diff --git a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/resource/orm/XmlChangeTrackingType.java b/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/resource/orm/XmlChangeTrackingType.java
deleted file mode 100644
index 98544f1..0000000
--- a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/resource/orm/XmlChangeTrackingType.java
+++ /dev/null
@@ -1,286 +0,0 @@
-/**
- * <copyright>
- * </copyright>
- *
- * $Id: XmlChangeTrackingType.java,v 1.3 2009/01/05 21:39:49 kmoore Exp $
- */
-package org.eclipse.jpt.eclipselink.core.resource.orm;
-
-import java.util.Arrays;
-import java.util.Collections;
-import java.util.List;
-import org.eclipse.emf.common.util.Enumerator;
-
-/**
- * <!-- begin-user-doc -->
- * 
- * A representation of the literals of the enumeration '<em><b>Xml Change Tracking Type</b></em>',
- * and utility methods for working with them.
- *  
- * Provisional API: This interface is part of an interim API that is still
- * under development and expected to change significantly before reaching
- * stability. It is available at this early stage to solicit feedback from
- * pioneering adopters on the understanding that any code that uses this API
- * will almost certainly be broken (repeatedly) as the API evolves.
- * 
- * @version 2.1
- * @since 2.1
- * 
- * <!-- end-user-doc -->
- * @see org.eclipse.jpt.eclipselink.core.resource.orm.EclipseLinkOrmPackage#getXmlChangeTrackingType()
- * @model
- * @generated
- */
-public enum XmlChangeTrackingType implements Enumerator
-{
-	/**
-	 * The '<em><b>ATTRIBUTE</b></em>' literal object.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see #ATTRIBUTE_VALUE
-	 * @generated
-	 * @ordered
-	 */
-	ATTRIBUTE(0, "ATTRIBUTE", "ATTRIBUTE"), /**
-	 * The '<em><b>OBJECT</b></em>' literal object.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see #OBJECT_VALUE
-	 * @generated
-	 * @ordered
-	 */
-	OBJECT(1, "OBJECT", "OBJECT"), /**
-	 * The '<em><b>DEFERRED</b></em>' literal object.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see #DEFERRED_VALUE
-	 * @generated
-	 * @ordered
-	 */
-	DEFERRED(2, "DEFERRED", "DEFERRED"), /**
-	 * The '<em><b>AUTO</b></em>' literal object.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see #AUTO_VALUE
-	 * @generated
-	 * @ordered
-	 */
-	AUTO(3, "AUTO", "AUTO")
-	;
-
-	/**
-	 * The '<em><b>ATTRIBUTE</b></em>' literal value.
-	 * <!-- begin-user-doc -->
-	 * <p>
-	 * If the meaning of '<em><b>ATTRIBUTE</b></em>' literal object isn't clear,
-	 * there really should be more of a description here...
-	 * </p>
-	 * <!-- end-user-doc -->
-	 * @see #ATTRIBUTE
-	 * @model
-	 * @generated
-	 * @ordered
-	 */
-	public static final int ATTRIBUTE_VALUE = 0;
-
-/**
-	 * The '<em><b>OBJECT</b></em>' literal value.
-	 * <!-- begin-user-doc -->
-	 * <p>
-	 * If the meaning of '<em><b>OBJECT</b></em>' literal object isn't clear,
-	 * there really should be more of a description here...
-	 * </p>
-	 * <!-- end-user-doc -->
-	 * @see #OBJECT
-	 * @model
-	 * @generated
-	 * @ordered
-	 */
-	public static final int OBJECT_VALUE = 1;
-
-/**
-	 * The '<em><b>DEFERRED</b></em>' literal value.
-	 * <!-- begin-user-doc -->
-	 * <p>
-	 * If the meaning of '<em><b>DEFERRED</b></em>' literal object isn't clear,
-	 * there really should be more of a description here...
-	 * </p>
-	 * <!-- end-user-doc -->
-	 * @see #DEFERRED
-	 * @model
-	 * @generated
-	 * @ordered
-	 */
-	public static final int DEFERRED_VALUE = 2;
-
-/**
-	 * The '<em><b>AUTO</b></em>' literal value.
-	 * <!-- begin-user-doc -->
-	 * <p>
-	 * If the meaning of '<em><b>AUTO</b></em>' literal object isn't clear,
-	 * there really should be more of a description here...
-	 * </p>
-	 * <!-- end-user-doc -->
-	 * @see #AUTO
-	 * @model
-	 * @generated
-	 * @ordered
-	 */
-	public static final int AUTO_VALUE = 3;
-
-	/**
-	 * An array of all the '<em><b>Xml Change Tracking Type</b></em>' enumerators.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	private static final XmlChangeTrackingType[] VALUES_ARRAY =
-		new XmlChangeTrackingType[]
-		{
-			ATTRIBUTE,
-			OBJECT,
-			DEFERRED,
-			AUTO,
-		};
-
-	/**
-	 * A public read-only list of all the '<em><b>Xml Change Tracking Type</b></em>' enumerators.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public static final List<XmlChangeTrackingType> VALUES = Collections.unmodifiableList(Arrays.asList(VALUES_ARRAY));
-
-	/**
-	 * Returns the '<em><b>Xml Change Tracking Type</b></em>' literal with the specified literal value.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public static XmlChangeTrackingType get(String literal)
-	{
-		for (int i = 0; i < VALUES_ARRAY.length; ++i)
-		{
-			XmlChangeTrackingType result = VALUES_ARRAY[i];
-			if (result.toString().equals(literal))
-			{
-				return result;
-			}
-		}
-		return null;
-	}
-
-	/**
-	 * Returns the '<em><b>Xml Change Tracking Type</b></em>' literal with the specified name.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public static XmlChangeTrackingType getByName(String name)
-	{
-		for (int i = 0; i < VALUES_ARRAY.length; ++i)
-		{
-			XmlChangeTrackingType result = VALUES_ARRAY[i];
-			if (result.getName().equals(name))
-			{
-				return result;
-			}
-		}
-		return null;
-	}
-
-	/**
-	 * Returns the '<em><b>Xml Change Tracking Type</b></em>' literal with the specified integer value.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public static XmlChangeTrackingType get(int value)
-	{
-		switch (value)
-		{
-			case ATTRIBUTE_VALUE: return ATTRIBUTE;
-			case OBJECT_VALUE: return OBJECT;
-			case DEFERRED_VALUE: return DEFERRED;
-			case AUTO_VALUE: return AUTO;
-		}
-		return null;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	private final int value;
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	private final String name;
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	private final String literal;
-
-	/**
-	 * Only this class can construct instances.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	private XmlChangeTrackingType(int value, String name, String literal)
-	{
-		this.value = value;
-		this.name = name;
-		this.literal = literal;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public int getValue()
-	{
-	  return value;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public String getName()
-	{
-	  return name;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public String getLiteral()
-	{
-	  return literal;
-	}
-
-	/**
-	 * Returns the literal value of the enumerator, which is its string representation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public String toString()
-	{
-		return literal;
-	}
-	
-} //XmlChangeTrackingType
diff --git a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/resource/orm/XmlCloneCopyPolicy.java b/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/resource/orm/XmlCloneCopyPolicy.java
deleted file mode 100644
index d58c4fd..0000000
--- a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/resource/orm/XmlCloneCopyPolicy.java
+++ /dev/null
@@ -1,277 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.eclipselink.core.resource.orm;
-
-import org.eclipse.emf.common.notify.Notification;
-
-import org.eclipse.emf.ecore.EClass;
-
-import org.eclipse.emf.ecore.impl.ENotificationImpl;
-
-import org.eclipse.jpt.core.resource.xml.AbstractJpaEObject;
-import org.eclipse.jpt.core.resource.xml.JpaEObject;
-
-/**
- * <!-- begin-user-doc -->
- * A representation of the model object '<em><b>Xml Clone Copy Policy</b></em>'.
- *  
- * Provisional API: This interface is part of an interim API that is still
- * under development and expected to change significantly before reaching
- * stability. It is available at this early stage to solicit feedback from
- * pioneering adopters on the understanding that any code that uses this API
- * will almost certainly be broken (repeatedly) as the API evolves.
- * 
- * @version 2.2
- * @since 2.2
- *
- * <!-- end-user-doc -->
- *
- * <p>
- * The following features are supported:
- * <ul>
- *   <li>{@link org.eclipse.jpt.eclipselink.core.resource.orm.XmlCloneCopyPolicy#getMethod <em>Method</em>}</li>
- *   <li>{@link org.eclipse.jpt.eclipselink.core.resource.orm.XmlCloneCopyPolicy#getWorkingCopyMethod <em>Working Copy Method</em>}</li>
- * </ul>
- * </p>
- *
- * @see org.eclipse.jpt.eclipselink.core.resource.orm.EclipseLinkOrmPackage#getXmlCloneCopyPolicy()
- * @model kind="class"
- * @extends JpaEObject
- * @generated
- */
-public class XmlCloneCopyPolicy extends AbstractJpaEObject implements JpaEObject
-{
-	/**
-	 * The default value of the '{@link #getMethod() <em>Method</em>}' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see #getMethod()
-	 * @generated
-	 * @ordered
-	 */
-	protected static final String METHOD_EDEFAULT = null;
-
-	/**
-	 * The cached value of the '{@link #getMethod() <em>Method</em>}' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see #getMethod()
-	 * @generated
-	 * @ordered
-	 */
-	protected String method = METHOD_EDEFAULT;
-
-	/**
-	 * The default value of the '{@link #getWorkingCopyMethod() <em>Working Copy Method</em>}' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see #getWorkingCopyMethod()
-	 * @generated
-	 * @ordered
-	 */
-	protected static final String WORKING_COPY_METHOD_EDEFAULT = null;
-
-	/**
-	 * The cached value of the '{@link #getWorkingCopyMethod() <em>Working Copy Method</em>}' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see #getWorkingCopyMethod()
-	 * @generated
-	 * @ordered
-	 */
-	protected String workingCopyMethod = WORKING_COPY_METHOD_EDEFAULT;
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	protected XmlCloneCopyPolicy()
-	{
-		super();
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	protected EClass eStaticClass()
-	{
-		return EclipseLinkOrmPackage.Literals.XML_CLONE_COPY_POLICY;
-	}
-
-	/**
-	 * Returns the value of the '<em><b>Method</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <p>
-	 * If the meaning of the '<em>Method</em>' attribute isn't clear,
-	 * there really should be more of a description here...
-	 * </p>
-	 * <!-- end-user-doc -->
-	 * @return the value of the '<em>Method</em>' attribute.
-	 * @see #setMethod(String)
-	 * @see org.eclipse.jpt.eclipselink.core.resource.orm.EclipseLinkOrmPackage#getXmlCloneCopyPolicy_Method()
-	 * @model dataType="org.eclipse.emf.ecore.xml.type.String"
-	 * @generated
-	 */
-	public String getMethod()
-	{
-		return method;
-	}
-
-	/**
-	 * Sets the value of the '{@link org.eclipse.jpt.eclipselink.core.resource.orm.XmlCloneCopyPolicy#getMethod <em>Method</em>}' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @param value the new value of the '<em>Method</em>' attribute.
-	 * @see #getMethod()
-	 * @generated
-	 */
-	public void setMethod(String newMethod)
-	{
-		String oldMethod = method;
-		method = newMethod;
-		if (eNotificationRequired())
-			eNotify(new ENotificationImpl(this, Notification.SET, EclipseLinkOrmPackage.XML_CLONE_COPY_POLICY__METHOD, oldMethod, method));
-	}
-
-	/**
-	 * Returns the value of the '<em><b>Working Copy Method</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <p>
-	 * If the meaning of the '<em>Working Copy Method</em>' attribute isn't clear,
-	 * there really should be more of a description here...
-	 * </p>
-	 * <!-- end-user-doc -->
-	 * @return the value of the '<em>Working Copy Method</em>' attribute.
-	 * @see #setWorkingCopyMethod(String)
-	 * @see org.eclipse.jpt.eclipselink.core.resource.orm.EclipseLinkOrmPackage#getXmlCloneCopyPolicy_WorkingCopyMethod()
-	 * @model dataType="org.eclipse.emf.ecore.xml.type.String"
-	 * @generated
-	 */
-	public String getWorkingCopyMethod()
-	{
-		return workingCopyMethod;
-	}
-
-	/**
-	 * Sets the value of the '{@link org.eclipse.jpt.eclipselink.core.resource.orm.XmlCloneCopyPolicy#getWorkingCopyMethod <em>Working Copy Method</em>}' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @param value the new value of the '<em>Working Copy Method</em>' attribute.
-	 * @see #getWorkingCopyMethod()
-	 * @generated
-	 */
-	public void setWorkingCopyMethod(String newWorkingCopyMethod)
-	{
-		String oldWorkingCopyMethod = workingCopyMethod;
-		workingCopyMethod = newWorkingCopyMethod;
-		if (eNotificationRequired())
-			eNotify(new ENotificationImpl(this, Notification.SET, EclipseLinkOrmPackage.XML_CLONE_COPY_POLICY__WORKING_COPY_METHOD, oldWorkingCopyMethod, workingCopyMethod));
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public Object eGet(int featureID, boolean resolve, boolean coreType)
-	{
-		switch (featureID)
-		{
-			case EclipseLinkOrmPackage.XML_CLONE_COPY_POLICY__METHOD:
-				return getMethod();
-			case EclipseLinkOrmPackage.XML_CLONE_COPY_POLICY__WORKING_COPY_METHOD:
-				return getWorkingCopyMethod();
-		}
-		return super.eGet(featureID, resolve, coreType);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public void eSet(int featureID, Object newValue)
-	{
-		switch (featureID)
-		{
-			case EclipseLinkOrmPackage.XML_CLONE_COPY_POLICY__METHOD:
-				setMethod((String)newValue);
-				return;
-			case EclipseLinkOrmPackage.XML_CLONE_COPY_POLICY__WORKING_COPY_METHOD:
-				setWorkingCopyMethod((String)newValue);
-				return;
-		}
-		super.eSet(featureID, newValue);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public void eUnset(int featureID)
-	{
-		switch (featureID)
-		{
-			case EclipseLinkOrmPackage.XML_CLONE_COPY_POLICY__METHOD:
-				setMethod(METHOD_EDEFAULT);
-				return;
-			case EclipseLinkOrmPackage.XML_CLONE_COPY_POLICY__WORKING_COPY_METHOD:
-				setWorkingCopyMethod(WORKING_COPY_METHOD_EDEFAULT);
-				return;
-		}
-		super.eUnset(featureID);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public boolean eIsSet(int featureID)
-	{
-		switch (featureID)
-		{
-			case EclipseLinkOrmPackage.XML_CLONE_COPY_POLICY__METHOD:
-				return METHOD_EDEFAULT == null ? method != null : !METHOD_EDEFAULT.equals(method);
-			case EclipseLinkOrmPackage.XML_CLONE_COPY_POLICY__WORKING_COPY_METHOD:
-				return WORKING_COPY_METHOD_EDEFAULT == null ? workingCopyMethod != null : !WORKING_COPY_METHOD_EDEFAULT.equals(workingCopyMethod);
-		}
-		return super.eIsSet(featureID);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public String toString()
-	{
-		if (eIsProxy()) return super.toString();
-
-		StringBuffer result = new StringBuffer(super.toString());
-		result.append(" (method: ");
-		result.append(method);
-		result.append(", workingCopyMethod: ");
-		result.append(workingCopyMethod);
-		result.append(')');
-		return result.toString();
-	}
-
-} // XmlCloneCopyPolicy
diff --git a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/resource/orm/XmlConversionValue.java b/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/resource/orm/XmlConversionValue.java
deleted file mode 100644
index 2c781d5..0000000
--- a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/resource/orm/XmlConversionValue.java
+++ /dev/null
@@ -1,108 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008, 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.eclipselink.core.resource.orm;
-
-import org.eclipse.jpt.core.resource.xml.JpaEObject;
-import org.eclipse.jpt.core.utility.TextRange;
-
-/**
- * <!-- begin-user-doc -->
-
- * A representation of the model object '<em><b>Xml Conversion Value</b></em>'.
- *  
- * Provisional API: This interface is part of an interim API that is still
- * under development and expected to change significantly before reaching
- * stability. It is available at this early stage to solicit feedback from
- * pioneering adopters on the understanding that any code that uses this API
- * will almost certainly be broken (repeatedly) as the API evolves.
- * 
- * @version 2.1
- * @since 2.1
- * 
- * <!-- end-user-doc -->
- *
- * <p>
- * The following features are supported:
- * <ul>
- *   <li>{@link org.eclipse.jpt.eclipselink.core.resource.orm.XmlConversionValue#getDataValue <em>Data Value</em>}</li>
- *   <li>{@link org.eclipse.jpt.eclipselink.core.resource.orm.XmlConversionValue#getObjectValue <em>Object Value</em>}</li>
- * </ul>
- * </p>
- *
- * @see org.eclipse.jpt.eclipselink.core.resource.orm.EclipseLinkOrmPackage#getXmlConversionValue()
- * @model kind="class" interface="true" abstract="true"
- * @extends JpaEObject
- * @generated
- */
-public interface XmlConversionValue extends JpaEObject
-{
-	/**
-	 * Returns the value of the '<em><b>Data Value</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <p>
-	 * If the meaning of the '<em>Data Value</em>' attribute isn't clear,
-	 * there really should be more of a description here...
-	 * </p>
-	 * <!-- end-user-doc -->
-	 * @return the value of the '<em>Data Value</em>' attribute.
-	 * @see #setDataValue(String)
-	 * @see org.eclipse.jpt.eclipselink.core.resource.orm.EclipseLinkOrmPackage#getXmlConversionValue_DataValue()
-	 * @model
-	 * @generated
-	 */
-	String getDataValue();
-
-	/**
-	 * Sets the value of the '{@link org.eclipse.jpt.eclipselink.core.resource.orm.XmlConversionValue#getDataValue <em>Data Value</em>}' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @param value the new value of the '<em>Data Value</em>' attribute.
-	 * @see #getDataValue()
-	 * @generated
-	 */
-	void setDataValue(String value);
-
-	/**
-	 * Returns the value of the '<em><b>Object Value</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <p>
-	 * If the meaning of the '<em>Object Value</em>' attribute isn't clear,
-	 * there really should be more of a description here...
-	 * </p>
-	 * <!-- end-user-doc -->
-	 * @return the value of the '<em>Object Value</em>' attribute.
-	 * @see #setObjectValue(String)
-	 * @see org.eclipse.jpt.eclipselink.core.resource.orm.EclipseLinkOrmPackage#getXmlConversionValue_ObjectValue()
-	 * @model
-	 * @generated
-	 */
-	String getObjectValue();
-
-	/**
-	 * Sets the value of the '{@link org.eclipse.jpt.eclipselink.core.resource.orm.XmlConversionValue#getObjectValue <em>Object Value</em>}' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @param value the new value of the '<em>Object Value</em>' attribute.
-	 * @see #getObjectValue()
-	 * @generated
-	 */
-	void setObjectValue(String value);
-	
-	/**
-	 * Return the {@link TextRange} for the data-value attribute.
-	 */
-	public TextRange getDataValueTextRange();
-	
-	/**
-	 * Return the {@link TextRange} for the object-value attribute.
-	 */
-	public TextRange getObjectValueTextRange();
-
-} // XmlConversionValue
diff --git a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/resource/orm/XmlConversionValueImpl.java b/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/resource/orm/XmlConversionValueImpl.java
deleted file mode 100644
index b479d79..0000000
--- a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/resource/orm/XmlConversionValueImpl.java
+++ /dev/null
@@ -1,275 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008, 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.eclipselink.core.resource.orm;
-
-import org.eclipse.emf.common.notify.Notification;
-import org.eclipse.emf.ecore.EClass;
-import org.eclipse.emf.ecore.impl.ENotificationImpl;
-import org.eclipse.jpt.core.resource.xml.AbstractJpaEObject;
-import org.eclipse.jpt.core.utility.TextRange;
-import org.eclipse.jpt.eclipselink.core.internal.resource.orm.translators.EclipseLinkOrmXmlMapper;
-
-/**
- * <!-- begin-user-doc -->
- * 
- * A representation of the model object '<em><b>Xml Conversion Value</b></em>'.
- *  
- * Provisional API: This interface is part of an interim API that is still
- * under development and expected to change significantly before reaching
- * stability. It is available at this early stage to solicit feedback from
- * pioneering adopters on the understanding that any code that uses this API
- * will almost certainly be broken (repeatedly) as the API evolves.
- * 
- * @version 2.1
- * @since 2.1
- * 
- * <!-- end-user-doc -->
- *
- *
- * @see org.eclipse.jpt.eclipselink.core.resource.orm.EclipseLinkOrmPackage#getXmlConversionValueImpl()
- * @model kind="class"
- * @generated
- */
-public class XmlConversionValueImpl extends AbstractJpaEObject implements XmlConversionValue
-{
-	/**
-	 * The default value of the '{@link #getDataValue() <em>Data Value</em>}' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see #getDataValue()
-	 * @generated
-	 * @ordered
-	 */
-	protected static final String DATA_VALUE_EDEFAULT = null;
-
-	/**
-	 * The cached value of the '{@link #getDataValue() <em>Data Value</em>}' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see #getDataValue()
-	 * @generated
-	 * @ordered
-	 */
-	protected String dataValue = DATA_VALUE_EDEFAULT;
-
-	/**
-	 * The default value of the '{@link #getObjectValue() <em>Object Value</em>}' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see #getObjectValue()
-	 * @generated
-	 * @ordered
-	 */
-	protected static final String OBJECT_VALUE_EDEFAULT = null;
-
-	/**
-	 * The cached value of the '{@link #getObjectValue() <em>Object Value</em>}' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see #getObjectValue()
-	 * @generated
-	 * @ordered
-	 */
-	protected String objectValue = OBJECT_VALUE_EDEFAULT;
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	protected XmlConversionValueImpl()
-	{
-		super();
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	protected EClass eStaticClass()
-	{
-		return EclipseLinkOrmPackage.Literals.XML_CONVERSION_VALUE_IMPL;
-	}
-
-	/**
-	 * Returns the value of the '<em><b>Data Value</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <p>
-	 * If the meaning of the '<em>Data Value</em>' attribute isn't clear,
-	 * there really should be more of a description here...
-	 * </p>
-	 * <!-- end-user-doc -->
-	 * @return the value of the '<em>Data Value</em>' attribute.
-	 * @see #setDataValue(String)
-	 * @see org.eclipse.jpt.eclipselink.core.resource.orm.EclipseLinkOrmPackage#getXmlConversionValue_DataValue()
-	 * @model
-	 * @generated
-	 */
-	public String getDataValue()
-	{
-		return dataValue;
-	}
-
-	/**
-	 * Sets the value of the '{@link org.eclipse.jpt.eclipselink.core.resource.orm.XmlConversionValueImpl#getDataValue <em>Data Value</em>}' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @param value the new value of the '<em>Data Value</em>' attribute.
-	 * @see #getDataValue()
-	 * @generated
-	 */
-	public void setDataValue(String newDataValue)
-	{
-		String oldDataValue = dataValue;
-		dataValue = newDataValue;
-		if (eNotificationRequired())
-			eNotify(new ENotificationImpl(this, Notification.SET, EclipseLinkOrmPackage.XML_CONVERSION_VALUE_IMPL__DATA_VALUE, oldDataValue, dataValue));
-	}
-
-	/**
-	 * Returns the value of the '<em><b>Object Value</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <p>
-	 * If the meaning of the '<em>Object Value</em>' attribute isn't clear,
-	 * there really should be more of a description here...
-	 * </p>
-	 * <!-- end-user-doc -->
-	 * @return the value of the '<em>Object Value</em>' attribute.
-	 * @see #setObjectValue(String)
-	 * @see org.eclipse.jpt.eclipselink.core.resource.orm.EclipseLinkOrmPackage#getXmlConversionValue_ObjectValue()
-	 * @model
-	 * @generated
-	 */
-	public String getObjectValue()
-	{
-		return objectValue;
-	}
-
-	/**
-	 * Sets the value of the '{@link org.eclipse.jpt.eclipselink.core.resource.orm.XmlConversionValueImpl#getObjectValue <em>Object Value</em>}' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @param value the new value of the '<em>Object Value</em>' attribute.
-	 * @see #getObjectValue()
-	 * @generated
-	 */
-	public void setObjectValue(String newObjectValue)
-	{
-		String oldObjectValue = objectValue;
-		objectValue = newObjectValue;
-		if (eNotificationRequired())
-			eNotify(new ENotificationImpl(this, Notification.SET, EclipseLinkOrmPackage.XML_CONVERSION_VALUE_IMPL__OBJECT_VALUE, oldObjectValue, objectValue));
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public Object eGet(int featureID, boolean resolve, boolean coreType)
-	{
-		switch (featureID)
-		{
-			case EclipseLinkOrmPackage.XML_CONVERSION_VALUE_IMPL__DATA_VALUE:
-				return getDataValue();
-			case EclipseLinkOrmPackage.XML_CONVERSION_VALUE_IMPL__OBJECT_VALUE:
-				return getObjectValue();
-		}
-		return super.eGet(featureID, resolve, coreType);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public void eSet(int featureID, Object newValue)
-	{
-		switch (featureID)
-		{
-			case EclipseLinkOrmPackage.XML_CONVERSION_VALUE_IMPL__DATA_VALUE:
-				setDataValue((String)newValue);
-				return;
-			case EclipseLinkOrmPackage.XML_CONVERSION_VALUE_IMPL__OBJECT_VALUE:
-				setObjectValue((String)newValue);
-				return;
-		}
-		super.eSet(featureID, newValue);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public void eUnset(int featureID)
-	{
-		switch (featureID)
-		{
-			case EclipseLinkOrmPackage.XML_CONVERSION_VALUE_IMPL__DATA_VALUE:
-				setDataValue(DATA_VALUE_EDEFAULT);
-				return;
-			case EclipseLinkOrmPackage.XML_CONVERSION_VALUE_IMPL__OBJECT_VALUE:
-				setObjectValue(OBJECT_VALUE_EDEFAULT);
-				return;
-		}
-		super.eUnset(featureID);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public boolean eIsSet(int featureID)
-	{
-		switch (featureID)
-		{
-			case EclipseLinkOrmPackage.XML_CONVERSION_VALUE_IMPL__DATA_VALUE:
-				return DATA_VALUE_EDEFAULT == null ? dataValue != null : !DATA_VALUE_EDEFAULT.equals(dataValue);
-			case EclipseLinkOrmPackage.XML_CONVERSION_VALUE_IMPL__OBJECT_VALUE:
-				return OBJECT_VALUE_EDEFAULT == null ? objectValue != null : !OBJECT_VALUE_EDEFAULT.equals(objectValue);
-		}
-		return super.eIsSet(featureID);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public String toString()
-	{
-		if (eIsProxy()) return super.toString();
-
-		StringBuffer result = new StringBuffer(super.toString());
-		result.append(" (dataValue: ");
-		result.append(dataValue);
-		result.append(", objectValue: ");
-		result.append(objectValue);
-		result.append(')');
-		return result.toString();
-	}
-	
-	public TextRange getDataValueTextRange() {
-		return getAttributeTextRange(EclipseLinkOrmXmlMapper.CONVERSION_VALUE__DATA_VALUE);
-	}
-	
-	public TextRange getObjectValueTextRange() {
-		return getAttributeTextRange(EclipseLinkOrmXmlMapper.CONVERSION_VALUE__OBJECT_VALUE);
-	}	
-} // XmlConversionValue
diff --git a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/resource/orm/XmlConverter.java b/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/resource/orm/XmlConverter.java
deleted file mode 100644
index 35636a7..0000000
--- a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/resource/orm/XmlConverter.java
+++ /dev/null
@@ -1,68 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.eclipselink.core.resource.orm;
-
-
-/**
- * <!-- begin-user-doc -->
- * 
- * A representation of the model object '<em><b>Xml CustomConverter</b></em>'.
- *  
- * Provisional API: This interface is part of an interim API that is still
- * under development and expected to change significantly before reaching
- * stability. It is available at this early stage to solicit feedback from
- * pioneering adopters on the understanding that any code that uses this API
- * will almost certainly be broken (repeatedly) as the API evolves.
- * 
- * @version 2.1
- * @since 2.1
- * 
- * <!-- end-user-doc -->
- *
- * <p>
- * The following features are supported:
- * <ul>
- *   <li>{@link org.eclipse.jpt.eclipselink.core.resource.orm.XmlConverter#getClassName <em>Class Name</em>}</li>
- * </ul>
- * </p>
- *
- * @see org.eclipse.jpt.eclipselink.core.resource.orm.EclipseLinkOrmPackage#getXmlConverter()
- * @model kind="class" interface="true" abstract="true"
- * @generated
- */
-public interface XmlConverter extends XmlNamedConverter
-{
-	/**
-	 * Returns the value of the '<em><b>Class Name</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <p>
-	 * If the meaning of the '<em>Class Name</em>' attribute isn't clear,
-	 * there really should be more of a description here...
-	 * </p>
-	 * <!-- end-user-doc -->
-	 * @return the value of the '<em>Class Name</em>' attribute.
-	 * @see #setClassName(String)
-	 * @see org.eclipse.jpt.eclipselink.core.resource.orm.EclipseLinkOrmPackage#getXmlConverter_ClassName()
-	 * @model
-	 * @generated
-	 */
-	String getClassName();
-
-	/**
-	 * Sets the value of the '{@link org.eclipse.jpt.eclipselink.core.resource.orm.XmlConverter#getClassName <em>Class Name</em>}' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @param value the new value of the '<em>Class Name</em>' attribute.
-	 * @see #getClassName()
-	 * @generated
-	 */
-	void setClassName(String value);
-
-} // XmlConverter
diff --git a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/resource/orm/XmlConverterHolder.java b/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/resource/orm/XmlConverterHolder.java
deleted file mode 100644
index ea455ec..0000000
--- a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/resource/orm/XmlConverterHolder.java
+++ /dev/null
@@ -1,151 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008, 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.eclipselink.core.resource.orm;
-
-import org.eclipse.jpt.core.resource.xml.JpaEObject;
-
-/**
- * <!-- begin-user-doc -->
- * 
- * A representation of the model object '<em><b>Xml CustomConverter Holder</b></em>'.
- *  
- * Provisional API: This interface is part of an interim API that is still
- * under development and expected to change significantly before reaching
- * stability. It is available at this early stage to solicit feedback from
- * pioneering adopters on the understanding that any code that uses this API
- * will almost certainly be broken (repeatedly) as the API evolves.
- * 
- * @version 2.1
- * @since 2.1
- * 
- * <!-- end-user-doc -->
- *
- * <p>
- * The following features are supported:
- * <ul>
- *   <li>{@link org.eclipse.jpt.eclipselink.core.resource.orm.XmlConverterHolder#getConverter <em>Converter</em>}</li>
- *   <li>{@link org.eclipse.jpt.eclipselink.core.resource.orm.XmlConverterHolder#getTypeConverter <em>Type Converter</em>}</li>
- *   <li>{@link org.eclipse.jpt.eclipselink.core.resource.orm.XmlConverterHolder#getObjectTypeConverter <em>Object Type Converter</em>}</li>
- *   <li>{@link org.eclipse.jpt.eclipselink.core.resource.orm.XmlConverterHolder#getStructConverter <em>Struct Converter</em>}</li>
- * </ul>
- * </p>
- *
- * @see org.eclipse.jpt.eclipselink.core.resource.orm.EclipseLinkOrmPackage#getXmlConverterHolder()
- * @model kind="class" interface="true" abstract="true"
- * @extends JpaEObject
- * @generated
- */
-public interface XmlConverterHolder extends JpaEObject
-{
-	/**
-	 * Returns the value of the '<em><b>Converter</b></em>' containment reference.
-	 * <!-- begin-user-doc -->
-	 * <p>
-	 * If the meaning of the '<em>CustomConverter</em>' containment reference isn't clear,
-	 * there really should be more of a description here...
-	 * </p>
-	 * <!-- end-user-doc -->
-	 * @return the value of the '<em>Converter</em>' containment reference.
-	 * @see #setConverter(XmlConverter)
-	 * @see org.eclipse.jpt.eclipselink.core.resource.orm.EclipseLinkOrmPackage#getXmlConverterHolder_Converter()
-	 * @model containment="true"
-	 * @generated
-	 */
-	XmlConverter getConverter();
-
-	/**
-	 * Sets the value of the '{@link org.eclipse.jpt.eclipselink.core.resource.orm.XmlConverterHolder#getConverter <em>Converter</em>}' containment reference.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @param value the new value of the '<em>Converter</em>' containment reference.
-	 * @see #getConverter()
-	 * @generated
-	 */
-	void setConverter(XmlConverter value);
-
-	/**
-	 * Returns the value of the '<em><b>Type Converter</b></em>' containment reference.
-	 * <!-- begin-user-doc -->
-	 * <p>
-	 * If the meaning of the '<em>Type CustomConverter</em>' containment reference isn't clear,
-	 * there really should be more of a description here...
-	 * </p>
-	 * <!-- end-user-doc -->
-	 * @return the value of the '<em>Type Converter</em>' containment reference.
-	 * @see #setTypeConverter(XmlTypeConverter)
-	 * @see org.eclipse.jpt.eclipselink.core.resource.orm.EclipseLinkOrmPackage#getXmlConverterHolder_TypeConverter()
-	 * @model containment="true"
-	 * @generated
-	 */
-	XmlTypeConverter getTypeConverter();
-
-	/**
-	 * Sets the value of the '{@link org.eclipse.jpt.eclipselink.core.resource.orm.XmlConverterHolder#getTypeConverter <em>Type Converter</em>}' containment reference.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @param value the new value of the '<em>Type Converter</em>' containment reference.
-	 * @see #getTypeConverter()
-	 * @generated
-	 */
-	void setTypeConverter(XmlTypeConverter value);
-
-	/**
-	 * Returns the value of the '<em><b>Object Type Converter</b></em>' containment reference.
-	 * <!-- begin-user-doc -->
-	 * <p>
-	 * If the meaning of the '<em>Object Type CustomConverter</em>' containment reference isn't clear,
-	 * there really should be more of a description here...
-	 * </p>
-	 * <!-- end-user-doc -->
-	 * @return the value of the '<em>Object Type Converter</em>' containment reference.
-	 * @see #setObjectTypeConverter(XmlObjectTypeConverter)
-	 * @see org.eclipse.jpt.eclipselink.core.resource.orm.EclipseLinkOrmPackage#getXmlConverterHolder_ObjectTypeConverter()
-	 * @model containment="true"
-	 * @generated
-	 */
-	XmlObjectTypeConverter getObjectTypeConverter();
-
-	/**
-	 * Sets the value of the '{@link org.eclipse.jpt.eclipselink.core.resource.orm.XmlConverterHolder#getObjectTypeConverter <em>Object Type Converter</em>}' containment reference.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @param value the new value of the '<em>Object Type Converter</em>' containment reference.
-	 * @see #getObjectTypeConverter()
-	 * @generated
-	 */
-	void setObjectTypeConverter(XmlObjectTypeConverter value);
-
-	/**
-	 * Returns the value of the '<em><b>Struct Converter</b></em>' containment reference.
-	 * <!-- begin-user-doc -->
-	 * <p>
-	 * If the meaning of the '<em>Struct CustomConverter</em>' containment reference isn't clear,
-	 * there really should be more of a description here...
-	 * </p>
-	 * <!-- end-user-doc -->
-	 * @return the value of the '<em>Struct Converter</em>' containment reference.
-	 * @see #setStructConverter(XmlStructConverter)
-	 * @see org.eclipse.jpt.eclipselink.core.resource.orm.EclipseLinkOrmPackage#getXmlConverterHolder_StructConverter()
-	 * @model containment="true"
-	 * @generated
-	 */
-	XmlStructConverter getStructConverter();
-
-	/**
-	 * Sets the value of the '{@link org.eclipse.jpt.eclipselink.core.resource.orm.XmlConverterHolder#getStructConverter <em>Struct Converter</em>}' containment reference.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @param value the new value of the '<em>Struct Converter</em>' containment reference.
-	 * @see #getStructConverter()
-	 * @generated
-	 */
-	void setStructConverter(XmlStructConverter value);
-
-} // XmlConverterHolder
diff --git a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/resource/orm/XmlConverterImpl.java b/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/resource/orm/XmlConverterImpl.java
deleted file mode 100644
index ac3a2e3..0000000
--- a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/resource/orm/XmlConverterImpl.java
+++ /dev/null
@@ -1,266 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008, 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.eclipselink.core.resource.orm;
-
-import org.eclipse.emf.common.notify.Notification;
-import org.eclipse.emf.ecore.EClass;
-import org.eclipse.emf.ecore.impl.ENotificationImpl;
-import org.eclipse.jpt.core.resource.xml.AbstractJpaEObject;
-
-/**
- * <!-- begin-user-doc -->
- * 
- * A representation of the model object '<em><b>Xml CustomConverter</b></em>'.
- *  
- * Provisional API: This interface is part of an interim API that is still
- * under development and expected to change significantly before reaching
- * stability. It is available at this early stage to solicit feedback from
- * pioneering adopters on the understanding that any code that uses this API
- * will almost certainly be broken (repeatedly) as the API evolves.
- * 
- * @version 2.1
- * @since 2.1
- * 
- * <!-- end-user-doc -->
- *
- *
- * @see org.eclipse.jpt.eclipselink.core.resource.orm.EclipseLinkOrmPackage#getXmlConverterImpl()
- * @model kind="class"
- * @generated
- */
-public class XmlConverterImpl extends AbstractJpaEObject implements XmlConverter
-{
-	/**
-	 * The default value of the '{@link #getName() <em>Name</em>}' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see #getName()
-	 * @generated
-	 * @ordered
-	 */
-	protected static final String NAME_EDEFAULT = null;
-
-	/**
-	 * The cached value of the '{@link #getName() <em>Name</em>}' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see #getName()
-	 * @generated
-	 * @ordered
-	 */
-	protected String name = NAME_EDEFAULT;
-
-	/**
-	 * The default value of the '{@link #getClassName() <em>Class Name</em>}' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see #getClassName()
-	 * @generated
-	 * @ordered
-	 */
-	protected static final String CLASS_NAME_EDEFAULT = null;
-
-	/**
-	 * The cached value of the '{@link #getClassName() <em>Class Name</em>}' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see #getClassName()
-	 * @generated
-	 * @ordered
-	 */
-	protected String className = CLASS_NAME_EDEFAULT;
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	protected XmlConverterImpl()
-	{
-		super();
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	protected EClass eStaticClass()
-	{
-		return EclipseLinkOrmPackage.Literals.XML_CONVERTER_IMPL;
-	}
-
-	/**
-	 * Returns the value of the '<em><b>Name</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <p>
-	 * If the meaning of the '<em>Name</em>' attribute isn't clear,
-	 * there really should be more of a description here...
-	 * </p>
-	 * <!-- end-user-doc -->
-	 * @return the value of the '<em>Name</em>' attribute.
-	 * @see #setName(String)
-	 * @see org.eclipse.jpt.eclipselink.core.resource.orm.EclipseLinkOrmPackage#getXmlNamedConverter_Name()
-	 * @model
-	 * @generated
-	 */
-	public String getName()
-	{
-		return name;
-	}
-
-	/**
-	 * Sets the value of the '{@link org.eclipse.jpt.eclipselink.core.resource.orm.XmlConverterImpl#getName <em>Name</em>}' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @param value the new value of the '<em>Name</em>' attribute.
-	 * @see #getName()
-	 * @generated
-	 */
-	public void setName(String newName)
-	{
-		String oldName = name;
-		name = newName;
-		if (eNotificationRequired())
-			eNotify(new ENotificationImpl(this, Notification.SET, EclipseLinkOrmPackage.XML_CONVERTER_IMPL__NAME, oldName, name));
-	}
-
-	/**
-	 * Returns the value of the '<em><b>Class Name</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <p>
-	 * If the meaning of the '<em>Class Name</em>' attribute isn't clear,
-	 * there really should be more of a description here...
-	 * </p>
-	 * <!-- end-user-doc -->
-	 * @return the value of the '<em>Class Name</em>' attribute.
-	 * @see #setClassName(String)
-	 * @see org.eclipse.jpt.eclipselink.core.resource.orm.EclipseLinkOrmPackage#getXmlConverter_ClassName()
-	 * @model
-	 * @generated
-	 */
-	public String getClassName()
-	{
-		return className;
-	}
-
-	/**
-	 * Sets the value of the '{@link org.eclipse.jpt.eclipselink.core.resource.orm.XmlConverterImpl#getClassName <em>Class Name</em>}' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @param value the new value of the '<em>Class Name</em>' attribute.
-	 * @see #getClassName()
-	 * @generated
-	 */
-	public void setClassName(String newClassName)
-	{
-		String oldClassName = className;
-		className = newClassName;
-		if (eNotificationRequired())
-			eNotify(new ENotificationImpl(this, Notification.SET, EclipseLinkOrmPackage.XML_CONVERTER_IMPL__CLASS_NAME, oldClassName, className));
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public Object eGet(int featureID, boolean resolve, boolean coreType)
-	{
-		switch (featureID)
-		{
-			case EclipseLinkOrmPackage.XML_CONVERTER_IMPL__NAME:
-				return getName();
-			case EclipseLinkOrmPackage.XML_CONVERTER_IMPL__CLASS_NAME:
-				return getClassName();
-		}
-		return super.eGet(featureID, resolve, coreType);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public void eSet(int featureID, Object newValue)
-	{
-		switch (featureID)
-		{
-			case EclipseLinkOrmPackage.XML_CONVERTER_IMPL__NAME:
-				setName((String)newValue);
-				return;
-			case EclipseLinkOrmPackage.XML_CONVERTER_IMPL__CLASS_NAME:
-				setClassName((String)newValue);
-				return;
-		}
-		super.eSet(featureID, newValue);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public void eUnset(int featureID)
-	{
-		switch (featureID)
-		{
-			case EclipseLinkOrmPackage.XML_CONVERTER_IMPL__NAME:
-				setName(NAME_EDEFAULT);
-				return;
-			case EclipseLinkOrmPackage.XML_CONVERTER_IMPL__CLASS_NAME:
-				setClassName(CLASS_NAME_EDEFAULT);
-				return;
-		}
-		super.eUnset(featureID);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public boolean eIsSet(int featureID)
-	{
-		switch (featureID)
-		{
-			case EclipseLinkOrmPackage.XML_CONVERTER_IMPL__NAME:
-				return NAME_EDEFAULT == null ? name != null : !NAME_EDEFAULT.equals(name);
-			case EclipseLinkOrmPackage.XML_CONVERTER_IMPL__CLASS_NAME:
-				return CLASS_NAME_EDEFAULT == null ? className != null : !CLASS_NAME_EDEFAULT.equals(className);
-		}
-		return super.eIsSet(featureID);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public String toString()
-	{
-		if (eIsProxy()) return super.toString();
-
-		StringBuffer result = new StringBuffer(super.toString());
-		result.append(" (name: ");
-		result.append(name);
-		result.append(", className: ");
-		result.append(className);
-		result.append(')');
-		return result.toString();
-	}
-
-} // XmlConverter
diff --git a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/resource/orm/XmlConvertersHolder.java b/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/resource/orm/XmlConvertersHolder.java
deleted file mode 100644
index 17cf81b..0000000
--- a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/resource/orm/XmlConvertersHolder.java
+++ /dev/null
@@ -1,112 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008, 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.eclipselink.core.resource.orm;
-
-import org.eclipse.emf.common.util.EList;
-import org.eclipse.jpt.core.resource.xml.JpaEObject;
-
-/**
- * <!-- begin-user-doc -->
- * 
- * A representation of the model object '<em><b>Xml Converters Holder</b></em>'.
- *  
- * Provisional API: This interface is part of an interim API that is still
- * under development and expected to change significantly before reaching
- * stability. It is available at this early stage to solicit feedback from
- * pioneering adopters on the understanding that any code that uses this API
- * will almost certainly be broken (repeatedly) as the API evolves.
- * 
- * @version 2.1
- * @since 2.1
- * 
- * <!-- end-user-doc -->
- *
- * <p>
- * The following features are supported:
- * <ul>
- *   <li>{@link org.eclipse.jpt.eclipselink.core.resource.orm.XmlConvertersHolder#getConverters <em>Converters</em>}</li>
- *   <li>{@link org.eclipse.jpt.eclipselink.core.resource.orm.XmlConvertersHolder#getTypeConverters <em>Type Converters</em>}</li>
- *   <li>{@link org.eclipse.jpt.eclipselink.core.resource.orm.XmlConvertersHolder#getObjectTypeConverters <em>Object Type Converters</em>}</li>
- *   <li>{@link org.eclipse.jpt.eclipselink.core.resource.orm.XmlConvertersHolder#getStructConverters <em>Struct Converters</em>}</li>
- * </ul>
- * </p>
- *
- * @see org.eclipse.jpt.eclipselink.core.resource.orm.EclipseLinkOrmPackage#getXmlConvertersHolder()
- * @model kind="class" interface="true" abstract="true"
- * @extends JpaEObject
- * @generated
- */
-public interface XmlConvertersHolder extends JpaEObject
-{
-	/**
-	 * Returns the value of the '<em><b>Converters</b></em>' containment reference list.
-	 * The list contents are of type {@link org.eclipse.jpt.eclipselink.core.resource.orm.XmlConverter}.
-	 * <!-- begin-user-doc -->
-	 * <p>
-	 * If the meaning of the '<em>Converters</em>' containment reference list isn't clear,
-	 * there really should be more of a description here...
-	 * </p>
-	 * <!-- end-user-doc -->
-	 * @return the value of the '<em>Converters</em>' containment reference list.
-	 * @see org.eclipse.jpt.eclipselink.core.resource.orm.EclipseLinkOrmPackage#getXmlConvertersHolder_Converters()
-	 * @model containment="true"
-	 * @generated
-	 */
-	EList<XmlConverter> getConverters();
-
-	/**
-	 * Returns the value of the '<em><b>Type Converters</b></em>' containment reference list.
-	 * The list contents are of type {@link org.eclipse.jpt.eclipselink.core.resource.orm.XmlTypeConverter}.
-	 * <!-- begin-user-doc -->
-	 * <p>
-	 * If the meaning of the '<em>Type Converters</em>' containment reference list isn't clear,
-	 * there really should be more of a description here...
-	 * </p>
-	 * <!-- end-user-doc -->
-	 * @return the value of the '<em>Type Converters</em>' containment reference list.
-	 * @see org.eclipse.jpt.eclipselink.core.resource.orm.EclipseLinkOrmPackage#getXmlConvertersHolder_TypeConverters()
-	 * @model containment="true"
-	 * @generated
-	 */
-	EList<XmlTypeConverter> getTypeConverters();
-
-	/**
-	 * Returns the value of the '<em><b>Object Type Converters</b></em>' containment reference list.
-	 * The list contents are of type {@link org.eclipse.jpt.eclipselink.core.resource.orm.XmlObjectTypeConverter}.
-	 * <!-- begin-user-doc -->
-	 * <p>
-	 * If the meaning of the '<em>Object Type Converters</em>' containment reference list isn't clear,
-	 * there really should be more of a description here...
-	 * </p>
-	 * <!-- end-user-doc -->
-	 * @return the value of the '<em>Object Type Converters</em>' containment reference list.
-	 * @see org.eclipse.jpt.eclipselink.core.resource.orm.EclipseLinkOrmPackage#getXmlConvertersHolder_ObjectTypeConverters()
-	 * @model containment="true"
-	 * @generated
-	 */
-	EList<XmlObjectTypeConverter> getObjectTypeConverters();
-
-	/**
-	 * Returns the value of the '<em><b>Struct Converters</b></em>' containment reference list.
-	 * The list contents are of type {@link org.eclipse.jpt.eclipselink.core.resource.orm.XmlStructConverter}.
-	 * <!-- begin-user-doc -->
-	 * <p>
-	 * If the meaning of the '<em>Struct Converters</em>' containment reference list isn't clear,
-	 * there really should be more of a description here...
-	 * </p>
-	 * <!-- end-user-doc -->
-	 * @return the value of the '<em>Struct Converters</em>' containment reference list.
-	 * @see org.eclipse.jpt.eclipselink.core.resource.orm.EclipseLinkOrmPackage#getXmlConvertersHolder_StructConverters()
-	 * @model containment="true"
-	 * @generated
-	 */
-	EList<XmlStructConverter> getStructConverters();
-
-} // XmlConvertersHolder
diff --git a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/resource/orm/XmlConvertibleMapping.java b/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/resource/orm/XmlConvertibleMapping.java
deleted file mode 100644
index 9fd20b4..0000000
--- a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/resource/orm/XmlConvertibleMapping.java
+++ /dev/null
@@ -1,76 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.eclipselink.core.resource.orm;
-
-import org.eclipse.jpt.core.utility.TextRange;
-
-
-/**
- * <!-- begin-user-doc -->
- * 
- * A representation of the model object '<em><b>Xml Convertible Mapping</b></em>'.
- *  
- * Provisional API: This interface is part of an interim API that is still
- * under development and expected to change significantly before reaching
- * stability. It is available at this early stage to solicit feedback from
- * pioneering adopters on the understanding that any code that uses this API
- * will almost certainly be broken (repeatedly) as the API evolves.
- * 
- * @version 2.1
- * @since 2.1
- * 
- * <!-- end-user-doc -->
- *
- * <p>
- * The following features are supported:
- * <ul>
- *   <li>{@link org.eclipse.jpt.eclipselink.core.resource.orm.XmlConvertibleMapping#getConvert <em>Convert</em>}</li>
- * </ul>
- * </p>
- *
- * @see org.eclipse.jpt.eclipselink.core.resource.orm.EclipseLinkOrmPackage#getXmlConvertibleMapping()
- * @model kind="class" interface="true" abstract="true"
- * @generated
- */
-public interface XmlConvertibleMapping extends org.eclipse.jpt.core.resource.orm.XmlConvertibleMapping, XmlConverterHolder
-{
-	/**
-	 * Returns the value of the '<em><b>Convert</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <p>
-	 * If the meaning of the '<em>Convert</em>' containment reference isn't clear,
-	 * there really should be more of a description here...
-	 * </p>
-	 * <!-- end-user-doc -->
-	 * @return the value of the '<em>Convert</em>' attribute.
-	 * @see #setConvert(String)
-	 * @see org.eclipse.jpt.eclipselink.core.resource.orm.EclipseLinkOrmPackage#getXmlConvertibleMapping_Convert()
-	 * @model
-	 * @generated
-	 */
-	String getConvert();
-
-	/**
-	 * Sets the value of the '{@link org.eclipse.jpt.eclipselink.core.resource.orm.XmlConvertibleMapping#getConvert <em>Convert</em>}' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @param value the new value of the '<em>Convert</em>' attribute.
-	 * @see #getConvert()
-	 * @generated
-	 */
-	void setConvert(String value);
-
-	/**
-	 * Return the {@link TextRange} for the convert element.  If the convert element 
-	 * does not exist return the {@link TextRange} for the mapping element.
-	 */
-	TextRange getConvertTextRange();
-
-} // XmlConvertibleMapping
diff --git a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/resource/orm/XmlCopyPolicy.java b/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/resource/orm/XmlCopyPolicy.java
deleted file mode 100644
index 0da8372..0000000
--- a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/resource/orm/XmlCopyPolicy.java
+++ /dev/null
@@ -1,209 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.eclipselink.core.resource.orm;
-
-import org.eclipse.emf.common.notify.Notification;
-
-import org.eclipse.emf.ecore.EClass;
-
-import org.eclipse.emf.ecore.impl.ENotificationImpl;
-
-import org.eclipse.jpt.core.resource.xml.AbstractJpaEObject;
-import org.eclipse.jpt.core.resource.xml.JpaEObject;
-
-/**
- * <!-- begin-user-doc -->
- * A representation of the model object '<em><b>Xml Copy Policy</b></em>'.
- *  
- * Provisional API: This interface is part of an interim API that is still
- * under development and expected to change significantly before reaching
- * stability. It is available at this early stage to solicit feedback from
- * pioneering adopters on the understanding that any code that uses this API
- * will almost certainly be broken (repeatedly) as the API evolves.
- * 
- * @version 2.2
- * @since 2.2
- *
- * <!-- end-user-doc -->
- *
- * <p>
- * The following features are supported:
- * <ul>
- *   <li>{@link org.eclipse.jpt.eclipselink.core.resource.orm.XmlCopyPolicy#getClass_ <em>Class</em>}</li>
- * </ul>
- * </p>
- *
- * @see org.eclipse.jpt.eclipselink.core.resource.orm.EclipseLinkOrmPackage#getXmlCopyPolicy()
- * @model kind="class"
- * @extends JpaEObject
- * @generated
- */
-public class XmlCopyPolicy extends AbstractJpaEObject implements JpaEObject
-{
-	/**
-	 * The default value of the '{@link #getClass_() <em>Class</em>}' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see #getClass_()
-	 * @generated
-	 * @ordered
-	 */
-	protected static final String CLASS_EDEFAULT = null;
-
-	/**
-	 * The cached value of the '{@link #getClass_() <em>Class</em>}' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see #getClass_()
-	 * @generated
-	 * @ordered
-	 */
-	protected String class_ = CLASS_EDEFAULT;
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	protected XmlCopyPolicy()
-	{
-		super();
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	protected EClass eStaticClass()
-	{
-		return EclipseLinkOrmPackage.Literals.XML_COPY_POLICY;
-	}
-
-	/**
-	 * Returns the value of the '<em><b>Class</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <p>
-	 * If the meaning of the '<em>Class</em>' attribute isn't clear,
-	 * there really should be more of a description here...
-	 * </p>
-	 * <!-- end-user-doc -->
-	 * @return the value of the '<em>Class</em>' attribute.
-	 * @see #setClass(String)
-	 * @see org.eclipse.jpt.eclipselink.core.resource.orm.EclipseLinkOrmPackage#getXmlCopyPolicy_Class()
-	 * @model dataType="org.eclipse.emf.ecore.xml.type.String"
-	 * @generated
-	 */
-	public String getClass_()
-	{
-		return class_;
-	}
-
-	/**
-	 * Sets the value of the '{@link org.eclipse.jpt.eclipselink.core.resource.orm.XmlCopyPolicy#getClass_ <em>Class</em>}' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @param value the new value of the '<em>Class</em>' attribute.
-	 * @see #getClass_()
-	 * @generated
-	 */
-	public void setClass(String newClass)
-	{
-		String oldClass = class_;
-		class_ = newClass;
-		if (eNotificationRequired())
-			eNotify(new ENotificationImpl(this, Notification.SET, EclipseLinkOrmPackage.XML_COPY_POLICY__CLASS, oldClass, class_));
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public Object eGet(int featureID, boolean resolve, boolean coreType)
-	{
-		switch (featureID)
-		{
-			case EclipseLinkOrmPackage.XML_COPY_POLICY__CLASS:
-				return getClass_();
-		}
-		return super.eGet(featureID, resolve, coreType);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public void eSet(int featureID, Object newValue)
-	{
-		switch (featureID)
-		{
-			case EclipseLinkOrmPackage.XML_COPY_POLICY__CLASS:
-				setClass((String)newValue);
-				return;
-		}
-		super.eSet(featureID, newValue);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public void eUnset(int featureID)
-	{
-		switch (featureID)
-		{
-			case EclipseLinkOrmPackage.XML_COPY_POLICY__CLASS:
-				setClass(CLASS_EDEFAULT);
-				return;
-		}
-		super.eUnset(featureID);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public boolean eIsSet(int featureID)
-	{
-		switch (featureID)
-		{
-			case EclipseLinkOrmPackage.XML_COPY_POLICY__CLASS:
-				return CLASS_EDEFAULT == null ? class_ != null : !CLASS_EDEFAULT.equals(class_);
-		}
-		return super.eIsSet(featureID);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public String toString()
-	{
-		if (eIsProxy()) return super.toString();
-
-		StringBuffer result = new StringBuffer(super.toString());
-		result.append(" (class: ");
-		result.append(class_);
-		result.append(')');
-		return result.toString();
-	}
-
-} // XmlCopyPolicy
diff --git a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/resource/orm/XmlCustomizer.java b/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/resource/orm/XmlCustomizer.java
deleted file mode 100644
index 11ccadb..0000000
--- a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/resource/orm/XmlCustomizer.java
+++ /dev/null
@@ -1,213 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008, 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.eclipselink.core.resource.orm;
-
-import org.eclipse.emf.common.notify.Notification;
-import org.eclipse.emf.ecore.EClass;
-import org.eclipse.emf.ecore.impl.ENotificationImpl;
-import org.eclipse.jpt.core.internal.resource.orm.translators.OrmXmlMapper;
-import org.eclipse.jpt.core.resource.xml.AbstractJpaEObject;
-import org.eclipse.jpt.core.resource.xml.JpaEObject;
-import org.eclipse.jpt.core.utility.TextRange;
-
-/**
- * <!-- begin-user-doc -->
- * 
- * A representation of the model object '<em><b>Xml Customizer</b></em>'.
- *  
- * Provisional API: This interface is part of an interim API that is still
- * under development and expected to change significantly before reaching
- * stability. It is available at this early stage to solicit feedback from
- * pioneering adopters on the understanding that any code that uses this API
- * will almost certainly be broken (repeatedly) as the API evolves.
- * 
- * @version 2.1
- * @since 2.1
- * 
- * <!-- end-user-doc -->
- *
- * <p>
- * The following features are supported:
- * <ul>
- *   <li>{@link org.eclipse.jpt.eclipselink.core.resource.orm.XmlCustomizer#getCustomizerClassName <em>Customizer Class Name</em>}</li>
- * </ul>
- * </p>
- *
- * @see org.eclipse.jpt.eclipselink.core.resource.orm.EclipseLinkOrmPackage#getXmlCustomizer()
- * @model kind="class"
- * @extends JpaEObject
- * @generated
- */
-public class XmlCustomizer extends AbstractJpaEObject implements JpaEObject
-{
-	/**
-	 * The default value of the '{@link #getCustomizerClassName() <em>Customizer Class Name</em>}' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see #getCustomizerClassName()
-	 * @generated
-	 * @ordered
-	 */
-	protected static final String CUSTOMIZER_CLASS_NAME_EDEFAULT = null;
-
-	/**
-	 * The cached value of the '{@link #getCustomizerClassName() <em>Customizer Class Name</em>}' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see #getCustomizerClassName()
-	 * @generated
-	 * @ordered
-	 */
-	protected String customizerClassName = CUSTOMIZER_CLASS_NAME_EDEFAULT;
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	protected XmlCustomizer()
-	{
-		super();
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	protected EClass eStaticClass()
-	{
-		return EclipseLinkOrmPackage.Literals.XML_CUSTOMIZER;
-	}
-
-	/**
-	 * Returns the value of the '<em><b>Customizer Class Name</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <p>
-	 * If the meaning of the '<em>Customizer Class Name</em>' attribute isn't clear,
-	 * there really should be more of a description here...
-	 * </p>
-	 * <!-- end-user-doc -->
-	 * @return the value of the '<em>Customizer Class Name</em>' attribute.
-	 * @see #setCustomizerClassName(String)
-	 * @see org.eclipse.jpt.eclipselink.core.resource.orm.EclipseLinkOrmPackage#getXmlCustomizer_CustomizerClassName()
-	 * @model
-	 * @generated
-	 */
-	public String getCustomizerClassName()
-	{
-		return customizerClassName;
-	}
-
-	/**
-	 * Sets the value of the '{@link org.eclipse.jpt.eclipselink.core.resource.orm.XmlCustomizer#getCustomizerClassName <em>Customizer Class Name</em>}' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @param value the new value of the '<em>Customizer Class Name</em>' attribute.
-	 * @see #getCustomizerClassName()
-	 * @generated
-	 */
-	public void setCustomizerClassName(String newCustomizerClassName)
-	{
-		String oldCustomizerClassName = customizerClassName;
-		customizerClassName = newCustomizerClassName;
-		if (eNotificationRequired())
-			eNotify(new ENotificationImpl(this, Notification.SET, EclipseLinkOrmPackage.XML_CUSTOMIZER__CUSTOMIZER_CLASS_NAME, oldCustomizerClassName, customizerClassName));
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public Object eGet(int featureID, boolean resolve, boolean coreType)
-	{
-		switch (featureID)
-		{
-			case EclipseLinkOrmPackage.XML_CUSTOMIZER__CUSTOMIZER_CLASS_NAME:
-				return getCustomizerClassName();
-		}
-		return super.eGet(featureID, resolve, coreType);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public void eSet(int featureID, Object newValue)
-	{
-		switch (featureID)
-		{
-			case EclipseLinkOrmPackage.XML_CUSTOMIZER__CUSTOMIZER_CLASS_NAME:
-				setCustomizerClassName((String)newValue);
-				return;
-		}
-		super.eSet(featureID, newValue);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public void eUnset(int featureID)
-	{
-		switch (featureID)
-		{
-			case EclipseLinkOrmPackage.XML_CUSTOMIZER__CUSTOMIZER_CLASS_NAME:
-				setCustomizerClassName(CUSTOMIZER_CLASS_NAME_EDEFAULT);
-				return;
-		}
-		super.eUnset(featureID);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public boolean eIsSet(int featureID)
-	{
-		switch (featureID)
-		{
-			case EclipseLinkOrmPackage.XML_CUSTOMIZER__CUSTOMIZER_CLASS_NAME:
-				return CUSTOMIZER_CLASS_NAME_EDEFAULT == null ? customizerClassName != null : !CUSTOMIZER_CLASS_NAME_EDEFAULT.equals(customizerClassName);
-		}
-		return super.eIsSet(featureID);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public String toString()
-	{
-		if (eIsProxy()) return super.toString();
-
-		StringBuffer result = new StringBuffer(super.toString());
-		result.append(" (customizerClassName: ");
-		result.append(customizerClassName);
-		result.append(')');
-		return result.toString();
-	}
-
-	public TextRange getCustomizerClassNameTextRange() {
-		return getAttributeTextRange(OrmXmlMapper.CLASS);
-	}
-
-} // XmlCustomizer
diff --git a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/resource/orm/XmlCustomizerHolder.java b/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/resource/orm/XmlCustomizerHolder.java
deleted file mode 100644
index ca07de3..0000000
--- a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/resource/orm/XmlCustomizerHolder.java
+++ /dev/null
@@ -1,70 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008, 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.eclipselink.core.resource.orm;
-
-import org.eclipse.jpt.core.resource.xml.JpaEObject;
-
-/**
- * <!-- begin-user-doc -->
- * 
- * A representation of the model object '<em><b>Xml Customizer Holder</b></em>'.
- *  
- * Provisional API: This interface is part of an interim API that is still
- * under development and expected to change significantly before reaching
- * stability. It is available at this early stage to solicit feedback from
- * pioneering adopters on the understanding that any code that uses this API
- * will almost certainly be broken (repeatedly) as the API evolves.
- * 
- * @version 2.1
- * @since 2.1
- * 
- * <!-- end-user-doc -->
- *
- * <p>
- * The following features are supported:
- * <ul>
- *   <li>{@link org.eclipse.jpt.eclipselink.core.resource.orm.XmlCustomizerHolder#getCustomizer <em>Customizer</em>}</li>
- * </ul>
- * </p>
- *
- * @see org.eclipse.jpt.eclipselink.core.resource.orm.EclipseLinkOrmPackage#getXmlCustomizerHolder()
- * @model kind="class" interface="true" abstract="true"
- * @extends JpaEObject
- * @generated
- */
-public interface XmlCustomizerHolder extends JpaEObject
-{
-	/**
-	 * Returns the value of the '<em><b>Customizer</b></em>' containment reference.
-	 * <!-- begin-user-doc -->
-	 * <p>
-	 * If the meaning of the '<em>Customizer</em>' containment reference isn't clear,
-	 * there really should be more of a description here...
-	 * </p>
-	 * <!-- end-user-doc -->
-	 * @return the value of the '<em>Customizer</em>' containment reference.
-	 * @see #setCustomizer(XmlCustomizer)
-	 * @see org.eclipse.jpt.eclipselink.core.resource.orm.EclipseLinkOrmPackage#getXmlCustomizerHolder_Customizer()
-	 * @model containment="true"
-	 * @generated
-	 */
-	XmlCustomizer getCustomizer();
-
-	/**
-	 * Sets the value of the '{@link org.eclipse.jpt.eclipselink.core.resource.orm.XmlCustomizerHolder#getCustomizer <em>Customizer</em>}' containment reference.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @param value the new value of the '<em>Customizer</em>' containment reference.
-	 * @see #getCustomizer()
-	 * @generated
-	 */
-	void setCustomizer(XmlCustomizer value);
-
-} // XmlCustomizerHolder
diff --git a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/resource/orm/XmlDirection.java b/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/resource/orm/XmlDirection.java
deleted file mode 100644
index 5dba109..0000000
--- a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/resource/orm/XmlDirection.java
+++ /dev/null
@@ -1,294 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.eclipselink.core.resource.orm;
-
-import java.util.Arrays;
-import java.util.Collections;
-import java.util.List;
-
-import org.eclipse.emf.common.util.Enumerator;
-
-/**
- * <!-- begin-user-doc -->
- * A representation of the literals of the enumeration '<em><b>Xml Direction</b></em>',
- * and utility methods for working with them.
- *  
- * Provisional API: This interface is part of an interim API that is still
- * under development and expected to change significantly before reaching
- * stability. It is available at this early stage to solicit feedback from
- * pioneering adopters on the understanding that any code that uses this API
- * will almost certainly be broken (repeatedly) as the API evolves.
- * 
- * @version 2.2
- * @since 2.2
- *
- * <!-- end-user-doc -->
- * @see org.eclipse.jpt.eclipselink.core.resource.orm.EclipseLinkOrmPackage#getXmlDirection()
- * @model
- * @generated
- */
-public enum XmlDirection implements Enumerator
-{
-	/**
-	 * The '<em><b>IN</b></em>' literal object.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see #IN_VALUE
-	 * @generated
-	 * @ordered
-	 */
-	IN(0, "IN", "IN"),
-
-	/**
-	 * The '<em><b>OUT</b></em>' literal object.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see #OUT_VALUE
-	 * @generated
-	 * @ordered
-	 */
-	OUT(1, "OUT", "OUT"),
-
-	/**
-	 * The '<em><b>IN OUT</b></em>' literal object.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see #IN_OUT_VALUE
-	 * @generated
-	 * @ordered
-	 */
-	IN_OUT(2, "IN_OUT", "IN_OUT"),
-
-	/**
-	 * The '<em><b>OUT CURSOR</b></em>' literal object.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see #OUT_CURSOR_VALUE
-	 * @generated
-	 * @ordered
-	 */
-	OUT_CURSOR(3, "OUT_CURSOR", "OUT_CURSOR");
-
-	/**
-	 * The '<em><b>IN</b></em>' literal value.
-	 * <!-- begin-user-doc -->
-	 * <p>
-	 * If the meaning of '<em><b>IN</b></em>' literal object isn't clear,
-	 * there really should be more of a description here...
-	 * </p>
-	 * <!-- end-user-doc -->
-	 * @see #IN
-	 * @model
-	 * @generated
-	 * @ordered
-	 */
-	public static final int IN_VALUE = 0;
-
-	/**
-	 * The '<em><b>OUT</b></em>' literal value.
-	 * <!-- begin-user-doc -->
-	 * <p>
-	 * If the meaning of '<em><b>OUT</b></em>' literal object isn't clear,
-	 * there really should be more of a description here...
-	 * </p>
-	 * <!-- end-user-doc -->
-	 * @see #OUT
-	 * @model
-	 * @generated
-	 * @ordered
-	 */
-	public static final int OUT_VALUE = 1;
-
-	/**
-	 * The '<em><b>IN OUT</b></em>' literal value.
-	 * <!-- begin-user-doc -->
-	 * <p>
-	 * If the meaning of '<em><b>IN OUT</b></em>' literal object isn't clear,
-	 * there really should be more of a description here...
-	 * </p>
-	 * <!-- end-user-doc -->
-	 * @see #IN_OUT
-	 * @model
-	 * @generated
-	 * @ordered
-	 */
-	public static final int IN_OUT_VALUE = 2;
-
-	/**
-	 * The '<em><b>OUT CURSOR</b></em>' literal value.
-	 * <!-- begin-user-doc -->
-	 * <p>
-	 * If the meaning of '<em><b>OUT CURSOR</b></em>' literal object isn't clear,
-	 * there really should be more of a description here...
-	 * </p>
-	 * <!-- end-user-doc -->
-	 * @see #OUT_CURSOR
-	 * @model
-	 * @generated
-	 * @ordered
-	 */
-	public static final int OUT_CURSOR_VALUE = 3;
-
-	/**
-	 * An array of all the '<em><b>Xml Direction</b></em>' enumerators.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	private static final XmlDirection[] VALUES_ARRAY =
-		new XmlDirection[]
-		{
-			IN,
-			OUT,
-			IN_OUT,
-			OUT_CURSOR,
-		};
-
-	/**
-	 * A public read-only list of all the '<em><b>Xml Direction</b></em>' enumerators.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public static final List<XmlDirection> VALUES = Collections.unmodifiableList(Arrays.asList(VALUES_ARRAY));
-
-	/**
-	 * Returns the '<em><b>Xml Direction</b></em>' literal with the specified literal value.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public static XmlDirection get(String literal)
-	{
-		for (int i = 0; i < VALUES_ARRAY.length; ++i)
-		{
-			XmlDirection result = VALUES_ARRAY[i];
-			if (result.toString().equals(literal))
-			{
-				return result;
-			}
-		}
-		return null;
-	}
-
-	/**
-	 * Returns the '<em><b>Xml Direction</b></em>' literal with the specified name.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public static XmlDirection getByName(String name)
-	{
-		for (int i = 0; i < VALUES_ARRAY.length; ++i)
-		{
-			XmlDirection result = VALUES_ARRAY[i];
-			if (result.getName().equals(name))
-			{
-				return result;
-			}
-		}
-		return null;
-	}
-
-	/**
-	 * Returns the '<em><b>Xml Direction</b></em>' literal with the specified integer value.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public static XmlDirection get(int value)
-	{
-		switch (value)
-		{
-			case IN_VALUE: return IN;
-			case OUT_VALUE: return OUT;
-			case IN_OUT_VALUE: return IN_OUT;
-			case OUT_CURSOR_VALUE: return OUT_CURSOR;
-		}
-		return null;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	private final int value;
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	private final String name;
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	private final String literal;
-
-	/**
-	 * Only this class can construct instances.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	private XmlDirection(int value, String name, String literal)
-	{
-		this.value = value;
-		this.name = name;
-		this.literal = literal;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public int getValue()
-	{
-	  return value;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public String getName()
-	{
-	  return name;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public String getLiteral()
-	{
-	  return literal;
-	}
-
-	/**
-	 * Returns the literal value of the enumerator, which is its string representation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public String toString()
-	{
-		return literal;
-	}
-	
-} //XmlDirection
diff --git a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/resource/orm/XmlEmbeddable.java b/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/resource/orm/XmlEmbeddable.java
deleted file mode 100644
index 9d1e62f..0000000
--- a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/resource/orm/XmlEmbeddable.java
+++ /dev/null
@@ -1,945 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008, 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.eclipselink.core.resource.orm;
-
-import java.util.Collection;
-import org.eclipse.emf.common.notify.Notification;
-import org.eclipse.emf.common.notify.NotificationChain;
-import org.eclipse.emf.common.util.EList;
-import org.eclipse.emf.ecore.EClass;
-import org.eclipse.emf.ecore.InternalEObject;
-import org.eclipse.emf.ecore.impl.ENotificationImpl;
-import org.eclipse.emf.ecore.util.EObjectContainmentEList;
-import org.eclipse.emf.ecore.util.InternalEList;
-
-/**
- * <!-- begin-user-doc -->
- * 
- * A representation of the model object '<em><b>Xml Embeddable</b></em>'.
- *  
- * Provisional API: This interface is part of an interim API that is still
- * under development and expected to change significantly before reaching
- * stability. It is available at this early stage to solicit feedback from
- * pioneering adopters on the understanding that any code that uses this API
- * will almost certainly be broken (repeatedly) as the API evolves.
- * 
- * @version 2.1
- * @since 2.1
- * 
- * <!-- end-user-doc -->
- *
- * <p>
- * The following features are supported:
- * <ul>
- *   <li>{@link org.eclipse.jpt.eclipselink.core.resource.orm.XmlEmbeddable#getCopyPolicy <em>Copy Policy</em>}</li>
- *   <li>{@link org.eclipse.jpt.eclipselink.core.resource.orm.XmlEmbeddable#getInstantiationCopyPolicy <em>Instantiation Copy Policy</em>}</li>
- *   <li>{@link org.eclipse.jpt.eclipselink.core.resource.orm.XmlEmbeddable#getCloneCopyPolicy <em>Clone Copy Policy</em>}</li>
- *   <li>{@link org.eclipse.jpt.eclipselink.core.resource.orm.XmlEmbeddable#getProperties <em>Properties</em>}</li>
- *   <li>{@link org.eclipse.jpt.eclipselink.core.resource.orm.XmlEmbeddable#getExcludeDefaultMappings <em>Exclude Default Mappings</em>}</li>
- * </ul>
- * </p>
- *
- * @see org.eclipse.jpt.eclipselink.core.resource.orm.EclipseLinkOrmPackage#getXmlEmbeddable()
- * @model kind="class"
- * @generated
- */
-public class XmlEmbeddable extends org.eclipse.jpt.core.resource.orm.XmlEmbeddable implements XmlCustomizerHolder, XmlChangeTrackingHolder, XmlConvertersHolder
-{
-	/**
-	 * The cached value of the '{@link #getCustomizer() <em>Customizer</em>}' containment reference.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see #getCustomizer()
-	 * @generated
-	 * @ordered
-	 */
-	protected XmlCustomizer customizer;
-
-	/**
-	 * The cached value of the '{@link #getChangeTracking() <em>Change Tracking</em>}' containment reference.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see #getChangeTracking()
-	 * @generated
-	 * @ordered
-	 */
-	protected XmlChangeTracking changeTracking;
-
-	/**
-	 * The cached value of the '{@link #getConverters() <em>Converters</em>}' containment reference list.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see #getConverters()
-	 * @generated
-	 * @ordered
-	 */
-	protected EList<XmlConverter> converters;
-
-	/**
-	 * The cached value of the '{@link #getTypeConverters() <em>Type Converters</em>}' containment reference list.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see #getTypeConverters()
-	 * @generated
-	 * @ordered
-	 */
-	protected EList<XmlTypeConverter> typeConverters;
-
-	/**
-	 * The cached value of the '{@link #getObjectTypeConverters() <em>Object Type Converters</em>}' containment reference list.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see #getObjectTypeConverters()
-	 * @generated
-	 * @ordered
-	 */
-	protected EList<XmlObjectTypeConverter> objectTypeConverters;
-
-	/**
-	 * The cached value of the '{@link #getStructConverters() <em>Struct Converters</em>}' containment reference list.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see #getStructConverters()
-	 * @generated
-	 * @ordered
-	 */
-	protected EList<XmlStructConverter> structConverters;
-
-	/**
-	 * The cached value of the '{@link #getCopyPolicy() <em>Copy Policy</em>}' containment reference.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see #getCopyPolicy()
-	 * @generated
-	 * @ordered
-	 */
-	protected XmlCopyPolicy copyPolicy;
-
-	/**
-	 * The cached value of the '{@link #getInstantiationCopyPolicy() <em>Instantiation Copy Policy</em>}' containment reference.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see #getInstantiationCopyPolicy()
-	 * @generated
-	 * @ordered
-	 */
-	protected XmlCopyPolicy instantiationCopyPolicy;
-
-	/**
-	 * The cached value of the '{@link #getCloneCopyPolicy() <em>Clone Copy Policy</em>}' containment reference.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see #getCloneCopyPolicy()
-	 * @generated
-	 * @ordered
-	 */
-	protected XmlCopyPolicy cloneCopyPolicy;
-
-	/**
-	 * The cached value of the '{@link #getProperties() <em>Properties</em>}' containment reference list.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see #getProperties()
-	 * @generated
-	 * @ordered
-	 */
-	protected EList<XmlProperty> properties;
-
-	/**
-	 * The default value of the '{@link #getExcludeDefaultMappings() <em>Exclude Default Mappings</em>}' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see #getExcludeDefaultMappings()
-	 * @generated
-	 * @ordered
-	 */
-	protected static final Boolean EXCLUDE_DEFAULT_MAPPINGS_EDEFAULT = null;
-
-	/**
-	 * The cached value of the '{@link #getExcludeDefaultMappings() <em>Exclude Default Mappings</em>}' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see #getExcludeDefaultMappings()
-	 * @generated
-	 * @ordered
-	 */
-	protected Boolean excludeDefaultMappings = EXCLUDE_DEFAULT_MAPPINGS_EDEFAULT;
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	protected XmlEmbeddable()
-	{
-		super();
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	protected EClass eStaticClass()
-	{
-		return EclipseLinkOrmPackage.Literals.XML_EMBEDDABLE;
-	}
-
-	/**
-	 * Returns the value of the '<em><b>Customizer</b></em>' containment reference.
-	 * <!-- begin-user-doc -->
-	 * <p>
-	 * If the meaning of the '<em>Customizer</em>' containment reference isn't clear,
-	 * there really should be more of a description here...
-	 * </p>
-	 * <!-- end-user-doc -->
-	 * @return the value of the '<em>Customizer</em>' containment reference.
-	 * @see #setCustomizer(XmlCustomizer)
-	 * @see org.eclipse.jpt.eclipselink.core.resource.orm.EclipseLinkOrmPackage#getXmlCustomizerHolder_Customizer()
-	 * @model containment="true"
-	 * @generated
-	 */
-	public XmlCustomizer getCustomizer()
-	{
-		return customizer;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public NotificationChain basicSetCustomizer(XmlCustomizer newCustomizer, NotificationChain msgs)
-	{
-		XmlCustomizer oldCustomizer = customizer;
-		customizer = newCustomizer;
-		if (eNotificationRequired())
-		{
-			ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, EclipseLinkOrmPackage.XML_EMBEDDABLE__CUSTOMIZER, oldCustomizer, newCustomizer);
-			if (msgs == null) msgs = notification; else msgs.add(notification);
-		}
-		return msgs;
-	}
-
-	/**
-	 * Sets the value of the '{@link org.eclipse.jpt.eclipselink.core.resource.orm.XmlEmbeddable#getCustomizer <em>Customizer</em>}' containment reference.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @param value the new value of the '<em>Customizer</em>' containment reference.
-	 * @see #getCustomizer()
-	 * @generated
-	 */
-	public void setCustomizer(XmlCustomizer newCustomizer)
-	{
-		if (newCustomizer != customizer)
-		{
-			NotificationChain msgs = null;
-			if (customizer != null)
-				msgs = ((InternalEObject)customizer).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - EclipseLinkOrmPackage.XML_EMBEDDABLE__CUSTOMIZER, null, msgs);
-			if (newCustomizer != null)
-				msgs = ((InternalEObject)newCustomizer).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - EclipseLinkOrmPackage.XML_EMBEDDABLE__CUSTOMIZER, null, msgs);
-			msgs = basicSetCustomizer(newCustomizer, msgs);
-			if (msgs != null) msgs.dispatch();
-		}
-		else if (eNotificationRequired())
-			eNotify(new ENotificationImpl(this, Notification.SET, EclipseLinkOrmPackage.XML_EMBEDDABLE__CUSTOMIZER, newCustomizer, newCustomizer));
-	}
-
-	/**
-	 * Returns the value of the '<em><b>Change Tracking</b></em>' containment reference.
-	 * <!-- begin-user-doc -->
-	 * <p>
-	 * If the meaning of the '<em>Change Tracking</em>' containment reference isn't clear,
-	 * there really should be more of a description here...
-	 * </p>
-	 * <!-- end-user-doc -->
-	 * @return the value of the '<em>Change Tracking</em>' containment reference.
-	 * @see #setChangeTracking(XmlChangeTracking)
-	 * @see org.eclipse.jpt.eclipselink.core.resource.orm.EclipseLinkOrmPackage#getXmlChangeTrackingHolder_ChangeTracking()
-	 * @model containment="true"
-	 * @generated
-	 */
-	public XmlChangeTracking getChangeTracking()
-	{
-		return changeTracking;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public NotificationChain basicSetChangeTracking(XmlChangeTracking newChangeTracking, NotificationChain msgs)
-	{
-		XmlChangeTracking oldChangeTracking = changeTracking;
-		changeTracking = newChangeTracking;
-		if (eNotificationRequired())
-		{
-			ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, EclipseLinkOrmPackage.XML_EMBEDDABLE__CHANGE_TRACKING, oldChangeTracking, newChangeTracking);
-			if (msgs == null) msgs = notification; else msgs.add(notification);
-		}
-		return msgs;
-	}
-
-	/**
-	 * Sets the value of the '{@link org.eclipse.jpt.eclipselink.core.resource.orm.XmlEmbeddable#getChangeTracking <em>Change Tracking</em>}' containment reference.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @param value the new value of the '<em>Change Tracking</em>' containment reference.
-	 * @see #getChangeTracking()
-	 * @generated
-	 */
-	public void setChangeTracking(XmlChangeTracking newChangeTracking)
-	{
-		if (newChangeTracking != changeTracking)
-		{
-			NotificationChain msgs = null;
-			if (changeTracking != null)
-				msgs = ((InternalEObject)changeTracking).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - EclipseLinkOrmPackage.XML_EMBEDDABLE__CHANGE_TRACKING, null, msgs);
-			if (newChangeTracking != null)
-				msgs = ((InternalEObject)newChangeTracking).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - EclipseLinkOrmPackage.XML_EMBEDDABLE__CHANGE_TRACKING, null, msgs);
-			msgs = basicSetChangeTracking(newChangeTracking, msgs);
-			if (msgs != null) msgs.dispatch();
-		}
-		else if (eNotificationRequired())
-			eNotify(new ENotificationImpl(this, Notification.SET, EclipseLinkOrmPackage.XML_EMBEDDABLE__CHANGE_TRACKING, newChangeTracking, newChangeTracking));
-	}
-
-	/**
-	 * Returns the value of the '<em><b>Converters</b></em>' containment reference list.
-	 * The list contents are of type {@link org.eclipse.jpt.eclipselink.core.resource.orm.XmlConverter}.
-	 * <!-- begin-user-doc -->
-	 * <p>
-	 * If the meaning of the '<em>Converters</em>' containment reference list isn't clear,
-	 * there really should be more of a description here...
-	 * </p>
-	 * <!-- end-user-doc -->
-	 * @return the value of the '<em>Converters</em>' containment reference list.
-	 * @see org.eclipse.jpt.eclipselink.core.resource.orm.EclipseLinkOrmPackage#getXmlConvertersHolder_Converters()
-	 * @model containment="true"
-	 * @generated
-	 */
-	public EList<XmlConverter> getConverters()
-	{
-		if (converters == null)
-		{
-			converters = new EObjectContainmentEList<XmlConverter>(XmlConverter.class, this, EclipseLinkOrmPackage.XML_EMBEDDABLE__CONVERTERS);
-		}
-		return converters;
-	}
-
-	/**
-	 * Returns the value of the '<em><b>Type Converters</b></em>' containment reference list.
-	 * The list contents are of type {@link org.eclipse.jpt.eclipselink.core.resource.orm.XmlTypeConverter}.
-	 * <!-- begin-user-doc -->
-	 * <p>
-	 * If the meaning of the '<em>Type Converters</em>' containment reference list isn't clear,
-	 * there really should be more of a description here...
-	 * </p>
-	 * <!-- end-user-doc -->
-	 * @return the value of the '<em>Type Converters</em>' containment reference list.
-	 * @see org.eclipse.jpt.eclipselink.core.resource.orm.EclipseLinkOrmPackage#getXmlConvertersHolder_TypeConverters()
-	 * @model containment="true"
-	 * @generated
-	 */
-	public EList<XmlTypeConverter> getTypeConverters()
-	{
-		if (typeConverters == null)
-		{
-			typeConverters = new EObjectContainmentEList<XmlTypeConverter>(XmlTypeConverter.class, this, EclipseLinkOrmPackage.XML_EMBEDDABLE__TYPE_CONVERTERS);
-		}
-		return typeConverters;
-	}
-
-	/**
-	 * Returns the value of the '<em><b>Object Type Converters</b></em>' containment reference list.
-	 * The list contents are of type {@link org.eclipse.jpt.eclipselink.core.resource.orm.XmlObjectTypeConverter}.
-	 * <!-- begin-user-doc -->
-	 * <p>
-	 * If the meaning of the '<em>Object Type Converters</em>' containment reference list isn't clear,
-	 * there really should be more of a description here...
-	 * </p>
-	 * <!-- end-user-doc -->
-	 * @return the value of the '<em>Object Type Converters</em>' containment reference list.
-	 * @see org.eclipse.jpt.eclipselink.core.resource.orm.EclipseLinkOrmPackage#getXmlConvertersHolder_ObjectTypeConverters()
-	 * @model containment="true"
-	 * @generated
-	 */
-	public EList<XmlObjectTypeConverter> getObjectTypeConverters()
-	{
-		if (objectTypeConverters == null)
-		{
-			objectTypeConverters = new EObjectContainmentEList<XmlObjectTypeConverter>(XmlObjectTypeConverter.class, this, EclipseLinkOrmPackage.XML_EMBEDDABLE__OBJECT_TYPE_CONVERTERS);
-		}
-		return objectTypeConverters;
-	}
-
-	/**
-	 * Returns the value of the '<em><b>Struct Converters</b></em>' containment reference list.
-	 * The list contents are of type {@link org.eclipse.jpt.eclipselink.core.resource.orm.XmlStructConverter}.
-	 * <!-- begin-user-doc -->
-	 * <p>
-	 * If the meaning of the '<em>Struct Converters</em>' containment reference list isn't clear,
-	 * there really should be more of a description here...
-	 * </p>
-	 * <!-- end-user-doc -->
-	 * @return the value of the '<em>Struct Converters</em>' containment reference list.
-	 * @see org.eclipse.jpt.eclipselink.core.resource.orm.EclipseLinkOrmPackage#getXmlConvertersHolder_StructConverters()
-	 * @model containment="true"
-	 * @generated
-	 */
-	public EList<XmlStructConverter> getStructConverters()
-	{
-		if (structConverters == null)
-		{
-			structConverters = new EObjectContainmentEList<XmlStructConverter>(XmlStructConverter.class, this, EclipseLinkOrmPackage.XML_EMBEDDABLE__STRUCT_CONVERTERS);
-		}
-		return structConverters;
-	}
-
-	/**
-	 * Returns the value of the '<em><b>Copy Policy</b></em>' containment reference.
-	 * <!-- begin-user-doc -->
-	 * <p>
-	 * If the meaning of the '<em>Copy Policy</em>' containment reference isn't clear,
-	 * there really should be more of a description here...
-	 * </p>
-	 * <!-- end-user-doc -->
-	 * @return the value of the '<em>Copy Policy</em>' containment reference.
-	 * @see #setCopyPolicy(XmlCopyPolicy)
-	 * @see org.eclipse.jpt.eclipselink.core.resource.orm.EclipseLinkOrmPackage#getXmlEmbeddable_CopyPolicy()
-	 * @model containment="true"
-	 * @generated
-	 */
-	public XmlCopyPolicy getCopyPolicy()
-	{
-		return copyPolicy;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public NotificationChain basicSetCopyPolicy(XmlCopyPolicy newCopyPolicy, NotificationChain msgs)
-	{
-		XmlCopyPolicy oldCopyPolicy = copyPolicy;
-		copyPolicy = newCopyPolicy;
-		if (eNotificationRequired())
-		{
-			ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, EclipseLinkOrmPackage.XML_EMBEDDABLE__COPY_POLICY, oldCopyPolicy, newCopyPolicy);
-			if (msgs == null) msgs = notification; else msgs.add(notification);
-		}
-		return msgs;
-	}
-
-	/**
-	 * Sets the value of the '{@link org.eclipse.jpt.eclipselink.core.resource.orm.XmlEmbeddable#getCopyPolicy <em>Copy Policy</em>}' containment reference.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @param value the new value of the '<em>Copy Policy</em>' containment reference.
-	 * @see #getCopyPolicy()
-	 * @generated
-	 */
-	public void setCopyPolicy(XmlCopyPolicy newCopyPolicy)
-	{
-		if (newCopyPolicy != copyPolicy)
-		{
-			NotificationChain msgs = null;
-			if (copyPolicy != null)
-				msgs = ((InternalEObject)copyPolicy).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - EclipseLinkOrmPackage.XML_EMBEDDABLE__COPY_POLICY, null, msgs);
-			if (newCopyPolicy != null)
-				msgs = ((InternalEObject)newCopyPolicy).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - EclipseLinkOrmPackage.XML_EMBEDDABLE__COPY_POLICY, null, msgs);
-			msgs = basicSetCopyPolicy(newCopyPolicy, msgs);
-			if (msgs != null) msgs.dispatch();
-		}
-		else if (eNotificationRequired())
-			eNotify(new ENotificationImpl(this, Notification.SET, EclipseLinkOrmPackage.XML_EMBEDDABLE__COPY_POLICY, newCopyPolicy, newCopyPolicy));
-	}
-
-	/**
-	 * Returns the value of the '<em><b>Instantiation Copy Policy</b></em>' containment reference.
-	 * <!-- begin-user-doc -->
-	 * <p>
-	 * If the meaning of the '<em>Instantiation Copy Policy</em>' containment reference isn't clear,
-	 * there really should be more of a description here...
-	 * </p>
-	 * <!-- end-user-doc -->
-	 * @return the value of the '<em>Instantiation Copy Policy</em>' containment reference.
-	 * @see #setInstantiationCopyPolicy(XmlCopyPolicy)
-	 * @see org.eclipse.jpt.eclipselink.core.resource.orm.EclipseLinkOrmPackage#getXmlEmbeddable_InstantiationCopyPolicy()
-	 * @model containment="true"
-	 * @generated
-	 */
-	public XmlCopyPolicy getInstantiationCopyPolicy()
-	{
-		return instantiationCopyPolicy;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public NotificationChain basicSetInstantiationCopyPolicy(XmlCopyPolicy newInstantiationCopyPolicy, NotificationChain msgs)
-	{
-		XmlCopyPolicy oldInstantiationCopyPolicy = instantiationCopyPolicy;
-		instantiationCopyPolicy = newInstantiationCopyPolicy;
-		if (eNotificationRequired())
-		{
-			ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, EclipseLinkOrmPackage.XML_EMBEDDABLE__INSTANTIATION_COPY_POLICY, oldInstantiationCopyPolicy, newInstantiationCopyPolicy);
-			if (msgs == null) msgs = notification; else msgs.add(notification);
-		}
-		return msgs;
-	}
-
-	/**
-	 * Sets the value of the '{@link org.eclipse.jpt.eclipselink.core.resource.orm.XmlEmbeddable#getInstantiationCopyPolicy <em>Instantiation Copy Policy</em>}' containment reference.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @param value the new value of the '<em>Instantiation Copy Policy</em>' containment reference.
-	 * @see #getInstantiationCopyPolicy()
-	 * @generated
-	 */
-	public void setInstantiationCopyPolicy(XmlCopyPolicy newInstantiationCopyPolicy)
-	{
-		if (newInstantiationCopyPolicy != instantiationCopyPolicy)
-		{
-			NotificationChain msgs = null;
-			if (instantiationCopyPolicy != null)
-				msgs = ((InternalEObject)instantiationCopyPolicy).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - EclipseLinkOrmPackage.XML_EMBEDDABLE__INSTANTIATION_COPY_POLICY, null, msgs);
-			if (newInstantiationCopyPolicy != null)
-				msgs = ((InternalEObject)newInstantiationCopyPolicy).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - EclipseLinkOrmPackage.XML_EMBEDDABLE__INSTANTIATION_COPY_POLICY, null, msgs);
-			msgs = basicSetInstantiationCopyPolicy(newInstantiationCopyPolicy, msgs);
-			if (msgs != null) msgs.dispatch();
-		}
-		else if (eNotificationRequired())
-			eNotify(new ENotificationImpl(this, Notification.SET, EclipseLinkOrmPackage.XML_EMBEDDABLE__INSTANTIATION_COPY_POLICY, newInstantiationCopyPolicy, newInstantiationCopyPolicy));
-	}
-
-	/**
-	 * Returns the value of the '<em><b>Clone Copy Policy</b></em>' containment reference.
-	 * <!-- begin-user-doc -->
-	 * <p>
-	 * If the meaning of the '<em>Clone Copy Policy</em>' containment reference isn't clear,
-	 * there really should be more of a description here...
-	 * </p>
-	 * <!-- end-user-doc -->
-	 * @return the value of the '<em>Clone Copy Policy</em>' containment reference.
-	 * @see #setCloneCopyPolicy(XmlCopyPolicy)
-	 * @see org.eclipse.jpt.eclipselink.core.resource.orm.EclipseLinkOrmPackage#getXmlEmbeddable_CloneCopyPolicy()
-	 * @model containment="true"
-	 * @generated
-	 */
-	public XmlCopyPolicy getCloneCopyPolicy()
-	{
-		return cloneCopyPolicy;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public NotificationChain basicSetCloneCopyPolicy(XmlCopyPolicy newCloneCopyPolicy, NotificationChain msgs)
-	{
-		XmlCopyPolicy oldCloneCopyPolicy = cloneCopyPolicy;
-		cloneCopyPolicy = newCloneCopyPolicy;
-		if (eNotificationRequired())
-		{
-			ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, EclipseLinkOrmPackage.XML_EMBEDDABLE__CLONE_COPY_POLICY, oldCloneCopyPolicy, newCloneCopyPolicy);
-			if (msgs == null) msgs = notification; else msgs.add(notification);
-		}
-		return msgs;
-	}
-
-	/**
-	 * Sets the value of the '{@link org.eclipse.jpt.eclipselink.core.resource.orm.XmlEmbeddable#getCloneCopyPolicy <em>Clone Copy Policy</em>}' containment reference.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @param value the new value of the '<em>Clone Copy Policy</em>' containment reference.
-	 * @see #getCloneCopyPolicy()
-	 * @generated
-	 */
-	public void setCloneCopyPolicy(XmlCopyPolicy newCloneCopyPolicy)
-	{
-		if (newCloneCopyPolicy != cloneCopyPolicy)
-		{
-			NotificationChain msgs = null;
-			if (cloneCopyPolicy != null)
-				msgs = ((InternalEObject)cloneCopyPolicy).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - EclipseLinkOrmPackage.XML_EMBEDDABLE__CLONE_COPY_POLICY, null, msgs);
-			if (newCloneCopyPolicy != null)
-				msgs = ((InternalEObject)newCloneCopyPolicy).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - EclipseLinkOrmPackage.XML_EMBEDDABLE__CLONE_COPY_POLICY, null, msgs);
-			msgs = basicSetCloneCopyPolicy(newCloneCopyPolicy, msgs);
-			if (msgs != null) msgs.dispatch();
-		}
-		else if (eNotificationRequired())
-			eNotify(new ENotificationImpl(this, Notification.SET, EclipseLinkOrmPackage.XML_EMBEDDABLE__CLONE_COPY_POLICY, newCloneCopyPolicy, newCloneCopyPolicy));
-	}
-
-	/**
-	 * Returns the value of the '<em><b>Properties</b></em>' containment reference list.
-	 * The list contents are of type {@link org.eclipse.jpt.eclipselink.core.resource.orm.XmlProperty}.
-	 * <!-- begin-user-doc -->
-	 * <p>
-	 * If the meaning of the '<em>Properties</em>' containment reference list isn't clear,
-	 * there really should be more of a description here...
-	 * </p>
-	 * <!-- end-user-doc -->
-	 * @return the value of the '<em>Properties</em>' containment reference list.
-	 * @see org.eclipse.jpt.eclipselink.core.resource.orm.EclipseLinkOrmPackage#getXmlEmbeddable_Properties()
-	 * @model containment="true"
-	 * @generated
-	 */
-	public EList<XmlProperty> getProperties()
-	{
-		if (properties == null)
-		{
-			properties = new EObjectContainmentEList<XmlProperty>(XmlProperty.class, this, EclipseLinkOrmPackage.XML_EMBEDDABLE__PROPERTIES);
-		}
-		return properties;
-	}
-
-	/**
-	 * Returns the value of the '<em><b>Exclude Default Mappings</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <p>
-	 * If the meaning of the '<em>Exclude Default Mappings</em>' attribute isn't clear,
-	 * there really should be more of a description here...
-	 * </p>
-	 * <!-- end-user-doc -->
-	 * @return the value of the '<em>Exclude Default Mappings</em>' attribute.
-	 * @see #setExcludeDefaultMappings(Boolean)
-	 * @see org.eclipse.jpt.eclipselink.core.resource.orm.EclipseLinkOrmPackage#getXmlEmbeddable_ExcludeDefaultMappings()
-	 * @model dataType="org.eclipse.emf.ecore.xml.type.BooleanObject"
-	 * @generated
-	 */
-	public Boolean getExcludeDefaultMappings()
-	{
-		return excludeDefaultMappings;
-	}
-
-	/**
-	 * Sets the value of the '{@link org.eclipse.jpt.eclipselink.core.resource.orm.XmlEmbeddable#getExcludeDefaultMappings <em>Exclude Default Mappings</em>}' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @param value the new value of the '<em>Exclude Default Mappings</em>' attribute.
-	 * @see #getExcludeDefaultMappings()
-	 * @generated
-	 */
-	public void setExcludeDefaultMappings(Boolean newExcludeDefaultMappings)
-	{
-		Boolean oldExcludeDefaultMappings = excludeDefaultMappings;
-		excludeDefaultMappings = newExcludeDefaultMappings;
-		if (eNotificationRequired())
-			eNotify(new ENotificationImpl(this, Notification.SET, EclipseLinkOrmPackage.XML_EMBEDDABLE__EXCLUDE_DEFAULT_MAPPINGS, oldExcludeDefaultMappings, excludeDefaultMappings));
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs)
-	{
-		switch (featureID)
-		{
-			case EclipseLinkOrmPackage.XML_EMBEDDABLE__CUSTOMIZER:
-				return basicSetCustomizer(null, msgs);
-			case EclipseLinkOrmPackage.XML_EMBEDDABLE__CHANGE_TRACKING:
-				return basicSetChangeTracking(null, msgs);
-			case EclipseLinkOrmPackage.XML_EMBEDDABLE__CONVERTERS:
-				return ((InternalEList<?>)getConverters()).basicRemove(otherEnd, msgs);
-			case EclipseLinkOrmPackage.XML_EMBEDDABLE__TYPE_CONVERTERS:
-				return ((InternalEList<?>)getTypeConverters()).basicRemove(otherEnd, msgs);
-			case EclipseLinkOrmPackage.XML_EMBEDDABLE__OBJECT_TYPE_CONVERTERS:
-				return ((InternalEList<?>)getObjectTypeConverters()).basicRemove(otherEnd, msgs);
-			case EclipseLinkOrmPackage.XML_EMBEDDABLE__STRUCT_CONVERTERS:
-				return ((InternalEList<?>)getStructConverters()).basicRemove(otherEnd, msgs);
-			case EclipseLinkOrmPackage.XML_EMBEDDABLE__COPY_POLICY:
-				return basicSetCopyPolicy(null, msgs);
-			case EclipseLinkOrmPackage.XML_EMBEDDABLE__INSTANTIATION_COPY_POLICY:
-				return basicSetInstantiationCopyPolicy(null, msgs);
-			case EclipseLinkOrmPackage.XML_EMBEDDABLE__CLONE_COPY_POLICY:
-				return basicSetCloneCopyPolicy(null, msgs);
-			case EclipseLinkOrmPackage.XML_EMBEDDABLE__PROPERTIES:
-				return ((InternalEList<?>)getProperties()).basicRemove(otherEnd, msgs);
-		}
-		return super.eInverseRemove(otherEnd, featureID, msgs);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public Object eGet(int featureID, boolean resolve, boolean coreType)
-	{
-		switch (featureID)
-		{
-			case EclipseLinkOrmPackage.XML_EMBEDDABLE__CUSTOMIZER:
-				return getCustomizer();
-			case EclipseLinkOrmPackage.XML_EMBEDDABLE__CHANGE_TRACKING:
-				return getChangeTracking();
-			case EclipseLinkOrmPackage.XML_EMBEDDABLE__CONVERTERS:
-				return getConverters();
-			case EclipseLinkOrmPackage.XML_EMBEDDABLE__TYPE_CONVERTERS:
-				return getTypeConverters();
-			case EclipseLinkOrmPackage.XML_EMBEDDABLE__OBJECT_TYPE_CONVERTERS:
-				return getObjectTypeConverters();
-			case EclipseLinkOrmPackage.XML_EMBEDDABLE__STRUCT_CONVERTERS:
-				return getStructConverters();
-			case EclipseLinkOrmPackage.XML_EMBEDDABLE__COPY_POLICY:
-				return getCopyPolicy();
-			case EclipseLinkOrmPackage.XML_EMBEDDABLE__INSTANTIATION_COPY_POLICY:
-				return getInstantiationCopyPolicy();
-			case EclipseLinkOrmPackage.XML_EMBEDDABLE__CLONE_COPY_POLICY:
-				return getCloneCopyPolicy();
-			case EclipseLinkOrmPackage.XML_EMBEDDABLE__PROPERTIES:
-				return getProperties();
-			case EclipseLinkOrmPackage.XML_EMBEDDABLE__EXCLUDE_DEFAULT_MAPPINGS:
-				return getExcludeDefaultMappings();
-		}
-		return super.eGet(featureID, resolve, coreType);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@SuppressWarnings("unchecked")
-	@Override
-	public void eSet(int featureID, Object newValue)
-	{
-		switch (featureID)
-		{
-			case EclipseLinkOrmPackage.XML_EMBEDDABLE__CUSTOMIZER:
-				setCustomizer((XmlCustomizer)newValue);
-				return;
-			case EclipseLinkOrmPackage.XML_EMBEDDABLE__CHANGE_TRACKING:
-				setChangeTracking((XmlChangeTracking)newValue);
-				return;
-			case EclipseLinkOrmPackage.XML_EMBEDDABLE__CONVERTERS:
-				getConverters().clear();
-				getConverters().addAll((Collection<? extends XmlConverter>)newValue);
-				return;
-			case EclipseLinkOrmPackage.XML_EMBEDDABLE__TYPE_CONVERTERS:
-				getTypeConverters().clear();
-				getTypeConverters().addAll((Collection<? extends XmlTypeConverter>)newValue);
-				return;
-			case EclipseLinkOrmPackage.XML_EMBEDDABLE__OBJECT_TYPE_CONVERTERS:
-				getObjectTypeConverters().clear();
-				getObjectTypeConverters().addAll((Collection<? extends XmlObjectTypeConverter>)newValue);
-				return;
-			case EclipseLinkOrmPackage.XML_EMBEDDABLE__STRUCT_CONVERTERS:
-				getStructConverters().clear();
-				getStructConverters().addAll((Collection<? extends XmlStructConverter>)newValue);
-				return;
-			case EclipseLinkOrmPackage.XML_EMBEDDABLE__COPY_POLICY:
-				setCopyPolicy((XmlCopyPolicy)newValue);
-				return;
-			case EclipseLinkOrmPackage.XML_EMBEDDABLE__INSTANTIATION_COPY_POLICY:
-				setInstantiationCopyPolicy((XmlCopyPolicy)newValue);
-				return;
-			case EclipseLinkOrmPackage.XML_EMBEDDABLE__CLONE_COPY_POLICY:
-				setCloneCopyPolicy((XmlCopyPolicy)newValue);
-				return;
-			case EclipseLinkOrmPackage.XML_EMBEDDABLE__PROPERTIES:
-				getProperties().clear();
-				getProperties().addAll((Collection<? extends XmlProperty>)newValue);
-				return;
-			case EclipseLinkOrmPackage.XML_EMBEDDABLE__EXCLUDE_DEFAULT_MAPPINGS:
-				setExcludeDefaultMappings((Boolean)newValue);
-				return;
-		}
-		super.eSet(featureID, newValue);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public void eUnset(int featureID)
-	{
-		switch (featureID)
-		{
-			case EclipseLinkOrmPackage.XML_EMBEDDABLE__CUSTOMIZER:
-				setCustomizer((XmlCustomizer)null);
-				return;
-			case EclipseLinkOrmPackage.XML_EMBEDDABLE__CHANGE_TRACKING:
-				setChangeTracking((XmlChangeTracking)null);
-				return;
-			case EclipseLinkOrmPackage.XML_EMBEDDABLE__CONVERTERS:
-				getConverters().clear();
-				return;
-			case EclipseLinkOrmPackage.XML_EMBEDDABLE__TYPE_CONVERTERS:
-				getTypeConverters().clear();
-				return;
-			case EclipseLinkOrmPackage.XML_EMBEDDABLE__OBJECT_TYPE_CONVERTERS:
-				getObjectTypeConverters().clear();
-				return;
-			case EclipseLinkOrmPackage.XML_EMBEDDABLE__STRUCT_CONVERTERS:
-				getStructConverters().clear();
-				return;
-			case EclipseLinkOrmPackage.XML_EMBEDDABLE__COPY_POLICY:
-				setCopyPolicy((XmlCopyPolicy)null);
-				return;
-			case EclipseLinkOrmPackage.XML_EMBEDDABLE__INSTANTIATION_COPY_POLICY:
-				setInstantiationCopyPolicy((XmlCopyPolicy)null);
-				return;
-			case EclipseLinkOrmPackage.XML_EMBEDDABLE__CLONE_COPY_POLICY:
-				setCloneCopyPolicy((XmlCopyPolicy)null);
-				return;
-			case EclipseLinkOrmPackage.XML_EMBEDDABLE__PROPERTIES:
-				getProperties().clear();
-				return;
-			case EclipseLinkOrmPackage.XML_EMBEDDABLE__EXCLUDE_DEFAULT_MAPPINGS:
-				setExcludeDefaultMappings(EXCLUDE_DEFAULT_MAPPINGS_EDEFAULT);
-				return;
-		}
-		super.eUnset(featureID);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public boolean eIsSet(int featureID)
-	{
-		switch (featureID)
-		{
-			case EclipseLinkOrmPackage.XML_EMBEDDABLE__CUSTOMIZER:
-				return customizer != null;
-			case EclipseLinkOrmPackage.XML_EMBEDDABLE__CHANGE_TRACKING:
-				return changeTracking != null;
-			case EclipseLinkOrmPackage.XML_EMBEDDABLE__CONVERTERS:
-				return converters != null && !converters.isEmpty();
-			case EclipseLinkOrmPackage.XML_EMBEDDABLE__TYPE_CONVERTERS:
-				return typeConverters != null && !typeConverters.isEmpty();
-			case EclipseLinkOrmPackage.XML_EMBEDDABLE__OBJECT_TYPE_CONVERTERS:
-				return objectTypeConverters != null && !objectTypeConverters.isEmpty();
-			case EclipseLinkOrmPackage.XML_EMBEDDABLE__STRUCT_CONVERTERS:
-				return structConverters != null && !structConverters.isEmpty();
-			case EclipseLinkOrmPackage.XML_EMBEDDABLE__COPY_POLICY:
-				return copyPolicy != null;
-			case EclipseLinkOrmPackage.XML_EMBEDDABLE__INSTANTIATION_COPY_POLICY:
-				return instantiationCopyPolicy != null;
-			case EclipseLinkOrmPackage.XML_EMBEDDABLE__CLONE_COPY_POLICY:
-				return cloneCopyPolicy != null;
-			case EclipseLinkOrmPackage.XML_EMBEDDABLE__PROPERTIES:
-				return properties != null && !properties.isEmpty();
-			case EclipseLinkOrmPackage.XML_EMBEDDABLE__EXCLUDE_DEFAULT_MAPPINGS:
-				return EXCLUDE_DEFAULT_MAPPINGS_EDEFAULT == null ? excludeDefaultMappings != null : !EXCLUDE_DEFAULT_MAPPINGS_EDEFAULT.equals(excludeDefaultMappings);
-		}
-		return super.eIsSet(featureID);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public int eBaseStructuralFeatureID(int derivedFeatureID, Class<?> baseClass)
-	{
-		if (baseClass == XmlCustomizerHolder.class)
-		{
-			switch (derivedFeatureID)
-			{
-				case EclipseLinkOrmPackage.XML_EMBEDDABLE__CUSTOMIZER: return EclipseLinkOrmPackage.XML_CUSTOMIZER_HOLDER__CUSTOMIZER;
-				default: return -1;
-			}
-		}
-		if (baseClass == XmlChangeTrackingHolder.class)
-		{
-			switch (derivedFeatureID)
-			{
-				case EclipseLinkOrmPackage.XML_EMBEDDABLE__CHANGE_TRACKING: return EclipseLinkOrmPackage.XML_CHANGE_TRACKING_HOLDER__CHANGE_TRACKING;
-				default: return -1;
-			}
-		}
-		if (baseClass == XmlConvertersHolder.class)
-		{
-			switch (derivedFeatureID)
-			{
-				case EclipseLinkOrmPackage.XML_EMBEDDABLE__CONVERTERS: return EclipseLinkOrmPackage.XML_CONVERTERS_HOLDER__CONVERTERS;
-				case EclipseLinkOrmPackage.XML_EMBEDDABLE__TYPE_CONVERTERS: return EclipseLinkOrmPackage.XML_CONVERTERS_HOLDER__TYPE_CONVERTERS;
-				case EclipseLinkOrmPackage.XML_EMBEDDABLE__OBJECT_TYPE_CONVERTERS: return EclipseLinkOrmPackage.XML_CONVERTERS_HOLDER__OBJECT_TYPE_CONVERTERS;
-				case EclipseLinkOrmPackage.XML_EMBEDDABLE__STRUCT_CONVERTERS: return EclipseLinkOrmPackage.XML_CONVERTERS_HOLDER__STRUCT_CONVERTERS;
-				default: return -1;
-			}
-		}
-		return super.eBaseStructuralFeatureID(derivedFeatureID, baseClass);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public int eDerivedStructuralFeatureID(int baseFeatureID, Class<?> baseClass)
-	{
-		if (baseClass == XmlCustomizerHolder.class)
-		{
-			switch (baseFeatureID)
-			{
-				case EclipseLinkOrmPackage.XML_CUSTOMIZER_HOLDER__CUSTOMIZER: return EclipseLinkOrmPackage.XML_EMBEDDABLE__CUSTOMIZER;
-				default: return -1;
-			}
-		}
-		if (baseClass == XmlChangeTrackingHolder.class)
-		{
-			switch (baseFeatureID)
-			{
-				case EclipseLinkOrmPackage.XML_CHANGE_TRACKING_HOLDER__CHANGE_TRACKING: return EclipseLinkOrmPackage.XML_EMBEDDABLE__CHANGE_TRACKING;
-				default: return -1;
-			}
-		}
-		if (baseClass == XmlConvertersHolder.class)
-		{
-			switch (baseFeatureID)
-			{
-				case EclipseLinkOrmPackage.XML_CONVERTERS_HOLDER__CONVERTERS: return EclipseLinkOrmPackage.XML_EMBEDDABLE__CONVERTERS;
-				case EclipseLinkOrmPackage.XML_CONVERTERS_HOLDER__TYPE_CONVERTERS: return EclipseLinkOrmPackage.XML_EMBEDDABLE__TYPE_CONVERTERS;
-				case EclipseLinkOrmPackage.XML_CONVERTERS_HOLDER__OBJECT_TYPE_CONVERTERS: return EclipseLinkOrmPackage.XML_EMBEDDABLE__OBJECT_TYPE_CONVERTERS;
-				case EclipseLinkOrmPackage.XML_CONVERTERS_HOLDER__STRUCT_CONVERTERS: return EclipseLinkOrmPackage.XML_EMBEDDABLE__STRUCT_CONVERTERS;
-				default: return -1;
-			}
-		}
-		return super.eDerivedStructuralFeatureID(baseFeatureID, baseClass);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public String toString()
-	{
-		if (eIsProxy()) return super.toString();
-
-		StringBuffer result = new StringBuffer(super.toString());
-		result.append(" (excludeDefaultMappings: ");
-		result.append(excludeDefaultMappings);
-		result.append(')');
-		return result.toString();
-	}
-
-} // XmlEmbeddable
diff --git a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/resource/orm/XmlEmbedded.java b/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/resource/orm/XmlEmbedded.java
deleted file mode 100644
index 9f80828..0000000
--- a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/resource/orm/XmlEmbedded.java
+++ /dev/null
@@ -1,49 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.eclipselink.core.resource.orm;
-
-import org.eclipse.emf.common.util.EList;
-
-
-/**
- * <!-- begin-user-doc -->
- * A representation of the model object '<em><b>Xml Embedded</b></em>'.
- * <!-- end-user-doc -->
- *
- * <p>
- * The following features are supported:
- * <ul>
- *   <li>{@link org.eclipse.jpt.eclipselink.core.resource.orm.XmlEmbedded#getProperties <em>Properties</em>}</li>
- * </ul>
- * </p>
- *
- * @see org.eclipse.jpt.eclipselink.core.resource.orm.EclipseLinkOrmPackage#getXmlEmbedded()
- * @model kind="class" interface="true" abstract="true"
- * @generated
- */
-public interface XmlEmbedded extends org.eclipse.jpt.core.resource.orm.XmlEmbedded, XmlAccessMethodsHolder
-{
-
-	/**
-	 * Returns the value of the '<em><b>Properties</b></em>' containment reference list.
-	 * The list contents are of type {@link org.eclipse.jpt.eclipselink.core.resource.orm.XmlProperty}.
-	 * <!-- begin-user-doc -->
-	 * <p>
-	 * If the meaning of the '<em>Properties</em>' containment reference list isn't clear,
-	 * there really should be more of a description here...
-	 * </p>
-	 * <!-- end-user-doc -->
-	 * @return the value of the '<em>Properties</em>' containment reference list.
-	 * @see org.eclipse.jpt.eclipselink.core.resource.orm.EclipseLinkOrmPackage#getXmlEmbedded_Properties()
-	 * @model containment="true"
-	 * @generated
-	 */
-	EList<XmlProperty> getProperties();
-} // XmlEmbedded
diff --git a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/resource/orm/XmlEmbeddedId.java b/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/resource/orm/XmlEmbeddedId.java
deleted file mode 100644
index c8f8d1b..0000000
--- a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/resource/orm/XmlEmbeddedId.java
+++ /dev/null
@@ -1,49 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.eclipselink.core.resource.orm;
-
-import org.eclipse.emf.common.util.EList;
-
-
-/**
- * <!-- begin-user-doc -->
- * A representation of the model object '<em><b>Xml Embedded Id</b></em>'.
- * <!-- end-user-doc -->
- *
- * <p>
- * The following features are supported:
- * <ul>
- *   <li>{@link org.eclipse.jpt.eclipselink.core.resource.orm.XmlEmbeddedId#getProperties <em>Properties</em>}</li>
- * </ul>
- * </p>
- *
- * @see org.eclipse.jpt.eclipselink.core.resource.orm.EclipseLinkOrmPackage#getXmlEmbeddedId()
- * @model kind="class" interface="true" abstract="true"
- * @generated
- */
-public interface XmlEmbeddedId extends org.eclipse.jpt.core.resource.orm.XmlEmbeddedId, XmlAccessMethodsHolder
-{
-
-	/**
-	 * Returns the value of the '<em><b>Properties</b></em>' containment reference list.
-	 * The list contents are of type {@link org.eclipse.jpt.eclipselink.core.resource.orm.XmlProperty}.
-	 * <!-- begin-user-doc -->
-	 * <p>
-	 * If the meaning of the '<em>Properties</em>' containment reference list isn't clear,
-	 * there really should be more of a description here...
-	 * </p>
-	 * <!-- end-user-doc -->
-	 * @return the value of the '<em>Properties</em>' containment reference list.
-	 * @see org.eclipse.jpt.eclipselink.core.resource.orm.EclipseLinkOrmPackage#getXmlEmbeddedId_Properties()
-	 * @model containment="true"
-	 * @generated
-	 */
-	EList<XmlProperty> getProperties();
-} // XmlEmbeddedId
diff --git a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/resource/orm/XmlEmbeddedIdImpl.java b/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/resource/orm/XmlEmbeddedIdImpl.java
deleted file mode 100644
index 271de15..0000000
--- a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/resource/orm/XmlEmbeddedIdImpl.java
+++ /dev/null
@@ -1,310 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.eclipselink.core.resource.orm;
-
-import java.util.Collection;
-import org.eclipse.emf.common.notify.Notification;
-import org.eclipse.emf.common.notify.NotificationChain;
-
-import org.eclipse.emf.common.util.EList;
-import org.eclipse.emf.ecore.EClass;
-import org.eclipse.emf.ecore.InternalEObject;
-
-import org.eclipse.emf.ecore.impl.ENotificationImpl;
-import org.eclipse.emf.ecore.util.EObjectContainmentEList;
-import org.eclipse.emf.ecore.util.InternalEList;
-
-/**
- * <!-- begin-user-doc -->
- * A representation of the model object '<em><b>Xml Embedded Id Impl</b></em>'.
- * <!-- end-user-doc -->
- *
- *
- * @see org.eclipse.jpt.eclipselink.core.resource.orm.EclipseLinkOrmPackage#getXmlEmbeddedIdImpl()
- * @model kind="class"
- * @generated
- */
-public class XmlEmbeddedIdImpl extends org.eclipse.jpt.core.resource.orm.XmlEmbeddedIdImpl implements XmlEmbeddedId
-{
-	/**
-	 * The cached value of the '{@link #getAccessMethods() <em>Access Methods</em>}' containment reference.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see #getAccessMethods()
-	 * @generated
-	 * @ordered
-	 */
-	protected XmlAccessMethods accessMethods;
-
-	/**
-	 * The cached value of the '{@link #getProperties() <em>Properties</em>}' containment reference list.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see #getProperties()
-	 * @generated
-	 * @ordered
-	 */
-	protected EList<XmlProperty> properties;
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	protected XmlEmbeddedIdImpl()
-	{
-		super();
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	protected EClass eStaticClass()
-	{
-		return EclipseLinkOrmPackage.Literals.XML_EMBEDDED_ID_IMPL;
-	}
-
-	/**
-	 * Returns the value of the '<em><b>Access Methods</b></em>' containment reference.
-	 * <!-- begin-user-doc -->
-	 * <p>
-	 * If the meaning of the '<em>Access Methods</em>' containment reference isn't clear,
-	 * there really should be more of a description here...
-	 * </p>
-	 * <!-- end-user-doc -->
-	 * @return the value of the '<em>Access Methods</em>' containment reference.
-	 * @see #setAccessMethods(XmlAccessMethods)
-	 * @see org.eclipse.jpt.eclipselink.core.resource.orm.EclipseLinkOrmPackage#getXmlAccessMethodsHolder_AccessMethods()
-	 * @model containment="true"
-	 * @generated
-	 */
-	public XmlAccessMethods getAccessMethods()
-	{
-		return accessMethods;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public NotificationChain basicSetAccessMethods(XmlAccessMethods newAccessMethods, NotificationChain msgs)
-	{
-		XmlAccessMethods oldAccessMethods = accessMethods;
-		accessMethods = newAccessMethods;
-		if (eNotificationRequired())
-		{
-			ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, EclipseLinkOrmPackage.XML_EMBEDDED_ID_IMPL__ACCESS_METHODS, oldAccessMethods, newAccessMethods);
-			if (msgs == null) msgs = notification; else msgs.add(notification);
-		}
-		return msgs;
-	}
-
-	/**
-	 * Sets the value of the '{@link org.eclipse.jpt.eclipselink.core.resource.orm.XmlEmbeddedIdImpl#getAccessMethods <em>Access Methods</em>}' containment reference.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @param value the new value of the '<em>Access Methods</em>' containment reference.
-	 * @see #getAccessMethods()
-	 * @generated
-	 */
-	public void setAccessMethods(XmlAccessMethods newAccessMethods)
-	{
-		if (newAccessMethods != accessMethods)
-		{
-			NotificationChain msgs = null;
-			if (accessMethods != null)
-				msgs = ((InternalEObject)accessMethods).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - EclipseLinkOrmPackage.XML_EMBEDDED_ID_IMPL__ACCESS_METHODS, null, msgs);
-			if (newAccessMethods != null)
-				msgs = ((InternalEObject)newAccessMethods).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - EclipseLinkOrmPackage.XML_EMBEDDED_ID_IMPL__ACCESS_METHODS, null, msgs);
-			msgs = basicSetAccessMethods(newAccessMethods, msgs);
-			if (msgs != null) msgs.dispatch();
-		}
-		else if (eNotificationRequired())
-			eNotify(new ENotificationImpl(this, Notification.SET, EclipseLinkOrmPackage.XML_EMBEDDED_ID_IMPL__ACCESS_METHODS, newAccessMethods, newAccessMethods));
-	}
-
-	/**
-	 * Returns the value of the '<em><b>Properties</b></em>' containment reference list.
-	 * The list contents are of type {@link org.eclipse.jpt.eclipselink.core.resource.orm.XmlProperty}.
-	 * <!-- begin-user-doc -->
-	 * <p>
-	 * If the meaning of the '<em>Properties</em>' containment reference list isn't clear,
-	 * there really should be more of a description here...
-	 * </p>
-	 * <!-- end-user-doc -->
-	 * @return the value of the '<em>Properties</em>' containment reference list.
-	 * @see org.eclipse.jpt.eclipselink.core.resource.orm.EclipseLinkOrmPackage#getXmlEmbeddedId_Properties()
-	 * @model containment="true"
-	 * @generated
-	 */
-	public EList<XmlProperty> getProperties()
-	{
-		if (properties == null)
-		{
-			properties = new EObjectContainmentEList<XmlProperty>(XmlProperty.class, this, EclipseLinkOrmPackage.XML_EMBEDDED_ID_IMPL__PROPERTIES);
-		}
-		return properties;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs)
-	{
-		switch (featureID)
-		{
-			case EclipseLinkOrmPackage.XML_EMBEDDED_ID_IMPL__ACCESS_METHODS:
-				return basicSetAccessMethods(null, msgs);
-			case EclipseLinkOrmPackage.XML_EMBEDDED_ID_IMPL__PROPERTIES:
-				return ((InternalEList<?>)getProperties()).basicRemove(otherEnd, msgs);
-		}
-		return super.eInverseRemove(otherEnd, featureID, msgs);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public Object eGet(int featureID, boolean resolve, boolean coreType)
-	{
-		switch (featureID)
-		{
-			case EclipseLinkOrmPackage.XML_EMBEDDED_ID_IMPL__ACCESS_METHODS:
-				return getAccessMethods();
-			case EclipseLinkOrmPackage.XML_EMBEDDED_ID_IMPL__PROPERTIES:
-				return getProperties();
-		}
-		return super.eGet(featureID, resolve, coreType);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@SuppressWarnings("unchecked")
-	@Override
-	public void eSet(int featureID, Object newValue)
-	{
-		switch (featureID)
-		{
-			case EclipseLinkOrmPackage.XML_EMBEDDED_ID_IMPL__ACCESS_METHODS:
-				setAccessMethods((XmlAccessMethods)newValue);
-				return;
-			case EclipseLinkOrmPackage.XML_EMBEDDED_ID_IMPL__PROPERTIES:
-				getProperties().clear();
-				getProperties().addAll((Collection<? extends XmlProperty>)newValue);
-				return;
-		}
-		super.eSet(featureID, newValue);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public void eUnset(int featureID)
-	{
-		switch (featureID)
-		{
-			case EclipseLinkOrmPackage.XML_EMBEDDED_ID_IMPL__ACCESS_METHODS:
-				setAccessMethods((XmlAccessMethods)null);
-				return;
-			case EclipseLinkOrmPackage.XML_EMBEDDED_ID_IMPL__PROPERTIES:
-				getProperties().clear();
-				return;
-		}
-		super.eUnset(featureID);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public boolean eIsSet(int featureID)
-	{
-		switch (featureID)
-		{
-			case EclipseLinkOrmPackage.XML_EMBEDDED_ID_IMPL__ACCESS_METHODS:
-				return accessMethods != null;
-			case EclipseLinkOrmPackage.XML_EMBEDDED_ID_IMPL__PROPERTIES:
-				return properties != null && !properties.isEmpty();
-		}
-		return super.eIsSet(featureID);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public int eBaseStructuralFeatureID(int derivedFeatureID, Class<?> baseClass)
-	{
-		if (baseClass == XmlAccessMethodsHolder.class)
-		{
-			switch (derivedFeatureID)
-			{
-				case EclipseLinkOrmPackage.XML_EMBEDDED_ID_IMPL__ACCESS_METHODS: return EclipseLinkOrmPackage.XML_ACCESS_METHODS_HOLDER__ACCESS_METHODS;
-				default: return -1;
-			}
-		}
-		if (baseClass == XmlEmbeddedId.class)
-		{
-			switch (derivedFeatureID)
-			{
-				case EclipseLinkOrmPackage.XML_EMBEDDED_ID_IMPL__PROPERTIES: return EclipseLinkOrmPackage.XML_EMBEDDED_ID__PROPERTIES;
-				default: return -1;
-			}
-		}
-		return super.eBaseStructuralFeatureID(derivedFeatureID, baseClass);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public int eDerivedStructuralFeatureID(int baseFeatureID, Class<?> baseClass)
-	{
-		if (baseClass == XmlAccessMethodsHolder.class)
-		{
-			switch (baseFeatureID)
-			{
-				case EclipseLinkOrmPackage.XML_ACCESS_METHODS_HOLDER__ACCESS_METHODS: return EclipseLinkOrmPackage.XML_EMBEDDED_ID_IMPL__ACCESS_METHODS;
-				default: return -1;
-			}
-		}
-		if (baseClass == XmlEmbeddedId.class)
-		{
-			switch (baseFeatureID)
-			{
-				case EclipseLinkOrmPackage.XML_EMBEDDED_ID__PROPERTIES: return EclipseLinkOrmPackage.XML_EMBEDDED_ID_IMPL__PROPERTIES;
-				default: return -1;
-			}
-		}
-		return super.eDerivedStructuralFeatureID(baseFeatureID, baseClass);
-	}
-
-} // XmlEmbeddedIdImpl
diff --git a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/resource/orm/XmlEmbeddedImpl.java b/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/resource/orm/XmlEmbeddedImpl.java
deleted file mode 100644
index b100959..0000000
--- a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/resource/orm/XmlEmbeddedImpl.java
+++ /dev/null
@@ -1,310 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.eclipselink.core.resource.orm;
-
-import java.util.Collection;
-import org.eclipse.emf.common.notify.Notification;
-import org.eclipse.emf.common.notify.NotificationChain;
-
-import org.eclipse.emf.common.util.EList;
-import org.eclipse.emf.ecore.EClass;
-import org.eclipse.emf.ecore.InternalEObject;
-
-import org.eclipse.emf.ecore.impl.ENotificationImpl;
-import org.eclipse.emf.ecore.util.EObjectContainmentEList;
-import org.eclipse.emf.ecore.util.InternalEList;
-
-/**
- * <!-- begin-user-doc -->
- * A representation of the model object '<em><b>Xml Embedded Impl</b></em>'.
- * <!-- end-user-doc -->
- *
- *
- * @see org.eclipse.jpt.eclipselink.core.resource.orm.EclipseLinkOrmPackage#getXmlEmbeddedImpl()
- * @model kind="class"
- * @generated
- */
-public class XmlEmbeddedImpl extends org.eclipse.jpt.core.resource.orm.XmlEmbeddedImpl implements XmlEmbedded
-{
-	/**
-	 * The cached value of the '{@link #getAccessMethods() <em>Access Methods</em>}' containment reference.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see #getAccessMethods()
-	 * @generated
-	 * @ordered
-	 */
-	protected XmlAccessMethods accessMethods;
-
-	/**
-	 * The cached value of the '{@link #getProperties() <em>Properties</em>}' containment reference list.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see #getProperties()
-	 * @generated
-	 * @ordered
-	 */
-	protected EList<XmlProperty> properties;
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	protected XmlEmbeddedImpl()
-	{
-		super();
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	protected EClass eStaticClass()
-	{
-		return EclipseLinkOrmPackage.Literals.XML_EMBEDDED_IMPL;
-	}
-
-	/**
-	 * Returns the value of the '<em><b>Access Methods</b></em>' containment reference.
-	 * <!-- begin-user-doc -->
-	 * <p>
-	 * If the meaning of the '<em>Access Methods</em>' containment reference isn't clear,
-	 * there really should be more of a description here...
-	 * </p>
-	 * <!-- end-user-doc -->
-	 * @return the value of the '<em>Access Methods</em>' containment reference.
-	 * @see #setAccessMethods(XmlAccessMethods)
-	 * @see org.eclipse.jpt.eclipselink.core.resource.orm.EclipseLinkOrmPackage#getXmlAccessMethodsHolder_AccessMethods()
-	 * @model containment="true"
-	 * @generated
-	 */
-	public XmlAccessMethods getAccessMethods()
-	{
-		return accessMethods;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public NotificationChain basicSetAccessMethods(XmlAccessMethods newAccessMethods, NotificationChain msgs)
-	{
-		XmlAccessMethods oldAccessMethods = accessMethods;
-		accessMethods = newAccessMethods;
-		if (eNotificationRequired())
-		{
-			ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, EclipseLinkOrmPackage.XML_EMBEDDED_IMPL__ACCESS_METHODS, oldAccessMethods, newAccessMethods);
-			if (msgs == null) msgs = notification; else msgs.add(notification);
-		}
-		return msgs;
-	}
-
-	/**
-	 * Sets the value of the '{@link org.eclipse.jpt.eclipselink.core.resource.orm.XmlEmbeddedImpl#getAccessMethods <em>Access Methods</em>}' containment reference.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @param value the new value of the '<em>Access Methods</em>' containment reference.
-	 * @see #getAccessMethods()
-	 * @generated
-	 */
-	public void setAccessMethods(XmlAccessMethods newAccessMethods)
-	{
-		if (newAccessMethods != accessMethods)
-		{
-			NotificationChain msgs = null;
-			if (accessMethods != null)
-				msgs = ((InternalEObject)accessMethods).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - EclipseLinkOrmPackage.XML_EMBEDDED_IMPL__ACCESS_METHODS, null, msgs);
-			if (newAccessMethods != null)
-				msgs = ((InternalEObject)newAccessMethods).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - EclipseLinkOrmPackage.XML_EMBEDDED_IMPL__ACCESS_METHODS, null, msgs);
-			msgs = basicSetAccessMethods(newAccessMethods, msgs);
-			if (msgs != null) msgs.dispatch();
-		}
-		else if (eNotificationRequired())
-			eNotify(new ENotificationImpl(this, Notification.SET, EclipseLinkOrmPackage.XML_EMBEDDED_IMPL__ACCESS_METHODS, newAccessMethods, newAccessMethods));
-	}
-
-	/**
-	 * Returns the value of the '<em><b>Properties</b></em>' containment reference list.
-	 * The list contents are of type {@link org.eclipse.jpt.eclipselink.core.resource.orm.XmlProperty}.
-	 * <!-- begin-user-doc -->
-	 * <p>
-	 * If the meaning of the '<em>Properties</em>' containment reference list isn't clear,
-	 * there really should be more of a description here...
-	 * </p>
-	 * <!-- end-user-doc -->
-	 * @return the value of the '<em>Properties</em>' containment reference list.
-	 * @see org.eclipse.jpt.eclipselink.core.resource.orm.EclipseLinkOrmPackage#getXmlEmbedded_Properties()
-	 * @model containment="true"
-	 * @generated
-	 */
-	public EList<XmlProperty> getProperties()
-	{
-		if (properties == null)
-		{
-			properties = new EObjectContainmentEList<XmlProperty>(XmlProperty.class, this, EclipseLinkOrmPackage.XML_EMBEDDED_IMPL__PROPERTIES);
-		}
-		return properties;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs)
-	{
-		switch (featureID)
-		{
-			case EclipseLinkOrmPackage.XML_EMBEDDED_IMPL__ACCESS_METHODS:
-				return basicSetAccessMethods(null, msgs);
-			case EclipseLinkOrmPackage.XML_EMBEDDED_IMPL__PROPERTIES:
-				return ((InternalEList<?>)getProperties()).basicRemove(otherEnd, msgs);
-		}
-		return super.eInverseRemove(otherEnd, featureID, msgs);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public Object eGet(int featureID, boolean resolve, boolean coreType)
-	{
-		switch (featureID)
-		{
-			case EclipseLinkOrmPackage.XML_EMBEDDED_IMPL__ACCESS_METHODS:
-				return getAccessMethods();
-			case EclipseLinkOrmPackage.XML_EMBEDDED_IMPL__PROPERTIES:
-				return getProperties();
-		}
-		return super.eGet(featureID, resolve, coreType);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@SuppressWarnings("unchecked")
-	@Override
-	public void eSet(int featureID, Object newValue)
-	{
-		switch (featureID)
-		{
-			case EclipseLinkOrmPackage.XML_EMBEDDED_IMPL__ACCESS_METHODS:
-				setAccessMethods((XmlAccessMethods)newValue);
-				return;
-			case EclipseLinkOrmPackage.XML_EMBEDDED_IMPL__PROPERTIES:
-				getProperties().clear();
-				getProperties().addAll((Collection<? extends XmlProperty>)newValue);
-				return;
-		}
-		super.eSet(featureID, newValue);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public void eUnset(int featureID)
-	{
-		switch (featureID)
-		{
-			case EclipseLinkOrmPackage.XML_EMBEDDED_IMPL__ACCESS_METHODS:
-				setAccessMethods((XmlAccessMethods)null);
-				return;
-			case EclipseLinkOrmPackage.XML_EMBEDDED_IMPL__PROPERTIES:
-				getProperties().clear();
-				return;
-		}
-		super.eUnset(featureID);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public boolean eIsSet(int featureID)
-	{
-		switch (featureID)
-		{
-			case EclipseLinkOrmPackage.XML_EMBEDDED_IMPL__ACCESS_METHODS:
-				return accessMethods != null;
-			case EclipseLinkOrmPackage.XML_EMBEDDED_IMPL__PROPERTIES:
-				return properties != null && !properties.isEmpty();
-		}
-		return super.eIsSet(featureID);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public int eBaseStructuralFeatureID(int derivedFeatureID, Class<?> baseClass)
-	{
-		if (baseClass == XmlAccessMethodsHolder.class)
-		{
-			switch (derivedFeatureID)
-			{
-				case EclipseLinkOrmPackage.XML_EMBEDDED_IMPL__ACCESS_METHODS: return EclipseLinkOrmPackage.XML_ACCESS_METHODS_HOLDER__ACCESS_METHODS;
-				default: return -1;
-			}
-		}
-		if (baseClass == XmlEmbedded.class)
-		{
-			switch (derivedFeatureID)
-			{
-				case EclipseLinkOrmPackage.XML_EMBEDDED_IMPL__PROPERTIES: return EclipseLinkOrmPackage.XML_EMBEDDED__PROPERTIES;
-				default: return -1;
-			}
-		}
-		return super.eBaseStructuralFeatureID(derivedFeatureID, baseClass);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public int eDerivedStructuralFeatureID(int baseFeatureID, Class<?> baseClass)
-	{
-		if (baseClass == XmlAccessMethodsHolder.class)
-		{
-			switch (baseFeatureID)
-			{
-				case EclipseLinkOrmPackage.XML_ACCESS_METHODS_HOLDER__ACCESS_METHODS: return EclipseLinkOrmPackage.XML_EMBEDDED_IMPL__ACCESS_METHODS;
-				default: return -1;
-			}
-		}
-		if (baseClass == XmlEmbedded.class)
-		{
-			switch (baseFeatureID)
-			{
-				case EclipseLinkOrmPackage.XML_EMBEDDED__PROPERTIES: return EclipseLinkOrmPackage.XML_EMBEDDED_IMPL__PROPERTIES;
-				default: return -1;
-			}
-		}
-		return super.eDerivedStructuralFeatureID(baseFeatureID, baseClass);
-	}
-
-} // XmlEmbeddedImpl
diff --git a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/resource/orm/XmlEntity.java b/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/resource/orm/XmlEntity.java
deleted file mode 100644
index a2eb438..0000000
--- a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/resource/orm/XmlEntity.java
+++ /dev/null
@@ -1,1331 +0,0 @@
-/*******************************************************************************
- *  Copyright (c) 2008, 2009  Oracle. 
- *  All rights reserved.  This program and the accompanying materials are 
- *  made available under the terms of the Eclipse Public License v1.0 which 
- *  accompanies this distribution, and is available at 
- *  http://www.eclipse.org/legal/epl-v10.html
- *  
- *  Contributors: 
- *  	Oracle - initial API and implementation
- *******************************************************************************/
-package org.eclipse.jpt.eclipselink.core.resource.orm;
-
-import java.util.Collection;
-import org.eclipse.emf.common.notify.Notification;
-import org.eclipse.emf.common.notify.NotificationChain;
-import org.eclipse.emf.common.util.EList;
-import org.eclipse.emf.ecore.EClass;
-import org.eclipse.emf.ecore.InternalEObject;
-import org.eclipse.emf.ecore.impl.ENotificationImpl;
-import org.eclipse.emf.ecore.util.EObjectContainmentEList;
-import org.eclipse.emf.ecore.util.InternalEList;
-import org.eclipse.jpt.core.utility.TextRange;
-import org.eclipse.jpt.eclipselink.core.internal.resource.orm.translators.EclipseLinkOrmXmlMapper;
-
-/**
- * <!-- begin-user-doc -->
- * 
- * A representation of the model object '<em><b>Xml Entity</b></em>'.
- *  
- * Provisional API: This interface is part of an interim API that is still
- * under development and expected to change significantly before reaching
- * stability. It is available at this early stage to solicit feedback from
- * pioneering adopters on the understanding that any code that uses this API
- * will almost certainly be broken (repeatedly) as the API evolves.
- * 
- * @version 2.1
- * @since 2.1
- * 
- * <!-- end-user-doc -->
- *
- * <p>
- * The following features are supported:
- * <ul>
- *   <li>{@link org.eclipse.jpt.eclipselink.core.resource.orm.XmlEntity#getOptimisticLocking <em>Optimistic Locking</em>}</li>
- *   <li>{@link org.eclipse.jpt.eclipselink.core.resource.orm.XmlEntity#getCopyPolicy <em>Copy Policy</em>}</li>
- *   <li>{@link org.eclipse.jpt.eclipselink.core.resource.orm.XmlEntity#getInstantiationCopyPolicy <em>Instantiation Copy Policy</em>}</li>
- *   <li>{@link org.eclipse.jpt.eclipselink.core.resource.orm.XmlEntity#getCloneCopyPolicy <em>Clone Copy Policy</em>}</li>
- *   <li>{@link org.eclipse.jpt.eclipselink.core.resource.orm.XmlEntity#getNamedStoredProcedureQueries <em>Named Stored Procedure Queries</em>}</li>
- *   <li>{@link org.eclipse.jpt.eclipselink.core.resource.orm.XmlEntity#getProperties <em>Properties</em>}</li>
- *   <li>{@link org.eclipse.jpt.eclipselink.core.resource.orm.XmlEntity#getExcludeDefaultMappings <em>Exclude Default Mappings</em>}</li>
- * </ul>
- * </p>
- *
- * @see org.eclipse.jpt.eclipselink.core.resource.orm.EclipseLinkOrmPackage#getXmlEntity()
- * @model kind="class"
- * @generated
- */
-public class XmlEntity extends org.eclipse.jpt.core.resource.orm.XmlEntity implements XmlReadOnly, XmlCustomizerHolder, XmlChangeTrackingHolder, XmlCacheHolder, XmlConvertersHolder
-{
-	/**
-	 * The default value of the '{@link #getReadOnly() <em>Read Only</em>}' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see #getReadOnly()
-	 * @generated
-	 * @ordered
-	 */
-	protected static final Boolean READ_ONLY_EDEFAULT = null;
-
-	/**
-	 * The cached value of the '{@link #getReadOnly() <em>Read Only</em>}' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see #getReadOnly()
-	 * @generated
-	 * @ordered
-	 */
-	protected Boolean readOnly = READ_ONLY_EDEFAULT;
-
-	/**
-	 * The cached value of the '{@link #getCustomizer() <em>Customizer</em>}' containment reference.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see #getCustomizer()
-	 * @generated
-	 * @ordered
-	 */
-	protected XmlCustomizer customizer;
-
-	/**
-	 * The cached value of the '{@link #getChangeTracking() <em>Change Tracking</em>}' containment reference.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see #getChangeTracking()
-	 * @generated
-	 * @ordered
-	 */
-	protected XmlChangeTracking changeTracking;
-
-	/**
-	 * The cached value of the '{@link #getCache() <em>Cache</em>}' containment reference.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see #getCache()
-	 * @generated
-	 * @ordered
-	 */
-	protected XmlCache cache;
-
-	/**
-	 * changed this to null and removed the generated flag so emf won't generate over it
-	 * we don't want a default for enums, just null if the tag does not exist
-	 */
-	protected static final ExistenceType EXISTENCE_CHECKING_EDEFAULT = null;
-
-	/**
-	 * The cached value of the '{@link #getExistenceChecking() <em>Existence Checking</em>}' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see #getExistenceChecking()
-	 * @generated
-	 * @ordered
-	 */
-	protected ExistenceType existenceChecking = EXISTENCE_CHECKING_EDEFAULT;
-
-	/**
-	 * The cached value of the '{@link #getConverters() <em>Converters</em>}' containment reference list.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see #getConverters()
-	 * @generated
-	 * @ordered
-	 */
-	protected EList<XmlConverter> converters;
-
-	/**
-	 * The cached value of the '{@link #getTypeConverters() <em>Type Converters</em>}' containment reference list.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see #getTypeConverters()
-	 * @generated
-	 * @ordered
-	 */
-	protected EList<XmlTypeConverter> typeConverters;
-
-	/**
-	 * The cached value of the '{@link #getObjectTypeConverters() <em>Object Type Converters</em>}' containment reference list.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see #getObjectTypeConverters()
-	 * @generated
-	 * @ordered
-	 */
-	protected EList<XmlObjectTypeConverter> objectTypeConverters;
-
-	/**
-	 * The cached value of the '{@link #getStructConverters() <em>Struct Converters</em>}' containment reference list.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see #getStructConverters()
-	 * @generated
-	 * @ordered
-	 */
-	protected EList<XmlStructConverter> structConverters;
-
-	/**
-	 * The cached value of the '{@link #getOptimisticLocking() <em>Optimistic Locking</em>}' containment reference.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see #getOptimisticLocking()
-	 * @generated
-	 * @ordered
-	 */
-	protected XmlOptimisticLocking optimisticLocking;
-
-	/**
-	 * The cached value of the '{@link #getCopyPolicy() <em>Copy Policy</em>}' containment reference.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see #getCopyPolicy()
-	 * @generated
-	 * @ordered
-	 */
-	protected XmlCopyPolicy copyPolicy;
-
-	/**
-	 * The cached value of the '{@link #getInstantiationCopyPolicy() <em>Instantiation Copy Policy</em>}' containment reference.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see #getInstantiationCopyPolicy()
-	 * @generated
-	 * @ordered
-	 */
-	protected XmlCopyPolicy instantiationCopyPolicy;
-
-	/**
-	 * The cached value of the '{@link #getCloneCopyPolicy() <em>Clone Copy Policy</em>}' containment reference.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see #getCloneCopyPolicy()
-	 * @generated
-	 * @ordered
-	 */
-	protected XmlCopyPolicy cloneCopyPolicy;
-
-	/**
-	 * The cached value of the '{@link #getNamedStoredProcedureQueries() <em>Named Stored Procedure Queries</em>}' containment reference list.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see #getNamedStoredProcedureQueries()
-	 * @generated
-	 * @ordered
-	 */
-	protected EList<XmlNamedStoredProcedureQuery> namedStoredProcedureQueries;
-
-	/**
-	 * The cached value of the '{@link #getProperties() <em>Properties</em>}' containment reference list.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see #getProperties()
-	 * @generated
-	 * @ordered
-	 */
-	protected EList<XmlProperty> properties;
-
-	/**
-	 * The default value of the '{@link #getExcludeDefaultMappings() <em>Exclude Default Mappings</em>}' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see #getExcludeDefaultMappings()
-	 * @generated
-	 * @ordered
-	 */
-	protected static final Boolean EXCLUDE_DEFAULT_MAPPINGS_EDEFAULT = null;
-
-	/**
-	 * The cached value of the '{@link #getExcludeDefaultMappings() <em>Exclude Default Mappings</em>}' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see #getExcludeDefaultMappings()
-	 * @generated
-	 * @ordered
-	 */
-	protected Boolean excludeDefaultMappings = EXCLUDE_DEFAULT_MAPPINGS_EDEFAULT;
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	protected XmlEntity()
-	{
-		super();
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	protected EClass eStaticClass()
-	{
-		return EclipseLinkOrmPackage.Literals.XML_ENTITY;
-	}
-
-	/**
-	 * Returns the value of the '<em><b>Read Only</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <p>
-	 * If the meaning of the '<em>Read Only</em>' attribute isn't clear,
-	 * there really should be more of a description here...
-	 * </p>
-	 * <!-- end-user-doc -->
-	 * @return the value of the '<em>Read Only</em>' attribute.
-	 * @see #setReadOnly(Boolean)
-	 * @see org.eclipse.jpt.eclipselink.core.resource.orm.EclipseLinkOrmPackage#getXmlReadOnly_ReadOnly()
-	 * @model dataType="org.eclipse.emf.ecore.xml.type.BooleanObject"
-	 * @generated
-	 */
-	public Boolean getReadOnly()
-	{
-		return readOnly;
-	}
-
-	/**
-	 * Sets the value of the '{@link org.eclipse.jpt.eclipselink.core.resource.orm.XmlEntity#getReadOnly <em>Read Only</em>}' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @param value the new value of the '<em>Read Only</em>' attribute.
-	 * @see #getReadOnly()
-	 * @generated
-	 */
-	public void setReadOnly(Boolean newReadOnly)
-	{
-		Boolean oldReadOnly = readOnly;
-		readOnly = newReadOnly;
-		if (eNotificationRequired())
-			eNotify(new ENotificationImpl(this, Notification.SET, EclipseLinkOrmPackage.XML_ENTITY__READ_ONLY, oldReadOnly, readOnly));
-	}
-
-	/**
-	 * Returns the value of the '<em><b>Customizer</b></em>' containment reference.
-	 * <!-- begin-user-doc -->
-	 * <p>
-	 * If the meaning of the '<em>Customizer</em>' containment reference isn't clear,
-	 * there really should be more of a description here...
-	 * </p>
-	 * <!-- end-user-doc -->
-	 * @return the value of the '<em>Customizer</em>' containment reference.
-	 * @see #setCustomizer(XmlCustomizer)
-	 * @see org.eclipse.jpt.eclipselink.core.resource.orm.EclipseLinkOrmPackage#getXmlCustomizerHolder_Customizer()
-	 * @model containment="true"
-	 * @generated
-	 */
-	public XmlCustomizer getCustomizer()
-	{
-		return customizer;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public NotificationChain basicSetCustomizer(XmlCustomizer newCustomizer, NotificationChain msgs)
-	{
-		XmlCustomizer oldCustomizer = customizer;
-		customizer = newCustomizer;
-		if (eNotificationRequired())
-		{
-			ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, EclipseLinkOrmPackage.XML_ENTITY__CUSTOMIZER, oldCustomizer, newCustomizer);
-			if (msgs == null) msgs = notification; else msgs.add(notification);
-		}
-		return msgs;
-	}
-
-	/**
-	 * Sets the value of the '{@link org.eclipse.jpt.eclipselink.core.resource.orm.XmlEntity#getCustomizer <em>Customizer</em>}' containment reference.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @param value the new value of the '<em>Customizer</em>' containment reference.
-	 * @see #getCustomizer()
-	 * @generated
-	 */
-	public void setCustomizer(XmlCustomizer newCustomizer)
-	{
-		if (newCustomizer != customizer)
-		{
-			NotificationChain msgs = null;
-			if (customizer != null)
-				msgs = ((InternalEObject)customizer).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - EclipseLinkOrmPackage.XML_ENTITY__CUSTOMIZER, null, msgs);
-			if (newCustomizer != null)
-				msgs = ((InternalEObject)newCustomizer).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - EclipseLinkOrmPackage.XML_ENTITY__CUSTOMIZER, null, msgs);
-			msgs = basicSetCustomizer(newCustomizer, msgs);
-			if (msgs != null) msgs.dispatch();
-		}
-		else if (eNotificationRequired())
-			eNotify(new ENotificationImpl(this, Notification.SET, EclipseLinkOrmPackage.XML_ENTITY__CUSTOMIZER, newCustomizer, newCustomizer));
-	}
-
-	/**
-	 * Returns the value of the '<em><b>Change Tracking</b></em>' containment reference.
-	 * <!-- begin-user-doc -->
-	 * <p>
-	 * If the meaning of the '<em>Change Tracking</em>' containment reference isn't clear,
-	 * there really should be more of a description here...
-	 * </p>
-	 * <!-- end-user-doc -->
-	 * @return the value of the '<em>Change Tracking</em>' containment reference.
-	 * @see #setChangeTracking(XmlChangeTracking)
-	 * @see org.eclipse.jpt.eclipselink.core.resource.orm.EclipseLinkOrmPackage#getXmlChangeTrackingHolder_ChangeTracking()
-	 * @model containment="true"
-	 * @generated
-	 */
-	public XmlChangeTracking getChangeTracking()
-	{
-		return changeTracking;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public NotificationChain basicSetChangeTracking(XmlChangeTracking newChangeTracking, NotificationChain msgs)
-	{
-		XmlChangeTracking oldChangeTracking = changeTracking;
-		changeTracking = newChangeTracking;
-		if (eNotificationRequired())
-		{
-			ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, EclipseLinkOrmPackage.XML_ENTITY__CHANGE_TRACKING, oldChangeTracking, newChangeTracking);
-			if (msgs == null) msgs = notification; else msgs.add(notification);
-		}
-		return msgs;
-	}
-
-	/**
-	 * Sets the value of the '{@link org.eclipse.jpt.eclipselink.core.resource.orm.XmlEntity#getChangeTracking <em>Change Tracking</em>}' containment reference.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @param value the new value of the '<em>Change Tracking</em>' containment reference.
-	 * @see #getChangeTracking()
-	 * @generated
-	 */
-	public void setChangeTracking(XmlChangeTracking newChangeTracking)
-	{
-		if (newChangeTracking != changeTracking)
-		{
-			NotificationChain msgs = null;
-			if (changeTracking != null)
-				msgs = ((InternalEObject)changeTracking).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - EclipseLinkOrmPackage.XML_ENTITY__CHANGE_TRACKING, null, msgs);
-			if (newChangeTracking != null)
-				msgs = ((InternalEObject)newChangeTracking).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - EclipseLinkOrmPackage.XML_ENTITY__CHANGE_TRACKING, null, msgs);
-			msgs = basicSetChangeTracking(newChangeTracking, msgs);
-			if (msgs != null) msgs.dispatch();
-		}
-		else if (eNotificationRequired())
-			eNotify(new ENotificationImpl(this, Notification.SET, EclipseLinkOrmPackage.XML_ENTITY__CHANGE_TRACKING, newChangeTracking, newChangeTracking));
-	}
-
-	/**
-	 * Returns the value of the '<em><b>Cache</b></em>' containment reference.
-	 * <!-- begin-user-doc -->
-	 * <p>
-	 * If the meaning of the '<em>Cache</em>' containment reference isn't clear,
-	 * there really should be more of a description here...
-	 * </p>
-	 * <!-- end-user-doc -->
-	 * @return the value of the '<em>Cache</em>' containment reference.
-	 * @see #setCache(XmlCache)
-	 * @see org.eclipse.jpt.eclipselink.core.resource.orm.EclipseLinkOrmPackage#getXmlCacheHolder_Cache()
-	 * @model containment="true"
-	 * @generated
-	 */
-	public XmlCache getCache()
-	{
-		return cache;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public NotificationChain basicSetCache(XmlCache newCache, NotificationChain msgs)
-	{
-		XmlCache oldCache = cache;
-		cache = newCache;
-		if (eNotificationRequired())
-		{
-			ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, EclipseLinkOrmPackage.XML_ENTITY__CACHE, oldCache, newCache);
-			if (msgs == null) msgs = notification; else msgs.add(notification);
-		}
-		return msgs;
-	}
-
-	/**
-	 * Sets the value of the '{@link org.eclipse.jpt.eclipselink.core.resource.orm.XmlEntity#getCache <em>Cache</em>}' containment reference.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @param value the new value of the '<em>Cache</em>' containment reference.
-	 * @see #getCache()
-	 * @generated
-	 */
-	public void setCache(XmlCache newCache)
-	{
-		if (newCache != cache)
-		{
-			NotificationChain msgs = null;
-			if (cache != null)
-				msgs = ((InternalEObject)cache).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - EclipseLinkOrmPackage.XML_ENTITY__CACHE, null, msgs);
-			if (newCache != null)
-				msgs = ((InternalEObject)newCache).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - EclipseLinkOrmPackage.XML_ENTITY__CACHE, null, msgs);
-			msgs = basicSetCache(newCache, msgs);
-			if (msgs != null) msgs.dispatch();
-		}
-		else if (eNotificationRequired())
-			eNotify(new ENotificationImpl(this, Notification.SET, EclipseLinkOrmPackage.XML_ENTITY__CACHE, newCache, newCache));
-	}
-
-	/**
-	 * Returns the value of the '<em><b>Existence Checking</b></em>' attribute.
-	 * The default value is <code>""</code>.
-	 * The literals are from the enumeration {@link org.eclipse.jpt.eclipselink.core.resource.orm.ExistenceType}.
-	 * <!-- begin-user-doc -->
-	 * <p>
-	 * If the meaning of the '<em>Existence Checking</em>' attribute isn't clear,
-	 * there really should be more of a description here...
-	 * </p>
-	 * <!-- end-user-doc -->
-	 * @return the value of the '<em>Existence Checking</em>' attribute.
-	 * @see org.eclipse.jpt.eclipselink.core.resource.orm.ExistenceType
-	 * @see #setExistenceChecking(ExistenceType)
-	 * @see org.eclipse.jpt.eclipselink.core.resource.orm.EclipseLinkOrmPackage#getXmlCacheHolder_ExistenceChecking()
-	 * @model default=""
-	 * @generated
-	 */
-	public ExistenceType getExistenceChecking()
-	{
-		return existenceChecking;
-	}
-
-	/**
-	 * Sets the value of the '{@link org.eclipse.jpt.eclipselink.core.resource.orm.XmlEntity#getExistenceChecking <em>Existence Checking</em>}' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @param value the new value of the '<em>Existence Checking</em>' attribute.
-	 * @see org.eclipse.jpt.eclipselink.core.resource.orm.ExistenceType
-	 * @see #getExistenceChecking()
-	 * @generated
-	 */
-	public void setExistenceChecking(ExistenceType newExistenceChecking)
-	{
-		ExistenceType oldExistenceChecking = existenceChecking;
-		existenceChecking = newExistenceChecking == null ? EXISTENCE_CHECKING_EDEFAULT : newExistenceChecking;
-		if (eNotificationRequired())
-			eNotify(new ENotificationImpl(this, Notification.SET, EclipseLinkOrmPackage.XML_ENTITY__EXISTENCE_CHECKING, oldExistenceChecking, existenceChecking));
-	}
-
-	/**
-	 * Returns the value of the '<em><b>Converters</b></em>' containment reference list.
-	 * The list contents are of type {@link org.eclipse.jpt.eclipselink.core.resource.orm.XmlConverter}.
-	 * <!-- begin-user-doc -->
-	 * <p>
-	 * If the meaning of the '<em>Converters</em>' containment reference list isn't clear,
-	 * there really should be more of a description here...
-	 * </p>
-	 * <!-- end-user-doc -->
-	 * @return the value of the '<em>Converters</em>' containment reference list.
-	 * @see org.eclipse.jpt.eclipselink.core.resource.orm.EclipseLinkOrmPackage#getXmlConvertersHolder_Converters()
-	 * @model containment="true"
-	 * @generated
-	 */
-	public EList<XmlConverter> getConverters()
-	{
-		if (converters == null)
-		{
-			converters = new EObjectContainmentEList<XmlConverter>(XmlConverter.class, this, EclipseLinkOrmPackage.XML_ENTITY__CONVERTERS);
-		}
-		return converters;
-	}
-
-	/**
-	 * Returns the value of the '<em><b>Type Converters</b></em>' containment reference list.
-	 * The list contents are of type {@link org.eclipse.jpt.eclipselink.core.resource.orm.XmlTypeConverter}.
-	 * <!-- begin-user-doc -->
-	 * <p>
-	 * If the meaning of the '<em>Type Converters</em>' containment reference list isn't clear,
-	 * there really should be more of a description here...
-	 * </p>
-	 * <!-- end-user-doc -->
-	 * @return the value of the '<em>Type Converters</em>' containment reference list.
-	 * @see org.eclipse.jpt.eclipselink.core.resource.orm.EclipseLinkOrmPackage#getXmlConvertersHolder_TypeConverters()
-	 * @model containment="true"
-	 * @generated
-	 */
-	public EList<XmlTypeConverter> getTypeConverters()
-	{
-		if (typeConverters == null)
-		{
-			typeConverters = new EObjectContainmentEList<XmlTypeConverter>(XmlTypeConverter.class, this, EclipseLinkOrmPackage.XML_ENTITY__TYPE_CONVERTERS);
-		}
-		return typeConverters;
-	}
-
-	/**
-	 * Returns the value of the '<em><b>Object Type Converters</b></em>' containment reference list.
-	 * The list contents are of type {@link org.eclipse.jpt.eclipselink.core.resource.orm.XmlObjectTypeConverter}.
-	 * <!-- begin-user-doc -->
-	 * <p>
-	 * If the meaning of the '<em>Object Type Converters</em>' containment reference list isn't clear,
-	 * there really should be more of a description here...
-	 * </p>
-	 * <!-- end-user-doc -->
-	 * @return the value of the '<em>Object Type Converters</em>' containment reference list.
-	 * @see org.eclipse.jpt.eclipselink.core.resource.orm.EclipseLinkOrmPackage#getXmlConvertersHolder_ObjectTypeConverters()
-	 * @model containment="true"
-	 * @generated
-	 */
-	public EList<XmlObjectTypeConverter> getObjectTypeConverters()
-	{
-		if (objectTypeConverters == null)
-		{
-			objectTypeConverters = new EObjectContainmentEList<XmlObjectTypeConverter>(XmlObjectTypeConverter.class, this, EclipseLinkOrmPackage.XML_ENTITY__OBJECT_TYPE_CONVERTERS);
-		}
-		return objectTypeConverters;
-	}
-
-	/**
-	 * Returns the value of the '<em><b>Struct Converters</b></em>' containment reference list.
-	 * The list contents are of type {@link org.eclipse.jpt.eclipselink.core.resource.orm.XmlStructConverter}.
-	 * <!-- begin-user-doc -->
-	 * <p>
-	 * If the meaning of the '<em>Struct Converters</em>' containment reference list isn't clear,
-	 * there really should be more of a description here...
-	 * </p>
-	 * <!-- end-user-doc -->
-	 * @return the value of the '<em>Struct Converters</em>' containment reference list.
-	 * @see org.eclipse.jpt.eclipselink.core.resource.orm.EclipseLinkOrmPackage#getXmlConvertersHolder_StructConverters()
-	 * @model containment="true"
-	 * @generated
-	 */
-	public EList<XmlStructConverter> getStructConverters()
-	{
-		if (structConverters == null)
-		{
-			structConverters = new EObjectContainmentEList<XmlStructConverter>(XmlStructConverter.class, this, EclipseLinkOrmPackage.XML_ENTITY__STRUCT_CONVERTERS);
-		}
-		return structConverters;
-	}
-
-	/**
-	 * Returns the value of the '<em><b>Optimistic Locking</b></em>' containment reference.
-	 * <!-- begin-user-doc -->
-	 * <p>
-	 * If the meaning of the '<em>Optimistic Locking</em>' containment reference isn't clear,
-	 * there really should be more of a description here...
-	 * </p>
-	 * <!-- end-user-doc -->
-	 * @return the value of the '<em>Optimistic Locking</em>' containment reference.
-	 * @see #setOptimisticLocking(XmlOptimisticLocking)
-	 * @see org.eclipse.jpt.eclipselink.core.resource.orm.EclipseLinkOrmPackage#getXmlEntity_OptimisticLocking()
-	 * @model containment="true"
-	 * @generated
-	 */
-	public XmlOptimisticLocking getOptimisticLocking()
-	{
-		return optimisticLocking;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public NotificationChain basicSetOptimisticLocking(XmlOptimisticLocking newOptimisticLocking, NotificationChain msgs)
-	{
-		XmlOptimisticLocking oldOptimisticLocking = optimisticLocking;
-		optimisticLocking = newOptimisticLocking;
-		if (eNotificationRequired())
-		{
-			ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, EclipseLinkOrmPackage.XML_ENTITY__OPTIMISTIC_LOCKING, oldOptimisticLocking, newOptimisticLocking);
-			if (msgs == null) msgs = notification; else msgs.add(notification);
-		}
-		return msgs;
-	}
-
-	/**
-	 * Sets the value of the '{@link org.eclipse.jpt.eclipselink.core.resource.orm.XmlEntity#getOptimisticLocking <em>Optimistic Locking</em>}' containment reference.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @param value the new value of the '<em>Optimistic Locking</em>' containment reference.
-	 * @see #getOptimisticLocking()
-	 * @generated
-	 */
-	public void setOptimisticLocking(XmlOptimisticLocking newOptimisticLocking)
-	{
-		if (newOptimisticLocking != optimisticLocking)
-		{
-			NotificationChain msgs = null;
-			if (optimisticLocking != null)
-				msgs = ((InternalEObject)optimisticLocking).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - EclipseLinkOrmPackage.XML_ENTITY__OPTIMISTIC_LOCKING, null, msgs);
-			if (newOptimisticLocking != null)
-				msgs = ((InternalEObject)newOptimisticLocking).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - EclipseLinkOrmPackage.XML_ENTITY__OPTIMISTIC_LOCKING, null, msgs);
-			msgs = basicSetOptimisticLocking(newOptimisticLocking, msgs);
-			if (msgs != null) msgs.dispatch();
-		}
-		else if (eNotificationRequired())
-			eNotify(new ENotificationImpl(this, Notification.SET, EclipseLinkOrmPackage.XML_ENTITY__OPTIMISTIC_LOCKING, newOptimisticLocking, newOptimisticLocking));
-	}
-
-	/**
-	 * Returns the value of the '<em><b>Copy Policy</b></em>' containment reference.
-	 * <!-- begin-user-doc -->
-	 * <p>
-	 * If the meaning of the '<em>Copy Policy</em>' containment reference isn't clear,
-	 * there really should be more of a description here...
-	 * </p>
-	 * <!-- end-user-doc -->
-	 * @return the value of the '<em>Copy Policy</em>' containment reference.
-	 * @see #setCopyPolicy(XmlCopyPolicy)
-	 * @see org.eclipse.jpt.eclipselink.core.resource.orm.EclipseLinkOrmPackage#getXmlEntity_CopyPolicy()
-	 * @model containment="true"
-	 * @generated
-	 */
-	public XmlCopyPolicy getCopyPolicy()
-	{
-		return copyPolicy;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public NotificationChain basicSetCopyPolicy(XmlCopyPolicy newCopyPolicy, NotificationChain msgs)
-	{
-		XmlCopyPolicy oldCopyPolicy = copyPolicy;
-		copyPolicy = newCopyPolicy;
-		if (eNotificationRequired())
-		{
-			ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, EclipseLinkOrmPackage.XML_ENTITY__COPY_POLICY, oldCopyPolicy, newCopyPolicy);
-			if (msgs == null) msgs = notification; else msgs.add(notification);
-		}
-		return msgs;
-	}
-
-	/**
-	 * Sets the value of the '{@link org.eclipse.jpt.eclipselink.core.resource.orm.XmlEntity#getCopyPolicy <em>Copy Policy</em>}' containment reference.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @param value the new value of the '<em>Copy Policy</em>' containment reference.
-	 * @see #getCopyPolicy()
-	 * @generated
-	 */
-	public void setCopyPolicy(XmlCopyPolicy newCopyPolicy)
-	{
-		if (newCopyPolicy != copyPolicy)
-		{
-			NotificationChain msgs = null;
-			if (copyPolicy != null)
-				msgs = ((InternalEObject)copyPolicy).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - EclipseLinkOrmPackage.XML_ENTITY__COPY_POLICY, null, msgs);
-			if (newCopyPolicy != null)
-				msgs = ((InternalEObject)newCopyPolicy).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - EclipseLinkOrmPackage.XML_ENTITY__COPY_POLICY, null, msgs);
-			msgs = basicSetCopyPolicy(newCopyPolicy, msgs);
-			if (msgs != null) msgs.dispatch();
-		}
-		else if (eNotificationRequired())
-			eNotify(new ENotificationImpl(this, Notification.SET, EclipseLinkOrmPackage.XML_ENTITY__COPY_POLICY, newCopyPolicy, newCopyPolicy));
-	}
-
-	/**
-	 * Returns the value of the '<em><b>Instantiation Copy Policy</b></em>' containment reference.
-	 * <!-- begin-user-doc -->
-	 * <p>
-	 * If the meaning of the '<em>Instantiation Copy Policy</em>' containment reference isn't clear,
-	 * there really should be more of a description here...
-	 * </p>
-	 * <!-- end-user-doc -->
-	 * @return the value of the '<em>Instantiation Copy Policy</em>' containment reference.
-	 * @see #setInstantiationCopyPolicy(XmlCopyPolicy)
-	 * @see org.eclipse.jpt.eclipselink.core.resource.orm.EclipseLinkOrmPackage#getXmlEntity_InstantiationCopyPolicy()
-	 * @model containment="true"
-	 * @generated
-	 */
-	public XmlCopyPolicy getInstantiationCopyPolicy()
-	{
-		return instantiationCopyPolicy;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public NotificationChain basicSetInstantiationCopyPolicy(XmlCopyPolicy newInstantiationCopyPolicy, NotificationChain msgs)
-	{
-		XmlCopyPolicy oldInstantiationCopyPolicy = instantiationCopyPolicy;
-		instantiationCopyPolicy = newInstantiationCopyPolicy;
-		if (eNotificationRequired())
-		{
-			ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, EclipseLinkOrmPackage.XML_ENTITY__INSTANTIATION_COPY_POLICY, oldInstantiationCopyPolicy, newInstantiationCopyPolicy);
-			if (msgs == null) msgs = notification; else msgs.add(notification);
-		}
-		return msgs;
-	}
-
-	/**
-	 * Sets the value of the '{@link org.eclipse.jpt.eclipselink.core.resource.orm.XmlEntity#getInstantiationCopyPolicy <em>Instantiation Copy Policy</em>}' containment reference.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @param value the new value of the '<em>Instantiation Copy Policy</em>' containment reference.
-	 * @see #getInstantiationCopyPolicy()
-	 * @generated
-	 */
-	public void setInstantiationCopyPolicy(XmlCopyPolicy newInstantiationCopyPolicy)
-	{
-		if (newInstantiationCopyPolicy != instantiationCopyPolicy)
-		{
-			NotificationChain msgs = null;
-			if (instantiationCopyPolicy != null)
-				msgs = ((InternalEObject)instantiationCopyPolicy).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - EclipseLinkOrmPackage.XML_ENTITY__INSTANTIATION_COPY_POLICY, null, msgs);
-			if (newInstantiationCopyPolicy != null)
-				msgs = ((InternalEObject)newInstantiationCopyPolicy).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - EclipseLinkOrmPackage.XML_ENTITY__INSTANTIATION_COPY_POLICY, null, msgs);
-			msgs = basicSetInstantiationCopyPolicy(newInstantiationCopyPolicy, msgs);
-			if (msgs != null) msgs.dispatch();
-		}
-		else if (eNotificationRequired())
-			eNotify(new ENotificationImpl(this, Notification.SET, EclipseLinkOrmPackage.XML_ENTITY__INSTANTIATION_COPY_POLICY, newInstantiationCopyPolicy, newInstantiationCopyPolicy));
-	}
-
-	/**
-	 * Returns the value of the '<em><b>Clone Copy Policy</b></em>' containment reference.
-	 * <!-- begin-user-doc -->
-	 * <p>
-	 * If the meaning of the '<em>Clone Copy Policy</em>' containment reference isn't clear,
-	 * there really should be more of a description here...
-	 * </p>
-	 * <!-- end-user-doc -->
-	 * @return the value of the '<em>Clone Copy Policy</em>' containment reference.
-	 * @see #setCloneCopyPolicy(XmlCopyPolicy)
-	 * @see org.eclipse.jpt.eclipselink.core.resource.orm.EclipseLinkOrmPackage#getXmlEntity_CloneCopyPolicy()
-	 * @model containment="true"
-	 * @generated
-	 */
-	public XmlCopyPolicy getCloneCopyPolicy()
-	{
-		return cloneCopyPolicy;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public NotificationChain basicSetCloneCopyPolicy(XmlCopyPolicy newCloneCopyPolicy, NotificationChain msgs)
-	{
-		XmlCopyPolicy oldCloneCopyPolicy = cloneCopyPolicy;
-		cloneCopyPolicy = newCloneCopyPolicy;
-		if (eNotificationRequired())
-		{
-			ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, EclipseLinkOrmPackage.XML_ENTITY__CLONE_COPY_POLICY, oldCloneCopyPolicy, newCloneCopyPolicy);
-			if (msgs == null) msgs = notification; else msgs.add(notification);
-		}
-		return msgs;
-	}
-
-	/**
-	 * Sets the value of the '{@link org.eclipse.jpt.eclipselink.core.resource.orm.XmlEntity#getCloneCopyPolicy <em>Clone Copy Policy</em>}' containment reference.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @param value the new value of the '<em>Clone Copy Policy</em>' containment reference.
-	 * @see #getCloneCopyPolicy()
-	 * @generated
-	 */
-	public void setCloneCopyPolicy(XmlCopyPolicy newCloneCopyPolicy)
-	{
-		if (newCloneCopyPolicy != cloneCopyPolicy)
-		{
-			NotificationChain msgs = null;
-			if (cloneCopyPolicy != null)
-				msgs = ((InternalEObject)cloneCopyPolicy).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - EclipseLinkOrmPackage.XML_ENTITY__CLONE_COPY_POLICY, null, msgs);
-			if (newCloneCopyPolicy != null)
-				msgs = ((InternalEObject)newCloneCopyPolicy).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - EclipseLinkOrmPackage.XML_ENTITY__CLONE_COPY_POLICY, null, msgs);
-			msgs = basicSetCloneCopyPolicy(newCloneCopyPolicy, msgs);
-			if (msgs != null) msgs.dispatch();
-		}
-		else if (eNotificationRequired())
-			eNotify(new ENotificationImpl(this, Notification.SET, EclipseLinkOrmPackage.XML_ENTITY__CLONE_COPY_POLICY, newCloneCopyPolicy, newCloneCopyPolicy));
-	}
-
-	/**
-	 * Returns the value of the '<em><b>Named Stored Procedure Queries</b></em>' containment reference list.
-	 * The list contents are of type {@link org.eclipse.jpt.eclipselink.core.resource.orm.XmlNamedStoredProcedureQuery}.
-	 * <!-- begin-user-doc -->
-	 * <p>
-	 * If the meaning of the '<em>Named Stored Procedure Queries</em>' containment reference list isn't clear,
-	 * there really should be more of a description here...
-	 * </p>
-	 * <!-- end-user-doc -->
-	 * @return the value of the '<em>Named Stored Procedure Queries</em>' containment reference list.
-	 * @see org.eclipse.jpt.eclipselink.core.resource.orm.EclipseLinkOrmPackage#getXmlEntity_NamedStoredProcedureQueries()
-	 * @model containment="true"
-	 * @generated
-	 */
-	public EList<XmlNamedStoredProcedureQuery> getNamedStoredProcedureQueries()
-	{
-		if (namedStoredProcedureQueries == null)
-		{
-			namedStoredProcedureQueries = new EObjectContainmentEList<XmlNamedStoredProcedureQuery>(XmlNamedStoredProcedureQuery.class, this, EclipseLinkOrmPackage.XML_ENTITY__NAMED_STORED_PROCEDURE_QUERIES);
-		}
-		return namedStoredProcedureQueries;
-	}
-
-	/**
-	 * Returns the value of the '<em><b>Properties</b></em>' containment reference list.
-	 * The list contents are of type {@link org.eclipse.jpt.eclipselink.core.resource.orm.XmlProperty}.
-	 * <!-- begin-user-doc -->
-	 * <p>
-	 * If the meaning of the '<em>Properties</em>' containment reference list isn't clear,
-	 * there really should be more of a description here...
-	 * </p>
-	 * <!-- end-user-doc -->
-	 * @return the value of the '<em>Properties</em>' containment reference list.
-	 * @see org.eclipse.jpt.eclipselink.core.resource.orm.EclipseLinkOrmPackage#getXmlEntity_Properties()
-	 * @model containment="true"
-	 * @generated
-	 */
-	public EList<XmlProperty> getProperties()
-	{
-		if (properties == null)
-		{
-			properties = new EObjectContainmentEList<XmlProperty>(XmlProperty.class, this, EclipseLinkOrmPackage.XML_ENTITY__PROPERTIES);
-		}
-		return properties;
-	}
-
-	/**
-	 * Returns the value of the '<em><b>Exclude Default Mappings</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <p>
-	 * If the meaning of the '<em>Exclude Default Mappings</em>' attribute isn't clear,
-	 * there really should be more of a description here...
-	 * </p>
-	 * <!-- end-user-doc -->
-	 * @return the value of the '<em>Exclude Default Mappings</em>' attribute.
-	 * @see #setExcludeDefaultMappings(Boolean)
-	 * @see org.eclipse.jpt.eclipselink.core.resource.orm.EclipseLinkOrmPackage#getXmlEntity_ExcludeDefaultMappings()
-	 * @model dataType="org.eclipse.emf.ecore.xml.type.BooleanObject"
-	 * @generated
-	 */
-	public Boolean getExcludeDefaultMappings()
-	{
-		return excludeDefaultMappings;
-	}
-
-	/**
-	 * Sets the value of the '{@link org.eclipse.jpt.eclipselink.core.resource.orm.XmlEntity#getExcludeDefaultMappings <em>Exclude Default Mappings</em>}' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @param value the new value of the '<em>Exclude Default Mappings</em>' attribute.
-	 * @see #getExcludeDefaultMappings()
-	 * @generated
-	 */
-	public void setExcludeDefaultMappings(Boolean newExcludeDefaultMappings)
-	{
-		Boolean oldExcludeDefaultMappings = excludeDefaultMappings;
-		excludeDefaultMappings = newExcludeDefaultMappings;
-		if (eNotificationRequired())
-			eNotify(new ENotificationImpl(this, Notification.SET, EclipseLinkOrmPackage.XML_ENTITY__EXCLUDE_DEFAULT_MAPPINGS, oldExcludeDefaultMappings, excludeDefaultMappings));
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs)
-	{
-		switch (featureID)
-		{
-			case EclipseLinkOrmPackage.XML_ENTITY__CUSTOMIZER:
-				return basicSetCustomizer(null, msgs);
-			case EclipseLinkOrmPackage.XML_ENTITY__CHANGE_TRACKING:
-				return basicSetChangeTracking(null, msgs);
-			case EclipseLinkOrmPackage.XML_ENTITY__CACHE:
-				return basicSetCache(null, msgs);
-			case EclipseLinkOrmPackage.XML_ENTITY__CONVERTERS:
-				return ((InternalEList<?>)getConverters()).basicRemove(otherEnd, msgs);
-			case EclipseLinkOrmPackage.XML_ENTITY__TYPE_CONVERTERS:
-				return ((InternalEList<?>)getTypeConverters()).basicRemove(otherEnd, msgs);
-			case EclipseLinkOrmPackage.XML_ENTITY__OBJECT_TYPE_CONVERTERS:
-				return ((InternalEList<?>)getObjectTypeConverters()).basicRemove(otherEnd, msgs);
-			case EclipseLinkOrmPackage.XML_ENTITY__STRUCT_CONVERTERS:
-				return ((InternalEList<?>)getStructConverters()).basicRemove(otherEnd, msgs);
-			case EclipseLinkOrmPackage.XML_ENTITY__OPTIMISTIC_LOCKING:
-				return basicSetOptimisticLocking(null, msgs);
-			case EclipseLinkOrmPackage.XML_ENTITY__COPY_POLICY:
-				return basicSetCopyPolicy(null, msgs);
-			case EclipseLinkOrmPackage.XML_ENTITY__INSTANTIATION_COPY_POLICY:
-				return basicSetInstantiationCopyPolicy(null, msgs);
-			case EclipseLinkOrmPackage.XML_ENTITY__CLONE_COPY_POLICY:
-				return basicSetCloneCopyPolicy(null, msgs);
-			case EclipseLinkOrmPackage.XML_ENTITY__NAMED_STORED_PROCEDURE_QUERIES:
-				return ((InternalEList<?>)getNamedStoredProcedureQueries()).basicRemove(otherEnd, msgs);
-			case EclipseLinkOrmPackage.XML_ENTITY__PROPERTIES:
-				return ((InternalEList<?>)getProperties()).basicRemove(otherEnd, msgs);
-		}
-		return super.eInverseRemove(otherEnd, featureID, msgs);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public Object eGet(int featureID, boolean resolve, boolean coreType)
-	{
-		switch (featureID)
-		{
-			case EclipseLinkOrmPackage.XML_ENTITY__READ_ONLY:
-				return getReadOnly();
-			case EclipseLinkOrmPackage.XML_ENTITY__CUSTOMIZER:
-				return getCustomizer();
-			case EclipseLinkOrmPackage.XML_ENTITY__CHANGE_TRACKING:
-				return getChangeTracking();
-			case EclipseLinkOrmPackage.XML_ENTITY__CACHE:
-				return getCache();
-			case EclipseLinkOrmPackage.XML_ENTITY__EXISTENCE_CHECKING:
-				return getExistenceChecking();
-			case EclipseLinkOrmPackage.XML_ENTITY__CONVERTERS:
-				return getConverters();
-			case EclipseLinkOrmPackage.XML_ENTITY__TYPE_CONVERTERS:
-				return getTypeConverters();
-			case EclipseLinkOrmPackage.XML_ENTITY__OBJECT_TYPE_CONVERTERS:
-				return getObjectTypeConverters();
-			case EclipseLinkOrmPackage.XML_ENTITY__STRUCT_CONVERTERS:
-				return getStructConverters();
-			case EclipseLinkOrmPackage.XML_ENTITY__OPTIMISTIC_LOCKING:
-				return getOptimisticLocking();
-			case EclipseLinkOrmPackage.XML_ENTITY__COPY_POLICY:
-				return getCopyPolicy();
-			case EclipseLinkOrmPackage.XML_ENTITY__INSTANTIATION_COPY_POLICY:
-				return getInstantiationCopyPolicy();
-			case EclipseLinkOrmPackage.XML_ENTITY__CLONE_COPY_POLICY:
-				return getCloneCopyPolicy();
-			case EclipseLinkOrmPackage.XML_ENTITY__NAMED_STORED_PROCEDURE_QUERIES:
-				return getNamedStoredProcedureQueries();
-			case EclipseLinkOrmPackage.XML_ENTITY__PROPERTIES:
-				return getProperties();
-			case EclipseLinkOrmPackage.XML_ENTITY__EXCLUDE_DEFAULT_MAPPINGS:
-				return getExcludeDefaultMappings();
-		}
-		return super.eGet(featureID, resolve, coreType);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@SuppressWarnings("unchecked")
-	@Override
-	public void eSet(int featureID, Object newValue)
-	{
-		switch (featureID)
-		{
-			case EclipseLinkOrmPackage.XML_ENTITY__READ_ONLY:
-				setReadOnly((Boolean)newValue);
-				return;
-			case EclipseLinkOrmPackage.XML_ENTITY__CUSTOMIZER:
-				setCustomizer((XmlCustomizer)newValue);
-				return;
-			case EclipseLinkOrmPackage.XML_ENTITY__CHANGE_TRACKING:
-				setChangeTracking((XmlChangeTracking)newValue);
-				return;
-			case EclipseLinkOrmPackage.XML_ENTITY__CACHE:
-				setCache((XmlCache)newValue);
-				return;
-			case EclipseLinkOrmPackage.XML_ENTITY__EXISTENCE_CHECKING:
-				setExistenceChecking((ExistenceType)newValue);
-				return;
-			case EclipseLinkOrmPackage.XML_ENTITY__CONVERTERS:
-				getConverters().clear();
-				getConverters().addAll((Collection<? extends XmlConverter>)newValue);
-				return;
-			case EclipseLinkOrmPackage.XML_ENTITY__TYPE_CONVERTERS:
-				getTypeConverters().clear();
-				getTypeConverters().addAll((Collection<? extends XmlTypeConverter>)newValue);
-				return;
-			case EclipseLinkOrmPackage.XML_ENTITY__OBJECT_TYPE_CONVERTERS:
-				getObjectTypeConverters().clear();
-				getObjectTypeConverters().addAll((Collection<? extends XmlObjectTypeConverter>)newValue);
-				return;
-			case EclipseLinkOrmPackage.XML_ENTITY__STRUCT_CONVERTERS:
-				getStructConverters().clear();
-				getStructConverters().addAll((Collection<? extends XmlStructConverter>)newValue);
-				return;
-			case EclipseLinkOrmPackage.XML_ENTITY__OPTIMISTIC_LOCKING:
-				setOptimisticLocking((XmlOptimisticLocking)newValue);
-				return;
-			case EclipseLinkOrmPackage.XML_ENTITY__COPY_POLICY:
-				setCopyPolicy((XmlCopyPolicy)newValue);
-				return;
-			case EclipseLinkOrmPackage.XML_ENTITY__INSTANTIATION_COPY_POLICY:
-				setInstantiationCopyPolicy((XmlCopyPolicy)newValue);
-				return;
-			case EclipseLinkOrmPackage.XML_ENTITY__CLONE_COPY_POLICY:
-				setCloneCopyPolicy((XmlCopyPolicy)newValue);
-				return;
-			case EclipseLinkOrmPackage.XML_ENTITY__NAMED_STORED_PROCEDURE_QUERIES:
-				getNamedStoredProcedureQueries().clear();
-				getNamedStoredProcedureQueries().addAll((Collection<? extends XmlNamedStoredProcedureQuery>)newValue);
-				return;
-			case EclipseLinkOrmPackage.XML_ENTITY__PROPERTIES:
-				getProperties().clear();
-				getProperties().addAll((Collection<? extends XmlProperty>)newValue);
-				return;
-			case EclipseLinkOrmPackage.XML_ENTITY__EXCLUDE_DEFAULT_MAPPINGS:
-				setExcludeDefaultMappings((Boolean)newValue);
-				return;
-		}
-		super.eSet(featureID, newValue);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public void eUnset(int featureID)
-	{
-		switch (featureID)
-		{
-			case EclipseLinkOrmPackage.XML_ENTITY__READ_ONLY:
-				setReadOnly(READ_ONLY_EDEFAULT);
-				return;
-			case EclipseLinkOrmPackage.XML_ENTITY__CUSTOMIZER:
-				setCustomizer((XmlCustomizer)null);
-				return;
-			case EclipseLinkOrmPackage.XML_ENTITY__CHANGE_TRACKING:
-				setChangeTracking((XmlChangeTracking)null);
-				return;
-			case EclipseLinkOrmPackage.XML_ENTITY__CACHE:
-				setCache((XmlCache)null);
-				return;
-			case EclipseLinkOrmPackage.XML_ENTITY__EXISTENCE_CHECKING:
-				setExistenceChecking(EXISTENCE_CHECKING_EDEFAULT);
-				return;
-			case EclipseLinkOrmPackage.XML_ENTITY__CONVERTERS:
-				getConverters().clear();
-				return;
-			case EclipseLinkOrmPackage.XML_ENTITY__TYPE_CONVERTERS:
-				getTypeConverters().clear();
-				return;
-			case EclipseLinkOrmPackage.XML_ENTITY__OBJECT_TYPE_CONVERTERS:
-				getObjectTypeConverters().clear();
-				return;
-			case EclipseLinkOrmPackage.XML_ENTITY__STRUCT_CONVERTERS:
-				getStructConverters().clear();
-				return;
-			case EclipseLinkOrmPackage.XML_ENTITY__OPTIMISTIC_LOCKING:
-				setOptimisticLocking((XmlOptimisticLocking)null);
-				return;
-			case EclipseLinkOrmPackage.XML_ENTITY__COPY_POLICY:
-				setCopyPolicy((XmlCopyPolicy)null);
-				return;
-			case EclipseLinkOrmPackage.XML_ENTITY__INSTANTIATION_COPY_POLICY:
-				setInstantiationCopyPolicy((XmlCopyPolicy)null);
-				return;
-			case EclipseLinkOrmPackage.XML_ENTITY__CLONE_COPY_POLICY:
-				setCloneCopyPolicy((XmlCopyPolicy)null);
-				return;
-			case EclipseLinkOrmPackage.XML_ENTITY__NAMED_STORED_PROCEDURE_QUERIES:
-				getNamedStoredProcedureQueries().clear();
-				return;
-			case EclipseLinkOrmPackage.XML_ENTITY__PROPERTIES:
-				getProperties().clear();
-				return;
-			case EclipseLinkOrmPackage.XML_ENTITY__EXCLUDE_DEFAULT_MAPPINGS:
-				setExcludeDefaultMappings(EXCLUDE_DEFAULT_MAPPINGS_EDEFAULT);
-				return;
-		}
-		super.eUnset(featureID);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public boolean eIsSet(int featureID)
-	{
-		switch (featureID)
-		{
-			case EclipseLinkOrmPackage.XML_ENTITY__READ_ONLY:
-				return READ_ONLY_EDEFAULT == null ? readOnly != null : !READ_ONLY_EDEFAULT.equals(readOnly);
-			case EclipseLinkOrmPackage.XML_ENTITY__CUSTOMIZER:
-				return customizer != null;
-			case EclipseLinkOrmPackage.XML_ENTITY__CHANGE_TRACKING:
-				return changeTracking != null;
-			case EclipseLinkOrmPackage.XML_ENTITY__CACHE:
-				return cache != null;
-			case EclipseLinkOrmPackage.XML_ENTITY__EXISTENCE_CHECKING:
-				return existenceChecking != EXISTENCE_CHECKING_EDEFAULT;
-			case EclipseLinkOrmPackage.XML_ENTITY__CONVERTERS:
-				return converters != null && !converters.isEmpty();
-			case EclipseLinkOrmPackage.XML_ENTITY__TYPE_CONVERTERS:
-				return typeConverters != null && !typeConverters.isEmpty();
-			case EclipseLinkOrmPackage.XML_ENTITY__OBJECT_TYPE_CONVERTERS:
-				return objectTypeConverters != null && !objectTypeConverters.isEmpty();
-			case EclipseLinkOrmPackage.XML_ENTITY__STRUCT_CONVERTERS:
-				return structConverters != null && !structConverters.isEmpty();
-			case EclipseLinkOrmPackage.XML_ENTITY__OPTIMISTIC_LOCKING:
-				return optimisticLocking != null;
-			case EclipseLinkOrmPackage.XML_ENTITY__COPY_POLICY:
-				return copyPolicy != null;
-			case EclipseLinkOrmPackage.XML_ENTITY__INSTANTIATION_COPY_POLICY:
-				return instantiationCopyPolicy != null;
-			case EclipseLinkOrmPackage.XML_ENTITY__CLONE_COPY_POLICY:
-				return cloneCopyPolicy != null;
-			case EclipseLinkOrmPackage.XML_ENTITY__NAMED_STORED_PROCEDURE_QUERIES:
-				return namedStoredProcedureQueries != null && !namedStoredProcedureQueries.isEmpty();
-			case EclipseLinkOrmPackage.XML_ENTITY__PROPERTIES:
-				return properties != null && !properties.isEmpty();
-			case EclipseLinkOrmPackage.XML_ENTITY__EXCLUDE_DEFAULT_MAPPINGS:
-				return EXCLUDE_DEFAULT_MAPPINGS_EDEFAULT == null ? excludeDefaultMappings != null : !EXCLUDE_DEFAULT_MAPPINGS_EDEFAULT.equals(excludeDefaultMappings);
-		}
-		return super.eIsSet(featureID);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public int eBaseStructuralFeatureID(int derivedFeatureID, Class<?> baseClass)
-	{
-		if (baseClass == XmlReadOnly.class)
-		{
-			switch (derivedFeatureID)
-			{
-				case EclipseLinkOrmPackage.XML_ENTITY__READ_ONLY: return EclipseLinkOrmPackage.XML_READ_ONLY__READ_ONLY;
-				default: return -1;
-			}
-		}
-		if (baseClass == XmlCustomizerHolder.class)
-		{
-			switch (derivedFeatureID)
-			{
-				case EclipseLinkOrmPackage.XML_ENTITY__CUSTOMIZER: return EclipseLinkOrmPackage.XML_CUSTOMIZER_HOLDER__CUSTOMIZER;
-				default: return -1;
-			}
-		}
-		if (baseClass == XmlChangeTrackingHolder.class)
-		{
-			switch (derivedFeatureID)
-			{
-				case EclipseLinkOrmPackage.XML_ENTITY__CHANGE_TRACKING: return EclipseLinkOrmPackage.XML_CHANGE_TRACKING_HOLDER__CHANGE_TRACKING;
-				default: return -1;
-			}
-		}
-		if (baseClass == XmlCacheHolder.class)
-		{
-			switch (derivedFeatureID)
-			{
-				case EclipseLinkOrmPackage.XML_ENTITY__CACHE: return EclipseLinkOrmPackage.XML_CACHE_HOLDER__CACHE;
-				case EclipseLinkOrmPackage.XML_ENTITY__EXISTENCE_CHECKING: return EclipseLinkOrmPackage.XML_CACHE_HOLDER__EXISTENCE_CHECKING;
-				default: return -1;
-			}
-		}
-		if (baseClass == XmlConvertersHolder.class)
-		{
-			switch (derivedFeatureID)
-			{
-				case EclipseLinkOrmPackage.XML_ENTITY__CONVERTERS: return EclipseLinkOrmPackage.XML_CONVERTERS_HOLDER__CONVERTERS;
-				case EclipseLinkOrmPackage.XML_ENTITY__TYPE_CONVERTERS: return EclipseLinkOrmPackage.XML_CONVERTERS_HOLDER__TYPE_CONVERTERS;
-				case EclipseLinkOrmPackage.XML_ENTITY__OBJECT_TYPE_CONVERTERS: return EclipseLinkOrmPackage.XML_CONVERTERS_HOLDER__OBJECT_TYPE_CONVERTERS;
-				case EclipseLinkOrmPackage.XML_ENTITY__STRUCT_CONVERTERS: return EclipseLinkOrmPackage.XML_CONVERTERS_HOLDER__STRUCT_CONVERTERS;
-				default: return -1;
-			}
-		}
-		return super.eBaseStructuralFeatureID(derivedFeatureID, baseClass);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public int eDerivedStructuralFeatureID(int baseFeatureID, Class<?> baseClass)
-	{
-		if (baseClass == XmlReadOnly.class)
-		{
-			switch (baseFeatureID)
-			{
-				case EclipseLinkOrmPackage.XML_READ_ONLY__READ_ONLY: return EclipseLinkOrmPackage.XML_ENTITY__READ_ONLY;
-				default: return -1;
-			}
-		}
-		if (baseClass == XmlCustomizerHolder.class)
-		{
-			switch (baseFeatureID)
-			{
-				case EclipseLinkOrmPackage.XML_CUSTOMIZER_HOLDER__CUSTOMIZER: return EclipseLinkOrmPackage.XML_ENTITY__CUSTOMIZER;
-				default: return -1;
-			}
-		}
-		if (baseClass == XmlChangeTrackingHolder.class)
-		{
-			switch (baseFeatureID)
-			{
-				case EclipseLinkOrmPackage.XML_CHANGE_TRACKING_HOLDER__CHANGE_TRACKING: return EclipseLinkOrmPackage.XML_ENTITY__CHANGE_TRACKING;
-				default: return -1;
-			}
-		}
-		if (baseClass == XmlCacheHolder.class)
-		{
-			switch (baseFeatureID)
-			{
-				case EclipseLinkOrmPackage.XML_CACHE_HOLDER__CACHE: return EclipseLinkOrmPackage.XML_ENTITY__CACHE;
-				case EclipseLinkOrmPackage.XML_CACHE_HOLDER__EXISTENCE_CHECKING: return EclipseLinkOrmPackage.XML_ENTITY__EXISTENCE_CHECKING;
-				default: return -1;
-			}
-		}
-		if (baseClass == XmlConvertersHolder.class)
-		{
-			switch (baseFeatureID)
-			{
-				case EclipseLinkOrmPackage.XML_CONVERTERS_HOLDER__CONVERTERS: return EclipseLinkOrmPackage.XML_ENTITY__CONVERTERS;
-				case EclipseLinkOrmPackage.XML_CONVERTERS_HOLDER__TYPE_CONVERTERS: return EclipseLinkOrmPackage.XML_ENTITY__TYPE_CONVERTERS;
-				case EclipseLinkOrmPackage.XML_CONVERTERS_HOLDER__OBJECT_TYPE_CONVERTERS: return EclipseLinkOrmPackage.XML_ENTITY__OBJECT_TYPE_CONVERTERS;
-				case EclipseLinkOrmPackage.XML_CONVERTERS_HOLDER__STRUCT_CONVERTERS: return EclipseLinkOrmPackage.XML_ENTITY__STRUCT_CONVERTERS;
-				default: return -1;
-			}
-		}
-		return super.eDerivedStructuralFeatureID(baseFeatureID, baseClass);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public String toString()
-	{
-		if (eIsProxy()) return super.toString();
-
-		StringBuffer result = new StringBuffer(super.toString());
-		result.append(" (readOnly: ");
-		result.append(readOnly);
-		result.append(", existenceChecking: ");
-		result.append(existenceChecking);
-		result.append(", excludeDefaultMappings: ");
-		result.append(excludeDefaultMappings);
-		result.append(')');
-		return result.toString();
-	}
-
-	public TextRange getReadOnlyTextRange() {
-		return getAttributeTextRange(EclipseLinkOrmXmlMapper.READ_ONLY);
-	}
-}
\ No newline at end of file
diff --git a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/resource/orm/XmlEntityMappings.java b/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/resource/orm/XmlEntityMappings.java
deleted file mode 100644
index 5fe9886..0000000
--- a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/resource/orm/XmlEntityMappings.java
+++ /dev/null
@@ -1,415 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008, 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.eclipselink.core.resource.orm;
-
-import java.util.Collection;
-import org.eclipse.emf.common.notify.NotificationChain;
-import org.eclipse.emf.common.util.EList;
-import org.eclipse.emf.ecore.EClass;
-import org.eclipse.emf.ecore.InternalEObject;
-import org.eclipse.emf.ecore.util.EObjectContainmentEList;
-import org.eclipse.emf.ecore.util.InternalEList;
-
-/**
- * <!-- begin-user-doc -->
- * 
- * A representation of the model object '<em><b>Xml Entity Mappings</b></em>'.
- *  
- * Provisional API: This interface is part of an interim API that is still
- * under development and expected to change significantly before reaching
- * stability. It is available at this early stage to solicit feedback from
- * pioneering adopters on the understanding that any code that uses this API
- * will almost certainly be broken (repeatedly) as the API evolves.
- * 
- * @version 2.1
- * @since 2.1
- * 
- * <!-- end-user-doc -->
- *
- * <p>
- * The following features are supported:
- * <ul>
- *   <li>{@link org.eclipse.jpt.eclipselink.core.resource.orm.XmlEntityMappings#getNamedStoredProcedureQueries <em>Named Stored Procedure Queries</em>}</li>
- * </ul>
- * </p>
- *
- * @see org.eclipse.jpt.eclipselink.core.resource.orm.EclipseLinkOrmPackage#getXmlEntityMappings()
- * @model kind="class"
- * @generated
- */
-public class XmlEntityMappings extends org.eclipse.jpt.core.resource.orm.XmlEntityMappings implements XmlConvertersHolder
-{
-	/**
-	 * The cached value of the '{@link #getConverters() <em>Converters</em>}' containment reference list.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see #getConverters()
-	 * @generated
-	 * @ordered
-	 */
-	protected EList<XmlConverter> converters;
-
-	/**
-	 * The cached value of the '{@link #getTypeConverters() <em>Type Converters</em>}' containment reference list.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see #getTypeConverters()
-	 * @generated
-	 * @ordered
-	 */
-	protected EList<XmlTypeConverter> typeConverters;
-
-	/**
-	 * The cached value of the '{@link #getObjectTypeConverters() <em>Object Type Converters</em>}' containment reference list.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see #getObjectTypeConverters()
-	 * @generated
-	 * @ordered
-	 */
-	protected EList<XmlObjectTypeConverter> objectTypeConverters;
-
-	/**
-	 * The cached value of the '{@link #getStructConverters() <em>Struct Converters</em>}' containment reference list.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see #getStructConverters()
-	 * @generated
-	 * @ordered
-	 */
-	protected EList<XmlStructConverter> structConverters;
-
-	/**
-	 * The cached value of the '{@link #getNamedStoredProcedureQueries() <em>Named Stored Procedure Queries</em>}' containment reference list.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see #getNamedStoredProcedureQueries()
-	 * @generated
-	 * @ordered
-	 */
-	protected EList<XmlNamedStoredProcedureQuery> namedStoredProcedureQueries;
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	protected XmlEntityMappings()
-	{
-		super();
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	protected EClass eStaticClass()
-	{
-		return EclipseLinkOrmPackage.Literals.XML_ENTITY_MAPPINGS;
-	}
-
-	/**
-	 * Returns the value of the '<em><b>Converters</b></em>' containment reference list.
-	 * The list contents are of type {@link org.eclipse.jpt.eclipselink.core.resource.orm.XmlConverter}.
-	 * <!-- begin-user-doc -->
-	 * <p>
-	 * If the meaning of the '<em>Converters</em>' containment reference list isn't clear,
-	 * there really should be more of a description here...
-	 * </p>
-	 * <!-- end-user-doc -->
-	 * @return the value of the '<em>Converters</em>' containment reference list.
-	 * @see org.eclipse.jpt.eclipselink.core.resource.orm.EclipseLinkOrmPackage#getXmlConvertersHolder_Converters()
-	 * @model containment="true"
-	 * @generated
-	 */
-	public EList<XmlConverter> getConverters()
-	{
-		if (converters == null)
-		{
-			converters = new EObjectContainmentEList<XmlConverter>(XmlConverter.class, this, EclipseLinkOrmPackage.XML_ENTITY_MAPPINGS__CONVERTERS);
-		}
-		return converters;
-	}
-
-	/**
-	 * Returns the value of the '<em><b>Type Converters</b></em>' containment reference list.
-	 * The list contents are of type {@link org.eclipse.jpt.eclipselink.core.resource.orm.XmlTypeConverter}.
-	 * <!-- begin-user-doc -->
-	 * <p>
-	 * If the meaning of the '<em>Type Converters</em>' containment reference list isn't clear,
-	 * there really should be more of a description here...
-	 * </p>
-	 * <!-- end-user-doc -->
-	 * @return the value of the '<em>Type Converters</em>' containment reference list.
-	 * @see org.eclipse.jpt.eclipselink.core.resource.orm.EclipseLinkOrmPackage#getXmlConvertersHolder_TypeConverters()
-	 * @model containment="true"
-	 * @generated
-	 */
-	public EList<XmlTypeConverter> getTypeConverters()
-	{
-		if (typeConverters == null)
-		{
-			typeConverters = new EObjectContainmentEList<XmlTypeConverter>(XmlTypeConverter.class, this, EclipseLinkOrmPackage.XML_ENTITY_MAPPINGS__TYPE_CONVERTERS);
-		}
-		return typeConverters;
-	}
-
-	/**
-	 * Returns the value of the '<em><b>Object Type Converters</b></em>' containment reference list.
-	 * The list contents are of type {@link org.eclipse.jpt.eclipselink.core.resource.orm.XmlObjectTypeConverter}.
-	 * <!-- begin-user-doc -->
-	 * <p>
-	 * If the meaning of the '<em>Object Type Converters</em>' containment reference list isn't clear,
-	 * there really should be more of a description here...
-	 * </p>
-	 * <!-- end-user-doc -->
-	 * @return the value of the '<em>Object Type Converters</em>' containment reference list.
-	 * @see org.eclipse.jpt.eclipselink.core.resource.orm.EclipseLinkOrmPackage#getXmlConvertersHolder_ObjectTypeConverters()
-	 * @model containment="true"
-	 * @generated
-	 */
-	public EList<XmlObjectTypeConverter> getObjectTypeConverters()
-	{
-		if (objectTypeConverters == null)
-		{
-			objectTypeConverters = new EObjectContainmentEList<XmlObjectTypeConverter>(XmlObjectTypeConverter.class, this, EclipseLinkOrmPackage.XML_ENTITY_MAPPINGS__OBJECT_TYPE_CONVERTERS);
-		}
-		return objectTypeConverters;
-	}
-
-	/**
-	 * Returns the value of the '<em><b>Struct Converters</b></em>' containment reference list.
-	 * The list contents are of type {@link org.eclipse.jpt.eclipselink.core.resource.orm.XmlStructConverter}.
-	 * <!-- begin-user-doc -->
-	 * <p>
-	 * If the meaning of the '<em>Struct Converters</em>' containment reference list isn't clear,
-	 * there really should be more of a description here...
-	 * </p>
-	 * <!-- end-user-doc -->
-	 * @return the value of the '<em>Struct Converters</em>' containment reference list.
-	 * @see org.eclipse.jpt.eclipselink.core.resource.orm.EclipseLinkOrmPackage#getXmlConvertersHolder_StructConverters()
-	 * @model containment="true"
-	 * @generated
-	 */
-	public EList<XmlStructConverter> getStructConverters()
-	{
-		if (structConverters == null)
-		{
-			structConverters = new EObjectContainmentEList<XmlStructConverter>(XmlStructConverter.class, this, EclipseLinkOrmPackage.XML_ENTITY_MAPPINGS__STRUCT_CONVERTERS);
-		}
-		return structConverters;
-	}
-
-	/**
-	 * Returns the value of the '<em><b>Named Stored Procedure Queries</b></em>' containment reference list.
-	 * The list contents are of type {@link org.eclipse.jpt.eclipselink.core.resource.orm.XmlNamedStoredProcedureQuery}.
-	 * <!-- begin-user-doc -->
-	 * <p>
-	 * If the meaning of the '<em>Named Stored Procedure Queries</em>' containment reference list isn't clear,
-	 * there really should be more of a description here...
-	 * </p>
-	 * <!-- end-user-doc -->
-	 * @return the value of the '<em>Named Stored Procedure Queries</em>' containment reference list.
-	 * @see org.eclipse.jpt.eclipselink.core.resource.orm.EclipseLinkOrmPackage#getXmlEntityMappings_NamedStoredProcedureQueries()
-	 * @model containment="true"
-	 * @generated
-	 */
-	public EList<XmlNamedStoredProcedureQuery> getNamedStoredProcedureQueries()
-	{
-		if (namedStoredProcedureQueries == null)
-		{
-			namedStoredProcedureQueries = new EObjectContainmentEList<XmlNamedStoredProcedureQuery>(XmlNamedStoredProcedureQuery.class, this, EclipseLinkOrmPackage.XML_ENTITY_MAPPINGS__NAMED_STORED_PROCEDURE_QUERIES);
-		}
-		return namedStoredProcedureQueries;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs)
-	{
-		switch (featureID)
-		{
-			case EclipseLinkOrmPackage.XML_ENTITY_MAPPINGS__CONVERTERS:
-				return ((InternalEList<?>)getConverters()).basicRemove(otherEnd, msgs);
-			case EclipseLinkOrmPackage.XML_ENTITY_MAPPINGS__TYPE_CONVERTERS:
-				return ((InternalEList<?>)getTypeConverters()).basicRemove(otherEnd, msgs);
-			case EclipseLinkOrmPackage.XML_ENTITY_MAPPINGS__OBJECT_TYPE_CONVERTERS:
-				return ((InternalEList<?>)getObjectTypeConverters()).basicRemove(otherEnd, msgs);
-			case EclipseLinkOrmPackage.XML_ENTITY_MAPPINGS__STRUCT_CONVERTERS:
-				return ((InternalEList<?>)getStructConverters()).basicRemove(otherEnd, msgs);
-			case EclipseLinkOrmPackage.XML_ENTITY_MAPPINGS__NAMED_STORED_PROCEDURE_QUERIES:
-				return ((InternalEList<?>)getNamedStoredProcedureQueries()).basicRemove(otherEnd, msgs);
-		}
-		return super.eInverseRemove(otherEnd, featureID, msgs);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public Object eGet(int featureID, boolean resolve, boolean coreType)
-	{
-		switch (featureID)
-		{
-			case EclipseLinkOrmPackage.XML_ENTITY_MAPPINGS__CONVERTERS:
-				return getConverters();
-			case EclipseLinkOrmPackage.XML_ENTITY_MAPPINGS__TYPE_CONVERTERS:
-				return getTypeConverters();
-			case EclipseLinkOrmPackage.XML_ENTITY_MAPPINGS__OBJECT_TYPE_CONVERTERS:
-				return getObjectTypeConverters();
-			case EclipseLinkOrmPackage.XML_ENTITY_MAPPINGS__STRUCT_CONVERTERS:
-				return getStructConverters();
-			case EclipseLinkOrmPackage.XML_ENTITY_MAPPINGS__NAMED_STORED_PROCEDURE_QUERIES:
-				return getNamedStoredProcedureQueries();
-		}
-		return super.eGet(featureID, resolve, coreType);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@SuppressWarnings("unchecked")
-	@Override
-	public void eSet(int featureID, Object newValue)
-	{
-		switch (featureID)
-		{
-			case EclipseLinkOrmPackage.XML_ENTITY_MAPPINGS__CONVERTERS:
-				getConverters().clear();
-				getConverters().addAll((Collection<? extends XmlConverter>)newValue);
-				return;
-			case EclipseLinkOrmPackage.XML_ENTITY_MAPPINGS__TYPE_CONVERTERS:
-				getTypeConverters().clear();
-				getTypeConverters().addAll((Collection<? extends XmlTypeConverter>)newValue);
-				return;
-			case EclipseLinkOrmPackage.XML_ENTITY_MAPPINGS__OBJECT_TYPE_CONVERTERS:
-				getObjectTypeConverters().clear();
-				getObjectTypeConverters().addAll((Collection<? extends XmlObjectTypeConverter>)newValue);
-				return;
-			case EclipseLinkOrmPackage.XML_ENTITY_MAPPINGS__STRUCT_CONVERTERS:
-				getStructConverters().clear();
-				getStructConverters().addAll((Collection<? extends XmlStructConverter>)newValue);
-				return;
-			case EclipseLinkOrmPackage.XML_ENTITY_MAPPINGS__NAMED_STORED_PROCEDURE_QUERIES:
-				getNamedStoredProcedureQueries().clear();
-				getNamedStoredProcedureQueries().addAll((Collection<? extends XmlNamedStoredProcedureQuery>)newValue);
-				return;
-		}
-		super.eSet(featureID, newValue);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public void eUnset(int featureID)
-	{
-		switch (featureID)
-		{
-			case EclipseLinkOrmPackage.XML_ENTITY_MAPPINGS__CONVERTERS:
-				getConverters().clear();
-				return;
-			case EclipseLinkOrmPackage.XML_ENTITY_MAPPINGS__TYPE_CONVERTERS:
-				getTypeConverters().clear();
-				return;
-			case EclipseLinkOrmPackage.XML_ENTITY_MAPPINGS__OBJECT_TYPE_CONVERTERS:
-				getObjectTypeConverters().clear();
-				return;
-			case EclipseLinkOrmPackage.XML_ENTITY_MAPPINGS__STRUCT_CONVERTERS:
-				getStructConverters().clear();
-				return;
-			case EclipseLinkOrmPackage.XML_ENTITY_MAPPINGS__NAMED_STORED_PROCEDURE_QUERIES:
-				getNamedStoredProcedureQueries().clear();
-				return;
-		}
-		super.eUnset(featureID);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public boolean eIsSet(int featureID)
-	{
-		switch (featureID)
-		{
-			case EclipseLinkOrmPackage.XML_ENTITY_MAPPINGS__CONVERTERS:
-				return converters != null && !converters.isEmpty();
-			case EclipseLinkOrmPackage.XML_ENTITY_MAPPINGS__TYPE_CONVERTERS:
-				return typeConverters != null && !typeConverters.isEmpty();
-			case EclipseLinkOrmPackage.XML_ENTITY_MAPPINGS__OBJECT_TYPE_CONVERTERS:
-				return objectTypeConverters != null && !objectTypeConverters.isEmpty();
-			case EclipseLinkOrmPackage.XML_ENTITY_MAPPINGS__STRUCT_CONVERTERS:
-				return structConverters != null && !structConverters.isEmpty();
-			case EclipseLinkOrmPackage.XML_ENTITY_MAPPINGS__NAMED_STORED_PROCEDURE_QUERIES:
-				return namedStoredProcedureQueries != null && !namedStoredProcedureQueries.isEmpty();
-		}
-		return super.eIsSet(featureID);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public int eBaseStructuralFeatureID(int derivedFeatureID, Class<?> baseClass)
-	{
-		if (baseClass == XmlConvertersHolder.class)
-		{
-			switch (derivedFeatureID)
-			{
-				case EclipseLinkOrmPackage.XML_ENTITY_MAPPINGS__CONVERTERS: return EclipseLinkOrmPackage.XML_CONVERTERS_HOLDER__CONVERTERS;
-				case EclipseLinkOrmPackage.XML_ENTITY_MAPPINGS__TYPE_CONVERTERS: return EclipseLinkOrmPackage.XML_CONVERTERS_HOLDER__TYPE_CONVERTERS;
-				case EclipseLinkOrmPackage.XML_ENTITY_MAPPINGS__OBJECT_TYPE_CONVERTERS: return EclipseLinkOrmPackage.XML_CONVERTERS_HOLDER__OBJECT_TYPE_CONVERTERS;
-				case EclipseLinkOrmPackage.XML_ENTITY_MAPPINGS__STRUCT_CONVERTERS: return EclipseLinkOrmPackage.XML_CONVERTERS_HOLDER__STRUCT_CONVERTERS;
-				default: return -1;
-			}
-		}
-		return super.eBaseStructuralFeatureID(derivedFeatureID, baseClass);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public int eDerivedStructuralFeatureID(int baseFeatureID, Class<?> baseClass)
-	{
-		if (baseClass == XmlConvertersHolder.class)
-		{
-			switch (baseFeatureID)
-			{
-				case EclipseLinkOrmPackage.XML_CONVERTERS_HOLDER__CONVERTERS: return EclipseLinkOrmPackage.XML_ENTITY_MAPPINGS__CONVERTERS;
-				case EclipseLinkOrmPackage.XML_CONVERTERS_HOLDER__TYPE_CONVERTERS: return EclipseLinkOrmPackage.XML_ENTITY_MAPPINGS__TYPE_CONVERTERS;
-				case EclipseLinkOrmPackage.XML_CONVERTERS_HOLDER__OBJECT_TYPE_CONVERTERS: return EclipseLinkOrmPackage.XML_ENTITY_MAPPINGS__OBJECT_TYPE_CONVERTERS;
-				case EclipseLinkOrmPackage.XML_CONVERTERS_HOLDER__STRUCT_CONVERTERS: return EclipseLinkOrmPackage.XML_ENTITY_MAPPINGS__STRUCT_CONVERTERS;
-				default: return -1;
-			}
-		}
-		return super.eDerivedStructuralFeatureID(baseFeatureID, baseClass);
-	}
-
-} // XmlEntityMappings
diff --git a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/resource/orm/XmlId.java b/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/resource/orm/XmlId.java
deleted file mode 100644
index 3881627..0000000
--- a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/resource/orm/XmlId.java
+++ /dev/null
@@ -1,60 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.eclipselink.core.resource.orm;
-
-import org.eclipse.emf.common.util.EList;
-
-
-/**
- * <!-- begin-user-doc -->
- * 
- * A representation of the model object '<em><b>Xml Id</b></em>'.
- *  
- * Provisional API: This interface is part of an interim API that is still
- * under development and expected to change significantly before reaching
- * stability. It is available at this early stage to solicit feedback from
- * pioneering adopters on the understanding that any code that uses this API
- * will almost certainly be broken (repeatedly) as the API evolves.
- * 
- * @version 2.1
- * @since 2.1
- * 
- * <!-- end-user-doc -->
- *
- * <p>
- * The following features are supported:
- * <ul>
- *   <li>{@link org.eclipse.jpt.eclipselink.core.resource.orm.XmlId#getProperties <em>Properties</em>}</li>
- * </ul>
- * </p>
- *
- * @see org.eclipse.jpt.eclipselink.core.resource.orm.EclipseLinkOrmPackage#getXmlId()
- * @model kind="class" interface="true" abstract="true"
- * @generated
- */
-public interface XmlId extends org.eclipse.jpt.core.resource.orm.XmlId, XmlMutable, XmlConvertibleMapping, XmlAccessMethodsHolder
-{
-
-	/**
-	 * Returns the value of the '<em><b>Properties</b></em>' containment reference list.
-	 * The list contents are of type {@link org.eclipse.jpt.eclipselink.core.resource.orm.XmlProperty}.
-	 * <!-- begin-user-doc -->
-	 * <p>
-	 * If the meaning of the '<em>Properties</em>' containment reference list isn't clear,
-	 * there really should be more of a description here...
-	 * </p>
-	 * <!-- end-user-doc -->
-	 * @return the value of the '<em>Properties</em>' containment reference list.
-	 * @see org.eclipse.jpt.eclipselink.core.resource.orm.EclipseLinkOrmPackage#getXmlId_Properties()
-	 * @model containment="true"
-	 * @generated
-	 */
-	EList<XmlProperty> getProperties();
-} // XmlId
diff --git a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/resource/orm/XmlIdImpl.java b/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/resource/orm/XmlIdImpl.java
deleted file mode 100644
index 87adaa9..0000000
--- a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/resource/orm/XmlIdImpl.java
+++ /dev/null
@@ -1,859 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.eclipselink.core.resource.orm;
-
-import java.util.Collection;
-import org.eclipse.emf.common.notify.Notification;
-import org.eclipse.emf.common.notify.NotificationChain;
-import org.eclipse.emf.common.util.EList;
-import org.eclipse.emf.ecore.EClass;
-import org.eclipse.emf.ecore.InternalEObject;
-import org.eclipse.emf.ecore.impl.ENotificationImpl;
-import org.eclipse.emf.ecore.util.EObjectContainmentEList;
-import org.eclipse.emf.ecore.util.InternalEList;
-import org.eclipse.jpt.core.utility.TextRange;
-import org.eclipse.jpt.eclipselink.core.internal.resource.orm.translators.EclipseLinkOrmXmlMapper;
-
-/**
- * <!-- begin-user-doc -->
- * 
- * A representation of the model object '<em><b>Xml Id</b></em>'.
- *  
- * Provisional API: This interface is part of an interim API that is still
- * under development and expected to change significantly before reaching
- * stability. It is available at this early stage to solicit feedback from
- * pioneering adopters on the understanding that any code that uses this API
- * will almost certainly be broken (repeatedly) as the API evolves.
- * 
- * @version 2.1
- * @since 2.1
- * 
- * <!-- end-user-doc -->
- *
- *
- * @see org.eclipse.jpt.eclipselink.core.resource.orm.EclipseLinkOrmPackage#getXmlIdImpl()
- * @model kind="class"
- * @generated
- */
-public class XmlIdImpl extends org.eclipse.jpt.core.resource.orm.XmlIdImpl implements XmlId
-{
-	/**
-	 * The default value of the '{@link #getMutable() <em>Mutable</em>}' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see #getMutable()
-	 * @generated
-	 * @ordered
-	 */
-	protected static final Boolean MUTABLE_EDEFAULT = null;
-
-	/**
-	 * The cached value of the '{@link #getMutable() <em>Mutable</em>}' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see #getMutable()
-	 * @generated
-	 * @ordered
-	 */
-	protected Boolean mutable = MUTABLE_EDEFAULT;
-
-	/**
-	 * The cached value of the '{@link #getConverter() <em>Converter</em>}' containment reference.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see #getConverter()
-	 * @generated
-	 * @ordered
-	 */
-	protected XmlConverter converter;
-
-	/**
-	 * The cached value of the '{@link #getTypeConverter() <em>Type Converter</em>}' containment reference.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see #getTypeConverter()
-	 * @generated
-	 * @ordered
-	 */
-	protected XmlTypeConverter typeConverter;
-
-	/**
-	 * The cached value of the '{@link #getObjectTypeConverter() <em>Object Type Converter</em>}' containment reference.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see #getObjectTypeConverter()
-	 * @generated
-	 * @ordered
-	 */
-	protected XmlObjectTypeConverter objectTypeConverter;
-
-	/**
-	 * The cached value of the '{@link #getStructConverter() <em>Struct Converter</em>}' containment reference.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see #getStructConverter()
-	 * @generated
-	 * @ordered
-	 */
-	protected XmlStructConverter structConverter;
-
-	/**
-	 * The default value of the '{@link #getConvert() <em>Convert</em>}' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see #getConvert()
-	 * @generated
-	 * @ordered
-	 */
-	protected static final String CONVERT_EDEFAULT = null;
-
-	/**
-	 * The cached value of the '{@link #getConvert() <em>Convert</em>}' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see #getConvert()
-	 * @generated
-	 * @ordered
-	 */
-	protected String convert = CONVERT_EDEFAULT;
-
-	/**
-	 * The cached value of the '{@link #getAccessMethods() <em>Access Methods</em>}' containment reference.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see #getAccessMethods()
-	 * @generated
-	 * @ordered
-	 */
-	protected XmlAccessMethods accessMethods;
-
-	/**
-	 * The cached value of the '{@link #getProperties() <em>Properties</em>}' containment reference list.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see #getProperties()
-	 * @generated
-	 * @ordered
-	 */
-	protected EList<XmlProperty> properties;
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	protected XmlIdImpl()
-	{
-		super();
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	protected EClass eStaticClass()
-	{
-		return EclipseLinkOrmPackage.Literals.XML_ID_IMPL;
-	}
-
-	/**
-	 * Returns the value of the '<em><b>Mutable</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <p>
-	 * If the meaning of the '<em>Mutable</em>' attribute isn't clear,
-	 * there really should be more of a description here...
-	 * </p>
-	 * <!-- end-user-doc -->
-	 * @return the value of the '<em>Mutable</em>' attribute.
-	 * @see #setMutable(Boolean)
-	 * @see org.eclipse.jpt.eclipselink.core.resource.orm.EclipseLinkOrmPackage#getXmlMutable_Mutable()
-	 * @model dataType="org.eclipse.emf.ecore.xml.type.BooleanObject"
-	 * @generated
-	 */
-	public Boolean getMutable()
-	{
-		return mutable;
-	}
-
-	/**
-	 * Sets the value of the '{@link org.eclipse.jpt.eclipselink.core.resource.orm.XmlIdImpl#getMutable <em>Mutable</em>}' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @param value the new value of the '<em>Mutable</em>' attribute.
-	 * @see #getMutable()
-	 * @generated
-	 */
-	public void setMutable(Boolean newMutable)
-	{
-		Boolean oldMutable = mutable;
-		mutable = newMutable;
-		if (eNotificationRequired())
-			eNotify(new ENotificationImpl(this, Notification.SET, EclipseLinkOrmPackage.XML_ID_IMPL__MUTABLE, oldMutable, mutable));
-	}
-
-	/**
-	 * Returns the value of the '<em><b>Convert</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <p>
-	 * If the meaning of the '<em>Convert</em>' attribute isn't clear,
-	 * there really should be more of a description here...
-	 * </p>
-	 * <!-- end-user-doc -->
-	 * @return the value of the '<em>Convert</em>' attribute.
-	 * @see #setConvert(String)
-	 * @see org.eclipse.jpt.eclipselink.core.resource.orm.EclipseLinkOrmPackage#getXmlConvertibleMapping_Convert()
-	 * @model
-	 * @generated
-	 */
-	public String getConvert()
-	{
-		return convert;
-	}
-
-	/**
-	 * Sets the value of the '{@link org.eclipse.jpt.eclipselink.core.resource.orm.XmlIdImpl#getConvert <em>Convert</em>}' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @param value the new value of the '<em>Convert</em>' attribute.
-	 * @see #getConvert()
-	 * @generated
-	 */
-	public void setConvert(String newConvert)
-	{
-		String oldConvert = convert;
-		convert = newConvert;
-		if (eNotificationRequired())
-			eNotify(new ENotificationImpl(this, Notification.SET, EclipseLinkOrmPackage.XML_ID_IMPL__CONVERT, oldConvert, convert));
-	}
-
-	/**
-	 * Returns the value of the '<em><b>Access Methods</b></em>' containment reference.
-	 * <!-- begin-user-doc -->
-	 * <p>
-	 * If the meaning of the '<em>Access Methods</em>' containment reference isn't clear,
-	 * there really should be more of a description here...
-	 * </p>
-	 * <!-- end-user-doc -->
-	 * @return the value of the '<em>Access Methods</em>' containment reference.
-	 * @see #setAccessMethods(XmlAccessMethods)
-	 * @see org.eclipse.jpt.eclipselink.core.resource.orm.EclipseLinkOrmPackage#getXmlAccessMethodsHolder_AccessMethods()
-	 * @model containment="true"
-	 * @generated
-	 */
-	public XmlAccessMethods getAccessMethods()
-	{
-		return accessMethods;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public NotificationChain basicSetAccessMethods(XmlAccessMethods newAccessMethods, NotificationChain msgs)
-	{
-		XmlAccessMethods oldAccessMethods = accessMethods;
-		accessMethods = newAccessMethods;
-		if (eNotificationRequired())
-		{
-			ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, EclipseLinkOrmPackage.XML_ID_IMPL__ACCESS_METHODS, oldAccessMethods, newAccessMethods);
-			if (msgs == null) msgs = notification; else msgs.add(notification);
-		}
-		return msgs;
-	}
-
-	/**
-	 * Sets the value of the '{@link org.eclipse.jpt.eclipselink.core.resource.orm.XmlIdImpl#getAccessMethods <em>Access Methods</em>}' containment reference.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @param value the new value of the '<em>Access Methods</em>' containment reference.
-	 * @see #getAccessMethods()
-	 * @generated
-	 */
-	public void setAccessMethods(XmlAccessMethods newAccessMethods)
-	{
-		if (newAccessMethods != accessMethods)
-		{
-			NotificationChain msgs = null;
-			if (accessMethods != null)
-				msgs = ((InternalEObject)accessMethods).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - EclipseLinkOrmPackage.XML_ID_IMPL__ACCESS_METHODS, null, msgs);
-			if (newAccessMethods != null)
-				msgs = ((InternalEObject)newAccessMethods).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - EclipseLinkOrmPackage.XML_ID_IMPL__ACCESS_METHODS, null, msgs);
-			msgs = basicSetAccessMethods(newAccessMethods, msgs);
-			if (msgs != null) msgs.dispatch();
-		}
-		else if (eNotificationRequired())
-			eNotify(new ENotificationImpl(this, Notification.SET, EclipseLinkOrmPackage.XML_ID_IMPL__ACCESS_METHODS, newAccessMethods, newAccessMethods));
-	}
-
-	/**
-	 * Returns the value of the '<em><b>Properties</b></em>' containment reference list.
-	 * The list contents are of type {@link org.eclipse.jpt.eclipselink.core.resource.orm.XmlProperty}.
-	 * <!-- begin-user-doc -->
-	 * <p>
-	 * If the meaning of the '<em>Properties</em>' containment reference list isn't clear,
-	 * there really should be more of a description here...
-	 * </p>
-	 * <!-- end-user-doc -->
-	 * @return the value of the '<em>Properties</em>' containment reference list.
-	 * @see org.eclipse.jpt.eclipselink.core.resource.orm.EclipseLinkOrmPackage#getXmlId_Properties()
-	 * @model containment="true"
-	 * @generated
-	 */
-	public EList<XmlProperty> getProperties()
-	{
-		if (properties == null)
-		{
-			properties = new EObjectContainmentEList<XmlProperty>(XmlProperty.class, this, EclipseLinkOrmPackage.XML_ID_IMPL__PROPERTIES);
-		}
-		return properties;
-	}
-
-	/**
-	 * Returns the value of the '<em><b>Converter</b></em>' containment reference.
-	 * <!-- begin-user-doc -->
-	 * <p>
-	 * If the meaning of the '<em>CustomConverter</em>' containment reference isn't clear,
-	 * there really should be more of a description here...
-	 * </p>
-	 * <!-- end-user-doc -->
-	 * @return the value of the '<em>Converter</em>' containment reference.
-	 * @see #setConverter(XmlConverter)
-	 * @see org.eclipse.jpt.eclipselink.core.resource.orm.EclipseLinkOrmPackage#getXmlConverterHolder_Converter()
-	 * @model containment="true"
-	 * @generated
-	 */
-	public XmlConverter getConverter()
-	{
-		return converter;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public NotificationChain basicSetConverter(XmlConverter newConverter, NotificationChain msgs)
-	{
-		XmlConverter oldConverter = converter;
-		converter = newConverter;
-		if (eNotificationRequired())
-		{
-			ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, EclipseLinkOrmPackage.XML_ID_IMPL__CONVERTER, oldConverter, newConverter);
-			if (msgs == null) msgs = notification; else msgs.add(notification);
-		}
-		return msgs;
-	}
-
-	/**
-	 * Sets the value of the '{@link org.eclipse.jpt.eclipselink.core.resource.orm.XmlIdImpl#getConverter <em>Converter</em>}' containment reference.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @param value the new value of the '<em>Converter</em>' containment reference.
-	 * @see #getConverter()
-	 * @generated
-	 */
-	public void setConverter(XmlConverter newConverter)
-	{
-		if (newConverter != converter)
-		{
-			NotificationChain msgs = null;
-			if (converter != null)
-				msgs = ((InternalEObject)converter).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - EclipseLinkOrmPackage.XML_ID_IMPL__CONVERTER, null, msgs);
-			if (newConverter != null)
-				msgs = ((InternalEObject)newConverter).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - EclipseLinkOrmPackage.XML_ID_IMPL__CONVERTER, null, msgs);
-			msgs = basicSetConverter(newConverter, msgs);
-			if (msgs != null) msgs.dispatch();
-		}
-		else if (eNotificationRequired())
-			eNotify(new ENotificationImpl(this, Notification.SET, EclipseLinkOrmPackage.XML_ID_IMPL__CONVERTER, newConverter, newConverter));
-	}
-
-	/**
-	 * Returns the value of the '<em><b>Type Converter</b></em>' containment reference.
-	 * <!-- begin-user-doc -->
-	 * <p>
-	 * If the meaning of the '<em>Type CustomConverter</em>' containment reference isn't clear,
-	 * there really should be more of a description here...
-	 * </p>
-	 * <!-- end-user-doc -->
-	 * @return the value of the '<em>Type Converter</em>' containment reference.
-	 * @see #setTypeConverter(XmlTypeConverter)
-	 * @see org.eclipse.jpt.eclipselink.core.resource.orm.EclipseLinkOrmPackage#getXmlConverterHolder_TypeConverter()
-	 * @model containment="true"
-	 * @generated
-	 */
-	public XmlTypeConverter getTypeConverter()
-	{
-		return typeConverter;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public NotificationChain basicSetTypeConverter(XmlTypeConverter newTypeConverter, NotificationChain msgs)
-	{
-		XmlTypeConverter oldTypeConverter = typeConverter;
-		typeConverter = newTypeConverter;
-		if (eNotificationRequired())
-		{
-			ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, EclipseLinkOrmPackage.XML_ID_IMPL__TYPE_CONVERTER, oldTypeConverter, newTypeConverter);
-			if (msgs == null) msgs = notification; else msgs.add(notification);
-		}
-		return msgs;
-	}
-
-	/**
-	 * Sets the value of the '{@link org.eclipse.jpt.eclipselink.core.resource.orm.XmlIdImpl#getTypeConverter <em>Type Converter</em>}' containment reference.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @param value the new value of the '<em>Type Converter</em>' containment reference.
-	 * @see #getTypeConverter()
-	 * @generated
-	 */
-	public void setTypeConverter(XmlTypeConverter newTypeConverter)
-	{
-		if (newTypeConverter != typeConverter)
-		{
-			NotificationChain msgs = null;
-			if (typeConverter != null)
-				msgs = ((InternalEObject)typeConverter).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - EclipseLinkOrmPackage.XML_ID_IMPL__TYPE_CONVERTER, null, msgs);
-			if (newTypeConverter != null)
-				msgs = ((InternalEObject)newTypeConverter).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - EclipseLinkOrmPackage.XML_ID_IMPL__TYPE_CONVERTER, null, msgs);
-			msgs = basicSetTypeConverter(newTypeConverter, msgs);
-			if (msgs != null) msgs.dispatch();
-		}
-		else if (eNotificationRequired())
-			eNotify(new ENotificationImpl(this, Notification.SET, EclipseLinkOrmPackage.XML_ID_IMPL__TYPE_CONVERTER, newTypeConverter, newTypeConverter));
-	}
-
-	/**
-	 * Returns the value of the '<em><b>Object Type Converter</b></em>' containment reference.
-	 * <!-- begin-user-doc -->
-	 * <p>
-	 * If the meaning of the '<em>Object Type CustomConverter</em>' containment reference isn't clear,
-	 * there really should be more of a description here...
-	 * </p>
-	 * <!-- end-user-doc -->
-	 * @return the value of the '<em>Object Type Converter</em>' containment reference.
-	 * @see #setObjectTypeConverter(XmlObjectTypeConverter)
-	 * @see org.eclipse.jpt.eclipselink.core.resource.orm.EclipseLinkOrmPackage#getXmlConverterHolder_ObjectTypeConverter()
-	 * @model containment="true"
-	 * @generated
-	 */
-	public XmlObjectTypeConverter getObjectTypeConverter()
-	{
-		return objectTypeConverter;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public NotificationChain basicSetObjectTypeConverter(XmlObjectTypeConverter newObjectTypeConverter, NotificationChain msgs)
-	{
-		XmlObjectTypeConverter oldObjectTypeConverter = objectTypeConverter;
-		objectTypeConverter = newObjectTypeConverter;
-		if (eNotificationRequired())
-		{
-			ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, EclipseLinkOrmPackage.XML_ID_IMPL__OBJECT_TYPE_CONVERTER, oldObjectTypeConverter, newObjectTypeConverter);
-			if (msgs == null) msgs = notification; else msgs.add(notification);
-		}
-		return msgs;
-	}
-
-	/**
-	 * Sets the value of the '{@link org.eclipse.jpt.eclipselink.core.resource.orm.XmlIdImpl#getObjectTypeConverter <em>Object Type Converter</em>}' containment reference.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @param value the new value of the '<em>Object Type Converter</em>' containment reference.
-	 * @see #getObjectTypeConverter()
-	 * @generated
-	 */
-	public void setObjectTypeConverter(XmlObjectTypeConverter newObjectTypeConverter)
-	{
-		if (newObjectTypeConverter != objectTypeConverter)
-		{
-			NotificationChain msgs = null;
-			if (objectTypeConverter != null)
-				msgs = ((InternalEObject)objectTypeConverter).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - EclipseLinkOrmPackage.XML_ID_IMPL__OBJECT_TYPE_CONVERTER, null, msgs);
-			if (newObjectTypeConverter != null)
-				msgs = ((InternalEObject)newObjectTypeConverter).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - EclipseLinkOrmPackage.XML_ID_IMPL__OBJECT_TYPE_CONVERTER, null, msgs);
-			msgs = basicSetObjectTypeConverter(newObjectTypeConverter, msgs);
-			if (msgs != null) msgs.dispatch();
-		}
-		else if (eNotificationRequired())
-			eNotify(new ENotificationImpl(this, Notification.SET, EclipseLinkOrmPackage.XML_ID_IMPL__OBJECT_TYPE_CONVERTER, newObjectTypeConverter, newObjectTypeConverter));
-	}
-
-	/**
-	 * Returns the value of the '<em><b>Struct Converter</b></em>' containment reference.
-	 * <!-- begin-user-doc -->
-	 * <p>
-	 * If the meaning of the '<em>Struct CustomConverter</em>' containment reference isn't clear,
-	 * there really should be more of a description here...
-	 * </p>
-	 * <!-- end-user-doc -->
-	 * @return the value of the '<em>Struct Converter</em>' containment reference.
-	 * @see #setStructConverter(XmlStructConverter)
-	 * @see org.eclipse.jpt.eclipselink.core.resource.orm.EclipseLinkOrmPackage#getXmlConverterHolder_StructConverter()
-	 * @model containment="true"
-	 * @generated
-	 */
-	public XmlStructConverter getStructConverter()
-	{
-		return structConverter;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public NotificationChain basicSetStructConverter(XmlStructConverter newStructConverter, NotificationChain msgs)
-	{
-		XmlStructConverter oldStructConverter = structConverter;
-		structConverter = newStructConverter;
-		if (eNotificationRequired())
-		{
-			ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, EclipseLinkOrmPackage.XML_ID_IMPL__STRUCT_CONVERTER, oldStructConverter, newStructConverter);
-			if (msgs == null) msgs = notification; else msgs.add(notification);
-		}
-		return msgs;
-	}
-
-	/**
-	 * Sets the value of the '{@link org.eclipse.jpt.eclipselink.core.resource.orm.XmlIdImpl#getStructConverter <em>Struct Converter</em>}' containment reference.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @param value the new value of the '<em>Struct Converter</em>' containment reference.
-	 * @see #getStructConverter()
-	 * @generated
-	 */
-	public void setStructConverter(XmlStructConverter newStructConverter)
-	{
-		if (newStructConverter != structConverter)
-		{
-			NotificationChain msgs = null;
-			if (structConverter != null)
-				msgs = ((InternalEObject)structConverter).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - EclipseLinkOrmPackage.XML_ID_IMPL__STRUCT_CONVERTER, null, msgs);
-			if (newStructConverter != null)
-				msgs = ((InternalEObject)newStructConverter).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - EclipseLinkOrmPackage.XML_ID_IMPL__STRUCT_CONVERTER, null, msgs);
-			msgs = basicSetStructConverter(newStructConverter, msgs);
-			if (msgs != null) msgs.dispatch();
-		}
-		else if (eNotificationRequired())
-			eNotify(new ENotificationImpl(this, Notification.SET, EclipseLinkOrmPackage.XML_ID_IMPL__STRUCT_CONVERTER, newStructConverter, newStructConverter));
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs)
-	{
-		switch (featureID)
-		{
-			case EclipseLinkOrmPackage.XML_ID_IMPL__CONVERTER:
-				return basicSetConverter(null, msgs);
-			case EclipseLinkOrmPackage.XML_ID_IMPL__TYPE_CONVERTER:
-				return basicSetTypeConverter(null, msgs);
-			case EclipseLinkOrmPackage.XML_ID_IMPL__OBJECT_TYPE_CONVERTER:
-				return basicSetObjectTypeConverter(null, msgs);
-			case EclipseLinkOrmPackage.XML_ID_IMPL__STRUCT_CONVERTER:
-				return basicSetStructConverter(null, msgs);
-			case EclipseLinkOrmPackage.XML_ID_IMPL__ACCESS_METHODS:
-				return basicSetAccessMethods(null, msgs);
-			case EclipseLinkOrmPackage.XML_ID_IMPL__PROPERTIES:
-				return ((InternalEList<?>)getProperties()).basicRemove(otherEnd, msgs);
-		}
-		return super.eInverseRemove(otherEnd, featureID, msgs);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public Object eGet(int featureID, boolean resolve, boolean coreType)
-	{
-		switch (featureID)
-		{
-			case EclipseLinkOrmPackage.XML_ID_IMPL__MUTABLE:
-				return getMutable();
-			case EclipseLinkOrmPackage.XML_ID_IMPL__CONVERTER:
-				return getConverter();
-			case EclipseLinkOrmPackage.XML_ID_IMPL__TYPE_CONVERTER:
-				return getTypeConverter();
-			case EclipseLinkOrmPackage.XML_ID_IMPL__OBJECT_TYPE_CONVERTER:
-				return getObjectTypeConverter();
-			case EclipseLinkOrmPackage.XML_ID_IMPL__STRUCT_CONVERTER:
-				return getStructConverter();
-			case EclipseLinkOrmPackage.XML_ID_IMPL__CONVERT:
-				return getConvert();
-			case EclipseLinkOrmPackage.XML_ID_IMPL__ACCESS_METHODS:
-				return getAccessMethods();
-			case EclipseLinkOrmPackage.XML_ID_IMPL__PROPERTIES:
-				return getProperties();
-		}
-		return super.eGet(featureID, resolve, coreType);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@SuppressWarnings("unchecked")
-	@Override
-	public void eSet(int featureID, Object newValue)
-	{
-		switch (featureID)
-		{
-			case EclipseLinkOrmPackage.XML_ID_IMPL__MUTABLE:
-				setMutable((Boolean)newValue);
-				return;
-			case EclipseLinkOrmPackage.XML_ID_IMPL__CONVERTER:
-				setConverter((XmlConverter)newValue);
-				return;
-			case EclipseLinkOrmPackage.XML_ID_IMPL__TYPE_CONVERTER:
-				setTypeConverter((XmlTypeConverter)newValue);
-				return;
-			case EclipseLinkOrmPackage.XML_ID_IMPL__OBJECT_TYPE_CONVERTER:
-				setObjectTypeConverter((XmlObjectTypeConverter)newValue);
-				return;
-			case EclipseLinkOrmPackage.XML_ID_IMPL__STRUCT_CONVERTER:
-				setStructConverter((XmlStructConverter)newValue);
-				return;
-			case EclipseLinkOrmPackage.XML_ID_IMPL__CONVERT:
-				setConvert((String)newValue);
-				return;
-			case EclipseLinkOrmPackage.XML_ID_IMPL__ACCESS_METHODS:
-				setAccessMethods((XmlAccessMethods)newValue);
-				return;
-			case EclipseLinkOrmPackage.XML_ID_IMPL__PROPERTIES:
-				getProperties().clear();
-				getProperties().addAll((Collection<? extends XmlProperty>)newValue);
-				return;
-		}
-		super.eSet(featureID, newValue);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public void eUnset(int featureID)
-	{
-		switch (featureID)
-		{
-			case EclipseLinkOrmPackage.XML_ID_IMPL__MUTABLE:
-				setMutable(MUTABLE_EDEFAULT);
-				return;
-			case EclipseLinkOrmPackage.XML_ID_IMPL__CONVERTER:
-				setConverter((XmlConverter)null);
-				return;
-			case EclipseLinkOrmPackage.XML_ID_IMPL__TYPE_CONVERTER:
-				setTypeConverter((XmlTypeConverter)null);
-				return;
-			case EclipseLinkOrmPackage.XML_ID_IMPL__OBJECT_TYPE_CONVERTER:
-				setObjectTypeConverter((XmlObjectTypeConverter)null);
-				return;
-			case EclipseLinkOrmPackage.XML_ID_IMPL__STRUCT_CONVERTER:
-				setStructConverter((XmlStructConverter)null);
-				return;
-			case EclipseLinkOrmPackage.XML_ID_IMPL__CONVERT:
-				setConvert(CONVERT_EDEFAULT);
-				return;
-			case EclipseLinkOrmPackage.XML_ID_IMPL__ACCESS_METHODS:
-				setAccessMethods((XmlAccessMethods)null);
-				return;
-			case EclipseLinkOrmPackage.XML_ID_IMPL__PROPERTIES:
-				getProperties().clear();
-				return;
-		}
-		super.eUnset(featureID);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public boolean eIsSet(int featureID)
-	{
-		switch (featureID)
-		{
-			case EclipseLinkOrmPackage.XML_ID_IMPL__MUTABLE:
-				return MUTABLE_EDEFAULT == null ? mutable != null : !MUTABLE_EDEFAULT.equals(mutable);
-			case EclipseLinkOrmPackage.XML_ID_IMPL__CONVERTER:
-				return converter != null;
-			case EclipseLinkOrmPackage.XML_ID_IMPL__TYPE_CONVERTER:
-				return typeConverter != null;
-			case EclipseLinkOrmPackage.XML_ID_IMPL__OBJECT_TYPE_CONVERTER:
-				return objectTypeConverter != null;
-			case EclipseLinkOrmPackage.XML_ID_IMPL__STRUCT_CONVERTER:
-				return structConverter != null;
-			case EclipseLinkOrmPackage.XML_ID_IMPL__CONVERT:
-				return CONVERT_EDEFAULT == null ? convert != null : !CONVERT_EDEFAULT.equals(convert);
-			case EclipseLinkOrmPackage.XML_ID_IMPL__ACCESS_METHODS:
-				return accessMethods != null;
-			case EclipseLinkOrmPackage.XML_ID_IMPL__PROPERTIES:
-				return properties != null && !properties.isEmpty();
-		}
-		return super.eIsSet(featureID);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public int eBaseStructuralFeatureID(int derivedFeatureID, Class<?> baseClass)
-	{
-		if (baseClass == XmlMutable.class)
-		{
-			switch (derivedFeatureID)
-			{
-				case EclipseLinkOrmPackage.XML_ID_IMPL__MUTABLE: return EclipseLinkOrmPackage.XML_MUTABLE__MUTABLE;
-				default: return -1;
-			}
-		}
-		if (baseClass == XmlConverterHolder.class)
-		{
-			switch (derivedFeatureID)
-			{
-				case EclipseLinkOrmPackage.XML_ID_IMPL__CONVERTER: return EclipseLinkOrmPackage.XML_CONVERTER_HOLDER__CONVERTER;
-				case EclipseLinkOrmPackage.XML_ID_IMPL__TYPE_CONVERTER: return EclipseLinkOrmPackage.XML_CONVERTER_HOLDER__TYPE_CONVERTER;
-				case EclipseLinkOrmPackage.XML_ID_IMPL__OBJECT_TYPE_CONVERTER: return EclipseLinkOrmPackage.XML_CONVERTER_HOLDER__OBJECT_TYPE_CONVERTER;
-				case EclipseLinkOrmPackage.XML_ID_IMPL__STRUCT_CONVERTER: return EclipseLinkOrmPackage.XML_CONVERTER_HOLDER__STRUCT_CONVERTER;
-				default: return -1;
-			}
-		}
-		if (baseClass == XmlConvertibleMapping.class)
-		{
-			switch (derivedFeatureID)
-			{
-				case EclipseLinkOrmPackage.XML_ID_IMPL__CONVERT: return EclipseLinkOrmPackage.XML_CONVERTIBLE_MAPPING__CONVERT;
-				default: return -1;
-			}
-		}
-		if (baseClass == XmlAccessMethodsHolder.class)
-		{
-			switch (derivedFeatureID)
-			{
-				case EclipseLinkOrmPackage.XML_ID_IMPL__ACCESS_METHODS: return EclipseLinkOrmPackage.XML_ACCESS_METHODS_HOLDER__ACCESS_METHODS;
-				default: return -1;
-			}
-		}
-		if (baseClass == XmlId.class)
-		{
-			switch (derivedFeatureID)
-			{
-				case EclipseLinkOrmPackage.XML_ID_IMPL__PROPERTIES: return EclipseLinkOrmPackage.XML_ID__PROPERTIES;
-				default: return -1;
-			}
-		}
-		return super.eBaseStructuralFeatureID(derivedFeatureID, baseClass);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public int eDerivedStructuralFeatureID(int baseFeatureID, Class<?> baseClass)
-	{
-		if (baseClass == XmlMutable.class)
-		{
-			switch (baseFeatureID)
-			{
-				case EclipseLinkOrmPackage.XML_MUTABLE__MUTABLE: return EclipseLinkOrmPackage.XML_ID_IMPL__MUTABLE;
-				default: return -1;
-			}
-		}
-		if (baseClass == XmlConverterHolder.class)
-		{
-			switch (baseFeatureID)
-			{
-				case EclipseLinkOrmPackage.XML_CONVERTER_HOLDER__CONVERTER: return EclipseLinkOrmPackage.XML_ID_IMPL__CONVERTER;
-				case EclipseLinkOrmPackage.XML_CONVERTER_HOLDER__TYPE_CONVERTER: return EclipseLinkOrmPackage.XML_ID_IMPL__TYPE_CONVERTER;
-				case EclipseLinkOrmPackage.XML_CONVERTER_HOLDER__OBJECT_TYPE_CONVERTER: return EclipseLinkOrmPackage.XML_ID_IMPL__OBJECT_TYPE_CONVERTER;
-				case EclipseLinkOrmPackage.XML_CONVERTER_HOLDER__STRUCT_CONVERTER: return EclipseLinkOrmPackage.XML_ID_IMPL__STRUCT_CONVERTER;
-				default: return -1;
-			}
-		}
-		if (baseClass == XmlConvertibleMapping.class)
-		{
-			switch (baseFeatureID)
-			{
-				case EclipseLinkOrmPackage.XML_CONVERTIBLE_MAPPING__CONVERT: return EclipseLinkOrmPackage.XML_ID_IMPL__CONVERT;
-				default: return -1;
-			}
-		}
-		if (baseClass == XmlAccessMethodsHolder.class)
-		{
-			switch (baseFeatureID)
-			{
-				case EclipseLinkOrmPackage.XML_ACCESS_METHODS_HOLDER__ACCESS_METHODS: return EclipseLinkOrmPackage.XML_ID_IMPL__ACCESS_METHODS;
-				default: return -1;
-			}
-		}
-		if (baseClass == XmlId.class)
-		{
-			switch (baseFeatureID)
-			{
-				case EclipseLinkOrmPackage.XML_ID__PROPERTIES: return EclipseLinkOrmPackage.XML_ID_IMPL__PROPERTIES;
-				default: return -1;
-			}
-		}
-		return super.eDerivedStructuralFeatureID(baseFeatureID, baseClass);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public String toString()
-	{
-		if (eIsProxy()) return super.toString();
-
-		StringBuffer result = new StringBuffer(super.toString());
-		result.append(" (mutable: ");
-		result.append(mutable);
-		result.append(", convert: ");
-		result.append(convert);
-		result.append(')');
-		return result.toString();
-	}
-	
-	public TextRange getMutableTextRange() {
-		return getAttributeTextRange(EclipseLinkOrmXmlMapper.MUTABLE);
-	}
-	
-	public TextRange getConvertTextRange() {
-		return getElementTextRange(EclipseLinkOrmXmlMapper.CONVERT);
-	}
-}
diff --git a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/resource/orm/XmlInstantiationPolicy.java b/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/resource/orm/XmlInstantiationPolicy.java
deleted file mode 100644
index 52364a9..0000000
--- a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/resource/orm/XmlInstantiationPolicy.java
+++ /dev/null
@@ -1,61 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.eclipselink.core.resource.orm;
-
-import org.eclipse.emf.ecore.EClass;
-
-import org.eclipse.jpt.core.resource.xml.AbstractJpaEObject;
-import org.eclipse.jpt.core.resource.xml.JpaEObject;
-
-/**
- * <!-- begin-user-doc -->
- * A representation of the model object '<em><b>Xml Instantiation Policy</b></em>'.
- *  
- * Provisional API: This interface is part of an interim API that is still
- * under development and expected to change significantly before reaching
- * stability. It is available at this early stage to solicit feedback from
- * pioneering adopters on the understanding that any code that uses this API
- * will almost certainly be broken (repeatedly) as the API evolves.
- * 
- * @version 2.2
- * @since 2.2
- * 
- * <!-- end-user-doc -->
- *
- *
- * @see org.eclipse.jpt.eclipselink.core.resource.orm.EclipseLinkOrmPackage#getXmlInstantiationPolicy()
- * @model kind="class"
- * @extends JpaEObject
- * @generated
- */
-public class XmlInstantiationPolicy extends AbstractJpaEObject implements JpaEObject
-{
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	protected XmlInstantiationPolicy()
-	{
-		super();
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	protected EClass eStaticClass()
-	{
-		return EclipseLinkOrmPackage.Literals.XML_INSTANTIATION_POLICY;
-	}
-
-} // XmlInstantiationPolicy
diff --git a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/resource/orm/XmlJoinFetch.java b/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/resource/orm/XmlJoinFetch.java
deleted file mode 100644
index d75f4df..0000000
--- a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/resource/orm/XmlJoinFetch.java
+++ /dev/null
@@ -1,78 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008, 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.eclipselink.core.resource.orm;
-
-import org.eclipse.jpt.core.resource.xml.JpaEObject;
-import org.eclipse.jpt.core.utility.TextRange;
-
-/**
- * <!-- begin-user-doc -->
- * 
- * A representation of the model object '<em><b>Xml Join Fetch</b></em>'.
- *  
- * Provisional API: This interface is part of an interim API that is still
- * under development and expected to change significantly before reaching
- * stability. It is available at this early stage to solicit feedback from
- * pioneering adopters on the understanding that any code that uses this API
- * will almost certainly be broken (repeatedly) as the API evolves.
- * 
- * @version 2.1
- * @since 2.1
- * 
- * <!-- end-user-doc -->
- *
- * <p>
- * The following features are supported:
- * <ul>
- *   <li>{@link org.eclipse.jpt.eclipselink.core.resource.orm.XmlJoinFetch#getJoinFetch <em>Join Fetch</em>}</li>
- * </ul>
- * </p>
- *
- * @see org.eclipse.jpt.eclipselink.core.resource.orm.EclipseLinkOrmPackage#getXmlJoinFetch()
- * @model kind="class" interface="true" abstract="true"
- * @extends JpaEObject
- * @generated
- */
-public interface XmlJoinFetch extends JpaEObject
-{
-	/**
-	 * Returns the value of the '<em><b>Join Fetch</b></em>' attribute.
-	 * The literals are from the enumeration {@link org.eclipse.jpt.eclipselink.core.resource.orm.XmlJoinFetchType}.
-	 * <!-- begin-user-doc -->
-	 * <p>
-	 * If the meaning of the '<em>Join Fetch</em>' attribute isn't clear,
-	 * there really should be more of a description here...
-	 * </p>
-	 * <!-- end-user-doc -->
-	 * @return the value of the '<em>Join Fetch</em>' attribute.
-	 * @see org.eclipse.jpt.eclipselink.core.resource.orm.XmlJoinFetchType
-	 * @see #setJoinFetch(XmlJoinFetchType)
-	 * @see org.eclipse.jpt.eclipselink.core.resource.orm.EclipseLinkOrmPackage#getXmlJoinFetch_JoinFetch()
-	 * @model
-	 * @generated
-	 */
-	XmlJoinFetchType getJoinFetch();
-
-	/**
-	 * Sets the value of the '{@link org.eclipse.jpt.eclipselink.core.resource.orm.XmlJoinFetch#getJoinFetch <em>Join Fetch</em>}' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @param value the new value of the '<em>Join Fetch</em>' attribute.
-	 * @see org.eclipse.jpt.eclipselink.core.resource.orm.XmlJoinFetchType
-	 * @see #getJoinFetch()
-	 * @generated
-	 */
-	void setJoinFetch(XmlJoinFetchType value);
-	
-	/**
-	 * Return the {@link TextRange} for the join-fetch element.
-	 */
-	TextRange getJoinFetchTextRange();
-}
\ No newline at end of file
diff --git a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/resource/orm/XmlJoinFetchType.java b/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/resource/orm/XmlJoinFetchType.java
deleted file mode 100644
index 58b690e..0000000
--- a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/resource/orm/XmlJoinFetchType.java
+++ /dev/null
@@ -1,237 +0,0 @@
-/**
- * <copyright>
- * </copyright>
- *
- * $Id: XmlJoinFetchType.java,v 1.3 2009/01/05 21:39:49 kmoore Exp $
- */
-package org.eclipse.jpt.eclipselink.core.resource.orm;
-
-import java.util.Arrays;
-import java.util.Collections;
-import java.util.List;
-import org.eclipse.emf.common.util.Enumerator;
-
-/**
- * <!-- begin-user-doc -->
- * 
- * A representation of the literals of the enumeration '<em><b>Xml Join Fetch Type</b></em>',
- * and utility methods for working with them.
- *  
- * Provisional API: This interface is part of an interim API that is still
- * under development and expected to change significantly before reaching
- * stability. It is available at this early stage to solicit feedback from
- * pioneering adopters on the understanding that any code that uses this API
- * will almost certainly be broken (repeatedly) as the API evolves.
- * 
- * @version 2.1
- * @since 2.1
- * 
- * <!-- end-user-doc -->
- * @see org.eclipse.jpt.eclipselink.core.resource.orm.EclipseLinkOrmPackage#getXmlJoinFetchType()
- * @model
- * @generated
- */
-public enum XmlJoinFetchType implements Enumerator
-{
-	/**
-	 * The '<em><b>INNER</b></em>' literal object.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see #INNER_VALUE
-	 * @generated
-	 * @ordered
-	 */
-	INNER(0, "INNER", "INNER"),
-
-	/**
-	 * The '<em><b>OUTER</b></em>' literal object.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see #OUTER_VALUE
-	 * @generated
-	 * @ordered
-	 */
-	OUTER(1, "OUTER", "OUTER");
-
-	/**
-	 * The '<em><b>INNER</b></em>' literal value.
-	 * <!-- begin-user-doc -->
-	 * <p>
-	 * If the meaning of '<em><b>INNER</b></em>' literal object isn't clear,
-	 * there really should be more of a description here...
-	 * </p>
-	 * <!-- end-user-doc -->
-	 * @see #INNER
-	 * @model
-	 * @generated
-	 * @ordered
-	 */
-	public static final int INNER_VALUE = 0;
-
-	/**
-	 * The '<em><b>OUTER</b></em>' literal value.
-	 * <!-- begin-user-doc -->
-	 * <p>
-	 * If the meaning of '<em><b>OUTER</b></em>' literal object isn't clear,
-	 * there really should be more of a description here...
-	 * </p>
-	 * <!-- end-user-doc -->
-	 * @see #OUTER
-	 * @model
-	 * @generated
-	 * @ordered
-	 */
-	public static final int OUTER_VALUE = 1;
-
-	/**
-	 * An array of all the '<em><b>Xml Join Fetch Type</b></em>' enumerators.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	private static final XmlJoinFetchType[] VALUES_ARRAY =
-		new XmlJoinFetchType[]
-		{
-			INNER,
-			OUTER,
-		};
-
-	/**
-	 * A public read-only list of all the '<em><b>Xml Join Fetch Type</b></em>' enumerators.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public static final List<XmlJoinFetchType> VALUES = Collections.unmodifiableList(Arrays.asList(VALUES_ARRAY));
-
-	/**
-	 * Returns the '<em><b>Xml Join Fetch Type</b></em>' literal with the specified literal value.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public static XmlJoinFetchType get(String literal)
-	{
-		for (int i = 0; i < VALUES_ARRAY.length; ++i)
-		{
-			XmlJoinFetchType result = VALUES_ARRAY[i];
-			if (result.toString().equals(literal))
-			{
-				return result;
-			}
-		}
-		return null;
-	}
-
-	/**
-	 * Returns the '<em><b>Xml Join Fetch Type</b></em>' literal with the specified name.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public static XmlJoinFetchType getByName(String name)
-	{
-		for (int i = 0; i < VALUES_ARRAY.length; ++i)
-		{
-			XmlJoinFetchType result = VALUES_ARRAY[i];
-			if (result.getName().equals(name))
-			{
-				return result;
-			}
-		}
-		return null;
-	}
-
-	/**
-	 * Returns the '<em><b>Xml Join Fetch Type</b></em>' literal with the specified integer value.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public static XmlJoinFetchType get(int value)
-	{
-		switch (value)
-		{
-			case INNER_VALUE: return INNER;
-			case OUTER_VALUE: return OUTER;
-		}
-		return null;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	private final int value;
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	private final String name;
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	private final String literal;
-
-	/**
-	 * Only this class can construct instances.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	private XmlJoinFetchType(int value, String name, String literal)
-	{
-		this.value = value;
-		this.name = name;
-		this.literal = literal;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public int getValue()
-	{
-	  return value;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public String getName()
-	{
-	  return name;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public String getLiteral()
-	{
-	  return literal;
-	}
-
-	/**
-	 * Returns the literal value of the enumerator, which is its string representation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public String toString()
-	{
-		return literal;
-	}
-	
-} //XmlJoinFetchType
diff --git a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/resource/orm/XmlManyToMany.java b/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/resource/orm/XmlManyToMany.java
deleted file mode 100644
index 97e072a..0000000
--- a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/resource/orm/XmlManyToMany.java
+++ /dev/null
@@ -1,60 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.eclipselink.core.resource.orm;
-
-import org.eclipse.emf.common.util.EList;
-
-
-/**
- * <!-- begin-user-doc -->
- * 
- * A representation of the model object '<em><b>Xml Many To Many</b></em>'.
- *  
- * Provisional API: This interface is part of an interim API that is still
- * under development and expected to change significantly before reaching
- * stability. It is available at this early stage to solicit feedback from
- * pioneering adopters on the understanding that any code that uses this API
- * will almost certainly be broken (repeatedly) as the API evolves.
- * 
- * @version 2.1
- * @since 2.1
- * 
- * <!-- end-user-doc -->
- *
- * <p>
- * The following features are supported:
- * <ul>
- *   <li>{@link org.eclipse.jpt.eclipselink.core.resource.orm.XmlManyToMany#getProperties <em>Properties</em>}</li>
- * </ul>
- * </p>
- *
- * @see org.eclipse.jpt.eclipselink.core.resource.orm.EclipseLinkOrmPackage#getXmlManyToMany()
- * @model kind="class" interface="true" abstract="true"
- * @generated
- */
-public interface XmlManyToMany extends org.eclipse.jpt.core.resource.orm.XmlManyToMany, XmlJoinFetch, XmlAccessMethodsHolder
-{
-
-	/**
-	 * Returns the value of the '<em><b>Properties</b></em>' containment reference list.
-	 * The list contents are of type {@link org.eclipse.jpt.eclipselink.core.resource.orm.XmlProperty}.
-	 * <!-- begin-user-doc -->
-	 * <p>
-	 * If the meaning of the '<em>Properties</em>' containment reference list isn't clear,
-	 * there really should be more of a description here...
-	 * </p>
-	 * <!-- end-user-doc -->
-	 * @return the value of the '<em>Properties</em>' containment reference list.
-	 * @see org.eclipse.jpt.eclipselink.core.resource.orm.EclipseLinkOrmPackage#getXmlManyToMany_Properties()
-	 * @model containment="true"
-	 * @generated
-	 */
-	EList<XmlProperty> getProperties();
-} // XmlManyToMany
diff --git a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/resource/orm/XmlManyToManyImpl.java b/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/resource/orm/XmlManyToManyImpl.java
deleted file mode 100644
index e1bf1ef..0000000
--- a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/resource/orm/XmlManyToManyImpl.java
+++ /dev/null
@@ -1,421 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.eclipselink.core.resource.orm;
-
-import java.util.Collection;
-import org.eclipse.emf.common.notify.Notification;
-import org.eclipse.emf.common.notify.NotificationChain;
-import org.eclipse.emf.common.util.EList;
-import org.eclipse.emf.ecore.EClass;
-import org.eclipse.emf.ecore.InternalEObject;
-import org.eclipse.emf.ecore.impl.ENotificationImpl;
-import org.eclipse.emf.ecore.util.EObjectContainmentEList;
-import org.eclipse.emf.ecore.util.InternalEList;
-import org.eclipse.jpt.core.utility.TextRange;
-import org.eclipse.jpt.eclipselink.core.internal.resource.orm.translators.EclipseLinkOrmXmlMapper;
-
-/**
- * <!-- begin-user-doc -->
- * 
- * A representation of the model object '<em><b>Xml Many To Many</b></em>'.
- *  
- * Provisional API: This interface is part of an interim API that is still
- * under development and expected to change significantly before reaching
- * stability. It is available at this early stage to solicit feedback from
- * pioneering adopters on the understanding that any code that uses this API
- * will almost certainly be broken (repeatedly) as the API evolves.
- * 
- * @version 2.1
- * @since 2.1
- * 
- * <!-- end-user-doc -->
- *
- *
- * @see org.eclipse.jpt.eclipselink.core.resource.orm.EclipseLinkOrmPackage#getXmlManyToManyImpl()
- * @model kind="class"
- * @generated
- */
-public class XmlManyToManyImpl extends org.eclipse.jpt.core.resource.orm.XmlManyToManyImpl implements XmlManyToMany
-{
-	/**
-	 * changed this to null and removed the generated flag so emf won't generate over it
-	 * we don't want a default for enums, just null if the tag does not exist
-	 */
-	protected static final XmlJoinFetchType JOIN_FETCH_EDEFAULT = null;
-
-	/**
-	 * The cached value of the '{@link #getJoinFetch() <em>Join Fetch</em>}' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see #getJoinFetch()
-	 * @generated
-	 * @ordered
-	 */
-	protected XmlJoinFetchType joinFetch = JOIN_FETCH_EDEFAULT;
-
-	/**
-	 * The cached value of the '{@link #getAccessMethods() <em>Access Methods</em>}' containment reference.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see #getAccessMethods()
-	 * @generated
-	 * @ordered
-	 */
-	protected XmlAccessMethods accessMethods;
-
-	/**
-	 * The cached value of the '{@link #getProperties() <em>Properties</em>}' containment reference list.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see #getProperties()
-	 * @generated
-	 * @ordered
-	 */
-	protected EList<XmlProperty> properties;
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	protected XmlManyToManyImpl()
-	{
-		super();
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	protected EClass eStaticClass()
-	{
-		return EclipseLinkOrmPackage.Literals.XML_MANY_TO_MANY_IMPL;
-	}
-
-	/**
-	 * Returns the value of the '<em><b>Join Fetch</b></em>' attribute.
-	 * The literals are from the enumeration {@link org.eclipse.jpt.eclipselink.core.resource.orm.XmlJoinFetchType}.
-	 * <!-- begin-user-doc -->
-	 * <p>
-	 * If the meaning of the '<em>Join Fetch</em>' attribute isn't clear,
-	 * there really should be more of a description here...
-	 * </p>
-	 * <!-- end-user-doc -->
-	 * @return the value of the '<em>Join Fetch</em>' attribute.
-	 * @see org.eclipse.jpt.eclipselink.core.resource.orm.XmlJoinFetchType
-	 * @see #setJoinFetch(XmlJoinFetchType)
-	 * @see org.eclipse.jpt.eclipselink.core.resource.orm.EclipseLinkOrmPackage#getXmlJoinFetch_JoinFetch()
-	 * @model
-	 * @generated
-	 */
-	public XmlJoinFetchType getJoinFetch()
-	{
-		return joinFetch;
-	}
-
-	/**
-	 * Sets the value of the '{@link org.eclipse.jpt.eclipselink.core.resource.orm.XmlManyToManyImpl#getJoinFetch <em>Join Fetch</em>}' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @param value the new value of the '<em>Join Fetch</em>' attribute.
-	 * @see org.eclipse.jpt.eclipselink.core.resource.orm.XmlJoinFetchType
-	 * @see #getJoinFetch()
-	 * @generated
-	 */
-	public void setJoinFetch(XmlJoinFetchType newJoinFetch)
-	{
-		XmlJoinFetchType oldJoinFetch = joinFetch;
-		joinFetch = newJoinFetch == null ? JOIN_FETCH_EDEFAULT : newJoinFetch;
-		if (eNotificationRequired())
-			eNotify(new ENotificationImpl(this, Notification.SET, EclipseLinkOrmPackage.XML_MANY_TO_MANY_IMPL__JOIN_FETCH, oldJoinFetch, joinFetch));
-	}
-
-	/**
-	 * Returns the value of the '<em><b>Access Methods</b></em>' containment reference.
-	 * <!-- begin-user-doc -->
-	 * <p>
-	 * If the meaning of the '<em>Access Methods</em>' containment reference isn't clear,
-	 * there really should be more of a description here...
-	 * </p>
-	 * <!-- end-user-doc -->
-	 * @return the value of the '<em>Access Methods</em>' containment reference.
-	 * @see #setAccessMethods(XmlAccessMethods)
-	 * @see org.eclipse.jpt.eclipselink.core.resource.orm.EclipseLinkOrmPackage#getXmlAccessMethodsHolder_AccessMethods()
-	 * @model containment="true"
-	 * @generated
-	 */
-	public XmlAccessMethods getAccessMethods()
-	{
-		return accessMethods;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public NotificationChain basicSetAccessMethods(XmlAccessMethods newAccessMethods, NotificationChain msgs)
-	{
-		XmlAccessMethods oldAccessMethods = accessMethods;
-		accessMethods = newAccessMethods;
-		if (eNotificationRequired())
-		{
-			ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, EclipseLinkOrmPackage.XML_MANY_TO_MANY_IMPL__ACCESS_METHODS, oldAccessMethods, newAccessMethods);
-			if (msgs == null) msgs = notification; else msgs.add(notification);
-		}
-		return msgs;
-	}
-
-	/**
-	 * Sets the value of the '{@link org.eclipse.jpt.eclipselink.core.resource.orm.XmlManyToManyImpl#getAccessMethods <em>Access Methods</em>}' containment reference.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @param value the new value of the '<em>Access Methods</em>' containment reference.
-	 * @see #getAccessMethods()
-	 * @generated
-	 */
-	public void setAccessMethods(XmlAccessMethods newAccessMethods)
-	{
-		if (newAccessMethods != accessMethods)
-		{
-			NotificationChain msgs = null;
-			if (accessMethods != null)
-				msgs = ((InternalEObject)accessMethods).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - EclipseLinkOrmPackage.XML_MANY_TO_MANY_IMPL__ACCESS_METHODS, null, msgs);
-			if (newAccessMethods != null)
-				msgs = ((InternalEObject)newAccessMethods).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - EclipseLinkOrmPackage.XML_MANY_TO_MANY_IMPL__ACCESS_METHODS, null, msgs);
-			msgs = basicSetAccessMethods(newAccessMethods, msgs);
-			if (msgs != null) msgs.dispatch();
-		}
-		else if (eNotificationRequired())
-			eNotify(new ENotificationImpl(this, Notification.SET, EclipseLinkOrmPackage.XML_MANY_TO_MANY_IMPL__ACCESS_METHODS, newAccessMethods, newAccessMethods));
-	}
-
-	/**
-	 * Returns the value of the '<em><b>Properties</b></em>' containment reference list.
-	 * The list contents are of type {@link org.eclipse.jpt.eclipselink.core.resource.orm.XmlProperty}.
-	 * <!-- begin-user-doc -->
-	 * <p>
-	 * If the meaning of the '<em>Properties</em>' containment reference list isn't clear,
-	 * there really should be more of a description here...
-	 * </p>
-	 * <!-- end-user-doc -->
-	 * @return the value of the '<em>Properties</em>' containment reference list.
-	 * @see org.eclipse.jpt.eclipselink.core.resource.orm.EclipseLinkOrmPackage#getXmlManyToMany_Properties()
-	 * @model containment="true"
-	 * @generated
-	 */
-	public EList<XmlProperty> getProperties()
-	{
-		if (properties == null)
-		{
-			properties = new EObjectContainmentEList<XmlProperty>(XmlProperty.class, this, EclipseLinkOrmPackage.XML_MANY_TO_MANY_IMPL__PROPERTIES);
-		}
-		return properties;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs)
-	{
-		switch (featureID)
-		{
-			case EclipseLinkOrmPackage.XML_MANY_TO_MANY_IMPL__ACCESS_METHODS:
-				return basicSetAccessMethods(null, msgs);
-			case EclipseLinkOrmPackage.XML_MANY_TO_MANY_IMPL__PROPERTIES:
-				return ((InternalEList<?>)getProperties()).basicRemove(otherEnd, msgs);
-		}
-		return super.eInverseRemove(otherEnd, featureID, msgs);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public Object eGet(int featureID, boolean resolve, boolean coreType)
-	{
-		switch (featureID)
-		{
-			case EclipseLinkOrmPackage.XML_MANY_TO_MANY_IMPL__JOIN_FETCH:
-				return getJoinFetch();
-			case EclipseLinkOrmPackage.XML_MANY_TO_MANY_IMPL__ACCESS_METHODS:
-				return getAccessMethods();
-			case EclipseLinkOrmPackage.XML_MANY_TO_MANY_IMPL__PROPERTIES:
-				return getProperties();
-		}
-		return super.eGet(featureID, resolve, coreType);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@SuppressWarnings("unchecked")
-	@Override
-	public void eSet(int featureID, Object newValue)
-	{
-		switch (featureID)
-		{
-			case EclipseLinkOrmPackage.XML_MANY_TO_MANY_IMPL__JOIN_FETCH:
-				setJoinFetch((XmlJoinFetchType)newValue);
-				return;
-			case EclipseLinkOrmPackage.XML_MANY_TO_MANY_IMPL__ACCESS_METHODS:
-				setAccessMethods((XmlAccessMethods)newValue);
-				return;
-			case EclipseLinkOrmPackage.XML_MANY_TO_MANY_IMPL__PROPERTIES:
-				getProperties().clear();
-				getProperties().addAll((Collection<? extends XmlProperty>)newValue);
-				return;
-		}
-		super.eSet(featureID, newValue);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public void eUnset(int featureID)
-	{
-		switch (featureID)
-		{
-			case EclipseLinkOrmPackage.XML_MANY_TO_MANY_IMPL__JOIN_FETCH:
-				setJoinFetch(JOIN_FETCH_EDEFAULT);
-				return;
-			case EclipseLinkOrmPackage.XML_MANY_TO_MANY_IMPL__ACCESS_METHODS:
-				setAccessMethods((XmlAccessMethods)null);
-				return;
-			case EclipseLinkOrmPackage.XML_MANY_TO_MANY_IMPL__PROPERTIES:
-				getProperties().clear();
-				return;
-		}
-		super.eUnset(featureID);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public boolean eIsSet(int featureID)
-	{
-		switch (featureID)
-		{
-			case EclipseLinkOrmPackage.XML_MANY_TO_MANY_IMPL__JOIN_FETCH:
-				return joinFetch != JOIN_FETCH_EDEFAULT;
-			case EclipseLinkOrmPackage.XML_MANY_TO_MANY_IMPL__ACCESS_METHODS:
-				return accessMethods != null;
-			case EclipseLinkOrmPackage.XML_MANY_TO_MANY_IMPL__PROPERTIES:
-				return properties != null && !properties.isEmpty();
-		}
-		return super.eIsSet(featureID);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public int eBaseStructuralFeatureID(int derivedFeatureID, Class<?> baseClass)
-	{
-		if (baseClass == XmlJoinFetch.class)
-		{
-			switch (derivedFeatureID)
-			{
-				case EclipseLinkOrmPackage.XML_MANY_TO_MANY_IMPL__JOIN_FETCH: return EclipseLinkOrmPackage.XML_JOIN_FETCH__JOIN_FETCH;
-				default: return -1;
-			}
-		}
-		if (baseClass == XmlAccessMethodsHolder.class)
-		{
-			switch (derivedFeatureID)
-			{
-				case EclipseLinkOrmPackage.XML_MANY_TO_MANY_IMPL__ACCESS_METHODS: return EclipseLinkOrmPackage.XML_ACCESS_METHODS_HOLDER__ACCESS_METHODS;
-				default: return -1;
-			}
-		}
-		if (baseClass == XmlManyToMany.class)
-		{
-			switch (derivedFeatureID)
-			{
-				case EclipseLinkOrmPackage.XML_MANY_TO_MANY_IMPL__PROPERTIES: return EclipseLinkOrmPackage.XML_MANY_TO_MANY__PROPERTIES;
-				default: return -1;
-			}
-		}
-		return super.eBaseStructuralFeatureID(derivedFeatureID, baseClass);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public int eDerivedStructuralFeatureID(int baseFeatureID, Class<?> baseClass)
-	{
-		if (baseClass == XmlJoinFetch.class)
-		{
-			switch (baseFeatureID)
-			{
-				case EclipseLinkOrmPackage.XML_JOIN_FETCH__JOIN_FETCH: return EclipseLinkOrmPackage.XML_MANY_TO_MANY_IMPL__JOIN_FETCH;
-				default: return -1;
-			}
-		}
-		if (baseClass == XmlAccessMethodsHolder.class)
-		{
-			switch (baseFeatureID)
-			{
-				case EclipseLinkOrmPackage.XML_ACCESS_METHODS_HOLDER__ACCESS_METHODS: return EclipseLinkOrmPackage.XML_MANY_TO_MANY_IMPL__ACCESS_METHODS;
-				default: return -1;
-			}
-		}
-		if (baseClass == XmlManyToMany.class)
-		{
-			switch (baseFeatureID)
-			{
-				case EclipseLinkOrmPackage.XML_MANY_TO_MANY__PROPERTIES: return EclipseLinkOrmPackage.XML_MANY_TO_MANY_IMPL__PROPERTIES;
-				default: return -1;
-			}
-		}
-		return super.eDerivedStructuralFeatureID(baseFeatureID, baseClass);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public String toString()
-	{
-		if (eIsProxy()) return super.toString();
-
-		StringBuffer result = new StringBuffer(super.toString());
-		result.append(" (joinFetch: ");
-		result.append(joinFetch);
-		result.append(')');
-		return result.toString();
-	}
-	
-	public TextRange getJoinFetchTextRange() {
-		return getElementTextRange(EclipseLinkOrmXmlMapper.JOIN_FETCH);
-	}
-} // XmlManyToMany
diff --git a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/resource/orm/XmlManyToOne.java b/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/resource/orm/XmlManyToOne.java
deleted file mode 100644
index 606b8bc..0000000
--- a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/resource/orm/XmlManyToOne.java
+++ /dev/null
@@ -1,60 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.eclipselink.core.resource.orm;
-
-import org.eclipse.emf.common.util.EList;
-
-
-/**
- * <!-- begin-user-doc -->
- * 
- * A representation of the model object '<em><b>Xml Many To One</b></em>'.
- *  
- * Provisional API: This interface is part of an interim API that is still
- * under development and expected to change significantly before reaching
- * stability. It is available at this early stage to solicit feedback from
- * pioneering adopters on the understanding that any code that uses this API
- * will almost certainly be broken (repeatedly) as the API evolves.
- * 
- * @version 2.1
- * @since 2.1
- * 
- * <!-- end-user-doc -->
- *
- * <p>
- * The following features are supported:
- * <ul>
- *   <li>{@link org.eclipse.jpt.eclipselink.core.resource.orm.XmlManyToOne#getProperties <em>Properties</em>}</li>
- * </ul>
- * </p>
- *
- * @see org.eclipse.jpt.eclipselink.core.resource.orm.EclipseLinkOrmPackage#getXmlManyToOne()
- * @model kind="class" interface="true" abstract="true"
- * @generated
- */
-public interface XmlManyToOne extends org.eclipse.jpt.core.resource.orm.XmlManyToOne, XmlJoinFetch, XmlAccessMethodsHolder
-{
-
-	/**
-	 * Returns the value of the '<em><b>Properties</b></em>' containment reference list.
-	 * The list contents are of type {@link org.eclipse.jpt.eclipselink.core.resource.orm.XmlProperty}.
-	 * <!-- begin-user-doc -->
-	 * <p>
-	 * If the meaning of the '<em>Properties</em>' containment reference list isn't clear,
-	 * there really should be more of a description here...
-	 * </p>
-	 * <!-- end-user-doc -->
-	 * @return the value of the '<em>Properties</em>' containment reference list.
-	 * @see org.eclipse.jpt.eclipselink.core.resource.orm.EclipseLinkOrmPackage#getXmlManyToOne_Properties()
-	 * @model containment="true"
-	 * @generated
-	 */
-	EList<XmlProperty> getProperties();
-} // XmlManyToOne
diff --git a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/resource/orm/XmlManyToOneImpl.java b/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/resource/orm/XmlManyToOneImpl.java
deleted file mode 100644
index 7c1ae0f..0000000
--- a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/resource/orm/XmlManyToOneImpl.java
+++ /dev/null
@@ -1,421 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.eclipselink.core.resource.orm;
-
-import java.util.Collection;
-import org.eclipse.emf.common.notify.Notification;
-import org.eclipse.emf.common.notify.NotificationChain;
-import org.eclipse.emf.common.util.EList;
-import org.eclipse.emf.ecore.EClass;
-import org.eclipse.emf.ecore.InternalEObject;
-import org.eclipse.emf.ecore.impl.ENotificationImpl;
-import org.eclipse.emf.ecore.util.EObjectContainmentEList;
-import org.eclipse.emf.ecore.util.InternalEList;
-import org.eclipse.jpt.core.utility.TextRange;
-import org.eclipse.jpt.eclipselink.core.internal.resource.orm.translators.EclipseLinkOrmXmlMapper;
-
-/**
- * <!-- begin-user-doc -->
- * 
- * A representation of the model object '<em><b>Xml Many To One</b></em>'.
- *  
- * Provisional API: This interface is part of an interim API that is still
- * under development and expected to change significantly before reaching
- * stability. It is available at this early stage to solicit feedback from
- * pioneering adopters on the understanding that any code that uses this API
- * will almost certainly be broken (repeatedly) as the API evolves.
- * 
- * @version 2.1
- * @since 2.1
- * 
- * <!-- end-user-doc -->
- *
- *
- * @see org.eclipse.jpt.eclipselink.core.resource.orm.EclipseLinkOrmPackage#getXmlManyToOneImpl()
- * @model kind="class"
- * @generated
- */
-public class XmlManyToOneImpl extends org.eclipse.jpt.core.resource.orm.XmlManyToOneImpl implements XmlManyToOne
-{
-	/**
-	 * changed this to null and removed the generated flag so emf won't generate over it
-	 * we don't want a default for enums, just null if the tag does not exist
-	 */
-	protected static final XmlJoinFetchType JOIN_FETCH_EDEFAULT = null;
-
-	/**
-	 * The cached value of the '{@link #getJoinFetch() <em>Join Fetch</em>}' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see #getJoinFetch()
-	 * @generated
-	 * @ordered
-	 */
-	protected XmlJoinFetchType joinFetch = JOIN_FETCH_EDEFAULT;
-
-	/**
-	 * The cached value of the '{@link #getAccessMethods() <em>Access Methods</em>}' containment reference.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see #getAccessMethods()
-	 * @generated
-	 * @ordered
-	 */
-	protected XmlAccessMethods accessMethods;
-
-	/**
-	 * The cached value of the '{@link #getProperties() <em>Properties</em>}' containment reference list.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see #getProperties()
-	 * @generated
-	 * @ordered
-	 */
-	protected EList<XmlProperty> properties;
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	protected XmlManyToOneImpl()
-	{
-		super();
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	protected EClass eStaticClass()
-	{
-		return EclipseLinkOrmPackage.Literals.XML_MANY_TO_ONE_IMPL;
-	}
-
-	/**
-	 * Returns the value of the '<em><b>Join Fetch</b></em>' attribute.
-	 * The literals are from the enumeration {@link org.eclipse.jpt.eclipselink.core.resource.orm.XmlJoinFetchType}.
-	 * <!-- begin-user-doc -->
-	 * <p>
-	 * If the meaning of the '<em>Join Fetch</em>' attribute isn't clear,
-	 * there really should be more of a description here...
-	 * </p>
-	 * <!-- end-user-doc -->
-	 * @return the value of the '<em>Join Fetch</em>' attribute.
-	 * @see org.eclipse.jpt.eclipselink.core.resource.orm.XmlJoinFetchType
-	 * @see #setJoinFetch(XmlJoinFetchType)
-	 * @see org.eclipse.jpt.eclipselink.core.resource.orm.EclipseLinkOrmPackage#getXmlJoinFetch_JoinFetch()
-	 * @model
-	 * @generated
-	 */
-	public XmlJoinFetchType getJoinFetch()
-	{
-		return joinFetch;
-	}
-
-	/**
-	 * Sets the value of the '{@link org.eclipse.jpt.eclipselink.core.resource.orm.XmlManyToOneImpl#getJoinFetch <em>Join Fetch</em>}' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @param value the new value of the '<em>Join Fetch</em>' attribute.
-	 * @see org.eclipse.jpt.eclipselink.core.resource.orm.XmlJoinFetchType
-	 * @see #getJoinFetch()
-	 * @generated
-	 */
-	public void setJoinFetch(XmlJoinFetchType newJoinFetch)
-	{
-		XmlJoinFetchType oldJoinFetch = joinFetch;
-		joinFetch = newJoinFetch == null ? JOIN_FETCH_EDEFAULT : newJoinFetch;
-		if (eNotificationRequired())
-			eNotify(new ENotificationImpl(this, Notification.SET, EclipseLinkOrmPackage.XML_MANY_TO_ONE_IMPL__JOIN_FETCH, oldJoinFetch, joinFetch));
-	}
-
-	/**
-	 * Returns the value of the '<em><b>Access Methods</b></em>' containment reference.
-	 * <!-- begin-user-doc -->
-	 * <p>
-	 * If the meaning of the '<em>Access Methods</em>' containment reference isn't clear,
-	 * there really should be more of a description here...
-	 * </p>
-	 * <!-- end-user-doc -->
-	 * @return the value of the '<em>Access Methods</em>' containment reference.
-	 * @see #setAccessMethods(XmlAccessMethods)
-	 * @see org.eclipse.jpt.eclipselink.core.resource.orm.EclipseLinkOrmPackage#getXmlAccessMethodsHolder_AccessMethods()
-	 * @model containment="true"
-	 * @generated
-	 */
-	public XmlAccessMethods getAccessMethods()
-	{
-		return accessMethods;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public NotificationChain basicSetAccessMethods(XmlAccessMethods newAccessMethods, NotificationChain msgs)
-	{
-		XmlAccessMethods oldAccessMethods = accessMethods;
-		accessMethods = newAccessMethods;
-		if (eNotificationRequired())
-		{
-			ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, EclipseLinkOrmPackage.XML_MANY_TO_ONE_IMPL__ACCESS_METHODS, oldAccessMethods, newAccessMethods);
-			if (msgs == null) msgs = notification; else msgs.add(notification);
-		}
-		return msgs;
-	}
-
-	/**
-	 * Sets the value of the '{@link org.eclipse.jpt.eclipselink.core.resource.orm.XmlManyToOneImpl#getAccessMethods <em>Access Methods</em>}' containment reference.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @param value the new value of the '<em>Access Methods</em>' containment reference.
-	 * @see #getAccessMethods()
-	 * @generated
-	 */
-	public void setAccessMethods(XmlAccessMethods newAccessMethods)
-	{
-		if (newAccessMethods != accessMethods)
-		{
-			NotificationChain msgs = null;
-			if (accessMethods != null)
-				msgs = ((InternalEObject)accessMethods).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - EclipseLinkOrmPackage.XML_MANY_TO_ONE_IMPL__ACCESS_METHODS, null, msgs);
-			if (newAccessMethods != null)
-				msgs = ((InternalEObject)newAccessMethods).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - EclipseLinkOrmPackage.XML_MANY_TO_ONE_IMPL__ACCESS_METHODS, null, msgs);
-			msgs = basicSetAccessMethods(newAccessMethods, msgs);
-			if (msgs != null) msgs.dispatch();
-		}
-		else if (eNotificationRequired())
-			eNotify(new ENotificationImpl(this, Notification.SET, EclipseLinkOrmPackage.XML_MANY_TO_ONE_IMPL__ACCESS_METHODS, newAccessMethods, newAccessMethods));
-	}
-
-	/**
-	 * Returns the value of the '<em><b>Properties</b></em>' containment reference list.
-	 * The list contents are of type {@link org.eclipse.jpt.eclipselink.core.resource.orm.XmlProperty}.
-	 * <!-- begin-user-doc -->
-	 * <p>
-	 * If the meaning of the '<em>Properties</em>' containment reference list isn't clear,
-	 * there really should be more of a description here...
-	 * </p>
-	 * <!-- end-user-doc -->
-	 * @return the value of the '<em>Properties</em>' containment reference list.
-	 * @see org.eclipse.jpt.eclipselink.core.resource.orm.EclipseLinkOrmPackage#getXmlManyToOne_Properties()
-	 * @model containment="true"
-	 * @generated
-	 */
-	public EList<XmlProperty> getProperties()
-	{
-		if (properties == null)
-		{
-			properties = new EObjectContainmentEList<XmlProperty>(XmlProperty.class, this, EclipseLinkOrmPackage.XML_MANY_TO_ONE_IMPL__PROPERTIES);
-		}
-		return properties;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs)
-	{
-		switch (featureID)
-		{
-			case EclipseLinkOrmPackage.XML_MANY_TO_ONE_IMPL__ACCESS_METHODS:
-				return basicSetAccessMethods(null, msgs);
-			case EclipseLinkOrmPackage.XML_MANY_TO_ONE_IMPL__PROPERTIES:
-				return ((InternalEList<?>)getProperties()).basicRemove(otherEnd, msgs);
-		}
-		return super.eInverseRemove(otherEnd, featureID, msgs);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public Object eGet(int featureID, boolean resolve, boolean coreType)
-	{
-		switch (featureID)
-		{
-			case EclipseLinkOrmPackage.XML_MANY_TO_ONE_IMPL__JOIN_FETCH:
-				return getJoinFetch();
-			case EclipseLinkOrmPackage.XML_MANY_TO_ONE_IMPL__ACCESS_METHODS:
-				return getAccessMethods();
-			case EclipseLinkOrmPackage.XML_MANY_TO_ONE_IMPL__PROPERTIES:
-				return getProperties();
-		}
-		return super.eGet(featureID, resolve, coreType);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@SuppressWarnings("unchecked")
-	@Override
-	public void eSet(int featureID, Object newValue)
-	{
-		switch (featureID)
-		{
-			case EclipseLinkOrmPackage.XML_MANY_TO_ONE_IMPL__JOIN_FETCH:
-				setJoinFetch((XmlJoinFetchType)newValue);
-				return;
-			case EclipseLinkOrmPackage.XML_MANY_TO_ONE_IMPL__ACCESS_METHODS:
-				setAccessMethods((XmlAccessMethods)newValue);
-				return;
-			case EclipseLinkOrmPackage.XML_MANY_TO_ONE_IMPL__PROPERTIES:
-				getProperties().clear();
-				getProperties().addAll((Collection<? extends XmlProperty>)newValue);
-				return;
-		}
-		super.eSet(featureID, newValue);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public void eUnset(int featureID)
-	{
-		switch (featureID)
-		{
-			case EclipseLinkOrmPackage.XML_MANY_TO_ONE_IMPL__JOIN_FETCH:
-				setJoinFetch(JOIN_FETCH_EDEFAULT);
-				return;
-			case EclipseLinkOrmPackage.XML_MANY_TO_ONE_IMPL__ACCESS_METHODS:
-				setAccessMethods((XmlAccessMethods)null);
-				return;
-			case EclipseLinkOrmPackage.XML_MANY_TO_ONE_IMPL__PROPERTIES:
-				getProperties().clear();
-				return;
-		}
-		super.eUnset(featureID);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public boolean eIsSet(int featureID)
-	{
-		switch (featureID)
-		{
-			case EclipseLinkOrmPackage.XML_MANY_TO_ONE_IMPL__JOIN_FETCH:
-				return joinFetch != JOIN_FETCH_EDEFAULT;
-			case EclipseLinkOrmPackage.XML_MANY_TO_ONE_IMPL__ACCESS_METHODS:
-				return accessMethods != null;
-			case EclipseLinkOrmPackage.XML_MANY_TO_ONE_IMPL__PROPERTIES:
-				return properties != null && !properties.isEmpty();
-		}
-		return super.eIsSet(featureID);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public int eBaseStructuralFeatureID(int derivedFeatureID, Class<?> baseClass)
-	{
-		if (baseClass == XmlJoinFetch.class)
-		{
-			switch (derivedFeatureID)
-			{
-				case EclipseLinkOrmPackage.XML_MANY_TO_ONE_IMPL__JOIN_FETCH: return EclipseLinkOrmPackage.XML_JOIN_FETCH__JOIN_FETCH;
-				default: return -1;
-			}
-		}
-		if (baseClass == XmlAccessMethodsHolder.class)
-		{
-			switch (derivedFeatureID)
-			{
-				case EclipseLinkOrmPackage.XML_MANY_TO_ONE_IMPL__ACCESS_METHODS: return EclipseLinkOrmPackage.XML_ACCESS_METHODS_HOLDER__ACCESS_METHODS;
-				default: return -1;
-			}
-		}
-		if (baseClass == XmlManyToOne.class)
-		{
-			switch (derivedFeatureID)
-			{
-				case EclipseLinkOrmPackage.XML_MANY_TO_ONE_IMPL__PROPERTIES: return EclipseLinkOrmPackage.XML_MANY_TO_ONE__PROPERTIES;
-				default: return -1;
-			}
-		}
-		return super.eBaseStructuralFeatureID(derivedFeatureID, baseClass);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public int eDerivedStructuralFeatureID(int baseFeatureID, Class<?> baseClass)
-	{
-		if (baseClass == XmlJoinFetch.class)
-		{
-			switch (baseFeatureID)
-			{
-				case EclipseLinkOrmPackage.XML_JOIN_FETCH__JOIN_FETCH: return EclipseLinkOrmPackage.XML_MANY_TO_ONE_IMPL__JOIN_FETCH;
-				default: return -1;
-			}
-		}
-		if (baseClass == XmlAccessMethodsHolder.class)
-		{
-			switch (baseFeatureID)
-			{
-				case EclipseLinkOrmPackage.XML_ACCESS_METHODS_HOLDER__ACCESS_METHODS: return EclipseLinkOrmPackage.XML_MANY_TO_ONE_IMPL__ACCESS_METHODS;
-				default: return -1;
-			}
-		}
-		if (baseClass == XmlManyToOne.class)
-		{
-			switch (baseFeatureID)
-			{
-				case EclipseLinkOrmPackage.XML_MANY_TO_ONE__PROPERTIES: return EclipseLinkOrmPackage.XML_MANY_TO_ONE_IMPL__PROPERTIES;
-				default: return -1;
-			}
-		}
-		return super.eDerivedStructuralFeatureID(baseFeatureID, baseClass);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public String toString()
-	{
-		if (eIsProxy()) return super.toString();
-
-		StringBuffer result = new StringBuffer(super.toString());
-		result.append(" (joinFetch: ");
-		result.append(joinFetch);
-		result.append(')');
-		return result.toString();
-	}
-	
-	public TextRange getJoinFetchTextRange() {
-		return getElementTextRange(EclipseLinkOrmXmlMapper.JOIN_FETCH);
-	}
-} // XmlManyToOne
diff --git a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/resource/orm/XmlMappedSuperclass.java b/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/resource/orm/XmlMappedSuperclass.java
deleted file mode 100644
index ea1cd21..0000000
--- a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/resource/orm/XmlMappedSuperclass.java
+++ /dev/null
@@ -1,1283 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008, 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.eclipselink.core.resource.orm;
-
-import java.util.Collection;
-import org.eclipse.emf.common.notify.Notification;
-import org.eclipse.emf.common.notify.NotificationChain;
-import org.eclipse.emf.common.util.EList;
-import org.eclipse.emf.ecore.EClass;
-import org.eclipse.emf.ecore.InternalEObject;
-import org.eclipse.emf.ecore.impl.ENotificationImpl;
-import org.eclipse.emf.ecore.util.EObjectContainmentEList;
-import org.eclipse.emf.ecore.util.InternalEList;
-import org.eclipse.jpt.core.utility.TextRange;
-import org.eclipse.jpt.eclipselink.core.internal.resource.orm.translators.EclipseLinkOrmXmlMapper;
-
-/**
- * <!-- begin-user-doc -->
- * 
- * A representation of the model object '<em><b>Xml Mapped Superclass</b></em>'.
- *  
- * Provisional API: This interface is part of an interim API that is still
- * under development and expected to change significantly before reaching
- * stability. It is available at this early stage to solicit feedback from
- * pioneering adopters on the understanding that any code that uses this API
- * will almost certainly be broken (repeatedly) as the API evolves.
- * 
- * @version 2.1
- * @since 2.1
- * 
- * <!-- end-user-doc -->
- *
- * <p>
- * The following features are supported:
- * <ul>
- *   <li>{@link org.eclipse.jpt.eclipselink.core.resource.orm.XmlMappedSuperclass#getOptimisticLocking <em>Optimistic Locking</em>}</li>
- *   <li>{@link org.eclipse.jpt.eclipselink.core.resource.orm.XmlMappedSuperclass#getCopyPolicy <em>Copy Policy</em>}</li>
- *   <li>{@link org.eclipse.jpt.eclipselink.core.resource.orm.XmlMappedSuperclass#getInstantiationCopyPolicy <em>Instantiation Copy Policy</em>}</li>
- *   <li>{@link org.eclipse.jpt.eclipselink.core.resource.orm.XmlMappedSuperclass#getCloneCopyPolicy <em>Clone Copy Policy</em>}</li>
- *   <li>{@link org.eclipse.jpt.eclipselink.core.resource.orm.XmlMappedSuperclass#getProperties <em>Properties</em>}</li>
- *   <li>{@link org.eclipse.jpt.eclipselink.core.resource.orm.XmlMappedSuperclass#getExcludeDefaultMappings <em>Exclude Default Mappings</em>}</li>
- * </ul>
- * </p>
- *
- * @see org.eclipse.jpt.eclipselink.core.resource.orm.EclipseLinkOrmPackage#getXmlMappedSuperclass()
- * @model kind="class"
- * @generated
- */
-public class XmlMappedSuperclass extends org.eclipse.jpt.core.resource.orm.XmlMappedSuperclass implements XmlReadOnly, XmlCustomizerHolder, XmlChangeTrackingHolder, XmlCacheHolder, XmlConvertersHolder
-{
-	/**
-	 * The default value of the '{@link #getReadOnly() <em>Read Only</em>}' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see #getReadOnly()
-	 * @generated
-	 * @ordered
-	 */
-	protected static final Boolean READ_ONLY_EDEFAULT = null;
-
-	/**
-	 * The cached value of the '{@link #getReadOnly() <em>Read Only</em>}' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see #getReadOnly()
-	 * @generated
-	 * @ordered
-	 */
-	protected Boolean readOnly = READ_ONLY_EDEFAULT;
-
-	/**
-	 * The cached value of the '{@link #getCustomizer() <em>Customizer</em>}' containment reference.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see #getCustomizer()
-	 * @generated
-	 * @ordered
-	 */
-	protected XmlCustomizer customizer;
-
-	/**
-	 * The cached value of the '{@link #getChangeTracking() <em>Change Tracking</em>}' containment reference.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see #getChangeTracking()
-	 * @generated
-	 * @ordered
-	 */
-	protected XmlChangeTracking changeTracking;
-
-	/**
-	 * The cached value of the '{@link #getCache() <em>Cache</em>}' containment reference.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see #getCache()
-	 * @generated
-	 * @ordered
-	 */
-	protected XmlCache cache;
-
-	/**
-	 * changed this to null and removed the generated flag so emf won't generate over it
-	 * we don't want a default for enums, just null if the tag does not exist
-	 */
-	protected static final ExistenceType EXISTENCE_CHECKING_EDEFAULT = null;
-
-	/**
-	 * The cached value of the '{@link #getExistenceChecking() <em>Existence Checking</em>}' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see #getExistenceChecking()
-	 * @generated
-	 * @ordered
-	 */
-	protected ExistenceType existenceChecking = EXISTENCE_CHECKING_EDEFAULT;
-
-	/**
-	 * The cached value of the '{@link #getConverters() <em>Converters</em>}' containment reference list.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see #getConverters()
-	 * @generated
-	 * @ordered
-	 */
-	protected EList<XmlConverter> converters;
-
-	/**
-	 * The cached value of the '{@link #getTypeConverters() <em>Type Converters</em>}' containment reference list.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see #getTypeConverters()
-	 * @generated
-	 * @ordered
-	 */
-	protected EList<XmlTypeConverter> typeConverters;
-
-	/**
-	 * The cached value of the '{@link #getObjectTypeConverters() <em>Object Type Converters</em>}' containment reference list.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see #getObjectTypeConverters()
-	 * @generated
-	 * @ordered
-	 */
-	protected EList<XmlObjectTypeConverter> objectTypeConverters;
-
-	/**
-	 * The cached value of the '{@link #getStructConverters() <em>Struct Converters</em>}' containment reference list.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see #getStructConverters()
-	 * @generated
-	 * @ordered
-	 */
-	protected EList<XmlStructConverter> structConverters;
-
-	/**
-	 * The cached value of the '{@link #getOptimisticLocking() <em>Optimistic Locking</em>}' containment reference.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see #getOptimisticLocking()
-	 * @generated
-	 * @ordered
-	 */
-	protected XmlOptimisticLocking optimisticLocking;
-
-	/**
-	 * The cached value of the '{@link #getCopyPolicy() <em>Copy Policy</em>}' containment reference.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see #getCopyPolicy()
-	 * @generated
-	 * @ordered
-	 */
-	protected XmlCopyPolicy copyPolicy;
-
-	/**
-	 * The cached value of the '{@link #getInstantiationCopyPolicy() <em>Instantiation Copy Policy</em>}' containment reference.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see #getInstantiationCopyPolicy()
-	 * @generated
-	 * @ordered
-	 */
-	protected XmlCopyPolicy instantiationCopyPolicy;
-
-	/**
-	 * The cached value of the '{@link #getCloneCopyPolicy() <em>Clone Copy Policy</em>}' containment reference.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see #getCloneCopyPolicy()
-	 * @generated
-	 * @ordered
-	 */
-	protected XmlCopyPolicy cloneCopyPolicy;
-
-	/**
-	 * The cached value of the '{@link #getProperties() <em>Properties</em>}' containment reference list.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see #getProperties()
-	 * @generated
-	 * @ordered
-	 */
-	protected EList<XmlProperty> properties;
-
-	/**
-	 * The default value of the '{@link #getExcludeDefaultMappings() <em>Exclude Default Mappings</em>}' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see #getExcludeDefaultMappings()
-	 * @generated
-	 * @ordered
-	 */
-	protected static final Boolean EXCLUDE_DEFAULT_MAPPINGS_EDEFAULT = null;
-
-	/**
-	 * The cached value of the '{@link #getExcludeDefaultMappings() <em>Exclude Default Mappings</em>}' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see #getExcludeDefaultMappings()
-	 * @generated
-	 * @ordered
-	 */
-	protected Boolean excludeDefaultMappings = EXCLUDE_DEFAULT_MAPPINGS_EDEFAULT;
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	protected XmlMappedSuperclass()
-	{
-		super();
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	protected EClass eStaticClass()
-	{
-		return EclipseLinkOrmPackage.Literals.XML_MAPPED_SUPERCLASS;
-	}
-
-	/**
-	 * Returns the value of the '<em><b>Read Only</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <p>
-	 * If the meaning of the '<em>Read Only</em>' attribute isn't clear,
-	 * there really should be more of a description here...
-	 * </p>
-	 * <!-- end-user-doc -->
-	 * @return the value of the '<em>Read Only</em>' attribute.
-	 * @see #setReadOnly(Boolean)
-	 * @see org.eclipse.jpt.eclipselink.core.resource.orm.EclipseLinkOrmPackage#getXmlReadOnly_ReadOnly()
-	 * @model dataType="org.eclipse.emf.ecore.xml.type.BooleanObject"
-	 * @generated
-	 */
-	public Boolean getReadOnly()
-	{
-		return readOnly;
-	}
-
-	/**
-	 * Sets the value of the '{@link org.eclipse.jpt.eclipselink.core.resource.orm.XmlMappedSuperclass#getReadOnly <em>Read Only</em>}' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @param value the new value of the '<em>Read Only</em>' attribute.
-	 * @see #getReadOnly()
-	 * @generated
-	 */
-	public void setReadOnly(Boolean newReadOnly)
-	{
-		Boolean oldReadOnly = readOnly;
-		readOnly = newReadOnly;
-		if (eNotificationRequired())
-			eNotify(new ENotificationImpl(this, Notification.SET, EclipseLinkOrmPackage.XML_MAPPED_SUPERCLASS__READ_ONLY, oldReadOnly, readOnly));
-	}
-
-	/**
-	 * Returns the value of the '<em><b>Customizer</b></em>' containment reference.
-	 * <!-- begin-user-doc -->
-	 * <p>
-	 * If the meaning of the '<em>Customizer</em>' containment reference isn't clear,
-	 * there really should be more of a description here...
-	 * </p>
-	 * <!-- end-user-doc -->
-	 * @return the value of the '<em>Customizer</em>' containment reference.
-	 * @see #setCustomizer(XmlCustomizer)
-	 * @see org.eclipse.jpt.eclipselink.core.resource.orm.EclipseLinkOrmPackage#getXmlCustomizerHolder_Customizer()
-	 * @model containment="true"
-	 * @generated
-	 */
-	public XmlCustomizer getCustomizer()
-	{
-		return customizer;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public NotificationChain basicSetCustomizer(XmlCustomizer newCustomizer, NotificationChain msgs)
-	{
-		XmlCustomizer oldCustomizer = customizer;
-		customizer = newCustomizer;
-		if (eNotificationRequired())
-		{
-			ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, EclipseLinkOrmPackage.XML_MAPPED_SUPERCLASS__CUSTOMIZER, oldCustomizer, newCustomizer);
-			if (msgs == null) msgs = notification; else msgs.add(notification);
-		}
-		return msgs;
-	}
-
-	/**
-	 * Sets the value of the '{@link org.eclipse.jpt.eclipselink.core.resource.orm.XmlMappedSuperclass#getCustomizer <em>Customizer</em>}' containment reference.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @param value the new value of the '<em>Customizer</em>' containment reference.
-	 * @see #getCustomizer()
-	 * @generated
-	 */
-	public void setCustomizer(XmlCustomizer newCustomizer)
-	{
-		if (newCustomizer != customizer)
-		{
-			NotificationChain msgs = null;
-			if (customizer != null)
-				msgs = ((InternalEObject)customizer).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - EclipseLinkOrmPackage.XML_MAPPED_SUPERCLASS__CUSTOMIZER, null, msgs);
-			if (newCustomizer != null)
-				msgs = ((InternalEObject)newCustomizer).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - EclipseLinkOrmPackage.XML_MAPPED_SUPERCLASS__CUSTOMIZER, null, msgs);
-			msgs = basicSetCustomizer(newCustomizer, msgs);
-			if (msgs != null) msgs.dispatch();
-		}
-		else if (eNotificationRequired())
-			eNotify(new ENotificationImpl(this, Notification.SET, EclipseLinkOrmPackage.XML_MAPPED_SUPERCLASS__CUSTOMIZER, newCustomizer, newCustomizer));
-	}
-
-	/**
-	 * Returns the value of the '<em><b>Change Tracking</b></em>' containment reference.
-	 * <!-- begin-user-doc -->
-	 * <p>
-	 * If the meaning of the '<em>Change Tracking</em>' containment reference isn't clear,
-	 * there really should be more of a description here...
-	 * </p>
-	 * <!-- end-user-doc -->
-	 * @return the value of the '<em>Change Tracking</em>' containment reference.
-	 * @see #setChangeTracking(XmlChangeTracking)
-	 * @see org.eclipse.jpt.eclipselink.core.resource.orm.EclipseLinkOrmPackage#getXmlChangeTrackingHolder_ChangeTracking()
-	 * @model containment="true"
-	 * @generated
-	 */
-	public XmlChangeTracking getChangeTracking()
-	{
-		return changeTracking;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public NotificationChain basicSetChangeTracking(XmlChangeTracking newChangeTracking, NotificationChain msgs)
-	{
-		XmlChangeTracking oldChangeTracking = changeTracking;
-		changeTracking = newChangeTracking;
-		if (eNotificationRequired())
-		{
-			ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, EclipseLinkOrmPackage.XML_MAPPED_SUPERCLASS__CHANGE_TRACKING, oldChangeTracking, newChangeTracking);
-			if (msgs == null) msgs = notification; else msgs.add(notification);
-		}
-		return msgs;
-	}
-
-	/**
-	 * Sets the value of the '{@link org.eclipse.jpt.eclipselink.core.resource.orm.XmlMappedSuperclass#getChangeTracking <em>Change Tracking</em>}' containment reference.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @param value the new value of the '<em>Change Tracking</em>' containment reference.
-	 * @see #getChangeTracking()
-	 * @generated
-	 */
-	public void setChangeTracking(XmlChangeTracking newChangeTracking)
-	{
-		if (newChangeTracking != changeTracking)
-		{
-			NotificationChain msgs = null;
-			if (changeTracking != null)
-				msgs = ((InternalEObject)changeTracking).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - EclipseLinkOrmPackage.XML_MAPPED_SUPERCLASS__CHANGE_TRACKING, null, msgs);
-			if (newChangeTracking != null)
-				msgs = ((InternalEObject)newChangeTracking).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - EclipseLinkOrmPackage.XML_MAPPED_SUPERCLASS__CHANGE_TRACKING, null, msgs);
-			msgs = basicSetChangeTracking(newChangeTracking, msgs);
-			if (msgs != null) msgs.dispatch();
-		}
-		else if (eNotificationRequired())
-			eNotify(new ENotificationImpl(this, Notification.SET, EclipseLinkOrmPackage.XML_MAPPED_SUPERCLASS__CHANGE_TRACKING, newChangeTracking, newChangeTracking));
-	}
-
-	/**
-	 * Returns the value of the '<em><b>Cache</b></em>' containment reference.
-	 * <!-- begin-user-doc -->
-	 * <p>
-	 * If the meaning of the '<em>Cache</em>' containment reference isn't clear,
-	 * there really should be more of a description here...
-	 * </p>
-	 * <!-- end-user-doc -->
-	 * @return the value of the '<em>Cache</em>' containment reference.
-	 * @see #setCache(XmlCache)
-	 * @see org.eclipse.jpt.eclipselink.core.resource.orm.EclipseLinkOrmPackage#getXmlCacheHolder_Cache()
-	 * @model containment="true"
-	 * @generated
-	 */
-	public XmlCache getCache()
-	{
-		return cache;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public NotificationChain basicSetCache(XmlCache newCache, NotificationChain msgs)
-	{
-		XmlCache oldCache = cache;
-		cache = newCache;
-		if (eNotificationRequired())
-		{
-			ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, EclipseLinkOrmPackage.XML_MAPPED_SUPERCLASS__CACHE, oldCache, newCache);
-			if (msgs == null) msgs = notification; else msgs.add(notification);
-		}
-		return msgs;
-	}
-
-	/**
-	 * Sets the value of the '{@link org.eclipse.jpt.eclipselink.core.resource.orm.XmlMappedSuperclass#getCache <em>Cache</em>}' containment reference.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @param value the new value of the '<em>Cache</em>' containment reference.
-	 * @see #getCache()
-	 * @generated
-	 */
-	public void setCache(XmlCache newCache)
-	{
-		if (newCache != cache)
-		{
-			NotificationChain msgs = null;
-			if (cache != null)
-				msgs = ((InternalEObject)cache).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - EclipseLinkOrmPackage.XML_MAPPED_SUPERCLASS__CACHE, null, msgs);
-			if (newCache != null)
-				msgs = ((InternalEObject)newCache).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - EclipseLinkOrmPackage.XML_MAPPED_SUPERCLASS__CACHE, null, msgs);
-			msgs = basicSetCache(newCache, msgs);
-			if (msgs != null) msgs.dispatch();
-		}
-		else if (eNotificationRequired())
-			eNotify(new ENotificationImpl(this, Notification.SET, EclipseLinkOrmPackage.XML_MAPPED_SUPERCLASS__CACHE, newCache, newCache));
-	}
-
-	/**
-	 * Returns the value of the '<em><b>Existence Checking</b></em>' attribute.
-	 * The default value is <code>""</code>.
-	 * The literals are from the enumeration {@link org.eclipse.jpt.eclipselink.core.resource.orm.ExistenceType}.
-	 * <!-- begin-user-doc -->
-	 * <p>
-	 * If the meaning of the '<em>Existence Checking</em>' attribute isn't clear,
-	 * there really should be more of a description here...
-	 * </p>
-	 * <!-- end-user-doc -->
-	 * @return the value of the '<em>Existence Checking</em>' attribute.
-	 * @see org.eclipse.jpt.eclipselink.core.resource.orm.ExistenceType
-	 * @see #setExistenceChecking(ExistenceType)
-	 * @see org.eclipse.jpt.eclipselink.core.resource.orm.EclipseLinkOrmPackage#getXmlCacheHolder_ExistenceChecking()
-	 * @model default=""
-	 * @generated
-	 */
-	public ExistenceType getExistenceChecking()
-	{
-		return existenceChecking;
-	}
-
-	/**
-	 * Sets the value of the '{@link org.eclipse.jpt.eclipselink.core.resource.orm.XmlMappedSuperclass#getExistenceChecking <em>Existence Checking</em>}' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @param value the new value of the '<em>Existence Checking</em>' attribute.
-	 * @see org.eclipse.jpt.eclipselink.core.resource.orm.ExistenceType
-	 * @see #getExistenceChecking()
-	 * @generated
-	 */
-	public void setExistenceChecking(ExistenceType newExistenceChecking)
-	{
-		ExistenceType oldExistenceChecking = existenceChecking;
-		existenceChecking = newExistenceChecking == null ? EXISTENCE_CHECKING_EDEFAULT : newExistenceChecking;
-		if (eNotificationRequired())
-			eNotify(new ENotificationImpl(this, Notification.SET, EclipseLinkOrmPackage.XML_MAPPED_SUPERCLASS__EXISTENCE_CHECKING, oldExistenceChecking, existenceChecking));
-	}
-
-	/**
-	 * Returns the value of the '<em><b>Converters</b></em>' containment reference list.
-	 * The list contents are of type {@link org.eclipse.jpt.eclipselink.core.resource.orm.XmlConverter}.
-	 * <!-- begin-user-doc -->
-	 * <p>
-	 * If the meaning of the '<em>Converters</em>' containment reference list isn't clear,
-	 * there really should be more of a description here...
-	 * </p>
-	 * <!-- end-user-doc -->
-	 * @return the value of the '<em>Converters</em>' containment reference list.
-	 * @see org.eclipse.jpt.eclipselink.core.resource.orm.EclipseLinkOrmPackage#getXmlConvertersHolder_Converters()
-	 * @model containment="true"
-	 * @generated
-	 */
-	public EList<XmlConverter> getConverters()
-	{
-		if (converters == null)
-		{
-			converters = new EObjectContainmentEList<XmlConverter>(XmlConverter.class, this, EclipseLinkOrmPackage.XML_MAPPED_SUPERCLASS__CONVERTERS);
-		}
-		return converters;
-	}
-
-	/**
-	 * Returns the value of the '<em><b>Type Converters</b></em>' containment reference list.
-	 * The list contents are of type {@link org.eclipse.jpt.eclipselink.core.resource.orm.XmlTypeConverter}.
-	 * <!-- begin-user-doc -->
-	 * <p>
-	 * If the meaning of the '<em>Type Converters</em>' containment reference list isn't clear,
-	 * there really should be more of a description here...
-	 * </p>
-	 * <!-- end-user-doc -->
-	 * @return the value of the '<em>Type Converters</em>' containment reference list.
-	 * @see org.eclipse.jpt.eclipselink.core.resource.orm.EclipseLinkOrmPackage#getXmlConvertersHolder_TypeConverters()
-	 * @model containment="true"
-	 * @generated
-	 */
-	public EList<XmlTypeConverter> getTypeConverters()
-	{
-		if (typeConverters == null)
-		{
-			typeConverters = new EObjectContainmentEList<XmlTypeConverter>(XmlTypeConverter.class, this, EclipseLinkOrmPackage.XML_MAPPED_SUPERCLASS__TYPE_CONVERTERS);
-		}
-		return typeConverters;
-	}
-
-	/**
-	 * Returns the value of the '<em><b>Object Type Converters</b></em>' containment reference list.
-	 * The list contents are of type {@link org.eclipse.jpt.eclipselink.core.resource.orm.XmlObjectTypeConverter}.
-	 * <!-- begin-user-doc -->
-	 * <p>
-	 * If the meaning of the '<em>Object Type Converters</em>' containment reference list isn't clear,
-	 * there really should be more of a description here...
-	 * </p>
-	 * <!-- end-user-doc -->
-	 * @return the value of the '<em>Object Type Converters</em>' containment reference list.
-	 * @see org.eclipse.jpt.eclipselink.core.resource.orm.EclipseLinkOrmPackage#getXmlConvertersHolder_ObjectTypeConverters()
-	 * @model containment="true"
-	 * @generated
-	 */
-	public EList<XmlObjectTypeConverter> getObjectTypeConverters()
-	{
-		if (objectTypeConverters == null)
-		{
-			objectTypeConverters = new EObjectContainmentEList<XmlObjectTypeConverter>(XmlObjectTypeConverter.class, this, EclipseLinkOrmPackage.XML_MAPPED_SUPERCLASS__OBJECT_TYPE_CONVERTERS);
-		}
-		return objectTypeConverters;
-	}
-
-	/**
-	 * Returns the value of the '<em><b>Struct Converters</b></em>' containment reference list.
-	 * The list contents are of type {@link org.eclipse.jpt.eclipselink.core.resource.orm.XmlStructConverter}.
-	 * <!-- begin-user-doc -->
-	 * <p>
-	 * If the meaning of the '<em>Struct Converters</em>' containment reference list isn't clear,
-	 * there really should be more of a description here...
-	 * </p>
-	 * <!-- end-user-doc -->
-	 * @return the value of the '<em>Struct Converters</em>' containment reference list.
-	 * @see org.eclipse.jpt.eclipselink.core.resource.orm.EclipseLinkOrmPackage#getXmlConvertersHolder_StructConverters()
-	 * @model containment="true"
-	 * @generated
-	 */
-	public EList<XmlStructConverter> getStructConverters()
-	{
-		if (structConverters == null)
-		{
-			structConverters = new EObjectContainmentEList<XmlStructConverter>(XmlStructConverter.class, this, EclipseLinkOrmPackage.XML_MAPPED_SUPERCLASS__STRUCT_CONVERTERS);
-		}
-		return structConverters;
-	}
-
-	/**
-	 * Returns the value of the '<em><b>Optimistic Locking</b></em>' containment reference.
-	 * <!-- begin-user-doc -->
-	 * <p>
-	 * If the meaning of the '<em>Optimistic Locking</em>' containment reference isn't clear,
-	 * there really should be more of a description here...
-	 * </p>
-	 * <!-- end-user-doc -->
-	 * @return the value of the '<em>Optimistic Locking</em>' containment reference.
-	 * @see #setOptimisticLocking(XmlOptimisticLocking)
-	 * @see org.eclipse.jpt.eclipselink.core.resource.orm.EclipseLinkOrmPackage#getXmlMappedSuperclass_OptimisticLocking()
-	 * @model containment="true"
-	 * @generated
-	 */
-	public XmlOptimisticLocking getOptimisticLocking()
-	{
-		return optimisticLocking;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public NotificationChain basicSetOptimisticLocking(XmlOptimisticLocking newOptimisticLocking, NotificationChain msgs)
-	{
-		XmlOptimisticLocking oldOptimisticLocking = optimisticLocking;
-		optimisticLocking = newOptimisticLocking;
-		if (eNotificationRequired())
-		{
-			ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, EclipseLinkOrmPackage.XML_MAPPED_SUPERCLASS__OPTIMISTIC_LOCKING, oldOptimisticLocking, newOptimisticLocking);
-			if (msgs == null) msgs = notification; else msgs.add(notification);
-		}
-		return msgs;
-	}
-
-	/**
-	 * Sets the value of the '{@link org.eclipse.jpt.eclipselink.core.resource.orm.XmlMappedSuperclass#getOptimisticLocking <em>Optimistic Locking</em>}' containment reference.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @param value the new value of the '<em>Optimistic Locking</em>' containment reference.
-	 * @see #getOptimisticLocking()
-	 * @generated
-	 */
-	public void setOptimisticLocking(XmlOptimisticLocking newOptimisticLocking)
-	{
-		if (newOptimisticLocking != optimisticLocking)
-		{
-			NotificationChain msgs = null;
-			if (optimisticLocking != null)
-				msgs = ((InternalEObject)optimisticLocking).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - EclipseLinkOrmPackage.XML_MAPPED_SUPERCLASS__OPTIMISTIC_LOCKING, null, msgs);
-			if (newOptimisticLocking != null)
-				msgs = ((InternalEObject)newOptimisticLocking).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - EclipseLinkOrmPackage.XML_MAPPED_SUPERCLASS__OPTIMISTIC_LOCKING, null, msgs);
-			msgs = basicSetOptimisticLocking(newOptimisticLocking, msgs);
-			if (msgs != null) msgs.dispatch();
-		}
-		else if (eNotificationRequired())
-			eNotify(new ENotificationImpl(this, Notification.SET, EclipseLinkOrmPackage.XML_MAPPED_SUPERCLASS__OPTIMISTIC_LOCKING, newOptimisticLocking, newOptimisticLocking));
-	}
-
-	/**
-	 * Returns the value of the '<em><b>Copy Policy</b></em>' containment reference.
-	 * <!-- begin-user-doc -->
-	 * <p>
-	 * If the meaning of the '<em>Copy Policy</em>' containment reference isn't clear,
-	 * there really should be more of a description here...
-	 * </p>
-	 * <!-- end-user-doc -->
-	 * @return the value of the '<em>Copy Policy</em>' containment reference.
-	 * @see #setCopyPolicy(XmlCopyPolicy)
-	 * @see org.eclipse.jpt.eclipselink.core.resource.orm.EclipseLinkOrmPackage#getXmlMappedSuperclass_CopyPolicy()
-	 * @model containment="true"
-	 * @generated
-	 */
-	public XmlCopyPolicy getCopyPolicy()
-	{
-		return copyPolicy;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public NotificationChain basicSetCopyPolicy(XmlCopyPolicy newCopyPolicy, NotificationChain msgs)
-	{
-		XmlCopyPolicy oldCopyPolicy = copyPolicy;
-		copyPolicy = newCopyPolicy;
-		if (eNotificationRequired())
-		{
-			ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, EclipseLinkOrmPackage.XML_MAPPED_SUPERCLASS__COPY_POLICY, oldCopyPolicy, newCopyPolicy);
-			if (msgs == null) msgs = notification; else msgs.add(notification);
-		}
-		return msgs;
-	}
-
-	/**
-	 * Sets the value of the '{@link org.eclipse.jpt.eclipselink.core.resource.orm.XmlMappedSuperclass#getCopyPolicy <em>Copy Policy</em>}' containment reference.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @param value the new value of the '<em>Copy Policy</em>' containment reference.
-	 * @see #getCopyPolicy()
-	 * @generated
-	 */
-	public void setCopyPolicy(XmlCopyPolicy newCopyPolicy)
-	{
-		if (newCopyPolicy != copyPolicy)
-		{
-			NotificationChain msgs = null;
-			if (copyPolicy != null)
-				msgs = ((InternalEObject)copyPolicy).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - EclipseLinkOrmPackage.XML_MAPPED_SUPERCLASS__COPY_POLICY, null, msgs);
-			if (newCopyPolicy != null)
-				msgs = ((InternalEObject)newCopyPolicy).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - EclipseLinkOrmPackage.XML_MAPPED_SUPERCLASS__COPY_POLICY, null, msgs);
-			msgs = basicSetCopyPolicy(newCopyPolicy, msgs);
-			if (msgs != null) msgs.dispatch();
-		}
-		else if (eNotificationRequired())
-			eNotify(new ENotificationImpl(this, Notification.SET, EclipseLinkOrmPackage.XML_MAPPED_SUPERCLASS__COPY_POLICY, newCopyPolicy, newCopyPolicy));
-	}
-
-	/**
-	 * Returns the value of the '<em><b>Instantiation Copy Policy</b></em>' containment reference.
-	 * <!-- begin-user-doc -->
-	 * <p>
-	 * If the meaning of the '<em>Instantiation Copy Policy</em>' containment reference isn't clear,
-	 * there really should be more of a description here...
-	 * </p>
-	 * <!-- end-user-doc -->
-	 * @return the value of the '<em>Instantiation Copy Policy</em>' containment reference.
-	 * @see #setInstantiationCopyPolicy(XmlCopyPolicy)
-	 * @see org.eclipse.jpt.eclipselink.core.resource.orm.EclipseLinkOrmPackage#getXmlMappedSuperclass_InstantiationCopyPolicy()
-	 * @model containment="true"
-	 * @generated
-	 */
-	public XmlCopyPolicy getInstantiationCopyPolicy()
-	{
-		return instantiationCopyPolicy;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public NotificationChain basicSetInstantiationCopyPolicy(XmlCopyPolicy newInstantiationCopyPolicy, NotificationChain msgs)
-	{
-		XmlCopyPolicy oldInstantiationCopyPolicy = instantiationCopyPolicy;
-		instantiationCopyPolicy = newInstantiationCopyPolicy;
-		if (eNotificationRequired())
-		{
-			ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, EclipseLinkOrmPackage.XML_MAPPED_SUPERCLASS__INSTANTIATION_COPY_POLICY, oldInstantiationCopyPolicy, newInstantiationCopyPolicy);
-			if (msgs == null) msgs = notification; else msgs.add(notification);
-		}
-		return msgs;
-	}
-
-	/**
-	 * Sets the value of the '{@link org.eclipse.jpt.eclipselink.core.resource.orm.XmlMappedSuperclass#getInstantiationCopyPolicy <em>Instantiation Copy Policy</em>}' containment reference.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @param value the new value of the '<em>Instantiation Copy Policy</em>' containment reference.
-	 * @see #getInstantiationCopyPolicy()
-	 * @generated
-	 */
-	public void setInstantiationCopyPolicy(XmlCopyPolicy newInstantiationCopyPolicy)
-	{
-		if (newInstantiationCopyPolicy != instantiationCopyPolicy)
-		{
-			NotificationChain msgs = null;
-			if (instantiationCopyPolicy != null)
-				msgs = ((InternalEObject)instantiationCopyPolicy).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - EclipseLinkOrmPackage.XML_MAPPED_SUPERCLASS__INSTANTIATION_COPY_POLICY, null, msgs);
-			if (newInstantiationCopyPolicy != null)
-				msgs = ((InternalEObject)newInstantiationCopyPolicy).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - EclipseLinkOrmPackage.XML_MAPPED_SUPERCLASS__INSTANTIATION_COPY_POLICY, null, msgs);
-			msgs = basicSetInstantiationCopyPolicy(newInstantiationCopyPolicy, msgs);
-			if (msgs != null) msgs.dispatch();
-		}
-		else if (eNotificationRequired())
-			eNotify(new ENotificationImpl(this, Notification.SET, EclipseLinkOrmPackage.XML_MAPPED_SUPERCLASS__INSTANTIATION_COPY_POLICY, newInstantiationCopyPolicy, newInstantiationCopyPolicy));
-	}
-
-	/**
-	 * Returns the value of the '<em><b>Clone Copy Policy</b></em>' containment reference.
-	 * <!-- begin-user-doc -->
-	 * <p>
-	 * If the meaning of the '<em>Clone Copy Policy</em>' containment reference isn't clear,
-	 * there really should be more of a description here...
-	 * </p>
-	 * <!-- end-user-doc -->
-	 * @return the value of the '<em>Clone Copy Policy</em>' containment reference.
-	 * @see #setCloneCopyPolicy(XmlCopyPolicy)
-	 * @see org.eclipse.jpt.eclipselink.core.resource.orm.EclipseLinkOrmPackage#getXmlMappedSuperclass_CloneCopyPolicy()
-	 * @model containment="true"
-	 * @generated
-	 */
-	public XmlCopyPolicy getCloneCopyPolicy()
-	{
-		return cloneCopyPolicy;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public NotificationChain basicSetCloneCopyPolicy(XmlCopyPolicy newCloneCopyPolicy, NotificationChain msgs)
-	{
-		XmlCopyPolicy oldCloneCopyPolicy = cloneCopyPolicy;
-		cloneCopyPolicy = newCloneCopyPolicy;
-		if (eNotificationRequired())
-		{
-			ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, EclipseLinkOrmPackage.XML_MAPPED_SUPERCLASS__CLONE_COPY_POLICY, oldCloneCopyPolicy, newCloneCopyPolicy);
-			if (msgs == null) msgs = notification; else msgs.add(notification);
-		}
-		return msgs;
-	}
-
-	/**
-	 * Sets the value of the '{@link org.eclipse.jpt.eclipselink.core.resource.orm.XmlMappedSuperclass#getCloneCopyPolicy <em>Clone Copy Policy</em>}' containment reference.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @param value the new value of the '<em>Clone Copy Policy</em>' containment reference.
-	 * @see #getCloneCopyPolicy()
-	 * @generated
-	 */
-	public void setCloneCopyPolicy(XmlCopyPolicy newCloneCopyPolicy)
-	{
-		if (newCloneCopyPolicy != cloneCopyPolicy)
-		{
-			NotificationChain msgs = null;
-			if (cloneCopyPolicy != null)
-				msgs = ((InternalEObject)cloneCopyPolicy).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - EclipseLinkOrmPackage.XML_MAPPED_SUPERCLASS__CLONE_COPY_POLICY, null, msgs);
-			if (newCloneCopyPolicy != null)
-				msgs = ((InternalEObject)newCloneCopyPolicy).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - EclipseLinkOrmPackage.XML_MAPPED_SUPERCLASS__CLONE_COPY_POLICY, null, msgs);
-			msgs = basicSetCloneCopyPolicy(newCloneCopyPolicy, msgs);
-			if (msgs != null) msgs.dispatch();
-		}
-		else if (eNotificationRequired())
-			eNotify(new ENotificationImpl(this, Notification.SET, EclipseLinkOrmPackage.XML_MAPPED_SUPERCLASS__CLONE_COPY_POLICY, newCloneCopyPolicy, newCloneCopyPolicy));
-	}
-
-	/**
-	 * Returns the value of the '<em><b>Properties</b></em>' containment reference list.
-	 * The list contents are of type {@link org.eclipse.jpt.eclipselink.core.resource.orm.XmlProperty}.
-	 * <!-- begin-user-doc -->
-	 * <p>
-	 * If the meaning of the '<em>Properties</em>' containment reference list isn't clear,
-	 * there really should be more of a description here...
-	 * </p>
-	 * <!-- end-user-doc -->
-	 * @return the value of the '<em>Properties</em>' containment reference list.
-	 * @see org.eclipse.jpt.eclipselink.core.resource.orm.EclipseLinkOrmPackage#getXmlMappedSuperclass_Properties()
-	 * @model containment="true"
-	 * @generated
-	 */
-	public EList<XmlProperty> getProperties()
-	{
-		if (properties == null)
-		{
-			properties = new EObjectContainmentEList<XmlProperty>(XmlProperty.class, this, EclipseLinkOrmPackage.XML_MAPPED_SUPERCLASS__PROPERTIES);
-		}
-		return properties;
-	}
-
-	/**
-	 * Returns the value of the '<em><b>Exclude Default Mappings</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <p>
-	 * If the meaning of the '<em>Exclude Default Mappings</em>' attribute isn't clear,
-	 * there really should be more of a description here...
-	 * </p>
-	 * <!-- end-user-doc -->
-	 * @return the value of the '<em>Exclude Default Mappings</em>' attribute.
-	 * @see #setExcludeDefaultMappings(Boolean)
-	 * @see org.eclipse.jpt.eclipselink.core.resource.orm.EclipseLinkOrmPackage#getXmlMappedSuperclass_ExcludeDefaultMappings()
-	 * @model dataType="org.eclipse.emf.ecore.xml.type.BooleanObject"
-	 * @generated
-	 */
-	public Boolean getExcludeDefaultMappings()
-	{
-		return excludeDefaultMappings;
-	}
-
-	/**
-	 * Sets the value of the '{@link org.eclipse.jpt.eclipselink.core.resource.orm.XmlMappedSuperclass#getExcludeDefaultMappings <em>Exclude Default Mappings</em>}' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @param value the new value of the '<em>Exclude Default Mappings</em>' attribute.
-	 * @see #getExcludeDefaultMappings()
-	 * @generated
-	 */
-	public void setExcludeDefaultMappings(Boolean newExcludeDefaultMappings)
-	{
-		Boolean oldExcludeDefaultMappings = excludeDefaultMappings;
-		excludeDefaultMappings = newExcludeDefaultMappings;
-		if (eNotificationRequired())
-			eNotify(new ENotificationImpl(this, Notification.SET, EclipseLinkOrmPackage.XML_MAPPED_SUPERCLASS__EXCLUDE_DEFAULT_MAPPINGS, oldExcludeDefaultMappings, excludeDefaultMappings));
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs)
-	{
-		switch (featureID)
-		{
-			case EclipseLinkOrmPackage.XML_MAPPED_SUPERCLASS__CUSTOMIZER:
-				return basicSetCustomizer(null, msgs);
-			case EclipseLinkOrmPackage.XML_MAPPED_SUPERCLASS__CHANGE_TRACKING:
-				return basicSetChangeTracking(null, msgs);
-			case EclipseLinkOrmPackage.XML_MAPPED_SUPERCLASS__CACHE:
-				return basicSetCache(null, msgs);
-			case EclipseLinkOrmPackage.XML_MAPPED_SUPERCLASS__CONVERTERS:
-				return ((InternalEList<?>)getConverters()).basicRemove(otherEnd, msgs);
-			case EclipseLinkOrmPackage.XML_MAPPED_SUPERCLASS__TYPE_CONVERTERS:
-				return ((InternalEList<?>)getTypeConverters()).basicRemove(otherEnd, msgs);
-			case EclipseLinkOrmPackage.XML_MAPPED_SUPERCLASS__OBJECT_TYPE_CONVERTERS:
-				return ((InternalEList<?>)getObjectTypeConverters()).basicRemove(otherEnd, msgs);
-			case EclipseLinkOrmPackage.XML_MAPPED_SUPERCLASS__STRUCT_CONVERTERS:
-				return ((InternalEList<?>)getStructConverters()).basicRemove(otherEnd, msgs);
-			case EclipseLinkOrmPackage.XML_MAPPED_SUPERCLASS__OPTIMISTIC_LOCKING:
-				return basicSetOptimisticLocking(null, msgs);
-			case EclipseLinkOrmPackage.XML_MAPPED_SUPERCLASS__COPY_POLICY:
-				return basicSetCopyPolicy(null, msgs);
-			case EclipseLinkOrmPackage.XML_MAPPED_SUPERCLASS__INSTANTIATION_COPY_POLICY:
-				return basicSetInstantiationCopyPolicy(null, msgs);
-			case EclipseLinkOrmPackage.XML_MAPPED_SUPERCLASS__CLONE_COPY_POLICY:
-				return basicSetCloneCopyPolicy(null, msgs);
-			case EclipseLinkOrmPackage.XML_MAPPED_SUPERCLASS__PROPERTIES:
-				return ((InternalEList<?>)getProperties()).basicRemove(otherEnd, msgs);
-		}
-		return super.eInverseRemove(otherEnd, featureID, msgs);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public Object eGet(int featureID, boolean resolve, boolean coreType)
-	{
-		switch (featureID)
-		{
-			case EclipseLinkOrmPackage.XML_MAPPED_SUPERCLASS__READ_ONLY:
-				return getReadOnly();
-			case EclipseLinkOrmPackage.XML_MAPPED_SUPERCLASS__CUSTOMIZER:
-				return getCustomizer();
-			case EclipseLinkOrmPackage.XML_MAPPED_SUPERCLASS__CHANGE_TRACKING:
-				return getChangeTracking();
-			case EclipseLinkOrmPackage.XML_MAPPED_SUPERCLASS__CACHE:
-				return getCache();
-			case EclipseLinkOrmPackage.XML_MAPPED_SUPERCLASS__EXISTENCE_CHECKING:
-				return getExistenceChecking();
-			case EclipseLinkOrmPackage.XML_MAPPED_SUPERCLASS__CONVERTERS:
-				return getConverters();
-			case EclipseLinkOrmPackage.XML_MAPPED_SUPERCLASS__TYPE_CONVERTERS:
-				return getTypeConverters();
-			case EclipseLinkOrmPackage.XML_MAPPED_SUPERCLASS__OBJECT_TYPE_CONVERTERS:
-				return getObjectTypeConverters();
-			case EclipseLinkOrmPackage.XML_MAPPED_SUPERCLASS__STRUCT_CONVERTERS:
-				return getStructConverters();
-			case EclipseLinkOrmPackage.XML_MAPPED_SUPERCLASS__OPTIMISTIC_LOCKING:
-				return getOptimisticLocking();
-			case EclipseLinkOrmPackage.XML_MAPPED_SUPERCLASS__COPY_POLICY:
-				return getCopyPolicy();
-			case EclipseLinkOrmPackage.XML_MAPPED_SUPERCLASS__INSTANTIATION_COPY_POLICY:
-				return getInstantiationCopyPolicy();
-			case EclipseLinkOrmPackage.XML_MAPPED_SUPERCLASS__CLONE_COPY_POLICY:
-				return getCloneCopyPolicy();
-			case EclipseLinkOrmPackage.XML_MAPPED_SUPERCLASS__PROPERTIES:
-				return getProperties();
-			case EclipseLinkOrmPackage.XML_MAPPED_SUPERCLASS__EXCLUDE_DEFAULT_MAPPINGS:
-				return getExcludeDefaultMappings();
-		}
-		return super.eGet(featureID, resolve, coreType);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@SuppressWarnings("unchecked")
-	@Override
-	public void eSet(int featureID, Object newValue)
-	{
-		switch (featureID)
-		{
-			case EclipseLinkOrmPackage.XML_MAPPED_SUPERCLASS__READ_ONLY:
-				setReadOnly((Boolean)newValue);
-				return;
-			case EclipseLinkOrmPackage.XML_MAPPED_SUPERCLASS__CUSTOMIZER:
-				setCustomizer((XmlCustomizer)newValue);
-				return;
-			case EclipseLinkOrmPackage.XML_MAPPED_SUPERCLASS__CHANGE_TRACKING:
-				setChangeTracking((XmlChangeTracking)newValue);
-				return;
-			case EclipseLinkOrmPackage.XML_MAPPED_SUPERCLASS__CACHE:
-				setCache((XmlCache)newValue);
-				return;
-			case EclipseLinkOrmPackage.XML_MAPPED_SUPERCLASS__EXISTENCE_CHECKING:
-				setExistenceChecking((ExistenceType)newValue);
-				return;
-			case EclipseLinkOrmPackage.XML_MAPPED_SUPERCLASS__CONVERTERS:
-				getConverters().clear();
-				getConverters().addAll((Collection<? extends XmlConverter>)newValue);
-				return;
-			case EclipseLinkOrmPackage.XML_MAPPED_SUPERCLASS__TYPE_CONVERTERS:
-				getTypeConverters().clear();
-				getTypeConverters().addAll((Collection<? extends XmlTypeConverter>)newValue);
-				return;
-			case EclipseLinkOrmPackage.XML_MAPPED_SUPERCLASS__OBJECT_TYPE_CONVERTERS:
-				getObjectTypeConverters().clear();
-				getObjectTypeConverters().addAll((Collection<? extends XmlObjectTypeConverter>)newValue);
-				return;
-			case EclipseLinkOrmPackage.XML_MAPPED_SUPERCLASS__STRUCT_CONVERTERS:
-				getStructConverters().clear();
-				getStructConverters().addAll((Collection<? extends XmlStructConverter>)newValue);
-				return;
-			case EclipseLinkOrmPackage.XML_MAPPED_SUPERCLASS__OPTIMISTIC_LOCKING:
-				setOptimisticLocking((XmlOptimisticLocking)newValue);
-				return;
-			case EclipseLinkOrmPackage.XML_MAPPED_SUPERCLASS__COPY_POLICY:
-				setCopyPolicy((XmlCopyPolicy)newValue);
-				return;
-			case EclipseLinkOrmPackage.XML_MAPPED_SUPERCLASS__INSTANTIATION_COPY_POLICY:
-				setInstantiationCopyPolicy((XmlCopyPolicy)newValue);
-				return;
-			case EclipseLinkOrmPackage.XML_MAPPED_SUPERCLASS__CLONE_COPY_POLICY:
-				setCloneCopyPolicy((XmlCopyPolicy)newValue);
-				return;
-			case EclipseLinkOrmPackage.XML_MAPPED_SUPERCLASS__PROPERTIES:
-				getProperties().clear();
-				getProperties().addAll((Collection<? extends XmlProperty>)newValue);
-				return;
-			case EclipseLinkOrmPackage.XML_MAPPED_SUPERCLASS__EXCLUDE_DEFAULT_MAPPINGS:
-				setExcludeDefaultMappings((Boolean)newValue);
-				return;
-		}
-		super.eSet(featureID, newValue);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public void eUnset(int featureID)
-	{
-		switch (featureID)
-		{
-			case EclipseLinkOrmPackage.XML_MAPPED_SUPERCLASS__READ_ONLY:
-				setReadOnly(READ_ONLY_EDEFAULT);
-				return;
-			case EclipseLinkOrmPackage.XML_MAPPED_SUPERCLASS__CUSTOMIZER:
-				setCustomizer((XmlCustomizer)null);
-				return;
-			case EclipseLinkOrmPackage.XML_MAPPED_SUPERCLASS__CHANGE_TRACKING:
-				setChangeTracking((XmlChangeTracking)null);
-				return;
-			case EclipseLinkOrmPackage.XML_MAPPED_SUPERCLASS__CACHE:
-				setCache((XmlCache)null);
-				return;
-			case EclipseLinkOrmPackage.XML_MAPPED_SUPERCLASS__EXISTENCE_CHECKING:
-				setExistenceChecking(EXISTENCE_CHECKING_EDEFAULT);
-				return;
-			case EclipseLinkOrmPackage.XML_MAPPED_SUPERCLASS__CONVERTERS:
-				getConverters().clear();
-				return;
-			case EclipseLinkOrmPackage.XML_MAPPED_SUPERCLASS__TYPE_CONVERTERS:
-				getTypeConverters().clear();
-				return;
-			case EclipseLinkOrmPackage.XML_MAPPED_SUPERCLASS__OBJECT_TYPE_CONVERTERS:
-				getObjectTypeConverters().clear();
-				return;
-			case EclipseLinkOrmPackage.XML_MAPPED_SUPERCLASS__STRUCT_CONVERTERS:
-				getStructConverters().clear();
-				return;
-			case EclipseLinkOrmPackage.XML_MAPPED_SUPERCLASS__OPTIMISTIC_LOCKING:
-				setOptimisticLocking((XmlOptimisticLocking)null);
-				return;
-			case EclipseLinkOrmPackage.XML_MAPPED_SUPERCLASS__COPY_POLICY:
-				setCopyPolicy((XmlCopyPolicy)null);
-				return;
-			case EclipseLinkOrmPackage.XML_MAPPED_SUPERCLASS__INSTANTIATION_COPY_POLICY:
-				setInstantiationCopyPolicy((XmlCopyPolicy)null);
-				return;
-			case EclipseLinkOrmPackage.XML_MAPPED_SUPERCLASS__CLONE_COPY_POLICY:
-				setCloneCopyPolicy((XmlCopyPolicy)null);
-				return;
-			case EclipseLinkOrmPackage.XML_MAPPED_SUPERCLASS__PROPERTIES:
-				getProperties().clear();
-				return;
-			case EclipseLinkOrmPackage.XML_MAPPED_SUPERCLASS__EXCLUDE_DEFAULT_MAPPINGS:
-				setExcludeDefaultMappings(EXCLUDE_DEFAULT_MAPPINGS_EDEFAULT);
-				return;
-		}
-		super.eUnset(featureID);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public boolean eIsSet(int featureID)
-	{
-		switch (featureID)
-		{
-			case EclipseLinkOrmPackage.XML_MAPPED_SUPERCLASS__READ_ONLY:
-				return READ_ONLY_EDEFAULT == null ? readOnly != null : !READ_ONLY_EDEFAULT.equals(readOnly);
-			case EclipseLinkOrmPackage.XML_MAPPED_SUPERCLASS__CUSTOMIZER:
-				return customizer != null;
-			case EclipseLinkOrmPackage.XML_MAPPED_SUPERCLASS__CHANGE_TRACKING:
-				return changeTracking != null;
-			case EclipseLinkOrmPackage.XML_MAPPED_SUPERCLASS__CACHE:
-				return cache != null;
-			case EclipseLinkOrmPackage.XML_MAPPED_SUPERCLASS__EXISTENCE_CHECKING:
-				return existenceChecking != EXISTENCE_CHECKING_EDEFAULT;
-			case EclipseLinkOrmPackage.XML_MAPPED_SUPERCLASS__CONVERTERS:
-				return converters != null && !converters.isEmpty();
-			case EclipseLinkOrmPackage.XML_MAPPED_SUPERCLASS__TYPE_CONVERTERS:
-				return typeConverters != null && !typeConverters.isEmpty();
-			case EclipseLinkOrmPackage.XML_MAPPED_SUPERCLASS__OBJECT_TYPE_CONVERTERS:
-				return objectTypeConverters != null && !objectTypeConverters.isEmpty();
-			case EclipseLinkOrmPackage.XML_MAPPED_SUPERCLASS__STRUCT_CONVERTERS:
-				return structConverters != null && !structConverters.isEmpty();
-			case EclipseLinkOrmPackage.XML_MAPPED_SUPERCLASS__OPTIMISTIC_LOCKING:
-				return optimisticLocking != null;
-			case EclipseLinkOrmPackage.XML_MAPPED_SUPERCLASS__COPY_POLICY:
-				return copyPolicy != null;
-			case EclipseLinkOrmPackage.XML_MAPPED_SUPERCLASS__INSTANTIATION_COPY_POLICY:
-				return instantiationCopyPolicy != null;
-			case EclipseLinkOrmPackage.XML_MAPPED_SUPERCLASS__CLONE_COPY_POLICY:
-				return cloneCopyPolicy != null;
-			case EclipseLinkOrmPackage.XML_MAPPED_SUPERCLASS__PROPERTIES:
-				return properties != null && !properties.isEmpty();
-			case EclipseLinkOrmPackage.XML_MAPPED_SUPERCLASS__EXCLUDE_DEFAULT_MAPPINGS:
-				return EXCLUDE_DEFAULT_MAPPINGS_EDEFAULT == null ? excludeDefaultMappings != null : !EXCLUDE_DEFAULT_MAPPINGS_EDEFAULT.equals(excludeDefaultMappings);
-		}
-		return super.eIsSet(featureID);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public int eBaseStructuralFeatureID(int derivedFeatureID, Class<?> baseClass)
-	{
-		if (baseClass == XmlReadOnly.class)
-		{
-			switch (derivedFeatureID)
-			{
-				case EclipseLinkOrmPackage.XML_MAPPED_SUPERCLASS__READ_ONLY: return EclipseLinkOrmPackage.XML_READ_ONLY__READ_ONLY;
-				default: return -1;
-			}
-		}
-		if (baseClass == XmlCustomizerHolder.class)
-		{
-			switch (derivedFeatureID)
-			{
-				case EclipseLinkOrmPackage.XML_MAPPED_SUPERCLASS__CUSTOMIZER: return EclipseLinkOrmPackage.XML_CUSTOMIZER_HOLDER__CUSTOMIZER;
-				default: return -1;
-			}
-		}
-		if (baseClass == XmlChangeTrackingHolder.class)
-		{
-			switch (derivedFeatureID)
-			{
-				case EclipseLinkOrmPackage.XML_MAPPED_SUPERCLASS__CHANGE_TRACKING: return EclipseLinkOrmPackage.XML_CHANGE_TRACKING_HOLDER__CHANGE_TRACKING;
-				default: return -1;
-			}
-		}
-		if (baseClass == XmlCacheHolder.class)
-		{
-			switch (derivedFeatureID)
-			{
-				case EclipseLinkOrmPackage.XML_MAPPED_SUPERCLASS__CACHE: return EclipseLinkOrmPackage.XML_CACHE_HOLDER__CACHE;
-				case EclipseLinkOrmPackage.XML_MAPPED_SUPERCLASS__EXISTENCE_CHECKING: return EclipseLinkOrmPackage.XML_CACHE_HOLDER__EXISTENCE_CHECKING;
-				default: return -1;
-			}
-		}
-		if (baseClass == XmlConvertersHolder.class)
-		{
-			switch (derivedFeatureID)
-			{
-				case EclipseLinkOrmPackage.XML_MAPPED_SUPERCLASS__CONVERTERS: return EclipseLinkOrmPackage.XML_CONVERTERS_HOLDER__CONVERTERS;
-				case EclipseLinkOrmPackage.XML_MAPPED_SUPERCLASS__TYPE_CONVERTERS: return EclipseLinkOrmPackage.XML_CONVERTERS_HOLDER__TYPE_CONVERTERS;
-				case EclipseLinkOrmPackage.XML_MAPPED_SUPERCLASS__OBJECT_TYPE_CONVERTERS: return EclipseLinkOrmPackage.XML_CONVERTERS_HOLDER__OBJECT_TYPE_CONVERTERS;
-				case EclipseLinkOrmPackage.XML_MAPPED_SUPERCLASS__STRUCT_CONVERTERS: return EclipseLinkOrmPackage.XML_CONVERTERS_HOLDER__STRUCT_CONVERTERS;
-				default: return -1;
-			}
-		}
-		return super.eBaseStructuralFeatureID(derivedFeatureID, baseClass);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public int eDerivedStructuralFeatureID(int baseFeatureID, Class<?> baseClass)
-	{
-		if (baseClass == XmlReadOnly.class)
-		{
-			switch (baseFeatureID)
-			{
-				case EclipseLinkOrmPackage.XML_READ_ONLY__READ_ONLY: return EclipseLinkOrmPackage.XML_MAPPED_SUPERCLASS__READ_ONLY;
-				default: return -1;
-			}
-		}
-		if (baseClass == XmlCustomizerHolder.class)
-		{
-			switch (baseFeatureID)
-			{
-				case EclipseLinkOrmPackage.XML_CUSTOMIZER_HOLDER__CUSTOMIZER: return EclipseLinkOrmPackage.XML_MAPPED_SUPERCLASS__CUSTOMIZER;
-				default: return -1;
-			}
-		}
-		if (baseClass == XmlChangeTrackingHolder.class)
-		{
-			switch (baseFeatureID)
-			{
-				case EclipseLinkOrmPackage.XML_CHANGE_TRACKING_HOLDER__CHANGE_TRACKING: return EclipseLinkOrmPackage.XML_MAPPED_SUPERCLASS__CHANGE_TRACKING;
-				default: return -1;
-			}
-		}
-		if (baseClass == XmlCacheHolder.class)
-		{
-			switch (baseFeatureID)
-			{
-				case EclipseLinkOrmPackage.XML_CACHE_HOLDER__CACHE: return EclipseLinkOrmPackage.XML_MAPPED_SUPERCLASS__CACHE;
-				case EclipseLinkOrmPackage.XML_CACHE_HOLDER__EXISTENCE_CHECKING: return EclipseLinkOrmPackage.XML_MAPPED_SUPERCLASS__EXISTENCE_CHECKING;
-				default: return -1;
-			}
-		}
-		if (baseClass == XmlConvertersHolder.class)
-		{
-			switch (baseFeatureID)
-			{
-				case EclipseLinkOrmPackage.XML_CONVERTERS_HOLDER__CONVERTERS: return EclipseLinkOrmPackage.XML_MAPPED_SUPERCLASS__CONVERTERS;
-				case EclipseLinkOrmPackage.XML_CONVERTERS_HOLDER__TYPE_CONVERTERS: return EclipseLinkOrmPackage.XML_MAPPED_SUPERCLASS__TYPE_CONVERTERS;
-				case EclipseLinkOrmPackage.XML_CONVERTERS_HOLDER__OBJECT_TYPE_CONVERTERS: return EclipseLinkOrmPackage.XML_MAPPED_SUPERCLASS__OBJECT_TYPE_CONVERTERS;
-				case EclipseLinkOrmPackage.XML_CONVERTERS_HOLDER__STRUCT_CONVERTERS: return EclipseLinkOrmPackage.XML_MAPPED_SUPERCLASS__STRUCT_CONVERTERS;
-				default: return -1;
-			}
-		}
-		return super.eDerivedStructuralFeatureID(baseFeatureID, baseClass);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public String toString()
-	{
-		if (eIsProxy()) return super.toString();
-
-		StringBuffer result = new StringBuffer(super.toString());
-		result.append(" (readOnly: ");
-		result.append(readOnly);
-		result.append(", existenceChecking: ");
-		result.append(existenceChecking);
-		result.append(", excludeDefaultMappings: ");
-		result.append(excludeDefaultMappings);
-		result.append(')');
-		return result.toString();
-	}
-
-	public TextRange getReadOnlyTextRange() {
-		return getAttributeTextRange(EclipseLinkOrmXmlMapper.READ_ONLY);
-	}
-} // XmlMappedSuperclass
diff --git a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/resource/orm/XmlMutable.java b/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/resource/orm/XmlMutable.java
deleted file mode 100644
index 2527893..0000000
--- a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/resource/orm/XmlMutable.java
+++ /dev/null
@@ -1,75 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008, 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.eclipselink.core.resource.orm;
-
-import org.eclipse.jpt.core.resource.xml.JpaEObject;
-import org.eclipse.jpt.core.utility.TextRange;
-
-/**
- * <!-- begin-user-doc -->
- * 
- * A representation of the model object '<em><b>Xml Mutable</b></em>'.
- *  
- * Provisional API: This interface is part of an interim API that is still
- * under development and expected to change significantly before reaching
- * stability. It is available at this early stage to solicit feedback from
- * pioneering adopters on the understanding that any code that uses this API
- * will almost certainly be broken (repeatedly) as the API evolves.
- * 
- * @version 2.1
- * @since 2.1
- * 
- * <!-- end-user-doc -->
- *
- * <p>
- * The following features are supported:
- * <ul>
- *   <li>{@link org.eclipse.jpt.eclipselink.core.resource.orm.XmlMutable#getMutable <em>Mutable</em>}</li>
- * </ul>
- * </p>
- *
- * @see org.eclipse.jpt.eclipselink.core.resource.orm.EclipseLinkOrmPackage#getXmlMutable()
- * @model kind="class" interface="true" abstract="true"
- * @extends JpaEObject
- * @generated
- */
-public interface XmlMutable extends JpaEObject
-{
-	/**
-	 * Returns the value of the '<em><b>Mutable</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <p>
-	 * If the meaning of the '<em>Mutable</em>' attribute isn't clear,
-	 * there really should be more of a description here...
-	 * </p>
-	 * <!-- end-user-doc -->
-	 * @return the value of the '<em>Mutable</em>' attribute.
-	 * @see #setMutable(Boolean)
-	 * @see org.eclipse.jpt.eclipselink.core.resource.orm.EclipseLinkOrmPackage#getXmlMutable_Mutable()
-	 * @model dataType="org.eclipse.emf.ecore.xml.type.BooleanObject"
-	 * @generated
-	 */
-	Boolean getMutable();
-
-	/**
-	 * Sets the value of the '{@link org.eclipse.jpt.eclipselink.core.resource.orm.XmlMutable#getMutable <em>Mutable</em>}' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @param value the new value of the '<em>Mutable</em>' attribute.
-	 * @see #getMutable()
-	 * @generated
-	 */
-	void setMutable(Boolean value);
-	
-	/**
-	 * Return the {@link TextRange} for the mutable attibute.
-	 */
-	TextRange getMutableTextRange();
-}
\ No newline at end of file
diff --git a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/resource/orm/XmlNamedConverter.java b/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/resource/orm/XmlNamedConverter.java
deleted file mode 100644
index ab49c4d..0000000
--- a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/resource/orm/XmlNamedConverter.java
+++ /dev/null
@@ -1,70 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008, 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.eclipselink.core.resource.orm;
-
-import org.eclipse.jpt.core.resource.xml.JpaEObject;
-
-/**
- * <!-- begin-user-doc -->
- * 
- * A representation of the model object '<em><b>Xml Named Converter</b></em>'.
- *  
- * Provisional API: This interface is part of an interim API that is still
- * under development and expected to change significantly before reaching
- * stability. It is available at this early stage to solicit feedback from
- * pioneering adopters on the understanding that any code that uses this API
- * will almost certainly be broken (repeatedly) as the API evolves.
- * 
- * @version 2.1
- * @since 2.1
- * 
- * <!-- end-user-doc -->
- *
- * <p>
- * The following features are supported:
- * <ul>
- *   <li>{@link org.eclipse.jpt.eclipselink.core.resource.orm.XmlNamedConverter#getName <em>Name</em>}</li>
- * </ul>
- * </p>
- *
- * @see org.eclipse.jpt.eclipselink.core.resource.orm.EclipseLinkOrmPackage#getXmlNamedConverter()
- * @model kind="class" interface="true" abstract="true"
- * @extends JpaEObject
- * @generated
- */
-public interface XmlNamedConverter extends JpaEObject
-{
-	/**
-	 * Returns the value of the '<em><b>Name</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <p>
-	 * If the meaning of the '<em>Name</em>' attribute isn't clear,
-	 * there really should be more of a description here...
-	 * </p>
-	 * <!-- end-user-doc -->
-	 * @return the value of the '<em>Name</em>' attribute.
-	 * @see #setName(String)
-	 * @see org.eclipse.jpt.eclipselink.core.resource.orm.EclipseLinkOrmPackage#getXmlNamedConverter_Name()
-	 * @model
-	 * @generated
-	 */
-	String getName();
-
-	/**
-	 * Sets the value of the '{@link org.eclipse.jpt.eclipselink.core.resource.orm.XmlNamedConverter#getName <em>Name</em>}' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @param value the new value of the '<em>Name</em>' attribute.
-	 * @see #getName()
-	 * @generated
-	 */
-	void setName(String value);
-
-} // XmlNamedConverter
diff --git a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/resource/orm/XmlNamedStoredProcedureQuery.java b/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/resource/orm/XmlNamedStoredProcedureQuery.java
deleted file mode 100644
index 0032a56..0000000
--- a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/resource/orm/XmlNamedStoredProcedureQuery.java
+++ /dev/null
@@ -1,601 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.eclipselink.core.resource.orm;
-
-import java.util.Collection;
-
-import org.eclipse.emf.common.notify.Notification;
-import org.eclipse.emf.common.notify.NotificationChain;
-
-import org.eclipse.emf.common.util.EList;
-
-import org.eclipse.emf.ecore.EClass;
-import org.eclipse.emf.ecore.InternalEObject;
-
-import org.eclipse.emf.ecore.impl.ENotificationImpl;
-
-import org.eclipse.emf.ecore.util.EObjectContainmentEList;
-import org.eclipse.emf.ecore.util.InternalEList;
-
-
-import org.eclipse.jpt.core.resource.orm.XmlQueryHint;
-import org.eclipse.jpt.core.resource.xml.AbstractJpaEObject;
-import org.eclipse.jpt.core.resource.xml.JpaEObject;
-
-/**
- * <!-- begin-user-doc -->
- * A representation of the model object '<em><b>Xml Named Stored Procedure Query</b></em>'.
- *  
- * Provisional API: This interface is part of an interim API that is still
- * under development and expected to change significantly before reaching
- * stability. It is available at this early stage to solicit feedback from
- * pioneering adopters on the understanding that any code that uses this API
- * will almost certainly be broken (repeatedly) as the API evolves.
- * 
- * @version 2.2
- * @since 2.2
- *
- * <!-- end-user-doc -->
- *
- * <p>
- * The following features are supported:
- * <ul>
- *   <li>{@link org.eclipse.jpt.eclipselink.core.resource.orm.XmlNamedStoredProcedureQuery#getName <em>Name</em>}</li>
- *   <li>{@link org.eclipse.jpt.eclipselink.core.resource.orm.XmlNamedStoredProcedureQuery#getResultClass <em>Result Class</em>}</li>
- *   <li>{@link org.eclipse.jpt.eclipselink.core.resource.orm.XmlNamedStoredProcedureQuery#getResultSetMapping <em>Result Set Mapping</em>}</li>
- *   <li>{@link org.eclipse.jpt.eclipselink.core.resource.orm.XmlNamedStoredProcedureQuery#getProcedureName <em>Procedure Name</em>}</li>
- *   <li>{@link org.eclipse.jpt.eclipselink.core.resource.orm.XmlNamedStoredProcedureQuery#getReturnsResultSet <em>Returns Result Set</em>}</li>
- *   <li>{@link org.eclipse.jpt.eclipselink.core.resource.orm.XmlNamedStoredProcedureQuery#getHints <em>Hints</em>}</li>
- *   <li>{@link org.eclipse.jpt.eclipselink.core.resource.orm.XmlNamedStoredProcedureQuery#getParameters <em>Parameters</em>}</li>
- * </ul>
- * </p>
- *
- * @see org.eclipse.jpt.eclipselink.core.resource.orm.EclipseLinkOrmPackage#getXmlNamedStoredProcedureQuery()
- * @model kind="class"
- * @extends JpaEObject
- * @generated
- */
-public class XmlNamedStoredProcedureQuery extends AbstractJpaEObject implements JpaEObject
-{
-	/**
-	 * The default value of the '{@link #getName() <em>Name</em>}' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see #getName()
-	 * @generated
-	 * @ordered
-	 */
-	protected static final String NAME_EDEFAULT = null;
-
-	/**
-	 * The cached value of the '{@link #getName() <em>Name</em>}' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see #getName()
-	 * @generated
-	 * @ordered
-	 */
-	protected String name = NAME_EDEFAULT;
-
-	/**
-	 * The default value of the '{@link #getResultClass() <em>Result Class</em>}' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see #getResultClass()
-	 * @generated
-	 * @ordered
-	 */
-	protected static final String RESULT_CLASS_EDEFAULT = null;
-
-	/**
-	 * The cached value of the '{@link #getResultClass() <em>Result Class</em>}' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see #getResultClass()
-	 * @generated
-	 * @ordered
-	 */
-	protected String resultClass = RESULT_CLASS_EDEFAULT;
-
-	/**
-	 * The default value of the '{@link #getResultSetMapping() <em>Result Set Mapping</em>}' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see #getResultSetMapping()
-	 * @generated
-	 * @ordered
-	 */
-	protected static final String RESULT_SET_MAPPING_EDEFAULT = null;
-
-	/**
-	 * The cached value of the '{@link #getResultSetMapping() <em>Result Set Mapping</em>}' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see #getResultSetMapping()
-	 * @generated
-	 * @ordered
-	 */
-	protected String resultSetMapping = RESULT_SET_MAPPING_EDEFAULT;
-
-	/**
-	 * The default value of the '{@link #getProcedureName() <em>Procedure Name</em>}' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see #getProcedureName()
-	 * @generated
-	 * @ordered
-	 */
-	protected static final String PROCEDURE_NAME_EDEFAULT = null;
-
-	/**
-	 * The cached value of the '{@link #getProcedureName() <em>Procedure Name</em>}' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see #getProcedureName()
-	 * @generated
-	 * @ordered
-	 */
-	protected String procedureName = PROCEDURE_NAME_EDEFAULT;
-
-	/**
-	 * The default value of the '{@link #getReturnsResultSet() <em>Returns Result Set</em>}' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see #getReturnsResultSet()
-	 * @generated
-	 * @ordered
-	 */
-	protected static final Boolean RETURNS_RESULT_SET_EDEFAULT = null;
-
-	/**
-	 * The cached value of the '{@link #getReturnsResultSet() <em>Returns Result Set</em>}' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see #getReturnsResultSet()
-	 * @generated
-	 * @ordered
-	 */
-	protected Boolean returnsResultSet = RETURNS_RESULT_SET_EDEFAULT;
-
-	/**
-	 * The cached value of the '{@link #getHints() <em>Hints</em>}' containment reference list.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see #getHints()
-	 * @generated
-	 * @ordered
-	 */
-	protected EList<XmlQueryHint> hints;
-
-	/**
-	 * The cached value of the '{@link #getParameters() <em>Parameters</em>}' containment reference list.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see #getParameters()
-	 * @generated
-	 * @ordered
-	 */
-	protected EList<XmlStoredProcedureParameter> parameters;
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	protected XmlNamedStoredProcedureQuery()
-	{
-		super();
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	protected EClass eStaticClass()
-	{
-		return EclipseLinkOrmPackage.Literals.XML_NAMED_STORED_PROCEDURE_QUERY;
-	}
-
-	/**
-	 * Returns the value of the '<em><b>Name</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <p>
-	 * If the meaning of the '<em>Name</em>' attribute isn't clear,
-	 * there really should be more of a description here...
-	 * </p>
-	 * <!-- end-user-doc -->
-	 * @return the value of the '<em>Name</em>' attribute.
-	 * @see #setName(String)
-	 * @see org.eclipse.jpt.eclipselink.core.resource.orm.EclipseLinkOrmPackage#getXmlNamedStoredProcedureQuery_Name()
-	 * @model dataType="org.eclipse.emf.ecore.xml.type.String"
-	 * @generated
-	 */
-	public String getName()
-	{
-		return name;
-	}
-
-	/**
-	 * Sets the value of the '{@link org.eclipse.jpt.eclipselink.core.resource.orm.XmlNamedStoredProcedureQuery#getName <em>Name</em>}' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @param value the new value of the '<em>Name</em>' attribute.
-	 * @see #getName()
-	 * @generated
-	 */
-	public void setName(String newName)
-	{
-		String oldName = name;
-		name = newName;
-		if (eNotificationRequired())
-			eNotify(new ENotificationImpl(this, Notification.SET, EclipseLinkOrmPackage.XML_NAMED_STORED_PROCEDURE_QUERY__NAME, oldName, name));
-	}
-
-	/**
-	 * Returns the value of the '<em><b>Result Class</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <p>
-	 * If the meaning of the '<em>Result Class</em>' attribute isn't clear,
-	 * there really should be more of a description here...
-	 * </p>
-	 * <!-- end-user-doc -->
-	 * @return the value of the '<em>Result Class</em>' attribute.
-	 * @see #setResultClass(String)
-	 * @see org.eclipse.jpt.eclipselink.core.resource.orm.EclipseLinkOrmPackage#getXmlNamedStoredProcedureQuery_ResultClass()
-	 * @model dataType="org.eclipse.emf.ecore.xml.type.String"
-	 * @generated
-	 */
-	public String getResultClass()
-	{
-		return resultClass;
-	}
-
-	/**
-	 * Sets the value of the '{@link org.eclipse.jpt.eclipselink.core.resource.orm.XmlNamedStoredProcedureQuery#getResultClass <em>Result Class</em>}' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @param value the new value of the '<em>Result Class</em>' attribute.
-	 * @see #getResultClass()
-	 * @generated
-	 */
-	public void setResultClass(String newResultClass)
-	{
-		String oldResultClass = resultClass;
-		resultClass = newResultClass;
-		if (eNotificationRequired())
-			eNotify(new ENotificationImpl(this, Notification.SET, EclipseLinkOrmPackage.XML_NAMED_STORED_PROCEDURE_QUERY__RESULT_CLASS, oldResultClass, resultClass));
-	}
-
-	/**
-	 * Returns the value of the '<em><b>Result Set Mapping</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <p>
-	 * If the meaning of the '<em>Result Set Mapping</em>' attribute isn't clear,
-	 * there really should be more of a description here...
-	 * </p>
-	 * <!-- end-user-doc -->
-	 * @return the value of the '<em>Result Set Mapping</em>' attribute.
-	 * @see #setResultSetMapping(String)
-	 * @see org.eclipse.jpt.eclipselink.core.resource.orm.EclipseLinkOrmPackage#getXmlNamedStoredProcedureQuery_ResultSetMapping()
-	 * @model dataType="org.eclipse.emf.ecore.xml.type.String"
-	 * @generated
-	 */
-	public String getResultSetMapping()
-	{
-		return resultSetMapping;
-	}
-
-	/**
-	 * Sets the value of the '{@link org.eclipse.jpt.eclipselink.core.resource.orm.XmlNamedStoredProcedureQuery#getResultSetMapping <em>Result Set Mapping</em>}' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @param value the new value of the '<em>Result Set Mapping</em>' attribute.
-	 * @see #getResultSetMapping()
-	 * @generated
-	 */
-	public void setResultSetMapping(String newResultSetMapping)
-	{
-		String oldResultSetMapping = resultSetMapping;
-		resultSetMapping = newResultSetMapping;
-		if (eNotificationRequired())
-			eNotify(new ENotificationImpl(this, Notification.SET, EclipseLinkOrmPackage.XML_NAMED_STORED_PROCEDURE_QUERY__RESULT_SET_MAPPING, oldResultSetMapping, resultSetMapping));
-	}
-
-	/**
-	 * Returns the value of the '<em><b>Procedure Name</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <p>
-	 * If the meaning of the '<em>Procedure Name</em>' attribute isn't clear,
-	 * there really should be more of a description here...
-	 * </p>
-	 * <!-- end-user-doc -->
-	 * @return the value of the '<em>Procedure Name</em>' attribute.
-	 * @see #setProcedureName(String)
-	 * @see org.eclipse.jpt.eclipselink.core.resource.orm.EclipseLinkOrmPackage#getXmlNamedStoredProcedureQuery_ProcedureName()
-	 * @model dataType="org.eclipse.emf.ecore.xml.type.String"
-	 * @generated
-	 */
-	public String getProcedureName()
-	{
-		return procedureName;
-	}
-
-	/**
-	 * Sets the value of the '{@link org.eclipse.jpt.eclipselink.core.resource.orm.XmlNamedStoredProcedureQuery#getProcedureName <em>Procedure Name</em>}' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @param value the new value of the '<em>Procedure Name</em>' attribute.
-	 * @see #getProcedureName()
-	 * @generated
-	 */
-	public void setProcedureName(String newProcedureName)
-	{
-		String oldProcedureName = procedureName;
-		procedureName = newProcedureName;
-		if (eNotificationRequired())
-			eNotify(new ENotificationImpl(this, Notification.SET, EclipseLinkOrmPackage.XML_NAMED_STORED_PROCEDURE_QUERY__PROCEDURE_NAME, oldProcedureName, procedureName));
-	}
-
-	/**
-	 * Returns the value of the '<em><b>Returns Result Set</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <p>
-	 * If the meaning of the '<em>Returns Result Set</em>' attribute isn't clear,
-	 * there really should be more of a description here...
-	 * </p>
-	 * <!-- end-user-doc -->
-	 * @return the value of the '<em>Returns Result Set</em>' attribute.
-	 * @see #setReturnsResultSet(Boolean)
-	 * @see org.eclipse.jpt.eclipselink.core.resource.orm.EclipseLinkOrmPackage#getXmlNamedStoredProcedureQuery_ReturnsResultSet()
-	 * @model dataType="org.eclipse.emf.ecore.xml.type.BooleanObject"
-	 * @generated
-	 */
-	public Boolean getReturnsResultSet()
-	{
-		return returnsResultSet;
-	}
-
-	/**
-	 * Sets the value of the '{@link org.eclipse.jpt.eclipselink.core.resource.orm.XmlNamedStoredProcedureQuery#getReturnsResultSet <em>Returns Result Set</em>}' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @param value the new value of the '<em>Returns Result Set</em>' attribute.
-	 * @see #getReturnsResultSet()
-	 * @generated
-	 */
-	public void setReturnsResultSet(Boolean newReturnsResultSet)
-	{
-		Boolean oldReturnsResultSet = returnsResultSet;
-		returnsResultSet = newReturnsResultSet;
-		if (eNotificationRequired())
-			eNotify(new ENotificationImpl(this, Notification.SET, EclipseLinkOrmPackage.XML_NAMED_STORED_PROCEDURE_QUERY__RETURNS_RESULT_SET, oldReturnsResultSet, returnsResultSet));
-	}
-
-	/**
-	 * Returns the value of the '<em><b>Hints</b></em>' containment reference list.
-	 * The list contents are of type {@link org.eclipse.jpt.core.resource.orm.XmlQueryHint}.
-	 * <!-- begin-user-doc -->
-	 * <p>
-	 * If the meaning of the '<em>Hints</em>' containment reference list isn't clear,
-	 * there really should be more of a description here...
-	 * </p>
-	 * <!-- end-user-doc -->
-	 * @return the value of the '<em>Hints</em>' containment reference list.
-	 * @see org.eclipse.jpt.eclipselink.core.resource.orm.EclipseLinkOrmPackage#getXmlNamedStoredProcedureQuery_Hints()
-	 * @model containment="true"
-	 * @generated
-	 */
-	public EList<XmlQueryHint> getHints()
-	{
-		if (hints == null)
-		{
-			hints = new EObjectContainmentEList<XmlQueryHint>(XmlQueryHint.class, this, EclipseLinkOrmPackage.XML_NAMED_STORED_PROCEDURE_QUERY__HINTS);
-		}
-		return hints;
-	}
-
-	/**
-	 * Returns the value of the '<em><b>Parameters</b></em>' containment reference list.
-	 * The list contents are of type {@link org.eclipse.jpt.eclipselink.core.resource.orm.XmlStoredProcedureParameter}.
-	 * <!-- begin-user-doc -->
-	 * <p>
-	 * If the meaning of the '<em>Parameters</em>' containment reference list isn't clear,
-	 * there really should be more of a description here...
-	 * </p>
-	 * <!-- end-user-doc -->
-	 * @return the value of the '<em>Parameters</em>' containment reference list.
-	 * @see org.eclipse.jpt.eclipselink.core.resource.orm.EclipseLinkOrmPackage#getXmlNamedStoredProcedureQuery_Parameters()
-	 * @model containment="true"
-	 * @generated
-	 */
-	public EList<XmlStoredProcedureParameter> getParameters()
-	{
-		if (parameters == null)
-		{
-			parameters = new EObjectContainmentEList<XmlStoredProcedureParameter>(XmlStoredProcedureParameter.class, this, EclipseLinkOrmPackage.XML_NAMED_STORED_PROCEDURE_QUERY__PARAMETERS);
-		}
-		return parameters;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs)
-	{
-		switch (featureID)
-		{
-			case EclipseLinkOrmPackage.XML_NAMED_STORED_PROCEDURE_QUERY__HINTS:
-				return ((InternalEList<?>)getHints()).basicRemove(otherEnd, msgs);
-			case EclipseLinkOrmPackage.XML_NAMED_STORED_PROCEDURE_QUERY__PARAMETERS:
-				return ((InternalEList<?>)getParameters()).basicRemove(otherEnd, msgs);
-		}
-		return super.eInverseRemove(otherEnd, featureID, msgs);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public Object eGet(int featureID, boolean resolve, boolean coreType)
-	{
-		switch (featureID)
-		{
-			case EclipseLinkOrmPackage.XML_NAMED_STORED_PROCEDURE_QUERY__NAME:
-				return getName();
-			case EclipseLinkOrmPackage.XML_NAMED_STORED_PROCEDURE_QUERY__RESULT_CLASS:
-				return getResultClass();
-			case EclipseLinkOrmPackage.XML_NAMED_STORED_PROCEDURE_QUERY__RESULT_SET_MAPPING:
-				return getResultSetMapping();
-			case EclipseLinkOrmPackage.XML_NAMED_STORED_PROCEDURE_QUERY__PROCEDURE_NAME:
-				return getProcedureName();
-			case EclipseLinkOrmPackage.XML_NAMED_STORED_PROCEDURE_QUERY__RETURNS_RESULT_SET:
-				return getReturnsResultSet();
-			case EclipseLinkOrmPackage.XML_NAMED_STORED_PROCEDURE_QUERY__HINTS:
-				return getHints();
-			case EclipseLinkOrmPackage.XML_NAMED_STORED_PROCEDURE_QUERY__PARAMETERS:
-				return getParameters();
-		}
-		return super.eGet(featureID, resolve, coreType);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@SuppressWarnings("unchecked")
-	@Override
-	public void eSet(int featureID, Object newValue)
-	{
-		switch (featureID)
-		{
-			case EclipseLinkOrmPackage.XML_NAMED_STORED_PROCEDURE_QUERY__NAME:
-				setName((String)newValue);
-				return;
-			case EclipseLinkOrmPackage.XML_NAMED_STORED_PROCEDURE_QUERY__RESULT_CLASS:
-				setResultClass((String)newValue);
-				return;
-			case EclipseLinkOrmPackage.XML_NAMED_STORED_PROCEDURE_QUERY__RESULT_SET_MAPPING:
-				setResultSetMapping((String)newValue);
-				return;
-			case EclipseLinkOrmPackage.XML_NAMED_STORED_PROCEDURE_QUERY__PROCEDURE_NAME:
-				setProcedureName((String)newValue);
-				return;
-			case EclipseLinkOrmPackage.XML_NAMED_STORED_PROCEDURE_QUERY__RETURNS_RESULT_SET:
-				setReturnsResultSet((Boolean)newValue);
-				return;
-			case EclipseLinkOrmPackage.XML_NAMED_STORED_PROCEDURE_QUERY__HINTS:
-				getHints().clear();
-				getHints().addAll((Collection<? extends XmlQueryHint>)newValue);
-				return;
-			case EclipseLinkOrmPackage.XML_NAMED_STORED_PROCEDURE_QUERY__PARAMETERS:
-				getParameters().clear();
-				getParameters().addAll((Collection<? extends XmlStoredProcedureParameter>)newValue);
-				return;
-		}
-		super.eSet(featureID, newValue);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public void eUnset(int featureID)
-	{
-		switch (featureID)
-		{
-			case EclipseLinkOrmPackage.XML_NAMED_STORED_PROCEDURE_QUERY__NAME:
-				setName(NAME_EDEFAULT);
-				return;
-			case EclipseLinkOrmPackage.XML_NAMED_STORED_PROCEDURE_QUERY__RESULT_CLASS:
-				setResultClass(RESULT_CLASS_EDEFAULT);
-				return;
-			case EclipseLinkOrmPackage.XML_NAMED_STORED_PROCEDURE_QUERY__RESULT_SET_MAPPING:
-				setResultSetMapping(RESULT_SET_MAPPING_EDEFAULT);
-				return;
-			case EclipseLinkOrmPackage.XML_NAMED_STORED_PROCEDURE_QUERY__PROCEDURE_NAME:
-				setProcedureName(PROCEDURE_NAME_EDEFAULT);
-				return;
-			case EclipseLinkOrmPackage.XML_NAMED_STORED_PROCEDURE_QUERY__RETURNS_RESULT_SET:
-				setReturnsResultSet(RETURNS_RESULT_SET_EDEFAULT);
-				return;
-			case EclipseLinkOrmPackage.XML_NAMED_STORED_PROCEDURE_QUERY__HINTS:
-				getHints().clear();
-				return;
-			case EclipseLinkOrmPackage.XML_NAMED_STORED_PROCEDURE_QUERY__PARAMETERS:
-				getParameters().clear();
-				return;
-		}
-		super.eUnset(featureID);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public boolean eIsSet(int featureID)
-	{
-		switch (featureID)
-		{
-			case EclipseLinkOrmPackage.XML_NAMED_STORED_PROCEDURE_QUERY__NAME:
-				return NAME_EDEFAULT == null ? name != null : !NAME_EDEFAULT.equals(name);
-			case EclipseLinkOrmPackage.XML_NAMED_STORED_PROCEDURE_QUERY__RESULT_CLASS:
-				return RESULT_CLASS_EDEFAULT == null ? resultClass != null : !RESULT_CLASS_EDEFAULT.equals(resultClass);
-			case EclipseLinkOrmPackage.XML_NAMED_STORED_PROCEDURE_QUERY__RESULT_SET_MAPPING:
-				return RESULT_SET_MAPPING_EDEFAULT == null ? resultSetMapping != null : !RESULT_SET_MAPPING_EDEFAULT.equals(resultSetMapping);
-			case EclipseLinkOrmPackage.XML_NAMED_STORED_PROCEDURE_QUERY__PROCEDURE_NAME:
-				return PROCEDURE_NAME_EDEFAULT == null ? procedureName != null : !PROCEDURE_NAME_EDEFAULT.equals(procedureName);
-			case EclipseLinkOrmPackage.XML_NAMED_STORED_PROCEDURE_QUERY__RETURNS_RESULT_SET:
-				return RETURNS_RESULT_SET_EDEFAULT == null ? returnsResultSet != null : !RETURNS_RESULT_SET_EDEFAULT.equals(returnsResultSet);
-			case EclipseLinkOrmPackage.XML_NAMED_STORED_PROCEDURE_QUERY__HINTS:
-				return hints != null && !hints.isEmpty();
-			case EclipseLinkOrmPackage.XML_NAMED_STORED_PROCEDURE_QUERY__PARAMETERS:
-				return parameters != null && !parameters.isEmpty();
-		}
-		return super.eIsSet(featureID);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public String toString()
-	{
-		if (eIsProxy()) return super.toString();
-
-		StringBuffer result = new StringBuffer(super.toString());
-		result.append(" (name: ");
-		result.append(name);
-		result.append(", resultClass: ");
-		result.append(resultClass);
-		result.append(", resultSetMapping: ");
-		result.append(resultSetMapping);
-		result.append(", procedureName: ");
-		result.append(procedureName);
-		result.append(", returnsResultSet: ");
-		result.append(returnsResultSet);
-		result.append(')');
-		return result.toString();
-	}
-
-} // XmlNamedStoredProcedureQuery
diff --git a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/resource/orm/XmlObjectTypeConverter.java b/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/resource/orm/XmlObjectTypeConverter.java
deleted file mode 100644
index 2809208..0000000
--- a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/resource/orm/XmlObjectTypeConverter.java
+++ /dev/null
@@ -1,140 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.eclipselink.core.resource.orm;
-
-import org.eclipse.emf.common.util.EList;
-
-/**
- * <!-- begin-user-doc -->
- * 
- * A representation of the model object '<em><b>Xml Object Type CustomConverter</b></em>'.
- *  
- * Provisional API: This interface is part of an interim API that is still
- * under development and expected to change significantly before reaching
- * stability. It is available at this early stage to solicit feedback from
- * pioneering adopters on the understanding that any code that uses this API
- * will almost certainly be broken (repeatedly) as the API evolves.
- * 
- * @version 2.1
- * @since 2.1
- * 
- * <!-- end-user-doc -->
- *
- * <p>
- * The following features are supported:
- * <ul>
- *   <li>{@link org.eclipse.jpt.eclipselink.core.resource.orm.XmlObjectTypeConverter#getDataType <em>Data Type</em>}</li>
- *   <li>{@link org.eclipse.jpt.eclipselink.core.resource.orm.XmlObjectTypeConverter#getObjectType <em>Object Type</em>}</li>
- *   <li>{@link org.eclipse.jpt.eclipselink.core.resource.orm.XmlObjectTypeConverter#getConversionValues <em>Conversion Values</em>}</li>
- *   <li>{@link org.eclipse.jpt.eclipselink.core.resource.orm.XmlObjectTypeConverter#getDefaultObjectValue <em>Default Object Value</em>}</li>
- * </ul>
- * </p>
- *
- * @see org.eclipse.jpt.eclipselink.core.resource.orm.EclipseLinkOrmPackage#getXmlObjectTypeConverter()
- * @model kind="class" interface="true" abstract="true"
- * @generated
- */
-public interface XmlObjectTypeConverter extends XmlNamedConverter
-{
-	/**
-	 * Returns the value of the '<em><b>Conversion Values</b></em>' containment reference list.
-	 * The list contents are of type {@link org.eclipse.jpt.eclipselink.core.resource.orm.XmlConversionValue}.
-	 * <!-- begin-user-doc -->
-	 * <p>
-	 * If the meaning of the '<em>Conversion Values</em>' containment reference list isn't clear,
-	 * there really should be more of a description here...
-	 * </p>
-	 * <!-- end-user-doc -->
-	 * @return the value of the '<em>Conversion Values</em>' containment reference list.
-	 * @see org.eclipse.jpt.eclipselink.core.resource.orm.EclipseLinkOrmPackage#getXmlObjectTypeConverter_ConversionValues()
-	 * @model containment="true"
-	 * @generated
-	 */
-	EList<XmlConversionValue> getConversionValues();
-
-	/**
-	 * Returns the value of the '<em><b>Default Object Value</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <p>
-	 * If the meaning of the '<em>Default Object Value</em>' attribute isn't clear,
-	 * there really should be more of a description here...
-	 * </p>
-	 * <!-- end-user-doc -->
-	 * @return the value of the '<em>Default Object Value</em>' attribute.
-	 * @see #setDefaultObjectValue(String)
-	 * @see org.eclipse.jpt.eclipselink.core.resource.orm.EclipseLinkOrmPackage#getXmlObjectTypeConverter_DefaultObjectValue()
-	 * @model
-	 * @generated
-	 */
-	String getDefaultObjectValue();
-
-	/**
-	 * Sets the value of the '{@link org.eclipse.jpt.eclipselink.core.resource.orm.XmlObjectTypeConverter#getDefaultObjectValue <em>Default Object Value</em>}' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @param value the new value of the '<em>Default Object Value</em>' attribute.
-	 * @see #getDefaultObjectValue()
-	 * @generated
-	 */
-	void setDefaultObjectValue(String value);
-
-	/**
-	 * Returns the value of the '<em><b>Data Type</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <p>
-	 * If the meaning of the '<em>Data Type</em>' attribute isn't clear,
-	 * there really should be more of a description here...
-	 * </p>
-	 * <!-- end-user-doc -->
-	 * @return the value of the '<em>Data Type</em>' attribute.
-	 * @see #setDataType(String)
-	 * @see org.eclipse.jpt.eclipselink.core.resource.orm.EclipseLinkOrmPackage#getXmlObjectTypeConverter_DataType()
-	 * @model
-	 * @generated
-	 */
-	String getDataType();
-
-	/**
-	 * Sets the value of the '{@link org.eclipse.jpt.eclipselink.core.resource.orm.XmlObjectTypeConverter#getDataType <em>Data Type</em>}' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @param value the new value of the '<em>Data Type</em>' attribute.
-	 * @see #getDataType()
-	 * @generated
-	 */
-	void setDataType(String value);
-
-	/**
-	 * Returns the value of the '<em><b>Object Type</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <p>
-	 * If the meaning of the '<em>Object Type</em>' attribute isn't clear,
-	 * there really should be more of a description here...
-	 * </p>
-	 * <!-- end-user-doc -->
-	 * @return the value of the '<em>Object Type</em>' attribute.
-	 * @see #setObjectType(String)
-	 * @see org.eclipse.jpt.eclipselink.core.resource.orm.EclipseLinkOrmPackage#getXmlObjectTypeConverter_ObjectType()
-	 * @model
-	 * @generated
-	 */
-	String getObjectType();
-
-	/**
-	 * Sets the value of the '{@link org.eclipse.jpt.eclipselink.core.resource.orm.XmlObjectTypeConverter#getObjectType <em>Object Type</em>}' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @param value the new value of the '<em>Object Type</em>' attribute.
-	 * @see #getObjectType()
-	 * @generated
-	 */
-	void setObjectType(String value);
-
-} // XmlObjectTypeConverter
diff --git a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/resource/orm/XmlObjectTypeConverterImpl.java b/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/resource/orm/XmlObjectTypeConverterImpl.java
deleted file mode 100644
index 7cb9332..0000000
--- a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/resource/orm/XmlObjectTypeConverterImpl.java
+++ /dev/null
@@ -1,467 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008, 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.eclipselink.core.resource.orm;
-
-import java.util.Collection;
-import org.eclipse.emf.common.notify.Notification;
-import org.eclipse.emf.common.notify.NotificationChain;
-import org.eclipse.emf.common.util.EList;
-import org.eclipse.emf.ecore.EClass;
-import org.eclipse.emf.ecore.InternalEObject;
-import org.eclipse.emf.ecore.impl.ENotificationImpl;
-import org.eclipse.emf.ecore.util.EObjectContainmentEList;
-import org.eclipse.emf.ecore.util.InternalEList;
-import org.eclipse.jpt.core.resource.xml.AbstractJpaEObject;
-
-/**
- * <!-- begin-user-doc -->
- * 
- * A representation of the model object '<em><b>Xml Object Type CustomConverter</b></em>'.
- *  
- * Provisional API: This interface is part of an interim API that is still
- * under development and expected to change significantly before reaching
- * stability. It is available at this early stage to solicit feedback from
- * pioneering adopters on the understanding that any code that uses this API
- * will almost certainly be broken (repeatedly) as the API evolves.
- * 
- * @version 2.1
- * @since 2.1
- * 
- * <!-- end-user-doc -->
- *
- *
- * @see org.eclipse.jpt.eclipselink.core.resource.orm.EclipseLinkOrmPackage#getXmlObjectTypeConverterImpl()
- * @model kind="class"
- * @generated
- */
-public class XmlObjectTypeConverterImpl extends AbstractJpaEObject implements XmlObjectTypeConverter
-{
-	/**
-	 * The default value of the '{@link #getName() <em>Name</em>}' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see #getName()
-	 * @generated
-	 * @ordered
-	 */
-	protected static final String NAME_EDEFAULT = null;
-
-	/**
-	 * The cached value of the '{@link #getName() <em>Name</em>}' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see #getName()
-	 * @generated
-	 * @ordered
-	 */
-	protected String name = NAME_EDEFAULT;
-
-	/**
-	 * The default value of the '{@link #getDataType() <em>Data Type</em>}' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see #getDataType()
-	 * @generated
-	 * @ordered
-	 */
-	protected static final String DATA_TYPE_EDEFAULT = null;
-
-	/**
-	 * The cached value of the '{@link #getDataType() <em>Data Type</em>}' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see #getDataType()
-	 * @generated
-	 * @ordered
-	 */
-	protected String dataType = DATA_TYPE_EDEFAULT;
-
-	/**
-	 * The default value of the '{@link #getObjectType() <em>Object Type</em>}' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see #getObjectType()
-	 * @generated
-	 * @ordered
-	 */
-	protected static final String OBJECT_TYPE_EDEFAULT = null;
-
-	/**
-	 * The cached value of the '{@link #getObjectType() <em>Object Type</em>}' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see #getObjectType()
-	 * @generated
-	 * @ordered
-	 */
-	protected String objectType = OBJECT_TYPE_EDEFAULT;
-
-	/**
-	 * The cached value of the '{@link #getConversionValues() <em>Conversion Values</em>}' containment reference list.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see #getConversionValues()
-	 * @generated
-	 * @ordered
-	 */
-	protected EList<XmlConversionValue> conversionValues;
-
-	/**
-	 * The default value of the '{@link #getDefaultObjectValue() <em>Default Object Value</em>}' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see #getDefaultObjectValue()
-	 * @generated
-	 * @ordered
-	 */
-	protected static final String DEFAULT_OBJECT_VALUE_EDEFAULT = null;
-
-	/**
-	 * The cached value of the '{@link #getDefaultObjectValue() <em>Default Object Value</em>}' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see #getDefaultObjectValue()
-	 * @generated
-	 * @ordered
-	 */
-	protected String defaultObjectValue = DEFAULT_OBJECT_VALUE_EDEFAULT;
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	protected XmlObjectTypeConverterImpl()
-	{
-		super();
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	protected EClass eStaticClass()
-	{
-		return EclipseLinkOrmPackage.Literals.XML_OBJECT_TYPE_CONVERTER_IMPL;
-	}
-
-	/**
-	 * Returns the value of the '<em><b>Name</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <p>
-	 * If the meaning of the '<em>Name</em>' attribute isn't clear,
-	 * there really should be more of a description here...
-	 * </p>
-	 * <!-- end-user-doc -->
-	 * @return the value of the '<em>Name</em>' attribute.
-	 * @see #setName(String)
-	 * @see org.eclipse.jpt.eclipselink.core.resource.orm.EclipseLinkOrmPackage#getXmlNamedConverter_Name()
-	 * @model
-	 * @generated
-	 */
-	public String getName()
-	{
-		return name;
-	}
-
-	/**
-	 * Sets the value of the '{@link org.eclipse.jpt.eclipselink.core.resource.orm.XmlObjectTypeConverterImpl#getName <em>Name</em>}' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @param value the new value of the '<em>Name</em>' attribute.
-	 * @see #getName()
-	 * @generated
-	 */
-	public void setName(String newName)
-	{
-		String oldName = name;
-		name = newName;
-		if (eNotificationRequired())
-			eNotify(new ENotificationImpl(this, Notification.SET, EclipseLinkOrmPackage.XML_OBJECT_TYPE_CONVERTER_IMPL__NAME, oldName, name));
-	}
-
-	/**
-	 * Returns the value of the '<em><b>Data Type</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <p>
-	 * If the meaning of the '<em>Data Type</em>' attribute isn't clear,
-	 * there really should be more of a description here...
-	 * </p>
-	 * <!-- end-user-doc -->
-	 * @return the value of the '<em>Data Type</em>' attribute.
-	 * @see #setDataType(String)
-	 * @see org.eclipse.jpt.eclipselink.core.resource.orm.EclipseLinkOrmPackage#getXmlObjectTypeConverter_DataType()
-	 * @model
-	 * @generated
-	 */
-	public String getDataType()
-	{
-		return dataType;
-	}
-
-	/**
-	 * Sets the value of the '{@link org.eclipse.jpt.eclipselink.core.resource.orm.XmlObjectTypeConverterImpl#getDataType <em>Data Type</em>}' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @param value the new value of the '<em>Data Type</em>' attribute.
-	 * @see #getDataType()
-	 * @generated
-	 */
-	public void setDataType(String newDataType)
-	{
-		String oldDataType = dataType;
-		dataType = newDataType;
-		if (eNotificationRequired())
-			eNotify(new ENotificationImpl(this, Notification.SET, EclipseLinkOrmPackage.XML_OBJECT_TYPE_CONVERTER_IMPL__DATA_TYPE, oldDataType, dataType));
-	}
-
-	/**
-	 * Returns the value of the '<em><b>Object Type</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <p>
-	 * If the meaning of the '<em>Object Type</em>' attribute isn't clear,
-	 * there really should be more of a description here...
-	 * </p>
-	 * <!-- end-user-doc -->
-	 * @return the value of the '<em>Object Type</em>' attribute.
-	 * @see #setObjectType(String)
-	 * @see org.eclipse.jpt.eclipselink.core.resource.orm.EclipseLinkOrmPackage#getXmlObjectTypeConverter_ObjectType()
-	 * @model
-	 * @generated
-	 */
-	public String getObjectType()
-	{
-		return objectType;
-	}
-
-	/**
-	 * Sets the value of the '{@link org.eclipse.jpt.eclipselink.core.resource.orm.XmlObjectTypeConverterImpl#getObjectType <em>Object Type</em>}' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @param value the new value of the '<em>Object Type</em>' attribute.
-	 * @see #getObjectType()
-	 * @generated
-	 */
-	public void setObjectType(String newObjectType)
-	{
-		String oldObjectType = objectType;
-		objectType = newObjectType;
-		if (eNotificationRequired())
-			eNotify(new ENotificationImpl(this, Notification.SET, EclipseLinkOrmPackage.XML_OBJECT_TYPE_CONVERTER_IMPL__OBJECT_TYPE, oldObjectType, objectType));
-	}
-
-	/**
-	 * Returns the value of the '<em><b>Conversion Values</b></em>' containment reference list.
-	 * The list contents are of type {@link org.eclipse.jpt.eclipselink.core.resource.orm.XmlConversionValue}.
-	 * <!-- begin-user-doc -->
-	 * <p>
-	 * If the meaning of the '<em>Conversion Values</em>' containment reference list isn't clear,
-	 * there really should be more of a description here...
-	 * </p>
-	 * <!-- end-user-doc -->
-	 * @return the value of the '<em>Conversion Values</em>' containment reference list.
-	 * @see org.eclipse.jpt.eclipselink.core.resource.orm.EclipseLinkOrmPackage#getXmlObjectTypeConverter_ConversionValues()
-	 * @model containment="true"
-	 * @generated
-	 */
-	public EList<XmlConversionValue> getConversionValues()
-	{
-		if (conversionValues == null)
-		{
-			conversionValues = new EObjectContainmentEList<XmlConversionValue>(XmlConversionValue.class, this, EclipseLinkOrmPackage.XML_OBJECT_TYPE_CONVERTER_IMPL__CONVERSION_VALUES);
-		}
-		return conversionValues;
-	}
-
-	/**
-	 * Returns the value of the '<em><b>Default Object Value</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <p>
-	 * If the meaning of the '<em>Default Object Value</em>' attribute isn't clear,
-	 * there really should be more of a description here...
-	 * </p>
-	 * <!-- end-user-doc -->
-	 * @return the value of the '<em>Default Object Value</em>' attribute.
-	 * @see #setDefaultObjectValue(String)
-	 * @see org.eclipse.jpt.eclipselink.core.resource.orm.EclipseLinkOrmPackage#getXmlObjectTypeConverter_DefaultObjectValue()
-	 * @model
-	 * @generated
-	 */
-	public String getDefaultObjectValue()
-	{
-		return defaultObjectValue;
-	}
-
-	/**
-	 * Sets the value of the '{@link org.eclipse.jpt.eclipselink.core.resource.orm.XmlObjectTypeConverterImpl#getDefaultObjectValue <em>Default Object Value</em>}' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @param value the new value of the '<em>Default Object Value</em>' attribute.
-	 * @see #getDefaultObjectValue()
-	 * @generated
-	 */
-	public void setDefaultObjectValue(String newDefaultObjectValue)
-	{
-		String oldDefaultObjectValue = defaultObjectValue;
-		defaultObjectValue = newDefaultObjectValue;
-		if (eNotificationRequired())
-			eNotify(new ENotificationImpl(this, Notification.SET, EclipseLinkOrmPackage.XML_OBJECT_TYPE_CONVERTER_IMPL__DEFAULT_OBJECT_VALUE, oldDefaultObjectValue, defaultObjectValue));
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs)
-	{
-		switch (featureID)
-		{
-			case EclipseLinkOrmPackage.XML_OBJECT_TYPE_CONVERTER_IMPL__CONVERSION_VALUES:
-				return ((InternalEList<?>)getConversionValues()).basicRemove(otherEnd, msgs);
-		}
-		return super.eInverseRemove(otherEnd, featureID, msgs);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public Object eGet(int featureID, boolean resolve, boolean coreType)
-	{
-		switch (featureID)
-		{
-			case EclipseLinkOrmPackage.XML_OBJECT_TYPE_CONVERTER_IMPL__NAME:
-				return getName();
-			case EclipseLinkOrmPackage.XML_OBJECT_TYPE_CONVERTER_IMPL__DATA_TYPE:
-				return getDataType();
-			case EclipseLinkOrmPackage.XML_OBJECT_TYPE_CONVERTER_IMPL__OBJECT_TYPE:
-				return getObjectType();
-			case EclipseLinkOrmPackage.XML_OBJECT_TYPE_CONVERTER_IMPL__CONVERSION_VALUES:
-				return getConversionValues();
-			case EclipseLinkOrmPackage.XML_OBJECT_TYPE_CONVERTER_IMPL__DEFAULT_OBJECT_VALUE:
-				return getDefaultObjectValue();
-		}
-		return super.eGet(featureID, resolve, coreType);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@SuppressWarnings("unchecked")
-	@Override
-	public void eSet(int featureID, Object newValue)
-	{
-		switch (featureID)
-		{
-			case EclipseLinkOrmPackage.XML_OBJECT_TYPE_CONVERTER_IMPL__NAME:
-				setName((String)newValue);
-				return;
-			case EclipseLinkOrmPackage.XML_OBJECT_TYPE_CONVERTER_IMPL__DATA_TYPE:
-				setDataType((String)newValue);
-				return;
-			case EclipseLinkOrmPackage.XML_OBJECT_TYPE_CONVERTER_IMPL__OBJECT_TYPE:
-				setObjectType((String)newValue);
-				return;
-			case EclipseLinkOrmPackage.XML_OBJECT_TYPE_CONVERTER_IMPL__CONVERSION_VALUES:
-				getConversionValues().clear();
-				getConversionValues().addAll((Collection<? extends XmlConversionValue>)newValue);
-				return;
-			case EclipseLinkOrmPackage.XML_OBJECT_TYPE_CONVERTER_IMPL__DEFAULT_OBJECT_VALUE:
-				setDefaultObjectValue((String)newValue);
-				return;
-		}
-		super.eSet(featureID, newValue);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public void eUnset(int featureID)
-	{
-		switch (featureID)
-		{
-			case EclipseLinkOrmPackage.XML_OBJECT_TYPE_CONVERTER_IMPL__NAME:
-				setName(NAME_EDEFAULT);
-				return;
-			case EclipseLinkOrmPackage.XML_OBJECT_TYPE_CONVERTER_IMPL__DATA_TYPE:
-				setDataType(DATA_TYPE_EDEFAULT);
-				return;
-			case EclipseLinkOrmPackage.XML_OBJECT_TYPE_CONVERTER_IMPL__OBJECT_TYPE:
-				setObjectType(OBJECT_TYPE_EDEFAULT);
-				return;
-			case EclipseLinkOrmPackage.XML_OBJECT_TYPE_CONVERTER_IMPL__CONVERSION_VALUES:
-				getConversionValues().clear();
-				return;
-			case EclipseLinkOrmPackage.XML_OBJECT_TYPE_CONVERTER_IMPL__DEFAULT_OBJECT_VALUE:
-				setDefaultObjectValue(DEFAULT_OBJECT_VALUE_EDEFAULT);
-				return;
-		}
-		super.eUnset(featureID);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public boolean eIsSet(int featureID)
-	{
-		switch (featureID)
-		{
-			case EclipseLinkOrmPackage.XML_OBJECT_TYPE_CONVERTER_IMPL__NAME:
-				return NAME_EDEFAULT == null ? name != null : !NAME_EDEFAULT.equals(name);
-			case EclipseLinkOrmPackage.XML_OBJECT_TYPE_CONVERTER_IMPL__DATA_TYPE:
-				return DATA_TYPE_EDEFAULT == null ? dataType != null : !DATA_TYPE_EDEFAULT.equals(dataType);
-			case EclipseLinkOrmPackage.XML_OBJECT_TYPE_CONVERTER_IMPL__OBJECT_TYPE:
-				return OBJECT_TYPE_EDEFAULT == null ? objectType != null : !OBJECT_TYPE_EDEFAULT.equals(objectType);
-			case EclipseLinkOrmPackage.XML_OBJECT_TYPE_CONVERTER_IMPL__CONVERSION_VALUES:
-				return conversionValues != null && !conversionValues.isEmpty();
-			case EclipseLinkOrmPackage.XML_OBJECT_TYPE_CONVERTER_IMPL__DEFAULT_OBJECT_VALUE:
-				return DEFAULT_OBJECT_VALUE_EDEFAULT == null ? defaultObjectValue != null : !DEFAULT_OBJECT_VALUE_EDEFAULT.equals(defaultObjectValue);
-		}
-		return super.eIsSet(featureID);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public String toString()
-	{
-		if (eIsProxy()) return super.toString();
-
-		StringBuffer result = new StringBuffer(super.toString());
-		result.append(" (name: ");
-		result.append(name);
-		result.append(", dataType: ");
-		result.append(dataType);
-		result.append(", objectType: ");
-		result.append(objectType);
-		result.append(", defaultObjectValue: ");
-		result.append(defaultObjectValue);
-		result.append(')');
-		return result.toString();
-	}
-
-} // XmlObjectTypeConverter
diff --git a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/resource/orm/XmlOneToMany.java b/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/resource/orm/XmlOneToMany.java
deleted file mode 100644
index cad7471..0000000
--- a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/resource/orm/XmlOneToMany.java
+++ /dev/null
@@ -1,60 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.eclipselink.core.resource.orm;
-
-import org.eclipse.emf.common.util.EList;
-
-
-/**
- * <!-- begin-user-doc -->
- * 
- * A representation of the model object '<em><b>Xml One To Many</b></em>'.
- *  
- * Provisional API: This interface is part of an interim API that is still
- * under development and expected to change significantly before reaching
- * stability. It is available at this early stage to solicit feedback from
- * pioneering adopters on the understanding that any code that uses this API
- * will almost certainly be broken (repeatedly) as the API evolves.
- * 
- * @version 2.1
- * @since 2.1
- * 
- * <!-- end-user-doc -->
- *
- * <p>
- * The following features are supported:
- * <ul>
- *   <li>{@link org.eclipse.jpt.eclipselink.core.resource.orm.XmlOneToMany#getProperties <em>Properties</em>}</li>
- * </ul>
- * </p>
- *
- * @see org.eclipse.jpt.eclipselink.core.resource.orm.EclipseLinkOrmPackage#getXmlOneToMany()
- * @model kind="class" interface="true" abstract="true"
- * @generated
- */
-public interface XmlOneToMany extends org.eclipse.jpt.core.resource.orm.XmlOneToMany, XmlPrivateOwned, XmlJoinFetch, XmlAccessMethodsHolder
-{
-
-	/**
-	 * Returns the value of the '<em><b>Properties</b></em>' containment reference list.
-	 * The list contents are of type {@link org.eclipse.jpt.eclipselink.core.resource.orm.XmlProperty}.
-	 * <!-- begin-user-doc -->
-	 * <p>
-	 * If the meaning of the '<em>Properties</em>' containment reference list isn't clear,
-	 * there really should be more of a description here...
-	 * </p>
-	 * <!-- end-user-doc -->
-	 * @return the value of the '<em>Properties</em>' containment reference list.
-	 * @see org.eclipse.jpt.eclipselink.core.resource.orm.EclipseLinkOrmPackage#getXmlOneToMany_Properties()
-	 * @model containment="true"
-	 * @generated
-	 */
-	EList<XmlProperty> getProperties();
-} // XmlOneToMany
diff --git a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/resource/orm/XmlOneToManyImpl.java b/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/resource/orm/XmlOneToManyImpl.java
deleted file mode 100644
index 9d06e5a..0000000
--- a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/resource/orm/XmlOneToManyImpl.java
+++ /dev/null
@@ -1,508 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.eclipselink.core.resource.orm;
-
-import java.util.Collection;
-import org.eclipse.emf.common.notify.Notification;
-import org.eclipse.emf.common.notify.NotificationChain;
-import org.eclipse.emf.common.util.EList;
-import org.eclipse.emf.ecore.EClass;
-import org.eclipse.emf.ecore.InternalEObject;
-import org.eclipse.emf.ecore.impl.ENotificationImpl;
-import org.eclipse.emf.ecore.util.EObjectContainmentEList;
-import org.eclipse.emf.ecore.util.InternalEList;
-import org.eclipse.jpt.core.utility.TextRange;
-import org.eclipse.jpt.eclipselink.core.internal.resource.orm.translators.EclipseLinkOrmXmlMapper;
-
-/**
- * <!-- begin-user-doc -->
- * 
- * A representation of the model object '<em><b>Xml One To Many</b></em>'.
- *  
- * Provisional API: This interface is part of an interim API that is still
- * under development and expected to change significantly before reaching
- * stability. It is available at this early stage to solicit feedback from
- * pioneering adopters on the understanding that any code that uses this API
- * will almost certainly be broken (repeatedly) as the API evolves.
- * 
- * @version 2.1
- * @since 2.1
- * 
- * <!-- end-user-doc -->
- *
- *
- * @see org.eclipse.jpt.eclipselink.core.resource.orm.EclipseLinkOrmPackage#getXmlOneToManyImpl()
- * @model kind="class"
- * @generated
- */
-public class XmlOneToManyImpl extends org.eclipse.jpt.core.resource.orm.XmlOneToManyImpl implements XmlOneToMany
-{
-	/**
-	 * The default value of the '{@link #isPrivateOwned() <em>Private Owned</em>}' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see #isPrivateOwned()
-	 * @generated
-	 * @ordered
-	 */
-	protected static final boolean PRIVATE_OWNED_EDEFAULT = false;
-
-	/**
-	 * The cached value of the '{@link #isPrivateOwned() <em>Private Owned</em>}' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see #isPrivateOwned()
-	 * @generated
-	 * @ordered
-	 */
-	protected boolean privateOwned = PRIVATE_OWNED_EDEFAULT;
-
-	/**
-	 * changed this to null and removed the generated flag so emf won't generate over it
-	 * we don't want a default for enums, just null if the tag does not exist
-	 */
-	protected static final XmlJoinFetchType JOIN_FETCH_EDEFAULT = null;
-
-	/**
-	 * The cached value of the '{@link #getJoinFetch() <em>Join Fetch</em>}' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see #getJoinFetch()
-	 * @generated
-	 * @ordered
-	 */
-	protected XmlJoinFetchType joinFetch = JOIN_FETCH_EDEFAULT;
-
-	/**
-	 * The cached value of the '{@link #getAccessMethods() <em>Access Methods</em>}' containment reference.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see #getAccessMethods()
-	 * @generated
-	 * @ordered
-	 */
-	protected XmlAccessMethods accessMethods;
-
-	/**
-	 * The cached value of the '{@link #getProperties() <em>Properties</em>}' containment reference list.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see #getProperties()
-	 * @generated
-	 * @ordered
-	 */
-	protected EList<XmlProperty> properties;
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	protected XmlOneToManyImpl()
-	{
-		super();
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	protected EClass eStaticClass()
-	{
-		return EclipseLinkOrmPackage.Literals.XML_ONE_TO_MANY_IMPL;
-	}
-
-	/**
-	 * Returns the value of the '<em><b>Private Owned</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <p>
-	 * If the meaning of the '<em>Private Owned</em>' attribute isn't clear,
-	 * there really should be more of a description here...
-	 * </p>
-	 * <!-- end-user-doc -->
-	 * @return the value of the '<em>Private Owned</em>' attribute.
-	 * @see #setPrivateOwned(boolean)
-	 * @see org.eclipse.jpt.eclipselink.core.resource.orm.EclipseLinkOrmPackage#getXmlPrivateOwned_PrivateOwned()
-	 * @model dataType="org.eclipse.emf.ecore.xml.type.Boolean"
-	 * @generated
-	 */
-	public boolean isPrivateOwned()
-	{
-		return privateOwned;
-	}
-
-	/**
-	 * Sets the value of the '{@link org.eclipse.jpt.eclipselink.core.resource.orm.XmlOneToManyImpl#isPrivateOwned <em>Private Owned</em>}' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @param value the new value of the '<em>Private Owned</em>' attribute.
-	 * @see #isPrivateOwned()
-	 * @generated
-	 */
-	public void setPrivateOwned(boolean newPrivateOwned)
-	{
-		boolean oldPrivateOwned = privateOwned;
-		privateOwned = newPrivateOwned;
-		if (eNotificationRequired())
-			eNotify(new ENotificationImpl(this, Notification.SET, EclipseLinkOrmPackage.XML_ONE_TO_MANY_IMPL__PRIVATE_OWNED, oldPrivateOwned, privateOwned));
-	}
-
-	/**
-	 * Returns the value of the '<em><b>Join Fetch</b></em>' attribute.
-	 * The literals are from the enumeration {@link org.eclipse.jpt.eclipselink.core.resource.orm.XmlJoinFetchType}.
-	 * <!-- begin-user-doc -->
-	 * <p>
-	 * If the meaning of the '<em>Join Fetch</em>' attribute isn't clear,
-	 * there really should be more of a description here...
-	 * </p>
-	 * <!-- end-user-doc -->
-	 * @return the value of the '<em>Join Fetch</em>' attribute.
-	 * @see org.eclipse.jpt.eclipselink.core.resource.orm.XmlJoinFetchType
-	 * @see #setJoinFetch(XmlJoinFetchType)
-	 * @see org.eclipse.jpt.eclipselink.core.resource.orm.EclipseLinkOrmPackage#getXmlJoinFetch_JoinFetch()
-	 * @model
-	 * @generated
-	 */
-	public XmlJoinFetchType getJoinFetch()
-	{
-		return joinFetch;
-	}
-
-	/**
-	 * Sets the value of the '{@link org.eclipse.jpt.eclipselink.core.resource.orm.XmlOneToManyImpl#getJoinFetch <em>Join Fetch</em>}' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @param value the new value of the '<em>Join Fetch</em>' attribute.
-	 * @see org.eclipse.jpt.eclipselink.core.resource.orm.XmlJoinFetchType
-	 * @see #getJoinFetch()
-	 * @generated
-	 */
-	public void setJoinFetch(XmlJoinFetchType newJoinFetch)
-	{
-		XmlJoinFetchType oldJoinFetch = joinFetch;
-		joinFetch = newJoinFetch == null ? JOIN_FETCH_EDEFAULT : newJoinFetch;
-		if (eNotificationRequired())
-			eNotify(new ENotificationImpl(this, Notification.SET, EclipseLinkOrmPackage.XML_ONE_TO_MANY_IMPL__JOIN_FETCH, oldJoinFetch, joinFetch));
-	}
-
-	/**
-	 * Returns the value of the '<em><b>Access Methods</b></em>' containment reference.
-	 * <!-- begin-user-doc -->
-	 * <p>
-	 * If the meaning of the '<em>Access Methods</em>' containment reference isn't clear,
-	 * there really should be more of a description here...
-	 * </p>
-	 * <!-- end-user-doc -->
-	 * @return the value of the '<em>Access Methods</em>' containment reference.
-	 * @see #setAccessMethods(XmlAccessMethods)
-	 * @see org.eclipse.jpt.eclipselink.core.resource.orm.EclipseLinkOrmPackage#getXmlAccessMethodsHolder_AccessMethods()
-	 * @model containment="true"
-	 * @generated
-	 */
-	public XmlAccessMethods getAccessMethods()
-	{
-		return accessMethods;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public NotificationChain basicSetAccessMethods(XmlAccessMethods newAccessMethods, NotificationChain msgs)
-	{
-		XmlAccessMethods oldAccessMethods = accessMethods;
-		accessMethods = newAccessMethods;
-		if (eNotificationRequired())
-		{
-			ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, EclipseLinkOrmPackage.XML_ONE_TO_MANY_IMPL__ACCESS_METHODS, oldAccessMethods, newAccessMethods);
-			if (msgs == null) msgs = notification; else msgs.add(notification);
-		}
-		return msgs;
-	}
-
-	/**
-	 * Sets the value of the '{@link org.eclipse.jpt.eclipselink.core.resource.orm.XmlOneToManyImpl#getAccessMethods <em>Access Methods</em>}' containment reference.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @param value the new value of the '<em>Access Methods</em>' containment reference.
-	 * @see #getAccessMethods()
-	 * @generated
-	 */
-	public void setAccessMethods(XmlAccessMethods newAccessMethods)
-	{
-		if (newAccessMethods != accessMethods)
-		{
-			NotificationChain msgs = null;
-			if (accessMethods != null)
-				msgs = ((InternalEObject)accessMethods).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - EclipseLinkOrmPackage.XML_ONE_TO_MANY_IMPL__ACCESS_METHODS, null, msgs);
-			if (newAccessMethods != null)
-				msgs = ((InternalEObject)newAccessMethods).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - EclipseLinkOrmPackage.XML_ONE_TO_MANY_IMPL__ACCESS_METHODS, null, msgs);
-			msgs = basicSetAccessMethods(newAccessMethods, msgs);
-			if (msgs != null) msgs.dispatch();
-		}
-		else if (eNotificationRequired())
-			eNotify(new ENotificationImpl(this, Notification.SET, EclipseLinkOrmPackage.XML_ONE_TO_MANY_IMPL__ACCESS_METHODS, newAccessMethods, newAccessMethods));
-	}
-
-	/**
-	 * Returns the value of the '<em><b>Properties</b></em>' containment reference list.
-	 * The list contents are of type {@link org.eclipse.jpt.eclipselink.core.resource.orm.XmlProperty}.
-	 * <!-- begin-user-doc -->
-	 * <p>
-	 * If the meaning of the '<em>Properties</em>' containment reference list isn't clear,
-	 * there really should be more of a description here...
-	 * </p>
-	 * <!-- end-user-doc -->
-	 * @return the value of the '<em>Properties</em>' containment reference list.
-	 * @see org.eclipse.jpt.eclipselink.core.resource.orm.EclipseLinkOrmPackage#getXmlOneToMany_Properties()
-	 * @model containment="true"
-	 * @generated
-	 */
-	public EList<XmlProperty> getProperties()
-	{
-		if (properties == null)
-		{
-			properties = new EObjectContainmentEList<XmlProperty>(XmlProperty.class, this, EclipseLinkOrmPackage.XML_ONE_TO_MANY_IMPL__PROPERTIES);
-		}
-		return properties;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs)
-	{
-		switch (featureID)
-		{
-			case EclipseLinkOrmPackage.XML_ONE_TO_MANY_IMPL__ACCESS_METHODS:
-				return basicSetAccessMethods(null, msgs);
-			case EclipseLinkOrmPackage.XML_ONE_TO_MANY_IMPL__PROPERTIES:
-				return ((InternalEList<?>)getProperties()).basicRemove(otherEnd, msgs);
-		}
-		return super.eInverseRemove(otherEnd, featureID, msgs);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public Object eGet(int featureID, boolean resolve, boolean coreType)
-	{
-		switch (featureID)
-		{
-			case EclipseLinkOrmPackage.XML_ONE_TO_MANY_IMPL__PRIVATE_OWNED:
-				return isPrivateOwned() ? Boolean.TRUE : Boolean.FALSE;
-			case EclipseLinkOrmPackage.XML_ONE_TO_MANY_IMPL__JOIN_FETCH:
-				return getJoinFetch();
-			case EclipseLinkOrmPackage.XML_ONE_TO_MANY_IMPL__ACCESS_METHODS:
-				return getAccessMethods();
-			case EclipseLinkOrmPackage.XML_ONE_TO_MANY_IMPL__PROPERTIES:
-				return getProperties();
-		}
-		return super.eGet(featureID, resolve, coreType);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@SuppressWarnings("unchecked")
-	@Override
-	public void eSet(int featureID, Object newValue)
-	{
-		switch (featureID)
-		{
-			case EclipseLinkOrmPackage.XML_ONE_TO_MANY_IMPL__PRIVATE_OWNED:
-				setPrivateOwned(((Boolean)newValue).booleanValue());
-				return;
-			case EclipseLinkOrmPackage.XML_ONE_TO_MANY_IMPL__JOIN_FETCH:
-				setJoinFetch((XmlJoinFetchType)newValue);
-				return;
-			case EclipseLinkOrmPackage.XML_ONE_TO_MANY_IMPL__ACCESS_METHODS:
-				setAccessMethods((XmlAccessMethods)newValue);
-				return;
-			case EclipseLinkOrmPackage.XML_ONE_TO_MANY_IMPL__PROPERTIES:
-				getProperties().clear();
-				getProperties().addAll((Collection<? extends XmlProperty>)newValue);
-				return;
-		}
-		super.eSet(featureID, newValue);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public void eUnset(int featureID)
-	{
-		switch (featureID)
-		{
-			case EclipseLinkOrmPackage.XML_ONE_TO_MANY_IMPL__PRIVATE_OWNED:
-				setPrivateOwned(PRIVATE_OWNED_EDEFAULT);
-				return;
-			case EclipseLinkOrmPackage.XML_ONE_TO_MANY_IMPL__JOIN_FETCH:
-				setJoinFetch(JOIN_FETCH_EDEFAULT);
-				return;
-			case EclipseLinkOrmPackage.XML_ONE_TO_MANY_IMPL__ACCESS_METHODS:
-				setAccessMethods((XmlAccessMethods)null);
-				return;
-			case EclipseLinkOrmPackage.XML_ONE_TO_MANY_IMPL__PROPERTIES:
-				getProperties().clear();
-				return;
-		}
-		super.eUnset(featureID);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public boolean eIsSet(int featureID)
-	{
-		switch (featureID)
-		{
-			case EclipseLinkOrmPackage.XML_ONE_TO_MANY_IMPL__PRIVATE_OWNED:
-				return privateOwned != PRIVATE_OWNED_EDEFAULT;
-			case EclipseLinkOrmPackage.XML_ONE_TO_MANY_IMPL__JOIN_FETCH:
-				return joinFetch != JOIN_FETCH_EDEFAULT;
-			case EclipseLinkOrmPackage.XML_ONE_TO_MANY_IMPL__ACCESS_METHODS:
-				return accessMethods != null;
-			case EclipseLinkOrmPackage.XML_ONE_TO_MANY_IMPL__PROPERTIES:
-				return properties != null && !properties.isEmpty();
-		}
-		return super.eIsSet(featureID);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public int eBaseStructuralFeatureID(int derivedFeatureID, Class<?> baseClass)
-	{
-		if (baseClass == XmlPrivateOwned.class)
-		{
-			switch (derivedFeatureID)
-			{
-				case EclipseLinkOrmPackage.XML_ONE_TO_MANY_IMPL__PRIVATE_OWNED: return EclipseLinkOrmPackage.XML_PRIVATE_OWNED__PRIVATE_OWNED;
-				default: return -1;
-			}
-		}
-		if (baseClass == XmlJoinFetch.class)
-		{
-			switch (derivedFeatureID)
-			{
-				case EclipseLinkOrmPackage.XML_ONE_TO_MANY_IMPL__JOIN_FETCH: return EclipseLinkOrmPackage.XML_JOIN_FETCH__JOIN_FETCH;
-				default: return -1;
-			}
-		}
-		if (baseClass == XmlAccessMethodsHolder.class)
-		{
-			switch (derivedFeatureID)
-			{
-				case EclipseLinkOrmPackage.XML_ONE_TO_MANY_IMPL__ACCESS_METHODS: return EclipseLinkOrmPackage.XML_ACCESS_METHODS_HOLDER__ACCESS_METHODS;
-				default: return -1;
-			}
-		}
-		if (baseClass == XmlOneToMany.class)
-		{
-			switch (derivedFeatureID)
-			{
-				case EclipseLinkOrmPackage.XML_ONE_TO_MANY_IMPL__PROPERTIES: return EclipseLinkOrmPackage.XML_ONE_TO_MANY__PROPERTIES;
-				default: return -1;
-			}
-		}
-		return super.eBaseStructuralFeatureID(derivedFeatureID, baseClass);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public int eDerivedStructuralFeatureID(int baseFeatureID, Class<?> baseClass)
-	{
-		if (baseClass == XmlPrivateOwned.class)
-		{
-			switch (baseFeatureID)
-			{
-				case EclipseLinkOrmPackage.XML_PRIVATE_OWNED__PRIVATE_OWNED: return EclipseLinkOrmPackage.XML_ONE_TO_MANY_IMPL__PRIVATE_OWNED;
-				default: return -1;
-			}
-		}
-		if (baseClass == XmlJoinFetch.class)
-		{
-			switch (baseFeatureID)
-			{
-				case EclipseLinkOrmPackage.XML_JOIN_FETCH__JOIN_FETCH: return EclipseLinkOrmPackage.XML_ONE_TO_MANY_IMPL__JOIN_FETCH;
-				default: return -1;
-			}
-		}
-		if (baseClass == XmlAccessMethodsHolder.class)
-		{
-			switch (baseFeatureID)
-			{
-				case EclipseLinkOrmPackage.XML_ACCESS_METHODS_HOLDER__ACCESS_METHODS: return EclipseLinkOrmPackage.XML_ONE_TO_MANY_IMPL__ACCESS_METHODS;
-				default: return -1;
-			}
-		}
-		if (baseClass == XmlOneToMany.class)
-		{
-			switch (baseFeatureID)
-			{
-				case EclipseLinkOrmPackage.XML_ONE_TO_MANY__PROPERTIES: return EclipseLinkOrmPackage.XML_ONE_TO_MANY_IMPL__PROPERTIES;
-				default: return -1;
-			}
-		}
-		return super.eDerivedStructuralFeatureID(baseFeatureID, baseClass);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public String toString()
-	{
-		if (eIsProxy()) return super.toString();
-
-		StringBuffer result = new StringBuffer(super.toString());
-		result.append(" (privateOwned: ");
-		result.append(privateOwned);
-		result.append(", joinFetch: ");
-		result.append(joinFetch);
-		result.append(')');
-		return result.toString();
-	}
-	
-	public TextRange getPrivateOwnedTextRange() {
-		return getElementTextRange(EclipseLinkOrmXmlMapper.PRIVATE_OWNED);
-	}
-	
-	public TextRange getJoinFetchTextRange() {
-		return getElementTextRange(EclipseLinkOrmXmlMapper.JOIN_FETCH);
-	}
-}
diff --git a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/resource/orm/XmlOneToOne.java b/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/resource/orm/XmlOneToOne.java
deleted file mode 100644
index 8d89a81..0000000
--- a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/resource/orm/XmlOneToOne.java
+++ /dev/null
@@ -1,60 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.eclipselink.core.resource.orm;
-
-import org.eclipse.emf.common.util.EList;
-
-
-/**
- * <!-- begin-user-doc -->
- * 
- * A representation of the model object '<em><b>Xml One To One</b></em>'.
- *  
- * Provisional API: This interface is part of an interim API that is still
- * under development and expected to change significantly before reaching
- * stability. It is available at this early stage to solicit feedback from
- * pioneering adopters on the understanding that any code that uses this API
- * will almost certainly be broken (repeatedly) as the API evolves.
- * 
- * @version 2.1
- * @since 2.1
- * 
- * <!-- end-user-doc -->
- *
- * <p>
- * The following features are supported:
- * <ul>
- *   <li>{@link org.eclipse.jpt.eclipselink.core.resource.orm.XmlOneToOne#getProperties <em>Properties</em>}</li>
- * </ul>
- * </p>
- *
- * @see org.eclipse.jpt.eclipselink.core.resource.orm.EclipseLinkOrmPackage#getXmlOneToOne()
- * @model kind="class" interface="true" abstract="true"
- * @generated
- */
-public interface XmlOneToOne extends org.eclipse.jpt.core.resource.orm.XmlOneToOne, XmlPrivateOwned, XmlJoinFetch, XmlAccessMethodsHolder
-{
-
-	/**
-	 * Returns the value of the '<em><b>Properties</b></em>' containment reference list.
-	 * The list contents are of type {@link org.eclipse.jpt.eclipselink.core.resource.orm.XmlProperty}.
-	 * <!-- begin-user-doc -->
-	 * <p>
-	 * If the meaning of the '<em>Properties</em>' containment reference list isn't clear,
-	 * there really should be more of a description here...
-	 * </p>
-	 * <!-- end-user-doc -->
-	 * @return the value of the '<em>Properties</em>' containment reference list.
-	 * @see org.eclipse.jpt.eclipselink.core.resource.orm.EclipseLinkOrmPackage#getXmlOneToOne_Properties()
-	 * @model containment="true"
-	 * @generated
-	 */
-	EList<XmlProperty> getProperties();
-} // XmlOneToOne
diff --git a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/resource/orm/XmlOneToOneImpl.java b/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/resource/orm/XmlOneToOneImpl.java
deleted file mode 100644
index 5a0dc40..0000000
--- a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/resource/orm/XmlOneToOneImpl.java
+++ /dev/null
@@ -1,508 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.eclipselink.core.resource.orm;
-
-import java.util.Collection;
-import org.eclipse.emf.common.notify.Notification;
-import org.eclipse.emf.common.notify.NotificationChain;
-import org.eclipse.emf.common.util.EList;
-import org.eclipse.emf.ecore.EClass;
-import org.eclipse.emf.ecore.InternalEObject;
-import org.eclipse.emf.ecore.impl.ENotificationImpl;
-import org.eclipse.emf.ecore.util.EObjectContainmentEList;
-import org.eclipse.emf.ecore.util.InternalEList;
-import org.eclipse.jpt.core.utility.TextRange;
-import org.eclipse.jpt.eclipselink.core.internal.resource.orm.translators.EclipseLinkOrmXmlMapper;
-
-/**
- * <!-- begin-user-doc -->
- * 
- * A representation of the model object '<em><b>Xml One To One</b></em>'.
- *  
- * Provisional API: This interface is part of an interim API that is still
- * under development and expected to change significantly before reaching
- * stability. It is available at this early stage to solicit feedback from
- * pioneering adopters on the understanding that any code that uses this API
- * will almost certainly be broken (repeatedly) as the API evolves.
- * 
- * @version 2.1
- * @since 2.1
- * 
- * <!-- end-user-doc -->
- *
- *
- * @see org.eclipse.jpt.eclipselink.core.resource.orm.EclipseLinkOrmPackage#getXmlOneToOneImpl()
- * @model kind="class"
- * @generated
- */
-public class XmlOneToOneImpl extends org.eclipse.jpt.core.resource.orm.XmlOneToOneImpl implements XmlOneToOne
-{
-	/**
-	 * The default value of the '{@link #isPrivateOwned() <em>Private Owned</em>}' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see #isPrivateOwned()
-	 * @generated
-	 * @ordered
-	 */
-	protected static final boolean PRIVATE_OWNED_EDEFAULT = false;
-
-	/**
-	 * The cached value of the '{@link #isPrivateOwned() <em>Private Owned</em>}' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see #isPrivateOwned()
-	 * @generated
-	 * @ordered
-	 */
-	protected boolean privateOwned = PRIVATE_OWNED_EDEFAULT;
-
-	/**
-	 * changed this to null and removed the generated flag so emf won't generate over it
-	 * we don't want a default for enums, just null if the tag does not exist
-	 */
-	protected static final XmlJoinFetchType JOIN_FETCH_EDEFAULT = null;
-
-	/**
-	 * The cached value of the '{@link #getJoinFetch() <em>Join Fetch</em>}' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see #getJoinFetch()
-	 * @generated
-	 * @ordered
-	 */
-	protected XmlJoinFetchType joinFetch = JOIN_FETCH_EDEFAULT;
-
-	/**
-	 * The cached value of the '{@link #getAccessMethods() <em>Access Methods</em>}' containment reference.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see #getAccessMethods()
-	 * @generated
-	 * @ordered
-	 */
-	protected XmlAccessMethods accessMethods;
-
-	/**
-	 * The cached value of the '{@link #getProperties() <em>Properties</em>}' containment reference list.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see #getProperties()
-	 * @generated
-	 * @ordered
-	 */
-	protected EList<XmlProperty> properties;
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	protected XmlOneToOneImpl()
-	{
-		super();
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	protected EClass eStaticClass()
-	{
-		return EclipseLinkOrmPackage.Literals.XML_ONE_TO_ONE_IMPL;
-	}
-
-	/**
-	 * Returns the value of the '<em><b>Private Owned</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <p>
-	 * If the meaning of the '<em>Private Owned</em>' attribute isn't clear,
-	 * there really should be more of a description here...
-	 * </p>
-	 * <!-- end-user-doc -->
-	 * @return the value of the '<em>Private Owned</em>' attribute.
-	 * @see #setPrivateOwned(boolean)
-	 * @see org.eclipse.jpt.eclipselink.core.resource.orm.EclipseLinkOrmPackage#getXmlPrivateOwned_PrivateOwned()
-	 * @model dataType="org.eclipse.emf.ecore.xml.type.Boolean"
-	 * @generated
-	 */
-	public boolean isPrivateOwned()
-	{
-		return privateOwned;
-	}
-
-	/**
-	 * Sets the value of the '{@link org.eclipse.jpt.eclipselink.core.resource.orm.XmlOneToOneImpl#isPrivateOwned <em>Private Owned</em>}' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @param value the new value of the '<em>Private Owned</em>' attribute.
-	 * @see #isPrivateOwned()
-	 * @generated
-	 */
-	public void setPrivateOwned(boolean newPrivateOwned)
-	{
-		boolean oldPrivateOwned = privateOwned;
-		privateOwned = newPrivateOwned;
-		if (eNotificationRequired())
-			eNotify(new ENotificationImpl(this, Notification.SET, EclipseLinkOrmPackage.XML_ONE_TO_ONE_IMPL__PRIVATE_OWNED, oldPrivateOwned, privateOwned));
-	}
-
-	/**
-	 * Returns the value of the '<em><b>Join Fetch</b></em>' attribute.
-	 * The literals are from the enumeration {@link org.eclipse.jpt.eclipselink.core.resource.orm.XmlJoinFetchType}.
-	 * <!-- begin-user-doc -->
-	 * <p>
-	 * If the meaning of the '<em>Join Fetch</em>' attribute isn't clear,
-	 * there really should be more of a description here...
-	 * </p>
-	 * <!-- end-user-doc -->
-	 * @return the value of the '<em>Join Fetch</em>' attribute.
-	 * @see org.eclipse.jpt.eclipselink.core.resource.orm.XmlJoinFetchType
-	 * @see #setJoinFetch(XmlJoinFetchType)
-	 * @see org.eclipse.jpt.eclipselink.core.resource.orm.EclipseLinkOrmPackage#getXmlJoinFetch_JoinFetch()
-	 * @model
-	 * @generated
-	 */
-	public XmlJoinFetchType getJoinFetch()
-	{
-		return joinFetch;
-	}
-
-	/**
-	 * Sets the value of the '{@link org.eclipse.jpt.eclipselink.core.resource.orm.XmlOneToOneImpl#getJoinFetch <em>Join Fetch</em>}' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @param value the new value of the '<em>Join Fetch</em>' attribute.
-	 * @see org.eclipse.jpt.eclipselink.core.resource.orm.XmlJoinFetchType
-	 * @see #getJoinFetch()
-	 * @generated
-	 */
-	public void setJoinFetch(XmlJoinFetchType newJoinFetch)
-	{
-		XmlJoinFetchType oldJoinFetch = joinFetch;
-		joinFetch = newJoinFetch == null ? JOIN_FETCH_EDEFAULT : newJoinFetch;
-		if (eNotificationRequired())
-			eNotify(new ENotificationImpl(this, Notification.SET, EclipseLinkOrmPackage.XML_ONE_TO_ONE_IMPL__JOIN_FETCH, oldJoinFetch, joinFetch));
-	}
-
-	/**
-	 * Returns the value of the '<em><b>Access Methods</b></em>' containment reference.
-	 * <!-- begin-user-doc -->
-	 * <p>
-	 * If the meaning of the '<em>Access Methods</em>' containment reference isn't clear,
-	 * there really should be more of a description here...
-	 * </p>
-	 * <!-- end-user-doc -->
-	 * @return the value of the '<em>Access Methods</em>' containment reference.
-	 * @see #setAccessMethods(XmlAccessMethods)
-	 * @see org.eclipse.jpt.eclipselink.core.resource.orm.EclipseLinkOrmPackage#getXmlAccessMethodsHolder_AccessMethods()
-	 * @model containment="true"
-	 * @generated
-	 */
-	public XmlAccessMethods getAccessMethods()
-	{
-		return accessMethods;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public NotificationChain basicSetAccessMethods(XmlAccessMethods newAccessMethods, NotificationChain msgs)
-	{
-		XmlAccessMethods oldAccessMethods = accessMethods;
-		accessMethods = newAccessMethods;
-		if (eNotificationRequired())
-		{
-			ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, EclipseLinkOrmPackage.XML_ONE_TO_ONE_IMPL__ACCESS_METHODS, oldAccessMethods, newAccessMethods);
-			if (msgs == null) msgs = notification; else msgs.add(notification);
-		}
-		return msgs;
-	}
-
-	/**
-	 * Sets the value of the '{@link org.eclipse.jpt.eclipselink.core.resource.orm.XmlOneToOneImpl#getAccessMethods <em>Access Methods</em>}' containment reference.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @param value the new value of the '<em>Access Methods</em>' containment reference.
-	 * @see #getAccessMethods()
-	 * @generated
-	 */
-	public void setAccessMethods(XmlAccessMethods newAccessMethods)
-	{
-		if (newAccessMethods != accessMethods)
-		{
-			NotificationChain msgs = null;
-			if (accessMethods != null)
-				msgs = ((InternalEObject)accessMethods).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - EclipseLinkOrmPackage.XML_ONE_TO_ONE_IMPL__ACCESS_METHODS, null, msgs);
-			if (newAccessMethods != null)
-				msgs = ((InternalEObject)newAccessMethods).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - EclipseLinkOrmPackage.XML_ONE_TO_ONE_IMPL__ACCESS_METHODS, null, msgs);
-			msgs = basicSetAccessMethods(newAccessMethods, msgs);
-			if (msgs != null) msgs.dispatch();
-		}
-		else if (eNotificationRequired())
-			eNotify(new ENotificationImpl(this, Notification.SET, EclipseLinkOrmPackage.XML_ONE_TO_ONE_IMPL__ACCESS_METHODS, newAccessMethods, newAccessMethods));
-	}
-
-	/**
-	 * Returns the value of the '<em><b>Properties</b></em>' containment reference list.
-	 * The list contents are of type {@link org.eclipse.jpt.eclipselink.core.resource.orm.XmlProperty}.
-	 * <!-- begin-user-doc -->
-	 * <p>
-	 * If the meaning of the '<em>Properties</em>' containment reference list isn't clear,
-	 * there really should be more of a description here...
-	 * </p>
-	 * <!-- end-user-doc -->
-	 * @return the value of the '<em>Properties</em>' containment reference list.
-	 * @see org.eclipse.jpt.eclipselink.core.resource.orm.EclipseLinkOrmPackage#getXmlOneToOne_Properties()
-	 * @model containment="true"
-	 * @generated
-	 */
-	public EList<XmlProperty> getProperties()
-	{
-		if (properties == null)
-		{
-			properties = new EObjectContainmentEList<XmlProperty>(XmlProperty.class, this, EclipseLinkOrmPackage.XML_ONE_TO_ONE_IMPL__PROPERTIES);
-		}
-		return properties;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs)
-	{
-		switch (featureID)
-		{
-			case EclipseLinkOrmPackage.XML_ONE_TO_ONE_IMPL__ACCESS_METHODS:
-				return basicSetAccessMethods(null, msgs);
-			case EclipseLinkOrmPackage.XML_ONE_TO_ONE_IMPL__PROPERTIES:
-				return ((InternalEList<?>)getProperties()).basicRemove(otherEnd, msgs);
-		}
-		return super.eInverseRemove(otherEnd, featureID, msgs);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public Object eGet(int featureID, boolean resolve, boolean coreType)
-	{
-		switch (featureID)
-		{
-			case EclipseLinkOrmPackage.XML_ONE_TO_ONE_IMPL__PRIVATE_OWNED:
-				return isPrivateOwned() ? Boolean.TRUE : Boolean.FALSE;
-			case EclipseLinkOrmPackage.XML_ONE_TO_ONE_IMPL__JOIN_FETCH:
-				return getJoinFetch();
-			case EclipseLinkOrmPackage.XML_ONE_TO_ONE_IMPL__ACCESS_METHODS:
-				return getAccessMethods();
-			case EclipseLinkOrmPackage.XML_ONE_TO_ONE_IMPL__PROPERTIES:
-				return getProperties();
-		}
-		return super.eGet(featureID, resolve, coreType);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@SuppressWarnings("unchecked")
-	@Override
-	public void eSet(int featureID, Object newValue)
-	{
-		switch (featureID)
-		{
-			case EclipseLinkOrmPackage.XML_ONE_TO_ONE_IMPL__PRIVATE_OWNED:
-				setPrivateOwned(((Boolean)newValue).booleanValue());
-				return;
-			case EclipseLinkOrmPackage.XML_ONE_TO_ONE_IMPL__JOIN_FETCH:
-				setJoinFetch((XmlJoinFetchType)newValue);
-				return;
-			case EclipseLinkOrmPackage.XML_ONE_TO_ONE_IMPL__ACCESS_METHODS:
-				setAccessMethods((XmlAccessMethods)newValue);
-				return;
-			case EclipseLinkOrmPackage.XML_ONE_TO_ONE_IMPL__PROPERTIES:
-				getProperties().clear();
-				getProperties().addAll((Collection<? extends XmlProperty>)newValue);
-				return;
-		}
-		super.eSet(featureID, newValue);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public void eUnset(int featureID)
-	{
-		switch (featureID)
-		{
-			case EclipseLinkOrmPackage.XML_ONE_TO_ONE_IMPL__PRIVATE_OWNED:
-				setPrivateOwned(PRIVATE_OWNED_EDEFAULT);
-				return;
-			case EclipseLinkOrmPackage.XML_ONE_TO_ONE_IMPL__JOIN_FETCH:
-				setJoinFetch(JOIN_FETCH_EDEFAULT);
-				return;
-			case EclipseLinkOrmPackage.XML_ONE_TO_ONE_IMPL__ACCESS_METHODS:
-				setAccessMethods((XmlAccessMethods)null);
-				return;
-			case EclipseLinkOrmPackage.XML_ONE_TO_ONE_IMPL__PROPERTIES:
-				getProperties().clear();
-				return;
-		}
-		super.eUnset(featureID);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public boolean eIsSet(int featureID)
-	{
-		switch (featureID)
-		{
-			case EclipseLinkOrmPackage.XML_ONE_TO_ONE_IMPL__PRIVATE_OWNED:
-				return privateOwned != PRIVATE_OWNED_EDEFAULT;
-			case EclipseLinkOrmPackage.XML_ONE_TO_ONE_IMPL__JOIN_FETCH:
-				return joinFetch != JOIN_FETCH_EDEFAULT;
-			case EclipseLinkOrmPackage.XML_ONE_TO_ONE_IMPL__ACCESS_METHODS:
-				return accessMethods != null;
-			case EclipseLinkOrmPackage.XML_ONE_TO_ONE_IMPL__PROPERTIES:
-				return properties != null && !properties.isEmpty();
-		}
-		return super.eIsSet(featureID);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public int eBaseStructuralFeatureID(int derivedFeatureID, Class<?> baseClass)
-	{
-		if (baseClass == XmlPrivateOwned.class)
-		{
-			switch (derivedFeatureID)
-			{
-				case EclipseLinkOrmPackage.XML_ONE_TO_ONE_IMPL__PRIVATE_OWNED: return EclipseLinkOrmPackage.XML_PRIVATE_OWNED__PRIVATE_OWNED;
-				default: return -1;
-			}
-		}
-		if (baseClass == XmlJoinFetch.class)
-		{
-			switch (derivedFeatureID)
-			{
-				case EclipseLinkOrmPackage.XML_ONE_TO_ONE_IMPL__JOIN_FETCH: return EclipseLinkOrmPackage.XML_JOIN_FETCH__JOIN_FETCH;
-				default: return -1;
-			}
-		}
-		if (baseClass == XmlAccessMethodsHolder.class)
-		{
-			switch (derivedFeatureID)
-			{
-				case EclipseLinkOrmPackage.XML_ONE_TO_ONE_IMPL__ACCESS_METHODS: return EclipseLinkOrmPackage.XML_ACCESS_METHODS_HOLDER__ACCESS_METHODS;
-				default: return -1;
-			}
-		}
-		if (baseClass == XmlOneToOne.class)
-		{
-			switch (derivedFeatureID)
-			{
-				case EclipseLinkOrmPackage.XML_ONE_TO_ONE_IMPL__PROPERTIES: return EclipseLinkOrmPackage.XML_ONE_TO_ONE__PROPERTIES;
-				default: return -1;
-			}
-		}
-		return super.eBaseStructuralFeatureID(derivedFeatureID, baseClass);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public int eDerivedStructuralFeatureID(int baseFeatureID, Class<?> baseClass)
-	{
-		if (baseClass == XmlPrivateOwned.class)
-		{
-			switch (baseFeatureID)
-			{
-				case EclipseLinkOrmPackage.XML_PRIVATE_OWNED__PRIVATE_OWNED: return EclipseLinkOrmPackage.XML_ONE_TO_ONE_IMPL__PRIVATE_OWNED;
-				default: return -1;
-			}
-		}
-		if (baseClass == XmlJoinFetch.class)
-		{
-			switch (baseFeatureID)
-			{
-				case EclipseLinkOrmPackage.XML_JOIN_FETCH__JOIN_FETCH: return EclipseLinkOrmPackage.XML_ONE_TO_ONE_IMPL__JOIN_FETCH;
-				default: return -1;
-			}
-		}
-		if (baseClass == XmlAccessMethodsHolder.class)
-		{
-			switch (baseFeatureID)
-			{
-				case EclipseLinkOrmPackage.XML_ACCESS_METHODS_HOLDER__ACCESS_METHODS: return EclipseLinkOrmPackage.XML_ONE_TO_ONE_IMPL__ACCESS_METHODS;
-				default: return -1;
-			}
-		}
-		if (baseClass == XmlOneToOne.class)
-		{
-			switch (baseFeatureID)
-			{
-				case EclipseLinkOrmPackage.XML_ONE_TO_ONE__PROPERTIES: return EclipseLinkOrmPackage.XML_ONE_TO_ONE_IMPL__PROPERTIES;
-				default: return -1;
-			}
-		}
-		return super.eDerivedStructuralFeatureID(baseFeatureID, baseClass);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public String toString()
-	{
-		if (eIsProxy()) return super.toString();
-
-		StringBuffer result = new StringBuffer(super.toString());
-		result.append(" (privateOwned: ");
-		result.append(privateOwned);
-		result.append(", joinFetch: ");
-		result.append(joinFetch);
-		result.append(')');
-		return result.toString();
-	}
-	
-	public TextRange getPrivateOwnedTextRange() {
-		return getElementTextRange(EclipseLinkOrmXmlMapper.PRIVATE_OWNED);
-	}
-	
-	public TextRange getJoinFetchTextRange() {
-		return getElementTextRange(EclipseLinkOrmXmlMapper.JOIN_FETCH);
-	}
-}
diff --git a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/resource/orm/XmlOptimisticLocking.java b/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/resource/orm/XmlOptimisticLocking.java
deleted file mode 100644
index 3d8a56a..0000000
--- a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/resource/orm/XmlOptimisticLocking.java
+++ /dev/null
@@ -1,349 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.eclipselink.core.resource.orm;
-
-import java.util.Collection;
-
-import org.eclipse.emf.common.notify.Notification;
-import org.eclipse.emf.common.notify.NotificationChain;
-
-import org.eclipse.emf.common.util.EList;
-
-import org.eclipse.emf.ecore.EClass;
-import org.eclipse.emf.ecore.InternalEObject;
-
-import org.eclipse.emf.ecore.impl.ENotificationImpl;
-
-import org.eclipse.emf.ecore.util.EObjectContainmentEList;
-import org.eclipse.emf.ecore.util.InternalEList;
-
-
-import org.eclipse.jpt.core.resource.orm.XmlColumn;
-import org.eclipse.jpt.core.resource.xml.AbstractJpaEObject;
-import org.eclipse.jpt.core.resource.xml.JpaEObject;
-
-/**
- * <!-- begin-user-doc -->
- * A representation of the model object '<em><b>Xml Optimistic Locking</b></em>'.
- *  
- * Provisional API: This interface is part of an interim API that is still
- * under development and expected to change significantly before reaching
- * stability. It is available at this early stage to solicit feedback from
- * pioneering adopters on the understanding that any code that uses this API
- * will almost certainly be broken (repeatedly) as the API evolves.
- * 
- * @version 2.2
- * @since 2.2
- * 
- * <!-- end-user-doc -->
- *
- * <p>
- * The following features are supported:
- * <ul>
- *   <li>{@link org.eclipse.jpt.eclipselink.core.resource.orm.XmlOptimisticLocking#getType <em>Type</em>}</li>
- *   <li>{@link org.eclipse.jpt.eclipselink.core.resource.orm.XmlOptimisticLocking#getCascade <em>Cascade</em>}</li>
- *   <li>{@link org.eclipse.jpt.eclipselink.core.resource.orm.XmlOptimisticLocking#getSelectedColumns <em>Selected Columns</em>}</li>
- * </ul>
- * </p>
- *
- * @see org.eclipse.jpt.eclipselink.core.resource.orm.EclipseLinkOrmPackage#getXmlOptimisticLocking()
- * @model kind="class"
- * @extends JpaEObject
- * @generated
- */
-public class XmlOptimisticLocking extends AbstractJpaEObject implements JpaEObject
-{
-	/**
-	 * changed this to null and removed the generated flag so emf won't generate over it
-	 * we don't want a default for enums, just null if the tag does not exist
-	 */
-	protected static final XmlOptimisticLockingType TYPE_EDEFAULT = null;
-
-	/**
-	 * The cached value of the '{@link #getType() <em>Type</em>}' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see #getType()
-	 * @generated
-	 * @ordered
-	 */
-	protected XmlOptimisticLockingType type = TYPE_EDEFAULT;
-
-	/**
-	 * The default value of the '{@link #getCascade() <em>Cascade</em>}' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see #getCascade()
-	 * @generated
-	 * @ordered
-	 */
-	protected static final Boolean CASCADE_EDEFAULT = null;
-
-	/**
-	 * The cached value of the '{@link #getCascade() <em>Cascade</em>}' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see #getCascade()
-	 * @generated
-	 * @ordered
-	 */
-	protected Boolean cascade = CASCADE_EDEFAULT;
-
-	/**
-	 * The cached value of the '{@link #getSelectedColumns() <em>Selected Columns</em>}' containment reference list.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see #getSelectedColumns()
-	 * @generated
-	 * @ordered
-	 */
-	protected EList<XmlColumn> selectedColumns;
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	protected XmlOptimisticLocking()
-	{
-		super();
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	protected EClass eStaticClass()
-	{
-		return EclipseLinkOrmPackage.Literals.XML_OPTIMISTIC_LOCKING;
-	}
-
-	/**
-	 * Returns the value of the '<em><b>Type</b></em>' attribute.
-	 * The literals are from the enumeration {@link org.eclipse.jpt.eclipselink.core.resource.orm.XmlOptimisticLockingType}.
-	 * <!-- begin-user-doc -->
-	 * <p>
-	 * If the meaning of the '<em>Type</em>' attribute isn't clear,
-	 * there really should be more of a description here...
-	 * </p>
-	 * <!-- end-user-doc -->
-	 * @return the value of the '<em>Type</em>' attribute.
-	 * @see org.eclipse.jpt.eclipselink.core.resource.orm.XmlOptimisticLockingType
-	 * @see #setType(XmlOptimisticLockingType)
-	 * @see org.eclipse.jpt.eclipselink.core.resource.orm.EclipseLinkOrmPackage#getXmlOptimisticLocking_Type()
-	 * @model
-	 * @generated
-	 */
-	public XmlOptimisticLockingType getType()
-	{
-		return type;
-	}
-
-	/**
-	 * Sets the value of the '{@link org.eclipse.jpt.eclipselink.core.resource.orm.XmlOptimisticLocking#getType <em>Type</em>}' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @param value the new value of the '<em>Type</em>' attribute.
-	 * @see org.eclipse.jpt.eclipselink.core.resource.orm.XmlOptimisticLockingType
-	 * @see #getType()
-	 * @generated
-	 */
-	public void setType(XmlOptimisticLockingType newType)
-	{
-		XmlOptimisticLockingType oldType = type;
-		type = newType == null ? TYPE_EDEFAULT : newType;
-		if (eNotificationRequired())
-			eNotify(new ENotificationImpl(this, Notification.SET, EclipseLinkOrmPackage.XML_OPTIMISTIC_LOCKING__TYPE, oldType, type));
-	}
-
-	/**
-	 * Returns the value of the '<em><b>Cascade</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <p>
-	 * If the meaning of the '<em>Cascade</em>' attribute isn't clear,
-	 * there really should be more of a description here...
-	 * </p>
-	 * <!-- end-user-doc -->
-	 * @return the value of the '<em>Cascade</em>' attribute.
-	 * @see #setCascade(Boolean)
-	 * @see org.eclipse.jpt.eclipselink.core.resource.orm.EclipseLinkOrmPackage#getXmlOptimisticLocking_Cascade()
-	 * @model dataType="org.eclipse.emf.ecore.xml.type.BooleanObject"
-	 * @generated
-	 */
-	public Boolean getCascade()
-	{
-		return cascade;
-	}
-
-	/**
-	 * Sets the value of the '{@link org.eclipse.jpt.eclipselink.core.resource.orm.XmlOptimisticLocking#getCascade <em>Cascade</em>}' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @param value the new value of the '<em>Cascade</em>' attribute.
-	 * @see #getCascade()
-	 * @generated
-	 */
-	public void setCascade(Boolean newCascade)
-	{
-		Boolean oldCascade = cascade;
-		cascade = newCascade;
-		if (eNotificationRequired())
-			eNotify(new ENotificationImpl(this, Notification.SET, EclipseLinkOrmPackage.XML_OPTIMISTIC_LOCKING__CASCADE, oldCascade, cascade));
-	}
-
-	/**
-	 * Returns the value of the '<em><b>Selected Columns</b></em>' containment reference list.
-	 * The list contents are of type {@link org.eclipse.jpt.core.resource.orm.XmlColumn}.
-	 * <!-- begin-user-doc -->
-	 * <p>
-	 * If the meaning of the '<em>Selected Columns</em>' containment reference list isn't clear,
-	 * there really should be more of a description here...
-	 * </p>
-	 * <!-- end-user-doc -->
-	 * @return the value of the '<em>Selected Columns</em>' containment reference list.
-	 * @see org.eclipse.jpt.eclipselink.core.resource.orm.EclipseLinkOrmPackage#getXmlOptimisticLocking_SelectedColumns()
-	 * @model containment="true"
-	 * @generated
-	 */
-	public EList<XmlColumn> getSelectedColumns()
-	{
-		if (selectedColumns == null)
-		{
-			selectedColumns = new EObjectContainmentEList<XmlColumn>(XmlColumn.class, this, EclipseLinkOrmPackage.XML_OPTIMISTIC_LOCKING__SELECTED_COLUMNS);
-		}
-		return selectedColumns;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs)
-	{
-		switch (featureID)
-		{
-			case EclipseLinkOrmPackage.XML_OPTIMISTIC_LOCKING__SELECTED_COLUMNS:
-				return ((InternalEList<?>)getSelectedColumns()).basicRemove(otherEnd, msgs);
-		}
-		return super.eInverseRemove(otherEnd, featureID, msgs);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public Object eGet(int featureID, boolean resolve, boolean coreType)
-	{
-		switch (featureID)
-		{
-			case EclipseLinkOrmPackage.XML_OPTIMISTIC_LOCKING__TYPE:
-				return getType();
-			case EclipseLinkOrmPackage.XML_OPTIMISTIC_LOCKING__CASCADE:
-				return getCascade();
-			case EclipseLinkOrmPackage.XML_OPTIMISTIC_LOCKING__SELECTED_COLUMNS:
-				return getSelectedColumns();
-		}
-		return super.eGet(featureID, resolve, coreType);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@SuppressWarnings("unchecked")
-	@Override
-	public void eSet(int featureID, Object newValue)
-	{
-		switch (featureID)
-		{
-			case EclipseLinkOrmPackage.XML_OPTIMISTIC_LOCKING__TYPE:
-				setType((XmlOptimisticLockingType)newValue);
-				return;
-			case EclipseLinkOrmPackage.XML_OPTIMISTIC_LOCKING__CASCADE:
-				setCascade((Boolean)newValue);
-				return;
-			case EclipseLinkOrmPackage.XML_OPTIMISTIC_LOCKING__SELECTED_COLUMNS:
-				getSelectedColumns().clear();
-				getSelectedColumns().addAll((Collection<? extends XmlColumn>)newValue);
-				return;
-		}
-		super.eSet(featureID, newValue);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public void eUnset(int featureID)
-	{
-		switch (featureID)
-		{
-			case EclipseLinkOrmPackage.XML_OPTIMISTIC_LOCKING__TYPE:
-				setType(TYPE_EDEFAULT);
-				return;
-			case EclipseLinkOrmPackage.XML_OPTIMISTIC_LOCKING__CASCADE:
-				setCascade(CASCADE_EDEFAULT);
-				return;
-			case EclipseLinkOrmPackage.XML_OPTIMISTIC_LOCKING__SELECTED_COLUMNS:
-				getSelectedColumns().clear();
-				return;
-		}
-		super.eUnset(featureID);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public boolean eIsSet(int featureID)
-	{
-		switch (featureID)
-		{
-			case EclipseLinkOrmPackage.XML_OPTIMISTIC_LOCKING__TYPE:
-				return type != TYPE_EDEFAULT;
-			case EclipseLinkOrmPackage.XML_OPTIMISTIC_LOCKING__CASCADE:
-				return CASCADE_EDEFAULT == null ? cascade != null : !CASCADE_EDEFAULT.equals(cascade);
-			case EclipseLinkOrmPackage.XML_OPTIMISTIC_LOCKING__SELECTED_COLUMNS:
-				return selectedColumns != null && !selectedColumns.isEmpty();
-		}
-		return super.eIsSet(featureID);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public String toString()
-	{
-		if (eIsProxy()) return super.toString();
-
-		StringBuffer result = new StringBuffer(super.toString());
-		result.append(" (type: ");
-		result.append(type);
-		result.append(", cascade: ");
-		result.append(cascade);
-		result.append(')');
-		return result.toString();
-	}
-
-} // XmlOptimisticLocking
diff --git a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/resource/orm/XmlOptimisticLockingType.java b/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/resource/orm/XmlOptimisticLockingType.java
deleted file mode 100644
index 0a7b985..0000000
--- a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/resource/orm/XmlOptimisticLockingType.java
+++ /dev/null
@@ -1,294 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.eclipselink.core.resource.orm;
-
-import java.util.Arrays;
-import java.util.Collections;
-import java.util.List;
-
-import org.eclipse.emf.common.util.Enumerator;
-
-/**
- * <!-- begin-user-doc -->
- * A representation of the literals of the enumeration '<em><b>Xml Optimistic Locking Type</b></em>',
- * and utility methods for working with them.
- *  
- * Provisional API: This interface is part of an interim API that is still
- * under development and expected to change significantly before reaching
- * stability. It is available at this early stage to solicit feedback from
- * pioneering adopters on the understanding that any code that uses this API
- * will almost certainly be broken (repeatedly) as the API evolves.
- * 
- * @version 2.2
- * @since 2.2
- * 
- * <!-- end-user-doc -->
- * @see org.eclipse.jpt.eclipselink.core.resource.orm.EclipseLinkOrmPackage#getXmlOptimisticLockingType()
- * @model
- * @generated
- */
-public enum XmlOptimisticLockingType implements Enumerator
-{
-	/**
-	 * The '<em><b>ALL COLUMNS</b></em>' literal object.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see #ALL_COLUMNS_VALUE
-	 * @generated
-	 * @ordered
-	 */
-	ALL_COLUMNS(0, "ALL_COLUMNS", "ALL_COLUMNS"),
-
-	/**
-	 * The '<em><b>CHANGED COLUMNS</b></em>' literal object.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see #CHANGED_COLUMNS_VALUE
-	 * @generated
-	 * @ordered
-	 */
-	CHANGED_COLUMNS(1, "CHANGED_COLUMNS", "CHANGED_COLUMNS"),
-
-	/**
-	 * The '<em><b>SELECTED COLUMNS</b></em>' literal object.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see #SELECTED_COLUMNS_VALUE
-	 * @generated
-	 * @ordered
-	 */
-	SELECTED_COLUMNS(2, "SELECTED_COLUMNS", "SELECTED_COLUMNS"),
-
-	/**
-	 * The '<em><b>VERSION COLUMN</b></em>' literal object.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see #VERSION_COLUMN_VALUE
-	 * @generated
-	 * @ordered
-	 */
-	VERSION_COLUMN(3, "VERSION_COLUMN", "VERSION_COLUMN");
-
-	/**
-	 * The '<em><b>ALL COLUMNS</b></em>' literal value.
-	 * <!-- begin-user-doc -->
-	 * <p>
-	 * If the meaning of '<em><b>ALL COLUMNS</b></em>' literal object isn't clear,
-	 * there really should be more of a description here...
-	 * </p>
-	 * <!-- end-user-doc -->
-	 * @see #ALL_COLUMNS
-	 * @model
-	 * @generated
-	 * @ordered
-	 */
-	public static final int ALL_COLUMNS_VALUE = 0;
-
-	/**
-	 * The '<em><b>CHANGED COLUMNS</b></em>' literal value.
-	 * <!-- begin-user-doc -->
-	 * <p>
-	 * If the meaning of '<em><b>CHANGED COLUMNS</b></em>' literal object isn't clear,
-	 * there really should be more of a description here...
-	 * </p>
-	 * <!-- end-user-doc -->
-	 * @see #CHANGED_COLUMNS
-	 * @model
-	 * @generated
-	 * @ordered
-	 */
-	public static final int CHANGED_COLUMNS_VALUE = 1;
-
-	/**
-	 * The '<em><b>SELECTED COLUMNS</b></em>' literal value.
-	 * <!-- begin-user-doc -->
-	 * <p>
-	 * If the meaning of '<em><b>SELECTED COLUMNS</b></em>' literal object isn't clear,
-	 * there really should be more of a description here...
-	 * </p>
-	 * <!-- end-user-doc -->
-	 * @see #SELECTED_COLUMNS
-	 * @model
-	 * @generated
-	 * @ordered
-	 */
-	public static final int SELECTED_COLUMNS_VALUE = 2;
-
-	/**
-	 * The '<em><b>VERSION COLUMN</b></em>' literal value.
-	 * <!-- begin-user-doc -->
-	 * <p>
-	 * If the meaning of '<em><b>VERSION COLUMN</b></em>' literal object isn't clear,
-	 * there really should be more of a description here...
-	 * </p>
-	 * <!-- end-user-doc -->
-	 * @see #VERSION_COLUMN
-	 * @model
-	 * @generated
-	 * @ordered
-	 */
-	public static final int VERSION_COLUMN_VALUE = 3;
-
-	/**
-	 * An array of all the '<em><b>Xml Optimistic Locking Type</b></em>' enumerators.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	private static final XmlOptimisticLockingType[] VALUES_ARRAY =
-		new XmlOptimisticLockingType[]
-		{
-			ALL_COLUMNS,
-			CHANGED_COLUMNS,
-			SELECTED_COLUMNS,
-			VERSION_COLUMN,
-		};
-
-	/**
-	 * A public read-only list of all the '<em><b>Xml Optimistic Locking Type</b></em>' enumerators.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public static final List<XmlOptimisticLockingType> VALUES = Collections.unmodifiableList(Arrays.asList(VALUES_ARRAY));
-
-	/**
-	 * Returns the '<em><b>Xml Optimistic Locking Type</b></em>' literal with the specified literal value.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public static XmlOptimisticLockingType get(String literal)
-	{
-		for (int i = 0; i < VALUES_ARRAY.length; ++i)
-		{
-			XmlOptimisticLockingType result = VALUES_ARRAY[i];
-			if (result.toString().equals(literal))
-			{
-				return result;
-			}
-		}
-		return null;
-	}
-
-	/**
-	 * Returns the '<em><b>Xml Optimistic Locking Type</b></em>' literal with the specified name.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public static XmlOptimisticLockingType getByName(String name)
-	{
-		for (int i = 0; i < VALUES_ARRAY.length; ++i)
-		{
-			XmlOptimisticLockingType result = VALUES_ARRAY[i];
-			if (result.getName().equals(name))
-			{
-				return result;
-			}
-		}
-		return null;
-	}
-
-	/**
-	 * Returns the '<em><b>Xml Optimistic Locking Type</b></em>' literal with the specified integer value.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public static XmlOptimisticLockingType get(int value)
-	{
-		switch (value)
-		{
-			case ALL_COLUMNS_VALUE: return ALL_COLUMNS;
-			case CHANGED_COLUMNS_VALUE: return CHANGED_COLUMNS;
-			case SELECTED_COLUMNS_VALUE: return SELECTED_COLUMNS;
-			case VERSION_COLUMN_VALUE: return VERSION_COLUMN;
-		}
-		return null;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	private final int value;
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	private final String name;
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	private final String literal;
-
-	/**
-	 * Only this class can construct instances.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	private XmlOptimisticLockingType(int value, String name, String literal)
-	{
-		this.value = value;
-		this.name = name;
-		this.literal = literal;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public int getValue()
-	{
-	  return value;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public String getName()
-	{
-	  return name;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public String getLiteral()
-	{
-	  return literal;
-	}
-
-	/**
-	 * Returns the literal value of the enumerator, which is its string representation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public String toString()
-	{
-		return literal;
-	}
-	
-} //XmlOptimisticLockingType
diff --git a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/resource/orm/XmlPersistenceUnitMetadata.java b/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/resource/orm/XmlPersistenceUnitMetadata.java
deleted file mode 100644
index 366f7f1..0000000
--- a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/resource/orm/XmlPersistenceUnitMetadata.java
+++ /dev/null
@@ -1,205 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.eclipselink.core.resource.orm;
-
-import org.eclipse.emf.common.notify.Notification;
-
-import org.eclipse.emf.ecore.EClass;
-
-import org.eclipse.emf.ecore.impl.ENotificationImpl;
-
-/**
- * <!-- begin-user-doc -->
- * A representation of the model object '<em><b>Xml Persistence Unit Metadata</b></em>'.
- *  
- * Provisional API: This interface is part of an interim API that is still
- * under development and expected to change significantly before reaching
- * stability. It is available at this early stage to solicit feedback from
- * pioneering adopters on the understanding that any code that uses this API
- * will almost certainly be broken (repeatedly) as the API evolves.
- * 
- * @version 2.2
- * @since 2.2
- *
- * <!-- end-user-doc -->
- *
- * <p>
- * The following features are supported:
- * <ul>
- *   <li>{@link org.eclipse.jpt.eclipselink.core.resource.orm.XmlPersistenceUnitMetadata#isExcludeDefaultMappings <em>Exclude Default Mappings</em>}</li>
- * </ul>
- * </p>
- *
- * @see org.eclipse.jpt.eclipselink.core.resource.orm.EclipseLinkOrmPackage#getXmlPersistenceUnitMetadata()
- * @model kind="class"
- * @generated
- */
-public class XmlPersistenceUnitMetadata extends org.eclipse.jpt.core.resource.orm.XmlPersistenceUnitMetadata
-{
-	/**
-	 * The default value of the '{@link #isExcludeDefaultMappings() <em>Exclude Default Mappings</em>}' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see #isExcludeDefaultMappings()
-	 * @generated
-	 * @ordered
-	 */
-	protected static final boolean EXCLUDE_DEFAULT_MAPPINGS_EDEFAULT = false;
-
-	/**
-	 * The cached value of the '{@link #isExcludeDefaultMappings() <em>Exclude Default Mappings</em>}' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see #isExcludeDefaultMappings()
-	 * @generated
-	 * @ordered
-	 */
-	protected boolean excludeDefaultMappings = EXCLUDE_DEFAULT_MAPPINGS_EDEFAULT;
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	protected XmlPersistenceUnitMetadata()
-	{
-		super();
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	protected EClass eStaticClass()
-	{
-		return EclipseLinkOrmPackage.Literals.XML_PERSISTENCE_UNIT_METADATA;
-	}
-
-	/**
-	 * Returns the value of the '<em><b>Exclude Default Mappings</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <p>
-	 * If the meaning of the '<em>Exclude Default Mappings</em>' attribute isn't clear,
-	 * there really should be more of a description here...
-	 * </p>
-	 * <!-- end-user-doc -->
-	 * @return the value of the '<em>Exclude Default Mappings</em>' attribute.
-	 * @see #setExcludeDefaultMappings(boolean)
-	 * @see org.eclipse.jpt.eclipselink.core.resource.orm.EclipseLinkOrmPackage#getXmlPersistenceUnitMetadata_ExcludeDefaultMappings()
-	 * @model dataType="org.eclipse.emf.ecore.xml.type.Boolean"
-	 * @generated
-	 */
-	public boolean isExcludeDefaultMappings()
-	{
-		return excludeDefaultMappings;
-	}
-
-	/**
-	 * Sets the value of the '{@link org.eclipse.jpt.eclipselink.core.resource.orm.XmlPersistenceUnitMetadata#isExcludeDefaultMappings <em>Exclude Default Mappings</em>}' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @param value the new value of the '<em>Exclude Default Mappings</em>' attribute.
-	 * @see #isExcludeDefaultMappings()
-	 * @generated
-	 */
-	public void setExcludeDefaultMappings(boolean newExcludeDefaultMappings)
-	{
-		boolean oldExcludeDefaultMappings = excludeDefaultMappings;
-		excludeDefaultMappings = newExcludeDefaultMappings;
-		if (eNotificationRequired())
-			eNotify(new ENotificationImpl(this, Notification.SET, EclipseLinkOrmPackage.XML_PERSISTENCE_UNIT_METADATA__EXCLUDE_DEFAULT_MAPPINGS, oldExcludeDefaultMappings, excludeDefaultMappings));
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public Object eGet(int featureID, boolean resolve, boolean coreType)
-	{
-		switch (featureID)
-		{
-			case EclipseLinkOrmPackage.XML_PERSISTENCE_UNIT_METADATA__EXCLUDE_DEFAULT_MAPPINGS:
-				return isExcludeDefaultMappings() ? Boolean.TRUE : Boolean.FALSE;
-		}
-		return super.eGet(featureID, resolve, coreType);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public void eSet(int featureID, Object newValue)
-	{
-		switch (featureID)
-		{
-			case EclipseLinkOrmPackage.XML_PERSISTENCE_UNIT_METADATA__EXCLUDE_DEFAULT_MAPPINGS:
-				setExcludeDefaultMappings(((Boolean)newValue).booleanValue());
-				return;
-		}
-		super.eSet(featureID, newValue);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public void eUnset(int featureID)
-	{
-		switch (featureID)
-		{
-			case EclipseLinkOrmPackage.XML_PERSISTENCE_UNIT_METADATA__EXCLUDE_DEFAULT_MAPPINGS:
-				setExcludeDefaultMappings(EXCLUDE_DEFAULT_MAPPINGS_EDEFAULT);
-				return;
-		}
-		super.eUnset(featureID);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public boolean eIsSet(int featureID)
-	{
-		switch (featureID)
-		{
-			case EclipseLinkOrmPackage.XML_PERSISTENCE_UNIT_METADATA__EXCLUDE_DEFAULT_MAPPINGS:
-				return excludeDefaultMappings != EXCLUDE_DEFAULT_MAPPINGS_EDEFAULT;
-		}
-		return super.eIsSet(featureID);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public String toString()
-	{
-		if (eIsProxy()) return super.toString();
-
-		StringBuffer result = new StringBuffer(super.toString());
-		result.append(" (excludeDefaultMappings: ");
-		result.append(excludeDefaultMappings);
-		result.append(')');
-		return result.toString();
-	}
-
-} // XmlPersistenceUnitMetadata
diff --git a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/resource/orm/XmlPrivateOwned.java b/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/resource/orm/XmlPrivateOwned.java
deleted file mode 100644
index bc65b16..0000000
--- a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/resource/orm/XmlPrivateOwned.java
+++ /dev/null
@@ -1,75 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008, 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.eclipselink.core.resource.orm;
-
-import org.eclipse.jpt.core.resource.xml.JpaEObject;
-import org.eclipse.jpt.core.utility.TextRange;
-
-/**
- * <!-- begin-user-doc -->
- * 
- * A representation of the model object '<em><b>Xml Private Owned</b></em>'.
- *  
- * Provisional API: This interface is part of an interim API that is still
- * under development and expected to change significantly before reaching
- * stability. It is available at this early stage to solicit feedback from
- * pioneering adopters on the understanding that any code that uses this API
- * will almost certainly be broken (repeatedly) as the API evolves.
- * 
- * @version 2.1
- * @since 2.1
- * 
- * <!-- end-user-doc -->
- *
- * <p>
- * The following features are supported:
- * <ul>
- *   <li>{@link org.eclipse.jpt.eclipselink.core.resource.orm.XmlPrivateOwned#isPrivateOwned <em>Private Owned</em>}</li>
- * </ul>
- * </p>
- *
- * @see org.eclipse.jpt.eclipselink.core.resource.orm.EclipseLinkOrmPackage#getXmlPrivateOwned()
- * @model kind="class" interface="true" abstract="true"
- * @extends JpaEObject
- * @generated
- */
-public interface XmlPrivateOwned extends JpaEObject
-{
-	/**
-	 * Returns the value of the '<em><b>Private Owned</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <p>
-	 * If the meaning of the '<em>Private Owned</em>' attribute isn't clear,
-	 * there really should be more of a description here...
-	 * </p>
-	 * <!-- end-user-doc -->
-	 * @return the value of the '<em>Private Owned</em>' attribute.
-	 * @see #setPrivateOwned(boolean)
-	 * @see org.eclipse.jpt.eclipselink.core.resource.orm.EclipseLinkOrmPackage#getXmlPrivateOwned_PrivateOwned()
-	 * @model dataType="org.eclipse.emf.ecore.xml.type.Boolean"
-	 * @generated
-	 */
-	boolean isPrivateOwned();
-
-	/**
-	 * Sets the value of the '{@link org.eclipse.jpt.eclipselink.core.resource.orm.XmlPrivateOwned#isPrivateOwned <em>Private Owned</em>}' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @param value the new value of the '<em>Private Owned</em>' attribute.
-	 * @see #isPrivateOwned()
-	 * @generated
-	 */
-	void setPrivateOwned(boolean value);
-	
-	/**
-	 * Return the {@link TextRange} for the private-owned attibute.
-	 */
-	TextRange getPrivateOwnedTextRange();
-}
\ No newline at end of file
diff --git a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/resource/orm/XmlProperty.java b/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/resource/orm/XmlProperty.java
deleted file mode 100644
index 70d6285..0000000
--- a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/resource/orm/XmlProperty.java
+++ /dev/null
@@ -1,335 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.eclipselink.core.resource.orm;
-
-import org.eclipse.emf.common.notify.Notification;
-
-import org.eclipse.emf.ecore.EClass;
-
-import org.eclipse.emf.ecore.impl.ENotificationImpl;
-
-import org.eclipse.jpt.core.resource.xml.AbstractJpaEObject;
-import org.eclipse.jpt.core.resource.xml.JpaEObject;
-
-/**
- * <!-- begin-user-doc -->
- * A representation of the model object '<em><b>Xml Property</b></em>'.
- * <!-- end-user-doc -->
- *
- * <p>
- * The following features are supported:
- * <ul>
- *   <li>{@link org.eclipse.jpt.eclipselink.core.resource.orm.XmlProperty#getName <em>Name</em>}</li>
- *   <li>{@link org.eclipse.jpt.eclipselink.core.resource.orm.XmlProperty#getValue <em>Value</em>}</li>
- *   <li>{@link org.eclipse.jpt.eclipselink.core.resource.orm.XmlProperty#getValueType <em>Value Type</em>}</li>
- * </ul>
- * </p>
- *
- * @see org.eclipse.jpt.eclipselink.core.resource.orm.EclipseLinkOrmPackage#getXmlProperty()
- * @model kind="class"
- * @extends JpaEObject
- * @generated
- */
-public class XmlProperty extends AbstractJpaEObject implements JpaEObject
-{
-	/**
-	 * The default value of the '{@link #getName() <em>Name</em>}' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see #getName()
-	 * @generated
-	 * @ordered
-	 */
-	protected static final String NAME_EDEFAULT = null;
-
-	/**
-	 * The cached value of the '{@link #getName() <em>Name</em>}' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see #getName()
-	 * @generated
-	 * @ordered
-	 */
-	protected String name = NAME_EDEFAULT;
-
-	/**
-	 * The default value of the '{@link #getValue() <em>Value</em>}' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see #getValue()
-	 * @generated
-	 * @ordered
-	 */
-	protected static final String VALUE_EDEFAULT = null;
-
-	/**
-	 * The cached value of the '{@link #getValue() <em>Value</em>}' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see #getValue()
-	 * @generated
-	 * @ordered
-	 */
-	protected String value = VALUE_EDEFAULT;
-
-	/**
-	 * The default value of the '{@link #getValueType() <em>Value Type</em>}' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see #getValueType()
-	 * @generated
-	 * @ordered
-	 */
-	protected static final String VALUE_TYPE_EDEFAULT = null;
-
-	/**
-	 * The cached value of the '{@link #getValueType() <em>Value Type</em>}' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see #getValueType()
-	 * @generated
-	 * @ordered
-	 */
-	protected String valueType = VALUE_TYPE_EDEFAULT;
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	protected XmlProperty()
-	{
-		super();
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	protected EClass eStaticClass()
-	{
-		return EclipseLinkOrmPackage.Literals.XML_PROPERTY;
-	}
-
-	/**
-	 * Returns the value of the '<em><b>Name</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <p>
-	 * If the meaning of the '<em>Name</em>' attribute isn't clear,
-	 * there really should be more of a description here...
-	 * </p>
-	 * <!-- end-user-doc -->
-	 * @return the value of the '<em>Name</em>' attribute.
-	 * @see #setName(String)
-	 * @see org.eclipse.jpt.eclipselink.core.resource.orm.EclipseLinkOrmPackage#getXmlProperty_Name()
-	 * @model dataType="org.eclipse.emf.ecore.xml.type.String"
-	 * @generated
-	 */
-	public String getName()
-	{
-		return name;
-	}
-
-	/**
-	 * Sets the value of the '{@link org.eclipse.jpt.eclipselink.core.resource.orm.XmlProperty#getName <em>Name</em>}' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @param value the new value of the '<em>Name</em>' attribute.
-	 * @see #getName()
-	 * @generated
-	 */
-	public void setName(String newName)
-	{
-		String oldName = name;
-		name = newName;
-		if (eNotificationRequired())
-			eNotify(new ENotificationImpl(this, Notification.SET, EclipseLinkOrmPackage.XML_PROPERTY__NAME, oldName, name));
-	}
-
-	/**
-	 * Returns the value of the '<em><b>Value</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <p>
-	 * If the meaning of the '<em>Value</em>' attribute isn't clear,
-	 * there really should be more of a description here...
-	 * </p>
-	 * <!-- end-user-doc -->
-	 * @return the value of the '<em>Value</em>' attribute.
-	 * @see #setValue(String)
-	 * @see org.eclipse.jpt.eclipselink.core.resource.orm.EclipseLinkOrmPackage#getXmlProperty_Value()
-	 * @model dataType="org.eclipse.emf.ecore.xml.type.String"
-	 * @generated
-	 */
-	public String getValue()
-	{
-		return value;
-	}
-
-	/**
-	 * Sets the value of the '{@link org.eclipse.jpt.eclipselink.core.resource.orm.XmlProperty#getValue <em>Value</em>}' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @param value the new value of the '<em>Value</em>' attribute.
-	 * @see #getValue()
-	 * @generated
-	 */
-	public void setValue(String newValue)
-	{
-		String oldValue = value;
-		value = newValue;
-		if (eNotificationRequired())
-			eNotify(new ENotificationImpl(this, Notification.SET, EclipseLinkOrmPackage.XML_PROPERTY__VALUE, oldValue, value));
-	}
-
-	/**
-	 * Returns the value of the '<em><b>Value Type</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <p>
-	 * If the meaning of the '<em>Value Type</em>' attribute isn't clear,
-	 * there really should be more of a description here...
-	 * </p>
-	 * <!-- end-user-doc -->
-	 * @return the value of the '<em>Value Type</em>' attribute.
-	 * @see #setValueType(String)
-	 * @see org.eclipse.jpt.eclipselink.core.resource.orm.EclipseLinkOrmPackage#getXmlProperty_ValueType()
-	 * @model dataType="org.eclipse.emf.ecore.xml.type.String"
-	 * @generated
-	 */
-	public String getValueType()
-	{
-		return valueType;
-	}
-
-	/**
-	 * Sets the value of the '{@link org.eclipse.jpt.eclipselink.core.resource.orm.XmlProperty#getValueType <em>Value Type</em>}' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @param value the new value of the '<em>Value Type</em>' attribute.
-	 * @see #getValueType()
-	 * @generated
-	 */
-	public void setValueType(String newValueType)
-	{
-		String oldValueType = valueType;
-		valueType = newValueType;
-		if (eNotificationRequired())
-			eNotify(new ENotificationImpl(this, Notification.SET, EclipseLinkOrmPackage.XML_PROPERTY__VALUE_TYPE, oldValueType, valueType));
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public Object eGet(int featureID, boolean resolve, boolean coreType)
-	{
-		switch (featureID)
-		{
-			case EclipseLinkOrmPackage.XML_PROPERTY__NAME:
-				return getName();
-			case EclipseLinkOrmPackage.XML_PROPERTY__VALUE:
-				return getValue();
-			case EclipseLinkOrmPackage.XML_PROPERTY__VALUE_TYPE:
-				return getValueType();
-		}
-		return super.eGet(featureID, resolve, coreType);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public void eSet(int featureID, Object newValue)
-	{
-		switch (featureID)
-		{
-			case EclipseLinkOrmPackage.XML_PROPERTY__NAME:
-				setName((String)newValue);
-				return;
-			case EclipseLinkOrmPackage.XML_PROPERTY__VALUE:
-				setValue((String)newValue);
-				return;
-			case EclipseLinkOrmPackage.XML_PROPERTY__VALUE_TYPE:
-				setValueType((String)newValue);
-				return;
-		}
-		super.eSet(featureID, newValue);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public void eUnset(int featureID)
-	{
-		switch (featureID)
-		{
-			case EclipseLinkOrmPackage.XML_PROPERTY__NAME:
-				setName(NAME_EDEFAULT);
-				return;
-			case EclipseLinkOrmPackage.XML_PROPERTY__VALUE:
-				setValue(VALUE_EDEFAULT);
-				return;
-			case EclipseLinkOrmPackage.XML_PROPERTY__VALUE_TYPE:
-				setValueType(VALUE_TYPE_EDEFAULT);
-				return;
-		}
-		super.eUnset(featureID);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public boolean eIsSet(int featureID)
-	{
-		switch (featureID)
-		{
-			case EclipseLinkOrmPackage.XML_PROPERTY__NAME:
-				return NAME_EDEFAULT == null ? name != null : !NAME_EDEFAULT.equals(name);
-			case EclipseLinkOrmPackage.XML_PROPERTY__VALUE:
-				return VALUE_EDEFAULT == null ? value != null : !VALUE_EDEFAULT.equals(value);
-			case EclipseLinkOrmPackage.XML_PROPERTY__VALUE_TYPE:
-				return VALUE_TYPE_EDEFAULT == null ? valueType != null : !VALUE_TYPE_EDEFAULT.equals(valueType);
-		}
-		return super.eIsSet(featureID);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public String toString()
-	{
-		if (eIsProxy()) return super.toString();
-
-		StringBuffer result = new StringBuffer(super.toString());
-		result.append(" (name: ");
-		result.append(name);
-		result.append(", value: ");
-		result.append(value);
-		result.append(", valueType: ");
-		result.append(valueType);
-		result.append(')');
-		return result.toString();
-	}
-
-} // XmlProperty
diff --git a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/resource/orm/XmlReadOnly.java b/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/resource/orm/XmlReadOnly.java
deleted file mode 100644
index 41955e1..0000000
--- a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/resource/orm/XmlReadOnly.java
+++ /dev/null
@@ -1,75 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008, 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.eclipselink.core.resource.orm;
-
-import org.eclipse.jpt.core.resource.xml.JpaEObject;
-import org.eclipse.jpt.core.utility.TextRange;
-
-/**
- * <!-- begin-user-doc -->
- * 
- * A representation of the model object '<em><b>Xml Read Only</b></em>'.
- *  
- * Provisional API: This interface is part of an interim API that is still
- * under development and expected to change significantly before reaching
- * stability. It is available at this early stage to solicit feedback from
- * pioneering adopters on the understanding that any code that uses this API
- * will almost certainly be broken (repeatedly) as the API evolves.
- * 
- * @version 2.1
- * @since 2.1
- * 
- * <!-- end-user-doc -->
- *
- * <p>
- * The following features are supported:
- * <ul>
- *   <li>{@link org.eclipse.jpt.eclipselink.core.resource.orm.XmlReadOnly#getReadOnly <em>Read Only</em>}</li>
- * </ul>
- * </p>
- *
- * @see org.eclipse.jpt.eclipselink.core.resource.orm.EclipseLinkOrmPackage#getXmlReadOnly()
- * @model kind="class" interface="true" abstract="true"
- * @extends JpaEObject
- * @generated
- */
-public interface XmlReadOnly extends JpaEObject
-{
-	/**
-	 * Returns the value of the '<em><b>Read Only</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <p>
-	 * If the meaning of the '<em>Read Only</em>' attribute isn't clear,
-	 * there really should be more of a description here...
-	 * </p>
-	 * <!-- end-user-doc -->
-	 * @return the value of the '<em>Read Only</em>' attribute.
-	 * @see #setReadOnly(Boolean)
-	 * @see org.eclipse.jpt.eclipselink.core.resource.orm.EclipseLinkOrmPackage#getXmlReadOnly_ReadOnly()
-	 * @model dataType="org.eclipse.emf.ecore.xml.type.BooleanObject"
-	 * @generated
-	 */
-	Boolean getReadOnly();
-
-	/**
-	 * Sets the value of the '{@link org.eclipse.jpt.eclipselink.core.resource.orm.XmlReadOnly#getReadOnly <em>Read Only</em>}' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @param value the new value of the '<em>Read Only</em>' attribute.
-	 * @see #getReadOnly()
-	 * @generated
-	 */
-	void setReadOnly(Boolean value);
-	
-	/**
-	 * Return the {@link TextRange} for the read-only attibute.
-	 */
-	TextRange getReadOnlyTextRange();
-}
\ No newline at end of file
diff --git a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/resource/orm/XmlStoredProcedureParameter.java b/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/resource/orm/XmlStoredProcedureParameter.java
deleted file mode 100644
index 95cc290..0000000
--- a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/resource/orm/XmlStoredProcedureParameter.java
+++ /dev/null
@@ -1,548 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.eclipselink.core.resource.orm;
-
-import org.eclipse.emf.common.notify.Notification;
-
-import org.eclipse.emf.ecore.EClass;
-
-import org.eclipse.emf.ecore.impl.ENotificationImpl;
-
-import org.eclipse.jpt.core.resource.xml.AbstractJpaEObject;
-import org.eclipse.jpt.core.resource.xml.JpaEObject;
-
-/**
- * <!-- begin-user-doc -->
- * A representation of the model object '<em><b>Xml Stored Procedure Parameter</b></em>'.
- *  
- * Provisional API: This interface is part of an interim API that is still
- * under development and expected to change significantly before reaching
- * stability. It is available at this early stage to solicit feedback from
- * pioneering adopters on the understanding that any code that uses this API
- * will almost certainly be broken (repeatedly) as the API evolves.
- * 
- * @version 2.2
- * @since 2.2
- *
- * <!-- end-user-doc -->
- *
- * <p>
- * The following features are supported:
- * <ul>
- *   <li>{@link org.eclipse.jpt.eclipselink.core.resource.orm.XmlStoredProcedureParameter#getDirection <em>Direction</em>}</li>
- *   <li>{@link org.eclipse.jpt.eclipselink.core.resource.orm.XmlStoredProcedureParameter#getName <em>Name</em>}</li>
- *   <li>{@link org.eclipse.jpt.eclipselink.core.resource.orm.XmlStoredProcedureParameter#getQueryParameter <em>Query Parameter</em>}</li>
- *   <li>{@link org.eclipse.jpt.eclipselink.core.resource.orm.XmlStoredProcedureParameter#getType <em>Type</em>}</li>
- *   <li>{@link org.eclipse.jpt.eclipselink.core.resource.orm.XmlStoredProcedureParameter#getJdbcType <em>Jdbc Type</em>}</li>
- *   <li>{@link org.eclipse.jpt.eclipselink.core.resource.orm.XmlStoredProcedureParameter#getJdbcTypeName <em>Jdbc Type Name</em>}</li>
- * </ul>
- * </p>
- *
- * @see org.eclipse.jpt.eclipselink.core.resource.orm.EclipseLinkOrmPackage#getXmlStoredProcedureParameter()
- * @model kind="class"
- * @extends JpaEObject
- * @generated
- */
-public class XmlStoredProcedureParameter extends AbstractJpaEObject implements JpaEObject
-{
-	/**
-	 * changed this to null and removed the generated flag so emf won't generate over it
-	 * we don't want a default for enums, just null if the tag does not exist
-	 */
-	protected static final XmlDirection DIRECTION_EDEFAULT = null;
-
-	/**
-	 * The cached value of the '{@link #getDirection() <em>Direction</em>}' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see #getDirection()
-	 * @generated
-	 * @ordered
-	 */
-	protected XmlDirection direction = DIRECTION_EDEFAULT;
-
-	/**
-	 * The default value of the '{@link #getName() <em>Name</em>}' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see #getName()
-	 * @generated
-	 * @ordered
-	 */
-	protected static final String NAME_EDEFAULT = null;
-
-	/**
-	 * The cached value of the '{@link #getName() <em>Name</em>}' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see #getName()
-	 * @generated
-	 * @ordered
-	 */
-	protected String name = NAME_EDEFAULT;
-
-	/**
-	 * The default value of the '{@link #getQueryParameter() <em>Query Parameter</em>}' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see #getQueryParameter()
-	 * @generated
-	 * @ordered
-	 */
-	protected static final String QUERY_PARAMETER_EDEFAULT = null;
-
-	/**
-	 * The cached value of the '{@link #getQueryParameter() <em>Query Parameter</em>}' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see #getQueryParameter()
-	 * @generated
-	 * @ordered
-	 */
-	protected String queryParameter = QUERY_PARAMETER_EDEFAULT;
-
-	/**
-	 * The default value of the '{@link #getType() <em>Type</em>}' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see #getType()
-	 * @generated
-	 * @ordered
-	 */
-	protected static final String TYPE_EDEFAULT = null;
-
-	/**
-	 * The cached value of the '{@link #getType() <em>Type</em>}' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see #getType()
-	 * @generated
-	 * @ordered
-	 */
-	protected String type = TYPE_EDEFAULT;
-
-	/**
-	 * The default value of the '{@link #getJdbcType() <em>Jdbc Type</em>}' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see #getJdbcType()
-	 * @generated
-	 * @ordered
-	 */
-	protected static final Integer JDBC_TYPE_EDEFAULT = null;
-
-	/**
-	 * The cached value of the '{@link #getJdbcType() <em>Jdbc Type</em>}' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see #getJdbcType()
-	 * @generated
-	 * @ordered
-	 */
-	protected Integer jdbcType = JDBC_TYPE_EDEFAULT;
-
-	/**
-	 * The default value of the '{@link #getJdbcTypeName() <em>Jdbc Type Name</em>}' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see #getJdbcTypeName()
-	 * @generated
-	 * @ordered
-	 */
-	protected static final String JDBC_TYPE_NAME_EDEFAULT = null;
-
-	/**
-	 * The cached value of the '{@link #getJdbcTypeName() <em>Jdbc Type Name</em>}' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see #getJdbcTypeName()
-	 * @generated
-	 * @ordered
-	 */
-	protected String jdbcTypeName = JDBC_TYPE_NAME_EDEFAULT;
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	protected XmlStoredProcedureParameter()
-	{
-		super();
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	protected EClass eStaticClass()
-	{
-		return EclipseLinkOrmPackage.Literals.XML_STORED_PROCEDURE_PARAMETER;
-	}
-
-	/**
-	 * Returns the value of the '<em><b>Direction</b></em>' attribute.
-	 * The literals are from the enumeration {@link org.eclipse.jpt.eclipselink.core.resource.orm.XmlDirection}.
-	 * <!-- begin-user-doc -->
-	 * <p>
-	 * If the meaning of the '<em>Direction</em>' attribute isn't clear,
-	 * there really should be more of a description here...
-	 * </p>
-	 * <!-- end-user-doc -->
-	 * @return the value of the '<em>Direction</em>' attribute.
-	 * @see org.eclipse.jpt.eclipselink.core.resource.orm.XmlDirection
-	 * @see #setDirection(XmlDirection)
-	 * @see org.eclipse.jpt.eclipselink.core.resource.orm.EclipseLinkOrmPackage#getXmlStoredProcedureParameter_Direction()
-	 * @model
-	 * @generated
-	 */
-	public XmlDirection getDirection()
-	{
-		return direction;
-	}
-
-	/**
-	 * Sets the value of the '{@link org.eclipse.jpt.eclipselink.core.resource.orm.XmlStoredProcedureParameter#getDirection <em>Direction</em>}' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @param value the new value of the '<em>Direction</em>' attribute.
-	 * @see org.eclipse.jpt.eclipselink.core.resource.orm.XmlDirection
-	 * @see #getDirection()
-	 * @generated
-	 */
-	public void setDirection(XmlDirection newDirection)
-	{
-		XmlDirection oldDirection = direction;
-		direction = newDirection == null ? DIRECTION_EDEFAULT : newDirection;
-		if (eNotificationRequired())
-			eNotify(new ENotificationImpl(this, Notification.SET, EclipseLinkOrmPackage.XML_STORED_PROCEDURE_PARAMETER__DIRECTION, oldDirection, direction));
-	}
-
-	/**
-	 * Returns the value of the '<em><b>Name</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <p>
-	 * If the meaning of the '<em>Name</em>' attribute isn't clear,
-	 * there really should be more of a description here...
-	 * </p>
-	 * <!-- end-user-doc -->
-	 * @return the value of the '<em>Name</em>' attribute.
-	 * @see #setName(String)
-	 * @see org.eclipse.jpt.eclipselink.core.resource.orm.EclipseLinkOrmPackage#getXmlStoredProcedureParameter_Name()
-	 * @model dataType="org.eclipse.emf.ecore.xml.type.String"
-	 * @generated
-	 */
-	public String getName()
-	{
-		return name;
-	}
-
-	/**
-	 * Sets the value of the '{@link org.eclipse.jpt.eclipselink.core.resource.orm.XmlStoredProcedureParameter#getName <em>Name</em>}' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @param value the new value of the '<em>Name</em>' attribute.
-	 * @see #getName()
-	 * @generated
-	 */
-	public void setName(String newName)
-	{
-		String oldName = name;
-		name = newName;
-		if (eNotificationRequired())
-			eNotify(new ENotificationImpl(this, Notification.SET, EclipseLinkOrmPackage.XML_STORED_PROCEDURE_PARAMETER__NAME, oldName, name));
-	}
-
-	/**
-	 * Returns the value of the '<em><b>Query Parameter</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <p>
-	 * If the meaning of the '<em>Query Parameter</em>' attribute isn't clear,
-	 * there really should be more of a description here...
-	 * </p>
-	 * <!-- end-user-doc -->
-	 * @return the value of the '<em>Query Parameter</em>' attribute.
-	 * @see #setQueryParameter(String)
-	 * @see org.eclipse.jpt.eclipselink.core.resource.orm.EclipseLinkOrmPackage#getXmlStoredProcedureParameter_QueryParameter()
-	 * @model dataType="org.eclipse.emf.ecore.xml.type.String"
-	 * @generated
-	 */
-	public String getQueryParameter()
-	{
-		return queryParameter;
-	}
-
-	/**
-	 * Sets the value of the '{@link org.eclipse.jpt.eclipselink.core.resource.orm.XmlStoredProcedureParameter#getQueryParameter <em>Query Parameter</em>}' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @param value the new value of the '<em>Query Parameter</em>' attribute.
-	 * @see #getQueryParameter()
-	 * @generated
-	 */
-	public void setQueryParameter(String newQueryParameter)
-	{
-		String oldQueryParameter = queryParameter;
-		queryParameter = newQueryParameter;
-		if (eNotificationRequired())
-			eNotify(new ENotificationImpl(this, Notification.SET, EclipseLinkOrmPackage.XML_STORED_PROCEDURE_PARAMETER__QUERY_PARAMETER, oldQueryParameter, queryParameter));
-	}
-
-	/**
-	 * Returns the value of the '<em><b>Type</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <p>
-	 * If the meaning of the '<em>Type</em>' attribute isn't clear,
-	 * there really should be more of a description here...
-	 * </p>
-	 * <!-- end-user-doc -->
-	 * @return the value of the '<em>Type</em>' attribute.
-	 * @see #setType(String)
-	 * @see org.eclipse.jpt.eclipselink.core.resource.orm.EclipseLinkOrmPackage#getXmlStoredProcedureParameter_Type()
-	 * @model dataType="org.eclipse.emf.ecore.xml.type.String"
-	 * @generated
-	 */
-	public String getType()
-	{
-		return type;
-	}
-
-	/**
-	 * Sets the value of the '{@link org.eclipse.jpt.eclipselink.core.resource.orm.XmlStoredProcedureParameter#getType <em>Type</em>}' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @param value the new value of the '<em>Type</em>' attribute.
-	 * @see #getType()
-	 * @generated
-	 */
-	public void setType(String newType)
-	{
-		String oldType = type;
-		type = newType;
-		if (eNotificationRequired())
-			eNotify(new ENotificationImpl(this, Notification.SET, EclipseLinkOrmPackage.XML_STORED_PROCEDURE_PARAMETER__TYPE, oldType, type));
-	}
-
-	/**
-	 * Returns the value of the '<em><b>Jdbc Type</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <p>
-	 * If the meaning of the '<em>Jdbc Type</em>' attribute isn't clear,
-	 * there really should be more of a description here...
-	 * </p>
-	 * <!-- end-user-doc -->
-	 * @return the value of the '<em>Jdbc Type</em>' attribute.
-	 * @see #setJdbcType(Integer)
-	 * @see org.eclipse.jpt.eclipselink.core.resource.orm.EclipseLinkOrmPackage#getXmlStoredProcedureParameter_JdbcType()
-	 * @model dataType="org.eclipse.emf.ecore.xml.type.IntObject"
-	 * @generated
-	 */
-	public Integer getJdbcType()
-	{
-		return jdbcType;
-	}
-
-	/**
-	 * Sets the value of the '{@link org.eclipse.jpt.eclipselink.core.resource.orm.XmlStoredProcedureParameter#getJdbcType <em>Jdbc Type</em>}' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @param value the new value of the '<em>Jdbc Type</em>' attribute.
-	 * @see #getJdbcType()
-	 * @generated
-	 */
-	public void setJdbcType(Integer newJdbcType)
-	{
-		Integer oldJdbcType = jdbcType;
-		jdbcType = newJdbcType;
-		if (eNotificationRequired())
-			eNotify(new ENotificationImpl(this, Notification.SET, EclipseLinkOrmPackage.XML_STORED_PROCEDURE_PARAMETER__JDBC_TYPE, oldJdbcType, jdbcType));
-	}
-
-	/**
-	 * Returns the value of the '<em><b>Jdbc Type Name</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <p>
-	 * If the meaning of the '<em>Jdbc Type Name</em>' attribute isn't clear,
-	 * there really should be more of a description here...
-	 * </p>
-	 * <!-- end-user-doc -->
-	 * @return the value of the '<em>Jdbc Type Name</em>' attribute.
-	 * @see #setJdbcTypeName(String)
-	 * @see org.eclipse.jpt.eclipselink.core.resource.orm.EclipseLinkOrmPackage#getXmlStoredProcedureParameter_JdbcTypeName()
-	 * @model dataType="org.eclipse.emf.ecore.xml.type.String"
-	 * @generated
-	 */
-	public String getJdbcTypeName()
-	{
-		return jdbcTypeName;
-	}
-
-	/**
-	 * Sets the value of the '{@link org.eclipse.jpt.eclipselink.core.resource.orm.XmlStoredProcedureParameter#getJdbcTypeName <em>Jdbc Type Name</em>}' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @param value the new value of the '<em>Jdbc Type Name</em>' attribute.
-	 * @see #getJdbcTypeName()
-	 * @generated
-	 */
-	public void setJdbcTypeName(String newJdbcTypeName)
-	{
-		String oldJdbcTypeName = jdbcTypeName;
-		jdbcTypeName = newJdbcTypeName;
-		if (eNotificationRequired())
-			eNotify(new ENotificationImpl(this, Notification.SET, EclipseLinkOrmPackage.XML_STORED_PROCEDURE_PARAMETER__JDBC_TYPE_NAME, oldJdbcTypeName, jdbcTypeName));
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public Object eGet(int featureID, boolean resolve, boolean coreType)
-	{
-		switch (featureID)
-		{
-			case EclipseLinkOrmPackage.XML_STORED_PROCEDURE_PARAMETER__DIRECTION:
-				return getDirection();
-			case EclipseLinkOrmPackage.XML_STORED_PROCEDURE_PARAMETER__NAME:
-				return getName();
-			case EclipseLinkOrmPackage.XML_STORED_PROCEDURE_PARAMETER__QUERY_PARAMETER:
-				return getQueryParameter();
-			case EclipseLinkOrmPackage.XML_STORED_PROCEDURE_PARAMETER__TYPE:
-				return getType();
-			case EclipseLinkOrmPackage.XML_STORED_PROCEDURE_PARAMETER__JDBC_TYPE:
-				return getJdbcType();
-			case EclipseLinkOrmPackage.XML_STORED_PROCEDURE_PARAMETER__JDBC_TYPE_NAME:
-				return getJdbcTypeName();
-		}
-		return super.eGet(featureID, resolve, coreType);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public void eSet(int featureID, Object newValue)
-	{
-		switch (featureID)
-		{
-			case EclipseLinkOrmPackage.XML_STORED_PROCEDURE_PARAMETER__DIRECTION:
-				setDirection((XmlDirection)newValue);
-				return;
-			case EclipseLinkOrmPackage.XML_STORED_PROCEDURE_PARAMETER__NAME:
-				setName((String)newValue);
-				return;
-			case EclipseLinkOrmPackage.XML_STORED_PROCEDURE_PARAMETER__QUERY_PARAMETER:
-				setQueryParameter((String)newValue);
-				return;
-			case EclipseLinkOrmPackage.XML_STORED_PROCEDURE_PARAMETER__TYPE:
-				setType((String)newValue);
-				return;
-			case EclipseLinkOrmPackage.XML_STORED_PROCEDURE_PARAMETER__JDBC_TYPE:
-				setJdbcType((Integer)newValue);
-				return;
-			case EclipseLinkOrmPackage.XML_STORED_PROCEDURE_PARAMETER__JDBC_TYPE_NAME:
-				setJdbcTypeName((String)newValue);
-				return;
-		}
-		super.eSet(featureID, newValue);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public void eUnset(int featureID)
-	{
-		switch (featureID)
-		{
-			case EclipseLinkOrmPackage.XML_STORED_PROCEDURE_PARAMETER__DIRECTION:
-				setDirection(DIRECTION_EDEFAULT);
-				return;
-			case EclipseLinkOrmPackage.XML_STORED_PROCEDURE_PARAMETER__NAME:
-				setName(NAME_EDEFAULT);
-				return;
-			case EclipseLinkOrmPackage.XML_STORED_PROCEDURE_PARAMETER__QUERY_PARAMETER:
-				setQueryParameter(QUERY_PARAMETER_EDEFAULT);
-				return;
-			case EclipseLinkOrmPackage.XML_STORED_PROCEDURE_PARAMETER__TYPE:
-				setType(TYPE_EDEFAULT);
-				return;
-			case EclipseLinkOrmPackage.XML_STORED_PROCEDURE_PARAMETER__JDBC_TYPE:
-				setJdbcType(JDBC_TYPE_EDEFAULT);
-				return;
-			case EclipseLinkOrmPackage.XML_STORED_PROCEDURE_PARAMETER__JDBC_TYPE_NAME:
-				setJdbcTypeName(JDBC_TYPE_NAME_EDEFAULT);
-				return;
-		}
-		super.eUnset(featureID);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public boolean eIsSet(int featureID)
-	{
-		switch (featureID)
-		{
-			case EclipseLinkOrmPackage.XML_STORED_PROCEDURE_PARAMETER__DIRECTION:
-				return direction != DIRECTION_EDEFAULT;
-			case EclipseLinkOrmPackage.XML_STORED_PROCEDURE_PARAMETER__NAME:
-				return NAME_EDEFAULT == null ? name != null : !NAME_EDEFAULT.equals(name);
-			case EclipseLinkOrmPackage.XML_STORED_PROCEDURE_PARAMETER__QUERY_PARAMETER:
-				return QUERY_PARAMETER_EDEFAULT == null ? queryParameter != null : !QUERY_PARAMETER_EDEFAULT.equals(queryParameter);
-			case EclipseLinkOrmPackage.XML_STORED_PROCEDURE_PARAMETER__TYPE:
-				return TYPE_EDEFAULT == null ? type != null : !TYPE_EDEFAULT.equals(type);
-			case EclipseLinkOrmPackage.XML_STORED_PROCEDURE_PARAMETER__JDBC_TYPE:
-				return JDBC_TYPE_EDEFAULT == null ? jdbcType != null : !JDBC_TYPE_EDEFAULT.equals(jdbcType);
-			case EclipseLinkOrmPackage.XML_STORED_PROCEDURE_PARAMETER__JDBC_TYPE_NAME:
-				return JDBC_TYPE_NAME_EDEFAULT == null ? jdbcTypeName != null : !JDBC_TYPE_NAME_EDEFAULT.equals(jdbcTypeName);
-		}
-		return super.eIsSet(featureID);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public String toString()
-	{
-		if (eIsProxy()) return super.toString();
-
-		StringBuffer result = new StringBuffer(super.toString());
-		result.append(" (direction: ");
-		result.append(direction);
-		result.append(", name: ");
-		result.append(name);
-		result.append(", queryParameter: ");
-		result.append(queryParameter);
-		result.append(", type: ");
-		result.append(type);
-		result.append(", jdbcType: ");
-		result.append(jdbcType);
-		result.append(", jdbcTypeName: ");
-		result.append(jdbcTypeName);
-		result.append(')');
-		return result.toString();
-	}
-
-} // XmlStoredProcedureParameter
diff --git a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/resource/orm/XmlStructConverter.java b/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/resource/orm/XmlStructConverter.java
deleted file mode 100644
index 4e4d851..0000000
--- a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/resource/orm/XmlStructConverter.java
+++ /dev/null
@@ -1,68 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.eclipselink.core.resource.orm;
-
-
-/**
- * <!-- begin-user-doc -->
- * 
- * A representation of the model object '<em><b>Xml Struct CustomConverter</b></em>'.
- *  
- * Provisional API: This interface is part of an interim API that is still
- * under development and expected to change significantly before reaching
- * stability. It is available at this early stage to solicit feedback from
- * pioneering adopters on the understanding that any code that uses this API
- * will almost certainly be broken (repeatedly) as the API evolves.
- * 
- * @version 2.1
- * @since 2.1
- * 
- * <!-- end-user-doc -->
- *
- * <p>
- * The following features are supported:
- * <ul>
- *   <li>{@link org.eclipse.jpt.eclipselink.core.resource.orm.XmlStructConverter#getConverter <em>Converter</em>}</li>
- * </ul>
- * </p>
- *
- * @see org.eclipse.jpt.eclipselink.core.resource.orm.EclipseLinkOrmPackage#getXmlStructConverter()
- * @model kind="class" interface="true" abstract="true"
- * @generated
- */
-public interface XmlStructConverter extends XmlNamedConverter
-{
-	/**
-	 * Returns the value of the '<em><b>Converter</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <p>
-	 * If the meaning of the '<em>CustomConverter</em>' attribute isn't clear,
-	 * there really should be more of a description here...
-	 * </p>
-	 * <!-- end-user-doc -->
-	 * @return the value of the '<em>Converter</em>' attribute.
-	 * @see #setConverter(String)
-	 * @see org.eclipse.jpt.eclipselink.core.resource.orm.EclipseLinkOrmPackage#getXmlStructConverter_Converter()
-	 * @model
-	 * @generated
-	 */
-	String getConverter();
-
-	/**
-	 * Sets the value of the '{@link org.eclipse.jpt.eclipselink.core.resource.orm.XmlStructConverter#getConverter <em>Converter</em>}' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @param value the new value of the '<em>Converter</em>' attribute.
-	 * @see #getConverter()
-	 * @generated
-	 */
-	void setConverter(String value);
-
-} // XmlStructConverter
diff --git a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/resource/orm/XmlStructConverterImpl.java b/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/resource/orm/XmlStructConverterImpl.java
deleted file mode 100644
index f626293..0000000
--- a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/resource/orm/XmlStructConverterImpl.java
+++ /dev/null
@@ -1,266 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008, 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.eclipselink.core.resource.orm;
-
-import org.eclipse.emf.common.notify.Notification;
-import org.eclipse.emf.ecore.EClass;
-import org.eclipse.emf.ecore.impl.ENotificationImpl;
-import org.eclipse.jpt.core.resource.xml.AbstractJpaEObject;
-
-/**
- * <!-- begin-user-doc -->
- * 
- * A representation of the model object '<em><b>Xml Struct CustomConverter</b></em>'.
- *  
- * Provisional API: This interface is part of an interim API that is still
- * under development and expected to change significantly before reaching
- * stability. It is available at this early stage to solicit feedback from
- * pioneering adopters on the understanding that any code that uses this API
- * will almost certainly be broken (repeatedly) as the API evolves.
- * 
- * @version 2.1
- * @since 2.1
- * 
- * <!-- end-user-doc -->
- *
- *
- * @see org.eclipse.jpt.eclipselink.core.resource.orm.EclipseLinkOrmPackage#getXmlStructConverterImpl()
- * @model kind="class"
- * @generated
- */
-public class XmlStructConverterImpl extends AbstractJpaEObject implements XmlStructConverter
-{
-	/**
-	 * The default value of the '{@link #getName() <em>Name</em>}' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see #getName()
-	 * @generated
-	 * @ordered
-	 */
-	protected static final String NAME_EDEFAULT = null;
-
-	/**
-	 * The cached value of the '{@link #getName() <em>Name</em>}' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see #getName()
-	 * @generated
-	 * @ordered
-	 */
-	protected String name = NAME_EDEFAULT;
-
-	/**
-	 * The default value of the '{@link #getConverter() <em>Converter</em>}' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see #getConverter()
-	 * @generated
-	 * @ordered
-	 */
-	protected static final String CONVERTER_EDEFAULT = null;
-
-	/**
-	 * The cached value of the '{@link #getConverter() <em>Converter</em>}' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see #getConverter()
-	 * @generated
-	 * @ordered
-	 */
-	protected String converter = CONVERTER_EDEFAULT;
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	protected XmlStructConverterImpl()
-	{
-		super();
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	protected EClass eStaticClass()
-	{
-		return EclipseLinkOrmPackage.Literals.XML_STRUCT_CONVERTER_IMPL;
-	}
-
-	/**
-	 * Returns the value of the '<em><b>Name</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <p>
-	 * If the meaning of the '<em>Name</em>' attribute isn't clear,
-	 * there really should be more of a description here...
-	 * </p>
-	 * <!-- end-user-doc -->
-	 * @return the value of the '<em>Name</em>' attribute.
-	 * @see #setName(String)
-	 * @see org.eclipse.jpt.eclipselink.core.resource.orm.EclipseLinkOrmPackage#getXmlNamedConverter_Name()
-	 * @model
-	 * @generated
-	 */
-	public String getName()
-	{
-		return name;
-	}
-
-	/**
-	 * Sets the value of the '{@link org.eclipse.jpt.eclipselink.core.resource.orm.XmlStructConverterImpl#getName <em>Name</em>}' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @param value the new value of the '<em>Name</em>' attribute.
-	 * @see #getName()
-	 * @generated
-	 */
-	public void setName(String newName)
-	{
-		String oldName = name;
-		name = newName;
-		if (eNotificationRequired())
-			eNotify(new ENotificationImpl(this, Notification.SET, EclipseLinkOrmPackage.XML_STRUCT_CONVERTER_IMPL__NAME, oldName, name));
-	}
-
-	/**
-	 * Returns the value of the '<em><b>Converter</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <p>
-	 * If the meaning of the '<em>CustomConverter</em>' attribute isn't clear,
-	 * there really should be more of a description here...
-	 * </p>
-	 * <!-- end-user-doc -->
-	 * @return the value of the '<em>Converter</em>' attribute.
-	 * @see #setConverter(String)
-	 * @see org.eclipse.jpt.eclipselink.core.resource.orm.EclipseLinkOrmPackage#getXmlStructConverter_Converter()
-	 * @model
-	 * @generated
-	 */
-	public String getConverter()
-	{
-		return converter;
-	}
-
-	/**
-	 * Sets the value of the '{@link org.eclipse.jpt.eclipselink.core.resource.orm.XmlStructConverterImpl#getConverter <em>Converter</em>}' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @param value the new value of the '<em>Converter</em>' attribute.
-	 * @see #getConverter()
-	 * @generated
-	 */
-	public void setConverter(String newConverter)
-	{
-		String oldConverter = converter;
-		converter = newConverter;
-		if (eNotificationRequired())
-			eNotify(new ENotificationImpl(this, Notification.SET, EclipseLinkOrmPackage.XML_STRUCT_CONVERTER_IMPL__CONVERTER, oldConverter, converter));
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public Object eGet(int featureID, boolean resolve, boolean coreType)
-	{
-		switch (featureID)
-		{
-			case EclipseLinkOrmPackage.XML_STRUCT_CONVERTER_IMPL__NAME:
-				return getName();
-			case EclipseLinkOrmPackage.XML_STRUCT_CONVERTER_IMPL__CONVERTER:
-				return getConverter();
-		}
-		return super.eGet(featureID, resolve, coreType);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public void eSet(int featureID, Object newValue)
-	{
-		switch (featureID)
-		{
-			case EclipseLinkOrmPackage.XML_STRUCT_CONVERTER_IMPL__NAME:
-				setName((String)newValue);
-				return;
-			case EclipseLinkOrmPackage.XML_STRUCT_CONVERTER_IMPL__CONVERTER:
-				setConverter((String)newValue);
-				return;
-		}
-		super.eSet(featureID, newValue);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public void eUnset(int featureID)
-	{
-		switch (featureID)
-		{
-			case EclipseLinkOrmPackage.XML_STRUCT_CONVERTER_IMPL__NAME:
-				setName(NAME_EDEFAULT);
-				return;
-			case EclipseLinkOrmPackage.XML_STRUCT_CONVERTER_IMPL__CONVERTER:
-				setConverter(CONVERTER_EDEFAULT);
-				return;
-		}
-		super.eUnset(featureID);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public boolean eIsSet(int featureID)
-	{
-		switch (featureID)
-		{
-			case EclipseLinkOrmPackage.XML_STRUCT_CONVERTER_IMPL__NAME:
-				return NAME_EDEFAULT == null ? name != null : !NAME_EDEFAULT.equals(name);
-			case EclipseLinkOrmPackage.XML_STRUCT_CONVERTER_IMPL__CONVERTER:
-				return CONVERTER_EDEFAULT == null ? converter != null : !CONVERTER_EDEFAULT.equals(converter);
-		}
-		return super.eIsSet(featureID);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public String toString()
-	{
-		if (eIsProxy()) return super.toString();
-
-		StringBuffer result = new StringBuffer(super.toString());
-		result.append(" (name: ");
-		result.append(name);
-		result.append(", converter: ");
-		result.append(converter);
-		result.append(')');
-		return result.toString();
-	}
-
-} // XmlStructConverter
diff --git a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/resource/orm/XmlTimeOfDay.java b/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/resource/orm/XmlTimeOfDay.java
deleted file mode 100644
index 9244f42..0000000
--- a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/resource/orm/XmlTimeOfDay.java
+++ /dev/null
@@ -1,411 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008, 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.eclipselink.core.resource.orm;
-
-import org.eclipse.emf.common.notify.Notification;
-import org.eclipse.emf.ecore.EClass;
-import org.eclipse.emf.ecore.impl.ENotificationImpl;
-import org.eclipse.jpt.core.resource.xml.AbstractJpaEObject;
-import org.eclipse.jpt.core.resource.xml.JpaEObject;
-
-/**
- * <!-- begin-user-doc -->
- * 
- * A representation of the model object '<em><b>Xml Time Of Day</b></em>'.
- *  
- * Provisional API: This interface is part of an interim API that is still
- * under development and expected to change significantly before reaching
- * stability. It is available at this early stage to solicit feedback from
- * pioneering adopters on the understanding that any code that uses this API
- * will almost certainly be broken (repeatedly) as the API evolves.
- * 
- * @version 2.1
- * @since 2.1
- * 
- * <!-- end-user-doc -->
- *
- * <p>
- * The following features are supported:
- * <ul>
- *   <li>{@link org.eclipse.jpt.eclipselink.core.resource.orm.XmlTimeOfDay#getHour <em>Hour</em>}</li>
- *   <li>{@link org.eclipse.jpt.eclipselink.core.resource.orm.XmlTimeOfDay#getMinute <em>Minute</em>}</li>
- *   <li>{@link org.eclipse.jpt.eclipselink.core.resource.orm.XmlTimeOfDay#getSecond <em>Second</em>}</li>
- *   <li>{@link org.eclipse.jpt.eclipselink.core.resource.orm.XmlTimeOfDay#getMillisecond <em>Millisecond</em>}</li>
- * </ul>
- * </p>
- *
- * @see org.eclipse.jpt.eclipselink.core.resource.orm.EclipseLinkOrmPackage#getXmlTimeOfDay()
- * @model kind="class"
- * @extends JpaEObject
- * @generated
- */
-public class XmlTimeOfDay extends AbstractJpaEObject implements JpaEObject
-{
-	/**
-	 * The default value of the '{@link #getHour() <em>Hour</em>}' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see #getHour()
-	 * @generated
-	 * @ordered
-	 */
-	protected static final Integer HOUR_EDEFAULT = null;
-
-	/**
-	 * The cached value of the '{@link #getHour() <em>Hour</em>}' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see #getHour()
-	 * @generated
-	 * @ordered
-	 */
-	protected Integer hour = HOUR_EDEFAULT;
-
-	/**
-	 * The default value of the '{@link #getMinute() <em>Minute</em>}' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see #getMinute()
-	 * @generated
-	 * @ordered
-	 */
-	protected static final Integer MINUTE_EDEFAULT = null;
-
-	/**
-	 * The cached value of the '{@link #getMinute() <em>Minute</em>}' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see #getMinute()
-	 * @generated
-	 * @ordered
-	 */
-	protected Integer minute = MINUTE_EDEFAULT;
-
-	/**
-	 * The default value of the '{@link #getSecond() <em>Second</em>}' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see #getSecond()
-	 * @generated
-	 * @ordered
-	 */
-	protected static final Integer SECOND_EDEFAULT = null;
-
-	/**
-	 * The cached value of the '{@link #getSecond() <em>Second</em>}' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see #getSecond()
-	 * @generated
-	 * @ordered
-	 */
-	protected Integer second = SECOND_EDEFAULT;
-
-	/**
-	 * The default value of the '{@link #getMillisecond() <em>Millisecond</em>}' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see #getMillisecond()
-	 * @generated
-	 * @ordered
-	 */
-	protected static final Integer MILLISECOND_EDEFAULT = null;
-
-	/**
-	 * The cached value of the '{@link #getMillisecond() <em>Millisecond</em>}' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see #getMillisecond()
-	 * @generated
-	 * @ordered
-	 */
-	protected Integer millisecond = MILLISECOND_EDEFAULT;
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	protected XmlTimeOfDay()
-	{
-		super();
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	protected EClass eStaticClass()
-	{
-		return EclipseLinkOrmPackage.Literals.XML_TIME_OF_DAY;
-	}
-
-	/**
-	 * Returns the value of the '<em><b>Hour</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <p>
-	 * If the meaning of the '<em>Hour</em>' attribute isn't clear,
-	 * there really should be more of a description here...
-	 * </p>
-	 * <!-- end-user-doc -->
-	 * @return the value of the '<em>Hour</em>' attribute.
-	 * @see #setHour(Integer)
-	 * @see org.eclipse.jpt.eclipselink.core.resource.orm.EclipseLinkOrmPackage#getXmlTimeOfDay_Hour()
-	 * @model dataType="org.eclipse.emf.ecore.xml.type.IntObject"
-	 * @generated
-	 */
-	public Integer getHour()
-	{
-		return hour;
-	}
-
-	/**
-	 * Sets the value of the '{@link org.eclipse.jpt.eclipselink.core.resource.orm.XmlTimeOfDay#getHour <em>Hour</em>}' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @param value the new value of the '<em>Hour</em>' attribute.
-	 * @see #getHour()
-	 * @generated
-	 */
-	public void setHour(Integer newHour)
-	{
-		Integer oldHour = hour;
-		hour = newHour;
-		if (eNotificationRequired())
-			eNotify(new ENotificationImpl(this, Notification.SET, EclipseLinkOrmPackage.XML_TIME_OF_DAY__HOUR, oldHour, hour));
-	}
-
-	/**
-	 * Returns the value of the '<em><b>Minute</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <p>
-	 * If the meaning of the '<em>Minute</em>' attribute isn't clear,
-	 * there really should be more of a description here...
-	 * </p>
-	 * <!-- end-user-doc -->
-	 * @return the value of the '<em>Minute</em>' attribute.
-	 * @see #setMinute(Integer)
-	 * @see org.eclipse.jpt.eclipselink.core.resource.orm.EclipseLinkOrmPackage#getXmlTimeOfDay_Minute()
-	 * @model dataType="org.eclipse.emf.ecore.xml.type.IntObject"
-	 * @generated
-	 */
-	public Integer getMinute()
-	{
-		return minute;
-	}
-
-	/**
-	 * Sets the value of the '{@link org.eclipse.jpt.eclipselink.core.resource.orm.XmlTimeOfDay#getMinute <em>Minute</em>}' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @param value the new value of the '<em>Minute</em>' attribute.
-	 * @see #getMinute()
-	 * @generated
-	 */
-	public void setMinute(Integer newMinute)
-	{
-		Integer oldMinute = minute;
-		minute = newMinute;
-		if (eNotificationRequired())
-			eNotify(new ENotificationImpl(this, Notification.SET, EclipseLinkOrmPackage.XML_TIME_OF_DAY__MINUTE, oldMinute, minute));
-	}
-
-	/**
-	 * Returns the value of the '<em><b>Second</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <p>
-	 * If the meaning of the '<em>Second</em>' attribute isn't clear,
-	 * there really should be more of a description here...
-	 * </p>
-	 * <!-- end-user-doc -->
-	 * @return the value of the '<em>Second</em>' attribute.
-	 * @see #setSecond(Integer)
-	 * @see org.eclipse.jpt.eclipselink.core.resource.orm.EclipseLinkOrmPackage#getXmlTimeOfDay_Second()
-	 * @model dataType="org.eclipse.emf.ecore.xml.type.IntObject"
-	 * @generated
-	 */
-	public Integer getSecond()
-	{
-		return second;
-	}
-
-	/**
-	 * Sets the value of the '{@link org.eclipse.jpt.eclipselink.core.resource.orm.XmlTimeOfDay#getSecond <em>Second</em>}' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @param value the new value of the '<em>Second</em>' attribute.
-	 * @see #getSecond()
-	 * @generated
-	 */
-	public void setSecond(Integer newSecond)
-	{
-		Integer oldSecond = second;
-		second = newSecond;
-		if (eNotificationRequired())
-			eNotify(new ENotificationImpl(this, Notification.SET, EclipseLinkOrmPackage.XML_TIME_OF_DAY__SECOND, oldSecond, second));
-	}
-
-	/**
-	 * Returns the value of the '<em><b>Millisecond</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <p>
-	 * If the meaning of the '<em>Millisecond</em>' attribute isn't clear,
-	 * there really should be more of a description here...
-	 * </p>
-	 * <!-- end-user-doc -->
-	 * @return the value of the '<em>Millisecond</em>' attribute.
-	 * @see #setMillisecond(Integer)
-	 * @see org.eclipse.jpt.eclipselink.core.resource.orm.EclipseLinkOrmPackage#getXmlTimeOfDay_Millisecond()
-	 * @model dataType="org.eclipse.emf.ecore.xml.type.IntObject"
-	 * @generated
-	 */
-	public Integer getMillisecond()
-	{
-		return millisecond;
-	}
-
-	/**
-	 * Sets the value of the '{@link org.eclipse.jpt.eclipselink.core.resource.orm.XmlTimeOfDay#getMillisecond <em>Millisecond</em>}' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @param value the new value of the '<em>Millisecond</em>' attribute.
-	 * @see #getMillisecond()
-	 * @generated
-	 */
-	public void setMillisecond(Integer newMillisecond)
-	{
-		Integer oldMillisecond = millisecond;
-		millisecond = newMillisecond;
-		if (eNotificationRequired())
-			eNotify(new ENotificationImpl(this, Notification.SET, EclipseLinkOrmPackage.XML_TIME_OF_DAY__MILLISECOND, oldMillisecond, millisecond));
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public Object eGet(int featureID, boolean resolve, boolean coreType)
-	{
-		switch (featureID)
-		{
-			case EclipseLinkOrmPackage.XML_TIME_OF_DAY__HOUR:
-				return getHour();
-			case EclipseLinkOrmPackage.XML_TIME_OF_DAY__MINUTE:
-				return getMinute();
-			case EclipseLinkOrmPackage.XML_TIME_OF_DAY__SECOND:
-				return getSecond();
-			case EclipseLinkOrmPackage.XML_TIME_OF_DAY__MILLISECOND:
-				return getMillisecond();
-		}
-		return super.eGet(featureID, resolve, coreType);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public void eSet(int featureID, Object newValue)
-	{
-		switch (featureID)
-		{
-			case EclipseLinkOrmPackage.XML_TIME_OF_DAY__HOUR:
-				setHour((Integer)newValue);
-				return;
-			case EclipseLinkOrmPackage.XML_TIME_OF_DAY__MINUTE:
-				setMinute((Integer)newValue);
-				return;
-			case EclipseLinkOrmPackage.XML_TIME_OF_DAY__SECOND:
-				setSecond((Integer)newValue);
-				return;
-			case EclipseLinkOrmPackage.XML_TIME_OF_DAY__MILLISECOND:
-				setMillisecond((Integer)newValue);
-				return;
-		}
-		super.eSet(featureID, newValue);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public void eUnset(int featureID)
-	{
-		switch (featureID)
-		{
-			case EclipseLinkOrmPackage.XML_TIME_OF_DAY__HOUR:
-				setHour(HOUR_EDEFAULT);
-				return;
-			case EclipseLinkOrmPackage.XML_TIME_OF_DAY__MINUTE:
-				setMinute(MINUTE_EDEFAULT);
-				return;
-			case EclipseLinkOrmPackage.XML_TIME_OF_DAY__SECOND:
-				setSecond(SECOND_EDEFAULT);
-				return;
-			case EclipseLinkOrmPackage.XML_TIME_OF_DAY__MILLISECOND:
-				setMillisecond(MILLISECOND_EDEFAULT);
-				return;
-		}
-		super.eUnset(featureID);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public boolean eIsSet(int featureID)
-	{
-		switch (featureID)
-		{
-			case EclipseLinkOrmPackage.XML_TIME_OF_DAY__HOUR:
-				return HOUR_EDEFAULT == null ? hour != null : !HOUR_EDEFAULT.equals(hour);
-			case EclipseLinkOrmPackage.XML_TIME_OF_DAY__MINUTE:
-				return MINUTE_EDEFAULT == null ? minute != null : !MINUTE_EDEFAULT.equals(minute);
-			case EclipseLinkOrmPackage.XML_TIME_OF_DAY__SECOND:
-				return SECOND_EDEFAULT == null ? second != null : !SECOND_EDEFAULT.equals(second);
-			case EclipseLinkOrmPackage.XML_TIME_OF_DAY__MILLISECOND:
-				return MILLISECOND_EDEFAULT == null ? millisecond != null : !MILLISECOND_EDEFAULT.equals(millisecond);
-		}
-		return super.eIsSet(featureID);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public String toString()
-	{
-		if (eIsProxy()) return super.toString();
-
-		StringBuffer result = new StringBuffer(super.toString());
-		result.append(" (hour: ");
-		result.append(hour);
-		result.append(", minute: ");
-		result.append(minute);
-		result.append(", second: ");
-		result.append(second);
-		result.append(", millisecond: ");
-		result.append(millisecond);
-		result.append(')');
-		return result.toString();
-	}
-
-} // XmlTimeOfDay
diff --git a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/resource/orm/XmlTransformation.java b/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/resource/orm/XmlTransformation.java
deleted file mode 100644
index 5f7dbcb..0000000
--- a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/resource/orm/XmlTransformation.java
+++ /dev/null
@@ -1,56 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.eclipselink.core.resource.orm;
-
-import org.eclipse.emf.common.util.EList;
-import org.eclipse.jpt.core.resource.orm.XmlAttributeMapping;
-
-/**
- * <!-- begin-user-doc -->
- * A representation of the model object '<em><b>Xml Transformation</b></em>'.
- *
- * Provisional API: This interface is part of an interim API that is still
- * under development and expected to change significantly before reaching
- * stability. It is available at this early stage to solicit feedback from
- * pioneering adopters on the understanding that any code that uses this API
- * will almost certainly be broken (repeatedly) as the API evolves. *
- *
- * <!-- end-user-doc -->
- *
- * <p>
- * The following features are supported:
- * <ul>
- *   <li>{@link org.eclipse.jpt.eclipselink.core.resource.orm.XmlTransformation#getProperties <em>Properties</em>}</li>
- * </ul>
- * </p>
- *
- * @see org.eclipse.jpt.eclipselink.core.resource.orm.EclipseLinkOrmPackage#getXmlTransformation()
- * @model kind="class" interface="true" abstract="true"
- * @generated
- */
-public interface XmlTransformation extends XmlAttributeMapping, XmlAccessMethodsHolder
-{
-
-	/**
-	 * Returns the value of the '<em><b>Properties</b></em>' containment reference list.
-	 * The list contents are of type {@link org.eclipse.jpt.eclipselink.core.resource.orm.XmlProperty}.
-	 * <!-- begin-user-doc -->
-	 * <p>
-	 * If the meaning of the '<em>Properties</em>' containment reference list isn't clear,
-	 * there really should be more of a description here...
-	 * </p>
-	 * <!-- end-user-doc -->
-	 * @return the value of the '<em>Properties</em>' containment reference list.
-	 * @see org.eclipse.jpt.eclipselink.core.resource.orm.EclipseLinkOrmPackage#getXmlTransformation_Properties()
-	 * @model containment="true"
-	 * @generated
-	 */
-	EList<XmlProperty> getProperties();
-} // XmlTransformation
diff --git a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/resource/orm/XmlTransformationImpl.java b/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/resource/orm/XmlTransformationImpl.java
deleted file mode 100644
index 542ccea..0000000
--- a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/resource/orm/XmlTransformationImpl.java
+++ /dev/null
@@ -1,321 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.eclipselink.core.resource.orm;
-
-import java.util.Collection;
-import org.eclipse.emf.common.notify.Notification;
-import org.eclipse.emf.common.notify.NotificationChain;
-import org.eclipse.emf.common.util.EList;
-import org.eclipse.emf.ecore.EClass;
-
-import org.eclipse.emf.ecore.InternalEObject;
-import org.eclipse.emf.ecore.impl.ENotificationImpl;
-import org.eclipse.emf.ecore.util.EObjectContainmentEList;
-import org.eclipse.emf.ecore.util.InternalEList;
-import org.eclipse.jpt.core.resource.orm.AbstractXmlAttributeMapping;
-import org.eclipse.jpt.eclipselink.core.EclipseLinkMappingKeys;
-
-/**
- * <!-- begin-user-doc -->
- * A representation of the model object '<em><b>Xml Transformation Impl</b></em>'.
- *
- * Provisional API: This interface is part of an interim API that is still
- * under development and expected to change significantly before reaching
- * stability. It is available at this early stage to solicit feedback from
- * pioneering adopters on the understanding that any code that uses this API
- * will almost certainly be broken (repeatedly) as the API evolves. *
- *
- * <!-- end-user-doc -->
- *
- *
- * @see org.eclipse.jpt.eclipselink.core.resource.orm.EclipseLinkOrmPackage#getXmlTransformationImpl()
- * @model kind="class"
- * @generated
- */
-public class XmlTransformationImpl extends AbstractXmlAttributeMapping implements XmlTransformation
-{
-	/**
-	 * The cached value of the '{@link #getAccessMethods() <em>Access Methods</em>}' containment reference.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see #getAccessMethods()
-	 * @generated
-	 * @ordered
-	 */
-	protected XmlAccessMethods accessMethods;
-
-	/**
-	 * The cached value of the '{@link #getProperties() <em>Properties</em>}' containment reference list.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see #getProperties()
-	 * @generated
-	 * @ordered
-	 */
-	protected EList<XmlProperty> properties;
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	protected XmlTransformationImpl()
-	{
-		super();
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	protected EClass eStaticClass()
-	{
-		return EclipseLinkOrmPackage.Literals.XML_TRANSFORMATION_IMPL;
-	}
-	
-	/**
-	 * Returns the value of the '<em><b>Access Methods</b></em>' containment reference.
-	 * <!-- begin-user-doc -->
-	 * <p>
-	 * If the meaning of the '<em>Access Methods</em>' containment reference isn't clear,
-	 * there really should be more of a description here...
-	 * </p>
-	 * <!-- end-user-doc -->
-	 * @return the value of the '<em>Access Methods</em>' containment reference.
-	 * @see #setAccessMethods(XmlAccessMethods)
-	 * @see org.eclipse.jpt.eclipselink.core.resource.orm.EclipseLinkOrmPackage#getXmlAccessMethodsHolder_AccessMethods()
-	 * @model containment="true"
-	 * @generated
-	 */
-	public XmlAccessMethods getAccessMethods()
-	{
-		return accessMethods;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public NotificationChain basicSetAccessMethods(XmlAccessMethods newAccessMethods, NotificationChain msgs)
-	{
-		XmlAccessMethods oldAccessMethods = accessMethods;
-		accessMethods = newAccessMethods;
-		if (eNotificationRequired())
-		{
-			ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, EclipseLinkOrmPackage.XML_TRANSFORMATION_IMPL__ACCESS_METHODS, oldAccessMethods, newAccessMethods);
-			if (msgs == null) msgs = notification; else msgs.add(notification);
-		}
-		return msgs;
-	}
-
-	/**
-	 * Sets the value of the '{@link org.eclipse.jpt.eclipselink.core.resource.orm.XmlTransformationImpl#getAccessMethods <em>Access Methods</em>}' containment reference.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @param value the new value of the '<em>Access Methods</em>' containment reference.
-	 * @see #getAccessMethods()
-	 * @generated
-	 */
-	public void setAccessMethods(XmlAccessMethods newAccessMethods)
-	{
-		if (newAccessMethods != accessMethods)
-		{
-			NotificationChain msgs = null;
-			if (accessMethods != null)
-				msgs = ((InternalEObject)accessMethods).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - EclipseLinkOrmPackage.XML_TRANSFORMATION_IMPL__ACCESS_METHODS, null, msgs);
-			if (newAccessMethods != null)
-				msgs = ((InternalEObject)newAccessMethods).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - EclipseLinkOrmPackage.XML_TRANSFORMATION_IMPL__ACCESS_METHODS, null, msgs);
-			msgs = basicSetAccessMethods(newAccessMethods, msgs);
-			if (msgs != null) msgs.dispatch();
-		}
-		else if (eNotificationRequired())
-			eNotify(new ENotificationImpl(this, Notification.SET, EclipseLinkOrmPackage.XML_TRANSFORMATION_IMPL__ACCESS_METHODS, newAccessMethods, newAccessMethods));
-	}
-
-	/**
-	 * Returns the value of the '<em><b>Properties</b></em>' containment reference list.
-	 * The list contents are of type {@link org.eclipse.jpt.eclipselink.core.resource.orm.XmlProperty}.
-	 * <!-- begin-user-doc -->
-	 * <p>
-	 * If the meaning of the '<em>Properties</em>' containment reference list isn't clear,
-	 * there really should be more of a description here...
-	 * </p>
-	 * <!-- end-user-doc -->
-	 * @return the value of the '<em>Properties</em>' containment reference list.
-	 * @see org.eclipse.jpt.eclipselink.core.resource.orm.EclipseLinkOrmPackage#getXmlTransformation_Properties()
-	 * @model containment="true"
-	 * @generated
-	 */
-	public EList<XmlProperty> getProperties()
-	{
-		if (properties == null)
-		{
-			properties = new EObjectContainmentEList<XmlProperty>(XmlProperty.class, this, EclipseLinkOrmPackage.XML_TRANSFORMATION_IMPL__PROPERTIES);
-		}
-		return properties;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs)
-	{
-		switch (featureID)
-		{
-			case EclipseLinkOrmPackage.XML_TRANSFORMATION_IMPL__ACCESS_METHODS:
-				return basicSetAccessMethods(null, msgs);
-			case EclipseLinkOrmPackage.XML_TRANSFORMATION_IMPL__PROPERTIES:
-				return ((InternalEList<?>)getProperties()).basicRemove(otherEnd, msgs);
-		}
-		return super.eInverseRemove(otherEnd, featureID, msgs);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public Object eGet(int featureID, boolean resolve, boolean coreType)
-	{
-		switch (featureID)
-		{
-			case EclipseLinkOrmPackage.XML_TRANSFORMATION_IMPL__ACCESS_METHODS:
-				return getAccessMethods();
-			case EclipseLinkOrmPackage.XML_TRANSFORMATION_IMPL__PROPERTIES:
-				return getProperties();
-		}
-		return super.eGet(featureID, resolve, coreType);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@SuppressWarnings("unchecked")
-	@Override
-	public void eSet(int featureID, Object newValue)
-	{
-		switch (featureID)
-		{
-			case EclipseLinkOrmPackage.XML_TRANSFORMATION_IMPL__ACCESS_METHODS:
-				setAccessMethods((XmlAccessMethods)newValue);
-				return;
-			case EclipseLinkOrmPackage.XML_TRANSFORMATION_IMPL__PROPERTIES:
-				getProperties().clear();
-				getProperties().addAll((Collection<? extends XmlProperty>)newValue);
-				return;
-		}
-		super.eSet(featureID, newValue);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public void eUnset(int featureID)
-	{
-		switch (featureID)
-		{
-			case EclipseLinkOrmPackage.XML_TRANSFORMATION_IMPL__ACCESS_METHODS:
-				setAccessMethods((XmlAccessMethods)null);
-				return;
-			case EclipseLinkOrmPackage.XML_TRANSFORMATION_IMPL__PROPERTIES:
-				getProperties().clear();
-				return;
-		}
-		super.eUnset(featureID);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public boolean eIsSet(int featureID)
-	{
-		switch (featureID)
-		{
-			case EclipseLinkOrmPackage.XML_TRANSFORMATION_IMPL__ACCESS_METHODS:
-				return accessMethods != null;
-			case EclipseLinkOrmPackage.XML_TRANSFORMATION_IMPL__PROPERTIES:
-				return properties != null && !properties.isEmpty();
-		}
-		return super.eIsSet(featureID);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public int eBaseStructuralFeatureID(int derivedFeatureID, Class<?> baseClass)
-	{
-		if (baseClass == XmlAccessMethodsHolder.class)
-		{
-			switch (derivedFeatureID)
-			{
-				case EclipseLinkOrmPackage.XML_TRANSFORMATION_IMPL__ACCESS_METHODS: return EclipseLinkOrmPackage.XML_ACCESS_METHODS_HOLDER__ACCESS_METHODS;
-				default: return -1;
-			}
-		}
-		if (baseClass == XmlTransformation.class)
-		{
-			switch (derivedFeatureID)
-			{
-				case EclipseLinkOrmPackage.XML_TRANSFORMATION_IMPL__PROPERTIES: return EclipseLinkOrmPackage.XML_TRANSFORMATION__PROPERTIES;
-				default: return -1;
-			}
-		}
-		return super.eBaseStructuralFeatureID(derivedFeatureID, baseClass);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public int eDerivedStructuralFeatureID(int baseFeatureID, Class<?> baseClass)
-	{
-		if (baseClass == XmlAccessMethodsHolder.class)
-		{
-			switch (baseFeatureID)
-			{
-				case EclipseLinkOrmPackage.XML_ACCESS_METHODS_HOLDER__ACCESS_METHODS: return EclipseLinkOrmPackage.XML_TRANSFORMATION_IMPL__ACCESS_METHODS;
-				default: return -1;
-			}
-		}
-		if (baseClass == XmlTransformation.class)
-		{
-			switch (baseFeatureID)
-			{
-				case EclipseLinkOrmPackage.XML_TRANSFORMATION__PROPERTIES: return EclipseLinkOrmPackage.XML_TRANSFORMATION_IMPL__PROPERTIES;
-				default: return -1;
-			}
-		}
-		return super.eDerivedStructuralFeatureID(baseFeatureID, baseClass);
-	}
-
-	public String getMappingKey() {
-		return EclipseLinkMappingKeys.TRANSFORMATION_ATTRIBUTE_MAPPING_KEY;
-	}
-} // XmlTransformationImpl
diff --git a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/resource/orm/XmlTypeConverter.java b/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/resource/orm/XmlTypeConverter.java
deleted file mode 100644
index 0961865..0000000
--- a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/resource/orm/XmlTypeConverter.java
+++ /dev/null
@@ -1,95 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.eclipselink.core.resource.orm;
-
-
-/**
- * <!-- begin-user-doc -->
- * 
- * A representation of the model object '<em><b>Xml Type CustomConverter</b></em>'.
- *  
- * Provisional API: This interface is part of an interim API that is still
- * under development and expected to change significantly before reaching
- * stability. It is available at this early stage to solicit feedback from
- * pioneering adopters on the understanding that any code that uses this API
- * will almost certainly be broken (repeatedly) as the API evolves.
- * 
- * @version 2.1
- * @since 2.1
- * 
- * <!-- end-user-doc -->
- *
- * <p>
- * The following features are supported:
- * <ul>
- *   <li>{@link org.eclipse.jpt.eclipselink.core.resource.orm.XmlTypeConverter#getDataType <em>Data Type</em>}</li>
- *   <li>{@link org.eclipse.jpt.eclipselink.core.resource.orm.XmlTypeConverter#getObjectType <em>Object Type</em>}</li>
- * </ul>
- * </p>
- *
- * @see org.eclipse.jpt.eclipselink.core.resource.orm.EclipseLinkOrmPackage#getXmlTypeConverter()
- * @model kind="class" interface="true" abstract="true"
- * @generated
- */
-public interface XmlTypeConverter extends XmlNamedConverter
-{
-	/**
-	 * Returns the value of the '<em><b>Data Type</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <p>
-	 * If the meaning of the '<em>Data Type</em>' attribute isn't clear,
-	 * there really should be more of a description here...
-	 * </p>
-	 * <!-- end-user-doc -->
-	 * @return the value of the '<em>Data Type</em>' attribute.
-	 * @see #setDataType(String)
-	 * @see org.eclipse.jpt.eclipselink.core.resource.orm.EclipseLinkOrmPackage#getXmlTypeConverter_DataType()
-	 * @model
-	 * @generated
-	 */
-	String getDataType();
-
-	/**
-	 * Sets the value of the '{@link org.eclipse.jpt.eclipselink.core.resource.orm.XmlTypeConverter#getDataType <em>Data Type</em>}' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @param value the new value of the '<em>Data Type</em>' attribute.
-	 * @see #getDataType()
-	 * @generated
-	 */
-	void setDataType(String value);
-
-	/**
-	 * Returns the value of the '<em><b>Object Type</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <p>
-	 * If the meaning of the '<em>Object Type</em>' attribute isn't clear,
-	 * there really should be more of a description here...
-	 * </p>
-	 * <!-- end-user-doc -->
-	 * @return the value of the '<em>Object Type</em>' attribute.
-	 * @see #setObjectType(String)
-	 * @see org.eclipse.jpt.eclipselink.core.resource.orm.EclipseLinkOrmPackage#getXmlTypeConverter_ObjectType()
-	 * @model
-	 * @generated
-	 */
-	String getObjectType();
-
-	/**
-	 * Sets the value of the '{@link org.eclipse.jpt.eclipselink.core.resource.orm.XmlTypeConverter#getObjectType <em>Object Type</em>}' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @param value the new value of the '<em>Object Type</em>' attribute.
-	 * @see #getObjectType()
-	 * @generated
-	 */
-	void setObjectType(String value);
-
-} // XmlTypeConverter
diff --git a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/resource/orm/XmlTypeConverterImpl.java b/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/resource/orm/XmlTypeConverterImpl.java
deleted file mode 100644
index 382dfa0..0000000
--- a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/resource/orm/XmlTypeConverterImpl.java
+++ /dev/null
@@ -1,333 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008, 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.eclipselink.core.resource.orm;
-
-import org.eclipse.emf.common.notify.Notification;
-import org.eclipse.emf.ecore.EClass;
-import org.eclipse.emf.ecore.impl.ENotificationImpl;
-import org.eclipse.jpt.core.resource.xml.AbstractJpaEObject;
-
-/**
- * <!-- begin-user-doc -->
- * 
- * A representation of the model object '<em><b>Xml Type CustomConverter</b></em>'.
- *  
- * Provisional API: This interface is part of an interim API that is still
- * under development and expected to change significantly before reaching
- * stability. It is available at this early stage to solicit feedback from
- * pioneering adopters on the understanding that any code that uses this API
- * will almost certainly be broken (repeatedly) as the API evolves.
- * 
- * @version 2.1
- * @since 2.1
- * 
- * <!-- end-user-doc -->
- *
- *
- * @see org.eclipse.jpt.eclipselink.core.resource.orm.EclipseLinkOrmPackage#getXmlTypeConverterImpl()
- * @model kind="class"
- * @generated
- */
-public class XmlTypeConverterImpl extends AbstractJpaEObject implements XmlTypeConverter
-{
-	/**
-	 * The default value of the '{@link #getName() <em>Name</em>}' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see #getName()
-	 * @generated
-	 * @ordered
-	 */
-	protected static final String NAME_EDEFAULT = null;
-
-	/**
-	 * The cached value of the '{@link #getName() <em>Name</em>}' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see #getName()
-	 * @generated
-	 * @ordered
-	 */
-	protected String name = NAME_EDEFAULT;
-
-	/**
-	 * The default value of the '{@link #getDataType() <em>Data Type</em>}' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see #getDataType()
-	 * @generated
-	 * @ordered
-	 */
-	protected static final String DATA_TYPE_EDEFAULT = null;
-
-	/**
-	 * The cached value of the '{@link #getDataType() <em>Data Type</em>}' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see #getDataType()
-	 * @generated
-	 * @ordered
-	 */
-	protected String dataType = DATA_TYPE_EDEFAULT;
-
-	/**
-	 * The default value of the '{@link #getObjectType() <em>Object Type</em>}' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see #getObjectType()
-	 * @generated
-	 * @ordered
-	 */
-	protected static final String OBJECT_TYPE_EDEFAULT = null;
-
-	/**
-	 * The cached value of the '{@link #getObjectType() <em>Object Type</em>}' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see #getObjectType()
-	 * @generated
-	 * @ordered
-	 */
-	protected String objectType = OBJECT_TYPE_EDEFAULT;
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	protected XmlTypeConverterImpl()
-	{
-		super();
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	protected EClass eStaticClass()
-	{
-		return EclipseLinkOrmPackage.Literals.XML_TYPE_CONVERTER_IMPL;
-	}
-
-	/**
-	 * Returns the value of the '<em><b>Name</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <p>
-	 * If the meaning of the '<em>Name</em>' attribute isn't clear,
-	 * there really should be more of a description here...
-	 * </p>
-	 * <!-- end-user-doc -->
-	 * @return the value of the '<em>Name</em>' attribute.
-	 * @see #setName(String)
-	 * @see org.eclipse.jpt.eclipselink.core.resource.orm.EclipseLinkOrmPackage#getXmlNamedConverter_Name()
-	 * @model
-	 * @generated
-	 */
-	public String getName()
-	{
-		return name;
-	}
-
-	/**
-	 * Sets the value of the '{@link org.eclipse.jpt.eclipselink.core.resource.orm.XmlTypeConverterImpl#getName <em>Name</em>}' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @param value the new value of the '<em>Name</em>' attribute.
-	 * @see #getName()
-	 * @generated
-	 */
-	public void setName(String newName)
-	{
-		String oldName = name;
-		name = newName;
-		if (eNotificationRequired())
-			eNotify(new ENotificationImpl(this, Notification.SET, EclipseLinkOrmPackage.XML_TYPE_CONVERTER_IMPL__NAME, oldName, name));
-	}
-
-	/**
-	 * Returns the value of the '<em><b>Data Type</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <p>
-	 * If the meaning of the '<em>Data Type</em>' attribute isn't clear,
-	 * there really should be more of a description here...
-	 * </p>
-	 * <!-- end-user-doc -->
-	 * @return the value of the '<em>Data Type</em>' attribute.
-	 * @see #setDataType(String)
-	 * @see org.eclipse.jpt.eclipselink.core.resource.orm.EclipseLinkOrmPackage#getXmlTypeConverter_DataType()
-	 * @model
-	 * @generated
-	 */
-	public String getDataType()
-	{
-		return dataType;
-	}
-
-	/**
-	 * Sets the value of the '{@link org.eclipse.jpt.eclipselink.core.resource.orm.XmlTypeConverterImpl#getDataType <em>Data Type</em>}' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @param value the new value of the '<em>Data Type</em>' attribute.
-	 * @see #getDataType()
-	 * @generated
-	 */
-	public void setDataType(String newDataType)
-	{
-		String oldDataType = dataType;
-		dataType = newDataType;
-		if (eNotificationRequired())
-			eNotify(new ENotificationImpl(this, Notification.SET, EclipseLinkOrmPackage.XML_TYPE_CONVERTER_IMPL__DATA_TYPE, oldDataType, dataType));
-	}
-
-	/**
-	 * Returns the value of the '<em><b>Object Type</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <p>
-	 * If the meaning of the '<em>Object Type</em>' attribute isn't clear,
-	 * there really should be more of a description here...
-	 * </p>
-	 * <!-- end-user-doc -->
-	 * @return the value of the '<em>Object Type</em>' attribute.
-	 * @see #setObjectType(String)
-	 * @see org.eclipse.jpt.eclipselink.core.resource.orm.EclipseLinkOrmPackage#getXmlTypeConverter_ObjectType()
-	 * @model
-	 * @generated
-	 */
-	public String getObjectType()
-	{
-		return objectType;
-	}
-
-	/**
-	 * Sets the value of the '{@link org.eclipse.jpt.eclipselink.core.resource.orm.XmlTypeConverterImpl#getObjectType <em>Object Type</em>}' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @param value the new value of the '<em>Object Type</em>' attribute.
-	 * @see #getObjectType()
-	 * @generated
-	 */
-	public void setObjectType(String newObjectType)
-	{
-		String oldObjectType = objectType;
-		objectType = newObjectType;
-		if (eNotificationRequired())
-			eNotify(new ENotificationImpl(this, Notification.SET, EclipseLinkOrmPackage.XML_TYPE_CONVERTER_IMPL__OBJECT_TYPE, oldObjectType, objectType));
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public Object eGet(int featureID, boolean resolve, boolean coreType)
-	{
-		switch (featureID)
-		{
-			case EclipseLinkOrmPackage.XML_TYPE_CONVERTER_IMPL__NAME:
-				return getName();
-			case EclipseLinkOrmPackage.XML_TYPE_CONVERTER_IMPL__DATA_TYPE:
-				return getDataType();
-			case EclipseLinkOrmPackage.XML_TYPE_CONVERTER_IMPL__OBJECT_TYPE:
-				return getObjectType();
-		}
-		return super.eGet(featureID, resolve, coreType);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public void eSet(int featureID, Object newValue)
-	{
-		switch (featureID)
-		{
-			case EclipseLinkOrmPackage.XML_TYPE_CONVERTER_IMPL__NAME:
-				setName((String)newValue);
-				return;
-			case EclipseLinkOrmPackage.XML_TYPE_CONVERTER_IMPL__DATA_TYPE:
-				setDataType((String)newValue);
-				return;
-			case EclipseLinkOrmPackage.XML_TYPE_CONVERTER_IMPL__OBJECT_TYPE:
-				setObjectType((String)newValue);
-				return;
-		}
-		super.eSet(featureID, newValue);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public void eUnset(int featureID)
-	{
-		switch (featureID)
-		{
-			case EclipseLinkOrmPackage.XML_TYPE_CONVERTER_IMPL__NAME:
-				setName(NAME_EDEFAULT);
-				return;
-			case EclipseLinkOrmPackage.XML_TYPE_CONVERTER_IMPL__DATA_TYPE:
-				setDataType(DATA_TYPE_EDEFAULT);
-				return;
-			case EclipseLinkOrmPackage.XML_TYPE_CONVERTER_IMPL__OBJECT_TYPE:
-				setObjectType(OBJECT_TYPE_EDEFAULT);
-				return;
-		}
-		super.eUnset(featureID);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public boolean eIsSet(int featureID)
-	{
-		switch (featureID)
-		{
-			case EclipseLinkOrmPackage.XML_TYPE_CONVERTER_IMPL__NAME:
-				return NAME_EDEFAULT == null ? name != null : !NAME_EDEFAULT.equals(name);
-			case EclipseLinkOrmPackage.XML_TYPE_CONVERTER_IMPL__DATA_TYPE:
-				return DATA_TYPE_EDEFAULT == null ? dataType != null : !DATA_TYPE_EDEFAULT.equals(dataType);
-			case EclipseLinkOrmPackage.XML_TYPE_CONVERTER_IMPL__OBJECT_TYPE:
-				return OBJECT_TYPE_EDEFAULT == null ? objectType != null : !OBJECT_TYPE_EDEFAULT.equals(objectType);
-		}
-		return super.eIsSet(featureID);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public String toString()
-	{
-		if (eIsProxy()) return super.toString();
-
-		StringBuffer result = new StringBuffer(super.toString());
-		result.append(" (name: ");
-		result.append(name);
-		result.append(", dataType: ");
-		result.append(dataType);
-		result.append(", objectType: ");
-		result.append(objectType);
-		result.append(')');
-		return result.toString();
-	}
-
-} // XmlTypeConverter
diff --git a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/resource/orm/XmlVariableOneToOne.java b/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/resource/orm/XmlVariableOneToOne.java
deleted file mode 100644
index fd53b42..0000000
--- a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/resource/orm/XmlVariableOneToOne.java
+++ /dev/null
@@ -1,60 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.eclipselink.core.resource.orm;
-
-import org.eclipse.emf.common.util.EList;
-
-import org.eclipse.jpt.core.resource.orm.XmlAttributeMapping;
-
-/**
- * <!-- begin-user-doc -->
- * A representation of the model object '<em><b>Xml Variable One To One</b></em>'.
- *  
- * Provisional API: This interface is part of an interim API that is still
- * under development and expected to change significantly before reaching
- * stability. It is available at this early stage to solicit feedback from
- * pioneering adopters on the understanding that any code that uses this API
- * will almost certainly be broken (repeatedly) as the API evolves.
- * 
- * @version 2.2
- * @since 2.2
- * 
- * <!-- end-user-doc -->
- *
- * <p>
- * The following features are supported:
- * <ul>
- *   <li>{@link org.eclipse.jpt.eclipselink.core.resource.orm.XmlVariableOneToOne#getProperties <em>Properties</em>}</li>
- * </ul>
- * </p>
- *
- * @see org.eclipse.jpt.eclipselink.core.resource.orm.EclipseLinkOrmPackage#getXmlVariableOneToOne()
- * @model kind="class" interface="true" abstract="true"
- * @generated
- */
-public interface XmlVariableOneToOne extends XmlAttributeMapping, XmlAccessMethodsHolder
-{
-	/**
-	 * Returns the value of the '<em><b>Properties</b></em>' containment reference list.
-	 * The list contents are of type {@link org.eclipse.jpt.eclipselink.core.resource.orm.XmlProperty}.
-	 * <!-- begin-user-doc -->
-	 * <p>
-	 * If the meaning of the '<em>Properties</em>' containment reference list isn't clear,
-	 * there really should be more of a description here...
-	 * </p>
-	 * <!-- end-user-doc -->
-	 * @return the value of the '<em>Properties</em>' containment reference list.
-	 * @see org.eclipse.jpt.eclipselink.core.resource.orm.EclipseLinkOrmPackage#getXmlVariableOneToOne_Properties()
-	 * @model containment="true"
-	 * @generated
-	 */
-	EList<XmlProperty> getProperties();
-
-} // XmlVariableOneToOne
diff --git a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/resource/orm/XmlVariableOneToOneImpl.java b/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/resource/orm/XmlVariableOneToOneImpl.java
deleted file mode 100644
index 87021c9..0000000
--- a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/resource/orm/XmlVariableOneToOneImpl.java
+++ /dev/null
@@ -1,329 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.eclipselink.core.resource.orm;
-
-import java.util.Collection;
-
-import org.eclipse.emf.common.notify.Notification;
-import org.eclipse.emf.common.notify.NotificationChain;
-
-import org.eclipse.emf.common.util.EList;
-
-import org.eclipse.emf.ecore.EClass;
-import org.eclipse.emf.ecore.InternalEObject;
-
-import org.eclipse.emf.ecore.impl.ENotificationImpl;
-
-import org.eclipse.emf.ecore.util.EObjectContainmentEList;
-import org.eclipse.emf.ecore.util.InternalEList;
-
-import org.eclipse.jpt.core.resource.orm.AbstractXmlAttributeMapping;
-import org.eclipse.jpt.eclipselink.core.EclipseLinkMappingKeys;
-
-/**
- * <!-- begin-user-doc -->
- * A representation of the model object '<em><b>Xml Variable One To One Impl</b></em>'.
- *  
- * Provisional API: This interface is part of an interim API that is still
- * under development and expected to change significantly before reaching
- * stability. It is available at this early stage to solicit feedback from
- * pioneering adopters on the understanding that any code that uses this API
- * will almost certainly be broken (repeatedly) as the API evolves.
- * 
- * @version 2.2
- * @since 2.2
- * 
- * <!-- end-user-doc -->
- *
- *
- * @see org.eclipse.jpt.eclipselink.core.resource.orm.EclipseLinkOrmPackage#getXmlVariableOneToOneImpl()
- * @model kind="class"
- * @generated
- */
-public class XmlVariableOneToOneImpl extends AbstractXmlAttributeMapping implements XmlVariableOneToOne
-{
-	/**
-	 * The cached value of the '{@link #getAccessMethods() <em>Access Methods</em>}' containment reference.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see #getAccessMethods()
-	 * @generated
-	 * @ordered
-	 */
-	protected XmlAccessMethods accessMethods;
-
-	/**
-	 * The cached value of the '{@link #getProperties() <em>Properties</em>}' containment reference list.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see #getProperties()
-	 * @generated
-	 * @ordered
-	 */
-	protected EList<XmlProperty> properties;
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	protected XmlVariableOneToOneImpl()
-	{
-		super();
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	protected EClass eStaticClass()
-	{
-		return EclipseLinkOrmPackage.Literals.XML_VARIABLE_ONE_TO_ONE_IMPL;
-	}
-
-	/**
-	 * Returns the value of the '<em><b>Access Methods</b></em>' containment reference.
-	 * <!-- begin-user-doc -->
-	 * <p>
-	 * If the meaning of the '<em>Access Methods</em>' containment reference isn't clear,
-	 * there really should be more of a description here...
-	 * </p>
-	 * <!-- end-user-doc -->
-	 * @return the value of the '<em>Access Methods</em>' containment reference.
-	 * @see #setAccessMethods(XmlAccessMethods)
-	 * @see org.eclipse.jpt.eclipselink.core.resource.orm.EclipseLinkOrmPackage#getXmlAccessMethodsHolder_AccessMethods()
-	 * @model containment="true"
-	 * @generated
-	 */
-	public XmlAccessMethods getAccessMethods()
-	{
-		return accessMethods;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public NotificationChain basicSetAccessMethods(XmlAccessMethods newAccessMethods, NotificationChain msgs)
-	{
-		XmlAccessMethods oldAccessMethods = accessMethods;
-		accessMethods = newAccessMethods;
-		if (eNotificationRequired())
-		{
-			ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, EclipseLinkOrmPackage.XML_VARIABLE_ONE_TO_ONE_IMPL__ACCESS_METHODS, oldAccessMethods, newAccessMethods);
-			if (msgs == null) msgs = notification; else msgs.add(notification);
-		}
-		return msgs;
-	}
-
-	/**
-	 * Sets the value of the '{@link org.eclipse.jpt.eclipselink.core.resource.orm.XmlVariableOneToOneImpl#getAccessMethods <em>Access Methods</em>}' containment reference.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @param value the new value of the '<em>Access Methods</em>' containment reference.
-	 * @see #getAccessMethods()
-	 * @generated
-	 */
-	public void setAccessMethods(XmlAccessMethods newAccessMethods)
-	{
-		if (newAccessMethods != accessMethods)
-		{
-			NotificationChain msgs = null;
-			if (accessMethods != null)
-				msgs = ((InternalEObject)accessMethods).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - EclipseLinkOrmPackage.XML_VARIABLE_ONE_TO_ONE_IMPL__ACCESS_METHODS, null, msgs);
-			if (newAccessMethods != null)
-				msgs = ((InternalEObject)newAccessMethods).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - EclipseLinkOrmPackage.XML_VARIABLE_ONE_TO_ONE_IMPL__ACCESS_METHODS, null, msgs);
-			msgs = basicSetAccessMethods(newAccessMethods, msgs);
-			if (msgs != null) msgs.dispatch();
-		}
-		else if (eNotificationRequired())
-			eNotify(new ENotificationImpl(this, Notification.SET, EclipseLinkOrmPackage.XML_VARIABLE_ONE_TO_ONE_IMPL__ACCESS_METHODS, newAccessMethods, newAccessMethods));
-	}
-
-	/**
-	 * Returns the value of the '<em><b>Properties</b></em>' containment reference list.
-	 * The list contents are of type {@link org.eclipse.jpt.eclipselink.core.resource.orm.XmlProperty}.
-	 * <!-- begin-user-doc -->
-	 * <p>
-	 * If the meaning of the '<em>Properties</em>' containment reference list isn't clear,
-	 * there really should be more of a description here...
-	 * </p>
-	 * <!-- end-user-doc -->
-	 * @return the value of the '<em>Properties</em>' containment reference list.
-	 * @see org.eclipse.jpt.eclipselink.core.resource.orm.EclipseLinkOrmPackage#getXmlVariableOneToOne_Properties()
-	 * @model containment="true"
-	 * @generated
-	 */
-	public EList<XmlProperty> getProperties()
-	{
-		if (properties == null)
-		{
-			properties = new EObjectContainmentEList<XmlProperty>(XmlProperty.class, this, EclipseLinkOrmPackage.XML_VARIABLE_ONE_TO_ONE_IMPL__PROPERTIES);
-		}
-		return properties;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs)
-	{
-		switch (featureID)
-		{
-			case EclipseLinkOrmPackage.XML_VARIABLE_ONE_TO_ONE_IMPL__ACCESS_METHODS:
-				return basicSetAccessMethods(null, msgs);
-			case EclipseLinkOrmPackage.XML_VARIABLE_ONE_TO_ONE_IMPL__PROPERTIES:
-				return ((InternalEList<?>)getProperties()).basicRemove(otherEnd, msgs);
-		}
-		return super.eInverseRemove(otherEnd, featureID, msgs);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public Object eGet(int featureID, boolean resolve, boolean coreType)
-	{
-		switch (featureID)
-		{
-			case EclipseLinkOrmPackage.XML_VARIABLE_ONE_TO_ONE_IMPL__ACCESS_METHODS:
-				return getAccessMethods();
-			case EclipseLinkOrmPackage.XML_VARIABLE_ONE_TO_ONE_IMPL__PROPERTIES:
-				return getProperties();
-		}
-		return super.eGet(featureID, resolve, coreType);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@SuppressWarnings("unchecked")
-	@Override
-	public void eSet(int featureID, Object newValue)
-	{
-		switch (featureID)
-		{
-			case EclipseLinkOrmPackage.XML_VARIABLE_ONE_TO_ONE_IMPL__ACCESS_METHODS:
-				setAccessMethods((XmlAccessMethods)newValue);
-				return;
-			case EclipseLinkOrmPackage.XML_VARIABLE_ONE_TO_ONE_IMPL__PROPERTIES:
-				getProperties().clear();
-				getProperties().addAll((Collection<? extends XmlProperty>)newValue);
-				return;
-		}
-		super.eSet(featureID, newValue);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public void eUnset(int featureID)
-	{
-		switch (featureID)
-		{
-			case EclipseLinkOrmPackage.XML_VARIABLE_ONE_TO_ONE_IMPL__ACCESS_METHODS:
-				setAccessMethods((XmlAccessMethods)null);
-				return;
-			case EclipseLinkOrmPackage.XML_VARIABLE_ONE_TO_ONE_IMPL__PROPERTIES:
-				getProperties().clear();
-				return;
-		}
-		super.eUnset(featureID);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public boolean eIsSet(int featureID)
-	{
-		switch (featureID)
-		{
-			case EclipseLinkOrmPackage.XML_VARIABLE_ONE_TO_ONE_IMPL__ACCESS_METHODS:
-				return accessMethods != null;
-			case EclipseLinkOrmPackage.XML_VARIABLE_ONE_TO_ONE_IMPL__PROPERTIES:
-				return properties != null && !properties.isEmpty();
-		}
-		return super.eIsSet(featureID);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public int eBaseStructuralFeatureID(int derivedFeatureID, Class<?> baseClass)
-	{
-		if (baseClass == XmlAccessMethodsHolder.class)
-		{
-			switch (derivedFeatureID)
-			{
-				case EclipseLinkOrmPackage.XML_VARIABLE_ONE_TO_ONE_IMPL__ACCESS_METHODS: return EclipseLinkOrmPackage.XML_ACCESS_METHODS_HOLDER__ACCESS_METHODS;
-				default: return -1;
-			}
-		}
-		if (baseClass == XmlVariableOneToOne.class)
-		{
-			switch (derivedFeatureID)
-			{
-				case EclipseLinkOrmPackage.XML_VARIABLE_ONE_TO_ONE_IMPL__PROPERTIES: return EclipseLinkOrmPackage.XML_VARIABLE_ONE_TO_ONE__PROPERTIES;
-				default: return -1;
-			}
-		}
-		return super.eBaseStructuralFeatureID(derivedFeatureID, baseClass);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public int eDerivedStructuralFeatureID(int baseFeatureID, Class<?> baseClass)
-	{
-		if (baseClass == XmlAccessMethodsHolder.class)
-		{
-			switch (baseFeatureID)
-			{
-				case EclipseLinkOrmPackage.XML_ACCESS_METHODS_HOLDER__ACCESS_METHODS: return EclipseLinkOrmPackage.XML_VARIABLE_ONE_TO_ONE_IMPL__ACCESS_METHODS;
-				default: return -1;
-			}
-		}
-		if (baseClass == XmlVariableOneToOne.class)
-		{
-			switch (baseFeatureID)
-			{
-				case EclipseLinkOrmPackage.XML_VARIABLE_ONE_TO_ONE__PROPERTIES: return EclipseLinkOrmPackage.XML_VARIABLE_ONE_TO_ONE_IMPL__PROPERTIES;
-				default: return -1;
-			}
-		}
-		return super.eDerivedStructuralFeatureID(baseFeatureID, baseClass);
-	}
-
-	public String getMappingKey() {
-		return EclipseLinkMappingKeys.VARIABLE_ONE_TO_ONE_ATTRIBUTE_MAPPING_KEY;
-	}
-} // XmlVariableOneToOneImpl
diff --git a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/resource/orm/XmlVersion.java b/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/resource/orm/XmlVersion.java
deleted file mode 100644
index 73e295a..0000000
--- a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/resource/orm/XmlVersion.java
+++ /dev/null
@@ -1,60 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.eclipselink.core.resource.orm;
-
-import org.eclipse.emf.common.util.EList;
-
-
-/**
- * <!-- begin-user-doc -->
- * 
- * A representation of the model object '<em><b>Xml Version</b></em>'.
- *  
- * Provisional API: This interface is part of an interim API that is still
- * under development and expected to change significantly before reaching
- * stability. It is available at this early stage to solicit feedback from
- * pioneering adopters on the understanding that any code that uses this API
- * will almost certainly be broken (repeatedly) as the API evolves.
- * 
- * @version 2.1
- * @since 2.1
- * 
- * <!-- end-user-doc -->
- *
- * <p>
- * The following features are supported:
- * <ul>
- *   <li>{@link org.eclipse.jpt.eclipselink.core.resource.orm.XmlVersion#getProperties <em>Properties</em>}</li>
- * </ul>
- * </p>
- *
- * @see org.eclipse.jpt.eclipselink.core.resource.orm.EclipseLinkOrmPackage#getXmlVersion()
- * @model kind="class" interface="true" abstract="true"
- * @generated
- */
-public interface XmlVersion extends org.eclipse.jpt.core.resource.orm.XmlVersion, XmlMutable, XmlConvertibleMapping, XmlAccessMethodsHolder
-{
-
-	/**
-	 * Returns the value of the '<em><b>Properties</b></em>' containment reference list.
-	 * The list contents are of type {@link org.eclipse.jpt.eclipselink.core.resource.orm.XmlProperty}.
-	 * <!-- begin-user-doc -->
-	 * <p>
-	 * If the meaning of the '<em>Properties</em>' containment reference list isn't clear,
-	 * there really should be more of a description here...
-	 * </p>
-	 * <!-- end-user-doc -->
-	 * @return the value of the '<em>Properties</em>' containment reference list.
-	 * @see org.eclipse.jpt.eclipselink.core.resource.orm.EclipseLinkOrmPackage#getXmlVersion_Properties()
-	 * @model containment="true"
-	 * @generated
-	 */
-	EList<XmlProperty> getProperties();
-} // XmlVersion
diff --git a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/resource/orm/XmlVersionImpl.java b/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/resource/orm/XmlVersionImpl.java
deleted file mode 100644
index b6d9706..0000000
--- a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/resource/orm/XmlVersionImpl.java
+++ /dev/null
@@ -1,859 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.eclipselink.core.resource.orm;
-
-import java.util.Collection;
-import org.eclipse.emf.common.notify.Notification;
-import org.eclipse.emf.common.notify.NotificationChain;
-import org.eclipse.emf.common.util.EList;
-import org.eclipse.emf.ecore.EClass;
-import org.eclipse.emf.ecore.InternalEObject;
-import org.eclipse.emf.ecore.impl.ENotificationImpl;
-import org.eclipse.emf.ecore.util.EObjectContainmentEList;
-import org.eclipse.emf.ecore.util.InternalEList;
-import org.eclipse.jpt.core.utility.TextRange;
-import org.eclipse.jpt.eclipselink.core.internal.resource.orm.translators.EclipseLinkOrmXmlMapper;
-
-/**
- * <!-- begin-user-doc -->
- * 
- * A representation of the model object '<em><b>Xml Version</b></em>'.
- *  
- * Provisional API: This interface is part of an interim API that is still
- * under development and expected to change significantly before reaching
- * stability. It is available at this early stage to solicit feedback from
- * pioneering adopters on the understanding that any code that uses this API
- * will almost certainly be broken (repeatedly) as the API evolves.
- * 
- * @version 2.1
- * @since 2.1
- * 
- * <!-- end-user-doc -->
- *
- *
- * @see org.eclipse.jpt.eclipselink.core.resource.orm.EclipseLinkOrmPackage#getXmlVersionImpl()
- * @model kind="class"
- * @generated
- */
-public class XmlVersionImpl extends org.eclipse.jpt.core.resource.orm.XmlVersionImpl implements XmlVersion
-{
-	/**
-	 * The default value of the '{@link #getMutable() <em>Mutable</em>}' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see #getMutable()
-	 * @generated
-	 * @ordered
-	 */
-	protected static final Boolean MUTABLE_EDEFAULT = null;
-
-	/**
-	 * The cached value of the '{@link #getMutable() <em>Mutable</em>}' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see #getMutable()
-	 * @generated
-	 * @ordered
-	 */
-	protected Boolean mutable = MUTABLE_EDEFAULT;
-
-	/**
-	 * The cached value of the '{@link #getConverter() <em>Converter</em>}' containment reference.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see #getConverter()
-	 * @generated
-	 * @ordered
-	 */
-	protected XmlConverter converter;
-
-	/**
-	 * The cached value of the '{@link #getTypeConverter() <em>Type Converter</em>}' containment reference.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see #getTypeConverter()
-	 * @generated
-	 * @ordered
-	 */
-	protected XmlTypeConverter typeConverter;
-
-	/**
-	 * The cached value of the '{@link #getObjectTypeConverter() <em>Object Type Converter</em>}' containment reference.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see #getObjectTypeConverter()
-	 * @generated
-	 * @ordered
-	 */
-	protected XmlObjectTypeConverter objectTypeConverter;
-
-	/**
-	 * The cached value of the '{@link #getStructConverter() <em>Struct Converter</em>}' containment reference.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see #getStructConverter()
-	 * @generated
-	 * @ordered
-	 */
-	protected XmlStructConverter structConverter;
-
-	/**
-	 * The default value of the '{@link #getConvert() <em>Convert</em>}' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see #getConvert()
-	 * @generated
-	 * @ordered
-	 */
-	protected static final String CONVERT_EDEFAULT = null;
-
-	/**
-	 * The cached value of the '{@link #getConvert() <em>Convert</em>}' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see #getConvert()
-	 * @generated
-	 * @ordered
-	 */
-	protected String convert = CONVERT_EDEFAULT;
-
-	/**
-	 * The cached value of the '{@link #getAccessMethods() <em>Access Methods</em>}' containment reference.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see #getAccessMethods()
-	 * @generated
-	 * @ordered
-	 */
-	protected XmlAccessMethods accessMethods;
-
-	/**
-	 * The cached value of the '{@link #getProperties() <em>Properties</em>}' containment reference list.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see #getProperties()
-	 * @generated
-	 * @ordered
-	 */
-	protected EList<XmlProperty> properties;
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	protected XmlVersionImpl()
-	{
-		super();
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	protected EClass eStaticClass()
-	{
-		return EclipseLinkOrmPackage.Literals.XML_VERSION_IMPL;
-	}
-
-	/**
-	 * Returns the value of the '<em><b>Mutable</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <p>
-	 * If the meaning of the '<em>Mutable</em>' attribute isn't clear,
-	 * there really should be more of a description here...
-	 * </p>
-	 * <!-- end-user-doc -->
-	 * @return the value of the '<em>Mutable</em>' attribute.
-	 * @see #setMutable(Boolean)
-	 * @see org.eclipse.jpt.eclipselink.core.resource.orm.EclipseLinkOrmPackage#getXmlMutable_Mutable()
-	 * @model dataType="org.eclipse.emf.ecore.xml.type.BooleanObject"
-	 * @generated
-	 */
-	public Boolean getMutable()
-	{
-		return mutable;
-	}
-
-	/**
-	 * Sets the value of the '{@link org.eclipse.jpt.eclipselink.core.resource.orm.XmlVersionImpl#getMutable <em>Mutable</em>}' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @param value the new value of the '<em>Mutable</em>' attribute.
-	 * @see #getMutable()
-	 * @generated
-	 */
-	public void setMutable(Boolean newMutable)
-	{
-		Boolean oldMutable = mutable;
-		mutable = newMutable;
-		if (eNotificationRequired())
-			eNotify(new ENotificationImpl(this, Notification.SET, EclipseLinkOrmPackage.XML_VERSION_IMPL__MUTABLE, oldMutable, mutable));
-	}
-
-	/**
-	 * Returns the value of the '<em><b>Convert</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <p>
-	 * If the meaning of the '<em>Convert</em>' attribute isn't clear,
-	 * there really should be more of a description here...
-	 * </p>
-	 * <!-- end-user-doc -->
-	 * @return the value of the '<em>Convert</em>' attribute.
-	 * @see #setConvert(String)
-	 * @see org.eclipse.jpt.eclipselink.core.resource.orm.EclipseLinkOrmPackage#getXmlConvertibleMapping_Convert()
-	 * @model
-	 * @generated
-	 */
-	public String getConvert()
-	{
-		return convert;
-	}
-
-	/**
-	 * Sets the value of the '{@link org.eclipse.jpt.eclipselink.core.resource.orm.XmlVersionImpl#getConvert <em>Convert</em>}' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @param value the new value of the '<em>Convert</em>' attribute.
-	 * @see #getConvert()
-	 * @generated
-	 */
-	public void setConvert(String newConvert)
-	{
-		String oldConvert = convert;
-		convert = newConvert;
-		if (eNotificationRequired())
-			eNotify(new ENotificationImpl(this, Notification.SET, EclipseLinkOrmPackage.XML_VERSION_IMPL__CONVERT, oldConvert, convert));
-	}
-
-	/**
-	 * Returns the value of the '<em><b>Access Methods</b></em>' containment reference.
-	 * <!-- begin-user-doc -->
-	 * <p>
-	 * If the meaning of the '<em>Access Methods</em>' containment reference isn't clear,
-	 * there really should be more of a description here...
-	 * </p>
-	 * <!-- end-user-doc -->
-	 * @return the value of the '<em>Access Methods</em>' containment reference.
-	 * @see #setAccessMethods(XmlAccessMethods)
-	 * @see org.eclipse.jpt.eclipselink.core.resource.orm.EclipseLinkOrmPackage#getXmlAccessMethodsHolder_AccessMethods()
-	 * @model containment="true"
-	 * @generated
-	 */
-	public XmlAccessMethods getAccessMethods()
-	{
-		return accessMethods;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public NotificationChain basicSetAccessMethods(XmlAccessMethods newAccessMethods, NotificationChain msgs)
-	{
-		XmlAccessMethods oldAccessMethods = accessMethods;
-		accessMethods = newAccessMethods;
-		if (eNotificationRequired())
-		{
-			ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, EclipseLinkOrmPackage.XML_VERSION_IMPL__ACCESS_METHODS, oldAccessMethods, newAccessMethods);
-			if (msgs == null) msgs = notification; else msgs.add(notification);
-		}
-		return msgs;
-	}
-
-	/**
-	 * Sets the value of the '{@link org.eclipse.jpt.eclipselink.core.resource.orm.XmlVersionImpl#getAccessMethods <em>Access Methods</em>}' containment reference.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @param value the new value of the '<em>Access Methods</em>' containment reference.
-	 * @see #getAccessMethods()
-	 * @generated
-	 */
-	public void setAccessMethods(XmlAccessMethods newAccessMethods)
-	{
-		if (newAccessMethods != accessMethods)
-		{
-			NotificationChain msgs = null;
-			if (accessMethods != null)
-				msgs = ((InternalEObject)accessMethods).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - EclipseLinkOrmPackage.XML_VERSION_IMPL__ACCESS_METHODS, null, msgs);
-			if (newAccessMethods != null)
-				msgs = ((InternalEObject)newAccessMethods).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - EclipseLinkOrmPackage.XML_VERSION_IMPL__ACCESS_METHODS, null, msgs);
-			msgs = basicSetAccessMethods(newAccessMethods, msgs);
-			if (msgs != null) msgs.dispatch();
-		}
-		else if (eNotificationRequired())
-			eNotify(new ENotificationImpl(this, Notification.SET, EclipseLinkOrmPackage.XML_VERSION_IMPL__ACCESS_METHODS, newAccessMethods, newAccessMethods));
-	}
-
-	/**
-	 * Returns the value of the '<em><b>Properties</b></em>' containment reference list.
-	 * The list contents are of type {@link org.eclipse.jpt.eclipselink.core.resource.orm.XmlProperty}.
-	 * <!-- begin-user-doc -->
-	 * <p>
-	 * If the meaning of the '<em>Properties</em>' containment reference list isn't clear,
-	 * there really should be more of a description here...
-	 * </p>
-	 * <!-- end-user-doc -->
-	 * @return the value of the '<em>Properties</em>' containment reference list.
-	 * @see org.eclipse.jpt.eclipselink.core.resource.orm.EclipseLinkOrmPackage#getXmlVersion_Properties()
-	 * @model containment="true"
-	 * @generated
-	 */
-	public EList<XmlProperty> getProperties()
-	{
-		if (properties == null)
-		{
-			properties = new EObjectContainmentEList<XmlProperty>(XmlProperty.class, this, EclipseLinkOrmPackage.XML_VERSION_IMPL__PROPERTIES);
-		}
-		return properties;
-	}
-
-	/**
-	 * Returns the value of the '<em><b>Converter</b></em>' containment reference.
-	 * <!-- begin-user-doc -->
-	 * <p>
-	 * If the meaning of the '<em>CustomConverter</em>' containment reference isn't clear,
-	 * there really should be more of a description here...
-	 * </p>
-	 * <!-- end-user-doc -->
-	 * @return the value of the '<em>Converter</em>' containment reference.
-	 * @see #setConverter(XmlConverter)
-	 * @see org.eclipse.jpt.eclipselink.core.resource.orm.EclipseLinkOrmPackage#getXmlConverterHolder_Converter()
-	 * @model containment="true"
-	 * @generated
-	 */
-	public XmlConverter getConverter()
-	{
-		return converter;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public NotificationChain basicSetConverter(XmlConverter newConverter, NotificationChain msgs)
-	{
-		XmlConverter oldConverter = converter;
-		converter = newConverter;
-		if (eNotificationRequired())
-		{
-			ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, EclipseLinkOrmPackage.XML_VERSION_IMPL__CONVERTER, oldConverter, newConverter);
-			if (msgs == null) msgs = notification; else msgs.add(notification);
-		}
-		return msgs;
-	}
-
-	/**
-	 * Sets the value of the '{@link org.eclipse.jpt.eclipselink.core.resource.orm.XmlVersionImpl#getConverter <em>Converter</em>}' containment reference.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @param value the new value of the '<em>Converter</em>' containment reference.
-	 * @see #getConverter()
-	 * @generated
-	 */
-	public void setConverter(XmlConverter newConverter)
-	{
-		if (newConverter != converter)
-		{
-			NotificationChain msgs = null;
-			if (converter != null)
-				msgs = ((InternalEObject)converter).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - EclipseLinkOrmPackage.XML_VERSION_IMPL__CONVERTER, null, msgs);
-			if (newConverter != null)
-				msgs = ((InternalEObject)newConverter).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - EclipseLinkOrmPackage.XML_VERSION_IMPL__CONVERTER, null, msgs);
-			msgs = basicSetConverter(newConverter, msgs);
-			if (msgs != null) msgs.dispatch();
-		}
-		else if (eNotificationRequired())
-			eNotify(new ENotificationImpl(this, Notification.SET, EclipseLinkOrmPackage.XML_VERSION_IMPL__CONVERTER, newConverter, newConverter));
-	}
-
-	/**
-	 * Returns the value of the '<em><b>Type Converter</b></em>' containment reference.
-	 * <!-- begin-user-doc -->
-	 * <p>
-	 * If the meaning of the '<em>Type CustomConverter</em>' containment reference isn't clear,
-	 * there really should be more of a description here...
-	 * </p>
-	 * <!-- end-user-doc -->
-	 * @return the value of the '<em>Type Converter</em>' containment reference.
-	 * @see #setTypeConverter(XmlTypeConverter)
-	 * @see org.eclipse.jpt.eclipselink.core.resource.orm.EclipseLinkOrmPackage#getXmlConverterHolder_TypeConverter()
-	 * @model containment="true"
-	 * @generated
-	 */
-	public XmlTypeConverter getTypeConverter()
-	{
-		return typeConverter;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public NotificationChain basicSetTypeConverter(XmlTypeConverter newTypeConverter, NotificationChain msgs)
-	{
-		XmlTypeConverter oldTypeConverter = typeConverter;
-		typeConverter = newTypeConverter;
-		if (eNotificationRequired())
-		{
-			ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, EclipseLinkOrmPackage.XML_VERSION_IMPL__TYPE_CONVERTER, oldTypeConverter, newTypeConverter);
-			if (msgs == null) msgs = notification; else msgs.add(notification);
-		}
-		return msgs;
-	}
-
-	/**
-	 * Sets the value of the '{@link org.eclipse.jpt.eclipselink.core.resource.orm.XmlVersionImpl#getTypeConverter <em>Type Converter</em>}' containment reference.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @param value the new value of the '<em>Type Converter</em>' containment reference.
-	 * @see #getTypeConverter()
-	 * @generated
-	 */
-	public void setTypeConverter(XmlTypeConverter newTypeConverter)
-	{
-		if (newTypeConverter != typeConverter)
-		{
-			NotificationChain msgs = null;
-			if (typeConverter != null)
-				msgs = ((InternalEObject)typeConverter).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - EclipseLinkOrmPackage.XML_VERSION_IMPL__TYPE_CONVERTER, null, msgs);
-			if (newTypeConverter != null)
-				msgs = ((InternalEObject)newTypeConverter).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - EclipseLinkOrmPackage.XML_VERSION_IMPL__TYPE_CONVERTER, null, msgs);
-			msgs = basicSetTypeConverter(newTypeConverter, msgs);
-			if (msgs != null) msgs.dispatch();
-		}
-		else if (eNotificationRequired())
-			eNotify(new ENotificationImpl(this, Notification.SET, EclipseLinkOrmPackage.XML_VERSION_IMPL__TYPE_CONVERTER, newTypeConverter, newTypeConverter));
-	}
-
-	/**
-	 * Returns the value of the '<em><b>Object Type Converter</b></em>' containment reference.
-	 * <!-- begin-user-doc -->
-	 * <p>
-	 * If the meaning of the '<em>Object Type CustomConverter</em>' containment reference isn't clear,
-	 * there really should be more of a description here...
-	 * </p>
-	 * <!-- end-user-doc -->
-	 * @return the value of the '<em>Object Type Converter</em>' containment reference.
-	 * @see #setObjectTypeConverter(XmlObjectTypeConverter)
-	 * @see org.eclipse.jpt.eclipselink.core.resource.orm.EclipseLinkOrmPackage#getXmlConverterHolder_ObjectTypeConverter()
-	 * @model containment="true"
-	 * @generated
-	 */
-	public XmlObjectTypeConverter getObjectTypeConverter()
-	{
-		return objectTypeConverter;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public NotificationChain basicSetObjectTypeConverter(XmlObjectTypeConverter newObjectTypeConverter, NotificationChain msgs)
-	{
-		XmlObjectTypeConverter oldObjectTypeConverter = objectTypeConverter;
-		objectTypeConverter = newObjectTypeConverter;
-		if (eNotificationRequired())
-		{
-			ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, EclipseLinkOrmPackage.XML_VERSION_IMPL__OBJECT_TYPE_CONVERTER, oldObjectTypeConverter, newObjectTypeConverter);
-			if (msgs == null) msgs = notification; else msgs.add(notification);
-		}
-		return msgs;
-	}
-
-	/**
-	 * Sets the value of the '{@link org.eclipse.jpt.eclipselink.core.resource.orm.XmlVersionImpl#getObjectTypeConverter <em>Object Type Converter</em>}' containment reference.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @param value the new value of the '<em>Object Type Converter</em>' containment reference.
-	 * @see #getObjectTypeConverter()
-	 * @generated
-	 */
-	public void setObjectTypeConverter(XmlObjectTypeConverter newObjectTypeConverter)
-	{
-		if (newObjectTypeConverter != objectTypeConverter)
-		{
-			NotificationChain msgs = null;
-			if (objectTypeConverter != null)
-				msgs = ((InternalEObject)objectTypeConverter).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - EclipseLinkOrmPackage.XML_VERSION_IMPL__OBJECT_TYPE_CONVERTER, null, msgs);
-			if (newObjectTypeConverter != null)
-				msgs = ((InternalEObject)newObjectTypeConverter).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - EclipseLinkOrmPackage.XML_VERSION_IMPL__OBJECT_TYPE_CONVERTER, null, msgs);
-			msgs = basicSetObjectTypeConverter(newObjectTypeConverter, msgs);
-			if (msgs != null) msgs.dispatch();
-		}
-		else if (eNotificationRequired())
-			eNotify(new ENotificationImpl(this, Notification.SET, EclipseLinkOrmPackage.XML_VERSION_IMPL__OBJECT_TYPE_CONVERTER, newObjectTypeConverter, newObjectTypeConverter));
-	}
-
-	/**
-	 * Returns the value of the '<em><b>Struct Converter</b></em>' containment reference.
-	 * <!-- begin-user-doc -->
-	 * <p>
-	 * If the meaning of the '<em>Struct CustomConverter</em>' containment reference isn't clear,
-	 * there really should be more of a description here...
-	 * </p>
-	 * <!-- end-user-doc -->
-	 * @return the value of the '<em>Struct Converter</em>' containment reference.
-	 * @see #setStructConverter(XmlStructConverter)
-	 * @see org.eclipse.jpt.eclipselink.core.resource.orm.EclipseLinkOrmPackage#getXmlConverterHolder_StructConverter()
-	 * @model containment="true"
-	 * @generated
-	 */
-	public XmlStructConverter getStructConverter()
-	{
-		return structConverter;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public NotificationChain basicSetStructConverter(XmlStructConverter newStructConverter, NotificationChain msgs)
-	{
-		XmlStructConverter oldStructConverter = structConverter;
-		structConverter = newStructConverter;
-		if (eNotificationRequired())
-		{
-			ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, EclipseLinkOrmPackage.XML_VERSION_IMPL__STRUCT_CONVERTER, oldStructConverter, newStructConverter);
-			if (msgs == null) msgs = notification; else msgs.add(notification);
-		}
-		return msgs;
-	}
-
-	/**
-	 * Sets the value of the '{@link org.eclipse.jpt.eclipselink.core.resource.orm.XmlVersionImpl#getStructConverter <em>Struct Converter</em>}' containment reference.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @param value the new value of the '<em>Struct Converter</em>' containment reference.
-	 * @see #getStructConverter()
-	 * @generated
-	 */
-	public void setStructConverter(XmlStructConverter newStructConverter)
-	{
-		if (newStructConverter != structConverter)
-		{
-			NotificationChain msgs = null;
-			if (structConverter != null)
-				msgs = ((InternalEObject)structConverter).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - EclipseLinkOrmPackage.XML_VERSION_IMPL__STRUCT_CONVERTER, null, msgs);
-			if (newStructConverter != null)
-				msgs = ((InternalEObject)newStructConverter).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - EclipseLinkOrmPackage.XML_VERSION_IMPL__STRUCT_CONVERTER, null, msgs);
-			msgs = basicSetStructConverter(newStructConverter, msgs);
-			if (msgs != null) msgs.dispatch();
-		}
-		else if (eNotificationRequired())
-			eNotify(new ENotificationImpl(this, Notification.SET, EclipseLinkOrmPackage.XML_VERSION_IMPL__STRUCT_CONVERTER, newStructConverter, newStructConverter));
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs)
-	{
-		switch (featureID)
-		{
-			case EclipseLinkOrmPackage.XML_VERSION_IMPL__CONVERTER:
-				return basicSetConverter(null, msgs);
-			case EclipseLinkOrmPackage.XML_VERSION_IMPL__TYPE_CONVERTER:
-				return basicSetTypeConverter(null, msgs);
-			case EclipseLinkOrmPackage.XML_VERSION_IMPL__OBJECT_TYPE_CONVERTER:
-				return basicSetObjectTypeConverter(null, msgs);
-			case EclipseLinkOrmPackage.XML_VERSION_IMPL__STRUCT_CONVERTER:
-				return basicSetStructConverter(null, msgs);
-			case EclipseLinkOrmPackage.XML_VERSION_IMPL__ACCESS_METHODS:
-				return basicSetAccessMethods(null, msgs);
-			case EclipseLinkOrmPackage.XML_VERSION_IMPL__PROPERTIES:
-				return ((InternalEList<?>)getProperties()).basicRemove(otherEnd, msgs);
-		}
-		return super.eInverseRemove(otherEnd, featureID, msgs);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public Object eGet(int featureID, boolean resolve, boolean coreType)
-	{
-		switch (featureID)
-		{
-			case EclipseLinkOrmPackage.XML_VERSION_IMPL__MUTABLE:
-				return getMutable();
-			case EclipseLinkOrmPackage.XML_VERSION_IMPL__CONVERTER:
-				return getConverter();
-			case EclipseLinkOrmPackage.XML_VERSION_IMPL__TYPE_CONVERTER:
-				return getTypeConverter();
-			case EclipseLinkOrmPackage.XML_VERSION_IMPL__OBJECT_TYPE_CONVERTER:
-				return getObjectTypeConverter();
-			case EclipseLinkOrmPackage.XML_VERSION_IMPL__STRUCT_CONVERTER:
-				return getStructConverter();
-			case EclipseLinkOrmPackage.XML_VERSION_IMPL__CONVERT:
-				return getConvert();
-			case EclipseLinkOrmPackage.XML_VERSION_IMPL__ACCESS_METHODS:
-				return getAccessMethods();
-			case EclipseLinkOrmPackage.XML_VERSION_IMPL__PROPERTIES:
-				return getProperties();
-		}
-		return super.eGet(featureID, resolve, coreType);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@SuppressWarnings("unchecked")
-	@Override
-	public void eSet(int featureID, Object newValue)
-	{
-		switch (featureID)
-		{
-			case EclipseLinkOrmPackage.XML_VERSION_IMPL__MUTABLE:
-				setMutable((Boolean)newValue);
-				return;
-			case EclipseLinkOrmPackage.XML_VERSION_IMPL__CONVERTER:
-				setConverter((XmlConverter)newValue);
-				return;
-			case EclipseLinkOrmPackage.XML_VERSION_IMPL__TYPE_CONVERTER:
-				setTypeConverter((XmlTypeConverter)newValue);
-				return;
-			case EclipseLinkOrmPackage.XML_VERSION_IMPL__OBJECT_TYPE_CONVERTER:
-				setObjectTypeConverter((XmlObjectTypeConverter)newValue);
-				return;
-			case EclipseLinkOrmPackage.XML_VERSION_IMPL__STRUCT_CONVERTER:
-				setStructConverter((XmlStructConverter)newValue);
-				return;
-			case EclipseLinkOrmPackage.XML_VERSION_IMPL__CONVERT:
-				setConvert((String)newValue);
-				return;
-			case EclipseLinkOrmPackage.XML_VERSION_IMPL__ACCESS_METHODS:
-				setAccessMethods((XmlAccessMethods)newValue);
-				return;
-			case EclipseLinkOrmPackage.XML_VERSION_IMPL__PROPERTIES:
-				getProperties().clear();
-				getProperties().addAll((Collection<? extends XmlProperty>)newValue);
-				return;
-		}
-		super.eSet(featureID, newValue);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public void eUnset(int featureID)
-	{
-		switch (featureID)
-		{
-			case EclipseLinkOrmPackage.XML_VERSION_IMPL__MUTABLE:
-				setMutable(MUTABLE_EDEFAULT);
-				return;
-			case EclipseLinkOrmPackage.XML_VERSION_IMPL__CONVERTER:
-				setConverter((XmlConverter)null);
-				return;
-			case EclipseLinkOrmPackage.XML_VERSION_IMPL__TYPE_CONVERTER:
-				setTypeConverter((XmlTypeConverter)null);
-				return;
-			case EclipseLinkOrmPackage.XML_VERSION_IMPL__OBJECT_TYPE_CONVERTER:
-				setObjectTypeConverter((XmlObjectTypeConverter)null);
-				return;
-			case EclipseLinkOrmPackage.XML_VERSION_IMPL__STRUCT_CONVERTER:
-				setStructConverter((XmlStructConverter)null);
-				return;
-			case EclipseLinkOrmPackage.XML_VERSION_IMPL__CONVERT:
-				setConvert(CONVERT_EDEFAULT);
-				return;
-			case EclipseLinkOrmPackage.XML_VERSION_IMPL__ACCESS_METHODS:
-				setAccessMethods((XmlAccessMethods)null);
-				return;
-			case EclipseLinkOrmPackage.XML_VERSION_IMPL__PROPERTIES:
-				getProperties().clear();
-				return;
-		}
-		super.eUnset(featureID);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public boolean eIsSet(int featureID)
-	{
-		switch (featureID)
-		{
-			case EclipseLinkOrmPackage.XML_VERSION_IMPL__MUTABLE:
-				return MUTABLE_EDEFAULT == null ? mutable != null : !MUTABLE_EDEFAULT.equals(mutable);
-			case EclipseLinkOrmPackage.XML_VERSION_IMPL__CONVERTER:
-				return converter != null;
-			case EclipseLinkOrmPackage.XML_VERSION_IMPL__TYPE_CONVERTER:
-				return typeConverter != null;
-			case EclipseLinkOrmPackage.XML_VERSION_IMPL__OBJECT_TYPE_CONVERTER:
-				return objectTypeConverter != null;
-			case EclipseLinkOrmPackage.XML_VERSION_IMPL__STRUCT_CONVERTER:
-				return structConverter != null;
-			case EclipseLinkOrmPackage.XML_VERSION_IMPL__CONVERT:
-				return CONVERT_EDEFAULT == null ? convert != null : !CONVERT_EDEFAULT.equals(convert);
-			case EclipseLinkOrmPackage.XML_VERSION_IMPL__ACCESS_METHODS:
-				return accessMethods != null;
-			case EclipseLinkOrmPackage.XML_VERSION_IMPL__PROPERTIES:
-				return properties != null && !properties.isEmpty();
-		}
-		return super.eIsSet(featureID);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public int eBaseStructuralFeatureID(int derivedFeatureID, Class<?> baseClass)
-	{
-		if (baseClass == XmlMutable.class)
-		{
-			switch (derivedFeatureID)
-			{
-				case EclipseLinkOrmPackage.XML_VERSION_IMPL__MUTABLE: return EclipseLinkOrmPackage.XML_MUTABLE__MUTABLE;
-				default: return -1;
-			}
-		}
-		if (baseClass == XmlConverterHolder.class)
-		{
-			switch (derivedFeatureID)
-			{
-				case EclipseLinkOrmPackage.XML_VERSION_IMPL__CONVERTER: return EclipseLinkOrmPackage.XML_CONVERTER_HOLDER__CONVERTER;
-				case EclipseLinkOrmPackage.XML_VERSION_IMPL__TYPE_CONVERTER: return EclipseLinkOrmPackage.XML_CONVERTER_HOLDER__TYPE_CONVERTER;
-				case EclipseLinkOrmPackage.XML_VERSION_IMPL__OBJECT_TYPE_CONVERTER: return EclipseLinkOrmPackage.XML_CONVERTER_HOLDER__OBJECT_TYPE_CONVERTER;
-				case EclipseLinkOrmPackage.XML_VERSION_IMPL__STRUCT_CONVERTER: return EclipseLinkOrmPackage.XML_CONVERTER_HOLDER__STRUCT_CONVERTER;
-				default: return -1;
-			}
-		}
-		if (baseClass == XmlConvertibleMapping.class)
-		{
-			switch (derivedFeatureID)
-			{
-				case EclipseLinkOrmPackage.XML_VERSION_IMPL__CONVERT: return EclipseLinkOrmPackage.XML_CONVERTIBLE_MAPPING__CONVERT;
-				default: return -1;
-			}
-		}
-		if (baseClass == XmlAccessMethodsHolder.class)
-		{
-			switch (derivedFeatureID)
-			{
-				case EclipseLinkOrmPackage.XML_VERSION_IMPL__ACCESS_METHODS: return EclipseLinkOrmPackage.XML_ACCESS_METHODS_HOLDER__ACCESS_METHODS;
-				default: return -1;
-			}
-		}
-		if (baseClass == XmlVersion.class)
-		{
-			switch (derivedFeatureID)
-			{
-				case EclipseLinkOrmPackage.XML_VERSION_IMPL__PROPERTIES: return EclipseLinkOrmPackage.XML_VERSION__PROPERTIES;
-				default: return -1;
-			}
-		}
-		return super.eBaseStructuralFeatureID(derivedFeatureID, baseClass);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public int eDerivedStructuralFeatureID(int baseFeatureID, Class<?> baseClass)
-	{
-		if (baseClass == XmlMutable.class)
-		{
-			switch (baseFeatureID)
-			{
-				case EclipseLinkOrmPackage.XML_MUTABLE__MUTABLE: return EclipseLinkOrmPackage.XML_VERSION_IMPL__MUTABLE;
-				default: return -1;
-			}
-		}
-		if (baseClass == XmlConverterHolder.class)
-		{
-			switch (baseFeatureID)
-			{
-				case EclipseLinkOrmPackage.XML_CONVERTER_HOLDER__CONVERTER: return EclipseLinkOrmPackage.XML_VERSION_IMPL__CONVERTER;
-				case EclipseLinkOrmPackage.XML_CONVERTER_HOLDER__TYPE_CONVERTER: return EclipseLinkOrmPackage.XML_VERSION_IMPL__TYPE_CONVERTER;
-				case EclipseLinkOrmPackage.XML_CONVERTER_HOLDER__OBJECT_TYPE_CONVERTER: return EclipseLinkOrmPackage.XML_VERSION_IMPL__OBJECT_TYPE_CONVERTER;
-				case EclipseLinkOrmPackage.XML_CONVERTER_HOLDER__STRUCT_CONVERTER: return EclipseLinkOrmPackage.XML_VERSION_IMPL__STRUCT_CONVERTER;
-				default: return -1;
-			}
-		}
-		if (baseClass == XmlConvertibleMapping.class)
-		{
-			switch (baseFeatureID)
-			{
-				case EclipseLinkOrmPackage.XML_CONVERTIBLE_MAPPING__CONVERT: return EclipseLinkOrmPackage.XML_VERSION_IMPL__CONVERT;
-				default: return -1;
-			}
-		}
-		if (baseClass == XmlAccessMethodsHolder.class)
-		{
-			switch (baseFeatureID)
-			{
-				case EclipseLinkOrmPackage.XML_ACCESS_METHODS_HOLDER__ACCESS_METHODS: return EclipseLinkOrmPackage.XML_VERSION_IMPL__ACCESS_METHODS;
-				default: return -1;
-			}
-		}
-		if (baseClass == XmlVersion.class)
-		{
-			switch (baseFeatureID)
-			{
-				case EclipseLinkOrmPackage.XML_VERSION__PROPERTIES: return EclipseLinkOrmPackage.XML_VERSION_IMPL__PROPERTIES;
-				default: return -1;
-			}
-		}
-		return super.eDerivedStructuralFeatureID(baseFeatureID, baseClass);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public String toString()
-	{
-		if (eIsProxy()) return super.toString();
-
-		StringBuffer result = new StringBuffer(super.toString());
-		result.append(" (mutable: ");
-		result.append(mutable);
-		result.append(", convert: ");
-		result.append(convert);
-		result.append(')');
-		return result.toString();
-	}
-	
-	public TextRange getMutableTextRange() {
-		return getAttributeTextRange(EclipseLinkOrmXmlMapper.MUTABLE);
-	}
-	
-	public TextRange getConvertTextRange() {
-		return getElementTextRange(EclipseLinkOrmXmlMapper.CONVERT);
-	}
-}
diff --git a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink1_1/core/internal/resource/orm/translators/EclipseLink1_1OrmXmlMapper.java b/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink1_1/core/internal/resource/orm/translators/EclipseLink1_1OrmXmlMapper.java
deleted file mode 100644
index c87aff0..0000000
--- a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink1_1/core/internal/resource/orm/translators/EclipseLink1_1OrmXmlMapper.java
+++ /dev/null
@@ -1,21 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2009 Oracle. All rights reserved. This
- * program and the accompanying materials are made available under the terms of
- * the Eclipse Public License v1.0 which accompanies this distribution, and is
- * available at http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors: Oracle. - initial API and implementation
- *******************************************************************************/
-package org.eclipse.jpt.eclipselink1_1.core.internal.resource.orm.translators;
-
-import org.eclipse.jpt.eclipselink.core.internal.resource.orm.translators.EclipseLinkOrmXmlMapper;
-import org.eclipse.jpt.eclipselink1_1.core.resource.orm.EclipseLink1_1OrmPackage;
-
-public interface EclipseLink1_1OrmXmlMapper
-	extends EclipseLinkOrmXmlMapper
-{
-	EclipseLink1_1OrmPackage ECLIPSELINK1_1_ORM_PKG = EclipseLink1_1OrmPackage.eINSTANCE;
-	
-	String PRIMARY_KEY = "primary-key";  //$NON-NLS-1$
-
-}
diff --git a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink1_1/core/internal/resource/orm/translators/EclipseLinkAttributesTranslator.java b/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink1_1/core/internal/resource/orm/translators/EclipseLinkAttributesTranslator.java
deleted file mode 100644
index f5e8821..0000000
--- a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink1_1/core/internal/resource/orm/translators/EclipseLinkAttributesTranslator.java
+++ /dev/null
@@ -1,100 +0,0 @@
-/*******************************************************************************
- *  Copyright (c) 2009  Oracle. 
- *  All rights reserved.  This program and the accompanying materials are 
- *  made available under the terms of the Eclipse Public License v1.0 which 
- *  accompanies this distribution, and is available at 
- *  http://www.eclipse.org/legal/epl-v10.html
- *  
- *  Contributors: 
- *  	Oracle - initial API and implementation
- *******************************************************************************/
-package org.eclipse.jpt.eclipselink1_1.core.internal.resource.orm.translators;
-
-import org.eclipse.emf.ecore.EObject;
-import org.eclipse.emf.ecore.EStructuralFeature;
-import org.eclipse.jpt.eclipselink.core.resource.orm.EclipseLinkOrmFactory;
-import org.eclipse.wst.common.internal.emf.resource.Translator;
-
-public class EclipseLinkAttributesTranslator extends org.eclipse.jpt.eclipselink.core.internal.resource.orm.translators.EclipseLinkAttributesTranslator
-	implements EclipseLink1_1OrmXmlMapper
-{
-	public EclipseLinkAttributesTranslator(String domNameAndPath, EStructuralFeature aFeature) {
-		super(domNameAndPath, aFeature);
-	}
-	
-	@Override
-	public EObject createEMFObject(String nodeName, String readAheadName) {
-		return EclipseLinkOrmFactory.eINSTANCE.createAttributes();
-		
-	}
-	
-	@Override
-	protected Translator createIdTranslator() {
-		return new EclipseLinkIdTranslator(ID, ORM_PKG.getAttributes_Ids());
-	}
-	
-	@Override
-	protected Translator createEmbeddedIdTranslator() {
-		return new EclipseLinkEmbeddedIdTranslator(EMBEDDED_ID, ORM_PKG.getAttributes_EmbeddedIds());
-	}
-	
-	@Override
-	protected Translator createBasicTranslator() {
-		return new EclipseLinkBasicTranslator(BASIC, ORM_PKG.getAttributes_Basics());
-	}
-	
-	@Override
-	protected Translator createVersionTranslator() {
-		return new EclipseLinkVersionTranslator(VERSION, ORM_PKG.getAttributes_Versions());
-	}
-	
-	@Override
-	protected Translator createManyToOneTranslator() {
-		return new EclipseLinkManyToOneTranslator(MANY_TO_ONE, ORM_PKG.getAttributes_ManyToOnes());
-	}
-	
-	@Override
-	protected Translator createOneToOneTranslator() {
-		return new EclipseLinkOneToOneTranslator(ONE_TO_ONE, ORM_PKG.getAttributes_OneToOnes());
-	}
-	
-	@Override
-	protected Translator createOneToManyTranslator() {
-		return new EclipseLinkOneToManyTranslator(ONE_TO_MANY, ORM_PKG.getAttributes_OneToManys());
-	}
-	
-	@Override
-	protected Translator createManyToManyTranslator() {
-		return new EclipseLinkManyToManyTranslator(MANY_TO_MANY, ORM_PKG.getAttributes_ManyToManys());
-	}
-	
-	@Override
-	protected Translator createEmbeddedTranslator() {
-		return new EclipseLinkEmbeddedTranslator(EMBEDDED, ORM_PKG.getAttributes_Embeddeds());
-	}
-	
-	@Override
-	protected Translator createVariableOneToOneTranslator() {
-		return new EclipseLinkVariableOneToOneTranslator(VARIABLE_ONE_TO_ONE, ECLIPSELINK_ORM_PKG.getAttributes_VariableOneToOnes());
-	}
-
-	@Override
-	protected Translator createBasicCollectionTranslator() {
-		return new EclipseLinkBasicCollectionTranslator(BASIC_COLLECTION, ECLIPSELINK_ORM_PKG.getAttributes_BasicCollections());
-	}
-	
-	@Override
-	protected Translator createBasicMapTranslator() {
-		return new EclipseLinkBasicMapTranslator(BASIC_MAP, ECLIPSELINK_ORM_PKG.getAttributes_BasicMaps());
-	}
-	
-	@Override
-	protected Translator createTransformationTranslator() {
-		return new EclipseLinkTransformationTranslator(TRANSFORMATION, ECLIPSELINK_ORM_PKG.getAttributes_Transformations());
-	}
-	
-	@Override
-	protected Translator createTransientTranslator() {
-		return new EclipseLinkTransientTranslator(TRANSIENT, ORM_PKG.getAttributes_Transients());
-	}
-}
diff --git a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink1_1/core/internal/resource/orm/translators/EclipseLinkBasicCollectionTranslator.java b/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink1_1/core/internal/resource/orm/translators/EclipseLinkBasicCollectionTranslator.java
deleted file mode 100644
index 8ccd141..0000000
--- a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink1_1/core/internal/resource/orm/translators/EclipseLinkBasicCollectionTranslator.java
+++ /dev/null
@@ -1,43 +0,0 @@
-/*******************************************************************************
- *  Copyright (c) 2009  Oracle. 
- *  All rights reserved.  This program and the accompanying materials are 
- *  made available under the terms of the Eclipse Public License v1.0 which 
- *  accompanies this distribution, and is available at 
- *  http://www.eclipse.org/legal/epl-v10.html
- *  
- *  Contributors: 
- *  	Oracle - initial API and implementation
- *******************************************************************************/
-package org.eclipse.jpt.eclipselink1_1.core.internal.resource.orm.translators;
-
-import org.eclipse.emf.ecore.EObject;
-import org.eclipse.emf.ecore.EStructuralFeature;
-import org.eclipse.jpt.eclipselink1_1.core.resource.orm.EclipseLink1_1OrmFactory;
-import org.eclipse.wst.common.internal.emf.resource.Translator;
-
-public class EclipseLinkBasicCollectionTranslator extends org.eclipse.jpt.eclipselink.core.internal.resource.orm.translators.BasicCollectionTranslator
-	implements EclipseLink1_1OrmXmlMapper
-{
-
-	public EclipseLinkBasicCollectionTranslator(String domNameAndPath, EStructuralFeature aFeature) {
-		super(domNameAndPath, aFeature);
-	}
-	
-	@Override
-	public EObject createEMFObject(String nodeName, String readAheadName) {
-		return EclipseLink1_1OrmFactory.eINSTANCE.createXmlBasicCollectionImpl();
-	}
-
-	
-	@Override
-	protected Translator[] createChildren() {
-		return new Translator[] {
-			createNameTranslator(),
-			createAccessTranslator()
-		};
-	}
-	
-	protected Translator createAccessTranslator() {
-		return new Translator(ACCESS, ECLIPSELINK1_1_ORM_PKG.getXmlAttributeMapping_Access(), DOM_ATTRIBUTE);
-	}
-}
diff --git a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink1_1/core/internal/resource/orm/translators/EclipseLinkBasicMapTranslator.java b/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink1_1/core/internal/resource/orm/translators/EclipseLinkBasicMapTranslator.java
deleted file mode 100644
index 0e15ad2..0000000
--- a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink1_1/core/internal/resource/orm/translators/EclipseLinkBasicMapTranslator.java
+++ /dev/null
@@ -1,42 +0,0 @@
-/*******************************************************************************
- *  Copyright (c) 2009  Oracle. 
- *  All rights reserved.  This program and the accompanying materials are 
- *  made available under the terms of the Eclipse Public License v1.0 which 
- *  accompanies this distribution, and is available at 
- *  http://www.eclipse.org/legal/epl-v10.html
- *  
- *  Contributors: 
- *  	Oracle - initial API and implementation
- *******************************************************************************/
-package org.eclipse.jpt.eclipselink1_1.core.internal.resource.orm.translators;
-
-import org.eclipse.emf.ecore.EObject;
-import org.eclipse.emf.ecore.EStructuralFeature;
-import org.eclipse.jpt.eclipselink1_1.core.resource.orm.EclipseLink1_1OrmFactory;
-import org.eclipse.wst.common.internal.emf.resource.Translator;
-
-public class EclipseLinkBasicMapTranslator extends org.eclipse.jpt.eclipselink.core.internal.resource.orm.translators.BasicMapTranslator
-	implements EclipseLink1_1OrmXmlMapper
-{
-
-	public EclipseLinkBasicMapTranslator(String domNameAndPath, EStructuralFeature aFeature) {
-		super(domNameAndPath, aFeature);
-	}
-	
-	@Override
-	public EObject createEMFObject(String nodeName, String readAheadName) {
-		return EclipseLink1_1OrmFactory.eINSTANCE.createXmlBasicMapImpl();
-	}
-	
-	@Override
-	protected Translator[] createChildren() {
-		return new Translator[] {
-			createNameTranslator(),
-			createAccessTranslator()
-		};
-	}
-	
-	protected Translator createAccessTranslator() {
-		return new Translator(ACCESS, ECLIPSELINK1_1_ORM_PKG.getXmlAttributeMapping_Access(), DOM_ATTRIBUTE);
-	}
-}
diff --git a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink1_1/core/internal/resource/orm/translators/EclipseLinkBasicTranslator.java b/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink1_1/core/internal/resource/orm/translators/EclipseLinkBasicTranslator.java
deleted file mode 100644
index 8dd2bb4..0000000
--- a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink1_1/core/internal/resource/orm/translators/EclipseLinkBasicTranslator.java
+++ /dev/null
@@ -1,73 +0,0 @@
-/*******************************************************************************
- *  Copyright (c) 2009  Oracle. 
- *  All rights reserved.  This program and the accompanying materials are 
- *  made available under the terms of the Eclipse Public License v1.0 which 
- *  accompanies this distribution, and is available at 
- *  http://www.eclipse.org/legal/epl-v10.html
- *  
- *  Contributors: 
- *  	Oracle - initial API and implementation
- *******************************************************************************/
-package org.eclipse.jpt.eclipselink1_1.core.internal.resource.orm.translators;
-
-import org.eclipse.emf.ecore.EObject;
-import org.eclipse.emf.ecore.EStructuralFeature;
-import org.eclipse.jpt.core.internal.resource.orm.translators.GeneratedValueTranslator;
-import org.eclipse.jpt.core.internal.resource.orm.translators.SequenceGeneratorTranslator;
-import org.eclipse.jpt.core.internal.resource.orm.translators.TableGeneratorTranslator;
-import org.eclipse.jpt.eclipselink1_1.core.resource.orm.EclipseLink1_1OrmFactory;
-import org.eclipse.wst.common.internal.emf.resource.Translator;
-
-public class EclipseLinkBasicTranslator extends org.eclipse.jpt.eclipselink.core.internal.resource.orm.translators.EclipseLinkBasicTranslator
-	implements EclipseLink1_1OrmXmlMapper
-{
-	public EclipseLinkBasicTranslator(String domNameAndPath, EStructuralFeature aFeature) {
-		super(domNameAndPath, aFeature);
-	}
-		
-	@Override
-	public EObject createEMFObject(String nodeName, String readAheadName) {
-		return EclipseLink1_1OrmFactory.eINSTANCE.createXmlBasicImpl();
-	}
-	
-	@Override
-	protected Translator[] createChildren() {
-		return new Translator[] {
-			createNameTranslator(),
-			createFetchTranslator(),
-			createOptionalTranslator(),
-			createAccessTranslator(),
-			createMutableTranslator(),
-			createColumnTranslator(), 
-			createGeneratedValueTranslator(), 
-			createLobTranslator(),
-			createTemporalTranslator(),
-			createEnumeratedTranslator(),
-			createConvertTranslator(),
-			createConverterTranslator(),
-			createTypeConverterTranslator(),
-			createObjectTypeConverterTranslator(),
-			createStructConverterTranslator(),
-			createTableGeneratorTranslator(),
-			createSequenceGeneratorTranslator(),
-			createPropertyTranslator(),
-			createAccessMethodsTranslator()			
-		};
-	}
-	
-	protected Translator createAccessTranslator() {
-		return new Translator(ACCESS, ECLIPSELINK1_1_ORM_PKG.getXmlAttributeMapping_Access(), DOM_ATTRIBUTE);
-	}
-	
-	protected Translator createGeneratedValueTranslator() {
-		return new GeneratedValueTranslator(GENERATED_VALUE, ECLIPSELINK1_1_ORM_PKG.getXmlBasic_GeneratedValue());
-	}
-	
-	protected Translator createTableGeneratorTranslator() {
-		return new TableGeneratorTranslator(TABLE_GENERATOR, ECLIPSELINK1_1_ORM_PKG.getXmlBasic_TableGenerator());
-	}
-	
-	protected Translator createSequenceGeneratorTranslator() {
-		return new SequenceGeneratorTranslator(SEQUENCE_GENERATOR, ECLIPSELINK1_1_ORM_PKG.getXmlBasic_SequenceGenerator());
-	}
-}
diff --git a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink1_1/core/internal/resource/orm/translators/EclipseLinkEmbeddableTranslator.java b/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink1_1/core/internal/resource/orm/translators/EclipseLinkEmbeddableTranslator.java
deleted file mode 100644
index 6611afc..0000000
--- a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink1_1/core/internal/resource/orm/translators/EclipseLinkEmbeddableTranslator.java
+++ /dev/null
@@ -1,25 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2009 Oracle. All rights reserved. This
- * program and the accompanying materials are made available under the terms of
- * the Eclipse Public License v1.0 which accompanies this distribution, and is
- * available at http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors: Oracle. - initial API and implementation
- *******************************************************************************/
-package org.eclipse.jpt.eclipselink1_1.core.internal.resource.orm.translators;
-
-import org.eclipse.emf.ecore.EStructuralFeature;
-import org.eclipse.wst.common.internal.emf.resource.Translator;
-
-public class EclipseLinkEmbeddableTranslator extends org.eclipse.jpt.eclipselink.core.internal.resource.orm.translators.EclipseLinkEmbeddableTranslator
-	implements EclipseLink1_1OrmXmlMapper
-{
-	public EclipseLinkEmbeddableTranslator(String domNameAndPath, EStructuralFeature aFeature) {
-		super(domNameAndPath, aFeature);
-	}
-
-	@Override
-	protected Translator createAttributesTranslator() {
-		return new EclipseLinkAttributesTranslator(ATTRIBUTES, ORM_PKG.getXmlTypeMapping_Attributes());
-	}
-}
diff --git a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink1_1/core/internal/resource/orm/translators/EclipseLinkEmbeddedIdTranslator.java b/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink1_1/core/internal/resource/orm/translators/EclipseLinkEmbeddedIdTranslator.java
deleted file mode 100644
index bb064c2..0000000
--- a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink1_1/core/internal/resource/orm/translators/EclipseLinkEmbeddedIdTranslator.java
+++ /dev/null
@@ -1,44 +0,0 @@
-/*******************************************************************************
- *  Copyright (c) 2009  Oracle. 
- *  All rights reserve9.  This program and the accompanying materials are 
- *  made available under the terms of the Eclipse Public License v1.0 which 
- *  accompanies this distribution, and is available at 
- *  http://www.eclipse.org/legal/epl-v10.html
- *  
- *  Contributors: 
- *  	Oracle - initial API and implementation
- *******************************************************************************/
-package org.eclipse.jpt.eclipselink1_1.core.internal.resource.orm.translators;
-
-import org.eclipse.emf.ecore.EObject;
-import org.eclipse.emf.ecore.EStructuralFeature;
-import org.eclipse.jpt.eclipselink1_1.core.resource.orm.EclipseLink1_1OrmFactory;
-import org.eclipse.wst.common.internal.emf.resource.Translator;
-
-public class EclipseLinkEmbeddedIdTranslator extends org.eclipse.jpt.eclipselink.core.internal.resource.orm.translators.EclipseLinkEmbeddedIdTranslator
-	implements EclipseLink1_1OrmXmlMapper
-{
-	public EclipseLinkEmbeddedIdTranslator(String domNameAndPath, EStructuralFeature aFeature) {
-		super(domNameAndPath, aFeature);
-	}
-	
-	@Override
-	public EObject createEMFObject(String nodeName, String readAheadName) {
-		return EclipseLink1_1OrmFactory.eINSTANCE.createXmlEmbeddedIdImpl();
-	}
-	
-	@Override
-	protected Translator[] createChildren() {
-		return new Translator[] {
-			createNameTranslator(),
-			createAccessTranslator(),
-			createAttributeOverrideTranslator(),
-			createPropertyTranslator(),
-			createAccessMethodsTranslator()
-		};
-	}
-		
-	protected Translator createAccessTranslator() {
-		return new Translator(ACCESS, ECLIPSELINK1_1_ORM_PKG.getXmlAttributeMapping_Access(), DOM_ATTRIBUTE);
-	}
-}
diff --git a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink1_1/core/internal/resource/orm/translators/EclipseLinkEmbeddedTranslator.java b/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink1_1/core/internal/resource/orm/translators/EclipseLinkEmbeddedTranslator.java
deleted file mode 100644
index 4724c3b..0000000
--- a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink1_1/core/internal/resource/orm/translators/EclipseLinkEmbeddedTranslator.java
+++ /dev/null
@@ -1,43 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.eclipselink1_1.core.internal.resource.orm.translators;
-
-import org.eclipse.emf.ecore.EObject;
-import org.eclipse.emf.ecore.EStructuralFeature;
-import org.eclipse.jpt.eclipselink1_1.core.resource.orm.EclipseLink1_1OrmFactory;
-import org.eclipse.wst.common.internal.emf.resource.Translator;
-
-public class EclipseLinkEmbeddedTranslator extends org.eclipse.jpt.eclipselink.core.internal.resource.orm.translators.EclipseLinkEmbeddedTranslator
-	implements EclipseLink1_1OrmXmlMapper
-{
-	public EclipseLinkEmbeddedTranslator(String domNameAndPath, EStructuralFeature aFeature) {
-		super(domNameAndPath, aFeature);
-	}
-	
-	@Override
-	public EObject createEMFObject(String nodeName, String readAheadName) {
-		return EclipseLink1_1OrmFactory.eINSTANCE.createXmlEmbeddedImpl();
-	}
-		
-	@Override
-	protected Translator[] createChildren() {
-		return new Translator[] {
-			createNameTranslator(),
-			createAccessTranslator(),
-			createAttributeOverrideTranslator(),
-			createPropertyTranslator(),
-			createAccessMethodsTranslator()
-		};
-	}
-	
-	protected Translator createAccessTranslator() {
-		return new Translator(ACCESS, ECLIPSELINK1_1_ORM_PKG.getXmlAttributeMapping_Access(), DOM_ATTRIBUTE);
-	}
-}
diff --git a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink1_1/core/internal/resource/orm/translators/EclipseLinkEntityMappingsTranslator.java b/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink1_1/core/internal/resource/orm/translators/EclipseLinkEntityMappingsTranslator.java
deleted file mode 100644
index b5af057..0000000
--- a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink1_1/core/internal/resource/orm/translators/EclipseLinkEntityMappingsTranslator.java
+++ /dev/null
@@ -1,51 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.eclipselink1_1.core.internal.resource.orm.translators;
-
-import org.eclipse.jpt.core.resource.xml.XML;
-import org.eclipse.wst.common.internal.emf.resource.ConstantAttributeTranslator;
-import org.eclipse.wst.common.internal.emf.resource.Translator;
-
-public class EclipseLinkEntityMappingsTranslator extends org.eclipse.jpt.eclipselink.core.internal.resource.orm.translators.EclipseLinkEntityMappingsTranslator
-	implements EclipseLink1_1OrmXmlMapper
-{
-	public static EclipseLinkEntityMappingsTranslator INSTANCE = new EclipseLinkEntityMappingsTranslator();
-	
-	
-	public EclipseLinkEntityMappingsTranslator() {
-		super(ENTITY_MAPPINGS, ECLIPSELINK1_1_ORM_PKG.getXmlEntityMappings());
-	}
-	
-	@Override
-	protected Translator createNamespaceTranslator() {
-		return new ConstantAttributeTranslator(XML.NAMESPACE, ECLIPSELINK_ORM_NS_URL);
-	}
-	
-	@Override
-	protected Translator createSchemaLocationTranslator() {
-		return new ConstantAttributeTranslator(XML.XSI_SCHEMA_LOCATION, ECLIPSELINK_ORM_NS_URL + ' ' + ECLIPSELINK_ORM_SCHEMA_LOC_1_1);
-	}
-	
-	@Override
-	protected Translator createEmbeddableTranslator() {
-		return new EclipseLinkEmbeddableTranslator(EMBEDDABLE, ORM_PKG.getXmlEntityMappings_Embeddables());
-	}
-	
-	@Override
-	protected Translator createEntityTranslator() {
-		return new EclipseLinkEntityTranslator(ENTITY, ORM_PKG.getXmlEntityMappings_Entities());
-	}
-	
-	@Override
-	protected Translator createMappedSuperclassTranslator() {
-		return new EclipseLinkMappedSuperclassTranslator(MAPPED_SUPERCLASS, ORM_PKG.getXmlEntityMappings_MappedSuperclasses());
-	}
-	
-}
diff --git a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink1_1/core/internal/resource/orm/translators/EclipseLinkEntityTranslator.java b/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink1_1/core/internal/resource/orm/translators/EclipseLinkEntityTranslator.java
deleted file mode 100644
index 1cb55e6..0000000
--- a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink1_1/core/internal/resource/orm/translators/EclipseLinkEntityTranslator.java
+++ /dev/null
@@ -1,85 +0,0 @@
-/*******************************************************************************
- *  Copyright (c) 2009  Oracle. 
- *  All rights reserved.  This program and the accompanying materials are 
- *  made available under the terms of the Eclipse Public License v1.0 which 
- *  accompanies this distribution, and is available at 
- *  http://www.eclipse.org/legal/epl-v10.html
- *  
- *  Contributors: 
- *  	Oracle - initial API and implementation
- *******************************************************************************/
-package org.eclipse.jpt.eclipselink1_1.core.internal.resource.orm.translators;
-
-import org.eclipse.emf.ecore.EClass;
-import org.eclipse.emf.ecore.EStructuralFeature;
-import org.eclipse.wst.common.internal.emf.resource.Translator;
-
-public class EclipseLinkEntityTranslator extends org.eclipse.jpt.eclipselink.core.internal.resource.orm.translators.EclipseLinkEntityTranslator
-	implements EclipseLink1_1OrmXmlMapper
-{
-	public EclipseLinkEntityTranslator(String domNameAndPath, EStructuralFeature aFeature) {
-		super(domNameAndPath, aFeature);
-	}
-	@Override
-	protected Translator[] createChildren() {
-		return new Translator[] {
-			createNameTranslator(),
-			createClassTranslator(),
-			createAccessTranslator(),
-			createMetadataCompleteTranslator(),
-			createReadOnlyTranslator(),
-			createExistenceCheckingTranslator(),
-			createExcludeDefaultMappingsTranslator(),
-			createDescriptionTranslator(),
-			createCustomizerTranslator(),
-			createChangeTrackingTranslator(),
-			createTableTranslator(),
-			createSecondaryTableTranslator(),
-			createPrimaryKeyJoinColumnTranslator(),
-			createIdClassTranslator(),
-			createPrimaryKeyTranslator(),
-			createInheritanceTranslator(),
-			createDiscriminatorValueTranslator(),
-			createDiscriminatorColumnTranslator(),
-			createOptimisticLockingTranslator(),
-			createCacheTranslator(),
-			createConverterTranslator(),
-			createTypeConverterTranslator(),
-			createObjectTypeConverterTranslator(),
-			createStructConverterTranslator(),
-			createCopyPolicyTranslator(),
-			createInstantiationCopyPolicyTranslator(),
-			createCloneCopyPolicyTranslator(),
-			createSequenceGeneratorTranslator(),
-			createTableGeneratorTranslator(),
-			createNamedQueryTranslator(),
-			createNamedNativeQueryTranslator(),
-			createNamedStoredProcedureQueryTranslator(),
-			createSqlResultSetMappingTranslator(),
-			createExcludeDefaultListenersTranslator(),
-			createExcludeSuperclassListenersTranslator(),
-			createEntityListenersTranslator(),
-			createPrePersistTranslator(),
-			createPostPersistTranslator(),
-			createPreRemoveTranslator(),
-			createPostRemoveTranslator(),
-			createPreUpdateTranslator(),
-			createPostUpdateTranslator(),
-			createPostLoadTranslator(),
-			createPropertyTranslator(),
-			createAttributeOverrideTranslator(),
-			createAssociationOverrideTranslator(),
-			createAttributesTranslator(),
-		};
-	}
-
-	@Override
-	protected Translator createAttributesTranslator() {
-		return new EclipseLinkAttributesTranslator(ATTRIBUTES, ORM_PKG.getXmlTypeMapping_Attributes());
-	}
-	
-	//placeholder
-	protected Translator createPrimaryKeyTranslator() {
-		return new Translator(PRIMARY_KEY, (EClass) null);
-	}	
-}
diff --git a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink1_1/core/internal/resource/orm/translators/EclipseLinkIdTranslator.java b/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink1_1/core/internal/resource/orm/translators/EclipseLinkIdTranslator.java
deleted file mode 100644
index dbef2f3..0000000
--- a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink1_1/core/internal/resource/orm/translators/EclipseLinkIdTranslator.java
+++ /dev/null
@@ -1,54 +0,0 @@
-/*******************************************************************************
- *  Copyright (c) 2009  Oracle. 
- *  All rights reserved.  This program and the accompanying materials are 
- *  made available under the terms of the Eclipse Public License v1.0 which 
- *  accompanies this distribution, and is available at 
- *  http://www.eclipse.org/legal/epl-v10.html
- *  
- *  Contributors: 
- *  	Oracle - initial API and implementation
- *******************************************************************************/
-package org.eclipse.jpt.eclipselink1_1.core.internal.resource.orm.translators;
-
-import org.eclipse.emf.ecore.EObject;
-import org.eclipse.emf.ecore.EStructuralFeature;
-import org.eclipse.jpt.eclipselink1_1.core.resource.orm.EclipseLink1_1OrmFactory;
-import org.eclipse.wst.common.internal.emf.resource.Translator;
-
-public class EclipseLinkIdTranslator extends org.eclipse.jpt.eclipselink.core.internal.resource.orm.translators.EclipseLinkIdTranslator
-	implements EclipseLink1_1OrmXmlMapper
-{
-	public EclipseLinkIdTranslator(String domNameAndPath, EStructuralFeature aFeature) {
-		super(domNameAndPath, aFeature);
-	}
-	
-	@Override
-	public EObject createEMFObject(String nodeName, String readAheadName) {
-		return EclipseLink1_1OrmFactory.eINSTANCE.createXmlIdImpl();
-	}
-	
-	@Override
-	protected Translator[] createChildren() {
-		return new Translator[] {
-			createNameTranslator(),
-			createAccessTranslator(),
-			createMutableTranslator(),
-			createColumnTranslator(),
-			createGeneratedValueTranslator(),
-			createTemporalTranslator(),
-			createConvertTranslator(),
-			createConverterTranslator(),
-			createTypeConverterTranslator(),
-			createObjectTypeConverterTranslator(),
-			createStructConverterTranslator(),
-			createTableGeneratorTranslator(),
-			createSequenceGeneratorTranslator(),
-			createPropertyTranslator(),
-			createAccessMethodsTranslator()
-		};
-	}
-	
-	protected Translator createAccessTranslator() {
-		return new Translator(ACCESS, ECLIPSELINK1_1_ORM_PKG.getXmlAttributeMapping_Access(), DOM_ATTRIBUTE);
-	}
-}
diff --git a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink1_1/core/internal/resource/orm/translators/EclipseLinkManyToManyTranslator.java b/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink1_1/core/internal/resource/orm/translators/EclipseLinkManyToManyTranslator.java
deleted file mode 100644
index cf6ef0d..0000000
--- a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink1_1/core/internal/resource/orm/translators/EclipseLinkManyToManyTranslator.java
+++ /dev/null
@@ -1,51 +0,0 @@
-/*******************************************************************************
- *  Copyright (c) 2009  Oracle. 
- *  All rights reserved.  This program and the accompanying materials are 
- *  made available under the terms of the Eclipse Public License v1.0 which 
- *  accompanies this distribution, and is available at 
- *  http://www.eclipse.org/legal/epl-v10.html
- *  
- *  Contributors: 
- *  	Oracle - initial API and implementation
- *******************************************************************************/
-package org.eclipse.jpt.eclipselink1_1.core.internal.resource.orm.translators;
-
-import org.eclipse.emf.ecore.EObject;
-import org.eclipse.emf.ecore.EStructuralFeature;
-import org.eclipse.jpt.eclipselink1_1.core.resource.orm.EclipseLink1_1OrmFactory;
-import org.eclipse.wst.common.internal.emf.resource.Translator;
-
-public class EclipseLinkManyToManyTranslator extends org.eclipse.jpt.eclipselink.core.internal.resource.orm.translators.EclipseLinkManyToManyTranslator
-	implements EclipseLink1_1OrmXmlMapper
-{
-	public EclipseLinkManyToManyTranslator(String domNameAndPath, EStructuralFeature aFeature) {
-		super(domNameAndPath, aFeature);
-	}
-	
-	
-	@Override
-	public EObject createEMFObject(String nodeName, String readAheadName) {
-		return EclipseLink1_1OrmFactory.eINSTANCE.createXmlManyToManyImpl();
-	}
-		
-	@Override
-	protected Translator[] createChildren() {
-		return new Translator[] {
-			createNameTranslator(),
-			createTargetEntityTranslator(),
-			createFetchTranslator(),
-			createAccessTranslator(),
-			createMappedByTranslator(),
-			createOrderByTranslator(),
-			createMapKeyTranslator(),
-			createJoinTableTranslator(),
-			createCascadeTranslator(),
-			createJoinFetchTranslator(),
-			createPropertyTranslator(),
-			createAccessMethodsTranslator()
-		};
-	}
-	protected Translator createAccessTranslator() {
-		return new Translator(ACCESS, ECLIPSELINK1_1_ORM_PKG.getXmlAttributeMapping_Access(), DOM_ATTRIBUTE);
-	}
-}
diff --git a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink1_1/core/internal/resource/orm/translators/EclipseLinkManyToOneTranslator.java b/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink1_1/core/internal/resource/orm/translators/EclipseLinkManyToOneTranslator.java
deleted file mode 100644
index 09ce5b6..0000000
--- a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink1_1/core/internal/resource/orm/translators/EclipseLinkManyToOneTranslator.java
+++ /dev/null
@@ -1,51 +0,0 @@
-/*******************************************************************************
- *  Copyright (c) 2009  Oracle. 
- *  All rights reserved.  This program and the accompanying materials are 
- *  made available under the terms of the Eclipse Public License v1.0 which 
- *  accompanies this distribution, and is available at 
- *  http://www.eclipse.org/legal/epl-v10.html
- *  
- *  Contributors: 
- *  	Oracle - initial API and implementation
- *******************************************************************************/
-package org.eclipse.jpt.eclipselink1_1.core.internal.resource.orm.translators;
-
-import org.eclipse.emf.ecore.EObject;
-import org.eclipse.emf.ecore.EStructuralFeature;
-import org.eclipse.jpt.eclipselink1_1.core.resource.orm.EclipseLink1_1OrmFactory;
-import org.eclipse.wst.common.internal.emf.resource.Translator;
-
-public class EclipseLinkManyToOneTranslator extends org.eclipse.jpt.eclipselink.core.internal.resource.orm.translators.EclipseLinkManyToOneTranslator
-	implements EclipseLink1_1OrmXmlMapper
-{
-	public EclipseLinkManyToOneTranslator(String domNameAndPath, EStructuralFeature aFeature) {
-		super(domNameAndPath, aFeature);
-	}
-	
-	
-	@Override
-	public EObject createEMFObject(String nodeName, String readAheadName) {
-		return EclipseLink1_1OrmFactory.eINSTANCE.createXmlManyToOneImpl();
-	}
-		
-	@Override
-	protected Translator[] createChildren() {
-		return new Translator[] {
-			createNameTranslator(),
-			createTargetEntityTranslator(),
-			createFetchTranslator(),
-			createOptionalTranslator(),
-			createAccessTranslator(),
-			createJoinColumnTranslator(),
-			createJoinTableTranslator(),
-			createCascadeTranslator(),
-			createJoinFetchTranslator(),
-			createPropertyTranslator(),
-			createAccessMethodsTranslator()
-		};
-	}
-	
-	protected Translator createAccessTranslator() {
-		return new Translator(ACCESS, ECLIPSELINK1_1_ORM_PKG.getXmlAttributeMapping_Access(), DOM_ATTRIBUTE);
-	}
-}
diff --git a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink1_1/core/internal/resource/orm/translators/EclipseLinkMappedSuperclassTranslator.java b/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink1_1/core/internal/resource/orm/translators/EclipseLinkMappedSuperclassTranslator.java
deleted file mode 100644
index 2d4f7fa..0000000
--- a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink1_1/core/internal/resource/orm/translators/EclipseLinkMappedSuperclassTranslator.java
+++ /dev/null
@@ -1,70 +0,0 @@
-/*******************************************************************************
- *  Copyright (c) 2009  Oracle. 
- *  All rights reserved.  This program and the accompanying materials are 
- *  made available under the terms of the Eclipse Public License v1.0 which 
- *  accompanies this distribution, and is available at 
- *  http://www.eclipse.org/legal/epl-v10.html
- *  
- *  Contributors: 
- *  	Oracle - initial API and implementation
- *******************************************************************************/
-package org.eclipse.jpt.eclipselink1_1.core.internal.resource.orm.translators;
-
-import org.eclipse.emf.ecore.EClass;
-import org.eclipse.emf.ecore.EStructuralFeature;
-import org.eclipse.wst.common.internal.emf.resource.Translator;
-
-public class EclipseLinkMappedSuperclassTranslator extends org.eclipse.jpt.eclipselink.core.internal.resource.orm.translators.EclipseLinkMappedSuperclassTranslator
-	implements EclipseLink1_1OrmXmlMapper
-{
-	public EclipseLinkMappedSuperclassTranslator(String domNameAndPath, EStructuralFeature aFeature) {
-		super(domNameAndPath, aFeature);
-	}
-	@Override
-	protected Translator[] createChildren() {
-		return new Translator[] {
-			createClassTranslator(),
-			createAccessTranslator(),
-			createMetadataCompleteTranslator(),
-			createReadOnlyTranslator(),
-			createExistenceCheckingTranslator(),
-			createExcludeDefaultMappingsTranslator(),
-			createDescriptionTranslator(),
-			createCustomizerTranslator(),
-			createChangeTrackingTranslator(),
-			createIdClassTranslator(),
-			createPrimaryKeyTranslator(),
-			createOptimisticLockingTranslator(),
-			createCacheTranslator(),
-			createConverterTranslator(),
-			createTypeConverterTranslator(),
-			createObjectTypeConverterTranslator(),
-			createStructConverterTranslator(),
-			createCopyPolicyTranslator(),
-			createInstantiationCopyPolicyTranslator(),
-			createCloneCopyPolicyTranslator(),
-			createExcludeDefaultListenersTranslator(),
-			createExcludeSuperclassListenersTranslator(),
-			createEntityListenersTranslator(),
-			createPrePersistTranslator(),
-			createPostPersistTranslator(),
-			createPreRemoveTranslator(),
-			createPostRemoveTranslator(),
-			createPreUpdateTranslator(),
-			createPostUpdateTranslator(),
-			createPostLoadTranslator(),
-			createPropertyTranslator(),
-			createAttributesTranslator()
-		};
-	}
-	
-	@Override
-	protected Translator createAttributesTranslator() {
-		return new EclipseLinkAttributesTranslator(ATTRIBUTES, ORM_PKG.getXmlTypeMapping_Attributes());
-	}
-	
-	//placeholder
-	protected Translator createPrimaryKeyTranslator() {
-		return new Translator(PRIMARY_KEY, (EClass) null);
-	}
-}
diff --git a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink1_1/core/internal/resource/orm/translators/EclipseLinkOneToManyTranslator.java b/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink1_1/core/internal/resource/orm/translators/EclipseLinkOneToManyTranslator.java
deleted file mode 100644
index b4eccb0..0000000
--- a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink1_1/core/internal/resource/orm/translators/EclipseLinkOneToManyTranslator.java
+++ /dev/null
@@ -1,53 +0,0 @@
-/*******************************************************************************
- *  Copyright (c) 2009  Oracle. 
- *  All rights reserved.  This program and the accompanying materials are 
- *  made available under the terms of the Eclipse Public License v1.0 which 
- *  accompanies this distribution, and is available at 
- *  http://www.eclipse.org/legal/epl-v10.html
- *  
- *  Contributors: 
- *  	Oracle - initial API and implementation
- *******************************************************************************/
-package org.eclipse.jpt.eclipselink1_1.core.internal.resource.orm.translators;
-
-import org.eclipse.emf.ecore.EObject;
-import org.eclipse.emf.ecore.EStructuralFeature;
-import org.eclipse.jpt.eclipselink1_1.core.resource.orm.EclipseLink1_1OrmFactory;
-import org.eclipse.wst.common.internal.emf.resource.Translator;
-
-public class EclipseLinkOneToManyTranslator extends org.eclipse.jpt.eclipselink.core.internal.resource.orm.translators.EclipseLinkOneToManyTranslator
-	implements EclipseLink1_1OrmXmlMapper
-{
-	public EclipseLinkOneToManyTranslator(String domNameAndPath, EStructuralFeature aFeature) {
-		super(domNameAndPath, aFeature);
-	}
-	
-	@Override
-	public EObject createEMFObject(String nodeName, String readAheadName) {
-		return EclipseLink1_1OrmFactory.eINSTANCE.createXmlOneToManyImpl();
-	}
-	
-	@Override
-	protected Translator[] createChildren() {
-		return new Translator[] {
-			createNameTranslator(),
-			createTargetEntityTranslator(),
-			createFetchTranslator(),
-			createAccessTranslator(),
-			createMappedByTranslator(),
-			createOrderByTranslator(),
-			createMapKeyTranslator(),
-			createJoinTableTranslator(),
-			createJoinColumnTranslator(),
-			createCascadeTranslator(),
-			createPrivateOwnedTranslator(),
-			createJoinFetchTranslator(),
-			createPropertyTranslator(),
-			createAccessMethodsTranslator()
-		};
-	}
-	
-	protected Translator createAccessTranslator() {
-		return new Translator(ACCESS, ECLIPSELINK1_1_ORM_PKG.getXmlAttributeMapping_Access(), DOM_ATTRIBUTE);
-	}
-}
diff --git a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink1_1/core/internal/resource/orm/translators/EclipseLinkOneToOneTranslator.java b/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink1_1/core/internal/resource/orm/translators/EclipseLinkOneToOneTranslator.java
deleted file mode 100644
index 9eec925..0000000
--- a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink1_1/core/internal/resource/orm/translators/EclipseLinkOneToOneTranslator.java
+++ /dev/null
@@ -1,54 +0,0 @@
-/*******************************************************************************
- *  Copyright (c) 2009  Oracle. 
- *  All rights reserved.  This program and the accompanying materials are 
- *  made available under the terms of the Eclipse Public License v1.0 which 
- *  accompanies this distribution, and is available at 
- *  http://www.eclipse.org/legal/epl-v10.html
- *  
- *  Contributors: 
- *  	Oracle - initial API and implementation
- *******************************************************************************/
-package org.eclipse.jpt.eclipselink1_1.core.internal.resource.orm.translators;
-
-import org.eclipse.emf.ecore.EObject;
-import org.eclipse.emf.ecore.EStructuralFeature;
-import org.eclipse.jpt.eclipselink1_1.core.resource.orm.EclipseLink1_1OrmFactory;
-import org.eclipse.wst.common.internal.emf.resource.Translator;
-
-public class EclipseLinkOneToOneTranslator extends org.eclipse.jpt.eclipselink.core.internal.resource.orm.translators.EclipseLinkOneToOneTranslator
-	implements EclipseLink1_1OrmXmlMapper
-{
-	public EclipseLinkOneToOneTranslator(String domNameAndPath, EStructuralFeature aFeature) {
-		super(domNameAndPath, aFeature);
-	}
-	
-	
-	@Override
-	public EObject createEMFObject(String nodeName, String readAheadName) {
-		return EclipseLink1_1OrmFactory.eINSTANCE.createXmlOneToOneImpl();
-	}
-	
-	@Override
-	protected Translator[] createChildren() {
-		return new Translator[] {
-			createNameTranslator(),
-			createTargetEntityTranslator(),
-			createFetchTranslator(),
-			createOptionalTranslator(),
-			createAccessTranslator(),
-			createMappedByTranslator(),
-			createPrimaryKeyJoinColumnTranslator(),
-			createJoinColumnTranslator(),
-			createJoinTableTranslator(),
-			createCascadeTranslator(),
-			createPrivateOwnedTranslator(),
-			createJoinFetchTranslator(),
-			createPropertyTranslator(),
-			createAccessMethodsTranslator()
-		};
-	}
-	
-	protected Translator createAccessTranslator() {
-		return new Translator(ACCESS, ECLIPSELINK1_1_ORM_PKG.getXmlAttributeMapping_Access(), DOM_ATTRIBUTE);
-	}
-}
diff --git a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink1_1/core/internal/resource/orm/translators/EclipseLinkTransformationTranslator.java b/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink1_1/core/internal/resource/orm/translators/EclipseLinkTransformationTranslator.java
deleted file mode 100644
index bdaf8fb..0000000
--- a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink1_1/core/internal/resource/orm/translators/EclipseLinkTransformationTranslator.java
+++ /dev/null
@@ -1,50 +0,0 @@
-/*******************************************************************************
- *  Copyright (c) 2009  Oracle. 
- *  All rights reserved.  This program and the accompanying materials are 
- *  made available under the terms of the Eclipse Public License v1.0 which 
- *  accompanies this distribution, and is available at 
- *  http://www.eclipse.org/legal/epl-v10.html
- *  
- *  Contributors: 
- *  	Oracle - initial API and implementation
- *******************************************************************************/
-package org.eclipse.jpt.eclipselink1_1.core.internal.resource.orm.translators;
-
-import org.eclipse.emf.ecore.EObject;
-import org.eclipse.emf.ecore.EStructuralFeature;
-import org.eclipse.jpt.eclipselink1_1.core.resource.orm.EclipseLink1_1OrmFactory;
-import org.eclipse.wst.common.internal.emf.resource.Translator;
-
-public class EclipseLinkTransformationTranslator extends org.eclipse.jpt.eclipselink.core.internal.resource.orm.translators.TransformationTranslator
-	implements EclipseLink1_1OrmXmlMapper
-{
-
-	public EclipseLinkTransformationTranslator(String domNameAndPath, EStructuralFeature aFeature) {
-		super(domNameAndPath, aFeature);
-	}
-	
-	@Override
-	public EObject createEMFObject(String nodeName, String readAheadName) {
-		return EclipseLink1_1OrmFactory.eINSTANCE.createXmlTransformationImpl();
-	}
-	
-	@Override
-	protected Translator[] createChildren() {
-		return new Translator[] {
-			createNameTranslator(),
-//			createFetchTranslator(),
-//			createOptionalTranslator(),
-			createAccessTranslator(),
-//			createMutableTranslator(),
-//			createReadTransformerTranslator(),
-//			createWriteTransformerTranslator(),
-			createPropertyTranslator(),
-			createAccessMethodsTranslator()
-		};
-	}
-	
-	protected Translator createAccessTranslator() {
-		return new Translator(ACCESS, ECLIPSELINK1_1_ORM_PKG.getXmlAttributeMapping_Access(), DOM_ATTRIBUTE);
-	}
-
-}
diff --git a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink1_1/core/internal/resource/orm/translators/EclipseLinkTransientTranslator.java b/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink1_1/core/internal/resource/orm/translators/EclipseLinkTransientTranslator.java
deleted file mode 100644
index de0f074..0000000
--- a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink1_1/core/internal/resource/orm/translators/EclipseLinkTransientTranslator.java
+++ /dev/null
@@ -1,29 +0,0 @@
-/*******************************************************************************
- *  Copyright (c) 2009  Oracle. 
- *  All rights reserved.  This program and the accompanying materials are 
- *  made available under the terms of the Eclipse Public License v1.0 which 
- *  accompanies this distribution, and is available at 
- *  http://www.eclipse.org/legal/epl-v10.html
- *  
- *  Contributors: 
- *  	Oracle - initial API and implementation
- *******************************************************************************/
-package org.eclipse.jpt.eclipselink1_1.core.internal.resource.orm.translators;
-
-import org.eclipse.emf.ecore.EObject;
-import org.eclipse.emf.ecore.EStructuralFeature;
-import org.eclipse.jpt.core.internal.resource.orm.translators.TransientTranslator;
-import org.eclipse.jpt.eclipselink1_1.core.resource.orm.EclipseLink1_1OrmFactory;
-
-public class EclipseLinkTransientTranslator extends TransientTranslator
-	implements EclipseLink1_1OrmXmlMapper
-{
-	public EclipseLinkTransientTranslator(String domNameAndPath, EStructuralFeature aFeature) {
-		super(domNameAndPath, aFeature);
-	}
-		
-	@Override
-	public EObject createEMFObject(String nodeName, String readAheadName) {
-		return EclipseLink1_1OrmFactory.eINSTANCE.createXmlTransientImpl();
-	}
-}
diff --git a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink1_1/core/internal/resource/orm/translators/EclipseLinkVariableOneToOneTranslator.java b/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink1_1/core/internal/resource/orm/translators/EclipseLinkVariableOneToOneTranslator.java
deleted file mode 100644
index 3a9b754..0000000
--- a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink1_1/core/internal/resource/orm/translators/EclipseLinkVariableOneToOneTranslator.java
+++ /dev/null
@@ -1,42 +0,0 @@
-/*******************************************************************************
- *  Copyright (c) 2009  Oracle. 
- *  All rights reserved.  This program and the accompanying materials are 
- *  made available under the terms of the Eclipse Public License v1.0 which 
- *  accompanies this distribution, and is available at 
- *  http://www.eclipse.org/legal/epl-v10.html
- *  
- *  Contributors: 
- *  	Oracle - initial API and implementation
- *******************************************************************************/
-package org.eclipse.jpt.eclipselink1_1.core.internal.resource.orm.translators;
-
-import org.eclipse.emf.ecore.EObject;
-import org.eclipse.emf.ecore.EStructuralFeature;
-import org.eclipse.jpt.eclipselink1_1.core.resource.orm.EclipseLink1_1OrmFactory;
-import org.eclipse.wst.common.internal.emf.resource.Translator;
-
-public class EclipseLinkVariableOneToOneTranslator extends org.eclipse.jpt.eclipselink.core.internal.resource.orm.translators.VariableOneToOneTranslator
-	implements EclipseLink1_1OrmXmlMapper
-{
-	public EclipseLinkVariableOneToOneTranslator(String domNameAndPath, EStructuralFeature aFeature) {
-		super(domNameAndPath, aFeature);
-	}
-	
-	@Override
-	public EObject createEMFObject(String nodeName, String readAheadName) {
-		return EclipseLink1_1OrmFactory.eINSTANCE.createXmlVariableOneToOneImpl();
-	}
-	
-	@Override
-	protected Translator[] createChildren() {
-		return new Translator[] {
-			createNameTranslator(),
-			createAccessTranslator()
-		};
-	}
-	//263957 - access is missing from the schema for variable 1-1, but i will just go ahead and add support
-	protected Translator createAccessTranslator() {
-		return new Translator(ACCESS, ECLIPSELINK1_1_ORM_PKG.getXmlAttributeMapping_Access(), DOM_ATTRIBUTE);
-	}
-
-}
diff --git a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink1_1/core/internal/resource/orm/translators/EclipseLinkVersionTranslator.java b/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink1_1/core/internal/resource/orm/translators/EclipseLinkVersionTranslator.java
deleted file mode 100644
index 7c6f365..0000000
--- a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink1_1/core/internal/resource/orm/translators/EclipseLinkVersionTranslator.java
+++ /dev/null
@@ -1,50 +0,0 @@
-/*******************************************************************************
- *  Copyright (c) 2009  Oracle. 
- *  All rights reserved.  This program and the accompanying materials are 
- *  made available under the terms of the Eclipse Public License v1.0 which 
- *  accompanies this distribution, and is available at 
- *  http://www.eclipse.org/legal/epl-v10.html
- *  
- *  Contributors: 
- *  	Oracle - initial API and implementation
- *******************************************************************************/
-package org.eclipse.jpt.eclipselink1_1.core.internal.resource.orm.translators;
-
-import org.eclipse.emf.ecore.EObject;
-import org.eclipse.emf.ecore.EStructuralFeature;
-import org.eclipse.jpt.eclipselink1_1.core.resource.orm.EclipseLink1_1OrmFactory;
-import org.eclipse.wst.common.internal.emf.resource.Translator;
-
-public class EclipseLinkVersionTranslator extends org.eclipse.jpt.eclipselink.core.internal.resource.orm.translators.EclipseLinkVersionTranslator
-	implements EclipseLink1_1OrmXmlMapper
-{
-	public EclipseLinkVersionTranslator(String domNameAndPath, EStructuralFeature aFeature) {
-		super(domNameAndPath, aFeature);
-	}
-	
-	@Override
-	public EObject createEMFObject(String nodeName, String readAheadName) {
-		return EclipseLink1_1OrmFactory.eINSTANCE.createXmlVersionImpl();
-	}
-	
-	@Override
-	protected Translator[] createChildren() {
-		return new Translator[] {
-			createNameTranslator(),
-			createMutableTranslator(),
-			createColumnTranslator(), 
-			createTemporalTranslator(),
-			createConvertTranslator(),
-			createConverterTranslator(),
-			createTypeConverterTranslator(),
-			createObjectTypeConverterTranslator(),
-			createStructConverterTranslator(),
-			createPropertyTranslator(),
-			createAccessMethodsTranslator()
-		};
-	}
-	
-	protected Translator createAccessTranslator() {
-		return new Translator(ACCESS, ECLIPSELINK1_1_ORM_PKG.getXmlAttributeMapping_Access(), DOM_ATTRIBUTE);
-	}
-}
diff --git a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink1_1/core/resource/orm/EclipseLink1_1OrmFactory.java b/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink1_1/core/resource/orm/EclipseLink1_1OrmFactory.java
deleted file mode 100644
index 43fab98..0000000
--- a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink1_1/core/resource/orm/EclipseLink1_1OrmFactory.java
+++ /dev/null
@@ -1,289 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- *******************************************************************************/
-package org.eclipse.jpt.eclipselink1_1.core.resource.orm;
-
-import org.eclipse.emf.ecore.EClass;
-import org.eclipse.emf.ecore.EObject;
-import org.eclipse.emf.ecore.EPackage;
-
-import org.eclipse.emf.ecore.impl.EFactoryImpl;
-
-import org.eclipse.emf.ecore.plugin.EcorePlugin;
-
-/**
- * <!-- begin-user-doc -->
- * The <b>Factory</b> for the model.
- * It provides a create method for each non-abstract class of the model.
- * <!-- end-user-doc -->
- * @see org.eclipse.jpt.eclipselink1_1.core.resource.orm.EclipseLink1_1OrmPackage
- * @generated
- */
-public class EclipseLink1_1OrmFactory extends EFactoryImpl
-{
-	/**
-	 * The singleton instance of the factory.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public static final EclipseLink1_1OrmFactory eINSTANCE = init();
-
-	/**
-	 * Creates the default factory implementation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public static EclipseLink1_1OrmFactory init()
-	{
-		try
-		{
-			EclipseLink1_1OrmFactory theEclipseLink1_1OrmFactory = (EclipseLink1_1OrmFactory)EPackage.Registry.INSTANCE.getEFactory("jpt.eclipselink1_1.orm.xmi"); 
-			if (theEclipseLink1_1OrmFactory != null)
-			{
-				return theEclipseLink1_1OrmFactory;
-			}
-		}
-		catch (Exception exception)
-		{
-			EcorePlugin.INSTANCE.log(exception);
-		}
-		return new EclipseLink1_1OrmFactory();
-	}
-
-	/**
-	 * Creates an instance of the factory.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public EclipseLink1_1OrmFactory()
-	{
-		super();
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public EObject create(EClass eClass)
-	{
-		switch (eClass.getClassifierID())
-		{
-			case EclipseLink1_1OrmPackage.XML_ENTITY_MAPPINGS: return (EObject)createXmlEntityMappings();
-			case EclipseLink1_1OrmPackage.XML_ID_IMPL: return (EObject)createXmlIdImpl();
-			case EclipseLink1_1OrmPackage.XML_EMBEDDED_ID_IMPL: return (EObject)createXmlEmbeddedIdImpl();
-			case EclipseLink1_1OrmPackage.XML_EMBEDDED_IMPL: return (EObject)createXmlEmbeddedImpl();
-			case EclipseLink1_1OrmPackage.XML_BASIC_IMPL: return (EObject)createXmlBasicImpl();
-			case EclipseLink1_1OrmPackage.XML_VERSION_IMPL: return (EObject)createXmlVersionImpl();
-			case EclipseLink1_1OrmPackage.XML_ONE_TO_ONE_IMPL: return (EObject)createXmlOneToOneImpl();
-			case EclipseLink1_1OrmPackage.XML_ONE_TO_MANY_IMPL: return (EObject)createXmlOneToManyImpl();
-			case EclipseLink1_1OrmPackage.XML_MANY_TO_ONE_IMPL: return (EObject)createXmlManyToOneImpl();
-			case EclipseLink1_1OrmPackage.XML_MANY_TO_MANY_IMPL: return (EObject)createXmlManyToManyImpl();
-			case EclipseLink1_1OrmPackage.XML_BASIC_COLLECTION_IMPL: return (EObject)createXmlBasicCollectionImpl();
-			case EclipseLink1_1OrmPackage.XML_BASIC_MAP_IMPL: return (EObject)createXmlBasicMapImpl();
-			case EclipseLink1_1OrmPackage.XML_TRANSFORMATION_IMPL: return (EObject)createXmlTransformationImpl();
-			case EclipseLink1_1OrmPackage.XML_VARIABLE_ONE_TO_ONE_IMPL: return (EObject)createXmlVariableOneToOneImpl();
-			case EclipseLink1_1OrmPackage.XML_TRANSIENT_IMPL: return (EObject)createXmlTransientImpl();
-			default:
-				throw new IllegalArgumentException("The class '" + eClass.getName() + "' is not a valid classifier");
-		}
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public XmlEntityMappings createXmlEntityMappings()
-	{
-		XmlEntityMappings xmlEntityMappings = new XmlEntityMappings();
-		return xmlEntityMappings;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public XmlIdImpl createXmlIdImpl()
-	{
-		XmlIdImpl xmlIdImpl = new XmlIdImpl();
-		return xmlIdImpl;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public XmlEmbeddedIdImpl createXmlEmbeddedIdImpl()
-	{
-		XmlEmbeddedIdImpl xmlEmbeddedIdImpl = new XmlEmbeddedIdImpl();
-		return xmlEmbeddedIdImpl;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public XmlEmbeddedImpl createXmlEmbeddedImpl()
-	{
-		XmlEmbeddedImpl xmlEmbeddedImpl = new XmlEmbeddedImpl();
-		return xmlEmbeddedImpl;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public XmlBasicImpl createXmlBasicImpl()
-	{
-		XmlBasicImpl xmlBasicImpl = new XmlBasicImpl();
-		return xmlBasicImpl;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public XmlVersionImpl createXmlVersionImpl()
-	{
-		XmlVersionImpl xmlVersionImpl = new XmlVersionImpl();
-		return xmlVersionImpl;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public XmlOneToOneImpl createXmlOneToOneImpl()
-	{
-		XmlOneToOneImpl xmlOneToOneImpl = new XmlOneToOneImpl();
-		return xmlOneToOneImpl;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public XmlOneToManyImpl createXmlOneToManyImpl()
-	{
-		XmlOneToManyImpl xmlOneToManyImpl = new XmlOneToManyImpl();
-		return xmlOneToManyImpl;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public XmlManyToOneImpl createXmlManyToOneImpl()
-	{
-		XmlManyToOneImpl xmlManyToOneImpl = new XmlManyToOneImpl();
-		return xmlManyToOneImpl;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public XmlManyToManyImpl createXmlManyToManyImpl()
-	{
-		XmlManyToManyImpl xmlManyToManyImpl = new XmlManyToManyImpl();
-		return xmlManyToManyImpl;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public XmlBasicCollectionImpl createXmlBasicCollectionImpl()
-	{
-		XmlBasicCollectionImpl xmlBasicCollectionImpl = new XmlBasicCollectionImpl();
-		return xmlBasicCollectionImpl;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public XmlBasicMapImpl createXmlBasicMapImpl()
-	{
-		XmlBasicMapImpl xmlBasicMapImpl = new XmlBasicMapImpl();
-		return xmlBasicMapImpl;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public XmlTransformationImpl createXmlTransformationImpl()
-	{
-		XmlTransformationImpl xmlTransformationImpl = new XmlTransformationImpl();
-		return xmlTransformationImpl;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public XmlVariableOneToOneImpl createXmlVariableOneToOneImpl()
-	{
-		XmlVariableOneToOneImpl xmlVariableOneToOneImpl = new XmlVariableOneToOneImpl();
-		return xmlVariableOneToOneImpl;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public XmlTransientImpl createXmlTransientImpl()
-	{
-		XmlTransientImpl xmlTransientImpl = new XmlTransientImpl();
-		return xmlTransientImpl;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public EclipseLink1_1OrmPackage getEclipseLink1_1OrmPackage()
-	{
-		return (EclipseLink1_1OrmPackage)getEPackage();
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @deprecated
-	 * @generated
-	 */
-	@Deprecated
-	public static EclipseLink1_1OrmPackage getPackage()
-	{
-		return EclipseLink1_1OrmPackage.eINSTANCE;
-	}
-
-} //EclipseLink1_1OrmFactory
diff --git a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink1_1/core/resource/orm/EclipseLink1_1OrmPackage.java b/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink1_1/core/resource/orm/EclipseLink1_1OrmPackage.java
deleted file mode 100644
index cc471c9..0000000
--- a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink1_1/core/resource/orm/EclipseLink1_1OrmPackage.java
+++ /dev/null
@@ -1,4509 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- *******************************************************************************/
-package org.eclipse.jpt.eclipselink1_1.core.resource.orm;
-
-import org.eclipse.emf.ecore.EAttribute;
-import org.eclipse.emf.ecore.EClass;
-import org.eclipse.emf.ecore.EPackage;
-
-import org.eclipse.emf.ecore.EReference;
-import org.eclipse.emf.ecore.impl.EPackageImpl;
-
-import org.eclipse.jpt.core.resource.orm.OrmPackage;
-
-import org.eclipse.jpt.eclipselink.core.resource.orm.EclipseLinkOrmPackage;
-
-/**
- * <!-- begin-user-doc -->
- * The <b>Package</b> for the model.
- * It contains accessors for the meta objects to represent
- * <ul>
- *   <li>each class,</li>
- *   <li>each feature of each class,</li>
- *   <li>each enum,</li>
- *   <li>and each data type</li>
- * </ul>
- * <!-- end-user-doc -->
- * @see org.eclipse.jpt.eclipselink1_1.core.resource.orm.EclipseLink1_1OrmFactory
- * @model kind="package"
- * @generated
- */
-public class EclipseLink1_1OrmPackage extends EPackageImpl
-{
-	/**
-	 * The package name.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public static final String eNAME = "orm";
-
-	/**
-	 * The package namespace URI.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public static final String eNS_URI = "jpt.eclipselink1_1.orm.xmi";
-
-	/**
-	 * The package namespace name.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public static final String eNS_PREFIX = "org.eclipse.jpt.eclipselink1_1.core.resource.orm";
-
-	/**
-	 * The singleton instance of the package.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public static final EclipseLink1_1OrmPackage eINSTANCE = org.eclipse.jpt.eclipselink1_1.core.resource.orm.EclipseLink1_1OrmPackage.init();
-
-	/**
-	 * The meta object id for the '{@link org.eclipse.jpt.eclipselink1_1.core.resource.orm.XmlEntityMappings <em>Xml Entity Mappings</em>}' class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see org.eclipse.jpt.eclipselink1_1.core.resource.orm.XmlEntityMappings
-	 * @see org.eclipse.jpt.eclipselink1_1.core.resource.orm.EclipseLink1_1OrmPackage#getXmlEntityMappings()
-	 * @generated
-	 */
-	public static final int XML_ENTITY_MAPPINGS = 0;
-
-	/**
-	 * The feature id for the '<em><b>Version</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	public static final int XML_ENTITY_MAPPINGS__VERSION = EclipseLinkOrmPackage.XML_ENTITY_MAPPINGS__VERSION;
-
-	/**
-	 * The feature id for the '<em><b>Description</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	public static final int XML_ENTITY_MAPPINGS__DESCRIPTION = EclipseLinkOrmPackage.XML_ENTITY_MAPPINGS__DESCRIPTION;
-
-	/**
-	 * The feature id for the '<em><b>Persistence Unit Metadata</b></em>' containment reference.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	public static final int XML_ENTITY_MAPPINGS__PERSISTENCE_UNIT_METADATA = EclipseLinkOrmPackage.XML_ENTITY_MAPPINGS__PERSISTENCE_UNIT_METADATA;
-
-	/**
-	 * The feature id for the '<em><b>Package</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	public static final int XML_ENTITY_MAPPINGS__PACKAGE = EclipseLinkOrmPackage.XML_ENTITY_MAPPINGS__PACKAGE;
-
-	/**
-	 * The feature id for the '<em><b>Schema</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	public static final int XML_ENTITY_MAPPINGS__SCHEMA = EclipseLinkOrmPackage.XML_ENTITY_MAPPINGS__SCHEMA;
-
-	/**
-	 * The feature id for the '<em><b>Catalog</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	public static final int XML_ENTITY_MAPPINGS__CATALOG = EclipseLinkOrmPackage.XML_ENTITY_MAPPINGS__CATALOG;
-
-	/**
-	 * The feature id for the '<em><b>Access</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	public static final int XML_ENTITY_MAPPINGS__ACCESS = EclipseLinkOrmPackage.XML_ENTITY_MAPPINGS__ACCESS;
-
-	/**
-	 * The feature id for the '<em><b>Sequence Generators</b></em>' containment reference list.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	public static final int XML_ENTITY_MAPPINGS__SEQUENCE_GENERATORS = EclipseLinkOrmPackage.XML_ENTITY_MAPPINGS__SEQUENCE_GENERATORS;
-
-	/**
-	 * The feature id for the '<em><b>Table Generators</b></em>' containment reference list.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	public static final int XML_ENTITY_MAPPINGS__TABLE_GENERATORS = EclipseLinkOrmPackage.XML_ENTITY_MAPPINGS__TABLE_GENERATORS;
-
-	/**
-	 * The feature id for the '<em><b>Named Queries</b></em>' containment reference list.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	public static final int XML_ENTITY_MAPPINGS__NAMED_QUERIES = EclipseLinkOrmPackage.XML_ENTITY_MAPPINGS__NAMED_QUERIES;
-
-	/**
-	 * The feature id for the '<em><b>Named Native Queries</b></em>' containment reference list.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	public static final int XML_ENTITY_MAPPINGS__NAMED_NATIVE_QUERIES = EclipseLinkOrmPackage.XML_ENTITY_MAPPINGS__NAMED_NATIVE_QUERIES;
-
-	/**
-	 * The feature id for the '<em><b>Sql Result Set Mappings</b></em>' containment reference list.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	public static final int XML_ENTITY_MAPPINGS__SQL_RESULT_SET_MAPPINGS = EclipseLinkOrmPackage.XML_ENTITY_MAPPINGS__SQL_RESULT_SET_MAPPINGS;
-
-	/**
-	 * The feature id for the '<em><b>Mapped Superclasses</b></em>' containment reference list.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	public static final int XML_ENTITY_MAPPINGS__MAPPED_SUPERCLASSES = EclipseLinkOrmPackage.XML_ENTITY_MAPPINGS__MAPPED_SUPERCLASSES;
-
-	/**
-	 * The feature id for the '<em><b>Entities</b></em>' containment reference list.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	public static final int XML_ENTITY_MAPPINGS__ENTITIES = EclipseLinkOrmPackage.XML_ENTITY_MAPPINGS__ENTITIES;
-
-	/**
-	 * The feature id for the '<em><b>Embeddables</b></em>' containment reference list.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	public static final int XML_ENTITY_MAPPINGS__EMBEDDABLES = EclipseLinkOrmPackage.XML_ENTITY_MAPPINGS__EMBEDDABLES;
-
-	/**
-	 * The feature id for the '<em><b>Converters</b></em>' containment reference list.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	public static final int XML_ENTITY_MAPPINGS__CONVERTERS = EclipseLinkOrmPackage.XML_ENTITY_MAPPINGS__CONVERTERS;
-
-	/**
-	 * The feature id for the '<em><b>Type Converters</b></em>' containment reference list.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	public static final int XML_ENTITY_MAPPINGS__TYPE_CONVERTERS = EclipseLinkOrmPackage.XML_ENTITY_MAPPINGS__TYPE_CONVERTERS;
-
-	/**
-	 * The feature id for the '<em><b>Object Type Converters</b></em>' containment reference list.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	public static final int XML_ENTITY_MAPPINGS__OBJECT_TYPE_CONVERTERS = EclipseLinkOrmPackage.XML_ENTITY_MAPPINGS__OBJECT_TYPE_CONVERTERS;
-
-	/**
-	 * The feature id for the '<em><b>Struct Converters</b></em>' containment reference list.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	public static final int XML_ENTITY_MAPPINGS__STRUCT_CONVERTERS = EclipseLinkOrmPackage.XML_ENTITY_MAPPINGS__STRUCT_CONVERTERS;
-
-	/**
-	 * The feature id for the '<em><b>Named Stored Procedure Queries</b></em>' containment reference list.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	public static final int XML_ENTITY_MAPPINGS__NAMED_STORED_PROCEDURE_QUERIES = EclipseLinkOrmPackage.XML_ENTITY_MAPPINGS__NAMED_STORED_PROCEDURE_QUERIES;
-
-	/**
-	 * The number of structural features of the '<em>Xml Entity Mappings</em>' class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	public static final int XML_ENTITY_MAPPINGS_FEATURE_COUNT = EclipseLinkOrmPackage.XML_ENTITY_MAPPINGS_FEATURE_COUNT + 0;
-
-	/**
-	 * The meta object id for the '{@link org.eclipse.jpt.eclipselink1_1.core.resource.orm.XmlAttributeMapping <em>Xml Attribute Mapping</em>}' class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see org.eclipse.jpt.eclipselink1_1.core.resource.orm.XmlAttributeMapping
-	 * @see org.eclipse.jpt.eclipselink1_1.core.resource.orm.EclipseLink1_1OrmPackage#getXmlAttributeMapping()
-	 * @generated
-	 */
-	public static final int XML_ATTRIBUTE_MAPPING = 1;
-
-	/**
-	 * The feature id for the '<em><b>Name</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	public static final int XML_ATTRIBUTE_MAPPING__NAME = OrmPackage.XML_ATTRIBUTE_MAPPING__NAME;
-
-	/**
-	 * The feature id for the '<em><b>Access</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	public static final int XML_ATTRIBUTE_MAPPING__ACCESS = OrmPackage.XML_ATTRIBUTE_MAPPING_FEATURE_COUNT + 0;
-
-	/**
-	 * The number of structural features of the '<em>Xml Attribute Mapping</em>' class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	public static final int XML_ATTRIBUTE_MAPPING_FEATURE_COUNT = OrmPackage.XML_ATTRIBUTE_MAPPING_FEATURE_COUNT + 1;
-
-	/**
-	 * The meta object id for the '{@link org.eclipse.jpt.eclipselink1_1.core.resource.orm.XmlId <em>Xml Id</em>}' class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see org.eclipse.jpt.eclipselink1_1.core.resource.orm.XmlId
-	 * @see org.eclipse.jpt.eclipselink1_1.core.resource.orm.EclipseLink1_1OrmPackage#getXmlId()
-	 * @generated
-	 */
-	public static final int XML_ID = 2;
-
-	/**
-	 * The feature id for the '<em><b>Name</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	public static final int XML_ID__NAME = EclipseLinkOrmPackage.XML_ID__NAME;
-
-	/**
-	 * The feature id for the '<em><b>Column</b></em>' containment reference.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	public static final int XML_ID__COLUMN = EclipseLinkOrmPackage.XML_ID__COLUMN;
-
-	/**
-	 * The feature id for the '<em><b>Lob</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	public static final int XML_ID__LOB = EclipseLinkOrmPackage.XML_ID__LOB;
-
-	/**
-	 * The feature id for the '<em><b>Temporal</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	public static final int XML_ID__TEMPORAL = EclipseLinkOrmPackage.XML_ID__TEMPORAL;
-
-	/**
-	 * The feature id for the '<em><b>Enumerated</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	public static final int XML_ID__ENUMERATED = EclipseLinkOrmPackage.XML_ID__ENUMERATED;
-
-	/**
-	 * The feature id for the '<em><b>Generated Value</b></em>' containment reference.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	public static final int XML_ID__GENERATED_VALUE = EclipseLinkOrmPackage.XML_ID__GENERATED_VALUE;
-
-	/**
-	 * The feature id for the '<em><b>Table Generator</b></em>' containment reference.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	public static final int XML_ID__TABLE_GENERATOR = EclipseLinkOrmPackage.XML_ID__TABLE_GENERATOR;
-
-	/**
-	 * The feature id for the '<em><b>Sequence Generator</b></em>' containment reference.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	public static final int XML_ID__SEQUENCE_GENERATOR = EclipseLinkOrmPackage.XML_ID__SEQUENCE_GENERATOR;
-
-	/**
-	 * The feature id for the '<em><b>Mutable</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	public static final int XML_ID__MUTABLE = EclipseLinkOrmPackage.XML_ID__MUTABLE;
-
-	/**
-	 * The feature id for the '<em><b>Converter</b></em>' containment reference.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	public static final int XML_ID__CONVERTER = EclipseLinkOrmPackage.XML_ID__CONVERTER;
-
-	/**
-	 * The feature id for the '<em><b>Type Converter</b></em>' containment reference.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	public static final int XML_ID__TYPE_CONVERTER = EclipseLinkOrmPackage.XML_ID__TYPE_CONVERTER;
-
-	/**
-	 * The feature id for the '<em><b>Object Type Converter</b></em>' containment reference.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	public static final int XML_ID__OBJECT_TYPE_CONVERTER = EclipseLinkOrmPackage.XML_ID__OBJECT_TYPE_CONVERTER;
-
-	/**
-	 * The feature id for the '<em><b>Struct Converter</b></em>' containment reference.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	public static final int XML_ID__STRUCT_CONVERTER = EclipseLinkOrmPackage.XML_ID__STRUCT_CONVERTER;
-
-	/**
-	 * The feature id for the '<em><b>Convert</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	public static final int XML_ID__CONVERT = EclipseLinkOrmPackage.XML_ID__CONVERT;
-
-	/**
-	 * The feature id for the '<em><b>Access Methods</b></em>' containment reference.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	public static final int XML_ID__ACCESS_METHODS = EclipseLinkOrmPackage.XML_ID__ACCESS_METHODS;
-
-	/**
-	 * The feature id for the '<em><b>Properties</b></em>' containment reference list.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	public static final int XML_ID__PROPERTIES = EclipseLinkOrmPackage.XML_ID__PROPERTIES;
-
-	/**
-	 * The feature id for the '<em><b>Access</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	public static final int XML_ID__ACCESS = EclipseLinkOrmPackage.XML_ID_FEATURE_COUNT + 0;
-
-	/**
-	 * The number of structural features of the '<em>Xml Id</em>' class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	public static final int XML_ID_FEATURE_COUNT = EclipseLinkOrmPackage.XML_ID_FEATURE_COUNT + 1;
-
-	/**
-	 * The meta object id for the '{@link org.eclipse.jpt.eclipselink1_1.core.resource.orm.XmlIdImpl <em>Xml Id Impl</em>}' class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see org.eclipse.jpt.eclipselink1_1.core.resource.orm.XmlIdImpl
-	 * @see org.eclipse.jpt.eclipselink1_1.core.resource.orm.EclipseLink1_1OrmPackage#getXmlIdImpl()
-	 * @generated
-	 */
-	public static final int XML_ID_IMPL = 3;
-
-	/**
-	 * The feature id for the '<em><b>Name</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	public static final int XML_ID_IMPL__NAME = EclipseLinkOrmPackage.XML_ID_IMPL__NAME;
-
-	/**
-	 * The feature id for the '<em><b>Column</b></em>' containment reference.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	public static final int XML_ID_IMPL__COLUMN = EclipseLinkOrmPackage.XML_ID_IMPL__COLUMN;
-
-	/**
-	 * The feature id for the '<em><b>Lob</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	public static final int XML_ID_IMPL__LOB = EclipseLinkOrmPackage.XML_ID_IMPL__LOB;
-
-	/**
-	 * The feature id for the '<em><b>Temporal</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	public static final int XML_ID_IMPL__TEMPORAL = EclipseLinkOrmPackage.XML_ID_IMPL__TEMPORAL;
-
-	/**
-	 * The feature id for the '<em><b>Enumerated</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	public static final int XML_ID_IMPL__ENUMERATED = EclipseLinkOrmPackage.XML_ID_IMPL__ENUMERATED;
-
-	/**
-	 * The feature id for the '<em><b>Generated Value</b></em>' containment reference.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	public static final int XML_ID_IMPL__GENERATED_VALUE = EclipseLinkOrmPackage.XML_ID_IMPL__GENERATED_VALUE;
-
-	/**
-	 * The feature id for the '<em><b>Table Generator</b></em>' containment reference.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	public static final int XML_ID_IMPL__TABLE_GENERATOR = EclipseLinkOrmPackage.XML_ID_IMPL__TABLE_GENERATOR;
-
-	/**
-	 * The feature id for the '<em><b>Sequence Generator</b></em>' containment reference.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	public static final int XML_ID_IMPL__SEQUENCE_GENERATOR = EclipseLinkOrmPackage.XML_ID_IMPL__SEQUENCE_GENERATOR;
-
-	/**
-	 * The feature id for the '<em><b>Mutable</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	public static final int XML_ID_IMPL__MUTABLE = EclipseLinkOrmPackage.XML_ID_IMPL__MUTABLE;
-
-	/**
-	 * The feature id for the '<em><b>Converter</b></em>' containment reference.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	public static final int XML_ID_IMPL__CONVERTER = EclipseLinkOrmPackage.XML_ID_IMPL__CONVERTER;
-
-	/**
-	 * The feature id for the '<em><b>Type Converter</b></em>' containment reference.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	public static final int XML_ID_IMPL__TYPE_CONVERTER = EclipseLinkOrmPackage.XML_ID_IMPL__TYPE_CONVERTER;
-
-	/**
-	 * The feature id for the '<em><b>Object Type Converter</b></em>' containment reference.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	public static final int XML_ID_IMPL__OBJECT_TYPE_CONVERTER = EclipseLinkOrmPackage.XML_ID_IMPL__OBJECT_TYPE_CONVERTER;
-
-	/**
-	 * The feature id for the '<em><b>Struct Converter</b></em>' containment reference.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	public static final int XML_ID_IMPL__STRUCT_CONVERTER = EclipseLinkOrmPackage.XML_ID_IMPL__STRUCT_CONVERTER;
-
-	/**
-	 * The feature id for the '<em><b>Convert</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	public static final int XML_ID_IMPL__CONVERT = EclipseLinkOrmPackage.XML_ID_IMPL__CONVERT;
-
-	/**
-	 * The feature id for the '<em><b>Access Methods</b></em>' containment reference.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	public static final int XML_ID_IMPL__ACCESS_METHODS = EclipseLinkOrmPackage.XML_ID_IMPL__ACCESS_METHODS;
-
-	/**
-	 * The feature id for the '<em><b>Properties</b></em>' containment reference list.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	public static final int XML_ID_IMPL__PROPERTIES = EclipseLinkOrmPackage.XML_ID_IMPL__PROPERTIES;
-
-	/**
-	 * The feature id for the '<em><b>Access</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	public static final int XML_ID_IMPL__ACCESS = EclipseLinkOrmPackage.XML_ID_IMPL_FEATURE_COUNT + 0;
-
-	/**
-	 * The number of structural features of the '<em>Xml Id Impl</em>' class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	public static final int XML_ID_IMPL_FEATURE_COUNT = EclipseLinkOrmPackage.XML_ID_IMPL_FEATURE_COUNT + 1;
-
-	/**
-	 * The meta object id for the '{@link org.eclipse.jpt.eclipselink1_1.core.resource.orm.XmlEmbeddedId <em>Xml Embedded Id</em>}' class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see org.eclipse.jpt.eclipselink1_1.core.resource.orm.XmlEmbeddedId
-	 * @see org.eclipse.jpt.eclipselink1_1.core.resource.orm.EclipseLink1_1OrmPackage#getXmlEmbeddedId()
-	 * @generated
-	 */
-	public static final int XML_EMBEDDED_ID = 4;
-
-	/**
-	 * The feature id for the '<em><b>Name</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	public static final int XML_EMBEDDED_ID__NAME = EclipseLinkOrmPackage.XML_EMBEDDED_ID__NAME;
-
-	/**
-	 * The feature id for the '<em><b>Attribute Overrides</b></em>' containment reference list.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	public static final int XML_EMBEDDED_ID__ATTRIBUTE_OVERRIDES = EclipseLinkOrmPackage.XML_EMBEDDED_ID__ATTRIBUTE_OVERRIDES;
-
-	/**
-	 * The feature id for the '<em><b>Access Methods</b></em>' containment reference.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	public static final int XML_EMBEDDED_ID__ACCESS_METHODS = EclipseLinkOrmPackage.XML_EMBEDDED_ID__ACCESS_METHODS;
-
-	/**
-	 * The feature id for the '<em><b>Properties</b></em>' containment reference list.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	public static final int XML_EMBEDDED_ID__PROPERTIES = EclipseLinkOrmPackage.XML_EMBEDDED_ID__PROPERTIES;
-
-	/**
-	 * The feature id for the '<em><b>Access</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	public static final int XML_EMBEDDED_ID__ACCESS = EclipseLinkOrmPackage.XML_EMBEDDED_ID_FEATURE_COUNT + 0;
-
-	/**
-	 * The number of structural features of the '<em>Xml Embedded Id</em>' class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	public static final int XML_EMBEDDED_ID_FEATURE_COUNT = EclipseLinkOrmPackage.XML_EMBEDDED_ID_FEATURE_COUNT + 1;
-
-	/**
-	 * The meta object id for the '{@link org.eclipse.jpt.eclipselink1_1.core.resource.orm.XmlEmbeddedIdImpl <em>Xml Embedded Id Impl</em>}' class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see org.eclipse.jpt.eclipselink1_1.core.resource.orm.XmlEmbeddedIdImpl
-	 * @see org.eclipse.jpt.eclipselink1_1.core.resource.orm.EclipseLink1_1OrmPackage#getXmlEmbeddedIdImpl()
-	 * @generated
-	 */
-	public static final int XML_EMBEDDED_ID_IMPL = 5;
-
-	/**
-	 * The feature id for the '<em><b>Name</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	public static final int XML_EMBEDDED_ID_IMPL__NAME = EclipseLinkOrmPackage.XML_EMBEDDED_ID_IMPL__NAME;
-
-	/**
-	 * The feature id for the '<em><b>Attribute Overrides</b></em>' containment reference list.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	public static final int XML_EMBEDDED_ID_IMPL__ATTRIBUTE_OVERRIDES = EclipseLinkOrmPackage.XML_EMBEDDED_ID_IMPL__ATTRIBUTE_OVERRIDES;
-
-	/**
-	 * The feature id for the '<em><b>Access Methods</b></em>' containment reference.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	public static final int XML_EMBEDDED_ID_IMPL__ACCESS_METHODS = EclipseLinkOrmPackage.XML_EMBEDDED_ID_IMPL__ACCESS_METHODS;
-
-	/**
-	 * The feature id for the '<em><b>Properties</b></em>' containment reference list.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	public static final int XML_EMBEDDED_ID_IMPL__PROPERTIES = EclipseLinkOrmPackage.XML_EMBEDDED_ID_IMPL__PROPERTIES;
-
-	/**
-	 * The feature id for the '<em><b>Access</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	public static final int XML_EMBEDDED_ID_IMPL__ACCESS = EclipseLinkOrmPackage.XML_EMBEDDED_ID_IMPL_FEATURE_COUNT + 0;
-
-	/**
-	 * The number of structural features of the '<em>Xml Embedded Id Impl</em>' class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	public static final int XML_EMBEDDED_ID_IMPL_FEATURE_COUNT = EclipseLinkOrmPackage.XML_EMBEDDED_ID_IMPL_FEATURE_COUNT + 1;
-
-	/**
-	 * The meta object id for the '{@link org.eclipse.jpt.eclipselink1_1.core.resource.orm.XmlEmbedded <em>Xml Embedded</em>}' class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see org.eclipse.jpt.eclipselink1_1.core.resource.orm.XmlEmbedded
-	 * @see org.eclipse.jpt.eclipselink1_1.core.resource.orm.EclipseLink1_1OrmPackage#getXmlEmbedded()
-	 * @generated
-	 */
-	public static final int XML_EMBEDDED = 6;
-
-	/**
-	 * The feature id for the '<em><b>Name</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	public static final int XML_EMBEDDED__NAME = EclipseLinkOrmPackage.XML_EMBEDDED__NAME;
-
-	/**
-	 * The feature id for the '<em><b>Attribute Overrides</b></em>' containment reference list.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	public static final int XML_EMBEDDED__ATTRIBUTE_OVERRIDES = EclipseLinkOrmPackage.XML_EMBEDDED__ATTRIBUTE_OVERRIDES;
-
-	/**
-	 * The feature id for the '<em><b>Access Methods</b></em>' containment reference.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	public static final int XML_EMBEDDED__ACCESS_METHODS = EclipseLinkOrmPackage.XML_EMBEDDED__ACCESS_METHODS;
-
-	/**
-	 * The feature id for the '<em><b>Properties</b></em>' containment reference list.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	public static final int XML_EMBEDDED__PROPERTIES = EclipseLinkOrmPackage.XML_EMBEDDED__PROPERTIES;
-
-	/**
-	 * The feature id for the '<em><b>Access</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	public static final int XML_EMBEDDED__ACCESS = EclipseLinkOrmPackage.XML_EMBEDDED_FEATURE_COUNT + 0;
-
-	/**
-	 * The number of structural features of the '<em>Xml Embedded</em>' class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	public static final int XML_EMBEDDED_FEATURE_COUNT = EclipseLinkOrmPackage.XML_EMBEDDED_FEATURE_COUNT + 1;
-
-	/**
-	 * The meta object id for the '{@link org.eclipse.jpt.eclipselink1_1.core.resource.orm.XmlEmbeddedImpl <em>Xml Embedded Impl</em>}' class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see org.eclipse.jpt.eclipselink1_1.core.resource.orm.XmlEmbeddedImpl
-	 * @see org.eclipse.jpt.eclipselink1_1.core.resource.orm.EclipseLink1_1OrmPackage#getXmlEmbeddedImpl()
-	 * @generated
-	 */
-	public static final int XML_EMBEDDED_IMPL = 7;
-
-	/**
-	 * The feature id for the '<em><b>Name</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	public static final int XML_EMBEDDED_IMPL__NAME = EclipseLinkOrmPackage.XML_EMBEDDED_IMPL__NAME;
-
-	/**
-	 * The feature id for the '<em><b>Attribute Overrides</b></em>' containment reference list.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	public static final int XML_EMBEDDED_IMPL__ATTRIBUTE_OVERRIDES = EclipseLinkOrmPackage.XML_EMBEDDED_IMPL__ATTRIBUTE_OVERRIDES;
-
-	/**
-	 * The feature id for the '<em><b>Access Methods</b></em>' containment reference.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	public static final int XML_EMBEDDED_IMPL__ACCESS_METHODS = EclipseLinkOrmPackage.XML_EMBEDDED_IMPL__ACCESS_METHODS;
-
-	/**
-	 * The feature id for the '<em><b>Properties</b></em>' containment reference list.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	public static final int XML_EMBEDDED_IMPL__PROPERTIES = EclipseLinkOrmPackage.XML_EMBEDDED_IMPL__PROPERTIES;
-
-	/**
-	 * The feature id for the '<em><b>Access</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	public static final int XML_EMBEDDED_IMPL__ACCESS = EclipseLinkOrmPackage.XML_EMBEDDED_IMPL_FEATURE_COUNT + 0;
-
-	/**
-	 * The number of structural features of the '<em>Xml Embedded Impl</em>' class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	public static final int XML_EMBEDDED_IMPL_FEATURE_COUNT = EclipseLinkOrmPackage.XML_EMBEDDED_IMPL_FEATURE_COUNT + 1;
-
-	/**
-	 * The meta object id for the '{@link org.eclipse.jpt.eclipselink1_1.core.resource.orm.XmlBasic <em>Xml Basic</em>}' class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see org.eclipse.jpt.eclipselink1_1.core.resource.orm.XmlBasic
-	 * @see org.eclipse.jpt.eclipselink1_1.core.resource.orm.EclipseLink1_1OrmPackage#getXmlBasic()
-	 * @generated
-	 */
-	public static final int XML_BASIC = 8;
-
-	/**
-	 * The feature id for the '<em><b>Name</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	public static final int XML_BASIC__NAME = EclipseLinkOrmPackage.XML_BASIC__NAME;
-
-	/**
-	 * The feature id for the '<em><b>Column</b></em>' containment reference.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	public static final int XML_BASIC__COLUMN = EclipseLinkOrmPackage.XML_BASIC__COLUMN;
-
-	/**
-	 * The feature id for the '<em><b>Lob</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	public static final int XML_BASIC__LOB = EclipseLinkOrmPackage.XML_BASIC__LOB;
-
-	/**
-	 * The feature id for the '<em><b>Temporal</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	public static final int XML_BASIC__TEMPORAL = EclipseLinkOrmPackage.XML_BASIC__TEMPORAL;
-
-	/**
-	 * The feature id for the '<em><b>Enumerated</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	public static final int XML_BASIC__ENUMERATED = EclipseLinkOrmPackage.XML_BASIC__ENUMERATED;
-
-	/**
-	 * The feature id for the '<em><b>Fetch</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	public static final int XML_BASIC__FETCH = EclipseLinkOrmPackage.XML_BASIC__FETCH;
-
-	/**
-	 * The feature id for the '<em><b>Optional</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	public static final int XML_BASIC__OPTIONAL = EclipseLinkOrmPackage.XML_BASIC__OPTIONAL;
-
-	/**
-	 * The feature id for the '<em><b>Mutable</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	public static final int XML_BASIC__MUTABLE = EclipseLinkOrmPackage.XML_BASIC__MUTABLE;
-
-	/**
-	 * The feature id for the '<em><b>Converter</b></em>' containment reference.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	public static final int XML_BASIC__CONVERTER = EclipseLinkOrmPackage.XML_BASIC__CONVERTER;
-
-	/**
-	 * The feature id for the '<em><b>Type Converter</b></em>' containment reference.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	public static final int XML_BASIC__TYPE_CONVERTER = EclipseLinkOrmPackage.XML_BASIC__TYPE_CONVERTER;
-
-	/**
-	 * The feature id for the '<em><b>Object Type Converter</b></em>' containment reference.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	public static final int XML_BASIC__OBJECT_TYPE_CONVERTER = EclipseLinkOrmPackage.XML_BASIC__OBJECT_TYPE_CONVERTER;
-
-	/**
-	 * The feature id for the '<em><b>Struct Converter</b></em>' containment reference.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	public static final int XML_BASIC__STRUCT_CONVERTER = EclipseLinkOrmPackage.XML_BASIC__STRUCT_CONVERTER;
-
-	/**
-	 * The feature id for the '<em><b>Convert</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	public static final int XML_BASIC__CONVERT = EclipseLinkOrmPackage.XML_BASIC__CONVERT;
-
-	/**
-	 * The feature id for the '<em><b>Access Methods</b></em>' containment reference.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	public static final int XML_BASIC__ACCESS_METHODS = EclipseLinkOrmPackage.XML_BASIC__ACCESS_METHODS;
-
-	/**
-	 * The feature id for the '<em><b>Properties</b></em>' containment reference list.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	public static final int XML_BASIC__PROPERTIES = EclipseLinkOrmPackage.XML_BASIC__PROPERTIES;
-
-	/**
-	 * The feature id for the '<em><b>Access</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	public static final int XML_BASIC__ACCESS = EclipseLinkOrmPackage.XML_BASIC_FEATURE_COUNT + 0;
-
-	/**
-	 * The feature id for the '<em><b>Generated Value</b></em>' containment reference.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	public static final int XML_BASIC__GENERATED_VALUE = EclipseLinkOrmPackage.XML_BASIC_FEATURE_COUNT + 1;
-
-	/**
-	 * The feature id for the '<em><b>Table Generator</b></em>' containment reference.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	public static final int XML_BASIC__TABLE_GENERATOR = EclipseLinkOrmPackage.XML_BASIC_FEATURE_COUNT + 2;
-
-	/**
-	 * The feature id for the '<em><b>Sequence Generator</b></em>' containment reference.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	public static final int XML_BASIC__SEQUENCE_GENERATOR = EclipseLinkOrmPackage.XML_BASIC_FEATURE_COUNT + 3;
-
-	/**
-	 * The number of structural features of the '<em>Xml Basic</em>' class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	public static final int XML_BASIC_FEATURE_COUNT = EclipseLinkOrmPackage.XML_BASIC_FEATURE_COUNT + 4;
-
-	/**
-	 * The meta object id for the '{@link org.eclipse.jpt.eclipselink1_1.core.resource.orm.XmlBasicImpl <em>Xml Basic Impl</em>}' class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see org.eclipse.jpt.eclipselink1_1.core.resource.orm.XmlBasicImpl
-	 * @see org.eclipse.jpt.eclipselink1_1.core.resource.orm.EclipseLink1_1OrmPackage#getXmlBasicImpl()
-	 * @generated
-	 */
-	public static final int XML_BASIC_IMPL = 9;
-
-	/**
-	 * The feature id for the '<em><b>Name</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	public static final int XML_BASIC_IMPL__NAME = EclipseLinkOrmPackage.XML_BASIC_IMPL__NAME;
-
-	/**
-	 * The feature id for the '<em><b>Column</b></em>' containment reference.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	public static final int XML_BASIC_IMPL__COLUMN = EclipseLinkOrmPackage.XML_BASIC_IMPL__COLUMN;
-
-	/**
-	 * The feature id for the '<em><b>Lob</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	public static final int XML_BASIC_IMPL__LOB = EclipseLinkOrmPackage.XML_BASIC_IMPL__LOB;
-
-	/**
-	 * The feature id for the '<em><b>Temporal</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	public static final int XML_BASIC_IMPL__TEMPORAL = EclipseLinkOrmPackage.XML_BASIC_IMPL__TEMPORAL;
-
-	/**
-	 * The feature id for the '<em><b>Enumerated</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	public static final int XML_BASIC_IMPL__ENUMERATED = EclipseLinkOrmPackage.XML_BASIC_IMPL__ENUMERATED;
-
-	/**
-	 * The feature id for the '<em><b>Fetch</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	public static final int XML_BASIC_IMPL__FETCH = EclipseLinkOrmPackage.XML_BASIC_IMPL__FETCH;
-
-	/**
-	 * The feature id for the '<em><b>Optional</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	public static final int XML_BASIC_IMPL__OPTIONAL = EclipseLinkOrmPackage.XML_BASIC_IMPL__OPTIONAL;
-
-	/**
-	 * The feature id for the '<em><b>Mutable</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	public static final int XML_BASIC_IMPL__MUTABLE = EclipseLinkOrmPackage.XML_BASIC_IMPL__MUTABLE;
-
-	/**
-	 * The feature id for the '<em><b>Converter</b></em>' containment reference.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	public static final int XML_BASIC_IMPL__CONVERTER = EclipseLinkOrmPackage.XML_BASIC_IMPL__CONVERTER;
-
-	/**
-	 * The feature id for the '<em><b>Type Converter</b></em>' containment reference.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	public static final int XML_BASIC_IMPL__TYPE_CONVERTER = EclipseLinkOrmPackage.XML_BASIC_IMPL__TYPE_CONVERTER;
-
-	/**
-	 * The feature id for the '<em><b>Object Type Converter</b></em>' containment reference.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	public static final int XML_BASIC_IMPL__OBJECT_TYPE_CONVERTER = EclipseLinkOrmPackage.XML_BASIC_IMPL__OBJECT_TYPE_CONVERTER;
-
-	/**
-	 * The feature id for the '<em><b>Struct Converter</b></em>' containment reference.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	public static final int XML_BASIC_IMPL__STRUCT_CONVERTER = EclipseLinkOrmPackage.XML_BASIC_IMPL__STRUCT_CONVERTER;
-
-	/**
-	 * The feature id for the '<em><b>Convert</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	public static final int XML_BASIC_IMPL__CONVERT = EclipseLinkOrmPackage.XML_BASIC_IMPL__CONVERT;
-
-	/**
-	 * The feature id for the '<em><b>Access Methods</b></em>' containment reference.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	public static final int XML_BASIC_IMPL__ACCESS_METHODS = EclipseLinkOrmPackage.XML_BASIC_IMPL__ACCESS_METHODS;
-
-	/**
-	 * The feature id for the '<em><b>Properties</b></em>' containment reference list.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	public static final int XML_BASIC_IMPL__PROPERTIES = EclipseLinkOrmPackage.XML_BASIC_IMPL__PROPERTIES;
-
-	/**
-	 * The feature id for the '<em><b>Access</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	public static final int XML_BASIC_IMPL__ACCESS = EclipseLinkOrmPackage.XML_BASIC_IMPL_FEATURE_COUNT + 0;
-
-	/**
-	 * The feature id for the '<em><b>Generated Value</b></em>' containment reference.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	public static final int XML_BASIC_IMPL__GENERATED_VALUE = EclipseLinkOrmPackage.XML_BASIC_IMPL_FEATURE_COUNT + 1;
-
-	/**
-	 * The feature id for the '<em><b>Table Generator</b></em>' containment reference.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	public static final int XML_BASIC_IMPL__TABLE_GENERATOR = EclipseLinkOrmPackage.XML_BASIC_IMPL_FEATURE_COUNT + 2;
-
-	/**
-	 * The feature id for the '<em><b>Sequence Generator</b></em>' containment reference.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	public static final int XML_BASIC_IMPL__SEQUENCE_GENERATOR = EclipseLinkOrmPackage.XML_BASIC_IMPL_FEATURE_COUNT + 3;
-
-	/**
-	 * The number of structural features of the '<em>Xml Basic Impl</em>' class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	public static final int XML_BASIC_IMPL_FEATURE_COUNT = EclipseLinkOrmPackage.XML_BASIC_IMPL_FEATURE_COUNT + 4;
-
-	/**
-	 * The meta object id for the '{@link org.eclipse.jpt.eclipselink1_1.core.resource.orm.XmlVersion <em>Xml Version</em>}' class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see org.eclipse.jpt.eclipselink1_1.core.resource.orm.XmlVersion
-	 * @see org.eclipse.jpt.eclipselink1_1.core.resource.orm.EclipseLink1_1OrmPackage#getXmlVersion()
-	 * @generated
-	 */
-	public static final int XML_VERSION = 10;
-
-	/**
-	 * The feature id for the '<em><b>Name</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	public static final int XML_VERSION__NAME = EclipseLinkOrmPackage.XML_VERSION__NAME;
-
-	/**
-	 * The feature id for the '<em><b>Column</b></em>' containment reference.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	public static final int XML_VERSION__COLUMN = EclipseLinkOrmPackage.XML_VERSION__COLUMN;
-
-	/**
-	 * The feature id for the '<em><b>Lob</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	public static final int XML_VERSION__LOB = EclipseLinkOrmPackage.XML_VERSION__LOB;
-
-	/**
-	 * The feature id for the '<em><b>Temporal</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	public static final int XML_VERSION__TEMPORAL = EclipseLinkOrmPackage.XML_VERSION__TEMPORAL;
-
-	/**
-	 * The feature id for the '<em><b>Enumerated</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	public static final int XML_VERSION__ENUMERATED = EclipseLinkOrmPackage.XML_VERSION__ENUMERATED;
-
-	/**
-	 * The feature id for the '<em><b>Mutable</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	public static final int XML_VERSION__MUTABLE = EclipseLinkOrmPackage.XML_VERSION__MUTABLE;
-
-	/**
-	 * The feature id for the '<em><b>Converter</b></em>' containment reference.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	public static final int XML_VERSION__CONVERTER = EclipseLinkOrmPackage.XML_VERSION__CONVERTER;
-
-	/**
-	 * The feature id for the '<em><b>Type Converter</b></em>' containment reference.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	public static final int XML_VERSION__TYPE_CONVERTER = EclipseLinkOrmPackage.XML_VERSION__TYPE_CONVERTER;
-
-	/**
-	 * The feature id for the '<em><b>Object Type Converter</b></em>' containment reference.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	public static final int XML_VERSION__OBJECT_TYPE_CONVERTER = EclipseLinkOrmPackage.XML_VERSION__OBJECT_TYPE_CONVERTER;
-
-	/**
-	 * The feature id for the '<em><b>Struct Converter</b></em>' containment reference.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	public static final int XML_VERSION__STRUCT_CONVERTER = EclipseLinkOrmPackage.XML_VERSION__STRUCT_CONVERTER;
-
-	/**
-	 * The feature id for the '<em><b>Convert</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	public static final int XML_VERSION__CONVERT = EclipseLinkOrmPackage.XML_VERSION__CONVERT;
-
-	/**
-	 * The feature id for the '<em><b>Access Methods</b></em>' containment reference.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	public static final int XML_VERSION__ACCESS_METHODS = EclipseLinkOrmPackage.XML_VERSION__ACCESS_METHODS;
-
-	/**
-	 * The feature id for the '<em><b>Properties</b></em>' containment reference list.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	public static final int XML_VERSION__PROPERTIES = EclipseLinkOrmPackage.XML_VERSION__PROPERTIES;
-
-	/**
-	 * The feature id for the '<em><b>Access</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	public static final int XML_VERSION__ACCESS = EclipseLinkOrmPackage.XML_VERSION_FEATURE_COUNT + 0;
-
-	/**
-	 * The number of structural features of the '<em>Xml Version</em>' class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	public static final int XML_VERSION_FEATURE_COUNT = EclipseLinkOrmPackage.XML_VERSION_FEATURE_COUNT + 1;
-
-	/**
-	 * The meta object id for the '{@link org.eclipse.jpt.eclipselink1_1.core.resource.orm.XmlVersionImpl <em>Xml Version Impl</em>}' class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see org.eclipse.jpt.eclipselink1_1.core.resource.orm.XmlVersionImpl
-	 * @see org.eclipse.jpt.eclipselink1_1.core.resource.orm.EclipseLink1_1OrmPackage#getXmlVersionImpl()
-	 * @generated
-	 */
-	public static final int XML_VERSION_IMPL = 11;
-
-	/**
-	 * The feature id for the '<em><b>Name</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	public static final int XML_VERSION_IMPL__NAME = EclipseLinkOrmPackage.XML_VERSION_IMPL__NAME;
-
-	/**
-	 * The feature id for the '<em><b>Column</b></em>' containment reference.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	public static final int XML_VERSION_IMPL__COLUMN = EclipseLinkOrmPackage.XML_VERSION_IMPL__COLUMN;
-
-	/**
-	 * The feature id for the '<em><b>Lob</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	public static final int XML_VERSION_IMPL__LOB = EclipseLinkOrmPackage.XML_VERSION_IMPL__LOB;
-
-	/**
-	 * The feature id for the '<em><b>Temporal</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	public static final int XML_VERSION_IMPL__TEMPORAL = EclipseLinkOrmPackage.XML_VERSION_IMPL__TEMPORAL;
-
-	/**
-	 * The feature id for the '<em><b>Enumerated</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	public static final int XML_VERSION_IMPL__ENUMERATED = EclipseLinkOrmPackage.XML_VERSION_IMPL__ENUMERATED;
-
-	/**
-	 * The feature id for the '<em><b>Mutable</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	public static final int XML_VERSION_IMPL__MUTABLE = EclipseLinkOrmPackage.XML_VERSION_IMPL__MUTABLE;
-
-	/**
-	 * The feature id for the '<em><b>Converter</b></em>' containment reference.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	public static final int XML_VERSION_IMPL__CONVERTER = EclipseLinkOrmPackage.XML_VERSION_IMPL__CONVERTER;
-
-	/**
-	 * The feature id for the '<em><b>Type Converter</b></em>' containment reference.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	public static final int XML_VERSION_IMPL__TYPE_CONVERTER = EclipseLinkOrmPackage.XML_VERSION_IMPL__TYPE_CONVERTER;
-
-	/**
-	 * The feature id for the '<em><b>Object Type Converter</b></em>' containment reference.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	public static final int XML_VERSION_IMPL__OBJECT_TYPE_CONVERTER = EclipseLinkOrmPackage.XML_VERSION_IMPL__OBJECT_TYPE_CONVERTER;
-
-	/**
-	 * The feature id for the '<em><b>Struct Converter</b></em>' containment reference.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	public static final int XML_VERSION_IMPL__STRUCT_CONVERTER = EclipseLinkOrmPackage.XML_VERSION_IMPL__STRUCT_CONVERTER;
-
-	/**
-	 * The feature id for the '<em><b>Convert</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	public static final int XML_VERSION_IMPL__CONVERT = EclipseLinkOrmPackage.XML_VERSION_IMPL__CONVERT;
-
-	/**
-	 * The feature id for the '<em><b>Access Methods</b></em>' containment reference.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	public static final int XML_VERSION_IMPL__ACCESS_METHODS = EclipseLinkOrmPackage.XML_VERSION_IMPL__ACCESS_METHODS;
-
-	/**
-	 * The feature id for the '<em><b>Properties</b></em>' containment reference list.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	public static final int XML_VERSION_IMPL__PROPERTIES = EclipseLinkOrmPackage.XML_VERSION_IMPL__PROPERTIES;
-
-	/**
-	 * The feature id for the '<em><b>Access</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	public static final int XML_VERSION_IMPL__ACCESS = EclipseLinkOrmPackage.XML_VERSION_IMPL_FEATURE_COUNT + 0;
-
-	/**
-	 * The number of structural features of the '<em>Xml Version Impl</em>' class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	public static final int XML_VERSION_IMPL_FEATURE_COUNT = EclipseLinkOrmPackage.XML_VERSION_IMPL_FEATURE_COUNT + 1;
-
-	/**
-	 * The meta object id for the '{@link org.eclipse.jpt.eclipselink1_1.core.resource.orm.XmlOneToOne <em>Xml One To One</em>}' class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see org.eclipse.jpt.eclipselink1_1.core.resource.orm.XmlOneToOne
-	 * @see org.eclipse.jpt.eclipselink1_1.core.resource.orm.EclipseLink1_1OrmPackage#getXmlOneToOne()
-	 * @generated
-	 */
-	public static final int XML_ONE_TO_ONE = 12;
-
-	/**
-	 * The feature id for the '<em><b>Name</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	public static final int XML_ONE_TO_ONE__NAME = EclipseLinkOrmPackage.XML_ONE_TO_ONE__NAME;
-
-	/**
-	 * The feature id for the '<em><b>Target Entity</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	public static final int XML_ONE_TO_ONE__TARGET_ENTITY = EclipseLinkOrmPackage.XML_ONE_TO_ONE__TARGET_ENTITY;
-
-	/**
-	 * The feature id for the '<em><b>Fetch</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	public static final int XML_ONE_TO_ONE__FETCH = EclipseLinkOrmPackage.XML_ONE_TO_ONE__FETCH;
-
-	/**
-	 * The feature id for the '<em><b>Cascade</b></em>' containment reference.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	public static final int XML_ONE_TO_ONE__CASCADE = EclipseLinkOrmPackage.XML_ONE_TO_ONE__CASCADE;
-
-	/**
-	 * The feature id for the '<em><b>Join Table</b></em>' containment reference.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	public static final int XML_ONE_TO_ONE__JOIN_TABLE = EclipseLinkOrmPackage.XML_ONE_TO_ONE__JOIN_TABLE;
-
-	/**
-	 * The feature id for the '<em><b>Join Columns</b></em>' containment reference list.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	public static final int XML_ONE_TO_ONE__JOIN_COLUMNS = EclipseLinkOrmPackage.XML_ONE_TO_ONE__JOIN_COLUMNS;
-
-	/**
-	 * The feature id for the '<em><b>Optional</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	public static final int XML_ONE_TO_ONE__OPTIONAL = EclipseLinkOrmPackage.XML_ONE_TO_ONE__OPTIONAL;
-
-	/**
-	 * The feature id for the '<em><b>Mapped By</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	public static final int XML_ONE_TO_ONE__MAPPED_BY = EclipseLinkOrmPackage.XML_ONE_TO_ONE__MAPPED_BY;
-
-	/**
-	 * The feature id for the '<em><b>Primary Key Join Columns</b></em>' containment reference list.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	public static final int XML_ONE_TO_ONE__PRIMARY_KEY_JOIN_COLUMNS = EclipseLinkOrmPackage.XML_ONE_TO_ONE__PRIMARY_KEY_JOIN_COLUMNS;
-
-	/**
-	 * The feature id for the '<em><b>Private Owned</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	public static final int XML_ONE_TO_ONE__PRIVATE_OWNED = EclipseLinkOrmPackage.XML_ONE_TO_ONE__PRIVATE_OWNED;
-
-	/**
-	 * The feature id for the '<em><b>Join Fetch</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	public static final int XML_ONE_TO_ONE__JOIN_FETCH = EclipseLinkOrmPackage.XML_ONE_TO_ONE__JOIN_FETCH;
-
-	/**
-	 * The feature id for the '<em><b>Access Methods</b></em>' containment reference.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	public static final int XML_ONE_TO_ONE__ACCESS_METHODS = EclipseLinkOrmPackage.XML_ONE_TO_ONE__ACCESS_METHODS;
-
-	/**
-	 * The feature id for the '<em><b>Properties</b></em>' containment reference list.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	public static final int XML_ONE_TO_ONE__PROPERTIES = EclipseLinkOrmPackage.XML_ONE_TO_ONE__PROPERTIES;
-
-	/**
-	 * The feature id for the '<em><b>Access</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	public static final int XML_ONE_TO_ONE__ACCESS = EclipseLinkOrmPackage.XML_ONE_TO_ONE_FEATURE_COUNT + 0;
-
-	/**
-	 * The number of structural features of the '<em>Xml One To One</em>' class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	public static final int XML_ONE_TO_ONE_FEATURE_COUNT = EclipseLinkOrmPackage.XML_ONE_TO_ONE_FEATURE_COUNT + 1;
-
-	/**
-	 * The meta object id for the '{@link org.eclipse.jpt.eclipselink1_1.core.resource.orm.XmlOneToOneImpl <em>Xml One To One Impl</em>}' class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see org.eclipse.jpt.eclipselink1_1.core.resource.orm.XmlOneToOneImpl
-	 * @see org.eclipse.jpt.eclipselink1_1.core.resource.orm.EclipseLink1_1OrmPackage#getXmlOneToOneImpl()
-	 * @generated
-	 */
-	public static final int XML_ONE_TO_ONE_IMPL = 13;
-
-	/**
-	 * The feature id for the '<em><b>Name</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	public static final int XML_ONE_TO_ONE_IMPL__NAME = EclipseLinkOrmPackage.XML_ONE_TO_ONE_IMPL__NAME;
-
-	/**
-	 * The feature id for the '<em><b>Target Entity</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	public static final int XML_ONE_TO_ONE_IMPL__TARGET_ENTITY = EclipseLinkOrmPackage.XML_ONE_TO_ONE_IMPL__TARGET_ENTITY;
-
-	/**
-	 * The feature id for the '<em><b>Fetch</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	public static final int XML_ONE_TO_ONE_IMPL__FETCH = EclipseLinkOrmPackage.XML_ONE_TO_ONE_IMPL__FETCH;
-
-	/**
-	 * The feature id for the '<em><b>Cascade</b></em>' containment reference.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	public static final int XML_ONE_TO_ONE_IMPL__CASCADE = EclipseLinkOrmPackage.XML_ONE_TO_ONE_IMPL__CASCADE;
-
-	/**
-	 * The feature id for the '<em><b>Join Table</b></em>' containment reference.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	public static final int XML_ONE_TO_ONE_IMPL__JOIN_TABLE = EclipseLinkOrmPackage.XML_ONE_TO_ONE_IMPL__JOIN_TABLE;
-
-	/**
-	 * The feature id for the '<em><b>Join Columns</b></em>' containment reference list.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	public static final int XML_ONE_TO_ONE_IMPL__JOIN_COLUMNS = EclipseLinkOrmPackage.XML_ONE_TO_ONE_IMPL__JOIN_COLUMNS;
-
-	/**
-	 * The feature id for the '<em><b>Optional</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	public static final int XML_ONE_TO_ONE_IMPL__OPTIONAL = EclipseLinkOrmPackage.XML_ONE_TO_ONE_IMPL__OPTIONAL;
-
-	/**
-	 * The feature id for the '<em><b>Mapped By</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	public static final int XML_ONE_TO_ONE_IMPL__MAPPED_BY = EclipseLinkOrmPackage.XML_ONE_TO_ONE_IMPL__MAPPED_BY;
-
-	/**
-	 * The feature id for the '<em><b>Primary Key Join Columns</b></em>' containment reference list.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	public static final int XML_ONE_TO_ONE_IMPL__PRIMARY_KEY_JOIN_COLUMNS = EclipseLinkOrmPackage.XML_ONE_TO_ONE_IMPL__PRIMARY_KEY_JOIN_COLUMNS;
-
-	/**
-	 * The feature id for the '<em><b>Private Owned</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	public static final int XML_ONE_TO_ONE_IMPL__PRIVATE_OWNED = EclipseLinkOrmPackage.XML_ONE_TO_ONE_IMPL__PRIVATE_OWNED;
-
-	/**
-	 * The feature id for the '<em><b>Join Fetch</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	public static final int XML_ONE_TO_ONE_IMPL__JOIN_FETCH = EclipseLinkOrmPackage.XML_ONE_TO_ONE_IMPL__JOIN_FETCH;
-
-	/**
-	 * The feature id for the '<em><b>Access Methods</b></em>' containment reference.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	public static final int XML_ONE_TO_ONE_IMPL__ACCESS_METHODS = EclipseLinkOrmPackage.XML_ONE_TO_ONE_IMPL__ACCESS_METHODS;
-
-	/**
-	 * The feature id for the '<em><b>Properties</b></em>' containment reference list.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	public static final int XML_ONE_TO_ONE_IMPL__PROPERTIES = EclipseLinkOrmPackage.XML_ONE_TO_ONE_IMPL__PROPERTIES;
-
-	/**
-	 * The feature id for the '<em><b>Access</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	public static final int XML_ONE_TO_ONE_IMPL__ACCESS = EclipseLinkOrmPackage.XML_ONE_TO_ONE_IMPL_FEATURE_COUNT + 0;
-
-	/**
-	 * The number of structural features of the '<em>Xml One To One Impl</em>' class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	public static final int XML_ONE_TO_ONE_IMPL_FEATURE_COUNT = EclipseLinkOrmPackage.XML_ONE_TO_ONE_IMPL_FEATURE_COUNT + 1;
-
-	/**
-	 * The meta object id for the '{@link org.eclipse.jpt.eclipselink1_1.core.resource.orm.XmlOneToMany <em>Xml One To Many</em>}' class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see org.eclipse.jpt.eclipselink1_1.core.resource.orm.XmlOneToMany
-	 * @see org.eclipse.jpt.eclipselink1_1.core.resource.orm.EclipseLink1_1OrmPackage#getXmlOneToMany()
-	 * @generated
-	 */
-	public static final int XML_ONE_TO_MANY = 14;
-
-	/**
-	 * The feature id for the '<em><b>Name</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	public static final int XML_ONE_TO_MANY__NAME = EclipseLinkOrmPackage.XML_ONE_TO_MANY__NAME;
-
-	/**
-	 * The feature id for the '<em><b>Target Entity</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	public static final int XML_ONE_TO_MANY__TARGET_ENTITY = EclipseLinkOrmPackage.XML_ONE_TO_MANY__TARGET_ENTITY;
-
-	/**
-	 * The feature id for the '<em><b>Fetch</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	public static final int XML_ONE_TO_MANY__FETCH = EclipseLinkOrmPackage.XML_ONE_TO_MANY__FETCH;
-
-	/**
-	 * The feature id for the '<em><b>Cascade</b></em>' containment reference.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	public static final int XML_ONE_TO_MANY__CASCADE = EclipseLinkOrmPackage.XML_ONE_TO_MANY__CASCADE;
-
-	/**
-	 * The feature id for the '<em><b>Mapped By</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	public static final int XML_ONE_TO_MANY__MAPPED_BY = EclipseLinkOrmPackage.XML_ONE_TO_MANY__MAPPED_BY;
-
-	/**
-	 * The feature id for the '<em><b>Join Table</b></em>' containment reference.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	public static final int XML_ONE_TO_MANY__JOIN_TABLE = EclipseLinkOrmPackage.XML_ONE_TO_MANY__JOIN_TABLE;
-
-	/**
-	 * The feature id for the '<em><b>Order By</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	public static final int XML_ONE_TO_MANY__ORDER_BY = EclipseLinkOrmPackage.XML_ONE_TO_MANY__ORDER_BY;
-
-	/**
-	 * The feature id for the '<em><b>Map Key</b></em>' containment reference.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	public static final int XML_ONE_TO_MANY__MAP_KEY = EclipseLinkOrmPackage.XML_ONE_TO_MANY__MAP_KEY;
-
-	/**
-	 * The feature id for the '<em><b>Join Columns</b></em>' containment reference list.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	public static final int XML_ONE_TO_MANY__JOIN_COLUMNS = EclipseLinkOrmPackage.XML_ONE_TO_MANY__JOIN_COLUMNS;
-
-	/**
-	 * The feature id for the '<em><b>Private Owned</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	public static final int XML_ONE_TO_MANY__PRIVATE_OWNED = EclipseLinkOrmPackage.XML_ONE_TO_MANY__PRIVATE_OWNED;
-
-	/**
-	 * The feature id for the '<em><b>Join Fetch</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	public static final int XML_ONE_TO_MANY__JOIN_FETCH = EclipseLinkOrmPackage.XML_ONE_TO_MANY__JOIN_FETCH;
-
-	/**
-	 * The feature id for the '<em><b>Access Methods</b></em>' containment reference.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	public static final int XML_ONE_TO_MANY__ACCESS_METHODS = EclipseLinkOrmPackage.XML_ONE_TO_MANY__ACCESS_METHODS;
-
-	/**
-	 * The feature id for the '<em><b>Properties</b></em>' containment reference list.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	public static final int XML_ONE_TO_MANY__PROPERTIES = EclipseLinkOrmPackage.XML_ONE_TO_MANY__PROPERTIES;
-
-	/**
-	 * The feature id for the '<em><b>Access</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	public static final int XML_ONE_TO_MANY__ACCESS = EclipseLinkOrmPackage.XML_ONE_TO_MANY_FEATURE_COUNT + 0;
-
-	/**
-	 * The number of structural features of the '<em>Xml One To Many</em>' class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	public static final int XML_ONE_TO_MANY_FEATURE_COUNT = EclipseLinkOrmPackage.XML_ONE_TO_MANY_FEATURE_COUNT + 1;
-
-	/**
-	 * The meta object id for the '{@link org.eclipse.jpt.eclipselink1_1.core.resource.orm.XmlOneToManyImpl <em>Xml One To Many Impl</em>}' class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see org.eclipse.jpt.eclipselink1_1.core.resource.orm.XmlOneToManyImpl
-	 * @see org.eclipse.jpt.eclipselink1_1.core.resource.orm.EclipseLink1_1OrmPackage#getXmlOneToManyImpl()
-	 * @generated
-	 */
-	public static final int XML_ONE_TO_MANY_IMPL = 15;
-
-	/**
-	 * The feature id for the '<em><b>Name</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	public static final int XML_ONE_TO_MANY_IMPL__NAME = EclipseLinkOrmPackage.XML_ONE_TO_MANY_IMPL__NAME;
-
-	/**
-	 * The feature id for the '<em><b>Target Entity</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	public static final int XML_ONE_TO_MANY_IMPL__TARGET_ENTITY = EclipseLinkOrmPackage.XML_ONE_TO_MANY_IMPL__TARGET_ENTITY;
-
-	/**
-	 * The feature id for the '<em><b>Fetch</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	public static final int XML_ONE_TO_MANY_IMPL__FETCH = EclipseLinkOrmPackage.XML_ONE_TO_MANY_IMPL__FETCH;
-
-	/**
-	 * The feature id for the '<em><b>Cascade</b></em>' containment reference.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	public static final int XML_ONE_TO_MANY_IMPL__CASCADE = EclipseLinkOrmPackage.XML_ONE_TO_MANY_IMPL__CASCADE;
-
-	/**
-	 * The feature id for the '<em><b>Mapped By</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	public static final int XML_ONE_TO_MANY_IMPL__MAPPED_BY = EclipseLinkOrmPackage.XML_ONE_TO_MANY_IMPL__MAPPED_BY;
-
-	/**
-	 * The feature id for the '<em><b>Join Table</b></em>' containment reference.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	public static final int XML_ONE_TO_MANY_IMPL__JOIN_TABLE = EclipseLinkOrmPackage.XML_ONE_TO_MANY_IMPL__JOIN_TABLE;
-
-	/**
-	 * The feature id for the '<em><b>Order By</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	public static final int XML_ONE_TO_MANY_IMPL__ORDER_BY = EclipseLinkOrmPackage.XML_ONE_TO_MANY_IMPL__ORDER_BY;
-
-	/**
-	 * The feature id for the '<em><b>Map Key</b></em>' containment reference.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	public static final int XML_ONE_TO_MANY_IMPL__MAP_KEY = EclipseLinkOrmPackage.XML_ONE_TO_MANY_IMPL__MAP_KEY;
-
-	/**
-	 * The feature id for the '<em><b>Join Columns</b></em>' containment reference list.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	public static final int XML_ONE_TO_MANY_IMPL__JOIN_COLUMNS = EclipseLinkOrmPackage.XML_ONE_TO_MANY_IMPL__JOIN_COLUMNS;
-
-	/**
-	 * The feature id for the '<em><b>Private Owned</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	public static final int XML_ONE_TO_MANY_IMPL__PRIVATE_OWNED = EclipseLinkOrmPackage.XML_ONE_TO_MANY_IMPL__PRIVATE_OWNED;
-
-	/**
-	 * The feature id for the '<em><b>Join Fetch</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	public static final int XML_ONE_TO_MANY_IMPL__JOIN_FETCH = EclipseLinkOrmPackage.XML_ONE_TO_MANY_IMPL__JOIN_FETCH;
-
-	/**
-	 * The feature id for the '<em><b>Access Methods</b></em>' containment reference.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	public static final int XML_ONE_TO_MANY_IMPL__ACCESS_METHODS = EclipseLinkOrmPackage.XML_ONE_TO_MANY_IMPL__ACCESS_METHODS;
-
-	/**
-	 * The feature id for the '<em><b>Properties</b></em>' containment reference list.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	public static final int XML_ONE_TO_MANY_IMPL__PROPERTIES = EclipseLinkOrmPackage.XML_ONE_TO_MANY_IMPL__PROPERTIES;
-
-	/**
-	 * The feature id for the '<em><b>Access</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	public static final int XML_ONE_TO_MANY_IMPL__ACCESS = EclipseLinkOrmPackage.XML_ONE_TO_MANY_IMPL_FEATURE_COUNT + 0;
-
-	/**
-	 * The number of structural features of the '<em>Xml One To Many Impl</em>' class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	public static final int XML_ONE_TO_MANY_IMPL_FEATURE_COUNT = EclipseLinkOrmPackage.XML_ONE_TO_MANY_IMPL_FEATURE_COUNT + 1;
-
-	/**
-	 * The meta object id for the '{@link org.eclipse.jpt.eclipselink1_1.core.resource.orm.XmlManyToOne <em>Xml Many To One</em>}' class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see org.eclipse.jpt.eclipselink1_1.core.resource.orm.XmlManyToOne
-	 * @see org.eclipse.jpt.eclipselink1_1.core.resource.orm.EclipseLink1_1OrmPackage#getXmlManyToOne()
-	 * @generated
-	 */
-	public static final int XML_MANY_TO_ONE = 16;
-
-	/**
-	 * The feature id for the '<em><b>Name</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	public static final int XML_MANY_TO_ONE__NAME = EclipseLinkOrmPackage.XML_MANY_TO_ONE__NAME;
-
-	/**
-	 * The feature id for the '<em><b>Target Entity</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	public static final int XML_MANY_TO_ONE__TARGET_ENTITY = EclipseLinkOrmPackage.XML_MANY_TO_ONE__TARGET_ENTITY;
-
-	/**
-	 * The feature id for the '<em><b>Fetch</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	public static final int XML_MANY_TO_ONE__FETCH = EclipseLinkOrmPackage.XML_MANY_TO_ONE__FETCH;
-
-	/**
-	 * The feature id for the '<em><b>Cascade</b></em>' containment reference.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	public static final int XML_MANY_TO_ONE__CASCADE = EclipseLinkOrmPackage.XML_MANY_TO_ONE__CASCADE;
-
-	/**
-	 * The feature id for the '<em><b>Join Table</b></em>' containment reference.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	public static final int XML_MANY_TO_ONE__JOIN_TABLE = EclipseLinkOrmPackage.XML_MANY_TO_ONE__JOIN_TABLE;
-
-	/**
-	 * The feature id for the '<em><b>Join Columns</b></em>' containment reference list.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	public static final int XML_MANY_TO_ONE__JOIN_COLUMNS = EclipseLinkOrmPackage.XML_MANY_TO_ONE__JOIN_COLUMNS;
-
-	/**
-	 * The feature id for the '<em><b>Optional</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	public static final int XML_MANY_TO_ONE__OPTIONAL = EclipseLinkOrmPackage.XML_MANY_TO_ONE__OPTIONAL;
-
-	/**
-	 * The feature id for the '<em><b>Join Fetch</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	public static final int XML_MANY_TO_ONE__JOIN_FETCH = EclipseLinkOrmPackage.XML_MANY_TO_ONE__JOIN_FETCH;
-
-	/**
-	 * The feature id for the '<em><b>Access Methods</b></em>' containment reference.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	public static final int XML_MANY_TO_ONE__ACCESS_METHODS = EclipseLinkOrmPackage.XML_MANY_TO_ONE__ACCESS_METHODS;
-
-	/**
-	 * The feature id for the '<em><b>Properties</b></em>' containment reference list.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	public static final int XML_MANY_TO_ONE__PROPERTIES = EclipseLinkOrmPackage.XML_MANY_TO_ONE__PROPERTIES;
-
-	/**
-	 * The feature id for the '<em><b>Access</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	public static final int XML_MANY_TO_ONE__ACCESS = EclipseLinkOrmPackage.XML_MANY_TO_ONE_FEATURE_COUNT + 0;
-
-	/**
-	 * The number of structural features of the '<em>Xml Many To One</em>' class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	public static final int XML_MANY_TO_ONE_FEATURE_COUNT = EclipseLinkOrmPackage.XML_MANY_TO_ONE_FEATURE_COUNT + 1;
-
-	/**
-	 * The meta object id for the '{@link org.eclipse.jpt.eclipselink1_1.core.resource.orm.XmlManyToOneImpl <em>Xml Many To One Impl</em>}' class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see org.eclipse.jpt.eclipselink1_1.core.resource.orm.XmlManyToOneImpl
-	 * @see org.eclipse.jpt.eclipselink1_1.core.resource.orm.EclipseLink1_1OrmPackage#getXmlManyToOneImpl()
-	 * @generated
-	 */
-	public static final int XML_MANY_TO_ONE_IMPL = 17;
-
-	/**
-	 * The feature id for the '<em><b>Name</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	public static final int XML_MANY_TO_ONE_IMPL__NAME = EclipseLinkOrmPackage.XML_MANY_TO_ONE_IMPL__NAME;
-
-	/**
-	 * The feature id for the '<em><b>Target Entity</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	public static final int XML_MANY_TO_ONE_IMPL__TARGET_ENTITY = EclipseLinkOrmPackage.XML_MANY_TO_ONE_IMPL__TARGET_ENTITY;
-
-	/**
-	 * The feature id for the '<em><b>Fetch</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	public static final int XML_MANY_TO_ONE_IMPL__FETCH = EclipseLinkOrmPackage.XML_MANY_TO_ONE_IMPL__FETCH;
-
-	/**
-	 * The feature id for the '<em><b>Cascade</b></em>' containment reference.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	public static final int XML_MANY_TO_ONE_IMPL__CASCADE = EclipseLinkOrmPackage.XML_MANY_TO_ONE_IMPL__CASCADE;
-
-	/**
-	 * The feature id for the '<em><b>Join Table</b></em>' containment reference.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	public static final int XML_MANY_TO_ONE_IMPL__JOIN_TABLE = EclipseLinkOrmPackage.XML_MANY_TO_ONE_IMPL__JOIN_TABLE;
-
-	/**
-	 * The feature id for the '<em><b>Join Columns</b></em>' containment reference list.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	public static final int XML_MANY_TO_ONE_IMPL__JOIN_COLUMNS = EclipseLinkOrmPackage.XML_MANY_TO_ONE_IMPL__JOIN_COLUMNS;
-
-	/**
-	 * The feature id for the '<em><b>Optional</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	public static final int XML_MANY_TO_ONE_IMPL__OPTIONAL = EclipseLinkOrmPackage.XML_MANY_TO_ONE_IMPL__OPTIONAL;
-
-	/**
-	 * The feature id for the '<em><b>Join Fetch</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	public static final int XML_MANY_TO_ONE_IMPL__JOIN_FETCH = EclipseLinkOrmPackage.XML_MANY_TO_ONE_IMPL__JOIN_FETCH;
-
-	/**
-	 * The feature id for the '<em><b>Access Methods</b></em>' containment reference.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	public static final int XML_MANY_TO_ONE_IMPL__ACCESS_METHODS = EclipseLinkOrmPackage.XML_MANY_TO_ONE_IMPL__ACCESS_METHODS;
-
-	/**
-	 * The feature id for the '<em><b>Properties</b></em>' containment reference list.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	public static final int XML_MANY_TO_ONE_IMPL__PROPERTIES = EclipseLinkOrmPackage.XML_MANY_TO_ONE_IMPL__PROPERTIES;
-
-	/**
-	 * The feature id for the '<em><b>Access</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	public static final int XML_MANY_TO_ONE_IMPL__ACCESS = EclipseLinkOrmPackage.XML_MANY_TO_ONE_IMPL_FEATURE_COUNT + 0;
-
-	/**
-	 * The number of structural features of the '<em>Xml Many To One Impl</em>' class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	public static final int XML_MANY_TO_ONE_IMPL_FEATURE_COUNT = EclipseLinkOrmPackage.XML_MANY_TO_ONE_IMPL_FEATURE_COUNT + 1;
-
-	/**
-	 * The meta object id for the '{@link org.eclipse.jpt.eclipselink1_1.core.resource.orm.XmlManyToMany <em>Xml Many To Many</em>}' class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see org.eclipse.jpt.eclipselink1_1.core.resource.orm.XmlManyToMany
-	 * @see org.eclipse.jpt.eclipselink1_1.core.resource.orm.EclipseLink1_1OrmPackage#getXmlManyToMany()
-	 * @generated
-	 */
-	public static final int XML_MANY_TO_MANY = 18;
-
-	/**
-	 * The feature id for the '<em><b>Name</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	public static final int XML_MANY_TO_MANY__NAME = EclipseLinkOrmPackage.XML_MANY_TO_MANY__NAME;
-
-	/**
-	 * The feature id for the '<em><b>Target Entity</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	public static final int XML_MANY_TO_MANY__TARGET_ENTITY = EclipseLinkOrmPackage.XML_MANY_TO_MANY__TARGET_ENTITY;
-
-	/**
-	 * The feature id for the '<em><b>Fetch</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	public static final int XML_MANY_TO_MANY__FETCH = EclipseLinkOrmPackage.XML_MANY_TO_MANY__FETCH;
-
-	/**
-	 * The feature id for the '<em><b>Cascade</b></em>' containment reference.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	public static final int XML_MANY_TO_MANY__CASCADE = EclipseLinkOrmPackage.XML_MANY_TO_MANY__CASCADE;
-
-	/**
-	 * The feature id for the '<em><b>Mapped By</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	public static final int XML_MANY_TO_MANY__MAPPED_BY = EclipseLinkOrmPackage.XML_MANY_TO_MANY__MAPPED_BY;
-
-	/**
-	 * The feature id for the '<em><b>Join Table</b></em>' containment reference.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	public static final int XML_MANY_TO_MANY__JOIN_TABLE = EclipseLinkOrmPackage.XML_MANY_TO_MANY__JOIN_TABLE;
-
-	/**
-	 * The feature id for the '<em><b>Order By</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	public static final int XML_MANY_TO_MANY__ORDER_BY = EclipseLinkOrmPackage.XML_MANY_TO_MANY__ORDER_BY;
-
-	/**
-	 * The feature id for the '<em><b>Map Key</b></em>' containment reference.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	public static final int XML_MANY_TO_MANY__MAP_KEY = EclipseLinkOrmPackage.XML_MANY_TO_MANY__MAP_KEY;
-
-	/**
-	 * The feature id for the '<em><b>Join Fetch</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	public static final int XML_MANY_TO_MANY__JOIN_FETCH = EclipseLinkOrmPackage.XML_MANY_TO_MANY__JOIN_FETCH;
-
-	/**
-	 * The feature id for the '<em><b>Access Methods</b></em>' containment reference.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	public static final int XML_MANY_TO_MANY__ACCESS_METHODS = EclipseLinkOrmPackage.XML_MANY_TO_MANY__ACCESS_METHODS;
-
-	/**
-	 * The feature id for the '<em><b>Properties</b></em>' containment reference list.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	public static final int XML_MANY_TO_MANY__PROPERTIES = EclipseLinkOrmPackage.XML_MANY_TO_MANY__PROPERTIES;
-
-	/**
-	 * The feature id for the '<em><b>Access</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	public static final int XML_MANY_TO_MANY__ACCESS = EclipseLinkOrmPackage.XML_MANY_TO_MANY_FEATURE_COUNT + 0;
-
-	/**
-	 * The number of structural features of the '<em>Xml Many To Many</em>' class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	public static final int XML_MANY_TO_MANY_FEATURE_COUNT = EclipseLinkOrmPackage.XML_MANY_TO_MANY_FEATURE_COUNT + 1;
-
-	/**
-	 * The meta object id for the '{@link org.eclipse.jpt.eclipselink1_1.core.resource.orm.XmlManyToManyImpl <em>Xml Many To Many Impl</em>}' class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see org.eclipse.jpt.eclipselink1_1.core.resource.orm.XmlManyToManyImpl
-	 * @see org.eclipse.jpt.eclipselink1_1.core.resource.orm.EclipseLink1_1OrmPackage#getXmlManyToManyImpl()
-	 * @generated
-	 */
-	public static final int XML_MANY_TO_MANY_IMPL = 19;
-
-	/**
-	 * The feature id for the '<em><b>Name</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	public static final int XML_MANY_TO_MANY_IMPL__NAME = EclipseLinkOrmPackage.XML_MANY_TO_MANY_IMPL__NAME;
-
-	/**
-	 * The feature id for the '<em><b>Target Entity</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	public static final int XML_MANY_TO_MANY_IMPL__TARGET_ENTITY = EclipseLinkOrmPackage.XML_MANY_TO_MANY_IMPL__TARGET_ENTITY;
-
-	/**
-	 * The feature id for the '<em><b>Fetch</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	public static final int XML_MANY_TO_MANY_IMPL__FETCH = EclipseLinkOrmPackage.XML_MANY_TO_MANY_IMPL__FETCH;
-
-	/**
-	 * The feature id for the '<em><b>Cascade</b></em>' containment reference.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	public static final int XML_MANY_TO_MANY_IMPL__CASCADE = EclipseLinkOrmPackage.XML_MANY_TO_MANY_IMPL__CASCADE;
-
-	/**
-	 * The feature id for the '<em><b>Mapped By</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	public static final int XML_MANY_TO_MANY_IMPL__MAPPED_BY = EclipseLinkOrmPackage.XML_MANY_TO_MANY_IMPL__MAPPED_BY;
-
-	/**
-	 * The feature id for the '<em><b>Join Table</b></em>' containment reference.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	public static final int XML_MANY_TO_MANY_IMPL__JOIN_TABLE = EclipseLinkOrmPackage.XML_MANY_TO_MANY_IMPL__JOIN_TABLE;
-
-	/**
-	 * The feature id for the '<em><b>Order By</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	public static final int XML_MANY_TO_MANY_IMPL__ORDER_BY = EclipseLinkOrmPackage.XML_MANY_TO_MANY_IMPL__ORDER_BY;
-
-	/**
-	 * The feature id for the '<em><b>Map Key</b></em>' containment reference.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	public static final int XML_MANY_TO_MANY_IMPL__MAP_KEY = EclipseLinkOrmPackage.XML_MANY_TO_MANY_IMPL__MAP_KEY;
-
-	/**
-	 * The feature id for the '<em><b>Join Fetch</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	public static final int XML_MANY_TO_MANY_IMPL__JOIN_FETCH = EclipseLinkOrmPackage.XML_MANY_TO_MANY_IMPL__JOIN_FETCH;
-
-	/**
-	 * The feature id for the '<em><b>Access Methods</b></em>' containment reference.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	public static final int XML_MANY_TO_MANY_IMPL__ACCESS_METHODS = EclipseLinkOrmPackage.XML_MANY_TO_MANY_IMPL__ACCESS_METHODS;
-
-	/**
-	 * The feature id for the '<em><b>Properties</b></em>' containment reference list.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	public static final int XML_MANY_TO_MANY_IMPL__PROPERTIES = EclipseLinkOrmPackage.XML_MANY_TO_MANY_IMPL__PROPERTIES;
-
-	/**
-	 * The feature id for the '<em><b>Access</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	public static final int XML_MANY_TO_MANY_IMPL__ACCESS = EclipseLinkOrmPackage.XML_MANY_TO_MANY_IMPL_FEATURE_COUNT + 0;
-
-	/**
-	 * The number of structural features of the '<em>Xml Many To Many Impl</em>' class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	public static final int XML_MANY_TO_MANY_IMPL_FEATURE_COUNT = EclipseLinkOrmPackage.XML_MANY_TO_MANY_IMPL_FEATURE_COUNT + 1;
-
-	/**
-	 * The meta object id for the '{@link org.eclipse.jpt.eclipselink1_1.core.resource.orm.XmlBasicCollection <em>Xml Basic Collection</em>}' class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see org.eclipse.jpt.eclipselink1_1.core.resource.orm.XmlBasicCollection
-	 * @see org.eclipse.jpt.eclipselink1_1.core.resource.orm.EclipseLink1_1OrmPackage#getXmlBasicCollection()
-	 * @generated
-	 */
-	public static final int XML_BASIC_COLLECTION = 20;
-
-	/**
-	 * The feature id for the '<em><b>Name</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	public static final int XML_BASIC_COLLECTION__NAME = EclipseLinkOrmPackage.XML_BASIC_COLLECTION__NAME;
-
-	/**
-	 * The feature id for the '<em><b>Access Methods</b></em>' containment reference.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	public static final int XML_BASIC_COLLECTION__ACCESS_METHODS = EclipseLinkOrmPackage.XML_BASIC_COLLECTION__ACCESS_METHODS;
-
-	/**
-	 * The feature id for the '<em><b>Properties</b></em>' containment reference list.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	public static final int XML_BASIC_COLLECTION__PROPERTIES = EclipseLinkOrmPackage.XML_BASIC_COLLECTION__PROPERTIES;
-
-	/**
-	 * The feature id for the '<em><b>Access</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	public static final int XML_BASIC_COLLECTION__ACCESS = EclipseLinkOrmPackage.XML_BASIC_COLLECTION_FEATURE_COUNT + 0;
-
-	/**
-	 * The number of structural features of the '<em>Xml Basic Collection</em>' class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	public static final int XML_BASIC_COLLECTION_FEATURE_COUNT = EclipseLinkOrmPackage.XML_BASIC_COLLECTION_FEATURE_COUNT + 1;
-
-	/**
-	 * The meta object id for the '{@link org.eclipse.jpt.eclipselink1_1.core.resource.orm.XmlBasicCollectionImpl <em>Xml Basic Collection Impl</em>}' class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see org.eclipse.jpt.eclipselink1_1.core.resource.orm.XmlBasicCollectionImpl
-	 * @see org.eclipse.jpt.eclipselink1_1.core.resource.orm.EclipseLink1_1OrmPackage#getXmlBasicCollectionImpl()
-	 * @generated
-	 */
-	public static final int XML_BASIC_COLLECTION_IMPL = 21;
-
-	/**
-	 * The feature id for the '<em><b>Name</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	public static final int XML_BASIC_COLLECTION_IMPL__NAME = EclipseLinkOrmPackage.XML_BASIC_COLLECTION_IMPL__NAME;
-
-	/**
-	 * The feature id for the '<em><b>Access Methods</b></em>' containment reference.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	public static final int XML_BASIC_COLLECTION_IMPL__ACCESS_METHODS = EclipseLinkOrmPackage.XML_BASIC_COLLECTION_IMPL__ACCESS_METHODS;
-
-	/**
-	 * The feature id for the '<em><b>Properties</b></em>' containment reference list.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	public static final int XML_BASIC_COLLECTION_IMPL__PROPERTIES = EclipseLinkOrmPackage.XML_BASIC_COLLECTION_IMPL__PROPERTIES;
-
-	/**
-	 * The feature id for the '<em><b>Access</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	public static final int XML_BASIC_COLLECTION_IMPL__ACCESS = EclipseLinkOrmPackage.XML_BASIC_COLLECTION_IMPL_FEATURE_COUNT + 0;
-
-	/**
-	 * The number of structural features of the '<em>Xml Basic Collection Impl</em>' class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	public static final int XML_BASIC_COLLECTION_IMPL_FEATURE_COUNT = EclipseLinkOrmPackage.XML_BASIC_COLLECTION_IMPL_FEATURE_COUNT + 1;
-
-	/**
-	 * The meta object id for the '{@link org.eclipse.jpt.eclipselink1_1.core.resource.orm.XmlBasicMap <em>Xml Basic Map</em>}' class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see org.eclipse.jpt.eclipselink1_1.core.resource.orm.XmlBasicMap
-	 * @see org.eclipse.jpt.eclipselink1_1.core.resource.orm.EclipseLink1_1OrmPackage#getXmlBasicMap()
-	 * @generated
-	 */
-	public static final int XML_BASIC_MAP = 22;
-
-	/**
-	 * The feature id for the '<em><b>Name</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	public static final int XML_BASIC_MAP__NAME = EclipseLinkOrmPackage.XML_BASIC_MAP__NAME;
-
-	/**
-	 * The feature id for the '<em><b>Access Methods</b></em>' containment reference.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	public static final int XML_BASIC_MAP__ACCESS_METHODS = EclipseLinkOrmPackage.XML_BASIC_MAP__ACCESS_METHODS;
-
-	/**
-	 * The feature id for the '<em><b>Properties</b></em>' containment reference list.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	public static final int XML_BASIC_MAP__PROPERTIES = EclipseLinkOrmPackage.XML_BASIC_MAP__PROPERTIES;
-
-	/**
-	 * The feature id for the '<em><b>Access</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	public static final int XML_BASIC_MAP__ACCESS = EclipseLinkOrmPackage.XML_BASIC_MAP_FEATURE_COUNT + 0;
-
-	/**
-	 * The number of structural features of the '<em>Xml Basic Map</em>' class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	public static final int XML_BASIC_MAP_FEATURE_COUNT = EclipseLinkOrmPackage.XML_BASIC_MAP_FEATURE_COUNT + 1;
-
-	/**
-	 * The meta object id for the '{@link org.eclipse.jpt.eclipselink1_1.core.resource.orm.XmlBasicMapImpl <em>Xml Basic Map Impl</em>}' class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see org.eclipse.jpt.eclipselink1_1.core.resource.orm.XmlBasicMapImpl
-	 * @see org.eclipse.jpt.eclipselink1_1.core.resource.orm.EclipseLink1_1OrmPackage#getXmlBasicMapImpl()
-	 * @generated
-	 */
-	public static final int XML_BASIC_MAP_IMPL = 23;
-
-	/**
-	 * The feature id for the '<em><b>Name</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	public static final int XML_BASIC_MAP_IMPL__NAME = EclipseLinkOrmPackage.XML_BASIC_MAP_IMPL__NAME;
-
-	/**
-	 * The feature id for the '<em><b>Access Methods</b></em>' containment reference.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	public static final int XML_BASIC_MAP_IMPL__ACCESS_METHODS = EclipseLinkOrmPackage.XML_BASIC_MAP_IMPL__ACCESS_METHODS;
-
-	/**
-	 * The feature id for the '<em><b>Properties</b></em>' containment reference list.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	public static final int XML_BASIC_MAP_IMPL__PROPERTIES = EclipseLinkOrmPackage.XML_BASIC_MAP_IMPL__PROPERTIES;
-
-	/**
-	 * The feature id for the '<em><b>Access</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	public static final int XML_BASIC_MAP_IMPL__ACCESS = EclipseLinkOrmPackage.XML_BASIC_MAP_IMPL_FEATURE_COUNT + 0;
-
-	/**
-	 * The number of structural features of the '<em>Xml Basic Map Impl</em>' class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	public static final int XML_BASIC_MAP_IMPL_FEATURE_COUNT = EclipseLinkOrmPackage.XML_BASIC_MAP_IMPL_FEATURE_COUNT + 1;
-
-	/**
-	 * The meta object id for the '{@link org.eclipse.jpt.eclipselink1_1.core.resource.orm.XmlTransformation <em>Xml Transformation</em>}' class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see org.eclipse.jpt.eclipselink1_1.core.resource.orm.XmlTransformation
-	 * @see org.eclipse.jpt.eclipselink1_1.core.resource.orm.EclipseLink1_1OrmPackage#getXmlTransformation()
-	 * @generated
-	 */
-	public static final int XML_TRANSFORMATION = 24;
-
-	/**
-	 * The feature id for the '<em><b>Name</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	public static final int XML_TRANSFORMATION__NAME = EclipseLinkOrmPackage.XML_TRANSFORMATION__NAME;
-
-	/**
-	 * The feature id for the '<em><b>Access Methods</b></em>' containment reference.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	public static final int XML_TRANSFORMATION__ACCESS_METHODS = EclipseLinkOrmPackage.XML_TRANSFORMATION__ACCESS_METHODS;
-
-	/**
-	 * The feature id for the '<em><b>Properties</b></em>' containment reference list.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	public static final int XML_TRANSFORMATION__PROPERTIES = EclipseLinkOrmPackage.XML_TRANSFORMATION__PROPERTIES;
-
-	/**
-	 * The feature id for the '<em><b>Access</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	public static final int XML_TRANSFORMATION__ACCESS = EclipseLinkOrmPackage.XML_TRANSFORMATION_FEATURE_COUNT + 0;
-
-	/**
-	 * The number of structural features of the '<em>Xml Transformation</em>' class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	public static final int XML_TRANSFORMATION_FEATURE_COUNT = EclipseLinkOrmPackage.XML_TRANSFORMATION_FEATURE_COUNT + 1;
-
-	/**
-	 * The meta object id for the '{@link org.eclipse.jpt.eclipselink1_1.core.resource.orm.XmlTransformationImpl <em>Xml Transformation Impl</em>}' class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see org.eclipse.jpt.eclipselink1_1.core.resource.orm.XmlTransformationImpl
-	 * @see org.eclipse.jpt.eclipselink1_1.core.resource.orm.EclipseLink1_1OrmPackage#getXmlTransformationImpl()
-	 * @generated
-	 */
-	public static final int XML_TRANSFORMATION_IMPL = 25;
-
-	/**
-	 * The feature id for the '<em><b>Name</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	public static final int XML_TRANSFORMATION_IMPL__NAME = EclipseLinkOrmPackage.XML_TRANSFORMATION_IMPL__NAME;
-
-	/**
-	 * The feature id for the '<em><b>Access Methods</b></em>' containment reference.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	public static final int XML_TRANSFORMATION_IMPL__ACCESS_METHODS = EclipseLinkOrmPackage.XML_TRANSFORMATION_IMPL__ACCESS_METHODS;
-
-	/**
-	 * The feature id for the '<em><b>Properties</b></em>' containment reference list.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	public static final int XML_TRANSFORMATION_IMPL__PROPERTIES = EclipseLinkOrmPackage.XML_TRANSFORMATION_IMPL__PROPERTIES;
-
-	/**
-	 * The feature id for the '<em><b>Access</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	public static final int XML_TRANSFORMATION_IMPL__ACCESS = EclipseLinkOrmPackage.XML_TRANSFORMATION_IMPL_FEATURE_COUNT + 0;
-
-	/**
-	 * The number of structural features of the '<em>Xml Transformation Impl</em>' class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	public static final int XML_TRANSFORMATION_IMPL_FEATURE_COUNT = EclipseLinkOrmPackage.XML_TRANSFORMATION_IMPL_FEATURE_COUNT + 1;
-
-	/**
-	 * The meta object id for the '{@link org.eclipse.jpt.eclipselink1_1.core.resource.orm.XmlVariableOneToOne <em>Xml Variable One To One</em>}' class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see org.eclipse.jpt.eclipselink1_1.core.resource.orm.XmlVariableOneToOne
-	 * @see org.eclipse.jpt.eclipselink1_1.core.resource.orm.EclipseLink1_1OrmPackage#getXmlVariableOneToOne()
-	 * @generated
-	 */
-	public static final int XML_VARIABLE_ONE_TO_ONE = 26;
-
-	/**
-	 * The feature id for the '<em><b>Name</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	public static final int XML_VARIABLE_ONE_TO_ONE__NAME = EclipseLinkOrmPackage.XML_VARIABLE_ONE_TO_ONE__NAME;
-
-	/**
-	 * The feature id for the '<em><b>Access Methods</b></em>' containment reference.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	public static final int XML_VARIABLE_ONE_TO_ONE__ACCESS_METHODS = EclipseLinkOrmPackage.XML_VARIABLE_ONE_TO_ONE__ACCESS_METHODS;
-
-	/**
-	 * The feature id for the '<em><b>Properties</b></em>' containment reference list.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	public static final int XML_VARIABLE_ONE_TO_ONE__PROPERTIES = EclipseLinkOrmPackage.XML_VARIABLE_ONE_TO_ONE__PROPERTIES;
-
-	/**
-	 * The feature id for the '<em><b>Access</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	public static final int XML_VARIABLE_ONE_TO_ONE__ACCESS = EclipseLinkOrmPackage.XML_VARIABLE_ONE_TO_ONE_FEATURE_COUNT + 0;
-
-	/**
-	 * The number of structural features of the '<em>Xml Variable One To One</em>' class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	public static final int XML_VARIABLE_ONE_TO_ONE_FEATURE_COUNT = EclipseLinkOrmPackage.XML_VARIABLE_ONE_TO_ONE_FEATURE_COUNT + 1;
-
-	/**
-	 * The meta object id for the '{@link org.eclipse.jpt.eclipselink1_1.core.resource.orm.XmlVariableOneToOneImpl <em>Xml Variable One To One Impl</em>}' class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see org.eclipse.jpt.eclipselink1_1.core.resource.orm.XmlVariableOneToOneImpl
-	 * @see org.eclipse.jpt.eclipselink1_1.core.resource.orm.EclipseLink1_1OrmPackage#getXmlVariableOneToOneImpl()
-	 * @generated
-	 */
-	public static final int XML_VARIABLE_ONE_TO_ONE_IMPL = 27;
-
-	/**
-	 * The feature id for the '<em><b>Name</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	public static final int XML_VARIABLE_ONE_TO_ONE_IMPL__NAME = EclipseLinkOrmPackage.XML_VARIABLE_ONE_TO_ONE_IMPL__NAME;
-
-	/**
-	 * The feature id for the '<em><b>Access Methods</b></em>' containment reference.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	public static final int XML_VARIABLE_ONE_TO_ONE_IMPL__ACCESS_METHODS = EclipseLinkOrmPackage.XML_VARIABLE_ONE_TO_ONE_IMPL__ACCESS_METHODS;
-
-	/**
-	 * The feature id for the '<em><b>Properties</b></em>' containment reference list.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	public static final int XML_VARIABLE_ONE_TO_ONE_IMPL__PROPERTIES = EclipseLinkOrmPackage.XML_VARIABLE_ONE_TO_ONE_IMPL__PROPERTIES;
-
-	/**
-	 * The feature id for the '<em><b>Access</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	public static final int XML_VARIABLE_ONE_TO_ONE_IMPL__ACCESS = EclipseLinkOrmPackage.XML_VARIABLE_ONE_TO_ONE_IMPL_FEATURE_COUNT + 0;
-
-	/**
-	 * The number of structural features of the '<em>Xml Variable One To One Impl</em>' class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	public static final int XML_VARIABLE_ONE_TO_ONE_IMPL_FEATURE_COUNT = EclipseLinkOrmPackage.XML_VARIABLE_ONE_TO_ONE_IMPL_FEATURE_COUNT + 1;
-
-	/**
-	 * The meta object id for the '{@link org.eclipse.jpt.eclipselink1_1.core.resource.orm.XmlTransient <em>Xml Transient</em>}' class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see org.eclipse.jpt.eclipselink1_1.core.resource.orm.XmlTransient
-	 * @see org.eclipse.jpt.eclipselink1_1.core.resource.orm.EclipseLink1_1OrmPackage#getXmlTransient()
-	 * @generated
-	 */
-	public static final int XML_TRANSIENT = 28;
-
-	/**
-	 * The feature id for the '<em><b>Name</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	public static final int XML_TRANSIENT__NAME = OrmPackage.XML_TRANSIENT__NAME;
-
-	/**
-	 * The feature id for the '<em><b>Access</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	public static final int XML_TRANSIENT__ACCESS = OrmPackage.XML_TRANSIENT_FEATURE_COUNT + 0;
-
-	/**
-	 * The number of structural features of the '<em>Xml Transient</em>' class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	public static final int XML_TRANSIENT_FEATURE_COUNT = OrmPackage.XML_TRANSIENT_FEATURE_COUNT + 1;
-
-	/**
-	 * The meta object id for the '{@link org.eclipse.jpt.eclipselink1_1.core.resource.orm.XmlTransientImpl <em>Xml Transient Impl</em>}' class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see org.eclipse.jpt.eclipselink1_1.core.resource.orm.XmlTransientImpl
-	 * @see org.eclipse.jpt.eclipselink1_1.core.resource.orm.EclipseLink1_1OrmPackage#getXmlTransientImpl()
-	 * @generated
-	 */
-	public static final int XML_TRANSIENT_IMPL = 29;
-
-	/**
-	 * The feature id for the '<em><b>Name</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	public static final int XML_TRANSIENT_IMPL__NAME = OrmPackage.XML_TRANSIENT_IMPL__NAME;
-
-	/**
-	 * The feature id for the '<em><b>Access</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	public static final int XML_TRANSIENT_IMPL__ACCESS = OrmPackage.XML_TRANSIENT_IMPL_FEATURE_COUNT + 0;
-
-	/**
-	 * The number of structural features of the '<em>Xml Transient Impl</em>' class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	public static final int XML_TRANSIENT_IMPL_FEATURE_COUNT = OrmPackage.XML_TRANSIENT_IMPL_FEATURE_COUNT + 1;
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	private EClass xmlEntityMappingsEClass = null;
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	private EClass xmlAttributeMappingEClass = null;
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	private EClass xmlIdEClass = null;
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	private EClass xmlIdImplEClass = null;
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	private EClass xmlEmbeddedIdEClass = null;
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	private EClass xmlEmbeddedIdImplEClass = null;
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	private EClass xmlEmbeddedEClass = null;
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	private EClass xmlEmbeddedImplEClass = null;
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	private EClass xmlBasicEClass = null;
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	private EClass xmlBasicImplEClass = null;
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	private EClass xmlVersionEClass = null;
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	private EClass xmlVersionImplEClass = null;
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	private EClass xmlOneToOneEClass = null;
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	private EClass xmlOneToOneImplEClass = null;
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	private EClass xmlOneToManyEClass = null;
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	private EClass xmlOneToManyImplEClass = null;
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	private EClass xmlManyToOneEClass = null;
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	private EClass xmlManyToOneImplEClass = null;
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	private EClass xmlManyToManyEClass = null;
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	private EClass xmlManyToManyImplEClass = null;
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	private EClass xmlBasicCollectionEClass = null;
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	private EClass xmlBasicCollectionImplEClass = null;
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	private EClass xmlBasicMapEClass = null;
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	private EClass xmlBasicMapImplEClass = null;
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	private EClass xmlTransformationEClass = null;
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	private EClass xmlTransformationImplEClass = null;
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	private EClass xmlVariableOneToOneEClass = null;
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	private EClass xmlVariableOneToOneImplEClass = null;
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	private EClass xmlTransientEClass = null;
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	private EClass xmlTransientImplEClass = null;
-
-	/**
-	 * Creates an instance of the model <b>Package</b>, registered with
-	 * {@link org.eclipse.emf.ecore.EPackage.Registry EPackage.Registry} by the package
-	 * package URI value.
-	 * <p>Note: the correct way to create the package is via the static
-	 * factory method {@link #init init()}, which also performs
-	 * initialization of the package, or returns the registered package,
-	 * if one already exists.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see org.eclipse.emf.ecore.EPackage.Registry
-	 * @see org.eclipse.jpt.eclipselink1_1.core.resource.orm.EclipseLink1_1OrmPackage#eNS_URI
-	 * @see #init()
-	 * @generated
-	 */
-	private EclipseLink1_1OrmPackage()
-	{
-		super(eNS_URI, EclipseLink1_1OrmFactory.eINSTANCE);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	private static boolean isInited = false;
-
-	/**
-	 * Creates, registers, and initializes the <b>Package</b> for this
-	 * model, and for any others upon which it depends.  Simple
-	 * dependencies are satisfied by calling this method on all
-	 * dependent packages before doing anything else.  This method drives
-	 * initialization for interdependent packages directly, in parallel
-	 * with this package, itself.
-	 * <p>Of this package and its interdependencies, all packages which
-	 * have not yet been registered by their URI values are first created
-	 * and registered.  The packages are then initialized in two steps:
-	 * meta-model objects for all of the packages are created before any
-	 * are initialized, since one package's meta-model objects may refer to
-	 * those of another.
-	 * <p>Invocation of this method will not affect any packages that have
-	 * already been initialized.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see #eNS_URI
-	 * @see #createPackageContents()
-	 * @see #initializePackageContents()
-	 * @generated
-	 */
-	public static EclipseLink1_1OrmPackage init()
-	{
-		if (isInited) return (EclipseLink1_1OrmPackage)EPackage.Registry.INSTANCE.getEPackage(EclipseLink1_1OrmPackage.eNS_URI);
-
-		// Obtain or create and register package
-		EclipseLink1_1OrmPackage theEclipseLink1_1OrmPackage = (EclipseLink1_1OrmPackage)(EPackage.Registry.INSTANCE.getEPackage(eNS_URI) instanceof EclipseLink1_1OrmPackage ? EPackage.Registry.INSTANCE.getEPackage(eNS_URI) : new EclipseLink1_1OrmPackage());
-
-		isInited = true;
-
-		// Initialize simple dependencies
-		OrmPackage.eINSTANCE.eClass();
-
-		// Obtain or create and register interdependencies
-		EclipseLinkOrmPackage theEclipseLinkOrmPackage = (EclipseLinkOrmPackage)(EPackage.Registry.INSTANCE.getEPackage(EclipseLinkOrmPackage.eNS_URI) instanceof EclipseLinkOrmPackage ? EPackage.Registry.INSTANCE.getEPackage(EclipseLinkOrmPackage.eNS_URI) : EclipseLinkOrmPackage.eINSTANCE);
-
-		// Create package meta-data objects
-		theEclipseLink1_1OrmPackage.createPackageContents();
-		theEclipseLinkOrmPackage.createPackageContents();
-
-		// Initialize created meta-data
-		theEclipseLink1_1OrmPackage.initializePackageContents();
-		theEclipseLinkOrmPackage.initializePackageContents();
-
-		// Mark meta-data to indicate it can't be changed
-		theEclipseLink1_1OrmPackage.freeze();
-
-		return theEclipseLink1_1OrmPackage;
-	}
-
-
-	/**
-	 * Returns the meta object for class '{@link org.eclipse.jpt.eclipselink1_1.core.resource.orm.XmlEntityMappings <em>Xml Entity Mappings</em>}'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return the meta object for class '<em>Xml Entity Mappings</em>'.
-	 * @see org.eclipse.jpt.eclipselink1_1.core.resource.orm.XmlEntityMappings
-	 * @generated
-	 */
-	public EClass getXmlEntityMappings()
-	{
-		return xmlEntityMappingsEClass;
-	}
-
-
-	/**
-	 * Returns the meta object for class '{@link org.eclipse.jpt.eclipselink1_1.core.resource.orm.XmlAttributeMapping <em>Xml Attribute Mapping</em>}'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return the meta object for class '<em>Xml Attribute Mapping</em>'.
-	 * @see org.eclipse.jpt.eclipselink1_1.core.resource.orm.XmlAttributeMapping
-	 * @generated
-	 */
-	public EClass getXmlAttributeMapping()
-	{
-		return xmlAttributeMappingEClass;
-	}
-
-	/**
-	 * Returns the meta object for the attribute '{@link org.eclipse.jpt.eclipselink1_1.core.resource.orm.XmlAttributeMapping#getAccess <em>Access</em>}'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return the meta object for the attribute '<em>Access</em>'.
-	 * @see org.eclipse.jpt.eclipselink1_1.core.resource.orm.XmlAttributeMapping#getAccess()
-	 * @see #getXmlAttributeMapping()
-	 * @generated
-	 */
-	public EAttribute getXmlAttributeMapping_Access()
-	{
-		return (EAttribute)xmlAttributeMappingEClass.getEStructuralFeatures().get(0);
-	}
-
-	/**
-	 * Returns the meta object for class '{@link org.eclipse.jpt.eclipselink1_1.core.resource.orm.XmlId <em>Xml Id</em>}'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return the meta object for class '<em>Xml Id</em>'.
-	 * @see org.eclipse.jpt.eclipselink1_1.core.resource.orm.XmlId
-	 * @generated
-	 */
-	public EClass getXmlId()
-	{
-		return xmlIdEClass;
-	}
-
-	/**
-	 * Returns the meta object for class '{@link org.eclipse.jpt.eclipselink1_1.core.resource.orm.XmlIdImpl <em>Xml Id Impl</em>}'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return the meta object for class '<em>Xml Id Impl</em>'.
-	 * @see org.eclipse.jpt.eclipselink1_1.core.resource.orm.XmlIdImpl
-	 * @generated
-	 */
-	public EClass getXmlIdImpl()
-	{
-		return xmlIdImplEClass;
-	}
-
-	/**
-	 * Returns the meta object for class '{@link org.eclipse.jpt.eclipselink1_1.core.resource.orm.XmlEmbeddedId <em>Xml Embedded Id</em>}'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return the meta object for class '<em>Xml Embedded Id</em>'.
-	 * @see org.eclipse.jpt.eclipselink1_1.core.resource.orm.XmlEmbeddedId
-	 * @generated
-	 */
-	public EClass getXmlEmbeddedId()
-	{
-		return xmlEmbeddedIdEClass;
-	}
-
-	/**
-	 * Returns the meta object for class '{@link org.eclipse.jpt.eclipselink1_1.core.resource.orm.XmlEmbeddedIdImpl <em>Xml Embedded Id Impl</em>}'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return the meta object for class '<em>Xml Embedded Id Impl</em>'.
-	 * @see org.eclipse.jpt.eclipselink1_1.core.resource.orm.XmlEmbeddedIdImpl
-	 * @generated
-	 */
-	public EClass getXmlEmbeddedIdImpl()
-	{
-		return xmlEmbeddedIdImplEClass;
-	}
-
-	/**
-	 * Returns the meta object for class '{@link org.eclipse.jpt.eclipselink1_1.core.resource.orm.XmlEmbedded <em>Xml Embedded</em>}'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return the meta object for class '<em>Xml Embedded</em>'.
-	 * @see org.eclipse.jpt.eclipselink1_1.core.resource.orm.XmlEmbedded
-	 * @generated
-	 */
-	public EClass getXmlEmbedded()
-	{
-		return xmlEmbeddedEClass;
-	}
-
-	/**
-	 * Returns the meta object for class '{@link org.eclipse.jpt.eclipselink1_1.core.resource.orm.XmlEmbeddedImpl <em>Xml Embedded Impl</em>}'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return the meta object for class '<em>Xml Embedded Impl</em>'.
-	 * @see org.eclipse.jpt.eclipselink1_1.core.resource.orm.XmlEmbeddedImpl
-	 * @generated
-	 */
-	public EClass getXmlEmbeddedImpl()
-	{
-		return xmlEmbeddedImplEClass;
-	}
-
-	/**
-	 * Returns the meta object for class '{@link org.eclipse.jpt.eclipselink1_1.core.resource.orm.XmlBasic <em>Xml Basic</em>}'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return the meta object for class '<em>Xml Basic</em>'.
-	 * @see org.eclipse.jpt.eclipselink1_1.core.resource.orm.XmlBasic
-	 * @generated
-	 */
-	public EClass getXmlBasic()
-	{
-		return xmlBasicEClass;
-	}
-
-	/**
-	 * Returns the meta object for the containment reference '{@link org.eclipse.jpt.eclipselink1_1.core.resource.orm.XmlBasic#getGeneratedValue <em>Generated Value</em>}'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return the meta object for the containment reference '<em>Generated Value</em>'.
-	 * @see org.eclipse.jpt.eclipselink1_1.core.resource.orm.XmlBasic#getGeneratedValue()
-	 * @see #getXmlBasic()
-	 * @generated
-	 */
-	public EReference getXmlBasic_GeneratedValue()
-	{
-		return (EReference)xmlBasicEClass.getEStructuralFeatures().get(0);
-	}
-
-
-	/**
-	 * Returns the meta object for the containment reference '{@link org.eclipse.jpt.eclipselink1_1.core.resource.orm.XmlBasic#getTableGenerator <em>Table Generator</em>}'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return the meta object for the containment reference '<em>Table Generator</em>'.
-	 * @see org.eclipse.jpt.eclipselink1_1.core.resource.orm.XmlBasic#getTableGenerator()
-	 * @see #getXmlBasic()
-	 * @generated
-	 */
-	public EReference getXmlBasic_TableGenerator()
-	{
-		return (EReference)xmlBasicEClass.getEStructuralFeatures().get(1);
-	}
-
-
-	/**
-	 * Returns the meta object for the containment reference '{@link org.eclipse.jpt.eclipselink1_1.core.resource.orm.XmlBasic#getSequenceGenerator <em>Sequence Generator</em>}'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return the meta object for the containment reference '<em>Sequence Generator</em>'.
-	 * @see org.eclipse.jpt.eclipselink1_1.core.resource.orm.XmlBasic#getSequenceGenerator()
-	 * @see #getXmlBasic()
-	 * @generated
-	 */
-	public EReference getXmlBasic_SequenceGenerator()
-	{
-		return (EReference)xmlBasicEClass.getEStructuralFeatures().get(2);
-	}
-
-
-	/**
-	 * Returns the meta object for class '{@link org.eclipse.jpt.eclipselink1_1.core.resource.orm.XmlBasicImpl <em>Xml Basic Impl</em>}'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return the meta object for class '<em>Xml Basic Impl</em>'.
-	 * @see org.eclipse.jpt.eclipselink1_1.core.resource.orm.XmlBasicImpl
-	 * @generated
-	 */
-	public EClass getXmlBasicImpl()
-	{
-		return xmlBasicImplEClass;
-	}
-
-	/**
-	 * Returns the meta object for class '{@link org.eclipse.jpt.eclipselink1_1.core.resource.orm.XmlVersion <em>Xml Version</em>}'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return the meta object for class '<em>Xml Version</em>'.
-	 * @see org.eclipse.jpt.eclipselink1_1.core.resource.orm.XmlVersion
-	 * @generated
-	 */
-	public EClass getXmlVersion()
-	{
-		return xmlVersionEClass;
-	}
-
-	/**
-	 * Returns the meta object for class '{@link org.eclipse.jpt.eclipselink1_1.core.resource.orm.XmlVersionImpl <em>Xml Version Impl</em>}'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return the meta object for class '<em>Xml Version Impl</em>'.
-	 * @see org.eclipse.jpt.eclipselink1_1.core.resource.orm.XmlVersionImpl
-	 * @generated
-	 */
-	public EClass getXmlVersionImpl()
-	{
-		return xmlVersionImplEClass;
-	}
-
-	/**
-	 * Returns the meta object for class '{@link org.eclipse.jpt.eclipselink1_1.core.resource.orm.XmlOneToOne <em>Xml One To One</em>}'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return the meta object for class '<em>Xml One To One</em>'.
-	 * @see org.eclipse.jpt.eclipselink1_1.core.resource.orm.XmlOneToOne
-	 * @generated
-	 */
-	public EClass getXmlOneToOne()
-	{
-		return xmlOneToOneEClass;
-	}
-
-	/**
-	 * Returns the meta object for class '{@link org.eclipse.jpt.eclipselink1_1.core.resource.orm.XmlOneToOneImpl <em>Xml One To One Impl</em>}'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return the meta object for class '<em>Xml One To One Impl</em>'.
-	 * @see org.eclipse.jpt.eclipselink1_1.core.resource.orm.XmlOneToOneImpl
-	 * @generated
-	 */
-	public EClass getXmlOneToOneImpl()
-	{
-		return xmlOneToOneImplEClass;
-	}
-
-	/**
-	 * Returns the meta object for class '{@link org.eclipse.jpt.eclipselink1_1.core.resource.orm.XmlOneToMany <em>Xml One To Many</em>}'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return the meta object for class '<em>Xml One To Many</em>'.
-	 * @see org.eclipse.jpt.eclipselink1_1.core.resource.orm.XmlOneToMany
-	 * @generated
-	 */
-	public EClass getXmlOneToMany()
-	{
-		return xmlOneToManyEClass;
-	}
-
-	/**
-	 * Returns the meta object for class '{@link org.eclipse.jpt.eclipselink1_1.core.resource.orm.XmlOneToManyImpl <em>Xml One To Many Impl</em>}'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return the meta object for class '<em>Xml One To Many Impl</em>'.
-	 * @see org.eclipse.jpt.eclipselink1_1.core.resource.orm.XmlOneToManyImpl
-	 * @generated
-	 */
-	public EClass getXmlOneToManyImpl()
-	{
-		return xmlOneToManyImplEClass;
-	}
-
-	/**
-	 * Returns the meta object for class '{@link org.eclipse.jpt.eclipselink1_1.core.resource.orm.XmlManyToOne <em>Xml Many To One</em>}'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return the meta object for class '<em>Xml Many To One</em>'.
-	 * @see org.eclipse.jpt.eclipselink1_1.core.resource.orm.XmlManyToOne
-	 * @generated
-	 */
-	public EClass getXmlManyToOne()
-	{
-		return xmlManyToOneEClass;
-	}
-
-	/**
-	 * Returns the meta object for class '{@link org.eclipse.jpt.eclipselink1_1.core.resource.orm.XmlManyToOneImpl <em>Xml Many To One Impl</em>}'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return the meta object for class '<em>Xml Many To One Impl</em>'.
-	 * @see org.eclipse.jpt.eclipselink1_1.core.resource.orm.XmlManyToOneImpl
-	 * @generated
-	 */
-	public EClass getXmlManyToOneImpl()
-	{
-		return xmlManyToOneImplEClass;
-	}
-
-	/**
-	 * Returns the meta object for class '{@link org.eclipse.jpt.eclipselink1_1.core.resource.orm.XmlManyToMany <em>Xml Many To Many</em>}'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return the meta object for class '<em>Xml Many To Many</em>'.
-	 * @see org.eclipse.jpt.eclipselink1_1.core.resource.orm.XmlManyToMany
-	 * @generated
-	 */
-	public EClass getXmlManyToMany()
-	{
-		return xmlManyToManyEClass;
-	}
-
-	/**
-	 * Returns the meta object for class '{@link org.eclipse.jpt.eclipselink1_1.core.resource.orm.XmlManyToManyImpl <em>Xml Many To Many Impl</em>}'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return the meta object for class '<em>Xml Many To Many Impl</em>'.
-	 * @see org.eclipse.jpt.eclipselink1_1.core.resource.orm.XmlManyToManyImpl
-	 * @generated
-	 */
-	public EClass getXmlManyToManyImpl()
-	{
-		return xmlManyToManyImplEClass;
-	}
-
-	/**
-	 * Returns the meta object for class '{@link org.eclipse.jpt.eclipselink1_1.core.resource.orm.XmlBasicCollection <em>Xml Basic Collection</em>}'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return the meta object for class '<em>Xml Basic Collection</em>'.
-	 * @see org.eclipse.jpt.eclipselink1_1.core.resource.orm.XmlBasicCollection
-	 * @generated
-	 */
-	public EClass getXmlBasicCollection()
-	{
-		return xmlBasicCollectionEClass;
-	}
-
-	/**
-	 * Returns the meta object for class '{@link org.eclipse.jpt.eclipselink1_1.core.resource.orm.XmlBasicCollectionImpl <em>Xml Basic Collection Impl</em>}'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return the meta object for class '<em>Xml Basic Collection Impl</em>'.
-	 * @see org.eclipse.jpt.eclipselink1_1.core.resource.orm.XmlBasicCollectionImpl
-	 * @generated
-	 */
-	public EClass getXmlBasicCollectionImpl()
-	{
-		return xmlBasicCollectionImplEClass;
-	}
-
-	/**
-	 * Returns the meta object for class '{@link org.eclipse.jpt.eclipselink1_1.core.resource.orm.XmlBasicMap <em>Xml Basic Map</em>}'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return the meta object for class '<em>Xml Basic Map</em>'.
-	 * @see org.eclipse.jpt.eclipselink1_1.core.resource.orm.XmlBasicMap
-	 * @generated
-	 */
-	public EClass getXmlBasicMap()
-	{
-		return xmlBasicMapEClass;
-	}
-
-	/**
-	 * Returns the meta object for class '{@link org.eclipse.jpt.eclipselink1_1.core.resource.orm.XmlBasicMapImpl <em>Xml Basic Map Impl</em>}'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return the meta object for class '<em>Xml Basic Map Impl</em>'.
-	 * @see org.eclipse.jpt.eclipselink1_1.core.resource.orm.XmlBasicMapImpl
-	 * @generated
-	 */
-	public EClass getXmlBasicMapImpl()
-	{
-		return xmlBasicMapImplEClass;
-	}
-
-	/**
-	 * Returns the meta object for class '{@link org.eclipse.jpt.eclipselink1_1.core.resource.orm.XmlTransformation <em>Xml Transformation</em>}'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return the meta object for class '<em>Xml Transformation</em>'.
-	 * @see org.eclipse.jpt.eclipselink1_1.core.resource.orm.XmlTransformation
-	 * @generated
-	 */
-	public EClass getXmlTransformation()
-	{
-		return xmlTransformationEClass;
-	}
-
-	/**
-	 * Returns the meta object for class '{@link org.eclipse.jpt.eclipselink1_1.core.resource.orm.XmlTransformationImpl <em>Xml Transformation Impl</em>}'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return the meta object for class '<em>Xml Transformation Impl</em>'.
-	 * @see org.eclipse.jpt.eclipselink1_1.core.resource.orm.XmlTransformationImpl
-	 * @generated
-	 */
-	public EClass getXmlTransformationImpl()
-	{
-		return xmlTransformationImplEClass;
-	}
-
-	/**
-	 * Returns the meta object for class '{@link org.eclipse.jpt.eclipselink1_1.core.resource.orm.XmlVariableOneToOne <em>Xml Variable One To One</em>}'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return the meta object for class '<em>Xml Variable One To One</em>'.
-	 * @see org.eclipse.jpt.eclipselink1_1.core.resource.orm.XmlVariableOneToOne
-	 * @generated
-	 */
-	public EClass getXmlVariableOneToOne()
-	{
-		return xmlVariableOneToOneEClass;
-	}
-
-	/**
-	 * Returns the meta object for class '{@link org.eclipse.jpt.eclipselink1_1.core.resource.orm.XmlVariableOneToOneImpl <em>Xml Variable One To One Impl</em>}'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return the meta object for class '<em>Xml Variable One To One Impl</em>'.
-	 * @see org.eclipse.jpt.eclipselink1_1.core.resource.orm.XmlVariableOneToOneImpl
-	 * @generated
-	 */
-	public EClass getXmlVariableOneToOneImpl()
-	{
-		return xmlVariableOneToOneImplEClass;
-	}
-
-	/**
-	 * Returns the meta object for class '{@link org.eclipse.jpt.eclipselink1_1.core.resource.orm.XmlTransient <em>Xml Transient</em>}'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return the meta object for class '<em>Xml Transient</em>'.
-	 * @see org.eclipse.jpt.eclipselink1_1.core.resource.orm.XmlTransient
-	 * @generated
-	 */
-	public EClass getXmlTransient()
-	{
-		return xmlTransientEClass;
-	}
-
-
-	/**
-	 * Returns the meta object for class '{@link org.eclipse.jpt.eclipselink1_1.core.resource.orm.XmlTransientImpl <em>Xml Transient Impl</em>}'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return the meta object for class '<em>Xml Transient Impl</em>'.
-	 * @see org.eclipse.jpt.eclipselink1_1.core.resource.orm.XmlTransientImpl
-	 * @generated
-	 */
-	public EClass getXmlTransientImpl()
-	{
-		return xmlTransientImplEClass;
-	}
-
-
-	/**
-	 * Returns the factory that creates the instances of the model.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return the factory that creates the instances of the model.
-	 * @generated
-	 */
-	public EclipseLink1_1OrmFactory getEclipseLink1_1OrmFactory()
-	{
-		return (EclipseLink1_1OrmFactory)getEFactoryInstance();
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	private boolean isCreated = false;
-
-	/**
-	 * Creates the meta-model objects for the package.  This method is
-	 * guarded to have no affect on any invocation but its first.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public void createPackageContents()
-	{
-		if (isCreated) return;
-		isCreated = true;
-
-		// Create classes and their features
-		xmlEntityMappingsEClass = createEClass(XML_ENTITY_MAPPINGS);
-
-		xmlAttributeMappingEClass = createEClass(XML_ATTRIBUTE_MAPPING);
-		createEAttribute(xmlAttributeMappingEClass, XML_ATTRIBUTE_MAPPING__ACCESS);
-
-		xmlIdEClass = createEClass(XML_ID);
-
-		xmlIdImplEClass = createEClass(XML_ID_IMPL);
-
-		xmlEmbeddedIdEClass = createEClass(XML_EMBEDDED_ID);
-
-		xmlEmbeddedIdImplEClass = createEClass(XML_EMBEDDED_ID_IMPL);
-
-		xmlEmbeddedEClass = createEClass(XML_EMBEDDED);
-
-		xmlEmbeddedImplEClass = createEClass(XML_EMBEDDED_IMPL);
-
-		xmlBasicEClass = createEClass(XML_BASIC);
-		createEReference(xmlBasicEClass, XML_BASIC__GENERATED_VALUE);
-		createEReference(xmlBasicEClass, XML_BASIC__TABLE_GENERATOR);
-		createEReference(xmlBasicEClass, XML_BASIC__SEQUENCE_GENERATOR);
-
-		xmlBasicImplEClass = createEClass(XML_BASIC_IMPL);
-
-		xmlVersionEClass = createEClass(XML_VERSION);
-
-		xmlVersionImplEClass = createEClass(XML_VERSION_IMPL);
-
-		xmlOneToOneEClass = createEClass(XML_ONE_TO_ONE);
-
-		xmlOneToOneImplEClass = createEClass(XML_ONE_TO_ONE_IMPL);
-
-		xmlOneToManyEClass = createEClass(XML_ONE_TO_MANY);
-
-		xmlOneToManyImplEClass = createEClass(XML_ONE_TO_MANY_IMPL);
-
-		xmlManyToOneEClass = createEClass(XML_MANY_TO_ONE);
-
-		xmlManyToOneImplEClass = createEClass(XML_MANY_TO_ONE_IMPL);
-
-		xmlManyToManyEClass = createEClass(XML_MANY_TO_MANY);
-
-		xmlManyToManyImplEClass = createEClass(XML_MANY_TO_MANY_IMPL);
-
-		xmlBasicCollectionEClass = createEClass(XML_BASIC_COLLECTION);
-
-		xmlBasicCollectionImplEClass = createEClass(XML_BASIC_COLLECTION_IMPL);
-
-		xmlBasicMapEClass = createEClass(XML_BASIC_MAP);
-
-		xmlBasicMapImplEClass = createEClass(XML_BASIC_MAP_IMPL);
-
-		xmlTransformationEClass = createEClass(XML_TRANSFORMATION);
-
-		xmlTransformationImplEClass = createEClass(XML_TRANSFORMATION_IMPL);
-
-		xmlVariableOneToOneEClass = createEClass(XML_VARIABLE_ONE_TO_ONE);
-
-		xmlVariableOneToOneImplEClass = createEClass(XML_VARIABLE_ONE_TO_ONE_IMPL);
-
-		xmlTransientEClass = createEClass(XML_TRANSIENT);
-
-		xmlTransientImplEClass = createEClass(XML_TRANSIENT_IMPL);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	private boolean isInitialized = false;
-
-	/**
-	 * Complete the initialization of the package and its meta-model.  This
-	 * method is guarded to have no affect on any invocation but its first.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public void initializePackageContents()
-	{
-		if (isInitialized) return;
-		isInitialized = true;
-
-		// Initialize package
-		setName(eNAME);
-		setNsPrefix(eNS_PREFIX);
-		setNsURI(eNS_URI);
-
-		// Obtain other dependent packages
-		EclipseLinkOrmPackage theEclipseLinkOrmPackage = (EclipseLinkOrmPackage)EPackage.Registry.INSTANCE.getEPackage(EclipseLinkOrmPackage.eNS_URI);
-		OrmPackage theOrmPackage = (OrmPackage)EPackage.Registry.INSTANCE.getEPackage(OrmPackage.eNS_URI);
-
-		// Create type parameters
-
-		// Set bounds for type parameters
-
-		// Add supertypes to classes
-		xmlEntityMappingsEClass.getESuperTypes().add(theEclipseLinkOrmPackage.getXmlEntityMappings());
-		xmlAttributeMappingEClass.getESuperTypes().add(theOrmPackage.getXmlAttributeMapping());
-		xmlIdEClass.getESuperTypes().add(theEclipseLinkOrmPackage.getXmlId());
-		xmlIdEClass.getESuperTypes().add(this.getXmlAttributeMapping());
-		xmlIdImplEClass.getESuperTypes().add(theEclipseLinkOrmPackage.getXmlIdImpl());
-		xmlIdImplEClass.getESuperTypes().add(this.getXmlId());
-		xmlEmbeddedIdEClass.getESuperTypes().add(theEclipseLinkOrmPackage.getXmlEmbeddedId());
-		xmlEmbeddedIdEClass.getESuperTypes().add(this.getXmlAttributeMapping());
-		xmlEmbeddedIdImplEClass.getESuperTypes().add(theEclipseLinkOrmPackage.getXmlEmbeddedIdImpl());
-		xmlEmbeddedIdImplEClass.getESuperTypes().add(this.getXmlEmbeddedId());
-		xmlEmbeddedEClass.getESuperTypes().add(theEclipseLinkOrmPackage.getXmlEmbedded());
-		xmlEmbeddedEClass.getESuperTypes().add(this.getXmlAttributeMapping());
-		xmlEmbeddedImplEClass.getESuperTypes().add(theEclipseLinkOrmPackage.getXmlEmbeddedImpl());
-		xmlEmbeddedImplEClass.getESuperTypes().add(this.getXmlEmbedded());
-		xmlBasicEClass.getESuperTypes().add(theEclipseLinkOrmPackage.getXmlBasic());
-		xmlBasicEClass.getESuperTypes().add(this.getXmlAttributeMapping());
-		xmlBasicImplEClass.getESuperTypes().add(theEclipseLinkOrmPackage.getXmlBasicImpl());
-		xmlBasicImplEClass.getESuperTypes().add(this.getXmlBasic());
-		xmlVersionEClass.getESuperTypes().add(theEclipseLinkOrmPackage.getXmlVersion());
-		xmlVersionEClass.getESuperTypes().add(this.getXmlAttributeMapping());
-		xmlVersionImplEClass.getESuperTypes().add(theEclipseLinkOrmPackage.getXmlVersionImpl());
-		xmlVersionImplEClass.getESuperTypes().add(this.getXmlVersion());
-		xmlOneToOneEClass.getESuperTypes().add(theEclipseLinkOrmPackage.getXmlOneToOne());
-		xmlOneToOneEClass.getESuperTypes().add(this.getXmlAttributeMapping());
-		xmlOneToOneImplEClass.getESuperTypes().add(theEclipseLinkOrmPackage.getXmlOneToOneImpl());
-		xmlOneToOneImplEClass.getESuperTypes().add(this.getXmlOneToOne());
-		xmlOneToManyEClass.getESuperTypes().add(theEclipseLinkOrmPackage.getXmlOneToMany());
-		xmlOneToManyEClass.getESuperTypes().add(this.getXmlAttributeMapping());
-		xmlOneToManyImplEClass.getESuperTypes().add(theEclipseLinkOrmPackage.getXmlOneToManyImpl());
-		xmlOneToManyImplEClass.getESuperTypes().add(this.getXmlOneToMany());
-		xmlManyToOneEClass.getESuperTypes().add(theEclipseLinkOrmPackage.getXmlManyToOne());
-		xmlManyToOneEClass.getESuperTypes().add(this.getXmlAttributeMapping());
-		xmlManyToOneImplEClass.getESuperTypes().add(theEclipseLinkOrmPackage.getXmlManyToOneImpl());
-		xmlManyToOneImplEClass.getESuperTypes().add(this.getXmlManyToOne());
-		xmlManyToManyEClass.getESuperTypes().add(theEclipseLinkOrmPackage.getXmlManyToMany());
-		xmlManyToManyEClass.getESuperTypes().add(this.getXmlAttributeMapping());
-		xmlManyToManyImplEClass.getESuperTypes().add(theEclipseLinkOrmPackage.getXmlManyToManyImpl());
-		xmlManyToManyImplEClass.getESuperTypes().add(this.getXmlManyToMany());
-		xmlBasicCollectionEClass.getESuperTypes().add(theEclipseLinkOrmPackage.getXmlBasicCollection());
-		xmlBasicCollectionEClass.getESuperTypes().add(this.getXmlAttributeMapping());
-		xmlBasicCollectionImplEClass.getESuperTypes().add(theEclipseLinkOrmPackage.getXmlBasicCollectionImpl());
-		xmlBasicCollectionImplEClass.getESuperTypes().add(this.getXmlBasicCollection());
-		xmlBasicMapEClass.getESuperTypes().add(theEclipseLinkOrmPackage.getXmlBasicMap());
-		xmlBasicMapEClass.getESuperTypes().add(this.getXmlAttributeMapping());
-		xmlBasicMapImplEClass.getESuperTypes().add(theEclipseLinkOrmPackage.getXmlBasicMapImpl());
-		xmlBasicMapImplEClass.getESuperTypes().add(this.getXmlBasicMap());
-		xmlTransformationEClass.getESuperTypes().add(theEclipseLinkOrmPackage.getXmlTransformation());
-		xmlTransformationEClass.getESuperTypes().add(this.getXmlAttributeMapping());
-		xmlTransformationImplEClass.getESuperTypes().add(theEclipseLinkOrmPackage.getXmlTransformationImpl());
-		xmlTransformationImplEClass.getESuperTypes().add(this.getXmlTransformation());
-		xmlVariableOneToOneEClass.getESuperTypes().add(theEclipseLinkOrmPackage.getXmlVariableOneToOne());
-		xmlVariableOneToOneEClass.getESuperTypes().add(this.getXmlAttributeMapping());
-		xmlVariableOneToOneImplEClass.getESuperTypes().add(theEclipseLinkOrmPackage.getXmlVariableOneToOneImpl());
-		xmlVariableOneToOneImplEClass.getESuperTypes().add(this.getXmlVariableOneToOne());
-		xmlTransientEClass.getESuperTypes().add(theOrmPackage.getXmlTransient());
-		xmlTransientEClass.getESuperTypes().add(this.getXmlAttributeMapping());
-		xmlTransientImplEClass.getESuperTypes().add(theOrmPackage.getXmlTransientImpl());
-		xmlTransientImplEClass.getESuperTypes().add(this.getXmlTransient());
-
-		// Initialize classes and features; add operations and parameters
-		initEClass(xmlEntityMappingsEClass, XmlEntityMappings.class, "XmlEntityMappings", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
-
-		initEClass(xmlAttributeMappingEClass, XmlAttributeMapping.class, "XmlAttributeMapping", IS_ABSTRACT, IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
-		initEAttribute(getXmlAttributeMapping_Access(), theOrmPackage.getAccessType(), "access", "PROPERTY", 0, 1, XmlAttributeMapping.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
-
-		initEClass(xmlIdEClass, XmlId.class, "XmlId", IS_ABSTRACT, IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
-
-		initEClass(xmlIdImplEClass, XmlIdImpl.class, "XmlIdImpl", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
-
-		initEClass(xmlEmbeddedIdEClass, XmlEmbeddedId.class, "XmlEmbeddedId", IS_ABSTRACT, IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
-
-		initEClass(xmlEmbeddedIdImplEClass, XmlEmbeddedIdImpl.class, "XmlEmbeddedIdImpl", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
-
-		initEClass(xmlEmbeddedEClass, XmlEmbedded.class, "XmlEmbedded", IS_ABSTRACT, IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
-
-		initEClass(xmlEmbeddedImplEClass, XmlEmbeddedImpl.class, "XmlEmbeddedImpl", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
-
-		initEClass(xmlBasicEClass, XmlBasic.class, "XmlBasic", IS_ABSTRACT, IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
-		initEReference(getXmlBasic_GeneratedValue(), theOrmPackage.getXmlGeneratedValue(), null, "generatedValue", null, 0, 1, XmlBasic.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
-		initEReference(getXmlBasic_TableGenerator(), theOrmPackage.getXmlTableGenerator(), null, "tableGenerator", null, 0, 1, XmlBasic.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
-		initEReference(getXmlBasic_SequenceGenerator(), theOrmPackage.getXmlSequenceGenerator(), null, "sequenceGenerator", null, 0, 1, XmlBasic.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
-
-		initEClass(xmlBasicImplEClass, XmlBasicImpl.class, "XmlBasicImpl", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
-
-		initEClass(xmlVersionEClass, XmlVersion.class, "XmlVersion", IS_ABSTRACT, IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
-
-		initEClass(xmlVersionImplEClass, XmlVersionImpl.class, "XmlVersionImpl", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
-
-		initEClass(xmlOneToOneEClass, XmlOneToOne.class, "XmlOneToOne", IS_ABSTRACT, IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
-
-		initEClass(xmlOneToOneImplEClass, XmlOneToOneImpl.class, "XmlOneToOneImpl", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
-
-		initEClass(xmlOneToManyEClass, XmlOneToMany.class, "XmlOneToMany", IS_ABSTRACT, IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
-
-		initEClass(xmlOneToManyImplEClass, XmlOneToManyImpl.class, "XmlOneToManyImpl", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
-
-		initEClass(xmlManyToOneEClass, XmlManyToOne.class, "XmlManyToOne", IS_ABSTRACT, IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
-
-		initEClass(xmlManyToOneImplEClass, XmlManyToOneImpl.class, "XmlManyToOneImpl", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
-
-		initEClass(xmlManyToManyEClass, XmlManyToMany.class, "XmlManyToMany", IS_ABSTRACT, IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
-
-		initEClass(xmlManyToManyImplEClass, XmlManyToManyImpl.class, "XmlManyToManyImpl", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
-
-		initEClass(xmlBasicCollectionEClass, XmlBasicCollection.class, "XmlBasicCollection", IS_ABSTRACT, IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
-
-		initEClass(xmlBasicCollectionImplEClass, XmlBasicCollectionImpl.class, "XmlBasicCollectionImpl", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
-
-		initEClass(xmlBasicMapEClass, XmlBasicMap.class, "XmlBasicMap", IS_ABSTRACT, IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
-
-		initEClass(xmlBasicMapImplEClass, XmlBasicMapImpl.class, "XmlBasicMapImpl", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
-
-		initEClass(xmlTransformationEClass, XmlTransformation.class, "XmlTransformation", IS_ABSTRACT, IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
-
-		initEClass(xmlTransformationImplEClass, XmlTransformationImpl.class, "XmlTransformationImpl", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
-
-		initEClass(xmlVariableOneToOneEClass, XmlVariableOneToOne.class, "XmlVariableOneToOne", IS_ABSTRACT, IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
-
-		initEClass(xmlVariableOneToOneImplEClass, XmlVariableOneToOneImpl.class, "XmlVariableOneToOneImpl", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
-
-		initEClass(xmlTransientEClass, XmlTransient.class, "XmlTransient", IS_ABSTRACT, IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
-
-		initEClass(xmlTransientImplEClass, XmlTransientImpl.class, "XmlTransientImpl", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
-
-		// Create resource
-		createResource(eNS_URI);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * Defines literals for the meta objects that represent
-	 * <ul>
-	 *   <li>each class,</li>
-	 *   <li>each feature of each class,</li>
-	 *   <li>each enum,</li>
-	 *   <li>and each data type</li>
-	 * </ul>
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public interface Literals
-	{
-		/**
-		 * The meta object literal for the '{@link org.eclipse.jpt.eclipselink1_1.core.resource.orm.XmlEntityMappings <em>Xml Entity Mappings</em>}' class.
-		 * <!-- begin-user-doc -->
-		 * <!-- end-user-doc -->
-		 * @see org.eclipse.jpt.eclipselink1_1.core.resource.orm.XmlEntityMappings
-		 * @see org.eclipse.jpt.eclipselink1_1.core.resource.orm.EclipseLink1_1OrmPackage#getXmlEntityMappings()
-		 * @generated
-		 */
-		public static final EClass XML_ENTITY_MAPPINGS = eINSTANCE.getXmlEntityMappings();
-
-		/**
-		 * The meta object literal for the '{@link org.eclipse.jpt.eclipselink1_1.core.resource.orm.XmlAttributeMapping <em>Xml Attribute Mapping</em>}' class.
-		 * <!-- begin-user-doc -->
-		 * <!-- end-user-doc -->
-		 * @see org.eclipse.jpt.eclipselink1_1.core.resource.orm.XmlAttributeMapping
-		 * @see org.eclipse.jpt.eclipselink1_1.core.resource.orm.EclipseLink1_1OrmPackage#getXmlAttributeMapping()
-		 * @generated
-		 */
-		public static final EClass XML_ATTRIBUTE_MAPPING = eINSTANCE.getXmlAttributeMapping();
-
-		/**
-		 * The meta object literal for the '<em><b>Access</b></em>' attribute feature.
-		 * <!-- begin-user-doc -->
-		 * <!-- end-user-doc -->
-		 * @generated
-		 */
-		public static final EAttribute XML_ATTRIBUTE_MAPPING__ACCESS = eINSTANCE.getXmlAttributeMapping_Access();
-
-		/**
-		 * The meta object literal for the '{@link org.eclipse.jpt.eclipselink1_1.core.resource.orm.XmlId <em>Xml Id</em>}' class.
-		 * <!-- begin-user-doc -->
-		 * <!-- end-user-doc -->
-		 * @see org.eclipse.jpt.eclipselink1_1.core.resource.orm.XmlId
-		 * @see org.eclipse.jpt.eclipselink1_1.core.resource.orm.EclipseLink1_1OrmPackage#getXmlId()
-		 * @generated
-		 */
-		public static final EClass XML_ID = eINSTANCE.getXmlId();
-
-		/**
-		 * The meta object literal for the '{@link org.eclipse.jpt.eclipselink1_1.core.resource.orm.XmlIdImpl <em>Xml Id Impl</em>}' class.
-		 * <!-- begin-user-doc -->
-		 * <!-- end-user-doc -->
-		 * @see org.eclipse.jpt.eclipselink1_1.core.resource.orm.XmlIdImpl
-		 * @see org.eclipse.jpt.eclipselink1_1.core.resource.orm.EclipseLink1_1OrmPackage#getXmlIdImpl()
-		 * @generated
-		 */
-		public static final EClass XML_ID_IMPL = eINSTANCE.getXmlIdImpl();
-
-		/**
-		 * The meta object literal for the '{@link org.eclipse.jpt.eclipselink1_1.core.resource.orm.XmlEmbeddedId <em>Xml Embedded Id</em>}' class.
-		 * <!-- begin-user-doc -->
-		 * <!-- end-user-doc -->
-		 * @see org.eclipse.jpt.eclipselink1_1.core.resource.orm.XmlEmbeddedId
-		 * @see org.eclipse.jpt.eclipselink1_1.core.resource.orm.EclipseLink1_1OrmPackage#getXmlEmbeddedId()
-		 * @generated
-		 */
-		public static final EClass XML_EMBEDDED_ID = eINSTANCE.getXmlEmbeddedId();
-
-		/**
-		 * The meta object literal for the '{@link org.eclipse.jpt.eclipselink1_1.core.resource.orm.XmlEmbeddedIdImpl <em>Xml Embedded Id Impl</em>}' class.
-		 * <!-- begin-user-doc -->
-		 * <!-- end-user-doc -->
-		 * @see org.eclipse.jpt.eclipselink1_1.core.resource.orm.XmlEmbeddedIdImpl
-		 * @see org.eclipse.jpt.eclipselink1_1.core.resource.orm.EclipseLink1_1OrmPackage#getXmlEmbeddedIdImpl()
-		 * @generated
-		 */
-		public static final EClass XML_EMBEDDED_ID_IMPL = eINSTANCE.getXmlEmbeddedIdImpl();
-
-		/**
-		 * The meta object literal for the '{@link org.eclipse.jpt.eclipselink1_1.core.resource.orm.XmlEmbedded <em>Xml Embedded</em>}' class.
-		 * <!-- begin-user-doc -->
-		 * <!-- end-user-doc -->
-		 * @see org.eclipse.jpt.eclipselink1_1.core.resource.orm.XmlEmbedded
-		 * @see org.eclipse.jpt.eclipselink1_1.core.resource.orm.EclipseLink1_1OrmPackage#getXmlEmbedded()
-		 * @generated
-		 */
-		public static final EClass XML_EMBEDDED = eINSTANCE.getXmlEmbedded();
-
-		/**
-		 * The meta object literal for the '{@link org.eclipse.jpt.eclipselink1_1.core.resource.orm.XmlEmbeddedImpl <em>Xml Embedded Impl</em>}' class.
-		 * <!-- begin-user-doc -->
-		 * <!-- end-user-doc -->
-		 * @see org.eclipse.jpt.eclipselink1_1.core.resource.orm.XmlEmbeddedImpl
-		 * @see org.eclipse.jpt.eclipselink1_1.core.resource.orm.EclipseLink1_1OrmPackage#getXmlEmbeddedImpl()
-		 * @generated
-		 */
-		public static final EClass XML_EMBEDDED_IMPL = eINSTANCE.getXmlEmbeddedImpl();
-
-		/**
-		 * The meta object literal for the '{@link org.eclipse.jpt.eclipselink1_1.core.resource.orm.XmlBasic <em>Xml Basic</em>}' class.
-		 * <!-- begin-user-doc -->
-		 * <!-- end-user-doc -->
-		 * @see org.eclipse.jpt.eclipselink1_1.core.resource.orm.XmlBasic
-		 * @see org.eclipse.jpt.eclipselink1_1.core.resource.orm.EclipseLink1_1OrmPackage#getXmlBasic()
-		 * @generated
-		 */
-		public static final EClass XML_BASIC = eINSTANCE.getXmlBasic();
-
-		/**
-		 * The meta object literal for the '<em><b>Generated Value</b></em>' containment reference feature.
-		 * <!-- begin-user-doc -->
-		 * <!-- end-user-doc -->
-		 * @generated
-		 */
-		public static final EReference XML_BASIC__GENERATED_VALUE = eINSTANCE.getXmlBasic_GeneratedValue();
-
-		/**
-		 * The meta object literal for the '<em><b>Table Generator</b></em>' containment reference feature.
-		 * <!-- begin-user-doc -->
-		 * <!-- end-user-doc -->
-		 * @generated
-		 */
-		public static final EReference XML_BASIC__TABLE_GENERATOR = eINSTANCE.getXmlBasic_TableGenerator();
-
-		/**
-		 * The meta object literal for the '<em><b>Sequence Generator</b></em>' containment reference feature.
-		 * <!-- begin-user-doc -->
-		 * <!-- end-user-doc -->
-		 * @generated
-		 */
-		public static final EReference XML_BASIC__SEQUENCE_GENERATOR = eINSTANCE.getXmlBasic_SequenceGenerator();
-
-		/**
-		 * The meta object literal for the '{@link org.eclipse.jpt.eclipselink1_1.core.resource.orm.XmlBasicImpl <em>Xml Basic Impl</em>}' class.
-		 * <!-- begin-user-doc -->
-		 * <!-- end-user-doc -->
-		 * @see org.eclipse.jpt.eclipselink1_1.core.resource.orm.XmlBasicImpl
-		 * @see org.eclipse.jpt.eclipselink1_1.core.resource.orm.EclipseLink1_1OrmPackage#getXmlBasicImpl()
-		 * @generated
-		 */
-		public static final EClass XML_BASIC_IMPL = eINSTANCE.getXmlBasicImpl();
-
-		/**
-		 * The meta object literal for the '{@link org.eclipse.jpt.eclipselink1_1.core.resource.orm.XmlVersion <em>Xml Version</em>}' class.
-		 * <!-- begin-user-doc -->
-		 * <!-- end-user-doc -->
-		 * @see org.eclipse.jpt.eclipselink1_1.core.resource.orm.XmlVersion
-		 * @see org.eclipse.jpt.eclipselink1_1.core.resource.orm.EclipseLink1_1OrmPackage#getXmlVersion()
-		 * @generated
-		 */
-		public static final EClass XML_VERSION = eINSTANCE.getXmlVersion();
-
-		/**
-		 * The meta object literal for the '{@link org.eclipse.jpt.eclipselink1_1.core.resource.orm.XmlVersionImpl <em>Xml Version Impl</em>}' class.
-		 * <!-- begin-user-doc -->
-		 * <!-- end-user-doc -->
-		 * @see org.eclipse.jpt.eclipselink1_1.core.resource.orm.XmlVersionImpl
-		 * @see org.eclipse.jpt.eclipselink1_1.core.resource.orm.EclipseLink1_1OrmPackage#getXmlVersionImpl()
-		 * @generated
-		 */
-		public static final EClass XML_VERSION_IMPL = eINSTANCE.getXmlVersionImpl();
-
-		/**
-		 * The meta object literal for the '{@link org.eclipse.jpt.eclipselink1_1.core.resource.orm.XmlOneToOne <em>Xml One To One</em>}' class.
-		 * <!-- begin-user-doc -->
-		 * <!-- end-user-doc -->
-		 * @see org.eclipse.jpt.eclipselink1_1.core.resource.orm.XmlOneToOne
-		 * @see org.eclipse.jpt.eclipselink1_1.core.resource.orm.EclipseLink1_1OrmPackage#getXmlOneToOne()
-		 * @generated
-		 */
-		public static final EClass XML_ONE_TO_ONE = eINSTANCE.getXmlOneToOne();
-
-		/**
-		 * The meta object literal for the '{@link org.eclipse.jpt.eclipselink1_1.core.resource.orm.XmlOneToOneImpl <em>Xml One To One Impl</em>}' class.
-		 * <!-- begin-user-doc -->
-		 * <!-- end-user-doc -->
-		 * @see org.eclipse.jpt.eclipselink1_1.core.resource.orm.XmlOneToOneImpl
-		 * @see org.eclipse.jpt.eclipselink1_1.core.resource.orm.EclipseLink1_1OrmPackage#getXmlOneToOneImpl()
-		 * @generated
-		 */
-		public static final EClass XML_ONE_TO_ONE_IMPL = eINSTANCE.getXmlOneToOneImpl();
-
-		/**
-		 * The meta object literal for the '{@link org.eclipse.jpt.eclipselink1_1.core.resource.orm.XmlOneToMany <em>Xml One To Many</em>}' class.
-		 * <!-- begin-user-doc -->
-		 * <!-- end-user-doc -->
-		 * @see org.eclipse.jpt.eclipselink1_1.core.resource.orm.XmlOneToMany
-		 * @see org.eclipse.jpt.eclipselink1_1.core.resource.orm.EclipseLink1_1OrmPackage#getXmlOneToMany()
-		 * @generated
-		 */
-		public static final EClass XML_ONE_TO_MANY = eINSTANCE.getXmlOneToMany();
-
-		/**
-		 * The meta object literal for the '{@link org.eclipse.jpt.eclipselink1_1.core.resource.orm.XmlOneToManyImpl <em>Xml One To Many Impl</em>}' class.
-		 * <!-- begin-user-doc -->
-		 * <!-- end-user-doc -->
-		 * @see org.eclipse.jpt.eclipselink1_1.core.resource.orm.XmlOneToManyImpl
-		 * @see org.eclipse.jpt.eclipselink1_1.core.resource.orm.EclipseLink1_1OrmPackage#getXmlOneToManyImpl()
-		 * @generated
-		 */
-		public static final EClass XML_ONE_TO_MANY_IMPL = eINSTANCE.getXmlOneToManyImpl();
-
-		/**
-		 * The meta object literal for the '{@link org.eclipse.jpt.eclipselink1_1.core.resource.orm.XmlManyToOne <em>Xml Many To One</em>}' class.
-		 * <!-- begin-user-doc -->
-		 * <!-- end-user-doc -->
-		 * @see org.eclipse.jpt.eclipselink1_1.core.resource.orm.XmlManyToOne
-		 * @see org.eclipse.jpt.eclipselink1_1.core.resource.orm.EclipseLink1_1OrmPackage#getXmlManyToOne()
-		 * @generated
-		 */
-		public static final EClass XML_MANY_TO_ONE = eINSTANCE.getXmlManyToOne();
-
-		/**
-		 * The meta object literal for the '{@link org.eclipse.jpt.eclipselink1_1.core.resource.orm.XmlManyToOneImpl <em>Xml Many To One Impl</em>}' class.
-		 * <!-- begin-user-doc -->
-		 * <!-- end-user-doc -->
-		 * @see org.eclipse.jpt.eclipselink1_1.core.resource.orm.XmlManyToOneImpl
-		 * @see org.eclipse.jpt.eclipselink1_1.core.resource.orm.EclipseLink1_1OrmPackage#getXmlManyToOneImpl()
-		 * @generated
-		 */
-		public static final EClass XML_MANY_TO_ONE_IMPL = eINSTANCE.getXmlManyToOneImpl();
-
-		/**
-		 * The meta object literal for the '{@link org.eclipse.jpt.eclipselink1_1.core.resource.orm.XmlManyToMany <em>Xml Many To Many</em>}' class.
-		 * <!-- begin-user-doc -->
-		 * <!-- end-user-doc -->
-		 * @see org.eclipse.jpt.eclipselink1_1.core.resource.orm.XmlManyToMany
-		 * @see org.eclipse.jpt.eclipselink1_1.core.resource.orm.EclipseLink1_1OrmPackage#getXmlManyToMany()
-		 * @generated
-		 */
-		public static final EClass XML_MANY_TO_MANY = eINSTANCE.getXmlManyToMany();
-
-		/**
-		 * The meta object literal for the '{@link org.eclipse.jpt.eclipselink1_1.core.resource.orm.XmlManyToManyImpl <em>Xml Many To Many Impl</em>}' class.
-		 * <!-- begin-user-doc -->
-		 * <!-- end-user-doc -->
-		 * @see org.eclipse.jpt.eclipselink1_1.core.resource.orm.XmlManyToManyImpl
-		 * @see org.eclipse.jpt.eclipselink1_1.core.resource.orm.EclipseLink1_1OrmPackage#getXmlManyToManyImpl()
-		 * @generated
-		 */
-		public static final EClass XML_MANY_TO_MANY_IMPL = eINSTANCE.getXmlManyToManyImpl();
-
-		/**
-		 * The meta object literal for the '{@link org.eclipse.jpt.eclipselink1_1.core.resource.orm.XmlBasicCollection <em>Xml Basic Collection</em>}' class.
-		 * <!-- begin-user-doc -->
-		 * <!-- end-user-doc -->
-		 * @see org.eclipse.jpt.eclipselink1_1.core.resource.orm.XmlBasicCollection
-		 * @see org.eclipse.jpt.eclipselink1_1.core.resource.orm.EclipseLink1_1OrmPackage#getXmlBasicCollection()
-		 * @generated
-		 */
-		public static final EClass XML_BASIC_COLLECTION = eINSTANCE.getXmlBasicCollection();
-
-		/**
-		 * The meta object literal for the '{@link org.eclipse.jpt.eclipselink1_1.core.resource.orm.XmlBasicCollectionImpl <em>Xml Basic Collection Impl</em>}' class.
-		 * <!-- begin-user-doc -->
-		 * <!-- end-user-doc -->
-		 * @see org.eclipse.jpt.eclipselink1_1.core.resource.orm.XmlBasicCollectionImpl
-		 * @see org.eclipse.jpt.eclipselink1_1.core.resource.orm.EclipseLink1_1OrmPackage#getXmlBasicCollectionImpl()
-		 * @generated
-		 */
-		public static final EClass XML_BASIC_COLLECTION_IMPL = eINSTANCE.getXmlBasicCollectionImpl();
-
-		/**
-		 * The meta object literal for the '{@link org.eclipse.jpt.eclipselink1_1.core.resource.orm.XmlBasicMap <em>Xml Basic Map</em>}' class.
-		 * <!-- begin-user-doc -->
-		 * <!-- end-user-doc -->
-		 * @see org.eclipse.jpt.eclipselink1_1.core.resource.orm.XmlBasicMap
-		 * @see org.eclipse.jpt.eclipselink1_1.core.resource.orm.EclipseLink1_1OrmPackage#getXmlBasicMap()
-		 * @generated
-		 */
-		public static final EClass XML_BASIC_MAP = eINSTANCE.getXmlBasicMap();
-
-		/**
-		 * The meta object literal for the '{@link org.eclipse.jpt.eclipselink1_1.core.resource.orm.XmlBasicMapImpl <em>Xml Basic Map Impl</em>}' class.
-		 * <!-- begin-user-doc -->
-		 * <!-- end-user-doc -->
-		 * @see org.eclipse.jpt.eclipselink1_1.core.resource.orm.XmlBasicMapImpl
-		 * @see org.eclipse.jpt.eclipselink1_1.core.resource.orm.EclipseLink1_1OrmPackage#getXmlBasicMapImpl()
-		 * @generated
-		 */
-		public static final EClass XML_BASIC_MAP_IMPL = eINSTANCE.getXmlBasicMapImpl();
-
-		/**
-		 * The meta object literal for the '{@link org.eclipse.jpt.eclipselink1_1.core.resource.orm.XmlTransformation <em>Xml Transformation</em>}' class.
-		 * <!-- begin-user-doc -->
-		 * <!-- end-user-doc -->
-		 * @see org.eclipse.jpt.eclipselink1_1.core.resource.orm.XmlTransformation
-		 * @see org.eclipse.jpt.eclipselink1_1.core.resource.orm.EclipseLink1_1OrmPackage#getXmlTransformation()
-		 * @generated
-		 */
-		public static final EClass XML_TRANSFORMATION = eINSTANCE.getXmlTransformation();
-
-		/**
-		 * The meta object literal for the '{@link org.eclipse.jpt.eclipselink1_1.core.resource.orm.XmlTransformationImpl <em>Xml Transformation Impl</em>}' class.
-		 * <!-- begin-user-doc -->
-		 * <!-- end-user-doc -->
-		 * @see org.eclipse.jpt.eclipselink1_1.core.resource.orm.XmlTransformationImpl
-		 * @see org.eclipse.jpt.eclipselink1_1.core.resource.orm.EclipseLink1_1OrmPackage#getXmlTransformationImpl()
-		 * @generated
-		 */
-		public static final EClass XML_TRANSFORMATION_IMPL = eINSTANCE.getXmlTransformationImpl();
-
-		/**
-		 * The meta object literal for the '{@link org.eclipse.jpt.eclipselink1_1.core.resource.orm.XmlVariableOneToOne <em>Xml Variable One To One</em>}' class.
-		 * <!-- begin-user-doc -->
-		 * <!-- end-user-doc -->
-		 * @see org.eclipse.jpt.eclipselink1_1.core.resource.orm.XmlVariableOneToOne
-		 * @see org.eclipse.jpt.eclipselink1_1.core.resource.orm.EclipseLink1_1OrmPackage#getXmlVariableOneToOne()
-		 * @generated
-		 */
-		public static final EClass XML_VARIABLE_ONE_TO_ONE = eINSTANCE.getXmlVariableOneToOne();
-
-		/**
-		 * The meta object literal for the '{@link org.eclipse.jpt.eclipselink1_1.core.resource.orm.XmlVariableOneToOneImpl <em>Xml Variable One To One Impl</em>}' class.
-		 * <!-- begin-user-doc -->
-		 * <!-- end-user-doc -->
-		 * @see org.eclipse.jpt.eclipselink1_1.core.resource.orm.XmlVariableOneToOneImpl
-		 * @see org.eclipse.jpt.eclipselink1_1.core.resource.orm.EclipseLink1_1OrmPackage#getXmlVariableOneToOneImpl()
-		 * @generated
-		 */
-		public static final EClass XML_VARIABLE_ONE_TO_ONE_IMPL = eINSTANCE.getXmlVariableOneToOneImpl();
-
-		/**
-		 * The meta object literal for the '{@link org.eclipse.jpt.eclipselink1_1.core.resource.orm.XmlTransient <em>Xml Transient</em>}' class.
-		 * <!-- begin-user-doc -->
-		 * <!-- end-user-doc -->
-		 * @see org.eclipse.jpt.eclipselink1_1.core.resource.orm.XmlTransient
-		 * @see org.eclipse.jpt.eclipselink1_1.core.resource.orm.EclipseLink1_1OrmPackage#getXmlTransient()
-		 * @generated
-		 */
-		public static final EClass XML_TRANSIENT = eINSTANCE.getXmlTransient();
-
-		/**
-		 * The meta object literal for the '{@link org.eclipse.jpt.eclipselink1_1.core.resource.orm.XmlTransientImpl <em>Xml Transient Impl</em>}' class.
-		 * <!-- begin-user-doc -->
-		 * <!-- end-user-doc -->
-		 * @see org.eclipse.jpt.eclipselink1_1.core.resource.orm.XmlTransientImpl
-		 * @see org.eclipse.jpt.eclipselink1_1.core.resource.orm.EclipseLink1_1OrmPackage#getXmlTransientImpl()
-		 * @generated
-		 */
-		public static final EClass XML_TRANSIENT_IMPL = eINSTANCE.getXmlTransientImpl();
-
-	}
-
-} //EclipseLink1_1OrmPackage
diff --git a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink1_1/core/resource/orm/EclipseLink1_1OrmXmlResourceFactory.java b/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink1_1/core/resource/orm/EclipseLink1_1OrmXmlResourceFactory.java
deleted file mode 100644
index 3ab8bef..0000000
--- a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink1_1/core/resource/orm/EclipseLink1_1OrmXmlResourceFactory.java
+++ /dev/null
@@ -1,53 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- *******************************************************************************/
-package org.eclipse.jpt.eclipselink1_1.core.resource.orm;
-
-import org.eclipse.emf.common.util.URI;
-import org.eclipse.jpt.core.resource.xml.JpaXmlResource;
-import org.eclipse.jpt.eclipselink.core.internal.JptEclipseLinkCorePlugin;
-import org.eclipse.jpt.eclipselink1_1.core.internal.resource.orm.translators.EclipseLinkEntityMappingsTranslator;
-import org.eclipse.wst.common.internal.emf.resource.Renderer;
-import org.eclipse.wst.common.internal.emf.resource.RendererFactory;
-import org.eclipse.wst.common.internal.emf.resource.TranslatorResource;
-import org.eclipse.wst.common.internal.emf.resource.TranslatorResourceFactory;
-
-/**
- * Provisional API: This interface is part of an interim API that is still
- * under development and expected to change significantly before reaching
- * stability. It is available at this early stage to solicit feedback from
- * pioneering adopters on the understanding that any code that uses this API
- * will almost certainly be broken (repeatedly) as the API evolves.
- * 
- * @version 2.1
- * @since 2.1
- */
-public class EclipseLink1_1OrmXmlResourceFactory extends TranslatorResourceFactory
-{
-	public EclipseLink1_1OrmXmlResourceFactory() {
-		this(RendererFactory.getDefaultRendererFactory());
-	}
-	
-	public EclipseLink1_1OrmXmlResourceFactory(RendererFactory aRendererFactory) {
-		super(aRendererFactory);
-	}
-	
-	public EclipseLink1_1OrmXmlResourceFactory(RendererFactory aRendererFactory, boolean listeningForUpdates) {
-		super(aRendererFactory, listeningForUpdates);
-	}
-	
-	
-	/**
-	 * @see TranslatorResourceFactory#createResource(URI, Renderer)
-	 */
-	@Override
-	protected TranslatorResource createResource(URI uri, Renderer renderer) {
-		return new JpaXmlResource(uri, renderer, JptEclipseLinkCorePlugin.ECLIPSELINK1_1_ORM_XML_CONTENT_TYPE, EclipseLinkEntityMappingsTranslator.INSTANCE);
-	}
-}
diff --git a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink1_1/core/resource/orm/XmlAttributeMapping.java b/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink1_1/core/resource/orm/XmlAttributeMapping.java
deleted file mode 100644
index 9c199ab..0000000
--- a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink1_1/core/resource/orm/XmlAttributeMapping.java
+++ /dev/null
@@ -1,62 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- *******************************************************************************/
-package org.eclipse.jpt.eclipselink1_1.core.resource.orm;
-
-import org.eclipse.jpt.core.resource.orm.AccessType;
-
-/**
- * <!-- begin-user-doc -->
- * A representation of the model object '<em><b>Xml Attribute Mapping</b></em>'.
- * <!-- end-user-doc -->
- *
- * <p>
- * The following features are supported:
- * <ul>
- *   <li>{@link org.eclipse.jpt.eclipselink1_1.core.resource.orm.XmlAttributeMapping#getAccess <em>Access</em>}</li>
- * </ul>
- * </p>
- *
- * @see org.eclipse.jpt.eclipselink1_1.core.resource.orm.EclipseLink1_1OrmPackage#getXmlAttributeMapping()
- * @model kind="class" interface="true" abstract="true"
- * @generated
- */
-public interface XmlAttributeMapping extends org.eclipse.jpt.core.resource.orm.XmlAttributeMapping
-{
-	/**
-	 * Returns the value of the '<em><b>Access</b></em>' attribute.
-	 * The default value is <code>"PROPERTY"</code>.
-	 * The literals are from the enumeration {@link org.eclipse.jpt.core.resource.orm.AccessType}.
-	 * <!-- begin-user-doc -->
-	 * <p>
-	 * If the meaning of the '<em>Access</em>' attribute isn't clear,
-	 * there really should be more of a description here...
-	 * </p>
-	 * <!-- end-user-doc -->
-	 * @return the value of the '<em>Access</em>' attribute.
-	 * @see org.eclipse.jpt.core.resource.orm.AccessType
-	 * @see #setAccess(AccessType)
-	 * @see org.eclipse.jpt.eclipselink1_1.core.resource.orm.EclipseLink1_1OrmPackage#getXmlAttributeMapping_Access()
-	 * @model default="PROPERTY"
-	 * @generated
-	 */
-	AccessType getAccess();
-
-	/**
-	 * Sets the value of the '{@link org.eclipse.jpt.eclipselink1_1.core.resource.orm.XmlAttributeMapping#getAccess <em>Access</em>}' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @param value the new value of the '<em>Access</em>' attribute.
-	 * @see org.eclipse.jpt.core.resource.orm.AccessType
-	 * @see #getAccess()
-	 * @generated
-	 */
-	void setAccess(AccessType value);
-
-} // XmlAttributeMapping
diff --git a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink1_1/core/resource/orm/XmlBasic.java b/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink1_1/core/resource/orm/XmlBasic.java
deleted file mode 100644
index 555a155..0000000
--- a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink1_1/core/resource/orm/XmlBasic.java
+++ /dev/null
@@ -1,115 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- *******************************************************************************/
-package org.eclipse.jpt.eclipselink1_1.core.resource.orm;
-
-import org.eclipse.jpt.core.resource.orm.XmlGeneratedValue;
-import org.eclipse.jpt.core.resource.orm.XmlSequenceGenerator;
-import org.eclipse.jpt.core.resource.orm.XmlTableGenerator;
-
-
-/**
- * <!-- begin-user-doc -->
- * A representation of the model object '<em><b>Xml Basic</b></em>'.
- * <!-- end-user-doc -->
- *
- * <p>
- * The following features are supported:
- * <ul>
- *   <li>{@link org.eclipse.jpt.eclipselink1_1.core.resource.orm.XmlBasic#getGeneratedValue <em>Generated Value</em>}</li>
- *   <li>{@link org.eclipse.jpt.eclipselink1_1.core.resource.orm.XmlBasic#getTableGenerator <em>Table Generator</em>}</li>
- *   <li>{@link org.eclipse.jpt.eclipselink1_1.core.resource.orm.XmlBasic#getSequenceGenerator <em>Sequence Generator</em>}</li>
- * </ul>
- * </p>
- *
- * @see org.eclipse.jpt.eclipselink1_1.core.resource.orm.EclipseLink1_1OrmPackage#getXmlBasic()
- * @model kind="class" interface="true" abstract="true"
- * @generated
- */
-public interface XmlBasic extends org.eclipse.jpt.eclipselink.core.resource.orm.XmlBasic, XmlAttributeMapping
-{
-
-	/**
-	 * Returns the value of the '<em><b>Generated Value</b></em>' containment reference.
-	 * <!-- begin-user-doc -->
-	 * <p>
-	 * If the meaning of the '<em>Generated Value</em>' containment reference isn't clear,
-	 * there really should be more of a description here...
-	 * </p>
-	 * <!-- end-user-doc -->
-	 * @return the value of the '<em>Generated Value</em>' containment reference.
-	 * @see #setGeneratedValue(XmlGeneratedValue)
-	 * @see org.eclipse.jpt.eclipselink1_1.core.resource.orm.EclipseLink1_1OrmPackage#getXmlBasic_GeneratedValue()
-	 * @model containment="true"
-	 * @generated
-	 */
-	XmlGeneratedValue getGeneratedValue();
-
-	/**
-	 * Sets the value of the '{@link org.eclipse.jpt.eclipselink1_1.core.resource.orm.XmlBasic#getGeneratedValue <em>Generated Value</em>}' containment reference.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @param value the new value of the '<em>Generated Value</em>' containment reference.
-	 * @see #getGeneratedValue()
-	 * @generated
-	 */
-	void setGeneratedValue(XmlGeneratedValue value);
-
-	/**
-	 * Returns the value of the '<em><b>Table Generator</b></em>' containment reference.
-	 * <!-- begin-user-doc -->
-	 * <p>
-	 * If the meaning of the '<em>Table Generator</em>' containment reference isn't clear,
-	 * there really should be more of a description here...
-	 * </p>
-	 * <!-- end-user-doc -->
-	 * @return the value of the '<em>Table Generator</em>' containment reference.
-	 * @see #setTableGenerator(XmlTableGenerator)
-	 * @see org.eclipse.jpt.eclipselink1_1.core.resource.orm.EclipseLink1_1OrmPackage#getXmlBasic_TableGenerator()
-	 * @model containment="true"
-	 * @generated
-	 */
-	XmlTableGenerator getTableGenerator();
-
-	/**
-	 * Sets the value of the '{@link org.eclipse.jpt.eclipselink1_1.core.resource.orm.XmlBasic#getTableGenerator <em>Table Generator</em>}' containment reference.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @param value the new value of the '<em>Table Generator</em>' containment reference.
-	 * @see #getTableGenerator()
-	 * @generated
-	 */
-	void setTableGenerator(XmlTableGenerator value);
-
-	/**
-	 * Returns the value of the '<em><b>Sequence Generator</b></em>' containment reference.
-	 * <!-- begin-user-doc -->
-	 * <p>
-	 * If the meaning of the '<em>Sequence Generator</em>' containment reference isn't clear,
-	 * there really should be more of a description here...
-	 * </p>
-	 * <!-- end-user-doc -->
-	 * @return the value of the '<em>Sequence Generator</em>' containment reference.
-	 * @see #setSequenceGenerator(XmlSequenceGenerator)
-	 * @see org.eclipse.jpt.eclipselink1_1.core.resource.orm.EclipseLink1_1OrmPackage#getXmlBasic_SequenceGenerator()
-	 * @model containment="true"
-	 * @generated
-	 */
-	XmlSequenceGenerator getSequenceGenerator();
-
-	/**
-	 * Sets the value of the '{@link org.eclipse.jpt.eclipselink1_1.core.resource.orm.XmlBasic#getSequenceGenerator <em>Sequence Generator</em>}' containment reference.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @param value the new value of the '<em>Sequence Generator</em>' containment reference.
-	 * @see #getSequenceGenerator()
-	 * @generated
-	 */
-	void setSequenceGenerator(XmlSequenceGenerator value);
-} // XmlBasic
diff --git a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink1_1/core/resource/orm/XmlBasicCollection.java b/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink1_1/core/resource/orm/XmlBasicCollection.java
deleted file mode 100644
index 197bb00..0000000
--- a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink1_1/core/resource/orm/XmlBasicCollection.java
+++ /dev/null
@@ -1,25 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- *******************************************************************************/
-package org.eclipse.jpt.eclipselink1_1.core.resource.orm;
-
-
-/**
- * <!-- begin-user-doc -->
- * A representation of the model object '<em><b>Xml Basic Collection</b></em>'.
- * <!-- end-user-doc -->
- *
- *
- * @see org.eclipse.jpt.eclipselink1_1.core.resource.orm.EclipseLink1_1OrmPackage#getXmlBasicCollection()
- * @model kind="class" interface="true" abstract="true"
- * @generated
- */
-public interface XmlBasicCollection extends org.eclipse.jpt.eclipselink.core.resource.orm.XmlBasicCollection, XmlAttributeMapping
-{
-} // XmlBasicCollection
diff --git a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink1_1/core/resource/orm/XmlBasicCollectionImpl.java b/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink1_1/core/resource/orm/XmlBasicCollectionImpl.java
deleted file mode 100644
index 011d414..0000000
--- a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink1_1/core/resource/orm/XmlBasicCollectionImpl.java
+++ /dev/null
@@ -1,243 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- *******************************************************************************/
-package org.eclipse.jpt.eclipselink1_1.core.resource.orm;
-
-import org.eclipse.emf.common.notify.Notification;
-
-import org.eclipse.emf.ecore.EClass;
-
-import org.eclipse.emf.ecore.impl.ENotificationImpl;
-
-import org.eclipse.jpt.core.resource.orm.AccessType;
-
-/**
- * <!-- begin-user-doc -->
- * A representation of the model object '<em><b>Xml Basic Collection Impl</b></em>'.
- * <!-- end-user-doc -->
- *
- *
- * @see org.eclipse.jpt.eclipselink1_1.core.resource.orm.EclipseLink1_1OrmPackage#getXmlBasicCollectionImpl()
- * @model kind="class"
- * @generated
- */
-public class XmlBasicCollectionImpl extends org.eclipse.jpt.eclipselink.core.resource.orm.XmlBasicCollectionImpl implements XmlBasicCollection
-{
-	/**
-	 * changed this to null and removed the generated flag so emf won't generate over it
-	 * we don't want a default for enums, just null if the tag does not exist
-	 */
-	protected static final AccessType ACCESS_EDEFAULT = null;
-
-	/**
-	 * The cached value of the '{@link #getAccess() <em>Access</em>}' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see #getAccess()
-	 * @generated
-	 * @ordered
-	 */
-	protected AccessType access = ACCESS_EDEFAULT;
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	protected XmlBasicCollectionImpl()
-	{
-		super();
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	protected EClass eStaticClass()
-	{
-		return EclipseLink1_1OrmPackage.Literals.XML_BASIC_COLLECTION_IMPL;
-	}
-
-	/**
-	 * Returns the value of the '<em><b>Access</b></em>' attribute.
-	 * The default value is <code>"PROPERTY"</code>.
-	 * The literals are from the enumeration {@link org.eclipse.jpt.core.resource.orm.AccessType}.
-	 * <!-- begin-user-doc -->
-	 * <p>
-	 * If the meaning of the '<em>Access</em>' attribute isn't clear,
-	 * there really should be more of a description here...
-	 * </p>
-	 * <!-- end-user-doc -->
-	 * @return the value of the '<em>Access</em>' attribute.
-	 * @see org.eclipse.jpt.core.resource.orm.AccessType
-	 * @see #setAccess(AccessType)
-	 * @see org.eclipse.jpt.eclipselink1_1.core.resource.orm.EclipseLink1_1OrmPackage#getXmlAttributeMapping_Access()
-	 * @model default="PROPERTY"
-	 * @generated
-	 */
-	public AccessType getAccess()
-	{
-		return access;
-	}
-
-	/**
-	 * Sets the value of the '{@link org.eclipse.jpt.eclipselink1_1.core.resource.orm.XmlBasicCollectionImpl#getAccess <em>Access</em>}' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @param value the new value of the '<em>Access</em>' attribute.
-	 * @see org.eclipse.jpt.core.resource.orm.AccessType
-	 * @see #getAccess()
-	 * @generated
-	 */
-	public void setAccess(AccessType newAccess)
-	{
-		AccessType oldAccess = access;
-		access = newAccess == null ? ACCESS_EDEFAULT : newAccess;
-		if (eNotificationRequired())
-			eNotify(new ENotificationImpl(this, Notification.SET, EclipseLink1_1OrmPackage.XML_BASIC_COLLECTION_IMPL__ACCESS, oldAccess, access));
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public Object eGet(int featureID, boolean resolve, boolean coreType)
-	{
-		switch (featureID)
-		{
-			case EclipseLink1_1OrmPackage.XML_BASIC_COLLECTION_IMPL__ACCESS:
-				return getAccess();
-		}
-		return super.eGet(featureID, resolve, coreType);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public void eSet(int featureID, Object newValue)
-	{
-		switch (featureID)
-		{
-			case EclipseLink1_1OrmPackage.XML_BASIC_COLLECTION_IMPL__ACCESS:
-				setAccess((AccessType)newValue);
-				return;
-		}
-		super.eSet(featureID, newValue);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public void eUnset(int featureID)
-	{
-		switch (featureID)
-		{
-			case EclipseLink1_1OrmPackage.XML_BASIC_COLLECTION_IMPL__ACCESS:
-				setAccess(ACCESS_EDEFAULT);
-				return;
-		}
-		super.eUnset(featureID);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public boolean eIsSet(int featureID)
-	{
-		switch (featureID)
-		{
-			case EclipseLink1_1OrmPackage.XML_BASIC_COLLECTION_IMPL__ACCESS:
-				return access != ACCESS_EDEFAULT;
-		}
-		return super.eIsSet(featureID);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public int eBaseStructuralFeatureID(int derivedFeatureID, Class<?> baseClass)
-	{
-		if (baseClass == XmlAttributeMapping.class)
-		{
-			switch (derivedFeatureID)
-			{
-				case EclipseLink1_1OrmPackage.XML_BASIC_COLLECTION_IMPL__ACCESS: return EclipseLink1_1OrmPackage.XML_ATTRIBUTE_MAPPING__ACCESS;
-				default: return -1;
-			}
-		}
-		if (baseClass == XmlBasicCollection.class)
-		{
-			switch (derivedFeatureID)
-			{
-				default: return -1;
-			}
-		}
-		return super.eBaseStructuralFeatureID(derivedFeatureID, baseClass);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public int eDerivedStructuralFeatureID(int baseFeatureID, Class<?> baseClass)
-	{
-		if (baseClass == XmlAttributeMapping.class)
-		{
-			switch (baseFeatureID)
-			{
-				case EclipseLink1_1OrmPackage.XML_ATTRIBUTE_MAPPING__ACCESS: return EclipseLink1_1OrmPackage.XML_BASIC_COLLECTION_IMPL__ACCESS;
-				default: return -1;
-			}
-		}
-		if (baseClass == XmlBasicCollection.class)
-		{
-			switch (baseFeatureID)
-			{
-				default: return -1;
-			}
-		}
-		return super.eDerivedStructuralFeatureID(baseFeatureID, baseClass);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public String toString()
-	{
-		if (eIsProxy()) return super.toString();
-
-		StringBuffer result = new StringBuffer(super.toString());
-		result.append(" (access: ");
-		result.append(access);
-		result.append(')');
-		return result.toString();
-	}
-
-} // XmlBasicCollectionImpl
diff --git a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink1_1/core/resource/orm/XmlBasicImpl.java b/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink1_1/core/resource/orm/XmlBasicImpl.java
deleted file mode 100644
index 1e5fc37..0000000
--- a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink1_1/core/resource/orm/XmlBasicImpl.java
+++ /dev/null
@@ -1,514 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- *******************************************************************************/
-package org.eclipse.jpt.eclipselink1_1.core.resource.orm;
-
-import org.eclipse.emf.common.notify.Notification;
-
-import org.eclipse.emf.common.notify.NotificationChain;
-import org.eclipse.emf.ecore.EClass;
-
-import org.eclipse.emf.ecore.InternalEObject;
-import org.eclipse.emf.ecore.impl.ENotificationImpl;
-
-import org.eclipse.jpt.core.resource.orm.AccessType;
-import org.eclipse.jpt.core.resource.orm.XmlGeneratedValue;
-import org.eclipse.jpt.core.resource.orm.XmlSequenceGenerator;
-import org.eclipse.jpt.core.resource.orm.XmlTableGenerator;
-
-/**
- * <!-- begin-user-doc -->
- * A representation of the model object '<em><b>Xml Basic Impl</b></em>'.
- * <!-- end-user-doc -->
- *
- *
- * @see org.eclipse.jpt.eclipselink1_1.core.resource.orm.EclipseLink1_1OrmPackage#getXmlBasicImpl()
- * @model kind="class"
- * @generated
- */
-public class XmlBasicImpl extends org.eclipse.jpt.eclipselink.core.resource.orm.XmlBasicImpl implements XmlBasic
-{
-	/**
-	 * changed this to null and removed the generated flag so emf won't generate over it
-	 * we don't want a default for enums, just null if the tag does not exist
-	 */
-	protected static final AccessType ACCESS_EDEFAULT = null;
-
-	/**
-	 * The cached value of the '{@link #getAccess() <em>Access</em>}' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see #getAccess()
-	 * @generated
-	 * @ordered
-	 */
-	protected AccessType access = ACCESS_EDEFAULT;
-
-	/**
-	 * The cached value of the '{@link #getGeneratedValue() <em>Generated Value</em>}' containment reference.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see #getGeneratedValue()
-	 * @generated
-	 * @ordered
-	 */
-	protected XmlGeneratedValue generatedValue;
-
-	/**
-	 * The cached value of the '{@link #getTableGenerator() <em>Table Generator</em>}' containment reference.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see #getTableGenerator()
-	 * @generated
-	 * @ordered
-	 */
-	protected XmlTableGenerator tableGenerator;
-
-	/**
-	 * The cached value of the '{@link #getSequenceGenerator() <em>Sequence Generator</em>}' containment reference.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see #getSequenceGenerator()
-	 * @generated
-	 * @ordered
-	 */
-	protected XmlSequenceGenerator sequenceGenerator;
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	protected XmlBasicImpl()
-	{
-		super();
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	protected EClass eStaticClass()
-	{
-		return EclipseLink1_1OrmPackage.Literals.XML_BASIC_IMPL;
-	}
-
-	/**
-	 * Returns the value of the '<em><b>Access</b></em>' attribute.
-	 * The default value is <code>"PROPERTY"</code>.
-	 * The literals are from the enumeration {@link org.eclipse.jpt.core.resource.orm.AccessType}.
-	 * <!-- begin-user-doc -->
-	 * <p>
-	 * If the meaning of the '<em>Access</em>' attribute isn't clear,
-	 * there really should be more of a description here...
-	 * </p>
-	 * <!-- end-user-doc -->
-	 * @return the value of the '<em>Access</em>' attribute.
-	 * @see org.eclipse.jpt.core.resource.orm.AccessType
-	 * @see #setAccess(AccessType)
-	 * @see org.eclipse.jpt.eclipselink1_1.core.resource.orm.EclipseLink1_1OrmPackage#getXmlAttributeMapping_Access()
-	 * @model default="PROPERTY"
-	 * @generated
-	 */
-	public AccessType getAccess()
-	{
-		return access;
-	}
-
-	/**
-	 * Sets the value of the '{@link org.eclipse.jpt.eclipselink1_1.core.resource.orm.XmlBasicImpl#getAccess <em>Access</em>}' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @param value the new value of the '<em>Access</em>' attribute.
-	 * @see org.eclipse.jpt.core.resource.orm.AccessType
-	 * @see #getAccess()
-	 * @generated
-	 */
-	public void setAccess(AccessType newAccess)
-	{
-		AccessType oldAccess = access;
-		access = newAccess == null ? ACCESS_EDEFAULT : newAccess;
-		if (eNotificationRequired())
-			eNotify(new ENotificationImpl(this, Notification.SET, EclipseLink1_1OrmPackage.XML_BASIC_IMPL__ACCESS, oldAccess, access));
-	}
-
-	/**
-	 * Returns the value of the '<em><b>Generated Value</b></em>' containment reference.
-	 * <!-- begin-user-doc -->
-	 * <p>
-	 * If the meaning of the '<em>Generated Value</em>' containment reference isn't clear,
-	 * there really should be more of a description here...
-	 * </p>
-	 * <!-- end-user-doc -->
-	 * @return the value of the '<em>Generated Value</em>' containment reference.
-	 * @see #setGeneratedValue(XmlGeneratedValue)
-	 * @see org.eclipse.jpt.eclipselink1_1.core.resource.orm.EclipseLink1_1OrmPackage#getXmlBasic_GeneratedValue()
-	 * @model containment="true"
-	 * @generated
-	 */
-	public XmlGeneratedValue getGeneratedValue()
-	{
-		return generatedValue;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public NotificationChain basicSetGeneratedValue(XmlGeneratedValue newGeneratedValue, NotificationChain msgs)
-	{
-		XmlGeneratedValue oldGeneratedValue = generatedValue;
-		generatedValue = newGeneratedValue;
-		if (eNotificationRequired())
-		{
-			ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, EclipseLink1_1OrmPackage.XML_BASIC_IMPL__GENERATED_VALUE, oldGeneratedValue, newGeneratedValue);
-			if (msgs == null) msgs = notification; else msgs.add(notification);
-		}
-		return msgs;
-	}
-
-	/**
-	 * Sets the value of the '{@link org.eclipse.jpt.eclipselink1_1.core.resource.orm.XmlBasicImpl#getGeneratedValue <em>Generated Value</em>}' containment reference.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @param value the new value of the '<em>Generated Value</em>' containment reference.
-	 * @see #getGeneratedValue()
-	 * @generated
-	 */
-	public void setGeneratedValue(XmlGeneratedValue newGeneratedValue)
-	{
-		if (newGeneratedValue != generatedValue)
-		{
-			NotificationChain msgs = null;
-			if (generatedValue != null)
-				msgs = ((InternalEObject)generatedValue).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - EclipseLink1_1OrmPackage.XML_BASIC_IMPL__GENERATED_VALUE, null, msgs);
-			if (newGeneratedValue != null)
-				msgs = ((InternalEObject)newGeneratedValue).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - EclipseLink1_1OrmPackage.XML_BASIC_IMPL__GENERATED_VALUE, null, msgs);
-			msgs = basicSetGeneratedValue(newGeneratedValue, msgs);
-			if (msgs != null) msgs.dispatch();
-		}
-		else if (eNotificationRequired())
-			eNotify(new ENotificationImpl(this, Notification.SET, EclipseLink1_1OrmPackage.XML_BASIC_IMPL__GENERATED_VALUE, newGeneratedValue, newGeneratedValue));
-	}
-
-	/**
-	 * Returns the value of the '<em><b>Table Generator</b></em>' containment reference.
-	 * <!-- begin-user-doc -->
-	 * <p>
-	 * If the meaning of the '<em>Table Generator</em>' containment reference isn't clear,
-	 * there really should be more of a description here...
-	 * </p>
-	 * <!-- end-user-doc -->
-	 * @return the value of the '<em>Table Generator</em>' containment reference.
-	 * @see #setTableGenerator(XmlTableGenerator)
-	 * @see org.eclipse.jpt.eclipselink1_1.core.resource.orm.EclipseLink1_1OrmPackage#getXmlBasic_TableGenerator()
-	 * @model containment="true"
-	 * @generated
-	 */
-	public XmlTableGenerator getTableGenerator()
-	{
-		return tableGenerator;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public NotificationChain basicSetTableGenerator(XmlTableGenerator newTableGenerator, NotificationChain msgs)
-	{
-		XmlTableGenerator oldTableGenerator = tableGenerator;
-		tableGenerator = newTableGenerator;
-		if (eNotificationRequired())
-		{
-			ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, EclipseLink1_1OrmPackage.XML_BASIC_IMPL__TABLE_GENERATOR, oldTableGenerator, newTableGenerator);
-			if (msgs == null) msgs = notification; else msgs.add(notification);
-		}
-		return msgs;
-	}
-
-	/**
-	 * Sets the value of the '{@link org.eclipse.jpt.eclipselink1_1.core.resource.orm.XmlBasicImpl#getTableGenerator <em>Table Generator</em>}' containment reference.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @param value the new value of the '<em>Table Generator</em>' containment reference.
-	 * @see #getTableGenerator()
-	 * @generated
-	 */
-	public void setTableGenerator(XmlTableGenerator newTableGenerator)
-	{
-		if (newTableGenerator != tableGenerator)
-		{
-			NotificationChain msgs = null;
-			if (tableGenerator != null)
-				msgs = ((InternalEObject)tableGenerator).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - EclipseLink1_1OrmPackage.XML_BASIC_IMPL__TABLE_GENERATOR, null, msgs);
-			if (newTableGenerator != null)
-				msgs = ((InternalEObject)newTableGenerator).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - EclipseLink1_1OrmPackage.XML_BASIC_IMPL__TABLE_GENERATOR, null, msgs);
-			msgs = basicSetTableGenerator(newTableGenerator, msgs);
-			if (msgs != null) msgs.dispatch();
-		}
-		else if (eNotificationRequired())
-			eNotify(new ENotificationImpl(this, Notification.SET, EclipseLink1_1OrmPackage.XML_BASIC_IMPL__TABLE_GENERATOR, newTableGenerator, newTableGenerator));
-	}
-
-	/**
-	 * Returns the value of the '<em><b>Sequence Generator</b></em>' containment reference.
-	 * <!-- begin-user-doc -->
-	 * <p>
-	 * If the meaning of the '<em>Sequence Generator</em>' containment reference isn't clear,
-	 * there really should be more of a description here...
-	 * </p>
-	 * <!-- end-user-doc -->
-	 * @return the value of the '<em>Sequence Generator</em>' containment reference.
-	 * @see #setSequenceGenerator(XmlSequenceGenerator)
-	 * @see org.eclipse.jpt.eclipselink1_1.core.resource.orm.EclipseLink1_1OrmPackage#getXmlBasic_SequenceGenerator()
-	 * @model containment="true"
-	 * @generated
-	 */
-	public XmlSequenceGenerator getSequenceGenerator()
-	{
-		return sequenceGenerator;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public NotificationChain basicSetSequenceGenerator(XmlSequenceGenerator newSequenceGenerator, NotificationChain msgs)
-	{
-		XmlSequenceGenerator oldSequenceGenerator = sequenceGenerator;
-		sequenceGenerator = newSequenceGenerator;
-		if (eNotificationRequired())
-		{
-			ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, EclipseLink1_1OrmPackage.XML_BASIC_IMPL__SEQUENCE_GENERATOR, oldSequenceGenerator, newSequenceGenerator);
-			if (msgs == null) msgs = notification; else msgs.add(notification);
-		}
-		return msgs;
-	}
-
-	/**
-	 * Sets the value of the '{@link org.eclipse.jpt.eclipselink1_1.core.resource.orm.XmlBasicImpl#getSequenceGenerator <em>Sequence Generator</em>}' containment reference.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @param value the new value of the '<em>Sequence Generator</em>' containment reference.
-	 * @see #getSequenceGenerator()
-	 * @generated
-	 */
-	public void setSequenceGenerator(XmlSequenceGenerator newSequenceGenerator)
-	{
-		if (newSequenceGenerator != sequenceGenerator)
-		{
-			NotificationChain msgs = null;
-			if (sequenceGenerator != null)
-				msgs = ((InternalEObject)sequenceGenerator).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - EclipseLink1_1OrmPackage.XML_BASIC_IMPL__SEQUENCE_GENERATOR, null, msgs);
-			if (newSequenceGenerator != null)
-				msgs = ((InternalEObject)newSequenceGenerator).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - EclipseLink1_1OrmPackage.XML_BASIC_IMPL__SEQUENCE_GENERATOR, null, msgs);
-			msgs = basicSetSequenceGenerator(newSequenceGenerator, msgs);
-			if (msgs != null) msgs.dispatch();
-		}
-		else if (eNotificationRequired())
-			eNotify(new ENotificationImpl(this, Notification.SET, EclipseLink1_1OrmPackage.XML_BASIC_IMPL__SEQUENCE_GENERATOR, newSequenceGenerator, newSequenceGenerator));
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs)
-	{
-		switch (featureID)
-		{
-			case EclipseLink1_1OrmPackage.XML_BASIC_IMPL__GENERATED_VALUE:
-				return basicSetGeneratedValue(null, msgs);
-			case EclipseLink1_1OrmPackage.XML_BASIC_IMPL__TABLE_GENERATOR:
-				return basicSetTableGenerator(null, msgs);
-			case EclipseLink1_1OrmPackage.XML_BASIC_IMPL__SEQUENCE_GENERATOR:
-				return basicSetSequenceGenerator(null, msgs);
-		}
-		return super.eInverseRemove(otherEnd, featureID, msgs);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public Object eGet(int featureID, boolean resolve, boolean coreType)
-	{
-		switch (featureID)
-		{
-			case EclipseLink1_1OrmPackage.XML_BASIC_IMPL__ACCESS:
-				return getAccess();
-			case EclipseLink1_1OrmPackage.XML_BASIC_IMPL__GENERATED_VALUE:
-				return getGeneratedValue();
-			case EclipseLink1_1OrmPackage.XML_BASIC_IMPL__TABLE_GENERATOR:
-				return getTableGenerator();
-			case EclipseLink1_1OrmPackage.XML_BASIC_IMPL__SEQUENCE_GENERATOR:
-				return getSequenceGenerator();
-		}
-		return super.eGet(featureID, resolve, coreType);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public void eSet(int featureID, Object newValue)
-	{
-		switch (featureID)
-		{
-			case EclipseLink1_1OrmPackage.XML_BASIC_IMPL__ACCESS:
-				setAccess((AccessType)newValue);
-				return;
-			case EclipseLink1_1OrmPackage.XML_BASIC_IMPL__GENERATED_VALUE:
-				setGeneratedValue((XmlGeneratedValue)newValue);
-				return;
-			case EclipseLink1_1OrmPackage.XML_BASIC_IMPL__TABLE_GENERATOR:
-				setTableGenerator((XmlTableGenerator)newValue);
-				return;
-			case EclipseLink1_1OrmPackage.XML_BASIC_IMPL__SEQUENCE_GENERATOR:
-				setSequenceGenerator((XmlSequenceGenerator)newValue);
-				return;
-		}
-		super.eSet(featureID, newValue);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public void eUnset(int featureID)
-	{
-		switch (featureID)
-		{
-			case EclipseLink1_1OrmPackage.XML_BASIC_IMPL__ACCESS:
-				setAccess(ACCESS_EDEFAULT);
-				return;
-			case EclipseLink1_1OrmPackage.XML_BASIC_IMPL__GENERATED_VALUE:
-				setGeneratedValue((XmlGeneratedValue)null);
-				return;
-			case EclipseLink1_1OrmPackage.XML_BASIC_IMPL__TABLE_GENERATOR:
-				setTableGenerator((XmlTableGenerator)null);
-				return;
-			case EclipseLink1_1OrmPackage.XML_BASIC_IMPL__SEQUENCE_GENERATOR:
-				setSequenceGenerator((XmlSequenceGenerator)null);
-				return;
-		}
-		super.eUnset(featureID);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public boolean eIsSet(int featureID)
-	{
-		switch (featureID)
-		{
-			case EclipseLink1_1OrmPackage.XML_BASIC_IMPL__ACCESS:
-				return access != ACCESS_EDEFAULT;
-			case EclipseLink1_1OrmPackage.XML_BASIC_IMPL__GENERATED_VALUE:
-				return generatedValue != null;
-			case EclipseLink1_1OrmPackage.XML_BASIC_IMPL__TABLE_GENERATOR:
-				return tableGenerator != null;
-			case EclipseLink1_1OrmPackage.XML_BASIC_IMPL__SEQUENCE_GENERATOR:
-				return sequenceGenerator != null;
-		}
-		return super.eIsSet(featureID);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public int eBaseStructuralFeatureID(int derivedFeatureID, Class<?> baseClass)
-	{
-		if (baseClass == XmlAttributeMapping.class)
-		{
-			switch (derivedFeatureID)
-			{
-				case EclipseLink1_1OrmPackage.XML_BASIC_IMPL__ACCESS: return EclipseLink1_1OrmPackage.XML_ATTRIBUTE_MAPPING__ACCESS;
-				default: return -1;
-			}
-		}
-		if (baseClass == XmlBasic.class)
-		{
-			switch (derivedFeatureID)
-			{
-				case EclipseLink1_1OrmPackage.XML_BASIC_IMPL__GENERATED_VALUE: return EclipseLink1_1OrmPackage.XML_BASIC__GENERATED_VALUE;
-				case EclipseLink1_1OrmPackage.XML_BASIC_IMPL__TABLE_GENERATOR: return EclipseLink1_1OrmPackage.XML_BASIC__TABLE_GENERATOR;
-				case EclipseLink1_1OrmPackage.XML_BASIC_IMPL__SEQUENCE_GENERATOR: return EclipseLink1_1OrmPackage.XML_BASIC__SEQUENCE_GENERATOR;
-				default: return -1;
-			}
-		}
-		return super.eBaseStructuralFeatureID(derivedFeatureID, baseClass);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public int eDerivedStructuralFeatureID(int baseFeatureID, Class<?> baseClass)
-	{
-		if (baseClass == XmlAttributeMapping.class)
-		{
-			switch (baseFeatureID)
-			{
-				case EclipseLink1_1OrmPackage.XML_ATTRIBUTE_MAPPING__ACCESS: return EclipseLink1_1OrmPackage.XML_BASIC_IMPL__ACCESS;
-				default: return -1;
-			}
-		}
-		if (baseClass == XmlBasic.class)
-		{
-			switch (baseFeatureID)
-			{
-				case EclipseLink1_1OrmPackage.XML_BASIC__GENERATED_VALUE: return EclipseLink1_1OrmPackage.XML_BASIC_IMPL__GENERATED_VALUE;
-				case EclipseLink1_1OrmPackage.XML_BASIC__TABLE_GENERATOR: return EclipseLink1_1OrmPackage.XML_BASIC_IMPL__TABLE_GENERATOR;
-				case EclipseLink1_1OrmPackage.XML_BASIC__SEQUENCE_GENERATOR: return EclipseLink1_1OrmPackage.XML_BASIC_IMPL__SEQUENCE_GENERATOR;
-				default: return -1;
-			}
-		}
-		return super.eDerivedStructuralFeatureID(baseFeatureID, baseClass);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public String toString()
-	{
-		if (eIsProxy()) return super.toString();
-
-		StringBuffer result = new StringBuffer(super.toString());
-		result.append(" (access: ");
-		result.append(access);
-		result.append(')');
-		return result.toString();
-	}
-
-} // XmlBasicImpl
diff --git a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink1_1/core/resource/orm/XmlBasicMap.java b/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink1_1/core/resource/orm/XmlBasicMap.java
deleted file mode 100644
index 336a8e9..0000000
--- a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink1_1/core/resource/orm/XmlBasicMap.java
+++ /dev/null
@@ -1,25 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- *******************************************************************************/
-package org.eclipse.jpt.eclipselink1_1.core.resource.orm;
-
-
-/**
- * <!-- begin-user-doc -->
- * A representation of the model object '<em><b>Xml Basic Map</b></em>'.
- * <!-- end-user-doc -->
- *
- *
- * @see org.eclipse.jpt.eclipselink1_1.core.resource.orm.EclipseLink1_1OrmPackage#getXmlBasicMap()
- * @model kind="class" interface="true" abstract="true"
- * @generated
- */
-public interface XmlBasicMap extends org.eclipse.jpt.eclipselink.core.resource.orm.XmlBasicMap, XmlAttributeMapping
-{
-} // XmlBasicMap
diff --git a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink1_1/core/resource/orm/XmlBasicMapImpl.java b/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink1_1/core/resource/orm/XmlBasicMapImpl.java
deleted file mode 100644
index c7fa036..0000000
--- a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink1_1/core/resource/orm/XmlBasicMapImpl.java
+++ /dev/null
@@ -1,243 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- *******************************************************************************/
-package org.eclipse.jpt.eclipselink1_1.core.resource.orm;
-
-import org.eclipse.emf.common.notify.Notification;
-
-import org.eclipse.emf.ecore.EClass;
-
-import org.eclipse.emf.ecore.impl.ENotificationImpl;
-
-import org.eclipse.jpt.core.resource.orm.AccessType;
-
-/**
- * <!-- begin-user-doc -->
- * A representation of the model object '<em><b>Xml Basic Map Impl</b></em>'.
- * <!-- end-user-doc -->
- *
- *
- * @see org.eclipse.jpt.eclipselink1_1.core.resource.orm.EclipseLink1_1OrmPackage#getXmlBasicMapImpl()
- * @model kind="class"
- * @generated
- */
-public class XmlBasicMapImpl extends org.eclipse.jpt.eclipselink.core.resource.orm.XmlBasicMapImpl implements XmlBasicMap
-{
-	/**
-	 * changed this to null and removed the generated flag so emf won't generate over it
-	 * we don't want a default for enums, just null if the tag does not exist
-	 */
-	protected static final AccessType ACCESS_EDEFAULT = null;
-
-	/**
-	 * The cached value of the '{@link #getAccess() <em>Access</em>}' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see #getAccess()
-	 * @generated
-	 * @ordered
-	 */
-	protected AccessType access = ACCESS_EDEFAULT;
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	protected XmlBasicMapImpl()
-	{
-		super();
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	protected EClass eStaticClass()
-	{
-		return EclipseLink1_1OrmPackage.Literals.XML_BASIC_MAP_IMPL;
-	}
-
-	/**
-	 * Returns the value of the '<em><b>Access</b></em>' attribute.
-	 * The default value is <code>"PROPERTY"</code>.
-	 * The literals are from the enumeration {@link org.eclipse.jpt.core.resource.orm.AccessType}.
-	 * <!-- begin-user-doc -->
-	 * <p>
-	 * If the meaning of the '<em>Access</em>' attribute isn't clear,
-	 * there really should be more of a description here...
-	 * </p>
-	 * <!-- end-user-doc -->
-	 * @return the value of the '<em>Access</em>' attribute.
-	 * @see org.eclipse.jpt.core.resource.orm.AccessType
-	 * @see #setAccess(AccessType)
-	 * @see org.eclipse.jpt.eclipselink1_1.core.resource.orm.EclipseLink1_1OrmPackage#getXmlAttributeMapping_Access()
-	 * @model default="PROPERTY"
-	 * @generated
-	 */
-	public AccessType getAccess()
-	{
-		return access;
-	}
-
-	/**
-	 * Sets the value of the '{@link org.eclipse.jpt.eclipselink1_1.core.resource.orm.XmlBasicMapImpl#getAccess <em>Access</em>}' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @param value the new value of the '<em>Access</em>' attribute.
-	 * @see org.eclipse.jpt.core.resource.orm.AccessType
-	 * @see #getAccess()
-	 * @generated
-	 */
-	public void setAccess(AccessType newAccess)
-	{
-		AccessType oldAccess = access;
-		access = newAccess == null ? ACCESS_EDEFAULT : newAccess;
-		if (eNotificationRequired())
-			eNotify(new ENotificationImpl(this, Notification.SET, EclipseLink1_1OrmPackage.XML_BASIC_MAP_IMPL__ACCESS, oldAccess, access));
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public Object eGet(int featureID, boolean resolve, boolean coreType)
-	{
-		switch (featureID)
-		{
-			case EclipseLink1_1OrmPackage.XML_BASIC_MAP_IMPL__ACCESS:
-				return getAccess();
-		}
-		return super.eGet(featureID, resolve, coreType);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public void eSet(int featureID, Object newValue)
-	{
-		switch (featureID)
-		{
-			case EclipseLink1_1OrmPackage.XML_BASIC_MAP_IMPL__ACCESS:
-				setAccess((AccessType)newValue);
-				return;
-		}
-		super.eSet(featureID, newValue);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public void eUnset(int featureID)
-	{
-		switch (featureID)
-		{
-			case EclipseLink1_1OrmPackage.XML_BASIC_MAP_IMPL__ACCESS:
-				setAccess(ACCESS_EDEFAULT);
-				return;
-		}
-		super.eUnset(featureID);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public boolean eIsSet(int featureID)
-	{
-		switch (featureID)
-		{
-			case EclipseLink1_1OrmPackage.XML_BASIC_MAP_IMPL__ACCESS:
-				return access != ACCESS_EDEFAULT;
-		}
-		return super.eIsSet(featureID);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public int eBaseStructuralFeatureID(int derivedFeatureID, Class<?> baseClass)
-	{
-		if (baseClass == XmlAttributeMapping.class)
-		{
-			switch (derivedFeatureID)
-			{
-				case EclipseLink1_1OrmPackage.XML_BASIC_MAP_IMPL__ACCESS: return EclipseLink1_1OrmPackage.XML_ATTRIBUTE_MAPPING__ACCESS;
-				default: return -1;
-			}
-		}
-		if (baseClass == XmlBasicMap.class)
-		{
-			switch (derivedFeatureID)
-			{
-				default: return -1;
-			}
-		}
-		return super.eBaseStructuralFeatureID(derivedFeatureID, baseClass);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public int eDerivedStructuralFeatureID(int baseFeatureID, Class<?> baseClass)
-	{
-		if (baseClass == XmlAttributeMapping.class)
-		{
-			switch (baseFeatureID)
-			{
-				case EclipseLink1_1OrmPackage.XML_ATTRIBUTE_MAPPING__ACCESS: return EclipseLink1_1OrmPackage.XML_BASIC_MAP_IMPL__ACCESS;
-				default: return -1;
-			}
-		}
-		if (baseClass == XmlBasicMap.class)
-		{
-			switch (baseFeatureID)
-			{
-				default: return -1;
-			}
-		}
-		return super.eDerivedStructuralFeatureID(baseFeatureID, baseClass);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public String toString()
-	{
-		if (eIsProxy()) return super.toString();
-
-		StringBuffer result = new StringBuffer(super.toString());
-		result.append(" (access: ");
-		result.append(access);
-		result.append(')');
-		return result.toString();
-	}
-
-} // XmlBasicMapImpl
diff --git a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink1_1/core/resource/orm/XmlEmbedded.java b/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink1_1/core/resource/orm/XmlEmbedded.java
deleted file mode 100644
index 20ed879..0000000
--- a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink1_1/core/resource/orm/XmlEmbedded.java
+++ /dev/null
@@ -1,25 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- *******************************************************************************/
-package org.eclipse.jpt.eclipselink1_1.core.resource.orm;
-
-
-/**
- * <!-- begin-user-doc -->
- * A representation of the model object '<em><b>Xml Embedded</b></em>'.
- * <!-- end-user-doc -->
- *
- *
- * @see org.eclipse.jpt.eclipselink1_1.core.resource.orm.EclipseLink1_1OrmPackage#getXmlEmbedded()
- * @model kind="class" interface="true" abstract="true"
- * @generated
- */
-public interface XmlEmbedded extends org.eclipse.jpt.eclipselink.core.resource.orm.XmlEmbedded, XmlAttributeMapping
-{
-} // XmlEmbedded
diff --git a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink1_1/core/resource/orm/XmlEmbeddedId.java b/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink1_1/core/resource/orm/XmlEmbeddedId.java
deleted file mode 100644
index b53b408..0000000
--- a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink1_1/core/resource/orm/XmlEmbeddedId.java
+++ /dev/null
@@ -1,25 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- *******************************************************************************/
-package org.eclipse.jpt.eclipselink1_1.core.resource.orm;
-
-
-/**
- * <!-- begin-user-doc -->
- * A representation of the model object '<em><b>Xml Embedded Id</b></em>'.
- * <!-- end-user-doc -->
- *
- *
- * @see org.eclipse.jpt.eclipselink1_1.core.resource.orm.EclipseLink1_1OrmPackage#getXmlEmbeddedId()
- * @model kind="class" interface="true" abstract="true"
- * @generated
- */
-public interface XmlEmbeddedId extends org.eclipse.jpt.eclipselink.core.resource.orm.XmlEmbeddedId, XmlAttributeMapping
-{
-} // XmlEmbeddedId
diff --git a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink1_1/core/resource/orm/XmlEmbeddedIdImpl.java b/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink1_1/core/resource/orm/XmlEmbeddedIdImpl.java
deleted file mode 100644
index 7521ae9..0000000
--- a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink1_1/core/resource/orm/XmlEmbeddedIdImpl.java
+++ /dev/null
@@ -1,243 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- *******************************************************************************/
-package org.eclipse.jpt.eclipselink1_1.core.resource.orm;
-
-import org.eclipse.emf.common.notify.Notification;
-
-import org.eclipse.emf.ecore.EClass;
-
-import org.eclipse.emf.ecore.impl.ENotificationImpl;
-
-import org.eclipse.jpt.core.resource.orm.AccessType;
-
-/**
- * <!-- begin-user-doc -->
- * A representation of the model object '<em><b>Xml Embedded Id Impl</b></em>'.
- * <!-- end-user-doc -->
- *
- *
- * @see org.eclipse.jpt.eclipselink1_1.core.resource.orm.EclipseLink1_1OrmPackage#getXmlEmbeddedIdImpl()
- * @model kind="class"
- * @generated
- */
-public class XmlEmbeddedIdImpl extends org.eclipse.jpt.eclipselink.core.resource.orm.XmlEmbeddedIdImpl implements XmlEmbeddedId
-{
-	/**
-	 * changed this to null and removed the generated flag so emf won't generate over it
-	 * we don't want a default for enums, just null if the tag does not exist
-	 */
-	protected static final AccessType ACCESS_EDEFAULT = null;
-
-	/**
-	 * The cached value of the '{@link #getAccess() <em>Access</em>}' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see #getAccess()
-	 * @generated
-	 * @ordered
-	 */
-	protected AccessType access = ACCESS_EDEFAULT;
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	protected XmlEmbeddedIdImpl()
-	{
-		super();
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	protected EClass eStaticClass()
-	{
-		return EclipseLink1_1OrmPackage.Literals.XML_EMBEDDED_ID_IMPL;
-	}
-
-	/**
-	 * Returns the value of the '<em><b>Access</b></em>' attribute.
-	 * The default value is <code>"PROPERTY"</code>.
-	 * The literals are from the enumeration {@link org.eclipse.jpt.core.resource.orm.AccessType}.
-	 * <!-- begin-user-doc -->
-	 * <p>
-	 * If the meaning of the '<em>Access</em>' attribute isn't clear,
-	 * there really should be more of a description here...
-	 * </p>
-	 * <!-- end-user-doc -->
-	 * @return the value of the '<em>Access</em>' attribute.
-	 * @see org.eclipse.jpt.core.resource.orm.AccessType
-	 * @see #setAccess(AccessType)
-	 * @see org.eclipse.jpt.eclipselink1_1.core.resource.orm.EclipseLink1_1OrmPackage#getXmlAttributeMapping_Access()
-	 * @model default="PROPERTY"
-	 * @generated
-	 */
-	public AccessType getAccess()
-	{
-		return access;
-	}
-
-	/**
-	 * Sets the value of the '{@link org.eclipse.jpt.eclipselink1_1.core.resource.orm.XmlEmbeddedIdImpl#getAccess <em>Access</em>}' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @param value the new value of the '<em>Access</em>' attribute.
-	 * @see org.eclipse.jpt.core.resource.orm.AccessType
-	 * @see #getAccess()
-	 * @generated
-	 */
-	public void setAccess(AccessType newAccess)
-	{
-		AccessType oldAccess = access;
-		access = newAccess == null ? ACCESS_EDEFAULT : newAccess;
-		if (eNotificationRequired())
-			eNotify(new ENotificationImpl(this, Notification.SET, EclipseLink1_1OrmPackage.XML_EMBEDDED_ID_IMPL__ACCESS, oldAccess, access));
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public Object eGet(int featureID, boolean resolve, boolean coreType)
-	{
-		switch (featureID)
-		{
-			case EclipseLink1_1OrmPackage.XML_EMBEDDED_ID_IMPL__ACCESS:
-				return getAccess();
-		}
-		return super.eGet(featureID, resolve, coreType);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public void eSet(int featureID, Object newValue)
-	{
-		switch (featureID)
-		{
-			case EclipseLink1_1OrmPackage.XML_EMBEDDED_ID_IMPL__ACCESS:
-				setAccess((AccessType)newValue);
-				return;
-		}
-		super.eSet(featureID, newValue);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public void eUnset(int featureID)
-	{
-		switch (featureID)
-		{
-			case EclipseLink1_1OrmPackage.XML_EMBEDDED_ID_IMPL__ACCESS:
-				setAccess(ACCESS_EDEFAULT);
-				return;
-		}
-		super.eUnset(featureID);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public boolean eIsSet(int featureID)
-	{
-		switch (featureID)
-		{
-			case EclipseLink1_1OrmPackage.XML_EMBEDDED_ID_IMPL__ACCESS:
-				return access != ACCESS_EDEFAULT;
-		}
-		return super.eIsSet(featureID);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public int eBaseStructuralFeatureID(int derivedFeatureID, Class<?> baseClass)
-	{
-		if (baseClass == XmlAttributeMapping.class)
-		{
-			switch (derivedFeatureID)
-			{
-				case EclipseLink1_1OrmPackage.XML_EMBEDDED_ID_IMPL__ACCESS: return EclipseLink1_1OrmPackage.XML_ATTRIBUTE_MAPPING__ACCESS;
-				default: return -1;
-			}
-		}
-		if (baseClass == XmlEmbeddedId.class)
-		{
-			switch (derivedFeatureID)
-			{
-				default: return -1;
-			}
-		}
-		return super.eBaseStructuralFeatureID(derivedFeatureID, baseClass);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public int eDerivedStructuralFeatureID(int baseFeatureID, Class<?> baseClass)
-	{
-		if (baseClass == XmlAttributeMapping.class)
-		{
-			switch (baseFeatureID)
-			{
-				case EclipseLink1_1OrmPackage.XML_ATTRIBUTE_MAPPING__ACCESS: return EclipseLink1_1OrmPackage.XML_EMBEDDED_ID_IMPL__ACCESS;
-				default: return -1;
-			}
-		}
-		if (baseClass == XmlEmbeddedId.class)
-		{
-			switch (baseFeatureID)
-			{
-				default: return -1;
-			}
-		}
-		return super.eDerivedStructuralFeatureID(baseFeatureID, baseClass);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public String toString()
-	{
-		if (eIsProxy()) return super.toString();
-
-		StringBuffer result = new StringBuffer(super.toString());
-		result.append(" (access: ");
-		result.append(access);
-		result.append(')');
-		return result.toString();
-	}
-
-} // XmlEmbeddedIdImpl
diff --git a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink1_1/core/resource/orm/XmlEmbeddedImpl.java b/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink1_1/core/resource/orm/XmlEmbeddedImpl.java
deleted file mode 100644
index 8c966d3..0000000
--- a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink1_1/core/resource/orm/XmlEmbeddedImpl.java
+++ /dev/null
@@ -1,243 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- *******************************************************************************/
-package org.eclipse.jpt.eclipselink1_1.core.resource.orm;
-
-import org.eclipse.emf.common.notify.Notification;
-
-import org.eclipse.emf.ecore.EClass;
-
-import org.eclipse.emf.ecore.impl.ENotificationImpl;
-
-import org.eclipse.jpt.core.resource.orm.AccessType;
-
-/**
- * <!-- begin-user-doc -->
- * A representation of the model object '<em><b>Xml Embedded Impl</b></em>'.
- * <!-- end-user-doc -->
- *
- *
- * @see org.eclipse.jpt.eclipselink1_1.core.resource.orm.EclipseLink1_1OrmPackage#getXmlEmbeddedImpl()
- * @model kind="class"
- * @generated
- */
-public class XmlEmbeddedImpl extends org.eclipse.jpt.eclipselink.core.resource.orm.XmlEmbeddedImpl implements XmlEmbedded
-{
-	/**
-	 * changed this to null and removed the generated flag so emf won't generate over it
-	 * we don't want a default for enums, just null if the tag does not exist
-	 */
-	protected static final AccessType ACCESS_EDEFAULT = null;
-
-	/**
-	 * The cached value of the '{@link #getAccess() <em>Access</em>}' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see #getAccess()
-	 * @generated
-	 * @ordered
-	 */
-	protected AccessType access = ACCESS_EDEFAULT;
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	protected XmlEmbeddedImpl()
-	{
-		super();
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	protected EClass eStaticClass()
-	{
-		return EclipseLink1_1OrmPackage.Literals.XML_EMBEDDED_IMPL;
-	}
-
-	/**
-	 * Returns the value of the '<em><b>Access</b></em>' attribute.
-	 * The default value is <code>"PROPERTY"</code>.
-	 * The literals are from the enumeration {@link org.eclipse.jpt.core.resource.orm.AccessType}.
-	 * <!-- begin-user-doc -->
-	 * <p>
-	 * If the meaning of the '<em>Access</em>' attribute isn't clear,
-	 * there really should be more of a description here...
-	 * </p>
-	 * <!-- end-user-doc -->
-	 * @return the value of the '<em>Access</em>' attribute.
-	 * @see org.eclipse.jpt.core.resource.orm.AccessType
-	 * @see #setAccess(AccessType)
-	 * @see org.eclipse.jpt.eclipselink1_1.core.resource.orm.EclipseLink1_1OrmPackage#getXmlAttributeMapping_Access()
-	 * @model default="PROPERTY"
-	 * @generated
-	 */
-	public AccessType getAccess()
-	{
-		return access;
-	}
-
-	/**
-	 * Sets the value of the '{@link org.eclipse.jpt.eclipselink1_1.core.resource.orm.XmlEmbeddedImpl#getAccess <em>Access</em>}' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @param value the new value of the '<em>Access</em>' attribute.
-	 * @see org.eclipse.jpt.core.resource.orm.AccessType
-	 * @see #getAccess()
-	 * @generated
-	 */
-	public void setAccess(AccessType newAccess)
-	{
-		AccessType oldAccess = access;
-		access = newAccess == null ? ACCESS_EDEFAULT : newAccess;
-		if (eNotificationRequired())
-			eNotify(new ENotificationImpl(this, Notification.SET, EclipseLink1_1OrmPackage.XML_EMBEDDED_IMPL__ACCESS, oldAccess, access));
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public Object eGet(int featureID, boolean resolve, boolean coreType)
-	{
-		switch (featureID)
-		{
-			case EclipseLink1_1OrmPackage.XML_EMBEDDED_IMPL__ACCESS:
-				return getAccess();
-		}
-		return super.eGet(featureID, resolve, coreType);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public void eSet(int featureID, Object newValue)
-	{
-		switch (featureID)
-		{
-			case EclipseLink1_1OrmPackage.XML_EMBEDDED_IMPL__ACCESS:
-				setAccess((AccessType)newValue);
-				return;
-		}
-		super.eSet(featureID, newValue);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public void eUnset(int featureID)
-	{
-		switch (featureID)
-		{
-			case EclipseLink1_1OrmPackage.XML_EMBEDDED_IMPL__ACCESS:
-				setAccess(ACCESS_EDEFAULT);
-				return;
-		}
-		super.eUnset(featureID);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public boolean eIsSet(int featureID)
-	{
-		switch (featureID)
-		{
-			case EclipseLink1_1OrmPackage.XML_EMBEDDED_IMPL__ACCESS:
-				return access != ACCESS_EDEFAULT;
-		}
-		return super.eIsSet(featureID);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public int eBaseStructuralFeatureID(int derivedFeatureID, Class<?> baseClass)
-	{
-		if (baseClass == XmlAttributeMapping.class)
-		{
-			switch (derivedFeatureID)
-			{
-				case EclipseLink1_1OrmPackage.XML_EMBEDDED_IMPL__ACCESS: return EclipseLink1_1OrmPackage.XML_ATTRIBUTE_MAPPING__ACCESS;
-				default: return -1;
-			}
-		}
-		if (baseClass == XmlEmbedded.class)
-		{
-			switch (derivedFeatureID)
-			{
-				default: return -1;
-			}
-		}
-		return super.eBaseStructuralFeatureID(derivedFeatureID, baseClass);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public int eDerivedStructuralFeatureID(int baseFeatureID, Class<?> baseClass)
-	{
-		if (baseClass == XmlAttributeMapping.class)
-		{
-			switch (baseFeatureID)
-			{
-				case EclipseLink1_1OrmPackage.XML_ATTRIBUTE_MAPPING__ACCESS: return EclipseLink1_1OrmPackage.XML_EMBEDDED_IMPL__ACCESS;
-				default: return -1;
-			}
-		}
-		if (baseClass == XmlEmbedded.class)
-		{
-			switch (baseFeatureID)
-			{
-				default: return -1;
-			}
-		}
-		return super.eDerivedStructuralFeatureID(baseFeatureID, baseClass);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public String toString()
-	{
-		if (eIsProxy()) return super.toString();
-
-		StringBuffer result = new StringBuffer(super.toString());
-		result.append(" (access: ");
-		result.append(access);
-		result.append(')');
-		return result.toString();
-	}
-
-} // XmlEmbeddedImpl
diff --git a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink1_1/core/resource/orm/XmlEntityMappings.java b/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink1_1/core/resource/orm/XmlEntityMappings.java
deleted file mode 100644
index e345b91..0000000
--- a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink1_1/core/resource/orm/XmlEntityMappings.java
+++ /dev/null
@@ -1,47 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- *******************************************************************************/
-package org.eclipse.jpt.eclipselink1_1.core.resource.orm;
-
-import org.eclipse.emf.ecore.EClass;
-
-/**
- * <!-- begin-user-doc -->
- * A representation of the model object '<em><b>Xml Entity Mappings</b></em>'.
- * <!-- end-user-doc -->
- *
- *
- * @see org.eclipse.jpt.eclipselink1_1.core.resource.orm.EclipseLink1_1OrmPackage#getXmlEntityMappings()
- * @model kind="class"
- * @generated
- */
-public class XmlEntityMappings extends org.eclipse.jpt.eclipselink.core.resource.orm.XmlEntityMappings
-{
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	protected XmlEntityMappings()
-	{
-		super();
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	protected EClass eStaticClass()
-	{
-		return EclipseLink1_1OrmPackage.Literals.XML_ENTITY_MAPPINGS;
-	}
-
-} // XmlEntityMappings
diff --git a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink1_1/core/resource/orm/XmlId.java b/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink1_1/core/resource/orm/XmlId.java
deleted file mode 100644
index b7f4d0f..0000000
--- a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink1_1/core/resource/orm/XmlId.java
+++ /dev/null
@@ -1,25 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- *******************************************************************************/
-package org.eclipse.jpt.eclipselink1_1.core.resource.orm;
-
-
-/**
- * <!-- begin-user-doc -->
- * A representation of the model object '<em><b>Xml Id</b></em>'.
- * <!-- end-user-doc -->
- *
- *
- * @see org.eclipse.jpt.eclipselink1_1.core.resource.orm.EclipseLink1_1OrmPackage#getXmlId()
- * @model kind="class" interface="true" abstract="true"
- * @generated
- */
-public interface XmlId extends org.eclipse.jpt.eclipselink.core.resource.orm.XmlId, XmlAttributeMapping
-{
-} // XmlId
diff --git a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink1_1/core/resource/orm/XmlIdImpl.java b/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink1_1/core/resource/orm/XmlIdImpl.java
deleted file mode 100644
index 3942591..0000000
--- a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink1_1/core/resource/orm/XmlIdImpl.java
+++ /dev/null
@@ -1,243 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- *******************************************************************************/
-package org.eclipse.jpt.eclipselink1_1.core.resource.orm;
-
-import org.eclipse.emf.common.notify.Notification;
-
-import org.eclipse.emf.ecore.EClass;
-
-import org.eclipse.emf.ecore.impl.ENotificationImpl;
-
-import org.eclipse.jpt.core.resource.orm.AccessType;
-
-/**
- * <!-- begin-user-doc -->
- * A representation of the model object '<em><b>Xml Id Impl</b></em>'.
- * <!-- end-user-doc -->
- *
- *
- * @see org.eclipse.jpt.eclipselink1_1.core.resource.orm.EclipseLink1_1OrmPackage#getXmlIdImpl()
- * @model kind="class"
- * @generated
- */
-public class XmlIdImpl extends org.eclipse.jpt.eclipselink.core.resource.orm.XmlIdImpl implements XmlId
-{
-	/**
-	 * changed this to null and removed the generated flag so emf won't generate over it
-	 * we don't want a default for enums, just null if the tag does not exist
-	 */
-	protected static final AccessType ACCESS_EDEFAULT = null;
-
-	/**
-	 * The cached value of the '{@link #getAccess() <em>Access</em>}' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see #getAccess()
-	 * @generated
-	 * @ordered
-	 */
-	protected AccessType access = ACCESS_EDEFAULT;
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	protected XmlIdImpl()
-	{
-		super();
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	protected EClass eStaticClass()
-	{
-		return EclipseLink1_1OrmPackage.Literals.XML_ID_IMPL;
-	}
-
-	/**
-	 * Returns the value of the '<em><b>Access</b></em>' attribute.
-	 * The default value is <code>"PROPERTY"</code>.
-	 * The literals are from the enumeration {@link org.eclipse.jpt.core.resource.orm.AccessType}.
-	 * <!-- begin-user-doc -->
-	 * <p>
-	 * If the meaning of the '<em>Access</em>' attribute isn't clear,
-	 * there really should be more of a description here...
-	 * </p>
-	 * <!-- end-user-doc -->
-	 * @return the value of the '<em>Access</em>' attribute.
-	 * @see org.eclipse.jpt.core.resource.orm.AccessType
-	 * @see #setAccess(AccessType)
-	 * @see org.eclipse.jpt.eclipselink1_1.core.resource.orm.EclipseLink1_1OrmPackage#getXmlAttributeMapping_Access()
-	 * @model default="PROPERTY"
-	 * @generated
-	 */
-	public AccessType getAccess()
-	{
-		return access;
-	}
-
-	/**
-	 * Sets the value of the '{@link org.eclipse.jpt.eclipselink1_1.core.resource.orm.XmlIdImpl#getAccess <em>Access</em>}' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @param value the new value of the '<em>Access</em>' attribute.
-	 * @see org.eclipse.jpt.core.resource.orm.AccessType
-	 * @see #getAccess()
-	 * @generated
-	 */
-	public void setAccess(AccessType newAccess)
-	{
-		AccessType oldAccess = access;
-		access = newAccess == null ? ACCESS_EDEFAULT : newAccess;
-		if (eNotificationRequired())
-			eNotify(new ENotificationImpl(this, Notification.SET, EclipseLink1_1OrmPackage.XML_ID_IMPL__ACCESS, oldAccess, access));
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public Object eGet(int featureID, boolean resolve, boolean coreType)
-	{
-		switch (featureID)
-		{
-			case EclipseLink1_1OrmPackage.XML_ID_IMPL__ACCESS:
-				return getAccess();
-		}
-		return super.eGet(featureID, resolve, coreType);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public void eSet(int featureID, Object newValue)
-	{
-		switch (featureID)
-		{
-			case EclipseLink1_1OrmPackage.XML_ID_IMPL__ACCESS:
-				setAccess((AccessType)newValue);
-				return;
-		}
-		super.eSet(featureID, newValue);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public void eUnset(int featureID)
-	{
-		switch (featureID)
-		{
-			case EclipseLink1_1OrmPackage.XML_ID_IMPL__ACCESS:
-				setAccess(ACCESS_EDEFAULT);
-				return;
-		}
-		super.eUnset(featureID);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public boolean eIsSet(int featureID)
-	{
-		switch (featureID)
-		{
-			case EclipseLink1_1OrmPackage.XML_ID_IMPL__ACCESS:
-				return access != ACCESS_EDEFAULT;
-		}
-		return super.eIsSet(featureID);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public int eBaseStructuralFeatureID(int derivedFeatureID, Class<?> baseClass)
-	{
-		if (baseClass == XmlAttributeMapping.class)
-		{
-			switch (derivedFeatureID)
-			{
-				case EclipseLink1_1OrmPackage.XML_ID_IMPL__ACCESS: return EclipseLink1_1OrmPackage.XML_ATTRIBUTE_MAPPING__ACCESS;
-				default: return -1;
-			}
-		}
-		if (baseClass == XmlId.class)
-		{
-			switch (derivedFeatureID)
-			{
-				default: return -1;
-			}
-		}
-		return super.eBaseStructuralFeatureID(derivedFeatureID, baseClass);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public int eDerivedStructuralFeatureID(int baseFeatureID, Class<?> baseClass)
-	{
-		if (baseClass == XmlAttributeMapping.class)
-		{
-			switch (baseFeatureID)
-			{
-				case EclipseLink1_1OrmPackage.XML_ATTRIBUTE_MAPPING__ACCESS: return EclipseLink1_1OrmPackage.XML_ID_IMPL__ACCESS;
-				default: return -1;
-			}
-		}
-		if (baseClass == XmlId.class)
-		{
-			switch (baseFeatureID)
-			{
-				default: return -1;
-			}
-		}
-		return super.eDerivedStructuralFeatureID(baseFeatureID, baseClass);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public String toString()
-	{
-		if (eIsProxy()) return super.toString();
-
-		StringBuffer result = new StringBuffer(super.toString());
-		result.append(" (access: ");
-		result.append(access);
-		result.append(')');
-		return result.toString();
-	}
-
-} // XmlIdImpl
diff --git a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink1_1/core/resource/orm/XmlManyToMany.java b/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink1_1/core/resource/orm/XmlManyToMany.java
deleted file mode 100644
index c2d3041..0000000
--- a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink1_1/core/resource/orm/XmlManyToMany.java
+++ /dev/null
@@ -1,25 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- *******************************************************************************/
-package org.eclipse.jpt.eclipselink1_1.core.resource.orm;
-
-
-/**
- * <!-- begin-user-doc -->
- * A representation of the model object '<em><b>Xml Many To Many</b></em>'.
- * <!-- end-user-doc -->
- *
- *
- * @see org.eclipse.jpt.eclipselink1_1.core.resource.orm.EclipseLink1_1OrmPackage#getXmlManyToMany()
- * @model kind="class" interface="true" abstract="true"
- * @generated
- */
-public interface XmlManyToMany extends org.eclipse.jpt.eclipselink.core.resource.orm.XmlManyToMany, XmlAttributeMapping
-{
-} // XmlManyToMany
diff --git a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink1_1/core/resource/orm/XmlManyToManyImpl.java b/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink1_1/core/resource/orm/XmlManyToManyImpl.java
deleted file mode 100644
index 3975b09..0000000
--- a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink1_1/core/resource/orm/XmlManyToManyImpl.java
+++ /dev/null
@@ -1,243 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- *******************************************************************************/
-package org.eclipse.jpt.eclipselink1_1.core.resource.orm;
-
-import org.eclipse.emf.common.notify.Notification;
-
-import org.eclipse.emf.ecore.EClass;
-
-import org.eclipse.emf.ecore.impl.ENotificationImpl;
-
-import org.eclipse.jpt.core.resource.orm.AccessType;
-
-/**
- * <!-- begin-user-doc -->
- * A representation of the model object '<em><b>Xml Many To Many Impl</b></em>'.
- * <!-- end-user-doc -->
- *
- *
- * @see org.eclipse.jpt.eclipselink1_1.core.resource.orm.EclipseLink1_1OrmPackage#getXmlManyToManyImpl()
- * @model kind="class"
- * @generated
- */
-public class XmlManyToManyImpl extends org.eclipse.jpt.eclipselink.core.resource.orm.XmlManyToManyImpl implements XmlManyToMany
-{
-	/**
-	 * changed this to null and removed the generated flag so emf won't generate over it
-	 * we don't want a default for enums, just null if the tag does not exist
-	 */
-	protected static final AccessType ACCESS_EDEFAULT = null;
-
-	/**
-	 * The cached value of the '{@link #getAccess() <em>Access</em>}' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see #getAccess()
-	 * @generated
-	 * @ordered
-	 */
-	protected AccessType access = ACCESS_EDEFAULT;
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	protected XmlManyToManyImpl()
-	{
-		super();
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	protected EClass eStaticClass()
-	{
-		return EclipseLink1_1OrmPackage.Literals.XML_MANY_TO_MANY_IMPL;
-	}
-
-	/**
-	 * Returns the value of the '<em><b>Access</b></em>' attribute.
-	 * The default value is <code>"PROPERTY"</code>.
-	 * The literals are from the enumeration {@link org.eclipse.jpt.core.resource.orm.AccessType}.
-	 * <!-- begin-user-doc -->
-	 * <p>
-	 * If the meaning of the '<em>Access</em>' attribute isn't clear,
-	 * there really should be more of a description here...
-	 * </p>
-	 * <!-- end-user-doc -->
-	 * @return the value of the '<em>Access</em>' attribute.
-	 * @see org.eclipse.jpt.core.resource.orm.AccessType
-	 * @see #setAccess(AccessType)
-	 * @see org.eclipse.jpt.eclipselink1_1.core.resource.orm.EclipseLink1_1OrmPackage#getXmlAttributeMapping_Access()
-	 * @model default="PROPERTY"
-	 * @generated
-	 */
-	public AccessType getAccess()
-	{
-		return access;
-	}
-
-	/**
-	 * Sets the value of the '{@link org.eclipse.jpt.eclipselink1_1.core.resource.orm.XmlManyToManyImpl#getAccess <em>Access</em>}' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @param value the new value of the '<em>Access</em>' attribute.
-	 * @see org.eclipse.jpt.core.resource.orm.AccessType
-	 * @see #getAccess()
-	 * @generated
-	 */
-	public void setAccess(AccessType newAccess)
-	{
-		AccessType oldAccess = access;
-		access = newAccess == null ? ACCESS_EDEFAULT : newAccess;
-		if (eNotificationRequired())
-			eNotify(new ENotificationImpl(this, Notification.SET, EclipseLink1_1OrmPackage.XML_MANY_TO_MANY_IMPL__ACCESS, oldAccess, access));
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public Object eGet(int featureID, boolean resolve, boolean coreType)
-	{
-		switch (featureID)
-		{
-			case EclipseLink1_1OrmPackage.XML_MANY_TO_MANY_IMPL__ACCESS:
-				return getAccess();
-		}
-		return super.eGet(featureID, resolve, coreType);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public void eSet(int featureID, Object newValue)
-	{
-		switch (featureID)
-		{
-			case EclipseLink1_1OrmPackage.XML_MANY_TO_MANY_IMPL__ACCESS:
-				setAccess((AccessType)newValue);
-				return;
-		}
-		super.eSet(featureID, newValue);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public void eUnset(int featureID)
-	{
-		switch (featureID)
-		{
-			case EclipseLink1_1OrmPackage.XML_MANY_TO_MANY_IMPL__ACCESS:
-				setAccess(ACCESS_EDEFAULT);
-				return;
-		}
-		super.eUnset(featureID);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public boolean eIsSet(int featureID)
-	{
-		switch (featureID)
-		{
-			case EclipseLink1_1OrmPackage.XML_MANY_TO_MANY_IMPL__ACCESS:
-				return access != ACCESS_EDEFAULT;
-		}
-		return super.eIsSet(featureID);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public int eBaseStructuralFeatureID(int derivedFeatureID, Class<?> baseClass)
-	{
-		if (baseClass == XmlAttributeMapping.class)
-		{
-			switch (derivedFeatureID)
-			{
-				case EclipseLink1_1OrmPackage.XML_MANY_TO_MANY_IMPL__ACCESS: return EclipseLink1_1OrmPackage.XML_ATTRIBUTE_MAPPING__ACCESS;
-				default: return -1;
-			}
-		}
-		if (baseClass == XmlManyToMany.class)
-		{
-			switch (derivedFeatureID)
-			{
-				default: return -1;
-			}
-		}
-		return super.eBaseStructuralFeatureID(derivedFeatureID, baseClass);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public int eDerivedStructuralFeatureID(int baseFeatureID, Class<?> baseClass)
-	{
-		if (baseClass == XmlAttributeMapping.class)
-		{
-			switch (baseFeatureID)
-			{
-				case EclipseLink1_1OrmPackage.XML_ATTRIBUTE_MAPPING__ACCESS: return EclipseLink1_1OrmPackage.XML_MANY_TO_MANY_IMPL__ACCESS;
-				default: return -1;
-			}
-		}
-		if (baseClass == XmlManyToMany.class)
-		{
-			switch (baseFeatureID)
-			{
-				default: return -1;
-			}
-		}
-		return super.eDerivedStructuralFeatureID(baseFeatureID, baseClass);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public String toString()
-	{
-		if (eIsProxy()) return super.toString();
-
-		StringBuffer result = new StringBuffer(super.toString());
-		result.append(" (access: ");
-		result.append(access);
-		result.append(')');
-		return result.toString();
-	}
-
-} // XmlManyToManyImpl
diff --git a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink1_1/core/resource/orm/XmlManyToOne.java b/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink1_1/core/resource/orm/XmlManyToOne.java
deleted file mode 100644
index 1e434d7..0000000
--- a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink1_1/core/resource/orm/XmlManyToOne.java
+++ /dev/null
@@ -1,25 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- *******************************************************************************/
-package org.eclipse.jpt.eclipselink1_1.core.resource.orm;
-
-
-/**
- * <!-- begin-user-doc -->
- * A representation of the model object '<em><b>Xml Many To One</b></em>'.
- * <!-- end-user-doc -->
- *
- *
- * @see org.eclipse.jpt.eclipselink1_1.core.resource.orm.EclipseLink1_1OrmPackage#getXmlManyToOne()
- * @model kind="class" interface="true" abstract="true"
- * @generated
- */
-public interface XmlManyToOne extends org.eclipse.jpt.eclipselink.core.resource.orm.XmlManyToOne, XmlAttributeMapping
-{
-} // XmlManyToOne
diff --git a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink1_1/core/resource/orm/XmlManyToOneImpl.java b/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink1_1/core/resource/orm/XmlManyToOneImpl.java
deleted file mode 100644
index d53a260..0000000
--- a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink1_1/core/resource/orm/XmlManyToOneImpl.java
+++ /dev/null
@@ -1,243 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- *******************************************************************************/
-package org.eclipse.jpt.eclipselink1_1.core.resource.orm;
-
-import org.eclipse.emf.common.notify.Notification;
-
-import org.eclipse.emf.ecore.EClass;
-
-import org.eclipse.emf.ecore.impl.ENotificationImpl;
-
-import org.eclipse.jpt.core.resource.orm.AccessType;
-
-/**
- * <!-- begin-user-doc -->
- * A representation of the model object '<em><b>Xml Many To One Impl</b></em>'.
- * <!-- end-user-doc -->
- *
- *
- * @see org.eclipse.jpt.eclipselink1_1.core.resource.orm.EclipseLink1_1OrmPackage#getXmlManyToOneImpl()
- * @model kind="class"
- * @generated
- */
-public class XmlManyToOneImpl extends org.eclipse.jpt.eclipselink.core.resource.orm.XmlManyToOneImpl implements XmlManyToOne
-{
-	/**
-	 * changed this to null and removed the generated flag so emf won't generate over it
-	 * we don't want a default for enums, just null if the tag does not exist
-	 */
-	protected static final AccessType ACCESS_EDEFAULT = null;
-
-	/**
-	 * The cached value of the '{@link #getAccess() <em>Access</em>}' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see #getAccess()
-	 * @generated
-	 * @ordered
-	 */
-	protected AccessType access = ACCESS_EDEFAULT;
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	protected XmlManyToOneImpl()
-	{
-		super();
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	protected EClass eStaticClass()
-	{
-		return EclipseLink1_1OrmPackage.Literals.XML_MANY_TO_ONE_IMPL;
-	}
-
-	/**
-	 * Returns the value of the '<em><b>Access</b></em>' attribute.
-	 * The default value is <code>"PROPERTY"</code>.
-	 * The literals are from the enumeration {@link org.eclipse.jpt.core.resource.orm.AccessType}.
-	 * <!-- begin-user-doc -->
-	 * <p>
-	 * If the meaning of the '<em>Access</em>' attribute isn't clear,
-	 * there really should be more of a description here...
-	 * </p>
-	 * <!-- end-user-doc -->
-	 * @return the value of the '<em>Access</em>' attribute.
-	 * @see org.eclipse.jpt.core.resource.orm.AccessType
-	 * @see #setAccess(AccessType)
-	 * @see org.eclipse.jpt.eclipselink1_1.core.resource.orm.EclipseLink1_1OrmPackage#getXmlAttributeMapping_Access()
-	 * @model default="PROPERTY"
-	 * @generated
-	 */
-	public AccessType getAccess()
-	{
-		return access;
-	}
-
-	/**
-	 * Sets the value of the '{@link org.eclipse.jpt.eclipselink1_1.core.resource.orm.XmlManyToOneImpl#getAccess <em>Access</em>}' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @param value the new value of the '<em>Access</em>' attribute.
-	 * @see org.eclipse.jpt.core.resource.orm.AccessType
-	 * @see #getAccess()
-	 * @generated
-	 */
-	public void setAccess(AccessType newAccess)
-	{
-		AccessType oldAccess = access;
-		access = newAccess == null ? ACCESS_EDEFAULT : newAccess;
-		if (eNotificationRequired())
-			eNotify(new ENotificationImpl(this, Notification.SET, EclipseLink1_1OrmPackage.XML_MANY_TO_ONE_IMPL__ACCESS, oldAccess, access));
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public Object eGet(int featureID, boolean resolve, boolean coreType)
-	{
-		switch (featureID)
-		{
-			case EclipseLink1_1OrmPackage.XML_MANY_TO_ONE_IMPL__ACCESS:
-				return getAccess();
-		}
-		return super.eGet(featureID, resolve, coreType);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public void eSet(int featureID, Object newValue)
-	{
-		switch (featureID)
-		{
-			case EclipseLink1_1OrmPackage.XML_MANY_TO_ONE_IMPL__ACCESS:
-				setAccess((AccessType)newValue);
-				return;
-		}
-		super.eSet(featureID, newValue);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public void eUnset(int featureID)
-	{
-		switch (featureID)
-		{
-			case EclipseLink1_1OrmPackage.XML_MANY_TO_ONE_IMPL__ACCESS:
-				setAccess(ACCESS_EDEFAULT);
-				return;
-		}
-		super.eUnset(featureID);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public boolean eIsSet(int featureID)
-	{
-		switch (featureID)
-		{
-			case EclipseLink1_1OrmPackage.XML_MANY_TO_ONE_IMPL__ACCESS:
-				return access != ACCESS_EDEFAULT;
-		}
-		return super.eIsSet(featureID);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public int eBaseStructuralFeatureID(int derivedFeatureID, Class<?> baseClass)
-	{
-		if (baseClass == XmlAttributeMapping.class)
-		{
-			switch (derivedFeatureID)
-			{
-				case EclipseLink1_1OrmPackage.XML_MANY_TO_ONE_IMPL__ACCESS: return EclipseLink1_1OrmPackage.XML_ATTRIBUTE_MAPPING__ACCESS;
-				default: return -1;
-			}
-		}
-		if (baseClass == XmlManyToOne.class)
-		{
-			switch (derivedFeatureID)
-			{
-				default: return -1;
-			}
-		}
-		return super.eBaseStructuralFeatureID(derivedFeatureID, baseClass);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public int eDerivedStructuralFeatureID(int baseFeatureID, Class<?> baseClass)
-	{
-		if (baseClass == XmlAttributeMapping.class)
-		{
-			switch (baseFeatureID)
-			{
-				case EclipseLink1_1OrmPackage.XML_ATTRIBUTE_MAPPING__ACCESS: return EclipseLink1_1OrmPackage.XML_MANY_TO_ONE_IMPL__ACCESS;
-				default: return -1;
-			}
-		}
-		if (baseClass == XmlManyToOne.class)
-		{
-			switch (baseFeatureID)
-			{
-				default: return -1;
-			}
-		}
-		return super.eDerivedStructuralFeatureID(baseFeatureID, baseClass);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public String toString()
-	{
-		if (eIsProxy()) return super.toString();
-
-		StringBuffer result = new StringBuffer(super.toString());
-		result.append(" (access: ");
-		result.append(access);
-		result.append(')');
-		return result.toString();
-	}
-
-} // XmlManyToOneImpl
diff --git a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink1_1/core/resource/orm/XmlOneToMany.java b/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink1_1/core/resource/orm/XmlOneToMany.java
deleted file mode 100644
index a96e819..0000000
--- a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink1_1/core/resource/orm/XmlOneToMany.java
+++ /dev/null
@@ -1,25 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- *******************************************************************************/
-package org.eclipse.jpt.eclipselink1_1.core.resource.orm;
-
-
-/**
- * <!-- begin-user-doc -->
- * A representation of the model object '<em><b>Xml One To Many</b></em>'.
- * <!-- end-user-doc -->
- *
- *
- * @see org.eclipse.jpt.eclipselink1_1.core.resource.orm.EclipseLink1_1OrmPackage#getXmlOneToMany()
- * @model kind="class" interface="true" abstract="true"
- * @generated
- */
-public interface XmlOneToMany extends org.eclipse.jpt.eclipselink.core.resource.orm.XmlOneToMany, XmlAttributeMapping
-{
-} // XmlOneToMany
diff --git a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink1_1/core/resource/orm/XmlOneToManyImpl.java b/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink1_1/core/resource/orm/XmlOneToManyImpl.java
deleted file mode 100644
index 1bd3d83..0000000
--- a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink1_1/core/resource/orm/XmlOneToManyImpl.java
+++ /dev/null
@@ -1,243 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- *******************************************************************************/
-package org.eclipse.jpt.eclipselink1_1.core.resource.orm;
-
-import org.eclipse.emf.common.notify.Notification;
-
-import org.eclipse.emf.ecore.EClass;
-
-import org.eclipse.emf.ecore.impl.ENotificationImpl;
-
-import org.eclipse.jpt.core.resource.orm.AccessType;
-
-/**
- * <!-- begin-user-doc -->
- * A representation of the model object '<em><b>Xml One To Many Impl</b></em>'.
- * <!-- end-user-doc -->
- *
- *
- * @see org.eclipse.jpt.eclipselink1_1.core.resource.orm.EclipseLink1_1OrmPackage#getXmlOneToManyImpl()
- * @model kind="class"
- * @generated
- */
-public class XmlOneToManyImpl extends org.eclipse.jpt.eclipselink.core.resource.orm.XmlOneToManyImpl implements XmlOneToMany
-{
-	/**
-	 * changed this to null and removed the generated flag so emf won't generate over it
-	 * we don't want a default for enums, just null if the tag does not exist
-	 */
-	protected static final AccessType ACCESS_EDEFAULT = null;
-
-	/**
-	 * The cached value of the '{@link #getAccess() <em>Access</em>}' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see #getAccess()
-	 * @generated
-	 * @ordered
-	 */
-	protected AccessType access = ACCESS_EDEFAULT;
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	protected XmlOneToManyImpl()
-	{
-		super();
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	protected EClass eStaticClass()
-	{
-		return EclipseLink1_1OrmPackage.Literals.XML_ONE_TO_MANY_IMPL;
-	}
-
-	/**
-	 * Returns the value of the '<em><b>Access</b></em>' attribute.
-	 * The default value is <code>"PROPERTY"</code>.
-	 * The literals are from the enumeration {@link org.eclipse.jpt.core.resource.orm.AccessType}.
-	 * <!-- begin-user-doc -->
-	 * <p>
-	 * If the meaning of the '<em>Access</em>' attribute isn't clear,
-	 * there really should be more of a description here...
-	 * </p>
-	 * <!-- end-user-doc -->
-	 * @return the value of the '<em>Access</em>' attribute.
-	 * @see org.eclipse.jpt.core.resource.orm.AccessType
-	 * @see #setAccess(AccessType)
-	 * @see org.eclipse.jpt.eclipselink1_1.core.resource.orm.EclipseLink1_1OrmPackage#getXmlAttributeMapping_Access()
-	 * @model default="PROPERTY"
-	 * @generated
-	 */
-	public AccessType getAccess()
-	{
-		return access;
-	}
-
-	/**
-	 * Sets the value of the '{@link org.eclipse.jpt.eclipselink1_1.core.resource.orm.XmlOneToManyImpl#getAccess <em>Access</em>}' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @param value the new value of the '<em>Access</em>' attribute.
-	 * @see org.eclipse.jpt.core.resource.orm.AccessType
-	 * @see #getAccess()
-	 * @generated
-	 */
-	public void setAccess(AccessType newAccess)
-	{
-		AccessType oldAccess = access;
-		access = newAccess == null ? ACCESS_EDEFAULT : newAccess;
-		if (eNotificationRequired())
-			eNotify(new ENotificationImpl(this, Notification.SET, EclipseLink1_1OrmPackage.XML_ONE_TO_MANY_IMPL__ACCESS, oldAccess, access));
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public Object eGet(int featureID, boolean resolve, boolean coreType)
-	{
-		switch (featureID)
-		{
-			case EclipseLink1_1OrmPackage.XML_ONE_TO_MANY_IMPL__ACCESS:
-				return getAccess();
-		}
-		return super.eGet(featureID, resolve, coreType);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public void eSet(int featureID, Object newValue)
-	{
-		switch (featureID)
-		{
-			case EclipseLink1_1OrmPackage.XML_ONE_TO_MANY_IMPL__ACCESS:
-				setAccess((AccessType)newValue);
-				return;
-		}
-		super.eSet(featureID, newValue);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public void eUnset(int featureID)
-	{
-		switch (featureID)
-		{
-			case EclipseLink1_1OrmPackage.XML_ONE_TO_MANY_IMPL__ACCESS:
-				setAccess(ACCESS_EDEFAULT);
-				return;
-		}
-		super.eUnset(featureID);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public boolean eIsSet(int featureID)
-	{
-		switch (featureID)
-		{
-			case EclipseLink1_1OrmPackage.XML_ONE_TO_MANY_IMPL__ACCESS:
-				return access != ACCESS_EDEFAULT;
-		}
-		return super.eIsSet(featureID);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public int eBaseStructuralFeatureID(int derivedFeatureID, Class<?> baseClass)
-	{
-		if (baseClass == XmlAttributeMapping.class)
-		{
-			switch (derivedFeatureID)
-			{
-				case EclipseLink1_1OrmPackage.XML_ONE_TO_MANY_IMPL__ACCESS: return EclipseLink1_1OrmPackage.XML_ATTRIBUTE_MAPPING__ACCESS;
-				default: return -1;
-			}
-		}
-		if (baseClass == XmlOneToMany.class)
-		{
-			switch (derivedFeatureID)
-			{
-				default: return -1;
-			}
-		}
-		return super.eBaseStructuralFeatureID(derivedFeatureID, baseClass);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public int eDerivedStructuralFeatureID(int baseFeatureID, Class<?> baseClass)
-	{
-		if (baseClass == XmlAttributeMapping.class)
-		{
-			switch (baseFeatureID)
-			{
-				case EclipseLink1_1OrmPackage.XML_ATTRIBUTE_MAPPING__ACCESS: return EclipseLink1_1OrmPackage.XML_ONE_TO_MANY_IMPL__ACCESS;
-				default: return -1;
-			}
-		}
-		if (baseClass == XmlOneToMany.class)
-		{
-			switch (baseFeatureID)
-			{
-				default: return -1;
-			}
-		}
-		return super.eDerivedStructuralFeatureID(baseFeatureID, baseClass);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public String toString()
-	{
-		if (eIsProxy()) return super.toString();
-
-		StringBuffer result = new StringBuffer(super.toString());
-		result.append(" (access: ");
-		result.append(access);
-		result.append(')');
-		return result.toString();
-	}
-
-} // XmlOneToManyImpl
diff --git a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink1_1/core/resource/orm/XmlOneToOne.java b/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink1_1/core/resource/orm/XmlOneToOne.java
deleted file mode 100644
index c4b689c..0000000
--- a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink1_1/core/resource/orm/XmlOneToOne.java
+++ /dev/null
@@ -1,25 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- *******************************************************************************/
-package org.eclipse.jpt.eclipselink1_1.core.resource.orm;
-
-
-/**
- * <!-- begin-user-doc -->
- * A representation of the model object '<em><b>Xml One To One</b></em>'.
- * <!-- end-user-doc -->
- *
- *
- * @see org.eclipse.jpt.eclipselink1_1.core.resource.orm.EclipseLink1_1OrmPackage#getXmlOneToOne()
- * @model kind="class" interface="true" abstract="true"
- * @generated
- */
-public interface XmlOneToOne extends org.eclipse.jpt.eclipselink.core.resource.orm.XmlOneToOne, XmlAttributeMapping
-{
-} // XmlOneToOne
diff --git a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink1_1/core/resource/orm/XmlOneToOneImpl.java b/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink1_1/core/resource/orm/XmlOneToOneImpl.java
deleted file mode 100644
index 6125f57..0000000
--- a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink1_1/core/resource/orm/XmlOneToOneImpl.java
+++ /dev/null
@@ -1,243 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- *******************************************************************************/
-package org.eclipse.jpt.eclipselink1_1.core.resource.orm;
-
-import org.eclipse.emf.common.notify.Notification;
-
-import org.eclipse.emf.ecore.EClass;
-
-import org.eclipse.emf.ecore.impl.ENotificationImpl;
-
-import org.eclipse.jpt.core.resource.orm.AccessType;
-
-/**
- * <!-- begin-user-doc -->
- * A representation of the model object '<em><b>Xml One To One Impl</b></em>'.
- * <!-- end-user-doc -->
- *
- *
- * @see org.eclipse.jpt.eclipselink1_1.core.resource.orm.EclipseLink1_1OrmPackage#getXmlOneToOneImpl()
- * @model kind="class"
- * @generated
- */
-public class XmlOneToOneImpl extends org.eclipse.jpt.eclipselink.core.resource.orm.XmlOneToOneImpl implements XmlOneToOne
-{
-	/**
-	 * changed this to null and removed the generated flag so emf won't generate over it
-	 * we don't want a default for enums, just null if the tag does not exist
-	 */
-	protected static final AccessType ACCESS_EDEFAULT = null;
-
-	/**
-	 * The cached value of the '{@link #getAccess() <em>Access</em>}' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see #getAccess()
-	 * @generated
-	 * @ordered
-	 */
-	protected AccessType access = ACCESS_EDEFAULT;
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	protected XmlOneToOneImpl()
-	{
-		super();
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	protected EClass eStaticClass()
-	{
-		return EclipseLink1_1OrmPackage.Literals.XML_ONE_TO_ONE_IMPL;
-	}
-
-	/**
-	 * Returns the value of the '<em><b>Access</b></em>' attribute.
-	 * The default value is <code>"PROPERTY"</code>.
-	 * The literals are from the enumeration {@link org.eclipse.jpt.core.resource.orm.AccessType}.
-	 * <!-- begin-user-doc -->
-	 * <p>
-	 * If the meaning of the '<em>Access</em>' attribute isn't clear,
-	 * there really should be more of a description here...
-	 * </p>
-	 * <!-- end-user-doc -->
-	 * @return the value of the '<em>Access</em>' attribute.
-	 * @see org.eclipse.jpt.core.resource.orm.AccessType
-	 * @see #setAccess(AccessType)
-	 * @see org.eclipse.jpt.eclipselink1_1.core.resource.orm.EclipseLink1_1OrmPackage#getXmlAttributeMapping_Access()
-	 * @model default="PROPERTY"
-	 * @generated
-	 */
-	public AccessType getAccess()
-	{
-		return access;
-	}
-
-	/**
-	 * Sets the value of the '{@link org.eclipse.jpt.eclipselink1_1.core.resource.orm.XmlOneToOneImpl#getAccess <em>Access</em>}' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @param value the new value of the '<em>Access</em>' attribute.
-	 * @see org.eclipse.jpt.core.resource.orm.AccessType
-	 * @see #getAccess()
-	 * @generated
-	 */
-	public void setAccess(AccessType newAccess)
-	{
-		AccessType oldAccess = access;
-		access = newAccess == null ? ACCESS_EDEFAULT : newAccess;
-		if (eNotificationRequired())
-			eNotify(new ENotificationImpl(this, Notification.SET, EclipseLink1_1OrmPackage.XML_ONE_TO_ONE_IMPL__ACCESS, oldAccess, access));
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public Object eGet(int featureID, boolean resolve, boolean coreType)
-	{
-		switch (featureID)
-		{
-			case EclipseLink1_1OrmPackage.XML_ONE_TO_ONE_IMPL__ACCESS:
-				return getAccess();
-		}
-		return super.eGet(featureID, resolve, coreType);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public void eSet(int featureID, Object newValue)
-	{
-		switch (featureID)
-		{
-			case EclipseLink1_1OrmPackage.XML_ONE_TO_ONE_IMPL__ACCESS:
-				setAccess((AccessType)newValue);
-				return;
-		}
-		super.eSet(featureID, newValue);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public void eUnset(int featureID)
-	{
-		switch (featureID)
-		{
-			case EclipseLink1_1OrmPackage.XML_ONE_TO_ONE_IMPL__ACCESS:
-				setAccess(ACCESS_EDEFAULT);
-				return;
-		}
-		super.eUnset(featureID);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public boolean eIsSet(int featureID)
-	{
-		switch (featureID)
-		{
-			case EclipseLink1_1OrmPackage.XML_ONE_TO_ONE_IMPL__ACCESS:
-				return access != ACCESS_EDEFAULT;
-		}
-		return super.eIsSet(featureID);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public int eBaseStructuralFeatureID(int derivedFeatureID, Class<?> baseClass)
-	{
-		if (baseClass == XmlAttributeMapping.class)
-		{
-			switch (derivedFeatureID)
-			{
-				case EclipseLink1_1OrmPackage.XML_ONE_TO_ONE_IMPL__ACCESS: return EclipseLink1_1OrmPackage.XML_ATTRIBUTE_MAPPING__ACCESS;
-				default: return -1;
-			}
-		}
-		if (baseClass == XmlOneToOne.class)
-		{
-			switch (derivedFeatureID)
-			{
-				default: return -1;
-			}
-		}
-		return super.eBaseStructuralFeatureID(derivedFeatureID, baseClass);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public int eDerivedStructuralFeatureID(int baseFeatureID, Class<?> baseClass)
-	{
-		if (baseClass == XmlAttributeMapping.class)
-		{
-			switch (baseFeatureID)
-			{
-				case EclipseLink1_1OrmPackage.XML_ATTRIBUTE_MAPPING__ACCESS: return EclipseLink1_1OrmPackage.XML_ONE_TO_ONE_IMPL__ACCESS;
-				default: return -1;
-			}
-		}
-		if (baseClass == XmlOneToOne.class)
-		{
-			switch (baseFeatureID)
-			{
-				default: return -1;
-			}
-		}
-		return super.eDerivedStructuralFeatureID(baseFeatureID, baseClass);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public String toString()
-	{
-		if (eIsProxy()) return super.toString();
-
-		StringBuffer result = new StringBuffer(super.toString());
-		result.append(" (access: ");
-		result.append(access);
-		result.append(')');
-		return result.toString();
-	}
-
-} // XmlOneToOneImpl
diff --git a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink1_1/core/resource/orm/XmlTransformation.java b/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink1_1/core/resource/orm/XmlTransformation.java
deleted file mode 100644
index 7a025a0..0000000
--- a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink1_1/core/resource/orm/XmlTransformation.java
+++ /dev/null
@@ -1,25 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- *******************************************************************************/
-package org.eclipse.jpt.eclipselink1_1.core.resource.orm;
-
-
-/**
- * <!-- begin-user-doc -->
- * A representation of the model object '<em><b>Xml Transformation</b></em>'.
- * <!-- end-user-doc -->
- *
- *
- * @see org.eclipse.jpt.eclipselink1_1.core.resource.orm.EclipseLink1_1OrmPackage#getXmlTransformation()
- * @model kind="class" interface="true" abstract="true"
- * @generated
- */
-public interface XmlTransformation extends org.eclipse.jpt.eclipselink.core.resource.orm.XmlTransformation, XmlAttributeMapping
-{
-} // XmlTransformation
diff --git a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink1_1/core/resource/orm/XmlTransformationImpl.java b/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink1_1/core/resource/orm/XmlTransformationImpl.java
deleted file mode 100644
index 8822073..0000000
--- a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink1_1/core/resource/orm/XmlTransformationImpl.java
+++ /dev/null
@@ -1,243 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- *******************************************************************************/
-package org.eclipse.jpt.eclipselink1_1.core.resource.orm;
-
-import org.eclipse.emf.common.notify.Notification;
-
-import org.eclipse.emf.ecore.EClass;
-
-import org.eclipse.emf.ecore.impl.ENotificationImpl;
-
-import org.eclipse.jpt.core.resource.orm.AccessType;
-
-/**
- * <!-- begin-user-doc -->
- * A representation of the model object '<em><b>Xml Transformation Impl</b></em>'.
- * <!-- end-user-doc -->
- *
- *
- * @see org.eclipse.jpt.eclipselink1_1.core.resource.orm.EclipseLink1_1OrmPackage#getXmlTransformationImpl()
- * @model kind="class"
- * @generated
- */
-public class XmlTransformationImpl extends org.eclipse.jpt.eclipselink.core.resource.orm.XmlTransformationImpl implements XmlTransformation
-{
-	/**
-	 * changed this to null and removed the generated flag so emf won't generate over it
-	 * we don't want a default for enums, just null if the tag does not exist
-	 */
-	protected static final AccessType ACCESS_EDEFAULT = null;
-
-	/**
-	 * The cached value of the '{@link #getAccess() <em>Access</em>}' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see #getAccess()
-	 * @generated
-	 * @ordered
-	 */
-	protected AccessType access = ACCESS_EDEFAULT;
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	protected XmlTransformationImpl()
-	{
-		super();
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	protected EClass eStaticClass()
-	{
-		return EclipseLink1_1OrmPackage.Literals.XML_TRANSFORMATION_IMPL;
-	}
-
-	/**
-	 * Returns the value of the '<em><b>Access</b></em>' attribute.
-	 * The default value is <code>"PROPERTY"</code>.
-	 * The literals are from the enumeration {@link org.eclipse.jpt.core.resource.orm.AccessType}.
-	 * <!-- begin-user-doc -->
-	 * <p>
-	 * If the meaning of the '<em>Access</em>' attribute isn't clear,
-	 * there really should be more of a description here...
-	 * </p>
-	 * <!-- end-user-doc -->
-	 * @return the value of the '<em>Access</em>' attribute.
-	 * @see org.eclipse.jpt.core.resource.orm.AccessType
-	 * @see #setAccess(AccessType)
-	 * @see org.eclipse.jpt.eclipselink1_1.core.resource.orm.EclipseLink1_1OrmPackage#getXmlAttributeMapping_Access()
-	 * @model default="PROPERTY"
-	 * @generated
-	 */
-	public AccessType getAccess()
-	{
-		return access;
-	}
-
-	/**
-	 * Sets the value of the '{@link org.eclipse.jpt.eclipselink1_1.core.resource.orm.XmlTransformationImpl#getAccess <em>Access</em>}' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @param value the new value of the '<em>Access</em>' attribute.
-	 * @see org.eclipse.jpt.core.resource.orm.AccessType
-	 * @see #getAccess()
-	 * @generated
-	 */
-	public void setAccess(AccessType newAccess)
-	{
-		AccessType oldAccess = access;
-		access = newAccess == null ? ACCESS_EDEFAULT : newAccess;
-		if (eNotificationRequired())
-			eNotify(new ENotificationImpl(this, Notification.SET, EclipseLink1_1OrmPackage.XML_TRANSFORMATION_IMPL__ACCESS, oldAccess, access));
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public Object eGet(int featureID, boolean resolve, boolean coreType)
-	{
-		switch (featureID)
-		{
-			case EclipseLink1_1OrmPackage.XML_TRANSFORMATION_IMPL__ACCESS:
-				return getAccess();
-		}
-		return super.eGet(featureID, resolve, coreType);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public void eSet(int featureID, Object newValue)
-	{
-		switch (featureID)
-		{
-			case EclipseLink1_1OrmPackage.XML_TRANSFORMATION_IMPL__ACCESS:
-				setAccess((AccessType)newValue);
-				return;
-		}
-		super.eSet(featureID, newValue);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public void eUnset(int featureID)
-	{
-		switch (featureID)
-		{
-			case EclipseLink1_1OrmPackage.XML_TRANSFORMATION_IMPL__ACCESS:
-				setAccess(ACCESS_EDEFAULT);
-				return;
-		}
-		super.eUnset(featureID);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public boolean eIsSet(int featureID)
-	{
-		switch (featureID)
-		{
-			case EclipseLink1_1OrmPackage.XML_TRANSFORMATION_IMPL__ACCESS:
-				return access != ACCESS_EDEFAULT;
-		}
-		return super.eIsSet(featureID);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public int eBaseStructuralFeatureID(int derivedFeatureID, Class<?> baseClass)
-	{
-		if (baseClass == XmlAttributeMapping.class)
-		{
-			switch (derivedFeatureID)
-			{
-				case EclipseLink1_1OrmPackage.XML_TRANSFORMATION_IMPL__ACCESS: return EclipseLink1_1OrmPackage.XML_ATTRIBUTE_MAPPING__ACCESS;
-				default: return -1;
-			}
-		}
-		if (baseClass == XmlTransformation.class)
-		{
-			switch (derivedFeatureID)
-			{
-				default: return -1;
-			}
-		}
-		return super.eBaseStructuralFeatureID(derivedFeatureID, baseClass);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public int eDerivedStructuralFeatureID(int baseFeatureID, Class<?> baseClass)
-	{
-		if (baseClass == XmlAttributeMapping.class)
-		{
-			switch (baseFeatureID)
-			{
-				case EclipseLink1_1OrmPackage.XML_ATTRIBUTE_MAPPING__ACCESS: return EclipseLink1_1OrmPackage.XML_TRANSFORMATION_IMPL__ACCESS;
-				default: return -1;
-			}
-		}
-		if (baseClass == XmlTransformation.class)
-		{
-			switch (baseFeatureID)
-			{
-				default: return -1;
-			}
-		}
-		return super.eDerivedStructuralFeatureID(baseFeatureID, baseClass);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public String toString()
-	{
-		if (eIsProxy()) return super.toString();
-
-		StringBuffer result = new StringBuffer(super.toString());
-		result.append(" (access: ");
-		result.append(access);
-		result.append(')');
-		return result.toString();
-	}
-
-} // XmlTransformationImpl
diff --git a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink1_1/core/resource/orm/XmlTransient.java b/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink1_1/core/resource/orm/XmlTransient.java
deleted file mode 100644
index 31c681f..0000000
--- a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink1_1/core/resource/orm/XmlTransient.java
+++ /dev/null
@@ -1,25 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- *******************************************************************************/
-package org.eclipse.jpt.eclipselink1_1.core.resource.orm;
-
-
-/**
- * <!-- begin-user-doc -->
- * A representation of the model object '<em><b>Xml Transient</b></em>'.
- * <!-- end-user-doc -->
- *
- *
- * @see org.eclipse.jpt.eclipselink1_1.core.resource.orm.EclipseLink1_1OrmPackage#getXmlTransient()
- * @model kind="class" interface="true" abstract="true"
- * @generated
- */
-public interface XmlTransient extends org.eclipse.jpt.core.resource.orm.XmlTransient, XmlAttributeMapping
-{
-} // XmlTransient
diff --git a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink1_1/core/resource/orm/XmlTransientImpl.java b/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink1_1/core/resource/orm/XmlTransientImpl.java
deleted file mode 100644
index 2dd304a..0000000
--- a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink1_1/core/resource/orm/XmlTransientImpl.java
+++ /dev/null
@@ -1,234 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- *******************************************************************************/
-package org.eclipse.jpt.eclipselink1_1.core.resource.orm;
-
-import org.eclipse.emf.common.notify.Notification;
-import org.eclipse.emf.ecore.EClass;
-
-import org.eclipse.emf.ecore.impl.ENotificationImpl;
-import org.eclipse.jpt.core.resource.orm.AccessType;
-
-/**
- * <!-- begin-user-doc -->
- * A representation of the model object '<em><b>Xml Transient Impl</b></em>'.
- * <!-- end-user-doc -->
- *
- *
- * @see org.eclipse.jpt.eclipselink1_1.core.resource.orm.EclipseLink1_1OrmPackage#getXmlTransientImpl()
- * @model kind="class"
- * @generated
- */
-public class XmlTransientImpl extends org.eclipse.jpt.core.resource.orm.XmlTransientImpl implements XmlTransient
-{
-	/**
-	 * changed this to null and removed the generated flag so emf won't generate over it
-	 * we don't want a default for enums, just null if the tag does not exist
-	 */
-	protected static final AccessType ACCESS_EDEFAULT = null;
-
-	/**
-	 * The cached value of the '{@link #getAccess() <em>Access</em>}' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see #getAccess()
-	 * @generated
-	 * @ordered
-	 */
-	protected AccessType access = ACCESS_EDEFAULT;
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	protected XmlTransientImpl()
-	{
-		super();
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	protected EClass eStaticClass()
-	{
-		return EclipseLink1_1OrmPackage.Literals.XML_TRANSIENT_IMPL;
-	}
-
-	/**
-	 * Returns the value of the '<em><b>Access</b></em>' attribute.
-	 * The default value is <code>"PROPERTY"</code>.
-	 * The literals are from the enumeration {@link org.eclipse.jpt.core.resource.orm.AccessType}.
-	 * <!-- begin-user-doc -->
-	 * <p>
-	 * If the meaning of the '<em>Access</em>' attribute isn't clear,
-	 * there really should be more of a description here...
-	 * </p>
-	 * <!-- end-user-doc -->
-	 * @return the value of the '<em>Access</em>' attribute.
-	 * @see org.eclipse.jpt.core.resource.orm.AccessType
-	 * @see #setAccess(AccessType)
-	 * @see org.eclipse.jpt.eclipselink1_1.core.resource.orm.EclipseLink1_1OrmPackage#getXmlAttributeMapping_Access()
-	 * @model default="PROPERTY"
-	 * @generated
-	 */
-	public AccessType getAccess()
-	{
-		return access;
-	}
-
-	/**
-	 * AccessType is not supported on xml transient mappings, but we wanted XmlTransient
-	 * to impleemnt XmlAttributeMapping so all the eclipselink1.1 attribute mappings
-	 * can be used interchangeably.
-	 */
-	public void setAccess(AccessType newAccess)
-	{
-		throw new UnsupportedOperationException("Access Type is not supported on transients");
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public Object eGet(int featureID, boolean resolve, boolean coreType)
-	{
-		switch (featureID)
-		{
-			case EclipseLink1_1OrmPackage.XML_TRANSIENT_IMPL__ACCESS:
-				return getAccess();
-		}
-		return super.eGet(featureID, resolve, coreType);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public void eSet(int featureID, Object newValue)
-	{
-		switch (featureID)
-		{
-			case EclipseLink1_1OrmPackage.XML_TRANSIENT_IMPL__ACCESS:
-				setAccess((AccessType)newValue);
-				return;
-		}
-		super.eSet(featureID, newValue);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public void eUnset(int featureID)
-	{
-		switch (featureID)
-		{
-			case EclipseLink1_1OrmPackage.XML_TRANSIENT_IMPL__ACCESS:
-				setAccess(ACCESS_EDEFAULT);
-				return;
-		}
-		super.eUnset(featureID);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public boolean eIsSet(int featureID)
-	{
-		switch (featureID)
-		{
-			case EclipseLink1_1OrmPackage.XML_TRANSIENT_IMPL__ACCESS:
-				return access != ACCESS_EDEFAULT;
-		}
-		return super.eIsSet(featureID);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public int eBaseStructuralFeatureID(int derivedFeatureID, Class<?> baseClass)
-	{
-		if (baseClass == XmlAttributeMapping.class)
-		{
-			switch (derivedFeatureID)
-			{
-				case EclipseLink1_1OrmPackage.XML_TRANSIENT_IMPL__ACCESS: return EclipseLink1_1OrmPackage.XML_ATTRIBUTE_MAPPING__ACCESS;
-				default: return -1;
-			}
-		}
-		if (baseClass == XmlTransient.class)
-		{
-			switch (derivedFeatureID)
-			{
-				default: return -1;
-			}
-		}
-		return super.eBaseStructuralFeatureID(derivedFeatureID, baseClass);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public int eDerivedStructuralFeatureID(int baseFeatureID, Class<?> baseClass)
-	{
-		if (baseClass == XmlAttributeMapping.class)
-		{
-			switch (baseFeatureID)
-			{
-				case EclipseLink1_1OrmPackage.XML_ATTRIBUTE_MAPPING__ACCESS: return EclipseLink1_1OrmPackage.XML_TRANSIENT_IMPL__ACCESS;
-				default: return -1;
-			}
-		}
-		if (baseClass == XmlTransient.class)
-		{
-			switch (baseFeatureID)
-			{
-				default: return -1;
-			}
-		}
-		return super.eDerivedStructuralFeatureID(baseFeatureID, baseClass);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public String toString()
-	{
-		if (eIsProxy()) return super.toString();
-
-		StringBuffer result = new StringBuffer(super.toString());
-		result.append(" (access: ");
-		result.append(access);
-		result.append(')');
-		return result.toString();
-	}
-
-} // XmlTransientImpl
diff --git a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink1_1/core/resource/orm/XmlVariableOneToOne.java b/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink1_1/core/resource/orm/XmlVariableOneToOne.java
deleted file mode 100644
index 3570df6..0000000
--- a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink1_1/core/resource/orm/XmlVariableOneToOne.java
+++ /dev/null
@@ -1,25 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- *******************************************************************************/
-package org.eclipse.jpt.eclipselink1_1.core.resource.orm;
-
-
-/**
- * <!-- begin-user-doc -->
- * A representation of the model object '<em><b>Xml Variable One To One</b></em>'.
- * <!-- end-user-doc -->
- *
- *
- * @see org.eclipse.jpt.eclipselink1_1.core.resource.orm.EclipseLink1_1OrmPackage#getXmlVariableOneToOne()
- * @model kind="class" interface="true" abstract="true"
- * @generated
- */
-public interface XmlVariableOneToOne extends org.eclipse.jpt.eclipselink.core.resource.orm.XmlVariableOneToOne, XmlAttributeMapping
-{
-} // XmlVariableOneToOne
diff --git a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink1_1/core/resource/orm/XmlVariableOneToOneImpl.java b/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink1_1/core/resource/orm/XmlVariableOneToOneImpl.java
deleted file mode 100644
index 58fdddd..0000000
--- a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink1_1/core/resource/orm/XmlVariableOneToOneImpl.java
+++ /dev/null
@@ -1,243 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- *******************************************************************************/
-package org.eclipse.jpt.eclipselink1_1.core.resource.orm;
-
-import org.eclipse.emf.common.notify.Notification;
-
-import org.eclipse.emf.ecore.EClass;
-
-import org.eclipse.emf.ecore.impl.ENotificationImpl;
-
-import org.eclipse.jpt.core.resource.orm.AccessType;
-
-/**
- * <!-- begin-user-doc -->
- * A representation of the model object '<em><b>Xml Variable One To One Impl</b></em>'.
- * <!-- end-user-doc -->
- *
- *
- * @see org.eclipse.jpt.eclipselink1_1.core.resource.orm.EclipseLink1_1OrmPackage#getXmlVariableOneToOneImpl()
- * @model kind="class"
- * @generated
- */
-public class XmlVariableOneToOneImpl extends org.eclipse.jpt.eclipselink.core.resource.orm.XmlVariableOneToOneImpl implements XmlVariableOneToOne
-{
-	/**
-	 * changed this to null and removed the generated flag so emf won't generate over it
-	 * we don't want a default for enums, just null if the tag does not exist
-	 */
-	protected static final AccessType ACCESS_EDEFAULT = null;
-
-	/**
-	 * The cached value of the '{@link #getAccess() <em>Access</em>}' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see #getAccess()
-	 * @generated
-	 * @ordered
-	 */
-	protected AccessType access = ACCESS_EDEFAULT;
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	protected XmlVariableOneToOneImpl()
-	{
-		super();
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	protected EClass eStaticClass()
-	{
-		return EclipseLink1_1OrmPackage.Literals.XML_VARIABLE_ONE_TO_ONE_IMPL;
-	}
-
-	/**
-	 * Returns the value of the '<em><b>Access</b></em>' attribute.
-	 * The default value is <code>"PROPERTY"</code>.
-	 * The literals are from the enumeration {@link org.eclipse.jpt.core.resource.orm.AccessType}.
-	 * <!-- begin-user-doc -->
-	 * <p>
-	 * If the meaning of the '<em>Access</em>' attribute isn't clear,
-	 * there really should be more of a description here...
-	 * </p>
-	 * <!-- end-user-doc -->
-	 * @return the value of the '<em>Access</em>' attribute.
-	 * @see org.eclipse.jpt.core.resource.orm.AccessType
-	 * @see #setAccess(AccessType)
-	 * @see org.eclipse.jpt.eclipselink1_1.core.resource.orm.EclipseLink1_1OrmPackage#getXmlAttributeMapping_Access()
-	 * @model default="PROPERTY"
-	 * @generated
-	 */
-	public AccessType getAccess()
-	{
-		return access;
-	}
-
-	/**
-	 * Sets the value of the '{@link org.eclipse.jpt.eclipselink1_1.core.resource.orm.XmlVariableOneToOneImpl#getAccess <em>Access</em>}' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @param value the new value of the '<em>Access</em>' attribute.
-	 * @see org.eclipse.jpt.core.resource.orm.AccessType
-	 * @see #getAccess()
-	 * @generated
-	 */
-	public void setAccess(AccessType newAccess)
-	{
-		AccessType oldAccess = access;
-		access = newAccess == null ? ACCESS_EDEFAULT : newAccess;
-		if (eNotificationRequired())
-			eNotify(new ENotificationImpl(this, Notification.SET, EclipseLink1_1OrmPackage.XML_VARIABLE_ONE_TO_ONE_IMPL__ACCESS, oldAccess, access));
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public Object eGet(int featureID, boolean resolve, boolean coreType)
-	{
-		switch (featureID)
-		{
-			case EclipseLink1_1OrmPackage.XML_VARIABLE_ONE_TO_ONE_IMPL__ACCESS:
-				return getAccess();
-		}
-		return super.eGet(featureID, resolve, coreType);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public void eSet(int featureID, Object newValue)
-	{
-		switch (featureID)
-		{
-			case EclipseLink1_1OrmPackage.XML_VARIABLE_ONE_TO_ONE_IMPL__ACCESS:
-				setAccess((AccessType)newValue);
-				return;
-		}
-		super.eSet(featureID, newValue);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public void eUnset(int featureID)
-	{
-		switch (featureID)
-		{
-			case EclipseLink1_1OrmPackage.XML_VARIABLE_ONE_TO_ONE_IMPL__ACCESS:
-				setAccess(ACCESS_EDEFAULT);
-				return;
-		}
-		super.eUnset(featureID);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public boolean eIsSet(int featureID)
-	{
-		switch (featureID)
-		{
-			case EclipseLink1_1OrmPackage.XML_VARIABLE_ONE_TO_ONE_IMPL__ACCESS:
-				return access != ACCESS_EDEFAULT;
-		}
-		return super.eIsSet(featureID);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public int eBaseStructuralFeatureID(int derivedFeatureID, Class<?> baseClass)
-	{
-		if (baseClass == XmlAttributeMapping.class)
-		{
-			switch (derivedFeatureID)
-			{
-				case EclipseLink1_1OrmPackage.XML_VARIABLE_ONE_TO_ONE_IMPL__ACCESS: return EclipseLink1_1OrmPackage.XML_ATTRIBUTE_MAPPING__ACCESS;
-				default: return -1;
-			}
-		}
-		if (baseClass == XmlVariableOneToOne.class)
-		{
-			switch (derivedFeatureID)
-			{
-				default: return -1;
-			}
-		}
-		return super.eBaseStructuralFeatureID(derivedFeatureID, baseClass);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public int eDerivedStructuralFeatureID(int baseFeatureID, Class<?> baseClass)
-	{
-		if (baseClass == XmlAttributeMapping.class)
-		{
-			switch (baseFeatureID)
-			{
-				case EclipseLink1_1OrmPackage.XML_ATTRIBUTE_MAPPING__ACCESS: return EclipseLink1_1OrmPackage.XML_VARIABLE_ONE_TO_ONE_IMPL__ACCESS;
-				default: return -1;
-			}
-		}
-		if (baseClass == XmlVariableOneToOne.class)
-		{
-			switch (baseFeatureID)
-			{
-				default: return -1;
-			}
-		}
-		return super.eDerivedStructuralFeatureID(baseFeatureID, baseClass);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public String toString()
-	{
-		if (eIsProxy()) return super.toString();
-
-		StringBuffer result = new StringBuffer(super.toString());
-		result.append(" (access: ");
-		result.append(access);
-		result.append(')');
-		return result.toString();
-	}
-
-} // XmlVariableOneToOneImpl
diff --git a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink1_1/core/resource/orm/XmlVersion.java b/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink1_1/core/resource/orm/XmlVersion.java
deleted file mode 100644
index d684909..0000000
--- a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink1_1/core/resource/orm/XmlVersion.java
+++ /dev/null
@@ -1,25 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- *******************************************************************************/
-package org.eclipse.jpt.eclipselink1_1.core.resource.orm;
-
-
-/**
- * <!-- begin-user-doc -->
- * A representation of the model object '<em><b>Xml Version</b></em>'.
- * <!-- end-user-doc -->
- *
- *
- * @see org.eclipse.jpt.eclipselink1_1.core.resource.orm.EclipseLink1_1OrmPackage#getXmlVersion()
- * @model kind="class" interface="true" abstract="true"
- * @generated
- */
-public interface XmlVersion extends org.eclipse.jpt.eclipselink.core.resource.orm.XmlVersion, XmlAttributeMapping
-{
-} // XmlVersion
diff --git a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink1_1/core/resource/orm/XmlVersionImpl.java b/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink1_1/core/resource/orm/XmlVersionImpl.java
deleted file mode 100644
index 29fce56..0000000
--- a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink1_1/core/resource/orm/XmlVersionImpl.java
+++ /dev/null
@@ -1,243 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- *******************************************************************************/
-package org.eclipse.jpt.eclipselink1_1.core.resource.orm;
-
-import org.eclipse.emf.common.notify.Notification;
-
-import org.eclipse.emf.ecore.EClass;
-
-import org.eclipse.emf.ecore.impl.ENotificationImpl;
-
-import org.eclipse.jpt.core.resource.orm.AccessType;
-
-/**
- * <!-- begin-user-doc -->
- * A representation of the model object '<em><b>Xml Version Impl</b></em>'.
- * <!-- end-user-doc -->
- *
- *
- * @see org.eclipse.jpt.eclipselink1_1.core.resource.orm.EclipseLink1_1OrmPackage#getXmlVersionImpl()
- * @model kind="class"
- * @generated
- */
-public class XmlVersionImpl extends org.eclipse.jpt.eclipselink.core.resource.orm.XmlVersionImpl implements XmlVersion
-{
-	/**
-	 * changed this to null and removed the generated flag so emf won't generate over it
-	 * we don't want a default for enums, just null if the tag does not exist
-	 */
-	protected static final AccessType ACCESS_EDEFAULT = null;
-
-	/**
-	 * The cached value of the '{@link #getAccess() <em>Access</em>}' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see #getAccess()
-	 * @generated
-	 * @ordered
-	 */
-	protected AccessType access = ACCESS_EDEFAULT;
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	protected XmlVersionImpl()
-	{
-		super();
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	protected EClass eStaticClass()
-	{
-		return EclipseLink1_1OrmPackage.Literals.XML_VERSION_IMPL;
-	}
-
-	/**
-	 * Returns the value of the '<em><b>Access</b></em>' attribute.
-	 * The default value is <code>"PROPERTY"</code>.
-	 * The literals are from the enumeration {@link org.eclipse.jpt.core.resource.orm.AccessType}.
-	 * <!-- begin-user-doc -->
-	 * <p>
-	 * If the meaning of the '<em>Access</em>' attribute isn't clear,
-	 * there really should be more of a description here...
-	 * </p>
-	 * <!-- end-user-doc -->
-	 * @return the value of the '<em>Access</em>' attribute.
-	 * @see org.eclipse.jpt.core.resource.orm.AccessType
-	 * @see #setAccess(AccessType)
-	 * @see org.eclipse.jpt.eclipselink1_1.core.resource.orm.EclipseLink1_1OrmPackage#getXmlAttributeMapping_Access()
-	 * @model default="PROPERTY"
-	 * @generated
-	 */
-	public AccessType getAccess()
-	{
-		return access;
-	}
-
-	/**
-	 * Sets the value of the '{@link org.eclipse.jpt.eclipselink1_1.core.resource.orm.XmlVersionImpl#getAccess <em>Access</em>}' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @param value the new value of the '<em>Access</em>' attribute.
-	 * @see org.eclipse.jpt.core.resource.orm.AccessType
-	 * @see #getAccess()
-	 * @generated
-	 */
-	public void setAccess(AccessType newAccess)
-	{
-		AccessType oldAccess = access;
-		access = newAccess == null ? ACCESS_EDEFAULT : newAccess;
-		if (eNotificationRequired())
-			eNotify(new ENotificationImpl(this, Notification.SET, EclipseLink1_1OrmPackage.XML_VERSION_IMPL__ACCESS, oldAccess, access));
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public Object eGet(int featureID, boolean resolve, boolean coreType)
-	{
-		switch (featureID)
-		{
-			case EclipseLink1_1OrmPackage.XML_VERSION_IMPL__ACCESS:
-				return getAccess();
-		}
-		return super.eGet(featureID, resolve, coreType);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public void eSet(int featureID, Object newValue)
-	{
-		switch (featureID)
-		{
-			case EclipseLink1_1OrmPackage.XML_VERSION_IMPL__ACCESS:
-				setAccess((AccessType)newValue);
-				return;
-		}
-		super.eSet(featureID, newValue);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public void eUnset(int featureID)
-	{
-		switch (featureID)
-		{
-			case EclipseLink1_1OrmPackage.XML_VERSION_IMPL__ACCESS:
-				setAccess(ACCESS_EDEFAULT);
-				return;
-		}
-		super.eUnset(featureID);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public boolean eIsSet(int featureID)
-	{
-		switch (featureID)
-		{
-			case EclipseLink1_1OrmPackage.XML_VERSION_IMPL__ACCESS:
-				return access != ACCESS_EDEFAULT;
-		}
-		return super.eIsSet(featureID);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public int eBaseStructuralFeatureID(int derivedFeatureID, Class<?> baseClass)
-	{
-		if (baseClass == XmlAttributeMapping.class)
-		{
-			switch (derivedFeatureID)
-			{
-				case EclipseLink1_1OrmPackage.XML_VERSION_IMPL__ACCESS: return EclipseLink1_1OrmPackage.XML_ATTRIBUTE_MAPPING__ACCESS;
-				default: return -1;
-			}
-		}
-		if (baseClass == XmlVersion.class)
-		{
-			switch (derivedFeatureID)
-			{
-				default: return -1;
-			}
-		}
-		return super.eBaseStructuralFeatureID(derivedFeatureID, baseClass);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public int eDerivedStructuralFeatureID(int baseFeatureID, Class<?> baseClass)
-	{
-		if (baseClass == XmlAttributeMapping.class)
-		{
-			switch (baseFeatureID)
-			{
-				case EclipseLink1_1OrmPackage.XML_ATTRIBUTE_MAPPING__ACCESS: return EclipseLink1_1OrmPackage.XML_VERSION_IMPL__ACCESS;
-				default: return -1;
-			}
-		}
-		if (baseClass == XmlVersion.class)
-		{
-			switch (baseFeatureID)
-			{
-				default: return -1;
-			}
-		}
-		return super.eDerivedStructuralFeatureID(baseFeatureID, baseClass);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public String toString()
-	{
-		if (eIsProxy()) return super.toString();
-
-		StringBuffer result = new StringBuffer(super.toString());
-		result.append(" (access: ");
-		result.append(access);
-		result.append(')');
-		return result.toString();
-	}
-
-} // XmlVersionImpl
diff --git a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink1_1/core/resource/orm/util/EclipseLink1_1OrmAdapterFactory.java b/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink1_1/core/resource/orm/util/EclipseLink1_1OrmAdapterFactory.java
deleted file mode 100644
index 398e1be..0000000
--- a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink1_1/core/resource/orm/util/EclipseLink1_1OrmAdapterFactory.java
+++ /dev/null
@@ -1,2057 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- *******************************************************************************/
-package org.eclipse.jpt.eclipselink1_1.core.resource.orm.util;
-
-import org.eclipse.emf.common.notify.Adapter;
-import org.eclipse.emf.common.notify.Notifier;
-
-import org.eclipse.emf.common.notify.impl.AdapterFactoryImpl;
-
-import org.eclipse.emf.ecore.EObject;
-
-import org.eclipse.jpt.core.resource.orm.AbstractXmlAttributeMapping;
-import org.eclipse.jpt.core.resource.orm.BaseXmlEmbedded;
-import org.eclipse.jpt.core.resource.orm.ColumnMapping;
-import org.eclipse.jpt.core.resource.orm.XmlConvertibleMapping;
-import org.eclipse.jpt.core.resource.orm.XmlJoinColumnsMapping;
-import org.eclipse.jpt.core.resource.orm.XmlJoinTableMapping;
-import org.eclipse.jpt.core.resource.orm.XmlMappedByMapping;
-import org.eclipse.jpt.core.resource.orm.XmlMultiRelationshipMapping;
-import org.eclipse.jpt.core.resource.orm.XmlRelationshipMapping;
-import org.eclipse.jpt.core.resource.orm.XmlSingleRelationshipMapping;
-
-import org.eclipse.jpt.eclipselink.core.resource.orm.XmlAccessMethodsHolder;
-import org.eclipse.jpt.eclipselink.core.resource.orm.XmlConverterHolder;
-import org.eclipse.jpt.eclipselink.core.resource.orm.XmlConvertersHolder;
-import org.eclipse.jpt.eclipselink.core.resource.orm.XmlJoinFetch;
-import org.eclipse.jpt.eclipselink.core.resource.orm.XmlMutable;
-import org.eclipse.jpt.eclipselink.core.resource.orm.XmlPrivateOwned;
-
-import org.eclipse.jpt.eclipselink1_1.core.resource.orm.*;
-
-/**
- * <!-- begin-user-doc -->
- * The <b>Adapter Factory</b> for the model.
- * It provides an adapter <code>createXXX</code> method for each class of the model.
- * <!-- end-user-doc -->
- * @see org.eclipse.jpt.eclipselink1_1.core.resource.orm.EclipseLink1_1OrmPackage
- * @generated
- */
-public class EclipseLink1_1OrmAdapterFactory extends AdapterFactoryImpl
-{
-	/**
-	 * The cached model package.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	protected static EclipseLink1_1OrmPackage modelPackage;
-
-	/**
-	 * Creates an instance of the adapter factory.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public EclipseLink1_1OrmAdapterFactory()
-	{
-		if (modelPackage == null)
-		{
-			modelPackage = EclipseLink1_1OrmPackage.eINSTANCE;
-		}
-	}
-
-	/**
-	 * Returns whether this factory is applicable for the type of the object.
-	 * <!-- begin-user-doc -->
-	 * This implementation returns <code>true</code> if the object is either the model's package or is an instance object of the model.
-	 * <!-- end-user-doc -->
-	 * @return whether this factory is applicable for the type of the object.
-	 * @generated
-	 */
-	@Override
-	public boolean isFactoryForType(Object object)
-	{
-		if (object == modelPackage)
-		{
-			return true;
-		}
-		if (object instanceof EObject)
-		{
-			return ((EObject)object).eClass().getEPackage() == modelPackage;
-		}
-		return false;
-	}
-
-	/**
-	 * The switch that delegates to the <code>createXXX</code> methods.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	protected EclipseLink1_1OrmSwitch<Adapter> modelSwitch =
-		new EclipseLink1_1OrmSwitch<Adapter>()
-		{
-			@Override
-			public Adapter caseXmlEntityMappings(XmlEntityMappings object)
-			{
-				return createXmlEntityMappingsAdapter();
-			}
-			@Override
-			public Adapter caseXmlAttributeMapping(XmlAttributeMapping object)
-			{
-				return createXmlAttributeMappingAdapter();
-			}
-			@Override
-			public Adapter caseXmlId(XmlId object)
-			{
-				return createXmlIdAdapter();
-			}
-			@Override
-			public Adapter caseXmlIdImpl(XmlIdImpl object)
-			{
-				return createXmlIdImplAdapter();
-			}
-			@Override
-			public Adapter caseXmlEmbeddedId(XmlEmbeddedId object)
-			{
-				return createXmlEmbeddedIdAdapter();
-			}
-			@Override
-			public Adapter caseXmlEmbeddedIdImpl(XmlEmbeddedIdImpl object)
-			{
-				return createXmlEmbeddedIdImplAdapter();
-			}
-			@Override
-			public Adapter caseXmlEmbedded(XmlEmbedded object)
-			{
-				return createXmlEmbeddedAdapter();
-			}
-			@Override
-			public Adapter caseXmlEmbeddedImpl(XmlEmbeddedImpl object)
-			{
-				return createXmlEmbeddedImplAdapter();
-			}
-			@Override
-			public Adapter caseXmlBasic(XmlBasic object)
-			{
-				return createXmlBasicAdapter();
-			}
-			@Override
-			public Adapter caseXmlBasicImpl(XmlBasicImpl object)
-			{
-				return createXmlBasicImplAdapter();
-			}
-			@Override
-			public Adapter caseXmlVersion(XmlVersion object)
-			{
-				return createXmlVersionAdapter();
-			}
-			@Override
-			public Adapter caseXmlVersionImpl(XmlVersionImpl object)
-			{
-				return createXmlVersionImplAdapter();
-			}
-			@Override
-			public Adapter caseXmlOneToOne(XmlOneToOne object)
-			{
-				return createXmlOneToOneAdapter();
-			}
-			@Override
-			public Adapter caseXmlOneToOneImpl(XmlOneToOneImpl object)
-			{
-				return createXmlOneToOneImplAdapter();
-			}
-			@Override
-			public Adapter caseXmlOneToMany(XmlOneToMany object)
-			{
-				return createXmlOneToManyAdapter();
-			}
-			@Override
-			public Adapter caseXmlOneToManyImpl(XmlOneToManyImpl object)
-			{
-				return createXmlOneToManyImplAdapter();
-			}
-			@Override
-			public Adapter caseXmlManyToOne(XmlManyToOne object)
-			{
-				return createXmlManyToOneAdapter();
-			}
-			@Override
-			public Adapter caseXmlManyToOneImpl(XmlManyToOneImpl object)
-			{
-				return createXmlManyToOneImplAdapter();
-			}
-			@Override
-			public Adapter caseXmlManyToMany(XmlManyToMany object)
-			{
-				return createXmlManyToManyAdapter();
-			}
-			@Override
-			public Adapter caseXmlManyToManyImpl(XmlManyToManyImpl object)
-			{
-				return createXmlManyToManyImplAdapter();
-			}
-			@Override
-			public Adapter caseXmlBasicCollection(XmlBasicCollection object)
-			{
-				return createXmlBasicCollectionAdapter();
-			}
-			@Override
-			public Adapter caseXmlBasicCollectionImpl(XmlBasicCollectionImpl object)
-			{
-				return createXmlBasicCollectionImplAdapter();
-			}
-			@Override
-			public Adapter caseXmlBasicMap(XmlBasicMap object)
-			{
-				return createXmlBasicMapAdapter();
-			}
-			@Override
-			public Adapter caseXmlBasicMapImpl(XmlBasicMapImpl object)
-			{
-				return createXmlBasicMapImplAdapter();
-			}
-			@Override
-			public Adapter caseXmlTransformation(XmlTransformation object)
-			{
-				return createXmlTransformationAdapter();
-			}
-			@Override
-			public Adapter caseXmlTransformationImpl(XmlTransformationImpl object)
-			{
-				return createXmlTransformationImplAdapter();
-			}
-			@Override
-			public Adapter caseXmlVariableOneToOne(XmlVariableOneToOne object)
-			{
-				return createXmlVariableOneToOneAdapter();
-			}
-			@Override
-			public Adapter caseXmlVariableOneToOneImpl(XmlVariableOneToOneImpl object)
-			{
-				return createXmlVariableOneToOneImplAdapter();
-			}
-			@Override
-			public Adapter caseXmlTransient(XmlTransient object)
-			{
-				return createXmlTransientAdapter();
-			}
-			@Override
-			public Adapter caseXmlTransientImpl(XmlTransientImpl object)
-			{
-				return createXmlTransientImplAdapter();
-			}
-			@Override
-			public Adapter caseOrm_XmlEntityMappings(org.eclipse.jpt.core.resource.orm.XmlEntityMappings object)
-			{
-				return createOrm_XmlEntityMappingsAdapter();
-			}
-			@Override
-			public Adapter caseXmlConvertersHolder(XmlConvertersHolder object)
-			{
-				return createXmlConvertersHolderAdapter();
-			}
-			@Override
-			public Adapter caseEclipseLinkOrm_XmlEntityMappings(org.eclipse.jpt.eclipselink.core.resource.orm.XmlEntityMappings object)
-			{
-				return createEclipseLinkOrm_XmlEntityMappingsAdapter();
-			}
-			@Override
-			public Adapter caseOrm_XmlAttributeMapping(org.eclipse.jpt.core.resource.orm.XmlAttributeMapping object)
-			{
-				return createOrm_XmlAttributeMappingAdapter();
-			}
-			@Override
-			public Adapter caseColumnMapping(ColumnMapping object)
-			{
-				return createColumnMappingAdapter();
-			}
-			@Override
-			public Adapter caseXmlConvertibleMapping(XmlConvertibleMapping object)
-			{
-				return createXmlConvertibleMappingAdapter();
-			}
-			@Override
-			public Adapter caseOrm_XmlId(org.eclipse.jpt.core.resource.orm.XmlId object)
-			{
-				return createOrm_XmlIdAdapter();
-			}
-			@Override
-			public Adapter caseXmlMutable(XmlMutable object)
-			{
-				return createXmlMutableAdapter();
-			}
-			@Override
-			public Adapter caseXmlConverterHolder(XmlConverterHolder object)
-			{
-				return createXmlConverterHolderAdapter();
-			}
-			@Override
-			public Adapter caseEclipseLinkOrm_XmlConvertibleMapping(org.eclipse.jpt.eclipselink.core.resource.orm.XmlConvertibleMapping object)
-			{
-				return createEclipseLinkOrm_XmlConvertibleMappingAdapter();
-			}
-			@Override
-			public Adapter caseXmlAccessMethodsHolder(XmlAccessMethodsHolder object)
-			{
-				return createXmlAccessMethodsHolderAdapter();
-			}
-			@Override
-			public Adapter caseEclipseLinkOrm_XmlId(org.eclipse.jpt.eclipselink.core.resource.orm.XmlId object)
-			{
-				return createEclipseLinkOrm_XmlIdAdapter();
-			}
-			@Override
-			public Adapter caseAbstractXmlAttributeMapping(AbstractXmlAttributeMapping object)
-			{
-				return createAbstractXmlAttributeMappingAdapter();
-			}
-			@Override
-			public Adapter caseOrm_XmlIdImpl(org.eclipse.jpt.core.resource.orm.XmlIdImpl object)
-			{
-				return createOrm_XmlIdImplAdapter();
-			}
-			@Override
-			public Adapter caseEclipseLinkOrm_XmlIdImpl(org.eclipse.jpt.eclipselink.core.resource.orm.XmlIdImpl object)
-			{
-				return createEclipseLinkOrm_XmlIdImplAdapter();
-			}
-			@Override
-			public Adapter caseBaseXmlEmbedded(BaseXmlEmbedded object)
-			{
-				return createBaseXmlEmbeddedAdapter();
-			}
-			@Override
-			public Adapter caseOrm_XmlEmbeddedId(org.eclipse.jpt.core.resource.orm.XmlEmbeddedId object)
-			{
-				return createOrm_XmlEmbeddedIdAdapter();
-			}
-			@Override
-			public Adapter caseEclipseLinkOrm_XmlEmbeddedId(org.eclipse.jpt.eclipselink.core.resource.orm.XmlEmbeddedId object)
-			{
-				return createEclipseLinkOrm_XmlEmbeddedIdAdapter();
-			}
-			@Override
-			public Adapter caseOrm_XmlEmbeddedIdImpl(org.eclipse.jpt.core.resource.orm.XmlEmbeddedIdImpl object)
-			{
-				return createOrm_XmlEmbeddedIdImplAdapter();
-			}
-			@Override
-			public Adapter caseEclipseLinkOrm_XmlEmbeddedIdImpl(org.eclipse.jpt.eclipselink.core.resource.orm.XmlEmbeddedIdImpl object)
-			{
-				return createEclipseLinkOrm_XmlEmbeddedIdImplAdapter();
-			}
-			@Override
-			public Adapter caseOrm_XmlEmbedded(org.eclipse.jpt.core.resource.orm.XmlEmbedded object)
-			{
-				return createOrm_XmlEmbeddedAdapter();
-			}
-			@Override
-			public Adapter caseEclipseLinkOrm_XmlEmbedded(org.eclipse.jpt.eclipselink.core.resource.orm.XmlEmbedded object)
-			{
-				return createEclipseLinkOrm_XmlEmbeddedAdapter();
-			}
-			@Override
-			public Adapter caseOrm_XmlEmbeddedImpl(org.eclipse.jpt.core.resource.orm.XmlEmbeddedImpl object)
-			{
-				return createOrm_XmlEmbeddedImplAdapter();
-			}
-			@Override
-			public Adapter caseEclipseLinkOrm_XmlEmbeddedImpl(org.eclipse.jpt.eclipselink.core.resource.orm.XmlEmbeddedImpl object)
-			{
-				return createEclipseLinkOrm_XmlEmbeddedImplAdapter();
-			}
-			@Override
-			public Adapter caseOrm_XmlBasic(org.eclipse.jpt.core.resource.orm.XmlBasic object)
-			{
-				return createOrm_XmlBasicAdapter();
-			}
-			@Override
-			public Adapter caseEclipseLinkOrm_XmlBasic(org.eclipse.jpt.eclipselink.core.resource.orm.XmlBasic object)
-			{
-				return createEclipseLinkOrm_XmlBasicAdapter();
-			}
-			@Override
-			public Adapter caseOrm_XmlBasicImpl(org.eclipse.jpt.core.resource.orm.XmlBasicImpl object)
-			{
-				return createOrm_XmlBasicImplAdapter();
-			}
-			@Override
-			public Adapter caseEclipseLinkOrm_XmlBasicImpl(org.eclipse.jpt.eclipselink.core.resource.orm.XmlBasicImpl object)
-			{
-				return createEclipseLinkOrm_XmlBasicImplAdapter();
-			}
-			@Override
-			public Adapter caseOrm_XmlVersion(org.eclipse.jpt.core.resource.orm.XmlVersion object)
-			{
-				return createOrm_XmlVersionAdapter();
-			}
-			@Override
-			public Adapter caseEclipseLinkOrm_XmlVersion(org.eclipse.jpt.eclipselink.core.resource.orm.XmlVersion object)
-			{
-				return createEclipseLinkOrm_XmlVersionAdapter();
-			}
-			@Override
-			public Adapter caseOrm_XmlVersionImpl(org.eclipse.jpt.core.resource.orm.XmlVersionImpl object)
-			{
-				return createOrm_XmlVersionImplAdapter();
-			}
-			@Override
-			public Adapter caseEclipseLinkOrm_XmlVersionImpl(org.eclipse.jpt.eclipselink.core.resource.orm.XmlVersionImpl object)
-			{
-				return createEclipseLinkOrm_XmlVersionImplAdapter();
-			}
-			@Override
-			public Adapter caseXmlRelationshipMapping(XmlRelationshipMapping object)
-			{
-				return createXmlRelationshipMappingAdapter();
-			}
-			@Override
-			public Adapter caseXmlJoinTableMapping(XmlJoinTableMapping object)
-			{
-				return createXmlJoinTableMappingAdapter();
-			}
-			@Override
-			public Adapter caseXmlJoinColumnsMapping(XmlJoinColumnsMapping object)
-			{
-				return createXmlJoinColumnsMappingAdapter();
-			}
-			@Override
-			public Adapter caseXmlSingleRelationshipMapping(XmlSingleRelationshipMapping object)
-			{
-				return createXmlSingleRelationshipMappingAdapter();
-			}
-			@Override
-			public Adapter caseXmlMappedByMapping(XmlMappedByMapping object)
-			{
-				return createXmlMappedByMappingAdapter();
-			}
-			@Override
-			public Adapter caseOrm_XmlOneToOne(org.eclipse.jpt.core.resource.orm.XmlOneToOne object)
-			{
-				return createOrm_XmlOneToOneAdapter();
-			}
-			@Override
-			public Adapter caseXmlPrivateOwned(XmlPrivateOwned object)
-			{
-				return createXmlPrivateOwnedAdapter();
-			}
-			@Override
-			public Adapter caseXmlJoinFetch(XmlJoinFetch object)
-			{
-				return createXmlJoinFetchAdapter();
-			}
-			@Override
-			public Adapter caseEclipseLinkOrm_XmlOneToOne(org.eclipse.jpt.eclipselink.core.resource.orm.XmlOneToOne object)
-			{
-				return createEclipseLinkOrm_XmlOneToOneAdapter();
-			}
-			@Override
-			public Adapter caseOrm_XmlOneToOneImpl(org.eclipse.jpt.core.resource.orm.XmlOneToOneImpl object)
-			{
-				return createOrm_XmlOneToOneImplAdapter();
-			}
-			@Override
-			public Adapter caseEclipseLinkOrm_XmlOneToOneImpl(org.eclipse.jpt.eclipselink.core.resource.orm.XmlOneToOneImpl object)
-			{
-				return createEclipseLinkOrm_XmlOneToOneImplAdapter();
-			}
-			@Override
-			public Adapter caseXmlMultiRelationshipMapping(XmlMultiRelationshipMapping object)
-			{
-				return createXmlMultiRelationshipMappingAdapter();
-			}
-			@Override
-			public Adapter caseOrm_XmlOneToMany(org.eclipse.jpt.core.resource.orm.XmlOneToMany object)
-			{
-				return createOrm_XmlOneToManyAdapter();
-			}
-			@Override
-			public Adapter caseEclipseLinkOrm_XmlOneToMany(org.eclipse.jpt.eclipselink.core.resource.orm.XmlOneToMany object)
-			{
-				return createEclipseLinkOrm_XmlOneToManyAdapter();
-			}
-			@Override
-			public Adapter caseOrm_XmlOneToManyImpl(org.eclipse.jpt.core.resource.orm.XmlOneToManyImpl object)
-			{
-				return createOrm_XmlOneToManyImplAdapter();
-			}
-			@Override
-			public Adapter caseEclipseLinkOrm_XmlOneToManyImpl(org.eclipse.jpt.eclipselink.core.resource.orm.XmlOneToManyImpl object)
-			{
-				return createEclipseLinkOrm_XmlOneToManyImplAdapter();
-			}
-			@Override
-			public Adapter caseOrm_XmlManyToOne(org.eclipse.jpt.core.resource.orm.XmlManyToOne object)
-			{
-				return createOrm_XmlManyToOneAdapter();
-			}
-			@Override
-			public Adapter caseEclipseLinkOrm_XmlManyToOne(org.eclipse.jpt.eclipselink.core.resource.orm.XmlManyToOne object)
-			{
-				return createEclipseLinkOrm_XmlManyToOneAdapter();
-			}
-			@Override
-			public Adapter caseOrm_XmlManyToOneImpl(org.eclipse.jpt.core.resource.orm.XmlManyToOneImpl object)
-			{
-				return createOrm_XmlManyToOneImplAdapter();
-			}
-			@Override
-			public Adapter caseEclipseLinkOrm_XmlManyToOneImpl(org.eclipse.jpt.eclipselink.core.resource.orm.XmlManyToOneImpl object)
-			{
-				return createEclipseLinkOrm_XmlManyToOneImplAdapter();
-			}
-			@Override
-			public Adapter caseOrm_XmlManyToMany(org.eclipse.jpt.core.resource.orm.XmlManyToMany object)
-			{
-				return createOrm_XmlManyToManyAdapter();
-			}
-			@Override
-			public Adapter caseEclipseLinkOrm_XmlManyToMany(org.eclipse.jpt.eclipselink.core.resource.orm.XmlManyToMany object)
-			{
-				return createEclipseLinkOrm_XmlManyToManyAdapter();
-			}
-			@Override
-			public Adapter caseOrm_XmlManyToManyImpl(org.eclipse.jpt.core.resource.orm.XmlManyToManyImpl object)
-			{
-				return createOrm_XmlManyToManyImplAdapter();
-			}
-			@Override
-			public Adapter caseEclipseLinkOrm_XmlManyToManyImpl(org.eclipse.jpt.eclipselink.core.resource.orm.XmlManyToManyImpl object)
-			{
-				return createEclipseLinkOrm_XmlManyToManyImplAdapter();
-			}
-			@Override
-			public Adapter caseEclipseLinkOrm_XmlBasicCollection(org.eclipse.jpt.eclipselink.core.resource.orm.XmlBasicCollection object)
-			{
-				return createEclipseLinkOrm_XmlBasicCollectionAdapter();
-			}
-			@Override
-			public Adapter caseEclipseLinkOrm_XmlBasicCollectionImpl(org.eclipse.jpt.eclipselink.core.resource.orm.XmlBasicCollectionImpl object)
-			{
-				return createEclipseLinkOrm_XmlBasicCollectionImplAdapter();
-			}
-			@Override
-			public Adapter caseEclipseLinkOrm_XmlBasicMap(org.eclipse.jpt.eclipselink.core.resource.orm.XmlBasicMap object)
-			{
-				return createEclipseLinkOrm_XmlBasicMapAdapter();
-			}
-			@Override
-			public Adapter caseEclipseLinkOrm_XmlBasicMapImpl(org.eclipse.jpt.eclipselink.core.resource.orm.XmlBasicMapImpl object)
-			{
-				return createEclipseLinkOrm_XmlBasicMapImplAdapter();
-			}
-			@Override
-			public Adapter caseEclipseLinkOrm_XmlTransformation(org.eclipse.jpt.eclipselink.core.resource.orm.XmlTransformation object)
-			{
-				return createEclipseLinkOrm_XmlTransformationAdapter();
-			}
-			@Override
-			public Adapter caseEclipseLinkOrm_XmlTransformationImpl(org.eclipse.jpt.eclipselink.core.resource.orm.XmlTransformationImpl object)
-			{
-				return createEclipseLinkOrm_XmlTransformationImplAdapter();
-			}
-			@Override
-			public Adapter caseEclipseLinkOrm_XmlVariableOneToOne(org.eclipse.jpt.eclipselink.core.resource.orm.XmlVariableOneToOne object)
-			{
-				return createEclipseLinkOrm_XmlVariableOneToOneAdapter();
-			}
-			@Override
-			public Adapter caseEclipseLinkOrm_XmlVariableOneToOneImpl(org.eclipse.jpt.eclipselink.core.resource.orm.XmlVariableOneToOneImpl object)
-			{
-				return createEclipseLinkOrm_XmlVariableOneToOneImplAdapter();
-			}
-			@Override
-			public Adapter caseOrm_XmlTransient(org.eclipse.jpt.core.resource.orm.XmlTransient object)
-			{
-				return createOrm_XmlTransientAdapter();
-			}
-			@Override
-			public Adapter caseOrm_XmlTransientImpl(org.eclipse.jpt.core.resource.orm.XmlTransientImpl object)
-			{
-				return createOrm_XmlTransientImplAdapter();
-			}
-			@Override
-			public Adapter defaultCase(EObject object)
-			{
-				return createEObjectAdapter();
-			}
-		};
-
-	/**
-	 * Creates an adapter for the <code>target</code>.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @param target the object to adapt.
-	 * @return the adapter for the <code>target</code>.
-	 * @generated
-	 */
-	@Override
-	public Adapter createAdapter(Notifier target)
-	{
-		return modelSwitch.doSwitch((EObject)target);
-	}
-
-
-	/**
-	 * Creates a new adapter for an object of class '{@link org.eclipse.jpt.eclipselink1_1.core.resource.orm.XmlEntityMappings <em>Xml Entity Mappings</em>}'.
-	 * <!-- begin-user-doc -->
-	 * This default implementation returns null so that we can easily ignore cases;
-	 * it's useful to ignore a case when inheritance will catch all the cases anyway.
-	 * <!-- end-user-doc -->
-	 * @return the new adapter.
-	 * @see org.eclipse.jpt.eclipselink1_1.core.resource.orm.XmlEntityMappings
-	 * @generated
-	 */
-	public Adapter createXmlEntityMappingsAdapter()
-	{
-		return null;
-	}
-
-	/**
-	 * Creates a new adapter for an object of class '{@link org.eclipse.jpt.eclipselink1_1.core.resource.orm.XmlAttributeMapping <em>Xml Attribute Mapping</em>}'.
-	 * <!-- begin-user-doc -->
-	 * This default implementation returns null so that we can easily ignore cases;
-	 * it's useful to ignore a case when inheritance will catch all the cases anyway.
-	 * <!-- end-user-doc -->
-	 * @return the new adapter.
-	 * @see org.eclipse.jpt.eclipselink1_1.core.resource.orm.XmlAttributeMapping
-	 * @generated
-	 */
-	public Adapter createXmlAttributeMappingAdapter()
-	{
-		return null;
-	}
-
-	/**
-	 * Creates a new adapter for an object of class '{@link org.eclipse.jpt.eclipselink1_1.core.resource.orm.XmlId <em>Xml Id</em>}'.
-	 * <!-- begin-user-doc -->
-	 * This default implementation returns null so that we can easily ignore cases;
-	 * it's useful to ignore a case when inheritance will catch all the cases anyway.
-	 * <!-- end-user-doc -->
-	 * @return the new adapter.
-	 * @see org.eclipse.jpt.eclipselink1_1.core.resource.orm.XmlId
-	 * @generated
-	 */
-	public Adapter createXmlIdAdapter()
-	{
-		return null;
-	}
-
-	/**
-	 * Creates a new adapter for an object of class '{@link org.eclipse.jpt.eclipselink1_1.core.resource.orm.XmlIdImpl <em>Xml Id Impl</em>}'.
-	 * <!-- begin-user-doc -->
-	 * This default implementation returns null so that we can easily ignore cases;
-	 * it's useful to ignore a case when inheritance will catch all the cases anyway.
-	 * <!-- end-user-doc -->
-	 * @return the new adapter.
-	 * @see org.eclipse.jpt.eclipselink1_1.core.resource.orm.XmlIdImpl
-	 * @generated
-	 */
-	public Adapter createXmlIdImplAdapter()
-	{
-		return null;
-	}
-
-	/**
-	 * Creates a new adapter for an object of class '{@link org.eclipse.jpt.eclipselink1_1.core.resource.orm.XmlEmbeddedId <em>Xml Embedded Id</em>}'.
-	 * <!-- begin-user-doc -->
-	 * This default implementation returns null so that we can easily ignore cases;
-	 * it's useful to ignore a case when inheritance will catch all the cases anyway.
-	 * <!-- end-user-doc -->
-	 * @return the new adapter.
-	 * @see org.eclipse.jpt.eclipselink1_1.core.resource.orm.XmlEmbeddedId
-	 * @generated
-	 */
-	public Adapter createXmlEmbeddedIdAdapter()
-	{
-		return null;
-	}
-
-	/**
-	 * Creates a new adapter for an object of class '{@link org.eclipse.jpt.eclipselink1_1.core.resource.orm.XmlEmbeddedIdImpl <em>Xml Embedded Id Impl</em>}'.
-	 * <!-- begin-user-doc -->
-	 * This default implementation returns null so that we can easily ignore cases;
-	 * it's useful to ignore a case when inheritance will catch all the cases anyway.
-	 * <!-- end-user-doc -->
-	 * @return the new adapter.
-	 * @see org.eclipse.jpt.eclipselink1_1.core.resource.orm.XmlEmbeddedIdImpl
-	 * @generated
-	 */
-	public Adapter createXmlEmbeddedIdImplAdapter()
-	{
-		return null;
-	}
-
-	/**
-	 * Creates a new adapter for an object of class '{@link org.eclipse.jpt.eclipselink1_1.core.resource.orm.XmlEmbedded <em>Xml Embedded</em>}'.
-	 * <!-- begin-user-doc -->
-	 * This default implementation returns null so that we can easily ignore cases;
-	 * it's useful to ignore a case when inheritance will catch all the cases anyway.
-	 * <!-- end-user-doc -->
-	 * @return the new adapter.
-	 * @see org.eclipse.jpt.eclipselink1_1.core.resource.orm.XmlEmbedded
-	 * @generated
-	 */
-	public Adapter createXmlEmbeddedAdapter()
-	{
-		return null;
-	}
-
-	/**
-	 * Creates a new adapter for an object of class '{@link org.eclipse.jpt.eclipselink1_1.core.resource.orm.XmlEmbeddedImpl <em>Xml Embedded Impl</em>}'.
-	 * <!-- begin-user-doc -->
-	 * This default implementation returns null so that we can easily ignore cases;
-	 * it's useful to ignore a case when inheritance will catch all the cases anyway.
-	 * <!-- end-user-doc -->
-	 * @return the new adapter.
-	 * @see org.eclipse.jpt.eclipselink1_1.core.resource.orm.XmlEmbeddedImpl
-	 * @generated
-	 */
-	public Adapter createXmlEmbeddedImplAdapter()
-	{
-		return null;
-	}
-
-	/**
-	 * Creates a new adapter for an object of class '{@link org.eclipse.jpt.eclipselink1_1.core.resource.orm.XmlBasic <em>Xml Basic</em>}'.
-	 * <!-- begin-user-doc -->
-	 * This default implementation returns null so that we can easily ignore cases;
-	 * it's useful to ignore a case when inheritance will catch all the cases anyway.
-	 * <!-- end-user-doc -->
-	 * @return the new adapter.
-	 * @see org.eclipse.jpt.eclipselink1_1.core.resource.orm.XmlBasic
-	 * @generated
-	 */
-	public Adapter createXmlBasicAdapter()
-	{
-		return null;
-	}
-
-	/**
-	 * Creates a new adapter for an object of class '{@link org.eclipse.jpt.eclipselink1_1.core.resource.orm.XmlBasicImpl <em>Xml Basic Impl</em>}'.
-	 * <!-- begin-user-doc -->
-	 * This default implementation returns null so that we can easily ignore cases;
-	 * it's useful to ignore a case when inheritance will catch all the cases anyway.
-	 * <!-- end-user-doc -->
-	 * @return the new adapter.
-	 * @see org.eclipse.jpt.eclipselink1_1.core.resource.orm.XmlBasicImpl
-	 * @generated
-	 */
-	public Adapter createXmlBasicImplAdapter()
-	{
-		return null;
-	}
-
-	/**
-	 * Creates a new adapter for an object of class '{@link org.eclipse.jpt.eclipselink1_1.core.resource.orm.XmlVersion <em>Xml Version</em>}'.
-	 * <!-- begin-user-doc -->
-	 * This default implementation returns null so that we can easily ignore cases;
-	 * it's useful to ignore a case when inheritance will catch all the cases anyway.
-	 * <!-- end-user-doc -->
-	 * @return the new adapter.
-	 * @see org.eclipse.jpt.eclipselink1_1.core.resource.orm.XmlVersion
-	 * @generated
-	 */
-	public Adapter createXmlVersionAdapter()
-	{
-		return null;
-	}
-
-	/**
-	 * Creates a new adapter for an object of class '{@link org.eclipse.jpt.eclipselink1_1.core.resource.orm.XmlVersionImpl <em>Xml Version Impl</em>}'.
-	 * <!-- begin-user-doc -->
-	 * This default implementation returns null so that we can easily ignore cases;
-	 * it's useful to ignore a case when inheritance will catch all the cases anyway.
-	 * <!-- end-user-doc -->
-	 * @return the new adapter.
-	 * @see org.eclipse.jpt.eclipselink1_1.core.resource.orm.XmlVersionImpl
-	 * @generated
-	 */
-	public Adapter createXmlVersionImplAdapter()
-	{
-		return null;
-	}
-
-	/**
-	 * Creates a new adapter for an object of class '{@link org.eclipse.jpt.eclipselink1_1.core.resource.orm.XmlOneToOne <em>Xml One To One</em>}'.
-	 * <!-- begin-user-doc -->
-	 * This default implementation returns null so that we can easily ignore cases;
-	 * it's useful to ignore a case when inheritance will catch all the cases anyway.
-	 * <!-- end-user-doc -->
-	 * @return the new adapter.
-	 * @see org.eclipse.jpt.eclipselink1_1.core.resource.orm.XmlOneToOne
-	 * @generated
-	 */
-	public Adapter createXmlOneToOneAdapter()
-	{
-		return null;
-	}
-
-	/**
-	 * Creates a new adapter for an object of class '{@link org.eclipse.jpt.eclipselink1_1.core.resource.orm.XmlOneToOneImpl <em>Xml One To One Impl</em>}'.
-	 * <!-- begin-user-doc -->
-	 * This default implementation returns null so that we can easily ignore cases;
-	 * it's useful to ignore a case when inheritance will catch all the cases anyway.
-	 * <!-- end-user-doc -->
-	 * @return the new adapter.
-	 * @see org.eclipse.jpt.eclipselink1_1.core.resource.orm.XmlOneToOneImpl
-	 * @generated
-	 */
-	public Adapter createXmlOneToOneImplAdapter()
-	{
-		return null;
-	}
-
-	/**
-	 * Creates a new adapter for an object of class '{@link org.eclipse.jpt.eclipselink1_1.core.resource.orm.XmlOneToMany <em>Xml One To Many</em>}'.
-	 * <!-- begin-user-doc -->
-	 * This default implementation returns null so that we can easily ignore cases;
-	 * it's useful to ignore a case when inheritance will catch all the cases anyway.
-	 * <!-- end-user-doc -->
-	 * @return the new adapter.
-	 * @see org.eclipse.jpt.eclipselink1_1.core.resource.orm.XmlOneToMany
-	 * @generated
-	 */
-	public Adapter createXmlOneToManyAdapter()
-	{
-		return null;
-	}
-
-	/**
-	 * Creates a new adapter for an object of class '{@link org.eclipse.jpt.eclipselink1_1.core.resource.orm.XmlOneToManyImpl <em>Xml One To Many Impl</em>}'.
-	 * <!-- begin-user-doc -->
-	 * This default implementation returns null so that we can easily ignore cases;
-	 * it's useful to ignore a case when inheritance will catch all the cases anyway.
-	 * <!-- end-user-doc -->
-	 * @return the new adapter.
-	 * @see org.eclipse.jpt.eclipselink1_1.core.resource.orm.XmlOneToManyImpl
-	 * @generated
-	 */
-	public Adapter createXmlOneToManyImplAdapter()
-	{
-		return null;
-	}
-
-	/**
-	 * Creates a new adapter for an object of class '{@link org.eclipse.jpt.eclipselink1_1.core.resource.orm.XmlManyToOne <em>Xml Many To One</em>}'.
-	 * <!-- begin-user-doc -->
-	 * This default implementation returns null so that we can easily ignore cases;
-	 * it's useful to ignore a case when inheritance will catch all the cases anyway.
-	 * <!-- end-user-doc -->
-	 * @return the new adapter.
-	 * @see org.eclipse.jpt.eclipselink1_1.core.resource.orm.XmlManyToOne
-	 * @generated
-	 */
-	public Adapter createXmlManyToOneAdapter()
-	{
-		return null;
-	}
-
-	/**
-	 * Creates a new adapter for an object of class '{@link org.eclipse.jpt.eclipselink1_1.core.resource.orm.XmlManyToOneImpl <em>Xml Many To One Impl</em>}'.
-	 * <!-- begin-user-doc -->
-	 * This default implementation returns null so that we can easily ignore cases;
-	 * it's useful to ignore a case when inheritance will catch all the cases anyway.
-	 * <!-- end-user-doc -->
-	 * @return the new adapter.
-	 * @see org.eclipse.jpt.eclipselink1_1.core.resource.orm.XmlManyToOneImpl
-	 * @generated
-	 */
-	public Adapter createXmlManyToOneImplAdapter()
-	{
-		return null;
-	}
-
-	/**
-	 * Creates a new adapter for an object of class '{@link org.eclipse.jpt.eclipselink1_1.core.resource.orm.XmlManyToMany <em>Xml Many To Many</em>}'.
-	 * <!-- begin-user-doc -->
-	 * This default implementation returns null so that we can easily ignore cases;
-	 * it's useful to ignore a case when inheritance will catch all the cases anyway.
-	 * <!-- end-user-doc -->
-	 * @return the new adapter.
-	 * @see org.eclipse.jpt.eclipselink1_1.core.resource.orm.XmlManyToMany
-	 * @generated
-	 */
-	public Adapter createXmlManyToManyAdapter()
-	{
-		return null;
-	}
-
-	/**
-	 * Creates a new adapter for an object of class '{@link org.eclipse.jpt.eclipselink1_1.core.resource.orm.XmlManyToManyImpl <em>Xml Many To Many Impl</em>}'.
-	 * <!-- begin-user-doc -->
-	 * This default implementation returns null so that we can easily ignore cases;
-	 * it's useful to ignore a case when inheritance will catch all the cases anyway.
-	 * <!-- end-user-doc -->
-	 * @return the new adapter.
-	 * @see org.eclipse.jpt.eclipselink1_1.core.resource.orm.XmlManyToManyImpl
-	 * @generated
-	 */
-	public Adapter createXmlManyToManyImplAdapter()
-	{
-		return null;
-	}
-
-	/**
-	 * Creates a new adapter for an object of class '{@link org.eclipse.jpt.eclipselink1_1.core.resource.orm.XmlBasicCollection <em>Xml Basic Collection</em>}'.
-	 * <!-- begin-user-doc -->
-	 * This default implementation returns null so that we can easily ignore cases;
-	 * it's useful to ignore a case when inheritance will catch all the cases anyway.
-	 * <!-- end-user-doc -->
-	 * @return the new adapter.
-	 * @see org.eclipse.jpt.eclipselink1_1.core.resource.orm.XmlBasicCollection
-	 * @generated
-	 */
-	public Adapter createXmlBasicCollectionAdapter()
-	{
-		return null;
-	}
-
-	/**
-	 * Creates a new adapter for an object of class '{@link org.eclipse.jpt.eclipselink1_1.core.resource.orm.XmlBasicCollectionImpl <em>Xml Basic Collection Impl</em>}'.
-	 * <!-- begin-user-doc -->
-	 * This default implementation returns null so that we can easily ignore cases;
-	 * it's useful to ignore a case when inheritance will catch all the cases anyway.
-	 * <!-- end-user-doc -->
-	 * @return the new adapter.
-	 * @see org.eclipse.jpt.eclipselink1_1.core.resource.orm.XmlBasicCollectionImpl
-	 * @generated
-	 */
-	public Adapter createXmlBasicCollectionImplAdapter()
-	{
-		return null;
-	}
-
-	/**
-	 * Creates a new adapter for an object of class '{@link org.eclipse.jpt.eclipselink1_1.core.resource.orm.XmlBasicMap <em>Xml Basic Map</em>}'.
-	 * <!-- begin-user-doc -->
-	 * This default implementation returns null so that we can easily ignore cases;
-	 * it's useful to ignore a case when inheritance will catch all the cases anyway.
-	 * <!-- end-user-doc -->
-	 * @return the new adapter.
-	 * @see org.eclipse.jpt.eclipselink1_1.core.resource.orm.XmlBasicMap
-	 * @generated
-	 */
-	public Adapter createXmlBasicMapAdapter()
-	{
-		return null;
-	}
-
-	/**
-	 * Creates a new adapter for an object of class '{@link org.eclipse.jpt.eclipselink1_1.core.resource.orm.XmlBasicMapImpl <em>Xml Basic Map Impl</em>}'.
-	 * <!-- begin-user-doc -->
-	 * This default implementation returns null so that we can easily ignore cases;
-	 * it's useful to ignore a case when inheritance will catch all the cases anyway.
-	 * <!-- end-user-doc -->
-	 * @return the new adapter.
-	 * @see org.eclipse.jpt.eclipselink1_1.core.resource.orm.XmlBasicMapImpl
-	 * @generated
-	 */
-	public Adapter createXmlBasicMapImplAdapter()
-	{
-		return null;
-	}
-
-	/**
-	 * Creates a new adapter for an object of class '{@link org.eclipse.jpt.eclipselink1_1.core.resource.orm.XmlTransformation <em>Xml Transformation</em>}'.
-	 * <!-- begin-user-doc -->
-	 * This default implementation returns null so that we can easily ignore cases;
-	 * it's useful to ignore a case when inheritance will catch all the cases anyway.
-	 * <!-- end-user-doc -->
-	 * @return the new adapter.
-	 * @see org.eclipse.jpt.eclipselink1_1.core.resource.orm.XmlTransformation
-	 * @generated
-	 */
-	public Adapter createXmlTransformationAdapter()
-	{
-		return null;
-	}
-
-	/**
-	 * Creates a new adapter for an object of class '{@link org.eclipse.jpt.eclipselink1_1.core.resource.orm.XmlTransformationImpl <em>Xml Transformation Impl</em>}'.
-	 * <!-- begin-user-doc -->
-	 * This default implementation returns null so that we can easily ignore cases;
-	 * it's useful to ignore a case when inheritance will catch all the cases anyway.
-	 * <!-- end-user-doc -->
-	 * @return the new adapter.
-	 * @see org.eclipse.jpt.eclipselink1_1.core.resource.orm.XmlTransformationImpl
-	 * @generated
-	 */
-	public Adapter createXmlTransformationImplAdapter()
-	{
-		return null;
-	}
-
-	/**
-	 * Creates a new adapter for an object of class '{@link org.eclipse.jpt.eclipselink1_1.core.resource.orm.XmlVariableOneToOne <em>Xml Variable One To One</em>}'.
-	 * <!-- begin-user-doc -->
-	 * This default implementation returns null so that we can easily ignore cases;
-	 * it's useful to ignore a case when inheritance will catch all the cases anyway.
-	 * <!-- end-user-doc -->
-	 * @return the new adapter.
-	 * @see org.eclipse.jpt.eclipselink1_1.core.resource.orm.XmlVariableOneToOne
-	 * @generated
-	 */
-	public Adapter createXmlVariableOneToOneAdapter()
-	{
-		return null;
-	}
-
-	/**
-	 * Creates a new adapter for an object of class '{@link org.eclipse.jpt.eclipselink1_1.core.resource.orm.XmlVariableOneToOneImpl <em>Xml Variable One To One Impl</em>}'.
-	 * <!-- begin-user-doc -->
-	 * This default implementation returns null so that we can easily ignore cases;
-	 * it's useful to ignore a case when inheritance will catch all the cases anyway.
-	 * <!-- end-user-doc -->
-	 * @return the new adapter.
-	 * @see org.eclipse.jpt.eclipselink1_1.core.resource.orm.XmlVariableOneToOneImpl
-	 * @generated
-	 */
-	public Adapter createXmlVariableOneToOneImplAdapter()
-	{
-		return null;
-	}
-
-	/**
-	 * Creates a new adapter for an object of class '{@link org.eclipse.jpt.eclipselink1_1.core.resource.orm.XmlTransient <em>Xml Transient</em>}'.
-	 * <!-- begin-user-doc -->
-	 * This default implementation returns null so that we can easily ignore cases;
-	 * it's useful to ignore a case when inheritance will catch all the cases anyway.
-	 * <!-- end-user-doc -->
-	 * @return the new adapter.
-	 * @see org.eclipse.jpt.eclipselink1_1.core.resource.orm.XmlTransient
-	 * @generated
-	 */
-	public Adapter createXmlTransientAdapter()
-	{
-		return null;
-	}
-
-	/**
-	 * Creates a new adapter for an object of class '{@link org.eclipse.jpt.eclipselink1_1.core.resource.orm.XmlTransientImpl <em>Xml Transient Impl</em>}'.
-	 * <!-- begin-user-doc -->
-	 * This default implementation returns null so that we can easily ignore cases;
-	 * it's useful to ignore a case when inheritance will catch all the cases anyway.
-	 * <!-- end-user-doc -->
-	 * @return the new adapter.
-	 * @see org.eclipse.jpt.eclipselink1_1.core.resource.orm.XmlTransientImpl
-	 * @generated
-	 */
-	public Adapter createXmlTransientImplAdapter()
-	{
-		return null;
-	}
-
-	/**
-	 * Creates a new adapter for an object of class '{@link org.eclipse.jpt.core.resource.orm.XmlEntityMappings <em>Xml Entity Mappings</em>}'.
-	 * <!-- begin-user-doc -->
-	 * This default implementation returns null so that we can easily ignore cases;
-	 * it's useful to ignore a case when inheritance will catch all the cases anyway.
-	 * <!-- end-user-doc -->
-	 * @return the new adapter.
-	 * @see org.eclipse.jpt.core.resource.orm.XmlEntityMappings
-	 * @generated
-	 */
-	public Adapter createOrm_XmlEntityMappingsAdapter()
-	{
-		return null;
-	}
-
-	/**
-	 * Creates a new adapter for an object of class '{@link org.eclipse.jpt.eclipselink.core.resource.orm.XmlConvertersHolder <em>Xml Converters Holder</em>}'.
-	 * <!-- begin-user-doc -->
-	 * This default implementation returns null so that we can easily ignore cases;
-	 * it's useful to ignore a case when inheritance will catch all the cases anyway.
-	 * <!-- end-user-doc -->
-	 * @return the new adapter.
-	 * @see org.eclipse.jpt.eclipselink.core.resource.orm.XmlConvertersHolder
-	 * @generated
-	 */
-	public Adapter createXmlConvertersHolderAdapter()
-	{
-		return null;
-	}
-
-	/**
-	 * Creates a new adapter for an object of class '{@link org.eclipse.jpt.eclipselink.core.resource.orm.XmlEntityMappings <em>Xml Entity Mappings</em>}'.
-	 * <!-- begin-user-doc -->
-	 * This default implementation returns null so that we can easily ignore cases;
-	 * it's useful to ignore a case when inheritance will catch all the cases anyway.
-	 * <!-- end-user-doc -->
-	 * @return the new adapter.
-	 * @see org.eclipse.jpt.eclipselink.core.resource.orm.XmlEntityMappings
-	 * @generated
-	 */
-	public Adapter createEclipseLinkOrm_XmlEntityMappingsAdapter()
-	{
-		return null;
-	}
-
-	/**
-	 * Creates a new adapter for an object of class '{@link org.eclipse.jpt.core.resource.orm.XmlAttributeMapping <em>Xml Attribute Mapping</em>}'.
-	 * <!-- begin-user-doc -->
-	 * This default implementation returns null so that we can easily ignore cases;
-	 * it's useful to ignore a case when inheritance will catch all the cases anyway.
-	 * <!-- end-user-doc -->
-	 * @return the new adapter.
-	 * @see org.eclipse.jpt.core.resource.orm.XmlAttributeMapping
-	 * @generated
-	 */
-	public Adapter createOrm_XmlAttributeMappingAdapter()
-	{
-		return null;
-	}
-
-	/**
-	 * Creates a new adapter for an object of class '{@link org.eclipse.jpt.core.resource.orm.ColumnMapping <em>Column Mapping</em>}'.
-	 * <!-- begin-user-doc -->
-	 * This default implementation returns null so that we can easily ignore cases;
-	 * it's useful to ignore a case when inheritance will catch all the cases anyway.
-	 * <!-- end-user-doc -->
-	 * @return the new adapter.
-	 * @see org.eclipse.jpt.core.resource.orm.ColumnMapping
-	 * @generated
-	 */
-	public Adapter createColumnMappingAdapter()
-	{
-		return null;
-	}
-
-	/**
-	 * Creates a new adapter for an object of class '{@link org.eclipse.jpt.core.resource.orm.XmlConvertibleMapping <em>Xml Convertible Mapping</em>}'.
-	 * <!-- begin-user-doc -->
-	 * This default implementation returns null so that we can easily ignore cases;
-	 * it's useful to ignore a case when inheritance will catch all the cases anyway.
-	 * <!-- end-user-doc -->
-	 * @return the new adapter.
-	 * @see org.eclipse.jpt.core.resource.orm.XmlConvertibleMapping
-	 * @generated
-	 */
-	public Adapter createXmlConvertibleMappingAdapter()
-	{
-		return null;
-	}
-
-	/**
-	 * Creates a new adapter for an object of class '{@link org.eclipse.jpt.core.resource.orm.XmlId <em>Xml Id</em>}'.
-	 * <!-- begin-user-doc -->
-	 * This default implementation returns null so that we can easily ignore cases;
-	 * it's useful to ignore a case when inheritance will catch all the cases anyway.
-	 * <!-- end-user-doc -->
-	 * @return the new adapter.
-	 * @see org.eclipse.jpt.core.resource.orm.XmlId
-	 * @generated
-	 */
-	public Adapter createOrm_XmlIdAdapter()
-	{
-		return null;
-	}
-
-	/**
-	 * Creates a new adapter for an object of class '{@link org.eclipse.jpt.eclipselink.core.resource.orm.XmlMutable <em>Xml Mutable</em>}'.
-	 * <!-- begin-user-doc -->
-	 * This default implementation returns null so that we can easily ignore cases;
-	 * it's useful to ignore a case when inheritance will catch all the cases anyway.
-	 * <!-- end-user-doc -->
-	 * @return the new adapter.
-	 * @see org.eclipse.jpt.eclipselink.core.resource.orm.XmlMutable
-	 * @generated
-	 */
-	public Adapter createXmlMutableAdapter()
-	{
-		return null;
-	}
-
-	/**
-	 * Creates a new adapter for an object of class '{@link org.eclipse.jpt.eclipselink.core.resource.orm.XmlConverterHolder <em>Xml Converter Holder</em>}'.
-	 * <!-- begin-user-doc -->
-	 * This default implementation returns null so that we can easily ignore cases;
-	 * it's useful to ignore a case when inheritance will catch all the cases anyway.
-	 * <!-- end-user-doc -->
-	 * @return the new adapter.
-	 * @see org.eclipse.jpt.eclipselink.core.resource.orm.XmlConverterHolder
-	 * @generated
-	 */
-	public Adapter createXmlConverterHolderAdapter()
-	{
-		return null;
-	}
-
-	/**
-	 * Creates a new adapter for an object of class '{@link org.eclipse.jpt.eclipselink.core.resource.orm.XmlConvertibleMapping <em>Xml Convertible Mapping</em>}'.
-	 * <!-- begin-user-doc -->
-	 * This default implementation returns null so that we can easily ignore cases;
-	 * it's useful to ignore a case when inheritance will catch all the cases anyway.
-	 * <!-- end-user-doc -->
-	 * @return the new adapter.
-	 * @see org.eclipse.jpt.eclipselink.core.resource.orm.XmlConvertibleMapping
-	 * @generated
-	 */
-	public Adapter createEclipseLinkOrm_XmlConvertibleMappingAdapter()
-	{
-		return null;
-	}
-
-	/**
-	 * Creates a new adapter for an object of class '{@link org.eclipse.jpt.eclipselink.core.resource.orm.XmlAccessMethodsHolder <em>Xml Access Methods Holder</em>}'.
-	 * <!-- begin-user-doc -->
-	 * This default implementation returns null so that we can easily ignore cases;
-	 * it's useful to ignore a case when inheritance will catch all the cases anyway.
-	 * <!-- end-user-doc -->
-	 * @return the new adapter.
-	 * @see org.eclipse.jpt.eclipselink.core.resource.orm.XmlAccessMethodsHolder
-	 * @generated
-	 */
-	public Adapter createXmlAccessMethodsHolderAdapter()
-	{
-		return null;
-	}
-
-	/**
-	 * Creates a new adapter for an object of class '{@link org.eclipse.jpt.eclipselink.core.resource.orm.XmlId <em>Xml Id</em>}'.
-	 * <!-- begin-user-doc -->
-	 * This default implementation returns null so that we can easily ignore cases;
-	 * it's useful to ignore a case when inheritance will catch all the cases anyway.
-	 * <!-- end-user-doc -->
-	 * @return the new adapter.
-	 * @see org.eclipse.jpt.eclipselink.core.resource.orm.XmlId
-	 * @generated
-	 */
-	public Adapter createEclipseLinkOrm_XmlIdAdapter()
-	{
-		return null;
-	}
-
-	/**
-	 * Creates a new adapter for an object of class '{@link org.eclipse.jpt.core.resource.orm.AbstractXmlAttributeMapping <em>Abstract Xml Attribute Mapping</em>}'.
-	 * <!-- begin-user-doc -->
-	 * This default implementation returns null so that we can easily ignore cases;
-	 * it's useful to ignore a case when inheritance will catch all the cases anyway.
-	 * <!-- end-user-doc -->
-	 * @return the new adapter.
-	 * @see org.eclipse.jpt.core.resource.orm.AbstractXmlAttributeMapping
-	 * @generated
-	 */
-	public Adapter createAbstractXmlAttributeMappingAdapter()
-	{
-		return null;
-	}
-
-	/**
-	 * Creates a new adapter for an object of class '{@link org.eclipse.jpt.core.resource.orm.XmlIdImpl <em>Xml Id Impl</em>}'.
-	 * <!-- begin-user-doc -->
-	 * This default implementation returns null so that we can easily ignore cases;
-	 * it's useful to ignore a case when inheritance will catch all the cases anyway.
-	 * <!-- end-user-doc -->
-	 * @return the new adapter.
-	 * @see org.eclipse.jpt.core.resource.orm.XmlIdImpl
-	 * @generated
-	 */
-	public Adapter createOrm_XmlIdImplAdapter()
-	{
-		return null;
-	}
-
-	/**
-	 * Creates a new adapter for an object of class '{@link org.eclipse.jpt.eclipselink.core.resource.orm.XmlIdImpl <em>Xml Id Impl</em>}'.
-	 * <!-- begin-user-doc -->
-	 * This default implementation returns null so that we can easily ignore cases;
-	 * it's useful to ignore a case when inheritance will catch all the cases anyway.
-	 * <!-- end-user-doc -->
-	 * @return the new adapter.
-	 * @see org.eclipse.jpt.eclipselink.core.resource.orm.XmlIdImpl
-	 * @generated
-	 */
-	public Adapter createEclipseLinkOrm_XmlIdImplAdapter()
-	{
-		return null;
-	}
-
-	/**
-	 * Creates a new adapter for an object of class '{@link org.eclipse.jpt.core.resource.orm.BaseXmlEmbedded <em>Base Xml Embedded</em>}'.
-	 * <!-- begin-user-doc -->
-	 * This default implementation returns null so that we can easily ignore cases;
-	 * it's useful to ignore a case when inheritance will catch all the cases anyway.
-	 * <!-- end-user-doc -->
-	 * @return the new adapter.
-	 * @see org.eclipse.jpt.core.resource.orm.BaseXmlEmbedded
-	 * @generated
-	 */
-	public Adapter createBaseXmlEmbeddedAdapter()
-	{
-		return null;
-	}
-
-	/**
-	 * Creates a new adapter for an object of class '{@link org.eclipse.jpt.core.resource.orm.XmlEmbeddedId <em>Xml Embedded Id</em>}'.
-	 * <!-- begin-user-doc -->
-	 * This default implementation returns null so that we can easily ignore cases;
-	 * it's useful to ignore a case when inheritance will catch all the cases anyway.
-	 * <!-- end-user-doc -->
-	 * @return the new adapter.
-	 * @see org.eclipse.jpt.core.resource.orm.XmlEmbeddedId
-	 * @generated
-	 */
-	public Adapter createOrm_XmlEmbeddedIdAdapter()
-	{
-		return null;
-	}
-
-	/**
-	 * Creates a new adapter for an object of class '{@link org.eclipse.jpt.eclipselink.core.resource.orm.XmlEmbeddedId <em>Xml Embedded Id</em>}'.
-	 * <!-- begin-user-doc -->
-	 * This default implementation returns null so that we can easily ignore cases;
-	 * it's useful to ignore a case when inheritance will catch all the cases anyway.
-	 * <!-- end-user-doc -->
-	 * @return the new adapter.
-	 * @see org.eclipse.jpt.eclipselink.core.resource.orm.XmlEmbeddedId
-	 * @generated
-	 */
-	public Adapter createEclipseLinkOrm_XmlEmbeddedIdAdapter()
-	{
-		return null;
-	}
-
-	/**
-	 * Creates a new adapter for an object of class '{@link org.eclipse.jpt.core.resource.orm.XmlEmbeddedIdImpl <em>Xml Embedded Id Impl</em>}'.
-	 * <!-- begin-user-doc -->
-	 * This default implementation returns null so that we can easily ignore cases;
-	 * it's useful to ignore a case when inheritance will catch all the cases anyway.
-	 * <!-- end-user-doc -->
-	 * @return the new adapter.
-	 * @see org.eclipse.jpt.core.resource.orm.XmlEmbeddedIdImpl
-	 * @generated
-	 */
-	public Adapter createOrm_XmlEmbeddedIdImplAdapter()
-	{
-		return null;
-	}
-
-	/**
-	 * Creates a new adapter for an object of class '{@link org.eclipse.jpt.eclipselink.core.resource.orm.XmlEmbeddedIdImpl <em>Xml Embedded Id Impl</em>}'.
-	 * <!-- begin-user-doc -->
-	 * This default implementation returns null so that we can easily ignore cases;
-	 * it's useful to ignore a case when inheritance will catch all the cases anyway.
-	 * <!-- end-user-doc -->
-	 * @return the new adapter.
-	 * @see org.eclipse.jpt.eclipselink.core.resource.orm.XmlEmbeddedIdImpl
-	 * @generated
-	 */
-	public Adapter createEclipseLinkOrm_XmlEmbeddedIdImplAdapter()
-	{
-		return null;
-	}
-
-	/**
-	 * Creates a new adapter for an object of class '{@link org.eclipse.jpt.core.resource.orm.XmlEmbedded <em>Xml Embedded</em>}'.
-	 * <!-- begin-user-doc -->
-	 * This default implementation returns null so that we can easily ignore cases;
-	 * it's useful to ignore a case when inheritance will catch all the cases anyway.
-	 * <!-- end-user-doc -->
-	 * @return the new adapter.
-	 * @see org.eclipse.jpt.core.resource.orm.XmlEmbedded
-	 * @generated
-	 */
-	public Adapter createOrm_XmlEmbeddedAdapter()
-	{
-		return null;
-	}
-
-	/**
-	 * Creates a new adapter for an object of class '{@link org.eclipse.jpt.eclipselink.core.resource.orm.XmlEmbedded <em>Xml Embedded</em>}'.
-	 * <!-- begin-user-doc -->
-	 * This default implementation returns null so that we can easily ignore cases;
-	 * it's useful to ignore a case when inheritance will catch all the cases anyway.
-	 * <!-- end-user-doc -->
-	 * @return the new adapter.
-	 * @see org.eclipse.jpt.eclipselink.core.resource.orm.XmlEmbedded
-	 * @generated
-	 */
-	public Adapter createEclipseLinkOrm_XmlEmbeddedAdapter()
-	{
-		return null;
-	}
-
-	/**
-	 * Creates a new adapter for an object of class '{@link org.eclipse.jpt.core.resource.orm.XmlEmbeddedImpl <em>Xml Embedded Impl</em>}'.
-	 * <!-- begin-user-doc -->
-	 * This default implementation returns null so that we can easily ignore cases;
-	 * it's useful to ignore a case when inheritance will catch all the cases anyway.
-	 * <!-- end-user-doc -->
-	 * @return the new adapter.
-	 * @see org.eclipse.jpt.core.resource.orm.XmlEmbeddedImpl
-	 * @generated
-	 */
-	public Adapter createOrm_XmlEmbeddedImplAdapter()
-	{
-		return null;
-	}
-
-	/**
-	 * Creates a new adapter for an object of class '{@link org.eclipse.jpt.eclipselink.core.resource.orm.XmlEmbeddedImpl <em>Xml Embedded Impl</em>}'.
-	 * <!-- begin-user-doc -->
-	 * This default implementation returns null so that we can easily ignore cases;
-	 * it's useful to ignore a case when inheritance will catch all the cases anyway.
-	 * <!-- end-user-doc -->
-	 * @return the new adapter.
-	 * @see org.eclipse.jpt.eclipselink.core.resource.orm.XmlEmbeddedImpl
-	 * @generated
-	 */
-	public Adapter createEclipseLinkOrm_XmlEmbeddedImplAdapter()
-	{
-		return null;
-	}
-
-	/**
-	 * Creates a new adapter for an object of class '{@link org.eclipse.jpt.core.resource.orm.XmlBasic <em>Xml Basic</em>}'.
-	 * <!-- begin-user-doc -->
-	 * This default implementation returns null so that we can easily ignore cases;
-	 * it's useful to ignore a case when inheritance will catch all the cases anyway.
-	 * <!-- end-user-doc -->
-	 * @return the new adapter.
-	 * @see org.eclipse.jpt.core.resource.orm.XmlBasic
-	 * @generated
-	 */
-	public Adapter createOrm_XmlBasicAdapter()
-	{
-		return null;
-	}
-
-	/**
-	 * Creates a new adapter for an object of class '{@link org.eclipse.jpt.eclipselink.core.resource.orm.XmlBasic <em>Xml Basic</em>}'.
-	 * <!-- begin-user-doc -->
-	 * This default implementation returns null so that we can easily ignore cases;
-	 * it's useful to ignore a case when inheritance will catch all the cases anyway.
-	 * <!-- end-user-doc -->
-	 * @return the new adapter.
-	 * @see org.eclipse.jpt.eclipselink.core.resource.orm.XmlBasic
-	 * @generated
-	 */
-	public Adapter createEclipseLinkOrm_XmlBasicAdapter()
-	{
-		return null;
-	}
-
-	/**
-	 * Creates a new adapter for an object of class '{@link org.eclipse.jpt.core.resource.orm.XmlBasicImpl <em>Xml Basic Impl</em>}'.
-	 * <!-- begin-user-doc -->
-	 * This default implementation returns null so that we can easily ignore cases;
-	 * it's useful to ignore a case when inheritance will catch all the cases anyway.
-	 * <!-- end-user-doc -->
-	 * @return the new adapter.
-	 * @see org.eclipse.jpt.core.resource.orm.XmlBasicImpl
-	 * @generated
-	 */
-	public Adapter createOrm_XmlBasicImplAdapter()
-	{
-		return null;
-	}
-
-	/**
-	 * Creates a new adapter for an object of class '{@link org.eclipse.jpt.eclipselink.core.resource.orm.XmlBasicImpl <em>Xml Basic Impl</em>}'.
-	 * <!-- begin-user-doc -->
-	 * This default implementation returns null so that we can easily ignore cases;
-	 * it's useful to ignore a case when inheritance will catch all the cases anyway.
-	 * <!-- end-user-doc -->
-	 * @return the new adapter.
-	 * @see org.eclipse.jpt.eclipselink.core.resource.orm.XmlBasicImpl
-	 * @generated
-	 */
-	public Adapter createEclipseLinkOrm_XmlBasicImplAdapter()
-	{
-		return null;
-	}
-
-	/**
-	 * Creates a new adapter for an object of class '{@link org.eclipse.jpt.core.resource.orm.XmlVersion <em>Xml Version</em>}'.
-	 * <!-- begin-user-doc -->
-	 * This default implementation returns null so that we can easily ignore cases;
-	 * it's useful to ignore a case when inheritance will catch all the cases anyway.
-	 * <!-- end-user-doc -->
-	 * @return the new adapter.
-	 * @see org.eclipse.jpt.core.resource.orm.XmlVersion
-	 * @generated
-	 */
-	public Adapter createOrm_XmlVersionAdapter()
-	{
-		return null;
-	}
-
-	/**
-	 * Creates a new adapter for an object of class '{@link org.eclipse.jpt.eclipselink.core.resource.orm.XmlVersion <em>Xml Version</em>}'.
-	 * <!-- begin-user-doc -->
-	 * This default implementation returns null so that we can easily ignore cases;
-	 * it's useful to ignore a case when inheritance will catch all the cases anyway.
-	 * <!-- end-user-doc -->
-	 * @return the new adapter.
-	 * @see org.eclipse.jpt.eclipselink.core.resource.orm.XmlVersion
-	 * @generated
-	 */
-	public Adapter createEclipseLinkOrm_XmlVersionAdapter()
-	{
-		return null;
-	}
-
-	/**
-	 * Creates a new adapter for an object of class '{@link org.eclipse.jpt.core.resource.orm.XmlVersionImpl <em>Xml Version Impl</em>}'.
-	 * <!-- begin-user-doc -->
-	 * This default implementation returns null so that we can easily ignore cases;
-	 * it's useful to ignore a case when inheritance will catch all the cases anyway.
-	 * <!-- end-user-doc -->
-	 * @return the new adapter.
-	 * @see org.eclipse.jpt.core.resource.orm.XmlVersionImpl
-	 * @generated
-	 */
-	public Adapter createOrm_XmlVersionImplAdapter()
-	{
-		return null;
-	}
-
-	/**
-	 * Creates a new adapter for an object of class '{@link org.eclipse.jpt.eclipselink.core.resource.orm.XmlVersionImpl <em>Xml Version Impl</em>}'.
-	 * <!-- begin-user-doc -->
-	 * This default implementation returns null so that we can easily ignore cases;
-	 * it's useful to ignore a case when inheritance will catch all the cases anyway.
-	 * <!-- end-user-doc -->
-	 * @return the new adapter.
-	 * @see org.eclipse.jpt.eclipselink.core.resource.orm.XmlVersionImpl
-	 * @generated
-	 */
-	public Adapter createEclipseLinkOrm_XmlVersionImplAdapter()
-	{
-		return null;
-	}
-
-	/**
-	 * Creates a new adapter for an object of class '{@link org.eclipse.jpt.core.resource.orm.XmlRelationshipMapping <em>Xml Relationship Mapping</em>}'.
-	 * <!-- begin-user-doc -->
-	 * This default implementation returns null so that we can easily ignore cases;
-	 * it's useful to ignore a case when inheritance will catch all the cases anyway.
-	 * <!-- end-user-doc -->
-	 * @return the new adapter.
-	 * @see org.eclipse.jpt.core.resource.orm.XmlRelationshipMapping
-	 * @generated
-	 */
-	public Adapter createXmlRelationshipMappingAdapter()
-	{
-		return null;
-	}
-
-	/**
-	 * Creates a new adapter for an object of class '{@link org.eclipse.jpt.core.resource.orm.XmlJoinTableMapping <em>Xml Join Table Mapping</em>}'.
-	 * <!-- begin-user-doc -->
-	 * This default implementation returns null so that we can easily ignore cases;
-	 * it's useful to ignore a case when inheritance will catch all the cases anyway.
-	 * <!-- end-user-doc -->
-	 * @return the new adapter.
-	 * @see org.eclipse.jpt.core.resource.orm.XmlJoinTableMapping
-	 * @generated
-	 */
-	public Adapter createXmlJoinTableMappingAdapter()
-	{
-		return null;
-	}
-
-	/**
-	 * Creates a new adapter for an object of class '{@link org.eclipse.jpt.core.resource.orm.XmlJoinColumnsMapping <em>Xml Join Columns Mapping</em>}'.
-	 * <!-- begin-user-doc -->
-	 * This default implementation returns null so that we can easily ignore cases;
-	 * it's useful to ignore a case when inheritance will catch all the cases anyway.
-	 * <!-- end-user-doc -->
-	 * @return the new adapter.
-	 * @see org.eclipse.jpt.core.resource.orm.XmlJoinColumnsMapping
-	 * @generated
-	 */
-	public Adapter createXmlJoinColumnsMappingAdapter()
-	{
-		return null;
-	}
-
-	/**
-	 * Creates a new adapter for an object of class '{@link org.eclipse.jpt.core.resource.orm.XmlSingleRelationshipMapping <em>Xml Single Relationship Mapping</em>}'.
-	 * <!-- begin-user-doc -->
-	 * This default implementation returns null so that we can easily ignore cases;
-	 * it's useful to ignore a case when inheritance will catch all the cases anyway.
-	 * <!-- end-user-doc -->
-	 * @return the new adapter.
-	 * @see org.eclipse.jpt.core.resource.orm.XmlSingleRelationshipMapping
-	 * @generated
-	 */
-	public Adapter createXmlSingleRelationshipMappingAdapter()
-	{
-		return null;
-	}
-
-	/**
-	 * Creates a new adapter for an object of class '{@link org.eclipse.jpt.core.resource.orm.XmlMappedByMapping <em>Xml Mapped By Mapping</em>}'.
-	 * <!-- begin-user-doc -->
-	 * This default implementation returns null so that we can easily ignore cases;
-	 * it's useful to ignore a case when inheritance will catch all the cases anyway.
-	 * <!-- end-user-doc -->
-	 * @return the new adapter.
-	 * @see org.eclipse.jpt.core.resource.orm.XmlMappedByMapping
-	 * @generated
-	 */
-	public Adapter createXmlMappedByMappingAdapter()
-	{
-		return null;
-	}
-
-	/**
-	 * Creates a new adapter for an object of class '{@link org.eclipse.jpt.core.resource.orm.XmlOneToOne <em>Xml One To One</em>}'.
-	 * <!-- begin-user-doc -->
-	 * This default implementation returns null so that we can easily ignore cases;
-	 * it's useful to ignore a case when inheritance will catch all the cases anyway.
-	 * <!-- end-user-doc -->
-	 * @return the new adapter.
-	 * @see org.eclipse.jpt.core.resource.orm.XmlOneToOne
-	 * @generated
-	 */
-	public Adapter createOrm_XmlOneToOneAdapter()
-	{
-		return null;
-	}
-
-	/**
-	 * Creates a new adapter for an object of class '{@link org.eclipse.jpt.eclipselink.core.resource.orm.XmlPrivateOwned <em>Xml Private Owned</em>}'.
-	 * <!-- begin-user-doc -->
-	 * This default implementation returns null so that we can easily ignore cases;
-	 * it's useful to ignore a case when inheritance will catch all the cases anyway.
-	 * <!-- end-user-doc -->
-	 * @return the new adapter.
-	 * @see org.eclipse.jpt.eclipselink.core.resource.orm.XmlPrivateOwned
-	 * @generated
-	 */
-	public Adapter createXmlPrivateOwnedAdapter()
-	{
-		return null;
-	}
-
-	/**
-	 * Creates a new adapter for an object of class '{@link org.eclipse.jpt.eclipselink.core.resource.orm.XmlJoinFetch <em>Xml Join Fetch</em>}'.
-	 * <!-- begin-user-doc -->
-	 * This default implementation returns null so that we can easily ignore cases;
-	 * it's useful to ignore a case when inheritance will catch all the cases anyway.
-	 * <!-- end-user-doc -->
-	 * @return the new adapter.
-	 * @see org.eclipse.jpt.eclipselink.core.resource.orm.XmlJoinFetch
-	 * @generated
-	 */
-	public Adapter createXmlJoinFetchAdapter()
-	{
-		return null;
-	}
-
-	/**
-	 * Creates a new adapter for an object of class '{@link org.eclipse.jpt.eclipselink.core.resource.orm.XmlOneToOne <em>Xml One To One</em>}'.
-	 * <!-- begin-user-doc -->
-	 * This default implementation returns null so that we can easily ignore cases;
-	 * it's useful to ignore a case when inheritance will catch all the cases anyway.
-	 * <!-- end-user-doc -->
-	 * @return the new adapter.
-	 * @see org.eclipse.jpt.eclipselink.core.resource.orm.XmlOneToOne
-	 * @generated
-	 */
-	public Adapter createEclipseLinkOrm_XmlOneToOneAdapter()
-	{
-		return null;
-	}
-
-	/**
-	 * Creates a new adapter for an object of class '{@link org.eclipse.jpt.core.resource.orm.XmlOneToOneImpl <em>Xml One To One Impl</em>}'.
-	 * <!-- begin-user-doc -->
-	 * This default implementation returns null so that we can easily ignore cases;
-	 * it's useful to ignore a case when inheritance will catch all the cases anyway.
-	 * <!-- end-user-doc -->
-	 * @return the new adapter.
-	 * @see org.eclipse.jpt.core.resource.orm.XmlOneToOneImpl
-	 * @generated
-	 */
-	public Adapter createOrm_XmlOneToOneImplAdapter()
-	{
-		return null;
-	}
-
-	/**
-	 * Creates a new adapter for an object of class '{@link org.eclipse.jpt.eclipselink.core.resource.orm.XmlOneToOneImpl <em>Xml One To One Impl</em>}'.
-	 * <!-- begin-user-doc -->
-	 * This default implementation returns null so that we can easily ignore cases;
-	 * it's useful to ignore a case when inheritance will catch all the cases anyway.
-	 * <!-- end-user-doc -->
-	 * @return the new adapter.
-	 * @see org.eclipse.jpt.eclipselink.core.resource.orm.XmlOneToOneImpl
-	 * @generated
-	 */
-	public Adapter createEclipseLinkOrm_XmlOneToOneImplAdapter()
-	{
-		return null;
-	}
-
-	/**
-	 * Creates a new adapter for an object of class '{@link org.eclipse.jpt.core.resource.orm.XmlMultiRelationshipMapping <em>Xml Multi Relationship Mapping</em>}'.
-	 * <!-- begin-user-doc -->
-	 * This default implementation returns null so that we can easily ignore cases;
-	 * it's useful to ignore a case when inheritance will catch all the cases anyway.
-	 * <!-- end-user-doc -->
-	 * @return the new adapter.
-	 * @see org.eclipse.jpt.core.resource.orm.XmlMultiRelationshipMapping
-	 * @generated
-	 */
-	public Adapter createXmlMultiRelationshipMappingAdapter()
-	{
-		return null;
-	}
-
-	/**
-	 * Creates a new adapter for an object of class '{@link org.eclipse.jpt.core.resource.orm.XmlOneToMany <em>Xml One To Many</em>}'.
-	 * <!-- begin-user-doc -->
-	 * This default implementation returns null so that we can easily ignore cases;
-	 * it's useful to ignore a case when inheritance will catch all the cases anyway.
-	 * <!-- end-user-doc -->
-	 * @return the new adapter.
-	 * @see org.eclipse.jpt.core.resource.orm.XmlOneToMany
-	 * @generated
-	 */
-	public Adapter createOrm_XmlOneToManyAdapter()
-	{
-		return null;
-	}
-
-	/**
-	 * Creates a new adapter for an object of class '{@link org.eclipse.jpt.eclipselink.core.resource.orm.XmlOneToMany <em>Xml One To Many</em>}'.
-	 * <!-- begin-user-doc -->
-	 * This default implementation returns null so that we can easily ignore cases;
-	 * it's useful to ignore a case when inheritance will catch all the cases anyway.
-	 * <!-- end-user-doc -->
-	 * @return the new adapter.
-	 * @see org.eclipse.jpt.eclipselink.core.resource.orm.XmlOneToMany
-	 * @generated
-	 */
-	public Adapter createEclipseLinkOrm_XmlOneToManyAdapter()
-	{
-		return null;
-	}
-
-	/**
-	 * Creates a new adapter for an object of class '{@link org.eclipse.jpt.core.resource.orm.XmlOneToManyImpl <em>Xml One To Many Impl</em>}'.
-	 * <!-- begin-user-doc -->
-	 * This default implementation returns null so that we can easily ignore cases;
-	 * it's useful to ignore a case when inheritance will catch all the cases anyway.
-	 * <!-- end-user-doc -->
-	 * @return the new adapter.
-	 * @see org.eclipse.jpt.core.resource.orm.XmlOneToManyImpl
-	 * @generated
-	 */
-	public Adapter createOrm_XmlOneToManyImplAdapter()
-	{
-		return null;
-	}
-
-	/**
-	 * Creates a new adapter for an object of class '{@link org.eclipse.jpt.eclipselink.core.resource.orm.XmlOneToManyImpl <em>Xml One To Many Impl</em>}'.
-	 * <!-- begin-user-doc -->
-	 * This default implementation returns null so that we can easily ignore cases;
-	 * it's useful to ignore a case when inheritance will catch all the cases anyway.
-	 * <!-- end-user-doc -->
-	 * @return the new adapter.
-	 * @see org.eclipse.jpt.eclipselink.core.resource.orm.XmlOneToManyImpl
-	 * @generated
-	 */
-	public Adapter createEclipseLinkOrm_XmlOneToManyImplAdapter()
-	{
-		return null;
-	}
-
-	/**
-	 * Creates a new adapter for an object of class '{@link org.eclipse.jpt.core.resource.orm.XmlManyToOne <em>Xml Many To One</em>}'.
-	 * <!-- begin-user-doc -->
-	 * This default implementation returns null so that we can easily ignore cases;
-	 * it's useful to ignore a case when inheritance will catch all the cases anyway.
-	 * <!-- end-user-doc -->
-	 * @return the new adapter.
-	 * @see org.eclipse.jpt.core.resource.orm.XmlManyToOne
-	 * @generated
-	 */
-	public Adapter createOrm_XmlManyToOneAdapter()
-	{
-		return null;
-	}
-
-	/**
-	 * Creates a new adapter for an object of class '{@link org.eclipse.jpt.eclipselink.core.resource.orm.XmlManyToOne <em>Xml Many To One</em>}'.
-	 * <!-- begin-user-doc -->
-	 * This default implementation returns null so that we can easily ignore cases;
-	 * it's useful to ignore a case when inheritance will catch all the cases anyway.
-	 * <!-- end-user-doc -->
-	 * @return the new adapter.
-	 * @see org.eclipse.jpt.eclipselink.core.resource.orm.XmlManyToOne
-	 * @generated
-	 */
-	public Adapter createEclipseLinkOrm_XmlManyToOneAdapter()
-	{
-		return null;
-	}
-
-	/**
-	 * Creates a new adapter for an object of class '{@link org.eclipse.jpt.core.resource.orm.XmlManyToOneImpl <em>Xml Many To One Impl</em>}'.
-	 * <!-- begin-user-doc -->
-	 * This default implementation returns null so that we can easily ignore cases;
-	 * it's useful to ignore a case when inheritance will catch all the cases anyway.
-	 * <!-- end-user-doc -->
-	 * @return the new adapter.
-	 * @see org.eclipse.jpt.core.resource.orm.XmlManyToOneImpl
-	 * @generated
-	 */
-	public Adapter createOrm_XmlManyToOneImplAdapter()
-	{
-		return null;
-	}
-
-	/**
-	 * Creates a new adapter for an object of class '{@link org.eclipse.jpt.eclipselink.core.resource.orm.XmlManyToOneImpl <em>Xml Many To One Impl</em>}'.
-	 * <!-- begin-user-doc -->
-	 * This default implementation returns null so that we can easily ignore cases;
-	 * it's useful to ignore a case when inheritance will catch all the cases anyway.
-	 * <!-- end-user-doc -->
-	 * @return the new adapter.
-	 * @see org.eclipse.jpt.eclipselink.core.resource.orm.XmlManyToOneImpl
-	 * @generated
-	 */
-	public Adapter createEclipseLinkOrm_XmlManyToOneImplAdapter()
-	{
-		return null;
-	}
-
-	/**
-	 * Creates a new adapter for an object of class '{@link org.eclipse.jpt.core.resource.orm.XmlManyToMany <em>Xml Many To Many</em>}'.
-	 * <!-- begin-user-doc -->
-	 * This default implementation returns null so that we can easily ignore cases;
-	 * it's useful to ignore a case when inheritance will catch all the cases anyway.
-	 * <!-- end-user-doc -->
-	 * @return the new adapter.
-	 * @see org.eclipse.jpt.core.resource.orm.XmlManyToMany
-	 * @generated
-	 */
-	public Adapter createOrm_XmlManyToManyAdapter()
-	{
-		return null;
-	}
-
-	/**
-	 * Creates a new adapter for an object of class '{@link org.eclipse.jpt.eclipselink.core.resource.orm.XmlManyToMany <em>Xml Many To Many</em>}'.
-	 * <!-- begin-user-doc -->
-	 * This default implementation returns null so that we can easily ignore cases;
-	 * it's useful to ignore a case when inheritance will catch all the cases anyway.
-	 * <!-- end-user-doc -->
-	 * @return the new adapter.
-	 * @see org.eclipse.jpt.eclipselink.core.resource.orm.XmlManyToMany
-	 * @generated
-	 */
-	public Adapter createEclipseLinkOrm_XmlManyToManyAdapter()
-	{
-		return null;
-	}
-
-	/**
-	 * Creates a new adapter for an object of class '{@link org.eclipse.jpt.core.resource.orm.XmlManyToManyImpl <em>Xml Many To Many Impl</em>}'.
-	 * <!-- begin-user-doc -->
-	 * This default implementation returns null so that we can easily ignore cases;
-	 * it's useful to ignore a case when inheritance will catch all the cases anyway.
-	 * <!-- end-user-doc -->
-	 * @return the new adapter.
-	 * @see org.eclipse.jpt.core.resource.orm.XmlManyToManyImpl
-	 * @generated
-	 */
-	public Adapter createOrm_XmlManyToManyImplAdapter()
-	{
-		return null;
-	}
-
-	/**
-	 * Creates a new adapter for an object of class '{@link org.eclipse.jpt.eclipselink.core.resource.orm.XmlManyToManyImpl <em>Xml Many To Many Impl</em>}'.
-	 * <!-- begin-user-doc -->
-	 * This default implementation returns null so that we can easily ignore cases;
-	 * it's useful to ignore a case when inheritance will catch all the cases anyway.
-	 * <!-- end-user-doc -->
-	 * @return the new adapter.
-	 * @see org.eclipse.jpt.eclipselink.core.resource.orm.XmlManyToManyImpl
-	 * @generated
-	 */
-	public Adapter createEclipseLinkOrm_XmlManyToManyImplAdapter()
-	{
-		return null;
-	}
-
-	/**
-	 * Creates a new adapter for an object of class '{@link org.eclipse.jpt.eclipselink.core.resource.orm.XmlBasicCollection <em>Xml Basic Collection</em>}'.
-	 * <!-- begin-user-doc -->
-	 * This default implementation returns null so that we can easily ignore cases;
-	 * it's useful to ignore a case when inheritance will catch all the cases anyway.
-	 * <!-- end-user-doc -->
-	 * @return the new adapter.
-	 * @see org.eclipse.jpt.eclipselink.core.resource.orm.XmlBasicCollection
-	 * @generated
-	 */
-	public Adapter createEclipseLinkOrm_XmlBasicCollectionAdapter()
-	{
-		return null;
-	}
-
-	/**
-	 * Creates a new adapter for an object of class '{@link org.eclipse.jpt.eclipselink.core.resource.orm.XmlBasicCollectionImpl <em>Xml Basic Collection Impl</em>}'.
-	 * <!-- begin-user-doc -->
-	 * This default implementation returns null so that we can easily ignore cases;
-	 * it's useful to ignore a case when inheritance will catch all the cases anyway.
-	 * <!-- end-user-doc -->
-	 * @return the new adapter.
-	 * @see org.eclipse.jpt.eclipselink.core.resource.orm.XmlBasicCollectionImpl
-	 * @generated
-	 */
-	public Adapter createEclipseLinkOrm_XmlBasicCollectionImplAdapter()
-	{
-		return null;
-	}
-
-	/**
-	 * Creates a new adapter for an object of class '{@link org.eclipse.jpt.eclipselink.core.resource.orm.XmlBasicMap <em>Xml Basic Map</em>}'.
-	 * <!-- begin-user-doc -->
-	 * This default implementation returns null so that we can easily ignore cases;
-	 * it's useful to ignore a case when inheritance will catch all the cases anyway.
-	 * <!-- end-user-doc -->
-	 * @return the new adapter.
-	 * @see org.eclipse.jpt.eclipselink.core.resource.orm.XmlBasicMap
-	 * @generated
-	 */
-	public Adapter createEclipseLinkOrm_XmlBasicMapAdapter()
-	{
-		return null;
-	}
-
-	/**
-	 * Creates a new adapter for an object of class '{@link org.eclipse.jpt.eclipselink.core.resource.orm.XmlBasicMapImpl <em>Xml Basic Map Impl</em>}'.
-	 * <!-- begin-user-doc -->
-	 * This default implementation returns null so that we can easily ignore cases;
-	 * it's useful to ignore a case when inheritance will catch all the cases anyway.
-	 * <!-- end-user-doc -->
-	 * @return the new adapter.
-	 * @see org.eclipse.jpt.eclipselink.core.resource.orm.XmlBasicMapImpl
-	 * @generated
-	 */
-	public Adapter createEclipseLinkOrm_XmlBasicMapImplAdapter()
-	{
-		return null;
-	}
-
-	/**
-	 * Creates a new adapter for an object of class '{@link org.eclipse.jpt.eclipselink.core.resource.orm.XmlTransformation <em>Xml Transformation</em>}'.
-	 * <!-- begin-user-doc -->
-	 * This default implementation returns null so that we can easily ignore cases;
-	 * it's useful to ignore a case when inheritance will catch all the cases anyway.
-	 * <!-- end-user-doc -->
-	 * @return the new adapter.
-	 * @see org.eclipse.jpt.eclipselink.core.resource.orm.XmlTransformation
-	 * @generated
-	 */
-	public Adapter createEclipseLinkOrm_XmlTransformationAdapter()
-	{
-		return null;
-	}
-
-	/**
-	 * Creates a new adapter for an object of class '{@link org.eclipse.jpt.eclipselink.core.resource.orm.XmlTransformationImpl <em>Xml Transformation Impl</em>}'.
-	 * <!-- begin-user-doc -->
-	 * This default implementation returns null so that we can easily ignore cases;
-	 * it's useful to ignore a case when inheritance will catch all the cases anyway.
-	 * <!-- end-user-doc -->
-	 * @return the new adapter.
-	 * @see org.eclipse.jpt.eclipselink.core.resource.orm.XmlTransformationImpl
-	 * @generated
-	 */
-	public Adapter createEclipseLinkOrm_XmlTransformationImplAdapter()
-	{
-		return null;
-	}
-
-	/**
-	 * Creates a new adapter for an object of class '{@link org.eclipse.jpt.eclipselink.core.resource.orm.XmlVariableOneToOne <em>Xml Variable One To One</em>}'.
-	 * <!-- begin-user-doc -->
-	 * This default implementation returns null so that we can easily ignore cases;
-	 * it's useful to ignore a case when inheritance will catch all the cases anyway.
-	 * <!-- end-user-doc -->
-	 * @return the new adapter.
-	 * @see org.eclipse.jpt.eclipselink.core.resource.orm.XmlVariableOneToOne
-	 * @generated
-	 */
-	public Adapter createEclipseLinkOrm_XmlVariableOneToOneAdapter()
-	{
-		return null;
-	}
-
-	/**
-	 * Creates a new adapter for an object of class '{@link org.eclipse.jpt.eclipselink.core.resource.orm.XmlVariableOneToOneImpl <em>Xml Variable One To One Impl</em>}'.
-	 * <!-- begin-user-doc -->
-	 * This default implementation returns null so that we can easily ignore cases;
-	 * it's useful to ignore a case when inheritance will catch all the cases anyway.
-	 * <!-- end-user-doc -->
-	 * @return the new adapter.
-	 * @see org.eclipse.jpt.eclipselink.core.resource.orm.XmlVariableOneToOneImpl
-	 * @generated
-	 */
-	public Adapter createEclipseLinkOrm_XmlVariableOneToOneImplAdapter()
-	{
-		return null;
-	}
-
-	/**
-	 * Creates a new adapter for an object of class '{@link org.eclipse.jpt.core.resource.orm.XmlTransient <em>Xml Transient</em>}'.
-	 * <!-- begin-user-doc -->
-	 * This default implementation returns null so that we can easily ignore cases;
-	 * it's useful to ignore a case when inheritance will catch all the cases anyway.
-	 * <!-- end-user-doc -->
-	 * @return the new adapter.
-	 * @see org.eclipse.jpt.core.resource.orm.XmlTransient
-	 * @generated
-	 */
-	public Adapter createOrm_XmlTransientAdapter()
-	{
-		return null;
-	}
-
-	/**
-	 * Creates a new adapter for an object of class '{@link org.eclipse.jpt.core.resource.orm.XmlTransientImpl <em>Xml Transient Impl</em>}'.
-	 * <!-- begin-user-doc -->
-	 * This default implementation returns null so that we can easily ignore cases;
-	 * it's useful to ignore a case when inheritance will catch all the cases anyway.
-	 * <!-- end-user-doc -->
-	 * @return the new adapter.
-	 * @see org.eclipse.jpt.core.resource.orm.XmlTransientImpl
-	 * @generated
-	 */
-	public Adapter createOrm_XmlTransientImplAdapter()
-	{
-		return null;
-	}
-
-	/**
-	 * Creates a new adapter for the default case.
-	 * <!-- begin-user-doc -->
-	 * This default implementation returns null.
-	 * <!-- end-user-doc -->
-	 * @return the new adapter.
-	 * @generated
-	 */
-	public Adapter createEObjectAdapter()
-	{
-		return null;
-	}
-
-} //EclipseLink1_1OrmAdapterFactory
diff --git a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink1_1/core/resource/orm/util/EclipseLink1_1OrmSwitch.java b/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink1_1/core/resource/orm/util/EclipseLink1_1OrmSwitch.java
deleted file mode 100644
index 7f1270b..0000000
--- a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink1_1/core/resource/orm/util/EclipseLink1_1OrmSwitch.java
+++ /dev/null
@@ -1,2151 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- *******************************************************************************/
-package org.eclipse.jpt.eclipselink1_1.core.resource.orm.util;
-
-import java.util.List;
-
-import org.eclipse.emf.ecore.EClass;
-import org.eclipse.emf.ecore.EObject;
-
-import org.eclipse.jpt.core.resource.orm.AbstractXmlAttributeMapping;
-import org.eclipse.jpt.core.resource.orm.BaseXmlEmbedded;
-import org.eclipse.jpt.core.resource.orm.ColumnMapping;
-import org.eclipse.jpt.core.resource.orm.XmlConvertibleMapping;
-import org.eclipse.jpt.core.resource.orm.XmlJoinColumnsMapping;
-import org.eclipse.jpt.core.resource.orm.XmlJoinTableMapping;
-import org.eclipse.jpt.core.resource.orm.XmlMappedByMapping;
-import org.eclipse.jpt.core.resource.orm.XmlMultiRelationshipMapping;
-import org.eclipse.jpt.core.resource.orm.XmlRelationshipMapping;
-import org.eclipse.jpt.core.resource.orm.XmlSingleRelationshipMapping;
-
-import org.eclipse.jpt.eclipselink.core.resource.orm.XmlAccessMethodsHolder;
-import org.eclipse.jpt.eclipselink.core.resource.orm.XmlConverterHolder;
-import org.eclipse.jpt.eclipselink.core.resource.orm.XmlConvertersHolder;
-import org.eclipse.jpt.eclipselink.core.resource.orm.XmlJoinFetch;
-import org.eclipse.jpt.eclipselink.core.resource.orm.XmlMutable;
-import org.eclipse.jpt.eclipselink.core.resource.orm.XmlPrivateOwned;
-
-import org.eclipse.jpt.eclipselink1_1.core.resource.orm.*;
-
-/**
- * <!-- begin-user-doc -->
- * The <b>Switch</b> for the model's inheritance hierarchy.
- * It supports the call {@link #doSwitch(EObject) doSwitch(object)}
- * to invoke the <code>caseXXX</code> method for each class of the model,
- * starting with the actual class of the object
- * and proceeding up the inheritance hierarchy
- * until a non-null result is returned,
- * which is the result of the switch.
- * <!-- end-user-doc -->
- * @see org.eclipse.jpt.eclipselink1_1.core.resource.orm.EclipseLink1_1OrmPackage
- * @generated
- */
-public class EclipseLink1_1OrmSwitch<T>
-{
-	/**
-	 * The cached model package
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	protected static EclipseLink1_1OrmPackage modelPackage;
-
-	/**
-	 * Creates an instance of the switch.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public EclipseLink1_1OrmSwitch()
-	{
-		if (modelPackage == null)
-		{
-			modelPackage = EclipseLink1_1OrmPackage.eINSTANCE;
-		}
-	}
-
-	/**
-	 * Calls <code>caseXXX</code> for each class of the model until one returns a non null result; it yields that result.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return the first non-null result returned by a <code>caseXXX</code> call.
-	 * @generated
-	 */
-	public T doSwitch(EObject theEObject)
-	{
-		return doSwitch(theEObject.eClass(), theEObject);
-	}
-
-	/**
-	 * Calls <code>caseXXX</code> for each class of the model until one returns a non null result; it yields that result.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return the first non-null result returned by a <code>caseXXX</code> call.
-	 * @generated
-	 */
-	protected T doSwitch(EClass theEClass, EObject theEObject)
-	{
-		if (theEClass.eContainer() == modelPackage)
-		{
-			return doSwitch(theEClass.getClassifierID(), theEObject);
-		}
-		else
-		{
-			List<EClass> eSuperTypes = theEClass.getESuperTypes();
-			return
-				eSuperTypes.isEmpty() ?
-					defaultCase(theEObject) :
-					doSwitch(eSuperTypes.get(0), theEObject);
-		}
-	}
-
-	/**
-	 * Calls <code>caseXXX</code> for each class of the model until one returns a non null result; it yields that result.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return the first non-null result returned by a <code>caseXXX</code> call.
-	 * @generated
-	 */
-	protected T doSwitch(int classifierID, EObject theEObject)
-	{
-		switch (classifierID)
-		{
-			case EclipseLink1_1OrmPackage.XML_ENTITY_MAPPINGS:
-			{
-				XmlEntityMappings xmlEntityMappings = (XmlEntityMappings)theEObject;
-				T result = caseXmlEntityMappings(xmlEntityMappings);
-				if (result == null) result = caseEclipseLinkOrm_XmlEntityMappings(xmlEntityMappings);
-				if (result == null) result = caseOrm_XmlEntityMappings(xmlEntityMappings);
-				if (result == null) result = caseXmlConvertersHolder(xmlEntityMappings);
-				if (result == null) result = defaultCase(theEObject);
-				return result;
-			}
-			case EclipseLink1_1OrmPackage.XML_ATTRIBUTE_MAPPING:
-			{
-				XmlAttributeMapping xmlAttributeMapping = (XmlAttributeMapping)theEObject;
-				T result = caseXmlAttributeMapping(xmlAttributeMapping);
-				if (result == null) result = caseOrm_XmlAttributeMapping(xmlAttributeMapping);
-				if (result == null) result = defaultCase(theEObject);
-				return result;
-			}
-			case EclipseLink1_1OrmPackage.XML_ID:
-			{
-				XmlId xmlId = (XmlId)theEObject;
-				T result = caseXmlId(xmlId);
-				if (result == null) result = caseEclipseLinkOrm_XmlId(xmlId);
-				if (result == null) result = caseXmlAttributeMapping(xmlId);
-				if (result == null) result = caseOrm_XmlId(xmlId);
-				if (result == null) result = caseXmlMutable(xmlId);
-				if (result == null) result = caseEclipseLinkOrm_XmlConvertibleMapping(xmlId);
-				if (result == null) result = caseXmlAccessMethodsHolder(xmlId);
-				if (result == null) result = caseOrm_XmlAttributeMapping(xmlId);
-				if (result == null) result = caseColumnMapping(xmlId);
-				if (result == null) result = caseXmlConvertibleMapping(xmlId);
-				if (result == null) result = caseXmlConverterHolder(xmlId);
-				if (result == null) result = defaultCase(theEObject);
-				return result;
-			}
-			case EclipseLink1_1OrmPackage.XML_ID_IMPL:
-			{
-				XmlIdImpl xmlIdImpl = (XmlIdImpl)theEObject;
-				T result = caseXmlIdImpl(xmlIdImpl);
-				if (result == null) result = caseEclipseLinkOrm_XmlIdImpl(xmlIdImpl);
-				if (result == null) result = caseXmlId(xmlIdImpl);
-				if (result == null) result = caseOrm_XmlIdImpl(xmlIdImpl);
-				if (result == null) result = caseEclipseLinkOrm_XmlId(xmlIdImpl);
-				if (result == null) result = caseXmlAttributeMapping(xmlIdImpl);
-				if (result == null) result = caseAbstractXmlAttributeMapping(xmlIdImpl);
-				if (result == null) result = caseOrm_XmlId(xmlIdImpl);
-				if (result == null) result = caseXmlMutable(xmlIdImpl);
-				if (result == null) result = caseEclipseLinkOrm_XmlConvertibleMapping(xmlIdImpl);
-				if (result == null) result = caseXmlAccessMethodsHolder(xmlIdImpl);
-				if (result == null) result = caseOrm_XmlAttributeMapping(xmlIdImpl);
-				if (result == null) result = caseColumnMapping(xmlIdImpl);
-				if (result == null) result = caseXmlConvertibleMapping(xmlIdImpl);
-				if (result == null) result = caseXmlConverterHolder(xmlIdImpl);
-				if (result == null) result = defaultCase(theEObject);
-				return result;
-			}
-			case EclipseLink1_1OrmPackage.XML_EMBEDDED_ID:
-			{
-				XmlEmbeddedId xmlEmbeddedId = (XmlEmbeddedId)theEObject;
-				T result = caseXmlEmbeddedId(xmlEmbeddedId);
-				if (result == null) result = caseEclipseLinkOrm_XmlEmbeddedId(xmlEmbeddedId);
-				if (result == null) result = caseXmlAttributeMapping(xmlEmbeddedId);
-				if (result == null) result = caseOrm_XmlEmbeddedId(xmlEmbeddedId);
-				if (result == null) result = caseXmlAccessMethodsHolder(xmlEmbeddedId);
-				if (result == null) result = caseOrm_XmlAttributeMapping(xmlEmbeddedId);
-				if (result == null) result = caseBaseXmlEmbedded(xmlEmbeddedId);
-				if (result == null) result = defaultCase(theEObject);
-				return result;
-			}
-			case EclipseLink1_1OrmPackage.XML_EMBEDDED_ID_IMPL:
-			{
-				XmlEmbeddedIdImpl xmlEmbeddedIdImpl = (XmlEmbeddedIdImpl)theEObject;
-				T result = caseXmlEmbeddedIdImpl(xmlEmbeddedIdImpl);
-				if (result == null) result = caseEclipseLinkOrm_XmlEmbeddedIdImpl(xmlEmbeddedIdImpl);
-				if (result == null) result = caseXmlEmbeddedId(xmlEmbeddedIdImpl);
-				if (result == null) result = caseOrm_XmlEmbeddedIdImpl(xmlEmbeddedIdImpl);
-				if (result == null) result = caseEclipseLinkOrm_XmlEmbeddedId(xmlEmbeddedIdImpl);
-				if (result == null) result = caseXmlAttributeMapping(xmlEmbeddedIdImpl);
-				if (result == null) result = caseAbstractXmlAttributeMapping(xmlEmbeddedIdImpl);
-				if (result == null) result = caseOrm_XmlEmbeddedId(xmlEmbeddedIdImpl);
-				if (result == null) result = caseXmlAccessMethodsHolder(xmlEmbeddedIdImpl);
-				if (result == null) result = caseOrm_XmlAttributeMapping(xmlEmbeddedIdImpl);
-				if (result == null) result = caseBaseXmlEmbedded(xmlEmbeddedIdImpl);
-				if (result == null) result = defaultCase(theEObject);
-				return result;
-			}
-			case EclipseLink1_1OrmPackage.XML_EMBEDDED:
-			{
-				XmlEmbedded xmlEmbedded = (XmlEmbedded)theEObject;
-				T result = caseXmlEmbedded(xmlEmbedded);
-				if (result == null) result = caseEclipseLinkOrm_XmlEmbedded(xmlEmbedded);
-				if (result == null) result = caseXmlAttributeMapping(xmlEmbedded);
-				if (result == null) result = caseOrm_XmlEmbedded(xmlEmbedded);
-				if (result == null) result = caseXmlAccessMethodsHolder(xmlEmbedded);
-				if (result == null) result = caseOrm_XmlAttributeMapping(xmlEmbedded);
-				if (result == null) result = caseBaseXmlEmbedded(xmlEmbedded);
-				if (result == null) result = defaultCase(theEObject);
-				return result;
-			}
-			case EclipseLink1_1OrmPackage.XML_EMBEDDED_IMPL:
-			{
-				XmlEmbeddedImpl xmlEmbeddedImpl = (XmlEmbeddedImpl)theEObject;
-				T result = caseXmlEmbeddedImpl(xmlEmbeddedImpl);
-				if (result == null) result = caseEclipseLinkOrm_XmlEmbeddedImpl(xmlEmbeddedImpl);
-				if (result == null) result = caseXmlEmbedded(xmlEmbeddedImpl);
-				if (result == null) result = caseOrm_XmlEmbeddedImpl(xmlEmbeddedImpl);
-				if (result == null) result = caseEclipseLinkOrm_XmlEmbedded(xmlEmbeddedImpl);
-				if (result == null) result = caseXmlAttributeMapping(xmlEmbeddedImpl);
-				if (result == null) result = caseAbstractXmlAttributeMapping(xmlEmbeddedImpl);
-				if (result == null) result = caseOrm_XmlEmbedded(xmlEmbeddedImpl);
-				if (result == null) result = caseXmlAccessMethodsHolder(xmlEmbeddedImpl);
-				if (result == null) result = caseOrm_XmlAttributeMapping(xmlEmbeddedImpl);
-				if (result == null) result = caseBaseXmlEmbedded(xmlEmbeddedImpl);
-				if (result == null) result = defaultCase(theEObject);
-				return result;
-			}
-			case EclipseLink1_1OrmPackage.XML_BASIC:
-			{
-				XmlBasic xmlBasic = (XmlBasic)theEObject;
-				T result = caseXmlBasic(xmlBasic);
-				if (result == null) result = caseEclipseLinkOrm_XmlBasic(xmlBasic);
-				if (result == null) result = caseXmlAttributeMapping(xmlBasic);
-				if (result == null) result = caseOrm_XmlBasic(xmlBasic);
-				if (result == null) result = caseXmlMutable(xmlBasic);
-				if (result == null) result = caseEclipseLinkOrm_XmlConvertibleMapping(xmlBasic);
-				if (result == null) result = caseXmlAccessMethodsHolder(xmlBasic);
-				if (result == null) result = caseOrm_XmlAttributeMapping(xmlBasic);
-				if (result == null) result = caseColumnMapping(xmlBasic);
-				if (result == null) result = caseXmlConvertibleMapping(xmlBasic);
-				if (result == null) result = caseXmlConverterHolder(xmlBasic);
-				if (result == null) result = defaultCase(theEObject);
-				return result;
-			}
-			case EclipseLink1_1OrmPackage.XML_BASIC_IMPL:
-			{
-				XmlBasicImpl xmlBasicImpl = (XmlBasicImpl)theEObject;
-				T result = caseXmlBasicImpl(xmlBasicImpl);
-				if (result == null) result = caseEclipseLinkOrm_XmlBasicImpl(xmlBasicImpl);
-				if (result == null) result = caseXmlBasic(xmlBasicImpl);
-				if (result == null) result = caseOrm_XmlBasicImpl(xmlBasicImpl);
-				if (result == null) result = caseEclipseLinkOrm_XmlBasic(xmlBasicImpl);
-				if (result == null) result = caseXmlAttributeMapping(xmlBasicImpl);
-				if (result == null) result = caseAbstractXmlAttributeMapping(xmlBasicImpl);
-				if (result == null) result = caseOrm_XmlBasic(xmlBasicImpl);
-				if (result == null) result = caseXmlMutable(xmlBasicImpl);
-				if (result == null) result = caseEclipseLinkOrm_XmlConvertibleMapping(xmlBasicImpl);
-				if (result == null) result = caseXmlAccessMethodsHolder(xmlBasicImpl);
-				if (result == null) result = caseOrm_XmlAttributeMapping(xmlBasicImpl);
-				if (result == null) result = caseColumnMapping(xmlBasicImpl);
-				if (result == null) result = caseXmlConvertibleMapping(xmlBasicImpl);
-				if (result == null) result = caseXmlConverterHolder(xmlBasicImpl);
-				if (result == null) result = defaultCase(theEObject);
-				return result;
-			}
-			case EclipseLink1_1OrmPackage.XML_VERSION:
-			{
-				XmlVersion xmlVersion = (XmlVersion)theEObject;
-				T result = caseXmlVersion(xmlVersion);
-				if (result == null) result = caseEclipseLinkOrm_XmlVersion(xmlVersion);
-				if (result == null) result = caseXmlAttributeMapping(xmlVersion);
-				if (result == null) result = caseOrm_XmlVersion(xmlVersion);
-				if (result == null) result = caseXmlMutable(xmlVersion);
-				if (result == null) result = caseEclipseLinkOrm_XmlConvertibleMapping(xmlVersion);
-				if (result == null) result = caseXmlAccessMethodsHolder(xmlVersion);
-				if (result == null) result = caseOrm_XmlAttributeMapping(xmlVersion);
-				if (result == null) result = caseColumnMapping(xmlVersion);
-				if (result == null) result = caseXmlConvertibleMapping(xmlVersion);
-				if (result == null) result = caseXmlConverterHolder(xmlVersion);
-				if (result == null) result = defaultCase(theEObject);
-				return result;
-			}
-			case EclipseLink1_1OrmPackage.XML_VERSION_IMPL:
-			{
-				XmlVersionImpl xmlVersionImpl = (XmlVersionImpl)theEObject;
-				T result = caseXmlVersionImpl(xmlVersionImpl);
-				if (result == null) result = caseEclipseLinkOrm_XmlVersionImpl(xmlVersionImpl);
-				if (result == null) result = caseXmlVersion(xmlVersionImpl);
-				if (result == null) result = caseOrm_XmlVersionImpl(xmlVersionImpl);
-				if (result == null) result = caseEclipseLinkOrm_XmlVersion(xmlVersionImpl);
-				if (result == null) result = caseXmlAttributeMapping(xmlVersionImpl);
-				if (result == null) result = caseAbstractXmlAttributeMapping(xmlVersionImpl);
-				if (result == null) result = caseOrm_XmlVersion(xmlVersionImpl);
-				if (result == null) result = caseXmlMutable(xmlVersionImpl);
-				if (result == null) result = caseEclipseLinkOrm_XmlConvertibleMapping(xmlVersionImpl);
-				if (result == null) result = caseXmlAccessMethodsHolder(xmlVersionImpl);
-				if (result == null) result = caseOrm_XmlAttributeMapping(xmlVersionImpl);
-				if (result == null) result = caseColumnMapping(xmlVersionImpl);
-				if (result == null) result = caseXmlConvertibleMapping(xmlVersionImpl);
-				if (result == null) result = caseXmlConverterHolder(xmlVersionImpl);
-				if (result == null) result = defaultCase(theEObject);
-				return result;
-			}
-			case EclipseLink1_1OrmPackage.XML_ONE_TO_ONE:
-			{
-				XmlOneToOne xmlOneToOne = (XmlOneToOne)theEObject;
-				T result = caseXmlOneToOne(xmlOneToOne);
-				if (result == null) result = caseEclipseLinkOrm_XmlOneToOne(xmlOneToOne);
-				if (result == null) result = caseXmlAttributeMapping(xmlOneToOne);
-				if (result == null) result = caseOrm_XmlOneToOne(xmlOneToOne);
-				if (result == null) result = caseXmlPrivateOwned(xmlOneToOne);
-				if (result == null) result = caseXmlJoinFetch(xmlOneToOne);
-				if (result == null) result = caseXmlAccessMethodsHolder(xmlOneToOne);
-				if (result == null) result = caseOrm_XmlAttributeMapping(xmlOneToOne);
-				if (result == null) result = caseXmlSingleRelationshipMapping(xmlOneToOne);
-				if (result == null) result = caseXmlMappedByMapping(xmlOneToOne);
-				if (result == null) result = caseXmlRelationshipMapping(xmlOneToOne);
-				if (result == null) result = caseXmlJoinTableMapping(xmlOneToOne);
-				if (result == null) result = caseXmlJoinColumnsMapping(xmlOneToOne);
-				if (result == null) result = defaultCase(theEObject);
-				return result;
-			}
-			case EclipseLink1_1OrmPackage.XML_ONE_TO_ONE_IMPL:
-			{
-				XmlOneToOneImpl xmlOneToOneImpl = (XmlOneToOneImpl)theEObject;
-				T result = caseXmlOneToOneImpl(xmlOneToOneImpl);
-				if (result == null) result = caseEclipseLinkOrm_XmlOneToOneImpl(xmlOneToOneImpl);
-				if (result == null) result = caseXmlOneToOne(xmlOneToOneImpl);
-				if (result == null) result = caseOrm_XmlOneToOneImpl(xmlOneToOneImpl);
-				if (result == null) result = caseEclipseLinkOrm_XmlOneToOne(xmlOneToOneImpl);
-				if (result == null) result = caseXmlAttributeMapping(xmlOneToOneImpl);
-				if (result == null) result = caseAbstractXmlAttributeMapping(xmlOneToOneImpl);
-				if (result == null) result = caseOrm_XmlOneToOne(xmlOneToOneImpl);
-				if (result == null) result = caseXmlPrivateOwned(xmlOneToOneImpl);
-				if (result == null) result = caseXmlJoinFetch(xmlOneToOneImpl);
-				if (result == null) result = caseXmlAccessMethodsHolder(xmlOneToOneImpl);
-				if (result == null) result = caseOrm_XmlAttributeMapping(xmlOneToOneImpl);
-				if (result == null) result = caseXmlSingleRelationshipMapping(xmlOneToOneImpl);
-				if (result == null) result = caseXmlMappedByMapping(xmlOneToOneImpl);
-				if (result == null) result = caseXmlRelationshipMapping(xmlOneToOneImpl);
-				if (result == null) result = caseXmlJoinTableMapping(xmlOneToOneImpl);
-				if (result == null) result = caseXmlJoinColumnsMapping(xmlOneToOneImpl);
-				if (result == null) result = defaultCase(theEObject);
-				return result;
-			}
-			case EclipseLink1_1OrmPackage.XML_ONE_TO_MANY:
-			{
-				XmlOneToMany xmlOneToMany = (XmlOneToMany)theEObject;
-				T result = caseXmlOneToMany(xmlOneToMany);
-				if (result == null) result = caseEclipseLinkOrm_XmlOneToMany(xmlOneToMany);
-				if (result == null) result = caseXmlAttributeMapping(xmlOneToMany);
-				if (result == null) result = caseOrm_XmlOneToMany(xmlOneToMany);
-				if (result == null) result = caseXmlPrivateOwned(xmlOneToMany);
-				if (result == null) result = caseXmlJoinFetch(xmlOneToMany);
-				if (result == null) result = caseXmlAccessMethodsHolder(xmlOneToMany);
-				if (result == null) result = caseOrm_XmlAttributeMapping(xmlOneToMany);
-				if (result == null) result = caseXmlMultiRelationshipMapping(xmlOneToMany);
-				if (result == null) result = caseXmlJoinColumnsMapping(xmlOneToMany);
-				if (result == null) result = caseXmlMappedByMapping(xmlOneToMany);
-				if (result == null) result = caseXmlJoinTableMapping(xmlOneToMany);
-				if (result == null) result = caseXmlRelationshipMapping(xmlOneToMany);
-				if (result == null) result = defaultCase(theEObject);
-				return result;
-			}
-			case EclipseLink1_1OrmPackage.XML_ONE_TO_MANY_IMPL:
-			{
-				XmlOneToManyImpl xmlOneToManyImpl = (XmlOneToManyImpl)theEObject;
-				T result = caseXmlOneToManyImpl(xmlOneToManyImpl);
-				if (result == null) result = caseEclipseLinkOrm_XmlOneToManyImpl(xmlOneToManyImpl);
-				if (result == null) result = caseXmlOneToMany(xmlOneToManyImpl);
-				if (result == null) result = caseOrm_XmlOneToManyImpl(xmlOneToManyImpl);
-				if (result == null) result = caseEclipseLinkOrm_XmlOneToMany(xmlOneToManyImpl);
-				if (result == null) result = caseXmlAttributeMapping(xmlOneToManyImpl);
-				if (result == null) result = caseAbstractXmlAttributeMapping(xmlOneToManyImpl);
-				if (result == null) result = caseOrm_XmlOneToMany(xmlOneToManyImpl);
-				if (result == null) result = caseXmlPrivateOwned(xmlOneToManyImpl);
-				if (result == null) result = caseXmlJoinFetch(xmlOneToManyImpl);
-				if (result == null) result = caseXmlAccessMethodsHolder(xmlOneToManyImpl);
-				if (result == null) result = caseOrm_XmlAttributeMapping(xmlOneToManyImpl);
-				if (result == null) result = caseXmlMultiRelationshipMapping(xmlOneToManyImpl);
-				if (result == null) result = caseXmlJoinColumnsMapping(xmlOneToManyImpl);
-				if (result == null) result = caseXmlMappedByMapping(xmlOneToManyImpl);
-				if (result == null) result = caseXmlJoinTableMapping(xmlOneToManyImpl);
-				if (result == null) result = caseXmlRelationshipMapping(xmlOneToManyImpl);
-				if (result == null) result = defaultCase(theEObject);
-				return result;
-			}
-			case EclipseLink1_1OrmPackage.XML_MANY_TO_ONE:
-			{
-				XmlManyToOne xmlManyToOne = (XmlManyToOne)theEObject;
-				T result = caseXmlManyToOne(xmlManyToOne);
-				if (result == null) result = caseEclipseLinkOrm_XmlManyToOne(xmlManyToOne);
-				if (result == null) result = caseXmlAttributeMapping(xmlManyToOne);
-				if (result == null) result = caseOrm_XmlManyToOne(xmlManyToOne);
-				if (result == null) result = caseXmlJoinFetch(xmlManyToOne);
-				if (result == null) result = caseXmlAccessMethodsHolder(xmlManyToOne);
-				if (result == null) result = caseOrm_XmlAttributeMapping(xmlManyToOne);
-				if (result == null) result = caseXmlSingleRelationshipMapping(xmlManyToOne);
-				if (result == null) result = caseXmlRelationshipMapping(xmlManyToOne);
-				if (result == null) result = caseXmlJoinTableMapping(xmlManyToOne);
-				if (result == null) result = caseXmlJoinColumnsMapping(xmlManyToOne);
-				if (result == null) result = defaultCase(theEObject);
-				return result;
-			}
-			case EclipseLink1_1OrmPackage.XML_MANY_TO_ONE_IMPL:
-			{
-				XmlManyToOneImpl xmlManyToOneImpl = (XmlManyToOneImpl)theEObject;
-				T result = caseXmlManyToOneImpl(xmlManyToOneImpl);
-				if (result == null) result = caseEclipseLinkOrm_XmlManyToOneImpl(xmlManyToOneImpl);
-				if (result == null) result = caseXmlManyToOne(xmlManyToOneImpl);
-				if (result == null) result = caseOrm_XmlManyToOneImpl(xmlManyToOneImpl);
-				if (result == null) result = caseEclipseLinkOrm_XmlManyToOne(xmlManyToOneImpl);
-				if (result == null) result = caseXmlAttributeMapping(xmlManyToOneImpl);
-				if (result == null) result = caseAbstractXmlAttributeMapping(xmlManyToOneImpl);
-				if (result == null) result = caseOrm_XmlManyToOne(xmlManyToOneImpl);
-				if (result == null) result = caseXmlJoinFetch(xmlManyToOneImpl);
-				if (result == null) result = caseXmlAccessMethodsHolder(xmlManyToOneImpl);
-				if (result == null) result = caseOrm_XmlAttributeMapping(xmlManyToOneImpl);
-				if (result == null) result = caseXmlSingleRelationshipMapping(xmlManyToOneImpl);
-				if (result == null) result = caseXmlRelationshipMapping(xmlManyToOneImpl);
-				if (result == null) result = caseXmlJoinTableMapping(xmlManyToOneImpl);
-				if (result == null) result = caseXmlJoinColumnsMapping(xmlManyToOneImpl);
-				if (result == null) result = defaultCase(theEObject);
-				return result;
-			}
-			case EclipseLink1_1OrmPackage.XML_MANY_TO_MANY:
-			{
-				XmlManyToMany xmlManyToMany = (XmlManyToMany)theEObject;
-				T result = caseXmlManyToMany(xmlManyToMany);
-				if (result == null) result = caseEclipseLinkOrm_XmlManyToMany(xmlManyToMany);
-				if (result == null) result = caseXmlAttributeMapping(xmlManyToMany);
-				if (result == null) result = caseOrm_XmlManyToMany(xmlManyToMany);
-				if (result == null) result = caseXmlJoinFetch(xmlManyToMany);
-				if (result == null) result = caseXmlAccessMethodsHolder(xmlManyToMany);
-				if (result == null) result = caseOrm_XmlAttributeMapping(xmlManyToMany);
-				if (result == null) result = caseXmlMultiRelationshipMapping(xmlManyToMany);
-				if (result == null) result = caseXmlMappedByMapping(xmlManyToMany);
-				if (result == null) result = caseXmlJoinTableMapping(xmlManyToMany);
-				if (result == null) result = caseXmlRelationshipMapping(xmlManyToMany);
-				if (result == null) result = defaultCase(theEObject);
-				return result;
-			}
-			case EclipseLink1_1OrmPackage.XML_MANY_TO_MANY_IMPL:
-			{
-				XmlManyToManyImpl xmlManyToManyImpl = (XmlManyToManyImpl)theEObject;
-				T result = caseXmlManyToManyImpl(xmlManyToManyImpl);
-				if (result == null) result = caseEclipseLinkOrm_XmlManyToManyImpl(xmlManyToManyImpl);
-				if (result == null) result = caseXmlManyToMany(xmlManyToManyImpl);
-				if (result == null) result = caseOrm_XmlManyToManyImpl(xmlManyToManyImpl);
-				if (result == null) result = caseEclipseLinkOrm_XmlManyToMany(xmlManyToManyImpl);
-				if (result == null) result = caseXmlAttributeMapping(xmlManyToManyImpl);
-				if (result == null) result = caseAbstractXmlAttributeMapping(xmlManyToManyImpl);
-				if (result == null) result = caseOrm_XmlManyToMany(xmlManyToManyImpl);
-				if (result == null) result = caseXmlJoinFetch(xmlManyToManyImpl);
-				if (result == null) result = caseXmlAccessMethodsHolder(xmlManyToManyImpl);
-				if (result == null) result = caseOrm_XmlAttributeMapping(xmlManyToManyImpl);
-				if (result == null) result = caseXmlMultiRelationshipMapping(xmlManyToManyImpl);
-				if (result == null) result = caseXmlMappedByMapping(xmlManyToManyImpl);
-				if (result == null) result = caseXmlJoinTableMapping(xmlManyToManyImpl);
-				if (result == null) result = caseXmlRelationshipMapping(xmlManyToManyImpl);
-				if (result == null) result = defaultCase(theEObject);
-				return result;
-			}
-			case EclipseLink1_1OrmPackage.XML_BASIC_COLLECTION:
-			{
-				XmlBasicCollection xmlBasicCollection = (XmlBasicCollection)theEObject;
-				T result = caseXmlBasicCollection(xmlBasicCollection);
-				if (result == null) result = caseEclipseLinkOrm_XmlBasicCollection(xmlBasicCollection);
-				if (result == null) result = caseXmlAttributeMapping(xmlBasicCollection);
-				if (result == null) result = caseOrm_XmlAttributeMapping(xmlBasicCollection);
-				if (result == null) result = caseXmlAccessMethodsHolder(xmlBasicCollection);
-				if (result == null) result = defaultCase(theEObject);
-				return result;
-			}
-			case EclipseLink1_1OrmPackage.XML_BASIC_COLLECTION_IMPL:
-			{
-				XmlBasicCollectionImpl xmlBasicCollectionImpl = (XmlBasicCollectionImpl)theEObject;
-				T result = caseXmlBasicCollectionImpl(xmlBasicCollectionImpl);
-				if (result == null) result = caseEclipseLinkOrm_XmlBasicCollectionImpl(xmlBasicCollectionImpl);
-				if (result == null) result = caseXmlBasicCollection(xmlBasicCollectionImpl);
-				if (result == null) result = caseAbstractXmlAttributeMapping(xmlBasicCollectionImpl);
-				if (result == null) result = caseEclipseLinkOrm_XmlBasicCollection(xmlBasicCollectionImpl);
-				if (result == null) result = caseXmlAttributeMapping(xmlBasicCollectionImpl);
-				if (result == null) result = caseOrm_XmlAttributeMapping(xmlBasicCollectionImpl);
-				if (result == null) result = caseXmlAccessMethodsHolder(xmlBasicCollectionImpl);
-				if (result == null) result = defaultCase(theEObject);
-				return result;
-			}
-			case EclipseLink1_1OrmPackage.XML_BASIC_MAP:
-			{
-				XmlBasicMap xmlBasicMap = (XmlBasicMap)theEObject;
-				T result = caseXmlBasicMap(xmlBasicMap);
-				if (result == null) result = caseEclipseLinkOrm_XmlBasicMap(xmlBasicMap);
-				if (result == null) result = caseXmlAttributeMapping(xmlBasicMap);
-				if (result == null) result = caseOrm_XmlAttributeMapping(xmlBasicMap);
-				if (result == null) result = caseXmlAccessMethodsHolder(xmlBasicMap);
-				if (result == null) result = defaultCase(theEObject);
-				return result;
-			}
-			case EclipseLink1_1OrmPackage.XML_BASIC_MAP_IMPL:
-			{
-				XmlBasicMapImpl xmlBasicMapImpl = (XmlBasicMapImpl)theEObject;
-				T result = caseXmlBasicMapImpl(xmlBasicMapImpl);
-				if (result == null) result = caseEclipseLinkOrm_XmlBasicMapImpl(xmlBasicMapImpl);
-				if (result == null) result = caseXmlBasicMap(xmlBasicMapImpl);
-				if (result == null) result = caseAbstractXmlAttributeMapping(xmlBasicMapImpl);
-				if (result == null) result = caseEclipseLinkOrm_XmlBasicMap(xmlBasicMapImpl);
-				if (result == null) result = caseXmlAttributeMapping(xmlBasicMapImpl);
-				if (result == null) result = caseOrm_XmlAttributeMapping(xmlBasicMapImpl);
-				if (result == null) result = caseXmlAccessMethodsHolder(xmlBasicMapImpl);
-				if (result == null) result = defaultCase(theEObject);
-				return result;
-			}
-			case EclipseLink1_1OrmPackage.XML_TRANSFORMATION:
-			{
-				XmlTransformation xmlTransformation = (XmlTransformation)theEObject;
-				T result = caseXmlTransformation(xmlTransformation);
-				if (result == null) result = caseEclipseLinkOrm_XmlTransformation(xmlTransformation);
-				if (result == null) result = caseXmlAttributeMapping(xmlTransformation);
-				if (result == null) result = caseOrm_XmlAttributeMapping(xmlTransformation);
-				if (result == null) result = caseXmlAccessMethodsHolder(xmlTransformation);
-				if (result == null) result = defaultCase(theEObject);
-				return result;
-			}
-			case EclipseLink1_1OrmPackage.XML_TRANSFORMATION_IMPL:
-			{
-				XmlTransformationImpl xmlTransformationImpl = (XmlTransformationImpl)theEObject;
-				T result = caseXmlTransformationImpl(xmlTransformationImpl);
-				if (result == null) result = caseEclipseLinkOrm_XmlTransformationImpl(xmlTransformationImpl);
-				if (result == null) result = caseXmlTransformation(xmlTransformationImpl);
-				if (result == null) result = caseAbstractXmlAttributeMapping(xmlTransformationImpl);
-				if (result == null) result = caseEclipseLinkOrm_XmlTransformation(xmlTransformationImpl);
-				if (result == null) result = caseXmlAttributeMapping(xmlTransformationImpl);
-				if (result == null) result = caseOrm_XmlAttributeMapping(xmlTransformationImpl);
-				if (result == null) result = caseXmlAccessMethodsHolder(xmlTransformationImpl);
-				if (result == null) result = defaultCase(theEObject);
-				return result;
-			}
-			case EclipseLink1_1OrmPackage.XML_VARIABLE_ONE_TO_ONE:
-			{
-				XmlVariableOneToOne xmlVariableOneToOne = (XmlVariableOneToOne)theEObject;
-				T result = caseXmlVariableOneToOne(xmlVariableOneToOne);
-				if (result == null) result = caseEclipseLinkOrm_XmlVariableOneToOne(xmlVariableOneToOne);
-				if (result == null) result = caseXmlAttributeMapping(xmlVariableOneToOne);
-				if (result == null) result = caseOrm_XmlAttributeMapping(xmlVariableOneToOne);
-				if (result == null) result = caseXmlAccessMethodsHolder(xmlVariableOneToOne);
-				if (result == null) result = defaultCase(theEObject);
-				return result;
-			}
-			case EclipseLink1_1OrmPackage.XML_VARIABLE_ONE_TO_ONE_IMPL:
-			{
-				XmlVariableOneToOneImpl xmlVariableOneToOneImpl = (XmlVariableOneToOneImpl)theEObject;
-				T result = caseXmlVariableOneToOneImpl(xmlVariableOneToOneImpl);
-				if (result == null) result = caseEclipseLinkOrm_XmlVariableOneToOneImpl(xmlVariableOneToOneImpl);
-				if (result == null) result = caseXmlVariableOneToOne(xmlVariableOneToOneImpl);
-				if (result == null) result = caseAbstractXmlAttributeMapping(xmlVariableOneToOneImpl);
-				if (result == null) result = caseEclipseLinkOrm_XmlVariableOneToOne(xmlVariableOneToOneImpl);
-				if (result == null) result = caseXmlAttributeMapping(xmlVariableOneToOneImpl);
-				if (result == null) result = caseOrm_XmlAttributeMapping(xmlVariableOneToOneImpl);
-				if (result == null) result = caseXmlAccessMethodsHolder(xmlVariableOneToOneImpl);
-				if (result == null) result = defaultCase(theEObject);
-				return result;
-			}
-			case EclipseLink1_1OrmPackage.XML_TRANSIENT:
-			{
-				XmlTransient xmlTransient = (XmlTransient)theEObject;
-				T result = caseXmlTransient(xmlTransient);
-				if (result == null) result = caseOrm_XmlTransient(xmlTransient);
-				if (result == null) result = caseXmlAttributeMapping(xmlTransient);
-				if (result == null) result = caseOrm_XmlAttributeMapping(xmlTransient);
-				if (result == null) result = defaultCase(theEObject);
-				return result;
-			}
-			case EclipseLink1_1OrmPackage.XML_TRANSIENT_IMPL:
-			{
-				XmlTransientImpl xmlTransientImpl = (XmlTransientImpl)theEObject;
-				T result = caseXmlTransientImpl(xmlTransientImpl);
-				if (result == null) result = caseOrm_XmlTransientImpl(xmlTransientImpl);
-				if (result == null) result = caseXmlTransient(xmlTransientImpl);
-				if (result == null) result = caseAbstractXmlAttributeMapping(xmlTransientImpl);
-				if (result == null) result = caseOrm_XmlTransient(xmlTransientImpl);
-				if (result == null) result = caseXmlAttributeMapping(xmlTransientImpl);
-				if (result == null) result = caseOrm_XmlAttributeMapping(xmlTransientImpl);
-				if (result == null) result = defaultCase(theEObject);
-				return result;
-			}
-			default: return defaultCase(theEObject);
-		}
-	}
-
-	/**
-	 * Returns the result of interpreting the object as an instance of '<em>Xml Entity Mappings</em>'.
-	 * <!-- begin-user-doc -->
-	 * This implementation returns null;
-	 * returning a non-null result will terminate the switch.
-	 * <!-- end-user-doc -->
-	 * @param object the target of the switch.
-	 * @return the result of interpreting the object as an instance of '<em>Xml Entity Mappings</em>'.
-	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
-	 * @generated
-	 */
-	public T caseXmlEntityMappings(XmlEntityMappings object)
-	{
-		return null;
-	}
-
-	/**
-	 * Returns the result of interpreting the object as an instance of '<em>Xml Attribute Mapping</em>'.
-	 * <!-- begin-user-doc -->
-	 * This implementation returns null;
-	 * returning a non-null result will terminate the switch.
-	 * <!-- end-user-doc -->
-	 * @param object the target of the switch.
-	 * @return the result of interpreting the object as an instance of '<em>Xml Attribute Mapping</em>'.
-	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
-	 * @generated
-	 */
-	public T caseXmlAttributeMapping(XmlAttributeMapping object)
-	{
-		return null;
-	}
-
-	/**
-	 * Returns the result of interpreting the object as an instance of '<em>Xml Id</em>'.
-	 * <!-- begin-user-doc -->
-	 * This implementation returns null;
-	 * returning a non-null result will terminate the switch.
-	 * <!-- end-user-doc -->
-	 * @param object the target of the switch.
-	 * @return the result of interpreting the object as an instance of '<em>Xml Id</em>'.
-	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
-	 * @generated
-	 */
-	public T caseXmlId(XmlId object)
-	{
-		return null;
-	}
-
-	/**
-	 * Returns the result of interpreting the object as an instance of '<em>Xml Id Impl</em>'.
-	 * <!-- begin-user-doc -->
-	 * This implementation returns null;
-	 * returning a non-null result will terminate the switch.
-	 * <!-- end-user-doc -->
-	 * @param object the target of the switch.
-	 * @return the result of interpreting the object as an instance of '<em>Xml Id Impl</em>'.
-	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
-	 * @generated
-	 */
-	public T caseXmlIdImpl(XmlIdImpl object)
-	{
-		return null;
-	}
-
-	/**
-	 * Returns the result of interpreting the object as an instance of '<em>Xml Embedded Id</em>'.
-	 * <!-- begin-user-doc -->
-	 * This implementation returns null;
-	 * returning a non-null result will terminate the switch.
-	 * <!-- end-user-doc -->
-	 * @param object the target of the switch.
-	 * @return the result of interpreting the object as an instance of '<em>Xml Embedded Id</em>'.
-	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
-	 * @generated
-	 */
-	public T caseXmlEmbeddedId(XmlEmbeddedId object)
-	{
-		return null;
-	}
-
-	/**
-	 * Returns the result of interpreting the object as an instance of '<em>Xml Embedded Id Impl</em>'.
-	 * <!-- begin-user-doc -->
-	 * This implementation returns null;
-	 * returning a non-null result will terminate the switch.
-	 * <!-- end-user-doc -->
-	 * @param object the target of the switch.
-	 * @return the result of interpreting the object as an instance of '<em>Xml Embedded Id Impl</em>'.
-	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
-	 * @generated
-	 */
-	public T caseXmlEmbeddedIdImpl(XmlEmbeddedIdImpl object)
-	{
-		return null;
-	}
-
-	/**
-	 * Returns the result of interpreting the object as an instance of '<em>Xml Embedded</em>'.
-	 * <!-- begin-user-doc -->
-	 * This implementation returns null;
-	 * returning a non-null result will terminate the switch.
-	 * <!-- end-user-doc -->
-	 * @param object the target of the switch.
-	 * @return the result of interpreting the object as an instance of '<em>Xml Embedded</em>'.
-	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
-	 * @generated
-	 */
-	public T caseXmlEmbedded(XmlEmbedded object)
-	{
-		return null;
-	}
-
-	/**
-	 * Returns the result of interpreting the object as an instance of '<em>Xml Embedded Impl</em>'.
-	 * <!-- begin-user-doc -->
-	 * This implementation returns null;
-	 * returning a non-null result will terminate the switch.
-	 * <!-- end-user-doc -->
-	 * @param object the target of the switch.
-	 * @return the result of interpreting the object as an instance of '<em>Xml Embedded Impl</em>'.
-	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
-	 * @generated
-	 */
-	public T caseXmlEmbeddedImpl(XmlEmbeddedImpl object)
-	{
-		return null;
-	}
-
-	/**
-	 * Returns the result of interpreting the object as an instance of '<em>Xml Basic</em>'.
-	 * <!-- begin-user-doc -->
-	 * This implementation returns null;
-	 * returning a non-null result will terminate the switch.
-	 * <!-- end-user-doc -->
-	 * @param object the target of the switch.
-	 * @return the result of interpreting the object as an instance of '<em>Xml Basic</em>'.
-	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
-	 * @generated
-	 */
-	public T caseXmlBasic(XmlBasic object)
-	{
-		return null;
-	}
-
-	/**
-	 * Returns the result of interpreting the object as an instance of '<em>Xml Basic Impl</em>'.
-	 * <!-- begin-user-doc -->
-	 * This implementation returns null;
-	 * returning a non-null result will terminate the switch.
-	 * <!-- end-user-doc -->
-	 * @param object the target of the switch.
-	 * @return the result of interpreting the object as an instance of '<em>Xml Basic Impl</em>'.
-	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
-	 * @generated
-	 */
-	public T caseXmlBasicImpl(XmlBasicImpl object)
-	{
-		return null;
-	}
-
-	/**
-	 * Returns the result of interpreting the object as an instance of '<em>Xml Version</em>'.
-	 * <!-- begin-user-doc -->
-	 * This implementation returns null;
-	 * returning a non-null result will terminate the switch.
-	 * <!-- end-user-doc -->
-	 * @param object the target of the switch.
-	 * @return the result of interpreting the object as an instance of '<em>Xml Version</em>'.
-	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
-	 * @generated
-	 */
-	public T caseXmlVersion(XmlVersion object)
-	{
-		return null;
-	}
-
-	/**
-	 * Returns the result of interpreting the object as an instance of '<em>Xml Version Impl</em>'.
-	 * <!-- begin-user-doc -->
-	 * This implementation returns null;
-	 * returning a non-null result will terminate the switch.
-	 * <!-- end-user-doc -->
-	 * @param object the target of the switch.
-	 * @return the result of interpreting the object as an instance of '<em>Xml Version Impl</em>'.
-	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
-	 * @generated
-	 */
-	public T caseXmlVersionImpl(XmlVersionImpl object)
-	{
-		return null;
-	}
-
-	/**
-	 * Returns the result of interpreting the object as an instance of '<em>Xml One To One</em>'.
-	 * <!-- begin-user-doc -->
-	 * This implementation returns null;
-	 * returning a non-null result will terminate the switch.
-	 * <!-- end-user-doc -->
-	 * @param object the target of the switch.
-	 * @return the result of interpreting the object as an instance of '<em>Xml One To One</em>'.
-	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
-	 * @generated
-	 */
-	public T caseXmlOneToOne(XmlOneToOne object)
-	{
-		return null;
-	}
-
-	/**
-	 * Returns the result of interpreting the object as an instance of '<em>Xml One To One Impl</em>'.
-	 * <!-- begin-user-doc -->
-	 * This implementation returns null;
-	 * returning a non-null result will terminate the switch.
-	 * <!-- end-user-doc -->
-	 * @param object the target of the switch.
-	 * @return the result of interpreting the object as an instance of '<em>Xml One To One Impl</em>'.
-	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
-	 * @generated
-	 */
-	public T caseXmlOneToOneImpl(XmlOneToOneImpl object)
-	{
-		return null;
-	}
-
-	/**
-	 * Returns the result of interpreting the object as an instance of '<em>Xml One To Many</em>'.
-	 * <!-- begin-user-doc -->
-	 * This implementation returns null;
-	 * returning a non-null result will terminate the switch.
-	 * <!-- end-user-doc -->
-	 * @param object the target of the switch.
-	 * @return the result of interpreting the object as an instance of '<em>Xml One To Many</em>'.
-	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
-	 * @generated
-	 */
-	public T caseXmlOneToMany(XmlOneToMany object)
-	{
-		return null;
-	}
-
-	/**
-	 * Returns the result of interpreting the object as an instance of '<em>Xml One To Many Impl</em>'.
-	 * <!-- begin-user-doc -->
-	 * This implementation returns null;
-	 * returning a non-null result will terminate the switch.
-	 * <!-- end-user-doc -->
-	 * @param object the target of the switch.
-	 * @return the result of interpreting the object as an instance of '<em>Xml One To Many Impl</em>'.
-	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
-	 * @generated
-	 */
-	public T caseXmlOneToManyImpl(XmlOneToManyImpl object)
-	{
-		return null;
-	}
-
-	/**
-	 * Returns the result of interpreting the object as an instance of '<em>Xml Many To One</em>'.
-	 * <!-- begin-user-doc -->
-	 * This implementation returns null;
-	 * returning a non-null result will terminate the switch.
-	 * <!-- end-user-doc -->
-	 * @param object the target of the switch.
-	 * @return the result of interpreting the object as an instance of '<em>Xml Many To One</em>'.
-	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
-	 * @generated
-	 */
-	public T caseXmlManyToOne(XmlManyToOne object)
-	{
-		return null;
-	}
-
-	/**
-	 * Returns the result of interpreting the object as an instance of '<em>Xml Many To One Impl</em>'.
-	 * <!-- begin-user-doc -->
-	 * This implementation returns null;
-	 * returning a non-null result will terminate the switch.
-	 * <!-- end-user-doc -->
-	 * @param object the target of the switch.
-	 * @return the result of interpreting the object as an instance of '<em>Xml Many To One Impl</em>'.
-	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
-	 * @generated
-	 */
-	public T caseXmlManyToOneImpl(XmlManyToOneImpl object)
-	{
-		return null;
-	}
-
-	/**
-	 * Returns the result of interpreting the object as an instance of '<em>Xml Many To Many</em>'.
-	 * <!-- begin-user-doc -->
-	 * This implementation returns null;
-	 * returning a non-null result will terminate the switch.
-	 * <!-- end-user-doc -->
-	 * @param object the target of the switch.
-	 * @return the result of interpreting the object as an instance of '<em>Xml Many To Many</em>'.
-	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
-	 * @generated
-	 */
-	public T caseXmlManyToMany(XmlManyToMany object)
-	{
-		return null;
-	}
-
-	/**
-	 * Returns the result of interpreting the object as an instance of '<em>Xml Many To Many Impl</em>'.
-	 * <!-- begin-user-doc -->
-	 * This implementation returns null;
-	 * returning a non-null result will terminate the switch.
-	 * <!-- end-user-doc -->
-	 * @param object the target of the switch.
-	 * @return the result of interpreting the object as an instance of '<em>Xml Many To Many Impl</em>'.
-	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
-	 * @generated
-	 */
-	public T caseXmlManyToManyImpl(XmlManyToManyImpl object)
-	{
-		return null;
-	}
-
-	/**
-	 * Returns the result of interpreting the object as an instance of '<em>Xml Basic Collection</em>'.
-	 * <!-- begin-user-doc -->
-	 * This implementation returns null;
-	 * returning a non-null result will terminate the switch.
-	 * <!-- end-user-doc -->
-	 * @param object the target of the switch.
-	 * @return the result of interpreting the object as an instance of '<em>Xml Basic Collection</em>'.
-	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
-	 * @generated
-	 */
-	public T caseXmlBasicCollection(XmlBasicCollection object)
-	{
-		return null;
-	}
-
-	/**
-	 * Returns the result of interpreting the object as an instance of '<em>Xml Basic Collection Impl</em>'.
-	 * <!-- begin-user-doc -->
-	 * This implementation returns null;
-	 * returning a non-null result will terminate the switch.
-	 * <!-- end-user-doc -->
-	 * @param object the target of the switch.
-	 * @return the result of interpreting the object as an instance of '<em>Xml Basic Collection Impl</em>'.
-	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
-	 * @generated
-	 */
-	public T caseXmlBasicCollectionImpl(XmlBasicCollectionImpl object)
-	{
-		return null;
-	}
-
-	/**
-	 * Returns the result of interpreting the object as an instance of '<em>Xml Basic Map</em>'.
-	 * <!-- begin-user-doc -->
-	 * This implementation returns null;
-	 * returning a non-null result will terminate the switch.
-	 * <!-- end-user-doc -->
-	 * @param object the target of the switch.
-	 * @return the result of interpreting the object as an instance of '<em>Xml Basic Map</em>'.
-	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
-	 * @generated
-	 */
-	public T caseXmlBasicMap(XmlBasicMap object)
-	{
-		return null;
-	}
-
-	/**
-	 * Returns the result of interpreting the object as an instance of '<em>Xml Basic Map Impl</em>'.
-	 * <!-- begin-user-doc -->
-	 * This implementation returns null;
-	 * returning a non-null result will terminate the switch.
-	 * <!-- end-user-doc -->
-	 * @param object the target of the switch.
-	 * @return the result of interpreting the object as an instance of '<em>Xml Basic Map Impl</em>'.
-	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
-	 * @generated
-	 */
-	public T caseXmlBasicMapImpl(XmlBasicMapImpl object)
-	{
-		return null;
-	}
-
-	/**
-	 * Returns the result of interpreting the object as an instance of '<em>Xml Transformation</em>'.
-	 * <!-- begin-user-doc -->
-	 * This implementation returns null;
-	 * returning a non-null result will terminate the switch.
-	 * <!-- end-user-doc -->
-	 * @param object the target of the switch.
-	 * @return the result of interpreting the object as an instance of '<em>Xml Transformation</em>'.
-	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
-	 * @generated
-	 */
-	public T caseXmlTransformation(XmlTransformation object)
-	{
-		return null;
-	}
-
-	/**
-	 * Returns the result of interpreting the object as an instance of '<em>Xml Transformation Impl</em>'.
-	 * <!-- begin-user-doc -->
-	 * This implementation returns null;
-	 * returning a non-null result will terminate the switch.
-	 * <!-- end-user-doc -->
-	 * @param object the target of the switch.
-	 * @return the result of interpreting the object as an instance of '<em>Xml Transformation Impl</em>'.
-	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
-	 * @generated
-	 */
-	public T caseXmlTransformationImpl(XmlTransformationImpl object)
-	{
-		return null;
-	}
-
-	/**
-	 * Returns the result of interpreting the object as an instance of '<em>Xml Variable One To One</em>'.
-	 * <!-- begin-user-doc -->
-	 * This implementation returns null;
-	 * returning a non-null result will terminate the switch.
-	 * <!-- end-user-doc -->
-	 * @param object the target of the switch.
-	 * @return the result of interpreting the object as an instance of '<em>Xml Variable One To One</em>'.
-	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
-	 * @generated
-	 */
-	public T caseXmlVariableOneToOne(XmlVariableOneToOne object)
-	{
-		return null;
-	}
-
-	/**
-	 * Returns the result of interpreting the object as an instance of '<em>Xml Variable One To One Impl</em>'.
-	 * <!-- begin-user-doc -->
-	 * This implementation returns null;
-	 * returning a non-null result will terminate the switch.
-	 * <!-- end-user-doc -->
-	 * @param object the target of the switch.
-	 * @return the result of interpreting the object as an instance of '<em>Xml Variable One To One Impl</em>'.
-	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
-	 * @generated
-	 */
-	public T caseXmlVariableOneToOneImpl(XmlVariableOneToOneImpl object)
-	{
-		return null;
-	}
-
-	/**
-	 * Returns the result of interpreting the object as an instance of '<em>Xml Transient</em>'.
-	 * <!-- begin-user-doc -->
-	 * This implementation returns null;
-	 * returning a non-null result will terminate the switch.
-	 * <!-- end-user-doc -->
-	 * @param object the target of the switch.
-	 * @return the result of interpreting the object as an instance of '<em>Xml Transient</em>'.
-	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
-	 * @generated
-	 */
-	public T caseXmlTransient(XmlTransient object)
-	{
-		return null;
-	}
-
-	/**
-	 * Returns the result of interpreting the object as an instance of '<em>Xml Transient Impl</em>'.
-	 * <!-- begin-user-doc -->
-	 * This implementation returns null;
-	 * returning a non-null result will terminate the switch.
-	 * <!-- end-user-doc -->
-	 * @param object the target of the switch.
-	 * @return the result of interpreting the object as an instance of '<em>Xml Transient Impl</em>'.
-	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
-	 * @generated
-	 */
-	public T caseXmlTransientImpl(XmlTransientImpl object)
-	{
-		return null;
-	}
-
-	/**
-	 * Returns the result of interpreting the object as an instance of '<em>Xml Entity Mappings</em>'.
-	 * <!-- begin-user-doc -->
-	 * This implementation returns null;
-	 * returning a non-null result will terminate the switch.
-	 * <!-- end-user-doc -->
-	 * @param object the target of the switch.
-	 * @return the result of interpreting the object as an instance of '<em>Xml Entity Mappings</em>'.
-	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
-	 * @generated
-	 */
-	public T caseOrm_XmlEntityMappings(org.eclipse.jpt.core.resource.orm.XmlEntityMappings object)
-	{
-		return null;
-	}
-
-	/**
-	 * Returns the result of interpreting the object as an instance of '<em>Xml Converters Holder</em>'.
-	 * <!-- begin-user-doc -->
-	 * This implementation returns null;
-	 * returning a non-null result will terminate the switch.
-	 * <!-- end-user-doc -->
-	 * @param object the target of the switch.
-	 * @return the result of interpreting the object as an instance of '<em>Xml Converters Holder</em>'.
-	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
-	 * @generated
-	 */
-	public T caseXmlConvertersHolder(XmlConvertersHolder object)
-	{
-		return null;
-	}
-
-	/**
-	 * Returns the result of interpreting the object as an instance of '<em>Xml Entity Mappings</em>'.
-	 * <!-- begin-user-doc -->
-	 * This implementation returns null;
-	 * returning a non-null result will terminate the switch.
-	 * <!-- end-user-doc -->
-	 * @param object the target of the switch.
-	 * @return the result of interpreting the object as an instance of '<em>Xml Entity Mappings</em>'.
-	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
-	 * @generated
-	 */
-	public T caseEclipseLinkOrm_XmlEntityMappings(org.eclipse.jpt.eclipselink.core.resource.orm.XmlEntityMappings object)
-	{
-		return null;
-	}
-
-	/**
-	 * Returns the result of interpreting the object as an instance of '<em>Xml Attribute Mapping</em>'.
-	 * <!-- begin-user-doc -->
-	 * This implementation returns null;
-	 * returning a non-null result will terminate the switch.
-	 * <!-- end-user-doc -->
-	 * @param object the target of the switch.
-	 * @return the result of interpreting the object as an instance of '<em>Xml Attribute Mapping</em>'.
-	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
-	 * @generated
-	 */
-	public T caseOrm_XmlAttributeMapping(org.eclipse.jpt.core.resource.orm.XmlAttributeMapping object)
-	{
-		return null;
-	}
-
-	/**
-	 * Returns the result of interpreting the object as an instance of '<em>Column Mapping</em>'.
-	 * <!-- begin-user-doc -->
-	 * This implementation returns null;
-	 * returning a non-null result will terminate the switch.
-	 * <!-- end-user-doc -->
-	 * @param object the target of the switch.
-	 * @return the result of interpreting the object as an instance of '<em>Column Mapping</em>'.
-	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
-	 * @generated
-	 */
-	public T caseColumnMapping(ColumnMapping object)
-	{
-		return null;
-	}
-
-	/**
-	 * Returns the result of interpreting the object as an instance of '<em>Xml Convertible Mapping</em>'.
-	 * <!-- begin-user-doc -->
-	 * This implementation returns null;
-	 * returning a non-null result will terminate the switch.
-	 * <!-- end-user-doc -->
-	 * @param object the target of the switch.
-	 * @return the result of interpreting the object as an instance of '<em>Xml Convertible Mapping</em>'.
-	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
-	 * @generated
-	 */
-	public T caseXmlConvertibleMapping(XmlConvertibleMapping object)
-	{
-		return null;
-	}
-
-	/**
-	 * Returns the result of interpreting the object as an instance of '<em>Xml Id</em>'.
-	 * <!-- begin-user-doc -->
-	 * This implementation returns null;
-	 * returning a non-null result will terminate the switch.
-	 * <!-- end-user-doc -->
-	 * @param object the target of the switch.
-	 * @return the result of interpreting the object as an instance of '<em>Xml Id</em>'.
-	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
-	 * @generated
-	 */
-	public T caseOrm_XmlId(org.eclipse.jpt.core.resource.orm.XmlId object)
-	{
-		return null;
-	}
-
-	/**
-	 * Returns the result of interpreting the object as an instance of '<em>Xml Mutable</em>'.
-	 * <!-- begin-user-doc -->
-	 * This implementation returns null;
-	 * returning a non-null result will terminate the switch.
-	 * <!-- end-user-doc -->
-	 * @param object the target of the switch.
-	 * @return the result of interpreting the object as an instance of '<em>Xml Mutable</em>'.
-	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
-	 * @generated
-	 */
-	public T caseXmlMutable(XmlMutable object)
-	{
-		return null;
-	}
-
-	/**
-	 * Returns the result of interpreting the object as an instance of '<em>Xml Converter Holder</em>'.
-	 * <!-- begin-user-doc -->
-	 * This implementation returns null;
-	 * returning a non-null result will terminate the switch.
-	 * <!-- end-user-doc -->
-	 * @param object the target of the switch.
-	 * @return the result of interpreting the object as an instance of '<em>Xml Converter Holder</em>'.
-	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
-	 * @generated
-	 */
-	public T caseXmlConverterHolder(XmlConverterHolder object)
-	{
-		return null;
-	}
-
-	/**
-	 * Returns the result of interpreting the object as an instance of '<em>Xml Convertible Mapping</em>'.
-	 * <!-- begin-user-doc -->
-	 * This implementation returns null;
-	 * returning a non-null result will terminate the switch.
-	 * <!-- end-user-doc -->
-	 * @param object the target of the switch.
-	 * @return the result of interpreting the object as an instance of '<em>Xml Convertible Mapping</em>'.
-	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
-	 * @generated
-	 */
-	public T caseEclipseLinkOrm_XmlConvertibleMapping(org.eclipse.jpt.eclipselink.core.resource.orm.XmlConvertibleMapping object)
-	{
-		return null;
-	}
-
-	/**
-	 * Returns the result of interpreting the object as an instance of '<em>Xml Access Methods Holder</em>'.
-	 * <!-- begin-user-doc -->
-	 * This implementation returns null;
-	 * returning a non-null result will terminate the switch.
-	 * <!-- end-user-doc -->
-	 * @param object the target of the switch.
-	 * @return the result of interpreting the object as an instance of '<em>Xml Access Methods Holder</em>'.
-	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
-	 * @generated
-	 */
-	public T caseXmlAccessMethodsHolder(XmlAccessMethodsHolder object)
-	{
-		return null;
-	}
-
-	/**
-	 * Returns the result of interpreting the object as an instance of '<em>Xml Id</em>'.
-	 * <!-- begin-user-doc -->
-	 * This implementation returns null;
-	 * returning a non-null result will terminate the switch.
-	 * <!-- end-user-doc -->
-	 * @param object the target of the switch.
-	 * @return the result of interpreting the object as an instance of '<em>Xml Id</em>'.
-	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
-	 * @generated
-	 */
-	public T caseEclipseLinkOrm_XmlId(org.eclipse.jpt.eclipselink.core.resource.orm.XmlId object)
-	{
-		return null;
-	}
-
-	/**
-	 * Returns the result of interpreting the object as an instance of '<em>Abstract Xml Attribute Mapping</em>'.
-	 * <!-- begin-user-doc -->
-	 * This implementation returns null;
-	 * returning a non-null result will terminate the switch.
-	 * <!-- end-user-doc -->
-	 * @param object the target of the switch.
-	 * @return the result of interpreting the object as an instance of '<em>Abstract Xml Attribute Mapping</em>'.
-	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
-	 * @generated
-	 */
-	public T caseAbstractXmlAttributeMapping(AbstractXmlAttributeMapping object)
-	{
-		return null;
-	}
-
-	/**
-	 * Returns the result of interpreting the object as an instance of '<em>Xml Id Impl</em>'.
-	 * <!-- begin-user-doc -->
-	 * This implementation returns null;
-	 * returning a non-null result will terminate the switch.
-	 * <!-- end-user-doc -->
-	 * @param object the target of the switch.
-	 * @return the result of interpreting the object as an instance of '<em>Xml Id Impl</em>'.
-	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
-	 * @generated
-	 */
-	public T caseOrm_XmlIdImpl(org.eclipse.jpt.core.resource.orm.XmlIdImpl object)
-	{
-		return null;
-	}
-
-	/**
-	 * Returns the result of interpreting the object as an instance of '<em>Xml Id Impl</em>'.
-	 * <!-- begin-user-doc -->
-	 * This implementation returns null;
-	 * returning a non-null result will terminate the switch.
-	 * <!-- end-user-doc -->
-	 * @param object the target of the switch.
-	 * @return the result of interpreting the object as an instance of '<em>Xml Id Impl</em>'.
-	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
-	 * @generated
-	 */
-	public T caseEclipseLinkOrm_XmlIdImpl(org.eclipse.jpt.eclipselink.core.resource.orm.XmlIdImpl object)
-	{
-		return null;
-	}
-
-	/**
-	 * Returns the result of interpreting the object as an instance of '<em>Base Xml Embedded</em>'.
-	 * <!-- begin-user-doc -->
-	 * This implementation returns null;
-	 * returning a non-null result will terminate the switch.
-	 * <!-- end-user-doc -->
-	 * @param object the target of the switch.
-	 * @return the result of interpreting the object as an instance of '<em>Base Xml Embedded</em>'.
-	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
-	 * @generated
-	 */
-	public T caseBaseXmlEmbedded(BaseXmlEmbedded object)
-	{
-		return null;
-	}
-
-	/**
-	 * Returns the result of interpreting the object as an instance of '<em>Xml Embedded Id</em>'.
-	 * <!-- begin-user-doc -->
-	 * This implementation returns null;
-	 * returning a non-null result will terminate the switch.
-	 * <!-- end-user-doc -->
-	 * @param object the target of the switch.
-	 * @return the result of interpreting the object as an instance of '<em>Xml Embedded Id</em>'.
-	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
-	 * @generated
-	 */
-	public T caseOrm_XmlEmbeddedId(org.eclipse.jpt.core.resource.orm.XmlEmbeddedId object)
-	{
-		return null;
-	}
-
-	/**
-	 * Returns the result of interpreting the object as an instance of '<em>Xml Embedded Id</em>'.
-	 * <!-- begin-user-doc -->
-	 * This implementation returns null;
-	 * returning a non-null result will terminate the switch.
-	 * <!-- end-user-doc -->
-	 * @param object the target of the switch.
-	 * @return the result of interpreting the object as an instance of '<em>Xml Embedded Id</em>'.
-	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
-	 * @generated
-	 */
-	public T caseEclipseLinkOrm_XmlEmbeddedId(org.eclipse.jpt.eclipselink.core.resource.orm.XmlEmbeddedId object)
-	{
-		return null;
-	}
-
-	/**
-	 * Returns the result of interpreting the object as an instance of '<em>Xml Embedded Id Impl</em>'.
-	 * <!-- begin-user-doc -->
-	 * This implementation returns null;
-	 * returning a non-null result will terminate the switch.
-	 * <!-- end-user-doc -->
-	 * @param object the target of the switch.
-	 * @return the result of interpreting the object as an instance of '<em>Xml Embedded Id Impl</em>'.
-	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
-	 * @generated
-	 */
-	public T caseOrm_XmlEmbeddedIdImpl(org.eclipse.jpt.core.resource.orm.XmlEmbeddedIdImpl object)
-	{
-		return null;
-	}
-
-	/**
-	 * Returns the result of interpreting the object as an instance of '<em>Xml Embedded Id Impl</em>'.
-	 * <!-- begin-user-doc -->
-	 * This implementation returns null;
-	 * returning a non-null result will terminate the switch.
-	 * <!-- end-user-doc -->
-	 * @param object the target of the switch.
-	 * @return the result of interpreting the object as an instance of '<em>Xml Embedded Id Impl</em>'.
-	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
-	 * @generated
-	 */
-	public T caseEclipseLinkOrm_XmlEmbeddedIdImpl(org.eclipse.jpt.eclipselink.core.resource.orm.XmlEmbeddedIdImpl object)
-	{
-		return null;
-	}
-
-	/**
-	 * Returns the result of interpreting the object as an instance of '<em>Xml Embedded</em>'.
-	 * <!-- begin-user-doc -->
-	 * This implementation returns null;
-	 * returning a non-null result will terminate the switch.
-	 * <!-- end-user-doc -->
-	 * @param object the target of the switch.
-	 * @return the result of interpreting the object as an instance of '<em>Xml Embedded</em>'.
-	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
-	 * @generated
-	 */
-	public T caseOrm_XmlEmbedded(org.eclipse.jpt.core.resource.orm.XmlEmbedded object)
-	{
-		return null;
-	}
-
-	/**
-	 * Returns the result of interpreting the object as an instance of '<em>Xml Embedded</em>'.
-	 * <!-- begin-user-doc -->
-	 * This implementation returns null;
-	 * returning a non-null result will terminate the switch.
-	 * <!-- end-user-doc -->
-	 * @param object the target of the switch.
-	 * @return the result of interpreting the object as an instance of '<em>Xml Embedded</em>'.
-	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
-	 * @generated
-	 */
-	public T caseEclipseLinkOrm_XmlEmbedded(org.eclipse.jpt.eclipselink.core.resource.orm.XmlEmbedded object)
-	{
-		return null;
-	}
-
-	/**
-	 * Returns the result of interpreting the object as an instance of '<em>Xml Embedded Impl</em>'.
-	 * <!-- begin-user-doc -->
-	 * This implementation returns null;
-	 * returning a non-null result will terminate the switch.
-	 * <!-- end-user-doc -->
-	 * @param object the target of the switch.
-	 * @return the result of interpreting the object as an instance of '<em>Xml Embedded Impl</em>'.
-	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
-	 * @generated
-	 */
-	public T caseOrm_XmlEmbeddedImpl(org.eclipse.jpt.core.resource.orm.XmlEmbeddedImpl object)
-	{
-		return null;
-	}
-
-	/**
-	 * Returns the result of interpreting the object as an instance of '<em>Xml Embedded Impl</em>'.
-	 * <!-- begin-user-doc -->
-	 * This implementation returns null;
-	 * returning a non-null result will terminate the switch.
-	 * <!-- end-user-doc -->
-	 * @param object the target of the switch.
-	 * @return the result of interpreting the object as an instance of '<em>Xml Embedded Impl</em>'.
-	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
-	 * @generated
-	 */
-	public T caseEclipseLinkOrm_XmlEmbeddedImpl(org.eclipse.jpt.eclipselink.core.resource.orm.XmlEmbeddedImpl object)
-	{
-		return null;
-	}
-
-	/**
-	 * Returns the result of interpreting the object as an instance of '<em>Xml Basic</em>'.
-	 * <!-- begin-user-doc -->
-	 * This implementation returns null;
-	 * returning a non-null result will terminate the switch.
-	 * <!-- end-user-doc -->
-	 * @param object the target of the switch.
-	 * @return the result of interpreting the object as an instance of '<em>Xml Basic</em>'.
-	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
-	 * @generated
-	 */
-	public T caseOrm_XmlBasic(org.eclipse.jpt.core.resource.orm.XmlBasic object)
-	{
-		return null;
-	}
-
-	/**
-	 * Returns the result of interpreting the object as an instance of '<em>Xml Basic</em>'.
-	 * <!-- begin-user-doc -->
-	 * This implementation returns null;
-	 * returning a non-null result will terminate the switch.
-	 * <!-- end-user-doc -->
-	 * @param object the target of the switch.
-	 * @return the result of interpreting the object as an instance of '<em>Xml Basic</em>'.
-	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
-	 * @generated
-	 */
-	public T caseEclipseLinkOrm_XmlBasic(org.eclipse.jpt.eclipselink.core.resource.orm.XmlBasic object)
-	{
-		return null;
-	}
-
-	/**
-	 * Returns the result of interpreting the object as an instance of '<em>Xml Basic Impl</em>'.
-	 * <!-- begin-user-doc -->
-	 * This implementation returns null;
-	 * returning a non-null result will terminate the switch.
-	 * <!-- end-user-doc -->
-	 * @param object the target of the switch.
-	 * @return the result of interpreting the object as an instance of '<em>Xml Basic Impl</em>'.
-	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
-	 * @generated
-	 */
-	public T caseOrm_XmlBasicImpl(org.eclipse.jpt.core.resource.orm.XmlBasicImpl object)
-	{
-		return null;
-	}
-
-	/**
-	 * Returns the result of interpreting the object as an instance of '<em>Xml Basic Impl</em>'.
-	 * <!-- begin-user-doc -->
-	 * This implementation returns null;
-	 * returning a non-null result will terminate the switch.
-	 * <!-- end-user-doc -->
-	 * @param object the target of the switch.
-	 * @return the result of interpreting the object as an instance of '<em>Xml Basic Impl</em>'.
-	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
-	 * @generated
-	 */
-	public T caseEclipseLinkOrm_XmlBasicImpl(org.eclipse.jpt.eclipselink.core.resource.orm.XmlBasicImpl object)
-	{
-		return null;
-	}
-
-	/**
-	 * Returns the result of interpreting the object as an instance of '<em>Xml Version</em>'.
-	 * <!-- begin-user-doc -->
-	 * This implementation returns null;
-	 * returning a non-null result will terminate the switch.
-	 * <!-- end-user-doc -->
-	 * @param object the target of the switch.
-	 * @return the result of interpreting the object as an instance of '<em>Xml Version</em>'.
-	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
-	 * @generated
-	 */
-	public T caseOrm_XmlVersion(org.eclipse.jpt.core.resource.orm.XmlVersion object)
-	{
-		return null;
-	}
-
-	/**
-	 * Returns the result of interpreting the object as an instance of '<em>Xml Version</em>'.
-	 * <!-- begin-user-doc -->
-	 * This implementation returns null;
-	 * returning a non-null result will terminate the switch.
-	 * <!-- end-user-doc -->
-	 * @param object the target of the switch.
-	 * @return the result of interpreting the object as an instance of '<em>Xml Version</em>'.
-	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
-	 * @generated
-	 */
-	public T caseEclipseLinkOrm_XmlVersion(org.eclipse.jpt.eclipselink.core.resource.orm.XmlVersion object)
-	{
-		return null;
-	}
-
-	/**
-	 * Returns the result of interpreting the object as an instance of '<em>Xml Version Impl</em>'.
-	 * <!-- begin-user-doc -->
-	 * This implementation returns null;
-	 * returning a non-null result will terminate the switch.
-	 * <!-- end-user-doc -->
-	 * @param object the target of the switch.
-	 * @return the result of interpreting the object as an instance of '<em>Xml Version Impl</em>'.
-	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
-	 * @generated
-	 */
-	public T caseOrm_XmlVersionImpl(org.eclipse.jpt.core.resource.orm.XmlVersionImpl object)
-	{
-		return null;
-	}
-
-	/**
-	 * Returns the result of interpreting the object as an instance of '<em>Xml Version Impl</em>'.
-	 * <!-- begin-user-doc -->
-	 * This implementation returns null;
-	 * returning a non-null result will terminate the switch.
-	 * <!-- end-user-doc -->
-	 * @param object the target of the switch.
-	 * @return the result of interpreting the object as an instance of '<em>Xml Version Impl</em>'.
-	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
-	 * @generated
-	 */
-	public T caseEclipseLinkOrm_XmlVersionImpl(org.eclipse.jpt.eclipselink.core.resource.orm.XmlVersionImpl object)
-	{
-		return null;
-	}
-
-	/**
-	 * Returns the result of interpreting the object as an instance of '<em>Xml Relationship Mapping</em>'.
-	 * <!-- begin-user-doc -->
-	 * This implementation returns null;
-	 * returning a non-null result will terminate the switch.
-	 * <!-- end-user-doc -->
-	 * @param object the target of the switch.
-	 * @return the result of interpreting the object as an instance of '<em>Xml Relationship Mapping</em>'.
-	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
-	 * @generated
-	 */
-	public T caseXmlRelationshipMapping(XmlRelationshipMapping object)
-	{
-		return null;
-	}
-
-	/**
-	 * Returns the result of interpreting the object as an instance of '<em>Xml Join Table Mapping</em>'.
-	 * <!-- begin-user-doc -->
-	 * This implementation returns null;
-	 * returning a non-null result will terminate the switch.
-	 * <!-- end-user-doc -->
-	 * @param object the target of the switch.
-	 * @return the result of interpreting the object as an instance of '<em>Xml Join Table Mapping</em>'.
-	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
-	 * @generated
-	 */
-	public T caseXmlJoinTableMapping(XmlJoinTableMapping object)
-	{
-		return null;
-	}
-
-	/**
-	 * Returns the result of interpreting the object as an instance of '<em>Xml Join Columns Mapping</em>'.
-	 * <!-- begin-user-doc -->
-	 * This implementation returns null;
-	 * returning a non-null result will terminate the switch.
-	 * <!-- end-user-doc -->
-	 * @param object the target of the switch.
-	 * @return the result of interpreting the object as an instance of '<em>Xml Join Columns Mapping</em>'.
-	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
-	 * @generated
-	 */
-	public T caseXmlJoinColumnsMapping(XmlJoinColumnsMapping object)
-	{
-		return null;
-	}
-
-	/**
-	 * Returns the result of interpreting the object as an instance of '<em>Xml Single Relationship Mapping</em>'.
-	 * <!-- begin-user-doc -->
-	 * This implementation returns null;
-	 * returning a non-null result will terminate the switch.
-	 * <!-- end-user-doc -->
-	 * @param object the target of the switch.
-	 * @return the result of interpreting the object as an instance of '<em>Xml Single Relationship Mapping</em>'.
-	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
-	 * @generated
-	 */
-	public T caseXmlSingleRelationshipMapping(XmlSingleRelationshipMapping object)
-	{
-		return null;
-	}
-
-	/**
-	 * Returns the result of interpreting the object as an instance of '<em>Xml Mapped By Mapping</em>'.
-	 * <!-- begin-user-doc -->
-	 * This implementation returns null;
-	 * returning a non-null result will terminate the switch.
-	 * <!-- end-user-doc -->
-	 * @param object the target of the switch.
-	 * @return the result of interpreting the object as an instance of '<em>Xml Mapped By Mapping</em>'.
-	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
-	 * @generated
-	 */
-	public T caseXmlMappedByMapping(XmlMappedByMapping object)
-	{
-		return null;
-	}
-
-	/**
-	 * Returns the result of interpreting the object as an instance of '<em>Xml One To One</em>'.
-	 * <!-- begin-user-doc -->
-	 * This implementation returns null;
-	 * returning a non-null result will terminate the switch.
-	 * <!-- end-user-doc -->
-	 * @param object the target of the switch.
-	 * @return the result of interpreting the object as an instance of '<em>Xml One To One</em>'.
-	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
-	 * @generated
-	 */
-	public T caseOrm_XmlOneToOne(org.eclipse.jpt.core.resource.orm.XmlOneToOne object)
-	{
-		return null;
-	}
-
-	/**
-	 * Returns the result of interpreting the object as an instance of '<em>Xml Private Owned</em>'.
-	 * <!-- begin-user-doc -->
-	 * This implementation returns null;
-	 * returning a non-null result will terminate the switch.
-	 * <!-- end-user-doc -->
-	 * @param object the target of the switch.
-	 * @return the result of interpreting the object as an instance of '<em>Xml Private Owned</em>'.
-	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
-	 * @generated
-	 */
-	public T caseXmlPrivateOwned(XmlPrivateOwned object)
-	{
-		return null;
-	}
-
-	/**
-	 * Returns the result of interpreting the object as an instance of '<em>Xml Join Fetch</em>'.
-	 * <!-- begin-user-doc -->
-	 * This implementation returns null;
-	 * returning a non-null result will terminate the switch.
-	 * <!-- end-user-doc -->
-	 * @param object the target of the switch.
-	 * @return the result of interpreting the object as an instance of '<em>Xml Join Fetch</em>'.
-	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
-	 * @generated
-	 */
-	public T caseXmlJoinFetch(XmlJoinFetch object)
-	{
-		return null;
-	}
-
-	/**
-	 * Returns the result of interpreting the object as an instance of '<em>Xml One To One</em>'.
-	 * <!-- begin-user-doc -->
-	 * This implementation returns null;
-	 * returning a non-null result will terminate the switch.
-	 * <!-- end-user-doc -->
-	 * @param object the target of the switch.
-	 * @return the result of interpreting the object as an instance of '<em>Xml One To One</em>'.
-	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
-	 * @generated
-	 */
-	public T caseEclipseLinkOrm_XmlOneToOne(org.eclipse.jpt.eclipselink.core.resource.orm.XmlOneToOne object)
-	{
-		return null;
-	}
-
-	/**
-	 * Returns the result of interpreting the object as an instance of '<em>Xml One To One Impl</em>'.
-	 * <!-- begin-user-doc -->
-	 * This implementation returns null;
-	 * returning a non-null result will terminate the switch.
-	 * <!-- end-user-doc -->
-	 * @param object the target of the switch.
-	 * @return the result of interpreting the object as an instance of '<em>Xml One To One Impl</em>'.
-	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
-	 * @generated
-	 */
-	public T caseOrm_XmlOneToOneImpl(org.eclipse.jpt.core.resource.orm.XmlOneToOneImpl object)
-	{
-		return null;
-	}
-
-	/**
-	 * Returns the result of interpreting the object as an instance of '<em>Xml One To One Impl</em>'.
-	 * <!-- begin-user-doc -->
-	 * This implementation returns null;
-	 * returning a non-null result will terminate the switch.
-	 * <!-- end-user-doc -->
-	 * @param object the target of the switch.
-	 * @return the result of interpreting the object as an instance of '<em>Xml One To One Impl</em>'.
-	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
-	 * @generated
-	 */
-	public T caseEclipseLinkOrm_XmlOneToOneImpl(org.eclipse.jpt.eclipselink.core.resource.orm.XmlOneToOneImpl object)
-	{
-		return null;
-	}
-
-	/**
-	 * Returns the result of interpreting the object as an instance of '<em>Xml Multi Relationship Mapping</em>'.
-	 * <!-- begin-user-doc -->
-	 * This implementation returns null;
-	 * returning a non-null result will terminate the switch.
-	 * <!-- end-user-doc -->
-	 * @param object the target of the switch.
-	 * @return the result of interpreting the object as an instance of '<em>Xml Multi Relationship Mapping</em>'.
-	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
-	 * @generated
-	 */
-	public T caseXmlMultiRelationshipMapping(XmlMultiRelationshipMapping object)
-	{
-		return null;
-	}
-
-	/**
-	 * Returns the result of interpreting the object as an instance of '<em>Xml One To Many</em>'.
-	 * <!-- begin-user-doc -->
-	 * This implementation returns null;
-	 * returning a non-null result will terminate the switch.
-	 * <!-- end-user-doc -->
-	 * @param object the target of the switch.
-	 * @return the result of interpreting the object as an instance of '<em>Xml One To Many</em>'.
-	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
-	 * @generated
-	 */
-	public T caseOrm_XmlOneToMany(org.eclipse.jpt.core.resource.orm.XmlOneToMany object)
-	{
-		return null;
-	}
-
-	/**
-	 * Returns the result of interpreting the object as an instance of '<em>Xml One To Many</em>'.
-	 * <!-- begin-user-doc -->
-	 * This implementation returns null;
-	 * returning a non-null result will terminate the switch.
-	 * <!-- end-user-doc -->
-	 * @param object the target of the switch.
-	 * @return the result of interpreting the object as an instance of '<em>Xml One To Many</em>'.
-	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
-	 * @generated
-	 */
-	public T caseEclipseLinkOrm_XmlOneToMany(org.eclipse.jpt.eclipselink.core.resource.orm.XmlOneToMany object)
-	{
-		return null;
-	}
-
-	/**
-	 * Returns the result of interpreting the object as an instance of '<em>Xml One To Many Impl</em>'.
-	 * <!-- begin-user-doc -->
-	 * This implementation returns null;
-	 * returning a non-null result will terminate the switch.
-	 * <!-- end-user-doc -->
-	 * @param object the target of the switch.
-	 * @return the result of interpreting the object as an instance of '<em>Xml One To Many Impl</em>'.
-	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
-	 * @generated
-	 */
-	public T caseOrm_XmlOneToManyImpl(org.eclipse.jpt.core.resource.orm.XmlOneToManyImpl object)
-	{
-		return null;
-	}
-
-	/**
-	 * Returns the result of interpreting the object as an instance of '<em>Xml One To Many Impl</em>'.
-	 * <!-- begin-user-doc -->
-	 * This implementation returns null;
-	 * returning a non-null result will terminate the switch.
-	 * <!-- end-user-doc -->
-	 * @param object the target of the switch.
-	 * @return the result of interpreting the object as an instance of '<em>Xml One To Many Impl</em>'.
-	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
-	 * @generated
-	 */
-	public T caseEclipseLinkOrm_XmlOneToManyImpl(org.eclipse.jpt.eclipselink.core.resource.orm.XmlOneToManyImpl object)
-	{
-		return null;
-	}
-
-	/**
-	 * Returns the result of interpreting the object as an instance of '<em>Xml Many To One</em>'.
-	 * <!-- begin-user-doc -->
-	 * This implementation returns null;
-	 * returning a non-null result will terminate the switch.
-	 * <!-- end-user-doc -->
-	 * @param object the target of the switch.
-	 * @return the result of interpreting the object as an instance of '<em>Xml Many To One</em>'.
-	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
-	 * @generated
-	 */
-	public T caseOrm_XmlManyToOne(org.eclipse.jpt.core.resource.orm.XmlManyToOne object)
-	{
-		return null;
-	}
-
-	/**
-	 * Returns the result of interpreting the object as an instance of '<em>Xml Many To One</em>'.
-	 * <!-- begin-user-doc -->
-	 * This implementation returns null;
-	 * returning a non-null result will terminate the switch.
-	 * <!-- end-user-doc -->
-	 * @param object the target of the switch.
-	 * @return the result of interpreting the object as an instance of '<em>Xml Many To One</em>'.
-	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
-	 * @generated
-	 */
-	public T caseEclipseLinkOrm_XmlManyToOne(org.eclipse.jpt.eclipselink.core.resource.orm.XmlManyToOne object)
-	{
-		return null;
-	}
-
-	/**
-	 * Returns the result of interpreting the object as an instance of '<em>Xml Many To One Impl</em>'.
-	 * <!-- begin-user-doc -->
-	 * This implementation returns null;
-	 * returning a non-null result will terminate the switch.
-	 * <!-- end-user-doc -->
-	 * @param object the target of the switch.
-	 * @return the result of interpreting the object as an instance of '<em>Xml Many To One Impl</em>'.
-	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
-	 * @generated
-	 */
-	public T caseOrm_XmlManyToOneImpl(org.eclipse.jpt.core.resource.orm.XmlManyToOneImpl object)
-	{
-		return null;
-	}
-
-	/**
-	 * Returns the result of interpreting the object as an instance of '<em>Xml Many To One Impl</em>'.
-	 * <!-- begin-user-doc -->
-	 * This implementation returns null;
-	 * returning a non-null result will terminate the switch.
-	 * <!-- end-user-doc -->
-	 * @param object the target of the switch.
-	 * @return the result of interpreting the object as an instance of '<em>Xml Many To One Impl</em>'.
-	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
-	 * @generated
-	 */
-	public T caseEclipseLinkOrm_XmlManyToOneImpl(org.eclipse.jpt.eclipselink.core.resource.orm.XmlManyToOneImpl object)
-	{
-		return null;
-	}
-
-	/**
-	 * Returns the result of interpreting the object as an instance of '<em>Xml Many To Many</em>'.
-	 * <!-- begin-user-doc -->
-	 * This implementation returns null;
-	 * returning a non-null result will terminate the switch.
-	 * <!-- end-user-doc -->
-	 * @param object the target of the switch.
-	 * @return the result of interpreting the object as an instance of '<em>Xml Many To Many</em>'.
-	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
-	 * @generated
-	 */
-	public T caseOrm_XmlManyToMany(org.eclipse.jpt.core.resource.orm.XmlManyToMany object)
-	{
-		return null;
-	}
-
-	/**
-	 * Returns the result of interpreting the object as an instance of '<em>Xml Many To Many</em>'.
-	 * <!-- begin-user-doc -->
-	 * This implementation returns null;
-	 * returning a non-null result will terminate the switch.
-	 * <!-- end-user-doc -->
-	 * @param object the target of the switch.
-	 * @return the result of interpreting the object as an instance of '<em>Xml Many To Many</em>'.
-	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
-	 * @generated
-	 */
-	public T caseEclipseLinkOrm_XmlManyToMany(org.eclipse.jpt.eclipselink.core.resource.orm.XmlManyToMany object)
-	{
-		return null;
-	}
-
-	/**
-	 * Returns the result of interpreting the object as an instance of '<em>Xml Many To Many Impl</em>'.
-	 * <!-- begin-user-doc -->
-	 * This implementation returns null;
-	 * returning a non-null result will terminate the switch.
-	 * <!-- end-user-doc -->
-	 * @param object the target of the switch.
-	 * @return the result of interpreting the object as an instance of '<em>Xml Many To Many Impl</em>'.
-	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
-	 * @generated
-	 */
-	public T caseOrm_XmlManyToManyImpl(org.eclipse.jpt.core.resource.orm.XmlManyToManyImpl object)
-	{
-		return null;
-	}
-
-	/**
-	 * Returns the result of interpreting the object as an instance of '<em>Xml Many To Many Impl</em>'.
-	 * <!-- begin-user-doc -->
-	 * This implementation returns null;
-	 * returning a non-null result will terminate the switch.
-	 * <!-- end-user-doc -->
-	 * @param object the target of the switch.
-	 * @return the result of interpreting the object as an instance of '<em>Xml Many To Many Impl</em>'.
-	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
-	 * @generated
-	 */
-	public T caseEclipseLinkOrm_XmlManyToManyImpl(org.eclipse.jpt.eclipselink.core.resource.orm.XmlManyToManyImpl object)
-	{
-		return null;
-	}
-
-	/**
-	 * Returns the result of interpreting the object as an instance of '<em>Xml Basic Collection</em>'.
-	 * <!-- begin-user-doc -->
-	 * This implementation returns null;
-	 * returning a non-null result will terminate the switch.
-	 * <!-- end-user-doc -->
-	 * @param object the target of the switch.
-	 * @return the result of interpreting the object as an instance of '<em>Xml Basic Collection</em>'.
-	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
-	 * @generated
-	 */
-	public T caseEclipseLinkOrm_XmlBasicCollection(org.eclipse.jpt.eclipselink.core.resource.orm.XmlBasicCollection object)
-	{
-		return null;
-	}
-
-	/**
-	 * Returns the result of interpreting the object as an instance of '<em>Xml Basic Collection Impl</em>'.
-	 * <!-- begin-user-doc -->
-	 * This implementation returns null;
-	 * returning a non-null result will terminate the switch.
-	 * <!-- end-user-doc -->
-	 * @param object the target of the switch.
-	 * @return the result of interpreting the object as an instance of '<em>Xml Basic Collection Impl</em>'.
-	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
-	 * @generated
-	 */
-	public T caseEclipseLinkOrm_XmlBasicCollectionImpl(org.eclipse.jpt.eclipselink.core.resource.orm.XmlBasicCollectionImpl object)
-	{
-		return null;
-	}
-
-	/**
-	 * Returns the result of interpreting the object as an instance of '<em>Xml Basic Map</em>'.
-	 * <!-- begin-user-doc -->
-	 * This implementation returns null;
-	 * returning a non-null result will terminate the switch.
-	 * <!-- end-user-doc -->
-	 * @param object the target of the switch.
-	 * @return the result of interpreting the object as an instance of '<em>Xml Basic Map</em>'.
-	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
-	 * @generated
-	 */
-	public T caseEclipseLinkOrm_XmlBasicMap(org.eclipse.jpt.eclipselink.core.resource.orm.XmlBasicMap object)
-	{
-		return null;
-	}
-
-	/**
-	 * Returns the result of interpreting the object as an instance of '<em>Xml Basic Map Impl</em>'.
-	 * <!-- begin-user-doc -->
-	 * This implementation returns null;
-	 * returning a non-null result will terminate the switch.
-	 * <!-- end-user-doc -->
-	 * @param object the target of the switch.
-	 * @return the result of interpreting the object as an instance of '<em>Xml Basic Map Impl</em>'.
-	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
-	 * @generated
-	 */
-	public T caseEclipseLinkOrm_XmlBasicMapImpl(org.eclipse.jpt.eclipselink.core.resource.orm.XmlBasicMapImpl object)
-	{
-		return null;
-	}
-
-	/**
-	 * Returns the result of interpreting the object as an instance of '<em>Xml Transformation</em>'.
-	 * <!-- begin-user-doc -->
-	 * This implementation returns null;
-	 * returning a non-null result will terminate the switch.
-	 * <!-- end-user-doc -->
-	 * @param object the target of the switch.
-	 * @return the result of interpreting the object as an instance of '<em>Xml Transformation</em>'.
-	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
-	 * @generated
-	 */
-	public T caseEclipseLinkOrm_XmlTransformation(org.eclipse.jpt.eclipselink.core.resource.orm.XmlTransformation object)
-	{
-		return null;
-	}
-
-	/**
-	 * Returns the result of interpreting the object as an instance of '<em>Xml Transformation Impl</em>'.
-	 * <!-- begin-user-doc -->
-	 * This implementation returns null;
-	 * returning a non-null result will terminate the switch.
-	 * <!-- end-user-doc -->
-	 * @param object the target of the switch.
-	 * @return the result of interpreting the object as an instance of '<em>Xml Transformation Impl</em>'.
-	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
-	 * @generated
-	 */
-	public T caseEclipseLinkOrm_XmlTransformationImpl(org.eclipse.jpt.eclipselink.core.resource.orm.XmlTransformationImpl object)
-	{
-		return null;
-	}
-
-	/**
-	 * Returns the result of interpreting the object as an instance of '<em>Xml Variable One To One</em>'.
-	 * <!-- begin-user-doc -->
-	 * This implementation returns null;
-	 * returning a non-null result will terminate the switch.
-	 * <!-- end-user-doc -->
-	 * @param object the target of the switch.
-	 * @return the result of interpreting the object as an instance of '<em>Xml Variable One To One</em>'.
-	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
-	 * @generated
-	 */
-	public T caseEclipseLinkOrm_XmlVariableOneToOne(org.eclipse.jpt.eclipselink.core.resource.orm.XmlVariableOneToOne object)
-	{
-		return null;
-	}
-
-	/**
-	 * Returns the result of interpreting the object as an instance of '<em>Xml Variable One To One Impl</em>'.
-	 * <!-- begin-user-doc -->
-	 * This implementation returns null;
-	 * returning a non-null result will terminate the switch.
-	 * <!-- end-user-doc -->
-	 * @param object the target of the switch.
-	 * @return the result of interpreting the object as an instance of '<em>Xml Variable One To One Impl</em>'.
-	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
-	 * @generated
-	 */
-	public T caseEclipseLinkOrm_XmlVariableOneToOneImpl(org.eclipse.jpt.eclipselink.core.resource.orm.XmlVariableOneToOneImpl object)
-	{
-		return null;
-	}
-
-	/**
-	 * Returns the result of interpreting the object as an instance of '<em>Xml Transient</em>'.
-	 * <!-- begin-user-doc -->
-	 * This implementation returns null;
-	 * returning a non-null result will terminate the switch.
-	 * <!-- end-user-doc -->
-	 * @param object the target of the switch.
-	 * @return the result of interpreting the object as an instance of '<em>Xml Transient</em>'.
-	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
-	 * @generated
-	 */
-	public T caseOrm_XmlTransient(org.eclipse.jpt.core.resource.orm.XmlTransient object)
-	{
-		return null;
-	}
-
-	/**
-	 * Returns the result of interpreting the object as an instance of '<em>Xml Transient Impl</em>'.
-	 * <!-- begin-user-doc -->
-	 * This implementation returns null;
-	 * returning a non-null result will terminate the switch.
-	 * <!-- end-user-doc -->
-	 * @param object the target of the switch.
-	 * @return the result of interpreting the object as an instance of '<em>Xml Transient Impl</em>'.
-	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
-	 * @generated
-	 */
-	public T caseOrm_XmlTransientImpl(org.eclipse.jpt.core.resource.orm.XmlTransientImpl object)
-	{
-		return null;
-	}
-
-	/**
-	 * Returns the result of interpreting the object as an instance of '<em>EObject</em>'.
-	 * <!-- begin-user-doc -->
-	 * This implementation returns null;
-	 * returning a non-null result will terminate the switch, but this is the last case anyway.
-	 * <!-- end-user-doc -->
-	 * @param object the target of the switch.
-	 * @return the result of interpreting the object as an instance of '<em>EObject</em>'.
-	 * @see #doSwitch(org.eclipse.emf.ecore.EObject)
-	 * @generated
-	 */
-	public T defaultCase(EObject object)
-	{
-		return null;
-	}
-
-} //EclipseLink1_1OrmSwitch
diff --git a/jpa/plugins/org.eclipse.jpt.eclipselink.ui/.classpath b/jpa/plugins/org.eclipse.jpt.eclipselink.ui/.classpath
deleted file mode 100644
index fcf0798..0000000
--- a/jpa/plugins/org.eclipse.jpt.eclipselink.ui/.classpath
+++ /dev/null
@@ -1,15 +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/jpt/utility/**"/>
-			<accessrule kind="accessible" pattern="org/eclipse/jpt/core/**"/>
-			<accessrule kind="accessible" pattern="org/eclipse/jpt/eclipselink/core/**"/>
-			<accessrule kind="accessible" pattern="org/eclipse/jpt/ui/**"/>
-		</accessrules>
-	</classpathentry>
-	<classpathentry kind="output" path="bin"/>
-</classpath>
diff --git a/jpa/plugins/org.eclipse.jpt.eclipselink.ui/.cvsignore b/jpa/plugins/org.eclipse.jpt.eclipselink.ui/.cvsignore
deleted file mode 100644
index 76e6442..0000000
--- a/jpa/plugins/org.eclipse.jpt.eclipselink.ui/.cvsignore
+++ /dev/null
@@ -1,3 +0,0 @@
-bin
-@dot
-temp.folder
diff --git a/jpa/plugins/org.eclipse.jpt.eclipselink.ui/.project b/jpa/plugins/org.eclipse.jpt.eclipselink.ui/.project
deleted file mode 100644
index e572be1..0000000
--- a/jpa/plugins/org.eclipse.jpt.eclipselink.ui/.project
+++ /dev/null
@@ -1,28 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<projectDescription>
-	<name>org.eclipse.jpt.eclipselink.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.eclipselink.ui/.settings/org.eclipse.core.resources.prefs b/jpa/plugins/org.eclipse.jpt.eclipselink.ui/.settings/org.eclipse.core.resources.prefs
deleted file mode 100644
index 2fdb2b1..0000000
--- a/jpa/plugins/org.eclipse.jpt.eclipselink.ui/.settings/org.eclipse.core.resources.prefs
+++ /dev/null
@@ -1,3 +0,0 @@
-#Mon Apr 07 14:26:59 EDT 2008
-eclipse.preferences.version=1
-encoding/<project>=ISO-8859-1
diff --git a/jpa/plugins/org.eclipse.jpt.eclipselink.ui/.settings/org.eclipse.jdt.core.prefs b/jpa/plugins/org.eclipse.jpt.eclipselink.ui/.settings/org.eclipse.jdt.core.prefs
deleted file mode 100644
index 9dd4c36..0000000
--- a/jpa/plugins/org.eclipse.jpt.eclipselink.ui/.settings/org.eclipse.jdt.core.prefs
+++ /dev/null
@@ -1,7 +0,0 @@
-#Sun Feb 24 21:27:01 EST 2008
-eclipse.preferences.version=1
-org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.5
-org.eclipse.jdt.core.compiler.compliance=1.5
-org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
-org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
-org.eclipse.jdt.core.compiler.source=1.5
diff --git a/jpa/plugins/org.eclipse.jpt.eclipselink.ui/META-INF/MANIFEST.MF b/jpa/plugins/org.eclipse.jpt.eclipselink.ui/META-INF/MANIFEST.MF
deleted file mode 100644
index 7de44bc..0000000
--- a/jpa/plugins/org.eclipse.jpt.eclipselink.ui/META-INF/MANIFEST.MF
+++ /dev/null
@@ -1,50 +0,0 @@
-Manifest-Version: 1.0
-Bundle-ManifestVersion: 2
-Bundle-Name: %pluginName
-Bundle-Vendor: %providerName
-Bundle-SymbolicName: org.eclipse.jpt.eclipselink.ui;singleton:=true
-Bundle-Version: 1.2.0.qualifier
-Bundle-Activator: org.eclipse.jpt.eclipselink.ui.JptEclipseLinkUiPlugin
-Bundle-ActivationPolicy: lazy
-Bundle-ClassPath: .
-Bundle-Localization: plugin
-Require-Bundle: org.eclipse.core.resources;bundle-version="[3.4.0,4.0.0)",
- org.eclipse.core.runtime;bundle-version="[3.4.0,4.0.0)",
- org.eclipse.emf.ecore.xmi;bundle-version="2.4.1",
- org.eclipse.emf.edit.ui;bundle-version="[2.4.0,3.0.0)",
- org.eclipse.jdt.core;bundle-version="[3.4.0,4.0.0)",
- org.eclipse.jdt.ui;bundle-version="[3.4.0,4.0.0)",
- org.eclipse.jface.text;bundle-version="[3.4.0,4.0.0)",
- org.eclipse.jpt.core;bundle-version="[2.0.0,3.0.0)",
- org.eclipse.jpt.db;bundle-version="[1.2.0,2.0.0)",
- org.eclipse.jpt.eclipselink.core;bundle-version="[1.0.0,2.0.0)",
- org.eclipse.jpt.ui;bundle-version="[2.0.0,3.0.0)",
- org.eclipse.jpt.utility;bundle-version="[1.2.0,2.0.0)",
- org.eclipse.ui;bundle-version="[3.4.0,4.0.0)",
- org.eclipse.ui.ide;bundle-version="[3.4.0,4.0.0)",
- org.eclipse.ui.navigator;bundle-version="[3.3.100,4.0.0)",
- org.eclipse.ui.views.properties.tabbed;bundle-version="[3.4.0,4.0.0)",
- org.eclipse.wst.common.emf;bundle-version="1.1.202",
- org.eclipse.wst.common.frameworks;bundle-version="[1.1.200,2.0.0)",
- org.eclipse.wst.common.frameworks.ui;bundle-version="[1.1.200,2.0.0)"
-Export-Package: org.eclipse.jpt.eclipselink.ui,
- org.eclipse.jpt.eclipselink.ui.internal;x-internal:=true,
- org.eclipse.jpt.eclipselink.ui.internal.ddlgen;x-internal:=true,
- org.eclipse.jpt.eclipselink.ui.internal.ddlgen.wizards;x-internal:=true,
- org.eclipse.jpt.eclipselink.ui.internal.java.details;x-internal:=true,
- org.eclipse.jpt.eclipselink.ui.internal.mappings;x-internal:=true,
- org.eclipse.jpt.eclipselink.ui.internal.mappings.details;x-internal:=true,
- org.eclipse.jpt.eclipselink.ui.internal.orm.details;x-internal:=true,
- org.eclipse.jpt.eclipselink.ui.internal.persistence.caching;x-internal:=true,
- org.eclipse.jpt.eclipselink.ui.internal.persistence.connection;x-internal:=true,
- org.eclipse.jpt.eclipselink.ui.internal.persistence.customization;x-internal:=true,
- org.eclipse.jpt.eclipselink.ui.internal.persistence.general;x-internal:=true,
- org.eclipse.jpt.eclipselink.ui.internal.persistence.logging;x-internal:=true,
- org.eclipse.jpt.eclipselink.ui.internal.persistence.options;x-internal:=true,
- org.eclipse.jpt.eclipselink.ui.internal.persistence.schema.generation;x-internal:=true,
- org.eclipse.jpt.eclipselink.ui.internal.persistencexml.details;x-internal:=true,
- org.eclipse.jpt.eclipselink.ui.internal.platform;x-internal:=true,
- org.eclipse.jpt.eclipselink.ui.internal.structure;x-internal:=true,
- org.eclipse.jpt.eclipselink.ui.internal.wizards;x-internal:=true
-Bundle-RequiredExecutionEnvironment: J2SE-1.5
-Import-Package: com.ibm.icu.text;version="4.0.1"
diff --git a/jpa/plugins/org.eclipse.jpt.eclipselink.ui/about.html b/jpa/plugins/org.eclipse.jpt.eclipselink.ui/about.html
deleted file mode 100644
index be534ba..0000000
--- a/jpa/plugins/org.eclipse.jpt.eclipselink.ui/about.html
+++ /dev/null
@@ -1,34 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN">
-<HTML>
-
-<head>
-<title>About</title>
-<meta http-equiv=Content-Type content="text/html; charset=ISO-8859-1">
-</head>
-
-<BODY lang="EN-US">
-
-<H3>About This Content</H3>
-
-<P>May 02, 2008</P>
-
-<H3>License</H3>
-
-<P>The Eclipse Foundation makes available all content in this plug-in 
-("Content"). Unless otherwise indicated below, the Content is provided to you 
-under the terms and conditions of the Eclipse Public License Version 1.0 
-("EPL"). A copy of the EPL is available at
-<A href="http://www.eclipse.org/org/documents/epl-v10.php">http://www.eclipse.org/org/documents/epl-v10.php</A>. 
-For purposes of the EPL, "Program" will mean the Content.</P>
-
-<P>If you did not receive this Content directly from the Eclipse Foundation, the 
-Content is being redistributed by another party ("Redistributor") and different 
-terms and conditions may apply to your use of any object code in the Content. 
-Check the Redistributor's license that was provided with the Content. If no such 
-license exists, contact the Redistributor. Unless otherwise indicated below, the 
-terms and conditions of the EPL still apply to any source code in the Content 
-and such source code may be obtained at
-<A href="http://www.eclipse.org/">http://www.eclipse.org/</A>.</P>
-
-</BODY>
-</HTML>
diff --git a/jpa/plugins/org.eclipse.jpt.eclipselink.ui/build.properties b/jpa/plugins/org.eclipse.jpt.eclipselink.ui/build.properties
deleted file mode 100644
index 213a2e2..0000000
--- a/jpa/plugins/org.eclipse.jpt.eclipselink.ui/build.properties
+++ /dev/null
@@ -1,20 +0,0 @@
-################################################################################
-# Copyright (c) 2006, 2008 Oracle. All rights reserved.
-# This program and the accompanying materials are made available under the
-# terms of the Eclipse Public License v1.0, which accompanies this distribution
-# and is available at http://www.eclipse.org/legal/epl-v10.html.
-# 
-# Contributors:
-#     Oracle - initial API and implementation
-################################################################################
-javacSource = 1.5
-javacTarget = 1.5
-source.. = src/,\
-               property_files/
-output.. = bin/
-bin.includes = .,\
-               META-INF/,\
-               about.html,\
-               plugin.xml,\
-               plugin.properties
-jars.compile.order = .
diff --git a/jpa/plugins/org.eclipse.jpt.eclipselink.ui/plugin.properties b/jpa/plugins/org.eclipse.jpt.eclipselink.ui/plugin.properties
deleted file mode 100644
index 1759e95..0000000
--- a/jpa/plugins/org.eclipse.jpt.eclipselink.ui/plugin.properties
+++ /dev/null
@@ -1,30 +0,0 @@
-###############################################################################
-# Copyright (c) 2006, 2008 Oracle. All rights reserved.
-# This program and the accompanying materials are made available under the
-# terms of the Eclipse Public License v1.0, which accompanies this distribution
-# and is available at http://www.eclipse.org/legal/epl-v10.html.
-# 
-# Contributors:
-#     Oracle - initial API and implementation
-###############################################################################
-
-# ====================================================================
-# To code developer:
-#   Do NOT change the properties between this line and the
-#   "%%% END OF TRANSLATED PROPERTIES %%%" line.
-#   Make a new property name, append to the end of the file and change
-#   the code to use the new property.
-# ====================================================================
-
-# ====================================================================
-# %%% END OF TRANSLATED PROPERTIES %%%
-# ====================================================================
-pluginName= Dali Java Persistence Tools - EclipseLink Support - UI
-providerName=Eclipse Web Tools Platform
-
-eclipseLinkWizardCategoryName=EclipseLink
-newEclipseLinkMappingFileWizardName=EclipseLink Mapping File
-newEclipseLinkJpaMappingFileWizardDesc=Create an EclipseLink specific mapping file
-
-newEclipseLink1_1MappingFileWizardName=EclipseLink 1.1 Mapping File
-newEclipseLink1_1JpaMappingFileWizardDesc=Create an EclipseLink 1.1 specific mapping file
\ No newline at end of file
diff --git a/jpa/plugins/org.eclipse.jpt.eclipselink.ui/plugin.xml b/jpa/plugins/org.eclipse.jpt.eclipselink.ui/plugin.xml
deleted file mode 100644
index 65c99f3..0000000
--- a/jpa/plugins/org.eclipse.jpt.eclipselink.ui/plugin.xml
+++ /dev/null
@@ -1,154 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<?eclipse version="3.2"?>
-<plugin>
-
-	<extension
-		point="org.eclipse.jpt.ui.jpaPlatformUis">
-		 
-		<jpaPlatformUi
-			id="org.eclipse.eclipselink.platform.ui"
-			jpaPlatform="org.eclipse.eclipselink.platform"
-			factoryClass="org.eclipse.jpt.eclipselink.ui.internal.platform.EclipseLinkJpaPlatformUiFactory"/>
-			
-		<jpaPlatformUi
-			id="eclipselink1_1.ui"
-			jpaPlatform="eclipselink1_1"
-			factoryClass="org.eclipse.jpt.eclipselink.ui.internal.platform.EclipseLink1_1JpaPlatformUiFactory"/>
-		
-	</extension>
-   
-   
-   <extension
-		point="org.eclipse.ui.newWizards">
-		
-		<category
-			id="org.eclipse.jpt.eclipselink"
-			name="%eclipseLinkWizardCategoryName"
-			parentCategory="org.eclipse.jpt"/>
-		
-		<wizard
-            id="org.eclipse.jpt.eclipselink.ui.wizard.newEclipseLinkMappingFile"
-			name="%newEclipseLinkMappingFileWizardName"
-			icon="platform:/plugin/org.eclipse.jpt.ui/icons/full/etool16/new_jpa_file_wiz.gif"
-			category="org.eclipse.jpt/org.eclipse.jpt.eclipselink">
-			<description>%newEclipseLinkJpaMappingFileWizardDesc</description>
-			<class class="org.eclipse.jpt.eclipselink.ui.internal.wizards.EclipseLinkMappingFileWizard"> 
-				<parameter name="javaeeartifact" value="true"/> 
-				<parameter name="menuIndex" value="40" /> 
-				<parameter name="jptartifact" value="true"/> 
-			</class> 
-		</wizard>
-  <wizard
-        category="org.eclipse.jpt/org.eclipse.jpt.eclipselink"
-        icon="platform:/plugin/org.eclipse.jpt.ui/icons/full/etool16/new_jpa_file_wiz.gif"
-        id="org.eclipse.jpt.eclipselink.ui.wizard.newEclipseLink1_1MappingFile"
-        name="%newEclipseLink1_1MappingFileWizardName">
-     <description>
-        %newEclipseLink1_1JpaMappingFileWizardDesc
-     </description>
-     <class
-           class="org.eclipse.jpt.eclipselink.ui.internal.wizards.EclipseLink1_1MappingFileWizard">
-        <parameter
-              name="javaeeartifact"
-              value="true">
-        </parameter>
-        <parameter
-              name="menuIndex"
-              value="40">
-        </parameter>
-        <parameter
-              name="jptartifact"
-              value="true">
-        </parameter>
-     </class>
-  </wizard>
-      
-	</extension>
-
-
-	<extension
-		point="org.eclipse.ui.navigator.navigatorContent">
-		
-		<commonWizard
-			menuGroupId="org.eclipse.jpt.ui"
-			type="new"
-			wizardId="org.eclipse.jpt.eclipselink.ui.wizard.newEclipseLinkMappingFile">
-			<enablement>
-				<and>
-					<or>
-						<instanceof value="org.eclipse.core.resources.IProject"/>
-                    	<instanceof value="org.eclipse.core.resources.IFolder"/>
-						<instanceof value="org.eclipse.jdt.core.IPackageFragmentRoot"/>
-						<instanceof value="org.eclipse.jdt.core.IPackageFragment"/>
-					</or>
-					<adapt type="org.eclipse.core.resources.IResource">
-						<test 
-							forcePluginActivation="true"
-							property="org.eclipse.wst.common.project.facet.core.projectFacet"
-							value="jpt.jpa" />
-					</adapt>
-     <or>
-        <test
-              property="org.eclipse.jpt.core.jpaPlatform"
-              value="org.eclipse.eclipselink.platform">
-        </test>
-        <test
-              property="org.eclipse.jpt.core.jpaPlatform"
-              value="eclipselink1_1">
-        </test>
-     </or>
-				</and>
-			</enablement>
-		</commonWizard>
-  <commonWizard
-        menuGroupId="org.eclipse.jpt.ui"
-        type="new"
-        wizardId="org.eclipse.jpt.eclipselink.ui.wizard.newEclipseLink1_1MappingFile">
-     <enablement>
-        <and>
-           <or>
-              <instanceof
-                    value="org.eclipse.core.resources.IProject">
-              </instanceof>
-              <instanceof
-                    value="org.eclipse.core.resources.IFolder">
-              </instanceof>
-              <instanceof
-                    value="org.eclipse.jdt.core.IPackageFragmentRoot">
-              </instanceof>
-              <instanceof
-                    value="org.eclipse.jdt.core.IPackageFragment">
-              </instanceof>
-           </or>
-           <adapt
-                 type="org.eclipse.core.resources.IResource">
-              <test
-                    forcePluginActivation="true"
-                    property="org.eclipse.wst.common.project.facet.core.projectFacet"
-                    value="jpt.jpa">
-              </test>
-           </adapt>
-           <test
-                 property="org.eclipse.jpt.core.jpaPlatform"
-                 value="eclipselink1_1">
-           </test>
-        </and>
-     </enablement>
-  </commonWizard>
-		
-	</extension>
-	
-	
-	<extension
-		point="org.eclipse.ui.perspectiveExtensions">
-		
-		<perspectiveExtension
-			targetID="org.eclipse.jpt.ui.jpaPerspective">
-			<newWizardShortcut
-				id="org.eclipse.jpt.eclipselink.ui.wizard.newEclipseLinkMappingFile">
-			</newWizardShortcut>
-		</perspectiveExtension>
-		
-	</extension>
-	
-</plugin>
diff --git a/jpa/plugins/org.eclipse.jpt.eclipselink.ui/property_files/eclipselink_ui.properties b/jpa/plugins/org.eclipse.jpt.eclipselink.ui/property_files/eclipselink_ui.properties
deleted file mode 100644
index cd2a984..0000000
--- a/jpa/plugins/org.eclipse.jpt.eclipselink.ui/property_files/eclipselink_ui.properties
+++ /dev/null
@@ -1,334 +0,0 @@
-################################################################################
-# Copyright (c) 2007, 2008 Oracle. All rights reserved.
-# This program and the accompanying materials are made available under the
-# terms of the Eclipse Public License v1.0, which accompanies this distribution
-# and is available at http://www.eclipse.org/legal/epl-v10.html.
-# 
-# Contributors:
-#     Oracle - initial API and implementation
-################################################################################
-
-MappingFileWizard_title=New EclipseLink Mapping File
-MappingFileWizardPage_title=EclipseLink mapping file
-MappingFileWizardPage_desc=Specify EclipseLink mapping file location and properties
-
-EclipseLink1_1MappingFileWizard_title=New EclipseLink 1.1 Mapping File
-EclipseLink1_1MappingFileWizardPage_title=EclipseLink 1.1 mapping file
-EclipseLink1_1MappingFileWizardPage_desc=Specify EclipseLink 1.1 mapping file location and properties
-
-Boolean_True = True
-Boolean_False = False
-
-DefaultWithoutValue=Default ()
-DefaultWithValue=Default ({0})
-	
-PersistenceXmlTabFolder_defaultEmpty = Default ()
-PersistenceXmlTabFolder_defaultWithOneParam = Default ({0})
-
-PersistenceXmlGeneralTab_name = Name:
-PersistenceXmlGeneralTab_provider = Provider:
-PersistenceXmlGeneralTab_browse = Browse...
-PersistenceXmlGeneralTab_description = Description:
-
-# General
-PersistenceXmlGeneralTab_title = General
-PersistenceXmlGeneralTab_generalSectionTitle = General
-PersistenceXmlGeneralTab_mappedClassesSectionTitle = Managed Classes
-PersistenceXmlGeneralTab_mappedClassesSectionDescription=Specify the list of classes to be managed in this persistence unit.
-PersistenceXmlGeneralTab_xmlMappingFilesSectionTitle = XML Mapping Files
-PersistenceXmlGeneralTab_xmlMappingFilesSectionDescription=Specify the XML mapping files for this persistence unit.
-
-PersistenceXmlGeneralTab_nameLabel = Name:
-PersistenceXmlGeneralTab_persistenceProviderLabel = Persistence Provider:
-PersistenceXmlGeneralTab_descriptionLabel = Description:
-
-PersistenceXmlGeneralTab_excludeUnlistedMappedClasses=Exclude unlisted classes
-PersistenceXmlGeneralTab_excludeUnlistedMappedClassesWithDefault=Exclude unlisted classes ({0})
-PersistenceXmlGeneralTab_mappedClassesNoName=<name not set>
-PersistenceXmlGeneralTab_open=Open
-
-PersistenceXmlGeneralTab_xmlMappingFilesDialog_title=JPA XML Mapping File Selection
-PersistenceXmlGeneralTab_xmlMappingFilesDialog_message=Choose the XML mapping files to be added to the persistence unit.
-PersistenceXmlGeneralTab_ormNoName=<name not set>
-PersistenceXmlGeneralTab_excludeEclipselinkOrm=Exclude unlisted EclipseLink XML mapping file
-PersistenceXmlGeneralTab_excludeEclipselinkOrmWithDefault=Exclude unlisted EclipseLink XML mapping file ({0})
-
-# Connection
-PersistenceXmlConnectionTab_title = Connection
-PersistenceXmlConnectionTab_sectionTitle = Persistence Unit Connection
-PersistenceXmlConnectionTab_sectionDescription = Configure the data source or JDBC connection properties.
-PersistenceXmlConnectionTab_defaultWithOneParam = Default ({0})
-PersistenceXmlConnectionTab_defaultEmpty = Default ()
-
-PersistenceXmlConnectionTab_transactionTypeLabel = Transaction type:
-
-TransactionTypeComposite_jta = JTA
-TransactionTypeComposite_resource_local = Resource Local
-
-PersistenceXmlConnectionTab_nativeSqlLabel = Native SQL
-PersistenceXmlConnectionTab_nativeSqlLabelDefault = Native SQL ({0})
-
-PersistenceXmlConnectionTab_batchWritingLabel = Batch writing:
-
-BatchWritingComposite_none = None
-BatchWritingComposite_jdbc = JDBC
-BatchWritingComposite_buffered = Buffered
-BatchWritingComposite_oracle_jdbc = Oracle JDBC
-
-PersistenceXmlConnectionTab_cacheStatementsLabel = Statement caching:
-
-PersistenceXmlConnectionTab_jtaDataSourceLabel = JTA data source:
-PersistenceXmlConnectionTab_nonJtaDataSourceLabel = Non-JTA data source:
-
-PersistenceXmlConnectionTab_driverLabel = Driver:
-PersistenceXmlConnectionTab_urlLabel = URL:
-PersistenceXmlConnectionTab_userLabel = User:
-PersistenceXmlConnectionTab_passwordLabel = Password:
-PersistenceXmlConnectionTab_bindParametersLabel = Bind parameters
-PersistenceXmlConnectionTab_bindParametersLabelDefault = Bind parameters ({0})
-
-PersistenceXmlConnectionTab_readConnectionsSharedLabel = Shared
-PersistenceXmlConnectionTab_readConnectionsSharedLabelDefault = Shared ({0})
-PersistenceXmlConnectionTab_readConnectionsSectionTitle = Read Connection
-PersistenceXmlConnectionTab_readConnectionsMinLabel = Minimum:
-PersistenceXmlConnectionTab_readConnectionsMaxLabel = Maximum:
-PersistenceXmlConnectionTab_writeConnectionsSectionTitle = Write Connection
-PersistenceXmlConnectionTab_writeConnectionsMinLabel = Minimum:
-PersistenceXmlConnectionTab_writeConnectionsMaxLabel = Maximum:
-
-ConnectionPropertiesComposite_Database_GroupBox=Database
-
-JdbcPropertiesComposite_EclipseLinkConnectionPool_GroupBox=EclipseLink Connection Pool
-
-JdbcConnectionPropertiesComposite_ConnectionDialog_Message=&Enter connection name or pattern (*, ?, or camel case):
-JdbcConnectionPropertiesComposite_ConnectionDialog_Title=Connection Selection
-
-# SchemaGeneration
-PersistenceXmlSchemaGenerationTab_title = Schema Generation
-PersistenceXmlSchemaGenerationTab_sectionTitle = Persistence Unit Schema Generation
-PersistenceXmlSchemaGenerationTab_sectionDescription = Configure the EclipseLink schema generation properties.
-PersistenceXmlSchemaGenerationTab_defaultWithOneParam = Default ({0})
-PersistenceXmlSchemaGenerationTab_defaultEmpty = Default ()
-
-PersistenceXmlSchemaGenerationTab_ddlGenerationTypeLabel = DDL generation type:
-PersistenceXmlSchemaGenerationTab_outputModeLabel = Output mode:
-PersistenceXmlSchemaGenerationTab_createDdlFileNameLabel = Create DDL file name:
-PersistenceXmlSchemaGenerationTab_dropDdlFileNameLabel = Drop DDL file name:
-
-OutputModeComposite_both = Both
-OutputModeComposite_sql_script = Sql-script
-OutputModeComposite_database = Database
-
-DdlGenerationTypeComposite_none = None
-DdlGenerationTypeComposite_create_tables = Create Tables
-DdlGenerationTypeComposite_drop_and_create_tables = Drop and Create Tables
-
-PersistenceXmlSchemaGenerationTab_ddlGenerationLocationLabel = DDL generation location:
-	
-DdlGenerationLocationComposite_dialogTitle = Generation Location
-DdlGenerationLocationComposite_dialogMessage = Choose a folder for the generated DDL files:
-
-# Caching
-PersistenceXmlCachingTab_title = Caching
-PersistenceXmlCachingTab_sectionTitle = Persistence Unit Caching
-PersistenceXmlCachingTab_sectionDescription = Configure the session or entity specific EclipseLink caching properties.
-
-PersistenceXmlCachingTab_defaultCacheTypeLabel = Default cache type:
-PersistenceXmlCachingTab_cacheTypeLabel = Cache type:
-
-PersistenceXmlCachingTab_defaultSharedCacheLabel = Shared cache ({0})
-PersistenceXmlCachingTab_sharedCacheLabel = Shared cache
-
-PersistenceXmlCachingTab_defaultSharedCacheDefaultLabel = Default shared cache ({0})
-PersistenceXmlCachingTab_sharedCacheDefaultLabel = Default shared cache
-
-CacheSizeComposite_cacheSize=Cache size:
-
-CacheTypeComposite_full = Full
-CacheTypeComposite_hard_weak = Weak with Hard Subcache
-CacheTypeComposite_none = None
-CacheTypeComposite_soft = Soft
-CacheTypeComposite_soft_weak = Weak with Soft Subcache
-CacheTypeComposite_weak = Weak
-
-DefaultCacheSizeComposite_defaultCacheSize=Default cache size:
-
-DefaultCacheTypeComposite_full = Full
-DefaultCacheTypeComposite_hard_weak = Weak With Hard Subcache
-DefaultCacheTypeComposite_none = None
-DefaultCacheTypeComposite_soft = Soft
-DefaultCacheTypeComposite_soft_weak = Weak with Soft Subcache
-DefaultCacheTypeComposite_weak = Weak
-
-EntityDialog_selectEntity = Select an Entity
-EntityDialog_name = Name:
-
-CachingEntityListComposite_groupTitle = Entity caching
-CachingEntityListComposite_editButton = Edit...
-
-CachingEntityListComposite_dialogMessage=&Enter type name prefix or pattern (*, ?, or camel case):
-CachingEntityListComposite_dialogTitle=Entity Selection
-
-PersistenceXmlCachingTab_FlushClearCacheLabel = Flush clear cache:
-
-FlushClearCacheComposite_drop = Drop
-FlushClearCacheComposite_drop_invalidate = Drop Invalidate
-FlushClearCacheComposite_merge = Merge
-
-# Customization
-PersistenceXmlCustomizationTab_title = Customization
-PersistenceXmlCustomizationTab_sectionTitle = Persistence Unit Customization
-PersistenceXmlCustomizationTab_sectionDescription = Set default or entity specific EclipseLink customization and validation properties.
-PersistenceXmlCustomizationTab_defaultWithOneParam = Default ({0})
-PersistenceXmlCustomizationTab_defaultEmpty = Default ()
-
-PersistenceXmlCustomizationTab_weavingLabel = Weaving:
-
-PersistenceXmlCustomizationTab_weavingLazyLabelDefault = Weaving lazy ({0})
-PersistenceXmlCustomizationTab_weavingLazyLabel = Weaving lazy
-	
-PersistenceXmlCustomizationTab_weavingChangeTrackingLabelDefault = Weaving change tracking ({0})
-PersistenceXmlCustomizationTab_weavingChangeTrackingLabel = Weaving change tracking
-
-PersistenceXmlCustomizationTab_weavingFetchGroupsLabelDefault = Weaving fetch groups ({0})
-PersistenceXmlCustomizationTab_weavingFetchGroupsLabel = Weaving fetch groups
-
-PersistenceXmlCustomizationTab_weavingInternalLabel = Weaving internal
-PersistenceXmlCustomizationTab_weavingInternalLabelDefault = Weaving internal ({0})
-
-PersistenceXmlCustomizationTab_weavingEagerLabel = Weaving eager
-PersistenceXmlCustomizationTab_weavingEagerLabelDefault = Weaving eager ({0})
-
-PersistenceXmlCustomizationTab_throwExceptionsLabelDefault = Throw exceptions ({0})
-PersistenceXmlCustomizationTab_throwExceptionsLabel = Throw exceptions
-
-PersistenceXmlCustomizationTab_exceptionHandlerLabel = Exception handler:
-
-WeavingComposite_true_ = Weave Dynamically
-WeavingComposite_false_ = No Weaving
-WeavingComposite_static_ = Weave Statically
-
-CustomizationEntityListComposite_groupTitle = Descriptor customizers
-CustomizationEntityListComposite_editButton = Edit...
-
-CustomizationEntityListComposite_dialogMessage=&Enter type name prefix or pattern (*, ?, or camel case):
-CustomizationEntityListComposite_dialogTitle=Entity Selection
-
-PersistenceXmlCustomizationTab_customizerLabel = Customizer:
-PersistenceXmlCustomizationTab_sessionCustomizerLabel = Session customizers
-
-PersistenceXmlCustomizationTab_noName=<name not set>
-
-PersistenceXmlCustomizationTab_validationOnlyLabel = Validation only
-PersistenceXmlCustomizationTab_validationOnlyLabelDefault = Validation only ({0})
-
-PersistenceXmlCustomizationTab_profilerLabel = Profiler:
-PersistenceXmlCustomizationTab_browse = Browse...
-
-ProfilerComposite_performance_profiler = Performance Profiler
-ProfilerComposite_query_monitor = Query Monitor 
-ProfilerComposite_no_profiler = No Profiler
-
-# Logging
-PersistenceXmlLoggingTab_title = Logging
-PersistenceXmlLoggingTab_sectionTitle = Persistence Unit Logging
-PersistenceXmlLoggingTab_sectionDescription = Configure the EclipseLink logging properties.
-PersistenceXmlLoggingTab_defaultWithOneParam = Default ({0})
-PersistenceXmlLoggingTab_defaultEmpty = Default ()
-
-PersistenceXmlLoggingTab_loggingLevelLabel = Logging level:
-
-LoggingLevelComposite_off = Off
-LoggingLevelComposite_severe = Severe
-LoggingLevelComposite_warning = Warning
-LoggingLevelComposite_info = Info
-LoggingLevelComposite_config = Config
-LoggingLevelComposite_fine = Fine
-LoggingLevelComposite_finer = Finer
-LoggingLevelComposite_finest = Finest
-LoggingLevelComposite_all = All
-
-PersistenceXmlLoggingTab_loggerLabel = Logger:
-PersistenceXmlLoggingTab_browse = Browse...
-LoggerComposite_default_logger = Default Logger
-LoggerComposite_java_logger = Java Logger
-LoggerComposite_server_logger = Server Logger
-
-PersistenceXmlLoggingTab_timestampLabel = Timestamp
-PersistenceXmlLoggingTab_timestampLabelDefault = Timestamp ({0})
-PersistenceXmlLoggingTab_threadLabel = Thread
-PersistenceXmlLoggingTab_threadLabelDefault = Thread ({0})
-PersistenceXmlLoggingTab_sessionLabel = Session
-PersistenceXmlLoggingTab_sessionLabelDefault = Session ({0})
-PersistenceXmlLoggingTab_exceptionsLabel = Exceptions
-PersistenceXmlLoggingTab_exceptionsLabelDefault = Exceptions ({0})
-
-PersistenceXmlLoggingTab_loggersLabel = Loggers:
-
-PersistenceXmlLoggingTab_loggingFileLabel = Log file:
-
-LoggingFileLocationComposite_dialogTitle = Log File Location
-LoggingFileLocationComposite_dialogMessage = Choose a folder for the log file:
-
-# Options
-PersistenceXmlOptionsTab_title = Options
-PersistenceXmlOptionsTab_sessionSectionTitle = EclipseLink Session Options
-PersistenceXmlOptionsTab_sessionSectionDescription = Configure the EclipseLink session options.
-PersistenceXmlOptionsTab_defaultWithOneParam = Default ({0})
-PersistenceXmlOptionsTab_defaultEmpty = Default ()
-
-PersistenceXmlOptionsTab_sessionName = Session name:
-PersistenceXmlOptionsTab_sessionsXml = Sessions XML:
-
-PersistenceXmlOptionsTab_includeDescriptorQueriesLabel = Include descriptor queries
-PersistenceXmlOptionsTab_includeDescriptorQueriesLabelDefault = Include descriptor queries ({0})
-
-PersistenceXmlOptionsTab_eventListenerLabel = Event listener:
-PersistenceXmlOptionsTab_targetDatabaseLabel = Target database:
-
-PersistenceXmlOptionsTab_miscellaneousSectionTitle = Miscellaneous Options
-PersistenceXmlOptionsTab_miscellaneousSectionDescription = Configure the miscellaneous options.
-
-PersistenceXmlOptionsTab_temporalMutableLabel = Temporal mutable
-PersistenceXmlOptionsTab_temporalMutableLabelDefault = Temporal mutable ({0})
-
-TargetDatabaseComposite_attunity = Attunity
-TargetDatabaseComposite_auto = Auto
-TargetDatabaseComposite_cloudscape = Cloudscape
-TargetDatabaseComposite_database = Database
-TargetDatabaseComposite_db2 = DB2
-TargetDatabaseComposite_db2mainframe = DB2Mainframe
-TargetDatabaseComposite_dbase = DBase
-TargetDatabaseComposite_derby = Derby
-TargetDatabaseComposite_hsql = HSQL
-TargetDatabaseComposite_informix = Informix
-TargetDatabaseComposite_javadb = JavaDB
-TargetDatabaseComposite_mysql = MySQL
-TargetDatabaseComposite_oracle = Oracle
-TargetDatabaseComposite_oracle11 = Oracle11
-TargetDatabaseComposite_oracle10 = Oracle10g
-TargetDatabaseComposite_oracle9 = Oracle9i
-TargetDatabaseComposite_oracle8 = Oracle8i
-TargetDatabaseComposite_pointbase = PointBase
-TargetDatabaseComposite_postgresql = PostgreSQL
-TargetDatabaseComposite_sqlanywhere = SQLAnywhere
-TargetDatabaseComposite_sqlserver = SQLServer
-TargetDatabaseComposite_sybase = Sybase
-TargetDatabaseComposite_timesten = TimesTen
-
-PersistenceXmlOptionsTab_targetServerLabel = Target server:
-
-TargetServerComposite_none = None
-TargetServerComposite_oc4j = OC4J
-TargetServerComposite_sunas9 = SunAS9
-TargetServerComposite_websphere = WebSphere
-TargetServerComposite_websphere_6_1 = WebSphere 6.1
-TargetServerComposite_weblogic = WebLogic
-TargetServerComposite_weblogic_9 = WebLogic 9
-TargetServerComposite_weblogic_10 = WebLogic 10
-TargetServerComposite_jboss = JBoss
-
-# DDLGeneration
-EclipseLinkDDLGeneratorUi_generatingDDLWarningTitle = Generating DDL
-EclipseLinkDDLGeneratorUi_generatingDDLWarningMessage = Warning:  Generating DDL will DROP existing tables and{0}CREATE new tables based on the Entities in your project.{1}Are you sure you want to continue?
-EclipseLinkDDLGeneratorUi_error = Error
diff --git a/jpa/plugins/org.eclipse.jpt.eclipselink.ui/property_files/eclipselink_ui_mappings.properties b/jpa/plugins/org.eclipse.jpt.eclipselink.ui/property_files/eclipselink_ui_mappings.properties
deleted file mode 100644
index 92d1e47..0000000
--- a/jpa/plugins/org.eclipse.jpt.eclipselink.ui/property_files/eclipselink_ui_mappings.properties
+++ /dev/null
@@ -1,153 +0,0 @@
-################################################################################
-# Copyright (c) 2008 Oracle. All rights reserved.
-# This program and the accompanying materials are made available under the
-# terms of the Eclipse Public License v1.0, which accompanies this distribution
-# and is available at http://www.eclipse.org/legal/epl-v10.html.
-# 
-# Contributors:
-#     Oracle - initial API and implementation
-################################################################################
-
-BasicCollectionMappingUiProvider_label = Basic Collection
-BasicCollectionMappingUiProvider_linkLabel = basic collection
-
-BasicMapMappingUiProvider_label = Basic Map
-BasicMapMappingUiProvider_linkLabel = basic map
-
-TransformationMappingUiProvider_label = Transformation
-TransformationMappingUiProvider_linkLabel = transformation
-
-VariableOneToOneMappingUiProvider_label = Variable One to One
-VariableOneToOneMappingUiProvider_linkLabel = variable one to one
-
-CacheTypeComposite_label = Type:	
-CacheTypeComposite_full = Full
-CacheTypeComposite_weak = Weak
-CacheTypeComposite_soft = Soft
-CacheTypeComposite_soft_weak = Weak with Soft Subcache
-CacheTypeComposite_hard_weak = Weak with Hard Subcache
-CacheTypeComposite_cache = Cache
-CacheTypeComposite_none =  None
-
-CacheSizeComposite_size = Size:
-
-CacheCoordinationTypeComposite_label = Coordination type:
-CacheCoordinationTypeComposite_send_object_changes = Send Object Changes
-CacheCoordinationTypeComposite_invalidate_changed_objects = Invalidate Changed Objects
-CacheCoordinationTypeComposite_send_new_objects_with_changes = Send New Objects with Changes
-CacheCoordinationTypeComposite_none = None
-
-CachingComposite_sharedLabelDefault = Shared ({0})
-CachingComposite_sharedLabel = Shared
-CachingComposite_advanced = Advanced
-
-ChangeTrackingComposite_label = Change tracking:
-ChangeTrackingComposite_attribute = Attribute
-ChangeTrackingComposite_object = Object
-ChangeTrackingComposite_deferred = Deferred
-ChangeTrackingComposite_auto = Auto
-
-ConvertComposite_converterNameLabel = Converter name:
-ConvertComposite_defineConverterSection = Define Converter
-ConvertComposite_default = Default
-ConvertComposite_custom = Custom
-ConvertComposite_type = Type
-ConvertComposite_objectType = Object type
-ConvertComposite_struct = Struct
-
-ConverterComposite_nameTextLabel = Name:
-ConverterComposite_classLabel = Class:
-
-CustomizerComposite_classLabel = Customizer class:
-
-ConvertersComposite_customConverter = Custom
-ConvertersComposite_objectTypeConverter = Object type
-ConvertersComposite_structConverter = Struct
-ConvertersComposite_typeConverter = Type
-
-AlwaysRefreshComposite_alwaysRefreshDefault = Always refresh ({0})
-AlwaysRefreshComposite_alwaysRefreshLabel = Always refresh
-RefreshOnlyIfNewerComposite_refreshOnlyIfNewerDefault = Refresh only if newer ({0})
-RefreshOnlyIfNewerComposite_refreshOnlyIfNewerLabel = Refresh only if newer
-DisableHitsComposite_disableHitsDefault = Disable hits ({0})
-DisableHitsComposite_disableHitsLabel = Disable hits
-
-TypeSection_converted = Converted
-
-EclipseLinkTypeMappingComposite_advanced = Advanced
-EclipseLinkTypeMappingComposite_caching = Caching
-EclipseLinkTypeMappingComposite_converters = Converters
-
-ExistenceCheckingComposite_label = Existence checking:
-JavaExistenceCheckingComposite_check_cache = Check Cache
-JavaExistenceCheckingComposite_check_database = Check Cache then Database
-JavaExistenceCheckingComposite_assume_existence = Assume Existence
-JavaExistenceCheckingComposite_assume_non_existence = Assume Non-Existence
-OrmExistenceCheckingComposite_check_cache = Check Cache
-OrmExistenceCheckingComposite_check_database = Check Cache then Database
-OrmExistenceCheckingComposite_assume_existence = Assume Existence
-OrmExistenceCheckingComposite_assume_non_existence = Assume Non-Existence
-
-ExpiryComposite_expirySection = Expiry
-
-ExpiryComposite_noExpiry = No expiry
-ExpiryComposite_timeToLiveExpiry = Time to live expiry
-ExpiryComposite_timeToLiveExpiryExpireAfter = Expire after
-ExpiryComposite_timeToLiveExpiryMilliseconds = milliseconds
-ExpiryComposite_dailyExpiry = Daily expiry
-ExpiryComposite_timeOfDayExpiryExpireAt = Expire at
-
-
-JoinFetchComposite_label = Join fetch:
-JoinFetchComposite_inner = Inner
-JoinFetchComposite_outer = Outer
-
-MutableComposite_mutableLabel=Mutable
-MutableComposite_mutableLabelDefault=Mutable ({0})
-MutableComposite_true=True
-MutableComposite_false=False
-
-ObjectTypeConverterComposite_dataTypeLabel = Data type:
-ObjectTypeConverterComposite_objectTypeLabel = Object type:
-ObjectTypeConverterComposite_conversionValueEdit = Edit...
-ObjectTypeConverterComposite_conversionValuesDataValueColumn = Data Value
-ObjectTypeConverterComposite_conversionValuesObjectValueColumn = Object Value
-ObjectTypeConverterComposite_defaultObjectValueLabel = Default object value:
-ObjectTypeConverterComposite_conversionValuesGroupTitle = Conversion values
-ConversionValueDialog_addConversionValue = Add Conversion Value
-ConversionValueDialog_editConversionValue = Edit Conversion Value
-ConversionValueDialog_addConversionValueDescriptionTitle = Create new conversion value
-ConversionValueDialog_addConversionValueDescription = Create a new conversion value setting both the 'data value' and the 'object value'
-ConversionValueDialog_editConversionValueDescriptionTitle = Edit conversion value
-ConversionValueDialog_editConversionValueDescription = Edit the conversion value, changing the 'data value' or 'object value'
-
-ConversionValueDialog_dataValue = Data value:
-ConversionValueDialog_objectValue = Object value:
-ConversionValueStateObject_dataValueMustBeSpecified = A data value must be specified.
-ConversionValueStateObject_objectValueMustBeSpecified = An object value must be specified.
-ConversionValueStateObject_dataValueAlreadyExists = This data value is already specified, cannot map multiple object values to the same data value.
-
-
-PrivateOwnedComposite_privateOwnedLabel = Private owned
-ReadOnlyComposite_readOnlyLabel = Read-only
-ReadOnlyComposite_readOnlyWithDefault = Read-only ({0})
-TypeConverterComposite_dataTypeLabel = Data type:
-TypeConverterComposite_objectTypeLabel = Object type:
-
-DefaultOneToOneMappingUiProvider_label=Default (One to One)
-DefaultVariableOneToOneMappingUiProvider_label=Default (Variable One to One)
-DefaultOneToManyMappingUiProvider_label=Default (One to Many)
-DefaultOneToOneMappingUiProvider_linkLabel=default (one to one)
-DefaultVariableOneToOneMappingUiProvider_linkLabel=default (variable one to one)
-DefaultOneToManyMappingUiProvider_linkLabel=default (one to many)
-
-ConvertersComposite_Label=Converters
-	
-EclipseLinkConverterDialog_name=Name:
-EclipseLinkConverterDialog_converterType=Type:
-EclipseLinkConverterDialog_addConverter=Add Converter
-EclipseLinkConverterDialog_addConverterDescriptionTitle=Create new converter
-EclipseLinkConverterDialog_addConverterDescription=Create a new converter setting both the 'name' and the 'type'
-EclipseLinkConverterStateObject_nameMustBeSpecified = A name must be specified.
-EclipseLinkConverterStateObject_typeMustBeSpecified = A converter type must be specified.
-
diff --git a/jpa/plugins/org.eclipse.jpt.eclipselink.ui/src/org/eclipse/jpt/eclipselink/ui/JptEclipseLinkUiPlugin.java b/jpa/plugins/org.eclipse.jpt.eclipselink.ui/src/org/eclipse/jpt/eclipselink/ui/JptEclipseLinkUiPlugin.java
deleted file mode 100644
index d9b4802..0000000
--- a/jpa/plugins/org.eclipse.jpt.eclipselink.ui/src/org/eclipse/jpt/eclipselink/ui/JptEclipseLinkUiPlugin.java
+++ /dev/null
@@ -1,98 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008, 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- *******************************************************************************/
-package org.eclipse.jpt.eclipselink.ui;
-
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.core.runtime.Status;
-import org.eclipse.jface.resource.ImageDescriptor;
-import org.eclipse.swt.graphics.Image;
-import org.eclipse.ui.plugin.AbstractUIPlugin;
-import org.osgi.framework.BundleContext;
-
-/**
- * The activator class controls the plug-in life cycle
- * 
- * 
- * Provisional API: This interface is part of an interim API that is still
- * under development and expected to change significantly before reaching
- * stability. It is available at this early stage to solicit feedback from
- * pioneering adopters on the understanding that any code that uses this API
- * will almost certainly be broken (repeatedly) as the API evolves.
- */
-public class JptEclipseLinkUiPlugin extends AbstractUIPlugin
-{
-
-	// The plug-in ID
-	public static final String PLUGIN_ID = "org.eclipse.jpt.eclipselink.ui"; //$NON-NLS-1$
-
-	
-	// ********** singleton **********
-	private static JptEclipseLinkUiPlugin INSTANCE;
-
-	/**
-	 * Returns the singleton Plugin
-	 */
-	public static JptEclipseLinkUiPlugin instance() {
-		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));
-	}
-
-	// ********** Image API **********
-	/**
-	 * This gets a .gif from the icons folder.
-	 */
-	public static ImageDescriptor getImageDescriptor(String key) {
-		if (! key.startsWith("icons/")) {
-			key = "icons/" + key;
-		}
-		if (! key.endsWith(".gif")) {
-			key = key + ".gif";
-		}
-		return imageDescriptorFromPlugin(PLUGIN_ID, key);
-	}
-
-	/**
-	 * This returns an image for a .gif from the icons folder
-	 */
-	public static Image getImage(String key) {
-		ImageDescriptor desc = getImageDescriptor(key);
-		return (desc == null) ? null : desc.createImage();
-	}
-
-
-	
-	// ********** constructors **********
-	public JptEclipseLinkUiPlugin() {
-		super();
-		INSTANCE = this;
-	}
-
-	@Override
-	public void start(BundleContext context) throws Exception {
-		super.start(context);
-		INSTANCE = this;
-	}
-	@Override
-	public void stop(BundleContext context) throws Exception {
-		INSTANCE = null;
-		super.stop(context);
-	}
-}
diff --git a/jpa/plugins/org.eclipse.jpt.eclipselink.ui/src/org/eclipse/jpt/eclipselink/ui/internal/EclipseLink1_1JpaUiFactory.java b/jpa/plugins/org.eclipse.jpt.eclipselink.ui/src/org/eclipse/jpt/eclipselink/ui/internal/EclipseLink1_1JpaUiFactory.java
deleted file mode 100644
index 0ab503a..0000000
--- a/jpa/plugins/org.eclipse.jpt.eclipselink.ui/src/org/eclipse/jpt/eclipselink/ui/internal/EclipseLink1_1JpaUiFactory.java
+++ /dev/null
@@ -1,53 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- *******************************************************************************/
-package org.eclipse.jpt.eclipselink.ui.internal;
-
-import org.eclipse.jpt.core.context.java.JavaEmbeddable;
-import org.eclipse.jpt.core.context.java.JavaEntity;
-import org.eclipse.jpt.core.context.java.JavaMappedSuperclass;
-import org.eclipse.jpt.eclipselink.ui.internal.java.details.EclipseLink1_1JavaEmbeddableComposite;
-import org.eclipse.jpt.eclipselink.ui.internal.java.details.EclipseLink1_1JavaEntityComposite;
-import org.eclipse.jpt.eclipselink.ui.internal.java.details.EclipseLink1_1JavaMappedSuperclassComposite;
-import org.eclipse.jpt.ui.WidgetFactory;
-import org.eclipse.jpt.ui.details.JpaComposite;
-import org.eclipse.jpt.utility.model.value.PropertyValueModel;
-import org.eclipse.swt.widgets.Composite;
-
-public class EclipseLink1_1JpaUiFactory extends EclipseLinkJpaUiFactory //TODO just extend for now, but we need to change this to match the JpaPlatform
-{
-	public EclipseLink1_1JpaUiFactory() {
-		super();
-	}
-	
-	
-	
-	// **************** java type mapping composites ***************************
-	
-	@Override
-	public JpaComposite createJavaMappedSuperclassComposite(
-			PropertyValueModel<JavaMappedSuperclass> subjectHolder,
-			Composite parent, WidgetFactory widgetFactory) {
-		return new EclipseLink1_1JavaMappedSuperclassComposite(subjectHolder, parent, widgetFactory);
-	}
-	
-	@Override
-	public JpaComposite createJavaEntityComposite(
-			PropertyValueModel<JavaEntity> subjectHolder,
-			Composite parent, WidgetFactory widgetFactory) {
-		return new EclipseLink1_1JavaEntityComposite(subjectHolder, parent, widgetFactory);
-	}
-	
-	@Override
-	public JpaComposite createJavaEmbeddableComposite(
-			PropertyValueModel<JavaEmbeddable> subjectHolder,
-			Composite parent, WidgetFactory widgetFactory) {
-		return new EclipseLink1_1JavaEmbeddableComposite(subjectHolder, parent, widgetFactory);
-	}
-}
\ No newline at end of file
diff --git a/jpa/plugins/org.eclipse.jpt.eclipselink.ui/src/org/eclipse/jpt/eclipselink/ui/internal/EclipseLinkHelpContextIds.java b/jpa/plugins/org.eclipse.jpt.eclipselink.ui/src/org/eclipse/jpt/eclipselink/ui/internal/EclipseLinkHelpContextIds.java
deleted file mode 100644
index 3832c21..0000000
--- a/jpa/plugins/org.eclipse.jpt.eclipselink.ui/src/org/eclipse/jpt/eclipselink/ui/internal/EclipseLinkHelpContextIds.java
+++ /dev/null
@@ -1,57 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the terms of
- * the Eclipse Public License v1.0, which accompanies this distribution and is available at
- * http://www.eclipse.org/legal/epl-v10.html.
- *
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.eclipselink.ui.internal;
-
-import org.eclipse.jpt.ui.JptUiPlugin;
-
-/**
- * Help context ids for the Dali EclipseLink UI.
- * <p>
- * This interface contains constants only; it is not intended to be
- * implemented.
- * </p>
- */
-@SuppressWarnings("nls")
-public interface EclipseLinkHelpContextIds {
-
-	//ContextID prefix
-	public static final String PREFIX = JptUiPlugin.PLUGIN_ID + ".";
-
-	//Persistent Type composites
-	public static final String CACHING_ALWAYS_REFRESH = PREFIX + "caching_alwaysRefresh";
-	public static final String CACHING_CACHE_COORDINATION_TYPE = PREFIX + "caching_cacheCoordinationType";
-	public static final String CACHING_CACHE_TYPE = PREFIX + "caching_cacheType";
-	public static final String CACHING_DISABLE_HITS = PREFIX + "caching_disableHits";
-	public static final String CACHING_REFRESH_ONLY_IF_NEWER = PREFIX + "caching_refreshOnlyIfNewer";
-	public static final String CACHING_SHARED = PREFIX + "caching_shared";
-
-	//Persistence Xml Editor
-	public static final String PERSISTENCE_CACHING = PREFIX + "persistence_caching";
-	public static final String PERSISTENCE_CUSTOMIZATION = PREFIX + "persistence_customization";
-	public static final String PERSISTENCE_LOGGING = PREFIX + "persistence_logging";
-	public static final String PERSISTENCE_OPTIONS = PREFIX + "persistence_options";
-	public static final String PERSISTENCE_SCHEMA_GENERATION = PREFIX + "persistence_schemaGeneration";
-
-	public static final String PERSISTENCE_CACHING_DEFAULT_SHARED = PREFIX + "caching_defaultShared";
-	public static final String PERSISTENCE_CACHING_DEFAULT_SIZE = PREFIX + "caching_defaultSize";
-	public static final String PERSISTENCE_CACHING_DEFAULT_TYPE = PREFIX + "caching_defaultType";
-	
-	public static final String PERSISTENCE_LOGGING_EXCEPTIONS = PREFIX + "logging_exceptions";
-	public static final String PERSISTENCE_LOGGING_LEVEL = PREFIX + "logging_level";
-	public static final String PERSISTENCE_LOGGING_SESSION = PREFIX + "logging_session";
-	public static final String PERSISTENCE_LOGGING_THREAD = PREFIX + "logging_thread";
-	public static final String PERSISTENCE_LOGGING_TIMESTAMP = PREFIX + "logging_timeStamp";
-	
-	public static final String PERSISTENCE_OPTIONS_SESSION_NAME = PREFIX + "options_sessionName";
-	public static final String PERSISTENCE_OPTIONS_SESSIONS_XML = PREFIX + "options_sessionsXml";
-	public static final String PERSISTENCE_OPTIONS_TARGET_DATABASE = PREFIX + "options_targetDatabase";
-	public static final String PERSISTENCE_OPTIONS_TARGET_SERVER = PREFIX + "options_targetServer";
-
-}
diff --git a/jpa/plugins/org.eclipse.jpt.eclipselink.ui/src/org/eclipse/jpt/eclipselink/ui/internal/EclipseLinkJpaUiFactory.java b/jpa/plugins/org.eclipse.jpt.eclipselink.ui/src/org/eclipse/jpt/eclipselink/ui/internal/EclipseLinkJpaUiFactory.java
deleted file mode 100644
index f6600f0..0000000
--- a/jpa/plugins/org.eclipse.jpt.eclipselink.ui/src/org/eclipse/jpt/eclipselink/ui/internal/EclipseLinkJpaUiFactory.java
+++ /dev/null
@@ -1,262 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008, 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- *******************************************************************************/
-package org.eclipse.jpt.eclipselink.ui.internal;
-
-import java.util.ArrayList;
-import java.util.ListIterator;
-import org.eclipse.jpt.core.context.java.JavaBasicMapping;
-import org.eclipse.jpt.core.context.java.JavaEmbeddable;
-import org.eclipse.jpt.core.context.java.JavaEntity;
-import org.eclipse.jpt.core.context.java.JavaIdMapping;
-import org.eclipse.jpt.core.context.java.JavaManyToManyMapping;
-import org.eclipse.jpt.core.context.java.JavaManyToOneMapping;
-import org.eclipse.jpt.core.context.java.JavaMappedSuperclass;
-import org.eclipse.jpt.core.context.java.JavaOneToManyMapping;
-import org.eclipse.jpt.core.context.java.JavaOneToOneMapping;
-import org.eclipse.jpt.core.context.java.JavaVersionMapping;
-import org.eclipse.jpt.core.context.persistence.PersistenceUnit;
-import org.eclipse.jpt.eclipselink.core.internal.context.java.EclipseLinkJavaOneToManyMapping;
-import org.eclipse.jpt.eclipselink.core.internal.context.persistence.EclipseLinkPersistenceUnit;
-import org.eclipse.jpt.eclipselink.core.internal.context.persistence.caching.Caching;
-import org.eclipse.jpt.eclipselink.core.internal.context.persistence.connection.Connection;
-import org.eclipse.jpt.eclipselink.core.internal.context.persistence.customization.Customization;
-import org.eclipse.jpt.eclipselink.core.internal.context.persistence.logging.Logging;
-import org.eclipse.jpt.eclipselink.core.internal.context.persistence.options.Options;
-import org.eclipse.jpt.eclipselink.core.internal.context.persistence.schema.generation.SchemaGeneration;
-import org.eclipse.jpt.eclipselink.ui.internal.java.details.EclipseLinkJavaEmbeddableComposite;
-import org.eclipse.jpt.eclipselink.ui.internal.java.details.EclipseLinkJavaEntityComposite;
-import org.eclipse.jpt.eclipselink.ui.internal.java.details.EclipseLinkJavaMappedSuperclassComposite;
-import org.eclipse.jpt.eclipselink.ui.internal.mappings.details.EclipseLinkBasicMappingComposite;
-import org.eclipse.jpt.eclipselink.ui.internal.mappings.details.EclipseLinkIdMappingComposite;
-import org.eclipse.jpt.eclipselink.ui.internal.mappings.details.EclipseLinkManyToManyMappingComposite;
-import org.eclipse.jpt.eclipselink.ui.internal.mappings.details.EclipseLinkManyToOneMappingComposite;
-import org.eclipse.jpt.eclipselink.ui.internal.mappings.details.EclipseLinkOneToManyMappingComposite;
-import org.eclipse.jpt.eclipselink.ui.internal.mappings.details.EclipseLinkOneToOneMappingComposite;
-import org.eclipse.jpt.eclipselink.ui.internal.mappings.details.EclipseLinkVersionMappingComposite;
-import org.eclipse.jpt.eclipselink.ui.internal.persistence.caching.PersistenceXmlCachingTab;
-import org.eclipse.jpt.eclipselink.ui.internal.persistence.connection.PersistenceXmlConnectionTab;
-import org.eclipse.jpt.eclipselink.ui.internal.persistence.customization.PersistenceXmlCustomizationTab;
-import org.eclipse.jpt.eclipselink.ui.internal.persistence.general.EclipseLinkPersistenceUnitGeneralComposite;
-import org.eclipse.jpt.eclipselink.ui.internal.persistence.logging.PersistenceXmlLoggingTab;
-import org.eclipse.jpt.eclipselink.ui.internal.persistence.options.PersistenceXmlOptionsTab;
-import org.eclipse.jpt.eclipselink.ui.internal.persistence.schema.generation.PersistenceXmlSchemaGenerationTab;
-import org.eclipse.jpt.ui.WidgetFactory;
-import org.eclipse.jpt.ui.details.JpaComposite;
-import org.eclipse.jpt.ui.details.JpaPageComposite;
-import org.eclipse.jpt.ui.internal.BaseJpaUiFactory;
-import org.eclipse.jpt.ui.internal.persistence.details.PersistenceUnitPropertiesComposite;
-import org.eclipse.jpt.utility.internal.model.value.TransformationPropertyValueModel;
-import org.eclipse.jpt.utility.model.value.PropertyValueModel;
-import org.eclipse.swt.widgets.Composite;
-
-public class EclipseLinkJpaUiFactory extends BaseJpaUiFactory
-{
-	public EclipseLinkJpaUiFactory() {
-		super();
-	}
-	
-	
-	// **************** persistence unit composites ****************************
-	
-	@Override
-	public ListIterator<JpaPageComposite> createPersistenceUnitComposites(
-						PropertyValueModel<PersistenceUnit> subjectHolder,
-						Composite parent,
-						WidgetFactory widgetFactory) {
-		
-		PropertyValueModel<EclipseLinkPersistenceUnit> eclipseLinkPersistenceUnitHolder = 
-			this.buildEclipseLinkPersistenceUnitHolder(subjectHolder);
-		ArrayList<JpaPageComposite> pages = 
-			new ArrayList<JpaPageComposite>(8);
-
-		pages.add(new EclipseLinkPersistenceUnitGeneralComposite(eclipseLinkPersistenceUnitHolder, parent, widgetFactory));
-		
-		PropertyValueModel<Connection> connectionHolder = 
-			this.buildConnectionHolder(eclipseLinkPersistenceUnitHolder);
-		pages.add(new PersistenceXmlConnectionTab(connectionHolder, parent, widgetFactory));
-		
-		PropertyValueModel<Customization> customizationHolder = 
-			this.buildCustomizationHolder(eclipseLinkPersistenceUnitHolder);
-		pages.add(new PersistenceXmlCustomizationTab(customizationHolder, parent, widgetFactory));
-		
-		PropertyValueModel<Caching> cachingHolder = 
-			this.buildCachingHolder(eclipseLinkPersistenceUnitHolder);
-		pages.add(new PersistenceXmlCachingTab(cachingHolder, parent, widgetFactory));
-		
-		PropertyValueModel<Logging> loggingHolder = 
-			this.buildLoggingHolder(eclipseLinkPersistenceUnitHolder);
-		pages.add(new PersistenceXmlLoggingTab(loggingHolder, parent, widgetFactory));
-
-		PropertyValueModel<Options> optionsHolder = 
-			this.buildOptionsHolder(eclipseLinkPersistenceUnitHolder);
-		pages.add(new PersistenceXmlOptionsTab(optionsHolder, parent, widgetFactory));
-		
-		PropertyValueModel<SchemaGeneration> schemaGenHolder = 
-			this.buildSchemaGenerationHolder(eclipseLinkPersistenceUnitHolder);
-		pages.add(new PersistenceXmlSchemaGenerationTab(schemaGenHolder, parent, widgetFactory));
-		
-		pages.add(new PersistenceUnitPropertiesComposite(subjectHolder, parent, widgetFactory));
-		
-		return pages.listIterator();
-	}
-	
-	private PropertyValueModel<EclipseLinkPersistenceUnit> buildEclipseLinkPersistenceUnitHolder(
-				PropertyValueModel<PersistenceUnit> subjectHolder) {
-		return new TransformationPropertyValueModel<PersistenceUnit, EclipseLinkPersistenceUnit>(subjectHolder) {
-			@Override
-			protected EclipseLinkPersistenceUnit transform_(PersistenceUnit value) {
-				return (EclipseLinkPersistenceUnit) value;
-			}
-		};
-	}
-	
-	private PropertyValueModel<Connection> buildConnectionHolder(
-				PropertyValueModel<EclipseLinkPersistenceUnit> subjectHolder) {
-		return new TransformationPropertyValueModel<EclipseLinkPersistenceUnit, Connection>(subjectHolder) {
-			@Override
-			protected Connection transform_(EclipseLinkPersistenceUnit value) {
-				return value.getConnection();
-			}
-		};
-	}
-	
-	private PropertyValueModel<Customization> buildCustomizationHolder(
-				PropertyValueModel<EclipseLinkPersistenceUnit> subjectHolder) {
-		return new TransformationPropertyValueModel<EclipseLinkPersistenceUnit, Customization>(subjectHolder) {
-			@Override
-			protected Customization transform_(EclipseLinkPersistenceUnit value) {
-				return value.getCustomization();
-			}
-		};
-	}
-	
-	private PropertyValueModel<Caching> buildCachingHolder(
-				PropertyValueModel<EclipseLinkPersistenceUnit> subjectHolder) {
-		return new TransformationPropertyValueModel<EclipseLinkPersistenceUnit, Caching>(subjectHolder) {
-			@Override
-			protected Caching transform_(EclipseLinkPersistenceUnit value) {
-				return value.getCaching();
-			}
-		};
-	}
-	
-	private PropertyValueModel<Logging> buildLoggingHolder(
-				PropertyValueModel<EclipseLinkPersistenceUnit> subjectHolder) {
-		return new TransformationPropertyValueModel<EclipseLinkPersistenceUnit, Logging>(subjectHolder) {
-			@Override
-			protected Logging transform_(EclipseLinkPersistenceUnit value) {
-				return value.getLogging();
-			}
-		};
-	}
-	
-	private PropertyValueModel<Options> buildOptionsHolder(
-				PropertyValueModel<EclipseLinkPersistenceUnit> subjectHolder) {
-		return new TransformationPropertyValueModel<EclipseLinkPersistenceUnit, Options>(subjectHolder) {
-			@Override
-			protected Options transform_(EclipseLinkPersistenceUnit value) {
-				return value.getOptions();
-			}
-		};
-	}
-	
-	private PropertyValueModel<SchemaGeneration> buildSchemaGenerationHolder(
-				PropertyValueModel<EclipseLinkPersistenceUnit> subjectHolder) {
-		return new TransformationPropertyValueModel<EclipseLinkPersistenceUnit, SchemaGeneration>(subjectHolder) {
-			@Override
-			protected SchemaGeneration transform_(EclipseLinkPersistenceUnit value) {
-				return value.getSchemaGeneration();
-			}
-		};
-	}
-	
-	
-	// **************** java type mapping composites ***************************
-	
-	@Override
-	public JpaComposite createJavaMappedSuperclassComposite(
-			PropertyValueModel<JavaMappedSuperclass> subjectHolder,
-			Composite parent, WidgetFactory widgetFactory) {
-		return new EclipseLinkJavaMappedSuperclassComposite(subjectHolder, parent, widgetFactory);
-	}
-	
-	@Override
-	public JpaComposite createJavaEntityComposite(
-			PropertyValueModel<JavaEntity> subjectHolder,
-			Composite parent, WidgetFactory widgetFactory) {
-		return new EclipseLinkJavaEntityComposite(subjectHolder, parent, widgetFactory);
-	}
-	
-	@Override
-	public JpaComposite createJavaEmbeddableComposite(
-			PropertyValueModel<JavaEmbeddable> subjectHolder,
-			Composite parent, WidgetFactory widgetFactory) {
-		return new EclipseLinkJavaEmbeddableComposite(subjectHolder, parent, widgetFactory);
-	}
-	
-	
-	// **************** java attribute mapping composites **********************
-	
-	@Override
-	public JpaComposite createJavaIdMappingComposite(
-			PropertyValueModel<JavaIdMapping> subjectHolder,
-			Composite parent,
-			WidgetFactory widgetFactory) {
-		return new EclipseLinkIdMappingComposite(subjectHolder, parent, widgetFactory);
-	}
-	
-	@Override
-	public JpaComposite createJavaBasicMappingComposite(
-			PropertyValueModel<JavaBasicMapping> subjectHolder,
-			Composite parent,
-			WidgetFactory widgetFactory) {
-		return new EclipseLinkBasicMappingComposite(subjectHolder, parent, widgetFactory);
-	}
-	
-	@Override
-	public JpaComposite createJavaVersionMappingComposite(
-			PropertyValueModel<JavaVersionMapping> subjectHolder,
-			Composite parent,
-			WidgetFactory widgetFactory) {
-		return new EclipseLinkVersionMappingComposite(subjectHolder, parent, widgetFactory);
-	}
-	
-	@Override
-	public JpaComposite createJavaManyToOneMappingComposite(
-			PropertyValueModel<JavaManyToOneMapping> subjectHolder, 
-			Composite parent, 
-			WidgetFactory widgetFactory) {
-		return new EclipseLinkManyToOneMappingComposite(subjectHolder, parent, widgetFactory);
-	}
-	
-	@Override
-	public JpaComposite createJavaOneToManyMappingComposite(
-			PropertyValueModel<? extends JavaOneToManyMapping> subjectHolder, 
-			Composite parent, 
-			WidgetFactory widgetFactory) {
-		return new EclipseLinkOneToManyMappingComposite((PropertyValueModel<EclipseLinkJavaOneToManyMapping>) subjectHolder, parent, widgetFactory);
-	}
-	
-	@Override
-	public JpaComposite createJavaOneToOneMappingComposite(
-			PropertyValueModel<JavaOneToOneMapping> subjectHolder, 
-			Composite parent, 
-			WidgetFactory widgetFactory) {
-		return new EclipseLinkOneToOneMappingComposite(subjectHolder, parent, widgetFactory);
-	}
-	
-	@Override
-	public JpaComposite createJavaManyToManyMappingComposite(
-			PropertyValueModel<JavaManyToManyMapping> subjectHolder, 
-			Composite parent, 
-			WidgetFactory widgetFactory) {
-		return new EclipseLinkManyToManyMappingComposite(subjectHolder, parent, widgetFactory);
-	}	
-}
\ No newline at end of file
diff --git a/jpa/plugins/org.eclipse.jpt.eclipselink.ui/src/org/eclipse/jpt/eclipselink/ui/internal/EclipseLinkUiMessages.java b/jpa/plugins/org.eclipse.jpt.eclipselink.ui/src/org/eclipse/jpt/eclipselink/ui/internal/EclipseLinkUiMessages.java
deleted file mode 100644
index 76ba93a..0000000
--- a/jpa/plugins/org.eclipse.jpt.eclipselink.ui/src/org/eclipse/jpt/eclipselink/ui/internal/EclipseLinkUiMessages.java
+++ /dev/null
@@ -1,354 +0,0 @@
-/*******************************************************************************
-* Copyright (c) 2007, 2008 Oracle. All rights reserved.
-* This program and the accompanying materials are made available under the
-* terms of the Eclipse Public License v1.0, which accompanies this distribution
-* and is available at http://www.eclipse.org/legal/epl-v10.html.
-*
-* Contributors:
-*     Oracle - initial API and implementation
-*******************************************************************************/
-package org.eclipse.jpt.eclipselink.ui.internal;
-
-import org.eclipse.osgi.util.NLS;
-
-/**
- * Localized messages used by ElipseLink UI.
- */
-public class EclipseLinkUiMessages {
-
-	public static String MappingFileWizard_title;
-	public static String MappingFileWizardPage_title;
-	public static String MappingFileWizardPage_desc;
-	
-	public static String EclipseLink1_1MappingFileWizard_title;
-	public static String EclipseLink1_1MappingFileWizardPage_title;
-	public static String EclipseLink1_1MappingFileWizardPage_desc;
-
-	public static String Boolean_True;
-	public static String Boolean_False;
-
-	public static String DefaultWithoutValue;
-	public static String DefaultWithValue;
-
-	public static String PersistenceXmlTabFolder_defaultEmpty;
-	public static String PersistenceXmlTabFolder_defaultWithOneParam;
-
-	public static String PersistenceXmlGeneralTab_name;
-	public static String PersistenceXmlGeneralTab_provider;
-	public static String PersistenceXmlGeneralTab_browse;
-	public static String PersistenceXmlGeneralTab_description;
-
-	// General
-	public static String PersistenceXmlGeneralTab_title;
-	public static String PersistenceXmlGeneralTab_generalSectionTitle;
-	public static String PersistenceXmlGeneralTab_mappedClassesSectionTitle;
-	public static String PersistenceXmlGeneralTab_mappedClassesSectionDescription;
-	public static String PersistenceXmlGeneralTab_xmlMappingFilesSectionTitle;
-	public static String PersistenceXmlGeneralTab_xmlMappingFilesSectionDescription;
-	
-	public static String PersistenceXmlGeneralTab_nameLabel;
-	public static String PersistenceXmlGeneralTab_persistenceProviderLabel;
-	public static String PersistenceXmlGeneralTab_descriptionLabel;
-	
-	public static String PersistenceXmlGeneralTab_excludeUnlistedMappedClasses;
-	public static String PersistenceXmlGeneralTab_excludeUnlistedMappedClassesWithDefault;
-	public static String PersistenceXmlGeneralTab_mappedClassesNoName;
-	public static String PersistenceXmlGeneralTab_open;
-	
-	public static String PersistenceXmlGeneralTab_xmlMappingFilesDialog_title;
-	public static String PersistenceXmlGeneralTab_xmlMappingFilesDialog_message;
-	public static String PersistenceXmlGeneralTab_ormNoName;
-	public static String PersistenceXmlGeneralTab_excludeEclipselinkOrm;
-	public static String PersistenceXmlGeneralTab_excludeEclipselinkOrmWithDefault;
-
-	// Connection
-	public static String PersistenceXmlConnectionTab_title;
-	public static String PersistenceXmlConnectionTab_sectionTitle;
-	public static String PersistenceXmlConnectionTab_sectionDescription;
-	public static String PersistenceXmlConnectionTab_defaultWithOneParam;
-	public static String PersistenceXmlConnectionTab_defaultEmpty;
-
-	public static String PersistenceXmlConnectionTab_transactionTypeLabel;
-
-	public static String ConnectionPropertiesComposite_Database_GroupBox;
-
-	public static String JdbcPropertiesComposite_EclipseLinkConnectionPool_GroupBox;
-
-	public static String JdbcConnectionPropertiesComposite_ConnectionDialog_Message;
-	public static String JdbcConnectionPropertiesComposite_ConnectionDialog_Title;
-
-	public static String TransactionTypeComposite_jta;
-	public static String TransactionTypeComposite_resource_local;
-
-	public static String PersistenceXmlConnectionTab_nativeSqlLabel;
-	public static String PersistenceXmlConnectionTab_nativeSqlLabelDefault;
-
-	public static String PersistenceXmlConnectionTab_batchWritingLabel;
-
-	public static String BatchWritingComposite_none;
-	public static String BatchWritingComposite_jdbc;
-	public static String BatchWritingComposite_buffered;
-	public static String BatchWritingComposite_oracle_jdbc;
-
-	public static String PersistenceXmlConnectionTab_cacheStatementsLabel;
-
-	public static String PersistenceXmlConnectionTab_jtaDataSourceLabel;
-	public static String PersistenceXmlConnectionTab_nonJtaDataSourceLabel;
-
-	public static String PersistenceXmlConnectionTab_driverLabel;
-	public static String PersistenceXmlConnectionTab_urlLabel;
-	public static String PersistenceXmlConnectionTab_userLabel;
-	public static String PersistenceXmlConnectionTab_passwordLabel;
-	public static String PersistenceXmlConnectionTab_bindParametersLabel;
-	public static String PersistenceXmlConnectionTab_bindParametersLabelDefault;
-
-	public static String PersistenceXmlConnectionTab_readConnectionsSharedLabel;
-	public static String PersistenceXmlConnectionTab_readConnectionsSharedLabelDefault;
-	public static String PersistenceXmlConnectionTab_readConnectionsSectionTitle;
-	public static String PersistenceXmlConnectionTab_readConnectionsMinLabel;
-	public static String PersistenceXmlConnectionTab_readConnectionsMaxLabel;
-	public static String PersistenceXmlConnectionTab_writeConnectionsSectionTitle;
-	public static String PersistenceXmlConnectionTab_writeConnectionsMinLabel;
-	public static String PersistenceXmlConnectionTab_writeConnectionsMaxLabel;
-
-	// SchemaGeneration
-	public static String PersistenceXmlSchemaGenerationTab_title;
-	public static String PersistenceXmlSchemaGenerationTab_sectionTitle;
-	public static String PersistenceXmlSchemaGenerationTab_sectionDescription;
-	public static String PersistenceXmlSchemaGenerationTab_defaultWithOneParam;
-	public static String PersistenceXmlSchemaGenerationTab_defaultEmpty;
-
-	public static String PersistenceXmlSchemaGenerationTab_ddlGenerationTypeLabel;
-	public static String PersistenceXmlSchemaGenerationTab_outputModeLabel;
-
-	public static String PersistenceXmlSchemaGenerationTab_createDdlFileNameLabel;
-	public static String PersistenceXmlSchemaGenerationTab_dropDdlFileNameLabel;
-
-	public static String OutputModeComposite_both;
-	public static String OutputModeComposite_sql_script;
-	public static String OutputModeComposite_database;
-
-	public static String DdlGenerationTypeComposite_none;
-	public static String DdlGenerationTypeComposite_create_tables;
-	public static String DdlGenerationTypeComposite_drop_and_create_tables;
-
-	public static String PersistenceXmlSchemaGenerationTab_ddlGenerationLocationLabel;
-
-	public static String DdlGenerationLocationComposite_dialogTitle;
-	public static String DdlGenerationLocationComposite_dialogMessage;
-
-	// Caching
-	public static String PersistenceXmlCachingTab_title;
-	public static String PersistenceXmlCachingTab_sectionTitle;
-	public static String PersistenceXmlCachingTab_sectionDescription;
-
-	public static String PersistenceXmlCachingTab_defaultCacheTypeLabel;
-	public static String PersistenceXmlCachingTab_cacheTypeLabel;
-
-	public static String PersistenceXmlCachingTab_defaultSharedCacheLabel;
-	public static String PersistenceXmlCachingTab_sharedCacheLabel;
-
-	public static String PersistenceXmlCachingTab_defaultSharedCacheDefaultLabel;
-	public static String PersistenceXmlCachingTab_sharedCacheDefaultLabel;
-
-	public static String CacheSizeComposite_cacheSize;
-
-	public static String CacheTypeComposite_full;
-	public static String CacheTypeComposite_hard_weak;
-	public static String CacheTypeComposite_none;
-	public static String CacheTypeComposite_soft;
-	public static String CacheTypeComposite_soft_weak;
-	public static String CacheTypeComposite_weak;
-
-	public static String DefaultCacheSizeComposite_defaultCacheSize;
-
-	public static String DefaultCacheTypeComposite_full;
-	public static String DefaultCacheTypeComposite_hard_weak;
-	public static String DefaultCacheTypeComposite_none;
-	public static String DefaultCacheTypeComposite_soft;
-	public static String DefaultCacheTypeComposite_soft_weak;
-	public static String DefaultCacheTypeComposite_weak;
-
-	public static String EntityDialog_selectEntity;
-	public static String EntityDialog_name;
-
-	public static String CachingEntityListComposite_groupTitle;
-	public static String CachingEntityListComposite_editButton;
-
-	public static String CachingEntityListComposite_dialogMessage;
-	public static String CachingEntityListComposite_dialogTitle;
-
-	public static String PersistenceXmlCachingTab_FlushClearCacheLabel;
-	
-	public static String FlushClearCacheComposite_drop;
-	public static String FlushClearCacheComposite_drop_invalidate;
-	public static String FlushClearCacheComposite_merge;
-	
-	// Customization
-	public static String PersistenceXmlCustomizationTab_title;
-	public static String PersistenceXmlCustomizationTab_sectionTitle;
-	public static String PersistenceXmlCustomizationTab_sectionDescription;
-	public static String PersistenceXmlCustomizationTab_defaultWithOneParam;
-
-	public static String PersistenceXmlCustomizationTab_weavingLabel;
-
-	public static String PersistenceXmlCustomizationTab_weavingLazyLabelDefault;
-	public static String PersistenceXmlCustomizationTab_weavingLazyLabel;
-
-	public static String PersistenceXmlCustomizationTab_weavingChangeTrackingLabelDefault;
-	public static String PersistenceXmlCustomizationTab_weavingChangeTrackingLabel;
-
-	public static String PersistenceXmlCustomizationTab_weavingFetchGroupsLabelDefault;
-	public static String PersistenceXmlCustomizationTab_weavingFetchGroupsLabel;
-
-	public static String PersistenceXmlCustomizationTab_weavingInternalLabelDefault;
-	public static String PersistenceXmlCustomizationTab_weavingInternalLabel;
-
-	public static String PersistenceXmlCustomizationTab_weavingEagerLabelDefault;
-	public static String PersistenceXmlCustomizationTab_weavingEagerLabel;
-	public static String PersistenceXmlCustomizationTab_defaultEmpty;
-	
-	public static String PersistenceXmlCustomizationTab_throwExceptionsLabelDefault;
-	public static String PersistenceXmlCustomizationTab_throwExceptionsLabel;
-	
-	public static String PersistenceXmlCustomizationTab_exceptionHandlerLabel;
-
-	public static String WeavingComposite_true_;
-	public static String WeavingComposite_false_;
-	public static String WeavingComposite_static_;
-
-	public static String CustomizationEntityListComposite_groupTitle;
-	public static String CustomizationEntityListComposite_editButton;
-
-	public static String CustomizationEntityListComposite_dialogMessage;
-	public static String CustomizationEntityListComposite_dialogTitle;
-	
-	public static String PersistenceXmlCustomizationTab_customizerLabel;
-	public static String PersistenceXmlCustomizationTab_sessionCustomizerLabel;
-	public static String PersistenceXmlCustomizationTab_noName;
-
-	public static String PersistenceXmlCustomizationTab_validationOnlyLabel;
-	public static String PersistenceXmlCustomizationTab_validationOnlyLabelDefault;
-	
-	public static String PersistenceXmlCustomizationTab_profilerLabel;
-	public static String PersistenceXmlCustomizationTab_browse;
-	
-	public static String ProfilerComposite_performance_profiler;
-	public static String ProfilerComposite_query_monitor;
-	public static String ProfilerComposite_no_profiler;
-
-	// Logging
-	public static String PersistenceXmlLoggingTab_title;
-	public static String PersistenceXmlLoggingTab_sectionTitle;
-	public static String PersistenceXmlLoggingTab_sectionDescription;
-	public static String PersistenceXmlLoggingTab_defaultWithOneParam;
-	public static String PersistenceXmlLoggingTab_defaultEmpty;
-
-	public static String PersistenceXmlLoggingTab_loggingLevelLabel;
-
-	public static String LoggingLevelComposite_off;
-	public static String LoggingLevelComposite_severe;
-	public static String LoggingLevelComposite_warning;
-	public static String LoggingLevelComposite_info;
-	public static String LoggingLevelComposite_config;
-	public static String LoggingLevelComposite_fine;
-	public static String LoggingLevelComposite_finer;
-	public static String LoggingLevelComposite_finest;
-	public static String LoggingLevelComposite_all;
-
-	public static String PersistenceXmlLoggingTab_loggerLabel;
-	public static String PersistenceXmlLoggingTab_browse;
-
-	public static String LoggerComposite_default_logger;
-	public static String LoggerComposite_java_logger;
-	public static String LoggerComposite_server_logger;
-
-	public static String PersistenceXmlLoggingTab_timestampLabel;
-	public static String PersistenceXmlLoggingTab_timestampLabelDefault;
-	public static String PersistenceXmlLoggingTab_threadLabel;
-	public static String PersistenceXmlLoggingTab_threadLabelDefault;
-	public static String PersistenceXmlLoggingTab_sessionLabel;
-	public static String PersistenceXmlLoggingTab_sessionLabelDefault;
-	public static String PersistenceXmlLoggingTab_exceptionsLabel;
-	public static String PersistenceXmlLoggingTab_exceptionsLabelDefault;
-	
-	public static String PersistenceXmlLoggingTab_loggersLabel;
-	public static String PersistenceXmlLoggingTab_loggingFileLabel;
-
-	public static String LoggingFileLocationComposite_dialogTitle;
-	public static String LoggingFileLocationComposite_dialogMessage;
-
-	// Session Options
-	public static String PersistenceXmlOptionsTab_title;
-	public static String PersistenceXmlOptionsTab_sessionSectionTitle;
-	public static String PersistenceXmlOptionsTab_sessionSectionDescription;
-	public static String PersistenceXmlOptionsTab_defaultWithOneParam;
-	public static String PersistenceXmlOptionsTab_defaultEmpty;
-
-	public static String PersistenceXmlOptionsTab_sessionName;
-	public static String PersistenceXmlOptionsTab_sessionsXml;
-
-	public static String PersistenceXmlOptionsTab_includeDescriptorQueriesLabel;
-	public static String PersistenceXmlOptionsTab_includeDescriptorQueriesLabelDefault;
-
-	public static String PersistenceXmlOptionsTab_eventListenerLabel;
-	public static String PersistenceXmlOptionsTab_targetDatabaseLabel;
-	
-	public static String PersistenceXmlOptionsTab_miscellaneousSectionTitle;
-	public static String PersistenceXmlOptionsTab_miscellaneousSectionDescription;
-	
-	public static String PersistenceXmlOptionsTab_temporalMutableLabel;
-	public static String PersistenceXmlOptionsTab_temporalMutableLabelDefault;
-
-	public static String TargetDatabaseComposite_attunity;
-	public static String TargetDatabaseComposite_auto;
-	public static String TargetDatabaseComposite_cloudscape;
-	public static String TargetDatabaseComposite_database;
-	public static String TargetDatabaseComposite_db2;
-	public static String TargetDatabaseComposite_db2mainframe;
-	public static String TargetDatabaseComposite_dbase;
-	public static String TargetDatabaseComposite_derby;
-	public static String TargetDatabaseComposite_hsql;
-	public static String TargetDatabaseComposite_informix;
-	public static String TargetDatabaseComposite_javadb;
-	public static String TargetDatabaseComposite_mysql;
-	public static String TargetDatabaseComposite_oracle;
-	public static String TargetDatabaseComposite_oracle11;
-	public static String TargetDatabaseComposite_oracle10;
-	public static String TargetDatabaseComposite_oracle9;
-	public static String TargetDatabaseComposite_oracle8;
-	public static String TargetDatabaseComposite_pointbase;
-	public static String TargetDatabaseComposite_postgresql;
-	public static String TargetDatabaseComposite_sqlanywhere;
-	public static String TargetDatabaseComposite_sqlserver;
-	public static String TargetDatabaseComposite_sybase;
-	public static String TargetDatabaseComposite_timesten;
-	   
-	public static String PersistenceXmlOptionsTab_targetServerLabel;
-
-	public static String TargetServerComposite_none;
-	public static String TargetServerComposite_oc4j;
-	public static String TargetServerComposite_sunas9;
-	public static String TargetServerComposite_websphere;
-	public static String TargetServerComposite_websphere_6_1;
-	public static String TargetServerComposite_weblogic;
-	public static String TargetServerComposite_weblogic_9;
-	public static String TargetServerComposite_weblogic_10;
-	public static String TargetServerComposite_jboss;
-
-	// DDL Generation
-	public static String EclipseLinkDDLGeneratorUi_generatingDDLWarningTitle;
-	public static String EclipseLinkDDLGeneratorUi_generatingDDLWarningMessage;
-	public static String EclipseLinkDDLGeneratorUi_error;
-
-	private static final String BUNDLE_NAME = "eclipselink_ui"; //$NON-NLS-1$
-	private static final Class<?> BUNDLE_CLASS = EclipseLinkUiMessages.class;
-	static {
-		NLS.initializeMessages(BUNDLE_NAME, BUNDLE_CLASS);
-	}
-	
-	private EclipseLinkUiMessages() {
-		throw new UnsupportedOperationException();
-	}
-
-}
diff --git a/jpa/plugins/org.eclipse.jpt.eclipselink.ui/src/org/eclipse/jpt/eclipselink/ui/internal/ddlgen/EclipseLinkDDLGeneratorUi.java b/jpa/plugins/org.eclipse.jpt.eclipselink.ui/src/org/eclipse/jpt/eclipselink/ui/internal/ddlgen/EclipseLinkDDLGeneratorUi.java
deleted file mode 100644
index e8b25cb..0000000
--- a/jpa/plugins/org.eclipse.jpt.eclipselink.ui/src/org/eclipse/jpt/eclipselink/ui/internal/ddlgen/EclipseLinkDDLGeneratorUi.java
+++ /dev/null
@@ -1,167 +0,0 @@
-/*******************************************************************************
-* Copyright (c) 2007, 2008 Oracle. All rights reserved.
-* This program and the accompanying materials are made available under the
-* terms of the Eclipse Public License v1.0, which accompanies this distribution
-* and is available at http://www.eclipse.org/legal/epl-v10.html.
-* 
-* Contributors:
-*     Oracle - initial API and implementation
-*******************************************************************************/
-package org.eclipse.jpt.eclipselink.ui.internal.ddlgen;
-
-import java.util.Iterator;
-
-import org.eclipse.core.resources.IWorkspaceRunnable;
-import org.eclipse.core.resources.ResourcesPlugin;
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.core.runtime.NullProgressMonitor;
-import org.eclipse.core.runtime.OperationCanceledException;
-import org.eclipse.jface.dialogs.MessageDialog;
-import org.eclipse.jface.window.Window;
-import org.eclipse.jface.wizard.WizardDialog;
-import org.eclipse.jpt.core.JpaPlatform;
-import org.eclipse.jpt.core.JpaProject;
-import org.eclipse.jpt.core.context.persistence.Persistence;
-import org.eclipse.jpt.core.context.persistence.PersistenceUnit;
-import org.eclipse.jpt.eclipselink.core.internal.ddlgen.EclipseLinkDDLGenerator;
-import org.eclipse.jpt.eclipselink.ui.internal.EclipseLinkUiMessages;
-import org.eclipse.jpt.eclipselink.ui.internal.ddlgen.wizards.GenerateDDLWizard;
-import org.eclipse.jpt.utility.internal.StringTools;
-import org.eclipse.swt.widgets.Display;
-import org.eclipse.swt.widgets.Shell;
-
-/**
- *  EclipseLinkDLLGeneratorUi is used by the EclipseLinkPlatformUi to initiate 
- *  the execution of EclipseLink DDL generator.
- */
-public class EclipseLinkDDLGeneratorUi
-{
-	private final JpaProject project;
-	private static final String CR = StringTools.CR;
-
-	// ********** constructors **********
-	
-	public static void generate(JpaProject project) {
-		new EclipseLinkDDLGeneratorUi(project).generate();
-	}
-
-	private EclipseLinkDDLGeneratorUi(JpaProject project) {
-		super();
-		if (project == null) {
-			throw new NullPointerException();
-		}
-		this.project = project;
-	}
-
-	// ********** behavior **********
-	
-	protected void generate() {
-		
-		PersistenceUnit persistenceUnit = this.getPersistenceUnits().next(); // Take the first persistenceUnit
-		String puName = persistenceUnit.getName();
-		if( ! this.displayGeneratingDDLWarning()) {
-			return;
-		}
-		
-		GenerateDDLWizard wizard = new GenerateDDLWizard(this.project);
-		WizardDialog dialog = new WizardDialog(this.getCurrentShell(), wizard);
-		dialog.create();
-		if(wizard.getPageCount() > 0) {
-			int returnCode = dialog.open();
-			if (returnCode == Window.CANCEL) {
-				return;
-			}
-		}
-		IWorkspaceRunnable runnable = new GenerateDDLRunnable(puName, this.project);
-		try {
-			ResourcesPlugin.getWorkspace().run(runnable, new NullProgressMonitor());
-		} 
-		catch (CoreException ex) {
-			throw new RuntimeException(ex);
-		}
-	}
-	
-	private Shell getCurrentShell() {
-	    return Display.getCurrent().getActiveShell();
-	}
-
-	private boolean displayGeneratingDDLWarning() {
-		String message = org.eclipse.osgi.util.NLS.bind(
-			EclipseLinkUiMessages.EclipseLinkDDLGeneratorUi_generatingDDLWarningMessage,
-			CR,  CR + CR);
-			
-		return MessageDialog.openQuestion(
-			this.getCurrentShell(), 
-			EclipseLinkUiMessages.EclipseLinkDDLGeneratorUi_generatingDDLWarningTitle, 
-			message);
-	}
-
-	// ********** Persistence Unit **********
-
-	protected JpaPlatform getPlatform() {
-		return this.project.getJpaPlatform();
-	}
-	
-	protected Iterator<PersistenceUnit> getPersistenceUnits() {
-		return this.getPersistence().persistenceUnits();
-	}
-
-	protected Persistence getPersistence() {
-		return this.project.getRootContextNode().getPersistenceXml().getPersistence();
-	}
-
-	// ********** runnable **********
-
-	static class GenerateDDLRunnable implements IWorkspaceRunnable {
-		private final String puName;
-		private final JpaProject project;
-
-		GenerateDDLRunnable(String puName, JpaProject project) {
-			super();
-			this.puName = puName;
-			this.project = project;
-		}
-
-		public void run(IProgressMonitor monitor) throws CoreException {
-			String projectLocation = this.project.getProject().getLocation().toString();
-			try {
-				EclipseLinkDDLGenerator.generate(this.puName, this.project, projectLocation, monitor);
-			} 
-			catch (OperationCanceledException e) {
-				return;
-				// fall through and tell monitor we are done
-			}
-			catch (RuntimeException re) {
-				String msg = re.getMessage();
-				String message = (msg == null) ? re.toString() : msg;
-				
-				this.logError(message);
-				throw new RuntimeException(re);
-			}
-		}
-
-		protected void logError(String message) {
-				this.displayError(message);
-		}
-		
-		private void displayError(String message) {
-			MessageDialog.openError(
-					getShell(),
-					EclipseLinkUiMessages.EclipseLinkDDLGeneratorUi_error,
-					message
-				);
-		}
-
-		private Shell getShell() {
-			Display display = Display.getCurrent();
-			Shell shell = (display == null) ? null : display.getActiveShell();
-			if (shell == null && display != null) {
-				Shell[] shells = display.getShells();
-				if (shells.length > 0)
-					shell = shells[0];
-			}
-			return shell;
-		}
-	}
-}
diff --git a/jpa/plugins/org.eclipse.jpt.eclipselink.ui/src/org/eclipse/jpt/eclipselink/ui/internal/ddlgen/wizards/GenerateDDLWizard.java b/jpa/plugins/org.eclipse.jpt.eclipselink.ui/src/org/eclipse/jpt/eclipselink/ui/internal/ddlgen/wizards/GenerateDDLWizard.java
deleted file mode 100644
index 364e5b2..0000000
--- a/jpa/plugins/org.eclipse.jpt.eclipselink.ui/src/org/eclipse/jpt/eclipselink/ui/internal/ddlgen/wizards/GenerateDDLWizard.java
+++ /dev/null
@@ -1,56 +0,0 @@
-/*******************************************************************************
-* Copyright (c) 2007, 2009 Oracle. All rights reserved.
-* This program and the accompanying materials are made available under the
-* terms of the Eclipse Public License v1.0, which accompanies this distribution
-* and is available at http://www.eclipse.org/legal/epl-v10.html.
-* 
-* Contributors:
-*     Oracle - initial API and implementation
-*******************************************************************************/
-package org.eclipse.jpt.eclipselink.ui.internal.ddlgen.wizards;
-
-import org.eclipse.jface.wizard.Wizard;
-import org.eclipse.jpt.core.JpaProject;
-import org.eclipse.jpt.db.ConnectionProfile;
-import org.eclipse.jpt.ui.internal.JptUiMessages;
-import org.eclipse.jpt.ui.internal.wizards.DatabaseSchemaWizardPage;
-
-/**
- *  GenerateDDLWizard
- */
-public class GenerateDDLWizard extends Wizard {	
-
-	private JpaProject jpaProject;
-
-	private DatabaseSchemaWizardPage dbSettingsPage;
-
-	public GenerateDDLWizard(JpaProject jpaProject) {
-		super();
-		this.jpaProject = jpaProject;
-		this.setWindowTitle(JptUiMessages.GenerateDDLWizard_title); 
-	}
-	
-	@Override
-	public void addPages() {
-		super.addPages();
-		if (this.getJpaProjectConnectionProfile() == null) {
-			this.dbSettingsPage = new DatabaseSchemaWizardPage(this.jpaProject);
-			this.addPage(this.dbSettingsPage);
-		}
-	}
-	
-	@Override
-	public boolean performFinish() {
-		return (this.getJpaProjectConnectionProfile() != null);
-	}
-    
-    @Override
-	public boolean canFinish() {
-        return this.dbSettingsPage.isPageComplete();
-    }
-    
-	private ConnectionProfile getJpaProjectConnectionProfile() {
-		return this.jpaProject.getConnectionProfile();
-	}
-
-}
diff --git a/jpa/plugins/org.eclipse.jpt.eclipselink.ui/src/org/eclipse/jpt/eclipselink/ui/internal/java/details/ConvertersComposite.java b/jpa/plugins/org.eclipse.jpt.eclipselink.ui/src/org/eclipse/jpt/eclipselink/ui/internal/java/details/ConvertersComposite.java
deleted file mode 100644
index b114116..0000000
--- a/jpa/plugins/org.eclipse.jpt.eclipselink.ui/src/org/eclipse/jpt/eclipselink/ui/internal/java/details/ConvertersComposite.java
+++ /dev/null
@@ -1,271 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- *
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.eclipselink.ui.internal.java.details;
-
-import org.eclipse.jpt.eclipselink.core.context.CustomConverter;
-import org.eclipse.jpt.eclipselink.core.context.ObjectTypeConverter;
-import org.eclipse.jpt.eclipselink.core.context.StructConverter;
-import org.eclipse.jpt.eclipselink.core.context.TypeConverter;
-import org.eclipse.jpt.eclipselink.core.context.java.JavaConverterHolder;
-import org.eclipse.jpt.eclipselink.ui.internal.mappings.EclipseLinkUiMappingsMessages;
-import org.eclipse.jpt.eclipselink.ui.internal.mappings.details.CustomConverterComposite;
-import org.eclipse.jpt.eclipselink.ui.internal.mappings.details.ObjectTypeConverterComposite;
-import org.eclipse.jpt.eclipselink.ui.internal.mappings.details.StructConverterComposite;
-import org.eclipse.jpt.eclipselink.ui.internal.mappings.details.TypeConverterComposite;
-import org.eclipse.jpt.ui.internal.widgets.Pane;
-import org.eclipse.jpt.utility.internal.model.value.PropertyAspectAdapter;
-import org.eclipse.jpt.utility.model.value.PropertyValueModel;
-import org.eclipse.jpt.utility.model.value.WritablePropertyValueModel;
-import org.eclipse.swt.widgets.Button;
-import org.eclipse.swt.widgets.Composite;
-
-/**
- * Here the layout of this pane:
- * <pre>
- * -----------------------------------------------------------------------------
- * | X CustomConverter                                                         |
- * |                                                                           |
- * |   ----------------------------------------------------------------------- |
- * |   |                                                                     | |
- * |   | CustomConverterComposite                                            | |
- * |   |                                                                     | |
- * |   ----------------------------------------------------------------------- |
- * |                                                                           |
- * | X Type Converter                                                          |
- * |                                                                           |
- * |   ----------------------------------------------------------------------- |
- * |   |                                                                     | |
- * |   | TypeConverterComposite                                              | |
- * |   |                                                                     | |
- * |   ----------------------------------------------------------------------- |
- * |                                                                           |
- * | X Oject Type Converter                                                    |
- * |                                                                           |
- * |   ----------------------------------------------------------------------- |
- * |   |                                                                     | |
- * |   | ObjectTypeConverterComposite                                        | |
- * |   |                                                                     | |
- * |   ----------------------------------------------------------------------- |
- * |                                                                           |
- * | X Struct Converter                                                        |
- * |                                                                           |
- * |   ----------------------------------------------------------------------- |
- * |   |                                                                     | |
- * |   | StructConverterComposite                                            | |
- * |   |                                                                     | |
- * |   ----------------------------------------------------------------------- |
- * -----------------------------------------------------------------------------</pre>
- *
- *
- * @version 2.1
- * @since 2.1
- */
-public class ConvertersComposite extends Pane<JavaConverterHolder>
-{
-
-	/**
-	 * Creates a new <code>ConversionComposite</code>.
-	 *
-	 * @param parentPane The parent container of this one
-	 * @param parent The parent container
-	 */
-	public ConvertersComposite(Pane<?> parentPane,
-								PropertyValueModel<? extends JavaConverterHolder> subjectHolder,
-								Composite parent) {
-
-		super(parentPane, subjectHolder, parent, false);
-	}
-	
-	@Override
-	protected void initializeLayout(Composite container) {
-
-		initializeConverterPane(container);
-	}
-	
-	private void initializeConverterPane(Composite container) {
-		// Custom Converter check box
-		Button customConverterCheckBox = addCheckBox(
-			addSubPane(container, 5),
-			EclipseLinkUiMappingsMessages.ConvertersComposite_customConverter,
-			buildCustomConverterBooleanHolder(),
-			null
-		);
-
-		// Custom Converter pane
-		CustomConverterComposite customConverterComposite = new CustomConverterComposite(
-			buildCustomConverterHolder(),
-			addSubPane(container, 0, customConverterCheckBox.getBorderWidth() + 16),
-			getWidgetFactory()
-		);
-		registerSubPane(customConverterComposite);
-	
-		
-		// Type Converter check box
-		Button typeConverterCheckBox = addCheckBox(
-			addSubPane(container, 5),
-			EclipseLinkUiMappingsMessages.ConvertersComposite_typeConverter,
-			buildTypeConverterBooleanHolder(),
-			null
-		);
-
-		// Type Converter pane
-		TypeConverterComposite typeConverterComposite = new TypeConverterComposite(
-			buildTypeConverterHolder(),
-			addSubPane(container, 0, typeConverterCheckBox.getBorderWidth() + 16),
-			getWidgetFactory()
-		);
-		registerSubPane(typeConverterComposite);
-		
-		// Object Type Converter check box
-		Button objectTypeConverterCheckBox = addCheckBox(
-			addSubPane(container, 5),
-			EclipseLinkUiMappingsMessages.ConvertersComposite_objectTypeConverter,
-			buildObjectTypeConverterBooleanHolder(),
-			null
-		);
-
-		// Object Type Converter pane
-		ObjectTypeConverterComposite objectTypeConverterComposite = new ObjectTypeConverterComposite(
-			buildObjectTypeConverterHolder(),
-			addSubPane(container, 0, objectTypeConverterCheckBox.getBorderWidth() + 16),
-			getWidgetFactory()
-		);
-		registerSubPane(objectTypeConverterComposite);
-		
-		// Struct Converter check box
-		Button structConverterCheckBox = addCheckBox(
-			addSubPane(container, 5),
-			EclipseLinkUiMappingsMessages.ConvertersComposite_structConverter,
-			buildStructConverterBooleanHolder(),
-			null
-		);
-
-		// Struct Converter pane
-		StructConverterComposite structConverterComposite = new StructConverterComposite(
-			buildStructConverterHolder(),
-			addSubPane(container, 0, structConverterCheckBox.getBorderWidth() + 16),
-			getWidgetFactory()
-		);
-		registerSubPane(structConverterComposite);
-	}
-	
-	private WritablePropertyValueModel<Boolean> buildCustomConverterBooleanHolder() {
-		return new PropertyAspectAdapter<JavaConverterHolder, Boolean>(getSubjectHolder(), JavaConverterHolder.CUSTOM_CONVERTER_PROPERTY) {
-			@Override
-			protected Boolean buildValue_() {
-				return Boolean.valueOf(this.subject.getCustomConverter() != null);
-			}
-
-			@Override
-			protected void setValue_(Boolean value) {
-				if (value.booleanValue() && (this.subject.getCustomConverter() == null)) {
-					this.subject.addCustomConverter();
-				}
-				else if (!value.booleanValue() && (this.subject.getCustomConverter() != null)) {
-					this.subject.removeCustomConverter();
-				}
-			}
-		};
-	}
-	
-	private PropertyValueModel<CustomConverter> buildCustomConverterHolder() {
-		return new PropertyAspectAdapter<JavaConverterHolder, CustomConverter>(getSubjectHolder(), JavaConverterHolder.CUSTOM_CONVERTER_PROPERTY) {
-			@Override
-			protected CustomConverter buildValue_() {
-				return this.subject.getCustomConverter();
-			}
-		};
-	}
-	
-	private WritablePropertyValueModel<Boolean> buildTypeConverterBooleanHolder() {
-		return new PropertyAspectAdapter<JavaConverterHolder, Boolean>(getSubjectHolder(), JavaConverterHolder.TYPE_CONVERTER_PROPERTY) {
-			@Override
-			protected Boolean buildValue_() {
-				return Boolean.valueOf(this.subject.getTypeConverter() != null);
-			}
-
-			@Override
-			protected void setValue_(Boolean value) {
-				if (value.booleanValue() && (this.subject.getTypeConverter() == null)) {
-					this.subject.addTypeConverter();
-				}
-				else if (!value.booleanValue() && (this.subject.getTypeConverter() != null)) {
-					this.subject.removeTypeConverter();
-				}
-			}
-		};
-	}
-	
-	private PropertyValueModel<TypeConverter> buildTypeConverterHolder() {
-		return new PropertyAspectAdapter<JavaConverterHolder, TypeConverter>(getSubjectHolder(), JavaConverterHolder.TYPE_CONVERTER_PROPERTY) {
-			@Override
-			protected TypeConverter buildValue_() {
-				return this.subject.getTypeConverter();
-			}
-		};
-	}
-	
-	private WritablePropertyValueModel<Boolean> buildObjectTypeConverterBooleanHolder() {
-		return new PropertyAspectAdapter<JavaConverterHolder, Boolean>(getSubjectHolder(), JavaConverterHolder.OBJECT_TYPE_CONVERTER_PROPERTY) {
-			@Override
-			protected Boolean buildValue_() {
-				return Boolean.valueOf(this.subject.getObjectTypeConverter() != null);
-			}
-
-			@Override
-			protected void setValue_(Boolean value) {
-				if (value.booleanValue() && (this.subject.getObjectTypeConverter() == null)) {
-					this.subject.addObjectTypeConverter();
-				}
-				else if (!value.booleanValue() && (this.subject.getObjectTypeConverter() != null)) {
-					this.subject.removeObjectTypeConverter();
-				}
-			}
-		};
-	}
-	
-	private PropertyValueModel<ObjectTypeConverter> buildObjectTypeConverterHolder() {
-		return new PropertyAspectAdapter<JavaConverterHolder, ObjectTypeConverter>(getSubjectHolder(), JavaConverterHolder.OBJECT_TYPE_CONVERTER_PROPERTY) {
-			@Override
-			protected ObjectTypeConverter buildValue_() {
-				return this.subject.getObjectTypeConverter();
-			}
-		};
-	}
-	
-	
-	private WritablePropertyValueModel<Boolean> buildStructConverterBooleanHolder() {
-		return new PropertyAspectAdapter<JavaConverterHolder, Boolean>(getSubjectHolder(), JavaConverterHolder.STRUCT_CONVERTER_PROPERTY) {
-			@Override
-			protected Boolean buildValue_() {
-				return Boolean.valueOf(this.subject.getStructConverter() != null);
-			}
-
-			@Override
-			protected void setValue_(Boolean value) {
-				if (value.booleanValue() && (this.subject.getStructConverter() == null)) {
-					this.subject.addStructConverter();
-				}
-				else if (!value.booleanValue() && (this.subject.getStructConverter() != null)) {
-					this.subject.removeStructConverter();
-				}
-			}
-		};
-	}
-	
-	private PropertyValueModel<StructConverter> buildStructConverterHolder() {
-		return new PropertyAspectAdapter<JavaConverterHolder, StructConverter>(getSubjectHolder(), JavaConverterHolder.STRUCT_CONVERTER_PROPERTY) {
-			@Override
-			protected StructConverter buildValue_() {
-				return this.subject.getStructConverter();
-			}
-		};
-	}
-}
diff --git a/jpa/plugins/org.eclipse.jpt.eclipselink.ui/src/org/eclipse/jpt/eclipselink/ui/internal/java/details/DefaultOneToManyMappingUiProvider.java b/jpa/plugins/org.eclipse.jpt.eclipselink.ui/src/org/eclipse/jpt/eclipselink/ui/internal/java/details/DefaultOneToManyMappingUiProvider.java
deleted file mode 100644
index bbf6cc0..0000000
--- a/jpa/plugins/org.eclipse.jpt.eclipselink.ui/src/org/eclipse/jpt/eclipselink/ui/internal/java/details/DefaultOneToManyMappingUiProvider.java
+++ /dev/null
@@ -1,85 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- *
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.eclipselink.ui.internal.java.details;
-
-import org.eclipse.core.runtime.content.IContentType;
-import org.eclipse.jpt.core.JptCorePlugin;
-import org.eclipse.jpt.core.MappingKeys;
-import org.eclipse.jpt.core.context.java.JavaOneToManyMapping;
-import org.eclipse.jpt.eclipselink.ui.internal.mappings.EclipseLinkUiMappingsMessages;
-import org.eclipse.jpt.ui.JpaUiFactory;
-import org.eclipse.jpt.ui.WidgetFactory;
-import org.eclipse.jpt.ui.details.DefaultAttributeMappingUiProvider;
-import org.eclipse.jpt.ui.details.JpaComposite;
-import org.eclipse.jpt.ui.internal.JpaMappingImageHelper;
-import org.eclipse.jpt.ui.internal.details.AbstractOneToManyMappingUiProvider;
-import org.eclipse.jpt.utility.model.value.PropertyValueModel;
-import org.eclipse.swt.graphics.Image;
-import org.eclipse.swt.widgets.Composite;
-
-public class DefaultOneToManyMappingUiProvider
-	extends AbstractOneToManyMappingUiProvider<JavaOneToManyMapping>
-	implements DefaultAttributeMappingUiProvider<JavaOneToManyMapping>
-{
-	// singleton
-	private static final DefaultOneToManyMappingUiProvider INSTANCE = 
-		new DefaultOneToManyMappingUiProvider();
-	
-	/**
-	 * Return the singleton.
-	 */
-	public static DefaultAttributeMappingUiProvider<JavaOneToManyMapping> instance() {
-		return INSTANCE;
-	}
-	
-	
-	/**
-	 * Ensure single instance.
-	 */
-	private DefaultOneToManyMappingUiProvider() {
-		super();
-	}
-		
-	public IContentType getContentType() {
-		return JptCorePlugin.JAVA_SOURCE_CONTENT_TYPE;
-	}
-	
-	@Override
-	public String getKey() {
-		return null;
-	}
-	
-	public String getDefaultKey() {
-		return MappingKeys.ONE_TO_MANY_ATTRIBUTE_MAPPING_KEY;
-	}
-	
-	@Override
-	public String getLabel() {
-		return EclipseLinkUiMappingsMessages.DefaultOneToManyMappingUiProvider_label;
-	}
-
-	@Override
-	public String getLinkLabel() {
-		return EclipseLinkUiMappingsMessages.DefaultOneToManyMappingUiProvider_linkLabel;
-	}
-
-	@Override
-	public Image getImage() {
-		return JpaMappingImageHelper.imageForAttributeMapping(getDefaultKey());
-	}
-	
-	public JpaComposite buildAttributeMappingComposite(
-			JpaUiFactory factory,
-			PropertyValueModel<JavaOneToManyMapping> subjectHolder,
-			Composite parent,
-			WidgetFactory widgetFactory) {
-		return factory.createJavaOneToManyMappingComposite(subjectHolder, parent, widgetFactory);
-	}
-}
diff --git a/jpa/plugins/org.eclipse.jpt.eclipselink.ui/src/org/eclipse/jpt/eclipselink/ui/internal/java/details/DefaultOneToOneMappingUiProvider.java b/jpa/plugins/org.eclipse.jpt.eclipselink.ui/src/org/eclipse/jpt/eclipselink/ui/internal/java/details/DefaultOneToOneMappingUiProvider.java
deleted file mode 100644
index 80f2140..0000000
--- a/jpa/plugins/org.eclipse.jpt.eclipselink.ui/src/org/eclipse/jpt/eclipselink/ui/internal/java/details/DefaultOneToOneMappingUiProvider.java
+++ /dev/null
@@ -1,85 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- *
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.eclipselink.ui.internal.java.details;
-
-import org.eclipse.core.runtime.content.IContentType;
-import org.eclipse.jpt.core.JptCorePlugin;
-import org.eclipse.jpt.core.MappingKeys;
-import org.eclipse.jpt.core.context.java.JavaOneToOneMapping;
-import org.eclipse.jpt.eclipselink.ui.internal.mappings.EclipseLinkUiMappingsMessages;
-import org.eclipse.jpt.ui.JpaUiFactory;
-import org.eclipse.jpt.ui.WidgetFactory;
-import org.eclipse.jpt.ui.details.DefaultAttributeMappingUiProvider;
-import org.eclipse.jpt.ui.details.JpaComposite;
-import org.eclipse.jpt.ui.internal.JpaMappingImageHelper;
-import org.eclipse.jpt.ui.internal.details.AbstractOneToOneMappingUiProvider;
-import org.eclipse.jpt.utility.model.value.PropertyValueModel;
-import org.eclipse.swt.graphics.Image;
-import org.eclipse.swt.widgets.Composite;
-
-public class DefaultOneToOneMappingUiProvider
-	extends AbstractOneToOneMappingUiProvider<JavaOneToOneMapping>
-	implements DefaultAttributeMappingUiProvider<JavaOneToOneMapping>
-{
-	// singleton
-	private static final DefaultOneToOneMappingUiProvider INSTANCE = 
-		new DefaultOneToOneMappingUiProvider();
-	
-	/**
-	 * Return the singleton.
-	 */
-	public static DefaultAttributeMappingUiProvider<JavaOneToOneMapping> instance() {
-		return INSTANCE;
-	}
-	
-	
-	/**
-	 * Ensure single instance.
-	 */
-	private DefaultOneToOneMappingUiProvider() {
-		super();
-	}
-		
-	public IContentType getContentType() {
-		return JptCorePlugin.JAVA_SOURCE_CONTENT_TYPE;
-	}
-	
-	@Override
-	public String getKey() {
-		return null;
-	}
-	
-	public String getDefaultKey() {
-		return MappingKeys.ONE_TO_ONE_ATTRIBUTE_MAPPING_KEY;
-	}
-	
-	@Override
-	public String getLabel() {
-		return EclipseLinkUiMappingsMessages.DefaultOneToOneMappingUiProvider_label;
-	}
-
-	@Override
-	public String getLinkLabel() {
-		return EclipseLinkUiMappingsMessages.DefaultOneToOneMappingUiProvider_linkLabel;
-	}
-
-	@Override
-	public Image getImage() {
-		return JpaMappingImageHelper.imageForAttributeMapping(getDefaultKey());
-	}
-	
-	public JpaComposite buildAttributeMappingComposite(
-			JpaUiFactory factory,
-			PropertyValueModel<JavaOneToOneMapping> subjectHolder,
-			Composite parent,
-			WidgetFactory widgetFactory) {
-		return factory.createJavaOneToOneMappingComposite(subjectHolder, parent, widgetFactory);
-	}
-}
diff --git a/jpa/plugins/org.eclipse.jpt.eclipselink.ui/src/org/eclipse/jpt/eclipselink/ui/internal/java/details/DefaultVariableOneToOneMappingUiProvider.java b/jpa/plugins/org.eclipse.jpt.eclipselink.ui/src/org/eclipse/jpt/eclipselink/ui/internal/java/details/DefaultVariableOneToOneMappingUiProvider.java
deleted file mode 100644
index 8f08ba2..0000000
--- a/jpa/plugins/org.eclipse.jpt.eclipselink.ui/src/org/eclipse/jpt/eclipselink/ui/internal/java/details/DefaultVariableOneToOneMappingUiProvider.java
+++ /dev/null
@@ -1,81 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- *
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.eclipselink.ui.internal.java.details;
-
-import org.eclipse.core.runtime.content.IContentType;
-import org.eclipse.jpt.core.JptCorePlugin;
-import org.eclipse.jpt.eclipselink.core.EclipseLinkMappingKeys;
-import org.eclipse.jpt.eclipselink.core.internal.context.java.JavaVariableOneToOneMapping;
-import org.eclipse.jpt.eclipselink.ui.internal.mappings.EclipseLinkUiMappingsMessages;
-import org.eclipse.jpt.eclipselink.ui.internal.mappings.details.VariableOneToOneMappingComposite;
-import org.eclipse.jpt.ui.JpaUiFactory;
-import org.eclipse.jpt.ui.JptUiPlugin;
-import org.eclipse.jpt.ui.WidgetFactory;
-import org.eclipse.jpt.ui.details.DefaultAttributeMappingUiProvider;
-import org.eclipse.jpt.ui.details.JpaComposite;
-import org.eclipse.jpt.ui.internal.JptUiIcons;
-import org.eclipse.jpt.utility.model.value.PropertyValueModel;
-import org.eclipse.swt.graphics.Image;
-import org.eclipse.swt.widgets.Composite;
-
-public class DefaultVariableOneToOneMappingUiProvider
-	implements DefaultAttributeMappingUiProvider<JavaVariableOneToOneMapping>
-{
-	// singleton
-	private static final DefaultVariableOneToOneMappingUiProvider INSTANCE = 
-		new DefaultVariableOneToOneMappingUiProvider();
-	
-	/**
-	 * Return the singleton.
-	 */
-	public static DefaultAttributeMappingUiProvider<JavaVariableOneToOneMapping> instance() {
-		return INSTANCE;
-	}
-	
-	
-	/**
-	 * Ensure single instance.
-	 */
-	private DefaultVariableOneToOneMappingUiProvider() {
-		super();
-	}
-	
-	public IContentType getContentType() {
-		return JptCorePlugin.JAVA_SOURCE_CONTENT_TYPE;
-	}
-	
-	public String getKey() {
-		return null;
-	}
-	
-	public String getDefaultKey() {
-		return EclipseLinkMappingKeys.VARIABLE_ONE_TO_ONE_ATTRIBUTE_MAPPING_KEY;
-	}	
-	
-	public Image getImage() {
-		return JptUiPlugin.getImage(JptUiIcons.JPA_CONTENT);
-	}
-	
-	public String getLabel() {
-		return EclipseLinkUiMappingsMessages.DefaultVariableOneToOneMappingUiProvider_label;
-	}
-
-	public String getLinkLabel() {
-		return EclipseLinkUiMappingsMessages.DefaultVariableOneToOneMappingUiProvider_linkLabel;
-	}
-	
-	public JpaComposite buildAttributeMappingComposite(
-			JpaUiFactory factory,
-			PropertyValueModel<JavaVariableOneToOneMapping> subjectHolder,
-			Composite parent,
-			WidgetFactory widgetFactory) {
-		return new VariableOneToOneMappingComposite(subjectHolder, parent, widgetFactory);
-	}	
-}
diff --git a/jpa/plugins/org.eclipse.jpt.eclipselink.ui/src/org/eclipse/jpt/eclipselink/ui/internal/java/details/EclipseLink1_1JavaEmbeddableComposite.java b/jpa/plugins/org.eclipse.jpt.eclipselink.ui/src/org/eclipse/jpt/eclipselink/ui/internal/java/details/EclipseLink1_1JavaEmbeddableComposite.java
deleted file mode 100644
index 159767c..0000000
--- a/jpa/plugins/org.eclipse.jpt.eclipselink.ui/src/org/eclipse/jpt/eclipselink/ui/internal/java/details/EclipseLink1_1JavaEmbeddableComposite.java
+++ /dev/null
@@ -1,97 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- *
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.eclipselink.ui.internal.java.details;
-
-import org.eclipse.jpt.core.context.AccessHolder;
-import org.eclipse.jpt.core.context.java.JavaEmbeddable;
-import org.eclipse.jpt.eclipselink.core.context.java.EclipseLinkJavaEmbeddable;
-import org.eclipse.jpt.eclipselink.core.context.java.JavaConverterHolder;
-import org.eclipse.jpt.eclipselink.ui.internal.mappings.EclipseLinkUiMappingsMessages;
-import org.eclipse.jpt.eclipselink.ui.internal.mappings.details.EclipseLinkEmbeddableAdvancedComposite;
-import org.eclipse.jpt.ui.WidgetFactory;
-import org.eclipse.jpt.ui.details.JpaComposite;
-import org.eclipse.jpt.ui.internal.details.AccessTypeComposite;
-import org.eclipse.jpt.ui.internal.widgets.FormPane;
-import org.eclipse.jpt.utility.internal.model.value.PropertyAspectAdapter;
-import org.eclipse.jpt.utility.model.value.PropertyValueModel;
-import org.eclipse.swt.widgets.Composite;
-
-/**
- * This pane does not have any widgets.
- *
- * @see Embeddable
- * @see BaseJpaUiFactory - The factory creating this pane
- * @see EmbeddableUiProvider
- *
- * @version 2.1
- * @since 2.1
- */
-public class EclipseLink1_1JavaEmbeddableComposite extends FormPane<JavaEmbeddable>
-                                 implements JpaComposite
-{
-	/**
-	 * Creates a new <code>EmbeddableComposite</code>.
-	 *
-	 * @param subjectHolder The holder of this pane's subject
-	 * @param parent The parent container
-	 * @param widgetFactory The factory used to create various common widgets
-	 */
-	public EclipseLink1_1JavaEmbeddableComposite(PropertyValueModel<? extends JavaEmbeddable> subjectHolder,
-	                           Composite parent,
-	                           WidgetFactory widgetFactory) {
-
-		super(subjectHolder, parent, widgetFactory);
-	}
-
-	@Override
-	protected void initializeLayout(Composite container) {
-		initializeGeneralPane(container);
-		initializeConvertersPane(container);
-		initializeAdvancedPane(container);
-	}
-	
-	protected void initializeGeneralPane(Composite container) {
-		new AccessTypeComposite(this, buildAccessHolder(), container);	
-	}
-	
-	protected PropertyValueModel<AccessHolder> buildAccessHolder() {
-		return new PropertyAspectAdapter<JavaEmbeddable, AccessHolder>(
-			getSubjectHolder())
-		{
-			@Override
-			protected AccessHolder buildValue_() {
-				return this.subject.getPersistentType();
-			}
-		};
-	}
-
-	protected void initializeConvertersPane(Composite container) {
-
-		container = addCollapsableSection(
-			addSubPane(container, 5),
-			EclipseLinkUiMappingsMessages.EclipseLinkTypeMappingComposite_converters
-		);
-
-		new ConvertersComposite(this, buildConverterHolderValueModel(), container);
-	}
-
-	protected PropertyValueModel<JavaConverterHolder> buildConverterHolderValueModel() {
-		return new PropertyAspectAdapter<JavaEmbeddable, JavaConverterHolder>(getSubjectHolder()) {
-			@Override
-			protected JavaConverterHolder buildValue_() {
-				return ((EclipseLinkJavaEmbeddable) this.subject).getConverterHolder();
-			}	
-		};
-	}
-	
-	protected void initializeAdvancedPane(Composite container) {
-		new EclipseLinkEmbeddableAdvancedComposite(this, container);
-	}
-}
\ No newline at end of file
diff --git a/jpa/plugins/org.eclipse.jpt.eclipselink.ui/src/org/eclipse/jpt/eclipselink/ui/internal/java/details/EclipseLink1_1JavaEntityComposite.java b/jpa/plugins/org.eclipse.jpt.eclipselink.ui/src/org/eclipse/jpt/eclipselink/ui/internal/java/details/EclipseLink1_1JavaEntityComposite.java
deleted file mode 100644
index d868066..0000000
--- a/jpa/plugins/org.eclipse.jpt.eclipselink.ui/src/org/eclipse/jpt/eclipselink/ui/internal/java/details/EclipseLink1_1JavaEntityComposite.java
+++ /dev/null
@@ -1,145 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008, 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- *
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.eclipselink.ui.internal.java.details;
-
-import org.eclipse.jpt.core.context.AccessHolder;
-import org.eclipse.jpt.core.context.java.JavaEntity;
-import org.eclipse.jpt.eclipselink.core.context.java.EclipseLinkJavaEntity;
-import org.eclipse.jpt.eclipselink.core.context.java.JavaCaching;
-import org.eclipse.jpt.eclipselink.core.context.java.JavaConverterHolder;
-import org.eclipse.jpt.eclipselink.ui.internal.mappings.EclipseLinkUiMappingsMessages;
-import org.eclipse.jpt.eclipselink.ui.internal.mappings.details.EclipseLinkEntityAdvancedComposite;
-import org.eclipse.jpt.ui.WidgetFactory;
-import org.eclipse.jpt.ui.internal.details.AccessTypeComposite;
-import org.eclipse.jpt.ui.internal.java.details.JavaInheritanceComposite;
-import org.eclipse.jpt.ui.internal.java.details.JavaSecondaryTablesComposite;
-import org.eclipse.jpt.ui.internal.mappings.details.AbstractEntityComposite;
-import org.eclipse.jpt.ui.internal.mappings.details.EntityNameComposite;
-import org.eclipse.jpt.ui.internal.mappings.details.IdClassComposite;
-import org.eclipse.jpt.ui.internal.mappings.details.TableComposite;
-import org.eclipse.jpt.utility.internal.model.value.PropertyAspectAdapter;
-import org.eclipse.jpt.utility.model.value.PropertyValueModel;
-import org.eclipse.swt.widgets.Composite;
-
-/**
- * The pane used for an EclipseLink1.1 Java entity.
- *
- * @see EclipseLinkJavaEntity
- * @see EclipselinkJpaUiFactory - The factory creating this pane
- *
- * @version 2.2
- * @since 2.2
- */
-public class EclipseLink1_1JavaEntityComposite extends AbstractEntityComposite<JavaEntity>
-{
-	/**
-	 * Creates a new <code>EclipseLinkJavaEntityComposite</code>.
-	 *
-	 * @param subjectHolder The holder of the subject <code>JavaEntity</code>
-	 * @param parent The parent container
-	 * @param widgetFactory The factory used to create various common widgets
-	 */
-	public EclipseLink1_1JavaEntityComposite(PropertyValueModel<? extends JavaEntity> subjectHolder,
-	                           Composite parent,
-	                           WidgetFactory widgetFactory) {
-
-		super(subjectHolder, parent, widgetFactory);
-	}
-
-	
-	@Override
-	protected void initializeLayout(Composite container) {
-		initializeGeneralPane(container);
-		initializeCachingPane(container);
-		initializeQueriesPane(container);
-		initializeInheritancePane(container);
-		initializeAttributeOverridesPane(container);
-		initializeGeneratorsPane(container);
-		initializeConvertersPane(container);
-		initializeSecondaryTablesPane(container);
-		initializeAdvancedPane(container);
-	}
-	
-	@Override
-	protected void initializeGeneralPane(Composite container) {
-		int groupBoxMargin = getGroupBoxMargin();
-
-		new TableComposite(this, container);
-		new EntityNameComposite(this, addSubPane(container, 0, groupBoxMargin, 0, groupBoxMargin));	
-		new AccessTypeComposite(this, buildAccessHolder(), addSubPane(container, 0, groupBoxMargin, 0, groupBoxMargin));	
-		new IdClassComposite(this, addSubPane(container, 0, groupBoxMargin, 0, groupBoxMargin), false);
-	}
-	
-	protected PropertyValueModel<AccessHolder> buildAccessHolder() {
-		return new PropertyAspectAdapter<JavaEntity, AccessHolder>(
-			getSubjectHolder())
-		{
-			@Override
-			protected AccessHolder buildValue_() {
-				return this.subject.getPersistentType();
-			}
-		};
-	}
-	
-	protected void initializeCachingPane(Composite container) {
-
-		container = addCollapsableSection(
-			addSubPane(container, 5),
-			EclipseLinkUiMappingsMessages.EclipseLinkTypeMappingComposite_caching
-		);
-
-		new JavaCachingComposite(this, buildCachingHolder(), container);
-	}
-
-	private PropertyAspectAdapter<JavaEntity, JavaCaching> buildCachingHolder() {
-		return new PropertyAspectAdapter<JavaEntity, JavaCaching>(
-			getSubjectHolder())
-		{
-			@Override
-			protected JavaCaching buildValue_() {
-				return ((EclipseLinkJavaEntity) this.subject).getCaching();
-			}
-		};
-		
-	}
-
-	protected void initializeConvertersPane(Composite container) {
-
-		container = addCollapsableSection(
-			container,
-			EclipseLinkUiMappingsMessages.EclipseLinkTypeMappingComposite_converters
-		);
-
-		new ConvertersComposite(this, buildConverterHolderValueModel(), container);
-	}
-
-	protected PropertyValueModel<JavaConverterHolder> buildConverterHolderValueModel() {
-		return new PropertyAspectAdapter<JavaEntity, JavaConverterHolder>(getSubjectHolder()) {
-			@Override
-			protected JavaConverterHolder buildValue_() {
-				return ((EclipseLinkJavaEntity) this.subject).getConverterHolder();
-			}	
-		};
-	}
-	
-	@Override
-	protected void addSecondaryTablesComposite(Composite container) {
-		new JavaSecondaryTablesComposite(this, container);
-	}
-	
-	@Override
-	protected void addInheritanceComposite(Composite container) {
-		new JavaInheritanceComposite(this, container);
-	}
-	
-	protected void initializeAdvancedPane(Composite container) {
-		new EclipseLinkEntityAdvancedComposite(this, container);
-	}
-}
\ No newline at end of file
diff --git a/jpa/plugins/org.eclipse.jpt.eclipselink.ui/src/org/eclipse/jpt/eclipselink/ui/internal/java/details/EclipseLink1_1JavaMappedSuperclassComposite.java b/jpa/plugins/org.eclipse.jpt.eclipselink.ui/src/org/eclipse/jpt/eclipselink/ui/internal/java/details/EclipseLink1_1JavaMappedSuperclassComposite.java
deleted file mode 100644
index e3c16cc..0000000
--- a/jpa/plugins/org.eclipse.jpt.eclipselink.ui/src/org/eclipse/jpt/eclipselink/ui/internal/java/details/EclipseLink1_1JavaMappedSuperclassComposite.java
+++ /dev/null
@@ -1,121 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- *
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.eclipselink.ui.internal.java.details;
-
-import org.eclipse.jpt.core.context.AccessHolder;
-import org.eclipse.jpt.core.context.java.JavaMappedSuperclass;
-import org.eclipse.jpt.eclipselink.core.context.java.EclipseLinkJavaMappedSuperclass;
-import org.eclipse.jpt.eclipselink.core.context.java.JavaCaching;
-import org.eclipse.jpt.eclipselink.core.context.java.JavaConverterHolder;
-import org.eclipse.jpt.eclipselink.ui.internal.mappings.EclipseLinkUiMappingsMessages;
-import org.eclipse.jpt.eclipselink.ui.internal.mappings.details.EclipseLinkMappedSuperclassAdvancedComposite;
-import org.eclipse.jpt.ui.WidgetFactory;
-import org.eclipse.jpt.ui.details.JpaComposite;
-import org.eclipse.jpt.ui.internal.details.AccessTypeComposite;
-import org.eclipse.jpt.ui.internal.mappings.details.IdClassComposite;
-import org.eclipse.jpt.ui.internal.widgets.FormPane;
-import org.eclipse.jpt.utility.internal.model.value.PropertyAspectAdapter;
-import org.eclipse.jpt.utility.model.value.PropertyValueModel;
-import org.eclipse.swt.widgets.Composite;
-
-/**
- * The pane used for an EclipseLink Java Mapped Superclass.
- *
- * @see EclipseLinkMappedSuperclass
- * @see EclipselinkJpaUiFactory - The factory creating this pane
- *
- * @version 2.1
- * @since 2.1
- */
-public class EclipseLink1_1JavaMappedSuperclassComposite extends FormPane<JavaMappedSuperclass>
-                                       implements JpaComposite
-{
-	/**
-	 * Creates a new <code>MappedSuperclassComposite</code>.
-	 *
-	 * @param subjectHolder The holder of this pane's subject
-	 * @param parent The parent container
-	 * @param widgetFactory The factory used to create various common widgets
-	 */
-	public EclipseLink1_1JavaMappedSuperclassComposite(PropertyValueModel<? extends JavaMappedSuperclass> subjectHolder,
-	                                 Composite parent,
-	                                 WidgetFactory widgetFactory) {
-
-		super(subjectHolder, parent, widgetFactory);
-	}
-
-	@Override
-	protected void initializeLayout(Composite container) {
-		initializeGeneralPane(container);
-		initializeCachingPane(container);
-		initializeConvertersPane(container);
-		initializeAdvancedPane(container);
-	}
-	
-	protected void initializeGeneralPane(Composite container) {
-		new AccessTypeComposite(this, buildAccessHolder(), container);	
-		new IdClassComposite(this, container);
-	}
-	
-	protected PropertyValueModel<AccessHolder> buildAccessHolder() {
-		return new PropertyAspectAdapter<JavaMappedSuperclass, AccessHolder>(
-			getSubjectHolder())
-		{
-			@Override
-			protected AccessHolder buildValue_() {
-				return this.subject.getPersistentType();
-			}
-		};
-	}
-
-	
-	protected void initializeCachingPane(Composite container) {
-
-		container = addCollapsableSection(
-			addSubPane(container, 5),
-			EclipseLinkUiMappingsMessages.EclipseLinkTypeMappingComposite_caching
-		);
-
-		new JavaCachingComposite(this, buildCachingHolder(), container);
-	}
-
-	private PropertyAspectAdapter<JavaMappedSuperclass, JavaCaching> buildCachingHolder() {
-		return new PropertyAspectAdapter<JavaMappedSuperclass, JavaCaching>(
-			getSubjectHolder())
-		{
-			@Override
-			protected JavaCaching buildValue_() {
-				return ((EclipseLinkJavaMappedSuperclass) this.subject).getCaching();
-			}
-		};
-	}
-	
-	protected void initializeConvertersPane(Composite container) {
-		container = addCollapsableSection(
-			container,
-			EclipseLinkUiMappingsMessages.EclipseLinkTypeMappingComposite_converters
-		);
-
-		new ConvertersComposite(this, buildConverterHolderValueModel(), container);
-	}
-
-	protected PropertyValueModel<JavaConverterHolder> buildConverterHolderValueModel() {
-		return new PropertyAspectAdapter<JavaMappedSuperclass, JavaConverterHolder>(getSubjectHolder()) {
-			@Override
-			protected JavaConverterHolder buildValue_() {
-				return ((EclipseLinkJavaMappedSuperclass) this.subject).getConverterHolder();
-			}	
-		};
-	}
-	
-	protected void initializeAdvancedPane(Composite container) {
-		new EclipseLinkMappedSuperclassAdvancedComposite(this, container);
-	}
-}
\ No newline at end of file
diff --git a/jpa/plugins/org.eclipse.jpt.eclipselink.ui/src/org/eclipse/jpt/eclipselink/ui/internal/java/details/EclipseLinkJavaBasicCollectionMappingUiProvider.java b/jpa/plugins/org.eclipse.jpt.eclipselink.ui/src/org/eclipse/jpt/eclipselink/ui/internal/java/details/EclipseLinkJavaBasicCollectionMappingUiProvider.java
deleted file mode 100644
index 4952321..0000000
--- a/jpa/plugins/org.eclipse.jpt.eclipselink.ui/src/org/eclipse/jpt/eclipselink/ui/internal/java/details/EclipseLinkJavaBasicCollectionMappingUiProvider.java
+++ /dev/null
@@ -1,56 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- *
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.eclipselink.ui.internal.java.details;
-
-import org.eclipse.core.runtime.content.IContentType;
-import org.eclipse.jpt.core.JptCorePlugin;
-import org.eclipse.jpt.eclipselink.core.context.BasicCollectionMapping;
-import org.eclipse.jpt.eclipselink.ui.internal.mappings.details.BasicCollectionMappingComposite;
-import org.eclipse.jpt.eclipselink.ui.internal.mappings.details.EclipseLinkBasicCollectionMappingUiProvider;
-import org.eclipse.jpt.ui.JpaUiFactory;
-import org.eclipse.jpt.ui.WidgetFactory;
-import org.eclipse.jpt.ui.details.AttributeMappingUiProvider;
-import org.eclipse.jpt.ui.details.JpaComposite;
-import org.eclipse.jpt.utility.model.value.PropertyValueModel;
-import org.eclipse.swt.widgets.Composite;
-
-public class EclipseLinkJavaBasicCollectionMappingUiProvider extends EclipseLinkBasicCollectionMappingUiProvider<BasicCollectionMapping>
-{
-	// singleton
-	private static final EclipseLinkJavaBasicCollectionMappingUiProvider INSTANCE = 
-		new EclipseLinkJavaBasicCollectionMappingUiProvider();
-	
-	/**
-	 * Return the singleton.
-	 */
-	public static AttributeMappingUiProvider<BasicCollectionMapping> instance() {
-		return INSTANCE;
-	}
-	
-	
-	/**
-	 * Ensure single instance.
-	 */
-	private EclipseLinkJavaBasicCollectionMappingUiProvider() {
-		super();
-	}
-	
-	public IContentType getContentType() {
-		return JptCorePlugin.JAVA_SOURCE_CONTENT_TYPE;
-	}
-	
-	public JpaComposite buildAttributeMappingComposite(
-			JpaUiFactory factory,
-			PropertyValueModel<BasicCollectionMapping> subjectHolder,
-			Composite parent,
-			WidgetFactory widgetFactory) {
-		return new BasicCollectionMappingComposite(subjectHolder, parent, widgetFactory);
-	}
-}
diff --git a/jpa/plugins/org.eclipse.jpt.eclipselink.ui/src/org/eclipse/jpt/eclipselink/ui/internal/java/details/EclipseLinkJavaBasicMapMappingUiProvider.java b/jpa/plugins/org.eclipse.jpt.eclipselink.ui/src/org/eclipse/jpt/eclipselink/ui/internal/java/details/EclipseLinkJavaBasicMapMappingUiProvider.java
deleted file mode 100644
index 3c3c004..0000000
--- a/jpa/plugins/org.eclipse.jpt.eclipselink.ui/src/org/eclipse/jpt/eclipselink/ui/internal/java/details/EclipseLinkJavaBasicMapMappingUiProvider.java
+++ /dev/null
@@ -1,56 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- *
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.eclipselink.ui.internal.java.details;
-
-import org.eclipse.core.runtime.content.IContentType;
-import org.eclipse.jpt.core.JptCorePlugin;
-import org.eclipse.jpt.eclipselink.core.context.BasicMapMapping;
-import org.eclipse.jpt.eclipselink.ui.internal.mappings.details.BasicMapMappingComposite;
-import org.eclipse.jpt.eclipselink.ui.internal.mappings.details.EclipseLinkBasicMapMappingUiProvider;
-import org.eclipse.jpt.ui.JpaUiFactory;
-import org.eclipse.jpt.ui.WidgetFactory;
-import org.eclipse.jpt.ui.details.AttributeMappingUiProvider;
-import org.eclipse.jpt.ui.details.JpaComposite;
-import org.eclipse.jpt.utility.model.value.PropertyValueModel;
-import org.eclipse.swt.widgets.Composite;
-
-public class EclipseLinkJavaBasicMapMappingUiProvider extends EclipseLinkBasicMapMappingUiProvider<BasicMapMapping>
-{
-	// singleton
-	private static final EclipseLinkJavaBasicMapMappingUiProvider INSTANCE = 
-		new EclipseLinkJavaBasicMapMappingUiProvider();
-	
-	/**
-	 * Return the singleton.
-	 */
-	public static AttributeMappingUiProvider<BasicMapMapping> instance() {
-		return INSTANCE;
-	}
-	
-	
-	/**
-	 * Ensure single instance.
-	 */
-	private EclipseLinkJavaBasicMapMappingUiProvider() {
-		super();
-	}
-	
-	public IContentType getContentType() {
-		return JptCorePlugin.JAVA_SOURCE_CONTENT_TYPE;
-	}
-	
-	public JpaComposite buildAttributeMappingComposite(
-			JpaUiFactory factory,
-			PropertyValueModel<BasicMapMapping> subjectHolder,
-			Composite parent,
-			WidgetFactory widgetFactory) {
-		return new BasicMapMappingComposite(subjectHolder, parent, widgetFactory);
-	}
-}
diff --git a/jpa/plugins/org.eclipse.jpt.eclipselink.ui/src/org/eclipse/jpt/eclipselink/ui/internal/java/details/EclipseLinkJavaEmbeddableComposite.java b/jpa/plugins/org.eclipse.jpt.eclipselink.ui/src/org/eclipse/jpt/eclipselink/ui/internal/java/details/EclipseLinkJavaEmbeddableComposite.java
deleted file mode 100644
index c40de20..0000000
--- a/jpa/plugins/org.eclipse.jpt.eclipselink.ui/src/org/eclipse/jpt/eclipselink/ui/internal/java/details/EclipseLinkJavaEmbeddableComposite.java
+++ /dev/null
@@ -1,79 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2008 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- *
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.eclipselink.ui.internal.java.details;
-
-import org.eclipse.jpt.core.context.java.JavaEmbeddable;
-import org.eclipse.jpt.eclipselink.core.context.java.EclipseLinkJavaEmbeddable;
-import org.eclipse.jpt.eclipselink.core.context.java.JavaConverterHolder;
-import org.eclipse.jpt.eclipselink.ui.internal.mappings.EclipseLinkUiMappingsMessages;
-import org.eclipse.jpt.eclipselink.ui.internal.mappings.details.EclipseLinkEmbeddableAdvancedComposite;
-import org.eclipse.jpt.ui.WidgetFactory;
-import org.eclipse.jpt.ui.details.JpaComposite;
-import org.eclipse.jpt.ui.internal.widgets.FormPane;
-import org.eclipse.jpt.utility.internal.model.value.PropertyAspectAdapter;
-import org.eclipse.jpt.utility.model.value.PropertyValueModel;
-import org.eclipse.swt.widgets.Composite;
-
-/**
- * This pane does not have any widgets.
- *
- * @see Embeddable
- * @see BaseJpaUiFactory - The factory creating this pane
- * @see EmbeddableUiProvider
- *
- * @version 2.1
- * @since 2.1
- */
-public class EclipseLinkJavaEmbeddableComposite extends FormPane<JavaEmbeddable>
-                                 implements JpaComposite
-{
-	/**
-	 * Creates a new <code>EmbeddableComposite</code>.
-	 *
-	 * @param subjectHolder The holder of this pane's subject
-	 * @param parent The parent container
-	 * @param widgetFactory The factory used to create various common widgets
-	 */
-	public EclipseLinkJavaEmbeddableComposite(PropertyValueModel<? extends JavaEmbeddable> subjectHolder,
-	                           Composite parent,
-	                           WidgetFactory widgetFactory) {
-
-		super(subjectHolder, parent, widgetFactory);
-	}
-
-	@Override
-	protected void initializeLayout(Composite container) {
-		initializeConvertersPane(container);
-		initializeAdvancedPane(container);
-	}
-
-	protected void initializeConvertersPane(Composite container) {
-
-		container = addCollapsableSection(
-			addSubPane(container, 5),
-			EclipseLinkUiMappingsMessages.EclipseLinkTypeMappingComposite_converters
-		);
-
-		new ConvertersComposite(this, buildConverterHolderValueModel(), container);
-	}
-
-	protected PropertyValueModel<JavaConverterHolder> buildConverterHolderValueModel() {
-		return new PropertyAspectAdapter<JavaEmbeddable, JavaConverterHolder>(getSubjectHolder()) {
-			@Override
-			protected JavaConverterHolder buildValue_() {
-				return ((EclipseLinkJavaEmbeddable) this.subject).getConverterHolder();
-			}	
-		};
-	}
-	
-	protected void initializeAdvancedPane(Composite container) {
-		new EclipseLinkEmbeddableAdvancedComposite(this, container);
-	}
-}
\ No newline at end of file
diff --git a/jpa/plugins/org.eclipse.jpt.eclipselink.ui/src/org/eclipse/jpt/eclipselink/ui/internal/java/details/EclipseLinkJavaEntityComposite.java b/jpa/plugins/org.eclipse.jpt.eclipselink.ui/src/org/eclipse/jpt/eclipselink/ui/internal/java/details/EclipseLinkJavaEntityComposite.java
deleted file mode 100644
index 2b16826..0000000
--- a/jpa/plugins/org.eclipse.jpt.eclipselink.ui/src/org/eclipse/jpt/eclipselink/ui/internal/java/details/EclipseLinkJavaEntityComposite.java
+++ /dev/null
@@ -1,119 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- *
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.eclipselink.ui.internal.java.details;
-
-import org.eclipse.jpt.core.context.java.JavaEntity;
-import org.eclipse.jpt.eclipselink.core.context.java.EclipseLinkJavaEntity;
-import org.eclipse.jpt.eclipselink.core.context.java.JavaCaching;
-import org.eclipse.jpt.eclipselink.core.context.java.JavaConverterHolder;
-import org.eclipse.jpt.eclipselink.ui.internal.mappings.EclipseLinkUiMappingsMessages;
-import org.eclipse.jpt.eclipselink.ui.internal.mappings.details.EclipseLinkEntityAdvancedComposite;
-import org.eclipse.jpt.ui.WidgetFactory;
-import org.eclipse.jpt.ui.internal.java.details.JavaInheritanceComposite;
-import org.eclipse.jpt.ui.internal.java.details.JavaSecondaryTablesComposite;
-import org.eclipse.jpt.ui.internal.mappings.details.AbstractEntityComposite;
-import org.eclipse.jpt.utility.internal.model.value.PropertyAspectAdapter;
-import org.eclipse.jpt.utility.model.value.PropertyValueModel;
-import org.eclipse.swt.widgets.Composite;
-
-/**
- * The pane used for an EclipseLink Java entity.
- *
- * @see EclipseLinkJavaEntity
- * @see EclipselinkJpaUiFactory - The factory creating this pane
- *
- * @version 2.1
- * @since 2.1
- */
-public class EclipseLinkJavaEntityComposite extends AbstractEntityComposite<JavaEntity>
-{
-	/**
-	 * Creates a new <code>EclipseLinkJavaEntityComposite</code>.
-	 *
-	 * @param subjectHolder The holder of the subject <code>JavaEntity</code>
-	 * @param parent The parent container
-	 * @param widgetFactory The factory used to create various common widgets
-	 */
-	public EclipseLinkJavaEntityComposite(PropertyValueModel<? extends JavaEntity> subjectHolder,
-	                           Composite parent,
-	                           WidgetFactory widgetFactory) {
-
-		super(subjectHolder, parent, widgetFactory);
-	}
-
-	
-	@Override
-	protected void initializeLayout(Composite container) {
-		initializeGeneralPane(container);
-		initializeCachingPane(container);
-		initializeQueriesPane(container);
-		initializeInheritancePane(container);
-		initializeAttributeOverridesPane(container);
-		initializeGeneratorsPane(container);
-		initializeConvertersPane(container);
-		initializeSecondaryTablesPane(container);
-		initializeAdvancedPane(container);
-	}
-	
-	protected void initializeCachingPane(Composite container) {
-
-		container = addCollapsableSection(
-			addSubPane(container, 5),
-			EclipseLinkUiMappingsMessages.EclipseLinkTypeMappingComposite_caching
-		);
-
-		new JavaCachingComposite(this, buildCachingHolder(), container);
-	}
-
-	private PropertyAspectAdapter<JavaEntity, JavaCaching> buildCachingHolder() {
-		return new PropertyAspectAdapter<JavaEntity, JavaCaching>(
-			getSubjectHolder())
-		{
-			@Override
-			protected JavaCaching buildValue_() {
-				return ((EclipseLinkJavaEntity) this.subject).getCaching();
-			}
-		};
-		
-	}
-
-	protected void initializeConvertersPane(Composite container) {
-
-		container = addCollapsableSection(
-			container,
-			EclipseLinkUiMappingsMessages.EclipseLinkTypeMappingComposite_converters
-		);
-
-		new ConvertersComposite(this, buildConverterHolderValueModel(), container);
-	}
-
-	protected PropertyValueModel<JavaConverterHolder> buildConverterHolderValueModel() {
-		return new PropertyAspectAdapter<JavaEntity, JavaConverterHolder>(getSubjectHolder()) {
-			@Override
-			protected JavaConverterHolder buildValue_() {
-				return ((EclipseLinkJavaEntity) this.subject).getConverterHolder();
-			}	
-		};
-	}
-	
-	@Override
-	protected void addSecondaryTablesComposite(Composite container) {
-		new JavaSecondaryTablesComposite(this, container);
-	}
-	
-	@Override
-	protected void addInheritanceComposite(Composite container) {
-		new JavaInheritanceComposite(this, container);
-	}
-	
-	protected void initializeAdvancedPane(Composite container) {
-		new EclipseLinkEntityAdvancedComposite(this, container);
-	}
-}
\ No newline at end of file
diff --git a/jpa/plugins/org.eclipse.jpt.eclipselink.ui/src/org/eclipse/jpt/eclipselink/ui/internal/java/details/EclipseLinkJavaMappedSuperclassComposite.java b/jpa/plugins/org.eclipse.jpt.eclipselink.ui/src/org/eclipse/jpt/eclipselink/ui/internal/java/details/EclipseLinkJavaMappedSuperclassComposite.java
deleted file mode 100644
index e087936..0000000
--- a/jpa/plugins/org.eclipse.jpt.eclipselink.ui/src/org/eclipse/jpt/eclipselink/ui/internal/java/details/EclipseLinkJavaMappedSuperclassComposite.java
+++ /dev/null
@@ -1,103 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- *
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.eclipselink.ui.internal.java.details;
-
-import org.eclipse.jpt.core.context.java.JavaMappedSuperclass;
-import org.eclipse.jpt.eclipselink.core.context.java.EclipseLinkJavaMappedSuperclass;
-import org.eclipse.jpt.eclipselink.core.context.java.JavaCaching;
-import org.eclipse.jpt.eclipselink.core.context.java.JavaConverterHolder;
-import org.eclipse.jpt.eclipselink.ui.internal.mappings.EclipseLinkUiMappingsMessages;
-import org.eclipse.jpt.eclipselink.ui.internal.mappings.details.EclipseLinkMappedSuperclassAdvancedComposite;
-import org.eclipse.jpt.ui.WidgetFactory;
-import org.eclipse.jpt.ui.details.JpaComposite;
-import org.eclipse.jpt.ui.internal.mappings.details.IdClassComposite;
-import org.eclipse.jpt.ui.internal.widgets.FormPane;
-import org.eclipse.jpt.utility.internal.model.value.PropertyAspectAdapter;
-import org.eclipse.jpt.utility.model.value.PropertyValueModel;
-import org.eclipse.swt.widgets.Composite;
-
-/**
- * The pane used for an EclipseLink Java Mapped Superclass.
- *
- * @see EclipseLinkMappedSuperclass
- * @see EclipselinkJpaUiFactory - The factory creating this pane
- *
- * @version 2.1
- * @since 2.1
- */
-public class EclipseLinkJavaMappedSuperclassComposite extends FormPane<JavaMappedSuperclass>
-                                       implements JpaComposite
-{
-	/**
-	 * Creates a new <code>MappedSuperclassComposite</code>.
-	 *
-	 * @param subjectHolder The holder of this pane's subject
-	 * @param parent The parent container
-	 * @param widgetFactory The factory used to create various common widgets
-	 */
-	public EclipseLinkJavaMappedSuperclassComposite(PropertyValueModel<? extends JavaMappedSuperclass> subjectHolder,
-	                                 Composite parent,
-	                                 WidgetFactory widgetFactory) {
-
-		super(subjectHolder, parent, widgetFactory);
-	}
-
-	@Override
-	protected void initializeLayout(Composite container) {
-		new IdClassComposite(this, container);
-		
-		initializeCachingPane(container);
-		initializeConvertersPane(container);
-		initializeAdvancedPane(container);
-	}
-	
-	protected void initializeCachingPane(Composite container) {
-
-		container = addCollapsableSection(
-			addSubPane(container, 5),
-			EclipseLinkUiMappingsMessages.EclipseLinkTypeMappingComposite_caching
-		);
-
-		new JavaCachingComposite(this, buildCachingHolder(), container);
-	}
-
-	private PropertyAspectAdapter<JavaMappedSuperclass, JavaCaching> buildCachingHolder() {
-		return new PropertyAspectAdapter<JavaMappedSuperclass, JavaCaching>(
-			getSubjectHolder())
-		{
-			@Override
-			protected JavaCaching buildValue_() {
-				return ((EclipseLinkJavaMappedSuperclass) this.subject).getCaching();
-			}
-		};
-	}
-	
-	protected void initializeConvertersPane(Composite container) {
-		container = addCollapsableSection(
-			container,
-			EclipseLinkUiMappingsMessages.EclipseLinkTypeMappingComposite_converters
-		);
-
-		new ConvertersComposite(this, buildConverterHolderValueModel(), container);
-	}
-
-	protected PropertyValueModel<JavaConverterHolder> buildConverterHolderValueModel() {
-		return new PropertyAspectAdapter<JavaMappedSuperclass, JavaConverterHolder>(getSubjectHolder()) {
-			@Override
-			protected JavaConverterHolder buildValue_() {
-				return ((EclipseLinkJavaMappedSuperclass) this.subject).getConverterHolder();
-			}	
-		};
-	}
-	
-	protected void initializeAdvancedPane(Composite container) {
-		new EclipseLinkMappedSuperclassAdvancedComposite(this, container);
-	}
-}
\ No newline at end of file
diff --git a/jpa/plugins/org.eclipse.jpt.eclipselink.ui/src/org/eclipse/jpt/eclipselink/ui/internal/java/details/EclipseLinkJavaTransformationMappingUiProvider.java b/jpa/plugins/org.eclipse.jpt.eclipselink.ui/src/org/eclipse/jpt/eclipselink/ui/internal/java/details/EclipseLinkJavaTransformationMappingUiProvider.java
deleted file mode 100644
index 6fa7ad0..0000000
--- a/jpa/plugins/org.eclipse.jpt.eclipselink.ui/src/org/eclipse/jpt/eclipselink/ui/internal/java/details/EclipseLinkJavaTransformationMappingUiProvider.java
+++ /dev/null
@@ -1,57 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- *
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.eclipselink.ui.internal.java.details;
-
-import org.eclipse.core.runtime.content.IContentType;
-import org.eclipse.jpt.core.JptCorePlugin;
-import org.eclipse.jpt.eclipselink.core.context.TransformationMapping;
-import org.eclipse.jpt.eclipselink.ui.internal.mappings.details.EclipseLinkTransformationMappingUiProvider;
-import org.eclipse.jpt.eclipselink.ui.internal.mappings.details.TransformationMappingComposite;
-import org.eclipse.jpt.ui.JpaUiFactory;
-import org.eclipse.jpt.ui.WidgetFactory;
-import org.eclipse.jpt.ui.details.AttributeMappingUiProvider;
-import org.eclipse.jpt.ui.details.JpaComposite;
-import org.eclipse.jpt.utility.model.value.PropertyValueModel;
-import org.eclipse.swt.widgets.Composite;
-
-public class EclipseLinkJavaTransformationMappingUiProvider extends EclipseLinkTransformationMappingUiProvider<TransformationMapping>
-{
-	// singleton
-	private static final EclipseLinkJavaTransformationMappingUiProvider INSTANCE = 
-		new EclipseLinkJavaTransformationMappingUiProvider();
-	
-	/**
-	 * Return the singleton.
-	 */
-	public static AttributeMappingUiProvider<TransformationMapping> instance() {
-		return INSTANCE;
-	}
-	
-	
-	/**
-	 * Ensure single instance.
-	 */
-	private EclipseLinkJavaTransformationMappingUiProvider() {
-		super();
-	}
-	
-	public IContentType getContentType() {
-		return JptCorePlugin.JAVA_SOURCE_CONTENT_TYPE;
-	}
-	
-	public JpaComposite buildAttributeMappingComposite(
-		JpaUiFactory factory,
-		PropertyValueModel<TransformationMapping> subjectHolder,
-		Composite parent,
-		WidgetFactory widgetFactory) {
-		
-		return new TransformationMappingComposite(subjectHolder, parent, widgetFactory);
-	}
-}
diff --git a/jpa/plugins/org.eclipse.jpt.eclipselink.ui/src/org/eclipse/jpt/eclipselink/ui/internal/java/details/EclipseLinkJavaVariableOneToOneMappingUiProvider.java b/jpa/plugins/org.eclipse.jpt.eclipselink.ui/src/org/eclipse/jpt/eclipselink/ui/internal/java/details/EclipseLinkJavaVariableOneToOneMappingUiProvider.java
deleted file mode 100644
index 32de38e..0000000
--- a/jpa/plugins/org.eclipse.jpt.eclipselink.ui/src/org/eclipse/jpt/eclipselink/ui/internal/java/details/EclipseLinkJavaVariableOneToOneMappingUiProvider.java
+++ /dev/null
@@ -1,56 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- *
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.eclipselink.ui.internal.java.details;
-
-import org.eclipse.core.runtime.content.IContentType;
-import org.eclipse.jpt.core.JptCorePlugin;
-import org.eclipse.jpt.eclipselink.core.context.VariableOneToOneMapping;
-import org.eclipse.jpt.eclipselink.ui.internal.mappings.details.EclipseLinkVariableOneToOneMappingUiProvider;
-import org.eclipse.jpt.eclipselink.ui.internal.mappings.details.VariableOneToOneMappingComposite;
-import org.eclipse.jpt.ui.JpaUiFactory;
-import org.eclipse.jpt.ui.WidgetFactory;
-import org.eclipse.jpt.ui.details.AttributeMappingUiProvider;
-import org.eclipse.jpt.ui.details.JpaComposite;
-import org.eclipse.jpt.utility.model.value.PropertyValueModel;
-import org.eclipse.swt.widgets.Composite;
-
-public class EclipseLinkJavaVariableOneToOneMappingUiProvider extends EclipseLinkVariableOneToOneMappingUiProvider<VariableOneToOneMapping>
-{
-	// singleton
-	private static final EclipseLinkJavaVariableOneToOneMappingUiProvider INSTANCE = 
-		new EclipseLinkJavaVariableOneToOneMappingUiProvider();
-	
-	/**
-	 * Return the singleton.
-	 */
-	public static AttributeMappingUiProvider<VariableOneToOneMapping> instance() {
-		return INSTANCE;
-	}
-	
-	
-	/**
-	 * Ensure single instance.
-	 */
-	private EclipseLinkJavaVariableOneToOneMappingUiProvider() {
-		super();
-	}
-	
-	public IContentType getContentType() {
-		return JptCorePlugin.JAVA_SOURCE_CONTENT_TYPE;
-	}
-
-	public JpaComposite buildAttributeMappingComposite(
-			JpaUiFactory factory,
-			PropertyValueModel<VariableOneToOneMapping> subjectHolder,
-			Composite parent,
-			WidgetFactory widgetFactory) {
-		return new VariableOneToOneMappingComposite(subjectHolder, parent, widgetFactory);
-	}
-}
diff --git a/jpa/plugins/org.eclipse.jpt.eclipselink.ui/src/org/eclipse/jpt/eclipselink/ui/internal/java/details/JavaCachingComposite.java b/jpa/plugins/org.eclipse.jpt.eclipselink.ui/src/org/eclipse/jpt/eclipselink/ui/internal/java/details/JavaCachingComposite.java
deleted file mode 100644
index 8fd9e54..0000000
--- a/jpa/plugins/org.eclipse.jpt.eclipselink.ui/src/org/eclipse/jpt/eclipselink/ui/internal/java/details/JavaCachingComposite.java
+++ /dev/null
@@ -1,62 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- *
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.eclipselink.ui.internal.java.details;
-
-import org.eclipse.jpt.eclipselink.core.context.java.JavaCaching;
-import org.eclipse.jpt.eclipselink.ui.internal.mappings.details.CachingComposite;
-import org.eclipse.jpt.ui.internal.widgets.FormPane;
-import org.eclipse.jpt.utility.model.value.PropertyValueModel;
-import org.eclipse.swt.widgets.Composite;
-
-/**
- * This pane shows the caching options.
- * <p>
- * Here the layout of this pane:
- * <pre>
- * -----------------------------------------------------------------------------
- * | x Shared                                                                  |
- * |    CacheTypeComposite                                                     |
- * |    CacheSizeComposite                                                     |
- * |    > Advanced   	                                                       |
- * |    	ExpiryComposite                                                    |
- * |    	AlwaysRefreshComposite                                             |
- * |   		RefreshOnlyIfNewerComposite                                        |
- * |    	DisableHitsComposite                                               |
- * |    	CacheCoordinationComposite                                         |
- * | ExistenceTypeComposite                                                    |
- * -----------------------------------------------------------------------------</pre>
- *
- * @see Entity
- * @see EclipseLinkCaching
- * @see EclipseLinkJavaEntityComposite - The parent container
- * @see CacheTypeComposite
- * @see CacheSizeComposite
- * @see AlwaysRefreshComposite
- * @see RefreshOnlyIfNewerComposite
- * @see DisableHitsComposite
- *
- * @version 2.1
- * @since 2.1
- */
-public class JavaCachingComposite extends CachingComposite<JavaCaching>
-{
-
-	public JavaCachingComposite(FormPane<?> parentPane,
-        PropertyValueModel<JavaCaching> subjectHolder,
-        Composite parent) {
-
-		super(parentPane, subjectHolder, parent);
-	}
-
-	@Override
-	protected void initializeExistenceCheckingComposite(Composite parent) {
-		new JavaExistenceCheckingComposite(this, parent);
-	}
-}
\ No newline at end of file
diff --git a/jpa/plugins/org.eclipse.jpt.eclipselink.ui/src/org/eclipse/jpt/eclipselink/ui/internal/java/details/JavaExistenceCheckingComposite.java b/jpa/plugins/org.eclipse.jpt.eclipselink.ui/src/org/eclipse/jpt/eclipselink/ui/internal/java/details/JavaExistenceCheckingComposite.java
deleted file mode 100644
index e230321..0000000
--- a/jpa/plugins/org.eclipse.jpt.eclipselink.ui/src/org/eclipse/jpt/eclipselink/ui/internal/java/details/JavaExistenceCheckingComposite.java
+++ /dev/null
@@ -1,128 +0,0 @@
-/*******************************************************************************
- *  Copyright (c) 2008 Oracle. All rights reserved. This
- *  program and the accompanying materials are made available under the terms of
- *  the Eclipse Public License v1.0 which accompanies this distribution, and is
- *  available at http://www.eclipse.org/legal/epl-v10.html
- *
- *  Contributors: Oracle. - initial API and implementation
- *******************************************************************************/
-package org.eclipse.jpt.eclipselink.ui.internal.java.details;
-
-import java.util.Collection;
-import org.eclipse.jpt.eclipselink.core.context.Caching;
-import org.eclipse.jpt.eclipselink.core.context.ExistenceType;
-import org.eclipse.jpt.eclipselink.core.context.java.JavaCaching;
-import org.eclipse.jpt.eclipselink.ui.internal.mappings.EclipseLinkUiMappingsMessages;
-import org.eclipse.jpt.ui.internal.widgets.EnumFormComboViewer;
-import org.eclipse.jpt.ui.internal.widgets.FormPane;
-import org.eclipse.jpt.utility.internal.model.value.PropertyAspectAdapter;
-import org.eclipse.jpt.utility.model.value.WritablePropertyValueModel;
-import org.eclipse.swt.widgets.Composite;
-
-/**
- * Here is the layout of this pane:
- * <pre>
- * -------------------------------------------------------------------------
- * |       			  		---------------------------------------------- |
- * | x Existence Checking:  |                                          |v| |
- * |       					---------------------------------------------- |
- * -------------------------------------------------------------------------</pre>
- *
- * @see EclipseLinkCaching
- * @see CachingComposite - A container of this widget
- *
- * @version 2.1
- * @since 2.1
- */
-public class JavaExistenceCheckingComposite extends FormPane<JavaCaching> {
-
-	/**
-	 * Creates a new <code>ExistenceCheckingComposite</code>.
-	 *
-	 * @param parentPane The parent container of this one
-	 * @param parent The parent container
-	 */
-	public JavaExistenceCheckingComposite(FormPane<? extends JavaCaching> parentPane,
-	                          Composite parent) {
-
-		super(parentPane, parent, false);
-	}
-
-	@Override
-	protected void initializeLayout(Composite container) {
-
-		addLabeledComposite( 
-            container, 
-            addCheckBox( 
-                 container, 
-                 EclipseLinkUiMappingsMessages.ExistenceCheckingComposite_label, 
-                 buildExistenceCheckingHolder(), 
-                 null 
-            ), 
-            addExistenceCheckingTypeCombo(container).getControl(), 
-            null 
-       );
-	}
-
-	private EnumFormComboViewer<Caching, ExistenceType> addExistenceCheckingTypeCombo(Composite container) {
-
-		return new EnumFormComboViewer<Caching, ExistenceType>(this, container) {
-
-			@Override
-			protected void addPropertyNames(Collection<String> propertyNames) {
-				super.addPropertyNames(propertyNames);
-				propertyNames.add(Caching.DEFAULT_EXISTENCE_TYPE_PROPERTY);
-				propertyNames.add(Caching.SPECIFIED_EXISTENCE_TYPE_PROPERTY);
-			}
-
-			@Override
-			protected ExistenceType[] getChoices() {
-				return ExistenceType.values();
-			}
-
-			@Override
-			protected ExistenceType getDefaultValue() {
-				return getSubject().getDefaultExistenceType();
-			}
-
-			@Override
-			protected String displayString(ExistenceType value) {
-				return buildDisplayString(
-					EclipseLinkUiMappingsMessages.class,
-					JavaExistenceCheckingComposite.this,
-					value
-				);
-			}
-
-			@Override
-			protected ExistenceType getValue() {
-				return getSubject().getSpecifiedExistenceType();
-			}
-
-			@Override
-			protected void setValue(ExistenceType value) {
-				getSubject().setSpecifiedExistenceType(value);
-			}
-			
-			@Override
-			protected boolean sortChoices() {
-				return false;
-			}
-		};
-	}
-	
-	private WritablePropertyValueModel<Boolean> buildExistenceCheckingHolder() {
-		return new PropertyAspectAdapter<JavaCaching, Boolean>(getSubjectHolder(), JavaCaching.EXISTENCE_CHECKING_PROPERTY) {
-			@Override
-			protected Boolean buildValue_() {
-				return Boolean.valueOf(this.subject.hasExistenceChecking());
-			}
-
-			@Override
-			protected void setValue_(Boolean value) {
-				this.subject.setExistenceChecking(value.booleanValue());
-			}
-		};
-	}
-
-}
diff --git a/jpa/plugins/org.eclipse.jpt.eclipselink.ui/src/org/eclipse/jpt/eclipselink/ui/internal/mappings/EclipseLinkUiMappingsMessages.java b/jpa/plugins/org.eclipse.jpt.eclipselink.ui/src/org/eclipse/jpt/eclipselink/ui/internal/mappings/EclipseLinkUiMappingsMessages.java
deleted file mode 100644
index e441151..0000000
--- a/jpa/plugins/org.eclipse.jpt.eclipselink.ui/src/org/eclipse/jpt/eclipselink/ui/internal/mappings/EclipseLinkUiMappingsMessages.java
+++ /dev/null
@@ -1,169 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008, 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the terms of
- * the Eclipse Public License v1.0, which accompanies this distribution and is available at
- * http://www.eclipse.org/legal/epl-v10.html.
- *
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.eclipselink.ui.internal.mappings;
-
-import org.eclipse.osgi.util.NLS;
-
-/**
- * The localized strings used by the mapping panes.
- *
- * @version 2.2
- * @since 1.0
- */
-@SuppressWarnings("nls")
-public class EclipseLinkUiMappingsMessages extends NLS {
-
-	public static String BasicCollectionMappingUiProvider_label;
-	public static String BasicCollectionMappingUiProvider_linkLabel;
-	
-	public static String BasicMapMappingUiProvider_label;
-	public static String BasicMapMappingUiProvider_linkLabel;
-	
-	public static String TransformationMappingUiProvider_label;
-	public static String TransformationMappingUiProvider_linkLabel;
-
-	public static String VariableOneToOneMappingUiProvider_label;
-	public static String VariableOneToOneMappingUiProvider_linkLabel;
-
-	public static String CacheTypeComposite_label;
-	public static String CacheTypeComposite_full;
-	public static String CacheTypeComposite_weak;
-	public static String CacheTypeComposite_soft;
-	public static String CacheTypeComposite_soft_weak;
-	public static String CacheTypeComposite_hard_weak;
-	public static String CacheTypeComposite_cache;
-	public static String CacheTypeComposite_none;
-	public static String EclipseLinkTypeMappingComposite_advanced;
-	public static String EclipseLinkTypeMappingComposite_caching;
-	public static String EclipseLinkTypeMappingComposite_converters;
-	
-	public static String CacheSizeComposite_size;
-	public static String CacheCoordinationTypeComposite_label;
-	public static String CacheCoordinationTypeComposite_send_object_changes;
-	public static String CacheCoordinationTypeComposite_invalidate_changed_objects;
-	public static String CacheCoordinationTypeComposite_send_new_objects_with_changes;
-	public static String CacheCoordinationTypeComposite_none;
-
-	public static String CachingComposite_sharedLabelDefault;
-	public static String CachingComposite_sharedLabel;
-	public static String CachingComposite_advanced;
-	public static String AlwaysRefreshComposite_alwaysRefreshDefault;
-	public static String AlwaysRefreshComposite_alwaysRefreshLabel;
-	public static String RefreshOnlyIfNewerComposite_refreshOnlyIfNewerDefault;
-	public static String RefreshOnlyIfNewerComposite_refreshOnlyIfNewerLabel;
-	public static String DisableHitsComposite_disableHitsDefault;
-	public static String DisableHitsComposite_disableHitsLabel;
-	
-	public static String ChangeTrackingComposite_label;
-	public static String ChangeTrackingComposite_attribute;
-	public static String ChangeTrackingComposite_object;
-	public static String ChangeTrackingComposite_deferred;
-	public static String ChangeTrackingComposite_auto;
-	
-	public static String ConvertComposite_converterNameLabel;
-	public static String ConvertComposite_defineConverterSection;
-	public static String ConvertComposite_default;
-	public static String ConvertComposite_custom;
-	public static String ConvertComposite_type;
-	public static String ConvertComposite_objectType;
-	public static String ConvertComposite_struct;
-	
-	public static String ConverterComposite_nameTextLabel;
-	public static String ConverterComposite_classLabel;
-
-	public static String ConvertersComposite_customConverter;
-	public static String ConvertersComposite_objectTypeConverter;
-	public static String ConvertersComposite_structConverter;
-	public static String ConvertersComposite_typeConverter;
-	
-	public static String CustomizerComposite_classLabel;
-		
-	public static String TypeSection_converted;
-	
-	public static String ExistenceCheckingComposite_label;
-	public static String JavaExistenceCheckingComposite_check_cache;
-	public static String JavaExistenceCheckingComposite_check_database;
-	public static String JavaExistenceCheckingComposite_assume_existence;
-	public static String JavaExistenceCheckingComposite_assume_non_existence;
-	public static String OrmExistenceCheckingComposite_check_cache;
-	public static String OrmExistenceCheckingComposite_check_database;
-	public static String OrmExistenceCheckingComposite_assume_existence;
-	public static String OrmExistenceCheckingComposite_assume_non_existence;
-	
-	public static String ExpiryComposite_expirySection;
-	public static String ExpiryComposite_noExpiry;
-	public static String ExpiryComposite_timeToLiveExpiry;
-	public static String ExpiryComposite_timeToLiveExpiryExpireAfter;
-	public static String ExpiryComposite_timeToLiveExpiryMilliseconds;
-	public static String ExpiryComposite_dailyExpiry;
-	public static String ExpiryComposite_timeOfDayExpiryExpireAt;
-	
-	public static String JoinFetchComposite_label;
-	public static String JoinFetchComposite_inner;
-	public static String JoinFetchComposite_outer;	
-	
-	public static String MutableComposite_mutableLabel;
-	public static String MutableComposite_mutableLabelDefault;
-	public static String MutableComposite_true;
-	public static String MutableComposite_false;
-	
-	public static String ObjectTypeConverterComposite_dataTypeLabel;
-	public static String ObjectTypeConverterComposite_objectTypeLabel;
-	public static String ObjectTypeConverterComposite_conversionValueEdit;
-	public static String ObjectTypeConverterComposite_conversionValuesDataValueColumn;
-	public static String ObjectTypeConverterComposite_conversionValuesObjectValueColumn;
-	public static String ObjectTypeConverterComposite_defaultObjectValueLabel;
-	public static String ObjectTypeConverterComposite_conversionValuesGroupTitle;
-	
-	public static String ConversionValueDialog_addConversionValue;
-	public static String ConversionValueDialog_editConversionValue;
-	public static String ConversionValueDialog_addConversionValueDescriptionTitle;
-	public static String ConversionValueDialog_editConversionValueDescriptionTitle;
-	public static String ConversionValueDialog_addConversionValueDescription;
-	public static String ConversionValueDialog_editConversionValueDescription;
-	
-	public static String ConversionValueDialog_dataValue;
-	public static String ConversionValueDialog_objectValue;
-	public static String ConversionValueStateObject_dataValueMustBeSpecified;
-	public static String ConversionValueStateObject_objectValueMustBeSpecified;
-	public static String ConversionValueStateObject_dataValueAlreadyExists;
-	
-	public static String PrivateOwnedComposite_privateOwnedLabel;
-	
-	public static String ReadOnlyComposite_readOnlyLabel;
-	public static String ReadOnlyComposite_readOnlyWithDefault;
-	
-	public static String TypeConverterComposite_dataTypeLabel;
-	public static String TypeConverterComposite_objectTypeLabel;
-
-	public static String DefaultOneToOneMappingUiProvider_label;
-	public static String DefaultVariableOneToOneMappingUiProvider_label;
-	public static String DefaultOneToManyMappingUiProvider_label;
-	public static String DefaultOneToOneMappingUiProvider_linkLabel;
-	public static String DefaultVariableOneToOneMappingUiProvider_linkLabel;
-	public static String DefaultOneToManyMappingUiProvider_linkLabel;
-	
-	public static String ConvertersComposite_Label;
-	public static String EclipseLinkConverterDialog_name;
-	public static String EclipseLinkConverterDialog_converterType;
-	public static String EclipseLinkConverterDialog_addConverter;
-	public static String EclipseLinkConverterDialog_addConverterDescriptionTitle;
-	public static String EclipseLinkConverterDialog_addConverterDescription;
-	public static String EclipseLinkConverterStateObject_nameMustBeSpecified;
-	public static String EclipseLinkConverterStateObject_typeMustBeSpecified;
-	
-	static {
-		NLS.initializeMessages("eclipselink_ui_mappings", EclipseLinkUiMappingsMessages.class);
-	}
-
-	private EclipseLinkUiMappingsMessages() {
-		throw new UnsupportedOperationException();
-	}
-}
\ No newline at end of file
diff --git a/jpa/plugins/org.eclipse.jpt.eclipselink.ui/src/org/eclipse/jpt/eclipselink/ui/internal/mappings/details/AlwaysRefreshComposite.java b/jpa/plugins/org.eclipse.jpt.eclipselink.ui/src/org/eclipse/jpt/eclipselink/ui/internal/mappings/details/AlwaysRefreshComposite.java
deleted file mode 100644
index 3d3bcf9..0000000
--- a/jpa/plugins/org.eclipse.jpt.eclipselink.ui/src/org/eclipse/jpt/eclipselink/ui/internal/mappings/details/AlwaysRefreshComposite.java
+++ /dev/null
@@ -1,113 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- *
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.eclipselink.ui.internal.mappings.details;
-
-import org.eclipse.jpt.eclipselink.core.context.Caching;
-import org.eclipse.jpt.eclipselink.ui.internal.EclipseLinkHelpContextIds;
-import org.eclipse.jpt.eclipselink.ui.internal.mappings.EclipseLinkUiMappingsMessages;
-import org.eclipse.jpt.ui.internal.mappings.JptUiMappingsMessages;
-import org.eclipse.jpt.ui.internal.widgets.FormPane;
-import org.eclipse.jpt.utility.internal.model.value.PropertyAspectAdapter;
-import org.eclipse.jpt.utility.internal.model.value.TransformationPropertyValueModel;
-import org.eclipse.jpt.utility.model.value.PropertyValueModel;
-import org.eclipse.jpt.utility.model.value.WritablePropertyValueModel;
-import org.eclipse.osgi.util.NLS;
-import org.eclipse.swt.widgets.Composite;
-
-
-/**
- * This composite simply shows a tri-state check box for the Always Refresh option.
- * 
- * @see EclipseLinkCaching
- * @see CachingComposite - A container of this widget
- *
- * @version 2.1
- * @since 2.1
- */
-public class AlwaysRefreshComposite extends FormPane<Caching>
-{
-	/**
-	 * Creates a new <code>OptionalComposite</code>.
-	 *
-	 * @param parentPane The parent container of this one
-	 * @param parent The parent container
-	 */
-	public AlwaysRefreshComposite(FormPane<? extends Caching> parentPane,
-	                         Composite parent)
-	{
-		super(parentPane, parent);
-	}
-
-	private WritablePropertyValueModel<Boolean> buildAlwaysRefreshHolder() {
-		return new PropertyAspectAdapter<Caching, Boolean>(getSubjectHolder(), Caching.SPECIFIED_ALWAYS_REFRESH_PROPERTY) {
-			@Override
-			protected Boolean buildValue_() {
-				return this.subject.getSpecifiedAlwaysRefresh();
-			}
-
-			@Override
-			protected void setValue_(Boolean value) {
-				this.subject.setSpecifiedAlwaysRefresh(value);
-			}
-
-			@Override
-			protected void subjectChanged() {
-				Object oldValue = this.getValue();
-				super.subjectChanged();
-				Object newValue = this.getValue();
-
-				// Make sure the default value is appended to the text
-				if (oldValue == newValue && newValue == null) {
-					this.fireAspectChange(Boolean.TRUE, newValue);
-				}
-			}
-		};
-	}
-
-	private PropertyValueModel<String> buildAlwaysRefreshStringHolder() {
-
-		return new TransformationPropertyValueModel<Boolean, String>(buildAlwaysRefreshHolder()) {
-
-			@Override
-			protected String transform(Boolean value) {
-
-				if ((getSubject() != null) && (value == null)) {
-
-					Boolean defaultValue = getSubject().isDefaultAlwaysRefresh();
-
-					if (defaultValue != null) {
-
-						String defaultStringValue = defaultValue ? JptUiMappingsMessages.Boolean_True :
-						                                           JptUiMappingsMessages.Boolean_False;
-
-						return NLS.bind(
-							EclipseLinkUiMappingsMessages.AlwaysRefreshComposite_alwaysRefreshDefault,
-							defaultStringValue
-						);
-					}
-				}
-
-				return EclipseLinkUiMappingsMessages.AlwaysRefreshComposite_alwaysRefreshLabel;
-			}
-		};
-	}
-	
-	@Override
-	protected void initializeLayout(Composite container) {
-
-		addTriStateCheckBoxWithDefault(
-			container,
-			EclipseLinkUiMappingsMessages.AlwaysRefreshComposite_alwaysRefreshLabel,
-			buildAlwaysRefreshHolder(),
-			buildAlwaysRefreshStringHolder(),
-			EclipseLinkHelpContextIds.CACHING_ALWAYS_REFRESH
-		);
-	}
-}
\ No newline at end of file
diff --git a/jpa/plugins/org.eclipse.jpt.eclipselink.ui/src/org/eclipse/jpt/eclipselink/ui/internal/mappings/details/BasicCollectionMappingComposite.java b/jpa/plugins/org.eclipse.jpt.eclipselink.ui/src/org/eclipse/jpt/eclipselink/ui/internal/mappings/details/BasicCollectionMappingComposite.java
deleted file mode 100644
index 32e48c6..0000000
--- a/jpa/plugins/org.eclipse.jpt.eclipselink.ui/src/org/eclipse/jpt/eclipselink/ui/internal/mappings/details/BasicCollectionMappingComposite.java
+++ /dev/null
@@ -1,45 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- *
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.eclipselink.ui.internal.mappings.details;
-
-import org.eclipse.jpt.eclipselink.core.context.BasicCollectionMapping;
-import org.eclipse.jpt.ui.WidgetFactory;
-import org.eclipse.jpt.ui.details.JpaComposite;
-import org.eclipse.jpt.ui.internal.widgets.FormPane;
-import org.eclipse.jpt.utility.model.value.PropertyValueModel;
-import org.eclipse.swt.widgets.Composite;
-
-/**
- *
- * @version 2.1
- * @since 2.1
- */
-public class BasicCollectionMappingComposite extends FormPane<BasicCollectionMapping>
-                                       implements JpaComposite
-{
-	/**
-	 * Creates a new <code>EclipseLinkBasicCollectionMappingComposite</code>.
-	 *
-	 * @param subjectHolder The holder of the subject <code>IManyToOneMapping</code>
-	 * @param parent The parent container
-	 * @param widgetFactory The factory used to create various common widgets
-	 */
-	public BasicCollectionMappingComposite(PropertyValueModel<? extends BasicCollectionMapping> subjectHolder,
-	                                 Composite parent,
-	                                 WidgetFactory widgetFactory) {
-
-		super(subjectHolder, parent, widgetFactory);
-	}
-
-	@Override
-	protected void initializeLayout(Composite container) {
-
-	}
-}
diff --git a/jpa/plugins/org.eclipse.jpt.eclipselink.ui/src/org/eclipse/jpt/eclipselink/ui/internal/mappings/details/BasicMapMappingComposite.java b/jpa/plugins/org.eclipse.jpt.eclipselink.ui/src/org/eclipse/jpt/eclipselink/ui/internal/mappings/details/BasicMapMappingComposite.java
deleted file mode 100644
index 0003404..0000000
--- a/jpa/plugins/org.eclipse.jpt.eclipselink.ui/src/org/eclipse/jpt/eclipselink/ui/internal/mappings/details/BasicMapMappingComposite.java
+++ /dev/null
@@ -1,45 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- *
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.eclipselink.ui.internal.mappings.details;
-
-import org.eclipse.jpt.eclipselink.core.context.BasicMapMapping;
-import org.eclipse.jpt.ui.WidgetFactory;
-import org.eclipse.jpt.ui.details.JpaComposite;
-import org.eclipse.jpt.ui.internal.widgets.FormPane;
-import org.eclipse.jpt.utility.model.value.PropertyValueModel;
-import org.eclipse.swt.widgets.Composite;
-
-/**
- *
- * @version 2.1
- * @since 2.1
- */
-public class BasicMapMappingComposite extends FormPane<BasicMapMapping>
-                                       implements JpaComposite
-{
-	/**
-	 * Creates a new <code>EclipseLinkBasicCollectionMappingComposite</code>.
-	 *
-	 * @param subjectHolder The holder of the subject <code>IManyToOneMapping</code>
-	 * @param parent The parent container
-	 * @param widgetFactory The factory used to create various common widgets
-	 */
-	public BasicMapMappingComposite(PropertyValueModel<? extends BasicMapMapping> subjectHolder,
-	                                 Composite parent,
-	                                 WidgetFactory widgetFactory) {
-
-		super(subjectHolder, parent, widgetFactory);
-	}
-
-	@Override
-	protected void initializeLayout(Composite container) {
-
-	}
-}
diff --git a/jpa/plugins/org.eclipse.jpt.eclipselink.ui/src/org/eclipse/jpt/eclipselink/ui/internal/mappings/details/CacheCoordinationTypeComposite.java b/jpa/plugins/org.eclipse.jpt.eclipselink.ui/src/org/eclipse/jpt/eclipselink/ui/internal/mappings/details/CacheCoordinationTypeComposite.java
deleted file mode 100644
index b5217f9..0000000
--- a/jpa/plugins/org.eclipse.jpt.eclipselink.ui/src/org/eclipse/jpt/eclipselink/ui/internal/mappings/details/CacheCoordinationTypeComposite.java
+++ /dev/null
@@ -1,106 +0,0 @@
-/*******************************************************************************
- *  Copyright (c) 2008 Oracle. All rights reserved. This
- *  program and the accompanying materials are made available under the terms of
- *  the Eclipse Public License v1.0 which accompanies this distribution, and is
- *  available at http://www.eclipse.org/legal/epl-v10.html
- *
- *  Contributors: Oracle. - initial API and implementation
- *******************************************************************************/
-package org.eclipse.jpt.eclipselink.ui.internal.mappings.details;
-
-import java.util.Collection;
-import org.eclipse.jpt.eclipselink.core.context.CacheCoordinationType;
-import org.eclipse.jpt.eclipselink.core.context.Caching;
-import org.eclipse.jpt.eclipselink.ui.internal.EclipseLinkHelpContextIds;
-import org.eclipse.jpt.eclipselink.ui.internal.mappings.EclipseLinkUiMappingsMessages;
-import org.eclipse.jpt.ui.internal.widgets.EnumFormComboViewer;
-import org.eclipse.jpt.ui.internal.widgets.FormPane;
-import org.eclipse.swt.widgets.Composite;
-
-/**
- * Here is the layout of this pane:
- * <pre>
- * ----------------------------------------------------------------------------
- * |                    ----------------------------------------------------- |
- * | Coordination Type: |                                                 |v| |
- * |                    ----------------------------------------------------- |
- * ----------------------------------------------------------------------------</pre>
- *
- * @see EclipseLinkCaching
- * @see CachingComposite - A container of this widget
- *
- * @version 2.1
- * @since 2.1
- */
-public class CacheCoordinationTypeComposite extends FormPane<Caching> {
-
-	/**
-	 * Creates a new <code>CacheTypeComposite</code>.
-	 *
-	 * @param parentPane The parent container of this one
-	 * @param parent The parent container
-	 */
-	public CacheCoordinationTypeComposite(FormPane<? extends Caching> parentPane,
-	                          Composite parent) {
-
-		super(parentPane, parent);
-	}
-
-	private EnumFormComboViewer<Caching, CacheCoordinationType> addCacheCoordinationTypeCombo(Composite container) {
-
-		return new EnumFormComboViewer<Caching, CacheCoordinationType>(this, container) {
-
-			@Override
-			protected void addPropertyNames(Collection<String> propertyNames) {
-				super.addPropertyNames(propertyNames);
-				propertyNames.add(Caching.DEFAULT_COORDINATION_TYPE_PROPERTY);
-				propertyNames.add(Caching.SPECIFIED_COORDINATION_TYPE_PROPERTY);
-			}
-
-			@Override
-			protected CacheCoordinationType[] getChoices() {
-				return CacheCoordinationType.values();
-			}
-
-			@Override
-			protected CacheCoordinationType getDefaultValue() {
-				return getSubject().getDefaultCoordinationType();
-			}
-
-			@Override
-			protected String displayString(CacheCoordinationType value) {
-				return buildDisplayString(
-					EclipseLinkUiMappingsMessages.class,
-					CacheCoordinationTypeComposite.this,
-					value
-				);
-			}
-
-			@Override
-			protected CacheCoordinationType getValue() {
-				return getSubject().getSpecifiedCoordinationType();
-			}
-
-			@Override
-			protected void setValue(CacheCoordinationType value) {
-				getSubject().setSpecifiedCoordinationType(value);
-			}
-			
-			@Override
-			protected boolean sortChoices() {
-				return false;
-			}
-		};
-	}
-
-	@Override
-	protected void initializeLayout(Composite container) {
-
-		addLabeledComposite(
-			container,
-			EclipseLinkUiMappingsMessages.CacheCoordinationTypeComposite_label,
-			addCacheCoordinationTypeCombo(container),
-			EclipseLinkHelpContextIds.CACHING_CACHE_COORDINATION_TYPE
-		);
-	}
-}
diff --git a/jpa/plugins/org.eclipse.jpt.eclipselink.ui/src/org/eclipse/jpt/eclipselink/ui/internal/mappings/details/CacheSizeComposite.java b/jpa/plugins/org.eclipse.jpt.eclipselink.ui/src/org/eclipse/jpt/eclipselink/ui/internal/mappings/details/CacheSizeComposite.java
deleted file mode 100644
index cf26c7d..0000000
--- a/jpa/plugins/org.eclipse.jpt.eclipselink.ui/src/org/eclipse/jpt/eclipselink/ui/internal/mappings/details/CacheSizeComposite.java
+++ /dev/null
@@ -1,94 +0,0 @@
-/*******************************************************************************
- *  Copyright (c) 2008 Oracle. All rights reserved. This
- *  program and the accompanying materials are made available under the terms of
- *  the Eclipse Public License v1.0 which accompanies this distribution, and is
- *  available at http://www.eclipse.org/legal/epl-v10.html
- *
- *  Contributors: Oracle. - initial API and implementation
- *******************************************************************************/
-package org.eclipse.jpt.eclipselink.ui.internal.mappings.details;
-
-import org.eclipse.jpt.eclipselink.core.context.Caching;
-import org.eclipse.jpt.eclipselink.ui.internal.mappings.EclipseLinkUiMappingsMessages;
-import org.eclipse.jpt.ui.internal.widgets.FormPane;
-import org.eclipse.jpt.ui.internal.widgets.IntegerCombo;
-import org.eclipse.jpt.utility.internal.model.value.PropertyAspectAdapter;
-import org.eclipse.jpt.utility.model.value.PropertyValueModel;
-import org.eclipse.jpt.utility.model.value.WritablePropertyValueModel;
-import org.eclipse.swt.widgets.Composite;
-
-/**
- * Here is the layout of this pane:
- * <pre>
- * ----------------------------------------------------------------------------
- * |                      ---------------                                      |
- * |   Size:              | I         |I|  Default (XXX)                       |
- * |                      ---------------                                      |
- * ----------------------------------------------------------------------------</pre>
- *
- * @see EclipseLinkCaching
- * @see CachingComposite - A container of this widget
- *
- * @version 2.1
- * @since 2.1
- */
-public class CacheSizeComposite extends FormPane<Caching> {
-
-	/**
-	 * Creates a new <code>CacheSizeComposite</code>.
-	 *
-	 * @param parentPane The parent container of this one
-	 * @param parent The parent container
-	 */
-	public CacheSizeComposite(FormPane<? extends Caching> parentPane,
-	                          Composite parent) {
-
-		super(parentPane, parent);
-	}
-
-	@Override
-	protected void initializeLayout(Composite container) {
-		addSizeCombo(container);
-	}
-	
-	private void addSizeCombo(Composite container) {
-		new IntegerCombo<Caching>(this, container) {
-			
-			@Override
-			protected String getLabelText() {
-				return EclipseLinkUiMappingsMessages.CacheSizeComposite_size;
-			}
-		
-			@Override
-			protected String getHelpId() {
-				return null;//JpaHelpContextIds.MAPPING_COLUMN_LENGTH;
-			}
-
-			@Override
-			protected PropertyValueModel<Integer> buildDefaultHolder() {
-				return new PropertyAspectAdapter<Caching, Integer>(getSubjectHolder(), Caching.DEFAULT_SIZE_PROPERTY) {
-					@Override
-					protected Integer buildValue_() {
-						return Integer.valueOf(this.subject.getDefaultSize());
-					}
-				};
-			}
-			
-			@Override
-			protected WritablePropertyValueModel<Integer> buildSelectedItemHolder() {
-				return new PropertyAspectAdapter<Caching, Integer>(getSubjectHolder(), Caching.SPECIFIED_SIZE_PROPERTY) {
-					@Override
-					protected Integer buildValue_() {
-						return this.subject.getSpecifiedSize();
-					}
-
-					@Override
-					protected void setValue_(Integer value) {
-						this.subject.setSpecifiedSize(value);
-					}
-				};
-			}
-		};
-	}
-
-}
diff --git a/jpa/plugins/org.eclipse.jpt.eclipselink.ui/src/org/eclipse/jpt/eclipselink/ui/internal/mappings/details/CacheTypeComposite.java b/jpa/plugins/org.eclipse.jpt.eclipselink.ui/src/org/eclipse/jpt/eclipselink/ui/internal/mappings/details/CacheTypeComposite.java
deleted file mode 100644
index d6981e0..0000000
--- a/jpa/plugins/org.eclipse.jpt.eclipselink.ui/src/org/eclipse/jpt/eclipselink/ui/internal/mappings/details/CacheTypeComposite.java
+++ /dev/null
@@ -1,106 +0,0 @@
-/*******************************************************************************
- *  Copyright (c) 2008 Oracle. All rights reserved. This
- *  program and the accompanying materials are made available under the terms of
- *  the Eclipse Public License v1.0 which accompanies this distribution, and is
- *  available at http://www.eclipse.org/legal/epl-v10.html
- *
- *  Contributors: Oracle. - initial API and implementation
- *******************************************************************************/
-package org.eclipse.jpt.eclipselink.ui.internal.mappings.details;
-
-import java.util.Collection;
-import org.eclipse.jpt.eclipselink.core.context.CacheType;
-import org.eclipse.jpt.eclipselink.core.context.Caching;
-import org.eclipse.jpt.eclipselink.ui.internal.EclipseLinkHelpContextIds;
-import org.eclipse.jpt.eclipselink.ui.internal.mappings.EclipseLinkUiMappingsMessages;
-import org.eclipse.jpt.ui.internal.widgets.EnumFormComboViewer;
-import org.eclipse.jpt.ui.internal.widgets.FormPane;
-import org.eclipse.swt.widgets.Composite;
-
-/**
- * Here is the layout of this pane:
- * <pre>
- * ----------------------------------------------------------------------------
- * |       ------------------------------------------------------------------ |
- * | Type: |                                                              |v| |
- * |       ------------------------------------------------------------------ |
- * ----------------------------------------------------------------------------</pre>
- *
- * @see EclipseLinkCaching
- * @see CachingComposite - A container of this widget
- *
- * @version 2.1
- * @since 2.1
- */
-public class CacheTypeComposite extends FormPane<Caching> {
-
-	/**
-	 * Creates a new <code>CacheTypeComposite</code>.
-	 *
-	 * @param parentPane The parent container of this one
-	 * @param parent The parent container
-	 */
-	public CacheTypeComposite(FormPane<? extends Caching> parentPane,
-	                          Composite parent) {
-
-		super(parentPane, parent);
-	}
-
-	private EnumFormComboViewer<Caching, CacheType> addCacheTypeCombo(Composite container) {
-
-		return new EnumFormComboViewer<Caching, CacheType>(this, container) {
-
-			@Override
-			protected void addPropertyNames(Collection<String> propertyNames) {
-				super.addPropertyNames(propertyNames);
-				propertyNames.add(Caching.DEFAULT_TYPE_PROPERTY);
-				propertyNames.add(Caching.SPECIFIED_TYPE_PROPERTY);
-			}
-
-			@Override
-			protected CacheType[] getChoices() {
-				return CacheType.values();
-			}
-
-			@Override
-			protected CacheType getDefaultValue() {
-				return getSubject().getDefaultType();
-			}
-
-			@Override
-			protected String displayString(CacheType value) {
-				return buildDisplayString(
-					EclipseLinkUiMappingsMessages.class,
-					CacheTypeComposite.this,
-					value
-				);
-			}
-
-			@Override
-			protected CacheType getValue() {
-				return getSubject().getSpecifiedType();
-			}
-
-			@Override
-			protected void setValue(CacheType value) {
-				getSubject().setSpecifiedType(value);
-			}
-			
-			@Override
-			protected boolean sortChoices() {
-				return false;
-			}
-		};
-	}
-
-	@Override
-	protected void initializeLayout(Composite container) {
-
-		addLabeledComposite(
-			container,
-			EclipseLinkUiMappingsMessages.CacheTypeComposite_label,
-			addCacheTypeCombo(container),
-			EclipseLinkHelpContextIds.CACHING_CACHE_TYPE
-		);
-	}
-}
diff --git a/jpa/plugins/org.eclipse.jpt.eclipselink.ui/src/org/eclipse/jpt/eclipselink/ui/internal/mappings/details/CachingComposite.java b/jpa/plugins/org.eclipse.jpt.eclipselink.ui/src/org/eclipse/jpt/eclipselink/ui/internal/mappings/details/CachingComposite.java
deleted file mode 100644
index 7c64a82..0000000
--- a/jpa/plugins/org.eclipse.jpt.eclipselink.ui/src/org/eclipse/jpt/eclipselink/ui/internal/mappings/details/CachingComposite.java
+++ /dev/null
@@ -1,178 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- *
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.eclipselink.ui.internal.mappings.details;
-
-import java.util.ArrayList;
-import java.util.Collection;
-import org.eclipse.jpt.eclipselink.core.context.Caching;
-import org.eclipse.jpt.eclipselink.ui.internal.EclipseLinkHelpContextIds;
-import org.eclipse.jpt.eclipselink.ui.internal.mappings.EclipseLinkUiMappingsMessages;
-import org.eclipse.jpt.eclipselink.ui.internal.mappings.details.AlwaysRefreshComposite;
-import org.eclipse.jpt.eclipselink.ui.internal.mappings.details.CacheCoordinationTypeComposite;
-import org.eclipse.jpt.eclipselink.ui.internal.mappings.details.CacheSizeComposite;
-import org.eclipse.jpt.eclipselink.ui.internal.mappings.details.CacheTypeComposite;
-import org.eclipse.jpt.eclipselink.ui.internal.mappings.details.DisableHitsComposite;
-import org.eclipse.jpt.eclipselink.ui.internal.mappings.details.ExpiryComposite;
-import org.eclipse.jpt.eclipselink.ui.internal.mappings.details.RefreshOnlyIfNewerComposite;
-import org.eclipse.jpt.ui.internal.mappings.JptUiMappingsMessages;
-import org.eclipse.jpt.ui.internal.util.PaneEnabler;
-import org.eclipse.jpt.ui.internal.widgets.FormPane;
-import org.eclipse.jpt.ui.internal.widgets.Pane;
-import org.eclipse.jpt.utility.internal.model.value.PropertyAspectAdapter;
-import org.eclipse.jpt.utility.internal.model.value.SimplePropertyValueModel;
-import org.eclipse.jpt.utility.internal.model.value.TransformationPropertyValueModel;
-import org.eclipse.jpt.utility.model.value.PropertyValueModel;
-import org.eclipse.jpt.utility.model.value.WritablePropertyValueModel;
-import org.eclipse.osgi.util.NLS;
-import org.eclipse.swt.widgets.Composite;
-
-/**
- * This pane shows the caching options.
- * <p>
- * Here the layout of this pane:
- * <pre>
- * -----------------------------------------------------------------------------
- * | x Shared                                                                  |
- * |    CacheTypeComposite                                                     |
- * |    CacheSizeComposite                                                     |
- * |    > Advanced   	                                                       |
- * |    	ExpiryComposite                                                    |
- * |    	AlwaysRefreshComposite                                             |
- * |   		RefreshOnlyIfNewerComposite                                        |
- * |    	DisableHitsComposite                                               |
- * |    	CacheCoordinationComposite                                         |
- * | ExistenceTypeComposite                                                    |
- * -----------------------------------------------------------------------------</pre>
- *
- * @see Entity
- * @see EclipseLinkCaching
- * @see EclipseLinkJavaEntityComposite - The parent container
- * @see CacheTypeComposite
- * @see CacheSizeComposite
- * @see AlwaysRefreshComposite
- * @see RefreshOnlyIfNewerComposite
- * @see DisableHitsComposite
- *
- * @version 2.1
- * @since 2.1
- */
-public abstract class CachingComposite<T extends Caching> extends FormPane<T>
-{
-
-	protected CachingComposite(FormPane<?> parentPane,
-        PropertyValueModel<T> subjectHolder,
-        Composite parent) {
-
-		super(parentPane, subjectHolder, parent, false);
-	}
-
-	@Override
-	protected void initializeLayout(Composite container) {
-
-		//Shared Check box, uncheck this and the rest of the panel is disabled
-		addTriStateCheckBoxWithDefault(
-			addSubPane(container, 8),
-			EclipseLinkUiMappingsMessages.CachingComposite_sharedLabel,
-			buildSharedHolder(),
-			buildSharedStringHolder(),
-			EclipseLinkHelpContextIds.CACHING_SHARED
-		);
-
-		Composite subPane = addSubPane(container, 0, 16);
-
-		Collection<Pane<?>> panes = new ArrayList<Pane<?>>();
-		
-		panes.add(new CacheTypeComposite(this, subPane));
-		panes.add(new CacheSizeComposite(this, subPane));
-		
-		// Advanced sub-pane
-		Composite advancedSection = addCollapsableSubSection(
-			subPane,
-			EclipseLinkUiMappingsMessages.CachingComposite_advanced,
-			new SimplePropertyValueModel<Boolean>(Boolean.FALSE)
-		);
-
-		initializeAdvancedPane(addSubPane(advancedSection, 0, 16), panes);
-			
-		new PaneEnabler(buildSharedCacheEnabler(), panes);
-		
-		initializeExistenceCheckingComposite(addSubPane(container, 8));
-	}
-	
-	protected void initializeAdvancedPane(Composite container, Collection<Pane<?>> panes) {
-		panes.add(new ExpiryComposite(this, container));
-		panes.add(new AlwaysRefreshComposite(this, container));
-		panes.add(new RefreshOnlyIfNewerComposite(this, container));
-		panes.add(new DisableHitsComposite(this, container));
-		panes.add(new CacheCoordinationTypeComposite(this, container));
-	}
-	
-	protected abstract void initializeExistenceCheckingComposite(Composite parent);
-	
-	private PropertyValueModel<Boolean> buildSharedCacheEnabler() {
-		return new PropertyAspectAdapter<Caching, Boolean>(getSubjectHolder(), Caching.SPECIFIED_SHARED_PROPERTY) {
-			@Override
-			protected Boolean buildValue_() {
-				return Boolean.valueOf(this.subject.isShared());
-			}
-		};
-	}	
-	
-	private WritablePropertyValueModel<Boolean> buildSharedHolder() {
-		return new PropertyAspectAdapter<Caching, Boolean>(getSubjectHolder(), Caching.SPECIFIED_SHARED_PROPERTY) {
-			@Override
-			protected Boolean buildValue_() {
-				return this.subject.getSpecifiedShared();
-			}
-
-			@Override
-			protected void setValue_(Boolean value) {
-				this.subject.setSpecifiedShared(value);
-			}
-
-			@Override
-			protected void subjectChanged() {
-				Object oldValue = this.getValue();
-				super.subjectChanged();
-				Object newValue = this.getValue();
-
-				// Make sure the default value is appended to the text
-				if (oldValue == newValue && newValue == null) {
-					this.fireAspectChange(Boolean.TRUE, newValue);
-				}
-			}
-		};
-	}
-
-	private PropertyValueModel<String> buildSharedStringHolder() {
-
-		return new TransformationPropertyValueModel<Boolean, String>(buildSharedHolder()) {
-
-			@Override
-			protected String transform(Boolean value) {
-
-				if ((getSubject() != null) && (value == null)) {
-					boolean defaultValue = getSubject().isDefaultShared();
-
-					String defaultStringValue = defaultValue ? JptUiMappingsMessages.Boolean_True :
-					                                           JptUiMappingsMessages.Boolean_False;
-
-					return NLS.bind(
-						EclipseLinkUiMappingsMessages.CachingComposite_sharedLabelDefault,
-						defaultStringValue
-					);
-				}
-
-				return EclipseLinkUiMappingsMessages.CachingComposite_sharedLabel;
-			}
-		};
-	}
-
-}
\ No newline at end of file
diff --git a/jpa/plugins/org.eclipse.jpt.eclipselink.ui/src/org/eclipse/jpt/eclipselink/ui/internal/mappings/details/ChangeTrackingComposite.java b/jpa/plugins/org.eclipse.jpt.eclipselink.ui/src/org/eclipse/jpt/eclipselink/ui/internal/mappings/details/ChangeTrackingComposite.java
deleted file mode 100644
index 70457d0..0000000
--- a/jpa/plugins/org.eclipse.jpt.eclipselink.ui/src/org/eclipse/jpt/eclipselink/ui/internal/mappings/details/ChangeTrackingComposite.java
+++ /dev/null
@@ -1,108 +0,0 @@
-/*******************************************************************************
- *  Copyright (c) 2008 Oracle. All rights reserved. This
- *  program and the accompanying materials are made available under the terms of
- *  the Eclipse Public License v1.0 which accompanies this distribution, and is
- *  available at http://www.eclipse.org/legal/epl-v10.html
- *
- *  Contributors: Oracle. - initial API and implementation
- *******************************************************************************/
-package org.eclipse.jpt.eclipselink.ui.internal.mappings.details;
-
-import java.util.Collection;
-import org.eclipse.jpt.eclipselink.core.context.ChangeTracking;
-import org.eclipse.jpt.eclipselink.core.context.ChangeTrackingType;
-import org.eclipse.jpt.eclipselink.ui.internal.mappings.EclipseLinkUiMappingsMessages;
-import org.eclipse.jpt.ui.internal.widgets.EnumFormComboViewer;
-import org.eclipse.jpt.ui.internal.widgets.FormPane;
-import org.eclipse.jpt.utility.model.value.PropertyValueModel;
-import org.eclipse.swt.widgets.Composite;
-
-/**
- * Here is the layout of this pane:
- * <pre>
- * -------------------------------------------------------------------------
- * |       			  		---------------------------------------------- |
- * | Change Tracking :      |                                          |v| |
- * |       					---------------------------------------------- |
- * -------------------------------------------------------------------------</pre>
- *
- * @see ChangeTracking
- *
- * @version 2.1
- * @since 2.1
- */
-public class ChangeTrackingComposite extends FormPane<ChangeTracking> {
-
-	/**
-	 * Creates a new <code>ChangeTrackingComposite</code>.
-	 *
-	 * @param parentPane The parent container of this one
-	 * @param parent The parent container
-	 */
-	public ChangeTrackingComposite(FormPane<?> parentPane, 
-								PropertyValueModel<? extends ChangeTracking> subjectHolder,
-								Composite parent) {
-
-		super(parentPane, subjectHolder, parent);
-	}
-
-	@Override
-	protected void initializeLayout(Composite container) {
-
-		addLabeledComposite( 
-            container,
-            addLabel( 
-                 container, 
-                 EclipseLinkUiMappingsMessages.ChangeTrackingComposite_label), 
-            addChangeTrackingTypeCombo(container).getControl(), 
-            null 
-       );
-	}
-
-	private EnumFormComboViewer<ChangeTracking, ChangeTrackingType> addChangeTrackingTypeCombo(Composite container) {
-
-		return new EnumFormComboViewer<ChangeTracking, ChangeTrackingType>(this, container) {
-
-			@Override
-			protected void addPropertyNames(Collection<String> propertyNames) {
-				super.addPropertyNames(propertyNames);
-				propertyNames.add(ChangeTracking.DEFAULT_TYPE_PROPERTY);
-				propertyNames.add(ChangeTracking.SPECIFIED_TYPE_PROPERTY);
-			}
-
-			@Override
-			protected ChangeTrackingType[] getChoices() {
-				return ChangeTrackingType.values();
-			}
-
-			@Override
-			protected ChangeTrackingType getDefaultValue() {
-				return getSubject().getDefaultType();
-			}
-
-			@Override
-			protected String displayString(ChangeTrackingType value) {
-				return buildDisplayString(
-					EclipseLinkUiMappingsMessages.class,
-					ChangeTrackingComposite.this,
-					value
-				);
-			}
-
-			@Override
-			protected ChangeTrackingType getValue() {
-				return getSubject().getSpecifiedType();
-			}
-
-			@Override
-			protected void setValue(ChangeTrackingType value) {
-				getSubject().setSpecifiedType(value);
-			}
-			
-			@Override
-			protected boolean sortChoices() {
-				return false;
-			}
-		};
-	}
-}
diff --git a/jpa/plugins/org.eclipse.jpt.eclipselink.ui/src/org/eclipse/jpt/eclipselink/ui/internal/mappings/details/ConversionValueDialog.java b/jpa/plugins/org.eclipse.jpt.eclipselink.ui/src/org/eclipse/jpt/eclipselink/ui/internal/mappings/details/ConversionValueDialog.java
deleted file mode 100644
index e884da8..0000000
--- a/jpa/plugins/org.eclipse.jpt.eclipselink.ui/src/org/eclipse/jpt/eclipselink/ui/internal/mappings/details/ConversionValueDialog.java
+++ /dev/null
@@ -1,210 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- *
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.eclipselink.ui.internal.mappings.details;
-
-import java.util.Set;
-import org.eclipse.jpt.eclipselink.core.context.ConversionValue;
-import org.eclipse.jpt.eclipselink.core.context.ObjectTypeConverter;
-import org.eclipse.jpt.eclipselink.ui.internal.mappings.EclipseLinkUiMappingsMessages;
-import org.eclipse.jpt.ui.internal.widgets.DialogPane;
-import org.eclipse.jpt.ui.internal.widgets.ValidatingDialog;
-import org.eclipse.jpt.utility.internal.CollectionTools;
-import org.eclipse.jpt.utility.internal.model.value.PropertyAspectAdapter;
-import org.eclipse.jpt.utility.model.value.WritablePropertyValueModel;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Shell;
-import org.eclipse.swt.widgets.Text;
-
-/**
- * Clients can use this dialog to prompt the user for SecondaryTable settings.
- * Use the following once the dialog is closed:
- *     @see #getSelectedTable()
- *     @see #getSelectedCatalog()
- *     @see #getSelectedSchema()
- * @version 2.1
- * @since 2.1
- */
-public class ConversionValueDialog extends ValidatingDialog<ConversionValueStateObject> {
-
-	/**
-	 * when creating a new EclipseLinkConversionValue, 'conversionValue' will be null
-	 */
-	private final ConversionValue conversionValue;
-
-	private ObjectTypeConverter objectTypeConverter;
-	
-	// ********** constructors **********
-
-	/**
-	 * Use this constructor to create a new conversion value
-	 */
-	public ConversionValueDialog(Shell parent, ObjectTypeConverter objectTypeConverter) {
-		this(parent,objectTypeConverter, null);
-	}
-
-	/**
-	 * Use this constructor to edit an existing conversion value
-	 */
-	public ConversionValueDialog(Shell parent, ObjectTypeConverter objectTypeConverter, ConversionValue conversionValue) {
-		super(parent);
-		this.objectTypeConverter = objectTypeConverter;
-		this.conversionValue = conversionValue;
-	}
-
-	@Override
-	protected ConversionValueStateObject buildStateObject() {
-		String dataValue = null;
-		String objectValue = null;
-		Set<String> dataValues = CollectionTools.set(this.objectTypeConverter.dataValues());
-		if (isEditDialog()) {
-			dataValue = this.conversionValue.getDataValue();
-			objectValue = this.conversionValue.getObjectValue();
-			//remove *this* dataValue, don't want a duplicate data value error
-			dataValues.remove(dataValue);
-		}
-		return new ConversionValueStateObject(
-			dataValue, 
-			objectValue, 
-			dataValues);
-	}
-
-	// ********** open **********
-
-	@Override
-	protected void configureShell(Shell shell) {
-		super.configureShell(shell);
-		shell.setText(this.getTitle());
-	}
-
-	@Override
-	protected String getTitle() {
-		return (this.isAddDialog()) ?
-						EclipseLinkUiMappingsMessages.ConversionValueDialog_addConversionValue
-					:
-						EclipseLinkUiMappingsMessages.ConversionValueDialog_editConversionValue;
-	}
-
-	@Override
-	protected String getDescriptionTitle() {
-		return (this.isAddDialog()) ?
-			EclipseLinkUiMappingsMessages.ConversionValueDialog_addConversionValueDescriptionTitle
-		:
-			EclipseLinkUiMappingsMessages.ConversionValueDialog_editConversionValueDescriptionTitle;
-	}
-	
-	@Override
-	protected String getDescription() {
-		return (this.isAddDialog()) ?
-			EclipseLinkUiMappingsMessages.ConversionValueDialog_addConversionValueDescription
-		:
-			EclipseLinkUiMappingsMessages.ConversionValueDialog_editConversionValueDescription;
-	}
-	
-	@Override
-	protected DialogPane<ConversionValueStateObject> buildLayout(Composite container) {
-		return new ConversionValueDialogPane(container);
-	}
-	
-	@Override
-	public void create() {
-		super.create();
-
-		ConversionValueDialogPane pane = (ConversionValueDialogPane) getPane();
-		pane.selectAll();
-
-		getButton(OK).setEnabled(false);
-	}
-
-
-	// ********** convenience methods **********
-
-	protected boolean isAddDialog() {
-		return this.conversionValue == null;
-	}
-
-	protected boolean isEditDialog() {
-		return ! this.isAddDialog();
-	}
-
-
-	// ********** public API **********
-
-	/**
-	 * Return the data value set in the text widget.
-	 */
-	public String getDataValue() {
-		return getSubject().getDataValue();
-	}
-
-	/**
-	 * Return the object value set in the text widget.
-	 */
-	public String getObjectValue() {
-		return getSubject().getObjectValue();
-	}
-	
-	private class ConversionValueDialogPane extends DialogPane<ConversionValueStateObject> {
-
-		private Text dataValueText;
-		private Text objectValueText;
-
-		ConversionValueDialogPane(Composite parent) {
-			super(ConversionValueDialog.this.getSubjectHolder(), parent);
-		}
-
-		@Override
-		protected void initializeLayout(Composite container) {
-			this.dataValueText = addLabeledText(
-				container,
-				EclipseLinkUiMappingsMessages.ConversionValueDialog_dataValue,
-				buildDataValueHolder()
-			);
-			
-			this.objectValueText = addLabeledText(
-				container,
-				EclipseLinkUiMappingsMessages.ConversionValueDialog_objectValue,
-				buildObjectValueHolder()
-			);
-		}
-
-		private WritablePropertyValueModel<String> buildDataValueHolder() {
-			return new PropertyAspectAdapter<ConversionValueStateObject, String>(getSubjectHolder(), ConversionValueStateObject.DATA_VALUE_PROPERTY) {
-				@Override
-				protected String buildValue_() {
-					return this.subject.getDataValue();
-				}
-
-				@Override
-				protected void setValue_(String value) {
-					this.subject.setDataValue(value);
-				}
-			};
-		}
-
-		private WritablePropertyValueModel<String> buildObjectValueHolder() {
-			return new PropertyAspectAdapter<ConversionValueStateObject, String>(getSubjectHolder(), ConversionValueStateObject.OBJECT_VALUE_PROPERTY) {
-				@Override
-				protected String buildValue_() {
-					return this.subject.getObjectValue();
-				}
-
-				@Override
-				protected void setValue_(String value) {
-					this.subject.setObjectValue(value);
-				}
-			};
-		}
-
-		void selectAll() {
-			this.dataValueText.selectAll();
-			this.objectValueText.selectAll();
-		}
-	}
-}
diff --git a/jpa/plugins/org.eclipse.jpt.eclipselink.ui/src/org/eclipse/jpt/eclipselink/ui/internal/mappings/details/ConversionValueStateObject.java b/jpa/plugins/org.eclipse.jpt.eclipselink.ui/src/org/eclipse/jpt/eclipselink/ui/internal/mappings/details/ConversionValueStateObject.java
deleted file mode 100644
index 3bbcf48..0000000
--- a/jpa/plugins/org.eclipse.jpt.eclipselink.ui/src/org/eclipse/jpt/eclipselink/ui/internal/mappings/details/ConversionValueStateObject.java
+++ /dev/null
@@ -1,138 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- *
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.eclipselink.ui.internal.mappings.details;
-
-import java.util.Collection;
-import java.util.List;
-import org.eclipse.jpt.eclipselink.ui.internal.mappings.EclipseLinkUiMappingsMessages;
-import org.eclipse.jpt.utility.internal.StringTools;
-import org.eclipse.jpt.utility.internal.node.AbstractNode;
-import org.eclipse.jpt.utility.internal.node.Node;
-import org.eclipse.jpt.utility.internal.node.Problem;
-
-/**
- * This is the state object used by the <code>NewNameDialog</code>, which stores
- * the current name and validates it when it is modified.
- *
- * @see NewNameDialog
- *
- * @version 2.1
- * @since 2.1
- */
-@SuppressWarnings("nls")
-final class ConversionValueStateObject extends AbstractNode
-{
-	/**
-	 * The initial dataValue or <code>null</code>
-	 */
-	private String dataValue;
-	
-	/**
-	 * The collection of data values that can't be used or an empty collection
-	 */
-	private Collection<String> dataValues;
-
-	/**
-	 * The initial objectValue or <code>null</code>
-	 */
-	private String objectValue;
-
-	/**
-	 * The <code>Validator</code> used to validate this state object.
-	 */
-	private Validator validator;
-
-	/**
-	 * Notifies a change in the data value property.
-	 */
-	static final String DATA_VALUE_PROPERTY = "dataValue";
-	
-	/**
-	 * Notifies a change in the object value property.
-	 */
-	static final String OBJECT_VALUE_PROPERTY = "objectValue";
-
-	/**
-	 * Creates a new <code>NewNameStateObject</code>.
-	 *
-	 * @param name The initial input or <code>null</code> if no initial value can
-	 * be specified
-	 * @param names The collection of names that can't be used or an empty
-	 * collection if none are available
-	 */
-	ConversionValueStateObject(String dataValue, String objectValue, Collection<String> dataValues) {
-		super(null);
-
-		this.dataValue  = dataValue;
-		this.objectValue = objectValue;
-		this.dataValues = dataValues;
-	}
-
-	private void addDataValueProblemsTo(List<Problem> currentProblems) {
-		if (StringTools.stringIsEmpty(this.dataValue)) {
-			currentProblems.add(buildProblem(EclipseLinkUiMappingsMessages.ConversionValueStateObject_dataValueMustBeSpecified));
-		}
-		else if (this.dataValues.contains(this.dataValue)) {
-			currentProblems.add(buildProblem(EclipseLinkUiMappingsMessages.ConversionValueStateObject_dataValueAlreadyExists));
-		}
-	}
-
-	private void addObjectValueProblemsTo(List<Problem> currentProblems) {
-		if (StringTools.stringIsEmpty(this.objectValue)) {
-			currentProblems.add(buildProblem(EclipseLinkUiMappingsMessages.ConversionValueStateObject_objectValueMustBeSpecified));
-		}
-	}
-
-	@Override
-	protected void addProblemsTo(List<Problem> currentProblems) {
-		super.addProblemsTo(currentProblems);
-		addDataValueProblemsTo(currentProblems);
-		addObjectValueProblemsTo(currentProblems);
-	}
-
-	@Override
-	protected void checkParent(Node parentNode) {
-		//not parent
-	}
-
-	public String displayString() {
-		return null;
-	}
-
-	String getDataValue() {
-		return this.dataValue;
-	}
-
-	String getObjectValue() {
-		return this.objectValue;
-	}
-
-	public void setDataValue(String dataValue) {
-		String oldDataValue = this.dataValue;
-		this.dataValue = dataValue;
-		firePropertyChanged(DATA_VALUE_PROPERTY, oldDataValue, dataValue);
-	}
-
-	public void setObjectValue(String objectValue) {
-		String oldObjectValue = this.objectValue;
-		this.objectValue = objectValue;
-		firePropertyChanged(OBJECT_VALUE_PROPERTY, oldObjectValue, objectValue);
-	}
-
-	@Override
-	public void setValidator(Validator validator) {
-		this.validator = validator;
-	}
-
-	@Override
-	public Validator getValidator() {
-		return this.validator;
-	}
-}
diff --git a/jpa/plugins/org.eclipse.jpt.eclipselink.ui/src/org/eclipse/jpt/eclipselink/ui/internal/mappings/details/ConvertComposite.java b/jpa/plugins/org.eclipse.jpt.eclipselink.ui/src/org/eclipse/jpt/eclipselink/ui/internal/mappings/details/ConvertComposite.java
deleted file mode 100644
index 1a3ea33..0000000
--- a/jpa/plugins/org.eclipse.jpt.eclipselink.ui/src/org/eclipse/jpt/eclipselink/ui/internal/mappings/details/ConvertComposite.java
+++ /dev/null
@@ -1,361 +0,0 @@
-/*******************************************************************************
- *  Copyright (c) 2006, 2008 Oracle. All rights reserved. This
- *  program and the accompanying materials are made available under the terms of
- *  the Eclipse Public License v1.0 which accompanies this distribution, and is
- *  available at http://www.eclipse.org/legal/epl-v10.html
- *
- *  Contributors: Oracle. - initial API and implementation
- *******************************************************************************/
-package org.eclipse.jpt.eclipselink.ui.internal.mappings.details;
-
-import java.util.ArrayList;
-import java.util.ListIterator;
-import org.eclipse.jpt.eclipselink.core.context.Convert;
-import org.eclipse.jpt.eclipselink.core.context.CustomConverter;
-import org.eclipse.jpt.eclipselink.core.context.EclipseLinkConverter;
-import org.eclipse.jpt.eclipselink.core.context.ObjectTypeConverter;
-import org.eclipse.jpt.eclipselink.core.context.StructConverter;
-import org.eclipse.jpt.eclipselink.core.context.TypeConverter;
-import org.eclipse.jpt.eclipselink.core.internal.context.persistence.EclipseLinkPersistenceUnit;
-import org.eclipse.jpt.eclipselink.ui.internal.mappings.EclipseLinkUiMappingsMessages;
-import org.eclipse.jpt.ui.WidgetFactory;
-import org.eclipse.jpt.ui.internal.mappings.JptUiMappingsMessages;
-import org.eclipse.jpt.ui.internal.util.PaneEnabler;
-import org.eclipse.jpt.ui.internal.util.SWTUtil;
-import org.eclipse.jpt.ui.internal.widgets.FormPane;
-import org.eclipse.jpt.utility.internal.CollectionTools;
-import org.eclipse.jpt.utility.internal.StringConverter;
-import org.eclipse.jpt.utility.internal.model.value.CompositeListValueModel;
-import org.eclipse.jpt.utility.internal.model.value.ListAspectAdapter;
-import org.eclipse.jpt.utility.internal.model.value.PropertyAspectAdapter;
-import org.eclipse.jpt.utility.internal.model.value.PropertyListValueModelAdapter;
-import org.eclipse.jpt.utility.internal.model.value.SimplePropertyValueModel;
-import org.eclipse.jpt.utility.internal.model.value.StaticListValueModel;
-import org.eclipse.jpt.utility.internal.model.value.TransformationPropertyValueModel;
-import org.eclipse.jpt.utility.model.value.ListValueModel;
-import org.eclipse.jpt.utility.model.value.PropertyValueModel;
-import org.eclipse.jpt.utility.model.value.WritablePropertyValueModel;
-import org.eclipse.osgi.util.NLS;
-import org.eclipse.swt.custom.CCombo;
-import org.eclipse.swt.layout.GridData;
-import org.eclipse.swt.widgets.Composite;
-
-/**
- * Here the layout of this pane:
- * <pre>
- * -----------------------------------------------------------------------------
- * |            -------------------------------------------------------------- |
- * | Enum Type: |                                                          |v| |
- * |            -------------------------------------------------------------- |
- * -----------------------------------------------------------------------------</pre>
- *
- * @see EclipseLinkConvert
- * @see EclipseLinkBasicMappingComposite - A container of this widget
- *
- * @version 2.1
- * @since 2.1
- */
-public class ConvertComposite extends FormPane<Convert>
-{
-
-	/**
-	 * A key used to represent the default value, this is required to convert
-	 * the selected item from a combo to <code>null</code>. This key is most
-	 * likely never typed the user and it will help to convert the value to
-	 * <code>null</code> when it's time to set the new selected value into the
-	 * model.
-	 */
-	protected static String DEFAULT_KEY = "?!#!?#?#?default?#?!#?!#?"; //$NON-NLS-1$
-	
-	
-	/**
-	 * Creates a new <code>EnumTypeComposite</code>.
-	 *
-	 * @param parentPane The parent container of this one
-	 * @param parent The parent container
-	 */
-	public ConvertComposite(PropertyValueModel<? extends Convert> subjectHolder,
-			Composite parent,
-			WidgetFactory widgetFactory) {
-
-		super(subjectHolder, parent, widgetFactory);
-	}
-
-	@Override
-	protected void initializeLayout(Composite container) {
-		CCombo combo = addLabeledEditableCCombo(
-			container,
-			EclipseLinkUiMappingsMessages.ConvertComposite_converterNameLabel,
-			buildConvertNameListHolder(),
-			buildConvertNameHolder(),
-			buildNameConverter(),
-			null
-		);
-		SWTUtil.attachDefaultValueHandler(combo);
-		
-		Composite subSection = addCollapsableSubSection(
-			container, 
-			EclipseLinkUiMappingsMessages.ConvertComposite_defineConverterSection, 
-			new SimplePropertyValueModel<Boolean>(Boolean.FALSE));
-		
-		// No Converter
-		addRadioButton(
-			subSection, 
-			EclipseLinkUiMappingsMessages.ConvertComposite_default, 
-			buildNoConverterHolder(), 
-			null);
-		PropertyValueModel<EclipseLinkConverter> converterHolder = buildConverterHolder();
-		// CustomConverter
-		addRadioButton(
-			subSection, 
-			EclipseLinkUiMappingsMessages.ConvertComposite_custom, 
-			buildConverterHolder(EclipseLinkConverter.CUSTOM_CONVERTER), 
-			null);
-		CustomConverterComposite converterComposite = new CustomConverterComposite(buildCustomConverterHolder(converterHolder), subSection, getWidgetFactory());
-		GridData gridData = (GridData) converterComposite.getControl().getLayoutData();
-		gridData.horizontalIndent = 20;
-		registerSubPane(converterComposite);
-		
-		// Type Converter
-		addRadioButton(
-			subSection, 
-			EclipseLinkUiMappingsMessages.ConvertComposite_type, 
-			buildConverterHolder(EclipseLinkConverter.TYPE_CONVERTER), 
-			null);
-		TypeConverterComposite typeConverterComposite = new TypeConverterComposite(buildTypeConverterHolder(converterHolder), subSection, getWidgetFactory());
-		gridData = (GridData) typeConverterComposite.getControl().getLayoutData();
-		gridData.horizontalIndent = 20;
-		registerSubPane(typeConverterComposite);
-
-		// Object Type Converter
-		addRadioButton(
-			subSection, 
-			EclipseLinkUiMappingsMessages.ConvertComposite_objectType, 
-			buildConverterHolder(EclipseLinkConverter.OBJECT_TYPE_CONVERTER), 
-			null);
-		ObjectTypeConverterComposite objectTypeConverterComposite = new ObjectTypeConverterComposite(buildObjectTypeConverterHolder(converterHolder), subSection, getWidgetFactory());
-		gridData = (GridData) objectTypeConverterComposite.getControl().getLayoutData();
-		gridData.horizontalIndent = 20;
-		registerSubPane(objectTypeConverterComposite);
-
-		// Struct Converter
-		addRadioButton(
-			subSection, 
-			EclipseLinkUiMappingsMessages.ConvertComposite_struct, 
-			buildConverterHolder(EclipseLinkConverter.STRUCT_CONVERTER), 
-			null);
-		StructConverterComposite structConverterComposite = new StructConverterComposite(buildStructConverterHolder(converterHolder), subSection, getWidgetFactory());
-		gridData = (GridData) structConverterComposite.getControl().getLayoutData();
-		gridData.horizontalIndent = 20;
-		registerSubPane(structConverterComposite);
-		
-		new PaneEnabler(buildBooleanHolder(), this);
-	}
-	
-	protected final WritablePropertyValueModel<String> buildConvertNameHolder() {
-		return new PropertyAspectAdapter<Convert, String>(getSubjectHolder(), Convert.SPECIFIED_CONVERTER_NAME_PROPERTY) {
-			@Override
-			protected String buildValue_() {
-				return this.subject.getSpecifiedConverterName();
-			}
-
-			@Override
-			protected void setValue_(String value) {
-				// Convert the default value or an empty string to null
-				if ((value != null) &&
-				   ((value.length() == 0) || value.startsWith(DEFAULT_KEY))) {
-
-					value = null;
-				}
-				this.subject.setSpecifiedConverterName(value);
-			}
-		};
-	}
-	private ListValueModel<String> buildConvertNameListHolder() {
-		java.util.List<ListValueModel<String>> list = new ArrayList<ListValueModel<String>>();
-		list.add(buildDefaultNameListHolder());
-		list.add(buildReservedConverterNameListHolder());
-		list.add(buildConverterNameListHolder());
-		return new CompositeListValueModel<ListValueModel<String>, String>(list);
-	}
-	
-	protected ListValueModel<String> buildDefaultNameListHolder() {
-		return new PropertyListValueModelAdapter<String>(
-			buildDefaultNameHolder()
-		);
-	}
-
-	private WritablePropertyValueModel<String> buildDefaultNameHolder() {
-		return new PropertyAspectAdapter<Convert, String>(getSubjectHolder(), Convert.DEFAULT_CONVERTER_NAME_PROPERTY) {
-			@Override
-			protected String buildValue_() {
-				String name = this.subject.getDefaultConverterName();
-
-				if (name == null) {
-					name = DEFAULT_KEY;
-				}
-				else {
-					name = DEFAULT_KEY + name;
-				}
-
-				return name;
-			}
-		};
-	}
-
-	private StringConverter<String> buildNameConverter() {
-		return new StringConverter<String>() {
-			public String convertToString(String value) {
-
-				if (getSubject() == null) {
-					return value;
-				}
-
-				if (value == null) {
-					value = getSubject().getDefaultConverterName();
-
-					if (value != null) {
-						value = DEFAULT_KEY + value;
-					}
-					else {
-						value = DEFAULT_KEY;
-					}
-				}
-
-				if (value.startsWith(DEFAULT_KEY)) {
-					String defaultName = value.substring(DEFAULT_KEY.length());
-
-					if (defaultName.length() > 0) {
-						value = NLS.bind(
-							JptUiMappingsMessages.DefaultWithOneParam,
-							defaultName
-						);
-					}
-					else {
-						value = JptUiMappingsMessages.DefaultEmpty;
-					}
-				}
-
-				return value;
-			}
-		};
-	}
-
-	protected ListValueModel<String> buildReservedConverterNameListHolder() {
-		return new StaticListValueModel<String>(Convert.RESERVED_CONVERTER_NAMES);
-	}
-	
-	protected ListValueModel<String> buildConverterNameListHolder() {
-		return new ListAspectAdapter<EclipseLinkPersistenceUnit, String>(
-			buildPersistenceUnitHolder(),
-			EclipseLinkPersistenceUnit.CONVERTERS_LIST)//TODO need EclipseLinkPersistenceUnit interface
-		{
-			@Override
-			protected ListIterator<String> listIterator_() {
-				return CollectionTools.listIterator(CollectionTools.sort(this.subject.uniqueConverterNames()));
-			}
-		};
-	}
-	
-	protected PropertyValueModel<EclipseLinkPersistenceUnit> buildPersistenceUnitHolder() {
-		return new PropertyAspectAdapter<Convert, EclipseLinkPersistenceUnit>(getSubjectHolder()) {
-			@Override
-			protected EclipseLinkPersistenceUnit buildValue_() {
-				return (EclipseLinkPersistenceUnit) getSubject().getPersistenceUnit();
-			}
-		};
-	}
-	
-	private WritablePropertyValueModel<Boolean> buildNoConverterHolder() {
-		return new PropertyAspectAdapter<Convert, Boolean>(getSubjectHolder(), Convert.CONVERTER_PROPERTY) {
-			@Override
-			protected Boolean buildValue_() {
-				return Boolean.valueOf(this.subject.getConverter() == null);
-			}
-
-			@Override
-			protected void setValue_(Boolean value) {
-				if (value.booleanValue()) {
-					this.subject.setConverter(EclipseLinkConverter.NO_CONVERTER);
-				}
-			}
-		};
-	}
-	
-	private WritablePropertyValueModel<Boolean> buildConverterHolder(final String converterType) {
-		return new PropertyAspectAdapter<Convert, Boolean>(getSubjectHolder(), Convert.CONVERTER_PROPERTY) {
-			@Override
-			protected Boolean buildValue_() {
-				EclipseLinkConverter converter = this.subject.getConverter();
-				if (converter == null) {
-					return Boolean.FALSE;
-				}
-				return Boolean.valueOf(converter.getType() == converterType);
-			}
-
-			@Override
-			protected void setValue_(Boolean value) {
-				if (value.booleanValue()) {
-					this.subject.setConverter(converterType);
-				}
-			}
-		};
-	}
-	
-	private PropertyValueModel<EclipseLinkConverter> buildConverterHolder() {
-		return new PropertyAspectAdapter<Convert, EclipseLinkConverter>(getSubjectHolder(), Convert.CONVERTER_PROPERTY) {
-			@Override
-			protected EclipseLinkConverter buildValue_() {
-				return this.subject.getConverter();
-			}
-		};
-	}
-	
-	private PropertyValueModel<CustomConverter> buildCustomConverterHolder(PropertyValueModel<EclipseLinkConverter> converterHolder) {
-		return new TransformationPropertyValueModel<EclipseLinkConverter, CustomConverter>(converterHolder) {
-			@Override
-			protected CustomConverter transform_(EclipseLinkConverter converter) {
-				return (converter != null && converter.getType() == EclipseLinkConverter.CUSTOM_CONVERTER) ? (CustomConverter) converter : null;
-			}
-		};
-	}
-	
-	private PropertyValueModel<TypeConverter> buildTypeConverterHolder(PropertyValueModel<EclipseLinkConverter> converterHolder) {
-		return new TransformationPropertyValueModel<EclipseLinkConverter, TypeConverter>(converterHolder) {
-			@Override
-			protected TypeConverter transform_(EclipseLinkConverter converter) {
-				return (converter != null && converter.getType() == EclipseLinkConverter.TYPE_CONVERTER) ? (TypeConverter) converter : null;
-			}
-		};
-	}
-	
-	private PropertyValueModel<ObjectTypeConverter> buildObjectTypeConverterHolder(PropertyValueModel<EclipseLinkConverter> converterHolder) {
-		return new TransformationPropertyValueModel<EclipseLinkConverter, ObjectTypeConverter>(converterHolder) {
-			@Override
-			protected ObjectTypeConverter transform_(EclipseLinkConverter converter) {
-				return (converter != null && converter.getType() == EclipseLinkConverter.OBJECT_TYPE_CONVERTER) ? (ObjectTypeConverter) converter : null;
-			}
-		};
-	}
-	
-	private PropertyValueModel<StructConverter> buildStructConverterHolder(PropertyValueModel<EclipseLinkConverter> converterHolder) {
-		return new TransformationPropertyValueModel<EclipseLinkConverter, StructConverter>(converterHolder) {
-			@Override
-			protected StructConverter transform_(EclipseLinkConverter converter) {
-				return (converter != null && converter.getType() == EclipseLinkConverter.STRUCT_CONVERTER) ? (StructConverter) converter : null;
-			}
-		};
-	}
-
-	protected PropertyValueModel<Boolean> buildBooleanHolder() {
-		return new TransformationPropertyValueModel<Convert, Boolean>(getSubjectHolder()) {
-			@Override
-			protected Boolean transform(Convert value) {
-				if (getSubject() != null && getSubject().getParent().getPersistentAttribute().isVirtual()) {
-					return Boolean.FALSE;
-				}
-				return Boolean.valueOf(value != null);
-			}
-		};
-	}
-}
diff --git a/jpa/plugins/org.eclipse.jpt.eclipselink.ui/src/org/eclipse/jpt/eclipselink/ui/internal/mappings/details/CustomConverterComposite.java b/jpa/plugins/org.eclipse.jpt.eclipselink.ui/src/org/eclipse/jpt/eclipselink/ui/internal/mappings/details/CustomConverterComposite.java
deleted file mode 100644
index 4cf240a..0000000
--- a/jpa/plugins/org.eclipse.jpt.eclipselink.ui/src/org/eclipse/jpt/eclipselink/ui/internal/mappings/details/CustomConverterComposite.java
+++ /dev/null
@@ -1,156 +0,0 @@
-/*******************************************************************************
- *  Copyright (c) 2006, 2009 Oracle. All rights reserved. This
- *  program and the accompanying materials are made available under the terms of
- *  the Eclipse Public License v1.0 which accompanies this distribution, and is
- *  available at http://www.eclipse.org/legal/epl-v10.html
- *
- *  Contributors: Oracle. - initial API and implementation
- *******************************************************************************/
-package org.eclipse.jpt.eclipselink.ui.internal.mappings.details;
-
-import org.eclipse.jpt.core.JpaProject;
-import org.eclipse.jpt.eclipselink.core.context.CustomConverter;
-import org.eclipse.jpt.eclipselink.core.context.EclipseLinkConverter;
-import org.eclipse.jpt.eclipselink.ui.internal.mappings.EclipseLinkUiMappingsMessages;
-import org.eclipse.jpt.ui.WidgetFactory;
-import org.eclipse.jpt.ui.internal.util.PaneEnabler;
-import org.eclipse.jpt.ui.internal.widgets.ClassChooserPane;
-import org.eclipse.jpt.ui.internal.widgets.FormPane;
-import org.eclipse.jpt.utility.internal.model.value.PropertyAspectAdapter;
-import org.eclipse.jpt.utility.internal.model.value.TransformationPropertyValueModel;
-import org.eclipse.jpt.utility.model.value.PropertyValueModel;
-import org.eclipse.jpt.utility.model.value.WritablePropertyValueModel;
-import org.eclipse.swt.widgets.Composite;
-
-/**
- * Here the layout of this pane:
- * <pre>
- * -----------------------------------------------------------------------------
- * |            -------------------------------------------------------------- |
- * | Name:      |                                                             ||
- * |            -------------------------------------------------------------- |
- * -----------------------------------------------------------------------------</pre>
- *
- * @see EclipseLinkConverter
- * @see ConvertComposite - A container of this widget
- *
- * @version 2.1
- * @since 2.1
- */
-public class CustomConverterComposite extends FormPane<CustomConverter>
-{
-
-	/**
-	 * Creates a new <code>ConverterComposite</code>.
-	 *
-	 * @param parentPane The parent container of this one
-	 * @param parent The parent container
-	 */
-	public CustomConverterComposite(PropertyValueModel<? extends CustomConverter> subjectHolder,
-			Composite parent,
-			WidgetFactory widgetFactory) {
-
-		super(subjectHolder, parent, widgetFactory);
-	}
-
-	@Override
-	protected void initializeLayout(Composite container) {
-		
-		addLabeledText(
-			container, 
-			EclipseLinkUiMappingsMessages.ConverterComposite_nameTextLabel, 
-			buildNameTextHolder());
-		
-		addClassChooser(container);
-		
-		new PaneEnabler(buildBooleanHolder(), this);
-	}
-	
-	protected WritablePropertyValueModel<String> buildNameTextHolder() {
-		return new PropertyAspectAdapter<CustomConverter, String>(
-				getSubjectHolder(), EclipseLinkConverter.NAME_PROPERTY) {
-			@Override
-			protected String buildValue_() {
-				return this.subject.getName();
-			}
-		
-			@Override
-			protected void setValue_(String value) {
-				if (value.length() == 0) {
-					value = null;
-				}
-				this.subject.setName(value);
-			}
-		};
-	}
-
-	
-	private ClassChooserPane<CustomConverter> addClassChooser(Composite container) {
-
-		return new ClassChooserPane<CustomConverter>(this, container) {
-
-			@Override
-			protected WritablePropertyValueModel<String> buildTextHolder() {
-				return new PropertyAspectAdapter<CustomConverter, String>(getSubjectHolder(), CustomConverter.CONVERTER_CLASS_PROPERTY) {
-					@Override
-					protected String buildValue_() {
-						return this.subject.getConverterClass();
-					}
-
-					@Override
-					protected void setValue_(String value) {
-
-						if (value.length() == 0) {
-							value = null;
-						}
-
-						this.subject.setConverterClass(value);
-					}
-				};
-			}
-
-			@Override
-			protected String getClassName() {
-				return getSubject().getConverterClass();
-			}
-
-			@Override
-			protected String getLabelText() {
-				return EclipseLinkUiMappingsMessages.ConverterComposite_classLabel;
-			}
-
-			@Override
-			protected JpaProject getJpaProject() {
-				return getSubject().getJpaProject();
-			}
-			
-			@Override
-			protected void setClassName(String className) {
-				getSubject().setConverterClass(className);
-			}
-			
-			@Override
-			protected String getSuperInterfaceName() {
-				return CustomConverter.ECLIPSELINK_CONVERTER_CLASS_NAME;
-			}
-			
-			@Override
-			protected char getEnclosingTypeSeparator() {
-				return getSubject().getEnclosingTypeSeparator();
-			}
-		};
-	}
-
-
-	protected PropertyValueModel<Boolean> buildBooleanHolder() {
-		return new TransformationPropertyValueModel<CustomConverter, Boolean>(getSubjectHolder()) {
-			@Override
-			protected Boolean transform(CustomConverter value) {
-//				if (getSubject() != null && getSubject().getParent().getPersistentAttribute().isVirtual()) {
-//					return Boolean.FALSE;
-//				}
-				return Boolean.valueOf(value != null);
-			}
-		};
-	}
-}
diff --git a/jpa/plugins/org.eclipse.jpt.eclipselink.ui/src/org/eclipse/jpt/eclipselink/ui/internal/mappings/details/CustomizerComposite.java b/jpa/plugins/org.eclipse.jpt.eclipselink.ui/src/org/eclipse/jpt/eclipselink/ui/internal/mappings/details/CustomizerComposite.java
deleted file mode 100644
index 45e6a9d..0000000
--- a/jpa/plugins/org.eclipse.jpt.eclipselink.ui/src/org/eclipse/jpt/eclipselink/ui/internal/mappings/details/CustomizerComposite.java
+++ /dev/null
@@ -1,105 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008, 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.eclipselink.ui.internal.mappings.details;
-
-import org.eclipse.jpt.core.JpaProject;
-import org.eclipse.jpt.eclipselink.core.context.Customizer;
-import org.eclipse.jpt.eclipselink.ui.internal.mappings.EclipseLinkUiMappingsMessages;
-import org.eclipse.jpt.ui.internal.widgets.ClassChooserPane;
-import org.eclipse.jpt.ui.internal.widgets.FormPane;
-import org.eclipse.jpt.utility.internal.model.value.PropertyAspectAdapter;
-import org.eclipse.jpt.utility.model.value.PropertyValueModel;
-import org.eclipse.jpt.utility.model.value.WritablePropertyValueModel;
-import org.eclipse.swt.widgets.Composite;
-
-/**
- *
- * @see Customizer
- *
- * @version 2.1
- * @since 2.1
- */
-public class CustomizerComposite extends FormPane<Customizer>
-{
-	/**
-	 * Creates a new <code>CustomizerComposite</code>.
-	 *
-	 * @param parentPane The parent container of this one
-	 * @param parent The parent container
-	 */
-	public CustomizerComposite(FormPane<?> parentPane, 
-		PropertyValueModel<? extends Customizer> subjectHolder,
-		Composite parent) {
-
-			super(parentPane, subjectHolder, parent);
-	}
-
-	@Override
-	protected void initializeLayout(Composite container) {
-		addCustomizerClassChooser(container);
-	}
-	
-	private ClassChooserPane<Customizer> addCustomizerClassChooser(Composite container) {
-
-		return new ClassChooserPane<Customizer>(this, container) {
-
-			@Override
-			protected WritablePropertyValueModel<String> buildTextHolder() {
-				return new PropertyAspectAdapter<Customizer, String>(getSubjectHolder(), Customizer.SPECIFIED_CUSTOMIZER_CLASS_PROPERTY) {
-					@Override
-					protected String buildValue_() {
-						return this.subject.getSpecifiedCustomizerClass();
-					}
-
-					@Override
-					protected void setValue_(String value) {
-
-						if (value.length() == 0) {
-							value = null;
-						}
-
-						this.subject.setSpecifiedCustomizerClass(value);
-					}
-				};
-			}
-
-			@Override
-			protected String getClassName() {
-				return getSubject().getSpecifiedCustomizerClass();
-			}
-
-			@Override
-			protected String getLabelText() {
-				return EclipseLinkUiMappingsMessages.CustomizerComposite_classLabel;
-			}
-
-			@Override
-			protected JpaProject getJpaProject() {
-				return getSubject().getJpaProject();
-			}
-			
-			@Override
-			protected void setClassName(String className) {
-				getSubject().setSpecifiedCustomizerClass(className);
-			}
-			
-			@Override
-			protected String getSuperInterfaceName() {
-				return Customizer.ECLIPSELINK_DESCRIPTOR_CUSTOMIZER_CLASS_NAME;
-			}
-			
-			@Override
-			protected char getEnclosingTypeSeparator() {
-				return getSubject().getCustomizerClassEnclosingTypeSeparator();
-			}
-		};
-	}
-
-}
diff --git a/jpa/plugins/org.eclipse.jpt.eclipselink.ui/src/org/eclipse/jpt/eclipselink/ui/internal/mappings/details/DisableHitsComposite.java b/jpa/plugins/org.eclipse.jpt.eclipselink.ui/src/org/eclipse/jpt/eclipselink/ui/internal/mappings/details/DisableHitsComposite.java
deleted file mode 100644
index ba3cef5..0000000
--- a/jpa/plugins/org.eclipse.jpt.eclipselink.ui/src/org/eclipse/jpt/eclipselink/ui/internal/mappings/details/DisableHitsComposite.java
+++ /dev/null
@@ -1,112 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- *
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.eclipselink.ui.internal.mappings.details;
-
-import org.eclipse.jpt.eclipselink.core.context.Caching;
-import org.eclipse.jpt.eclipselink.ui.internal.EclipseLinkHelpContextIds;
-import org.eclipse.jpt.eclipselink.ui.internal.mappings.EclipseLinkUiMappingsMessages;
-import org.eclipse.jpt.ui.internal.mappings.JptUiMappingsMessages;
-import org.eclipse.jpt.ui.internal.widgets.FormPane;
-import org.eclipse.jpt.utility.internal.model.value.PropertyAspectAdapter;
-import org.eclipse.jpt.utility.internal.model.value.TransformationPropertyValueModel;
-import org.eclipse.jpt.utility.model.value.PropertyValueModel;
-import org.eclipse.jpt.utility.model.value.WritablePropertyValueModel;
-import org.eclipse.osgi.util.NLS;
-import org.eclipse.swt.widgets.Composite;
-
-/**
- * This composite simply shows a tri-state check box for the Disable Hits option.
- * 
- * @see EclipseLinkCaching
- * @see CachingComposite - A container of this widget
- *
- * @version 2.1
- * @since 2.1
- */
-public class DisableHitsComposite extends FormPane<Caching>
-{
-	/**
-	 * Creates a new <code>OptionalComposite</code>.
-	 *
-	 * @param parentPane The parent container of this one
-	 * @param parent The parent container
-	 */
-	public DisableHitsComposite(FormPane<? extends Caching> parentPane,
-	                         Composite parent)
-	{
-		super(parentPane, parent);
-	}
-
-	private WritablePropertyValueModel<Boolean> buildDisableHitsHolder() {
-		return new PropertyAspectAdapter<Caching, Boolean>(getSubjectHolder(), Caching.SPECIFIED_DISABLE_HITS_PROPERTY) {
-			@Override
-			protected Boolean buildValue_() {
-				return this.subject.getSpecifiedDisableHits();
-			}
-
-			@Override
-			protected void setValue_(Boolean value) {
-				this.subject.setSpecifiedDisableHits(value);
-			}
-
-			@Override
-			protected void subjectChanged() {
-				Object oldValue = this.getValue();
-				super.subjectChanged();
-				Object newValue = this.getValue();
-
-				// Make sure the default value is appended to the text
-				if (oldValue == newValue && newValue == null) {
-					this.fireAspectChange(Boolean.TRUE, newValue);
-				}
-			}
-		};
-	}
-
-	private PropertyValueModel<String> buildDisableHitsStringHolder() {
-
-		return new TransformationPropertyValueModel<Boolean, String>(buildDisableHitsHolder()) {
-
-			@Override
-			protected String transform(Boolean value) {
-
-				if ((getSubject() != null) && (value == null)) {
-
-					Boolean defaultValue = getSubject().isDefaultDisableHits();
-
-					if (defaultValue != null) {
-
-						String defaultStringValue = defaultValue ? JptUiMappingsMessages.Boolean_True :
-						                                           JptUiMappingsMessages.Boolean_False;
-
-						return NLS.bind(
-							EclipseLinkUiMappingsMessages.DisableHitsComposite_disableHitsDefault,
-							defaultStringValue
-						);
-					}
-				}
-
-				return EclipseLinkUiMappingsMessages.DisableHitsComposite_disableHitsLabel;
-			}
-		};
-	}
-	
-	@Override
-	protected void initializeLayout(Composite container) {
-
-		addTriStateCheckBoxWithDefault(
-			container,
-			EclipseLinkUiMappingsMessages.DisableHitsComposite_disableHitsLabel,
-			buildDisableHitsHolder(),
-			buildDisableHitsStringHolder(),
-			EclipseLinkHelpContextIds.CACHING_DISABLE_HITS
-		);
-	}
-}
\ No newline at end of file
diff --git a/jpa/plugins/org.eclipse.jpt.eclipselink.ui/src/org/eclipse/jpt/eclipselink/ui/internal/mappings/details/EclipseLinkBasicCollectionMappingUiProvider.java b/jpa/plugins/org.eclipse.jpt.eclipselink.ui/src/org/eclipse/jpt/eclipselink/ui/internal/mappings/details/EclipseLinkBasicCollectionMappingUiProvider.java
deleted file mode 100644
index 4bf9f9f..0000000
--- a/jpa/plugins/org.eclipse.jpt.eclipselink.ui/src/org/eclipse/jpt/eclipselink/ui/internal/mappings/details/EclipseLinkBasicCollectionMappingUiProvider.java
+++ /dev/null
@@ -1,42 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008, 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- *
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.eclipselink.ui.internal.mappings.details;
-
-import org.eclipse.jpt.eclipselink.core.EclipseLinkMappingKeys;
-import org.eclipse.jpt.eclipselink.core.context.BasicCollectionMapping;
-import org.eclipse.jpt.eclipselink.ui.internal.mappings.EclipseLinkUiMappingsMessages;
-import org.eclipse.jpt.ui.JptUiPlugin;
-import org.eclipse.jpt.ui.details.AttributeMappingUiProvider;
-import org.eclipse.jpt.ui.internal.JptUiIcons;
-import org.eclipse.swt.graphics.Image;
-
-public abstract class EclipseLinkBasicCollectionMappingUiProvider<T extends BasicCollectionMapping>
-	implements AttributeMappingUiProvider<T>
-{
-		
-	protected EclipseLinkBasicCollectionMappingUiProvider() {}
-		
-	public Image getImage() {
-		return JptUiPlugin.getImage(JptUiIcons.JPA_CONTENT);
-	}
-	
-	public String getLabel() {
-		return EclipseLinkUiMappingsMessages.BasicCollectionMappingUiProvider_label;
-	}
-	
-	public String getLinkLabel() {
-		return EclipseLinkUiMappingsMessages.BasicCollectionMappingUiProvider_linkLabel;
-	}
-	
-	public String getKey() {
-		return EclipseLinkMappingKeys.BASIC_COLLECTION_ATTRIBUTE_MAPPING_KEY;
-	}
-
-}
diff --git a/jpa/plugins/org.eclipse.jpt.eclipselink.ui/src/org/eclipse/jpt/eclipselink/ui/internal/mappings/details/EclipseLinkBasicMapMappingUiProvider.java b/jpa/plugins/org.eclipse.jpt.eclipselink.ui/src/org/eclipse/jpt/eclipselink/ui/internal/mappings/details/EclipseLinkBasicMapMappingUiProvider.java
deleted file mode 100644
index e0890f7..0000000
--- a/jpa/plugins/org.eclipse.jpt.eclipselink.ui/src/org/eclipse/jpt/eclipselink/ui/internal/mappings/details/EclipseLinkBasicMapMappingUiProvider.java
+++ /dev/null
@@ -1,44 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008, 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- *
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.eclipselink.ui.internal.mappings.details;
-
-import org.eclipse.jpt.eclipselink.core.EclipseLinkMappingKeys;
-import org.eclipse.jpt.eclipselink.core.context.BasicMapMapping;
-import org.eclipse.jpt.eclipselink.ui.internal.mappings.EclipseLinkUiMappingsMessages;
-import org.eclipse.jpt.ui.JptUiPlugin;
-import org.eclipse.jpt.ui.details.AttributeMappingUiProvider;
-import org.eclipse.jpt.ui.internal.JptUiIcons;
-import org.eclipse.swt.graphics.Image;
-
-public abstract class EclipseLinkBasicMapMappingUiProvider<T extends BasicMapMapping>
-	implements AttributeMappingUiProvider<T>
-{
-	
-	protected EclipseLinkBasicMapMappingUiProvider() {
-		super();
-	}
-	
-	public Image getImage() {
-		return JptUiPlugin.getImage(JptUiIcons.JPA_CONTENT);
-	}
-	
-	public String getLabel() {
-		return EclipseLinkUiMappingsMessages.BasicMapMappingUiProvider_label;
-	}
-	
-	public String getLinkLabel() {
-		return EclipseLinkUiMappingsMessages.BasicMapMappingUiProvider_linkLabel;
-	}
-	
-	public String getKey() {
-		return EclipseLinkMappingKeys.BASIC_MAP_ATTRIBUTE_MAPPING_KEY;
-	}
-
-}
diff --git a/jpa/plugins/org.eclipse.jpt.eclipselink.ui/src/org/eclipse/jpt/eclipselink/ui/internal/mappings/details/EclipseLinkBasicMappingComposite.java b/jpa/plugins/org.eclipse.jpt.eclipselink.ui/src/org/eclipse/jpt/eclipselink/ui/internal/mappings/details/EclipseLinkBasicMappingComposite.java
deleted file mode 100644
index f5ccc65..0000000
--- a/jpa/plugins/org.eclipse.jpt.eclipselink.ui/src/org/eclipse/jpt/eclipselink/ui/internal/mappings/details/EclipseLinkBasicMappingComposite.java
+++ /dev/null
@@ -1,282 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008, 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- *
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.eclipselink.ui.internal.mappings.details;
-
-import org.eclipse.jpt.core.context.BasicMapping;
-import org.eclipse.jpt.core.context.Column;
-import org.eclipse.jpt.core.context.Converter;
-import org.eclipse.jpt.core.context.ConvertibleMapping;
-import org.eclipse.jpt.core.context.EnumeratedConverter;
-import org.eclipse.jpt.core.context.TemporalConverter;
-import org.eclipse.jpt.eclipselink.core.context.Convert;
-import org.eclipse.jpt.eclipselink.core.context.EclipseLinkBasicMapping;
-import org.eclipse.jpt.eclipselink.core.context.Mutable;
-import org.eclipse.jpt.eclipselink.ui.internal.mappings.EclipseLinkUiMappingsMessages;
-import org.eclipse.jpt.ui.WidgetFactory;
-import org.eclipse.jpt.ui.details.JpaComposite;
-import org.eclipse.jpt.ui.internal.mappings.JptUiMappingsMessages;
-import org.eclipse.jpt.ui.internal.mappings.details.ColumnComposite;
-import org.eclipse.jpt.ui.internal.mappings.details.EnumTypeComposite;
-import org.eclipse.jpt.ui.internal.mappings.details.FetchTypeComposite;
-import org.eclipse.jpt.ui.internal.mappings.details.OptionalComposite;
-import org.eclipse.jpt.ui.internal.mappings.details.TemporalTypeComposite;
-import org.eclipse.jpt.ui.internal.widgets.FormPane;
-import org.eclipse.jpt.ui.internal.widgets.Pane;
-import org.eclipse.jpt.utility.internal.model.value.PropertyAspectAdapter;
-import org.eclipse.jpt.utility.internal.model.value.TransformationPropertyValueModel;
-import org.eclipse.jpt.utility.model.value.PropertyValueModel;
-import org.eclipse.jpt.utility.model.value.WritablePropertyValueModel;
-import org.eclipse.swt.layout.GridData;
-import org.eclipse.swt.layout.GridLayout;
-import org.eclipse.swt.widgets.Button;
-import org.eclipse.swt.widgets.Composite;
-
-/**
- * Here the layout of this pane:
- * <pre>
- * -----------------------------------------------------------------------------
- * | ------------------------------------------------------------------------- |
- * | |                                                                       | |
- * | | ColumnComposite                                                       | |
- * | |                                                                       | |
- * | ------------------------------------------------------------------------- |
- * | ------------------------------------------------------------------------- |
- * | |                                                                       | |
- * | | FetchTypeComposite                                                    | |
- * | |                                                                       | |
- * | ------------------------------------------------------------------------- |
- * | ------------------------------------------------------------------------- |
- * | |                                                                       | |
- * | | TemporalTypeComposite                                                 | |
- * | |                                                                       | |
- * | ------------------------------------------------------------------------- |
- * | ------------------------------------------------------------------------- |
- * | |                                                                       | |
- * | | EnumTypeComposite                                                     | |
- * | |                                                                       | |
- * | ------------------------------------------------------------------------- |
- * | ------------------------------------------------------------------------- |
- * | |                                                                       | |
- * | | OptionalComposite                                                     | |
- * | |                                                                       | |
- * | ------------------------------------------------------------------------- |
- * | ------------------------------------------------------------------------- |
- * | |                                                                       | |
- * | | MutableComposite                                                      | |
- * | |                                                                       | |
- * | ------------------------------------------------------------------------- |
- * | ------------------------------------------------------------------------- |
- * | |                                                                       | |
- * | | LobComposite                                                          | |
- * | |                                                                       | |
- * | ------------------------------------------------------------------------- |
- * -----------------------------------------------------------------------------</pre>
- *
- * @see BasicMapping
- * @see BaseJpaUiFactory - The factory creating this pane
- * @see ColumnComposite
- * @see EnumTypeComposite
- * @see FetchTypeComposite
- * @see LobComposite
- * @see OptionalComposite
- * @see TemporalTypeComposite
- *
- * @version 2.1
- * @since 2.1
- */
-public class EclipseLinkBasicMappingComposite extends FormPane<BasicMapping>
-                                   implements JpaComposite
-{
-	/**
-	 * Creates a new <code>BasicMappingComposite</code>.
-	 *
-	 * @param subjectHolder The holder of the subject <code>IBasicMapping</code>
-	 * @param parent The parent container
-	 * @param widgetFactory The factory used to create various common widgets
-	 */
-	public EclipseLinkBasicMappingComposite(PropertyValueModel<? extends BasicMapping> subjectHolder,
-	                             Composite parent,
-	                             WidgetFactory widgetFactory) {
-
-		super(subjectHolder, parent, widgetFactory);
-	}
-
-	@Override
-	protected void initializeLayout(Composite container) {
-		initializeGeneralPane(container);
-		initializeTypePane(container);
-	}
-	
-	protected void initializeGeneralPane(Composite container) {
-		int groupBoxMargin = getGroupBoxMargin();
-
-		new ColumnComposite(this, buildColumnHolder(), container);
-
-		// Align the widgets under the ColumnComposite
-		container = addSubPane(container, 0, groupBoxMargin, 0, groupBoxMargin);
-
-		new FetchTypeComposite(this, container);
-		new OptionalComposite(this, addSubPane(container, 4));
-		
-		// Mutable widgets
-		new MutableComposite(this, buildMutableHolder(), container);
-	}
-	
-	protected void initializeTypePane(Composite container) {
-
-		container = addCollapsableSection(
-			container,
-			JptUiMappingsMessages.TypeSection_type
-		);
-		((GridLayout) container.getLayout()).numColumns = 2;
-
-		// No converter
-		Button noConverterButton = addRadioButton(
-			container, 
-			JptUiMappingsMessages.TypeSection_default, 
-			buildNoConverterHolder(), 
-			null);
-		((GridData) noConverterButton.getLayoutData()).horizontalSpan = 2;
-		
-		// Lob
-		Button lobButton = addRadioButton(
-			container, 
-			JptUiMappingsMessages.TypeSection_lob, 
-			buildConverterBooleanHolder(Converter.LOB_CONVERTER), 
-			null);
-		((GridData) lobButton.getLayoutData()).horizontalSpan = 2;
-		
-		PropertyValueModel<Converter> specifiedConverterHolder = buildSpecifiedConverterHolder();
-		// Temporal
-		addRadioButton(
-			container, 
-			JptUiMappingsMessages.TypeSection_temporal, 
-			buildConverterBooleanHolder(Converter.TEMPORAL_CONVERTER), 
-			null);
-		registerSubPane(new TemporalTypeComposite(buildTemporalConverterHolder(specifiedConverterHolder), container, getWidgetFactory()));
-		
-		
-		// Enumerated
-		addRadioButton(
-			container, 
-			JptUiMappingsMessages.TypeSection_enumerated, 
-			buildConverterBooleanHolder(Converter.ENUMERATED_CONVERTER), 
-			null);
-		registerSubPane(new EnumTypeComposite(buildEnumeratedConverterHolder(specifiedConverterHolder), container, getWidgetFactory()));
-
-		// EclipseLink Converter
-		Button elConverterButton = addRadioButton(
-			container, 
-			EclipseLinkUiMappingsMessages.TypeSection_converted, 
-			buildConverterBooleanHolder(Convert.ECLIPSE_LINK_CONVERTER), 
-			null);
-		((GridData) elConverterButton.getLayoutData()).horizontalSpan = 2;
-
-		Pane<Convert> convertComposite = buildConvertComposite(buildEclipseLinkConverterHolder(specifiedConverterHolder), container);
-		GridData gridData = (GridData) convertComposite.getControl().getLayoutData();
-		gridData.horizontalSpan = 2;
-		gridData.horizontalIndent = 20;
-		registerSubPane(convertComposite);
-	}
-
-	protected Pane<Convert> buildConvertComposite(PropertyValueModel<Convert> convertHolder, Composite container) {
-		return new ConvertComposite(convertHolder, container, getWidgetFactory());
-	}
-	
-	protected PropertyValueModel<Column> buildColumnHolder() {
-		return new TransformationPropertyValueModel<BasicMapping, Column>(getSubjectHolder()) {
-			@Override
-			protected Column transform_(BasicMapping value) {
-				return value.getColumn();
-			}
-		};
-	}
-	
-	protected PropertyValueModel<Mutable> buildMutableHolder() {
-		return new PropertyAspectAdapter<BasicMapping, Mutable>(getSubjectHolder()) {
-			@Override
-			protected Mutable buildValue_() {
-				return ((EclipseLinkBasicMapping) this.subject).getMutable();
-			}
-		};
-	}
-	
-	protected PropertyValueModel<Converter> buildSpecifiedConverterHolder() {
-		return new PropertyAspectAdapter<BasicMapping, Converter>(getSubjectHolder(), ConvertibleMapping.SPECIFIED_CONVERTER_PROPERTY) {
-			@Override
-			protected Converter buildValue_() {
-				return this.subject.getSpecifiedConverter();
-			}
-		};
-	}
-	
-	protected PropertyValueModel<TemporalConverter> buildTemporalConverterHolder(PropertyValueModel<Converter> converterHolder) {
-		return new TransformationPropertyValueModel<Converter, TemporalConverter>(converterHolder) {
-			@Override
-			protected TemporalConverter transform_(Converter converter) {
-				return (converter != null && converter.getType() == Converter.TEMPORAL_CONVERTER) ? (TemporalConverter) converter : null;
-			}
-		};
-	}
-	
-	protected PropertyValueModel<EnumeratedConverter> buildEnumeratedConverterHolder(PropertyValueModel<Converter> converterHolder) {
-		return new TransformationPropertyValueModel<Converter, EnumeratedConverter>(converterHolder) {
-			@Override
-			protected EnumeratedConverter transform_(Converter converter) {
-				return (converter != null && converter.getType() == Converter.ENUMERATED_CONVERTER) ? (EnumeratedConverter) converter : null;
-			}
-		};
-	}
-	
-	protected PropertyValueModel<Convert> buildEclipseLinkConverterHolder(PropertyValueModel<Converter> converterHolder) {
-		return new TransformationPropertyValueModel<Converter, Convert>(converterHolder) {
-			@Override
-			protected Convert transform_(Converter converter) {
-				return (converter != null && converter.getType() == Convert.ECLIPSE_LINK_CONVERTER) ? (Convert) converter : null;
-			}
-		};
-	}
-	
-	protected WritablePropertyValueModel<Boolean> buildNoConverterHolder() {
-		return new PropertyAspectAdapter<BasicMapping, Boolean>(getSubjectHolder(), ConvertibleMapping.SPECIFIED_CONVERTER_PROPERTY) {
-			@Override
-			protected Boolean buildValue_() {
-				return Boolean.valueOf(this.subject.getSpecifiedConverter() == null);
-			}
-
-			@Override
-			protected void setValue_(Boolean value) {
-				if (value.booleanValue()) {
-					this.subject.setSpecifiedConverter(Converter.NO_CONVERTER);
-				}
-			}
-		};
-	}
-	
-	protected WritablePropertyValueModel<Boolean> buildConverterBooleanHolder(final String converterType) {
-		return new PropertyAspectAdapter<BasicMapping, Boolean>(getSubjectHolder(), ConvertibleMapping.SPECIFIED_CONVERTER_PROPERTY) {
-			@Override
-			protected Boolean buildValue_() {
-				Converter converter = this.subject.getSpecifiedConverter();
-				if (converter == null) {
-					return Boolean.FALSE;
-				}
-				return Boolean.valueOf(converter.getType() == converterType);
-			}
-
-			@Override
-			protected void setValue_(Boolean value) {
-				if (value.booleanValue()) {
-					this.subject.setSpecifiedConverter(converterType);
-				}
-			}
-		};
-	}
-}
\ No newline at end of file
diff --git a/jpa/plugins/org.eclipse.jpt.eclipselink.ui/src/org/eclipse/jpt/eclipselink/ui/internal/mappings/details/EclipseLinkEmbeddableAdvancedComposite.java b/jpa/plugins/org.eclipse.jpt.eclipselink.ui/src/org/eclipse/jpt/eclipselink/ui/internal/mappings/details/EclipseLinkEmbeddableAdvancedComposite.java
deleted file mode 100644
index 95c7c87..0000000
--- a/jpa/plugins/org.eclipse.jpt.eclipselink.ui/src/org/eclipse/jpt/eclipselink/ui/internal/mappings/details/EclipseLinkEmbeddableAdvancedComposite.java
+++ /dev/null
@@ -1,59 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- *
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.eclipselink.ui.internal.mappings.details;
-
-import org.eclipse.jpt.core.context.Embeddable;
-import org.eclipse.jpt.eclipselink.core.context.ChangeTracking;
-import org.eclipse.jpt.eclipselink.core.context.Customizer;
-import org.eclipse.jpt.eclipselink.core.context.EclipseLinkEmbeddable;
-import org.eclipse.jpt.eclipselink.ui.internal.mappings.EclipseLinkUiMappingsMessages;
-import org.eclipse.jpt.ui.internal.widgets.FormPane;
-import org.eclipse.jpt.utility.internal.model.value.PropertyAspectAdapter;
-import org.eclipse.jpt.utility.model.value.PropertyValueModel;
-import org.eclipse.swt.widgets.Composite;
-
-public class EclipseLinkEmbeddableAdvancedComposite extends FormPane<Embeddable> {
-	
-	public EclipseLinkEmbeddableAdvancedComposite(
-			FormPane<? extends Embeddable> parentPane,
-			Composite parent) {
-
-		super(parentPane, parent, false);
-	}
-	
-	@Override
-	protected void initializeLayout(Composite container) {
-		container = addCollapsableSection(
-			container,
-			EclipseLinkUiMappingsMessages.EclipseLinkTypeMappingComposite_advanced
-		);
-		
-		new CustomizerComposite(this, buildCustomizerHolder(), container);
-		new ChangeTrackingComposite(this, buildChangeTrackingHolder(), container);
-	}
-	
-	private PropertyValueModel<Customizer> buildCustomizerHolder() {
-		return new PropertyAspectAdapter<Embeddable, Customizer>(getSubjectHolder()) {
-			@Override
-			protected Customizer buildValue_() {
-				return ((EclipseLinkEmbeddable) this.subject).getCustomizer();
-			}
-		};
-	}
-	
-	private PropertyValueModel<ChangeTracking> buildChangeTrackingHolder() {
-		return new PropertyAspectAdapter<Embeddable, ChangeTracking>(getSubjectHolder()) {
-			@Override
-			protected ChangeTracking buildValue_() {
-				return ((EclipseLinkEmbeddable) this.subject).getChangeTracking();
-			}
-		};
-	}
-}
diff --git a/jpa/plugins/org.eclipse.jpt.eclipselink.ui/src/org/eclipse/jpt/eclipselink/ui/internal/mappings/details/EclipseLinkEntityAdvancedComposite.java b/jpa/plugins/org.eclipse.jpt.eclipselink.ui/src/org/eclipse/jpt/eclipselink/ui/internal/mappings/details/EclipseLinkEntityAdvancedComposite.java
deleted file mode 100644
index da73465..0000000
--- a/jpa/plugins/org.eclipse.jpt.eclipselink.ui/src/org/eclipse/jpt/eclipselink/ui/internal/mappings/details/EclipseLinkEntityAdvancedComposite.java
+++ /dev/null
@@ -1,70 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- *
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.eclipselink.ui.internal.mappings.details;
-
-import org.eclipse.jpt.core.context.Entity;
-import org.eclipse.jpt.eclipselink.core.context.ChangeTracking;
-import org.eclipse.jpt.eclipselink.core.context.Customizer;
-import org.eclipse.jpt.eclipselink.core.context.EclipseLinkEntity;
-import org.eclipse.jpt.eclipselink.core.context.ReadOnly;
-import org.eclipse.jpt.eclipselink.ui.internal.mappings.EclipseLinkUiMappingsMessages;
-import org.eclipse.jpt.ui.internal.widgets.FormPane;
-import org.eclipse.jpt.utility.internal.model.value.PropertyAspectAdapter;
-import org.eclipse.jpt.utility.model.value.PropertyValueModel;
-import org.eclipse.swt.widgets.Composite;
-
-public class EclipseLinkEntityAdvancedComposite extends FormPane<Entity> {
-	
-	public EclipseLinkEntityAdvancedComposite(
-			FormPane<? extends Entity> parentPane,
-			Composite parent) {
-
-		super(parentPane, parent, false);
-	}
-	
-	@Override
-	protected void initializeLayout(Composite container) {
-		container = addCollapsableSection(
-			container,
-			EclipseLinkUiMappingsMessages.EclipseLinkTypeMappingComposite_advanced
-		);
-		
-		new ReadOnlyComposite(this, buildReadOnlyHolder(), container);
-		new CustomizerComposite(this, buildCustomizerHolder(), container);
-		new ChangeTrackingComposite(this, buildChangeTrackingHolder(), container);
-	}
-	
-	private PropertyValueModel<ReadOnly> buildReadOnlyHolder() {
-		return new PropertyAspectAdapter<Entity, ReadOnly>(getSubjectHolder()) {
-			@Override
-			protected ReadOnly buildValue_() {
-				return ((EclipseLinkEntity) this.subject).getReadOnly();
-			}
-		};
-	}
-	
-	private PropertyValueModel<Customizer> buildCustomizerHolder() {
-		return new PropertyAspectAdapter<Entity, Customizer>(getSubjectHolder()) {
-			@Override
-			protected Customizer buildValue_() {
-				return ((EclipseLinkEntity) this.subject).getCustomizer();
-			}
-		};
-	}
-	
-	private PropertyValueModel<ChangeTracking> buildChangeTrackingHolder() {
-		return new PropertyAspectAdapter<Entity, ChangeTracking>(getSubjectHolder()) {
-			@Override
-			protected ChangeTracking buildValue_() {
-				return ((EclipseLinkEntity) this.subject).getChangeTracking();
-			}
-		};
-	}
-}
diff --git a/jpa/plugins/org.eclipse.jpt.eclipselink.ui/src/org/eclipse/jpt/eclipselink/ui/internal/mappings/details/EclipseLinkIdMappingComposite.java b/jpa/plugins/org.eclipse.jpt.eclipselink.ui/src/org/eclipse/jpt/eclipselink/ui/internal/mappings/details/EclipseLinkIdMappingComposite.java
deleted file mode 100644
index 4cbc875..0000000
--- a/jpa/plugins/org.eclipse.jpt.eclipselink.ui/src/org/eclipse/jpt/eclipselink/ui/internal/mappings/details/EclipseLinkIdMappingComposite.java
+++ /dev/null
@@ -1,252 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- *
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.eclipselink.ui.internal.mappings.details;
-
-import org.eclipse.jpt.core.context.Column;
-import org.eclipse.jpt.core.context.Converter;
-import org.eclipse.jpt.core.context.ConvertibleMapping;
-import org.eclipse.jpt.core.context.IdMapping;
-import org.eclipse.jpt.core.context.TemporalConverter;
-import org.eclipse.jpt.eclipselink.core.context.Convert;
-import org.eclipse.jpt.eclipselink.core.context.EclipseLinkIdMapping;
-import org.eclipse.jpt.eclipselink.core.context.Mutable;
-import org.eclipse.jpt.eclipselink.ui.internal.mappings.EclipseLinkUiMappingsMessages;
-import org.eclipse.jpt.ui.WidgetFactory;
-import org.eclipse.jpt.ui.details.JpaComposite;
-import org.eclipse.jpt.ui.internal.mappings.JptUiMappingsMessages;
-import org.eclipse.jpt.ui.internal.mappings.details.ColumnComposite;
-import org.eclipse.jpt.ui.internal.mappings.details.GenerationComposite;
-import org.eclipse.jpt.ui.internal.mappings.details.TemporalTypeComposite;
-import org.eclipse.jpt.ui.internal.widgets.FormPane;
-import org.eclipse.jpt.ui.internal.widgets.Pane;
-import org.eclipse.jpt.utility.internal.model.value.PropertyAspectAdapter;
-import org.eclipse.jpt.utility.internal.model.value.TransformationPropertyValueModel;
-import org.eclipse.jpt.utility.model.value.PropertyValueModel;
-import org.eclipse.jpt.utility.model.value.WritablePropertyValueModel;
-import org.eclipse.swt.layout.GridData;
-import org.eclipse.swt.layout.GridLayout;
-import org.eclipse.swt.widgets.Button;
-import org.eclipse.swt.widgets.Composite;
-
-/**
- * Here the layout of this pane:
- * <pre>
- * -----------------------------------------------------------------------------
- * | ------------------------------------------------------------------------- |
- * | |                                                                       | |
- * | | ColumnComposite                                                       | |
- * | |                                                                       | |
- * | ------------------------------------------------------------------------- |
- * | ------------------------------------------------------------------------- |
- * | |                                                                       | |
- * | | TemporalTypeComposite                                                 | |
- * | |                                                                       | |
- * | ------------------------------------------------------------------------- |
- * | ------------------------------------------------------------------------- |
- * | |                                                                       | |
- * | | GenerationComposite                                                   | |
- * | |                                                                       | |
- * | ------------------------------------------------------------------------- |
- * -----------------------------------------------------------------------------</pre>
- *
- * @see IdMapping
- * @see BaseJpaUiFactory - The factory creating this pane
- * @see ColumnComposite
- * @see TemporalTypeComposite
- * @see GenerationComposite
- *
- * @version 2.1
- * @since 2.1
- */
-public class EclipseLinkIdMappingComposite extends FormPane<IdMapping>
-                                implements JpaComposite
-{
-	/**
-	 * Creates a new <code>IdMappingComposite</code>.
-	 *
-	 * @param subjectHolder The holder of the subject <code>IIdMapping</code>
-	 * @param parent The parent container
-	 * @param widgetFactory The factory used to create various common widgets
-	 */
-	public EclipseLinkIdMappingComposite(PropertyValueModel<? extends IdMapping> subjectHolder,
-	                          Composite parent,
-	                          WidgetFactory widgetFactory) {
-
-		super(subjectHolder, parent, widgetFactory);
-	}
-
-	protected PropertyValueModel<? extends Column> buildColumnHolder() {
-		return new TransformationPropertyValueModel<IdMapping, Column>(getSubjectHolder())  {
-			@Override
-			protected Column transform_(IdMapping value) {
-				return value.getColumn();
-			}
-		};
-	}
-
-	@Override
-	protected void initializeLayout(Composite container) {
-		initializeGeneralPane(container);
-		initializeTypePane(container);
-
-		// Generation pane
-		new GenerationComposite(this, container);
-	}
-	
-	protected void initializeGeneralPane(Composite container) {
-		int groupBoxMargin = getGroupBoxMargin();
-		
-		// Column widgets
-		new ColumnComposite(this, buildColumnHolder(), container);
-		
-		// Align the widgets under the ColumnComposite
-		container = addSubPane(container, 0, groupBoxMargin, 0, groupBoxMargin);
-
-		// Mutable widgets
-		new MutableComposite(this, buildMutableHolder(), container);
-	}	
-	
-	protected void initializeTypePane(Composite container) {
-
-		container = addCollapsableSection(
-			addSubPane(container, 5),
-			JptUiMappingsMessages.TypeSection_type
-		);
-		((GridLayout) container.getLayout()).numColumns = 2;
-
-		// No converter
-		Button noConverterButton = addRadioButton(
-			container, 
-			JptUiMappingsMessages.TypeSection_default, 
-			buildNoConverterHolder(), 
-			null);
-		((GridData) noConverterButton.getLayoutData()).horizontalSpan = 2;
-				
-		PropertyValueModel<Converter> specifiedConverterHolder = buildSpecifiedConverterHolder();
-		// Temporal
-		addRadioButton(
-			container, 
-			JptUiMappingsMessages.TypeSection_temporal, 
-			buildTemporalBooleanHolder(), 
-			null);
-		registerSubPane(new TemporalTypeComposite(buildTemporalConverterHolder(specifiedConverterHolder), container, getWidgetFactory()));
-
-		// EclipseLink Converter
-		Button elConverterButton = addRadioButton(
-			container, 
-			EclipseLinkUiMappingsMessages.TypeSection_converted, 
-			buildEclipseLinkConverterBooleanHolder(), 
-			null);
-		((GridData) elConverterButton.getLayoutData()).horizontalSpan = 2;
-
-		Pane<Convert> convertComposite = buildConvertComposite(buildEclipseLinkConverterHolder(specifiedConverterHolder), container);
-		GridData gridData = (GridData) convertComposite.getControl().getLayoutData();
-		gridData.horizontalSpan = 2;
-		gridData.horizontalIndent = 20;
-		registerSubPane(convertComposite);
-	}
-	
-	protected Pane<Convert> buildConvertComposite(PropertyValueModel<Convert> convertHolder, Composite container) {
-		return new ConvertComposite(convertHolder, container, getWidgetFactory());
-	}
-
-	protected WritablePropertyValueModel<Boolean> buildNoConverterHolder() {
-		return new PropertyAspectAdapter<IdMapping, Boolean>(getSubjectHolder(), ConvertibleMapping.SPECIFIED_CONVERTER_PROPERTY) {
-			@Override
-			protected Boolean buildValue_() {
-				return Boolean.valueOf(this.subject.getSpecifiedConverter() == null);
-			}
-
-			@Override
-			protected void setValue_(Boolean value) {
-				if (value.booleanValue()) {
-					this.subject.setSpecifiedConverter(Converter.NO_CONVERTER);
-				}
-			}
-		};
-	}
-
-	protected PropertyValueModel<Convert> buildEclipseLinkConverterHolder(PropertyValueModel<Converter> converterHolder) {
-		return new TransformationPropertyValueModel<Converter, Convert>(converterHolder) {
-			@Override
-			protected Convert transform_(Converter converter) {
-				return (converter != null && converter.getType() == Convert.ECLIPSE_LINK_CONVERTER) ? (Convert) converter : null;
-			}
-		};
-	}
-
-	protected WritablePropertyValueModel<Boolean> buildTemporalBooleanHolder() {
-		return new PropertyAspectAdapter<IdMapping, Boolean>(getSubjectHolder(), ConvertibleMapping.SPECIFIED_CONVERTER_PROPERTY) {
-			@Override
-			protected Boolean buildValue_() {
-				Converter converter = this.subject.getSpecifiedConverter();
-				if (converter == null) {
-					return Boolean.FALSE;
-				}
-				return Boolean.valueOf(converter.getType() == Converter.TEMPORAL_CONVERTER);
-			}
-
-			@Override
-			protected void setValue_(Boolean value) {
-				if (value.booleanValue()) {
-					this.subject.setSpecifiedConverter(Converter.TEMPORAL_CONVERTER);
-				}
-			}
-		};
-	}
-	
-	protected WritablePropertyValueModel<Boolean> buildEclipseLinkConverterBooleanHolder() {
-		return new PropertyAspectAdapter<IdMapping, Boolean>(getSubjectHolder(), ConvertibleMapping.SPECIFIED_CONVERTER_PROPERTY) {
-			@Override
-			protected Boolean buildValue_() {
-				Converter converter = this.subject.getSpecifiedConverter();
-				if (converter == null) {
-					return Boolean.FALSE;
-				}
-				return Boolean.valueOf(converter.getType() == Convert.ECLIPSE_LINK_CONVERTER);
-			}
-
-			@Override
-			protected void setValue_(Boolean value) {
-				if (value.booleanValue()) {
-					this.subject.setSpecifiedConverter(Convert.ECLIPSE_LINK_CONVERTER);
-				}
-			}
-		};
-	}
-	
-	protected PropertyValueModel<Converter> buildSpecifiedConverterHolder() {
-		return new PropertyAspectAdapter<IdMapping, Converter>(getSubjectHolder(), ConvertibleMapping.SPECIFIED_CONVERTER_PROPERTY) {
-			@Override
-			protected Converter buildValue_() {
-				return this.subject.getSpecifiedConverter();
-			}
-		};
-	}
-	
-	protected PropertyValueModel<TemporalConverter> buildTemporalConverterHolder(PropertyValueModel<Converter> converterHolder) {
-		return new TransformationPropertyValueModel<Converter, TemporalConverter>(converterHolder) {
-			@Override
-			protected TemporalConverter transform_(Converter converter) {
-				return (converter != null && converter.getType() == Converter.TEMPORAL_CONVERTER) ? (TemporalConverter) converter : null;
-			}
-		};
-	}
-	
-	
-	protected PropertyValueModel<Mutable> buildMutableHolder() {
-		return new PropertyAspectAdapter<IdMapping, Mutable>(getSubjectHolder()) {
-			@Override
-			protected Mutable buildValue_() {
-				return ((EclipseLinkIdMapping) this.subject).getMutable();
-			}
-		};
-	}
-}
\ No newline at end of file
diff --git a/jpa/plugins/org.eclipse.jpt.eclipselink.ui/src/org/eclipse/jpt/eclipselink/ui/internal/mappings/details/EclipseLinkManyToManyMappingComposite.java b/jpa/plugins/org.eclipse.jpt.eclipselink.ui/src/org/eclipse/jpt/eclipselink/ui/internal/mappings/details/EclipseLinkManyToManyMappingComposite.java
deleted file mode 100644
index 79cff76..0000000
--- a/jpa/plugins/org.eclipse.jpt.eclipselink.ui/src/org/eclipse/jpt/eclipselink/ui/internal/mappings/details/EclipseLinkManyToManyMappingComposite.java
+++ /dev/null
@@ -1,133 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- *
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.eclipselink.ui.internal.mappings.details;
-
-import org.eclipse.jpt.core.context.Cascade;
-import org.eclipse.jpt.core.context.ManyToManyMapping;
-import org.eclipse.jpt.core.context.ManyToManyRelationshipReference;
-import org.eclipse.jpt.eclipselink.core.context.EclipseLinkRelationshipMapping;
-import org.eclipse.jpt.eclipselink.core.context.JoinFetch;
-import org.eclipse.jpt.ui.WidgetFactory;
-import org.eclipse.jpt.ui.details.JpaComposite;
-import org.eclipse.jpt.ui.internal.mappings.details.CascadeComposite;
-import org.eclipse.jpt.ui.internal.mappings.details.FetchTypeComposite;
-import org.eclipse.jpt.ui.internal.mappings.details.ManyToManyJoiningStrategyPane;
-import org.eclipse.jpt.ui.internal.mappings.details.OrderingComposite;
-import org.eclipse.jpt.ui.internal.mappings.details.TargetEntityComposite;
-import org.eclipse.jpt.ui.internal.widgets.FormPane;
-import org.eclipse.jpt.utility.internal.model.value.PropertyAspectAdapter;
-import org.eclipse.jpt.utility.internal.model.value.TransformationPropertyValueModel;
-import org.eclipse.jpt.utility.model.value.PropertyValueModel;
-import org.eclipse.swt.widgets.Composite;
-
-/**
- * Here the layout of this pane:
- * <pre>
- * -----------------------------------------------------------------------------
- * | ------------------------------------------------------------------------- |
- * | |                                                                       | |
- * | | TargetEntityComposite                                                 | |
- * | |                                                                       | |
- * | ------------------------------------------------------------------------- |
- * | ------------------------------------------------------------------------- |
- * | |                                                                       | |
- * | | JoiningStrategyComposite                                              | |
- * | |                                                                       | |
- * | ------------------------------------------------------------------------- |
- * | ------------------------------------------------------------------------- |
- * | |                                                                       | |
- * | | FetchTypeComposite                                                    | |
- * | |                                                                       | |
- * | ------------------------------------------------------------------------- |
- * | ------------------------------------------------------------------------- |
- * | |                                                                       | |
- * | | CascadeComposite                                                      | |
- * | |                                                                       | |
- * | ------------------------------------------------------------------------- |
- * | ------------------------------------------------------------------------- |
- * | |                                                                       | |
- * | | OrderingComposite                                                     | |
- * | |                                                                       | |
- * | ------------------------------------------------------------------------- |
- * -----------------------------------------------------------------------------</pre>
- *
- * @see {@link ManyToManyMapping}
- * @see {@link BaseJpaUiFactory} - The factory creating this pane
- * @see {@link TargetEntityComposite}
- * @see {@link ManyToManyJoiningStrategyPane}
- * @see {@link FetchTypeComposite}
- * @see {@link CascadeComposite}
- * @see {@link OrderingComposite}
- *
- * @version 2.1
- * @since 2.1
- */
-public class EclipseLinkManyToManyMappingComposite 
-	extends FormPane<ManyToManyMapping>
-	implements JpaComposite
-{
-	/**
-	 * Creates a new <code>ManyToManyMappingComposite</code>.
-	 *
-	 * @param subjectHolder The holder of the subject <code>IManyToManyMapping</code>
-	 * @param parent The parent container
-	 * @param widgetFactory The factory used to create various common widgets
-	 */
-	public EclipseLinkManyToManyMappingComposite(PropertyValueModel<? extends ManyToManyMapping> subjectHolder,
-	                                  Composite parent,
-	                                  WidgetFactory widgetFactory) {
-
-		super(subjectHolder, parent, widgetFactory);
-	}
-
-	@Override
-	protected void initializeLayout(Composite container) {
-		int groupBoxMargin = getGroupBoxMargin();
-		
-		new TargetEntityComposite(this, addPane(container, groupBoxMargin));
-		new ManyToManyJoiningStrategyPane(this, buildJoiningHolder(), container);
-		new FetchTypeComposite(this, addPane(container, groupBoxMargin));
-		new JoinFetchComposite(this, buildJoinFetchableHolder(), addPane(container, groupBoxMargin));
-		new CascadeComposite(this, buildCascadeHolder(), addSubPane(container, 5));
-		new OrderingComposite(this, container);
-	}
-
-	protected Composite addPane(Composite container, int groupBoxMargin) {
-		return addSubPane(container, 0, groupBoxMargin, 0, groupBoxMargin);
-	}
-
-	protected PropertyValueModel<ManyToManyRelationshipReference> buildJoiningHolder() {
-		return new TransformationPropertyValueModel<ManyToManyMapping, ManyToManyRelationshipReference>(
-				getSubjectHolder()) {
-			@Override
-			protected ManyToManyRelationshipReference transform_(ManyToManyMapping value) {
-				return value.getRelationshipReference();
-			}
-		};
-	}
-	
-	protected PropertyValueModel<Cascade> buildCascadeHolder() {
-		return new TransformationPropertyValueModel<ManyToManyMapping, Cascade>(getSubjectHolder()) {
-			@Override
-			protected Cascade transform_(ManyToManyMapping value) {
-				return value.getCascade();
-			}
-		};
-	}
-
-	protected PropertyValueModel<JoinFetch> buildJoinFetchableHolder() {
-		return new PropertyAspectAdapter<ManyToManyMapping, JoinFetch>(getSubjectHolder()) {
-			@Override
-			protected JoinFetch buildValue_() {
-				return ((EclipseLinkRelationshipMapping) this.subject).getJoinFetch();
-			}
-		};
-	}
-}
\ No newline at end of file
diff --git a/jpa/plugins/org.eclipse.jpt.eclipselink.ui/src/org/eclipse/jpt/eclipselink/ui/internal/mappings/details/EclipseLinkManyToOneMappingComposite.java b/jpa/plugins/org.eclipse.jpt.eclipselink.ui/src/org/eclipse/jpt/eclipselink/ui/internal/mappings/details/EclipseLinkManyToOneMappingComposite.java
deleted file mode 100644
index 37631e8..0000000
--- a/jpa/plugins/org.eclipse.jpt.eclipselink.ui/src/org/eclipse/jpt/eclipselink/ui/internal/mappings/details/EclipseLinkManyToOneMappingComposite.java
+++ /dev/null
@@ -1,132 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- *
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.eclipselink.ui.internal.mappings.details;
-
-import org.eclipse.jpt.core.context.Cascade;
-import org.eclipse.jpt.core.context.ManyToOneMapping;
-import org.eclipse.jpt.core.context.ManyToOneRelationshipReference;
-import org.eclipse.jpt.eclipselink.core.context.EclipseLinkRelationshipMapping;
-import org.eclipse.jpt.eclipselink.core.context.JoinFetch;
-import org.eclipse.jpt.ui.WidgetFactory;
-import org.eclipse.jpt.ui.details.JpaComposite;
-import org.eclipse.jpt.ui.internal.mappings.details.CascadeComposite;
-import org.eclipse.jpt.ui.internal.mappings.details.FetchTypeComposite;
-import org.eclipse.jpt.ui.internal.mappings.details.ManyToOneJoiningStrategyPane;
-import org.eclipse.jpt.ui.internal.mappings.details.OptionalComposite;
-import org.eclipse.jpt.ui.internal.mappings.details.TargetEntityComposite;
-import org.eclipse.jpt.ui.internal.widgets.FormPane;
-import org.eclipse.jpt.utility.internal.model.value.PropertyAspectAdapter;
-import org.eclipse.jpt.utility.internal.model.value.TransformationPropertyValueModel;
-import org.eclipse.jpt.utility.model.value.PropertyValueModel;
-import org.eclipse.swt.widgets.Composite;
-
-/**
- * Here the layout of this pane:
- * <pre>
- * -----------------------------------------------------------------------------
- * | ------------------------------------------------------------------------- |
- * | |                                                                       | |
- * | | TargetEntityComposite                                                 | |
- * | |                                                                       | |
- * | ------------------------------------------------------------------------- |
- * | ------------------------------------------------------------------------- |
- * | |                                                                       | |
- * | | JoiningStrategyComposite                                              | |
- * | |                                                                       | |
- * | ------------------------------------------------------------------------- |
- * | ------------------------------------------------------------------------- |
- * | |                                                                       | |
- * | | FetchTypeComposite                                                    | |
- * | |                                                                       | |
- * | ------------------------------------------------------------------------- |
- * | ------------------------------------------------------------------------- |
- * | |                                                                       | |
- * | | OptionalComposite                                                     | |
- * | |                                                                       | |
- * | ------------------------------------------------------------------------- |
- * | ------------------------------------------------------------------------- |
- * | |                                                                       | |
- * | | CascadeComposite                                                      | |
- * | |                                                                       | |
- * | ------------------------------------------------------------------------- |
- * -----------------------------------------------------------------------------</pre>
- *
- * @see {@link ManyToOneMapping}
- * @see {@link BaseJpaUiFactory} - The factory creating this pane
- * @see {@link TargetEntityComposite}
- * @see {@link ManyToOneJoiningStrategyPane}
- * @see {@link FetchTypeComposite}
- * @see {@link OptionalComposite}
- * @see {@link CascadeComposite}
- *
- * @version 2.1
- * @since 2.1
- */
-public class EclipseLinkManyToOneMappingComposite extends FormPane<ManyToOneMapping>
-                                       implements JpaComposite
-{
-	/**
-	 * Creates a new <code>EclipseLinkManyToOneMappingComposite</code>.
-	 *
-	 * @param subjectHolder The holder of the subject <code>ManyToOneMapping</code>
-	 * @param parent The parent container
-	 * @param widgetFactory The factory used to create various common widgets
-	 */
-	public EclipseLinkManyToOneMappingComposite(PropertyValueModel<? extends ManyToOneMapping> subjectHolder,
-	                                 Composite parent,
-	                                 WidgetFactory widgetFactory) {
-
-		super(subjectHolder, parent, widgetFactory);
-	}
-
-	@Override
-	protected void initializeLayout(Composite container) {
-		int groupBoxMargin = getGroupBoxMargin();
-		
-		new TargetEntityComposite(this, addPane(container, groupBoxMargin));
-		new ManyToOneJoiningStrategyPane(this, buildJoiningHolder(), container);
-		new FetchTypeComposite(this, addPane(container, groupBoxMargin));
-		new JoinFetchComposite(this, buildJoinFetchableHolder(), addPane(container, groupBoxMargin));
-		new OptionalComposite(this, addPane(container, groupBoxMargin));
-		new CascadeComposite(this, buildCascadeHolder(), addSubPane(container, 5));
-	}
-
-	protected Composite addPane(Composite container, int groupBoxMargin) {
-		return addSubPane(container, 0, groupBoxMargin, 0, groupBoxMargin);
-	}
-	
-	protected PropertyValueModel<ManyToOneRelationshipReference> buildJoiningHolder() {
-		return new TransformationPropertyValueModel<ManyToOneMapping, ManyToOneRelationshipReference>(
-				getSubjectHolder()) {
-			@Override
-			protected ManyToOneRelationshipReference transform_(ManyToOneMapping value) {
-				return value.getRelationshipReference();
-			}
-		};
-	}
-	
-	protected PropertyValueModel<JoinFetch> buildJoinFetchableHolder() {
-		return new PropertyAspectAdapter<ManyToOneMapping, JoinFetch>(getSubjectHolder()) {
-			@Override
-			protected JoinFetch buildValue_() {
-				return ((EclipseLinkRelationshipMapping) this.subject).getJoinFetch();
-			}
-		};
-	}
-
-	protected PropertyValueModel<Cascade> buildCascadeHolder() {
-		return new TransformationPropertyValueModel<ManyToOneMapping, Cascade>(getSubjectHolder()) {
-			@Override
-			protected Cascade transform_(ManyToOneMapping value) {
-				return value.getCascade();
-			}
-		};
-	}
-}
diff --git a/jpa/plugins/org.eclipse.jpt.eclipselink.ui/src/org/eclipse/jpt/eclipselink/ui/internal/mappings/details/EclipseLinkMappedSuperclassAdvancedComposite.java b/jpa/plugins/org.eclipse.jpt.eclipselink.ui/src/org/eclipse/jpt/eclipselink/ui/internal/mappings/details/EclipseLinkMappedSuperclassAdvancedComposite.java
deleted file mode 100644
index 007b8f0..0000000
--- a/jpa/plugins/org.eclipse.jpt.eclipselink.ui/src/org/eclipse/jpt/eclipselink/ui/internal/mappings/details/EclipseLinkMappedSuperclassAdvancedComposite.java
+++ /dev/null
@@ -1,70 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- *
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.eclipselink.ui.internal.mappings.details;
-
-import org.eclipse.jpt.core.context.MappedSuperclass;
-import org.eclipse.jpt.eclipselink.core.context.ChangeTracking;
-import org.eclipse.jpt.eclipselink.core.context.Customizer;
-import org.eclipse.jpt.eclipselink.core.context.EclipseLinkMappedSuperclass;
-import org.eclipse.jpt.eclipselink.core.context.ReadOnly;
-import org.eclipse.jpt.eclipselink.ui.internal.mappings.EclipseLinkUiMappingsMessages;
-import org.eclipse.jpt.ui.internal.widgets.FormPane;
-import org.eclipse.jpt.utility.internal.model.value.PropertyAspectAdapter;
-import org.eclipse.jpt.utility.model.value.PropertyValueModel;
-import org.eclipse.swt.widgets.Composite;
-
-public class EclipseLinkMappedSuperclassAdvancedComposite extends FormPane<MappedSuperclass> {
-	
-	public EclipseLinkMappedSuperclassAdvancedComposite(
-			FormPane<? extends MappedSuperclass> parentPane,
-			Composite parent) {
-
-		super(parentPane, parent, false);
-	}
-	
-	@Override
-	protected void initializeLayout(Composite container) {
-		container = addCollapsableSection(
-			container,
-			EclipseLinkUiMappingsMessages.EclipseLinkTypeMappingComposite_advanced
-		);
-		
-		new ReadOnlyComposite(this, buildReadOnlyHolder(), container);
-		new CustomizerComposite(this, buildCustomizerHolder(), container);
-		new ChangeTrackingComposite(this, buildChangeTrackingHolder(), container);
-	}
-	
-	private PropertyValueModel<ReadOnly> buildReadOnlyHolder() {
-		return new PropertyAspectAdapter<MappedSuperclass, ReadOnly>(getSubjectHolder()) {
-			@Override
-			protected ReadOnly buildValue_() {
-				return ((EclipseLinkMappedSuperclass) this.subject).getReadOnly();
-			}
-		};
-	}
-	
-	private PropertyValueModel<Customizer> buildCustomizerHolder() {
-		return new PropertyAspectAdapter<MappedSuperclass, Customizer>(getSubjectHolder()) {
-			@Override
-			protected Customizer buildValue_() {
-				return ((EclipseLinkMappedSuperclass) this.subject).getCustomizer();
-			}
-		};
-	}
-	
-	private PropertyValueModel<ChangeTracking> buildChangeTrackingHolder() {
-		return new PropertyAspectAdapter<MappedSuperclass, ChangeTracking>(getSubjectHolder()) {
-			@Override
-			protected ChangeTracking buildValue_() {
-				return ((EclipseLinkMappedSuperclass) this.subject).getChangeTracking();
-			}
-		};
-	}
-}
diff --git a/jpa/plugins/org.eclipse.jpt.eclipselink.ui/src/org/eclipse/jpt/eclipselink/ui/internal/mappings/details/EclipseLinkOneToManyJoiningStrategyPane.java b/jpa/plugins/org.eclipse.jpt.eclipselink.ui/src/org/eclipse/jpt/eclipselink/ui/internal/mappings/details/EclipseLinkOneToManyJoiningStrategyPane.java
deleted file mode 100644
index c2689cd..0000000
--- a/jpa/plugins/org.eclipse.jpt.eclipselink.ui/src/org/eclipse/jpt/eclipselink/ui/internal/mappings/details/EclipseLinkOneToManyJoiningStrategyPane.java
+++ /dev/null
@@ -1,48 +0,0 @@
-/*******************************************************************************
- *  Copyright (c) 2009  Oracle. 
- *  All rights reserved.  This program and the accompanying materials are 
- *  made available under the terms of the Eclipse Public License v1.0 which 
- *  accompanies this distribution, and is available at 
- *  http://www.eclipse.org/legal/epl-v10.html
- *  
- *  Contributors: 
- *  	Oracle - initial API and implementation
- *******************************************************************************/
-package org.eclipse.jpt.eclipselink.ui.internal.mappings.details;
-
-import org.eclipse.jpt.eclipselink.core.context.EclipseLinkOneToManyRelationshipReference;
-import org.eclipse.jpt.ui.internal.mappings.JptUiMappingsMessages;
-import org.eclipse.jpt.ui.internal.mappings.details.JoinColumnJoiningStrategyPane;
-import org.eclipse.jpt.ui.internal.mappings.details.JoinTableJoiningStrategyPane;
-import org.eclipse.jpt.ui.internal.mappings.details.MappedByJoiningStrategyPane;
-import org.eclipse.jpt.ui.internal.widgets.FormPane;
-import org.eclipse.jpt.utility.model.value.PropertyValueModel;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Group;
-
-public class EclipseLinkOneToManyJoiningStrategyPane 
-	extends FormPane<EclipseLinkOneToManyRelationshipReference>
-{
-	public EclipseLinkOneToManyJoiningStrategyPane(
-			FormPane<?> parentPane, 
-			PropertyValueModel<EclipseLinkOneToManyRelationshipReference> subjectHolder, 
-			Composite parent) {
-		super(parentPane, subjectHolder, parent);
-	}
-	
-	
-	@Override
-	protected void initializeLayout(Composite container) {
-		// joining strategy group pane
-		Group groupPane = addTitledGroup(
-			container,
-			JptUiMappingsMessages.Joining_title
-		);
-		
-		new MappedByJoiningStrategyPane(this, groupPane);
-		
-		new JoinColumnJoiningStrategyPane(this, groupPane);
-		
-		new JoinTableJoiningStrategyPane(this, groupPane);
-	}
-}
diff --git a/jpa/plugins/org.eclipse.jpt.eclipselink.ui/src/org/eclipse/jpt/eclipselink/ui/internal/mappings/details/EclipseLinkOneToManyMappingComposite.java b/jpa/plugins/org.eclipse.jpt.eclipselink.ui/src/org/eclipse/jpt/eclipselink/ui/internal/mappings/details/EclipseLinkOneToManyMappingComposite.java
deleted file mode 100644
index eafc0d0..0000000
--- a/jpa/plugins/org.eclipse.jpt.eclipselink.ui/src/org/eclipse/jpt/eclipselink/ui/internal/mappings/details/EclipseLinkOneToManyMappingComposite.java
+++ /dev/null
@@ -1,148 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008, 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- *
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.eclipselink.ui.internal.mappings.details;
-
-import org.eclipse.jpt.core.context.Cascade;
-import org.eclipse.jpt.core.context.OneToManyMapping;
-import org.eclipse.jpt.eclipselink.core.context.EclipseLinkOneToManyMapping;
-import org.eclipse.jpt.eclipselink.core.context.EclipseLinkOneToManyRelationshipReference;
-import org.eclipse.jpt.eclipselink.core.context.JoinFetch;
-import org.eclipse.jpt.eclipselink.core.context.PrivateOwned;
-import org.eclipse.jpt.ui.WidgetFactory;
-import org.eclipse.jpt.ui.details.JpaComposite;
-import org.eclipse.jpt.ui.internal.mappings.details.CascadeComposite;
-import org.eclipse.jpt.ui.internal.mappings.details.FetchTypeComposite;
-import org.eclipse.jpt.ui.internal.mappings.details.OrderingComposite;
-import org.eclipse.jpt.ui.internal.mappings.details.TargetEntityComposite;
-import org.eclipse.jpt.ui.internal.widgets.FormPane;
-import org.eclipse.jpt.utility.internal.model.value.PropertyAspectAdapter;
-import org.eclipse.jpt.utility.internal.model.value.TransformationPropertyValueModel;
-import org.eclipse.jpt.utility.model.value.PropertyValueModel;
-import org.eclipse.swt.widgets.Composite;
-
-/**
- * Here the layout of this pane:
- * <pre>
- * -----------------------------------------------------------------------------
- * | ------------------------------------------------------------------------- |
- * | |                                                                       | |
- * | | TargetEntityComposite                                                 | |
- * | |                                                                       | |
- * | ------------------------------------------------------------------------- |
- * | ------------------------------------------------------------------------- |
- * | |                                                                       | |
- * | | FetchTypeComposite                                                    | |
- * | |                                                                       | |
- * | ------------------------------------------------------------------------- |
- * | ------------------------------------------------------------------------- |
- * | |                                                                       | |
- * | | MappedByPane                                                     | |
- * | |                                                                       | |
- * | ------------------------------------------------------------------------- |
- * | ------------------------------------------------------------------------- |
- * | |                                                                       | |
- * | | OptionalComposite                                                     | |
- * | |                                                                       | |
- * | ------------------------------------------------------------------------- |
- * | ------------------------------------------------------------------------- |
- * | |                                                                       | |
- * | | CascadeComposite                                                      | |
- * | |                                                                       | |
- * | ------------------------------------------------------------------------- |
- * | ------------------------------------------------------------------------- |
- * | |                                                                       | |
- * | | JoinColumnComposite                                                   | |
- * | |                                                                       | |
- * | ------------------------------------------------------------------------- |
- * -----------------------------------------------------------------------------</pre>
- *
- * @see OneToOneMapping
- * @see BaseJpaUiFactory - The factory creating this pane
- * @see CascadeComposite
- * @see FetchTypeComposite
- * @see JoinColumnComposite
- * @see MappedByPane
- * @see OptionalComposite
- * @see TargetEntityComposite
- *
- * @version 2.1
- * @since 2.1
- */
-public class EclipseLinkOneToManyMappingComposite 
-	extends FormPane<EclipseLinkOneToManyMapping>
-    implements JpaComposite
-{
-	/**
-	 * Creates a new <code>EclipselinkOneToManyMappingComposite</code>.
-	 *
-	 * @param subjectHolder The holder of the subject <code>IOneToManyMapping</code>
-	 * @param parent The parent container
-	 * @param widgetFactory The factory used to create various common widgets
-	 */
-	public EclipseLinkOneToManyMappingComposite(PropertyValueModel<? extends EclipseLinkOneToManyMapping> subjectHolder,
-	                                 Composite parent,
-	                                 WidgetFactory widgetFactory) {
-
-		super(subjectHolder, parent, widgetFactory);
-	}
-
-	@Override
-	protected void initializeLayout(Composite container) {
-		int groupBoxMargin = getGroupBoxMargin();
-		
-		new TargetEntityComposite(this, addPane(container, groupBoxMargin));
-		new EclipseLinkOneToManyJoiningStrategyPane(this, buildJoiningHolder(), container);
-		new FetchTypeComposite(this, addPane(container, groupBoxMargin));
-		new JoinFetchComposite(this, buildJoinFetchableHolder(), addPane(container, groupBoxMargin));
-		new PrivateOwnedComposite(this, buildPrivateOwnableHolder(), addPane(container, groupBoxMargin));
-		new CascadeComposite(this, buildCascadeHolder(), addSubPane(container, 5));
-		new OrderingComposite(this, container);
-	}
-	
-	protected Composite addPane(Composite container, int groupBoxMargin) {
-		return addSubPane(container, 0, groupBoxMargin, 0, groupBoxMargin);
-	}
-
-	protected PropertyValueModel<EclipseLinkOneToManyRelationshipReference> buildJoiningHolder() {
-		return new TransformationPropertyValueModel<EclipseLinkOneToManyMapping, EclipseLinkOneToManyRelationshipReference>(getSubjectHolder()) {
-			@Override
-			protected EclipseLinkOneToManyRelationshipReference transform_(EclipseLinkOneToManyMapping value) {
-				return value.getRelationshipReference();
-			}
-		};
-	}
-	
-	protected PropertyValueModel<PrivateOwned> buildPrivateOwnableHolder() {
-		return new PropertyAspectAdapter<OneToManyMapping, PrivateOwned>(getSubjectHolder()) {
-			@Override
-			protected PrivateOwned buildValue_() {
-				return ((EclipseLinkOneToManyMapping) this.subject).getPrivateOwned();
-			}
-		};
-	}
-	
-	protected PropertyValueModel<JoinFetch> buildJoinFetchableHolder() {
-		return new PropertyAspectAdapter<OneToManyMapping, JoinFetch>(getSubjectHolder()) {
-			@Override
-			protected JoinFetch buildValue_() {
-				return ((EclipseLinkOneToManyMapping) this.subject).getJoinFetch();
-			}
-		};
-	}
-
-	protected PropertyValueModel<Cascade> buildCascadeHolder() {
-		return new TransformationPropertyValueModel<OneToManyMapping, Cascade>(getSubjectHolder()) {
-			@Override
-			protected Cascade transform_(OneToManyMapping value) {
-				return value.getCascade();
-			}
-		};
-	}
-}
\ No newline at end of file
diff --git a/jpa/plugins/org.eclipse.jpt.eclipselink.ui/src/org/eclipse/jpt/eclipselink/ui/internal/mappings/details/EclipseLinkOneToOneMappingComposite.java b/jpa/plugins/org.eclipse.jpt.eclipselink.ui/src/org/eclipse/jpt/eclipselink/ui/internal/mappings/details/EclipseLinkOneToOneMappingComposite.java
deleted file mode 100644
index 52a4757..0000000
--- a/jpa/plugins/org.eclipse.jpt.eclipselink.ui/src/org/eclipse/jpt/eclipselink/ui/internal/mappings/details/EclipseLinkOneToOneMappingComposite.java
+++ /dev/null
@@ -1,103 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008, 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- *
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.eclipselink.ui.internal.mappings.details;
-
-import org.eclipse.jpt.core.context.Cascade;
-import org.eclipse.jpt.core.context.OneToOneMapping;
-import org.eclipse.jpt.core.context.OneToOneRelationshipReference;
-import org.eclipse.jpt.eclipselink.core.context.EclipseLinkOneToOneMapping;
-import org.eclipse.jpt.eclipselink.core.context.JoinFetch;
-import org.eclipse.jpt.eclipselink.core.context.PrivateOwned;
-import org.eclipse.jpt.ui.WidgetFactory;
-import org.eclipse.jpt.ui.details.JpaComposite;
-import org.eclipse.jpt.ui.internal.mappings.details.CascadeComposite;
-import org.eclipse.jpt.ui.internal.mappings.details.FetchTypeComposite;
-import org.eclipse.jpt.ui.internal.mappings.details.OneToOneJoiningStrategyPane;
-import org.eclipse.jpt.ui.internal.mappings.details.OptionalComposite;
-import org.eclipse.jpt.ui.internal.mappings.details.TargetEntityComposite;
-import org.eclipse.jpt.ui.internal.widgets.FormPane;
-import org.eclipse.jpt.utility.internal.model.value.PropertyAspectAdapter;
-import org.eclipse.jpt.utility.internal.model.value.TransformationPropertyValueModel;
-import org.eclipse.jpt.utility.model.value.PropertyValueModel;
-import org.eclipse.swt.widgets.Composite;
-
-
-public class EclipseLinkOneToOneMappingComposite extends FormPane<OneToOneMapping>
-                                      implements JpaComposite
-{
-	/**
-	 * Creates a new <code>EclipselinkOneToOneMappingComposite</code>.
-	 *
-	 * @param subjectHolder The holder of the subject <code>IOneToOneMapping</code>
-	 * @param parent The parent container
-	 * @param widgetFactory The factory used to create various common widgets
-	 */
-	public EclipseLinkOneToOneMappingComposite(PropertyValueModel<? extends OneToOneMapping> subjectHolder,
-	                                Composite parent,
-	                                WidgetFactory widgetFactory) {
-
-		super(subjectHolder, parent, widgetFactory);
-	}
-
-	@Override
-	protected void initializeLayout(Composite container) {
-		int groupBoxMargin = getGroupBoxMargin();
-
-		new TargetEntityComposite(this, addPane(container, groupBoxMargin));
-		new OneToOneJoiningStrategyPane(this, buildJoiningHolder(), container);
-		new FetchTypeComposite(this, addPane(container, groupBoxMargin));
-		new JoinFetchComposite(this, buildJoinFetchableHolder(), addPane(container, groupBoxMargin));
-		new OptionalComposite(this, addPane(container, groupBoxMargin));
-		new PrivateOwnedComposite(this, buildPrivateOwnableHolder(), addPane(container, groupBoxMargin));
-		new CascadeComposite(this, buildCascadeHolder(), addSubPane(container, 5));
-	}
-	
-	protected Composite addPane(Composite container, int groupBoxMargin) {
-		return addSubPane(container, 0, groupBoxMargin, 0, groupBoxMargin);
-	}
-	
-	protected PropertyValueModel<OneToOneRelationshipReference> buildJoiningHolder() {
-		return new TransformationPropertyValueModel<OneToOneMapping, OneToOneRelationshipReference>(
-				getSubjectHolder()) {
-			@Override
-			protected OneToOneRelationshipReference transform_(OneToOneMapping value) {
-				return value.getRelationshipReference();
-			}
-		};
-	}
-	
-	protected PropertyValueModel<JoinFetch> buildJoinFetchableHolder() {
-		return new PropertyAspectAdapter<OneToOneMapping, JoinFetch>(getSubjectHolder()) {
-			@Override
-			protected JoinFetch buildValue_() {
-				return ((EclipseLinkOneToOneMapping) this.subject).getJoinFetch();
-			}
-		};
-	}
-	
-	protected PropertyValueModel<PrivateOwned> buildPrivateOwnableHolder() {
-		return new PropertyAspectAdapter<OneToOneMapping, PrivateOwned>(getSubjectHolder()) {
-			@Override
-			protected PrivateOwned buildValue_() {
-				return ((EclipseLinkOneToOneMapping) this.subject).getPrivateOwned();
-			}
-		};
-	}
-
-	protected PropertyValueModel<Cascade> buildCascadeHolder() {
-		return new TransformationPropertyValueModel<OneToOneMapping, Cascade>(getSubjectHolder()) {
-		
-			@Override
-			protected Cascade transform_(OneToOneMapping value) {
-				return value.getCascade();
-			}
-		};
-	}
-}
\ No newline at end of file
diff --git a/jpa/plugins/org.eclipse.jpt.eclipselink.ui/src/org/eclipse/jpt/eclipselink/ui/internal/mappings/details/EclipseLinkTransformationMappingUiProvider.java b/jpa/plugins/org.eclipse.jpt.eclipselink.ui/src/org/eclipse/jpt/eclipselink/ui/internal/mappings/details/EclipseLinkTransformationMappingUiProvider.java
deleted file mode 100644
index 0d768da..0000000
--- a/jpa/plugins/org.eclipse.jpt.eclipselink.ui/src/org/eclipse/jpt/eclipselink/ui/internal/mappings/details/EclipseLinkTransformationMappingUiProvider.java
+++ /dev/null
@@ -1,43 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008, 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- *
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.eclipselink.ui.internal.mappings.details;
-
-import org.eclipse.jpt.eclipselink.core.EclipseLinkMappingKeys;
-import org.eclipse.jpt.eclipselink.core.context.TransformationMapping;
-import org.eclipse.jpt.eclipselink.ui.internal.mappings.EclipseLinkUiMappingsMessages;
-import org.eclipse.jpt.ui.JptUiPlugin;
-import org.eclipse.jpt.ui.details.AttributeMappingUiProvider;
-import org.eclipse.jpt.ui.internal.JptUiIcons;
-import org.eclipse.swt.graphics.Image;
-
-public abstract class EclipseLinkTransformationMappingUiProvider<T extends TransformationMapping>
-	implements AttributeMappingUiProvider<T>
-{
-	
-	protected EclipseLinkTransformationMappingUiProvider() {
-		super();
-	}
-	
-	public Image getImage() {
-		return JptUiPlugin.getImage(JptUiIcons.JPA_CONTENT);
-	}
-	
-	public String getLabel() {
-		return EclipseLinkUiMappingsMessages.TransformationMappingUiProvider_label;
-	}
-	
-	public String getLinkLabel() {
-		return EclipseLinkUiMappingsMessages.TransformationMappingUiProvider_linkLabel;
-	}
-	
-	public String getKey() {
-		return EclipseLinkMappingKeys.TRANSFORMATION_ATTRIBUTE_MAPPING_KEY;
-	}
-}
diff --git a/jpa/plugins/org.eclipse.jpt.eclipselink.ui/src/org/eclipse/jpt/eclipselink/ui/internal/mappings/details/EclipseLinkVariableOneToOneMappingUiProvider.java b/jpa/plugins/org.eclipse.jpt.eclipselink.ui/src/org/eclipse/jpt/eclipselink/ui/internal/mappings/details/EclipseLinkVariableOneToOneMappingUiProvider.java
deleted file mode 100644
index 58ce196..0000000
--- a/jpa/plugins/org.eclipse.jpt.eclipselink.ui/src/org/eclipse/jpt/eclipselink/ui/internal/mappings/details/EclipseLinkVariableOneToOneMappingUiProvider.java
+++ /dev/null
@@ -1,42 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- *
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.eclipselink.ui.internal.mappings.details;
-
-import org.eclipse.jpt.eclipselink.core.EclipseLinkMappingKeys;
-import org.eclipse.jpt.eclipselink.core.context.VariableOneToOneMapping;
-import org.eclipse.jpt.eclipselink.ui.internal.mappings.EclipseLinkUiMappingsMessages;
-import org.eclipse.jpt.ui.JptUiPlugin;
-import org.eclipse.jpt.ui.details.AttributeMappingUiProvider;
-import org.eclipse.jpt.ui.internal.JptUiIcons;
-import org.eclipse.swt.graphics.Image;
-
-public abstract class EclipseLinkVariableOneToOneMappingUiProvider<T extends VariableOneToOneMapping>
-	implements AttributeMappingUiProvider<T>
-{	
-	protected EclipseLinkVariableOneToOneMappingUiProvider() {
-		super();
-	}
-		
-	public Image getImage() {
-		return JptUiPlugin.getImage(JptUiIcons.JPA_CONTENT);
-	}
-	
-	public String getLabel() {
-		return EclipseLinkUiMappingsMessages.VariableOneToOneMappingUiProvider_label;
-	}
-	
-	public String getLinkLabel() {
-		return EclipseLinkUiMappingsMessages.VariableOneToOneMappingUiProvider_linkLabel;
-	}
-	
-	public String getKey() {
-		return EclipseLinkMappingKeys.VARIABLE_ONE_TO_ONE_ATTRIBUTE_MAPPING_KEY;
-	}
-}
diff --git a/jpa/plugins/org.eclipse.jpt.eclipselink.ui/src/org/eclipse/jpt/eclipselink/ui/internal/mappings/details/EclipseLinkVersionMappingComposite.java b/jpa/plugins/org.eclipse.jpt.eclipselink.ui/src/org/eclipse/jpt/eclipselink/ui/internal/mappings/details/EclipseLinkVersionMappingComposite.java
deleted file mode 100644
index b23bfef..0000000
--- a/jpa/plugins/org.eclipse.jpt.eclipselink.ui/src/org/eclipse/jpt/eclipselink/ui/internal/mappings/details/EclipseLinkVersionMappingComposite.java
+++ /dev/null
@@ -1,246 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008, 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- *
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.eclipselink.ui.internal.mappings.details;
-
-import org.eclipse.jpt.core.context.Column;
-import org.eclipse.jpt.core.context.Converter;
-import org.eclipse.jpt.core.context.ConvertibleMapping;
-import org.eclipse.jpt.core.context.TemporalConverter;
-import org.eclipse.jpt.core.context.VersionMapping;
-import org.eclipse.jpt.eclipselink.core.context.Convert;
-import org.eclipse.jpt.eclipselink.core.context.EclipseLinkVersionMapping;
-import org.eclipse.jpt.eclipselink.core.context.Mutable;
-import org.eclipse.jpt.eclipselink.ui.internal.mappings.EclipseLinkUiMappingsMessages;
-import org.eclipse.jpt.ui.WidgetFactory;
-import org.eclipse.jpt.ui.details.JpaComposite;
-import org.eclipse.jpt.ui.internal.mappings.JptUiMappingsMessages;
-import org.eclipse.jpt.ui.internal.mappings.details.ColumnComposite;
-import org.eclipse.jpt.ui.internal.mappings.details.TemporalTypeComposite;
-import org.eclipse.jpt.ui.internal.widgets.FormPane;
-import org.eclipse.jpt.ui.internal.widgets.Pane;
-import org.eclipse.jpt.utility.internal.model.value.PropertyAspectAdapter;
-import org.eclipse.jpt.utility.internal.model.value.TransformationPropertyValueModel;
-import org.eclipse.jpt.utility.model.value.PropertyValueModel;
-import org.eclipse.jpt.utility.model.value.WritablePropertyValueModel;
-import org.eclipse.swt.layout.GridData;
-import org.eclipse.swt.layout.GridLayout;
-import org.eclipse.swt.widgets.Button;
-import org.eclipse.swt.widgets.Composite;
-
-/**
- * Here the layout of this pane:
- * <pre>
- * -----------------------------------------------------------------------------
- * | ------------------------------------------------------------------------- |
- * | |                                                                       | |
- * | | ColumnComposite                                                       | |
- * | |                                                                       | |
- * | ------------------------------------------------------------------------- |
- * | ------------------------------------------------------------------------- |
- * | |                                                                       | |
- * | | MutableComposite                                                      | |
- * | |                                                                       | |
- * | ------------------------------------------------------------------------- |
- * | ------------------------------------------------------------------------- |
- * | |                                                                       | |
- * | | TemporalTypeComposite                                                 | |
- * | |                                                                       | |
- * | ------------------------------------------------------------------------- |
- * -----------------------------------------------------------------------------</pre>
- *
- * @see VersionMapping
- * @see BaseJpaUiFactory - The factory creating this pane
- * @see ColumnComposite
- * @see TemporalTypeComposite
- *
- * @version 2.1
- * @since 2.1
- */
-public class EclipseLinkVersionMappingComposite extends FormPane<VersionMapping>
-                                     implements JpaComposite
-{
-	/**
-	 * Creates a new <code>VersionMappingComposite</code>.
-	 *
-	 * @param subjectHolder The holder of the subject <code>IVersionMapping</code>
-	 * @param parent The parent container
-	 * @param widgetFactory The factory used to create various common widgets
-	 */
-	public EclipseLinkVersionMappingComposite(PropertyValueModel<? extends VersionMapping> subjectHolder,
-	                               Composite parent,
-	                               WidgetFactory widgetFactory) {
-
-		super(subjectHolder, parent, widgetFactory);
-	}
-
-	protected PropertyValueModel<Column> buildColumnHolder() {
-		return new TransformationPropertyValueModel<VersionMapping, Column>(getSubjectHolder()) {
-			@Override
-			protected Column transform_(VersionMapping value) {
-				return value.getColumn();
-			}
-		};
-	}
-
-	@Override
-	protected void initializeLayout(Composite container) {
-		initializeGeneralPane(container);
-		initializeTypePane(container);
-	}
-	
-	protected void initializeGeneralPane(Composite container) {
-		int groupBoxMargin = getGroupBoxMargin();
-
-		// Column widgets
-		new ColumnComposite(this, buildColumnHolder(), container);
-		
-		// Align the widgets under the ColumnComposite
-		container = addSubPane(container, 0, groupBoxMargin, 0, groupBoxMargin);
-		
-		// Mutable widgets
-		new MutableComposite(this, buildMutableHolder(), container);
-	}
-	
-	protected void initializeTypePane(Composite container) {
-
-		container = addCollapsableSection(
-			container,
-			JptUiMappingsMessages.TypeSection_type
-		);
-		((GridLayout) container.getLayout()).numColumns = 2;
-
-		// No converter
-		Button noConverterButton = addRadioButton(
-			container, 
-			JptUiMappingsMessages.TypeSection_default, 
-			buildNoConverterHolder(), 
-			null);
-		((GridData) noConverterButton.getLayoutData()).horizontalSpan = 2;
-				
-		PropertyValueModel<Converter> specifiedConverterHolder = buildSpecifiedConverterHolder();
-		// Temporal
-		addRadioButton(
-			container, 
-			JptUiMappingsMessages.TypeSection_temporal, 
-			buildTemporalBooleanHolder(), 
-			null);
-		registerSubPane(new TemporalTypeComposite(buildTemporalConverterHolder(specifiedConverterHolder), container, getWidgetFactory()));
-
-		// EclipseLink Converter
-		Button elConverterButton = addRadioButton(
-			container, 
-			EclipseLinkUiMappingsMessages.TypeSection_converted, 
-			buildEclipseLinkConverterBooleanHolder(), 
-			null);
-		((GridData) elConverterButton.getLayoutData()).horizontalSpan = 2;
-
-		Pane<Convert> convertComposite = buildConvertComposite(buildEclipseLinkConverterHolder(specifiedConverterHolder), container);
-		GridData gridData = (GridData) convertComposite.getControl().getLayoutData();
-		gridData.horizontalSpan = 2;
-		gridData.horizontalIndent = 20;
-		registerSubPane(convertComposite);
-	}
-	
-	protected Pane<Convert> buildConvertComposite(PropertyValueModel<Convert> convertHolder, Composite container) {
-		return new ConvertComposite(convertHolder, container, getWidgetFactory());
-	}
-
-	protected WritablePropertyValueModel<Boolean> buildNoConverterHolder() {
-		return new PropertyAspectAdapter<VersionMapping, Boolean>(getSubjectHolder(), ConvertibleMapping.SPECIFIED_CONVERTER_PROPERTY) {
-			@Override
-			protected Boolean buildValue_() {
-				return Boolean.valueOf(this.subject.getSpecifiedConverter() == null);
-			}
-
-			@Override
-			protected void setValue_(Boolean value) {
-				if (value.booleanValue()) {
-					this.subject.setSpecifiedConverter(Converter.NO_CONVERTER);
-				}
-			}
-		};
-	}
-
-	protected PropertyValueModel<Convert> buildEclipseLinkConverterHolder(PropertyValueModel<Converter> converterHolder) {
-		return new TransformationPropertyValueModel<Converter, Convert>(converterHolder) {
-			@Override
-			protected Convert transform_(Converter converter) {
-				return (converter != null && converter.getType() == Convert.ECLIPSE_LINK_CONVERTER) ? (Convert) converter : null;
-			}
-		};
-	}
-
-	protected WritablePropertyValueModel<Boolean> buildTemporalBooleanHolder() {
-		return new PropertyAspectAdapter<VersionMapping, Boolean>(getSubjectHolder(), ConvertibleMapping.SPECIFIED_CONVERTER_PROPERTY) {
-			@Override
-			protected Boolean buildValue_() {
-				Converter converter = this.subject.getSpecifiedConverter();
-				if (converter == null) {
-					return Boolean.FALSE;
-				}
-				return Boolean.valueOf(converter.getType() == Converter.TEMPORAL_CONVERTER);
-			}
-
-			@Override
-			protected void setValue_(Boolean value) {
-				if (value.booleanValue()) {
-					this.subject.setSpecifiedConverter(Converter.TEMPORAL_CONVERTER);
-				}
-			}
-		};
-	}
-	
-	protected WritablePropertyValueModel<Boolean> buildEclipseLinkConverterBooleanHolder() {
-		return new PropertyAspectAdapter<VersionMapping, Boolean>(getSubjectHolder(), ConvertibleMapping.SPECIFIED_CONVERTER_PROPERTY) {
-			@Override
-			protected Boolean buildValue_() {
-				Converter converter = this.subject.getSpecifiedConverter();
-				if (converter == null) {
-					return Boolean.FALSE;
-				}
-				return Boolean.valueOf(converter.getType() == Convert.ECLIPSE_LINK_CONVERTER);
-			}
-
-			@Override
-			protected void setValue_(Boolean value) {
-				if (value.booleanValue()) {
-					this.subject.setSpecifiedConverter(Convert.ECLIPSE_LINK_CONVERTER);
-				}
-			}
-		};
-	}
-
-	protected PropertyValueModel<Converter> buildSpecifiedConverterHolder() {
-		return new PropertyAspectAdapter<VersionMapping, Converter>(getSubjectHolder(), ConvertibleMapping.SPECIFIED_CONVERTER_PROPERTY) {
-			@Override
-			protected Converter buildValue_() {
-				return this.subject.getSpecifiedConverter();
-			}
-		};
-	}
-	
-	protected PropertyValueModel<TemporalConverter> buildTemporalConverterHolder(PropertyValueModel<Converter> converterHolder) {
-		return new TransformationPropertyValueModel<Converter, TemporalConverter>(converterHolder) {
-			@Override
-			protected TemporalConverter transform_(Converter converter) {
-				return (converter != null && converter.getType() == Converter.TEMPORAL_CONVERTER) ? (TemporalConverter) converter : null;
-			}
-		};
-	}
-	
-	protected PropertyValueModel<Mutable> buildMutableHolder() {
-		return new PropertyAspectAdapter<VersionMapping, Mutable>(getSubjectHolder()) {
-			@Override
-			protected Mutable buildValue_() {
-				return ((EclipseLinkVersionMapping) this.subject).getMutable();
-			}
-		};
-	}
-}
\ No newline at end of file
diff --git a/jpa/plugins/org.eclipse.jpt.eclipselink.ui/src/org/eclipse/jpt/eclipselink/ui/internal/mappings/details/ExpiryComposite.java b/jpa/plugins/org.eclipse.jpt.eclipselink.ui/src/org/eclipse/jpt/eclipselink/ui/internal/mappings/details/ExpiryComposite.java
deleted file mode 100644
index 05f4cd5..0000000
--- a/jpa/plugins/org.eclipse.jpt.eclipselink.ui/src/org/eclipse/jpt/eclipselink/ui/internal/mappings/details/ExpiryComposite.java
+++ /dev/null
@@ -1,326 +0,0 @@
-/*******************************************************************************
- *  Copyright (c) 2008 Oracle. All rights reserved. This
- *  program and the accompanying materials are made available under the terms of
- *  the Eclipse Public License v1.0 which accompanies this distribution, and is
- *  available at http://www.eclipse.org/legal/epl-v10.html
- *
- *  Contributors: Oracle. - initial API and implementation
- *******************************************************************************/
-package org.eclipse.jpt.eclipselink.ui.internal.mappings.details;
-
-import org.eclipse.jpt.eclipselink.core.context.Caching;
-import org.eclipse.jpt.eclipselink.core.context.ExpiryTimeOfDay;
-import org.eclipse.jpt.eclipselink.ui.internal.mappings.EclipseLinkUiMappingsMessages;
-import org.eclipse.jpt.ui.internal.util.ControlEnabler;
-import org.eclipse.jpt.ui.internal.widgets.FormPane;
-import org.eclipse.jpt.ui.internal.widgets.IntegerCombo;
-import org.eclipse.jpt.utility.internal.StringConverter;
-import org.eclipse.jpt.utility.internal.model.value.PropertyAspectAdapter;
-import org.eclipse.jpt.utility.model.value.PropertyValueModel;
-import org.eclipse.jpt.utility.model.value.WritablePropertyValueModel;
-import org.eclipse.swt.custom.CCombo;
-import org.eclipse.swt.layout.GridData;
-import org.eclipse.swt.widgets.Button;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Control;
-import org.eclipse.swt.widgets.DateTime;
-import org.eclipse.swt.widgets.Group;
-
-/**
- * Here is the layout of this pane:
- * <pre>
- * -----------------------------------------------------------------------------
- * | - Expiry -------------------------------------------------------------- | |
- * | |                                                                       | |
- * | | o No expiry                                                           | |
- * | |                     					----------------                 | |
- * | | o Time to live expiry   Expire after | I          |I| milliseconds    | |
- * | |                                      ----------------                 | |
- * | |                     				    --------------------             | |
- * | | o Daily expiry          Expire at    | HH:MM:SS:AM/PM |I|             | |
- * | |                                      --------------------             | |
- * | ------------------------------------------------------------------------- |
- * -----------------------------------------------------------------------------</pre>
- *
- * @see EclipseLinkCaching
- * @see EclipseLinkExpiryTimeOfDay
- * @see CachingComposite - A container of this widget
- *
- * @version 2.1
- * @since 2.1
- */
-public class ExpiryComposite extends FormPane<Caching> {
-
-	public ExpiryComposite(FormPane<? extends Caching> parentPane,
-	                          Composite parent) {
-
-		super(parentPane, parent);
-	}
-
-	@Override
-	protected void initializeLayout(Composite container) {
-		// Expiry group pane
-		Group expiryGroupPane = addTitledGroup(
-			container,
-			EclipseLinkUiMappingsMessages.ExpiryComposite_expirySection,
-			2,
-			null
-		);
-				
-		// No Expiry radio button
-		Button button = addRadioButton(
-			expiryGroupPane,
-			EclipseLinkUiMappingsMessages.ExpiryComposite_noExpiry,
-			buildNoExpiryHolder(),
-			null
-		);
-		GridData gridData = new GridData();
-		gridData.horizontalSpan = 2;
-		button.setLayoutData(gridData);
-
-		
-		// Time To Live Expiry radio button
-		addRadioButton(
-			expiryGroupPane,
-			EclipseLinkUiMappingsMessages.ExpiryComposite_timeToLiveExpiry,
-			buildExpiryHolder(),
-			null
-		);
-		
-		addTimeToLiveComposite(expiryGroupPane);
-		
-		// Daily Expiry radio button
-		addRadioButton(
-			expiryGroupPane,
-			EclipseLinkUiMappingsMessages.ExpiryComposite_dailyExpiry,
-			buildTimeOfDayExpiryBooleanHolder(),
-			null
-		);
-		
-		addTimeOfDayComposite(expiryGroupPane);
-	}
-	
-	protected void addTimeToLiveComposite(Composite parent) {
-		Composite container = this.addSubPane(parent, 3, 0, 10, 0, 0);
-
-
-		Control expireAfterLabel = addUnmanagedLabel(
-			container,
-			EclipseLinkUiMappingsMessages.ExpiryComposite_timeToLiveExpiryExpireAfter
-		);
-	
-		IntegerCombo<?> combo = addTimeToLiveExpiryCombo(container);
-		GridData gridData = new GridData();
-		gridData.grabExcessHorizontalSpace = false;
-		combo.getControl().setLayoutData(gridData);
-		
-		Control millisecondsLabel =	addUnmanagedLabel(
-			container,
-			EclipseLinkUiMappingsMessages.ExpiryComposite_timeToLiveExpiryMilliseconds
-		);
-		
-		new ControlEnabler(buildTimeToLiveExpiryEnabler(), expireAfterLabel, combo.getCombo(), millisecondsLabel);
-	}
-	
-	protected void addTimeOfDayComposite(Composite parent) {
-		Composite container = this.addSubPane(parent, 2, 0, 10, 0, 0);
-
-
-		Control expireAtLabel = addUnmanagedLabel(
-			container,
-			EclipseLinkUiMappingsMessages.ExpiryComposite_timeOfDayExpiryExpireAt
-		);
-		
-		PropertyValueModel<ExpiryTimeOfDay> timeOfDayExpiryHolder = buildTimeOfDayExpiryHolder();
-		DateTime dateTime = addUnmanagedDateTime(
-			container, 
-			buildTimeOfDayExpiryHourHolder(timeOfDayExpiryHolder), 
-			buildTimeOfDayExpiryMinuteHolder(timeOfDayExpiryHolder),
-			buildTimeOfDayExpirySecondHolder(timeOfDayExpiryHolder),
-			null);
-
-		new ControlEnabler(buildTimeOfDayExpiryEnabler(), expireAtLabel, dateTime);
-	}
-	
-	private WritablePropertyValueModel<Boolean> buildNoExpiryHolder() {
-		return new PropertyAspectAdapter<Caching, Boolean>(
-					getSubjectHolder(), 
-					Caching.EXPIRY_PROPERTY, 
-					Caching.EXPIRY_TIME_OF_DAY_PROPERTY) {
-			@Override
-			protected Boolean buildValue_() {
-				return Boolean.valueOf(this.subject.getExpiry() == null && this.subject.getExpiryTimeOfDay() == null);
-			}
-
-			@Override
-			protected void setValue_(Boolean value) {
-				this.subject.setExpiry(null);
-				if (this.subject.getExpiryTimeOfDay() != null) {
-					this.subject.removeExpiryTimeOfDay();
-				}
-			}
-		};
-	}
-
-	private WritablePropertyValueModel<Boolean> buildExpiryHolder() {
-		return new PropertyAspectAdapter<Caching, Boolean>(
-					getSubjectHolder(), 
-					Caching.EXPIRY_PROPERTY) {
-			@Override
-			protected Boolean buildValue_() {
-				return Boolean.valueOf(this.subject.getExpiry() != null);
-			}
-
-			@Override
-			protected void setValue_(Boolean value) {
-				if (value == Boolean.TRUE) {
-					this.subject.setExpiry(0);
-				}
-			}
-		};
-	}
-	
-	private WritablePropertyValueModel<Boolean> buildTimeOfDayExpiryBooleanHolder() {
-		return new PropertyAspectAdapter<Caching, Boolean>(
-					getSubjectHolder(), 
-					Caching.EXPIRY_TIME_OF_DAY_PROPERTY) {
-			@Override
-			protected Boolean buildValue_() {
-				return Boolean.valueOf(this.subject.getExpiryTimeOfDay() != null);
-			}
-
-			@Override
-			protected void setValue_(Boolean value) {
-				if (value == Boolean.TRUE) {
-					this.subject.addExpiryTimeOfDay();
-				}
-			}
-		};
-	}
-	
-	private IntegerCombo<Caching> addTimeToLiveExpiryCombo(Composite container) {
-		return new IntegerCombo<Caching>(this, container) {
-		
-			@Override
-			protected CCombo addIntegerCombo(Composite container) {
-				return this.addUnmanagedEditableCCombo(
-						container,
-						buildDefaultListHolder(),
-						buildSelectedItemStringHolder(),
-						StringConverter.Default.<String>instance());
-			}
-		
-			@Override
-			protected String getLabelText() {
-				throw new UnsupportedOperationException();
-			}
-		
-		
-			@Override
-			protected String getHelpId() {
-				return null;
-			}
-
-			@Override
-			protected PropertyValueModel<Integer> buildDefaultHolder() {
-				return new PropertyAspectAdapter<Caching, Integer>(getSubjectHolder()) {
-					@Override
-					protected Integer buildValue_() {
-						return Integer.valueOf(0);
-					}
-				};
-			}
-			
-			@Override
-			protected WritablePropertyValueModel<Integer> buildSelectedItemHolder() {
-				return new PropertyAspectAdapter<Caching, Integer>(getSubjectHolder(), Caching.EXPIRY_PROPERTY) {
-					@Override
-					protected Integer buildValue_() {
-						return this.subject.getExpiry();
-					}
-
-					@Override
-					protected void setValue_(Integer value) {
-						this.subject.setExpiry(value);
-					}
-				};
-			}
-		};
-	}
-	
-	private PropertyValueModel<Boolean> buildTimeToLiveExpiryEnabler() {
-		return new PropertyAspectAdapter<Caching, Boolean>(getSubjectHolder(), Caching.EXPIRY_PROPERTY) {
-			@Override
-			protected Boolean buildValue_() {
-				return Boolean.valueOf(this.subject.getExpiry() != null);
-			}
-		};
-	}
-	
-	private PropertyValueModel<Boolean> buildTimeOfDayExpiryEnabler() {
-		return new PropertyAspectAdapter<Caching, Boolean>(getSubjectHolder(), Caching.EXPIRY_TIME_OF_DAY_PROPERTY) {
-			@Override
-			protected Boolean buildValue_() {
-				return Boolean.valueOf(this.subject.getExpiryTimeOfDay() != null);
-			}
-		};
-	}
-	
-	private PropertyValueModel<ExpiryTimeOfDay> buildTimeOfDayExpiryHolder() {
-		return new PropertyAspectAdapter<Caching, ExpiryTimeOfDay>(getSubjectHolder(), Caching.EXPIRY_TIME_OF_DAY_PROPERTY) {
-			@Override
-			protected ExpiryTimeOfDay buildValue_() {
-				return this.subject.getExpiryTimeOfDay();
-			}
-		};
-	}
-
-	private WritablePropertyValueModel<Integer> buildTimeOfDayExpiryHourHolder(PropertyValueModel<ExpiryTimeOfDay> timeOfDayExpiryHolder) {
-		return new PropertyAspectAdapter<ExpiryTimeOfDay, Integer>(
-					timeOfDayExpiryHolder, 
-					ExpiryTimeOfDay.HOUR_PROPERTY) {
-			@Override
-			protected Integer buildValue_() {
-				return this.subject.getHour();
-			}
-
-			@Override
-			protected void setValue_(Integer hour) {
-				this.subject.setHour(hour);
-			}
-		};
-	}
-
-	private WritablePropertyValueModel<Integer> buildTimeOfDayExpiryMinuteHolder(PropertyValueModel<ExpiryTimeOfDay> timeOfDayExpiryHolder) {
-		return new PropertyAspectAdapter<ExpiryTimeOfDay, Integer>(
-					timeOfDayExpiryHolder, 
-					ExpiryTimeOfDay.MINUTE_PROPERTY) {
-			@Override
-			protected Integer buildValue_() {
-				return this.subject.getMinute();
-			}
-
-			@Override
-			protected void setValue_(Integer minute) {
-				this.subject.setMinute(minute);
-			}
-		};
-	}
-
-	private WritablePropertyValueModel<Integer> buildTimeOfDayExpirySecondHolder(PropertyValueModel<ExpiryTimeOfDay> timeOfDayExpiryHolder) {
-		return new PropertyAspectAdapter<ExpiryTimeOfDay, Integer>(
-					timeOfDayExpiryHolder, 
-					ExpiryTimeOfDay.SECOND_PROPERTY) {
-			@Override
-			protected Integer buildValue_() {
-				return this.subject.getSecond();
-			}
-
-			@Override
-			protected void setValue_(Integer second) {
-				this.subject.setSecond(second);
-			}
-		};
-	}
-
-}
diff --git a/jpa/plugins/org.eclipse.jpt.eclipselink.ui/src/org/eclipse/jpt/eclipselink/ui/internal/mappings/details/JoinFetchComposite.java b/jpa/plugins/org.eclipse.jpt.eclipselink.ui/src/org/eclipse/jpt/eclipselink/ui/internal/mappings/details/JoinFetchComposite.java
deleted file mode 100644
index bd49227..0000000
--- a/jpa/plugins/org.eclipse.jpt.eclipselink.ui/src/org/eclipse/jpt/eclipselink/ui/internal/mappings/details/JoinFetchComposite.java
+++ /dev/null
@@ -1,113 +0,0 @@
-/*******************************************************************************
- *  Copyright (c) 2008 Oracle. All rights reserved. This
- *  program and the accompanying materials are made available under the terms of
- *  the Eclipse Public License v1.0 which accompanies this distribution, and is
- *  available at http://www.eclipse.org/legal/epl-v10.html
- *
- *  Contributors: Oracle. - initial API and implementation
- *******************************************************************************/
-package org.eclipse.jpt.eclipselink.ui.internal.mappings.details;
-
-import java.util.Collection;
-import org.eclipse.jpt.core.internal.JptCoreMessages;
-import org.eclipse.jpt.eclipselink.core.context.JoinFetch;
-import org.eclipse.jpt.eclipselink.core.context.JoinFetchType;
-import org.eclipse.jpt.eclipselink.ui.internal.mappings.EclipseLinkUiMappingsMessages;
-import org.eclipse.jpt.ui.internal.widgets.EnumFormComboViewer;
-import org.eclipse.jpt.ui.internal.widgets.FormPane;
-import org.eclipse.jpt.utility.model.value.PropertyValueModel;
-import org.eclipse.swt.widgets.Composite;
-
-/**
- * Here the layout of this pane:
- * <pre>
- * -----------------------------------------------------------------------------
- * |                ---------------------------------------------------------- |
- * | Join Fetch:    |                                                      |v| |
- * |                ---------------------------------------------------------- |
- * -----------------------------------------------------------------------------</pre>
- *
- * @see Fetchable
- * @see BasicMappingComposite - A container of this widget
- * @see ManyToManyMappingComposite - A container of this widget
- * @see ManyToOneMappingComposite - A container of this widget
- * @see OneToManyMappingComposite - A container of this widget
- * @see OneToOneMappingComposite - A container of this widget
- *
- * @version 2.1
- * @since 2.1
- */
-public class JoinFetchComposite extends FormPane<JoinFetch> {
-
-	/**
-	 * Creates a new <code>JoinFetchComposite</code>.
-	 *
-	 * @param parentPane The parent container of this one
-	 * @param parent The parent container
-	 */
-	public JoinFetchComposite(FormPane<?> parentPane, 
-								PropertyValueModel<? extends JoinFetch> subjectHolder,
-								Composite parent) {
-
-		super(parentPane, subjectHolder, parent);
-	}
-
-	@Override
-	protected void initializeLayout(Composite container) {
-		addLabeledComposite( 
-            container, 
-            addLabel( 
-                 container, 
-                 EclipseLinkUiMappingsMessages.JoinFetchComposite_label), 
-            addJoinFetchTypeCombo(container).getControl(),
-            null 
-       );
-	}
-	
-
-	private EnumFormComboViewer<JoinFetch, JoinFetchType> addJoinFetchTypeCombo(Composite container) {
-
-		return new EnumFormComboViewer<JoinFetch, JoinFetchType>(this, container) {
-
-			@Override
-			protected void addPropertyNames(Collection<String> propertyNames) {
-				super.addPropertyNames(propertyNames);
-				propertyNames.add(JoinFetch.VALUE_PROPERTY);
-			}
-
-			@Override
-			protected JoinFetchType[] getChoices() {
-				return JoinFetchType.values();
-			}
-			
-			@Override
-			protected JoinFetchType getDefaultValue() {
-				return null;
-			}
-			
-			@Override
-			protected String displayString(JoinFetchType value) {
-				return buildDisplayString(
-					EclipseLinkUiMappingsMessages.class,
-					JoinFetchComposite.this,
-					value
-				);
-			}
-			
-			@Override
-			protected String nullDisplayString() {
-				return JptCoreMessages.NONE;
-			}
-
-			@Override
-			protected JoinFetchType getValue() {
-				return getSubject().getValue();
-			}
-
-			@Override
-			protected void setValue(JoinFetchType value) {
-				getSubject().setValue(value);
-			}
-		};
-	}
-}
diff --git a/jpa/plugins/org.eclipse.jpt.eclipselink.ui/src/org/eclipse/jpt/eclipselink/ui/internal/mappings/details/MutableComposite.java b/jpa/plugins/org.eclipse.jpt.eclipselink.ui/src/org/eclipse/jpt/eclipselink/ui/internal/mappings/details/MutableComposite.java
deleted file mode 100644
index e9fc730..0000000
--- a/jpa/plugins/org.eclipse.jpt.eclipselink.ui/src/org/eclipse/jpt/eclipselink/ui/internal/mappings/details/MutableComposite.java
+++ /dev/null
@@ -1,107 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2008 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- *
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.eclipselink.ui.internal.mappings.details;
-
-import org.eclipse.jpt.eclipselink.core.context.Mutable;
-import org.eclipse.jpt.eclipselink.ui.internal.mappings.EclipseLinkUiMappingsMessages;
-import org.eclipse.jpt.ui.internal.mappings.JptUiMappingsMessages;
-import org.eclipse.jpt.ui.internal.widgets.FormPane;
-import org.eclipse.jpt.utility.internal.model.value.PropertyAspectAdapter;
-import org.eclipse.jpt.utility.internal.model.value.TransformationPropertyValueModel;
-import org.eclipse.jpt.utility.model.value.PropertyValueModel;
-import org.eclipse.jpt.utility.model.value.WritablePropertyValueModel;
-import org.eclipse.osgi.util.NLS;
-import org.eclipse.swt.widgets.Composite;
-
-/**
- * This composite simply shows a tri-state check box for the Mutable option.
- *
- * @see Mutable
- * @see EclipseLinkBasicMappingComposite - A container of this pane
- *
- * @version 2.1
- * @since 2.1
- */
-public class MutableComposite extends FormPane<Mutable>
-{
-	/**
-	 * Creates a new <code>MutableComposite</code>.
-	 *
-	 * @param parentPane The parent container of this one
-	 * @param parent The parent container
-	 */
-	public MutableComposite(FormPane<?> parentPane, 
-		PropertyValueModel<? extends Mutable> subjectHolder,
-		Composite parent) {
-
-			super(parentPane, subjectHolder, parent);
-	}
-
-	@Override
-	protected void initializeLayout(Composite container) {
-		addTriStateCheckBoxWithDefault(
-			container,
-			EclipseLinkUiMappingsMessages.MutableComposite_mutableLabel,
-			buildMutableHolder(),
-			buildMutableStringHolder(),
-			null
-		);
-	}
-
-	private WritablePropertyValueModel<Boolean> buildMutableHolder() {
-		return new PropertyAspectAdapter<Mutable, Boolean>(getSubjectHolder(), Mutable.SPECIFIED_MUTABLE_PROPERTY) {
-			@Override
-			protected Boolean buildValue_() {
-				return this.subject.getSpecifiedMutable();
-			}
-
-			@Override
-			protected void setValue_(Boolean value) {
-				this.subject.setSpecifiedMutable(value);
-			}
-
-			@Override
-			protected void subjectChanged() {
-				Object oldValue = this.getValue();
-				super.subjectChanged();
-				Object newValue = this.getValue();
-
-				// Make sure the default value is appended to the text
-				if (oldValue == newValue && newValue == null) {
-					this.fireAspectChange(Boolean.TRUE, newValue);
-				}
-			}
-		};
-	}
-
-	private PropertyValueModel<String> buildMutableStringHolder() {
-
-		return new TransformationPropertyValueModel<Boolean, String>(buildMutableHolder()) {
-
-			@Override
-			protected String transform(Boolean value) {
-
-				if ((getSubject() != null) && (value == null)) {
-					boolean defaultValue = getSubject().isDefaultMutable();
-					String defaultStringValue = defaultValue ? JptUiMappingsMessages.Boolean_True :
-					                                           JptUiMappingsMessages.Boolean_False;
-
-					return NLS.bind(
-						EclipseLinkUiMappingsMessages.MutableComposite_mutableLabelDefault,
-						defaultStringValue
-					);
-				}
-
-				return EclipseLinkUiMappingsMessages.MutableComposite_mutableLabel;
-			}
-		};
-	}
-
-}
\ No newline at end of file
diff --git a/jpa/plugins/org.eclipse.jpt.eclipselink.ui/src/org/eclipse/jpt/eclipselink/ui/internal/mappings/details/ObjectTypeConverterComposite.java b/jpa/plugins/org.eclipse.jpt.eclipselink.ui/src/org/eclipse/jpt/eclipselink/ui/internal/mappings/details/ObjectTypeConverterComposite.java
deleted file mode 100644
index b8e429e..0000000
--- a/jpa/plugins/org.eclipse.jpt.eclipselink.ui/src/org/eclipse/jpt/eclipselink/ui/internal/mappings/details/ObjectTypeConverterComposite.java
+++ /dev/null
@@ -1,482 +0,0 @@
-/*******************************************************************************
- *  Copyright (c) 2006, 2009 Oracle. All rights reserved. This
- *  program and the accompanying materials are made available under the terms of
- *  the Eclipse Public License v1.0 which accompanies this distribution, and is
- *  available at http://www.eclipse.org/legal/epl-v10.html
- *
- *  Contributors: Oracle. - initial API and implementation
- *******************************************************************************/
-package org.eclipse.jpt.eclipselink.ui.internal.mappings.details;
-
-import java.util.ListIterator;
-import org.eclipse.jdt.ui.IJavaElementSearchConstants;
-import org.eclipse.jface.viewers.ITableLabelProvider;
-import org.eclipse.jface.viewers.LabelProvider;
-import org.eclipse.jface.window.Window;
-import org.eclipse.jpt.core.JpaProject;
-import org.eclipse.jpt.eclipselink.core.context.ConversionValue;
-import org.eclipse.jpt.eclipselink.core.context.EclipseLinkConverter;
-import org.eclipse.jpt.eclipselink.core.context.ObjectTypeConverter;
-import org.eclipse.jpt.eclipselink.ui.internal.mappings.EclipseLinkUiMappingsMessages;
-import org.eclipse.jpt.ui.WidgetFactory;
-import org.eclipse.jpt.ui.internal.swt.ColumnAdapter;
-import org.eclipse.jpt.ui.internal.util.PaneEnabler;
-import org.eclipse.jpt.ui.internal.widgets.AddRemoveListPane;
-import org.eclipse.jpt.ui.internal.widgets.AddRemoveTablePane;
-import org.eclipse.jpt.ui.internal.widgets.ClassChooserPane;
-import org.eclipse.jpt.ui.internal.widgets.FormPane;
-import org.eclipse.jpt.utility.internal.StringConverter;
-import org.eclipse.jpt.utility.internal.model.value.ItemPropertyListValueModelAdapter;
-import org.eclipse.jpt.utility.internal.model.value.ListAspectAdapter;
-import org.eclipse.jpt.utility.internal.model.value.PropertyAspectAdapter;
-import org.eclipse.jpt.utility.internal.model.value.SimplePropertyValueModel;
-import org.eclipse.jpt.utility.internal.model.value.TransformationListValueModelAdapter;
-import org.eclipse.jpt.utility.internal.model.value.TransformationPropertyValueModel;
-import org.eclipse.jpt.utility.internal.model.value.swing.ObjectListSelectionModel;
-import org.eclipse.jpt.utility.model.value.ListValueModel;
-import org.eclipse.jpt.utility.model.value.PropertyValueModel;
-import org.eclipse.jpt.utility.model.value.WritablePropertyValueModel;
-import org.eclipse.swt.graphics.Image;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Group;
-
-/**
- * Here the layout of this pane:
- * <pre>
- * -----------------------------------------------------------------------------
- * |            -------------------------------------------------------------- |
- * | Name:      |                                                             ||
- * |            -------------------------------------------------------------- |
- * -----------------------------------------------------------------------------</pre>
- *
- * @see EclipseLinkConverter
- * @see ConvertComposite - A container of this widget
- *
- * @version 2.1
- * @since 2.1
- */
-public class ObjectTypeConverterComposite extends FormPane<ObjectTypeConverter>
-{
-
-	/**
-	 * Creates a new <code>ObjectTypeConverterComposite</code>.
-	 *
-	 * @param parentPane The parent container of this one
-	 * @param parent The parent container
-	 */
-	public ObjectTypeConverterComposite(PropertyValueModel<? extends ObjectTypeConverter> subjectHolder,
-			Composite parent,
-			WidgetFactory widgetFactory) {
-
-		super(subjectHolder, parent, widgetFactory);
-	}
-
-	@Override
-	protected void initializeLayout(Composite container) {
-		
-		addLabeledText(
-			container, 
-			EclipseLinkUiMappingsMessages.ConverterComposite_nameTextLabel, 
-			buildNameTextHolder());
-		
-		addDataTypeChooser(container);
-		addObjectTypeChooser(container);
-		
-		addConversionValuesTable(container);
-
-		addLabeledEditableCCombo(
-			container,
-			EclipseLinkUiMappingsMessages.ObjectTypeConverterComposite_defaultObjectValueLabel,
-			buildDefaultObjectValueListHolder(),
-			buildDefaultObjectValueHolder(),
-			buildStringConverter(),
-			null
-		);
-
-		new PaneEnabler(buildBooleanHolder(), this);
-	}
-	
-	protected WritablePropertyValueModel<String> buildNameTextHolder() {
-		return new PropertyAspectAdapter<ObjectTypeConverter, String>(
-				getSubjectHolder(), EclipseLinkConverter.NAME_PROPERTY) {
-			@Override
-			protected String buildValue_() {
-				return this.subject.getName();
-			}
-		
-			@Override
-			protected void setValue_(String value) {
-				if (value.length() == 0) {
-					value = null;
-				}
-				this.subject.setName(value);
-			}
-		};
-	}
-	
-	private ClassChooserPane<ObjectTypeConverter> addDataTypeChooser(Composite container) {
-
-		return new ClassChooserPane<ObjectTypeConverter>(this, container) {
-
-			@Override
-			protected WritablePropertyValueModel<String> buildTextHolder() {
-				return new PropertyAspectAdapter<ObjectTypeConverter, String>(getSubjectHolder(), ObjectTypeConverter.DATA_TYPE_PROPERTY) {
-					@Override
-					protected String buildValue_() {
-						return this.subject.getDataType();
-					}
-
-					@Override
-					protected void setValue_(String value) {
-
-						if (value.length() == 0) {
-							value = null;
-						}
-
-						this.subject.setDataType(value);
-					}
-				};
-			}
-
-			@Override
-			protected String getClassName() {
-				return getSubject().getDataType();
-			}
-
-			@Override
-			protected String getLabelText() {
-				return EclipseLinkUiMappingsMessages.ObjectTypeConverterComposite_dataTypeLabel;
-			}
-
-			@Override
-			protected JpaProject getJpaProject() {
-				return getSubject().getJpaProject();
-			}
-			
-			@Override
-			protected void setClassName(String className) {
-				getSubject().setDataType(className);
-			}
-			
-			@Override
-			protected char getEnclosingTypeSeparator() {
-				return getSubject().getEnclosingTypeSeparator();
-			}
-		};
-	}
-
-	private ClassChooserPane<ObjectTypeConverter> addObjectTypeChooser(Composite container) {
-
-		return new ClassChooserPane<ObjectTypeConverter>(this, container) {
-
-			@Override
-			protected WritablePropertyValueModel<String> buildTextHolder() {
-				return new PropertyAspectAdapter<ObjectTypeConverter, String>(getSubjectHolder(), ObjectTypeConverter.OBJECT_TYPE_PROPERTY) {
-					@Override
-					protected String buildValue_() {
-						return this.subject.getObjectType();
-					}
-
-					@Override
-					protected void setValue_(String value) {
-
-						if (value.length() == 0) {
-							value = null;
-						}
-
-						this.subject.setObjectType(value);
-					}
-				};
-			}
-
-			@Override
-			protected String getClassName() {
-				return getSubject().getObjectType();
-			}
-
-			@Override
-			protected String getLabelText() {
-				return EclipseLinkUiMappingsMessages.ObjectTypeConverterComposite_objectTypeLabel;
-			}
-
-			@Override
-			protected JpaProject getJpaProject() {
-				return getSubject().getJpaProject();
-			}
-			
-			@Override
-			protected void setClassName(String className) {
-				getSubject().setObjectType(className);
-			}
-			
-			@Override
-			protected int getTypeDialogStyle() {
-				return IJavaElementSearchConstants.CONSIDER_CLASSES_AND_ENUMS;
-			}
-			
-			@Override
-			protected char getEnclosingTypeSeparator() {
-				return getSubject().getEnclosingTypeSeparator();
-			}
-		};
-	}
-	
-	protected void addConversionValuesTable(Composite container) {
-		
-		// Join Columns group pane
-		Group conversionValuesGroupPane = addTitledGroup(
-			container,
-			EclipseLinkUiMappingsMessages.ObjectTypeConverterComposite_conversionValuesGroupTitle
-		);
-
-		WritablePropertyValueModel<ConversionValue> conversionValueHolder =
-			buildConversionValueHolder();
-		// Conversion Values add/remove list pane
-		new AddRemoveTablePane<ObjectTypeConverter>(
-			this,
-			conversionValuesGroupPane,
-			buildConversionValuesAdapter(),
-			buildConversionValuesListModel(),
-			conversionValueHolder,
-			buildConversionValuesLabelProvider(),
-			null//TODO need a help context id for this
-		) {
-			@Override
-			protected ColumnAdapter<ConversionValue> buildColumnAdapter() {
-				return new ConversionValueColumnAdapter();
-			}
-		};
-
-	}
-
-	protected WritablePropertyValueModel<ConversionValue> buildConversionValueHolder() {
-		return new SimplePropertyValueModel<ConversionValue>();
-	}
-
-	protected AddRemoveListPane.Adapter buildConversionValuesAdapter() {
-		return new AddRemoveListPane.AbstractAdapter() {
-
-			public void addNewItem(ObjectListSelectionModel listSelectionModel) {
-				ConversionValueDialog dialog = buildConversionValueDialogForAdd();
-				addConversionValueFromDialog(dialog, listSelectionModel);
-			}
-
-			@Override
-			public boolean hasOptionalButton() {
-				return true;
-			}
-
-			@Override
-			public String optionalButtonText() {
-				return EclipseLinkUiMappingsMessages.ObjectTypeConverterComposite_conversionValueEdit;
-			}
-
-			@Override
-			public void optionOnSelection(ObjectListSelectionModel listSelectionModel) {
-				ConversionValue conversionValue = (ConversionValue) listSelectionModel.selectedValue();
-				ConversionValueDialog dialog = new ConversionValueDialog(getControl().getShell(), getSubject(), conversionValue);
-				editConversionValueFromDialog(dialog, conversionValue);
-			}
-
-			public void removeSelectedItems(ObjectListSelectionModel listSelectionModel) {
-				ObjectTypeConverter converter = getSubject();
-				int[] selectedIndices = listSelectionModel.selectedIndices();
-
-				for (int index = selectedIndices.length; --index >= 0; ) {
-					converter.removeConversionValue(selectedIndices[index]);
-				}
-			}
-		};
-	}
-
-
-	protected ConversionValueDialog buildConversionValueDialogForAdd() {
-		return new ConversionValueDialog(getControl().getShell(), getSubject());
-	}
-
-	protected void addConversionValueFromDialog(ConversionValueDialog dialog, ObjectListSelectionModel listSelectionModel) {
-		if (dialog.open() != Window.OK) {
-			return;
-		}
-
-		ConversionValue conversionValue = this.getSubject().addConversionValue();
-		conversionValue.setDataValue(dialog.getDataValue());
-		conversionValue.setObjectValue(dialog.getObjectValue());
-
-		listSelectionModel.setSelectedValue(conversionValue);
-	}
-
-	protected void editConversionValueFromDialog(ConversionValueDialog dialog, ConversionValue conversionValue) {
-		if (dialog.open() != Window.OK) {
-			return;
-		}
-
-		conversionValue.setDataValue(dialog.getDataValue());
-		conversionValue.setObjectValue(dialog.getObjectValue());
-	}
-	
-	private ListValueModel<ConversionValue> buildConversionValuesListModel() {
-		return new ItemPropertyListValueModelAdapter<ConversionValue>(buildConversionValuesListHolder(), 
-			ConversionValue.DATA_VALUE_PROPERTY,
-			ConversionValue.OBJECT_VALUE_PROPERTY);
-	}	
-
-	private ListValueModel<ConversionValue> buildConversionValuesListHolder() {
-		return new ListAspectAdapter<ObjectTypeConverter, ConversionValue>(getSubjectHolder(), ObjectTypeConverter.CONVERSION_VALUES_LIST) {
-			@Override
-			protected ListIterator<ConversionValue> listIterator_() {
-				return this.subject.conversionValues();
-			}
-
-			@Override
-			protected int size_() {
-				return this.subject.conversionValuesSize();
-			}
-		};
-	}
-
-	private ITableLabelProvider buildConversionValuesLabelProvider() {
-		return new TableLabelProvider();
-	}
-	
-	protected ListValueModel<String> buildDefaultObjectValueListHolder() {
-		return new TransformationListValueModelAdapter<ConversionValue, String>(buildConversionValuesListModel()) {
-			@Override
-			protected String transformItem(ConversionValue conversionValue) {
-				return conversionValue.getObjectValue();
-			}
-		};
-	}
-	
-	protected WritablePropertyValueModel<String> buildDefaultObjectValueHolder() {
-		return new PropertyAspectAdapter<ObjectTypeConverter, String>(
-				getSubjectHolder(), ObjectTypeConverter.DEFAULT_OBJECT_VALUE_PROPERTY) {
-			@Override
-			protected String buildValue_() {
-				return this.subject.getDefaultObjectValue();
-			}
-		
-			@Override
-			protected void setValue_(String value) {
-				if (value != null && value.length() == 0) {
-					value = null;
-				}
-				this.subject.setDefaultObjectValue(value);
-			}
-		};
-	}
-	
-	protected final StringConverter<String> buildStringConverter() {
-		return new StringConverter<String>() {
-			public String convertToString(String value) {
-				return (value == null) ? "" : value; //$NON-NLS-1$
-			}
-		};
-	}
-
-	protected PropertyValueModel<Boolean> buildBooleanHolder() {
-		return new TransformationPropertyValueModel<ObjectTypeConverter, Boolean>(getSubjectHolder()) {
-			@Override
-			protected Boolean transform(ObjectTypeConverter value) {
-				return Boolean.valueOf(value != null);
-			}
-		};
-	}
-	
-	private class TableLabelProvider extends LabelProvider
-		implements ITableLabelProvider {
-
-		public Image getColumnImage(Object element, int columnIndex) {
-			return null;
-		}
-		
-		public String getColumnText(Object element, int columnIndex) {
-		
-			ConversionValue conversionValue = (ConversionValue) element;
-			String value = null;
-			
-			switch (columnIndex) {
-				case ConversionValueColumnAdapter.DATA_VALUE_COLUMN: {
-					value = conversionValue.getDataValue();
-					break;
-				}
-			
-				case ConversionValueColumnAdapter.OBJECT_VALUE_COLUMN: {
-					value = conversionValue.getObjectValue();
-					break;
-				}
-			}
-			
-			if (value == null) {
-				value = ""; //$NON-NLS-1$
-			}
-		
-			return value;
-		}
-	}
-
-	private static class ConversionValueColumnAdapter implements ColumnAdapter<ConversionValue> {
-
-		public static final int COLUMN_COUNT = 2;
-		//public static final int SELECTION_COLUMN = 0;
-		public static final int DATA_VALUE_COLUMN = 0;
-		public static final int OBJECT_VALUE_COLUMN = 1;
-
-		private WritablePropertyValueModel<String> buildDataValueHolder(ConversionValue subject) {
-			return new PropertyAspectAdapter<ConversionValue, String>(ConversionValue.DATA_VALUE_PROPERTY, subject) {
-				@Override
-				protected String buildValue_() {
-					return this.subject.getDataValue();
-				}
-
-				@Override
-				protected void setValue_(String value) {
-					this.subject.setDataValue(value);
-				}
-			};
-		}
-
-		private WritablePropertyValueModel<String> buildObjectValueHolder(ConversionValue subject) {
-			return new PropertyAspectAdapter<ConversionValue, String>(ConversionValue.OBJECT_VALUE_PROPERTY, subject) {
-				@Override
-				protected String buildValue_() {
-					return this.subject.getObjectValue();
-				}
-
-				@Override
-				protected void setValue_(String value) {
-					this.subject.setObjectValue(value);
-				}
-			};
-		}
-
-		public WritablePropertyValueModel<?>[] cellModels(ConversionValue subject) {
-			WritablePropertyValueModel<?>[] holders = new WritablePropertyValueModel<?>[COLUMN_COUNT];
-			//holders[SELECTION_COLUMN] = new SimplePropertyValueModel<Object>();
-			holders[DATA_VALUE_COLUMN]      = buildDataValueHolder(subject);
-			holders[OBJECT_VALUE_COLUMN]     = buildObjectValueHolder(subject);
-			return holders;
-		}
-
-		public int columnCount() {
-			return COLUMN_COUNT;
-		}
-
-		public String columnName(int columnIndex) {
-
-			switch (columnIndex) {
-				case ConversionValueColumnAdapter.DATA_VALUE_COLUMN: {
-					return EclipseLinkUiMappingsMessages.ObjectTypeConverterComposite_conversionValuesDataValueColumn;
-				}
-
-				case ConversionValueColumnAdapter.OBJECT_VALUE_COLUMN: {
-					return EclipseLinkUiMappingsMessages.ObjectTypeConverterComposite_conversionValuesObjectValueColumn;
-				}
-
-				default: {
-					return null;
-				}
-			}
-		}
-	}
-}
diff --git a/jpa/plugins/org.eclipse.jpt.eclipselink.ui/src/org/eclipse/jpt/eclipselink/ui/internal/mappings/details/PrivateOwnedComposite.java b/jpa/plugins/org.eclipse.jpt.eclipselink.ui/src/org/eclipse/jpt/eclipselink/ui/internal/mappings/details/PrivateOwnedComposite.java
deleted file mode 100644
index 9252023..0000000
--- a/jpa/plugins/org.eclipse.jpt.eclipselink.ui/src/org/eclipse/jpt/eclipselink/ui/internal/mappings/details/PrivateOwnedComposite.java
+++ /dev/null
@@ -1,67 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.eclipselink.ui.internal.mappings.details;
-
-import org.eclipse.jpt.eclipselink.core.context.PrivateOwned;
-import org.eclipse.jpt.eclipselink.ui.internal.mappings.EclipseLinkUiMappingsMessages;
-import org.eclipse.jpt.ui.internal.widgets.FormPane;
-import org.eclipse.jpt.utility.internal.model.value.PropertyAspectAdapter;
-import org.eclipse.jpt.utility.model.value.PropertyValueModel;
-import org.eclipse.swt.widgets.Composite;
-
-/**
- * This composite simply shows the Lob check box.
- *
- * @see BasicMapping
- *
- * @version 2.1
- * @since 2.1
- */
-public class PrivateOwnedComposite extends FormPane<PrivateOwned>
-{
-	/**
-	 * Creates a new <code>PrivateOwnedComposite</code>.
-	 *
-	 * @param parentPane The parent container of this one
-	 * @param parent The parent container
-	 */
-	public PrivateOwnedComposite(FormPane<?> parentPane, 
-		PropertyValueModel<? extends PrivateOwned> subjectHolder,
-		Composite parent) {
-
-			super(parentPane, subjectHolder, parent);
-	}
-	
-	private PropertyAspectAdapter<PrivateOwned, Boolean> buildPrivateOwnedHolder() {
-
-		return new PropertyAspectAdapter<PrivateOwned, Boolean>(getSubjectHolder(), PrivateOwned.PRIVATE_OWNED_PROPERTY) {
-
-			@Override
-			protected Boolean buildValue_() {
-				return Boolean.valueOf(this.subject.isPrivateOwned());
-			}
-
-			@Override
-			protected void setValue_(Boolean value) {
-				this.subject.setPrivateOwned(value.booleanValue());
-			}
-		};
-	}
-
-	@Override
-	protected void initializeLayout(Composite container) {
-		addCheckBox(
-			container,
-			EclipseLinkUiMappingsMessages.PrivateOwnedComposite_privateOwnedLabel,
-			buildPrivateOwnedHolder(),
-			null
-		);
-	}
-}
diff --git a/jpa/plugins/org.eclipse.jpt.eclipselink.ui/src/org/eclipse/jpt/eclipselink/ui/internal/mappings/details/ReadOnlyComposite.java b/jpa/plugins/org.eclipse.jpt.eclipselink.ui/src/org/eclipse/jpt/eclipselink/ui/internal/mappings/details/ReadOnlyComposite.java
deleted file mode 100644
index 5d37ed0..0000000
--- a/jpa/plugins/org.eclipse.jpt.eclipselink.ui/src/org/eclipse/jpt/eclipselink/ui/internal/mappings/details/ReadOnlyComposite.java
+++ /dev/null
@@ -1,113 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.eclipselink.ui.internal.mappings.details;
-
-import org.eclipse.jpt.eclipselink.core.context.ReadOnly;
-import org.eclipse.jpt.eclipselink.ui.internal.mappings.EclipseLinkUiMappingsMessages;
-import org.eclipse.jpt.ui.internal.mappings.JptUiMappingsMessages;
-import org.eclipse.jpt.ui.internal.widgets.FormPane;
-import org.eclipse.jpt.utility.internal.model.value.PropertyAspectAdapter;
-import org.eclipse.jpt.utility.internal.model.value.TransformationPropertyValueModel;
-import org.eclipse.jpt.utility.model.value.PropertyValueModel;
-import org.eclipse.jpt.utility.model.value.WritablePropertyValueModel;
-import org.eclipse.osgi.util.NLS;
-import org.eclipse.swt.widgets.Composite;
-
-/**
- * This composite simply shows the Read Only check box.
- *
- * @see ReadOnly
- *
- * @version 2.1
- * @since 2.1
- */
-public class ReadOnlyComposite extends FormPane<ReadOnly>
-{
-	/**
-	 * Creates a new <code>ReadOnlyComposite</code>.
-	 *
-	 * @param parentPane The parent container of this one
-	 * @param parent The parent container
-	 */
-	public ReadOnlyComposite(FormPane<?> parentPane, 
-		PropertyValueModel<? extends ReadOnly> subjectHolder,
-		Composite parent) {
-
-			super(parentPane, subjectHolder, parent);
-	}
-
-	@Override
-	protected void initializeLayout(Composite container) {
-		// Unique tri-state check box
-		addTriStateCheckBoxWithDefault(
-			container,
-			EclipseLinkUiMappingsMessages.ReadOnlyComposite_readOnlyLabel,
-			buildReadOnlyHolder(),
-			buildReadOnlyStringHolder(),
-			null
-		);
-	}
-	
-	private WritablePropertyValueModel<Boolean> buildReadOnlyHolder() {
-		return new PropertyAspectAdapter<ReadOnly, Boolean>(
-			getSubjectHolder(),
-			ReadOnly.DEFAULT_READ_ONLY_PROPERTY,
-			ReadOnly.SPECIFIED_READ_ONLY_PROPERTY)
-		{
-			@Override
-			protected Boolean buildValue_() {
-				return this.subject.getSpecifiedReadOnly();
-			}
-
-			@Override
-			protected void setValue_(Boolean value) {
-				this.subject.setSpecifiedReadOnly(value);
-			}
-
-			@Override
-			protected void subjectChanged() {
-				Object oldValue = this.getValue();
-				super.subjectChanged();
-				Object newValue = this.getValue();
-
-				// Make sure the default value is appended to the text
-				if (oldValue == newValue && newValue == null) {
-					this.fireAspectChange(Boolean.TRUE, newValue);
-				}
-			}
-		};
-	}
-
-	private PropertyValueModel<String> buildReadOnlyStringHolder() {
-
-		return new TransformationPropertyValueModel<Boolean, String>(buildReadOnlyHolder()) {
-
-			@Override
-			protected String transform(Boolean value) {
-
-				if ((getSubject() != null) && (value == null)) {
-
-					boolean defaultValue = getSubject().isDefaultReadOnly();
-
-					String defaultStringValue = defaultValue ? JptUiMappingsMessages.Boolean_True :
-					                                           JptUiMappingsMessages.Boolean_False;
-
-					return NLS.bind(
-						EclipseLinkUiMappingsMessages.ReadOnlyComposite_readOnlyWithDefault,
-						defaultStringValue
-					);
-				}
-
-				return EclipseLinkUiMappingsMessages.ReadOnlyComposite_readOnlyLabel;
-			}
-		};
-	}
-
-}
diff --git a/jpa/plugins/org.eclipse.jpt.eclipselink.ui/src/org/eclipse/jpt/eclipselink/ui/internal/mappings/details/RefreshOnlyIfNewerComposite.java b/jpa/plugins/org.eclipse.jpt.eclipselink.ui/src/org/eclipse/jpt/eclipselink/ui/internal/mappings/details/RefreshOnlyIfNewerComposite.java
deleted file mode 100644
index f8709fe..0000000
--- a/jpa/plugins/org.eclipse.jpt.eclipselink.ui/src/org/eclipse/jpt/eclipselink/ui/internal/mappings/details/RefreshOnlyIfNewerComposite.java
+++ /dev/null
@@ -1,112 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- *
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.eclipselink.ui.internal.mappings.details;
-
-import org.eclipse.jpt.eclipselink.core.context.Caching;
-import org.eclipse.jpt.eclipselink.ui.internal.EclipseLinkHelpContextIds;
-import org.eclipse.jpt.eclipselink.ui.internal.mappings.EclipseLinkUiMappingsMessages;
-import org.eclipse.jpt.ui.internal.mappings.JptUiMappingsMessages;
-import org.eclipse.jpt.ui.internal.widgets.FormPane;
-import org.eclipse.jpt.utility.internal.model.value.PropertyAspectAdapter;
-import org.eclipse.jpt.utility.internal.model.value.TransformationPropertyValueModel;
-import org.eclipse.jpt.utility.model.value.PropertyValueModel;
-import org.eclipse.jpt.utility.model.value.WritablePropertyValueModel;
-import org.eclipse.osgi.util.NLS;
-import org.eclipse.swt.widgets.Composite;
-
-/**
- * This composite simply shows a tri-state check box for the Refresh Only If Newer option.
- * 
- * @see EclipseLinkCaching
- * @see CachingComposite - A container of this widget
- *
- * @version 2.1
- * @since 2.1
- */
-public class RefreshOnlyIfNewerComposite extends FormPane<Caching>
-{
-	/**
-	 * Creates a new <code>OptionalComposite</code>.
-	 *
-	 * @param parentPane The parent container of this one
-	 * @param parent The parent container
-	 */
-	public RefreshOnlyIfNewerComposite(FormPane<? extends Caching> parentPane,
-	                         Composite parent)
-	{
-		super(parentPane, parent);
-	}
-
-	private WritablePropertyValueModel<Boolean> buildRefreshOnlyIfNewerHolder() {
-		return new PropertyAspectAdapter<Caching, Boolean>(getSubjectHolder(), Caching.SPECIFIED_REFRESH_ONLY_IF_NEWER_PROPERTY) {
-			@Override
-			protected Boolean buildValue_() {
-				return this.subject.getSpecifiedRefreshOnlyIfNewer();
-			}
-
-			@Override
-			protected void setValue_(Boolean value) {
-				this.subject.setSpecifiedRefreshOnlyIfNewer(value);
-			}
-
-			@Override
-			protected void subjectChanged() {
-				Object oldValue = this.getValue();
-				super.subjectChanged();
-				Object newValue = this.getValue();
-
-				// Make sure the default value is appended to the text
-				if (oldValue == newValue && newValue == null) {
-					this.fireAspectChange(Boolean.TRUE, newValue);
-				}
-			}
-		};
-	}
-
-	private PropertyValueModel<String> buildRefreshOnlyIfNewerStringHolder() {
-
-		return new TransformationPropertyValueModel<Boolean, String>(buildRefreshOnlyIfNewerHolder()) {
-
-			@Override
-			protected String transform(Boolean value) {
-
-				if ((getSubject() != null) && (value == null)) {
-
-					Boolean defaultValue = getSubject().isDefaultRefreshOnlyIfNewer();
-
-					if (defaultValue != null) {
-
-						String defaultStringValue = defaultValue ? JptUiMappingsMessages.Boolean_True :
-						                                           JptUiMappingsMessages.Boolean_False;
-
-						return NLS.bind(
-							EclipseLinkUiMappingsMessages.RefreshOnlyIfNewerComposite_refreshOnlyIfNewerDefault,
-							defaultStringValue
-						);
-					}
-				}
-
-				return EclipseLinkUiMappingsMessages.RefreshOnlyIfNewerComposite_refreshOnlyIfNewerLabel;
-			}
-		};
-	}
-	
-	@Override
-	protected void initializeLayout(Composite container) {
-
-		addTriStateCheckBoxWithDefault(
-			container,
-			EclipseLinkUiMappingsMessages.RefreshOnlyIfNewerComposite_refreshOnlyIfNewerLabel,
-			buildRefreshOnlyIfNewerHolder(),
-			buildRefreshOnlyIfNewerStringHolder(),
-			EclipseLinkHelpContextIds.CACHING_REFRESH_ONLY_IF_NEWER
-		);
-	}
-}
\ No newline at end of file
diff --git a/jpa/plugins/org.eclipse.jpt.eclipselink.ui/src/org/eclipse/jpt/eclipselink/ui/internal/mappings/details/StructConverterComposite.java b/jpa/plugins/org.eclipse.jpt.eclipselink.ui/src/org/eclipse/jpt/eclipselink/ui/internal/mappings/details/StructConverterComposite.java
deleted file mode 100644
index 8170094..0000000
--- a/jpa/plugins/org.eclipse.jpt.eclipselink.ui/src/org/eclipse/jpt/eclipselink/ui/internal/mappings/details/StructConverterComposite.java
+++ /dev/null
@@ -1,152 +0,0 @@
-/*******************************************************************************
- *  Copyright (c) 2006, 2009 Oracle. All rights reserved. This
- *  program and the accompanying materials are made available under the terms of
- *  the Eclipse Public License v1.0 which accompanies this distribution, and is
- *  available at http://www.eclipse.org/legal/epl-v10.html
- *
- *  Contributors: Oracle. - initial API and implementation
- *******************************************************************************/
-package org.eclipse.jpt.eclipselink.ui.internal.mappings.details;
-
-import org.eclipse.jpt.core.JpaProject;
-import org.eclipse.jpt.eclipselink.core.context.EclipseLinkConverter;
-import org.eclipse.jpt.eclipselink.core.context.StructConverter;
-import org.eclipse.jpt.eclipselink.ui.internal.mappings.EclipseLinkUiMappingsMessages;
-import org.eclipse.jpt.ui.WidgetFactory;
-import org.eclipse.jpt.ui.internal.util.PaneEnabler;
-import org.eclipse.jpt.ui.internal.widgets.ClassChooserPane;
-import org.eclipse.jpt.ui.internal.widgets.FormPane;
-import org.eclipse.jpt.utility.internal.model.value.PropertyAspectAdapter;
-import org.eclipse.jpt.utility.internal.model.value.TransformationPropertyValueModel;
-import org.eclipse.jpt.utility.model.value.PropertyValueModel;
-import org.eclipse.jpt.utility.model.value.WritablePropertyValueModel;
-import org.eclipse.swt.widgets.Composite;
-
-/**
- * Here the layout of this pane:
- * <pre>
- * -----------------------------------------------------------------------------
- * |            -------------------------------------------------------------- |
- * | Name:      |                                                             ||
- * |            -------------------------------------------------------------- |
- * -----------------------------------------------------------------------------</pre>
- *
- * @see EclipseLinkConverter
- * @see ConvertComposite - A container of this widget
- *
- * @version 2.1
- * @since 2.1
- */
-public class StructConverterComposite extends FormPane<StructConverter>
-{
-
-	/**
-	 * Creates a new <code>StructConverterComposite</code>.
-	 *
-	 * @param parentPane The parent container of this one
-	 * @param parent The parent container
-	 */
-	public StructConverterComposite(PropertyValueModel<? extends StructConverter> subjectHolder,
-			Composite parent,
-			WidgetFactory widgetFactory) {
-
-		super(subjectHolder, parent, widgetFactory);
-	}
-
-	@Override
-	protected void initializeLayout(Composite container) {
-		
-		addLabeledText(
-			container, 
-			EclipseLinkUiMappingsMessages.ConverterComposite_nameTextLabel, 
-			buildNameTextHolder());
-		
-		addClassChooser(container);
-		
-		new PaneEnabler(buildBooleanHolder(), this);
-	}
-	
-	protected WritablePropertyValueModel<String> buildNameTextHolder() {
-		return new PropertyAspectAdapter<StructConverter, String>(
-				getSubjectHolder(), EclipseLinkConverter.NAME_PROPERTY) {
-			@Override
-			protected String buildValue_() {
-				return this.subject.getName();
-			}
-		
-			@Override
-			protected void setValue_(String value) {
-				if (value.length() == 0) {
-					value = null;
-				}
-				this.subject.setName(value);
-			}
-		};
-	}
-
-	
-	private ClassChooserPane<StructConverter> addClassChooser(Composite container) {
-
-		return new ClassChooserPane<StructConverter>(this, container) {
-
-			@Override
-			protected WritablePropertyValueModel<String> buildTextHolder() {
-				return new PropertyAspectAdapter<StructConverter, String>(getSubjectHolder(), StructConverter.CONVERTER_CLASS_PROPERTY) {
-					@Override
-					protected String buildValue_() {
-						return this.subject.getConverterClass();
-					}
-
-					@Override
-					protected void setValue_(String value) {
-
-						if (value.length() == 0) {
-							value = null;
-						}
-
-						this.subject.setConverterClass(value);
-					}
-				};
-			}
-
-			@Override
-			protected String getClassName() {
-				return getSubject().getConverterClass();
-			}
-
-			@Override
-			protected String getLabelText() {
-				return EclipseLinkUiMappingsMessages.ConverterComposite_classLabel;
-			}
-
-			@Override
-			protected JpaProject getJpaProject() {
-				return getSubject().getJpaProject();
-			}
-			
-			@Override
-			protected void setClassName(String className) {
-				getSubject().setConverterClass(className);
-			}
-			
-			@Override
-			protected String getSuperInterfaceName() {
-				return StructConverter.ECLIPSELINK_STRUCT_CONVERTER_CLASS_NAME;
-			}
-			
-			@Override
-			protected char getEnclosingTypeSeparator() {
-				return getSubject().getEnclosingTypeSeparator();
-			}
-		};
-	}
-
-	protected PropertyValueModel<Boolean> buildBooleanHolder() {
-		return new TransformationPropertyValueModel<StructConverter, Boolean>(getSubjectHolder()) {
-			@Override
-			protected Boolean transform(StructConverter value) {
-				return Boolean.valueOf(value != null);
-			}
-		};
-	}
-}
diff --git a/jpa/plugins/org.eclipse.jpt.eclipselink.ui/src/org/eclipse/jpt/eclipselink/ui/internal/mappings/details/TransformationMappingComposite.java b/jpa/plugins/org.eclipse.jpt.eclipselink.ui/src/org/eclipse/jpt/eclipselink/ui/internal/mappings/details/TransformationMappingComposite.java
deleted file mode 100644
index 2d70b23..0000000
--- a/jpa/plugins/org.eclipse.jpt.eclipselink.ui/src/org/eclipse/jpt/eclipselink/ui/internal/mappings/details/TransformationMappingComposite.java
+++ /dev/null
@@ -1,45 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- *
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.eclipselink.ui.internal.mappings.details;
-
-import org.eclipse.jpt.eclipselink.core.context.TransformationMapping;
-import org.eclipse.jpt.ui.WidgetFactory;
-import org.eclipse.jpt.ui.details.JpaComposite;
-import org.eclipse.jpt.ui.internal.widgets.FormPane;
-import org.eclipse.jpt.utility.model.value.PropertyValueModel;
-import org.eclipse.swt.widgets.Composite;
-
-/**
- *
- * @version 2.1
- * @since 2.1
- */
-public class TransformationMappingComposite extends FormPane<TransformationMapping>
-                                       implements JpaComposite
-{
-	/**
-	 * Creates a new <code>EclipseLinkBasicCollectionMappingComposite</code>.
-	 *
-	 * @param subjectHolder The holder of the subject <code>IManyToOneMapping</code>
-	 * @param parent The parent container
-	 * @param widgetFactory The factory used to create various common widgets
-	 */
-	public TransformationMappingComposite(PropertyValueModel<? extends TransformationMapping> subjectHolder,
-	                                 Composite parent,
-	                                 WidgetFactory widgetFactory) {
-
-		super(subjectHolder, parent, widgetFactory);
-	}
-
-	@Override
-	protected void initializeLayout(Composite container) {
-
-	}
-}
diff --git a/jpa/plugins/org.eclipse.jpt.eclipselink.ui/src/org/eclipse/jpt/eclipselink/ui/internal/mappings/details/TypeConverterComposite.java b/jpa/plugins/org.eclipse.jpt.eclipselink.ui/src/org/eclipse/jpt/eclipselink/ui/internal/mappings/details/TypeConverterComposite.java
deleted file mode 100644
index 6009beb..0000000
--- a/jpa/plugins/org.eclipse.jpt.eclipselink.ui/src/org/eclipse/jpt/eclipselink/ui/internal/mappings/details/TypeConverterComposite.java
+++ /dev/null
@@ -1,199 +0,0 @@
-/*******************************************************************************
- *  Copyright (c) 2006, 2009 Oracle. All rights reserved. This
- *  program and the accompanying materials are made available under the terms of
- *  the Eclipse Public License v1.0 which accompanies this distribution, and is
- *  available at http://www.eclipse.org/legal/epl-v10.html
- *
- *  Contributors: Oracle. - initial API and implementation
- *******************************************************************************/
-package org.eclipse.jpt.eclipselink.ui.internal.mappings.details;
-
-import org.eclipse.jpt.core.JpaProject;
-import org.eclipse.jpt.eclipselink.core.context.EclipseLinkConverter;
-import org.eclipse.jpt.eclipselink.core.context.TypeConverter;
-import org.eclipse.jpt.eclipselink.ui.internal.mappings.EclipseLinkUiMappingsMessages;
-import org.eclipse.jpt.ui.WidgetFactory;
-import org.eclipse.jpt.ui.internal.util.PaneEnabler;
-import org.eclipse.jpt.ui.internal.widgets.ClassChooserPane;
-import org.eclipse.jpt.ui.internal.widgets.FormPane;
-import org.eclipse.jpt.utility.internal.model.value.PropertyAspectAdapter;
-import org.eclipse.jpt.utility.internal.model.value.TransformationPropertyValueModel;
-import org.eclipse.jpt.utility.model.value.PropertyValueModel;
-import org.eclipse.jpt.utility.model.value.WritablePropertyValueModel;
-import org.eclipse.swt.widgets.Composite;
-
-/**
- * Here the layout of this pane:
- * <pre>
- * -----------------------------------------------------------------------------
- * |            -------------------------------------------------------------- |
- * | Name:      |                                                             ||
- * |            -------------------------------------------------------------- |
- * -----------------------------------------------------------------------------</pre>
- *
- * @see EclipseLinkConverter
- * @see ConvertComposite - A container of this widget
- *
- * @version 2.1
- * @since 2.1
- */
-public class TypeConverterComposite extends FormPane<TypeConverter>
-{
-
-	/**
-	 * Creates a new <code>TypeConverterComposite</code>.
-	 *
-	 * @param parentPane The parent container of this one
-	 * @param parent The parent container
-	 */
-	public TypeConverterComposite(PropertyValueModel<? extends TypeConverter> subjectHolder,
-			Composite parent,
-			WidgetFactory widgetFactory) {
-
-		super(subjectHolder, parent, widgetFactory);
-	}
-
-	@Override
-	protected void initializeLayout(Composite container) {
-		
-		addLabeledText(
-			container, 
-			EclipseLinkUiMappingsMessages.ConverterComposite_nameTextLabel, 
-			buildNameTextHolder());
-		
-		addDataTypeChooser(container);
-		addObjectTypeChooser(container);
-		
-		new PaneEnabler(buildBooleanHolder(), this);
-	}
-	
-	protected WritablePropertyValueModel<String> buildNameTextHolder() {
-		return new PropertyAspectAdapter<TypeConverter, String>(
-				getSubjectHolder(), EclipseLinkConverter.NAME_PROPERTY) {
-			@Override
-			protected String buildValue_() {
-				return this.subject.getName();
-			}
-		
-			@Override
-			protected void setValue_(String value) {
-				if (value.length() == 0) {
-					value = null;
-				}
-				this.subject.setName(value);
-			}
-		};
-	}
-
-	
-	private ClassChooserPane<TypeConverter> addDataTypeChooser(Composite container) {
-
-		return new ClassChooserPane<TypeConverter>(this, container) {
-
-			@Override
-			protected WritablePropertyValueModel<String> buildTextHolder() {
-				return new PropertyAspectAdapter<TypeConverter, String>(getSubjectHolder(), TypeConverter.DATA_TYPE_PROPERTY) {
-					@Override
-					protected String buildValue_() {
-						return this.subject.getDataType();
-					}
-
-					@Override
-					protected void setValue_(String value) {
-
-						if (value.length() == 0) {
-							value = null;
-						}
-
-						this.subject.setDataType(value);
-					}
-				};
-			}
-
-			@Override
-			protected String getClassName() {
-				return getSubject().getDataType();
-			}
-
-			@Override
-			protected String getLabelText() {
-				return EclipseLinkUiMappingsMessages.TypeConverterComposite_dataTypeLabel;
-			}
-
-			@Override
-			protected JpaProject getJpaProject() {
-				return getSubject().getJpaProject();
-			}
-
-			@Override
-			protected void setClassName(String className) {
-				getSubject().setDataType(className);
-			}
-			
-			@Override
-			protected char getEnclosingTypeSeparator() {
-				return getSubject().getEnclosingTypeSeparator();
-			}
-		};
-	}
-
-	private ClassChooserPane<TypeConverter> addObjectTypeChooser(Composite container) {
-
-		return new ClassChooserPane<TypeConverter>(this, container) {
-
-			@Override
-			protected WritablePropertyValueModel<String> buildTextHolder() {
-				return new PropertyAspectAdapter<TypeConverter, String>(getSubjectHolder(), TypeConverter.OBJECT_TYPE_PROPERTY) {
-					@Override
-					protected String buildValue_() {
-						return this.subject.getObjectType();
-					}
-
-					@Override
-					protected void setValue_(String value) {
-
-						if (value.length() == 0) {
-							value = null;
-						}
-
-						this.subject.setObjectType(value);
-					}
-				};
-			}
-
-			@Override
-			protected String getClassName() {
-				return getSubject().getObjectType();
-			}
-
-			@Override
-			protected String getLabelText() {
-				return EclipseLinkUiMappingsMessages.TypeConverterComposite_objectTypeLabel;
-			}
-
-			@Override
-			protected JpaProject getJpaProject() {
-				return getSubject().getJpaProject();
-			}
-			
-			@Override
-			protected void setClassName(String className) {
-				getSubject().setObjectType(className);
-			}
-			
-			@Override
-			protected char getEnclosingTypeSeparator() {
-				return getSubject().getEnclosingTypeSeparator();
-			}
-		};
-	}
-
-	protected PropertyValueModel<Boolean> buildBooleanHolder() {
-		return new TransformationPropertyValueModel<TypeConverter, Boolean>(getSubjectHolder()) {
-			@Override
-			protected Boolean transform(TypeConverter value) {
-				return Boolean.valueOf(value != null);
-			}
-		};
-	}
-}
diff --git a/jpa/plugins/org.eclipse.jpt.eclipselink.ui/src/org/eclipse/jpt/eclipselink/ui/internal/mappings/details/VariableOneToOneMappingComposite.java b/jpa/plugins/org.eclipse.jpt.eclipselink.ui/src/org/eclipse/jpt/eclipselink/ui/internal/mappings/details/VariableOneToOneMappingComposite.java
deleted file mode 100644
index ae6475a..0000000
--- a/jpa/plugins/org.eclipse.jpt.eclipselink.ui/src/org/eclipse/jpt/eclipselink/ui/internal/mappings/details/VariableOneToOneMappingComposite.java
+++ /dev/null
@@ -1,45 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- *
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.eclipselink.ui.internal.mappings.details;
-
-import org.eclipse.jpt.eclipselink.core.context.VariableOneToOneMapping;
-import org.eclipse.jpt.ui.WidgetFactory;
-import org.eclipse.jpt.ui.details.JpaComposite;
-import org.eclipse.jpt.ui.internal.widgets.FormPane;
-import org.eclipse.jpt.utility.model.value.PropertyValueModel;
-import org.eclipse.swt.widgets.Composite;
-
-/**
- *
- * @version 2.2
- * @since 2.2
- */
-public class VariableOneToOneMappingComposite extends FormPane<VariableOneToOneMapping>
-                                       implements JpaComposite
-{
-	/**
-	 * Creates a new <code>EclipseLinkBasicCollectionMappingComposite</code>.
-	 *
-	 * @param subjectHolder The holder of the subject <code>IManyToOneMapping</code>
-	 * @param parent The parent container
-	 * @param widgetFactory The factory used to create various common widgets
-	 */
-	public VariableOneToOneMappingComposite(PropertyValueModel<? extends VariableOneToOneMapping> subjectHolder,
-	                                 Composite parent,
-	                                 WidgetFactory widgetFactory) {
-
-		super(subjectHolder, parent, widgetFactory);
-	}
-
-	@Override
-	protected void initializeLayout(Composite container) {
-
-	}
-}
diff --git a/jpa/plugins/org.eclipse.jpt.eclipselink.ui/src/org/eclipse/jpt/eclipselink/ui/internal/orm/details/ConvertersComposite.java b/jpa/plugins/org.eclipse.jpt.eclipselink.ui/src/org/eclipse/jpt/eclipselink/ui/internal/orm/details/ConvertersComposite.java
deleted file mode 100644
index e977fe9..0000000
--- a/jpa/plugins/org.eclipse.jpt.eclipselink.ui/src/org/eclipse/jpt/eclipselink/ui/internal/orm/details/ConvertersComposite.java
+++ /dev/null
@@ -1,407 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- *
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.eclipselink.ui.internal.orm.details;
-
-import java.util.ArrayList;
-import java.util.Iterator;
-import java.util.List;
-import java.util.ListIterator;
-import org.eclipse.jface.viewers.ILabelProvider;
-import org.eclipse.jface.viewers.LabelProvider;
-import org.eclipse.jface.window.Window;
-import org.eclipse.jpt.eclipselink.core.context.CustomConverter;
-import org.eclipse.jpt.eclipselink.core.context.EclipseLinkConverter;
-import org.eclipse.jpt.eclipselink.core.context.ObjectTypeConverter;
-import org.eclipse.jpt.eclipselink.core.context.StructConverter;
-import org.eclipse.jpt.eclipselink.core.context.TypeConverter;
-import org.eclipse.jpt.eclipselink.core.internal.context.orm.ConverterHolder;
-import org.eclipse.jpt.eclipselink.ui.internal.mappings.details.CustomConverterComposite;
-import org.eclipse.jpt.eclipselink.ui.internal.mappings.details.ObjectTypeConverterComposite;
-import org.eclipse.jpt.eclipselink.ui.internal.mappings.details.StructConverterComposite;
-import org.eclipse.jpt.eclipselink.ui.internal.mappings.details.TypeConverterComposite;
-import org.eclipse.jpt.ui.internal.util.ControlSwitcher;
-import org.eclipse.jpt.ui.internal.widgets.AddRemoveListPane;
-import org.eclipse.jpt.ui.internal.widgets.FormPane;
-import org.eclipse.jpt.ui.internal.widgets.Pane;
-import org.eclipse.jpt.ui.internal.widgets.AddRemovePane.Adapter;
-import org.eclipse.jpt.utility.internal.Transformer;
-import org.eclipse.jpt.utility.internal.iterators.TransformationIterator;
-import org.eclipse.jpt.utility.internal.model.value.CompositeListValueModel;
-import org.eclipse.jpt.utility.internal.model.value.ItemPropertyListValueModelAdapter;
-import org.eclipse.jpt.utility.internal.model.value.ListAspectAdapter;
-import org.eclipse.jpt.utility.internal.model.value.SimplePropertyValueModel;
-import org.eclipse.jpt.utility.internal.model.value.TransformationPropertyValueModel;
-import org.eclipse.jpt.utility.internal.model.value.swing.ObjectListSelectionModel;
-import org.eclipse.jpt.utility.model.value.ListValueModel;
-import org.eclipse.jpt.utility.model.value.PropertyValueModel;
-import org.eclipse.jpt.utility.model.value.WritablePropertyValueModel;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.layout.GridData;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Control;
-import org.eclipse.ui.part.PageBook;
-
-/**
- * This pane shows the list of named queries and named native queries.
- * <p>
- * Here the layout of this pane:
- * <pre>
- * -----------------------------------------------------------------------------
- * | ------------------------------------------------------------------------- |
- * | |                                                                       | |
- * | | AddRemoveListPane                                                     | |
- * | |                                                                       | |
- * | ------------------------------------------------------------------------- |
- * | ------------------------------------------------------------------------- |
- * | |                                                                       | |
- * | | ConverterComposite or ObjectTypeConverterComposite                    | |
- * | | or StructConverterComposite or TypeConverterComposite                 | |
- * | |                                                                       | |
- * | ------------------------------------------------------------------------- |
- * -----------------------------------------------------------------------------</pre>
- *
- * @see Entity
- * @see Query
- * @see NamedNativeQuery
- * @see NamedQuery
- * @see AbstractEntityComposite - The parent container
- * @see NamedNativeQueryPropertyComposite
- * @see NamedQueryPropertyComposite
- *
- * @version 2.1
- * @since 2.1
- */
-public class ConvertersComposite extends Pane<ConverterHolder>
-{
-	private AddRemoveListPane<ConverterHolder> listPane;
-	private CustomConverterComposite converterComposite;
-	private ObjectTypeConverterComposite objectTypeConverterComposite;
-	private StructConverterComposite structConverterComposite;
-	private TypeConverterComposite typeConverterComposite;
-	private WritablePropertyValueModel<EclipseLinkConverter> selectedConverterHolder;
-
-	public ConvertersComposite(
-		FormPane<?> parentPane, 
-		PropertyValueModel<? extends ConverterHolder> subjectHolder,
-		Composite parent) {
-
-			super(parentPane, subjectHolder, parent, false);
-	}
-
-	@Override
-	protected void initialize() {
-		super.initialize();
-		this.selectedConverterHolder = buildSelectedConverterHolder();
-	}
-
-	private WritablePropertyValueModel<EclipseLinkConverter> buildSelectedConverterHolder() {
-		return new SimplePropertyValueModel<EclipseLinkConverter>();
-	}
-
-	@Override
-	protected void initializeLayout(Composite container) {
-
-		// List pane
-		this.listPane = addListPane(container);
-
-		// Property pane
-		PageBook pageBook = new PageBook(container, SWT.NULL);
-		pageBook.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));
-
-		this.converterComposite = new CustomConverterComposite(
-			buildCustomConverterHolder(),
-			pageBook,
-			getWidgetFactory()
-		);
-		registerSubPane(this.converterComposite);
-		
-		this.objectTypeConverterComposite = new ObjectTypeConverterComposite(
-			buildObjectTypeConverterHolder(),
-			pageBook,
-			getWidgetFactory()
-		);
-		registerSubPane(this.objectTypeConverterComposite);
-		
-		this.structConverterComposite = new StructConverterComposite(
-			buildStructConverterHolder(),
-			pageBook,
-			getWidgetFactory()
-		);
-		registerSubPane(this.structConverterComposite);
-		
-		this.typeConverterComposite = new TypeConverterComposite(
-			buildTypeConverterHolder(),
-			pageBook,
-			getWidgetFactory()
-		);
-		registerSubPane(this.typeConverterComposite);
-
-		installPaneSwitcher(pageBook);
-	}
-
-	private AddRemoveListPane<ConverterHolder> addListPane(Composite container) {
-
-		return new AddRemoveListPane<ConverterHolder>(
-			this,
-			container,
-			buildConvertersAdapter(),
-			buildDisplayableConvertersListHolder(),
-			this.selectedConverterHolder,
-			buildConvertersListLabelProvider(),
-			null//JpaHelpContextIds.MAPPING_NAMED_QUERIES
-		) {
-			//TODO yeah, this is weird, but i don't want this to be disabled just
-			//because the subject is null. i have no need for that and that is
-			//currently how AddRemovePane works.  See OrmQueriesComposite where
-			//the work around there is yet another pane enabler.  I want to change
-			//how this works in 2.2
-			@Override
-			public void enableWidgets(boolean enabled) {
-				super.enableWidgets(true);
-			}
-		};
-	}
-
-	private void installPaneSwitcher(PageBook pageBook) {
-		new ControlSwitcher(this.selectedConverterHolder, buildPaneTransformer(), pageBook);
-	}
-	
-	private Adapter buildConvertersAdapter() {
-
-		return new AddRemoveListPane.AbstractAdapter() {
-
-			public void addNewItem(ObjectListSelectionModel listSelectionModel) {
-				addConverter();
-			}
-
-			public void removeSelectedItems(ObjectListSelectionModel listSelectionModel) {
-				for (Object item : listSelectionModel.selectedValues()) {
-					if (((EclipseLinkConverter) item).getType() == EclipseLinkConverter.CUSTOM_CONVERTER) {
-						getSubject().removeCustomConverter((CustomConverter) item);
-					}
-					else if (((EclipseLinkConverter) item).getType() == EclipseLinkConverter.OBJECT_TYPE_CONVERTER) {
-						getSubject().removeObjectTypeConverter((ObjectTypeConverter) item);
-					}
-					else if (((EclipseLinkConverter) item).getType() == EclipseLinkConverter.STRUCT_CONVERTER) {
-						getSubject().removeStructConverter((StructConverter) item);
-					}
-					else if (((EclipseLinkConverter) item).getType() == EclipseLinkConverter.TYPE_CONVERTER) {
-						getSubject().removeTypeConverter((TypeConverter) item);
-					}
-				}
-			}
-		};
-	}
-
-	private void addConverter() {
-		addEclipseLinkConverterFromDialog(buildEclipseLinkConverterDialog());
-	}
-	
-	protected EclipseLinkConverterDialog buildEclipseLinkConverterDialog() {
-		return new EclipseLinkConverterDialog(getControl().getShell());
-	}
-
-	protected void addEclipseLinkConverterFromDialog(EclipseLinkConverterDialog dialog) {
-		if (dialog.open() != Window.OK) {
-			return;
-		}
-		String converterType = dialog.getConverterType();
-		EclipseLinkConverter converter;
-		if (converterType == EclipseLinkConverter.CUSTOM_CONVERTER) {
-			converter = this.getSubject().addCustomConverter(getSubject().customConvertersSize());
-		}
-		else if (converterType == EclipseLinkConverter.OBJECT_TYPE_CONVERTER) {
-			converter = this.getSubject().addObjectTypeConverter(getSubject().objectTypeConvertersSize());
-		}
-		else if (converterType == EclipseLinkConverter.STRUCT_CONVERTER) {
-			converter = this.getSubject().addStructConverter(getSubject().structConvertersSize());
-		}
-		else if (converterType == EclipseLinkConverter.TYPE_CONVERTER) {
-			converter = this.getSubject().addTypeConverter(getSubject().typeConvertersSize());
-		}
-		else {
-			throw new IllegalArgumentException();
-		}
-		converter.setName(dialog.getName());
-		this.selectedConverterHolder.setValue(converter);//so that it gets selected in the List for the user to edit
-	}
-
-	private Transformer<EclipseLinkConverter, Control> buildPaneTransformer() {
-		return new Transformer<EclipseLinkConverter, Control>() {
-			public Control transform(EclipseLinkConverter converter) {
-				if (converter == null) {
-					return null;
-				}
-
-				if (converter.getType() == EclipseLinkConverter.CUSTOM_CONVERTER) {
-					return ConvertersComposite.this.converterComposite.getControl();
-				}
-				if (converter.getType() == EclipseLinkConverter.OBJECT_TYPE_CONVERTER) {
-					return ConvertersComposite.this.objectTypeConverterComposite.getControl();
-				}
-				if (converter.getType() == EclipseLinkConverter.STRUCT_CONVERTER) {
-					return ConvertersComposite.this.structConverterComposite.getControl();
-				}
-				if (converter.getType() == EclipseLinkConverter.TYPE_CONVERTER) {
-					return ConvertersComposite.this.typeConverterComposite.getControl();
-				}
-
-				return null;
-			}
-		};
-	}
-
-	private ListValueModel<EclipseLinkConverter> buildDisplayableConvertersListHolder() {
-		return new ItemPropertyListValueModelAdapter<EclipseLinkConverter>(
-			buildEclipseLinkConvertersHolder(),
-			EclipseLinkConverter.NAME_PROPERTY
-		);
-	}
-
-	private ListValueModel<EclipseLinkConverter> buildEclipseLinkConvertersHolder() {
-		List<ListValueModel<? extends EclipseLinkConverter>> list = new ArrayList<ListValueModel<? extends EclipseLinkConverter>>();
-		list.add(buildCustomConvertersListHolder());
-		list.add(buildObjectTypeConvertersListHolder());
-		list.add(buildStructConvertersListHolder());
-		list.add(buildTypeConvertersListHolder());
-		return new CompositeListValueModel<ListValueModel<? extends EclipseLinkConverter>, EclipseLinkConverter>(list);
-	}
-
-	private ListValueModel<CustomConverter> buildCustomConvertersListHolder() {
-		return new ListAspectAdapter<ConverterHolder, CustomConverter>(
-			getSubjectHolder(),
-			ConverterHolder.CUSTOM_CONVERTERS_LIST)
-		{
-			@Override
-			protected ListIterator<CustomConverter> listIterator_() {
-				return this.subject.customConverters();
-			}
-
-			@Override
-			protected int size_() {
-				return this.subject.customConvertersSize();
-			}
-		};
-	}
-
-	private ListValueModel<ObjectTypeConverter> buildObjectTypeConvertersListHolder() {
-		return new ListAspectAdapter<ConverterHolder, ObjectTypeConverter>(
-			getSubjectHolder(),
-			ConverterHolder.OBJECT_TYPE_CONVERTERS_LIST)
-		{
-			@Override
-			protected ListIterator<ObjectTypeConverter> listIterator_() {
-				return this.subject.objectTypeConverters();
-			}
-
-			@Override
-			protected int size_() {
-				return this.subject.objectTypeConvertersSize();
-			}
-		};
-	}
-
-	private ListValueModel<StructConverter> buildStructConvertersListHolder() {
-		return new ListAspectAdapter<ConverterHolder, StructConverter>(
-			getSubjectHolder(),
-			ConverterHolder.STRUCT_CONVERTERS_LIST)
-		{
-			@Override
-			protected ListIterator<StructConverter> listIterator_() {
-				return this.subject.structConverters();
-			}
-
-			@Override
-			protected int size_() {
-				return this.subject.structConvertersSize();
-			}
-		};
-	}
-
-	private ListValueModel<TypeConverter> buildTypeConvertersListHolder() {
-		return new ListAspectAdapter<ConverterHolder, TypeConverter>(
-			getSubjectHolder(),
-			ConverterHolder.TYPE_CONVERTERS_LIST)
-		{
-			@Override
-			protected ListIterator<TypeConverter> listIterator_() {
-				return this.subject.typeConverters();
-			}
-
-			@Override
-			protected int size_() {
-				return this.subject.typeConvertersSize();
-			}
-		};
-	}
-
-	private PropertyValueModel<CustomConverter> buildCustomConverterHolder() {
-		return new TransformationPropertyValueModel<EclipseLinkConverter, CustomConverter>(this.selectedConverterHolder) {
-			@Override
-			protected CustomConverter transform_(EclipseLinkConverter value) {
-				return value.getType() == EclipseLinkConverter.CUSTOM_CONVERTER ? (CustomConverter) value : null;
-			}
-		};
-	}
-
-	private PropertyValueModel<ObjectTypeConverter> buildObjectTypeConverterHolder() {
-		return new TransformationPropertyValueModel<EclipseLinkConverter, ObjectTypeConverter>(this.selectedConverterHolder) {
-			@Override
-			protected ObjectTypeConverter transform_(EclipseLinkConverter value) {
-				return value.getType() == EclipseLinkConverter.OBJECT_TYPE_CONVERTER ? (ObjectTypeConverter) value : null;
-			}
-		};
-	}
-
-	private PropertyValueModel<StructConverter> buildStructConverterHolder() {
-		return new TransformationPropertyValueModel<EclipseLinkConverter, StructConverter>(this.selectedConverterHolder) {
-			@Override
-			protected StructConverter transform_(EclipseLinkConverter value) {
-				return value.getType() == EclipseLinkConverter.STRUCT_CONVERTER ? (StructConverter) value : null;
-			}
-		};
-	}
-
-	private PropertyValueModel<TypeConverter> buildTypeConverterHolder() {
-		return new TransformationPropertyValueModel<EclipseLinkConverter, TypeConverter>(this.selectedConverterHolder) {
-			@Override
-			protected TypeConverter transform_(EclipseLinkConverter value) {
-				return value.getType() == EclipseLinkConverter.TYPE_CONVERTER ? (TypeConverter) value : null;
-			}
-		};
-	}
-
-	private ILabelProvider buildConvertersListLabelProvider() {
-		return new LabelProvider() {
-			@Override
-			public String getText(Object element) {
-				return ((EclipseLinkConverter) element).getName();
-			}
-		};
-	}
-
-	@Override
-	public void enableWidgets(boolean enabled) {
-		super.enableWidgets(enabled);
-		this.listPane.enableWidgets(enabled);
-	}
-
-	//TODO need to check the converter repository for this, should check all converters, except for the override case, hmm
-	//we at least need to check typeconverters, converters, structconverters, and objectypeconverters, on this particular
-	//object.  or we need to give a warning about the case where you are overriding or an error if it's not an override?
-	private Iterator<String> converterNames() {
-		return new TransformationIterator<CustomConverter, String>(getSubject().customConverters()) {
-			@Override
-			protected String transform(CustomConverter next) {
-				return next.getName();
-			}
-		};
-	}
-}
\ No newline at end of file
diff --git a/jpa/plugins/org.eclipse.jpt.eclipselink.ui/src/org/eclipse/jpt/eclipselink/ui/internal/orm/details/EclipseLink1_1OrmBasicCollectionMappingComposite.java b/jpa/plugins/org.eclipse.jpt.eclipselink.ui/src/org/eclipse/jpt/eclipselink/ui/internal/orm/details/EclipseLink1_1OrmBasicCollectionMappingComposite.java
deleted file mode 100644
index f45eee9..0000000
--- a/jpa/plugins/org.eclipse.jpt.eclipselink.ui/src/org/eclipse/jpt/eclipselink/ui/internal/orm/details/EclipseLink1_1OrmBasicCollectionMappingComposite.java
+++ /dev/null
@@ -1,57 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- *
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.eclipselink.ui.internal.orm.details;
-
-import org.eclipse.jpt.core.context.AccessHolder;
-import org.eclipse.jpt.eclipselink.core.context.BasicCollectionMapping;
-import org.eclipse.jpt.ui.WidgetFactory;
-import org.eclipse.jpt.ui.details.JpaComposite;
-import org.eclipse.jpt.ui.internal.details.AccessTypeComposite;
-import org.eclipse.jpt.ui.internal.widgets.FormPane;
-import org.eclipse.jpt.utility.internal.model.value.PropertyAspectAdapter;
-import org.eclipse.jpt.utility.model.value.PropertyValueModel;
-import org.eclipse.swt.widgets.Composite;
-
-/**
- *
- * @version 2.2
- * @since 2.2
- */
-public class EclipseLink1_1OrmBasicCollectionMappingComposite extends FormPane<BasicCollectionMapping>
-                                       implements JpaComposite
-{
-	/**
-	 * Creates a new <code>EclipseLinkBasicCollectionMappingComposite</code>.
-	 *
-	 * @param subjectHolder The holder of the subject <code>IManyToOneMapping</code>
-	 * @param parent The parent container
-	 * @param widgetFactory The factory used to create various common widgets
-	 */
-	public EclipseLink1_1OrmBasicCollectionMappingComposite(PropertyValueModel<? extends BasicCollectionMapping> subjectHolder,
-	                                 Composite parent,
-	                                 WidgetFactory widgetFactory) {
-
-		super(subjectHolder, parent, widgetFactory);
-	}
-
-	@Override
-	protected void initializeLayout(Composite container) {
-		new AccessTypeComposite(this, buildAccessHolderHolder(), container);
-	}	
-	
-	protected PropertyValueModel<AccessHolder> buildAccessHolderHolder() {
-		return new PropertyAspectAdapter<BasicCollectionMapping, AccessHolder>(getSubjectHolder()) {
-			@Override
-			protected AccessHolder buildValue_() {
-				return this.subject.getPersistentAttribute();
-			}
-		};
-	}
-}
diff --git a/jpa/plugins/org.eclipse.jpt.eclipselink.ui/src/org/eclipse/jpt/eclipselink/ui/internal/orm/details/EclipseLink1_1OrmBasicCollectionMappingUiProvider.java b/jpa/plugins/org.eclipse.jpt.eclipselink.ui/src/org/eclipse/jpt/eclipselink/ui/internal/orm/details/EclipseLink1_1OrmBasicCollectionMappingUiProvider.java
deleted file mode 100644
index ea10faf..0000000
--- a/jpa/plugins/org.eclipse.jpt.eclipselink.ui/src/org/eclipse/jpt/eclipselink/ui/internal/orm/details/EclipseLink1_1OrmBasicCollectionMappingUiProvider.java
+++ /dev/null
@@ -1,55 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- *
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.eclipselink.ui.internal.orm.details;
-
-import org.eclipse.core.runtime.content.IContentType;
-import org.eclipse.jpt.eclipselink.core.context.BasicCollectionMapping;
-import org.eclipse.jpt.eclipselink.core.internal.JptEclipseLinkCorePlugin;
-import org.eclipse.jpt.eclipselink.ui.internal.mappings.details.EclipseLinkBasicCollectionMappingUiProvider;
-import org.eclipse.jpt.ui.JpaUiFactory;
-import org.eclipse.jpt.ui.WidgetFactory;
-import org.eclipse.jpt.ui.details.AttributeMappingUiProvider;
-import org.eclipse.jpt.ui.details.JpaComposite;
-import org.eclipse.jpt.utility.model.value.PropertyValueModel;
-import org.eclipse.swt.widgets.Composite;
-
-public class EclipseLink1_1OrmBasicCollectionMappingUiProvider extends EclipseLinkBasicCollectionMappingUiProvider<BasicCollectionMapping>
-{
-	// singleton
-	private static final EclipseLink1_1OrmBasicCollectionMappingUiProvider INSTANCE = 
-		new EclipseLink1_1OrmBasicCollectionMappingUiProvider();
-	
-	/**
-	 * Return the singleton.
-	 */
-	public static AttributeMappingUiProvider<BasicCollectionMapping> instance() {
-		return INSTANCE;
-	}
-	
-	
-	/**
-	 * Ensure single instance.
-	 */
-	private EclipseLink1_1OrmBasicCollectionMappingUiProvider() {
-		super();
-	}
-	
-	public IContentType getContentType() {
-		return JptEclipseLinkCorePlugin.ECLIPSELINK1_1_ORM_XML_CONTENT_TYPE;
-	}
-	
-	public JpaComposite buildAttributeMappingComposite(
-			JpaUiFactory factory,
-			PropertyValueModel<BasicCollectionMapping> subjectHolder,
-			Composite parent,
-			WidgetFactory widgetFactory) {
-		return new EclipseLink1_1OrmBasicCollectionMappingComposite(subjectHolder, parent, widgetFactory);
-	}
-}
diff --git a/jpa/plugins/org.eclipse.jpt.eclipselink.ui/src/org/eclipse/jpt/eclipselink/ui/internal/orm/details/EclipseLink1_1OrmBasicMapMappingComposite.java b/jpa/plugins/org.eclipse.jpt.eclipselink.ui/src/org/eclipse/jpt/eclipselink/ui/internal/orm/details/EclipseLink1_1OrmBasicMapMappingComposite.java
deleted file mode 100644
index 231dfab..0000000
--- a/jpa/plugins/org.eclipse.jpt.eclipselink.ui/src/org/eclipse/jpt/eclipselink/ui/internal/orm/details/EclipseLink1_1OrmBasicMapMappingComposite.java
+++ /dev/null
@@ -1,57 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- *
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.eclipselink.ui.internal.orm.details;
-
-import org.eclipse.jpt.core.context.AccessHolder;
-import org.eclipse.jpt.eclipselink.core.context.BasicMapMapping;
-import org.eclipse.jpt.ui.WidgetFactory;
-import org.eclipse.jpt.ui.details.JpaComposite;
-import org.eclipse.jpt.ui.internal.details.AccessTypeComposite;
-import org.eclipse.jpt.ui.internal.widgets.FormPane;
-import org.eclipse.jpt.utility.internal.model.value.PropertyAspectAdapter;
-import org.eclipse.jpt.utility.model.value.PropertyValueModel;
-import org.eclipse.swt.widgets.Composite;
-
-/**
- *
- * @version 2.2
- * @since 2.2
- */
-public class EclipseLink1_1OrmBasicMapMappingComposite extends FormPane<BasicMapMapping>
-                                       implements JpaComposite
-{
-	/**
-	 * Creates a new <code>EclipseLinkBasicCollectionMappingComposite</code>.
-	 *
-	 * @param subjectHolder The holder of the subject <code>IManyToOneMapping</code>
-	 * @param parent The parent container
-	 * @param widgetFactory The factory used to create various common widgets
-	 */
-	public EclipseLink1_1OrmBasicMapMappingComposite(PropertyValueModel<? extends BasicMapMapping> subjectHolder,
-	                                 Composite parent,
-	                                 WidgetFactory widgetFactory) {
-
-		super(subjectHolder, parent, widgetFactory);
-	}
-
-	@Override
-	protected void initializeLayout(Composite container) {
-		new AccessTypeComposite(this, buildAccessHolderHolder(), container);
-	}	
-	
-	protected PropertyValueModel<AccessHolder> buildAccessHolderHolder() {
-		return new PropertyAspectAdapter<BasicMapMapping, AccessHolder>(getSubjectHolder()) {
-			@Override
-			protected AccessHolder buildValue_() {
-				return this.subject.getPersistentAttribute();
-			}
-		};
-	}
-}
diff --git a/jpa/plugins/org.eclipse.jpt.eclipselink.ui/src/org/eclipse/jpt/eclipselink/ui/internal/orm/details/EclipseLink1_1OrmBasicMapMappingUiProvider.java b/jpa/plugins/org.eclipse.jpt.eclipselink.ui/src/org/eclipse/jpt/eclipselink/ui/internal/orm/details/EclipseLink1_1OrmBasicMapMappingUiProvider.java
deleted file mode 100644
index 1a0f2c4..0000000
--- a/jpa/plugins/org.eclipse.jpt.eclipselink.ui/src/org/eclipse/jpt/eclipselink/ui/internal/orm/details/EclipseLink1_1OrmBasicMapMappingUiProvider.java
+++ /dev/null
@@ -1,55 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- *
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.eclipselink.ui.internal.orm.details;
-
-import org.eclipse.core.runtime.content.IContentType;
-import org.eclipse.jpt.eclipselink.core.context.BasicMapMapping;
-import org.eclipse.jpt.eclipselink.core.internal.JptEclipseLinkCorePlugin;
-import org.eclipse.jpt.eclipselink.ui.internal.mappings.details.EclipseLinkBasicMapMappingUiProvider;
-import org.eclipse.jpt.ui.JpaUiFactory;
-import org.eclipse.jpt.ui.WidgetFactory;
-import org.eclipse.jpt.ui.details.AttributeMappingUiProvider;
-import org.eclipse.jpt.ui.details.JpaComposite;
-import org.eclipse.jpt.utility.model.value.PropertyValueModel;
-import org.eclipse.swt.widgets.Composite;
-
-public class EclipseLink1_1OrmBasicMapMappingUiProvider extends EclipseLinkBasicMapMappingUiProvider<BasicMapMapping>
-{
-	// singleton
-	private static final EclipseLink1_1OrmBasicMapMappingUiProvider INSTANCE = 
-		new EclipseLink1_1OrmBasicMapMappingUiProvider();
-	
-	/**
-	 * Return the singleton.
-	 */
-	public static AttributeMappingUiProvider<BasicMapMapping> instance() {
-		return INSTANCE;
-	}
-	
-	
-	/**
-	 * Ensure single instance.
-	 */
-	private EclipseLink1_1OrmBasicMapMappingUiProvider() {
-		super();
-	}
-	
-	public IContentType getContentType() {
-		return JptEclipseLinkCorePlugin.ECLIPSELINK1_1_ORM_XML_CONTENT_TYPE;
-	}
-		
-	public JpaComposite buildAttributeMappingComposite(
-			JpaUiFactory factory,
-			PropertyValueModel<BasicMapMapping> subjectHolder,
-			Composite parent,
-			WidgetFactory widgetFactory) {
-		return new EclipseLink1_1OrmBasicMapMappingComposite(subjectHolder, parent, widgetFactory);
-	}
-}
diff --git a/jpa/plugins/org.eclipse.jpt.eclipselink.ui/src/org/eclipse/jpt/eclipselink/ui/internal/orm/details/EclipseLink1_1OrmBasicMappingComposite.java b/jpa/plugins/org.eclipse.jpt.eclipselink.ui/src/org/eclipse/jpt/eclipselink/ui/internal/orm/details/EclipseLink1_1OrmBasicMappingComposite.java
deleted file mode 100644
index 71e76a0..0000000
--- a/jpa/plugins/org.eclipse.jpt.eclipselink.ui/src/org/eclipse/jpt/eclipselink/ui/internal/orm/details/EclipseLink1_1OrmBasicMappingComposite.java
+++ /dev/null
@@ -1,67 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- *
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.eclipselink.ui.internal.orm.details;
-
-import org.eclipse.jpt.core.context.AccessHolder;
-import org.eclipse.jpt.core.context.BasicMapping;
-import org.eclipse.jpt.eclipselink.ui.internal.mappings.details.EclipseLinkBasicMappingComposite;
-import org.eclipse.jpt.eclipselink.ui.internal.mappings.details.MutableComposite;
-import org.eclipse.jpt.ui.WidgetFactory;
-import org.eclipse.jpt.ui.internal.details.AccessTypeComposite;
-import org.eclipse.jpt.ui.internal.mappings.details.ColumnComposite;
-import org.eclipse.jpt.ui.internal.mappings.details.FetchTypeComposite;
-import org.eclipse.jpt.ui.internal.mappings.details.OptionalComposite;
-import org.eclipse.jpt.utility.internal.model.value.PropertyAspectAdapter;
-import org.eclipse.jpt.utility.model.value.PropertyValueModel;
-import org.eclipse.swt.widgets.Composite;
-
-public class EclipseLink1_1OrmBasicMappingComposite extends EclipseLinkBasicMappingComposite
-{
-	/**
-	 * Creates a new <code>EclipseLink1_1OrmBasicMappingComposite</code>.
-	 *
-	 * @param subjectHolder The holder of the subject <code>BasicMapping</code>
-	 * @param parent The parent container
-	 * @param widgetFactory The factory used to create various common widgets
-	 */
-	public EclipseLink1_1OrmBasicMappingComposite(PropertyValueModel<? extends BasicMapping> subjectHolder,
-	                               Composite parent,
-	                               WidgetFactory widgetFactory) {
-
-		super(subjectHolder, parent, widgetFactory);
-	}
-
-	@Override
-	protected void initializeGeneralPane(Composite container) {
-		int groupBoxMargin = getGroupBoxMargin();
-
-		new ColumnComposite(this, buildColumnHolder(), container);
-
-		// Align the widgets under the ColumnComposite
-		container = addSubPane(container, 0, groupBoxMargin, 0, groupBoxMargin);
-		
-		new AccessTypeComposite(this, buildAccessHolderHolder(), container);
-		new FetchTypeComposite(this, container);
-		new OptionalComposite(this, addSubPane(container, 4));
-		
-		// Mutable widgets
-		new MutableComposite(this, buildMutableHolder(), container);
-	}
-	
-	protected PropertyValueModel<AccessHolder> buildAccessHolderHolder() {
-		return new PropertyAspectAdapter<BasicMapping, AccessHolder>(getSubjectHolder()) {
-			@Override
-			protected AccessHolder buildValue_() {
-				return this.subject.getPersistentAttribute();
-			}
-		};
-	}
-
-}
\ No newline at end of file
diff --git a/jpa/plugins/org.eclipse.jpt.eclipselink.ui/src/org/eclipse/jpt/eclipselink/ui/internal/orm/details/EclipseLink1_1OrmBasicMappingUiProvider.java b/jpa/plugins/org.eclipse.jpt.eclipselink.ui/src/org/eclipse/jpt/eclipselink/ui/internal/orm/details/EclipseLink1_1OrmBasicMappingUiProvider.java
deleted file mode 100644
index 697bf5c..0000000
--- a/jpa/plugins/org.eclipse.jpt.eclipselink.ui/src/org/eclipse/jpt/eclipselink/ui/internal/orm/details/EclipseLink1_1OrmBasicMappingUiProvider.java
+++ /dev/null
@@ -1,57 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- *
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.eclipselink.ui.internal.orm.details;
-
-import org.eclipse.core.runtime.content.IContentType;
-import org.eclipse.jpt.eclipselink.core.internal.JptEclipseLinkCorePlugin;
-import org.eclipse.jpt.eclipselink.core.internal.context.orm.EclipseLinkOrmBasicMapping;
-import org.eclipse.jpt.ui.JpaUiFactory;
-import org.eclipse.jpt.ui.WidgetFactory;
-import org.eclipse.jpt.ui.details.AttributeMappingUiProvider;
-import org.eclipse.jpt.ui.details.JpaComposite;
-import org.eclipse.jpt.ui.internal.details.AbstractBasicMappingUiProvider;
-import org.eclipse.jpt.utility.model.value.PropertyValueModel;
-import org.eclipse.swt.widgets.Composite;
-
-public class EclipseLink1_1OrmBasicMappingUiProvider
-	extends AbstractBasicMappingUiProvider<EclipseLinkOrmBasicMapping>
-{
-	// singleton
-	private static final EclipseLink1_1OrmBasicMappingUiProvider INSTANCE = 
-		new EclipseLink1_1OrmBasicMappingUiProvider();
-	
-	/**
-	 * Return the singleton.
-	 */
-	public static AttributeMappingUiProvider<EclipseLinkOrmBasicMapping> instance() {
-		return INSTANCE;
-	}
-	
-	
-	/**
-	 * Ensure single instance.
-	 */
-	private EclipseLink1_1OrmBasicMappingUiProvider() {
-		super();
-	}
-	
-	public IContentType getContentType() {
-		return JptEclipseLinkCorePlugin.ECLIPSELINK1_1_ORM_XML_CONTENT_TYPE;
-	}	
-	
-	public JpaComposite buildAttributeMappingComposite(
-			JpaUiFactory factory,
-			PropertyValueModel<EclipseLinkOrmBasicMapping> subjectHolder,
-			Composite parent,
-			WidgetFactory widgetFactory) {
-		
-		return new EclipseLink1_1OrmBasicMappingComposite(subjectHolder, parent, widgetFactory);
-	}
-}
diff --git a/jpa/plugins/org.eclipse.jpt.eclipselink.ui/src/org/eclipse/jpt/eclipselink/ui/internal/orm/details/EclipseLink1_1OrmEmbeddableComposite.java b/jpa/plugins/org.eclipse.jpt.eclipselink.ui/src/org/eclipse/jpt/eclipselink/ui/internal/orm/details/EclipseLink1_1OrmEmbeddableComposite.java
deleted file mode 100644
index a894d53..0000000
--- a/jpa/plugins/org.eclipse.jpt.eclipselink.ui/src/org/eclipse/jpt/eclipselink/ui/internal/orm/details/EclipseLink1_1OrmEmbeddableComposite.java
+++ /dev/null
@@ -1,100 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- *
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.eclipselink.ui.internal.orm.details;
-
-import org.eclipse.jpt.core.context.AccessHolder;
-import org.eclipse.jpt.eclipselink.core.internal.context.orm.ConverterHolder;
-import org.eclipse.jpt.eclipselink.core.internal.context.orm.EclipseLinkOrmEmbeddable;
-import org.eclipse.jpt.eclipselink.ui.internal.mappings.EclipseLinkUiMappingsMessages;
-import org.eclipse.jpt.eclipselink.ui.internal.mappings.details.EclipseLinkEmbeddableAdvancedComposite;
-import org.eclipse.jpt.ui.WidgetFactory;
-import org.eclipse.jpt.ui.details.JpaComposite;
-import org.eclipse.jpt.ui.internal.details.AccessTypeComposite;
-import org.eclipse.jpt.ui.internal.orm.details.MetadataCompleteComposite;
-import org.eclipse.jpt.ui.internal.orm.details.OrmJavaClassChooser;
-import org.eclipse.jpt.ui.internal.widgets.FormPane;
-import org.eclipse.jpt.utility.internal.model.value.PropertyAspectAdapter;
-import org.eclipse.jpt.utility.model.value.PropertyValueModel;
-import org.eclipse.swt.widgets.Composite;
-
-/**
- * This pane does not have any widgets.
- *
- * @see Embeddable
- * @see BaseJpaUiFactory - The factory creating this pane
- * @see EmbeddableUiProvider
- *
- * @version 2.1
- * @since 2.1
- */
-public class EclipseLink1_1OrmEmbeddableComposite extends FormPane<EclipseLinkOrmEmbeddable>
-                                 implements JpaComposite
-{
-	/**
-	 * Creates a new <code>EmbeddableComposite</code>.
-	 *
-	 * @param subjectHolder The holder of this pane's subject
-	 * @param parent The parent container
-	 * @param widgetFactory The factory used to create various common widgets
-	 */
-	public EclipseLink1_1OrmEmbeddableComposite(PropertyValueModel<? extends EclipseLinkOrmEmbeddable> subjectHolder,
-	                           Composite parent,
-	                           WidgetFactory widgetFactory) {
-
-		super(subjectHolder, parent, widgetFactory);
-	}
-
-	@Override
-	protected void initializeLayout(Composite container) {
-		initializeGeneralPane(container);
-		initializeConvertersPane(container);
-		initializeAdvancedPane(container);
-	}
-	
-	protected void initializeGeneralPane(Composite container) {
-		new OrmJavaClassChooser(this, getSubjectHolder(), container);
-		new AccessTypeComposite(this, buildAccessHolder(), container);
-		new MetadataCompleteComposite(this, getSubjectHolder(), container);
-	}
-	
-	protected PropertyValueModel<AccessHolder> buildAccessHolder() {
-		return new PropertyAspectAdapter<EclipseLinkOrmEmbeddable, AccessHolder>(
-			getSubjectHolder())
-		{
-			@Override
-			protected AccessHolder buildValue_() {
-				return this.subject.getPersistentType();
-			}
-		};
-	}
-
-	protected void initializeConvertersPane(Composite container) {
-
-		container = addCollapsableSection(
-			addSubPane(container, 5),
-			EclipseLinkUiMappingsMessages.ConvertersComposite_Label
-		);
-
-		new ConvertersComposite(this, buildConverterHolder(), container);
-	}
-	
-	private PropertyValueModel<ConverterHolder> buildConverterHolder() {
-		return new PropertyAspectAdapter<EclipseLinkOrmEmbeddable, ConverterHolder>(getSubjectHolder()) {
-			@Override
-			protected ConverterHolder buildValue_() {
-				return this.subject.getConverterHolder();
-			}
-		};
-	}
-	
-	protected void initializeAdvancedPane(Composite container) {
-		new EclipseLinkEmbeddableAdvancedComposite(this, container);
-	}
-}
\ No newline at end of file
diff --git a/jpa/plugins/org.eclipse.jpt.eclipselink.ui/src/org/eclipse/jpt/eclipselink/ui/internal/orm/details/EclipseLink1_1OrmEmbeddableUiProvider.java b/jpa/plugins/org.eclipse.jpt.eclipselink.ui/src/org/eclipse/jpt/eclipselink/ui/internal/orm/details/EclipseLink1_1OrmEmbeddableUiProvider.java
deleted file mode 100644
index fe73983..0000000
--- a/jpa/plugins/org.eclipse.jpt.eclipselink.ui/src/org/eclipse/jpt/eclipselink/ui/internal/orm/details/EclipseLink1_1OrmEmbeddableUiProvider.java
+++ /dev/null
@@ -1,57 +0,0 @@
-/*******************************************************************************
- *  Copyright (c) 2009  Oracle. 
- *  All rights reserved.  This program and the accompanying materials are 
- *  made available under the terms of the Eclipse Public License v1.0 which 
- *  accompanies this distribution, and is available at 
- *  http://www.eclipse.org/legal/epl-v10.html
- *  
- *  Contributors: 
- *  	Oracle - initial API and implementation
- *******************************************************************************/
-package org.eclipse.jpt.eclipselink.ui.internal.orm.details;
-
-import org.eclipse.core.runtime.content.IContentType;
-import org.eclipse.jpt.eclipselink.core.internal.JptEclipseLinkCorePlugin;
-import org.eclipse.jpt.eclipselink.core.internal.context.orm.EclipseLinkOrmEmbeddable;
-import org.eclipse.jpt.ui.JpaUiFactory;
-import org.eclipse.jpt.ui.WidgetFactory;
-import org.eclipse.jpt.ui.details.JpaComposite;
-import org.eclipse.jpt.ui.details.TypeMappingUiProvider;
-import org.eclipse.jpt.ui.internal.details.AbstractEmbeddableUiProvider;
-import org.eclipse.jpt.utility.model.value.PropertyValueModel;
-import org.eclipse.swt.widgets.Composite;
-
-public class EclipseLink1_1OrmEmbeddableUiProvider 
-	extends AbstractEmbeddableUiProvider<EclipseLinkOrmEmbeddable>
-{
-	// singleton
-	private static final EclipseLink1_1OrmEmbeddableUiProvider INSTANCE = 
-		new EclipseLink1_1OrmEmbeddableUiProvider();
-	
-	/**
-	 * Return the singleton.
-	 */
-	public static TypeMappingUiProvider<EclipseLinkOrmEmbeddable> instance() {
-		return INSTANCE;
-	}
-	
-	
-	/**
-	 * Ensure single instance.
-	 */
-	private EclipseLink1_1OrmEmbeddableUiProvider() {
-		super();
-	}
-	
-	public IContentType getContentType() {
-		return JptEclipseLinkCorePlugin.ECLIPSELINK1_1_ORM_XML_CONTENT_TYPE;
-	}
-	
-	public JpaComposite buildPersistentTypeMappingComposite(
-			JpaUiFactory factory, 
-			PropertyValueModel<EclipseLinkOrmEmbeddable> subjectHolder, 
-			Composite parent, 
-			WidgetFactory widgetFactory) {
-		return new EclipseLinkOrmEmbeddableComposite(subjectHolder, parent, widgetFactory);
-	}
-}
diff --git a/jpa/plugins/org.eclipse.jpt.eclipselink.ui/src/org/eclipse/jpt/eclipselink/ui/internal/orm/details/EclipseLink1_1OrmEmbeddedIdMappingComposite.java b/jpa/plugins/org.eclipse.jpt.eclipselink.ui/src/org/eclipse/jpt/eclipselink/ui/internal/orm/details/EclipseLink1_1OrmEmbeddedIdMappingComposite.java
deleted file mode 100644
index 0d6d374..0000000
--- a/jpa/plugins/org.eclipse.jpt.eclipselink.ui/src/org/eclipse/jpt/eclipselink/ui/internal/orm/details/EclipseLink1_1OrmEmbeddedIdMappingComposite.java
+++ /dev/null
@@ -1,75 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- *
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.eclipselink.ui.internal.orm.details;
-
-import org.eclipse.jpt.core.context.AccessHolder;
-import org.eclipse.jpt.core.context.EmbeddedIdMapping;
-import org.eclipse.jpt.ui.WidgetFactory;
-import org.eclipse.jpt.ui.details.JpaComposite;
-import org.eclipse.jpt.ui.internal.details.AccessTypeComposite;
-import org.eclipse.jpt.ui.internal.mappings.details.AbstractEmbeddedMappingComposite;
-import org.eclipse.jpt.ui.internal.mappings.details.EmbeddedAttributeOverridesComposite;
-import org.eclipse.jpt.utility.internal.model.value.PropertyAspectAdapter;
-import org.eclipse.jpt.utility.model.value.PropertyValueModel;
-import org.eclipse.swt.widgets.Composite;
-
-/**
- * Here's the layout of this pane:
- * <pre>
- * -----------------------------------------------------------------------------
- * | ------------------------------------------------------------------------- |
- * | |                                                                       | |
- * | | EmbeddedAttributeOverridesComposite                                   | |
- * | |                                                                       | |
- * | ------------------------------------------------------------------------- |
- * -----------------------------------------------------------------------------</pre>
- *
- * @see EmbeddedIdMapping
- * @see BaseJpaUiFactory - The factory creating this pane
- *
- * @version 2.2
- * @since 2.2
- */
-public class EclipseLink1_1OrmEmbeddedIdMappingComposite extends AbstractEmbeddedMappingComposite<EmbeddedIdMapping>
-                                        implements JpaComposite
-{
-	/**
-	 * Creates a new <code>EclipseLink1_1OrmEmbeddedIdMappingComposite</code>.
-	 *
-	 * @param subjectHolder The holder of the subject <code>EmbeddedIdMapping</code>
-	 * @param parent The parent container
-	 * @param widgetFactory The factory used to create various common widgets
-	 */
-	public EclipseLink1_1OrmEmbeddedIdMappingComposite(PropertyValueModel<? extends EmbeddedIdMapping> subjectHolder,
-	                                  Composite parent,
-	                                  WidgetFactory widgetFactory) {
-
-		super(subjectHolder, parent, widgetFactory);
-	}
-	
-	@Override
-	protected void initializeLayout(Composite container) {
-		new AccessTypeComposite(this, buildAccessHolderHolder(), container);
-
-		new EmbeddedAttributeOverridesComposite(
-			this,
-			container
-		);
-	}	
-	
-	protected PropertyValueModel<AccessHolder> buildAccessHolderHolder() {
-		return new PropertyAspectAdapter<EmbeddedIdMapping, AccessHolder>(getSubjectHolder()) {
-			@Override
-			protected AccessHolder buildValue_() {
-				return this.subject.getPersistentAttribute();
-			}
-		};
-	}
-}
\ No newline at end of file
diff --git a/jpa/plugins/org.eclipse.jpt.eclipselink.ui/src/org/eclipse/jpt/eclipselink/ui/internal/orm/details/EclipseLink1_1OrmEmbeddedIdMappingUiProvider.java b/jpa/plugins/org.eclipse.jpt.eclipselink.ui/src/org/eclipse/jpt/eclipselink/ui/internal/orm/details/EclipseLink1_1OrmEmbeddedIdMappingUiProvider.java
deleted file mode 100644
index f97959a..0000000
--- a/jpa/plugins/org.eclipse.jpt.eclipselink.ui/src/org/eclipse/jpt/eclipselink/ui/internal/orm/details/EclipseLink1_1OrmEmbeddedIdMappingUiProvider.java
+++ /dev/null
@@ -1,57 +0,0 @@
-/*******************************************************************************
- *  Copyright (c) 2009  Oracle. 
- *  All rights reserved.  This program and the accompanying materials are 
- *  made available under the terms of the Eclipse Public License v1.0 which 
- *  accompanies this distribution, and is available at 
- *  http://www.eclipse.org/legal/epl-v10.html
- *  
- *  Contributors: 
- *  	Oracle - initial API and implementation
- *******************************************************************************/
-package org.eclipse.jpt.eclipselink.ui.internal.orm.details;
-
-import org.eclipse.core.runtime.content.IContentType;
-import org.eclipse.jpt.core.context.orm.OrmEmbeddedIdMapping;
-import org.eclipse.jpt.eclipselink.core.internal.JptEclipseLinkCorePlugin;
-import org.eclipse.jpt.ui.JpaUiFactory;
-import org.eclipse.jpt.ui.WidgetFactory;
-import org.eclipse.jpt.ui.details.AttributeMappingUiProvider;
-import org.eclipse.jpt.ui.details.JpaComposite;
-import org.eclipse.jpt.ui.internal.details.AbstractEmbeddedIdMappingUiProvider;
-import org.eclipse.jpt.utility.model.value.PropertyValueModel;
-import org.eclipse.swt.widgets.Composite;
-
-public class EclipseLink1_1OrmEmbeddedIdMappingUiProvider
-	extends AbstractEmbeddedIdMappingUiProvider<OrmEmbeddedIdMapping>
-{
-	// singleton
-	private static final EclipseLink1_1OrmEmbeddedIdMappingUiProvider INSTANCE = 
-		new EclipseLink1_1OrmEmbeddedIdMappingUiProvider();
-	
-	/**
-	 * Return the singleton.
-	 */
-	public static AttributeMappingUiProvider<OrmEmbeddedIdMapping> instance() {
-		return INSTANCE;
-	}
-	
-	
-	/**
-	 * Ensure single instance.
-	 */
-	private EclipseLink1_1OrmEmbeddedIdMappingUiProvider() {
-		super();
-	}
-	
-	public IContentType getContentType() {
-		return JptEclipseLinkCorePlugin.ECLIPSELINK1_1_ORM_XML_CONTENT_TYPE;
-	}	
-	
-	public JpaComposite buildAttributeMappingComposite(
-			JpaUiFactory factory,
-			PropertyValueModel<OrmEmbeddedIdMapping> subjectHolder,
-			Composite parent,
-			WidgetFactory widgetFactory) {
-		return new EclipseLink1_1OrmEmbeddedIdMappingComposite(subjectHolder, parent, widgetFactory);
-	}
-}
diff --git a/jpa/plugins/org.eclipse.jpt.eclipselink.ui/src/org/eclipse/jpt/eclipselink/ui/internal/orm/details/EclipseLink1_1OrmEmbeddedMappingComposite.java b/jpa/plugins/org.eclipse.jpt.eclipselink.ui/src/org/eclipse/jpt/eclipselink/ui/internal/orm/details/EclipseLink1_1OrmEmbeddedMappingComposite.java
deleted file mode 100644
index ae7f25b..0000000
--- a/jpa/plugins/org.eclipse.jpt.eclipselink.ui/src/org/eclipse/jpt/eclipselink/ui/internal/orm/details/EclipseLink1_1OrmEmbeddedMappingComposite.java
+++ /dev/null
@@ -1,76 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- *
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.eclipselink.ui.internal.orm.details;
-
-import org.eclipse.jpt.core.context.AccessHolder;
-import org.eclipse.jpt.core.context.EmbeddedMapping;
-import org.eclipse.jpt.ui.WidgetFactory;
-import org.eclipse.jpt.ui.details.JpaComposite;
-import org.eclipse.jpt.ui.internal.details.AccessTypeComposite;
-import org.eclipse.jpt.ui.internal.mappings.details.AbstractEmbeddedMappingComposite;
-import org.eclipse.jpt.ui.internal.mappings.details.EmbeddedAttributeOverridesComposite;
-import org.eclipse.jpt.utility.internal.model.value.PropertyAspectAdapter;
-import org.eclipse.jpt.utility.model.value.PropertyValueModel;
-import org.eclipse.swt.widgets.Composite;
-
-/**
- * Here the layout of this pane:
- * <pre>
- * -----------------------------------------------------------------------------
- * | ------------------------------------------------------------------------- |
- * | |                                                                       | |
- * | | EmbeddedAttributeOverridesComposite                                   | |
- * | |                                                                       | |
- * | ------------------------------------------------------------------------- |
- * -----------------------------------------------------------------------------</pre>
- *
- * @see EmbeddedMapping
- * @see BaseJpaUiFactory - The factory creating this pane
- *
- * @version 2.2
- * @since 2.2
- */
-public class EclipseLink1_1OrmEmbeddedMappingComposite extends AbstractEmbeddedMappingComposite<EmbeddedMapping>
-                                      implements JpaComposite
-{
-	/**
-	 * Creates a new <code>EmbeddedMappingComposite</code>.
-	 *
-	 * @param subjectHolder The holder of the subject <code>EmbeddedMapping</code>
-	 * @param parent The parent container
-	 * @param widgetFactory The factory used to create various common widgets
-	 */
-	public EclipseLink1_1OrmEmbeddedMappingComposite(PropertyValueModel<? extends EmbeddedMapping> subjectHolder,
-	                                Composite parent,
-	                                WidgetFactory widgetFactory) {
-
-		super(subjectHolder, parent, widgetFactory);
-	}
-	
-	
-	@Override
-	protected void initializeLayout(Composite container) {
-		new AccessTypeComposite(this, buildAccessHolderHolder(), container);
-
-		new EmbeddedAttributeOverridesComposite(
-			this,
-			container
-		);
-	}	
-	
-	protected PropertyValueModel<AccessHolder> buildAccessHolderHolder() {
-		return new PropertyAspectAdapter<EmbeddedMapping, AccessHolder>(getSubjectHolder()) {
-			@Override
-			protected AccessHolder buildValue_() {
-				return this.subject.getPersistentAttribute();
-			}
-		};
-	}
-}
\ No newline at end of file
diff --git a/jpa/plugins/org.eclipse.jpt.eclipselink.ui/src/org/eclipse/jpt/eclipselink/ui/internal/orm/details/EclipseLink1_1OrmEmbeddedMappingUiProvider.java b/jpa/plugins/org.eclipse.jpt.eclipselink.ui/src/org/eclipse/jpt/eclipselink/ui/internal/orm/details/EclipseLink1_1OrmEmbeddedMappingUiProvider.java
deleted file mode 100644
index 7e0a470..0000000
--- a/jpa/plugins/org.eclipse.jpt.eclipselink.ui/src/org/eclipse/jpt/eclipselink/ui/internal/orm/details/EclipseLink1_1OrmEmbeddedMappingUiProvider.java
+++ /dev/null
@@ -1,57 +0,0 @@
-/*******************************************************************************
- *  Copyright (c) 2009  Oracle. 
- *  All rights reserved.  This program and the accompanying materials are 
- *  made available under the terms of the Eclipse Public License v1.0 which 
- *  accompanies this distribution, and is available at 
- *  http://www.eclipse.org/legal/epl-v10.html
- *  
- *  Contributors: 
- *  	Oracle - initial API and implementation
- *******************************************************************************/
-package org.eclipse.jpt.eclipselink.ui.internal.orm.details;
-
-import org.eclipse.core.runtime.content.IContentType;
-import org.eclipse.jpt.core.context.orm.OrmEmbeddedMapping;
-import org.eclipse.jpt.eclipselink.core.internal.JptEclipseLinkCorePlugin;
-import org.eclipse.jpt.ui.JpaUiFactory;
-import org.eclipse.jpt.ui.WidgetFactory;
-import org.eclipse.jpt.ui.details.AttributeMappingUiProvider;
-import org.eclipse.jpt.ui.details.JpaComposite;
-import org.eclipse.jpt.ui.internal.details.AbstractEmbeddedMappingUiProvider;
-import org.eclipse.jpt.utility.model.value.PropertyValueModel;
-import org.eclipse.swt.widgets.Composite;
-
-public class EclipseLink1_1OrmEmbeddedMappingUiProvider
-	extends AbstractEmbeddedMappingUiProvider<OrmEmbeddedMapping>
-{
-	// singleton
-	private static final EclipseLink1_1OrmEmbeddedMappingUiProvider INSTANCE = 
-		new EclipseLink1_1OrmEmbeddedMappingUiProvider();
-	
-	/**
-	 * Return the singleton.
-	 */
-	public static AttributeMappingUiProvider<OrmEmbeddedMapping> instance() {
-		return INSTANCE;
-	}
-	
-	
-	/**
-	 * Ensure single instance.
-	 */
-	private EclipseLink1_1OrmEmbeddedMappingUiProvider() {
-		super();
-	}
-	
-	public IContentType getContentType() {
-		return JptEclipseLinkCorePlugin.ECLIPSELINK1_1_ORM_XML_CONTENT_TYPE;
-	}	
-	
-	public JpaComposite buildAttributeMappingComposite(
-			JpaUiFactory factory,
-			PropertyValueModel<OrmEmbeddedMapping> subjectHolder,
-			Composite parent,
-			WidgetFactory widgetFactory) {
-		return new EclipseLink1_1OrmEmbeddedMappingComposite(subjectHolder, parent, widgetFactory);
-	}
-}
diff --git a/jpa/plugins/org.eclipse.jpt.eclipselink.ui/src/org/eclipse/jpt/eclipselink/ui/internal/orm/details/EclipseLink1_1OrmEntityUiProvider.java b/jpa/plugins/org.eclipse.jpt.eclipselink.ui/src/org/eclipse/jpt/eclipselink/ui/internal/orm/details/EclipseLink1_1OrmEntityUiProvider.java
deleted file mode 100644
index 9d47903..0000000
--- a/jpa/plugins/org.eclipse.jpt.eclipselink.ui/src/org/eclipse/jpt/eclipselink/ui/internal/orm/details/EclipseLink1_1OrmEntityUiProvider.java
+++ /dev/null
@@ -1,57 +0,0 @@
-/*******************************************************************************
- *  Copyright (c) 2009  Oracle. 
- *  All rights reserved.  This program and the accompanying materials are 
- *  made available under the terms of the Eclipse Public License v1.0 which 
- *  accompanies this distribution, and is available at 
- *  http://www.eclipse.org/legal/epl-v10.html
- *  
- *  Contributors: 
- *  	Oracle - initial API and implementation
- *******************************************************************************/
-package org.eclipse.jpt.eclipselink.ui.internal.orm.details;
-
-import org.eclipse.core.runtime.content.IContentType;
-import org.eclipse.jpt.eclipselink.core.internal.JptEclipseLinkCorePlugin;
-import org.eclipse.jpt.eclipselink.core.internal.context.orm.EclipseLinkOrmEntity;
-import org.eclipse.jpt.ui.JpaUiFactory;
-import org.eclipse.jpt.ui.WidgetFactory;
-import org.eclipse.jpt.ui.details.JpaComposite;
-import org.eclipse.jpt.ui.details.TypeMappingUiProvider;
-import org.eclipse.jpt.ui.internal.details.AbstractEntityUiProvider;
-import org.eclipse.jpt.utility.model.value.PropertyValueModel;
-import org.eclipse.swt.widgets.Composite;
-
-public class EclipseLink1_1OrmEntityUiProvider 
-	extends AbstractEntityUiProvider<EclipseLinkOrmEntity>
-{
-	// singleton
-	private static final EclipseLink1_1OrmEntityUiProvider INSTANCE = 
-		new EclipseLink1_1OrmEntityUiProvider();
-	
-	/**
-	 * Return the singleton.
-	 */
-	public static TypeMappingUiProvider<EclipseLinkOrmEntity> instance() {
-		return INSTANCE;
-	}
-	
-	public IContentType getContentType() {
-		return JptEclipseLinkCorePlugin.ECLIPSELINK1_1_ORM_XML_CONTENT_TYPE;
-	}
-	
-	/**
-	 * Ensure single instance.
-	 */
-	private EclipseLink1_1OrmEntityUiProvider() {
-		super();
-	}
-	
-	
-	public JpaComposite buildPersistentTypeMappingComposite(
-			JpaUiFactory factory, 
-			PropertyValueModel<EclipseLinkOrmEntity> subjectHolder, 
-			Composite parent, 
-			WidgetFactory widgetFactory) {
-		return new EclipseLinkOrmEntityComposite(subjectHolder, parent, widgetFactory);
-	}
-}
diff --git a/jpa/plugins/org.eclipse.jpt.eclipselink.ui/src/org/eclipse/jpt/eclipselink/ui/internal/orm/details/EclipseLink1_1OrmIdMappingComposite.java b/jpa/plugins/org.eclipse.jpt.eclipselink.ui/src/org/eclipse/jpt/eclipselink/ui/internal/orm/details/EclipseLink1_1OrmIdMappingComposite.java
deleted file mode 100644
index 8d17eda..0000000
--- a/jpa/plugins/org.eclipse.jpt.eclipselink.ui/src/org/eclipse/jpt/eclipselink/ui/internal/orm/details/EclipseLink1_1OrmIdMappingComposite.java
+++ /dev/null
@@ -1,62 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- *
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.eclipselink.ui.internal.orm.details;
-
-import org.eclipse.jpt.core.context.AccessHolder;
-import org.eclipse.jpt.core.context.IdMapping;
-import org.eclipse.jpt.eclipselink.ui.internal.mappings.details.EclipseLinkIdMappingComposite;
-import org.eclipse.jpt.eclipselink.ui.internal.mappings.details.MutableComposite;
-import org.eclipse.jpt.ui.WidgetFactory;
-import org.eclipse.jpt.ui.internal.details.AccessTypeComposite;
-import org.eclipse.jpt.ui.internal.mappings.details.ColumnComposite;
-import org.eclipse.jpt.utility.internal.model.value.PropertyAspectAdapter;
-import org.eclipse.jpt.utility.model.value.PropertyValueModel;
-import org.eclipse.swt.widgets.Composite;
-
-public class EclipseLink1_1OrmIdMappingComposite extends EclipseLinkIdMappingComposite
-{
-	/**
-	 * Creates a new <code>
-public</code>.
-	 *
-	 * @param subjectHolder The holder of the subject <code>IdMapping</code>
-	 * @param parent The parent container
-	 * @param widgetFactory The factory used to create various common widgets
-	 */
-	public EclipseLink1_1OrmIdMappingComposite(PropertyValueModel<? extends IdMapping> subjectHolder,
-	                               Composite parent,
-	                               WidgetFactory widgetFactory) {
-
-		super(subjectHolder, parent, widgetFactory);
-	}
-
-	@Override
-	protected void initializeGeneralPane(Composite container) {
-		int groupBoxMargin = getGroupBoxMargin();
-		
-		// Column widgets
-		new ColumnComposite(this, buildColumnHolder(), container);
-		
-		// Align the widgets under the ColumnComposite
-		container = addSubPane(container, 0, groupBoxMargin, 0, groupBoxMargin);
-
-		new AccessTypeComposite(this, buildAccessHolderHolder(), container);
-		new MutableComposite(this, buildMutableHolder(), container);
-	}
-	
-	protected PropertyValueModel<AccessHolder> buildAccessHolderHolder() {
-		return new PropertyAspectAdapter<IdMapping, AccessHolder>(getSubjectHolder()) {
-			@Override
-			protected AccessHolder buildValue_() {
-				return this.subject.getPersistentAttribute();
-			}
-		};
-	}
-}
\ No newline at end of file
diff --git a/jpa/plugins/org.eclipse.jpt.eclipselink.ui/src/org/eclipse/jpt/eclipselink/ui/internal/orm/details/EclipseLink1_1OrmIdMappingUiProvider.java b/jpa/plugins/org.eclipse.jpt.eclipselink.ui/src/org/eclipse/jpt/eclipselink/ui/internal/orm/details/EclipseLink1_1OrmIdMappingUiProvider.java
deleted file mode 100644
index 029a1bd..0000000
--- a/jpa/plugins/org.eclipse.jpt.eclipselink.ui/src/org/eclipse/jpt/eclipselink/ui/internal/orm/details/EclipseLink1_1OrmIdMappingUiProvider.java
+++ /dev/null
@@ -1,56 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- *
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.eclipselink.ui.internal.orm.details;
-
-import org.eclipse.core.runtime.content.IContentType;
-import org.eclipse.jpt.eclipselink.core.internal.JptEclipseLinkCorePlugin;
-import org.eclipse.jpt.eclipselink.core.internal.context.orm.EclipseLinkOrmIdMapping;
-import org.eclipse.jpt.ui.JpaUiFactory;
-import org.eclipse.jpt.ui.WidgetFactory;
-import org.eclipse.jpt.ui.details.AttributeMappingUiProvider;
-import org.eclipse.jpt.ui.details.JpaComposite;
-import org.eclipse.jpt.ui.internal.details.AbstractIdMappingUiProvider;
-import org.eclipse.jpt.utility.model.value.PropertyValueModel;
-import org.eclipse.swt.widgets.Composite;
-
-public class EclipseLink1_1OrmIdMappingUiProvider
-	extends AbstractIdMappingUiProvider<EclipseLinkOrmIdMapping>
-{
-	// singleton
-	private static final EclipseLink1_1OrmIdMappingUiProvider INSTANCE = 
-		new EclipseLink1_1OrmIdMappingUiProvider();
-	
-	/**
-	 * Return the singleton.
-	 */
-	public static AttributeMappingUiProvider<EclipseLinkOrmIdMapping> instance() {
-		return INSTANCE;
-	}
-	
-	
-	/**
-	 * Ensure single instance.
-	 */
-	private EclipseLink1_1OrmIdMappingUiProvider() {
-		super();
-	}
-	
-	public IContentType getContentType() {
-		return JptEclipseLinkCorePlugin.ECLIPSELINK1_1_ORM_XML_CONTENT_TYPE;
-	}	
-	
-	public JpaComposite buildAttributeMappingComposite(
-			JpaUiFactory factory,
-			PropertyValueModel<EclipseLinkOrmIdMapping> subjectHolder,
-			Composite parent,
-			WidgetFactory widgetFactory) {
-		return new EclipseLink1_1OrmIdMappingComposite(subjectHolder, parent, widgetFactory);
-	}
-}
diff --git a/jpa/plugins/org.eclipse.jpt.eclipselink.ui/src/org/eclipse/jpt/eclipselink/ui/internal/orm/details/EclipseLink1_1OrmManyToManyMappingComposite.java b/jpa/plugins/org.eclipse.jpt.eclipselink.ui/src/org/eclipse/jpt/eclipselink/ui/internal/orm/details/EclipseLink1_1OrmManyToManyMappingComposite.java
deleted file mode 100644
index ec2acaa..0000000
--- a/jpa/plugins/org.eclipse.jpt.eclipselink.ui/src/org/eclipse/jpt/eclipselink/ui/internal/orm/details/EclipseLink1_1OrmManyToManyMappingComposite.java
+++ /dev/null
@@ -1,106 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- *
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.eclipselink.ui.internal.orm.details;
-
-import org.eclipse.jpt.core.context.AccessHolder;
-import org.eclipse.jpt.core.context.ManyToManyMapping;
-import org.eclipse.jpt.eclipselink.ui.internal.mappings.details.EclipseLinkManyToManyMappingComposite;
-import org.eclipse.jpt.eclipselink.ui.internal.mappings.details.JoinFetchComposite;
-import org.eclipse.jpt.ui.WidgetFactory;
-import org.eclipse.jpt.ui.internal.details.AccessTypeComposite;
-import org.eclipse.jpt.ui.internal.mappings.details.CascadeComposite;
-import org.eclipse.jpt.ui.internal.mappings.details.FetchTypeComposite;
-import org.eclipse.jpt.ui.internal.mappings.details.ManyToManyJoiningStrategyPane;
-import org.eclipse.jpt.ui.internal.mappings.details.OrderingComposite;
-import org.eclipse.jpt.ui.internal.mappings.details.TargetEntityComposite;
-import org.eclipse.jpt.utility.internal.model.value.PropertyAspectAdapter;
-import org.eclipse.jpt.utility.model.value.PropertyValueModel;
-import org.eclipse.swt.widgets.Composite;
-
-/**
- * Here the layout of this pane:
- * <pre>
- * -----------------------------------------------------------------------------
- * | ------------------------------------------------------------------------- |
- * | |                                                                       | |
- * | | TargetEntityComposite                                                 | |
- * | |                                                                       | |
- * | ------------------------------------------------------------------------- |
- * | ------------------------------------------------------------------------- |
- * | |                                                                       | |
- * | | JoiningStrategyComposite                                              | |
- * | |                                                                       | |
- * | ------------------------------------------------------------------------- |
- * | ------------------------------------------------------------------------- |
- * | |                                                                       | |
- * | | FetchTypeComposite                                                    | |
- * | |                                                                       | |
- * | ------------------------------------------------------------------------- |
- * | ------------------------------------------------------------------------- |
- * | |                                                                       | |
- * | | CascadeComposite                                                      | |
- * | |                                                                       | |
- * | ------------------------------------------------------------------------- |
- * | ------------------------------------------------------------------------- |
- * | |                                                                       | |
- * | | OrderingComposite                                                     | |
- * | |                                                                       | |
- * | ------------------------------------------------------------------------- |
- * -----------------------------------------------------------------------------</pre>
- *
- * @see {@link ManyToManyMapping}
- * @see {@link BaseJpaUiFactory} - The factory creating this pane
- * @see {@link TargetEntityComposite}
- * @see {@link ManyToManyJoiningStrategyPane}
- * @see {@link FetchTypeComposite}
- * @see {@link CascadeComposite}
- * @see {@link OrderingComposite}
- *
- * @version 2.2
- * @since 2.2
- */
-public class EclipseLink1_1OrmManyToManyMappingComposite extends EclipseLinkManyToManyMappingComposite
-{
-	/**
-	 * Creates a new <code>ManyToManyMappingComposite</code>.
-	 *
-	 * @param subjectHolder The holder of the subject <code>IManyToManyMapping</code>
-	 * @param parent The parent container
-	 * @param widgetFactory The factory used to create various common widgets
-	 */
-	public EclipseLink1_1OrmManyToManyMappingComposite(PropertyValueModel<? extends ManyToManyMapping> subjectHolder,
-	                                  Composite parent,
-	                                  WidgetFactory widgetFactory) {
-
-		super(subjectHolder, parent, widgetFactory);
-	}
-	
-	@Override
-	protected void initializeLayout(Composite container) {
-		int groupBoxMargin = getGroupBoxMargin();
-		
-		new TargetEntityComposite(this, addPane(container, groupBoxMargin));
-		new ManyToManyJoiningStrategyPane(this, buildJoiningHolder(), container);
-		new AccessTypeComposite(this, buildAccessHolderHolder(), addPane(container, groupBoxMargin));
-		new FetchTypeComposite(this, addPane(container, groupBoxMargin));
-		new JoinFetchComposite(this, buildJoinFetchableHolder(), addPane(container, groupBoxMargin));
-		new CascadeComposite(this, buildCascadeHolder(), addSubPane(container, 5));
-		new OrderingComposite(this, container);
-	}
-	
-	protected PropertyValueModel<AccessHolder> buildAccessHolderHolder() {
-		return new PropertyAspectAdapter<ManyToManyMapping, AccessHolder>(getSubjectHolder()) {
-			@Override
-			protected AccessHolder buildValue_() {
-				return this.subject.getPersistentAttribute();
-			}
-		};
-	}
-}
\ No newline at end of file
diff --git a/jpa/plugins/org.eclipse.jpt.eclipselink.ui/src/org/eclipse/jpt/eclipselink/ui/internal/orm/details/EclipseLink1_1OrmManyToManyMappingUiProvider.java b/jpa/plugins/org.eclipse.jpt.eclipselink.ui/src/org/eclipse/jpt/eclipselink/ui/internal/orm/details/EclipseLink1_1OrmManyToManyMappingUiProvider.java
deleted file mode 100644
index bfde1bd..0000000
--- a/jpa/plugins/org.eclipse.jpt.eclipselink.ui/src/org/eclipse/jpt/eclipselink/ui/internal/orm/details/EclipseLink1_1OrmManyToManyMappingUiProvider.java
+++ /dev/null
@@ -1,56 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- *
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.eclipselink.ui.internal.orm.details;
-
-import org.eclipse.core.runtime.content.IContentType;
-import org.eclipse.jpt.eclipselink.core.internal.JptEclipseLinkCorePlugin;
-import org.eclipse.jpt.eclipselink.core.internal.context.orm.EclipseLinkOrmManyToManyMapping;
-import org.eclipse.jpt.ui.JpaUiFactory;
-import org.eclipse.jpt.ui.WidgetFactory;
-import org.eclipse.jpt.ui.details.AttributeMappingUiProvider;
-import org.eclipse.jpt.ui.details.JpaComposite;
-import org.eclipse.jpt.ui.internal.details.AbstractManyToManyMappingUiProvider;
-import org.eclipse.jpt.utility.model.value.PropertyValueModel;
-import org.eclipse.swt.widgets.Composite;
-
-public class EclipseLink1_1OrmManyToManyMappingUiProvider
-	extends AbstractManyToManyMappingUiProvider<EclipseLinkOrmManyToManyMapping>
-{
-	// singleton
-	private static final EclipseLink1_1OrmManyToManyMappingUiProvider INSTANCE = 
-		new EclipseLink1_1OrmManyToManyMappingUiProvider();
-	
-	/**
-	 * Return the singleton.
-	 */
-	public static AttributeMappingUiProvider<EclipseLinkOrmManyToManyMapping> instance() {
-		return INSTANCE;
-	}
-	
-	
-	/**
-	 * Ensure single instance.
-	 */
-	private EclipseLink1_1OrmManyToManyMappingUiProvider() {
-		super();
-	}
-	
-	public IContentType getContentType() {
-		return JptEclipseLinkCorePlugin.ECLIPSELINK1_1_ORM_XML_CONTENT_TYPE;
-	}	
-	
-	public JpaComposite buildAttributeMappingComposite(
-			JpaUiFactory factory,
-			PropertyValueModel<EclipseLinkOrmManyToManyMapping> subjectHolder,
-			Composite parent,
-			WidgetFactory widgetFactory) {
-		return new EclipseLink1_1OrmManyToManyMappingComposite(subjectHolder, parent, widgetFactory);
-	}
-}
diff --git a/jpa/plugins/org.eclipse.jpt.eclipselink.ui/src/org/eclipse/jpt/eclipselink/ui/internal/orm/details/EclipseLink1_1OrmManyToOneMappingComposite.java b/jpa/plugins/org.eclipse.jpt.eclipselink.ui/src/org/eclipse/jpt/eclipselink/ui/internal/orm/details/EclipseLink1_1OrmManyToOneMappingComposite.java
deleted file mode 100644
index 43ea454..0000000
--- a/jpa/plugins/org.eclipse.jpt.eclipselink.ui/src/org/eclipse/jpt/eclipselink/ui/internal/orm/details/EclipseLink1_1OrmManyToOneMappingComposite.java
+++ /dev/null
@@ -1,107 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- *
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.eclipselink.ui.internal.orm.details;
-
-import org.eclipse.jpt.core.context.AccessHolder;
-import org.eclipse.jpt.core.context.ManyToOneMapping;
-import org.eclipse.jpt.eclipselink.ui.internal.mappings.details.EclipseLinkManyToOneMappingComposite;
-import org.eclipse.jpt.eclipselink.ui.internal.mappings.details.JoinFetchComposite;
-import org.eclipse.jpt.ui.WidgetFactory;
-import org.eclipse.jpt.ui.internal.details.AccessTypeComposite;
-import org.eclipse.jpt.ui.internal.mappings.details.CascadeComposite;
-import org.eclipse.jpt.ui.internal.mappings.details.FetchTypeComposite;
-import org.eclipse.jpt.ui.internal.mappings.details.ManyToOneJoiningStrategyPane;
-import org.eclipse.jpt.ui.internal.mappings.details.OptionalComposite;
-import org.eclipse.jpt.ui.internal.mappings.details.TargetEntityComposite;
-import org.eclipse.jpt.utility.internal.model.value.PropertyAspectAdapter;
-import org.eclipse.jpt.utility.model.value.PropertyValueModel;
-import org.eclipse.swt.widgets.Composite;
-
-/**
- * Here the layout of this pane:
- * <pre>
- * -----------------------------------------------------------------------------
- * | ------------------------------------------------------------------------- |
- * | |                                                                       | |
- * | | TargetEntityComposite                                                 | |
- * | |                                                                       | |
- * | ------------------------------------------------------------------------- |
- * | ------------------------------------------------------------------------- |
- * | |                                                                       | |
- * | | JoiningStrategyComposite                                              | |
- * | |                                                                       | |
- * | ------------------------------------------------------------------------- |
- * | ------------------------------------------------------------------------- |
- * | |                                                                       | |
- * | | FetchTypeComposite                                                    | |
- * | |                                                                       | |
- * | ------------------------------------------------------------------------- |
- * | ------------------------------------------------------------------------- |
- * | |                                                                       | |
- * | | OptionalComposite                                                     | |
- * | |                                                                       | |
- * | ------------------------------------------------------------------------- |
- * | ------------------------------------------------------------------------- |
- * | |                                                                       | |
- * | | CascadeComposite                                                      | |
- * | |                                                                       | |
- * | ------------------------------------------------------------------------- |
- * -----------------------------------------------------------------------------</pre>
- *
- * @see {@link ManyToOneMapping}
- * @see {@link BaseJpaUiFactory} - The factory creating this pane
- * @see {@link TargetEntityComposite}
- * @see {@link ManyToOneJoiningStrategyPane}
- * @see {@link FetchTypeComposite}
- * @see {@link OptionalComposite}
- * @see {@link CascadeComposite}
- *
- * @version 2.2
- * @since 2.2
- */
-public class EclipseLink1_1OrmManyToOneMappingComposite extends EclipseLinkManyToOneMappingComposite
-{
-	/**
-	 * Creates a new <code>EclipseLink1_1ManyToOneMappingComposite</code>.
-	 *
-	 * @param subjectHolder The holder of the subject <code>ManyToOneMapping</code>
-	 * @param parent The parent container
-	 * @param widgetFactory The factory used to create various common widgets
-	 */
-	public EclipseLink1_1OrmManyToOneMappingComposite(PropertyValueModel<? extends ManyToOneMapping> subjectHolder,
-	                                 Composite parent,
-	                                 WidgetFactory widgetFactory) {
-
-		super(subjectHolder, parent, widgetFactory);
-	}
-
-	@Override
-	protected void initializeLayout(Composite container) {
-		int groupBoxMargin = getGroupBoxMargin();
-		
-		new TargetEntityComposite(this, addPane(container, groupBoxMargin));
-		new ManyToOneJoiningStrategyPane(this, buildJoiningHolder(), container);
-		new AccessTypeComposite(this, buildAccessHolderHolder(), addPane(container, groupBoxMargin));
-		new FetchTypeComposite(this, addPane(container, groupBoxMargin));		
-		new JoinFetchComposite(this, buildJoinFetchableHolder(), addPane(container, groupBoxMargin));
-		new OptionalComposite(this, addPane(container, groupBoxMargin));
-		new CascadeComposite(this, buildCascadeHolder(), addSubPane(container, 5));
-	}
-	
-	protected PropertyValueModel<AccessHolder> buildAccessHolderHolder() {
-		return new PropertyAspectAdapter<ManyToOneMapping, AccessHolder>(getSubjectHolder()) {
-			@Override
-			protected AccessHolder buildValue_() {
-				return this.subject.getPersistentAttribute();
-			}
-		};
-	}
-
-}
diff --git a/jpa/plugins/org.eclipse.jpt.eclipselink.ui/src/org/eclipse/jpt/eclipselink/ui/internal/orm/details/EclipseLink1_1OrmManyToOneMappingUiProvider.java b/jpa/plugins/org.eclipse.jpt.eclipselink.ui/src/org/eclipse/jpt/eclipselink/ui/internal/orm/details/EclipseLink1_1OrmManyToOneMappingUiProvider.java
deleted file mode 100644
index 8ca7739..0000000
--- a/jpa/plugins/org.eclipse.jpt.eclipselink.ui/src/org/eclipse/jpt/eclipselink/ui/internal/orm/details/EclipseLink1_1OrmManyToOneMappingUiProvider.java
+++ /dev/null
@@ -1,56 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- *
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.eclipselink.ui.internal.orm.details;
-
-import org.eclipse.core.runtime.content.IContentType;
-import org.eclipse.jpt.eclipselink.core.internal.JptEclipseLinkCorePlugin;
-import org.eclipse.jpt.eclipselink.core.internal.context.orm.EclipseLinkOrmManyToOneMapping;
-import org.eclipse.jpt.ui.JpaUiFactory;
-import org.eclipse.jpt.ui.WidgetFactory;
-import org.eclipse.jpt.ui.details.AttributeMappingUiProvider;
-import org.eclipse.jpt.ui.details.JpaComposite;
-import org.eclipse.jpt.ui.internal.details.AbstractManyToOneMappingUiProvider;
-import org.eclipse.jpt.utility.model.value.PropertyValueModel;
-import org.eclipse.swt.widgets.Composite;
-
-public class EclipseLink1_1OrmManyToOneMappingUiProvider
-	extends AbstractManyToOneMappingUiProvider<EclipseLinkOrmManyToOneMapping>
-{
-	// singleton
-	private static final EclipseLink1_1OrmManyToOneMappingUiProvider INSTANCE = 
-		new EclipseLink1_1OrmManyToOneMappingUiProvider();
-	
-	/**
-	 * Return the singleton.
-	 */
-	public static AttributeMappingUiProvider<EclipseLinkOrmManyToOneMapping> instance() {
-		return INSTANCE;
-	}
-	
-	
-	/**
-	 * Ensure single instance.
-	 */
-	private EclipseLink1_1OrmManyToOneMappingUiProvider() {
-		super();
-	}
-	
-	public IContentType getContentType() {
-		return JptEclipseLinkCorePlugin.ECLIPSELINK1_1_ORM_XML_CONTENT_TYPE;
-	}	
-	
-	public JpaComposite buildAttributeMappingComposite(
-			JpaUiFactory factory,
-			PropertyValueModel<EclipseLinkOrmManyToOneMapping> subjectHolder,
-			Composite parent,
-			WidgetFactory widgetFactory) {
-		return new EclipseLink1_1OrmManyToOneMappingComposite(subjectHolder, parent, widgetFactory);
-	}
-}
diff --git a/jpa/plugins/org.eclipse.jpt.eclipselink.ui/src/org/eclipse/jpt/eclipselink/ui/internal/orm/details/EclipseLink1_1OrmMappedSuperclassUiProvider.java b/jpa/plugins/org.eclipse.jpt.eclipselink.ui/src/org/eclipse/jpt/eclipselink/ui/internal/orm/details/EclipseLink1_1OrmMappedSuperclassUiProvider.java
deleted file mode 100644
index 1150cc8..0000000
--- a/jpa/plugins/org.eclipse.jpt.eclipselink.ui/src/org/eclipse/jpt/eclipselink/ui/internal/orm/details/EclipseLink1_1OrmMappedSuperclassUiProvider.java
+++ /dev/null
@@ -1,53 +0,0 @@
-/*******************************************************************************
- *  Copyright (c) 2009  Oracle. 
- *  All rights reserved.  This program and the accompanying materials are 
- *  made available under the terms of the Eclipse Public License v1.0 which 
- *  accompanies this distribution, and is available at 
- *  http://www.eclipse.org/legal/epl-v10.html
- *  
- *  Contributors: 
- *  	Oracle - initial API and implementation
- *******************************************************************************/
-package org.eclipse.jpt.eclipselink.ui.internal.orm.details;
-
-import org.eclipse.core.runtime.content.IContentType;
-import org.eclipse.jpt.eclipselink.core.internal.JptEclipseLinkCorePlugin;
-import org.eclipse.jpt.eclipselink.core.internal.context.orm.EclipseLinkOrmMappedSuperclass;
-import org.eclipse.jpt.ui.JpaUiFactory;
-import org.eclipse.jpt.ui.WidgetFactory;
-import org.eclipse.jpt.ui.details.JpaComposite;
-import org.eclipse.jpt.ui.details.TypeMappingUiProvider;
-import org.eclipse.jpt.ui.internal.details.AbstractMappedSuperclassUiProvider;
-import org.eclipse.jpt.utility.model.value.PropertyValueModel;
-import org.eclipse.swt.widgets.Composite;
-
-public class EclipseLink1_1OrmMappedSuperclassUiProvider 
-	extends AbstractMappedSuperclassUiProvider<EclipseLinkOrmMappedSuperclass>
-{
-	// singleton
-	private static final EclipseLink1_1OrmMappedSuperclassUiProvider INSTANCE = 
-		new EclipseLink1_1OrmMappedSuperclassUiProvider();
-	
-	/**
-	 * Return the singleton.
-	 */
-	public static TypeMappingUiProvider<EclipseLinkOrmMappedSuperclass> instance() {
-		return INSTANCE;
-	}
-	
-	
-	/**
-	 * Ensure single instance.
-	 */
-	private EclipseLink1_1OrmMappedSuperclassUiProvider() {
-		super();
-	}
-	
-	public IContentType getContentType() {
-		return JptEclipseLinkCorePlugin.ECLIPSELINK1_1_ORM_XML_CONTENT_TYPE;
-	}
-
-	public JpaComposite buildPersistentTypeMappingComposite(JpaUiFactory factory, PropertyValueModel<EclipseLinkOrmMappedSuperclass> subjectHolder, Composite parent, WidgetFactory widgetFactory) {
-		return new EclipseLinkOrmMappedSuperclassComposite(subjectHolder, parent, widgetFactory);
-	}
-}
diff --git a/jpa/plugins/org.eclipse.jpt.eclipselink.ui/src/org/eclipse/jpt/eclipselink/ui/internal/orm/details/EclipseLink1_1OrmOneToManyMappingComposite.java b/jpa/plugins/org.eclipse.jpt.eclipselink.ui/src/org/eclipse/jpt/eclipselink/ui/internal/orm/details/EclipseLink1_1OrmOneToManyMappingComposite.java
deleted file mode 100644
index 417c21b..0000000
--- a/jpa/plugins/org.eclipse.jpt.eclipselink.ui/src/org/eclipse/jpt/eclipselink/ui/internal/orm/details/EclipseLink1_1OrmOneToManyMappingComposite.java
+++ /dev/null
@@ -1,61 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- *
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.eclipselink.ui.internal.orm.details;
-
-import org.eclipse.jpt.core.context.AccessHolder;
-import org.eclipse.jpt.core.context.OneToManyMapping;
-import org.eclipse.jpt.eclipselink.core.context.EclipseLinkOneToManyMapping;
-import org.eclipse.jpt.eclipselink.ui.internal.mappings.details.EclipseLinkOneToManyJoiningStrategyPane;
-import org.eclipse.jpt.eclipselink.ui.internal.mappings.details.EclipseLinkOneToManyMappingComposite;
-import org.eclipse.jpt.eclipselink.ui.internal.mappings.details.JoinFetchComposite;
-import org.eclipse.jpt.eclipselink.ui.internal.mappings.details.PrivateOwnedComposite;
-import org.eclipse.jpt.ui.WidgetFactory;
-import org.eclipse.jpt.ui.internal.details.AccessTypeComposite;
-import org.eclipse.jpt.ui.internal.mappings.details.CascadeComposite;
-import org.eclipse.jpt.ui.internal.mappings.details.FetchTypeComposite;
-import org.eclipse.jpt.ui.internal.mappings.details.OrderingComposite;
-import org.eclipse.jpt.ui.internal.mappings.details.TargetEntityComposite;
-import org.eclipse.jpt.utility.internal.model.value.PropertyAspectAdapter;
-import org.eclipse.jpt.utility.model.value.PropertyValueModel;
-import org.eclipse.swt.widgets.Composite;
-
-
-public class EclipseLink1_1OrmOneToManyMappingComposite extends EclipseLinkOneToManyMappingComposite
-{
-	public EclipseLink1_1OrmOneToManyMappingComposite(
-			PropertyValueModel<? extends EclipseLinkOneToManyMapping> subjectHolder,
-			Composite parent,
-			WidgetFactory widgetFactory) {
-		super(subjectHolder, parent, widgetFactory);
-	}
-	
-	@Override
-	protected void initializeLayout(Composite container) {
-		int groupBoxMargin = getGroupBoxMargin();
-		
-		new TargetEntityComposite(this, addPane(container, groupBoxMargin));
-		new EclipseLinkOneToManyJoiningStrategyPane(this, buildJoiningHolder(), container);
-		new AccessTypeComposite(this, buildAccessHolderHolder(), addPane(container, groupBoxMargin));
-		new FetchTypeComposite(this, addPane(container, groupBoxMargin));
-		new JoinFetchComposite(this, buildJoinFetchableHolder(), addPane(container, groupBoxMargin));
-		new PrivateOwnedComposite(this, buildPrivateOwnableHolder(), addPane(container, groupBoxMargin));
-		new CascadeComposite(this, buildCascadeHolder(), addSubPane(container, 5));
-		new OrderingComposite(this, container);
-	}
-	
-	protected PropertyValueModel<AccessHolder> buildAccessHolderHolder() {
-		return new PropertyAspectAdapter<OneToManyMapping, AccessHolder>(getSubjectHolder()) {
-			@Override
-			protected AccessHolder buildValue_() {
-				return this.subject.getPersistentAttribute();
-			}
-		};
-	}
-}
\ No newline at end of file
diff --git a/jpa/plugins/org.eclipse.jpt.eclipselink.ui/src/org/eclipse/jpt/eclipselink/ui/internal/orm/details/EclipseLink1_1OrmOneToManyMappingUiProvider.java b/jpa/plugins/org.eclipse.jpt.eclipselink.ui/src/org/eclipse/jpt/eclipselink/ui/internal/orm/details/EclipseLink1_1OrmOneToManyMappingUiProvider.java
deleted file mode 100644
index 88cfed7..0000000
--- a/jpa/plugins/org.eclipse.jpt.eclipselink.ui/src/org/eclipse/jpt/eclipselink/ui/internal/orm/details/EclipseLink1_1OrmOneToManyMappingUiProvider.java
+++ /dev/null
@@ -1,56 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- *
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.eclipselink.ui.internal.orm.details;
-
-import org.eclipse.core.runtime.content.IContentType;
-import org.eclipse.jpt.eclipselink.core.internal.JptEclipseLinkCorePlugin;
-import org.eclipse.jpt.eclipselink.core.internal.context.orm.EclipseLinkOrmOneToManyMapping;
-import org.eclipse.jpt.ui.JpaUiFactory;
-import org.eclipse.jpt.ui.WidgetFactory;
-import org.eclipse.jpt.ui.details.AttributeMappingUiProvider;
-import org.eclipse.jpt.ui.details.JpaComposite;
-import org.eclipse.jpt.ui.internal.details.AbstractOneToManyMappingUiProvider;
-import org.eclipse.jpt.utility.model.value.PropertyValueModel;
-import org.eclipse.swt.widgets.Composite;
-
-public class EclipseLink1_1OrmOneToManyMappingUiProvider
-	extends AbstractOneToManyMappingUiProvider<EclipseLinkOrmOneToManyMapping>
-{
-	// singleton
-	private static final EclipseLink1_1OrmOneToManyMappingUiProvider INSTANCE = 
-		new EclipseLink1_1OrmOneToManyMappingUiProvider();
-	
-	/**
-	 * Return the singleton.
-	 */
-	public static AttributeMappingUiProvider<EclipseLinkOrmOneToManyMapping> instance() {
-		return INSTANCE;
-	}
-	
-	
-	/**
-	 * Ensure single instance.
-	 */
-	private EclipseLink1_1OrmOneToManyMappingUiProvider() {
-		super();
-	}
-	
-	public IContentType getContentType() {
-		return JptEclipseLinkCorePlugin.ECLIPSELINK1_1_ORM_XML_CONTENT_TYPE;
-	}	
-	
-	public JpaComposite buildAttributeMappingComposite(
-			JpaUiFactory factory,
-			PropertyValueModel<EclipseLinkOrmOneToManyMapping> subjectHolder,
-			Composite parent,
-			WidgetFactory widgetFactory) {
-		return new EclipseLink1_1OrmOneToManyMappingComposite(subjectHolder, parent, widgetFactory);
-	}
-}
diff --git a/jpa/plugins/org.eclipse.jpt.eclipselink.ui/src/org/eclipse/jpt/eclipselink/ui/internal/orm/details/EclipseLink1_1OrmOneToOneMappingComposite.java b/jpa/plugins/org.eclipse.jpt.eclipselink.ui/src/org/eclipse/jpt/eclipselink/ui/internal/orm/details/EclipseLink1_1OrmOneToOneMappingComposite.java
deleted file mode 100644
index 1b4eded..0000000
--- a/jpa/plugins/org.eclipse.jpt.eclipselink.ui/src/org/eclipse/jpt/eclipselink/ui/internal/orm/details/EclipseLink1_1OrmOneToOneMappingComposite.java
+++ /dev/null
@@ -1,114 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- *
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.eclipselink.ui.internal.orm.details;
-
-import org.eclipse.jpt.core.context.AccessHolder;
-import org.eclipse.jpt.core.context.OneToOneMapping;
-import org.eclipse.jpt.eclipselink.ui.internal.mappings.details.EclipseLinkOneToOneMappingComposite;
-import org.eclipse.jpt.eclipselink.ui.internal.mappings.details.JoinFetchComposite;
-import org.eclipse.jpt.eclipselink.ui.internal.mappings.details.PrivateOwnedComposite;
-import org.eclipse.jpt.ui.WidgetFactory;
-import org.eclipse.jpt.ui.internal.details.AccessTypeComposite;
-import org.eclipse.jpt.ui.internal.mappings.details.CascadeComposite;
-import org.eclipse.jpt.ui.internal.mappings.details.FetchTypeComposite;
-import org.eclipse.jpt.ui.internal.mappings.details.OneToOneJoiningStrategyPane;
-import org.eclipse.jpt.ui.internal.mappings.details.OptionalComposite;
-import org.eclipse.jpt.ui.internal.mappings.details.TargetEntityComposite;
-import org.eclipse.jpt.utility.internal.model.value.PropertyAspectAdapter;
-import org.eclipse.jpt.utility.model.value.PropertyValueModel;
-import org.eclipse.swt.widgets.Composite;
-
-/**
- * Here the layout of this pane:
- * <pre>
- * -----------------------------------------------------------------------------
- * | ------------------------------------------------------------------------- |
- * | |                                                                       | |
- * | | TargetEntityComposite                                                 | |
- * | |                                                                       | |
- * | ------------------------------------------------------------------------- |
- * | ------------------------------------------------------------------------- |
- * | |                                                                       | |
- * | | FetchTypeComposite                                                    | |
- * | |                                                                       | |
- * | ------------------------------------------------------------------------- |
- * | ------------------------------------------------------------------------- |
- * | |                                                                       | |
- * | | MappedByPane                                                     | |
- * | |                                                                       | |
- * | ------------------------------------------------------------------------- |
- * | ------------------------------------------------------------------------- |
- * | |                                                                       | |
- * | | OptionalComposite                                                     | |
- * | |                                                                       | |
- * | ------------------------------------------------------------------------- |
- * | ------------------------------------------------------------------------- |
- * | |                                                                       | |
- * | | CascadeComposite                                                      | |
- * | |                                                                       | |
- * | ------------------------------------------------------------------------- |
- * | ------------------------------------------------------------------------- |
- * | |                                                                       | |
- * | | JoinColumnComposite                                                   | |
- * | |                                                                       | |
- * | ------------------------------------------------------------------------- |
- * -----------------------------------------------------------------------------</pre>
- *
- * @see OneToOneMapping
- * @see BaseJpaUiFactory - The factory creating this pane
- * @see CascadeComposite
- * @see FetchTypeComposite
- * @see JoinColumnComposite
- * @see MappedByPane
- * @see OptionalComposite
- * @see TargetEntityComposite
- *
- * @version 2.2
- * @since 2.2
- */
-public class EclipseLink1_1OrmOneToOneMappingComposite extends EclipseLinkOneToOneMappingComposite
-{
-	/**
-	 * Creates a new <code>Eclipselink1_1OneToOneMappingComposite</code>.
-	 *
-	 * @param subjectHolder The holder of the subject <code>IOneToOneMapping</code>
-	 * @param parent The parent container
-	 * @param widgetFactory The factory used to create various common widgets
-	 */
-	public EclipseLink1_1OrmOneToOneMappingComposite(PropertyValueModel<? extends OneToOneMapping> subjectHolder,
-	                                Composite parent,
-	                                WidgetFactory widgetFactory) {
-
-		super(subjectHolder, parent, widgetFactory);
-	}
-	
-	@Override
-	protected void initializeLayout(Composite container) {
-		int groupBoxMargin = getGroupBoxMargin();
-
-		new TargetEntityComposite(this, addPane(container, groupBoxMargin));
-		new AccessTypeComposite(this, buildAccessHolderHolder(), addPane(container, groupBoxMargin));
-		new OneToOneJoiningStrategyPane(this, buildJoiningHolder(), container);
-		new FetchTypeComposite(this, addPane(container, groupBoxMargin));
-		new JoinFetchComposite(this, buildJoinFetchableHolder(), addPane(container, groupBoxMargin));
-		new OptionalComposite(this, addPane(container, groupBoxMargin));
-		new PrivateOwnedComposite(this, buildPrivateOwnableHolder(), addPane(container, groupBoxMargin));
-		new CascadeComposite(this, buildCascadeHolder(), addSubPane(container, 5));
-	}
-		
-	protected PropertyValueModel<AccessHolder> buildAccessHolderHolder() {
-		return new PropertyAspectAdapter<OneToOneMapping, AccessHolder>(getSubjectHolder()) {
-			@Override
-			protected AccessHolder buildValue_() {
-				return this.subject.getPersistentAttribute();
-			}
-		};
-	}
-}
\ No newline at end of file
diff --git a/jpa/plugins/org.eclipse.jpt.eclipselink.ui/src/org/eclipse/jpt/eclipselink/ui/internal/orm/details/EclipseLink1_1OrmOneToOneMappingUiProvider.java b/jpa/plugins/org.eclipse.jpt.eclipselink.ui/src/org/eclipse/jpt/eclipselink/ui/internal/orm/details/EclipseLink1_1OrmOneToOneMappingUiProvider.java
deleted file mode 100644
index 010cb66..0000000
--- a/jpa/plugins/org.eclipse.jpt.eclipselink.ui/src/org/eclipse/jpt/eclipselink/ui/internal/orm/details/EclipseLink1_1OrmOneToOneMappingUiProvider.java
+++ /dev/null
@@ -1,56 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- *
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.eclipselink.ui.internal.orm.details;
-
-import org.eclipse.core.runtime.content.IContentType;
-import org.eclipse.jpt.eclipselink.core.internal.JptEclipseLinkCorePlugin;
-import org.eclipse.jpt.eclipselink.core.internal.context.orm.EclipseLinkOrmOneToOneMapping;
-import org.eclipse.jpt.ui.JpaUiFactory;
-import org.eclipse.jpt.ui.WidgetFactory;
-import org.eclipse.jpt.ui.details.AttributeMappingUiProvider;
-import org.eclipse.jpt.ui.details.JpaComposite;
-import org.eclipse.jpt.ui.internal.details.AbstractOneToOneMappingUiProvider;
-import org.eclipse.jpt.utility.model.value.PropertyValueModel;
-import org.eclipse.swt.widgets.Composite;
-
-public class EclipseLink1_1OrmOneToOneMappingUiProvider
-	extends AbstractOneToOneMappingUiProvider<EclipseLinkOrmOneToOneMapping>
-{
-	// singleton
-	private static final EclipseLink1_1OrmOneToOneMappingUiProvider INSTANCE = 
-		new EclipseLink1_1OrmOneToOneMappingUiProvider();
-	
-	/**
-	 * Return the singleton.
-	 */
-	public static AttributeMappingUiProvider<EclipseLinkOrmOneToOneMapping> instance() {
-		return INSTANCE;
-	}
-	
-	
-	/**
-	 * Ensure single instance.
-	 */
-	private EclipseLink1_1OrmOneToOneMappingUiProvider() {
-		super();
-	}
-	
-	public IContentType getContentType() {
-		return JptEclipseLinkCorePlugin.ECLIPSELINK1_1_ORM_XML_CONTENT_TYPE;
-	}	
-	
-	public JpaComposite buildAttributeMappingComposite(
-			JpaUiFactory factory,
-			PropertyValueModel<EclipseLinkOrmOneToOneMapping> subjectHolder,
-			Composite parent,
-			WidgetFactory widgetFactory) {
-		return new EclipseLink1_1OrmOneToOneMappingComposite(subjectHolder, parent, widgetFactory);
-	}
-}
diff --git a/jpa/plugins/org.eclipse.jpt.eclipselink.ui/src/org/eclipse/jpt/eclipselink/ui/internal/orm/details/EclipseLink1_1OrmTransformationMappingUiProvider.java b/jpa/plugins/org.eclipse.jpt.eclipselink.ui/src/org/eclipse/jpt/eclipselink/ui/internal/orm/details/EclipseLink1_1OrmTransformationMappingUiProvider.java
deleted file mode 100644
index 9d776d8..0000000
--- a/jpa/plugins/org.eclipse.jpt.eclipselink.ui/src/org/eclipse/jpt/eclipselink/ui/internal/orm/details/EclipseLink1_1OrmTransformationMappingUiProvider.java
+++ /dev/null
@@ -1,57 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- *
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.eclipselink.ui.internal.orm.details;
-
-import org.eclipse.core.runtime.content.IContentType;
-import org.eclipse.jpt.eclipselink.core.context.TransformationMapping;
-import org.eclipse.jpt.eclipselink.core.internal.JptEclipseLinkCorePlugin;
-import org.eclipse.jpt.eclipselink.ui.internal.mappings.details.EclipseLinkTransformationMappingUiProvider;
-import org.eclipse.jpt.eclipselink.ui.internal.mappings.details.TransformationMappingComposite;
-import org.eclipse.jpt.ui.JpaUiFactory;
-import org.eclipse.jpt.ui.WidgetFactory;
-import org.eclipse.jpt.ui.details.AttributeMappingUiProvider;
-import org.eclipse.jpt.ui.details.JpaComposite;
-import org.eclipse.jpt.utility.model.value.PropertyValueModel;
-import org.eclipse.swt.widgets.Composite;
-
-public class EclipseLink1_1OrmTransformationMappingUiProvider extends EclipseLinkTransformationMappingUiProvider<TransformationMapping>
-{
-	// singleton
-	private static final EclipseLink1_1OrmTransformationMappingUiProvider INSTANCE = 
-		new EclipseLink1_1OrmTransformationMappingUiProvider();
-	
-	/**
-	 * Return the singleton.
-	 */
-	public static AttributeMappingUiProvider<TransformationMapping> instance() {
-		return INSTANCE;
-	}
-	
-	
-	/**
-	 * Ensure single instance.
-	 */
-	private EclipseLink1_1OrmTransformationMappingUiProvider() {
-		super();
-	}
-	
-	public IContentType getContentType() {
-		return JptEclipseLinkCorePlugin.ECLIPSELINK1_1_ORM_XML_CONTENT_TYPE;
-	}
-	
-	public JpaComposite buildAttributeMappingComposite(
-		JpaUiFactory factory,
-		PropertyValueModel<TransformationMapping> subjectHolder,
-		Composite parent,
-		WidgetFactory widgetFactory) {
-		
-		return new TransformationMappingComposite(subjectHolder, parent, widgetFactory);
-	}
-}
diff --git a/jpa/plugins/org.eclipse.jpt.eclipselink.ui/src/org/eclipse/jpt/eclipselink/ui/internal/orm/details/EclipseLink1_1OrmTransientMappingUiProvider.java b/jpa/plugins/org.eclipse.jpt.eclipselink.ui/src/org/eclipse/jpt/eclipselink/ui/internal/orm/details/EclipseLink1_1OrmTransientMappingUiProvider.java
deleted file mode 100644
index 66273aa..0000000
--- a/jpa/plugins/org.eclipse.jpt.eclipselink.ui/src/org/eclipse/jpt/eclipselink/ui/internal/orm/details/EclipseLink1_1OrmTransientMappingUiProvider.java
+++ /dev/null
@@ -1,57 +0,0 @@
-/*******************************************************************************
- *  Copyright (c) 2009  Oracle. 
- *  All rights reserved.  This program and the accompanying materials are 
- *  made available under the terms of the Eclipse Public License v1.0 which 
- *  accompanies this distribution, and is available at 
- *  http://www.eclipse.org/legal/epl-v10.html
- *  
- *  Contributors: 
- *  	Oracle - initial API and implementation
- *******************************************************************************/
-package org.eclipse.jpt.eclipselink.ui.internal.orm.details;
-
-import org.eclipse.core.runtime.content.IContentType;
-import org.eclipse.jpt.core.context.orm.OrmTransientMapping;
-import org.eclipse.jpt.eclipselink.core.internal.JptEclipseLinkCorePlugin;
-import org.eclipse.jpt.ui.JpaUiFactory;
-import org.eclipse.jpt.ui.WidgetFactory;
-import org.eclipse.jpt.ui.details.AttributeMappingUiProvider;
-import org.eclipse.jpt.ui.details.JpaComposite;
-import org.eclipse.jpt.ui.internal.details.AbstractTransientMappingUiProvider;
-import org.eclipse.jpt.utility.model.value.PropertyValueModel;
-import org.eclipse.swt.widgets.Composite;
-
-public class EclipseLink1_1OrmTransientMappingUiProvider
-	extends AbstractTransientMappingUiProvider<OrmTransientMapping>
-{
-	// singleton
-	private static final EclipseLink1_1OrmTransientMappingUiProvider INSTANCE = 
-		new EclipseLink1_1OrmTransientMappingUiProvider();
-	
-	/**
-	 * Return the singleton.
-	 */
-	public static AttributeMappingUiProvider<OrmTransientMapping> instance() {
-		return INSTANCE;
-	}
-	
-	
-	/**
-	 * Ensure single instance.
-	 */
-	private EclipseLink1_1OrmTransientMappingUiProvider() {
-		super();
-	}
-	
-	public IContentType getContentType() {
-		return JptEclipseLinkCorePlugin.ECLIPSELINK1_1_ORM_XML_CONTENT_TYPE;
-	}	
-	
-	public JpaComposite buildAttributeMappingComposite(
-			JpaUiFactory factory,
-			PropertyValueModel<OrmTransientMapping> subjectHolder,
-			Composite parent,
-			WidgetFactory widgetFactory) {
-		return factory.createOrmTransientMappingComposite(subjectHolder, parent, widgetFactory);
-	}
-}
diff --git a/jpa/plugins/org.eclipse.jpt.eclipselink.ui/src/org/eclipse/jpt/eclipselink/ui/internal/orm/details/EclipseLink1_1OrmVariableOneToOneMappingUiProvider.java b/jpa/plugins/org.eclipse.jpt.eclipselink.ui/src/org/eclipse/jpt/eclipselink/ui/internal/orm/details/EclipseLink1_1OrmVariableOneToOneMappingUiProvider.java
deleted file mode 100644
index 4fba29d..0000000
--- a/jpa/plugins/org.eclipse.jpt.eclipselink.ui/src/org/eclipse/jpt/eclipselink/ui/internal/orm/details/EclipseLink1_1OrmVariableOneToOneMappingUiProvider.java
+++ /dev/null
@@ -1,56 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- *
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.eclipselink.ui.internal.orm.details;
-
-import org.eclipse.core.runtime.content.IContentType;
-import org.eclipse.jpt.eclipselink.core.context.VariableOneToOneMapping;
-import org.eclipse.jpt.eclipselink.core.internal.JptEclipseLinkCorePlugin;
-import org.eclipse.jpt.eclipselink.ui.internal.mappings.details.EclipseLinkVariableOneToOneMappingUiProvider;
-import org.eclipse.jpt.eclipselink.ui.internal.mappings.details.VariableOneToOneMappingComposite;
-import org.eclipse.jpt.ui.JpaUiFactory;
-import org.eclipse.jpt.ui.WidgetFactory;
-import org.eclipse.jpt.ui.details.AttributeMappingUiProvider;
-import org.eclipse.jpt.ui.details.JpaComposite;
-import org.eclipse.jpt.utility.model.value.PropertyValueModel;
-import org.eclipse.swt.widgets.Composite;
-
-public class EclipseLink1_1OrmVariableOneToOneMappingUiProvider extends EclipseLinkVariableOneToOneMappingUiProvider<VariableOneToOneMapping>
-{
-	// singleton
-	private static final EclipseLink1_1OrmVariableOneToOneMappingUiProvider INSTANCE = 
-		new EclipseLink1_1OrmVariableOneToOneMappingUiProvider();
-	
-	/**
-	 * Return the singleton.
-	 */
-	public static AttributeMappingUiProvider<VariableOneToOneMapping> instance() {
-		return INSTANCE;
-	}
-	
-	
-	/**
-	 * Ensure single instance.
-	 */
-	private EclipseLink1_1OrmVariableOneToOneMappingUiProvider() {
-		super();
-	}
-	
-	public IContentType getContentType() {
-		return JptEclipseLinkCorePlugin.ECLIPSELINK1_1_ORM_XML_CONTENT_TYPE;
-	}
-	
-	public JpaComposite buildAttributeMappingComposite(
-			JpaUiFactory factory,
-			PropertyValueModel<VariableOneToOneMapping> subjectHolder,
-			Composite parent,
-			WidgetFactory widgetFactory) {
-		return new VariableOneToOneMappingComposite(subjectHolder, parent, widgetFactory);
-	}
-}
diff --git a/jpa/plugins/org.eclipse.jpt.eclipselink.ui/src/org/eclipse/jpt/eclipselink/ui/internal/orm/details/EclipseLink1_1OrmVersionMappingComposite.java b/jpa/plugins/org.eclipse.jpt.eclipselink.ui/src/org/eclipse/jpt/eclipselink/ui/internal/orm/details/EclipseLink1_1OrmVersionMappingComposite.java
deleted file mode 100644
index 4e67b3e..0000000
--- a/jpa/plugins/org.eclipse.jpt.eclipselink.ui/src/org/eclipse/jpt/eclipselink/ui/internal/orm/details/EclipseLink1_1OrmVersionMappingComposite.java
+++ /dev/null
@@ -1,61 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- *
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.eclipselink.ui.internal.orm.details;
-
-import org.eclipse.jpt.core.context.AccessHolder;
-import org.eclipse.jpt.core.context.VersionMapping;
-import org.eclipse.jpt.eclipselink.ui.internal.mappings.details.EclipseLinkVersionMappingComposite;
-import org.eclipse.jpt.eclipselink.ui.internal.mappings.details.MutableComposite;
-import org.eclipse.jpt.ui.WidgetFactory;
-import org.eclipse.jpt.ui.internal.details.AccessTypeComposite;
-import org.eclipse.jpt.ui.internal.mappings.details.ColumnComposite;
-import org.eclipse.jpt.utility.internal.model.value.PropertyAspectAdapter;
-import org.eclipse.jpt.utility.model.value.PropertyValueModel;
-import org.eclipse.swt.widgets.Composite;
-
-public class EclipseLink1_1OrmVersionMappingComposite extends EclipseLinkVersionMappingComposite
-{
-	/**
-	 * Creates a new <code>EclipseLinkOrmVersionMappingComposite</code>.
-	 *
-	 * @param subjectHolder The holder of the subject <code>VersionMapping</code>
-	 * @param parent The parent container
-	 * @param widgetFactory The factory used to create various common widgets
-	 */
-	public EclipseLink1_1OrmVersionMappingComposite(PropertyValueModel<? extends VersionMapping> subjectHolder,
-	                               Composite parent,
-	                               WidgetFactory widgetFactory) {
-
-		super(subjectHolder, parent, widgetFactory);
-	}
-
-	@Override
-	protected void initializeGeneralPane(Composite container) {
-		int groupBoxMargin = getGroupBoxMargin();
-		
-		// Column widgets
-		new ColumnComposite(this, buildColumnHolder(), container);
-		
-		// Align the widgets under the ColumnComposite
-		container = addSubPane(container, 0, groupBoxMargin, 0, groupBoxMargin);
-
-		new AccessTypeComposite(this, buildAccessHolderHolder(), container);
-		new MutableComposite(this, buildMutableHolder(), container);
-	}
-	
-	protected PropertyValueModel<AccessHolder> buildAccessHolderHolder() {
-		return new PropertyAspectAdapter<VersionMapping, AccessHolder>(getSubjectHolder()) {
-			@Override
-			protected AccessHolder buildValue_() {
-				return this.subject.getPersistentAttribute();
-			}
-		};
-	}
-}
\ No newline at end of file
diff --git a/jpa/plugins/org.eclipse.jpt.eclipselink.ui/src/org/eclipse/jpt/eclipselink/ui/internal/orm/details/EclipseLink1_1OrmVersionMappingUiProvider.java b/jpa/plugins/org.eclipse.jpt.eclipselink.ui/src/org/eclipse/jpt/eclipselink/ui/internal/orm/details/EclipseLink1_1OrmVersionMappingUiProvider.java
deleted file mode 100644
index 43cab79..0000000
--- a/jpa/plugins/org.eclipse.jpt.eclipselink.ui/src/org/eclipse/jpt/eclipselink/ui/internal/orm/details/EclipseLink1_1OrmVersionMappingUiProvider.java
+++ /dev/null
@@ -1,56 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- *
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.eclipselink.ui.internal.orm.details;
-
-import org.eclipse.core.runtime.content.IContentType;
-import org.eclipse.jpt.eclipselink.core.internal.JptEclipseLinkCorePlugin;
-import org.eclipse.jpt.eclipselink.core.internal.context.orm.EclipseLinkOrmVersionMapping;
-import org.eclipse.jpt.ui.JpaUiFactory;
-import org.eclipse.jpt.ui.WidgetFactory;
-import org.eclipse.jpt.ui.details.AttributeMappingUiProvider;
-import org.eclipse.jpt.ui.details.JpaComposite;
-import org.eclipse.jpt.ui.internal.details.AbstractVersionMappingUiProvider;
-import org.eclipse.jpt.utility.model.value.PropertyValueModel;
-import org.eclipse.swt.widgets.Composite;
-
-public class EclipseLink1_1OrmVersionMappingUiProvider
-	extends AbstractVersionMappingUiProvider<EclipseLinkOrmVersionMapping>
-{
-	// singleton
-	private static final EclipseLink1_1OrmVersionMappingUiProvider INSTANCE = 
-		new EclipseLink1_1OrmVersionMappingUiProvider();
-	
-	/**
-	 * Return the singleton.
-	 */
-	public static AttributeMappingUiProvider<EclipseLinkOrmVersionMapping> instance() {
-		return INSTANCE;
-	}
-	
-	
-	/**
-	 * Ensure single instance.
-	 */
-	private EclipseLink1_1OrmVersionMappingUiProvider() {
-		super();
-	}
-	
-	public IContentType getContentType() {
-		return JptEclipseLinkCorePlugin.ECLIPSELINK1_1_ORM_XML_CONTENT_TYPE;
-	}	
-	
-	public JpaComposite buildAttributeMappingComposite(
-			JpaUiFactory factory,
-			PropertyValueModel<EclipseLinkOrmVersionMapping> subjectHolder,
-			Composite parent,
-			WidgetFactory widgetFactory) {
-		return new EclipseLink1_1OrmVersionMappingComposite(subjectHolder, parent, widgetFactory);
-	}
-}
diff --git a/jpa/plugins/org.eclipse.jpt.eclipselink.ui/src/org/eclipse/jpt/eclipselink/ui/internal/orm/details/EclipseLinkConverterDialog.java b/jpa/plugins/org.eclipse.jpt.eclipselink.ui/src/org/eclipse/jpt/eclipselink/ui/internal/orm/details/EclipseLinkConverterDialog.java
deleted file mode 100644
index 080ed59..0000000
--- a/jpa/plugins/org.eclipse.jpt.eclipselink.ui/src/org/eclipse/jpt/eclipselink/ui/internal/orm/details/EclipseLinkConverterDialog.java
+++ /dev/null
@@ -1,195 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- *
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.eclipselink.ui.internal.orm.details;
-
-import java.util.ArrayList;
-import java.util.List;
-import org.eclipse.jpt.eclipselink.core.context.EclipseLinkConverter;
-import org.eclipse.jpt.eclipselink.ui.internal.mappings.EclipseLinkUiMappingsMessages;
-import org.eclipse.jpt.ui.internal.widgets.DialogPane;
-import org.eclipse.jpt.ui.internal.widgets.ValidatingDialog;
-import org.eclipse.jpt.utility.internal.StringConverter;
-import org.eclipse.jpt.utility.internal.model.value.PropertyAspectAdapter;
-import org.eclipse.jpt.utility.internal.model.value.StaticListValueModel;
-import org.eclipse.jpt.utility.model.value.ListValueModel;
-import org.eclipse.jpt.utility.model.value.WritablePropertyValueModel;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Shell;
-import org.eclipse.swt.widgets.Text;
-
-/**
- * Clients can use this dialog to prompt the user for SecondaryTable settings.
- * Use the following once the dialog is closed:
- *     @see #getSelectedTable()
- *     @see #getSelectedCatalog()
- *     @see #getSelectedSchema()
- * @version 2.1
- * @since 2.1
- */
-public class EclipseLinkConverterDialog extends ValidatingDialog<EclipseLinkConverterStateObject> {
-
-	
-	// ********** constructors **********
-
-	/**
-	 * Use this constructor to edit an existing conversion value
-	 */
-	public EclipseLinkConverterDialog(Shell parent) {
-		super(parent);
-	}
-
-	@Override
-	protected EclipseLinkConverterStateObject buildStateObject() {
-		return new EclipseLinkConverterStateObject();
-	}
-
-	// ********** open **********
-
-	@Override
-	protected void configureShell(Shell shell) {
-		super.configureShell(shell);
-		shell.setText(this.getTitle());
-	}
-
-	@Override
-	protected String getTitle() {
-		return EclipseLinkUiMappingsMessages.EclipseLinkConverterDialog_addConverter;
-	}
-
-	@Override
-	protected String getDescriptionTitle() {
-		return EclipseLinkUiMappingsMessages.EclipseLinkConverterDialog_addConverterDescriptionTitle;
-	}
-	
-	@Override
-	protected String getDescription() {
-		return EclipseLinkUiMappingsMessages.EclipseLinkConverterDialog_addConverterDescription;
-	}
-	
-	@Override
-	protected DialogPane<EclipseLinkConverterStateObject> buildLayout(Composite container) {
-		return new ConversionValueDialogPane(container);
-	}
-	
-	@Override
-	public void create() {
-		super.create();
-
-		ConversionValueDialogPane pane = (ConversionValueDialogPane) getPane();
-		pane.selectAll();
-
-		getButton(OK).setEnabled(false);
-	}
-
-
-	// ********** public API **********
-
-	/**
-	 * Return the data value set in the text widget.
-	 */
-	public String getName() {
-		return getSubject().getName();
-	}
-
-	/**
-	 * Return the object value set in the text widget.
-	 */
-	public String getConverterType() {
-		return getSubject().getConverterType();
-	}
-	
-	private class ConversionValueDialogPane extends DialogPane<EclipseLinkConverterStateObject> {
-
-		private Text nameText;
-
-		ConversionValueDialogPane(Composite parent) {
-			super(EclipseLinkConverterDialog.this.getSubjectHolder(), parent);
-		}
-
-		@Override
-		protected void initializeLayout(Composite container) {
-			this.nameText = addLabeledText(
-				container,
-				EclipseLinkUiMappingsMessages.EclipseLinkConverterDialog_name,
-				buildNameHolder()
-			);
-			
-			addLabeledCombo(
-				container, 
-				EclipseLinkUiMappingsMessages.EclipseLinkConverterDialog_converterType, 
-				buildConverterTypeListHolder(), 
-				buildConverterTypeHolder(), 
-				buildStringConverter(),
-				null);
-		}
-
-		protected ListValueModel<String> buildConverterTypeListHolder() {
-			List<String> converterTypes = new ArrayList<String>();
-			converterTypes.add(EclipseLinkConverter.CUSTOM_CONVERTER);
-			converterTypes.add(EclipseLinkConverter.OBJECT_TYPE_CONVERTER);
-			converterTypes.add(EclipseLinkConverter.STRUCT_CONVERTER);
-			converterTypes.add(EclipseLinkConverter.TYPE_CONVERTER);
-			
-			return new StaticListValueModel<String>(converterTypes);
-		}
-		
-		private StringConverter<String> buildStringConverter() {
-			return new StringConverter<String>() {
-				public String convertToString(String value) {
-					if (value == EclipseLinkConverter.CUSTOM_CONVERTER) {
-						return EclipseLinkUiMappingsMessages.ConvertersComposite_customConverter;
-					}
-					if (value == EclipseLinkConverter.OBJECT_TYPE_CONVERTER) {
-						return EclipseLinkUiMappingsMessages.ConvertersComposite_objectTypeConverter;
-					}
-					if (value == EclipseLinkConverter.STRUCT_CONVERTER) {
-						return EclipseLinkUiMappingsMessages.ConvertersComposite_structConverter;
-					}
-					if (value == EclipseLinkConverter.TYPE_CONVERTER) {
-						return EclipseLinkUiMappingsMessages.ConvertersComposite_typeConverter;
-					}
-					return value;
-				}
-			};
-		}
-		
-		private WritablePropertyValueModel<String> buildNameHolder() {
-			return new PropertyAspectAdapter<EclipseLinkConverterStateObject, String>(getSubjectHolder(), EclipseLinkConverterStateObject.NAME_PROPERTY) {
-				@Override
-				protected String buildValue_() {
-					return this.subject.getName();
-				}
-
-				@Override
-				protected void setValue_(String value) {
-					this.subject.setName(value);
-				}
-			};
-		}
-
-		private WritablePropertyValueModel<String> buildConverterTypeHolder() {
-			return new PropertyAspectAdapter<EclipseLinkConverterStateObject, String>(getSubjectHolder(), EclipseLinkConverterStateObject.CONVERTER_TYPE_PROPERTY) {
-				@Override
-				protected String buildValue_() {
-					return this.subject.getConverterType();
-				}
-
-				@Override
-				protected void setValue_(String value) {
-					this.subject.setConverterType(value);
-				}
-			};
-		}
-
-		void selectAll() {
-			this.nameText.selectAll();
-		}
-	}
-}
diff --git a/jpa/plugins/org.eclipse.jpt.eclipselink.ui/src/org/eclipse/jpt/eclipselink/ui/internal/orm/details/EclipseLinkConverterStateObject.java b/jpa/plugins/org.eclipse.jpt.eclipselink.ui/src/org/eclipse/jpt/eclipselink/ui/internal/orm/details/EclipseLinkConverterStateObject.java
deleted file mode 100644
index 06a2a5b..0000000
--- a/jpa/plugins/org.eclipse.jpt.eclipselink.ui/src/org/eclipse/jpt/eclipselink/ui/internal/orm/details/EclipseLinkConverterStateObject.java
+++ /dev/null
@@ -1,125 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- *
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.eclipselink.ui.internal.orm.details;
-
-import java.util.List;
-import org.eclipse.jpt.eclipselink.ui.internal.mappings.EclipseLinkUiMappingsMessages;
-import org.eclipse.jpt.utility.internal.StringTools;
-import org.eclipse.jpt.utility.internal.node.AbstractNode;
-import org.eclipse.jpt.utility.internal.node.Node;
-import org.eclipse.jpt.utility.internal.node.Problem;
-
-/**
- * This is the state object used by the <code>EclipseLinkConverterDialog</code>, which stores
- * the current name and validates it when it is modified.
- *
- * @see EclipseLinkConverterDialog
- *
- * @version 2.1
- * @since 2.1
- */
-final class EclipseLinkConverterStateObject extends AbstractNode
-{
-	/**
-	 * The initial name or <code>null</code>
-	 */
-	private String name;
-
-	/**
-	 * The initial converterType or <code>null</code>
-	 */
-	private String converterType;
-
-	/**
-	 * The <code>Validator</code> used to validate this state object.
-	 */
-	private Validator validator;
-
-	/**
-	 * Notifies a change in the data value property.
-	 */
-	static final String NAME_PROPERTY = "name"; //$NON-NLS-1$
-	
-	/**
-	 * Notifies a change in the object value property.
-	 */
-	static final String CONVERTER_TYPE_PROPERTY = "converterType"; //$NON-NLS-1$
-
-	/**
-	 * Creates a new <code>NewNameStateObject</code>.
-	 *
-	 * @param name The initial input or <code>null</code> if no initial value can
-	 * be specified
-	 * @param names The collection of names that can't be used or an empty
-	 * collection if none are available
-	 */
-	EclipseLinkConverterStateObject() {
-		super(null);
-
-	}
-
-	private void addNameProblemsTo(List<Problem> currentProblems) {
-		if (StringTools.stringIsEmpty(this.name)) {
-			currentProblems.add(buildProblem(EclipseLinkUiMappingsMessages.EclipseLinkConverterStateObject_nameMustBeSpecified));
-		}
-	}
-
-	private void addConverterTypeProblemsTo(List<Problem> currentProblems) {
-		if (StringTools.stringIsEmpty(this.converterType)) {
-			currentProblems.add(buildProblem(EclipseLinkUiMappingsMessages.EclipseLinkConverterStateObject_typeMustBeSpecified));
-		}
-	}
-
-	@Override
-	protected void addProblemsTo(List<Problem> currentProblems) {
-		super.addProblemsTo(currentProblems);
-		addNameProblemsTo(currentProblems);
-		addConverterTypeProblemsTo(currentProblems);
-	}
-
-	@Override
-	protected void checkParent(@SuppressWarnings("unused") Node parentNode) {
-		//no parent
-	}
-
-	public String displayString() {
-		return null;
-	}
-
-	String getName() {
-		return this.name;
-	}
-
-	String getConverterType() {
-		return this.converterType;
-	}
-
-	public void setName(String newName) {
-		String oldName = this.name;
-		this.name = newName;
-		firePropertyChanged(NAME_PROPERTY, oldName, newName);
-	}
-
-	public void setConverterType(String newConverterType) {
-		String oldConverterType = this.converterType;
-		this.converterType = newConverterType;
-		firePropertyChanged(CONVERTER_TYPE_PROPERTY, oldConverterType, newConverterType);
-	}
-
-	@Override
-	public void setValidator(Validator validator) {
-		this.validator = validator;
-	}
-
-	@Override
-	public Validator getValidator() {
-		return this.validator;
-	}
-}
diff --git a/jpa/plugins/org.eclipse.jpt.eclipselink.ui/src/org/eclipse/jpt/eclipselink/ui/internal/orm/details/EclipseLinkEntityMappingsDetailsProvider.java b/jpa/plugins/org.eclipse.jpt.eclipselink.ui/src/org/eclipse/jpt/eclipselink/ui/internal/orm/details/EclipseLinkEntityMappingsDetailsProvider.java
deleted file mode 100644
index 53a5011..0000000
--- a/jpa/plugins/org.eclipse.jpt.eclipselink.ui/src/org/eclipse/jpt/eclipselink/ui/internal/orm/details/EclipseLinkEntityMappingsDetailsProvider.java
+++ /dev/null
@@ -1,64 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- *
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.eclipselink.ui.internal.orm.details;
-
-import org.eclipse.core.runtime.content.IContentType;
-import org.eclipse.jpt.core.JpaStructureNode;
-import org.eclipse.jpt.core.context.orm.OrmStructureNodes;
-import org.eclipse.jpt.eclipselink.core.internal.JptEclipseLinkCorePlugin;
-import org.eclipse.jpt.ui.WidgetFactory;
-import org.eclipse.jpt.ui.details.JpaDetailsPage;
-import org.eclipse.jpt.ui.details.JpaDetailsProvider;
-import org.eclipse.swt.widgets.Composite;
-
-/**
- * This provider is responsible for creating the {@link JpaDetailsPage}
- * when the information comes from the XML file (either from the persistence
- * configuration or from the Mappings Descriptor).
- *
- * @version 2.2
- * @since 2.2
- */
-public class EclipseLinkEntityMappingsDetailsProvider
-	implements JpaDetailsProvider
-{
-	// singleton
-	private static final JpaDetailsProvider INSTANCE = new EclipseLinkEntityMappingsDetailsProvider();
-
-	/**
-	 * Return the singleton.
-	 */
-	public static JpaDetailsProvider instance() {
-		return INSTANCE;
-	}
-
-	/**
-	 * Ensure single instance.
-	 */
-	private EclipseLinkEntityMappingsDetailsProvider() {
-		super();
-	}
-	
-	public String getId() {
-		return OrmStructureNodes.ENTITY_MAPPINGS_ID;
-	}
-	
-	public IContentType getContentType() {
-		return JptEclipseLinkCorePlugin.ECLIPSELINK_ORM_XML_CONTENT_TYPE;
-	}
-	
-	public JpaDetailsPage<? extends JpaStructureNode> buildDetailsPage(
-		Composite parent,
-		WidgetFactory widgetFactory) {
-
-		return new EntityMappingsDetailsPage(parent, widgetFactory);
-	}
-
-}
diff --git a/jpa/plugins/org.eclipse.jpt.eclipselink.ui/src/org/eclipse/jpt/eclipselink/ui/internal/orm/details/EclipseLinkOrmBasicCollectionMappingUiProvider.java b/jpa/plugins/org.eclipse.jpt.eclipselink.ui/src/org/eclipse/jpt/eclipselink/ui/internal/orm/details/EclipseLinkOrmBasicCollectionMappingUiProvider.java
deleted file mode 100644
index da586ea..0000000
--- a/jpa/plugins/org.eclipse.jpt.eclipselink.ui/src/org/eclipse/jpt/eclipselink/ui/internal/orm/details/EclipseLinkOrmBasicCollectionMappingUiProvider.java
+++ /dev/null
@@ -1,56 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- *
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.eclipselink.ui.internal.orm.details;
-
-import org.eclipse.core.runtime.content.IContentType;
-import org.eclipse.jpt.eclipselink.core.context.BasicCollectionMapping;
-import org.eclipse.jpt.eclipselink.core.internal.JptEclipseLinkCorePlugin;
-import org.eclipse.jpt.eclipselink.ui.internal.mappings.details.BasicCollectionMappingComposite;
-import org.eclipse.jpt.eclipselink.ui.internal.mappings.details.EclipseLinkBasicCollectionMappingUiProvider;
-import org.eclipse.jpt.ui.JpaUiFactory;
-import org.eclipse.jpt.ui.WidgetFactory;
-import org.eclipse.jpt.ui.details.AttributeMappingUiProvider;
-import org.eclipse.jpt.ui.details.JpaComposite;
-import org.eclipse.jpt.utility.model.value.PropertyValueModel;
-import org.eclipse.swt.widgets.Composite;
-
-public class EclipseLinkOrmBasicCollectionMappingUiProvider extends EclipseLinkBasicCollectionMappingUiProvider<BasicCollectionMapping>
-{
-	// singleton
-	private static final EclipseLinkOrmBasicCollectionMappingUiProvider INSTANCE = 
-		new EclipseLinkOrmBasicCollectionMappingUiProvider();
-	
-	/**
-	 * Return the singleton.
-	 */
-	public static AttributeMappingUiProvider<BasicCollectionMapping> instance() {
-		return INSTANCE;
-	}
-	
-	
-	/**
-	 * Ensure single instance.
-	 */
-	private EclipseLinkOrmBasicCollectionMappingUiProvider() {
-		super();
-	}
-	
-	public IContentType getContentType() {
-		return JptEclipseLinkCorePlugin.ECLIPSELINK_ORM_XML_CONTENT_TYPE;
-	}
-	
-	public JpaComposite buildAttributeMappingComposite(
-			JpaUiFactory factory,
-			PropertyValueModel<BasicCollectionMapping> subjectHolder,
-			Composite parent,
-			WidgetFactory widgetFactory) {
-		return new BasicCollectionMappingComposite(subjectHolder, parent, widgetFactory);
-	}
-}
diff --git a/jpa/plugins/org.eclipse.jpt.eclipselink.ui/src/org/eclipse/jpt/eclipselink/ui/internal/orm/details/EclipseLinkOrmBasicMapMappingUiProvider.java b/jpa/plugins/org.eclipse.jpt.eclipselink.ui/src/org/eclipse/jpt/eclipselink/ui/internal/orm/details/EclipseLinkOrmBasicMapMappingUiProvider.java
deleted file mode 100644
index 7a74315..0000000
--- a/jpa/plugins/org.eclipse.jpt.eclipselink.ui/src/org/eclipse/jpt/eclipselink/ui/internal/orm/details/EclipseLinkOrmBasicMapMappingUiProvider.java
+++ /dev/null
@@ -1,56 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- *
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.eclipselink.ui.internal.orm.details;
-
-import org.eclipse.core.runtime.content.IContentType;
-import org.eclipse.jpt.eclipselink.core.context.BasicMapMapping;
-import org.eclipse.jpt.eclipselink.core.internal.JptEclipseLinkCorePlugin;
-import org.eclipse.jpt.eclipselink.ui.internal.mappings.details.BasicMapMappingComposite;
-import org.eclipse.jpt.eclipselink.ui.internal.mappings.details.EclipseLinkBasicMapMappingUiProvider;
-import org.eclipse.jpt.ui.JpaUiFactory;
-import org.eclipse.jpt.ui.WidgetFactory;
-import org.eclipse.jpt.ui.details.AttributeMappingUiProvider;
-import org.eclipse.jpt.ui.details.JpaComposite;
-import org.eclipse.jpt.utility.model.value.PropertyValueModel;
-import org.eclipse.swt.widgets.Composite;
-
-public class EclipseLinkOrmBasicMapMappingUiProvider extends EclipseLinkBasicMapMappingUiProvider<BasicMapMapping>
-{
-	// singleton
-	private static final EclipseLinkOrmBasicMapMappingUiProvider INSTANCE = 
-		new EclipseLinkOrmBasicMapMappingUiProvider();
-	
-	/**
-	 * Return the singleton.
-	 */
-	public static AttributeMappingUiProvider<BasicMapMapping> instance() {
-		return INSTANCE;
-	}
-	
-	
-	/**
-	 * Ensure single instance.
-	 */
-	private EclipseLinkOrmBasicMapMappingUiProvider() {
-		super();
-	}
-	
-	public IContentType getContentType() {
-		return JptEclipseLinkCorePlugin.ECLIPSELINK_ORM_XML_CONTENT_TYPE;
-	}
-		
-	public JpaComposite buildAttributeMappingComposite(
-			JpaUiFactory factory,
-			PropertyValueModel<BasicMapMapping> subjectHolder,
-			Composite parent,
-			WidgetFactory widgetFactory) {
-		return new BasicMapMappingComposite(subjectHolder, parent, widgetFactory);
-	}
-}
diff --git a/jpa/plugins/org.eclipse.jpt.eclipselink.ui/src/org/eclipse/jpt/eclipselink/ui/internal/orm/details/EclipseLinkOrmBasicMappingComposite.java b/jpa/plugins/org.eclipse.jpt.eclipselink.ui/src/org/eclipse/jpt/eclipselink/ui/internal/orm/details/EclipseLinkOrmBasicMappingComposite.java
deleted file mode 100644
index 0c30f3e..0000000
--- a/jpa/plugins/org.eclipse.jpt.eclipselink.ui/src/org/eclipse/jpt/eclipselink/ui/internal/orm/details/EclipseLinkOrmBasicMappingComposite.java
+++ /dev/null
@@ -1,44 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- *
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.eclipselink.ui.internal.orm.details;
-
-import org.eclipse.jpt.core.context.BasicMapping;
-import org.eclipse.jpt.eclipselink.core.context.Convert;
-import org.eclipse.jpt.eclipselink.ui.internal.mappings.details.EclipseLinkBasicMappingComposite;
-import org.eclipse.jpt.ui.WidgetFactory;
-import org.eclipse.jpt.ui.internal.widgets.Pane;
-import org.eclipse.jpt.utility.model.value.PropertyValueModel;
-import org.eclipse.swt.widgets.Composite;
-
-//Temporary to remove the Converters section from orm basic mapping.
-//This is supported in EclipseLink in version 1.1, but not 1.0
-public class EclipseLinkOrmBasicMappingComposite extends EclipseLinkBasicMappingComposite
-{
-	/**
-	 * Creates a new <code>EclipseLinkOrmBasicMappingComposite</code>.
-	 *
-	 * @param subjectHolder The holder of the subject <code>BasicMapping</code>
-	 * @param parent The parent container
-	 * @param widgetFactory The factory used to create various common widgets
-	 */
-	public EclipseLinkOrmBasicMappingComposite(PropertyValueModel<? extends BasicMapping> subjectHolder,
-	                               Composite parent,
-	                               WidgetFactory widgetFactory) {
-
-		super(subjectHolder, parent, widgetFactory);
-	}
-
-	@Override
-	//everything but the 'Defaine Converter' section.  This is not supported in eclipselink 1.0, but is in 1.1
-	protected Pane<Convert> buildConvertComposite(PropertyValueModel<Convert> convertHolder, Composite container) {
-		return new OrmConvertComposite(convertHolder, container, getWidgetFactory());
-	}
-
-}
\ No newline at end of file
diff --git a/jpa/plugins/org.eclipse.jpt.eclipselink.ui/src/org/eclipse/jpt/eclipselink/ui/internal/orm/details/EclipseLinkOrmBasicMappingUiProvider.java b/jpa/plugins/org.eclipse.jpt.eclipselink.ui/src/org/eclipse/jpt/eclipselink/ui/internal/orm/details/EclipseLinkOrmBasicMappingUiProvider.java
deleted file mode 100644
index 75cab0e..0000000
--- a/jpa/plugins/org.eclipse.jpt.eclipselink.ui/src/org/eclipse/jpt/eclipselink/ui/internal/orm/details/EclipseLinkOrmBasicMappingUiProvider.java
+++ /dev/null
@@ -1,57 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- *
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.eclipselink.ui.internal.orm.details;
-
-import org.eclipse.core.runtime.content.IContentType;
-import org.eclipse.jpt.eclipselink.core.internal.JptEclipseLinkCorePlugin;
-import org.eclipse.jpt.eclipselink.core.internal.context.orm.EclipseLinkOrmBasicMapping;
-import org.eclipse.jpt.ui.JpaUiFactory;
-import org.eclipse.jpt.ui.WidgetFactory;
-import org.eclipse.jpt.ui.details.AttributeMappingUiProvider;
-import org.eclipse.jpt.ui.details.JpaComposite;
-import org.eclipse.jpt.ui.internal.details.AbstractBasicMappingUiProvider;
-import org.eclipse.jpt.utility.model.value.PropertyValueModel;
-import org.eclipse.swt.widgets.Composite;
-
-public class EclipseLinkOrmBasicMappingUiProvider
-	extends AbstractBasicMappingUiProvider<EclipseLinkOrmBasicMapping>
-{
-	// singleton
-	private static final EclipseLinkOrmBasicMappingUiProvider INSTANCE = 
-		new EclipseLinkOrmBasicMappingUiProvider();
-	
-	/**
-	 * Return the singleton.
-	 */
-	public static AttributeMappingUiProvider<EclipseLinkOrmBasicMapping> instance() {
-		return INSTANCE;
-	}
-	
-	
-	/**
-	 * Ensure single instance.
-	 */
-	private EclipseLinkOrmBasicMappingUiProvider() {
-		super();
-	}
-	
-	public IContentType getContentType() {
-		return JptEclipseLinkCorePlugin.ECLIPSELINK_ORM_XML_CONTENT_TYPE;
-	}
-	
-	public JpaComposite buildAttributeMappingComposite(
-			JpaUiFactory factory,
-			PropertyValueModel<EclipseLinkOrmBasicMapping> subjectHolder,
-			Composite parent,
-			WidgetFactory widgetFactory) {
-		
-		return new EclipseLinkOrmBasicMappingComposite(subjectHolder, parent, widgetFactory);
-	}
-}
diff --git a/jpa/plugins/org.eclipse.jpt.eclipselink.ui/src/org/eclipse/jpt/eclipselink/ui/internal/orm/details/EclipseLinkOrmEmbeddableComposite.java b/jpa/plugins/org.eclipse.jpt.eclipselink.ui/src/org/eclipse/jpt/eclipselink/ui/internal/orm/details/EclipseLinkOrmEmbeddableComposite.java
deleted file mode 100644
index 4acf4c4..0000000
--- a/jpa/plugins/org.eclipse.jpt.eclipselink.ui/src/org/eclipse/jpt/eclipselink/ui/internal/orm/details/EclipseLinkOrmEmbeddableComposite.java
+++ /dev/null
@@ -1,100 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008, 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- *
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.eclipselink.ui.internal.orm.details;
-
-import org.eclipse.jpt.core.context.AccessHolder;
-import org.eclipse.jpt.eclipselink.core.internal.context.orm.ConverterHolder;
-import org.eclipse.jpt.eclipselink.core.internal.context.orm.EclipseLinkOrmEmbeddable;
-import org.eclipse.jpt.eclipselink.ui.internal.mappings.EclipseLinkUiMappingsMessages;
-import org.eclipse.jpt.eclipselink.ui.internal.mappings.details.EclipseLinkEmbeddableAdvancedComposite;
-import org.eclipse.jpt.ui.WidgetFactory;
-import org.eclipse.jpt.ui.details.JpaComposite;
-import org.eclipse.jpt.ui.internal.details.AccessTypeComposite;
-import org.eclipse.jpt.ui.internal.orm.details.MetadataCompleteComposite;
-import org.eclipse.jpt.ui.internal.orm.details.OrmJavaClassChooser;
-import org.eclipse.jpt.ui.internal.widgets.FormPane;
-import org.eclipse.jpt.utility.internal.model.value.PropertyAspectAdapter;
-import org.eclipse.jpt.utility.model.value.PropertyValueModel;
-import org.eclipse.swt.widgets.Composite;
-
-/**
- * This pane does not have any widgets.
- *
- * @see Embeddable
- * @see BaseJpaUiFactory - The factory creating this pane
- * @see EmbeddableUiProvider
- *
- * @version 2.1
- * @since 2.1
- */
-public class EclipseLinkOrmEmbeddableComposite extends FormPane<EclipseLinkOrmEmbeddable>
-                                 implements JpaComposite
-{
-	/**
-	 * Creates a new <code>EmbeddableComposite</code>.
-	 *
-	 * @param subjectHolder The holder of this pane's subject
-	 * @param parent The parent container
-	 * @param widgetFactory The factory used to create various common widgets
-	 */
-	public EclipseLinkOrmEmbeddableComposite(PropertyValueModel<? extends EclipseLinkOrmEmbeddable> subjectHolder,
-	                           Composite parent,
-	                           WidgetFactory widgetFactory) {
-
-		super(subjectHolder, parent, widgetFactory);
-	}
-
-	@Override
-	protected void initializeLayout(Composite container) {
-		initializeGeneralPane(container);
-		initializeConvertersPane(container);
-		initializeAdvancedPane(container);
-	}
-	
-	protected void initializeGeneralPane(Composite container) {
-		new OrmJavaClassChooser(this, getSubjectHolder(), container);
-		new AccessTypeComposite(this, buildAccessHolder(), container);
-		new MetadataCompleteComposite(this, getSubjectHolder(), container);
-	}
-	
-	protected PropertyValueModel<AccessHolder> buildAccessHolder() {
-		return new PropertyAspectAdapter<EclipseLinkOrmEmbeddable, AccessHolder>(
-			getSubjectHolder())
-		{
-			@Override
-			protected AccessHolder buildValue_() {
-				return this.subject.getPersistentType();
-			}
-		};
-	}
-
-	protected void initializeConvertersPane(Composite container) {
-
-		container = addCollapsableSection(
-			addSubPane(container, 5),
-			EclipseLinkUiMappingsMessages.ConvertersComposite_Label
-		);
-
-		new ConvertersComposite(this, buildConverterHolder(), container);
-	}
-	
-	private PropertyValueModel<ConverterHolder> buildConverterHolder() {
-		return new PropertyAspectAdapter<EclipseLinkOrmEmbeddable, ConverterHolder>(getSubjectHolder()) {
-			@Override
-			protected ConverterHolder buildValue_() {
-				return this.subject.getConverterHolder();
-			}
-		};
-	}
-	
-	protected void initializeAdvancedPane(Composite container) {
-		new EclipseLinkEmbeddableAdvancedComposite(this, container);
-	}
-}
\ No newline at end of file
diff --git a/jpa/plugins/org.eclipse.jpt.eclipselink.ui/src/org/eclipse/jpt/eclipselink/ui/internal/orm/details/EclipseLinkOrmEmbeddableUiProvider.java b/jpa/plugins/org.eclipse.jpt.eclipselink.ui/src/org/eclipse/jpt/eclipselink/ui/internal/orm/details/EclipseLinkOrmEmbeddableUiProvider.java
deleted file mode 100644
index d14553a..0000000
--- a/jpa/plugins/org.eclipse.jpt.eclipselink.ui/src/org/eclipse/jpt/eclipselink/ui/internal/orm/details/EclipseLinkOrmEmbeddableUiProvider.java
+++ /dev/null
@@ -1,57 +0,0 @@
-/*******************************************************************************
- *  Copyright (c) 2008  Oracle. 
- *  All rights reserved.  This program and the accompanying materials are 
- *  made available under the terms of the Eclipse Public License v1.0 which 
- *  accompanies this distribution, and is available at 
- *  http://www.eclipse.org/legal/epl-v10.html
- *  
- *  Contributors: 
- *  	Oracle - initial API and implementation
- *******************************************************************************/
-package org.eclipse.jpt.eclipselink.ui.internal.orm.details;
-
-import org.eclipse.core.runtime.content.IContentType;
-import org.eclipse.jpt.eclipselink.core.internal.JptEclipseLinkCorePlugin;
-import org.eclipse.jpt.eclipselink.core.internal.context.orm.EclipseLinkOrmEmbeddable;
-import org.eclipse.jpt.ui.JpaUiFactory;
-import org.eclipse.jpt.ui.WidgetFactory;
-import org.eclipse.jpt.ui.details.JpaComposite;
-import org.eclipse.jpt.ui.details.TypeMappingUiProvider;
-import org.eclipse.jpt.ui.internal.details.AbstractEmbeddableUiProvider;
-import org.eclipse.jpt.utility.model.value.PropertyValueModel;
-import org.eclipse.swt.widgets.Composite;
-
-public class EclipseLinkOrmEmbeddableUiProvider 
-	extends AbstractEmbeddableUiProvider<EclipseLinkOrmEmbeddable>
-{
-	// singleton
-	private static final EclipseLinkOrmEmbeddableUiProvider INSTANCE = 
-		new EclipseLinkOrmEmbeddableUiProvider();
-	
-	/**
-	 * Return the singleton.
-	 */
-	public static TypeMappingUiProvider<EclipseLinkOrmEmbeddable> instance() {
-		return INSTANCE;
-	}
-	
-	
-	/**
-	 * Ensure single instance.
-	 */
-	private EclipseLinkOrmEmbeddableUiProvider() {
-		super();
-	}
-	
-	public IContentType getContentType() {
-		return JptEclipseLinkCorePlugin.ECLIPSELINK_ORM_XML_CONTENT_TYPE;
-	}
-	
-	public JpaComposite buildPersistentTypeMappingComposite(
-			JpaUiFactory factory, 
-			PropertyValueModel<EclipseLinkOrmEmbeddable> subjectHolder, 
-			Composite parent, 
-			WidgetFactory widgetFactory) {
-		return new EclipseLinkOrmEmbeddableComposite(subjectHolder, parent, widgetFactory);
-	}
-}
diff --git a/jpa/plugins/org.eclipse.jpt.eclipselink.ui/src/org/eclipse/jpt/eclipselink/ui/internal/orm/details/EclipseLinkOrmEmbeddedIdMappingUiProvider.java b/jpa/plugins/org.eclipse.jpt.eclipselink.ui/src/org/eclipse/jpt/eclipselink/ui/internal/orm/details/EclipseLinkOrmEmbeddedIdMappingUiProvider.java
deleted file mode 100644
index c395af1..0000000
--- a/jpa/plugins/org.eclipse.jpt.eclipselink.ui/src/org/eclipse/jpt/eclipselink/ui/internal/orm/details/EclipseLinkOrmEmbeddedIdMappingUiProvider.java
+++ /dev/null
@@ -1,57 +0,0 @@
-/*******************************************************************************
- *  Copyright (c) 2009  Oracle. 
- *  All rights reserved.  This program and the accompanying materials are 
- *  made available under the terms of the Eclipse Public License v1.0 which 
- *  accompanies this distribution, and is available at 
- *  http://www.eclipse.org/legal/epl-v10.html
- *  
- *  Contributors: 
- *  	Oracle - initial API and implementation
- *******************************************************************************/
-package org.eclipse.jpt.eclipselink.ui.internal.orm.details;
-
-import org.eclipse.core.runtime.content.IContentType;
-import org.eclipse.jpt.core.context.orm.OrmEmbeddedIdMapping;
-import org.eclipse.jpt.eclipselink.core.internal.JptEclipseLinkCorePlugin;
-import org.eclipse.jpt.ui.JpaUiFactory;
-import org.eclipse.jpt.ui.WidgetFactory;
-import org.eclipse.jpt.ui.details.AttributeMappingUiProvider;
-import org.eclipse.jpt.ui.details.JpaComposite;
-import org.eclipse.jpt.ui.internal.details.AbstractEmbeddedIdMappingUiProvider;
-import org.eclipse.jpt.utility.model.value.PropertyValueModel;
-import org.eclipse.swt.widgets.Composite;
-
-public class EclipseLinkOrmEmbeddedIdMappingUiProvider
-	extends AbstractEmbeddedIdMappingUiProvider<OrmEmbeddedIdMapping>
-{
-	// singleton
-	private static final EclipseLinkOrmEmbeddedIdMappingUiProvider INSTANCE = 
-		new EclipseLinkOrmEmbeddedIdMappingUiProvider();
-	
-	/**
-	 * Return the singleton.
-	 */
-	public static AttributeMappingUiProvider<OrmEmbeddedIdMapping> instance() {
-		return INSTANCE;
-	}
-	
-	
-	/**
-	 * Ensure single instance.
-	 */
-	private EclipseLinkOrmEmbeddedIdMappingUiProvider() {
-		super();
-	}
-	
-	public IContentType getContentType() {
-		return JptEclipseLinkCorePlugin.ECLIPSELINK_ORM_XML_CONTENT_TYPE;
-	}		
-	
-	public JpaComposite buildAttributeMappingComposite(
-			JpaUiFactory factory,
-			PropertyValueModel<OrmEmbeddedIdMapping> subjectHolder,
-			Composite parent,
-			WidgetFactory widgetFactory) {
-		return factory.createOrmEmbeddedIdMappingComposite(subjectHolder, parent, widgetFactory);
-	}
-}
diff --git a/jpa/plugins/org.eclipse.jpt.eclipselink.ui/src/org/eclipse/jpt/eclipselink/ui/internal/orm/details/EclipseLinkOrmEmbeddedMappingUiProvider.java b/jpa/plugins/org.eclipse.jpt.eclipselink.ui/src/org/eclipse/jpt/eclipselink/ui/internal/orm/details/EclipseLinkOrmEmbeddedMappingUiProvider.java
deleted file mode 100644
index a1eeea0..0000000
--- a/jpa/plugins/org.eclipse.jpt.eclipselink.ui/src/org/eclipse/jpt/eclipselink/ui/internal/orm/details/EclipseLinkOrmEmbeddedMappingUiProvider.java
+++ /dev/null
@@ -1,57 +0,0 @@
-/*******************************************************************************
- *  Copyright (c) 2009  Oracle. 
- *  All rights reserved.  This program and the accompanying materials are 
- *  made available under the terms of the Eclipse Public License v1.0 which 
- *  accompanies this distribution, and is available at 
- *  http://www.eclipse.org/legal/epl-v10.html
- *  
- *  Contributors: 
- *  	Oracle - initial API and implementation
- *******************************************************************************/
-package org.eclipse.jpt.eclipselink.ui.internal.orm.details;
-
-import org.eclipse.core.runtime.content.IContentType;
-import org.eclipse.jpt.core.context.orm.OrmEmbeddedMapping;
-import org.eclipse.jpt.eclipselink.core.internal.JptEclipseLinkCorePlugin;
-import org.eclipse.jpt.ui.JpaUiFactory;
-import org.eclipse.jpt.ui.WidgetFactory;
-import org.eclipse.jpt.ui.details.AttributeMappingUiProvider;
-import org.eclipse.jpt.ui.details.JpaComposite;
-import org.eclipse.jpt.ui.internal.details.AbstractEmbeddedMappingUiProvider;
-import org.eclipse.jpt.utility.model.value.PropertyValueModel;
-import org.eclipse.swt.widgets.Composite;
-
-public class EclipseLinkOrmEmbeddedMappingUiProvider
-	extends AbstractEmbeddedMappingUiProvider<OrmEmbeddedMapping>
-{
-	// singleton
-	private static final EclipseLinkOrmEmbeddedMappingUiProvider INSTANCE = 
-		new EclipseLinkOrmEmbeddedMappingUiProvider();
-	
-	/**
-	 * Return the singleton.
-	 */
-	public static AttributeMappingUiProvider<OrmEmbeddedMapping> instance() {
-		return INSTANCE;
-	}
-	
-	
-	/**
-	 * Ensure single instance.
-	 */
-	private EclipseLinkOrmEmbeddedMappingUiProvider() {
-		super();
-	}
-	
-	public IContentType getContentType() {
-		return JptEclipseLinkCorePlugin.ECLIPSELINK_ORM_XML_CONTENT_TYPE;
-	}		
-	
-	public JpaComposite buildAttributeMappingComposite(
-			JpaUiFactory factory,
-			PropertyValueModel<OrmEmbeddedMapping> subjectHolder,
-			Composite parent,
-			WidgetFactory widgetFactory) {
-		return factory.createOrmEmbeddedMappingComposite(subjectHolder, parent, widgetFactory);
-	}
-}
diff --git a/jpa/plugins/org.eclipse.jpt.eclipselink.ui/src/org/eclipse/jpt/eclipselink/ui/internal/orm/details/EclipseLinkOrmEntityComposite.java b/jpa/plugins/org.eclipse.jpt.eclipselink.ui/src/org/eclipse/jpt/eclipselink/ui/internal/orm/details/EclipseLinkOrmEntityComposite.java
deleted file mode 100644
index f266640..0000000
--- a/jpa/plugins/org.eclipse.jpt.eclipselink.ui/src/org/eclipse/jpt/eclipselink/ui/internal/orm/details/EclipseLinkOrmEntityComposite.java
+++ /dev/null
@@ -1,127 +0,0 @@
-/*******************************************************************************
- *  Copyright (c) 2008, 2009 Oracle. 
- *  All rights reserved.  This program and the accompanying materials are 
- *  made available under the terms of the Eclipse Public License v1.0 which 
- *  accompanies this distribution, and is available at 
- *  http://www.eclipse.org/legal/epl-v10.html
- *  
- *  Contributors: 
- *  	Oracle - initial API and implementation
- *******************************************************************************/
-package org.eclipse.jpt.eclipselink.ui.internal.orm.details;
-
-import org.eclipse.jpt.core.context.AccessHolder;
-import org.eclipse.jpt.core.context.orm.OrmEntity;
-import org.eclipse.jpt.eclipselink.core.context.Caching;
-import org.eclipse.jpt.eclipselink.core.internal.context.orm.ConverterHolder;
-import org.eclipse.jpt.eclipselink.core.internal.context.orm.EclipseLinkOrmEntity;
-import org.eclipse.jpt.eclipselink.ui.internal.mappings.EclipseLinkUiMappingsMessages;
-import org.eclipse.jpt.eclipselink.ui.internal.mappings.details.EclipseLinkEntityAdvancedComposite;
-import org.eclipse.jpt.ui.WidgetFactory;
-import org.eclipse.jpt.ui.internal.details.AccessTypeComposite;
-import org.eclipse.jpt.ui.internal.mappings.details.AbstractEntityComposite;
-import org.eclipse.jpt.ui.internal.mappings.details.EntityNameComposite;
-import org.eclipse.jpt.ui.internal.mappings.details.IdClassComposite;
-import org.eclipse.jpt.ui.internal.mappings.details.TableComposite;
-import org.eclipse.jpt.ui.internal.orm.details.MetadataCompleteComposite;
-import org.eclipse.jpt.ui.internal.orm.details.OrmInheritanceComposite;
-import org.eclipse.jpt.ui.internal.orm.details.OrmJavaClassChooser;
-import org.eclipse.jpt.ui.internal.orm.details.OrmSecondaryTablesComposite;
-import org.eclipse.jpt.utility.internal.model.value.PropertyAspectAdapter;
-import org.eclipse.jpt.utility.model.value.PropertyValueModel;
-import org.eclipse.swt.widgets.Composite;
-
-public class EclipseLinkOrmEntityComposite extends AbstractEntityComposite<OrmEntity>
-{
-	public EclipseLinkOrmEntityComposite(
-			PropertyValueModel<? extends OrmEntity> subjectHolder,
-			Composite parent, WidgetFactory widgetFactory) {
-		super(subjectHolder, parent, widgetFactory);
-	}
-
-	
-	@Override
-	protected void initializeLayout(Composite container) {
-		initializeGeneralPane(container);
-		initializeCachingPane(container);
-		initializeQueriesPane(container);
-		initializeInheritancePane(container);
-		initializeAttributeOverridesPane(container);
-		initializeGeneratorsPane(container);
-		initializeConvertersPane(container);
-		initializeSecondaryTablesPane(container);
-		initializeAdvancedPane(container);
-	}
-	
-	@Override
-	protected void initializeGeneralPane(Composite container) {
-		int groupBoxMargin = getGroupBoxMargin();
-		
-		new OrmJavaClassChooser(this, getSubjectHolder(), addSubPane(container, 0, groupBoxMargin, 0, groupBoxMargin), false);
-		new TableComposite(this, container);
-		new EntityNameComposite(this, addSubPane(container, 0, groupBoxMargin, 0, groupBoxMargin));
-		new AccessTypeComposite(this, buildAccessHolder(), addSubPane(container, 0, groupBoxMargin, 0, groupBoxMargin));
-		new IdClassComposite(this, addSubPane(container, 0, groupBoxMargin, 0, groupBoxMargin), false);
-		new MetadataCompleteComposite(this, getSubjectHolder(), addSubPane(container, 0, groupBoxMargin, 0, groupBoxMargin));
-	}
-	
-	protected PropertyValueModel<AccessHolder> buildAccessHolder() {
-		return new PropertyAspectAdapter<OrmEntity, AccessHolder>(
-			getSubjectHolder())
-		{
-			@Override
-			protected AccessHolder buildValue_() {
-				return this.subject.getPersistentType();
-			}
-		};
-	}
-	
-	protected void initializeCachingPane(Composite container) {
-		container = addCollapsableSection(
-			addSubPane(container, 5),
-			EclipseLinkUiMappingsMessages.EclipseLinkTypeMappingComposite_caching);
-		new OrmCachingComposite(this, buildCachingHolder(), container);
-	}
-	
-	private PropertyAspectAdapter<OrmEntity, Caching> buildCachingHolder() {
-		return new PropertyAspectAdapter<OrmEntity, Caching>(getSubjectHolder()) {
-			@Override
-			protected Caching buildValue_() {
-				return ((EclipseLinkOrmEntity) this.subject).getCaching();
-			}
-		};
-	}
-	
-	@Override
-	protected void addInheritanceComposite(Composite container) {
-		new OrmInheritanceComposite(this, container);
-	}
-	
-	@Override
-	protected void addSecondaryTablesComposite(Composite container) {
-		new OrmSecondaryTablesComposite(this, container);
-	}
-
-	protected void initializeConvertersPane(Composite container) {
-
-		container = addCollapsableSection(
-			container,
-			EclipseLinkUiMappingsMessages.ConvertersComposite_Label
-		);
-
-		new ConvertersComposite(this, buildConverterHolder(), container);
-	}
-	
-	private PropertyValueModel<ConverterHolder> buildConverterHolder() {
-		return new PropertyAspectAdapter<OrmEntity, ConverterHolder>(getSubjectHolder()) {
-			@Override
-			protected ConverterHolder buildValue_() {
-				return ((EclipseLinkOrmEntity) this.subject).getConverterHolder();
-			}
-		};
-	}
-	
-	protected void initializeAdvancedPane(Composite container) {
-		new EclipseLinkEntityAdvancedComposite(this, container);
-	}
-}
diff --git a/jpa/plugins/org.eclipse.jpt.eclipselink.ui/src/org/eclipse/jpt/eclipselink/ui/internal/orm/details/EclipseLinkOrmEntityUiProvider.java b/jpa/plugins/org.eclipse.jpt.eclipselink.ui/src/org/eclipse/jpt/eclipselink/ui/internal/orm/details/EclipseLinkOrmEntityUiProvider.java
deleted file mode 100644
index bcdc7fb..0000000
--- a/jpa/plugins/org.eclipse.jpt.eclipselink.ui/src/org/eclipse/jpt/eclipselink/ui/internal/orm/details/EclipseLinkOrmEntityUiProvider.java
+++ /dev/null
@@ -1,57 +0,0 @@
-/*******************************************************************************
- *  Copyright (c) 2008  Oracle. 
- *  All rights reserved.  This program and the accompanying materials are 
- *  made available under the terms of the Eclipse Public License v1.0 which 
- *  accompanies this distribution, and is available at 
- *  http://www.eclipse.org/legal/epl-v10.html
- *  
- *  Contributors: 
- *  	Oracle - initial API and implementation
- *******************************************************************************/
-package org.eclipse.jpt.eclipselink.ui.internal.orm.details;
-
-import org.eclipse.core.runtime.content.IContentType;
-import org.eclipse.jpt.eclipselink.core.internal.JptEclipseLinkCorePlugin;
-import org.eclipse.jpt.eclipselink.core.internal.context.orm.EclipseLinkOrmEntity;
-import org.eclipse.jpt.ui.JpaUiFactory;
-import org.eclipse.jpt.ui.WidgetFactory;
-import org.eclipse.jpt.ui.details.JpaComposite;
-import org.eclipse.jpt.ui.details.TypeMappingUiProvider;
-import org.eclipse.jpt.ui.internal.details.AbstractEntityUiProvider;
-import org.eclipse.jpt.utility.model.value.PropertyValueModel;
-import org.eclipse.swt.widgets.Composite;
-
-public class EclipseLinkOrmEntityUiProvider 
-	extends AbstractEntityUiProvider<EclipseLinkOrmEntity>
-{
-	// singleton
-	private static final EclipseLinkOrmEntityUiProvider INSTANCE = 
-		new EclipseLinkOrmEntityUiProvider();
-	
-	/**
-	 * Return the singleton.
-	 */
-	public static TypeMappingUiProvider<EclipseLinkOrmEntity> instance() {
-		return INSTANCE;
-	}
-	
-	public IContentType getContentType() {
-		return JptEclipseLinkCorePlugin.ECLIPSELINK_ORM_XML_CONTENT_TYPE;
-	}
-	
-	/**
-	 * Ensure single instance.
-	 */
-	private EclipseLinkOrmEntityUiProvider() {
-		super();
-	}
-	
-	
-	public JpaComposite buildPersistentTypeMappingComposite(
-			JpaUiFactory factory, 
-			PropertyValueModel<EclipseLinkOrmEntity> subjectHolder, 
-			Composite parent, 
-			WidgetFactory widgetFactory) {
-		return new EclipseLinkOrmEntityComposite(subjectHolder, parent, widgetFactory);
-	}
-}
diff --git a/jpa/plugins/org.eclipse.jpt.eclipselink.ui/src/org/eclipse/jpt/eclipselink/ui/internal/orm/details/EclipseLinkOrmIdMappingComposite.java b/jpa/plugins/org.eclipse.jpt.eclipselink.ui/src/org/eclipse/jpt/eclipselink/ui/internal/orm/details/EclipseLinkOrmIdMappingComposite.java
deleted file mode 100644
index 47b78e4..0000000
--- a/jpa/plugins/org.eclipse.jpt.eclipselink.ui/src/org/eclipse/jpt/eclipselink/ui/internal/orm/details/EclipseLinkOrmIdMappingComposite.java
+++ /dev/null
@@ -1,43 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- *
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.eclipselink.ui.internal.orm.details;
-
-import org.eclipse.jpt.core.context.IdMapping;
-import org.eclipse.jpt.eclipselink.core.context.Convert;
-import org.eclipse.jpt.eclipselink.ui.internal.mappings.details.EclipseLinkIdMappingComposite;
-import org.eclipse.jpt.ui.WidgetFactory;
-import org.eclipse.jpt.ui.internal.widgets.Pane;
-import org.eclipse.jpt.utility.model.value.PropertyValueModel;
-import org.eclipse.swt.widgets.Composite;
-
-//Removing the Converters section from EclipseLink 1.0 orm basic mapping.
-//This is supported in EclipseLink in version 1.1, but not 1.0
-public class EclipseLinkOrmIdMappingComposite extends EclipseLinkIdMappingComposite
-{
-	/**
-	 * Creates a new <code>EclipseLinkOrmIdMappingComposite</code>.
-	 *
-	 * @param subjectHolder The holder of the subject <code>IdMapping</code>
-	 * @param parent The parent container
-	 * @param widgetFactory The factory used to create various common widgets
-	 */
-	public EclipseLinkOrmIdMappingComposite(PropertyValueModel<? extends IdMapping> subjectHolder,
-	                               Composite parent,
-	                               WidgetFactory widgetFactory) {
-
-		super(subjectHolder, parent, widgetFactory);
-	}
-
-	@Override
-	//everything but the 'Define Converter' section.  This is not supported in eclipselink 1.0, but is in 1.1
-	protected Pane<Convert> buildConvertComposite(PropertyValueModel<Convert> convertHolder, Composite container) {
-		return new OrmConvertComposite(convertHolder, container, getWidgetFactory());
-	}
-}
\ No newline at end of file
diff --git a/jpa/plugins/org.eclipse.jpt.eclipselink.ui/src/org/eclipse/jpt/eclipselink/ui/internal/orm/details/EclipseLinkOrmIdMappingUiProvider.java b/jpa/plugins/org.eclipse.jpt.eclipselink.ui/src/org/eclipse/jpt/eclipselink/ui/internal/orm/details/EclipseLinkOrmIdMappingUiProvider.java
deleted file mode 100644
index 463e4f4..0000000
--- a/jpa/plugins/org.eclipse.jpt.eclipselink.ui/src/org/eclipse/jpt/eclipselink/ui/internal/orm/details/EclipseLinkOrmIdMappingUiProvider.java
+++ /dev/null
@@ -1,56 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- *
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.eclipselink.ui.internal.orm.details;
-
-import org.eclipse.core.runtime.content.IContentType;
-import org.eclipse.jpt.eclipselink.core.internal.JptEclipseLinkCorePlugin;
-import org.eclipse.jpt.eclipselink.core.internal.context.orm.EclipseLinkOrmIdMapping;
-import org.eclipse.jpt.ui.JpaUiFactory;
-import org.eclipse.jpt.ui.WidgetFactory;
-import org.eclipse.jpt.ui.details.AttributeMappingUiProvider;
-import org.eclipse.jpt.ui.details.JpaComposite;
-import org.eclipse.jpt.ui.internal.details.AbstractIdMappingUiProvider;
-import org.eclipse.jpt.utility.model.value.PropertyValueModel;
-import org.eclipse.swt.widgets.Composite;
-
-public class EclipseLinkOrmIdMappingUiProvider
-	extends AbstractIdMappingUiProvider<EclipseLinkOrmIdMapping>
-{
-	// singleton
-	private static final EclipseLinkOrmIdMappingUiProvider INSTANCE = 
-		new EclipseLinkOrmIdMappingUiProvider();
-	
-	/**
-	 * Return the singleton.
-	 */
-	public static AttributeMappingUiProvider<EclipseLinkOrmIdMapping> instance() {
-		return INSTANCE;
-	}
-	
-	
-	/**
-	 * Ensure single instance.
-	 */
-	private EclipseLinkOrmIdMappingUiProvider() {
-		super();
-	}
-	
-	public IContentType getContentType() {
-		return JptEclipseLinkCorePlugin.ECLIPSELINK_ORM_XML_CONTENT_TYPE;
-	}
-	
-	public JpaComposite buildAttributeMappingComposite(
-			JpaUiFactory factory,
-			PropertyValueModel<EclipseLinkOrmIdMapping> subjectHolder,
-			Composite parent,
-			WidgetFactory widgetFactory) {
-		return new EclipseLinkOrmIdMappingComposite(subjectHolder, parent, widgetFactory);
-	}
-}
diff --git a/jpa/plugins/org.eclipse.jpt.eclipselink.ui/src/org/eclipse/jpt/eclipselink/ui/internal/orm/details/EclipseLinkOrmManyToManyMappingUiProvider.java b/jpa/plugins/org.eclipse.jpt.eclipselink.ui/src/org/eclipse/jpt/eclipselink/ui/internal/orm/details/EclipseLinkOrmManyToManyMappingUiProvider.java
deleted file mode 100644
index 0dd6c27..0000000
--- a/jpa/plugins/org.eclipse.jpt.eclipselink.ui/src/org/eclipse/jpt/eclipselink/ui/internal/orm/details/EclipseLinkOrmManyToManyMappingUiProvider.java
+++ /dev/null
@@ -1,57 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- *
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.eclipselink.ui.internal.orm.details;
-
-import org.eclipse.core.runtime.content.IContentType;
-import org.eclipse.jpt.eclipselink.core.internal.JptEclipseLinkCorePlugin;
-import org.eclipse.jpt.eclipselink.core.internal.context.orm.EclipseLinkOrmManyToManyMapping;
-import org.eclipse.jpt.eclipselink.ui.internal.mappings.details.EclipseLinkManyToManyMappingComposite;
-import org.eclipse.jpt.ui.JpaUiFactory;
-import org.eclipse.jpt.ui.WidgetFactory;
-import org.eclipse.jpt.ui.details.AttributeMappingUiProvider;
-import org.eclipse.jpt.ui.details.JpaComposite;
-import org.eclipse.jpt.ui.internal.details.AbstractManyToManyMappingUiProvider;
-import org.eclipse.jpt.utility.model.value.PropertyValueModel;
-import org.eclipse.swt.widgets.Composite;
-
-public class EclipseLinkOrmManyToManyMappingUiProvider
-	extends AbstractManyToManyMappingUiProvider<EclipseLinkOrmManyToManyMapping>
-{
-	// singleton
-	private static final EclipseLinkOrmManyToManyMappingUiProvider INSTANCE = 
-		new EclipseLinkOrmManyToManyMappingUiProvider();
-	
-	/**
-	 * Return the singleton.
-	 */
-	public static AttributeMappingUiProvider<EclipseLinkOrmManyToManyMapping> instance() {
-		return INSTANCE;
-	}
-	
-	
-	/**
-	 * Ensure single instance.
-	 */
-	private EclipseLinkOrmManyToManyMappingUiProvider() {
-		super();
-	}
-	
-	public IContentType getContentType() {
-		return JptEclipseLinkCorePlugin.ECLIPSELINK_ORM_XML_CONTENT_TYPE;
-	}
-	
-	public JpaComposite buildAttributeMappingComposite(
-			JpaUiFactory factory,
-			PropertyValueModel<EclipseLinkOrmManyToManyMapping> subjectHolder,
-			Composite parent,
-			WidgetFactory widgetFactory) {
-		return new EclipseLinkManyToManyMappingComposite(subjectHolder, parent, widgetFactory);
-	}
-}
diff --git a/jpa/plugins/org.eclipse.jpt.eclipselink.ui/src/org/eclipse/jpt/eclipselink/ui/internal/orm/details/EclipseLinkOrmManyToOneMappingUiProvider.java b/jpa/plugins/org.eclipse.jpt.eclipselink.ui/src/org/eclipse/jpt/eclipselink/ui/internal/orm/details/EclipseLinkOrmManyToOneMappingUiProvider.java
deleted file mode 100644
index 37de5db..0000000
--- a/jpa/plugins/org.eclipse.jpt.eclipselink.ui/src/org/eclipse/jpt/eclipselink/ui/internal/orm/details/EclipseLinkOrmManyToOneMappingUiProvider.java
+++ /dev/null
@@ -1,57 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- *
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.eclipselink.ui.internal.orm.details;
-
-import org.eclipse.core.runtime.content.IContentType;
-import org.eclipse.jpt.eclipselink.core.internal.JptEclipseLinkCorePlugin;
-import org.eclipse.jpt.eclipselink.core.internal.context.orm.EclipseLinkOrmManyToOneMapping;
-import org.eclipse.jpt.eclipselink.ui.internal.mappings.details.EclipseLinkManyToOneMappingComposite;
-import org.eclipse.jpt.ui.JpaUiFactory;
-import org.eclipse.jpt.ui.WidgetFactory;
-import org.eclipse.jpt.ui.details.AttributeMappingUiProvider;
-import org.eclipse.jpt.ui.details.JpaComposite;
-import org.eclipse.jpt.ui.internal.details.AbstractManyToOneMappingUiProvider;
-import org.eclipse.jpt.utility.model.value.PropertyValueModel;
-import org.eclipse.swt.widgets.Composite;
-
-public class EclipseLinkOrmManyToOneMappingUiProvider
-	extends AbstractManyToOneMappingUiProvider<EclipseLinkOrmManyToOneMapping>
-{
-	// singleton
-	private static final EclipseLinkOrmManyToOneMappingUiProvider INSTANCE = 
-		new EclipseLinkOrmManyToOneMappingUiProvider();
-	
-	/**
-	 * Return the singleton.
-	 */
-	public static AttributeMappingUiProvider<EclipseLinkOrmManyToOneMapping> instance() {
-		return INSTANCE;
-	}
-	
-	
-	/**
-	 * Ensure single instance.
-	 */
-	private EclipseLinkOrmManyToOneMappingUiProvider() {
-		super();
-	}
-	
-	public IContentType getContentType() {
-		return JptEclipseLinkCorePlugin.ECLIPSELINK_ORM_XML_CONTENT_TYPE;
-	}
-	
-	public JpaComposite buildAttributeMappingComposite(
-			JpaUiFactory factory,
-			PropertyValueModel<EclipseLinkOrmManyToOneMapping> subjectHolder,
-			Composite parent,
-			WidgetFactory widgetFactory) {
-		return new EclipseLinkManyToOneMappingComposite(subjectHolder, parent, widgetFactory);
-	}
-}
diff --git a/jpa/plugins/org.eclipse.jpt.eclipselink.ui/src/org/eclipse/jpt/eclipselink/ui/internal/orm/details/EclipseLinkOrmMappedSuperclassComposite.java b/jpa/plugins/org.eclipse.jpt.eclipselink.ui/src/org/eclipse/jpt/eclipselink/ui/internal/orm/details/EclipseLinkOrmMappedSuperclassComposite.java
deleted file mode 100644
index 79c197c..0000000
--- a/jpa/plugins/org.eclipse.jpt.eclipselink.ui/src/org/eclipse/jpt/eclipselink/ui/internal/orm/details/EclipseLinkOrmMappedSuperclassComposite.java
+++ /dev/null
@@ -1,108 +0,0 @@
-/*******************************************************************************
- *  Copyright (c) 2008, 2009 Oracle. 
- *  All rights reserved.  This program and the accompanying materials are 
- *  made available under the terms of the Eclipse Public License v1.0 which 
- *  accompanies this distribution, and is available at 
- *  http://www.eclipse.org/legal/epl-v10.html
- *  
- *  Contributors: 
- *  	Oracle - initial API and implementation
- *******************************************************************************/
-package org.eclipse.jpt.eclipselink.ui.internal.orm.details;
-
-import org.eclipse.jpt.core.context.AccessHolder;
-import org.eclipse.jpt.eclipselink.core.context.Caching;
-import org.eclipse.jpt.eclipselink.core.internal.context.orm.ConverterHolder;
-import org.eclipse.jpt.eclipselink.core.internal.context.orm.EclipseLinkOrmMappedSuperclass;
-import org.eclipse.jpt.eclipselink.ui.internal.mappings.EclipseLinkUiMappingsMessages;
-import org.eclipse.jpt.eclipselink.ui.internal.mappings.details.EclipseLinkMappedSuperclassAdvancedComposite;
-import org.eclipse.jpt.ui.WidgetFactory;
-import org.eclipse.jpt.ui.details.JpaComposite;
-import org.eclipse.jpt.ui.internal.details.AccessTypeComposite;
-import org.eclipse.jpt.ui.internal.mappings.details.IdClassComposite;
-import org.eclipse.jpt.ui.internal.orm.details.MetadataCompleteComposite;
-import org.eclipse.jpt.ui.internal.orm.details.OrmJavaClassChooser;
-import org.eclipse.jpt.ui.internal.widgets.FormPane;
-import org.eclipse.jpt.utility.internal.model.value.PropertyAspectAdapter;
-import org.eclipse.jpt.utility.model.value.PropertyValueModel;
-import org.eclipse.swt.widgets.Composite;
-
-public class EclipseLinkOrmMappedSuperclassComposite extends FormPane<EclipseLinkOrmMappedSuperclass> implements JpaComposite
-{
-	public EclipseLinkOrmMappedSuperclassComposite(
-			PropertyValueModel<? extends EclipseLinkOrmMappedSuperclass> subjectHolder,
-			Composite parent, WidgetFactory widgetFactory) {
-		super(subjectHolder, parent, widgetFactory);
-	}
-	
-	
-	@Override
-	protected void initializeLayout(Composite container) {
-		initializeGeneralPane(container);
-		initializeCachingPane(container);
-		initializeConvertersPane(container);
-		initializeAdvancedPane(container);
-	}
-	
-	protected void initializeGeneralPane(Composite container) {
-		new OrmJavaClassChooser(this, getSubjectHolder(), container);
-		new AccessTypeComposite(this, buildAccessHolder(), container);
-		new IdClassComposite(this, container);
-		new MetadataCompleteComposite(this, getSubjectHolder(), container);
-	}
-	
-	protected PropertyValueModel<AccessHolder> buildAccessHolder() {
-		return new PropertyAspectAdapter<EclipseLinkOrmMappedSuperclass, AccessHolder>(
-			getSubjectHolder())
-		{
-			@Override
-			protected AccessHolder buildValue_() {
-				return this.subject.getPersistentType();
-			}
-		};
-	}
-	
-	protected void initializeCachingPane(Composite container) {
-
-		container = addCollapsableSection(
-			addSubPane(container, 5),
-			EclipseLinkUiMappingsMessages.EclipseLinkTypeMappingComposite_caching
-		);
-
-		new OrmCachingComposite(this, buildCachingHolder(), container);
-	}
-
-	private PropertyAspectAdapter<EclipseLinkOrmMappedSuperclass, Caching> buildCachingHolder() {
-		return new PropertyAspectAdapter<EclipseLinkOrmMappedSuperclass, Caching>(
-			getSubjectHolder())
-		{
-			@Override
-			protected Caching buildValue_() {
-				return this.subject.getCaching();
-			}
-		};
-	}
-
-	protected void initializeConvertersPane(Composite container) {
-
-		container = addCollapsableSection(
-			container,
-			EclipseLinkUiMappingsMessages.ConvertersComposite_Label
-		);
-
-		new ConvertersComposite(this, buildConverterHolder(), container);
-	}
-	
-	private PropertyValueModel<ConverterHolder> buildConverterHolder() {
-		return new PropertyAspectAdapter<EclipseLinkOrmMappedSuperclass, ConverterHolder>(getSubjectHolder()) {
-			@Override
-			protected ConverterHolder buildValue_() {
-				return this.subject.getConverterHolder();
-			}
-		};
-	}
-	
-	protected void initializeAdvancedPane(Composite container) {
-		new EclipseLinkMappedSuperclassAdvancedComposite(this, container);
-	}
-}
diff --git a/jpa/plugins/org.eclipse.jpt.eclipselink.ui/src/org/eclipse/jpt/eclipselink/ui/internal/orm/details/EclipseLinkOrmMappedSuperclassUiProvider.java b/jpa/plugins/org.eclipse.jpt.eclipselink.ui/src/org/eclipse/jpt/eclipselink/ui/internal/orm/details/EclipseLinkOrmMappedSuperclassUiProvider.java
deleted file mode 100644
index 5bed698..0000000
--- a/jpa/plugins/org.eclipse.jpt.eclipselink.ui/src/org/eclipse/jpt/eclipselink/ui/internal/orm/details/EclipseLinkOrmMappedSuperclassUiProvider.java
+++ /dev/null
@@ -1,53 +0,0 @@
-/*******************************************************************************
- *  Copyright (c) 2008  Oracle. 
- *  All rights reserved.  This program and the accompanying materials are 
- *  made available under the terms of the Eclipse Public License v1.0 which 
- *  accompanies this distribution, and is available at 
- *  http://www.eclipse.org/legal/epl-v10.html
- *  
- *  Contributors: 
- *  	Oracle - initial API and implementation
- *******************************************************************************/
-package org.eclipse.jpt.eclipselink.ui.internal.orm.details;
-
-import org.eclipse.core.runtime.content.IContentType;
-import org.eclipse.jpt.eclipselink.core.internal.JptEclipseLinkCorePlugin;
-import org.eclipse.jpt.eclipselink.core.internal.context.orm.EclipseLinkOrmMappedSuperclass;
-import org.eclipse.jpt.ui.JpaUiFactory;
-import org.eclipse.jpt.ui.WidgetFactory;
-import org.eclipse.jpt.ui.details.JpaComposite;
-import org.eclipse.jpt.ui.details.TypeMappingUiProvider;
-import org.eclipse.jpt.ui.internal.details.AbstractMappedSuperclassUiProvider;
-import org.eclipse.jpt.utility.model.value.PropertyValueModel;
-import org.eclipse.swt.widgets.Composite;
-
-public class EclipseLinkOrmMappedSuperclassUiProvider 
-	extends AbstractMappedSuperclassUiProvider<EclipseLinkOrmMappedSuperclass>
-{
-	// singleton
-	private static final EclipseLinkOrmMappedSuperclassUiProvider INSTANCE = 
-		new EclipseLinkOrmMappedSuperclassUiProvider();
-	
-	/**
-	 * Return the singleton.
-	 */
-	public static TypeMappingUiProvider<EclipseLinkOrmMappedSuperclass> instance() {
-		return INSTANCE;
-	}
-	
-	
-	/**
-	 * Ensure single instance.
-	 */
-	private EclipseLinkOrmMappedSuperclassUiProvider() {
-		super();
-	}
-	
-	public IContentType getContentType() {
-		return JptEclipseLinkCorePlugin.ECLIPSELINK_ORM_XML_CONTENT_TYPE;
-	}
-
-	public JpaComposite buildPersistentTypeMappingComposite(JpaUiFactory factory, PropertyValueModel<EclipseLinkOrmMappedSuperclass> subjectHolder, Composite parent, WidgetFactory widgetFactory) {
-		return new EclipseLinkOrmMappedSuperclassComposite(subjectHolder, parent, widgetFactory);
-	}
-}
diff --git a/jpa/plugins/org.eclipse.jpt.eclipselink.ui/src/org/eclipse/jpt/eclipselink/ui/internal/orm/details/EclipseLinkOrmOneToManyMappingUiProvider.java b/jpa/plugins/org.eclipse.jpt.eclipselink.ui/src/org/eclipse/jpt/eclipselink/ui/internal/orm/details/EclipseLinkOrmOneToManyMappingUiProvider.java
deleted file mode 100644
index b53b480..0000000
--- a/jpa/plugins/org.eclipse.jpt.eclipselink.ui/src/org/eclipse/jpt/eclipselink/ui/internal/orm/details/EclipseLinkOrmOneToManyMappingUiProvider.java
+++ /dev/null
@@ -1,57 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008, 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- *
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.eclipselink.ui.internal.orm.details;
-
-import org.eclipse.core.runtime.content.IContentType;
-import org.eclipse.jpt.eclipselink.core.internal.JptEclipseLinkCorePlugin;
-import org.eclipse.jpt.eclipselink.core.internal.context.orm.EclipseLinkOrmOneToManyMapping;
-import org.eclipse.jpt.eclipselink.ui.internal.mappings.details.EclipseLinkOneToManyMappingComposite;
-import org.eclipse.jpt.ui.JpaUiFactory;
-import org.eclipse.jpt.ui.WidgetFactory;
-import org.eclipse.jpt.ui.details.AttributeMappingUiProvider;
-import org.eclipse.jpt.ui.details.JpaComposite;
-import org.eclipse.jpt.ui.internal.details.AbstractOneToManyMappingUiProvider;
-import org.eclipse.jpt.utility.model.value.PropertyValueModel;
-import org.eclipse.swt.widgets.Composite;
-
-public class EclipseLinkOrmOneToManyMappingUiProvider
-	extends AbstractOneToManyMappingUiProvider<EclipseLinkOrmOneToManyMapping>
-{
-	// singleton
-	private static final EclipseLinkOrmOneToManyMappingUiProvider INSTANCE = 
-		new EclipseLinkOrmOneToManyMappingUiProvider();
-	
-	/**
-	 * Return the singleton.
-	 */
-	public static AttributeMappingUiProvider<EclipseLinkOrmOneToManyMapping> instance() {
-		return INSTANCE;
-	}
-	
-	
-	/**
-	 * Ensure single instance.
-	 */
-	private EclipseLinkOrmOneToManyMappingUiProvider() {
-		super();
-	}
-	
-	public IContentType getContentType() {
-		return JptEclipseLinkCorePlugin.ECLIPSELINK_ORM_XML_CONTENT_TYPE;
-	}
-	
-	public JpaComposite buildAttributeMappingComposite(
-			JpaUiFactory factory,
-			PropertyValueModel<EclipseLinkOrmOneToManyMapping> subjectHolder,
-			Composite parent,
-			WidgetFactory widgetFactory) {
-		return new EclipseLinkOneToManyMappingComposite(subjectHolder, parent, widgetFactory);
-	}
-}
diff --git a/jpa/plugins/org.eclipse.jpt.eclipselink.ui/src/org/eclipse/jpt/eclipselink/ui/internal/orm/details/EclipseLinkOrmOneToOneMappingUiProvider.java b/jpa/plugins/org.eclipse.jpt.eclipselink.ui/src/org/eclipse/jpt/eclipselink/ui/internal/orm/details/EclipseLinkOrmOneToOneMappingUiProvider.java
deleted file mode 100644
index 117110c..0000000
--- a/jpa/plugins/org.eclipse.jpt.eclipselink.ui/src/org/eclipse/jpt/eclipselink/ui/internal/orm/details/EclipseLinkOrmOneToOneMappingUiProvider.java
+++ /dev/null
@@ -1,57 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008, 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- *
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.eclipselink.ui.internal.orm.details;
-
-import org.eclipse.core.runtime.content.IContentType;
-import org.eclipse.jpt.eclipselink.core.internal.JptEclipseLinkCorePlugin;
-import org.eclipse.jpt.eclipselink.core.internal.context.orm.EclipseLinkOrmOneToOneMapping;
-import org.eclipse.jpt.eclipselink.ui.internal.mappings.details.EclipseLinkOneToOneMappingComposite;
-import org.eclipse.jpt.ui.JpaUiFactory;
-import org.eclipse.jpt.ui.WidgetFactory;
-import org.eclipse.jpt.ui.details.AttributeMappingUiProvider;
-import org.eclipse.jpt.ui.details.JpaComposite;
-import org.eclipse.jpt.ui.internal.details.AbstractOneToOneMappingUiProvider;
-import org.eclipse.jpt.utility.model.value.PropertyValueModel;
-import org.eclipse.swt.widgets.Composite;
-
-public class EclipseLinkOrmOneToOneMappingUiProvider
-	extends AbstractOneToOneMappingUiProvider<EclipseLinkOrmOneToOneMapping>
-{
-	// singleton
-	private static final EclipseLinkOrmOneToOneMappingUiProvider INSTANCE = 
-		new EclipseLinkOrmOneToOneMappingUiProvider();
-	
-	/**
-	 * Return the singleton.
-	 */
-	public static AttributeMappingUiProvider<EclipseLinkOrmOneToOneMapping> instance() {
-		return INSTANCE;
-	}
-	
-	
-	/**
-	 * Ensure single instance.
-	 */
-	private EclipseLinkOrmOneToOneMappingUiProvider() {
-		super();
-	}
-	
-	public IContentType getContentType() {
-		return JptEclipseLinkCorePlugin.ECLIPSELINK_ORM_XML_CONTENT_TYPE;
-	}
-	
-	public JpaComposite buildAttributeMappingComposite(
-			JpaUiFactory factory,
-			PropertyValueModel<EclipseLinkOrmOneToOneMapping> subjectHolder,
-			Composite parent,
-			WidgetFactory widgetFactory) {
-		return new EclipseLinkOneToOneMappingComposite(subjectHolder, parent, widgetFactory);
-	}
-}
diff --git a/jpa/plugins/org.eclipse.jpt.eclipselink.ui/src/org/eclipse/jpt/eclipselink/ui/internal/orm/details/EclipseLinkOrmTransformationMappingUiProvider.java b/jpa/plugins/org.eclipse.jpt.eclipselink.ui/src/org/eclipse/jpt/eclipselink/ui/internal/orm/details/EclipseLinkOrmTransformationMappingUiProvider.java
deleted file mode 100644
index 854c7b6..0000000
--- a/jpa/plugins/org.eclipse.jpt.eclipselink.ui/src/org/eclipse/jpt/eclipselink/ui/internal/orm/details/EclipseLinkOrmTransformationMappingUiProvider.java
+++ /dev/null
@@ -1,57 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- *
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.eclipselink.ui.internal.orm.details;
-
-import org.eclipse.core.runtime.content.IContentType;
-import org.eclipse.jpt.eclipselink.core.context.TransformationMapping;
-import org.eclipse.jpt.eclipselink.core.internal.JptEclipseLinkCorePlugin;
-import org.eclipse.jpt.eclipselink.ui.internal.mappings.details.EclipseLinkTransformationMappingUiProvider;
-import org.eclipse.jpt.eclipselink.ui.internal.mappings.details.TransformationMappingComposite;
-import org.eclipse.jpt.ui.JpaUiFactory;
-import org.eclipse.jpt.ui.WidgetFactory;
-import org.eclipse.jpt.ui.details.AttributeMappingUiProvider;
-import org.eclipse.jpt.ui.details.JpaComposite;
-import org.eclipse.jpt.utility.model.value.PropertyValueModel;
-import org.eclipse.swt.widgets.Composite;
-
-public class EclipseLinkOrmTransformationMappingUiProvider extends EclipseLinkTransformationMappingUiProvider<TransformationMapping>
-{
-	// singleton
-	private static final EclipseLinkOrmTransformationMappingUiProvider INSTANCE = 
-		new EclipseLinkOrmTransformationMappingUiProvider();
-	
-	/**
-	 * Return the singleton.
-	 */
-	public static AttributeMappingUiProvider<TransformationMapping> instance() {
-		return INSTANCE;
-	}
-	
-	
-	/**
-	 * Ensure single instance.
-	 */
-	private EclipseLinkOrmTransformationMappingUiProvider() {
-		super();
-	}
-	
-	public IContentType getContentType() {
-		return JptEclipseLinkCorePlugin.ECLIPSELINK_ORM_XML_CONTENT_TYPE;
-	}
-	
-	public JpaComposite buildAttributeMappingComposite(
-		JpaUiFactory factory,
-		PropertyValueModel<TransformationMapping> subjectHolder,
-		Composite parent,
-		WidgetFactory widgetFactory) {
-		
-		return new TransformationMappingComposite(subjectHolder, parent, widgetFactory);
-	}
-}
diff --git a/jpa/plugins/org.eclipse.jpt.eclipselink.ui/src/org/eclipse/jpt/eclipselink/ui/internal/orm/details/EclipseLinkOrmTransientMappingUiProvider.java b/jpa/plugins/org.eclipse.jpt.eclipselink.ui/src/org/eclipse/jpt/eclipselink/ui/internal/orm/details/EclipseLinkOrmTransientMappingUiProvider.java
deleted file mode 100644
index 47dd82a..0000000
--- a/jpa/plugins/org.eclipse.jpt.eclipselink.ui/src/org/eclipse/jpt/eclipselink/ui/internal/orm/details/EclipseLinkOrmTransientMappingUiProvider.java
+++ /dev/null
@@ -1,57 +0,0 @@
-/*******************************************************************************
- *  Copyright (c) 2009  Oracle. 
- *  All rights reserved.  This program and the accompanying materials are 
- *  made available under the terms of the Eclipse Public License v1.0 which 
- *  accompanies this distribution, and is available at 
- *  http://www.eclipse.org/legal/epl-v10.html
- *  
- *  Contributors: 
- *  	Oracle - initial API and implementation
- *******************************************************************************/
-package org.eclipse.jpt.eclipselink.ui.internal.orm.details;
-
-import org.eclipse.core.runtime.content.IContentType;
-import org.eclipse.jpt.core.context.orm.OrmTransientMapping;
-import org.eclipse.jpt.eclipselink.core.internal.JptEclipseLinkCorePlugin;
-import org.eclipse.jpt.ui.JpaUiFactory;
-import org.eclipse.jpt.ui.WidgetFactory;
-import org.eclipse.jpt.ui.details.AttributeMappingUiProvider;
-import org.eclipse.jpt.ui.details.JpaComposite;
-import org.eclipse.jpt.ui.internal.details.AbstractTransientMappingUiProvider;
-import org.eclipse.jpt.utility.model.value.PropertyValueModel;
-import org.eclipse.swt.widgets.Composite;
-
-public class EclipseLinkOrmTransientMappingUiProvider
-	extends AbstractTransientMappingUiProvider<OrmTransientMapping>
-{
-	// singleton
-	private static final EclipseLinkOrmTransientMappingUiProvider INSTANCE = 
-		new EclipseLinkOrmTransientMappingUiProvider();
-	
-	/**
-	 * Return the singleton.
-	 */
-	public static AttributeMappingUiProvider<OrmTransientMapping> instance() {
-		return INSTANCE;
-	}
-	
-	
-	/**
-	 * Ensure single instance.
-	 */
-	private EclipseLinkOrmTransientMappingUiProvider() {
-		super();
-	}
-	
-	public IContentType getContentType() {
-		return JptEclipseLinkCorePlugin.ECLIPSELINK_ORM_XML_CONTENT_TYPE;
-	}	
-	
-	public JpaComposite buildAttributeMappingComposite(
-			JpaUiFactory factory,
-			PropertyValueModel<OrmTransientMapping> subjectHolder,
-			Composite parent,
-			WidgetFactory widgetFactory) {
-		return factory.createOrmTransientMappingComposite(subjectHolder, parent, widgetFactory);
-	}
-}
diff --git a/jpa/plugins/org.eclipse.jpt.eclipselink.ui/src/org/eclipse/jpt/eclipselink/ui/internal/orm/details/EclipseLinkOrmVariableOneToOneMappingUiProvider.java b/jpa/plugins/org.eclipse.jpt.eclipselink.ui/src/org/eclipse/jpt/eclipselink/ui/internal/orm/details/EclipseLinkOrmVariableOneToOneMappingUiProvider.java
deleted file mode 100644
index 7e0f297..0000000
--- a/jpa/plugins/org.eclipse.jpt.eclipselink.ui/src/org/eclipse/jpt/eclipselink/ui/internal/orm/details/EclipseLinkOrmVariableOneToOneMappingUiProvider.java
+++ /dev/null
@@ -1,56 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- *
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.eclipselink.ui.internal.orm.details;
-
-import org.eclipse.core.runtime.content.IContentType;
-import org.eclipse.jpt.eclipselink.core.context.VariableOneToOneMapping;
-import org.eclipse.jpt.eclipselink.core.internal.JptEclipseLinkCorePlugin;
-import org.eclipse.jpt.eclipselink.ui.internal.mappings.details.EclipseLinkVariableOneToOneMappingUiProvider;
-import org.eclipse.jpt.eclipselink.ui.internal.mappings.details.VariableOneToOneMappingComposite;
-import org.eclipse.jpt.ui.JpaUiFactory;
-import org.eclipse.jpt.ui.WidgetFactory;
-import org.eclipse.jpt.ui.details.AttributeMappingUiProvider;
-import org.eclipse.jpt.ui.details.JpaComposite;
-import org.eclipse.jpt.utility.model.value.PropertyValueModel;
-import org.eclipse.swt.widgets.Composite;
-
-public class EclipseLinkOrmVariableOneToOneMappingUiProvider extends EclipseLinkVariableOneToOneMappingUiProvider<VariableOneToOneMapping>
-{
-	// singleton
-	private static final EclipseLinkOrmVariableOneToOneMappingUiProvider INSTANCE = 
-		new EclipseLinkOrmVariableOneToOneMappingUiProvider();
-	
-	/**
-	 * Return the singleton.
-	 */
-	public static AttributeMappingUiProvider<VariableOneToOneMapping> instance() {
-		return INSTANCE;
-	}
-	
-	
-	/**
-	 * Ensure single instance.
-	 */
-	private EclipseLinkOrmVariableOneToOneMappingUiProvider() {
-		super();
-	}
-	
-	public IContentType getContentType() {
-		return JptEclipseLinkCorePlugin.ECLIPSELINK_ORM_XML_CONTENT_TYPE;
-	}
-	
-	public JpaComposite buildAttributeMappingComposite(
-			JpaUiFactory factory,
-			PropertyValueModel<VariableOneToOneMapping> subjectHolder,
-			Composite parent,
-			WidgetFactory widgetFactory) {
-		return new VariableOneToOneMappingComposite(subjectHolder, parent, widgetFactory);
-	}
-}
diff --git a/jpa/plugins/org.eclipse.jpt.eclipselink.ui/src/org/eclipse/jpt/eclipselink/ui/internal/orm/details/EclipseLinkOrmVersionMappingComposite.java b/jpa/plugins/org.eclipse.jpt.eclipselink.ui/src/org/eclipse/jpt/eclipselink/ui/internal/orm/details/EclipseLinkOrmVersionMappingComposite.java
deleted file mode 100644
index 233f7a9..0000000
--- a/jpa/plugins/org.eclipse.jpt.eclipselink.ui/src/org/eclipse/jpt/eclipselink/ui/internal/orm/details/EclipseLinkOrmVersionMappingComposite.java
+++ /dev/null
@@ -1,45 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- *
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.eclipselink.ui.internal.orm.details;
-
-import org.eclipse.jpt.core.context.VersionMapping;
-import org.eclipse.jpt.eclipselink.core.context.Convert;
-import org.eclipse.jpt.eclipselink.ui.internal.mappings.details.EclipseLinkVersionMappingComposite;
-import org.eclipse.jpt.ui.WidgetFactory;
-import org.eclipse.jpt.ui.details.JpaComposite;
-import org.eclipse.jpt.ui.internal.widgets.Pane;
-import org.eclipse.jpt.utility.model.value.PropertyValueModel;
-import org.eclipse.swt.widgets.Composite;
-
-//Temporary to remove the Converters section from orm basic mapping.
-//This is supported in EclipseLink in version 1.1, but not 1.0
-public class EclipseLinkOrmVersionMappingComposite extends EclipseLinkVersionMappingComposite implements JpaComposite
-{
-	/**
-	 * Creates a new <code>EclipseLinkOrmVersionMappingComposite</code>.
-	 *
-	 * @param subjectHolder The holder of the subject <code>VersionMapping</code>
-	 * @param parent The parent container
-	 * @param widgetFactory The factory used to create various common widgets
-	 */
-	public EclipseLinkOrmVersionMappingComposite(PropertyValueModel<? extends VersionMapping> subjectHolder,
-	                               Composite parent,
-	                               WidgetFactory widgetFactory) {
-
-		super(subjectHolder, parent, widgetFactory);
-	}
-
-
-	@Override
-	//everything but the 'Defaine Converter' section.  This is not supported in eclipselink 1.0, but is in 1.1
-	protected Pane<Convert> buildConvertComposite(PropertyValueModel<Convert> convertHolder, Composite container) {
-		return new OrmConvertComposite(convertHolder, container, getWidgetFactory());
-	}
-}
\ No newline at end of file
diff --git a/jpa/plugins/org.eclipse.jpt.eclipselink.ui/src/org/eclipse/jpt/eclipselink/ui/internal/orm/details/EclipseLinkOrmVersionMappingUiProvider.java b/jpa/plugins/org.eclipse.jpt.eclipselink.ui/src/org/eclipse/jpt/eclipselink/ui/internal/orm/details/EclipseLinkOrmVersionMappingUiProvider.java
deleted file mode 100644
index 0aa08db..0000000
--- a/jpa/plugins/org.eclipse.jpt.eclipselink.ui/src/org/eclipse/jpt/eclipselink/ui/internal/orm/details/EclipseLinkOrmVersionMappingUiProvider.java
+++ /dev/null
@@ -1,56 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- *
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.eclipselink.ui.internal.orm.details;
-
-import org.eclipse.core.runtime.content.IContentType;
-import org.eclipse.jpt.eclipselink.core.internal.JptEclipseLinkCorePlugin;
-import org.eclipse.jpt.eclipselink.core.internal.context.orm.EclipseLinkOrmVersionMapping;
-import org.eclipse.jpt.ui.JpaUiFactory;
-import org.eclipse.jpt.ui.WidgetFactory;
-import org.eclipse.jpt.ui.details.AttributeMappingUiProvider;
-import org.eclipse.jpt.ui.details.JpaComposite;
-import org.eclipse.jpt.ui.internal.details.AbstractVersionMappingUiProvider;
-import org.eclipse.jpt.utility.model.value.PropertyValueModel;
-import org.eclipse.swt.widgets.Composite;
-
-public class EclipseLinkOrmVersionMappingUiProvider
-	extends AbstractVersionMappingUiProvider<EclipseLinkOrmVersionMapping>
-{
-	// singleton
-	private static final EclipseLinkOrmVersionMappingUiProvider INSTANCE = 
-		new EclipseLinkOrmVersionMappingUiProvider();
-	
-	/**
-	 * Return the singleton.
-	 */
-	public static AttributeMappingUiProvider<EclipseLinkOrmVersionMapping> instance() {
-		return INSTANCE;
-	}
-	
-	
-	/**
-	 * Ensure single instance.
-	 */
-	private EclipseLinkOrmVersionMappingUiProvider() {
-		super();
-	}
-	
-	public IContentType getContentType() {
-		return JptEclipseLinkCorePlugin.ECLIPSELINK_ORM_XML_CONTENT_TYPE;
-	}
-	
-	public JpaComposite buildAttributeMappingComposite(
-			JpaUiFactory factory,
-			PropertyValueModel<EclipseLinkOrmVersionMapping> subjectHolder,
-			Composite parent,
-			WidgetFactory widgetFactory) {
-		return new EclipseLinkOrmVersionMappingComposite(subjectHolder, parent, widgetFactory);
-	}
-}
diff --git a/jpa/plugins/org.eclipse.jpt.eclipselink.ui/src/org/eclipse/jpt/eclipselink/ui/internal/orm/details/EntityMappingsDetailsPage.java b/jpa/plugins/org.eclipse.jpt.eclipselink.ui/src/org/eclipse/jpt/eclipselink/ui/internal/orm/details/EntityMappingsDetailsPage.java
deleted file mode 100644
index bf5aaa8..0000000
--- a/jpa/plugins/org.eclipse.jpt.eclipselink.ui/src/org/eclipse/jpt/eclipselink/ui/internal/orm/details/EntityMappingsDetailsPage.java
+++ /dev/null
@@ -1,167 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2008 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- *
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.eclipselink.ui.internal.orm.details;
-
-import org.eclipse.jpt.core.context.orm.EntityMappings;
-import org.eclipse.jpt.eclipselink.core.internal.context.orm.ConverterHolder;
-import org.eclipse.jpt.eclipselink.core.internal.context.orm.EclipseLinkEntityMappings;
-import org.eclipse.jpt.eclipselink.ui.internal.mappings.EclipseLinkUiMappingsMessages;
-import org.eclipse.jpt.ui.WidgetFactory;
-import org.eclipse.jpt.ui.internal.JpaHelpContextIds;
-import org.eclipse.jpt.ui.internal.orm.JptUiOrmMessages;
-import org.eclipse.jpt.ui.internal.orm.details.OrmGeneratorsComposite;
-import org.eclipse.jpt.ui.internal.orm.details.OrmPackageChooser;
-import org.eclipse.jpt.ui.internal.orm.details.OrmQueriesComposite;
-import org.eclipse.jpt.ui.internal.orm.details.PersistenceUnitMetadataComposite;
-import org.eclipse.jpt.utility.internal.model.value.PropertyAspectAdapter;
-import org.eclipse.jpt.utility.model.value.PropertyValueModel;
-import org.eclipse.swt.widgets.Composite;
-
-/**
- * Here the layout of this pane:
- * <pre>
- * -----------------------------------------------------------------------------
- * | ------------------------------------------------------------------------- |
- * | |                                                                       | |
- * | | XmlPackageChooser                                                     | |
- * | |                                                                       | |
- * | ------------------------------------------------------------------------- |
- * |              ------------------------------------------------------------ |
- * | Schema:      | SchemaCombo                                              | |
- * |              ------------------------------------------------------------ |
- * |              ------------------------------------------------------------ |
- * | Catalog:     | CatalogCombo                                             | |
- * |              ------------------------------------------------------------ |
- * |              ------------------------------------------------------------ |
- * | Access Type: |                                                        |v| |
- * |              ------------------------------------------------------------ |
- * |                                                                           |
- * | ------------------------------------------------------------------------- |
- * | |                                                                       | |
- * | | PersistenceUnitMetadataComposite                                      | |
- * | |                                                                       | |
- * | ------------------------------------------------------------------------- |
- * | ------------------------------------------------------------------------- |
- * | |                                                                       | |
- * | | OrmGeneratorsComposite                                                | |
- * | |                                                                       | |
- * | ------------------------------------------------------------------------- |
- * | ------------------------------------------------------------------------- |
- * | |                                                                       | |
- * | | OrmQueriesComposite                                                   | |
- * | |                                                                       | |
- * | ------------------------------------------------------------------------- |
- * | ------------------------------------------------------------------------- |
- * | |                                                                       | |
- * | | ConvertersComposite                                                   | |
- * | |                                                                       | |
- * | ------------------------------------------------------------------------- |
- * -----------------------------------------------------------------------------</pre>
- *
- * @see EntityMappings
- * @see EntityMappingsDetailsPage - The parent container
- * @see CatalogCombo
- * @see EnumFormComboViewer
- * @see OrmGeneratorsComposite
- * @see OrmPackageChooser
- * @see OrmQueriesComposite
- * @see PersistenceUnitMetadataComposite
- * @see SchemaCombo
- *
- * @version 2.1
- * @since 2.1
- */
-public class EntityMappingsDetailsPage extends org.eclipse.jpt.ui.internal.orm.details.EntityMappingsDetailsPage
-{
-	/**
-	 * Creates a new <code>XmlEntityMappingsDetailsPage</code>.
-	 *
-	 * @param parent The parent container
-	 * @param widgetFactory The factory used to create various common widgets
-	 */
-	public EntityMappingsDetailsPage(Composite parent,
-	                                 WidgetFactory widgetFactory) {
-
-		super(parent, widgetFactory);
-	}
-
-
-	@Override
-	protected void initializeLayout(Composite container) {
-
-		// Package widgets
-		new OrmPackageChooser(this, container);
-
-		// Schema widgets
-		addLabeledComposite(
-			container,
-			JptUiOrmMessages.EntityMappingsDetailsPage_schema,
-			addSchemaCombo(container),
-			JpaHelpContextIds.ENTITY_ORM_SCHEMA
-		);
-
-		// Catalog widgets
-		addLabeledComposite(
-			container,
-			JptUiOrmMessages.EntityMappingsDetailsPage_catalog,
-			addCatalogCombo(container),
-			JpaHelpContextIds.ENTITY_ORM_CATALOG
-		);
-
-		// Access Type widgets
-		addLabeledComposite(
-			container,
-			JptUiOrmMessages.EntityMappingsDetailsPage_access,
-			addAccessTypeCombo(container),
-			JpaHelpContextIds.ENTITY_ORM_ACCESS
-		);
-
-		// Persistence Unit Metadata widgets
-		new PersistenceUnitMetadataComposite(
-			this,
-			buildPersistentUnitMetadataHolder(),
-			addSubPane(container, 5)
-		);
-
-		// Generators pane
-		new OrmGeneratorsComposite(
-			this,
-			container
-		);
-
-		// Queries pane
-		new OrmQueriesComposite(
-			this,
-			container
-		);
-		
-		// Converters section
-		container = addCollapsableSection(
-			container,
-			EclipseLinkUiMappingsMessages.ConvertersComposite_Label
-		);
-		
-		new ConvertersComposite(
-			this,
-			buildConverterHolder(),
-			container
-		);
-	}
-	
-	private PropertyValueModel<ConverterHolder> buildConverterHolder() {
-		return new PropertyAspectAdapter<EntityMappings, ConverterHolder>(getSubjectHolder()) {
-			@Override
-			protected ConverterHolder buildValue_() {
-				return ((EclipseLinkEntityMappings) this.subject).getConverterHolder();
-			}
-		};
-	}
-
-}
\ No newline at end of file
diff --git a/jpa/plugins/org.eclipse.jpt.eclipselink.ui/src/org/eclipse/jpt/eclipselink/ui/internal/orm/details/OrmCachingComposite.java b/jpa/plugins/org.eclipse.jpt.eclipselink.ui/src/org/eclipse/jpt/eclipselink/ui/internal/orm/details/OrmCachingComposite.java
deleted file mode 100644
index 1d4989c..0000000
--- a/jpa/plugins/org.eclipse.jpt.eclipselink.ui/src/org/eclipse/jpt/eclipselink/ui/internal/orm/details/OrmCachingComposite.java
+++ /dev/null
@@ -1,62 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- *
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.eclipselink.ui.internal.orm.details;
-
-import org.eclipse.jpt.eclipselink.core.context.Caching;
-import org.eclipse.jpt.eclipselink.ui.internal.mappings.details.CachingComposite;
-import org.eclipse.jpt.ui.internal.widgets.FormPane;
-import org.eclipse.jpt.utility.model.value.PropertyValueModel;
-import org.eclipse.swt.widgets.Composite;
-
-/**
- * This pane shows the caching options.
- * <p>
- * Here the layout of this pane:
- * <pre>
- * -----------------------------------------------------------------------------
- * | x Shared                                                                  |
- * |    CacheTypeComposite                                                     |
- * |    CacheSizeComposite                                                     |
- * |    > Advanced   	                                                       |
- * |    	ExpiryComposite                                                    |
- * |    	AlwaysRefreshComposite                                             |
- * |   		RefreshOnlyIfNewerComposite                                        |
- * |    	DisableHitsComposite                                               |
- * |    	CacheCoordinationComposite                                         |
- * | ExistenceTypeComposite                                                    |
- * -----------------------------------------------------------------------------</pre>
- *
- * @see Entity
- * @see EclipseLinkCaching
- * @see EclipseLinkJavaEntityComposite - The parent container
- * @see CacheTypeComposite
- * @see CacheSizeComposite
- * @see AlwaysRefreshComposite
- * @see RefreshOnlyIfNewerComposite
- * @see DisableHitsComposite
- *
- * @version 2.1
- * @since 2.1
- */
-public class OrmCachingComposite extends CachingComposite<Caching>
-{
-
-	public OrmCachingComposite(FormPane<?> parentPane,
-        PropertyValueModel<Caching> subjectHolder,
-        Composite parent) {
-
-		super(parentPane, subjectHolder, parent);
-	}
-
-	@Override
-	protected void initializeExistenceCheckingComposite(Composite parent) {
-		new OrmExistenceCheckingComposite(this, parent);
-	}
-}
\ No newline at end of file
diff --git a/jpa/plugins/org.eclipse.jpt.eclipselink.ui/src/org/eclipse/jpt/eclipselink/ui/internal/orm/details/OrmConvertComposite.java b/jpa/plugins/org.eclipse.jpt.eclipselink.ui/src/org/eclipse/jpt/eclipselink/ui/internal/orm/details/OrmConvertComposite.java
deleted file mode 100644
index d03f6f0..0000000
--- a/jpa/plugins/org.eclipse.jpt.eclipselink.ui/src/org/eclipse/jpt/eclipselink/ui/internal/orm/details/OrmConvertComposite.java
+++ /dev/null
@@ -1,220 +0,0 @@
-/*******************************************************************************
- *  Copyright (c) 2008 Oracle. All rights reserved. This
- *  program and the accompanying materials are made available under the terms of
- *  the Eclipse Public License v1.0 which accompanies this distribution, and is
- *  available at http://www.eclipse.org/legal/epl-v10.html
- *
- *  Contributors: Oracle. - initial API and implementation
- *******************************************************************************/
-package org.eclipse.jpt.eclipselink.ui.internal.orm.details;
-
-import java.util.ArrayList;
-import java.util.ListIterator;
-import org.eclipse.jpt.eclipselink.core.context.Convert;
-import org.eclipse.jpt.eclipselink.core.internal.context.persistence.EclipseLinkPersistenceUnit;
-import org.eclipse.jpt.eclipselink.ui.internal.mappings.EclipseLinkUiMappingsMessages;
-import org.eclipse.jpt.ui.WidgetFactory;
-import org.eclipse.jpt.ui.internal.mappings.JptUiMappingsMessages;
-import org.eclipse.jpt.ui.internal.util.PaneEnabler;
-import org.eclipse.jpt.ui.internal.util.SWTUtil;
-import org.eclipse.jpt.ui.internal.widgets.FormPane;
-import org.eclipse.jpt.utility.internal.CollectionTools;
-import org.eclipse.jpt.utility.internal.StringConverter;
-import org.eclipse.jpt.utility.internal.model.value.CompositeListValueModel;
-import org.eclipse.jpt.utility.internal.model.value.ListAspectAdapter;
-import org.eclipse.jpt.utility.internal.model.value.PropertyAspectAdapter;
-import org.eclipse.jpt.utility.internal.model.value.PropertyListValueModelAdapter;
-import org.eclipse.jpt.utility.internal.model.value.StaticListValueModel;
-import org.eclipse.jpt.utility.internal.model.value.TransformationPropertyValueModel;
-import org.eclipse.jpt.utility.model.value.ListValueModel;
-import org.eclipse.jpt.utility.model.value.PropertyValueModel;
-import org.eclipse.jpt.utility.model.value.WritablePropertyValueModel;
-import org.eclipse.osgi.util.NLS;
-import org.eclipse.swt.custom.CCombo;
-import org.eclipse.swt.widgets.Composite;
-
-/**
- * Here the layout of this pane:
- * <pre>
- * -----------------------------------------------------------------------------
- * |            -------------------------------------------------------------- |
- * | Converter: |                                                          |v| |
- * |            -------------------------------------------------------------- |
- * -----------------------------------------------------------------------------</pre>
- *
- * @see EclipseLinkConvert
- * @see EclipseLinkBasicMappingComposite - A container of this widget
- *
- * @version 2.1
- * @since 2.1
- */
-
-//Temporary to remove the Define Converters section from orm basic, id, version mapping.
-//This is supported in EclipseLink in version 1.1, but not 1.0
-public class OrmConvertComposite extends FormPane<Convert>
-{
-
-	/**
-	 * A key used to represent the default value, this is required to convert
-	 * the selected item from a combo to <code>null</code>. This key is most
-	 * likely never typed the user and it will help to convert the value to
-	 * <code>null</code> when it's time to set the new selected value into the
-	 * model.
-	 */
-	protected static String DEFAULT_KEY = "?!#!?#?#?default?#?!#?!#?"; //$NON-NLS-1$
-	
-	
-	/**
-	 * Creates a new <code>EnumTypeComposite</code>.
-	 *
-	 * @param parentPane The parent container of this one
-	 * @param parent The parent container
-	 */
-	public OrmConvertComposite(PropertyValueModel<? extends Convert> subjectHolder,
-			Composite parent,
-			WidgetFactory widgetFactory) {
-
-		super(subjectHolder, parent, widgetFactory);
-	}
-
-	@Override
-	protected void initializeLayout(Composite container) {
-		CCombo combo = addLabeledEditableCCombo(
-			container,
-			EclipseLinkUiMappingsMessages.ConvertComposite_converterNameLabel,
-			buildConvertNameListHolder(),
-			buildConvertNameHolder(),
-			buildNameConverter(),
-			null
-		);
-		SWTUtil.attachDefaultValueHandler(combo);
-				
-		new PaneEnabler(buildBooleanHolder(), this);
-	}
-	
-	protected final WritablePropertyValueModel<String> buildConvertNameHolder() {
-		return new PropertyAspectAdapter<Convert, String>(getSubjectHolder(), Convert.SPECIFIED_CONVERTER_NAME_PROPERTY) {
-			@Override
-			protected String buildValue_() {
-				return this.subject.getSpecifiedConverterName();
-			}
-
-			@Override
-			protected void setValue_(String value) {
-				// Convert the default value or an empty string to null
-				if ((value != null) &&
-				   ((value.length() == 0) || value.startsWith(DEFAULT_KEY))) {
-
-					value = null;
-				}
-				this.subject.setSpecifiedConverterName(value);
-			}
-		};
-	}
-	private ListValueModel<String> buildConvertNameListHolder() {
-		java.util.List<ListValueModel<String>> list = new ArrayList<ListValueModel<String>>();
-		list.add(buildDefaultNameListHolder());
-		list.add(buildReservedConverterNameListHolder());
-		list.add(buildConverterNameListHolder());
-		return new CompositeListValueModel<ListValueModel<String>, String>(list);
-	}
-	
-	protected ListValueModel<String> buildDefaultNameListHolder() {
-		return new PropertyListValueModelAdapter<String>(
-			buildDefaultNameHolder()
-		);
-	}
-
-	private WritablePropertyValueModel<String> buildDefaultNameHolder() {
-		return new PropertyAspectAdapter<Convert, String>(getSubjectHolder(), Convert.DEFAULT_CONVERTER_NAME_PROPERTY) {
-			@Override
-			protected String buildValue_() {
-				String name = this.subject.getDefaultConverterName();
-
-				if (name == null) {
-					name = DEFAULT_KEY;
-				}
-				else {
-					name = DEFAULT_KEY + name;
-				}
-
-				return name;
-			}
-		};
-	}
-
-	private StringConverter<String> buildNameConverter() {
-		return new StringConverter<String>() {
-			public String convertToString(String value) {
-
-				if (getSubject() == null) {
-					return value;
-				}
-
-				if (value == null) {
-					value = getSubject().getDefaultConverterName();
-
-					if (value != null) {
-						value = DEFAULT_KEY + value;
-					}
-					else {
-						value = DEFAULT_KEY;
-					}
-				}
-
-				if (value.startsWith(DEFAULT_KEY)) {
-					String defaultName = value.substring(DEFAULT_KEY.length());
-
-					if (defaultName.length() > 0) {
-						value = NLS.bind(
-							JptUiMappingsMessages.DefaultWithOneParam,
-							defaultName
-						);
-					}
-					else {
-						value = JptUiMappingsMessages.DefaultEmpty;
-					}
-				}
-
-				return value;
-			}
-		};
-	}
-
-	protected ListValueModel<String> buildReservedConverterNameListHolder() {
-		return new StaticListValueModel<String>(Convert.RESERVED_CONVERTER_NAMES);
-	}
-	
-	protected ListValueModel<String> buildConverterNameListHolder() {
-		return new ListAspectAdapter<EclipseLinkPersistenceUnit, String>(
-			buildPersistenceUnitHolder(),
-			EclipseLinkPersistenceUnit.CONVERTERS_LIST)//TODO need EclipseLinkPersistenceUnit interface
-		{
-			@Override
-			protected ListIterator<String> listIterator_() {
-				return CollectionTools.listIterator(CollectionTools.sort(this.subject.uniqueConverterNames()));
-			}
-		};
-	}
-	
-	protected PropertyValueModel<EclipseLinkPersistenceUnit> buildPersistenceUnitHolder() {
-		return new PropertyAspectAdapter<Convert, EclipseLinkPersistenceUnit>(getSubjectHolder()) {
-			@Override
-			protected EclipseLinkPersistenceUnit buildValue_() {
-				return (EclipseLinkPersistenceUnit) getSubject().getPersistenceUnit();
-			}
-		};
-	}
-
-	protected PropertyValueModel<Boolean> buildBooleanHolder() {
-		return new TransformationPropertyValueModel<Convert, Boolean>(getSubjectHolder()) {
-			@Override
-			protected Boolean transform(Convert value) {
-				if (getSubject() != null && getSubject().getParent().getPersistentAttribute().isVirtual()) {
-					return Boolean.FALSE;
-				}
-				return Boolean.valueOf(value != null);
-			}
-		};
-	}
-}
diff --git a/jpa/plugins/org.eclipse.jpt.eclipselink.ui/src/org/eclipse/jpt/eclipselink/ui/internal/orm/details/OrmExistenceCheckingComposite.java b/jpa/plugins/org.eclipse.jpt.eclipselink.ui/src/org/eclipse/jpt/eclipselink/ui/internal/orm/details/OrmExistenceCheckingComposite.java
deleted file mode 100644
index 919c110..0000000
--- a/jpa/plugins/org.eclipse.jpt.eclipselink.ui/src/org/eclipse/jpt/eclipselink/ui/internal/orm/details/OrmExistenceCheckingComposite.java
+++ /dev/null
@@ -1,106 +0,0 @@
-/*******************************************************************************
- *  Copyright (c) 2008 Oracle. All rights reserved. This
- *  program and the accompanying materials are made available under the terms of
- *  the Eclipse Public License v1.0 which accompanies this distribution, and is
- *  available at http://www.eclipse.org/legal/epl-v10.html
- *
- *  Contributors: Oracle. - initial API and implementation
- *******************************************************************************/
-package org.eclipse.jpt.eclipselink.ui.internal.orm.details;
-
-import java.util.Collection;
-import org.eclipse.jpt.eclipselink.core.context.Caching;
-import org.eclipse.jpt.eclipselink.core.context.ExistenceType;
-import org.eclipse.jpt.eclipselink.ui.internal.mappings.EclipseLinkUiMappingsMessages;
-import org.eclipse.jpt.ui.internal.widgets.EnumFormComboViewer;
-import org.eclipse.jpt.ui.internal.widgets.FormPane;
-import org.eclipse.swt.widgets.Composite;
-
-/**
- * Here is the layout of this pane:
- * <pre>
- * -------------------------------------------------------------------------
- * |       			  		---------------------------------------------- |
- * | x Existence Checking:  |                                          |v| |
- * |       					---------------------------------------------- |
- * -------------------------------------------------------------------------</pre>
- *
- * @see EclipseLinkCaching
- * @see CachingComposite - A container of this widget
- *
- * @version 2.1
- * @since 2.1
- */
-public class OrmExistenceCheckingComposite extends FormPane<Caching> {
-
-	/**
-	 * Creates a new <code>ExistenceCheckingComposite</code>.
-	 *
-	 * @param parentPane The parent container of this one
-	 * @param parent The parent container
-	 */
-	public OrmExistenceCheckingComposite(FormPane<? extends Caching> parentPane,
-	                          Composite parent) {
-
-		super(parentPane, parent, false);
-	}
-
-	@Override
-	protected void initializeLayout(Composite container) {
-
-		addLabeledComposite( 
-            container, 
-            EclipseLinkUiMappingsMessages.ExistenceCheckingComposite_label,
-            addExistenceCheckingTypeCombo(container).getControl(), 
-            null 
-       );
-	}
-
-	private EnumFormComboViewer<Caching, ExistenceType> addExistenceCheckingTypeCombo(Composite container) {
-
-		return new EnumFormComboViewer<Caching, ExistenceType>(this, container) {
-
-			@Override
-			protected void addPropertyNames(Collection<String> propertyNames) {
-				super.addPropertyNames(propertyNames);
-				propertyNames.add(Caching.DEFAULT_EXISTENCE_TYPE_PROPERTY);
-				propertyNames.add(Caching.SPECIFIED_EXISTENCE_TYPE_PROPERTY);
-			}
-
-			@Override
-			protected ExistenceType[] getChoices() {
-				return ExistenceType.values();
-			}
-
-			@Override
-			protected ExistenceType getDefaultValue() {
-				return getSubject().getDefaultExistenceType();
-			}
-
-			@Override
-			protected String displayString(ExistenceType value) {
-				return buildDisplayString(
-					EclipseLinkUiMappingsMessages.class,
-					OrmExistenceCheckingComposite.this,
-					value
-				);
-			}
-
-			@Override
-			protected ExistenceType getValue() {
-				return getSubject().getSpecifiedExistenceType();
-			}
-
-			@Override
-			protected void setValue(ExistenceType value) {
-				getSubject().setSpecifiedExistenceType(value);
-			}
-			
-			@Override
-			protected boolean sortChoices() {
-				return false;
-			}
-		};
-	}
-
-}
diff --git a/jpa/plugins/org.eclipse.jpt.eclipselink.ui/src/org/eclipse/jpt/eclipselink/ui/internal/persistence/caching/CacheSizeComposite.java b/jpa/plugins/org.eclipse.jpt.eclipselink.ui/src/org/eclipse/jpt/eclipselink/ui/internal/persistence/caching/CacheSizeComposite.java
deleted file mode 100644
index 92cd039..0000000
--- a/jpa/plugins/org.eclipse.jpt.eclipselink.ui/src/org/eclipse/jpt/eclipselink/ui/internal/persistence/caching/CacheSizeComposite.java
+++ /dev/null
@@ -1,100 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008, 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- *
- * Contributors:
- *     Oracle - initial API and implementation
- *******************************************************************************/
-package org.eclipse.jpt.eclipselink.ui.internal.persistence.caching;
-
-import org.eclipse.jpt.eclipselink.core.internal.context.persistence.caching.Caching;
-import org.eclipse.jpt.eclipselink.ui.internal.EclipseLinkHelpContextIds;
-import org.eclipse.jpt.eclipselink.ui.internal.EclipseLinkUiMessages;
-import org.eclipse.jpt.ui.internal.widgets.IntegerCombo;
-import org.eclipse.jpt.ui.internal.widgets.Pane;
-import org.eclipse.jpt.utility.internal.model.value.PropertyAspectAdapter;
-import org.eclipse.jpt.utility.internal.model.value.TransformationPropertyValueModel;
-import org.eclipse.jpt.utility.model.value.PropertyValueModel;
-import org.eclipse.jpt.utility.model.value.WritablePropertyValueModel;
-import org.eclipse.swt.widgets.Composite;
-
-/**
- * CacheSizeComposite
- */
-public class CacheSizeComposite extends Pane<EntityCacheProperties>
-{
-	/**
-	 * Creates a new <code>CacheTypeComposite</code>.
-	 *
-	 * @param parentController
-	 *            The parent container of this one
-	 * @param parent
-	 *            The parent container
-	 */
-	public CacheSizeComposite(Pane<EntityCacheProperties> parentComposite,
-	                          Composite parent) {
-
-		super(parentComposite, parent);
-	}
-
-	@Override
-	protected void initializeLayout(Composite container) {
-		addCacheSizeCombo(container);
-	}	
-	
-	private void addCacheSizeCombo(Composite container) {
-		new IntegerCombo<EntityCacheProperties>(this, container) {
-			
-			@Override
-			protected String getLabelText() {
-				return EclipseLinkUiMessages.CacheSizeComposite_cacheSize;
-			}
-		
-			@Override
-			protected String getHelpId() {
-				return EclipseLinkHelpContextIds.PERSISTENCE_CACHING;
-			}
-			
-			@Override
-			protected PropertyValueModel<Integer> buildDefaultHolder() {
-				return new PropertyAspectAdapter<Caching, Integer>(buildCachingHolder(), Caching.CACHE_SIZE_DEFAULT_PROPERTY) {
-					@Override
-					protected Integer buildValue_() {
-						Integer value = this.subject.getCacheSizeDefault();
-						if (value == null) {
-							value = this.subject.getDefaultCacheSizeDefault();
-						}
-						return value;
-					}
-				};
-			}
-		
-			@Override
-			protected WritablePropertyValueModel<Integer> buildSelectedItemHolder() {
-				return new PropertyAspectAdapter<EntityCacheProperties, Integer>(getSubjectHolder(), EntityCacheProperties.CACHE_SIZE_PROPERTY) {
-					@Override
-					protected Integer buildValue_() {
-						return this.subject.getCacheSize();
-					}
-
-					@Override
-					protected void setValue_(Integer value) {
-						this.subject.setCacheSize(value);
-					}
-				};
-			}
-		};
-	}
-	
-	private PropertyValueModel<Caching> buildCachingHolder() {
-		return new TransformationPropertyValueModel<EntityCacheProperties, Caching>(getSubjectHolder()) {
-			@Override
-			protected Caching transform_(EntityCacheProperties value) {
-				return value.getCaching();
-			}
-		};
-	}
-
-}
\ No newline at end of file
diff --git a/jpa/plugins/org.eclipse.jpt.eclipselink.ui/src/org/eclipse/jpt/eclipselink/ui/internal/persistence/caching/CacheTypeComposite.java b/jpa/plugins/org.eclipse.jpt.eclipselink.ui/src/org/eclipse/jpt/eclipselink/ui/internal/persistence/caching/CacheTypeComposite.java
deleted file mode 100644
index 15bf299..0000000
--- a/jpa/plugins/org.eclipse.jpt.eclipselink.ui/src/org/eclipse/jpt/eclipselink/ui/internal/persistence/caching/CacheTypeComposite.java
+++ /dev/null
@@ -1,161 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- *
- * Contributors:
- *     Oracle - initial API and implementation
- *******************************************************************************/
-package org.eclipse.jpt.eclipselink.ui.internal.persistence.caching;
-
-import java.util.Collection;
-import org.eclipse.jpt.eclipselink.core.internal.context.persistence.caching.CacheType;
-import org.eclipse.jpt.eclipselink.core.internal.context.persistence.caching.Caching;
-import org.eclipse.jpt.eclipselink.ui.internal.EclipseLinkHelpContextIds;
-import org.eclipse.jpt.eclipselink.ui.internal.EclipseLinkUiMessages;
-import org.eclipse.jpt.ui.internal.listeners.SWTPropertyChangeListenerWrapper;
-import org.eclipse.jpt.ui.internal.widgets.EnumFormComboViewer;
-import org.eclipse.jpt.ui.internal.widgets.Pane;
-import org.eclipse.jpt.utility.internal.model.value.PropertyAspectAdapter;
-import org.eclipse.jpt.utility.internal.model.value.TransformationPropertyValueModel;
-import org.eclipse.jpt.utility.model.event.PropertyChangeEvent;
-import org.eclipse.jpt.utility.model.listener.PropertyChangeListener;
-import org.eclipse.jpt.utility.model.value.PropertyValueModel;
-import org.eclipse.swt.widgets.Composite;
-
-/**
- * CacheTypeComposite
- */
-public class CacheTypeComposite extends Pane<EntityCacheProperties>
-{
-	/**
-	 * Creates a new <code>CacheTypeComposite</code>.
-	 *
-	 * @param parentController
-	 *            The parent container of this one
-	 * @param parent
-	 *            The parent container
-	 */
-	public CacheTypeComposite(Pane<EntityCacheProperties> parentComposite,
-	                          Composite parent) {
-
-		super(parentComposite, parent);
-	}
-
-	@Override
-	protected void initializeLayout(Composite container) {
-
-		this.addLabeledComposite(
-			container,
-			EclipseLinkUiMessages.PersistenceXmlCachingTab_cacheTypeLabel,
-			new CacheTypeCombo(container),
-			EclipseLinkHelpContextIds.PERSISTENCE_CACHING
-		);
-	}
-
-	private class CacheTypeCombo extends EnumFormComboViewer<EntityCacheProperties, CacheType> {
-
-		private CacheTypeCombo(Composite parent) {
-			super(CacheTypeComposite.this, parent);
-		}
-
-		@Override
-		protected void addPropertyNames(Collection<String> propertyNames) {
-			super.addPropertyNames(propertyNames);
-			propertyNames.add(EntityCacheProperties.CACHE_TYPE_PROPERTY);
-		}
-
-		private PropertyValueModel<Caching> buildCachingHolder() {
-			return new TransformationPropertyValueModel<EntityCacheProperties, Caching>(getSubjectHolder()) {
-				@Override
-				protected Caching transform_(EntityCacheProperties value) {
-					return value.getCaching();
-				}
-			};
-		}
-
-		private PropertyValueModel<CacheType> buildDefaultCacheTypeHolder() {
-			return new PropertyAspectAdapter<Caching, CacheType>(buildCachingHolder(), Caching.CACHE_TYPE_DEFAULT_PROPERTY) {
-				@Override
-				protected CacheType buildValue_() {
-					CacheType cacheType = subject.getCacheTypeDefault();
-					if (cacheType == null) {
-						cacheType = subject.getDefaultCacheTypeDefault();
-					}
-					return cacheType;
-				}
-			};
-		}
-
-		private PropertyChangeListener buildDefaultCachingTypePropertyChangeListener() {
-			return new SWTPropertyChangeListenerWrapper(
-				buildDefaultCachingTypePropertyChangeListener_()
-			);
-		}
-
-		private PropertyChangeListener buildDefaultCachingTypePropertyChangeListener_() {
-			return new PropertyChangeListener() {
-				public void propertyChanged(PropertyChangeEvent e) {
-					if ((e.getNewValue() != null) && !getCombo().isDisposed()) {
-						CacheTypeCombo.this.doPopulate();
-					}
-				}
-			};
-		}
-
-		@Override
-		protected CacheType[] getChoices() {
-			return CacheType.values();
-		}
-
-		@Override
-		protected CacheType getDefaultValue() {
-			return this.getSubject().getDefaultCacheType();
-		}
-
-		@Override
-		protected String displayString(CacheType value) {
-			return buildDisplayString(
-				EclipseLinkUiMessages.class,
-				CacheTypeComposite.this,
-				value
-			);
-		}
-
-		@Override
-		protected void doPopulate() {
-			// This is required to allow the class loader to let the listener
-			// written above to access this method
-			super.doPopulate();
-		}
-
-		@Override
-		protected CacheType getValue() {
-			return this.getSubject().getCacheType();
-		}
-
-		@Override
-		protected void initialize() {
-			super.initialize();
-
-			PropertyValueModel<CacheType> defaultCacheTypeHolder =
-				buildDefaultCacheTypeHolder();
-
-			defaultCacheTypeHolder.addPropertyChangeListener(
-				PropertyValueModel.VALUE,
-				buildDefaultCachingTypePropertyChangeListener()
-			);
-		}
-
-		@Override
-		protected void setValue(CacheType value) {
-			this.getSubject().setCacheType(value);
-		}
-
-		@Override
-		protected boolean sortChoices() {
-			return false;
-		}
-	}
-}
\ No newline at end of file
diff --git a/jpa/plugins/org.eclipse.jpt.eclipselink.ui/src/org/eclipse/jpt/eclipselink/ui/internal/persistence/caching/DefaultCacheSizeComposite.java b/jpa/plugins/org.eclipse.jpt.eclipselink.ui/src/org/eclipse/jpt/eclipselink/ui/internal/persistence/caching/DefaultCacheSizeComposite.java
deleted file mode 100644
index a439b2b..0000000
--- a/jpa/plugins/org.eclipse.jpt.eclipselink.ui/src/org/eclipse/jpt/eclipselink/ui/internal/persistence/caching/DefaultCacheSizeComposite.java
+++ /dev/null
@@ -1,87 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008, 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- *
- * Contributors:
- *     Oracle - initial API and implementation
- *******************************************************************************/
-package org.eclipse.jpt.eclipselink.ui.internal.persistence.caching;
-
-import org.eclipse.jpt.eclipselink.core.internal.context.persistence.caching.Caching;
-import org.eclipse.jpt.eclipselink.ui.internal.EclipseLinkHelpContextIds;
-import org.eclipse.jpt.eclipselink.ui.internal.EclipseLinkUiMessages;
-import org.eclipse.jpt.ui.internal.widgets.IntegerCombo;
-import org.eclipse.jpt.ui.internal.widgets.Pane;
-import org.eclipse.jpt.utility.internal.model.value.PropertyAspectAdapter;
-import org.eclipse.jpt.utility.model.value.PropertyValueModel;
-import org.eclipse.jpt.utility.model.value.WritablePropertyValueModel;
-import org.eclipse.swt.widgets.Composite;
-
-/**
- * CacheSizeComposite
- */
-public class DefaultCacheSizeComposite extends Pane<Caching>
-{
-	/**
-	 * Creates a new <code>CacheTypeComposite</code>.
-	 *
-	 * @param parentController
-	 *            The parent container of this one
-	 * @param parent
-	 *            The parent container
-	 */
-	public DefaultCacheSizeComposite(Pane<Caching> parentComposite,
-	                                 Composite parent) {
-
-		super(parentComposite, parent);
-	}
-
-
-
-	@Override
-	protected void initializeLayout(Composite container) {
-		addDefaultCacheSizeCombo(container);
-	}
-	
-	private void addDefaultCacheSizeCombo(Composite container) {
-		new IntegerCombo<Caching>(this, container) {
-			
-			@Override
-			protected String getLabelText() {
-				return EclipseLinkUiMessages.DefaultCacheSizeComposite_defaultCacheSize;
-			}
-		
-			@Override
-			protected String getHelpId() {
-				return EclipseLinkHelpContextIds.PERSISTENCE_CACHING_DEFAULT_SIZE;
-			}
-
-			@Override
-			protected PropertyValueModel<Integer> buildDefaultHolder() {
-				return new PropertyAspectAdapter<Caching, Integer>(getSubjectHolder()) {
-					@Override
-					protected Integer buildValue_() {
-						return this.subject.getDefaultCacheSizeDefault();
-					}
-				};
-			}
-			
-			@Override
-			protected WritablePropertyValueModel<Integer> buildSelectedItemHolder() {
-				return new PropertyAspectAdapter<Caching, Integer>(getSubjectHolder(), Caching.CACHE_SIZE_DEFAULT_PROPERTY) {
-					@Override
-					protected Integer buildValue_() {
-						return this.subject.getCacheSizeDefault();
-					}
-
-					@Override
-					protected void setValue_(Integer value) {
-						this.subject.setCacheSizeDefault(value);
-					}
-				};			}
-		};
-	}
-
-}
\ No newline at end of file
diff --git a/jpa/plugins/org.eclipse.jpt.eclipselink.ui/src/org/eclipse/jpt/eclipselink/ui/internal/persistence/caching/DefaultCacheTypeComposite.java b/jpa/plugins/org.eclipse.jpt.eclipselink.ui/src/org/eclipse/jpt/eclipselink/ui/internal/persistence/caching/DefaultCacheTypeComposite.java
deleted file mode 100644
index 7645654..0000000
--- a/jpa/plugins/org.eclipse.jpt.eclipselink.ui/src/org/eclipse/jpt/eclipselink/ui/internal/persistence/caching/DefaultCacheTypeComposite.java
+++ /dev/null
@@ -1,91 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- *******************************************************************************/
-package org.eclipse.jpt.eclipselink.ui.internal.persistence.caching;
-
-import java.util.Collection;
-import org.eclipse.jpt.eclipselink.core.internal.context.persistence.caching.CacheType;
-import org.eclipse.jpt.eclipselink.core.internal.context.persistence.caching.Caching;
-import org.eclipse.jpt.eclipselink.ui.internal.EclipseLinkHelpContextIds;
-import org.eclipse.jpt.eclipselink.ui.internal.EclipseLinkUiMessages;
-import org.eclipse.jpt.ui.internal.widgets.EnumFormComboViewer;
-import org.eclipse.jpt.ui.internal.widgets.FormPane;
-import org.eclipse.swt.widgets.Composite;
-
-/**
- * DefaultCacheTypeComposite
- */
-public class DefaultCacheTypeComposite extends FormPane<Caching>
-{
-	/**
-	 * Creates a new <code>DefaultCacheTypeComposite</code>.
-	 * 
-	 * @param parentController
-	 *            The parent container of this one
-	 * @param parent
-	 *            The parent container
-	 */
-	public DefaultCacheTypeComposite(
-					FormPane<? extends Caching> parentComposite, 
-					Composite parent) {
-
-		super( parentComposite, parent);
-	}
-
-	private EnumFormComboViewer<Caching, CacheType> buildDefaultCacheTypeCombo(Composite container) {
-		return new EnumFormComboViewer<Caching, CacheType>(this, container) {
-			@Override
-			protected void addPropertyNames(Collection<String> propertyNames) {
-				super.addPropertyNames(propertyNames);
-				propertyNames.add(Caching.CACHE_TYPE_DEFAULT_PROPERTY);
-			}
-
-			@Override
-			protected CacheType[] getChoices() {
-				return CacheType.values();
-			}
-			
-			@Override
-			protected boolean sortChoices() {
-				return false;
-			}
-
-			@Override
-			protected CacheType getDefaultValue() {
-				return getSubject().getDefaultCacheTypeDefault();
-			}
-
-			@Override
-			protected String displayString(CacheType value) {
-				return buildDisplayString(EclipseLinkUiMessages.class, DefaultCacheTypeComposite.this, value);
-			}
-
-			@Override
-			protected CacheType getValue() {
-				return getSubject().getCacheTypeDefault();
-			}
-
-			@Override
-			protected void setValue(CacheType value) {
-				getSubject().setCacheTypeDefault(value);
-			}
-		};
-	}
-	
-	@Override
-	protected void initializeLayout( Composite container) {
-
-		this.addLabeledComposite(
-			container,
-			EclipseLinkUiMessages.PersistenceXmlCachingTab_defaultCacheTypeLabel,
-			this.buildDefaultCacheTypeCombo( container),
-			EclipseLinkHelpContextIds.PERSISTENCE_CACHING_DEFAULT_TYPE	
-		);
-	}
-}
diff --git a/jpa/plugins/org.eclipse.jpt.eclipselink.ui/src/org/eclipse/jpt/eclipselink/ui/internal/persistence/caching/DefaultSharedCacheComposite.java b/jpa/plugins/org.eclipse.jpt.eclipselink.ui/src/org/eclipse/jpt/eclipselink/ui/internal/persistence/caching/DefaultSharedCacheComposite.java
deleted file mode 100644
index 66f705a..0000000
--- a/jpa/plugins/org.eclipse.jpt.eclipselink.ui/src/org/eclipse/jpt/eclipselink/ui/internal/persistence/caching/DefaultSharedCacheComposite.java
+++ /dev/null
@@ -1,96 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- *
- * Contributors:
- *     Oracle - initial API and implementation
- *******************************************************************************/
-package org.eclipse.jpt.eclipselink.ui.internal.persistence.caching;
-
-import org.eclipse.jpt.eclipselink.core.internal.context.persistence.caching.Caching;
-import org.eclipse.jpt.eclipselink.ui.internal.EclipseLinkHelpContextIds;
-import org.eclipse.jpt.eclipselink.ui.internal.EclipseLinkUiMessages;
-import org.eclipse.jpt.ui.internal.widgets.FormPane;
-import org.eclipse.jpt.utility.internal.model.value.PropertyAspectAdapter;
-import org.eclipse.jpt.utility.internal.model.value.TransformationPropertyValueModel;
-import org.eclipse.jpt.utility.model.value.PropertyValueModel;
-import org.eclipse.jpt.utility.model.value.WritablePropertyValueModel;
-import org.eclipse.osgi.util.NLS;
-import org.eclipse.swt.widgets.Composite;
-
-/**
- * DefaultShareCacheComposite
- */
-public class DefaultSharedCacheComposite extends FormPane<Caching>
-{
-	/**
-	 * Creates a new <code>DefaultShareCacheComposite</code>.
-	 *
-	 * @param parentController
-	 *            The parent container of this one
-	 * @param parent
-	 *            The parent container
-	 */
-	public DefaultSharedCacheComposite(
-					FormPane<? extends Caching> parentComposite,
-					Composite parent) {
-
-		super(parentComposite, parent);
-	}
-
-	private WritablePropertyValueModel<Boolean> buildDefaultSharedCacheHolder() {
-		return new PropertyAspectAdapter<Caching, Boolean>(getSubjectHolder(), Caching.SHARED_CACHE_DEFAULT_PROPERTY) {
-			@Override
-			protected Boolean buildValue_() {
-				return subject.getSharedCacheDefault();
-			}
-
-			@Override
-			protected void setValue_(Boolean value) {
-				subject.setSharedCacheDefault(value);
-			}
-
-			@Override
-			protected void subjectChanged() {
-				Object oldValue = this.getValue();
-				super.subjectChanged();
-				Object newValue = this.getValue();
-
-				// Make sure the default value is appended to the text
-				if (oldValue == newValue && newValue == null) {
-					this.fireAspectChange(Boolean.TRUE, newValue);
-				}
-			}
-		};
-	}
-
-	private PropertyValueModel<String> buildDefaultSharedCacheStringHolder() {
-		return new TransformationPropertyValueModel<Boolean, String>(buildDefaultSharedCacheHolder()) {
-			@Override
-			protected String transform(Boolean value) {
-				if ((getSubject() != null) && (value == null)) {
-					Boolean defaultValue = getSubject().getDefaultSharedCacheDefault();
-					if (defaultValue != null) {
-						String defaultStringValue = defaultValue ? EclipseLinkUiMessages.Boolean_True : EclipseLinkUiMessages.Boolean_False;
-						return NLS.bind(EclipseLinkUiMessages.PersistenceXmlCachingTab_defaultSharedCacheDefaultLabel, defaultStringValue);
-					}
-				}
-				return EclipseLinkUiMessages.PersistenceXmlCachingTab_sharedCacheDefaultLabel;
-			}
-		};
-	}
-
-	@Override
-	protected void initializeLayout(Composite container) {
-
-		this.addTriStateCheckBoxWithDefault(
-			container,
-			EclipseLinkUiMessages.PersistenceXmlCachingTab_sharedCacheDefaultLabel,
-			this.buildDefaultSharedCacheHolder(),
-			this.buildDefaultSharedCacheStringHolder(),
-			EclipseLinkHelpContextIds.PERSISTENCE_CACHING_DEFAULT_SHARED
-		);
-	}
-}
diff --git a/jpa/plugins/org.eclipse.jpt.eclipselink.ui/src/org/eclipse/jpt/eclipselink/ui/internal/persistence/caching/EclipseLinkCachingComposite.java b/jpa/plugins/org.eclipse.jpt.eclipselink.ui/src/org/eclipse/jpt/eclipselink/ui/internal/persistence/caching/EclipseLinkCachingComposite.java
deleted file mode 100644
index 225909b..0000000
--- a/jpa/plugins/org.eclipse.jpt.eclipselink.ui/src/org/eclipse/jpt/eclipselink/ui/internal/persistence/caching/EclipseLinkCachingComposite.java
+++ /dev/null
@@ -1,60 +0,0 @@
-/*******************************************************************************
-* Copyright (c) 2008 Oracle. All rights reserved.
-* This program and the accompanying materials are made available under the
-* terms of the Eclipse Public License v1.0, which accompanies this distribution
-* and is available at http://www.eclipse.org/legal/epl-v10.html.
-*
-* Contributors:
-*     Oracle - initial API and implementation
-*******************************************************************************/
-package org.eclipse.jpt.eclipselink.ui.internal.persistence.caching;
-
-import org.eclipse.jpt.eclipselink.core.internal.context.persistence.caching.Caching;
-import org.eclipse.jpt.eclipselink.ui.internal.EclipseLinkUiMessages;
-import org.eclipse.jpt.ui.internal.widgets.FormPane;
-import org.eclipse.swt.widgets.Composite;
-
-/**
- *  EclipseLinkCachingComposite
- */
-public class EclipseLinkCachingComposite extends FormPane<Caching>
-{
-	public EclipseLinkCachingComposite(FormPane<Caching> subjectHolder,
-	                                       Composite container) {
-
-		super(subjectHolder, container);
-	}
-
-	@Override
-	protected void initializeLayout(Composite container) {
-
-		container = this.addSection(
-			container,
-			EclipseLinkUiMessages.PersistenceXmlCachingTab_sectionTitle,
-			EclipseLinkUiMessages.PersistenceXmlCachingTab_sectionDescription
-		);
-
-		// Default pane
-		int groupBoxMargin = this.getGroupBoxMargin();
-
-		Composite defaultPane = this.addSubPane(
-			container,
-			0, groupBoxMargin, 0, groupBoxMargin
-		);
-
-		// Default Cache Type
-		new DefaultCacheTypeComposite(this, defaultPane);
-
-		// Default Cache Size
-		new DefaultCacheSizeComposite(this, defaultPane);
-
-		// Default Shared Cache
-		new DefaultSharedCacheComposite(this, defaultPane);
-
-		// EntitiesList
-		new EntityListComposite(this, container);
-		
-		// Flush Clear Cache
-		new FlushClearCacheComposite(this, container);
-	}
-}
\ No newline at end of file
diff --git a/jpa/plugins/org.eclipse.jpt.eclipselink.ui/src/org/eclipse/jpt/eclipselink/ui/internal/persistence/caching/EntityCacheProperties.java b/jpa/plugins/org.eclipse.jpt.eclipselink.ui/src/org/eclipse/jpt/eclipselink/ui/internal/persistence/caching/EntityCacheProperties.java
deleted file mode 100644
index edc1680..0000000
--- a/jpa/plugins/org.eclipse.jpt.eclipselink.ui/src/org/eclipse/jpt/eclipselink/ui/internal/persistence/caching/EntityCacheProperties.java
+++ /dev/null
@@ -1,207 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008, 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- *
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.eclipselink.ui.internal.persistence.caching;
-
-import org.eclipse.jpt.eclipselink.core.internal.context.persistence.caching.CacheType;
-import org.eclipse.jpt.eclipselink.core.internal.context.persistence.caching.Caching;
-import org.eclipse.jpt.utility.internal.StringTools;
-import org.eclipse.jpt.utility.internal.model.AbstractModel;
-import org.eclipse.jpt.utility.internal.model.value.PropertyAspectAdapter;
-import org.eclipse.jpt.utility.internal.model.value.SimplePropertyValueModel;
-import org.eclipse.jpt.utility.model.event.PropertyChangeEvent;
-import org.eclipse.jpt.utility.model.listener.PropertyChangeListener;
-import org.eclipse.jpt.utility.model.value.PropertyValueModel;
-
-/**
- * EntityCacheProperties
- */
-@SuppressWarnings("nls")
-public class EntityCacheProperties extends AbstractModel {
-
-	private Caching caching;
-	private String entityName;
-	
-	private PropertyValueModel<CacheType> cacheTypeHolder;
-	private PropertyChangeListener cacheTypeListener;
-	private PropertyValueModel<Integer> cacheSizeHolder;
-	private PropertyChangeListener cacheSizeListener;
-	private PropertyValueModel<Boolean> sharedCacheHolder;
-	private PropertyChangeListener sharedCacheListener;
-
-	public static final String CACHE_TYPE_PROPERTY = Caching.CACHE_TYPE_PROPERTY;
-	public static final String CACHE_SIZE_PROPERTY = Caching.CACHE_SIZE_PROPERTY;
-	public static final String SHARED_CACHE_PROPERTY = Caching.SHARED_CACHE_PROPERTY;
-
-	private static final long serialVersionUID = 1L;
-
-	// ********** constructors **********
-	public EntityCacheProperties(Caching caching, String entityName) {
-		super();
-		this.caching    = caching;
-		this.entityName = entityName;
-		
-		PropertyValueModel<Caching> cachingHolder = new SimplePropertyValueModel<Caching>(this.caching);
-		this.initialize(cachingHolder);
-
-		this.engageListeners();
-	}
-	
-	protected void initialize(PropertyValueModel<Caching> cachingHolder) {
-		this.cacheTypeHolder = this.buildCacheTypeAA(cachingHolder);
-		this.cacheTypeListener = this.buildCacheTypeChangeListener();
-
-		this.cacheSizeHolder = this.buildCacheSizeAA(cachingHolder);
-		this.cacheSizeListener = this.buildCacheSizeChangeListener();
-
-		this.sharedCacheHolder = this.buildSharedCacheAA(cachingHolder);
-		this.sharedCacheListener = this.buildSharedCacheChangeListener();
-	}
-	
-	// ********** behavior **********
-	public boolean entityNameIsValid() {
-		return !StringTools.stringIsEmpty(this.entityName);
-	}
-
-	public Integer getCacheSize() {
-		return this.caching.getCacheSize(this.entityName);
-	}
-
-	public CacheType getCacheType() {
-		return this.caching.getCacheType(this.entityName);
-	}
-
-	public Caching getCaching() {
-		return caching;
-	}
-
-	public Integer getDefaultCacheSize() {
-		return this.caching.getDefaultCacheSize();
-	}
-
-	public CacheType getDefaultCacheType() {
-		return this.caching.getDefaultCacheType();
-	}
-
-	public String getEntityName() {
-		return this.entityName;
-	}
-
-	public Boolean getSharedCache() {
-		return this.caching.getSharedCache(this.entityName);
-	}
-
-	public Boolean getDefaultSharedCache() {
-		return this.caching.getDefaultSharedCache();
-	}
-
-	public void setCacheSize(Integer cacheSize) {
-		Integer oldCacheSize = this.getCacheSize();
-		if (this.attributeValueHasChanged(oldCacheSize, cacheSize)) {
-			this.caching.setCacheSize(cacheSize, this.entityName);
-			this.firePropertyChanged(CACHE_SIZE_PROPERTY, oldCacheSize, cacheSize);
-		}
-	}
-
-	public void setCacheType(CacheType cacheType) {
-		CacheType oldCacheType = this.getCacheType();
-		if (this.attributeValueHasChanged(oldCacheType, cacheType)) {
-			this.caching.setCacheType(cacheType, this.entityName);
-			this.firePropertyChanged(CACHE_TYPE_PROPERTY, oldCacheType, cacheType);
-		}
-	}
-
-	public void setSharedCache(Boolean sharedCache) {
-		Boolean oldSharedCache = this.getSharedCache();
-		if (this.attributeValueHasChanged(oldSharedCache, sharedCache)) {
-			this.caching.setSharedCache(sharedCache, this.entityName);
-			this.firePropertyChanged(SHARED_CACHE_PROPERTY, oldSharedCache, sharedCache);
-		}
-	}
-	
-	// ********** PropertyChangeListener **********
-	
-	private PropertyValueModel<CacheType> buildCacheTypeAA(PropertyValueModel<Caching> subjectHolder) {
-		return new PropertyAspectAdapter<Caching, CacheType>(
-								subjectHolder, CACHE_TYPE_PROPERTY) {
-			@Override
-			protected CacheType buildValue_() {
-				return this.subject.getCacheType(EntityCacheProperties.this.entityName);
-			}
-		};
-	}
-	
-	private PropertyChangeListener buildCacheTypeChangeListener() {
-		return new PropertyChangeListener() {
-			public void propertyChanged(PropertyChangeEvent e) {
-				EntityCacheProperties.this.firePropertyChanged(CACHE_TYPE_PROPERTY, e.getOldValue(), e.getNewValue());
-			}
-		};
-	}
-	
-	private PropertyValueModel<Integer> buildCacheSizeAA(PropertyValueModel<Caching> subjectHolder) {
-		return new PropertyAspectAdapter<Caching, Integer>(
-								subjectHolder, CACHE_SIZE_PROPERTY) {
-			@Override
-			protected Integer buildValue_() {
-				return this.subject.getCacheSize(EntityCacheProperties.this.entityName);
-			}
-		};
-	}
-	
-	private PropertyChangeListener buildCacheSizeChangeListener() {
-		return new PropertyChangeListener() {
-			public void propertyChanged(PropertyChangeEvent e) {
-				EntityCacheProperties.this.firePropertyChanged(CACHE_SIZE_PROPERTY, e.getOldValue(), e.getNewValue());
-			}
-		};
-	}
-	
-	private PropertyValueModel<Boolean> buildSharedCacheAA(PropertyValueModel<Caching> subjectHolder) {
-		return new PropertyAspectAdapter<Caching, Boolean>(
-								subjectHolder, SHARED_CACHE_PROPERTY) {
-			@Override
-			protected Boolean buildValue_() {
-				return this.subject.getSharedCache(EntityCacheProperties.this.entityName);
-			}
-		};
-	}
-	
-	private PropertyChangeListener buildSharedCacheChangeListener() {
-		return new PropertyChangeListener() {
-			public void propertyChanged(PropertyChangeEvent e) {
-				EntityCacheProperties.this.firePropertyChanged(SHARED_CACHE_PROPERTY, e.getOldValue(), e.getNewValue());
-			}
-		};
-	}
-
-	public void engageListeners() {
-		this.cacheTypeHolder.addPropertyChangeListener(PropertyValueModel.VALUE, this.cacheTypeListener);
-		this.cacheSizeHolder.addPropertyChangeListener(PropertyValueModel.VALUE, this.cacheSizeListener);
-		this.sharedCacheHolder.addPropertyChangeListener(PropertyValueModel.VALUE, this.sharedCacheListener);
-	}
-	
-	public void disengageListeners() {
-		this.cacheTypeHolder.removePropertyChangeListener(PropertyValueModel.VALUE, this.cacheTypeListener);
-		this.cacheSizeHolder.removePropertyChangeListener(PropertyValueModel.VALUE, this.cacheSizeListener);
-		this.sharedCacheHolder.removePropertyChangeListener(PropertyValueModel.VALUE, this.sharedCacheListener);
-	}
-
-	@Override
-	public void toString(StringBuilder sb) {
-		sb.append("name: ");
-		sb.append(this.entityName);
-		sb.append(", type: ");
-		sb.append(this.getCacheType());
-		sb.append(", size: ");
-		sb.append(this.getCacheSize());
-		sb.append(", isShared: ");
-		sb.append(this.getSharedCache());
-	}
-}
diff --git a/jpa/plugins/org.eclipse.jpt.eclipselink.ui/src/org/eclipse/jpt/eclipselink/ui/internal/persistence/caching/EntityCachingPropertyComposite.java b/jpa/plugins/org.eclipse.jpt.eclipselink.ui/src/org/eclipse/jpt/eclipselink/ui/internal/persistence/caching/EntityCachingPropertyComposite.java
deleted file mode 100644
index f20ecfc..0000000
--- a/jpa/plugins/org.eclipse.jpt.eclipselink.ui/src/org/eclipse/jpt/eclipselink/ui/internal/persistence/caching/EntityCachingPropertyComposite.java
+++ /dev/null
@@ -1,52 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- *
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.eclipselink.ui.internal.persistence.caching;
-
-import org.eclipse.jpt.eclipselink.core.internal.context.persistence.caching.Caching;
-import org.eclipse.jpt.ui.internal.widgets.Pane;
-import org.eclipse.jpt.utility.model.value.PropertyValueModel;
-import org.eclipse.swt.widgets.Composite;
-
-/**
- * @version 2.0
- * @since 2.0
- */
-public class EntityCachingPropertyComposite extends Pane<EntityCacheProperties> {
-
-	/**
-	 * Creates a new <code>EntityCachingPropertyComposite</code>.
-	 *
-	 * @param parentPane The parent container of this one
-	 * @param subjectHolder The holder of this pane's subject
-	 * @param parent The parent container
-	 */
-	public EntityCachingPropertyComposite(Pane<Caching> parentComposite,
-	                                      PropertyValueModel<EntityCacheProperties> subjectHolder,
-	                                      Composite parent) {
-
-		super(parentComposite, subjectHolder, parent);
-	}
-
-	/*
-	 * (non-Javadoc)
-	 */
-	@Override
-	protected void initializeLayout(Composite container) {
-
-		// Cache Type
-		new CacheTypeComposite(this, container);
-
-		// Cache Size
-		new CacheSizeComposite(this, container);
-
-		// Share Cache
-		new SharedCacheComposite(this, container);
-	}
-}
diff --git a/jpa/plugins/org.eclipse.jpt.eclipselink.ui/src/org/eclipse/jpt/eclipselink/ui/internal/persistence/caching/EntityListComposite.java b/jpa/plugins/org.eclipse.jpt.eclipselink.ui/src/org/eclipse/jpt/eclipselink/ui/internal/persistence/caching/EntityListComposite.java
deleted file mode 100644
index d5302cd..0000000
--- a/jpa/plugins/org.eclipse.jpt.eclipselink.ui/src/org/eclipse/jpt/eclipselink/ui/internal/persistence/caching/EntityListComposite.java
+++ /dev/null
@@ -1,229 +0,0 @@
-/*******************************************************************************
-* Copyright (c) 2007, 2009 Oracle. All rights reserved.
-* This program and the accompanying materials are made available under the
-* terms of the Eclipse Public License v1.0, which accompanies this distribution
-* and is available at http://www.eclipse.org/legal/epl-v10.html.
-*
-* Contributors:
-*     Oracle - initial API and implementation
-*******************************************************************************/
-package org.eclipse.jpt.eclipselink.ui.internal.persistence.caching;
-
-import java.util.ListIterator;
-import org.eclipse.core.resources.IProject;
-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.ui.IJavaElementSearchConstants;
-import org.eclipse.jdt.ui.JavaUI;
-import org.eclipse.jface.viewers.ILabelProvider;
-import org.eclipse.jface.viewers.LabelProvider;
-import org.eclipse.jface.window.Window;
-import org.eclipse.jpt.core.context.Entity;
-import org.eclipse.jpt.eclipselink.core.internal.context.persistence.caching.Caching;
-import org.eclipse.jpt.eclipselink.ui.JptEclipseLinkUiPlugin;
-import org.eclipse.jpt.eclipselink.ui.internal.EclipseLinkHelpContextIds;
-import org.eclipse.jpt.eclipselink.ui.internal.EclipseLinkUiMessages;
-import org.eclipse.jpt.ui.internal.util.PaneEnabler;
-import org.eclipse.jpt.ui.internal.widgets.AddRemoveListPane;
-import org.eclipse.jpt.ui.internal.widgets.Pane;
-import org.eclipse.jpt.utility.internal.model.value.ListAspectAdapter;
-import org.eclipse.jpt.utility.internal.model.value.SimplePropertyValueModel;
-import org.eclipse.jpt.utility.internal.model.value.TransformationListValueModelAdapter;
-import org.eclipse.jpt.utility.internal.model.value.TransformationPropertyValueModel;
-import org.eclipse.jpt.utility.internal.model.value.swing.ObjectListSelectionModel;
-import org.eclipse.jpt.utility.model.value.ListValueModel;
-import org.eclipse.jpt.utility.model.value.PropertyValueModel;
-import org.eclipse.jpt.utility.model.value.WritablePropertyValueModel;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.ui.PlatformUI;
-import org.eclipse.ui.dialogs.SelectionDialog;
-import org.eclipse.ui.progress.IProgressService;
-
-/**
- *  EntityListComposite
- */
-public class EntityListComposite extends Pane<Caching>
-{
-	public EntityListComposite(Pane<Caching> parentComposite, Composite parent) {
-
-		super(parentComposite, parent);
-	}
-
-	@Override
-	protected void initializeLayout(Composite container) {
-
-		container = this.addTitledGroup(
-			container,
-			EclipseLinkUiMessages.CachingEntityListComposite_groupTitle
-		);
-		WritablePropertyValueModel<EntityCacheProperties> entityHolder = this.buildEntityHolder();
-
-		// Entities add/remove list pane
-		new AddRemoveListPane<Caching>(
-			this,
-			container,
-			this.buildEntitiesAdapter(),
-			this.buildEntityCachingListHolder(),
-			entityHolder,
-			this.buildEntityLabelProvider(),
-			EclipseLinkHelpContextIds.PERSISTENCE_CACHING
-		);
-
-		// Entity Caching property pane
-		EntityCachingPropertyComposite pane = new EntityCachingPropertyComposite(
-			this,
-			entityHolder,
-			container
-		);
-		this.installPaneEnabler(entityHolder, pane);
-	}
-	
-	private AddRemoveListPane.Adapter buildEntitiesAdapter() {
-		return new AddRemoveListPane.AbstractAdapter() {
-			public void addNewItem(ObjectListSelectionModel listSelectionModel) {
-				EntityListComposite.this.addEntities(listSelectionModel);
-			}
-
-			public void removeSelectedItems(ObjectListSelectionModel listSelectionModel) {
-				Caching caching = getSubject();
-				for (Object item : listSelectionModel.selectedValues()) {
-					EntityCacheProperties entityCaching = (EntityCacheProperties) item;
-					entityCaching.disengageListeners();
-					caching.removeEntity(entityCaching.getEntityName());
-				}
-			}
-		};
-	}
-	
-	private void addEntities(ObjectListSelectionModel listSelectionModel) {
-
-		IType type = this.chooseEntity();
-
-		if (type != null) {
-			String entityName = this.getEntityName(type.getFullyQualifiedName());
-			if (entityName == null) {
-				entityName = type.getElementName();
-			}
-			
-			if( ! this.getSubject().entityExists(entityName)) {
-				String entity = this.getSubject().addEntity(entityName);
-	
-				listSelectionModel.setSelectedValue(entity);
-			}
-		}
-	}
-
-	private String getEntityName(String fullyQualifiedTypeName) {
-
-		Entity entity = getSubject().getPersistenceUnit().getEntity(fullyQualifiedTypeName);
-		return entity != null ? entity.getName() : null;
-	}
-	
-	private IType chooseEntity() {
-
-		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(
-				getShell(),
-				service,
-				scope,
-				IJavaElementSearchConstants.CONSIDER_CLASSES,
-				false,
-				""
-			);
-		}
-		catch (JavaModelException e) {
-			JptEclipseLinkUiPlugin.log(e);
-			return null;
-		}
-		typeSelectionDialog.setTitle(EclipseLinkUiMessages.CachingEntityListComposite_dialogTitle);
-		typeSelectionDialog.setMessage(EclipseLinkUiMessages.CachingEntityListComposite_dialogMessage);
-
-		if (typeSelectionDialog.open() == Window.OK) {
-			return (IType) typeSelectionDialog.getResult()[0];
-		}
-		return null;
-	}
-
-	private IPackageFragmentRoot getPackageFragmentRoot() {
-		IProject project = getSubject().getJpaProject().getProject();
-		IJavaProject root = JavaCore.create(project);
-
-		try {
-			return root.getAllPackageFragmentRoots()[0];
-		}
-		catch (JavaModelException e) {
-			JptEclipseLinkUiPlugin.log(e);
-		}
-		return null;
-	}
-
-	private ILabelProvider buildEntityLabelProvider() {
-		return new LabelProvider() {
-			@Override
-			public String getText(Object element) {
-				EntityCacheProperties entityCaching = (EntityCacheProperties) element;
-				return entityCaching.getEntityName();
-			}
-		};
-	}
-
-	private WritablePropertyValueModel<EntityCacheProperties> buildEntityHolder() {
-		return new SimplePropertyValueModel<EntityCacheProperties>();
-	}
-
-	private ListValueModel<EntityCacheProperties> buildEntityCachingListHolder() {
-		return new TransformationListValueModelAdapter<String, EntityCacheProperties>(this.buildEntitiesListHolder()) {
-			@Override
-			protected EntityCacheProperties transformItem(String entityName) {
-				return new EntityCacheProperties(getSubject(), entityName);
-			}
-		};
-	}
-
-	private ListValueModel<String> buildEntitiesListHolder() {
-		return new ListAspectAdapter<Caching, String>(
-					this.getSubjectHolder(), Caching.ENTITIES_LIST_PROPERTY) {
-			@Override
-			protected ListIterator<String> listIterator_() {
-				return this.subject.entities();
-			}
-			@Override
-			protected int size_() {
-				return this.subject.entitiesSize();
-			}
-		};
-	}
-
-	private void installPaneEnabler(WritablePropertyValueModel<EntityCacheProperties> entityHolder,
-	                                EntityCachingPropertyComposite pane) {
-
-		new PaneEnabler(
-			this.buildPaneEnablerHolder(entityHolder),
-			pane
-		);
-	}
-
-	private PropertyValueModel<Boolean> buildPaneEnablerHolder(WritablePropertyValueModel<EntityCacheProperties> entityHolder) {
-		return new TransformationPropertyValueModel<EntityCacheProperties, Boolean>(entityHolder) {
-			@Override
-			protected Boolean transform_(EntityCacheProperties value) {
-				return value.entityNameIsValid();
-			}
-		};
-	}
-}
diff --git a/jpa/plugins/org.eclipse.jpt.eclipselink.ui/src/org/eclipse/jpt/eclipselink/ui/internal/persistence/caching/FlushClearCacheComposite.java b/jpa/plugins/org.eclipse.jpt.eclipselink.ui/src/org/eclipse/jpt/eclipselink/ui/internal/persistence/caching/FlushClearCacheComposite.java
deleted file mode 100644
index 87d2681..0000000
--- a/jpa/plugins/org.eclipse.jpt.eclipselink.ui/src/org/eclipse/jpt/eclipselink/ui/internal/persistence/caching/FlushClearCacheComposite.java
+++ /dev/null
@@ -1,91 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- *******************************************************************************/
-package org.eclipse.jpt.eclipselink.ui.internal.persistence.caching;
-
-import java.util.Collection;
-
-import org.eclipse.jpt.eclipselink.core.internal.context.persistence.caching.Caching;
-import org.eclipse.jpt.eclipselink.core.internal.context.persistence.caching.FlushClearCache;
-import org.eclipse.jpt.eclipselink.ui.internal.EclipseLinkHelpContextIds;
-import org.eclipse.jpt.eclipselink.ui.internal.EclipseLinkUiMessages;
-import org.eclipse.jpt.ui.internal.widgets.EnumFormComboViewer;
-import org.eclipse.jpt.ui.internal.widgets.FormPane;
-import org.eclipse.swt.widgets.Composite;
-
-/**
- * FlushClearCacheComposite
- */
-public class FlushClearCacheComposite extends FormPane<Caching>
-{
-	/**
-	 * Creates a new <code>FlushClearCacheComposite</code>.
-	 * 
-	 * @param parentController
-	 *            The parent container of this one
-	 * @param parent
-	 *            The parent container
-	 */
-	public FlushClearCacheComposite(
-				FormPane<? extends Caching> parentComposite, 
-				Composite parent) {
-		
-		super(parentComposite, parent);
-	}
-
-	private EnumFormComboViewer<Caching, FlushClearCache> addFlushClearCacheCombo(Composite container) {
-		return new EnumFormComboViewer<Caching, FlushClearCache>(this, container) {
-			@Override
-			protected void addPropertyNames(Collection<String> propertyNames) {
-				super.addPropertyNames(propertyNames);
-				propertyNames.add(Caching.FLUSH_CLEAR_CACHE_PROPERTY);
-			}
-
-			@Override
-			protected FlushClearCache[] getChoices() {
-				return FlushClearCache.values();
-			}
-			
-			@Override
-			protected boolean sortChoices() {
-				return false;
-			}
-			
-			@Override
-			protected FlushClearCache getDefaultValue() {
-				return this.getSubject().getDefaultFlushClearCache();
-			}
-
-			@Override
-			protected String displayString(FlushClearCache value) {
-				return this.buildDisplayString(EclipseLinkUiMessages.class, FlushClearCacheComposite.this, value);
-			}
-
-			@Override
-			protected FlushClearCache getValue() {
-				return this.getSubject().getFlushClearCache();
-			}
-
-			@Override
-			protected void setValue(FlushClearCache value) {
-				this.getSubject().setFlushClearCache(value);
-			}
-		};
-	}
-
-	@Override
-	protected void initializeLayout(Composite container) {
-		this.addLabeledComposite(
-				container,
-				EclipseLinkUiMessages.PersistenceXmlCachingTab_FlushClearCacheLabel,
-				this.addFlushClearCacheCombo(container),
-				EclipseLinkHelpContextIds.PERSISTENCE_CACHING
-		);
-	}
-}
diff --git a/jpa/plugins/org.eclipse.jpt.eclipselink.ui/src/org/eclipse/jpt/eclipselink/ui/internal/persistence/caching/PersistenceXmlCachingTab.java b/jpa/plugins/org.eclipse.jpt.eclipselink.ui/src/org/eclipse/jpt/eclipselink/ui/internal/persistence/caching/PersistenceXmlCachingTab.java
deleted file mode 100644
index 20677b6..0000000
--- a/jpa/plugins/org.eclipse.jpt.eclipselink.ui/src/org/eclipse/jpt/eclipselink/ui/internal/persistence/caching/PersistenceXmlCachingTab.java
+++ /dev/null
@@ -1,87 +0,0 @@
-/*******************************************************************************
-* Copyright (c) 2007, 2009 Oracle. All rights reserved.
-* This program and the accompanying materials are made available under the
-* terms of the Eclipse Public License v1.0, which accompanies this distribution
-* and is available at http://www.eclipse.org/legal/epl-v10.html.
-* 
-* Contributors:
-*     Oracle - initial API and implementation
-*******************************************************************************/
-package org.eclipse.jpt.eclipselink.ui.internal.persistence.caching;
-
-import org.eclipse.jpt.eclipselink.core.internal.context.persistence.caching.Caching;
-import org.eclipse.jpt.eclipselink.ui.internal.EclipseLinkHelpContextIds;
-import org.eclipse.jpt.eclipselink.ui.internal.EclipseLinkUiMessages;
-import org.eclipse.jpt.ui.WidgetFactory;
-import org.eclipse.jpt.ui.details.JpaPageComposite;
-import org.eclipse.jpt.ui.internal.widgets.FormPane;
-import org.eclipse.jpt.utility.model.value.PropertyValueModel;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.graphics.Image;
-import org.eclipse.swt.layout.GridData;
-import org.eclipse.swt.layout.GridLayout;
-import org.eclipse.swt.widgets.Composite;
-
-/**
- *  PersistenceXmlCachingTab
- */
-public class PersistenceXmlCachingTab 
-								extends FormPane<Caching>
-								implements JpaPageComposite
-{
-	public PersistenceXmlCachingTab(
-			PropertyValueModel<Caching> subjectHolder,
-			Composite parent,
-            WidgetFactory widgetFactory) {
-
-		super(subjectHolder, parent, widgetFactory);
-	}
-	
-	@Override
-	protected void initializeLayout(Composite container) {
-		
-		new EclipseLinkCachingComposite(this, container);
-	}
-
-	// ********** JpaPageComposite implementation **********
-
-	public String getHelpID() {
-		return EclipseLinkHelpContextIds.PERSISTENCE_CACHING;
-	}
-
-	public Image getPageImage() {
-		return null;
-	}
-	public String getPageText() {
-		return EclipseLinkUiMessages.PersistenceXmlCachingTab_title;
-	}
-
-	// ********** Layout **********
-	
-	@Override
-	protected Composite addContainer(Composite parent) {
-		GridLayout layout = new GridLayout(1, true);
-		layout.marginHeight = 0;
-		layout.marginWidth = 0;
-		layout.marginTop = 0;
-		layout.marginLeft = 0;
-		layout.marginBottom = 0;
-		layout.marginRight = 0;
-		layout.verticalSpacing = 15;
-		
-		Composite container = addPane(parent, layout);
-		updateGridData(container);
-		
-		return container;
-	}
-
-	private void updateGridData(Composite container) {
-		GridData gridData = new GridData();
-		gridData.grabExcessHorizontalSpace = true;
-		gridData.grabExcessVerticalSpace = true;
-		gridData.horizontalAlignment = SWT.FILL;
-		gridData.verticalAlignment = SWT.FILL;
-		container.setLayoutData(gridData);
-	}
-
-}
diff --git a/jpa/plugins/org.eclipse.jpt.eclipselink.ui/src/org/eclipse/jpt/eclipselink/ui/internal/persistence/caching/SharedCacheComposite.java b/jpa/plugins/org.eclipse.jpt.eclipselink.ui/src/org/eclipse/jpt/eclipselink/ui/internal/persistence/caching/SharedCacheComposite.java
deleted file mode 100644
index 17c26e8..0000000
--- a/jpa/plugins/org.eclipse.jpt.eclipselink.ui/src/org/eclipse/jpt/eclipselink/ui/internal/persistence/caching/SharedCacheComposite.java
+++ /dev/null
@@ -1,154 +0,0 @@
-/*******************************************************************************
-* Copyright (c) 2008 Oracle. All rights reserved.
-* This program and the accompanying materials are made available under the
-* terms of the Eclipse Public License v1.0, which accompanies this distribution
-* and is available at http://www.eclipse.org/legal/epl-v10.html.
-*
-* Contributors:
-*     Oracle - initial API and implementation
-*******************************************************************************/
-package org.eclipse.jpt.eclipselink.ui.internal.persistence.caching;
-
-import java.util.ArrayList;
-import org.eclipse.jpt.eclipselink.core.internal.context.persistence.caching.Caching;
-import org.eclipse.jpt.eclipselink.ui.internal.EclipseLinkHelpContextIds;
-import org.eclipse.jpt.eclipselink.ui.internal.EclipseLinkUiMessages;
-import org.eclipse.jpt.ui.internal.widgets.Pane;
-import org.eclipse.jpt.ui.internal.widgets.TriStateCheckBox;
-import org.eclipse.jpt.utility.internal.model.value.CompositeListValueModel;
-import org.eclipse.jpt.utility.internal.model.value.ListPropertyValueModelAdapter;
-import org.eclipse.jpt.utility.internal.model.value.PropertyAspectAdapter;
-import org.eclipse.jpt.utility.internal.model.value.PropertyListValueModelAdapter;
-import org.eclipse.jpt.utility.internal.model.value.TransformationPropertyValueModel;
-import org.eclipse.jpt.utility.model.value.ListValueModel;
-import org.eclipse.jpt.utility.model.value.PropertyValueModel;
-import org.eclipse.jpt.utility.model.value.WritablePropertyValueModel;
-import org.eclipse.osgi.util.NLS;
-import org.eclipse.swt.widgets.Composite;
-
-/**
- *  SharedCacheComposite
- */
-public class SharedCacheComposite extends Pane<EntityCacheProperties>
-{
-	private TriStateCheckBox sharedCacheCheckBox;
-
-	/**
-	 * Creates a new <code>ShareCacheComposite</code>.
-	 *
-	 * @param parentController The parent container of this one
-	 * @param parent The parent container
-	 */
-	public SharedCacheComposite(Pane<EntityCacheProperties> parentComposite,
-	                           Composite parent) {
-
-		super(parentComposite, parent);
-	}
-
-	private PropertyValueModel<Caching> buildCachingHolder() {
-		return new TransformationPropertyValueModel<EntityCacheProperties, Caching>(getSubjectHolder()) {
-			@Override
-			protected Caching transform_(EntityCacheProperties value) {
-				return value.getCaching();
-			}
-		};
-	}
-
-	private PropertyValueModel<Boolean> buildDefaultAndNonDefaultSharedCacheHolder() {
-		return new ListPropertyValueModelAdapter<Boolean>(
-			buildDefaultAndNonDefaultSharedCacheListHolder()
-		) {
-			@Override
-			protected Boolean buildValue() {
-				// If the number of ListValueModel equals 1, that means the shared
-				// Cache properties is not set (partially selected), which means we
-				// want to see the default value appended to the text
-				if (listHolder.size() == 1) {
-					return (Boolean) listHolder.listIterator().next();
-				}
-				return null;
-			}
-		};
-	};
-
-	private ListValueModel<Boolean> buildDefaultAndNonDefaultSharedCacheListHolder() {
-		ArrayList<ListValueModel<Boolean>> holders = new ArrayList<ListValueModel<Boolean>>(2);
-		holders.add(buildSharedCacheListHolder());
-		holders.add(buildDefaultSharedCacheListHolder());
-
-		return new CompositeListValueModel<ListValueModel<Boolean>, Boolean>(
-			holders
-		);
-	}
-
-	private PropertyValueModel<Boolean> buildDefaultSharedCacheHolder() {
-		return new PropertyAspectAdapter<Caching, Boolean>(buildCachingHolder(), Caching.SHARED_CACHE_DEFAULT_PROPERTY) {
-			@Override
-			protected Boolean buildValue_() {
-				Boolean value = subject.getSharedCacheDefault();
-				if (value == null) {
-					value = subject.getDefaultSharedCacheDefault();
-				}
-				return value;
-			}
-		};
-	}
-
-	private ListValueModel<Boolean> buildDefaultSharedCacheListHolder() {
-		return new PropertyListValueModelAdapter<Boolean>(
-			buildDefaultSharedCacheHolder()
-		);
-	}
-
-	private WritablePropertyValueModel<Boolean> buildSharedCacheHolder() {
-		return new PropertyAspectAdapter<EntityCacheProperties, Boolean>(
-					getSubjectHolder(), EntityCacheProperties.SHARED_CACHE_PROPERTY) {
-			@Override
-			protected Boolean buildValue_() {
-				return this.subject.getSharedCache();
-			}
-
-			@Override
-			protected void setValue_(Boolean value) {
-				this.subject.setSharedCache(value);
-			}
-		};
-	}
-
-	private ListValueModel<Boolean> buildSharedCacheListHolder() {
-		return new PropertyListValueModelAdapter<Boolean>(
-			buildSharedCacheHolder()
-		);
-	}
-
-	private PropertyValueModel<String> buildSharedCacheStringHolder() {
-		return new TransformationPropertyValueModel<Boolean, String>(buildDefaultAndNonDefaultSharedCacheHolder()) {
-			@Override
-			protected String transform(Boolean value) {
-				if (value != null) {
-					String defaultStringValue = value ? EclipseLinkUiMessages.Boolean_True : EclipseLinkUiMessages.Boolean_False;
-					return NLS.bind(EclipseLinkUiMessages.PersistenceXmlCachingTab_defaultSharedCacheLabel, defaultStringValue);
-				}
-				return EclipseLinkUiMessages.PersistenceXmlCachingTab_sharedCacheLabel;
-			}
-		};
-	}
-
-	@Override
-	public void enableWidgets(boolean enabled) {
-		super.enableWidgets(enabled);
-		this.sharedCacheCheckBox.setEnabled(enabled);
-	}
-
-	@Override
-	protected void initializeLayout(Composite container) {
-
-		this.sharedCacheCheckBox = this.addTriStateCheckBoxWithDefault(
-			container,
-			EclipseLinkUiMessages.PersistenceXmlCachingTab_sharedCacheLabel,
-			this.buildSharedCacheHolder(),
-			this.buildSharedCacheStringHolder(),
-			EclipseLinkHelpContextIds.PERSISTENCE_CACHING
-		);
-	}
-}
\ No newline at end of file
diff --git a/jpa/plugins/org.eclipse.jpt.eclipselink.ui/src/org/eclipse/jpt/eclipselink/ui/internal/persistence/connection/BatchWritingComposite.java b/jpa/plugins/org.eclipse.jpt.eclipselink.ui/src/org/eclipse/jpt/eclipselink/ui/internal/persistence/connection/BatchWritingComposite.java
deleted file mode 100644
index cfe1ff2..0000000
--- a/jpa/plugins/org.eclipse.jpt.eclipselink.ui/src/org/eclipse/jpt/eclipselink/ui/internal/persistence/connection/BatchWritingComposite.java
+++ /dev/null
@@ -1,87 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008, 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- *******************************************************************************/
-package org.eclipse.jpt.eclipselink.ui.internal.persistence.connection;
-
-import java.util.Collection;
-
-import org.eclipse.jpt.eclipselink.core.internal.context.persistence.connection.BatchWriting;
-import org.eclipse.jpt.eclipselink.core.internal.context.persistence.connection.Connection;
-import org.eclipse.jpt.eclipselink.ui.internal.EclipseLinkUiMessages;
-import org.eclipse.jpt.ui.internal.JpaHelpContextIds;
-import org.eclipse.jpt.ui.internal.widgets.EnumFormComboViewer;
-import org.eclipse.jpt.ui.internal.widgets.FormPane;
-import org.eclipse.swt.widgets.Composite;
-
-/**
- * BatchWritingComposite
- */
-public class BatchWritingComposite extends FormPane<Connection>
-{
-	/**
-	 * Creates a new <code>BatchWritingComposite</code>.
-	 * 
-	 * @param parentController
-	 *            The parent container of this one
-	 * @param parent
-	 *            The parent container
-	 */
-	public BatchWritingComposite(
-					FormPane<? extends Connection> parentComposite, 
-					Composite parent) {
-
-		super( parentComposite, parent);
-	}
-
-	private EnumFormComboViewer<Connection, BatchWriting> addBatchWritingCombo(Composite container) {
-		return new EnumFormComboViewer<Connection, BatchWriting>(this, container) {
-			@Override
-			protected void addPropertyNames(Collection<String> propertyNames) {
-				super.addPropertyNames(propertyNames);
-				propertyNames.add(Connection.BATCH_WRITING_PROPERTY);
-			}
-
-			@Override
-			protected BatchWriting[] getChoices() {
-				return BatchWriting.values();
-			}
-
-			@Override
-			protected BatchWriting getDefaultValue() {
-				return getSubject().getDefaultBatchWriting();
-			}
-
-			@Override
-			protected String displayString(BatchWriting value) {
-				return buildDisplayString(EclipseLinkUiMessages.class, BatchWritingComposite.this, value);
-			}
-
-			@Override
-			protected BatchWriting getValue() {
-				return getSubject().getBatchWriting();
-			}
-
-			@Override
-			protected void setValue(BatchWriting value) {
-				getSubject().setBatchWriting(value);
-			}
-		};
-	}
-	
-	@Override
-	protected void initializeLayout( Composite container) {
-
-		this.addLabeledComposite(
-			container,
-			EclipseLinkUiMessages.PersistenceXmlConnectionTab_batchWritingLabel,
-			this.addBatchWritingCombo( container),
-			JpaHelpContextIds.PERSISTENCE_XML_CONNECTION
-		);
-	}
-}
diff --git a/jpa/plugins/org.eclipse.jpt.eclipselink.ui/src/org/eclipse/jpt/eclipselink/ui/internal/persistence/connection/CacheStatementsPropertiesComposite.java b/jpa/plugins/org.eclipse.jpt.eclipselink.ui/src/org/eclipse/jpt/eclipselink/ui/internal/persistence/connection/CacheStatementsPropertiesComposite.java
deleted file mode 100644
index 8136b58..0000000
--- a/jpa/plugins/org.eclipse.jpt.eclipselink.ui/src/org/eclipse/jpt/eclipselink/ui/internal/persistence/connection/CacheStatementsPropertiesComposite.java
+++ /dev/null
@@ -1,132 +0,0 @@
-/*******************************************************************************
-* Copyright (c) 2008, 2009 Oracle. All rights reserved.
-* This program and the accompanying materials are made available under the
-* terms of the Eclipse Public License v1.0, which accompanies this distribution
-* and is available at http://www.eclipse.org/legal/epl-v10.html.
-*
-* Contributors:
-*     Oracle - initial API and implementation
-*******************************************************************************/
-package org.eclipse.jpt.eclipselink.ui.internal.persistence.connection;
-
-import org.eclipse.jpt.eclipselink.core.internal.context.persistence.connection.Connection;
-import org.eclipse.jpt.eclipselink.ui.internal.EclipseLinkUiMessages;
-import org.eclipse.jpt.ui.internal.JpaHelpContextIds;
-import org.eclipse.jpt.ui.internal.util.PaneEnabler;
-import org.eclipse.jpt.ui.internal.widgets.IntegerCombo;
-import org.eclipse.jpt.ui.internal.widgets.Pane;
-import org.eclipse.jpt.utility.internal.StringConverter;
-import org.eclipse.jpt.utility.internal.model.value.PropertyAspectAdapter;
-import org.eclipse.jpt.utility.model.value.PropertyValueModel;
-import org.eclipse.jpt.utility.model.value.WritablePropertyValueModel;
-import org.eclipse.swt.custom.CCombo;
-import org.eclipse.swt.widgets.Composite;
-
-/**
- *  CacheStatementsPropertiesComposite
- */
-public class CacheStatementsPropertiesComposite extends Pane<Connection>
-{
-	public CacheStatementsPropertiesComposite(Pane<Connection> parentComposite, Composite parent) {
-
-		super(parentComposite, parent);
-	}
-
-	@Override
-	protected void initializeLayout(Composite container) {
-
-		WritablePropertyValueModel<Boolean> cacheStatementsHolder = buildCacheStatementsHolder();
-
-		container = this.addSubPane(container, 3, 5, 0, 0, 0);
-		
-		this.addTriStateCheckBox(
-			container,
-			EclipseLinkUiMessages.PersistenceXmlConnectionTab_cacheStatementsLabel,
-			cacheStatementsHolder,
-			JpaHelpContextIds.PERSISTENCE_XML_CONNECTION
-		);
-		IntegerCombo<?> combo = addCacheStatementsSizeCombo(container);
-
-		this.installControlEnabler(cacheStatementsHolder, combo);
-	}
-
-	private WritablePropertyValueModel<Boolean> buildCacheStatementsHolder() {
-		return new PropertyAspectAdapter<Connection, Boolean>(getSubjectHolder(), Connection.CACHE_STATEMENTS_PROPERTY) {
-			@Override
-			protected Boolean buildValue_() {
-				return this.subject.getCacheStatements();
-			}
-
-			@Override
-			protected void setValue_(Boolean value) {
-				this.subject.setCacheStatements(value);
-			}
-
-			@Override
-			protected void subjectChanged() {
-				Object oldValue = this.getValue();
-				super.subjectChanged();
-				Object newValue = this.getValue();
-
-				// Make sure the default value is appended to the text
-				if (oldValue == newValue && newValue == null) {
-					this.fireAspectChange(Boolean.TRUE, newValue);
-				}
-			}
-		};
-	}
-	
-	private IntegerCombo<Connection> addCacheStatementsSizeCombo(Composite container) {
-		return new IntegerCombo<Connection>(this, container) {
-			
-			@Override
-			protected CCombo addIntegerCombo(Composite container) {
-				return this.addEditableCCombo(
-						container,
-						buildDefaultListHolder(),
-						buildSelectedItemStringHolder(),
-						StringConverter.Default.<String>instance());
-			}
-		
-			@Override
-			protected String getLabelText() {
-				throw new UnsupportedOperationException();
-			}
-		
-			@Override
-			protected String getHelpId() {
-				return JpaHelpContextIds.PERSISTENCE_XML_CONNECTION;
-			}
-
-			@Override
-			protected PropertyValueModel<Integer> buildDefaultHolder() {
-				return new PropertyAspectAdapter<Connection, Integer>(getSubjectHolder()) {
-					@Override
-					protected Integer buildValue_() {
-						return this.subject.getDefaultCacheStatementsSize();
-					}
-				};
-			}
-			
-			@Override
-			protected WritablePropertyValueModel<Integer> buildSelectedItemHolder() {
-				return new PropertyAspectAdapter<Connection, Integer>(getSubjectHolder(), Connection.CACHE_STATEMENTS_SIZE_PROPERTY) {
-					@Override
-					protected Integer buildValue_() {
-						return this.subject.getCacheStatementsSize();
-					}
-
-					@Override
-					protected void setValue_(Integer value) {
-						this.subject.setCacheStatementsSize(value);
-					}
-				};
-			}
-		};
-	}
-
-	private void installControlEnabler(WritablePropertyValueModel<Boolean> cacheStatementsHolder, IntegerCombo<?> combo) {
-
-		new PaneEnabler(cacheStatementsHolder, combo);
-	}
-}
\ No newline at end of file
diff --git a/jpa/plugins/org.eclipse.jpt.eclipselink.ui/src/org/eclipse/jpt/eclipselink/ui/internal/persistence/connection/ConnectionPropertiesComposite.java b/jpa/plugins/org.eclipse.jpt.eclipselink.ui/src/org/eclipse/jpt/eclipselink/ui/internal/persistence/connection/ConnectionPropertiesComposite.java
deleted file mode 100644
index 0db4240..0000000
--- a/jpa/plugins/org.eclipse.jpt.eclipselink.ui/src/org/eclipse/jpt/eclipselink/ui/internal/persistence/connection/ConnectionPropertiesComposite.java
+++ /dev/null
@@ -1,38 +0,0 @@
-/*******************************************************************************
-* Copyright (c) 2008 Oracle. All rights reserved.
-* This program and the accompanying materials are made available under the
-* terms of the Eclipse Public License v1.0, which accompanies this distribution
-* and is available at http://www.eclipse.org/legal/epl-v10.html.
-*
-* Contributors:
-*     Oracle - initial API and implementation
-*******************************************************************************/
-package org.eclipse.jpt.eclipselink.ui.internal.persistence.connection;
-
-import org.eclipse.jpt.eclipselink.core.internal.context.persistence.connection.Connection;
-import org.eclipse.jpt.eclipselink.ui.internal.EclipseLinkUiMessages;
-import org.eclipse.jpt.ui.internal.widgets.Pane;
-import org.eclipse.swt.widgets.Composite;
-
-/**
- *  ConnectionPropertiesComposite
- */
-public class ConnectionPropertiesComposite extends Pane<Connection>
-{
-	public ConnectionPropertiesComposite(Pane<Connection> parentComposite, Composite parent) {
-
-		super(parentComposite, parent);
-	}
-
-	@Override
-	protected void initializeLayout(Composite container) {
-
-		container = addTitledGroup(
-			container,
-			EclipseLinkUiMessages.ConnectionPropertiesComposite_Database_GroupBox
-		);
-
-		new DataSourcePropertiesComposite(this, container);
-		new JdbcPropertiesComposite(this, container);
-	}
-}
\ No newline at end of file
diff --git a/jpa/plugins/org.eclipse.jpt.eclipselink.ui/src/org/eclipse/jpt/eclipselink/ui/internal/persistence/connection/DataSourcePropertiesComposite.java b/jpa/plugins/org.eclipse.jpt.eclipselink.ui/src/org/eclipse/jpt/eclipselink/ui/internal/persistence/connection/DataSourcePropertiesComposite.java
deleted file mode 100644
index b4aafbf..0000000
--- a/jpa/plugins/org.eclipse.jpt.eclipselink.ui/src/org/eclipse/jpt/eclipselink/ui/internal/persistence/connection/DataSourcePropertiesComposite.java
+++ /dev/null
@@ -1,152 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008, 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- *
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.eclipselink.ui.internal.persistence.connection;
-
-import org.eclipse.jpt.core.context.persistence.PersistenceUnit;
-import org.eclipse.jpt.core.context.persistence.PersistenceUnitTransactionType;
-import org.eclipse.jpt.eclipselink.core.internal.context.persistence.connection.Connection;
-import org.eclipse.jpt.eclipselink.ui.internal.EclipseLinkUiMessages;
-import org.eclipse.jpt.ui.internal.JpaHelpContextIds;
-import org.eclipse.jpt.ui.internal.util.ControlEnabler;
-import org.eclipse.jpt.ui.internal.widgets.Pane;
-import org.eclipse.jpt.utility.internal.model.value.PropertyAspectAdapter;
-import org.eclipse.jpt.utility.internal.model.value.TransformationPropertyValueModel;
-import org.eclipse.jpt.utility.model.value.PropertyValueModel;
-import org.eclipse.jpt.utility.model.value.WritablePropertyValueModel;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Label;
-import org.eclipse.swt.widgets.Text;
-
-/**
- * @version 2.0
- * @since 2.0
- */
-public class DataSourcePropertiesComposite extends Pane<Connection> {
-
-	/**
-	 * Creates a new <code>DataSourcePropertiesComposite</code>.
-	 *
-	 * @param parentPane The parent container of this one
-	 * @param parent The parent container
-	 */
-	public DataSourcePropertiesComposite(Pane<Connection> parentComposite,
-	                                      Composite parent) {
-
-		super(parentComposite, parent);
-	}
-
-	private WritablePropertyValueModel<String> buildJtaDataSourceHolder() {
-		return new PropertyAspectAdapter<PersistenceUnit, String>(buildPersistenceUnitHolder(), PersistenceUnit.JTA_DATA_SOURCE_PROPERTY) {
-			@Override
-			protected String buildValue_() {
-				return this.subject.getJtaDataSource();
-			}
-
-			@Override
-			protected void setValue_(String value) {
-				if (value.length() == 0) {
-					value = null;
-				}
-				this.subject.setJtaDataSource(value);
-			}
-		};
-	}
-
-	private PropertyValueModel<Boolean> buildJTADataSourceHolder() {
-		return new TransformationPropertyValueModel<PersistenceUnitTransactionType, Boolean>(buildTransactionTypeHolder()) {
-			@Override
-			protected Boolean transform(PersistenceUnitTransactionType value) {
-				return value == null || value == PersistenceUnitTransactionType.JTA;
-			}
-		};
-	}
-
-	private WritablePropertyValueModel<String> buildNonJtaDataSourceHolder() {
-		return new PropertyAspectAdapter<PersistenceUnit, String>(buildPersistenceUnitHolder(), PersistenceUnit.NON_JTA_DATA_SOURCE_PROPERTY) {
-			@Override
-			protected String buildValue_() {
-				return this.subject.getNonJtaDataSource();
-			}
-
-			@Override
-			protected void setValue_(String value) {
-				if (value.length() == 0) {
-					value = null;
-				}
-				this.subject.setNonJtaDataSource(value);
-			}
-		};
-	}
-
-	private PropertyValueModel<Boolean> buildNonJTADataSourceHolder() {
-		return new TransformationPropertyValueModel<PersistenceUnitTransactionType, Boolean>(buildTransactionTypeHolder()) {
-			@Override
-			protected Boolean transform(PersistenceUnitTransactionType value) {
-				return Boolean.valueOf(value == PersistenceUnitTransactionType.RESOURCE_LOCAL);
-			}
-		};
-	}
-
-	private PropertyValueModel<PersistenceUnitTransactionType> buildTransactionTypeHolder() {
-		return new PropertyAspectAdapter<PersistenceUnit, PersistenceUnitTransactionType>(
-				buildPersistenceUnitHolder(), 
-				PersistenceUnit.SPECIFIED_TRANSACTION_TYPE_PROPERTY, 
-				PersistenceUnit.DEFAULT_TRANSACTION_TYPE_PROPERTY) {
-			@Override
-			protected PersistenceUnitTransactionType buildValue_() {
-				return this.subject.getTransactionType();
-			}
-		};
-	}
-
-	private PropertyValueModel<PersistenceUnit> buildPersistenceUnitHolder() {
-		return new PropertyAspectAdapter<Connection, PersistenceUnit>(getSubjectHolder()) {
-			@Override
-			protected PersistenceUnit buildValue_() {
-				return this.subject.getPersistenceUnit();
-			}
-		};
-		
-	}
-	
-	@Override
-	protected void initializeLayout(Composite container) {
-
-		int groupBoxMargin = getGroupBoxMargin();
-
-		container = addSubPane(container, 0, groupBoxMargin, 0, groupBoxMargin);
-
-		// JTA Data Source
-		Label jtaLabel = addUnmanagedLabel(container, EclipseLinkUiMessages.PersistenceXmlConnectionTab_jtaDataSourceLabel);
-		Text text = addUnmanagedText(container, this.buildJtaDataSourceHolder(), this.getHelpID());
-		this.addLabeledComposite(container, jtaLabel, text, this.getHelpID());
-
-		this.installJTADataSourceControlEnabler(text, jtaLabel);
-
-		// Non-JTA Data Source
-		Label nonJtaLabel = addUnmanagedLabel(container, EclipseLinkUiMessages.PersistenceXmlConnectionTab_nonJtaDataSourceLabel);
-		Text nonJtaText = addUnmanagedText(container, buildNonJtaDataSourceHolder(), this.getHelpID());
-		this.addLabeledComposite(container, nonJtaLabel, nonJtaText, this.getHelpID());
-
-		this.installNonJTADataSourceControlEnabler(nonJtaText, nonJtaLabel);
-	}
-
-	private void installJTADataSourceControlEnabler(Text text, Label label) {
-		new ControlEnabler(buildJTADataSourceHolder(), text, label);
-	}
-
-	private void installNonJTADataSourceControlEnabler(Text text, Label label) {
-		new ControlEnabler(buildNonJTADataSourceHolder(), text, label);
-	}
-	
-	public String getHelpID() {
-		return JpaHelpContextIds.PERSISTENCE_XML_CONNECTION;
-	}
-}
\ No newline at end of file
diff --git a/jpa/plugins/org.eclipse.jpt.eclipselink.ui/src/org/eclipse/jpt/eclipselink/ui/internal/persistence/connection/EclipseLinkConnectionComposite.java b/jpa/plugins/org.eclipse.jpt.eclipselink.ui/src/org/eclipse/jpt/eclipselink/ui/internal/persistence/connection/EclipseLinkConnectionComposite.java
deleted file mode 100644
index 2f4f76f..0000000
--- a/jpa/plugins/org.eclipse.jpt.eclipselink.ui/src/org/eclipse/jpt/eclipselink/ui/internal/persistence/connection/EclipseLinkConnectionComposite.java
+++ /dev/null
@@ -1,55 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- *
- * Contributors:
- *     Oracle - initial API and implementation
- *******************************************************************************/
-package org.eclipse.jpt.eclipselink.ui.internal.persistence.connection;
-
-import org.eclipse.jpt.eclipselink.core.internal.context.persistence.connection.Connection;
-import org.eclipse.jpt.eclipselink.ui.internal.EclipseLinkUiMessages;
-import org.eclipse.jpt.ui.internal.widgets.FormPane;
-import org.eclipse.swt.widgets.Composite;
-
-/**
- * EclipseLinkConnectionComposite
- */
-public class EclipseLinkConnectionComposite
-	extends FormPane<Connection>
-{
-	public EclipseLinkConnectionComposite(
-					FormPane<Connection> subjectHolder,
-					Composite container) {
-		super(subjectHolder, container, false);
-	}
-
-	@Override
-	protected void initializeLayout(Composite container) {
-
-		int groupBoxMargin = getGroupBoxMargin() * 2;
-
-		container = addSection(
-			container,
-			EclipseLinkUiMessages.PersistenceXmlConnectionTab_sectionTitle,
-			EclipseLinkUiMessages.PersistenceXmlConnectionTab_sectionDescription
-		);
-
-		Composite subPane = addSubPane(
-			container,
-			0, groupBoxMargin, 10, groupBoxMargin
-		);
-
-		new TransactionTypeComposite(this, subPane);
-
-		new BatchWritingComposite(this, subPane);
-
-		new CacheStatementsPropertiesComposite(this, subPane);
-
-		new NativeSqlComposite(this, subPane);
-
-		new ConnectionPropertiesComposite(this, container);
-	}
-}
\ No newline at end of file
diff --git a/jpa/plugins/org.eclipse.jpt.eclipselink.ui/src/org/eclipse/jpt/eclipselink/ui/internal/persistence/connection/JdbcBindParametersComposite.java b/jpa/plugins/org.eclipse.jpt.eclipselink.ui/src/org/eclipse/jpt/eclipselink/ui/internal/persistence/connection/JdbcBindParametersComposite.java
deleted file mode 100644
index 9a4657e..0000000
--- a/jpa/plugins/org.eclipse.jpt.eclipselink.ui/src/org/eclipse/jpt/eclipselink/ui/internal/persistence/connection/JdbcBindParametersComposite.java
+++ /dev/null
@@ -1,96 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008, 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- *
- * Contributors:
- *     Oracle - initial API and implementation
- *******************************************************************************/
-package org.eclipse.jpt.eclipselink.ui.internal.persistence.connection;
-
-import org.eclipse.jpt.eclipselink.core.internal.context.persistence.connection.Connection;
-import org.eclipse.jpt.eclipselink.ui.internal.EclipseLinkUiMessages;
-import org.eclipse.jpt.ui.internal.JpaHelpContextIds;
-import org.eclipse.jpt.ui.internal.widgets.Pane;
-import org.eclipse.jpt.utility.internal.model.value.PropertyAspectAdapter;
-import org.eclipse.jpt.utility.internal.model.value.TransformationPropertyValueModel;
-import org.eclipse.jpt.utility.model.value.PropertyValueModel;
-import org.eclipse.jpt.utility.model.value.WritablePropertyValueModel;
-import org.eclipse.osgi.util.NLS;
-import org.eclipse.swt.widgets.Composite;
-
-/**
- * JdbcBindParametersComposite
- */
-public class JdbcBindParametersComposite extends Pane<Connection>
-{
-	/**
-	 * Creates a new <code>JdbcBindParametersComposite</code>.
-	 *
-	 * @param parentController
-	 *            The parent container of this one
-	 * @param parent
-	 *            The parent container
-	 */
-	public JdbcBindParametersComposite(
-					Pane<? extends Connection> parentComposite,
-					Composite parent) {
-
-		super(parentComposite, parent);
-	}
-
-	private WritablePropertyValueModel<Boolean> buildBindParametersHolder() {
-		return new PropertyAspectAdapter<Connection, Boolean>(getSubjectHolder(), Connection.BIND_PARAMETERS_PROPERTY) {
-			@Override
-			protected Boolean buildValue_() {
-				return subject.getBindParameters();
-			}
-
-			@Override
-			protected void setValue_(Boolean value) {
-				subject.setBindParameters(value);
-			}
-
-			@Override
-			protected void subjectChanged() {
-				Object oldValue = this.getValue();
-				super.subjectChanged();
-				Object newValue = this.getValue();
-
-				// Make sure the default value is appended to the text
-				if (oldValue == newValue && newValue == null) {
-					this.fireAspectChange(Boolean.TRUE, newValue);
-				}
-			}
-		};
-	}
-
-	private PropertyValueModel<String> buildBindParametersStringHolder() {
-		return new TransformationPropertyValueModel<Boolean, String>(buildBindParametersHolder()) {
-			@Override
-			protected String transform(Boolean value) {
-				if ((getSubject() != null) && (value == null)) {
-					Boolean defaultValue = getSubject().getDefaultBindParameters();
-					if (defaultValue != null) {
-						String defaultStringValue = defaultValue ? EclipseLinkUiMessages.Boolean_True : EclipseLinkUiMessages.Boolean_False;
-						return NLS.bind(EclipseLinkUiMessages.PersistenceXmlConnectionTab_bindParametersLabelDefault, defaultStringValue);
-					}
-				}
-				return EclipseLinkUiMessages.PersistenceXmlConnectionTab_bindParametersLabel;
-			}
-		};
-	}
-
-	@Override
-	protected void initializeLayout(Composite container) {
-
-		this.addTriStateCheckBoxWithDefault(
-			container,
-			EclipseLinkUiMessages.PersistenceXmlConnectionTab_bindParametersLabel,
-			this.buildBindParametersHolder(),
-			this.buildBindParametersStringHolder(),
-			JpaHelpContextIds.PERSISTENCE_XML_CONNECTION
-		);
-	}
-}
diff --git a/jpa/plugins/org.eclipse.jpt.eclipselink.ui/src/org/eclipse/jpt/eclipselink/ui/internal/persistence/connection/JdbcConnectionPropertiesComposite.java b/jpa/plugins/org.eclipse.jpt.eclipselink.ui/src/org/eclipse/jpt/eclipselink/ui/internal/persistence/connection/JdbcConnectionPropertiesComposite.java
deleted file mode 100644
index 5c6b9a6..0000000
--- a/jpa/plugins/org.eclipse.jpt.eclipselink.ui/src/org/eclipse/jpt/eclipselink/ui/internal/persistence/connection/JdbcConnectionPropertiesComposite.java
+++ /dev/null
@@ -1,340 +0,0 @@
-/*******************************************************************************
-* Copyright (c) 2008 Oracle. All rights reserved.
-* This program and the accompanying materials are made available under the
-* terms of the Eclipse Public License v1.0, which accompanies this distribution
-* and is available at http://www.eclipse.org/legal/epl-v10.html.
-*
-* Contributors:
-*     Oracle - initial API and implementation
-*******************************************************************************/
-package org.eclipse.jpt.eclipselink.ui.internal.persistence.connection;
-
-import java.util.Comparator;
-import java.util.Iterator;
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.core.runtime.Status;
-import org.eclipse.jface.dialogs.IDialogConstants;
-import org.eclipse.jface.dialogs.IDialogSettings;
-import org.eclipse.jface.viewers.ILabelProvider;
-import org.eclipse.jface.viewers.LabelProvider;
-import org.eclipse.jpt.db.ConnectionProfile;
-import org.eclipse.jpt.db.ConnectionProfileFactory;
-import org.eclipse.jpt.db.JptDbPlugin;
-import org.eclipse.jpt.eclipselink.core.internal.context.persistence.connection.Connection;
-import org.eclipse.jpt.eclipselink.ui.internal.EclipseLinkUiMessages;
-import org.eclipse.jpt.ui.JptUiPlugin;
-import org.eclipse.jpt.ui.internal.widgets.Pane;
-import org.eclipse.jpt.utility.internal.StringTools;
-import org.eclipse.jpt.utility.internal.model.value.PropertyAspectAdapter;
-import org.eclipse.jpt.utility.model.value.WritablePropertyValueModel;
-import org.eclipse.swt.graphics.Image;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Control;
-import org.eclipse.swt.widgets.Shell;
-import org.eclipse.ui.dialogs.FilteredItemsSelectionDialog;
-
-/**
- *  JdbcConnectionPropertiesComposite
- */
-@SuppressWarnings("nls")
-public class JdbcConnectionPropertiesComposite extends Pane<Connection>
-{
-	/**
-	 * The constant ID used to retrieve the dialog settings.
-	 */
-	private static final String DIALOG_SETTINGS = "org.eclipse.jpt.eclipselink.ui.dialogs.ConnectionDialog";
-
-	public JdbcConnectionPropertiesComposite(Pane<Connection> parentComposite, Composite parent) {
-
-		super(parentComposite, parent);
-	}
-
-	private WritablePropertyValueModel<String> buildPasswordHolder() {
-		return new PropertyAspectAdapter<Connection, String>(getSubjectHolder(), Connection.PASSWORD_PROPERTY) {
-			@Override
-			protected String buildValue_() {
-				return subject.getPassword();
-			}
-
-			@Override
-			protected void setValue_(String value) {
-				if (value.length() == 0) {
-					value = null;
-				}
-				subject.setPassword(value);
-			}
-		};
-	}
-
-	private Runnable buildPopulateFromConnectionAction() {
-		return new Runnable() {
-			public void run() {
-				promptConnection();
-			}
-		};
-	}
-
-	private WritablePropertyValueModel<String> buildUrlHolder() {
-		return new PropertyAspectAdapter<Connection, String>(getSubjectHolder(), Connection.URL_PROPERTY) {
-			@Override
-			protected String buildValue_() {
-				return subject.getUrl();
-			}
-
-			@Override
-			protected void setValue_(String value) {
-				if (value.length() == 0) {
-					value = null;
-				}
-				subject.setUrl(value);
-			}
-		};
-	}
-
-	private WritablePropertyValueModel<String> buildUserHolder() {
-		return new PropertyAspectAdapter<Connection, String>(getSubjectHolder(), Connection.USER_PROPERTY) {
-			@Override
-			protected String buildValue_() {
-				return subject.getUser();
-			}
-
-			@Override
-			protected void setValue_(String value) {
-				if (value.length() == 0) {
-					value = null;
-				}
-				subject.setUser(value);
-			}
-		};
-	}
-
-	@Override
-	protected void initializeLayout(Composite container) {
-
-		// Populate from Connection hyperlink
-		this.addHyperlink(
-			container,
-			"Populate from Connection...",
-			buildPopulateFromConnectionAction()
-		);
-
-		// Driver
-		new JdbcDriverComposite(this, container);
-
-		// Url
-		this.addLabeledText(
-			container,
-			EclipseLinkUiMessages.PersistenceXmlConnectionTab_urlLabel,
-			buildUrlHolder()
-		);
-
-		// User
-		this.addLabeledText(
-			container,
-			EclipseLinkUiMessages.PersistenceXmlConnectionTab_userLabel,
-			buildUserHolder()
-		);
-
-		// Password
-		this.addLabeledPasswordText(
-			container,
-			EclipseLinkUiMessages.PersistenceXmlConnectionTab_passwordLabel,
-			buildPasswordHolder()
-		);
-
-		// Bind Parameters
-		new JdbcBindParametersComposite(this, container);
-	}
-
-	void promptConnection() {
-
-		ConnectionSelectionDialog dialog = new ConnectionSelectionDialog();
-
-		if (dialog.open() != IDialogConstants.OK_ID) {
-			return;
-		}
-
-		String name = (String) dialog.getResult()[0];
-		ConnectionProfile cp = this.getConnectionProfileFactory().buildConnectionProfile(name);
-
-		Connection connection = getSubject();
-		connection.setUrl((cp == null) ? "" : cp.getURL());
-		connection.setUser((cp == null) ? "" : cp.getUserName());
-		connection.setPassword((cp == null) ? "" : cp.getUserPassword());
-		connection.setDriver((cp == null) ? "" : cp.getDriverClassName());
-	}
-
-	ConnectionProfileFactory getConnectionProfileFactory() {
-		// we allow the user to select any connection profile and simply
-		// take the settings from it (user, password, etc.) and give them
-		// to the EclipseLink connection, so we go
-		// to the db plug-in directly to get the factory
-		return JptDbPlugin.instance().getConnectionProfileFactory();
-	}
-
-	// broaden access a bit
-	Shell getShell_() {
-		return this.getShell();
-	}
-
-	/**
-	 * This dialog shows the list of possible connection names and lets the user
-	 * the option to filter them using a search field.
-	 */
-	protected class ConnectionSelectionDialog extends FilteredItemsSelectionDialog {
-
-		/**
-		 * Creates a new <code>MappingSelectionDialog</code>.
-		 */
-		protected ConnectionSelectionDialog() {
-			super(JdbcConnectionPropertiesComposite.this.getShell_(), false);
-			setMessage(EclipseLinkUiMessages.JdbcConnectionPropertiesComposite_ConnectionDialog_Message);
-			setTitle(EclipseLinkUiMessages.JdbcConnectionPropertiesComposite_ConnectionDialog_Title);
-			setListLabelProvider(buildLabelProvider());
-			setDetailsLabelProvider(buildLabelProvider());
-		}
-
-		protected ILabelProvider buildLabelProvider() {
-			return new LabelProvider() {
-				@Override
-				public Image getImage(Object element) {
-					return null;
-				}
-
-				@Override
-				public String getText(Object element) {
-					return (element == null) ? "" : element.toString();
-				}
-			};
-		}
-
-		/*
-		 * (non-Javadoc)
-		 */
-		@Override
-		protected Control createExtendedContentArea(Composite parent) {
-			return null;
-		}
-
-		/*
-		 * (non-Javadoc)
-		 */
-		@Override
-		protected ItemsFilter createFilter() {
-			return new ConnectionItemsFilter();
-		}
-
-		/*
-		 * (non-Javadoc)
-		 */
-		@Override
-		protected void fillContentProvider(AbstractContentProvider provider,
-		                                   ItemsFilter itemsFilter,
-		                                   IProgressMonitor monitor) throws CoreException {
-
-			monitor.beginTask(null, -1);
-
-			try {
-				// Add the connection names to the dialog
-				for (Iterator<String> stream = this.connectionProfileNames(); stream.hasNext(); ) {
-					provider.add(stream.next(), itemsFilter);
-				}
-			}
-			finally {
-				monitor.done();
-			}
-		}
-
-		private Iterator<String> connectionProfileNames() {
-			return JdbcConnectionPropertiesComposite.this.getConnectionProfileFactory().connectionProfileNames();
-		}
-
-		/*
-		 * (non-Javadoc)
-		 */
-		@Override
-		protected IDialogSettings getDialogSettings() {
-
-			IDialogSettings dialogSettings = JptUiPlugin.instance().getDialogSettings();
-			IDialogSettings settings = dialogSettings.getSection(DIALOG_SETTINGS);
-
-			if (settings == null) {
-				settings = dialogSettings.addNewSection(DIALOG_SETTINGS);
-			}
-
-			return settings;
-		}
-
-		/*
-		 * (non-Javadoc)
-		 */
-		@Override
-		public String getElementName(Object object) {
-			return object.toString();
-		}
-
-		/*
-		 * (non-Javadoc)
-		 */
-		@Override
-		protected Comparator<String> getItemsComparator() {
-			return new Comparator<String>() {
-				public int compare(String item1, String item2) {
-					return item1.compareTo(item2);
-				}
-			};
-		}
-
-		/*
-		 * (non-Javadoc)
-		 */
-		@Override
-		protected IStatus validateItem(Object item) {
-
-			if (item == null) {
-				return new Status(IStatus.ERROR, JptUiPlugin.PLUGIN_ID, IStatus.ERROR, "", null);
-			}
-
-			return Status.OK_STATUS;
-		}
-
-		/**
-		 * Create the filter responsible to remove any connection name based on
-		 * the pattern entered in the text field.
-		 */
-		private class ConnectionItemsFilter extends ItemsFilter {
-
-			/**
-			 * Creates a new <code>ConnectionItemsFilter</code>.
-			 */
-			ConnectionItemsFilter() {
-
-				super();
-
-				// Make sure that if the pattern is empty, we specify * in order
-				// to show all the mapping types
-				if (StringTools.stringIsEmpty(getPattern())) {
-					patternMatcher.setPattern("*");
-				}
-			}
-
-			/*
-			 * (non-Javadoc)
-			 */
-			@Override
-			public boolean isConsistentItem(Object item) {
-				return true;
-			}
-
-			/*
-			 * (non-Javadoc)
-			 */
-			@Override
-			public boolean matchItem(Object item) {
-				return matches(item.toString());
-			}
-		}
-	}
-}
\ No newline at end of file
diff --git a/jpa/plugins/org.eclipse.jpt.eclipselink.ui/src/org/eclipse/jpt/eclipselink/ui/internal/persistence/connection/JdbcDriverComposite.java b/jpa/plugins/org.eclipse.jpt.eclipselink.ui/src/org/eclipse/jpt/eclipselink/ui/internal/persistence/connection/JdbcDriverComposite.java
deleted file mode 100644
index 9d7a943..0000000
--- a/jpa/plugins/org.eclipse.jpt.eclipselink.ui/src/org/eclipse/jpt/eclipselink/ui/internal/persistence/connection/JdbcDriverComposite.java
+++ /dev/null
@@ -1,93 +0,0 @@
-/*******************************************************************************
-* Copyright (c) 2008 Oracle. All rights reserved.
-* This program and the accompanying materials are made available under the
-* terms of the Eclipse Public License v1.0, which accompanies this distribution
-* and is available at http://www.eclipse.org/legal/epl-v10.html.
-* 
-* Contributors:
-*     Oracle - initial API and implementation
-*******************************************************************************/
-package org.eclipse.jpt.eclipselink.ui.internal.persistence.connection;
-
-import org.eclipse.jpt.core.JpaProject;
-import org.eclipse.jpt.eclipselink.core.internal.context.persistence.connection.Connection;
-import org.eclipse.jpt.eclipselink.ui.internal.EclipseLinkUiMessages;
-import org.eclipse.jpt.ui.internal.widgets.ClassChooserPane;
-import org.eclipse.jpt.ui.internal.widgets.Pane;
-import org.eclipse.jpt.utility.internal.model.value.PropertyAspectAdapter;
-import org.eclipse.jpt.utility.model.value.WritablePropertyValueModel;
-import org.eclipse.swt.widgets.Composite;
-
-/**
- *  JdbcDriverComposite
- */
-public class JdbcDriverComposite extends Pane<Connection>
-{
-	/**
-	 * Creates a new <code>EventListenerComposite</code>.
-	 *
-	 * @param parentPane The parent pane of this one
-	 * @param parent The parent container
-	 */
-	public JdbcDriverComposite(Pane<? extends Connection> parentPane,
-                           Composite parent) {
-
-		super(parentPane, parent);
-	}
-
-	private ClassChooserPane<Connection> initializeClassChooser(Composite container) {
-
-		return new ClassChooserPane<Connection>(this, container) {
-
-			@Override
-			protected WritablePropertyValueModel<String> buildTextHolder() {
-				return new PropertyAspectAdapter<Connection, String>(
-							this.getSubjectHolder(), Connection.DRIVER_PROPERTY) {
-					@Override
-					protected String buildValue_() {
-						return this.subject.getDriver();
-					}
-
-					@Override
-					protected void setValue_(String value) {
-
-						if (value.length() == 0) {
-							value = null;
-						}
-						this.subject.setDriver(value);
-					}
-				};
-			}
-
-			@Override
-			protected String getClassName() {
-				return this.getSubject().getDriver();
-			}
-
-			@Override
-			protected String getLabelText() {
-				return EclipseLinkUiMessages.PersistenceXmlConnectionTab_driverLabel;
-			}
-			
-			@Override
-			protected JpaProject getJpaProject() {
-				return getSubject().getJpaProject();
-			}
-			@Override
-			protected void setClassName(String className) {
-				this.getSubject().setDriver(className);				
-			}
-			
-			@Override
-			protected boolean allowTypeCreation() {
-				//Does not make sense to allow the user to create a new Driver class
-				return false;
-			}
-		};
-	}
-
-	@Override
-	protected void initializeLayout(Composite container) {
-		this.initializeClassChooser(container);
-	}
-}
diff --git a/jpa/plugins/org.eclipse.jpt.eclipselink.ui/src/org/eclipse/jpt/eclipselink/ui/internal/persistence/connection/JdbcPropertiesComposite.java b/jpa/plugins/org.eclipse.jpt.eclipselink.ui/src/org/eclipse/jpt/eclipselink/ui/internal/persistence/connection/JdbcPropertiesComposite.java
deleted file mode 100644
index a4b532e..0000000
--- a/jpa/plugins/org.eclipse.jpt.eclipselink.ui/src/org/eclipse/jpt/eclipselink/ui/internal/persistence/connection/JdbcPropertiesComposite.java
+++ /dev/null
@@ -1,86 +0,0 @@
-/*******************************************************************************
-* Copyright (c) 2008, 2009 Oracle. All rights reserved.
-* This program and the accompanying materials are made available under the
-* terms of the Eclipse Public License v1.0, which accompanies this distribution
-* and is available at http://www.eclipse.org/legal/epl-v10.html.
-*
-* Contributors:
-*     Oracle - initial API and implementation
-*******************************************************************************/
-package org.eclipse.jpt.eclipselink.ui.internal.persistence.connection;
-
-import org.eclipse.jpt.core.context.persistence.PersistenceUnit;
-import org.eclipse.jpt.core.context.persistence.PersistenceUnitTransactionType;
-import org.eclipse.jpt.eclipselink.core.internal.context.persistence.connection.Connection;
-import org.eclipse.jpt.eclipselink.ui.internal.EclipseLinkUiMessages;
-import org.eclipse.jpt.ui.internal.util.PaneEnabler;
-import org.eclipse.jpt.ui.internal.widgets.Pane;
-import org.eclipse.jpt.utility.internal.model.value.PropertyAspectAdapter;
-import org.eclipse.jpt.utility.internal.model.value.TransformationPropertyValueModel;
-import org.eclipse.jpt.utility.model.value.PropertyValueModel;
-import org.eclipse.swt.layout.GridLayout;
-import org.eclipse.swt.widgets.Composite;
-
-/**
- *  JdbcPropertiesComposite
- */
-public class JdbcPropertiesComposite extends Pane<Connection>
-{
-	public JdbcPropertiesComposite(Pane<Connection> parentComposite, Composite parent) {
-
-		super(parentComposite, parent);
-	}
-
-	private PropertyValueModel<Boolean> buildPaneEnablerHolder() {
-		return new TransformationPropertyValueModel<PersistenceUnitTransactionType, Boolean>(buildTransactionTypeHolder()) {
-			@Override
-			protected Boolean transform(PersistenceUnitTransactionType value) {
-				return value == PersistenceUnitTransactionType.RESOURCE_LOCAL;
-			}
-		};
-	}
-
-	private PropertyValueModel<PersistenceUnitTransactionType> buildTransactionTypeHolder() {
-		return new PropertyAspectAdapter<PersistenceUnit, PersistenceUnitTransactionType>(
-			buildPersistenceUnitHolder(), 
-			PersistenceUnit.SPECIFIED_TRANSACTION_TYPE_PROPERTY, 
-			PersistenceUnit.DEFAULT_TRANSACTION_TYPE_PROPERTY) {
-			@Override
-			protected PersistenceUnitTransactionType buildValue_() {
-				return this.subject.getTransactionType();
-			}
-		};
-	}
-
-	private PropertyValueModel<PersistenceUnit> buildPersistenceUnitHolder() {
-		return new PropertyAspectAdapter<Connection, PersistenceUnit>(getSubjectHolder()) {
-			@Override
-			protected PersistenceUnit buildValue_() {
-				return this.subject.getPersistenceUnit();
-			}
-		};
-		
-	}
-
-	@Override
-	protected void initializeLayout(Composite container) {
-
-		container = addTitledGroup(
-			addSubPane(container, 10),
-			EclipseLinkUiMessages.JdbcPropertiesComposite_EclipseLinkConnectionPool_GroupBox
-		);
-
-		new JdbcConnectionPropertiesComposite(this, container);
-
-		container = addPane(container, new GridLayout(2, true));
-
-		new JdbcReadConnectionPropertiesComposite(this, container);
-		new JdbcWriteConnectionPropertiesComposite(this, container);
-
-		this.installPaneEnabler();
-	}
-
-	private void installPaneEnabler() {
-		new PaneEnabler(buildPaneEnablerHolder(), this);
-	}
-}
\ No newline at end of file
diff --git a/jpa/plugins/org.eclipse.jpt.eclipselink.ui/src/org/eclipse/jpt/eclipselink/ui/internal/persistence/connection/JdbcReadConnectionPropertiesComposite.java b/jpa/plugins/org.eclipse.jpt.eclipselink.ui/src/org/eclipse/jpt/eclipselink/ui/internal/persistence/connection/JdbcReadConnectionPropertiesComposite.java
deleted file mode 100644
index d1796e3..0000000
--- a/jpa/plugins/org.eclipse.jpt.eclipselink.ui/src/org/eclipse/jpt/eclipselink/ui/internal/persistence/connection/JdbcReadConnectionPropertiesComposite.java
+++ /dev/null
@@ -1,52 +0,0 @@
-/*******************************************************************************
-* Copyright (c) 2008 Oracle. All rights reserved.
-* This program and the accompanying materials are made available under the
-* terms of the Eclipse Public License v1.0, which accompanies this distribution
-* and is available at http://www.eclipse.org/legal/epl-v10.html.
-*
-* Contributors:
-*     Oracle - initial API and implementation
-*******************************************************************************/
-package org.eclipse.jpt.eclipselink.ui.internal.persistence.connection;
-
-import org.eclipse.jpt.eclipselink.core.internal.context.persistence.connection.Connection;
-import org.eclipse.jpt.eclipselink.ui.internal.EclipseLinkUiMessages;
-import org.eclipse.jpt.ui.internal.widgets.Pane;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.layout.GridData;
-import org.eclipse.swt.widgets.Composite;
-
-/**
- *  JdbcReadConnectionPropertiesComposite
- */
-public class JdbcReadConnectionPropertiesComposite extends Pane<Connection>
-{
-	public JdbcReadConnectionPropertiesComposite(Pane<Connection> parentComposite, Composite parent) {
-
-		super(parentComposite, parent, false);
-	}
-
-	@Override
-	protected void initializeLayout(Composite container) {
-
-		container = this.addSection(
-			container,
-			EclipseLinkUiMessages.PersistenceXmlConnectionTab_readConnectionsSectionTitle
-		);
-
-		GridData data = (GridData) container.getLayoutData();
-		data.verticalAlignment = SWT.TOP;
-
-		data = (GridData) getControl().getLayoutData();
-		data.verticalAlignment = SWT.TOP;
-
-		// Read Connections Shared
-		new JdbcReadConnectionsSharedComposite(this, container);
-
-		// Read Connections Minimum
-		new JdbcReadConnectionsMinComposite(this, container);
-
-		// Read Connections Maximum
-		new JdbcReadConnectionsMaxComposite(this, container);
-	}
-}
\ No newline at end of file
diff --git a/jpa/plugins/org.eclipse.jpt.eclipselink.ui/src/org/eclipse/jpt/eclipselink/ui/internal/persistence/connection/JdbcReadConnectionsMaxComposite.java b/jpa/plugins/org.eclipse.jpt.eclipselink.ui/src/org/eclipse/jpt/eclipselink/ui/internal/persistence/connection/JdbcReadConnectionsMaxComposite.java
deleted file mode 100644
index 2775d2d..0000000
--- a/jpa/plugins/org.eclipse.jpt.eclipselink.ui/src/org/eclipse/jpt/eclipselink/ui/internal/persistence/connection/JdbcReadConnectionsMaxComposite.java
+++ /dev/null
@@ -1,86 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008, 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- *
- * Contributors:
- *     Oracle - initial API and implementation
- *******************************************************************************/
-package org.eclipse.jpt.eclipselink.ui.internal.persistence.connection;
-
-import org.eclipse.jpt.eclipselink.core.internal.context.persistence.connection.Connection;
-import org.eclipse.jpt.eclipselink.ui.internal.EclipseLinkUiMessages;
-import org.eclipse.jpt.ui.internal.JpaHelpContextIds;
-import org.eclipse.jpt.ui.internal.widgets.IntegerCombo;
-import org.eclipse.jpt.ui.internal.widgets.Pane;
-import org.eclipse.jpt.utility.internal.model.value.PropertyAspectAdapter;
-import org.eclipse.jpt.utility.model.value.PropertyValueModel;
-import org.eclipse.jpt.utility.model.value.WritablePropertyValueModel;
-import org.eclipse.swt.widgets.Composite;
-
-/**
- * JdbcReadConnectionsMaxComposite
- */
-public class JdbcReadConnectionsMaxComposite extends Pane<Connection>
-{
-	/**
-	 * Creates a new <code>JdbcReadConnectionsMaxComposite</code>.
-	 *
-	 * @param parentController
-	 *            The parent container of this one
-	 * @param parent
-	 *            The parent container
-	 */
-	public JdbcReadConnectionsMaxComposite(Pane<Connection> parentComposite,
-	                                 Composite parent) {
-
-		super(parentComposite, parent);
-	}
-
-
-	@Override
-	protected void initializeLayout(Composite container) {
-		addReadConnectionsMaxCombo(container);
-	}
-	
-	private void addReadConnectionsMaxCombo(Composite container) {
-		new IntegerCombo<Connection>(this, container) {
-			
-			@Override
-			protected String getLabelText() {
-				return EclipseLinkUiMessages.PersistenceXmlConnectionTab_readConnectionsMaxLabel;
-			}
-		
-			@Override
-			protected String getHelpId() {
-				return JpaHelpContextIds.PERSISTENCE_XML_CONNECTION;
-			}
-			
-			@Override
-			protected PropertyValueModel<Integer> buildDefaultHolder() {
-				return new PropertyAspectAdapter<Connection, Integer>(getSubjectHolder()) {
-					@Override
-					protected Integer buildValue_() {
-						return this.subject.getDefaultReadConnectionsMax();
-					}
-				};
-			}
-			
-			@Override
-			protected WritablePropertyValueModel<Integer> buildSelectedItemHolder() {
-				return new PropertyAspectAdapter<Connection, Integer>(getSubjectHolder(), Connection.READ_CONNECTIONS_MAX_PROPERTY) {
-					@Override
-					protected Integer buildValue_() {
-						return this.subject.getReadConnectionsMax();
-					}
-
-					@Override
-					protected void setValue_(Integer value) {
-						this.subject.setReadConnectionsMax(value);
-					}
-				};
-			}
-		};
-	}
-}
\ No newline at end of file
diff --git a/jpa/plugins/org.eclipse.jpt.eclipselink.ui/src/org/eclipse/jpt/eclipselink/ui/internal/persistence/connection/JdbcReadConnectionsMinComposite.java b/jpa/plugins/org.eclipse.jpt.eclipselink.ui/src/org/eclipse/jpt/eclipselink/ui/internal/persistence/connection/JdbcReadConnectionsMinComposite.java
deleted file mode 100644
index 0bbd458..0000000
--- a/jpa/plugins/org.eclipse.jpt.eclipselink.ui/src/org/eclipse/jpt/eclipselink/ui/internal/persistence/connection/JdbcReadConnectionsMinComposite.java
+++ /dev/null
@@ -1,85 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008, 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- *
- * Contributors:
- *     Oracle - initial API and implementation
- *******************************************************************************/
-package org.eclipse.jpt.eclipselink.ui.internal.persistence.connection;
-
-import org.eclipse.jpt.eclipselink.core.internal.context.persistence.connection.Connection;
-import org.eclipse.jpt.eclipselink.ui.internal.EclipseLinkUiMessages;
-import org.eclipse.jpt.ui.internal.JpaHelpContextIds;
-import org.eclipse.jpt.ui.internal.widgets.IntegerCombo;
-import org.eclipse.jpt.ui.internal.widgets.Pane;
-import org.eclipse.jpt.utility.internal.model.value.PropertyAspectAdapter;
-import org.eclipse.jpt.utility.model.value.PropertyValueModel;
-import org.eclipse.jpt.utility.model.value.WritablePropertyValueModel;
-import org.eclipse.swt.widgets.Composite;
-
-/**
- * JdbcReadConnectionsMinComposite
- */
-public class JdbcReadConnectionsMinComposite extends Pane<Connection>
-{
-	/**
-	 * Creates a new <code>JdbcReadConnectionsMinComposite</code>.
-	 *
-	 * @param parentController
-	 *            The parent container of this one
-	 * @param parent
-	 *            The parent container
-	 */
-	public JdbcReadConnectionsMinComposite(Pane<Connection> parentComposite,
-	                                 Composite parent) {
-
-		super(parentComposite, parent);
-	}
-
-	@Override
-	protected void initializeLayout(Composite container) {
-		addReadConnectionsMinCombo(container);
-	}
-	
-	private void addReadConnectionsMinCombo(Composite container) {
-		new IntegerCombo<Connection>(this, container) {
-			
-			@Override
-			protected String getLabelText() {
-				return EclipseLinkUiMessages.PersistenceXmlConnectionTab_readConnectionsMinLabel;
-			}
-		
-			@Override
-			protected String getHelpId() {
-				return JpaHelpContextIds.PERSISTENCE_XML_CONNECTION;
-			}
-			
-			@Override
-			protected PropertyValueModel<Integer> buildDefaultHolder() {
-				return new PropertyAspectAdapter<Connection, Integer>(getSubjectHolder()) {
-					@Override
-					protected Integer buildValue_() {
-						return this.subject.getDefaultReadConnectionsMin();
-					}
-				};
-			}
-			
-			@Override
-			protected WritablePropertyValueModel<Integer> buildSelectedItemHolder() {
-				return new PropertyAspectAdapter<Connection, Integer>(getSubjectHolder(), Connection.READ_CONNECTIONS_MIN_PROPERTY) {
-					@Override
-					protected Integer buildValue_() {
-						return this.subject.getReadConnectionsMin();
-					}
-
-					@Override
-					protected void setValue_(Integer value) {
-						this.subject.setReadConnectionsMin(value);
-					}
-				};
-			}
-		};
-	}
-}
\ No newline at end of file
diff --git a/jpa/plugins/org.eclipse.jpt.eclipselink.ui/src/org/eclipse/jpt/eclipselink/ui/internal/persistence/connection/JdbcReadConnectionsSharedComposite.java b/jpa/plugins/org.eclipse.jpt.eclipselink.ui/src/org/eclipse/jpt/eclipselink/ui/internal/persistence/connection/JdbcReadConnectionsSharedComposite.java
deleted file mode 100644
index a1302e2..0000000
--- a/jpa/plugins/org.eclipse.jpt.eclipselink.ui/src/org/eclipse/jpt/eclipselink/ui/internal/persistence/connection/JdbcReadConnectionsSharedComposite.java
+++ /dev/null
@@ -1,96 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- *
- * Contributors:
- *     Oracle - initial API and implementation
- *******************************************************************************/
-package org.eclipse.jpt.eclipselink.ui.internal.persistence.connection;
-
-import org.eclipse.jpt.eclipselink.core.internal.context.persistence.connection.Connection;
-import org.eclipse.jpt.eclipselink.ui.internal.EclipseLinkUiMessages;
-import org.eclipse.jpt.ui.internal.JpaHelpContextIds;
-import org.eclipse.jpt.ui.internal.widgets.Pane;
-import org.eclipse.jpt.utility.internal.model.value.PropertyAspectAdapter;
-import org.eclipse.jpt.utility.internal.model.value.TransformationPropertyValueModel;
-import org.eclipse.jpt.utility.model.value.PropertyValueModel;
-import org.eclipse.jpt.utility.model.value.WritablePropertyValueModel;
-import org.eclipse.osgi.util.NLS;
-import org.eclipse.swt.widgets.Composite;
-
-/**
- * ReadConnectionsSharedComposite
- */
-public class JdbcReadConnectionsSharedComposite extends Pane<Connection>
-{
-	/**
-	 * Creates a new <code>ReadConnectionsSharedComposite</code>.
-	 *
-	 * @param parentController
-	 *            The parent container of this one
-	 * @param parent
-	 *            The parent container
-	 */
-	public JdbcReadConnectionsSharedComposite(
-					Pane<? extends Connection> parentComposite,
-					Composite parent) {
-
-		super(parentComposite, parent);
-	}
-
-	private WritablePropertyValueModel<Boolean> buildReadConnectionsSharedHolder() {
-		return new PropertyAspectAdapter<Connection, Boolean>(getSubjectHolder(), Connection.READ_CONNECTIONS_SHARED_PROPERTY) {
-			@Override
-			protected Boolean buildValue_() {
-				return subject.getReadConnectionsShared();
-			}
-
-			@Override
-			protected void setValue_(Boolean value) {
-				subject.setReadConnectionsShared(value);
-			}
-
-			@Override
-			protected void subjectChanged() {
-				Object oldValue = this.getValue();
-				super.subjectChanged();
-				Object newValue = this.getValue();
-
-				// Make sure the default value is appended to the text
-				if (oldValue == newValue && newValue == null) {
-					this.fireAspectChange(Boolean.TRUE, newValue);
-				}
-			}
-		};
-	}
-
-	private PropertyValueModel<String> buildReadConnectionsSharedStringHolder() {
-		return new TransformationPropertyValueModel<Boolean, String>(buildReadConnectionsSharedHolder()) {
-			@Override
-			protected String transform(Boolean value) {
-				if ((getSubject() != null) && (value == null)) {
-					Boolean defaultValue = getSubject().getDefaultReadConnectionsShared();
-					if (defaultValue != null) {
-						String defaultStringValue = defaultValue ? EclipseLinkUiMessages.Boolean_True : EclipseLinkUiMessages.Boolean_False;
-						return NLS.bind(EclipseLinkUiMessages.PersistenceXmlConnectionTab_readConnectionsSharedLabelDefault, defaultStringValue);
-					}
-				}
-				return EclipseLinkUiMessages.PersistenceXmlConnectionTab_readConnectionsSharedLabel;
-			}
-		};
-	}
-
-	@Override
-	protected void initializeLayout(Composite container) {
-
-		this.addTriStateCheckBoxWithDefault(
-			container,
-			EclipseLinkUiMessages.PersistenceXmlConnectionTab_readConnectionsSharedLabel,
-			this.buildReadConnectionsSharedHolder(),
-			this.buildReadConnectionsSharedStringHolder(),
-			JpaHelpContextIds.PERSISTENCE_XML_CONNECTION
-		);
-	}
-}
diff --git a/jpa/plugins/org.eclipse.jpt.eclipselink.ui/src/org/eclipse/jpt/eclipselink/ui/internal/persistence/connection/JdbcWriteConnectionPropertiesComposite.java b/jpa/plugins/org.eclipse.jpt.eclipselink.ui/src/org/eclipse/jpt/eclipselink/ui/internal/persistence/connection/JdbcWriteConnectionPropertiesComposite.java
deleted file mode 100644
index 2d99976..0000000
--- a/jpa/plugins/org.eclipse.jpt.eclipselink.ui/src/org/eclipse/jpt/eclipselink/ui/internal/persistence/connection/JdbcWriteConnectionPropertiesComposite.java
+++ /dev/null
@@ -1,58 +0,0 @@
-/*******************************************************************************
-* Copyright (c) 2008 Oracle. All rights reserved.
-* This program and the accompanying materials are made available under the
-* terms of the Eclipse Public License v1.0, which accompanies this distribution
-* and is available at http://www.eclipse.org/legal/epl-v10.html.
-*
-* Contributors:
-*     Oracle - initial API and implementation
-*******************************************************************************/
-package org.eclipse.jpt.eclipselink.ui.internal.persistence.connection;
-
-import org.eclipse.jpt.eclipselink.core.internal.context.persistence.connection.Connection;
-import org.eclipse.jpt.eclipselink.ui.internal.EclipseLinkUiMessages;
-import org.eclipse.jpt.ui.internal.widgets.Pane;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.graphics.Point;
-import org.eclipse.swt.layout.GridData;
-import org.eclipse.swt.widgets.Button;
-import org.eclipse.swt.widgets.Composite;
-
-/**
- *  JdbcWriteConnectionPropertiesComposite
- */
-@SuppressWarnings("nls")
-public class JdbcWriteConnectionPropertiesComposite extends Pane<Connection>
-{
-	public JdbcWriteConnectionPropertiesComposite(Pane<Connection> parentComposite, Composite parent) {
-
-		super(parentComposite, parent, false);
-	}
-
-	@Override
-	protected void initializeLayout(Composite container) {
-
-		container = this.addSection(
-			container,
-			EclipseLinkUiMessages.PersistenceXmlConnectionTab_writeConnectionsSectionTitle
-		);
-
-		GridData data = (GridData) container.getLayoutData();
-		data.verticalAlignment = SWT.TOP;
-
-		data = (GridData) getControl().getLayoutData();
-		data.verticalAlignment = SWT.TOP;
-
-		// This will add space to have the same layout than read connection pool
-		Button space = this.getWidgetFactory().createCheckBox(container, "m");
-		Point size = space.computeSize(SWT.DEFAULT, SWT.DEFAULT);
-		container = this.addSubPane(container, size.y + 5);
-		space.dispose();
-
-		// Write Connections Minimum
-		new JdbcWriteConnectionsMinComposite(this, container);
-
-		// Write Connections Maximum
-		new JdbcWriteConnectionsMaxComposite(this, container);
-	}
-}
diff --git a/jpa/plugins/org.eclipse.jpt.eclipselink.ui/src/org/eclipse/jpt/eclipselink/ui/internal/persistence/connection/JdbcWriteConnectionsMaxComposite.java b/jpa/plugins/org.eclipse.jpt.eclipselink.ui/src/org/eclipse/jpt/eclipselink/ui/internal/persistence/connection/JdbcWriteConnectionsMaxComposite.java
deleted file mode 100644
index 2fdd3b0..0000000
--- a/jpa/plugins/org.eclipse.jpt.eclipselink.ui/src/org/eclipse/jpt/eclipselink/ui/internal/persistence/connection/JdbcWriteConnectionsMaxComposite.java
+++ /dev/null
@@ -1,85 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008, 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- *
- * Contributors:
- *     Oracle - initial API and implementation
- *******************************************************************************/
-package org.eclipse.jpt.eclipselink.ui.internal.persistence.connection;
-
-import org.eclipse.jpt.eclipselink.core.internal.context.persistence.connection.Connection;
-import org.eclipse.jpt.eclipselink.ui.internal.EclipseLinkUiMessages;
-import org.eclipse.jpt.ui.internal.JpaHelpContextIds;
-import org.eclipse.jpt.ui.internal.widgets.IntegerCombo;
-import org.eclipse.jpt.ui.internal.widgets.Pane;
-import org.eclipse.jpt.utility.internal.model.value.PropertyAspectAdapter;
-import org.eclipse.jpt.utility.model.value.PropertyValueModel;
-import org.eclipse.jpt.utility.model.value.WritablePropertyValueModel;
-import org.eclipse.swt.widgets.Composite;
-
-/**
- * JdbcWriteConnectionsMaxComposite
- */
-public class JdbcWriteConnectionsMaxComposite extends Pane<Connection>
-{
-	/**
-	 * Creates a new <code>JdbcWriteConnectionsMaxComposite</code>.
-	 *
-	 * @param parentController
-	 *            The parent container of this one
-	 * @param parent
-	 *            The parent container
-	 */
-	public JdbcWriteConnectionsMaxComposite(Pane<Connection> parentComposite,
-	                                 Composite parent) {
-
-		super(parentComposite, parent);
-	}
-	
-	@Override
-	protected void initializeLayout(Composite container) {
-		addWriteConnectionsMaxCombo(container);
-	}
-	
-	private void addWriteConnectionsMaxCombo(Composite container) {
-		new IntegerCombo<Connection>(this, container) {
-			
-			@Override
-			protected String getLabelText() {
-				return EclipseLinkUiMessages.PersistenceXmlConnectionTab_writeConnectionsMaxLabel;
-			}
-		
-			@Override
-			protected String getHelpId() {
-				return JpaHelpContextIds.PERSISTENCE_XML_CONNECTION;
-			}
-			
-			@Override
-			protected PropertyValueModel<Integer> buildDefaultHolder() {
-				return new PropertyAspectAdapter<Connection, Integer>(getSubjectHolder()) {
-					@Override
-					protected Integer buildValue_() {
-						return this.subject.getDefaultWriteConnectionsMax();
-					}
-				};
-			}
-			
-			@Override
-			protected WritablePropertyValueModel<Integer> buildSelectedItemHolder() {
-				return new PropertyAspectAdapter<Connection, Integer>(getSubjectHolder(), Connection.WRITE_CONNECTIONS_MAX_PROPERTY) {
-					@Override
-					protected Integer buildValue_() {
-						return this.subject.getWriteConnectionsMax();
-					}
-
-					@Override
-					protected void setValue_(Integer value) {
-						this.subject.setWriteConnectionsMax(value);
-					}
-				};
-			}
-		};
-	}
-}
\ No newline at end of file
diff --git a/jpa/plugins/org.eclipse.jpt.eclipselink.ui/src/org/eclipse/jpt/eclipselink/ui/internal/persistence/connection/JdbcWriteConnectionsMinComposite.java b/jpa/plugins/org.eclipse.jpt.eclipselink.ui/src/org/eclipse/jpt/eclipselink/ui/internal/persistence/connection/JdbcWriteConnectionsMinComposite.java
deleted file mode 100644
index 60485c4..0000000
--- a/jpa/plugins/org.eclipse.jpt.eclipselink.ui/src/org/eclipse/jpt/eclipselink/ui/internal/persistence/connection/JdbcWriteConnectionsMinComposite.java
+++ /dev/null
@@ -1,85 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008, 2008 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- *
- * Contributors:
- *     Oracle - initial API and implementation
- *******************************************************************************/
-package org.eclipse.jpt.eclipselink.ui.internal.persistence.connection;
-
-import org.eclipse.jpt.eclipselink.core.internal.context.persistence.connection.Connection;
-import org.eclipse.jpt.eclipselink.ui.internal.EclipseLinkUiMessages;
-import org.eclipse.jpt.ui.internal.JpaHelpContextIds;
-import org.eclipse.jpt.ui.internal.widgets.IntegerCombo;
-import org.eclipse.jpt.ui.internal.widgets.Pane;
-import org.eclipse.jpt.utility.internal.model.value.PropertyAspectAdapter;
-import org.eclipse.jpt.utility.model.value.PropertyValueModel;
-import org.eclipse.jpt.utility.model.value.WritablePropertyValueModel;
-import org.eclipse.swt.widgets.Composite;
-
-/**
- * JdbcWriteConnectionsMinComposite
- */
-public class JdbcWriteConnectionsMinComposite extends Pane<Connection>
-{
-	/**
-	 * Creates a new <code>JdbcWriteConnectionsMinComposite</code>.
-	 *
-	 * @param parentController
-	 *            The parent container of this one
-	 * @param parent
-	 *            The parent container
-	 */
-	public JdbcWriteConnectionsMinComposite(Pane<Connection> parentComposite,
-	                                 Composite parent) {
-
-		super(parentComposite, parent);
-	}
-
-	@Override
-	protected void initializeLayout(Composite container) {
-		addWriteConnectionsMinCombo(container);
-	}
-	
-	private void addWriteConnectionsMinCombo(Composite container) {
-		new IntegerCombo<Connection>(this, container) {
-			
-			@Override
-			protected String getLabelText() {
-				return EclipseLinkUiMessages.PersistenceXmlConnectionTab_writeConnectionsMinLabel;
-			}
-		
-			@Override
-			protected String getHelpId() {
-				return JpaHelpContextIds.PERSISTENCE_XML_CONNECTION;
-			}
-			
-			@Override
-			protected PropertyValueModel<Integer> buildDefaultHolder() {
-				return new PropertyAspectAdapter<Connection, Integer>(getSubjectHolder()) {
-					@Override
-					protected Integer buildValue_() {
-						return this.subject.getDefaultWriteConnectionsMin();
-					}
-				};
-			}
-			
-			@Override
-			protected WritablePropertyValueModel<Integer> buildSelectedItemHolder() {
-				return new PropertyAspectAdapter<Connection, Integer>(getSubjectHolder(), Connection.WRITE_CONNECTIONS_MIN_PROPERTY) {
-					@Override
-					protected Integer buildValue_() {
-						return this.subject.getWriteConnectionsMin();
-					}
-
-					@Override
-					protected void setValue_(Integer value) {
-						this.subject.setWriteConnectionsMin(value);
-					}
-				};
-			}
-		};
-	}
-}
\ No newline at end of file
diff --git a/jpa/plugins/org.eclipse.jpt.eclipselink.ui/src/org/eclipse/jpt/eclipselink/ui/internal/persistence/connection/NativeSqlComposite.java b/jpa/plugins/org.eclipse.jpt.eclipselink.ui/src/org/eclipse/jpt/eclipselink/ui/internal/persistence/connection/NativeSqlComposite.java
deleted file mode 100644
index f5f9439..0000000
--- a/jpa/plugins/org.eclipse.jpt.eclipselink.ui/src/org/eclipse/jpt/eclipselink/ui/internal/persistence/connection/NativeSqlComposite.java
+++ /dev/null
@@ -1,96 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008, 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- *
- * Contributors:
- *     Oracle - initial API and implementation
- *******************************************************************************/
-package org.eclipse.jpt.eclipselink.ui.internal.persistence.connection;
-
-import org.eclipse.jpt.eclipselink.core.internal.context.persistence.connection.Connection;
-import org.eclipse.jpt.eclipselink.ui.internal.EclipseLinkUiMessages;
-import org.eclipse.jpt.ui.internal.JpaHelpContextIds;
-import org.eclipse.jpt.ui.internal.widgets.Pane;
-import org.eclipse.jpt.utility.internal.model.value.PropertyAspectAdapter;
-import org.eclipse.jpt.utility.internal.model.value.TransformationPropertyValueModel;
-import org.eclipse.jpt.utility.model.value.PropertyValueModel;
-import org.eclipse.jpt.utility.model.value.WritablePropertyValueModel;
-import org.eclipse.osgi.util.NLS;
-import org.eclipse.swt.widgets.Composite;
-
-/**
- * NativeSqlComposite
- */
-public class NativeSqlComposite extends Pane<Connection>
-{
-	/**
-	 * Creates a new <code>NativeSqlComposite</code>.
-	 *
-	 * @param parentController
-	 *            The parent container of this one
-	 * @param parent
-	 *            The parent container
-	 */
-	public NativeSqlComposite(
-					Pane<? extends Connection> parentComposite,
-					Composite parent) {
-
-		super(parentComposite, parent);
-	}
-
-	private WritablePropertyValueModel<Boolean> buildNativeSqlHolder() {
-		return new PropertyAspectAdapter<Connection, Boolean>(getSubjectHolder(), Connection.NATIVE_SQL_PROPERTY) {
-			@Override
-			protected Boolean buildValue_() {
-				return subject.getNativeSql();
-			}
-
-			@Override
-			protected void setValue_(Boolean value) {
-				subject.setNativeSql(value);
-			}
-
-			@Override
-			protected void subjectChanged() {
-				Object oldValue = this.getValue();
-				super.subjectChanged();
-				Object newValue = this.getValue();
-
-				// Make sure the default value is appended to the text
-				if (oldValue == newValue && newValue == null) {
-					this.fireAspectChange(Boolean.TRUE, newValue);
-				}
-			}
-		};
-	}
-
-	private PropertyValueModel<String> buildNativeSqlStringHolder() {
-		return new TransformationPropertyValueModel<Boolean, String>(buildNativeSqlHolder()) {
-			@Override
-			protected String transform(Boolean value) {
-				if ((getSubject() != null) && (value == null)) {
-					Boolean defaultValue = getSubject().getDefaultNativeSql();
-					if (defaultValue != null) {
-						String defaultStringValue = defaultValue ? EclipseLinkUiMessages.Boolean_True : EclipseLinkUiMessages.Boolean_False;
-						return NLS.bind(EclipseLinkUiMessages.PersistenceXmlConnectionTab_nativeSqlLabelDefault, defaultStringValue);
-					}
-				}
-				return EclipseLinkUiMessages.PersistenceXmlConnectionTab_nativeSqlLabel;
-			}
-		};
-	}
-
-	@Override
-	protected void initializeLayout(Composite container) {
-
-		this.addTriStateCheckBoxWithDefault(
-			container,
-			EclipseLinkUiMessages.PersistenceXmlConnectionTab_nativeSqlLabel,
-			this.buildNativeSqlHolder(),
-			this.buildNativeSqlStringHolder(),
-			JpaHelpContextIds.PERSISTENCE_XML_CONNECTION
-		);
-	}
-}
diff --git a/jpa/plugins/org.eclipse.jpt.eclipselink.ui/src/org/eclipse/jpt/eclipselink/ui/internal/persistence/connection/PersistenceXmlConnectionTab.java b/jpa/plugins/org.eclipse.jpt.eclipselink.ui/src/org/eclipse/jpt/eclipselink/ui/internal/persistence/connection/PersistenceXmlConnectionTab.java
deleted file mode 100644
index 3f585b2..0000000
--- a/jpa/plugins/org.eclipse.jpt.eclipselink.ui/src/org/eclipse/jpt/eclipselink/ui/internal/persistence/connection/PersistenceXmlConnectionTab.java
+++ /dev/null
@@ -1,84 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- *******************************************************************************/
-package org.eclipse.jpt.eclipselink.ui.internal.persistence.connection;
-
-import org.eclipse.jpt.eclipselink.core.internal.context.persistence.connection.Connection;
-import org.eclipse.jpt.eclipselink.ui.internal.EclipseLinkUiMessages;
-import org.eclipse.jpt.ui.WidgetFactory;
-import org.eclipse.jpt.ui.details.JpaPageComposite;
-import org.eclipse.jpt.ui.internal.JpaHelpContextIds;
-import org.eclipse.jpt.ui.internal.widgets.FormPane;
-import org.eclipse.jpt.utility.model.value.PropertyValueModel;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.graphics.Image;
-import org.eclipse.swt.layout.GridData;
-import org.eclipse.swt.layout.GridLayout;
-import org.eclipse.swt.widgets.Composite;
-
-/**
- * PersistenceXmlConnectionTab
- */
-public class PersistenceXmlConnectionTab
-	extends FormPane<Connection>
-	implements JpaPageComposite
-{
-	// ********** constructors/initialization **********
-	public PersistenceXmlConnectionTab(
-				PropertyValueModel<Connection> subjectHolder, 
-				Composite parent, 
-				WidgetFactory widgetFactory) {
-		
-		super(subjectHolder, parent, widgetFactory);
-	}
-
-	@Override
-	protected void initializeLayout(Composite container) {
-		new EclipseLinkConnectionComposite(this, container);
-	}
-
-	// ********** JpaPageComposite implementation **********
-
-	public String getHelpID() {
-		return JpaHelpContextIds.PERSISTENCE_XML_CONNECTION;
-	}
-
-	public Image getPageImage() {
-		return null;
-	}
-
-	public String getPageText() {
-		return EclipseLinkUiMessages.PersistenceXmlConnectionTab_title;
-	}
-
-	// ********** Layout **********
-	@Override
-	protected Composite addContainer(Composite parent) {
-		GridLayout layout = new GridLayout(1, true);
-		layout.marginHeight = 0;
-		layout.marginWidth = 0;
-		layout.marginTop = 0;
-		layout.marginLeft = 0;
-		layout.marginBottom = 0;
-		layout.marginRight = 0;
-		layout.verticalSpacing = 15;
-		Composite container = this.addPane(parent, layout);
-		this.updateGridData(container);
-		return container;
-	}
-
-	private void updateGridData(Composite container) {
-		GridData gridData = new GridData();
-		gridData.grabExcessHorizontalSpace = true;
-		gridData.grabExcessVerticalSpace = true;
-		gridData.horizontalAlignment = SWT.FILL;
-		gridData.verticalAlignment = SWT.FILL;
-		container.setLayoutData(gridData);
-	}
-}
diff --git a/jpa/plugins/org.eclipse.jpt.eclipselink.ui/src/org/eclipse/jpt/eclipselink/ui/internal/persistence/connection/TransactionTypeComposite.java b/jpa/plugins/org.eclipse.jpt.eclipselink.ui/src/org/eclipse/jpt/eclipselink/ui/internal/persistence/connection/TransactionTypeComposite.java
deleted file mode 100644
index 116cc33..0000000
--- a/jpa/plugins/org.eclipse.jpt.eclipselink.ui/src/org/eclipse/jpt/eclipselink/ui/internal/persistence/connection/TransactionTypeComposite.java
+++ /dev/null
@@ -1,127 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008, 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- *
- * Contributors:
- *     Oracle - initial API and implementation
- *******************************************************************************/
-package org.eclipse.jpt.eclipselink.ui.internal.persistence.connection;
-
-import java.util.Collection;
-
-import org.eclipse.jpt.core.context.persistence.PersistenceUnit;
-import org.eclipse.jpt.core.context.persistence.PersistenceUnitTransactionType;
-import org.eclipse.jpt.eclipselink.core.internal.context.persistence.connection.Connection;
-import org.eclipse.jpt.eclipselink.ui.internal.EclipseLinkUiMessages;
-import org.eclipse.jpt.ui.internal.JpaHelpContextIds;
-import org.eclipse.jpt.ui.internal.widgets.EnumFormComboViewer;
-import org.eclipse.jpt.ui.internal.widgets.FormPane;
-import org.eclipse.jpt.utility.internal.model.value.PropertyAspectAdapter;
-import org.eclipse.jpt.utility.model.value.PropertyValueModel;
-import org.eclipse.swt.widgets.Composite;
-
-/**
- * TransactionTypeComposite
- */
-public class TransactionTypeComposite extends FormPane<Connection>
-{
-	/**
-	 * Creates a new <code>TransactionTypeComposite</code>.
-	 *
-	 * @param parentController
-	 *            The parent container of this one
-	 * @param parent
-	 *            The parent container
-	 */
-	public TransactionTypeComposite(
-					FormPane<? extends Connection> parentComposite,
-					Composite parent) {
-
-		super( parentComposite, parent);
-	}
-
-	private EnumFormComboViewer<PersistenceUnit, PersistenceUnitTransactionType> addTransactionTypeCombo(Composite container) {
-		return new EnumFormComboViewer<PersistenceUnit, PersistenceUnitTransactionType>(this, buildPersistenceUnitHolder(), container) {
-			@Override
-			protected void addPropertyNames(Collection<String> propertyNames) {
-				super.addPropertyNames(propertyNames);
-				propertyNames.add(PersistenceUnit.SPECIFIED_TRANSACTION_TYPE_PROPERTY);
-				propertyNames.add(PersistenceUnit.DEFAULT_TRANSACTION_TYPE_PROPERTY);
-			}
-
-			@Override
-			protected PersistenceUnitTransactionType[] getChoices() {
-				return PersistenceUnitTransactionType.values();
-			}
-
-			@Override
-			protected PersistenceUnitTransactionType getDefaultValue() {
-				return getSubject().getDefaultTransactionType();
-			}
-
-			@Override
-			protected String displayString(PersistenceUnitTransactionType value) {
-				return buildDisplayString(EclipseLinkUiMessages.class, TransactionTypeComposite.this, value);
-			}
-
-			@Override
-			protected PersistenceUnitTransactionType getValue() {
-				return getSubject().getSpecifiedTransactionType();
-			}
-
-			@Override
-			protected void setValue(PersistenceUnitTransactionType value) {
-				getSubject().setSpecifiedTransactionType(value);
-
-				if (value == PersistenceUnitTransactionType.RESOURCE_LOCAL) {
-					clearJTAProperties();
-				}
-				else {
-					clearResourceLocalProperties();
-				}
-			}
-		};
-	}
-
-	private PropertyValueModel<PersistenceUnit> buildPersistenceUnitHolder() {
-		return new PropertyAspectAdapter<Connection, PersistenceUnit>(getSubjectHolder()) {
-			@Override
-			protected PersistenceUnit buildValue_() {
-				return this.subject.getPersistenceUnit();
-			}
-		};
-		
-	}
-
-	private void clearJTAProperties() {
-		getSubject().getPersistenceUnit().setJtaDataSource(null);
-	}
-
-	private void clearResourceLocalProperties() {
-		Connection connection = getSubject();
-		connection.getPersistenceUnit().setNonJtaDataSource(null);
-		connection.setDriver(null);
-		connection.setUrl(null);
-		connection.setUser(null);
-		connection.setPassword(null);
-		connection.setBindParameters(null);
-		connection.setWriteConnectionsMax(null);
-		connection.setWriteConnectionsMin(null);
-		connection.setReadConnectionsMax(null);
-		connection.setReadConnectionsMin(null);
-		connection.setReadConnectionsShared(null);
-	}
-
-	@Override
-	protected void initializeLayout( Composite container) {
-
-		this.addLabeledComposite(
-			container,
-			EclipseLinkUiMessages.PersistenceXmlConnectionTab_transactionTypeLabel,
-			this.addTransactionTypeCombo( container),
-			JpaHelpContextIds.PERSISTENCE_XML_CONNECTION
-		);
-	}
-}
diff --git a/jpa/plugins/org.eclipse.jpt.eclipselink.ui/src/org/eclipse/jpt/eclipselink/ui/internal/persistence/customization/CustomizerComposite.java b/jpa/plugins/org.eclipse.jpt.eclipselink.ui/src/org/eclipse/jpt/eclipselink/ui/internal/persistence/customization/CustomizerComposite.java
deleted file mode 100644
index 4d7186f..0000000
--- a/jpa/plugins/org.eclipse.jpt.eclipselink.ui/src/org/eclipse/jpt/eclipselink/ui/internal/persistence/customization/CustomizerComposite.java
+++ /dev/null
@@ -1,94 +0,0 @@
-/*******************************************************************************
-* Copyright (c) 2008 Oracle. All rights reserved.
-* This program and the accompanying materials are made available under the
-* terms of the Eclipse Public License v1.0, which accompanies this distribution
-* and is available at http://www.eclipse.org/legal/epl-v10.html.
-* 
-* Contributors:
-*     Oracle - initial API and implementation
-*******************************************************************************/
-package org.eclipse.jpt.eclipselink.ui.internal.persistence.customization;
-
-import org.eclipse.jpt.core.JpaProject;
-import org.eclipse.jpt.eclipselink.core.context.Customizer;
-import org.eclipse.jpt.eclipselink.core.internal.context.persistence.customization.Customization;
-import org.eclipse.jpt.eclipselink.ui.internal.EclipseLinkUiMessages;
-import org.eclipse.jpt.ui.internal.widgets.ClassChooserPane;
-import org.eclipse.jpt.ui.internal.widgets.Pane;
-import org.eclipse.jpt.utility.internal.model.value.PropertyAspectAdapter;
-import org.eclipse.jpt.utility.model.value.WritablePropertyValueModel;
-import org.eclipse.swt.widgets.Composite;
-
-/**
- *  CustomizerComposite
- */
-public class CustomizerComposite extends Pane<EntityCustomizerProperties>
-{
-	/**
-	 * Creates a new <code>CustomizerComposite</code>.
-	 *
-	 * @param parentPane The parent pane of this one
-	 * @param parent The parent container
-	 */
-	public CustomizerComposite(Pane<? extends EntityCustomizerProperties> parentPane,
-                           Composite parent) {
-
-		super(parentPane, parent);
-	}
-
-	private ClassChooserPane<EntityCustomizerProperties> initializeClassChooser(Composite container) {
-
-		return new ClassChooserPane<EntityCustomizerProperties>(this, container) {
-
-			@Override
-			protected WritablePropertyValueModel<String> buildTextHolder() {
-				return new PropertyAspectAdapter<EntityCustomizerProperties, String>(
-							getSubjectHolder(), Customization.DESCRIPTOR_CUSTOMIZER_PROPERTY) {
-					@Override
-					protected String buildValue_() {
-						return this.subject.getDescriptorCustomizer();
-					}
-
-					@Override
-					protected void setValue_(String value) {
-
-						if (value.length() == 0) {
-							value = null;
-						}
-						this.subject.setDescriptorCustomizer(value);
-					}
-				};
-			}
-
-			@Override
-			protected String getClassName() {
-				return getSubject().getDescriptorCustomizer();
-			}
-
-			@Override
-			protected String getLabelText() {
-				return EclipseLinkUiMessages.PersistenceXmlCustomizationTab_customizerLabel;
-			}
-			
-			@Override
-			protected JpaProject getJpaProject() {
-				return getSubject().getJpaProject();
-			}
-
-			@Override
-			protected void setClassName(String className) {
-				getSubject().setDescriptorCustomizer(className);
-			}
-			
-			@Override
-			protected String getSuperInterfaceName() {
-				return Customizer.ECLIPSELINK_DESCRIPTOR_CUSTOMIZER_CLASS_NAME;
-			}
-		};
-	}
-
-	@Override
-	protected void initializeLayout(Composite container) {
-		this.initializeClassChooser(container);
-	}
-}
diff --git a/jpa/plugins/org.eclipse.jpt.eclipselink.ui/src/org/eclipse/jpt/eclipselink/ui/internal/persistence/customization/EclipseLinkCustomizationComposite.java b/jpa/plugins/org.eclipse.jpt.eclipselink.ui/src/org/eclipse/jpt/eclipselink/ui/internal/persistence/customization/EclipseLinkCustomizationComposite.java
deleted file mode 100644
index 332a7c6..0000000
--- a/jpa/plugins/org.eclipse.jpt.eclipselink.ui/src/org/eclipse/jpt/eclipselink/ui/internal/persistence/customization/EclipseLinkCustomizationComposite.java
+++ /dev/null
@@ -1,86 +0,0 @@
-/*******************************************************************************
-* Copyright (c) 2008 Oracle. All rights reserved.
-* This program and the accompanying materials are made available under the
-* terms of the Eclipse Public License v1.0, which accompanies this distribution
-* and is available at http://www.eclipse.org/legal/epl-v10.html.
-*
-* Contributors:
-*     Oracle - initial API and implementation
-*******************************************************************************/
-package org.eclipse.jpt.eclipselink.ui.internal.persistence.customization;
-
-import org.eclipse.jpt.eclipselink.core.internal.context.persistence.customization.Customization;
-import org.eclipse.jpt.eclipselink.ui.internal.EclipseLinkUiMessages;
-import org.eclipse.jpt.ui.internal.widgets.FormPane;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.layout.GridData;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.ui.forms.widgets.ExpandableComposite;
-import org.eclipse.ui.forms.widgets.Section;
-
-/**
- *  PersistenceUnitCustomizationComposite
- */
-public class EclipseLinkCustomizationComposite extends FormPane<Customization>
-{
-	public EclipseLinkCustomizationComposite(FormPane<Customization> subjectHolder,
-	                                       Composite container) {
-
-		super(subjectHolder, container);
-	}
-
-	@Override
-	protected void initializeLayout(Composite parent) {
-		Section section = getWidgetFactory().createSection(parent, SWT.FLAT | ExpandableComposite.TITLE_BAR | Section.DESCRIPTION);
-		section.setText(EclipseLinkUiMessages.PersistenceXmlCustomizationTab_sectionTitle);
-		section.setDescription(EclipseLinkUiMessages.PersistenceXmlCustomizationTab_sectionDescription);
-		section.setLayoutData(new GridData(GridData.FILL_BOTH));
-
-		Composite composite = this.addSubPane(section);
-		section.setClient(composite);
-
-		// Default pane
-		int groupBoxMargin = this.getGroupBoxMargin();
-
-		Composite defaultPane = this.addSubPane(
-			composite,
-			0, groupBoxMargin, 0, groupBoxMargin
-		);
-
-		// Weaving
-		new WeavingComposite(this, defaultPane);
-
-		// Weaving Lazy
-		new WeavingLazyComposite(this, defaultPane);
-
-		// Weaving Fetch Groups
-		new WeavingFetchGroupsComposite(this, defaultPane);
-
-		// Weaving Internal
-		new WeavingInternalComposite(this, defaultPane);
-
-		// Weaving Eager
-		new WeavingEagerComposite(this, defaultPane);
-
-		// Weaving Change Tracking
-		new WeavingChangeTrackingComposite(this, defaultPane);
-
-		// Throw Exceptions
-		new ThrowExceptionsComposite(this, defaultPane);
-
-		// Exception Handler
-		new ExceptionHandlerComposite(this, defaultPane);
-
-		// Session Customizer
-		new SessionCustomizersComposite(this, composite);
-
-		// EntitiesList
-		new EntityListComposite(this, composite);
-
-		// Validation Only
-		new ValidationOnlyComposite(this, composite);
-
-		// Profiler:
-		new ProfilerComposite(this, composite);
-	}
-}
\ No newline at end of file
diff --git a/jpa/plugins/org.eclipse.jpt.eclipselink.ui/src/org/eclipse/jpt/eclipselink/ui/internal/persistence/customization/EntityCustomizationPropertyComposite.java b/jpa/plugins/org.eclipse.jpt.eclipselink.ui/src/org/eclipse/jpt/eclipselink/ui/internal/persistence/customization/EntityCustomizationPropertyComposite.java
deleted file mode 100644
index 47cf823..0000000
--- a/jpa/plugins/org.eclipse.jpt.eclipselink.ui/src/org/eclipse/jpt/eclipselink/ui/internal/persistence/customization/EntityCustomizationPropertyComposite.java
+++ /dev/null
@@ -1,46 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- *
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.eclipselink.ui.internal.persistence.customization;
-
-import org.eclipse.jpt.eclipselink.core.internal.context.persistence.customization.Customization;
-import org.eclipse.jpt.ui.internal.widgets.Pane;
-import org.eclipse.jpt.utility.model.value.PropertyValueModel;
-import org.eclipse.swt.widgets.Composite;
-
-/**
- * EntityCustomizationPropertyComposite
- */
-public class EntityCustomizationPropertyComposite extends Pane<EntityCustomizerProperties> {
-
-	/**
-	 * Creates a new <code>EntityCustomizationPropertyComposite</code>.
-	 *
-	 * @param parentPane The parent container of this one
-	 * @param subjectHolder The holder of this pane's subject
-	 * @param parent The parent container
-	 */
-	public EntityCustomizationPropertyComposite(Pane<Customization> parentComposite,
-	                                      PropertyValueModel<EntityCustomizerProperties> subjectHolder,
-	                                      Composite parent) {
-
-		super(parentComposite, subjectHolder, parent);
-	}
-
-	/*
-	 * (non-Javadoc)
-	 */
-	@Override
-	protected void initializeLayout(Composite container) {
-
-		// Customizer
-		new CustomizerComposite(this, container);
-		
-	}
-}
diff --git a/jpa/plugins/org.eclipse.jpt.eclipselink.ui/src/org/eclipse/jpt/eclipselink/ui/internal/persistence/customization/EntityCustomizerProperties.java b/jpa/plugins/org.eclipse.jpt.eclipselink.ui/src/org/eclipse/jpt/eclipselink/ui/internal/persistence/customization/EntityCustomizerProperties.java
deleted file mode 100644
index d2d29ac..0000000
--- a/jpa/plugins/org.eclipse.jpt.eclipselink.ui/src/org/eclipse/jpt/eclipselink/ui/internal/persistence/customization/EntityCustomizerProperties.java
+++ /dev/null
@@ -1,125 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008, 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- *
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.eclipselink.ui.internal.persistence.customization;
-
-import org.eclipse.jpt.core.JpaProject;
-import org.eclipse.jpt.eclipselink.core.internal.context.persistence.customization.Customization;
-import org.eclipse.jpt.utility.internal.StringTools;
-import org.eclipse.jpt.utility.internal.model.AbstractModel;
-import org.eclipse.jpt.utility.internal.model.value.PropertyAspectAdapter;
-import org.eclipse.jpt.utility.internal.model.value.SimplePropertyValueModel;
-import org.eclipse.jpt.utility.model.event.PropertyChangeEvent;
-import org.eclipse.jpt.utility.model.listener.PropertyChangeListener;
-import org.eclipse.jpt.utility.model.value.PropertyValueModel;
-
-/**
- * EntityCustomizerProperties
- */
-public class EntityCustomizerProperties extends AbstractModel {
-
-	private Customization customization;
-	private String entityName;
-
-	PropertyValueModel<String> descriptorCustomizerHolder;
-	PropertyChangeListener descriptorCustomizerListener;
-	
-	public static final String DESCRIPTOR_CUSTOMIZER_PROPERTY = Customization.DESCRIPTOR_CUSTOMIZER_PROPERTY;
-
-	private static final long serialVersionUID = 1L;
-
-	// ********** constructors **********
-	public EntityCustomizerProperties(Customization customization, String entityName) {
-		super();
-		this.customization = customization;
-		this.entityName = entityName;
-		
-		PropertyValueModel<Customization> customizationHolder = new SimplePropertyValueModel<Customization>(this.customization);
-		this.initialize(customizationHolder);
-		
-		this.engageListeners();
-	}
-	
-	protected void initialize(PropertyValueModel<Customization> customizationHolder) {
-		this.descriptorCustomizerHolder = this.buildDescriptorCustomizerAA(customizationHolder);
-		this.descriptorCustomizerListener = this.buildDescriptorCustomizerChangeListener();
-	}
-
-	// ********** behavior **********
-	public boolean entityNameIsValid() {
-		return !StringTools.stringIsEmpty(this.entityName);
-	}
-
-	public String getEntityName() {
-		return this.entityName;
-	}
-
-	public String getDescriptorCustomizer() {
-		return this.customization.getDescriptorCustomizer(this.entityName);
-	}
-
-	public String getDefaultDescriptorCustomizer() {
-		return this.customization.getDefaultDescriptorCustomizer();
-	}
-
-	public void setDescriptorCustomizer(String descriptorCustomizer) {
-		String old = this.getDescriptorCustomizer();
-		if (this.attributeValueHasChanged(old, descriptorCustomizer)) {
-			this.customization.setDescriptorCustomizer(descriptorCustomizer, this.entityName);
-			this.firePropertyChanged(DESCRIPTOR_CUSTOMIZER_PROPERTY, old, descriptorCustomizer);
-		}
-	}
-
-	public JpaProject getJpaProject() {
-		return this.customization.getJpaProject();
-	}
-
-	// ********** PropertyChangeListener **********
-	
-	private PropertyValueModel<String> buildDescriptorCustomizerAA(PropertyValueModel<Customization> subjectHolder) {
-		return new PropertyAspectAdapter<Customization, String>(
-								subjectHolder, DESCRIPTOR_CUSTOMIZER_PROPERTY) {
-			@Override
-			protected String buildValue_() {
-				return this.subject.getDescriptorCustomizer(EntityCustomizerProperties.this.entityName);
-			}
-		};
-	}
-	
-	private PropertyChangeListener buildDescriptorCustomizerChangeListener() {
-		return new PropertyChangeListener() {
-			public void propertyChanged(PropertyChangeEvent e) {
-				EntityCustomizerProperties.this.descriptorCustomizerChanged(e);
-			}
-		};
-	}
-
-	protected void descriptorCustomizerChanged(PropertyChangeEvent e) {
-		String old = (String) e.getOldValue();
-		String newDescriptorCustomizer = (String) e.getNewValue();
-		this.firePropertyChanged(DESCRIPTOR_CUSTOMIZER_PROPERTY, old, newDescriptorCustomizer);
-		return;
-	}
-
-	public void engageListeners() {
-		this.descriptorCustomizerHolder.addPropertyChangeListener(PropertyValueModel.VALUE, this.descriptorCustomizerListener);
-	}
-
-	public void disengageListeners() {
-		this.descriptorCustomizerHolder.removePropertyChangeListener(PropertyValueModel.VALUE, this.descriptorCustomizerListener);
-	}
-
-	@Override
-	public void toString(StringBuilder sb) {
-		sb.append("name: ");
-		sb.append(this.entityName);
-		sb.append(", descriptorCustomizer: ");
-		sb.append(this.getDescriptorCustomizer());
-	}
-}
diff --git a/jpa/plugins/org.eclipse.jpt.eclipselink.ui/src/org/eclipse/jpt/eclipselink/ui/internal/persistence/customization/EntityListComposite.java b/jpa/plugins/org.eclipse.jpt.eclipselink.ui/src/org/eclipse/jpt/eclipselink/ui/internal/persistence/customization/EntityListComposite.java
deleted file mode 100644
index 4033fb6..0000000
--- a/jpa/plugins/org.eclipse.jpt.eclipselink.ui/src/org/eclipse/jpt/eclipselink/ui/internal/persistence/customization/EntityListComposite.java
+++ /dev/null
@@ -1,238 +0,0 @@
-/*******************************************************************************
-* Copyright (c) 2007, 2009 Oracle. All rights reserved.
-* This program and the accompanying materials are made available under the
-* terms of the Eclipse Public License v1.0, which accompanies this distribution
-* and is available at http://www.eclipse.org/legal/epl-v10.html.
-*
-* Contributors:
-*     Oracle - initial API and implementation
-*******************************************************************************/
-package org.eclipse.jpt.eclipselink.ui.internal.persistence.customization;
-
-import java.util.ListIterator;
-import org.eclipse.core.resources.IProject;
-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.ui.IJavaElementSearchConstants;
-import org.eclipse.jdt.ui.JavaUI;
-import org.eclipse.jface.viewers.ILabelProvider;
-import org.eclipse.jface.viewers.LabelProvider;
-import org.eclipse.jface.window.Window;
-import org.eclipse.jpt.core.context.Entity;
-import org.eclipse.jpt.eclipselink.core.internal.context.persistence.customization.Customization;
-import org.eclipse.jpt.eclipselink.ui.JptEclipseLinkUiPlugin;
-import org.eclipse.jpt.eclipselink.ui.internal.EclipseLinkHelpContextIds;
-import org.eclipse.jpt.eclipselink.ui.internal.EclipseLinkUiMessages;
-import org.eclipse.jpt.ui.internal.util.PaneEnabler;
-import org.eclipse.jpt.ui.internal.widgets.AddRemoveListPane;
-import org.eclipse.jpt.ui.internal.widgets.Pane;
-import org.eclipse.jpt.utility.internal.CollectionTools;
-import org.eclipse.jpt.utility.internal.model.value.ListAspectAdapter;
-import org.eclipse.jpt.utility.internal.model.value.SimplePropertyValueModel;
-import org.eclipse.jpt.utility.internal.model.value.TransformationListValueModelAdapter;
-import org.eclipse.jpt.utility.internal.model.value.TransformationPropertyValueModel;
-import org.eclipse.jpt.utility.internal.model.value.swing.ObjectListSelectionModel;
-import org.eclipse.jpt.utility.model.value.ListValueModel;
-import org.eclipse.jpt.utility.model.value.PropertyValueModel;
-import org.eclipse.jpt.utility.model.value.WritablePropertyValueModel;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.ui.PlatformUI;
-import org.eclipse.ui.dialogs.SelectionDialog;
-import org.eclipse.ui.progress.IProgressService;
-
-/**
- *  EntityListComposite
- */
-public class EntityListComposite extends Pane<Customization>
-{
-	private WritablePropertyValueModel<EntityCustomizerProperties> entityHolder;
-
-	public EntityListComposite(Pane<Customization> parentComposite, Composite parent) {
-
-		super(parentComposite, parent);
-	}
-
-	@Override
-	protected void initialize() {
-		super.initialize();
-		this.entityHolder = this.buildEntityHolder();
-	}
-
-	@Override
-	protected void initializeLayout(Composite container) {
-
-		container = this.addTitledGroup(
-			container,
-			EclipseLinkUiMessages.CustomizationEntityListComposite_groupTitle
-		);
-
-		// Entities add/remove list pane
-		new AddRemoveListPane<Customization>(
-			this,
-			container,
-			this.buildEntitiesAdapter(),
-			this.buildEntityCustomizationListHolder(),
-			this.entityHolder,
-			this.buildEntityLabelProvider(),
-			EclipseLinkHelpContextIds.PERSISTENCE_CUSTOMIZATION
-		);
-
-		// Entity Customization property pane
-		EntityCustomizationPropertyComposite pane = new EntityCustomizationPropertyComposite(
-			this,
-			this.entityHolder,
-			container
-		);
-		this.installPaneEnabler(this.entityHolder, pane);
-	}
-
-	private AddRemoveListPane.Adapter buildEntitiesAdapter() {
-		return new AddRemoveListPane.AbstractAdapter() {
-			public void addNewItem(ObjectListSelectionModel listSelectionModel) {
-				EntityListComposite.this.addEntities(listSelectionModel);
-			}
-
-			public void removeSelectedItems(ObjectListSelectionModel listSelectionModel) {
-				Customization customization = getSubject();
-				for (Object item : listSelectionModel.selectedValues()) {
-					EntityCustomizerProperties entityCustomization = (EntityCustomizerProperties) item;
-					entityCustomization.disengageListeners();
-					customization.removeEntity(entityCustomization.getEntityName());
-				}
-			}
-		};
-	}
-	
-	private void addEntities(ObjectListSelectionModel listSelectionModel) {
-
-		IType type = this.chooseEntity();
-
-		if (type != null) {
-			String entityName = this.getEntityName(type.getFullyQualifiedName());
-			if (entityName == null) {
-				entityName = type.getElementName();
-			}
-			
-			if( ! this.getSubject().entityExists(entityName)) {
-				this.getSubject().addEntity(entityName);
-				int index = CollectionTools.indexOf(this.getSubject().entities(), entityName);
-				EntityCustomizerProperties entity = (EntityCustomizerProperties) listSelectionModel.getListModel().getElementAt(index);
-				this.entityHolder.setValue(entity);
-			}
-		}
-	}
-	
-	private String getEntityName(String fullyQualifiedTypeName) {
-
-		Entity entity = getSubject().getPersistenceUnit().getEntity(fullyQualifiedTypeName);
-		return entity != null ? entity.getName() : null;
-	}
-	
-	private IType chooseEntity() {
-
-		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(
-				getShell(),
-				service,
-				scope,
-				IJavaElementSearchConstants.CONSIDER_CLASSES,
-				false,
-				""
-			);
-		}
-		catch (JavaModelException e) {
-			JptEclipseLinkUiPlugin.log(e);
-			return null;
-		}
-		typeSelectionDialog.setTitle(EclipseLinkUiMessages.CustomizationEntityListComposite_dialogTitle);
-		typeSelectionDialog.setMessage(EclipseLinkUiMessages.CustomizationEntityListComposite_dialogMessage);
-
-		if (typeSelectionDialog.open() == Window.OK) {
-			return (IType) typeSelectionDialog.getResult()[0];
-		}
-		return null;
-	}
-
-	private IPackageFragmentRoot getPackageFragmentRoot() {
-		IProject project = getSubject().getJpaProject().getProject();
-		IJavaProject root = JavaCore.create(project);
-
-		try {
-			return root.getAllPackageFragmentRoots()[0];
-		}
-		catch (JavaModelException e) {
-			JptEclipseLinkUiPlugin.log(e);
-		}
-		return null;
-	}
-
-	private ILabelProvider buildEntityLabelProvider() {
-		return new LabelProvider() {
-			@Override
-			public String getText(Object element) {
-				EntityCustomizerProperties entityCustomization = (EntityCustomizerProperties) element;
-				return entityCustomization.getEntityName();
-			}
-		};
-	}
-
-	private WritablePropertyValueModel<EntityCustomizerProperties> buildEntityHolder() {
-		return new SimplePropertyValueModel<EntityCustomizerProperties>();
-	}
-
-	private ListValueModel<EntityCustomizerProperties> buildEntityCustomizationListHolder() {
-		return new TransformationListValueModelAdapter<String, EntityCustomizerProperties>(this.buildEntitiesListHolder()) {
-			@Override
-			protected EntityCustomizerProperties transformItem(String entityName) {
-				return new EntityCustomizerProperties(getSubject(), entityName);
-			}
-		};
-	}
-
-	private ListValueModel<String> buildEntitiesListHolder() {
-		return new ListAspectAdapter<Customization, String>(
-				this.getSubjectHolder(), Customization.ENTITIES_LIST_PROPERTY) {
-			@Override
-			protected ListIterator<String> listIterator_() {
-				return this.subject.entities();
-			}
-			@Override
-			protected int size_() {
-				return this.subject.entitiesSize();
-			}
-		};
-	}
-
-	private void installPaneEnabler(WritablePropertyValueModel<EntityCustomizerProperties> entityHolder,
-	                                EntityCustomizationPropertyComposite pane) {
-
-		new PaneEnabler(
-			this.buildPaneEnablerHolder(entityHolder),
-			pane
-		);
-	}
-
-	private PropertyValueModel<Boolean> buildPaneEnablerHolder(WritablePropertyValueModel<EntityCustomizerProperties> entityHolder) {
-		return new TransformationPropertyValueModel<EntityCustomizerProperties, Boolean>(entityHolder) {
-			@Override
-			protected Boolean transform_(EntityCustomizerProperties value) {
-				return value.entityNameIsValid();
-			}
-		};
-	}
-}
diff --git a/jpa/plugins/org.eclipse.jpt.eclipselink.ui/src/org/eclipse/jpt/eclipselink/ui/internal/persistence/customization/ExceptionHandlerComposite.java b/jpa/plugins/org.eclipse.jpt.eclipselink.ui/src/org/eclipse/jpt/eclipselink/ui/internal/persistence/customization/ExceptionHandlerComposite.java
deleted file mode 100644
index 574278d..0000000
--- a/jpa/plugins/org.eclipse.jpt.eclipselink.ui/src/org/eclipse/jpt/eclipselink/ui/internal/persistence/customization/ExceptionHandlerComposite.java
+++ /dev/null
@@ -1,93 +0,0 @@
-/*******************************************************************************
-* Copyright (c) 2008 Oracle. All rights reserved.
-* This program and the accompanying materials are made available under the
-* terms of the Eclipse Public License v1.0, which accompanies this distribution
-* and is available at http://www.eclipse.org/legal/epl-v10.html.
-* 
-* Contributors:
-*     Oracle - initial API and implementation
-*******************************************************************************/
-package org.eclipse.jpt.eclipselink.ui.internal.persistence.customization;
-
-import org.eclipse.jpt.core.JpaProject;
-import org.eclipse.jpt.eclipselink.core.internal.context.persistence.customization.Customization;
-import org.eclipse.jpt.eclipselink.ui.internal.EclipseLinkUiMessages;
-import org.eclipse.jpt.ui.internal.widgets.ClassChooserPane;
-import org.eclipse.jpt.ui.internal.widgets.Pane;
-import org.eclipse.jpt.utility.internal.model.value.PropertyAspectAdapter;
-import org.eclipse.jpt.utility.model.value.WritablePropertyValueModel;
-import org.eclipse.swt.widgets.Composite;
-
-/**
- *  ExceptionHandlerComposite
- */
-public class ExceptionHandlerComposite extends Pane<Customization>
-{
-	/**
-	 * Creates a new <code>ExceptionHandlerComposite</code>.
-	 *
-	 * @param parentPane The parent pane of this one
-	 * @param parent The parent container
-	 */
-	public ExceptionHandlerComposite(Pane<? extends Customization> parentPane,
-                           Composite parent) {
-
-		super(parentPane, parent);
-	}
-
-	private ClassChooserPane<Customization> initializeClassChooser(Composite container) {
-
-		return new ClassChooserPane<Customization>(this, container) {
-
-			@Override
-			protected WritablePropertyValueModel<String> buildTextHolder() {
-				return new PropertyAspectAdapter<Customization, String>(
-							this.getSubjectHolder(), Customization.EXCEPTION_HANDLER_PROPERTY) {
-					@Override
-					protected String buildValue_() {
-						return this.subject.getExceptionHandler();
-					}
-
-					@Override
-					protected void setValue_(String value) {
-
-						if (value.length() == 0) {
-							value = null;
-						}
-						this.subject.setExceptionHandler(value);
-					}
-				};
-			}
-
-			@Override
-			protected String getClassName() {
-				return this.getSubject().getExceptionHandler();
-			}
-
-			@Override
-			protected String getLabelText() {
-				return EclipseLinkUiMessages.PersistenceXmlCustomizationTab_exceptionHandlerLabel;
-			}
-			
-			@Override
-			protected JpaProject getJpaProject() {
-				return getSubject().getJpaProject();
-			}
-			
-			@Override
-			protected void setClassName(String className) {
-				this.getSubject().setExceptionHandler(className);
-			}
-			
-			@Override
-			protected String getSuperInterfaceName() {
-				return Customization.ECLIPSELINK_EXCEPTION_HANDLER_CLASS_NAME;
-			}
-		};
-	}
-
-	@Override
-	protected void initializeLayout(Composite container) {
-		this.initializeClassChooser(container);
-	}
-}
diff --git a/jpa/plugins/org.eclipse.jpt.eclipselink.ui/src/org/eclipse/jpt/eclipselink/ui/internal/persistence/customization/PersistenceXmlCustomizationTab.java b/jpa/plugins/org.eclipse.jpt.eclipselink.ui/src/org/eclipse/jpt/eclipselink/ui/internal/persistence/customization/PersistenceXmlCustomizationTab.java
deleted file mode 100644
index e6e3884..0000000
--- a/jpa/plugins/org.eclipse.jpt.eclipselink.ui/src/org/eclipse/jpt/eclipselink/ui/internal/persistence/customization/PersistenceXmlCustomizationTab.java
+++ /dev/null
@@ -1,88 +0,0 @@
-/*******************************************************************************
-* Copyright (c) 2009 Oracle. All rights reserved.
-* This program and the accompanying materials are made available under the
-* terms of the Eclipse Public License v1.0, which accompanies this distribution
-* and is available at http://www.eclipse.org/legal/epl-v10.html.
-* 
-* Contributors:
-*     Oracle - initial API and implementation
-*******************************************************************************/
-package org.eclipse.jpt.eclipselink.ui.internal.persistence.customization;
-
-import org.eclipse.jpt.eclipselink.core.internal.context.persistence.customization.Customization;
-import org.eclipse.jpt.eclipselink.ui.internal.EclipseLinkHelpContextIds;
-import org.eclipse.jpt.eclipselink.ui.internal.EclipseLinkUiMessages;
-import org.eclipse.jpt.ui.WidgetFactory;
-import org.eclipse.jpt.ui.details.JpaPageComposite;
-import org.eclipse.jpt.ui.internal.widgets.FormPane;
-import org.eclipse.jpt.utility.model.value.PropertyValueModel;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.graphics.Image;
-import org.eclipse.swt.layout.GridData;
-import org.eclipse.swt.layout.GridLayout;
-import org.eclipse.swt.widgets.Composite;
-
-/**
- *  PersistenceXmlCustomizationTabItem
- */
-public class PersistenceXmlCustomizationTab 
-								extends FormPane<Customization>
-								implements JpaPageComposite
-{
-	public PersistenceXmlCustomizationTab(
-			PropertyValueModel<Customization> subjectHolder,
-			Composite parent,
-            WidgetFactory widgetFactory) {
-
-		super(subjectHolder, parent, widgetFactory);
-	}
-	
-	@Override
-	protected void initializeLayout(Composite container) {
-		
-		new EclipseLinkCustomizationComposite(this, container);
-	}
-
-	// ********** JpaPageComposite implementation **********
-
-	public String getHelpID() {
-		return EclipseLinkHelpContextIds.PERSISTENCE_CUSTOMIZATION;
-	}
-
-	public Image getPageImage() {
-		return null;
-	}
-	
-	public String getPageText() {
-		return EclipseLinkUiMessages.PersistenceXmlCustomizationTab_title;
-	}
-
-	// ********** Layout **********
-	
-	@Override
-	protected Composite addContainer(Composite parent) {
-		GridLayout layout = new GridLayout(1, true);
-		layout.marginHeight = 0;
-		layout.marginWidth = 0;
-		layout.marginTop = 0;
-		layout.marginLeft = 0;
-		layout.marginBottom = 0;
-		layout.marginRight = 0;
-		layout.verticalSpacing = 15;
-		
-		Composite container = addPane(parent, layout);
-		updateGridData(container);
-		
-		return container;
-	}
-
-	private void updateGridData(Composite container) {
-		GridData gridData = new GridData();
-		gridData.grabExcessHorizontalSpace = true;
-		gridData.grabExcessVerticalSpace = true;
-		gridData.horizontalAlignment = SWT.FILL;
-		gridData.verticalAlignment = SWT.FILL;
-		container.setLayoutData(gridData);
-	}
-
-}
diff --git a/jpa/plugins/org.eclipse.jpt.eclipselink.ui/src/org/eclipse/jpt/eclipselink/ui/internal/persistence/customization/ProfilerComposite.java b/jpa/plugins/org.eclipse.jpt.eclipselink.ui/src/org/eclipse/jpt/eclipselink/ui/internal/persistence/customization/ProfilerComposite.java
deleted file mode 100644
index 4f49515..0000000
--- a/jpa/plugins/org.eclipse.jpt.eclipselink.ui/src/org/eclipse/jpt/eclipselink/ui/internal/persistence/customization/ProfilerComposite.java
+++ /dev/null
@@ -1,207 +0,0 @@
-/*******************************************************************************
-* Copyright (c) 2008 Oracle. All rights reserved.
-* This program and the accompanying materials are made available under the
-* terms of the Eclipse Public License v1.0, which accompanies this distribution
-* and is available at http://www.eclipse.org/legal/epl-v10.html.
-* 
-* Contributors:
-*     Oracle - initial API and implementation
-*******************************************************************************/
-package org.eclipse.jpt.eclipselink.ui.internal.persistence.customization;
-
-import com.ibm.icu.text.Collator;
-import java.util.ArrayList;
-import java.util.Comparator;
-import java.util.Iterator;
-
-import org.eclipse.jpt.core.JpaProject;
-import org.eclipse.jpt.eclipselink.core.internal.context.persistence.customization.Customization;
-import org.eclipse.jpt.eclipselink.core.internal.context.persistence.customization.Profiler;
-import org.eclipse.jpt.eclipselink.ui.internal.EclipseLinkUiMessages;
-import org.eclipse.jpt.ui.internal.widgets.ClassChooserComboPane;
-import org.eclipse.jpt.ui.internal.widgets.Pane;
-import org.eclipse.jpt.utility.internal.CollectionTools;
-import org.eclipse.jpt.utility.internal.StringConverter;
-import org.eclipse.jpt.utility.internal.iterators.TransformationIterator;
-import org.eclipse.jpt.utility.internal.model.value.CompositeListValueModel;
-import org.eclipse.jpt.utility.internal.model.value.PropertyAspectAdapter;
-import org.eclipse.jpt.utility.internal.model.value.PropertyListValueModelAdapter;
-import org.eclipse.jpt.utility.internal.model.value.SimpleCollectionValueModel;
-import org.eclipse.jpt.utility.internal.model.value.SortedListValueModelAdapter;
-import org.eclipse.jpt.utility.model.value.CollectionValueModel;
-import org.eclipse.jpt.utility.model.value.ListValueModel;
-import org.eclipse.jpt.utility.model.value.PropertyValueModel;
-import org.eclipse.jpt.utility.model.value.WritablePropertyValueModel;
-import org.eclipse.osgi.util.NLS;
-import org.eclipse.swt.widgets.Composite;
-
-/**
- *  ProfilerComposite
- */
-public class ProfilerComposite extends ClassChooserComboPane<Customization>
-{
-
-	/**
-	 * Creates a new <code>ProfilerComposite</code>.
-	 *
-	 * @param parentPane The parent container of this one
-	 * @param parent The parent container
-	 */
-	public ProfilerComposite(
-								Pane<? extends Customization> parentPane,
-	                           Composite parent) {
-
-		super(parentPane, parent);
-	}
-
-	@Override
-	protected String getClassName() {
-		return Profiler.getProfilerClassName(this.getSubject().getProfiler());
-	}
-
-    @Override
-    protected String getLabelText() {
-    	return EclipseLinkUiMessages.PersistenceXmlCustomizationTab_profilerLabel;
-    }
-    
-    @Override
-    protected JpaProject getJpaProject() {
-    	return getSubject().getJpaProject();
-    }
-    
-    @Override
-	protected WritablePropertyValueModel<String> buildTextHolder() {
-		return new PropertyAspectAdapter<Customization, String>(this.getSubjectHolder(), Customization.PROFILER_PROPERTY) {
-			@Override
-			protected String buildValue_() {
-
-				String name = this.subject.getProfiler();
-				if (name == null) {
-					name = ProfilerComposite.this.getDefaultValue(this.subject);
-				}
-				return name;
-			}
-
-			@Override
-			protected void setValue_(String value) {
-
-				if (getDefaultValue(this.subject).equals(value)) {
-					value = null;
-				}
-				this.subject.setProfiler(value);
-			}
-		};
-    }
-    
-	private PropertyValueModel<String> buildDefaultProfilerHolder() {
-		return new PropertyAspectAdapter<Customization, String>(this.getSubjectHolder(), Customization.DEFAULT_PROFILER) {
-			@Override
-			protected String buildValue_() {
-				return ProfilerComposite.this.getDefaultValue(this.subject);
-			}
-		};
-	}
-
-	private ListValueModel<String> buildDefaultProfilerListHolder() {
-		return new PropertyListValueModelAdapter<String>(
-			this.buildDefaultProfilerHolder()
-		);
-	}
-
-	private String buildDisplayString(String profilerName) {
-
-		switch (Profiler.valueOf(profilerName)) {
-			case no_profiler: {
-				return EclipseLinkUiMessages.ProfilerComposite_no_profiler;
-			}
-			case performance_profiler: {
-				return EclipseLinkUiMessages.ProfilerComposite_performance_profiler;
-			}
-			case query_monitor: {
-				return EclipseLinkUiMessages.ProfilerComposite_query_monitor;
-			}
-			default: {
-				return null;
-			}
-		}
-	}
-
-	private Comparator<String> buildProfilerComparator() {
-		return new Comparator<String>() {
-			public int compare(String profiler1, String profiler2) {
-				profiler1 = buildDisplayString(profiler1);
-				profiler2 = buildDisplayString(profiler2);
-				return Collator.getInstance().compare(profiler1, profiler2);
-			}
-		};
-	}
-
-	@Override
-	protected StringConverter<String> buildClassConverter() {
-		return new StringConverter<String>() {
-			public String convertToString(String value) {
-				try {
-					Profiler.valueOf(value);
-					value = buildDisplayString(value);
-				}
-				catch (Exception e) {
-					// Ignore since the value is not a Profiler
-				}
-				return value;
-			}
-		};
-	}
-
-
-	@Override
-	protected ListValueModel<String> buildClassListHolder() {
-		ArrayList<ListValueModel<String>> holders = new ArrayList<ListValueModel<String>>(2);
-		holders.add(this.buildDefaultProfilerListHolder());
-		holders.add(this.buildProfilersListHolder());
-		return new CompositeListValueModel<ListValueModel<String>, String>(holders);
-	}
-
-	private Iterator<String> buildProfilers() {
-		return new TransformationIterator<Profiler, String>(CollectionTools.iterator(Profiler.values())) {
-			@Override
-			protected String transform(Profiler next) {
-				return next.name();
-			}
-		};
-	}
-
-	private CollectionValueModel<String> buildProfilersCollectionHolder() {
-		return new SimpleCollectionValueModel<String>(
-			CollectionTools.collection(this.buildProfilers())
-		);
-	}
-
-	private ListValueModel<String> buildProfilersListHolder() {
-		return new SortedListValueModelAdapter<String>(
-			this.buildProfilersCollectionHolder(),
-			this.buildProfilerComparator()
-		);
-	}
-
-	private String getDefaultValue(Customization subject) {
-		String defaultValue = subject.getDefaultProfiler();
-
-		if (defaultValue != null) {
-			return NLS.bind(
-				EclipseLinkUiMessages.PersistenceXmlCustomizationTab_defaultWithOneParam,
-				defaultValue
-			);
-		}
-		return EclipseLinkUiMessages.PersistenceXmlCustomizationTab_defaultEmpty;
-	}
-	
-	@Override
-	protected void setClassName(String className) {
-		this.getSubject().setProfiler(className);
-	}
-	
-	@Override
-	protected String getSuperInterfaceName() {
-		return Customization.ECLIPSELINK_SESSION_PROFILER_CLASS_NAME;
-	}
-}
\ No newline at end of file
diff --git a/jpa/plugins/org.eclipse.jpt.eclipselink.ui/src/org/eclipse/jpt/eclipselink/ui/internal/persistence/customization/SessionCustomizersComposite.java b/jpa/plugins/org.eclipse.jpt.eclipselink.ui/src/org/eclipse/jpt/eclipselink/ui/internal/persistence/customization/SessionCustomizersComposite.java
deleted file mode 100644
index 15d5ef0..0000000
--- a/jpa/plugins/org.eclipse.jpt.eclipselink.ui/src/org/eclipse/jpt/eclipselink/ui/internal/persistence/customization/SessionCustomizersComposite.java
+++ /dev/null
@@ -1,213 +0,0 @@
-/*******************************************************************************
-* Copyright (c) 2008, 2009 Oracle. All rights reserved.
-* This program and the accompanying materials are made available under the
-* terms of the Eclipse Public License v1.0, which accompanies this distribution
-* and is available at http://www.eclipse.org/legal/epl-v10.html.
-* 
-* Contributors:
-*     Oracle - initial API and implementation
-*******************************************************************************/
-package org.eclipse.jpt.eclipselink.ui.internal.persistence.customization;
-
-import java.util.ListIterator;
-import org.eclipse.core.resources.IProject;
-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.ui.IJavaElementSearchConstants;
-import org.eclipse.jdt.ui.JavaUI;
-import org.eclipse.jface.viewers.ILabelProvider;
-import org.eclipse.jface.viewers.LabelProvider;
-import org.eclipse.jface.window.Window;
-import org.eclipse.jpt.eclipselink.core.internal.context.persistence.customization.Customization;
-import org.eclipse.jpt.eclipselink.ui.JptEclipseLinkUiPlugin;
-import org.eclipse.jpt.eclipselink.ui.internal.EclipseLinkUiMessages;
-import org.eclipse.jpt.ui.internal.JptUiMessages;
-import org.eclipse.jpt.ui.internal.widgets.AddRemoveListPane;
-import org.eclipse.jpt.ui.internal.widgets.Pane;
-import org.eclipse.jpt.ui.internal.widgets.AddRemovePane.Adapter;
-import org.eclipse.jpt.utility.internal.model.value.ItemPropertyListValueModelAdapter;
-import org.eclipse.jpt.utility.internal.model.value.ListAspectAdapter;
-import org.eclipse.jpt.utility.internal.model.value.SimplePropertyValueModel;
-import org.eclipse.jpt.utility.internal.model.value.swing.ObjectListSelectionModel;
-import org.eclipse.jpt.utility.model.value.ListValueModel;
-import org.eclipse.jpt.utility.model.value.WritablePropertyValueModel;
-import org.eclipse.swt.layout.GridData;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Table;
-import org.eclipse.ui.PlatformUI;
-import org.eclipse.ui.dialogs.SelectionDialog;
-import org.eclipse.ui.progress.IProgressService;
-
-/**
- *  SessionCustomizersComposite
- */
-public class SessionCustomizersComposite extends Pane<Customization>
-{
-	/**
-	 * Creates a new <code>SessionCustomizerComposite</code>.
-	 *
-	 * @param parentPane The parent pane of this one
-	 * @param parent The parent container
-	 */
-	public SessionCustomizersComposite(Pane<? extends Customization> parentPane,
-                           Composite parent) {
-
-		super(parentPane, parent);
-	}
-
-
-	private void addSessionCustomizerClass(ObjectListSelectionModel listSelectionModel) {
-
-		IType type = chooseType();
-
-		if (type != null) {
-			String className = type.getFullyQualifiedName('.');
-			if( ! this.getSubject().sessionCustomizerExists(className)) {
-				
-				String classRef = this.getSubject().addSessionCustomizer(className);
-				listSelectionModel.setSelectedValue(classRef);
-			}
-		}
-	}
-
-	private Adapter buildAdapter() {
-		return new AddRemoveListPane.AbstractAdapter() {
-			public void addNewItem(ObjectListSelectionModel listSelectionModel) {
-				addSessionCustomizerClass(listSelectionModel);
-			}
-
-			public void removeSelectedItems(ObjectListSelectionModel listSelectionModel) {
-				for (Object item : listSelectionModel.selectedValues()) {
-					getSubject().removeSessionCustomizer((String) item);
-				}
-			}
-		};
-	}
-
-	private ILabelProvider buildLabelProvider() {
-		return new LabelProvider() {
-
-			@Override
-			public String getText(Object element) {
-				String name = (String) element;
-
-				if (name == null) {
-					name = EclipseLinkUiMessages.PersistenceXmlCustomizationTab_noName;
-				}
-				return name;
-			}
-		};
-	}
-
-	private ListValueModel<String> buildListHolder() {
-		return new ListAspectAdapter<Customization, String>(getSubjectHolder(), Customization.SESSION_CUSTOMIZER_LIST_PROPERTY) {
-			@Override
-			protected ListIterator<String> listIterator_() {
-				return subject.sessionCustomizers();
-			}
-
-			@Override
-			protected int size_() {
-				return subject.sessionCustomizersSize();
-			}
-		};
-	}
-
-	private WritablePropertyValueModel<String> buildSelectedItemHolder() {
-		return new SimplePropertyValueModel<String>();
-	}
-
-	/**
-	 * Prompts the user the Open Type dialog.
-	 *
-	 * @return Either the selected type or <code>null</code> if the user
-	 * cancelled the dialog
-	 */
-	private IType chooseType() {
-
-		IPackageFragmentRoot root = packageFragmentRoot();
-
-		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(
-				getShell(),
-				service,
-				scope,
-				IJavaElementSearchConstants.CONSIDER_CLASSES,
-				false,
-				""
-			);
-		}
-		catch (JavaModelException e) {
-			JptEclipseLinkUiPlugin.log(e);
-			return null;
-		}
-
-		typeSelectionDialog.setTitle(JptUiMessages.ClassChooserPane_dialogTitle);
-		typeSelectionDialog.setMessage(JptUiMessages.ClassChooserPane_dialogMessage);
-
-		if (typeSelectionDialog.open() == Window.OK) {
-			return (IType) typeSelectionDialog.getResult()[0];
-		}
-
-		return null;
-	}
-
-	@Override
-	protected void initializeLayout(Composite container) {
-		// Description
-		container = addTitledGroup(
-			container,
-			EclipseLinkUiMessages.PersistenceXmlCustomizationTab_sessionCustomizerLabel
-		);
-
-		// List pane
-		new AddRemoveListPane<Customization>(
-			this,
-			container,
-			buildAdapter(),
-			buildListHolder(),
-			buildSelectedItemHolder(),
-			buildLabelProvider()
-		)
-		{
-			@Override
-			protected void initializeTable(Table table) {
-				super.initializeTable(table);
-
-				Composite container = table.getParent();
-				GridData gridData   = (GridData) container.getLayoutData();
-				gridData.heightHint = 75;
-			}
-		};
-	}
-
-	private IPackageFragmentRoot packageFragmentRoot() {
-		IProject project = getSubject().getJpaProject().getProject();
-		IJavaProject root = JavaCore.create(project);
-
-		try {
-			return root.getAllPackageFragmentRoots()[0];
-		}
-		catch (JavaModelException e) {
-			JptEclipseLinkUiPlugin.log(e);
-		}
-
-		return null;
-	}
-
-}
diff --git a/jpa/plugins/org.eclipse.jpt.eclipselink.ui/src/org/eclipse/jpt/eclipselink/ui/internal/persistence/customization/ThrowExceptionsComposite.java b/jpa/plugins/org.eclipse.jpt.eclipselink.ui/src/org/eclipse/jpt/eclipselink/ui/internal/persistence/customization/ThrowExceptionsComposite.java
deleted file mode 100644
index de654ba..0000000
--- a/jpa/plugins/org.eclipse.jpt.eclipselink.ui/src/org/eclipse/jpt/eclipselink/ui/internal/persistence/customization/ThrowExceptionsComposite.java
+++ /dev/null
@@ -1,97 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008, 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- *
- * Contributors:
- *     Oracle - initial API and implementation
- *******************************************************************************/
-package org.eclipse.jpt.eclipselink.ui.internal.persistence.customization;
-
-import org.eclipse.jpt.eclipselink.core.internal.context.persistence.customization.Customization;
-import org.eclipse.jpt.eclipselink.ui.internal.EclipseLinkHelpContextIds;
-import org.eclipse.jpt.eclipselink.ui.internal.EclipseLinkUiMessages;
-import org.eclipse.jpt.ui.internal.widgets.FormPane;
-import org.eclipse.jpt.utility.internal.model.value.PropertyAspectAdapter;
-import org.eclipse.jpt.utility.internal.model.value.TransformationPropertyValueModel;
-import org.eclipse.jpt.utility.model.value.PropertyValueModel;
-import org.eclipse.jpt.utility.model.value.WritablePropertyValueModel;
-import org.eclipse.osgi.util.NLS;
-import org.eclipse.swt.widgets.Composite;
-
-/**
- * ThrowExceptionsComposite
- */
-public class ThrowExceptionsComposite extends FormPane<Customization>
-{
-	/**
-	 * Creates a new <code>ThrowExceptionsComposite</code>.
-	 *
-	 * @param parentController
-	 *            The parent container of this one
-	 * @param parent
-	 *            The parent container
-	 */
-	public ThrowExceptionsComposite(
-					FormPane<? extends Customization> parentComposite,
-					Composite parent) {
-
-		super(parentComposite, parent);
-	}
-
-	private WritablePropertyValueModel<Boolean> buildThrowExceptionsHolder() {
-		return new PropertyAspectAdapter<Customization, Boolean>(getSubjectHolder(), Customization.THROW_EXCEPTIONS_PROPERTY) {
-			@Override
-			protected Boolean buildValue_() {
-				return subject.getThrowExceptions();
-			}
-
-			@Override
-			protected void setValue_(Boolean value) {
-				subject.setThrowExceptions(value);
-			}
-
-			@Override
-			protected void subjectChanged() {
-				Object oldValue = this.getValue();
-				super.subjectChanged();
-				Object newValue = this.getValue();
-
-				// Make sure the default value is appended to the text
-				if (oldValue == newValue && newValue == null) {
-					this.fireAspectChange(Boolean.TRUE, newValue);
-				}
-			}
-		};
-	}
-
-	private PropertyValueModel<String> buildThrowExceptionsStringHolder() {
-		return new TransformationPropertyValueModel<Boolean, String>(buildThrowExceptionsHolder()) {
-			@Override
-			protected String transform(Boolean value) {
-				if ((getSubject() != null) && (value == null)) {
-					Boolean defaultValue = getSubject().getDefaultThrowExceptions();
-					if (defaultValue != null) {
-						String defaultStringValue = defaultValue ? EclipseLinkUiMessages.Boolean_True : EclipseLinkUiMessages.Boolean_False;
-						return NLS.bind(EclipseLinkUiMessages.PersistenceXmlCustomizationTab_throwExceptionsLabelDefault, defaultStringValue);
-					}
-				}
-				return EclipseLinkUiMessages.PersistenceXmlCustomizationTab_throwExceptionsLabel;
-			}
-		};
-	}
-
-	@Override
-	protected void initializeLayout(Composite container) {
-
-		this.addTriStateCheckBoxWithDefault(
-			container,
-			EclipseLinkUiMessages.PersistenceXmlCustomizationTab_throwExceptionsLabel,
-			this.buildThrowExceptionsHolder(),
-			this.buildThrowExceptionsStringHolder(),
-			EclipseLinkHelpContextIds.PERSISTENCE_CUSTOMIZATION
-		);
-	}
-	
-}
diff --git a/jpa/plugins/org.eclipse.jpt.eclipselink.ui/src/org/eclipse/jpt/eclipselink/ui/internal/persistence/customization/ValidationOnlyComposite.java b/jpa/plugins/org.eclipse.jpt.eclipselink.ui/src/org/eclipse/jpt/eclipselink/ui/internal/persistence/customization/ValidationOnlyComposite.java
deleted file mode 100644
index 5fbbaed..0000000
--- a/jpa/plugins/org.eclipse.jpt.eclipselink.ui/src/org/eclipse/jpt/eclipselink/ui/internal/persistence/customization/ValidationOnlyComposite.java
+++ /dev/null
@@ -1,96 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- *
- * Contributors:
- *     Oracle - initial API and implementation
- *******************************************************************************/
-package org.eclipse.jpt.eclipselink.ui.internal.persistence.customization;
-
-import org.eclipse.jpt.eclipselink.core.internal.context.persistence.customization.Customization;
-import org.eclipse.jpt.eclipselink.ui.internal.EclipseLinkHelpContextIds;
-import org.eclipse.jpt.eclipselink.ui.internal.EclipseLinkUiMessages;
-import org.eclipse.jpt.ui.internal.widgets.FormPane;
-import org.eclipse.jpt.utility.internal.model.value.PropertyAspectAdapter;
-import org.eclipse.jpt.utility.internal.model.value.TransformationPropertyValueModel;
-import org.eclipse.jpt.utility.model.value.PropertyValueModel;
-import org.eclipse.jpt.utility.model.value.WritablePropertyValueModel;
-import org.eclipse.osgi.util.NLS;
-import org.eclipse.swt.widgets.Composite;
-
-/**
- * ValidationOnlyComposite
- */
-public class ValidationOnlyComposite extends FormPane<Customization>
-{
-	/**
-	 * Creates a new <code>ValidationOnlyComposite</code>.
-	 *
-	 * @param parentController
-	 *            The parent container of this one
-	 * @param parent
-	 *            The parent container
-	 */
-	public ValidationOnlyComposite(
-					FormPane<? extends Customization> parentComposite,
-					Composite parent) {
-
-		super(parentComposite, parent);
-	}
-
-	private WritablePropertyValueModel<Boolean> buildValidationOnlyHolder() {
-		return new PropertyAspectAdapter<Customization, Boolean>(getSubjectHolder(), Customization.VALIDATION_ONLY_PROPERTY) {
-			@Override
-			protected Boolean buildValue_() {
-				return subject.getValidationOnly();
-			}
-
-			@Override
-			protected void setValue_(Boolean value) {
-				subject.setValidationOnly(value);
-			}
-
-			@Override
-			protected void subjectChanged() {
-				Object oldValue = this.getValue();
-				super.subjectChanged();
-				Object newValue = this.getValue();
-
-				// Make sure the default value is appended to the text
-				if (oldValue == newValue && newValue == null) {
-					this.fireAspectChange(Boolean.TRUE, newValue);
-				}
-			}
-		};
-	}
-
-	private PropertyValueModel<String> buildValidationOnlyStringHolder() {
-		return new TransformationPropertyValueModel<Boolean, String>(buildValidationOnlyHolder()) {
-			@Override
-			protected String transform(Boolean value) {
-				if ((getSubject() != null) && (value == null)) {
-					Boolean defaultValue = getSubject().getDefaultValidationOnly();
-					if (defaultValue != null) {
-						String defaultStringValue = defaultValue ? EclipseLinkUiMessages.Boolean_True : EclipseLinkUiMessages.Boolean_False;
-						return NLS.bind(EclipseLinkUiMessages.PersistenceXmlCustomizationTab_validationOnlyLabelDefault, defaultStringValue);
-					}
-				}
-				return EclipseLinkUiMessages.PersistenceXmlCustomizationTab_validationOnlyLabel;
-			}
-		};
-	}
-
-	@Override
-	protected void initializeLayout(Composite container) {
-
-		this.addTriStateCheckBoxWithDefault(
-			container,
-			EclipseLinkUiMessages.PersistenceXmlCustomizationTab_validationOnlyLabel,
-			this.buildValidationOnlyHolder(),
-			this.buildValidationOnlyStringHolder(),
-			EclipseLinkHelpContextIds.PERSISTENCE_CUSTOMIZATION
-		);
-	}
-}
diff --git a/jpa/plugins/org.eclipse.jpt.eclipselink.ui/src/org/eclipse/jpt/eclipselink/ui/internal/persistence/customization/WeavingChangeTrackingComposite.java b/jpa/plugins/org.eclipse.jpt.eclipselink.ui/src/org/eclipse/jpt/eclipselink/ui/internal/persistence/customization/WeavingChangeTrackingComposite.java
deleted file mode 100644
index e8dd18b..0000000
--- a/jpa/plugins/org.eclipse.jpt.eclipselink.ui/src/org/eclipse/jpt/eclipselink/ui/internal/persistence/customization/WeavingChangeTrackingComposite.java
+++ /dev/null
@@ -1,96 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008, 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- *
- * Contributors:
- *     Oracle - initial API and implementation
- *******************************************************************************/
-package org.eclipse.jpt.eclipselink.ui.internal.persistence.customization;
-
-import org.eclipse.jpt.eclipselink.core.internal.context.persistence.customization.Customization;
-import org.eclipse.jpt.eclipselink.ui.internal.EclipseLinkHelpContextIds;
-import org.eclipse.jpt.eclipselink.ui.internal.EclipseLinkUiMessages;
-import org.eclipse.jpt.ui.internal.widgets.FormPane;
-import org.eclipse.jpt.utility.internal.model.value.PropertyAspectAdapter;
-import org.eclipse.jpt.utility.internal.model.value.TransformationPropertyValueModel;
-import org.eclipse.jpt.utility.model.value.PropertyValueModel;
-import org.eclipse.jpt.utility.model.value.WritablePropertyValueModel;
-import org.eclipse.osgi.util.NLS;
-import org.eclipse.swt.widgets.Composite;
-
-/**
- * WeavingChangeTrackingComposite
- */
-public class WeavingChangeTrackingComposite extends FormPane<Customization>
-{
-	/**
-	 * Creates a new <code>WeavingChangeTrackingComposite</code>.
-	 *
-	 * @param parentController
-	 *            The parent container of this one
-	 * @param parent
-	 *            The parent container
-	 */
-	public WeavingChangeTrackingComposite(
-					FormPane<? extends Customization> parentComposite,
-					Composite parent) {
-
-		super(parentComposite, parent);
-	}
-
-	private WritablePropertyValueModel<Boolean> buildWeavingChangeTrackingHolder() {
-		return new PropertyAspectAdapter<Customization, Boolean>(getSubjectHolder(), Customization.WEAVING_CHANGE_TRACKING_PROPERTY) {
-			@Override
-			protected Boolean buildValue_() {
-				return subject.getWeavingChangeTracking();
-			}
-
-			@Override
-			protected void setValue_(Boolean value) {
-				subject.setWeavingChangeTracking(value);
-			}
-
-			@Override
-			protected void subjectChanged() {
-				Object oldValue = this.getValue();
-				super.subjectChanged();
-				Object newValue = this.getValue();
-
-				// Make sure the default value is appended to the text
-				if (oldValue == newValue && newValue == null) {
-					this.fireAspectChange(Boolean.TRUE, newValue);
-				}
-			}
-		};
-	}
-
-	private PropertyValueModel<String> buildWeavingChangeTrackingStringHolder() {
-		return new TransformationPropertyValueModel<Boolean, String>(buildWeavingChangeTrackingHolder()) {
-			@Override
-			protected String transform(Boolean value) {
-				if ((getSubject() != null) && (value == null)) {
-					Boolean defaultValue = getSubject().getDefaultWeavingChangeTracking();
-					if (defaultValue != null) {
-						String defaultStringValue = defaultValue ? EclipseLinkUiMessages.Boolean_True : EclipseLinkUiMessages.Boolean_False;
-						return NLS.bind(EclipseLinkUiMessages.PersistenceXmlCustomizationTab_weavingChangeTrackingLabelDefault, defaultStringValue);
-					}
-				}
-				return EclipseLinkUiMessages.PersistenceXmlCustomizationTab_weavingChangeTrackingLabel;
-			}
-		};
-	}
-
-	@Override
-	protected void initializeLayout(Composite container) {
-
-		this.addTriStateCheckBoxWithDefault(
-			container,
-			EclipseLinkUiMessages.PersistenceXmlCustomizationTab_weavingChangeTrackingLabel,
-			this.buildWeavingChangeTrackingHolder(),
-			this.buildWeavingChangeTrackingStringHolder(),
-			EclipseLinkHelpContextIds.PERSISTENCE_CUSTOMIZATION
-		);
-	}
-}
diff --git a/jpa/plugins/org.eclipse.jpt.eclipselink.ui/src/org/eclipse/jpt/eclipselink/ui/internal/persistence/customization/WeavingComposite.java b/jpa/plugins/org.eclipse.jpt.eclipselink.ui/src/org/eclipse/jpt/eclipselink/ui/internal/persistence/customization/WeavingComposite.java
deleted file mode 100644
index cc4dc53..0000000
--- a/jpa/plugins/org.eclipse.jpt.eclipselink.ui/src/org/eclipse/jpt/eclipselink/ui/internal/persistence/customization/WeavingComposite.java
+++ /dev/null
@@ -1,87 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008, 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- *******************************************************************************/
-package org.eclipse.jpt.eclipselink.ui.internal.persistence.customization;
-
-import java.util.Collection;
-import org.eclipse.jpt.eclipselink.core.internal.context.persistence.customization.Customization;
-import org.eclipse.jpt.eclipselink.core.internal.context.persistence.customization.Weaving;
-import org.eclipse.jpt.eclipselink.ui.internal.EclipseLinkHelpContextIds;
-import org.eclipse.jpt.eclipselink.ui.internal.EclipseLinkUiMessages;
-import org.eclipse.jpt.ui.internal.widgets.EnumFormComboViewer;
-import org.eclipse.jpt.ui.internal.widgets.FormPane;
-import org.eclipse.swt.widgets.Composite;
-
-/**
- * WeavingComposite
- */
-public class WeavingComposite extends FormPane<Customization>
-{
-	/**
-	 * Creates a new <code>WeavingComposite</code>.
-	 * 
-	 * @param parentController
-	 *            The parent container of this one
-	 * @param parent
-	 *            The parent container
-	 */
-	public WeavingComposite(
-					FormPane<? extends Customization> parentComposite, 
-					Composite parent) {
-
-		super( parentComposite, parent);
-	}
-
-	private EnumFormComboViewer<Customization, Weaving> addWeavingCombo(Composite container) {
-		return new EnumFormComboViewer<Customization, Weaving>(this, container) {
-			@Override
-			protected void addPropertyNames(Collection<String> propertyNames) {
-				super.addPropertyNames(propertyNames);
-				propertyNames.add(Customization.WEAVING_PROPERTY);
-			}
-
-			@Override
-			protected Weaving[] getChoices() {
-				return Weaving.values();
-			}
-
-			@Override
-			protected Weaving getDefaultValue() {
-				return getSubject().getDefaultWeaving();
-			}
-
-			@Override
-			protected String displayString(Weaving value) {
-				return buildDisplayString(EclipseLinkUiMessages.class, WeavingComposite.this, value);
-			}
-
-			@Override
-			protected Weaving getValue() {
-				return getSubject().getWeaving();
-			}
-
-			@Override
-			protected void setValue(Weaving value) {
-				getSubject().setWeaving(value);
-			}
-		};
-	}
-	
-	@Override
-	protected void initializeLayout( Composite container) {
-
-		this.addLabeledComposite(
-			container,
-			EclipseLinkUiMessages.PersistenceXmlCustomizationTab_weavingLabel,
-			this.addWeavingCombo( container),
-			EclipseLinkHelpContextIds.PERSISTENCE_CUSTOMIZATION
-		);
-	}
-
-}
diff --git a/jpa/plugins/org.eclipse.jpt.eclipselink.ui/src/org/eclipse/jpt/eclipselink/ui/internal/persistence/customization/WeavingEagerComposite.java b/jpa/plugins/org.eclipse.jpt.eclipselink.ui/src/org/eclipse/jpt/eclipselink/ui/internal/persistence/customization/WeavingEagerComposite.java
deleted file mode 100644
index 313a406..0000000
--- a/jpa/plugins/org.eclipse.jpt.eclipselink.ui/src/org/eclipse/jpt/eclipselink/ui/internal/persistence/customization/WeavingEagerComposite.java
+++ /dev/null
@@ -1,96 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008, 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- *
- * Contributors:
- *     Oracle - initial API and implementation
- *******************************************************************************/
-package org.eclipse.jpt.eclipselink.ui.internal.persistence.customization;
-
-import org.eclipse.jpt.eclipselink.core.internal.context.persistence.customization.Customization;
-import org.eclipse.jpt.eclipselink.ui.internal.EclipseLinkHelpContextIds;
-import org.eclipse.jpt.eclipselink.ui.internal.EclipseLinkUiMessages;
-import org.eclipse.jpt.ui.internal.widgets.FormPane;
-import org.eclipse.jpt.utility.internal.model.value.PropertyAspectAdapter;
-import org.eclipse.jpt.utility.internal.model.value.TransformationPropertyValueModel;
-import org.eclipse.jpt.utility.model.value.PropertyValueModel;
-import org.eclipse.jpt.utility.model.value.WritablePropertyValueModel;
-import org.eclipse.osgi.util.NLS;
-import org.eclipse.swt.widgets.Composite;
-
-/**
- * WeavingEagerComposite
- */
-public class WeavingEagerComposite extends FormPane<Customization>
-{
-	/**
-	 * Creates a new <code>WeavingEagerComposite</code>.
-	 *
-	 * @param parentController
-	 *            The parent container of this one
-	 * @param parent
-	 *            The parent container
-	 */
-	public WeavingEagerComposite(
-					FormPane<? extends Customization> parentComposite,
-					Composite parent) {
-
-		super(parentComposite, parent);
-	}
-
-	private WritablePropertyValueModel<Boolean> buildWeavingEagerHolder() {
-		return new PropertyAspectAdapter<Customization, Boolean>(getSubjectHolder(), Customization.WEAVING_EAGER_PROPERTY) {
-			@Override
-			protected Boolean buildValue_() {
-				return subject.getWeavingEager();
-			}
-
-			@Override
-			protected void setValue_(Boolean value) {
-				subject.setWeavingEager(value);
-			}
-
-			@Override
-			protected void subjectChanged() {
-				Object oldValue = this.getValue();
-				super.subjectChanged();
-				Object newValue = this.getValue();
-
-				// Make sure the default value is appended to the text
-				if (oldValue == newValue && newValue == null) {
-					this.fireAspectChange(Boolean.TRUE, newValue);
-				}
-			}
-		};
-	}
-
-	private PropertyValueModel<String> buildWeavingEagerStringHolder() {
-		return new TransformationPropertyValueModel<Boolean, String>(buildWeavingEagerHolder()) {
-			@Override
-			protected String transform(Boolean value) {
-				if ((getSubject() != null) && (value == null)) {
-					Boolean defaultValue = getSubject().getDefaultWeavingEager();
-					if (defaultValue != null) {
-						String defaultStringValue = defaultValue ? EclipseLinkUiMessages.Boolean_True : EclipseLinkUiMessages.Boolean_False;
-						return NLS.bind(EclipseLinkUiMessages.PersistenceXmlCustomizationTab_weavingEagerLabelDefault, defaultStringValue);
-					}
-				}
-				return EclipseLinkUiMessages.PersistenceXmlCustomizationTab_weavingEagerLabel;
-			}
-		};
-	}
-
-	@Override
-	protected void initializeLayout(Composite container) {
-
-		this.addTriStateCheckBoxWithDefault(
-			container,
-			EclipseLinkUiMessages.PersistenceXmlCustomizationTab_weavingEagerLabel,
-			this.buildWeavingEagerHolder(),
-			this.buildWeavingEagerStringHolder(),
-			EclipseLinkHelpContextIds.PERSISTENCE_CUSTOMIZATION
-		);
-	}
-}
diff --git a/jpa/plugins/org.eclipse.jpt.eclipselink.ui/src/org/eclipse/jpt/eclipselink/ui/internal/persistence/customization/WeavingFetchGroupsComposite.java b/jpa/plugins/org.eclipse.jpt.eclipselink.ui/src/org/eclipse/jpt/eclipselink/ui/internal/persistence/customization/WeavingFetchGroupsComposite.java
deleted file mode 100644
index 3dbd7c3..0000000
--- a/jpa/plugins/org.eclipse.jpt.eclipselink.ui/src/org/eclipse/jpt/eclipselink/ui/internal/persistence/customization/WeavingFetchGroupsComposite.java
+++ /dev/null
@@ -1,96 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008, 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- *
- * Contributors:
- *     Oracle - initial API and implementation
- *******************************************************************************/
-package org.eclipse.jpt.eclipselink.ui.internal.persistence.customization;
-
-import org.eclipse.jpt.eclipselink.core.internal.context.persistence.customization.Customization;
-import org.eclipse.jpt.eclipselink.ui.internal.EclipseLinkHelpContextIds;
-import org.eclipse.jpt.eclipselink.ui.internal.EclipseLinkUiMessages;
-import org.eclipse.jpt.ui.internal.widgets.FormPane;
-import org.eclipse.jpt.utility.internal.model.value.PropertyAspectAdapter;
-import org.eclipse.jpt.utility.internal.model.value.TransformationPropertyValueModel;
-import org.eclipse.jpt.utility.model.value.PropertyValueModel;
-import org.eclipse.jpt.utility.model.value.WritablePropertyValueModel;
-import org.eclipse.osgi.util.NLS;
-import org.eclipse.swt.widgets.Composite;
-
-/**
- * WeavingFetchGroupsComposite
- */
-public class WeavingFetchGroupsComposite extends FormPane<Customization>
-{
-	/**
-	 * Creates a new <code>WeavingFetchGroupsComposite</code>.
-	 *
-	 * @param parentController
-	 *            The parent container of this one
-	 * @param parent
-	 *            The parent container
-	 */
-	public WeavingFetchGroupsComposite(
-					FormPane<? extends Customization> parentComposite,
-					Composite parent) {
-
-		super(parentComposite, parent);
-	}
-
-	private WritablePropertyValueModel<Boolean> buildWeavingFetchGroupsHolder() {
-		return new PropertyAspectAdapter<Customization, Boolean>(getSubjectHolder(), Customization.WEAVING_FETCH_GROUPS_PROPERTY) {
-			@Override
-			protected Boolean buildValue_() {
-				return subject.getWeavingFetchGroups();
-			}
-
-			@Override
-			protected void setValue_(Boolean value) {
-				subject.setWeavingFetchGroups(value);
-			}
-
-			@Override
-			protected void subjectChanged() {
-				Object oldValue = this.getValue();
-				super.subjectChanged();
-				Object newValue = this.getValue();
-
-				// Make sure the default value is appended to the text
-				if (oldValue == newValue && newValue == null) {
-					this.fireAspectChange(Boolean.TRUE, newValue);
-				}
-			}
-		};
-	}
-
-	private PropertyValueModel<String> buildWeavingFetchGroupsStringHolder() {
-		return new TransformationPropertyValueModel<Boolean, String>(buildWeavingFetchGroupsHolder()) {
-			@Override
-			protected String transform(Boolean value) {
-				if ((getSubject() != null) && (value == null)) {
-					Boolean defaultValue = getSubject().getDefaultWeavingFetchGroups();
-					if (defaultValue != null) {
-						String defaultStringValue = defaultValue ? EclipseLinkUiMessages.Boolean_True : EclipseLinkUiMessages.Boolean_False;
-						return NLS.bind(EclipseLinkUiMessages.PersistenceXmlCustomizationTab_weavingFetchGroupsLabelDefault, defaultStringValue);
-					}
-				}
-				return EclipseLinkUiMessages.PersistenceXmlCustomizationTab_weavingFetchGroupsLabel;
-			}
-		};
-	}
-
-	@Override
-	protected void initializeLayout(Composite container) {
-
-		this.addTriStateCheckBoxWithDefault(
-			container,
-			EclipseLinkUiMessages.PersistenceXmlCustomizationTab_weavingFetchGroupsLabel,
-			this.buildWeavingFetchGroupsHolder(),
-			this.buildWeavingFetchGroupsStringHolder(),
-			EclipseLinkHelpContextIds.PERSISTENCE_CUSTOMIZATION
-		);
-	}
-}
diff --git a/jpa/plugins/org.eclipse.jpt.eclipselink.ui/src/org/eclipse/jpt/eclipselink/ui/internal/persistence/customization/WeavingInternalComposite.java b/jpa/plugins/org.eclipse.jpt.eclipselink.ui/src/org/eclipse/jpt/eclipselink/ui/internal/persistence/customization/WeavingInternalComposite.java
deleted file mode 100644
index a3a8c2e..0000000
--- a/jpa/plugins/org.eclipse.jpt.eclipselink.ui/src/org/eclipse/jpt/eclipselink/ui/internal/persistence/customization/WeavingInternalComposite.java
+++ /dev/null
@@ -1,96 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008, 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- *
- * Contributors:
- *     Oracle - initial API and implementation
- *******************************************************************************/
-package org.eclipse.jpt.eclipselink.ui.internal.persistence.customization;
-
-import org.eclipse.jpt.eclipselink.core.internal.context.persistence.customization.Customization;
-import org.eclipse.jpt.eclipselink.ui.internal.EclipseLinkHelpContextIds;
-import org.eclipse.jpt.eclipselink.ui.internal.EclipseLinkUiMessages;
-import org.eclipse.jpt.ui.internal.widgets.FormPane;
-import org.eclipse.jpt.utility.internal.model.value.PropertyAspectAdapter;
-import org.eclipse.jpt.utility.internal.model.value.TransformationPropertyValueModel;
-import org.eclipse.jpt.utility.model.value.PropertyValueModel;
-import org.eclipse.jpt.utility.model.value.WritablePropertyValueModel;
-import org.eclipse.osgi.util.NLS;
-import org.eclipse.swt.widgets.Composite;
-
-/**
- * WeavingInternalComposite
- */
-public class WeavingInternalComposite extends FormPane<Customization>
-{
-	/**
-	 * Creates a new <code>WeavingInternalComposite</code>.
-	 *
-	 * @param parentController
-	 *            The parent container of this one
-	 * @param parent
-	 *            The parent container
-	 */
-	public WeavingInternalComposite(
-					FormPane<? extends Customization> parentComposite,
-					Composite parent) {
-
-		super(parentComposite, parent);
-	}
-
-	private WritablePropertyValueModel<Boolean> buildWeavingInternalHolder() {
-		return new PropertyAspectAdapter<Customization, Boolean>(getSubjectHolder(), Customization.WEAVING_INTERNAL_PROPERTY) {
-			@Override
-			protected Boolean buildValue_() {
-				return subject.getWeavingInternal();
-			}
-
-			@Override
-			protected void setValue_(Boolean value) {
-				subject.setWeavingInternal(value);
-			}
-
-			@Override
-			protected void subjectChanged() {
-				Object oldValue = this.getValue();
-				super.subjectChanged();
-				Object newValue = this.getValue();
-
-				// Make sure the default value is appended to the text
-				if (oldValue == newValue && newValue == null) {
-					this.fireAspectChange(Boolean.TRUE, newValue);
-				}
-			}
-		};
-	}
-
-	private PropertyValueModel<String> buildWeavingInternalStringHolder() {
-		return new TransformationPropertyValueModel<Boolean, String>(buildWeavingInternalHolder()) {
-			@Override
-			protected String transform(Boolean value) {
-				if ((getSubject() != null) && (value == null)) {
-					Boolean defaultValue = getSubject().getDefaultWeavingInternal();
-					if (defaultValue != null) {
-						String defaultStringValue = defaultValue ? EclipseLinkUiMessages.Boolean_True : EclipseLinkUiMessages.Boolean_False;
-						return NLS.bind(EclipseLinkUiMessages.PersistenceXmlCustomizationTab_weavingInternalLabelDefault, defaultStringValue);
-					}
-				}
-				return EclipseLinkUiMessages.PersistenceXmlCustomizationTab_weavingInternalLabel;
-			}
-		};
-	}
-
-	@Override
-	protected void initializeLayout(Composite container) {
-
-		this.addTriStateCheckBoxWithDefault(
-			container,
-			EclipseLinkUiMessages.PersistenceXmlCustomizationTab_weavingInternalLabel,
-			this.buildWeavingInternalHolder(),
-			this.buildWeavingInternalStringHolder(),
-			EclipseLinkHelpContextIds.PERSISTENCE_CUSTOMIZATION
-		);
-	}
-}
diff --git a/jpa/plugins/org.eclipse.jpt.eclipselink.ui/src/org/eclipse/jpt/eclipselink/ui/internal/persistence/customization/WeavingLazyComposite.java b/jpa/plugins/org.eclipse.jpt.eclipselink.ui/src/org/eclipse/jpt/eclipselink/ui/internal/persistence/customization/WeavingLazyComposite.java
deleted file mode 100644
index f0e29ce..0000000
--- a/jpa/plugins/org.eclipse.jpt.eclipselink.ui/src/org/eclipse/jpt/eclipselink/ui/internal/persistence/customization/WeavingLazyComposite.java
+++ /dev/null
@@ -1,96 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008, 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- *
- * Contributors:
- *     Oracle - initial API and implementation
- *******************************************************************************/
-package org.eclipse.jpt.eclipselink.ui.internal.persistence.customization;
-
-import org.eclipse.jpt.eclipselink.core.internal.context.persistence.customization.Customization;
-import org.eclipse.jpt.eclipselink.ui.internal.EclipseLinkHelpContextIds;
-import org.eclipse.jpt.eclipselink.ui.internal.EclipseLinkUiMessages;
-import org.eclipse.jpt.ui.internal.widgets.FormPane;
-import org.eclipse.jpt.utility.internal.model.value.PropertyAspectAdapter;
-import org.eclipse.jpt.utility.internal.model.value.TransformationPropertyValueModel;
-import org.eclipse.jpt.utility.model.value.PropertyValueModel;
-import org.eclipse.jpt.utility.model.value.WritablePropertyValueModel;
-import org.eclipse.osgi.util.NLS;
-import org.eclipse.swt.widgets.Composite;
-
-/**
- * WeavingLazyComposite
- */
-public class WeavingLazyComposite extends FormPane<Customization>
-{
-	/**
-	 * Creates a new <code>WeavingLazyComposite</code>.
-	 *
-	 * @param parentController
-	 *            The parent container of this one
-	 * @param parent
-	 *            The parent container
-	 */
-	public WeavingLazyComposite(
-					FormPane<? extends Customization> parentComposite,
-					Composite parent) {
-
-		super(parentComposite, parent);
-	}
-
-	private WritablePropertyValueModel<Boolean> buildWeavingLazyHolder() {
-		return new PropertyAspectAdapter<Customization, Boolean>(getSubjectHolder(), Customization.WEAVING_LAZY_PROPERTY) {
-			@Override
-			protected Boolean buildValue_() {
-				return subject.getWeavingLazy();
-			}
-
-			@Override
-			protected void setValue_(Boolean value) {
-				subject.setWeavingLazy(value);
-			}
-
-			@Override
-			protected void subjectChanged() {
-				Object oldValue = this.getValue();
-				super.subjectChanged();
-				Object newValue = this.getValue();
-
-				// Make sure the default value is appended to the text
-				if (oldValue == newValue && newValue == null) {
-					this.fireAspectChange(Boolean.TRUE, newValue);
-				}
-			}
-		};
-	}
-
-	private PropertyValueModel<String> buildWeavingLazyStringHolder() {
-		return new TransformationPropertyValueModel<Boolean, String>(buildWeavingLazyHolder()) {
-			@Override
-			protected String transform(Boolean value) {
-				if ((getSubject() != null) && (value == null)) {
-					Boolean defaultValue = getSubject().getDefaultWeavingLazy();
-					if (defaultValue != null) {
-						String defaultStringValue = defaultValue ? EclipseLinkUiMessages.Boolean_True : EclipseLinkUiMessages.Boolean_False;
-						return NLS.bind(EclipseLinkUiMessages.PersistenceXmlCustomizationTab_weavingLazyLabelDefault, defaultStringValue);
-					}
-				}
-				return EclipseLinkUiMessages.PersistenceXmlCustomizationTab_weavingLazyLabel;
-			}
-		};
-	}
-
-	@Override
-	protected void initializeLayout(Composite container) {
-
-		this.addTriStateCheckBoxWithDefault(
-			container,
-			EclipseLinkUiMessages.PersistenceXmlCustomizationTab_weavingLazyLabel,
-			this.buildWeavingLazyHolder(),
-			this.buildWeavingLazyStringHolder(),
-			EclipseLinkHelpContextIds.PERSISTENCE_CUSTOMIZATION
-		);
-	}
-}
diff --git a/jpa/plugins/org.eclipse.jpt.eclipselink.ui/src/org/eclipse/jpt/eclipselink/ui/internal/persistence/general/EclipseLinkPersistenceUnitGeneralComposite.java b/jpa/plugins/org.eclipse.jpt.eclipselink.ui/src/org/eclipse/jpt/eclipselink/ui/internal/persistence/general/EclipseLinkPersistenceUnitGeneralComposite.java
deleted file mode 100644
index 0aea92c..0000000
--- a/jpa/plugins/org.eclipse.jpt.eclipselink.ui/src/org/eclipse/jpt/eclipselink/ui/internal/persistence/general/EclipseLinkPersistenceUnitGeneralComposite.java
+++ /dev/null
@@ -1,68 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- *
- * Contributors:
- *     Oracle - initial API and implementation
- *******************************************************************************/
-package org.eclipse.jpt.eclipselink.ui.internal.persistence.general;
-
-import org.eclipse.jpt.eclipselink.core.internal.context.persistence.EclipseLinkPersistenceUnit;
-import org.eclipse.jpt.ui.WidgetFactory;
-import org.eclipse.jpt.ui.internal.persistence.JptUiPersistenceMessages;
-import org.eclipse.jpt.ui.internal.persistence.details.PersistenceUnitGeneralComposite;
-import org.eclipse.jpt.utility.model.value.PropertyValueModel;
-import org.eclipse.swt.widgets.Composite;
-
-/**
- * EclipseLinkPersistenceUnitGeneralComposite
- */
-public class EclipseLinkPersistenceUnitGeneralComposite
-	extends PersistenceUnitGeneralComposite
-{
-	// ********** constructors **********
-	public EclipseLinkPersistenceUnitGeneralComposite(
-		PropertyValueModel<EclipseLinkPersistenceUnit> subjectHolder,
-					Composite container,
-					WidgetFactory widgetFactory) {
-		super(subjectHolder, container, widgetFactory);
-	}
-
-	// ********** initialization **********
-	@Override
-	protected void initializeLayout(Composite container) {
-		this.initializeGeneralPane(container);
-		this.initializeMappedClassesPane(container);
-		this.initializeJPAMappingDescriptorsPane(container);
-		this.initializeJarFilesPane(container);
-	}
-	
-	protected void initializeJPAMappingDescriptorsPane(Composite container) {
-
-		container = addCollapsableSection(
-			container,
-			JptUiPersistenceMessages.PersistenceUnitGeneralComposite_jpaMappingDescriptors,
-			JptUiPersistenceMessages.PersistenceUnitGeneralComposite_jpaMappingDescriptors_description
-		);
-
-		updateGridData(container);
-		updateGridData(container.getParent());
-
-		new EclipseLinkPersistenceUnitMappingFilesComposite(this, container);
-	}
-	
-	protected void initializeJarFilesPane(Composite container) {
-
-		container = addCollapsableSection(
-			container,
-			JptUiPersistenceMessages.PersistenceUnitGeneralComposite_jarFiles
-		);
-		
-		updateGridData(container);
-		updateGridData(container.getParent());
-		
-		new EclipseLinkPersistenceUnitJarFilesComposite(this, container);
-	}
-}
\ No newline at end of file
diff --git a/jpa/plugins/org.eclipse.jpt.eclipselink.ui/src/org/eclipse/jpt/eclipselink/ui/internal/persistence/general/EclipseLinkPersistenceUnitJarFilesComposite.java b/jpa/plugins/org.eclipse.jpt.eclipselink.ui/src/org/eclipse/jpt/eclipselink/ui/internal/persistence/general/EclipseLinkPersistenceUnitJarFilesComposite.java
deleted file mode 100644
index 2449678..0000000
--- a/jpa/plugins/org.eclipse.jpt.eclipselink.ui/src/org/eclipse/jpt/eclipselink/ui/internal/persistence/general/EclipseLinkPersistenceUnitJarFilesComposite.java
+++ /dev/null
@@ -1,53 +0,0 @@
-/*******************************************************************************
- *  Copyright (c) 2009  Oracle. 
- *  All rights reserved.  This program and the accompanying materials are 
- *  made available under the terms of the Eclipse Public License v1.0 which 
- *  accompanies this distribution, and is available at 
- *  http://www.eclipse.org/legal/epl-v10.html
- *  
- *  Contributors: 
- *  	Oracle - initial API and implementation
- *******************************************************************************/
-package org.eclipse.jpt.eclipselink.ui.internal.persistence.general;
-
-import org.eclipse.core.resources.IFile;
-import org.eclipse.jpt.core.JptCorePlugin;
-import org.eclipse.jpt.core.context.persistence.PersistenceUnit;
-import org.eclipse.jpt.ui.internal.persistence.details.ArchiveFileSelectionDialog;
-import org.eclipse.jpt.ui.internal.persistence.details.PersistenceUnitJarFilesComposite;
-import org.eclipse.jpt.ui.internal.persistence.details.ArchiveFileSelectionDialog.DeploymentPathCalculator;
-import org.eclipse.jpt.ui.internal.widgets.Pane;
-import org.eclipse.swt.widgets.Composite;
-
-public class EclipseLinkPersistenceUnitJarFilesComposite
-	extends PersistenceUnitJarFilesComposite
-{
-	public EclipseLinkPersistenceUnitJarFilesComposite(
-			Pane<? extends PersistenceUnit> parentPane,
-			Composite parent) {
-
-		super(parentPane, parent);
-	}
-	
-	
-	@Override
-	protected DeploymentPathCalculator buildJarFileDeploymentPathCalculator() {
-		return new EclipseLinkDeploymentPathCalculator();
-	}
-	
-	
-	private static class EclipseLinkDeploymentPathCalculator
-		extends ArchiveFileSelectionDialog.ModuleDeploymentPathCalculator
-	{
-		@Override
-		public String calculateDeploymentPath(IFile file) {
-			String baseDeploymentPath = super.calculateDeploymentPath(file);
-			if (JptCorePlugin.projectHasWebFacet(file.getProject())) {
-				return "../" + baseDeploymentPath;
-			}
-			else {
-				return baseDeploymentPath;
-			}
-		}
-	}
-}
diff --git a/jpa/plugins/org.eclipse.jpt.eclipselink.ui/src/org/eclipse/jpt/eclipselink/ui/internal/persistence/general/EclipseLinkPersistenceUnitMappingFilesComposite.java b/jpa/plugins/org.eclipse.jpt.eclipselink.ui/src/org/eclipse/jpt/eclipselink/ui/internal/persistence/general/EclipseLinkPersistenceUnitMappingFilesComposite.java
deleted file mode 100644
index 9350738..0000000
--- a/jpa/plugins/org.eclipse.jpt.eclipselink.ui/src/org/eclipse/jpt/eclipselink/ui/internal/persistence/general/EclipseLinkPersistenceUnitMappingFilesComposite.java
+++ /dev/null
@@ -1,136 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008, 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- *
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.eclipselink.ui.internal.persistence.general;
-
-import org.eclipse.jpt.core.context.persistence.PersistenceUnit;
-import org.eclipse.jpt.eclipselink.core.internal.context.persistence.EclipseLinkPersistenceUnit;
-import org.eclipse.jpt.eclipselink.core.internal.context.persistence.general.GeneralProperties;
-import org.eclipse.jpt.eclipselink.ui.internal.EclipseLinkUiMessages;
-import org.eclipse.jpt.ui.internal.JpaHelpContextIds;
-import org.eclipse.jpt.ui.internal.persistence.details.PersistenceUnitMappingFilesComposite;
-import org.eclipse.jpt.ui.internal.widgets.Pane;
-import org.eclipse.jpt.utility.internal.model.value.PropertyAspectAdapter;
-import org.eclipse.jpt.utility.internal.model.value.TransformationPropertyValueModel;
-import org.eclipse.jpt.utility.model.value.PropertyValueModel;
-import org.eclipse.jpt.utility.model.value.WritablePropertyValueModel;
-import org.eclipse.osgi.util.NLS;
-import org.eclipse.swt.widgets.Composite;
-
-/**
- * Here the layout of this pane:
- * <pre>
- * -----------------------------------------------------------------------------
- * | ------------------------------------------------------------------------- |
- * | |                                                                       | |
- * | | AddRemoveListPane                                                     | |
- * | |                                                                       | |
- * | ------------------------------------------------------------------------- |
- * -----------------------------------------------------------------------------</pre>
- *
- * @see PersistenceUnit
- * @see PersistenceUnitGeneralComposite - The parent container
- * @see AddRemoveListPane
- *
- * @version 2.0
- * @since 2.0
- */
-public class EclipseLinkPersistenceUnitMappingFilesComposite extends PersistenceUnitMappingFilesComposite
-{
-	/**
-	 * Creates a new <code>PersistenceUnitMappingFilesComposite</code>.
-	 *
-	 * @param parentPane The parent pane of this one
-	 * @param parent The parent container
-	 */
-	public EclipseLinkPersistenceUnitMappingFilesComposite(Pane<? extends PersistenceUnit> parentPane,
-	                                            Composite parent) {
-
-		super(parentPane, parent);
-	}
-
-	@Override
-	protected void initializeLayout(Composite container) {
-		this.addMappingFilesList(container);
-		this.addTriStateCheckBoxWithDefault(
-			container,
-			EclipseLinkUiMessages.PersistenceXmlGeneralTab_excludeEclipselinkOrm,
-			this.buildExcludeEclipselinkOrmHolder(),
-			this.buildExcludeEclipselinkOrmStringHolder(),
-			JpaHelpContextIds.PERSISTENCE_XML_GENERAL
-		);
-
-	}
-	
-	
-	protected PropertyValueModel<GeneralProperties> buildGeneralPropertiesHolder() {
-		return new TransformationPropertyValueModel<PersistenceUnit, GeneralProperties>(getSubjectHolder()) {
-			@Override
-			protected GeneralProperties transform_(PersistenceUnit persistenceUnit) {
-				return ((EclipseLinkPersistenceUnit) persistenceUnit).getGeneralProperties();
-			}
-		};
-	}
-	
-	private WritablePropertyValueModel<Boolean> buildExcludeEclipselinkOrmHolder() {
-		return new PropertyAspectAdapter<GeneralProperties, Boolean>(
-			buildGeneralPropertiesHolder(),
-			GeneralProperties.EXCLUDE_ECLIPSELINK_ORM_PROPERTY)
-		{
-			@Override
-			protected Boolean buildValue_() {
-				return this.subject.getExcludeEclipselinkOrm();
-			}
-
-			@Override
-			protected void setValue_(Boolean value) {
-				this.subject.setExcludeEclipselinkOrm(value);
-			}
-
-			@Override
-			protected void subjectChanged() {
-				Object oldValue = this.getValue();
-				super.subjectChanged();
-				Object newValue = this.getValue();
-
-				// Make sure the default value is appended to the text
-				if (oldValue == newValue && newValue == null) {
-					this.fireAspectChange(Boolean.TRUE, newValue);
-				}
-			}
-		};
-	}
-
-	private PropertyValueModel<String> buildExcludeEclipselinkOrmStringHolder() {
-
-		return new TransformationPropertyValueModel<Boolean, String>(buildExcludeEclipselinkOrmHolder()) {
-
-			@Override
-			protected String transform(Boolean value) {
-
-				if ((getSubject() != null) && (value == null)) {
-
-					Boolean defaultValue = ((EclipseLinkPersistenceUnit) getSubject()).getGeneralProperties().getDefaultExcludeEclipselinkOrm();
-
-					if (defaultValue != null) {
-
-						String defaultStringValue = defaultValue ? EclipseLinkUiMessages.Boolean_True :
-																			EclipseLinkUiMessages.Boolean_False;
-
-						return NLS.bind(
-							EclipseLinkUiMessages.PersistenceXmlGeneralTab_excludeEclipselinkOrmWithDefault,
-							defaultStringValue
-						);
-					}
-				}
-				return EclipseLinkUiMessages.PersistenceXmlGeneralTab_excludeEclipselinkOrm;
-			}
-		};
-	}
-}
\ No newline at end of file
diff --git a/jpa/plugins/org.eclipse.jpt.eclipselink.ui/src/org/eclipse/jpt/eclipselink/ui/internal/persistence/logging/EclipseLinkLoggingComposite.java b/jpa/plugins/org.eclipse.jpt.eclipselink.ui/src/org/eclipse/jpt/eclipselink/ui/internal/persistence/logging/EclipseLinkLoggingComposite.java
deleted file mode 100644
index bd93c7d..0000000
--- a/jpa/plugins/org.eclipse.jpt.eclipselink.ui/src/org/eclipse/jpt/eclipselink/ui/internal/persistence/logging/EclipseLinkLoggingComposite.java
+++ /dev/null
@@ -1,77 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- *******************************************************************************/
-package org.eclipse.jpt.eclipselink.ui.internal.persistence.logging;
-
-import org.eclipse.jpt.eclipselink.core.internal.context.persistence.logging.Logging;
-import org.eclipse.jpt.eclipselink.ui.internal.EclipseLinkUiMessages;
-import org.eclipse.jpt.ui.internal.widgets.FormPane;
-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.forms.widgets.ExpandableComposite;
-import org.eclipse.ui.forms.widgets.Section;
-
-/**
- * EclipseLinkLoggingComposite
- */
-public class EclipseLinkLoggingComposite
-	extends FormPane<Logging>
-{
-	public EclipseLinkLoggingComposite(
-					FormPane<Logging> subjectHolder, 
-					Composite container) {
-		super(subjectHolder, container, false);
-	}
-
-	@Override
-	protected void initializeLayout(Composite parent) {
-		Section section = getWidgetFactory().createSection(parent, SWT.FLAT | ExpandableComposite.TITLE_BAR | Section.DESCRIPTION);
-		section.setText(EclipseLinkUiMessages.PersistenceXmlLoggingTab_sectionTitle);
-		section.setDescription(EclipseLinkUiMessages.PersistenceXmlLoggingTab_sectionDescription);
-		Composite composite = getWidgetFactory().createComposite(section);
-		composite.setLayout(new GridLayout(1, false));
-		section.setClient(composite);
-		this.updateGridData(composite);
-		this.updateGridData(composite.getParent());
-		
-		// LoggingLevel:
-		new LoggingLevelComposite(this, composite);
-
-		// Timestamp:
-		new TimestampComposite(this, composite);
-
-		// Thread:
-		new ThreadComposite(this, composite);
-
-		// Session:
-		new SessionComposite(this, composite);
-
-		// Exceptions:
-		new ExceptionsComposite(this, composite);
-
-		// LoggingFile:
-		new LoggingFileLocationComposite(this, composite);
-		
-		// Logger:
-		new LoggerComposite(this, composite);
-		
-		return;
-	}
-
-	private void updateGridData(Composite container) {
-		GridData gridData = new GridData();
-		gridData.grabExcessHorizontalSpace = true;
-		gridData.grabExcessVerticalSpace = true;
-		gridData.horizontalAlignment = SWT.FILL;
-		gridData.verticalAlignment = SWT.FILL;
-		container.setLayoutData(gridData);
-	}
-}
diff --git a/jpa/plugins/org.eclipse.jpt.eclipselink.ui/src/org/eclipse/jpt/eclipselink/ui/internal/persistence/logging/ExceptionsComposite.java b/jpa/plugins/org.eclipse.jpt.eclipselink.ui/src/org/eclipse/jpt/eclipselink/ui/internal/persistence/logging/ExceptionsComposite.java
deleted file mode 100644
index 7702873..0000000
--- a/jpa/plugins/org.eclipse.jpt.eclipselink.ui/src/org/eclipse/jpt/eclipselink/ui/internal/persistence/logging/ExceptionsComposite.java
+++ /dev/null
@@ -1,96 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008, 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- *
- * Contributors:
- *     Oracle - initial API and implementation
- *******************************************************************************/
-package org.eclipse.jpt.eclipselink.ui.internal.persistence.logging;
-
-import org.eclipse.jpt.eclipselink.core.internal.context.persistence.logging.Logging;
-import org.eclipse.jpt.eclipselink.ui.internal.EclipseLinkHelpContextIds;
-import org.eclipse.jpt.eclipselink.ui.internal.EclipseLinkUiMessages;
-import org.eclipse.jpt.ui.internal.widgets.FormPane;
-import org.eclipse.jpt.utility.internal.model.value.PropertyAspectAdapter;
-import org.eclipse.jpt.utility.internal.model.value.TransformationPropertyValueModel;
-import org.eclipse.jpt.utility.model.value.PropertyValueModel;
-import org.eclipse.jpt.utility.model.value.WritablePropertyValueModel;
-import org.eclipse.osgi.util.NLS;
-import org.eclipse.swt.widgets.Composite;
-
-/**
- * ExceptionsComposite
- */
-public class ExceptionsComposite extends FormPane<Logging>
-{
-	/**
-	 * Creates a new <code>ExceptionsComposite</code>.
-	 *
-	 * @param parentController
-	 *            The parent container of this one
-	 * @param parent
-	 *            The parent container
-	 */
-	public ExceptionsComposite(
-					FormPane<? extends Logging> parentComposite,
-					Composite parent) {
-
-		super(parentComposite, parent);
-	}
-
-	private WritablePropertyValueModel<Boolean> buildExceptionsHolder() {
-		return new PropertyAspectAdapter<Logging, Boolean>(getSubjectHolder(), Logging.EXCEPTIONS_PROPERTY) {
-			@Override
-			protected Boolean buildValue_() {
-				return subject.getExceptions();
-			}
-
-			@Override
-			protected void setValue_(Boolean value) {
-				subject.setExceptions(value);
-			}
-
-			@Override
-			protected void subjectChanged() {
-				Object oldValue = this.getValue();
-				super.subjectChanged();
-				Object newValue = this.getValue();
-
-				// Make sure the default value is appended to the text
-				if (oldValue == newValue && newValue == null) {
-					this.fireAspectChange(Boolean.TRUE, newValue);
-				}
-			}
-		};
-	}
-
-	private PropertyValueModel<String> buildExceptionsStringHolder() {
-		return new TransformationPropertyValueModel<Boolean, String>(buildExceptionsHolder()) {
-			@Override
-			protected String transform(Boolean value) {
-				if ((getSubject() != null) && (value == null)) {
-					Boolean defaultValue = getSubject().getDefaultExceptions();
-					if (defaultValue != null) {
-						String defaultStringValue = defaultValue ? EclipseLinkUiMessages.Boolean_True : EclipseLinkUiMessages.Boolean_False;
-						return NLS.bind(EclipseLinkUiMessages.PersistenceXmlLoggingTab_exceptionsLabelDefault, defaultStringValue);
-					}
-				}
-				return EclipseLinkUiMessages.PersistenceXmlLoggingTab_exceptionsLabel;
-			}
-		};
-	}
-
-	@Override
-	protected void initializeLayout(Composite container) {
-
-		this.addTriStateCheckBoxWithDefault(
-			container,
-			EclipseLinkUiMessages.PersistenceXmlLoggingTab_exceptionsLabel,
-			this.buildExceptionsHolder(),
-			this.buildExceptionsStringHolder(),
-			EclipseLinkHelpContextIds.PERSISTENCE_LOGGING_EXCEPTIONS
-		);
-	}
-}
diff --git a/jpa/plugins/org.eclipse.jpt.eclipselink.ui/src/org/eclipse/jpt/eclipselink/ui/internal/persistence/logging/LoggerComposite.java b/jpa/plugins/org.eclipse.jpt.eclipselink.ui/src/org/eclipse/jpt/eclipselink/ui/internal/persistence/logging/LoggerComposite.java
deleted file mode 100644
index 869830c..0000000
--- a/jpa/plugins/org.eclipse.jpt.eclipselink.ui/src/org/eclipse/jpt/eclipselink/ui/internal/persistence/logging/LoggerComposite.java
+++ /dev/null
@@ -1,207 +0,0 @@
-/*******************************************************************************
-* Copyright (c) 2008 Oracle. All rights reserved.
-* This program and the accompanying materials are made available under the
-* terms of the Eclipse Public License v1.0, which accompanies this distribution
-* and is available at http://www.eclipse.org/legal/epl-v10.html.
-*
-* Contributors:
-*     Oracle - initial API and implementation
-*******************************************************************************/
-package org.eclipse.jpt.eclipselink.ui.internal.persistence.logging;
-
-import com.ibm.icu.text.Collator;
-import java.util.ArrayList;
-import java.util.Comparator;
-import java.util.Iterator;
-import org.eclipse.jpt.core.JpaProject;
-import org.eclipse.jpt.eclipselink.core.internal.context.persistence.logging.Logger;
-import org.eclipse.jpt.eclipselink.core.internal.context.persistence.logging.Logging;
-import org.eclipse.jpt.eclipselink.ui.internal.EclipseLinkUiMessages;
-import org.eclipse.jpt.ui.internal.widgets.ClassChooserComboPane;
-import org.eclipse.jpt.ui.internal.widgets.Pane;
-import org.eclipse.jpt.utility.internal.CollectionTools;
-import org.eclipse.jpt.utility.internal.StringConverter;
-import org.eclipse.jpt.utility.internal.iterators.TransformationIterator;
-import org.eclipse.jpt.utility.internal.model.value.CompositeListValueModel;
-import org.eclipse.jpt.utility.internal.model.value.PropertyAspectAdapter;
-import org.eclipse.jpt.utility.internal.model.value.PropertyListValueModelAdapter;
-import org.eclipse.jpt.utility.internal.model.value.SimpleCollectionValueModel;
-import org.eclipse.jpt.utility.internal.model.value.SortedListValueModelAdapter;
-import org.eclipse.jpt.utility.model.value.CollectionValueModel;
-import org.eclipse.jpt.utility.model.value.ListValueModel;
-import org.eclipse.jpt.utility.model.value.PropertyValueModel;
-import org.eclipse.jpt.utility.model.value.WritablePropertyValueModel;
-import org.eclipse.osgi.util.NLS;
-import org.eclipse.swt.widgets.Composite;
-
-/**
- *  LoggerComposite
- */
-public class LoggerComposite extends ClassChooserComboPane<Logging>
-{
-	/**
-	 * Creates a new <code>LoggerComposite</code>.
-	 *
-	 * @param parentPane The parent container of this one
-	 * @param parent The parent container
-	 */
-	public LoggerComposite(
-								Pane<? extends Logging> parentPane,
-	                           Composite parent) {
-
-		super(parentPane, parent);
-	}
-	
-	@Override
-	protected String getClassName() {
-		if (this.getSubject().getLogger() == null) {
-			return Logger.DEFAULT_LOGGER_CLASS_NAME;
-		}
-		return Logger.getLoggerClassName(this.getSubject().getLogger());
-	}
-
-    @Override
-    protected String getLabelText() {
-    	return EclipseLinkUiMessages.PersistenceXmlLoggingTab_loggerLabel;
-    }
-    
-    @Override
-    protected JpaProject getJpaProject() {
-    	return getSubject().getJpaProject();
-    }
-    
-    @Override
-    protected String getSuperInterfaceName() {
-    	return Logging.ECLIPSELINK_LOGGER_CLASS_NAME;
-    }
-    
-	@Override
-	protected WritablePropertyValueModel<String> buildTextHolder() {
-		return new PropertyAspectAdapter<Logging, String>(this.getSubjectHolder(), Logging.LOGGER_PROPERTY) {
-			@Override
-			protected String buildValue_() {
-
-				String name = this.subject.getLogger();
-				if (name == null) {
-					name = LoggerComposite.this.getDefaultValue(this.subject);
-				}
-				return name;
-			}
-
-			@Override
-			protected void setValue_(String value) {
-
-				if (getDefaultValue(this.subject).equals(value)) {
-					value = null;
-				}
-				this.subject.setLogger(value);
-			}
-		};
-	}
-
-	private PropertyValueModel<String> buildDefaultLoggerHolder() {
-		return new PropertyAspectAdapter<Logging, String>(this.getSubjectHolder(), Logging.DEFAULT_LOGGER) {
-			@Override
-			protected String buildValue_() {
-				return LoggerComposite.this.getDefaultValue(this.subject);
-			}
-		};
-	}
-
-	private ListValueModel<String> buildDefaultLoggerListHolder() {
-		return new PropertyListValueModelAdapter<String>(
-			this.buildDefaultLoggerHolder()
-		);
-	}
-
-	private String buildDisplayString(String loggerName) {
-
-		switch (Logger.valueOf(loggerName)) {
-			case default_logger: {
-				return EclipseLinkUiMessages.LoggerComposite_default_logger;
-			}
-			case java_logger: {
-				return EclipseLinkUiMessages.LoggerComposite_java_logger;
-			}
-			case server_logger: {
-				return EclipseLinkUiMessages.LoggerComposite_server_logger;
-			}
-			default: {
-				return null;
-			}
-		}
-	}
-
-	private Comparator<String> buildLoggerComparator() {
-		return new Comparator<String>() {
-			public int compare(String logger1, String logger2) {
-				logger1 = buildDisplayString(logger1);
-				logger2 = buildDisplayString(logger2);
-				return Collator.getInstance().compare(logger1, logger2);
-			}
-		};
-	}
-
-	@Override
-	protected StringConverter<String> buildClassConverter() {
-		return new StringConverter<String>() {
-			public String convertToString(String value) {
-				try {
-					Logger.valueOf(value);
-					value = buildDisplayString(value);
-				}
-				catch (Exception e) {
-					// Ignore since the value is not a Logger
-				}
-				return value;
-			}
-		};
-	}
-
-	@Override
-	protected ListValueModel<String> buildClassListHolder() {
-		ArrayList<ListValueModel<String>> holders = new ArrayList<ListValueModel<String>>(2);
-		holders.add(this.buildDefaultLoggerListHolder());
-		holders.add(this.buildLoggersListHolder());
-		return new CompositeListValueModel<ListValueModel<String>, String>(holders);
-	}
-
-	private Iterator<String> buildLoggers() {
-		return new TransformationIterator<Logger, String>(CollectionTools.iterator(Logger.values())) {
-			@Override
-			protected String transform(Logger next) {
-				return next.name();
-			}
-		};
-	}
-
-	private CollectionValueModel<String> buildLoggersCollectionHolder() {
-		return new SimpleCollectionValueModel<String>(
-			CollectionTools.collection(this.buildLoggers())
-		);
-	}
-
-	private ListValueModel<String> buildLoggersListHolder() {
-		return new SortedListValueModelAdapter<String>(
-			this.buildLoggersCollectionHolder(),
-			this.buildLoggerComparator()
-		);
-	}
-
-	private String getDefaultValue(Logging subject) {
-		String defaultValue = subject.getDefaultLogger();
-
-		if (defaultValue != null) {
-			return NLS.bind(
-				EclipseLinkUiMessages.PersistenceXmlLoggingTab_defaultWithOneParam,
-				defaultValue
-			);
-		}
-		return EclipseLinkUiMessages.PersistenceXmlLoggingTab_defaultEmpty;
-	}
-	
-	@Override
-	protected void setClassName(String className) {
-		this.getSubject().setLogger(className);
-	}
-}
\ No newline at end of file
diff --git a/jpa/plugins/org.eclipse.jpt.eclipselink.ui/src/org/eclipse/jpt/eclipselink/ui/internal/persistence/logging/LoggingFileLocationComposite.java b/jpa/plugins/org.eclipse.jpt.eclipselink.ui/src/org/eclipse/jpt/eclipselink/ui/internal/persistence/logging/LoggingFileLocationComposite.java
deleted file mode 100644
index 1b926fb..0000000
--- a/jpa/plugins/org.eclipse.jpt.eclipselink.ui/src/org/eclipse/jpt/eclipselink/ui/internal/persistence/logging/LoggingFileLocationComposite.java
+++ /dev/null
@@ -1,92 +0,0 @@
-/*******************************************************************************
-* Copyright (c) 2008 Oracle. All rights reserved.
-* This program and the accompanying materials are made available under the
-* terms of the Eclipse Public License v1.0, which accompanies this distribution
-* and is available at http://www.eclipse.org/legal/epl-v10.html.
-* 
-* Contributors:
-*     Oracle - initial API and implementation
-*******************************************************************************/
-package org.eclipse.jpt.eclipselink.ui.internal.persistence.logging;
-
-import org.eclipse.jpt.eclipselink.core.internal.context.persistence.logging.Logging;
-import org.eclipse.jpt.eclipselink.ui.internal.EclipseLinkUiMessages;
-import org.eclipse.jpt.ui.internal.widgets.FolderChooserPane;
-import org.eclipse.jpt.ui.internal.widgets.Pane;
-import org.eclipse.jpt.utility.internal.model.value.PropertyAspectAdapter;
-import org.eclipse.jpt.utility.model.value.WritablePropertyValueModel;
-import org.eclipse.osgi.util.NLS;
-import org.eclipse.swt.widgets.Composite;
-
-/**
- *  LoggingFileLocationComposite 
- */
-public class LoggingFileLocationComposite extends Pane<Logging>
-{
-	public LoggingFileLocationComposite(Pane<? extends Logging> parentPane,
-	                                      Composite parent) {
-
-		super(parentPane, parent);
-	}
-
-	@Override
-	protected void initializeLayout(Composite container) {
-		
-		new FolderChooserPane<Logging>(this, container) {
-
-			@Override
-			protected WritablePropertyValueModel<String> buildTextHolder() {
-				return new PropertyAspectAdapter<Logging, String>(
-										getSubjectHolder(), Logging.LOG_FILE_LOCATION_PROPERTY) {
-					@Override
-					protected String buildValue_() {
-
-						String name = subject.getLogFileLocation();
-						if (name == null) {
-							name = defaultValue(subject);
-						}
-						return name;
-					}
-
-					@Override
-					protected void setValue_(String value) {
-
-						if (defaultValue(subject).equals(value)) {
-							value = null;
-						}
-						subject.setLogFileLocation(value);
-					}
-				};
-			}
-
-			private String defaultValue(Logging subject) {
-				String defaultValue = subject.getDefaultLogFileLocation();
-
-				if (defaultValue != null) {
-					return NLS.bind(
-						EclipseLinkUiMessages.PersistenceXmlLoggingTab_defaultWithOneParam,
-						defaultValue
-					);
-				}
-				else {
-					return EclipseLinkUiMessages.PersistenceXmlLoggingTab_defaultEmpty;
-				}
-			}
-
-			@Override
-			protected String getDialogMessage() {
-				return EclipseLinkUiMessages.LoggingFileLocationComposite_dialogMessage;
-			}
-
-			@Override
-			protected String getDialogTitle() {
-				return EclipseLinkUiMessages.LoggingFileLocationComposite_dialogTitle;
-			}
-
-			@Override
-			protected String getLabelText() {
-				return EclipseLinkUiMessages.PersistenceXmlLoggingTab_loggingFileLabel;
-			}
-		};
-	}
-}
diff --git a/jpa/plugins/org.eclipse.jpt.eclipselink.ui/src/org/eclipse/jpt/eclipselink/ui/internal/persistence/logging/LoggingLevelComposite.java b/jpa/plugins/org.eclipse.jpt.eclipselink.ui/src/org/eclipse/jpt/eclipselink/ui/internal/persistence/logging/LoggingLevelComposite.java
deleted file mode 100644
index 3b8cc24..0000000
--- a/jpa/plugins/org.eclipse.jpt.eclipselink.ui/src/org/eclipse/jpt/eclipselink/ui/internal/persistence/logging/LoggingLevelComposite.java
+++ /dev/null
@@ -1,90 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008, 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- *******************************************************************************/
-package org.eclipse.jpt.eclipselink.ui.internal.persistence.logging;
-
-import java.util.Collection;
-import org.eclipse.jpt.eclipselink.core.internal.context.persistence.logging.Logging;
-import org.eclipse.jpt.eclipselink.core.internal.context.persistence.logging.LoggingLevel;
-import org.eclipse.jpt.eclipselink.ui.internal.EclipseLinkHelpContextIds;
-import org.eclipse.jpt.eclipselink.ui.internal.EclipseLinkUiMessages;
-import org.eclipse.jpt.ui.internal.widgets.EnumFormComboViewer;
-import org.eclipse.jpt.ui.internal.widgets.FormPane;
-import org.eclipse.swt.widgets.Composite;
-
-/**
- * LoggingLevelComposite
- */
-public class LoggingLevelComposite extends FormPane<Logging>
-{
-	/**
-	 * Creates a new <code>LoggingLevelComposite</code>.
-	 * 
-	 * @param parentController
-	 *            The parent container of this one
-	 * @param parent
-	 *            The parent container
-	 */
-	public LoggingLevelComposite(
-				FormPane<? extends Logging> parentComposite, 
-				Composite parent) {
-		
-		super(parentComposite, parent);
-	}
-
-	private EnumFormComboViewer<Logging, LoggingLevel> addLoggingLevelCombo(Composite container) {
-		return new EnumFormComboViewer<Logging, LoggingLevel>(this, container) {
-			@Override
-			protected void addPropertyNames(Collection<String> propertyNames) {
-				super.addPropertyNames(propertyNames);
-				propertyNames.add(Logging.LEVEL_PROPERTY);
-			}
-
-			@Override
-			protected LoggingLevel[] getChoices() {
-				return LoggingLevel.values();
-			}
-			
-			@Override
-			protected boolean sortChoices() {
-				return false;
-			}
-			
-			@Override
-			protected LoggingLevel getDefaultValue() {
-				return this.getSubject().getDefaultLevel();
-			}
-
-			@Override
-			protected String displayString(LoggingLevel value) {
-				return this.buildDisplayString(EclipseLinkUiMessages.class, LoggingLevelComposite.this, value);
-			}
-
-			@Override
-			protected LoggingLevel getValue() {
-				return this.getSubject().getLevel();
-			}
-
-			@Override
-			protected void setValue(LoggingLevel value) {
-				this.getSubject().setLevel(value);
-			}
-		};
-	}
-
-	@Override
-	protected void initializeLayout(Composite container) {
-		this.addLabeledComposite(
-				container,
-				EclipseLinkUiMessages.PersistenceXmlLoggingTab_loggingLevelLabel,
-				this.addLoggingLevelCombo(container),
-				EclipseLinkHelpContextIds.PERSISTENCE_LOGGING_LEVEL
-		);
-	}
-}
diff --git a/jpa/plugins/org.eclipse.jpt.eclipselink.ui/src/org/eclipse/jpt/eclipselink/ui/internal/persistence/logging/PersistenceXmlLoggingTab.java b/jpa/plugins/org.eclipse.jpt.eclipselink.ui/src/org/eclipse/jpt/eclipselink/ui/internal/persistence/logging/PersistenceXmlLoggingTab.java
deleted file mode 100644
index 5b7319a..0000000
--- a/jpa/plugins/org.eclipse.jpt.eclipselink.ui/src/org/eclipse/jpt/eclipselink/ui/internal/persistence/logging/PersistenceXmlLoggingTab.java
+++ /dev/null
@@ -1,84 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- *******************************************************************************/
-package org.eclipse.jpt.eclipselink.ui.internal.persistence.logging;
-
-import org.eclipse.jpt.eclipselink.core.internal.context.persistence.logging.Logging;
-import org.eclipse.jpt.eclipselink.ui.internal.EclipseLinkHelpContextIds;
-import org.eclipse.jpt.eclipselink.ui.internal.EclipseLinkUiMessages;
-import org.eclipse.jpt.ui.WidgetFactory;
-import org.eclipse.jpt.ui.details.JpaPageComposite;
-import org.eclipse.jpt.ui.internal.widgets.FormPane;
-import org.eclipse.jpt.utility.model.value.PropertyValueModel;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.graphics.Image;
-import org.eclipse.swt.layout.GridData;
-import org.eclipse.swt.layout.GridLayout;
-import org.eclipse.swt.widgets.Composite;
-
-/**
- * PersistenceXmlLoggingTab
- */
-public class PersistenceXmlLoggingTab
-	extends FormPane<Logging>
-	implements JpaPageComposite
-{
-	// ********** constructors/initialization **********
-	public PersistenceXmlLoggingTab(
-				PropertyValueModel<Logging> subjectHolder, 
-				Composite parent, 
-				WidgetFactory widgetFactory) {
-		
-		super(subjectHolder, parent, widgetFactory);
-	}
-
-	@Override
-	protected void initializeLayout(Composite container) {
-		new EclipseLinkLoggingComposite(this, container);
-	}
-
-	// ********** JpaPageComposite implementation **********
-
-	public String getHelpID() {
-		return EclipseLinkHelpContextIds.PERSISTENCE_LOGGING;
-	}
-
-	public Image getPageImage() {
-		return null;
-	}
-
-	public String getPageText() {
-		return EclipseLinkUiMessages.PersistenceXmlLoggingTab_title;
-	}
-
-	// ********** Layout **********
-	@Override
-	protected Composite addContainer(Composite parent) {
-		GridLayout layout = new GridLayout(1, true);
-		layout.marginHeight = 0;
-		layout.marginWidth = 0;
-		layout.marginTop = 0;
-		layout.marginLeft = 0;
-		layout.marginBottom = 0;
-		layout.marginRight = 0;
-		layout.verticalSpacing = 15;
-		Composite container = this.addPane(parent, layout);
-		this.updateGridData(container);
-		return container;
-	}
-
-	private void updateGridData(Composite container) {
-		GridData gridData = new GridData();
-		gridData.grabExcessHorizontalSpace = true;
-		gridData.grabExcessVerticalSpace = true;
-		gridData.horizontalAlignment = SWT.FILL;
-		gridData.verticalAlignment = SWT.FILL;
-		container.setLayoutData(gridData);
-	}
-}
diff --git a/jpa/plugins/org.eclipse.jpt.eclipselink.ui/src/org/eclipse/jpt/eclipselink/ui/internal/persistence/logging/SessionComposite.java b/jpa/plugins/org.eclipse.jpt.eclipselink.ui/src/org/eclipse/jpt/eclipselink/ui/internal/persistence/logging/SessionComposite.java
deleted file mode 100644
index 55c31aa..0000000
--- a/jpa/plugins/org.eclipse.jpt.eclipselink.ui/src/org/eclipse/jpt/eclipselink/ui/internal/persistence/logging/SessionComposite.java
+++ /dev/null
@@ -1,96 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008, 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- *
- * Contributors:
- *     Oracle - initial API and implementation
- *******************************************************************************/
-package org.eclipse.jpt.eclipselink.ui.internal.persistence.logging;
-
-import org.eclipse.jpt.eclipselink.core.internal.context.persistence.logging.Logging;
-import org.eclipse.jpt.eclipselink.ui.internal.EclipseLinkHelpContextIds;
-import org.eclipse.jpt.eclipselink.ui.internal.EclipseLinkUiMessages;
-import org.eclipse.jpt.ui.internal.widgets.FormPane;
-import org.eclipse.jpt.utility.internal.model.value.PropertyAspectAdapter;
-import org.eclipse.jpt.utility.internal.model.value.TransformationPropertyValueModel;
-import org.eclipse.jpt.utility.model.value.PropertyValueModel;
-import org.eclipse.jpt.utility.model.value.WritablePropertyValueModel;
-import org.eclipse.osgi.util.NLS;
-import org.eclipse.swt.widgets.Composite;
-
-/**
- * SessionComposite
- */
-public class SessionComposite extends FormPane<Logging>
-{
-	/**
-	 * Creates a new <code>SessionComposite</code>.
-	 *
-	 * @param parentController
-	 *            The parent container of this one
-	 * @param parent
-	 *            The parent container
-	 */
-	public SessionComposite(
-					FormPane<? extends Logging> parentComposite,
-					Composite parent) {
-
-		super(parentComposite, parent);
-	}
-
-	private WritablePropertyValueModel<Boolean> buildSessionHolder() {
-		return new PropertyAspectAdapter<Logging, Boolean>(getSubjectHolder(), Logging.SESSION_PROPERTY) {
-			@Override
-			protected Boolean buildValue_() {
-				return subject.getSession();
-			}
-
-			@Override
-			protected void setValue_(Boolean value) {
-				subject.setSession(value);
-			}
-
-			@Override
-			protected void subjectChanged() {
-				Object oldValue = this.getValue();
-				super.subjectChanged();
-				Object newValue = this.getValue();
-
-				// Make sure the default value is appended to the text
-				if (oldValue == newValue && newValue == null) {
-					this.fireAspectChange(Boolean.TRUE, newValue);
-				}
-			}
-		};
-	}
-
-	private PropertyValueModel<String> buildSessionStringHolder() {
-		return new TransformationPropertyValueModel<Boolean, String>(buildSessionHolder()) {
-			@Override
-			protected String transform(Boolean value) {
-				if ((getSubject() != null) && (value == null)) {
-					Boolean defaultValue = getSubject().getDefaultSession();
-					if (defaultValue != null) {
-						String defaultStringValue = defaultValue ? EclipseLinkUiMessages.Boolean_True : EclipseLinkUiMessages.Boolean_False;
-						return NLS.bind(EclipseLinkUiMessages.PersistenceXmlLoggingTab_sessionLabelDefault, defaultStringValue);
-					}
-				}
-				return EclipseLinkUiMessages.PersistenceXmlLoggingTab_sessionLabel;
-			}
-		};
-	}
-
-	@Override
-	protected void initializeLayout(Composite container) {
-
-		this.addTriStateCheckBoxWithDefault(
-			container,
-			EclipseLinkUiMessages.PersistenceXmlLoggingTab_sessionLabel,
-			this.buildSessionHolder(),
-			this.buildSessionStringHolder(),
-			EclipseLinkHelpContextIds.PERSISTENCE_LOGGING_SESSION
-		);
-	}
-}
diff --git a/jpa/plugins/org.eclipse.jpt.eclipselink.ui/src/org/eclipse/jpt/eclipselink/ui/internal/persistence/logging/ThreadComposite.java b/jpa/plugins/org.eclipse.jpt.eclipselink.ui/src/org/eclipse/jpt/eclipselink/ui/internal/persistence/logging/ThreadComposite.java
deleted file mode 100644
index dcbebec..0000000
--- a/jpa/plugins/org.eclipse.jpt.eclipselink.ui/src/org/eclipse/jpt/eclipselink/ui/internal/persistence/logging/ThreadComposite.java
+++ /dev/null
@@ -1,96 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008, 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- *
- * Contributors:
- *     Oracle - initial API and implementation
- *******************************************************************************/
-package org.eclipse.jpt.eclipselink.ui.internal.persistence.logging;
-
-import org.eclipse.jpt.eclipselink.core.internal.context.persistence.logging.Logging;
-import org.eclipse.jpt.eclipselink.ui.internal.EclipseLinkHelpContextIds;
-import org.eclipse.jpt.eclipselink.ui.internal.EclipseLinkUiMessages;
-import org.eclipse.jpt.ui.internal.widgets.FormPane;
-import org.eclipse.jpt.utility.internal.model.value.PropertyAspectAdapter;
-import org.eclipse.jpt.utility.internal.model.value.TransformationPropertyValueModel;
-import org.eclipse.jpt.utility.model.value.PropertyValueModel;
-import org.eclipse.jpt.utility.model.value.WritablePropertyValueModel;
-import org.eclipse.osgi.util.NLS;
-import org.eclipse.swt.widgets.Composite;
-
-/**
- * ThreadComposite
- */
-public class ThreadComposite extends FormPane<Logging>
-{
-	/**
-	 * Creates a new <code>ThreadComposite</code>.
-	 *
-	 * @param parentController
-	 *            The parent container of this one
-	 * @param parent
-	 *            The parent container
-	 */
-	public ThreadComposite(
-					FormPane<? extends Logging> parentComposite,
-					Composite parent) {
-
-		super(parentComposite, parent);
-	}
-
-	private WritablePropertyValueModel<Boolean> buildThreadHolder() {
-		return new PropertyAspectAdapter<Logging, Boolean>(getSubjectHolder(), Logging.THREAD_PROPERTY) {
-			@Override
-			protected Boolean buildValue_() {
-				return subject.getThread();
-			}
-
-			@Override
-			protected void setValue_(Boolean value) {
-				subject.setThread(value);
-			}
-
-			@Override
-			protected void subjectChanged() {
-				Object oldValue = this.getValue();
-				super.subjectChanged();
-				Object newValue = this.getValue();
-
-				// Make sure the default value is appended to the text
-				if (oldValue == newValue && newValue == null) {
-					this.fireAspectChange(Boolean.TRUE, newValue);
-				}
-			}
-		};
-	}
-
-	private PropertyValueModel<String> buildThreadStringHolder() {
-		return new TransformationPropertyValueModel<Boolean, String>(buildThreadHolder()) {
-			@Override
-			protected String transform(Boolean value) {
-				if ((getSubject() != null) && (value == null)) {
-					Boolean defaultValue = getSubject().getDefaultThread();
-					if (defaultValue != null) {
-						String defaultStringValue = defaultValue ? EclipseLinkUiMessages.Boolean_True : EclipseLinkUiMessages.Boolean_False;
-						return NLS.bind(EclipseLinkUiMessages.PersistenceXmlLoggingTab_threadLabelDefault, defaultStringValue);
-					}
-				}
-				return EclipseLinkUiMessages.PersistenceXmlLoggingTab_threadLabel;
-			}
-		};
-	}
-
-	@Override
-	protected void initializeLayout(Composite container) {
-
-		this.addTriStateCheckBoxWithDefault(
-			container,
-			EclipseLinkUiMessages.PersistenceXmlLoggingTab_threadLabel,
-			this.buildThreadHolder(),
-			this.buildThreadStringHolder(),
-			EclipseLinkHelpContextIds.PERSISTENCE_LOGGING_THREAD
-		);
-	}
-}
diff --git a/jpa/plugins/org.eclipse.jpt.eclipselink.ui/src/org/eclipse/jpt/eclipselink/ui/internal/persistence/logging/TimestampComposite.java b/jpa/plugins/org.eclipse.jpt.eclipselink.ui/src/org/eclipse/jpt/eclipselink/ui/internal/persistence/logging/TimestampComposite.java
deleted file mode 100644
index 84d1ce0..0000000
--- a/jpa/plugins/org.eclipse.jpt.eclipselink.ui/src/org/eclipse/jpt/eclipselink/ui/internal/persistence/logging/TimestampComposite.java
+++ /dev/null
@@ -1,96 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008, 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- *
- * Contributors:
- *     Oracle - initial API and implementation
- *******************************************************************************/
-package org.eclipse.jpt.eclipselink.ui.internal.persistence.logging;
-
-import org.eclipse.jpt.eclipselink.core.internal.context.persistence.logging.Logging;
-import org.eclipse.jpt.eclipselink.ui.internal.EclipseLinkHelpContextIds;
-import org.eclipse.jpt.eclipselink.ui.internal.EclipseLinkUiMessages;
-import org.eclipse.jpt.ui.internal.widgets.FormPane;
-import org.eclipse.jpt.utility.internal.model.value.PropertyAspectAdapter;
-import org.eclipse.jpt.utility.internal.model.value.TransformationPropertyValueModel;
-import org.eclipse.jpt.utility.model.value.PropertyValueModel;
-import org.eclipse.jpt.utility.model.value.WritablePropertyValueModel;
-import org.eclipse.osgi.util.NLS;
-import org.eclipse.swt.widgets.Composite;
-
-/**
- * TimestampComposite
- */
-public class TimestampComposite extends FormPane<Logging>
-{
-	/**
-	 * Creates a new <code>TimestampComposite</code>.
-	 *
-	 * @param parentController
-	 *            The parent container of this one
-	 * @param parent
-	 *            The parent container
-	 */
-	public TimestampComposite(
-					FormPane<? extends Logging> parentComposite,
-					Composite parent) {
-
-		super(parentComposite, parent);
-	}
-
-	private WritablePropertyValueModel<Boolean> buildTimestampHolder() {
-		return new PropertyAspectAdapter<Logging, Boolean>(getSubjectHolder(), Logging.TIMESTAMP_PROPERTY) {
-			@Override
-			protected Boolean buildValue_() {
-				return subject.getTimestamp();
-			}
-
-			@Override
-			protected void setValue_(Boolean value) {
-				subject.setTimestamp(value);
-			}
-
-			@Override
-			protected void subjectChanged() {
-				Object oldValue = this.getValue();
-				super.subjectChanged();
-				Object newValue = this.getValue();
-
-				// Make sure the default value is appended to the text
-				if (oldValue == newValue && newValue == null) {
-					this.fireAspectChange(Boolean.TRUE, newValue);
-				}
-			}
-		};
-	}
-
-	private PropertyValueModel<String> buildTimestampStringHolder() {
-		return new TransformationPropertyValueModel<Boolean, String>(buildTimestampHolder()) {
-			@Override
-			protected String transform(Boolean value) {
-				if ((getSubject() != null) && (value == null)) {
-					Boolean defaultValue = getSubject().getDefaultTimestamp();
-					if (defaultValue != null) {
-						String defaultStringValue = defaultValue ? EclipseLinkUiMessages.Boolean_True : EclipseLinkUiMessages.Boolean_False;
-						return NLS.bind(EclipseLinkUiMessages.PersistenceXmlLoggingTab_timestampLabelDefault, defaultStringValue);
-					}
-				}
-				return EclipseLinkUiMessages.PersistenceXmlLoggingTab_timestampLabel;
-			}
-		};
-	}
-
-	@Override
-	protected void initializeLayout(Composite container) {
-
-		this.addTriStateCheckBoxWithDefault(
-			container,
-			EclipseLinkUiMessages.PersistenceXmlLoggingTab_timestampLabel,
-			this.buildTimestampHolder(),
-			this.buildTimestampStringHolder(),
-			EclipseLinkHelpContextIds.PERSISTENCE_LOGGING_TIMESTAMP
-		);
-	}
-}
diff --git a/jpa/plugins/org.eclipse.jpt.eclipselink.ui/src/org/eclipse/jpt/eclipselink/ui/internal/persistence/options/EclipseLinkOptionsComposite.java b/jpa/plugins/org.eclipse.jpt.eclipselink.ui/src/org/eclipse/jpt/eclipselink/ui/internal/persistence/options/EclipseLinkOptionsComposite.java
deleted file mode 100644
index fed02d8..0000000
--- a/jpa/plugins/org.eclipse.jpt.eclipselink.ui/src/org/eclipse/jpt/eclipselink/ui/internal/persistence/options/EclipseLinkOptionsComposite.java
+++ /dev/null
@@ -1,83 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- *******************************************************************************/
-package org.eclipse.jpt.eclipselink.ui.internal.persistence.options;
-
-import org.eclipse.jpt.eclipselink.core.internal.context.persistence.options.Options;
-import org.eclipse.jpt.eclipselink.ui.internal.EclipseLinkUiMessages;
-import org.eclipse.jpt.ui.internal.widgets.FormPane;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.layout.GridData;
-import org.eclipse.swt.widgets.Composite;
-
-/**
- * EclipseLinkOptionsComposite
- */
-public class EclipseLinkOptionsComposite
-	extends FormPane<Options>
-{
-	public EclipseLinkOptionsComposite(
-					FormPane<Options> subjectHolder, 
-					Composite container) {
-		super(subjectHolder, container, false);
-	}
-
-	@Override
-	protected void initializeLayout(Composite parent) {
-		this.initializeSessionOptionsPane(parent);
-		this.initializeMiscellaneousPane(parent);
-	}
-	
-	private void initializeSessionOptionsPane(Composite parent) {
-		Composite composite = this.addSection(parent, 
-				EclipseLinkUiMessages.PersistenceXmlOptionsTab_sessionSectionTitle,
-				EclipseLinkUiMessages.PersistenceXmlOptionsTab_sessionSectionDescription);
-		
-		this.updateGridData(composite);
-		this.updateGridData(composite.getParent());
-
-		new SessionNameComposite(this, composite);
-
-		new SessionsXmlComposite(this, composite);
-		
-		new TargetDatabaseComposite(this, composite);
-		
-		new TargetServerComposite(this, composite);
-		
-		new EventListenerComposite(this, composite);
-		
-		new IncludeDescriptorQueriesComposite(this, composite);
-		
-		return;
-	}
-	
-	private void initializeMiscellaneousPane(Composite container) {	
-		
-		this.updateGridData(container);
-		this.updateGridData(container.getParent());
-		
-		Composite composite = this.addSection(container, 
-				EclipseLinkUiMessages.PersistenceXmlOptionsTab_miscellaneousSectionTitle,
-				EclipseLinkUiMessages.PersistenceXmlOptionsTab_miscellaneousSectionDescription);
-		
-		this.updateGridData(composite);
-		this.updateGridData(composite.getParent());
-
-		new TemporalMutableComposite(this, composite);
-	}
-
-	private void updateGridData(Composite container) {
-		GridData gridData = new GridData();
-		gridData.grabExcessHorizontalSpace = true;
-		gridData.grabExcessVerticalSpace = true;
-		gridData.horizontalAlignment = SWT.FILL;
-		gridData.verticalAlignment = SWT.FILL;
-		container.setLayoutData(gridData);
-	}
-}
diff --git a/jpa/plugins/org.eclipse.jpt.eclipselink.ui/src/org/eclipse/jpt/eclipselink/ui/internal/persistence/options/EventListenerComposite.java b/jpa/plugins/org.eclipse.jpt.eclipselink.ui/src/org/eclipse/jpt/eclipselink/ui/internal/persistence/options/EventListenerComposite.java
deleted file mode 100644
index 748dce7..0000000
--- a/jpa/plugins/org.eclipse.jpt.eclipselink.ui/src/org/eclipse/jpt/eclipselink/ui/internal/persistence/options/EventListenerComposite.java
+++ /dev/null
@@ -1,93 +0,0 @@
-/*******************************************************************************
-* Copyright (c) 2008 Oracle. All rights reserved.
-* This program and the accompanying materials are made available under the
-* terms of the Eclipse Public License v1.0, which accompanies this distribution
-* and is available at http://www.eclipse.org/legal/epl-v10.html.
-* 
-* Contributors:
-*     Oracle - initial API and implementation
-*******************************************************************************/
-package org.eclipse.jpt.eclipselink.ui.internal.persistence.options;
-
-import org.eclipse.jpt.core.JpaProject;
-import org.eclipse.jpt.eclipselink.core.internal.context.persistence.options.Options;
-import org.eclipse.jpt.eclipselink.ui.internal.EclipseLinkUiMessages;
-import org.eclipse.jpt.ui.internal.widgets.ClassChooserPane;
-import org.eclipse.jpt.ui.internal.widgets.Pane;
-import org.eclipse.jpt.utility.internal.model.value.PropertyAspectAdapter;
-import org.eclipse.jpt.utility.model.value.WritablePropertyValueModel;
-import org.eclipse.swt.widgets.Composite;
-
-/**
- *  EventListenerComposite
- */
-public class EventListenerComposite extends Pane<Options>
-{
-	/**
-	 * Creates a new <code>EventListenerComposite</code>.
-	 *
-	 * @param parentPane The parent pane of this one
-	 * @param parent The parent container
-	 */
-	public EventListenerComposite(Pane<? extends Options> parentPane,
-                           Composite parent) {
-
-		super(parentPane, parent);
-	}
-
-	private ClassChooserPane<Options> initializeClassChooser(Composite container) {
-
-		return new ClassChooserPane<Options>(this, container) {
-
-			@Override
-			protected WritablePropertyValueModel<String> buildTextHolder() {
-				return new PropertyAspectAdapter<Options, String>(
-							this.getSubjectHolder(), Options.SESSION_EVENT_LISTENER_PROPERTY) {
-					@Override
-					protected String buildValue_() {
-						return this.subject.getEventListener();
-					}
-
-					@Override
-					protected void setValue_(String value) {
-
-						if (value.length() == 0) {
-							value = null;
-						}
-						this.subject.setEventListener(value);
-					}
-				};
-			}
-
-			@Override
-			protected String getClassName() {
-				return this.getSubject().getEventListener();
-			}
-
-			@Override
-			protected String getLabelText() {
-				return EclipseLinkUiMessages.PersistenceXmlOptionsTab_eventListenerLabel;
-			}
-			
-			@Override
-			protected JpaProject getJpaProject() {
-				return getSubject().getJpaProject();
-			}
-
-			@Override
-			protected void setClassName(String className) {
-				this.getSubject().setEventListener(className);
-			}
-			
-			@Override
-			protected String getSuperInterfaceName() {
-				return Options.ECLIPSELINK_EVENT_LISTENER_CLASS_NAME;
-			}
-		};
-	}
-
-	@Override
-	protected void initializeLayout(Composite container) {
-		this.initializeClassChooser(container);
-	}
-}
diff --git a/jpa/plugins/org.eclipse.jpt.eclipselink.ui/src/org/eclipse/jpt/eclipselink/ui/internal/persistence/options/IncludeDescriptorQueriesComposite.java b/jpa/plugins/org.eclipse.jpt.eclipselink.ui/src/org/eclipse/jpt/eclipselink/ui/internal/persistence/options/IncludeDescriptorQueriesComposite.java
deleted file mode 100644
index 950f38e..0000000
--- a/jpa/plugins/org.eclipse.jpt.eclipselink.ui/src/org/eclipse/jpt/eclipselink/ui/internal/persistence/options/IncludeDescriptorQueriesComposite.java
+++ /dev/null
@@ -1,96 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008, 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- *
- * Contributors:
- *     Oracle - initial API and implementation
- *******************************************************************************/
-package org.eclipse.jpt.eclipselink.ui.internal.persistence.options;
-
-import org.eclipse.jpt.eclipselink.core.internal.context.persistence.options.Options;
-import org.eclipse.jpt.eclipselink.ui.internal.EclipseLinkHelpContextIds;
-import org.eclipse.jpt.eclipselink.ui.internal.EclipseLinkUiMessages;
-import org.eclipse.jpt.ui.internal.widgets.FormPane;
-import org.eclipse.jpt.utility.internal.model.value.PropertyAspectAdapter;
-import org.eclipse.jpt.utility.internal.model.value.TransformationPropertyValueModel;
-import org.eclipse.jpt.utility.model.value.PropertyValueModel;
-import org.eclipse.jpt.utility.model.value.WritablePropertyValueModel;
-import org.eclipse.osgi.util.NLS;
-import org.eclipse.swt.widgets.Composite;
-
-/**
- * IncludeDescriptorQueriesComposite
- */
-public class IncludeDescriptorQueriesComposite extends FormPane<Options>
-{
-	/**
-	 * Creates a new <code>IncludeDescriptorQueriesComposite</code>.
-	 *
-	 * @param parentController
-	 *            The parent container of this one
-	 * @param parent
-	 *            The parent container
-	 */
-	public IncludeDescriptorQueriesComposite(
-					FormPane<? extends Options> parentComposite,
-					Composite parent) {
-
-		super(parentComposite, parent);
-	}
-
-	private WritablePropertyValueModel<Boolean> buildIncludeDescriptorQueriesHolder() {
-		return new PropertyAspectAdapter<Options, Boolean>(getSubjectHolder(), Options.SESSION_INCLUDE_DESCRIPTOR_QUERIES_PROPERTY) {
-			@Override
-			protected Boolean buildValue_() {
-				return subject.getIncludeDescriptorQueries();
-			}
-
-			@Override
-			protected void setValue_(Boolean value) {
-				subject.setIncludeDescriptorQueries(value);
-			}
-
-			@Override
-			protected void subjectChanged() {
-				Object oldValue = this.getValue();
-				super.subjectChanged();
-				Object newValue = this.getValue();
-
-				// Make sure the default value is appended to the text
-				if (oldValue == newValue && newValue == null) {
-					this.fireAspectChange(Boolean.TRUE, newValue);
-				}
-			}
-		};
-	}
-
-	private PropertyValueModel<String> buildIncludeDescriptorQueriesStringHolder() {
-		return new TransformationPropertyValueModel<Boolean, String>(buildIncludeDescriptorQueriesHolder()) {
-			@Override
-			protected String transform(Boolean value) {
-				if ((getSubject() != null) && (value == null)) {
-					Boolean defaultValue = getSubject().getDefaultIncludeDescriptorQueries();
-					if (defaultValue != null) {
-						String defaultStringValue = defaultValue ? EclipseLinkUiMessages.Boolean_True : EclipseLinkUiMessages.Boolean_False;
-						return NLS.bind(EclipseLinkUiMessages.PersistenceXmlOptionsTab_includeDescriptorQueriesLabelDefault, defaultStringValue);
-					}
-				}
-				return EclipseLinkUiMessages.PersistenceXmlOptionsTab_includeDescriptorQueriesLabel;
-			}
-		};
-	}
-
-	@Override
-	protected void initializeLayout(Composite container) {
-
-		this.addTriStateCheckBoxWithDefault(
-			container,
-			EclipseLinkUiMessages.PersistenceXmlOptionsTab_includeDescriptorQueriesLabel,
-			this.buildIncludeDescriptorQueriesHolder(),
-			this.buildIncludeDescriptorQueriesStringHolder(),
-			EclipseLinkHelpContextIds.PERSISTENCE_OPTIONS
-		);
-	}
-}
diff --git a/jpa/plugins/org.eclipse.jpt.eclipselink.ui/src/org/eclipse/jpt/eclipselink/ui/internal/persistence/options/PersistenceXmlOptionsTab.java b/jpa/plugins/org.eclipse.jpt.eclipselink.ui/src/org/eclipse/jpt/eclipselink/ui/internal/persistence/options/PersistenceXmlOptionsTab.java
deleted file mode 100644
index ee9eedc..0000000
--- a/jpa/plugins/org.eclipse.jpt.eclipselink.ui/src/org/eclipse/jpt/eclipselink/ui/internal/persistence/options/PersistenceXmlOptionsTab.java
+++ /dev/null
@@ -1,84 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- *******************************************************************************/
-package org.eclipse.jpt.eclipselink.ui.internal.persistence.options;
-
-import org.eclipse.jpt.eclipselink.core.internal.context.persistence.options.Options;
-import org.eclipse.jpt.eclipselink.ui.internal.EclipseLinkHelpContextIds;
-import org.eclipse.jpt.eclipselink.ui.internal.EclipseLinkUiMessages;
-import org.eclipse.jpt.ui.WidgetFactory;
-import org.eclipse.jpt.ui.details.JpaPageComposite;
-import org.eclipse.jpt.ui.internal.widgets.FormPane;
-import org.eclipse.jpt.utility.model.value.PropertyValueModel;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.graphics.Image;
-import org.eclipse.swt.layout.GridData;
-import org.eclipse.swt.layout.GridLayout;
-import org.eclipse.swt.widgets.Composite;
-
-/**
- * PersistenceXmlOptionsTab
- */
-public class PersistenceXmlOptionsTab
-	extends FormPane<Options>
-	implements JpaPageComposite
-{
-	// ********** constructors/initialization **********
-	public PersistenceXmlOptionsTab(
-				PropertyValueModel<Options> subjectHolder, 
-				Composite parent, 
-				WidgetFactory widgetFactory) {
-		
-		super(subjectHolder, parent, widgetFactory);
-	}
-
-	@Override
-	protected void initializeLayout(Composite container) {
-		new EclipseLinkOptionsComposite(this, container);
-	}
-
-	// ********** JpaPageComposite implementation **********
-
-	public String getHelpID() {
-		return EclipseLinkHelpContextIds.PERSISTENCE_OPTIONS;
-	}
-
-	public Image getPageImage() {
-		return null;
-	}
-
-	public String getPageText() {
-		return EclipseLinkUiMessages.PersistenceXmlOptionsTab_title;
-	}
-
-	// ********** Layout **********
-	@Override
-	protected Composite addContainer(Composite parent) {
-		GridLayout layout = new GridLayout(1, true);
-		layout.marginHeight = 0;
-		layout.marginWidth = 0;
-		layout.marginTop = 0;
-		layout.marginLeft = 0;
-		layout.marginBottom = 0;
-		layout.marginRight = 0;
-		layout.verticalSpacing = 15;
-		Composite container = this.addPane(parent, layout);
-		this.updateGridData(container);
-		return container;
-	}
-
-	private void updateGridData(Composite container) {
-		GridData gridData = new GridData();
-		gridData.grabExcessHorizontalSpace = true;
-		gridData.grabExcessVerticalSpace = true;
-		gridData.horizontalAlignment = SWT.FILL;
-		gridData.verticalAlignment = SWT.FILL;
-		container.setLayoutData(gridData);
-	}
-}
diff --git a/jpa/plugins/org.eclipse.jpt.eclipselink.ui/src/org/eclipse/jpt/eclipselink/ui/internal/persistence/options/SessionNameComposite.java b/jpa/plugins/org.eclipse.jpt.eclipselink.ui/src/org/eclipse/jpt/eclipselink/ui/internal/persistence/options/SessionNameComposite.java
deleted file mode 100644
index 5526d5b..0000000
--- a/jpa/plugins/org.eclipse.jpt.eclipselink.ui/src/org/eclipse/jpt/eclipselink/ui/internal/persistence/options/SessionNameComposite.java
+++ /dev/null
@@ -1,111 +0,0 @@
-/*******************************************************************************
-* Copyright (c) 2008, 2009 Oracle. All rights reserved.
-* This program and the accompanying materials are made available under the
-* terms of the Eclipse Public License v1.0, which accompanies this distribution
-* and is available at http://www.eclipse.org/legal/epl-v10.html.
-* 
-* Contributors:
-*     Oracle - initial API and implementation
-*******************************************************************************/
-package org.eclipse.jpt.eclipselink.ui.internal.persistence.options;
-
-import org.eclipse.jpt.eclipselink.core.internal.context.persistence.options.Options;
-import org.eclipse.jpt.eclipselink.ui.internal.EclipseLinkHelpContextIds;
-import org.eclipse.jpt.eclipselink.ui.internal.EclipseLinkUiMessages;
-import org.eclipse.jpt.ui.internal.util.SWTUtil;
-import org.eclipse.jpt.ui.internal.widgets.Pane;
-import org.eclipse.jpt.utility.internal.model.value.PropertyAspectAdapter;
-import org.eclipse.jpt.utility.internal.model.value.PropertyListValueModelAdapter;
-import org.eclipse.jpt.utility.model.value.ListValueModel;
-import org.eclipse.jpt.utility.model.value.PropertyValueModel;
-import org.eclipse.jpt.utility.model.value.WritablePropertyValueModel;
-import org.eclipse.osgi.util.NLS;
-import org.eclipse.swt.custom.CCombo;
-import org.eclipse.swt.widgets.Composite;
-
-/**
- *  SessionNameComposite
- */
-public class SessionNameComposite extends Pane<Options>
-{
-	/**
-	 * Creates a new <code>SessionNameComposite</code>.
-	 *
-	 * @param parentPane The parent container of this one
-	 * @param parent The parent container
-	 */
-	public SessionNameComposite(
-								Pane<? extends Options> parentPane,
-	                           Composite parent) {
-
-		super(parentPane, parent);
-	}
-
-	private PropertyValueModel<String> buildDefaultSessionNameHolder() {
-		return new PropertyAspectAdapter<Options, String>(this.getSubjectHolder(), Options.DEFAULT_SESSION_NAME) {
-			@Override
-			protected String buildValue_() {
-				return SessionNameComposite.this.getDefaultValue(subject);
-			}
-		};
-	}
-
-	private ListValueModel<String> buildDefaultSessionNameListHolder() {
-		return new PropertyListValueModelAdapter<String>(
-			this.buildDefaultSessionNameHolder()
-		);
-	}
-
-	private WritablePropertyValueModel<String> buildSessionNameHolder() {
-		return new PropertyAspectAdapter<Options, String>(this.getSubjectHolder(), Options.SESSION_NAME_PROPERTY) {
-			@Override
-			protected String buildValue_() {
-
-				String name = subject.getSessionName();
-				if (name == null) {
-					name = SessionNameComposite.this.getDefaultValue(subject);
-				}
-				return name;
-			}
-
-			@Override
-			protected void setValue_(String value) {
-
-				if (getDefaultValue(subject).equals(value)) {
-					value = null;
-				}
-				subject.setSessionName(value);
-			}
-		};
-	}
-
-	private String getDefaultValue(Options subject) {
-		String defaultValue = subject.getDefaultSessionName();
-
-		if (defaultValue != null) {
-			return NLS.bind(
-				EclipseLinkUiMessages.PersistenceXmlOptionsTab_defaultWithOneParam,
-				defaultValue
-			);
-		}
-		else {
-			return EclipseLinkUiMessages.PersistenceXmlOptionsTab_defaultEmpty;
-		}
-	}
-
-	/*
-	 * (non-Javadoc)
-	 */
-	@Override
-	protected void initializeLayout(Composite container) {
-
-		CCombo combo = addLabeledEditableCCombo(
-			container,
-			EclipseLinkUiMessages.PersistenceXmlOptionsTab_sessionName,
-			this.buildDefaultSessionNameListHolder(),
-			this.buildSessionNameHolder(),
-			EclipseLinkHelpContextIds.PERSISTENCE_OPTIONS_SESSION_NAME
-		);
-		SWTUtil.attachDefaultValueHandler(combo);
-	}
-}
diff --git a/jpa/plugins/org.eclipse.jpt.eclipselink.ui/src/org/eclipse/jpt/eclipselink/ui/internal/persistence/options/SessionsXmlComposite.java b/jpa/plugins/org.eclipse.jpt.eclipselink.ui/src/org/eclipse/jpt/eclipselink/ui/internal/persistence/options/SessionsXmlComposite.java
deleted file mode 100644
index 4413082..0000000
--- a/jpa/plugins/org.eclipse.jpt.eclipselink.ui/src/org/eclipse/jpt/eclipselink/ui/internal/persistence/options/SessionsXmlComposite.java
+++ /dev/null
@@ -1,111 +0,0 @@
-/*******************************************************************************
-* Copyright (c) 2008, 2009 Oracle. All rights reserved.
-* This program and the accompanying materials are made available under the
-* terms of the Eclipse Public License v1.0, which accompanies this distribution
-* and is available at http://www.eclipse.org/legal/epl-v10.html.
-* 
-* Contributors:
-*     Oracle - initial API and implementation
-*******************************************************************************/
-package org.eclipse.jpt.eclipselink.ui.internal.persistence.options;
-
-import org.eclipse.jpt.eclipselink.core.internal.context.persistence.options.Options;
-import org.eclipse.jpt.eclipselink.ui.internal.EclipseLinkHelpContextIds;
-import org.eclipse.jpt.eclipselink.ui.internal.EclipseLinkUiMessages;
-import org.eclipse.jpt.ui.internal.util.SWTUtil;
-import org.eclipse.jpt.ui.internal.widgets.Pane;
-import org.eclipse.jpt.utility.internal.model.value.PropertyAspectAdapter;
-import org.eclipse.jpt.utility.internal.model.value.PropertyListValueModelAdapter;
-import org.eclipse.jpt.utility.model.value.ListValueModel;
-import org.eclipse.jpt.utility.model.value.PropertyValueModel;
-import org.eclipse.jpt.utility.model.value.WritablePropertyValueModel;
-import org.eclipse.osgi.util.NLS;
-import org.eclipse.swt.custom.CCombo;
-import org.eclipse.swt.widgets.Composite;
-
-/**
- *  SessionsXmlComposite
- */
-public class SessionsXmlComposite extends Pane<Options>
-{
-	/**
-	 * Creates a new <code>SessionsXmlComposite</code>.
-	 *
-	 * @param parentPane The parent container of this one
-	 * @param parent The parent container
-	 */
-	public SessionsXmlComposite(
-								Pane<? extends Options> parentPane,
-	                           Composite parent) {
-
-		super(parentPane, parent);
-	}
-
-	private PropertyValueModel<String> buildDefaultSessionsXmlFileNameHolder() {
-		return new PropertyAspectAdapter<Options, String>(this.getSubjectHolder(), Options.DEFAULT_SESSIONS_XML) {
-			@Override
-			protected String buildValue_() {
-				return SessionsXmlComposite.this.getDefaultValue(subject);
-			}
-		};
-	}
-
-	private ListValueModel<String> buildDefaultSessionsXmlFileNameListHolder() {
-		return new PropertyListValueModelAdapter<String>(
-			this.buildDefaultSessionsXmlFileNameHolder()
-		);
-	}
-
-	private WritablePropertyValueModel<String> buildSessionsXmlFileNameHolder() {
-		return new PropertyAspectAdapter<Options, String>(this.getSubjectHolder(), Options.SESSIONS_XML_PROPERTY) {
-			@Override
-			protected String buildValue_() {
-
-				String name = subject.getSessionsXml();
-				if (name == null) {
-					name = SessionsXmlComposite.this.getDefaultValue(subject);
-				}
-				return name;
-			}
-
-			@Override
-			protected void setValue_(String value) {
-
-				if (getDefaultValue(subject).equals(value)) {
-					value = null;
-				}
-				subject.setSessionsXml(value);
-			}
-		};
-	}
-
-	private String getDefaultValue(Options subject) {
-		String defaultValue = subject.getDefaultSessionsXml();
-
-		if (defaultValue != null) {
-			return NLS.bind(
-				EclipseLinkUiMessages.PersistenceXmlOptionsTab_defaultWithOneParam,
-				defaultValue
-			);
-		}
-		else {
-			return EclipseLinkUiMessages.PersistenceXmlOptionsTab_defaultEmpty;
-		}
-	}
-
-	/*
-	 * (non-Javadoc)
-	 */
-	@Override
-	protected void initializeLayout(Composite container) {
-
-		CCombo combo = addLabeledEditableCCombo(
-			container,
-			EclipseLinkUiMessages.PersistenceXmlOptionsTab_sessionsXml,
-			this.buildDefaultSessionsXmlFileNameListHolder(),
-			this.buildSessionsXmlFileNameHolder(),
-			EclipseLinkHelpContextIds.PERSISTENCE_OPTIONS_SESSIONS_XML
-		);
-		SWTUtil.attachDefaultValueHandler(combo);
-	}
-}
diff --git a/jpa/plugins/org.eclipse.jpt.eclipselink.ui/src/org/eclipse/jpt/eclipselink/ui/internal/persistence/options/TargetDatabaseComposite.java b/jpa/plugins/org.eclipse.jpt.eclipselink.ui/src/org/eclipse/jpt/eclipselink/ui/internal/persistence/options/TargetDatabaseComposite.java
deleted file mode 100644
index 231615a..0000000
--- a/jpa/plugins/org.eclipse.jpt.eclipselink.ui/src/org/eclipse/jpt/eclipselink/ui/internal/persistence/options/TargetDatabaseComposite.java
+++ /dev/null
@@ -1,187 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008, 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- *******************************************************************************/
-package org.eclipse.jpt.eclipselink.ui.internal.persistence.options;
-
-import com.ibm.icu.text.Collator;
-import java.util.ArrayList;
-import java.util.Comparator;
-import java.util.Iterator;
-import org.eclipse.jpt.eclipselink.core.internal.context.persistence.options.Options;
-import org.eclipse.jpt.eclipselink.core.internal.context.persistence.options.TargetDatabase;
-import org.eclipse.jpt.eclipselink.ui.internal.EclipseLinkHelpContextIds;
-import org.eclipse.jpt.eclipselink.ui.internal.EclipseLinkUiMessages;
-import org.eclipse.jpt.ui.internal.util.SWTUtil;
-import org.eclipse.jpt.ui.internal.widgets.Pane;
-import org.eclipse.jpt.utility.internal.CollectionTools;
-import org.eclipse.jpt.utility.internal.StringConverter;
-import org.eclipse.jpt.utility.internal.iterators.TransformationIterator;
-import org.eclipse.jpt.utility.internal.model.value.CompositeListValueModel;
-import org.eclipse.jpt.utility.internal.model.value.PropertyAspectAdapter;
-import org.eclipse.jpt.utility.internal.model.value.PropertyListValueModelAdapter;
-import org.eclipse.jpt.utility.internal.model.value.SimpleCollectionValueModel;
-import org.eclipse.jpt.utility.internal.model.value.SortedListValueModelAdapter;
-import org.eclipse.jpt.utility.model.value.CollectionValueModel;
-import org.eclipse.jpt.utility.model.value.ListValueModel;
-import org.eclipse.jpt.utility.model.value.PropertyValueModel;
-import org.eclipse.jpt.utility.model.value.WritablePropertyValueModel;
-import org.eclipse.osgi.util.NLS;
-import org.eclipse.swt.custom.CCombo;
-import org.eclipse.swt.widgets.Composite;
-
-/**
- * TargetDatabaseComposite
- */
-public class TargetDatabaseComposite extends Pane<Options>
-{
-	/**
-	 * Creates a new <code>TargetDatabaseComposite</code>.
-	 *
-	 * @param parentPane The parent container of this one
-	 * @param parent The parent container
-	 */
-	public TargetDatabaseComposite(
-								Pane<? extends Options> parentPane,
-	                           Composite parent) {
-
-		super(parentPane, parent);
-	}
-
-	private PropertyValueModel<String> buildDefaultTargetDatabaseHolder() {
-		return new PropertyAspectAdapter<Options, String>(this.getSubjectHolder(), Options.DEFAULT_TARGET_DATABASE) {
-			@Override
-			protected String buildValue_() {
-				return TargetDatabaseComposite.this.getDefaultValue(subject);
-			}
-		};
-	}
-
-	private ListValueModel<String> buildDefaultTargetDatabaseListHolder() {
-		return new PropertyListValueModelAdapter<String>(
-			this.buildDefaultTargetDatabaseHolder()
-		);
-	}
-
-	private String buildDisplayString(String targetDatabaseName) {
-		
-		return SWTUtil.buildDisplayString(
-			EclipseLinkUiMessages.class, 
-			this.getClass(), 
-			TargetDatabase.valueOf(targetDatabaseName));
-	}
-
-	private Comparator<String> buildTargetDatabaseComparator() {
-		return new Comparator<String>() {
-			public int compare(String targetDatabase1, String targetDatabase2) {
-				targetDatabase1 = buildDisplayString(targetDatabase1);
-				targetDatabase2 = buildDisplayString(targetDatabase2);
-				return Collator.getInstance().compare(targetDatabase1, targetDatabase2);
-			}
-		};
-	}
-
-	private StringConverter<String> buildTargetDatabaseConverter() {
-		return new StringConverter<String>() {
-			public String convertToString(String value) {
-				try {
-					TargetDatabase.valueOf(value);
-					value = buildDisplayString(value);
-				}
-				catch (Exception e) {
-					// Ignore since the value is not a TargetDatabase
-				}
-				return value;
-			}
-		};
-	}
-
-	private WritablePropertyValueModel<String> buildTargetDatabaseHolder() {
-		return new PropertyAspectAdapter<Options, String>(this.getSubjectHolder(), Options.TARGET_DATABASE_PROPERTY) {
-			@Override
-			protected String buildValue_() {
-
-				String name = subject.getTargetDatabase();
-				if (name == null) {
-					name = TargetDatabaseComposite.this.getDefaultValue(subject);
-				}
-				return name;
-			}
-
-			@Override
-			protected void setValue_(String value) {
-
-				if (getDefaultValue(subject).equals(value)) {
-					value = null;
-				}
-				subject.setTargetDatabase(value);
-			}
-		};
-	}
-
-	private ListValueModel<String> buildTargetDatabaseListHolder() {
-		ArrayList<ListValueModel<String>> holders = new ArrayList<ListValueModel<String>>(2);
-		holders.add(buildDefaultTargetDatabaseListHolder());
-		holders.add(buildTargetDatabasesListHolder());
-		return new CompositeListValueModel<ListValueModel<String>, String>(holders);
-	}
-
-	private Iterator<String> buildTargetDatabases() {
-		return new TransformationIterator<TargetDatabase, String>(CollectionTools.iterator(TargetDatabase.values())) {
-			@Override
-			protected String transform(TargetDatabase next) {
-				return next.name();
-			}
-		};
-	}
-
-	private CollectionValueModel<String> buildTargetDatabasesCollectionHolder() {
-		return new SimpleCollectionValueModel<String>(
-			CollectionTools.collection(buildTargetDatabases())
-		);
-	}
-
-	private ListValueModel<String> buildTargetDatabasesListHolder() {
-		return new SortedListValueModelAdapter<String>(
-			buildTargetDatabasesCollectionHolder(),
-			buildTargetDatabaseComparator()
-		);
-	}
-
-	private String getDefaultValue(Options subject) {
-		String defaultValue = subject.getDefaultTargetDatabase();
-
-		if (defaultValue != null) {
-			return NLS.bind(
-				EclipseLinkUiMessages.PersistenceXmlOptionsTab_defaultWithOneParam,
-				defaultValue
-			);
-		}
-		else {
-			return EclipseLinkUiMessages.PersistenceXmlOptionsTab_defaultEmpty;
-		}
-	}
-
-	/*
-	 * (non-Javadoc)
-	 */
-	@Override
-	protected void initializeLayout(Composite container) {
-
-		CCombo combo = addLabeledEditableCCombo(
-			container,
-			EclipseLinkUiMessages.PersistenceXmlOptionsTab_targetDatabaseLabel,
-			this.buildTargetDatabaseListHolder(),
-			this.buildTargetDatabaseHolder(),
-			this.buildTargetDatabaseConverter(),
-			EclipseLinkHelpContextIds.PERSISTENCE_OPTIONS_TARGET_DATABASE
-		);
-
-		SWTUtil.attachDefaultValueHandler(combo);
-	}
-}
diff --git a/jpa/plugins/org.eclipse.jpt.eclipselink.ui/src/org/eclipse/jpt/eclipselink/ui/internal/persistence/options/TargetServerComposite.java b/jpa/plugins/org.eclipse.jpt.eclipselink.ui/src/org/eclipse/jpt/eclipselink/ui/internal/persistence/options/TargetServerComposite.java
deleted file mode 100644
index 840ae59..0000000
--- a/jpa/plugins/org.eclipse.jpt.eclipselink.ui/src/org/eclipse/jpt/eclipselink/ui/internal/persistence/options/TargetServerComposite.java
+++ /dev/null
@@ -1,187 +0,0 @@
-/*******************************************************************************
-* Copyright (c) 2008, 2009 Oracle. All rights reserved.
-* This program and the accompanying materials are made available under the
-* terms of the Eclipse Public License v1.0, which accompanies this distribution
-* and is available at http://www.eclipse.org/legal/epl-v10.html.
-* 
-* Contributors:
-*     Oracle - initial API and implementation
-*******************************************************************************/
-package org.eclipse.jpt.eclipselink.ui.internal.persistence.options;
-
-import com.ibm.icu.text.Collator;
-import java.util.ArrayList;
-import java.util.Comparator;
-import java.util.Iterator;
-import org.eclipse.jpt.eclipselink.core.internal.context.persistence.options.Options;
-import org.eclipse.jpt.eclipselink.core.internal.context.persistence.options.TargetServer;
-import org.eclipse.jpt.eclipselink.ui.internal.EclipseLinkHelpContextIds;
-import org.eclipse.jpt.eclipselink.ui.internal.EclipseLinkUiMessages;
-import org.eclipse.jpt.ui.internal.util.SWTUtil;
-import org.eclipse.jpt.ui.internal.widgets.Pane;
-import org.eclipse.jpt.utility.internal.CollectionTools;
-import org.eclipse.jpt.utility.internal.StringConverter;
-import org.eclipse.jpt.utility.internal.iterators.TransformationIterator;
-import org.eclipse.jpt.utility.internal.model.value.CompositeListValueModel;
-import org.eclipse.jpt.utility.internal.model.value.PropertyAspectAdapter;
-import org.eclipse.jpt.utility.internal.model.value.PropertyListValueModelAdapter;
-import org.eclipse.jpt.utility.internal.model.value.SimpleCollectionValueModel;
-import org.eclipse.jpt.utility.internal.model.value.SortedListValueModelAdapter;
-import org.eclipse.jpt.utility.model.value.CollectionValueModel;
-import org.eclipse.jpt.utility.model.value.ListValueModel;
-import org.eclipse.jpt.utility.model.value.PropertyValueModel;
-import org.eclipse.jpt.utility.model.value.WritablePropertyValueModel;
-import org.eclipse.osgi.util.NLS;
-import org.eclipse.swt.custom.CCombo;
-import org.eclipse.swt.widgets.Composite;
-
-/**
- *  TargetServerComposite
- */
-public class TargetServerComposite extends Pane<Options>
-{
-	/**
-	 * Creates a new <code>TargetServerComposite</code>.
-	 *
-	 * @param parentPane The parent container of this one
-	 * @param parent The parent container
-	 */
-	public TargetServerComposite(
-								Pane<? extends Options> parentPane,
-	                           Composite parent) {
-
-		super(parentPane, parent);
-	}
-
-	private PropertyValueModel<String> buildDefaultTargetServerHolder() {
-		return new PropertyAspectAdapter<Options, String>(this.getSubjectHolder(), Options.DEFAULT_TARGET_SERVER) {
-			@Override
-			protected String buildValue_() {
-				return TargetServerComposite.this.getDefaultValue(subject);
-			}
-		};
-	}
-
-	private ListValueModel<String> buildDefaultTargetServerListHolder() {
-		return new PropertyListValueModelAdapter<String>(
-			this.buildDefaultTargetServerHolder()
-		);
-	}
-
-	private String buildDisplayString(String targetServerName) {
-		
-		return SWTUtil.buildDisplayString(
-			EclipseLinkUiMessages.class, 
-			this.getClass(), 
-			TargetServer.valueOf(targetServerName));
-	}
-
-	private Comparator<String> buildTargetServerComparator() {
-		return new Comparator<String>() {
-			public int compare(String targetServer1, String targetServer2) {
-				targetServer1 = buildDisplayString(targetServer1);
-				targetServer2 = buildDisplayString(targetServer2);
-				return Collator.getInstance().compare(targetServer1, targetServer2);
-			}
-		};
-	}
-
-	private StringConverter<String> buildTargetServerConverter() {
-		return new StringConverter<String>() {
-			public String convertToString(String value) {
-				try {
-					TargetServer.valueOf(value);
-					value = buildDisplayString(value);
-				}
-				catch (Exception e) {
-					// Ignore since the value is not a TargetServer
-				}
-				return value;
-			}
-		};
-	}
-
-	private WritablePropertyValueModel<String> buildTargetServerHolder() {
-		return new PropertyAspectAdapter<Options, String>(this.getSubjectHolder(), Options.TARGET_SERVER_PROPERTY) {
-			@Override
-			protected String buildValue_() {
-
-				String name = subject.getTargetServer();
-				if (name == null) {
-					name = TargetServerComposite.this.getDefaultValue(subject);
-				}
-				return name;
-			}
-
-			@Override
-			protected void setValue_(String value) {
-
-				if (getDefaultValue(subject).equals(value)) {
-					value = null;
-				}
-				subject.setTargetServer(value);
-			}
-		};
-	}
-
-	private ListValueModel<String> buildTargetServerListHolder() {
-		ArrayList<ListValueModel<String>> holders = new ArrayList<ListValueModel<String>>(2);
-		holders.add(buildDefaultTargetServerListHolder());
-		holders.add(buildTargetServersListHolder());
-		return new CompositeListValueModel<ListValueModel<String>, String>(holders);
-	}
-
-	private Iterator<String> buildTargetServers() {
-		return new TransformationIterator<TargetServer, String>(CollectionTools.iterator(TargetServer.values())) {
-			@Override
-			protected String transform(TargetServer next) {
-				return next.name();
-			}
-		};
-	}
-
-	private CollectionValueModel<String> buildTargetServersCollectionHolder() {
-		return new SimpleCollectionValueModel<String>(
-			CollectionTools.collection(buildTargetServers())
-		);
-	}
-
-	private ListValueModel<String> buildTargetServersListHolder() {
-		return new SortedListValueModelAdapter<String>(
-			buildTargetServersCollectionHolder(),
-			buildTargetServerComparator()
-		);
-	}
-
-	private String getDefaultValue(Options subject) {
-		String defaultValue = subject.getDefaultTargetServer();
-
-		if (defaultValue != null) {
-			return NLS.bind(
-				EclipseLinkUiMessages.PersistenceXmlOptionsTab_defaultWithOneParam,
-				defaultValue
-			);
-		}
-		else {
-			return EclipseLinkUiMessages.PersistenceXmlOptionsTab_defaultEmpty;
-		}
-	}
-
-	/*
-	 * (non-Javadoc)
-	 */
-	@Override
-	protected void initializeLayout(Composite container) {
-
-		CCombo combo = addLabeledEditableCCombo(
-			container,
-			EclipseLinkUiMessages.PersistenceXmlOptionsTab_targetServerLabel,
-			this.buildTargetServerListHolder(),
-			this.buildTargetServerHolder(),
-			this.buildTargetServerConverter(),
-			EclipseLinkHelpContextIds.PERSISTENCE_OPTIONS_TARGET_SERVER
-		);
-
-		SWTUtil.attachDefaultValueHandler(combo);
-	}
-}
diff --git a/jpa/plugins/org.eclipse.jpt.eclipselink.ui/src/org/eclipse/jpt/eclipselink/ui/internal/persistence/options/TemporalMutableComposite.java b/jpa/plugins/org.eclipse.jpt.eclipselink.ui/src/org/eclipse/jpt/eclipselink/ui/internal/persistence/options/TemporalMutableComposite.java
deleted file mode 100644
index e0de7b8..0000000
--- a/jpa/plugins/org.eclipse.jpt.eclipselink.ui/src/org/eclipse/jpt/eclipselink/ui/internal/persistence/options/TemporalMutableComposite.java
+++ /dev/null
@@ -1,96 +0,0 @@
-/*******************************************************************************
-* Copyright (c) 2008, 2009 Oracle. All rights reserved.
-* This program and the accompanying materials are made available under the
-* terms of the Eclipse Public License v1.0, which accompanies this distribution
-* and is available at http://www.eclipse.org/legal/epl-v10.html.
-* 
-* Contributors:
-*     Oracle - initial API and implementation
-*******************************************************************************/
-package org.eclipse.jpt.eclipselink.ui.internal.persistence.options;
-
-import org.eclipse.jpt.eclipselink.core.internal.context.persistence.options.Options;
-import org.eclipse.jpt.eclipselink.ui.internal.EclipseLinkHelpContextIds;
-import org.eclipse.jpt.eclipselink.ui.internal.EclipseLinkUiMessages;
-import org.eclipse.jpt.ui.internal.widgets.FormPane;
-import org.eclipse.jpt.utility.internal.model.value.PropertyAspectAdapter;
-import org.eclipse.jpt.utility.internal.model.value.TransformationPropertyValueModel;
-import org.eclipse.jpt.utility.model.value.PropertyValueModel;
-import org.eclipse.jpt.utility.model.value.WritablePropertyValueModel;
-import org.eclipse.osgi.util.NLS;
-import org.eclipse.swt.widgets.Composite;
-
-/**
- *  TemporalMutableComposite
- */
-public class TemporalMutableComposite extends FormPane<Options>
-{
-	/**
-	 * Creates a new <code>TemporalMutableComposite</code>.
-	 *
-	 * @param parentController
-	 *            The parent container of this one
-	 * @param parent
-	 *            The parent container
-	 */
-	public TemporalMutableComposite(
-					FormPane<? extends Options> parentComposite,
-					Composite parent) {
-
-		super(parentComposite, parent);
-	}
-
-	private WritablePropertyValueModel<Boolean> buildTemporalMutableHolder() {
-		return new PropertyAspectAdapter<Options, Boolean>(getSubjectHolder(), Options.TEMPORAL_MUTABLE_PROPERTY) {
-			@Override
-			protected Boolean buildValue_() {
-				return subject.getTemporalMutable();
-			}
-
-			@Override
-			protected void setValue_(Boolean value) {
-				subject.setTemporalMutable(value);
-			}
-
-			@Override
-			protected void subjectChanged() {
-				Object oldValue = this.getValue();
-				super.subjectChanged();
-				Object newValue = this.getValue();
-
-				// Make sure the default value is appended to the text
-				if (oldValue == newValue && newValue == null) {
-					this.fireAspectChange(Boolean.TRUE, newValue);
-				}
-			}
-		};
-	}
-
-	private PropertyValueModel<String> buildTemporalMutableStringHolder() {
-		return new TransformationPropertyValueModel<Boolean, String>(buildTemporalMutableHolder()) {
-			@Override
-			protected String transform(Boolean value) {
-				if ((getSubject() != null) && (value == null)) {
-					Boolean defaultValue = getSubject().getDefaultTemporalMutable();
-					if (defaultValue != null) {
-						String defaultStringValue = defaultValue ? EclipseLinkUiMessages.Boolean_True : EclipseLinkUiMessages.Boolean_False;
-						return NLS.bind(EclipseLinkUiMessages.PersistenceXmlOptionsTab_temporalMutableLabelDefault, defaultStringValue);
-					}
-				}
-				return EclipseLinkUiMessages.PersistenceXmlOptionsTab_temporalMutableLabel;
-			}
-		};
-	}
-
-	@Override
-	protected void initializeLayout(Composite container) {
-
-		this.addTriStateCheckBoxWithDefault(
-			container,
-			EclipseLinkUiMessages.PersistenceXmlOptionsTab_temporalMutableLabel,
-			this.buildTemporalMutableHolder(),
-			this.buildTemporalMutableStringHolder(),
-			EclipseLinkHelpContextIds.PERSISTENCE_OPTIONS
-		);
-	}
-}
diff --git a/jpa/plugins/org.eclipse.jpt.eclipselink.ui/src/org/eclipse/jpt/eclipselink/ui/internal/persistence/schema/generation/CreateDdlFileNameComposite.java b/jpa/plugins/org.eclipse.jpt.eclipselink.ui/src/org/eclipse/jpt/eclipselink/ui/internal/persistence/schema/generation/CreateDdlFileNameComposite.java
deleted file mode 100644
index 3427cf9..0000000
--- a/jpa/plugins/org.eclipse.jpt.eclipselink.ui/src/org/eclipse/jpt/eclipselink/ui/internal/persistence/schema/generation/CreateDdlFileNameComposite.java
+++ /dev/null
@@ -1,111 +0,0 @@
-/*******************************************************************************
-* Copyright (c) 2008, 2009 Oracle. All rights reserved.
-* This program and the accompanying materials are made available under the
-* terms of the Eclipse Public License v1.0, which accompanies this distribution
-* and is available at http://www.eclipse.org/legal/epl-v10.html.
-* 
-* Contributors:
-*     Oracle - initial API and implementation
-*******************************************************************************/
-package org.eclipse.jpt.eclipselink.ui.internal.persistence.schema.generation;
-
-import org.eclipse.jpt.eclipselink.core.internal.context.persistence.schema.generation.SchemaGeneration;
-import org.eclipse.jpt.eclipselink.ui.internal.EclipseLinkHelpContextIds;
-import org.eclipse.jpt.eclipselink.ui.internal.EclipseLinkUiMessages;
-import org.eclipse.jpt.ui.internal.util.SWTUtil;
-import org.eclipse.jpt.ui.internal.widgets.Pane;
-import org.eclipse.jpt.utility.internal.model.value.PropertyAspectAdapter;
-import org.eclipse.jpt.utility.internal.model.value.PropertyListValueModelAdapter;
-import org.eclipse.jpt.utility.model.value.ListValueModel;
-import org.eclipse.jpt.utility.model.value.PropertyValueModel;
-import org.eclipse.jpt.utility.model.value.WritablePropertyValueModel;
-import org.eclipse.osgi.util.NLS;
-import org.eclipse.swt.custom.CCombo;
-import org.eclipse.swt.widgets.Composite;
-
-/**
- *  CreateDdlFileNameComposite
- */
-public class CreateDdlFileNameComposite extends Pane<SchemaGeneration>
-{
-	/**
-	 * Creates a new <code>CreateDdlFileNameComposite</code>.
-	 *
-	 * @param parentPane The parent container of this one
-	 * @param parent The parent container
-	 */
-	public CreateDdlFileNameComposite(
-								Pane<? extends SchemaGeneration> parentPane,
-	                           Composite parent) {
-
-		super(parentPane, parent);
-	}
-
-	private PropertyValueModel<String> buildDefaultCreateDdlFileNameHolder() {
-		return new PropertyAspectAdapter<SchemaGeneration, String>(this.getSubjectHolder(), SchemaGeneration.DEFAULT_SCHEMA_GENERATION_CREATE_FILE_NAME) {
-			@Override
-			protected String buildValue_() {
-				return CreateDdlFileNameComposite.this.getDefaultValue(subject);
-			}
-		};
-	}
-
-	private ListValueModel<String> buildDefaultCreateDdlFileNameListHolder() {
-		return new PropertyListValueModelAdapter<String>(
-			this.buildDefaultCreateDdlFileNameHolder()
-		);
-	}
-
-	private WritablePropertyValueModel<String> buildCreateDdlFileNameHolder() {
-		return new PropertyAspectAdapter<SchemaGeneration, String>(this.getSubjectHolder(), SchemaGeneration.CREATE_FILE_NAME_PROPERTY) {
-			@Override
-			protected String buildValue_() {
-
-				String name = subject.getCreateFileName();
-				if (name == null) {
-					name = CreateDdlFileNameComposite.this.getDefaultValue(subject);
-				}
-				return name;
-			}
-
-			@Override
-			protected void setValue_(String value) {
-
-				if (getDefaultValue(subject).equals(value)) {
-					value = null;
-				}
-				subject.setCreateFileName(value);
-			}
-		};
-	}
-
-	private String getDefaultValue(SchemaGeneration subject) {
-		String defaultValue = subject.getDefaultCreateFileName();
-
-		if (defaultValue != null) {
-			return NLS.bind(
-				EclipseLinkUiMessages.PersistenceXmlSchemaGenerationTab_defaultWithOneParam,
-				defaultValue
-			);
-		}
-		else {
-			return EclipseLinkUiMessages.PersistenceXmlSchemaGenerationTab_defaultEmpty;
-		}
-	}
-
-	/*
-	 * (non-Javadoc)
-	 */
-	@Override
-	protected void initializeLayout(Composite container) {
-
-		CCombo combo = addLabeledEditableCCombo(
-			container,
-			EclipseLinkUiMessages.PersistenceXmlSchemaGenerationTab_createDdlFileNameLabel,
-			this.buildDefaultCreateDdlFileNameListHolder(),
-			this.buildCreateDdlFileNameHolder(),
-			EclipseLinkHelpContextIds.PERSISTENCE_SCHEMA_GENERATION
-		);
-		SWTUtil.attachDefaultValueHandler(combo);
-	}
-}
diff --git a/jpa/plugins/org.eclipse.jpt.eclipselink.ui/src/org/eclipse/jpt/eclipselink/ui/internal/persistence/schema/generation/DdlGenerationLocationComposite.java b/jpa/plugins/org.eclipse.jpt.eclipselink.ui/src/org/eclipse/jpt/eclipselink/ui/internal/persistence/schema/generation/DdlGenerationLocationComposite.java
deleted file mode 100644
index 970855e..0000000
--- a/jpa/plugins/org.eclipse.jpt.eclipselink.ui/src/org/eclipse/jpt/eclipselink/ui/internal/persistence/schema/generation/DdlGenerationLocationComposite.java
+++ /dev/null
@@ -1,92 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- *
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.eclipselink.ui.internal.persistence.schema.generation;
-
-import org.eclipse.jpt.eclipselink.core.internal.context.persistence.schema.generation.SchemaGeneration;
-import org.eclipse.jpt.eclipselink.ui.internal.EclipseLinkUiMessages;
-import org.eclipse.jpt.ui.internal.widgets.FolderChooserPane;
-import org.eclipse.jpt.ui.internal.widgets.Pane;
-import org.eclipse.jpt.utility.internal.model.value.PropertyAspectAdapter;
-import org.eclipse.jpt.utility.model.value.WritablePropertyValueModel;
-import org.eclipse.osgi.util.NLS;
-import org.eclipse.swt.widgets.Composite;
-
-/**
- *  DdlGenerationLocationComposite
- */
-public class DdlGenerationLocationComposite extends Pane<SchemaGeneration>
-{
-	public DdlGenerationLocationComposite(Pane<? extends SchemaGeneration> parentPane,
-	                                      Composite parent) {
-
-		super(parentPane, parent);
-	}
-
-	@Override
-	protected void initializeLayout(Composite container) {
-		
-		new FolderChooserPane<SchemaGeneration>(this, container) {
-
-			@Override
-			protected WritablePropertyValueModel<String> buildTextHolder() {
-				return new PropertyAspectAdapter<SchemaGeneration, String>(
-										getSubjectHolder(), SchemaGeneration.APPLICATION_LOCATION_PROPERTY) {
-					@Override
-					protected String buildValue_() {
-
-						String name = subject.getApplicationLocation();
-						if (name == null) {
-							name = defaultValue(subject);
-						}
-						return name;
-					}
-
-					@Override
-					protected void setValue_(String value) {
-
-						if (defaultValue(subject).equals(value)) {
-							value = null;
-						}
-						subject.setApplicationLocation(value);
-					}
-				};
-			}
-
-			private String defaultValue(SchemaGeneration subject) {
-				String defaultValue = subject.getDefaultApplicationLocation();
-
-				if (defaultValue != null) {
-					return NLS.bind(
-						EclipseLinkUiMessages.PersistenceXmlSchemaGenerationTab_defaultWithOneParam,
-						defaultValue
-					);
-				}
-				else {
-					return EclipseLinkUiMessages.PersistenceXmlSchemaGenerationTab_defaultEmpty;
-				}
-			}
-
-			@Override
-			protected String getDialogMessage() {
-				return EclipseLinkUiMessages.DdlGenerationLocationComposite_dialogMessage;
-			}
-
-			@Override
-			protected String getDialogTitle() {
-				return EclipseLinkUiMessages.DdlGenerationLocationComposite_dialogTitle;
-			}
-
-			@Override
-			protected String getLabelText() {
-				return EclipseLinkUiMessages.PersistenceXmlSchemaGenerationTab_ddlGenerationLocationLabel;
-			}
-		};
-	}
-}
diff --git a/jpa/plugins/org.eclipse.jpt.eclipselink.ui/src/org/eclipse/jpt/eclipselink/ui/internal/persistence/schema/generation/DdlGenerationTypeComposite.java b/jpa/plugins/org.eclipse.jpt.eclipselink.ui/src/org/eclipse/jpt/eclipselink/ui/internal/persistence/schema/generation/DdlGenerationTypeComposite.java
deleted file mode 100644
index a4b4524..0000000
--- a/jpa/plugins/org.eclipse.jpt.eclipselink.ui/src/org/eclipse/jpt/eclipselink/ui/internal/persistence/schema/generation/DdlGenerationTypeComposite.java
+++ /dev/null
@@ -1,87 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- *******************************************************************************/
-package org.eclipse.jpt.eclipselink.ui.internal.persistence.schema.generation;
-
-import java.util.Collection;
-import org.eclipse.jpt.eclipselink.core.internal.context.persistence.schema.generation.DdlGenerationType;
-import org.eclipse.jpt.eclipselink.core.internal.context.persistence.schema.generation.SchemaGeneration;
-import org.eclipse.jpt.eclipselink.ui.internal.EclipseLinkHelpContextIds;
-import org.eclipse.jpt.eclipselink.ui.internal.EclipseLinkUiMessages;
-import org.eclipse.jpt.ui.internal.widgets.EnumFormComboViewer;
-import org.eclipse.jpt.ui.internal.widgets.FormPane;
-import org.eclipse.swt.widgets.Composite;
-
-/**
- * DdlGenerationTypeComposite
- */
-public class DdlGenerationTypeComposite
-	extends FormPane<SchemaGeneration>
-{
-	/**
-	 * Creates a new <code>DdlGenerationTypeComposite</code>.
-	 * 
-	 * @param parentController
-	 *            The parent container of this one
-	 * @param parent
-	 *            The parent container
-	 */
-	public DdlGenerationTypeComposite(
-					FormPane<? extends SchemaGeneration> parentComposite, 
-					Composite parent) {
-		
-		super(parentComposite, parent);
-	}
-
-	private EnumFormComboViewer<SchemaGeneration, DdlGenerationType> addDdlGenerationTypeCombo(Composite container) {
-		return new EnumFormComboViewer<SchemaGeneration, DdlGenerationType>(this, container) {
-			@Override
-			protected void addPropertyNames(Collection<String> propertyNames) {
-				super.addPropertyNames(propertyNames);
-				propertyNames.add(SchemaGeneration.DDL_GENERATION_TYPE_PROPERTY);
-			}
-
-			@Override
-			protected DdlGenerationType[] getChoices() {
-				return DdlGenerationType.values();
-			}
-
-			@Override
-			protected DdlGenerationType getDefaultValue() {
-				return this.getSubject().getDefaultDdlGenerationType();
-			}
-
-			@Override
-			protected String displayString(DdlGenerationType value) {
-				return this.buildDisplayString(EclipseLinkUiMessages.class, DdlGenerationTypeComposite.this, value);
-			}
-
-			@Override
-			protected DdlGenerationType getValue() {
-				return this.getSubject().getDdlGenerationType();
-			}
-
-			@Override
-			protected void setValue(DdlGenerationType value) {
-				this.getSubject().setDdlGenerationType(value);
-			}
-		};
-	}
-
-	@Override
-	protected void initializeLayout(Composite container) {
-
-		this.addLabeledComposite(
-			container,
-			EclipseLinkUiMessages.PersistenceXmlSchemaGenerationTab_ddlGenerationTypeLabel,
-			addDdlGenerationTypeCombo( container),
-			EclipseLinkHelpContextIds.PERSISTENCE_SCHEMA_GENERATION
-		);
-	}
-}
diff --git a/jpa/plugins/org.eclipse.jpt.eclipselink.ui/src/org/eclipse/jpt/eclipselink/ui/internal/persistence/schema/generation/DropDdlFileNameComposite.java b/jpa/plugins/org.eclipse.jpt.eclipselink.ui/src/org/eclipse/jpt/eclipselink/ui/internal/persistence/schema/generation/DropDdlFileNameComposite.java
deleted file mode 100644
index 92597b0..0000000
--- a/jpa/plugins/org.eclipse.jpt.eclipselink.ui/src/org/eclipse/jpt/eclipselink/ui/internal/persistence/schema/generation/DropDdlFileNameComposite.java
+++ /dev/null
@@ -1,111 +0,0 @@
-/*******************************************************************************
-* Copyright (c) 2008, 2009 Oracle. All rights reserved.
-* This program and the accompanying materials are made available under the
-* terms of the Eclipse Public License v1.0, which accompanies this distribution
-* and is available at http://www.eclipse.org/legal/epl-v10.html.
-* 
-* Contributors:
-*     Oracle - initial API and implementation
-*******************************************************************************/
-package org.eclipse.jpt.eclipselink.ui.internal.persistence.schema.generation;
-
-import org.eclipse.jpt.eclipselink.core.internal.context.persistence.schema.generation.SchemaGeneration;
-import org.eclipse.jpt.eclipselink.ui.internal.EclipseLinkHelpContextIds;
-import org.eclipse.jpt.eclipselink.ui.internal.EclipseLinkUiMessages;
-import org.eclipse.jpt.ui.internal.util.SWTUtil;
-import org.eclipse.jpt.ui.internal.widgets.Pane;
-import org.eclipse.jpt.utility.internal.model.value.PropertyAspectAdapter;
-import org.eclipse.jpt.utility.internal.model.value.PropertyListValueModelAdapter;
-import org.eclipse.jpt.utility.model.value.ListValueModel;
-import org.eclipse.jpt.utility.model.value.PropertyValueModel;
-import org.eclipse.jpt.utility.model.value.WritablePropertyValueModel;
-import org.eclipse.osgi.util.NLS;
-import org.eclipse.swt.custom.CCombo;
-import org.eclipse.swt.widgets.Composite;
-
-/**
- *  DropDdlFileNameComposite
- */
-public class DropDdlFileNameComposite extends Pane<SchemaGeneration>
-{
-	/**
-	 * Creates a new <code>DropDdlFileNameComposite</code>.
-	 *
-	 * @param parentPane The parent container of this one
-	 * @param parent The parent container
-	 */
-	public DropDdlFileNameComposite(
-								Pane<? extends SchemaGeneration> parentPane,
-	                           Composite parent) {
-
-		super(parentPane, parent);
-	}
-
-	private PropertyValueModel<String> buildDefaultDropDdlFileNameHolder() {
-		return new PropertyAspectAdapter<SchemaGeneration, String>(this.getSubjectHolder(), SchemaGeneration.DEFAULT_SCHEMA_GENERATION_DROP_FILE_NAME) {
-			@Override
-			protected String buildValue_() {
-				return DropDdlFileNameComposite.this.getDefaultValue(subject);
-			}
-		};
-	}
-
-	private ListValueModel<String> buildDefaultDropDdlFileNameListHolder() {
-		return new PropertyListValueModelAdapter<String>(
-			this.buildDefaultDropDdlFileNameHolder()
-		);
-	}
-
-	private WritablePropertyValueModel<String> buildDropDdlFileNameHolder() {
-		return new PropertyAspectAdapter<SchemaGeneration, String>(this.getSubjectHolder(), SchemaGeneration.DROP_FILE_NAME_PROPERTY) {
-			@Override
-			protected String buildValue_() {
-
-				String name = subject.getDropFileName();
-				if (name == null) {
-					name = DropDdlFileNameComposite.this.getDefaultValue(subject);
-				}
-				return name;
-			}
-
-			@Override
-			protected void setValue_(String value) {
-
-				if (DropDdlFileNameComposite.this.getDefaultValue(subject).equals(value)) {
-					value = null;
-				}
-				subject.setDropFileName(value);
-			}
-		};
-	}
-
-	private String getDefaultValue(SchemaGeneration subject) {
-		String defaultValue = subject.getDefaultDropFileName();
-
-		if (defaultValue != null) {
-			return NLS.bind(
-				EclipseLinkUiMessages.PersistenceXmlSchemaGenerationTab_defaultWithOneParam,
-				defaultValue
-			);
-		}
-		else {
-			return EclipseLinkUiMessages.PersistenceXmlSchemaGenerationTab_defaultEmpty;
-		}
-	}
-
-	/*
-	 * (non-Javadoc)
-	 */
-	@Override
-	protected void initializeLayout(Composite container) {
-
-		CCombo combo = addLabeledEditableCCombo(
-			container,
-			EclipseLinkUiMessages.PersistenceXmlSchemaGenerationTab_dropDdlFileNameLabel,
-			this.buildDefaultDropDdlFileNameListHolder(),
-			this.buildDropDdlFileNameHolder(),
-			EclipseLinkHelpContextIds.PERSISTENCE_SCHEMA_GENERATION
-		);
-		SWTUtil.attachDefaultValueHandler(combo);
-	}
-}
diff --git a/jpa/plugins/org.eclipse.jpt.eclipselink.ui/src/org/eclipse/jpt/eclipselink/ui/internal/persistence/schema/generation/EclipseLinkSchemaGenerationComposite.java b/jpa/plugins/org.eclipse.jpt.eclipselink.ui/src/org/eclipse/jpt/eclipselink/ui/internal/persistence/schema/generation/EclipseLinkSchemaGenerationComposite.java
deleted file mode 100644
index 6dfadc1..0000000
--- a/jpa/plugins/org.eclipse.jpt.eclipselink.ui/src/org/eclipse/jpt/eclipselink/ui/internal/persistence/schema/generation/EclipseLinkSchemaGenerationComposite.java
+++ /dev/null
@@ -1,49 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- *
- * Contributors:
- *     Oracle - initial API and implementation
- *******************************************************************************/
-package org.eclipse.jpt.eclipselink.ui.internal.persistence.schema.generation;
-
-import org.eclipse.jpt.eclipselink.core.internal.context.persistence.schema.generation.SchemaGeneration;
-import org.eclipse.jpt.eclipselink.ui.internal.EclipseLinkUiMessages;
-import org.eclipse.jpt.ui.internal.widgets.FormPane;
-import org.eclipse.swt.widgets.Composite;
-
-/**
- * EclipseLinkSchemaGenerationComposite
- */
-public class EclipseLinkSchemaGenerationComposite
-	extends FormPane<SchemaGeneration>
-{
-	public EclipseLinkSchemaGenerationComposite(
-					FormPane<SchemaGeneration> subjectHolder,
-					Composite container) {
-		super(subjectHolder, container, false);
-	}
-
-	@Override
-	protected void initializeLayout(Composite container) {
-
-		container = addSection(
-			container,
-			EclipseLinkUiMessages.PersistenceXmlSchemaGenerationTab_sectionTitle,
-			EclipseLinkUiMessages.PersistenceXmlSchemaGenerationTab_sectionDescription
-		);
-
-		// DDL Generation Type:
-		new DdlGenerationTypeComposite(this, container);
-		// Output Mode:
-		new OutputModeComposite(this, container);
-		// DDL Generation Location
-		new DdlGenerationLocationComposite(this, container);
-		// Create DDL File Name:
-		new CreateDdlFileNameComposite(this, container);
-		// Drop DDL File Name:
-		new DropDdlFileNameComposite(this, container);
-	}
-}
\ No newline at end of file
diff --git a/jpa/plugins/org.eclipse.jpt.eclipselink.ui/src/org/eclipse/jpt/eclipselink/ui/internal/persistence/schema/generation/OutputModeComposite.java b/jpa/plugins/org.eclipse.jpt.eclipselink.ui/src/org/eclipse/jpt/eclipselink/ui/internal/persistence/schema/generation/OutputModeComposite.java
deleted file mode 100644
index 6bfd0d9..0000000
--- a/jpa/plugins/org.eclipse.jpt.eclipselink.ui/src/org/eclipse/jpt/eclipselink/ui/internal/persistence/schema/generation/OutputModeComposite.java
+++ /dev/null
@@ -1,85 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008, 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- *******************************************************************************/
-package org.eclipse.jpt.eclipselink.ui.internal.persistence.schema.generation;
-
-import java.util.Collection;
-import org.eclipse.jpt.eclipselink.core.internal.context.persistence.schema.generation.OutputMode;
-import org.eclipse.jpt.eclipselink.core.internal.context.persistence.schema.generation.SchemaGeneration;
-import org.eclipse.jpt.eclipselink.ui.internal.EclipseLinkHelpContextIds;
-import org.eclipse.jpt.eclipselink.ui.internal.EclipseLinkUiMessages;
-import org.eclipse.jpt.ui.internal.widgets.EnumFormComboViewer;
-import org.eclipse.jpt.ui.internal.widgets.FormPane;
-import org.eclipse.swt.widgets.Composite;
-
-/**
- * OutputModeComposite
- */
-public class OutputModeComposite extends FormPane<SchemaGeneration>
-{
-	/**
-	 * Creates a new <code>OutputModeComposite</code>.
-	 * 
-	 * @param parentController
-	 *            The parent container of this one
-	 * @param parent
-	 *            The parent container
-	 */
-	public OutputModeComposite(
-				FormPane<? extends SchemaGeneration> parentComposite, 
-				Composite parent) {
-		
-		super(parentComposite, parent);
-	}
-
-	private EnumFormComboViewer<SchemaGeneration, OutputMode> addBuildOutputModeCombo(Composite container) {
-		return new EnumFormComboViewer<SchemaGeneration, OutputMode>(this, container) {
-			@Override
-			protected void addPropertyNames(Collection<String> propertyNames) {
-				super.addPropertyNames(propertyNames);
-				propertyNames.add(SchemaGeneration.OUTPUT_MODE_PROPERTY);
-			}
-
-			@Override
-			protected OutputMode[] getChoices() {
-				return OutputMode.values();
-			}
-
-			@Override
-			protected OutputMode getDefaultValue() {
-				return this.getSubject().getDefaultOutputMode();
-			}
-
-			@Override
-			protected String displayString(OutputMode value) {
-				return this.buildDisplayString(EclipseLinkUiMessages.class, OutputModeComposite.this, value);
-			}
-
-			@Override
-			protected OutputMode getValue() {
-				return this.getSubject().getOutputMode();
-			}
-
-			@Override
-			protected void setValue(OutputMode value) {
-				this.getSubject().setOutputMode(value);
-			}
-		};
-	}
-
-	@Override
-	protected void initializeLayout(Composite container) {
-		this.addLabeledComposite(
-				container,
-				EclipseLinkUiMessages.PersistenceXmlSchemaGenerationTab_outputModeLabel,
-				this.addBuildOutputModeCombo(container),
-				EclipseLinkHelpContextIds.PERSISTENCE_SCHEMA_GENERATION
-		);
-	}
-}
diff --git a/jpa/plugins/org.eclipse.jpt.eclipselink.ui/src/org/eclipse/jpt/eclipselink/ui/internal/persistence/schema/generation/PersistenceXmlSchemaGenerationTab.java b/jpa/plugins/org.eclipse.jpt.eclipselink.ui/src/org/eclipse/jpt/eclipselink/ui/internal/persistence/schema/generation/PersistenceXmlSchemaGenerationTab.java
deleted file mode 100644
index 69c9334..0000000
--- a/jpa/plugins/org.eclipse.jpt.eclipselink.ui/src/org/eclipse/jpt/eclipselink/ui/internal/persistence/schema/generation/PersistenceXmlSchemaGenerationTab.java
+++ /dev/null
@@ -1,56 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- *
- * Contributors:
- *     Oracle - initial API and implementation
- *******************************************************************************/
-package org.eclipse.jpt.eclipselink.ui.internal.persistence.schema.generation;
-
-import org.eclipse.jpt.eclipselink.core.internal.context.persistence.schema.generation.SchemaGeneration;
-import org.eclipse.jpt.eclipselink.ui.internal.EclipseLinkHelpContextIds;
-import org.eclipse.jpt.eclipselink.ui.internal.EclipseLinkUiMessages;
-import org.eclipse.jpt.ui.WidgetFactory;
-import org.eclipse.jpt.ui.details.JpaPageComposite;
-import org.eclipse.jpt.ui.internal.widgets.FormPane;
-import org.eclipse.jpt.utility.model.value.PropertyValueModel;
-import org.eclipse.swt.graphics.Image;
-import org.eclipse.swt.widgets.Composite;
-
-/**
- * PersistenceXmlSchemaGenerationTab
- */
-public class PersistenceXmlSchemaGenerationTab
-	extends FormPane<SchemaGeneration>
-	implements JpaPageComposite
-{
-	// ********** constructors/initialization **********
-	public PersistenceXmlSchemaGenerationTab(
-				PropertyValueModel<SchemaGeneration> subjectHolder,
-				Composite parent,
-				WidgetFactory widgetFactory) {
-
-		super(subjectHolder, parent, widgetFactory);
-	}
-
-	@Override
-	protected void initializeLayout(Composite container) {
-		new EclipseLinkSchemaGenerationComposite(this, container);
-	}
-
-	// ********** JpaPageComposite implementation **********
-
-	public String getHelpID() {
-		return EclipseLinkHelpContextIds.PERSISTENCE_SCHEMA_GENERATION;
-	}
-
-	public Image getPageImage() {
-		return null;
-	}
-
-	public String getPageText() {
-		return EclipseLinkUiMessages.PersistenceXmlSchemaGenerationTab_title;
-	}
-}
\ No newline at end of file
diff --git a/jpa/plugins/org.eclipse.jpt.eclipselink.ui/src/org/eclipse/jpt/eclipselink/ui/internal/persistencexml/details/EclipseLinkNavigatorItemContentProviderFactory.java b/jpa/plugins/org.eclipse.jpt.eclipselink.ui/src/org/eclipse/jpt/eclipselink/ui/internal/persistencexml/details/EclipseLinkNavigatorItemContentProviderFactory.java
deleted file mode 100644
index f921d3b..0000000
--- a/jpa/plugins/org.eclipse.jpt.eclipselink.ui/src/org/eclipse/jpt/eclipselink/ui/internal/persistencexml/details/EclipseLinkNavigatorItemContentProviderFactory.java
+++ /dev/null
@@ -1,94 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008, 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- *******************************************************************************/
-package org.eclipse.jpt.eclipselink.ui.internal.persistencexml.details;
-
-import java.util.ArrayList;
-import java.util.List;
-import org.eclipse.jpt.core.context.JpaContextNode;
-import org.eclipse.jpt.core.context.MappingFile;
-import org.eclipse.jpt.core.context.persistence.MappingFileRef;
-import org.eclipse.jpt.eclipselink.core.internal.context.persistence.EclipseLinkPersistenceUnit;
-import org.eclipse.jpt.ui.internal.jface.DelegatingTreeContentAndLabelProvider;
-import org.eclipse.jpt.ui.internal.platform.generic.GenericNavigatorItemContentProviderFactory;
-import org.eclipse.jpt.ui.jface.DelegatingContentAndLabelProvider;
-import org.eclipse.jpt.ui.jface.TreeItemContentProvider;
-import org.eclipse.jpt.ui.jface.TreeItemContentProviderFactory;
-import org.eclipse.jpt.utility.internal.model.value.CompositeCollectionValueModel;
-import org.eclipse.jpt.utility.internal.model.value.PropertyAspectAdapter;
-import org.eclipse.jpt.utility.internal.model.value.PropertyCollectionValueModelAdapter;
-import org.eclipse.jpt.utility.model.value.CollectionValueModel;
-
-/**
- * EclipseLinkNavigatorItemContentProviderFactory
- */
-public class EclipseLinkNavigatorItemContentProviderFactory
-	extends GenericNavigatorItemContentProviderFactory
-	implements TreeItemContentProviderFactory
-{
-	@Override
-	public TreeItemContentProvider buildItemContentProvider(
-			Object item, DelegatingContentAndLabelProvider contentAndLabelProvider) {
-		DelegatingTreeContentAndLabelProvider treeContentAndLabelProvider = 
-			(DelegatingTreeContentAndLabelProvider) contentAndLabelProvider;
-		
-		if (item instanceof EclipseLinkPersistenceUnit) {
-			return new EclipseLinkPersistenceUnitItemContentProvider(
-				(EclipseLinkPersistenceUnit) item, treeContentAndLabelProvider);	
-		}
-		
-		return super.buildItemContentProvider(item, contentAndLabelProvider);
-	}
-	
-	
-	public static class EclipseLinkPersistenceUnitItemContentProvider 
-		extends PersistenceUnitItemContentProvider
-	{
-		public EclipseLinkPersistenceUnitItemContentProvider(
-				EclipseLinkPersistenceUnit persistenceUnit, DelegatingTreeContentAndLabelProvider contentProvider) {
-			super(persistenceUnit, contentProvider);
-		}
-		
-		@Override
-		public EclipseLinkPersistenceUnit getModel() {
-			return (EclipseLinkPersistenceUnit) super.getModel();
-		}
-		
-		@Override
-		protected CollectionValueModel<JpaContextNode> buildChildrenModel() {
-			List<CollectionValueModel<? extends JpaContextNode>> list = new ArrayList<CollectionValueModel<? extends JpaContextNode>>();
-			list.add(buildSpecifiedOrmXmlCvm());
-			list.add(buildImpliedMappingFileCvm());
-			list.add(buildImpliedEclipseLinkMappingFileCvm());
-			list.add(buildPersistentTypeCvm());
-			list.add(buildJarFileCvm());
-			return new CompositeCollectionValueModel<CollectionValueModel<? extends JpaContextNode>, JpaContextNode>(list);
-		}
-		
-		private CollectionValueModel<MappingFile> buildImpliedEclipseLinkMappingFileCvm() {
-			return new PropertyCollectionValueModelAdapter<MappingFile>(
-				new PropertyAspectAdapter<MappingFileRef, MappingFile>(
-						new PropertyAspectAdapter<EclipseLinkPersistenceUnit, MappingFileRef>(
-								EclipseLinkPersistenceUnit.IMPLIED_ECLIPSELINK_MAPPING_FILE_REF_PROPERTY,
-								getModel()) {
-							@Override
-							protected MappingFileRef buildValue_() {
-								return subject.getImpliedEclipseLinkMappingFileRef();
-							}
-						},
-						MappingFileRef.MAPPING_FILE_PROPERTY) {
-					@Override
-					protected MappingFile buildValue_() {
-						return subject.getMappingFile();
-					}
-				}
-			);
-		}
-	}
-}
diff --git a/jpa/plugins/org.eclipse.jpt.eclipselink.ui/src/org/eclipse/jpt/eclipselink/ui/internal/persistencexml/details/EclipseLinkNavigatorItemLabelProviderFactory.java b/jpa/plugins/org.eclipse.jpt.eclipselink.ui/src/org/eclipse/jpt/eclipselink/ui/internal/persistencexml/details/EclipseLinkNavigatorItemLabelProviderFactory.java
deleted file mode 100644
index 6fa03d3..0000000
--- a/jpa/plugins/org.eclipse.jpt.eclipselink.ui/src/org/eclipse/jpt/eclipselink/ui/internal/persistencexml/details/EclipseLinkNavigatorItemLabelProviderFactory.java
+++ /dev/null
@@ -1,23 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- *******************************************************************************/
-package org.eclipse.jpt.eclipselink.ui.internal.persistencexml.details;
-
-import org.eclipse.jpt.ui.internal.platform.generic.GenericNavigatorItemLabelProviderFactory;
-import org.eclipse.jpt.ui.jface.ItemLabelProviderFactory;
-
-/**
- * EclipseLinkNavigatorItemLabelProviderFactory
- */
-public class EclipseLinkNavigatorItemLabelProviderFactory
-	extends GenericNavigatorItemLabelProviderFactory
-	implements ItemLabelProviderFactory
-{
-	
-}
diff --git a/jpa/plugins/org.eclipse.jpt.eclipselink.ui/src/org/eclipse/jpt/eclipselink/ui/internal/platform/EclipseLink1_1JpaPlatformUiFactory.java b/jpa/plugins/org.eclipse.jpt.eclipselink.ui/src/org/eclipse/jpt/eclipselink/ui/internal/platform/EclipseLink1_1JpaPlatformUiFactory.java
deleted file mode 100644
index 6eb2aaf..0000000
--- a/jpa/plugins/org.eclipse.jpt.eclipselink.ui/src/org/eclipse/jpt/eclipselink/ui/internal/platform/EclipseLink1_1JpaPlatformUiFactory.java
+++ /dev/null
@@ -1,43 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- *
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.eclipselink.ui.internal.platform;
-
-import org.eclipse.jpt.eclipselink.ui.internal.EclipseLinkJpaUiFactory;
-import org.eclipse.jpt.eclipselink.ui.internal.structure.EclipseLinkPersistenceResourceModelStructureProvider;
-import org.eclipse.jpt.ui.JpaPlatformUi;
-import org.eclipse.jpt.ui.JpaPlatformUiFactory;
-import org.eclipse.jpt.ui.internal.GenericJpaPlatformUiProvider;
-import org.eclipse.jpt.ui.internal.structure.JavaResourceModelStructureProvider;
-
-public class EclipseLink1_1JpaPlatformUiFactory implements JpaPlatformUiFactory
-{
-
-	/**
-	 * Zero arg constructor for extension point
-	 */
-	public EclipseLink1_1JpaPlatformUiFactory() {
-		super();
-	}
-
-	public JpaPlatformUi buildJpaPlatformUi() {
-		return new EclipseLinkJpaPlatformUi(
-			new EclipseLinkJpaUiFactory(), //new EclipseLink1_1JpaUiFactory() is not being used because 
-										   //we don't want the java Access annotation work to be exposed yet
-										   //EclipseLink has backed out its JPA 2.0 annotation support until 
-										   //it is released or licensing issues are cleared up
-			new EclipseLinkNavigatorProvider(),
-			JavaResourceModelStructureProvider.instance(), 
-			EclipseLinkPersistenceResourceModelStructureProvider.instance(),
-			GenericJpaPlatformUiProvider.instance(),
-			EclipseLinkJpaPlatformUiProvider.instance(),
-			EclipseLink1_1JpaPlatformUiProvider.instance()
-		);
-	}
-}
diff --git a/jpa/plugins/org.eclipse.jpt.eclipselink.ui/src/org/eclipse/jpt/eclipselink/ui/internal/platform/EclipseLink1_1JpaPlatformUiProvider.java b/jpa/plugins/org.eclipse.jpt.eclipselink.ui/src/org/eclipse/jpt/eclipselink/ui/internal/platform/EclipseLink1_1JpaPlatformUiProvider.java
deleted file mode 100644
index 221a36f..0000000
--- a/jpa/plugins/org.eclipse.jpt.eclipselink.ui/src/org/eclipse/jpt/eclipselink/ui/internal/platform/EclipseLink1_1JpaPlatformUiProvider.java
+++ /dev/null
@@ -1,116 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.eclipselink.ui.internal.platform;
-
-import java.util.List;
-import org.eclipse.jpt.core.context.AttributeMapping;
-import org.eclipse.jpt.eclipselink.ui.internal.orm.details.EclipseLink1_1OrmBasicCollectionMappingUiProvider;
-import org.eclipse.jpt.eclipselink.ui.internal.orm.details.EclipseLink1_1OrmBasicMapMappingUiProvider;
-import org.eclipse.jpt.eclipselink.ui.internal.orm.details.EclipseLink1_1OrmBasicMappingUiProvider;
-import org.eclipse.jpt.eclipselink.ui.internal.orm.details.EclipseLink1_1OrmEmbeddableUiProvider;
-import org.eclipse.jpt.eclipselink.ui.internal.orm.details.EclipseLink1_1OrmEmbeddedIdMappingUiProvider;
-import org.eclipse.jpt.eclipselink.ui.internal.orm.details.EclipseLink1_1OrmEmbeddedMappingUiProvider;
-import org.eclipse.jpt.eclipselink.ui.internal.orm.details.EclipseLink1_1OrmEntityUiProvider;
-import org.eclipse.jpt.eclipselink.ui.internal.orm.details.EclipseLink1_1OrmIdMappingUiProvider;
-import org.eclipse.jpt.eclipselink.ui.internal.orm.details.EclipseLink1_1OrmManyToManyMappingUiProvider;
-import org.eclipse.jpt.eclipselink.ui.internal.orm.details.EclipseLink1_1OrmManyToOneMappingUiProvider;
-import org.eclipse.jpt.eclipselink.ui.internal.orm.details.EclipseLink1_1OrmMappedSuperclassUiProvider;
-import org.eclipse.jpt.eclipselink.ui.internal.orm.details.EclipseLink1_1OrmOneToManyMappingUiProvider;
-import org.eclipse.jpt.eclipselink.ui.internal.orm.details.EclipseLink1_1OrmOneToOneMappingUiProvider;
-import org.eclipse.jpt.eclipselink.ui.internal.orm.details.EclipseLink1_1OrmTransformationMappingUiProvider;
-import org.eclipse.jpt.eclipselink.ui.internal.orm.details.EclipseLink1_1OrmTransientMappingUiProvider;
-import org.eclipse.jpt.eclipselink.ui.internal.orm.details.EclipseLink1_1OrmVariableOneToOneMappingUiProvider;
-import org.eclipse.jpt.eclipselink.ui.internal.orm.details.EclipseLink1_1OrmVersionMappingUiProvider;
-import org.eclipse.jpt.eclipselink.ui.internal.structure.EclipseLink1_1OrmResourceModelStructureProvider;
-import org.eclipse.jpt.ui.JpaPlatformUiProvider;
-import org.eclipse.jpt.ui.details.AttributeMappingUiProvider;
-import org.eclipse.jpt.ui.details.DefaultAttributeMappingUiProvider;
-import org.eclipse.jpt.ui.details.DefaultTypeMappingUiProvider;
-import org.eclipse.jpt.ui.details.JpaDetailsProvider;
-import org.eclipse.jpt.ui.details.TypeMappingUiProvider;
-import org.eclipse.jpt.ui.internal.AbstractJpaPlatformUiProvider;
-import org.eclipse.jpt.ui.structure.JpaStructureProvider;
-
-public class EclipseLink1_1JpaPlatformUiProvider extends AbstractJpaPlatformUiProvider
-{
-
-	// singleton
-	private static final JpaPlatformUiProvider INSTANCE = new EclipseLink1_1JpaPlatformUiProvider();
-
-	/**
-	 * Return the singleton.
-	 */
-	public static JpaPlatformUiProvider instance() {
-		return INSTANCE;
-	}
-
-	/**
-	 * Ensure single instance.
-	 */
-	private EclipseLink1_1JpaPlatformUiProvider() {
-		super();
-	}
-
-
-	// ********** details providers **********
-	
-	@Override
-	protected void addDetailsProvidersTo(List<JpaDetailsProvider> providers) {
-		//none specific to EclipseLink 1.1
-	}
-	
-	// ********** structure providers **********
-	
-	@Override
-	protected void addMappingFileStructureProvidersTo(List<JpaStructureProvider> providers) {
-		providers.add(EclipseLink1_1OrmResourceModelStructureProvider.instance());
-	}
-
-	
-	// ********** type mapping ui providers **********
-
-	@Override
-	protected void addTypeMappingUiProvidersTo(List<TypeMappingUiProvider<?>> providers) {
-		providers.add(EclipseLink1_1OrmEntityUiProvider.instance());
-		providers.add(EclipseLink1_1OrmMappedSuperclassUiProvider.instance());
-		providers.add(EclipseLink1_1OrmEmbeddableUiProvider.instance());
-	}
-	
-	@Override
-	protected void addDefaultTypeMappingUiProvidersTo(List<DefaultTypeMappingUiProvider<?>> providers) {
-		//none specific to EclipseLink 1.1
-	}
-	
-	
-	// ********** attribute mapping ui providers **********
-	
-	@Override
-	protected void addAttributeMappingUiProvidersTo(List<AttributeMappingUiProvider<? extends AttributeMapping>> providers) {
-		providers.add(EclipseLink1_1OrmIdMappingUiProvider.instance());
-		providers.add(EclipseLink1_1OrmEmbeddedIdMappingUiProvider.instance());
-		providers.add(EclipseLink1_1OrmBasicMappingUiProvider.instance());
-		providers.add(EclipseLink1_1OrmBasicCollectionMappingUiProvider.instance());
-		providers.add(EclipseLink1_1OrmBasicMapMappingUiProvider.instance());
-		providers.add(EclipseLink1_1OrmVersionMappingUiProvider.instance());
-		providers.add(EclipseLink1_1OrmManyToOneMappingUiProvider.instance());
-		providers.add(EclipseLink1_1OrmOneToManyMappingUiProvider.instance());
-		providers.add(EclipseLink1_1OrmEmbeddedMappingUiProvider.instance());
-		providers.add(EclipseLink1_1OrmOneToOneMappingUiProvider.instance());
-		providers.add(EclipseLink1_1OrmVariableOneToOneMappingUiProvider.instance());
-		providers.add(EclipseLink1_1OrmManyToManyMappingUiProvider.instance());
-		providers.add(EclipseLink1_1OrmTransformationMappingUiProvider.instance());
-		providers.add(EclipseLink1_1OrmTransientMappingUiProvider.instance());
-	}
-	
-	@Override
-	protected void addDefaultAttributeMappingUiProvidersTo(List<DefaultAttributeMappingUiProvider<? extends AttributeMapping>> providers) {
-		//none specific to EclipseLink 1.1
-	}
-}
diff --git a/jpa/plugins/org.eclipse.jpt.eclipselink.ui/src/org/eclipse/jpt/eclipselink/ui/internal/platform/EclipseLinkJpaPlatformUi.java b/jpa/plugins/org.eclipse.jpt.eclipselink.ui/src/org/eclipse/jpt/eclipselink/ui/internal/platform/EclipseLinkJpaPlatformUi.java
deleted file mode 100644
index 5ceaa9e..0000000
--- a/jpa/plugins/org.eclipse.jpt.eclipselink.ui/src/org/eclipse/jpt/eclipselink/ui/internal/platform/EclipseLinkJpaPlatformUi.java
+++ /dev/null
@@ -1,40 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008, 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- *******************************************************************************/
-package org.eclipse.jpt.eclipselink.ui.internal.platform;
-
-import org.eclipse.jface.viewers.IStructuredSelection;
-import org.eclipse.jpt.core.JpaProject;
-import org.eclipse.jpt.eclipselink.ui.internal.ddlgen.EclipseLinkDDLGeneratorUi;
-import org.eclipse.jpt.ui.JpaPlatformUiProvider;
-import org.eclipse.jpt.ui.JpaUiFactory;
-import org.eclipse.jpt.ui.internal.platform.base.BaseJpaPlatformUi;
-import org.eclipse.jpt.ui.navigator.JpaNavigatorProvider;
-import org.eclipse.jpt.ui.structure.JpaStructureProvider;
-
-public class EclipseLinkJpaPlatformUi
-	extends BaseJpaPlatformUi
-{
-	public EclipseLinkJpaPlatformUi(
-		JpaUiFactory jpaUiFactory,
-		JpaNavigatorProvider navigatorProvider,
-		JpaStructureProvider persistenceStructureProvider, 
-		JpaStructureProvider javaStructureProvider,
-		JpaPlatformUiProvider... platformUiProviders) 
-	{
-		super(jpaUiFactory, navigatorProvider, persistenceStructureProvider, javaStructureProvider, platformUiProviders);
-	}
-
-	// ********** DDL generation **********
-
-	public void generateDDL(JpaProject project, IStructuredSelection selection) {
-		EclipseLinkDDLGeneratorUi.generate(project);
-	}
-
-}
diff --git a/jpa/plugins/org.eclipse.jpt.eclipselink.ui/src/org/eclipse/jpt/eclipselink/ui/internal/platform/EclipseLinkJpaPlatformUiFactory.java b/jpa/plugins/org.eclipse.jpt.eclipselink.ui/src/org/eclipse/jpt/eclipselink/ui/internal/platform/EclipseLinkJpaPlatformUiFactory.java
deleted file mode 100644
index 1170972..0000000
--- a/jpa/plugins/org.eclipse.jpt.eclipselink.ui/src/org/eclipse/jpt/eclipselink/ui/internal/platform/EclipseLinkJpaPlatformUiFactory.java
+++ /dev/null
@@ -1,39 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- *
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.eclipselink.ui.internal.platform;
-
-import org.eclipse.jpt.eclipselink.ui.internal.EclipseLinkJpaUiFactory;
-import org.eclipse.jpt.eclipselink.ui.internal.structure.EclipseLinkPersistenceResourceModelStructureProvider;
-import org.eclipse.jpt.ui.JpaPlatformUi;
-import org.eclipse.jpt.ui.JpaPlatformUiFactory;
-import org.eclipse.jpt.ui.internal.GenericJpaPlatformUiProvider;
-import org.eclipse.jpt.ui.internal.structure.JavaResourceModelStructureProvider;
-
-public class EclipseLinkJpaPlatformUiFactory implements JpaPlatformUiFactory
-{
-
-	/**
-	 * Zero arg constructor for extension point
-	 */
-	public EclipseLinkJpaPlatformUiFactory() {
-		super();
-	}
-
-	public JpaPlatformUi buildJpaPlatformUi() {
-		return new EclipseLinkJpaPlatformUi(
-			new EclipseLinkJpaUiFactory(),
-			new EclipseLinkNavigatorProvider(),
-			JavaResourceModelStructureProvider.instance(), 
-			EclipseLinkPersistenceResourceModelStructureProvider.instance(),
-			GenericJpaPlatformUiProvider.instance(),
-			EclipseLinkJpaPlatformUiProvider.instance()
-		);
-	}
-}
diff --git a/jpa/plugins/org.eclipse.jpt.eclipselink.ui/src/org/eclipse/jpt/eclipselink/ui/internal/platform/EclipseLinkJpaPlatformUiProvider.java b/jpa/plugins/org.eclipse.jpt.eclipselink.ui/src/org/eclipse/jpt/eclipselink/ui/internal/platform/EclipseLinkJpaPlatformUiProvider.java
deleted file mode 100644
index 0bae1c3..0000000
--- a/jpa/plugins/org.eclipse.jpt.eclipselink.ui/src/org/eclipse/jpt/eclipselink/ui/internal/platform/EclipseLinkJpaPlatformUiProvider.java
+++ /dev/null
@@ -1,132 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.eclipselink.ui.internal.platform;
-
-import java.util.List;
-import org.eclipse.jpt.core.context.AttributeMapping;
-import org.eclipse.jpt.eclipselink.ui.internal.java.details.DefaultOneToManyMappingUiProvider;
-import org.eclipse.jpt.eclipselink.ui.internal.java.details.DefaultOneToOneMappingUiProvider;
-import org.eclipse.jpt.eclipselink.ui.internal.java.details.DefaultVariableOneToOneMappingUiProvider;
-import org.eclipse.jpt.eclipselink.ui.internal.java.details.EclipseLinkJavaBasicCollectionMappingUiProvider;
-import org.eclipse.jpt.eclipselink.ui.internal.java.details.EclipseLinkJavaBasicMapMappingUiProvider;
-import org.eclipse.jpt.eclipselink.ui.internal.java.details.EclipseLinkJavaTransformationMappingUiProvider;
-import org.eclipse.jpt.eclipselink.ui.internal.java.details.EclipseLinkJavaVariableOneToOneMappingUiProvider;
-import org.eclipse.jpt.eclipselink.ui.internal.orm.details.EclipseLinkEntityMappingsDetailsProvider;
-import org.eclipse.jpt.eclipselink.ui.internal.orm.details.EclipseLinkOrmBasicCollectionMappingUiProvider;
-import org.eclipse.jpt.eclipselink.ui.internal.orm.details.EclipseLinkOrmBasicMapMappingUiProvider;
-import org.eclipse.jpt.eclipselink.ui.internal.orm.details.EclipseLinkOrmBasicMappingUiProvider;
-import org.eclipse.jpt.eclipselink.ui.internal.orm.details.EclipseLinkOrmEmbeddableUiProvider;
-import org.eclipse.jpt.eclipselink.ui.internal.orm.details.EclipseLinkOrmEmbeddedIdMappingUiProvider;
-import org.eclipse.jpt.eclipselink.ui.internal.orm.details.EclipseLinkOrmEmbeddedMappingUiProvider;
-import org.eclipse.jpt.eclipselink.ui.internal.orm.details.EclipseLinkOrmEntityUiProvider;
-import org.eclipse.jpt.eclipselink.ui.internal.orm.details.EclipseLinkOrmIdMappingUiProvider;
-import org.eclipse.jpt.eclipselink.ui.internal.orm.details.EclipseLinkOrmManyToManyMappingUiProvider;
-import org.eclipse.jpt.eclipselink.ui.internal.orm.details.EclipseLinkOrmManyToOneMappingUiProvider;
-import org.eclipse.jpt.eclipselink.ui.internal.orm.details.EclipseLinkOrmMappedSuperclassUiProvider;
-import org.eclipse.jpt.eclipselink.ui.internal.orm.details.EclipseLinkOrmOneToManyMappingUiProvider;
-import org.eclipse.jpt.eclipselink.ui.internal.orm.details.EclipseLinkOrmOneToOneMappingUiProvider;
-import org.eclipse.jpt.eclipselink.ui.internal.orm.details.EclipseLinkOrmTransformationMappingUiProvider;
-import org.eclipse.jpt.eclipselink.ui.internal.orm.details.EclipseLinkOrmTransientMappingUiProvider;
-import org.eclipse.jpt.eclipselink.ui.internal.orm.details.EclipseLinkOrmVariableOneToOneMappingUiProvider;
-import org.eclipse.jpt.eclipselink.ui.internal.orm.details.EclipseLinkOrmVersionMappingUiProvider;
-import org.eclipse.jpt.eclipselink.ui.internal.structure.EclipseLinkOrmResourceModelStructureProvider;
-import org.eclipse.jpt.ui.JpaPlatformUiProvider;
-import org.eclipse.jpt.ui.details.AttributeMappingUiProvider;
-import org.eclipse.jpt.ui.details.DefaultAttributeMappingUiProvider;
-import org.eclipse.jpt.ui.details.DefaultTypeMappingUiProvider;
-import org.eclipse.jpt.ui.details.JpaDetailsProvider;
-import org.eclipse.jpt.ui.details.TypeMappingUiProvider;
-import org.eclipse.jpt.ui.internal.AbstractJpaPlatformUiProvider;
-import org.eclipse.jpt.ui.structure.JpaStructureProvider;
-
-public class EclipseLinkJpaPlatformUiProvider extends AbstractJpaPlatformUiProvider
-{
-
-	// singleton
-	private static final JpaPlatformUiProvider INSTANCE = new EclipseLinkJpaPlatformUiProvider();
-
-	/**
-	 * Return the singleton.
-	 */
-	public static JpaPlatformUiProvider instance() {
-		return INSTANCE;
-	}
-
-	/**
-	 * Ensure single instance.
-	 */
-	private EclipseLinkJpaPlatformUiProvider() {
-		super();
-	}
-
-
-	// ********** details providers **********
-	
-	@Override
-	protected void addDetailsProvidersTo(List<JpaDetailsProvider> providers) {
-		providers.add(EclipseLinkEntityMappingsDetailsProvider.instance());
-	}
-	
-	
-	// ********** structure providers **********
-	
-	@Override
-	protected void addMappingFileStructureProvidersTo(List<JpaStructureProvider> providers) {
-		providers.add(EclipseLinkOrmResourceModelStructureProvider.instance());
-	}
-	
-	
-	// ********** type mapping ui providers **********
-
-	@Override
-	protected void addTypeMappingUiProvidersTo(List<TypeMappingUiProvider<?>> providers) {
-		providers.add(EclipseLinkOrmEntityUiProvider.instance());
-		providers.add(EclipseLinkOrmMappedSuperclassUiProvider.instance());
-		providers.add(EclipseLinkOrmEmbeddableUiProvider.instance());
-	}
-	
-	@Override
-	protected void addDefaultTypeMappingUiProvidersTo(List<DefaultTypeMappingUiProvider<?>> providers) {
-		//none specific to EclipseLink
-	}
-	
-	
-	// ********** attribute mapping ui providers **********
-	
-	@Override
-	protected void addAttributeMappingUiProvidersTo(List<AttributeMappingUiProvider<? extends AttributeMapping>> providers) {
-		providers.add(EclipseLinkJavaBasicCollectionMappingUiProvider.instance());
-		providers.add(EclipseLinkJavaBasicMapMappingUiProvider.instance());
-		providers.add(EclipseLinkJavaVariableOneToOneMappingUiProvider.instance());
-		providers.add(EclipseLinkJavaTransformationMappingUiProvider.instance());
-		
-		providers.add(EclipseLinkOrmIdMappingUiProvider.instance());
-		providers.add(EclipseLinkOrmEmbeddedIdMappingUiProvider.instance());
-		providers.add(EclipseLinkOrmBasicMappingUiProvider.instance());
-		providers.add(EclipseLinkOrmBasicCollectionMappingUiProvider.instance());
-		providers.add(EclipseLinkOrmBasicMapMappingUiProvider.instance());
-		providers.add(EclipseLinkOrmVersionMappingUiProvider.instance());
-		providers.add(EclipseLinkOrmManyToOneMappingUiProvider.instance());
-		providers.add(EclipseLinkOrmOneToManyMappingUiProvider.instance());
-		providers.add(EclipseLinkOrmEmbeddedMappingUiProvider.instance());
-		providers.add(EclipseLinkOrmOneToOneMappingUiProvider.instance());
-		providers.add(EclipseLinkOrmVariableOneToOneMappingUiProvider.instance());
-		providers.add(EclipseLinkOrmManyToManyMappingUiProvider.instance());
-		providers.add(EclipseLinkOrmTransformationMappingUiProvider.instance());
-		providers.add(EclipseLinkOrmTransientMappingUiProvider.instance());
-	}
-
-	@Override
-	protected void addDefaultAttributeMappingUiProvidersTo(List<DefaultAttributeMappingUiProvider<? extends AttributeMapping>> providers) {
-		providers.add(DefaultOneToOneMappingUiProvider.instance());
-		providers.add(DefaultOneToManyMappingUiProvider.instance());
-		providers.add(DefaultVariableOneToOneMappingUiProvider.instance());
-	}
-}
diff --git a/jpa/plugins/org.eclipse.jpt.eclipselink.ui/src/org/eclipse/jpt/eclipselink/ui/internal/platform/EclipseLinkNavigatorProvider.java b/jpa/plugins/org.eclipse.jpt.eclipselink.ui/src/org/eclipse/jpt/eclipselink/ui/internal/platform/EclipseLinkNavigatorProvider.java
deleted file mode 100644
index f8e5c4b..0000000
--- a/jpa/plugins/org.eclipse.jpt.eclipselink.ui/src/org/eclipse/jpt/eclipselink/ui/internal/platform/EclipseLinkNavigatorProvider.java
+++ /dev/null
@@ -1,34 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- *******************************************************************************/
-package org.eclipse.jpt.eclipselink.ui.internal.platform;
-
-import org.eclipse.jpt.eclipselink.ui.internal.persistencexml.details.EclipseLinkNavigatorItemContentProviderFactory;
-import org.eclipse.jpt.eclipselink.ui.internal.persistencexml.details.EclipseLinkNavigatorItemLabelProviderFactory;
-import org.eclipse.jpt.ui.jface.ItemLabelProviderFactory;
-import org.eclipse.jpt.ui.jface.TreeItemContentProviderFactory;
-import org.eclipse.jpt.ui.navigator.JpaNavigatorProvider;
-
-/**
- * EclipseLinkNavigatorProvider
- */
-public class EclipseLinkNavigatorProvider implements JpaNavigatorProvider
-{
-	public ItemLabelProviderFactory getItemLabelProviderFactory() {
-		return new EclipseLinkNavigatorItemLabelProviderFactory();
-	}
-
-	public TreeItemContentProviderFactory getTreeItemContentProviderFactory() {
-		return new EclipseLinkNavigatorItemContentProviderFactory();
-	}
-
-	public void dispose() {
-	
-	}
-}
diff --git a/jpa/plugins/org.eclipse.jpt.eclipselink.ui/src/org/eclipse/jpt/eclipselink/ui/internal/structure/EclipseLink1_1OrmResourceModelStructureProvider.java b/jpa/plugins/org.eclipse.jpt.eclipselink.ui/src/org/eclipse/jpt/eclipselink/ui/internal/structure/EclipseLink1_1OrmResourceModelStructureProvider.java
deleted file mode 100644
index c672346..0000000
--- a/jpa/plugins/org.eclipse.jpt.eclipselink.ui/src/org/eclipse/jpt/eclipselink/ui/internal/structure/EclipseLink1_1OrmResourceModelStructureProvider.java
+++ /dev/null
@@ -1,52 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- *
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.eclipselink.ui.internal.structure;
-
-import org.eclipse.core.runtime.content.IContentType;
-import org.eclipse.jpt.eclipselink.core.internal.JptEclipseLinkCorePlugin;
-import org.eclipse.jpt.ui.internal.structure.OrmItemContentProviderFactory;
-import org.eclipse.jpt.ui.internal.structure.OrmItemLabelProviderFactory;
-import org.eclipse.jpt.ui.jface.ItemLabelProviderFactory;
-import org.eclipse.jpt.ui.jface.TreeItemContentProviderFactory;
-import org.eclipse.jpt.ui.structure.JpaStructureProvider;
-
-public class EclipseLink1_1OrmResourceModelStructureProvider
-	implements JpaStructureProvider
-{
-	// singleton
-	private static final JpaStructureProvider INSTANCE = new EclipseLink1_1OrmResourceModelStructureProvider();
-
-	/**
-	 * Return the singleton.
-	 */
-	public static JpaStructureProvider instance() {
-		return INSTANCE;
-	}
-
-	/**
-	 * Ensure single instance.
-	 */
-	private EclipseLink1_1OrmResourceModelStructureProvider() {
-		super();
-	}
-	
-	public IContentType getContentType() {
-		return JptEclipseLinkCorePlugin.ECLIPSELINK1_1_ORM_XML_CONTENT_TYPE;
-	}
-
-	public TreeItemContentProviderFactory getTreeItemContentProviderFactory() {
-		return new OrmItemContentProviderFactory();
-	}
-	
-	public ItemLabelProviderFactory getItemLabelProviderFactory() {
-		return new OrmItemLabelProviderFactory();
-	}
-
-}
diff --git a/jpa/plugins/org.eclipse.jpt.eclipselink.ui/src/org/eclipse/jpt/eclipselink/ui/internal/structure/EclipseLinkOrmResourceModelStructureProvider.java b/jpa/plugins/org.eclipse.jpt.eclipselink.ui/src/org/eclipse/jpt/eclipselink/ui/internal/structure/EclipseLinkOrmResourceModelStructureProvider.java
deleted file mode 100644
index 656ba8c..0000000
--- a/jpa/plugins/org.eclipse.jpt.eclipselink.ui/src/org/eclipse/jpt/eclipselink/ui/internal/structure/EclipseLinkOrmResourceModelStructureProvider.java
+++ /dev/null
@@ -1,52 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008, 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- *
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.eclipselink.ui.internal.structure;
-
-import org.eclipse.core.runtime.content.IContentType;
-import org.eclipse.jpt.eclipselink.core.internal.JptEclipseLinkCorePlugin;
-import org.eclipse.jpt.ui.internal.structure.OrmItemContentProviderFactory;
-import org.eclipse.jpt.ui.internal.structure.OrmItemLabelProviderFactory;
-import org.eclipse.jpt.ui.jface.ItemLabelProviderFactory;
-import org.eclipse.jpt.ui.jface.TreeItemContentProviderFactory;
-import org.eclipse.jpt.ui.structure.JpaStructureProvider;
-
-public class EclipseLinkOrmResourceModelStructureProvider
-	implements JpaStructureProvider
-{
-	// singleton
-	private static final JpaStructureProvider INSTANCE = new EclipseLinkOrmResourceModelStructureProvider();
-
-	/**
-	 * Return the singleton.
-	 */
-	public static JpaStructureProvider instance() {
-		return INSTANCE;
-	}
-
-	/**
-	 * Ensure single instance.
-	 */
-	private EclipseLinkOrmResourceModelStructureProvider() {
-		super();
-	}
-	
-	public IContentType getContentType() {
-		return JptEclipseLinkCorePlugin.ECLIPSELINK_ORM_XML_CONTENT_TYPE;
-	}
-
-	public TreeItemContentProviderFactory getTreeItemContentProviderFactory() {
-		return new OrmItemContentProviderFactory();
-	}
-	
-	public ItemLabelProviderFactory getItemLabelProviderFactory() {
-		return new OrmItemLabelProviderFactory();
-	}
-
-}
diff --git a/jpa/plugins/org.eclipse.jpt.eclipselink.ui/src/org/eclipse/jpt/eclipselink/ui/internal/structure/EclipseLinkPersistenceItemContentProviderFactory.java b/jpa/plugins/org.eclipse.jpt.eclipselink.ui/src/org/eclipse/jpt/eclipselink/ui/internal/structure/EclipseLinkPersistenceItemContentProviderFactory.java
deleted file mode 100644
index 2e89f7f..0000000
--- a/jpa/plugins/org.eclipse.jpt.eclipselink.ui/src/org/eclipse/jpt/eclipselink/ui/internal/structure/EclipseLinkPersistenceItemContentProviderFactory.java
+++ /dev/null
@@ -1,137 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008, 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- *******************************************************************************/
-package org.eclipse.jpt.eclipselink.ui.internal.structure;
-
-import java.util.ArrayList;
-import java.util.Iterator;
-import java.util.List;
-import java.util.ListIterator;
-
-import org.eclipse.jpt.core.JpaStructureNode;
-import org.eclipse.jpt.core.context.persistence.ClassRef;
-import org.eclipse.jpt.core.context.persistence.MappingFileRef;
-import org.eclipse.jpt.core.context.persistence.PersistenceUnit;
-import org.eclipse.jpt.eclipselink.core.internal.context.persistence.EclipseLinkPersistenceUnit;
-import org.eclipse.jpt.ui.internal.jface.DelegatingTreeContentAndLabelProvider;
-import org.eclipse.jpt.ui.internal.structure.PersistenceItemContentProviderFactory;
-import org.eclipse.jpt.ui.jface.DelegatingContentAndLabelProvider;
-import org.eclipse.jpt.ui.jface.TreeItemContentProvider;
-import org.eclipse.jpt.utility.internal.model.value.CollectionAspectAdapter;
-import org.eclipse.jpt.utility.internal.model.value.CompositeCollectionValueModel;
-import org.eclipse.jpt.utility.internal.model.value.ListAspectAdapter;
-import org.eclipse.jpt.utility.internal.model.value.ListCollectionValueModelAdapter;
-import org.eclipse.jpt.utility.internal.model.value.PropertyAspectAdapter;
-import org.eclipse.jpt.utility.internal.model.value.PropertyCollectionValueModelAdapter;
-import org.eclipse.jpt.utility.model.value.CollectionValueModel;
-
-public class EclipseLinkPersistenceItemContentProviderFactory
-	extends PersistenceItemContentProviderFactory
-{
-	@Override
-	public TreeItemContentProvider buildItemContentProvider(
-			Object item, DelegatingContentAndLabelProvider contentAndLabelProvider) {
-		DelegatingTreeContentAndLabelProvider treeContentProvider = (DelegatingTreeContentAndLabelProvider) contentAndLabelProvider;
-		if (item instanceof EclipseLinkPersistenceUnit) {
-			return new EclipseLinkPersistenceUnitItemContentProvider((EclipseLinkPersistenceUnit) item, treeContentProvider);	
-		}
-		return super.buildItemContentProvider(item, contentAndLabelProvider);
-	}
-	
-	
-	public static class EclipseLinkPersistenceUnitItemContentProvider 
-		extends PersistenceUnitItemContentProvider
-	{
-		public EclipseLinkPersistenceUnitItemContentProvider(
-				EclipseLinkPersistenceUnit persistenceUnit, DelegatingTreeContentAndLabelProvider contentProvider) {
-			super(persistenceUnit, contentProvider);
-		}
-		
-		@Override
-		public EclipseLinkPersistenceUnit getModel() {
-			return (EclipseLinkPersistenceUnit) super.getModel();
-		}
-		
-		@Override
-		protected CollectionValueModel<JpaStructureNode> buildChildrenModel() {
-			CollectionValueModel<MappingFileRef> specifiedMappingFileCvm = 
-				new ListCollectionValueModelAdapter<MappingFileRef>(
-				new ListAspectAdapter<PersistenceUnit, MappingFileRef>(
-						PersistenceUnit.SPECIFIED_MAPPING_FILE_REFS_LIST,
-						getModel()) {
-					@Override
-					protected ListIterator<MappingFileRef> listIterator_() {
-						return subject.specifiedMappingFileRefs();
-					}
-					@Override
-					protected int size_() {
-						return subject.specifiedMappingFileRefsSize();
-					}
-				});
-			
-			CollectionValueModel<MappingFileRef> impliedMappingFileCvm = 
-				new PropertyCollectionValueModelAdapter<MappingFileRef>(
-					new PropertyAspectAdapter<PersistenceUnit, MappingFileRef>(
-							PersistenceUnit.IMPLIED_MAPPING_FILE_REF_PROPERTY,
-							getModel()) {
-						@Override
-						protected MappingFileRef buildValue_() {
-							return subject.getImpliedMappingFileRef();
-						}
-					}
-				);
-			CollectionValueModel<MappingFileRef> impliedEclipseLinkMappingFileCvm = 
-				new PropertyCollectionValueModelAdapter<MappingFileRef>(
-					new PropertyAspectAdapter<EclipseLinkPersistenceUnit, MappingFileRef>(
-							EclipseLinkPersistenceUnit.IMPLIED_ECLIPSELINK_MAPPING_FILE_REF_PROPERTY,
-							getModel()) {
-						@Override
-						protected MappingFileRef buildValue_() {
-							return subject.getImpliedEclipseLinkMappingFileRef();
-						}
-					}
-				);
-			CollectionValueModel<ClassRef> specifiedClassCvm = 
-				new ListCollectionValueModelAdapter<ClassRef>(
-				new ListAspectAdapter<PersistenceUnit, ClassRef>(
-						PersistenceUnit.SPECIFIED_CLASS_REFS_LIST,
-						getModel()) {
-					@Override
-					protected ListIterator<ClassRef> listIterator_() {
-						return subject.specifiedClassRefs();
-					}
-					@Override
-					protected int size_() {
-						return subject.specifiedClassRefsSize();
-					}
-				});
-			CollectionValueModel<ClassRef> impliedClassCvm = 
-				new CollectionAspectAdapter<PersistenceUnit, ClassRef>(
-						PersistenceUnit.IMPLIED_CLASS_REFS_COLLECTION,
-						getModel()) {
-					@Override
-					protected Iterator<ClassRef> iterator_() {
-						return subject.impliedClassRefs();
-					}
-					@Override
-					protected int size_() {
-						return subject.impliedClassRefsSize();
-					}
-				};
-			List<CollectionValueModel<? extends JpaStructureNode>> list = new ArrayList<CollectionValueModel<? extends JpaStructureNode>>(4);
-			list.add(specifiedMappingFileCvm);
-			list.add(impliedMappingFileCvm);
-			list.add(impliedEclipseLinkMappingFileCvm);
-			list.add(specifiedClassCvm);
-			list.add(impliedClassCvm);
-			
-			return new CompositeCollectionValueModel<CollectionValueModel<? extends JpaStructureNode>, JpaStructureNode>(list);
-		}
-	}
-}
diff --git a/jpa/plugins/org.eclipse.jpt.eclipselink.ui/src/org/eclipse/jpt/eclipselink/ui/internal/structure/EclipseLinkPersistenceResourceModelStructureProvider.java b/jpa/plugins/org.eclipse.jpt.eclipselink.ui/src/org/eclipse/jpt/eclipselink/ui/internal/structure/EclipseLinkPersistenceResourceModelStructureProvider.java
deleted file mode 100644
index 5502d26..0000000
--- a/jpa/plugins/org.eclipse.jpt.eclipselink.ui/src/org/eclipse/jpt/eclipselink/ui/internal/structure/EclipseLinkPersistenceResourceModelStructureProvider.java
+++ /dev/null
@@ -1,51 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008, 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- *
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.eclipselink.ui.internal.structure;
-
-import org.eclipse.core.runtime.content.IContentType;
-import org.eclipse.jpt.core.JptCorePlugin;
-import org.eclipse.jpt.ui.internal.structure.PersistenceItemLabelProviderFactory;
-import org.eclipse.jpt.ui.jface.ItemLabelProviderFactory;
-import org.eclipse.jpt.ui.jface.TreeItemContentProviderFactory;
-import org.eclipse.jpt.ui.structure.JpaStructureProvider;
-
-public class EclipseLinkPersistenceResourceModelStructureProvider
-	implements JpaStructureProvider
-{
-	// singleton
-	private static final JpaStructureProvider INSTANCE = new EclipseLinkPersistenceResourceModelStructureProvider();
-
-	/**
-	 * Return the singleton.
-	 */
-	public static JpaStructureProvider instance() {
-		return INSTANCE;
-	}
-
-	/**
-	 * Ensure single instance.
-	 */
-	private EclipseLinkPersistenceResourceModelStructureProvider() {
-		super();
-	}
-	
-	public IContentType getContentType() {
-		return JptCorePlugin.PERSISTENCE_XML_CONTENT_TYPE;
-	}
-
-	public TreeItemContentProviderFactory getTreeItemContentProviderFactory() {
-		return new EclipseLinkPersistenceItemContentProviderFactory();
-	}
-
-	public ItemLabelProviderFactory getItemLabelProviderFactory() {
-		return new PersistenceItemLabelProviderFactory();
-	}
-
-}
diff --git a/jpa/plugins/org.eclipse.jpt.eclipselink.ui/src/org/eclipse/jpt/eclipselink/ui/internal/wizards/EclipseLink1_1MappingFileWizard.java b/jpa/plugins/org.eclipse.jpt.eclipselink.ui/src/org/eclipse/jpt/eclipselink/ui/internal/wizards/EclipseLink1_1MappingFileWizard.java
deleted file mode 100644
index 63b515e..0000000
--- a/jpa/plugins/org.eclipse.jpt.eclipselink.ui/src/org/eclipse/jpt/eclipselink/ui/internal/wizards/EclipseLink1_1MappingFileWizard.java
+++ /dev/null
@@ -1,46 +0,0 @@
-/*******************************************************************************
- *  Copyright (c) 2009  Oracle. 
- *  All rights reserved.  This program and the accompanying materials are 
- *  made available under the terms of the Eclipse Public License v1.0 which 
- *  accompanies this distribution, and is available at 
- *  http://www.eclipse.org/legal/epl-v10.html
- *  
- *  Contributors: 
- *  	Oracle - initial API and implementation
- *******************************************************************************/
-package org.eclipse.jpt.eclipselink.ui.internal.wizards;
-
-import org.eclipse.jpt.eclipselink.core.internal.operations.EclipseLink1_1OrmFileCreationDataModelProvider;
-import org.eclipse.jpt.eclipselink.ui.internal.EclipseLinkUiMessages;
-import org.eclipse.jpt.ui.internal.wizards.orm.MappingFileWizard;
-import org.eclipse.jpt.ui.internal.wizards.orm.MappingFileWizardPage;
-import org.eclipse.ui.INewWizard;
-import org.eclipse.wst.common.frameworks.datamodel.IDataModel;
-import org.eclipse.wst.common.frameworks.datamodel.IDataModelProvider;
-
-/**
- * This is referenced in the plugin.xml as an org.eclipse.ui.newWizards extension
- */
-public class EclipseLink1_1MappingFileWizard extends MappingFileWizard 
-	implements INewWizard 
-{
-	public EclipseLink1_1MappingFileWizard() {
-		this(null);
-	}
-	
-	public EclipseLink1_1MappingFileWizard(IDataModel dataModel) {
-		super(dataModel);
-		setWindowTitle(EclipseLinkUiMessages.EclipseLink1_1MappingFileWizard_title);
-	}
-	
-	
-	@Override
-	protected MappingFileWizardPage buildMappingFileWizardPage() {
-		return new EclipseLinkMappingFileWizardPage(getDataModel(), "Page_1", EclipseLinkUiMessages.EclipseLink1_1MappingFileWizardPage_title, EclipseLinkUiMessages.EclipseLink1_1MappingFileWizardPage_desc);
-	}
-	
-	@Override
-	protected IDataModelProvider getDefaultProvider() {
-		return new EclipseLink1_1OrmFileCreationDataModelProvider();
-	}
-}
diff --git a/jpa/plugins/org.eclipse.jpt.eclipselink.ui/src/org/eclipse/jpt/eclipselink/ui/internal/wizards/EclipseLinkMappingFileWizard.java b/jpa/plugins/org.eclipse.jpt.eclipselink.ui/src/org/eclipse/jpt/eclipselink/ui/internal/wizards/EclipseLinkMappingFileWizard.java
deleted file mode 100644
index ce9e117..0000000
--- a/jpa/plugins/org.eclipse.jpt.eclipselink.ui/src/org/eclipse/jpt/eclipselink/ui/internal/wizards/EclipseLinkMappingFileWizard.java
+++ /dev/null
@@ -1,46 +0,0 @@
-/*******************************************************************************
- *  Copyright (c) 2008  Oracle. 
- *  All rights reserved.  This program and the accompanying materials are 
- *  made available under the terms of the Eclipse Public License v1.0 which 
- *  accompanies this distribution, and is available at 
- *  http://www.eclipse.org/legal/epl-v10.html
- *  
- *  Contributors: 
- *  	Oracle - initial API and implementation
- *******************************************************************************/
-package org.eclipse.jpt.eclipselink.ui.internal.wizards;
-
-import org.eclipse.jpt.eclipselink.core.internal.operations.EclipseLinkOrmFileCreationDataModelProvider;
-import org.eclipse.jpt.eclipselink.ui.internal.EclipseLinkUiMessages;
-import org.eclipse.jpt.ui.internal.wizards.orm.MappingFileWizard;
-import org.eclipse.jpt.ui.internal.wizards.orm.MappingFileWizardPage;
-import org.eclipse.ui.INewWizard;
-import org.eclipse.wst.common.frameworks.datamodel.IDataModel;
-import org.eclipse.wst.common.frameworks.datamodel.IDataModelProvider;
-
-/**
- * This is referenced in the plugin.xml as an org.eclipse.ui.newWizards extension
- */
-public class EclipseLinkMappingFileWizard extends MappingFileWizard 
-	implements INewWizard 
-{
-	public EclipseLinkMappingFileWizard() {
-		this(null);
-	}
-	
-	public EclipseLinkMappingFileWizard(IDataModel dataModel) {
-		super(dataModel);
-		setWindowTitle(EclipseLinkUiMessages.MappingFileWizard_title);
-	}
-	
-	
-	@Override
-	protected MappingFileWizardPage buildMappingFileWizardPage() {
-		return new EclipseLinkMappingFileWizardPage(getDataModel(), "Page_1", EclipseLinkUiMessages.MappingFileWizardPage_title, EclipseLinkUiMessages.MappingFileWizardPage_desc);
-	}
-	
-	@Override
-	protected IDataModelProvider getDefaultProvider() {
-		return new EclipseLinkOrmFileCreationDataModelProvider();
-	}
-}
diff --git a/jpa/plugins/org.eclipse.jpt.eclipselink.ui/src/org/eclipse/jpt/eclipselink/ui/internal/wizards/EclipseLinkMappingFileWizardPage.java b/jpa/plugins/org.eclipse.jpt.eclipselink.ui/src/org/eclipse/jpt/eclipselink/ui/internal/wizards/EclipseLinkMappingFileWizardPage.java
deleted file mode 100644
index 5f168cd..0000000
--- a/jpa/plugins/org.eclipse.jpt.eclipselink.ui/src/org/eclipse/jpt/eclipselink/ui/internal/wizards/EclipseLinkMappingFileWizardPage.java
+++ /dev/null
@@ -1,24 +0,0 @@
-/*******************************************************************************
- *  Copyright (c) 2008  Oracle. 
- *  All rights reserved.  This program and the accompanying materials are 
- *  made available under the terms of the Eclipse Public License v1.0 which 
- *  accompanies this distribution, and is available at 
- *  http://www.eclipse.org/legal/epl-v10.html
- *  
- *  Contributors: 
- *  	Oracle - initial API and implementation
- *******************************************************************************/
-package org.eclipse.jpt.eclipselink.ui.internal.wizards;
-
-import org.eclipse.jpt.ui.internal.wizards.orm.MappingFileWizardPage;
-import org.eclipse.wst.common.frameworks.datamodel.IDataModel;
-
-public class EclipseLinkMappingFileWizardPage extends MappingFileWizardPage
-{
-	public EclipseLinkMappingFileWizardPage(IDataModel dataModel, String pageName, String title, String desc) {
-		super(dataModel, pageName);
-		setTitle(title);
-		setDescription(desc);
-		setPageComplete(false);
-	}
-}
diff --git a/jpa/plugins/org.eclipse.jpt.utility/.classpath b/jpa/plugins/org.eclipse.jpt.utility/.classpath
deleted file mode 100644
index 304e861..0000000
--- a/jpa/plugins/org.eclipse.jpt.utility/.classpath
+++ /dev/null
@@ -1,7 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<classpath>
-	<classpathentry kind="src" path="src"/>
-	<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/J2SE-1.5"/>
-	<classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
-	<classpathentry kind="output" path="bin"/>
-</classpath>
diff --git a/jpa/plugins/org.eclipse.jpt.utility/.cvsignore b/jpa/plugins/org.eclipse.jpt.utility/.cvsignore
deleted file mode 100644
index a128605..0000000
--- a/jpa/plugins/org.eclipse.jpt.utility/.cvsignore
+++ /dev/null
@@ -1,4 +0,0 @@
-bin
-@dot
-temp.folder
-build.xml
\ No newline at end of file
diff --git a/jpa/plugins/org.eclipse.jpt.utility/.project b/jpa/plugins/org.eclipse.jpt.utility/.project
deleted file mode 100644
index 99b389b..0000000
--- a/jpa/plugins/org.eclipse.jpt.utility/.project
+++ /dev/null
@@ -1,28 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<projectDescription>
-	<name>org.eclipse.jpt.utility</name>
-	<comment></comment>
-	<projects>
-	</projects>
-	<buildSpec>
-		<buildCommand>
-			<name>org.eclipse.jdt.core.javabuilder</name>
-			<arguments>
-			</arguments>
-		</buildCommand>
-		<buildCommand>
-			<name>org.eclipse.pde.ManifestBuilder</name>
-			<arguments>
-			</arguments>
-		</buildCommand>
-		<buildCommand>
-			<name>org.eclipse.pde.SchemaBuilder</name>
-			<arguments>
-			</arguments>
-		</buildCommand>
-	</buildSpec>
-	<natures>
-		<nature>org.eclipse.pde.PluginNature</nature>
-		<nature>org.eclipse.jdt.core.javanature</nature>
-	</natures>
-</projectDescription>
diff --git a/jpa/plugins/org.eclipse.jpt.utility/.settings/org.eclipse.core.resources.prefs b/jpa/plugins/org.eclipse.jpt.utility/.settings/org.eclipse.core.resources.prefs
deleted file mode 100644
index 8e5b2c2..0000000
--- a/jpa/plugins/org.eclipse.jpt.utility/.settings/org.eclipse.core.resources.prefs
+++ /dev/null
@@ -1,3 +0,0 @@
-#Tue Jan 15 11:12:22 EST 2008
-eclipse.preferences.version=1
-encoding/<project>=ISO-8859-1
diff --git a/jpa/plugins/org.eclipse.jpt.utility/.settings/org.eclipse.jdt.core.prefs b/jpa/plugins/org.eclipse.jpt.utility/.settings/org.eclipse.jdt.core.prefs
deleted file mode 100644
index 4438260..0000000
--- a/jpa/plugins/org.eclipse.jpt.utility/.settings/org.eclipse.jdt.core.prefs
+++ /dev/null
@@ -1,7 +0,0 @@
-#Sun May 27 14:55:37 EDT 2007
-eclipse.preferences.version=1
-org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.5
-org.eclipse.jdt.core.compiler.compliance=1.5
-org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
-org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
-org.eclipse.jdt.core.compiler.source=1.5
diff --git a/jpa/plugins/org.eclipse.jpt.utility/META-INF/MANIFEST.MF b/jpa/plugins/org.eclipse.jpt.utility/META-INF/MANIFEST.MF
deleted file mode 100644
index 00a50f6..0000000
--- a/jpa/plugins/org.eclipse.jpt.utility/META-INF/MANIFEST.MF
+++ /dev/null
@@ -1,80 +0,0 @@
-Manifest-Version: 1.0
-Bundle-ManifestVersion: 2
-Bundle-Name: %pluginName
-Bundle-Vendor: %providerName
-Bundle-SymbolicName: org.eclipse.jpt.utility
-Bundle-Version: 1.4.0.qualifier
-Bundle-Localization: plugin
-Export-Package: org.eclipse.jpt.utility,
- org.eclipse.jpt.utility.internal;
-  x-friends:="org.eclipse.jpt.core,
-   org.eclipse.jpt.db,
-   org.eclipse.jpt.db.ui,
-   org.eclipse.jpt.gen,
-   org.eclipse.jpt.ui",
- org.eclipse.jpt.utility.internal.enumerations;
-  x-friends:="org.eclipse.jpt.core,
-   org.eclipse.jpt.db,
-   org.eclipse.jpt.db.ui,
-   org.eclipse.jpt.gen,
-   org.eclipse.jpt.ui",
- org.eclipse.jpt.utility.internal.iterables;
-  x-friends:="org.eclipse.jpt.core,
-   org.eclipse.jpt.db,
-   org.eclipse.jpt.db.ui,
-   org.eclipse.jpt.gen,
-   org.eclipse.jpt.ui",
- org.eclipse.jpt.utility.internal.iterators;
-  x-friends:="org.eclipse.jpt.core,
-   org.eclipse.jpt.db,
-   org.eclipse.jpt.db.ui,
-   org.eclipse.jpt.gen,
-   org.eclipse.jpt.ui",
- org.eclipse.jpt.utility.internal.model;
-  x-friends:="org.eclipse.jpt.core,
-   org.eclipse.jpt.db,
-   org.eclipse.jpt.db.ui,
-   org.eclipse.jpt.gen,
-   org.eclipse.jpt.ui",
- org.eclipse.jpt.utility.internal.model.listener.awt;
-  x-friends:="org.eclipse.jpt.core,
-   org.eclipse.jpt.db,
-   org.eclipse.jpt.db.ui,
-   org.eclipse.jpt.gen,
-   org.eclipse.jpt.ui",
- org.eclipse.jpt.utility.internal.model.value;
-  x-friends:="org.eclipse.jpt.core,
-   org.eclipse.jpt.db,
-   org.eclipse.jpt.db.ui,
-   org.eclipse.jpt.gen,
-   org.eclipse.jpt.ui",
- org.eclipse.jpt.utility.internal.model.value.prefs;
-  x-friends:="org.eclipse.jpt.core,
-   org.eclipse.jpt.db,
-   org.eclipse.jpt.db.ui,
-   org.eclipse.jpt.gen,
-   org.eclipse.jpt.ui",
- org.eclipse.jpt.utility.internal.model.value.swing;
-  x-friends:="org.eclipse.jpt.core,
-   org.eclipse.jpt.db,
-   org.eclipse.jpt.db.ui,
-   org.eclipse.jpt.gen,
-   org.eclipse.jpt.ui",
- org.eclipse.jpt.utility.internal.node;
-  x-friends:="org.eclipse.jpt.core,
-   org.eclipse.jpt.db,
-   org.eclipse.jpt.db.ui,
-   org.eclipse.jpt.gen,
-   org.eclipse.jpt.ui",
- org.eclipse.jpt.utility.internal.swing;
-  x-friends:="org.eclipse.jpt.core,
-   org.eclipse.jpt.db,
-   org.eclipse.jpt.db.ui,
-   org.eclipse.jpt.gen,
-   org.eclipse.jpt.ui",
- org.eclipse.jpt.utility.model,
- org.eclipse.jpt.utility.model.event,
- org.eclipse.jpt.utility.model.listener,
- org.eclipse.jpt.utility.model.value
-Bundle-RequiredExecutionEnvironment: J2SE-1.5
-Import-Package: com.ibm.icu.text;version="4.0.1"
diff --git a/jpa/plugins/org.eclipse.jpt.utility/about.html b/jpa/plugins/org.eclipse.jpt.utility/about.html
deleted file mode 100644
index be534ba..0000000
--- a/jpa/plugins/org.eclipse.jpt.utility/about.html
+++ /dev/null
@@ -1,34 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN">
-<HTML>
-
-<head>
-<title>About</title>
-<meta http-equiv=Content-Type content="text/html; charset=ISO-8859-1">
-</head>
-
-<BODY lang="EN-US">
-
-<H3>About This Content</H3>
-
-<P>May 02, 2008</P>
-
-<H3>License</H3>
-
-<P>The Eclipse Foundation makes available all content in this plug-in 
-("Content"). Unless otherwise indicated below, the Content is provided to you 
-under the terms and conditions of the Eclipse Public License Version 1.0 
-("EPL"). A copy of the EPL is available at
-<A href="http://www.eclipse.org/org/documents/epl-v10.php">http://www.eclipse.org/org/documents/epl-v10.php</A>. 
-For purposes of the EPL, "Program" will mean the Content.</P>
-
-<P>If you did not receive this Content directly from the Eclipse Foundation, the 
-Content is being redistributed by another party ("Redistributor") and different 
-terms and conditions may apply to your use of any object code in the Content. 
-Check the Redistributor's license that was provided with the Content. If no such 
-license exists, contact the Redistributor. Unless otherwise indicated below, the 
-terms and conditions of the EPL still apply to any source code in the Content 
-and such source code may be obtained at
-<A href="http://www.eclipse.org/">http://www.eclipse.org/</A>.</P>
-
-</BODY>
-</HTML>
diff --git a/jpa/plugins/org.eclipse.jpt.utility/build.properties b/jpa/plugins/org.eclipse.jpt.utility/build.properties
deleted file mode 100644
index 11ab8d4..0000000
--- a/jpa/plugins/org.eclipse.jpt.utility/build.properties
+++ /dev/null
@@ -1,17 +0,0 @@
-################################################################################
-# Copyright (c) 2006, 2007 Oracle. All rights reserved.
-# This program and the accompanying materials are made available under the
-# terms of the Eclipse Public License v1.0, which accompanies this distribution
-# and is available at http://www.eclipse.org/legal/epl-v10.html.
-# 
-# Contributors:
-#     Oracle - initial API and implementation
-################################################################################
-javacSource=1.5
-javacTarget=1.5
-source.. = src/
-output.. = bin/
-bin.includes = .,\
-               META-INF/,\
-               about.html,\
-               plugin.properties
diff --git a/jpa/plugins/org.eclipse.jpt.utility/component.xml b/jpa/plugins/org.eclipse.jpt.utility/component.xml
deleted file mode 100644
index b210b28..0000000
--- a/jpa/plugins/org.eclipse.jpt.utility/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.utility"><description url=""></description><component-depends unrestricted="true"></component-depends><plugin id="org.eclipse.jpt.utility" fragment="false"/></component>
\ No newline at end of file
diff --git a/jpa/plugins/org.eclipse.jpt.utility/plugin.properties b/jpa/plugins/org.eclipse.jpt.utility/plugin.properties
deleted file mode 100644
index 52eabef..0000000
--- a/jpa/plugins/org.eclipse.jpt.utility/plugin.properties
+++ /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
-################################################################################
-# ====================================================================
-# To code developer:
-#   Do NOT change the properties between this line and the
-#   "%%% END OF TRANSLATED PROPERTIES %%%" line.
-#   Make a new property name, append to the end of the file and change
-#   the code to use the new property.
-# ====================================================================
-
-# ====================================================================
-# %%% END OF TRANSLATED PROPERTIES %%%
-# ====================================================================
-
-pluginName = Dali Java Persistence Tools - Utility
-providerName = Eclipse Web Tools Platform
-
diff --git a/jpa/plugins/org.eclipse.jpt.utility/src/org/eclipse/jpt/utility/Command.java b/jpa/plugins/org.eclipse.jpt.utility/src/org/eclipse/jpt/utility/Command.java
deleted file mode 100644
index 60fbfaf..0000000
--- a/jpa/plugins/org.eclipse.jpt.utility/src/org/eclipse/jpt/utility/Command.java
+++ /dev/null
@@ -1,75 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2008 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.utility;
-
-/**
- * Simple interface for implementing the GOF Command design pattern,
- * and it doesn't carry the baggage of java.lang.Runnable.
- * 
- * Provisional API: This interface is part of an interim API that is still
- * under development and expected to change significantly before reaching
- * stability. It is available at this early stage to solicit feedback from
- * pioneering adopters on the understanding that any code that uses this API
- * will almost certainly be broken (repeatedly) as the API evolves.
- */
-public interface Command {
-
-	/**
-	 * Execute the command. The semantics of the command
-	 * is determined by the contract between the client and server.
-	 */
-	void execute();
-
-	/**
-	 * Singleton implementation of the command interface that will do nothing
-	 * when executed.
-	 */
-	final class Null implements Command {
-		public static final Command INSTANCE = new Null();
-		public static Command instance() {
-			return INSTANCE;
-		}
-		// ensure single instance
-		private Null() {
-			super();
-		}
-		public void execute() {
-			// do nothing
-		}
-		@Override
-		public String toString() {
-			return "Command.Null"; //$NON-NLS-1$
-		}
-	}
-
-	/**
-	 * Singleton implementation of the command interface that will throw an
-	 * exception when executed.
-	 */
-	final class Disabled implements Command {
-		public static final Command INSTANCE = new Disabled();
-		public static Command instance() {
-			return INSTANCE;
-		}
-		// ensure single instance
-		private Disabled() {
-			super();
-		}
-		// throw an exception
-		public void execute() {
-			throw new UnsupportedOperationException();
-		}
-		@Override
-		public String toString() {
-			return "Command.Disabled"; //$NON-NLS-1$
-		}
-	}
-
-}
diff --git a/jpa/plugins/org.eclipse.jpt.utility/src/org/eclipse/jpt/utility/CommandExecutor.java b/jpa/plugins/org.eclipse.jpt.utility/src/org/eclipse/jpt/utility/CommandExecutor.java
deleted file mode 100644
index dde714a..0000000
--- a/jpa/plugins/org.eclipse.jpt.utility/src/org/eclipse/jpt/utility/CommandExecutor.java
+++ /dev/null
@@ -1,54 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2008 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.utility;
-
-/**
- * This interface allows clients to control how a command is executed.
- * This is useful when the server provides the command but the client provides
- * the context (e.g. the client would like to dispatch the command to the UI
- * thread).
- * 
- * Provisional API: This interface is part of an interim API that is still
- * under development and expected to change significantly before reaching
- * stability. It is available at this early stage to solicit feedback from
- * pioneering adopters on the understanding that any code that uses this API
- * will almost certainly be broken (repeatedly) as the API evolves.
- */
-public interface CommandExecutor {
-
-	/**
-	 * Execute the specified command.
-	 */
-	void execute(Command command);
-
-
-	/**
-	 * Singleton implementation of the command executor interface
-	 * that simply executes the command without any sort of enhancement.
-	 */
-	final class Default implements CommandExecutor {
-		public static final CommandExecutor INSTANCE = new Default();
-		public static CommandExecutor instance() {
-			return INSTANCE;
-		}
-		// ensure single instance
-		private Default() {
-			super();
-		}
-		public void execute(Command command) {
-			command.execute();
-		}
-		@Override
-		public String toString() {
-			return "CommandExecutor.Default"; //$NON-NLS-1$
-		}
-	}
-
-}
diff --git a/jpa/plugins/org.eclipse.jpt.utility/src/org/eclipse/jpt/utility/Filter.java b/jpa/plugins/org.eclipse.jpt.utility/src/org/eclipse/jpt/utility/Filter.java
deleted file mode 100644
index a1285a5..0000000
--- a/jpa/plugins/org.eclipse.jpt.utility/src/org/eclipse/jpt/utility/Filter.java
+++ /dev/null
@@ -1,106 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005, 2008 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.utility;
-
-/**
- * Used by various "pluggable" classes to filter objects.
- * 
- * Provisional API: This interface is part of an interim API that is still
- * under development and expected to change significantly before reaching
- * stability. It is available at this early stage to solicit feedback from
- * pioneering adopters on the understanding that any code that uses this API
- * will almost certainly be broken (repeatedly) as the API evolves.
- */
-public interface Filter<T> {
-
-	/**
-	 * Return whether the specified object is "accepted" by the
-	 * filter. The semantics of "accept" is determined by the
-	 * contract between the client and the server.
-	 */
-	boolean accept(T o);
-
-
-	/**
-	 * Singleton implemetation of the filter interface that accepts all the
-	 * objects (i.e. it does no filtering).
-	 */
-	final class Null<S> implements Filter<S> {
-		@SuppressWarnings("unchecked")
-		public static final Filter INSTANCE = new Null();
-		@SuppressWarnings("unchecked")
-		public static <R> Filter<R> instance() {
-			return INSTANCE;
-		}
-		// ensure single instance
-		private Null() {
-			super();
-		}
-		// nothing is filtered - everything is accepted
-		public boolean accept(S o) {
-			return true;
-		}
-		@Override
-		public String toString() {
-			return "Filter.Null";  //$NON-NLS-1$
-		}
-	}
-
-	/**
-	 * Singleton implemetation of the filter interface that accepts none of the
-	 * objects (i.e. it filters out all the objects).
-	 */
-	final class Opaque<S> implements Filter<S> {
-		@SuppressWarnings("unchecked")
-		public static final Filter INSTANCE = new Opaque();
-		@SuppressWarnings("unchecked")
-		public static <R> Filter<R> instance() {
-			return INSTANCE;
-		}
-		// ensure single instance
-		private Opaque() {
-			super();
-		}
-		// everything is filtered - nothing is accepted
-		public boolean accept(S o) {
-			return false;
-		}
-		@Override
-		public String toString() {
-			return "Filter.Opaque";  //$NON-NLS-1$
-		}
-	}
-
-	/**
-	 * Singleton implemetation of the filter interface that throws an exception
-	 * if called.
-	 */
-	final class Disabled<S> implements Filter<S> {
-		@SuppressWarnings("unchecked")
-		public static final Filter INSTANCE = new Disabled();
-		@SuppressWarnings("unchecked")
-		public static <R> Filter<R> instance() {
-			return INSTANCE;
-		}
-		// ensure single instance
-		private Disabled() {
-			super();
-		}
-		// throw an exception
-		public boolean accept(S o) {
-			throw new UnsupportedOperationException();
-		}
-		@Override
-		public String toString() {
-			return "Filter.Disabled";  //$NON-NLS-1$
-		}
-	}
-
-}
diff --git a/jpa/plugins/org.eclipse.jpt.utility/src/org/eclipse/jpt/utility/JavaType.java b/jpa/plugins/org.eclipse.jpt.utility/src/org/eclipse/jpt/utility/JavaType.java
deleted file mode 100644
index cfba58e..0000000
--- a/jpa/plugins/org.eclipse.jpt.utility/src/org/eclipse/jpt/utility/JavaType.java
+++ /dev/null
@@ -1,128 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.utility;
-
-import java.io.PrintWriter;
-
-/**
- * This interface describes a Java type; i.e. its "element type"
- * and its "array depth". The element type is referenced by name,
- * allowing us to reference classes that are not (or cannot be) loaded.
- * 
- * Provisional API: This interface is part of an interim API that is still
- * under development and expected to change significantly before reaching
- * stability. It is available at this early stage to solicit feedback from
- * pioneering adopters on the understanding that any code that uses this API
- * will almost certainly be broken (repeatedly) as the API evolves.
- * 
- * This interface is not intended to be implemented by clients.
- */
-public interface JavaType
-	extends Comparable<JavaType>
-{
-
-	/**
-	 * Return the name of the type's "element type".
-	 * A member type will have one or more '$' characters in its name.
-	 */
-	String getElementTypeName();
-
-	/**
-	 * Return the type's "array depth".
-	 */
-	int getArrayDepth();
-
-	/**
-	 * Return whether the type is an array (i.e. its "array depth" is greater
-	 * than zero).
-	 */
-	boolean isArray();
-
-	/**
-	 * Return whether the type is a "primitive" (e.g. 'int', 'float').
-	 * NB: void.class.isPrimitive() == true
-	 */
-	boolean isPrimitive();
-
-	/**
-	 * Return whether the type is a "primitive" (e.g. 'java.lang.Integer',
-	 * 'java.lang.Float').
-	 * NB: void.class.isPrimitive() == true
-	 */
-	boolean isPrimitiveWrapper();
-
-	/**
-	 * Return whether the type is a "variable primitive" (e.g. 'int', 'float',
-	 * but not 'void').
-	 * NB: variables cannot be declared 'void'
-	 */
-	boolean isVariablePrimitive();
-
-	/**
-	 * Return whether the type is a "variable primitive" (e.g.
-	 * 'java.lang.Integer', 'java.lang.Float', but not 'java.lang.Void').
-	 * NB: variables cannot be declared 'void'
-	 */
-	boolean isVariablePrimitiveWrapper();
-
-	/**
-	 * Return the class corresponding to the type's element type and array depth.
-	 */
-	Class<?> getJavaClass() throws ClassNotFoundException;
-
-	/**
-	 * Return the version of the type's name that matches that
-	 * returned by java.lang.Class#getName()
-	 * (e.g. "[[J", "[Ljava.lang.Object;", "java.util.Map$Entry").
-	 */
-	String getJavaClassName();
-
-	/**
-	 * Return whether the type is equal to the specified type.
-	 */
-	boolean equals(String otherElementTypeName, int otherArrayDepth);
-
-	/**
-	 * Return whether the type describes to the specified type.
-	 */
-	boolean describes(String className);
-
-	/**
-	 * Return whether the type describes to the specified type.
-	 */
-	boolean describes(Class<?> javaClass);
-
-	/**
-	 * Return whether the type is equal to the specified type.
-	 */
-	boolean equals(JavaType other);
-
-	/**
-	 * Return the version of the type's name that can be used in source code:
-	 *     "[[J" => "long[][]"
-	 *     "java.util.Map$Entry" => "java.util.Map.Entry"
-	 */
-	String declaration();
-
-	/**
-	 * Append the version of the type's name that can be used in source code:
-	 *     "[[J" => "long[][]"
-	 *     "java.util.Map$Entry" => "java.util.Map.Entry"
-	 */
-	void appendDeclarationTo(StringBuilder sb);
-
-	/**
-	 * Print the version of the type's name that can be used in source code:
-	 *     "[[J" => "long[][]"
-	 *     "java.util.Map$Entry" => "java.util.Map.Entry"
-	 */
-	void printDeclarationOn(PrintWriter pw);
-
-}
diff --git a/jpa/plugins/org.eclipse.jpt.utility/src/org/eclipse/jpt/utility/MethodSignature.java b/jpa/plugins/org.eclipse.jpt.utility/src/org/eclipse/jpt/utility/MethodSignature.java
deleted file mode 100644
index 00adfd9..0000000
--- a/jpa/plugins/org.eclipse.jpt.utility/src/org/eclipse/jpt/utility/MethodSignature.java
+++ /dev/null
@@ -1,75 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.utility;
-
-import java.io.PrintWriter;
-import java.lang.reflect.Method;
-
-/**
- * This interface describes a Java method signature; i.e. its "name"
- * and its "parameter types". The parameter types are referenced by name,
- * allowing us to reference classes that are not (or cannot be) loaded.
- * 
- * Provisional API: This interface is part of an interim API that is still
- * under development and expected to change significantly before reaching
- * stability. It is available at this early stage to solicit feedback from
- * pioneering adopters on the understanding that any code that uses this API
- * will almost certainly be broken (repeatedly) as the API evolves.
- * 
- * This interface is not intended to be implemented by clients.
- */
-public interface MethodSignature
-	extends Comparable<MethodSignature>
-{
-
-	/**
-	 * Return the method's name.
-	 */
-	String getName();
-
-	/**
-	 * Return the method's parameter types.
-	 */
-	JavaType[] getParameterTypes();
-
-	/**
-	 * Return whether the method signature describes the specified method.
-	 */
-	boolean describes(Method method);
-
-	/**
-	 * Return whether the method signature equals the specified signature.
-	 */
-	boolean equals(String otherName, JavaType[] otherParameterTypes);
-
-	/**
-	 * Return whether the method signature equals the specified signature.
-	 */
-	boolean equals(MethodSignature other);
-
-	/**
-	 * Return a string representation of the method's signature:
-	 *     "foo(int, java.lang.String)"
-	 */
-	String getSignature();
-
-	/**
-	 * Append a string representation of the method's signature:
-	 *     "foo(int, java.lang.String)"
-	 */
-	void appendSignatureTo(StringBuilder sb);
-
-	/**
-	 * Print a string representation of the method's signature:
-	 *     "foo(int, java.lang.String)"
-	 */
-	void printSignatureOn(PrintWriter pw);
-
-}
diff --git a/jpa/plugins/org.eclipse.jpt.utility/src/org/eclipse/jpt/utility/internal/AbstractAssociation.java b/jpa/plugins/org.eclipse.jpt.utility/src/org/eclipse/jpt/utility/internal/AbstractAssociation.java
deleted file mode 100644
index 6a9eb21..0000000
--- a/jpa/plugins/org.eclipse.jpt.utility/src/org/eclipse/jpt/utility/internal/AbstractAssociation.java
+++ /dev/null
@@ -1,50 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008, 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.utility.internal;
-
-/**
- * Implement some of the methods in Association that can
- * be defined in terms of the other methods.
- */
-public abstract class AbstractAssociation<K, V>
-	implements Association<K, V>
-{
-
-	/**
-	 * Default constructor.
-	 */
-	protected AbstractAssociation() {
-		super();
-	}
-
-	@Override
-	public synchronized boolean equals(Object o) {
-		if ( ! (o instanceof Association)) {
-			return false;
-		}
-		Association<?, ?> other = (Association<?, ?>) o;
-		return (this.key() == null ?
-					other.key() == null : this.key().equals(other.key()))
-			&& (this.value() == null ?
-					other.value() == null : this.value().equals(other.value()));
-	}
-
-	@Override
-	public synchronized int hashCode() {
-		return (this.key() == null ? 0 : this.key().hashCode())
-			^ (this.value() == null ? 0 : this.value().hashCode());
-	}
-
-	@Override
-	public synchronized String toString() {
-		return this.key() + " => " + this.value(); //$NON-NLS-1$
-	}
-
-}
diff --git a/jpa/plugins/org.eclipse.jpt.utility/src/org/eclipse/jpt/utility/internal/Association.java b/jpa/plugins/org.eclipse.jpt.utility/src/org/eclipse/jpt/utility/internal/Association.java
deleted file mode 100644
index 03130e8..0000000
--- a/jpa/plugins/org.eclipse.jpt.utility/src/org/eclipse/jpt/utility/internal/Association.java
+++ /dev/null
@@ -1,46 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.utility.internal;
-
-/**
- * Straightforward definition of an object pairing.
- * The key is immutable.
- */
-public interface Association<K, V> {
-
-	/**
-	 * Return the association's key.
-	 */
-	K key();
-
-	/**
-	 * Return the association's value.
-	 */
-	V value();
-
-	/**
-	 * Set the association's value.
-	 * Return the previous value.
-	 */
-	V setValue(V value);
-
-	/**
-	 * Return true if both the associations' keys and values
-	 * are equal.
-	 */
-	boolean equals(Object o);
-
-	/**
-	 * Return a hash code based on the association's
-	 * key and value.
-	 */
-	int hashCode();
-
-}
diff --git a/jpa/plugins/org.eclipse.jpt.utility/src/org/eclipse/jpt/utility/internal/Bag.java b/jpa/plugins/org.eclipse.jpt.utility/src/org/eclipse/jpt/utility/internal/Bag.java
deleted file mode 100644
index b2c7223..0000000
--- a/jpa/plugins/org.eclipse.jpt.utility/src/org/eclipse/jpt/utility/internal/Bag.java
+++ /dev/null
@@ -1,187 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005, 2008 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.utility.internal;
-
-import java.io.Serializable;
-import java.util.AbstractCollection;
-import java.util.Iterator;
-import org.eclipse.jpt.utility.internal.iterators.EmptyIterator;
-
-/**
- * A collection that allows duplicate elements.
- * <p>
- * The <code>Bag</code> interface places additional stipulations,
- * beyond those inherited from the <code>java.util.Collection</code> interface,
- * on the contracts of the <code>equals</code> and <code>hashCode</code> methods.
- * 
- * @see HashBag
- */
-
-public interface Bag<E> extends java.util.Collection<E> {
-
-	/**
-	 * Compares the specified object with this bag for equality. Returns
-	 * <code>true</code> if the specified object is also a bag, the two bags
-	 * have the same size, and every member of the specified bag is
-	 * contained in this bag with the same number of occurrences (or equivalently,
-	 * every member of this bag is contained in the specified bag with the same
-	 * number of occurrences). This definition ensures that the
-	 * equals method works properly across different implementations of the
-	 * bag interface.
-	 */
-	boolean equals(Object o);
-
-	/**
-	 * Returns the hash code value for this bag. The hash code of a bag is
-	 * defined to be the sum of the hash codes of the elements in the bag,
-	 * where the hashcode of a <code>null</code> element is defined to be zero.
-	 * This ensures that <code>b1.equals(b2)</code> implies that
-	 * <code>b1.hashCode() == b2.hashCode()</code> for any two bags
-	 * <code>b1</code> and <code>b2</code>, as required by the general
-	 * contract of the <code>Object.hashCode</code> method.
-	 */
-	int hashCode();
-
-	/**
-	 * Return the number of times the specified object occurs in the bag.
-	 */
-	int count(Object o);
-
-	/**
-	 * Add the specified object the specified number of times to the bag.
-	 */
-	boolean add(E o, int count);
-
-	/**
-	 * Remove the specified number of occurrences of the specified object
-	 * from the bag. Return whether the bag changed.
-	 */
-	boolean remove(Object o, int count);
-
-	/**
-	 * Return an iterator that returns each item in the bag
-	 * once and only once, irrespective of how many times
-	 * the item was added to the bag.
-	 */
-	java.util.Iterator<E> uniqueIterator();
-
-	/**
-	 * Return an iterator that returns an entry for each item in the bag
-	 * once and only once, irrespective of how many times
-	 * the item was added to the bag. The entry will indicate the item's
-	 * count.
-	 */
-	java.util.Iterator<Entry<E>> entries();
-
-
-	/**
-	 * A bag entry (element-count pair).
-	 * The <code>Bag.entries</code> method returns an iterator whose
-	 * elements are of this class. The <i>only</i> way to obtain a reference
-	 * to a bag entry is from the iterator returned by this method. These
-	 * <code>Bag.Entry</code> objects are valid <i>only</i> for the duration
-	 * of the iteration; more formally, the behavior of a bag entry is
-	 * undefined if the backing bag has been modified after the entry was
-	 * returned by the iterator, except through the <code>setCount</code>
-	 * operation on the bag entry.
-	 */
-	interface Entry<E> {
-
-		/**
-		 * Return the entry's element.
-		 */
-		E getElement();
-
-		/**
-		 * Return entry's count; i.e. the number of times the entry's element
-		 * occurs in the bag.
-		 * @see Bag#count(Object)
-		 */
-		int getCount();
-
-		/**
-		 * Set the entry's count; i.e. the number of times the entry's element
-		 * occurs in the bag. The new count must be a positive number.
-		 * Return the previous count of the entry's element.
-		 * NB: Use the iterator's <code>remove</code> method to set the
-		 * count to zero.
-		 */
-		int setCount(int count);
-
-		/**
-		 * Return whether the entry is equal to the specified object;
-		 * i.e. the specified object is a <code>Bag.Entry</code> and its
-		 * element and count are the same as the entry's.
-		 */
-		boolean equals(Object obj);
-
-		/**
-		 * Return the entry's hash code.
-		 */
-		int hashCode();
-
-	}
-
-
-	final class Empty<E> extends AbstractCollection<E> implements Bag<E>, Serializable {
-		@SuppressWarnings("unchecked")
-		public static final Bag INSTANCE = new Empty();
-		@SuppressWarnings("unchecked")
-		public static <T> Bag<T> instance() {
-			return INSTANCE;
-		}
-		// ensure single instance
-		private Empty() {
-			super();
-		}
-		@Override
-		public Iterator<E> iterator() {
-			return EmptyIterator.instance();
-		}
-		@Override
-		public int size() {
-			return 0;
-		}
-		public Iterator<E> uniqueIterator() {
-			return EmptyIterator.instance();
-		}
-		public int count(Object o) {
-			return 0;
-		}
-		public Iterator<Bag.Entry<E>> entries() {
-			return EmptyIterator.instance();
-		}
-		public boolean remove(Object o, int count) {
-			return false;
-		}
-		public boolean add(E o, int count) {
-			throw new UnsupportedOperationException();
-		}
-		@Override
-		public boolean equals(Object o) {
-			if (o == this) {
-				return true;
-			}
-			if ( ! (o instanceof Bag)) {
-				return false;
-			}
-			return ((Bag<?>) o).size() == 0;
-		}
-		@Override
-		public int hashCode() {
-			return 0;
-		}
-		private static final long serialVersionUID = 1L;
-		private Object readResolve() {
-			return INSTANCE;
-		}
-	}
-
-}
diff --git a/jpa/plugins/org.eclipse.jpt.utility/src/org/eclipse/jpt/utility/internal/BidiFilter.java b/jpa/plugins/org.eclipse.jpt.utility/src/org/eclipse/jpt/utility/internal/BidiFilter.java
deleted file mode 100644
index e7bdf8c..0000000
--- a/jpa/plugins/org.eclipse.jpt.utility/src/org/eclipse/jpt/utility/internal/BidiFilter.java
+++ /dev/null
@@ -1,105 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2008 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.utility.internal;
-
-import org.eclipse.jpt.utility.Filter;
-
-/**
- * Used by various "pluggable" classes to filter objects
- * in both directions.
- * 
- * If anyone can come up with a better class name
- * and/or method name, I would love to hear it.  ~bjv
- */
-public interface BidiFilter<T> extends Filter<T> {
-
-	/**
-	 * Return whether the specified object is "accepted" by the
-	 * "reverse" filter. What that means is determined by the client.
-	 */
-	boolean reverseAccept(T o);
-
-
-	final class Null<S> implements BidiFilter<S> {
-		@SuppressWarnings("unchecked")
-		public static final BidiFilter INSTANCE = new Null();
-		@SuppressWarnings("unchecked")
-		public static <R> BidiFilter<R> instance() {
-			return INSTANCE;
-		}
-		// ensure single instance
-		private Null() {
-			super();
-		}
-		// nothing is filtered - everything is accepted
-		public boolean accept(S o) {
-			return true;
-		}
-		// nothing is "reverse-filtered" - everything is accepted
-		public boolean reverseAccept(S o) {
-			return true;
-		}
-		@Override
-		public String toString() {
-			return "BidiFilter.Null"; //$NON-NLS-1$
-		}
-	}
-
-	final class Opaque<S> implements BidiFilter<S> {
-		@SuppressWarnings("unchecked")
-		public static final BidiFilter INSTANCE = new Opaque();
-		@SuppressWarnings("unchecked")
-		public static <R> BidiFilter<R> instance() {
-			return INSTANCE;
-		}
-		// ensure single instance
-		private Opaque() {
-			super();
-		}
-		// everything is filtered - nothing is accepted
-		public boolean accept(S o) {
-			return false;
-		}
-		// everything is "reverse-filtered" - nothing is accepted
-		public boolean reverseAccept(S o) {
-			return false;
-		}
-		@Override
-		public String toString() {
-			return "BidiFilter.Opaque"; //$NON-NLS-1$
-		}
-	}
-
-	final class Disabled<S> implements BidiFilter<S> {
-		@SuppressWarnings("unchecked")
-		public static final BidiFilter INSTANCE = new Disabled();
-		@SuppressWarnings("unchecked")
-		public static <R> BidiFilter<R> instance() {
-			return INSTANCE;
-		}
-		// ensure single instance
-		private Disabled() {
-			super();
-		}
-		// throw an exception
-		public boolean accept(S o) {
-			throw new UnsupportedOperationException();
-		}
-		// throw an exception
-		public boolean reverseAccept(S o) {
-			throw new UnsupportedOperationException();
-		}
-		@Override
-		public String toString() {
-			return "BidiFilter.Disabled"; //$NON-NLS-1$
-		}
-	}
-
-}
diff --git a/jpa/plugins/org.eclipse.jpt.utility/src/org/eclipse/jpt/utility/internal/BidiStringConverter.java b/jpa/plugins/org.eclipse.jpt.utility/src/org/eclipse/jpt/utility/internal/BidiStringConverter.java
deleted file mode 100644
index 5d2259d..0000000
--- a/jpa/plugins/org.eclipse.jpt.utility/src/org/eclipse/jpt/utility/internal/BidiStringConverter.java
+++ /dev/null
@@ -1,127 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.utility.internal;
-
-/**
- * Used by various "pluggable" classes to transform objects
- * into strings and vice versa.
- * 
- * If anyone can come up with a better class name
- * and/or method name, I would love to hear it.  ~bjv
- */
-public interface BidiStringConverter<T> extends StringConverter<T> {
-
-	/**
-	 * Convert the specified string into an object.
-	 * The semantics of "convert to object" is determined by the
-	 * contract between the client and the server.
-	 * Typically, if the string is null, null is returned.
-	 */
-	T convertToObject(String s);
-
-
-	final class Default<S> implements BidiStringConverter<S> {
-		@SuppressWarnings("unchecked")
-		public static final BidiStringConverter INSTANCE = new Default();
-		@SuppressWarnings("unchecked")
-		public static <R> BidiStringConverter<R> instance() {
-			return INSTANCE;
-		}
-		// ensure single instance
-		private Default() {
-			super();
-		}
-		// simply return the object's #toString() result
-		public String convertToString(S o) {
-			return (o == null) ? null : o.toString();
-		}
-		// simply return the string
-		@SuppressWarnings("unchecked")
-		public S convertToObject(String s) {
-			return (S) s;
-		}
-		@Override
-		public String toString() {
-			return "BidiStringConverter.Default"; //$NON-NLS-1$
-		}
-	}
-
-	final class Disabled<S> implements BidiStringConverter<S> {
-		@SuppressWarnings("unchecked")
-		public static final BidiStringConverter INSTANCE = new Disabled();
-		@SuppressWarnings("unchecked")
-		public static <R> BidiStringConverter<R> instance() {
-			return INSTANCE;
-		}
-		// ensure single instance
-		private Disabled() {
-			super();
-		}
-		// throw an exception
-		public String convertToString(S o) {
-			throw new UnsupportedOperationException();
-		}
-		// throw an exception
-		public S convertToObject(String s) {
-			throw new UnsupportedOperationException();
-		}
-		@Override
-		public String toString() {
-			return "BidiStringConverter.Disabled"; //$NON-NLS-1$
-		}
-	}
-
-	final class BooleanConverter implements BidiStringConverter<Boolean> {
-		public static final BidiStringConverter<Boolean> INSTANCE = new BooleanConverter();
-		public static BidiStringConverter<Boolean> instance() {
-			return INSTANCE;
-		}
-		// ensure single instance
-		private BooleanConverter() {
-			super();
-		}
-		/** Return "true" if the Boolean is true, otherwise return "false". */
-		public String convertToString(Boolean b) {
-			return (b == null) ? null : b.toString();
-		}
-		/** Return Boolean.TRUE if the string is "true" (case-insensitive), otherwise return Boolean.FALSE. */
-		public Boolean convertToObject(String s) {
-			return (s == null) ? null : Boolean.valueOf(s);
-		}
-		@Override
-		public String toString() {
-			return "BidiStringConverter.BooleanConverter"; //$NON-NLS-1$
-		}
-	}
-
-	final class IntegerConverter implements BidiStringConverter<Integer> {
-		public static final BidiStringConverter<Integer> INSTANCE = new IntegerConverter();
-		public static BidiStringConverter<Integer> instance() {
-			return INSTANCE;
-		}
-		// ensure single instance
-		private IntegerConverter() {
-			super();
-		}
-		/** Integer's #toString() works well. */
-		public String convertToString(Integer integer) {
-			return (integer == null) ? null : integer.toString();
-		}
-		/** Convert the string to an Integer, if possible. */
-		public Integer convertToObject(String s) {
-			return (s == null) ? null : Integer.valueOf(s);
-		}
-		@Override
-		public String toString() {
-			return "BidiStringConverter.IntegerConverter"; //$NON-NLS-1$
-		}
-	}
-
-}
diff --git a/jpa/plugins/org.eclipse.jpt.utility/src/org/eclipse/jpt/utility/internal/BidiTransformer.java b/jpa/plugins/org.eclipse.jpt.utility/src/org/eclipse/jpt/utility/internal/BidiTransformer.java
deleted file mode 100644
index 80161bc..0000000
--- a/jpa/plugins/org.eclipse.jpt.utility/src/org/eclipse/jpt/utility/internal/BidiTransformer.java
+++ /dev/null
@@ -1,81 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.utility.internal;
-
-/**
- * Used by various "pluggable" classes to transform objects
- * in both directions.
- * 
- * If anyone can come up with a better class name
- * and/or method name, I would love to hear it.  ~bjv
- */
-public interface BidiTransformer<T1, T2> extends Transformer<T1, T2> {
-
-	/**
-	 * Return the "reverse-transformed" object.
-	 * The semantics of "reverse-transform" is determined by the
-	 * contract between the client and the server.
-	 */
-	T1 reverseTransform(T2 o);
-
-
-	final class Null<S1, S2> implements BidiTransformer<S1, S2> {
-		@SuppressWarnings("unchecked")
-		public static final BidiTransformer INSTANCE = new Null();
-		@SuppressWarnings("unchecked")
-		public static <R1, R2> BidiTransformer<R1, R2> instance() {
-			return INSTANCE;
-		}
-		// ensure single instance
-		private Null() {
-			super();
-		}
-		// simply return the object, unchanged
-		@SuppressWarnings("unchecked")
-		public S2 transform(S1 o) {
-			return (S2) o;
-		}
-		// simply return the object, unchanged
-		@SuppressWarnings("unchecked")
-		public S1 reverseTransform(S2 o) {
-			return (S1) o;
-		}
-		@Override
-		public String toString() {
-			return "BidiTransformer.Null"; //$NON-NLS-1$
-		}
-	}
-
-	final class Disabled<S1, S2> implements BidiTransformer<S1, S2> {
-		@SuppressWarnings("unchecked")
-		public static final BidiTransformer INSTANCE = new Disabled();
-		@SuppressWarnings("unchecked")
-		public static <R1, R2> BidiTransformer<R1, R2> instance() {
-			return INSTANCE;
-		}
-		// ensure single instance
-		private Disabled() {
-			super();
-		}
-		// throw an exception
-		public S2 transform(S1 o) {
-			throw new UnsupportedOperationException();
-		}
-		// throw an exception
-		public S1 reverseTransform(S2 o) {
-			throw new UnsupportedOperationException();
-		}
-		@Override
-		public String toString() {
-			return "BidiTransformer.Disabled"; //$NON-NLS-1$
-		}
-	}
-
-}
diff --git a/jpa/plugins/org.eclipse.jpt.utility/src/org/eclipse/jpt/utility/internal/BitTools.java b/jpa/plugins/org.eclipse.jpt.utility/src/org/eclipse/jpt/utility/internal/BitTools.java
deleted file mode 100644
index 544f5bb..0000000
--- a/jpa/plugins/org.eclipse.jpt.utility/src/org/eclipse/jpt/utility/internal/BitTools.java
+++ /dev/null
@@ -1,214 +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.utility.internal;
-
-/**
- * Assorted bit tools
- */
-public class BitTools {
-
-	/**
-	 * Return whether the specified 'flags' has the specified
-	 * 'flagToCheck' set.
-	 */
-	public static boolean flagIsSet(int flags, int flagToCheck) {
-		return allFlagsAreSet(flags, flagToCheck);
-	}
-
-	/**
-	 * Return whether the specified 'flags' has the specified
-	 * 'flagToCheck' turned off.
-	 */
-	public static boolean flagIsOff(int flags, int flagToCheck) {
-		return allFlagsAreOff(flags, flagToCheck);
-	}
-
-	/**
-	 * Return whether the specified 'flags' has ONLY the specified
-	 * 'flagToCheck' set.
-	 */
-	public static boolean onlyFlagIsSet(int flags, int flagToCheck) {
-		return onlyFlagsAreSet(flags, flagToCheck);
-	}
-
-	/**
-	 * Return whether the specified 'flags' has ONLY the specified
-	 * 'flagToCheck' turned off.
-	 */
-	public static boolean onlyFlagIsOff(int flags, int flagToCheck) {
-		return onlyFlagsAreOff(flags, flagToCheck);
-	}
-
-	/**
-	 * Return whether the specified 'flags' has all the specified
-	 * 'flagsToCheck' set.
-	 */
-	public static boolean allFlagsAreSet(int flags, int flagsToCheck) {
-		return (flags & flagsToCheck) == flagsToCheck;
-	}
-
-	/**
-	 * Return whether the specified 'flags' has all the specified
-	 * 'flagsToCheck' turned off.
-	 */
-	public static boolean allFlagsAreOff(int flags, int flagsToCheck) {
-		return (flags & flagsToCheck) == 0;
-	}
-
-	/**
-	 * Return whether the specified 'flags' has ONLY the specified
-	 * 'flagsToCheck' set.
-	 */
-	public static boolean onlyFlagsAreSet(int flags, int flagsToCheck) {
-		return allFlagsAreSet(flags, flagsToCheck) && allFlagsAreOff(flags, ~flagsToCheck);
-	}
-
-	/**
-	 * Return whether the specified 'flags' has ONLY the specified
-	 * 'flagsToCheck' turned off.
-	 */
-	public static boolean onlyFlagsAreOff(int flags, int flagsToCheck) {
-		return allFlagsAreOff(flags, flagsToCheck) && allFlagsAreSet(flags, ~flagsToCheck);
-	}
-
-	/**
-	 * Return whether the specified 'flags' has any one of the specified
-	 * 'flagsToCheck' set.
-	 */
-	public static boolean anyFlagsAreSet(int flags, int flagsToCheck) {
-		return (flags & flagsToCheck) != 0;
-	}
-
-	/**
-	 * Return whether the specified 'flags' has any one of the specified
-	 * 'flagsToCheck' turned off.
-	 */
-	public static boolean anyFlagsAreOff(int flags, int flagsToCheck) {
-		return (flags & flagsToCheck) != flagsToCheck;
-	}
-
-	/**
-	 * Return whether the specified 'flags' has all the specified
-	 * 'flagsToCheck' set.
-	 */
-	public static boolean allFlagsAreSet(int flags, int[] flagsToCheck) {
-		for (int i = flagsToCheck.length; i-- > 0; ) {
-			if ( ! allFlagsAreSet(flags, flagsToCheck[i])) {
-				return false;
-			}
-		}
-		return true;
-	}
-
-	/**
-	 * Return whether the specified 'flags' has all the specified
-	 * 'flagsToCheck' turned off.
-	 */
-	public static boolean allFlagsAreOff(int flags, int[] flagsToCheck) {
-		for (int i = flagsToCheck.length; i-- > 0; ) {
-			if ( ! allFlagsAreOff(flags, flagsToCheck[i])) {
-				return false;
-			}
-		}
-		return true;
-	}
-
-	/**
-	 * Return whether the specified 'flags' has ONLY the specified
-	 * 'flagsToCheck' set.
-	 */
-	public static boolean onlyFlagsAreSet(int flags, int[] flagsToCheck) {
-		int combinedFlags = orFlags(flagsToCheck);
-		return allFlagsAreSet(flags, combinedFlags) && allFlagsAreOff(flags, ~combinedFlags);
-	}
-
-	/**
-	 * Return whether the specified 'flags' has ONLY the specified
-	 * 'flagsToCheck' turned off.
-	 */
-	public static boolean onlyFlagsAreOff(int flags, int[] flagsToCheck) {
-		int combinedFlags = orFlags(flagsToCheck);
-		return allFlagsAreOff(flags, combinedFlags) && allFlagsAreSet(flags, ~combinedFlags);
-	}
-
-	/**
-	 * Return whether the specified 'flags' has any one of the specified
-	 * 'flagsToCheck' set.
-	 */
-	public static boolean anyFlagsAreSet(int flags, int[] flagsToCheck) {
-		for (int i = flagsToCheck.length; i-- > 0; ) {
-			if (anyFlagsAreSet(flags, flagsToCheck[i])) {
-				return true;
-			}
-		}
-		return false;
-	}
-
-	/**
-	 * Return whether the specified 'flags' has any one of the specified
-	 * 'flagsToCheck' turned off.
-	 */
-	public static boolean anyFlagsAreOff(int flags, int[] flagsToCheck) {
-		for (int i = flagsToCheck.length; i-- > 0; ) {
-			if (anyFlagsAreOff(flags, flagsToCheck[i])) {
-				return true;
-			}
-		}
-		return false;
-	}
-
-	/**
-	 * OR all the specified 'flags' together and return the result.
-	 */
-	public static int orFlags(int[] flags) {
-		int last = flags.length - 1;
-		int result = flags[last];
-		for (int i = last; i-- > 0; ) {
-			result |= flags[i];
-		}
-		return result;
-	}
-
-	/**
-	 * AND all the specified 'flags' together and return the result.
-	 */
-	public static int andFlags(int[] flags) {
-		int last = flags.length - 1;
-		int result = flags[last];
-		for (int i = last; i-- > 0; ) {
-			result &= flags[i];
-		}
-		return result;
-	}
-
-	/**
-	 * XOR all the specified 'flags' together and return the result.
-	 */
-	public static int xorFlags(int[] flags) {
-		int last = flags.length - 1;
-		int result = flags[last];
-		for (int i = last; i-- > 0; ) {
-			result ^= flags[i];
-		}
-		return result;
-	}
-
-
-	// ********** constructor **********
-
-	/**
-	 * Suppress default constructor, ensuring non-instantiability.
-	 */
-	private BitTools() {
-		super();
-		throw new UnsupportedOperationException();
-	}
-
-}
diff --git a/jpa/plugins/org.eclipse.jpt.utility/src/org/eclipse/jpt/utility/internal/BooleanHolder.java b/jpa/plugins/org.eclipse.jpt.utility/src/org/eclipse/jpt/utility/internal/BooleanHolder.java
deleted file mode 100644
index e014e4e..0000000
--- a/jpa/plugins/org.eclipse.jpt.utility/src/org/eclipse/jpt/utility/internal/BooleanHolder.java
+++ /dev/null
@@ -1,126 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.utility.internal;
-
-import java.io.Serializable;
-
-/**
- * Provide a container for passing a flag that can be changed by the recipient.
- * @see SynchronizedBoolean
- */
-public class BooleanHolder
-	implements Cloneable, Serializable
-{
-	/** Backing boolean. */
-	private boolean value;
-
-	private static final long serialVersionUID = 1L;
-
-
-	// ********** constructors **********
-
-	/**
-	 * Create a boolean holder with the specified initial value.
-	 */
-	public BooleanHolder(boolean value) {
-		super();
-		this.value = value;
-	}
-
-	/**
-	 * Create a boolean holder with an initial value of false.
-	 */
-	public BooleanHolder() {
-		this(false);
-	}
-
-
-	// ********** accessors **********
-
-	/**
-	 * Return the current boolean value.
-	 */
-	public boolean getValue() {
-		return this.value;
-	}
-
-	/**
-	 * Return whether the current boolean value is true.
-	 */
-	public boolean isTrue() {
-		return this.value;
-	}
-
-	/**
-	 * Return whether the current boolean value is false.
-	 */
-	public boolean isFalse() {
-		return ! this.value;
-	}
-
-	/**
-	 * Return whether the current boolean value is the specified value.
-	 */
-	public boolean is(boolean v) {
-		return this.value == v;
-	}
-
-	/**
-	 * Set the boolean value.
-	 */
-	public void setValue(boolean value) {
-		this.value = value;
-	}
-
-	/**
-	 * Set the boolean value to true.
-	 */
-	public void setTrue() {
-		this.value = true;
-	}
-
-	/**
-	 * Set the boolean value to false.
-	 */
-	public void setFalse() {
-		this.value = false;
-	}
-
-
-	// ********** standard methods **********
-
-	@Override
-	public Object clone() {
-		try {
-			return super.clone();
-		} catch (CloneNotSupportedException ex) {
-			throw new InternalError();
-		}
-	}
-
-	@Override
-	public boolean equals(Object o) {
-		if (o instanceof BooleanHolder) {
-			return this.value == ((BooleanHolder) o).value;
-		}
-		return false;
-	}
-
-	@Override
-	public int hashCode() {
-		return this.value ? 1 : 0;
-	}
-
-	@Override
-	public String toString() {
-		return '[' + String.valueOf(this.value) + ']';
-	}
-
-}
diff --git a/jpa/plugins/org.eclipse.jpt.utility/src/org/eclipse/jpt/utility/internal/ClassTools.java b/jpa/plugins/org.eclipse.jpt.utility/src/org/eclipse/jpt/utility/internal/ClassTools.java
deleted file mode 100644
index 358a4b6..0000000
--- a/jpa/plugins/org.eclipse.jpt.utility/src/org/eclipse/jpt/utility/internal/ClassTools.java
+++ /dev/null
@@ -1,1711 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005, 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.utility.internal;
-
-import java.lang.reflect.Constructor;
-import java.lang.reflect.Field;
-import java.lang.reflect.InvocationTargetException;
-import java.lang.reflect.Method;
-import java.lang.reflect.Modifier;
-import java.util.Collections;
-import java.util.Stack;
-
-/**
- * Convenience methods related to the java.lang.reflect package.
- * These methods provide shortcuts for manipulating objects via
- * reflection; particularly when dealing with fields and/or methods that
- * are not publicly accessible or are inherited.
- * 
- * In most cases, all the exceptions are handled and
- * wrapped in java.lang.RuntimeExceptions; so these methods should
- * be used when you are confident that you will not having any problems
- * using reflection.
- * 
- * There are also a number of methods whose names
- * begin with "attempt". These methods will throw a NoSuchMethodException
- * or NoSuchFieldException when appropriate, allowing you to probe
- * for methods that should be present but might not.
- */
-public final class ClassTools {
-
-	public static final Class<?>[] ZERO_PARAMETER_TYPES = new Class[0];
-	public static final Object[] ZERO_PARAMETERS = new Object[0];
-	private static final String CR = StringTools.CR;
-
-	public static final char NESTED_CLASS_NAME_SEPARATOR = '$';
-
-	public static final char ARRAY_INDICATOR = '[';
-	public static final char TYPE_DECLARATION_ARRAY_OPEN = '[';
-	public static final char TYPE_DECLARATION_ARRAY_CLOSE = ']';
-
-	public static final char REFERENCE_CLASS_CODE = 'L';
-	public static final char REFERENCE_CLASS_NAME_DELIMITER = ';';
-	
-	private static Primitive[] PRIMITIVES;  // pseudo-'final' - lazy-initialized
-	public static final char BYTE_CODE = 'B';
-	public static final char CHAR_CODE = 'C';
-	public static final char DOUBLE_CODE = 'D';
-	public static final char FLOAT_CODE = 'F';
-	public static final char INT_CODE = 'I';
-	public static final char LONG_CODE = 'J';
-	public static final char SHORT_CODE = 'S';
-	public static final char BOOLEAN_CODE = 'Z';
-	public static final char VOID_CODE = 'V';
-	private static int MAX_PRIMITIVE_CLASS_NAME_LENGTH = -1;  // pseudo-'final' - lazy-initialized
-	private static int MAX_PRIMITIVE_WRAPPER_CLASS_NAME_LENGTH = -1;  // pseudo-'final' - lazy-initialized
-
-	public static final String VOID_CLASS_NAME = void.class.getName();
-	public static final String VOID_WRAPPER_CLASS_NAME = java.lang.Void.class.getName();
-
-
-	/**
-	 * Return all the fields for the
-	 * specified class, including inherited fields.
-	 * Class#allFields()
-	 */
-	public static Field[] allFields(Class<?> javaClass) {
-		Stack<Field> stack = new Stack<Field>();
-		for (Class<?> tempClass = javaClass; tempClass != null; tempClass = tempClass.getSuperclass()) {
-			pushDeclaredFields(tempClass, stack);
-		}
-		Collections.reverse(stack);
-		return stack.toArray(new Field[stack.size()]);
-	}
-	
-	/**
-	 * Return all the methods for the
-	 * specified class, including inherited methods.
-	 * Class#allMethods()
-	 */
-	public static Method[] allMethods(Class<?> javaClass) {
-		Stack<Method> stack = new Stack<Method>();
-		for (Class<?> tempClass = javaClass; tempClass != null; tempClass = tempClass.getSuperclass()) {
-			pushDeclaredMethods(tempClass, stack);
-		}
-		Collections.reverse(stack);
-		return stack.toArray(new Method[stack.size()]);
-	}
-	
-	/**
-	 * Convenience method.
-	 * Return a new instance of the specified class,
-	 * using the class's default (zero-argument) constructor.
-	 * Throw an exception if the default constructor is not defined.
-	 * Class#newInstance() throws NoSuchMethodException
-	 */
-	public static <T> T attemptNewInstance(Class<T> javaClass) throws NoSuchMethodException {
-		return attemptNewInstance(javaClass, ZERO_PARAMETER_TYPES, ZERO_PARAMETERS);
-	}
-	
-	/**
-	 * Return a new instance of the specified class,
-	 * given the constructor parameter types and parameters.
-	 * Throw an exception if the constructor is not defined.
-	 * Class#newInstance(Class<?>[] parameterTypes, Object[] parameters) throws NoSuchMethodException
-	 */
-	public static <T> T attemptNewInstance(Class<T> javaClass, Class<?>[] parameterTypes, Object[] parameters) throws NoSuchMethodException {
-		try {
-			return constructor(javaClass, parameterTypes).newInstance(parameters);
-		} catch (InstantiationException ie) {
-			throw new RuntimeException(ie + CR + fullyQualifiedConstructorSignature(javaClass, parameterTypes), ie);
-		} catch (IllegalAccessException iae) {
-			throw new RuntimeException(iae + CR + fullyQualifiedConstructorSignature(javaClass, parameterTypes), iae);
-		} catch (InvocationTargetException ite) {
-			throw new RuntimeException(fullyQualifiedConstructorSignature(javaClass, parameterTypes) + CR + ite.getTargetException(), ite);
-		}
-	}
-	
-	/**
-	 * Convenience method.
-	 * Return a new instance of the specified class,
-	 * given the constructor parameter type and parameter.
-	 * Throw an exception if the constructor is not defined.
-	 * Class#newInstance(Class<?> parameterType, Object parameter) throws NoSuchMethodException
-	 */
-	public static <T> T attemptNewInstance(Class<T> javaClass, Class<?> parameterType, Object parameter) throws NoSuchMethodException {
-		return attemptNewInstance(javaClass, new Class[] {parameterType}, new Object[] {parameter});
-	}
-	
-	/**
-	 * Attempt to get a field value, given the containing object and field name.
-	 * Return its result.
-	 * Useful for accessing private, package, or protected fields.
-	 * Throw an exception if the field is not defined.
-	 * Object#getFieldValue(String fieldName) throws NoSuchFieldException
-	 */
-	public static Object attemptToGetFieldValue(Object object, String fieldName) throws NoSuchFieldException {
-		try {
-			return field(object, fieldName).get(object);
-		} catch (IllegalAccessException iae) {
-			throw new RuntimeException(iae + CR + fullyQualifiedFieldName(object, fieldName), iae);
-		}
-	}
-	
-	/**
-	 * Attempt to get a static field value, given the containing object and field name.
-	 * Return its result.
-	 * Useful for accessing private, package, or protected fields.
-	 * Throw an exception if the field is not defined.
-	 * Class#getStaticFieldValue(String fieldName) throws NoSuchFieldException
-	 */
-	public static Object attemptToGetStaticFieldValue(Class<?> javaClass, String fieldName) throws NoSuchFieldException {
-		try {
-			return field(javaClass, fieldName).get(null);
-		} catch (IllegalAccessException iae) {
-			throw new RuntimeException(iae + CR + fullyQualifiedFieldName(javaClass, fieldName), iae);
-		}
-	}
-	
-	/**
-	 * Convenience method.
-	 * Attempt to execute a zero-argument method,
-	 * given the receiver and method name.
-	 * Return its result.
-	 * Throw an exception if the method is not found.
-	 * Useful for invoking private, package, or protected methods.
-	 * Object#execute(String methodName) throws NoSuchMethodException
-	 */
-	public static Object attemptToExecuteMethod(Object receiver, String methodName) throws NoSuchMethodException {
-		return attemptToExecuteMethod(receiver, methodName, ZERO_PARAMETER_TYPES, ZERO_PARAMETERS);
-	}
-	
-	/**
-	 * Convenience method.
-	 * Attempt to execute a method, given the receiver,
-	 * method name, parameter type, and parameter.
-	 * Return its result.
-	 * Throw an exception if the method is not found.
-	 * Useful for invoking private, package, or protected methods.
-	 * Object#execute(String methodName, Class<?> parameterType, Object parameter) throws NoSuchMethodException
-	 */
-	public static Object attemptToExecuteMethod(Object receiver, String methodName, Class<?> parameterType, Object parameter) throws NoSuchMethodException {
-		return attemptToExecuteMethod(receiver, methodName, new Class[] {parameterType}, new Object[] {parameter});
-	}
-	
-	/**
-	 * Attempt to execute a method, given the receiver,
-	 * method name, parameter types, and parameters.
-	 * Return its result.
-	 * Throw an exception if the method is not found.
-	 * Useful for invoking private, package, or protected methods.
-	 * Object#execute(String methodName, Class<?>[] parameterTypes, Object[] parameters) throws NoSuchMethodException
-	 */
-	public static Object attemptToExecuteMethod(Object receiver, String methodName, Class<?>[] parameterTypes, Object[] parameters) throws NoSuchMethodException {
-		return executeMethod(method(receiver, methodName, parameterTypes), receiver, parameters);
-	}
-	
-	/**
-	 * Attempt to execute a method, given the receiver,
-	 * method name, parameter types, and parameters.
-	 * Return its result.
-	 * Throw an exception if the method is not found.
-	 * If the executed method throws an exception, rethrow that exception.
-	 * Useful for invoking private, package, or protected methods.
-	 * Object#execute(String methodName, Class<?>[] parameterTypes, Object[] parameters) throws NoSuchMethodException
-	 */
-	public static Object attemptToExecuteMethodWithException(Object receiver, String methodName, Class<?>[] parameterTypes, Object[] parameters) 
-		throws Throwable, NoSuchMethodException 
-	{
-		return executeMethodWithException(method(receiver, methodName, parameterTypes), receiver, parameters);
-	}
-	
-	/**
-	 * Convenience method.
-	 * Attempt to execute a zero-argument static method,
-	 * given the class and method name.
-	 * Return its result.
-	 * Throw an exception if the method is not found.
-	 * Useful for invoking private, package, or protected methods.
-	 * Class#executeStaticMethod(String methodName) throws NoSuchMethodException
-	 */
-	public static Object attemptToExecuteStaticMethod(Class<?> javaClass, String methodName) throws NoSuchMethodException {
-		return attemptToExecuteStaticMethod(javaClass, methodName, ZERO_PARAMETER_TYPES, ZERO_PARAMETERS);
-	}
-	
-	/**
-	 * Attempt to execute a static method, given the class,
-	 * method name, parameter types, and parameters.
-	 * Return its result.
-	 * Throw an exception if the method is not found.
-	 * Useful for invoking private, package, or protected methods.
-	 * Class#executeStaticMethod(String methodName, Class<?>[] parameterTypes, Object[] parameters) throws NoSuchMethodException
-	 */
-	public static Object attemptToExecuteStaticMethod(Class<?> javaClass, String methodName, Class<?>[] parameterTypes, Object[] parameters) throws NoSuchMethodException {
-		return executeStaticMethod(staticMethod(javaClass, methodName, parameterTypes), parameters);
-	}
-	
-	/**
-	 * Convenience method.
-	 * Attempt to execute a static method, given the class,
-	 * method name, parameter type, and parameter.
-	 * Return its result.
-	 * Throw an exception if the method is not found.
-	 * Useful for invoking private, package, or protected methods.
-	 * Class#executeStaticMethod(String methodName, Class<?> parameterType, Object parameter) throws NoSuchMethodException
-	 */
-	public static Object attemptToExecuteStaticMethod(Class<?> javaClass, String methodName, Class<?> parameterType, Object parameter) throws NoSuchMethodException {
-		return attemptToExecuteStaticMethod(javaClass, methodName, new Class[] {parameterType}, new Object[] {parameter});
-	}
-	
-	/**
-	 * Attempt to set a field value, given the
-	 * containing object, field name, and new field value.
-	 * Useful for accessing private, package, or protected fields.
-	 * Throw an exception if the field is not defined.
-	 * Object#setFieldValue(String fieldName, Object fieldValue) throws NoSuchFieldException
-	 */
-	public static void attemptToSetFieldValue(Object object, String fieldName, Object fieldValue) throws NoSuchFieldException {
-		try {
-			field(object, fieldName).set(object, fieldValue);
-		} catch (IllegalAccessException iae) {
-			throw new RuntimeException(iae + CR + fullyQualifiedFieldName(object, fieldName), iae);
-		}
-	}
-	
-	/**
-	 * Attempt to set a static field value, given the
-	 * containing class, field name, and new field value.
-	 * Useful for accessing private, package, or protected fields.
-	 * Throw an exception if the field is not defined.
-	 * Class#setStaticFieldValue(String fieldName, Object fieldValue) throws NoSuchFieldException
-	 */
-	public static void attemptToSetStaticFieldValue(Class<?> javaClass, String fieldName, Object fieldValue) throws NoSuchFieldException {
-		try {
-			field(javaClass, fieldName).set(null, fieldValue);
-		} catch (IllegalAccessException iae) {
-			throw new RuntimeException(iae + CR + fullyQualifiedFieldName(javaClass, fieldName), iae);
-		}
-	}
-	
-	/**
-	 * Convenience method.
-	 * Return the default (zero-argument) constructor
-	 * for the specified class.
-	 * Set accessible to true, so we can access
-	 * private/package/protected constructors.
-	 * Class#constructor() throws NoSuchMethodException
-	 */
-	public static <T> Constructor<T> constructor(Class<T> javaClass) throws NoSuchMethodException {
-		return constructor(javaClass, ZERO_PARAMETER_TYPES);
-	}
-	
-	/**
-	 * Return the constructor for the specified class
-	 * and formal parameter types.
-	 * Set accessible to true, so we can access
-	 * private/package/protected constructors.
-	 * Class#constructor(Class<?>[] parameterTypes) throws NoSuchMethodException
-	 */
-	public static <T> Constructor<T> constructor(Class<T> javaClass, Class<?>[] parameterTypes) throws NoSuchMethodException {
-		Constructor<T> constructor = javaClass.getDeclaredConstructor(parameterTypes);
-		constructor.setAccessible(true);
-		return constructor;
-	}
-	
-	/**
-	 * Convenience method.
-	 * Return the constructor for the specified class
-	 * and formal parameter type.
-	 * Set accessible to true, so we can access
-	 * private/package/protected constructors.
-	 * Class#constructor(Class<?> parameterType) throws NoSuchMethodException
-	 */
-	public static <T> Constructor<T> constructor(Class<T> javaClass, Class<?> parameterType) throws NoSuchMethodException {
-		return constructor(javaClass, new Class[] {parameterType});
-	}
-	
-	/**
-	 * Return the declared fields for the specified class.
-	 * Set accessible to true, so we can access
-	 * private/package/protected fields.
-	 * Class#accessibleDeclaredFields()
-	 */
-	public static Field[] declaredFields(Class<?> javaClass) {
-		Field[] fields = javaClass.getDeclaredFields();
-		for (Field field : fields) {
-			field.setAccessible(true);
-		}
-		return fields;
-	}
-	
-	/**
-	 * Return the declared methods for the
-	 * specified class.
-	 * Set accessible to true, so we can access
-	 * private/package/protected methods.
-	 * Class#accessibleDeclaredMethods()
-	 */
-	public static Method[] declaredMethods(Class<?> javaClass) {
-		Method[] methods = javaClass.getDeclaredMethods();
-		for (Method method : methods) {
-			method.setAccessible(true);
-		}
-		return methods;
-	}
-	
-	/**
-	 * Return the default (zero-argument) constructor
-	 * for the specified class.
-	 * Set accessible to true, so we can access
-	 * private/package/protected constructors.
-	 * Class#defaultConstructor()
-	 */
-	public static <T> Constructor<T> defaultConstructor(Class<T> javaClass) throws NoSuchMethodException {
-		return constructor(javaClass);
-	}
-	
-	/**
-	 * Return a field for the specified class and field name.
-	 * If the class does not directly
-	 * define the field, look for it in the class's superclasses.
-	 * Set accessible to true, so we can access
-	 * private/package/protected fields.
-	 */
-	public static Field field(Class<?> javaClass, String fieldName) throws NoSuchFieldException {
-		Field field = null;
-		try {
-			field = javaClass.getDeclaredField(fieldName);
-		} catch (NoSuchFieldException ex) {
-			Class<?> superclass = javaClass.getSuperclass();
-			if (superclass == null) {
-				throw ex;
-			}
-			// recurse
-			return field(superclass, fieldName);
-		}
-		field.setAccessible(true);
-		return field;
-	}
-	
-	/**
-	 * Convenience method.
-	 * Return a field for the specified object and field name.
-	 * If the object's class does not directly
-	 * define the field, look for it in the class's superclasses.
-	 * Set accessible to true, so we can access
-	 * private/package/protected fields.
-	 */
-	public static Field field(Object object, String fieldName) throws NoSuchFieldException {
-		return field(object.getClass(), fieldName);
-	}
-	
-	/*
-	 * Return a string representation of the specified constructor.
-	 */
-	private static String fullyQualifiedConstructorSignature(Class<?> javaClass, Class<?>[] parameterTypes) {
-		return fullyQualifiedMethodSignature(javaClass, null, parameterTypes);
-	}
-	
-	/*
-	 * Return a string representation of the specified field.
-	 */
-	private static String fullyQualifiedFieldName(Class<?> javaClass, String fieldName) {
-		StringBuilder sb = new StringBuilder(200);
-		sb.append(javaClass.getName());
-		sb.append('.');
-		sb.append(fieldName);
-		return sb.toString();
-	}
-	
-	/*
-	 * Return a string representation of the specified field.
-	 */
-	private static String fullyQualifiedFieldName(Object object, String fieldName) {
-		return fullyQualifiedFieldName(object.getClass(), fieldName);
-	}
-	
-	/*
-	 * Return a string representation of the specified method.
-	 */
-	private static String fullyQualifiedMethodSignature(Class<?> javaClass, String methodName, Class<?>[] parameterTypes) {
-		StringBuilder sb = new StringBuilder(200);
-		sb.append(javaClass.getName());
-		// this check allows us to use this code for constructors, where the methodName is null
-		if (methodName != null) {
-			sb.append('.');
-			sb.append(methodName);
-		}
-		sb.append('(');
-		int max = parameterTypes.length - 1;
-		if (max != -1) {
-			// stop one short of the end of the array
-			for (int i = 0; i < max; i++) {
-				sb.append(parameterTypes[i].getName());
-				sb.append(", "); //$NON-NLS-1$
-			}
-			sb.append(parameterTypes[max].getName());
-		}
-		sb.append(')');
-		return sb.toString();
-	}
-	
-	/*
-	 * Return a string representation of the specified method.
-	 */
-	private static String fullyQualifiedMethodSignature(Object receiver, String methodName, Class<?>[] parameterTypes) {
-		return fullyQualifiedMethodSignature(receiver.getClass(), methodName, parameterTypes);
-	}
-	
-	/**
-	 * Get a field value, given the containing object and field name.
-	 * Return its result.
-	 * Useful for accessing private, package, or protected fields.
-	 * Object#getFieldValue(String fieldName)
-	 */
-	public static Object fieldValue(Object object, String fieldName) {
-		try {
-			return attemptToGetFieldValue(object, fieldName);
-		} catch (NoSuchFieldException nsfe) {
-			throw new RuntimeException(nsfe + CR + fullyQualifiedFieldName(object, fieldName), nsfe);
-		}
-	}
-	
-	/**
-	 * Get a static field value, given the containing class and field name.
-	 * Return its result.
-	 * Useful for accessing private, package, or protected fields.
-	 * Class#getStaticFieldValue(String fieldName)
-	 */
-	public static Object staticFieldValue(Class<?> javaClass, String fieldName) {
-		try {
-			return attemptToGetStaticFieldValue(javaClass, fieldName);
-		} catch (NoSuchFieldException nsfe) {
-			throw new RuntimeException(nsfe + CR + fullyQualifiedFieldName(javaClass, fieldName), nsfe);
-		}
-	}
-	
-	/**
-	 * Convenience method.
-	 * Execute a zero-argument method, given the receiver and method name.
-	 * Return its result.
-	 * Useful for invoking private, package, or protected methods.
-	 * Object#execute(String methodName)
-	 */
-	public static Object executeMethod(Object receiver, String methodName) {
-		return executeMethod(receiver, methodName, ZERO_PARAMETER_TYPES, ZERO_PARAMETERS);
-	}
-	
-	/**
-	 * Execute a method, given the receiver,
-	 * method name, parameter types, and parameters.
-	 * Return its result.
-	 * Useful for invoking private, package, or protected methods.
-	 * Object#execute(String methodName, Class<?>[] parameterTypes, Object[] parameters)
-	 */
-	public static Object executeMethod(Object receiver, String methodName, Class<?>[] parameterTypes, Object[] parameters) {
-		try {
-			return attemptToExecuteMethod(receiver, methodName, parameterTypes, parameters);
-		} catch (NoSuchMethodException nsme) {
-			throw new RuntimeException(nsme + CR + fullyQualifiedMethodSignature(receiver, methodName, parameterTypes), nsme);
-		}
-	}
-	
-	/**
-	 * Convenience method.
-	 * Execute a one-argument method, given the receiver,
-	 * method name, parameter type, and parameter.
-	 * Return its result.
-	 * Useful for invoking private, package, or protected methods.
-	 * Object#execute(String methodName, Class<?> parameterType, Object parameter)
-	 */
-	public static Object executeMethod(Object receiver, String methodName, Class<?> parameterType, Object parameter) {
-		return executeMethod(receiver, methodName, new Class[] {parameterType}, new Object[] {parameter});
-	}
-	
-	/**
-	 * Convenience method.
-	 * Execute a zero-argument method, given the receiver and method name.
-	 * Return its result.
-	 * If the method throws an exception, rethrow that exception.
-	 * Useful for invoking private, package, or protected methods.
-	 * Object#execute(String methodName)
-	 */
-	public static Object executeMethodWithException(Object receiver, String methodName) 
-		throws Throwable
-	{
-		return executeMethodWithException(receiver, methodName, ZERO_PARAMETER_TYPES, ZERO_PARAMETERS);
-	}
-	
-	/**
-	 * Convenience method.
-	 * Execute a one-argument method, given the receiver,
-	 * method name, parameter type, and parameter.
-	 * Return its result.
-	 * If the method throws an exception, rethrow that exception.
-	 * Useful for invoking private, package, or protected methods.
-	 * Object#execute(String methodName, Class<?> parameterType, Object parameter)
-	 */
-	public static Object executeMethodWithException(Object receiver, String methodName, Class<?> parameterType, Object parameter) 
-		throws Throwable
-	{
-		return executeMethodWithException(receiver, methodName, new Class[] {parameterType}, new Object[] {parameter});
-	}
-	
-	/**
-	 * Execute a method, given the receiver,
-	 * method name, parameter types, and parameters.
-	 * Return its result.
-	 * If the method throws an exception, rethrow that exception.
-	 * Useful for invoking private, package, or protected methods.
-	 * Object#execute(String methodName, Class<?>[] parameterTypes, Object[] parameters)
-	 */
-	public static Object executeMethodWithException(Object receiver, String methodName, Class<?>[] parameterTypes, Object[] parameters) 
-		throws Throwable
-	{
-		try {
-			return attemptToExecuteMethodWithException(receiver, methodName, parameterTypes, parameters);
-		} catch (NoSuchMethodException nsme) {
-			throw new RuntimeException(nsme + CR + fullyQualifiedMethodSignature(receiver, methodName, parameterTypes), nsme);
-		}
-	}
-	
-	/**
-	 * Execute the specified method with the specified parameters.
-	 * Return its result.
-	 * Convert exceptions to RuntimeExceptions.
-	 */
-	public static Object executeMethod(Method method, Object receiver, Object[] parameters) {
-		try {
-			return method.invoke(receiver, parameters);
-		} catch (IllegalAccessException iae) {
-			throw new RuntimeException(iae + CR + method, iae);
-		} catch (InvocationTargetException ite) {
-			throw new RuntimeException(method + CR + ite.getTargetException(), ite);
-		}
-	}
-	
-	/**
-	 * Execute the specified method with the specified parameters.
-	 * Return its result.
-	 * If the method throws an exception, rethrow that exception.
-	 * Convert all other exceptions to RuntimeExceptions.
-	 */
-	public static Object executeMethodWithException(Method method, Object receiver, Object[] parameters)
-		throws Throwable
-	{
-		try {
-			return method.invoke(receiver, parameters);
-		} catch (IllegalAccessException iae) {
-			throw new RuntimeException(iae + CR + method, iae);
-		} catch (InvocationTargetException ite) {
-			Throwable cause = ite.getCause();
-			if (cause == null) {
-				throw new RuntimeException(method.toString(), ite);
-			}
-			throw cause;
-		}
-	}
-	
-	/**
-	 * Convenience method.
-	 * Execute a zero-argument static method,
-	 * given the class and method name.
-	 * Return its result.
-	 * Useful for invoking private, package, or protected methods.
-	 * Class#executeStaticMethod(String methodName)
-	 */
-	public static Object executeStaticMethod(Class<?> javaClass, String methodName) {
-		return executeStaticMethod(javaClass, methodName, ZERO_PARAMETER_TYPES, ZERO_PARAMETERS);
-	}
-	
-	/**
-	 * Execute a static method, given the class,
-	 * method name, parameter types, and parameters.
-	 * Return its result.
-	 * Useful for invoking private, package, or protected methods.
-	 * Class#executeStaticMethod(String methodName, Class<?>[] parameterTypes, Object[] parameters)
-	 */
-	public static Object executeStaticMethod(Class<?> javaClass, String methodName, Class<?>[] parameterTypes, Object[] parameters) {
-		try {
-			return attemptToExecuteStaticMethod(javaClass, methodName, parameterTypes, parameters);
-		} catch (NoSuchMethodException nsme) {
-			throw new RuntimeException(nsme + CR + fullyQualifiedMethodSignature(javaClass, methodName, parameterTypes), nsme);
-		}
-	}
-	
-	/**
-	 * Convenience method.
-	 * Execute a static method, given the class,
-	 * method name, parameter type, and parameter.
-	 * Return its result.
-	 * Useful for invoking private, package, or protected methods.
-	 * Class#executeStaticMethod(String methodName, Class<?> parameterType, Object parameter)
-	 */
-	public static Object executeStaticMethod(Class<?> javaClass, String methodName, Class<?> parameterType, Object parameter) {
-		return executeStaticMethod(javaClass, methodName, new Class[] {parameterType}, new Object[] {parameter});
-	}
-	
-	/**
-	 * Execute the specified static method with the specified parameters.
-	 * Return its result.
-	 * Convert exceptions to RuntimeExceptions.
-	 */
-	public static Object executeStaticMethod(Method method, Object[] parameters) {
-		return executeMethod(method, null, parameters);
-	}
-	
-	/**
-	 * Convenience method.
-	 * Return a zero-argument method for the specified class
-	 * and method name. If the class does not directly
-	 * implement the method, look for it in the class's superclasses.
-	 * Set accessible to true, so we can access
-	 * private/package/protected methods.
-	 */
-	public static Method method(Class<?> javaClass, String methodName) throws NoSuchMethodException {
-		return method(javaClass, methodName, ZERO_PARAMETER_TYPES);
-	}
-	
-	/**
-	 * Return a method for the specified class, method name,
-	 * and formal parameter types. If the class does not directly
-	 * implement the method, look for it in the class's superclasses.
-	 * Set accessible to true, so we can access
-	 * private/package/protected methods.
-	 */
-	public static Method method(Class<?> javaClass, String methodName, Class<?>[] parameterTypes) throws NoSuchMethodException {
-		Method method = null;
-		try {
-			method = javaClass.getDeclaredMethod(methodName, parameterTypes);
-		} catch (NoSuchMethodException ex) {
-			Class<?> superclass = javaClass.getSuperclass();
-			if (superclass == null) {
-				throw ex;
-			}
-			// recurse
-			return method(superclass, methodName, parameterTypes);
-		}
-		method.setAccessible(true);
-		return method;
-	}
-	
-	/**
-	 * Convenience method.
-	 * Return a method for the specified class, method name,
-	 * and formal parameter type. If the class does not directly
-	 * implement the method, look for it in the class's superclasses.
-	 * Set accessible to true, so we can access
-	 * private/package/protected methods.
-	 */
-	public static Method method(Class<?> javaClass, String methodName, Class<?> parameterType) throws NoSuchMethodException {
-		return method(javaClass, methodName, new Class[] {parameterType});
-	}
-	
-	/**
-	 * Convenience method.
-	 * Return a zero-argument method for the specified object
-	 * and method name. If the object's class does not directly
-	 * implement the method, look for it in the class's superclasses.
-	 * Set accessible to true, so we can access
-	 * private/package/protected methods.
-	 */
-	public static Method method(Object object, String methodName) throws NoSuchMethodException {
-		return method(object.getClass(), methodName);
-	}
-	
-	/**
-	 * Convenience method.
-	 * Return a method for the specified object, method name,
-	 * and formal parameter types. If the object's class does not directly
-	 * implement the method, look for it in the class's superclasses.
-	 * Set accessible to true, so we can access
-	 * private/package/protected methods.
-	 */
-	public static Method method(Object object, String methodName, Class<?>[] parameterTypes) throws NoSuchMethodException {
-		return method(object.getClass(), methodName, parameterTypes);
-	}
-	
-	/**
-	 * Convenience method.
-	 * Return a method for the specified object, method name,
-	 * and formal parameter type. If the object's class does not directly
-	 * implement the method, look for it in the class's superclasses.
-	 * Set accessible to true, so we can access
-	 * private/package/protected methods.
-	 */
-	public static Method method(Object object, String methodName, Class<?> parameterType) throws NoSuchMethodException {
-		return method(object.getClass(), methodName, parameterType);
-	}
-	
-	/**
-	 * Convenience method.
-	 * Return the specified class (without the checked exception).
-	 */
-	public static Class<?> classForName(String className) {
-		try {
-			return Class.forName(className);
-		} catch (ClassNotFoundException ex) {
-			throw new RuntimeException(className, ex);
-		}
-	}
-	
-	/**
-	 * Convenience method.
-	 * Return a new instance of the specified class,
-	 * using the class's default (zero-argument) constructor.
-	 * Class#newInstance()
-	 */
-	public static <T> T newInstance(Class<T> javaClass) {
-		return newInstance(javaClass, ZERO_PARAMETER_TYPES, ZERO_PARAMETERS);
-	}
-	
-	/**
-	 * Convenience method.
-	 * Return a new instance of the specified class,
-	 * using the class's default (zero-argument) constructor.
-	 * Class#newInstance()
-	 */
-	public static Object newInstance(String className) throws ClassNotFoundException {
-		return newInstance(className, null);
-	}
-	
-	/**
-	 * Convenience method.
-	 * Return a new instance of the specified class,
-	 * using the class's default (zero-argument) constructor.
-	 * Class#newInstance()
-	 */
-	public static Object newInstance(String className, ClassLoader classLoader) throws ClassNotFoundException {
-		return newInstance(Class.forName(className, true, classLoader));
-	}
-	
-	/**
-	 * Return a new instance of the specified class,
-	 * given the constructor parameter types and parameters.
-	 * Class#newInstance(Class<?>[] parameterTypes, Object[] parameters)
-	 */
-	public static <T> T newInstance(Class<T> javaClass, Class<?>[] parameterTypes, Object[] parameters) {
-		try {
-			return attemptNewInstance(javaClass, parameterTypes, parameters);
-		} catch (NoSuchMethodException nsme) {
-			throw new RuntimeException(nsme + CR + fullyQualifiedConstructorSignature(javaClass, parameterTypes), nsme);
-		}
-	}
-	
-	/**
-	 * Return a new instance of the specified class,
-	 * given the constructor parameter types and parameters.
-	 * Class#newInstance(Class<?>[] parameterTypes, Object[] parameters)
-	 */
-	public static Object newInstance(String className, Class<?>[] parameterTypes, Object[] parameters) throws ClassNotFoundException {
-		return newInstance(className, parameterTypes, parameters, null);
-	}
-	
-	/**
-	 * Return a new instance of the specified class,
-	 * given the constructor parameter types and parameters.
-	 * Class#newInstance(Class<?>[] parameterTypes, Object[] parameters)
-	 */
-	public static Object newInstance(String className, Class<?>[] parameterTypes, Object[] parameters, ClassLoader classLoader) throws ClassNotFoundException {
-		return newInstance(Class.forName(className, true, classLoader), parameterTypes, parameters);
-	}
-	
-	/**
-	 * Convenience method.
-	 * Return a new instance of the specified class,
-	 * given the constructor parameter type and parameter.
-	 * Class#newInstance(Class<?> parameterType, Object parameter)
-	 */
-	public static <T> T newInstance(Class<T> javaClass, Class<?> parameterType, Object parameter) {
-		return newInstance(javaClass, new Class[] {parameterType}, new Object[] {parameter});
-	}
-	
-	/**
-	 * Return a new instance of the specified class,
-	 * given the constructor parameter type and parameter.
-	 * Class#newInstance(Class<?> parameterType, Object parameter)
-	 */
-	public static Object newInstance(String className, Class<?> parameterType, Object parameter) throws ClassNotFoundException {
-		return newInstance(className, parameterType, parameter, null);
-	}
-	
-	/**
-	 * Return a new instance of the specified class,
-	 * given the constructor parameter type and parameter.
-	 * Class#newInstance(Class<?> parameterType, Object parameter)
-	 */
-	public static Object newInstance(String className, Class<?> parameterType, Object parameter, ClassLoader classLoader) throws ClassNotFoundException {
-		return newInstance(Class.forName(className, false, classLoader), parameterType, parameter);
-	}
-	
-	/*
-	 * Push the declared fields for the specified class
-	 * onto the top of the stack.
-	 */
-	private static void pushDeclaredFields(Class<?> javaClass, Stack<Field> stack) {
-		Field[] fields = declaredFields(javaClass);
-		for (int i = fields.length; i-- > 0; ) {
-			stack.push(fields[i]);
-		}
-	}
-	
-	/*
-	 * Push the declared methods for the specified class
-	 * onto the top of the stack.
-	 */
-	private static void pushDeclaredMethods(Class<?> javaClass, Stack<Method> stack) {
-		Method[] methods = declaredMethods(javaClass);
-		for (int i = methods.length; i-- > 0; ) {
-			stack.push(methods[i]);
-		}
-	}
-	
-	/**
-	 * Set a field value, given the containing object, field name, and new field value.
-	 * Useful for accessing private, package, or protected fields.
-	 * Object#setFieldValue(String fieldName, Object fieldValue)
-	 */
-	public static void setFieldValue(Object object, String fieldName, Object fieldValue) {
-		try {
-			attemptToSetFieldValue(object, fieldName, fieldValue);
-		} catch (NoSuchFieldException nsfe) {
-			throw new RuntimeException(nsfe + CR + fullyQualifiedFieldName(object, fieldName), nsfe);
-		}
-	}
-	
-	/**
-	 * Set a static field value, given the containing class, field name, and new field value.
-	 * Useful for accessing private, package, or protected fields.
-	 * Class#setStaticFieldValue(String fieldName, Object fieldValue)
-	 */
-	public static void setStaticFieldValue(Class<?> javaClass, String fieldName, Object fieldValue) {
-		try {
-			attemptToSetStaticFieldValue(javaClass, fieldName, fieldValue);
-		} catch (NoSuchFieldException nsfe) {
-			throw new RuntimeException(nsfe + CR + fullyQualifiedFieldName(javaClass, fieldName), nsfe);
-		}
-	}
-	
-	/**
-	 * Return the short name of the object's class.
-	 * Class#getShortName()
-	 */
-	public static String shortClassNameForObject(Object object) {
-		return shortNameFor(object.getClass());
-	}
-	
-	/**
-	 * Return the short name of the class (e.g. "Object").
-	 * Class#getShortName()
-	 */
-	public static String shortNameForClassNamed(String className) {
-		return className.substring(className.lastIndexOf('.') + 1);
-	}
-	
-	/**
-	 * Return the short name of the class (e.g. "Object").
-	 * Class#getShortName()
-	 */
-	public static String shortNameFor(Class<?> javaClass) {
-		return shortNameForClassNamed(javaClass.getName());
-	}
-	
-	/**
-	 * Return the nested name of the object's class.
-	 * Class#getNestedName()
-	 */
-	public static String nestedClassNameForObject(Object object) {
-		return nestedNameFor(object.getClass());
-	}
-	
-	/**
-	 * Return the nested name of the class (e.g. "Entry").
-	 * Class#getNestedName()
-	 */
-	public static String nestedNameForClassNamed(String className) {
-		return className.substring(className.lastIndexOf(NESTED_CLASS_NAME_SEPARATOR) + 1);
-	}
-	
-	/**
-	 * Return the nested name of the class (e.g. "Entry").
-	 * Class#getNestedName()
-	 */
-	public static String nestedNameFor(Class<?> javaClass) {
-		return nestedNameForClassNamed(javaClass.getName());
-	}
-	
-	/**
-	 * Return the "toString()" name of the object's class.
-	 */
-	public static String toStringClassNameForObject(Object object) {
-		return toStringNameFor(object.getClass());
-	}
-	
-	/**
-	 * Return the "toString()" name of the class.
-	 * "Member" classes will return only the final name:
-	 *     "com.foo.bar.TopLevelClass$MemberClass$NestedMemberClass"
-	 *         => "NestedMemberClass"
-	 * "Local" and "anonymous" classes will still return the embedded '$'s:
-	 *     "com.foo.bar.TopLevelClass$1LocalClass"
-	 *         => "TopLevelClass$1LocalClass"
-	 *     "com.foo.bar.TopLevelClass$1"
-	 *         => "TopLevelClass$1"
-	 */
-	public static String toStringNameForClassNamed(String className) {
-		return classNamedIsMember(className) ?
-			className.substring(className.lastIndexOf(NESTED_CLASS_NAME_SEPARATOR) + 1)
-		:
-			className.substring(className.lastIndexOf('.') + 1);
-	}
-	
-	/**
-	 * Return the "toString()" name of the class.
-	 */
-	public static String toStringNameFor(Class<?> javaClass) {
-		return toStringNameForClassNamed(javaClass.getName());
-	}
-	
-	/**
-	 * Return the package name of the class (e.g. "java.lang").
-	 * Class#getPackageName()
-	 */
-	public static String packageNameFor(Class<?> javaClass) {
-		return packageNameForClassNamed(javaClass.getName());
-	}
-	
-	/**
-	 * Return the package name of the class (e.g. "java.lang").
-	 * Class#getPackageName()
-	 */
-	public static String packageNameForClassNamed(String className) {
-		int lastPeriod = className.lastIndexOf('.');
-		if (lastPeriod == -1) {
-			return ""; //$NON-NLS-1$
-		}
-		return className.substring(0, lastPeriod);
-	}
-	
-	/**
-	 * Return the short name of the class,
-	 * followed by its package name (e.g. "Object (java.lang)").
-	 * Class#getShortNameWithPackage()
-	 */
-	public static String shortNameWithPackage(Class<?> javaClass) {
-		StringBuilder sb = new StringBuilder(200);
-		sb.append(shortNameFor(javaClass));
-		if ( ! javaClass.isPrimitive()) {
-			sb.append(" ("); //$NON-NLS-1$
-			sb.append(packageNameFor(javaClass));
-			sb.append(')');
-		}
-		return sb.toString();
-	}
-	
-	/**
-	 * Convenience method.
-	 * Return a zero-argument, static method for the specified class
-	 * and method name. If the class does not directly
-	 * implement the method, look for it in the class's superclasses.
-	 * Set accessible to true, so we can access
-	 * private/package/protected methods.
-	 */
-	public static Method staticMethod(Class<?> javaClass, String methodName) throws NoSuchMethodException {
-		return staticMethod(javaClass, methodName, ZERO_PARAMETER_TYPES);
-	}
-	
-	/**
-	 * Return a static method for the specified class, method name,
-	 * and formal parameter types. If the class does not directly
-	 * implement the method, look for it in the class's superclasses.
-	 * Set accessible to true, so we can access
-	 * private/package/protected methods.
-	 */
-	public static Method staticMethod(Class<?> javaClass, String methodName, Class<?>[] parameterTypes) throws NoSuchMethodException {
-		Method method = method(javaClass, methodName, parameterTypes);
-		if (Modifier.isStatic(method.getModifiers())) {
-			return method;
-		}
-		throw new NoSuchMethodException(fullyQualifiedMethodSignature(javaClass, methodName, parameterTypes));
-	}
-	
-	/**
-	 * Convenience method.
-	 * Return a static method for the specified class, method name,
-	 * and formal parameter type. If the class does not directly
-	 * implement the method, look for it in the class's superclasses.
-	 * Set accessible to true, so we can access
-	 * private/package/protected methods.
-	 */
-	public static Method staticMethod(Class<?> javaClass, String methodName, Class<?> parameterTypes) throws NoSuchMethodException {
-		return staticMethod(javaClass, methodName, new Class[] {parameterTypes});
-	}
-
-	/**
-	 * Return whether the specified class can be "declared" in code;
-	 * i.e. it is either a "top-level" class or a "member" class, but it
-	 * is not an "array" class. This method rolls together all the checks
-	 * from the other methods for a bit of a performance tweak.
-	 * Class#isDeclarable()
-	 */
-	public static boolean classNamedIsDeclarable(String className) {
-		if (className.charAt(0) == ARRAY_INDICATOR) {
-			return false;		// it is an "array" class
-		}
-		int index = className.indexOf(NESTED_CLASS_NAME_SEPARATOR);
-		if (index == -1) {
-			return true;		// it is a "top-level" class
-		}
-		do {
-			// the character immediately after each dollar sign cannot be a digit
-			index++;
-			if (Character.isDigit(className.charAt(index))) {
-				return false;
-			}
-			index = className.indexOf(NESTED_CLASS_NAME_SEPARATOR, index);
-		} while (index != -1);
-		return true;
-	}
-	
-	/**
-	 * Return whether the specified class is a "top-level" class,
-	 * as opposed to a "member", "local", or "anonymous" class,
-	 * using the standard jdk naming conventions (i.e. the class
-	 * name does NOT contain a '$': "TopLevelClass").
-	 * Class#isTopLevel()
-	 */
-	public static boolean classNamedIsTopLevel(String className) {
-		if (classNamedIsArray(className)) {
-			return false;
-		}
-		return className.indexOf(NESTED_CLASS_NAME_SEPARATOR) == -1;
-	}
-
-	/**
-	 * Return whether the specified class is a "member" class,
-	 * as opposed to a "top-level", "local", or "anonymous" class,
-	 * using the standard jdk naming conventions (i.e. the class
-	 * name contains at least one '$' and all the names between
-	 * each '$' are legal class names:
-	 * "TopLevelClass$MemberClass$NestedMemberClass").
-	 * Class#isMember()
-	 */
-	public static boolean classNamedIsMember(String className) {
-		if (classNamedIsArray(className)) {
-			return false;
-		}
-		int index = className.indexOf(NESTED_CLASS_NAME_SEPARATOR);
-		if (index == -1) {
-			return false;	// it is a "top-level" class
-		}
-		do {
-			// the character immediately after each dollar sign cannot be a digit
-			index++;
-			if (Character.isDigit(className.charAt(index))) {
-				return false;
-			}
-			index = className.indexOf(NESTED_CLASS_NAME_SEPARATOR, index);
-		} while (index != -1);
-		return true;
-	}
-
-	/**
-	 * Return whether the specified class is a "local" class,
-	 * as opposed to a "top-level", "member", or "anonymous" class,
-	 * using the standard jdk (or Eclipse) naming conventions.
-	 * In the jdk, the class name ends with '$nnnXXX' where the '$' is
-	 * followed by a series of numeric digits which are followed by the
-	 * local class name: "TopLevelClass$1LocalClass".
-	 * In Eclipse, the class name ends with '$nnn$XXX' where the '$' is
-	 * followed by a series of numeric digits which are separated from
-	 * the local class name by another '$': "TopLevelClass$1$LocalClass".
-	 * Class#isLocal()
-	 */
-	public static boolean classNamedIsLocal(String className) {
-		if (classNamedIsArray(className)) {
-			return false;
-		}
-		int dollar = className.indexOf(NESTED_CLASS_NAME_SEPARATOR);
-		if (dollar == -1) {
-			return false;
-		}
-		if ( ! Character.isDigit(className.charAt(dollar + 1))) {
-			return false;
-		}
-		int len = className.length();
-		for (int i = dollar + 2; i < len; i++) {
-			if (Character.isJavaIdentifierStart(className.charAt(i))) {
-				return true;
-			}
-		}
-		// all the characters past the $ are digits (anonymous)
-		return false;
-	}
-
-	/**
-	 * Return whether the specified class is an "anonymous" class,
-	 * as opposed to a "top-level", "member", or "local" class,
-	 * using the standard jdk naming conventions (i.e. the class
-	 * name ends with '$nnn' where all the characters past the
-	 * last '$' are numeric digits: "TopLevelClass$1").
-	 * Class#isAnonymous()
-	 */
-	public static boolean classNamedIsAnonymous(String className) {
-		if (classNamedIsArray(className)) {
-			return false;
-		}
-		int dollar = className.indexOf(NESTED_CLASS_NAME_SEPARATOR);
-		if (dollar == -1) {
-			return false;
-		}
-		int start = dollar + 1;
-		for (int i = className.length(); i-- > start; ) {
-			if ( ! Character.isDigit(className.charAt(i))) {
-				return false;
-			}
-		}
-		// all the characters past the $ are digits
-		return true;
-	}
-
-	/**
-	 * Return the "array depth" of the specified class.
-	 * The depth is the number of dimensions for an array type.
-	 * Non-array types have a depth of zero.
-	 * Class#getArrayDepth()
-	 */
-	public static int arrayDepthFor(Class<?> javaClass) {
-		int depth = 0;
-		while (javaClass.isArray()) {
-			depth++;
-			javaClass = javaClass.getComponentType();
-		}
-		return depth;
-	}
-	
-	/**
-	 * Return the "array depth" of the specified object.
-	 * The depth is the number of dimensions for an array.
-	 * Non-arrays have a depth of zero.
-	 */
-	public static int arrayDepthForObject(Object object) {
-		return arrayDepthFor(object.getClass());
-	}
-	
-	/**
-	 * Return the "array depth" of the specified class.
-	 * The depth is the number of dimensions for an array type.
-	 * Non-array types have a depth of zero.
-	 * @see java.lang.Class#getName()
-	 * Class#getArrayDepth()
-	 */
-	public static int arrayDepthForClassNamed(String className) {
-		int depth = 0;
-		while (className.charAt(depth) == ARRAY_INDICATOR) {
-			depth++;
-		}
-		return depth;
-	}
-
-	/**
-	 * Return whether the specified class is an array type.
-	 * @see java.lang.Class#getName()
-	 */
-	public static boolean classNamedIsArray(String className) {
-		return className.charAt(0) == ARRAY_INDICATOR;
-	}
-
-	/**
-	 * Return the "element type" of the specified class.
-	 * The element type is the base type held by an array type.
-	 * A non-array type simply returns itself.
-	 * Class#getElementType()
-	 */
-	public static Class<?> elementTypeFor(Class<?> javaClass) {
-		while (javaClass.isArray()) {
-			javaClass = javaClass.getComponentType();
-		}
-		return javaClass;
-	}
-
-	/**
-	 * Return the "element type" of the specified object.
-	 * The element type is the base type held by an array.
-	 * A non-array simply returns its class.
-	 */
-	public static Class<?> elementTypeForObject(Object object) {
-		return elementTypeFor(object.getClass());
-	}
-
-	/**
-	 * Return the "element type" of the specified class.
-	 * The element type is the base type held by an array type.
-	 * Non-array types simply return themselves.
-	 * Class#getElementType()
-	 */
-	public static String elementTypeNameFor(Class<?> javaClass) {
-		return elementTypeFor(javaClass).getName();
-	}
-
-	/**
-	 * Return the "element type" of the specified class.
-	 * The element type is the base type held by an array type.
-	 * Non-array types simply return themselves.
-	 * @see java.lang.Class#getName()
-	 * Class#getElementType()
-	 */
-	public static String elementTypeNameForClassNamed(String className) {
-		int depth = arrayDepthForClassNamed(className);
-		if (depth == 0) {
-			// the name is in the form: "java.lang.Object" or "int"
-			return className;
-		}
-		int last = className.length() - 1;
-		if (className.charAt(depth) == REFERENCE_CLASS_CODE) {
-			// the name is in the form: "[[[Ljava.lang.Object;"
-			return className.substring(depth + 1, last);	// drop the trailing ';'
-		}
-		// the name is in the form: "[[[I"
-		return classNameForCode(className.charAt(last));
-	}
-	
-	/**
-	 * Return whether the specified class is a "reference"
-	 * class (i.e. neither 'void' nor one of the primitive variable classes,
-	 * ['boolean', 'int', 'float', etc.]).
-	 * NB: void.class.isPrimitive() == true
-	 */
-	public static boolean classNamedIsReference(String className) {
-		return ! classNamedIsPrimitive(className);
-	}
-
-	/**
-	 * Return whether the specified class is a primitive
-	 * class (i.e. 'void' or one of the primitive variable classes,
-	 * ['boolean', 'int', 'float', etc.]).
-	 * NB: void.class.isPrimitive() == true
-	 */
-	public static boolean classNamedIsPrimitive(String className) {
-		if (classNamedIsArray(className) || (className.length() > maxPrimitiveClassNameLength())) {
-			return false;  // performance tweak
-		}
-		Primitive[] codes = primitives();
-		for (int i = codes.length; i-- > 0; ) {
-			if (codes[i].javaClass.getName().equals(className)) {
-				return true;
-			}
-		}
-		return false;
-	}
-
-	/**
-	 * Return whether the specified class is a "variable" primitive
-	 * class (i.e. 'boolean', 'int', 'float', etc., but not 'void').
-	 * NB: void.class.isPrimitive() == true
-	 */
-	public static boolean classNamedIsVariablePrimitive(String className) {
-		return classNamedIsPrimitive(className)
-			&& ( ! className.equals(VOID_CLASS_NAME));
-	}
-
-	/**
-	 * Return whether the specified class is a primitive wrapper
-	 * class (i.e. 'java.lang.Void' or one of the primitive variable wrapper classes,
-	 * ['java.lang.Boolean', 'java.lang.Integer', 'java.lang.Float', etc.]).
-	 * NB: void.class.isPrimitive() == true
-	 */
-	public static boolean classNamedIsPrimitiveWrapperClass(String className) {
-		if (classNamedIsArray(className) || (className.length() > maxPrimitiveWrapperClassNameLength())) {
-			return false;  // performance tweak
-		}
-		Primitive[] codes = primitives();
-		for (int i = codes.length; i-- > 0; ) {
-			if (codes[i].wrapperClass.getName().equals(className)) {
-				return true;
-			}
-		}
-		return false;
-	}
-
-	/**
-	 * Return whether the specified class is a "variable" primitive
-	 * class (i.e. 'boolean', 'int', 'float', etc., but not 'void').
-	 * NB: void.class.isPrimitive() == true
-	 */
-	public static boolean classNamedIsVariablePrimitiveWrapperClass(String className) {
-		return classNamedIsPrimitiveWrapperClass(className)
-			&& ( ! className.equals(VOID_WRAPPER_CLASS_NAME));
-	}
-
-	/**
-	 * Return whether the specified class is a primitive wrapper
-	 * class (i.e. 'java.lang.Void' or one of the primitive variable wrapper classes,
-	 * ['java.lang.Boolean', 'java.lang.Integer', 'java.lang.Float', etc.]).
-	 * NB: void.class.isPrimitive() == true
-	 */
-	public static boolean classIsPrimitiveWrapperClass(Class<?> javaClass) {
-		if (javaClass.isArray() || (javaClass.getName().length() > maxPrimitiveWrapperClassNameLength())) {
-			return false;  // performance tweak
-		}
-		Primitive[] codes = primitives();
-		for (int i = codes.length; i-- > 0; ) {
-			if (codes[i].wrapperClass == javaClass) {
-				return true;
-			}
-		}
-		return false;
-	}
-
-	/**
-	 * Return whether the specified class is a "variable" primitive
-	 * class (i.e. 'boolean', 'int', 'float', etc., but not 'void').
-	 * NB: void.class.isPrimitive() == true
-	 */
-	public static boolean classIsVariablePrimitiveWrapperClass(Class<?> javaClass) {
-		return classIsPrimitiveWrapperClass(javaClass)
-			&& (javaClass != java.lang.Void.class);
-	}
-
-	/**
-	 * Return the class name for the specified class code.
-	 * @see java.lang.Class#getName()
-	 */
-	public static String classNameForCode(char classCode) {
-		return classForCode(classCode).getName();
-	}
-	
-	/**
-	 * Return the class name for the specified class code.
-	 * @see java.lang.Class#getName()
-	 */
-	public static String classNameForCode(int classCode) {
-		return classNameForCode((char) classCode);
-	}
-	
-	/**
-	 * Return the class for the specified class code.
-	 * @see java.lang.Class#getName()
-	 */
-	public static Class<?> classForCode(char classCode) {
-		Primitive[] codes = primitives();
-		for (int i = codes.length; i-- > 0; ) {
-			if (codes[i].code == classCode) {
-				return codes[i].javaClass;
-			}
-		}
-		throw new IllegalArgumentException(String.valueOf(classCode));
-	}
-
-	/**
-	 * Return the class for the specified class code.
-	 * @see java.lang.Class#getName()
-	 */
-	public static Class<?> classForCode(int classCode) {
-		return classForCode((char) classCode);
-	}
-	
-	/**
-	 * Return the class code for the specified class.
-	 * @see java.lang.Class#getName()
-	 */
-	public static char codeForClass(Class<?> javaClass) {
-		if (( ! javaClass.isArray()) && (javaClass.getName().length() <= maxPrimitiveClassNameLength())) {
-			Primitive[] codes = primitives();
-			for (int i = codes.length; i-- > 0; ) {
-				if (codes[i].javaClass == javaClass) {
-					return codes[i].code;
-				}
-			}
-		}
-		throw new IllegalArgumentException(javaClass.getName());		
-	}
-	
-	/**
-	 * Return the class code for the specified class.
-	 * @see java.lang.Class#getName()
-	 */
-	public static char codeForClassNamed(String className) {
-		if (( ! classNamedIsArray(className)) && (className.length() <= maxPrimitiveClassNameLength())) {
-			Primitive[] codes = primitives();
-			for (int i = codes.length; i-- > 0; ) {
-				if (codes[i].javaClass.getName().equals(className)) {
-					return codes[i].code;
-				}
-			}
-		}
-		throw new IllegalArgumentException(className);		
-	}
-
-	/**
-	 * Return the class for the specified "type declaration".
-	 */
-	public static Class<?> classForTypeDeclaration(String typeDeclaration) throws ClassNotFoundException {
-		return classForTypeDeclaration(typeDeclaration, null);
-	}
-	
-	/**
-	 * Return the class for the specified "type declaration",
-	 * using the specified class loader.
-	 */
-	public static Class<?> classForTypeDeclaration(String typeDeclaration, ClassLoader classLoader) throws ClassNotFoundException {
-		TypeDeclaration td = typeDeclaration(typeDeclaration);
-		return classForTypeDeclaration(td.elementTypeName, td.arrayDepth, classLoader);
-	}
-
-	private static TypeDeclaration typeDeclaration(String typeDeclaration) {
-		typeDeclaration = StringTools.removeAllWhitespace(typeDeclaration);
-		int arrayDepth = arrayDepthForTypeDeclaration_(typeDeclaration);
-		String elementTypeName = elementTypeNameForTypeDeclaration_(typeDeclaration, arrayDepth);
-		return new TypeDeclaration(elementTypeName, arrayDepth);
-	}
-
-	/**
-	 * Return the class for the specified "type declaration".
-	 */
-	public static Class<?> classForTypeDeclaration(String elementTypeName, int arrayDepth) throws ClassNotFoundException {
-		return classForTypeDeclaration(elementTypeName, arrayDepth, null);
-	}
-	
-	/**
-	 * Return the class for the specified "type declaration",
-	 * using the specified class loader.
-	 */
-	// see the "Evaluation" of jdk bug 6446627 for a discussion of loading classes
-	public static Class<?> classForTypeDeclaration(String elementTypeName, int arrayDepth, ClassLoader classLoader) throws ClassNotFoundException {
-		// primitives cannot be loaded via Class#forName(),
-		// so check for a primitive class name first
-		Primitive pcc = null;
-		if (elementTypeName.length() <= maxPrimitiveClassNameLength()) {  // performance tweak
-			Primitive[] codes = primitives();
-			for (int i = codes.length; i-- > 0; ) {
-				if (codes[i].javaClass.getName().equals(elementTypeName)) {
-					pcc = codes[i];
-					break;
-				}
-			}
-		}
-
-		// non-array
-		if (arrayDepth == 0) {
-			return (pcc == null) ? Class.forName(elementTypeName, false, classLoader) : pcc.javaClass;
-		}
-
-		// array
-		StringBuilder sb = new StringBuilder(100);
-		for (int i = arrayDepth; i-- > 0; ) {
-			sb.append(ARRAY_INDICATOR);
-		}
-		if (pcc == null) {
-			sb.append(REFERENCE_CLASS_CODE);
-			sb.append(elementTypeName);
-			sb.append(REFERENCE_CLASS_NAME_DELIMITER);
-		} else {
-			sb.append(pcc.code);
-		}
-		return Class.forName(sb.toString(), false, classLoader);
-	}
-	
-	/**
-	 * Return the class name for the specified "type declaration"; e.g.
-	 *     "int[]" -> "[I"
-	 * @see java.lang.Class#getName()
-	 */
-	public static String classNameForTypeDeclaration(String typeDeclaration) {
-		TypeDeclaration td = typeDeclaration(typeDeclaration);
-		return classNameForTypeDeclaration(td.elementTypeName, td.arrayDepth);
-	}
-
-	/**
-	 * Return the array depth for the specified "type declaration"; e.g.
-	 *     "int[]" -> 1
-	 *     "java.lang.String[][][]" -> 3
-	 */
-	public static int arrayDepthForTypeDeclaration(String typeDeclaration) {
-		return arrayDepthForTypeDeclaration_(StringTools.removeAllWhitespace(typeDeclaration));
-	}
-
-	/*
-	 * Assume no whitespace in the type declaration.
-	 */
-	private static int arrayDepthForTypeDeclaration_(String typeDeclaration) {
-		int last = typeDeclaration.length() - 1;
-		int depth = 0;
-		int close = last;
-		while (typeDeclaration.charAt(close) == TYPE_DECLARATION_ARRAY_CLOSE) {
-			if (typeDeclaration.charAt(close - 1) == TYPE_DECLARATION_ARRAY_OPEN) {
-				depth++;
-			} else {
-				throw new IllegalArgumentException("invalid type declaration: " + typeDeclaration); //$NON-NLS-1$
-			}
-			close = last - (depth * 2);
-		}
-		return depth;
-	}
-	
-	/**
-	 * Return the element type name for the specified "type declaration"; e.g.
-	 *     "int[]" -> "int"
-	 *     "java.lang.String[][][]" -> "java.lang.String"
-	 */
-	public static String elementTypeNameForTypeDeclaration(String typeDeclaration) {
-		typeDeclaration = StringTools.removeAllWhitespace(typeDeclaration);
-		return elementTypeNameForTypeDeclaration_(typeDeclaration, arrayDepthForTypeDeclaration_(typeDeclaration));
-	}
-
-	/**
-	 * Return the element type name for the specified "type declaration"; e.g.
-	 *     "int[]" -> "int"
-	 *     "java.lang.String[][][]" -> "java.lang.String"
-	 */
-	public static String elementTypeNameForTypeDeclaration(String typeDeclaration, int arrayDepth) {
-		return elementTypeNameForTypeDeclaration_(StringTools.removeAllWhitespace(typeDeclaration), arrayDepth);
-	}
-
-	/*
-	 * Assume no whitespace in the type declaration.
-	 */
-	public static String elementTypeNameForTypeDeclaration_(String typeDeclaration, int arrayDepth) {
-		return typeDeclaration.substring(0, typeDeclaration.length() - (arrayDepth * 2));
-	}
-
-	/**
-	 * Return the class name for the specified "type declaration".
-	 * @see java.lang.Class#getName()
-	 */
-	public static String classNameForTypeDeclaration(String elementTypeName, int arrayDepth) {
-		// non-array
-		if (arrayDepth == 0) {
-			return elementTypeName;
-		}
-
-		if (elementTypeName.equals(VOID_CLASS_NAME)) {
-			throw new IllegalArgumentException('\'' + VOID_CLASS_NAME + "' must have an array depth of zero: " + arrayDepth + '.'); //$NON-NLS-1$
-		}
-		// array
-		StringBuilder sb = new StringBuilder(100);
-		for (int i = arrayDepth; i-- > 0; ) {
-			sb.append(ARRAY_INDICATOR);
-		}
-
-		// look for a primitive first
-		Primitive pcc = null;
-		if (elementTypeName.length() <= maxPrimitiveClassNameLength()) {  // performance tweak
-			Primitive[] codes = primitives();
-			for (int i = codes.length; i-- > 0; ) {
-				if (codes[i].javaClass.getName().equals(elementTypeName)) {
-					pcc = codes[i];
-					break;
-				}
-			}
-		}
-
-		if (pcc == null) {
-			sb.append(REFERENCE_CLASS_CODE);
-			sb.append(elementTypeName);
-			sb.append(REFERENCE_CLASS_NAME_DELIMITER);
-		} else {
-			sb.append(pcc.code);
-		}
-
-		return sb.toString();
-	}
-
-
-	// ********** primitive constants **********
-
-	private synchronized static int maxPrimitiveClassNameLength() {
-		if (MAX_PRIMITIVE_CLASS_NAME_LENGTH == -1) {
-			MAX_PRIMITIVE_CLASS_NAME_LENGTH = calculateMaxPrimitiveClassNameLength();
-		}
-		return MAX_PRIMITIVE_CLASS_NAME_LENGTH;
-	}
-
-	private static int calculateMaxPrimitiveClassNameLength() {
-		int max = -1;
-		Primitive[] codes = primitives();
-		for (int i = codes.length; i-- > 0; ) {
-			int len = codes[i].javaClass.getName().length();
-			if (len > max) {
-				max = len;
-			}
-		}
-		return max;
-	}
-
-	private synchronized static int maxPrimitiveWrapperClassNameLength() {
-		if (MAX_PRIMITIVE_WRAPPER_CLASS_NAME_LENGTH == -1) {
-			MAX_PRIMITIVE_WRAPPER_CLASS_NAME_LENGTH = calculateMaxPrimitiveWrapperClassNameLength();
-		}
-		return MAX_PRIMITIVE_WRAPPER_CLASS_NAME_LENGTH;
-	}
-
-	private static int calculateMaxPrimitiveWrapperClassNameLength() {
-		int max = -1;
-		Primitive[] codes = primitives();
-		for (int i = codes.length; i-- > 0; ) {
-			int len = codes[i].wrapperClass.getName().length();
-			if (len > max) {
-				max = len;
-			}
-		}
-		return max;
-	}
-
-	private synchronized static Primitive[] primitives() {
-		if (PRIMITIVES == null) {
-			PRIMITIVES = buildPrimitives();
-		}
-		return PRIMITIVES;
-	}
-	
-	/**
-	 * NB: void.class.isPrimitive() == true
-	 */
-	private static Primitive[] buildPrimitives() {
-		Primitive[] result = new Primitive[9];
-		result[0] = new Primitive(BYTE_CODE, java.lang.Byte.class);
-		result[1] = new Primitive(CHAR_CODE, java.lang.Character.class);
-		result[2] = new Primitive(DOUBLE_CODE, java.lang.Double.class);
-		result[3] = new Primitive(FLOAT_CODE, java.lang.Float.class);
-		result[4] = new Primitive(INT_CODE, java.lang.Integer.class);
-		result[5] = new Primitive(LONG_CODE, java.lang.Long.class);
-		result[6] = new Primitive(SHORT_CODE, java.lang.Short.class);
-		result[7] = new Primitive(BOOLEAN_CODE, java.lang.Boolean.class);
-		result[8] = new Primitive(VOID_CODE, java.lang.Void.class);
-		return result;
-	}
-
-
-	// ********** member classes **********
-
-	private static class Primitive {
-		final char code;
-		final Class<?> javaClass;
-		final Class<?> wrapperClass;
-		private static final String WRAPPER_CLASS_TYPE_FIELD_NAME = "TYPE"; //$NON-NLS-1$
-		// e.g. java.lang.Boolean.TYPE => boolean.class
-		Primitive(char code, Class<?> wrapperClass) {
-			this.code = code;
-			this.wrapperClass = wrapperClass;
-			this.javaClass = (Class<?>) staticFieldValue(wrapperClass, WRAPPER_CLASS_TYPE_FIELD_NAME);
-		}
-	}
-
-	private static class TypeDeclaration {
-		final String elementTypeName;
-		final int arrayDepth;
-		TypeDeclaration(String elementTypeName, int arrayDepth) {
-			this.elementTypeName = elementTypeName;
-			this.arrayDepth = arrayDepth;
-		}
-	}
-
-
-	// ********** suppressed constructor **********
-
-	/**
-	 * Suppress default constructor, ensuring non-instantiability.
-	 */
-	private ClassTools() {
-		super();
-		throw new UnsupportedOperationException();
-	}
-
-}
diff --git a/jpa/plugins/org.eclipse.jpt.utility/src/org/eclipse/jpt/utility/internal/Classpath.java b/jpa/plugins/org.eclipse.jpt.utility/src/org/eclipse/jpt/utility/internal/Classpath.java
deleted file mode 100644
index 3f7db2d..0000000
--- a/jpa/plugins/org.eclipse.jpt.utility/src/org/eclipse/jpt/utility/internal/Classpath.java
+++ /dev/null
@@ -1,911 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005, 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.utility.internal;
-
-import java.io.File;
-import java.io.FileFilter;
-import java.io.IOException;
-import java.io.Serializable;
-import java.net.URISyntaxException;
-import java.net.URL;
-import java.util.ArrayList;
-import java.util.Collection;
-import java.util.Enumeration;
-import java.util.HashSet;
-import java.util.Iterator;
-import java.util.List;
-import java.util.zip.ZipEntry;
-import java.util.zip.ZipFile;
-import org.eclipse.jpt.utility.Filter;
-import org.eclipse.jpt.utility.internal.iterators.ArrayIterator;
-import org.eclipse.jpt.utility.internal.iterators.CompositeIterator;
-import org.eclipse.jpt.utility.internal.iterators.EmptyIterator;
-import org.eclipse.jpt.utility.internal.iterators.FilteringIterator;
-import org.eclipse.jpt.utility.internal.iterators.TransformationIterator;
-
-/**
- * TODO
- */
-public class Classpath
-	implements Serializable
-{
-	/** The entries in the classpath */
-	private final Entry[] entries;
-
-	private static final long serialVersionUID = 1L;
-
-
-	// ********** static methods **********
-
-	// ***** factory methods for "standard" classpaths *****
-
-	/**
-	 * Return the Java "boot" classpath. This includes rt.jar.
-	 */
-	public static Classpath bootClasspath() {
-		return new Classpath(System.getProperty("sun.boot.class.path")); //$NON-NLS-1$
-	}
-	
-	/**
-	 * Return a "virtual classpath" that contains all the jars
-	 * that would be used by the Java Extension Mechanism.
-	 */
-	public static Classpath javaExtensionClasspath() {
-		File[] dirs = javaExtensionDirectories();
-		List<String> jarFileNames = new ArrayList<String>();
-		for (File dir : dirs) {
-			if (dir.isDirectory()) {
-				addJarFileNamesTo(dir, jarFileNames);
-			}
-		}
-		return new Classpath(jarFileNames);
-	}
-
-	/**
-	 * Return the Java "system" classpath.
-	 */
-	public static Classpath javaClasspath() {
-		return new Classpath(System.getProperty("java.class.path")); //$NON-NLS-1$
-	}
-
-	/**
-	 * Return the unretouched "complete" classpath.
-	 * This includes the boot classpath, the Java Extension
-	 * Mechanism classpath, and the normal "system" classpath.
-	 */
-	public static Classpath completeClasspath() {
-		return new Classpath(new Classpath[] {
-				bootClasspath(),
-				javaExtensionClasspath(),
-				javaClasspath()
-		});
-	}
-
-	/**
-	 * Return a classpath that contains the location of the specified class.
-	 */
-	public static Classpath classpathFor(Class<?> javaClass) {
-		return new Classpath(locationFor(javaClass));
-	}
-
-
-	// ***** file => class *****
-
-	/**
-	 * Convert a relative file name to a class name; this will work for
-	 * any file that has a single extension beyond the base
-	 * class name.
-	 * e.g. "java/lang/String.class" is converted to "java.lang.String"
-	 * e.g. "java/lang/String.java" is converted to "java.lang.String"
-	 */
-	public static String convertToClassName(String classFileName) {
-		String className = FileTools.stripExtension(classFileName);
-		// do this for archive entry names
-		className = className.replace('/', '.');
-		// do this for O/S-specific file names
-		if (File.separatorChar != '/') {
-			className = className.replace(File.separatorChar, '.');
-		}
-		return className;
-	}
-
-	/**
-	 * Convert a file to a class name;
-	 * e.g. File(java/lang/String.class) is converted to "java.lang.String"
-	 */
-	public static String convertToClassName(File classFile) {
-		return convertToClassName(classFile.getPath());
-	}
-
-	/**
-	 * Convert a relative file name to a class;
-	 * e.g. "java/lang/String.class" is converted to java.lang.String.class
-	 */
-	public static Class<?> convertToClass(String classFileName) throws ClassNotFoundException {
-		return Class.forName(convertToClassName(classFileName));
-	}
-
-	/**
-	 * Convert a relative file to a class;
-	 * e.g. File(java/lang/String.class) is converted to java.lang.String.class
-	 */
-	public static Class<?> convertToClass(File classFile) throws ClassNotFoundException {
-		return convertToClass(classFile.getPath());
-	}
-
-
-	// ***** class => JAR entry *****
-
-	/**
-	 * Convert a class name to an archive entry name base;
-	 * e.g. "java.lang.String" is converted to "java/lang/String"
-	 */
-	public static String convertToArchiveEntryNameBase(String className) {
-		return className.replace('.', '/');
-	}
-	
-	/**
-	 * Convert a class to an archive entry name base;
-	 * e.g. java.lang.String.class is converted to "java/lang/String"
-	 */
-	public static String convertToArchiveEntryNameBase(Class<?> javaClass) {
-		return convertToArchiveEntryNameBase(javaClass.getName());
-	}
-	
-	/**
-	 * Convert a class name to an archive class file entry name;
-	 * e.g. "java.lang.String" is converted to "java/lang/String.class"
-	 */
-	public static String convertToArchiveClassFileEntryName(String className) {
-		return convertToArchiveEntryNameBase(className) + ".class"; //$NON-NLS-1$
-	}
-	
-	/**
-	 * Convert a class to an archive class file entry name;
-	 * e.g. java.lang.String.class is converted to "java/lang/String.class"
-	 */
-	public static String convertToArchiveClassFileEntryName(Class<?> javaClass) {
-		return convertToArchiveClassFileEntryName(javaClass.getName());
-	}
-	
-
-	// ***** class => file (.class or .java) *****
-
-	/**
-	 * Convert a class name to a file name base for the current O/S;
-	 * e.g. "java.lang.String" is converted to "java/lang/String" on Unix
-	 * and "java\\lang\\String" on Windows
-	 */
-	public static String convertToFileNameBase(String className) {
-		return className.replace('.', File.separatorChar);
-	}
-	
-	/**
-	 * Convert a class to a file name base for the current O/S;
-	 * e.g. java.lang.String.class is converted to "java/lang/String" on Unix
-	 * and "java\\lang\\String" on Windows
-	 */
-	public static String convertToFileNameBase(Class<?> javaClass) {
-		return convertToFileNameBase(javaClass.getName());
-	}
-	
-	/**
-	 * Convert a class name to a class file name for the current O/S;
-	 * e.g. "java.lang.String" is converted to "java/lang/String.class" on Unix
-	 * and "java\\lang\\String.class" on Windows
-	 */
-	public static String convertToClassFileName(String className) {
-		return convertToFileNameBase(className) + ".class"; //$NON-NLS-1$
-	}
-	
-	/**
-	 * Convert a class to a class file name for the current O/S;
-	 * e.g. java.lang.String.class is converted to "java/lang/String.class" on Unix
-	 * and "java\\lang\\String.class" on Windows
-	 */
-	public static String convertToClassFileName(Class<?> javaClass) {
-		return convertToClassFileName(javaClass.getName());
-	}
-	
-	/**
-	 * Convert a class name to a class file for the current O/S;
-	 * e.g. "java.lang.String" is converted to File(java/lang/String.class)
-	 */
-	public static File convertToClassFile(String className) {
-		return new File(convertToClassFileName(className));
-	}
-	
-	/**
-	 * Convert a class to a class file for the current O/S;
-	 * e.g. java.lang.String.class is converted to File(java/lang/String.class)
-	 */
-	public static File convertToClassFile(Class<?> javaClass) {
-		return convertToClassFile(javaClass.getName());
-	}
-	
-	/**
-	 * Convert a class name to a java file name for the current O/S;
-	 * e.g. "java.lang.String" is converted to "java/lang/String.java" on Unix
-	 * and "java\\lang\\String.java" on Windows
-	 */
-	public static String convertToJavaFileName(String className) {
-		return convertToFileNameBase(className) + ".java"; //$NON-NLS-1$
-	}
-
-	/**
-	 * Convert a class to a java file name for the current O/S;
-	 * e.g. java.lang.String.class is converted to "java/lang/String.java" on Unix
-	 * and "java\\lang\\String.java" on Windows
-	 */
-	public static String convertToJavaFileName(Class<?> javaClass) {
-		return convertToJavaFileName(javaClass.getName());
-	}
-
-	/**
-	 * Convert a class name to a java file for the current O/S;
-	 * e.g. "java.lang.String" is converted to File(java/lang/String.java)
-	 */
-	public static File convertToJavaFile(String className) {
-		return new File(convertToJavaFileName(className));
-	}
-
-	/**
-	 * Convert a class to a java file for the current O/S;
-	 * e.g. java.lang.String.class is converted to File(java/lang/String.java)
-	 */
-	public static File convertToJavaFile(Class<?> javaClass) {
-		return convertToJavaFile(javaClass.getName());
-	}
-
-
-	// ***** class => resource *****
-
-	/**
-	 * Convert a class to a resource name;
-	 * e.g. java.lang.String.class is converted to "/java/lang/String.class".
-	 */
-	public static String convertToResourceName(Class<?> javaClass) {
-		return '/' + convertToArchiveClassFileEntryName(javaClass);
-	}
-
-	/**
-	 * Convert a class to a resource;
-	 * e.g. java.lang.String.class is converted to
-	 * URL(jar:file:/C:/jdk/1.4.2_04/jre/lib/rt.jar!/java/lang/String.class).
-	 */
-	public static URL convertToResource(Class<?> javaClass) {
-		return javaClass.getResource(convertToResourceName(javaClass));
-	}
-
-
-	// ***** utilities *****
-
-	/**
-	 * Return whether the specified file is an archive file;
-	 * i.e. its name ends with ".zip" or ".jar"
-	 */
-	public static boolean fileNameIsArchive(String fileName) {
-		String ext = FileTools.extension(fileName).toLowerCase();
-		return ext.equals(".jar") || ext.equals(".zip"); //$NON-NLS-1$ //$NON-NLS-2$
-	}
-	
-	/**
-	 * Return whether the specified file is an archive file;
-	 * i.e. its name ends with ".zip" or ".jar"
-	 */
-	public static boolean fileIsArchive(File file) {
-		return fileNameIsArchive(file.getName());
-	}
-	
-	/**
-	 * Return what should be the fully-qualified file name
-	 * for the JRE runtime JAR;
-	 * e.g. "C:\jdk1.4.2_04\jre\lib\rt.jar".
-	 */
-	public static String rtJarName() {
-		return locationFor(java.lang.Object.class);
-	}
-	
-	/**
-	 * Return the location from where the specified class was loaded.
-	 */
-	public static String locationFor(Class<?> javaClass) {
-		URL url = convertToResource(javaClass);
-		String path;
-		try {
-			path = FileTools.buildFile(url).getPath();
-		} catch (URISyntaxException ex) {
-			throw new RuntimeException(ex);
-		}
-		String protocol = url.getProtocol().toLowerCase();
-		if (protocol.equals("jar")) { //$NON-NLS-1$
-			// if the class is in a JAR, the URL will look something like this:
-			//     jar:file:/C:/jdk/1.4.2_04/jre/lib/rt.jar!/java/lang/String.class
-			return path.substring(0, path.indexOf('!'));
-		} else if (protocol.equals("file")) { //$NON-NLS-1$
-			// if the class is in a directory, the URL will look something like this:
-			//     file:/C:/dev/main/mwdev/class/org/eclipse/dali/utility/Classpath.class
-			return path.substring(0, path.length() - convertToClassFileName(javaClass).length() - 1);
-		} else if (protocol.equals("bundleresource")) { //$NON-NLS-1$
-			// if the class is in a bundle resource (Eclipse?), the URL will look something like this:
-			//     bundleresource://43/org/eclipse/dali/utility/Classpath.class
-			return path.substring(0, path.length() - convertToClassFileName(javaClass).length() - 1);
-		}
-
-		throw new IllegalStateException(url.toString());
-	}
-	
-	/**
-	 * Return the directories used by the Java Extension Mechanism.
-	 */
-	public static File[] javaExtensionDirectories() {
-		return convertToFiles(javaExtensionDirectoryNames());
-	}
-
-	/**
-	 * Return the directory names used by the Java Extension Mechanism.
-	 */
-	public static String[] javaExtensionDirectoryNames() {
-		return System.getProperty("java.ext.dirs").split(File.pathSeparator); //$NON-NLS-1$
-	}
-
-
-	// ***** internal *****
-
-	private static File[] convertToFiles(String[] fileNames) {
-		File[] files = new File[fileNames.length];
-		for (int i = fileNames.length; i-- > 0; ) {
-			files[i] = new File(fileNames[i]);
-		}
-		return files;
-	}
-
-	private static void addJarFileNamesTo(File dir, List<String> jarFileNames) {
-		File[] jarFiles = jarFilesIn(dir);
-		for (File jarFile : jarFiles) {
-			jarFileNames.add(FileTools.canonicalFile(jarFile).getPath());
-		}
-	}
-
-	private static File[] jarFilesIn(File directory) {
-		return directory.listFiles(jarFileFilter());
-	}
-
-	private static FileFilter jarFileFilter() {
-		return new FileFilter() {
-			public boolean accept(File file) {
-				return FileTools.extension(file.getName()).toLowerCase().equals(".jar"); //$NON-NLS-1$
-			}
-		};
-	}
-
-
-	// ********** constructors **********
-
-	/**
-	 * Construct a classpath with the specified entries.
-	 */
-	private Classpath(Entry[] entries) {
-		super();
-		this.entries = entries;
-	}
-
-	/**
-	 * Construct a classpath with the specified entries.
-	 */
-	public Classpath(String[] fileNames) {
-		this(buildEntries(fileNames));
-	}
-
-	/**
-	 * Skip empty file names because they will end up expanding to the current
-	 * working directory, which is not what we want. Empty file names actually
-	 * occur with some frequency; such as when the classpath has been built up
-	 * dynamically with too many separators. For example:
-	 *     "C:\dev\foo.jar;;C:\dev\bar.jar"
-	 * will be parsed into three file names:
-	 *     { "C:\dev\foo.jar", "", "C:\dev\bar.jar" }
-	 */
-	private static Entry[] buildEntries(String[] fileNames) {
-		List<Entry> entries = new ArrayList<Entry>();
-		for (String fileName : fileNames) {
-			if ((fileName != null) && (fileName.length() != 0)) {
-				entries.add(new Entry(fileName));
-			}
-		}
-		return entries.toArray(new Entry[entries.size()]);
-	}
-
-	/**
-	 * Construct a classpath with the specified path.
-	 */
-	public Classpath(String path) {
-		this(path.split(File.pathSeparator));
-	}
-
-	/**
-	 * Construct a classpath with the specified entries.
-	 */
-	public Classpath(List<String> fileNames) {
-		this(fileNames.toArray(new String[fileNames.size()]));
-	}
-
-	/**
-	 * Consolidate the specified classpaths into a single classpath.
-	 */
-	public Classpath(Classpath[] classpaths) {
-		this(consolidateEntries(classpaths));
-	}
-
-	private static Entry[] consolidateEntries(Classpath[] classpaths) {
-		List<Entry> entries = new ArrayList<Entry>();
-		for (Classpath classpath : classpaths) {
-			CollectionTools.addAll(entries, classpath.entries());
-		}
-		return entries.toArray(new Entry[entries.size()]);
-	}
-
-
-	// ********** public API **********
-
-	/**
-	 * Return the classpath's entries.
-	 */
-	public Entry[] entries() {
-		return this.entries;
-	}
-
-	/**
-	 * Return the classpath's path.
-	 */
-	public String path() {
-		Entry[] localEntries = this.entries;
-		int max = localEntries.length - 1;
-		if (max == -1) {
-			return ""; //$NON-NLS-1$
-		}
-		StringBuilder sb = new StringBuilder(2000);
-		// stop one short of the end of the array
-		for (int i = 0; i < max; i++) {
-			sb.append(localEntries[i].fileName());
-			sb.append(File.pathSeparatorChar);
-		}
-		sb.append(localEntries[max].fileName());
-		return sb.toString();
-	}
-
-	/**
-	 * Search the classpath for the specified (unqualified) file
-	 * and return its entry. Return null if an entry is not found.
-	 * For example, you could use this method to find the entry
-	 * for "rt.jar" or "toplink.jar".
-	 */
-	public Entry entryForFileNamed(String shortFileName) {
-		Entry[] localEntries = this.entries;
-		for (Entry entry : localEntries) {
-			if (entry.file().getName().equals(shortFileName)) {
-				return entry;
-			}
-		}
-		return null;
-	}
-
-	/**
-	 * Return the first entry file in the classpath
-	 * that contains the specified class.
-	 * Return null if an entry is not found.
-	 */
-	public Entry entryForClassNamed(String className) {
-		String relativeClassFileName = convertToClassFileName(className);
-		String archiveEntryName = convertToArchiveClassFileEntryName(className);
-		Entry[] localEntries = this.entries;
-		for (Entry entry : localEntries) {
-			if (entry.contains(relativeClassFileName, archiveEntryName)) {
-				return entry;
-			}
-		}
-		return null;
-	}
-
-	/**
-	 * Return the names of all the classes discovered on the classpath,
-	 * with duplicates removed.
-	 */
-	public String[] classNames() {
-		return this.classNames(Filter.Null.<String>instance());
-	}
-
-	/**
-	 * Return the names of all the classes discovered on the classpath
-	 * and accepted by the specified filter, with duplicates removed.
-	 */
-	public String[] classNames(Filter<String> filter) {
-		Collection<String> classNames = new HashSet<String>(10000);
-		this.addClassNamesTo(classNames, filter);
-		return classNames.toArray(new String[classNames.size()]);
-	}
-
-	/**
-	 * Add the names of all the classes discovered on the classpath
-	 * to the specified collection.
-	 */
-	public void addClassNamesTo(Collection<String> classNames) {
-		this.addClassNamesTo(classNames, Filter.Null.<String>instance());
-	}
-
-	/**
-	 * Add the names of all the classes discovered on the classpath
-	 * and accepted by the specified filter to the specified collection.
-	 */
-	public void addClassNamesTo(Collection<String> classNames, Filter<String> filter) {
-		Entry[] localEntries = this.entries;
-		for (Entry entry : localEntries) {
-			entry.addClassNamesTo(classNames, filter);
-		}
-	}
-
-	/**
-	 * Return the names of all the classes discovered on the classpath.
-	 * Just a bit more performant than #classNames().
-	 */
-	public Iterator<String> classNamesStream() {
-		return this.classNamesStream(Filter.Null.<String>instance());
-	}
-
-	/**
-	 * Return the names of all the classes discovered on the classpath
-	 * that are accepted by the specified filter.
-	 * Just a bit more performant than #classNames(Filter).
-	 */
-	public Iterator<String> classNamesStream(Filter<String> filter) {
-		return new CompositeIterator<String>(this.entryClassNamesStreams(filter));
-	}
-
-	private Iterator<Iterator<String>> entryClassNamesStreams(final Filter<String> filter) {
-		return new TransformationIterator<Entry, Iterator<String>>(new ArrayIterator<Entry>(this.entries)) {
-			@Override
-			protected Iterator<String> transform(Entry entry) {
-				return entry.classNamesStream(filter);
-			}
-		};
-	}
-
-	/**
-	 * Return a "compressed" version of the classpath with its
-	 * duplicate entries eliminated.
-	 */
-	public Classpath compressed() {
-		return new Classpath(CollectionTools.removeDuplicateElements(this.entries));
-	}
-
-	/**
-	 * Convert the classpath to an array of URLs
-	 * (that can be used to instantiate a URLClassLoader).
-	 */
-	public URL[] urls() {
-		Entry[] localEntries = this.entries;
-		int len = localEntries.length;
-		URL[] urls = new URL[len];
-		for (int i = 0; i < len; i++) {
-			urls[i] = localEntries[i].url();
-		}
-		return urls;
-	}
-
-	@Override
-	public String toString() {
-		return StringTools.buildToStringFor(this, this.path());
-	}
-
-
-	// ********** inner class **********
-
-	/**
-	 * TODO
-	 */
-	public static class Entry implements Serializable {
-		private final String fileName;
-		private final File file;
-		private final File canonicalFile;
-
-		private static final long serialVersionUID = 1L;
-
-		Entry(String fileName) {
-			super();
-			if ((fileName == null) || (fileName.length() == 0)) {
-				throw new IllegalArgumentException("'fileName' must be non-empty"); //$NON-NLS-1$
-			}
-			this.fileName = fileName;
-			this.file = new File(fileName);
-			this.canonicalFile = FileTools.canonicalFile(this.file);
-		}
-
-		public String fileName() {
-			return this.fileName;
-		}
-
-		public File file() {
-			return this.file;
-		}
-
-		public File canonicalFile() {
-			return this.canonicalFile;
-		}
-
-		public String canonicalFileName() {
-			return this.canonicalFile.getAbsolutePath();
-		}
-
-		@Override
-		public boolean equals(Object o) {
-			if ( ! (o instanceof Entry)) {
-				return false;
-			}
-			return ((Entry) o).canonicalFile.equals(this.canonicalFile);
-		}
-
-		@Override
-		public int hashCode() {
-			return this.canonicalFile.hashCode();
-		}
-
-		/**
-		 * Return the entry's "canonical" URL.
-		 */
-		public URL url() {
-			try {
-				return this.canonicalFile.toURI().toURL();
-			} catch (IOException ex) {
-				throw new RuntimeException(ex);
-			}
-		}
-
-		/**
-		 * Return whether the entry contains the specified class.
-		 */
-		public boolean contains(Class<?> javaClass) {
-			return this.contains(javaClass.getName());
-		}
-
-		/**
-		 * Return whether the entry contains the specified class.
-		 */
-		public boolean contains(String className) {
-			return this.contains(convertToClassFileName(className), convertToArchiveClassFileEntryName(className));
-		}
-
-		/**
-		 * Return whether the entry contains either the specified relative
-		 * class file or the specified archive entry.
-		 * Not the prettiest signature, but it's internal....
-		 */
-		boolean contains(String relativeClassFileName, String archiveEntryName) {
-			if ( ! this.canonicalFile.exists()) {
-				return false;
-			}
-			if (this.canonicalFile.isDirectory() && (new File(this.canonicalFile, relativeClassFileName)).exists()) {
-				return true;
-			}
-			return (fileIsArchive(this.canonicalFile) && this.archiveContainsEntry(archiveEntryName));
-		}
-
-		/**
-		 * Return whether the entry's archive contains the specified entry.
-		 */
-		private boolean archiveContainsEntry(String zipEntryName) {
-			ZipFile zipFile = null;
-			ZipEntry zipEntry = null;
-			try {
-				zipFile = new ZipFile(this.canonicalFile);
-				zipEntry = zipFile.getEntry(zipEntryName);
-			} catch (IOException ex) {
-				// something is wrong, leave the entry null
-			} finally {
-				try {
-					if (zipFile != null) {
-						zipFile.close();
-					}
-				} catch (IOException ex) {
-					zipEntry = null;	// something is wrong, clear out the entry
-				}
-			}
-			return zipEntry != null;
-		}
-
-		/**
-		 * Return the names of all the classes discovered in the entry.
-		 */
-		public String[] classNames() {
-			return this.classNames(Filter.Null.<String>instance());
-		}
-
-		/**
-		 * Return the names of all the classes discovered in the entry
-		 * and accepted by the specified filter.
-		 */
-		public String[] classNames(Filter<String> filter) {
-			Collection<String> classNames = new ArrayList<String>(2000);
-			this.addClassNamesTo(classNames, filter);
-			return classNames.toArray(new String[classNames.size()]);
-		}
-
-		/**
-		 * Add the names of all the classes discovered in the entry
-		 * to the specified collection.
-		 */
-		public void addClassNamesTo(Collection<String> classNames) {
-			this.addClassNamesTo(classNames, Filter.Null.<String>instance());
-		}
-
-		/**
-		 * Add the names of all the classes discovered in the entry
-		 * and accepted by the specified filter to the specified collection.
-		 */
-		public void addClassNamesTo(Collection<String> classNames, Filter<String> filter) {
-			if (this.canonicalFile.exists()) {
-				if (this.canonicalFile.isDirectory()) {
-					this.addClassNamesForDirectoryTo(classNames, filter);
-				} else if (fileIsArchive(this.canonicalFile)) {
-					this.addClassNamesForArchiveTo(classNames, filter);
-				}
-			}
-		}
-
-		/**
-		 * Add the names of all the classes discovered
-		 * under the entry's directory and accepted by
-		 * the specified filter to the specified collection.
-		 */
-		private void addClassNamesForDirectoryTo(Collection<String> classNames, Filter<String> filter) {
-			int start = this.canonicalFile.getAbsolutePath().length() + 1;
-			for (Iterator<File> stream = this.classFilesForDirectory(); stream.hasNext(); ) {
-				String className = convertToClassName(stream.next().getAbsolutePath().substring(start));
-				if (filter.accept(className)) {
-					classNames.add(className);
-				}
-			}
-		}
-
-		/**
-		 * Return an iterator on all the class files discovered
-		 * under the entry's directory.
-		 */
-		private Iterator<File> classFilesForDirectory() {
-			return new FilteringIterator<File, File>(FileTools.filesInTree(this.canonicalFile)) {
-				@Override
-				protected boolean accept(File next) {
-					return Entry.this.fileNameMightBeForClassFile(next.getName());
-				}
-			};
-		}
-
-		/**
-		 * Add the names of all the classes discovered
-		 * in the entry's archive file and accepted by the
-		 * specified filter to the specified collection.
-		 */
-		private void addClassNamesForArchiveTo(Collection<String> classNames, Filter<String> filter) {
-			ZipFile zipFile = null;
-			try {
-				zipFile = new ZipFile(this.canonicalFile);
-			} catch (IOException ex) {
-				return;
-			}
-			for (Enumeration<? extends ZipEntry> stream = zipFile.entries(); stream.hasMoreElements(); ) {
-				ZipEntry zipEntry = stream.nextElement();
-				String zipEntryName = zipEntry.getName();
-				if (this.fileNameMightBeForClassFile(zipEntryName)) {
-					String className = convertToClassName(zipEntryName);
-					if (filter.accept(className)) {
-						classNames.add(className);
-					}
-				}
-			}
-			try {
-				zipFile.close();
-			} catch (IOException ex) {
-				return;
-			}
-		}
-
-		/**
-		 * Return whether the specified file might be a Java class file.
-		 * The file name must at least end with ".class" and contain no spaces.
-		 * (Neither class names nor package names may contain spaces.)
-		 * Whether it actually is a class file will need to be determined by
-		 * a class loader.
-		 */
-		boolean fileNameMightBeForClassFile(String name) {
-			return FileTools.extension(name).toLowerCase().equals(".class") //$NON-NLS-1$
-					&& (name.indexOf(' ') == -1);
-		}
-
-		/**
-		 * Return the names of all the classes discovered on the classpath.
-		 * Just a bit more performant than #classNames().
-		 */
-		public Iterator<String> classNamesStream() {
-			return this.classNamesStream(Filter.Null.<String>instance());
-		}
-
-		/**
-		 * Return the names of all the classes discovered on the classpath
-		 * that are accepted by the specified filter.
-		 * Just a bit more performant than #classNames(Filter).
-		 */
-		public Iterator<String> classNamesStream(Filter<String> filter) {
-			if (this.canonicalFile.exists()) {
-				if (this.canonicalFile.isDirectory()) {
-					return this.classNamesForDirectory(filter);
-				}
-				if (fileIsArchive(this.canonicalFile)) {
-					return this.classNamesForArchive(filter);
-				}
-			}
-			return EmptyIterator.instance();
-		}
-
-		/**
-		 * Return the names of all the classes discovered
-		 * under the entry's directory and accepted by
-		 * the specified filter.
-		 */
-		private Iterator<String> classNamesForDirectory(Filter<String> filter) {
-			return new FilteringIterator<String, String>(this.classNamesForDirectory(), filter);
-		}
-
-		/**
-		 * Transform the class files to class names.
-		 */
-		private Iterator<String> classNamesForDirectory() {
-			final int start = this.canonicalFile.getAbsolutePath().length() + 1;
-			return new TransformationIterator<File, String>(this.classFilesForDirectory()) {
-				@Override
-				protected String transform(File f) {
-					return convertToClassName(f.getAbsolutePath().substring(start));
-				}
-			};
-		}
-
-		/**
-		 * Return the names of all the classes discovered
-		 * in the entry's archive file and accepted by the
-		 * specified filter.
-		 */
-		private Iterator<String> classNamesForArchive(Filter<String> filter) {
-			// we can't simply wrap iterators here because we need to close the archive file...
-			ZipFile zipFile = null;
-			try {
-				zipFile = new ZipFile(this.canonicalFile);
-			} catch (IOException ex) {
-				return EmptyIterator.instance();
-			}
-			Collection<String> classNames = new HashSet<String>(zipFile.size());
-			for (Enumeration<? extends ZipEntry> stream = zipFile.entries(); stream.hasMoreElements(); ) {
-				ZipEntry zipEntry = stream.nextElement();
-				String zipEntryName = zipEntry.getName();
-				if (this.fileNameMightBeForClassFile(zipEntryName)) {
-					String className = convertToClassName(zipEntryName);
-					if (filter.accept(className)) {
-						classNames.add(className);
-					}
-				}
-			}
-			try {
-				zipFile.close();
-			} catch (IOException ex) {
-				return EmptyIterator.instance();
-			}
-			return classNames.iterator();
-		}
-
-	}
-
-}
diff --git a/jpa/plugins/org.eclipse.jpt.utility/src/org/eclipse/jpt/utility/internal/CollectionTools.java b/jpa/plugins/org.eclipse.jpt.utility/src/org/eclipse/jpt/utility/internal/CollectionTools.java
deleted file mode 100644
index 3478024..0000000
--- a/jpa/plugins/org.eclipse.jpt.utility/src/org/eclipse/jpt/utility/internal/CollectionTools.java
+++ /dev/null
@@ -1,4008 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005, 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.utility.internal;
-
-import java.lang.reflect.Array;
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.Collection;
-import java.util.Collections;
-import java.util.Comparator;
-import java.util.Enumeration;
-import java.util.HashSet;
-import java.util.Iterator;
-import java.util.LinkedHashSet;
-import java.util.List;
-import java.util.ListIterator;
-import java.util.Random;
-import java.util.RandomAccess;
-import java.util.TreeSet;
-import java.util.Vector;
-import org.eclipse.jpt.utility.internal.iterators.ArrayIterator;
-import org.eclipse.jpt.utility.internal.iterators.GenericIteratorWrapper;
-import org.eclipse.jpt.utility.internal.iterators.SingleElementIterator;
-import org.eclipse.jpt.utility.internal.iterators.SingleElementListIterator;
-
-public final class CollectionTools {
-
-	@SuppressWarnings("unchecked")
-	private static <E> E[] newArray(E[] array, int length) {
-		return (E[]) Array.newInstance(array.getClass().getComponentType(), length);
-	}
-
-	/**
-	 * Return a new array that contains the elements in the
-	 * specified array followed by the specified object to be added.
-	 * java.util.Arrays#add(Object[] array, Object o)
-	 */
-	public static <E> E[] add(E[] array, E value) {
-		int len = array.length;
-		E[] result = newArray(array, len + 1);
-		if (len > 0) {
-			System.arraycopy(array, 0, result, 0, len);
-		}
-		result[len] = value;
-		return result;
-	}
-
-	/**
-	 * Return a new array that contains the elements in the
-	 * specified array with the specified object added at the specified index.
-	 * java.util.Arrays#add(Object[] array, int index, Object o)
-	 */
-	public static <E> E[] add(E[] array, int index, E value) {
-		int len = array.length;
-		E[] result = newArray(array, len + 1);
-		if (index > 0) {
-			System.arraycopy(array, 0, result, 0, index);
-		}
-		result[index] = value;
-		if (len > index) {
-			System.arraycopy(array, index, result, index + 1, len - index);
-		}
-		return result;
-	}
-
-	/**
-	 * Return a new array that contains the elements in the
-	 * specified array followed by the specified value to be added.
-	 * java.util.Arrays#add(char[] array, char value)
-	 */
-	public static char[] add(char[] array, char value) {
-		int len = array.length;
-		char[] result = new char[len + 1];
-		if (len > 0) {
-			System.arraycopy(array, 0, result, 0, len);
-		}
-		result[len] = value;
-		return result;
-	}
-
-	/**
-	 * Return a new array that contains the elements in the
-	 * specified array with the specified value added at the specified index.
-	 * java.util.Arrays#add(char[] array, int index, char value)
-	 */
-	public static char[] add(char[] array, int index, char value) {
-		int len = array.length;
-		char[] result = new char[len + 1];
-		if (index > 0) {
-			System.arraycopy(array, 0, result, 0, index);
-		}
-		result[index] = value;
-		if (len > index) {
-			System.arraycopy(array, index, result, index + 1, len - index);
-		}
-		return result;
-	}
-
-	/**
-	 * Return a new array that contains the elements in the
-	 * specified array followed by the specified value to be added.
-	 * java.util.Arrays#add(int[] array, int value)
-	 */
-	public static int[] add(int[] array, int value) {
-		int len = array.length;
-		int[] result = new int[len + 1];
-		if (len > 0) {
-			System.arraycopy(array, 0, result, 0, len);
-		}
-		result[len] = value;
-		return result;
-	}
-
-	/**
-	 * Return a new array that contains the elements in the
-	 * specified array with the specified value added at the specified index.
-	 * java.util.Arrays#add(int[] array, int index, int value)
-	 */
-	public static int[] add(int[] array, int index, int value) {
-		int len = array.length;
-		int[] result = new int[len + 1];
-		if (index > 0) {
-			System.arraycopy(array, 0, result, 0, index);
-		}
-		result[index] = value;
-		if (len > index) {
-			System.arraycopy(array, index, result, index + 1, len - index);
-		}
-		return result;
-	}
-
-	/**
-	 * Add all the elements returned by the specified iterable
-	 * to the specified collection.
-	 * Return whether the collection changed as a result.
-	 * java.util.Collection#addAll(java.lang.Iterable iterable)
-	 */
-	public static <E> boolean addAll(Collection<? super E> collection, Iterable<? extends E> iterable) {
-		return addAll(collection, iterable.iterator());
-	}
-
-	/**
-	 * Add all the elements returned by the specified iterable
-	 * to the specified collection.
-	 * Return whether the collection changed as a result.
-	 * java.util.Collection#addAll(java.lang.Iterable iterable)
-	 */
-	public static <E> boolean addAll(Collection<? super E> collection, Iterable<? extends E> iterable, int size) {
-		return addAll(collection, iterable.iterator(), size);
-	}
-
-	/**
-	 * Add all the elements returned by the specified iterator
-	 * to the specified collection.
-	 * Return whether the collection changed as a result.
-	 * java.util.Collection#addAll(java.util.Iterator iterator)
-	 */
-	public static <E> boolean addAll(Collection<? super E> collection, Iterator<? extends E> iterator) {
-		return (iterator.hasNext()) ? collection.addAll(list(iterator)) : false;
-	}
-
-	/**
-	 * Add all the elements returned by the specified iterator
-	 * to the specified collection.
-	 * Return whether the collection changed as a result.
-	 * java.util.Collection#addAll(java.util.Iterator iterator)
-	 */
-	public static <E> boolean addAll(Collection<? super E> collection, Iterator<? extends E> iterator, int size) {
-		return (iterator.hasNext()) ? collection.addAll(list(iterator, size)) : false;
-	}
-
-	/**
-	 * Add all the elements in the specified array
-	 * to the specified collection.
-	 * Return whether the collection changed as a result.
-	 * java.util.Collection#addAll(Object[] array)
-	 */
-	public static <E> boolean addAll(Collection<? super E> collection, E[] array) {
-		return (array.length == 0) ? false : collection.addAll(Arrays.asList(array));
-	}
-
-	/**
-	 * Add all the elements returned by the specified iterable
-	 * to the specified list at the specified index.
-	 * Return whether the list changed as a result.
-	 * java.util.List#addAll(java.lang.Iterable iterable)
-	 */
-	public static <E> boolean addAll(List<? super E> list, int index, Iterable<E> iterable) {
-		return addAll(list, index, iterable.iterator());
-	}
-
-	/**
-	 * Add all the elements returned by the specified iterable
-	 * to the specified list at the specified index.
-	 * Return whether the list changed as a result.
-	 * java.util.List#addAll(java.lang.Iterable iterable)
-	 */
-	public static <E> boolean addAll(List<? super E> list, int index, Iterable<E> iterable, int size) {
-		return addAll(list, index, iterable.iterator(), size);
-	}
-
-	/**
-	 * Add all the elements returned by the specified iterator
-	 * to the specified list at the specified index.
-	 * Return whether the list changed as a result.
-	 * java.util.List#addAll(java.util.Iterator iterator)
-	 */
-	public static <E> boolean addAll(List<? super E> list, int index, Iterator<? extends E> iterator) {
-		return (iterator.hasNext()) ? list.addAll(index, list(iterator)) : false;
-	}
-
-	/**
-	 * Add all the elements returned by the specified iterator
-	 * to the specified list at the specified index.
-	 * Return whether the list changed as a result.
-	 * java.util.List#addAll(java.util.Iterator iterator)
-	 */
-	public static <E> boolean addAll(List<? super E> list, int index, Iterator<? extends E> iterator, int size) {
-		return (iterator.hasNext()) ? list.addAll(index, list(iterator, size)) : false;
-	}
-
-	/**
-	 * Add all the elements in the specified array
-	 * to the specified list at the specified index.
-	 * Return whether the list changed as a result.
-	 * java.util.List#addAll(Object[] array)
-	 */
-	public static <E> boolean addAll(List<? super E> list, int index, E[] array) {
-		return (array.length == 0) ? false : list.addAll(index, Arrays.asList(array));
-	}
-
-	/**
-	 * Return a new array that contains the elements in the
-	 * specified array followed by the elements
-	 * in the specified collection.
-	 * java.util.Arrays#addAll(Object[] array, java.util.Collection c)
-	 */
-	public static <E> E[] addAll(E[] array, Collection<? extends E> collection) {
-		int size = collection.size();
-		return (size == 0) ? array : addAll(array, collection, size);
-	}
-
-	/**
-	 * assume collection is non-empty
-	 */
-	private static <E> E[] addAll_(E[] array, Collection<? extends E> collection) {
-		return addAll(array, collection, collection.size());
-	}
-
-	/**
-	 * assume collection is non-empty
-	 */
-	private static <E> E[] addAll(E[] array, Collection<? extends E> collection, int collectionSize) {
-		int len = array.length;
-		E[] result = newArray(array, len + collectionSize);
-		if (len > 0) {
-			System.arraycopy(array, 0, result, 0, len);
-		}
-		int i = len;
-		for (E item : collection) {
-			result[i++] = item;
-		}
-		return result;
-	}
-
-	/**
-	 * Return a new array that contains the elements in the
-	 * specified array followed by the elements
-	 * in the specified iterable.
-	 * java.util.Arrays#addAll(Object[] array, java.lang.Iterable iterable)
-	 */
-	public static <E> E[] addAll(E[] array, Iterable<? extends E> iterable) {
-		return addAll(array, iterable.iterator());
-	}
-
-	/**
-	 * Return a new array that contains the elements in the
-	 * specified array followed by the elements
-	 * in the specified iterable.
-	 * java.util.Arrays#addAll(Object[] array, java.lang.Iterable iterable)
-	 */
-	public static <E> E[] addAll(E[] array, Iterable<? extends E> iterable, int size) {
-		return addAll(array, iterable.iterator(), size);
-	}
-
-	/**
-	 * Return a new array that contains the elements in the
-	 * specified array followed by the elements
-	 * in the specified iterator.
-	 * java.util.Arrays#addAll(Object[] array, java.util.Iterator iterator)
-	 */
-	public static <E> E[] addAll(E[] array, Iterator<? extends E> iterator) {
-		return (iterator.hasNext()) ? addAll_(array, list(iterator)) : array;
-	}
-
-	/**
-	 * Return a new array that contains the elements in the
-	 * specified array followed by the elements
-	 * in the specified iterator.
-	 * java.util.Arrays#addAll(Object[] array, java.util.Iterator iterator)
-	 */
-	public static <E> E[] addAll(E[] array, Iterator<? extends E> iterator, int size) {
-		return (iterator.hasNext()) ? addAll_(array, list(iterator, size)) : array;
-	}
-
-	/**
-	 * Return a new array that contains the elements in the
-	 * specified array 1 followed by the elements
-	 * in the specified array 2.
-	 * java.util.Arrays#addAll(Object[] array1, Object[] array2)
-	 */
-	public static <E> E[] addAll(E[] array1, E[] array2) {
-		int array2Length = array2.length;
-		return (array2Length == 0) ? array1 : addAll(array1, array2, array2Length);
-	}
-
-	/**
-	 * assume array2Length > 0
-	 */
-	private static <E> E[] addAll(E[] array1, E[] array2, int array2Length) {
-		int array1Length = array1.length;
-		return (array1Length == 0) ? array2 : addAll(array1, array2, array1Length, array2Length);
-	}
-
-	/**
-	 * assume array1Length > 0 and array2Length > 0
-	 */
-	private static <E> E[] addAll(E[] array1, E[] array2, int array1Length, int array2Length) {
-		E[] result = newArray(array1, array1Length + array2Length);
-		System.arraycopy(array1, 0, result, 0, array1Length);
-		System.arraycopy(array2, 0, result, array1Length, array2Length);
-		return result;
-	}
-
-	/**
-	 * Return a new array that contains all the elements in  all the
-	 * specified arrays, concatenated in the specified order.
-	 * This is useful for building constant arrays out other constant arrays.
-	 * java.util.Arrays#concatenate(Object[]... arrays)
-	 */
-	public static <E> E[] concatenate(E[]... arrays) {
-		int len = 0;
-		for (E[] array : arrays) {
-			len += array.length;
-		}
-		E[] result = newArray(arrays[0], len);
-		if (len == 0) {
-			return result;
-		}
-		int current = 0;
-		for (E[] array : arrays) {
-			int arrayLength = array.length;
-			if (arrayLength != 0) {
-				System.arraycopy(array, 0, result, current, arrayLength);
-				current += arrayLength;
-			}
-		}
-		return result;
-	}
-
-	/**
-	 * Return a new array that contains the elements in the
-	 * first specified array with the objects in the second
-	 * specified array added at the specified index.
-	 * java.util.Arrays#add(Object[] array1, int index, Object[] array2)
-	 */
-	public static <E> E[] addAll(E[] array1, int index, E[] array2) {
-		int array2Length = array2.length;
-		return (array2Length == 0) ? array1 : addAll(array1, index, array2, array2Length);
-	}
-
-	/**
-	 * assume array2Length > 0
-	 */
-	private static <E> E[] addAll(E[] array1, int index, E[] array2, int array2Length) {
-		int array1Length = array1.length;
-		return (index == array1Length) ?  // array2 added to end of array1
-				(array1Length == 0) ? array2 : addAll(array1, array2, array1Length, array2Length)
-			:
-				addAll(array1, index, array2, array1Length, array2Length);
-	}
-
-	/**
-	 * assume array1Length > 0 and array2Length > 0
-	 */
-	private static <E> E[] addAll(E[] array1, int index, E[] array2, int array1Length, int array2Length) {
-		E[] result = newArray(array1, array1Length + array2Length);
-		System.arraycopy(array1, 0, result, 0, index);
-		System.arraycopy(array2, 0, result, index, array2Length);
-		System.arraycopy(array1, index, result, index + array2Length, array1Length - index);
-		return result;
-	}
-
-	/**
-	 * Return a new array that contains the elements in the
-	 * specified array with the elements
-	 * in the specified collection inserted at the specified index.
-	 * java.util.Arrays#addAll(Object[] array, int index, java.util.Collection c)
-	 */
-	public static <E> E[] addAll(E[] array, int index, Collection<? extends E> collection) {
-		int size = collection.size();
-		return (size == 0) ? array : addAll(array, index, collection, size);
-	}
-
-	/**
-	 * assume collection is non-empty
-	 */
-	private static <E> E[] addAll_(E[] array, int index, Collection<? extends E> collection) {
-		return addAll(array, index, collection, collection.size());
-	}
-
-	/**
-	 * assume collection is non-empty
-	 */
-	private static <E> E[] addAll(E[] array, int index, Collection<? extends E> collection, int collectionSize) {
-		int arrayLength = array.length;
-		E[] result = newArray(array, arrayLength + collectionSize);
-		if ((arrayLength == 0) && (index == 0)) {
-			return collection.toArray(result);
-		}
-		System.arraycopy(array, 0, result, 0, index);
-		int i = index;
-		for (E item : collection) {
-			result[i++] = item;
-		}
-		System.arraycopy(array, index, result, index + collectionSize, arrayLength - index);
-		return result;
-	}
-
-	/**
-	 * Return a new array that contains the elements in the
-	 * specified array with the elements
-	 * in the specified iterable inserted at the specified index.
-	 * java.util.Arrays#addAll(Object[] array, int index, java.lang.Iterable iterable)
-	 */
-	public static <E> E[] addAll(E[] array, int index, Iterable<? extends E> iterable) {
-		return addAll(array, index, iterable.iterator());
-	}
-
-	/**
-	 * Return a new array that contains the elements in the
-	 * specified array with the elements
-	 * in the specified iterable inserted at the specified index.
-	 * java.util.Arrays#addAll(Object[] array, int index, java.lang.Iterable iterable)
-	 */
-	public static <E> E[] addAll(E[] array, int index, Iterable<? extends E> iterable, int size) {
-		return addAll(array, index, iterable.iterator(), size);
-	}
-
-	/**
-	 * Return a new array that contains the elements in the
-	 * specified array with the elements
-	 * in the specified iterator inserted at the specified index.
-	 * java.util.Arrays#addAll(Object[] array, int index, java.util.Iterator iterator)
-	 */
-	public static <E> E[] addAll(E[] array, int index, Iterator<? extends E> iterator) {
-		return (iterator.hasNext()) ? addAll_(array, index, list(iterator)) : array;
-	}
-
-	/**
-	 * Return a new array that contains the elements in the
-	 * specified array with the elements
-	 * in the specified iterator inserted at the specified index.
-	 * java.util.Arrays#addAll(Object[] array, int index, java.util.Iterator iterator)
-	 */
-	public static <E> E[] addAll(E[] array, int index, Iterator<? extends E> iterator, int size) {
-		return (iterator.hasNext()) ? addAll_(array, index, list(iterator, size)) : array;
-	}
-
-	/**
-	 * Return a new array that contains the elements in the
-	 * specified array 1 followed by the elements
-	 * in the specified array 2.
-	 * java.util.Arrays#addAll(char[] array1, char[] array2)
-	 */
-	public static char[] addAll(char[] array1, char[] array2) {
-		int array2Length = array2.length;
-		return (array2Length == 0) ? array1 : addAll(array1, array2, array2Length);
-	}
-
-	/**
-	 * assume array2Length > 0
-	 */
-	private static char[] addAll(char[] array1, char[] array2, int array2Length) {
-		int array1Length = array1.length;
-		return (array1Length == 0) ? array2 : addAll(array1, array2, array1Length, array2Length);
-	}
-
-	/**
-	 * assume array1Length > 0 and array2Length > 0
-	 */
-	private static char[] addAll(char[] array1, char[] array2, int array1Length, int array2Length) {
-		char[] result = new char[array1Length + array2Length];
-		System.arraycopy(array1, 0, result, 0, array1Length);
-		System.arraycopy(array2, 0, result, array1Length, array2Length);
-		return result;
-	}
-
-	/**
-	 * Return a new array that contains all the elements in  all the
-	 * specified arrays, concatenated in the specified order.
-	 * This is useful for building constant arrays out other constant arrays.
-	 * java.util.Arrays#concatenate(char[]... arrays)
-	 */
-	public static char[] concatenate(char[]... arrays) {
-		int len = 0;
-		for (char[] array : arrays) {
-			len += array.length;
-		}
-		if (len == 0) {
-			return EMPTY_CHAR_ARRAY;
-		}
-		char[] result = new char[len];
-		int current = 0;
-		for (char[] array : arrays) {
-			int arrayLength = array.length;
-			if (arrayLength != 0) {
-				System.arraycopy(array, 0, result, current, arrayLength);
-				current += arrayLength;
-			}
-		}
-		return result;
-	}
-
-	/**
-	 * Return a new array that contains the elements in the
-	 * first specified array with the objects in the second
-	 * specified array added at the specified index.
-	 * java.util.Arrays#add(char[] array1, int index, char[] array2)
-	 */
-	public static char[] addAll(char[] array1, int index, char[] array2) {
-		int array2Length = array2.length;
-		return (array2Length == 0) ? array1 : addAll(array1, index, array2, array2Length);
-	}
-
-	/**
-	 * assume array2Length > 0
-	 */
-	private static char[] addAll(char[] array1, int index, char[] array2, int array2Length) {
-		int array1Length = array1.length;
-		return (index == array1Length) ?  // array2 added to end of array1
-				(array1Length == 0) ? array2 : addAll(array1, array2, array1Length, array2Length)
-			:
-				addAll(array1, index, array2, array1Length, array2Length);
-	}
-
-	/**
-	 * assume array1Length > 0 and array2Length > 0
-	 */
-	private static char[] addAll(char[] array1, int index, char[] array2, int array1Length, int array2Length) {
-		char[] result = new char[array1Length + array2Length];
-		System.arraycopy(array1, 0, result, 0, index);
-		System.arraycopy(array2, 0, result, index, array2Length);
-		System.arraycopy(array1, index, result, index + array2Length, array1Length - index);
-		return result;
-	}
-
-	/**
-	 * Return a new array that contains the elements in the
-	 * specified array 1 followed by the elements
-	 * in the specified array 2.
-	 * java.util.Arrays#addAll(int[] array1, int[] array2)
-	 */
-	public static int[] addAll(int[] array1, int[] array2) {
-		int array2Length = array2.length;
-		return (array2Length == 0) ? array1 : addAll(array1, array2, array2Length);
-	}
-
-	/**
-	 * assume array2Length > 0
-	 */
-	private static int[] addAll(int[] array1, int[] array2, int array2Length) {
-		int array1Length = array1.length;
-		return (array1Length == 0) ? array2 : addAll(array1, array2, array1Length, array2Length);
-	}
-
-	/**
-	 * assume array1Length > 0 and array2Length > 0
-	 */
-	private static int[] addAll(int[] array1, int[] array2, int array1Length, int array2Length) {
-		int[] result = new int[array1Length + array2Length];
-		System.arraycopy(array1, 0, result, 0, array1Length);
-		System.arraycopy(array2, 0, result, array1Length, array2Length);
-		return result;
-	}
-
-	/**
-	 * Return a new array that contains all the elements in  all the
-	 * specified arrays, concatenated in the specified order.
-	 * This is useful for building constant arrays out other constant arrays.
-	 * java.util.Arrays#concatenate(int[]... arrays)
-	 */
-	public static int[] concatenate(int[]... arrays) {
-		int len = 0;
-		for (int[] array : arrays) {
-			len += array.length;
-		}
-		if (len == 0) {
-			return EMPTY_INT_ARRAY;
-		}
-		int[] result = new int[len];
-		int current = 0;
-		for (int[] array : arrays) {
-			int arrayLength = array.length;
-			if (arrayLength != 0) {
-				System.arraycopy(array, 0, result, current, arrayLength);
-				current += arrayLength;
-			}
-		}
-		return result;
-	}
-
-	/**
-	 * Return a new array that contains the elements in the
-	 * first specified array with the objects in the second
-	 * specified array added at the specified index.
-	 * java.util.Arrays#add(int[] array1, int index, int[] array2)
-	 */
-	public static int[] addAll(int[] array1, int index, int[] array2) {
-		int array2Length = array2.length;
-		return (array2Length == 0) ? array1 : addAll(array1, index, array2, array2Length);
-	}
-
-	/**
-	 * assume array2Length > 0
-	 */
-	private static int[] addAll(int[] array1, int index, int[] array2, int array2Length) {
-		int array1Length = array1.length;
-		return (index == array1Length) ?  // array2 added to end of array1
-				(array1Length == 0) ? array2 : addAll(array1, array2, array1Length, array2Length)
-			:
-				addAll(array1, index, array2, array1Length, array2Length);
-	}
-
-	/**
-	 * assume array1Length > 0 and array2Length > 0
-	 */
-	private static int[] addAll(int[] array1, int index, int[] array2, int array1Length, int array2Length) {
-		int[] result = new int[array1Length + array2Length];
-		System.arraycopy(array1, 0, result, 0, index);
-		System.arraycopy(array2, 0, result, index, array2Length);
-		System.arraycopy(array1, index, result, index + array2Length, array1Length - index);
-		return result;
-	}
-
-	/**
-	 * Return an array corresponding to the specified iterable.
-	 * @see java.util.Collection#toArray()
-	 * java.lang.Iterable#toArray()
-	 */
-	public static Object[] array(Iterable<?> iterable) {
-		return array(iterable.iterator());
-	}
-
-	/**
-	 * Return an array corresponding to the specified iterable.
-	 * @see java.util.Collection#toArray()
-	 * java.lang.Iterable#toArray()
-	 */
-	public static Object[] array(Iterable<?> iterable, int size) {
-		return array(iterable.iterator(), size);
-	}
-
-	/**
-	 * Return an array corresponding to the specified iterable;
-	 * the runtime type of the returned array is that of the specified array.
-	 * If the collection fits in the specified array, it is returned therein.
-	 * Otherwise, a new array is allocated with the runtime type of the
-	 * specified array and the size of this collection.
-	 * @see java.util.Collection#toArray(java.lang.Object[])
-	 * java.lang.Iterable#toArray(Object[])
-	 */
-	public static <E> E[] array(Iterable<? extends E> iterable, E[] array) {
-		return array(iterable.iterator(), array);
-	}
-
-	/**
-	 * Return an array corresponding to the specified iterable;
-	 * the runtime type of the returned array is that of the specified array.
-	 * If the collection fits in the specified array, it is returned therein.
-	 * Otherwise, a new array is allocated with the runtime type of the
-	 * specified array and the size of this collection.
-	 * @see java.util.Collection#toArray(java.lang.Object[])
-	 * java.lang.Iterable#toArray(Object[])
-	 */
-	public static <E> E[] array(Iterable<? extends E> iterable, int size, E[] array) {
-		return array(iterable.iterator(), size, array);
-	}
-
-	/**
-	 * Return an array corresponding to the specified iterator.
-	 * @see java.util.Collection#toArray()
-	 * java.util.Iterator#toArray()
-	 */
-	public static Object[] array(Iterator<?> iterator) {
-		return (iterator.hasNext()) ? list(iterator).toArray() : EMPTY_OBJECT_ARRAY;
-	}
-	private static final Object[] EMPTY_OBJECT_ARRAY = new Object[0];
-
-	/**
-	 * Return an array corresponding to the specified iterator.
-	 * @see java.util.Collection#toArray()
-	 * java.util.Iterator#toArray()
-	 */
-	public static Object[] array(Iterator<?> iterator, int size) {
-		return (iterator.hasNext()) ? list(iterator, size).toArray() : EMPTY_OBJECT_ARRAY;
-	}
-
-	/**
-	 * Return an array corresponding to the specified iterator;
-	 * the runtime type of the returned array is that of the specified array.
-	 * If the collection fits in the specified array, it is returned therein.
-	 * Otherwise, a new array is allocated with the runtime type of the
-	 * specified array and the size of this collection.
-	 * @see java.util.Collection#toArray(java.lang.Object[])
-	 * java.util.Iterator#toArray(Object[])
-	 */
-	public static <E> E[] array(Iterator<? extends E> iterator, E[] array) {
-		return (iterator.hasNext()) ? list(iterator).toArray(array) : newArray(array, 0);
-	}
-
-	/**
-	 * Return an array corresponding to the specified iterator;
-	 * the runtime type of the returned array is that of the specified array.
-	 * If the collection fits in the specified array, it is returned therein.
-	 * Otherwise, a new array is allocated with the runtime type of the
-	 * specified array and the size of this collection.
-	 * @see java.util.Collection#toArray(java.lang.Object[])
-	 * java.util.Iterator#toArray(Object[])
-	 */
-	public static <E> E[] array(Iterator<? extends E> iterator, int size, E[] array) {
-		return (iterator.hasNext()) ? list(iterator, size).toArray(array) : newArray(array, 0);
-	}
-
-	/**
-	 * Return a bag corresponding to the specified enumeration.
-	 * HashBag(java.util.Enumeration enumeration)
-	 */
-	public static <E> HashBag<E> bag(Enumeration<? extends E> enumeration) {
-		return bag(enumeration, new HashBag<E>());
-	}
-
-	/**
-	 * Return a bag corresponding to the specified enumeration.
-	 * HashBag(java.util.Enumeration enumeration)
-	 */
-	public static <E> HashBag<E> bag(Enumeration<? extends E> enumeration, int size) {
-		return bag(enumeration, new HashBag<E>(size));
-	}
-
-	private static <E> HashBag<E> bag(Enumeration<? extends E> enumeration, HashBag<E> bag) {
-		while (enumeration.hasMoreElements()) {
-			bag.add(enumeration.nextElement());
-		}
-		return bag;
-	}
-
-	/**
-	 * Return a bag corresponding to the specified iterable.
-	 * HashBag(java.lang.Iterable iterable)
-	 */
-	public static <E> HashBag<E> bag(Iterable<? extends E> iterable) {
-		return bag(iterable.iterator());
-	}
-
-	/**
-	 * Return a bag corresponding to the specified iterable.
-	 * HashBag(java.lang.Iterable iterable)
-	 */
-	public static <E> HashBag<E> bag(Iterable<? extends E> iterable, int size) {
-		return bag(iterable.iterator(), size);
-	}
-
-	/**
-	 * Return a bag corresponding to the specified iterator.
-	 * HashBag(java.util.Iterator iterator)
-	 */
-	public static <E> HashBag<E> bag(Iterator<? extends E> iterator) {
-		return bag(iterator, new HashBag<E>());
-	}
-
-	/**
-	 * Return a bag corresponding to the specified iterator.
-	 * HashBag(java.util.Iterator iterator)
-	 */
-	public static <E> HashBag<E> bag(Iterator<? extends E> iterator, int size) {
-		return bag(iterator, new HashBag<E>(size));
-	}
-
-	private static <E> HashBag<E> bag(Iterator<? extends E> iterator, HashBag<E> bag) {
-		while (iterator.hasNext()) {
-			bag.add(iterator.next());
-		}
-		return bag;
-	}
-
-	/**
-	 * Return a bag corresponding to the specified array.
-	 * HashBag(Object[] array)
-	 */
-	public static <E> HashBag<E> bag(E... array) {
-		int len = array.length;
-		HashBag<E> bag = new HashBag<E>(len);
-		for (E item : array) {
-			bag.add(item);
-		}
-		return bag;
-	}
-
-	/**
-	 * Clear the specified array.
-	 * java.util.Arrays#clear(Object[] array)
-	 */
-	public static <E> E[] clear(E[] array) {
-		if (array.length == 0) {
-			return array;
-		}
-		return newArray(array, 0);
-	}
-
-	/**
-	 * Return a collection corresponding to the specified enumeration.
-	 */
-	public static <E> HashBag<E> collection(Enumeration<? extends E> enumeration) {
-		return bag(enumeration);
-	}
-
-	/**
-	 * Return a collection corresponding to the specified enumeration.
-	 */
-	public static <E> HashBag<E> collection(Enumeration<? extends E> enumeration, int size) {
-		return bag(enumeration, size);
-	}
-
-	/**
-	 * Return a collection corresponding to the specified iterable.
-	 */
-	public static <E> HashBag<E> collection(Iterable<? extends E> iterable) {
-		return collection(iterable.iterator());
-	}
-
-	/**
-	 * Return a collection corresponding to the specified iterable.
-	 */
-	public static <E> HashBag<E> collection(Iterable<? extends E> iterable, int size) {
-		return collection(iterable.iterator(), size);
-	}
-
-	/**
-	 * Return a collection corresponding to the specified iterator.
-	 */
-	public static <E> HashBag<E> collection(Iterator<? extends E> iterator) {
-		return bag(iterator);
-	}
-
-	/**
-	 * Return a collection corresponding to the specified iterator.
-	 */
-	public static <E> HashBag<E> collection(Iterator<? extends E> iterator, int size) {
-		return bag(iterator, size);
-	}
-
-	/**
-	 * Return a collection corresponding to the specified array.
-	 */
-	public static <E> HashBag<E> collection(E... array) {
-		return bag(array);
-	}
-
-	/**
-	 * Return whether the specified enumeration contains the
-	 * specified element.
-	 * java.util.Enumeration#contains(Object o)
-	 */
-	public static boolean contains(Enumeration<?> enumeration, Object value) {
-		if (value == null) {
-			while (enumeration.hasMoreElements()) {
-				if (enumeration.nextElement() == null) {
-					return true;
-				}
-			}
-		} else {
-			while (enumeration.hasMoreElements()) {
-				if (value.equals(enumeration.nextElement())) {
-					return true;
-				}
-			}
-		}
-		return false;
-	}
-
-	/**
-	 * Return whether the specified iterable contains the
-	 * specified element.
-	 * java.lang.Iterable#contains(Object o)
-	 */
-	public static boolean contains(Iterable<?> iterable, Object value) {
-		return contains(iterable.iterator(), value);
-	}
-
-	/**
-	 * Return whether the specified iterator contains the
-	 * specified element.
-	 * java.util.Iterator#contains(Object o)
-	 */
-	public static boolean contains(Iterator<?> iterator, Object value) {
-		if (value == null) {
-			while (iterator.hasNext()) {
-				if (iterator.next() == null) {
-					return true;
-				}
-			}
-		} else {
-			while (iterator.hasNext()) {
-				if (value.equals(iterator.next())) {
-					return true;
-				}
-			}
-		}
-		return false;
-	}
-
-	/**
-	 * Return whether the specified array contains the
-	 * specified element.
-	 * java.util.Arrays#contains(Object[] array, Object o)
-	 */
-	public static boolean contains(Object[] array, Object value) {
-		if (value == null) {
-			for (int i = array.length; i-- > 0; ) {
-				if (array[i] == null) {
-					return true;
-				}
-			}
-		} else {
-			for (int i = array.length; i-- > 0; ) {
-				if (value.equals(array[i])) {
-					return true;
-				}
-			}
-		}
-		return false;
-	}
-
-	/**
-	 * Return whether the specified array contains the
-	 * specified element.
-	 * java.util.Arrays#contains(char[] array, char value)
-	 */
-	public static boolean contains(char[] array, char value) {
-		return contains(array, value, array.length);
-	}
-
-	private static boolean contains(char[] array, char value, int arrayLength) {
-		for (int i = arrayLength; i-- > 0; ) {
-			if (array[i] == value) {
-				return true;
-			}
-		}
-		return false;
-	}
-
-	/**
-	 * Return whether the specified array contains the
-	 * specified element.
-	 * java.util.Arrays#contains(int[] array, int value)
-	 */
-	public static boolean contains(int[] array, int value) {
-		return contains(array, value, array.length);
-	}
-
-	private static boolean contains(int[] array, int value, int arrayLength) {
-		for (int i = arrayLength; i-- > 0; ) {
-			if (array[i] == value) {
-				return true;
-			}
-		}
-		return false;
-	}
-
-	/**
-	 * Return whether the specified collection contains all of the
-	 * elements in the specified iterable.
-	 * java.util.Collection#containsAll(java.lang.Iterable iterable)
-	 */
-	public static boolean containsAll(Collection<?> collection, Iterable<?> iterable) {
-		return containsAll(collection, iterable.iterator());
-	}
-
-	/**
-	 * Return whether the specified collection contains all of the
-	 * elements in the specified iterator.
-	 * java.util.Collection#containsAll(java.util.Iterator iterator)
-	 */
-	public static boolean containsAll(Collection<?> collection, Iterator<?> iterator) {
-		while (iterator.hasNext()) {
-			if ( ! collection.contains(iterator.next())) {
-				return false;
-			}
-		}
-		return true;
-	}
-
-	/**
-	 * Return whether the specified collection contains all of the
-	 * elements in the specified array.
-	 * java.util.Collection#containsAll(Object[] array)
-	 */
-	public static boolean containsAll(Collection<?> collection, Object[] array) {
-		for (int i = array.length; i-- > 0; ) {
-			if ( ! collection.contains(array[i])) {
-				return false;
-			}
-		}
-		return true;
-	}
-
-	/**
-	 * Return whether the specified iterable contains all of the
-	 * elements in the specified collection.
-	 * java.lang.Iterable#containsAll(java.util.Collection collection)
-	 */
-	public static boolean containsAll(Iterable<?> iterable, Collection<?> collection) {
-		return containsAll(iterable.iterator(), collection);
-	}
-
-	/**
-	 * Return whether the specified iterable contains all of the
-	 * elements in the specified collection.
-	 * java.lang.Iterable#containsAll(java.util.Collection collection)
-	 */
-	public static boolean containsAll(Iterable<?> iterable, int size, Collection<?> collection) {
-		return containsAll(iterable.iterator(), size, collection);
-	}
-
-	/**
-	 * Return whether the specified iterable 1 contains all of the
-	 * elements in the specified iterable 2.
-	 * java.lang.Iterable#containsAll(java.lang.Iterable iterable)
-	 */
-	public static boolean containsAll(Iterable<?> iterable1, Iterable<?> iterable2) {
-		return containsAll(iterable1.iterator(), iterable2.iterator());
-	}
-
-	/**
-	 * Return whether the specified iterable 1 contains all of the
-	 * elements in the specified iterable 2.
-	 * java.lang.Iterable#containsAll(java.lang.Iterable iterable)
-	 */
-	public static boolean containsAll(Iterable<?> iterable1, int size, Iterable<?> iterable2) {
-		return containsAll(iterable1.iterator(), size, iterable2.iterator());
-	}
-
-	/**
-	 * Return whether the specified iterable contains all of the
-	 * elements in the specified iterator.
-	 * java.lang.Iterable#containsAll(java.util.Iterator iterator)
-	 */
-	public static boolean containsAll(Iterable<?> iterable, Iterator<?> iterator) {
-		return containsAll(iterable.iterator(), iterator);
-	}
-
-	/**
-	 * Return whether the specified iterable contains all of the
-	 * elements in the specified iterator.
-	 * java.lang.Iterable#containsAll(java.util.Iterator iterator)
-	 */
-	public static boolean containsAll(Iterable<?> iterable, int size, Iterator<?> iterator) {
-		return containsAll(iterable.iterator(), size, iterator);
-	}
-
-	/**
-	 * Return whether the specified iterable contains all of the
-	 * elements in the specified array.
-	 * java.lang.Iterable#containsAll(Object[] array)
-	 */
-	public static boolean containsAll(Iterable<?> iterable, Object[] array) {
-		return containsAll(iterable.iterator(), array);
-	}
-
-	/**
-	 * Return whether the specified iterable contains all of the
-	 * elements in the specified array.
-	 * java.lang.Iterable#containsAll(Object[] array)
-	 */
-	public static boolean containsAll(Iterable<?> iterable, int size, Object[] array) {
-		return containsAll(iterable.iterator(), size, array);
-	}
-
-	/**
-	 * Return whether the specified iterator contains all of the
-	 * elements in the specified collection.
-	 * java.util.Iterator#containsAll(java.util.Collection collection)
-	 */
-	public static boolean containsAll(Iterator<?> iterator, Collection<?> collection) {
-		return collection(iterator).containsAll(collection);
-	}
-
-	/**
-	 * Return whether the specified iterator contains all of the
-	 * elements in the specified collection.
-	 * java.util.Iterator#containsAll(java.util.Collection collection)
-	 */
-	public static boolean containsAll(Iterator<?> iterator, int size, Collection<?> collection) {
-		return collection(iterator, size).containsAll(collection);
-	}
-
-	/**
-	 * Return whether the specified iterator contains all of the
-	 * elements in the specified iterable.
-	 * java.util.Iterator#containsAll(java.lang.Iterable iterable)
-	 */
-	public static boolean containsAll(Iterator<?> iterator, Iterable<?> iterable) {
-		return containsAll(collection(iterator), iterable);
-	}
-
-	/**
-	 * Return whether the specified iterator contains all of the
-	 * elements in the specified iterable.
-	 * java.util.Iterator#containsAll(java.lang.Iterable iterable)
-	 */
-	public static boolean containsAll(Iterator<?> iterator, int size, Iterable<?> iterable) {
-		return containsAll(collection(iterator, size), iterable);
-	}
-
-	/**
-	 * Return whether the specified iterator 1 contains all of the
-	 * elements in the specified iterator 2.
-	 * java.util.Iterator#containsAll(java.util.Iterator iterator)
-	 */
-	public static boolean containsAll(Iterator<?> iterator1, Iterator<?> iterator2) {
-		return containsAll(collection(iterator1), iterator2);
-	}
-
-	/**
-	 * Return whether the specified iterator 1 contains all of the
-	 * elements in the specified iterator 2.
-	 * java.util.Iterator#containsAll(java.util.Iterator iterator)
-	 */
-	public static boolean containsAll(Iterator<?> iterator1, int size, Iterator<?> iterator2) {
-		return containsAll(collection(iterator1, size), iterator2);
-	}
-
-	/**
-	 * Return whether the specified iterator contains all of the
-	 * elements in the specified array.
-	 * java.util.Iterator#containsAll(Object[] array)
-	 */
-	public static boolean containsAll(Iterator<?> iterator, Object[] array) {
-		return containsAll(collection(iterator), array);
-	}
-
-	/**
-	 * Return whether the specified iterator contains all of the
-	 * elements in the specified array.
-	 * java.util.Iterator#containsAll(Object[] array)
-	 */
-	public static boolean containsAll(Iterator<?> iterator, int size, Object[] array) {
-		return containsAll(collection(iterator, size), array);
-	}
-
-	/**
-	 * Return whether the specified array contains all of the
-	 * elements in the specified collection.
-	 * java.util.Arrays#containsAll(Object[] array, java.util.Collection collection)
-	 */
-	public static boolean containsAll(Object[] array, Collection<?> collection) {
-		return containsAll(array, collection.iterator());
-	}
-
-	/**
-	 * Return whether the specified array contains all of the
-	 * elements in the specified iterable.
-	 * java.util.Arrays#containsAll(Object[] array, java.lang.Iterable iterable)
-	 */
-	public static boolean containsAll(Object[] array, Iterable<?> iterable) {
-		return containsAll(array, iterable.iterator());
-	}
-
-	/**
-	 * Return whether the specified array contains all of the
-	 * elements in the specified iterator.
-	 * java.util.Arrays#containsAll(Object[] array, java.util.Iterator iterator)
-	 */
-	public static boolean containsAll(Object[] array, Iterator<?> iterator) {
-		while (iterator.hasNext()) {
-			if ( ! contains(array, iterator.next())) {
-				return false;
-			}
-		}
-		return true;
-	}
-
-	/**
-	 * Return whether the specified array 1 contains all of the
-	 * elements in the specified array 2.
-	 * java.util.Arrays#containsAll(Object[] array1, Object[] array2)
-	 */
-	public static boolean containsAll(Object[] array1, Object[] array2) {
-		for (int i = array2.length; i-- > 0; ) {
-			if ( ! contains(array1, array2[i])) {
-				return false;
-			}
-		}
-		return true;
-	}
-
-	/**
-	 * Return whether the specified array 1 contains all of the
-	 * elements in the specified array 2.
-	 * java.util.Arrays#containsAll(char[] array1, char[] array2)
-	 */
-	public static boolean containsAll(char[] array1, char[] array2) {
-		for (int i = array2.length; i-- > 0; ) {
-			if ( ! contains(array1, array2[i])) {
-				return false;
-			}
-		}
-		return true;
-	}
-
-	/**
-	 * Return whether the specified array 1 contains all of the
-	 * elements in the specified array 2.
-	 * java.util.Arrays#containsAll(int[] array1, int[] array2)
-	 */
-	public static boolean containsAll(int[] array1, int[] array2) {
-		for (int i = array2.length; i-- > 0; ) {
-			if ( ! contains(array1, array2[i])) {
-				return false;
-			}
-		}
-		return true;
-	}
-
-	/**
-	 * Return the index of the first elements in the specified
-	 * arrays that are different, beginning at the end.
-	 * If the arrays are identical, return -1.
-	 * If the arrays are different sizes, return the index of the
-	 * last element in the longer array.
-	 * Use the elements' #equals() method to compare the
-	 * elements.
-	 */
-	public static int diffEnd(Object[] array1, Object[] array2) {
-		return diffEnd(Arrays.asList(array1), Arrays.asList(array2));
-	}
-
-	/**
-	 * Return the index of the first elements in the specified
-	 * lists that are different, beginning at the end.
-	 * If the lists are identical, return -1.
-	 * If the lists are different sizes, return the index of the
-	 * last element in the longer list.
-	 * Use the elements' #equals() method to compare the
-	 * elements.
-	 */
-	public static int diffEnd(List<?> list1, List<?> list2) {
-		int size1 = list1.size();
-		int size2 = list2.size();
-		if (size1 != size2) {
-			return Math.max(size1, size2) - 1;
-		}
-		int end = size1 - 1;
-		while (end > -1) {
-			Object o = list1.get(end);
-			if (o == null) {
-				if (list2.get(end) == null) {
-					end--;
-				} else {
-					return end;
-				}
-			} else {
-				if (o.equals(list2.get(end))) {
-					end--;
-				} else {
-					return end;
-				}
-			}
-		}
-		return end;
-	}
-
-	/**
-	 * Return the range of elements in the specified
-	 * arrays that are different.
-	 * If the arrays are identical, return [size, -1].
-	 * Use the elements' #equals() method to compare the
-	 * elements.
-	 * @see #diffStart(Object[], Object[])
-	 * @see #diffEnd(Object[], Object[])
-	 */
-	public static Range diffRange(Object[] array1, Object[] array2) {
-		return diffRange(Arrays.asList(array1), Arrays.asList(array2));
-	}
-
-	/**
-	 * Return the range of elements in the specified
-	 * arrays that are different.
-	 * If the arrays are identical, return [size, -1].
-	 * Use the elements' #equals() method to compare the
-	 * elements.
-	 * @see #diffStart(java.util.List, java.util.List)
-	 * @see #diffEnd(java.util.List, java.util.List)
-	 */
-	public static Range diffRange(List<?> list1, List<?> list2) {
-		int end = diffEnd(list1, list2);
-		if (end == -1) {
-			// the lists are identical, the start is the size of the two lists
-			return new Range(list1.size(), end);
-		}
-		// the lists are different, calculate the start of the range
-		return new Range(diffStart(list1, list2), end);
-	}
-
-	/**
-	 * Return the index of the first elements in the specified
-	 * arrays that are different. If the arrays are identical, return
-	 * the size of the two arrays (i.e. one past the last index).
-	 * If the arrays are different sizes and all the elements in
-	 * the shorter array match their corresponding elements in
-	 * the longer array, return the size of the shorter array
-	 * (i.e. one past the last index of the shorter array).
-	 * Use the elements' #equals() method to compare the
-	 * elements.
-	 */
-	public static int diffStart(Object[] array1, Object[] array2) {
-		return diffStart(Arrays.asList(array1), Arrays.asList(array2));
-	}
-
-	/**
-	 * Return the index of the first elements in the specified
-	 * lists that are different. If the lists are identical, return
-	 * the size of the two lists (i.e. one past the last index).
-	 * If the lists are different sizes and all the elements in
-	 * the shorter list match their corresponding elements in
-	 * the longer list, return the size of the shorter list
-	 * (i.e. one past the last index of the shorter list).
-	 * Use the elements' #equals() method to compare the
-	 * elements.
-	 */
-	public static int diffStart(List<?> list1, List<?> list2) {
-		int end = Math.min(list1.size(), list2.size());
-		int start = 0;
-		while (start < end) {
-			Object o = list1.get(start);
-			if (o == null) {
-				if (list2.get(start) == null) {
-					start++;
-				} else {
-					return start;
-				}
-			} else {
-				if (o.equals(list2.get(start))) {
-					start++;
-				} else {
-					return start;
-				}
-			}
-		}
-		return start;
-	}
-
-	/**
-	 * Return whether the specified iterators return equal elements.
-	 * java.util.Iterator#equals(java.util.Iterator iterator)
-	 */
-	public static boolean equals(Iterator<?> iterator1, Iterator<?> iterator2) {
-		while (iterator1.hasNext() && iterator2.hasNext()) {
-			Object o1 = iterator1.next();
-			Object o2 = iterator2.next();
-			if ( ! (o1 == null ? o2 == null : o1.equals(o2))) {
-				return false;
-			}
-		}
-		return ! (iterator1.hasNext() || iterator2.hasNext());
-	}
-
-	/**
-	 * Return the element corresponding to the specified index
-	 * in the specified iterator.
-	 * java.util.ListIterator#get(int index)
-	 */
-	public static <E> E get(ListIterator<? extends E> iterator, int index) {
-		while (iterator.hasNext()) {
-			E next = iterator.next();
-			if (iterator.previousIndex() == index) {
-				return next;
-			}
-		}
-		throw new IndexOutOfBoundsException(String.valueOf(index) + ':' + String.valueOf(iterator.previousIndex()));
-	}
-
-	/**
-	 * Return whether the specified arrays contain the same elements.
-	 * java.util.Arrays#identical(Object[] array1, Object[] array2)
-	 */
-	public static boolean identical(Object[] array1, Object[] array2) {
-		if (array1 == array2) {
-			return true;
-		}
-		if (array1 == null || array2 == null) {
-			return false;
-		}
-		int length = array1.length;
-		if (array2.length != length) {
-			return false;
-		}
-		for (int i = length; i-- > 0; ) {
-			if (array1[i] != array2[i]) {
-				return false;
-			}
-		}
-		return true;
-	}
-
-	/**
-	 * Return whether the specified iterators return the same elements.
-	 * java.util.Iterator#identical(java.util.Iterator iterator)
-	 */
-	public static boolean identical(Iterator<?> iterator1, Iterator<?> iterator2) {
-		while (iterator1.hasNext() && iterator2.hasNext()) {
-			if (iterator1.next() != iterator2.next()) {
-				return false;
-			}
-		}
-		return ! (iterator1.hasNext() || iterator2.hasNext());
-	}
-
-	/**
-	 * Return the index of the first elements in the specified
-	 * arrays that are different, beginning at the end.
-	 * If the arrays are identical, return -1.
-	 * If the arrays are different sizes, return the index of the
-	 * last element in the longer array.
-	 * Use object identity to compare the elements.
-	 */
-	public static int identityDiffEnd(Object[] array1, Object[] array2) {
-		return identityDiffEnd(Arrays.asList(array1), Arrays.asList(array2));
-	}
-
-	/**
-	 * Return the index of the first elements in the specified
-	 * lists that are different, beginning at the end.
-	 * If the lists are identical, return -1.
-	 * If the lists are different sizes, return the index of the
-	 * last element in the longer list.
-	 * Use object identity to compare the elements.
-	 */
-	public static int identityDiffEnd(List<?> list1, List<?> list2) {
-		int size1 = list1.size();
-		int size2 = list2.size();
-		if (size1 != size2) {
-			return Math.max(size1, size2) - 1;
-		}
-		int end = size1 - 1;
-		while (end > -1) {
-			if (list1.get(end) == list2.get(end)) {
-				end--;
-			} else {
-				return end;
-			}
-		}
-		return end;
-	}
-
-	/**
-	 * Return the range of elements in the specified
-	 * arrays that are different.
-	 * If the arrays are identical, return [size, -1].
-	 * Use object identity to compare the elements.
-	 * @see #identityDiffStart(Object[], Object[])
-	 * @see #identityDiffEnd(Object[], Object[])
-	 */
-	public static Range identityDiffRange(Object[] array1, Object[] array2) {
-		return identityDiffRange(Arrays.asList(array1), Arrays.asList(array2));
-	}
-
-	/**
-	 * Return the range of elements in the specified
-	 * arrays that are different.
-	 * If the arrays are identical, return [size, -1].
-	 * Use object identity to compare the elements.
-	 * @see #identityDiffStart(java.util.List, java.util.List)
-	 * @see #identityDiffEnd(java.util.List, java.util.List)
-	 */
-	public static Range identityDiffRange(List<?> list1, List<?> list2) {
-		int end = identityDiffEnd(list1, list2);
-		if (end == -1) {
-			// the lists are identical, the start is the size of the two lists
-			return new Range(list1.size(), end);
-		}
-		// the lists are different, calculate the start of the range
-		return new Range(identityDiffStart(list1, list2), end);
-	}
-
-	/**
-	 * Return the index of the first elements in the specified
-	 * arrays that are different. If the arrays are identical, return
-	 * the size of the two arrays (i.e. one past the last index).
-	 * If the arrays are different sizes and all the elements in
-	 * the shorter array match their corresponding elements in
-	 * the longer array, return the size of the shorter array
-	 * (i.e. one past the last index of the shorter array).
-	 * Use object identity to compare the elements.
-	 */
-	public static int identityDiffStart(Object[] array1, Object[] array2) {
-		return identityDiffStart(Arrays.asList(array1), Arrays.asList(array2));
-	}
-
-	/**
-	 * Return the index of the first elements in the specified
-	 * lists that are different. If the lists are identical, return
-	 * the size of the two lists (i.e. one past the last index).
-	 * If the lists are different sizes and all the elements in
-	 * the shorter list match their corresponding elements in
-	 * the longer list, return the size of the shorter list
-	 * (i.e. one past the last index of the shorter list).
-	 * Use object identity to compare the elements.
-	 */
-	public static int identityDiffStart(List<?> list1, List<?> list2) {
-		int end = Math.min(list1.size(), list2.size());
-		int start = 0;
-		while (start < end) {
-			if (list1.get(start) == list2.get(start)) {
-				start++;
-			} else {
-				return start;
-			}
-		}
-		return start;
-	}
-
-	/**
-	 * Return the index of the first occurrence of the
-	 * specified element in the specified iterator,
-	 * or return -1 if there is no such index.
-	 * java.util.Iterator#indexOf(Object o)
-	 */
-	public static int indexOf(Iterator<?> iterator, Object value) {
-		if (value == null) {
-			for (int i = 0; iterator.hasNext(); i++) {
-				if (iterator.next() == null) {
-					return i;
-				}
-			}
-		} else {
-			for (int i = 0; iterator.hasNext(); i++) {
-				if (value.equals(iterator.next())) {
-					return i;
-				}
-			}
-		}
-		return -1;
-	}
-
-	/**
-	 * Return the index of the first occurrence of the
-	 * specified element in the specified array,
-	 * or return -1 if there is no such index.
-	 * java.util.Arrays#indexOf(Object[] array, Object o)
-	 */
-	public static int indexOf(Object[] array, Object value) {
-		int len = array.length;
-		if (value == null) {
-			for (int i = 0; i < len; i++) {
-				if (array[i] == null) {
-					return i;
-				}
-			}
-		} else {
-			for (int i = 0; i < len; i++) {
-				if (value.equals(array[i])) {
-					return i;
-				}
-			}
-		}
-		return -1;
-	}
-
-	/**
-	 * Return the index of the first occurrence of the
-	 * specified element in the specified array,
-	 * or return -1 if there is no such index.
-	 * java.util.Arrays#indexOf(char[] array, char value)
-	 */
-	public static int indexOf(char[] array, char value) {
-		int len = array.length;
-		for (int i = 0; i < len; i++) {
-			if (array[i] == value) {
-				return i;
-			}
-		}
-		return -1;
-	}
-
-	/**
-	 * Return the index of the first occurrence of the
-	 * specified element in the specified array,
-	 * or return -1 if there is no such index.
-	 * java.util.Arrays#indexOf(int[] array, int value)
-	 */
-	public static int indexOf(int[] array, int value) {
-		int len = array.length;
-		for (int i = 0; i < len; i++) {
-			if (array[i] == value) {
-				return i;
-			}
-		}
-		return -1;
-	}
-
-	/**
-	 * Return the maximum index of where the specified comparable object
-	 * should be inserted into the specified sorted list and still keep
-	 * the list sorted.
-	 */
-	public static <E extends Comparable<? super E>> int insertionIndexOf(List<E> sortedList, Comparable<E> value) {
-		int len = sortedList.size();
-		for (int i = 0; i < len; i++) {
-			if (value.compareTo(sortedList.get(i)) < 0) {
-				return i;
-			}
-		}
-		return len;
-	}
-
-	/**
-	 * Return the maximum index of where the specified object
-	 * should be inserted into the specified sorted list and still keep
-	 * the list sorted.
-	 */
-	public static <E> int insertionIndexOf(List<E> sortedList, E value, Comparator<? super E> comparator) {
-		int len = sortedList.size();
-		for (int i = 0; i < len; i++) {
-			if (comparator.compare(value, sortedList.get(i)) < 0) {
-				return i;
-			}
-		}
-		return len;
-	}
-
-	/**
-	 * Return the maximum index of where the specified comparable object
-	 * should be inserted into the specified sorted array and still keep
-	 * the array sorted.
-	 */
-	public static <E extends Comparable<? super E>> int insertionIndexOf(E[] sortedArray, Comparable<E> value) {
-		int len = sortedArray.length;
-		for (int i = 0; i < len; i++) {
-			if (value.compareTo(sortedArray[i]) < 0) {
-				return i;
-			}
-		}
-		return len;
-	}
-
-	/**
-	 * Return the maximum index of where the specified comparable object
-	 * should be inserted into the specified sorted array and still keep
-	 * the array sorted.
-	 */
-	public static <E> int insertionIndexOf(E[] sortedArray, E value, Comparator<? super E> comparator) {
-		int len = sortedArray.length;
-		for (int i = 0; i < len; i++) {
-			if (comparator.compare(value, sortedArray[i]) < 0) {
-				return i;
-			}
-		}
-		return len;
-	}
-
-	/**
-	 * Return a one-use Iterable for the Iterator given.
-	 * Throws an IllegalStateException if iterable() is called more than once.
-	 * As such, this utility should only be used in one-use situations, such as
-	 * a "for" loop.
-	 */
-	public static <E> Iterable<E> iterable(Iterator<? extends E> iterator) {
-		return new SingleUseIterable<E>(iterator);
-	}
-
-	/**
-	 * Return an iterable on the elements in the specified array.
-	 * java.util.Arrays#iterable(Object[] array)
-	 */
-	public static <E> Iterable<E> iterable(E... array) {
-		return Arrays.asList(array);
-	}
-
-	/**
-	 * Return an iterator on the elements in the specified array.
-	 * java.util.Arrays#iterator(Object[] array)
-	 */
-	public static <E> Iterator<E> iterator(E... array) {
-		return new ArrayIterator<E>(array);
-	}
-
-	/**
-	 * Return the index of the last occurrence of the
-	 * specified element in the specified iterator,
-	 * or return -1 if there is no such index.
-	 * java.util.Iterator#lastIndexOf(Object o)
-	 */
-	public static int lastIndexOf(Iterator<?> iterator, Object value) {
-		return (iterator.hasNext()) ? list(iterator).lastIndexOf(value) : -1;
-	}
-
-	/**
-	 * Return the index of the last occurrence of the
-	 * specified element in the specified iterator,
-	 * or return -1 if there is no such index.
-	 * java.util.Iterator#lastIndexOf(Object o)
-	 */
-	public static int lastIndexOf(Iterator<?> iterator, int size, Object value) {
-		return (iterator.hasNext()) ? list(iterator, size).lastIndexOf(value) : -1;
-	}
-
-	/**
-	 * Return the index of the last occurrence of the
-	 * specified element in the specified array,
-	 * or return -1 if there is no such index.
-	 * java.util.Arrays#lastIndexOf(Object[] array, Object o)
-	 */
-	public static int lastIndexOf(Object[] array, Object value) {
-		int len = array.length;
-		if (value == null) {
-			for (int i = len; i-- > 0; ) {
-				if (array[i] == null) {
-					return i;
-				}
-			}
-		} else {
-			for (int i = len; i-- > 0; ) {
-				if (value.equals(array[i])) {
-					return i;
-				}
-			}
-		}
-		return -1;
-	}
-
-	/**
-	 * Return the index of the last occurrence of the
-	 * specified element in the specified array,
-	 * or return -1 if there is no such index.
-	 * java.util.Arrays#lastIndexOf(char[] array, char value)
-	 */
-	public static int lastIndexOf(char[] array, char value) {
-		for (int i = array.length; i-- > 0; ) {
-			if (array[i] == value) {
-				return i;
-			}
-		}
-		return -1;
-	}
-
-	/**
-	 * Return the index of the last occurrence of the
-	 * specified element in the specified array,
-	 * or return -1 if there is no such index.
-	 * java.util.Arrays#lastIndexOf(int[] array, int value)
-	 */
-	public static int lastIndexOf(int[] array, int value) {
-		for (int i = array.length; i-- > 0; ) {
-			if (array[i] == value) {
-				return i;
-			}
-		}
-		return -1;
-	}
-
-	/**
-	 * Return a list corresponding to the specified iterable.
-	 * java.lang.Iterable#toList()
-	 */
-	public static <E> ArrayList<E> list(Iterable<? extends E> iterable) {
-		return list(iterable.iterator());
-	}
-
-	/**
-	 * Return a list corresponding to the specified iterable.
-	 * java.lang.Iterable#toList()
-	 */
-	public static <E> ArrayList<E> list(Iterable<? extends E> iterable, int size) {
-		return list(iterable.iterator(), size);
-	}
-
-	/**
-	 * Return a list corresponding to the specified iterator.
-	 * java.util.Iterator#toList()
-	 */
-	public static <E> ArrayList<E> list(Iterator<? extends E> iterator) {
-		return list(iterator, new ArrayList<E>());
-	}
-
-	/**
-	 * Return a list corresponding to the specified iterator.
-	 * java.util.Iterator#toList()
-	 */
-	public static <E> ArrayList<E> list(Iterator<? extends E> iterator, int size) {
-		return list(iterator, new ArrayList<E>(size));
-	}
-
-	private static <E> ArrayList<E> list(Iterator<? extends E> iterator, ArrayList<E> list) {
-		while (iterator.hasNext()) {
-			list.add(iterator.next());
-		}
-		return list;
-	}
-
-	/**
-	 * Return a list corresponding to the specified array.
-	 * Unlike java.util.Arrays.asList(Object[]), the list
-	 * is modifiable and is not backed by the array.
-	 */
-	public static <E> ArrayList<E> list(E... array) {
-		ArrayList<E> list = new ArrayList<E>(array.length);
-		for (E item : array) {
-			list.add(item);
-		}
-		return list;
-	}
-
-	/**
-	 * Return a list iterator for the specified array.
-	 * java.util.Arrays#listIterator(Object[] array)
-	 */
-	public static <E> ListIterator<E> listIterator(E... array) {
-		return listIterator(array, 0);
-	}
-
-	/**
-	 * Return a list iterator for the specified array
-	 * starting at the specified position in the array.
-	 * java.util.Arrays#listIterator(Object[] array, int index)
-	 */
-	public static <E> ListIterator<E> listIterator(E[] array, int index) {
-		return Arrays.asList(array).listIterator(index);
-	}
-
-	/**
-	 * Return the character from the specified array with the maximum value.
-	 * java.util.Arrays#max(char[] array)
-	 */
-	public static char max(char... array) {
-		int len = array.length;
-		if (len == 0) {
-			throw new IndexOutOfBoundsException();
-		}
-		char max = array[0];
-		// start at 1
-		for (int i = 1; i < len; i++) {
-			char next = array[i];
-			if (next > max) {
-				max = next;
-			}
-		}
-		return max;
-	}
-
-	/**
-	 * Return the integer from the specified array with the maximum value.
-	 * java.util.Arrays#max(int[] array)
-	 */
-	public static int max(int... array) {
-		int len = array.length;
-		if (len == 0) {
-			throw new IndexOutOfBoundsException();
-		}
-		int max = array[0];
-		// start at 1
-		for (int i = 1; i < len; i++) {
-			int next = array[i];
-			if (next > max) {
-				max = next;
-			}
-		}
-		return max;
-	}
-
-	/**
-	 * Return the character from the specified array with the minimum value.
-	 * java.util.Arrays#min(char[] array)
-	 */
-	public static char min(char... array) {
-		int len = array.length;
-		if (len == 0) {
-			throw new IndexOutOfBoundsException();
-		}
-		char min = array[0];
-		// start at 1
-		for (int i = 1; i < len; i++) {
-			char next = array[i];
-			if (next < min) {
-				min = next;
-			}
-		}
-		return min;
-	}
-
-	/**
-	 * Return the integer from the specified array with the minimum value.
-	 * java.util.Arrays#min(int[] array)
-	 */
-	public static int min(int... array) {
-		int len = array.length;
-		if (len == 0) {
-			throw new IndexOutOfBoundsException();
-		}
-		int min = array[0];
-		// start at 1
-		for (int i = 1; i < len; i++) {
-			int next = array[i];
-			if (next < min) {
-				min = next;
-			}
-		}
-		return min;
-	}
-
-	/**
-	 * Move an element from the specified source index to the specified target
-	 * index. Return the altered array.
-	 * java.util.Arrays#move(Object[] array, int targetIndex, int sourceIndex)
-	 */
-	public static <E> E[] move(E[] array, int targetIndex, int sourceIndex) {
-		return (targetIndex == sourceIndex) ? array : move_(array, targetIndex, sourceIndex);
-	}
-
-	/**
-	 * assume targetIndex != sourceIndex
-	 */
-	private static <E> E[] move_(E[] array, int targetIndex, int sourceIndex) {
-		E temp = array[sourceIndex];
-		if (targetIndex < sourceIndex) {
-			System.arraycopy(array, targetIndex, array, targetIndex + 1, sourceIndex - targetIndex);
-		} else {
-			System.arraycopy(array, sourceIndex + 1, array, sourceIndex, targetIndex - sourceIndex);
-		}
-		array[targetIndex] = temp;
-		return array;
-	}
-
-	/**
-	 * Move elements from the specified source index to the specified target
-	 * index. Return the altered array.
-	 * java.util.Arrays#move(Object[] array, int targetIndex, int sourceIndex, int length)
-	 */
-	public static <E> E[] move(E[] array, int targetIndex, int sourceIndex, int length) {
-		if ((targetIndex == sourceIndex) || (length == 0)) {
-			return array;
-		}
-		if (length == 1) {
-			return move_(array, targetIndex, sourceIndex);
-		}
-		E[] temp = newArray(array, length);
-		System.arraycopy(array, sourceIndex, temp, 0, length);
-		if (targetIndex < sourceIndex) {
-			System.arraycopy(array, targetIndex, array, targetIndex + length, sourceIndex - targetIndex);
-		} else {
-			System.arraycopy(array, sourceIndex + length, array, sourceIndex, targetIndex - sourceIndex);
-		}
-		System.arraycopy(temp, 0, array, targetIndex, length);
-		return array;
-	}
-
-	/**
-	 * Move an element from the specified source index to the specified target
-	 * index. Return the altered array.
-	 * java.util.Arrays#move(int[] array, int targetIndex, int sourceIndex)
-	 */
-	public static int[] move(int[] array, int targetIndex, int sourceIndex) {
-		return (targetIndex == sourceIndex) ? array : move_(array, targetIndex, sourceIndex);
-	}
-
-	/**
-	 * assume targetIndex != sourceIndex
-	 */
-	private static int[] move_(int[] array, int targetIndex, int sourceIndex) {
-		int temp = array[sourceIndex];
-		if (targetIndex < sourceIndex) {
-			System.arraycopy(array, targetIndex, array, targetIndex + 1, sourceIndex - targetIndex);
-		} else {
-			System.arraycopy(array, sourceIndex + 1, array, sourceIndex, targetIndex - sourceIndex);
-		}
-		array[targetIndex] = temp;
-		return array;
-	}
-
-	/**
-	 * Move elements from the specified source index to the specified target
-	 * index. Return the altered array.
-	 * java.util.Arrays#move(int[] array, int targetIndex, int sourceIndex, int length)
-	 */
-	public static int[] move(int[] array, int targetIndex, int sourceIndex, int length) {
-		if ((targetIndex == sourceIndex) || (length == 0)) {
-			return array;
-		}
-		if (length == 1) {
-			return move_(array, targetIndex, sourceIndex);
-		}
-		int[] temp = new int[length];
-		System.arraycopy(array, sourceIndex, temp, 0, length);
-		if (targetIndex < sourceIndex) {
-			System.arraycopy(array, targetIndex, array, targetIndex + length, sourceIndex - targetIndex);
-		} else {
-			System.arraycopy(array, sourceIndex + length, array, sourceIndex, targetIndex - sourceIndex);
-		}
-		System.arraycopy(temp, 0, array, targetIndex, length);
-		return array;
-	}
-
-	/**
-	 * Move an element from the specified source index to the specified target
-	 * index. Return the altered array.
-	 * java.util.Arrays#move(char[] array, int targetIndex, int sourceIndex)
-	 */
-	public static char[] move(char[] array, int targetIndex, int sourceIndex) {
-		return (targetIndex == sourceIndex) ? array : move_(array, targetIndex, sourceIndex);
-	}
-
-	/**
-	 * assume targetIndex != sourceIndex
-	 */
-	private static char[] move_(char[] array, int targetIndex, int sourceIndex) {
-		char temp = array[sourceIndex];
-		if (targetIndex < sourceIndex) {
-			System.arraycopy(array, targetIndex, array, targetIndex + 1, sourceIndex - targetIndex);
-		} else {
-			System.arraycopy(array, sourceIndex + 1, array, sourceIndex, targetIndex - sourceIndex);
-		}
-		array[targetIndex] = temp;
-		return array;
-	}
-
-	/**
-	 * Move elements from the specified source index to the specified target
-	 * index. Return the altered array.
-	 * java.util.Arrays#move(char[] array, int targetIndex, int sourceIndex, int length)
-	 */
-	public static char[] move(char[] array, int targetIndex, int sourceIndex, int length) {
-		if ((targetIndex == sourceIndex) || (length == 0)) {
-			return array;
-		}
-		if (length == 1) {
-			return move_(array, targetIndex, sourceIndex);
-		}
-		char[] temp = new char[length];
-		System.arraycopy(array, sourceIndex, temp, 0, length);
-		if (targetIndex < sourceIndex) {
-			System.arraycopy(array, targetIndex, array, targetIndex + length, sourceIndex - targetIndex);
-		} else {
-			System.arraycopy(array, sourceIndex + length, array, sourceIndex, targetIndex - sourceIndex);
-		}
-		System.arraycopy(temp, 0, array, targetIndex, length);
-		return array;
-	}
-
-	/**
-	 * Move an element from the specified source index to the specified target
-	 * index. Return the altered list.
-	 * java.util.List#move(int targetIndex, int sourceIndex)
-	 */
-	public static <E> List<E> move(List<E> list, int targetIndex, int sourceIndex) {
-		return (targetIndex == sourceIndex) ? list : move_(list, targetIndex, sourceIndex);
-	}
-
-	/**
-	 * assume targetIndex != sourceIndex
-	 */
-	private static <E> List<E> move_(List<E> list, int targetIndex, int sourceIndex) {
-		if (list instanceof RandomAccess) {
-			// move elements, leaving the list in place
-			E temp = list.get(sourceIndex);
-			if (targetIndex < sourceIndex) {
-				for (int i = sourceIndex; i-- > targetIndex; ) {
-					list.set(i + 1, list.get(i));
-				}
-			} else {
-				for (int i = sourceIndex; i < targetIndex; i++) {
-					list.set(i, list.get(i + 1));
-				}
-			}
-			list.set(targetIndex, temp);
-		} else {
-			// remove the element and re-add it at the target index
-			list.add(targetIndex, list.remove(sourceIndex));
-		}
-		return list;
-	}
-
-	/**
-	 * Move elements from the specified source index to the specified target
-	 * index. Return the altered list.
-	 * java.util.List#move(int targetIndex, int sourceIndex, int length)
-	 */
-	public static <E> List<E> move(List<E> list, int targetIndex, int sourceIndex, int length) {
-		if ((targetIndex == sourceIndex) || (length == 0)) {
-			return list;
-		}
-		if (length == 1) {
-			return move_(list, targetIndex, sourceIndex);
-		}
-		if (list instanceof RandomAccess) {
-			// move elements, leaving the list in place
-			ArrayList<E> temp = new ArrayList<E>(list.subList(sourceIndex, sourceIndex + length));
-			if (targetIndex < sourceIndex) {
-				for (int i = sourceIndex; i-- > targetIndex; ) {
-					list.set(i + length, list.get(i));
-				}
-			} else {
-				for (int i = sourceIndex; i < targetIndex; i++) {
-					list.set(i, list.get(i + length));
-				}
-			}
-			for (int i = 0; i < length; i++) {
-				list.set(targetIndex + i, temp.get(i));
-			}
-		} else {
-			// remove the elements and re-add them at the target index
-			list.addAll(targetIndex, removeElementsAtIndex(list, sourceIndex, length));
-		}
-		return list;
-	}
-
-	/**
-	 * Replace all occurrences of the specified old value with
-	 * the specified new value.
-	 * java.util.Arrays#replaceAll(Object[] array, Object oldValue, Object newValue)
-	 */
-	public static <E> E[] replaceAll(E[] array, Object oldValue, E newValue) {
-		if (oldValue == null) {
-			for (int i = array.length; i-- > 0; ) {
-				if (array[i] == null) {
-					array[i] = newValue;
-				}
-			}
-		} else {
-			for (int i = array.length; i-- > 0; ) {
-				if (oldValue.equals(array[i])) {
-					array[i] = newValue;
-				}
-			}
-		}
-		return array;
-	}
-
-	/**
-	 * Replace all occurrences of the specified old value with
-	 * the specified new value.
-	 * java.util.Arrays#replaceAll(int[] array, int oldValue, int newValue)
-	 */
-	public static int[] replaceAll(int[] array, int oldValue, int newValue) {
-		for (int i = array.length; i-- > 0; ) {
-			if (array[i] == oldValue) {
-				array[i] = newValue;
-			}
-		}
-		return array;
-	}
-
-	/**
-	 * Replace all occurrences of the specified old value with
-	 * the specified new value.
-	 * java.util.Arrays#replaceAll(char[] array, char oldValue, char newValue)
-	 */
-	public static char[] replaceAll(char[] array, char oldValue, char newValue) {
-		for (int i = array.length; i-- > 0; ) {
-			if (array[i] == oldValue) {
-				array[i] = newValue;
-			}
-		}
-		return array;
-	}
-
-	/**
-	 * Return a new array that contains the elements in the
-	 * specified array with the specified element removed.
-	 * java.util.Arrays#remove(Object[] array, Object value)
-	 */
-	public static <E> E[] remove(E[] array, Object value) {
-		return removeElementAtIndex(array, indexOf(array, value));
-	}
-
-	/**
-	 * Return a new array that contains the elements in the
-	 * specified array with the specified element removed.
-	 * java.util.Arrays#remove(char[] array, char value)
-	 */
-	public static char[] remove(char[] array, char value) {
-		return removeElementAtIndex(array, indexOf(array, value));
-	}
-
-	/**
-	 * Return a new array that contains the elements in the
-	 * specified array with the specified element removed.
-	 * java.util.Arrays#remove(int[] array, int value)
-	 */
-	public static int[] remove(int[] array, int value) {
-		return removeElementAtIndex(array, indexOf(array, value));
-	}
-
-	/**
-	 * Remove all the elements returned by the specified iterable
-	 * from the specified collection.
-	 * Return whether the collection changed as a result.
-	 * java.util.Collection#removeAll(java.lang.Iterable iterable)
-	 */
-	public static boolean removeAll(Collection<?> collection, Iterable<?> iterable) {
-		return removeAll(collection, iterable.iterator());
-	}
-
-	/**
-	 * Remove all the elements returned by the specified iterable
-	 * from the specified collection.
-	 * Return whether the collection changed as a result.
-	 * java.util.Collection#removeAll(java.lang.Iterable iterable)
-	 */
-	public static boolean removeAll(Collection<?> collection, Iterable<?> iterable, int size) {
-		return removeAll(collection, iterable.iterator(), size);
-	}
-
-	/**
-	 * Remove all the elements returned by the specified iterator
-	 * from the specified collection.
-	 * Return whether the collection changed as a result.
-	 * java.util.Collection#removeAll(java.util.Iterator iterator)
-	 */
-	public static boolean removeAll(Collection<?> collection, Iterator<?> iterator) {
-		return (iterator.hasNext()) ? collection.removeAll(set(iterator)) : false;
-	}
-
-	/**
-	 * Remove all the elements returned by the specified iterator
-	 * from the specified collection.
-	 * Return whether the collection changed as a result.
-	 * java.util.Collection#removeAll(java.util.Iterator iterator)
-	 */
-	public static boolean removeAll(Collection<?> collection, Iterator<?> iterator, int size) {
-		return (iterator.hasNext()) ? collection.removeAll(set(iterator, size)) : false;
-	}
-
-	/**
-	 * Remove all the elements in the specified array
-	 * from the specified collection.
-	 * Return whether the collection changed as a result.
-	 * java.util.Collection#removeAll(Object[] array)
-	 */
-	public static boolean removeAll(Collection<?> collection, Object[] array) {
-		return collection.removeAll(set(array));
-	}
-
-	/**
-	 * Remove from the specified array all the elements in
-	 * the specified iterable and return the result.
-	 * java.util.Arrays#removeAll(Object[] array, Iterable iterable)
-	 */
-	public static <E> E[] removeAll(E[] array, Iterable<?> iterable) {
-		return removeAll(array, iterable.iterator());
-	}
-
-	/**
-	 * Remove from the specified array all the elements in
-	 * the specified iterable and return the result.
-	 * java.util.Arrays#removeAll(Object[] array, Iterable iterable)
-	 */
-	public static <E> E[] removeAll(E[] array, Iterable<?> iterable, int size) {
-		return removeAll(array, iterable.iterator(), size);
-	}
-
-	/**
-	 * Remove from the specified array all the elements in
-	 * the specified iterator and return the result.
-	 * java.util.Arrays#removeAll(Object[] array, Iterator iterator)
-	 */
-	public static <E> E[] removeAll(E[] array, Iterator<?> iterator) {
-		return (iterator.hasNext()) ? removeAll_(array, set(iterator)) : array;
-	}
-
-	/**
-	 * Remove from the specified array all the elements in
-	 * the specified iterator and return the result.
-	 * java.util.Arrays#removeAll(Object[] array, Iterator iterator)
-	 */
-	public static <E> E[] removeAll(E[] array, Iterator<?> iterator, int size) {
-		return (iterator.hasNext()) ? removeAll_(array, set(iterator, size)) : array;
-	}
-
-	/**
-	 * Remove from the specified array all the elements in
-	 * the specified collection and return the result.
-	 * java.util.Arrays#removeAll(Object[] array, Collection collection)
-	 */
-	public static <E> E[] removeAll(E[] array, Collection<?> collection) {
-		return (collection.isEmpty()) ? array : removeAll_(array, collection);
-	}
-
-	/**
-	 * assume the collection is non-empty
-	 */
-	private static <E> E[] removeAll_(E[] array, Collection<?> collection) {
-		int arrayLength = array.length;
-		return (arrayLength == 0) ? array : removeAll(array, collection, arrayLength);
-	}
-
-	/**
-	 * assume the collection is non-empty and arrayLength > 0
-	 */
-	private static <E> E[] removeAll(E[] array, Collection<?> collection, int arrayLength) {
-		int[] indices = new int[arrayLength];
-		int j = 0;
-		for (int i = 0; i < arrayLength; i++) {
-			if ( ! collection.contains(array[i])) {
-				indices[j++] = i;
-			}
-		}
-		if (j == arrayLength) {
-			return array;  // nothing was removed
-		}
-		E[] result = newArray(array, j);
-		int resultLength = result.length;
-		for (int i = 0; i < resultLength; i++) {
-			result[i] = array[indices[i]];
-		}
-		return result;
-	}
-
-	/**
-	 * Remove from the first specified array all the elements in
-	 * the second specified array and return the result.
-	 * java.util.Arrays#removeAll(Object[] array1, Object[] array2)
-	 */
-	public static <E> E[] removeAll(E[] array1, Object[] array2) {
-		// convert to a bag to take advantage of hashed look-up
-		return (array2.length == 0) ? array1 : removeAll_(array1, set(array2));
-	}
-
-	/**
-	 * Remove from the first specified array all the elements in
-	 * the second specified array and return the result.
-	 * java.util.Arrays#removeAll(char[] array1, char[] array2)
-	 */
-	public static char[] removeAll(char[] array1, char[] array2) {
-		if (array2.length == 0) {
-			return array1;
-		}
-		int array1Length = array1.length;
-		if (array1Length == 0) {
-			return array1;
-		}
-		int[] indices = new int[array1Length];
-		int j = 0;
-		for (int i = 0; i < array1Length; i++) {
-			if ( ! contains(array2, array1[i])) {
-				indices[j++] = i;
-			}
-		}
-		if (j == array1Length) {
-			return array1;  // nothing was removed
-		}
-		char[] result = new char[j];
-		int resultLength = result.length;
-		for (int i = 0; i < resultLength; i++) {
-			result[i] = array1[indices[i]];
-		}
-		return result;
-	}
-
-	/**
-	 * Remove from the first specified array all the elements in
-	 * the second specified array and return the result.
-	 * java.util.Arrays#removeAll(int[] array1, int[] array2)
-	 */
-	public static int[] removeAll(int[] array1, int[] array2) {
-		if (array2.length == 0) {
-			return array1;
-		}
-		int array1Length = array1.length;
-		if (array1Length == 0) {
-			return array1;
-		}
-		int[] indices = new int[array1Length];
-		int j = 0;
-		for (int i = 0; i < array1Length; i++) {
-			if ( ! contains(array2, array1[i])) {
-				indices[j++] = i;
-			}
-		}
-		if (j == array1Length) {
-			return array1;  // nothing was removed
-		}
-		int[] result = new int[j];
-		int resultLength = result.length;
-		for (int i = 0; i < resultLength; i++) {
-			result[i] = array1[indices[i]];
-		}
-		return result;
-	}
-
-	/**
-	 * Remove all occurrences of the specified element
-	 * from the specified collection.
-	 * Return whether the collection changed as a result.
-	 * java.util.Collection#removeAllOccurrences(Object value)
-	 */
-	public static boolean removeAllOccurrences(Collection<?> collection, Object value) {
-		boolean modified = false;
-		Iterator<?> stream = collection.iterator();
-		if (value == null) {
-			while (stream.hasNext()) {
-				if (stream.next() == null) {
-					stream.remove();
-					modified = true;
-				}
-			}
-		} else {
-			while (stream.hasNext()) {
-				if (value.equals(stream.next())) {
-					stream.remove();
-					modified = true;
-				}
-			}
-		}
-		return modified;
-	}
-
-	/**
-	 * Remove from the specified array all occurrences of
-	 * the specified element and return the result.
-	 * java.util.Arrays#removeAllOccurrences(Object[] array, Object value)
-	 */
-	public static <E> E[] removeAllOccurrences(E[] array, Object value) {
-		int arrayLength = array.length;
-		if (arrayLength == 0) {
-			return array;
-		}
-		int[] indices = new int[arrayLength];
-		int j = 0;
-		if (value == null) {
-			for (int i = arrayLength; i-- > 0; ) {
-				if (array[i] != null) {
-					indices[j++] = i;
-				}
-			}
-		} else {
-			for (int i = array.length; i-- > 0; ) {
-				if ( ! value.equals(array[i])) {
-					indices[j++] = i;
-				}
-			}
-		}
-		if (j == arrayLength) {
-			return array;  // nothing was removed
-		}
-		E[] result = newArray(array, j);
-		int resultLength = result.length;
-		for (int i = 0; i < resultLength; i++) {
-			result[i] = array[indices[i]];
-		}
-		return result;
-	}
-
-	/**
-	 * Remove from the specified array all occurrences of
-	 * the specified element and return the result.
-	 * java.util.Arrays#removeAllOccurrences(char[] array, char value)
-	 */
-	public static char[] removeAllOccurrences(char[] array, char value) {
-		int arrayLength = array.length;
-		if (arrayLength == 0) {
-			return array;
-		}
-		int[] indices = new int[arrayLength];
-		int j = 0;
-		for (int i = arrayLength; i-- > 0; ) {
-			if (array[i] != value) {
-				indices[j++] = i;
-			}
-		}
-		if (j == arrayLength) {
-			return array;  // nothing was removed
-		}
-		char[] result = new char[j];
-		int resultLength = result.length;
-		for (int i = 0; i < resultLength; i++) {
-			result[i] = array[indices[i]];
-		}
-		return result;
-	}
-
-	/**
-	 * Remove from the specified array all occurrences of
-	 * the specified element and return the result.
-	 * java.util.Arrays#removeAllOccurrences(int[] array, int value)
-	 */
-	public static int[] removeAllOccurrences(int[] array, int value) {
-		int arrayLength = array.length;
-		if (arrayLength == 0) {
-			return array;
-		}
-		int[] indices = new int[arrayLength];
-		int j = 0;
-		for (int i = arrayLength; i-- > 0; ) {
-			if (array[i] != value) {
-				indices[j++] = i;
-			}
-		}
-		if (j == arrayLength) {
-			return array;  // nothing was removed
-		}
-		int[] result = new int[j];
-		int resultLength = result.length;
-		for (int i = 0; i < resultLength; i++) {
-			result[i] = array[indices[i]];
-		}
-		return result;
-	}
-
-	/**
-	 * Return a new array that contains the elements in the
-	 * specified array with the specified element removed.
-	 * java.util.Arrays#removeElementAtIndex(Object[] array, int index)
-	 */
-	public static <E> E[] removeElementAtIndex(E[] array, int index) {
-		return removeElementsAtIndex(array, index, 1);
-	}
-
-	/**
-	 * Return a new array that contains the elements in the
-	 * specified array with the specified element removed.
-	 * java.util.Arrays#removeElementAtIndex(char[] array, int index)
-	 */
-	public static char[] removeElementAtIndex(char[] array, int index) {
-		return removeElementsAtIndex(array, index, 1);
-	}
-
-	/**
-	 * Return a new array that contains the elements in the
-	 * specified array with the specified element removed.
-	 * java.util.Arrays#removeElementAtIndex(int[] array, int index)
-	 */
-	public static int[] removeElementAtIndex(int[] array, int index) {
-		return removeElementsAtIndex(array, index, 1);
-	}
-
-	/**
-	 * Remove the elements at the specified index.
-	 * Return the removed elements.
-	 * java.util.List#remove(int index, int length)
-	 */
-	public static <E> ArrayList<E> removeElementsAtIndex(List<E> list, int index, int length) {
-		List<E> subList = list.subList(index, index + length);
-		ArrayList<E> result = new ArrayList<E>(subList);
-		subList.clear();
-		return result;
-	}
-
-	/**
-	 * Return a new array that contains the elements in the
-	 * specified array with the specified elements removed.
-	 * java.util.Arrays#removeElementsAtIndex(Object[] array, int index, int length)
-	 */
-	public static <E> E[] removeElementsAtIndex(E[] array, int index, int length) {
-		int arrayLength = array.length;
-		int newLength = arrayLength - length;
-		E[] result = newArray(array, newLength);
-		if ((newLength == 0) && (index == 0)) {
-			return result;  // performance tweak
-		}
-		System.arraycopy(array, 0, result, 0, index);
-		System.arraycopy(array, index + length, result, index, newLength - index);
-		return result;
-	}
-
-	/**
-	 * Return a new array that contains the elements in the
-	 * specified array with the specified elements removed.
-	 * java.util.Arrays#removeElementAtIndex(char[] array, int index, int length)
-	 */
-	public static char[] removeElementsAtIndex(char[] array, int index, int length) {
-		int arrayLength = array.length;
-		int newLength = arrayLength - length;
-		if ((newLength == 0) && (index == 0)) {
-			return EMPTY_CHAR_ARRAY;  // performance tweak
-		}
-		char[] result = new char[newLength];
-		System.arraycopy(array, 0, result, 0, index);
-		System.arraycopy(array, index + length, result, index, newLength - index);
-		return result;
-	}
-	private static final char[] EMPTY_CHAR_ARRAY = new char[0];
-
-	/**
-	 * Return a new array that contains the elements in the
-	 * specified array with the specified elements removed.
-	 * java.util.Arrays#removeElementAtIndex(int[] array, int index, int length)
-	 */
-	public static int[] removeElementsAtIndex(int[] array, int index, int length) {
-		int arrayLength = array.length;
-		int newLength = arrayLength - length;
-		if ((newLength == 0) && (index == 0)) {
-			return EMPTY_INT_ARRAY;  // performance tweak
-		}
-		int[] result = new int[newLength];
-		System.arraycopy(array, 0, result, 0, index);
-		System.arraycopy(array, index + length, result, index, newLength - index);
-		return result;
-	}
-	private static final int[] EMPTY_INT_ARRAY = new int[0];
-
-	/**
-	 * Remove any duplicate elements from the specified array,
-	 * while maintaining the order.
-	 */
-	public static <E> E[] removeDuplicateElements(E... array) {
-		int len = array.length;
-		if ((len == 0) || (len == 1)) {
-			return array;
-		}
-		ArrayList<E> temp = list(array);
-		return removeDuplicateElements(temp, len) ?
-					temp.toArray(newArray(array, temp.size()))
-				:
-					array;
-	}
-
-	/**
-	 * Remove any duplicate elements from the specified list,
-	 * while maintaining the order.
-	 * Return whether the list changed as a result.
-	 */
-	public static <E> boolean removeDuplicateElements(List<E> list) {
-		int size = list.size();
-		if ((size == 0) || (size == 1)) {
-			return false;
-		}
-		return removeDuplicateElements(list, size);
-	}
-
-	/**
-	 * assume list is non-empty
-	 */
-	private static <E> boolean removeDuplicateElements(List<E> list, int size) {
-		LinkedHashSet<E> temp = new LinkedHashSet<E>(size);		// take advantage of hashed look-up
-		boolean changed = false;
-		for (E item : list) {
-			if ( ! temp.add(item)) {
-				changed = true;  // duplicate item
-			}
-		}
-		if (changed) {
-			int i = 0;
-			for (Iterator<E> stream = temp.iterator(); stream.hasNext(); ) {
-				list.set(i, stream.next());
-				i++;
-			}
-			int tempSize = temp.size();
-			for (i = list.size(); i-- > tempSize; ) {
-				list.remove(i);  // pull off the end
-			}
-		}
-		return changed;
-	}
-
-	/**
-	 * Retain only the elements in the specified iterable
-	 * in the specified collection.
-	 * Return whether the collection changed as a result.
-	 * java.util.Collection#retainAll(java.lang.Iterable iterable)
-	 */
-	public static boolean retainAll(Collection<?> collection, Iterable<?> iterable) {
-		return retainAll(collection, iterable.iterator());
-	}
-
-	/**
-	 * Retain only the elements in the specified iterable
-	 * in the specified collection.
-	 * Return whether the collection changed as a result.
-	 * java.util.Collection#retainAll(java.lang.Iterable iterable)
-	 */
-	public static boolean retainAll(Collection<?> collection, Iterable<?> iterable, int size) {
-		return retainAll(collection, iterable.iterator(), size);
-	}
-
-	/**
-	 * Retain only the elements in the specified iterator
-	 * in the specified collection.
-	 * Return whether the collection changed as a result.
-	 * java.util.Collection#retainAll(java.util.Iterator iterator)
-	 */
-	public static boolean retainAll(Collection<?> collection, Iterator<?> iterator) {
-		if (iterator.hasNext()) {
-			return collection.retainAll(set(iterator));
-		}
-		if (collection.isEmpty()) {
-			return false;
-		}
-		collection.clear();
-		return true;
-	}
-
-	/**
-	 * Retain only the elements in the specified iterator
-	 * in the specified collection.
-	 * Return whether the collection changed as a result.
-	 * java.util.Collection#retainAll(java.util.Iterator iterator)
-	 */
-	public static boolean retainAll(Collection<?> collection, Iterator<?> iterator, int size) {
-		if (iterator.hasNext()) {
-			return collection.retainAll(set(iterator, size));
-		}
-		if (collection.isEmpty()) {
-			return false;
-		}
-		collection.clear();
-		return true;
-	}
-
-	/**
-	 * Retain only the elements in the specified array
-	 * in the specified collection.
-	 * Return whether the collection changed as a result.
-	 * java.util.Collection#retainAll(Object[] array)
-	 */
-	public static boolean retainAll(Collection<?> collection, Object[] array) {
-		if (array.length > 0) {
-			return collection.retainAll(set(array));
-		}
-		if (collection.isEmpty()) {
-			return false;
-		}
-		collection.clear();
-		return true;
-	}
-
-	/**
-	 * Retain in the specified array all the elements in
-	 * the specified iterable and return the result.
-	 * java.util.Arrays#retainAll(Object[] array, Iterable iterable)
-	 */
-	public static <E> E[] retainAll(E[] array, Iterable<?> iterable) {
-		int arrayLength = array.length;
-		return (arrayLength == 0) ? array : retainAll(array, arrayLength, iterable.iterator());
-	}
-
-	/**
-	 * Retain in the specified array all the elements in
-	 * the specified iterable and return the result.
-	 * java.util.Arrays#retainAll(Object[] array, Iterable iterable)
-	 */
-	public static <E> E[] retainAll(E[] array, Iterable<?> iterable, int size) {
-		int arrayLength = array.length;
-		return (arrayLength == 0) ? array : retainAll(array, arrayLength, iterable.iterator(), size);
-	}
-
-	/**
-	 * Retain in the specified array all the elements in
-	 * the specified iterator and return the result.
-	 * java.util.Arrays#retainAll(Object[] array, Iterator iterator)
-	 */
-	public static <E> E[] retainAll(E[] array, Iterator<?> iterator) {
-		int arrayLength = array.length;
-		return (arrayLength == 0) ? array : retainAll(array, arrayLength, iterator);
-	}
-
-	/**
-	 * Retain in the specified array all the elements in
-	 * the specified iterator and return the result.
-	 * java.util.Arrays#retainAll(Object[] array, Iterator iterator)
-	 */
-	public static <E> E[] retainAll(E[] array, Iterator<?> iterator, int size) {
-		int arrayLength = array.length;
-		return (arrayLength == 0) ? array : retainAll(array, arrayLength, iterator, size);
-	}
-
-	/**
-	 * assume arrayLength > 0
-	 */
-	private static <E> E[] retainAll(E[] array, int arrayLength, Iterator<?> iterator) {
-		return (iterator.hasNext()) ?
-				retainAll_(array, set(iterator), arrayLength)
-			:
-				newArray(array, 0);
-	}
-
-	/**
-	 * assume arrayLength > 0
-	 */
-	private static <E> E[] retainAll(E[] array, int arrayLength, Iterator<?> iterator, int iteratorSize) {
-		return (iterator.hasNext()) ?
-				retainAll_(array, set(iterator, iteratorSize), arrayLength)
-			:
-				newArray(array, 0);
-	}
-
-	/**
-	 * Retain in the specified array all the elements in
-	 * the specified collection and return the result.
-	 * java.util.Arrays#retainAll(Object[] array, Collection collection)
-	 */
-	public static <E> E[] retainAll(E[] array, Collection<?> collection) {
-		int arrayLength = array.length;
-		return (arrayLength == 0) ? array : retainAll(array, collection, arrayLength);
-	}
-
-	/**
-	 * assume arrayLength > 0
-	 */
-	private static <E> E[] retainAll(E[] array, Collection<?> collection, int arrayLength) {
-		return (collection.isEmpty()) ?
-				newArray(array, 0)
-			:
-				retainAll_(array, collection, arrayLength);
-	}
-
-	/**
-	 * assume collection is non-empty and arrayLength > 0
-	 */
-	private static <E> E[] retainAll_(E[] array, Collection<?> collection, int arrayLength) {
-		int[] indices = new int[arrayLength];
-		int j = 0;
-		for (int i = 0; i < arrayLength; i++) {
-			if (collection.contains(array[i])) {
-				indices[j++] = i;
-			}
-		}
-		if (j == arrayLength) {
-			return array;  // everything was retained
-		}
-		E[] result = newArray(array, j);
-		int resultLength = result.length;
-		for (int i = 0; i < resultLength; i++) {
-			result[i] = array[indices[i]];
-		}
-		return result;
-	}
-
-	/**
-	 * Remove from the first specified array all the elements in
-	 * the second specified array and return the result.
-	 * java.util.Arrays#retainAll(Object[] array1, Object[] array2)
-	 */
-	public static <E> E[] retainAll(E[] array1, Object[] array2) {
-		int array1Length = array1.length;
-		return (array2.length == 0) ?
-				(array1Length == 0) ? array1 : newArray(array1, 0)
-			:
-				retainAll(array1, set(array2), array1Length);
-	}
-
-	/**
-	 * Remove from the first specified array all the elements in
-	 * the second specified array and return the result.
-	 * java.util.Arrays#retainAll(char[] array1, char[] array2)
-	 */
-	public static char[] retainAll(char[] array1, char[] array2) {
-		int array1Length = array1.length;
-		return (array1Length == 0) ? array1 : retainAll(array1, array2, array1Length);
-	}
-
-	/**
-	 * assume array1Length > 0
-	 */
-	private static char[] retainAll(char[] array1, char[] array2, int array1Length) {
-		int array2Length = array2.length;
-		return (array2Length == 0) ? EMPTY_CHAR_ARRAY : retainAll(array1, array2, array1Length, array2Length);
-	}
-
-	/**
-	 * assume array1Length > 0 and array2Length > 0
-	 */
-	private static char[] retainAll(char[] array1, char[] array2, int array1Length, int array2Length) {
-		int[] indices = new int[array1Length];
-		int j = 0;
-		for (int i = 0; i < array1Length; i++) {
-			if (contains(array2, array1[i], array2Length)) {
-				indices[j++] = i;
-			}
-		}
-		if (j == array1Length) {
-			return array1;  // everything was retained
-		}
-		char[] result = new char[j];
-		int resultLength = result.length;
-		for (int i = 0; i < resultLength; i++) {
-			result[i] = array1[indices[i]];
-		}
-		return result;
-	}
-
-	/**
-	 * Remove from the first specified array all the elements in
-	 * the second specified array and return the result.
-	 * java.util.Arrays#retainAll(int[] array1, int[] array2)
-	 */
-	public static int[] retainAll(int[] array1, int[] array2) {
-		int array1Length = array1.length;
-		return (array1Length == 0) ? array1 : retainAll(array1, array2, array1Length);
-	}
-
-	/**
-	 * assume array1Length > 0
-	 */
-	private static int[] retainAll(int[] array1, int[] array2, int array1Length) {
-		int array2Length = array2.length;
-		return (array2Length == 0) ? EMPTY_INT_ARRAY : retainAll(array1, array2, array1Length, array2Length);
-	}
-
-	/**
-	 * assume array1Length > 0 and array2Length > 0
-	 */
-	private static int[] retainAll(int[] array1, int[] array2, int array1Length, int array2Length) {
-		int[] indices = new int[array1Length];
-		int j = 0;
-		for (int i = 0; i < array1Length; i++) {
-			if (contains(array2, array1[i], array2Length)) {
-				indices[j++] = i;
-			}
-		}
-		if (j == array1Length) {
-			return array1;  // everything was retained
-		}
-		int[] result = new int[j];
-		int resultLength = result.length;
-		for (int i = 0; i < resultLength; i++) {
-			result[i] = array1[indices[i]];
-		}
-		return result;
-	}
-
-	/**
-	 * Return the array reversed.
-	 * java.util.Arrays.reverse(Object[] array)
-	 */
-	public static <E> E[] reverse(E... array) {
-		int len = array.length;
-		for (int i = 0, mid = len >> 1, j = len - 1; i < mid; i++, j--) {
-			swap(array, i, j);
-		}
-		return array;
-	}
-
-	/**
-	 * Return the array reversed.
-	 * java.util.Arrays.reverse(char[] array)
-	 */
-	public static char[] reverse(char... array) {
-		int len = array.length;
-		for (int i = 0, mid = len >> 1, j = len - 1; i < mid; i++, j--) {
-			swap(array, i, j);
-		}
-		return array;
-	}
-
-	/**
-	 * Return the array reversed.
-	 * java.util.Arrays.reverse(int[] array)
-	 */
-	public static int[] reverse(int... array) {
-		int len = array.length;
-		for (int i = 0, mid = len >> 1, j = len - 1; i < mid; i++, j--) {
-			swap(array, i, j);
-		}
-		return array;
-	}
-
-	/**
-	 * Return a list with entries in reverse order from those
-	 * returned by the specified iterable.
-	 */
-	public static <E> List<E> reverseList(Iterable<? extends E> iterable) {
-		return reverse(list(iterable));
-	}
-
-	/**
-	 * Return a list with entries in reverse order from those
-	 * returned by the specified iterable.
-	 */
-	public static <E> List<E> reverseList(Iterable<? extends E> iterable, int size) {
-		return reverse(list(iterable, size));
-	}
-
-	/**
-	 * Return a list with entries in reverse order from those
-	 * returned by the specified iterator.
-	 */
-	public static <E> List<E> reverseList(Iterator<? extends E> iterator) {
-		return reverse(list(iterator));
-	}
-
-	/**
-	 * Return a list with entries in reverse order from those
-	 * returned by the specified iterator.
-	 */
-	public static <E> List<E> reverseList(Iterator<? extends E> iterator, int size) {
-		return reverse(list(iterator, size));
-	}
-
-	/**
-	 * Return the rotated array after rotating it one position.
-	 * java.util.Arrays.rotate(Object[] array)
-	 */
-	public static <E> E[] rotate(E... array) {
-		return rotate(array, 1);
-	}
-
-	/**
-	 * Return the rotated array after rotating it the specified distance.
-	 * java.util.Arrays.rotate(Object[] array, int distance)
-	 */
-	public static <E> E[] rotate(E[] array, int distance) {
-		int len = array.length;
-		if ((len == 0) || (len == 1)) {
-			return array;
-		}
-		distance = distance % len;
-		if (distance < 0) {
-			distance += len;
-		}
-		if (distance == 0) {
-			return array;
-		}
-		for (int cycleStart = 0, nMoved = 0; nMoved != len; cycleStart++) {
-			E displaced = array[cycleStart];
-			int i = cycleStart;
-			do {
-				i += distance;
-				if (i >= len) {
-					i -= len;
-				}
-				E temp = array[i];
-				array[i] = displaced;
-				displaced = temp;
-				nMoved ++;
-			} while (i != cycleStart);
-		}
-		return array;
-	}
-
-	/**
-	 * Return the rotated array after rotating it one position.
-	 * java.util.Arrays.rotate(char[] array)
-	 */
-	public static char[] rotate(char... array) {
-		return rotate(array, 1);
-	}
-
-	/**
-	 * Return the rotated array after rotating it the specified distance.
-	 * java.util.Arrays.rotate(char[] array, int distance)
-	 */
-	public static char[] rotate(char[] array, int distance) {
-		int len = array.length;
-		if ((len == 0) || (len == 1)) {
-			return array;
-		}
-		distance = distance % len;
-		if (distance < 0) {
-			distance += len;
-		}
-		if (distance == 0) {
-			return array;
-		}
-		for (int cycleStart = 0, nMoved = 0; nMoved != len; cycleStart++) {
-			char displaced = array[cycleStart];
-			int i = cycleStart;
-			do {
-				i += distance;
-				if (i >= len) {
-					i -= len;
-				}
-				char temp = array[i];
-				array[i] = displaced;
-				displaced = temp;
-				nMoved ++;
-			} while (i != cycleStart);
-		}
-		return array;
-	}
-
-	/**
-	 * Return the rotated array after rotating it one position.
-	 * java.util.Arrays.rotate(int[] array)
-	 */
-	public static int[] rotate(int... array) {
-		return rotate(array, 1);
-	}
-
-	/**
-	 * Return the rotated array after rotating it the specified distance.
-	 * java.util.Arrays.rotate(int[] array, int distance)
-	 */
-	public static int[] rotate(int[] array, int distance) {
-		int len = array.length;
-		if ((len == 0) || (len == 1)) {
-			return array;
-		}
-		distance = distance % len;
-		if (distance < 0) {
-			distance += len;
-		}
-		if (distance == 0) {
-			return array;
-		}
-		for (int cycleStart = 0, nMoved = 0; nMoved != len; cycleStart++) {
-			int displaced = array[cycleStart];
-			int i = cycleStart;
-			do {
-				i += distance;
-				if (i >= len) {
-					i -= len;
-				}
-				int temp = array[i];
-				array[i] = displaced;
-				displaced = temp;
-				nMoved ++;
-			} while (i != cycleStart);
-		}
-		return array;
-	}
-
-	/**
-	 * Return a set corresponding to the specified iterable.
-	 * java.util.HashSet(java.lang.Iterable iterable)
-	 */
-	public static <E> HashSet<E> set(Iterable<? extends E> iterable) {
-		return set(iterable.iterator());
-	}
-
-	/**
-	 * Return a set corresponding to the specified iterable.
-	 * java.util.HashSet(java.lang.Iterable iterable)
-	 */
-	public static <E> HashSet<E> set(Iterable<? extends E> iterable, int size) {
-		return set(iterable.iterator(), size);
-	}
-
-	/**
-	 * Return a set corresponding to the specified iterator.
-	 * java.util.HashSet(java.util.Iterator iterator)
-	 */
-	public static <E> HashSet<E> set(Iterator<? extends E> iterator) {
-		return set(iterator, new HashSet<E>());
-	}
-
-	/**
-	 * Return a set corresponding to the specified iterator.
-	 * java.util.HashSet(java.util.Iterator iterator)
-	 */
-	public static <E> HashSet<E> set(Iterator<? extends E> iterator, int size) {
-		return set(iterator, new HashSet<E>(size));
-	}
-
-	private static <E> HashSet<E> set(Iterator<? extends E> iterator, HashSet<E> set) {
-		while (iterator.hasNext()) {
-			set.add(iterator.next());
-		}
-		return set;
-	}
-
-	/**
-	 * Return a set corresponding to the specified array.
-	 * java.util.HashSet(Object[] array)
-	 */
-	public static <E> HashSet<E> set(E... array) {
-		HashSet<E> set = new HashSet<E>(array.length);
-		for (E item : array) {
-			set.add(item);
-		}
-		return set;
-	}
-
-	private static final Random RANDOM = new Random();
-
-	/**
-	 * Return the array after "shuffling" it.
-	 * java.util.Arrays#shuffle(Object[] array)
-	 */
-	public static <E> E[] shuffle(E... array) {
-		return shuffle(array, RANDOM);
-	}
-
-	/**
-	 * Return the array after "shuffling" it.
-	 * java.util.Arrays#shuffle(Object[] array, Random r)
-	 */
-	public static <E> E[] shuffle(E[] array, Random random) {
-		int len = array.length;
-		if ((len == 0) || (len == 1)) {
-			return array;
-		}
-		for (int i = len; i-- > 0; ) {
-			swap(array, i, random.nextInt(len));
-		}
-		return array;
-	}
-
-	/**
-	 * Return the array after "shuffling" it.
-	 * java.util.Arrays#shuffle(char[] array)
-	 */
-	public static char[] shuffle(char... array) {
-		return shuffle(array, RANDOM);
-	}
-
-	/**
-	 * Return the array after "shuffling" it.
-	 * java.util.Arrays#shuffle(char[] array, Random r)
-	 */
-	public static char[] shuffle(char[] array, Random random) {
-		int len = array.length;
-		if ((len == 0) || (len == 1)) {
-			return array;
-		}
-		for (int i = len; i-- > 0; ) {
-			swap(array, i, random.nextInt(len));
-		}
-		return array;
-	}
-
-	/**
-	 * Return the array after "shuffling" it.
-	 * java.util.Arrays#shuffle(int[] array)
-	 */
-	public static int[] shuffle(int... array) {
-		return shuffle(array, RANDOM);
-	}
-
-	/**
-	 * Return the array after "shuffling" it.
-	 * java.util.Arrays#shuffle(int[] array, Random r)
-	 */
-	public static int[] shuffle(int[] array, Random random) {
-		int len = array.length;
-		if ((len == 0) || (len == 1)) {
-			return array;
-		}
-		for (int i = len; i-- > 0; ) {
-			swap(array, i, random.nextInt(len));
-		}
-		return array;
-	}
-
-	/**
-	 * Return an iterator that returns only the single,
-	 * specified object.
-	 * Object#toIterator() ?!
-	 */
-	public static <E> Iterator<E> singletonIterator(E value) {
-		return new SingleElementIterator<E>(value);
-	}
-
-	/**
-	 * Return a list iterator that returns only the single,
-	 * specified object.
-	 * Object#toIterator() ?!
-	 */
-	public static <E> ListIterator<E> singletonListIterator(E value) {
-		return new SingleElementListIterator<E>(value);
-	}
-
-	/**
-	 * Return the number of elements returned by the specified iterable.
-	 * java.lang.Iterable#size()
-	 */
-	public static int size(Iterable<?> iterable) {
-		return size(iterable.iterator());
-	}
-
-	/**
-	 * Return the number of elements returned by the specified iterator.
-	 * java.util.Iterator#size()
-	 */
-	public static int size(Iterator<?> iterator) {
-		int size = 0;
-		while (iterator.hasNext()) {
-			iterator.next();
-			size++;
-		}
-		return size;
-	}
-
-	/**
-	 * Return a sorted set corresponding to the specified iterable.
-	 * java.util.TreeSet(java.lang.Iterable iterable)
-	 */
-	public static <E extends Comparable<? super E>> TreeSet<E> sortedSet(Iterable<? extends E> iterable) {
-		return sortedSet(iterable, null);
-	}
-
-	/**
-	 * Return a sorted set corresponding to the specified iterable.
-	 * java.util.TreeSet(java.lang.Iterable iterable)
-	 */
-	public static <E extends Comparable<? super E>> TreeSet<E> sortedSet(Iterable<? extends E> iterable, int size) {
-		return sortedSet(iterable, size, null);
-	}
-
-	/**
-	 * Return a sorted set corresponding to the specified iterable
-	 * and comparator.
-	 * java.util.TreeSet(java.lang.Iterable iterable, java.util.Comparator c)
-	 */
-	public static <E> TreeSet<E> sortedSet(Iterable<? extends E> iterable, Comparator<? super E> comparator) {
-		return sortedSet(iterable.iterator(), comparator);
-	}
-
-	/**
-	 * Return a sorted set corresponding to the specified iterable
-	 * and comparator.
-	 * java.util.TreeSet(java.lang.Iterable iterable, java.util.Comparator c)
-	 */
-	public static <E> TreeSet<E> sortedSet(Iterable<? extends E> iterable, int size, Comparator<? super E> comparator) {
-		return sortedSet(iterable.iterator(), size, comparator);
-	}
-
-	/**
-	 * Return a sorted set corresponding to the specified iterator.
-	 * java.util.TreeSet(java.util.Iterator iterator)
-	 */
-	public static <E extends Comparable<? super E>> TreeSet<E> sortedSet(Iterator<? extends E> iterator) {
-		return sortedSet(iterator, null);
-	}
-
-	/**
-	 * Return a sorted set corresponding to the specified iterator.
-	 * java.util.TreeSet(java.util.Iterator iterator)
-	 */
-	public static <E extends Comparable<? super E>> TreeSet<E> sortedSet(Iterator<? extends E> iterator, int size) {
-		return sortedSet(iterator, size, null);
-	}
-
-	/**
-	 * Return a sorted set corresponding to the specified iterator
-	 * and comparator.
-	 * java.util.TreeSet(java.util.Iterator iterator, java.util.Comparator c)
-	 */
-	public static <E> TreeSet<E> sortedSet(Iterator<? extends E> iterator, Comparator<? super E> comparator) {
-		return sortedSet(list(iterator), comparator);
-	}
-
-	/**
-	 * Return a sorted set corresponding to the specified iterator
-	 * and comparator.
-	 * java.util.TreeSet(java.util.Iterator iterator, java.util.Comparator c)
-	 */
-	public static <E> TreeSet<E> sortedSet(Iterator<? extends E> iterator, int size, Comparator<? super E> comparator) {
-		return sortedSet(list(iterator, size), comparator);
-	}
-
-	private static <E> TreeSet<E> sortedSet(List<E> list, Comparator<? super E> comparator) {
-		TreeSet<E> sortedSet = new TreeSet<E>(comparator);
-		sortedSet.addAll(list);
-		return sortedSet;
-	}
-
-	/**
-	 * Return a sorted set corresponding to the specified array.
-	 * java.util.TreeSet(Object[] array)
-	 */
-	public static <E extends Comparable<? super E>> TreeSet<E> sortedSet(E... array) {
-		return sortedSet(array, null);
-	}
-
-	/**
-	 * Return a sorted set corresponding to the specified array
-	 * and comparator.
-	 * java.util.TreeSet(Object[] array, java.util.Comparator c)
-	 */
-	public static <E> TreeSet<E> sortedSet(E[] array, Comparator<? super E> comparator) {
-		TreeSet<E> sortedSet = new TreeSet<E>(comparator);
-		sortedSet.addAll(Arrays.asList(array));
-		return sortedSet;
-	}
-
-	/**
-	 * Return a sub-array of the specified array, starting at the specified
-	 * position with the specified length.
-	 * java.util.Arrays#subArray(E[] array, int start, int length)
-	 */
-	public static <E> E[] subArray(E[] array, int start, int length) {
-		E[] result = newArray(array, length);
-		if (length > 0) {
-			System.arraycopy(array, start, result, 0, length);
-		}
-		return result;
-	}
-
-	/**
-	 * Return a sub-array of the specified array, starting at the specified
-	 * position with the specified length.
-	 * java.util.Arrays#subArray(int[] array, int start, int length)
-	 */
-	public static int[] subArray(int[] array, int start, int length) {
-		int[] result = new int[length];
-		if (length > 0) {
-			System.arraycopy(array, start, result, 0, length);
-		}
-		return result;
-	}
-
-	/**
-	 * Return a sub-array of the specified array, starting at the specified
-	 * position with the specified length.
-	 * java.util.Arrays#subArray(char[] array, int start, int length)
-	 */
-	public static char[] subArray(char[] array, int start, int length) {
-		char[] result = new char[length];
-		if (length > 0) {
-			System.arraycopy(array, start, result, 0, length);
-		}
-		return result;
-	}
-
-	/**
-	 * Return the array after the specified elements have been "swapped".
-	 * java.util.Arrays#swap(Object[] array, int i, int j)
-	 */
-	public static <E> E[] swap(E[] array, int i, int j) {
-		E temp = array[i];
-		array[i] = array[j];
-		array[j] = temp;
-		return array;
-	}
-
-	/**
-	 * Return the array after the specified elements have been "swapped".
-	 * java.util.Arrays#swap(char[] array, int i, int j)
-	 */
-	public static char[] swap(char[] array, int i, int j) {
-		char temp = array[i];
-		array[i] = array[j];
-		array[j] = temp;
-		return array;
-	}
-
-	/**
-	 * Return the array after the specified elements have been "swapped".
-	 * java.util.Arrays#swap(int[] array, int i, int j)
-	 */
-	public static int[] swap(int[] array, int i, int j) {
-		int temp = array[i];
-		array[i] = array[j];
-		array[j] = temp;
-		return array;
-	}
-
-	/**
-	 * Return a vector corresponding to the specified iterable.
-	 * This is useful for legacy code that requires a java.util.Vector.
-	 * java.util.Vector(java.lang.Iterable iterable)
-	 */
-	public static <E> Vector<E> vector(Iterable<? extends E> iterable) {
-		return vector(iterable.iterator());
-	}
-
-	/**
-	 * Return a vector corresponding to the specified iterable.
-	 * This is useful for legacy code that requires a java.util.Vector.
-	 * java.util.Vector(java.lang.Iterable iterable)
-	 */
-	public static <E> Vector<E> vector(Iterable<? extends E> iterable, int size) {
-		return vector(iterable.iterator(), size);
-	}
-
-	/**
-	 * Return a vector corresponding to the specified iterator.
-	 * This is useful for legacy code that requires a java.util.Vector.
-	 * java.util.Vector(java.util.Iterator iterator)
-	 */
-	public static <E> Vector<E> vector(Iterator<? extends E> iterator) {
-		return vector(iterator, new Vector<E>());
-	}
-
-	/**
-	 * Return a vector corresponding to the specified iterator.
-	 * This is useful for legacy code that requires a java.util.Vector.
-	 * java.util.Vector(java.util.Iterator iterator)
-	 */
-	public static <E> Vector<E> vector(Iterator<? extends E> iterator, int size) {
-		return vector(iterator, new Vector<E>(size));
-	}
-
-	private static <E> Vector<E> vector(Iterator<? extends E> iterator, Vector<E> v) {
-		while (iterator.hasNext()) {
-			v.addElement(iterator.next());
-		}
-		return v;
-	}
-
-	/**
-	 * Return a vector corresponding to the specified array.
-	 * This is useful for legacy code that requires a java.util.Vector.
-	 * java.util.Vector(Object[] array)
-	 */
-	public static <E> Vector<E> vector(E... array) {
-		Vector<E> v = new Vector<E>(array.length);
-		for (E item : array) {
-			v.addElement(item);
-		}
-		return v;
-	}
-
-
-	// ********** single-use Iterable **********
-
-	/**
-	 * This is a one-time use iterable that can return a single iterator.
-	 * Once the iterator is returned the iterable is no longer valid.
-	 * As such, this utility should only be used in one-time use situations,
-	 * such as a 'for-each' loop.
-	 */
-	public static class SingleUseIterable<E> implements Iterable<E> {
-		private Iterator<E> iterator;
-
-		public SingleUseIterable(Iterator<? extends E> iterator) {
-			super();
-			if (iterator == null) {
-				throw new NullPointerException();
-			}
-			this.iterator = new GenericIteratorWrapper<E>(iterator);
-		}
-
-		public Iterator<E> iterator() {
-			if (this.iterator == null) {
-				throw new IllegalStateException("This method has already been called."); //$NON-NLS-1$
-			}
-			Iterator<E> result = this.iterator;
-			this.iterator = null;
-			return result;
-		}
-
-		@Override
-		public String toString() {
-			return StringTools.buildToStringFor(this, this.iterator);
-		}
-
-	}
-
-
-	// ********** java.util.Collections enhancements **********
-
-	/**
-	 * Return the destination list after the source list has been copied into it.
-	 * @see java.util.Collections#copy(java.util.List, java.util.List)
-	 */
-	public static <E> List<? super E> copy(List<? super E> dest, List<? extends E> src) {
-		Collections.copy(dest, src);
-		return dest;
-	}
-
-	/**
-	 * Return the list after it has been "filled".
-	 * @see java.util.Collections#fill(java.util.List, java.lang.Object)
-	 */
-	public static <E> List<? super E> fill(List<? super E> list, E value) {
-		Collections.fill(list, value);
-		return list;
-	}
-
-	/**
-	 * Return the list after it has been "reversed".
-	 * @see java.util.Collections#reverse(java.util.List)
-	 */
-	public static <E> List<E> reverse(List<E> list) {
-		Collections.reverse(list);
-		return list;
-	}
-
-	/**
-	 * Return the list after it has been "rotated" by one position.
-	 * @see java.util.Collections#rotate(java.util.List, int)
-	 */
-	public static <E> List<E> rotate(List<E> list) {
-		return rotate(list, 1);
-	}
-
-	/**
-	 * Return the list after it has been "rotated".
-	 * @see java.util.Collections#rotate(java.util.List, int)
-	 */
-	public static <E> List<E> rotate(List<E> list, int distance) {
-		Collections.rotate(list, distance);
-		return list;
-	}
-
-	/**
-	 * Return the list after it has been "shuffled".
-	 * @see java.util.Collections#shuffle(java.util.List)
-	 */
-	public static <E> List<E> shuffle(List<E> list) {
-		Collections.shuffle(list);
-		return list;
-	}
-
-	/**
-	 * Return the list after it has been "shuffled".
-	 * @see java.util.Collections#shuffle(java.util.List, java.util.Random)
-	 */
-	public static <E> List<E> shuffle(List<E> list, Random random) {
-		Collections.shuffle(list, random);
-		return list;
-	}
-
-	/**
-	 * Return the list after it has been "sorted".
-	 * NB: The list is sorted in place as a side-effect.
-	 * @see java.util.Collections#sort(java.util.List)
-	 */
-	public static <E extends Comparable<? super E>> List<E> sort(List<E> list) {
-		Collections.sort(list);
-		return list;
-	}
-
-	/**
-	 * Return the list after it has been "sorted".
-	 * NB: The list is sorted in place as a side-effect.
-	 * @see java.util.Collections#sort(java.util.List, java.util.Comparator)
-	 */
-	public static <E> List<E> sort(List<E> list, Comparator<? super E> comparator) {
-		Collections.sort(list, comparator);
-		return list;
-	}
-
-	/**
-	 * Return the iterable after it has been "sorted".
-	 */
-	public static <E extends Comparable<? super E>> Iterable<E> sort(Iterable<E> iterable) {
-		return sort(iterable, null);
-	}
-
-	/**
-	 * Return the iterable after it has been "sorted".
-	 */
-	public static <E> Iterable<E> sort(Iterable<E> iterable, Comparator<? super E> comparator) {
-		return sort(list(iterable), comparator);
-	}
-
-	/**
-	 * Return the iterator after it has been "sorted".
-	 */
-	public static <E extends Comparable<? super E>> ListIterator<E> sort(Iterator<? extends E> iterator) {
-		return sort(iterator, null);
-	}
-
-	/**
-	 * Return the iterator after it has been "sorted".
-	 */
-	public static <E> ListIterator<E> sort(Iterator<? extends E> iterator, Comparator<? super E> comparator) {
-		return sort(list(iterator), comparator).listIterator();
-	}
-
-	/**
-	 * Return the list after the specified elements have been "swapped".
-	 * @see java.util.Collections#swap(java.util.List, int, int)
-	 */
-	public static <E> List<E> swap(List<E> list, int i, int j) {
-		Collections.swap(list, i, j);
-		return list;
-	}
-
-
-	// ********** java.util.Arrays enhancements **********
-
-	/**
-	 * Return the array after it has been "filled".
-	 * @see java.util.Arrays#fill(boolean[], boolean)
-	 */
-	public static boolean[] fill(boolean[] array, boolean value) {
-		Arrays.fill(array, value);
-		return array;
-	}
-
-	/**
-	 * Return the array after it has been "filled".
-	 * @see java.util.Arrays#fill(boolean[], int, int, boolean)
-	 */
-	public static boolean[] fill(boolean[] array, int fromIndex, int toIndex, boolean value) {
-		Arrays.fill(array, fromIndex, toIndex, value);
-		return array;
-	}
-
-	/**
-	 * Return the array after it has been "filled".
-	 * @see java.util.Arrays#fill(byte[], byte)
-	 */
-	public static byte[] fill(byte[] array, byte value) {
-		Arrays.fill(array, value);
-		return array;
-	}
-
-	/**
-	 * Return the array after it has been "filled".
-	 * @see java.util.Arrays#fill(byte[], int, int, byte)
-	 */
-	public static byte[] fill(byte[] array, int fromIndex, int toIndex, byte value) {
-		Arrays.fill(array, fromIndex, toIndex, value);
-		return array;
-	}
-
-	/**
-	 * Return the array after it has been "filled".
-	 * @see java.util.Arrays#fill(char[], char)
-	 */
-	public static char[] fill(char[] array, char value) {
-		Arrays.fill(array, value);
-		return array;
-	}
-
-	/**
-	 * Return the array after it has been "filled".
-	 * @see java.util.Arrays#fill(char[], int, int, char)
-	 */
-	public static char[] fill(char[] array, int fromIndex, int toIndex, char value) {
-		Arrays.fill(array, fromIndex, toIndex, value);
-		return array;
-	}
-
-	/**
-	 * Return the array after it has been "filled".
-	 * @see java.util.Arrays#fill(double[], double)
-	 */
-	public static double[] fill(double[] array, double value) {
-		Arrays.fill(array, value);
-		return array;
-	}
-
-	/**
-	 * Return the array after it has been "filled".
-	 * @see java.util.Arrays#fill(double[], int, int, double)
-	 */
-	public static double[] fill(double[] array, int fromIndex, int toIndex, double value) {
-		Arrays.fill(array, fromIndex, toIndex, value);
-		return array;
-	}
-
-	/**
-	 * Return the array after it has been "filled".
-	 * @see java.util.Arrays#fill(float[], float)
-	 */
-	public static float[] fill(float[] array, float value) {
-		Arrays.fill(array, value);
-		return array;
-	}
-
-	/**
-	 * Return the array after it has been "filled".
-	 * @see java.util.Arrays#fill(float[], int, int, float)
-	 */
-	public static float[] fill(float[] array, int fromIndex, int toIndex, float value) {
-		Arrays.fill(array, fromIndex, toIndex, value);
-		return array;
-	}
-
-	/**
-	 * Return the array after it has been "filled".
-	 * @see java.util.Arrays#fill(int[], int)
-	 */
-	public static int[] fill(int[] array, int value) {
-		Arrays.fill(array, value);
-		return array;
-	}
-
-	/**
-	 * Return the array after it has been "filled".
-	 * @see java.util.Arrays#fill(int[], int, int, int)
-	 */
-	public static int[] fill(int[] array, int fromIndex, int toIndex, int value) {
-		Arrays.fill(array, fromIndex, toIndex, value);
-		return array;
-	}
-
-	/**
-	 * Return the array after it has been "filled".
-	 * @see java.util.Arrays#fill(Object[], Object)
-	 */
-	public static <E> E[] fill(E[] array, E value) {
-		Arrays.fill(array, value);
-		return array;
-	}
-
-	/**
-	 * Return the array after it has been "filled".
-	 * @see java.util.Arrays#fill(Object[], int, int, Object)
-	 */
-	public static <E> E[] fill(E[] array, int fromIndex, int toIndex, E value) {
-		Arrays.fill(array, fromIndex, toIndex, value);
-		return array;
-	}
-
-	/**
-	 * Return the array after it has been "filled".
-	 * @see java.util.Arrays#fill(long[], long)
-	 */
-	public static long[] fill(long[] array, long value) {
-		Arrays.fill(array, value);
-		return array;
-	}
-
-	/**
-	 * Return the array after it has been "filled".
-	 * @see java.util.Arrays#fill(long[], int, int, long)
-	 */
-	public static long[] fill(long[] array, int fromIndex, int toIndex, long value) {
-		Arrays.fill(array, fromIndex, toIndex, value);
-		return array;
-	}
-
-	/**
-	 * Return the array after it has been "filled".
-	 * @see java.util.Arrays#fill(short[], short)
-	 */
-	public static short[] fill(short[] array, short value) {
-		Arrays.fill(array, value);
-		return array;
-	}
-
-	/**
-	 * Return the array after it has been "filled".
-	 * @see java.util.Arrays#fill(short[], int, int, short)
-	 */
-	public static short[] fill(short[] array, int fromIndex, int toIndex, short value) {
-		Arrays.fill(array, fromIndex, toIndex, value);
-		return array;
-	}
-
-	/**
-	 * Return the array after it has been "sorted".
-	 * @see java.util.Arrays#sort(byte[])
-	 */
-	public static byte[] sort(byte... array) {
-		Arrays.sort(array);
-		return array;
-	}
-
-	/**
-	 * Return the array after it has been "sorted".
-	 * @see java.util.Arrays#sort(byte[], int, int)
-	 */
-	public static byte[] sort(byte[] array, int fromIndex, int toIndex) {
-		Arrays.sort(array, fromIndex, toIndex);
-		return array;
-	}
-
-	/**
-	 * Return the array after it has been "sorted".
-	 * @see java.util.Arrays#sort(char[])
-	 */
-	public static char[] sort(char... array) {
-		Arrays.sort(array);
-		return array;
-	}
-
-	/**
-	 * Return the array after it has been "sorted".
-	 * @see java.util.Arrays#sort(char[], int, int)
-	 */
-	public static char[] sort(char[] array, int fromIndex, int toIndex) {
-		Arrays.sort(array, fromIndex, toIndex);
-		return array;
-	}
-
-	/**
-	 * Return the array after it has been "sorted".
-	 * @see java.util.Arrays#sort(double[])
-	 */
-	public static double[] sort(double... array) {
-		Arrays.sort(array);
-		return array;
-	}
-
-	/**
-	 * Return the array after it has been "sorted".
-	 * @see java.util.Arrays#sort(double[], int, int)
-	 */
-	public static double[] sort(double[] array, int fromIndex, int toIndex) {
-		Arrays.sort(array, fromIndex, toIndex);
-		return array;
-	}
-
-	/**
-	 * Return the array after it has been "sorted".
-	 * @see java.util.Arrays#sort(float[])
-	 */
-	public static float[] sort(float... array) {
-		Arrays.sort(array);
-		return array;
-	}
-
-	/**
-	 * Return the array after it has been "sorted".
-	 * @see java.util.Arrays#sort(float[], int, int)
-	 */
-	public static float[] sort(float[] array, int fromIndex, int toIndex) {
-		Arrays.sort(array, fromIndex, toIndex);
-		return array;
-	}
-
-	/**
-	 * Return the array after it has been "sorted".
-	 * @see java.util.Arrays#sort(int[])
-	 */
-	public static int[] sort(int... array) {
-		Arrays.sort(array);
-		return array;
-	}
-
-	/**
-	 * Return the array after it has been "sorted".
-	 * @see java.util.Arrays#sort(int[], int, int)
-	 */
-	public static int[] sort(int[] array, int fromIndex, int toIndex) {
-		Arrays.sort(array, fromIndex, toIndex);
-		return array;
-	}
-
-	/**
-	 * Return the array after it has been "sorted".
-	 * @see java.util.Arrays#sort(Object[])
-	 */
-	public static <E> E[] sort(E... array) {
-		Arrays.sort(array);
-		return array;
-	}
-
-	/**
-	 * Return the array after it has been "sorted".
-	 * @see java.util.Arrays#sort(Object[], java.util.Comparator)
-	 */
-	public static <E> E[] sort(E[] array, Comparator<? super E> comparator) {
-		Arrays.sort(array, comparator);
-		return array;
-	}
-
-	/**
-	 * Return the array after it has been "sorted".
-	 * @see java.util.Arrays#sort(Object[], int, int)
-	 */
-	public static <E> E[] sort(E[] array, int fromIndex, int toIndex) {
-		Arrays.sort(array, fromIndex, toIndex);
-		return array;
-	}
-
-	/**
-	 * Return the array after it has been "sorted".
-	 * @see java.util.Arrays#sort(Object[], int, int, java.util.Comparator)
-	 */
-	public static <E> E[] sort(E[] array, int fromIndex, int toIndex, Comparator<? super E> comparator) {
-		Arrays.sort(array, fromIndex, toIndex, comparator);
-		return array;
-	}
-
-	/**
-	 * Return the array after it has been "sorted".
-	 * @see java.util.Arrays#sort(long[])
-	 */
-	public static long[] sort(long... array) {
-		Arrays.sort(array);
-		return array;
-	}
-
-	/**
-	 * Return the array after it has been "sorted".
-	 * @see java.util.Arrays#sort(long[], int, int)
-	 */
-	public static long[] sort(long[] array, int fromIndex, int toIndex) {
-		Arrays.sort(array, fromIndex, toIndex);
-		return array;
-	}
-
-	/**
-	 * Return the array after it has been "sorted".
-	 * @see java.util.Arrays#sort(short[])
-	 */
-	public static short[] sort(short... array) {
-		Arrays.sort(array);
-		return array;
-	}
-
-	/**
-	 * Return the array after it has been "sorted".
-	 * @see java.util.Arrays#sort(short[], int, int)
-	 */
-	public static short[] sort(short[] array, int fromIndex, int toIndex) {
-		Arrays.sort(array, fromIndex, toIndex);
-		return array;
-	}
-
-
-	// ********** constructor **********
-
-	/**
-	 * Suppress default constructor, ensuring non-instantiability.
-	 */
-	private CollectionTools() {
-		super();
-		throw new UnsupportedOperationException();
-	}
-
-}
diff --git a/jpa/plugins/org.eclipse.jpt.utility/src/org/eclipse/jpt/utility/internal/CommandRunnable.java b/jpa/plugins/org.eclipse.jpt.utility/src/org/eclipse/jpt/utility/internal/CommandRunnable.java
deleted file mode 100644
index c2bd4e2..0000000
--- a/jpa/plugins/org.eclipse.jpt.utility/src/org/eclipse/jpt/utility/internal/CommandRunnable.java
+++ /dev/null
@@ -1,37 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.utility.internal;
-
-import org.eclipse.jpt.utility.Command;
-
-/**
- * Wrap a Command so it can be used as a Runnable.
- */
-public class CommandRunnable implements Runnable {
-	protected final Command command;
-
-	public CommandRunnable(Command command) {
-		super();
-		if (command == null) {
-			throw new NullPointerException();
-		}
-		this.command = command;
-	}
-
-	public void run() {
-		this.command.execute();
-	}
-
-	@Override
-	public String toString() {
-		return "Runnable[" + this.command.toString() +']'; //$NON-NLS-1$
-	}
-
-}
diff --git a/jpa/plugins/org.eclipse.jpt.utility/src/org/eclipse/jpt/utility/internal/Counter.java b/jpa/plugins/org.eclipse.jpt.utility/src/org/eclipse/jpt/utility/internal/Counter.java
deleted file mode 100644
index b684384..0000000
--- a/jpa/plugins/org.eclipse.jpt.utility/src/org/eclipse/jpt/utility/internal/Counter.java
+++ /dev/null
@@ -1,109 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.utility.internal;
-
-import java.io.Serializable;
-
-/**
- * This class can be used wherever a mutable integer object is needed.
- * It is a cross between an int and an Integer. It can be stored in a standard
- * container (e.g. Collection) but can be modified.
- */
-public final class Counter
-	implements Cloneable, Serializable
-{
-	private int count = 0;
-
-	private static final long serialVersionUID = 1L;
-
-
-	/**
-	 * Construct a counter with the specified initial value.
-	 */
-	public Counter(int count) {
-		super();
-		this.count = count;
-	}
-
-	/**
-	 * Construct a counter with an initial value of zero.
-	 */
-	public Counter() {
-		this(0);
-	}
-
-	/**
-	 * Return the current count of the counter.
-	 */
-	public synchronized int count() {
-		return this.count;
-	}
-
-	/**
-	 * Increment and return the current count of the counter.
-	 */
-	public synchronized int increment() {
-		return ++this.count;
-	}
-
-	/**
-	 * Increment and return the current count of the counter.
-	 */
-	public synchronized int increment(int increment) {
-		return this.count += increment;
-	}
-
-	/**
-	 * Derement and return the current count of the counter.
-	 */
-	public synchronized int decrement() {
-		return --this.count;
-	}
-
-	/**
-	 * Derement and return the current count of the counter.
-	 */
-	public synchronized int decrement(int decrement) {
-		return this.count -= decrement;
-	}
-
-	@Override
-	public synchronized boolean equals(Object o) {
-		if ( ! (o instanceof Counter)) {
-			return false;
-		}
-		return this.count == ((Counter) o).count();
-	}
-
-	@Override
-	public synchronized int hashCode() {
-		return this.count;
-	}
-
-	@Override
-	public synchronized Object clone() {
-		try {
-			return super.clone();
-		} catch (CloneNotSupportedException ex) {
-			throw new InternalError();
-		}
-	}
-
-	@Override
-	public synchronized String toString() {
-		StringBuffer sb = new StringBuffer();
-		sb.append(ClassTools.shortClassNameForObject(this));
-		sb.append('(');
-		sb.append(this.count);
-		sb.append(')');
-		return sb.toString();
-	}
-
-}
diff --git a/jpa/plugins/org.eclipse.jpt.utility/src/org/eclipse/jpt/utility/internal/EmptyIterable.java b/jpa/plugins/org.eclipse.jpt.utility/src/org/eclipse/jpt/utility/internal/EmptyIterable.java
deleted file mode 100644
index 1f90f3d..0000000
--- a/jpa/plugins/org.eclipse.jpt.utility/src/org/eclipse/jpt/utility/internal/EmptyIterable.java
+++ /dev/null
@@ -1,50 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.utility.internal;
-
-import java.util.Iterator;
-import org.eclipse.jpt.utility.internal.iterators.EmptyIterator;
-
-/**
- * An <code>EmptyIterable</code> is just that.
- */
-public final class EmptyIterable<E>
-	implements Iterable<E>
-{
-
-	// singleton
-	@SuppressWarnings("unchecked")
-	private static final EmptyIterable INSTANCE = new EmptyIterable();
-
-	/**
-	 * Return the singleton.
-	 */
-	@SuppressWarnings("unchecked")
-	public static <T> Iterable<T> instance() {
-		return INSTANCE;
-	}
-
-	/**
-	 * Ensure single instance.
-	 */
-	private EmptyIterable() {
-		super();
-	}
-
-	public Iterator<E> iterator() {
-		return EmptyIterator.instance();
-	}
-
-	@Override
-	public String toString() {
-		return StringTools.buildToStringFor(this);
-	}
-
-}
diff --git a/jpa/plugins/org.eclipse.jpt.utility/src/org/eclipse/jpt/utility/internal/FileTools.java b/jpa/plugins/org.eclipse.jpt.utility/src/org/eclipse/jpt/utility/internal/FileTools.java
deleted file mode 100644
index 198e745..0000000
--- a/jpa/plugins/org.eclipse.jpt.utility/src/org/eclipse/jpt/utility/internal/FileTools.java
+++ /dev/null
@@ -1,1007 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005, 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.utility.internal;
-
-import java.io.File;
-import java.io.FileFilter;
-import java.io.FileInputStream;
-import java.io.FileOutputStream;
-import java.io.IOException;
-import java.net.URI;
-import java.net.URISyntaxException;
-import java.net.URL;
-import java.nio.channels.FileChannel;
-import java.util.ArrayList;
-import java.util.Collection;
-import java.util.Collections;
-import java.util.HashSet;
-import java.util.Iterator;
-import java.util.List;
-import java.util.Set;
-import org.eclipse.jpt.utility.internal.iterators.ArrayIterator;
-import org.eclipse.jpt.utility.internal.iterators.CompositeIterator;
-import org.eclipse.jpt.utility.internal.iterators.FilteringIterator;
-import org.eclipse.jpt.utility.internal.iterators.TransformationIterator;
-
-/**
- * Assorted file tools:
- * - delete entire trees of directories and files
- * - build iterators on entire trees of directories and files
- * - build a temporary directory
- * - "canonize" files
- */
-public final class FileTools {
-
-	public static final String USER_HOME_DIRECTORY_NAME = System.getProperty("user.home"); //$NON-NLS-1$
-	public static final String USER_TEMPORARY_DIRECTORY_NAME = System.getProperty("java.io.tmpdir"); //$NON-NLS-1$
-	public static String DEFAULT_TEMPORARY_DIRECTORY_NAME = "tmpdir"; //$NON-NLS-1$
-	public static final String CURRENT_WORKING_DIRECTORY_NAME = System.getProperty("user.dir"); //$NON-NLS-1$
-
-    /** A list of some invalid file name characters.
-				: is the filename separator in MacOS and the drive indicator in DOS
-				* is a DOS wildcard character
-				| is a DOS redirection character
-				& is our own escape character
-				/ is the filename separator in Unix and the command option tag in DOS
-				\ is the filename separator in DOS/Windows and the escape character in Unix
-				; is ???
-				? is a DOS wildcard character
-				[ is ???
-				] is ???
-				= is ???
-				+ is ???
-				< is a DOS redirection character
-				> is a DOS redirection character
-				" is used by DOS to delimit file names with spaces
-				, is ???
-     */
-	public static final char[] INVALID_FILENAME_CHARACTERS = { ':', '*', '|', '&', '/', '\\', ';', '?', '[', ']', '=', '+', '<', '>', '"', ',' };
-
-	/** This encoder will convert strings into valid file names. */
-	public static final XMLStringEncoder FILE_NAME_ENCODER = new XMLStringEncoder(INVALID_FILENAME_CHARACTERS);
-
-	/** Windows files that are redirected to devices etc. */
-	@SuppressWarnings("nls")
-	private static final String[] WINDOWS_RESERVED_FILE_NAMES = {
-		"con",
-		"aux",
-		"com1", "com2", "com3", "com4", "com5", "com6", "com7", "com8", "com9",
-		"lpt1", "lpt2", "lpt3", "lpt4", "lpt5", "lpt6", "lpt7", "lpt8", "lpt9",
-		"prn",
-		"nul"
-	};
-
-	/** The default length of a shortened file name. */
-	public static final int MAXIMUM_SHORTENED_FILE_NAME_LENGTH = 60;
-
-
-	// ********** deleting directories **********
-
-	/**
-	 * Delete the specified directory and all of its contents.
-	 * <em>USE WITH CARE.</em>
-	 * File#deleteAll()?
-	 */
-	public static void deleteDirectory(String directoryName) {
-		deleteDirectory(new File(directoryName));
-	}
-	
-	/**
-	 * Delete the specified directory and all of its contents.
-	 * <em>USE WITH CARE.</em>
-	 * File#deleteAll()?
-	 */
-	public static void deleteDirectory(File directory) {
-		deleteDirectoryContents(directory);
-		if ( ! directory.delete()) {
-			throw new RuntimeException("unable to delete directory: " + directory.getAbsolutePath()); //$NON-NLS-1$
-		}
-	}
-	
-	/**
-	 * Delete the contents of the specified directory
-	 * (but not the directory itself).
-	 * <em>USE WITH CARE.</em>
-	 * File#deleteFiles()
-	 */
-	public static void deleteDirectoryContents(String directoryName) {
-		deleteDirectoryContents(new File(directoryName));
-	}
-	
-	/**
-	 * Delete the contents of the specified directory
-	 * (but not the directory itself).
-	 * <em>USE WITH CARE.</em>
-	 * File#deleteFiles()
-	 */
-	public static void deleteDirectoryContents(File directory) {
-		for (File file : directory.listFiles()) {
-			if (file.isDirectory()) {
-				deleteDirectory(file);	// recurse through subdirectories
-			} else {
-				if ( ! file.delete()) {
-					throw new RuntimeException("unable to delete file: " + file.getAbsolutePath()); //$NON-NLS-1$
-				}
-			}
-		}
-	}
-	
-
-	// ********** copying files **********
-
-	/**
-	 * Copies the content of the source file to the destination file.
-	 * File#copy(File destinationFile)
-	 */
-	public static void copyToFile(File sourceFile, File destinationFile)
-		throws IOException
-	{
-		FileChannel sourceChannel = new FileInputStream(sourceFile).getChannel();
-		FileChannel destinationChannel = new FileOutputStream(destinationFile).getChannel();
-		try {
-			destinationChannel.transferFrom(sourceChannel, 0, sourceChannel.size());
-		} finally {
-			sourceChannel.close();
-			destinationChannel.close();
-		}
-	}
-	
-	/**
-	 * Copies the content of the source file to a file by
-	 * the same name in the destination directory.
-	 * File#copyToDirectory(File destinationDirectory)
-	 */
-	public static void copyToDirectory(File sourceFile, File destinationDirectory)
-		throws IOException
-	{
-		File destinationFile = new File(destinationDirectory, sourceFile.getName());
-		destinationFile.createNewFile();
-		copyToFile(sourceFile, destinationFile);
-	}
-	
-
-	// ********** iteratoring over files and directories **********
-
-	/**
-	 * Return an iterator on all the files in the specified directory.
-	 * The iterator will skip over subdirectories.
-	 * File#files()
-	 */
-	public static Iterator<File> filesIn(String directoryName) {
-		return filesIn(new File(directoryName));
-	}
-	
-	/**
-	 * Return an iterator on all the files in the specified directory.
-	 * The iterator will skip over subdirectories.
-	 * File#files()
-	 */
-	public static Iterator<File> filesIn(File directory) {
-		return filesIn(directory.listFiles());
-	}
-	
-	private static Iterator<File> filesIn(File[] files) {
-		return new FilteringIterator<File, File>(new ArrayIterator<File>(files)) {
-			@Override
-			protected boolean accept(File next) {
-				return next.isFile();
-			}
-		};
-	}
-	
-	/**
-	 * Return an iterator on all the subdirectories
-	 * in the specified directory.
-	 * File#subDirectories()
-	 */
-	public static Iterator<File> directoriesIn(String directoryName) {
-		return directoriesIn(new File(directoryName));
-	}
-	
-	/**
-	 * Return an iterator on all the subdirectories
-	 * in the specified directory.
-	 * File#subDirectories()
-	 */
-	public static Iterator<File> directoriesIn(File directory) {
-		return directoriesIn(directory.listFiles());
-	}
-	
-	private static Iterator<File> directoriesIn(File[] files) {
-		return new FilteringIterator<File, File>(new ArrayIterator<File>(files)) {
-			@Override
-			protected boolean accept(File next) {
-				return next.isDirectory();
-			}
-		};
-	}
-	
-	/**
-	 * Return an iterator on all the files under the specified
-	 * directory, recursing into subdirectories.
-	 * The iterator will skip over the subdirectories themselves.
-	 * File#filesRecurse()
-	 */
-	public static Iterator<File> filesInTree(String directoryName) {
-		return filesInTree(new File(directoryName));
-	}
-	
-	/**
-	 * Return an iterator on all the files under the specified
-	 * directory, recursing into subdirectories.
-	 * The iterator will skip over the subdirectories themselves.
-	 * File#filesRecurse()
-	 */
-	public static Iterator<File> filesInTree(File directory) {
-		return filesInTreeAsSet(directory).iterator();
-	}
-
-	private static Set<File> filesInTreeAsSet(File directory) {
-		Set<File> files = new HashSet<File>(10000);
-		addFilesInTreeTo(directory, files);
-		return files;
-	}
-
-	private static void addFilesInTreeTo(File directory, Collection<File> allFiles) {
-		for (File file : directory.listFiles()) {
-			if (file.isFile()) {
-				allFiles.add(file);
-			} else if (file.isDirectory()) {
-				addFilesInTreeTo(file, allFiles);
-			}
-		}
-	}
-
-	/**
-	 * Return an iterator on all the directories under the specified
-	 * directory, recursing into subdirectories.
-	 * File#subDirectoriesRecurse()
-	 */
-	public static Iterator<File> directoriesInTree(String directoryName) {
-		return directoriesInTree(new File(directoryName));
-	}
-	
-	/**
-	 * Return an iterator on all the directories under the specified
-	 * directory, recursing into subdirectories.
-	 * File#subDirectoriesRecurse()
-	 */
-	@SuppressWarnings("unchecked")
-	public static Iterator<File> directoriesInTree(File directory) {
-		File[] files = directory.listFiles();
-		return new CompositeIterator<File>(directoriesIn(files), directoriesInTrees(directoriesIn(files)));
-	}
-	
-	private static Iterator<File> directoriesInTrees(Iterator<File> directories) {
-		return new CompositeIterator<File>(
-			new TransformationIterator<File, Iterator<File>>(directories) {
-				@Override
-				protected Iterator<File> transform(File next) {
-					return FileTools.directoriesInTree(next);
-				}
-			}
-		);
-	}
-	
-
-	// ********** short file name manipulation **********
-
-	/**
-	 * Strip the extension from the specified file name
-	 * and return the result. If the file name has no
-	 * extension, it is returned unchanged
-	 * File#basePath()
-	 */
-	public static String stripExtension(String fileName) {
-		int index = fileName.lastIndexOf('.');
-		if (index == -1) {
-			return fileName;
-		}
-		return fileName.substring(0, index);
-	}
-	
-	/**
-	 * Strip the extension from the specified file's name
-	 * and return the result. If the file's name has no
-	 * extension, it is returned unchanged
-	 * File#basePath()
-	 */
-	public static String stripExtension(File file) {
-		return stripExtension(file.getPath());
-	}
-
-	/**
-	 * Return the extension, including the dot, of the specified file name.
-	 * If the file name has no extension, return an empty string.
-	 * File#extension()
-	 */
-	public static String extension(String fileName) {
-		int index = fileName.lastIndexOf('.');
-		if (index == -1) {
-			return ""; //$NON-NLS-1$
-		}
-		return fileName.substring(index);
-	}
-	
-	/**
-	 * Return the extension, including the dot, of the specified file's name.
-	 * If the file's name has no extension, return an empty string.
-	 * File#extension()
-	 */
-	public static String extension(File file) {
-		return extension(file.getPath());
-	}
-
-
-	// ********** temporary directories **********
-
-	/**
-	 * Build and return an empty temporary directory with the specified
-	 * name. If the directory already exists, it will be cleared out.
-	 * This directory will be a subdirectory of the Java temporary directory,
-	 * as indicated by the System property "java.io.tmpdir".
-	 */
-	public static File emptyTemporaryDirectory(String name) {
-		File dir = new File(userTemporaryDirectory(), name);
-		if (dir.exists()) {
-			deleteDirectoryContents(dir);
-		} else {
-			dir.mkdirs();
-		}
-		return dir;
-	}
-	
-	/**
-	 * Build and return an empty temporary directory with a
-	 * name of "tmpdir". If the directory already exists, it will be cleared out.
-	 * This directory will be a subdirectory of the Java temporary directory,
-	 * as indicated by the System property "java.io.tmpdir".
-	 */
-	public static File emptyTemporaryDirectory() {
-		return emptyTemporaryDirectory(DEFAULT_TEMPORARY_DIRECTORY_NAME);
-	}
-	
-	/**
-	 * Build and return a temporary directory with the specified
-	 * name. If the directory already exists, it will be left unchanged;
-	 * if it does not already exist, it will be created.
-	 * This directory will be a subdirectory of the Java temporary directory,
-	 * as indicated by the System property "java.io.tmpdir".
-	 */
-	public static File temporaryDirectory(String name) {
-		File dir = new File(userTemporaryDirectory(), name);
-		if ( ! dir.exists()) {
-			dir.mkdirs();
-		}
-		return dir;
-	}
-	
-	/**
-	 * Build and return a temporary directory with a name of
-	 * "tmpdir". If the directory already exists, it will be left unchanged;
-	 * if it does not already exist, it will be created.
-	 * This directory will be a subdirectory of the Java temporary directory,
-	 * as indicated by the System property "java.io.tmpdir".
-	 */
-	public static File temporaryDirectory() {
-		return temporaryDirectory(DEFAULT_TEMPORARY_DIRECTORY_NAME);
-	}
-	
-	/**
-	 * Build and return a *new* temporary directory with the specified
-	 * prefix. The prefix will be appended with a number that
-	 * is incremented, starting with 1, until a non-pre-existing directory
-	 * is found and successfully created. This directory will be a
-	 * subdirectory of the Java temporary directory, as indicated by
-	 * the System property "java.io.tmpdir".
-	 */
-	public static File newTemporaryDirectory(String prefix) {
-		if ( ! prefix.endsWith(".")) { //$NON-NLS-1$
-			prefix = prefix + '.';
-		}
-		File dir;
-		int i = 0;
-		do {
-			i++;
-			dir = new File(userTemporaryDirectory(), prefix + i);
-		} while ( ! dir.mkdirs());
-		return dir;
-	}
-	
-	/**
-	 * Build and return a *new* temporary directory with a
-	 * prefix of "tmpdir". This prefix will be appended with a number that
-	 * is incremented, starting with 1, until a non-pre-existing directory
-	 * is found and successfully created. This directory will be a
-	 * subdirectory of the Java temporary directory, as indicated by
-	 * the System property "java.io.tmpdir".
-	 */
-	public static File newTemporaryDirectory() {
-		return newTemporaryDirectory(DEFAULT_TEMPORARY_DIRECTORY_NAME);
-	}
-	
-
-	// ********** resource files **********
-
-	/**
-	 * Build and return a file for the specified resource.
-	 * The resource name must be fully-qualified, i.e. it cannot be relative
-	 * to the package name/directory.
-	 * NB: There is a bug in jdk1.4.x the prevents us from getting
-	 * a resource that has spaces (or other special characters) in
-	 * its name.... (see Sun's Java bug 4466485)
-	 */
-	public static File resourceFile(String resourceName) throws URISyntaxException {
-		if ( ! resourceName.startsWith("/")) { //$NON-NLS-1$
-			throw new IllegalArgumentException(resourceName);
-		}
-		return resourceFile(resourceName, FileTools.class);
-	}
-	
-	/**
-	 * Build and return a file for the specified resource.
-	 * NB: There is a bug in jdk1.4.x the prevents us from getting
-	 * a resource that has spaces (or other special characters) in
-	 * its name.... (see Sun's Java bug 4466485)
-	 */
-	public static File resourceFile(String resourceName, Class<?> javaClass) throws URISyntaxException {
-		URL url = javaClass.getResource(resourceName);
-		return buildFile(url);
-	}
-	
-	/**
-	 * Build and return a file for the specified URL.
-	 * NB: There is a bug in jdk1.4.x the prevents us from getting
-	 * a resource that has spaces (or other special characters) in
-	 * its name.... (see Sun's Java bug 4466485)
-	 */
-	public static File buildFile(URL url) throws URISyntaxException {
-		return buildFile(url.getFile());
-	}
-	
-	/**
-	 * Build and return a file for the specified file name.
-	 * NB: There is a bug in jdk1.4.x the prevents us from getting
-	 * a resource that has spaces (or other special characters) in
-	 * its name.... (see Sun's Java bug 4466485)
-	 */
-	public static File buildFile(String fileName) throws URISyntaxException {
-		URI uri = new URI(fileName);
-		File file = new File(uri.getPath());
-		return file;
-	}
-	
-
-	// ********** "canonical" files **********
-
-	/**
-	 * Convert the specified file into a "canonical" file.
-	 */
-	public static File canonicalFile(File file) {
-		try {
-			return file.getCanonicalFile();
-		} catch (IOException ioexception) {
-			// settle for the absolute file
-			return file.getAbsoluteFile();
-		}
-	}
-	
-	/**
-	 * Build an iterator that will convert the specified files
-	 * into "canonical" files.
-	 */
-	public static Iterator<File> canonicalFiles(Iterator<File> files) {
-		return new TransformationIterator<File, File>(files) {
-			@Override
-			protected File transform(File next) {
-				return canonicalFile(next);
-			}
-		};
-	}
-	
-	/**
-	 * Build an iterator that will convert the specified files
-	 * into "canonical" files.
-	 */
-	public static Iterator<File> canonicalFiles(Collection<File> files) {
-		return canonicalFiles(files.iterator());
-	}
-	
-	/**
-	 * Convert the specified file name into a "canonical" file name.
-	 */
-	public static String canonicalFileName(String fileName) {
-		return canonicalFile(new File(fileName)).getAbsolutePath();
-	}
-	
-	/**
-	 * Build an iterator that will convert the specified file names
-	 * into "canonical" file names.
-	 */
-	public static Iterator<String> canonicalFileNames(Iterator<String> fileNames) {
-		return new TransformationIterator<String, String>(fileNames) {
-			@Override
-			protected String transform(String next) {
-				return canonicalFileName(next);
-			}
-		};
-	}
-	
-	/**
-	 * Build an iterator that will convert the specified file names
-	 * into "canonical" file names.
-	 */
-	public static Iterator<String> canonicalFileNames(Collection<String> fileNames) {
-		return canonicalFileNames(fileNames.iterator());
-	}
-	
-
-	// ********** file name validation **********
-
-	/**
-	 * Return whether the specified file name is invalid.
-	 */
-	public static boolean fileNameIsInvalid(String filename) {
-		return ! fileNameIsValid(filename);
-	}
-
-	/**
-	 * Return whether the specified file name is valid.
-	 */
-	public static boolean fileNameIsValid(String filename) {
-		int len = filename.length();
-		for (int i = 0; i < len; i++) {
-			char filenameChar = filename.charAt(i);
-			if (CollectionTools.contains(INVALID_FILENAME_CHARACTERS, filenameChar)) {
-				return false;
-			}
-		}
-		return true;
-	}
-
-	/**
-	 * Convert the illegal characters in the specified file name to
-	 * the specified character and return the result.
-	 */
-	public static String convertToValidFileName(String filename, char replacementChar) {
-		int len = filename.length();
-		StringBuilder sb = new StringBuilder(len);
-		for (int i = 0; i < len; i++) {
-			char filenameChar = filename.charAt(i);
-			if (CollectionTools.contains(INVALID_FILENAME_CHARACTERS, filenameChar)) {
-				sb.append(replacementChar);
-			} else {
-				sb.append(filenameChar);
-			}
-		}
-		return sb.toString();
-	}
-
-	/**
-	 * Convert the illegal characters in the specified file name to
-	 * periods ('.') and return the result.
-	 */
-	public static String convertToValidFileName(String filename) {
-		return convertToValidFileName(filename, '.');
-	}
-
-	/**
-	 * Return whether the specified file name is "reserved"
-	 * (i.e. it cannot be used for "user" files). Windows reserves
-	 * a number of file names (e.g. CON, AUX, PRN).
-	 */
-	public static boolean fileNameIsReserved(String fileName) {
-		if (executingOnWindows()) {
-			return CollectionTools.contains(WINDOWS_RESERVED_FILE_NAMES, fileName.toLowerCase());
-		}
-		return false;	// Unix does not have any "reserved" file names (I think...)
-	}
-
-	/**
-	 * Return whether the specified file contains any "reserved"
-	 * components.
-	 * Windows reserves a number of file names (e.g. CON, AUX, PRN);
-	 * and these file names cannot be used for either the names of
-	 * files or directories.
-	 */
-	public static boolean fileHasAnyReservedComponents(File file) {
-		File temp = file;
-		while (temp != null) {
-			if (fileNameIsReserved(temp.getName())) {
-				return true;
-			}
-			temp = temp.getParentFile();
-		}
-		return false;
-	}
-
-
-	// ********** shortened file names **********
-
-	/**
-	 * Return a shorter version of the absolute file name for the specified file.
-	 * The shorter version will not be longer than the maximum length.
-	 * The first directory (usually the drive letter) and the file name or the
-	 * last directory will always be added to the generated string regardless of
-	 * the maximum length allowed.
-	 */
-	public static String shortenFileName(URL url) {
-		return shortenFileName(url, MAXIMUM_SHORTENED_FILE_NAME_LENGTH);
-	}
-
-	/**
-	 * Return a shorter version of the absolute file name for the specified file.
-	 * The shorter version will not be longer than the maximum length.
-	 * The first directory (usually the drive letter) and the file name or the
-	 * last directory will always be added to the generated string regardless of
-	 * the maximum length allowed.
-	 */
-	public static String shortenFileName(URL url, int maxLength) {
-		File file;
-		try {
-			file = buildFile(url);
-		} catch (URISyntaxException e) {
-			file = new File(url.getFile());
-		}
-		return shortenFileName(file, maxLength);
-	}
-
-	/**
-	 * Return a shorter version of the absolute file name for the specified file.
-	 * The shorter version will not be longer than the maximum length.
-	 * The first directory (usually the drive letter) and the file name or the
-	 * last directory will always be added to the generated string regardless of
-	 * the maximum length allowed.
-	 */
-	public static String shortenFileName(File file) {
-		return shortenFileName(file, MAXIMUM_SHORTENED_FILE_NAME_LENGTH);
-	}
-
-	/**
-	 * Return a shorter version of the absolute file name for the specified file.
-	 * The shorter version will not be longer than the maximum length.
-	 * The first directory (usually the drive letter) and the file name or the
-	 * last directory will always be added to the generated string regardless of
-	 * the maximum length allowed.
-	 */
-	public static String shortenFileName(File file, int maxLength) {
-		String absoluteFileName = canonicalFile(file).getAbsolutePath();
-		if (absoluteFileName.length() <= maxLength) {
-			// no need to shorten
-			return absoluteFileName;
-		}
-
-		// break down the path into its components
-		String fs = File.separator;
-		String[] paths = absoluteFileName.split('\\' + fs);
-
-		if (paths.length <= 1) {
-			// e.g. "C:\"
-			return paths[0];
-		}
-
-		if (paths.length == 2) {
-			// e.g. "C:\MyReallyLongFileName.ext" or "C:\MyReallyLongDirectoryName"
-			// return the complete file name since this is a minimum requirement,
-			// regardless of the maximum length allowed
-			return absoluteFileName;
-		}
-
-		StringBuilder sb = new StringBuilder();
-		sb.append(paths[0]);		// always add the first directory, which is usually the drive letter
-
-		// Keep the index of insertion into the string buffer
-		int insertIndex = sb.length();
-
-		sb.append(fs);
-		sb.append(paths[paths.length - 1]);		// append the file name or the last directory
-
-		maxLength -= 4;                      // -4 for "/..."
-
-		int currentLength = sb.length() - 4; // -4 for "/..."
-		int leftIndex = 1;                   //  1 to skip the root directory
-		int rightIndex = paths.length - 2;   // -1 for the file name or the last directory
-
-		boolean canAddFromLeft = true;
-		boolean canAddFromRight = true;
-
-		// Add each directory, the insertion is going in both direction: left and
-		// right, once a side can't be added, the other side is still continuing
-		// until both can't add anymore
-		while (true) {
-			if (!canAddFromLeft && !canAddFromRight)
-				break;
-
-			if (canAddFromRight) {
-				String rightDirectory = paths[rightIndex];
-				int rightLength = rightDirectory.length();
-
-				// Add the directory on the right side of the loop
-				if (currentLength + rightLength + 1 <= maxLength) {
-					sb.insert(insertIndex,     fs);
-					sb.insert(insertIndex + 1, rightDirectory);
-
-					currentLength += rightLength + 1;
-					rightIndex--;
-
-					// The right side is now overlapping the left side, that means
-					// we can't add from the right side anymore
-					if (leftIndex >= rightIndex) {
-						canAddFromRight = false;
-					}
-				} else {
-					canAddFromRight = false;
-				}
-			}
-
-			if (canAddFromLeft) {
-				String leftDirectory = paths[leftIndex];
-				int leftLength = leftDirectory.length();
-
-				// Add the directory on the left side of the loop
-				if (currentLength + leftLength + 1 <= maxLength) {
-					sb.insert(insertIndex,     fs);
-					sb.insert(insertIndex + 1, leftDirectory);
-
-					insertIndex += leftLength + 1;
-					currentLength += leftLength + 1;
-					leftIndex++;
-
-					// The left side is now overlapping the right side, that means
-					// we can't add from the left side anymore
-					if (leftIndex >= rightIndex) {
-						canAddFromLeft = false;
-					}
-				} else {
-					canAddFromLeft = false;
-				}
-			}
-		}
-
-		if (leftIndex <= rightIndex) {
-			sb.insert(insertIndex, fs);
-			sb.insert(insertIndex + 1, "..."); //$NON-NLS-1$
-		}
-
-		return sb.toString();
-	}
-
-
-	// ********** system properties **********
-
-	/**
-	 * Return a file representing the user's home directory.
-	 */
-	public static File userHomeDirectory() {
-		return new File(USER_HOME_DIRECTORY_NAME);
-	}
-	
-	/**
-	 * Return a file representing the user's temporary directory.
-	 */
-	public static File userTemporaryDirectory() {
-		return new File(USER_TEMPORARY_DIRECTORY_NAME);
-	}
-	
-	/**
-	 * Return a file representing the current working directory.
-	 */
-	public static File currentWorkingDirectory() {
-		return new File(CURRENT_WORKING_DIRECTORY_NAME);
-	}
-	
-
-	// ********** miscellaneous **********
-
-	private static boolean executingOnWindows() {
-		return executingOn("Windows"); //$NON-NLS-1$
-	}
-
-//	private static boolean executingOnLinux() {
-//		return executingOn("Linux");
-//	}
-//
-	private static boolean executingOn(String osName) {
-		return System.getProperty("os.name").indexOf(osName) != -1; //$NON-NLS-1$
-	}
-
-	/**
-	 * Return only the files that fit the filter.
-	 * File#files(FileFilter fileFilter)
-	 */
-	public static Iterator<File> filter(Iterator<File> files, final FileFilter fileFilter) {
-		return new FilteringIterator<File, File>(files) {
-			@Override
-			protected boolean accept(File next) {
-				return fileFilter.accept(next);
-			}
-		};
-	}
-
-	/**
-	 * Return a file that is a re-specification of the specified
-	 * file, relative to the specified directory.
-	 *     Linux/Unix/Mac:
-	 *         convertToRelativeFile(/foo/bar/baz.java, /foo)
-	 *             => bar/baz.java
-	 *     Windows:
-	 *         convertToRelativeFile(C:\foo\bar\baz.java, C:\foo)
-	 *             => bar/baz.java
-	 * The file can be either a file or a directory; the directory
-	 * *should* be a directory.
-	 * If the file is already relative or it cannot be made relative
-	 * to the directory, it will be returned unchanged.
-	 * 
-	 * NB: This method has been tested on Windows and Linux,
-	 * but not Mac (but the Mac is Unix-based these days, so
-	 * it shouldn't be a problem...).
-	 */
-	public static File convertToRelativeFile(final File file, final File dir) {
-		// check whether the file is already relative
-		if ( ! file.isAbsolute()) {
-			return file;		// return unchanged
-		}
-
-		File cFile = canonicalFile(file);
-		File cDir = canonicalFile(dir);
-
-		// the two are the same directory
-		if (cFile.equals(cDir)) {
-			return new File("."); //$NON-NLS-1$
-		}
-
-		File[] filePathFiles = pathFiles(cFile);
-		File[] dirPathFiles = pathFiles(cDir);
-
-		// Windows only (?): the roots are different - e.g. D:\ vs. C:\
-		if ( ! dirPathFiles[0].equals(filePathFiles[0])) {
-			return file;		// return unchanged
-		}
-
-		// at this point we know the root is the same, now find how much is in common
-		int i = 0;		// this will point at the first miscompare
-		while ((i < dirPathFiles.length) && (i < filePathFiles.length)) {
-			if (dirPathFiles[i].equals(filePathFiles[i])) {
-				i++;
-			} else {
-				break;
-			}
-		}
-		// save our current position
-		int firstMismatch = i;
-
-		// check whether the file is ABOVE the directory: ../..
-		if (firstMismatch == filePathFiles.length) {
-			return relativeParentFile(dirPathFiles.length - firstMismatch);
-		}
-
-		// build a new file from the path beyond the matching portions
-		File diff = new File(filePathFiles[i].getName());
-		while (++i < filePathFiles.length) {
-			diff = new File(diff, filePathFiles[i].getName());
-		}
-
-		// check whether the file is BELOW the directory: subdir1/subdir2/file.ext
-		if (firstMismatch == dirPathFiles.length) {
-			return diff;
-		}
-
-		// the file must be a PEER of the directory: ../../subdir1/subdir2/file.ext
-		return new File(relativeParentFile(dirPathFiles.length - firstMismatch), diff.getPath());
-	}
-
-	/**
-	 * Return a file that is a re-specification of the specified
-	 * file, relative to the current working directory.
-	 *     Linux/Unix/Mac (CWD = /foo):
-	 *         convertToRelativeFile(/foo/bar/baz.java)
-	 *             => bar/baz.java
-	 *     Windows (CWD = C:\foo):
-	 *         convertToRelativeFile(C:\foo\bar\baz.java)
-	 *             => bar/baz.java
-	 * The file can be either a file or a directory.
-	 * If the file is already relative or it cannot be made relative
-	 * to the directory, it will be returned unchanged.
-	 * 
-	 * NB: This method has been tested on Windows and Linux,
-	 * but not Mac (but the Mac is Unix-based these days, so
-	 * it shouldn't be a problem...).
-	 */
-	public static File convertToRelativeFile(final File file) {
-		return convertToRelativeFile(file, currentWorkingDirectory());
-	}
-
-	/**
-	 * Return an array of files representing the path to the specified
-	 * file. For example:
-	 *     C:/foo/bar/baz.txt =>
-	 *     { C:/, C:/foo, C:/foo/bar, C:/foo/bar/baz.txt }
-	 */
-	private static File[] pathFiles(File file) {
-		List<File> path = new ArrayList<File>();
-		for (File f = file; f != null; f = f.getParentFile()) {
-			path.add(f);
-		}
-		Collections.reverse(path);
-		return path.toArray(new File[path.size()]);
-	}
-
-	/**
-	 * Return a file with the specified (non-zero) number of relative
-	 * file names, e.g. xxx(3) => ../../..
-	 */
-	private static File relativeParentFile(int len) {
-		if (len <= 0) {
-			throw new IllegalArgumentException("length must be greater than zero: " + len); //$NON-NLS-1$
-		}
-		File result = new File(".."); //$NON-NLS-1$
-		for (int i = len - 1; i-- > 0; ) {
-			result = new File(result, ".."); //$NON-NLS-1$
-		}
-		return result;
-	}
-
-	/**
-	 * Return a file that is a re-specification of the specified
-	 * file, absolute to the specified directory.
-	 *     Linux/Unix/Mac:
-	 *         convertToAbsoluteFile(bar/baz.java, /foo)
-	 *             => /foo/bar/baz.java
-	 *     Windows:
-	 *         convertToAbsoluteFile(bar/baz.java, C:\foo)
-	 *             => C:\foo\bar\baz.java
-	 * The file can be either a file or a directory; the directory
-	 * *should* be a directory.
-	 * If the file is already absolute, it will be returned unchanged.
-	 * 
-	 * NB: This method has been tested on Windows and Linux,
-	 * but not Mac (but the Mac is Unix-based these days, so
-	 * it shouldn't be a problem...).
-	 */
-	public static File convertToAbsoluteFile(final File file, final File dir) {
-		// check whether the file is already absolute
-		if (file.isAbsolute()) {
-			return file;		// return unchanged
-		}
-		return canonicalFile(new File(dir, file.getPath()));
-	}
-
-	/**
-	 * Return a file that is a re-specification of the specified
-	 * file, absolute to the current working directory.
-	 *     Linux/Unix/Mac (CWD = /foo):
-	 *         convertToAbsoluteFile(bar/baz.java)
-	 *             => /foo/bar/baz.java
-	 *     Windows (CWD = C:\foo):
-	 *         convertToAbsoluteFile(bar/baz.java)
-	 *             => C:\foo\bar\baz.java
-	 * The file can be either a file or a directory.
-	 * If the file is already absolute, it will be returned unchanged.
-	 * 
-	 * NB: This method has been tested on Windows and Linux,
-	 * but not Mac (but the Mac is Unix-based these days, so
-	 * it shouldn't be a problem...).
-	 */
-	public static File convertToAbsoluteFile(final File file) {
-		return convertToAbsoluteFile(file, currentWorkingDirectory());
-	}
-
-
-	// ********** constructor **********
-
-	/**
-	 * Suppress default constructor, ensuring non-instantiability.
-	 */
-	private FileTools() {
-		super();
-		throw new UnsupportedOperationException();
-	}
-
-}
diff --git a/jpa/plugins/org.eclipse.jpt.utility/src/org/eclipse/jpt/utility/internal/HashBag.java b/jpa/plugins/org.eclipse.jpt.utility/src/org/eclipse/jpt/utility/internal/HashBag.java
deleted file mode 100644
index b3540e2..0000000
--- a/jpa/plugins/org.eclipse.jpt.utility/src/org/eclipse/jpt/utility/internal/HashBag.java
+++ /dev/null
@@ -1,913 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005, 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.utility.internal;
-
-import java.io.Serializable;
-import java.util.AbstractCollection;
-import java.util.Collection;
-import java.util.ConcurrentModificationException;
-import java.util.Iterator;
-import java.util.NoSuchElementException;
-
-/**
- * This class implements the <code>Bag</code> interface, backed by a
- * hash table. It makes no guarantees as to the iteration order of
- * the bag's elements; in particular, it does not guarantee that the order
- * will remain constant over time. This class permits the <code>null</code>
- * element.
- * <p>
- * This class offers constant time performance for the basic operations
- * (<code>add</code>, <code>remove</code>, <code>contains</code> and
- * <code>size</code>), assuming the hash function disperses the elements
- * properly among the buckets. Iterating over this bag requires time
- * proportional to the sum of the bag's size (the number of elements) plus the
- * "capacity" of the backing hash table (the number of buckets). Thus, it is
- * important not to set the initial capacity too high (or the load factor too
- * low) if iteration performance is important.
- * <p>
- * <b>Note that this implementation is not synchronized.</b> If multiple
- * threads access a bag concurrently, and at least one of the threads modifies
- * the bag, it <i>must</i> be synchronized externally. This is typically
- * accomplished by synchronizing on some object that naturally encapsulates
- * the bag. If no such object exists, the bag should be "wrapped" using the
- * <code>Collections.synchronizedCollection</code> method. This is
- * best done at creation time, to prevent accidental unsynchronized access
- * to the bag:
- * <pre>
- * Collection c = Collections.synchronizedCollection(new HashBag(...));
- * </pre>
- * <p>
- * The iterators returned by this class's <code>iterator</code> method are
- * <i>fail-fast</i>: if the bag is modified at any time after the iterator is
- * created, in any way except through the iterator's own <code>remove</code>
- * method, the iterator throws a <code>ConcurrentModificationException</code>.
- * Thus, in the face of concurrent modification, the iterator fails quickly
- * and cleanly, rather than risking arbitrary, non-deterministic behavior at
- * an undetermined time in the future.
- * 
- * @see	Collections#synchronizedCollection(Collection)
- */
-public class HashBag<E>
-	extends AbstractCollection<E>
-	implements Bag<E>, Cloneable, Serializable
-{
-
-	/** The hash table. */
-	transient Entry<E>[] table;
-
-	/** The total number of entries in the bag. */
-	transient int count = 0;
-
-	/** The number of unique entries in the bag. */
-	transient int uniqueCount = 0;
-
-	/**
-	 * The hash table is rehashed when its size exceeds this threshold. (The
-	 * value of this field is (int)(capacity * loadFactor).)
-	 *
-	 * @serial
-	 */
-	private int threshold;
-
-	/**
-	 * The load factor for the hash table.
-	 *
-	 * @serial
-	 */
-	private float loadFactor;
-
-	/**
-	 * The number of times this bag has been structurally modified.
-	 * Structural modifications are those that change the number of entries in
-	 * the bag or otherwise modify its internal structure (e.g. rehash).
-	 * This field is used to make iterators on this bag fail-fast.
-	 *
-	 * @see java.util.ConcurrentModificationException
-	 */
-	transient int modCount = 0;
-
-	/**
-	 * Constructs a new, empty bag with the
-	 * default capacity, which is 11, and load factor, which is 0.75.
-	 */
-	public HashBag() {
-		this(11, 0.75f);
-	}
-
-	/**
-	 * Constructs a new, empty bag with the specified initial capacity
-	 * and default load factor, which is 0.75.
-	 *
-	 * @param initialCapacity the initial capacity of the backing map.
-	 * @throws IllegalArgumentException if the initial capacity is less
-	 *     than zero.
-	 */
-	public HashBag(int initialCapacity) {
-		this(initialCapacity, 0.75f);
-	}
-
-	/**
-	 * Constructs a new, empty bag with
-	 * the specified initial capacity and the specified load factor.
-	 *
-	 * @param initialCapacity the initial capacity of the backing map.
-	 * @param loadFactor the load factor of the backing map.
-	 * @throws IllegalArgumentException if the initial capacity is less
-	 *     than zero, or if the load factor is nonpositive.
-	 */
-	public HashBag(int initialCapacity, float loadFactor) {
-		if (initialCapacity < 0) {
-			throw new IllegalArgumentException("Illegal Initial Capacity: " + initialCapacity); //$NON-NLS-1$
-		}
-		if (loadFactor <= 0 || Float.isNaN(loadFactor)) {
-			throw new IllegalArgumentException("Illegal Load factor: " + loadFactor); //$NON-NLS-1$
-		}
-		if (initialCapacity == 0) {
-			initialCapacity = 1;
-		}
-		this.loadFactor = loadFactor;
-		this.table = this.buildTable(initialCapacity);
-		this.threshold = (int) (initialCapacity * loadFactor);
-	}
-
-	/**
-	 * Constructs a new bag containing the elements in the specified
-	 * collection. The capacity of the bag is
-	 * twice the size of the specified collection or 11 (whichever is
-	 * greater), and the default load factor, which is 0.75, is used.
-	 *
-	 * @param c the collection whose elements are to be placed into this bag.
-	 */
-	public HashBag(Collection<? extends E> c) {
-		this(Math.max(2*c.size(), 11));
-		this.addAll(c);
-	}
-
-	/**
-	 * This implementation simply returns the maintained count.
-	 */
-	@Override
-	public int size() {
-		return this.count;
-	}
-
-	/**
-	 * This implementation simply compares the maintained count to zero.
-	 */
-	@Override
-	public boolean isEmpty() {
-		return this.count == 0;
-	}
-
-	/**
-	 * This implementation searches for the object in the hash table by calculating
-	 * the object's hash code and examining the entries in the corresponding hash
-	 * table bucket.
-	 */
-	@Override
-	public boolean contains(Object o) {
-		Entry<E>[] tab = this.table;
-		if (o == null) {
-			for (Entry<E> e = tab[0]; e != null; e = e.next) {
-				if (e.object == null) {
-					return true;
-				}
-			}
-		} else {
-			int hash = o.hashCode();
-			int index = (hash & 0x7FFFFFFF) % tab.length;
-			for (Entry<E> e = tab[index]; e != null; e = e.next) {
-				if ((e.hash == hash) && o.equals(e.object)) {
-					return true;
-				}
-			}
-		}
-		return false;
-	}
-
-	public int count(Object o) {
-		Entry<E>[] tab = this.table;
-		if (o == null) {
-			for (Entry<E> e = tab[0]; e != null; e = e.next) {
-				if (e.object == null) {
-					return e.count;
-				}
-			}
-		} else {
-			int hash = o.hashCode();
-			int index = (hash & 0x7FFFFFFF) % tab.length;
-			for (Entry<E> e = tab[index]; e != null; e = e.next) {
-				if ((e.hash == hash) && o.equals(e.object)) {
-					return e.count;
-				}
-			}
-		}
-		return 0;
-	}
-
-	/**
-	 * Rehashes the contents of this bag into a new hash table
-	 * with a larger capacity. This method is called when the
-	 * number of different elements in this map exceeds its
-	 * capacity and load factor.
-	 */
-	private void rehash() {
-		Entry<E>[] oldMap = this.table;
-		int oldCapacity = oldMap.length;
-
-		int newCapacity = oldCapacity * 2 + 1;
-		Entry<E>[] newTable = this.buildTable(newCapacity);
-
-		this.modCount++;
-		this.threshold = (int) (newCapacity * this.loadFactor);
-		this.table = newTable;
-
-		for (int i = oldCapacity; i-- > 0; ) {
-			for (Entry<E> old = oldMap[i]; old != null; ) {
-				Entry<E> e = old;
-				old = old.next;
-
-				int index = (e.hash & 0x7FFFFFFF) % newCapacity;
-				e.next = newTable[index];
-				newTable[index] = e;
-			}
-		}
-	}
-
-	@SuppressWarnings("unchecked")
-	private Entry<E>[] buildTable(int capacity) {
-		return new Entry[capacity];
-	}
-
-	@SuppressWarnings("unchecked")
-	private <T> Entry<E> buildEntry(int hash, Object o, Entry<T> next) {
-		return new Entry(hash, o, next);
-	}
-
-	@SuppressWarnings("unchecked")
-	private <T> Entry<E> buildEntry(int hash, Object o, int cnt, Entry<T> next) {
-		return new Entry(hash, o, cnt, next);
-	}
-
-	/**
-	 * This implementation searches for the object in the hash table by calculating
-	 * the object's hash code and examining the entries in the corresponding hash
-	 * table bucket.
-	 */
-	@Override
-	public boolean add(E o) {
-		this.modCount++;
-		Entry<E>[] tab = this.table;
-		int hash = 0;
-		int index = 0;
-
-		// if the object is already in the bag, simply bump its count
-		if (o == null) {
-			for (Entry<E> e = tab[0]; e != null; e = e.next) {
-				if (e.object == null) {
-					e.count++;
-					this.count++;
-					return true;
-				}
-			}
-		} else {
-			hash = o.hashCode();
-			index = (hash & 0x7FFFFFFF) % tab.length;
-			for (Entry<E> e = tab[index]; e != null; e = e.next) {
-				if ((e.hash == hash) && o.equals(e.object)) {
-					e.count++;
-					this.count++;
-					return true;
-				}
-			}
-		}
-
-		// rehash the table if the threshold is exceeded
-		if (this.uniqueCount >= this.threshold) {
-			this.rehash();
-			tab = this.table;
-			index = (hash & 0x7FFFFFFF) % tab.length;
-		}
-
-		// create the new entry and put it in the table
-		Entry<E> e = this.buildEntry(hash, o, tab[index]);
-		tab[index] = e;
-		this.count++;
-		this.uniqueCount++;
-		return true;
-	}
-
-	/**
-	 * This implementation searches for the object in the hash table by calculating
-	 * the object's hash code and examining the entries in the corresponding hash
-	 * table bucket.
-	 */
-	public boolean add(E o, int cnt) {
-		if (cnt <= 0) {
-			return false;
-		}
-		this.modCount++;
-		Entry<E>[] tab = this.table;
-		int hash = 0;
-		int index = 0;
-
-		// if the object is already in the bag, simply bump its count
-		if (o == null) {
-			for (Entry<E> e = tab[0]; e != null; e = e.next) {
-				if (e.object == null) {
-					e.count += cnt;
-					this.count += cnt;
-					return true;
-				}
-			}
-		} else {
-			hash = o.hashCode();
-			index = (hash & 0x7FFFFFFF) % tab.length;
-			for (Entry<E> e = tab[index]; e != null; e = e.next) {
-				if ((e.hash == hash) && o.equals(e.object)) {
-					e.count += cnt;
-					this.count += cnt;
-					return true;
-				}
-			}
-		}
-
-		// rehash the table if the threshold is exceeded
-		if (this.uniqueCount >= this.threshold) {
-			this.rehash();
-			tab = this.table;
-			index = (hash & 0x7FFFFFFF) % tab.length;
-		}
-
-		// create the new entry and put it in the table
-		Entry<E> e = this.buildEntry(hash, o, cnt, tab[index]);
-		tab[index] = e;
-		this.count += cnt;
-		this.uniqueCount++;
-		return true;
-	}
-
-	/**
-	 * This implementation searches for the object in the hash table by calculating
-	 * the object's hash code and examining the entries in the corresponding hash
-	 * table bucket.
-	 */
-	@Override
-	public boolean remove(Object o) {
-		Entry<E>[] tab = this.table;
-		if (o == null) {
-			for (Entry<E> e = tab[0], prev = null; e != null; prev = e, e = e.next) {
-				if (e.object == null) {
-					this.modCount++;
-					e.count--;
-					// if we are removing the last one, remove the entry from the table
-					if (e.count == 0) {
-						if (prev == null) {
-							tab[0] = e.next;
-						} else {
-							prev.next = e.next;
-						}
-						this.uniqueCount--;
-					}
-					this.count--;
-					return true;
-				}
-			}
-		} else {
-			int hash = o.hashCode();
-			int index = (hash & 0x7FFFFFFF) % tab.length;
-			for (Entry<E> e = tab[index], prev = null; e != null; prev = e, e = e.next) {
-				if ((e.hash == hash) && o.equals(e.object)) {
-					this.modCount++;
-					e.count--;
-					// if we are removing the last one, remove the entry from the table
-					if (e.count == 0) {
-						if (prev == null) {
-							tab[index] = e.next;
-						} else {
-							prev.next = e.next;
-						}
-						this.uniqueCount--;
-					}
-					this.count--;
-					return true;
-				}
-			}
-		}
-
-		return false;
-	}
-
-	/**
-	 * This implementation searches for the object in the hash table by calculating
-	 * the object's hash code and examining the entries in the corresponding hash
-	 * table bucket.
-	 */
-	public boolean remove(Object o, int cnt) {
-		if (cnt <= 0) {
-			return false;
-		}
-		Entry<E>[] tab = this.table;
-		if (o == null) {
-			for (Entry<E> e = tab[0], prev = null; e != null; prev = e, e = e.next) {
-				if (e.object == null) {
-					this.modCount++;
-					int cnt2 = (cnt < e.count) ? cnt : e.count;
-					e.count -= cnt2;
-					// if we are removing the last element(s), remove the entry from the table
-					if (e.count == 0) {
-						if (prev == null) {
-							tab[0] = e.next;
-						} else {
-							prev.next = e.next;
-						}
-						this.uniqueCount--;
-					}
-					this.count -= cnt2;
-					return true;
-				}
-			}
-		} else {
-			int hash = o.hashCode();
-			int index = (hash & 0x7FFFFFFF) % tab.length;
-			for (Entry<E> e = tab[index], prev = null; e != null; prev = e, e = e.next) {
-				if ((e.hash == hash) && o.equals(e.object)) {
-					this.modCount++;
-					int cnt2 = (cnt < e.count) ? cnt : e.count;
-					e.count -= cnt2;
-					// if we are removing the last element(s), remove the entry from the table
-					if (e.count == 0) {
-						if (prev == null) {
-							tab[index] = e.next;
-						} else {
-							prev.next = e.next;
-						}
-						this.uniqueCount--;
-					}
-					this.count -= cnt2;
-					return true;
-				}
-			}
-		}
-
-		return false;
-	}
-
-	/**
-	 * This implementation simply clears out all of the hash table buckets.
-	 */
-	@Override
-	public void clear() {
-		Entry<E>[] tab = this.table;
-		this.modCount++;
-		for (int i = tab.length; --i >= 0; ) {
-			tab[i] = null;
-		}
-		this.count = 0;
-		this.uniqueCount = 0;
-	}
-
-	/**
-	 * Returns a shallow copy of this bag: the elements
-	 * themselves are not cloned.
-	 *
-	 * @return a shallow copy of this bag.
-	 */
-	@Override
-	public HashBag<E> clone() {
-		try {
-			@SuppressWarnings("unchecked")
-			HashBag<E> clone = (HashBag<E>) super.clone();
-			clone.table = this.buildTable(this.table.length);
-			for (int i = this.table.length; i-- > 0; ) {
-				clone.table[i] = (this.table[i] == null) 
-						? null : (Entry<E>) this.table[i].clone();
-			}
-			clone.modCount = 0;
-			return clone;
-		} catch (CloneNotSupportedException e) {
-			throw new InternalError();
-		}
-	}
-
-
-	/**
-	 * Hash table collision list entry.
-	 */
-	private static class Entry<E> implements Bag.Entry<E> {
-		int hash;
-		E object;
-		int count;
-		Entry<E> next;
-
-		Entry(int hash, E object, Entry<E> next) {
-			this(hash, object, 1, next);
-		}
-
-		Entry(int hash, E object, int count, Entry<E> next) {
-			this.hash = hash;
-			this.object = object;
-			this.count = count;
-			this.next = next;
-		}
-
-		/**
-		 * Cascade the clone to all the entries in the same bucket.
-		 */
-		@Override
-		@SuppressWarnings("unchecked")
-		protected Entry<E> clone() {
-			return new Entry(this.hash, this.object, this.count,
-					(this.next == null ? null : this.next.clone()));
-		}
-
-		// ***** Bag.Entry implementation
-		public E getElement() {
-			return this.object;
-		}
-
-		public int getCount() {
-			return this.count;
-		}
-
-		public int setCount(int count) {
-			if (count <= 0) {
-				throw new IllegalArgumentException("count must be greater than zero: " + count); //$NON-NLS-1$
-			}
-			int old = this.count;
-			this.count = count;
-			return old;
-		}
-
-		@Override
-		public boolean equals(Object o) {
-			if ( ! (o instanceof Bag.Entry)) {
-				return false;
-			}
-			@SuppressWarnings("unchecked")
-			Bag.Entry e = (Bag.Entry) o;
-			if (this.count != e.getCount()) {
-				return false;
-			}
-			Object o1 = this.object;
-			Object o2 = e.getElement();
-			if (o1 == o2) {
-				return true;
-			}
-			if (o1 == null) {
-				return false;
-			}
-			return o1.equals(o2);
-		}
-
-		@Override
-		public int hashCode() {
-			E o = this.object;
-			return (o == null) ? 0 : (this.count * o.hashCode());
-		}
-
-		@Override
-		public String toString() {
-			return this.object + "=>" + this.count; //$NON-NLS-1$
-		}
-	}
-
-
-	@Override
-	@SuppressWarnings("unchecked")
-	public Iterator<E> iterator() {
-		return (this.count == 0) ? EMPTY_ITERATOR : new HashIterator();
-	}
-
-	@SuppressWarnings("unchecked")
-	public Iterator<E> uniqueIterator() {
-		return (this.count == 0) ? EMPTY_ITERATOR : new UniqueIterator();
-	}
-
-	@SuppressWarnings("unchecked")
-	public Iterator<Bag.Entry<E>> entries() {
-		return (this.count == 0) ? EMPTY_ITERATOR : new EntryIterator();
-	}
-
-
-	/**
-	 * Empty iterator that does just about nothing.
-	 */
-	@SuppressWarnings("unchecked")
-	private static final Iterator EMPTY_ITERATOR = new EmptyIterator();
-
-	@SuppressWarnings("unchecked")
-	private static class EmptyIterator implements Iterator {
-
-		EmptyIterator() {
-			super();
-		}
-
-		public boolean hasNext() {
-			return false;
-		}
-
-		public Object next() {
-			throw new NoSuchElementException();
-		}
-
-		public void remove() {
-			throw new IllegalStateException();
-		}
-	}
-
-
-	private class HashIterator implements Iterator<E> {
-		private Entry<E>[] localTable = HashBag.this.table;
-		private int index = this.localTable.length;	// start at the end of the table
-		private Entry<E> nextEntry = null;
-		private int nextEntryCount = 0;
-		private Entry<E> lastReturnedEntry = null;
-
-		/**
-		 * The modCount value that the iterator believes that the backing
-		 * bag should have. If this expectation is violated, the iterator
-		 * has detected a concurrent modification.
-		 */
-		private int expectedModCount = HashBag.this.modCount;
-
-		HashIterator() {
-			super();
-		}
-
-		public boolean hasNext() {
-			Entry<E> e = this.nextEntry;
-			int i = this.index;
-			Entry<E>[] tab = this.localTable;
-			// Use locals for faster loop iteration
-			while ((e == null) && (i > 0)) {
-				e = tab[--i];		// move backwards through the table
-			}
-			this.nextEntry = e;
-			this.index = i;
-			return e != null;
-		}
-
-		public E next() {
-			if (HashBag.this.modCount != this.expectedModCount) {
-				throw new ConcurrentModificationException();
-			}
-			Entry<E> et = this.nextEntry;
-			int i = this.index;
-			Entry<E>[] tab = this.localTable;
-			// Use locals for faster loop iteration
-			while ((et == null) && (i > 0)) {
-				et = tab[--i];		// move backwards through the table
-			}
-			this.nextEntry = et;
-			this.index = i;
-			if (et == null) {
-				throw new NoSuchElementException();
-			}
-			Entry<E> e = this.lastReturnedEntry = this.nextEntry;
-			this.nextEntryCount++;
-			if (this.nextEntryCount == e.count) {
-				this.nextEntry = e.next;
-				this.nextEntryCount = 0;
-			}
-			return e.object;
-		}
-
-		public void remove() {
-			if (this.lastReturnedEntry == null) {
-				throw new IllegalStateException();
-			}
-			if (HashBag.this.modCount != this.expectedModCount) {
-				throw new ConcurrentModificationException();
-			}
-			Entry<E>[] tab = this.localTable;
-			int slot = (this.lastReturnedEntry.hash & 0x7FFFFFFF) % tab.length;
-			for (Entry<E> e = tab[slot], prev = null; e != null; prev = e, e = e.next) {
-				if (e == this.lastReturnedEntry) {
-					HashBag.this.modCount++;
-					this.expectedModCount++;
-					e.count--;
-					if (e.count == 0) {
-						// if we are removing the last one, remove the entry from the table
-						if (prev == null) {
-							tab[slot] = e.next;
-						} else {
-							prev.next = e.next;
-						}
-						HashBag.this.uniqueCount--;
-					} else {
-						// slide back the count to account for the just-removed element
-						this.nextEntryCount--;
-					}
-					HashBag.this.count--;
-					this.lastReturnedEntry = null;	// it cannot be removed again
-					return;
-				}
-			}
-			throw new ConcurrentModificationException();
-		}
-
-	}
-
-
-	private class EntryIterator implements Iterator<Entry<E>> {
-		private Entry<E>[] localTable = HashBag.this.table;
-		private int index = this.localTable.length;	// start at the end of the table
-		private Entry<E> nextEntry = null;
-		private Entry<E> lastReturnedEntry = null;
-
-		/**
-		 * The modCount value that the iterator believes that the backing
-		 * bag should have. If this expectation is violated, the iterator
-		 * has detected a concurrent modification.
-		 */
-		private int expectedModCount = HashBag.this.modCount;
-
-		EntryIterator() {
-			super();
-		}
-
-		public boolean hasNext() {
-			Entry<E> e = this.nextEntry;
-			int i = this.index;
-			Entry<E>[] tab = this.localTable;
-			// Use locals for faster loop iteration
-			while ((e == null) && (i > 0)) {
-				e = tab[--i];		// move backwards through the table
-			}
-			this.nextEntry = e;
-			this.index = i;
-			return e != null;
-		}
-
-		public Entry<E> next() {
-			if (HashBag.this.modCount != this.expectedModCount) {
-				throw new ConcurrentModificationException();
-			}
-			Entry<E> et = this.nextEntry;
-			int i = this.index;
-			Entry<E>[] tab = this.localTable;
-			// Use locals for faster loop iteration
-			while ((et == null) && (i > 0)) {
-				et = tab[--i];		// move backwards through the table
-			}
-			this.nextEntry = et;
-			this.index = i;
-			if (et == null) {
-				throw new NoSuchElementException();
-			}
-			Entry<E> e = this.lastReturnedEntry = this.nextEntry;
-			this.nextEntry = e.next;
-			return e;
-		}
-
-		public void remove() {
-			if (this.lastReturnedEntry == null) {
-				throw new IllegalStateException();
-			}
-			if (HashBag.this.modCount != this.expectedModCount) {
-				throw new ConcurrentModificationException();
-			}
-			Entry<E>[] tab = this.localTable;
-			int slot = (this.lastReturnedEntry.hash & 0x7FFFFFFF) % tab.length;
-			for (Entry<E> e = tab[slot], prev = null; e != null; prev = e, e = e.next) {
-				if (e == this.lastReturnedEntry) {
-					HashBag.this.modCount++;
-					this.expectedModCount++;
-					// remove the entry from the table
-					if (prev == null) {
-						tab[slot] = e.next;
-					} else {
-						prev.next = e.next;
-					}
-					HashBag.this.uniqueCount--;
-					HashBag.this.count -= this.lastReturnedEntry.count;
-					this.lastReturnedEntry = null;	// it cannot be removed again
-					return;
-				}
-			}
-			throw new ConcurrentModificationException();
-		}
-
-	}
-
-
-	private class UniqueIterator implements Iterator<E> {
-		private EntryIterator entryIterator = new EntryIterator();
-		
-		UniqueIterator() {
-			super();
-		}
-
-		public boolean hasNext() {
-			return this.entryIterator.hasNext();
-		}
-
-		public E next() {
-			return this.entryIterator.next().object;
-		}
-
-		public void remove() {
-			this.entryIterator.remove();
-		}
-
-	}
-
-
-	@Override
-	public boolean equals(Object o) {
-		if (o == this) {
-			return true;
-		}
-		if ( ! (o instanceof Bag)) {
-			return false;
-		}
-		@SuppressWarnings("unchecked")
-		Bag<E> b = (Bag<E>) o;
-		if (b.size() != this.size()) {
-			return false;
-		}
-		Bag<E> clone = this.clone();
-		for (E e : b) {
-			if ( ! clone.remove(e)) {
-				return false;
-			}
-		}
-		return clone.isEmpty();
-	}
-
-	@Override
-	public int hashCode() {
-		int h = 0;
-		for (Iterator<E> stream = this.iterator(); stream.hasNext(); ) {
-			Object next = stream.next();
-			if (next != null) {
-				h += next.hashCode();
-			}
-		}
-		return h;
-	}
-
-	/**
-	 * Save the state of this bag to a stream (i.e. serialize it).
-	 *
-	 * @serialData Emit the capacity of the bag (int),
-	 *     followed by the number of unique elements in the bag (int),
-	 *     followed by all of the bag's elements (each an Object) and
-	 *     their counts (each an int), in no particular order.
-	 */
-	private synchronized void writeObject(java.io.ObjectOutputStream s)
-				throws java.io.IOException {
-		// write out the threshold, load factor, and any hidden stuff
-		s.defaultWriteObject();
-
-		// write out number of buckets
-		s.writeInt(this.table.length);
-
-		// write out number of unique elements
-		s.writeInt(this.uniqueCount);
-
-		Entry<E>[] tab = this.table;
-		// write out elements and counts (alternating)
-		for (Entry<E> entry : tab) {
-			while (entry != null) {
-				s.writeObject(entry.object);
-				s.writeInt(entry.count);
-				entry = entry.next;
-			}
-		}
-	}
-
-	private static final long serialVersionUID = 1L;
-
-	/**
-	 * Reconstitute the bag from a stream (i.e. deserialize it).
-	 */
-	private synchronized void readObject(java.io.ObjectInputStream s)
-				throws java.io.IOException, ClassNotFoundException {
-		// read in the threshold, loadfactor, and any hidden stuff
-		s.defaultReadObject();
-
-		// read in number of buckets and allocate the bucket array
-		this.table = this.buildTable(s.readInt());
-
-		// read in number of unique elements
-		int unique = s.readInt();
-
-		// read the elements and counts, and put the elements in the bag
-		for (int i = 0; i < unique; i++) {
-			@SuppressWarnings("unchecked")
-			E element = (E) s.readObject();
-			int elementCount = s.readInt();
-			this.add(element, elementCount);
-		}
-	}
-
-}
diff --git a/jpa/plugins/org.eclipse.jpt.utility/src/org/eclipse/jpt/utility/internal/IdentityHashBag.java b/jpa/plugins/org.eclipse.jpt.utility/src/org/eclipse/jpt/utility/internal/IdentityHashBag.java
deleted file mode 100644
index 523a390..0000000
--- a/jpa/plugins/org.eclipse.jpt.utility/src/org/eclipse/jpt/utility/internal/IdentityHashBag.java
+++ /dev/null
@@ -1,878 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.utility.internal;
-
-import java.io.Serializable;
-import java.util.AbstractCollection;
-import java.util.Collection;
-import java.util.ConcurrentModificationException;
-import java.util.Iterator;
-import java.util.NoSuchElementException;
-
-/**
- * This class implements the <code>Bag</code> interface with a
- * hash table, using object-identity in place of object-equality when
- * comparing elements. In other words, in an <code>IdentityHashBag</code>,
- * two objects <code>k1</code> and <code>k2</code> are considered
- * equal if and only if <code>(k1 == k2)</code>. (In normal <code>Bag</code>
- * implementations (like <code>HashBag</code>) two objects <code>k1</code>
- * and <code>k2</code> are considered equal if and only if
- * <code>(k1 == null ? k2 == null : k1.equals(k2))</code>.)
- * <p>
- * <b>
- * This class is <i>not</i> a general-purpose <code>Bag</code>
- * implementation! While this class implements the <code>Bag</code> interface, it
- * intentionally violates <code>Bag's</code> general contract, which mandates the
- * use of the <code>equals</code> method when comparing objects. This class is
- * designed for use only in the rare cases wherein object-identity
- * semantics are required.
- * </b>
- * <p>
- * This class makes no guarantees as to the iteration order of
- * the bag's elements; in particular, it does not guarantee that the order
- * will remain constant over time. This class permits the <code>null</code>
- * element.
- * <p>
- * This class offers constant time performance for the basic operations
- * (<code>add</code>, <code>remove</code>, <code>contains</code> and
- * <code>size</code>), assuming the system identity hash function
- * ({@link System#identityHashCode(Object)}) disperses elements properly
- * among the buckets. Iterating over this bag requires time
- * proportional to the sum of the bag's size (the number of elements) plus the
- * "capacity" of the backing hash table (the number of buckets). Thus, it is
- * important not to set the initial capacity too high (or the load factor too
- * low) if iteration performance is important.
- * <p>
- * <b>Note that this implementation is not synchronized.</b> If multiple
- * threads access a bag concurrently, and at least one of the threads modifies
- * the bag, it <i>must</i> be synchronized externally. This is typically
- * accomplished by synchronizing on some object that naturally encapsulates
- * the bag. If no such object exists, the bag should be "wrapped" using the
- * <code>Collections.synchronizedCollection</code> method. This is
- * best done at creation time, to prevent accidental unsynchronized access
- * to the bag:
- * <pre>
- * Collection c = Collections.synchronizedCollection(new IdentityHashBag(...));
- * </pre>
- * <p>
- * The iterators returned by this class's <code>iterator</code> method are
- * <i>fail-fast</i>: if the bag is modified at any time after the iterator is
- * created, in any way except through the iterator's own <code>remove</code>
- * method, the iterator throws a <code>ConcurrentModificationException</code>.
- * Thus, in the face of concurrent modification, the iterator fails quickly
- * and cleanly, rather than risking arbitrary, non-deterministic behavior at
- * an undetermined time in the future.
- * 
- * @see	Collections#synchronizedCollection(Collection)
- */
-
-public class IdentityHashBag<E>
-	extends AbstractCollection<E>
-	implements Bag<E>, Cloneable, Serializable
-{
-
-	/** The hash table. */
-	transient Entry<E>[] table;
-
-	/** The total number of entries in the bag. */
-	transient int count = 0;
-
-	/** The number of unique entries in the bag. */
-	transient int uniqueCount = 0;
-
-	/**
-	 * The hash table is rehashed when its size exceeds this threshold. (The
-	 * value of this field is (int)(capacity * loadFactor).)
-	 *
-	 * @serial
-	 */
-	private int threshold;
-
-	/**
-	 * The load factor for the hash table.
-	 *
-	 * @serial
-	 */
-	private float loadFactor;
-
-	/**
-	 * The number of times this bag has been structurally modified.
-	 * Structural modifications are those that change the number of entries in
-	 * the bag or otherwise modify its internal structure (e.g. rehash).
-	 * This field is used to make iterators on this bag fail-fast.
-	 *
-	 * @see java.util.ConcurrentModificationException
-	 */
-	transient int modCount = 0;
-
-	/**
-	 * Constructs a new, empty bag with the
-	 * default capacity, which is 11, and load factor, which is 0.75.
-	 */
-	public IdentityHashBag() {
-		this(11, 0.75f);
-	}
-
-	/**
-	 * Constructs a new, empty bag with the specified initial capacity
-	 * and default load factor, which is 0.75.
-	 *
-	 * @param initialCapacity the initial capacity of the backing map.
-	 * @throws IllegalArgumentException if the initial capacity is less
-	 *     than zero.
-	 */
-	public IdentityHashBag(int initialCapacity) {
-		this(initialCapacity, 0.75f);
-	}
-
-	/**
-	 * Constructs a new, empty bag with
-	 * the specified initial capacity and the specified load factor.
-	 *
-	 * @param initialCapacity the initial capacity of the backing map.
-	 * @param loadFactor the load factor of the backing map.
-	 * @throws IllegalArgumentException if the initial capacity is less
-	 *     than zero, or if the load factor is nonpositive.
-	 */
-	public IdentityHashBag(int initialCapacity, float loadFactor) {
-		if (initialCapacity < 0) {
-			throw new IllegalArgumentException("Illegal Initial Capacity: " + initialCapacity); //$NON-NLS-1$
-		}
-		if (loadFactor <= 0 || Float.isNaN(loadFactor)) {
-			throw new IllegalArgumentException("Illegal Load factor: " + loadFactor); //$NON-NLS-1$
-		}
-		if (initialCapacity == 0) {
-			initialCapacity = 1;
-		}
-		this.loadFactor = loadFactor;
-		this.table = this.buildTable(initialCapacity);
-		this.threshold = (int) (initialCapacity * loadFactor);
-	}
-
-	/**
-	 * Constructs a new bag containing the elements in the specified
-	 * collection. The capacity of the bag is
-	 * twice the size of the specified collection or 11 (whichever is
-	 * greater), and the default load factor, which is 0.75, is used.
-	 *
-	 * @param c the collection whose elements are to be placed into this bag.
-	 */
-	public IdentityHashBag(Collection<? extends E> c) {
-		this(Math.max(2*c.size(), 11));
-		this.addAll(c);
-	}
-
-	/**
-	 * This implementation simply returns the maintained count.
-	 */
-	@Override
-	public int size() {
-		return this.count;
-	}
-
-	/**
-	 * This implementation simply compares the maintained count to zero.
-	 */
-	@Override
-	public boolean isEmpty() {
-		return this.count == 0;
-	}
-
-	/**
-	 * This implementation searches for the object in the hash table by
-	 * calculating the object's identity hash code and examining the
-	 * entries in the corresponding hash table bucket.
-	 */
-	@Override
-	public boolean contains(Object o) {
-		Entry<E>[] tab = this.table;
-		int hash = System.identityHashCode(o);
-		int index = (hash & 0x7FFFFFFF) % tab.length;
-		for (Entry<E> e = tab[index]; e != null; e = e.next) {
-			if ((e.hash == hash) && (e.object == o)) {
-				return true;
-			}
-		}
-		return false;
-	}
-
-	public int count(Object o) {
-		Entry<E>[] tab = this.table;
-		int hash = System.identityHashCode(o);
-		int index = (hash & 0x7FFFFFFF) % tab.length;
-		for (Entry<E> e = tab[index]; e != null; e = e.next) {
-			if ((e.hash == hash) && (e.object == o)) {
-				return e.count;
-			}
-		}
-		return 0;
-	}
-
-	/**
-	 * Rehashes the contents of this bag into a new hash table
-	 * with a larger capacity. This method is called when the
-	 * number of different elements in this map exceeds its
-	 * capacity and load factor.
-	 */
-	private void rehash() {
-		Entry<E>[] oldMap = this.table;
-		int oldCapacity = oldMap.length;
-
-		int newCapacity = oldCapacity * 2 + 1;
-		Entry<E>[] newTable = this.buildTable(newCapacity);
-
-		this.modCount++;
-		this.threshold = (int) (newCapacity * this.loadFactor);
-		this.table = newTable;
-
-		for (int i = oldCapacity; i-- > 0; ) {
-			for (Entry<E> old = oldMap[i]; old != null; ) {
-				Entry<E> e = old;
-				old = old.next;
-
-				int index = (e.hash & 0x7FFFFFFF) % newCapacity;
-				e.next = newTable[index];
-				newTable[index] = e;
-			}
-		}
-	}
-
-	@SuppressWarnings("unchecked")
-	private Entry<E>[] buildTable(int capacity) {
-		return new Entry[capacity];
-	}
-
-	@SuppressWarnings("unchecked")
-	private <T> Entry<E> buildEntry(int hash, Object o, Entry<T> next) {
-		return new Entry(hash, o, next);
-	}
-
-	@SuppressWarnings("unchecked")
-	private <T> Entry<E> buildEntry(int hash, Object o, int cnt, Entry<T> next) {
-		return new Entry(hash, o, cnt, next);
-	}
-
-	/**
-	 * This implementation searches for the object in the hash table by
-	 * calculating the object's identity hash code and examining the
-	 * entries in the corresponding hash table bucket.
-	 */
-	@Override
-	public boolean add(E o) {
-		this.modCount++;
-		Entry<E>[] tab = this.table;
-		int hash = 0;
-		int index = 0;
-
-		// if the object is already in the bag, simply bump its count
-		hash = System.identityHashCode(o);
-		index = (hash & 0x7FFFFFFF) % tab.length;
-		for (Entry<E> e = tab[index]; e != null; e = e.next) {
-			if ((e.hash == hash) && (e.object == o)) {
-				e.count++;
-				this.count++;
-				return true;
-			}
-		}
-
-		// rehash the table if the threshold is exceeded
-		if (this.uniqueCount >= this.threshold) {
-			this.rehash();
-			tab = this.table;
-			index = (hash & 0x7FFFFFFF) % tab.length;
-		}
-
-		// create the new entry and put it in the table
-		Entry<E> e = this.buildEntry(hash, o, tab[index]);
-		tab[index] = e;
-		this.count++;
-		this.uniqueCount++;
-		return true;
-	}
-
-	/**
-	 * This implementation searches for the object in the hash table by
-	 * calculating the object's identity hash code and examining the
-	 * entries in the corresponding hash table bucket.
-	 */
-	public boolean add(E o, int cnt) {
-		if (cnt <= 0) {
-			return false;
-		}
-		this.modCount++;
-		Entry<E>[] tab = this.table;
-		int hash = 0;
-		int index = 0;
-
-		// if the object is already in the bag, simply bump its count
-		hash = System.identityHashCode(o);
-		index = (hash & 0x7FFFFFFF) % tab.length;
-		for (Entry<E> e = tab[index]; e != null; e = e.next) {
-			if ((e.hash == hash) && (e.object == o)) {
-				e.count += cnt;
-				this.count += cnt;
-				return true;
-			}
-		}
-
-		// rehash the table if the threshold is exceeded
-		if (this.uniqueCount >= this.threshold) {
-			this.rehash();
-			tab = this.table;
-			index = (hash & 0x7FFFFFFF) % tab.length;
-		}
-
-		// create the new entry and put it in the table
-		Entry<E> e = this.buildEntry(hash, o, cnt, tab[index]);
-		tab[index] = e;
-		this.count += cnt;
-		this.uniqueCount++;
-		return true;
-	}
-
-	/**
-	 * This implementation searches for the object in the hash table by
-	 * calculating the object's identity hash code and examining the
-	 * entries in the corresponding hash table bucket.
-	 */
-	@Override
-	public boolean remove(Object o) {
-		Entry<E>[] tab = this.table;
-		int hash = System.identityHashCode(o);
-		int index = (hash & 0x7FFFFFFF) % tab.length;
-		for (Entry<E> e = tab[index], prev = null; e != null; prev = e, e = e.next) {
-			if ((e.hash == hash) && (e.object == o)) {
-				this.modCount++;
-				e.count--;
-				// if we are removing the last one, remove the entry from the table
-				if (e.count == 0) {
-					if (prev == null) {
-						tab[index] = e.next;
-					} else {
-						prev.next = e.next;
-					}
-					this.uniqueCount--;
-				}
-				this.count--;
-				return true;
-			}
-		}
-		return false;
-	}
-
-	/**
-	 * This implementation searches for the object in the hash table by
-	 * calculating the object's identity hash code and examining the
-	 * entries in the corresponding hash table bucket.
-	 */
-	public boolean remove(Object o, int cnt) {
-		if (cnt <= 0) {
-			return false;
-		}
-		Entry<E>[] tab = this.table;
-		int hash = System.identityHashCode(o);
-		int index = (hash & 0x7FFFFFFF) % tab.length;
-		for (Entry<E> e = tab[index], prev = null; e != null; prev = e, e = e.next) {
-			if ((e.hash == hash) && (e.object == o)) {
-				this.modCount++;
-				int cnt2 = (cnt < e.count) ? cnt : e.count;
-				e.count -= cnt2;
-				// if we are removing the last element(s), remove the entry from the table
-				if (e.count == 0) {
-					if (prev == null) {
-						tab[index] = e.next;
-					} else {
-						prev.next = e.next;
-					}
-					this.uniqueCount--;
-				}
-				this.count -= cnt2;
-				return true;
-			}
-		}
-		return false;
-	}
-
-	/**
-	 * This implementation uses object-identity to determine whether
-	 * specified collection contains a particular element.
-	 */
-	@Override
-	public boolean removeAll(Collection<?> c) {
-		return super.removeAll(this.buildIdentityHashBag(c));
-	}
-
-	/**
-	 * This implementation uses object-identity to determine whether
-	 * specified collection contains a particular element.
-	 */
-	@Override
-	public boolean retainAll(Collection<?> c) {
-		return super.retainAll(this.buildIdentityHashBag(c));
-	}
-
-	@SuppressWarnings("unchecked")
-	private Collection<?> buildIdentityHashBag(Collection<?> c) {
-		return new IdentityHashBag(c);
-	}
-
-	/**
-	 * This implementation simply clears out all of the hash table buckets.
-	 */
-	@Override
-	public void clear() {
-		Entry<E>[] tab = this.table;
-		this.modCount++;
-		for (int i = tab.length; --i >= 0; ) {
-			tab[i] = null;
-		}
-		this.count = 0;
-		this.uniqueCount = 0;
-	}
-
-	/**
-	 * Returns a shallow copy of this bag: the elements
-	 * themselves are not cloned.
-	 *
-	 * @return a shallow copy of this bag.
-	 */
-	@Override
-	public IdentityHashBag<E> clone() {
-		try {
-			@SuppressWarnings("unchecked")
-			IdentityHashBag<E> clone = (IdentityHashBag<E>) super.clone();
-			clone.table = this.buildTable(this.table.length);
-			for (int i = this.table.length; i-- > 0; ) {
-				clone.table[i] = (this.table[i] == null) 
-						? null : (Entry<E>) this.table[i].clone();
-			}
-			clone.modCount = 0;
-			return clone;
-		} catch (CloneNotSupportedException e) {
-			throw new InternalError();
-		}
-	}
-
-
-	/**
-	 * Hash table collision list entry.
-	 */
-	private static class Entry<E> implements Bag.Entry<E> {
-		int hash;
-		E object;
-		int count;
-		Entry<E> next;
-
-		Entry(int hash, E object, Entry<E> next) {
-			this(hash, object, 1, next);
-		}
-
-		Entry(int hash, E object, int count, Entry<E> next) {
-			this.hash = hash;
-			this.object = object;
-			this.count = count;
-			this.next = next;
-		}
-
-		/**
-		 * Cascade the clone to all the entries in the same bucket.
-		 */
-		@Override
-		@SuppressWarnings("unchecked")
-		protected Entry<E> clone() {
-			return new Entry(this.hash, this.object, this.count,
-					(this.next == null ? null : this.next.clone()));
-		}
-
-
-		// ***** Bag.Entry implementation
-		public E getElement() {
-			return this.object;
-		}
-
-		public int getCount() {
-			return this.count;
-		}
-
-		public int setCount(int count) {
-			if (count <= 0) {
-				throw new IllegalArgumentException("count must be greater than zero: " + count); //$NON-NLS-1$
-			}
-			int old = this.count;
-			this.count = count;
-			return old;
-		}
-
-		@Override
-		public boolean equals(Object o) {
-			if ( ! (o instanceof Bag.Entry)) {
-				return false;
-			}
-			@SuppressWarnings("unchecked")
-			Bag.Entry e = (Bag.Entry) o;
-			return (this.object == e.getElement())
-					&& (this.count == e.getCount());
-		}
-
-		@Override
-		public int hashCode() {
-			E o = this.object;
-			return (o == null) ? 0 : (this.count * o.hashCode());
-		}
-
-		@Override
-		public String toString() {
-			return this.object + "=>" + this.count; //$NON-NLS-1$
-		}
-	}
-
-
-	@Override
-	@SuppressWarnings("unchecked")
-	public Iterator<E> iterator() {
-		return (this.count == 0) ? EMPTY_ITERATOR : new HashIterator();
-	}
-
-	/**
-	 * Return an iterator that returns each item in the bag
-	 * once and only once, irrespective of how many times
-	 * the item was added to the bag.
-	 */
-	@SuppressWarnings("unchecked")
-	public Iterator<E> uniqueIterator() {
-		return (this.count == 0) ? EMPTY_ITERATOR : new UniqueIterator();
-	}
-
-	@SuppressWarnings("unchecked")
-	public Iterator<Bag.Entry<E>> entries() {
-		return (this.count == 0) ? EMPTY_ITERATOR : new EntryIterator();
-	}
-
-
-	/**
-	 * Empty iterator that does just about nothing.
-	 */
-	@SuppressWarnings("unchecked")
-	private static final Iterator EMPTY_ITERATOR = new EmptyIterator();
-
-	@SuppressWarnings("unchecked")
-	private static class EmptyIterator implements Iterator {
-
-		EmptyIterator() {
-			super();
-		}
-
-		public boolean hasNext() {
-			return false;
-		}
-
-		public Object next() {
-			throw new NoSuchElementException();
-		}
-
-		public void remove() {
-			throw new IllegalStateException();
-		}
-	}
-
-
-	private class HashIterator implements Iterator<E> {
-		private Entry<E>[] localTable = IdentityHashBag.this.table;
-		private int index = this.localTable.length;	// start at the end of the table
-		private Entry<E> nextEntry = null;
-		private int nextEntryCount = 0;
-		private Entry<E> lastReturnedEntry = null;
-
-		/**
-		 * The modCount value that the iterator believes that the backing
-		 * bag should have. If this expectation is violated, the iterator
-		 * has detected a concurrent modification.
-		 */
-		private int expectedModCount = IdentityHashBag.this.modCount;
-
-		HashIterator() {
-			super();
-		}
-
-		public boolean hasNext() {
-			Entry<E> e = this.nextEntry;
-			int i = this.index;
-			Entry<E>[] tab = this.localTable;
-			// Use locals for faster loop iteration
-			while ((e == null) && (i > 0)) {
-				e = tab[--i];		// move backwards through the table
-			}
-			this.nextEntry = e;
-			this.index = i;
-			return e != null;
-		}
-
-		public E next() {
-			if (IdentityHashBag.this.modCount != this.expectedModCount) {
-				throw new ConcurrentModificationException();
-			}
-			Entry<E> et = this.nextEntry;
-			int i = this.index;
-			Entry<E>[] tab = this.localTable;
-			// Use locals for faster loop iteration
-			while ((et == null) && (i > 0)) {
-				et = tab[--i];		// move backwards through the table
-			}
-			this.nextEntry = et;
-			this.index = i;
-			if (et == null) {
-				throw new NoSuchElementException();
-			}
-			Entry<E> e = this.lastReturnedEntry = this.nextEntry;
-			this.nextEntryCount++;
-			if (this.nextEntryCount == e.count) {
-				this.nextEntry = e.next;
-				this.nextEntryCount = 0;
-			}
-			return e.object;
-		}
-
-		public void remove() {
-			if (this.lastReturnedEntry == null) {
-				throw new IllegalStateException();
-			}
-			if (IdentityHashBag.this.modCount != this.expectedModCount) {
-				throw new ConcurrentModificationException();
-			}
-			Entry<E>[] tab = this.localTable;
-			int slot = (this.lastReturnedEntry.hash & 0x7FFFFFFF) % tab.length;
-			for (Entry<E> e = tab[slot], prev = null; e != null; prev = e, e = e.next) {
-				if (e == this.lastReturnedEntry) {
-					IdentityHashBag.this.modCount++;
-					this.expectedModCount++;
-					e.count--;
-					if (e.count == 0) {
-						// if we are removing the last one, remove the entry from the table
-						if (prev == null) {
-							tab[slot] = e.next;
-						} else {
-							prev.next = e.next;
-						}
-						IdentityHashBag.this.uniqueCount--;
-					} else {
-						// slide back the count to account for the just-removed element
-						this.nextEntryCount--;
-					}
-					IdentityHashBag.this.count--;
-					this.lastReturnedEntry = null;	// it cannot be removed again
-					return;
-				}
-			}
-			throw new ConcurrentModificationException();
-		}
-	}
-
-
-	private class EntryIterator implements Iterator<Entry<E>> {
-		private Entry<E>[] localTable = IdentityHashBag.this.table;
-		private int index = this.localTable.length;	// start at the end of the table
-		private Entry<E> nextEntry = null;
-		private Entry<E> lastReturnedEntry = null;
-
-		/**
-		 * The modCount value that the iterator believes that the backing
-		 * bag should have. If this expectation is violated, the iterator
-		 * has detected a concurrent modification.
-		 */
-		private int expectedModCount = IdentityHashBag.this.modCount;
-
-		EntryIterator() {
-			super();
-		}
-
-		public boolean hasNext() {
-			Entry<E> e = this.nextEntry;
-			int i = this.index;
-			Entry<E>[] tab = this.localTable;
-			// Use locals for faster loop iteration
-			while ((e == null) && (i > 0)) {
-				e = tab[--i];		// move backwards through the table
-			}
-			this.nextEntry = e;
-			this.index = i;
-			return e != null;
-		}
-
-		public Entry<E> next() {
-			if (IdentityHashBag.this.modCount != this.expectedModCount) {
-				throw new ConcurrentModificationException();
-			}
-			Entry<E> et = this.nextEntry;
-			int i = this.index;
-			Entry<E>[] tab = this.localTable;
-			// Use locals for faster loop iteration
-			while ((et == null) && (i > 0)) {
-				et = tab[--i];		// move backwards through the table
-			}
-			this.nextEntry = et;
-			this.index = i;
-			if (et == null) {
-				throw new NoSuchElementException();
-			}
-			Entry<E> e = this.lastReturnedEntry = this.nextEntry;
-			this.nextEntry = e.next;
-			return e;
-		}
-
-		public void remove() {
-			if (this.lastReturnedEntry == null) {
-				throw new IllegalStateException();
-			}
-			if (IdentityHashBag.this.modCount != this.expectedModCount) {
-				throw new ConcurrentModificationException();
-			}
-			Entry<E>[] tab = this.localTable;
-			int slot = (this.lastReturnedEntry.hash & 0x7FFFFFFF) % tab.length;
-			for (Entry<E> e = tab[slot], prev = null; e != null; prev = e, e = e.next) {
-				if (e == this.lastReturnedEntry) {
-					IdentityHashBag.this.modCount++;
-					this.expectedModCount++;
-					// remove the entry from the table
-					if (prev == null) {
-						tab[slot] = e.next;
-					} else {
-						prev.next = e.next;
-					}
-					IdentityHashBag.this.uniqueCount--;
-					IdentityHashBag.this.count -= this.lastReturnedEntry.count;
-					this.lastReturnedEntry = null;	// it cannot be removed again
-					return;
-				}
-			}
-			throw new ConcurrentModificationException();
-		}
-
-	}
-
-
-	private class UniqueIterator implements Iterator<E> {
-		private EntryIterator entryIterator = new EntryIterator();
-		
-		UniqueIterator() {
-			super();
-		}
-
-		public boolean hasNext() {
-			return this.entryIterator.hasNext();
-		}
-
-		public E next() {
-			return this.entryIterator.next().object;
-		}
-
-		public void remove() {
-			this.entryIterator.remove();
-		}
-
-	}
-
-
-	@Override
-	public boolean equals(Object o) {
-		if (o == this) {
-			return true;
-		} else if (o instanceof IdentityHashBag) {
-			@SuppressWarnings("unchecked")
-			IdentityHashBag<E> b = (IdentityHashBag<E>) o;
-			if (b.size() != this.size()) {
-				return false;
-			}
-			IdentityHashBag<E> clone = this.clone();
-			for (E e : b) {
-				if ( ! clone.remove(e)) {
-					return false;
-				}
-			}
-			return clone.isEmpty();
-		} else if (o instanceof Bag) {
-			// hmmm...
-			return this.buildBag().equals(o);
-		} else {
-			return false;
-		}
-	}
-
-	@SuppressWarnings("unchecked")
-	private Bag<E> buildBag() {
-		return new HashBag(this);
-	}
-
-	@Override
-	public int hashCode() {
-		int h = 0;
-		for (E e : this) {
-			h += System.identityHashCode(e);
-		}
-		return h;
-	}
-
-	/**
-	 * Save the state of this bag to a stream (i.e. serialize it).
-	 *
-	 * @serialData Emit the capacity of the bag (int),
-	 *     followed by the number of unique elements in the bag (int),
-	 *     followed by all of the bag's elements (each an Object) and
-	 *     their counts (each an int), in no particular order.
-	 */
-	private synchronized void writeObject(java.io.ObjectOutputStream s)
-				throws java.io.IOException {
-		// write out the threshold, load factor, and any hidden stuff
-		s.defaultWriteObject();
-
-		// write out number of buckets
-		s.writeInt(this.table.length);
-
-		// write out number of unique elements
-		s.writeInt(this.uniqueCount);
-
-		Entry<E>[] tab = this.table;
-		// write out elements and counts (alternating)
-		for (Entry<E> entry : tab) {
-			while (entry != null) {
-				s.writeObject(entry.object);
-				s.writeInt(entry.count);
-				entry = entry.next;
-			}
-		}
-	}
-
-	private static final long serialVersionUID = 1L;
-
-	/**
-	 * Reconstitute the bag from a stream (i.e. deserialize it).
-	 */
-	private synchronized void readObject(java.io.ObjectInputStream s)
-				throws java.io.IOException, ClassNotFoundException {
-		// read in the threshold, loadfactor, and any hidden stuff
-		s.defaultReadObject();
-
-		// read in number of buckets and allocate the bucket array
-		this.table = this.buildTable(s.readInt());
-
-		// read in number of unique elements
-		int unique = s.readInt();
-
-		// read the elements and counts, and put the elements in the bag
-		for (int i = 0; i < unique; i++) {
-			@SuppressWarnings("unchecked")
-			E element = (E) s.readObject();
-			int elementCount = s.readInt();
-			for (int j = 0; j < elementCount; j++) {
-				this.add(element);
-			}
-		}
-	}
-
-}
diff --git a/jpa/plugins/org.eclipse.jpt.utility/src/org/eclipse/jpt/utility/internal/IndentingPrintWriter.java b/jpa/plugins/org.eclipse.jpt.utility/src/org/eclipse/jpt/utility/internal/IndentingPrintWriter.java
deleted file mode 100644
index 53e61be..0000000
--- a/jpa/plugins/org.eclipse.jpt.utility/src/org/eclipse/jpt/utility/internal/IndentingPrintWriter.java
+++ /dev/null
@@ -1,148 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005, 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.utility.internal;
-
-import java.io.PrintWriter;
-import java.io.Writer;
-
-/**
- * Extend PrintWriter to automatically indent new lines.
- */
-public class IndentingPrintWriter extends PrintWriter {
-
-	private final String indent;
-	private int indentLevel;
-	private boolean needsIndent;
-
-	public static String DEFAULT_INDENT = "\t"; //$NON-NLS-1$
-
-
-	/**
-	 * Construct a writer that indents with tabs.
-	 */
-	public IndentingPrintWriter(Writer out) {
-		this(out, DEFAULT_INDENT);
-	}
-	
-	/**
-	 * Construct a writer that indents with the specified string.
-	 */
-	public IndentingPrintWriter(Writer out, String indent) {
-		super(out);
-		this.indent = indent;
-		this.indentLevel = 0;
-		this.needsIndent = true;
-	}
-	
-	/**
-	 * Set flag so following line is indented.
-	 */
-	@Override
-	public void println() {
-		synchronized (this.lock) {
-			super.println();
-			this.needsIndent = true;
-		}
-	}
-	
-	/**
-	 * Print the appropriate indent.
-	 */
-	private void printIndent() {
-		if (this.needsIndent) {
-			this.needsIndent = false;
-			for (int i = this.indentLevel; i-- > 0; ) {
-				this.print(this.indent);
-			}
-		}
-	}
-	
-	/**
-	 * Write a portion of an array of characters.
-	 */
-	@Override
-	public void write(char buf[], int off, int len) {
-		synchronized (this.lock) {
-			this.printIndent();
-			super.write(buf, off, len);
-		}
-	}
-	
-	/**
-	 * Write a single character.
-	 */
-	@Override
-	public void write(int c) {
-		synchronized (this.lock) {
-			this.printIndent();
-			super.write(c);
-		}
-	}
-	
-	/**
-	 * Write a portion of a string.
-	 */
-	@Override
-	public void write(String s, int off, int len) {
-		synchronized (this.lock) {
-			this.printIndent();
-			super.write(s, off, len);
-		}
-	}
-	
-	/**
-	 * Bump the indent level.
-	 */
-	public void indent() {
-		this.incrementIndentLevel();
-	}
-	
-	/**
-	 * Decrement the indent level.
-	 */
-	public void undent() {
-		this.decrementIndentLevel();
-	}
-	
-	/**
-	 * Bump the indent level.
-	 */
-	public void incrementIndentLevel() {
-		synchronized (this.lock) {
-			this.indentLevel++;
-		}
-	}
-	
-	/**
-	 * Decrement the indent level.
-	 */
-	public void decrementIndentLevel() {
-		synchronized (this.lock) {
-			this.indentLevel--;
-		}
-	}
-	
-	/**
-	 * Return the current indent level.
-	 */
-	public int indentLevel() {
-		return this.indentLevel;
-	}
-	
-	/**
-	 * Allow the indent level to be set directly.
-	 */
-	public void setIndentLevel(int indentLevel) {
-		synchronized (this.lock) {
-			this.indentLevel = indentLevel;
-		}
-	}
-
-}
diff --git a/jpa/plugins/org.eclipse.jpt.utility/src/org/eclipse/jpt/utility/internal/JDBCTools.java b/jpa/plugins/org.eclipse.jpt.utility/src/org/eclipse/jpt/utility/internal/JDBCTools.java
deleted file mode 100644
index d3899ee..0000000
--- a/jpa/plugins/org.eclipse.jpt.utility/src/org/eclipse/jpt/utility/internal/JDBCTools.java
+++ /dev/null
@@ -1,349 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005, 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.utility.internal;
-
-import java.sql.Types;
-import java.util.HashMap;
-import org.eclipse.jpt.utility.JavaType;
-
-/**
- * Helper methods for dealing with the JDBC API.
- */
-public final class JDBCTools {
-
-
-	/**
-	 * Return the JDBC type corresponding to the specified class.
-	 * @see java.sql.Types
-	 */
-	public static JDBCType jdbcTypeForClassNamed(String className) {
-		JavaToJDBCTypeMapping mapping = javaToJDBCTypeMapping(className);
-		return (mapping == null) ? DEFAULT_JDBC_TYPE : mapping.getJDBCType();
-	}
-
-	/**
-	 * Return the JDBC type corresponding to the specified class.
-	 * @see java.sql.Types
-	 */
-	public static JDBCType jdbcTypeFor(Class<?> javaClass) {
-		return jdbcTypeForClassNamed(javaClass.getName());
-	}
-
-	/**
-	 * Return the JDBC type corresponding to the specified class.
-	 * @see java.sql.Types
-	 */
-	public static JDBCType jdbcTypeFor(JavaType javaType) {
-		return jdbcTypeForClassNamed(javaType.getJavaClassName());
-	}
-
-	/**
-	 * Return the Java type corresponding to the specified JDBC type.
-	 * @see java.sql.Types
-	 */
-	public static JavaType javaTypeForJDBCTypeNamed(String jdbcTypeName) {
-		JDBCToJavaTypeMapping mapping = jdbcToJavaTypeMapping(jdbcTypeName);
-		return (mapping == null) ? DEFAULT_JAVA_TYPE : mapping.getJavaType();
-	}
-
-	/**
-	 * Return the Java type corresponding to the specified JDBC type.
-	 * @see java.sql.Types
-	 */
-	public static JavaType javaTypeFor(JDBCType jdbcType) {
-		return javaTypeForJDBCTypeNamed(jdbcType.name());
-	}
-
-	/**
-	 * Return the Java type corresponding to the specified JDBC type.
-	 * @see java.sql.Types
-	 */
-	public static JavaType javaTypeForJDBCTypeCode(int jdbcTypeCode) {
-		return javaTypeFor(JDBCType.type(jdbcTypeCode));
-	}
-
-
-	// ********** internal stuff **********
-
-
-	// ********** JDBC => Java **********
-
-	/**
-	 * JDBC => Java type mappings, keyed by JDBC type name (e.g. "VARCHAR")
-	 */
-	private static HashMap<String, JDBCToJavaTypeMapping> JDBC_TO_JAVA_TYPE_MAPPINGS;  // pseudo 'final' - lazy-initialized
-	private static final JavaType DEFAULT_JAVA_TYPE = new SimpleJavaType(java.lang.Object.class);  // TODO Object is the default?
-
-
-	private static JDBCToJavaTypeMapping jdbcToJavaTypeMapping(String jdbcTypeName) {
-		return jdbcToJavaTypeMappings().get(jdbcTypeName);
-	}
-
-	private static synchronized HashMap<String, JDBCToJavaTypeMapping> jdbcToJavaTypeMappings() {
-		if (JDBC_TO_JAVA_TYPE_MAPPINGS == null) {
-			JDBC_TO_JAVA_TYPE_MAPPINGS = buildJDBCToJavaTypeMappings();
-		}
-		return JDBC_TO_JAVA_TYPE_MAPPINGS;
-	}
-
-	private static HashMap<String, JDBCToJavaTypeMapping> buildJDBCToJavaTypeMappings() {
-		HashMap<String, JDBCToJavaTypeMapping> mappings = new HashMap<String, JDBCToJavaTypeMapping>();
-		addJDBCToJavaTypeMappingsTo(mappings);
-		return mappings;
-	}
-
-	/**
-	 * hard code the default mappings from the JDBC types to the
-	 * appropriate Java types
-	 * @see java.sql.Types
-	 * see "JDBC 3.0 Specification" Appendix B
-	 */
-	private static void addJDBCToJavaTypeMappingsTo(HashMap<String, JDBCToJavaTypeMapping> mappings) {
-		addJDBCToJavaTypeMappingTo(Types.ARRAY, java.sql.Array.class, mappings);
-		addJDBCToJavaTypeMappingTo(Types.BIGINT, long.class, mappings);
-		addJDBCToJavaTypeMappingTo(Types.BINARY, byte[].class, mappings);
-		addJDBCToJavaTypeMappingTo(Types.BIT, boolean.class, mappings);
-		addJDBCToJavaTypeMappingTo(Types.BLOB, java.sql.Blob.class, mappings);
-		addJDBCToJavaTypeMappingTo(Types.BOOLEAN, boolean.class, mappings);
-		addJDBCToJavaTypeMappingTo(Types.CHAR, java.lang.String.class, mappings);
-		addJDBCToJavaTypeMappingTo(Types.CLOB, java.sql.Clob.class, mappings);
-		addJDBCToJavaTypeMappingTo(Types.DATALINK, java.net.URL.class, mappings);
-		addJDBCToJavaTypeMappingTo(Types.DATE, java.sql.Date.class, mappings);
-		addJDBCToJavaTypeMappingTo(Types.DECIMAL, java.math.BigDecimal.class, mappings);
-		addJDBCToJavaTypeMappingTo(Types.DISTINCT, java.lang.Object.class, mappings);  // ???
-		addJDBCToJavaTypeMappingTo(Types.DOUBLE, double.class, mappings);
-		addJDBCToJavaTypeMappingTo(Types.FLOAT, double.class, mappings);
-		addJDBCToJavaTypeMappingTo(Types.INTEGER, int.class, mappings);
-		addJDBCToJavaTypeMappingTo(Types.JAVA_OBJECT, java.lang.Object.class, mappings);  // ???
-		addJDBCToJavaTypeMappingTo(Types.LONGVARBINARY, byte[].class, mappings);
-		addJDBCToJavaTypeMappingTo(Types.LONGVARCHAR, java.lang.String.class, mappings);
-		// not sure why this is defined in java.sql.Types
-//		addJDBCToJavaTypeMappingTo(Types.NULL, java.lang.Object.class, mappings);
-		addJDBCToJavaTypeMappingTo(Types.NUMERIC, java.math.BigDecimal.class, mappings);
-		addJDBCToJavaTypeMappingTo(Types.OTHER, java.lang.Object.class, mappings);	// ???
-		addJDBCToJavaTypeMappingTo(Types.REAL, float.class, mappings);
-		addJDBCToJavaTypeMappingTo(Types.REF, java.sql.Ref.class, mappings);
-		addJDBCToJavaTypeMappingTo(Types.SMALLINT, short.class, mappings);
-		addJDBCToJavaTypeMappingTo(Types.STRUCT, java.sql.Struct.class, mappings);
-		addJDBCToJavaTypeMappingTo(Types.TIME, java.sql.Time.class, mappings);
-		addJDBCToJavaTypeMappingTo(Types.TIMESTAMP, java.sql.Timestamp.class, mappings);
-		addJDBCToJavaTypeMappingTo(Types.TINYINT, byte.class, mappings);
-		addJDBCToJavaTypeMappingTo(Types.VARBINARY, byte[].class, mappings);
-		addJDBCToJavaTypeMappingTo(Types.VARCHAR, java.lang.String.class, mappings);
-	}
-
-	private static void addJDBCToJavaTypeMappingTo(int jdbcTypeCode, Class<?> javaClass, HashMap<String, JDBCToJavaTypeMapping> mappings) {
-		// check for duplicates
-		JDBCType jdbcType = JDBCType.type(jdbcTypeCode);
-		Object prev = mappings.put(jdbcType.name(), buildJDBCToJavaTypeMapping(jdbcType, javaClass));
-		if (prev != null) {
-			throw new IllegalArgumentException("duplicate JDBC type: " + jdbcType.name()); //$NON-NLS-1$
-		}
-	}
-
-	private static JDBCToJavaTypeMapping buildJDBCToJavaTypeMapping(JDBCType jdbcType, Class<?> javaClass) {
-		return new JDBCToJavaTypeMapping(jdbcType, new SimpleJavaType(javaClass));
-	}
-
-
-	// ********** Java => JDBC **********
-
-	/**
-	 * Java => JDBC type mappings, keyed by Java class name (e.g. "java.lang.Object")
-	 */
-	private static HashMap<String, JavaToJDBCTypeMapping> JAVA_TO_JDBC_TYPE_MAPPINGS;  // pseudo 'final' - lazy-initialized
-	private static final JDBCType DEFAULT_JDBC_TYPE = JDBCType.type(Types.VARCHAR);  // TODO VARCHAR is the default?
-
-
-	private static JavaToJDBCTypeMapping javaToJDBCTypeMapping(String className) {
-		return javaToJDBCTypeMappings().get(className);
-	}
-
-	private static synchronized HashMap<String, JavaToJDBCTypeMapping> javaToJDBCTypeMappings() {
-		if (JAVA_TO_JDBC_TYPE_MAPPINGS == null) {
-			JAVA_TO_JDBC_TYPE_MAPPINGS = buildJavaToJDBCTypeMappings();
-		}
-		return JAVA_TO_JDBC_TYPE_MAPPINGS;
-	}
-
-	private static HashMap<String, JavaToJDBCTypeMapping> buildJavaToJDBCTypeMappings() {
-		HashMap<String, JavaToJDBCTypeMapping> mappings = new HashMap<String, JavaToJDBCTypeMapping>();
-		addJavaToJDBCTypeMappingsTo(mappings);
-		return mappings;
-	}
-
-	/**
-	 * hard code the default mappings from the Java types to the
-	 * appropriate JDBC types
-	 * @see java.sql.Types
-	 * see "JDBC 3.0 Specification" Appendix B
-	 */
-	private static void addJavaToJDBCTypeMappingsTo(HashMap<String, JavaToJDBCTypeMapping> mappings) {
-		// primitives
-		addJavaToJDBCTypeMappingTo(boolean.class, Types.BIT, mappings);
-		addJavaToJDBCTypeMappingTo(byte.class, Types.TINYINT, mappings);
-		addJavaToJDBCTypeMappingTo(double.class, Types.DOUBLE, mappings);
-		addJavaToJDBCTypeMappingTo(float.class, Types.REAL, mappings);
-		addJavaToJDBCTypeMappingTo(int.class, Types.INTEGER, mappings);
-		addJavaToJDBCTypeMappingTo(long.class, Types.BIGINT, mappings);
-		addJavaToJDBCTypeMappingTo(short.class, Types.SMALLINT, mappings);
-
-		// reference classes
-		addJavaToJDBCTypeMappingTo(java.lang.Boolean.class, Types.BIT, mappings);
-		addJavaToJDBCTypeMappingTo(java.lang.Byte.class, Types.TINYINT, mappings);
-		addJavaToJDBCTypeMappingTo(java.lang.Double.class, Types.DOUBLE, mappings);
-		addJavaToJDBCTypeMappingTo(java.lang.Float.class, Types.REAL, mappings);
-		addJavaToJDBCTypeMappingTo(java.lang.Integer.class, Types.INTEGER, mappings);
-		addJavaToJDBCTypeMappingTo(java.lang.Long.class, Types.BIGINT, mappings);
-		addJavaToJDBCTypeMappingTo(java.lang.Short.class, Types.SMALLINT, mappings);
-		addJavaToJDBCTypeMappingTo(java.lang.String.class, Types.VARCHAR, mappings);
-		addJavaToJDBCTypeMappingTo(java.math.BigDecimal.class, Types.NUMERIC, mappings);
-		addJavaToJDBCTypeMappingTo(java.net.URL.class, Types.DATALINK, mappings);
-		addJavaToJDBCTypeMappingTo(java.sql.Array.class, Types.ARRAY, mappings);
-		addJavaToJDBCTypeMappingTo(java.sql.Blob.class, Types.BLOB, mappings);
-		addJavaToJDBCTypeMappingTo(java.sql.Clob.class, Types.CLOB, mappings);
-		addJavaToJDBCTypeMappingTo(java.sql.Date.class, Types.DATE, mappings);
-		addJavaToJDBCTypeMappingTo(java.sql.Ref.class, Types.REF, mappings);
-		addJavaToJDBCTypeMappingTo(java.sql.Struct.class, Types.STRUCT, mappings);
-		addJavaToJDBCTypeMappingTo(java.sql.Time.class, Types.TIME, mappings);
-		addJavaToJDBCTypeMappingTo(java.sql.Timestamp.class, Types.TIMESTAMP, mappings);
-
-		// arrays
-		addJavaToJDBCTypeMappingTo(byte[].class, Types.VARBINARY, mappings);
-		addJavaToJDBCTypeMappingTo(java.lang.Byte[].class, Types.VARBINARY, mappings);
-	}
-
-	private static void addJavaToJDBCTypeMappingTo(Class<?> javaClass, int jdbcTypeCode, HashMap<String, JavaToJDBCTypeMapping> mappings) {
-		// check for duplicates
-		Object prev = mappings.put(javaClass.getName(), buildJavaToJDBCTypeMapping(javaClass, jdbcTypeCode));
-		if (prev != null) {
-			throw new IllegalArgumentException("duplicate Java class: " + ((JavaToJDBCTypeMapping) prev).getJavaType().declaration()); //$NON-NLS-1$
-		}
-	}
-
-	private static JavaToJDBCTypeMapping buildJavaToJDBCTypeMapping(Class<?> javaClass, int jdbcTypeCode) {
-		return new JavaToJDBCTypeMapping(new SimpleJavaType(javaClass), JDBCType.type(jdbcTypeCode));
-	}
-
-
-	// ********** constructor **********
-
-	/**
-	 * Suppress default constructor, ensuring non-instantiability.
-	 */
-	private JDBCTools() {
-		super();
-		throw new UnsupportedOperationException();
-	}
-
-
-	// ********** member classes **********
-
-	/**
-	 * JDBC => Java
-	 */
-	private static class JDBCToJavaTypeMapping {
-		private final JDBCType jdbcType;
-		private final JavaType javaType;
-
-		JDBCToJavaTypeMapping(JDBCType jdbcType, JavaType javaType) {
-			super();
-			this.jdbcType = jdbcType;
-			this.javaType = javaType;
-		}
-
-		public JDBCType getJDBCType() {
-			return this.jdbcType;
-		}
-
-		public JavaType getJavaType() {
-			return this.javaType;
-		}
-
-		public boolean maps(int jdbcTypeCode) {
-			return this.jdbcType.code() == jdbcTypeCode;
-		}
-
-		public boolean maps(String jdbcTypeName) {
-			return this.jdbcType.name().equals(jdbcTypeName);
-		}
-
-		public boolean maps(JDBCType type) {
-			return this.jdbcType == type;
-		}
-
-		@Override
-		public String toString() {
-			StringBuilder sb = new StringBuilder();
-			this.appendTo(sb);
-			return sb.toString();
-		}
-
-		public void appendTo(StringBuilder sb) {
-			this.jdbcType.appendTo(sb);
-			sb.append(" => "); //$NON-NLS-1$
-			this.javaType.appendDeclarationTo(sb);
-		}
-
-	}
-
-	/**
-	 * Java => JDBC
-	 */
-	private static class JavaToJDBCTypeMapping {
-		private final JavaType javaType;
-		private final JDBCType jdbcType;
-
-		JavaToJDBCTypeMapping(JavaType javaType, JDBCType jdbcType) {
-			super();
-			this.javaType = javaType;
-			this.jdbcType = jdbcType;
-		}
-
-		public JavaType getJavaType() {
-			return this.javaType;
-		}
-
-		public JDBCType getJDBCType() {
-			return this.jdbcType;
-		}
-
-		public boolean maps(JavaType jt) {
-			return this.javaType.equals(jt);
-		}
-
-		public boolean maps(String elementTypeName, int arrayDepth) {
-			return this.javaType.equals(elementTypeName, arrayDepth);
-		}
-
-		public boolean maps(String javaClassName) {
-			return this.javaType.describes(javaClassName);
-		}
-
-		public boolean maps(Class<?> javaClass) {
-			return this.javaType.describes(javaClass);
-		}
-
-		@Override
-		public String toString() {
-			StringBuilder sb = new StringBuilder();
-			this.appendTo(sb);
-			return sb.toString();
-		}
-
-		public void appendTo(StringBuilder sb) {
-			this.javaType.appendDeclarationTo(sb);
-			sb.append(" => "); //$NON-NLS-1$
-			this.jdbcType.appendTo(sb);
-		}
-
-	}
-
-}
diff --git a/jpa/plugins/org.eclipse.jpt.utility/src/org/eclipse/jpt/utility/internal/JDBCType.java b/jpa/plugins/org.eclipse.jpt.utility/src/org/eclipse/jpt/utility/internal/JDBCType.java
deleted file mode 100644
index ab95def..0000000
--- a/jpa/plugins/org.eclipse.jpt.utility/src/org/eclipse/jpt/utility/internal/JDBCType.java
+++ /dev/null
@@ -1,167 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005, 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.utility.internal;
-
-import java.io.Serializable;
-import java.lang.reflect.Field;
-import java.sql.Types;
-import com.ibm.icu.text.Collator;
-
-/**
- * Associate the Java constant and the JDBC type name.
- * These are derived from java.sql.Types.
- * 
- * @see java.sql.Types
- */
-public final class JDBCType
-	implements Comparable<JDBCType>, Cloneable, Serializable
-{
-
-	/**
-	 * the constant name (e.g. VARCHAR)
-	 */
-	private final String name;
-
-	/**
-	 * the JDBC code used by JDBC drivers
-	 */
-	private final int code;
-
-	private static final long serialVersionUID = 1L;
-
-
-	// ********** constructors **********
-
-	/**
-	 * Construct a JDBC type with the specified name and type code.
-	 * This is private because all the possible JDBC types are built and
-	 * stored in the static array TYPES.
-	 * @see #types()
-	 */
-	private JDBCType(String name, int code) {
-		super();
-		this.name = name;
-		this.code = code;
-	}
-
-
-	// ********** accessors **********
-
-	/**
-	 * Return the name of the type, as defined in java.sql.Types.
-	 */
-	public String name() {
-		return this.name;
-	}
-
-
-	/**
-	 * Return the type code, as defined in java.sql.Types.
-	 */
-	public int code() {
-		return this.code;
-	}
-
-
-	// ********** printing and displaying **********
-
-	public void appendTo(StringBuilder sb) {
-		sb.append(this.name);
-	}
-
-	@Override
-	public String toString() {
-		StringBuilder sb = new StringBuilder();
-		sb.append(ClassTools.shortClassNameForObject(this));
-		sb.append('(');
-		this.appendTo(sb);
-		sb.append(')');
-		return sb.toString();
-	}
-
-	@Override
-	public JDBCType clone() {
-		try {
-			return (JDBCType) super.clone();
-		} catch (CloneNotSupportedException ex) {
-			throw new InternalError();
-		}
-	}
-
-	public int compareTo(JDBCType type) {
-		return Collator.getInstance().compare(this.name, type.name);
-	}
-
-
-	// ********** static stuff **********
-
-	/**
-	 * all the JDBC type defined in java.sql.Types
-	 */
-	private static JDBCType[] TYPES;		// pseudo 'final' - lazy-initialized
-
-
-	public synchronized static JDBCType[] types() {
-		if (TYPES == null) {
-			TYPES = buildTypes();
-		}
-		return TYPES;
-	}
-
-	/**
-	 * Return the JDBC type for the specified type code (e.g. Types.VARCHAR).
-	 * @see java.sql.Types
-	 */
-	public static JDBCType type(int code) {
-		JDBCType[] types = types();
-		for (int i = types.length; i-- > 0; ) {
-			if (types[i].code() == code) {
-				return types[i];
-			}
-		}
-		throw new IllegalArgumentException("invalid JDBC type code: " + code); //$NON-NLS-1$
-	}
-
-	/**
-	 * Return the JDBC type for the specified type name (e.g. "VARCHAR").
-	 * @see java.sql.Types
-	 */
-	public static JDBCType type(String name) {
-		JDBCType[] types = types();
-		for (int i = types.length; i-- > 0; ) {
-			if (types[i].name().equals(name)) {
-				return types[i];
-			}
-		}
-		throw new IllegalArgumentException("invalid JDBC type name: " + name); //$NON-NLS-1$
-	}
-
-	/**
-	 * build up the JDBC types via reflection
-	 * @see java.sql.Types
-	 */
-	private static JDBCType[] buildTypes() {
-		Field[] fields = Types.class.getDeclaredFields();
-		int len = fields.length;
-		JDBCType[] types = new JDBCType[len];
-		for (int i = len; i-- > 0; ) {
-			String name = fields[i].getName();
-			int code;
-			try {
-				code = ((Integer) fields[i].get(null)).intValue();
-			} catch (IllegalAccessException ex) {
-				throw new RuntimeException(ex);	// shouldn't happen...
-			}
-			types[i] = new JDBCType(name, code);
-		}
-		return types;
-	}
-
-}
diff --git a/jpa/plugins/org.eclipse.jpt.utility/src/org/eclipse/jpt/utility/internal/ListenerList.java b/jpa/plugins/org.eclipse.jpt.utility/src/org/eclipse/jpt/utility/internal/ListenerList.java
deleted file mode 100644
index f1c57fc..0000000
--- a/jpa/plugins/org.eclipse.jpt.utility/src/org/eclipse/jpt/utility/internal/ListenerList.java
+++ /dev/null
@@ -1,117 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.utility.internal;
-
-import java.io.IOException;
-import java.io.ObjectInputStream;
-import java.io.ObjectOutputStream;
-import java.io.Serializable;
-import java.lang.reflect.Array;
-import java.util.Arrays;
-import java.util.EventListener;
-
-/**
- * Maintain a thread-safe list of listeners that does not allow duplicates.
- */
-public class ListenerList<L extends EventListener>
-	implements Serializable
-{
-	private transient volatile L[] listeners;
-
-	private static final long serialVersionUID = 1L;
-
-
-	public ListenerList(Class<L> listenerClass) {
-		super();
-		this.listeners = this.buildEmptyArray(listenerClass);
-	}
-
-	@SuppressWarnings("unchecked")
-	private L[] buildEmptyArray(Class<L> listenerClass) {
-		return (L[]) Array.newInstance(listenerClass, 0);
-	}
-
-	public L[] getListeners() {
-		return this.listeners;
-	}
-
-	public int size() {
-		return this.listeners.length;
-	}
-
-	public boolean isEmpty() {
-		return this.listeners.length == 0;
-	}
-
-	public synchronized void add(L listener) {
-		if (listener == null) {
-			throw new NullPointerException();
-		}
-		if (CollectionTools.contains(this.listeners, listener)) {
-			throw new IllegalArgumentException("duplicate listener: " + listener); //$NON-NLS-1$
-		}
-		this.listeners = CollectionTools.add(this.listeners, listener);
-	}
-
-	public synchronized void remove(L listener) {
-		if (listener == null) {
-			throw new NullPointerException();
-		}
-		int index = CollectionTools.indexOf(this.listeners, listener);
-		if (index == -1) {
-			throw new IllegalArgumentException("unregistered listener: " + listener); //$NON-NLS-1$
-		}
-		this.listeners = CollectionTools.removeElementAtIndex(this.listeners, index);
-	}
-
-	public synchronized void clear() {
-		this.listeners = CollectionTools.clear(this.listeners);
-	}
-
-	@Override
-	public String toString() {
-		return Arrays.toString(this.listeners);
-	}
-
-
-	// ********** serialization **********
-
-	private synchronized void writeObject(ObjectOutputStream s) throws IOException {
-		// write out any hidden stuff
-		s.defaultWriteObject();
-
-		@SuppressWarnings("unchecked")
-		Class<L> listenerClass = (Class<L>) this.listeners.getClass().getComponentType();
-		s.writeObject(listenerClass);
-
-		// only write out serializable listeners
-		for (L listener : this.listeners) {
-			if (listener instanceof Serializable) {
-				s.writeObject(listener);
-			}
-		}
-
-		s.writeObject(null);
-    }
-
-	@SuppressWarnings("unchecked")
-	private synchronized void readObject(ObjectInputStream s) throws ClassNotFoundException, IOException {
-		// read in any hidden stuff
-		s.defaultReadObject();
-
-		Class<L> listenerClass = (Class<L>) s.readObject();
-		this.listeners = this.buildEmptyArray(listenerClass);
-		Object o;
-		while ((o = s.readObject()) != null) {
-			this.add((L) o);
-		}
-	}
-
-}
diff --git a/jpa/plugins/org.eclipse.jpt.utility/src/org/eclipse/jpt/utility/internal/NameTools.java b/jpa/plugins/org.eclipse.jpt.utility/src/org/eclipse/jpt/utility/internal/NameTools.java
deleted file mode 100644
index 7090820..0000000
--- a/jpa/plugins/org.eclipse.jpt.utility/src/org/eclipse/jpt/utility/internal/NameTools.java
+++ /dev/null
@@ -1,374 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005, 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.utility.internal;
-
-import java.beans.Introspector;
-import java.util.Collection;
-import java.util.Collections;
-import java.util.HashSet;
-import java.util.Iterator;
-import java.util.SortedSet;
-import org.eclipse.jpt.utility.internal.iterators.ArrayIterator;
-
-/**
- * Various helper methods for generating names.
- */
-public final class NameTools {
-
-	/**
-	 * Given a "root" name and a set of existing names, generate a unique
-	 * name that is either the "root" name or some variation on the "root"
-	 * name (e.g. "root2", "root3",...). The names are case-sensitive
-	 * (i.e. "Root" and "root" are both allowed).
-	 */
-	public static String uniqueNameFor(String rootName, Iterator<String> existingNames) {
-		return uniqueNameFor(rootName, CollectionTools.set(existingNames));
-	}
-	
-	/**
-	 * Given a "root" name and a set of existing names, generate a unique
-	 * name that is either the "root" name or some variation on the "root"
-	 * name (e.g. "root2", "root3",...). The names are case-sensitive
-	 * (i.e. "Root" and "root" are both allowed).
-	 */
-	public static String uniqueNameFor(String rootName, Collection<String> existingNames) {
-		return uniqueNameFor(rootName, existingNames, rootName);
-	}
-
-	/**
-	 * Given a "root" name and a set of existing names, generate a unique
-	 * name that is either the "root" name or some variation on the "root"
-	 * name (e.g. "root2", "root3",...). The names are NOT case-sensitive
-	 * (i.e. "Root" and "root" are NOT both allowed).
-	 */
-	public static String uniqueNameForIgnoreCase(String rootName, Iterator<String> existingNames) {
-		return uniqueNameForIgnoreCase(rootName, CollectionTools.set(existingNames));
-	}
-
-	/**
-	 * Given a "root" name and a set of existing names, generate a unique
-	 * name that is either the "root" name or some variation on the "root"
-	 * name (e.g. "root2", "root3",...). The names are NOT case-sensitive
-	 * (i.e. "Root" and "root" are NOT both allowed).
-	 */
-	public static String uniqueNameForIgnoreCase(String rootName, Collection<String> existingNames) {
-		return uniqueNameFor(rootName, convertToLowerCase(existingNames), rootName.toLowerCase());
-	}
-
-	/**
-	 * use the suffixed "template" name to perform the comparisons, but RETURN
-	 * the suffixed "root" name; this allows case-insensitive comparisons
-	 * (i.e. the "template" name has been morphed to the same case as
-	 * the "existing" names, while the "root" name has not, but the "root" name
-	 * is what the client wants morphed to be unique)
-	 */
-	private static String uniqueNameFor(String rootName, Collection<String> existingNames, String templateName) {
-		if ( ! existingNames.contains(templateName)) {
-			return rootName;
-		}
-		String uniqueName = templateName;
-		for (int suffix = 2; true; suffix++) {
-			if ( ! existingNames.contains(uniqueName + suffix)) {
-				return rootName.concat(String.valueOf(suffix));
-			}
-		}
-	}
-
-	/**
-	 * Convert the specified collection of strings to a collection of the same
-	 * strings converted to lower case.
-	 */
-	private static HashSet<String> convertToLowerCase(Collection<String> strings) {
-		HashSet<String> result = new HashSet<String>(strings.size());
-		for (String string : strings) {
-			result.add(string.toLowerCase());
-		}
-		return result;
-	}
-
-	/**
-	 * Build a fully-qualified name for the specified database object.
-	 * Variations:
-	 *     catalog.schema.name
-	 *     catalog..name
-	 *     schema.name
-	 *     name
-	 */
-	public static String buildQualifiedDatabaseObjectName(String catalog, String schema, String name) {
-		if (name == null) {
-			return null;
-		}
-		if ((catalog == null) && (schema == null)) {
-			return name;
-		}
-
-		StringBuilder sb = new StringBuilder(100);
-		if (catalog != null) {
-			sb.append(catalog);
-			sb.append('.');
-		}
-		if (schema != null) {
-			sb.append(schema);
-		}
-		sb.append('.');
-		sb.append(name);
-		return sb.toString();
-	}
-
-	/**
-	 * The set of reserved words in the Java programming language.
-	 * These words cannot be used as identifiers (i.e. names).
-	 * http://java.sun.com/docs/books/tutorial/java/nutsandbolts/_keywords.html
-	 */
-	@SuppressWarnings("nls")
-	public static final String[] JAVA_RESERVED_WORDS = new String[] {
-				"abstract",
-				"assert",  // jdk 1.4
-				"boolean",
-				"break",
-				"byte",
-				"case",
-				"catch",
-				"char",
-				"class",
-				"const",  // unused
-				"continue",
-				"default",
-				"do",
-				"double",
-				"else",
-				"enum",  // jdk 1.5
-				"extends",
-				"false",
-				"final",
-				"finally",
-				"float",
-				"for",
-				"goto",  // unused
-				"if",
-				"implements",
-				"import",
-				"instanceof",
-				"int",
-				"interface",
-				"long",
-				"native",
-				"new",
-				"null",
-				"package",
-				"private",
-				"protected",
-				"public",
-				"return",
-				"short",
-				"static",
-				"strictfp",  // jdk 1.2
-				"super",
-				"switch",
-				"synchronized",
-				"this",
-				"throw",
-				"throws",
-				"transient",
-				"true",
-				"try",
-				"void",
-				"volatile",
-				"while"
-			};
-
-	/**
-	 * The set of reserved words in the Java programming language.
-	 * These words cannot be used as identifiers (i.e. names).
-	 * http://java.sun.com/docs/books/tutorial/java/nutsandbolts/_keywords.html
-	 */
-	public static final SortedSet<String> JAVA_RESERVED_WORDS_SET = 
-		Collections.unmodifiableSortedSet(CollectionTools.sortedSet(JAVA_RESERVED_WORDS));
-
-	/**
-	 * Return the set of Java programming language reserved words.
-	 * These words cannot be used as identifiers (i.e. names).
-	 * http://java.sun.com/docs/books/tutorial/java/nutsandbolts/_keywords.html
-	 */
-	public static Iterator<String> javaReservedWords() {
-		return new ArrayIterator<String>(JAVA_RESERVED_WORDS);
-	}
-
-	/**
-	 * Return whether the specified string consists of Java identifier
-	 * characters (but may be a reserved word).
-	 */
-	public static boolean stringConsistsOfJavaIdentifierCharacters(String string) {
-		if (string.length() == 0) {
-			return false;
-		}
-		return stringConsistsOfJavaIdentifierCharacters_(string.toCharArray());
-	}
-
-	/**
-	 * Return whether the specified string consists of Java identifier
-	 * characters (but may be a reserved word).
-	 */
-	public static boolean stringConsistsOfJavaIdentifierCharacters(char[] string) {
-		if (string.length == 0) {
-			return false;
-		}
-		return stringConsistsOfJavaIdentifierCharacters_(string);
-	}
-
-	/**
-	 * The specified string must not be empty.
-	 */
-	private static boolean stringConsistsOfJavaIdentifierCharacters_(char[] string) {
-		if ( ! Character.isJavaIdentifierStart(string[0])) {
-			return false;
-		}
-		for (int i = string.length; i-- > 1; ) {  // NB: end with 1
-			if ( ! Character.isJavaIdentifierPart(string[i])) {
-				return false;
-			}
-		}
-		return true;
-	}
-
-	/**
-	 * Return whether the specified string is a valid Java identifier.
-	 */
-	public static boolean stringIsLegalJavaIdentifier(String string) {
-		return stringConsistsOfJavaIdentifierCharacters(string)
-				&& ! JAVA_RESERVED_WORDS_SET.contains(string);
-	}
-
-	/**
-	 * Return whether the specified string is a valid Java identifier.
-	 */
-	public static boolean stringIsLegalJavaIdentifier(char[] string) {
-		return stringConsistsOfJavaIdentifierCharacters(string)
-				&& ! JAVA_RESERVED_WORDS_SET.contains(new String(string));
-	}
-
-	/**
-	 * Convert the specified string to a valid Java identifier
-	 * by substituting an underscore '_' for any invalid characters
-	 * in the string and appending an underscore '_' to the string if
-	 * it is a Java reserved word.
-	 */
-	public static String convertToJavaIdentifier(String string) {
-		return convertToJavaIdentifier(string, '_');
-	}
-
-	/**
-	 * Convert the specified string to a valid Java identifier
-	 * by substituting the specified character for any invalid characters
-	 * in the string and, if necessary, appending the specified character
-	 * to the string until it is not a Java reserved word.
-	 */
-	public static String convertToJavaIdentifier(String string, char c) {
-		if (string.length() == 0) {
-			return string;
-		}
-		if (JAVA_RESERVED_WORDS_SET.contains(string)) {
-			// a reserved word is a valid identifier, we just need to tweak it a bit
-			checkCharIsJavaIdentifierPart(c);
-			return convertToJavaIdentifier(string + c, c);
-		}
-		char[] array = string.toCharArray();
-		return convertToJavaIdentifier_(array, c) ? new String(array) : string;
-	}
-
-	/**
-	 * Convert the specified string to a valid Java identifier
-	 * by substituting an underscore '_' for any invalid characters
-	 * in the string and appending an underscore '_' to the string if
-	 * it is a Java reserved word.
-	 */
-	public static char[] convertToJavaIdentifier(char[] string) {
-		return convertToJavaIdentifier(string, '_');
-	}
-
-	/**
-	 * Convert the specified string to a valid Java identifier
-	 * by substituting the specified character for any invalid characters
-	 * in the string and, if necessary, appending the specified character
-	 * to the string until it is not a Java reserved word.
-	 */
-	public static char[] convertToJavaIdentifier(char[] string, char c) {
-		if (string.length == 0) {
-			return string;
-		}
-		if (JAVA_RESERVED_WORDS_SET.contains(new String(string))) {
-			// a reserved word is a valid identifier, we just need to tweak it a bit
-			checkCharIsJavaIdentifierPart(c);
-			return convertToJavaIdentifier(CollectionTools.add(string, c), c);
-		}
-		convertToJavaIdentifier_(string, c);
-		return string;
-	}
-
-	/**
-	 * The specified string must not be empty.
-	 * Return whether the string was modified.
-	 */
-	private static boolean convertToJavaIdentifier_(char[] string, char c) {
-		boolean mod = false;
-		if ( ! Character.isJavaIdentifierStart(string[0])) {
-			checkCharIsJavaIdentifierStart(c);
-			string[0] = c;
-			mod = true;
-		}
-		checkCharIsJavaIdentifierPart(c);
-		for (int i = string.length; i-- > 1; ) {  // NB: end with 1
-			if ( ! Character.isJavaIdentifierPart(string[i])) {
-				string[i] = c;
-				mod = true;
-			}
-		}
-		return mod;
-	}
-
-	private static void checkCharIsJavaIdentifierStart(char c) {
-		if ( ! Character.isJavaIdentifierStart(c)) {
-			throw new IllegalArgumentException("invalid Java identifier start char: '" + c + '\'');  //$NON-NLS-1$
-		}
-	}
-
-	private static void checkCharIsJavaIdentifierPart(char c) {
-		if ( ! Character.isJavaIdentifierPart(c)) {
-			throw new IllegalArgumentException("invalid Java identifier part char: '" + c + '\'');  //$NON-NLS-1$
-		}
-	}
-
-	/**
-	 * Convert the specified method name to a property name.
-	 */
-	public static String convertGetterMethodNameToPropertyName(String methodName) {
-		int beginIndex = 0;
-		if (methodName.startsWith("get")) { //$NON-NLS-1$
-			beginIndex = 3;
-		} else if (methodName.startsWith("is")) { //$NON-NLS-1$
-			beginIndex = 2;
-		} else {
-			return methodName;  // return method name unchanged?
-		}
-		return Introspector.decapitalize(methodName.substring(beginIndex));
-	}
-
-
-	// ********** constructor **********
-
-	/**
-	 * Suppress default constructor, ensuring non-instantiability.
-	 */
-	private NameTools() {
-		super();
-		throw new UnsupportedOperationException();
-	}
-
-}
diff --git a/jpa/plugins/org.eclipse.jpt.utility/src/org/eclipse/jpt/utility/internal/NullList.java b/jpa/plugins/org.eclipse.jpt.utility/src/org/eclipse/jpt/utility/internal/NullList.java
deleted file mode 100644
index 1dec473..0000000
--- a/jpa/plugins/org.eclipse.jpt.utility/src/org/eclipse/jpt/utility/internal/NullList.java
+++ /dev/null
@@ -1,150 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008, 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.utility.internal;
-
-import java.util.Collection;
-import java.util.Iterator;
-import java.util.List;
-import java.util.ListIterator;
-import org.eclipse.jpt.utility.internal.iterators.EmptyIterator;
-import org.eclipse.jpt.utility.internal.iterators.EmptyListIterator;
-
-/**
- * A "null" list is a bit different from an "empty" list: it allows clients to
- * add/remove elements to/from it but never changes. This is useful
- * for passing to methods that require a "collecting parameter" but the
- * client will ignore the resulting "collection".
- * 
- * NB: We return 'null' from the following methods (as opposed to throwing
- * an exception):
- *     get(int) : E
- *     remove(int) : E
- *     set(int, E) : E
- */
-public final class NullList<E> implements List<E> {
-
-	// singleton
-	@SuppressWarnings("unchecked")
-	private static final NullList INSTANCE = new NullList();
-
-	/**
-	 * Return the singleton.
-	 */
-	@SuppressWarnings("unchecked")
-	public static <E> List<E> instance() {
-		return INSTANCE;
-	}
-
-	/**
-	 * Ensure single instance.
-	 */
-	private NullList() {
-		super();
-	}
-
-	public boolean add(E o) {
-		return false;  // the list did not change
-	}
-
-	public void add(int index, E element) {
-		// ignore
-	}
-
-	public boolean addAll(Collection<? extends E> c) {
-		return false;  // the list did not change
-	}
-
-	public boolean addAll(int index, Collection<? extends E> c) {
-		return false;  // the list did not change
-	}
-
-	public void clear() {
-		// ignore
-	}
-
-	public boolean contains(Object o) {
-		return false;
-	}
-
-	public boolean containsAll(Collection<?> c) {
-		return c.isEmpty();
-	}
-
-	public E get(int index) {
-		throw new IndexOutOfBoundsException("Index: " + index + ", Size: 0"); //$NON-NLS-1$ //$NON-NLS-2$
-	}
-
-	public int indexOf(Object o) {
-		return -1;
-	}
-
-	public boolean isEmpty() {
-		return true;
-	}
-
-	public Iterator<E> iterator() {
-		return EmptyIterator.instance();
-	}
-
-	public int lastIndexOf(Object o) {
-		return -1;
-	}
-
-	public ListIterator<E> listIterator() {
-		return EmptyListIterator.instance();
-	}
-
-	public ListIterator<E> listIterator(int index) {
-		return EmptyListIterator.instance();
-	}
-
-	public boolean remove(Object o) {
-		return false;  // the list did not change
-	}
-
-	public E remove(int index) {
-		throw new IndexOutOfBoundsException("Index: " + index + ", Size: 0"); //$NON-NLS-1$ //$NON-NLS-2$
-	}
-
-	public boolean removeAll(Collection<?> c) {
-		return false;  // the list did not change
-	}
-
-	public boolean retainAll(Collection<?> c) {
-		return false;  // the list did not change
-	}
-
-	public E set(int index, E element) {
-		throw new IndexOutOfBoundsException("Index: " + index + ", Size: 0"); //$NON-NLS-1$ //$NON-NLS-2$
-	}
-
-	public int size() {
-		return 0;
-	}
-
-	public List<E> subList(int fromIndex, int toIndex) {
-		return this;
-	}
-
-	private static final Object[] EMPTY_OBJECT_ARRAY = new Object[0];
-	public Object[] toArray() {
-		return EMPTY_OBJECT_ARRAY;
-	}
-
-	public <T> T[] toArray(T[] a) {
-		return a;
-	}
-
-	@Override
-	public String toString() {
-		return StringTools.buildToStringFor(this);
-	}
-
-}
diff --git a/jpa/plugins/org.eclipse.jpt.utility/src/org/eclipse/jpt/utility/internal/Range.java b/jpa/plugins/org.eclipse.jpt.utility/src/org/eclipse/jpt/utility/internal/Range.java
deleted file mode 100644
index 176918d..0000000
--- a/jpa/plugins/org.eclipse.jpt.utility/src/org/eclipse/jpt/utility/internal/Range.java
+++ /dev/null
@@ -1,87 +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.utility.internal;
-
-import java.io.Serializable;
-
-/**
- * This simple container class simply puts a bit of semantics
- * around a pair of numbers.
- */
-public class Range
-	implements Cloneable, Serializable
-{
-	/** The starting index of the range. */
-	public final int start;
-
-	/** The ending index of the range. */
-	public final int end;
-
-	/**
-	 * The size can be negative if the ending index
-	 * is less than the starting index.
-	 */
-	public final int size;
-
-	private static final long serialVersionUID = 1L;
-
-
-	/**
-	 * Construct with the specified start and end,
-	 * both of which are immutable.
-	 */
-	public Range(int start, int end) {
-		super();
-		this.start = start;
-		this.end = end;
-		this.size = end - start + 1;
-	}
-
-	/**
-	 * Return whether the range includes the specified
-	 * index.
-	 */
-	public boolean includes(int index) {
-		return (this.start <= index) && (index <= this.end);
-	}
-
-	@Override
-	public boolean equals(Object o) {
-		if (this == o) {
-			return true;
-		}
-		if ( ! (o instanceof Range)) {
-			return false;
-		}
-		Range otherRange = (Range) o;
-		return (this.start == otherRange.start)
-			&& (this.end == otherRange.end);
-	}
-
-	@Override
-	public int hashCode() {
-		return this.start ^ this.end;
-	}
-
-	@Override
-	public Range clone() {
-		try {
-			return (Range) super.clone();
-		} catch (CloneNotSupportedException ex) {
-			throw new InternalError();
-		}
-	}
-
-	@Override
-	public String toString() {
-		return '[' + this.start + ", " + this.end + ']'; //$NON-NLS-1$
-	}
-
-}
diff --git a/jpa/plugins/org.eclipse.jpt.utility/src/org/eclipse/jpt/utility/internal/ReverseComparator.java b/jpa/plugins/org.eclipse.jpt.utility/src/org/eclipse/jpt/utility/internal/ReverseComparator.java
deleted file mode 100644
index 10c01f8..0000000
--- a/jpa/plugins/org.eclipse.jpt.utility/src/org/eclipse/jpt/utility/internal/ReverseComparator.java
+++ /dev/null
@@ -1,40 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005, 2008 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.utility.internal;
-
-import java.io.Serializable;
-import java.util.Comparator;
-
-/**
- * This comparator will reverse the order of the specified comparator.
- * If the comparator is null, the natural ordering of the objects will be used.
- */
-public class ReverseComparator<E extends Comparable<? super E>>
-	implements Comparator<E>, Serializable
-{
-	private final Comparator<E> comparator;
-
-	public ReverseComparator() {
-		this(null);
-	}
-
-	public ReverseComparator(Comparator<E> comparator) {
-		super();
-		this.comparator = comparator;
-	}
-
-	public int compare(E e1, E e2) {
-		return (this.comparator == null) ?
-			e2.compareTo(e1)
-		:
-			this.comparator.compare(e2, e1);
-	}
-
-}
diff --git a/jpa/plugins/org.eclipse.jpt.utility/src/org/eclipse/jpt/utility/internal/RunnableCommand.java b/jpa/plugins/org.eclipse.jpt.utility/src/org/eclipse/jpt/utility/internal/RunnableCommand.java
deleted file mode 100644
index 5b15ee0..0000000
--- a/jpa/plugins/org.eclipse.jpt.utility/src/org/eclipse/jpt/utility/internal/RunnableCommand.java
+++ /dev/null
@@ -1,37 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.utility.internal;
-
-import org.eclipse.jpt.utility.Command;
-
-/**
- * Wrap a Runnable so it can be used as a Command.
- */
-public class RunnableCommand implements Command {
-	protected final Runnable runnable;
-
-	public RunnableCommand(Runnable runnable) {
-		super();
-		if (runnable == null) {
-			throw new NullPointerException();
-		}
-		this.runnable = runnable;
-	}
-
-	public void execute() {
-		this.runnable.run();
-	}
-
-	@Override
-	public String toString() {
-		return "Command[" + this.runnable.toString() +']'; //$NON-NLS-1$
-	}
-
-}
diff --git a/jpa/plugins/org.eclipse.jpt.utility/src/org/eclipse/jpt/utility/internal/SimpleAssociation.java b/jpa/plugins/org.eclipse.jpt.utility/src/org/eclipse/jpt/utility/internal/SimpleAssociation.java
deleted file mode 100644
index 7c9b0a7..0000000
--- a/jpa/plugins/org.eclipse.jpt.utility/src/org/eclipse/jpt/utility/internal/SimpleAssociation.java
+++ /dev/null
@@ -1,69 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.utility.internal;
-
-import java.io.Serializable;
-
-/**
- * Straightforward implementation of Association.
- */
-public class SimpleAssociation<K, V>
-	extends AbstractAssociation<K, V>
-	implements Cloneable, Serializable
-{
-	private final K key;
-	private V value;
-
-	private static final long serialVersionUID = 1L;
-
-
-	/**
-	 * Construct an association with the specified key
-	 * and a null value.
-	 */
-	public SimpleAssociation(K key) {
-		super();
-		this.key = key;
-	}
-
-	/**
-	 * Construct an association with the specified key and value.
-	 */
-	public SimpleAssociation(K key, V value) {
-		this(key);
-		this.value = value;
-	}
-
-
-	public K key() {
-		return this.key;
-	}
-
-	public synchronized V value() {
-		return this.value;
-	}
-
-	public synchronized V setValue(V value) {
-		V old = this.value;
-		this.value = value;
-		return old;
-	}
-
-	@Override
-	@SuppressWarnings("unchecked")
-	public synchronized SimpleAssociation<K, V> clone() {
-		try {
-			return (SimpleAssociation<K, V>) super.clone();
-		} catch (CloneNotSupportedException ex) {
-			throw new InternalError();
-		}
-	}
-
-}
diff --git a/jpa/plugins/org.eclipse.jpt.utility/src/org/eclipse/jpt/utility/internal/SimpleFilter.java b/jpa/plugins/org.eclipse.jpt.utility/src/org/eclipse/jpt/utility/internal/SimpleFilter.java
deleted file mode 100644
index 80e21f9..0000000
--- a/jpa/plugins/org.eclipse.jpt.utility/src/org/eclipse/jpt/utility/internal/SimpleFilter.java
+++ /dev/null
@@ -1,107 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005, 2008 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.utility.internal;
-
-import java.io.Serializable;
-import org.eclipse.jpt.utility.Filter;
-
-/**
- * Simple, abstract implementation of <code>Filter</code>
- * that holds on to a criterion object that can be used in the
- * <code>accept(Object)</code> or <code>reject(Object)</code>
- * methods. Subclasses can override either of these methods,
- * depending on which is easier to implement. Note that at least
- * one of these methods <em>must</em> be overridden or
- * an infinite loop will occur. If both of them are overridden,
- * only the <code>accept(Object)</code> method will be used.
- * <p>
- * Simplifies the implementation of straightforward inner classes.
- * Here is an example of a filter that can be used by a
- * <code>FilteringIterator</code> to return only those strings
- * in the nested iterator start with "prefix":
- * <pre>
- *	Filter<String> filter = new SimpleFilter<String>("prefix") {
- *		public boolean accept(String o) {
- *			return o.startsWith((String) criterion);
- *		}
- *	};
- * </pre>
- */
-public abstract class SimpleFilter<T, S>
-	implements Filter<T>, Cloneable, Serializable
-{
-	protected final S criterion;
-
-	private static final long serialVersionUID = 1L;
-
-
-	/**
-	 * More useful constructor. The specified criterion can
-	 * be used by a subclass to "accept" or "reject" objects.
-	 */
-	protected SimpleFilter(S criterion) {
-		super();
-		this.criterion = criterion;
-	}
-
-	/**
-	 * Construct a simple filter with a null criterion
-	 */
-	protected SimpleFilter() {
-		this(null);
-	}
-
-	/**
-	 * Return whether the the specified object should be "rejected".
-	 * The semantics of "rejected" is determined by the client.
-	 */
-	protected boolean reject(T o) {
-		return ! this.accept(o);
-	}
-
-	/**
-	 * Return whether the the specified object should be "accepted".
-	 * The semantics of "accepted" is determined by the client.
-	 */
-	public boolean accept(T o) {
-		return ! this.reject(o);
-	}
-
-	@Override
-	@SuppressWarnings("unchecked")
-	public SimpleFilter<T, S> clone() {
-		try {
-			return (SimpleFilter<T, S>) super.clone();
-		} catch (CloneNotSupportedException ex) {
-			throw new InternalError();
-		}
-	}
-
-	@Override
-	public boolean equals(Object o) {
-		if ( ! (o instanceof SimpleFilter)) {
-			return false;
-		}
-		SimpleFilter<?, ?> other = (SimpleFilter<?, ?>) o;
-		return (this.criterion == null) ?
-			(other.criterion == null) : this.criterion.equals(other.criterion);
-	}
-
-	@Override
-	public int hashCode() {
-		return (this.criterion == null) ? 0 : this.criterion.hashCode();
-	}
-
-	@Override
-	public String toString() {
-		return StringTools.buildToStringFor(this, this.criterion);
-	}
-
-}
diff --git a/jpa/plugins/org.eclipse.jpt.utility/src/org/eclipse/jpt/utility/internal/SimpleJavaType.java b/jpa/plugins/org.eclipse.jpt.utility/src/org/eclipse/jpt/utility/internal/SimpleJavaType.java
deleted file mode 100644
index b1d3d18..0000000
--- a/jpa/plugins/org.eclipse.jpt.utility/src/org/eclipse/jpt/utility/internal/SimpleJavaType.java
+++ /dev/null
@@ -1,232 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005, 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.utility.internal;
-
-import java.io.PrintWriter;
-import java.io.Serializable;
-import com.ibm.icu.text.Collator;
-import org.eclipse.jpt.utility.JavaType;
-
-/**
- * Straightforward implementation of the JavaType interface.
- */
-public final class SimpleJavaType
-	implements JavaType, Cloneable, Serializable
-{
-
-	/**
-	 * store the type as a name, so we can reference classes
-	 * that are not loaded
-	 */
-	private final String elementTypeName;
-
-	/**
-	 * non-array types have an array depth of zero
-	 */
-	private final int arrayDepth;
-
-	private static final String BRACKETS = "[]"; //$NON-NLS-1$
-	private static final long serialVersionUID = 1L;
-
-
-	// ********** constructors **********
-
-	/**
-	 * Construct a Java type with the specified element type and array depth.
-	 */
-	public SimpleJavaType(String elementTypeName, int arrayDepth) {
-		super();
-		if ((elementTypeName == null) || (elementTypeName.length() == 0)) {
-			throw new IllegalArgumentException("The element type name is required."); //$NON-NLS-1$
-		}
-		if (ClassTools.arrayDepthForClassNamed(elementTypeName) != 0) {		// e.g. "[Ljava.lang.Object;"
-			throw new IllegalArgumentException("The element type must not be an array: " + elementTypeName + '.'); //$NON-NLS-1$
-		}
-		if (arrayDepth < 0) {
-			throw new IllegalArgumentException("The array depth must be greater than or equal to zero: " + arrayDepth + '.'); //$NON-NLS-1$
-		}
-		if (elementTypeName.equals(void.class.getName()) && (arrayDepth != 0)) {
-			throw new IllegalArgumentException("'void' must have an array depth of zero: " + arrayDepth + '.'); //$NON-NLS-1$
-		}
-		this.elementTypeName = elementTypeName;
-		this.arrayDepth = arrayDepth;
-	}
-
-	/**
-	 * Construct a Java type for the specified class.
-	 * The class name can be in one of the following forms:
-	 *     java.lang.Object
-	 *     int
-	 *     java.util.Map$Entry
-	 *     [Ljava.lang.Object;
-	 *     [I
-	 *     [Ljava.util.Map$Entry;
-	 */
-	public SimpleJavaType(String javaClassName) {
-		this(ClassTools.elementTypeNameForClassNamed(javaClassName), ClassTools.arrayDepthForClassNamed(javaClassName));
-	}
-
-	/**
-	 * Construct a Java type for the specified class.
-	 */
-	public SimpleJavaType(Class<?> javaClass) {
-		this(javaClass.getName());
-	}
-
-
-	// ********** accessors **********
-
-	public String getElementTypeName() {
-		return this.elementTypeName;
-	}
-
-	public int getArrayDepth() {
-		return this.arrayDepth;
-	}
-
-
-	// ********** queries **********
-
-	public boolean isArray() {
-		return this.arrayDepth > 0;
-	}
-
-	public boolean isPrimitive() {
-		return (this.arrayDepth == 0) && ClassTools.classNamedIsPrimitive(this.elementTypeName);
-	}
-
-	public boolean isPrimitiveWrapper() {
-		return (this.arrayDepth == 0) && ClassTools.classNamedIsPrimitiveWrapperClass(this.elementTypeName);
-	}
-
-	public boolean isVariablePrimitive() {
-		return (this.arrayDepth == 0) && ClassTools.classNamedIsVariablePrimitive(this.elementTypeName);
-	}
-
-	public boolean isVariablePrimitiveWrapper() {
-		return (this.arrayDepth == 0) && ClassTools.classNamedIsVariablePrimitiveWrapperClass(this.elementTypeName);
-	}
-
-	public Class<?> getJavaClass() throws ClassNotFoundException {
-		return ClassTools.classForTypeDeclaration(this.elementTypeName, this.arrayDepth);
-	}
-
-	public String getJavaClassName() {
-		return ClassTools.classNameForTypeDeclaration(this.elementTypeName, this.arrayDepth);
-	}
-
-
-	// ********** comparison **********
-
-	public boolean equals(String otherElementTypeName, int otherArrayDepth) {
-		return (this.arrayDepth == otherArrayDepth)
-			&& this.elementTypeName.equals(otherElementTypeName);
-	}
-
-	public boolean describes(String className) {
-		return this.equals(ClassTools.elementTypeNameForClassNamed(className), ClassTools.arrayDepthForClassNamed(className));
-	}
-
-	public boolean describes(Class<?> javaClass) {
-		return this.describes(javaClass.getName());
-	}
-
-	public boolean equals(JavaType other) {
-		return this.equals(other.getElementTypeName(), other.getArrayDepth());
-	}
-
-	@Override
-	public boolean equals(Object o) {
-		return (this == o) ? true : (o instanceof JavaType) ? this.equals((JavaType) o) : false;
-	}
-
-	@Override
-	public int hashCode() {
-		return this.elementTypeName.hashCode() ^ this.arrayDepth;
-	}
-
-	public int compareTo(JavaType jt) {
-		int x = Collator.getInstance().compare(this.elementTypeName, jt.getElementTypeName());
-		return (x != 0) ? x : (this.arrayDepth - jt.getArrayDepth());
-	}
-
-
-	// ********** printing and displaying **********
-
-	/**
-	 * Return the version of the type's name that can be used in source code:
-	 *     "[[J" => "long[][]"
-	 *     "java.util.Map$Entry" => "java.util.Map.Entry"
-	 */
-	public String declaration() {
-		if (this.arrayDepth == 0) {
-			return this.getElementTypeNameDeclaration();
-		}
-		StringBuilder sb = new StringBuilder(this.elementTypeName.length() + (2 * this.arrayDepth));
-		this.appendDeclarationTo(sb);
-		return sb.toString();
-	}
-
-	/**
-	 * Append the version of the type's name that can be used in source code:
-	 *     "[[J" => "long[][]"
-	 *     "java.util.Map$Entry" => "java.util.Map.Entry"
-	 */
-	public void appendDeclarationTo(StringBuilder sb) {
-		sb.append(this.getElementTypeNameDeclaration());
-		for (int i = this.arrayDepth; i-- > 0; ) {
-			sb.append(BRACKETS);
-		}
-	}
-
-	/**
-	 * Print the version of the type's name that can be used in source code:
-	 *     "[[J" => "long[][]"
-	 *     "java.util.Map$Entry" => "java.util.Map.Entry"
-	 */
-	public void printDeclarationOn(PrintWriter pw) {
-		pw.print(this.getElementTypeNameDeclaration());
-		for (int i = this.arrayDepth; i-- > 0; ) {
-			pw.print(BRACKETS);
-		}
-	}
-
-	/**
-	 * The '$' version of the name is used in Class.forName(String),
-	 * but the '.' version of the name is used in source code.
-	 * Very irritating....
-	 */
-	private String getElementTypeNameDeclaration() {
-		return this.elementTypeName.replace('$', '.');
-	}
-
-	@Override
-	public String toString() {
-		StringBuilder sb = new StringBuilder();
-		sb.append(ClassTools.shortClassNameForObject(this));
-		sb.append('(');
-		this.appendDeclarationTo(sb);
-		sb.append(')');
-		return sb.toString();
-	}
-
-
-	// ********** cloning **********
-
-	@Override
-	public Object clone() {
-		try {
-			return super.clone();
-		} catch (CloneNotSupportedException ex) {
-			throw new InternalError();
-		}
-	}
-
-}
diff --git a/jpa/plugins/org.eclipse.jpt.utility/src/org/eclipse/jpt/utility/internal/SimpleMethodSignature.java b/jpa/plugins/org.eclipse.jpt.utility/src/org/eclipse/jpt/utility/internal/SimpleMethodSignature.java
deleted file mode 100644
index e90edcb..0000000
--- a/jpa/plugins/org.eclipse.jpt.utility/src/org/eclipse/jpt/utility/internal/SimpleMethodSignature.java
+++ /dev/null
@@ -1,259 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.utility.internal;
-
-import java.io.PrintWriter;
-import java.io.Serializable;
-import java.lang.reflect.Method;
-import com.ibm.icu.text.Collator;
-import java.util.Arrays;
-import org.eclipse.jpt.utility.JavaType;
-import org.eclipse.jpt.utility.MethodSignature;
-
-/**
- * Straightforward implementation of the MethodSignature interface.
- */
-public final class SimpleMethodSignature
-	implements MethodSignature, Cloneable, Serializable
-{
-	private final String name;
-
-	/**
-	 * store the parameter types as names, so we can reference classes
-	 * that are not loaded
-	 */
-	private final JavaType[] parameterTypes;
-
-	public static final JavaType[] EMPTY_PARAMETER_TYPES = new JavaType[0];
-
-	private static final String PARAMETER_SEPARATOR = ", "; //$NON-NLS-1$
-	private static final long serialVersionUID = 1L;
-
-
-	// ********** constructors **********
-
-	/**
-	 * Construct a method signature with the specified name and
-	 * no parameter types.
-	 */
-	public SimpleMethodSignature(String name) {
-		this(name, EMPTY_PARAMETER_TYPES);
-	}
-
-	/**
-	 * Construct a method signature with the specified name and parameter
-	 * types.
-	 */
-	public SimpleMethodSignature(String name, JavaType... parameterTypes) {
-		super();
-		if ((name == null) || (name.length() == 0)) {
-			throw new IllegalArgumentException("The name is required."); //$NON-NLS-1$
-		}
-		if (parameterTypes == null) {
-			throw new IllegalArgumentException("The parameter types are required."); //$NON-NLS-1$
-		}
-		checkParameterTypes(parameterTypes);
-		this.name = name;
-		this.parameterTypes = parameterTypes;
-	}
-
-	private static void checkParameterTypes(JavaType[] parameterTypes) {
-		for (int i = 0; i < parameterTypes.length; i++) {
-			if (parameterTypes[i] == null) {
-				throw new IllegalArgumentException("Missing parameter type: " + i); //$NON-NLS-1$
-			}
-			if (parameterTypes[i].getElementTypeName().equals(void.class.getName())) {
-				throw new IllegalArgumentException("A parameter type of 'void' is not allowed: " + i); //$NON-NLS-1$
-			}
-		}
-	}
-
-	/**
-	 * Construct a method signature with the specified name and parameter
-	 * types.
-	 */
-	public SimpleMethodSignature(String name, String... parameterTypeNames) {
-		this(name, buildParameterTypes(parameterTypeNames));
-	}
-
-	private static JavaType[] buildParameterTypes(String[] parameterTypeNames) {
-		if (parameterTypeNames == null) {
-			throw new IllegalArgumentException("The parameter type names are required."); //$NON-NLS-1$
-		}
-		JavaType[] parameterTypes = new JavaType[parameterTypeNames.length];
-		for (int i = 0; i < parameterTypeNames.length; i++) {
-			if (parameterTypeNames[i] == null) {
-				throw new IllegalArgumentException("Missing parameter type name: " + i); //$NON-NLS-1$
-			}
-			parameterTypes[i] = new SimpleJavaType(parameterTypeNames[i]);
-		}
-		return parameterTypes;
-	}
-
-	/**
-	 * Construct a method signature with the specified name and parameter
-	 * types.
-	 */
-	public SimpleMethodSignature(String name, Class<?>... parameterJavaClasses) {
-		this(name, buildParameterTypeNames(parameterJavaClasses));
-	}
-
-	private static String[] buildParameterTypeNames(Class<?>[] parameterJavaClasses) {
-		if (parameterJavaClasses == null) {
-			throw new IllegalArgumentException("The parameter Java classes are required."); //$NON-NLS-1$
-		}
-		String[] parameterTypeNames = new String[parameterJavaClasses.length];
-		for (int i = 0; i < parameterJavaClasses.length; i++) {
-			if (parameterJavaClasses[i] == null) {
-				throw new IllegalArgumentException("Missing parameter Java class: " + i); //$NON-NLS-1$
-			}
-			parameterTypeNames[i] = parameterJavaClasses[i].getName();
-		}
-		return parameterTypeNames;
-	}
-
-	/**
-	 * Construct a method signature for the specified Java method.
-	 */
-	public SimpleMethodSignature(Method method) {
-		this(method.getName(), method.getParameterTypes());
-	}
-
-
-	// ********** accessors **********
-
-	public String getName() {
-		return this.name;
-	}
-
-	public JavaType[] getParameterTypes() {
-		return this.parameterTypes;
-	}
-
-
-	// ********** comparison **********
-
-	public boolean describes(Method method) {
-		return this.name.equals(method.getName())
-				&& this.parameterTypesDescribe(method.getParameterTypes());
-	}
-
-	private boolean parameterTypesDescribe(Class<?>[] otherParameterTypes) {
-		JavaType[] localParameterTypes = this.parameterTypes;
-		int len = localParameterTypes.length;
-		if (otherParameterTypes.length != len) {
-			return false;
-		}
-		for (int i = len; i-- > 0; ) {
-			if ( ! localParameterTypes[i].describes(otherParameterTypes[i])) {
-				return false;
-			}
-		}
-        return true;
-	}
-
-	public boolean equals(String otherName, JavaType[] otherParameterTypes) {
-		return this.name.equals(otherName)
-				&& Arrays.equals(this.parameterTypes, otherParameterTypes);
-	}
-
-	public boolean equals(MethodSignature other) {
-		return this.equals(other.getName(), other.getParameterTypes());
-	}
-
-	@Override
-	public boolean equals(Object o) {
-		return (this == o) ? true : (o instanceof MethodSignature) ? this.equals((MethodSignature) o) : false;
-	}
-
-	@Override
-	public int hashCode() {
-		return this.name.hashCode() ^ Arrays.hashCode(this.parameterTypes);
-	}
-
-	public int compareTo(MethodSignature ms) {
-		int compare = Collator.getInstance().compare(this.name, ms.getName());
-		return (compare != 0) ? compare : this.compareParameterTypes(ms.getParameterTypes());
-	}
-
-	private int compareParameterTypes(JavaType[] otherParameterTypes) {
-		JavaType[] localParameterTypes = this.parameterTypes;
-		int len1 = localParameterTypes.length;
-		int len2 = otherParameterTypes.length;
-		int min = Math.min(len1, len2);
-		for (int i = 0; i < min; i++) {
-			int compare = localParameterTypes[i].compareTo(otherParameterTypes[i]);
-			if (compare != 0) {
-				return compare;
-			}
-		}
-		return (len1 == len2) ? 0 : (len1 < len2) ? -1 : 1;
-	}
-
-
-	// ********** printing and displaying **********
-
-	public String getSignature() {
-		StringBuilder sb = new StringBuilder(200);
-		this.appendSignatureTo(sb);
-		return sb.toString();
-	}
-
-	public void appendSignatureTo(StringBuilder sb) {
-		sb.append(this.name);
-		sb.append('(');
-		JavaType[] localParameterTypes = this.parameterTypes;
-		int len = localParameterTypes.length;
-		for (int i = 0; i < len; i++) {
-			if (i != 0) {
-				sb.append(PARAMETER_SEPARATOR);
-			}
-			localParameterTypes[i].appendDeclarationTo(sb);
-		}
-		sb.append(')');
-	}
-
-	public void printSignatureOn(PrintWriter pw) {
-		pw.print(this.name);
-		pw.print('(');
-		JavaType[] localParameterTypes = this.parameterTypes;
-		int len = localParameterTypes.length;
-		for (int i = 0; i < len; i++) {
-			if (i != 0) {
-				pw.print(PARAMETER_SEPARATOR);
-			}
-			localParameterTypes[i].printDeclarationOn(pw);
-		}
-		pw.print(')');
-	}
-
-	@Override
-	public String toString() {
-		StringBuilder sb = new StringBuilder(200);
-		sb.append(ClassTools.shortClassNameForObject(this));
-		sb.append('(');
-		this.appendSignatureTo(sb);
-		sb.append(')');
-		return sb.toString();
-	}
-
-
-	// ********** cloning **********
-
-	@Override
-	public Object clone() {
-		try {
-			return super.clone();
-		} catch (CloneNotSupportedException ex) {
-			throw new InternalError();
-		}
-	}
-
-}
diff --git a/jpa/plugins/org.eclipse.jpt.utility/src/org/eclipse/jpt/utility/internal/SimpleStack.java b/jpa/plugins/org.eclipse.jpt.utility/src/org/eclipse/jpt/utility/internal/SimpleStack.java
deleted file mode 100644
index f183943..0000000
--- a/jpa/plugins/org.eclipse.jpt.utility/src/org/eclipse/jpt/utility/internal/SimpleStack.java
+++ /dev/null
@@ -1,95 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2008 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.utility.internal;
-
-import java.io.Serializable;
-import java.util.Collection;
-import java.util.EmptyStackException;
-import java.util.LinkedList;
-import java.util.NoSuchElementException;
-
-/**
- * Straightforward implementation of the Stack interface.
- */
-public class SimpleStack<E>
-	implements Stack<E>, Cloneable, Serializable
-{
-	private LinkedList<E> elements;
-
-	private static final long serialVersionUID = 1L;
-
-
-	// ********** constructors **********
-
-	/**
-	 * Construct an empty stack.
-	 */
-	public SimpleStack() {
-		super();
-		this.elements = new LinkedList<E>();
-	}
-
-	/**
-	 * Construct a stack containing the elements of the specified
-	 * collection. The stack will pop its elements in reverse of the
-	 * order they are returned by the collection's iterator (i.e. the
-	 * last element returned by the collection's iterator will be the
-	 * first element returned by #pop()).
-	 */
-	public SimpleStack(Collection<? extends E> c) {
-		super();
-		this.elements = new LinkedList<E>(c);
-	}
-
-
-	// ********** Stack implementation **********
-
-	public void push(E o) {
-		this.elements.addLast(o);
-	}
-
-	public E pop() {
-		try {
-			return this.elements.removeLast();
-		} catch (NoSuchElementException ex) {
-			throw new EmptyStackException();
-		}
-	}
-
-	public E peek() {
-		try {
-			return this.elements.getLast();
-		} catch (NoSuchElementException ex) {
-			throw new EmptyStackException();
-		}
-	}
-
-	public boolean isEmpty() {
-		return this.elements.isEmpty();
-	}
-
-
-	// ********** Cloneable implementation **********
-
-	@Override
-	public SimpleStack<E> clone() {
-		try {
-			@SuppressWarnings("unchecked")
-			SimpleStack<E> clone = (SimpleStack<E>) super.clone();
-			@SuppressWarnings("unchecked")
-			LinkedList<E> ll = (LinkedList<E>) this.elements.clone();
-			clone.elements = ll;
-			return clone;
-		} catch (CloneNotSupportedException ex) {
-			throw new InternalError();
-		}
-	}
-
-}
diff --git a/jpa/plugins/org.eclipse.jpt.utility/src/org/eclipse/jpt/utility/internal/SimpleStringMatcher.java b/jpa/plugins/org.eclipse.jpt.utility/src/org/eclipse/jpt/utility/internal/SimpleStringMatcher.java
deleted file mode 100644
index 36c9676..0000000
--- a/jpa/plugins/org.eclipse.jpt.utility/src/org/eclipse/jpt/utility/internal/SimpleStringMatcher.java
+++ /dev/null
@@ -1,259 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.utility.internal;
-
-import java.io.Serializable;
-import java.util.regex.Pattern;
-import org.eclipse.jpt.utility.Filter;
-
-// TODO the regex code is not very fast - we could probably do better,
-// hand-coding the matching algorithm (eclipse StringMatcher?)
-/**
- * This class implements a simple string-matching algorithm that is a little
- * more user-friendly than standard regular expressions. Instantiate a
- * string matcher with a filter pattern and then you can use the matcher
- * to determine whether another string (or object) matches the pattern.
- * You can also specify whether the matching should be case-sensitive.
- * 
- * The pattern can contain two "meta-characters":
- * 	'*' will match any set of zero or more characters
- * 	'?' will match any single character
- * 
- * Subclasses can override #prefix() and/or #suffix() to change what
- * strings are prepended or appended to the original pattern string.
- * This can offer a slight performance improvement over concatenating
- * strings before calling #setPatternString(String).
- * By default, a '*' is appended to every string.
- * 
- * This class also uses the string-matching algorithm to "filter" objects
- * (and, as a result, also implements the Filter interface).
- * A string converter is used to determine what string aspect of the
- * object is compared to the pattern. By default the string returned
- * by the object's #toString() method is passed to the pattern matcher.
- */
-public class SimpleStringMatcher<T>
-	implements StringMatcher, Filter<T>, Serializable
-{
-
-	/** An adapter that converts the objects into strings to be matched with the pattern. */
-	private StringConverter<T> stringConverter;
-
-	/** The string used to construct the regular expression pattern. */
-	private String patternString;
-
-	/** Whether the matcher ignores case - the default is true. */
-	private boolean ignoresCase;
-
-	/** The regular expression pattern built from the pattern string. */
-	private Pattern pattern;
-
-	/** A list of the meta-characters we need to escape if found in the pattern string. */
-	public static final char[] REG_EX_META_CHARS = { '(', '[', '{', '\\', '^', '$', '|', ')', '?', '*', '+', '.' };
-
-	private static final long serialVersionUID = 1L;
-
-
-	// ********** constructors **********
-
-	/**
-	 * Construct a string matcher with an pattern that will match
-	 * any string and ignore case.
-	 */
-	public SimpleStringMatcher() {
-		this("*"); //$NON-NLS-1$
-	}
-
-	/**
-	 * Construct a string matcher with the specified pattern
-	 * that will ignore case.
-	 */
-	public SimpleStringMatcher(String patternString) {
-		this(patternString, true);
-	}
-
-	/**
-	 * Construct a string matcher with the specified pattern that will
-	 * ignore case as specified.
-	 */
-	public SimpleStringMatcher(String patternString, boolean ignoresCase) {
-		super();
-		this.patternString = patternString;
-		this.ignoresCase = ignoresCase;
-		this.initialize();
-	}
-
-
-	// ********** initialization **********
-
-	protected void initialize() {
-		this.stringConverter = StringConverter.Default.instance();
-		this.rebuildPattern();
-	}
-
-	/**
-	 * Given the current pattern string and case-sensitivity setting,
-	 * re-build the regular expression pattern.
-	 */
-	protected synchronized void rebuildPattern() {
-		this.pattern = this.buildPattern();
-	}
-
-	/**
-	 * Given the current pattern string and case-sensitivity setting,
-	 * build and return a regular expression pattern that can be used
-	 * to match strings.
-	 */
-	protected Pattern buildPattern() {
-		int patternFlags = 0x0;
-		if (this.ignoresCase) {
-			patternFlags = Pattern.UNICODE_CASE | Pattern.CASE_INSENSITIVE;
-		}
-		return Pattern.compile(this.convertToRegEx(this.patternString), patternFlags);
-	}
-
-
-	// ********** StringMatcher implementation **********
-
-	public synchronized void setPatternString(String patternString) {
-		this.patternString = patternString;
-		this.rebuildPattern();
-	}
-
-	/**
-	 * Return whether the specified string matches the pattern.
-	 */
-	public synchronized boolean matches(String string) {
-		return this.pattern.matcher(string).matches();
-	}
-
-
-	// ********** Filter implementation **********
-
-	public synchronized boolean accept(T o) {
-		return this.matches(this.stringConverter.convertToString(o));
-	}
-
-
-	// ********** accessors **********
-
-	/**
-	 * Return the string converter used to convert the objects
-	 * passed to the matcher into strings.
-	 */
-	public synchronized StringConverter<T> stringConverter() {
-		return this.stringConverter;
-	}
-
-	/**
-	 * Set the string converter used to convert the objects
-	 * passed to the matcher into strings.
-	 */
-	public synchronized void setStringConverter(StringConverter<T> stringConverter) {
-		this.stringConverter = stringConverter;
-	}
-
-	/**
-	 * Return the original pattern string.
-	 */
-	public synchronized String patternString() {
-		return this.patternString;
-	}
-
-	/**
-	 * Return whether the matcher ignores case.
-	 */
-	public synchronized boolean ignoresCase() {
-		return this.ignoresCase;
-	}
-
-	/**
-	 * Set whether the matcher ignores case.
-	 */
-	public synchronized void setIgnoresCase(boolean ignoresCase) {
-		this.ignoresCase = ignoresCase;
-		this.rebuildPattern();
-	}
-
-	/**
-	 * Return the regular expression pattern.
-	 */
-	public synchronized Pattern pattern() {
-		return this.pattern;
-	}
-
-
-	// ********** other public API **********
-
-	/**
-	 * Return the regular expression corresponding to
-	 * the original pattern string.
-	 */
-	public synchronized String regularExpression() {
-		return this.convertToRegEx(this.patternString);
-	}
-
-
-	// ********** converting **********
-
-	/**
-	 * Convert the specified string to a regular expression.
-	 */
-	protected String convertToRegEx(String string) {
-		StringBuffer sb = new StringBuffer(string.length() + 10);
-		this.convertToRegExOn(this.prefix(), sb);
-		this.convertToRegExOn(string, sb);
-		this.convertToRegExOn(this.suffix(), sb);
-		return sb.toString();
-	}
-
-	/**
-	 * Return any prefix that should be prepended to the original
-	 * string. By default, there is no prefix.
-	 */
-	protected String prefix() {
-		return ""; //$NON-NLS-1$
-	}
-
-	/**
-	 * Return any suffix that should be appended to the original
-	 * string. Since this class is typically used in UI situation where
-	 * the user is typing in a pattern used to filter a list, the default
-	 * suffix is a wildcard character.
-	 */
-	protected String suffix() {
-		return "*"; //$NON-NLS-1$
-	}
-
-	/**
-	 * Convert the specified string to a regular expression.
-	 */
-	protected void convertToRegExOn(String string, StringBuffer sb) {
-		char[] charArray = string.toCharArray();
-		int length = charArray.length;
-		for (int i = 0; i < length; i++) {
-			char c = charArray[i];
-			// convert user-friendly meta-chars into regex meta-chars
-			if (c == '*') {
-				sb.append(".*"); //$NON-NLS-1$
-				continue;
-			}
-			if (c == '?') {
-				sb.append('.');
-				continue;
-			}
-			// escape regex meta-chars
-			if (CollectionTools.contains(REG_EX_META_CHARS, c)) {
-				sb.append('\\');
-			}
-			sb.append(c);
-		}
-	}
-
-}
diff --git a/jpa/plugins/org.eclipse.jpt.utility/src/org/eclipse/jpt/utility/internal/Stack.java b/jpa/plugins/org.eclipse.jpt.utility/src/org/eclipse/jpt/utility/internal/Stack.java
deleted file mode 100644
index 93bef64..0000000
--- a/jpa/plugins/org.eclipse.jpt.utility/src/org/eclipse/jpt/utility/internal/Stack.java
+++ /dev/null
@@ -1,73 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2008 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.utility.internal;
-
-import java.io.Serializable;
-import java.util.EmptyStackException;
-
-/**
- * Interface defining the classic stack behavior,
- * without the backdoors allowed by java.util.Stack.
- * E is the type of elements contained by the Stack.
- */
-public interface Stack<E> {
-
-	/**
-	 * "Push" the specified item on to the top of the stack.
-	 */
-	void push(E o);
-
-	/**
-	 * "Pop" an item from the top of the stack.
-	 */
-	E pop();
-
-	/**
-	 * Return the item on the top of the stack
-	 * without removing it from the stack.
-	 */
-	E peek();
-
-	/**
-	 * Return whether the stack is empty.
-	 */
-	boolean isEmpty();
-
-
-	final class Empty<E> implements Stack<E>, Serializable {
-		@SuppressWarnings("unchecked")
-		public static final Stack INSTANCE = new Empty();
-		@SuppressWarnings("unchecked")
-		public static <T> Stack<T> instance() {
-			return INSTANCE;
-		}
-		// ensure single instance
-		private Empty() {
-			super();
-		}
-		public void push(E o) {
-			throw new UnsupportedOperationException();
-		}
-		public E pop() {
-			throw new EmptyStackException();
-		}
-		public E peek() {
-			throw new EmptyStackException();
-		}
-		public boolean isEmpty() {
-			return true;
-		}
-		private static final long serialVersionUID = 1L;
-		private Object readResolve() {
-			return INSTANCE;
-		}
-	}
-
-}
diff --git a/jpa/plugins/org.eclipse.jpt.utility/src/org/eclipse/jpt/utility/internal/StringConverter.java b/jpa/plugins/org.eclipse.jpt.utility/src/org/eclipse/jpt/utility/internal/StringConverter.java
deleted file mode 100644
index 8782e07..0000000
--- a/jpa/plugins/org.eclipse.jpt.utility/src/org/eclipse/jpt/utility/internal/StringConverter.java
+++ /dev/null
@@ -1,68 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.utility.internal;
-
-/**
- * Used by various "pluggable" classes to transform objects
- * into strings.
- */
-public interface StringConverter<T> {
-
-	/**
-	 * Convert the specified object into a string.
-	 * The semantics of "convert" is determined by the
-	 * contract between the client and the server.
-	 */
-	String convertToString(T o);
-
-
-	final class Default<S> implements StringConverter<S> {
-		@SuppressWarnings("unchecked")
-		public static final StringConverter INSTANCE = new Default();
-		@SuppressWarnings("unchecked")
-		public static <R> StringConverter<R> instance() {
-			return INSTANCE;
-		}
-		// ensure single instance
-		private Default() {
-			super();
-		}
-		// simply return the object's #toString() result
-		public String convertToString(S o) {
-			return (o == null) ? null : o.toString();
-		}
-		@Override
-		public String toString() {
-			return "StringConverter.Default"; //$NON-NLS-1$
-		}
-	}
-
-	final class Disabled<S> implements StringConverter<S> {
-		@SuppressWarnings("unchecked")
-		public static final StringConverter INSTANCE = new Disabled();
-		@SuppressWarnings("unchecked")
-		public static <R> StringConverter<R> instance() {
-			return INSTANCE;
-		}
-		// ensure single instance
-		private Disabled() {
-			super();
-		}
-		// throw an exception
-		public String convertToString(S o) {
-			throw new UnsupportedOperationException();
-		}
-		@Override
-		public String toString() {
-			return "StringConverter.Disabled"; //$NON-NLS-1$
-		}
-	}
-
-}
diff --git a/jpa/plugins/org.eclipse.jpt.utility/src/org/eclipse/jpt/utility/internal/StringMatcher.java b/jpa/plugins/org.eclipse.jpt.utility/src/org/eclipse/jpt/utility/internal/StringMatcher.java
deleted file mode 100644
index 2095fe6..0000000
--- a/jpa/plugins/org.eclipse.jpt.utility/src/org/eclipse/jpt/utility/internal/StringMatcher.java
+++ /dev/null
@@ -1,58 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.utility.internal;
-
-/**
- * This interface defines a simple API for allowing "pluggable"
- * string matchers that can be configured with a pattern string
- * then used to determine what strings match the pattern.
- */
-public interface StringMatcher {
-
-	/**
-	 * Set the pattern string used to determine future
-	 * matches. The format and semantics of the pattern
-	 * string are determined by the contract between the
-	 * client and the server.
-	 */
-	void setPatternString(String patternString);
-
-	/**
-	 * Return whether the specified string matches the
-	 * established pattern string. The semantics of a match
-	 * is determined by the contract between the
-	 * client and the server.
-	 */
-	boolean matches(String string);
-
-
-	final class Null implements StringMatcher {
-		public static final StringMatcher INSTANCE = new Null();
-		public static StringMatcher instance() {
-			return INSTANCE;
-		}
-		// ensure single instance
-		private Null() {
-			super();
-		}
-		public void setPatternString(String patternString) {
-			// ignore the pattern string
-		}
-		public boolean matches(String string) {
-			// everything is a match
-			return true;
-		}
-		@Override
-		public String toString() {
-			return "StringMatcher.Null"; //$NON-NLS-1$
-		}
-	}
-
-}
diff --git a/jpa/plugins/org.eclipse.jpt.utility/src/org/eclipse/jpt/utility/internal/StringTools.java b/jpa/plugins/org.eclipse.jpt.utility/src/org/eclipse/jpt/utility/internal/StringTools.java
deleted file mode 100644
index bbd87c4..0000000
--- a/jpa/plugins/org.eclipse.jpt.utility/src/org/eclipse/jpt/utility/internal/StringTools.java
+++ /dev/null
@@ -1,4354 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005, 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.utility.internal;
-
-import java.io.IOException;
-import java.io.Writer;
-import java.util.Arrays;
-import java.util.Iterator;
-import org.eclipse.jpt.utility.internal.iterators.TransformationIterator;
-
-/**
- * Convenience methods related to the java.lang.String class.
- * 
- * As of jdk 1.5, it's tempting to convert all of these methods to use
- * java.lang.Appendable (instead of StringBuffer, StringBuilder, and Writer);
- * but all the Appendable methods throw java.io.IOException (yech) and we
- * [might?] get a bit better performance invoking methods on classes than
- * we get on interfaces. :-)
- */
-public final class StringTools {
-
-	/** carriage return */
-	public static final String CR = System.getProperty("line.separator");  //$NON-NLS-1$
-
-	/** double quote */
-	public static final char QUOTE = '"';
-
-	/** parenthesis */
-	public static final char OPEN_PARENTHESIS = '(';
-	public static final char CLOSE_PARENTHESIS = ')';
-
-	/** brackets */
-	public static final char OPEN_BRACKET = '[';
-	public static final char CLOSE_BRACKET = ']';
-
-	/** brackets */
-	public static final char OPEN_BRACE = '{';
-	public static final char CLOSE_BRACE = '}';
-
-	/** brackets */
-	public static final char OPEN_CHEVRON = '<';
-	public static final char CLOSE_CHEVRON = '>';
-
-	/** empty string */
-	public static final String EMPTY_STRING = ""; //$NON-NLS-1$
-
-	/** empty char array */
-	public static final char[] EMPTY_CHAR_ARRAY = new char[0];
-
-
-
-	// ********** padding/truncating **********
-
-	/**
-	 * Pad the specified string to the specified length.
-	 * If the string is already the specified length, it is returned unchanged.
-	 * If it is longer than the specified length, an IllegalArgumentException is thrown.
-	 * If it is shorter than the specified length, it is padded with spaces at the end.
-	 * String#pad(int)
-	 */
-	public static String pad(String string, int length) {
-		return pad(string, length, ' ');
-	}
-
-	/**
-	 * Pad the specified string to the specified length.
-	 * If the string is already the specified length, it is returned unchanged.
-	 * If it is longer than the specified length, an IllegalArgumentException is thrown.
-	 * If it is shorter than the specified length, it is padded with spaces at the end.
-	 * String#padOn(int, Writer)
-	 */
-	public static void padOn(String string, int length, Writer writer) {
-		padOn(string, length, ' ', writer);
-	}
-
-	/**
-	 * Pad the specified string to the specified length.
-	 * If the string is already the specified length, it is returned unchanged.
-	 * If it is longer than the specified length, an IllegalArgumentException is thrown.
-	 * If it is shorter than the specified length, it is padded with spaces at the end.
-	 * String#padOn(int, StringBuffer)
-	 */
-	public static void padOn(String string, int length, StringBuffer sb) {
-		padOn(string, length, ' ', sb);
-	}
-
-	/**
-	 * Pad the specified string to the specified length.
-	 * If the string is already the specified length, it is returned unchanged.
-	 * If it is longer than the specified length, an IllegalArgumentException is thrown.
-	 * If it is shorter than the specified length, it is padded with spaces at the end.
-	 * String#padOn(int, StringBuilder)
-	 */
-	public static void padOn(String string, int length, StringBuilder sb) {
-		padOn(string, length, ' ', sb);
-	}
-
-	/**
-	 * Pad the specified string to the specified length.
-	 * If the string is already the specified length, it is returned unchanged.
-	 * If it is longer than the specified length, an IllegalArgumentException is thrown.
-	 * If it is shorter than the specified length, it is padded with the
-	 * specified character at the end.
-	 * String#pad(int, char)
-	 */
-	public static String pad(String string, int length, char c) {
-		int stringLength = string.length();
-		if (stringLength > length) {
-			throw new IllegalArgumentException("String is too long: " + stringLength + " > " + length);  //$NON-NLS-1$  //$NON-NLS-2$
-		}
-		if (stringLength == length) {
-			return string;
-		}
-		return pad_(string, length, c);
-	}
-
-	/**
-	 * Pad the specified string to the specified length.
-	 * If the string is already the specified length, it is returned unchanged.
-	 * If it is longer than the specified length, an IllegalArgumentException is thrown.
-	 * If it is shorter than the specified length, it is padded with the
-	 * specified character at the end.
-	 * String#padOn(int, char, Writer)
-	 */
-	public static void padOn(String string, int length, char c, Writer writer) {
-		int stringLength = string.length();
-		if (stringLength > length) {
-			throw new IllegalArgumentException("String is too long: " + stringLength + " > " + length);  //$NON-NLS-1$  //$NON-NLS-2$
-		}
-		if (stringLength == length) {
-			writeStringOn(string, writer);
-		} else {
-			padOn_(string, length, c, writer);
-		}
-	}
-
-	/**
-	 * Pad the specified string to the specified length.
-	 * If the string is already the specified length, it is returned unchanged.
-	 * If it is longer than the specified length, an IllegalArgumentException is thrown.
-	 * If it is shorter than the specified length, it is padded with the
-	 * specified character at the end.
-	 * String#padOn(int, char, StringBuffer)
-	 */
-	public static void padOn(String string, int length, char c, StringBuffer sb) {
-		int stringLength = string.length();
-		if (stringLength > length) {
-			throw new IllegalArgumentException("String is too long: " + stringLength + " > " + length);  //$NON-NLS-1$  //$NON-NLS-2$
-		}
-		if (stringLength == length) {
-			sb.append(string);
-		} else {
-			padOn_(string, length, c, sb);
-		}
-	}
-
-	/**
-	 * Pad the specified string to the specified length.
-	 * If the string is already the specified length, it is returned unchanged.
-	 * If it is longer than the specified length, an IllegalArgumentException is thrown.
-	 * If it is shorter than the specified length, it is padded with the
-	 * specified character at the end.
-	 * String#padOn(int, char, StringBuilder)
-	 */
-	public static void padOn(String string, int length, char c, StringBuilder sb) {
-		int stringLength = string.length();
-		if (stringLength > length) {
-			throw new IllegalArgumentException("String is too long: " + stringLength + " > " + length);  //$NON-NLS-1$  //$NON-NLS-2$
-		}
-		if (stringLength == length) {
-			sb.append(string);
-		} else {
-			padOn_(string, length, c, sb);
-		}
-	}
-
-	/**
-	 * Pad the specified string to the specified length.
-	 * If the string is already the specified length, it is returned unchanged.
-	 * If it is longer than the specified length, an IllegalArgumentException is thrown.
-	 * If it is shorter than the specified length, it is padded with spaces at the end.
-	 * String#pad(int)
-	 */
-	public static char[] pad(char[] string, int length) {
-		return pad(string, length, ' ');
-	}
-
-	/**
-	 * Pad the specified string to the specified length.
-	 * If the string is already the specified length, it is returned unchanged.
-	 * If it is longer than the specified length, an IllegalArgumentException is thrown.
-	 * If it is shorter than the specified length, it is padded with spaces at the end.
-	 * String#padOn(int, writer)
-	 */
-	public static void padOn(char[] string, int length, Writer writer) {
-		padOn(string, length, ' ', writer);
-	}
-
-	/**
-	 * Pad the specified string to the specified length.
-	 * If the string is already the specified length, it is returned unchanged.
-	 * If it is longer than the specified length, an IllegalArgumentException is thrown.
-	 * If it is shorter than the specified length, it is padded with spaces at the end.
-	 * String#padOn(int, StringBuffer)
-	 */
-	public static void padOn(char[] string, int length, StringBuffer sb) {
-		padOn(string, length, ' ', sb);
-	}
-
-	/**
-	 * Pad the specified string to the specified length.
-	 * If the string is already the specified length, it is returned unchanged.
-	 * If it is longer than the specified length, an IllegalArgumentException is thrown.
-	 * If it is shorter than the specified length, it is padded with spaces at the end.
-	 * String#padOn(int, StringBuilder)
-	 */
-	public static void padOn(char[] string, int length, StringBuilder sb) {
-		padOn(string, length, ' ', sb);
-	}
-
-	/**
-	 * Pad the specified string to the specified length.
-	 * If the string is already the specified length, it is returned unchanged.
-	 * If it is longer than the specified length, an IllegalArgumentException is thrown.
-	 * If it is shorter than the specified length, it is padded with the
-	 * specified character at the end.
-	 * String#pad(int, char)
-	 */
-	public static char[] pad(char[] string, int length, char c) {
-		int stringLength = string.length;
-		if (stringLength > length) {
-			throw new IllegalArgumentException("String is too long: " + stringLength + " > " + length);  //$NON-NLS-1$  //$NON-NLS-2$
-		}
-		if (stringLength == length) {
-			return string;
-		}
-		return pad_(string, length, c);
-	}
-
-	/**
-	 * Pad the specified string to the specified length.
-	 * If the string is already the specified length, it is returned unchanged.
-	 * If it is longer than the specified length, an IllegalArgumentException is thrown.
-	 * If it is shorter than the specified length, it is padded with the
-	 * specified character at the end.
-	 * String#padOn(int, char, Writer)
-	 */
-	public static void padOn(char[] string, int length, char c, Writer writer) {
-		int stringLength = string.length;
-		if (stringLength > length) {
-			throw new IllegalArgumentException("String is too long: " + stringLength + " > " + length);  //$NON-NLS-1$  //$NON-NLS-2$
-		}
-		if (stringLength == length) {
-			writeStringOn(string, writer);
-		} else {
-			padOn_(string, length, c, writer);
-		}
-	}
-
-	/**
-	 * Pad the specified string to the specified length.
-	 * If the string is already the specified length, it is returned unchanged.
-	 * If it is longer than the specified length, an IllegalArgumentException is thrown.
-	 * If it is shorter than the specified length, it is padded with the
-	 * specified character at the end.
-	 * String#padOn(int, char, StringBuffer)
-	 */
-	public static void padOn(char[] string, int length, char c, StringBuffer sb) {
-		int stringLength = string.length;
-		if (stringLength > length) {
-			throw new IllegalArgumentException("String is too long: " + stringLength + " > " + length);  //$NON-NLS-1$  //$NON-NLS-2$
-		}
-		if (stringLength == length) {
-			sb.append(string);
-		} else {
-			padOn_(string, length, c, sb);
-		}
-	}
-
-	/**
-	 * Pad the specified string to the specified length.
-	 * If the string is already the specified length, it is returned unchanged.
-	 * If it is longer than the specified length, an IllegalArgumentException is thrown.
-	 * If it is shorter than the specified length, it is padded with the
-	 * specified character at the end.
-	 * String#padOn(int, char, StringBuilder)
-	 */
-	public static void padOn(char[] string, int length, char c, StringBuilder sb) {
-		int stringLength = string.length;
-		if (stringLength > length) {
-			throw new IllegalArgumentException("String is too long: " + stringLength + " > " + length);  //$NON-NLS-1$  //$NON-NLS-2$
-		}
-		if (stringLength == length) {
-			sb.append(string);
-		} else {
-			padOn_(string, length, c, sb);
-		}
-	}
-
-	/**
-	 * Pad or truncate the specified string to the specified length.
-	 * If the string is already the specified length, it is returned unchanged.
-	 * If it is longer than the specified length, it is truncated.
-	 * If it is shorter than the specified length, it is padded with spaces at the end.
-	 * String#padOrTruncate(int)
-	 */
-	public static String padOrTruncate(String string, int length) {
-		return padOrTruncate(string, length, ' ');
-	}
-
-	/**
-	 * Pad or truncate the specified string to the specified length.
-	 * If the string is already the specified length, it is returned unchanged.
-	 * If it is longer than the specified length, it is truncated.
-	 * If it is shorter than the specified length, it is padded with spaces at the end.
-	 * String#padOrTruncateOn(int, Writer)
-	 */
-	public static void padOrTruncateOn(String string, int length, Writer writer) {
-		padOrTruncateOn(string, length, ' ', writer);
-	}
-
-	/**
-	 * Pad or truncate the specified string to the specified length.
-	 * If the string is already the specified length, it is returned unchanged.
-	 * If it is longer than the specified length, it is truncated.
-	 * If it is shorter than the specified length, it is padded with spaces at the end.
-	 * String#padOrTruncateOn(int, StringBuffer)
-	 */
-	public static void padOrTruncateOn(String string, int length, StringBuffer sb) {
-		padOrTruncateOn(string, length, ' ', sb);
-	}
-
-	/**
-	 * Pad or truncate the specified string to the specified length.
-	 * If the string is already the specified length, it is returned unchanged.
-	 * If it is longer than the specified length, it is truncated.
-	 * If it is shorter than the specified length, it is padded with spaces at the end.
-	 * String#padOrTruncateOn(int, StringBuilder)
-	 */
-	public static void padOrTruncateOn(String string, int length, StringBuilder sb) {
-		padOrTruncateOn(string, length, ' ', sb);
-	}
-
-	/**
-	 * Pad or truncate the specified string to the specified length.
-	 * If the string is already the specified length, it is returned unchanged.
-	 * If it is longer than the specified length, it is truncated.
-	 * If it is shorter than the specified length, it is padded with the
-	 * specified character at the end.
-	 * String#padOrTruncate(int, char)
-	 */
-	public static String padOrTruncate(String string, int length, char c) {
-		int stringLength = string.length();
-		if (stringLength == length) {
-			return string;
-		}
-		if (stringLength > length) {
-			return string.substring(0, length);
-		}
-		return pad_(string, length, c);
-	}
-
-	/**
-	 * Pad or truncate the specified string to the specified length.
-	 * If the string is already the specified length, it is returned unchanged.
-	 * If it is longer than the specified length, it is truncated.
-	 * If it is shorter than the specified length, it is padded with the
-	 * specified character at the end.
-	 * String#padOrTruncateOn(int, char, Writer)
-	 */
-	public static void padOrTruncateOn(String string, int length, char c, Writer writer) {
-		int stringLength = string.length();
-		if (stringLength == length) {
-			writeStringOn(string, writer);
-		} else if (stringLength > length) {
-			writeStringOn(string.substring(0, length), writer);
-		} else {
-			padOn_(string, length, c, writer);
-		}
-	}
-
-	/**
-	 * Pad or truncate the specified string to the specified length.
-	 * If the string is already the specified length, it is returned unchanged.
-	 * If it is longer than the specified length, it is truncated.
-	 * If it is shorter than the specified length, it is padded with the
-	 * specified character at the end.
-	 * String#padOrTruncateOn(int, char, StringBuffer)
-	 */
-	public static void padOrTruncateOn(String string, int length, char c, StringBuffer sb) {
-		int stringLength = string.length();
-		if (stringLength == length) {
-			sb.append(string);
-		} else if (stringLength > length) {
-			sb.append(string.substring(0, length));
-		} else {
-			padOn_(string, length, c, sb);
-		}
-	}
-
-	/**
-	 * Pad or truncate the specified string to the specified length.
-	 * If the string is already the specified length, it is returned unchanged.
-	 * If it is longer than the specified length, it is truncated.
-	 * If it is shorter than the specified length, it is padded with the
-	 * specified character at the end.
-	 * String#padOrTruncateOn(int, char, StringBuilder)
-	 */
-	public static void padOrTruncateOn(String string, int length, char c, StringBuilder sb) {
-		int stringLength = string.length();
-		if (stringLength == length) {
-			sb.append(string);
-		} else if (stringLength > length) {
-			sb.append(string.substring(0, length));
-		} else {
-			padOn_(string, length, c, sb);
-		}
-	}
-
-	/**
-	 * Pad or truncate the specified string to the specified length.
-	 * If the string is already the specified length, it is returned unchanged.
-	 * If it is longer than the specified length, it is truncated.
-	 * If it is shorter than the specified length, it is padded with spaces at the end.
-	 * String#padOrTruncate(int)
-	 */
-	public static char[] padOrTruncate(char[] string, int length) {
-		return padOrTruncate(string, length, ' ');
-	}
-
-	/**
-	 * Pad or truncate the specified string to the specified length.
-	 * If the string is already the specified length, it is returned unchanged.
-	 * If it is longer than the specified length, it is truncated.
-	 * If it is shorter than the specified length, it is padded with spaces at the end.
-	 * String#padOrTruncateOn(int, Writer)
-	 */
-	public static void padOrTruncateOn(char[] string, int length, Writer writer) {
-		padOrTruncateOn(string, length, ' ', writer);
-	}
-
-	/**
-	 * Pad or truncate the specified string to the specified length.
-	 * If the string is already the specified length, it is returned unchanged.
-	 * If it is longer than the specified length, it is truncated.
-	 * If it is shorter than the specified length, it is padded with spaces at the end.
-	 * String#padOrTruncateOn(int, StringBuffer)
-	 */
-	public static void padOrTruncate(char[] string, int length, StringBuffer sb) {
-		padOrTruncateOn(string, length, ' ', sb);
-	}
-
-	/**
-	 * Pad or truncate the specified string to the specified length.
-	 * If the string is already the specified length, it is returned unchanged.
-	 * If it is longer than the specified length, it is truncated.
-	 * If it is shorter than the specified length, it is padded with spaces at the end.
-	 * String#padOrTruncateOn(int, StringBuilder)
-	 */
-	public static void padOrTruncate(char[] string, int length, StringBuilder sb) {
-		padOrTruncateOn(string, length, ' ', sb);
-	}
-
-	/**
-	 * Pad or truncate the specified string to the specified length.
-	 * If the string is already the specified length, it is returned unchanged.
-	 * If it is longer than the specified length, it is truncated.
-	 * If it is shorter than the specified length, it is padded with the
-	 * specified character at the end.
-	 * String#padOrTruncate(int, char)
-	 */
-	public static char[] padOrTruncate(char[] string, int length, char c) {
-		int stringLength = string.length;
-		if (stringLength == length) {
-			return string;
-		}
-		if (stringLength > length) {
-			char[] result = new char[length];
-			System.arraycopy(string, 0, result, 0, length);
-			return result;
-		}
-		return pad_(string, length, c);
-	}
-
-	/**
-	 * Pad or truncate the specified string to the specified length.
-	 * If the string is already the specified length, it is returned unchanged.
-	 * If it is longer than the specified length, it is truncated.
-	 * If it is shorter than the specified length, it is padded with the
-	 * specified character at the end.
-	 * String#padOrTruncateOn(int, char, Writer)
-	 */
-	public static void padOrTruncateOn(char[] string, int length, char c, Writer writer) {
-		int stringLength = string.length;
-		if (stringLength == length) {
-			writeStringOn(string, writer);
-		} else if (stringLength > length) {
-			writeStringOn(string, 0, length, writer);
-		} else {
-			padOn_(string, length, c, writer);
-		}
-	}
-
-	/**
-	 * Pad or truncate the specified string to the specified length.
-	 * If the string is already the specified length, it is returned unchanged.
-	 * If it is longer than the specified length, it is truncated.
-	 * If it is shorter than the specified length, it is padded with the
-	 * specified character at the end.
-	 * String#padOrTruncateOn(int, char, StringBuffer)
-	 */
-	public static void padOrTruncateOn(char[] string, int length, char c, StringBuffer sb) {
-		int stringLength = string.length;
-		if (stringLength == length) {
-			sb.append(string);
-		} else if (stringLength > length) {
-			sb.append(string, 0, length);
-		} else {
-			padOn_(string, length, c, sb);
-		}
-	}
-
-	/**
-	 * Pad or truncate the specified string to the specified length.
-	 * If the string is already the specified length, it is returned unchanged.
-	 * If it is longer than the specified length, it is truncated.
-	 * If it is shorter than the specified length, it is padded with the
-	 * specified character at the end.
-	 * String#padOrTruncateOn(int, char, StringBuilder)
-	 */
-	public static void padOrTruncateOn(char[] string, int length, char c, StringBuilder sb) {
-		int stringLength = string.length;
-		if (stringLength == length) {
-			sb.append(string);
-		} else if (stringLength > length) {
-			sb.append(string, 0, length);
-		} else {
-			padOn_(string, length, c, sb);
-		}
-	}
-
-	/*
-	 * Pad the specified string without validating the parms.
-	 */
-	private static String pad_(String string, int length, char c) {
-		return new String(pad_(string.toCharArray(), length, c));
-	}
-
-	/*
-	 * Pad the specified string without validating the parms.
-	 */
-	private static void padOn_(String string, int length, char c, Writer writer) {
-		writeStringOn(string, writer);
-		fill_(string, length, c, writer);
-	}
-
-	/*
-	 * Add enough characters to the specified writer to compensate for
-	 * the difference between the specified string and specified length.
-	 */
-	private static void fill_(String string, int length, char c, Writer writer) {
-		fill_(string.length(), length, c, writer);
-	}
-
-	/*
-	 * Add enough characters to the specified writer to compensate for
-	 * the difference between the specified string and specified length.
-	 */
-	private static void fill_(char[] string, int length, char c, Writer writer) {
-		fill_(string.length, length, c, writer);
-	}
-
-	/*
-	 * Add enough characters to the specified writer to compensate for
-	 * the difference between the specified string and specified length.
-	 */
-	private static void fill_(int stringLength, int length, char c, Writer writer) {
-		writeStringOn(CollectionTools.fill(new char[length - stringLength], c), writer);
-	}
-
-	/*
-	 * Pad the specified string without validating the parms.
-	 */
-	private static void padOn_(String string, int length, char c, StringBuffer sb) {
-		sb.append(string);
-		fill_(string, length, c, sb);
-	}
-
-	/*
-	 * Add enough characters to the specified string buffer to compensate for
-	 * the difference between the specified string and specified length.
-	 */
-	private static void fill_(String string, int length, char c, StringBuffer sb) {
-		fill_(string.length(), length, c, sb);
-	}
-
-	/*
-	 * Add enough characters to the specified string buffer to compensate for
-	 * the difference between the specified string and specified length.
-	 */
-	private static void fill_(char[] string, int length, char c, StringBuffer sb) {
-		fill_(string.length, length, c, sb);
-	}
-
-	/*
-	 * Add enough characters to the specified string buffer to compensate for
-	 * the difference between the specified string and specified length.
-	 */
-	private static void fill_(int stringLength, int length, char c, StringBuffer sb) {
-		sb.append(CollectionTools.fill(new char[length - stringLength], c));
-	}
-
-	/*
-	 * Pad the specified string without validating the parms.
-	 */
-	private static void padOn_(String string, int length, char c, StringBuilder sb) {
-		sb.append(string);
-		fill_(string, length, c, sb);
-	}
-
-	/*
-	 * Add enough characters to the specified string builder to compensate for
-	 * the difference between the specified string and specified length.
-	 */
-	private static void fill_(String string, int length, char c, StringBuilder sb) {
-		fill_(string.length(), length, c, sb);
-	}
-
-	/*
-	 * Add enough characters to the specified string builder to compensate for
-	 * the difference between the specified string and specified length.
-	 */
-	private static void fill_(char[] string, int length, char c, StringBuilder sb) {
-		fill_(string.length, length, c, sb);
-	}
-
-	/*
-	 * Add enough characters to the specified string builder to compensate for
-	 * the difference between the specified string and specified length.
-	 */
-	private static void fill_(int stringLength, int length, char c, StringBuilder sb) {
-		sb.append(CollectionTools.fill(new char[length - stringLength], c));
-	}
-
-	/*
-	 * Pad the specified string without validating the parms.
-	 */
-	private static char[] pad_(char[] string, int length, char c) {
-		char[] result = new char[length];
-		int stringLength = string.length;
-		System.arraycopy(string, 0, result, 0, stringLength);
-		Arrays.fill(result, stringLength, length, c);
-		return result;
-	}
-
-	/*
-	 * Pad the specified string without validating the parms.
-	 */
-	private static void padOn_(char[] string, int length, char c, Writer writer) {
-		writeStringOn(string, writer);
-		fill_(string, length, c, writer);
-	}
-
-	/*
-	 * Pad the specified string without validating the parms.
-	 */
-	private static void padOn_(char[] string, int length, char c, StringBuffer sb) {
-		sb.append(string);
-		fill_(string, length, c, sb);
-	}
-
-	/*
-	 * Pad the specified string without validating the parms.
-	 */
-	private static void padOn_(char[] string, int length, char c, StringBuilder sb) {
-		sb.append(string);
-		fill_(string, length, c, sb);
-	}
-
-	/**
-	 * Pad the specified string to the specified length.
-	 * If the string is already the specified length, it is returned unchanged.
-	 * If it is longer than the specified length, an IllegalArgumentException is thrown.
-	 * If it is shorter than the specified length, it is padded with zeros at the front.
-	 * String#zeroPad(int)
-	 */
-	public static String zeroPad(String string, int length) {
-		return frontPad(string, length, '0');
-	}
-
-	/**
-	 * Pad the specified string to the specified length.
-	 * If the string is already the specified length, it is returned unchanged.
-	 * If it is longer than the specified length, an IllegalArgumentException is thrown.
-	 * If it is shorter than the specified length, it is padded with zeros at the front.
-	 * String#zeroPadOn(int, Writer)
-	 */
-	public static void zeroPadOn(String string, int length, Writer writer) {
-		frontPadOn(string, length, '0', writer);
-	}
-
-	/**
-	 * Pad the specified string to the specified length.
-	 * If the string is already the specified length, it is returned unchanged.
-	 * If it is longer than the specified length, an IllegalArgumentException is thrown.
-	 * If it is shorter than the specified length, it is padded with zeros at the front.
-	 * String#zeroPadOn(int, StringBuffer)
-	 */
-	public static void zeroPadOn(String string, int length, StringBuffer sb) {
-		frontPadOn(string, length, '0', sb);
-	}
-
-	/**
-	 * Pad the specified string to the specified length.
-	 * If the string is already the specified length, it is returned unchanged.
-	 * If it is longer than the specified length, an IllegalArgumentException is thrown.
-	 * If it is shorter than the specified length, it is padded with zeros at the front.
-	 * String#zeroPadOn(int, StringBuilder)
-	 */
-	public static void zeroPadOn(String string, int length, StringBuilder sb) {
-		frontPadOn(string, length, '0', sb);
-	}
-
-	/**
-	 * Pad the specified string to the specified length.
-	 * If the string is already the specified length, it is returned unchanged.
-	 * If it is longer than the specified length, an IllegalArgumentException is thrown.
-	 * If it is shorter than the specified length, it is padded with the
-	 * specified character at the front.
-	 * String#frontPad(int, char)
-	 */
-	public static String frontPad(String string, int length, char c) {
-		int stringLength = string.length();
-		if (stringLength > length) {
-			throw new IllegalArgumentException("String is too long: " + stringLength + " > " + length);  //$NON-NLS-1$  //$NON-NLS-2$
-		}
-		if (stringLength == length) {
-			return string;
-		}
-		return frontPad_(string, length, c);
-	}
-
-	/**
-	 * Pad the specified string to the specified length.
-	 * If the string is already the specified length, it is returned unchanged.
-	 * If it is longer than the specified length, an IllegalArgumentException is thrown.
-	 * If it is shorter than the specified length, it is padded with the
-	 * specified character at the front.
-	 * String#frontPadOn(int, char, Writer)
-	 */
-	public static void frontPadOn(String string, int length, char c, Writer writer) {
-		int stringLength = string.length();
-		if (stringLength > length) {
-			throw new IllegalArgumentException("String is too long: " + stringLength + " > " + length);  //$NON-NLS-1$  //$NON-NLS-2$
-		}
-		if (stringLength == length) {
-			writeStringOn(string, writer);
-		} else {
-			frontPadOn_(string, length, c, writer);
-		}
-	}
-
-	/**
-	 * Pad the specified string to the specified length.
-	 * If the string is already the specified length, it is returned unchanged.
-	 * If it is longer than the specified length, an IllegalArgumentException is thrown.
-	 * If it is shorter than the specified length, it is padded with the
-	 * specified character at the front.
-	 * String#frontPadOn(int, char, StringBuffer)
-	 */
-	public static void frontPadOn(String string, int length, char c, StringBuffer sb) {
-		int stringLength = string.length();
-		if (stringLength > length) {
-			throw new IllegalArgumentException("String is too long: " + stringLength + " > " + length);  //$NON-NLS-1$  //$NON-NLS-2$
-		}
-		if (stringLength == length) {
-			sb.append(string);
-		} else {
-			frontPadOn_(string, length, c, sb);
-		}
-	}
-
-	/**
-	 * Pad the specified string to the specified length.
-	 * If the string is already the specified length, it is returned unchanged.
-	 * If it is longer than the specified length, an IllegalArgumentException is thrown.
-	 * If it is shorter than the specified length, it is padded with the
-	 * specified character at the front.
-	 * String#frontPadOn(int, char, StringBuilder)
-	 */
-	public static void frontPadOn(String string, int length, char c, StringBuilder sb) {
-		int stringLength = string.length();
-		if (stringLength > length) {
-			throw new IllegalArgumentException("String is too long: " + stringLength + " > " + length);  //$NON-NLS-1$  //$NON-NLS-2$
-		}
-		if (stringLength == length) {
-			sb.append(string);
-		} else {
-			frontPadOn_(string, length, c, sb);
-		}
-	}
-
-	/**
-	 * Pad the specified string to the specified length.
-	 * If the string is already the specified length, it is returned unchanged.
-	 * If it is longer than the specified length, an IllegalArgumentException is thrown.
-	 * If it is shorter than the specified length, it is padded with zeros at the front.
-	 * String#zeroPad(int)
-	 */
-	public static char[] zeroPad(char[] string, int length) {
-		return frontPad(string, length, '0');
-	}
-
-	/**
-	 * Pad the specified string to the specified length.
-	 * If the string is already the specified length, it is returned unchanged.
-	 * If it is longer than the specified length, an IllegalArgumentException is thrown.
-	 * If it is shorter than the specified length, it is padded with zeros at the front.
-	 * String#zeroPadOn(int, Writer)
-	 */
-	public static void zeroPadOn(char[] string, int length, Writer writer) {
-		frontPadOn(string, length, '0', writer);
-	}
-
-	/**
-	 * Pad the specified string to the specified length.
-	 * If the string is already the specified length, it is returned unchanged.
-	 * If it is longer than the specified length, an IllegalArgumentException is thrown.
-	 * If it is shorter than the specified length, it is padded with zeros at the front.
-	 * String#zeroPadOn(int, StringBuffer)
-	 */
-	public static void zeroPadOn(char[] string, int length, StringBuffer sb) {
-		frontPadOn(string, length, '0', sb);
-	}
-
-	/**
-	 * Pad the specified string to the specified length.
-	 * If the string is already the specified length, it is returned unchanged.
-	 * If it is longer than the specified length, an IllegalArgumentException is thrown.
-	 * If it is shorter than the specified length, it is padded with zeros at the front.
-	 * String#zeroPadOn(int, StringBuilder)
-	 */
-	public static void zeroPadOn(char[] string, int length, StringBuilder sb) {
-		frontPadOn(string, length, '0', sb);
-	}
-
-	/**
-	 * Pad the specified string to the specified length.
-	 * If the string is already the specified length, it is returned unchanged.
-	 * If it is longer than the specified length, an IllegalArgumentException is thrown.
-	 * If it is shorter than the specified length, it is padded with the
-	 * specified character at the front.
-	 * String#frontPad(int, char)
-	 */
-	public static char[] frontPad(char[] string, int length, char c) {
-		int stringLength = string.length;
-		if (stringLength > length) {
-			throw new IllegalArgumentException("String is too long: " + stringLength + " > " + length);  //$NON-NLS-1$  //$NON-NLS-2$
-		}
-		if (stringLength == length) {
-			return string;
-		}
-		return frontPad_(string, length, c);
-	}
-
-	/**
-	 * Pad the specified string to the specified length.
-	 * If the string is already the specified length, it is returned unchanged.
-	 * If it is longer than the specified length, an IllegalArgumentException is thrown.
-	 * If it is shorter than the specified length, it is padded with the
-	 * specified character at the front.
-	 * String#frontPadOn(int, char, Writer)
-	 */
-	public static void frontPadOn(char[] string, int length, char c, Writer writer) {
-		int stringLength = string.length;
-		if (stringLength > length) {
-			throw new IllegalArgumentException("String is too long: " + stringLength + " > " + length);  //$NON-NLS-1$  //$NON-NLS-2$
-		}
-		if (stringLength == length) {
-			writeStringOn(string, writer);
-		} else {
-			frontPadOn_(string, length, c, writer);
-		}
-	}
-
-	/**
-	 * Pad the specified string to the specified length.
-	 * If the string is already the specified length, it is returned unchanged.
-	 * If it is longer than the specified length, an IllegalArgumentException is thrown.
-	 * If it is shorter than the specified length, it is padded with the
-	 * specified character at the front.
-	 * String#frontPadOn(int, char, StringBuffer)
-	 */
-	public static void frontPadOn(char[] string, int length, char c, StringBuffer sb) {
-		int stringLength = string.length;
-		if (stringLength > length) {
-			throw new IllegalArgumentException("String is too long: " + stringLength + " > " + length);  //$NON-NLS-1$  //$NON-NLS-2$
-		}
-		if (stringLength == length) {
-			sb.append(string);
-		} else {
-			frontPadOn_(string, length, c, sb);
-		}
-	}
-
-	/**
-	 * Pad the specified string to the specified length.
-	 * If the string is already the specified length, it is returned unchanged.
-	 * If it is longer than the specified length, an IllegalArgumentException is thrown.
-	 * If it is shorter than the specified length, it is padded with the
-	 * specified character at the front.
-	 * String#frontPadOn(int, char, StringBuilder)
-	 */
-	public static void frontPadOn(char[] string, int length, char c, StringBuilder sb) {
-		int stringLength = string.length;
-		if (stringLength > length) {
-			throw new IllegalArgumentException("String is too long: " + stringLength + " > " + length);  //$NON-NLS-1$  //$NON-NLS-2$
-		}
-		if (stringLength == length) {
-			sb.append(string);
-		} else {
-			frontPadOn_(string, length, c, sb);
-		}
-	}
-
-	/**
-	 * Pad or truncate the specified string to the specified length.
-	 * If the string is already the specified length, it is returned unchanged.
-	 * If it is longer than the specified length, only the last part of the string is returned.
-	 * If it is shorter than the specified length, it is padded with zeros at the front.
-	 * String#zeroPadOrTruncate(int)
-	 */
-	public static String zeroPadOrTruncate(String string, int length) {
-		return frontPadOrTruncate(string, length, '0');
-	}
-
-	/**
-	 * Pad or truncate the specified string to the specified length.
-	 * If the string is already the specified length, it is returned unchanged.
-	 * If it is longer than the specified length, only the last part of the string is returned.
-	 * If it is shorter than the specified length, it is padded with zeros at the front.
-	 * String#zeroPadOrTruncateOn(int, Writer)
-	 */
-	public static void zeroPadOrTruncateOn(String string, int length, Writer writer) {
-		frontPadOrTruncateOn(string, length, '0', writer);
-	}
-
-	/**
-	 * Pad or truncate the specified string to the specified length.
-	 * If the string is already the specified length, it is returned unchanged.
-	 * If it is longer than the specified length, only the last part of the string is returned.
-	 * If it is shorter than the specified length, it is padded with zeros at the front.
-	 * String#zeroPadOrTruncateOn(int, StringBuffer)
-	 */
-	public static void zeroPadOrTruncateOn(String string, int length, StringBuffer sb) {
-		frontPadOrTruncateOn(string, length, '0', sb);
-	}
-
-	/**
-	 * Pad or truncate the specified string to the specified length.
-	 * If the string is already the specified length, it is returned unchanged.
-	 * If it is longer than the specified length, only the last part of the string is returned.
-	 * If it is shorter than the specified length, it is padded with zeros at the front.
-	 * String#zeroPadOrTruncateOn(int, StringBuilder)
-	 */
-	public static void zeroPadOrTruncateOn(String string, int length, StringBuilder sb) {
-		frontPadOrTruncateOn(string, length, '0', sb);
-	}
-
-	/**
-	 * Pad or truncate the specified string to the specified length.
-	 * If the string is already the specified length, it is returned unchanged.
-	 * If it is longer than the specified length, only the last part of the string is returned.
-	 * If it is shorter than the specified length, it is padded with the
-	 * specified character at the front.
-	 * String#frontPadOrTruncate(int, char)
-	 */
-	public static String frontPadOrTruncate(String string, int length, char c) {
-		int stringLength = string.length();
-		if (stringLength == length) {
-			return string;
-		}
-		if (stringLength > length) {
-			return string.substring(stringLength - length);
-		}
-		return frontPad_(string, length, c);
-	}
-
-	/**
-	 * Pad or truncate the specified string to the specified length.
-	 * If the string is already the specified length, it is returned unchanged.
-	 * If it is longer than the specified length, only the last part of the string is returned.
-	 * If it is shorter than the specified length, it is padded with the
-	 * specified character at the front.
-	 * String#frontPadOrTruncateOn(int, char, Writer)
-	 */
-	public static void frontPadOrTruncateOn(String string, int length, char c, Writer writer) {
-		int stringLength = string.length();
-		if (stringLength == length) {
-			writeStringOn(string, writer);
-		} else if (stringLength > length) {
-			writeStringOn(string.substring(stringLength - length), writer);
-		} else {
-			frontPadOn_(string, length, c, writer);
-		}
-	}
-
-	/**
-	 * Pad or truncate the specified string to the specified length.
-	 * If the string is already the specified length, it is returned unchanged.
-	 * If it is longer than the specified length, only the last part of the string is returned.
-	 * If it is shorter than the specified length, it is padded with the
-	 * specified character at the front.
-	 * String#frontPadOrTruncateOn(int, char, StringBuffer)
-	 */
-	public static void frontPadOrTruncateOn(String string, int length, char c, StringBuffer sb) {
-		int stringLength = string.length();
-		if (stringLength == length) {
-			sb.append(string);
-		} else if (stringLength > length) {
-			sb.append(string.substring(stringLength - length));
-		} else {
-			frontPadOn_(string, length, c, sb);
-		}
-	}
-
-	/**
-	 * Pad or truncate the specified string to the specified length.
-	 * If the string is already the specified length, it is returned unchanged.
-	 * If it is longer than the specified length, only the last part of the string is returned.
-	 * If it is shorter than the specified length, it is padded with the
-	 * specified character at the front.
-	 * String#frontPadOrTruncateOn(int, char, StringBuilder)
-	 */
-	public static void frontPadOrTruncateOn(String string, int length, char c, StringBuilder sb) {
-		int stringLength = string.length();
-		if (stringLength == length) {
-			sb.append(string);
-		} else if (stringLength > length) {
-			sb.append(string.substring(stringLength - length));
-		} else {
-			frontPadOn_(string, length, c, sb);
-		}
-	}
-
-	/**
-	 * Pad or truncate the specified string to the specified length.
-	 * If the string is already the specified length, it is returned unchanged.
-	 * If it is longer than the specified length, only the last part of the string is returned.
-	 * If it is shorter than the specified length, it is padded with zeros at the front.
-	 * String#zeroPadOrTruncate(int)
-	 */
-	public static char[] zeroPadOrTruncate(char[] string, int length) {
-		return frontPadOrTruncate(string, length, '0');
-	}
-
-	/**
-	 * Pad or truncate the specified string to the specified length.
-	 * If the string is already the specified length, it is returned unchanged.
-	 * If it is longer than the specified length, only the last part of the string is returned.
-	 * If it is shorter than the specified length, it is padded with zeros at the front.
-	 * String#zeroPadOrTruncateOn(int, Writer)
-	 */
-	public static void zeroPadOrTruncateOn(char[] string, int length, Writer writer) {
-		frontPadOrTruncateOn(string, length, '0', writer);
-	}
-
-	/**
-	 * Pad or truncate the specified string to the specified length.
-	 * If the string is already the specified length, it is returned unchanged.
-	 * If it is longer than the specified length, only the last part of the string is returned.
-	 * If it is shorter than the specified length, it is padded with zeros at the front.
-	 * String#zeroPadOrTruncateOn(int, StringBuffer)
-	 */
-	public static void zeroPadOrTruncateOn(char[] string, int length, StringBuffer sb) {
-		frontPadOrTruncateOn(string, length, '0', sb);
-	}
-
-	/**
-	 * Pad or truncate the specified string to the specified length.
-	 * If the string is already the specified length, it is returned unchanged.
-	 * If it is longer than the specified length, only the last part of the string is returned.
-	 * If it is shorter than the specified length, it is padded with zeros at the front.
-	 * String#zeroPadOrTruncateOn(int, StringBuilder)
-	 */
-	public static void zeroPadOrTruncateOn(char[] string, int length, StringBuilder sb) {
-		frontPadOrTruncateOn(string, length, '0', sb);
-	}
-
-	/**
-	 * Pad or truncate the specified string to the specified length.
-	 * If the string is already the specified length, it is returned unchanged.
-	 * If it is longer than the specified length, only the last part of the string is returned.
-	 * If it is shorter than the specified length, it is padded with the 
-	 * specified character at the front.
-	 * String#frontPadOrTruncate(int, char)
-	 */
-	public static char[] frontPadOrTruncate(char[] string, int length, char c) {
-		int stringLength = string.length;
-		if (stringLength == length) {
-			return string;
-		}
-		if (stringLength > length) {
-			char[] result = new char[length];
-			System.arraycopy(string, stringLength - length, result, 0, length);
-			return result;
-		}
-		return frontPad_(string, length, c);
-	}
-
-	/**
-	 * Pad or truncate the specified string to the specified length.
-	 * If the string is already the specified length, it is returned unchanged.
-	 * If it is longer than the specified length, only the last part of the string is returned.
-	 * If it is shorter than the specified length, it is padded with the 
-	 * specified character at the front.
-	 * String#frontPadOrTruncateOn(int, char, Writer)
-	 */
-	public static void frontPadOrTruncateOn(char[] string, int length, char c, Writer writer) {
-		int stringLength = string.length;
-		if (stringLength == length) {
-			writeStringOn(string, writer);
-		} else if (stringLength > length) {
-			writeStringOn(string, stringLength - length, length, writer);
-		} else {
-			frontPadOn_(string, length, c, writer);
-		}
-	}
-
-	/**
-	 * Pad or truncate the specified string to the specified length.
-	 * If the string is already the specified length, it is returned unchanged.
-	 * If it is longer than the specified length, only the last part of the string is returned.
-	 * If it is shorter than the specified length, it is padded with the 
-	 * specified character at the front.
-	 * String#frontPadOrTruncateOn(int, char, StringBuffer)
-	 */
-	public static void frontPadOrTruncateOn(char[] string, int length, char c, StringBuffer sb) {
-		int stringLength = string.length;
-		if (stringLength == length) {
-			sb.append(string);
-		} else if (stringLength > length) {
-			sb.append(string, stringLength - length, length);
-		} else {
-			frontPadOn_(string, length, c, sb);
-		}
-	}
-
-	/**
-	 * Pad or truncate the specified string to the specified length.
-	 * If the string is already the specified length, it is returned unchanged.
-	 * If it is longer than the specified length, only the last part of the string is returned.
-	 * If it is shorter than the specified length, it is padded with the 
-	 * specified character at the front.
-	 * String#frontPadOrTruncateOn(int, char, StringBuilder)
-	 */
-	public static void frontPadOrTruncateOn(char[] string, int length, char c, StringBuilder sb) {
-		int stringLength = string.length;
-		if (stringLength == length) {
-			sb.append(string);
-		} else if (stringLength > length) {
-			sb.append(string, stringLength - length, length);
-		} else {
-			frontPadOn_(string, length, c, sb);
-		}
-	}
-
-	/*
-	 * Front-pad the specified string without validating the parms.
-	 */
-	private static String frontPad_(String string, int length, char c) {
-		return new String(frontPad_(string.toCharArray(), length, c));
-	}
-
-	/*
-	 * Zero-pad the specified string without validating the parms.
-	 */
-	private static char[] frontPad_(char[] string, int length, char c) {
-		char[] result = new char[length];
-		int stringLength = string.length;
-		int padLength = length - stringLength;
-		System.arraycopy(string, 0, result, padLength, stringLength);
-		Arrays.fill(result, 0, padLength, c);
-		return result;
-	}
-
-	/*
-	 * Pad the specified string without validating the parms.
-	 */
-	private static void frontPadOn_(String string, int length, char c, Writer writer) {
-		fill_(string, length, c, writer);
-		writeStringOn(string, writer);
-	}
-
-	/*
-	 * Pad the specified string without validating the parms.
-	 */
-	private static void frontPadOn_(char[] string, int length, char c, Writer writer) {
-		fill_(string, length, c, writer);
-		writeStringOn(string, writer);
-	}
-
-	/*
-	 * Pad the specified string without validating the parms.
-	 */
-	private static void frontPadOn_(String string, int length, char c, StringBuffer sb) {
-		fill_(string, length, c, sb);
-		sb.append(string);
-	}
-
-	/*
-	 * Pad the specified string without validating the parms.
-	 */
-	private static void frontPadOn_(char[] string, int length, char c, StringBuffer sb) {
-		fill_(string, length, c, sb);
-		sb.append(string);
-	}
-
-	/*
-	 * Pad the specified string without validating the parms.
-	 */
-	private static void frontPadOn_(String string, int length, char c, StringBuilder sb) {
-		fill_(string, length, c, sb);
-		sb.append(string);
-	}
-
-	/*
-	 * Pad the specified string without validating the parms.
-	 */
-	private static void frontPadOn_(char[] string, int length, char c, StringBuilder sb) {
-		fill_(string, length, c, sb);
-		sb.append(string);
-	}
-
-
-	// ********** delimiting/quoting **********
-
-	/**
-	 * Delimit the specified string with double quotes.
-	 * Escape any occurrences of a double quote in the string with another
-	 * double quote.
-	 */
-	public static String quote(String string) {
-		return delimit(string, QUOTE);
-	}
-
-	/**
-	 * Delimit the specified string with double quotes.
-	 * Escape any occurrences of a double quote in the string with another
-	 * double quote.
-	 */
-	public static void quoteOn(String string, Writer writer) {
-		delimitOn(string, QUOTE, writer);
-	}
-
-	/**
-	 * Delimit the specified string with double quotes.
-	 * Escape any occurrences of a double quote in the string with another
-	 * double quote.
-	 */
-	public static void quoteOn(String string, StringBuffer sb) {
-		delimitOn(string, QUOTE, sb);
-	}
-
-	/**
-	 * Delimit the specified string with double quotes.
-	 * Escape any occurrences of a double quote in the string with another
-	 * double quote.
-	 */
-	public static void quoteOn(String string, StringBuilder sb) {
-		delimitOn(string, QUOTE, sb);
-	}
-
-	/**
-	 * Delimit each of the specified strings with double quotes.
-	 * Escape any occurrences of a double quote in a string with another
-	 * double quote.
-	 */
-	public static Iterator<String> quote(Iterator<String> strings) {
-		return delimit(strings, QUOTE);
-	}
-
-	/**
-	 * Delimit the specified string with the specified delimiter; i.e. put a copy of
-	 * the delimiter at the front and back of the resulting string.
-	 * Escape any occurrences of the delimiter in the string with another delimiter.
-	 */
-	public static String delimit(String string, char delimiter) {
-		return new String(delimit(string.toCharArray(), delimiter));
-	}
-
-	/**
-	 * Delimit the specified string with the specified delimiter; i.e. put a copy of
-	 * the delimiter at the front and back of the resulting string.
-	 * Escape any occurrences of the delimiter in the string with another delimiter.
-	 */
-	public static void delimitOn(String string, char delimiter, Writer writer) {
-		delimitOn(string.toCharArray(), delimiter, writer);
-	}
-
-	/**
-	 * Delimit the specified string with the specified delimiter; i.e. put a copy of
-	 * the delimiter at the front and back of the resulting string.
-	 * Escape any occurrences of the delimiter in the string with another delimiter.
-	 */
-	public static void delimitOn(String string, char delimiter, StringBuffer sb) {
-		delimitOn(string.toCharArray(), delimiter, sb);
-	}
-
-	/**
-	 * Delimit the specified string with the specified delimiter; i.e. put a copy of
-	 * the delimiter at the front and back of the resulting string.
-	 * Escape any occurrences of the delimiter in the string with another delimiter.
-	 */
-	public static void delimitOn(String string, char delimiter, StringBuilder sb) {
-		delimitOn(string.toCharArray(), delimiter, sb);
-	}
-
-	/**
-	 * Delimit each of the specified strings with the specified delimiter; i.e. put a
-	 * copy of the delimiter at the front and back of the resulting string.
-	 * Escape any occurrences of the delimiter in a string with another delimiter.
-	 */
-	public static Iterator<String> delimit(Iterator<String> strings, final char delimiter) {
-		return new TransformationIterator<String, String>(strings) {
-			@Override
-			protected String transform(String string) {
-				return StringTools.delimit(string, delimiter);
-			}
-		};
-	}
-
-	/**
-	 * Delimit the specified string with the specified delimiter; i.e. put a copy of
-	 * the delimiter at the front and back of the resulting string.
-	 * Escape any occurrences of a single-character delimiter in the string with
-	 * another delimiter.
-	 */
-	public static String delimit(String string, String delimiter) {
-		if (delimiter.length() == 1) {
-			return delimit(string, delimiter.charAt(0));
-		}
-		return new String(delimit(string.toCharArray(), delimiter.toCharArray()));
-	}
-
-	/**
-	 * Delimit the specified string with the specified delimiter; i.e. put a copy of
-	 * the delimiter at the front and back of the resulting string.
-	 * Escape any occurrences of a single-character delimiter in the string with
-	 * another delimiter.
-	 */
-	public static void delimitOn(String string, String delimiter, Writer writer) {
-		if (delimiter.length() == 1) {
-			delimitOn(string, delimiter.charAt(0), writer);
-		} else {
-			delimitOn(string.toCharArray(), delimiter.toCharArray(), writer);
-		}
-	}
-
-	/**
-	 * Delimit the specified string with the specified delimiter; i.e. put a copy of
-	 * the delimiter at the front and back of the resulting string.
-	 * Escape any occurrences of a single-character delimiter in the string with
-	 * another delimiter.
-	 */
-	public static void delimitOn(String string, String delimiter, StringBuffer sb) {
-		if (delimiter.length() == 1) {
-			delimitOn(string, delimiter.charAt(0), sb);
-		} else {
-			delimitOn(string.toCharArray(), delimiter.toCharArray(), sb);
-		}
-	}
-
-	/**
-	 * Delimit the specified string with the specified delimiter; i.e. put a copy of
-	 * the delimiter at the front and back of the resulting string.
-	 * Escape any occurrences of a single-character delimiter in the string with
-	 * another delimiter.
-	 */
-	public static void delimitOn(String string, String delimiter, StringBuilder sb) {
-		if (delimiter.length() == 1) {
-			delimitOn(string, delimiter.charAt(0), sb);
-		} else {
-			delimitOn(string.toCharArray(), delimiter.toCharArray(), sb);
-		}
-	}
-
-	/**
-	 * Delimit each of the specified strings with the specified delimiter; i.e. put a
-	 * copy of the delimiter at the front and back of the resulting string.
-	 * Escape any occurrences of a single-character delimiter in a string with
-	 * another delimiter.
-	 */
-	public static Iterator<String> delimit(Iterator<String> strings, final String delimiter) {
-		if (delimiter.length() == 1) {
-			return delimit(strings, delimiter.charAt(0));
-		}
-		return new TransformationIterator<String, String>(strings) {
-			@Override
-			protected String transform(String string) {
-				return StringTools.delimit(string, delimiter);
-			}
-		};
-	}
-
-	/**
-	 * Delimit the specified string with double quotes.
-	 * Escape any occurrences of a double quote in the string with another
-	 * double quote.
-	 */
-	public static char[] quote(char[] string) {
-		return delimit(string, QUOTE);
-	}
-
-	/**
-	 * Delimit the specified string with double quotes.
-	 * Escape any occurrences of a double quote in the string with another
-	 * double quote.
-	 */
-	public static void quoteOn(char[] string, Writer writer) {
-		delimitOn(string, QUOTE, writer);
-	}
-
-	/**
-	 * Delimit the specified string with double quotes.
-	 * Escape any occurrences of a double quote in the string with another
-	 * double quote.
-	 */
-	public static void quoteOn(char[] string, StringBuffer sb) {
-		delimitOn(string, QUOTE, sb);
-	}
-
-	/**
-	 * Delimit the specified string with double quotes.
-	 * Escape any occurrences of a double quote in the string with another
-	 * double quote.
-	 */
-	public static void quoteOn(char[] string, StringBuilder sb) {
-		delimitOn(string, QUOTE, sb);
-	}
-
-	/**
-	 * Delimit each of the specified strings with double quotes.
-	 * Escape any occurrences of a double quote in a string with another
-	 * double quote.
-	 */
-	// cannot name method simply 'quote' because of type-erasure...
-	public static Iterator<char[]> quoteCharArrays(Iterator<char[]> strings) {
-		return delimitCharArrays(strings, QUOTE);
-	}
-
-	/**
-	 * Delimit the specified string with the specified delimiter; i.e. put a copy of
-	 * the delimiter at the front and back of the resulting string.
-	 * Escape any occurrences of the delimiter in the string with another delimiter.
-	 */
-	public static char[] delimit(char[] string, char delimiter) {
-		StringBuilder sb = new StringBuilder(string.length + 2);
-		delimitOn(string, delimiter, sb);
-		return convertToCharArray(sb);
-	}
-
-	/**
-	 * Delimit the specified string with the specified delimiter; i.e. put a copy of
-	 * the delimiter at the front and back of the resulting string.
-	 * Escape any occurrences of the delimiter in the string with another delimiter.
-	 */
-	public static void delimitOn(char[] string, char delimiter, Writer writer) {
-		writeCharOn(delimiter, writer);
-		writeStringOn(string, delimiter, writer);
-		writeCharOn(delimiter, writer);
-	}
-
-	/**
-	 * Delimit the specified string with the specified delimiter; i.e. put a copy of
-	 * the delimiter at the front and back of the resulting string.
-	 * Escape any occurrences of the delimiter in the string with another delimiter.
-	 */
-	public static void delimitOn(char[] string, char delimiter, StringBuffer sb) {
-		sb.append(delimiter);
-		for (char c : string) {
-			if (c == delimiter) {
-				sb.append(c);
-			}
-			sb.append(c);
-		}
-		sb.append(delimiter);
-	}
-
-	/**
-	 * Delimit the specified string with the specified delimiter; i.e. put a copy of
-	 * the delimiter at the front and back of the resulting string.
-	 * Escape any occurrences of the delimiter in the string with another delimiter.
-	 */
-	public static void delimitOn(char[] string, char delimiter, StringBuilder sb) {
-		sb.append(delimiter);
-		for (char c : string) {
-			if (c == delimiter) {
-				sb.append(c);
-			}
-			sb.append(c);
-		}
-		sb.append(delimiter);
-	}
-
-	/**
-	 * Delimit each of the specified strings with the specified delimiter; i.e. put a
-	 * copy of the delimiter at the front and back of the resulting string.
-	 * Escape any occurrences of the delimiter in a string with another delimiter.
-	 */
-	// cannot name method simply 'delimit' because of type-erasure...
-	public static Iterator<char[]> delimitCharArrays(Iterator<char[]> strings, final char delimiter) {
-		return new TransformationIterator<char[], char[]>(strings) {
-			@Override
-			protected char[] transform(char[] string) {
-				return StringTools.delimit(string, delimiter);
-			}
-		};
-	}
-
-	/**
-	 * Delimit the specified string with the specified delimiter; i.e. put a copy of
-	 * the delimiter at the front and back of the resulting string.
-	 * Escape any occurrences of a single-character delimiter in the string with
-	 * another delimiter.
-	 */
-	public static char[] delimit(char[] string, char[] delimiter) {
-		int delimiterLength = delimiter.length;
-		if (delimiterLength == 1) {
-			return delimit(string, delimiter[0]);
-		}
-		int stringLength = string.length;
-		char[] result = new char[stringLength+(2*delimiterLength)];
-		System.arraycopy(delimiter, 0, result, 0, delimiterLength);
-		System.arraycopy(string, 0, result, delimiterLength, stringLength);
-		System.arraycopy(delimiter, 0, result, stringLength+delimiterLength, delimiterLength);
-		return result;
-	}
-
-	/**
-	 * Delimit the specified string with the specified delimiter; i.e. put a copy of
-	 * the delimiter at the front and back of the resulting string.
-	 * Escape any occurrences of a single-character delimiter in the string with
-	 * another delimiter.
-	 */
-	public static void delimitOn(char[] string, char[] delimiter, Writer writer) {
-		if (delimiter.length == 1) {
-			delimitOn(string, delimiter[0], writer);
-		} else {
-			writeStringOn(delimiter, writer);
-			writeStringOn(string, writer);
-			writeStringOn(delimiter, writer);
-		}
-	}
-
-	/**
-	 * Delimit the specified string with the specified delimiter; i.e. put a copy of
-	 * the delimiter at the front and back of the resulting string.
-	 * Escape any occurrences of a single-character delimiter in the string with
-	 * another delimiter.
-	 */
-	public static void delimitOn(char[] string, char[] delimiter, StringBuffer sb) {
-		if (delimiter.length == 1) {
-			delimitOn(string, delimiter[0], sb);
-		} else {
-			sb.append(delimiter);
-			sb.append(string);
-			sb.append(delimiter);
-		}
-	}
-
-	/**
-	 * Delimit the specified string with the specified delimiter; i.e. put a copy of
-	 * the delimiter at the front and back of the resulting string.
-	 * Escape any occurrences of a single-character delimiter in the string with
-	 * another delimiter.
-	 */
-	public static void delimitOn(char[] string, char[] delimiter, StringBuilder sb) {
-		if (delimiter.length == 1) {
-			delimitOn(string, delimiter[0], sb);
-		} else {
-			sb.append(delimiter);
-			sb.append(string);
-			sb.append(delimiter);
-		}
-	}
-
-	/**
-	 * Delimit each of the specified strings with the specified delimiter; i.e. put a
-	 * copy of the delimiter at the front and back of the resulting string.
-	 * Escape any occurrences of a single-character delimiter in a string with
-	 * another delimiter.
-	 */
-	// cannot name method simply 'delimit' because of type-erasure...
-	public static Iterator<char[]> delimitCharArrays(Iterator<char[]> strings, final char[] delimiter) {
-		return new TransformationIterator<char[], char[]>(strings) {
-			@Override
-			protected char[] transform(char[] string) {
-				return StringTools.delimit(string, delimiter);
-			}
-		};
-	}
-
-
-	// ********** delimiting queries **********
-
-	/**
-	 * Return whether the specified string is quoted: "\"foo\"".
-	 */
-	public static boolean stringIsQuoted(String string) {
-		return stringIsDelimited(string, QUOTE);
-	}
-
-	/**
-	 * Return whether the specified string is parenthetical: "(foo)".
-	 */
-	public static boolean stringIsParenthetical(String string) {
-		return stringIsDelimited(string, OPEN_PARENTHESIS, CLOSE_PARENTHESIS);
-	}
-
-	/**
-	 * Return whether the specified string is bracketed: "[foo]".
-	 */
-	public static boolean stringIsBracketed(String string) {
-		return stringIsDelimited(string, OPEN_BRACKET, CLOSE_BRACKET);
-	}
-
-	/**
-	 * Return whether the specified string is braced: "{foo}".
-	 */
-	public static boolean stringIsBraced(String string) {
-		return stringIsDelimited(string, OPEN_BRACE, CLOSE_BRACE);
-	}
-
-	/**
-	 * Return whether the specified string is chevroned: "<foo>".
-	 */
-	public static boolean stringIsChevroned(String string) {
-		return stringIsDelimited(string, OPEN_CHEVRON, CLOSE_CHEVRON);
-	}
-
-	/**
-	 * Return whether the specified string is delimited by the specified
-	 * character.
-	 */
-	public static boolean stringIsDelimited(String string, char c) {
-		return stringIsDelimited(string, c, c);
-	}
-
-	/**
-	 * Return whether the specified string is delimited by the specified
-	 * characters.
-	 */
-	public static boolean stringIsDelimited(String string, char start, char end) {
-		int len = string.length();
-		if (len < 2) {
-			return false;
-		}
-		return stringIsDelimited(string.toCharArray(), start, end, len);
-	}
-
-	/**
-	 * Return whether the specified string is quoted: "\"foo\"".
-	 */
-	public static boolean stringIsQuoted(char[] string) {
-		return stringIsDelimited(string, QUOTE);
-	}
-
-	/**
-	 * Return whether the specified string is parenthetical: "(foo)".
-	 */
-	public static boolean stringIsParenthetical(char[] string) {
-		return stringIsDelimited(string, OPEN_PARENTHESIS, CLOSE_PARENTHESIS);
-	}
-
-	/**
-	 * Return whether the specified string is bracketed: "[foo]".
-	 */
-	public static boolean stringIsBracketed(char[] string) {
-		return stringIsDelimited(string, OPEN_BRACKET, CLOSE_BRACKET);
-	}
-
-	/**
-	 * Return whether the specified string is braced: "{foo}".
-	 */
-	public static boolean stringIsBraced(char[] string) {
-		return stringIsDelimited(string, OPEN_BRACE, CLOSE_BRACE);
-	}
-
-	/**
-	 * Return whether the specified string is chevroned: "<foo>".
-	 */
-	public static boolean stringIsChevroned(char[] string) {
-		return stringIsDelimited(string, OPEN_CHEVRON, CLOSE_CHEVRON);
-	}
-
-	/**
-	 * Return whether the specified string is delimited by the specified
-	 * character.
-	 */
-	public static boolean stringIsDelimited(char[] string, char c) {
-		return stringIsDelimited(string, c, c);
-	}
-
-	/**
-	 * Return whether the specified string is delimited by the specified
-	 * characters.
-	 */
-	public static boolean stringIsDelimited(char[] string, char start, char end) {
-		int len = string.length;
-		if (len < 2) {
-			return false;
-		}
-		return stringIsDelimited(string, start, end, len);
-	}
-
-	private static boolean stringIsDelimited(char[] s, char start, char end, int len) {
-		return (s[0] == start) && (s[len - 1] == end);
-	}
-
-
-	// ********** undelimiting **********
-
-	/**
-	 * Remove the delimiters from the specified string, removing any escape
-	 * characters. Throw an IllegalArgumentException if the string is too short
-	 * to undelimit (i.e. length < 2).
-	 */
-	public static String undelimit(String string) {
-		int len = string.length() - 2;
-		if (len < 0) {
-			throw new IllegalArgumentException("invalid string: \"" + string + '"'); //$NON-NLS-1$
-		}
-		if (len == 0) {
-			return EMPTY_STRING;
-		}
-		return new String(undelimit_(string.toCharArray(), len));
-	}
-
-	/**
-	 * Remove the first and last count characters from the specified string.
-	 * If the string is too short to be undelimited, throw an
-	 * IllegalArgumentException.
-	 * Use this method to undelimit strings that do not escape embedded
-	 * delimiters.
-	 */
-	public static String undelimit(String string, int count) {
-		int len = string.length() - (2 * count);
-		if (len < 0) {
-			throw new IllegalArgumentException("invalid string: \"" + string + '"'); //$NON-NLS-1$
-		}
-		if (len == 0) {
-			return EMPTY_STRING;
-		}
-		return new String(undelimit(string.toCharArray(), len, count));
-	}
-
-	/**
-	 * Remove the delimiters from the specified string, removing any escape
-	 * characters. Throw an IllegalArgumentException if the string is too short
-	 * to undelimit (i.e. length < 2).
-	 */
-	public static char[] undelimit(char[] string) {
-		int len = string.length - 2;
-		if (len < 0) {
-			throw new IllegalArgumentException("invalid string: \"" + new String(string) + '"'); //$NON-NLS-1$
-		}
-		if (len == 0) {
-			return EMPTY_CHAR_ARRAY;
-		}
-		return undelimit_(string, len);
-	}
-
-	private static char[] undelimit_(char[] string, int length) {
-		StringBuilder sb = new StringBuilder(length);
-		undelimitOn_(string, sb);
-		return convertToCharArray(sb);
-	}
-
-	/**
-	 * Remove the first and last count characters from the specified string.
-	 * If the string is too short to be undelimited, throw an
-	 * IllegalArgumentException.
-	 * Use this method to undelimit strings that do not escape embedded
-	 * delimiters.
-	 */
-	public static char[] undelimit(char[] string, int count) {
-		int len = string.length - (2 * count);
-		if (len < 0) {
-			throw new IllegalArgumentException("invalid string: \"" + new String(string) + '"'); //$NON-NLS-1$
-		}
-		if (len == 0) {
-			return EMPTY_CHAR_ARRAY;
-		}
-		return undelimit(string, len, count);
-	}
-
-	private static char[] undelimit(char[] string, int len, int count) {
-		char[] result = new char[len];
-		System.arraycopy(string, count, result, 0, len);
-		return result;
-	}
-
-	/**
-	 * Remove the delimiters from the specified string, removing any escape
-	 * characters. Throw an IllegalArgumentException if the string is too short
-	 * to undelimit (i.e. length < 2).
-	 */
-	public static void undelimitOn(String string, Writer writer) {
-		undelimitOn(string.toCharArray(), writer);
-	}
-
-	/**
-	 * Remove the first and last count characters from the specified string.
-	 * If the string is too short to be undelimited, throw an
-	 * IllegalArgumentException.
-	 * Use this method to undelimit strings that do not escape embedded
-	 * delimiters.
-	 */
-	public static void undelimitOn(String string, int count, Writer writer) {
-		int len = string.length() - (2 * count);
-		if (len < 0) {
-			throw new IllegalArgumentException("invalid string: \"" + string + '"'); //$NON-NLS-1$
-		}
-		if (len == 0) {
-			return;
-		}
-		writeStringOn(string, count, len, writer);
-	}
-
-	/**
-	 * Remove the delimiters from the specified string, removing any escape
-	 * characters. Throw an IllegalArgumentException if the string is too short
-	 * to undelimit (i.e. length < 2).
-	 */
-	public static void undelimitOn(String string, StringBuffer sb) {
-		undelimitOn(string.toCharArray(), sb);
-	}
-
-	/**
-	 * Remove the first and last count characters from the specified string.
-	 * If the string is too short to be undelimited, throw an
-	 * IllegalArgumentException.
-	 * Use this method to undelimit strings that do not escape embedded
-	 * delimiters.
-	 */
-	public static void undelimitOn(String string, int count, StringBuffer sb) {
-		int len = string.length() - (2 * count);
-		if (len < 0) {
-			throw new IllegalArgumentException("invalid string: \"" + string + '"'); //$NON-NLS-1$
-		}
-		if (len == 0) {
-			return;
-		}
-		sb.append(string, count, count + len);
-	}
-
-	/**
-	 * Remove the delimiters from the specified string, removing any escape
-	 * characters. Throw an IllegalArgumentException if the string is too short
-	 * to undelimit (i.e. length < 2).
-	 */
-	public static void undelimitOn(String string, StringBuilder sb) {
-		undelimitOn(string.toCharArray(), sb);
-	}
-
-	/**
-	 * Remove the first and last count characters from the specified string.
-	 * If the string is too short to be undelimited, throw an
-	 * IllegalArgumentException.
-	 * Use this method to undelimit strings that do not escape embedded
-	 * delimiters.
-	 */
-	public static void undelimitOn(String string, int count, StringBuilder sb) {
-		int len = string.length() - (2 * count);
-		if (len < 0) {
-			throw new IllegalArgumentException("invalid string: \"" + string + '"'); //$NON-NLS-1$
-		}
-		if (len == 0) {
-			return;
-		}
-		sb.append(string, count, count + len);
-	}
-
-	/**
-	 * Remove the delimiters from the specified string, removing any escape
-	 * characters. Throw an IllegalArgumentException if the string is too short
-	 * to undelimit (i.e. length < 2).
-	 */
-	public static void undelimitOn(char[] string, Writer writer) {
-		int len = string.length - 2;
-		if (len < 0) {
-			throw new IllegalArgumentException("invalid string: \"" + new String(string) + '"'); //$NON-NLS-1$
-		}
-		if (len == 0) {
-			return;
-		}
-		undelimitOn_(string, writer);
-	}
-
-	/**
-	 * pre-condition: string is at least 3 characters long
-	 */
-	private static void undelimitOn_(char[] string, Writer writer) {
-		char delimiter = string[0];  // the first char is the delimiter
-		char c = string[0];
-		char next = string[1];
-		int i = 1;
-		int last = string.length - 1;
-		do {
-			c = next;
-			writeCharOn(c, writer);
-			i++;
-			next = string[i];
-			if (c == delimiter) {
-				if ((next != delimiter) || (i == last)) {
-					// an embedded delimiter must be followed by another delimiter
-					return;
-				}
-				i++;
-				next = string[i];
-			}
-		} while (i != last);
-	}
-
-	/**
-	 * Remove the first and last count characters from the specified string.
-	 * If the string is too short to be undelimited, throw an
-	 * IllegalArgumentException.
-	 * Use this method to undelimit strings that do not escape embedded
-	 * delimiters.
-	 */
-	public static void undelimitOn(char[] string, int count, Writer writer) {
-		int len = string.length - (2 * count);
-		if (len < 0) {
-			throw new IllegalArgumentException("invalid string: \"" + new String(string) + '"'); //$NON-NLS-1$
-		}
-		if (len == 0) {
-			return;
-		}
-		writeStringOn(string, count, len, writer);
-	}
-
-	/**
-	 * Remove the delimiters from the specified string, removing any escape
-	 * characters. Throw an IllegalArgumentException if the string is too short
-	 * to undelimit (i.e. length < 2).
-	 */
-	public static void undelimitOn(char[] string, StringBuffer sb) {
-		int len = string.length - 2;
-		if (len < 0) {
-			throw new IllegalArgumentException("invalid string: \"" + new String(string) + '"'); //$NON-NLS-1$
-		}
-		if (len == 0) {
-			return;
-		}
-		undelimitOn_(string, sb);
-	}
-
-	/**
-	 * pre-condition: string is at least 3 characters long
-	 */
-	private static void undelimitOn_(char[] string, StringBuffer sb) {
-		char delimiter = string[0];  // the first char is the delimiter
-		char c = string[0];
-		char next = string[1];
-		int i = 1;
-		int last = string.length - 1;
-		do {
-			c = next;
-			sb.append(c);
-			i++;
-			next = string[i];
-			if (c == delimiter) {
-				if ((next != delimiter) || (i == last)) {
-					// an embedded delimiter must be followed by another delimiter
-					return;
-				}
-				i++;
-				next = string[i];
-			}
-		} while (i != last);
-	}
-
-	/**
-	 * Remove the first and last count characters from the specified string.
-	 * If the string is too short to be undelimited, throw an
-	 * IllegalArgumentException.
-	 * Use this method to undelimit strings that do not escape embedded
-	 * delimiters.
-	 */
-	public static void undelimitOn(char[] string, int count, StringBuffer sb) {
-		int len = string.length - (2 * count);
-		if (len < 0) {
-			throw new IllegalArgumentException("invalid string: \"" + new String(string) + '"'); //$NON-NLS-1$
-		}
-		if (len == 0) {
-			return;
-		}
-		sb.append(string, count, len);
-	}
-
-	/**
-	 * Remove the delimiters from the specified string, removing any escape
-	 * characters. Throw an IllegalArgumentException if the string is too short
-	 * to undelimit (i.e. length < 2).
-	 */
-	public static void undelimitOn(char[] string, StringBuilder sb) {
-		int len = string.length - 2;
-		if (len < 0) {
-			throw new IllegalArgumentException("invalid string: \"" + new String(string) + '"'); //$NON-NLS-1$
-		}
-		if (len == 0) {
-			return;
-		}
-		undelimitOn_(string, sb);
-	}
-
-	/**
-	 * pre-condition: string is at least 3 characters long
-	 */
-	private static void undelimitOn_(char[] string, StringBuilder sb) {
-		char delimiter = string[0];  // the first char is the delimiter
-		char c = string[0];
-		char next = string[1];
-		int i = 1;
-		int last = string.length - 1;
-		do {
-			c = next;
-			sb.append(c);
-			i++;
-			next = string[i];
-			if (c == delimiter) {
-				if ((next != delimiter) || (i == last)) {
-					// an embedded delimiter must be followed by another delimiter
-					return;
-				}
-				i++;
-				next = string[i];
-			}
-		} while (i != last);
-	}
-
-	/**
-	 * Remove the first and last count characters from the specified string.
-	 * If the string is too short to be undelimited, throw an
-	 * IllegalArgumentException.
-	 * Use this method to undelimit strings that do not escape embedded
-	 * delimiters.
-	 */
-	public static void undelimitOn(char[] string, int count, StringBuilder sb) {
-		int len = string.length - (2 * count);
-		if (len < 0) {
-			throw new IllegalArgumentException("invalid string: \"" + new String(string) + '"'); //$NON-NLS-1$
-		}
-		if (len == 0) {
-			return;
-		}
-		sb.append(string, count, len);
-	}
-
-
-	// ********** removing characters **********
-
-	/**
-	 * Remove the first occurrence of the specified character
-	 * from the specified string and return the result.
-	 * String#removeFirstOccurrence(char)
-	 */
-	public static String removeFirstOccurrence(String string, char c) {
-		int index = string.indexOf(c);
-		if (index == -1) {
-			// character not found
-			return string;
-		}
-		if (index == 0) {
-			// character found at the front of string
-			return string.substring(1);
-		}
-		int last = string.length() - 1;
-		if (index == last) {
-			// character found at the end of string
-			return string.substring(0, last);
-		}
-		// character found somewhere in the middle of the string
-		return string.substring(0, index).concat(string.substring(index + 1));
-	}
-
-	/**
-	 * Remove the first occurrence of the specified character
-	 * from the specified string and print the result on the specified stream.
-	 * String#removeFirstOccurrenceOn(char, Writer)
-	 */
-	public static void removeFirstOccurrenceOn(String string, char c, Writer writer) {
-		int index = string.indexOf(c);
-		if (index == -1) {
-			writeStringOn(string, writer);
-		} else {
-			removeCharAtIndexOn(string.toCharArray(), index, writer);
-		}
-	}
-
-	/**
-	 * Remove the first occurrence of the specified character
-	 * from the specified string and print the result on the specified stream.
-	 * String#removeFirstOccurrenceOn(char, StringBuffer)
-	 */
-	public static void removeFirstOccurrenceOn(String string, char c, StringBuffer sb) {
-		int index = string.indexOf(c);
-		if (index == -1) {
-			sb.append(string);
-		} else {
-			removeCharAtIndexOn(string.toCharArray(), index, sb);
-		}
-	}
-
-	/**
-	 * Remove the first occurrence of the specified character
-	 * from the specified string and print the result on the specified stream.
-	 * String#removeFirstOccurrenceOn(char, StringBuilder)
-	 */
-	public static void removeFirstOccurrenceOn(String string, char c, StringBuilder sb) {
-		int index = string.indexOf(c);
-		if (index == -1) {
-			sb.append(string);
-		} else {
-			removeCharAtIndexOn(string.toCharArray(), index, sb);
-		}
-	}
-
-	/**
-	 * Remove the first occurrence of the specified character
-	 * from the specified string and return the result.
-	 * String#removeFirstOccurrence(char)
-	 */
-	public static char[] removeFirstOccurrence(char[] string, char c) {
-		int index = CollectionTools.indexOf(string, c);
-		if (index == -1) {
-			// character not found
-			return string;
-		}
-		int last = string.length - 1;
-		char[] result = new char[last];
-		if (index == 0) {
-			// character found at the front of string
-			System.arraycopy(string, 1, result, 0, last);
-		} else if (index == last) {
-			// character found at the end of string
-			System.arraycopy(string, 0, result, 0, last);
-		} else {
-			// character found somewhere in the middle of the string
-			System.arraycopy(string, 0, result, 0, index);
-			System.arraycopy(string, index + 1, result, index, last - index);
-		}
-		return result;
-	}
-
-	/**
-	 * Remove the first occurrence of the specified character
-	 * from the specified string and print the result on the specified stream.
-	 * String#removeFirstOccurrenceOn(char, Writer)
-	 */
-	public static void removeFirstOccurrenceOn(char[] string, char c, Writer writer) {
-		int index = CollectionTools.indexOf(string, c);
-		if (index == -1) {
-			writeStringOn(string, writer);
-		} else {
-			removeCharAtIndexOn(string, index, writer);
-		}
-	}
-
-	private static void removeCharAtIndexOn(char[] string, int index, Writer writer) {
-		int last = string.length - 1;
-		if (index == 0) {
-			// character found at the front of string
-			writeStringOn(string, 1, last, writer);
-		} else if (index == last) {
-			// character found at the end of string
-			writeStringOn(string, 0, last, writer);
-		} else {
-			// character found somewhere in the middle of the string
-			writeStringOn(string, 0, index, writer);
-			writeStringOn(string, index + 1, last - index, writer);
-		}
-	}
-
-	/**
-	 * Remove the first occurrence of the specified character
-	 * from the specified string and print the result on the specified stream.
-	 * String#removeFirstOccurrenceOn(char, StringBuffer)
-	 */
-	public static void removeFirstOccurrenceOn(char[] string, char c, StringBuffer sb) {
-		int index = CollectionTools.indexOf(string, c);
-		if (index == -1) {
-			sb.append(string);
-		} else {
-			removeCharAtIndexOn(string, index, sb);
-		}
-	}
-
-	private static void removeCharAtIndexOn(char[] string, int index, StringBuffer sb) {
-		int last = string.length - 1;
-		if (index == 0) {
-			// character found at the front of string
-			sb.append(string, 1, last);
-		} else if (index == last) {
-			// character found at the end of string
-			sb.append(string, 0, last);
-		} else {
-			// character found somewhere in the middle of the string
-			sb.append(string, 0, index);
-			sb.append(string, index + 1, last - index);
-		}
-	}
-
-	/**
-	 * Remove the first occurrence of the specified character
-	 * from the specified string and print the result on the specified stream.
-	 * String#removeFirstOccurrenceOn(char, StringBuilder)
-	 */
-	public static void removeFirstOccurrenceOn(char[] string, char c, StringBuilder sb) {
-		int index = CollectionTools.indexOf(string, c);
-		if (index == -1) {
-			sb.append(string);
-		} else {
-			removeCharAtIndexOn(string, index, sb);
-		}
-	}
-
-	private static void removeCharAtIndexOn(char[] string, int index, StringBuilder sb) {
-		int last = string.length - 1;
-		if (index == 0) {
-			// character found at the front of string
-			sb.append(string, 1, last);
-		} else if (index == last) {
-			// character found at the end of string
-			sb.append(string, 0, last);
-		} else {
-			// character found somewhere in the middle of the string
-			sb.append(string, 0, index);
-			sb.append(string, index + 1, last - index);
-		}
-	}
-
-	/**
-	 * Remove all occurrences of the specified character
-	 * from the specified string and return the result.
-	 * String#removeAllOccurrences(char)
-	 */
-	public static String removeAllOccurrences(String string, char c) {
-		int first = string.indexOf(c);
-		return (first == -1) ? string : new String(removeAllOccurrences_(string.toCharArray(), c, first));
-	}
-
-	/**
-	 * Remove all occurrences of the specified character
-	 * from the specified string and write the result to the specified stream.
-	 * String#removeAllOccurrencesOn(char, Writer)
-	 */
-	public static void removeAllOccurrencesOn(String string, char c, Writer writer) {
-		int first = string.indexOf(c);
-		if (first == -1) {
-			writeStringOn(string, writer);
-		} else {
-			removeAllOccurrencesOn_(string.toCharArray(), c, first, writer);
-		}
-	}
-
-	/**
-	 * Remove all occurrences of the specified character
-	 * from the specified string and write the result to the specified stream.
-	 * String#removeAllOccurrencesOn(char, StringBuffer)
-	 */
-	public static void removeAllOccurrencesOn(String string, char c, StringBuffer sb) {
-		int first = string.indexOf(c);
-		if (first == -1) {
-			sb.append(string);
-		} else {
-			removeAllOccurrencesOn_(string.toCharArray(), c, first, sb);
-		}
-	}
-
-	/**
-	 * Remove all occurrences of the specified character
-	 * from the specified string and write the result to the specified stream.
-	 * String#removeAllOccurrencesOn(char, StringBuilder)
-	 */
-	public static void removeAllOccurrencesOn(String string, char c, StringBuilder sb) {
-		int first = string.indexOf(c);
-		if (first == -1) {
-			sb.append(string);
-		} else {
-			removeAllOccurrencesOn_(string.toCharArray(), c, first, sb);
-		}
-	}
-
-	/**
-	 * Remove all occurrences of the specified character
-	 * from the specified string and return the result.
-	 * String#removeAllOccurrences(char)
-	 */
-	public static char[] removeAllOccurrences(char[] string, char c) {
-		int first = CollectionTools.indexOf(string, c);
-		return (first == -1) ? string : removeAllOccurrences_(string, c, first);
-	}
-
-	/*
-	 * The index of the first matching character is passed in.
-	 */
-	private static char[] removeAllOccurrences_(char[] string, char c, int first) {
-		StringBuilder sb = new StringBuilder(string.length);
-		removeAllOccurrencesOn_(string, c, first, sb);
-		return convertToCharArray(sb);
-	}
-
-	/**
-	 * Remove all occurrences of the specified character
-	 * from the specified string and write the result to the
-	 * specified writer.
-	 * String#removeAllOccurrencesOn(char, Writer)
-	 */
-	public static void removeAllOccurrencesOn(char[] string, char c, Writer writer) {
-		int first = CollectionTools.indexOf(string, c);
-		if (first == -1) {
-			writeStringOn(string, writer);
-		} else {
-			removeAllOccurrencesOn_(string, c, first, writer);
-		}
-	}
-
-	/*
-	 * The index of the first matching character is passed in.
-	 */
-	private static void removeAllOccurrencesOn_(char[] string, char c, int first, Writer writer) {
-		writeStringOn(string, 0, first, writer);
-		int len = string.length;
-		for (int i = first; i < len; i++) {
-			char d = string[i];
-			if (d != c) {
-				writeCharOn(d, writer);
-			}
-		}
-	}
-
-	/**
-	 * Remove all occurrences of the specified character
-	 * from the specified string and append the result to the
-	 * specified string buffer.
-	 * String#removeAllOccurrencesOn(char, StringBuffer)
-	 */
-	public static void removeAllOccurrencesOn(char[] string, char c, StringBuffer sb) {
-		int first = CollectionTools.indexOf(string, c);
-		if (first == -1) {
-			sb.append(string);
-		} else {
-			removeAllOccurrencesOn_(string, c, first, sb);
-		}
-	}
-
-	/*
-	 * The index of the first matching character is passed in.
-	 */
-	private static void removeAllOccurrencesOn_(char[] string, char c, int first, StringBuffer sb) {
-		sb.append(string, 0, first);
-		int len = string.length;
-		for (int i = first; i < len; i++) {
-			char d = string[i];
-			if (d != c) {
-				sb.append(d);
-			}
-		}
-	}
-
-	/**
-	 * Remove all occurrences of the specified character
-	 * from the specified string and append the result to the
-	 * specified string builder.
-	 * String#removeAllOccurrencesOn(char, StringBuilder)
-	 */
-	public static void removeAllOccurrencesOn(char[] string, char c, StringBuilder sb) {
-		int first = CollectionTools.indexOf(string, c);
-		if (first == -1) {
-			sb.append(string);
-		} else {
-			removeAllOccurrencesOn_(string, c, first, sb);
-		}
-	}
-
-	/*
-	 * The index of the first matching character is passed in.
-	 */
-	private static void removeAllOccurrencesOn_(char[] string, char c, int first, StringBuilder sb) {
-		sb.append(string, 0, first);
-		int len = string.length;
-		for (int i = first; i < len; i++) {
-			char d = string[i];
-			if (d != c) {
-				sb.append(d);
-			}
-		}
-	}
-
-	/**
-	 * Remove all the spaces from the specified string and return the result.
-	 * String#removeAllSpaces()
-	 */
-	public static String removeAllSpaces(String string) {
-		return removeAllOccurrences(string, ' ');
-	}
-
-	/**
-	 * Remove all the spaces
-	 * from the specified string and write the result to the specified writer.
-	 * String#removeAllSpacesOn(Writer)
-	 */
-	public static void removeAllSpacesOn(String string, Writer writer) {
-		removeAllOccurrencesOn(string, ' ', writer);
-	}
-
-	/**
-	 * Remove all the spaces
-	 * from the specified string and write the result to the specified
-	 * string buffer.
-	 * String#removeAllSpacesOn(StringBuffer)
-	 */
-	public static void removeAllSpacesOn(String string, StringBuffer sb) {
-		removeAllOccurrencesOn(string, ' ', sb);
-	}
-
-	/**
-	 * Remove all the spaces
-	 * from the specified string and write the result to the specified
-	 * string builder.
-	 * String#removeAllSpacesOn(StringBuilder)
-	 */
-	public static void removeAllSpacesOn(String string, StringBuilder sb) {
-		removeAllOccurrencesOn(string, ' ', sb);
-	}
-
-	/**
-	 * Remove all the spaces from the specified string and return the result.
-	 * String#removeAllSpaces()
-	 */
-	public static char[] removeAllSpaces(char[] string) {
-		return removeAllOccurrences(string, ' ');
-	}
-
-	/**
-	 * Remove all the spaces
-	 * from the specified string and write the result to the
-	 * specified writer.
-	 * String#removeAllSpacesOn(Writer)
-	 */
-	public static void removeAllSpacesOn(char[] string, Writer writer) {
-		removeAllOccurrencesOn(string, ' ', writer);
-	}
-
-	/**
-	 * Remove all the spaces
-	 * from the specified string and append the result to the
-	 * specified string buffer.
-	 * String#removeAllSpacesOn(StringBuffer)
-	 */
-	public static void removeAllSpacesOn(char[] string, StringBuffer sb) {
-		removeAllOccurrencesOn(string, ' ', sb);
-	}
-
-	/**
-	 * Remove all the spaces
-	 * from the specified string and append the result to the
-	 * specified string builder.
-	 * String#removeAllSpacesOn(StringBuilder)
-	 */
-	public static void removeAllSpacesOn(char[] string, StringBuilder sb) {
-		removeAllOccurrencesOn(string, ' ', sb);
-	}
-
-	/**
-	 * Remove all the whitespace from the specified string and return the result.
-	 * String#removeAllWhitespace()
-	 */
-	public static String removeAllWhitespace(String string) {
-		char[] string2 = string.toCharArray();
-		int first = indexOfWhitespace_(string2);
-		return (first == -1) ? string : new String(removeAllWhitespace_(string2, first));
-	}
-
-	/**
-	 * Remove all the whitespace
-	 * from the specified string and append the result to the
-	 * specified writer.
-	 * String#removeAllWhitespaceOn(Writer)
-	 */
-	public static void removeAllWhitespaceOn(String string, Writer writer) {
-		char[] string2 = string.toCharArray();
-		int first = indexOfWhitespace_(string2);
-		if (first == -1) {
-			writeStringOn(string, writer);
-		} else {
-			removeAllWhitespaceOn_(string2, first, writer);
-		}
-	}
-
-	/**
-	 * Remove all the whitespace
-	 * from the specified string and append the result to the
-	 * specified string buffer.
-	 * String#removeAllWhitespaceOn(StringBuffer)
-	 */
-	public static void removeAllWhitespaceOn(String string, StringBuffer sb) {
-		char[] string2 = string.toCharArray();
-		int first = indexOfWhitespace_(string2);
-		if (first == -1) {
-			sb.append(string);
-		} else {
-			removeAllWhitespaceOn_(string2, first, sb);
-		}
-	}
-
-	/**
-	 * Remove all the whitespace
-	 * from the specified string and append the result to the
-	 * specified string builder.
-	 * String#removeAllWhitespaceOn(StringBuilder)
-	 */
-	public static void removeAllWhitespaceOn(String string, StringBuilder sb) {
-		char[] string2 = string.toCharArray();
-		int first = indexOfWhitespace_(string2);
-		if (first == -1) {
-			sb.append(string);
-		} else {
-			removeAllWhitespaceOn_(string2, first, sb);
-		}
-	}
-
-	/**
-	 * Remove all the whitespace from the specified string and return the result.
-	 * String#removeAllWhitespace()
-	 */
-	public static char[] removeAllWhitespace(char[] string) {
-		int first = indexOfWhitespace_(string);
-		return (first == -1) ? string : removeAllWhitespace_(string, first);
-	}
-
-	private static int indexOfWhitespace_(char[] string) {
-		int len = string.length;
-		for (int i = 0; i < len; i++) {
-			if (Character.isWhitespace(string[i])) {
-				return i;
-			}
-		}
-		return -1;
-	}
-
-	/*
-	 * The index of the first non-whitespace character is passed in.
-	 */
-	private static char[] removeAllWhitespace_(char[] string, int first) {
-		StringBuilder sb = new StringBuilder(string.length);
-		removeAllWhitespaceOn_(string, first, sb);
-		return convertToCharArray(sb);
-	}
-
-	/**
-	 * Remove all the whitespace
-	 * from the specified string and append the result to the
-	 * specified writer.
-	 * String#removeAllWhitespaceOn(Writer)
-	 */
-	public static void removeAllWhitespaceOn(char[] string, Writer writer) {
-		int first = indexOfWhitespace_(string);
-		if (first == -1) {
-			writeStringOn(string, writer);
-		} else {
-			removeAllWhitespaceOn_(string, first, writer);
-		}
-	}
-
-	/*
-	 * The index of the first whitespace character is passed in.
-	 */
-	private static void removeAllWhitespaceOn_(char[] string, int first, Writer writer) {
-		writeStringOn(string, 0, first, writer);
-		int len = string.length;
-		for (int i = first; i < len; i++) {
-			char c = string[i];
-			if ( ! Character.isWhitespace(c)) {
-				writeCharOn(c, writer);
-			}
-		}
-	}
-
-	/**
-	 * Remove all the whitespace
-	 * from the specified string and append the result to the
-	 * specified string buffer.
-	 * String#removeAllWhitespaceOn(StringBuffer)
-	 */
-	public static void removeAllWhitespaceOn(char[] string, StringBuffer sb) {
-		int first = indexOfWhitespace_(string);
-		if (first == -1) {
-			sb.append(string);
-		} else {
-			removeAllWhitespaceOn_(string, first, sb);
-		}
-	}
-
-	/*
-	 * The index of the first whitespace character is passed in.
-	 */
-	private static void removeAllWhitespaceOn_(char[] string, int first, StringBuffer sb) {
-		sb.append(string, 0, first);
-		int len = string.length;
-		for (int i = first; i < len; i++) {
-			char c = string[i];
-			if ( ! Character.isWhitespace(c)) {
-				sb.append(c);
-			}
-		}
-	}
-
-	/**
-	 * Remove all the whitespace
-	 * from the specified string and append the result to the
-	 * specified string builder.
-	 * String#removeAllWhitespaceOn(StringBuilder)
-	 */
-	public static void removeAllWhitespaceOn(char[] string, StringBuilder sb) {
-		int first = indexOfWhitespace_(string);
-		if (first == -1) {
-			sb.append(string);
-		} else {
-			removeAllWhitespaceOn_(string, first, sb);
-		}
-	}
-
-	/*
-	 * The index of the first whitespace character is passed in.
-	 */
-	private static void removeAllWhitespaceOn_(char[] string, int first, StringBuilder sb) {
-		sb.append(string, 0, first);
-		int len = string.length;
-		for (int i = first; i < len; i++) {
-			char c = string[i];
-			if ( ! Character.isWhitespace(c)) {
-				sb.append(c);
-			}
-		}
-	}
-//===============================
-	/**
-	 * Compress the whitespace in the specified string and return the result.
-	 * The whitespace is compressed by replacing any occurrence of one or more
-	 * whitespace characters with a single space.
-	 * String#compressWhitespace()
-	 */
-	public static String compressWhitespace(String string) {
-		char[] string2 = string.toCharArray();
-		int first = indexOfWhitespace_(string2);
-		return (first == -1) ? string : new String(compressWhitespace_(string2, first));
-	}
-
-	/**
-	 * Compress the whitespace
-	 * in the specified string and append the result to the
-	 * specified writer.
-	 * The whitespace is compressed by replacing any occurrence of one or more
-	 * whitespace characters with a single space.
-	 * String#compressWhitespaceOn(Writer)
-	 */
-	public static void compressWhitespaceOn(String string, Writer writer) {
-		char[] string2 = string.toCharArray();
-		int first = indexOfWhitespace_(string2);
-		if (first == -1) {
-			writeStringOn(string, writer);
-		} else {
-			compressWhitespaceOn_(string2, first, writer);
-		}
-	}
-
-	/**
-	 * Compress the whitespace
-	 * in the specified string and append the result to the
-	 * specified string buffer.
-	 * The whitespace is compressed by replacing any occurrence of one or more
-	 * whitespace characters with a single space.
-	 * String#compressWhitespaceOn(StringBuffer)
-	 */
-	public static void compressWhitespaceOn(String string, StringBuffer sb) {
-		char[] string2 = string.toCharArray();
-		int first = indexOfWhitespace_(string2);
-		if (first == -1) {
-			sb.append(string);
-		} else {
-			compressWhitespaceOn_(string2, first, sb);
-		}
-	}
-
-	/**
-	 * Compress the whitespace
-	 * in the specified string and append the result to the
-	 * specified string builder.
-	 * The whitespace is compressed by replacing any occurrence of one or more
-	 * whitespace characters with a single space.
-	 * String#compressWhitespaceOn(StringBuilder)
-	 */
-	public static void compressWhitespaceOn(String string, StringBuilder sb) {
-		char[] string2 = string.toCharArray();
-		int first = indexOfWhitespace_(string2);
-		if (first == -1) {
-			sb.append(string);
-		} else {
-			compressWhitespaceOn_(string2, first, sb);
-		}
-	}
-
-	/**
-	 * Compress the whitespace in the specified string and return the result.
-	 * The whitespace is compressed by replacing any occurrence of one or more
-	 * whitespace characters with a single space.
-	 * String#compressWhitespace()
-	 */
-	public static char[] compressWhitespace(char[] string) {
-		int first = indexOfWhitespace_(string);
-		return (first == -1) ? string : compressWhitespace_(string, first);
-	}
-
-	/*
-	 * The index of the first whitespace character is passed in.
-	 */
-	private static char[] compressWhitespace_(char[] string, int first) {
-		StringBuilder sb = new StringBuilder(string.length);
-		compressWhitespaceOn_(string, first, sb);
-		return convertToCharArray(sb);
-	}
-
-	/**
-	 * Compress the whitespace
-	 * in the specified string and append the result to the
-	 * specified writer.
-	 * The whitespace is compressed by replacing any occurrence of one or more
-	 * whitespace characters with a single space.
-	 * String#compressWhitespaceOn(Writer)
-	 */
-	public static void compressWhitespaceOn(char[] string, Writer writer) {
-		int first = indexOfWhitespace_(string);
-		if (first == -1) {
-			writeStringOn(string, writer);
-		} else {
-			compressWhitespaceOn_(string, first, writer);
-		}
-	}
-
-	/*
-	 * The index of the first whitespace character is passed in.
-	 */
-	private static void compressWhitespaceOn_(char[] string, int first, Writer writer) {
-		writeStringOn(string, 0, first, writer);
-		boolean spaceWritten = false;
-		int len = string.length;
-		for (int i = first; i < len; i++) {
-			char c = string[i];
-			if (Character.isWhitespace(c)) {
-				if (spaceWritten) {
-					// skip subsequent whitespace characters
-				} else {
-					// replace first whitespace character with a space
-					spaceWritten = true;
-					writeCharOn(' ', writer);
-				}
-			} else {
-				spaceWritten = false;
-				writeCharOn(c, writer);
-			}
-		}
-	}
-
-	/**
-	 * Compress the whitespace
-	 * in the specified string and append the result to the
-	 * specified string buffer.
-	 * The whitespace is compressed by replacing any occurrence of one or more
-	 * whitespace characters with a single space.
-	 * String#compressWhitespaceOn(StringBuffer)
-	 */
-	public static void compressWhitespaceOn(char[] string, StringBuffer sb) {
-		int first = indexOfWhitespace_(string);
-		if (first == -1) {
-			sb.append(string);
-		} else {
-			compressWhitespaceOn_(string, first, sb);
-		}
-	}
-
-	/*
-	 * The index of the first whitespace character is passed in.
-	 */
-	private static void compressWhitespaceOn_(char[] string, int first, StringBuffer sb) {
-		sb.append(string, 0, first);
-		boolean spaceWritten = false;
-		int len = string.length;
-		for (int i = first; i < len; i++) {
-			char c = string[i];
-			if (Character.isWhitespace(c)) {
-				if (spaceWritten) {
-					// skip subsequent whitespace characters
-				} else {
-					// replace first whitespace character with a space
-					spaceWritten = true;
-					sb.append(' ');
-				}
-			} else {
-				spaceWritten = false;
-				sb.append(c);
-			}
-		}
-	}
-
-	/**
-	 * Compress the whitespace
-	 * in the specified string and append the result to the
-	 * specified string builder.
-	 * The whitespace is compressed by replacing any occurrence of one or more
-	 * whitespace characters with a single space.
-	 * String#compressWhitespaceOn(StringBuilder)
-	 */
-	public static void compressWhitespaceOn(char[] string, StringBuilder sb) {
-		int first = indexOfWhitespace_(string);
-		if (first == -1) {
-			sb.append(string);
-		} else {
-			compressWhitespaceOn_(string, first, sb);
-		}
-	}
-
-	/*
-	 * The index of the first whitespace character is passed in.
-	 */
-	private static void compressWhitespaceOn_(char[] string, int first, StringBuilder sb) {
-		sb.append(string, 0, first);
-		boolean spaceWritten = false;
-		int len = string.length;
-		for (int i = first; i < len; i++) {
-			char c = string[i];
-			if (Character.isWhitespace(c)) {
-				if (spaceWritten) {
-					// skip subsequent whitespace characters
-				} else {
-					// replace first whitespace character with a space
-					spaceWritten = true;
-					sb.append(' ');
-				}
-			} else {
-				spaceWritten = false;
-				sb.append(c);
-			}
-		}
-	}
-
-
-	// ********** common prefix **********
-
-	/**
-	 * Return the length of the common prefix shared by the specified strings.
-	 * String#commonPrefixLength(String)
-	 */
-	public static int commonPrefixLength(String s1, String s2) {
-		return commonPrefixLength(s1.toCharArray(), s2.toCharArray());
-	}
-
-	/**
-	 * Return the length of the common prefix shared by the specified strings.
-	 */
-	public static int commonPrefixLength(char[] s1, char[] s2) {
-		return commonPrefixLength_(s1, s2, Math.min(s1.length, s2.length));
-	}
-
-	/**
-	 * Return the length of the common prefix shared by the specified strings;
-	 * but limit the length to the specified maximum.
-	 * String#commonPrefixLength(String, int)
-	 */
-	public static int commonPrefixLength(String s1, String s2, int max) {
-		return commonPrefixLength(s1.toCharArray(), s2.toCharArray(), max);
-	}
-
-	/**
-	 * Return the length of the common prefix shared by the specified strings;
-	 * but limit the length to the specified maximum.
-	 */
-	public static int commonPrefixLength(char[] s1, char[] s2, int max) {
-		return commonPrefixLength_(s1, s2, Math.min(max, Math.min(s1.length, s2.length)));
-	}
-
-	/*
-	 * Return the length of the common prefix shared by the specified strings;
-	 * but limit the length to the specified maximum. Assume the specified
-	 * maximum is less than the lengths of the specified strings.
-	 */
-	private static int commonPrefixLength_(char[] s1, char[] s2, int max) {
-		for (int i = 0; i < max; i++) {
-			if (s1[i] != s2[i]) {
-				return i;
-			}
-		}
-		return max;	// all the characters up to 'max' are the same
-	}
-
-
-	// ********** capitalization **********
-
-	/*
-	 * no zero-length check or lower case check
-	 */
-	private static char[] capitalize_(char[] string) {
-		string[0] = Character.toUpperCase(string[0]);
-		return string;
-	}
-
-	/**
-	 * Modify and return the specified string with
-	 * its first letter capitalized.
-	 */
-	public static char[] capitalize(char[] string) {
-		if ((string.length == 0) || Character.isUpperCase(string[0])) {
-			return string;
-		}
-		return capitalize_(string);
-	}
-
-	/**
-	 * Return the specified string with its first letter capitalized.
-	 * String#capitalize()
-	 */
-	public static String capitalize(String string) {
-		if ((string.length() == 0) || Character.isUpperCase(string.charAt(0))) {
-			return string;
-		}
-		return new String(capitalize_(string.toCharArray()));
-	}
-
-	/**
-	 * Modify each of the specified strings, capitalizing the first letter of
-	 * each.
-	 */
-	public static Iterator<String> capitalize(Iterator<String> strings) {
-		return new TransformationIterator<String, String>(strings) {
-			@Override
-			protected String transform(String string) {
-				return StringTools.capitalize(string);
-			}
-		};
-	}
-
-	/**
-	 * Modify each of the specified strings, capitalizing the first letter of
-	 * each.
-	 */
-	// cannot name method simply 'capitalize' because of type-erasure...
-	public static Iterator<char[]> capitalizeCharArrays(Iterator<char[]> strings) {
-		return new TransformationIterator<char[], char[]>(strings) {
-			@Override
-			protected char[] transform(char[] string) {
-				return StringTools.capitalize(string);
-			}
-		};
-	}
-
-	/*
-	 * no zero-length check or upper case check
-	 */
-	private static void capitalizeOn_(char[] string, StringBuffer sb) {
-		sb.append(Character.toUpperCase(string[0]));
-		sb.append(string, 1, string.length - 1);
-	}
-
-	/**
-	 * Append the specified string to the specified string buffer
-	 * with its first letter capitalized.
-	 */
-	public static void capitalizeOn(char[] string, StringBuffer sb) {
-		if (string.length == 0) {
-			return;
-		}
-		if (Character.isUpperCase(string[0])) {
-			sb.append(string);
-		} else {
-			capitalizeOn_(string, sb);
-		}
-	}
-
-	/**
-	 * Append the specified string to the specified string buffer
-	 * with its first letter capitalized.
-	 * String#capitalizeOn(StringBuffer)
-	 */
-	public static void capitalizeOn(String string, StringBuffer sb) {
-		if (string.length() == 0) {
-			return;
-		}
-		if (Character.isUpperCase(string.charAt(0))) {
-			sb.append(string);
-		} else {
-			capitalizeOn_(string.toCharArray(), sb);
-		}
-	}
-
-	/*
-	 * no zero-length check or upper case check
-	 */
-	private static void capitalizeOn_(char[] string, StringBuilder sb) {
-		sb.append(Character.toUpperCase(string[0]));
-		sb.append(string, 1, string.length - 1);
-	}
-
-	/**
-	 * Append the specified string to the specified string builder
-	 * with its first letter capitalized.
-	 */
-	public static void capitalizeOn(char[] string, StringBuilder sb) {
-		if (string.length == 0) {
-			return;
-		}
-		if (Character.isUpperCase(string[0])) {
-			sb.append(string);
-		} else {
-			capitalizeOn_(string, sb);
-		}
-	}
-
-	/**
-	 * Append the specified string to the specified string builder
-	 * with its first letter capitalized.
-	 * String#capitalizeOn(StringBuffer)
-	 */
-	public static void capitalizeOn(String string, StringBuilder sb) {
-		if (string.length() == 0) {
-			return;
-		}
-		if (Character.isUpperCase(string.charAt(0))) {
-			sb.append(string);
-		} else {
-			capitalizeOn_(string.toCharArray(), sb);
-		}
-	}
-
-	/*
-	 * no zero-length check or upper case check
-	 */
-	private static void capitalizeOn_(char[] string, Writer writer) {
-		writeCharOn(Character.toUpperCase(string[0]), writer);
-		writeStringOn(string, 1, string.length - 1, writer);
-	}
-
-	/**
-	 * Append the specified string to the specified string buffer
-	 * with its first letter capitalized.
-	 */
-	public static void capitalizeOn(char[] string, Writer writer) {
-		if (string.length == 0) {
-			return;
-		}
-		if (Character.isUpperCase(string[0])) {
-			writeStringOn(string, writer);
-		} else {
-			capitalizeOn_(string, writer);
-		}
-	}
-
-	/**
-	 * Append the specified string to the specified string buffer
-	 * with its first letter capitalized.
-	 * String#capitalizeOn(Writer)
-	 */
-	public static void capitalizeOn(String string, Writer writer) {
-		if (string.length() == 0) {
-			return;
-		}
-		if (Character.isUpperCase(string.charAt(0))) {
-			writeStringOn(string, writer);
-		} else {
-			capitalizeOn_(string.toCharArray(), writer);
-		}
-	}
-
-	/*
-	 * no zero-length check or lower case check
-	 */
-	private static char[] uncapitalize_(char[] string) {
-		string[0] = Character.toLowerCase(string[0]);
-		return string;
-	}
-
-	private static boolean stringNeedNotBeUncapitalized_(char[] string) {
-		if (string.length == 0) {
-			return true;
-		}
-		if (Character.isLowerCase(string[0])) {
-			return true;
-		}
-		// if both the first and second characters are capitalized,
-		// return the string unchanged
-		if ((string.length > 1)
-				&& Character.isUpperCase(string[1])
-				&& Character.isUpperCase(string[0])){
-			return true;
-		}
-		return false;
-	}
-
-	/**
-	 * Modify and return the specified string with its
-	 * first letter converted to lower case.
-	 * (Unless both the first and second letters are upper case,
-	 * in which case the string is returned unchanged.)
-	 */
-	public static char[] uncapitalize(char[] string) {
-		if (stringNeedNotBeUncapitalized_(string)) {
-			return string;
-		}
-		return uncapitalize_(string);
-	}
-
-	private static boolean stringNeedNotBeUncapitalized_(String string) {
-		if (string.length() == 0) {
-			return true;
-		}
-		if (Character.isLowerCase(string.charAt(0))) {
-			return true;
-		}
-		// if both the first and second characters are capitalized,
-		// return the string unchanged
-		if ((string.length() > 1)
-				&& Character.isUpperCase(string.charAt(1))
-				&& Character.isUpperCase(string.charAt(0))){
-			return true;
-		}
-		return false;
-	}
-
-	/**
-	 * Return the specified string with its first letter converted to lower case.
-	 * (Unless both the first and second letters are upper case,
-	 * in which case the string is returned unchanged.)
-	 * String#uncapitalize()
-	 */
-	public static String uncapitalize(String string) {
-		if (stringNeedNotBeUncapitalized_(string)) {
-			return string;
-		}
-		return new String(uncapitalize_(string.toCharArray()));
-	}
-
-	/*
-	 * no zero-length check or lower case check
-	 */
-	private static void uncapitalizeOn_(char[] string, StringBuffer sb) {
-		sb.append(Character.toLowerCase(string[0]));
-		sb.append(string, 1, string.length - 1);
-	}
-
-	/**
-	 * Append the specified string to the specified string buffer
-	 * with its first letter converted to lower case.
-	 * (Unless both the first and second letters are upper case,
-	 * in which case the string is returned unchanged.)
-	 */
-	public static void uncapitalizeOn(char[] string, StringBuffer sb) {
-		if (stringNeedNotBeUncapitalized_(string)) {
-			sb.append(string);
-		} else {
-			uncapitalizeOn_(string, sb);
-		}
-	}
-
-	/**
-	 * Append the specified string to the specified string buffer
-	 * with its first letter converted to lower case.
-	 * (Unless both the first and second letters are upper case,
-	 * in which case the string is returned unchanged.)
-	 * String#uncapitalizeOn(StringBuffer)
-	 */
-	public static void uncapitalizeOn(String string, StringBuffer sb) {
-		if (stringNeedNotBeUncapitalized_(string)) {
-			sb.append(string);
-		} else {
-			uncapitalizeOn_(string.toCharArray(), sb);
-		}
-	}
-
-	/*
-	 * no zero-length check or lower case check
-	 */
-	private static void uncapitalizeOn_(char[] string, StringBuilder sb) {
-		sb.append(Character.toLowerCase(string[0]));
-		sb.append(string, 1, string.length - 1);
-	}
-
-	/**
-	 * Append the specified string to the specified string builder
-	 * with its first letter converted to lower case.
-	 * (Unless both the first and second letters are upper case,
-	 * in which case the string is returned unchanged.)
-	 */
-	public static void uncapitalizeOn(char[] string, StringBuilder sb) {
-		if (stringNeedNotBeUncapitalized_(string)) {
-			sb.append(string);
-		} else {
-			uncapitalizeOn_(string, sb);
-		}
-	}
-
-	/**
-	 * Append the specified string to the specified string builder
-	 * with its first letter converted to lower case.
-	 * (Unless both the first and second letters are upper case,
-	 * in which case the string is returned unchanged.)
-	 * String#uncapitalizeOn(StringBuffer)
-	 */
-	public static void uncapitalizeOn(String string, StringBuilder sb) {
-		if (stringNeedNotBeUncapitalized_(string)) {
-			sb.append(string);
-		} else {
-			uncapitalizeOn_(string.toCharArray(), sb);
-		}
-	}
-
-	/*
-	 * no zero-length check or upper case check
-	 */
-	private static void uncapitalizeOn_(char[] string, Writer writer) {
-		writeCharOn(Character.toLowerCase(string[0]), writer);
-		writeStringOn(string, 1, string.length - 1, writer);
-	}
-
-	/**
-	 * Append the specified string to the specified string buffer
-	 * with its first letter converted to lower case.
-	 * (Unless both the first and second letters are upper case,
-	 * in which case the string is returned unchanged.)
-	 */
-	public static void uncapitalizeOn(char[] string, Writer writer) {
-		if (stringNeedNotBeUncapitalized_(string)) {
-			writeStringOn(string, writer);
-		} else {
-			uncapitalizeOn_(string, writer);
-		}
-	}
-
-	/**
-	 * Append the specified string to the specified string buffer
-	 * with its first letter converted to lower case.
-	 * (Unless both the first and second letters are upper case,
-	 * in which case the string is returned unchanged.)
-	 * String#uncapitalizeOn(Writer)
-	 */
-	public static void uncapitalizeOn(String string, Writer writer) {
-		if (stringNeedNotBeUncapitalized_(string)) {
-			writeStringOn(string, writer);
-		} else {
-			uncapitalizeOn_(string.toCharArray(), writer);
-		}
-	}
-
-
-	// ********** #toString() helper methods **********
-
-	/**
-	 * Build a "standard" #toString() result for the specified object
-	 * and additional information:
-	 * 	ClassName[00F3EE42] (add'l info)
-	 */
-	public static String buildToStringFor(Object o, Object additionalInfo) {
-		StringBuilder sb = new StringBuilder();
-		buildSimpleToStringOn(o, sb);
-		sb.append(" (");  //$NON-NLS-1$
-		sb.append(additionalInfo);
-		sb.append(')');
-		return sb.toString();
-	}
-
-	/**
-	 * Build a "standard" simple #toString() result for the specified object:
-	 * 	ClassName[00F3EE42]
-	 */
-	public static String buildToStringFor(Object o) {
-		StringBuilder sb = new StringBuilder();
-		buildSimpleToStringOn(o, sb);
-		return sb.toString();
-	}
-
-	/**
-	 * Append a "standard" simple #toString() for the specified object to
-	 * the specified string buffer:
-	 * 	ClassName[00F3EE42]
-	 */
-	public static void buildSimpleToStringOn(Object o, StringBuffer sb) {
-		sb.append(ClassTools.toStringClassNameForObject(o));
-		sb.append('[');
-		// use System#identityHashCode(Object), since Object#hashCode() may be overridden
-		sb.append(zeroPad(Integer.toHexString(System.identityHashCode(o)).toUpperCase(), 8));
-		sb.append(']');
-	}
-
-	/**
-	 * Append a "standard" simple #toString() for the specified object to
-	 * the specified string builder:
-	 * 	ClassName[00F3EE42]
-	 */
-	public static void buildSimpleToStringOn(Object o, StringBuilder sb) {
-		sb.append(ClassTools.toStringClassNameForObject(o));
-		sb.append('[');
-		// use System#identityHashCode(Object), since Object#hashCode() may be overridden
-		sb.append(zeroPad(Integer.toHexString(System.identityHashCode(o)).toUpperCase(), 8));
-		sb.append(']');
-	}
-
-
-	// ********** queries **********
-
-	/**
-	 * Return whether the specified string is null, empty, or contains
-	 * only whitespace characters.
-	 */
-	public static boolean stringIsEmpty(String string) {
-		if (string == null) {
-			return true;
-		}
-		int len = string.length();
-		if (len == 0) {
-			return true;
-		}
-		return stringIsEmpty_(string.toCharArray(), len);
-	}
-
-	/**
-	 * Return whether the specified string is null, empty, or contains
-	 * only whitespace characters.
-	 */
-	public static boolean stringIsEmpty(char[] string) {
-		if (string == null) {
-			return true;
-		}
-		int len = string.length;
-		if (len == 0) {
-			return true;
-		}
-		return stringIsEmpty_(string, len);
-	}
-
-	private static boolean stringIsEmpty_(char[] s, int len) {
-		for (int i = len; i-- > 0; ) {
-			if ( ! Character.isWhitespace(s[i])) {
-				return false;
-			}
-		}
-		return true;
-	}
-
-	/**
-	 * Return whether the specified string is non-null, non-empty, and does
-	 * not contain only whitespace characters.
-	 */
-	public static boolean stringIsNotEmpty(String string) {
-		return ! stringIsEmpty(string);
-	}
-
-	/**
-	 * Return whether the specified string is non-null, non-empty, and does
-	 * not contain only whitespace characters.
-	 */
-	public static boolean stringIsNotEmpty(char[] string) {
-		return ! stringIsEmpty(string);
-	}
-	
-	/**
-	 * Return whether the specified strings are equal.
-	 * Check for nulls.
-	 */
-	public static boolean stringsAreEqual(String s1, String s2) {
-		if ((s1 == null) && (s2 == null)) {
-			return true;  // both are null
-		}
-		if ((s1 == null) || (s2 == null)) {
-			return false;  // one is null but the other is not
-		}
-		return s1.equals(s2);
-	}
-	
-	/**
-	 * Return whether the specified strings are equal.
-	 * Check for nulls.
-	 */
-	public static boolean stringsAreEqual(char[] s1, char[] s2) {
-		if ((s1 == null) && (s2 == null)) {
-			return true;  // both are null
-		}
-		if ((s1 == null) || (s2 == null)) {
-			return false;  // one is null but the other is not
-		}
-		int len = s1.length;
-		if (len != s2.length) {
-			return false;
-		}
-		for (int i = len; i-- > 0; ) {
-			if (s1[i] != s2[i]) {
-				return false;
-			}
-		}
-		return true;
-	}
-	
-	/**
-	 * Return whether the specified strings are equal, ignoring case.
-	 * Check for nulls.
-	 */
-	public static boolean stringsAreEqualIgnoreCase(String s1, String s2) {
-		if ((s1 == null) && (s2 == null)) {
-			return true;  // both are null
-		}
-		if ((s1 == null) || (s2 == null)) {
-			return false;  // one is null but the other is not
-		}
-		return s1.equalsIgnoreCase(s2);
-	}
-	
-	/**
-	 * Return whether the specified strings are equal, ignoring case.
-	 * Check for nulls.
-	 */
-	public static boolean stringsAreEqualIgnoreCase(char[] s1, char[] s2) {
-		if ((s1 == null) && (s2 == null)) {
-			return true;  // both are null
-		}
-		if ((s1 == null) || (s2 == null)) {
-			return false;  // one is null but the other is not
-		}
-		int len = s1.length;
-		if (len != s2.length) {
-			return false;
-		}
-		for (int i = len; i-- > 0; ) {
-			if ( ! charactersAreEqualIgnoreCase(s1[i], s2[i])) {
-				return false;
-			}
-		}
-		return true;
-	}
-
-	/**
-	 * Return whether the specified string starts with the specified prefix,
-	 * ignoring case.
-	 */
-	public static boolean stringStartsWithIgnoreCase(char[] string, char[] prefix) {
-		int prefixLength = prefix.length;
-		if (string.length < prefixLength) {
-			return false;
-		}
-		for (int i = prefixLength; i-- > 0; ) {
-			if ( ! charactersAreEqualIgnoreCase(string[i], prefix[i])) {
-				return false;
-			}
-		}
-		return true;
-	}
-	
-	/**
-	 * Return whether the specified string starts with the specified prefix,
-	 * ignoring case.
-	 */
-	public static boolean stringStartsWithIgnoreCase(String string, String prefix) {
-		return string.regionMatches(true, 0, prefix, 0, prefix.length());
-	}
-
-	/**
-	 * Return whether the specified characters are are equal, ignoring case.
-	 * @see java.lang.String#regionMatches(boolean, int, String, int, int)
-	 */
-	public static boolean charactersAreEqualIgnoreCase(char c1, char c2) {
-		//  something about the Georgian alphabet requires us to check lower case also
-		return (c1 == c2)
-				|| (Character.toUpperCase(c1) == Character.toUpperCase(c2))
-				|| (Character.toLowerCase(c1) == Character.toLowerCase(c2));
-	}
-
-	/**
-	 * Return whether the specified string is uppercase.
-	 */
-	public static boolean stringIsUppercase(String string) {
-		return (string.length() == 0) ? false : stringIsUppercase_(string);
-	}
-
-	/**
-	 * Return whether the specified string is uppercase.
-	 */
-	public static boolean stringIsUppercase(char[] string) {
-		return (string.length == 0) ? false : stringIsUppercase_(new String(string));
-	}
-
-	private static boolean stringIsUppercase_(String string) {
-		return string.equals(string.toUpperCase());
-	}
-
-	/**
-	 * Return whether the specified string is lowercase.
-	 */
-	public static boolean stringIsLowercase(String string) {
-		return (string.length() == 0) ? false : stringIsLowercase_(string);
-	}
-
-	/**
-	 * Return whether the specified string is lowercase.
-	 */
-	public static boolean stringIsLowercase(char[] string) {
-		return (string.length == 0) ? false : stringIsLowercase_(new String(string));
-	}
-
-	private static boolean stringIsLowercase_(String string) {
-		return string.equals(string.toLowerCase());
-	}
-
-
-	// ********** convert camel case to all caps **********
-
-	/**
-	 * Convert the specified "camel case" string to an "all caps" string:
-	 * "largeProject" -> "LARGE_PROJECT"
-	 */
-	public static String convertCamelCaseToAllCaps(String camelCaseString) {
-		int len = camelCaseString.length();
-		if (len == 0) {
-			return camelCaseString;
-		}
-		return new String(convertCamelCaseToAllCaps_(camelCaseString.toCharArray(), len));
-	}
-
-	/**
-	 * Convert the specified "camel case" string to an "all caps" string:
-	 * "largeProject" -> "LARGE_PROJECT"
-	 */
-	public static char[] convertCamelCaseToAllCaps(char[] camelCaseString) {
-		int len = camelCaseString.length;
-		if (len == 0) {
-			return camelCaseString;
-		}
-		return convertCamelCaseToAllCaps_(camelCaseString, len);
-	}
-
-	private static char[] convertCamelCaseToAllCaps_(char[] camelCaseString, int len) {
-		StringBuilder sb = new StringBuilder(len * 2);
-		convertCamelCaseToAllCapsOn_(camelCaseString, len, sb);
-		return convertToCharArray(sb);
-	}
-
-	/**
-	 * Convert the specified "camel case" string to an "all caps" string:
-	 * "largeProject" -> "LARGE_PROJECT"
-	 */
-	public static void convertCamelCaseToAllCapsOn(String camelCaseString, StringBuffer sb) {
-		int len = camelCaseString.length();
-		if (len != 0) {
-			convertCamelCaseToAllCapsOn_(camelCaseString.toCharArray(), len, sb);
-		}
-	}
-
-	/**
-	 * Convert the specified "camel case" string to an "all caps" string:
-	 * "largeProject" -> "LARGE_PROJECT"
-	 */
-	public static void convertCamelCaseToAllCapsOn(char[] camelCaseString, StringBuffer sb) {
-		int len = camelCaseString.length;
-		if (len != 0) {
-			convertCamelCaseToAllCapsOn_(camelCaseString, len, sb);
-		}
-	}
-
-	private static void convertCamelCaseToAllCapsOn_(char[] camelCaseString, int len, StringBuffer sb) {
-		char prev = 0;	// assume 0 is not a valid char
-		char c = 0;
-		char next = camelCaseString[0];
-		for (int i = 1; i <= len; i++) {	// NB: start at 1 and end at len!
-			c = next;
-			next = ((i == len) ? 0 : camelCaseString[i]);
-			if (camelCaseWordBreak_(prev, c, next)) {
-				sb.append('_');
-			}
-			sb.append(Character.toUpperCase(c));
-			prev = c;
-		}
-	}
-
-	/**
-	 * Convert the specified "camel case" string to an "all caps" string:
-	 * "largeProject" -> "LARGE_PROJECT"
-	 */
-	public static void convertCamelCaseToAllCapsOn(String camelCaseString, StringBuilder sb) {
-		int len = camelCaseString.length();
-		if (len != 0) {
-			convertCamelCaseToAllCapsOn_(camelCaseString.toCharArray(), len, sb);
-		}
-	}
-
-	/**
-	 * Convert the specified "camel case" string to an "all caps" string:
-	 * "largeProject" -> "LARGE_PROJECT"
-	 */
-	public static void convertCamelCaseToAllCapsOn(char[] camelCaseString, StringBuilder sb) {
-		int len = camelCaseString.length;
-		if (len != 0) {
-			convertCamelCaseToAllCapsOn_(camelCaseString, len, sb);
-		}
-	}
-
-	private static void convertCamelCaseToAllCapsOn_(char[] camelCaseString, int len, StringBuilder sb) {
-		char prev = 0;	// assume 0 is not a valid char
-		char c = 0;
-		char next = camelCaseString[0];
-		for (int i = 1; i <= len; i++) {	// NB: start at 1 and end at len!
-			c = next;
-			next = ((i == len) ? 0 : camelCaseString[i]);
-			if (camelCaseWordBreak_(prev, c, next)) {
-				sb.append('_');
-			}
-			sb.append(Character.toUpperCase(c));
-			prev = c;
-		}
-	}
-
-	/**
-	 * Convert the specified "camel case" string to an "all caps" string:
-	 * "largeProject" -> "LARGE_PROJECT"
-	 */
-	public static void convertCamelCaseToAllCapsOn(String camelCaseString, Writer writer) {
-		int len = camelCaseString.length();
-		if (len != 0) {
-			convertCamelCaseToAllCapsOn_(camelCaseString.toCharArray(), len, writer);
-		}
-	}
-
-	/**
-	 * Convert the specified "camel case" string to an "all caps" string:
-	 * "largeProject" -> "LARGE_PROJECT"
-	 */
-	public static void convertCamelCaseToAllCapsOn(char[] camelCaseString, Writer writer) {
-		int len = camelCaseString.length;
-		if (len != 0) {
-			convertCamelCaseToAllCapsOn_(camelCaseString, len, writer);
-		}
-	}
-
-	private static void convertCamelCaseToAllCapsOn_(char[] camelCaseString, int len, Writer writer) {
-		char prev = 0;	// assume 0 is not a valid char
-		char c = 0;
-		char next = camelCaseString[0];
-		for (int i = 1; i <= len; i++) {	// NB: start at 1 and end at len!
-			c = next;
-			next = ((i == len) ? 0 : camelCaseString[i]);
-			if (camelCaseWordBreak_(prev, c, next)) {
-				writeCharOn('_', writer);
-			}
-			writeCharOn(Character.toUpperCase(c), writer);
-			prev = c;
-		}
-	}
-
-	/**
-	 * Convert the specified "camel case" string to an "all caps" string:
-	 * "largeProject" -> "LARGE_PROJECT"
-	 * Limit the resulting string to the specified maximum length.
-	 */
-	public static String convertCamelCaseToAllCaps(String camelCaseString, int maxLength) {
-		int len = camelCaseString.length();
-		if ((len == 0) || (maxLength == 0)) {
-			return camelCaseString;
-		}
-		return new String(convertCamelCaseToAllCaps_(camelCaseString.toCharArray(), maxLength, len));
-	}
-
-	/**
-	 * Convert the specified "camel case" string to an "all caps" string:
-	 * "largeProject" -> "LARGE_PROJECT"
-	 * Limit the resulting string to the specified maximum length.
-	 */
-	public static char[] convertCamelCaseToAllCaps(char[] camelCaseString, int maxLength) {
-		int len = camelCaseString.length;
-		if ((len == 0) || (maxLength == 0)) {
-			return camelCaseString;
-		}
-		return convertCamelCaseToAllCaps_(camelCaseString, maxLength, len);
-	}
-
-	private static char[] convertCamelCaseToAllCaps_(char[] camelCaseString, int maxLength, int len) {
-		StringBuilder sb = new StringBuilder(maxLength);
-		convertCamelCaseToAllCapsOn_(camelCaseString, maxLength, len, sb);
-		return convertToCharArray(sb);
-	}
-
-	/**
-	 * Convert the specified "camel case" string to an "all caps" string:
-	 * "largeProject" -> "LARGE_PROJECT"
-	 * Limit the resulting string to the specified maximum length.
-	 */
-	public static void convertCamelCaseToAllCapsOn(String camelCaseString, int maxLength, StringBuffer sb) {
-		int len = camelCaseString.length();
-		if ((len != 0) && (maxLength != 0)) {
-			convertCamelCaseToAllCapsOn_(camelCaseString.toCharArray(), maxLength, len, sb);
-		}
-	}
-
-	/**
-	 * Convert the specified "camel case" string to an "all caps" string:
-	 * "largeProject" -> "LARGE_PROJECT"
-	 * Limit the resulting string to the specified maximum length.
-	 */
-	public static void convertCamelCaseToAllCapsOn(char[] camelCaseString, int maxLength, StringBuffer sb) {
-		int len = camelCaseString.length;
-		if ((len != 0) && (maxLength != 0)) {
-			convertCamelCaseToAllCapsOn_(camelCaseString, maxLength, len, sb);
-		}
-	}
-
-	private static void convertCamelCaseToAllCapsOn_(char[] camelCaseString, int maxLength, int len, StringBuffer sb) {
-		char prev = 0;	// assume 0 is not a valid char
-		char c = 0;
-		char next = camelCaseString[0];
-		for (int i = 1; i <= len; i++) {	// NB: start at 1 and end at len!
-			c = next;
-			next = ((i == len) ? 0 : camelCaseString[i]);
-			if (camelCaseWordBreak_(prev, c, next)) {
-				sb.append('_');
-				if (sb.length() == maxLength) {
-					return;
-				}
-			}
-			sb.append(Character.toUpperCase(c));
-			if (sb.length() == maxLength) {
-				return;
-			}
-			prev = c;
-		}
-	}
-
-	/**
-	 * Convert the specified "camel case" string to an "all caps" string:
-	 * "largeProject" -> "LARGE_PROJECT"
-	 * Limit the resulting string to the specified maximum length.
-	 */
-	public static void convertCamelCaseToAllCapsOn(String camelCaseString, int maxLength, StringBuilder sb) {
-		int len = camelCaseString.length();
-		if ((len != 0) && (maxLength != 0)) {
-			convertCamelCaseToAllCapsOn_(camelCaseString.toCharArray(), maxLength, len, sb);
-		}
-	}
-
-	/**
-	 * Convert the specified "camel case" string to an "all caps" string:
-	 * "largeProject" -> "LARGE_PROJECT"
-	 * Limit the resulting string to the specified maximum length.
-	 */
-	public static void convertCamelCaseToAllCapsOn(char[] camelCaseString, int maxLength, StringBuilder sb) {
-		int len = camelCaseString.length;
-		if ((len != 0) && (maxLength != 0)) {
-			convertCamelCaseToAllCapsOn_(camelCaseString, maxLength, len, sb);
-		}
-	}
-
-	private static void convertCamelCaseToAllCapsOn_(char[] camelCaseString, int maxLength, int len, StringBuilder sb) {
-		char prev = 0;	// assume 0 is not a valid char
-		char c = 0;
-		char next = camelCaseString[0];
-		for (int i = 1; i <= len; i++) {	// NB: start at 1 and end at len!
-			c = next;
-			next = ((i == len) ? 0 : camelCaseString[i]);
-			if (camelCaseWordBreak_(prev, c, next)) {
-				sb.append('_');
-				if (sb.length() == maxLength) {
-					return;
-				}
-			}
-			sb.append(Character.toUpperCase(c));
-			if (sb.length() == maxLength) {
-				return;
-			}
-			prev = c;
-		}
-	}
-
-	/**
-	 * Convert the specified "camel case" string to an "all caps" string:
-	 * "largeProject" -> "LARGE_PROJECT"
-	 * Limit the resulting string to the specified maximum length.
-	 */
-	public static void convertCamelCaseToAllCapsOn(String camelCaseString, int maxLength, Writer writer) {
-		int len = camelCaseString.length();
-		if ((len != 0) && (maxLength != 0)) {
-			convertCamelCaseToAllCapsOn_(camelCaseString.toCharArray(), maxLength, len, writer);
-		}
-	}
-
-	/**
-	 * Convert the specified "camel case" string to an "all caps" string:
-	 * "largeProject" -> "LARGE_PROJECT"
-	 * Limit the resulting string to the specified maximum length.
-	 */
-	public static void convertCamelCaseToAllCapsOn(char[] camelCaseString, int maxLength, Writer writer) {
-		int len = camelCaseString.length;
-		if ((len != 0) && (maxLength != 0)) {
-			convertCamelCaseToAllCapsOn_(camelCaseString, maxLength, len, writer);
-		}
-	}
-
-	private static void convertCamelCaseToAllCapsOn_(char[] camelCaseString, int maxLength, int len, Writer writer) {
-		char prev = 0;	// assume 0 is not a valid char
-		char c = 0;
-		char next = camelCaseString[0];
-		int writerLength = 0;
-		for (int i = 1; i <= len; i++) {	// NB: start at 1 and end at len!
-			c = next;
-			next = ((i == len) ? 0 : camelCaseString[i]);
-			if (camelCaseWordBreak_(prev, c, next)) {
-				writeCharOn('_', writer);
-				if (++writerLength == maxLength) {
-					return;
-				}
-			}
-			writeCharOn(Character.toUpperCase(c), writer);
-			if (++writerLength == maxLength) {
-				return;
-			}
-			prev = c;
-		}
-	}
-
-	/*
-	 * Return whether the specified series of characters occur at
-	 * a "camel case" work break:
-	 *     "*aa" -> false
-	 *     "*AA" -> false
-	 *     "*Aa" -> false
-	 *     "AaA" -> false
-	 *     "AAA" -> false
-	 *     "aa*" -> false
-	 *     "AaA" -> false
-	 *     "aAa" -> true
-	 *     "AA*" -> false
-	 *     "AAa" -> true
-	 * where '*' == any char
-	 */
-	private static boolean camelCaseWordBreak_(char prev, char c, char next) {
-		if (prev == 0) {	// start of string
-			return false;
-		}
-		if (Character.isLowerCase(c)) {
-			return false;
-		}
-		if (Character.isLowerCase(prev)) {
-			return true;
-		}
-		if (next == 0) {	// end of string
-			return false;
-		}
-		return Character.isLowerCase(next);
-	}
-
-
-	// ********** convert underscores to camel case **********
-
-	/**
-	 * Convert the specified "underscore" string to a "camel case" string:
-	 * "LARGE_PROJECT" -> "LargeProject"
-	 * Capitalize the first letter.
-	 */
-	public static String convertUnderscoresToCamelCase(String underscoreString) {
-		return convertUnderscoresToCamelCase(underscoreString, true);
-	}
-
-	/**
-	 * Convert the specified "underscore" string to a "camel case" string:
-	 * "LARGE_PROJECT" -> "LargeProject"
-	 * Capitalize the first letter.
-	 */
-	public static char[] convertUnderscoresToCamelCase(char[] underscoreString) {
-		return convertUnderscoresToCamelCase(underscoreString, true);
-	}
-
-	/**
-	 * Convert the specified "underscore" string to a "camel case" string:
-	 * "LARGE_PROJECT" -> "largeProject"
-	 * Optionally capitalize the first letter.
-	 */
-	public static String convertUnderscoresToCamelCase(String underscoreString, boolean capitalizeFirstLetter) {
-		int len = underscoreString.length();
-		if (len == 0) {
-			return underscoreString;
-		}
-		return new String(convertUnderscoresToCamelCase_(underscoreString.toCharArray(), capitalizeFirstLetter, len));
-	}
-
-	/**
-	 * Convert the specified "underscore" string to a "camel case" string:
-	 * "LARGE_PROJECT" -> "largeProject"
-	 * Optionally capitalize the first letter.
-	 */
-	public static char[] convertUnderscoresToCamelCase(char[] underscoreString, boolean capitalizeFirstLetter) {
-		int len = underscoreString.length;
-		if (len == 0) {
-			return underscoreString;
-		}
-		return convertUnderscoresToCamelCase_(underscoreString, capitalizeFirstLetter, len);
-	}
-
-	private static char[] convertUnderscoresToCamelCase_(char[] underscoreString, boolean capitalizeFirstLetter, int len) {
-		StringBuilder sb = new StringBuilder(len);
-		convertUnderscoresToCamelCaseOn_(underscoreString, capitalizeFirstLetter, len, sb);
-		return convertToCharArray(sb);
-	}
-
-	/**
-	 * Convert the specified "underscore" string to a "camel case" string:
-	 * "LARGE_PROJECT" -> "largeProject"
-	 * Optionally capitalize the first letter.
-	 */
-	public static void convertUnderscoresToCamelCaseOn(String underscoreString, boolean capitalizeFirstLetter, StringBuffer sb) {
-		int len = underscoreString.length();
-		if (len != 0) {
-			convertUnderscoresToCamelCaseOn_(underscoreString.toCharArray(), capitalizeFirstLetter, len, sb);
-		}
-	}
-
-	/**
-	 * Convert the specified "underscore" string to a "camel case" string:
-	 * "LARGE_PROJECT" -> "largeProject"
-	 * Optionally capitalize the first letter.
-	 */
-	public static void convertUnderscoresToCamelCaseOn(char[] underscoreString, boolean capitalizeFirstLetter, StringBuffer sb) {
-		int len = underscoreString.length;
-		if (len != 0) {
-			convertUnderscoresToCamelCaseOn_(underscoreString, capitalizeFirstLetter, len, sb);
-		}
-	}
-
-	private static void convertUnderscoresToCamelCaseOn_(char[] underscoreString, boolean capitalizeFirstLetter, int len, StringBuffer sb) {
-		char prev = 0;
-		char c = 0;
-		boolean first = true;
-		for (int i = 0; i < len; i++) {
-			prev = c;
-			c = underscoreString[i];
-			if (c == '_') {
-				continue;
-			}
-			if (first) {
-				first = false;
-				sb.append(capitalizeFirstLetter ? Character.toUpperCase(c) : Character.toLowerCase(c));
-			} else {
-				sb.append((prev == '_') ? Character.toUpperCase(c) : Character.toLowerCase(c));
-			}
-		}
-	}
-
-	/**
-	 * Convert the specified "underscore" string to a "camel case" string:
-	 * "LARGE_PROJECT" -> "largeProject"
-	 * Optionally capitalize the first letter.
-	 */
-	public static void convertUnderscoresToCamelCaseOn(String underscoreString, boolean capitalizeFirstLetter, StringBuilder sb) {
-		int len = underscoreString.length();
-		if (len != 0) {
-			convertUnderscoresToCamelCaseOn_(underscoreString.toCharArray(), capitalizeFirstLetter, len, sb);
-		}
-	}
-
-	/**
-	 * Convert the specified "underscore" string to a "camel case" string:
-	 * "LARGE_PROJECT" -> "largeProject"
-	 * Optionally capitalize the first letter.
-	 */
-	public static void convertUnderscoresToCamelCaseOn(char[] underscoreString, boolean capitalizeFirstLetter, StringBuilder sb) {
-		int len = underscoreString.length;
-		if (len != 0) {
-			convertUnderscoresToCamelCaseOn_(underscoreString, capitalizeFirstLetter, len, sb);
-		}
-	}
-
-	private static void convertUnderscoresToCamelCaseOn_(char[] underscoreString, boolean capitalizeFirstLetter, int len, StringBuilder sb) {
-		char prev = 0;
-		char c = 0;
-		boolean first = true;
-		for (int i = 0; i < len; i++) {
-			prev = c;
-			c = underscoreString[i];
-			if (c == '_') {
-				continue;
-			}
-			if (first) {
-				first = false;
-				sb.append(capitalizeFirstLetter ? Character.toUpperCase(c) : Character.toLowerCase(c));
-			} else {
-				sb.append((prev == '_') ? Character.toUpperCase(c) : Character.toLowerCase(c));
-			}
-		}
-	}
-
-	/**
-	 * Convert the specified "underscore" string to a "camel case" string:
-	 * "LARGE_PROJECT" -> "largeProject"
-	 * Optionally capitalize the first letter.
-	 */
-	public static void convertUnderscoresToCamelCaseOn(String underscoreString, boolean capitalizeFirstLetter, Writer writer) {
-		int len = underscoreString.length();
-		if (len != 0) {
-			convertUnderscoresToCamelCaseOn_(underscoreString.toCharArray(), capitalizeFirstLetter, len, writer);
-		}
-	}
-
-	/**
-	 * Convert the specified "underscore" string to a "camel case" string:
-	 * "LARGE_PROJECT" -> "largeProject"
-	 * Optionally capitalize the first letter.
-	 */
-	public static void convertUnderscoresToCamelCaseOn(char[] underscoreString, boolean capitalizeFirstLetter, Writer writer) {
-		int len = underscoreString.length;
-		if (len != 0) {
-			convertUnderscoresToCamelCaseOn_(underscoreString, capitalizeFirstLetter, len, writer);
-		}
-	}
-
-	private static void convertUnderscoresToCamelCaseOn_(char[] underscoreString, boolean capitalizeFirstLetter, int len, Writer writer) {
-		char prev = 0;
-		char c = 0;
-		boolean first = true;
-		for (int i = 0; i < len; i++) {
-			prev = c;
-			c = underscoreString[i];
-			if (c == '_') {
-				continue;
-			}
-			if (first) {
-				first = false;
-				writeCharOn(capitalizeFirstLetter ? Character.toUpperCase(c) : Character.toLowerCase(c), writer);
-			} else {
-				writeCharOn((prev == '_') ? Character.toUpperCase(c) : Character.toLowerCase(c), writer);
-			}
-		}
-	}
-
-
-	// ********** convert to Java string literal **********
-
-	public static final String EMPTY_JAVA_STRING_LITERAL = "\"\"";  //$NON-NLS-1$
-	public static final char[] EMPTY_JAVA_STRING_LITERAL_CHAR_ARRAY = EMPTY_JAVA_STRING_LITERAL.toCharArray();
-
-	public static String convertToJavaStringLiteral(String string) {
-		int len = string.length();
-		if (len == 0) {
-			return EMPTY_JAVA_STRING_LITERAL;
-		}
-		StringBuilder sb = new StringBuilder(len + 5);
-		convertToJavaStringLiteralOn_(string.toCharArray(), sb, len);
-		return sb.toString();
-	}
-
-	public static char[] convertToJavaStringLiteral(char[] string) {
-		int len = string.length;
-		if (len == 0) {
-			return EMPTY_JAVA_STRING_LITERAL_CHAR_ARRAY;
-		}
-		StringBuilder sb = new StringBuilder(len + 5);
-		convertToJavaStringLiteralOn_(string, sb, len);
-		len = sb.length();
-		char[] result = new char[len];
-		sb.getChars(0, len, result, 0);
-		return result;
-	}
-
-	public static Iterator<String> convertToJavaStringLiterals(Iterator<String> strings) {
-		return new TransformationIterator<String, String>(strings) {
-			@Override
-			protected String transform(String string) {
-				return StringTools.convertToJavaStringLiteral(string);
-			}
-		};
-	}
-
-	// cannot name method simply 'convertToJavaStringLiterals' because of type-erasure...
-	public static Iterator<char[]> convertToJavaCharArrayLiterals(Iterator<char[]> strings) {
-		return new TransformationIterator<char[], char[]>(strings) {
-			@Override
-			protected char[] transform(char[] string) {
-				return StringTools.convertToJavaStringLiteral(string);
-			}
-		};
-	}
-
-	public static void convertToJavaStringLiteralOn(String string, StringBuffer sb) {
-		int len = string.length();
-		if (len == 0) {
-			sb.append(EMPTY_JAVA_STRING_LITERAL);
-		} else {
-			convertToJavaStringLiteralOn_(string.toCharArray(), sb, len);
-		}
-	}
-
-	public static void convertToJavaStringLiteralOn(char[] string, StringBuffer sb) {
-		int len = string.length;
-		if (len == 0) {
-			sb.append(EMPTY_JAVA_STRING_LITERAL);
-		} else {
-			convertToJavaStringLiteralOn_(string, sb, len);
-		}
-	}
-
-	/*
-	 * no length checks
-	 */
-	private static void convertToJavaStringLiteralOn_(char[] string, StringBuffer sb, int len) {
-		sb.ensureCapacity(sb.length() + len + 5);
-		sb.append(QUOTE);
-		for (char c : string) {
-			switch (c) {
-				case '\b':  // backspace
-					sb.append("\\b");  //$NON-NLS-1$
-					break;
-				case '\t':  // horizontal tab
-					sb.append("\\t");  //$NON-NLS-1$
-					break;
-				case '\n':  // line-feed LF
-					sb.append("\\n");  //$NON-NLS-1$
-					break;
-				case '\f':  // form-feed FF
-					sb.append("\\f");  //$NON-NLS-1$
-					break;
-				case '\r':  // carriage-return CR
-					sb.append("\\r");  //$NON-NLS-1$
-					break;
-				case '"':  // double-quote
-					sb.append("\\\"");  //$NON-NLS-1$
-					break;
-//				case '\'':  // single-quote
-//					sb.append("\\'");  //$NON-NLS-1$
-//					break;
-				case '\\':  // backslash
-					sb.append("\\\\");  //$NON-NLS-1$
-					break;
-				default:
-					sb.append(c);
-					break;
-			}
-		}
-		sb.append(QUOTE);
-	}
-
-	public static void convertToJavaStringLiteralOn(String string, StringBuilder sb) {
-		int len = string.length();
-		if (len == 0) {
-			sb.append(EMPTY_JAVA_STRING_LITERAL);
-		} else {
-			convertToJavaStringLiteralOn_(string.toCharArray(), sb, len);
-		}
-	}
-
-	public static void convertToJavaStringLiteralOn(char[] string, StringBuilder sb) {
-		int len = string.length;
-		if (len == 0) {
-			sb.append(EMPTY_JAVA_STRING_LITERAL);
-		} else {
-			convertToJavaStringLiteralOn_(string, sb, len);
-		}
-	}
-
-	/*
-	 * no length checks
-	 */
-	private static void convertToJavaStringLiteralOn_(char[] string, StringBuilder sb, int len) {
-		sb.ensureCapacity(sb.length() + len + 5);
-		sb.append(QUOTE);
-		for (char c : string) {
-			switch (c) {
-				case '\b':  // backspace
-					sb.append("\\b");  //$NON-NLS-1$
-					break;
-				case '\t':  // horizontal tab
-					sb.append("\\t");  //$NON-NLS-1$
-					break;
-				case '\n':  // line-feed LF
-					sb.append("\\n");  //$NON-NLS-1$
-					break;
-				case '\f':  // form-feed FF
-					sb.append("\\f");  //$NON-NLS-1$
-					break;
-				case '\r':  // carriage-return CR
-					sb.append("\\r");  //$NON-NLS-1$
-					break;
-				case '"':  // double-quote
-					sb.append("\\\"");  //$NON-NLS-1$
-					break;
-//				case '\'':  // single-quote
-//					sb.append("\\'");  //$NON-NLS-1$
-//					break;
-				case '\\':  // backslash
-					sb.append("\\\\");  //$NON-NLS-1$
-					break;
-				default:
-					sb.append(c);
-					break;
-			}
-		}
-		sb.append(QUOTE);
-	}
-
-	public static void convertToJavaStringLiteralOn(String string, Writer writer) {
-		if (string.length() == 0) {
-			writeStringOn(EMPTY_JAVA_STRING_LITERAL, writer);
-		} else {
-			convertToJavaStringLiteralOn_(string.toCharArray(), writer);
-		}
-	}
-
-	public static void convertToJavaStringLiteralOn(char[] string, Writer writer) {
-		if (string.length == 0) {
-			writeStringOn(EMPTY_JAVA_STRING_LITERAL, writer);
-		} else {
-			convertToJavaStringLiteralOn_(string, writer);
-		}
-	}
-
-	/*
-	 * no length checks
-	 */
-	private static void convertToJavaStringLiteralOn_(char[] string, Writer writer) {
-		writeCharOn(QUOTE, writer);
-		for (char c : string) {
-			switch (c) {
-				case '\b':  // backspace
-					writeStringOn("\\b", writer);  //$NON-NLS-1$
-					break;
-				case '\t':  // horizontal tab
-					writeStringOn("\\t", writer);  //$NON-NLS-1$
-					break;
-				case '\n':  // line-feed LF
-					writeStringOn("\\n", writer);  //$NON-NLS-1$
-					break;
-				case '\f':  // form-feed FF
-					writeStringOn("\\f", writer);  //$NON-NLS-1$
-					break;
-				case '\r':  // carriage-return CR
-					writeStringOn("\\r", writer);  //$NON-NLS-1$
-					break;
-				case '"':  // double-quote
-					writeStringOn("\\\"", writer);  //$NON-NLS-1$
-					break;
-//				case '\'':  // single-quote
-//					writeStringOn("\\'", writer);  //$NON-NLS-1$
-//					break;
-				case '\\':  // backslash
-					writeStringOn("\\\\", writer);  //$NON-NLS-1$
-					break;
-				default:
-					writeCharOn(c, writer);
-					break;
-			}
-		}
-		writeCharOn(QUOTE, writer);
-	}
-
-
-	// ********** convenience **********
-
-	public static char[] convertToCharArray(StringBuffer sb) {
-		int len = sb.length();
-		char[] result = new char[len];
-		sb.getChars(0, len, result, 0);
-		return result;
-	}
-
-	public static char[] convertToCharArray(StringBuilder sb) {
-		int len = sb.length();
-		char[] result = new char[len];
-		sb.getChars(0, len, result, 0);
-		return result;
-	}
-
-	private static void writeStringOn(char[] string, Writer writer) {
-		try {
-			writer.write(string);
-		} catch (IOException ex) {
-			throw new RuntimeException(ex);
-		}
-	}
-
-	private static void writeStringOn(char[] string, char escape, Writer writer) {
-		try {
-			for (char c : string) {
-				if (c == escape) {
-					writer.write(c);
-				}
-				writer.write(c);
-			}
-		} catch (IOException ex) {
-			throw new RuntimeException(ex);
-		}
-	}
-
-	private static void writeStringOn(char[] string, int off, int len, Writer writer) {
-		try {
-			writer.write(string, off, len);
-		} catch (IOException ex) {
-			throw new RuntimeException(ex);
-		}
-	}
-
-	private static void writeStringOn(String string, int off, int len, Writer writer) {
-		try {
-			writer.write(string, off, len);
-		} catch (IOException ex) {
-			throw new RuntimeException(ex);
-		}
-	}
-
-	private static void writeStringOn(String string, Writer writer) {
-		try {
-			writer.write(string);
-		} catch (IOException ex) {
-			throw new RuntimeException(ex);
-		}
-	}
-
-	private static void writeCharOn(char c, Writer writer) {
-		try {
-			writer.write(c);
-		} catch (IOException ex) {
-			throw new RuntimeException(ex);
-		}
-	}
-
-
-	// ********** constructor **********
-
-	/*
-	 * Suppress default constructor, ensuring non-instantiability.
-	 */
-	private StringTools() {
-		super();
-		throw new UnsupportedOperationException();
-	}
-
-}
diff --git a/jpa/plugins/org.eclipse.jpt.utility/src/org/eclipse/jpt/utility/internal/SynchronizedBoolean.java b/jpa/plugins/org.eclipse.jpt.utility/src/org/eclipse/jpt/utility/internal/SynchronizedBoolean.java
deleted file mode 100644
index 001aa64..0000000
--- a/jpa/plugins/org.eclipse.jpt.utility/src/org/eclipse/jpt/utility/internal/SynchronizedBoolean.java
+++ /dev/null
@@ -1,374 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2008 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.utility.internal;
-
-import java.io.Serializable;
-import org.eclipse.jpt.utility.Command;
-
-/**
- * This class provides synchronized access to a boolean value.
- * It also provides protocol for suspending a thread until the
- * boolean value is set to true or false, with optional time-outs.
- * @see BooleanHolder
- */
-public class SynchronizedBoolean
-	implements Cloneable, Serializable
-{
-	/** Backing boolean. */
-	private boolean value;
-
-	/** Object to synchronize on. */
-	private final Object mutex;
-
-	private static final long serialVersionUID = 1L;
-
-
-	// ********** constructors **********
-
-	/**
-	 * Create a synchronized boolean with the specified initial value
-	 * and mutex.
-	 */
-	public SynchronizedBoolean(boolean value, Object mutex) {
-		super();
-		this.value = value;
-		this.mutex = mutex;
-	}
-
-	/**
-	 * Create a synchronized boolean with the specified initial value.
-	 */
-	public SynchronizedBoolean(boolean value) {
-		super();
-		this.value = value;
-		this.mutex = this;
-	}
-
-	/**
-	 * Create a synchronized boolean with an initial value of false
-	 * and specified mutex.
-	 */
-	public SynchronizedBoolean(Object mutex) {
-		this(false, mutex);
-	}
-
-	/**
-	 * Create a synchronized boolean with an initial value of false.
-	 */
-	public SynchronizedBoolean() {
-		this(false);
-	}
-
-
-	// ********** accessors **********
-
-	/**
-	 * Return the current boolean value.
-	 */
-	public boolean value() {
-		synchronized (this.mutex) {
-			return this.value;
-		}
-	}
-
-	/**
-	 * Return whether the current boolean value is true.
-	 */
-	public boolean isTrue() {
-		synchronized (this.mutex) {
-			return this.value;
-		}
-	}
-
-	/**
-	 * Return whether the current boolean value is false.
-	 */
-	public boolean isFalse() {
-		synchronized (this.mutex) {
-			return ! this.value;
-		}
-	}
-
-	/**
-	 * Return whether the current boolean value is the specified value.
-	 */
-	public boolean is(boolean v) {
-		synchronized (this.mutex) {
-			return this.value == v;
-		}
-	}
-
-	/**
-	 * Set the boolean value. If the value changes, all waiting
-	 * threads are notified.
-	 */
-	public void setValue(boolean value) {
-		synchronized (this.mutex) {
-			if (this.value != value) {
-				this.value = value;
-				this.mutex.notifyAll();
-			}
-		}
-	}
-
-	/**
-	 * Set the boolean value to true. If the value changes, all waiting
-	 * threads are notified.
-	 */
-	public void setTrue() {
-		synchronized (this.mutex) {
-			this.setValue(true);
-		}
-	}
-
-	/**
-	 * Set the boolean value to false. If the value changes, all waiting
-	 * threads are notified.
-	 */
-	public void setFalse() {
-		synchronized (this.mutex) {
-			this.setValue(false);
-		}
-	}
-
-	/**
-	 * Return the object this object locks on while performing
-	 * its operations.
-	 */
-	public Object mutex() {
-		return this.mutex;
-	}
-
-
-	// ********** indefinite waits **********
-
-	/**
-	 * Suspend the current thread until the boolean value changes
-	 * to the specified value. If the boolean value is already the
-	 * specified value, return immediately.
-	 */
-	public void waitUntilValueIs(boolean v) throws InterruptedException {
-		synchronized (this.mutex) {
-			while (this.value != v) {
-				this.mutex.wait();
-			}
-		}
-	}
-
-	/**
-	 * Suspend the current thread until the boolean value changes to true.
-	 * If the boolean value is already true, return immediately.
-	 */
-	public void waitUntilTrue() throws InterruptedException {
-		synchronized (this.mutex) {
-			this.waitUntilValueIs(true);
-		}
-	}
-
-	/**
-	 * Suspend the current thread until the boolean value changes to false.
-	 * If the boolean value is already false, return immediately.
-	 */
-	public void waitUntilFalse() throws InterruptedException {
-		synchronized (this.mutex) {
-			this.waitUntilValueIs(false);
-		}
-	}
-
-	/**
-	 * Suspend the current thread until the boolean value changes to
-	 * NOT the specified value, then change it back to the specified
-	 * value and continue executing. If the boolean value is already
-	 * NOT the specified value, set the value to the specified value
-	 * immediately.
-	 */
-	public void waitToSetValue(boolean v) throws InterruptedException {
-		synchronized (this.mutex) {
-			this.waitUntilValueIs( ! v);
-			this.setValue(v);
-		}
-	}
-
-	/**
-	 * Suspend the current thread until the boolean value changes to false,
-	 * then change it back to true and continue executing. If the boolean
-	 * value is already false, set the value to true immediately.
-	 */
-	public void waitToSetTrue() throws InterruptedException {
-		synchronized (this.mutex) {
-			this.waitToSetValue(true);
-		}
-	}
-
-	/**
-	 * Suspend the current thread until the boolean value changes to true,
-	 * then change it back to false and continue executing. If the boolean
-	 * value is already true, set the value to false immediately.
-	 */
-	public void waitToSetFalse() throws InterruptedException {
-		synchronized (this.mutex) {
-			this.waitToSetValue(false);
-		}
-	}
-
-
-	// ********** timed waits **********
-
-	/**
-	 * Suspend the current thread until the boolean value changes
-	 * to the specified value or the specified time-out occurs.
-	 * The time-out is specified in milliseconds. Return true if the specified
-	 * value was achieved; return false if a time-out occurred.
-	 * If the boolean value is already the specified value, return true
-	 * immediately.
-	 */
-	public boolean waitUntilValueIs(boolean v, long timeout) throws InterruptedException {
-		synchronized (this.mutex) {
-			if (timeout == 0L) {
-				this.waitUntilValueIs(v);	// wait indefinitely until notified
-				return true;	// if it ever comes back, the condition was met
-			}
-	
-			long stop = System.currentTimeMillis() + timeout;
-			long remaining = timeout;
-			while ((this.value != v) && (remaining > 0L)) {
-				this.mutex.wait(remaining);
-				remaining = stop - System.currentTimeMillis();
-			}
-			return (this.value == v);
-		}
-	}
-
-	/**
-	 * Suspend the current thread until the boolean value changes
-	 * to true or the specified time-out occurs.
-	 * The time-out is specified in milliseconds. Return true if the specified
-	 * value was achieved; return false if a time-out occurred.
-	 * If the boolean value is already true, return true immediately.
-	 */
-	public boolean waitUntilTrue(long timeout) throws InterruptedException {
-		synchronized (this.mutex) {
-			return this.waitUntilValueIs(true, timeout);
-		}
-	}
-
-	/**
-	 * Suspend the current thread until the boolean value changes
-	 * to false or the specified time-out occurs.
-	 * The time-out is specified in milliseconds. Return true if the specified
-	 * value was achieved; return false if a time-out occurred.
-	 * If the boolean value is already true, return true immediately.
-	 */
-	public boolean waitUntilFalse(long timeout) throws InterruptedException {
-		synchronized (this.mutex) {
-			return this.waitUntilValueIs(false, timeout);
-		}
-	}
-
-	/**
-	 * Suspend the current thread until the boolean value changes to NOT the
-	 * specified value, then change it back to the specified value and continue
-	 * executing. If the boolean value does not change to false before the
-	 * time-out, simply continue executing without changing the value.
-	 * The time-out is specified in milliseconds. Return true if the value was
-	 * set to the specified value; return false if a time-out occurred.
-	 * If the boolean value is already NOT the specified value, set the value
-	 * to the specified value immediately and return true.
-	 */
-	public boolean waitToSetValue(boolean v, long timeout) throws InterruptedException {
-		synchronized (this.mutex) {
-			boolean success = this.waitUntilValueIs( ! v, timeout);
-			if (success) {
-				this.setValue(v);
-			}
-			return success;
-		}
-	}
-
-	/**
-	 * Suspend the current thread until the boolean value changes to false,
-	 * then change it back to true and continue executing. If the boolean
-	 * value does not change to false before the time-out, simply continue
-	 * executing without changing the value. The time-out is specified in
-	 * milliseconds. Return true if the value was set to true; return false
-	 * if a time-out occurred. If the boolean value is already false, set the
-	 * value to true immediately and return true.
-	 */
-	public boolean waitToSetTrue(long timeout) throws InterruptedException {
-		synchronized (this.mutex) {
-			return this.waitToSetValue(true, timeout);
-		}
-	}
-
-	/**
-	 * Suspend the current thread until the boolean value changes to true,
-	 * then change it back to false and continue executing. If the boolean
-	 * value does not change to true before the time-out, simply continue
-	 * executing without changing the value. The time-out is specified in
-	 * milliseconds. Return true if the value was set to false; return false
-	 * if a time-out occurred. If the boolean value is already true, set the
-	 * value to false immediately and return true.
-	 */
-	public boolean waitToSetFalse(long timeout) throws InterruptedException {
-		synchronized (this.mutex) {
-			return this.waitToSetValue(false, timeout);
-		}
-	}
-
-
-	// ********** synchronized behavior **********
-
-	/**
-	 * If the current thread is not interrupted, execute the specified command 
-	 * with the mutex locked. This is useful for initializing the value in another
-	 * thread.
-	 */
-	public void execute(Command command) throws InterruptedException {
-		if (Thread.interrupted()) {
-			throw new InterruptedException();
-		}
-		synchronized (this.mutex) {
-			command.execute();
-		}
-	}
-
-
-	// ********** standard methods **********
-
-	@Override
-	public Object clone() {
-		try {
-			synchronized (this.mutex) {
-				return super.clone();
-			}
-		} catch (CloneNotSupportedException ex) {
-			throw new InternalError();
-		}
-	}
-
-	@Override
-	public boolean equals(Object o) {
-		if (o instanceof SynchronizedBoolean) {
-			return this.value() == ((SynchronizedBoolean) o).value();
-		}
-		return false;
-	}
-
-	@Override
-	public int hashCode() {
-		return this.value() ? 1 : 0;
-	}
-
-	@Override
-	public String toString() {
-		return String.valueOf(this.value());
-	}
-
-}
diff --git a/jpa/plugins/org.eclipse.jpt.utility/src/org/eclipse/jpt/utility/internal/SynchronizedObject.java b/jpa/plugins/org.eclipse.jpt.utility/src/org/eclipse/jpt/utility/internal/SynchronizedObject.java
deleted file mode 100644
index bcf83db..0000000
--- a/jpa/plugins/org.eclipse.jpt.utility/src/org/eclipse/jpt/utility/internal/SynchronizedObject.java
+++ /dev/null
@@ -1,372 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2008 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.utility.internal;
-
-import java.io.Serializable;
-import org.eclipse.jpt.utility.Command;
-
-/**
- * This class provides synchronized access to an object of type T.
- * It also provides protocol for suspending a thread until the
- * value is set to null or a non-null value, with optional time-outs.
- */
-public class SynchronizedObject<T>
-	implements Cloneable, Serializable
-{
-	/** Backing value. */
-	private T value;
-
-	/** Object to synchronize on. */
-	private final Object mutex;
-
-	private static final long serialVersionUID = 1L;
-
-
-	// ********** constructors **********
-
-	/**
-	 * Create a synchronized object with the specified initial value
-	 * and mutex.
-	 */
-	public SynchronizedObject(T value, Object mutex) {
-		super();
-		this.value = value;
-		this.mutex = mutex;
-	}
-
-	/**
-	 * Create a synchronized object with the specified initial value.
-	 */
-	public SynchronizedObject(T value) {
-		super();
-		this.value = value;
-		this.mutex = this;
-	}
-
-	/**
-	 * Create a synchronized object with an initial value of null.
-	 */
-	public SynchronizedObject() {
-		this(null);
-	}
-
-
-	// ********** accessors **********
-
-	/**
-	 * Return the current value.
-	 */
-	public T value() {
-		synchronized (this.mutex) {
-			return this.value;
-		}
-	}
-
-	/**
-	 * Return whether the current value is null.
-	 */
-	public boolean isNull() {
-		synchronized (this.mutex) {
-			return this.value == null;
-		}
-	}
-
-	/**
-	 * Return whether the current value is not null.
-	 */
-	public boolean isNotNull() {
-		synchronized (this.mutex) {
-			return this.value != null;
-		}
-	}
-
-	/**
-	 * Set the value. If the value changes, all waiting
-	 * threads are notified.
-	 */
-	public void setValue(T value) {
-		synchronized (this.mutex) {
-			if (this.value != value) {
-				this.value = value;
-				this.mutex.notifyAll();
-			}
-		}
-	}
-
-	/**
-	 * Set the value to null. If the value changes, all waiting
-	 * threads are notified.
-	 */
-	public void setNull() {
-		synchronized (this.mutex) {
-			this.setValue(null);
-		}
-	}
-
-	/**
-	 * Return the object this object locks on while performing
-	 * its operations.
-	 */
-	public Object mutex() {
-		return this.mutex;
-	}
-
-
-	// ********** indefinite waits **********
-
-	/**
-	 * Suspend the current thread until the value changes
-	 * to the specified value. If the value is already the
-	 * specified value, return immediately.
-	 */
-	public void waitUntilValueIs(T v) throws InterruptedException {
-		synchronized (this.mutex) {
-			while (this.value != v) {
-				this.mutex.wait();
-			}
-		}
-	}
-
-	/**
-	 * Suspend the current thread until the value changes
-	 * to something other than the specified value. If the
-	 * value is already NOT the specified value, return immediately.
-	 */
-	public void waitUntilValueIsNot(T v) throws InterruptedException {
-		synchronized (this.mutex) {
-			while (this.value == v) {
-				this.mutex.wait();
-			}
-		}
-	}
-
-	/**
-	 * Suspend the current thread until the value changes to null.
-	 * If the value is already null, return immediately.
-	 */
-	public void waitUntilNull() throws InterruptedException {
-		synchronized (this.mutex) {
-			this.waitUntilValueIs(null);
-		}
-	}
-
-	/**
-	 * Suspend the current thread until the value changes
-	 * to something other than null.
-	 * If the value is already NOT null, return immediately.
-	 */
-	public void waitUntilNotNull() throws InterruptedException {
-		synchronized (this.mutex) {
-			this.waitUntilValueIsNot(null);
-		}
-	}
-
-	/**
-	 * Suspend the current thread until the value changes to
-	 * something other than the specified value, then change
-	 * it back to the specified value and continue executing.
-	 * If the value is already NOT the specified value, set
-	 * the value immediately.
-	 */
-	public void waitToSetValue(T v) throws InterruptedException {
-		synchronized (this.mutex) {
-			this.waitUntilValueIsNot(v);
-			this.setValue(v);
-		}
-	}
-
-	/**
-	 * Suspend the current thread until the value changes to
-	 * something other than null, then change it back to null
-	 * and continue executing. If the value is already NOT null,
-	 * set the value to null immediately.
-	 */
-	public void waitToSetNull() throws InterruptedException {
-		synchronized (this.mutex) {
-			this.waitUntilNotNull();
-			this.setValue(null);
-		}
-	}
-
-
-	// ********** timed waits **********
-
-	/**
-	 * Suspend the current thread until the value changes
-	 * to the specified value or the specified time-out occurs.
-	 * The time-out is specified in milliseconds. Return true if the specified
-	 * value was achieved; return false if a time-out occurred.
-	 * If the value is already the specified value, return true immediately.
-	 */
-	public boolean waitUntilValueIs(T v, long timeout) throws InterruptedException {
-		synchronized (this.mutex) {
-			if (timeout == 0L) {
-				this.waitUntilValueIs(v);	// wait indefinitely until notified
-				return true;	// if it ever comes back, the condition was met
-			}
-
-			long stop = System.currentTimeMillis() + timeout;
-			long remaining = timeout;
-			while ((this.value != v) && (remaining > 0L)) {
-				this.mutex.wait(remaining);
-				remaining = stop - System.currentTimeMillis();
-			}
-			return (this.value == v);
-		}
-	}
-
-	/**
-	 * Suspend the current thread until the value changes to something
-	 * other than the specified value or the specified time-out occurs.
-	 * The time-out is specified in milliseconds. Return true if the specified
-	 * value was removed; return false if a time-out occurred.
-	 * If the value is already NOT the specified value, return true immediately.
-	 */
-	public boolean waitUntilValueIsNot(T v, long timeout) throws InterruptedException {
-		synchronized (this.mutex) {
-			if (timeout == 0L) {
-				this.waitUntilValueIsNot(v);	// wait indefinitely until notified
-				return true;	// if it ever comes back, the condition was met
-			}
-
-			long stop = System.currentTimeMillis() + timeout;
-			long remaining = timeout;
-			while ((this.value == v) && (remaining > 0L)) {
-				this.mutex.wait(remaining);
-				remaining = stop - System.currentTimeMillis();
-			}
-			return (this.value != v);
-		}
-	}
-
-	/**
-	 * Suspend the current thread until the value changes
-	 * to null or the specified time-out occurs.
-	 * The time-out is specified in milliseconds. Return true if the specified
-	 * value was achieved; return false if a time-out occurred.
-	 * If the value is already null, return true immediately.
-	 */
-	public boolean waitUntilNull(long timeout) throws InterruptedException {
-		synchronized (this.mutex) {
-			return this.waitUntilValueIs(null, timeout);
-		}
-	}
-
-	/**
-	 * Suspend the current thread until the value changes
-	 * to something other than null or the specified time-out occurs.
-	 * The time-out is specified in milliseconds. Return true if the specified
-	 * value was achieved; return false if a time-out occurred.
-	 * If the value is already NOT null, return true immediately.
-	 */
-	public boolean waitUntilNotNull(long timeout) throws InterruptedException {
-		synchronized (this.mutex) {
-			return this.waitUntilValueIsNot(null, timeout);
-		}
-	}
-
-	/**
-	 * Suspend the current thread until the value changes to
-	 * something other than the specified value, then change
-	 * it back to the specified value and continue executing.
-	 * If the value does not change to something other than the
-	 * specified before the time-out, simply continue executing
-	 * without changing the value.
-	 * The time-out is specified in milliseconds. Return true if the value was
-	 * set to true; return false if a time-out occurred.
-	 * If the value is already something other than the specified value, set
-	 * the value immediately and return true.
-	 */
-	public boolean waitToSetValue(T v, long timeout) throws InterruptedException {
-		synchronized (this.mutex) {
-			boolean success = this.waitUntilValueIsNot(v, timeout);
-			if (success) {
-				this.setValue(v);
-			}
-			return success;
-		}
-	}
-
-	/**
-	 * Suspend the current thread until the value changes to something
-	 * other than null, then change it back to null and continue executing.
-	 * If the value does not change to something other than null before
-	 * the time-out, simply continue executing without changing the value.
-	 * The time-out is specified in milliseconds. Return true if the value was
-	 * set to false; return false if a time-out occurred.
-	 * If the value is already something other than null, set
-	 * the value to null immediately and return true.
-	 */
-	public boolean waitToSetNull(long timeout) throws InterruptedException {
-		synchronized (this.mutex) {
-			boolean success = this.waitUntilNotNull(timeout);
-			if (success) {
-				this.setValue(null);
-			}
-			return success;
-		}
-	}
-
-
-	// ********** synchronized behavior **********
-
-	/**
-	 * If current thread is not interrupted, execute the specified command 
-	 * with the mutex locked. This is useful for initializing the value in another
-	 * thread.
-	 */
-	public void execute(Command command) throws InterruptedException {
-		if (Thread.interrupted()) {
-			throw new InterruptedException();
-		}
-		synchronized (this.mutex) {
-			command.execute();
-		}
-	}
-
-
-	// ********** standard methods **********
-
-	@Override
-	public SynchronizedObject<T> clone() {
-		try {
-			synchronized (this.mutex) {
-				@SuppressWarnings("unchecked")
-				SynchronizedObject<T> clone = (SynchronizedObject<T>) super.clone();
-				return clone;
-			}
-		} catch (CloneNotSupportedException ex) {
-			throw new InternalError();
-		}
-	}
-
-	@Override
-	public boolean equals(Object obj) {
-		if ( ! (obj instanceof SynchronizedObject)) {
-			return false;
-		}
-		Object v1 = this.value();
-		Object v2 = ((SynchronizedObject<?>) obj).value();
-		return (v1 == null) ?
-			(v2 == null) : v1.equals(v2);
-	}
-
-	@Override
-	public int hashCode() {
-		Object v = this.value();
-		return (v == null) ? 0 : v.hashCode();
-	}
-
-	@Override
-	public String toString() {
-		return String.valueOf(this.value());
-	}
-
-}
diff --git a/jpa/plugins/org.eclipse.jpt.utility/src/org/eclipse/jpt/utility/internal/SynchronizedStack.java b/jpa/plugins/org.eclipse.jpt.utility/src/org/eclipse/jpt/utility/internal/SynchronizedStack.java
deleted file mode 100644
index e232c40..0000000
--- a/jpa/plugins/org.eclipse.jpt.utility/src/org/eclipse/jpt/utility/internal/SynchronizedStack.java
+++ /dev/null
@@ -1,279 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2008 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.utility.internal;
-
-import java.io.Serializable;
-import java.util.EmptyStackException;
-import org.eclipse.jpt.utility.Command;
-
-/**
- * Thread-safe implementation of the Stack interface.
- * This also provides protocol for suspending a thread until the
- * stack is empty or not empty, with optional time-outs.
- */
-public class SynchronizedStack<E>
-	implements Stack<E>, Serializable
-{
-	/** Backing stack. */
-	private Stack<E> stack;
-
-	/** Object to synchronize on. */
-	private final Object mutex;
-
-	private static final long serialVersionUID = 1L;
-
-
-	// ********** constructors **********
-
-	/**
-	 * Construct a synchronized stack that wraps the
-	 * specified stack and locks on the specified mutex.
-	 */
-	public SynchronizedStack(Stack<E> stack, Object mutex) {
-		super();
-		this.stack = stack;
-		this.mutex = mutex;
-	}
-
-	/**
-	 * Construct a synchronized stack that wraps the
-	 * specified stack and locks on itself.
-	 */
-	public SynchronizedStack(Stack<E> stack) {
-		super();
-		this.stack = stack;
-		this.mutex = this;
-	}
-
-	/**
-	 * Construct a synchronized stack that locks on the specified mutex.
-	 */
-	public SynchronizedStack(Object mutex) {
-		this(new SimpleStack<E>(), mutex);
-	}
-
-	/**
-	 * Construct a synchronized stack that locks on itself.
-	 */
-	public SynchronizedStack() {
-		this(new SimpleStack<E>());
-	}
-
-
-	// ********** Stack implementation **********
-
-	public void push(E o) {
-		synchronized (this.mutex) {
-			this.stack.push(o);
-			this.mutex.notifyAll();
-		}
-	}
-
-	public E pop() {
-		synchronized (this.mutex) {
-			E o = this.stack.pop();
-			this.mutex.notifyAll();
-			return o;
-		}
-	}
-
-	public E peek() {
-		synchronized (this.mutex) {
-			return this.stack.peek();
-		}
-	}
-
-	public boolean isEmpty() {
-		synchronized (this.mutex) {
-			return this.stack.isEmpty();
-		}
-	}
-
-
-	// ********** indefinite waits **********
-
-	/**
-	 * Suspend the current thread until the stack's empty status changes
-	 * to the specified value.
-	 */
-	public void waitUntilEmptyIs(boolean empty) throws InterruptedException {
-		synchronized (this.mutex) {
-			while (this.isEmpty() != empty) {
-				this.mutex.wait();
-			}
-		}
-	}
-
-	/**
-	 * Suspend the current thread until the stack is empty.
-	 */
-	public void waitUntilEmpty() throws InterruptedException {
-		synchronized (this.mutex) {
-			this.waitUntilEmptyIs(true);
-		}
-	}
-
-	/**
-	 * Suspend the current thread until the stack has something on it.
-	 */
-	public void waitUntilNotEmpty() throws InterruptedException {
-		synchronized (this.mutex) {
-			this.waitUntilEmptyIs(false);
-		}
-	}
-
-	/**
-	 * Suspend the current thread until the stack is empty,
-	 * then "push" the specified item on to the top of the stack
-	 * and continue executing.
-	 */
-	public void waitToPush(E o) throws InterruptedException {
-		synchronized (this.mutex) {
-			this.waitUntilEmpty();
-			this.push(o);
-		}
-	}
-
-	/**
-	 * Suspend the current thread until the stack has something on it,
-	 * then "pop" an item from the top of the stack and return it.
-	 */
-	public Object waitToPop() throws InterruptedException {
-		synchronized (this.mutex) {
-			this.waitUntilNotEmpty();
-			return this.pop();
-		}
-	}
-
-
-	// ********** timed waits **********
-
-	/**
-	 * Suspend the current thread until the stack's empty status changes
-	 * to the specified value or the specified time-out occurs.
-	 * The time-out is specified in milliseconds. Return true if the specified
-	 * value was achieved; return false if a time-out occurred.
-	 */
-	public boolean waitUntilEmptyIs(boolean empty, long timeout) throws InterruptedException {
-		synchronized (this.mutex) {
-			if (timeout == 0L) {
-				this.waitUntilEmptyIs(empty);	// wait indefinitely until notified
-				return true;	// if it ever comes back, the condition was met
-			}
-
-			long stop = System.currentTimeMillis() + timeout;
-			long remaining = timeout;
-			while ((this.isEmpty() != empty) && (remaining > 0L)) {
-				this.mutex.wait(remaining);
-				remaining = stop - System.currentTimeMillis();
-			}
-			return (this.isEmpty() == empty);
-		}
-	}
-
-	/**
-	 * Suspend the current thread until the stack is empty
-	 * or the specified time-out occurs.
-	 * The time-out is specified in milliseconds. Return true if
-	 * the stack is empty; return false if a time-out occurred.
-	 */
-	public boolean waitUntilEmpty(long timeout) throws InterruptedException {
-		synchronized (this.mutex) {
-			return this.waitUntilEmptyIs(true, timeout);
-		}
-	}
-
-	/**
-	 * Suspend the current thread until the stack has something on it.
-	 * or the specified time-out occurs.
-	 * The time-out is specified in milliseconds. Return true if
-	 * the stack has something on it; return false if a time-out occurred.
-	 */
-	public boolean waitUntilNotEmpty(long timeout) throws InterruptedException {
-		synchronized (this.mutex) {
-			return this.waitUntilEmptyIs(false, timeout);
-		}
-	}
-
-	/**
-	 * Suspend the current thread until the stack is empty,
-	 * then "push" the specified item on to the top of the stack
-	 * and continue executing. If the stack is not emptied out
-	 * before the time-out, simply continue executing without
-	 * "pushing" the item.
-	 * The time-out is specified in milliseconds. Return true if the
-	 * item was pushed; return false if a time-out occurred.
-	 */
-	public boolean waitToPush(E o, long timeout) throws InterruptedException {
-		synchronized (this.mutex) {
-			boolean success = this.waitUntilEmpty(timeout);
-			if (success) {
-				this.push(o);
-			}
-			return success;
-		}
-	}
-
-	/**
-	 * Suspend the current thread until the stack has something on it,
-	 * then "pop" an item from the top of the stack and return it.
-	 * If the stack is empty and nothing is "pushed" on to it before the
-	 * time-out, throw an empty stack exception.
-	 * The time-out is specified in milliseconds.
-	 */
-	public Object waitToPop(long timeout) throws InterruptedException {
-		synchronized (this.mutex) {
-			boolean success = this.waitUntilNotEmpty(timeout);
-			if (success) {
-				return this.pop();
-			}
-			throw new EmptyStackException();
-		}
-	}
-
-
-	// ********** synchronized behavior **********
-
-	/**
-	 * If the current thread is not interrupted, execute the specified command 
-	 * with the mutex locked. This is useful for initializing the stack in another
-	 * thread.
-	 */
-	public void execute(Command command) throws InterruptedException {
-		if (Thread.interrupted()) {
-			throw new InterruptedException();
-		}
-		synchronized (this.mutex) {
-			command.execute();
-		}
-	}
-
-
-	// ********** additional public protocol **********
-
-	/**
-	 * Return the object this object locks on while performing
-	 * its operations.
-	 */
-	public Object mutex() {
-		return this.mutex;
-	}
-
-
-	// ********** Object overrides **********
-
-	@Override
-	public String toString() {
-		synchronized (this.mutex) {
-			return this.stack.toString();
-		}
-	}
-
-}
diff --git a/jpa/plugins/org.eclipse.jpt.utility/src/org/eclipse/jpt/utility/internal/ThreadLocalCommand.java b/jpa/plugins/org.eclipse.jpt.utility/src/org/eclipse/jpt/utility/internal/ThreadLocalCommand.java
deleted file mode 100644
index c12038e..0000000
--- a/jpa/plugins/org.eclipse.jpt.utility/src/org/eclipse/jpt/utility/internal/ThreadLocalCommand.java
+++ /dev/null
@@ -1,63 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.utility.internal;
-
-import org.eclipse.jpt.utility.Command;
-
-/**
- * This implementation of the Command interface allows the client to
- * specify a different Command for each thread.
- */
-public class ThreadLocalCommand implements Command {
-	protected final ThreadLocal<Command> threadLocal;
-	protected final Command defaultCommand;
-
-	/**
-	 * The default command does nothing.
-	 */
-	public ThreadLocalCommand() {
-		this(Command.Null.instance());
-	}
-
-	public ThreadLocalCommand(Command defaultCommand) {
-		super();
-		this.defaultCommand = defaultCommand;
-		this.threadLocal = this.buildThreadLocal();
-	}
-
-	protected ThreadLocal<Command> buildThreadLocal() {
-		return new ThreadLocal<Command>();
-	}
-
-	public void execute() {
-		this.get().execute();
-	}
-
-	protected Command get() {
-		Command command = this.threadLocal.get();
-		return (command != null) ? command : this.defaultCommand;
-	}
-
-	/**
-	 * Set the current thread's command to the specified value.
-	 */
-	public void set(Command command) {
-		this.threadLocal.set(command);
-	}
-
-	/**
-	 * Return the string representation of the current thread's command.
-	 */
-	@Override
-	public String toString() {
-		return this.get().toString();
-	}
-
-}
diff --git a/jpa/plugins/org.eclipse.jpt.utility/src/org/eclipse/jpt/utility/internal/ThreadLocalCommandExecutor.java b/jpa/plugins/org.eclipse.jpt.utility/src/org/eclipse/jpt/utility/internal/ThreadLocalCommandExecutor.java
deleted file mode 100644
index 7cb49b4..0000000
--- a/jpa/plugins/org.eclipse.jpt.utility/src/org/eclipse/jpt/utility/internal/ThreadLocalCommandExecutor.java
+++ /dev/null
@@ -1,65 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.utility.internal;
-
-import org.eclipse.jpt.utility.Command;
-import org.eclipse.jpt.utility.CommandExecutor;
-
-/**
- * This implementation of the CommandExecutor interface allows the client to
- * specify a different Command Executor for each thread.
- */
-public class ThreadLocalCommandExecutor implements CommandExecutor {
-	protected final ThreadLocal<CommandExecutor> threadLocal;
-	protected final CommandExecutor defaultCommandExecutor;
-
-	/**
-	 * The default command executor simply executes the command directly.
-	 */
-	public ThreadLocalCommandExecutor() {
-		this(CommandExecutor.Default.instance());
-	}
-
-	public ThreadLocalCommandExecutor(CommandExecutor defaultCommandExecutor) {
-		super();
-		this.defaultCommandExecutor = defaultCommandExecutor;
-		this.threadLocal = this.buildThreadLocal();
-	}
-
-	protected ThreadLocal<CommandExecutor> buildThreadLocal() {
-		return new ThreadLocal<CommandExecutor>();
-	}
-
-	public void execute(Command command) {
-		this.get().execute(command);
-	}
-
-	protected CommandExecutor get() {
-		CommandExecutor ce = this.threadLocal.get();
-		return (ce != null) ? ce : this.defaultCommandExecutor;
-	}
-
-	/**
-	 * Set the current thread's command executor to the specified value.
-	 */
-	public void set(CommandExecutor commandExecutor) {
-		this.threadLocal.set(commandExecutor);
-	}
-
-	/**
-	 * Return the string representation of the current thread's command
-	 * executor.
-	 */
-	@Override
-	public String toString() {
-		return this.get().toString();
-	}
-
-}
diff --git a/jpa/plugins/org.eclipse.jpt.utility/src/org/eclipse/jpt/utility/internal/Transformer.java b/jpa/plugins/org.eclipse.jpt.utility/src/org/eclipse/jpt/utility/internal/Transformer.java
deleted file mode 100644
index 946e697..0000000
--- a/jpa/plugins/org.eclipse.jpt.utility/src/org/eclipse/jpt/utility/internal/Transformer.java
+++ /dev/null
@@ -1,69 +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.utility.internal;
-
-/**
- * Used by various "pluggable" classes to transform objects.
- * Transform an object of type T1 to an object of type T2.
- */
-public interface Transformer<T1, T2> {
-
-	/**
-	 * Return the transformed object.
-	 * The semantics of "transform" is determined by the
-	 * contract between the client and the server.
-	 */
-	T2 transform(T1 o);
-
-
-	final class Null<S1, S2> implements Transformer<S1, S2> {
-		@SuppressWarnings("unchecked")
-		public static final Transformer INSTANCE = new Null();
-		@SuppressWarnings("unchecked")
-		public static <R1, R2> Transformer<R1, R2> instance() {
-			return INSTANCE;
-		}
-		// ensure single instance
-		private Null() {
-			super();
-		}
-		// simply return the object, unchanged
-		@SuppressWarnings("unchecked")
-		public S2 transform(S1 o) {
-			return (S2) o;
-		}
-		@Override
-		public String toString() {
-			return "Transformer.Null"; //$NON-NLS-1$
-		}
-	}
-
-	final class Disabled<S1, S2> implements Transformer<S1, S2> {
-		@SuppressWarnings("unchecked")
-		public static final Transformer INSTANCE = new Disabled();
-		@SuppressWarnings("unchecked")
-		public static <R1, R2> Transformer<R1, R2> instance() {
-			return INSTANCE;
-		}
-		// ensure single instance
-		private Disabled() {
-			super();
-		}
-		// throw an exception
-		public S2 transform(S1 o) {
-			throw new UnsupportedOperationException();
-		}
-		@Override
-		public String toString() {
-			return "Transformer.Disabled"; //$NON-NLS-1$
-		}
-	}
-
-}
diff --git a/jpa/plugins/org.eclipse.jpt.utility/src/org/eclipse/jpt/utility/internal/XMLStringEncoder.java b/jpa/plugins/org.eclipse.jpt.utility/src/org/eclipse/jpt/utility/internal/XMLStringEncoder.java
deleted file mode 100644
index cd9ab18..0000000
--- a/jpa/plugins/org.eclipse.jpt.utility/src/org/eclipse/jpt/utility/internal/XMLStringEncoder.java
+++ /dev/null
@@ -1,182 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005, 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.utility.internal;
-
-import java.io.IOException;
-import java.io.Reader;
-import java.io.StringReader;
-
-/**
- * This encoder will replace any of a specified set of characters with an XML
- * "character reference": '/' => "&#x2f;"
- */
-public final class XMLStringEncoder {
-
-	/** The set of characters to be converted into XML character references. */
-	private final char[] chars;
-
-	/** Cache the value of the highest character in the set above. */
-	private final char maxChar;
-
-
-	// ********** constructors/initialization **********
-
-	/**
-	 * Construct an encoder that converts the specified set of characters
-	 * into XML character references.
-	 */
-	public XMLStringEncoder(char[] chars) {
-		super();
-		if (chars == null) {
-			throw new NullPointerException();
-		}
-		// the ampersand must be included since it is the escape character
-		if (CollectionTools.contains(chars, '&')) {
-			this.chars = chars;
-		} else {
-			this.chars = CollectionTools.add(chars, '&');
-		}
-		this.maxChar = this.calculateMaxInvalidFileNameChar();
-	}
-
-	/**
-	 * Calculate the maximum value of the set of characters to be converted
-	 * into XML character references. This will be used to short-circuit the
-	 * search for a character in the set.
-	 * @see #charIsToBeEncoded(char)
-	 */
-	private char calculateMaxInvalidFileNameChar() {
-		char[] localChars = this.chars;
-		char max = 0;
-		for (int i = localChars.length; i-- > 0; ) {
-			char c = localChars[i];
-			if (max < c) {
-				max = c;
-			}
-		}
-		return max;
-	}
-
-
-	// ********** API **********
-
-	/**
-	 * Return the specified string with any characters in the set
-	 * replaced with XML character references.
-	 */
-	public String encode(String s) {
-		int len = s.length();
-		// allow for a few encoded characters
-		StringBuilder sb = new StringBuilder(len + 20);
-		for (int i = 0; i < len; i++) {
-			this.appendCharacterTo(s.charAt(i), sb);
-		}
-		return sb.toString();
-	}
-
-	/**
-	 * Return the specified string with any XML character references
-	 * replaced by the characters themselves.
-	 */
-	public String decode(String s) {
-		StringBuilder sb = new StringBuilder(s.length());
-		StringBuilder temp = new StringBuilder();	// performance tweak
-		this.decodeTo(new StringReader(s), sb, temp);
-		return sb.toString();
-	}
-
-
-	// ********** internal methods **********
-
-	/**
-	 * Append the specified character to the string buffer,
-	 * converting it to an XML character reference if necessary.
-	 */
-	private void appendCharacterTo(char c, StringBuilder sb) {
-		if (this.charIsToBeEncoded(c)) {
-			this.appendCharacterReferenceTo(c, sb);
-		} else {
-			sb.append(c);
-		}
-	}
-
-	/**
-	 * Return whether the specified character is one of the characters
-	 * to be converted to XML character references.
-	 */
-	private boolean charIsToBeEncoded(char c) {
-		return (c <= this.maxChar) && CollectionTools.contains(this.chars, c);
-	}
-
-	/**
-	 * Append the specified character's XML character reference to the
-	 * specified string buffer (e.g. '/' => "&#x2f;").
-	 */
-	private void appendCharacterReferenceTo(char c, StringBuilder sb) {
-		sb.append("&#x"); //$NON-NLS-1$
-		sb.append(Integer.toString(c, 16));
-		sb.append(';');
-	}
-
-	private void decodeTo(Reader reader, StringBuilder sb, StringBuilder temp) {
-		try {
-			this.decodeTo_(reader, sb, temp);
-		} catch (IOException ex) {
-			throw new RuntimeException(ex);
-		}
-	}
-
-	private void decodeTo_(Reader reader, StringBuilder sb, StringBuilder temp) throws IOException {
-		int c = reader.read();
-		while (c != -1) {
-			if (c == '&') {
-				this.decodeCharacterReferenceTo(reader, sb, temp);
-			} else {
-				sb.append((char) c);
-			}
-			c = reader.read();
-		}
-		reader.close();
-	}
-
-	private void decodeCharacterReferenceTo(Reader reader, StringBuilder sb, StringBuilder temp) throws IOException {
-		int c = reader.read();
-		this.checkChar(c, '#');
-		c = reader.read();
-		this.checkChar(c, 'x');
-
-		temp.setLength(0);  // re-use temp
-		c = reader.read();
-		while (c != ';') {
-			this.checkEndOfStream(c);
-			temp.append((char) c);
-			c = reader.read();
-		}
-		String charValue = temp.toString();
-		if (charValue.length() == 0) {
-			throw new IllegalStateException("missing numeric string"); //$NON-NLS-1$
-		}
-		sb.append((char) Integer.parseInt(charValue, 16));
-	}
-
-	private void checkChar(int c, int expected) {
-		this.checkEndOfStream(c);
-		if (c != expected) {
-			throw new IllegalStateException("expected '" + (char) expected + "', but encountered '" + (char) c + "'"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
-		}
-	}
-
-	private void checkEndOfStream(int c) {
-		if (c == -1) {
-			throw new IllegalStateException("unexpected end of string"); //$NON-NLS-1$
-		}
-	}
-
-}
diff --git a/jpa/plugins/org.eclipse.jpt.utility/src/org/eclipse/jpt/utility/internal/enumerations/EmptyEnumeration.java b/jpa/plugins/org.eclipse.jpt.utility/src/org/eclipse/jpt/utility/internal/enumerations/EmptyEnumeration.java
deleted file mode 100644
index 0cfe481..0000000
--- a/jpa/plugins/org.eclipse.jpt.utility/src/org/eclipse/jpt/utility/internal/enumerations/EmptyEnumeration.java
+++ /dev/null
@@ -1,55 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005, 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.utility.internal.enumerations;
-
-import java.util.Enumeration;
-import java.util.NoSuchElementException;
-import org.eclipse.jpt.utility.internal.StringTools;
-
-/**
- * An <code>EmptyEnumeration</code> is just that.
- */
-public final class EmptyEnumeration<E>
-	implements Enumeration<E>
-{
-
-	// singleton
-	@SuppressWarnings("unchecked")
-	private static final EmptyEnumeration INSTANCE = new EmptyEnumeration();
-
-	/**
-	 * Return the singleton.
-	 */
-	@SuppressWarnings("unchecked")
-	public static <T> Enumeration<T> instance() {
-		return INSTANCE;
-	}
-
-	/**
-	 * Ensure single instance.
-	 */
-	private EmptyEnumeration() {
-		super();
-	}
-
-	public boolean hasMoreElements() {
-		return false;
-	}
-
-	public E nextElement() {
-		throw new NoSuchElementException();
-	}
-
-	@Override
-	public String toString() {
-		return StringTools.buildToStringFor(this);
-	}
-
-}
diff --git a/jpa/plugins/org.eclipse.jpt.utility/src/org/eclipse/jpt/utility/internal/enumerations/IteratorEnumeration.java b/jpa/plugins/org.eclipse.jpt.utility/src/org/eclipse/jpt/utility/internal/enumerations/IteratorEnumeration.java
deleted file mode 100644
index 476278b..0000000
--- a/jpa/plugins/org.eclipse.jpt.utility/src/org/eclipse/jpt/utility/internal/enumerations/IteratorEnumeration.java
+++ /dev/null
@@ -1,55 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005, 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.utility.internal.enumerations;
-
-import java.util.Enumeration;
-import java.util.Iterator;
-import org.eclipse.jpt.utility.internal.StringTools;
-
-/**
- * An <code>IteratorEnumeration</code> wraps an
- * <code>Iterator</code> so that it can be treated like an
- * <code>Enumeration</code>.
- * Hopefully we don't have much need for this....
- */
-public class IteratorEnumeration<E>
-	implements Enumeration<E>
-{
-	private final Iterator<? extends E> iterator;
-
-	/**
-	 * Construct an enumeration that wraps the specified iterable.
-	 */
-	public IteratorEnumeration(Iterable<? extends E> iterable) {
-		this(iterable.iterator());
-	}
-
-	/**
-	 * Construct an enumeration that wraps the specified iterator.
-	 */
-	public IteratorEnumeration(Iterator<? extends E> iterator) {
-		super();
-		this.iterator = iterator;
-	}
-
-	public boolean hasMoreElements() {
-		return this.iterator.hasNext();
-	}
-
-	public E nextElement() {
-		return this.iterator.next();
-	}
-
-	@Override
-	public String toString() {
-		return StringTools.buildToStringFor(this, this.iterator);
-	}
-	
-}
diff --git a/jpa/plugins/org.eclipse.jpt.utility/src/org/eclipse/jpt/utility/internal/iterables/ArrayIterable.java b/jpa/plugins/org.eclipse.jpt.utility/src/org/eclipse/jpt/utility/internal/iterables/ArrayIterable.java
deleted file mode 100644
index 482d64d..0000000
--- a/jpa/plugins/org.eclipse.jpt.utility/src/org/eclipse/jpt/utility/internal/iterables/ArrayIterable.java
+++ /dev/null
@@ -1,65 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.utility.internal.iterables;
-
-import java.util.Arrays;
-import java.util.Iterator;
-
-import org.eclipse.jpt.utility.internal.StringTools;
-import org.eclipse.jpt.utility.internal.iterators.ArrayIterator;
-
-/**
- * An <code>ArrayIterable</code> provides an <code>Iterable</code>
- * for an array of objects of type E.
- * 
- * @see ArrayIterator
- */
-public class ArrayIterable<E>
-	implements Iterable<E>
-{
-	private final E[] array;
-	private final int start;
-	private final int length;
-
-	/**
-	 * Construct an iterable for the specified array.
-	 */
-	public ArrayIterable(E... array) {
-		this(array, 0, array.length);
-	}
-
-	/**
-	 * Construct an iterable for the specified array,
-	 * starting at the specified start index and continuing for
-	 * the specified length.
-	 */
-	public ArrayIterable(E[] array, int start, int length) {
-		super();
-		if ((start < 0) || (start > array.length)) {
-			throw new IllegalArgumentException("start: " + start); //$NON-NLS-1$
-		}
-		if ((length < 0) || (length > array.length - start)) {
-			throw new IllegalArgumentException("length: " + length); //$NON-NLS-1$
-		}
-		this.array = array;
-		this.start = start;
-		this.length = length;
-	}
-
-	public Iterator<E> iterator() {
-		return new ArrayIterator<E>(this.array, this.start, this.length);
-	}
-
-	@Override
-	public String toString() {
-		return StringTools.buildToStringFor(this, Arrays.toString(this.array));
-	}
-	
-}
diff --git a/jpa/plugins/org.eclipse.jpt.utility/src/org/eclipse/jpt/utility/internal/iterables/ChainIterable.java b/jpa/plugins/org.eclipse.jpt.utility/src/org/eclipse/jpt/utility/internal/iterables/ChainIterable.java
deleted file mode 100644
index 4cfbc8d..0000000
--- a/jpa/plugins/org.eclipse.jpt.utility/src/org/eclipse/jpt/utility/internal/iterables/ChainIterable.java
+++ /dev/null
@@ -1,91 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.utility.internal.iterables;
-
-import java.util.Iterator;
-
-import org.eclipse.jpt.utility.internal.StringTools;
-import org.eclipse.jpt.utility.internal.iterators.ChainIterator;
-
-/**
- * A <code>ChainIterable</code> provides a pluggable <code>Iterable</code>
- * that loops over a chain of arbitrarily linked objects. The chain
- * should be null-terminated (i.e. a call to the <code>nextLink(Object)</code>
- * method should return <code>null</code> when it is passed the last
- * link of the chain).
- * To use, supply a starting link and supply a <code>Linker</code> or
- * subclass <code>ChainIterable</code> and override the
- * <code>nextLink(Object)</code> method.
- * The starting link will be the first object returned by the iterable's iterator.
- * If the starting link is <code>null</code>, the iterable will be empty.
- * Note this iterable does not support <code>null</code> elements.
- * 
- * @see ChainIterator
- */
-public class ChainIterable<E>
-	implements Iterable<E>
-{
-	private final E startLink;
-	private final ChainIterator.Linker<E> linker;
-
-
-	/**
-	 * Construct an iterable with the specified starting link
-	 * and a default linker that calls back to the iterable.
-	 * Use this constructor if you want to override the
-	 * <code>nextLink(Object)</code> method instead of building
-	 * a <code>Linker</code>.
-	 */
-	public ChainIterable(E startLink) {
-		super();
-		this.startLink = startLink;
-		this.linker = new DefaultLinker();
-	}
-
-	/**
-	 * Construct an iterator with the specified starting link
-	 * and linker.
-	 */
-	public ChainIterable(E startLink, ChainIterator.Linker<E> linker) {
-		super();
-		this.startLink = startLink;
-		this.linker = linker;
-	}
-
-	public Iterator<E> iterator() {
-		return new ChainIterator<E>(this.startLink, this.linker);
-	}
-
-	/**
-	 * Return the next link in the chain; null if there are no more links.
-	 * <p>
-	 * This method can be overridden by a subclass as an alternative to
-	 * building a <code>ChainIterator.Linker</code>
-	 */
-	protected E nextLink(@SuppressWarnings("unused") E currentLink) {
-		// ChainIterable.nextLink(Object) was not overridden
-		throw new UnsupportedOperationException();
-	}
-
-	@Override
-	public String toString() {
-		return StringTools.buildToStringFor(this, this.startLink);
-	}
-
-
-	//********** default linker **********
-
-	class DefaultLinker implements ChainIterator.Linker<E> {
-		public E nextLink(E currentLink) {
-			return ChainIterable.this.nextLink(currentLink);
-		}
-	}
-
-}
diff --git a/jpa/plugins/org.eclipse.jpt.utility/src/org/eclipse/jpt/utility/internal/iterables/CloneIterable.java b/jpa/plugins/org.eclipse.jpt.utility/src/org/eclipse/jpt/utility/internal/iterables/CloneIterable.java
deleted file mode 100644
index d8760ce..0000000
--- a/jpa/plugins/org.eclipse.jpt.utility/src/org/eclipse/jpt/utility/internal/iterables/CloneIterable.java
+++ /dev/null
@@ -1,89 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.utility.internal.iterables;
-
-import java.util.Arrays;
-import java.util.Collection;
-import java.util.Iterator;
-
-import org.eclipse.jpt.utility.internal.StringTools;
-import org.eclipse.jpt.utility.internal.iterators.CloneIterator;
-
-/**
- * A <code>CloneIterable</code> returns an iterator on a current copy of a
- * collection, allowing for concurrent access to the original collection. A
- * copy of the collection is created every time <code>#iterable()</code> is
- * called. As a result, the contents of the collection can be different with
- * each call to <code>#iterable()</code>.
- * <p>
- * The original collection passed to the <code>CloneIterabler</code>'s
- * constructor should be synchronized (e.g. java.util.Vector);
- * otherwise you run the risk of a corrupted collection.
- * <p>
- * By default, the iterator returned by a <code>CloneIterable</code> does not
- * support the <code>#remove()</code> operation; this is because it does not
- * have access to the original collection. But if the <code>CloneIterable</code>
- * is supplied with an <code>CloneIterator.Mutator</code> it will delegate the
- * <code>#remove()</code> operation to the <code>Mutator</code>.
- * 
- * @see CloneIterator
- * @see FixedCloneIterable
- */
-public class CloneIterable<E>
-	implements Iterable<E>
-{
-	private final Collection<? extends E> collection;
-	private final CloneIterator.Mutator<E> mutator;
-
-
-	// ********** constructors **********
-
-	/**
-	 * Construct a live iterable for the specified collection.
-	 * The <code>#remove()</code> method will not be supported
-	 * by the <code>Iterator</code> returned by <code>#iterable()</code>.
-	 */
-	public CloneIterable(E[] array) {
-		this(Arrays.asList(array));
-	}
-
-	/**
-	 * Construct a live iterable for the specified collection.
-	 * The <code>#remove()</code> method will not be supported
-	 * by the <code>Iterator</code> returned by <code>#iterable()</code>.
-	 */
-	public CloneIterable(Collection<? extends E> collection) {
-		this(collection, CloneIterator.Mutator.ReadOnly.<E>instance());
-	}
-
-	/**
-	 * Construct a live iterable for the specified collection.
-	 * Use the specified mutator to remove objects from the
-	 * original collection.
-	 */
-	public CloneIterable(Collection<? extends E> collection, CloneIterator.Mutator<E> mutator) {
-		super();
-		this.collection = collection;
-		this.mutator = mutator;
-	}
-
-
-	// ********** Iterable implementation **********
-
-	public Iterator<E> iterator() {
-		return new CloneIterator<E>(this.collection, this.mutator);
-	}
-
-	@Override
-	public String toString() {
-		return StringTools.buildToStringFor(this);
-	}
-
-}
diff --git a/jpa/plugins/org.eclipse.jpt.utility/src/org/eclipse/jpt/utility/internal/iterables/CompositeIterable.java b/jpa/plugins/org.eclipse.jpt.utility/src/org/eclipse/jpt/utility/internal/iterables/CompositeIterable.java
deleted file mode 100644
index 05efec0..0000000
--- a/jpa/plugins/org.eclipse.jpt.utility/src/org/eclipse/jpt/utility/internal/iterables/CompositeIterable.java
+++ /dev/null
@@ -1,95 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.utility.internal.iterables;
-
-import java.util.Iterator;
-
-import org.eclipse.jpt.utility.internal.StringTools;
-import org.eclipse.jpt.utility.internal.iterators.CompositeIterator;
-import org.eclipse.jpt.utility.internal.iterators.TransformationIterator;
-
-/**
- * A <code>CompositeIterable</code> wraps a collection
- * of <code>Iterable</code>s and makes them appear to be a single
- * <code>Iterable</code>.
- * 
- * @see CompositeIterator
- */
-public class CompositeIterable<E>
-	implements Iterable<E>
-{
-	private final Iterable<? extends Iterable<? extends E>> iterables;
-
-
-	/**
-	 * Construct an iterable with the specified collection of iterables.
-	 */
-	public CompositeIterable(Iterable<? extends Iterable<? extends E>> iterables) {
-		super();
-		this.iterables = iterables;
-	}
-
-	/**
-	 * Construct an iterable with the specified object prepended
-	 * to the specified iterable.
-	 */
-	@SuppressWarnings("unchecked")
-	public CompositeIterable(E object, Iterable<? extends E> iterable) {
-		this(new SingleElementIterable<E>(object), iterable);
-	}
-
-	/**
-	 * Construct an iterable with the specified object appended
-	 * to the specified iterable.
-	 */
-	@SuppressWarnings("unchecked")
-	public CompositeIterable(Iterable<? extends E> iterable, E object) {
-		this(iterable, new SingleElementIterable<E>(object));
-	}
-
-	/**
-	 * Construct an iterable with the specified iterables.
-	 */
-	public CompositeIterable(Iterable<? extends E>... iterables) {
-		this(new ArrayIterable<Iterable<? extends E>>(iterables));
-	}
-
-	/**
-	 * combined iterators
-	 */
-	public Iterator<E> iterator() {
-		return new CompositeIterator<E>(this.iterators());
-	}
-
-	/**
-	 * iterator of iterators
-	 */
-	protected Iterator<? extends Iterator<? extends E>> iterators() {
-		return new TransformationIterator<Iterable<? extends E>, Iterator<? extends E>>(this.iterables()) {
-			@Override
-			protected Iterator<? extends E> transform(Iterable<? extends E> next) {
-				return next.iterator();
-			}
-		};
-	}
-
-	/**
-	 * iterator of iterables
-	 */
-	protected Iterator<? extends Iterable<? extends E>> iterables() {
-		return this.iterables.iterator();
-	}
-
-	@Override
-	public String toString() {
-		return StringTools.buildToStringFor(this, this.iterables);
-	}
-
-}
diff --git a/jpa/plugins/org.eclipse.jpt.utility/src/org/eclipse/jpt/utility/internal/iterables/EmptyIterable.java b/jpa/plugins/org.eclipse.jpt.utility/src/org/eclipse/jpt/utility/internal/iterables/EmptyIterable.java
deleted file mode 100644
index 3925caa..0000000
--- a/jpa/plugins/org.eclipse.jpt.utility/src/org/eclipse/jpt/utility/internal/iterables/EmptyIterable.java
+++ /dev/null
@@ -1,56 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.utility.internal.iterables;
-
-import java.util.Iterator;
-
-import org.eclipse.jpt.utility.internal.StringTools;
-import org.eclipse.jpt.utility.internal.iterators.EmptyIterator;
-
-/**
- * An <code>EmptyIterable</code> is just that.
- * Maybe just a touch better-performing than java.util.Collections.EMPTY_SET
- * since we don't create a new Iterator every time #iterator() is called.
- * (Not sure why they do that....)
- * 
- * @see EmptyIterator
- */
-public final class EmptyIterable<E>
-	implements Iterable<E>
-{
-	// singleton
-	@SuppressWarnings("unchecked")
-	private static final Iterable INSTANCE = new EmptyIterable();
-
-	/**
-	 * Return the singleton.
-	 */
-	@SuppressWarnings("unchecked")
-	public static <T> Iterable<T> instance() {
-		return INSTANCE;
-	}
-
-	/**
-	 * Ensure single instance.
-	 */
-	private EmptyIterable() {
-		super();
-	}
-
-	public Iterator<E> iterator() {
-		return EmptyIterator.instance();
-	}
-
-	@Override
-	public String toString() {
-		return StringTools.buildToStringFor(this);
-	}
-
-}
diff --git a/jpa/plugins/org.eclipse.jpt.utility/src/org/eclipse/jpt/utility/internal/iterables/FilteringIterable.java b/jpa/plugins/org.eclipse.jpt.utility/src/org/eclipse/jpt/utility/internal/iterables/FilteringIterable.java
deleted file mode 100644
index 16f6378..0000000
--- a/jpa/plugins/org.eclipse.jpt.utility/src/org/eclipse/jpt/utility/internal/iterables/FilteringIterable.java
+++ /dev/null
@@ -1,90 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.utility.internal.iterables;
-
-import java.util.Iterator;
-
-import org.eclipse.jpt.utility.Filter;
-import org.eclipse.jpt.utility.internal.StringTools;
-import org.eclipse.jpt.utility.internal.iterators.FilteringIterator;
-
-/**
- * A <code>FilteringIterable</code> wraps another <code>Iterable</code>
- * and uses a <code>Filter</code> to determine which elements in the
- * nested iterable's iterator are to be returned by calls to <code>next()</code>.
- * <p>
- * As an alternative to building a <code>Filter</code>, a subclass
- * of <code>FilteringIterable</code> can override the
- * <code>accept(Object)</code> method.
- * 
- * @see FilteringIterator
- */
-public class FilteringIterable<E1, E2>
-	implements Iterable<E2>
-{
-	private final Iterable<? extends E1> iterable;
-	private final Filter<E1> filter;
-
-
-	/**
-	 * Construct an iterable with the specified nested
-	 * iterable and a default filter that calls back to the iterable.
-	 * Use this constructor if you want to override the
-	 * <code>accept(Object)</code> method instead of building
-	 * a <code>Filter</code>.
-	 */
-	public FilteringIterable(Iterable<? extends E1> iterable) {
-		super();
-		this.iterable = iterable;
-		this.filter = new DefaultFilter();
-	}
-
-	/**
-	 * Construct an iterable with the specified nested
-	 * iterable and filter.
-	 */
-	public FilteringIterable(Iterable<? extends E1> iterable, Filter<E1> filter) {
-		super();
-		this.iterable = iterable;
-		this.filter = filter;
-	}
-
-	public Iterator<E2> iterator() {
-		return new FilteringIterator<E1, E2>(this.iterable.iterator(), this.filter);
-	}
-
-	/**
-	 * Return whether the <code>FilteringIterator</code>
-	 * should return the specified next element from a call to the
-	 * <code>next()</code> method.
-	 * <p>
-	 * This method can be overridden by a subclass as an
-	 * alternative to building a <code>Filter</code>.
-	 */
-	protected boolean accept(@SuppressWarnings("unused") E1 o) {
-		// FilteringIterable.accept(Object) was not overridden
-		throw new UnsupportedOperationException();
-	}
-
-	@Override
-	public String toString() {
-		return StringTools.buildToStringFor(this, this.iterable);
-	}
-
-
-	//********** default filter **********
-
-	class DefaultFilter implements Filter<E1> {
-		public boolean accept(E1 o) {
-			return FilteringIterable.this.accept(o);
-		}
-	}
-
-}
diff --git a/jpa/plugins/org.eclipse.jpt.utility/src/org/eclipse/jpt/utility/internal/iterables/FixedCloneIterable.java b/jpa/plugins/org.eclipse.jpt.utility/src/org/eclipse/jpt/utility/internal/iterables/FixedCloneIterable.java
deleted file mode 100644
index 7b31c25..0000000
--- a/jpa/plugins/org.eclipse.jpt.utility/src/org/eclipse/jpt/utility/internal/iterables/FixedCloneIterable.java
+++ /dev/null
@@ -1,94 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.utility.internal.iterables;
-
-import java.util.Collection;
-import java.util.Iterator;
-
-import org.eclipse.jpt.utility.internal.StringTools;
-import org.eclipse.jpt.utility.internal.iterators.CloneIterator;
-
-/**
- * A <code>FixedCloneIterable</code> returns an iterator on a static copy of a
- * collection, allowing for concurrent access to the original collection. A
- * copy of the collection is created at construction time.
- * As a result, the contents of the collection will be the same with
- * every call to <code>#iterable()</code>.
- * <p>
- * The original collection passed to the <code>FixedCloneIterable</code>'s
- * constructor should be synchronized (e.g. java.util.Vector);
- * otherwise you run the risk of a corrupted collection.
- * <p>
- * By default, the iterator returned by a <code>FixedCloneIterable</code> does not
- * support the <code>#remove()</code> operation; this is because it does not
- * have access to the original collection. But if the <code>FixedCloneIterable</code>
- * is supplied with an <code>CloneIterator.Mutator</code> it will delegate the
- * <code>#remove()</code> operation to the <code>Mutator</code>.
- * <p>
- * This iterable is useful for multiple passes over a collection that should not
- * be changed between passes (e.g. by another thread).
- * 
- * @see CloneIterator
- * @see CloneIterable
- */
-public class FixedCloneIterable<E>
-	implements Iterable<E>
-{
-	private final Object[] array;
-	private final CloneIterator.Mutator<E> mutator;
-
-
-	// ********** constructors **********
-
-	/**
-	 * Construct a static iterable for the specified collection.
-	 * The <code>#remove()</code> method will not be supported
-	 * by the <code>Iterator</code> returned by <code>#iterable()</code>.
-	 */
-	public FixedCloneIterable(Collection<? extends E> collection) {
-		this(collection, CloneIterator.Mutator.ReadOnly.<E>instance());
-	}
-
-	/**
-	 * Construct a static iterable for the specified collection.
-	 * Use the specified mutator to remove objects from the
-	 * original collection.
-	 */
-	public FixedCloneIterable(Collection<? extends E> collection, CloneIterator.Mutator<E> mutator) {
-		super();
-		this.array = collection.toArray();
-		this.mutator = mutator;
-	}
-
-
-	// ********** Iterable implementation **********
-
-	public Iterator<E> iterator() {
-		return new LocalCloneIterator<E>(this.mutator, this.array);
-	}
-
-	@Override
-	public String toString() {
-		return StringTools.buildToStringFor(this);
-	}
-
-
-	// ********** clone iterator **********
-
-	/**
-	 * provide access to "internal" constructor
-	 */
-	protected static class LocalCloneIterator<E> extends CloneIterator<E> {
-		protected LocalCloneIterator(Mutator<E> mutator, Object[] array) {
-			super(mutator, array);
-		}
-	}
-
-}
diff --git a/jpa/plugins/org.eclipse.jpt.utility/src/org/eclipse/jpt/utility/internal/iterables/GenericIterableWrapper.java b/jpa/plugins/org.eclipse.jpt.utility/src/org/eclipse/jpt/utility/internal/iterables/GenericIterableWrapper.java
deleted file mode 100644
index 4684e0c..0000000
--- a/jpa/plugins/org.eclipse.jpt.utility/src/org/eclipse/jpt/utility/internal/iterables/GenericIterableWrapper.java
+++ /dev/null
@@ -1,43 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.utility.internal.iterables;
-
-import java.util.Iterator;
-
-import org.eclipse.jpt.utility.internal.StringTools;
-
-/**
- * Wrap an iterable of elements of any sub-type of E, converting it into an
- * iterable of elements of type E. This shouldn't be a problem since there
- * is no way to add invalid elements to the iterable.
- */
-public class GenericIterableWrapper<E>
-	implements Iterable<E>
-{
-	private final Iterable<E> iterable;
-
-
-	@SuppressWarnings("unchecked")
-	public GenericIterableWrapper(Iterable<? extends E> iterable) {
-		super();
-		// this should be a safe cast - the iterator will only ever return E from #next()
-		this.iterable = (Iterable<E>) iterable;
-	}
-
-	public Iterator<E> iterator() {
-		return this.iterable.iterator();
-	}
-
-	@Override
-	public String toString() {
-		return StringTools.buildToStringFor(this, this.iterable);
-	}
-
-}
diff --git a/jpa/plugins/org.eclipse.jpt.utility/src/org/eclipse/jpt/utility/internal/iterables/GraphIterable.java b/jpa/plugins/org.eclipse.jpt.utility/src/org/eclipse/jpt/utility/internal/iterables/GraphIterable.java
deleted file mode 100644
index 117e5b2..0000000
--- a/jpa/plugins/org.eclipse.jpt.utility/src/org/eclipse/jpt/utility/internal/iterables/GraphIterable.java
+++ /dev/null
@@ -1,152 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.utility.internal.iterables;
-
-import java.util.Arrays;
-import java.util.Iterator;
-
-import org.eclipse.jpt.utility.internal.StringTools;
-import org.eclipse.jpt.utility.internal.iterators.GraphIterator;
-
-/**
- * A <code>GraphIterable</code> is similar to a <code>TreeIterable</code>
- * except that it cannot be assumed that all nodes assume a strict tree
- * structure. For instance, in a tree, a node cannot be a descendent of
- * itself, but a graph may have a cyclical structure.
- * 
- * A <code>GraphIterable</code> simplifies the traversal of a
- * graph of objects, where the objects' protocol(s) provides
- * a method for getting the next collection of nodes in the graph,
- * (or *neighbors*), but does not provide a method for getting *all* 
- * of the nodes in the graph.
- * (e.g. a neighbor can return his neighbors, and those neighbors
- * can return their neighbors, which might also include the original
- * neighbor, but you only want to visit the original neighbor once.)
- * <p>
- * If a neighbor has already been visited (determined by using 
- * <code>equals(Object)</code>), that neighbor is not visited again,
- * nor are the neighbors of that object.
- * <p>
- * It is up to the user of this class to ensure a *complete* graph.
- * <p>
- * To use, supply:<ul>
- * <li> either the initial node of the graph or an <code>Iterable</code>
- * of the initial collection of graph nodes
- * <li> a <code>MisterRogers</code> that tells who the neighbors are
- * of each node
- * (alternatively, subclass <code>GraphIterable</code>
- * and override the <code>neighbors(Object)</code> method)
- * </ul>
- * <p>
- * <code>remove()</code> is not supported. This method, if 
- * desired, must be implemented by the user of this class.
- * 
- * @see GraphIterator
- */
-public class GraphIterable<E>
-	implements Iterable<E>
-{
-	private final Iterable<? extends E> roots;
-	private final GraphIterator.MisterRogers<E> misterRogers;
-
-
-	/**
-	 * Construct an iterable containing the nodes of a graph with the specified root
-	 * and a default mister rogers that calls back to the iterable.
-	 * Use this constructor if you want to override the
-	 * <code>neighbors(Object)</code> method instead of building
-	 * a <code>GraphIterator.MisterRogers</code>.
-	 */
-	public GraphIterable(E root) {
-		this(new SingleElementIterable<E>(root));
-	}
-
-	/**
-	 * Construct an iterable containing the nodes of a graph 
-	 * with the specified root and mister rogers.
-	 */
-	public GraphIterable(E root, GraphIterator.MisterRogers<E> misterRogers) {
-		this(new SingleElementIterable<E>(root), misterRogers);
-	}
-
-	/**
-	 * Construct an iterable containing the nodes of a graph 
-	 * with the specified collection of roots
-	 * and a default mister rogers that calls back to the iterable.
-	 * Use this constructor if you want to override the
-	 * <code>neighbors(Object)</code> method instead of building
-	 * a <code>GraphIterator.MisterRogers</code>.
-	 */
-	public GraphIterable(E... roots) {
-		this(Arrays.asList(roots));
-	}
-
-	/**
-	 * Construct an iterable containing the nodes of a graph 
-	 * with the specified roots and mister rogers.
-	 */
-	public GraphIterable(E[] roots, GraphIterator.MisterRogers<E> misterRogers) {
-		this(Arrays.asList(roots), misterRogers);
-	}
-
-	/**
-	 * Construct an iterable containing the nodes of a graph 
-	 * with the specified collection of roots
-	 * and a default mister rogers that calls back to the iterable.
-	 * Use this constructor if you want to override the
-	 * <code>neighbors(Object)</code> method instead of building
-	 * a <code>GraphIterator.MisterRogers</code>.
-	 */
-	public GraphIterable(Iterable<? extends E> roots) {
-		super();
-		this.roots = roots;
-		this.misterRogers = new DefaultMisterRogers();
-	}
-
-	/**
-	 * Construct an iterable containing the nodes of a graph 
-	 * with the specified roots and mister rogers.
-	 */
-	public GraphIterable(Iterable<? extends E> roots, GraphIterator.MisterRogers<E> misterRogers) {
-		super();
-		this.roots = roots;
-		this.misterRogers = misterRogers;
-	}
-
-	public Iterator<E> iterator() {
-		return new GraphIterator<E>(this.roots, this.misterRogers);
-	}
-
-	/**
-	 * Return the immediate neighbors of the specified object.
-	 * <p>
-	 * This method can be overridden by a subclass as an
-	 * alternative to building a <code>GraphIterator.MisterRogers</code>.
-	 */
-	protected Iterator<? extends E> neighbors(@SuppressWarnings("unused") E next) {
-		// GraphIterable.neighbors(Object) was not overridden
-		throw new UnsupportedOperationException();
-	}
-
-	@Override
-	public String toString() {
-		return StringTools.buildToStringFor(this, this.roots);
-	}
-
-
-	//********** default Mr. Rogers **********
-
-	class DefaultMisterRogers implements GraphIterator.MisterRogers<E> {
-		public Iterator<? extends E> neighbors(E node) {
-			return GraphIterable.this.neighbors(node);
-		}
-	}
-
-}
diff --git a/jpa/plugins/org.eclipse.jpt.utility/src/org/eclipse/jpt/utility/internal/iterables/ReadOnlyIterable.java b/jpa/plugins/org.eclipse.jpt.utility/src/org/eclipse/jpt/utility/internal/iterables/ReadOnlyIterable.java
deleted file mode 100644
index 3745535..0000000
--- a/jpa/plugins/org.eclipse.jpt.utility/src/org/eclipse/jpt/utility/internal/iterables/ReadOnlyIterable.java
+++ /dev/null
@@ -1,47 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.utility.internal.iterables;
-
-import java.util.Iterator;
-
-import org.eclipse.jpt.utility.internal.StringTools;
-import org.eclipse.jpt.utility.internal.iterators.ReadOnlyIterator;
-
-/**
- * A <code>ReadOnlyIterable</code> wraps another <code>Iterable</code>
- * and returns a read-only <code>Iterator</code>.
- * 
- * @see ReadOnlyIterator
- */
-public class ReadOnlyIterable<E>
-	implements Iterable<E>
-{
-	private final Iterable<? extends E> iterable;
-
-
-	/**
-	 * Construct an iterable the returns a read-only iterator on the elements
-	 * in the specified iterable.
-	 */
-	public ReadOnlyIterable(Iterable<? extends E> iterable) {
-		super();
-		this.iterable = iterable;
-	}
-
-	public Iterator<E> iterator() {
-		return new ReadOnlyIterator<E>(this.iterable);
-	}
-
-	@Override
-	public String toString() {
-		return StringTools.buildToStringFor(this, this.iterable);
-	}
-
-}
diff --git a/jpa/plugins/org.eclipse.jpt.utility/src/org/eclipse/jpt/utility/internal/iterables/SingleElementIterable.java b/jpa/plugins/org.eclipse.jpt.utility/src/org/eclipse/jpt/utility/internal/iterables/SingleElementIterable.java
deleted file mode 100644
index 37ff105..0000000
--- a/jpa/plugins/org.eclipse.jpt.utility/src/org/eclipse/jpt/utility/internal/iterables/SingleElementIterable.java
+++ /dev/null
@@ -1,52 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.utility.internal.iterables;
-
-import java.util.Iterator;
-
-import org.eclipse.jpt.utility.internal.StringTools;
-import org.eclipse.jpt.utility.internal.iterators.SingleElementIterator;
-
-/**
- * A <code>SingleElementIterable</code> returns an <code>Iterator</code>
- * that holds a single element
- * and returns it with the first call to <code>next()</code>, at
- * which point it will return <code>false</code> to any subsequent
- * call to <code>hasNext()</code>.
- * <p>
- * A <code>SingleElementIterable</code> is equivalent to the
- * <code>Iterable</code> returned by:
- * 	<code>java.util.Collections.singleton(element)</code>
- * 
- * @see SingleElementIterator
- */
-public class SingleElementIterable<E>
-	implements Iterable<E>
-{
-	private final E element;
-
-	/**
-	 * Construct an iterable that contains only the specified element.
-	 */
-	public SingleElementIterable(E element) {
-		super();
-		this.element = element;
-	}
-
-	public Iterator<E> iterator() {
-		return new SingleElementIterator<E>(this.element);
-	}
-
-	@Override
-	public String toString() {
-		return StringTools.buildToStringFor(this, this.element);
-	}
-
-}
diff --git a/jpa/plugins/org.eclipse.jpt.utility/src/org/eclipse/jpt/utility/internal/iterables/TransformationIterable.java b/jpa/plugins/org.eclipse.jpt.utility/src/org/eclipse/jpt/utility/internal/iterables/TransformationIterable.java
deleted file mode 100644
index 73850a5..0000000
--- a/jpa/plugins/org.eclipse.jpt.utility/src/org/eclipse/jpt/utility/internal/iterables/TransformationIterable.java
+++ /dev/null
@@ -1,84 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.utility.internal.iterables;
-
-import java.util.Iterator;
-
-import org.eclipse.jpt.utility.internal.StringTools;
-import org.eclipse.jpt.utility.internal.Transformer;
-import org.eclipse.jpt.utility.internal.iterators.TransformationIterator;
-
-/**
- * A <code>TransformationIterable</code> wraps another <code>Iterable</code>
- * and transforms its elements for client consumption. To use, supply a 
- * <code>Transformer</code> or subclass <code>TransformationIterable</code>
- * and override the <code>transform(Object)</code> method.
- * Objects of type E1 are transformed into objects of type E2;
- * i.e. the iterable's iterator returns objects of type E2.
- * 
- * @see TransformationIterator
- */
-public class TransformationIterable<E1, E2>
-	implements Iterable<E2>
-{
-	private final Iterable<? extends E1> iterable;
-	private final Transformer<E1, ? extends E2> transformer;
-
-
-	/**
-	 * Construct an iterable with the specified nested iterable
-	 * and a default transformer that calls back to the iterable.
-	 * Use this constructor if you want to override the
-	 * <code>transform(Object)</code> method instead of building
-	 * a <code>Transformer</code>.
-	 */
-	public TransformationIterable(Iterable<? extends E1> iterable) {
-		super();
-		this.iterable = iterable;
-		this.transformer = new DefaultTransformer();
-	}
-
-	/**
-	 * Construct an iterable with the specified nested iterable
-	 * and transformer.
-	 */
-	public TransformationIterable(Iterable<? extends E1> iterable, Transformer<E1, ? extends E2> transformer) {
-		super();
-		this.iterable = iterable;
-		this.transformer = transformer;
-	}
-
-	public Iterator<E2> iterator() {
-		return new TransformationIterator<E1, E2>(this.iterable.iterator(), this.transformer);
-	}
-
-	/**
-	 * Transform the specified object and return the result.
-	 */
-	protected E2 transform(@SuppressWarnings("unused") E1 o) {
-		// TransformationIterable.transform(Object) was not overridden
-		throw new UnsupportedOperationException();
-	}
-
-	@Override
-	public String toString() {
-		return StringTools.buildToStringFor(this, this.iterable);
-	}
-
-
-	//********** default linker **********
-
-	class DefaultTransformer implements Transformer<E1, E2> {
-		public E2 transform(E1 o) {
-			return TransformationIterable.this.transform(o);
-		}
-	}
-
-}
diff --git a/jpa/plugins/org.eclipse.jpt.utility/src/org/eclipse/jpt/utility/internal/iterables/TreeIterable.java b/jpa/plugins/org.eclipse.jpt.utility/src/org/eclipse/jpt/utility/internal/iterables/TreeIterable.java
deleted file mode 100644
index 3765140..0000000
--- a/jpa/plugins/org.eclipse.jpt.utility/src/org/eclipse/jpt/utility/internal/iterables/TreeIterable.java
+++ /dev/null
@@ -1,134 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.utility.internal.iterables;
-
-import java.util.Arrays;
-import java.util.Iterator;
-
-import org.eclipse.jpt.utility.internal.StringTools;
-import org.eclipse.jpt.utility.internal.iterators.TreeIterator;
-
-/**
- * A <code>TreeIterable</code> simplifies the traversal of a
- * tree of objects, where the objects' protocol(s) provides
- * a method for getting the immediate children of the given
- * node but does not provide a method for getting all the
- * descendants (children, grandchildren, etc.) of the given node.
- * <p>
- * To use, supply:<ul>
- * <li> either the root element of the tree or, if the tree has
- * multiple roots, an <code>Iterable</code> of the set of roots
- * <li> a <code>Midwife</code> that delivers the children
- * of each child
- * (alternatively, subclass <code>TreeIterable</code>
- * and override the <code>children(Object)</code> method)
- * </ul>
- * <p>
- * 
- * @see TreeIterator
- */
-public class TreeIterable<E>
-	implements Iterable<E>
-{
-	private final Iterable<? extends E> roots;
-	private final TreeIterator.Midwife<E> midwife;
-
-
-	/**
-	 * Construct an iterable containing the nodes of a tree with the specified root
-	 * and a default midwife that calls back to the iterable.
-	 * Use this constructor if you want to override the
-	 * <code>children(Object)</code> method instead of building
-	 * a <code>TreeIterator.Midwife</code>.
-	 */
-	public TreeIterable(E root) {
-		this(new SingleElementIterable<E>(root));
-	}
-
-	/**
-	 * Construct an iterable containing the nodes of a tree with the specified root
-	 * and midwife.
-	 */
-	public TreeIterable(E root, TreeIterator.Midwife<E> midwife) {
-		this(new SingleElementIterable<E>(root), midwife);
-	}
-
-	/**
-	 * Construct an iterable containing the nodes of a tree with the specified roots
-	 * and a default midwife that calls back to the iterable.
-	 * Use this constructor if you want to override the
-	 * <code>children(Object)</code> method instead of building
-	 * a <code>TreeIterator.Midwife</code>.
-	 */
-	public TreeIterable(E... roots) {
-		this(Arrays.asList(roots));
-	}
-
-	/**
-	 * Construct an iterable containing the nodes of a tree with the specified roots
-	 * and midwife.
-	 */
-	public TreeIterable(E[] roots, TreeIterator.Midwife<E> midwife) {
-		this(Arrays.asList(roots), midwife);
-	}
-
-	/**
-	 * Construct an iterable containing the nodes of a tree with the specified roots
-	 * and a default midwife that calls back to the iterable.
-	 * Use this constructor if you want to override the
-	 * <code>children(Object)</code> method instead of building
-	 * a <code>TreeIterator.Midwife</code>.
-	 */
-	public TreeIterable(Iterable<? extends E> roots) {
-		super();
-		this.roots = roots;
-		this.midwife = new DefaultMidwife();
-	}
-
-	/**
-	 * Construct an iterable containing the nodes of a tree with the specified roots
-	 * and midwife.
-	 */
-	public TreeIterable(Iterable<? extends E> roots, TreeIterator.Midwife<E> midwife) {
-		super();
-		this.roots = roots;
-		this.midwife = midwife;
-	}
-
-	public Iterator<E> iterator() {
-		return new TreeIterator<E>(this.roots, this.midwife);
-	}
-
-	/**
-	 * Return the immediate children of the specified object.
-	 * <p>
-	 * This method can be overridden by a subclass as an
-	 * alternative to building a <code>TreeIterator.Midwife</code>.
-	 */
-	protected Iterator<? extends E> children(@SuppressWarnings("unused") E next) {
-		// TreeIterable.children(Object) was not overridden
-		throw new UnsupportedOperationException();
-	}
-
-	@Override
-	public String toString() {
-		return StringTools.buildToStringFor(this, this.roots);
-	}
-
-
-	//********** default midwife **********
-
-	class DefaultMidwife implements TreeIterator.Midwife<E> {
-		public Iterator<? extends E> children(E node) {
-			return TreeIterable.this.children(node);
-		}
-	}
-
-}
diff --git a/jpa/plugins/org.eclipse.jpt.utility/src/org/eclipse/jpt/utility/internal/iterators/ArrayIterator.java b/jpa/plugins/org.eclipse.jpt.utility/src/org/eclipse/jpt/utility/internal/iterators/ArrayIterator.java
deleted file mode 100644
index 9e6aa34..0000000
--- a/jpa/plugins/org.eclipse.jpt.utility/src/org/eclipse/jpt/utility/internal/iterators/ArrayIterator.java
+++ /dev/null
@@ -1,75 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005, 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.utility.internal.iterators;
-
-import java.util.Arrays;
-import java.util.Iterator;
-import java.util.NoSuchElementException;
-
-import org.eclipse.jpt.utility.internal.StringTools;
-
-/**
- * An <code>ArrayIterator</code> provides an <code>Iterator</code>
- * for an array of objects of type E.
- */
-public class ArrayIterator<E>
-	implements Iterator<E>
-{
-	final E[] array;	// private-protected
-	int nextIndex;		// private-protected
-	private final int maxIndex;
-
-
-	/**
-	 * Construct an iterator for the specified array.
-	 */
-	public ArrayIterator(E... array) {
-		this(array, 0, array.length);
-	}
-
-	/**
-	 * Construct an iterator for the specified array,
-	 * starting at the specified start index and continuing for
-	 * the specified length.
-	 */
-	public ArrayIterator(E[] array, int start, int length) {
-		super();
-		if ((start < 0) || (start > array.length)) {
-			throw new IllegalArgumentException("start: " + start); //$NON-NLS-1$
-		}
-		if ((length < 0) || (length > array.length - start)) {
-			throw new IllegalArgumentException("length: " + length); //$NON-NLS-1$
-		}
-		this.array = array;
-		this.nextIndex = start;
-		this.maxIndex = start + length;
-	}
-
-	public boolean hasNext() {
-		return this.nextIndex < this.maxIndex;
-	}
-
-	public E next() {
-		if (this.hasNext()) {
-			return this.array[this.nextIndex++];
-		}
-		throw new NoSuchElementException();
-	}
-
-	public void remove() {
-		throw new UnsupportedOperationException();
-	}
-
-	@Override
-	public String toString() {
-		return StringTools.buildToStringFor(this, Arrays.toString(this.array));
-	}
-
-}
diff --git a/jpa/plugins/org.eclipse.jpt.utility/src/org/eclipse/jpt/utility/internal/iterators/ArrayListIterator.java b/jpa/plugins/org.eclipse.jpt.utility/src/org/eclipse/jpt/utility/internal/iterators/ArrayListIterator.java
deleted file mode 100644
index 5ed1362..0000000
--- a/jpa/plugins/org.eclipse.jpt.utility/src/org/eclipse/jpt/utility/internal/iterators/ArrayListIterator.java
+++ /dev/null
@@ -1,79 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005, 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.utility.internal.iterators;
-
-import java.util.ListIterator;
-import java.util.NoSuchElementException;
-
-/**
- * An <code>ArrayListIterator</code> provides a <code>ListIterator</code>
- * for an array of objects.
- * 
- * The name might be a bit confusing:
- * This is a <code>ListIterator</code> for an <code>Array</code>;
- * <em>not</em> an <code>Iterator</code> for an <code>ArrayList</code>.
- */
-public class ArrayListIterator<E>
-	extends ArrayIterator<E>
-	implements ListIterator<E>
-{
-	private final int minIndex;
-
-
-	/**
-	 * Construct a list iterator for the specified array.
-	 */
-	public ArrayListIterator(E... array) {
-		this(array, 0, array.length);
-	}
-	
-	/**
-	 * Construct a list iterator for the specified array,
-	 * starting at the specified start index and continuing for
-	 * the specified length.
-	 */
-	public ArrayListIterator(E[] array, int start, int length) {
-		super(array, start, length);
-		this.minIndex = start;
-	}
-	
-	public int nextIndex() {
-		return this.nextIndex;
-	}
-	
-	public int previousIndex() {
-		return this.nextIndex - 1;
-	}
-	
-	public boolean hasPrevious() {
-		return this.nextIndex > this.minIndex;
-	}
-	
-	public E previous() {
-		if (this.hasPrevious()) {
-			return this.array[--this.nextIndex];
-		}
-		throw new NoSuchElementException();
-	}
-	
-	public void add(E e) {
-		throw new UnsupportedOperationException();
-	}
-	
-	public void set(E e) {
-		throw new UnsupportedOperationException();
-	}
-	
-	@Override
-	public String toString() {
-		return super.toString();
-	}
-	
-}
diff --git a/jpa/plugins/org.eclipse.jpt.utility/src/org/eclipse/jpt/utility/internal/iterators/ChainIterator.java b/jpa/plugins/org.eclipse.jpt.utility/src/org/eclipse/jpt/utility/internal/iterators/ChainIterator.java
deleted file mode 100644
index 1a23634..0000000
--- a/jpa/plugins/org.eclipse.jpt.utility/src/org/eclipse/jpt/utility/internal/iterators/ChainIterator.java
+++ /dev/null
@@ -1,145 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005, 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.utility.internal.iterators;
-
-import java.util.Iterator;
-import java.util.NoSuchElementException;
-import org.eclipse.jpt.utility.internal.StringTools;
-
-/**
- * A <code>ChainIterator</code> provides a pluggable <code>Iterator</code>
- * that loops over a chain of arbitrarily linked objects. The chain
- * should be null-terminated (i.e. a call to the <code>nextLink(Object)</code>
- * method should return <code>null</code> when it is passed the last
- * link of the chain).
- * To use, supply a starting link and supply a <code>Linker</code> or 
- * subclass <code>ChainIterator</code> and override the
- * <code>nextLink(Object)</code> method.
- * The starting link will be the first object returned by the iterator.
- * If the starting link is <code>null</code>, the iterator will be empty.
- * Note this iterator does not support <code>null</code> elements.
- */
-public class ChainIterator<E>
-	implements Iterator<E>
-{
-	private E nextLink;
-	private final Linker<E> linker;
-
-
-	/**
-	 * Construct an iterator with the specified starting link
-	 * and a disabled linker.
-	 * Use this constructor if you want to override the
-	 * <code>nextLink(Object)</code> method instead of building
-	 * a <code>Linker</code>.
-	 */
-	public ChainIterator(E startLink) {
-		this(startLink, Linker.Disabled.<E>instance());
-	}
-
-	/**
-	 * Construct an iterator with the specified starting link
-	 * and linker.
-	 */
-	public ChainIterator(E startLink, Linker<E> linker) {
-		super();
-		this.nextLink = startLink;
-		this.linker = linker;
-	}
-
-	public boolean hasNext() {
-		return this.nextLink != null;
-	}
-
-	public E next() {
-		if (this.nextLink == null) {
-			throw new NoSuchElementException();
-		}
-		E result = this.nextLink;
-		this.nextLink = this.nextLink(this.nextLink);
-		return result;
-	}
-
-	public void remove() {
-		throw new UnsupportedOperationException();
-	}
-
-	/**
-	 * Return the next link in the chain; null if there are no more links.
-	 */
-	protected E nextLink(E currentLink) {
-		return this.linker.nextLink(currentLink);
-	}
-
-	@Override
-	public String toString() {
-		return StringTools.buildToStringFor(this, this.nextLink);
-	}
-
-
-	//********** member interface **********
-
-	/**
-	 * Used by <code>ChainIterator</code> to link
-	 * the elements in the chain.
-	 */
-	public interface Linker<T> {
-
-		/**
-		 * Return the next link in the chain; null if there are no more links.
-		 */
-		T nextLink(T currentLink);
-
-
-		final class Null<S> implements Linker<S> {
-			@SuppressWarnings("unchecked")
-			public static final Linker INSTANCE = new Null();
-			@SuppressWarnings("unchecked")
-			public static <R> Linker<R> instance() {
-				return INSTANCE;
-			}
-			// ensure single instance
-			private Null() {
-				super();
-			}
-			// simply return null, indicating the chain is ended
-			public S nextLink(S currentLink) {
-				return null;
-			}
-			@Override
-			public String toString() {
-				return "ChainIterator.Linker.Null"; //$NON-NLS-1$
-			}
-		}
-
-		final class Disabled<S> implements Linker<S> {
-			@SuppressWarnings("unchecked")
-			public static final Linker INSTANCE = new Disabled();
-			@SuppressWarnings("unchecked")
-			public static <R> Linker<R> instance() {
-				return INSTANCE;
-			}
-			// ensure single instance
-			private Disabled() {
-				super();
-			}
-			// throw an exception
-			public S nextLink(S currentLink) {
-				throw new UnsupportedOperationException();  // ChainIterator.nextLink(Object) was not implemented
-			}
-			@Override
-			public String toString() {
-				return "ChainIterator.Linker.Disabled"; //$NON-NLS-1$
-			}
-		}
-
-	}
-
-}
diff --git a/jpa/plugins/org.eclipse.jpt.utility/src/org/eclipse/jpt/utility/internal/iterators/CloneIterator.java b/jpa/plugins/org.eclipse.jpt.utility/src/org/eclipse/jpt/utility/internal/iterators/CloneIterator.java
deleted file mode 100644
index 3dfbd73..0000000
--- a/jpa/plugins/org.eclipse.jpt.utility/src/org/eclipse/jpt/utility/internal/iterators/CloneIterator.java
+++ /dev/null
@@ -1,181 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005, 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.utility.internal.iterators;
-
-import java.util.Collection;
-import java.util.Iterator;
-import org.eclipse.jpt.utility.internal.StringTools;
-
-/**
- * A <code>CloneIterator</code> iterates over a copy of a collection,
- * allowing for concurrent access to the original collection.
- * <p>
- * The original collection passed to the <code>CloneIterator</code>'s
- * constructor should be synchronized (e.g. java.util.Vector);
- * otherwise you run the risk of a corrupted collection.
- * <p>
- * By default, a <code>CloneIterator</code> does not support the
- * <code>#remove()</code> operation; this is because it does not have
- * access to the original collection. But if the <code>CloneIterator</code>
- * is supplied with an <code>Mutator</code> it will delegate the
- * <code>#remove()</code> operation to the <code>Mutator</code>.
- * Alternatively, a subclass can override the <code>#remove(Object)</code>
- * method.
- */
-public class CloneIterator<E>
-	implements Iterator<E>
-{
-	private final Iterator<Object> iterator;
-	private E current;
-	private final Mutator<E> mutator;
-	private boolean removeAllowed;
-
-
-	// ********** constructors **********
-
-	/**
-	 * Construct an iterator on a copy of the specified collection.
-	 * The <code>#remove()</code> method will not be supported,
-	 * unless a subclass overrides the <code>#remove(Object)</code>.
-	 */
-	public CloneIterator(Collection<? extends E> collection) {
-		this(collection, Mutator.ReadOnly.<E>instance());
-	}
-
-	/**
-	 * Construct an iterator on a copy of the specified array.
-	 * The <code>#remove()</code> method will not be supported,
-	 * unless a subclass overrides the <code>#remove(Object)</code>.
-	 */
-	public CloneIterator(E[] array) {
-		this(array, Mutator.ReadOnly.<E>instance());
-	}
-
-	/**
-	 * Construct an iterator on a copy of the specified collection.
-	 * Use the specified mutator to remove objects from the
-	 * original collection.
-	 */
-	public CloneIterator(Collection<? extends E> collection, Mutator<E> mutator) {
-		this(mutator, collection.toArray());
-	}
-
-	/**
-	 * Construct an iterator on a copy of the specified array.
-	 * Use the specified mutator to remove objects from the
-	 * original array.
-	 */
-	public CloneIterator(E[] array, Mutator<E> mutator) {
-		this(mutator, array.clone());
-	}
-
-	/**
-	 * Internal constructor used by subclasses.
-	 * Swap order of arguments to prevent collision with other constructor.
-	 * The passed in array will *not* be cloned.
-	 */
-	protected CloneIterator(Mutator<E> mutator, Object... array) {
-		super();
-		this.iterator = new ArrayIterator<Object>(array);
-		this.current = null;
-		this.mutator = mutator;
-		this.removeAllowed = false;
-	}
-
-
-	// ********** Iterator implementation **********
-
-	public boolean hasNext() {
-		return this.iterator.hasNext();
-	}
-
-	public E next() {
-		this.current = this.nestedNext();
-		this.removeAllowed = true;
-		return this.current;
-	}
-
-	public void remove() {
-		if ( ! this.removeAllowed) {
-			throw new IllegalStateException();
-		}
-		this.remove(this.current);
-		this.removeAllowed = false;
-	}
-
-
-	// ********** internal methods **********
-
-	/**
-	 * The collection passed in during construction held Es,
-	 * so this cast is not a problem. We need this cast because
-	 * all the elements of the original collection were copied into
-	 * an object array (Object[]).
-	 */
-	@SuppressWarnings("unchecked")
-	protected E nestedNext() {
-		return (E) this.iterator.next();
-	}
-
-	/**
-	 * Remove the specified element from the original collection.
-	 * <p>
-	 * This method can be overridden by a subclass as an
-	 * alternative to building an <code>Mutator</code>.
-	 */
-	protected void remove(E e) {
-		this.mutator.remove(e);
-	}
-
-	@Override
-	public String toString() {
-		return StringTools.buildToStringFor(this);
-	}
-
-
-	//********** member interface **********
-
-	/**
-	 * Used by <code>CloneIterator</code> to remove
-	 * elements from the original collection; since the iterator
-	 * does not have direct access to the original collection.
-	 */
-	public interface Mutator<T> {
-
-		/**
-		 * Remove the specified object from the original collection.
-		 */
-		void remove(T current);
-
-
-		final class ReadOnly<S> implements Mutator<S> {
-			@SuppressWarnings("unchecked")
-			public static final Mutator INSTANCE = new ReadOnly();
-			@SuppressWarnings("unchecked")
-			public static <R> Mutator<R> instance() {
-				return INSTANCE;
-			}
-			// ensure single instance
-			private ReadOnly() {
-				super();
-			}
-			// remove is not supported
-			public void remove(Object current) {
-				throw new UnsupportedOperationException();
-			}
-			@Override
-			public String toString() {
-				return "CloneIterator.Mutator.ReadOnly"; //$NON-NLS-1$
-			}
-		}
-
-	}
-
-}
diff --git a/jpa/plugins/org.eclipse.jpt.utility/src/org/eclipse/jpt/utility/internal/iterators/CloneListIterator.java b/jpa/plugins/org.eclipse.jpt.utility/src/org/eclipse/jpt/utility/internal/iterators/CloneListIterator.java
deleted file mode 100644
index 34e83d3..0000000
--- a/jpa/plugins/org.eclipse.jpt.utility/src/org/eclipse/jpt/utility/internal/iterators/CloneListIterator.java
+++ /dev/null
@@ -1,281 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005, 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.utility.internal.iterators;
-
-import java.util.List;
-import java.util.ListIterator;
-import org.eclipse.jpt.utility.internal.CollectionTools;
-import org.eclipse.jpt.utility.internal.StringTools;
-
-/**
- * A <code>CloneListIterator</code> iterates over a copy of a list,
- * allowing for concurrent access to the original list.
- * <p>
- * The original list passed to the <code>CloneListIterator</code>'s
- * constructor should be synchronized; otherwise you run the risk of
- * a corrupted list.
- * <p>
- * By default, a <code>CloneListIterator</code> does not support the
- * modification operations; this is because it does not have
- * access to the original list. But if the <code>CloneListIterator</code>
- * is supplied with a <code>Mutator</code> it will delegate the
- * modification operations to the <code>Mutator</code>.
- * Alternatively, a subclass can override the modification methods.
- */
-public class CloneListIterator<E>
-	implements ListIterator<E>
-{
-	private final ListIterator<Object> listIterator;
-	private int cursor;
-	private State state;
-	private final Mutator<E> mutator;
-
-	private enum State {
-		UNKNOWN,
-		PREVIOUS,
-		NEXT
-	}
-
-
-	// ********** constructors **********
-
-	/**
-	 * Construct a list iterator on a copy of the specified list.
-	 * The modification methods will not be supported,
-	 * unless a subclass overrides them.
-	 */
-	public CloneListIterator(List<? extends E> list) {
-		this(list, Mutator.ReadOnly.<E>instance());
-	}
-
-	/**
-	 * Construct a list iterator on a copy of the specified array.
-	 * The modification methods will not be supported,
-	 * unless a subclass overrides them.
-	 */
-	public CloneListIterator(E[] array) {
-		this(array, Mutator.ReadOnly.<E>instance());
-	}
-
-	/**
-	 * Construct a list iterator on a copy of the specified list.
-	 * Use the specified list mutator to modify the original list.
-	 */
-	public CloneListIterator(List<? extends E> list, Mutator<E> mutator) {
-		this(mutator, list.toArray());
-	}
-
-	/**
-	 * Construct a list iterator on a copy of the specified array.
-	 * Use the specified list mutator to modify the original list.
-	 */
-	public CloneListIterator(E[] array, Mutator<E> mutator) {
-		this(mutator, array.clone());
-	}
-
-	/**
-	 * Internal constructor used by subclasses.
-	 * Swap order of arguments to prevent collision with other constructor.
-	 * The passed in array will *not* be cloned.
-	 */
-	protected CloneListIterator(Mutator<E> mutator, Object... array) {
-		super();
-		// build a copy of the list and keep it in synch with original (if the mutator allows changes)
-		// that way the nested list iterator will maintain some of our state
-		this.listIterator = CollectionTools.list(array).listIterator();
-		this.mutator = mutator;
-		this.cursor = 0;
-		this.state = State.UNKNOWN;
-	}
-
-
-	// ********** ListIterator implementation **********
-
-	public boolean hasNext() {
-		return this.listIterator.hasNext();
-	}
-
-	public E next() {
-		// allow the nested iterator to throw an exception before we modify the index
-		E next = this.nestedNext();
-		this.cursor++;
-		this.state = State.NEXT;
-		return next;
-	}
-
-	public void remove() {
-		// allow the nested iterator to throw an exception before we modify the original list
-		this.listIterator.remove();
-		if (this.state == State.PREVIOUS) {
-			this.remove(this.cursor);
-		} else {
-			this.cursor--;
-			this.remove(this.cursor);
-		}
-	}
-
-	public int nextIndex() {
-		return this.listIterator.nextIndex();
-	}
-
-	public int previousIndex() {
-		return this.listIterator.previousIndex();
-	}
-
-	public boolean hasPrevious() {
-		return this.listIterator.hasPrevious();
-	}
-
-	public E previous() {
-		// allow the nested iterator to throw an exception before we modify the index
-		E previous = this.nestedPrevious();
-		this.cursor--;
-		this.state = State.PREVIOUS;
-		return previous;
-	}
-
-	public void add(E o) {
-		// allow the nested iterator to throw an exception before we modify the original list
-		this.listIterator.add(o);
-		this.add(this.cursor, o);
-		this.cursor++;
-	}
-
-	public void set(E o) {
-		// allow the nested iterator to throw an exception before we modify the original list
-		this.listIterator.set(o);
-		if (this.state == State.PREVIOUS) {
-			this.set(this.cursor, o);
-		} else {
-			this.set(this.cursor - 1, o);
-		}
-	}
-
-
-	// ********** internal methods **********
-
-	/**
-	 * The list passed in during construction held Es,
-	 * so this cast is not a problem. We need this cast because
-	 * all the elements of the original collection were copied into
-	 * an object array (Object[]).
-	 */
-	@SuppressWarnings("unchecked")
-	protected E nestedNext() {
-		return (E) this.listIterator.next();
-	}
-
-	/**
-	 * The list passed in during construction held Es,
-	 * so this cast is not a problem. We need this cast because
-	 * all the elements of the original collection were copied into
-	 * an object array (Object[]).
-	 */
-	@SuppressWarnings("unchecked")
-	protected E nestedPrevious() {
-		return (E) this.listIterator.previous();
-	}
-
-	/**
-	 * Add the specified element to the original list.
-	 * <p>
-	 * This method can be overridden by a subclass as an
-	 * alternative to building a <code>Mutator</code>.
-	 */
-	protected void add(int index, E o) {
-		this.mutator.add(index, o);
-	}
-
-	/**
-	 * Remove the specified element from the original list.
-	 * <p>
-	 * This method can be overridden by a subclass as an
-	 * alternative to building a <code>Mutator</code>.
-	 */
-	protected void remove(int index) {
-		this.mutator.remove(index);
-	}
-
-	/**
-	 * Set the specified element in the original list.
-	 * <p>
-	 * This method can be overridden by a subclass as an
-	 * alternative to building a <code>Mutator</code>.
-	 */
-	protected void set(int index, E o) {
-		this.mutator.set(index, o);
-	}
-
-
-	// ********** overrides **********
-
-	@Override
-	public String toString() {
-		return StringTools.buildToStringFor(this);
-	}
-
-
-	//********** member interface **********
-
-	/**
-	 * Used by <code>CloneListIterator</code> to remove
-	 * elements from the original list; since the list iterator
-	 * does not have direct access to the original list.
-	 */
-	public interface Mutator<T> {
-
-		/**
-		 * Add the specified object to the original list.
-		 */
-		void add(int index, T o);
-
-		/**
-		 * Remove the specified object from the original list.
-		 */
-		void remove(int index);
-
-		/**
-		 * Set the specified object in the original list.
-		 */
-		void set(int index, T o);
-
-
-		final class ReadOnly<S> implements Mutator<S> {
-			@SuppressWarnings("unchecked")
-			public static final Mutator INSTANCE = new ReadOnly();
-			@SuppressWarnings("unchecked")
-			public static <R> Mutator<R> instance() {
-				return INSTANCE;
-			}
-			// ensure single instance
-			private ReadOnly() {
-				super();
-			}
-			// add is not supported
-			public void add(int index, Object o) {
-				throw new UnsupportedOperationException();
-			}
-			// remove is not supported
-			public void remove(int index) {
-				throw new UnsupportedOperationException();
-			}
-			// set is not supported
-			public void set(int index, Object o) {
-				throw new UnsupportedOperationException();
-			}
-			@Override
-			public String toString() {
-				return "CloneListIterator.Mutator.ReadOnly"; //$NON-NLS-1$
-			}
-		}
-
-	}
-
-}
diff --git a/jpa/plugins/org.eclipse.jpt.utility/src/org/eclipse/jpt/utility/internal/iterators/CompositeIterator.java b/jpa/plugins/org.eclipse.jpt.utility/src/org/eclipse/jpt/utility/internal/iterators/CompositeIterator.java
deleted file mode 100644
index 55cd1c9..0000000
--- a/jpa/plugins/org.eclipse.jpt.utility/src/org/eclipse/jpt/utility/internal/iterators/CompositeIterator.java
+++ /dev/null
@@ -1,158 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005, 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.utility.internal.iterators;
-
-import java.util.Iterator;
-import java.util.NoSuchElementException;
-
-import org.eclipse.jpt.utility.internal.StringTools;
-import org.eclipse.jpt.utility.internal.iterables.ArrayIterable;
-
-/**
- * A <code>CompositeIterator</code> wraps a collection
- * of <code>Iterator</code>s and makes them appear to be a single
- * <code>Iterator</code>.
- */
-public class CompositeIterator<E>
-	implements Iterator<E>
-{
-	private final Iterator<? extends Iterator<? extends E>> iterators;
-	private Iterator<? extends E> currentIterator;
-	private Iterator<? extends E> lastIteratorToReturnNext;
-
-
-	// ********** constructors **********
-
-	/**
-	 * Construct an iterator that returns all the elements held by the
-	 * specified iterables.
-	 */
-	public CompositeIterator(Iterable<? extends Iterable<? extends E>> iterables) {
-		this(
-			new TransformationIterator<Iterable<? extends E>, Iterator<? extends E>>(iterables.iterator()) {
-				@Override
-				protected Iterator<? extends E> transform(Iterable<? extends E> iterable) {
-					return iterable.iterator();
-				}
-			}
-		);
-	}
-
-	/**
-	 * Construct an iterator with the specified collection of iterators.
-	 */
-	public CompositeIterator(Iterator<? extends Iterator<? extends E>> iterators) {
-		super();
-		this.iterators = iterators;
-	}
-
-	/**
-	 * Construct an iterator with the specified object prepended
-	 * to the specified iterable.
-	 */
-	public CompositeIterator(E object, Iterable<? extends E> iterable) {
-		this(object, iterable.iterator());
-	}
-
-	/**
-	 * Construct an iterator with the specified object prepended
-	 * to the specified iterator.
-	 */
-	@SuppressWarnings("unchecked")
-	public CompositeIterator(E object, Iterator<? extends E> iterator) {
-		this(new SingleElementIterator<E>(object), iterator);
-	}
-
-	/**
-	 * Construct an iterator with the specified object appended
-	 * to the specified iterable.
-	 */
-	public CompositeIterator(Iterable<? extends E> iterable, E object) {
-		this(iterable.iterator(), object);
-	}
-
-	/**
-	 * Construct an iterator with the specified object appended
-	 * to the specified iterator.
-	 */
-	@SuppressWarnings("unchecked")
-	public CompositeIterator(Iterator<? extends E> iterator, E object) {
-		this(iterator, new SingleElementIterator<E>(object));
-	}
-
-	/**
-	 * Construct an iterator with the specified iterables.
-	 */
-	public CompositeIterator(Iterable<? extends E>... iterables) {
-		this(new ArrayIterable<Iterable<? extends E>>(iterables));
-	}
-
-	/**
-	 * Construct an iterator with the specified iterators.
-	 */
-	public CompositeIterator(Iterator<? extends E>... iterators) {
-		this(new ArrayIterator<Iterator<? extends E>>(iterators));
-	}
-
-
-	// ********** Iterator implementation **********
-
-	public boolean hasNext() {
-		try {
-			this.loadCurrentIterator();
-		} catch (NoSuchElementException ex) {
-			// this occurs if there are no iterators at all
-			return false;
-		}
-		return this.currentIterator.hasNext();
-	}
-
-	public E next() {
-		this.loadCurrentIterator();
-		E result = this.currentIterator.next();
-
-		// the statement above will throw a NoSuchElementException
-		// if the current iterator is at the end of the line;
-		// so if we get here, we can set 'lastIteratorToReturnNext'
-		this.lastIteratorToReturnNext = this.currentIterator;
-
-		return result;
-	}
-
-	public void remove() {
-		if (this.lastIteratorToReturnNext == null) {
-			// CompositeIterator#next() has never been called
-			throw new IllegalStateException();
-		}
-		this.lastIteratorToReturnNext.remove();
-	}
-
-	/**
-	 * Load currentIterator with the first iterator that <code>hasNext()</code>
-	 * or the final iterator if all the elements have already been retrieved.
-	 */
-	private void loadCurrentIterator() {
-		if (this.currentIterator == null) {
-			this.currentIterator = this.iterators.next();
-		}
-		while (( ! this.currentIterator.hasNext()) && this.iterators.hasNext()) {
-			this.currentIterator = this.iterators.next();
-		}
-	}
-
-
-	// ********** overrides **********
-
-	@Override
-	public String toString() {
-		return StringTools.buildToStringFor(this, this.iterators);
-	}
-
-}
diff --git a/jpa/plugins/org.eclipse.jpt.utility/src/org/eclipse/jpt/utility/internal/iterators/CompositeListIterator.java b/jpa/plugins/org.eclipse.jpt.utility/src/org/eclipse/jpt/utility/internal/iterators/CompositeListIterator.java
deleted file mode 100644
index 5efb311..0000000
--- a/jpa/plugins/org.eclipse.jpt.utility/src/org/eclipse/jpt/utility/internal/iterators/CompositeListIterator.java
+++ /dev/null
@@ -1,226 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005, 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.utility.internal.iterators;
-
-import java.util.Arrays;
-import java.util.List;
-import java.util.ListIterator;
-import java.util.NoSuchElementException;
-
-import org.eclipse.jpt.utility.internal.StringTools;
-
-/**
- * A <code>CompositeListIterator</code> wraps a list
- * of <code>ListIterator</code>s and makes them appear to be a single
- * <code>ListIterator</code>.
- */
-public class CompositeListIterator<E>
-	implements ListIterator<E>
-{
-	private final ListIterator<? extends ListIterator<E>> iterators;
-	private ListIterator<E> nextIterator;
-	private int nextIndex;
- 	/**
- 	 * true if "next" was last returned; false if "previous" was last returned;
- 	 * this determines the effect of remove(Object) on nextIndex
- 	 */
-	private boolean nextReturned;
-	private ListIterator<E> lastIteratorToReturnElement;
-
-
-	/**
-	 * Construct a list iterator on the elements in the specified list of lists.
-	 */
-	public CompositeListIterator(List<? extends List<E>> lists) {
-		this(
-			new TransformationListIterator<List<E>, ListIterator<E>>(lists.listIterator()) {
-				@Override
-				protected ListIterator<E> transform(List<E> list) {
-					return list.listIterator();
-				}
-			}
-		);
-	}
-
-	/**
-	 * Construct a list iterator with the specified list of list iterators.
-	 */
-	public CompositeListIterator(ListIterator<? extends ListIterator<E>> iterators) {
-		super();
-		this.iterators = iterators;
-		this.nextIndex = 0;
-		this.nextReturned = false;
-	}
-
-	/**
-	 * Construct a list iterator with the specified object prepended
-	 * to the specified list.
-	 */
-	public CompositeListIterator(E object, List<E> list) {
-		this(object, list.listIterator());
-	}
-
-	/**
-	 * Construct a list iterator with the specified object prepended
-	 * to the specified iterator.
-	 */
-	@SuppressWarnings("unchecked")
-	public CompositeListIterator(E object, ListIterator<E> iterator) {
-		this(new SingleElementListIterator<E>(object), iterator);
-	}
-
-	/**
-	 * Construct a list iterator with the specified object appended
-	 * to the specified list.
-	 */
-	public CompositeListIterator(List<E> list, E object) {
-		this(list.listIterator(), object);
-	}
-
-	/**
-	 * Construct a list iterator with the specified object appended
-	 * to the specified iterator.
-	 */
-	@SuppressWarnings("unchecked")
-	public CompositeListIterator(ListIterator<E> iterator, E object) {
-		this(iterator, new SingleElementListIterator<E>(object));
-	}
-
-	/**
-	 * Construct a list iterator with the specified lists.
-	 */
-	public CompositeListIterator(List<E>... lists) {
-		this(Arrays.asList(lists));
-	}
-
-	/**
-	 * Construct a list iterator with the specified list iterators.
-	 */
-	public CompositeListIterator(ListIterator<E>... iterators) {
-		this(new ArrayListIterator<ListIterator<E>>(iterators));
-	}
-
-	public void add(E o) {
-		this.checkNextIterator();
-		this.nextIterator.add(o);
-		this.nextIndex++;
-	}
-
-	public boolean hasNext() {
-		try {
-			this.loadNextIterator();
-		} catch (NoSuchElementException ex) {
-			// this occurs if there are no iterators at all
-			return false;
-		}
-		return this.nextIterator.hasNext();
-	}
-
-	public boolean hasPrevious() {
-		try {
-			this.loadPreviousIterator();
-		} catch (NoSuchElementException ex) {
-			// this occurs if there are no iterators at all
-			return false;
-		}
-		return this.nextIterator.hasPrevious();
-	}
-
-	public E next() {
-		this.loadNextIterator();
-		E result = this.nextIterator.next();
-
-		// the statement above will throw a NoSuchElementException
-		// if the current iterator is at the end of the line;
-		// so if we get here, we can set the 'lastIteratorToReturnElement'
-		this.lastIteratorToReturnElement = this.nextIterator;
-		this.nextIndex++;
-		this.nextReturned = true;
-
-		return result;
-	}
-
-	public int nextIndex() {
-		return this.nextIndex;
-	}
-
-	public E previous() {
-		this.loadPreviousIterator();
-		E result = this.nextIterator.previous();
-
-		// the statement above will throw a NoSuchElementException
-		// if the current iterator is at the end of the line;
-		// so if we get here, we can set the 'lastIteratorToReturnElement'
-		this.lastIteratorToReturnElement = this.nextIterator;
-		this.nextIndex--;
-		this.nextReturned = false;
-
-		return result;
-	}
-
-	public int previousIndex() {
-		return this.nextIndex  - 1;
-	}
-
-	public void remove() {
-		if (this.lastIteratorToReturnElement == null) {
-			throw new IllegalStateException();
-		}
-		this.lastIteratorToReturnElement.remove();
-		if (this.nextReturned) {
-			// decrement the index because the "next" element has moved forward in the list
-			this.nextIndex--;
-		}
-	}
-
-	public void set(E e) {
-		if (this.lastIteratorToReturnElement == null) {
-			throw new IllegalStateException();
-		}
-		this.lastIteratorToReturnElement.set(e);
-	}
-
-	/**
-	 * Load 'nextIterator' with the first iterator that <code>hasNext()</code>
-	 * or the final iterator if all the elements have already been retrieved.
-	 */
-	private void loadNextIterator() {
-		this.checkNextIterator();
-		while (( ! this.nextIterator.hasNext()) && this.iterators.hasNext()) {
-			this.nextIterator = this.iterators.next();
-		}
-	}
-
-	/**
-	 * Load 'nextIterator' with the first iterator that <code>hasPrevious()</code>
-	 * or the first iterator if all the elements have already been retrieved.
-	 */
-	private void loadPreviousIterator() {
-		this.checkNextIterator();
-		while (( ! this.nextIterator.hasPrevious()) && this.iterators.hasPrevious()) {
-			this.nextIterator = this.iterators.previous();
-		}
-	}
-
-	/**
-	 * If 'nextIterator' is null, load it with the first iterator.
-	 */
-	private void checkNextIterator() {
-		if (this.nextIterator == null) {
-			this.nextIterator = this.iterators.next();
-		}
-	}
-
-	@Override
-	public String toString() {
-		return StringTools.buildToStringFor(this, this.iterators);
-	}
-
-}
diff --git a/jpa/plugins/org.eclipse.jpt.utility/src/org/eclipse/jpt/utility/internal/iterators/EmptyIterator.java b/jpa/plugins/org.eclipse.jpt.utility/src/org/eclipse/jpt/utility/internal/iterators/EmptyIterator.java
deleted file mode 100644
index aacac33..0000000
--- a/jpa/plugins/org.eclipse.jpt.utility/src/org/eclipse/jpt/utility/internal/iterators/EmptyIterator.java
+++ /dev/null
@@ -1,59 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005, 2008 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.utility.internal.iterators;
-
-import java.util.Iterator;
-import java.util.NoSuchElementException;
-import org.eclipse.jpt.utility.internal.StringTools;
-
-/**
- * An <code>EmptyIterator</code> is just that.
- */
-public final class EmptyIterator<E>
-	implements Iterator<E>
-{
-
-	// singleton
-	@SuppressWarnings("unchecked")
-	private static final EmptyIterator INSTANCE = new EmptyIterator();
-
-	/**
-	 * Return the singleton.
-	 */
-	@SuppressWarnings("unchecked")
-	public static <T> Iterator<T> instance() {
-		return INSTANCE;
-	}
-
-	/**
-	 * Ensure single instance.
-	 */
-	private EmptyIterator() {
-		super();
-	}
-
-	public boolean hasNext() {
-		return false;
-	}
-
-	public E next() {
-		throw new NoSuchElementException();
-	}
-
-	public void remove() {
-		throw new UnsupportedOperationException();
-	}
-
-	@Override
-	public String toString() {
-		return StringTools.buildToStringFor(this);
-	}
-
-}
diff --git a/jpa/plugins/org.eclipse.jpt.utility/src/org/eclipse/jpt/utility/internal/iterators/EmptyListIterator.java b/jpa/plugins/org.eclipse.jpt.utility/src/org/eclipse/jpt/utility/internal/iterators/EmptyListIterator.java
deleted file mode 100644
index f3ab4a4..0000000
--- a/jpa/plugins/org.eclipse.jpt.utility/src/org/eclipse/jpt/utility/internal/iterators/EmptyListIterator.java
+++ /dev/null
@@ -1,83 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005, 2008 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.utility.internal.iterators;
-
-import java.util.ListIterator;
-import java.util.NoSuchElementException;
-import org.eclipse.jpt.utility.internal.StringTools;
-
-/**
- * An <code>EmptyListIterator</code> is just that.
- */
-public final class EmptyListIterator<E>
-	implements ListIterator<E>
-{
-
-	// singleton
-	@SuppressWarnings("unchecked")
-	private static final EmptyListIterator INSTANCE = new EmptyListIterator();
-
-	/**
-	 * Return the singleton.
-	 */
-	@SuppressWarnings("unchecked")
-	public static <T> ListIterator<T> instance() {
-		return INSTANCE;
-	}
-
-	/**
-	 * Ensure single instance.
-	 */
-	private EmptyListIterator() {
-		super();
-	}
-	
-	public void add(E e) {
-		throw new UnsupportedOperationException();
-	}
-
-	public boolean hasNext() {
-		return false;
-	}
-
-	public boolean hasPrevious() {
-		return false;
-	}
-
-	public E next() {
-		throw new NoSuchElementException();
-	}
-
-	public int nextIndex() {
-		return 0;
-	}
-
-	public E previous() {
-		throw new NoSuchElementException();
-	}
-
-	public int previousIndex() {
-		return -1;
-	}
-
-	public void remove() {
-		throw new UnsupportedOperationException();
-	}
-
-	public void set(E e) {
-		throw new UnsupportedOperationException();
-	}
-
-	@Override
-	public String toString() {
-		return StringTools.buildToStringFor(this);
-	}
-	
-}
diff --git a/jpa/plugins/org.eclipse.jpt.utility/src/org/eclipse/jpt/utility/internal/iterators/EnumerationIterator.java b/jpa/plugins/org.eclipse.jpt.utility/src/org/eclipse/jpt/utility/internal/iterators/EnumerationIterator.java
deleted file mode 100644
index a75710c..0000000
--- a/jpa/plugins/org.eclipse.jpt.utility/src/org/eclipse/jpt/utility/internal/iterators/EnumerationIterator.java
+++ /dev/null
@@ -1,50 +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.utility.internal.iterators;
-
-import java.util.Enumeration;
-import java.util.Iterator;
-import org.eclipse.jpt.utility.internal.StringTools;
-
-/**
- * An <code>EnumerationIterator</code> wraps an
- * <code>Enumeration</code> so that it can be treated like an
- * <code>Iterator</code>.
- */
-public class EnumerationIterator<E>
-	implements Iterator<E>
-{
-	private final Enumeration<? extends E> enumeration;
-
-	/**
-	 * Construct an iterator that wraps the specified enumeration.
-	 */
-	public EnumerationIterator(Enumeration<? extends E> enumeration) {
-		this.enumeration = enumeration;
-	}
-	
-	public boolean hasNext() {
-		return this.enumeration.hasMoreElements();
-	}
-	
-	public E next() {
-		return this.enumeration.nextElement();
-	}
-	
-	public void remove() {
-		throw new UnsupportedOperationException();
-	}
-	
-	@Override
-	public String toString() {
-		return StringTools.buildToStringFor(this, this.enumeration);
-	}
-	
-}
diff --git a/jpa/plugins/org.eclipse.jpt.utility/src/org/eclipse/jpt/utility/internal/iterators/FilteringIterator.java b/jpa/plugins/org.eclipse.jpt.utility/src/org/eclipse/jpt/utility/internal/iterators/FilteringIterator.java
deleted file mode 100644
index 2ab5121..0000000
--- a/jpa/plugins/org.eclipse.jpt.utility/src/org/eclipse/jpt/utility/internal/iterators/FilteringIterator.java
+++ /dev/null
@@ -1,153 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005, 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.utility.internal.iterators;
-
-import java.util.Iterator;
-import java.util.NoSuchElementException;
-import org.eclipse.jpt.utility.Filter;
-import org.eclipse.jpt.utility.internal.StringTools;
-
-/**
- * A <code>FilteringIterator</code> wraps another <code>Iterator</code>
- * and uses a <code>Filter</code> to determine which elements in the
- * nested iterator are to be returned by calls to <code>next()</code>.
- * <p>
- * As an alternative to building a <code>Filter</code>, a subclass
- * of <code>FilteringIterator</code> can override the
- * <code>accept(Object)</code> method.
- * <p>
- * One, possibly undesirable, side-effect of using this iterator is that
- * the nested iterator's <code>next()</code> method will be invoked
- * <em>before</em> the filtered iterator's <code>next()</code>
- * method is invoked. This is because the "next" element must be
- * checked for whether it is to be accepted before the filtered iterator
- * can determine whether it has a "next" element (i.e. that the
- * <code>hasNext()</code> method should return <code>true</code>).
- * This also prevents a filtered iterator from supporting the optional
- * <code>remove()</code> method.
- */
-public class FilteringIterator<E1, E2>
-	implements Iterator<E2>
-{
-	private final Iterator<? extends E1> iterator;
-	private final Filter<E1> filter;
-	private E2 next;
-	private boolean done;
-
-
-	/**
-	 * Construct an iterator with the specified
-	 * iterable and a disabled filter.
-	 * Use this constructor if you want to override the
-	 * <code>accept(Object)</code> method instead of building
-	 * a <code>Filter</code>.
-	 */
-	public FilteringIterator(Iterable<? extends E1> iterable) {
-		this(iterable.iterator());
-	}
-
-	/**
-	 * Construct an iterator with the specified nested
-	 * iterator and a disabled filter.
-	 * Use this constructor if you want to override the
-	 * <code>accept(Object)</code> method instead of building
-	 * a <code>Filter</code>.
-	 */
-	public FilteringIterator(Iterator<? extends E1> iterator) {
-		this(iterator, Filter.Disabled.<E1>instance());
-	}
-
-	/**
-	 * Construct an iterator with the specified
-	 * iterable and filter.
-	 */
-	public FilteringIterator(Iterable<? extends E1> iterable, Filter<E1> filter) {
-		this(iterable.iterator(), filter);
-	}
-
-	/**
-	 * Construct an iterator with the specified nested
-	 * iterator and filter.
-	 */
-	public FilteringIterator(Iterator<? extends E1> iterator, Filter<E1> filter) {
-		super();
-		this.iterator = iterator;
-		this.filter = filter;
-		this.loadNext();
-	}
-
-	public boolean hasNext() {
-		return ! this.done;
-	}
-
-	public E2 next() {
-		if (this.done) {
-			throw new NoSuchElementException();
-		}
-		E2 result = this.next;
-		this.loadNext();
-		return result;
-	}
-
-	/**
-	 * Because we need to pre-load the next element
-	 * to be returned, we cannot support the <code>remove()</code>
-	 * method.
-	 */
-	public void remove() {
-		throw new UnsupportedOperationException();
-	}
-
-	/**
-	 * Load next with the next valid entry from the nested
-	 * iterator. If there are none, next is set to <code>END</code>.
-	 */
-	private void loadNext() {
-		this.done = true;
-		while (this.iterator.hasNext() && (this.done)) {
-			E1 temp = this.iterator.next();
-			if (this.accept(temp)) {
-				// assume that if the object was accepted it is of type E
-				this.next = this.cast(temp);
-				this.done = false;
-			} else {
-				this.next = null;
-				this.done = true;
-			}
-		}
-	}
-
-	/**
-	 * We have to assume the filter will only "accept" objects that can
-	 * be cast to E2.
-	 */
-	@SuppressWarnings("unchecked")
-	private E2 cast(E1 o) {
-		return (E2) o;
-	}
-
-	/**
-	 * Return whether the <code>FilteringIterator</code>
-	 * should return the specified next element from a call to the
-	 * <code>next()</code> method.
-	 * <p>
-	 * This method can be overridden by a subclass as an
-	 * alternative to building a <code>Filter</code>.
-	 */
-	protected boolean accept(E1 o) {
-		return this.filter.accept(o);
-	}
-
-	@Override
-	public String toString() {
-		return StringTools.buildToStringFor(this, this.iterator);
-	}
-
-}
diff --git a/jpa/plugins/org.eclipse.jpt.utility/src/org/eclipse/jpt/utility/internal/iterators/GenericIteratorWrapper.java b/jpa/plugins/org.eclipse.jpt.utility/src/org/eclipse/jpt/utility/internal/iterators/GenericIteratorWrapper.java
deleted file mode 100644
index 8a399bd..0000000
--- a/jpa/plugins/org.eclipse.jpt.utility/src/org/eclipse/jpt/utility/internal/iterators/GenericIteratorWrapper.java
+++ /dev/null
@@ -1,52 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008, 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.utility.internal.iterators;
-
-import java.util.Iterator;
-import org.eclipse.jpt.utility.internal.StringTools;
-
-/**
- * Wrap an iterator on elements of any sub-type of E, converting it into an
- * iterator on elements of type E. This shouldn't be a problem since there
- * is no way to add invalid elements to the iterator's backing collection.
- */
-public class GenericIteratorWrapper<E>
-	implements Iterator<E>
-{
-	private final Iterator<? extends E> iterator;
-
-
-	public GenericIteratorWrapper(Iterable<? extends E> iterable) {
-		this(iterable.iterator());
-	}
-
-	public GenericIteratorWrapper(Iterator<? extends E> iterator) {
-		super();
-		this.iterator = iterator;
-	}
-
-	public boolean hasNext() {
-		return this.iterator.hasNext();
-	}
-
-	public E next() {
-		return this.iterator.next();
-	}
-
-	public void remove() {
-		this.iterator.remove();
-	}
-
-	@Override
-	public String toString() {
-		return StringTools.buildToStringFor(this, this.iterator);
-	}
-
-}
diff --git a/jpa/plugins/org.eclipse.jpt.utility/src/org/eclipse/jpt/utility/internal/iterators/GenericListIteratorWrapper.java b/jpa/plugins/org.eclipse.jpt.utility/src/org/eclipse/jpt/utility/internal/iterators/GenericListIteratorWrapper.java
deleted file mode 100644
index e831063..0000000
--- a/jpa/plugins/org.eclipse.jpt.utility/src/org/eclipse/jpt/utility/internal/iterators/GenericListIteratorWrapper.java
+++ /dev/null
@@ -1,79 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.utility.internal.iterators;
-
-import java.util.List;
-import java.util.ListIterator;
-
-import org.eclipse.jpt.utility.internal.StringTools;
-
-/**
- * Wrap a list iterator on elements of any sub-type of E, converting it into a
- * list iterator on elements of type E. This shouldn't be a problem since the
- * resulting list iterator disables the methods that would put invalid elements
- * in the iterator's backing list (i.e. #set(E) and #add(E)).
- */
-public class GenericListIteratorWrapper<E>
-	implements ListIterator<E>
-{
-	private final ListIterator<? extends E> listIterator;
-
-
-	public GenericListIteratorWrapper(List<? extends E> list) {
-		this(list.listIterator());
-	}
-
-	public GenericListIteratorWrapper(ListIterator<? extends E> listIterator) {
-		super();
-		this.listIterator = listIterator;
-	}
-
-	public boolean hasNext() {
-		return this.listIterator.hasNext();
-	}
-
-	public E next() {
-		return this.listIterator.next();
-	}
-
-	public int nextIndex() {
-		return this.listIterator.nextIndex();
-	}
-
-	public boolean hasPrevious() {
-		return this.listIterator.hasPrevious();
-	}
-
-	public E previous() {
-		return this.listIterator.previous();
-	}
-
-	public int previousIndex() {
-		return this.listIterator.previousIndex();
-	}
-
-	public void remove() {
-		this.listIterator.remove();
-	}
-
-	public void set(E e) {
-		throw new UnsupportedOperationException();
-	}
-	
-	public void add(E e) {
-		throw new UnsupportedOperationException();
-	}
-
-	@Override
-	public String toString() {
-		return StringTools.buildToStringFor(this, this.listIterator);
-	}
-
-}
diff --git a/jpa/plugins/org.eclipse.jpt.utility/src/org/eclipse/jpt/utility/internal/iterators/GraphIterator.java b/jpa/plugins/org.eclipse.jpt.utility/src/org/eclipse/jpt/utility/internal/iterators/GraphIterator.java
deleted file mode 100644
index 9b28f19..0000000
--- a/jpa/plugins/org.eclipse.jpt.utility/src/org/eclipse/jpt/utility/internal/iterators/GraphIterator.java
+++ /dev/null
@@ -1,272 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005, 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.utility.internal.iterators;
-
-import java.util.HashSet;
-import java.util.Iterator;
-import java.util.LinkedList;
-import java.util.NoSuchElementException;
-
-import org.eclipse.jpt.utility.internal.StringTools;
-
-/**
- * A <code>GraphIterator</code> is similar to a <code>TreeIterator</code>
- * except that it cannot be assumed that all nodes assume a strict tree
- * structure. For instance, in a tree, a node cannot be a descendent of
- * itself, but a graph may have a cyclical structure.
- * 
- * A <code>GraphIterator</code> simplifies the traversal of a
- * graph of objects, where the objects' protocol(s) provides
- * a method for getting the next collection of nodes in the graph,
- * (or *neighbors*), but does not provide a method for getting *all* 
- * of the nodes in the graph.
- * (e.g. a neighbor can return his neighbors, and those neighbors
- * can return their neighbors, which might also include the original
- * neighbor, but you only want to visit the original neighbor once.)
- * <p>
- * If a neighbor has already been visited (determined by using 
- * <code>equals(Object)</code>), that neighbor is not visited again,
- * nor are the neighbors of that object.
- * <p>
- * It is up to the user of this class to ensure a *complete* graph.
- * <p>
- * To use, supply:<ul>
- * <li> either the initial node of the graph or an <code>Iterator</code>
- * over an initial collection of graph nodes
- * <li> a <code>MisterRogers</code> that tells who the neighbors are
- * of each node
- * (alternatively, subclass <code>GraphIterator</code>
- * and override the <code>neighbors(Object)</code> method)
- * </ul>
- * <p>
- * <code>remove()</code> is not supported. This method, if 
- * desired, must be implemented by the user of this class.
- */
-public class GraphIterator<E>
-	implements Iterator<E>
-{
-	private final LinkedList<Iterator<? extends E>> iterators;
-	private final HashSet<E> visitedNeighbors;
-	private final MisterRogers<E> misterRogers;
-	
-	private Iterator<? extends E> currentIterator;
-	
-	private E nextNeighbor;
-	private boolean done;
-
-
-	/**
-	 * Construct an iterator that returns the nodes of a graph
-	 * with the specified collection of roots
-	 * and a disabled mister rogers.
-	 * Use this constructor if you want to override the
-	 * <code>neighbors(Object)</code> method instead of building
-	 * a <code>MisterRogers</code>.
-	 */
-	public GraphIterator(E... roots) {
-		this(new ArrayIterator<E>(roots));
-	}
-
-	/**
-	 * Construct an iterator that returns the nodes of a graph
-	 * with the specified collection of roots
-	 * and a disabled mister rogers.
-	 * Use this constructor if you want to override the
-	 * <code>neighbors(Object)</code> method instead of building
-	 * a <code>MisterRogers</code>.
-	 */
-	public GraphIterator(Iterable<? extends E> roots) {
-		this(roots.iterator());
-	}
-
-	/**
-	 * Construct an iterator that returns the nodes of a graph
-	 * with the specified collection of roots
-	 * and a disabled mister rogers.
-	 * Use this constructor if you want to override the
-	 * <code>neighbors(Object)</code> method instead of building
-	 * a <code>MisterRogers</code>.
-	 */
-	public GraphIterator(Iterator<? extends E> roots) {
-		this(roots, MisterRogers.Disabled.<E>instance());
-	}
-
-	/**
-	 * Construct an iterator that returns the nodes of a graph
-	 * with the specified root
-	 * and a disabled mister rogers.
-	 * Use this constructor if you want to override the
-	 * <code>neighbors(Object)</code> method instead of building
-	 * a <code>MisterRogers</code>.
-	 */
-	public GraphIterator(E root) {
-		this(root, MisterRogers.Disabled.<E>instance());
-	}
-
-	/**
-	 * Construct an iterator that returns the nodes of a graph
-	 * with the specified root and mister rogers.
-	 */
-	public GraphIterator(E root, MisterRogers<E> misterRogers) {
-		this(new SingleElementIterator<E>(root), misterRogers);
-	}
-
-	/**
-	 * Construct an iterator that returns the nodes of a graph
-	 * with the specified collection of roots and mister rogers.
-	 */
-	public GraphIterator(E[] roots, MisterRogers<E> misterRogers) {
-		this(new ArrayIterator<E>(roots), misterRogers);
-	}
-
-	/**
-	 * Construct an iterator that returns the nodes of a graph
-	 * with the specified roots and mister rogers.
-	 */
-	public GraphIterator(Iterable<? extends E> roots, MisterRogers<E> misterRogers) {
-		this(roots.iterator(), misterRogers);
-	}
-
-	/**
-	 * Construct an iterator that returns the nodes of a graph
-	 * with the specified roots and mister rogers.
-	 */
-	public GraphIterator(Iterator<? extends E> roots, MisterRogers<E> misterRogers) {
-		super();
-		this.currentIterator = roots;
-		// use a LinkedList since we will be pulling off the front and adding to the end
-		this.iterators = new LinkedList<Iterator<? extends E>>();
-		this.misterRogers = misterRogers;
-		this.visitedNeighbors = new HashSet<E>();
-		this.loadNextNeighbor();
-	}
-
-	/**
-	 * Load next neighbor with the next entry from the current iterator.
-	 * If the current iterator has none, load the next iterator.
-	 * If there are no more, the 'done' flag is set.
-	 */
-	private void loadNextNeighbor() {
-		if (this.currentIterator == EmptyIterator.instance()) {
-			this.done = true;
-		}
-		else if (this.currentIterator.hasNext()) {
-			E nextPossibleNeighbor = this.currentIterator.next();
-			if (this.visitedNeighbors.contains(nextPossibleNeighbor)) {
-				this.loadNextNeighbor();  // recurse
-			} else {
-				this.nextNeighbor = nextPossibleNeighbor;
-				this.visitedNeighbors.add(nextPossibleNeighbor);
-				this.iterators.add(this.neighbors(nextPossibleNeighbor));
-			}
-		} 
-		else {
-			for (Iterator<? extends Iterator<? extends E>> stream = this.iterators.iterator(); ! this.currentIterator.hasNext() && stream.hasNext(); ) {
-				this.currentIterator = stream.next();
-				stream.remove();
-			}
-			if ( ! this.currentIterator.hasNext()) {
-				this.currentIterator = EmptyIterator.instance();
-			}
-			this.loadNextNeighbor();  // recurse
-		}
-	}
-
-	public boolean hasNext() {
-		return ! this.done;
-	}
-
-	public E next() {
-		if (this.done) {
-			throw new NoSuchElementException();
-		}
-		E next = this.nextNeighbor;
-		this.loadNextNeighbor();
-		return next;
-	}
-
-	public void remove() {
-		throw new UnsupportedOperationException();
-	}
-
-	/**
-	 * Return the immediate neighbors of the specified object.
-	 */
-	protected Iterator<? extends E> neighbors(E next) {
-		return this.misterRogers.neighbors(next);
-	}
-
-	@Override
-	public String toString() {
-		return StringTools.buildToStringFor(this, this.currentIterator);
-	}
-	
-	
-	//********** inner classes **********
-	
-	/**
-	 * Used by <code>GraphIterator</code> to retrieve
-	 * the immediate neighbors of a node in the graph.
-	 * "These are the people in your neighborhood..."
-	 */
-	public interface MisterRogers<T> {
-
-		/**
-		 * Return the immediate neighbors of the specified object.
-		 */
-		Iterator<? extends T> neighbors(T next);
-		
-		
-		final class Null<S> implements MisterRogers<S> {
-			@SuppressWarnings("unchecked")
-			public static final MisterRogers INSTANCE = new Null();
-			@SuppressWarnings("unchecked")
-			public static <R> MisterRogers<R> instance() {
-				return INSTANCE;
-			}
-			// ensure single instance
-			private Null() {
-				super();
-			}
-			// return no neighbors
-			public Iterator<S> neighbors(S next) {
-				return EmptyIterator.instance();
-			}
-			@Override
-			public String toString() {
-				return "GraphIterator.MisterRogers.Null"; //$NON-NLS-1$
-			}
-		}
-
-		/** The mister rogers used when the #neighbors(Object) method is overridden. */
-		final class Disabled<S> implements MisterRogers<S> {
-			@SuppressWarnings("unchecked")
-			public static final MisterRogers INSTANCE = new Disabled();
-			@SuppressWarnings("unchecked")
-			public static <R> MisterRogers<R> instance() {
-				return INSTANCE;
-			}
-			// ensure single instance
-			private Disabled() {
-				super();
-			}
-			// throw an exception
-			public Iterator<S> neighbors(S next) {
-				throw new UnsupportedOperationException();  // GraphIterator.neighbors(Object) was not implemented
-			}
-			@Override
-			public String toString() {
-				return "GraphIterator.MisterRogers.Disabled"; //$NON-NLS-1$
-			}
-		}
-
-	}
-
-}
diff --git a/jpa/plugins/org.eclipse.jpt.utility/src/org/eclipse/jpt/utility/internal/iterators/PeekableIterator.java b/jpa/plugins/org.eclipse.jpt.utility/src/org/eclipse/jpt/utility/internal/iterators/PeekableIterator.java
deleted file mode 100644
index c819e21..0000000
--- a/jpa/plugins/org.eclipse.jpt.utility/src/org/eclipse/jpt/utility/internal/iterators/PeekableIterator.java
+++ /dev/null
@@ -1,108 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005, 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.utility.internal.iterators;
-
-import java.util.Iterator;
-import java.util.NoSuchElementException;
-import org.eclipse.jpt.utility.internal.StringTools;
-
-/**
- * A <code>PeekableIterator</code> wraps another <code>Iterator</code>
- * and allows a <code>peek()</code> at the next element to be 
- * returned by <code>next()</code>.
- * <p>
- * One, possibly undesirable, side-effect of using this iterator is that
- * the nested iterator's <code>next()</code> method will be invoked
- * <em>before</em> the peekable iterator's <code>next()</code>
- * method is invoked. This is because the "next" element must be
- * pre-loaded for the <code>peek()</code> method.
- * This also prevents a peekable iterator from supporting the optional
- * <code>remove()</code> method.
- */
-
-public class PeekableIterator<E>
-	implements Iterator<E>
-{
-	private final Iterator<? extends E> iterator;
-	private E next;
-	private boolean done;
-
-
-	/**
-	 * Construct a peekable iterator that wraps the specified
-	 * iterable.
-	 */
-	public PeekableIterator(Iterable<? extends E> iterable) {
-		this(iterable.iterator());
-	}
-
-	/**
-	 * Construct a peekable iterator that wraps the specified nested
-	 * iterator.
-	 */
-	public PeekableIterator(Iterator<? extends E> iterator) {
-		super();
-		this.iterator = iterator;
-		this.done = false;
-		this.loadNext();
-	}
-
-	public boolean hasNext() {
-		return ! this.done;
-	}
-
-	public E next() {
-		if (this.done) {
-			throw new NoSuchElementException();
-		}
-		E result = this.next;
-		this.loadNext();
-		return result;
-	}
-
-	/**
-	 * Return the element that will be returned by the next call to the
-	 * <code>next()</code> method, without advancing past it.
-	 */
-	public E peek() {
-		if (this.done) {
-			throw new NoSuchElementException();
-		}
-		return this.next;
-	}
-
-	/**
-	 * Because we need to pre-load the next element
-	 * to be returned, we cannot support the <code>remove()</code>
-	 * method.
-	 */
-	public void remove() {
-		throw new UnsupportedOperationException();
-	}
-
-	/**
-	 * Load next with the next entry from the nested
-	 * iterator. If there are none, next is set to <code>END</code>.
-	 */
-	private void loadNext() {
-		if (this.iterator.hasNext()) {
-			this.next = this.iterator.next();
-		} else {
-			this.next = null;
-			this.done = true;
-		}
-	}
-
-	@Override
-	public String toString() {
-		return StringTools.buildToStringFor(this, this.iterator);
-	}
-
-}
diff --git a/jpa/plugins/org.eclipse.jpt.utility/src/org/eclipse/jpt/utility/internal/iterators/ReadOnlyCompositeListIterator.java b/jpa/plugins/org.eclipse.jpt.utility/src/org/eclipse/jpt/utility/internal/iterators/ReadOnlyCompositeListIterator.java
deleted file mode 100644
index 297b55a..0000000
--- a/jpa/plugins/org.eclipse.jpt.utility/src/org/eclipse/jpt/utility/internal/iterators/ReadOnlyCompositeListIterator.java
+++ /dev/null
@@ -1,209 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008, 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.utility.internal.iterators;
-
-import java.util.Arrays;
-import java.util.List;
-import java.util.ListIterator;
-import java.util.NoSuchElementException;
-
-import org.eclipse.jpt.utility.internal.StringTools;
-
-/**
- * A <code>ReadOnlyCompositeListIterator</code> wraps a list
- * of <code>ListIterator</code>s and makes them appear to be a single
- * read-only <code>ListIterator</code>. A read-only composite list
- * iterator is more flexible than a normal composite list iterator when it
- * comes to the element types of the nested iterators.
- */
-public class ReadOnlyCompositeListIterator<E>
-	implements ListIterator<E>
-{
-	private final ListIterator<? extends ListIterator<? extends E>> iterators;
-	private ListIterator<? extends E> nextIterator;
-	private int nextIndex;
-
-
-	/**
-	 * Construct a read-only list iterator with the specified list of lists.
-	 */
-	public ReadOnlyCompositeListIterator(List<? extends List<? extends E>> lists) {
-		this(
-			new TransformationListIterator<List<? extends E>, ListIterator<? extends E>>(lists.listIterator()) {
-				@Override
-				protected ListIterator<? extends E> transform(List<? extends E> list) {
-					return list.listIterator();
-				}
-			}
-		);
-	}
-
-	/**
-	 * Construct a read-only list iterator with the specified list of
-	 * list iterators.
-	 */
-	public ReadOnlyCompositeListIterator(ListIterator<? extends ListIterator<? extends E>> iterators) {
-		super();
-		this.iterators = iterators;
-		this.nextIndex = 0;
-	}
-
-	/**
-	 * Construct a read-only list iterator with the specified object prepended
-	 * to the specified list.
-	 */
-	public ReadOnlyCompositeListIterator(E object, List<? extends E> list) {
-		this(object, list.listIterator());
-	}
-
-	/**
-	 * Construct a read-only list iterator with the specified object prepended
-	 * to the specified iterator.
-	 */
-	@SuppressWarnings("unchecked")
-	public ReadOnlyCompositeListIterator(E object, ListIterator<? extends E> iterator) {
-		this(new SingleElementListIterator<E>(object), iterator);
-	}
-
-	/**
-	 * Construct a read-only list iterator with the specified object appended
-	 * to the specified list.
-	 */
-	public ReadOnlyCompositeListIterator(List<? extends E> list, E object) {
-		this(list.listIterator(), object);
-	}
-
-	/**
-	 * Construct a read-only list iterator with the specified object appended
-	 * to the specified iterator.
-	 */
-	@SuppressWarnings("unchecked")
-	public ReadOnlyCompositeListIterator(ListIterator<? extends E> iterator, E object) {
-		this(iterator, new SingleElementListIterator<E>(object));
-	}
-
-	/**
-	 * Construct a read-only list iterator with the specified lists.
-	 */
-	public ReadOnlyCompositeListIterator(List<? extends E>... lists) {
-		this(Arrays.asList(lists));
-	}
-
-	/**
-	 * Construct a read-only list iterator with the specified list iterators.
-	 */
-	public ReadOnlyCompositeListIterator(ListIterator<? extends E>... iterators) {
-		this(new ArrayListIterator<ListIterator<? extends E>>(iterators));
-	}
-
-	public boolean hasNext() {
-		try {
-			this.loadNextIterator();
-		} catch (NoSuchElementException ex) {
-			// this occurs if there are no iterators at all
-			return false;
-		}
-		return this.nextIterator.hasNext();
-	}
-
-	public boolean hasPrevious() {
-		try {
-			this.loadPreviousIterator();
-		} catch (NoSuchElementException ex) {
-			// this occurs if there are no iterators at all
-			return false;
-		}
-		return this.nextIterator.hasPrevious();
-	}
-
-	public E next() {
-		this.loadNextIterator();
-		E result = this.nextIterator.next();
-	
-		// the statement above will throw a NoSuchElementException
-		// if the current iterator is at the end of the line;
-		// so if we get here, we can increment 'nextIndex'
-		this.nextIndex++;
-	
-		return result;
-	}
-
-	public int nextIndex() {
-		return this.nextIndex;
-	}
-
-	public E previous() {
-		this.loadPreviousIterator();
-		E result = this.nextIterator.previous();
-	
-		// the statement above will throw a NoSuchElementException
-		// if the current iterator is at the end of the line;
-		// so if we get here, we can decrement 'nextIndex'
-		this.nextIndex--;
-	
-		return result;
-	}
-
-	public int previousIndex() {
-		return this.nextIndex  - 1;
-	}
-
-	public void add(E o) {
-		// the list iterator is read-only
-		throw new UnsupportedOperationException();
-	}
-
-	public void remove() {
-		// the list iterator is read-only
-		throw new UnsupportedOperationException();
-	}
-
-	public void set(E e) {
-		// the list iterator is read-only
-		throw new UnsupportedOperationException();
-	}
-
-	/**
-	 * Load nextIterator with the first iterator that <code>hasNext()</code>
-	 * or the final iterator if all the elements have already been retrieved.
-	 */
-	private void loadNextIterator() {
-		this.checkNextIterator();
-		while (( ! this.nextIterator.hasNext()) && this.iterators.hasNext()) {
-			this.nextIterator = this.iterators.next();
-		}
-	}
-
-	/**
-	 * Load nextIterator with the first iterator that <code>hasPrevious()</code>
-	 * or the first iterator if all the elements have already been retrieved.
-	 */
-	private void loadPreviousIterator() {
-		this.checkNextIterator();
-		while (( ! this.nextIterator.hasPrevious()) && this.iterators.hasPrevious()) {
-			this.nextIterator = this.iterators.previous();
-		}
-	}
-
-	/**
-	 * If 'nextIterator' is null, load it with the first iterator.
-	 */
-	private void checkNextIterator() {
-		if (this.nextIterator == null) {
-			this.nextIterator = this.iterators.next();
-		}
-	}
-
-	@Override
-	public String toString() {
-		return StringTools.buildToStringFor(this, this.iterators);
-	}
-
-}
diff --git a/jpa/plugins/org.eclipse.jpt.utility/src/org/eclipse/jpt/utility/internal/iterators/ReadOnlyIterator.java b/jpa/plugins/org.eclipse.jpt.utility/src/org/eclipse/jpt/utility/internal/iterators/ReadOnlyIterator.java
deleted file mode 100644
index 6b12069..0000000
--- a/jpa/plugins/org.eclipse.jpt.utility/src/org/eclipse/jpt/utility/internal/iterators/ReadOnlyIterator.java
+++ /dev/null
@@ -1,61 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005, 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.utility.internal.iterators;
-
-import java.util.Iterator;
-
-import org.eclipse.jpt.utility.internal.StringTools;
-
-/**
- * A <code>ReadOnlyIterator</code> wraps another <code>Iterator</code>
- * and removes support for #remove().
- */
-public class ReadOnlyIterator<E>
-	implements Iterator<E>
-{
-	private final Iterator<? extends E> iterator;
-
-	/**
-	 * Construct an iterator on the specified collection that
-	 * disallows removes.
-	 */
-	public ReadOnlyIterator(Iterable<? extends E> c) {
-		this(c.iterator());
-	}
-
-	/**
-	 * Construct an iterator with the specified nested iterator
-	 * and disallow removes.
-	 */
-	public ReadOnlyIterator(Iterator<? extends E> iterator) {
-		super();
-		this.iterator = iterator;
-	}
-
-	public boolean hasNext() {
-		// delegate to the nested iterator
-		return this.iterator.hasNext();
-	}
-
-	public E next() {
-		// delegate to the nested iterator
-		return this.iterator.next();
-	}
-
-	public void remove() {
-		throw new UnsupportedOperationException();
-	}
-
-	@Override
-	public String toString() {
-		return StringTools.buildToStringFor(this, this.iterator);
-	}
-	
-}
diff --git a/jpa/plugins/org.eclipse.jpt.utility/src/org/eclipse/jpt/utility/internal/iterators/ReadOnlyListIterator.java b/jpa/plugins/org.eclipse.jpt.utility/src/org/eclipse/jpt/utility/internal/iterators/ReadOnlyListIterator.java
deleted file mode 100644
index c5fdcd6..0000000
--- a/jpa/plugins/org.eclipse.jpt.utility/src/org/eclipse/jpt/utility/internal/iterators/ReadOnlyListIterator.java
+++ /dev/null
@@ -1,93 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005, 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.utility.internal.iterators;
-
-import java.util.List;
-import java.util.ListIterator;
-import org.eclipse.jpt.utility.internal.StringTools;
-
-/**
- * A <code>ReadOnlyListIterator</code> wraps another
- * <code>ListIterator</code> and removes support for:
- * 	#remove()
- * 	#set(Object)
- * 	#add(Object)
- */
-public class ReadOnlyListIterator<E>
-	implements ListIterator<E>
-{
-	private final ListIterator<? extends E> listIterator;
-
-
-	/**
-	 * Construct an iterator on the specified list that
-	 * disallows removes, sets, and adds.
-	 */
-	public ReadOnlyListIterator(List<? extends E> list) {
-		this(list.listIterator());
-	}
-
-	/**
-	 * Construct an iterator on the specified list iterator that
-	 * disallows removes, sets, and adds.
-	 */
-	public ReadOnlyListIterator(ListIterator<? extends E> listIterator) {
-		super();
-		this.listIterator = listIterator;
-	}
-
-	public boolean hasNext() {
-		// delegate to the nested iterator
-		return this.listIterator.hasNext();
-	}
-
-	public E next() {
-		// delegate to the nested iterator
-		return this.listIterator.next();
-	}
-
-	public boolean hasPrevious() {
-		// delegate to the nested iterator
-		return this.listIterator.hasPrevious();
-	}
-
-	public E previous() {
-		// delegate to the nested iterator
-		return this.listIterator.previous();
-	}
-
-	public int nextIndex() {
-		// delegate to the nested iterator
-		return this.listIterator.nextIndex();
-	}
-
-	public int previousIndex() {
-		// delegate to the nested iterator
-		return this.listIterator.previousIndex();
-	}
-
-	public void remove() {
-		throw new UnsupportedOperationException();
-	}
-
-	public void set(E o) {
-		throw new UnsupportedOperationException();
-	}
-
-	public void add(E o) {
-		throw new UnsupportedOperationException();
-	}
-
-	@Override
-	public String toString() {
-		return StringTools.buildToStringFor(this, this.listIterator);
-	}
-	
-}
diff --git a/jpa/plugins/org.eclipse.jpt.utility/src/org/eclipse/jpt/utility/internal/iterators/ResultSetIterator.java b/jpa/plugins/org.eclipse.jpt.utility/src/org/eclipse/jpt/utility/internal/iterators/ResultSetIterator.java
deleted file mode 100644
index b5891c7..0000000
--- a/jpa/plugins/org.eclipse.jpt.utility/src/org/eclipse/jpt/utility/internal/iterators/ResultSetIterator.java
+++ /dev/null
@@ -1,154 +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.utility.internal.iterators;
-
-import java.sql.ResultSet;
-import java.sql.SQLException;
-import java.util.Iterator;
-import java.util.NoSuchElementException;
-import org.eclipse.jpt.utility.internal.StringTools;
-
-/**
- * A <code>ResultSetIterator</code> wraps a <code>ResultSet</code>
- * and transforms its rows for client consumption. Subclasses can override
- * <code>#buildNext(ResultSet)</code> to build the expected object from
- * the current row of the result set.
- * <p>
- * To use, supply:<ul>
- * <li> a <code>ResultSet</code>
- * <li> an <code>Adapter</code> that converts a row in the <code>ResultSet</code>
- * into the desired object
- * (alternatively, subclass <code>ResultSetIterator</code>
- * and override the <code>buildNext(ResultSet)</code> method)
- * </ul>
- * <p>
- */
-public class ResultSetIterator<E>
-	implements Iterator<E>
-{
-	private final ResultSet resultSet;
-	private final Adapter<E> adapter;
-	private E next;
-	private boolean done;
-
-
-	/**
-	 * Construct an iterator on the specified result set that returns
-	 * the objects produced by the specified adapter.
-	 */
-	public ResultSetIterator(ResultSet resultSet, Adapter<E> adapter) {
-		super();
-		this.resultSet = resultSet;
-		this.adapter = adapter;
-		this.done = false;
-		this.next = this.buildNext();
-	}
-
-	/**
-	 * Construct an iterator on the specified result set that returns
-	 * the first object in each row of the result set.
-	 */
-	public ResultSetIterator(ResultSet resultSet) {
-		this(resultSet, Adapter.Default.<E>instance());
-	}
-
-	/**
-	 * Build the next object for the iterator to return.
-	 * Close the result set when we reach the end.
-	 */
-	private E buildNext() {
-		try {
-			if (this.resultSet.next()) {
-				return this.buildNext(this.resultSet);
-			}
-			this.resultSet.close();
-			this.done = true;
-			return null;
-		} catch (SQLException ex) {
-			throw new RuntimeException(ex);
-		}
-	}
-
-	/**
-	 * By default, return the first object in the current row
-	 * of the result set. Any <code>SQLException</code>s will
-	 * be caught and wrapped in a <code>RuntimeException</code>.
-	 */
-	protected E buildNext(ResultSet rs) throws SQLException {
-		return this.adapter.buildNext(rs);
-	}
-
-	public boolean hasNext() {
-		return ! this.done;
-	}
-
-	public E next() {
-		if (this.done) {
-			throw new NoSuchElementException();
-		}
-		E temp = this.next;
-		this.next = this.buildNext();
-		return temp;
-	}
-
-	public void remove() {
-		throw new UnsupportedOperationException();
-	}
-
-	@Override
-	public String toString() {
-		return StringTools.buildToStringFor(this, this.resultSet);
-	}
-
-
-	// ********** interface **********
-
-	/**
-	 * Used by <code>ResultSetIterator</code> to convert a
-	 * <code>ResultSet</code>'s current row into the next object
-	 * to be returned by the <code>Iterator</code>.
-	 */
-	public interface Adapter<T> {
-
-		/**
-		 * Return an object corresponding to the result set's
-		 * "current" row. Any <code>SQLException</code>s will
-		 * be caught and wrapped in a <code>RuntimeException</code>.
-		 * @see java.sql.ResultSet
-		 */
-		T buildNext(ResultSet rs) throws SQLException;
-
-
-		final class Default<S> implements Adapter<S> {
-			@SuppressWarnings("unchecked")
-			public static final Adapter INSTANCE = new Default();
-			@SuppressWarnings("unchecked")
-			public static <R> Adapter<R> instance() {
-				return INSTANCE;
-			}
-			// ensure single instance
-			private Default() {
-				super();
-			}
-			// return the first object in the current row of the result set
-			@SuppressWarnings("unchecked")
-			public S buildNext(ResultSet rs) throws SQLException {
-				// result set columns are indexed starting with 1
-				return (S) rs.getObject(1);
-			}
-			@Override
-			public String toString() {
-				return "ResultSetIterator.Adapter.Default"; //$NON-NLS-1$
-			}
-		}
-
-	}
-
-}
diff --git a/jpa/plugins/org.eclipse.jpt.utility/src/org/eclipse/jpt/utility/internal/iterators/SingleElementIterator.java b/jpa/plugins/org.eclipse.jpt.utility/src/org/eclipse/jpt/utility/internal/iterators/SingleElementIterator.java
deleted file mode 100644
index 75fd9d8..0000000
--- a/jpa/plugins/org.eclipse.jpt.utility/src/org/eclipse/jpt/utility/internal/iterators/SingleElementIterator.java
+++ /dev/null
@@ -1,63 +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.utility.internal.iterators;
-
-import java.util.Iterator;
-import java.util.NoSuchElementException;
-import org.eclipse.jpt.utility.internal.StringTools;
-
-/**
- * A <code>SingleElementIterator</code> holds a single element
- * and returns it with the first call to <code>next()</code>, at
- * which point it will return <code>false</code> to any subsequent
- * call to <code>hasNext()</code>.
- * <p>
- * A <code>SingleElementIterator</code> is equivalent to the
- * <code>Iterator</code> returned by:
- * 	<code>java.util.Collections.singleton(element).iterator()</code>
- */
-public class SingleElementIterator<E>
-	implements Iterator<E>
-{
-	private final E element;
-	private boolean done;
-
-
-	/**
-	 * Construct an iterator that returns only the specified element.
-	 */
-	public SingleElementIterator(E element) {
-		super();
-		this.element = element;
-		this.done = false;
-	}
-
-	public boolean hasNext() {
-		return ! this.done;
-	}
-
-	public E next() {
-		if (this.done) {
-			throw new NoSuchElementException();
-		}
-		this.done = true;
-		return this.element;
-	}
-
-	public void remove() {
-		throw new UnsupportedOperationException();
-	}
-
-	@Override
-	public String toString() {
-		return StringTools.buildToStringFor(this, this.element);
-	}
-
-}
diff --git a/jpa/plugins/org.eclipse.jpt.utility/src/org/eclipse/jpt/utility/internal/iterators/SingleElementListIterator.java b/jpa/plugins/org.eclipse.jpt.utility/src/org/eclipse/jpt/utility/internal/iterators/SingleElementListIterator.java
deleted file mode 100644
index 799cb72..0000000
--- a/jpa/plugins/org.eclipse.jpt.utility/src/org/eclipse/jpt/utility/internal/iterators/SingleElementListIterator.java
+++ /dev/null
@@ -1,94 +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.utility.internal.iterators;
-
-import java.util.ListIterator;
-import java.util.NoSuchElementException;
-import org.eclipse.jpt.utility.internal.StringTools;
-
-/**
- * A <code>SingleElementListIterator</code> holds a single element
- * and returns it with the first call to <code>next()</code>, at
- * which point it will return <code>false</code> to any subsequent
- * call to <code>hasNext()</code>. Likewise, it will return <code>false</code>
- * to a call to <code>hasPrevious()</code> until a call to <code>next()</code>,
- * at which point a call to <code>previous()</code> will return the
- * single element.
- * <p>
- * A <code>SingleElementListIterator</code> is equivalent to the
- * <code>Iterator</code> returned by:
- * 	<code>java.util.Collections.singletonList(element).listIterator()</code>
- */
-public class SingleElementListIterator<E>
-	implements ListIterator<E>
-{
-	private final E element;
-	private boolean hasNext;
-
-
-	/**
-	 * Construct a list iterator that returns only the specified element.
-	 */
-	public SingleElementListIterator(E element) {
-		super();
-		this.element = element;
-		this.hasNext = true;
-	}
-
-	public boolean hasNext() {
-		return this.hasNext;
-	}
-
-	public E next() {
-		if (this.hasNext) {
-			this.hasNext = false;
-			return this.element;
-		}
-		throw new NoSuchElementException();
-	}
-
-	public int nextIndex() {
-		return this.hasNext ? 0 : 1;
-	}
-
-	public boolean hasPrevious() {
-		return ! this.hasNext;
-	}
-
-	public E previous() {
-		if (this.hasNext) {
-			throw new NoSuchElementException();
-		}
-		this.hasNext = true;
-		return this.element;
-	}
-
-	public int previousIndex() {
-		return this.hasNext ? -1 : 0;
-	}
-
-	public void add(E e) {
-		throw new UnsupportedOperationException();
-	}
-
-	public void set(E e) {
-		throw new UnsupportedOperationException();
-	}
-
-	public void remove() {
-		throw new UnsupportedOperationException();
-	}
-
-	@Override
-	public String toString() {
-		return StringTools.buildToStringFor(this, this.element);
-	}
-
-}
diff --git a/jpa/plugins/org.eclipse.jpt.utility/src/org/eclipse/jpt/utility/internal/iterators/TransformationIterator.java b/jpa/plugins/org.eclipse.jpt.utility/src/org/eclipse/jpt/utility/internal/iterators/TransformationIterator.java
deleted file mode 100644
index 208971e..0000000
--- a/jpa/plugins/org.eclipse.jpt.utility/src/org/eclipse/jpt/utility/internal/iterators/TransformationIterator.java
+++ /dev/null
@@ -1,98 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005, 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.utility.internal.iterators;
-
-import java.util.Iterator;
-import org.eclipse.jpt.utility.internal.StringTools;
-import org.eclipse.jpt.utility.internal.Transformer;
-
-
-/**
- * A <code>TransformationIterator</code> wraps another <code>Iterator</code>
- * and transforms its results for client consumption. To use, supply a 
- * <code>Transformer</code> or subclass <code>TransformationIterator</code>
- * and override the <code>transform(Object)</code> method.
- * Objects of type E1 are transformed into objects of type E2;
- * i.e. the iterator returns objects of type E2.
- */
-public class TransformationIterator<E1, E2>
-	implements Iterator<E2>
-{
-	private final Iterator<? extends E1> iterator;
-	private final Transformer<E1, ? extends E2> transformer;
-
-
-	/**
-	 * Construct an iterator with the specified iterable
-	 * and a disabled transformer.
-	 * Use this constructor if you want to override the
-	 * <code>transform(Object)</code> method instead of building
-	 * a <code>Transformer</code>.
-	 */
-	public TransformationIterator(Iterable<? extends E1> iterable) {
-		this(iterable.iterator());
-	}
-
-	/**
-	 * Construct an iterator with the specified nested iterator
-	 * and a disabled transformer.
-	 * Use this constructor if you want to override the
-	 * <code>transform(Object)</code> method instead of building
-	 * a <code>Transformer</code>.
-	 */
-	public TransformationIterator(Iterator<? extends E1> iterator) {
-		this(iterator, Transformer.Disabled.<E1, E2>instance());
-	}
-
-	/**
-	 * Construct an iterator with the specified iterable and transformer.
-	 */
-	public TransformationIterator(Iterable<? extends E1> iterable, Transformer<E1, ? extends E2> transformer) {
-		this(iterable.iterator(), transformer);
-	}
-
-	/**
-	 * Construct an iterator with the specified nested iterator
-	 * and transformer.
-	 */
-	public TransformationIterator(Iterator<? extends E1> iterator, Transformer<E1, ? extends E2> transformer) {
-		super();
-		this.iterator = iterator;
-		this.transformer = transformer;
-	}
-
-	public boolean hasNext() {
-		// delegate to the nested iterator
-		return this.iterator.hasNext();
-	}
-
-	public E2 next() {
-		// transform the object returned by the nested iterator before returning it
-		return this.transform(this.iterator.next());
-	}
-
-	public void remove() {
-		// delegate to the nested iterator
-		this.iterator.remove();
-	}
-
-	/**
-	 * Transform the specified object and return the result.
-	 */
-	protected E2 transform(E1 next) {
-		return this.transformer.transform(next);
-	}
-
-	@Override
-	public String toString() {
-		return StringTools.buildToStringFor(this, this.iterator);
-	}
-
-}
diff --git a/jpa/plugins/org.eclipse.jpt.utility/src/org/eclipse/jpt/utility/internal/iterators/TransformationListIterator.java b/jpa/plugins/org.eclipse.jpt.utility/src/org/eclipse/jpt/utility/internal/iterators/TransformationListIterator.java
deleted file mode 100644
index 7d5b80f..0000000
--- a/jpa/plugins/org.eclipse.jpt.utility/src/org/eclipse/jpt/utility/internal/iterators/TransformationListIterator.java
+++ /dev/null
@@ -1,127 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005, 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.utility.internal.iterators;
-
-import java.util.List;
-import java.util.ListIterator;
-import org.eclipse.jpt.utility.internal.StringTools;
-import org.eclipse.jpt.utility.internal.Transformer;
-
-/**
- * A <code>TransformationListIterator</code> wraps another <code>ListIterator</code>
- * and transforms its results for client consumption. To use, supply a 
- * <code>Transformer</code> or subclass <code>TransformationIterator</code>
- * and override the <code>transform(Object)</code> method.
- * 
- * The methods <code>set(Object)</code> and <code>add(Object)</code>
- * are left unsupported in this class.
- */
-public class TransformationListIterator<E1, E2>
-	implements ListIterator<E2>
-{
-	private final ListIterator<? extends E1> listIterator;
-	private final Transformer<E1, ? extends E2> transformer;
-
-
-	/**
-	 * Construct an iterator with the specified list
-	 * and a disabled transformer.
-	 * Use this constructor if you want to override the
-	 * <code>transform(Object)</code> method instead of building
-	 * a <code>Transformer</code>.
-	 */
-	public TransformationListIterator(List<? extends E1> list) {
-		this(list.listIterator());
-	}
-
-	/**
-	 * Construct an iterator with the specified nested listed iterator
-	 * and a disabled transformer.
-	 * Use this constructor if you want to override the
-	 * <code>transform(Object)</code> method instead of building
-	 * a <code>Transformer</code>.
-	 */
-	public TransformationListIterator(ListIterator<? extends E1> listIterator) {
-		this(listIterator, Transformer.Disabled.<E1, E2>instance());
-	}
-
-	/**
-	 * Construct an iterator with the specified list and transformer.
-	 */
-	public TransformationListIterator(List<? extends E1> list, Transformer<E1, ? extends E2> transformer) {
-		this(list.listIterator(), transformer);
-	}
-
-	/**
-	 * Construct an iterator with the specified nested iterator
-	 * and transformer.
-	 */
-	public TransformationListIterator(ListIterator<? extends E1> listIterator, Transformer<E1, ? extends E2> transformer) {
-		super();
-		this.listIterator = listIterator;
-		this.transformer = transformer;
-	}
-
-	public boolean hasNext() {
-		// delegate to the nested iterator
-		return this.listIterator.hasNext();
-	}
-
-	public E2 next() {
-		// transform the object returned by the nested iterator before returning it
-		return this.transform(this.listIterator.next());
-	}
-
-	public int nextIndex() {
-		// delegate to the nested iterator
-		return this.listIterator.nextIndex();
-	}
-
-	public boolean hasPrevious() {
-		// delegate to the nested iterator
-		return this.listIterator.hasPrevious();
-	}
-
-	public E2 previous() {
-		// transform the object returned by the nested iterator before returning it
-		return this.transform(this.listIterator.previous());
-	}
-
-	public int previousIndex() {
-		// delegate to the nested iterator
-		return this.listIterator.previousIndex();
-	}
-
-	public void add(E2 o) {
-		throw new UnsupportedOperationException();
-	}
-
-	public void set(E2 o) {
-		throw new UnsupportedOperationException();
-	}
-
-	public void remove() {
-		// delegate to the nested iterator
-		this.listIterator.remove();
-	}
-
-	/**
-	 * Transform the specified object and return the result.
-	 */
-	protected E2 transform(E1 next) {
-		return this.transformer.transform(next);
-	}
-
-	@Override
-	public String toString() {
-		return StringTools.buildToStringFor(this, this.listIterator);
-	}
-
-}
diff --git a/jpa/plugins/org.eclipse.jpt.utility/src/org/eclipse/jpt/utility/internal/iterators/TreeIterator.java b/jpa/plugins/org.eclipse.jpt.utility/src/org/eclipse/jpt/utility/internal/iterators/TreeIterator.java
deleted file mode 100644
index f0fac25..0000000
--- a/jpa/plugins/org.eclipse.jpt.utility/src/org/eclipse/jpt/utility/internal/iterators/TreeIterator.java
+++ /dev/null
@@ -1,238 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005, 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.utility.internal.iterators;
-
-import java.util.Iterator;
-import java.util.LinkedList;
-import org.eclipse.jpt.utility.internal.StringTools;
-
-/**
- * A <code>TreeIterator</code> simplifies the traversal of a
- * tree of objects, where the objects' protocol(s) provides
- * a method for getting the immediate children of the given
- * node but does not provide a method for getting all the
- * descendants (children, grandchildren, etc.) of the given node.
- * <p>
- * To use, supply:<ul>
- * <li> either the root element of the tree or, if the tree has
- * multiple roots, an <code>Iterator</code> over the set of roots
- * <li> a <code>Midwife</code> that delivers the children
- * of each child
- * (alternatively, subclass <code>TreeIterator</code>
- * and override the <code>children(Object)</code> method)
- * </ul>
- * <p>
- */
-public class TreeIterator<E>
-	implements Iterator<E>
-{
-	private final LinkedList<Iterator<? extends E>> iterators;
-	private final Midwife<E> midwife;
-	private Iterator<? extends E> currentIterator;
-
-
-	/**
-	 * Construct an iterator that returns the nodes of a tree
-	 * with the specified collection of roots
-	 * and a disabled midwife.
-	 * Use this constructor if you want to override the
-	 * <code>children(Object)</code> method instead of building
-	 * a <code>Midwife</code>.
-	 */
-	public TreeIterator(E... roots) {
-		this(new ArrayIterator<E>(roots));
-	}
-
-	/**
-	 * Construct an iterator that returns the nodes of a tree
-	 * with the specified collection of roots
-	 * and a disabled midwife.
-	 * Use this constructor if you want to override the
-	 * <code>children(Object)</code> method instead of building
-	 * a <code>Midwife</code>.
-	 */
-	public TreeIterator(Iterable<? extends E> roots) {
-		this(roots.iterator());
-	}
-
-	/**
-	 * Construct an iterator that returns the nodes of a tree
-	 * with the specified collection of roots
-	 * and a disabled midwife.
-	 * Use this constructor if you want to override the
-	 * <code>children(Object)</code> method instead of building
-	 * a <code>Midwife</code>.
-	 */
-	public TreeIterator(Iterator<? extends E> roots) {
-		this(roots, Midwife.Disabled.<E>instance());
-	}
-
-	/**
-	 * Construct an iterator that returns the nodes of a tree
-	 * with the specified root and a disabled midwife.
-	 * Use this constructor if you want to override the
-	 * <code>children(Object)</code> method instead of building
-	 * a <code>Midwife</code>.
-	 */
-	public TreeIterator(E root) {
-		this(root, Midwife.Disabled.<E>instance());
-	}
-
-	/**
-	 * Construct an iterator that returns the nodes of a tree
-	 * with the specified root and midwife.
-	 */
-	public TreeIterator(E root, Midwife<E> midwife) {
-		this(new SingleElementIterator<E>(root), midwife);
-	}
-
-	/**
-	 * Construct an iterator that returns the nodes of a tree
-	 * with the specified roots and midwife.
-	 */
-	public TreeIterator(E[] roots, Midwife<E> midwife) {
-		this(new ArrayIterator<E>(roots), midwife);
-	}
-
-	/**
-	 * Construct an iterator that returns the nodes of a tree
-	 * with the specified roots and midwife.
-	 */
-	public TreeIterator(Iterable<? extends E> roots, Midwife<E> midwife) {
-		this(roots.iterator(), midwife);
-	}
-
-	/**
-	 * Construct an iterator that returns the nodes of a tree
-	 * with the specified roots and midwife.
-	 */
-	public TreeIterator(Iterator<? extends E> roots, Midwife<E> midwife) {
-		super();
-		this.currentIterator = roots;
-		// use a LinkedList since we will be pulling off the front and adding to the end
-		this.iterators = new LinkedList<Iterator<? extends E>>();
-		this.midwife = midwife;
-	}
-
-	public boolean hasNext() {
-		if (this.currentIterator.hasNext()) {
-			return true;
-		}
-		for (Iterator<? extends E> iterator : this.iterators) {
-			if (iterator.hasNext()) {
-				return true;
-			}
-		}
-		return false;
-	}
-
-	public E next() {
-		if (this.currentIterator.hasNext()) {
-			return this.nextInternal();
-		}
-		for (Iterator<Iterator<? extends E>> stream = this.iterators.iterator(); stream.hasNext(); ) {
-			this.currentIterator = stream.next();
-			if (this.currentIterator.hasNext()) {
-				break;
-			}
-			stream.remove();
-		}
-		return this.nextInternal();
-	}
-
-	/**
-	 * Fetch the children of the next node before returning it.
-	 */
-	private E nextInternal() {
-		E next = this.currentIterator.next();
-		this.iterators.add(this.children(next));
-		return next;
-	}
-
-	public void remove() {
-		this.currentIterator.remove();
-	}
-
-	/**
-	 * Return the immediate children of the specified object.
-	 * <p>
-	 * This method can be overridden by a subclass as an
-	 * alternative to building a <code>Midwife</code>.
-	 */
-	protected Iterator<? extends E> children(E next) {
-		return this.midwife.children(next);
-	}
-
-	@Override
-	public String toString() {
-		return StringTools.buildToStringFor(this, this.currentIterator);
-	}
-
-
-	//********** inner classes **********
-
-	/**
-	 * Used by <code>TreeIterator</code> to retrieve
-	 * the immediate children of a node in the tree.
-	 */
-	public interface Midwife<T> {
-
-		/**
-		 * Return the immediate children of the specified object.
-		 */
-		Iterator<? extends T> children(T o);
-
-
-		final class Null<S> implements Midwife<S> {
-			@SuppressWarnings("unchecked")
-			public static final Midwife INSTANCE = new Null();
-			@SuppressWarnings("unchecked")
-			public static <R> Midwife<R> instance() {
-				return INSTANCE;
-			}
-			// ensure single instance
-			private Null() {
-				super();
-			}
-			// return no neighbors
-			public Iterator<S> children(S next) {
-				return EmptyIterator.instance();
-			}
-			@Override
-			public String toString() {
-				return "TreeIterator.Midwife.Null"; //$NON-NLS-1$
-			}
-		}
-
-		/** The midwife used when the #children(Object) method is overridden. */
-		final class Disabled<S> implements Midwife<S> {
-			@SuppressWarnings("unchecked")
-			public static final Midwife INSTANCE = new Disabled();
-			@SuppressWarnings("unchecked")
-			public static <R> Midwife<R> instance() {
-				return INSTANCE;
-			}
-			// ensure single instance
-			private Disabled() {
-				super();
-			}
-			// throw an exception
-			public Iterator<S> children(S next) {
-				throw new UnsupportedOperationException();  // TreeIterator.children(Object) was not implemented
-			}
-			@Override
-			public String toString() {
-				return "TreeIterator.Midwife.Disabled"; //$NON-NLS-1$
-			}
-		}
-
-	}
-
-}
diff --git a/jpa/plugins/org.eclipse.jpt.utility/src/org/eclipse/jpt/utility/internal/model/AbstractModel.java b/jpa/plugins/org.eclipse.jpt.utility/src/org/eclipse/jpt/utility/internal/model/AbstractModel.java
deleted file mode 100644
index 35e5886..0000000
--- a/jpa/plugins/org.eclipse.jpt.utility/src/org/eclipse/jpt/utility/internal/model/AbstractModel.java
+++ /dev/null
@@ -1,740 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.utility.internal.model;
-
-import java.io.Serializable;
-import java.util.Collection;
-import java.util.Iterator;
-import java.util.List;
-
-import org.eclipse.jpt.utility.internal.StringTools;
-import org.eclipse.jpt.utility.model.Model;
-import org.eclipse.jpt.utility.model.event.CollectionChangeEvent;
-import org.eclipse.jpt.utility.model.event.ListChangeEvent;
-import org.eclipse.jpt.utility.model.event.PropertyChangeEvent;
-import org.eclipse.jpt.utility.model.event.StateChangeEvent;
-import org.eclipse.jpt.utility.model.event.TreeChangeEvent;
-import org.eclipse.jpt.utility.model.listener.CollectionChangeListener;
-import org.eclipse.jpt.utility.model.listener.ListChangeListener;
-import org.eclipse.jpt.utility.model.listener.PropertyChangeListener;
-import org.eclipse.jpt.utility.model.listener.StateChangeListener;
-import org.eclipse.jpt.utility.model.listener.TreeChangeListener;
-
-/**
- * Convenience implementation of Model protocol.
- */
-public abstract class AbstractModel
-	implements Model, Serializable
-{
-	/**
-	 * Delegate state/property/collection/list/tree change support to this
-	 * helper object. The change support object is "lazily-initialized";
-	 * so it may be null. The method #getChangeSupport() will initialize this
-	 * field if it is null.
-	 * 
-	 * NB: We instantiate this when we fire events, even when we do not have
-	 * any listeners (which would be implied if 'changeSupport' were null).
-	 * This allows the change support to have behavior tied to events even when
-	 * we have no listeners.
-	 * @see ChangeSupport#aspectChanged(String)
-	 */
-	protected ChangeSupport changeSupport;
-
-
-	// ********** constructors/initialization **********
-
-	/**
-	 * Default constructor.
-	 */
-	protected AbstractModel() {
-		super();
-	}
-
-	/**
-	 * This accessor will build the change support when required.
-	 * This only helps reduce the footprint of a model that neither has any
-	 * listeners added to it nor ever changes (fires any events).
-	 */
-	protected synchronized ChangeSupport getChangeSupport() {
-		if (this.changeSupport == null) {
-			this.changeSupport = this.buildChangeSupport();
-		}
-		return this.changeSupport;
-	}
-
-	/**
-	 * Allow subclasses to tweak the change support used.
-	 */
-	protected ChangeSupport buildChangeSupport() {
-		return new ChangeSupport(this);
-	}
-
-
-	// ********** state change support **********
-
-	public void addStateChangeListener(StateChangeListener listener) {
-		this.getChangeSupport().addStateChangeListener(listener);
-	}
-
-	public void removeStateChangeListener(StateChangeListener listener) {
-		this.getChangeSupport().removeStateChangeListener(listener);
-	}
-
-	/**
-	 * Return whether the model has any state change listeners.
-	 */
-	public boolean hasAnyStateChangeListeners() {
-		return (this.changeSupport != null) && this.changeSupport.hasAnyStateChangeListeners();
-	}
-
-	/**
-	 * Return whether the model has no state change listeners.
-	 */
-	public boolean hasNoStateChangeListeners() {
-		return ! this.hasAnyStateChangeListeners();
-	}
-
-	protected final void fireStateChanged(StateChangeEvent event) {
-		this.getChangeSupport().fireStateChanged(event);
-	}
-
-	protected final void fireStateChanged() {
-		this.getChangeSupport().fireStateChanged();
-	}
-
-
-	// ********** property change support **********
-
-	public void addPropertyChangeListener(PropertyChangeListener listener) {
-		this.getChangeSupport().addPropertyChangeListener(listener);
-	}
-
-	public void addPropertyChangeListener(String propertyName, PropertyChangeListener listener) {
-		this.getChangeSupport().addPropertyChangeListener(propertyName, listener);
-	}
-
-	public void removePropertyChangeListener(PropertyChangeListener listener) {
-		this.getChangeSupport().removePropertyChangeListener(listener);
-	}
-
-	public void removePropertyChangeListener(String propertyName, PropertyChangeListener listener) {
-		this.getChangeSupport().removePropertyChangeListener(propertyName, listener);
-	}
-
-	/**
-	 * Return whether the model has any property change listeners that will
-	 * be notified when the specified property has changed.
-	 */
-	public boolean hasAnyPropertyChangeListeners(String propertyName) {
-		return (this.changeSupport != null) && this.changeSupport.hasAnyPropertyChangeListeners(propertyName);
-	}
-
-	/**
-	 * Return whether the model has no property change listeners that will
-	 * be notified when the specified property has changed.
-	 */
-	public boolean hasNoPropertyChangeListeners(String propertyName) {
-		return ! this.hasAnyPropertyChangeListeners(propertyName);
-	}
-
-	/**
-	 * Return whether the model has any property change listeners that will
-	 * be notified when any property has changed.
-	 */
-	public boolean hasAnyPropertyChangeListeners() {
-		return (this.changeSupport != null) && this.changeSupport.hasAnyPropertyChangeListeners();
-	}
-
-	/**
-	 * Return whether the model has no property change listeners that will
-	 * be notified when any property has changed.
-	 */
-	public boolean hasNoPropertyChangeListeners() {
-		return ! this.hasAnyPropertyChangeListeners();
-	}
-
-	protected final void firePropertyChanged(PropertyChangeEvent event) {
-		this.getChangeSupport().firePropertyChanged(event);
-	}
-
-	protected final void firePropertyChanged(String propertyName, Object oldValue, Object newValue) {
-		this.getChangeSupport().firePropertyChanged(propertyName, oldValue, newValue);
-	}
-
-	protected final void firePropertyChanged(String propertyName, int oldValue, int newValue) {
-		this.getChangeSupport().firePropertyChanged(propertyName, oldValue, newValue);
-	}
-
-	protected final void firePropertyChanged(String propertyName, boolean oldValue, boolean newValue) {
-		this.getChangeSupport().firePropertyChanged(propertyName, oldValue, newValue);
-	}
-
-	/**
-	 * implied 'null' old value
-	 */
-	protected final void firePropertyChanged(String propertyName, Object newValue) {
-		this.firePropertyChanged(propertyName, null, newValue);
-	}
-
-
-	// ********** collection change support **********
-
-	public void addCollectionChangeListener(CollectionChangeListener listener) {
-		this.getChangeSupport().addCollectionChangeListener(listener);
-	}
-
-	public void addCollectionChangeListener(String collectionName, CollectionChangeListener listener) {
-		this.getChangeSupport().addCollectionChangeListener(collectionName, listener);
-	}
-
-	public void removeCollectionChangeListener(CollectionChangeListener listener) {
-		this.getChangeSupport().removeCollectionChangeListener(listener);
-	}
-
-	public void removeCollectionChangeListener(String collectionName, CollectionChangeListener listener) {
-		this.getChangeSupport().removeCollectionChangeListener(collectionName, listener);
-	}
-
-	/**
-	 * Return whether the model has any collection change listeners that will
-	 * be notified when the specified collection has changed.
-	 */
-	public boolean hasAnyCollectionChangeListeners(String collectionName) {
-		return (this.changeSupport != null) && this.changeSupport.hasAnyCollectionChangeListeners(collectionName);
-	}
-
-	/**
-	 * Return whether the model has no collection change listeners that will
-	 * be notified when the specified collection has changed.
-	 */
-	public boolean hasNoCollectionChangeListeners(String collectionName) {
-		return ! this.hasAnyCollectionChangeListeners(collectionName);
-	}
-
-	/**
-	 * Return whether the model has any collection change listeners that will
-	 * be notified when any collection has changed.
-	 */
-	public boolean hasAnyCollectionChangeListeners() {
-		return (this.changeSupport != null) && this.changeSupport.hasAnyCollectionChangeListeners();
-	}
-
-	/**
-	 * Return whether the model has no collection change listeners that will
-	 * be notified when any collection has changed.
-	 */
-	public boolean hasNoCollectionChangeListeners() {
-		return ! this.hasAnyCollectionChangeListeners();
-	}
-
-	protected final void fireItemsAdded(CollectionChangeEvent event) {
-		this.getChangeSupport().fireItemsAdded(event);
-	}
-
-	protected final void fireItemsAdded(String collectionName, Collection<?> addedItems) {
-		this.getChangeSupport().fireItemsAdded(collectionName, addedItems);
-	}
-
-	protected final void fireItemAdded(String collectionName, Object addedItem) {
-		this.getChangeSupport().fireItemAdded(collectionName, addedItem);
-	}
-
-	protected final void fireItemsRemoved(CollectionChangeEvent event) {
-		this.getChangeSupport().fireItemsRemoved(event);
-	}
-
-	protected final void fireItemsRemoved(String collectionName, Collection<?> removedItems) {
-		this.getChangeSupport().fireItemsRemoved(collectionName, removedItems);
-	}
-
-	protected final void fireItemRemoved(String collectionName, Object removedItem) {
-		this.getChangeSupport().fireItemRemoved(collectionName, removedItem);
-	}
-
-	protected final void fireCollectionCleared(CollectionChangeEvent event) {
-		this.getChangeSupport().fireCollectionCleared(event);
-	}
-
-	protected final void fireCollectionCleared(String collectionName) {
-		this.getChangeSupport().fireCollectionCleared(collectionName);
-	}
-
-	protected final void fireCollectionChanged(CollectionChangeEvent event) {
-		this.getChangeSupport().fireCollectionChanged(event);
-	}
-
-	protected final void fireCollectionChanged(String collectionName) {
-		this.getChangeSupport().fireCollectionChanged(collectionName);
-	}
-
-	protected <E> boolean addItemToCollection(E item, Collection<E> collection, String collectionName) {
-		return this.getChangeSupport().addItemToCollection(item, collection, collectionName);
-	}
-
-	protected <E> boolean addItemsToCollection(E[] items, Collection<E> collection, String collectionName) {
-		return this.getChangeSupport().addItemsToCollection(items, collection, collectionName);
-	}
-
-	protected <E> boolean addItemsToCollection(Collection<? extends E> items, Collection<E> collection, String collectionName) {
-		return this.getChangeSupport().addItemsToCollection(items, collection, collectionName);
-	}
-
-	protected <E> boolean addItemsToCollection(Iterable<? extends E> items, Collection<E> collection, String collectionName) {
-		return this.getChangeSupport().addItemsToCollection(items, collection, collectionName);
-	}
-
-	protected <E> boolean addItemsToCollection(Iterator<? extends E> items, Collection<E> collection, String collectionName) {
-		return this.getChangeSupport().addItemsToCollection(items, collection, collectionName);
-	}
-
-	protected boolean removeItemFromCollection(Object item, Collection<?> collection, String collectionName) {
-		return this.getChangeSupport().removeItemFromCollection(item, collection, collectionName);
-	}
-
-	protected boolean removeItemsFromCollection(Object[] items, Collection<?> collection, String collectionName) {
-		return this.getChangeSupport().removeItemsFromCollection(items, collection, collectionName);
-	}
-
-	protected boolean removeItemsFromCollection(Collection<?> items, Collection<?> collection, String collectionName) {
-		return this.getChangeSupport().removeItemsFromCollection(items, collection, collectionName);
-	}
-
-	protected boolean removeItemsFromCollection(Iterable<?> items, Collection<?> collection, String collectionName) {
-		return this.getChangeSupport().removeItemsFromCollection(items, collection, collectionName);
-	}
-
-	protected boolean removeItemsFromCollection(Iterator<?> items, Collection<?> collection, String collectionName) {
-		return this.getChangeSupport().removeItemsFromCollection(items, collection, collectionName);
-	}
-
-	protected boolean retainItemsInCollection(Object[] items, Collection<?> collection, String collectionName) {
-		return this.getChangeSupport().retainItemsInCollection(items, collection, collectionName);
-	}
-
-	protected boolean retainItemsInCollection(Collection<?> items, Collection<?> collection, String collectionName) {
-		return this.getChangeSupport().retainItemsInCollection(items, collection, collectionName);
-	}
-
-	protected boolean retainItemsInCollection(Iterable<?> items, Collection<?> collection, String collectionName) {
-		return this.getChangeSupport().retainItemsInCollection(items, collection, collectionName);
-	}
-
-	protected boolean retainItemsInCollection(Iterator<?> items, Collection<?> collection, String collectionName) {
-		return this.getChangeSupport().retainItemsInCollection(items, collection, collectionName);
-	}
-
-	protected boolean clearCollection(Collection<?> collection, String collectionName) {
-		return this.getChangeSupport().clearCollection(collection, collectionName);
-	}
-
-	protected <E> boolean synchronizeCollection(Collection<E> newCollection, Collection<E> collection, String collectionName) {
-		return this.getChangeSupport().synchronizeCollection(newCollection, collection, collectionName);
-	}
-
-	protected <E> boolean synchronizeCollection(Iterator<E> newCollection, Collection<E> collection, String collectionName) {
-		return this.getChangeSupport().synchronizeCollection(newCollection, collection, collectionName);
-	}
-
-
-	// ********** list change support **********
-
-	public void addListChangeListener(ListChangeListener listener) {
-		this.getChangeSupport().addListChangeListener(listener);
-	}
-
-	public void addListChangeListener(String listName, ListChangeListener listener) {
-		this.getChangeSupport().addListChangeListener(listName, listener);
-	}
-
-	public void removeListChangeListener(ListChangeListener listener) {
-		this.getChangeSupport().removeListChangeListener(listener);
-	}
-
-	public void removeListChangeListener(String listName, ListChangeListener listener) {
-		this.getChangeSupport().removeListChangeListener(listName, listener);
-	}
-
-	/**
-	 * Return whether the model has any list change listeners that will
-	 * be notified when the specified list has changed.
-	 */
-	public boolean hasAnyListChangeListeners(String listName) {
-		return (this.changeSupport != null) && this.changeSupport.hasAnyListChangeListeners(listName);
-	}
-
-	/**
-	 * Return whether the model has no list change listeners that will
-	 * be notified when the specified list has changed.
-	 */
-	public boolean hasNoListChangeListeners(String listName) {
-		return ! this.hasAnyListChangeListeners(listName);
-	}
-
-	/**
-	 * Return whether the model has any list change listeners that will
-	 * be notified when any list has changed.
-	 */
-	public boolean hasAnyListChangeListeners() {
-		return (this.changeSupport != null) && this.changeSupport.hasAnyListChangeListeners();
-	}
-
-	/**
-	 * Return whether the model has no list change listeners that will
-	 * be notified when any list has changed.
-	 */
-	public boolean hasNoListChangeListeners() {
-		return ! this.hasAnyListChangeListeners();
-	}
-
-	protected final void fireItemsAdded(ListChangeEvent event) {
-		this.getChangeSupport().fireItemsAdded(event);
-	}
-
-	protected final void fireItemsAdded(String listName, int index, List<?> addedItems) {
-		this.getChangeSupport().fireItemsAdded(listName, index, addedItems);
-	}
-
-	protected final void fireItemAdded(String listName, int index, Object addedItem) {
-		this.getChangeSupport().fireItemAdded(listName, index, addedItem);
-	}
-
-	protected final void fireItemsRemoved(ListChangeEvent event) {
-		this.getChangeSupport().fireItemsRemoved(event);
-	}
-
-	protected final void fireItemsRemoved(String listName, int index, List<?> removedItems) {
-		this.getChangeSupport().fireItemsRemoved(listName, index, removedItems);
-	}
-
-	protected final void fireItemRemoved(String listName, int index, Object removedItem) {
-		this.getChangeSupport().fireItemRemoved(listName, index, removedItem);
-	}
-
-	protected final void fireItemsReplaced(ListChangeEvent event) {
-		this.getChangeSupport().fireItemsReplaced(event);
-	}
-
-	protected final <E> void fireItemsReplaced(String listName, int index, List<? extends E> newItems, List<E> replacedItems) {
-		this.getChangeSupport().fireItemsReplaced(listName, index, newItems, replacedItems);
-	}
-
-	protected final void fireItemReplaced(String listName, int index, Object newItem, Object replacedItem) {
-		this.getChangeSupport().fireItemReplaced(listName, index, newItem, replacedItem);
-	}
-
-	protected final void fireItemsMoved(ListChangeEvent event) {
-		this.getChangeSupport().fireItemsMoved(event);
-	}
-
-	protected final <E> void fireItemsMoved(String listName, int targetIndex, int sourceIndex, int length) {
-		this.getChangeSupport().fireItemsMoved(listName, targetIndex, sourceIndex, length);
-	}
-
-	protected final void fireItemMoved(String listName, int targetIndex, int sourceIndex) {
-		this.getChangeSupport().fireItemMoved(listName, targetIndex, sourceIndex);
-	}
-
-	protected final void fireListCleared(ListChangeEvent event) {
-		this.getChangeSupport().fireListCleared(event);
-	}
-
-	protected final void fireListCleared(String listName) {
-		this.getChangeSupport().fireListCleared(listName);
-	}
-
-	protected final void fireListChanged(ListChangeEvent event) {
-		this.getChangeSupport().fireListChanged(event);
-	}
-
-	protected final void fireListChanged(String listName) {
-		this.getChangeSupport().fireListChanged(listName);
-	}
-
-	protected <E> void addItemToList(int index, E item, List<E> list, String listName) {
-		this.getChangeSupport().addItemToList(index, item, list, listName);
-	}
-
-	protected <E> boolean addItemToList(E item, List<E> list, String listName) {
-		return this.getChangeSupport().addItemToList(item, list, listName);
-	}
-
-	protected <E> boolean addItemsToList(int index, E[] items, List<E> list, String listName) {
-		return this.getChangeSupport().addItemsToList(index, items, list, listName);
-	}
-
-	protected <E> boolean addItemsToList(int index, Collection<? extends E> items, List<E> list, String listName) {
-		return this.getChangeSupport().addItemsToList(index, items, list, listName);
-	}
-
-	protected <E> boolean addItemsToList(int index, Iterable<? extends E> items, List<E> list, String listName) {
-		return this.getChangeSupport().addItemsToList(index, items, list, listName);
-	}
-
-	protected <E> boolean addItemsToList(int index, Iterator<? extends E> items, List<E> list, String listName) {
-		return this.getChangeSupport().addItemsToList(index, items, list, listName);
-	}
-
-	protected <E> boolean addItemsToList(E[] items, List<E> list, String listName) {
-		return this.getChangeSupport().addItemsToList(items, list, listName);
-	}
-
-	protected <E> boolean addItemsToList(Collection<? extends E> items, List<E> list, String listName) {
-		return this.getChangeSupport().addItemsToList(items, list, listName);
-	}
-
-	protected <E> boolean addItemsToList(Iterable<? extends E> items, List<E> list, String listName) {
-		return this.getChangeSupport().addItemsToList(items, list, listName);
-	}
-
-	protected <E> boolean addItemsToList(Iterator<? extends E> items, List<E> list, String listName) {
-		return this.getChangeSupport().addItemsToList(items, list, listName);
-	}
-
-	protected <E> E removeItemFromList(int index, List<E> list, String listName) {
-		return this.getChangeSupport().removeItemFromList(index, list, listName);
-	}
-
-	protected boolean removeItemFromList(Object item, List<?> list, String listName) {
-		return this.getChangeSupport().removeItemFromList(item, list, listName);
-	}
-
-	protected <E> List<E> removeItemsFromList(int index, int length, List<E> list, String listName) {
-		return this.getChangeSupport().removeItemsFromList(index, length, list, listName);
-	}
-
-	protected boolean removeItemsFromList(Object[] items, List<?> list, String listName) {
-		return this.getChangeSupport().removeItemsFromList(items, list, listName);
-	}
-
-	protected boolean removeItemsFromList(Collection<?> items, List<?> list, String listName) {
-		return this.getChangeSupport().removeItemsFromList(items, list, listName);
-	}
-
-	protected boolean removeItemsFromList(Iterable<?> items, List<?> list, String listName) {
-		return this.getChangeSupport().removeItemsFromList(items, list, listName);
-	}
-
-	protected boolean removeItemsFromList(Iterator<?> items, List<?> list, String listName) {
-		return this.getChangeSupport().removeItemsFromList(items, list, listName);
-	}
-
-	protected boolean retainItemsInList(Object[] items, List<?> list, String listName) {
-		return this.getChangeSupport().retainItemsInList(items, list, listName);
-	}
-
-	protected boolean retainItemsInList(Collection<?> items, List<?> list, String listName) {
-		return this.getChangeSupport().retainItemsInList(items, list, listName);
-	}
-
-	protected boolean retainItemsInList(Iterable<?> items, List<?> list, String listName) {
-		return this.getChangeSupport().retainItemsInList(items, list, listName);
-	}
-
-	protected boolean retainItemsInList(Iterator<?> items, List<?> list, String listName) {
-		return this.getChangeSupport().retainItemsInList(items, list, listName);
-	}
-
-	protected <E> E setItemInList(int index, E item, List<E> list, String listName) {
-		return this.getChangeSupport().setItemInList(index, item, list, listName);
-	}
-
-	protected <E> int replaceItemInList(E oldItem, E newItem, List<E> list, String listName) {
-		return this.getChangeSupport().replaceItemInList(oldItem, newItem, list, listName);
-	}
-
-	protected <E> List<E> setItemsInList(int index, E[] items, List<E> list, String listName) {
-		return this.getChangeSupport().setItemsInList(index, items, list, listName);
-	}
-
-	protected <E> List<E> setItemsInList(int index, List<? extends E> items, List<E> list, String listName) {
-		return this.getChangeSupport().setItemsInList(index, items, list, listName);
-	}
-
-	protected <E> void moveItemsInList(int targetIndex, int sourceIndex, int length, List<E> list, String listName) {
-		this.getChangeSupport().moveItemsInList(targetIndex, sourceIndex, length, list, listName);
-	}
-
-	protected <E> void moveItemInList(int targetIndex, int sourceIndex, List<E> list, String listName) {
-		this.getChangeSupport().moveItemInList(targetIndex, sourceIndex, list, listName);
-	}
-
-	protected boolean clearList(List<?> list, String listName) {
-		return this.getChangeSupport().clearList(list, listName);
-	}
-
-	protected <E> boolean synchronizeList(List<E> newList, List<E> list, String listName) {
-		return this.getChangeSupport().synchronizeList(newList, list, listName);
-	}
-
-	protected <E> boolean synchronizeList(Iterator<E> newList, List<E> list, String listName) {
-		return this.getChangeSupport().synchronizeList(newList, list, listName);
-	}
-
-
-	// ********** tree change support **********
-
-	public void addTreeChangeListener(TreeChangeListener listener) {
-		this.getChangeSupport().addTreeChangeListener(listener);
-	}
-
-	public void addTreeChangeListener(String treeName, TreeChangeListener listener) {
-		this.getChangeSupport().addTreeChangeListener(treeName, listener);
-	}
-
-	public void removeTreeChangeListener(TreeChangeListener listener) {
-		this.getChangeSupport().removeTreeChangeListener(listener);
-	}
-
-	public void removeTreeChangeListener(String treeName, TreeChangeListener listener) {
-		this.getChangeSupport().removeTreeChangeListener(treeName, listener);
-	}
-
-	/**
-	 * Return whether the model has any tree change listeners that will
-	 * be notified when the specified tree has changed.
-	 */
-	public boolean hasAnyTreeChangeListeners(String treeName) {
-		return (this.changeSupport != null) && this.changeSupport.hasAnyTreeChangeListeners(treeName);
-	}
-
-	/**
-	 * Return whether the model has no tree change listeners that will
-	 * be notified when the specified tree has changed.
-	 */
-	public boolean hasNoTreeChangeListeners(String treeName) {
-		return ! this.hasAnyTreeChangeListeners(treeName);
-	}
-
-	/**
-	 * Return whether the model has any tree change listeners that will
-	 * be notified when any tree has changed.
-	 */
-	public boolean hasAnyTreeChangeListeners() {
-		return (this.changeSupport != null) && this.changeSupport.hasAnyTreeChangeListeners();
-	}
-
-	/**
-	 * Return whether the model has no tree change listeners that will
-	 * be notified when any tree has changed.
-	 */
-	public boolean hasNoTreeChangeListeners() {
-		return ! this.hasAnyTreeChangeListeners();
-	}
-
-	protected final void fireNodeAdded(TreeChangeEvent event) {
-		this.getChangeSupport().fireNodeAdded(event);
-	}
-
-	protected final void fireNodeAdded(String treeName, Object[] path) {
-		this.getChangeSupport().fireNodeAdded(treeName, path);
-	}
-
-	protected final void fireNodeRemoved(TreeChangeEvent event) {
-		this.getChangeSupport().fireNodeRemoved(event);
-	}
-
-	protected final void fireNodeRemoved(String treeName, Object[] path) {
-		this.getChangeSupport().fireNodeRemoved(treeName, path);
-	}
-
-	protected final void fireTreeCleared(TreeChangeEvent event) {
-		this.getChangeSupport().fireTreeCleared(event);
-	}
-
-	protected final void fireTreeCleared(String treeName, Object[] path) {
-		this.getChangeSupport().fireTreeCleared(treeName, path);
-	}
-
-	protected final void fireTreeCleared(String treeName) {
-		this.getChangeSupport().fireTreeCleared(treeName);
-	}
-
-	protected final void fireTreeChanged(TreeChangeEvent event) {
-		this.getChangeSupport().fireTreeChanged(event);
-	}
-
-	protected final void fireTreeChanged(String treeName, Object[] path) {
-		this.getChangeSupport().fireTreeChanged(treeName, path);
-	}
-
-	protected final void fireTreeChanged(String treeName) {
-		this.getChangeSupport().fireTreeChanged(treeName);
-	}
-
-
-	// ********** convenience methods **********
-
-	/**
-	 * Return whether the values are equal, with the appropriate null checks.
-	 * Convenience method for checking whether an attribute value has changed.
-	 * 
-	 * DO NOT use this to determine whether to fire a change notification,
-	 * ChangeSupport already does that.
-	 */
-	protected final boolean valuesAreEqual(Object value1, Object value2) {
-		return this.getChangeSupport().valuesAreEqual(value1, value2);
-	}
-	protected final boolean attributeValueHasNotChanged(Object oldValue, Object newValue) {
-		return this.valuesAreEqual(oldValue, newValue);
-	}
-
-
-	/**
-	 * Return whether the values are different, with the appropriate null checks.
-	 * Convenience method for checking whether an attribute value has changed.
-	 * 
-	 * DO NOT use this to determine whether to fire a change notification,
-	 * ChangeSupport already does that.
-	 * 
-	 * For example, after firing the change notification, you can use this method
-	 * to decide if some other, related, piece of state needs to be synchronized
-	 * with the state that just changed.
-	 */
-	protected final boolean valuesAreDifferent(Object value1, Object value2) {
-		return this.getChangeSupport().valuesAreDifferent(value1, value2);
-	}
-	protected final boolean attributeValueHasChanged(Object oldValue, Object newValue) {
-		return this.valuesAreDifferent(oldValue, newValue);
-	}
-
-
-	// ********** Object overrides **********
-
-	/**
-	 * Although cloning models is usually not a Good Idea,
-	 * we should at least support it properly.
-	 */
-	@Override
-	protected AbstractModel clone() throws CloneNotSupportedException {
-		AbstractModel clone = (AbstractModel) super.clone();
-		// clear out change support - models do not share listeners
-		clone.changeSupport = null;
-		return clone;
-	}
-
-	@Override
-	public String toString() {
-		StringBuilder sb = new StringBuilder();
-		StringTools.buildSimpleToStringOn(this, sb);
-		sb.append(" ("); //$NON-NLS-1$
-		this.toString(sb);
-		sb.append(')');
-		return sb.toString();
-	}
-
-	/**
-	 * make this public so one model can call a nested model's
-	 * #toString(StringBuilder)
-	 */
-	public void toString(@SuppressWarnings("unused") StringBuilder sb) {
-		// subclasses should override this to do something a bit more helpful
-	}
-
-}
diff --git a/jpa/plugins/org.eclipse.jpt.utility/src/org/eclipse/jpt/utility/internal/model/CallbackChangeSupport.java b/jpa/plugins/org.eclipse.jpt.utility/src/org/eclipse/jpt/utility/internal/model/CallbackChangeSupport.java
deleted file mode 100644
index f94eac8..0000000
--- a/jpa/plugins/org.eclipse.jpt.utility/src/org/eclipse/jpt/utility/internal/model/CallbackChangeSupport.java
+++ /dev/null
@@ -1,74 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008, 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.utility.internal.model;
-
-import java.util.EventListener;
-
-import org.eclipse.jpt.utility.internal.ListenerList;
-import org.eclipse.jpt.utility.model.Model;
-
-/**
- * This change support class will notify listeners whenever one of the source's
- * aspects has changed. Only the aspect name is passed to the listener; no
- * event is generated. This allows the listeners to delegate to the change
- * support object verification that an aspect as actually changed. This is
- * useful for simple things like setting dirty flags, blanket validation, and
- * blanket sychronization; i.e. things that might be interested in the *name*
- * of the aspect that changed but not so much *how* the aspect changed.
- */
-public class CallbackChangeSupport
-	extends ChangeSupport
-{
-	protected final ListenerList<Listener> listenerList;
-	private static final long serialVersionUID = 1L;
-
-
-	public CallbackChangeSupport(Model source, Listener listener) {
-		this(source);
-		this.listenerList.add(listener);
-	}
-
-	public CallbackChangeSupport(Model source) {
-		super(source);
-		this.listenerList = new ListenerList<Listener>(Listener.class);
-	}
-
-	@Override
-	protected void aspectChanged(String aspectName) {
-		super.aspectChanged(aspectName);
-		for (Listener listener : this.listenerList.getListeners()) {
-			listener.aspectChanged(aspectName);
-		}
-	}
-
-	public void addListener(Listener listener) {
-		this.listenerList.add(listener);
-	}
-
-	public void removeListener(Listener listener) {
-		this.listenerList.remove(listener);
-	}
-
-
-	// ********** listener interface **********
-
-	/**
-	 * Listener that will be notified of any aspect changes.
-	 */
-	public interface Listener extends EventListener {
-
-		/**
-		 * The specified aspect changed.
-		 */
-		void aspectChanged(String aspectName);
-
-	}
-
-}
diff --git a/jpa/plugins/org.eclipse.jpt.utility/src/org/eclipse/jpt/utility/internal/model/ChangeSupport.java b/jpa/plugins/org.eclipse.jpt.utility/src/org/eclipse/jpt/utility/internal/model/ChangeSupport.java
deleted file mode 100644
index 0d0827e..0000000
--- a/jpa/plugins/org.eclipse.jpt.utility/src/org/eclipse/jpt/utility/internal/model/ChangeSupport.java
+++ /dev/null
@@ -1,3258 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.utility.internal.model;
-
-import java.io.IOException;
-import java.io.ObjectInputStream;
-import java.io.ObjectOutputStream;
-import java.io.Serializable;
-import java.lang.reflect.Array;
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.Collection;
-import java.util.Collections;
-import java.util.Iterator;
-import java.util.List;
-
-import org.eclipse.jpt.utility.internal.ClassTools;
-import org.eclipse.jpt.utility.internal.CollectionTools;
-import org.eclipse.jpt.utility.internal.HashBag;
-import org.eclipse.jpt.utility.internal.StringTools;
-import org.eclipse.jpt.utility.internal.iterators.ArrayIterator;
-import org.eclipse.jpt.utility.model.Model;
-import org.eclipse.jpt.utility.model.event.CollectionChangeEvent;
-import org.eclipse.jpt.utility.model.event.ListChangeEvent;
-import org.eclipse.jpt.utility.model.event.PropertyChangeEvent;
-import org.eclipse.jpt.utility.model.event.StateChangeEvent;
-import org.eclipse.jpt.utility.model.event.TreeChangeEvent;
-import org.eclipse.jpt.utility.model.listener.ChangeListener;
-import org.eclipse.jpt.utility.model.listener.CollectionChangeListener;
-import org.eclipse.jpt.utility.model.listener.ListChangeListener;
-import org.eclipse.jpt.utility.model.listener.PropertyChangeListener;
-import org.eclipse.jpt.utility.model.listener.StateChangeListener;
-import org.eclipse.jpt.utility.model.listener.TreeChangeListener;
-
-/**
- * Support object that can be used by implementors of the Model interface.
- * It provides for state, property, collection, list, and tree change notifications to
- * listeners.
- * 
- * NB1: There is lots of copy-n-paste code in this class. Nearly all of this duplication
- * is an effort to prevent the unnecessary creation of new objects (typically event
- * objects). Since many events are fired when there are no listeners, we postpone
- * the creation of event objects until we know we have interested listeners.
- * Most methods have the "non-duplicated" version of the method body commented
- * out at the top of the current method body.
- * The hope was that this class would prove to be fairly static and the duplicated
- * code would not prove onerous; but that has not proven to be
- * the case, as we have added support for "state" changes, "dirty" notification,
- * and custom "notifiers", with more to come, I'm sure....  ~bjv
- * 
- * NB2: This class will check to see if, during the firing of events, a listener
- * on the original, cloned, list of listeners has been removed from the master
- * list of listeners *before* it is notified. If the listener has been removed
- * "concurrently" it will *not* be notified. (See the code that uses the
- * 'stillListening' local boolean flag.)
- * 
- * NB3: Any listener that is added during the firing of events will *not* be
- * also notified.
- * 
- * NB4: This class is serializable, but it will only write out listeners that
- * are also serializable while silently leaving behind listeners that are not.
- * 
- * TODO fire a state change event with *every* change?
- * TODO use objects (IDs?) instead of strings to identify aspects?
- */
-public class ChangeSupport
-	implements Serializable
-{
-
-	/** The object to be provided as the "source" for any generated events. */
-	protected final Model source;
-
-	/** Associate a listener class to a collection of "generic" listeners for that class. */
-	private transient GenericListenerList[] genericListeners = EMPTY_GENERIC_LISTENERS;
-		private static final GenericListenerList[] EMPTY_GENERIC_LISTENERS = new GenericListenerList[0];
-
-	/** Associate aspect names to child change support objects. */
-	private AspectChild[] aspectChildren = EMPTY_ASPECT_CHILDREN;
-		private static final AspectChild[] EMPTY_ASPECT_CHILDREN = new AspectChild[0];
-
-	private static final long serialVersionUID = 1L;
-
-
-	// ********** constructor **********
-
-	/**
-	 * Construct support for the specified source of change events.
-	 * The source cannot be null.
-	 */
-	public ChangeSupport(Model source) {
-		super();
-		if (source == null) {
-			throw new NullPointerException();
-		}
-		this.source = source;
-	}
-
-
-	// ********** internal behavior **********
-
-	/**
-	 * Add a "generic" listener that listens to all events appropriate to that
-	 * listener, regardless of the aspect name associated with that event.
-	 * The listener cannot be null.
-	 */
-	protected <T extends ChangeListener> void addListener(Class<T> listenerClass, T listener) {
-		if (listener == null) {
-			throw new NullPointerException();  // better sooner than later
-		}
-		synchronized (this) {
-			GenericListenerList gll = this.getGenericListenerList(listenerClass);
-			if (gll == null) {
-				this.addGenericListenerList(listenerClass, listener);
-			} else {
-				gll.addListener(listener);
-			}
-		}
-	}
-
-	/**
-	 * Return the "generic" listener list for the specified listener class.
-	 * Return null if the list is not present.
-	 */
-	protected GenericListenerList getGenericListenerList(Class<? extends ChangeListener> listenerClass) {
-		for (GenericListenerList gll : this.genericListeners) {
-			if (gll.listenerClass == listenerClass) {
-				return gll;
-			}
-		}
-		return null;
-	}
-
-	/**
-	 * Add the "generic" listener list for the specified listener class.
-	 * Return the newly-built generic listener list.
-	 */
-	protected <T extends ChangeListener> GenericListenerList addGenericListenerList(Class<T> listenerClass, T listener) {
-		GenericListenerList gll = new GenericListenerList(listenerClass, listener);
-		this.genericListeners = CollectionTools.add(this.genericListeners, gll);
-		return gll;
-	}
-
-	/**
-	 * Adds a listener that listens to all events appropriate to that listener,
-	 * and only to those events carrying the aspect name specified.
-	 * The aspect name cannot be null and the listener cannot be null.
-	 */
-	protected <T extends ChangeListener> void addListener(String aspectName, Class<T> listenerClass, T listener) {
-		if ((aspectName == null) || (listener == null)) {
-			throw new NullPointerException();  // better sooner than later
-		}
-		synchronized (this) {
-			ChangeSupport child = this.getChild(aspectName);
-			if (child == null) {
-				child = this.addChild(aspectName);
-			}
-			child.addListener(listenerClass, listener);
-		}
-	}
-
-	/**
-	 * Return the child change support for the specified aspect name.
-	 * Return null if the aspect name is null or the child is not present.
-	 */
-	protected ChangeSupport getChild(String aspectName) {
-		// put in a null check to simplify calling code
-		if (aspectName == null) {
-			return null;
-		}
-		for (AspectChild aspectChild : this.aspectChildren) {
-			if (aspectChild.aspectName.equals(aspectName)) {
-				return aspectChild.child;
-			}
-		}
-		return null;
-	}
-
-	/**
-	 * Add the child change support for the specified aspect name.
-	 * Return the newly-built child change support.
-	 */
-	protected ChangeSupport addChild(String aspectName) {
-		ChangeSupport child = this.buildChild();
-		this.aspectChildren = CollectionTools.add(this.aspectChildren, new AspectChild(aspectName, child));
-		return child;
-	}
-
-	/**
-	 * Build and return a child change support to hold aspect-specific listeners.
-	 */
-	protected ChangeSupport buildChild() {
-		return new Child(this.source);
-	}
-
-	/**
-	 * Removes a "generic" listener that has been registered for all events
-	 * appropriate to that listener.
-	 */
-	protected <T extends ChangeListener> void removeListener(Class<T> listenerClass, T listener) {
-		synchronized (this) {
-			GenericListenerList gll = this.getGenericListenerList(listenerClass);
-			if (gll == null) {
-				this.handleUnregisteredListener(listener);
-			} else {
-				if ( ! gll.removeListener(listener)) {  // leave the GLL, even if it is empty?
-					this.handleUnregisteredListener(listener);
-				}
-			}
-		}
-	}
-
-	/**
-	 * Removes a listener that has been registered for appropriate
-	 * events carrying the specified aspect name.
-	 */
-	protected <T extends ChangeListener> void removeListener(String aspectName, Class<T> listenerClass, T listener) {
-		synchronized (this) {
-			ChangeSupport child = this.getChild(aspectName);
-			if (child == null) {
-				this.handleUnregisteredListener(listener);
-			} else {
-				child.removeListener(listenerClass, listener);  // leave the child, even if it is empty?
-			}
-		}
-	}
-
-	protected <T extends ChangeListener> void handleUnregisteredListener(T listener) {
-		throw new IllegalArgumentException("listener not registered: " + listener); //$NON-NLS-1$
-	}
-
-
-	// ********** internal queries **********
-
-	/**
-	 * Return the "generic" listeners for the specified listener class.
-	 * Return null if there are no listeners.
-	 */
-	protected ChangeListener[] getListeners(Class<? extends ChangeListener> listenerClass) {
-		GenericListenerList gll = this.getGenericListenerList(listenerClass);
-		return (gll == null) ? null : gll.listeners;
-	}
-
-	/**
-	 * Return whether there are any "generic" listeners for the specified
-	 * listener class.
-	 */
-	protected synchronized <T extends ChangeListener> boolean hasAnyListeners(Class<T> listenerClass) {
-		GenericListenerList gll = this.getGenericListenerList(listenerClass);
-		return (gll != null) && gll.hasListeners();
-	}
-
-	/**
-	 * Return whether there are no "generic" listeners for the specified
-	 * listener class.
-	 */
-	protected <T extends ChangeListener> boolean hasNoListeners(Class<T> listenerClass) {
-		return ! this.hasAnyListeners(listenerClass);
-	}
-
-	/**
-	 * Return whether there are any listeners for the specified
-	 * listener class and aspect name.
-	 */
-	protected synchronized boolean hasAnyListeners(Class<? extends ChangeListener> listenerClass, String aspectName) {
-		if (this.hasAnyListeners(listenerClass)) {
-			return true;  // we have a "generic" listener
-		}
-		ChangeSupport child = this.getChild(aspectName);
-		return (child != null) &&
-			child.hasAnyListeners(listenerClass);
-	}
-
-	/**
-	 * Return whether there are no "generic" listeners for the specified
-	 * listener class and aspect name.
-	 */
-	protected <T extends ChangeListener> boolean hasNoListeners(Class<T> listenerClass, String aspectName) {
-		return ! this.hasAnyListeners(listenerClass, aspectName);
-	}
-
-
-	// ********** behavior **********
-
-	/**
-	 * The specified aspect of the source has changed;
-	 * override this method to perform things like setting a
-	 * dirty flag or validating the source's state.
-	 * The aspect ID will be null if a "state change" occurred.
-	 */
-	protected void aspectChanged(@SuppressWarnings("unused") String aspectName) {
-		// the default is to do nothing
-	}
-
-
-	// ********** state change support **********
-
-	protected static final Class<StateChangeListener> STATE_CHANGE_LISTENER_CLASS = StateChangeListener.class;
-
-	/**
-	 * Add a state change listener.
-	 */
-	public void addStateChangeListener(StateChangeListener listener) {
-		this.addListener(STATE_CHANGE_LISTENER_CLASS, listener);
-	}
-
-	/**
-	 * Remove a state change listener.
-	 */
-	public void removeStateChangeListener(StateChangeListener listener) {
-		this.removeListener(STATE_CHANGE_LISTENER_CLASS, listener);
-	}
-
-	/**
-	 * Return whether there are any state change listeners.
-	 */
-	public boolean hasAnyStateChangeListeners() {
-		return this.hasAnyListeners(STATE_CHANGE_LISTENER_CLASS);
-	}
-
-	private StateChangeListener[] getStateChangeListeners() {
-		return (StateChangeListener[]) this.getListeners(STATE_CHANGE_LISTENER_CLASS);
-	}
-
-	/**
-	 * Fire the specified state change event to any registered listeners.
-	 */
-	public void fireStateChanged(StateChangeEvent event) {
-
-		StateChangeListener[] targets = null;
-
-		synchronized (this) {
-			StateChangeListener[] stateChangeListeners = this.getStateChangeListeners();
-			if (stateChangeListeners != null) {
-				targets = stateChangeListeners.clone();
-			}
-		}
-
-		if (targets != null) {
-			for (StateChangeListener target : targets) {
-				boolean stillListening;
-				synchronized (this) {
-					stillListening = CollectionTools.contains(this.getStateChangeListeners(), target);
-				}
-				if (stillListening) {
-					target.stateChanged(event);
-				}
-			}
-		}
-
-		this.aspectChanged(null);
-	}
-
-	/**
-	 * Report a generic state change event to any registered state change
-	 * listeners.
-	 */
-	public void fireStateChanged() {
-//		this.fireStateChange(new StateChangeEvent(this.source));
-
-		StateChangeListener[] targets = null;
-
-		synchronized (this) {
-			StateChangeListener[] stateChangeListeners = this.getStateChangeListeners();
-			if (stateChangeListeners != null) {
-				targets = stateChangeListeners.clone();
-			}
-		}
-
-		if (targets != null) {
-			StateChangeEvent event = null;
-			for (StateChangeListener target : targets) {
-				boolean stillListening;
-				synchronized (this) {
-					stillListening = CollectionTools.contains(this.getStateChangeListeners(), target);
-				}
-				if (stillListening) {
-					if (event == null) {
-						// here's the reason for the duplicate code...
-						event = new StateChangeEvent(this.source);
-					}
-					target.stateChanged(event);
-				}
-			}
-		}
-
-		this.aspectChanged(null);
-	}
-
-
-	// ********** property change support **********
-
-	protected static final Class<PropertyChangeListener> PROPERTY_CHANGE_LISTENER_CLASS = PropertyChangeListener.class;
-
-	/**
-	 * Add a property change listener that is registered for all properties.
-	 */
-	public void addPropertyChangeListener(PropertyChangeListener listener) {
-		this.addListener(PROPERTY_CHANGE_LISTENER_CLASS, listener);
-	}
-
-	/**
-	 * Add a property change listener for the specified property. The listener
-	 * will be notified only for changes to the specified property.
-	 */
-	public void addPropertyChangeListener(String propertyName, PropertyChangeListener listener) {
-		this.addListener(propertyName, PROPERTY_CHANGE_LISTENER_CLASS, listener);
-	}
-
-	/**
-	 * Remove a property change listener that was registered for all properties.
-	 */
-	public void removePropertyChangeListener(PropertyChangeListener listener) {
-		this.removeListener(PROPERTY_CHANGE_LISTENER_CLASS, listener);
-	}
-
-	/**
-	 * Remove a property change listener that was registered for a specific property.
-	 */
-	public void removePropertyChangeListener(String propertyName, PropertyChangeListener listener) {
-		this.removeListener(propertyName, PROPERTY_CHANGE_LISTENER_CLASS, listener);
-	}
-
-	/**
-	 * Return whether there are any property change listeners that will
-	 * be notified when the specified property has changed.
-	 */
-	public boolean hasAnyPropertyChangeListeners(String propertyName) {
-		return this.hasAnyListeners(PROPERTY_CHANGE_LISTENER_CLASS, propertyName);
-	}
-
-	/**
-	 * Return whether there are any property change listeners that will
-	 * be notified when any property has changed.
-	 */
-	public boolean hasAnyPropertyChangeListeners() {
-		return this.hasAnyListeners(PROPERTY_CHANGE_LISTENER_CLASS);
-	}
-
-	private PropertyChangeListener[] getPropertyChangeListeners() {
-		return (PropertyChangeListener[]) this.getListeners(PROPERTY_CHANGE_LISTENER_CLASS);
-	}
-
-	/**
-	 * Fire the specified property change event to any registered listeners.
-	 * No event is fired if the given event's old and new values are the same;
-	 * this includes when both values are null. Use a state change event
-	 * for general purpose notification of changes.
-	 */
-	public void firePropertyChanged(PropertyChangeEvent event) {
-		if (this.valuesAreEqual(event.getOldValue(), event.getNewValue())) {
-			return; 
-		}
-
-		String propertyName = event.getPropertyName();
-
-		PropertyChangeListener[] targets = null;
-		ChangeSupport child = null;
-
-		synchronized (this) {
-			PropertyChangeListener[] propertyChangeListeners = this.getPropertyChangeListeners();
-			if (propertyChangeListeners != null) {
-				targets = propertyChangeListeners.clone();
-			}
-			child = this.getChild(propertyName);
-		}
-
-		if (targets != null) {
-			for (PropertyChangeListener target : targets) {
-				boolean stillListening;
-				synchronized (this) {
-					stillListening = CollectionTools.contains(this.getPropertyChangeListeners(), target);
-				}
-				if (stillListening) {
-					target.propertyChanged(event);
-				}
-			}
-		}
-		if (child != null) {
-			child.firePropertyChanged(event);
-		}
-
-		this.aspectChanged(propertyName);
-	}
-
-	/**
-	 * Report a bound property update to any registered property change listeners.
-	 * No event is fired if the given old and new values are the same;
-	 * this includes when both values are null. Use a state change event
-	 * for general purpose notification of changes.
-	 */
-	public void firePropertyChanged(String propertyName, Object oldValue, Object newValue) {
-//		this.firePropertyChanged(new PropertyChangeEvent(this.source, propertyName, oldValue, newValue));
-		if (this.valuesAreEqual(oldValue, newValue)) {
-			return;
-		}
-
-		PropertyChangeListener[] targets = null;
-		ChangeSupport child = null;
-
-		synchronized (this) {
-			PropertyChangeListener[] propertyChangeListeners = this.getPropertyChangeListeners();
-			if (propertyChangeListeners != null) {
-				targets = propertyChangeListeners.clone();
-			}
-			child = this.getChild(propertyName);
-		}
-
-		PropertyChangeEvent event = null;
-
-		if (targets != null) {
-			for (PropertyChangeListener target : targets) {
-				boolean stillListening;
-				synchronized (this) {
-					stillListening = CollectionTools.contains(this.getPropertyChangeListeners(), target);
-				}
-				if (stillListening) {
-					if (event == null) {
-						// here's the reason for the duplicate code...
-						event = new PropertyChangeEvent(this.source, propertyName, oldValue, newValue);
-					}
-					target.propertyChanged(event);
-				}
-			}
-		}
-		if (child != null) {
-			if (event == null) {
-				child.firePropertyChanged(propertyName, oldValue, newValue);
-			} else {
-				child.firePropertyChanged(event);
-			}
-		}
-
-		this.aspectChanged(propertyName);
-	}
-
-	/**
-	 * Report an int bound property update to any registered listeners.
-	 * No event is fired if old and new are equal.
-	 * <p>
-	 * This is merely a convenience wrapper around the more general
-	 * firePropertyChange method that takes Object values.
-	 */
-	public void firePropertyChanged(String propertyName, int oldValue, int newValue) {
-//		this.firePropertyChanged(propertyName, new Integer(oldValue), new Integer(newValue));
-		if (oldValue == newValue) {
-			return;
-		}
-
-		PropertyChangeListener[] targets = null;
-		ChangeSupport child = null;
-
-		synchronized (this) {
-			PropertyChangeListener[] propertyChangeListeners = this.getPropertyChangeListeners();
-			if (propertyChangeListeners != null) {
-				targets = propertyChangeListeners.clone();
-			}
-			child = this.getChild(propertyName);
-		}
-
-		PropertyChangeEvent event = null;
-
-		if (targets != null) {
-			for (PropertyChangeListener target : targets) {
-				boolean stillListening;
-				synchronized (this) {
-					stillListening = CollectionTools.contains(this.getPropertyChangeListeners(), target);
-				}
-				if (stillListening) {
-					if (event == null) {
-						// here's the reason for the duplicate code...
-						event = new PropertyChangeEvent(this.source, propertyName, Integer.valueOf(oldValue), Integer.valueOf(newValue));
-					}
-					target.propertyChanged(event);
-				}
-			}
-		}
-		if (child != null) {
-			if (event == null) {
-				child.firePropertyChanged(propertyName, oldValue, newValue);
-			} else {
-				child.firePropertyChanged(event);
-			}
-		}
-
-		this.aspectChanged(propertyName);
-	}
-
-	/**
-	 * Report a boolean bound property update to any registered listeners.
-	 * No event is fired if old and new are equal.
-	 * <p>
-	 * This is merely a convenience wrapper around the more general
-	 * firePropertyChange method that takes Object values.
-	 */
-	public void firePropertyChanged(String propertyName, boolean oldValue, boolean newValue) {
-//		this.firePropertyChanged(propertyName, Boolean.valueOf(oldValue), Boolean.valueOf(newValue));
-		if (oldValue == newValue) {
-			return;
-		}
-
-		PropertyChangeListener[] targets = null;
-		ChangeSupport child = null;
-
-		synchronized (this) {
-			PropertyChangeListener[] propertyChangeListeners = this.getPropertyChangeListeners();
-			if (propertyChangeListeners != null) {
-				targets = propertyChangeListeners.clone();
-			}
-			child = this.getChild(propertyName);
-		}
-
-		PropertyChangeEvent event = null;
-
-		if (targets != null) {
-			for (PropertyChangeListener target : targets) {
-				boolean stillListening;
-				synchronized (this) {
-					stillListening = CollectionTools.contains(this.getPropertyChangeListeners(), target);
-				}
-				if (stillListening) {
-					if (event == null) {
-						// here's the reason for the duplicate code...
-						event = new PropertyChangeEvent(this.source, propertyName, Boolean.valueOf(oldValue), Boolean.valueOf(newValue));
-					}
-					target.propertyChanged(event);
-				}
-			}
-		}
-		if (child != null) {
-			if (event == null) {
-				child.firePropertyChanged(propertyName, oldValue, newValue);
-			} else {
-				child.firePropertyChanged(event);
-			}
-		}
-
-		this.aspectChanged(propertyName);
-	}
-
-
-	// ********** collection change support **********
-
-	protected static final Class<CollectionChangeListener> COLLECTION_CHANGE_LISTENER_CLASS = CollectionChangeListener.class;
-
-	/**
-	 * Add a collection change listener that is registered for all collections.
-	 */
-	public void addCollectionChangeListener(CollectionChangeListener listener) {
-		this.addListener(COLLECTION_CHANGE_LISTENER_CLASS, listener);
-	}
-
-	/**
-	 * Add a collection change listener for the specified collection. The listener
-	 * will be notified only for changes to the specified collection.
-	 */
-	public void addCollectionChangeListener(String collectionName, CollectionChangeListener listener) {
-		this.addListener(collectionName, COLLECTION_CHANGE_LISTENER_CLASS, listener);
-	}
-
-	/**
-	 * Remove a collection change listener that was registered for all collections.
-	 */
-	public void removeCollectionChangeListener(CollectionChangeListener listener) {
-		this.removeListener(COLLECTION_CHANGE_LISTENER_CLASS, listener);
-	}
-
-	/**
-	 * Remove a collection change listener that was registered for a specific collection.
-	 */
-	public void removeCollectionChangeListener(String collectionName, CollectionChangeListener listener) {
-		this.removeListener(collectionName, COLLECTION_CHANGE_LISTENER_CLASS, listener);
-	}
-
-	/**
-	 * Return whether there are any collection change listeners that will
-	 * be notified when the specified collection has changed.
-	 */
-	public boolean hasAnyCollectionChangeListeners(String collectionName) {
-		return this.hasAnyListeners(COLLECTION_CHANGE_LISTENER_CLASS, collectionName);
-	}
-
-	/**
-	 * Return whether there are any collection change listeners that will
-	 * be notified when any collection has changed.
-	 */
-	public boolean hasAnyCollectionChangeListeners() {
-		return this.hasAnyListeners(COLLECTION_CHANGE_LISTENER_CLASS);
-	}
-
-	private CollectionChangeListener[] getCollectionChangeListeners() {
-		return (CollectionChangeListener[]) this.getListeners(COLLECTION_CHANGE_LISTENER_CLASS);
-	}
-
-	/**
-	 * Report a bound collection update to any registered listeners.
-	 */
-	public void fireItemsAdded(CollectionChangeEvent event) {
-		if (event.itemsSize() == 0) {
-			return;
-		}
-
-		String collectionName = event.getCollectionName();
-
-		CollectionChangeListener[] targets = null;
-		ChangeSupport child = null;
-
-		synchronized (this) {
-			CollectionChangeListener[] collectionChangeListeners = this.getCollectionChangeListeners();
-			if (collectionChangeListeners != null) {
-				targets = collectionChangeListeners.clone();
-			}
-			child = this.getChild(collectionName);
-		}
-
-		if (targets != null) {
-			for (CollectionChangeListener target : targets) {
-				boolean stillListening;
-				synchronized (this) {
-					stillListening = CollectionTools.contains(this.getCollectionChangeListeners(), target);
-				}
-				if (stillListening) {
-					target.itemsAdded(event);
-				}
-			}
-		}
-		if (child != null) {
-			child.fireItemsAdded(event);
-		}
-
-		this.aspectChanged(collectionName);
-	}
-
-	/**
-	 * Report a bound collection update to any registered listeners.
-	 */
-	public void fireItemsAdded(String collectionName, Collection<?> addedItems) {
-//		this.fireItemsAdded(new CollectionChangeEvent(this.source, collectionName, addedItems));
-		if (addedItems.isEmpty()) {
-			return;
-		}
-
-		CollectionChangeListener[] targets = null;
-		ChangeSupport child = null;
-
-		synchronized (this) {
-			CollectionChangeListener[] collectionChangeListeners = this.getCollectionChangeListeners();
-			if (collectionChangeListeners != null) {
-				targets = collectionChangeListeners.clone();
-			}
-			child = this.getChild(collectionName);
-		}
-
-		CollectionChangeEvent event = null;
-
-		if (targets != null) {
-			for (CollectionChangeListener target : targets) {
-				boolean stillListening;
-				synchronized (this) {
-					stillListening = CollectionTools.contains(this.getCollectionChangeListeners(), target);
-				}
-				if (stillListening) {
-					if (event == null) {
-						// here's the reason for the duplicate code...
-						event = new CollectionChangeEvent(this.source, collectionName, addedItems);
-					}
-					target.itemsAdded(event);
-				}
-			}
-		}
-		if (child != null) {
-			if (event == null) {
-				child.fireItemsAdded(collectionName, addedItems);
-			} else {
-				child.fireItemsAdded(event);
-			}
-		}
-
-		this.aspectChanged(collectionName);
-	}
-
-	/**
-	 * Report a bound collection update to any registered listeners.
-	 */
-	public void fireItemAdded(String collectionName, Object addedItem) {
-//		this.fireItemsAdded(collectionName, Collections.singleton(addedItem));
-
-		CollectionChangeListener[] targets = null;
-		ChangeSupport child = null;
-
-		synchronized (this) {
-			CollectionChangeListener[] collectionChangeListeners = this.getCollectionChangeListeners();
-			if (collectionChangeListeners != null) {
-				targets = collectionChangeListeners.clone();
-			}
-			child = this.getChild(collectionName);
-		}
-
-		CollectionChangeEvent event = null;
-
-		if (targets != null) {
-			for (CollectionChangeListener target : targets) {
-				boolean stillListening;
-				synchronized (this) {
-					stillListening = CollectionTools.contains(this.getCollectionChangeListeners(), target);
-				}
-				if (stillListening) {
-					if (event == null) {
-						// here's the reason for the duplicate code...
-						event = new CollectionChangeEvent(this.source, collectionName, Collections.singleton(addedItem));
-					}
-					target.itemsAdded(event);
-				}
-			}
-		}
-		if (child != null) {
-			if (event == null) {
-				child.fireItemAdded(collectionName, addedItem);
-			} else {
-				child.fireItemsAdded(event);
-			}
-		}
-
-		this.aspectChanged(collectionName);
-	}
-
-	/**
-	 * Report a bound collection update to any registered listeners.
-	 */
-	public void fireItemsRemoved(CollectionChangeEvent event) {
-		if (event.itemsSize() == 0) {
-			return;
-		}
-
-		String collectionName = event.getCollectionName();
-
-		CollectionChangeListener[] targets = null;
-		ChangeSupport child = null;
-
-		synchronized (this) {
-			CollectionChangeListener[] collectionChangeListeners = this.getCollectionChangeListeners();
-			if (collectionChangeListeners != null) {
-				targets = collectionChangeListeners.clone();
-			}
-			child = this.getChild(collectionName);
-		}
-
-		if (targets != null) {
-			for (CollectionChangeListener target : targets) {
-				boolean stillListening;
-				synchronized (this) {
-					stillListening = CollectionTools.contains(this.getCollectionChangeListeners(), target);
-				}
-				if (stillListening) {
-					target.itemsRemoved(event);
-				}
-			}
-		}
-		if (child != null) {
-			child.fireItemsRemoved(event);
-		}
-
-		this.aspectChanged(collectionName);
-	}
-
-	/**
-	 * Report a bound collection update to any registered listeners.
-	 */
-	public void fireItemsRemoved(String collectionName, Collection<?> removedItems) {
-//		this.fireItemsRemoved(new CollectionChangeEvent(this.source, collectionName, removedItems));
-		if (removedItems.isEmpty()) {
-			return;
-		}
-
-		CollectionChangeListener[] targets = null;
-		ChangeSupport child = null;
-
-		synchronized (this) {
-			CollectionChangeListener[] collectionChangeListeners = this.getCollectionChangeListeners();
-			if (collectionChangeListeners != null) {
-				targets = collectionChangeListeners.clone();
-			}
-			child = this.getChild(collectionName);
-		}
-
-		CollectionChangeEvent event = null;
-
-		if (targets != null) {
-			for (CollectionChangeListener target : targets) {
-				boolean stillListening;
-				synchronized (this) {
-					stillListening = CollectionTools.contains(this.getCollectionChangeListeners(), target);
-				}
-				if (stillListening) {
-					if (event == null) {
-						// here's the reason for the duplicate code...
-						event = new CollectionChangeEvent(this.source, collectionName, removedItems);
-					}
-					target.itemsRemoved(event);
-				}
-			}
-		}
-		if (child != null) {
-			if (event == null) {
-				child.fireItemsRemoved(collectionName, removedItems);
-			} else {
-				child.fireItemsRemoved(event);
-			}
-		}
-
-		this.aspectChanged(collectionName);
-	}
-
-	/**
-	 * Report a bound collection update to any registered listeners.
-	 */
-	public void fireItemRemoved(String collectionName, Object removedItem) {
-//		this.fireItemsRemoved(collectionName, Collections.singleton(removedItem));
-
-		CollectionChangeListener[] targets = null;
-		ChangeSupport child = null;
-
-		synchronized (this) {
-			CollectionChangeListener[] collectionChangeListeners = this.getCollectionChangeListeners();
-			if (collectionChangeListeners != null) {
-				targets = collectionChangeListeners.clone();
-			}
-			child = this.getChild(collectionName);
-		}
-
-		CollectionChangeEvent event = null;
-
-		if (targets != null) {
-			for (CollectionChangeListener target : targets) {
-				boolean stillListening;
-				synchronized (this) {
-					stillListening = CollectionTools.contains(this.getCollectionChangeListeners(), target);
-				}
-				if (stillListening) {
-					if (event == null) {
-						// here's the reason for the duplicate code...
-						event = new CollectionChangeEvent(this.source, collectionName, Collections.singleton(removedItem));
-					}
-					target.itemsRemoved(event);
-				}
-			}
-		}
-		if (child != null) {
-			if (event == null) {
-				child.fireItemRemoved(collectionName, removedItem);
-			} else {
-				child.fireItemsRemoved(event);
-			}
-		}
-
-		this.aspectChanged(collectionName);
-	}
-
-	/**
-	 * Report a bound collection update to any registered listeners.
-	 */
-	public void fireCollectionCleared(CollectionChangeEvent event) {
-		String collectionName = event.getCollectionName();
-
-		CollectionChangeListener[] targets = null;
-		ChangeSupport child = null;
-
-		synchronized (this) {
-			CollectionChangeListener[] collectionChangeListeners = this.getCollectionChangeListeners();
-			if (collectionChangeListeners != null) {
-				targets = collectionChangeListeners.clone();
-			}
-			child = this.getChild(collectionName);
-		}
-
-		if (targets != null) {
-			for (CollectionChangeListener target : targets) {
-				boolean stillListening;
-				synchronized (this) {
-					stillListening = CollectionTools.contains(this.getCollectionChangeListeners(), target);
-				}
-				if (stillListening) {
-					target.collectionCleared(event);
-				}
-			}
-		}
-		if (child != null) {
-			child.fireCollectionCleared(event);
-		}
-
-		this.aspectChanged(collectionName);
-	}
-
-	/**
-	 * Report a bound collection update to any registered listeners.
-	 */
-	public void fireCollectionCleared(String collectionName) {
-//		this.fireCollectionCleared(new CollectionChangeEvent(this.source, collectionName));
-
-		CollectionChangeListener[] targets = null;
-		ChangeSupport child = null;
-
-		synchronized (this) {
-			CollectionChangeListener[] collectionChangeListeners = this.getCollectionChangeListeners();
-			if (collectionChangeListeners != null) {
-				targets = collectionChangeListeners.clone();
-			}
-			child = this.getChild(collectionName);
-		}
-
-		CollectionChangeEvent event = null;
-
-		if (targets != null) {
-			for (CollectionChangeListener target : targets) {
-				boolean stillListening;
-				synchronized (this) {
-					stillListening = CollectionTools.contains(this.getCollectionChangeListeners(), target);
-				}
-				if (stillListening) {
-					if (event == null) {
-						// here's the reason for the duplicate code...
-						event = new CollectionChangeEvent(this.source, collectionName);
-					}
-					target.collectionCleared(event);
-				}
-			}
-		}
-		if (child != null) {
-			if (event == null) {
-				child.fireCollectionCleared(collectionName);
-			} else {
-				child.fireCollectionCleared(event);
-			}
-		}
-
-		this.aspectChanged(collectionName);
-	}
-
-	/**
-	 * Report a bound collection update to any registered listeners.
-	 */
-	public void fireCollectionChanged(CollectionChangeEvent event) {
-		String collectionName = event.getCollectionName();
-
-		CollectionChangeListener[] targets = null;
-		ChangeSupport child = null;
-
-		synchronized (this) {
-			CollectionChangeListener[] collectionChangeListeners = this.getCollectionChangeListeners();
-			if (collectionChangeListeners != null) {
-				targets = collectionChangeListeners.clone();
-			}
-			child = this.getChild(collectionName);
-		}
-
-		if (targets != null) {
-			for (CollectionChangeListener target : targets) {
-				boolean stillListening;
-				synchronized (this) {
-					stillListening = CollectionTools.contains(this.getCollectionChangeListeners(), target);
-				}
-				if (stillListening) {
-					target.collectionChanged(event);
-				}
-			}
-		}
-		if (child != null) {
-			child.fireCollectionChanged(event);
-		}
-
-		this.aspectChanged(collectionName);
-	}
-
-	/**
-	 * Report a bound collection update to any registered listeners.
-	 */
-	public void fireCollectionChanged(String collectionName) {
-//		this.fireCollectionChanged(new CollectionChangeEvent(this.source, collectionName));
-
-		CollectionChangeListener[] targets = null;
-		ChangeSupport child = null;
-
-		synchronized (this) {
-			CollectionChangeListener[] collectionChangeListeners = this.getCollectionChangeListeners();
-			if (collectionChangeListeners != null) {
-				targets = collectionChangeListeners.clone();
-			}
-			child = this.getChild(collectionName);
-		}
-
-		CollectionChangeEvent event = null;
-
-		if (targets != null) {
-			for (CollectionChangeListener target : targets) {
-				boolean stillListening;
-				synchronized (this) {
-					stillListening = CollectionTools.contains(this.getCollectionChangeListeners(), target);
-				}
-				if (stillListening) {
-					if (event == null) {
-						// here's the reason for the duplicate code...
-						event = new CollectionChangeEvent(this.source, collectionName);
-					}
-					target.collectionChanged(event);
-				}
-			}
-		}
-		if (child != null) {
-			if (event == null) {
-				child.fireCollectionChanged(collectionName);
-			} else {
-				child.fireCollectionChanged(event);
-			}
-		}
-
-		this.aspectChanged(collectionName);
-	}
-
-	/**
-	 * Add the specified item to the specified bound collection
-	 * and fire the appropriate event if necessary.
-	 * Return whether the collection changed.
-	 * @see java.util.Collection#add(Object)
-	 */
-	public <E> boolean addItemToCollection(E item, Collection<E> collection, String collectionName) {
-		if (collection.add(item)) {
-			this.fireItemAdded(collectionName, item);
-			return true;
-		}
-		return false;
-	}
-
-	/**
-	 * Add the specified items to the specified bound collection
-	 * and fire the appropriate event if necessary.
-	 * Return whether collection changed.
-	 * @see java.util.Collection#addAll(java.util.Collection)
-	 */
-	public <E> boolean addItemsToCollection(E[] items, Collection<E> collection, String collectionName) {
-		return (items.length != 0)
-				&& this.addItemsToCollection_(new ArrayIterator<E>(items), collection, collectionName);
-	}
-
-	/**
-	 * Add the specified items to the specified bound collection
-	 * and fire the appropriate event if necessary.
-	 * Return whether collection changed.
-	 * @see java.util.Collection#addAll(java.util.Collection)
-	 */
-	public <E> boolean addItemsToCollection(Collection<? extends E> items, Collection<E> collection, String collectionName) {
-		return ( ! items.isEmpty())
-				&& this.addItemsToCollection_(items.iterator(), collection, collectionName);
-	}
-
-	/**
-	 * Add the specified items to the specified bound collection
-	 * and fire the appropriate event if necessary.
-	 * Return whether collection changed.
-	 * @see java.util.Collection#addAll(java.util.Collection)
-	 */
-	public <E> boolean addItemsToCollection(Iterable<? extends E> items, Collection<E> collection, String collectionName) {
-		return this.addItemsToCollection(items.iterator(), collection, collectionName);
-	}
-
-	/**
-	 * Add the specified items to the specified bound collection
-	 * and fire the appropriate event if necessary.
-	 * Return whether collection changed.
-	 * @see java.util.Collection#addAll(java.util.Collection)
-	 */
-	public <E> boolean addItemsToCollection(Iterator<? extends E> items, Collection<E> collection, String collectionName) {
-		return items.hasNext()
-				&& this.addItemsToCollection_(items, collection, collectionName);
-	}
-
-	/**
-	 * no empty check
-	 */
-	protected <E> boolean addItemsToCollection_(Iterator<? extends E> items, Collection<E> collection, String collectionName) {
-		Collection<E> addedItems = null;
-		while (items.hasNext()) {
-			E item = items.next();
-			if (collection.add(item)) {
-				if (addedItems == null) {
-					addedItems = new ArrayList<E>();
-				}
-				addedItems.add(item);
-			}
-		}
-		if (addedItems != null) {
-			this.fireItemsAdded(collectionName, addedItems);
-			return true;
-		}
-		return false;
-	}
-
-	/**
-	 * Remove the specified item from the specified bound collection
-	 * and fire the appropriate event if necessary.
-	 * Return whether the collection changed.
-	 * @see java.util.Collection#remove(Object)
-	 */
-	public boolean removeItemFromCollection(Object item, Collection<?> collection, String collectionName) {
-		if (collection.remove(item)) {
-			this.fireItemRemoved(collectionName, item);
-			return true;
-		}
-		return false;
-	}
-
-	/**
-	 * Remove the specified items from the specified bound collection
-	 * and fire the appropriate event if necessary.
-	 * Return whether the collection changed.
-	 * @see java.util.Collection#removeAll(java.util.Collection)
-	 */
-	public boolean removeItemsFromCollection(Object[] items, Collection<?> collection, String collectionName) {
-		return (items.length != 0)
-				&& ( ! collection.isEmpty())
-				&& this.removeItemsFromCollection_(new ArrayIterator<Object>(items), collection, collectionName);
-	}
-
-	/**
-	 * Remove the specified items from the specified bound collection
-	 * and fire the appropriate event if necessary.
-	 * Return whether the collection changed.
-	 * @see java.util.Collection#removeAll(java.util.Collection)
-	 */
-	public boolean removeItemsFromCollection(Collection<?> items, Collection<?> collection, String collectionName) {
-		return ( ! items.isEmpty())
-				&& ( ! collection.isEmpty())
-				&& this.removeItemsFromCollection_(items.iterator(), collection, collectionName);
-	}
-
-	/**
-	 * Remove the specified items from the specified bound collection
-	 * and fire the appropriate event if necessary.
-	 * Return whether the collection changed.
-	 * @see java.util.Collection#removeAll(java.util.Collection)
-	 */
-	public boolean removeItemsFromCollection(Iterable<?> items, Collection<?> collection, String collectionName) {
-		return this.removeItemsFromCollection(items.iterator(), collection, collectionName);
-	}
-
-	/**
-	 * Remove the specified items from the specified bound collection
-	 * and fire the appropriate event if necessary.
-	 * Return whether the collection changed.
-	 * @see java.util.Collection#removeAll(java.util.Collection)
-	 */
-	public boolean removeItemsFromCollection(Iterator<?> items, Collection<?> collection, String collectionName) {
-		return items.hasNext()
-				&& ( ! collection.isEmpty())
-				&& this.removeItemsFromCollection_(items, collection, collectionName);
-	}
-
-	/**
-	 * no empty checks
-	 */
-	protected boolean removeItemsFromCollection_(Iterator<?> items, Collection<?> collection, String collectionName) {
-		HashBag<?> removedItems = CollectionTools.collection(items);
-		removedItems.retainAll(collection);
-		boolean changed = collection.removeAll(removedItems);
-
-		if ( ! removedItems.isEmpty()) {
-			this.fireItemsRemoved(collectionName, removedItems);
-		}
-		return changed;
-	}
-
-	/**
-	 * Retain the specified items in the specified bound collection
-	 * and fire the appropriate event if necessary.
-	 * Return whether the collection changed.
-	 * @see java.util.Collection#retainAll(java.util.Collection)
-	 */
-	public boolean retainItemsInCollection(Object[] items, Collection<?> collection, String collectionName) {
-		if (collection.isEmpty()) {
-			return false;
-		}
-		if (items.length == 0) {
-			return this.clearCollection_(collection, collectionName);
-		}
-		return this.retainItemsInCollection_(new ArrayIterator<Object>(items), collection, collectionName);
-	}
-
-	/**
-	 * Retain the specified items in the specified bound collection
-	 * and fire the appropriate event if necessary.
-	 * Return whether the collection changed.
-	 * @see java.util.Collection#retainAll(java.util.Collection)
-	 */
-	public boolean retainItemsInCollection(Collection<?> items, Collection<?> collection, String collectionName) {
-		if (collection.isEmpty()) {
-			return false;
-		}
-		if (items.isEmpty()) {
-			return this.clearCollection_(collection, collectionName);
-		}
-		return this.retainItemsInCollection_(items.iterator(), collection, collectionName);
-	}
-
-	/**
-	 * Retain the specified items in the specified bound collection
-	 * and fire the appropriate event if necessary.
-	 * Return whether the collection changed.
-	 * @see java.util.Collection#retainAll(java.util.Collection)
-	 */
-	public boolean retainItemsInCollection(Iterable<?> items, Collection<?> collection, String collectionName) {
-		return this.retainItemsInCollection(items.iterator(), collection, collectionName);
-	}
-
-	/**
-	 * Retain the specified items in the specified bound collection
-	 * and fire the appropriate event if necessary.
-	 * Return whether the collection changed.
-	 * @see java.util.Collection#retainAll(java.util.Collection)
-	 */
-	public boolean retainItemsInCollection(Iterator<?> items, Collection<?> collection, String collectionName) {
-		if (collection.isEmpty()) {
-			return false;
-		}
-		if ( ! items.hasNext()) {
-			return this.clearCollection_(collection, collectionName);
-		}
-		return this.retainItemsInCollection_(items, collection, collectionName);
-	}
-
-	/**
-	 * no empty checks
-	 */
-	protected boolean retainItemsInCollection_(Iterator<?> items, Collection<?> collection, String collectionName) {
-		HashBag<?> retainedItems = CollectionTools.collection(items);
-		HashBag<?> removedItems = CollectionTools.collection(collection);
-		removedItems.removeAll(retainedItems);
-		boolean changed = collection.retainAll(retainedItems);
-
-		if ( ! removedItems.isEmpty()) {
-			this.fireItemsRemoved(collectionName, removedItems);
-		}
-		return changed;
-	}
-
-	/**
-	 * Clear the entire collection
-	 * and fire the appropriate event if necessary.
-	 * Return whether the collection changed.
-	 * @see java.util.Collection#clear()
-	 */
-	public boolean clearCollection(Collection<?> collection, String collectionName) {
-		if (collection.isEmpty()) {
-			return false;
-		}
-		return this.clearCollection_(collection, collectionName);
-	}
-
-	/**
-	 * no empty check
-	 */
-	protected boolean clearCollection_(Collection<?> collection, String collectionName) {
-		collection.clear();
-		this.fireCollectionCleared(collectionName);
-		return true;
-	}
-
-	/**
-	 * Synchronize the collection with the specified new collection,
-	 * making a minimum number of removes and adds.
-	 * Return whether the collection changed.
-	 */
-	public <E> boolean synchronizeCollection(Collection<E> newCollection, Collection<E> collection, String collectionName) {
-		if (newCollection.isEmpty()) {
-			return this.clearCollection(collection, collectionName);
-		}
-
-		if (collection.isEmpty()) {
-			return this.addItemsToCollection_(newCollection.iterator(), collection, collectionName);
-		}
-
-		return this.synchronizeCollection_(newCollection, collection, collectionName);
-	}
-
-	/**
-	 * Synchronize the collection with the specified new collection,
-	 * making a minimum number of removes and adds.
-	 * Return whether the collection changed.
-	 */
-	public <E> boolean synchronizeCollection(Iterator<E> newCollection, Collection<E> collection, String collectionName) {
-		if ( ! newCollection.hasNext()) {
-			return this.clearCollection(collection, collectionName);
-		}
-
-		if (collection.isEmpty()) {
-			return this.addItemsToCollection_(newCollection, collection, collectionName);
-		}
-
-		return this.synchronizeCollection_(CollectionTools.collection(newCollection), collection, collectionName);
-	}
-
-	/**
-	 * no empty checks
-	 */
-	protected <E> boolean synchronizeCollection_(Collection<E> newCollection, Collection<E> collection, String collectionName) {
-		boolean changed = false;
-		Collection<E> removeItems = new HashBag<E>(collection);
-		removeItems.removeAll(newCollection);
-		changed |= this.removeItemsFromCollection(removeItems, collection, collectionName);
-
-		Collection<E> addItems = new HashBag<E>(newCollection);
-		addItems.removeAll(collection);
-		changed |= this.addItemsToCollection(addItems, collection, collectionName);
-
-		return changed;
-	}
-
-
-	// ********** list change support **********
-
-	protected static final Class<ListChangeListener> LIST_CHANGE_LISTENER_CLASS = ListChangeListener.class;
-
-	/**
-	 * Add a list change listener that is registered for all lists.
-	 */
-	public void addListChangeListener(ListChangeListener listener) {
-		this.addListener(LIST_CHANGE_LISTENER_CLASS, listener);
-	}
-
-	/**
-	 * Add a list change listener for the specified list. The listener
-	 * will be notified only for changes to the specified list.
-	 */
-	public void addListChangeListener(String listName, ListChangeListener listener) {
-		this.addListener(listName, LIST_CHANGE_LISTENER_CLASS, listener);
-	}
-
-	/**
-	 * Remove a list change listener that was registered for all lists.
-	 */
-	public void removeListChangeListener(ListChangeListener listener) {
-		this.removeListener(LIST_CHANGE_LISTENER_CLASS, listener);
-	}
-
-	/**
-	 * Remove a list change listener that was registered for a specific list.
-	 */
-	public void removeListChangeListener(String listName, ListChangeListener listener) {
-		this.removeListener(listName, LIST_CHANGE_LISTENER_CLASS, listener);
-	}
-
-	/**
-	 * Return whether there are any list change listeners that will
-	 * be notified when the specified list has changed.
-	 */
-	public boolean hasAnyListChangeListeners(String listName) {
-		return this.hasAnyListeners(LIST_CHANGE_LISTENER_CLASS, listName);
-	}
-
-	/**
-	 * Return whether there are any list change listeners that will
-	 * be notified when any list has changed.
-	 */
-	public boolean hasAnyListChangeListeners() {
-		return this.hasAnyListeners(LIST_CHANGE_LISTENER_CLASS);
-	}
-
-	private ListChangeListener[] getListChangeListeners() {
-		return (ListChangeListener[]) this.getListeners(LIST_CHANGE_LISTENER_CLASS);
-	}
-
-	/**
-	 * Report a bound list update to any registered listeners.
-	 */
-	public void fireItemsAdded(ListChangeEvent event) {
-		if (event.itemsSize() == 0) {
-			return;
-		}
-
-		String listName = event.getListName();
-
-		ListChangeListener[] targets = null;
-		ChangeSupport child = null;
-
-		synchronized (this) {
-			ListChangeListener[] listChangeListeners = this.getListChangeListeners();
-			if (listChangeListeners != null) {
-				targets = listChangeListeners.clone();
-			}
-			child = this.getChild(listName);
-		}
-
-		if (targets != null) {
-			for (ListChangeListener target : targets) {
-				boolean stillListening;
-				synchronized (this) {
-					stillListening = CollectionTools.contains(this.getListChangeListeners(), target);
-				}
-				if (stillListening) {
-					target.itemsAdded(event);
-				}
-			}
-		}
-		if (child != null) {
-			child.fireItemsAdded(event);
-		}
-
-		this.aspectChanged(listName);
-	}
-
-	/**
-	 * Report a bound list update to any registered listeners.
-	 */
-	public void fireItemsAdded(String listName, int index, List<?> addedItems) {
-//		this.fireItemsAdded(new ListChangeEvent(this.source, listName, index, addedItems));
-		if (addedItems.isEmpty()) {
-			return;
-		}
-
-		ListChangeListener[] targets = null;
-		ChangeSupport child = null;
-
-		synchronized (this) {
-			ListChangeListener[] listChangeListeners = this.getListChangeListeners();
-			if (listChangeListeners != null) {
-				targets = listChangeListeners.clone();
-			}
-			child = this.getChild(listName);
-		}
-
-		ListChangeEvent event = null;
-
-		if (targets != null) {
-			for (ListChangeListener target : targets) {
-				boolean stillListening;
-				synchronized (this) {
-					stillListening = CollectionTools.contains(this.getListChangeListeners(), target);
-				}
-				if (stillListening) {
-					if (event == null) {
-						// here's the reason for the duplicate code...
-						event = new ListChangeEvent(this.source, listName, index, addedItems);
-					}
-					target.itemsAdded(event);
-				}
-			}
-		}
-		if (child != null) {
-			if (event == null) {
-				child.fireItemsAdded(listName, index, addedItems);
-			} else {
-				child.fireItemsAdded(event);
-			}
-		}
-
-		this.aspectChanged(listName);
-	}
-
-	/**
-	 * Report a bound list update to any registered listeners.
-	 */
-	public void fireItemAdded(String listName, int index, Object addedItem) {
-//		this.fireItemsAdded(listName, index, Collections.singletonList(addedItem));
-
-		ListChangeListener[] targets = null;
-		ChangeSupport child = null;
-
-		synchronized (this) {
-			ListChangeListener[] listChangeListeners = this.getListChangeListeners();
-			if (listChangeListeners != null) {
-				targets = listChangeListeners.clone();
-			}
-			child = this.getChild(listName);
-		}
-
-		ListChangeEvent event = null;
-
-		if (targets != null) {
-			for (ListChangeListener target : targets) {
-				boolean stillListening;
-				synchronized (this) {
-					stillListening = CollectionTools.contains(this.getListChangeListeners(), target);
-				}
-				if (stillListening) {
-					if (event == null) {
-						// here's the reason for the duplicate code...
-						event = new ListChangeEvent(this.source, listName, index, Collections.singletonList(addedItem));
-					}
-					target.itemsAdded(event);
-				}
-			}
-		}
-		if (child != null) {
-			if (event == null) {
-				child.fireItemAdded(listName, index, addedItem);
-			} else {
-				child.fireItemsAdded(event);
-			}
-		}
-
-		this.aspectChanged(listName);
-	}
-
-	/**
-	 * Report a bound list update to any registered listeners.
-	 */
-	public void fireItemsRemoved(ListChangeEvent event) {
-		if (event.itemsSize() == 0) {
-			return;
-		}
-
-		String listName = event.getListName();
-
-		ListChangeListener[] targets = null;
-		ChangeSupport child = null;
-
-		synchronized (this) {
-			ListChangeListener[] listChangeListeners = this.getListChangeListeners();
-			if (listChangeListeners != null) {
-				targets = listChangeListeners.clone();
-			}
-			child = this.getChild(listName);
-		}
-
-		if (targets != null) {
-			for (ListChangeListener target : targets) {
-				boolean stillListening;
-				synchronized (this) {
-					stillListening = CollectionTools.contains(this.getListChangeListeners(), target);
-				}
-				if (stillListening) {
-					target.itemsRemoved(event);
-				}
-			}
-		}
-		if (child != null) {
-			child.fireItemsRemoved(event);
-		}
-
-		this.aspectChanged(listName);
-	}
-
-	/**
-	 * Report a bound list update to any registered listeners.
-	 */
-	public void fireItemsRemoved(String listName, int index, List<?> removedItems) {
-//		this.fireItemsRemoved(new ListChangeEvent(this.source, listName, index, removedItems));
-		if (removedItems.isEmpty()) {
-			return;
-		}
-
-		ListChangeListener[] targets = null;
-		ChangeSupport child = null;
-
-		synchronized (this) {
-			ListChangeListener[] listChangeListeners = this.getListChangeListeners();
-			if (listChangeListeners != null) {
-				targets = listChangeListeners.clone();
-			}
-			child = this.getChild(listName);
-		}
-
-		ListChangeEvent event = null;
-
-		if (targets != null) {
-			for (ListChangeListener target : targets) {
-				boolean stillListening;
-				synchronized (this) {
-					stillListening = CollectionTools.contains(this.getListChangeListeners(), target);
-				}
-				if (stillListening) {
-					if (event == null) {
-						// here's the reason for the duplicate code...
-						event = new ListChangeEvent(this.source, listName, index, removedItems);
-					}
-					target.itemsRemoved(event);
-				}
-			}
-		}
-		if (child != null) {
-			if (event == null) {
-				child.fireItemsRemoved(listName, index, removedItems);
-			} else {
-				child.fireItemsRemoved(event);
-			}
-		}
-
-		this.aspectChanged(listName);
-	}
-
-	/**
-	 * Report a bound list update to any registered listeners.
-	 */
-	public void fireItemRemoved(String listName, int index, Object removedItem) {
-//		this.fireItemsRemoved(listName, index, Collections.singletonList(removedItem));
-
-		ListChangeListener[] targets = null;
-		ChangeSupport child = null;
-
-		synchronized (this) {
-			ListChangeListener[] listChangeListeners = this.getListChangeListeners();
-			if (listChangeListeners != null) {
-				targets = listChangeListeners.clone();
-			}
-			child = this.getChild(listName);
-		}
-
-		ListChangeEvent event = null;
-
-		if (targets != null) {
-			for (ListChangeListener target : targets) {
-				boolean stillListening;
-				synchronized (this) {
-					stillListening = CollectionTools.contains(this.getListChangeListeners(), target);
-				}
-				if (stillListening) {
-					if (event == null) {
-						// here's the reason for the duplicate code...
-						event = new ListChangeEvent(this.source, listName, index, Collections.singletonList(removedItem));
-					}
-					target.itemsRemoved(event);
-				}
-			}
-		}
-		if (child != null) {
-			if (event == null) {
-				child.fireItemRemoved(listName, index, removedItem);
-			} else {
-				child.fireItemsRemoved(event);
-			}
-		}
-
-		this.aspectChanged(listName);
-	}
-
-	/**
-	 * Report a bound list update to any registered listeners.
-	 */
-	public void fireItemsReplaced(ListChangeEvent event) {
-		if (event.itemsSize() == 0) {
-			return;
-		}
-		// TODO check that the items are actually different... ?
-//		if (this.elementsAreEqual(event.items(), event.replacedItems())) {
-//			return;
-//		}
-
-		String listName = event.getListName();
-
-		ListChangeListener[] targets = null;
-		ChangeSupport child = null;
-
-		synchronized (this) {
-			ListChangeListener[] listChangeListeners = this.getListChangeListeners();
-			if (listChangeListeners != null) {
-				targets = listChangeListeners.clone();
-			}
-			child = this.getChild(listName);
-		}
-
-		if (targets != null) {
-			for (ListChangeListener target : targets) {
-				boolean stillListening;
-				synchronized (this) {
-					stillListening = CollectionTools.contains(this.getListChangeListeners(), target);
-				}
-				if (stillListening) {
-					target.itemsReplaced(event);
-				}
-			}
-		}
-		if (child != null) {
-			child.fireItemsReplaced(event);
-		}
-
-		this.aspectChanged(listName);
-	}
-
-	/**
-	 * Report a bound list update to any registered listeners.
-	 */
-	public void fireItemsReplaced(String listName, int index, List<?> newItems, List<?> replacedItems) {
-//		this.fireItemsReplaced(new ListChangeEvent(this.source, listName, index, newItems, replacedItems));
-		if (newItems.isEmpty()) {
-			return;
-		}
-		// TODO check that the items are actually different... ?
-//		if (newItems.equals(replacedItems)) {
-//			return;
-//		}
-
-		ListChangeListener[] targets = null;
-		ChangeSupport child = null;
-
-		synchronized (this) {
-			ListChangeListener[] listChangeListeners = this.getListChangeListeners();
-			if (listChangeListeners != null) {
-				targets = listChangeListeners.clone();
-			}
-			child = this.getChild(listName);
-		}
-
-		ListChangeEvent event = null;
-
-		if (targets != null) {
-			for (ListChangeListener target : targets) {
-				boolean stillListening;
-				synchronized (this) {
-					stillListening = CollectionTools.contains(this.getListChangeListeners(), target);
-				}
-				if (stillListening) {
-					if (event == null) {
-						// here's the reason for the duplicate code...
-						event = new ListChangeEvent(this.source, listName, index, newItems, replacedItems);
-					}
-					target.itemsReplaced(event);
-				}
-			}
-		}
-		if (child != null) {
-			if (event == null) {
-				child.fireItemsReplaced(listName, index, newItems, replacedItems);
-			} else {
-				child.fireItemsReplaced(event);
-			}
-		}
-
-		this.aspectChanged(listName);
-	}
-
-	/**
-	 * Report a bound list update to any registered listeners.
-	 */
-	public void fireItemReplaced(String listName, int index, Object newItem, Object replacedItem) {
-//		this.fireItemsReplaced(listName, index, Collections.singletonList(newItem), Collections.singletonList(replacedItem));
-		// TODO check that the item is actually different... ?
-//		if (this.valuesAreEqual(newItem, replacedItem)) {
-//			return;
-//		}
-
-		ListChangeListener[] targets = null;
-		ChangeSupport child = null;
-
-		synchronized (this) {
-			ListChangeListener[] listChangeListeners = this.getListChangeListeners();
-			if (listChangeListeners != null) {
-				targets = listChangeListeners.clone();
-			}
-			child = this.getChild(listName);
-		}
-
-		ListChangeEvent event = null;
-
-		if (targets != null) {
-			for (ListChangeListener target : targets) {
-				boolean stillListening;
-				synchronized (this) {
-					stillListening = CollectionTools.contains(this.getListChangeListeners(), target);
-				}
-				if (stillListening) {
-					if (event == null) {
-						// here's the reason for the duplicate code...
-						event = new ListChangeEvent(this.source, listName, index, Collections.singletonList(newItem), Collections.singletonList(replacedItem));
-					}
-					target.itemsReplaced(event);
-				}
-			}
-		}
-		if (child != null) {
-			if (event == null) {
-				child.fireItemReplaced(listName, index, newItem, replacedItem);
-			} else {
-				child.fireItemsReplaced(event);
-			}
-		}
-
-		this.aspectChanged(listName);
-	}
-
-	/**
-	 * Report a bound list update to any registered listeners.
-	 */
-	public void fireItemsMoved(ListChangeEvent event) {
-		if (event.getTargetIndex() == event.getSourceIndex()) {
-			return;
-		}
-		// it's unlikely but possible the list is unchanged by the move... (e.g. any moves within ["foo", "foo", "foo"]...)
-
-		String listName = event.getListName();
-
-		ListChangeListener[] targets = null;
-		ChangeSupport child = null;
-
-		synchronized (this) {
-			ListChangeListener[] listChangeListeners = this.getListChangeListeners();
-			if (listChangeListeners != null) {
-				targets = listChangeListeners.clone();
-			}
-			child = this.getChild(listName);
-		}
-
-		if (targets != null) {
-			for (ListChangeListener target : targets) {
-				boolean stillListening;
-				synchronized (this) {
-					stillListening = CollectionTools.contains(this.getListChangeListeners(), target);
-				}
-				if (stillListening) {
-					target.itemsMoved(event);
-				}
-			}
-		}
-		if (child != null) {
-			child.fireItemsMoved(event);
-		}
-
-		this.aspectChanged(listName);
-	}
-
-	/**
-	 * Report a bound list update to any registered listeners.
-	 */
-	public void fireItemsMoved(String listName, int targetIndex, int sourceIndex, int length) {
-//		this.fireItemsMoved(new ListChangeEvent(this.source, listName, targetIndex, sourceIndex, length));
-		if (targetIndex == sourceIndex) {
-			return;
-		}
-		// it's unlikely but possible the list is unchanged by the move... (e.g. any moves within ["foo", "foo", "foo"]...)
-
-		ListChangeListener[] targets = null;
-		ChangeSupport child = null;
-
-		synchronized (this) {
-			ListChangeListener[] listChangeListeners = this.getListChangeListeners();
-			if (listChangeListeners != null) {
-				targets = listChangeListeners.clone();
-			}
-			child = this.getChild(listName);
-		}
-
-		ListChangeEvent event = null;
-
-		if (targets != null) {
-			for (ListChangeListener target : targets) {
-				boolean stillListening;
-				synchronized (this) {
-					stillListening = CollectionTools.contains(this.getListChangeListeners(), target);
-				}
-				if (stillListening) {
-					if (event == null) {
-						// here's the reason for the duplicate code...
-						event = new ListChangeEvent(this.source, listName, targetIndex, sourceIndex, length);
-					}
-					target.itemsMoved(event);
-				}
-			}
-		}
-		if (child != null) {
-			if (event == null) {
-				child.fireItemsMoved(listName, targetIndex, sourceIndex, length);
-			} else {
-				child.fireItemsMoved(event);
-			}
-		}
-
-		this.aspectChanged(listName);
-	}
-
-	/**
-	 * Report a bound list update to any registered listeners.
-	 */
-	public void fireItemMoved(String listName, int targetIndex, int sourceIndex) {
-		this.fireItemsMoved(listName, targetIndex, sourceIndex, 1);
-	}
-
-	/**
-	 * Report a bound list update to any registered listeners.
-	 */
-	public void fireListCleared(ListChangeEvent event) {
-		String listName = event.getListName();
-
-		ListChangeListener[] targets = null;
-		ChangeSupport child = null;
-
-		synchronized (this) {
-			ListChangeListener[] listChangeListeners = this.getListChangeListeners();
-			if (listChangeListeners != null) {
-				targets = listChangeListeners.clone();
-			}
-			child = this.getChild(listName);
-		}
-
-		if (targets != null) {
-			for (ListChangeListener target : targets) {
-				boolean stillListening;
-				synchronized (this) {
-					stillListening = CollectionTools.contains(this.getListChangeListeners(), target);
-				}
-				if (stillListening) {
-					target.listCleared(event);
-				}
-			}
-		}
-		if (child != null) {
-			child.fireListCleared(event);
-		}
-
-		this.aspectChanged(listName);
-	}
-
-	/**
-	 * Report a bound list update to any registered listeners.
-	 */
-	public void fireListCleared(String listName) {
-//		this.fireListCleared(new ListChangeEvent(this.source, listName));
-
-		ListChangeListener[] targets = null;
-		ChangeSupport child = null;
-
-		synchronized (this) {
-			ListChangeListener[] listChangeListeners = this.getListChangeListeners();
-			if (listChangeListeners != null) {
-				targets = listChangeListeners.clone();
-			}
-			child = this.getChild(listName);
-		}
-
-		ListChangeEvent event = null;
-
-		if (targets != null) {
-			for (ListChangeListener target : targets) {
-				boolean stillListening;
-				synchronized (this) {
-					stillListening = CollectionTools.contains(this.getListChangeListeners(), target);
-				}
-				if (stillListening) {
-					if (event == null) {
-						// here's the reason for the duplicate code...
-						event = new ListChangeEvent(this.source, listName);
-					}
-					target.listCleared(event);
-				}
-			}
-		}
-		if (child != null) {
-			if (event == null) {
-				child.fireListCleared(listName);
-			} else {
-				child.fireListCleared(event);
-			}
-		}
-
-		this.aspectChanged(listName);
-	}
-
-	/**
-	 * Report a bound list update to any registered listeners.
-	 */
-	public void fireListChanged(ListChangeEvent event) {
-		String listName = event.getListName();
-
-		ListChangeListener[] targets = null;
-		ChangeSupport child = null;
-
-		synchronized (this) {
-			ListChangeListener[] listChangeListeners = this.getListChangeListeners();
-			if (listChangeListeners != null) {
-				targets = listChangeListeners.clone();
-			}
-			child = this.getChild(listName);
-		}
-
-		if (targets != null) {
-			for (ListChangeListener target : targets) {
-				boolean stillListening;
-				synchronized (this) {
-					stillListening = CollectionTools.contains(this.getListChangeListeners(), target);
-				}
-				if (stillListening) {
-					target.listChanged(event);
-				}
-			}
-		}
-		if (child != null) {
-			child.fireListChanged(event);
-		}
-
-		this.aspectChanged(listName);
-	}
-
-	/**
-	 * Report a bound list update to any registered listeners.
-	 */
-	public void fireListChanged(String listName) {
-//		this.fireListChanged(new ListChangeEvent(this.source, listName));
-
-		ListChangeListener[] targets = null;
-		ChangeSupport child = null;
-
-		synchronized (this) {
-			ListChangeListener[] listChangeListeners = this.getListChangeListeners();
-			if (listChangeListeners != null) {
-				targets = listChangeListeners.clone();
-			}
-			child = this.getChild(listName);
-		}
-
-		ListChangeEvent event = null;
-
-		if (targets != null) {
-			for (ListChangeListener target : targets) {
-				boolean stillListening;
-				synchronized (this) {
-					stillListening = CollectionTools.contains(this.getListChangeListeners(), target);
-				}
-				if (stillListening) {
-					if (event == null) {
-						// here's the reason for the duplicate code...
-						event = new ListChangeEvent(this.source, listName);
-					}
-					target.listChanged(event);
-				}
-			}
-		}
-		if (child != null) {
-			if (event == null) {
-				child.fireListChanged(listName);
-			} else {
-				child.fireListChanged(event);
-			}
-		}
-
-		this.aspectChanged(listName);
-	}
-
-	/**
-	 * Add the specified item to the specified bound list at the specified index
-	 * and fire the appropriate event.
-	 * @see java.util.List#add(int, Object)
-	 */
-	public <E> void addItemToList(int index, E item, List<E> list, String listName) {
-		list.add(index, item);
-		this.fireItemAdded(listName, index, item);
-	}
-
-	/**
-	 * Add the specified item to the end of the specified bound list
-	 * and fire the appropriate event.
-	 * Return whether the list changed (i.e. 'true').
-	 * @see java.util.List#add(Object)
-	 */
-	public <E> boolean addItemToList(E item, List<E> list, String listName) {
-		if (list.add(item)) {
-			this.fireItemAdded(listName, list.size() - 1, item);
-			return true;
-		}
-		return false;  // List#add(Object) should always return 'true', so we should never get here...
-	}
-
-	/**
-	 * Add the specified items to the specified bound list at the specified index
-	 * and fire the appropriate event if necessary.
-	 * Return whether the list changed.
-	 * @see java.util.List#addAll(int, java.util.Collection)
-	 */
-	public <E> boolean addItemsToList(int index, E[] items, List<E> list, String listName) {
-		return (items.length != 0)
-				&& this.addItemsToList_(index, Arrays.asList(items), list, listName);
-	}
-
-	/**
-	 * Add the specified items to the specified bound list at the specified index
-	 * and fire the appropriate event if necessary.
-	 * Return whether the list changed.
-	 * @see java.util.List#addAll(int, java.util.Collection)
-	 */
-	public <E> boolean addItemsToList(int index, Collection<? extends E> items, List<E> list, String listName) {
-		return ( ! items.isEmpty())
-				&& this.addItemsToList_(index, this.convertToList(items), list, listName);
-	}
-
-	/**
-	 * no empty check
-	 */
-	protected <E> boolean addItemsToList_(int index, List<? extends E> items, List<E> list, String listName) {
-		if (list.addAll(index, items)) {
-			this.fireItemsAdded(listName, index, items);
-			return true;
-		}
-		return false;  //  'items' should not be empty, so we should never get here...
-	}
-
-	/**
-	 * Add the specified items to the specified bound list
-	 * and fire the appropriate event if necessary.
-	 * Return whether the list changed.
-	 * @see java.util.List#addAll(int, java.util.Collection)
-	 */
-	public <E> boolean addItemsToList(int index, Iterable<? extends E> items, List<E> list, String listName) {
-		return this.addItemsToList(index, items.iterator(), list, listName);
-	}
-
-	/**
-	 * Add the specified items to the specified bound list
-	 * and fire the appropriate event if necessary.
-	 * Return whether the list changed.
-	 * @see java.util.List#addAll(int, java.util.Collection)
-	 */
-	public <E> boolean addItemsToList(int index, Iterator<? extends E> items, List<E> list, String listName) {
-		if ( ! items.hasNext()) {
-			return false;
-		}
-
-		ArrayList<E> addedItems = CollectionTools.list(items);
-		if (list.addAll(index, addedItems)) {
-			this.fireItemsAdded(listName, index, addedItems);
-			return true;
-		}
-		return false;  //  'items' should not be empty, so we should never get here...
-	}
-
-	/**
-	 * Add the specified items to the end of to the specified bound list
-	 * and fire the appropriate event if necessary.
-	 * Return whether the list changed.
-	 * @see java.util.List#addAll(java.util.Collection)
-	 */
-	public <E> boolean addItemsToList(E[] items, List<E> list, String listName) {
-		return (items.length != 0)
-				&& this.addItemsToList_(Arrays.asList(items), list, listName);
-	}
-
-	/**
-	 * Add the specified items to the end of the specified bound list
-	 * and fire the appropriate event if necessary.
-	 * Return whether the list changed.
-	 * @see java.util.List#addAll(int, java.util.Collection)
-	 */
-	public <E> boolean addItemsToList(Collection<? extends E> items, List<E> list, String listName) {
-		return ( ! items.isEmpty())
-				&& this.addItemsToList_(this.convertToList(items), list, listName);
-	}
-
-	protected <E> List<? extends E> convertToList(Collection<? extends E> collection) {
-		return (collection instanceof List) ? (List<? extends E>) collection : new ArrayList<E>(collection);
-	}
-
-	/**
-	 * no empty check
-	 */
-	protected <E> boolean addItemsToList_(List<? extends E> items, List<E> list, String listName) {
-		int index = list.size();
-		if (list.addAll(items)) {
-			this.fireItemsAdded(listName, index, items);
-			return true;
-		}
-		return false;  //  'items' should not be empty, so we should never get here...
-	}
-
-	/**
-	 * Add the specified items to the end of to the specified bound list
-	 * and fire the appropriate event if necessary.
-	 * Return whether the list changed.
-	 * @see java.util.List#addAll(java.util.Collection)
-	 */
-	public <E> boolean addItemsToList(Iterable<? extends E> items, List<E> list, String listName) {
-		return this.addItemsToList(items.iterator(), list, listName);
-	}
-
-	/**
-	 * Add the specified items to the end of to the specified bound list
-	 * and fire the appropriate event if necessary.
-	 * Return whether the list changed.
-	 * @see java.util.List#addAll(java.util.Collection)
-	 */
-	public <E> boolean addItemsToList(Iterator<? extends E> items, List<E> list, String listName) {
-		if ( ! items.hasNext()) {
-			return false;
-		}
-		return this.addItemsToList_(items, list, listName);
-	}
-
-	/**
-	 * no empty check
-	 */
-	protected <E> boolean addItemsToList_(Iterator<? extends E> items, List<E> list, String listName) {
-		ArrayList<E> addedItems = CollectionTools.list(items);
-		int index = list.size();
-		if (list.addAll(addedItems)) {
-			this.fireItemsAdded(listName, index, addedItems);
-			return true;
-		}
-		return false;  //  'items' should not be empty, so we should never get here...
-	}
-
-	/**
-	 * Remove the specified item from the specified bound list
-	 * and fire the appropriate event if necessary.
-	 * Return the removed item.
-	 * @see java.util.List#remove(int)
-	 */
-	public <E> E removeItemFromList(int index, List<E> list, String listName) {
-		E item = list.remove(index);
-		this.fireItemRemoved(listName, index, item);
-		return item;
-	}
-
-	/**
-	 * Remove the specified item from the specified bound list
-	 * and fire the appropriate event if necessary.
-	 * Return whether the list changed.
-	 * @see java.util.List#remove(Object)
-	 */
-	public boolean removeItemFromList(Object item, List<?> list, String listName) {
-		int index = list.indexOf(item);
-		if (index == -1) {
-			return false;
-		}
-		list.remove(index);
-		this.fireItemRemoved(listName, index, item);
-		return true;
-	}
-
-	/**
-	 * Remove the specified items from the specified bound list
-	 * and fire the appropriate event if necessary.
-	 * Return the removed items.
-	 * @see java.util.List#remove(int)
-	 */
-	public <E> List<E> removeItemsFromList(int index, int length, List<E> list, String listName) {
-		if (length == 0) {
-			return Collections.emptyList();
-		}
-		return this.removeItemsFromList_(index, length, list, listName);
-	}
-
-	/**
-	 * no empty check
-	 */
-	protected <E> List<E> removeItemsFromList_(int index, int length, List<E> list, String listName) {
-		List<E> subList = list.subList(index, index + length);
-		List<E> removedItems = new ArrayList<E>(subList);
-		subList.clear();
-		this.fireItemsRemoved(listName, index, removedItems);
-		return removedItems;
-	}
-
-	/**
-	 * Remove the specified items from the specified bound list
-	 * and fire the appropriate event(s) if necessary.
-	 * Return whether the list changed.
-	 * @see java.util.List#removeAll(java.util.Collection)
-	 */
-	public boolean removeItemsFromList(Object[] items, List<?> list, String listName) {
-		return (items.length != 0)
-				&& ( ! list.isEmpty())
-				&& this.removeItemsFromList_(new ArrayIterator<Object>(items), list, listName);
-	}
-
-	/**
-	 * Remove the specified items from the specified bound list
-	 * and fire the appropriate event(s) if necessary.
-	 * Return whether the list changed.
-	 * @see java.util.List#removeAll(java.util.Collection)
-	 */
-	public boolean removeItemsFromList(Collection<?> items, List<?> list, String listName) {
-		return ( ! items.isEmpty())
-				&& ( ! list.isEmpty())
-				&& this.removeItemsFromList_(items.iterator(), list, listName);
-	}
-
-	/**
-	 * Remove the specified items from the specified bound list
-	 * and fire the appropriate event(s) if necessary.
-	 * Return whether the list changed.
-	 * @see java.util.List#removeAll(java.util.Collection)
-	 */
-	public boolean removeItemsFromList(Iterable<?> items, List<?> list, String listName) {
-		return this.removeItemsFromList(items.iterator(), list, listName);
-	}
-
-	/**
-	 * Remove the specified items from the specified bound list
-	 * and fire the appropriate event(s) if necessary.
-	 * Return whether the list changed.
-	 * @see java.util.List#removeAll(java.util.Collection)
-	 */
-	public boolean removeItemsFromList(Iterator<?> items, List<?> list, String listName) {
-		return (items.hasNext())
-				&& ( ! list.isEmpty())
-				&& this.removeItemsFromList_(items, list, listName);
-	}
-
-	/**
-	 * no empty checks
-	 */
-	protected boolean removeItemsFromList_(Iterator<?> items, List<?> list, String listName) {
-		boolean changed = false;
-		while (items.hasNext()) {
-			changed |= this.removeItemFromList(items.next(), list, listName);
-		}
-		return changed;
-	}
-
-	/**
-	 * Retain the specified items in the specified bound list
-	 * and fire the appropriate event(s) if necessary.
-	 * Return whether the list changed.
-	 * @see java.util.List#retainAll(java.util.Collection)
-	 */
-	public boolean retainItemsInList(Object[] items, List<?> list, String listName) {
-		if (list.isEmpty()) {
-			return false;
-		}
-		if (items.length == 0) {
-			return this.clearList_(list, listName);
-		}
-		return this.retainItemsInList_(new ArrayIterator<Object>(items), list, listName);
-	}
-
-	/**
-	 * Retain the specified items in the specified bound list
-	 * and fire the appropriate event(s) if necessary.
-	 * Return whether the list changed.
-	 * @see java.util.List#retainAll(java.util.Collection)
-	 */
-	public boolean retainItemsInList(Collection<?> items, List<?> list, String listName) {
-		if (list.isEmpty()) {
-			return false;
-		}
-		if (items.isEmpty()) {
-			return this.clearList_(list, listName);
-		}
-		return this.retainItemsInList_(items.iterator(), list, listName);
-	}
-
-	/**
-	 * Retain the specified items in the specified bound list
-	 * and fire the appropriate event(s) if necessary.
-	 * Return whether the list changed.
-	 * @see java.util.List#retainAll(java.util.Collection)
-	 */
-	public boolean retainItemsInList(Iterable<?> items, List<?> list, String listName) {
-		return this.retainItemsInList(items.iterator(), list, listName);
-	}
-
-	/**
-	 * Retain the specified items in the specified bound list
-	 * and fire the appropriate event(s) if necessary.
-	 * Return whether the list changed.
-	 * @see java.util.List#retainAll(java.util.Collection)
-	 */
-	public boolean retainItemsInList(Iterator<?> items, List<?> list, String listName) {
-		if (list.isEmpty()) {
-			return false;
-		}
-		if ( ! items.hasNext()) {
-			return this.clearList_(list, listName);
-		}
-		return this.retainItemsInList_(items, list, listName);
-	}
-
-	/**
-	 * no empty checks
-	 */
-	protected boolean retainItemsInList_(Iterator<?> items, List<?> list, String listName) {
-		HashBag<?> retainedItems = CollectionTools.collection(items);
-		HashBag<?> removedItems = CollectionTools.collection(list);
-		removedItems.removeAll(retainedItems);
-		return this.removeItemsFromList(removedItems, list, listName);
-	}
-
-	/**
-	 * Set the specified item in the specified bound list
-	 * and fire the appropriate event if necessary.
-	 * Return the replaced item.
-	 * @see java.util.List#set(int, Object)
-	 */
-	public <E> E setItemInList(int index, E item, List<E> list, String listName) {
-		E replacedItem = list.set(index, item);
-		if (this.valuesAreDifferent(item, replacedItem)) {
-			this.fireItemReplaced(listName, index, item, replacedItem);
-		}
-		return replacedItem;
-	}
-
-	/**
-	 * Replace the first occurrence of the specified item
-	 * in the specified bound list
-	 * and fire the appropriate event if necessary.
-	 * Return the index of the replaced item.
-	 * Return -1 if the item was not found in the list.
-	 * @see java.util.List#set(int, Object)
-	 */
-	public <E> int replaceItemInList(E oldItem, E newItem, List<E> list, String listName) {
-		if (list.isEmpty()) {
-			return -1;
-		}
-
-		int index = list.indexOf(oldItem);
-		if ((index != -1) && this.valuesAreDifferent(oldItem, newItem)) {
-			list.set(index, newItem);
-			this.fireItemReplaced(listName, index, newItem, oldItem);
-		}
-		return index;
-	}
-
-	/**
-	 * Set the specified items in the specified bound list
-	 * and fire the appropriate event if necessary.
-	 * Return the replaced items.
-	 * @see java.util.List#set(int, Object)
-	 */
-	public <E> List<E> setItemsInList(int index, E[] items, List<E> list, String listName) {
-		if (items.length == 0) {
-			return Collections.emptyList();
-		}
-		return this.setItemsInList_(index, Arrays.asList(items), list, listName);
-	}
-
-	/**
-	 * Set the specified items in the specified bound list
-	 * and fire the appropriate event if necessary.
-	 * Return the replaced items.
-	 * @see java.util.List#set(int, Object)
-	 */
-	public <E> List<E> setItemsInList(int index, List<? extends E> items, List<E> list, String listName) {
-		if (items.isEmpty()) {
-			return Collections.emptyList();
-		}
-		return this.setItemsInList_(index, items, list, listName);
-	}
-
-	/**
-	 * no empty check
-	 */
-	protected <E> List<E> setItemsInList_(int index, List<? extends E> items, List<E> list, String listName) {
-		List<E> subList = list.subList(index, index + items.size());
-		List<E> replacedItems = new ArrayList<E>(subList);
-		for (int i = 0; i < items.size(); i++) {
-			E newItem = items.get(i);
-			E oldItem = subList.set(i, newItem);
-			if (this.valuesAreDifferent(oldItem, newItem)) {
-				this.fireItemReplaced(listName, index + i, newItem, oldItem);
-			}
-		}
-		return replacedItems;
-	}
-
-	/**
-	 * Move items in the specified list from the specified source index to the
-	 * specified target index for the specified length.
-	 * Return whether the list changed.
-	 */
-	public <E> boolean moveItemsInList(int targetIndex, int sourceIndex, int length, List<E> list, String listName) {
-		if ((targetIndex == sourceIndex) || (length == 0)) {
-			return false;
-		}
-		// it's unlikely but possible the list is unchanged by the move... (e.g. any moves within ["foo", "foo", "foo"]...)
-		CollectionTools.move(list, targetIndex, sourceIndex, length);
-		this.fireItemsMoved(listName, targetIndex, sourceIndex, length);
-		return true;
-	}
-
-	/**
-	 * Move an item in the specified list from the specified source index to the
-	 * specified target index.
-	 * Return whether the list changed.
-	 */
-	public <E> boolean moveItemInList(int targetIndex, int sourceIndex, List<E> list, String listName) {
-		if (targetIndex == sourceIndex) {
-			return false;
-		}
-		// it's unlikely but possible the list is unchanged by the move... (e.g. any moves within ["foo", "foo", "foo"]...)
-		CollectionTools.move(list, targetIndex, sourceIndex);
-		this.fireItemMoved(listName, targetIndex, sourceIndex);
-		return true;
-	}
-
-	/**
-	 * Clear the entire list
-	 * and fire the appropriate event if necessary.
-	 * Return whether the list changed.
-	 * @see java.util.List#clear()
-	 */
-	public boolean clearList(List<?> list, String listName) {
-		if (list.isEmpty()) {
-			return false;
-		}
-		return this.clearList_(list, listName);
-	}
-
-	/**
-	 * no empty check
-	 */
-	protected boolean clearList_(List<?> list, String listName) {
-		list.clear();
-		this.fireListCleared(listName);
-		return true;
-	}
-
-	/**
-	 * Synchronize the list with the specified new list,
-	 * making a minimum number of sets, removes, and/or adds.
-	 * Return whether the list changed.
-	 */
-	public <E> boolean synchronizeList(List<E> newList, List<E> list, String listName) {
-		if (newList.isEmpty()) {
-			return this.clearList(list, listName);
-		}
-		if (list.isEmpty()) {
-			return this.addItemsToList_(newList, list, listName);
-		}
-		return this.synchronizeList_(newList, list, listName);
-	}
-
-	/**
-	 * Synchronize the list with the specified new list,
-	 * making a minimum number of sets, removes, and/or adds.
-	 * Return whether the list changed.
-	 */
-	public <E> boolean synchronizeList(Iterator<E> newList, List<E> list, String listName) {
-		if ( ! newList.hasNext()) {
-			return this.clearList(list, listName);
-		}
-		if (list.isEmpty()) {
-			return this.addItemsToList_(newList, list, listName);
-		}
-		return this.synchronizeList_(CollectionTools.list(newList), list, listName);
-	}
-
-	/**
-	 * no empty checks
-	 */
-	protected <E> boolean synchronizeList_(List<E> newList, List<E> oldList, String listName) {
-		int newSize = newList.size();
-		int oldSize = oldList.size();
-
-		boolean changed = false;
-		int min = Math.min(newSize, oldSize);
-		for (int i = 0; i < min; i++) {
-			E newItem = newList.get(i);
-			E oldItem = oldList.set(i, newItem);
-			if (this.valuesAreDifferent(oldItem, newItem)) {
-				changed = true;
-				this.fireItemReplaced(listName, i, newItem, oldItem);
-			}
-		}
-
-		if (newSize == oldSize) {
-			return changed;
-		}
-
-		if (newSize < oldSize) {
-			this.removeItemsFromList_(newSize, oldSize - newSize, oldList, listName);
-			return true;
-		}
-
-		// newSize > oldSize
-		this.addItemsToList_(newList.subList(oldSize, newSize), oldList, listName);
-		return true;
-	}
-
-
-	// ********** tree change support **********
-
-	protected static final Class<TreeChangeListener> TREE_CHANGE_LISTENER_CLASS = TreeChangeListener.class;
-	private static final Object[] EMPTY_TREE_PATH = new Object[0];
-
-	/**
-	 * Add a tree change listener that is registered for all trees.
-	 */
-	public void addTreeChangeListener(TreeChangeListener listener) {
-		this.addListener(TREE_CHANGE_LISTENER_CLASS, listener);
-	}
-
-	/**
-	 * Add a tree change listener for the specified tree. The listener
-	 * will be notified only for changes to the specified tree.
-	 */
-	public void addTreeChangeListener(String treeName, TreeChangeListener listener) {
-		this.addListener(treeName, TREE_CHANGE_LISTENER_CLASS, listener);
-	}
-
-	/**
-	 * Remove a tree change listener that was registered for all tree.
-	 */
-	public void removeTreeChangeListener(TreeChangeListener listener) {
-		this.removeListener(TREE_CHANGE_LISTENER_CLASS, listener);
-	}
-
-	/**
-	 * Remove a tree change listener that was registered for a specific tree.
-	 */
-	public void removeTreeChangeListener(String treeName, TreeChangeListener listener) {
-		this.removeListener(treeName, TREE_CHANGE_LISTENER_CLASS, listener);
-	}
-
-	/**
-	 * Return whether there are any tree change listeners that will
-	 * be notified when the specified tree has changed.
-	 */
-	public boolean hasAnyTreeChangeListeners(String treeName) {
-		return this.hasAnyListeners(TREE_CHANGE_LISTENER_CLASS, treeName);
-	}
-
-	/**
-	 * Return whether there are any tree change listeners that will
-	 * be notified when any tree has changed.
-	 */
-	public boolean hasAnyTreeChangeListeners() {
-		return this.hasAnyListeners(TREE_CHANGE_LISTENER_CLASS);
-	}
-
-	private TreeChangeListener[] getTreeChangeListeners() {
-		return (TreeChangeListener[]) this.getListeners(TREE_CHANGE_LISTENER_CLASS);
-	}
-
-	/**
-	 * Report a bound tree update to any registered listeners.
-	 */
-	public void fireNodeAdded(TreeChangeEvent event) {
-		String treeName = event.getTreeName();
-
-		TreeChangeListener[] targets = null;
-		ChangeSupport child = null;
-
-		synchronized (this) {
-			TreeChangeListener[] treeChangeListeners = this.getTreeChangeListeners();
-			if (treeChangeListeners != null) {
-				targets = treeChangeListeners.clone();
-			}
-			child = this.getChild(treeName);
-		}
-
-		if (targets != null) {
-			for (TreeChangeListener target : targets) {
-				boolean stillListening;
-				synchronized (this) {
-					stillListening = CollectionTools.contains(this.getTreeChangeListeners(), target);
-				}
-				if (stillListening) {
-					target.nodeAdded(event);
-				}
-			}
-		}
-		if (child != null) {
-			child.fireNodeAdded(event);
-		}
-
-		this.aspectChanged(treeName);
-	}
-
-	/**
-	 * Report a bound tree update to any registered listeners.
-	 */
-	public void fireNodeAdded(String treeName, Object[] path) {
-//		this.fireNodeAdded(new TreeChangeEvent(this.source, treeName, path));
-
-		TreeChangeListener[] targets = null;
-		ChangeSupport child = null;
-
-		synchronized (this) {
-			TreeChangeListener[] treeChangeListeners = this.getTreeChangeListeners();
-			if (treeChangeListeners != null) {
-				targets = treeChangeListeners.clone();
-			}
-			child = this.getChild(treeName);
-		}
-
-		TreeChangeEvent event = null;
-
-		if (targets != null) {
-			for (TreeChangeListener target : targets) {
-				boolean stillListening;
-				synchronized (this) {
-					stillListening = CollectionTools.contains(this.getTreeChangeListeners(), target);
-				}
-				if (stillListening) {
-					if (event == null) {
-						// here's the reason for the duplicate code...
-						event = new TreeChangeEvent(this.source, treeName, path);
-					}
-					target.nodeAdded(event);
-				}
-			}
-		}
-		if (child != null) {
-			if (event == null) {
-				child.fireNodeAdded(treeName, path);
-			} else {
-				child.fireNodeAdded(event);
-			}
-		}
-
-		this.aspectChanged(treeName);
-	}
-
-	/**
-	 * Report a bound tree update to any registered listeners.
-	 */
-	public void fireNodeRemoved(TreeChangeEvent event) {
-		String treeName = event.getTreeName();
-
-		TreeChangeListener[] targets = null;
-		ChangeSupport child = null;
-
-		synchronized (this) {
-			TreeChangeListener[] treeChangeListeners = this.getTreeChangeListeners();
-			if (treeChangeListeners != null) {
-				targets = treeChangeListeners.clone();
-			}
-			child = this.getChild(treeName);
-		}
-
-		if (targets != null) {
-			for (TreeChangeListener target : targets) {
-				boolean stillListening;
-				synchronized (this) {
-					stillListening = CollectionTools.contains(this.getTreeChangeListeners(), target);
-				}
-				if (stillListening) {
-					target.nodeRemoved(event);
-				}
-			}
-		}
-		if (child != null) {
-			child.fireNodeRemoved(event);
-		}
-
-		this.aspectChanged(treeName);
-	}
-
-	/**
-	 * Report a bound tree update to any registered listeners.
-	 */
-	public void fireNodeRemoved(String treeName, Object[] path) {
-//		this.fireNodeRemoved(new TreeChangeEvent(this.source, treeName, path));
-
-		TreeChangeListener[] targets = null;
-		ChangeSupport child = null;
-
-		synchronized (this) {
-			TreeChangeListener[] treeChangeListeners = this.getTreeChangeListeners();
-			if (treeChangeListeners != null) {
-				targets = treeChangeListeners.clone();
-			}
-			child = this.getChild(treeName);
-		}
-
-		TreeChangeEvent event = null;
-
-		if (targets != null) {
-			for (TreeChangeListener target : targets) {
-				boolean stillListening;
-				synchronized (this) {
-					stillListening = CollectionTools.contains(this.getTreeChangeListeners(), target);
-				}
-				if (stillListening) {
-					if (event == null) {
-						// here's the reason for the duplicate code...
-						event = new TreeChangeEvent(this.source, treeName, path);
-					}
-					target.nodeRemoved(event);
-				}
-			}
-		}
-		if (child != null) {
-			if (event == null) {
-				child.fireNodeRemoved(treeName, path);
-			} else {
-				child.fireNodeRemoved(event);
-			}
-		}
-
-		this.aspectChanged(treeName);
-	}
-
-	/**
-	 * Report a bound tree update to any registered listeners.
-	 */
-	public void fireTreeCleared(TreeChangeEvent event) {
-		String treeName = event.getTreeName();
-
-		TreeChangeListener[] targets = null;
-		ChangeSupport child = null;
-
-		synchronized (this) {
-			TreeChangeListener[] treeChangeListeners = this.getTreeChangeListeners();
-			if (treeChangeListeners != null) {
-				targets = treeChangeListeners.clone();
-			}
-			child = this.getChild(treeName);
-		}
-
-		if (targets != null) {
-			for (TreeChangeListener target : targets) {
-				boolean stillListening;
-				synchronized (this) {
-					stillListening = CollectionTools.contains(this.getTreeChangeListeners(), target);
-				}
-				if (stillListening) {
-					target.treeCleared(event);
-				}
-			}
-		}
-		if (child != null) {
-			child.fireTreeCleared(event);
-		}
-
-		this.aspectChanged(treeName);
-	}
-
-	/**
-	 * Report a bound tree update to any registered listeners.
-	 */
-	public void fireTreeCleared(String treeName, Object[] path) {
-//		this.fireTreeCleared(new TreeChangeEvent(this.source, treeName, path));
-
-		TreeChangeListener[] targets = null;
-		ChangeSupport child = null;
-
-		synchronized (this) {
-			TreeChangeListener[] treeChangeListeners = this.getTreeChangeListeners();
-			if (treeChangeListeners != null) {
-				targets = treeChangeListeners.clone();
-			}
-			child = this.getChild(treeName);
-		}
-
-		TreeChangeEvent event = null;
-
-		if (targets != null) {
-			for (TreeChangeListener target : targets) {
-				boolean stillListening;
-				synchronized (this) {
-					stillListening = CollectionTools.contains(this.getTreeChangeListeners(), target);
-				}
-				if (stillListening) {
-					if (event == null) {
-						// here's the reason for the duplicate code...
-						event = new TreeChangeEvent(this.source, treeName, path);
-					}
-					target.treeCleared(event);
-				}
-			}
-		}
-		if (child != null) {
-			if (event == null) {
-				child.fireTreeCleared(treeName, path);
-			} else {
-				child.fireTreeCleared(event);
-			}
-		}
-
-		this.aspectChanged(treeName);
-	}
-
-	/**
-	 * Report a bound tree update to any registered listeners.
-	 */
-	public void fireTreeCleared(String treeName) {
-		this.fireTreeCleared(treeName, EMPTY_TREE_PATH);
-	}
-
-	/**
-	 * Report a bound tree update to any registered listeners.
-	 */
-	public void fireTreeChanged(TreeChangeEvent event) {
-		String treeName = event.getTreeName();
-
-		TreeChangeListener[] targets = null;
-		ChangeSupport child = null;
-
-		synchronized (this) {
-			TreeChangeListener[] treeChangeListeners = this.getTreeChangeListeners();
-			if (treeChangeListeners != null) {
-				targets = treeChangeListeners.clone();
-			}
-			child = this.getChild(treeName);
-		}
-
-		if (targets != null) {
-			for (TreeChangeListener target : targets) {
-				boolean stillListening;
-				synchronized (this) {
-					stillListening = CollectionTools.contains(this.getTreeChangeListeners(), target);
-				}
-				if (stillListening) {
-					target.treeChanged(event);
-				}
-			}
-		}
-		if (child != null) {
-			child.fireTreeChanged(event);
-		}
-
-		this.aspectChanged(treeName);
-	}
-
-	/**
-	 * Report a bound tree update to any registered listeners.
-	 */
-	public void fireTreeChanged(String treeName, Object[] path) {
-//		this.fireTreeChanged(new TreeChangeEvent(this.source, treeName, path));
-
-		TreeChangeListener[] targets = null;
-		ChangeSupport child = null;
-
-		synchronized (this) {
-			TreeChangeListener[] treeChangeListeners = this.getTreeChangeListeners();
-			if (treeChangeListeners != null) {
-				targets = treeChangeListeners.clone();
-			}
-			child = this.getChild(treeName);
-		}
-
-		TreeChangeEvent event = null;
-
-		if (targets != null) {
-			for (TreeChangeListener target : targets) {
-				boolean stillListening;
-				synchronized (this) {
-					stillListening = CollectionTools.contains(this.getTreeChangeListeners(), target);
-				}
-				if (stillListening) {
-					if (event == null) {
-						// here's the reason for the duplicate code...
-						event = new TreeChangeEvent(this.source, treeName, path);
-					}
-					target.treeChanged(event);
-				}
-			}
-		}
-		if (child != null) {
-			if (event == null) {
-				child.fireTreeChanged(treeName, path);
-			} else {
-				child.fireTreeChanged(event);
-			}
-		}
-
-		this.aspectChanged(treeName);
-	}
-
-	/**
-	 * Report a bound tree update to any registered listeners.
-	 */
-	public void fireTreeChanged(String treeName) {
-		this.fireTreeChanged(treeName, EMPTY_TREE_PATH);
-	}
-
-
-	// ********** convenience methods **********
-
-	/**
-	 * Return whether the specified values are equal, with the appropriate null checks.
-	 * Convenience method for checking whether an attribute value has changed.
-	 */
-	public boolean valuesAreEqual(Object value1, Object value2) {
-		if ((value1 == null) && (value2 == null)) {
-			return true;	// both are null
-		}
-		if ((value1 == null) || (value2 == null)) {
-			return false;	// one is null but the other is not
-		}
-		return value1.equals(value2);
-	}
-
-	/**
-	 * Return whether the specified values are different, with the appropriate null checks.
-	 * Convenience method for checking whether an attribute value has changed.
-	 */
-	public boolean valuesAreDifferent(Object value1, Object value2) {
-		return ! this.valuesAreEqual(value1, value2);
-	}
-
-	/**
-	 * Return whether the specified iterators return the same elements
-	 * in the same order.
-	 */
-	public boolean elementsAreEqual(Iterator<?> iterator1, Iterator<?> iterator2) {
-		while (iterator1.hasNext() && iterator2.hasNext()) {
-			if (this.valuesAreDifferent(iterator1.next(), iterator2.next())) {
-				return false;
-			}
-		}
-		return ( ! iterator1.hasNext()) && ( ! iterator2.hasNext());
-	}
-
-	/**
-	 * Return whether the specified iterators do not return the same elements
-	 * in the same order.
-	 */
-	public boolean elementsAreDifferent(Iterator<?> iterator1, Iterator<?> iterator2) {
-		return ! this.elementsAreEqual(iterator1, iterator2);
-	}
-
-
-	// ********** standard methods **********
-
-	@Override
-	public String toString() {
-		return StringTools.buildToStringFor(this, this.source);
-	}
-
-
-	// ********** serialization **********
-
-	private synchronized void writeObject(ObjectOutputStream s) throws IOException {
-		// write out the source, children, and any hidden stuff
-		s.defaultWriteObject();
-
-		// only write out Serializable listeners
-		int len = this.genericListeners.length;
-		for (int i = 0; i < len; i++) {
-			this.writeObject(s, this.genericListeners[i]);
-		}
-		s.writeObject(null);
-    }
-
-	private void writeObject(ObjectOutputStream s, GenericListenerList gll) throws IOException {
-		boolean first = true;
-		int len = gll.listeners.length;
-		for (int i = 0; i < len; i++) {
-			ChangeListener listener = gll.listeners[i];
-			if (listener instanceof Serializable) {
-				if (first) {
-					first = false;
-					s.writeObject(gll.listenerClass);
-				}
-				s.writeObject(listener);
-			}
-		}
-		if ( ! first) {
-			s.writeObject(null);
-		}
-	}
-
-	private synchronized void readObject(ObjectInputStream s) throws ClassNotFoundException, IOException {
-		// read in the source, children, and any hidden stuff
-		s.defaultReadObject();
-
-		// read in generic listener lists
-		this.genericListeners = EMPTY_GENERIC_LISTENERS;
-		Object o;
-		while (null != (o = s.readObject())) {
-			@SuppressWarnings("unchecked")
-			Class<? extends ChangeListener> listenerClass = (Class<? extends ChangeListener>) o;
-			GenericListenerList gll = null;
-			while (null != (o = s.readObject())) {
-				if (gll == null) {
-					gll = this.addGenericListenerList_(listenerClass, (ChangeListener) o);
-				} else {
-					gll.addListener((ChangeListener) o);
-				}
-			}
-		}
-	}
-
-	@SuppressWarnings("unchecked")
-	private <T extends ChangeListener> GenericListenerList addGenericListenerList_(Class<T> listenerClass, ChangeListener listener) {
-		return this.addGenericListenerList(listenerClass, (T) listener);
-	}
-
-
-	// ********** member classes **********
-
-	/**
-	 * Pair a listener class with its "generic" listeners.
-	 */
-	private static class GenericListenerList {
-		final Class<? extends ChangeListener> listenerClass;
-		ChangeListener[] listeners;
-
-		<T extends ChangeListener> GenericListenerList(Class<T> listenerClass, T listener) {
-			super();
-			this.listenerClass = listenerClass;
-			this.listeners = (ChangeListener[]) Array.newInstance(listenerClass, 1);
-			this.listeners[0] = listener;
-		}
-
-		void addListener(ChangeListener listener) {
-			this.listeners = CollectionTools.add(this.listeners, listener);
-		}
-
-		boolean removeListener(ChangeListener listener) {
-			int len = this.listeners.length;
-			if (len == 0) {
-				return false;
-			}
-			try {
-				this.listeners = CollectionTools.remove(this.listeners, listener);
-			} catch (ArrayIndexOutOfBoundsException ex) {
-				return false;  // listener not in the list
-			}
-			return (this.listeners.length + 1) == len;
-		}
-
-		boolean hasListeners() {
-			return this.listeners.length > 0;
-		}
-
-		@Override
-		public String toString() {
-			return StringTools.buildToStringFor(this, ClassTools.shortNameFor(this.listenerClass));
-		}
-
-	}
-
-
-	/**
-	 * Pair an aspect name with the change support holding its associated
-	 * listeners.
-	 */
-	private static class AspectChild implements Serializable {
-		final String aspectName;
-		final ChangeSupport child;
-		private static final long serialVersionUID = 1L;
-
-		AspectChild(String aspectName, ChangeSupport child) {
-			super();
-			this.aspectName = aspectName;
-			this.child = child;
-		}
-
-		@Override
-		public String toString() {
-			return StringTools.buildToStringFor(this, this.aspectName);
-		}
-
-	}
-
-
-	/**
-	 * The aspect-specific change support class does not need to
-	 * build "grandchildren" change support objects.
-	 */
-	protected static class Child extends ChangeSupport {
-		private static final long serialVersionUID = 1L;
-
-		public Child(Model source) {
-			super(source);
-		}
-
-		@Override
-		protected ChangeSupport buildChild() {
-			// there should be no grandchildren
-			throw new UnsupportedOperationException();
-		}
-
-	}
-
-}
diff --git a/jpa/plugins/org.eclipse.jpt.utility/src/org/eclipse/jpt/utility/internal/model/SingleAspectChangeSupport.java b/jpa/plugins/org.eclipse.jpt.utility/src/org/eclipse/jpt/utility/internal/model/SingleAspectChangeSupport.java
deleted file mode 100644
index 1b42950..0000000
--- a/jpa/plugins/org.eclipse.jpt.utility/src/org/eclipse/jpt/utility/internal/model/SingleAspectChangeSupport.java
+++ /dev/null
@@ -1,339 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.utility.internal.model;
-
-import java.util.Collection;
-import java.util.List;
-import org.eclipse.jpt.utility.model.Model;
-import org.eclipse.jpt.utility.model.event.CollectionChangeEvent;
-import org.eclipse.jpt.utility.model.event.ListChangeEvent;
-import org.eclipse.jpt.utility.model.event.PropertyChangeEvent;
-import org.eclipse.jpt.utility.model.event.StateChangeEvent;
-import org.eclipse.jpt.utility.model.event.TreeChangeEvent;
-import org.eclipse.jpt.utility.model.listener.ChangeListener;
-
-/**
- * This change support class changes the behavior of the standard
- * ChangeSupport in several ways:
- * 	- All events fired by the source must specify the single aspect.
- * 	- Listeners are required to be either "generic" listeners or
- * 	    listeners of the single aspect.
- */
-public class SingleAspectChangeSupport
-	extends ChangeSupport
-{
-	protected final Class<? extends ChangeListener> listenerClass;
-	protected final String aspectName;
-
-	private static final long serialVersionUID = 1L;
-
-
-	// ********** constructor **********
-
-	public SingleAspectChangeSupport(Model source, Class<? extends ChangeListener> listenerClass, String aspectName) {
-		super(source);
-		this.listenerClass = listenerClass;
-		this.aspectName = aspectName;
-	}
-
-
-	// ********** internal behavior **********
-
-	private UnsupportedOperationException unsupportedOperationException() {
-		return new UnsupportedOperationException(
-				"This Model supports only changes for the listener type \"" + this.listenerClass.getName() //$NON-NLS-1$
-				+ "\" and the aspect \"" + this.aspectName + '"' //$NON-NLS-1$
-			);
-	}
-
-	private void check(Class<? extends ChangeListener> lClass, String aName) {
-		if (lClass != this.listenerClass) {
-			throw new IllegalArgumentException(
-					"This Model supports only changes for the listener type \"" + this.listenerClass.getName() //$NON-NLS-1$
-					+ "\" : \"" + lClass.getName() + '"' //$NON-NLS-1$
-				);
-		}
-		if (aName != this.aspectName) {
-			throw new IllegalArgumentException(
-					"This Model supports only changes for the aspect \"" + this.aspectName //$NON-NLS-1$
-					+ "\" : \"" + aName + '"' //$NON-NLS-1$
-				);
-		}
-	}
-
-	@Override
-	protected <T extends ChangeListener> void addListener(String aName, Class<T> lClass, T listener) {
-		this.check(lClass, aName);
-		super.addListener(aName, lClass, listener);
-	}
-
-	@Override
-	protected <T extends ChangeListener> void removeListener(String aName, Class<T> lClass, T listener) {
-		this.check(lClass, aName);
-		super.removeListener(aName, lClass, listener);
-	}
-
-
-	// ********** internal queries **********
-
-	@Override
-	protected boolean hasAnyListeners(Class<? extends ChangeListener> lClass, String aName) {
-		this.check(lClass, aName);
-		return super.hasAnyListeners(lClass, aName);
-	}
-
-
-	// ********** state change support **********
-
-	@Override
-	public void fireStateChanged(StateChangeEvent event) {
-		throw this.unsupportedOperationException();
-	}
-
-	@Override
-	public void fireStateChanged() {
-		throw this.unsupportedOperationException();
-	}
-
-
-	// ********** property change support **********
-
-	@Override
-	public void firePropertyChanged(PropertyChangeEvent event) {
-		this.check(PROPERTY_CHANGE_LISTENER_CLASS, event.getPropertyName());
-		super.firePropertyChanged(event);
-	}
-
-	@Override
-	public void firePropertyChanged(String propertyName, Object oldValue, Object newValue) {
-		this.check(PROPERTY_CHANGE_LISTENER_CLASS, propertyName);
-		super.firePropertyChanged(propertyName, oldValue, newValue);
-	}
-
-	@Override
-	public void firePropertyChanged(String propertyName, int oldValue, int newValue) {
-		this.check(PROPERTY_CHANGE_LISTENER_CLASS, propertyName);
-		super.firePropertyChanged(propertyName, oldValue, newValue);
-	}
-
-	@Override
-	public void firePropertyChanged(String propertyName, boolean oldValue, boolean newValue) {
-		this.check(PROPERTY_CHANGE_LISTENER_CLASS, propertyName);
-		super.firePropertyChanged(propertyName, oldValue, newValue);
-	}
-
-
-	// ********** collection change support **********
-
-	@Override
-	public void fireItemsAdded(CollectionChangeEvent event) {
-		this.check(COLLECTION_CHANGE_LISTENER_CLASS, event.getCollectionName());
-		super.fireItemsAdded(event);
-	}
-
-	@Override
-	public void fireItemsAdded(String collectionName, Collection<?> addedItems) {
-		this.check(COLLECTION_CHANGE_LISTENER_CLASS, collectionName);
-		super.fireItemsAdded(collectionName, addedItems);
-	}
-
-	@Override
-	public void fireItemAdded(String collectionName, Object addedItem) {
-		this.check(COLLECTION_CHANGE_LISTENER_CLASS, collectionName);
-		super.fireItemAdded(collectionName, addedItem);
-	}
-
-	@Override
-	public void fireItemsRemoved(CollectionChangeEvent event) {
-		this.check(COLLECTION_CHANGE_LISTENER_CLASS, event.getCollectionName());
-		super.fireItemsRemoved(event);
-	}
-
-	@Override
-	public void fireItemsRemoved(String collectionName, Collection<?> removedItems) {
-		this.check(COLLECTION_CHANGE_LISTENER_CLASS, collectionName);
-		super.fireItemsRemoved(collectionName, removedItems);
-	}
-
-	@Override
-	public void fireItemRemoved(String collectionName, Object removedItem) {
-		this.check(COLLECTION_CHANGE_LISTENER_CLASS, collectionName);
-		super.fireItemRemoved(collectionName, removedItem);
-	}
-
-	@Override
-	public void fireCollectionCleared(CollectionChangeEvent event) {
-		this.check(COLLECTION_CHANGE_LISTENER_CLASS, event.getCollectionName());
-		super.fireCollectionCleared(event);
-	}
-
-	@Override
-	public void fireCollectionCleared(String collectionName) {
-		this.check(COLLECTION_CHANGE_LISTENER_CLASS, collectionName);
-		super.fireCollectionCleared(collectionName);
-	}
-
-	@Override
-	public void fireCollectionChanged(CollectionChangeEvent event) {
-		this.check(COLLECTION_CHANGE_LISTENER_CLASS, event.getCollectionName());
-		super.fireCollectionChanged(event);
-	}
-
-	@Override
-	public void fireCollectionChanged(String collectionName) {
-		this.check(COLLECTION_CHANGE_LISTENER_CLASS, collectionName);
-		super.fireCollectionChanged(collectionName);
-	}
-
-
-	// ********** list change support **********
-
-	@Override
-	public void fireItemsAdded(ListChangeEvent event) {
-		this.check(LIST_CHANGE_LISTENER_CLASS, event.getListName());
-		super.fireItemsAdded(event);
-	}
-
-	@Override
-	public void fireItemsAdded(String listName, int index, List<?> addedItems) {
-		this.check(LIST_CHANGE_LISTENER_CLASS, listName);
-		super.fireItemsAdded(listName, index, addedItems);
-	}
-
-	@Override
-	public void fireItemAdded(String listName, int index, Object addedItem) {
-		this.check(LIST_CHANGE_LISTENER_CLASS, listName);
-		super.fireItemAdded(listName, index, addedItem);
-	}
-
-	@Override
-	public void fireItemsRemoved(ListChangeEvent event) {
-		this.check(LIST_CHANGE_LISTENER_CLASS, event.getListName());
-		super.fireItemsRemoved(event);
-	}
-
-	@Override
-	public void fireItemsRemoved(String listName, int index, List<?> removedItems) {
-		this.check(LIST_CHANGE_LISTENER_CLASS, listName);
-		super.fireItemsRemoved(listName, index, removedItems);
-	}
-
-	@Override
-	public void fireItemRemoved(String listName, int index, Object removedItem) {
-		this.check(LIST_CHANGE_LISTENER_CLASS, listName);
-		super.fireItemRemoved(listName, index, removedItem);
-	}
-
-	@Override
-	public void fireItemsReplaced(ListChangeEvent event) {
-		this.check(LIST_CHANGE_LISTENER_CLASS, event.getListName());
-		super.fireItemsReplaced(event);
-	}
-
-	@Override
-	public void fireItemsReplaced(String listName, int index, List<?> newItems, List<?> replacedItems) {
-		this.check(LIST_CHANGE_LISTENER_CLASS, listName);
-		super.fireItemsReplaced(listName, index, newItems, replacedItems);
-	}
-
-	@Override
-	public void fireItemReplaced(String listName, int index, Object newItem, Object replacedItem) {
-		this.check(LIST_CHANGE_LISTENER_CLASS, listName);
-		super.fireItemReplaced(listName, index, newItem, replacedItem);
-	}
-
-	@Override
-	public void fireItemsMoved(ListChangeEvent event) {
-		this.check(LIST_CHANGE_LISTENER_CLASS, event.getListName());
-		super.fireItemsMoved(event);
-	}
-
-	@Override
-	public void fireItemsMoved(String listName, int targetIndex, int sourceIndex, int length) {
-		this.check(LIST_CHANGE_LISTENER_CLASS, listName);
-		super.fireItemsMoved(listName, targetIndex, sourceIndex, length);
-	}
-
-	@Override
-	public void fireListCleared(ListChangeEvent event) {
-		this.check(LIST_CHANGE_LISTENER_CLASS, event.getListName());
-		super.fireListCleared(event);
-	}
-
-	@Override
-	public void fireListCleared(String listName) {
-		this.check(LIST_CHANGE_LISTENER_CLASS, listName);
-		super.fireListCleared(listName);
-	}
-
-	@Override
-	public void fireListChanged(ListChangeEvent event) {
-		this.check(LIST_CHANGE_LISTENER_CLASS, event.getListName());
-		super.fireListChanged(event);
-	}
-
-	@Override
-	public void fireListChanged(String listName) {
-		this.check(LIST_CHANGE_LISTENER_CLASS, listName);
-		super.fireListChanged(listName);
-	}
-
-
-	// ********** tree change support **********
-
-	@Override
-	public void fireNodeAdded(TreeChangeEvent event) {
-		this.check(TREE_CHANGE_LISTENER_CLASS, event.getTreeName());
-		super.fireNodeAdded(event);
-	}
-
-	@Override
-	public void fireNodeAdded(String treeName, Object[] path) {
-		this.check(TREE_CHANGE_LISTENER_CLASS, treeName);
-		super.fireNodeAdded(treeName, path);
-	}
-
-	@Override
-	public void fireNodeRemoved(TreeChangeEvent event) {
-		this.check(TREE_CHANGE_LISTENER_CLASS, event.getTreeName());
-		super.fireNodeRemoved(event);
-	}
-
-	@Override
-	public void fireNodeRemoved(String treeName, Object[] path) {
-		this.check(TREE_CHANGE_LISTENER_CLASS, treeName);
-		super.fireNodeRemoved(treeName, path);
-	}
-
-	@Override
-	public void fireTreeCleared(TreeChangeEvent event) {
-		this.check(TREE_CHANGE_LISTENER_CLASS, event.getTreeName());
-		super.fireTreeCleared(event);
-	}
-
-	@Override
-	public void fireTreeCleared(String treeName, Object[] path) {
-		this.check(TREE_CHANGE_LISTENER_CLASS, treeName);
-		super.fireTreeCleared(treeName, path);
-	}
-
-	@Override
-	public void fireTreeChanged(TreeChangeEvent event) {
-		this.check(TREE_CHANGE_LISTENER_CLASS, event.getTreeName());
-		super.fireTreeChanged(event);
-	}
-
-	@Override
-	public void fireTreeChanged(String treeName, Object[] path) {
-		this.check(TREE_CHANGE_LISTENER_CLASS, treeName);
-		super.fireTreeChanged(treeName, path);
-	}
-
-}
diff --git a/jpa/plugins/org.eclipse.jpt.utility/src/org/eclipse/jpt/utility/internal/model/listener/awt/AWTCollectionChangeListenerWrapper.java b/jpa/plugins/org.eclipse.jpt.utility/src/org/eclipse/jpt/utility/internal/model/listener/awt/AWTCollectionChangeListenerWrapper.java
deleted file mode 100644
index 4cab405..0000000
--- a/jpa/plugins/org.eclipse.jpt.utility/src/org/eclipse/jpt/utility/internal/model/listener/awt/AWTCollectionChangeListenerWrapper.java
+++ /dev/null
@@ -1,150 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2008 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.utility.internal.model.listener.awt;
-
-import java.awt.EventQueue;
-import org.eclipse.jpt.utility.model.event.CollectionChangeEvent;
-import org.eclipse.jpt.utility.model.listener.CollectionChangeListener;
-
-/**
- * Wrap another collection change listener and forward events to it on the AWT
- * event queue.
- */
-public class AWTCollectionChangeListenerWrapper
-	implements CollectionChangeListener
-{
-	private final CollectionChangeListener listener;
-
-	public AWTCollectionChangeListenerWrapper(CollectionChangeListener listener) {
-		super();
-		if (listener == null) {
-			throw new NullPointerException();
-		}
-		this.listener = listener;
-	}
-
-	public void itemsAdded(CollectionChangeEvent event) {
-		if (EventQueue.isDispatchThread()) {
-			this.itemsAdded_(event);
-		} else {
-			this.executeOnEventQueue(this.buildItemsAddedRunnable(event));
-		}
-	}
-
-	public void itemsRemoved(CollectionChangeEvent event) {
-		if (EventQueue.isDispatchThread()) {
-			this.itemsRemoved_(event);
-		} else {
-			this.executeOnEventQueue(this.buildItemsRemovedRunnable(event));
-		}
-	}
-
-	public void collectionCleared(CollectionChangeEvent event) {
-		if (EventQueue.isDispatchThread()) {
-			this.collectionCleared_(event);
-		} else {
-			this.executeOnEventQueue(this.buildCollectionClearedRunnable(event));
-		}
-	}
-
-	public void collectionChanged(CollectionChangeEvent event) {
-		if (EventQueue.isDispatchThread()) {
-			this.collectionChanged_(event);
-		} else {
-			this.executeOnEventQueue(this.buildCollectionChangedRunnable(event));
-		}
-	}
-
-	private Runnable buildItemsAddedRunnable(final CollectionChangeEvent event) {
-		return new Runnable() {
-			public void run() {
-				AWTCollectionChangeListenerWrapper.this.itemsAdded_(event);
-			}
-			@Override
-			public String toString() {
-				return "items added";
-			}
-		};
-	}
-
-	private Runnable buildItemsRemovedRunnable(final CollectionChangeEvent event) {
-		return new Runnable() {
-			public void run() {
-				AWTCollectionChangeListenerWrapper.this.itemsRemoved_(event);
-			}
-			@Override
-			public String toString() {
-				return "items removed";
-			}
-		};
-	}
-
-	private Runnable buildCollectionClearedRunnable(final CollectionChangeEvent event) {
-		return new Runnable() {
-			public void run() {
-				AWTCollectionChangeListenerWrapper.this.collectionCleared_(event);
-			}
-			@Override
-			public String toString() {
-				return "collection cleared";
-			}
-		};
-	}
-
-	private Runnable buildCollectionChangedRunnable(final CollectionChangeEvent event) {
-		return new Runnable() {
-			public void run() {
-				AWTCollectionChangeListenerWrapper.this.collectionChanged_(event);
-			}
-			@Override
-			public String toString() {
-				return "collection changed";
-			}
-		};
-	}
-
-	/**
-	 * EventQueue#invokeLater(Runnable) seems to work OK;
-	 * but using #invokeAndWait(Runnable) can sometimes make things
-	 * more predictable when debugging, at the risk of deadlocks.
-	 */
-	private void executeOnEventQueue(Runnable r) {
-		EventQueue.invokeLater(r);
-//		try {
-//			EventQueue.invokeAndWait(r);
-//		} catch (InterruptedException ex) {
-//			throw new RuntimeException(ex);
-//		} catch (java.lang.reflect.InvocationTargetException ex) {
-//			throw new RuntimeException(ex);
-//		}
-	}
-
-	void itemsAdded_(CollectionChangeEvent event) {
-		this.listener.itemsAdded(event);
-	}
-
-	void itemsRemoved_(CollectionChangeEvent event) {
-		this.listener.itemsRemoved(event);
-	}
-
-	void collectionCleared_(CollectionChangeEvent event) {
-		this.listener.collectionCleared(event);
-	}
-
-	void collectionChanged_(CollectionChangeEvent event) {
-		this.listener.collectionChanged(event);
-	}
-
-	@Override
-	public String toString() {
-		return "AWT(" + this.listener.toString() + ")";
-	}
-
-}
diff --git a/jpa/plugins/org.eclipse.jpt.utility/src/org/eclipse/jpt/utility/internal/model/listener/awt/AWTListChangeListenerWrapper.java b/jpa/plugins/org.eclipse.jpt.utility/src/org/eclipse/jpt/utility/internal/model/listener/awt/AWTListChangeListenerWrapper.java
deleted file mode 100644
index 7bed089..0000000
--- a/jpa/plugins/org.eclipse.jpt.utility/src/org/eclipse/jpt/utility/internal/model/listener/awt/AWTListChangeListenerWrapper.java
+++ /dev/null
@@ -1,198 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2008 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.utility.internal.model.listener.awt;
-
-import java.awt.EventQueue;
-import org.eclipse.jpt.utility.model.event.ListChangeEvent;
-import org.eclipse.jpt.utility.model.listener.ListChangeListener;
-
-/**
- * Wrap another list change listener and forward events to it on the AWT
- * event queue.
- */
-public class AWTListChangeListenerWrapper
-	implements ListChangeListener
-{
-	private final ListChangeListener listener;
-
-	public AWTListChangeListenerWrapper(ListChangeListener listener) {
-		super();
-		if (listener == null) {
-			throw new NullPointerException();
-		}
-		this.listener = listener;
-	}
-
-	public void itemsAdded(ListChangeEvent event) {
-		if (EventQueue.isDispatchThread()) {
-			this.itemsAdded_(event);
-		} else {
-			this.executeOnEventQueue(this.buildItemsAddedRunnable(event));
-		}
-	}
-
-	public void itemsRemoved(ListChangeEvent event) {
-		if (EventQueue.isDispatchThread()) {
-			this.itemsRemoved_(event);
-		} else {
-			this.executeOnEventQueue(this.buildItemsRemovedRunnable(event));
-		}
-	}
-
-	public void itemsMoved(ListChangeEvent event) {
-		if (EventQueue.isDispatchThread()) {
-			this.itemsMoved_(event);
-		} else {
-			this.executeOnEventQueue(this.buildItemsMovedRunnable(event));
-		}
-	}
-
-	public void itemsReplaced(ListChangeEvent event) {
-		if (EventQueue.isDispatchThread()) {
-			this.itemsReplaced_(event);
-		} else {
-			this.executeOnEventQueue(this.buildItemsReplacedRunnable(event));
-		}
-	}
-
-	public void listCleared(ListChangeEvent event) {
-		if (EventQueue.isDispatchThread()) {
-			this.listCleared_(event);
-		} else {
-			this.executeOnEventQueue(this.buildListClearedRunnable(event));
-		}
-	}
-
-	public void listChanged(ListChangeEvent event) {
-		if (EventQueue.isDispatchThread()) {
-			this.listChanged_(event);
-		} else {
-			this.executeOnEventQueue(this.buildListChangedRunnable(event));
-		}
-	}
-
-	private Runnable buildItemsAddedRunnable(final ListChangeEvent event) {
-		return new Runnable() {
-			public void run() {
-				AWTListChangeListenerWrapper.this.itemsAdded_(event);
-			}
-			@Override
-			public String toString() {
-				return "items added";
-			}
-		};
-	}
-
-	private Runnable buildItemsRemovedRunnable(final ListChangeEvent event) {
-		return new Runnable() {
-			public void run() {
-				AWTListChangeListenerWrapper.this.itemsRemoved_(event);
-			}
-			@Override
-			public String toString() {
-				return "items removed";
-			}
-		};
-	}
-
-	private Runnable buildItemsMovedRunnable(final ListChangeEvent event) {
-		return new Runnable() {
-			public void run() {
-				AWTListChangeListenerWrapper.this.itemsMoved_(event);
-			}
-			@Override
-			public String toString() {
-				return "items moved";
-			}
-		};
-	}
-
-	private Runnable buildItemsReplacedRunnable(final ListChangeEvent event) {
-		return new Runnable() {
-			public void run() {
-				AWTListChangeListenerWrapper.this.itemsReplaced_(event);
-			}
-			@Override
-			public String toString() {
-				return "items replaced";
-			}
-		};
-	}
-
-	private Runnable buildListClearedRunnable(final ListChangeEvent event) {
-		return new Runnable() {
-			public void run() {
-				AWTListChangeListenerWrapper.this.listCleared_(event);
-			}
-			@Override
-			public String toString() {
-				return "list cleared";
-			}
-		};
-	}
-
-	private Runnable buildListChangedRunnable(final ListChangeEvent event) {
-		return new Runnable() {
-			public void run() {
-				AWTListChangeListenerWrapper.this.listChanged_(event);
-			}
-			@Override
-			public String toString() {
-				return "list changed";
-			}
-		};
-	}
-
-	/**
-	 * EventQueue#invokeLater(Runnable) seems to work OK;
-	 * but using #invokeAndWait(Runnable) can sometimes make things
-	 * more predictable when debugging, at the risk of deadlocks.
-	 */
-	private void executeOnEventQueue(Runnable r) {
-		EventQueue.invokeLater(r);
-//		try {
-//			EventQueue.invokeAndWait(r);
-//		} catch (InterruptedException ex) {
-//			throw new RuntimeException(ex);
-//		} catch (java.lang.reflect.InvocationTargetException ex) {
-//			throw new RuntimeException(ex);
-//		}
-	}
-
-	void itemsAdded_(ListChangeEvent event) {
-		this.listener.itemsAdded(event);
-	}
-
-	void itemsRemoved_(ListChangeEvent event) {
-		this.listener.itemsRemoved(event);
-	}
-
-	void itemsMoved_(ListChangeEvent event) {
-		this.listener.itemsMoved(event);
-	}
-
-	void itemsReplaced_(ListChangeEvent event) {
-		this.listener.itemsReplaced(event);
-	}
-
-	void listCleared_(ListChangeEvent event) {
-		this.listener.listCleared(event);
-	}
-
-	void listChanged_(ListChangeEvent event) {
-		this.listener.listChanged(event);
-	}
-
-	@Override
-	public String toString() {
-		return "AWT(" + this.listener.toString() + ")";
-	}
-
-}
diff --git a/jpa/plugins/org.eclipse.jpt.utility/src/org/eclipse/jpt/utility/internal/model/listener/awt/AWTPropertyChangeListenerWrapper.java b/jpa/plugins/org.eclipse.jpt.utility/src/org/eclipse/jpt/utility/internal/model/listener/awt/AWTPropertyChangeListenerWrapper.java
deleted file mode 100644
index bcc372a..0000000
--- a/jpa/plugins/org.eclipse.jpt.utility/src/org/eclipse/jpt/utility/internal/model/listener/awt/AWTPropertyChangeListenerWrapper.java
+++ /dev/null
@@ -1,75 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2008 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.utility.internal.model.listener.awt;
-
-import java.awt.EventQueue;
-import org.eclipse.jpt.utility.model.event.PropertyChangeEvent;
-import org.eclipse.jpt.utility.model.listener.PropertyChangeListener;
-
-/**
- * Wrap another property change listener and forward events to it on the AWT
- * event queue.
- */
-public class AWTPropertyChangeListenerWrapper
-	implements PropertyChangeListener
-{
-	private final PropertyChangeListener listener;
-
-
-	public AWTPropertyChangeListenerWrapper(PropertyChangeListener listener) {
-		super();
-		if (listener == null) {
-			throw new NullPointerException();
-		}
-		this.listener = listener;
-	}
-
-	public void propertyChanged(PropertyChangeEvent event) {
-		if (EventQueue.isDispatchThread()) {
-			this.propertyChanged_(event);
-		} else {
-			this.executeOnEventQueue(this.buildRunnable(event));
-		}
-	}
-
-	private Runnable buildRunnable(final PropertyChangeEvent event) {
-		return new Runnable() {
-			public void run() {
-				AWTPropertyChangeListenerWrapper.this.propertyChanged_(event);
-			}
-		};
-	}
-
-	/**
-	 * EventQueue#invokeLater(Runnable) seems to work OK;
-	 * but using #invokeAndWait(Runnable) can sometimes make things
-	 * more predictable when debugging, at the risk of deadlocks.
-	 */
-	private void executeOnEventQueue(Runnable r) {
-		EventQueue.invokeLater(r);
-//		try {
-//			EventQueue.invokeAndWait(r);
-//		} catch (InterruptedException ex) {
-//			throw new RuntimeException(ex);
-//		} catch (java.lang.reflect.InvocationTargetException ex) {
-//			throw new RuntimeException(ex);
-//		}
-	}
-
-	void propertyChanged_(PropertyChangeEvent event) {
-		this.listener.propertyChanged(event);
-	}
-
-	@Override
-	public String toString() {
-		return "AWT(" + this.listener.toString() + ")";
-	}
-
-}
diff --git a/jpa/plugins/org.eclipse.jpt.utility/src/org/eclipse/jpt/utility/internal/model/listener/awt/AWTStateChangeListenerWrapper.java b/jpa/plugins/org.eclipse.jpt.utility/src/org/eclipse/jpt/utility/internal/model/listener/awt/AWTStateChangeListenerWrapper.java
deleted file mode 100644
index f5f2988..0000000
--- a/jpa/plugins/org.eclipse.jpt.utility/src/org/eclipse/jpt/utility/internal/model/listener/awt/AWTStateChangeListenerWrapper.java
+++ /dev/null
@@ -1,74 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2008 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.utility.internal.model.listener.awt;
-
-import java.awt.EventQueue;
-import org.eclipse.jpt.utility.model.event.StateChangeEvent;
-import org.eclipse.jpt.utility.model.listener.StateChangeListener;
-
-/**
- * Wrap another state change listener and forward events to it on the AWT
- * event queue.
- */
-public class AWTStateChangeListenerWrapper
-	implements StateChangeListener
-{
-	private final StateChangeListener listener;
-
-	public AWTStateChangeListenerWrapper(StateChangeListener listener) {
-		super();
-		if (listener == null) {
-			throw new NullPointerException();
-		}
-		this.listener = listener;
-	}
-
-	public void stateChanged(StateChangeEvent event) {
-		if (EventQueue.isDispatchThread()) {
-			this.stateChanged_(event);
-		} else {
-			this.executeOnEventQueue(this.buildRunnable(event));
-		}
-	}
-
-	private Runnable buildRunnable(final StateChangeEvent event) {
-		return new Runnable() {
-			public void run() {
-				AWTStateChangeListenerWrapper.this.stateChanged_(event);
-			}
-		};
-	}
-
-	/**
-	 * EventQueue#invokeLater(Runnable) seems to work OK;
-	 * but using #invokeAndWait(Runnable) can sometimes make things
-	 * more predictable when debugging, at the risk of deadlocks.
-	 */
-	private void executeOnEventQueue(Runnable r) {
-		EventQueue.invokeLater(r);
-//		try {
-//			EventQueue.invokeAndWait(r);
-//		} catch (InterruptedException ex) {
-//			throw new RuntimeException(ex);
-//		} catch (java.lang.reflect.InvocationTargetException ex) {
-//			throw new RuntimeException(ex);
-//		}
-	}
-
-	void stateChanged_(StateChangeEvent event) {
-		this.listener.stateChanged(event);
-	}
-
-	@Override
-	public String toString() {
-		return "AWT(" + this.listener.toString() + ")";
-	}
-
-}
diff --git a/jpa/plugins/org.eclipse.jpt.utility/src/org/eclipse/jpt/utility/internal/model/listener/awt/AWTTreeChangeListenerWrapper.java b/jpa/plugins/org.eclipse.jpt.utility/src/org/eclipse/jpt/utility/internal/model/listener/awt/AWTTreeChangeListenerWrapper.java
deleted file mode 100644
index be7cfb1..0000000
--- a/jpa/plugins/org.eclipse.jpt.utility/src/org/eclipse/jpt/utility/internal/model/listener/awt/AWTTreeChangeListenerWrapper.java
+++ /dev/null
@@ -1,150 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2008 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.utility.internal.model.listener.awt;
-
-import java.awt.EventQueue;
-import org.eclipse.jpt.utility.model.event.TreeChangeEvent;
-import org.eclipse.jpt.utility.model.listener.TreeChangeListener;
-
-/**
- * Wrap another tree change listener and forward events to it on the AWT
- * event queue.
- */
-public class AWTTreeChangeListenerWrapper
-	implements TreeChangeListener
-{
-	private final TreeChangeListener listener;
-
-	public AWTTreeChangeListenerWrapper(TreeChangeListener listener) {
-		super();
-		if (listener == null) {
-			throw new NullPointerException();
-		}
-		this.listener = listener;
-	}
-
-	public void nodeAdded(TreeChangeEvent event) {
-		if (EventQueue.isDispatchThread()) {
-			this.nodeAdded_(event);
-		} else {
-			this.executeOnEventQueue(this.buildNodeAddedRunnable(event));
-		}
-	}
-
-	public void nodeRemoved(TreeChangeEvent event) {
-		if (EventQueue.isDispatchThread()) {
-			this.nodeRemoved_(event);
-		} else {
-			this.executeOnEventQueue(this.buildNodeRemovedRunnable(event));
-		}
-	}
-
-	public void treeCleared(TreeChangeEvent event) {
-		if (EventQueue.isDispatchThread()) {
-			this.treeCleared_(event);
-		} else {
-			this.executeOnEventQueue(this.buildTreeClearedRunnable(event));
-		}
-	}
-
-	public void treeChanged(TreeChangeEvent event) {
-		if (EventQueue.isDispatchThread()) {
-			this.treeChanged_(event);
-		} else {
-			this.executeOnEventQueue(this.buildTreeChangedRunnable(event));
-		}
-	}
-
-	private Runnable buildNodeAddedRunnable(final TreeChangeEvent event) {
-		return new Runnable() {
-			public void run() {
-				AWTTreeChangeListenerWrapper.this.nodeAdded_(event);
-			}
-			@Override
-			public String toString() {
-				return "node added";
-			}
-		};
-	}
-
-	private Runnable buildNodeRemovedRunnable(final TreeChangeEvent event) {
-		return new Runnable() {
-			public void run() {
-				AWTTreeChangeListenerWrapper.this.nodeRemoved_(event);
-			}
-			@Override
-			public String toString() {
-				return "node removed";
-			}
-		};
-	}
-
-	private Runnable buildTreeClearedRunnable(final TreeChangeEvent event) {
-		return new Runnable() {
-			public void run() {
-				AWTTreeChangeListenerWrapper.this.treeCleared_(event);
-			}
-			@Override
-			public String toString() {
-				return "tree cleared";
-			}
-		};
-	}
-
-	private Runnable buildTreeChangedRunnable(final TreeChangeEvent event) {
-		return new Runnable() {
-			public void run() {
-				AWTTreeChangeListenerWrapper.this.treeChanged_(event);
-			}
-			@Override
-			public String toString() {
-				return "tree changed";
-			}
-		};
-	}
-
-	/**
-	 * EventQueue#invokeLater(Runnable) seems to work OK;
-	 * but using #invokeAndWait(Runnable) can sometimes make things
-	 * more predictable when debugging, at the risk of deadlocks.
-	 */
-	private void executeOnEventQueue(Runnable r) {
-		EventQueue.invokeLater(r);
-//		try {
-//			EventQueue.invokeAndWait(r);
-//		} catch (InterruptedException ex) {
-//			throw new RuntimeException(ex);
-//		} catch (java.lang.reflect.InvocationTargetException ex) {
-//			throw new RuntimeException(ex);
-//		}
-	}
-
-	void nodeAdded_(TreeChangeEvent event) {
-		this.listener.nodeAdded(event);
-	}
-
-	void nodeRemoved_(TreeChangeEvent event) {
-		this.listener.nodeRemoved(event);
-	}
-
-	void treeCleared_(TreeChangeEvent event) {
-		this.listener.treeCleared(event);
-	}
-
-	void treeChanged_(TreeChangeEvent event) {
-		this.listener.treeChanged(event);
-	}
-
-	@Override
-	public String toString() {
-		return "AWT(" + this.listener.toString() + ")";
-	}
-
-}
diff --git a/jpa/plugins/org.eclipse.jpt.utility/src/org/eclipse/jpt/utility/internal/model/value/AbstractTreeNodeValueModel.java b/jpa/plugins/org.eclipse.jpt.utility/src/org/eclipse/jpt/utility/internal/model/value/AbstractTreeNodeValueModel.java
deleted file mode 100644
index 906c2e1..0000000
--- a/jpa/plugins/org.eclipse.jpt.utility/src/org/eclipse/jpt/utility/internal/model/value/AbstractTreeNodeValueModel.java
+++ /dev/null
@@ -1,194 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2008 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.utility.internal.model.value;
-
-import java.util.Iterator;
-import java.util.List;
-import org.eclipse.jpt.utility.internal.CollectionTools;
-import org.eclipse.jpt.utility.internal.iterators.ChainIterator;
-import org.eclipse.jpt.utility.internal.model.AbstractModel;
-import org.eclipse.jpt.utility.internal.model.ChangeSupport;
-import org.eclipse.jpt.utility.model.listener.StateChangeListener;
-import org.eclipse.jpt.utility.model.value.ListValueModel;
-import org.eclipse.jpt.utility.model.value.TreeNodeValueModel;
-
-/**
- * Subclasses need only implement the following methods:
- * 
- * #value()
- *	    return the user-determined "value" of the node,
- *     i.e. the object "wrapped" by the node
- * 
- * #setValue(Object)
- *     set the user-determined "value" of the node,
- *     i.e. the object "wrapped" by the node;
- *     typically only overridden for nodes with "primitive" values
- * 
- * #parent()
- *     return the parent of the node, which should be another
- *     TreeNodeValueModel
- * 
- * #childrenModel()
- *     return a ListValueModel for the node's children
- * 
- * #engageValue() and #disengageValue()
- *     override these methods to listen to the node's value if
- *     it can change in a way that should be reflected in the tree
- */
-public abstract class AbstractTreeNodeValueModel<T>
-	extends AbstractModel
-	implements TreeNodeValueModel<T>
-{
-
-
-	// ********** constructors **********
-	
-	/**
-	 * Default constructor.
-	 */
-	protected AbstractTreeNodeValueModel() {
-		super();
-	}
-	
-	@Override
-	protected ChangeSupport buildChangeSupport() {
-		// this model fires *both* "value property change" and "state change" events...
-//		return new SingleAspectChangeSupport(this, PropertyChangeListener.class, PropertyValueModel.VALUE);
-		return super.buildChangeSupport();
-	}
-
-
-	// ********** extend AbstractModel implementation **********
-
-	/**
-	 * Clients should be adding both "state change" and "value property change"
-	 * listeners.
-	 */
-	@Override
-	public void addStateChangeListener(StateChangeListener listener) {
-		if (this.hasNoStateChangeListeners()) {
-			this.engageValue();
-		}
-		super.addStateChangeListener(listener);
-	}
-
-	/**
-	 * Begin listening to the node's value's state. If the state of the node changes
-	 * in a way that should be reflected in the tree, fire a "state change" event.
-	 */
-	protected abstract void engageValue();
-
-	/**
-	 * @see #addStateChangeListener(StateChangeListener)
-	 */
-	@Override
-	public void removeStateChangeListener(StateChangeListener listener) {
-		super.removeStateChangeListener(listener);
-		if (this.hasNoStateChangeListeners()) {
-			this.disengageValue();
-		}
-	}
-
-	/**
-	 * Stop listening to the node's value.
-	 * @see #engageValue()
-	 */
-	protected abstract void disengageValue();
-
-
-	// ********** WritablePropertyValueModel implementation **********
-	
-	public void setValue(T value) {
-		throw new UnsupportedOperationException();
-	}
-
-
-	// ********** TreeNodeValueModel implementation **********
-	
-	@SuppressWarnings("unchecked")
-	public TreeNodeValueModel<T>[] path() {
-		List<TreeNodeValueModel<T>> path = CollectionTools.reverseList(this.backPath());
-		return path.toArray(new TreeNodeValueModel[path.size()]);
-	}
-
-	/**
-	 * Return an iterator that climbs up the node's path,
-	 * starting with, and including, the node
-	 * and up to, and including, the root node.
-	 */
-	protected Iterator<TreeNodeValueModel<T>> backPath() {
-		return new ChainIterator<TreeNodeValueModel<T>>(this) {
-			@Override
-			protected TreeNodeValueModel<T> nextLink(TreeNodeValueModel<T> currentLink) {
-				return currentLink.parent();
-			}
-		};
-	}
-
-	public TreeNodeValueModel<T> child(int index) {
-		return this.childrenModel().get(index);
-	}
-
-	public int childrenSize() {
-		return this.childrenModel().size();
-	}
-
-	public int indexOfChild(TreeNodeValueModel<T> child) {
-		ListValueModel<TreeNodeValueModel<T>> children = this.childrenModel();
-		int size = children.size();
-		for (int i = 0; i < size; i++) {
-			if (children.get(i) == child) {
-				return i;
-			}
-		}
-		return -1;
-	}
-
-	public boolean isLeaf() {
-		return this.childrenModel().size() == 0;
-	}
-
-
-	// ********** standard methods **********
-
-	/**
-	 * We implement #equals(Object) so that TreePaths containing these nodes
-	 * will resolve properly when the nodes contain the same values. This is
-	 * necessary because nodes are dropped and rebuilt willy-nilly when dealing
-	 * with a sorted list of children; and this allows us to save and restore
-	 * a tree's expanded paths. The nodes in the expanded paths that are
-	 * saved before any modification (e.g. renaming a node) will be different
-	 * from the nodes in the tree's paths after the modification, if the modification
-	 * results in a possible change in the node sort order.  ~bjv
-	 */
-	@Override
-	public boolean equals(Object o) {
-		if (o == null) {
-			return false;
-		}
-		if (o.getClass() != this.getClass()) {
-			return false;
-		}
-		@SuppressWarnings("unchecked")
-		AbstractTreeNodeValueModel<T> other = (AbstractTreeNodeValueModel<T>) o;
-		return this.getValue().equals(other.getValue());
-	}
-
-	@Override
-	public int hashCode() {
-		return this.getValue().hashCode();
-	}
-
-	@Override
-	public void toString(StringBuilder sb) {
-		sb.append(this.getValue());
-	}
-
-}
diff --git a/jpa/plugins/org.eclipse.jpt.utility/src/org/eclipse/jpt/utility/internal/model/value/AspectAdapter.java b/jpa/plugins/org.eclipse.jpt.utility/src/org/eclipse/jpt/utility/internal/model/value/AspectAdapter.java
deleted file mode 100644
index f7d33d5..0000000
--- a/jpa/plugins/org.eclipse.jpt.utility/src/org/eclipse/jpt/utility/internal/model/value/AspectAdapter.java
+++ /dev/null
@@ -1,279 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2008 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.utility.internal.model.value;
-
-import org.eclipse.jpt.utility.internal.model.AbstractModel;
-import org.eclipse.jpt.utility.internal.model.ChangeSupport;
-import org.eclipse.jpt.utility.internal.model.SingleAspectChangeSupport;
-import org.eclipse.jpt.utility.model.event.PropertyChangeEvent;
-import org.eclipse.jpt.utility.model.listener.ChangeListener;
-import org.eclipse.jpt.utility.model.listener.PropertyChangeListener;
-import org.eclipse.jpt.utility.model.value.PropertyValueModel;
-
-/**
- * This abstract extension of AbstractModel provides a base for adding 
- * change listeners (PropertyChange, CollectionChange, ListChange, TreeChange)
- * to a subject and converting the subject's change notifications into a single
- * set of change notifications for a common aspect (e.g. VALUE).
- * 
- * The adapter will only listen to the subject (and subject holder) when the
- * adapter itself actually has listeners. This will allow the adapter to be
- * garbage collected when appropriate
- */
-public abstract class AspectAdapter<S>
-	extends AbstractModel
-{
-	/**
-	 * The subject that holds the aspect and fires
-	 * change notification when the aspect changes.
-	 * We need to hold on to this directly so we can
-	 * disengage it when it changes.
-	 */
-	protected S subject;
-
-	/**
-	 * A value model that holds the subject
-	 * that holds the aspect and provides change notification.
-	 * This is useful when there are a number of AspectAdapters
-	 * that have the same subject and that subject can change.
-	 * All the AspectAdapters should share the same subject holder.
-	 * For now, this is can only be set upon construction and is
-	 * immutable.
-	 */
-	protected final PropertyValueModel<? extends S> subjectHolder;
-
-	/** A listener that keeps us in synch with the subjectHolder. */
-	protected final PropertyChangeListener subjectChangeListener;
-
-
-	// ********** constructors **********
-
-	/**
-	 * Construct an AspectAdapter for the specified subject.
-	 */
-	protected AspectAdapter(S subject) {
-		this(new StaticPropertyValueModel<S>(subject));
-	}
-
-	/**
-	 * Construct an AspectAdapter for the specified subject holder.
-	 * The subject holder cannot be null.
-	 */
-	protected AspectAdapter(PropertyValueModel<? extends S> subjectHolder) {
-		super();
-		if (subjectHolder == null) {
-			throw new NullPointerException();
-		}
-		this.subjectHolder = subjectHolder;
-		this.subjectChangeListener = this.buildSubjectChangeListener();
-		// the subject is null when we are not listening to it
-		// this will typically result in our value being null
-		this.subject = null;
-	}
-
-
-	// ********** initialization **********
-
-	@Override
-	protected ChangeSupport buildChangeSupport() {
-		return new LocalChangeSupport(this, this.getListenerClass(), this.getListenerAspectName());
-	}
-
-	/**
-	 * The subject holder's value has changed, keep our subject in synch.
-	 */
-	protected PropertyChangeListener buildSubjectChangeListener() {
-		return new PropertyChangeListener() {
-			public void propertyChanged(PropertyChangeEvent event) {
-				AspectAdapter.this.subjectChanged();
-			}
-			@Override
-			public String toString() {
-				return "subject change listener";
-			}
-		};
-	}
-
-
-	// ********** behavior **********
-
-	/**
-	 * The subject has changed. Notify listeners that the value has changed.
-	 */
-	protected synchronized void subjectChanged() {
-		Object oldValue = this.getValue();
-		boolean hasListeners = this.hasListeners();
-		if (hasListeners) {
-			this.disengageSubject();
-		}
-		this.subject = this.subjectHolder.getValue();
-		if (hasListeners) {
-			this.engageSubject();
-			this.fireAspectChange(oldValue, this.getValue());
-		}
-	}
-
-	/**
-	 * Return the aspect's current value.
-	 */
-	protected abstract Object getValue();
-
-	/**
-	 * Return the class of listener that is interested in the aspect adapter's
-	 * changes.
-	 */
-	protected abstract Class<? extends ChangeListener> getListenerClass();
-
-	/**
-	 * Return the name of the aspect adapter's aspect (e.g. VALUE).
-	 * This is the name of the aspect adapter's single aspect, not the
-	 * name of the subject's aspect the aspect adapter is adapting.
-	 */
-	protected abstract String getListenerAspectName();
-
-	/**
-	 * Return whether there are any listeners for the aspect.
-	 */
-	protected abstract boolean hasListeners();
-
-	/**
-	 * Return whether there are no listeners for the aspect.
-	 */
-	protected boolean hasNoListeners() {
-		return ! this.hasListeners();
-	}
-
-	/**
-	 * The aspect has changed, notify listeners appropriately.
-	 */
-	protected abstract void fireAspectChange(Object oldValue, Object newValue);
-
-	protected void engageSubject() {
-		// check for nothing to listen to
-		if (this.subject != null) {
-			this.engageSubject_();
-		}
-	}
-
-	/**
-	 * The subject is not null - add our listener.
-	 */
-	protected abstract void engageSubject_();
-
-	protected void disengageSubject() {
-		// check for nothing to listen to
-		if (this.subject != null) {
-			this.disengageSubject_();
-		}
-	}
-
-	/**
-	 * The subject is not null - remove our listener.
-	 */
-	protected abstract void disengageSubject_();
-
-	protected void engageSubjectHolder() {
-		this.subjectHolder.addPropertyChangeListener(PropertyValueModel.VALUE, this.subjectChangeListener);
-		// synch our subject *after* we start listening to the subject holder,
-		// since its value might change when a listener is added
-		this.subject = this.subjectHolder.getValue();
-	}
-
-	protected void disengageSubjectHolder() {
-		this.subjectHolder.removePropertyChangeListener(PropertyValueModel.VALUE, this.subjectChangeListener);
-		// clear out the subject when we are not listening to its holder
-		this.subject = null;
-	}
-
-	protected void engageModels() {
-		this.engageSubjectHolder();
-		this.engageSubject();
-	}
-
-	protected void disengageModels() {
-		this.disengageSubject();
-		this.disengageSubjectHolder();
-	}
-
-
-	// ********** local change support **********
-
-	/**
-	 * Extend change support to start listening to the aspect adapter's
-	 * models (the subject holder and the subject itself) when the first
-	 * relevant listener is added.
-	 * Conversely, stop listening to the aspect adapter's models when the
-	 * last relevant listener is removed.
-	 * A relevant listener is a listener of the relevant type.
-	 */
-	protected class LocalChangeSupport extends SingleAspectChangeSupport {
-		private static final long serialVersionUID = 1L;
-
-		public LocalChangeSupport(AspectAdapter<S> source, Class<? extends ChangeListener> listenerClass, String aspectName) {
-			super(source, listenerClass, aspectName);
-		}
-
-		protected boolean listenerIsRelevant(Class<? extends ChangeListener> lClass) {
-			return lClass == this.listenerClass;
-		}
-
-		protected boolean hasNoRelevantListeners(Class<? extends ChangeListener> lClass) {
-			return this.listenerIsRelevant(lClass)
-						&& this.hasNoListeners(lClass);
-		}
-
-		protected boolean listenerIsRelevant(Class<? extends ChangeListener> lClass, String listenerAspectName) {
-			return this.listenerIsRelevant(lClass)
-						&& (listenerAspectName == AspectAdapter.this.getListenerAspectName());
-		}
-
-		protected boolean hasNoRelevantListeners(Class<? extends ChangeListener> lClass, String listenerAspectName) {
-			return this.listenerIsRelevant(lClass, listenerAspectName)
-						&& this.hasNoListeners(lClass, listenerAspectName);
-		}
-
-
-		// ********** overrides **********
-
-		@Override
-		protected <T extends ChangeListener> void addListener(Class<T> lClass, T listener) {
-			if (this.hasNoRelevantListeners(lClass)) {
-				AspectAdapter.this.engageModels();
-			}
-			super.addListener(lClass, listener);
-		}
-
-		@Override
-		protected <T extends ChangeListener> void addListener(String listenerAspectName, Class<T> lClass, T listener) {
-			if (this.hasNoRelevantListeners(lClass, listenerAspectName)) {
-				AspectAdapter.this.engageModels();
-			}
-			super.addListener(listenerAspectName, lClass, listener);
-		}
-
-		@Override
-		protected <T extends ChangeListener> void removeListener(Class<T> lClass, T listener) {
-			super.removeListener(lClass, listener);
-			if (this.hasNoRelevantListeners(lClass)) {
-				AspectAdapter.this.disengageModels();
-			}
-		}
-
-		@Override
-		protected <T extends ChangeListener> void removeListener(String listenerAspectName, Class<T> lClass, T listener) {
-			super.removeListener(listenerAspectName, lClass, listener);
-			if (this.hasNoRelevantListeners(lClass, listenerAspectName)) {
-				AspectAdapter.this.disengageModels();
-			}
-		}
-
-	}
-
-}
diff --git a/jpa/plugins/org.eclipse.jpt.utility/src/org/eclipse/jpt/utility/internal/model/value/AspectPropertyValueModelAdapter.java b/jpa/plugins/org.eclipse.jpt.utility/src/org/eclipse/jpt/utility/internal/model/value/AspectPropertyValueModelAdapter.java
deleted file mode 100644
index 7585375..0000000
--- a/jpa/plugins/org.eclipse.jpt.utility/src/org/eclipse/jpt/utility/internal/model/value/AspectPropertyValueModelAdapter.java
+++ /dev/null
@@ -1,179 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.utility.internal.model.value;
-
-import org.eclipse.jpt.utility.internal.model.AbstractModel;
-import org.eclipse.jpt.utility.internal.model.ChangeSupport;
-import org.eclipse.jpt.utility.internal.model.SingleAspectChangeSupport;
-import org.eclipse.jpt.utility.model.listener.PropertyChangeListener;
-import org.eclipse.jpt.utility.model.value.PropertyValueModel;
-
-/**
- * This abstract class provides the infrastructure needed to wrap
- * a value model, "lazily" listen to it, and convert
- * its change notifications into property value model change
- * notifications.
- * 
- * Subclasses must override:
- * - #buildValue()
- *     to return the current property value, as derived from the
- *     current model value
- * 
- */
-public abstract class AspectPropertyValueModelAdapter<T>
-	extends AbstractModel
-	implements PropertyValueModel<T>
-{
-	/**
-	 * Cache the current value so we can pass an "old value" when
-	 * we fire a property change event.
-	 * We need this because the value may be calculated and we may
-	 * not able to derive the "old value" from the collection
-	 * change event fired by the collection value model.
-	 */
-	protected T value;
-
-
-	// ********** constructor/initialization **********
-
-	protected AspectPropertyValueModelAdapter() {
-		super();
-		// our value is null when we are not listening to the collection holder
-		this.value = null;
-	}
-
-	@Override
-	protected ChangeSupport buildChangeSupport() {
-		return new SingleAspectChangeSupport(this, PropertyChangeListener.class, VALUE);
-	}
-
-
-	// ********** PropertyValueModel implementation **********
-
-	/**
-	 * Return the cached value.
-	 */
-	public T getValue() {
-		return this.value;
-	}
-
-
-	// ********** extend change support **********
-
-	/**
-	 * Extend to start listening to the wrapped collection if necessary.
-	 */
-	@Override
-	public synchronized void addPropertyChangeListener(PropertyChangeListener listener) {
-		if (this.hasNoListeners()) {
-			this.engageModel();
-		}
-		super.addPropertyChangeListener(listener);
-	}
-	
-	/**
-	 * Extend to start listening to the wrapped collection if necessary.
-	 */
-	@Override
-	public synchronized void addPropertyChangeListener(String propertyName, PropertyChangeListener listener) {
-		if (propertyName == VALUE && this.hasNoListeners()) {
-			this.engageModel();
-		}
-		super.addPropertyChangeListener(propertyName, listener);
-	}
-	
-	/**
-	 * Extend to stop listening to the wrapped collection if necessary.
-	 */
-	@Override
-	public synchronized void removePropertyChangeListener(PropertyChangeListener listener) {
-		super.removePropertyChangeListener(listener);
-		if (this.hasNoListeners()) {
-			this.disengageModel();
-		}
-	}
-	
-	/**
-	 * Extend to stop listening to the wrapped collection if necessary.
-	 */
-	@Override
-	public synchronized void removePropertyChangeListener(String propertyName, PropertyChangeListener listener) {
-		super.removePropertyChangeListener(propertyName, listener);
-		if (propertyName == VALUE && this.hasNoListeners()) {
-			this.disengageModel();
-		}
-	}
-
-
-	// ********** queries **********
-
-	/**
-	 * Return whether there are any listeners for the aspect.
-	 */
-	protected boolean hasListeners() {
-		return this.hasAnyPropertyChangeListeners(VALUE);
-	}
-
-	/**
-	 * Return whether there are any listeners for the aspect.
-	 */
-	protected boolean hasNoListeners() {
-		return ! this.hasListeners();
-	}
-
-
-	// ********** behavior **********
-
-	/**
-	 * Start listening to the model and build the value.
-	 */
-	protected void engageModel() {
-		this.engageModel_();
-		// synch our value *after* we start listening to the collection,
-		// since the collection's value might change when a listener is added
-		this.value = this.buildValue();
-	}
-
-	/**
-	 * Start listening to the model.
-	 */
-	protected abstract void engageModel_();
-
-	/**
-	 * Build and return the current value, as derived from the
-	 * current state of the wrapped model.
-	 */
-	protected abstract T buildValue();
-
-	/**
-	 * Stop listening to the model and clear the value.
-	 */
-	protected void disengageModel() {
-		this.disengageModel_();
-		// clear out our value when we are not listening to the collection
-		this.value = null;
-	}
-
-	/**
-	 * Stop listening to the model.
-	 */
-	protected abstract void disengageModel_();
-
-	/**
-	 * The wrapped model changed in some fashion.
-	 * Recalculate the value and notify any listeners.
-	 */
-	protected void propertyChanged() {
-		Object old = this.value;
-		this.value = this.buildValue();
-		this.firePropertyChanged(VALUE, old, this.value);
-	}
-
-}
diff --git a/jpa/plugins/org.eclipse.jpt.utility/src/org/eclipse/jpt/utility/internal/model/value/BufferedWritablePropertyValueModel.java b/jpa/plugins/org.eclipse.jpt.utility/src/org/eclipse/jpt/utility/internal/model/value/BufferedWritablePropertyValueModel.java
deleted file mode 100644
index 8781be4..0000000
--- a/jpa/plugins/org.eclipse.jpt.utility/src/org/eclipse/jpt/utility/internal/model/value/BufferedWritablePropertyValueModel.java
+++ /dev/null
@@ -1,345 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2008 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.utility.internal.model.value;
-
-import org.eclipse.jpt.utility.model.event.PropertyChangeEvent;
-import org.eclipse.jpt.utility.model.listener.PropertyChangeListener;
-import org.eclipse.jpt.utility.model.value.PropertyValueModel;
-import org.eclipse.jpt.utility.model.value.WritablePropertyValueModel;
-
-/**
- * A BufferedPropertyValueModel is used to hold a temporary copy of the value
- * in another property value model (the "wrapped" value holder). The application
- * can modify this temporary copy, ad nauseam; but the temporary copy is only
- * passed through to the "wrapped" value holder when the trigger "accepts" the
- * buffered value. Alternatively, the application can "reset" the buffered value
- * to the original, "wrapped" value.
- * 
- * The trigger is another value model that holds a Boolean and the application
- * changes the trigger's value to true on "accept", false on "reset". Typically,
- * in a dialog:
- * 	- pressing the OK button will trigger an "accept" and close the dialog
- * 	- pressing the Cancel button will simply close the dialog,
- * 		dropping the "buffered" values into the bit bucket
- * 	- pressing the Apply button will trigger an "accept" and leave the dialog open
- * 	- pressing the Restore button will trigger a "reset" and leave the dialog open
- * 
- * A number of buffered property value models can wrap another set of
- * property aspect adapters that adapt the various aspects of a single
- * domain model. All the bufferd property value models can be hooked to the
- * same trigger, and that trigger is controlled by the application, typically
- * via the OK button in a dialog.
- * 
- * @see PropertyAspectAdapter
- */
-public class BufferedWritablePropertyValueModel<T>
-	extends PropertyValueModelWrapper<T>
-	implements WritablePropertyValueModel<T>
-{
-
-	/**
-	 * We cache the value here until it is accepted and passed
-	 * through to the wrapped value holder.
-	 */
-	protected T bufferedValue;
-
-	/**
-	 * This is set to true when we are "accepting" the buffered value
-	 * and passing it through to the wrapped value holder. This allows
-	 * us to ignore the property change event fired by the wrapped
-	 * value holder.
-	 * (We can't stop listening to the wrapped value holder, because
-	 * if we are the only listener that could "deactivate" the wrapped
-	 * value holder.)
-	 */
-	protected boolean accepting;
-
-	/**
-	 * This is the trigger that indicates whether the buffered value
-	 * should be accepted or reset.
-	 */
-	protected final PropertyValueModel<Boolean> triggerHolder;
-
-	/** This listens to the trigger holder. */
-	protected final PropertyChangeListener triggerChangeListener;
-
-	/**
-	 * This flag indicates whether our buffered value has been assigned
-	 * a value and is possibly out of synch with the wrapped value.
-	 */
-	protected boolean buffering;
-
-
-	// ********** constructors **********
-
-	/**
-	 * Construct a buffered property value model with the specified wrapped
-	 * property value model and trigger holder.
-	 */
-	public BufferedWritablePropertyValueModel(WritablePropertyValueModel<T> valueHolder, PropertyValueModel<Boolean> triggerHolder) {
-		super(valueHolder);
-		if (triggerHolder == null) {
-			throw new NullPointerException();
-		}
-		this.triggerHolder = triggerHolder;
-		this.bufferedValue = null;
-		this.buffering = false;
-		this.accepting = false;
-		this.triggerChangeListener = this.buildTriggerChangeListener();
-	}
-	
-
-	// ********** initialization **********
-
-	protected PropertyChangeListener buildTriggerChangeListener() {
-		return new PropertyChangeListener() {
-			public void propertyChanged(PropertyChangeEvent event) {
-				BufferedWritablePropertyValueModel.this.triggerChanged(event);
-			}
-			@Override
-			public String toString() {
-				return "trigger change listener";
-			}
-		};
-	}
-	
-
-	// ********** ValueModel implementation **********
-
-	/**
-	 * If we are currently "buffering" a value, return that;
-	 * otherwise, return the wrapped value.
-	 */
-	public T getValue() {
-		return this.buffering ? this.bufferedValue : this.valueHolder.getValue();
-	}
-
-	/**
-	 * Assign the new value to our "buffered" value.
-	 * It will be forwarded to the wrapped value holder
-	 * when the trigger is "accepted".
-	 */
-	public void setValue(T value) {
-		Object old = this.getValue();
-		this.bufferedValue = value;
-		this.buffering = true;
-		this.firePropertyChanged(VALUE, old, this.bufferedValue);
-	}
-
-
-	// ********** PropertyValueModelWrapper extensions **********
-
-	/**
-	 * extend to engage the trigger holder also
-	 */
-	@Override
-	protected void engageValueHolder() {
-		super.engageValueHolder();
-		this.triggerHolder.addPropertyChangeListener(VALUE, this.triggerChangeListener);
-	}
-
-	/**
-	 * extend to disengage the trigger holder also
-	 */
-	@Override
-	protected void disengageValueHolder() {
-		this.triggerHolder.removePropertyChangeListener(VALUE, this.triggerChangeListener);
-		super.disengageValueHolder();
-	}
-
-
-	// ********** behavior **********
-
-	/**
-	 * If we do not yet have a "buffered" value, simply propagate the
-	 * change notification with the buffered model as the source.
-	 * If we do have a "buffered" value, do nothing.
-	 */
-	@Override
-	protected void valueChanged(PropertyChangeEvent event) {
-		if (this.accepting) {
-			// if we are currently "accepting" the value, ignore change notifications,
-			// since we caused them and our own listeners are already aware of the change
-			return;
-		}
-		if (this.buffering) {
-			this.handleChangeConflict(event);
-		} else {
-			this.firePropertyChanged(event.cloneWithSource(this));
-		}
-	}
-	
-	/**
-	 * By default, if we have a "buffered" value and the "wrapped" value changes,
-	 * we simply ignore the new "wrapped" value and simply overlay it with the
-	 * "buffered" value if it is "accepted". ("Last One In Wins" concurrency model)
-	 * Subclasses can override this method to change that behavior with a
-	 * different concurrency model. For example, you could drop the "buffered" value
-	 * and replace it with the new "wrapped" value, or you could throw an
-	 * exception.
-	 */
-	protected void handleChangeConflict(PropertyChangeEvent event) {
-		// the default is to do nothing
-	}
-	
-	/**
-	 * The trigger changed:
-	 * If it is now true, "accept" the buffered value and forward
-	 * it to the wrapped value holder.
-	 * If it is now false, "reset" the buffered value to its original value.
-	 */
-	protected void triggerChanged(PropertyChangeEvent event) {
-		if ( ! this.buffering) {
-			// if nothing has been "buffered", we don't need to do anything:
-			// nothing needs to be passed through; nothing needs to be reset;
-			return;
-		}
-		if (((Boolean) event.getNewValue()).booleanValue()) {
-			// set the accepting flag so we ignore any events
-			// fired by the wrapped value holder
-			this.accepting = true;
-			this.valueHolder().setValue(this.bufferedValue);
-			this.bufferedValue = null;
-			this.buffering = false;
-			// clear the flag once the "accept" is complete
-			this.accepting = false;
-		} else {
-			// notify our listeners that our value has been reset
-			Object old = this.bufferedValue;
-			this.bufferedValue = null;
-			this.buffering = false;
-			this.firePropertyChanged(VALUE, old, this.valueHolder.getValue());
-		}
-	}
-
-	@Override
-	public void toString(StringBuilder sb) {
-		sb.append(this.getValue());
-	}
-
-
-	// ********** convenience methods **********
-
-	/**
-	 * Return whether the buffered model is currently "buffering"
-	 * a value.
-	 */
-	public boolean isBuffering() {
-		return this.buffering;
-	}
-
-	/**
-	 * Our constructor accepts only a WritablePropertyValueModel<T>.
-	 */
-	@SuppressWarnings("unchecked")
-	protected WritablePropertyValueModel<T> valueHolder() {
-		return (WritablePropertyValueModel<T>) this.valueHolder;
-	}
-
-
-	// ********** inner class **********
-
-	/**
-	 * Trigger is a special property value model that only maintains its
-	 * value (of true or false) during the change notification caused by
-	 * the #setValue(Object) method. In other words, a Trigger object
-	 * only has a valid value 
-	 */
-	public static class Trigger extends SimplePropertyValueModel<Boolean> {
-
-
-		// ********** constructor **********
-
-		/**
-		 * Construct a trigger with a null value.
-		 */
-		public Trigger() {
-			super();
-		}
-
-
-		// ********** ValueModel implementation **********
-
-		/**
-		 * Extend so that this method can only be invoked during
-		 * change notification triggered by #setValue(Object).
-		 */
-		@Override
-		public Boolean getValue() {
-			if (this.value == null) {
-				throw new IllegalStateException("The method Trigger.value() may only be called during change notification.");
-			}
-			return this.value;
-		}
-
-		/**
-		 * Extend to reset the value to null once all the
-		 * listeners have been notified.
-		 */
-		@Override
-		public void setValue(Boolean value) {
-			super.setValue(value);
-			this.value = null;
-		}
-
-
-		// ********** convenience methods **********
-
-		/**
-		 * Set the trigger's value:
-		 * 	- true indicates "accept"
-		 * 	- false indicates "reset"
-		 */
-		public void setValue(boolean value) {
-			this.setValue(Boolean.valueOf(value));
-		}
-
-		/**
-		 * Return the trigger's value:
-		 * 	- true indicates "accept"
-		 * 	- false indicates "reset"
-		 */
-		public boolean booleanValue() {
-			return this.getValue().booleanValue();
-		}
-
-		/**
-		 * Accept the trigger (i.e. set its value to true).
-		 */
-		public void accept() {
-			this.setValue(true);
-		}
-
-		/**
-		 * Return whether the trigger has been accepted
-		 * (i.e. its value was changed to true).
-		 */
-		public boolean isAccepted() {
-			return this.booleanValue();
-		}
-
-		/**
-		 * Reset the trigger (i.e. set its value to false).
-		 */
-		public void reset() {
-			this.setValue(false);
-		}
-
-		/**
-		 * Return whether the trigger has been reset
-		 * (i.e. its value was changed to false).
-		 */
-		public boolean isReset() {
-			return ! this.booleanValue();
-		}
-
-	}
-
-}
diff --git a/jpa/plugins/org.eclipse.jpt.utility/src/org/eclipse/jpt/utility/internal/model/value/CachingTransformationPropertyValueModel.java b/jpa/plugins/org.eclipse.jpt.utility/src/org/eclipse/jpt/utility/internal/model/value/CachingTransformationPropertyValueModel.java
deleted file mode 100644
index a2d1e61..0000000
--- a/jpa/plugins/org.eclipse.jpt.utility/src/org/eclipse/jpt/utility/internal/model/value/CachingTransformationPropertyValueModel.java
+++ /dev/null
@@ -1,112 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.utility.internal.model.value;
-
-import org.eclipse.jpt.utility.internal.Transformer;
-import org.eclipse.jpt.utility.model.value.PropertyValueModel;
-
-/**
- * A <code>CachingTransformationPropertyValueModel</code> wraps another
- * <code>PropertyValueModel</code> and uses a <code>Transformer</code>
- * to transform the wrapped value before it is returned by <code>getValue()</code>.
- * The transformed value is calculated and cached during initialization and every
- * time the wrapped value changes. This can be useful when the old value
- * passed in to <code>valueChanged(PropertyChangeEvent)</code> can no longer
- * be "transformed" because its state is no longer valid.
- * This caching can also improve time performance in some situations.
- * <p>
- * As an alternative to building a <code>Transformer</code>,
- * a subclass of <code>CachingTransformationPropertyValueModel</code> can
- * either override the <code>transform_(Object)</code> method or,
- * if something other than null should be returned when the wrapped value
- * is null, override the <code>transform(Object)</code> method.
- */
-public class CachingTransformationPropertyValueModel<T1, T2>
-	extends TransformationPropertyValueModel<T1, T2>
-{
-
-	/**
-	 * Cache the transformed value so that during property change event notification
-	 * we do not have to transform the old value. The old value could no longer be valid in
-	 * the model; as a result, transforming it would not be valid.
-	 */
-	protected T2 cachedValue;
-
-
-	// ********** constructors/initialization **********
-
-	/**
-	 * Construct a property value model with the specified nested
-	 * property value model and the default transformer.
-	 * Use this constructor if you want to override the
-	 * <code>transform_(Object)</code> or <code>transform(Object)</code>
-	 * method instead of building a <code>Transformer</code>.
-	 */
-	public CachingTransformationPropertyValueModel(PropertyValueModel<? extends T1> valueHolder) {
-		super(valueHolder);
-	}
-
-	/**
-	 * Construct an property value model with the specified nested
-	 * property value model and transformer.
-	 */
-	public CachingTransformationPropertyValueModel(PropertyValueModel<? extends T1> valueHolder, Transformer<T1, T2> transformer) {
-		super(valueHolder, transformer);
-	}
-
-
-	// ********** behavior **********
-
-	/**
-	 * We have listeners, transform the nested value and cache the result.
-	 */
-	@Override
-	protected void engageValueHolder() {
-		super.engageValueHolder();
-		this.cachedValue = this.transform(this.valueHolder.getValue());
-	}
-
-	/**
-	 * We have no more listeners, clear the cached value.
-	 */
-	@Override
-	protected void disengageValueHolder() {
-		this.cachedValue = null;
-		super.disengageValueHolder();
-	}
-
-	/**
-	 * No need to transform the nested value, simply return the cached value,
-	 * which is already transformed.
-	 */
-	@Override
-	public T2 getValue() {
-		return this.cachedValue;
-	}
-
-	/**
-	 * Transform the specified new value, caching it before returning it.
-	 */
-	@Override
-	protected T2 transformNew(T1 value) {
-		this.cachedValue = super.transformNew(value);
-		return this.cachedValue;
-	}
-
-	/**
-	 * No need to transform the old value, simply return the cached value,
-	 * which is already transformed.
-	 */
-	@Override
-	protected T2 transformOld(T1 value) {
-		return this.cachedValue;
-	}
-
-}
diff --git a/jpa/plugins/org.eclipse.jpt.utility/src/org/eclipse/jpt/utility/internal/model/value/CachingTransformationWritablePropertyValueModel.java b/jpa/plugins/org.eclipse.jpt.utility/src/org/eclipse/jpt/utility/internal/model/value/CachingTransformationWritablePropertyValueModel.java
deleted file mode 100644
index 18b6ce0..0000000
--- a/jpa/plugins/org.eclipse.jpt.utility/src/org/eclipse/jpt/utility/internal/model/value/CachingTransformationWritablePropertyValueModel.java
+++ /dev/null
@@ -1,107 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.utility.internal.model.value;
-
-import org.eclipse.jpt.utility.internal.BidiTransformer;
-import org.eclipse.jpt.utility.model.value.WritablePropertyValueModel;
-
-/**
- * A <code>CachingTransformationWritablePropertyValueModel<code> augments the
- * behavior of a <code>TransformationWritablePropertyValueModel<code> by caching
- * the transformed value.
- * The transformed value is calculated and cached during initialization and every
- * time the wrapped value changes. This can be useful when the old value
- * passed in to <code>valueChanged(PropertyChangeEvent)</code> can no longer
- * be "transformed" because its state is no longer valid.
- * This caching can also improve time performance in some situations.
- */
-public class CachingTransformationWritablePropertyValueModel<T1, T2>
-	extends TransformationWritablePropertyValueModel<T1, T2>
-{
-
-	/**
-	 * Cache the transformed value so that during property change event notification
-	 * we do not have to transform the old value. The old value could no longer be valid in
-	 * the model; as a result, transforming it would not be valid.
-	 */
-	protected T2 cachedValue;
-
-
-	// ********** constructors/initialization **********
-
-	/**
-	 * Construct a writable property value model with the specified nested
-	 * writable property value model and the default bidi transformer.
-	 * Use this constructor if you want to override the
-	 * <code>transform_(Object)</code> and <code>reverseTransform_(Object)</code>
-	 * (or <code>transform(Object)</code> and <code>reverseTransform(Object)</code>)
-	 * methods instead of building a <code>BidiTransformer</code>.
-	 */
-	public CachingTransformationWritablePropertyValueModel(WritablePropertyValueModel<T1> valueHolder) {
-		super(valueHolder);
-	}
-
-	/**
-	 * Construct a writable property value model with the specified nested
-	 * writable property value model and bidi transformer.
-	 */
-	public CachingTransformationWritablePropertyValueModel(WritablePropertyValueModel<T1> valueHolder, BidiTransformer<T1, T2> transformer) {
-		super(valueHolder, transformer);
-	}
-
-
-	// ********** behavior **********
-
-	/**
-	 * We have listeners, transform the nested value and cache the result.
-	 */
-	@Override
-	protected void engageValueHolder() {
-		super.engageValueHolder();
-		this.cachedValue = this.transform(this.valueHolder.getValue());
-	}
-
-	/**
-	 * We have no more listeners, clear the cached value.
-	 */
-	@Override
-	protected void disengageValueHolder() {
-		this.cachedValue = null;
-		super.disengageValueHolder();
-	}
-
-	/**
-	 * No need to transform the nested value, simply return the cached value,
-	 * which is already transformed.
-	 */
-	@Override
-	public T2 getValue() {
-		return this.cachedValue;
-	}
-
-	/**
-	 * Transform the specified new value, caching it before returning it.
-	 */
-	@Override
-	protected T2 transformNew(T1 value) {
-		this.cachedValue = super.transformNew(value);
-		return this.cachedValue;
-	}
-
-	/**
-	 * No need to transform the old value, simply return the cached value,
-	 * which is already transformed.
-	 */
-	@Override
-	protected T2 transformOld(T1 value) {
-		return this.cachedValue;
-	}
-
-}
diff --git a/jpa/plugins/org.eclipse.jpt.utility/src/org/eclipse/jpt/utility/internal/model/value/CollectionAspectAdapter.java b/jpa/plugins/org.eclipse.jpt.utility/src/org/eclipse/jpt/utility/internal/model/value/CollectionAspectAdapter.java
deleted file mode 100644
index f55783e..0000000
--- a/jpa/plugins/org.eclipse.jpt.utility/src/org/eclipse/jpt/utility/internal/model/value/CollectionAspectAdapter.java
+++ /dev/null
@@ -1,238 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2008 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.utility.internal.model.value;
-
-import java.util.Arrays;
-import java.util.Collection;
-import java.util.Iterator;
-import org.eclipse.jpt.utility.internal.CollectionTools;
-import org.eclipse.jpt.utility.internal.iterators.EmptyIterator;
-import org.eclipse.jpt.utility.model.Model;
-import org.eclipse.jpt.utility.model.event.CollectionChangeEvent;
-import org.eclipse.jpt.utility.model.listener.ChangeListener;
-import org.eclipse.jpt.utility.model.listener.CollectionChangeListener;
-import org.eclipse.jpt.utility.model.value.CollectionValueModel;
-import org.eclipse.jpt.utility.model.value.PropertyValueModel;
-
-/**
- * This extension of AspectAdapter provides CollectionChange support.
- * This allows us to convert a set of one or more collections into
- * a single collection, VALUES.
- * 
- * The typical subclass will override the following methods:
- * #iterator_()
- *     at the very minimum, override this method to return an iterator on the
- *     subject's collection aspect; it does not need to be overridden if
- *     #iterator() is overridden and its behavior changed
- * #size_()
- *     override this method to improve performance; it does not need to be overridden if
- *     #size() is overridden and its behavior changed
- * #iterator()
- *     override this method only if returning an empty iterator when the
- *     subject is null is unacceptable
- * #size()
- *     override this method only if returning a zero when the
- *     subject is null is unacceptable
- */
-public abstract class CollectionAspectAdapter<S extends Model, E>
-	extends AspectAdapter<S>
-	implements CollectionValueModel<E>
-{
-	/**
-	 * The name of the subject's collections that we use for the value.
-	 */
-	protected final String[] collectionNames;
-		protected static final String[] EMPTY_COLLECTION_NAMES = new String[0];
-
-	/** A listener that listens to the subject's collection aspect. */
-	protected final CollectionChangeListener collectionChangeListener;
-
-
-	// ********** constructors **********
-
-	/**
-	 * Construct a CollectionAspectAdapter for the specified subject
-	 * and collection.
-	 */
-	protected CollectionAspectAdapter(String collectionName, S subject) {
-		this(new String[] {collectionName}, subject);
-	}
-
-	/**
-	 * Construct a CollectionAspectAdapter for the specified subject
-	 * and collections.
-	 */
-	protected CollectionAspectAdapter(String[] collectionNames, S subject) {
-		this(new StaticPropertyValueModel<S>(subject), collectionNames);
-	}
-
-	/**
-	 * Construct a CollectionAspectAdapter for the specified subject holder
-	 * and collections.
-	 */
-	protected CollectionAspectAdapter(PropertyValueModel<? extends S> subjectHolder, String... collectionNames) {
-		super(subjectHolder);
-		this.collectionNames = collectionNames;
-		this.collectionChangeListener = this.buildCollectionChangeListener();
-	}
-
-	/**
-	 * Construct a CollectionAspectAdapter for the specified subject holder
-	 * and collections.
-	 */
-	protected CollectionAspectAdapter(PropertyValueModel<? extends S> subjectHolder, Collection<String> collectionNames) {
-		this(subjectHolder, collectionNames.toArray(new String[collectionNames.size()]));
-	}
-
-	/**
-	 * Construct a CollectionAspectAdapter for an "unchanging" collection in
-	 * the specified subject. This is useful for a collection aspect that does not
-	 * change for a particular subject; but the subject will change, resulting in
-	 * a new collection.
-	 */
-	protected CollectionAspectAdapter(PropertyValueModel<? extends S> subjectHolder) {
-		this(subjectHolder, EMPTY_COLLECTION_NAMES);
-	}
-
-
-	// ********** initialization **********
-
-	/**
-	 * The subject's collection aspect has changed, notify the listeners.
-	 */
-	protected CollectionChangeListener buildCollectionChangeListener() {
-		// transform the subject's collection change events into VALUE collection change events
-		return new CollectionChangeListener() {
-			public void itemsAdded(CollectionChangeEvent event) {
-				CollectionAspectAdapter.this.itemsAdded(event);
-			}
-			public void itemsRemoved(CollectionChangeEvent event) {
-				CollectionAspectAdapter.this.itemsRemoved(event);
-			}
-			public void collectionCleared(CollectionChangeEvent event) {
-				CollectionAspectAdapter.this.collectionCleared(event);
-			}
-			public void collectionChanged(CollectionChangeEvent event) {
-				CollectionAspectAdapter.this.collectionChanged(event);
-			}
-			@Override
-			public String toString() {
-				return "collection change listener: " + Arrays.asList(CollectionAspectAdapter.this.collectionNames);
-			}
-		};
-	}
-
-
-	// ********** CollectionValueModel implementation **********
-
-	/**
-	 * Return the elements of the subject's collection aspect.
-	 */
-	public Iterator<E> iterator() {
-		return (this.subject == null) ? EmptyIterator.<E>instance() : this.iterator_();
-	}
-
-	/**
-	 * Return the elements of the subject's collection aspect.
-	 * At this point we can be sure that the subject is not null.
-	 * @see #iterator()
-	 */
-	protected Iterator<E> iterator_() {
-		throw new UnsupportedOperationException();
-	}
-
-	/**
-	 * Return the size of the subject's collection aspect.
-	 */
-	public int size() {
-		return (this.subject == null) ? 0 : this.size_();
-	}
-
-	/**
-	 * Return the size of the subject's collection aspect.
-	 * At this point we can be sure that the subject is not null.
-	 * @see #size()
-	 */
-	protected int size_() {
-		return CollectionTools.size(this.iterator());
-	}
-
-
-	// ********** AspectAdapter implementation **********
-
-	@Override
-	protected Object getValue() {
-		return this.iterator();
-	}
-
-	@Override
-	protected Class<? extends ChangeListener> getListenerClass() {
-		return CollectionChangeListener.class;
-	}
-
-	@Override
-	protected String getListenerAspectName() {
-		return VALUES;
-	}
-
-	@Override
-	protected boolean hasListeners() {
-		return this.hasAnyCollectionChangeListeners(VALUES);
-	}
-
-	@Override
-	protected void fireAspectChange(Object oldValue, Object newValue) {
-		this.fireCollectionChanged(VALUES);
-	}
-
-	@Override
-	protected void engageSubject_() {
-    	for (String collectionName : this.collectionNames) {
-			((Model) this.subject).addCollectionChangeListener(collectionName, this.collectionChangeListener);
-		}
-	}
-
-	@Override
-	protected void disengageSubject_() {
-    	for (String collectionName : this.collectionNames) {
-			((Model) this.subject).removeCollectionChangeListener(collectionName, this.collectionChangeListener);
-		}
-	}
-
-	@Override
-	public void toString(StringBuilder sb) {
-		for (int i = 0; i < this.collectionNames.length; i++) {
-			if (i != 0) {
-				sb.append(", ");
-			}
-			sb.append(this.collectionNames[i]);
-		}
-	}
-
-
-	// ********** behavior **********
-
-	protected void itemsAdded(CollectionChangeEvent event) {
-		this.fireItemsAdded(event.cloneWithSource(this, VALUES));
-	}
-
-	protected void itemsRemoved(CollectionChangeEvent event) {
-		this.fireItemsRemoved(event.cloneWithSource(this, VALUES));
-	}
-
-	protected void collectionCleared(CollectionChangeEvent event) {
-		this.fireCollectionCleared(VALUES);  // nothing from original event to forward
-	}
-
-	protected void collectionChanged(CollectionChangeEvent event) {
-		this.fireCollectionChanged(VALUES);  // nothing from original event to forward
-	}
-
-}
diff --git a/jpa/plugins/org.eclipse.jpt.utility/src/org/eclipse/jpt/utility/internal/model/value/CollectionListValueModelAdapter.java b/jpa/plugins/org.eclipse.jpt.utility/src/org/eclipse/jpt/utility/internal/model/value/CollectionListValueModelAdapter.java
deleted file mode 100644
index 6c236ab..0000000
--- a/jpa/plugins/org.eclipse.jpt.utility/src/org/eclipse/jpt/utility/internal/model/value/CollectionListValueModelAdapter.java
+++ /dev/null
@@ -1,296 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2008 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.utility.internal.model.value;
-
-import java.util.ArrayList;
-import java.util.Iterator;
-import java.util.ListIterator;
-import org.eclipse.jpt.utility.internal.CollectionTools;
-import org.eclipse.jpt.utility.internal.iterators.ReadOnlyListIterator;
-import org.eclipse.jpt.utility.internal.model.AbstractModel;
-import org.eclipse.jpt.utility.internal.model.ChangeSupport;
-import org.eclipse.jpt.utility.internal.model.SingleAspectChangeSupport;
-import org.eclipse.jpt.utility.model.event.CollectionChangeEvent;
-import org.eclipse.jpt.utility.model.listener.CollectionChangeListener;
-import org.eclipse.jpt.utility.model.listener.ListChangeListener;
-import org.eclipse.jpt.utility.model.value.CollectionValueModel;
-import org.eclipse.jpt.utility.model.value.ListValueModel;
-
-/**
- * An adapter that allows us to make a CollectionValueModel behave like
- * a read-only ListValueModel, sorta.
- * 
- * To maintain a reasonably consistent appearance to client code, we
- * keep an internal list somewhat in synch with the wrapped collection.
- * 
- * NB: Since we only listen to the wrapped collection when we have
- * listeners ourselves and we can only stay in synch with the wrapped
- * collection while we are listening to it, results to various methods
- * (e.g. #size(), getItem(int)) will be unpredictable whenever
- * we do not have any listeners. This should not be too painful since,
- * most likely, client objects will also be listeners.
- */
-public class CollectionListValueModelAdapter<E>
-	extends AbstractModel
-	implements ListValueModel<E>
-{
-	/** The wrapped collection value model. */
-	protected final CollectionValueModel<? extends E> collectionHolder;
-
-	/** A listener that forwards any events fired by the collection holder. */
-	protected final CollectionChangeListener collectionChangeListener;
-
-	/**
-	 * Our internal list, which holds the same elements as
-	 * the wrapped collection, but keeps them in order.
-	 */
-	// we declare this an ArrayList so we can use #clone() and #ensureCapacity(int)
-	protected final ArrayList<E> list;
-
-
-	// ********** constructors **********
-
-	/**
-	 * Wrap the specified CollectionValueModel.
-	 */
-	public CollectionListValueModelAdapter(CollectionValueModel<? extends E> collectionHolder) {
-		super();
-		if (collectionHolder == null) {
-			throw new NullPointerException();
-		}
-		this.collectionHolder = collectionHolder;
-		this.collectionChangeListener = this.buildCollectionChangeListener();
-		this.list = new ArrayList<E>();
-		// postpone building the list and listening to the underlying collection
-		// until we have listeners ourselves...
-	}
-
-
-	// ********** initialization **********
-
-	@Override
-	protected ChangeSupport buildChangeSupport() {
-		return new SingleAspectChangeSupport(this, ListChangeListener.class, LIST_VALUES);
-	}
-
-	/**
-	 * The wrapped collection has changed, forward an equivalent
-	 * list change event to our listeners.
-	 */
-	protected CollectionChangeListener buildCollectionChangeListener() {
-		return new CollectionChangeListener() {
-			public void itemsAdded(CollectionChangeEvent event) {
-				CollectionListValueModelAdapter.this.itemsAdded(event);
-			}
-			public void itemsRemoved(CollectionChangeEvent event) {
-				CollectionListValueModelAdapter.this.itemsRemoved(event);
-			}
-			public void collectionCleared(CollectionChangeEvent event) {
-				CollectionListValueModelAdapter.this.collectionCleared(event);
-			}
-			public void collectionChanged(CollectionChangeEvent event) {
-				CollectionListValueModelAdapter.this.collectionChanged(event);
-			}
-			@Override
-			public String toString() {
-				return "collection change listener";
-			}
-		};
-	}
-
-
-	// ********** ListValueModel implementation **********
-
-	public Iterator<E> iterator() {
-		return this.listIterator();
-	}
-
-	public ListIterator<E> listIterator() {
-		return new ReadOnlyListIterator<E>(this.list);
-	}
-
-	public E get(int index) {
-		return this.list.get(index);
-	}
-
-	public int size() {
-		return this.list.size();
-	}
-
-	public Object[] toArray() {
-		return this.list.toArray();
-	}
-
-
-	// ********** extend change support **********
-
-	/**
-	 * Override to start listening to the collection holder if necessary.
-	 */
-	@Override
-	public void addListChangeListener(ListChangeListener listener) {
-		if (this.hasNoListeners()) {
-			this.engageModel();
-		}
-		super.addListChangeListener(listener);
-	}
-
-	/**
-	 * Override to start listening to the collection holder if necessary.
-	 */
-	@Override
-	public void addListChangeListener(String listName, ListChangeListener listener) {
-		if (listName == LIST_VALUES && this.hasNoListeners()) {
-			this.engageModel();
-		}
-		super.addListChangeListener(listName, listener);
-	}
-
-	/**
-	 * Override to stop listening to the collection holder if appropriate.
-	 */
-	@Override
-	public void removeListChangeListener(ListChangeListener listener) {
-		super.removeListChangeListener(listener);
-		if (this.hasNoListeners()) {
-			this.disengageModel();
-		}
-	}
-
-	/**
-	 * Override to stop listening to the collection holder if appropriate.
-	 */
-	@Override
-	public void removeListChangeListener(String listName, ListChangeListener listener) {
-		super.removeListChangeListener(listName, listener);
-		if (listName == LIST_VALUES && this.hasNoListeners()) {
-			this.disengageModel();
-		}
-	}
-
-
-	// ********** queries **********
-
-	protected boolean hasListeners() {
-		return this.hasAnyListChangeListeners(LIST_VALUES);
-	}
-
-	protected boolean hasNoListeners() {
-		return ! this.hasListeners();
-	}
-
-	/**
-	 * Return the index of the specified item, using object
-	 * identity instead of equality.
-	 */
-	protected int lastIdentityIndexOf(Object o) {
-		return this.lastIdentityIndexOf(o, this.list.size());
-	}
-	
-	/**
-	 * Return the last index of the specified item, starting just before the
-	 * the specified endpoint, and using object identity instead of equality.
-	 */
-	protected int lastIdentityIndexOf(Object o, int end) {
-		for (int i = end; i-- > 0; ) {
-			if (this.list.get(i) == o) {
-				return i;
-			}
-		}
-		return -1;
-	}
-	
-
-	// ********** behavior **********
-
-	protected void buildList() {
-		Iterator<? extends E> stream = this.collectionHolder.iterator();
-		// if the new collection is empty, do nothing
-		if (stream.hasNext()) {
-			this.list.ensureCapacity(this.collectionHolder.size());
-			while (stream.hasNext()) {
-				this.list.add(stream.next());
-			}
-			this.postBuildList();
-		}
-	}
-
-	/**
-	 * Allow subclasses to manipulate the internal list before
-	 * sending out change notification.
-	 */
-	protected void postBuildList() {
-		// the default is to do nothing...
-	}
-
-	protected void engageModel() {
-		this.collectionHolder.addCollectionChangeListener(CollectionValueModel.VALUES, this.collectionChangeListener);
-		// synch our list *after* we start listening to the collection holder,
-		// since its value might change when a listener is added
-		this.buildList();
-	}
-
-	protected void disengageModel() {
-		this.collectionHolder.removeCollectionChangeListener(CollectionValueModel.VALUES, this.collectionChangeListener);
-		// clear out the list when we are not listening to the collection holder
-		this.list.clear();
-	}
-
-	protected void itemsAdded(CollectionChangeEvent e) {
-		this.addItemsToList(this.indexToAddItems(), CollectionTools.list(this.items(e)), this.list, LIST_VALUES);
-	}
-	
-	protected int indexToAddItems() {
-		return this.list.size();
-	}
-
-	@SuppressWarnings("unchecked")
-	protected Iterator<E> items(CollectionChangeEvent e) {
-		return (Iterator<E>) e.items();
-	}
-
-	protected void itemsRemoved(CollectionChangeEvent e) {
-		// we have to remove the items individually,
-		// since they are probably not in sequence
-		for (Iterator<E> stream = this.items(e); stream.hasNext(); ) {
-			this.removeItemFromList(this.lastIdentityIndexOf(stream.next()), this.list, LIST_VALUES);
-		}
-	}
-
-	protected void collectionCleared(CollectionChangeEvent e) {
-		this.clearList(this.list, LIST_VALUES);
-	}
-	
-	/**
-	 * synchronize our internal list with the wrapped collection
-	 * and fire the appropriate events
-	 */
-	protected void collectionChanged(CollectionChangeEvent e) {
-		// put in empty check so we don't fire events unnecessarily
-		if ( ! this.list.isEmpty()) {
-			@SuppressWarnings("unchecked")
-			ArrayList<E> removedItems = (ArrayList<E>) this.list.clone();
-			this.list.clear();
-			this.fireItemsRemoved(LIST_VALUES, 0, removedItems);
-		}
-
-		this.buildList();
-		// put in empty check so we don't fire events unnecessarily
-		if ( ! this.list.isEmpty()) {
-			this.fireItemsAdded(LIST_VALUES, 0, this.list);
-		}
-	}
-
-	@Override
-	public void toString(StringBuilder sb) {
-		sb.append(this.collectionHolder);
-	}
-
-}
diff --git a/jpa/plugins/org.eclipse.jpt.utility/src/org/eclipse/jpt/utility/internal/model/value/CollectionPropertyValueModelAdapter.java b/jpa/plugins/org.eclipse.jpt.utility/src/org/eclipse/jpt/utility/internal/model/value/CollectionPropertyValueModelAdapter.java
deleted file mode 100644
index a28ff71..0000000
--- a/jpa/plugins/org.eclipse.jpt.utility/src/org/eclipse/jpt/utility/internal/model/value/CollectionPropertyValueModelAdapter.java
+++ /dev/null
@@ -1,140 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2008 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.utility.internal.model.value;
-
-import org.eclipse.jpt.utility.model.event.CollectionChangeEvent;
-import org.eclipse.jpt.utility.model.listener.CollectionChangeListener;
-import org.eclipse.jpt.utility.model.value.CollectionValueModel;
-
-/**
- * This abstract class provides the infrastructure needed to wrap
- * a collection value model, "lazily" listen to it, and convert
- * its change notifications into property value model change
- * notifications.
- * 
- * Subclasses must override:
- * - #buildValue()
- *     to return the current property value, as derived from the
- *     current collection value
- * 
- * Subclasses might want to override:
- * - #itemsAdded(CollectionChangeEvent event)
- * - #itemsRemoved(CollectionChangeEvent event)
- * - #collectionCleared(CollectionChangeEvent event)
- * - #collectionChanged(CollectionChangeEvent event)
- *     to improve performance (by not recalculating the value, if possible)
- */
-public abstract class CollectionPropertyValueModelAdapter<T>
-	extends AspectPropertyValueModelAdapter<T>
-{
-	/** The wrapped collection value model. */
-	protected final CollectionValueModel<?> collectionHolder;
-
-	/** A listener that allows us to synch with changes to the wrapped collection holder. */
-	protected final CollectionChangeListener collectionChangeListener;
-
-
-	// ********** constructor/initialization **********
-
-	/**
-	 * Construct a property value model with the specified wrapped
-	 * collection value model.
-	 */
-	protected CollectionPropertyValueModelAdapter(CollectionValueModel<?> collectionHolder) {
-		super();
-		this.collectionHolder = collectionHolder;
-		this.collectionChangeListener = this.buildCollectionChangeListener();
-	}
-
-	protected CollectionChangeListener buildCollectionChangeListener() {
-		return new CollectionChangeListener() {
-			public void itemsAdded(CollectionChangeEvent event) {
-				CollectionPropertyValueModelAdapter.this.itemsAdded(event);
-			}		
-			public void itemsRemoved(CollectionChangeEvent event) {
-				CollectionPropertyValueModelAdapter.this.itemsRemoved(event);
-			}
-			public void collectionCleared(CollectionChangeEvent event) {
-				CollectionPropertyValueModelAdapter.this.collectionCleared(event);
-			}
-			public void collectionChanged(CollectionChangeEvent event) {
-				CollectionPropertyValueModelAdapter.this.collectionChanged(event);
-			}
-			@Override
-			public String toString() {
-				return "collection change listener";
-			}
-		};
-	}
-
-
-	// ********** behavior **********
-
-	/**
-	 * Start listening to the collection holder.
-	 */
-	@Override
-	protected void engageModel_() {
-		this.collectionHolder.addCollectionChangeListener(CollectionValueModel.VALUES, this.collectionChangeListener);
-	}
-
-	/**
-	 * Stop listening to the collection holder.
-	 */
-	@Override
-	protected void disengageModel_() {
-		this.collectionHolder.removeCollectionChangeListener(CollectionValueModel.VALUES, this.collectionChangeListener);
-	}
-
-	@Override
-	public void toString(StringBuilder sb) {
-		sb.append(this.collectionHolder);
-	}
-
-	
-	// ********** collection change support **********
-
-	/**
-	 * Items were added to the wrapped collection holder;
-	 * propagate the change notification appropriately.
-	 */
-	protected void itemsAdded(CollectionChangeEvent event) {
-		// by default, simply recalculate the value and fire an event
-		this.propertyChanged();
-	}
-
-	/**
-	 * Items were removed from the wrapped collection holder;
-	 * propagate the change notification appropriately.
-	 */
-	protected void itemsRemoved(CollectionChangeEvent event) {
-		// by default, simply recalculate the value and fire an event
-		this.propertyChanged();
-	}
-
-	/**
-	 * The wrapped collection holder was cleared;
-	 * propagate the change notification appropriately.
-	 */
-	protected void collectionCleared(CollectionChangeEvent event) {
-		// by default, simply recalculate the value and fire an event
-		this.propertyChanged();
-	}
-
-	/**
-	 * The value of the wrapped collection holder has changed;
-	 * propagate the change notification appropriately.
-	 */
-	protected void collectionChanged(CollectionChangeEvent event) {
-		// by default, simply recalculate the value and fire an event
-		this.propertyChanged();
-	}
-
-}
diff --git a/jpa/plugins/org.eclipse.jpt.utility/src/org/eclipse/jpt/utility/internal/model/value/CollectionValueModelWrapper.java b/jpa/plugins/org.eclipse.jpt.utility/src/org/eclipse/jpt/utility/internal/model/value/CollectionValueModelWrapper.java
deleted file mode 100644
index 4190fe1..0000000
--- a/jpa/plugins/org.eclipse.jpt.utility/src/org/eclipse/jpt/utility/internal/model/value/CollectionValueModelWrapper.java
+++ /dev/null
@@ -1,179 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2008 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.utility.internal.model.value;
-
-import java.util.Iterator;
-import org.eclipse.jpt.utility.internal.model.AbstractModel;
-import org.eclipse.jpt.utility.internal.model.ChangeSupport;
-import org.eclipse.jpt.utility.internal.model.SingleAspectChangeSupport;
-import org.eclipse.jpt.utility.model.event.CollectionChangeEvent;
-import org.eclipse.jpt.utility.model.listener.CollectionChangeListener;
-import org.eclipse.jpt.utility.model.value.CollectionValueModel;
-
-/**
- * This abstract class provides the infrastructure needed to wrap
- * another collection value model, "lazily" listen to it, and propagate
- * its change notifications.
- */
-public abstract class CollectionValueModelWrapper<E>
-	extends AbstractModel
-{
-
-	/** The wrapped collection value model. */
-	protected final CollectionValueModel<? extends E> collectionHolder;
-
-	/** A listener that allows us to synch with changes to the wrapped collection holder. */
-	protected final CollectionChangeListener collectionChangeListener;
-
-
-	// ********** constructors **********
-
-	/**
-	 * Construct a collection value model with the specified wrapped
-	 * collection value model.
-	 */
-	protected CollectionValueModelWrapper(CollectionValueModel<? extends E> collectionHolder) {
-		super();
-		this.collectionHolder = collectionHolder;
-		this.collectionChangeListener = this.buildCollectionChangeListener();
-	}
-	
-
-	// ********** initialization **********
-
-	@Override
-	protected ChangeSupport buildChangeSupport() {
-		return new SingleAspectChangeSupport(this, CollectionChangeListener.class, CollectionValueModel.VALUES);
-	}
-
-	protected CollectionChangeListener buildCollectionChangeListener() {
-		return new CollectionChangeListener() {
-			public void itemsAdded(CollectionChangeEvent event) {
-				CollectionValueModelWrapper.this.itemsAdded(event);
-			}		
-			public void itemsRemoved(CollectionChangeEvent event) {
-				CollectionValueModelWrapper.this.itemsRemoved(event);
-			}
-			public void collectionCleared(CollectionChangeEvent event) {
-				CollectionValueModelWrapper.this.collectionCleared(event);
-			}
-			public void collectionChanged(CollectionChangeEvent event) {
-				CollectionValueModelWrapper.this.collectionChanged(event);
-			}
-			@Override
-			public String toString() {
-				return "collection change listener";
-			}
-		};
-	}
-
-
-	// ********** extend change support **********
-
-	/**
-	 * Extend to start listening to the nested model if necessary.
-	 */
-	@Override
-	public synchronized void addCollectionChangeListener(CollectionChangeListener listener) {
-		if (this.hasNoCollectionChangeListeners(CollectionValueModel.VALUES)) {
-			this.engageModel();
-		}
-		super.addCollectionChangeListener(listener);
-	}
-	
-	/**
-	 * Extend to start listening to the nested model if necessary.
-	 */
-	@Override
-	public synchronized void addCollectionChangeListener(String collectionName, CollectionChangeListener listener) {
-		if (collectionName == CollectionValueModel.VALUES && this.hasNoCollectionChangeListeners(CollectionValueModel.VALUES)) {
-			this.engageModel();
-		}
-		super.addCollectionChangeListener(collectionName, listener);
-	}
-	
-	/**
-	 * Extend to stop listening to the nested model if necessary.
-	 */
-	@Override
-	public synchronized void removeCollectionChangeListener(CollectionChangeListener listener) {
-		super.removeCollectionChangeListener(listener);
-		if (this.hasNoCollectionChangeListeners(CollectionValueModel.VALUES)) {
-			this.disengageModel();
-		}
-	}
-	
-	/**
-	 * Extend to stop listening to the nested model if necessary.
-	 */
-	@Override
-	public synchronized void removeCollectionChangeListener(String collectionName, CollectionChangeListener listener) {
-		super.removeCollectionChangeListener(collectionName, listener);
-		if (collectionName == CollectionValueModel.VALUES && this.hasNoCollectionChangeListeners(CollectionValueModel.VALUES)) {
-			this.disengageModel();
-		}
-	}
-
-
-	// ********** behavior **********
-
-	/**
-	 * Start listening to the collection holder.
-	 */
-	protected void engageModel() {
-		this.collectionHolder.addCollectionChangeListener(CollectionValueModel.VALUES, this.collectionChangeListener);
-	}
-
-	/**
-	 * Stop listening to the collection holder.
-	 */
-	protected void disengageModel() {
-		this.collectionHolder.removeCollectionChangeListener(CollectionValueModel.VALUES, this.collectionChangeListener);
-	}
-
-	// minimize scope of suppressed warnings
-	@SuppressWarnings("unchecked")
-	protected Iterator<E> items(CollectionChangeEvent event) {
-		return (Iterator<E>) event.items();
-	}
-
-	@Override
-	public void toString(StringBuilder sb) {
-		sb.append(this.collectionHolder);
-	}
-
-
-	// ********** collection change support **********
-
-	/**
-	 * Items were added to the wrapped collection holder;
-	 * propagate the change notification appropriately.
-	 */
-	protected abstract void itemsAdded(CollectionChangeEvent event);
-
-	/**
-	 * Items were removed from the wrapped collection holder;
-	 * propagate the change notification appropriately.
-	 */
-	protected abstract void itemsRemoved(CollectionChangeEvent event);
-
-	/**
-	 * The wrapped collection holder was cleared;
-	 * propagate the change notification appropriately.
-	 */
-	protected abstract void collectionCleared(CollectionChangeEvent event);
-
-	/**
-	 * The value of the wrapped collection holder has changed;
-	 * propagate the change notification appropriately.
-	 */
-	protected abstract void collectionChanged(CollectionChangeEvent event);
-
-}
diff --git a/jpa/plugins/org.eclipse.jpt.utility/src/org/eclipse/jpt/utility/internal/model/value/CompositeCollectionValueModel.java b/jpa/plugins/org.eclipse.jpt.utility/src/org/eclipse/jpt/utility/internal/model/value/CompositeCollectionValueModel.java
deleted file mode 100644
index 815e48e..0000000
--- a/jpa/plugins/org.eclipse.jpt.utility/src/org/eclipse/jpt/utility/internal/model/value/CompositeCollectionValueModel.java
+++ /dev/null
@@ -1,406 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2008 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.utility.internal.model.value;
-
-import java.util.ArrayList;
-import java.util.Collection;
-import java.util.IdentityHashMap;
-import java.util.Iterator;
-import java.util.List;
-import org.eclipse.jpt.utility.internal.CollectionTools;
-import org.eclipse.jpt.utility.internal.NullList;
-import org.eclipse.jpt.utility.internal.Transformer;
-import org.eclipse.jpt.utility.internal.iterators.CompositeIterator;
-import org.eclipse.jpt.utility.internal.iterators.TransformationIterator;
-import org.eclipse.jpt.utility.model.event.CollectionChangeEvent;
-import org.eclipse.jpt.utility.model.listener.CollectionChangeListener;
-import org.eclipse.jpt.utility.model.value.CollectionValueModel;
-import org.eclipse.jpt.utility.model.value.ListValueModel;
-
-/**
- * A <code>CompositeCollectionValueModel</code> wraps another
- * <code>CollectionValueModel</code> and uses a <code>Transformer</code>
- * to convert each item in the wrapped collection to yet another
- * <code>CollectionValueModel</code>. This composite collection contains
- * the combined items from all these component collections.
- * 
- * NB: The wrapped collection must be an "identity set" that does not
- * contain the same item twice or this class will throw an exception.
- * 
- * Terminology:
- * - sources - the items in the wrapped collection value model; these
- *    are converted into component CVMs by the transformer
- * - component CVMs - the component collection value models that are combined
- *    by this composite collection value model
- * - items - the items held by the component CVMs
- */
-public class CompositeCollectionValueModel<E1, E2>
-	extends CollectionValueModelWrapper<E1>
-	implements CollectionValueModel<E2>
-{
-	/**
-	 * This is the (optional) user-supplied object that transforms
-	 * the items in the wrapped collection to collection value models.
-	 */
-	private final Transformer<E1, CollectionValueModel<E2>> transformer;
-
-	/**
-	 * Cache of the component collection value models that
-	 * were generated by the transformer; keyed by the item
-	 * in the wrapped collection that was passed to the transformer.
-	 */
-	private final IdentityHashMap<E1, CollectionValueModel<E2>> componentCVMs;
-
-	/**
-	 * Cache of the collections corresponding to the component
-	 * collection value models above; keyed by the component
-	 * collection value models.
-	 * Use ArrayLists so we can use ArrayList-specific methods
-	 * (e.g. #clone() and #ensureCapacity()).
-	 */
-	private final IdentityHashMap<CollectionValueModel<E2>, ArrayList<E2>> collections;
-
-	/** Listener that listens to all the component collection value models. */
-	private final CollectionChangeListener componentCVMListener;
-
-	/** Cache the size of the composite collection. */
-	private int size;
-
-
-	// ********** constructors **********
-
-	/**
-	 * Construct a collection value model with the specified wrapped
-	 * collection value model. Use this constructor if
-	 *     - the wrapped collection value model already contains other
-	 *       collection value models or
-	 *     - you want to override the <code>transform(E1)</code> method
-	 *       instead of building a <code>Transformer</code>
-	 */
-	public CompositeCollectionValueModel(CollectionValueModel<? extends E1> collectionHolder) {
-		this(collectionHolder, Transformer.Null.<E1, CollectionValueModel<E2>>instance());
-	}
-
-	/**
-	 * Construct a collection value model with the specified wrapped
-	 * collection value model and transformer.
-	 */
-	public CompositeCollectionValueModel(CollectionValueModel<? extends E1> collectionHolder, Transformer<E1, CollectionValueModel<E2>> transformer) {
-		super(collectionHolder);
-		this.transformer = transformer;
-		this.componentCVMs = new IdentityHashMap<E1, CollectionValueModel<E2>>();
-		this.collections = new IdentityHashMap<CollectionValueModel<E2>, ArrayList<E2>>();
-		this.componentCVMListener = this.buildComponentListener();
-		this.size = 0;
-	}
-
-	/**
-	 * Construct a collection value model with the specified wrapped
-	 * list value model. Use this constructor if
-	 *     - the wrapped list value model already contains collection
-	 *       value models or
-	 *     - you want to override the <code>transform(E1)</code> method
-	 *       instead of building a <code>Transformer</code>
-	 */
-	public CompositeCollectionValueModel(ListValueModel<? extends E1> listHolder) {
-		this(new ListCollectionValueModelAdapter<E1>(listHolder));
-	}
-
-	/**
-	 * Construct a collection value model with the specified wrapped
-	 * list value model and transformer.
-	 */
-	public CompositeCollectionValueModel(ListValueModel<? extends E1> listHolder, Transformer<E1, CollectionValueModel<E2>> transformer) {
-		this(new ListCollectionValueModelAdapter<E1>(listHolder), transformer);
-	}
-
-	/**
-	 * Construct a collection value model with the specified, unchanging, wrapped
-	 * collection. Use this constructor if
-	 *     - the wrapped collection already contains collection
-	 *       value models or
-	 *     - you want to override the <code>transform(E1)</code> method
-	 *       instead of building a <code>Transformer</code>
-	 */
-	public CompositeCollectionValueModel(Collection<? extends E1> collection) {
-		this(new StaticCollectionValueModel<E1>(collection));
-	}
-
-	/**
-	 * Construct a collection value model with the specified, unchanging, wrapped
-	 * collection and transformer.
-	 */
-	public CompositeCollectionValueModel(Collection<? extends E1> collection, Transformer<E1, CollectionValueModel<E2>> transformer) {
-		this(new StaticCollectionValueModel<E1>(collection), transformer);
-	}
-
-
-	// ********** initialization **********
-
-	protected CollectionChangeListener buildComponentListener() {
-		return new CollectionChangeListener() {
-			public void itemsAdded(CollectionChangeEvent event) {
-				CompositeCollectionValueModel.this.componentItemsAdded(event);
-			}		
-			public void itemsRemoved(CollectionChangeEvent event) {
-				CompositeCollectionValueModel.this.componentItemsRemoved(event);
-			}
-			public void collectionCleared(CollectionChangeEvent event) {
-				CompositeCollectionValueModel.this.componentCollectionCleared(event);
-			}
-			public void collectionChanged(CollectionChangeEvent event) {
-				CompositeCollectionValueModel.this.componentCollectionChanged(event);
-			}
-			@Override
-			public String toString() {
-				return "component listener";
-			}
-		};
-	}
-
-
-	// ********** CollectionValueModel implementation **********
-
-	public Iterator<E2> iterator() {
-		return new CompositeIterator<E2>(this.buildCollectionsIterators());
-	}
-
-	protected Iterator<Iterator<E2>> buildCollectionsIterators() {
-		return new TransformationIterator<ArrayList<E2>, Iterator<E2>>(this.collections.values().iterator()) {
-			@Override
-			protected Iterator<E2> transform(ArrayList<E2> next) {
-				return next.iterator();
-			}
-		};
-	}
-
-	public int size() {
-		return this.size;
-	}
-
-
-	// ********** CollectionValueModelWrapper overrides/implementation **********
-
-	@Override
-	protected void engageModel() {
-		super.engageModel();
-		// synch our cache *after* we start listening to the wrapped collection,
-		// since its value might change when a listener is added
-		this.addAllComponentSources();
-	}
-
-	/**
-	 * Transform all the sources to collection value models
-	 * and add their items to our cache, with no event notification.
-	 */
-	protected void addAllComponentSources() {
-		for (E1 source : this.collectionHolder) {
-			this.addComponentSource(source, NullList.<E2>instance());
-		}
-	}
-
-	@Override
-	protected void disengageModel() {
-		super.disengageModel();
-		// stop listening to the components...
-		for (CollectionValueModel<E2> componentCVM : this.componentCVMs.values()) {
-			componentCVM.removeCollectionChangeListener(VALUES, this.componentCVMListener);
-		}
-		// ...and clear the cache
-		this.componentCVMs.clear();
-		this.collections.clear();
-		this.size = 0;
-	}
-
-	/**
-	 * Some component sources were added;
-	 * add their corresponding items to our cache.
-	 */
-	@Override
-	protected void itemsAdded(CollectionChangeEvent event) {
-		ArrayList<E2> addedItems = new ArrayList<E2>();
-		for (Iterator<E1> stream = this.items(event); stream.hasNext(); ) {
-			this.addComponentSource(stream.next(), addedItems);
-		}
-		this.fireItemsAdded(VALUES, addedItems);
-	}
-
-	/**
-	 * Transform the specified source to a collection value model
-	 * and add its items to our cache and the "collecting parameter".
-	 */
-	protected void addComponentSource(E1 source, List<E2> addedItems) {
-		CollectionValueModel<E2> componentCVM = this.transform(source);
-		if (this.componentCVMs.put(source, componentCVM) != null) {
-			throw new IllegalStateException("duplicate component: " + source);
-		}
-		componentCVM.addCollectionChangeListener(VALUES, this.componentCVMListener);
-		ArrayList<E2> componentCollection = new ArrayList<E2>(componentCVM.size());
-		if (this.collections.put(componentCVM, componentCollection) != null) {
-			throw new IllegalStateException("duplicate collection: " + source);
-		}
-		this.addComponentItems(componentCVM, componentCollection);
-		addedItems.addAll(componentCollection);
-	}
-
-	/**
-	 * Add the items in the specified component CVM to the specified component
-	 * collection.
-	 */
-	protected void addComponentItems(CollectionValueModel<E2> componentCVM, ArrayList<E2> componentCollection) {
-		int itemsSize = componentCVM.size();
-		this.size += itemsSize;
-		componentCollection.ensureCapacity(componentCollection.size() + itemsSize);
-		CollectionTools.addAll(componentCollection, componentCVM);
-	}
-
-	/**
-	 * Some component sources were removed;
-	 * remove their corresponding items from our cache.
-	 */
-	@Override
-	protected void itemsRemoved(CollectionChangeEvent event) {
-		ArrayList<E2> removedItems = new ArrayList<E2>();
-		for (Iterator<E1> stream = this.items(event); stream.hasNext(); ) {
-			this.removeComponentSource(stream.next(), removedItems);
-		}
-		this.fireItemsRemoved(VALUES, removedItems);
-	}
-
-	/**
-	 * Remove the items corresponding to the specified source
-	 * from our cache.
-	 */
-	protected void removeComponentSource(E1 source, List<E2> removedItems) {
-		CollectionValueModel<E2> componentCVM = this.componentCVMs.remove(source);
-		if (componentCVM == null) {
-			throw new IllegalStateException("missing component: " + source);
-		}
-		componentCVM.removeCollectionChangeListener(VALUES, this.componentCVMListener);
-		ArrayList<E2> componentCollection = this.collections.remove(componentCVM);
-		if (componentCollection == null) {
-			throw new IllegalStateException("missing collection: " + source);
-		}
-		removedItems.addAll(componentCollection);
-		this.removeComponentItems(componentCollection);
-	}
-
-	/**
-	 * Update our size and collection cache.
-	 */
-	protected void removeComponentItems(ArrayList<E2> componentCollection) {
-		this.size -= componentCollection.size();
-		componentCollection.clear();
-	}
-
-	/**
-	 * The component sources cleared;
-	 * clear our cache.
-	 */
-	@Override
-	protected void collectionCleared(CollectionChangeEvent event) {
-		this.removeAllComponentSources();
-		this.fireCollectionCleared(VALUES);
-	}
-
-	protected void removeAllComponentSources() {
-		// copy the keys so we don't eat our own tail
-		ArrayList<E1> copy = new ArrayList<E1>(this.componentCVMs.keySet());
-		for (E1 source : copy) {
-			this.removeComponentSource(source, NullList.<E2>instance());
-		}
-	}
-
-	/**
-	 * The component sources changed;
-	 * rebuild our cache.
-	 */
-	@Override
-	protected void collectionChanged(CollectionChangeEvent event) {
-		this.removeAllComponentSources();
-		this.addAllComponentSources();
-		this.fireCollectionChanged(VALUES);
-	}
-
-
-	// ********** internal methods **********
-
-	/**
-	 * Transform the specified object into a collection value model.
-	 * <p>
-	 * This method can be overridden by a subclass as an
-	 * alternative to building a <code>Transformer</code>.
-	 */
-	protected CollectionValueModel<E2> transform(E1 value) {
-		return this.transformer.transform(value);
-	}
-
-	/**
-	 * One of the component collections had items added;
-	 * synchronize our caches.
-	 */
-	protected void componentItemsAdded(CollectionChangeEvent event) {
-		int itemsSize = event.itemsSize();
-		this.size += itemsSize;
-
-		ArrayList<E2> componentCollection = this.collections.get(this.componentCVM(event));
-		componentCollection.ensureCapacity(componentCollection.size() + itemsSize);
-
-		this.addItemsToCollection(this.componentItems(event), componentCollection, VALUES);
-	}
-
-	/**
-	 * One of the component collections had items removed;
-	 * synchronize our caches.
-	 */
-	protected void componentItemsRemoved(CollectionChangeEvent event) {
-		this.size -= event.itemsSize();
-		ArrayList<E2> componentCollection = this.collections.get(this.componentCVM(event));
-		this.removeItemsFromCollection(this.componentItems(event), componentCollection, VALUES);
-	}
-
-	/**
-	 * One of the component collections was cleared;
-	 * synchronize our caches by clearing out the appropriate
-	 * collection.
-	 */
-	protected void componentCollectionCleared(CollectionChangeEvent event) {
-		ArrayList<E2> componentCollection = this.collections.get(this.componentCVM(event));
-		ArrayList<E2> removedItems = new ArrayList<E2>(componentCollection);
-		this.removeComponentItems(componentCollection);
-		this.fireItemsRemoved(VALUES, removedItems);
-	}
-
-	/**
-	 * One of the component collections changed;
-	 * synchronize our caches by clearing out the appropriate
-	 * collection and then rebuilding it.
-	 */
-	protected void componentCollectionChanged(CollectionChangeEvent event) {
-		CollectionValueModel<E2> componentCVM = this.componentCVM(event);
-		ArrayList<E2> componentCollection = this.collections.get(componentCVM);
-		this.removeComponentItems(componentCollection);
-		this.addComponentItems(componentCVM, componentCollection);
-		this.fireCollectionChanged(VALUES);
-	}
-
-	// minimize scope of suppressed warnings
-	@SuppressWarnings("unchecked")
-	protected Iterator<E2> componentItems(CollectionChangeEvent event) {
-		return (Iterator<E2>) event.items();
-	}
-
-	// minimize scope of suppressed warnings
-	@SuppressWarnings("unchecked")
-	protected CollectionValueModel<E2> componentCVM(CollectionChangeEvent event) {
-		return (CollectionValueModel<E2>) event.getSource();
-	}
-
-}
diff --git a/jpa/plugins/org.eclipse.jpt.utility/src/org/eclipse/jpt/utility/internal/model/value/CompositeListValueModel.java b/jpa/plugins/org.eclipse.jpt.utility/src/org/eclipse/jpt/utility/internal/model/value/CompositeListValueModel.java
deleted file mode 100644
index 3609d5a..0000000
--- a/jpa/plugins/org.eclipse.jpt.utility/src/org/eclipse/jpt/utility/internal/model/value/CompositeListValueModel.java
+++ /dev/null
@@ -1,574 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.utility.internal.model.value;
-
-import java.util.ArrayList;
-import java.util.Iterator;
-import java.util.List;
-import java.util.ListIterator;
-import org.eclipse.jpt.utility.internal.CollectionTools;
-import org.eclipse.jpt.utility.internal.Transformer;
-import org.eclipse.jpt.utility.internal.iterators.ReadOnlyCompositeListIterator;
-import org.eclipse.jpt.utility.internal.iterators.TransformationListIterator;
-import org.eclipse.jpt.utility.model.event.ListChangeEvent;
-import org.eclipse.jpt.utility.model.listener.ListChangeListener;
-import org.eclipse.jpt.utility.model.value.ListValueModel;
-
-/**
- * A <code>CompositeListValueModel</code> wraps another
- * <code>ListValueModel</code> and uses a <code>Transformer</code>
- * to convert each item in the wrapped list to yet another
- * <code>ListValueModel</code>. This composite list contains
- * the combined items from all these component lists.
- * 
- * Terminology:
- * - sources - the items in the wrapped list value model; these
- *    are converted into component LVMs by the transformer
- * - componentLVMs - the component list value models that are combined
- *    by this composite list value model
- * - items - the items held by the component LVMs
- */
-public class CompositeListValueModel<E1, E2>
-	extends ListValueModelWrapper<E1>
-	implements ListValueModel<E2>
-{
-	/**
-	 * This is the (optional) user-supplied object that transforms
-	 * the items in the wrapped list to list value models.
-	 */
-	private final Transformer<E1, ListValueModel<E2>> transformer;
-
-	/**
-	 * Cache of the sources, component LVMs, lists.
-	 */
-	private final ArrayList<Info> infoList;
-	protected class Info {
-		// the object passed to the transformer
-		final E1 source;
-		// the list value model generated by the transformer
-		final ListValueModel<E2> componentLVM;
-		// cache of the items held by the component LVM
-		final ArrayList<E2> items;
-		// the component LVM's beginning index within the composite LVM
-		int begin;
-		Info(E1 source, ListValueModel<E2> componentLVM, ArrayList<E2> items, int begin) {
-			super();
-			this.source = source;
-			this.componentLVM = componentLVM;
-			this.items = items;
-			this.begin = begin;
-		}
-	}
-
-	/** Listener that listens to all the component list value models. */
-	private final ListChangeListener componentLVMListener;
-
-	/** Cache the size of the composite list. */
-	private int size;
-
-
-	// ********** constructors **********
-
-	/**
-	 * Construct a list value model with the specified wrapped
-	 * list value model. Use this constructor if
-	 *     - the wrapped list value model already contains other
-	 *       list value models or
-	 *     - you want to override the <code>transform(E1)</code> method
-	 *       instead of building a <code>Transformer</code>
-	 */
-	public CompositeListValueModel(ListValueModel<? extends E1> listHolder) {
-		this(listHolder, Transformer.Null.<E1, ListValueModel<E2>>instance());
-	}
-
-	/**
-	 * Construct a list value model with the specified wrapped
-	 * list value model and transformer.
-	 */
-	public CompositeListValueModel(ListValueModel<? extends E1> listHolder, Transformer<E1, ListValueModel<E2>> transformer) {
-		super(listHolder);
-		this.transformer = transformer;
-		this.infoList = new ArrayList<Info>();
-		this.componentLVMListener = this.buildComponentLVMListener();
-		this.size = 0;
-	}
-
-	/**
-	 * Construct a list value model with the specified, unchanging, wrapped
-	 * list. Use this constructor if
-	 *     - the wrapped list already contains list value models or
-	 *     - you want to override the <code>transform(E1)</code> method
-	 *       instead of building a <code>Transformer</code>
-	 */
-	public CompositeListValueModel(List<? extends E1> list) {
-		this(new StaticListValueModel<E1>(list));
-	}
-
-	/**
-	 * Construct a list value model with the specified, unchanging, wrapped
-	 * list and transformer.
-	 */
-	public CompositeListValueModel(List<? extends E1> list, Transformer<E1, ListValueModel<E2>> transformer) {
-		this(new StaticListValueModel<E1>(list), transformer);
-	}
-
-
-	// ********** initialization **********
-
-	protected ListChangeListener buildComponentLVMListener() {
-		return new ListChangeListener() {
-			public void itemsAdded(ListChangeEvent event) {
-				CompositeListValueModel.this.componentItemsAdded(event);
-			}		
-			public void itemsRemoved(ListChangeEvent event) {
-				CompositeListValueModel.this.componentItemsRemoved(event);
-			}
-			public void itemsReplaced(ListChangeEvent event) {
-				CompositeListValueModel.this.componentItemsReplaced(event);
-			}
-			public void itemsMoved(ListChangeEvent event) {
-				CompositeListValueModel.this.componentItemsMoved(event);
-			}
-			public void listCleared(ListChangeEvent event) {
-				CompositeListValueModel.this.componentListCleared(event);
-			}
-			public void listChanged(ListChangeEvent event) {
-				CompositeListValueModel.this.componentListChanged(event);
-			}
-			@Override
-			public String toString() {
-				return "component LVM listener";
-			}
-		};
-	}
-
-
-	// ********** ListValueModel implementation **********
-
-	public E2 get(int index) {
-		if ((index < 0) || (index >= this.size)) {
-			throw new IndexOutOfBoundsException("Index: " + index + ", Size: " + this.size);
-		}
-		// move backwards through the info list
-		for (int i = this.infoList.size(); i-- > 0; ) {
-			Info info = this.infoList.get(i);
-			if (index >= info.begin) {
-				return info.items.get(index - info.begin);
-			}
-		}
-		throw new IllegalStateException();  // something is wack
-	}
-
-	public Iterator<E2> iterator() {
-		return this.listIterator();
-	}
-
-	public ListIterator<E2> listIterator() {
-		return new ReadOnlyCompositeListIterator<E2>(this.buildListsIterators());
-	}
-
-	protected ListIterator<ListIterator<E2>> buildListsIterators() {
-		return new TransformationListIterator<Info, ListIterator<E2>>(this.infoList.listIterator()) {
-			@Override
-			protected ListIterator<E2> transform(Info info) {
-				return info.items.listIterator();
-			}
-		};
-	}
-
-	public int size() {
-		return this.size;
-	}
-
-	public Object[] toArray() {
-		return CollectionTools.array(this.listIterator(), this.size);
-	}
-
-
-	// ********** ListValueModelWrapper overrides/implementation **********
-
-	@Override
-	protected void engageModel() {
-		super.engageModel();
-		// synch our cache *after* we start listening to the wrapped list,
-		// since its value might change when a listener is added
-		this.addComponentSources(0, this.listHolder.listIterator(), this.listHolder.size());
-	}
-
-	@Override
-	protected void disengageModel() {
-		super.disengageModel();
-		// stop listening to the component LVMs...
-		for (Info info : this.infoList) {
-			info.componentLVM.removeListChangeListener(LIST_VALUES, this.componentLVMListener);
-		}
-		// ...and clear the cache
-		this.infoList.clear();
-		this.size = 0;
-	}
-
-	/**
-	 * Some component sources were added; update our cache.
-	 */
-	@Override
-	protected void itemsAdded(ListChangeEvent event) {
-		this.addComponentSources(event.getIndex(), this.items(event), event.itemsSize(), true);  // true = fire event
-	}
-
-	/**
-	 * Do not fire an event.
-	 */
-	protected void addComponentSources(int addedSourcesIndex, ListIterator<? extends E1> addedSources, int addedSourcesSize) {
-		this.addComponentSources(addedSourcesIndex, addedSources, addedSourcesSize, false);  // false = do not fire event
-	}
-
-	/**
-	 * Add infos corresponding to the specified sources to our cache.
-	 * Fire the appropriate event if requested.
-	 */
-	protected void addComponentSources(int addedSourcesIndex, ListIterator<? extends E1> addedSources, int addedSourcesSize, boolean fireEvent) {
-		ArrayList<Info> newInfoList = new ArrayList<Info>(addedSourcesSize);
-		// the 'items' are either tacked on to the end or
-		// at the 'begin' index of the first 'info' that is being pushed back
-		int newItemsIndex = (addedSourcesIndex == this.infoList.size()) ? this.size : this.infoList.get(addedSourcesIndex).begin;
-
-		int begin = newItemsIndex;
-		while (addedSources.hasNext()) {
-			E1 source = addedSources.next();
-			ListValueModel<E2> componentLVM = this.transform(source);
-			componentLVM.addListChangeListener(LIST_VALUES, this.componentLVMListener);
-			ArrayList<E2> items = new ArrayList<E2>(componentLVM.size());
-			CollectionTools.addAll(items, componentLVM.listIterator());
-			newInfoList.add(new Info(source, componentLVM, items, begin));
-			begin += items.size();
-		}
-		this.infoList.addAll(addedSourcesIndex, newInfoList);
-		int newItemsSize = begin - newItemsIndex;
-		this.size += newItemsSize;
-
-		// bump the 'begin' index for all the infos that were pushed back by the insert
-		int movedInfosIndex = addedSourcesIndex + addedSourcesSize;
-		for (int i = movedInfosIndex; i < this.infoList.size(); i++) {
-			this.infoList.get(i).begin += newItemsSize;
-		}
-
-		if (fireEvent) {
-			ArrayList<E2> newItems = new ArrayList<E2>(newItemsSize);
-			for (int i = addedSourcesIndex; i < movedInfosIndex; i++) {
-				newItems.addAll(this.infoList.get(i).items);
-			}
-			this.fireItemsAdded(LIST_VALUES, newItemsIndex, newItems);
-		}
-	}
-
-	/**
-	 * Some component sources were removed; update our cache.
-	 */
-	@Override
-	protected void itemsRemoved(ListChangeEvent event) {
-		this.removeComponentSources(event.getIndex(), event.itemsSize(), true);  // true = fire event
-	}
-
-	/**
-	 * Do not fire an event.
-	 */
-	protected void removeComponentSources(int removedSourcesIndex, int removedSourcesSize) {
-		this.removeComponentSources(removedSourcesIndex, removedSourcesSize, false);  // false = do not fire event
-	}
-
-	/**
-	 * Remove the infos corresponding to the specified sources from our cache.
-	 */
-	protected void removeComponentSources(int removedSourcesIndex, int removedSourcesSize, boolean fireEvent) {
-		int removedItemsIndex = this.infoList.get(removedSourcesIndex).begin;
-		int movedSourcesIndex = removedSourcesIndex + removedSourcesSize;
-		int movedItemsIndex = (movedSourcesIndex == this.infoList.size()) ? this.size : this.infoList.get(movedSourcesIndex).begin;
-		int removedItemsSize = movedItemsIndex - removedItemsIndex;
-		this.size -= removedItemsSize;
-
-		List<Info> subList = this.infoList.subList(removedSourcesIndex, removedSourcesIndex + removedSourcesSize);
-		ArrayList<Info> removedInfoList = new ArrayList<Info>(subList);  // make a copy
-		subList.clear();
-
-		// decrement the 'begin' index for all the infos that were moved forward by the deletes
-		for (int i = removedSourcesIndex; i < this.infoList.size(); i++) {
-			this.infoList.get(i).begin -= removedItemsSize;
-		}
-
-		for (Info removedInfo : removedInfoList) {
-			removedInfo.componentLVM.removeListChangeListener(LIST_VALUES, this.componentLVMListener);
-		}
-
-		if (fireEvent) {
-			ArrayList<E2> removedItems = new ArrayList<E2>(removedItemsSize);
-			for (Info removedInfo : removedInfoList) {
-				removedItems.addAll(removedInfo.items);
-			}
-			this.fireItemsRemoved(LIST_VALUES, removedItemsIndex, removedItems);
-		}
-	}
-
-	/**
-	 * Some component sources were replaced; update our cache.
-	 */
-	@Override
-	protected void itemsReplaced(ListChangeEvent event) {
-		this.replaceComponentSources(event.getIndex(), this.items(event), event.itemsSize(), true);  // true = fire event
-	}
-
-	/**
-	 * Replaced component sources will not (typically) map to a set of replaced
-	 * items, so we remove and add the corresponding lists of items, resulting in
-	 * two events.
-	 */
-	protected void replaceComponentSources(int replacedSourcesIndex, ListIterator<? extends E1> newSources, int replacedSourcesSize, boolean fireEvent) {
-		this.removeComponentSources(replacedSourcesIndex, replacedSourcesSize, fireEvent);
-		this.addComponentSources(replacedSourcesIndex, newSources, replacedSourcesSize, fireEvent);
-	}
-
-	/**
-	 * Some component sources were moved; update our cache.
-	 */
-	@Override
-	protected void itemsMoved(ListChangeEvent event) {
-		this.moveComponentSources(event.getTargetIndex(), event.getSourceIndex(), event.getMoveLength(), true);  // true = fire event
-	}
-
-	protected void moveComponentSources(int targetSourcesIndex, int sourceSourcesIndex, int movedSourcesLength, boolean fireEvent) {
-		int sourceItemsIndex = this.infoList.get(sourceSourcesIndex).begin;
-
-		int nextSourceSourceIndex = sourceSourcesIndex + movedSourcesLength;
-		int nextSourceItemIndex = (nextSourceSourceIndex == this.infoList.size()) ? this.size : this.infoList.get(nextSourceSourceIndex).begin;
-		int moveItemsLength = nextSourceItemIndex - sourceItemsIndex;
-
-		int targetItemsIndex = -1;
-		if (sourceSourcesIndex > targetSourcesIndex) {
-			// move from high to low index
-			targetItemsIndex = this.infoList.get(targetSourcesIndex).begin;
-		} else {
-			// move from low to high index (higher items move down during move)
-			int nextTargetSourceIndex = targetSourcesIndex + movedSourcesLength;
-			targetItemsIndex = (nextTargetSourceIndex == this.infoList.size()) ? this.size : this.infoList.get(nextTargetSourceIndex).begin;
-			targetItemsIndex = targetItemsIndex - moveItemsLength;
-		}
-
-		CollectionTools.move(this.infoList, targetSourcesIndex, sourceSourcesIndex, movedSourcesLength);
-
-		// update the 'begin' indexes of all the affected 'infos'
-		int min = Math.min(targetSourcesIndex, sourceSourcesIndex);
-		int max = Math.max(targetSourcesIndex, sourceSourcesIndex) + movedSourcesLength;
-		int begin = Math.min(targetItemsIndex, sourceItemsIndex);
-		for (int i = min; i < max; i++) {
-			Info info = this.infoList.get(i);
-			info.begin = begin;
-			begin += info.componentLVM.size();
-		}
-
-		if (fireEvent) {
-			this.fireItemsMoved(LIST_VALUES, targetItemsIndex, sourceItemsIndex, moveItemsLength);
-		}
-	}
-
-	/**
-	 * The component sources were cleared; clear our cache.
-	 */
-	@Override
-	protected void listCleared(ListChangeEvent event) {
-		this.removeComponentSources(0, this.infoList.size());
-		this.fireListCleared(LIST_VALUES);
-	}
-
-	/**
-	 * The component sources changed; rebuild our cache.
-	 */
-	@Override
-	protected void listChanged(ListChangeEvent event) {
-		this.removeComponentSources(0, this.infoList.size());
-		this.addComponentSources(0, this.listHolder.listIterator(), this.listHolder.size());
-		this.fireListChanged(LIST_VALUES);
-	}
-
-	@Override
-	public void toString(StringBuilder sb) {
-		sb.append(CollectionTools.list(this.listIterator(), this.size));
-	}
-
-
-	// ********** internal methods **********
-
-	/**
-	 * Transform the specified object into a list value model.
-	 * <p>
-	 * This method can be overridden by a subclass as an
-	 * alternative to building a <code>Transformer</code>.
-	 */
-	protected ListValueModel<E2> transform(E1 value) {
-		return this.transformer.transform(value);
-	}
-
-	/**
-	 * Return the index of the specified component LVM.
-	 */
-	protected int indexOf(ListValueModel<E2> componentLVM) {
-		for (int i = 0; i < this.infoList.size(); i++) {
-			if (this.infoList.get(i).componentLVM == componentLVM) {
-				return i;
-			}
-		}
-		throw new IllegalArgumentException("invalid component LVM: " + componentLVM);
-	}
-
-	/**
-	 * Return the index of the specified event's component LVM.
-	 */
-	protected int indexFor(ListChangeEvent event) {
-		return this.indexOf(this.componentLVM(event));
-	}
-
-	/**
-	 * Items were added to one of the component lists;
-	 * synchronize our cache.
-	 */
-	protected void componentItemsAdded(ListChangeEvent event) {
-		// update the affected 'begin' indices
-		int componentLVMIndex = this.indexFor(event);
-		int newItemsSize = event.itemsSize();
-		for (int i = componentLVMIndex + 1; i < this.infoList.size(); i++) {
-			this.infoList.get(i).begin += newItemsSize;
-		}
-		this.size += newItemsSize;
-
-		// synchronize the cached list
-		Info info = this.infoList.get(componentLVMIndex);
-		CollectionTools.addAll(info.items, event.getIndex(), this.componentItems(event), event.itemsSize());
-
-		// translate the event
-		this.fireItemsAdded(event.cloneWithSource(this, LIST_VALUES, info.begin));
-	}
-
-	/**
-	 * Items were removed from one of the component lists;
-	 * synchronize our cache.
-	 */
-	protected void componentItemsRemoved(ListChangeEvent event) {
-		// update the affected 'begin' indices
-		int componentLVMIndex = this.indexFor(event);
-		int removedItemsSize = event.itemsSize();
-		for (int i = componentLVMIndex + 1; i < this.infoList.size(); i++) {
-			this.infoList.get(i).begin -= removedItemsSize;
-		}
-		this.size -= removedItemsSize;
-
-		// synchronize the cached list
-		Info info = this.infoList.get(componentLVMIndex);
-		int itemIndex = event.getIndex();
-		info.items.subList(itemIndex, itemIndex + event.itemsSize()).clear();
-
-		// translate the event
-		this.fireItemsRemoved(event.cloneWithSource(this, LIST_VALUES, info.begin));
-	}
-
-	/**
-	 * Items were replaced in one of the component lists;
-	 * synchronize our cache.
-	 */
-	protected void componentItemsReplaced(ListChangeEvent event) {
-		// no changes to the 'begin' indices or size
-
-		// synchronize the cached list
-		int componentLVMIndex = this.indexFor(event);
-		Info info = this.infoList.get(componentLVMIndex);
-		int i = event.getIndex();
-		for (Iterator<E2> stream = this.componentItems(event); stream.hasNext(); ) {
-			info.items.set(i++, stream.next());
-		}
-
-		// translate the event
-		this.fireItemsReplaced(event.cloneWithSource(this, LIST_VALUES, info.begin));
-	}
-
-	/**
-	 * Items were moved in one of the component lists;
-	 * synchronize our cache.
-	 */
-	protected void componentItemsMoved(ListChangeEvent event) {
-		// no changes to the 'begin' indices or size
-
-		// synchronize the cached list
-		int componentLVMIndex = this.indexFor(event);
-		Info info = this.infoList.get(componentLVMIndex);
-		CollectionTools.move(info.items, event.getTargetIndex(), event.getSourceIndex(), event.getMoveLength());
-
-		// translate the event
-		this.fireItemsMoved(event.cloneWithSource(this, LIST_VALUES, info.begin));
-	}
-
-	/**
-	 * One of the component lists was cleared;
-	 * synchronize our cache.
-	 */
-	protected void componentListCleared(ListChangeEvent event) {
-		int componentLVMIndex = this.indexFor(event);
-		this.clearComponentList(componentLVMIndex, this.infoList.get(componentLVMIndex));
-	}
-
-	protected void clearComponentList(int componentLVMIndex, Info info) {
-		// update the affected 'begin' indices
-		int removedItemsSize = info.items.size();
-		for (int i = componentLVMIndex + 1; i < this.infoList.size(); i++) {
-			this.infoList.get(i).begin -= removedItemsSize;
-		}
-		this.size -= removedItemsSize;
-
-		// synchronize the cached list
-		ArrayList<E2> items = new ArrayList<E2>(info.items);
-		info.items.clear();
-
-		// translate the event
-		this.fireItemsRemoved(LIST_VALUES, info.begin, items);
-	}
-
-	/**
-	 * One of the component lists changed;
-	 * synchronize our cache by clearing out the appropriate
-	 * list and rebuilding it.
-	 */
-	protected void componentListChanged(ListChangeEvent event) {
-		int componentLVMIndex = this.indexFor(event);
-		Info info = this.infoList.get(componentLVMIndex);
-		this.clearComponentList(componentLVMIndex, info);
-
-		// update the affected 'begin' indices
-		int newItemsSize = info.componentLVM.size();
-		for (int i = componentLVMIndex + 1; i < this.infoList.size(); i++) {
-			this.infoList.get(i).begin += newItemsSize;
-		}
-		this.size += newItemsSize;
-
-		// synchronize the cached list
-		CollectionTools.addAll(info.items, info.componentLVM.listIterator(), newItemsSize);
-
-		// translate the event
-		this.fireItemsAdded(LIST_VALUES, info.begin, info.items);
-	}
-
-	// minimize scope of suppressed warnings
-	@SuppressWarnings("unchecked")
-	protected ListIterator<E2> componentItems(ListChangeEvent event) {
-		return (ListIterator<E2>) event.items();
-	}
-
-	// minimize scope of suppressed warnings
-	@SuppressWarnings("unchecked")
-	protected ListValueModel<E2> componentLVM(ListChangeEvent event) {
-		return (ListValueModel<E2>) event.getSource();
-	}
-
-}
diff --git a/jpa/plugins/org.eclipse.jpt.utility/src/org/eclipse/jpt/utility/internal/model/value/ExtendedListValueModelWrapper.java b/jpa/plugins/org.eclipse.jpt.utility/src/org/eclipse/jpt/utility/internal/model/value/ExtendedListValueModelWrapper.java
deleted file mode 100644
index 84650cf..0000000
--- a/jpa/plugins/org.eclipse.jpt.utility/src/org/eclipse/jpt/utility/internal/model/value/ExtendedListValueModelWrapper.java
+++ /dev/null
@@ -1,204 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2008 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.utility.internal.model.value;
-
-import java.util.ArrayList;
-import java.util.Collections;
-import java.util.Iterator;
-import java.util.List;
-import java.util.ListIterator;
-import org.eclipse.jpt.utility.internal.CollectionTools;
-import org.eclipse.jpt.utility.internal.iterators.ReadOnlyCompositeListIterator;
-import org.eclipse.jpt.utility.internal.iterators.ReadOnlyListIterator;
-import org.eclipse.jpt.utility.model.event.ListChangeEvent;
-import org.eclipse.jpt.utility.model.value.ListValueModel;
-
-/**
- * This wrapper extends a ListValueModel (or CollectionValueModel)
- * with fixed collections of items on either end.
- * <p>
- * NB: Be careful using or wrapping this list value model, since the
- * "extended" items may be unexpected by the client code or wrapper.
- */
-public class ExtendedListValueModelWrapper<E>
-	extends ListValueModelWrapper<E>
-	implements ListValueModel<E>
-{
-	/** the items "prepended" to the wrapped list */
-	protected List<E> prefix;
-
-	/** the items "appended" to the wrapped list */
-	protected List<E> suffix;
-
-
-	// ********** lots o' constructors **********
-
-	/**
-	 * Extend the specified list with a prefix and suffix.
-	 */
-	public ExtendedListValueModelWrapper(List<? extends E> prefix, ListValueModel<? extends E> listHolder, List<? extends E> suffix) {
-		super(listHolder);
-		this.prefix = new ArrayList<E>(prefix);
-		this.suffix = new ArrayList<E>(suffix);
-	}
-
-	/**
-	 * Extend the specified list with a prefix and suffix.
-	 */
-	public ExtendedListValueModelWrapper(E prefix, ListValueModel<? extends E> listHolder, E suffix) {
-		super(listHolder);
-		this.prefix = Collections.singletonList(prefix);
-		this.suffix = Collections.singletonList(suffix);
-	}
-
-	/**
-	 * Extend the specified list with a prefix.
-	 */
-	public ExtendedListValueModelWrapper(List<? extends E> prefix, ListValueModel<? extends E> listHolder) {
-		super(listHolder);
-		this.prefix = new ArrayList<E>(prefix);
-		this.suffix = Collections.emptyList();
-	}
-
-	/**
-	 * Extend the specified list with a prefix.
-	 */
-	public ExtendedListValueModelWrapper(E prefix, ListValueModel<? extends E> listHolder) {
-		super(listHolder);
-		this.prefix = Collections.singletonList(prefix);
-		this.suffix = Collections.emptyList();
-	}
-
-	/**
-	 * Extend the specified list with a suffix.
-	 */
-	public ExtendedListValueModelWrapper(ListValueModel<? extends E> listHolder, List<? extends E> suffix) {
-		super(listHolder);
-		this.prefix = Collections.emptyList();
-		this.suffix = new ArrayList<E>(suffix);
-	}
-
-	/**
-	 * Extend the specified list with a suffix.
-	 */
-	public ExtendedListValueModelWrapper(ListValueModel<? extends E> listHolder, E suffix) {
-		super(listHolder);
-		this.prefix = Collections.emptyList();
-		this.suffix = Collections.singletonList(suffix);
-	}
-
-	/**
-	 * Extend the specified list with a prefix containing a single null item.
-	 */
-	public ExtendedListValueModelWrapper(ListValueModel<? extends E> listHolder) {
-		super(listHolder);
-		this.prefix = Collections.singletonList(null);
-		this.suffix = Collections.emptyList();
-	}
-
-
-	// ********** ListValueModel implementation **********
-
-	public Iterator<E> iterator() {
-		return this.listIterator();
-	}
-
-	public ListIterator<E> listIterator() {
-		return new ReadOnlyListIterator<E>(this.listIterator_());
-	}
-
-	@SuppressWarnings("unchecked")
-	protected ListIterator<E> listIterator_() {
-		return new ReadOnlyCompositeListIterator<E>(
-			this.prefix.listIterator(),
-			this.listHolder.listIterator(),
-			this.suffix.listIterator()
-		);
-	}
-
-	public E get(int index) {
-		int prefixSize = this.prefix.size();
-		if (index < prefixSize) {
-			return this.prefix.get(index);
-		} else if (index >= prefixSize + this.listHolder.size()) {
-			return this.suffix.get(index - (prefixSize + this.listHolder.size()));
-		} else {
-			return this.listHolder.get(index - prefixSize);
-		}
-	}
-
-	public int size() {
-		return this.prefix.size() + this.listHolder.size() + this.suffix.size();
-	}
-
-	public Object[] toArray() {
-		ArrayList<E> list = new ArrayList<E>(this.size());
-		list.addAll(this.prefix);
-		CollectionTools.addAll(list, this.listHolder.iterator());
-		list.addAll(this.suffix);
-		return list.toArray();
-	}
-
-
-	// ********** ListValueModelWrapper implementation/overrides **********
-
-	@Override
-	protected void itemsAdded(ListChangeEvent event) {
-		this.fireItemsAdded(event.cloneWithSource(this, LIST_VALUES, this.prefix.size()));
-	}
-
-	@Override
-	protected void itemsRemoved(ListChangeEvent event) {
-		this.fireItemsRemoved(event.cloneWithSource(this, LIST_VALUES, this.prefix.size()));
-	}
-
-	@Override
-	protected void itemsReplaced(ListChangeEvent event) {
-		this.fireItemsReplaced(event.cloneWithSource(this, LIST_VALUES, this.prefix.size()));
-	}
-
-	@Override
-	protected void itemsMoved(ListChangeEvent event) {
-		this.fireItemsMoved(event.cloneWithSource(this, LIST_VALUES, this.prefix.size()));
-	}
-
-	@Override
-	protected void listCleared(ListChangeEvent event) {
-		this.fireListChanged(LIST_VALUES);  // not "cleared"
-	}
-
-	@Override
-	protected void listChanged(ListChangeEvent event) {
-		this.fireListChanged(LIST_VALUES);
-	}
-
-	@Override
-	public void toString(StringBuilder sb) {
-		sb.append(this.prefix);
-		sb.append(" ");
-		super.toString(sb);
-		sb.append(" ");
-		sb.append(this.suffix);
-	}
-
-
-	// ********** miscellaneous **********
-
-	public void setPrefix(List<E> prefix) {
-		this.prefix = prefix;
-		this.fireListChanged(LIST_VALUES);
-	}
-
-	public void setSuffix(List<E> suffix) {
-		this.suffix = suffix;
-		this.fireListChanged(LIST_VALUES);
-	}
-
-}
diff --git a/jpa/plugins/org.eclipse.jpt.utility/src/org/eclipse/jpt/utility/internal/model/value/FilteringCollectionValueModel.java b/jpa/plugins/org.eclipse.jpt.utility/src/org/eclipse/jpt/utility/internal/model/value/FilteringCollectionValueModel.java
deleted file mode 100644
index 8dc865a..0000000
--- a/jpa/plugins/org.eclipse.jpt.utility/src/org/eclipse/jpt/utility/internal/model/value/FilteringCollectionValueModel.java
+++ /dev/null
@@ -1,171 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2008 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.utility.internal.model.value;
-
-import java.util.ArrayList;
-import java.util.Collection;
-import java.util.Iterator;
-import org.eclipse.jpt.utility.Filter;
-import org.eclipse.jpt.utility.internal.CollectionTools;
-import org.eclipse.jpt.utility.internal.iterators.FilteringIterator;
-import org.eclipse.jpt.utility.internal.iterators.ReadOnlyIterator;
-import org.eclipse.jpt.utility.model.event.CollectionChangeEvent;
-import org.eclipse.jpt.utility.model.value.CollectionValueModel;
-import org.eclipse.jpt.utility.model.value.ListValueModel;
-
-/**
- * A <code>FilteringCollectionValueModel</code> wraps another
- * <code>CollectionValueModel</code> and uses a <code>Filter</code>
- * to determine which items in the collection are returned by calls
- * to <code>#iterator()</code>.
- * <p>
- * The filter can be changed at any time; allowing the same
- * adapter to be used with different filter criteria (e.g. when the user
- * wants to view a list of .java files).
- * <p>
- * NB: If the objects in the "filtered" collection can change in such a way
- * that they should be removed from the "filtered" collection, you will
- * need to wrap the original collection in an ItemAspectListValueModelAdapter.
- * For example, if the filter only "accepts" items whose names begin
- * with "X" and the names of the items can change, you will need to
- * wrap the original list of unfiltered items with an
- * ItemPropertyListValueModelAdapter that listens for changes to each
- * item's name and fires the appropriate event whenever an item's name
- * changes. The event will cause this wrapper to re-filter the changed
- * item and add or remove it from the "filtered" collection as appropriate.
- */
-public class FilteringCollectionValueModel<E>
-	extends CollectionValueModelWrapper<E>
-	implements CollectionValueModel<E>
-{
-	/** This filters the items in the nested collection. */
-	private Filter<E> filter;
-
-	/** Cache the items that were accepted by the filter */
-	private final Collection<E> filteredItems;
-
-
-	// ********** constructors **********
-
-	/**
-	 * Construct a collection value model with the specified wrapped
-	 * collection value model and a filter that simply accepts every object.
-	 */
-	public FilteringCollectionValueModel(CollectionValueModel<? extends E> collectionHolder) {
-		this(collectionHolder, Filter.Null.<E>instance());
-	}
-
-	/**
-	 * Construct a collection value model with the specified wrapped
-	 * collection value model and filter.
-	 */
-	public FilteringCollectionValueModel(CollectionValueModel<? extends E> collectionHolder, Filter<E> filter) {
-		super(collectionHolder);
-		this.filter = filter;
-		this.filteredItems = new ArrayList<E>();
-	}
-
-	/**
-	 * Construct a collection value model with the specified wrapped
-	 * list value model and a filter that simply accepts every object.
-	 */
-	public FilteringCollectionValueModel(ListValueModel<E> listHolder) {
-		this(new ListCollectionValueModelAdapter<E>(listHolder));
-	}
-
-	/**
-	 * Construct a collection value model with the specified wrapped
-	 * list value model and filter.
-	 */
-	public FilteringCollectionValueModel(ListValueModel<E> listHolder, Filter<E> filter) {
-		this(new ListCollectionValueModelAdapter<E>(listHolder), filter);
-	}
-
-
-	// ********** CollectionValueModel implementation **********
-
-	public Iterator<E> iterator() {
-		return new ReadOnlyIterator<E>(this.filteredItems);
-	}
-
-	public int size() {
-		return this.filteredItems.size();
-	}
-
-
-	// ********** CollectionValueModelWrapper overrides/implementation **********
-
-	@Override
-	protected void engageModel() {
-		super.engageModel();
-		// synch our cache *after* we start listening to the nested collection,
-		// since its value might change when a listener is added
-		CollectionTools.addAll(this.filteredItems, this.filter(this.collectionHolder.iterator()));
-	}
-
-	@Override
-	protected void disengageModel() {
-		super.disengageModel();
-		// clear out the cache when we are not listening to the nested collection
-		this.filteredItems.clear();
-	}
-
-	@Override
-	protected void itemsAdded(CollectionChangeEvent event) {
-		// filter the values before propagating the change event
-		this.addItemsToCollection(this.filter(this.items(event)), this.filteredItems, VALUES);
-	}
-
-	@Override
-	protected void itemsRemoved(CollectionChangeEvent event) {
-		// do *not* filter the values, because they may no longer be
-		// "accepted" and that might be why they were removed in the first place;
-		// anyway, any extraneous items are harmless
-		this.removeItemsFromCollection(event.items(), this.filteredItems, VALUES);
-	}
-
-	@Override
-	protected void collectionCleared(CollectionChangeEvent event) {
-		this.clearCollection(this.filteredItems, VALUES);
-	}
-
-	@Override
-	protected void collectionChanged(CollectionChangeEvent event) {
-		this.rebuildFilteredItems();
-	}
-
-
-	// ********** miscellaneous **********
-
-	/**
-	 * Change the filter and rebuild the collection.
-	 */
-	public void setFilter(Filter<E> filter) {
-		this.filter = filter;
-		this.rebuildFilteredItems();
-	}
-
-	/**
-	 * Return an iterator that filters the specified iterator.
-	 */
-	protected Iterator<E> filter(Iterator<? extends E> items) {
-		return new FilteringIterator<E, E>(items, this.filter);
-	}
-
-	/**
-	 * Synchronize our cache with the wrapped collection.
-	 */
-	protected void rebuildFilteredItems() {
-		this.filteredItems.clear();
-		CollectionTools.addAll(this.filteredItems, this.filter(this.collectionHolder.iterator()));
-		this.fireCollectionChanged(VALUES);
-	}
-
-}
diff --git a/jpa/plugins/org.eclipse.jpt.utility/src/org/eclipse/jpt/utility/internal/model/value/FilteringPropertyValueModel.java b/jpa/plugins/org.eclipse.jpt.utility/src/org/eclipse/jpt/utility/internal/model/value/FilteringPropertyValueModel.java
deleted file mode 100644
index a56cc34..0000000
--- a/jpa/plugins/org.eclipse.jpt.utility/src/org/eclipse/jpt/utility/internal/model/value/FilteringPropertyValueModel.java
+++ /dev/null
@@ -1,138 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2008 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.utility.internal.model.value;
-
-import org.eclipse.jpt.utility.Filter;
-import org.eclipse.jpt.utility.model.event.PropertyChangeEvent;
-import org.eclipse.jpt.utility.model.value.PropertyValueModel;
-
-/**
- * A <code>FilteringPropertyValueModel</code> wraps another
- * <code>PropertyValueModel</code> and uses a <code>Filter</code>
- * to determine when the wrapped value is to be returned by calls
- * to <code>value()</code>.
- * <p>
- * As an alternative to building a <code>Filter</code>, a subclass
- * of <code>FilteringPropertyValueModel</code> can override the
- * <code>accept(Object)</code> method.
- * <p>
- * One, possibly undesirable, side-effect of using this value model is that
- * it must return *something* as the value. The default behavior is
- * to return <code>null</code> whenever the wrapped value is not "accepted",
- * which can be configured and/or overridden.
- */
-public class FilteringPropertyValueModel<T>
-	extends PropertyValueModelWrapper<T>
-	implements PropertyValueModel<T>
-{
-	protected final Filter<T> filter;
-	protected final T defaultValue;
-
-
-	// ********** constructors **********
-
-	/**
-	 * Construct a property value model with the specified nested
-	 * property value model and a disabled filter.
-	 * Use this constructor if you want to override the
-	 * <code>accept(Object)</code>
-	 * method instead of building a <code>Filter</code>.
-	 * The default value will be <code>null</code>.
-	 */
-	public FilteringPropertyValueModel(PropertyValueModel<? extends T> valueHolder) {
-		this(valueHolder, Filter.Disabled.<T>instance(), null);
-	}
-
-	/**
-	 * Construct a property value model with the specified nested
-	 * property value model, specified default value, and a disabled filter.
-	 * Use this constructor if you want to override the
-	 * <code>accept(Object)</code>
-	 * method instead of building a <code>Filter</code>
-	 * <em>and</em> you need to specify
-	 * a default value other than <code>null</code>.
-	 */
-	public FilteringPropertyValueModel(PropertyValueModel<? extends T> valueHolder, T defaultValue) {
-		this(valueHolder, Filter.Disabled.<T>instance(), defaultValue);
-	}
-
-	/**
-	 * Construct an property value model with the specified nested
-	 * property value model and filter.
-	 * The default value will be <code>null</code>.
-	 */
-	public FilteringPropertyValueModel(PropertyValueModel<? extends T> valueHolder, Filter<T> filter) {
-		this(valueHolder, filter, null);
-	}
-
-	/**
-	 * Construct an property value model with the specified nested
-	 * property value model, filter, and default value.
-	 */
-	public FilteringPropertyValueModel(PropertyValueModel<? extends T> valueHolder, Filter<T> filter, T defaultValue) {
-		super(valueHolder);
-		this.filter = filter;
-		this.defaultValue = defaultValue;
-	}
-
-
-	// ********** PropertyValueModel implementation **********
-
-	public T getValue() {
-		return this.filterValue(this.valueHolder.getValue());
-	}
-
-
-	// ********** PropertyValueModelWrapper implementation **********
-
-	@Override
-	protected void valueChanged(PropertyChangeEvent event) {
-		// filter the values before propagating the change event
-		@SuppressWarnings("unchecked")
-		Object oldValue = this.filterValue((T) event.getOldValue());
-		@SuppressWarnings("unchecked")
-		Object newValue = this.filterValue((T) event.getNewValue());
-		this.firePropertyChanged(VALUE, oldValue, newValue);
-	}
-
-
-	// ********** queries **********
-
-	/**
-	 * If the specified value is "accepted" simply return it,
-	 * otherwise return the default value.
-	 */
-	protected T filterValue(T value) {
-		return this.accept(value) ? value : this.defaultValue();
-	}
-
-	/**
-	 * Return whether the <code>FilteringPropertyValueModel</code> should
-	 * return the specified value from a call to the
-	 * <code>value()</code> method; the value came
-	 * from the nested property value model
-	 * <p>
-	 * This method can be overridden by a subclass as an
-	 * alternative to building a <code>Filter</code>.
-	 */
-	protected boolean accept(T value) {
-		return this.filter.accept(value);
-	}
-
-	/**
-	 * Return the object that should be returned if
-	 * the nested value was rejected by the filter.
-	 * The default is <code>null</code>.
-	 */
-	protected T defaultValue() {
-		return this.defaultValue;
-	}
-
-}
diff --git a/jpa/plugins/org.eclipse.jpt.utility/src/org/eclipse/jpt/utility/internal/model/value/FilteringWritablePropertyValueModel.java b/jpa/plugins/org.eclipse.jpt.utility/src/org/eclipse/jpt/utility/internal/model/value/FilteringWritablePropertyValueModel.java
deleted file mode 100644
index d7e20f4..0000000
--- a/jpa/plugins/org.eclipse.jpt.utility/src/org/eclipse/jpt/utility/internal/model/value/FilteringWritablePropertyValueModel.java
+++ /dev/null
@@ -1,125 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.utility.internal.model.value;
-
-import org.eclipse.jpt.utility.internal.BidiFilter;
-import org.eclipse.jpt.utility.model.value.WritablePropertyValueModel;
-
-/**
- * A <code>FilteringWritablePropertyValueModel</code> wraps another
- * <code>WritabelPropertyValueModel</code> and uses a <code>BidiFilter</code>
- * to determine when the wrapped value is to be returned by calls
- * to <code>value()</code> and modified by calls to
- * <code>setValue(Object)</code>.
- * <p>
- * As an alternative to building a <code>BidiFilter</code>, a subclass
- * of <code>FilteringWritablePropertyValueModel</code> can override the
- * <code>accept(Object)</code> and <code>reverseAccept(Object)</code>
- * methods.
- * <p>
- * One, possibly undesirable, side-effect of using this value model is that
- * it must return *something* as the value. The default behavior is
- * to return <code>null</code> whenever the wrapped value is not "accepted",
- * which can be configured and/or overridden.
- * <p>
- * Similarly, if an incoming value is not "reverseAccepted", *nothing* will passed
- * through to the wrapped value holder, not even <code>null</code>.
- */
-public class FilteringWritablePropertyValueModel<T>
-	extends FilteringPropertyValueModel<T>
-	implements WritablePropertyValueModel<T>
-{
-
-
-	// ********** constructors **********
-
-	/**
-	 * Construct a property value model with the specified nested
-	 * property value model and a disabled filter.
-	 * Use this constructor if you want to override the
-	 * <code>accept(Object)</code> and <code>reverseAccept(Object)</code>
-	 * methods instead of building a <code>BidiFilter</code>.
-	 * The default value will be <code>null</code>.
-	 */
-	public FilteringWritablePropertyValueModel(WritablePropertyValueModel<T> valueHolder) {
-		this(valueHolder, BidiFilter.Disabled.<T>instance(), null);
-	}
-
-	/**
-	 * Construct a property value model with the specified nested
-	 * property value model, specified default value, and a disabled filter.
-	 * Use this constructor if you want to override the
-	 * <code>accept(Object)</code> and <code>reverseAccept(Object)</code>
-	 * methods instead of building a <code>BidiFilter</code>
-	 * <em>and</em> you need to specify
-	 * a default value other than <code>null</code>.
-	 */
-	public FilteringWritablePropertyValueModel(WritablePropertyValueModel<T> valueHolder, T defaultValue) {
-		this(valueHolder, BidiFilter.Disabled.<T>instance(), defaultValue);
-	}
-
-	/**
-	 * Construct an property value model with the specified nested
-	 * property value model and filter.
-	 * The default value will be <code>null</code>.
-	 */
-	public FilteringWritablePropertyValueModel(WritablePropertyValueModel<T> valueHolder, BidiFilter<T> filter) {
-		this(valueHolder, filter, null);
-	}
-
-	/**
-	 * Construct an property value model with the specified nested
-	 * property value model, filter, and default value.
-	 */
-	public FilteringWritablePropertyValueModel(WritablePropertyValueModel<T> valueHolder, BidiFilter<T> filter, T defaultValue) {
-		super(valueHolder, filter, defaultValue);
-	}
-
-
-	// ********** WritablePropertyValueModel implementation **********
-
-	public void setValue(T value) {
-		if (this.reverseAccept(value)) {
-			this.valueHolder().setValue(value);
-		}
-	}
-
-
-	// ********** queries **********
-
-	/**
-	 * Return whether the <code>FilteringWritablePropertyValueModel</code>
-	 * should pass through the specified value to the nested
-	 * writable property value model in a call to the
-	 * <code>setValue(Object)</code> method
-	 * <p>
-	 * This method can be overridden by a subclass as an
-	 * alternative to building a <code>BidiFilter</code>.
-	 */
-	protected boolean reverseAccept(T value) {
-		return this.getFilter().reverseAccept(value);
-	}
-
-	/**
-	 * Our constructors accept only a WritablePropertyValueModel<T>.
-	 */
-	@SuppressWarnings("unchecked")
-	protected WritablePropertyValueModel<T> valueHolder() {
-		return (WritablePropertyValueModel<T>) this.valueHolder;
-	}
-
-	/**
-	 * Our constructors accept only a bidirectional filter.
-	 */
-	protected BidiFilter<T> getFilter() {
-		return (BidiFilter<T>) this.filter;
-	}
-
-}
diff --git a/jpa/plugins/org.eclipse.jpt.utility/src/org/eclipse/jpt/utility/internal/model/value/ItemAspectListValueModelAdapter.java b/jpa/plugins/org.eclipse.jpt.utility/src/org/eclipse/jpt/utility/internal/model/value/ItemAspectListValueModelAdapter.java
deleted file mode 100644
index 17538f9..0000000
--- a/jpa/plugins/org.eclipse.jpt.utility/src/org/eclipse/jpt/utility/internal/model/value/ItemAspectListValueModelAdapter.java
+++ /dev/null
@@ -1,295 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2008 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.utility.internal.model.value;
-
-import java.util.ArrayList;
-import java.util.Collection;
-import java.util.EventObject;
-import java.util.IdentityHashMap;
-import java.util.Iterator;
-import java.util.ListIterator;
-import org.eclipse.jpt.utility.internal.Counter;
-import org.eclipse.jpt.utility.internal.iterators.ReadOnlyListIterator;
-import org.eclipse.jpt.utility.model.Model;
-import org.eclipse.jpt.utility.model.event.ListChangeEvent;
-import org.eclipse.jpt.utility.model.value.CollectionValueModel;
-import org.eclipse.jpt.utility.model.value.ListValueModel;
-
-/**
- * Abstract list value model that provides behavior for wrapping a list value
- * model (or collection value model) and listening for changes to aspects of the
- * *items* held by the list (or collection). Changes to the actual list
- * (or collection) are also monitored.
- * 
- * This is useful if you have a collection of items that can be modified by adding
- * or removing items or the items themselves might change in a fashion that
- * might change the collection's external appearance.
- * 
- * Subclasses need to override two methods:
- * 
- * #listenToItem(Model)
- *     begin listening to the appropriate aspect of the specified item and call
- *     #itemAspectChanged(Object) whenever the aspect changes
- * 
- * #stopListeningToItem(Model)
- *     stop listening to the appropriate aspect of the specified item
- */
-public abstract class ItemAspectListValueModelAdapter<E>
-	extends ListValueModelWrapper<E>
-	implements ListValueModel<E>
-{
-
-	/**
-	 * Maintain a counter for each of the items in the
-	 * wrapped list holder we are listening to.
-	 */
-	protected final IdentityHashMap<E, Counter> counters;
-
-
-	// ********** constructors **********
-
-	/**
-	 * Constructor - the list holder is required.
-	 */
-	protected ItemAspectListValueModelAdapter(ListValueModel<? extends E> listHolder) {
-		super(listHolder);
-		this.counters = new IdentityHashMap<E, Counter>();
-	}
-
-	/**
-	 * Constructor - the collection holder is required.
-	 */
-	protected ItemAspectListValueModelAdapter(CollectionValueModel<? extends E> collectionHolder) {
-		this(new CollectionListValueModelAdapter<E>(collectionHolder));
-	}
-
-
-	// ********** ListValueModel implementation **********
-
-	public Iterator<E> iterator() {
-		return this.listIterator();
-	}
-
-	public ListIterator<E> listIterator() {
-		return new ReadOnlyListIterator<E>(this.listHolder.listIterator());
-	}
-
-	public E get(int index) {
-		return this.listHolder.get(index);
-	}
-
-	public int size() {
-		return this.listHolder.size();
-	}
-
-	public Object[] toArray() {
-		return this.listHolder.toArray();
-	}
-
-
-	// ********** behavior **********
-
-	/**
-	 * Start listening to the list holder and the items in the list.
-	 */
-	@Override
-	protected void engageModel() {
-		super.engageModel();
-		this.engageAllItems();
-	}
-
-	protected void engageAllItems() {
-		this.engageItems(this.listHolder.iterator());
-	}
-
-	protected void engageItems(Iterator<? extends E> stream) {
-		while (stream.hasNext()) {
-			this.engageItem(stream.next());
-		}
-	}
-
-	protected void engageItem(E item) {
-		// listen to an item only once
-		Counter counter = this.counters.get(item);
-		if (counter == null) {
-			counter = new Counter();
-			this.counters.put(item, counter);
-			this.startListeningToItem((Model) item);
-		}
-		counter.increment();
-	}
-
-	/**
-	 * Start listening to the specified item.
-	 */
-	protected abstract void startListeningToItem(Model item);
-
-	/**
-	 * Stop listening to the list holder and the items in the list.
-	 */
-	@Override
-	protected void disengageModel() {
-		this.disengageAllItems();
-		super.disengageModel();
-	}
-
-	protected void disengageAllItems() {
-		this.disengageItems(this.listHolder.iterator());
-	}
-
-	protected void disengageItems(Iterator<? extends E> stream) {
-		while (stream.hasNext()) {
-			this.disengageItem(stream.next());
-		}
-	}
-
-	protected void disengageItem(E item) {
-		// stop listening to an item only once
-		Counter counter = this.counters.get(item);
-		if (counter == null) {
-			// something is wrong if this happens...  ~bjv
-			throw new IllegalStateException("missing counter: " + item);
-		}
-		if (counter.decrement() == 0) {
-			this.counters.remove(item);
-			this.stopListeningToItem((Model) item);
-		}
-	}
-
-	/**
-	 * Stop listening to the specified item.
-	 */
-	protected abstract void stopListeningToItem(Model item);
-
-
-	// ********** list change support **********
-
-	/**
-	 * Items were added to the wrapped list holder.
-	 * Forward the event and begin listening to the added items.
-	 */
-	@Override
-	protected void itemsAdded(ListChangeEvent event) {
-		// re-fire event with the wrapper as the source
-		this.fireItemsAdded(event.cloneWithSource(this, LIST_VALUES));
-		this.engageItems(this.items(event));
-	}
-
-	/**
-	 * Items were removed from the wrapped list holder.
-	 * Stop listening to the removed items and forward the event.
-	 */
-	@Override
-	protected void itemsRemoved(ListChangeEvent event) {
-		this.disengageItems(this.items(event));
-		// re-fire event with the wrapper as the source
-		this.fireItemsRemoved(event.cloneWithSource(this, LIST_VALUES));
-	}
-
-	/**
-	 * Items were replaced in the wrapped list holder.
-	 * Stop listening to the removed items, forward the event,
-	 * and begin listening to the added items.
-	 */
-	@Override
-	protected void itemsReplaced(ListChangeEvent event) {
-		this.disengageItems(this.replacedItems(event));
-		// re-fire event with the wrapper as the source
-		this.fireItemsReplaced(event.cloneWithSource(this, LIST_VALUES));
-		this.engageItems(this.items(event));
-	}
-
-	/**
-	 * Items were moved in the wrapped list holder.
-	 * No need to change any listeners; just forward the event.
-	 */
-	@Override
-	protected void itemsMoved(ListChangeEvent event) {
-		// re-fire event with the wrapper as the source
-		this.fireItemsMoved(event.cloneWithSource(this, LIST_VALUES));
-	}
-
-	/**
-	 * The wrapped list holder was cleared.
-	 * Stop listening to the removed items and forward the event.
-	 */
-	@Override
-	protected void listCleared(ListChangeEvent event) {
-		// we should only need to disengage each item once...
-		// make a copy to prevent a ConcurrentModificationException
-		Collection<E> keys = new ArrayList<E>(this.counters.keySet());
-		this.disengageItems(keys.iterator());
-		this.counters.clear();
-		// re-fire event with the wrapper as the source
-		this.fireListCleared(LIST_VALUES);
-	}
-
-	/**
-	 * The wrapped list holder has changed in some dramatic fashion.
-	 * Reconfigure our listeners and forward the event.
-	 */
-	@Override
-	protected void listChanged(ListChangeEvent event) {
-		// we should only need to disengage each item once...
-		// make a copy to prevent a ConcurrentModificationException
-		Collection<E> keys = new ArrayList<E>(this.counters.keySet());
-		this.disengageItems(keys.iterator());
-		this.counters.clear();
-		// re-fire event with the wrapper as the source
-		this.fireListChanged(LIST_VALUES);
-		this.engageAllItems();
-	}
-
-
-	// ********** item change support **********
-
-	/**
-	 * The specified item has a bound property that has changed.
-	 * Notify listeners of the change.
-	 */
-	protected void itemAspectChanged(EventObject event) {
-		Object item = event.getSource();
-		int index = this.lastIdentityIndexOf(item);
-		while (index != -1) {
-			this.itemAspectChanged(index, item);
-			index = this.lastIdentityIndexOf(item, index);
-		}
-	}
-
-	/**
-	 * The specified item has a bound property that has changed.
-	 * Notify listeners of the change.
-	 */
-	protected void itemAspectChanged(int index, Object item) {
-		this.fireItemReplaced(LIST_VALUES, index, item, item);		// hmmm...
-	}
-
-	/**
-	 * Return the last index of the specified item, using object
-	 * identity instead of equality.
-	 */
-	protected int lastIdentityIndexOf(Object o) {
-		return this.lastIdentityIndexOf(o, this.listHolder.size());
-	}
-
-	/**
-	 * Return the last index of the specified item, starting just before the
-	 * the specified endpoint, and using object identity instead of equality.
-	 */
-	protected int lastIdentityIndexOf(Object o, int end) {
-		for (int i = end; i-- > 0; ) {
-			if (this.listHolder.get(i) == o) {
-				return i;
-			}
-		}
-		return -1;
-	}
-
-}
diff --git a/jpa/plugins/org.eclipse.jpt.utility/src/org/eclipse/jpt/utility/internal/model/value/ItemCollectionListValueModelAdapter.java b/jpa/plugins/org.eclipse.jpt.utility/src/org/eclipse/jpt/utility/internal/model/value/ItemCollectionListValueModelAdapter.java
deleted file mode 100644
index 151a90f..0000000
--- a/jpa/plugins/org.eclipse.jpt.utility/src/org/eclipse/jpt/utility/internal/model/value/ItemCollectionListValueModelAdapter.java
+++ /dev/null
@@ -1,97 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2008 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.utility.internal.model.value;
-
-import java.util.Arrays;
-import org.eclipse.jpt.utility.model.Model;
-import org.eclipse.jpt.utility.model.event.CollectionChangeEvent;
-import org.eclipse.jpt.utility.model.listener.CollectionChangeListener;
-import org.eclipse.jpt.utility.model.value.CollectionValueModel;
-import org.eclipse.jpt.utility.model.value.ListValueModel;
-
-/**
- * Extend ItemAspectListValueModelAdapter to listen to one or more collection
- * aspects of each item in the wrapped list model.
- */
-public class ItemCollectionListValueModelAdapter<E>
-	extends ItemAspectListValueModelAdapter<E>
-{
-
-	/** The names of the items' collections that we listen to. */
-	protected final String[] collectionNames;
-
-	/** Listener that listens to all the items in the list. */
-	protected final CollectionChangeListener itemCollectionListener;
-
-
-	// ********** constructors **********
-
-	/**
-	 * Construct an adapter for the specified item Collections.
-	 */
-	public ItemCollectionListValueModelAdapter(ListValueModel<E> listHolder, String... collectionNames) {
-		super(listHolder);
-		this.collectionNames = collectionNames;
-		this.itemCollectionListener = this.buildItemCollectionListener();
-	}
-
-	/**
-	 * Construct an adapter for the specified item Collections.
-	 */
-	public ItemCollectionListValueModelAdapter(CollectionValueModel<E> collectionHolder, String... collectionNames) {
-		this(new CollectionListValueModelAdapter<E>(collectionHolder), collectionNames);
-	}
-
-
-	// ********** initialization **********
-
-	/**
-	 * All we really care about is the fact that a Collection aspect has 
-	 * changed.  Do the same thing no matter which event occurs.
-	 */
-	protected CollectionChangeListener buildItemCollectionListener() {
-		return new CollectionChangeListener() {
-			public void itemsAdded(CollectionChangeEvent event) {
-				ItemCollectionListValueModelAdapter.this.itemAspectChanged(event);
-			}
-			public void itemsRemoved(CollectionChangeEvent event) {
-				ItemCollectionListValueModelAdapter.this.itemAspectChanged(event);
-			}
-			public void collectionCleared(CollectionChangeEvent event) {
-				ItemCollectionListValueModelAdapter.this.itemAspectChanged(event);
-			}
-			public void collectionChanged(CollectionChangeEvent event) {
-				ItemCollectionListValueModelAdapter.this.itemAspectChanged(event);
-			}
-			@Override
-			public String toString() {
-				return "item collection listener: " + Arrays.asList(ItemCollectionListValueModelAdapter.this.collectionNames);
-			}
-		};
-	}
-
-
-	// ********** behavior **********
-
-	@Override
-	protected void startListeningToItem(Model item) {
-		for (String collectionName : this.collectionNames) {
-			item.addCollectionChangeListener(collectionName, this.itemCollectionListener);
-		}
-	}
-
-	@Override
-	protected void stopListeningToItem(Model item) {
-		for (String collectionName : this.collectionNames) {
-			item.removeCollectionChangeListener(collectionName, this.itemCollectionListener);
-		}
-	}
-
-}
diff --git a/jpa/plugins/org.eclipse.jpt.utility/src/org/eclipse/jpt/utility/internal/model/value/ItemListListValueModelAdapter.java b/jpa/plugins/org.eclipse.jpt.utility/src/org/eclipse/jpt/utility/internal/model/value/ItemListListValueModelAdapter.java
deleted file mode 100644
index 5354c1b..0000000
--- a/jpa/plugins/org.eclipse.jpt.utility/src/org/eclipse/jpt/utility/internal/model/value/ItemListListValueModelAdapter.java
+++ /dev/null
@@ -1,103 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2008 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.utility.internal.model.value;
-
-import java.util.Arrays;
-import org.eclipse.jpt.utility.model.Model;
-import org.eclipse.jpt.utility.model.event.ListChangeEvent;
-import org.eclipse.jpt.utility.model.listener.ListChangeListener;
-import org.eclipse.jpt.utility.model.value.CollectionValueModel;
-import org.eclipse.jpt.utility.model.value.ListValueModel;
-
-/**
- * Extend ItemAspectListValueModelAdapter to listen to one or more list
- * aspects of each item in the wrapped list model.
- */
-public class ItemListListValueModelAdapter<E>
-	extends ItemAspectListValueModelAdapter<E>
-{
-
-	/** The names of the subject's lists that we listen to. */
-	protected final String[] listNames;
-
-	/** Listener that listens to all the items in the list. */
-	protected final ListChangeListener itemListListener;
-
-
-	// ********** constructors **********
-
-	/**
-	 * Construct an adapter for the specified item List aspects.
-	 */
-	public ItemListListValueModelAdapter(ListValueModel<E> listHolder, String... listNames) {
-		super(listHolder);
-		this.listNames = listNames;
-		this.itemListListener = this.buildItemListListener();
-	}
-
-	/**
-	 * Construct an adapter for the specified item List aspects.
-	 */
-	public ItemListListValueModelAdapter(CollectionValueModel<E> collectionHolder, String... listNames) {
-		this(new CollectionListValueModelAdapter<E>(collectionHolder), listNames);
-	}
-
-
-	// ********** initialization **********
-
-	/**
-	 * All we really care about is the fact that the List aspect has 
-	 * changed.  Do the same thing no matter which event occurs.
-	 */
-	protected ListChangeListener buildItemListListener() {
-		return new ListChangeListener() {
-			public void itemsAdded(ListChangeEvent event) {
-				ItemListListValueModelAdapter.this.itemAspectChanged(event);
-			}
-			public void itemsRemoved(ListChangeEvent event) {
-				ItemListListValueModelAdapter.this.itemAspectChanged(event);
-			}
-			public void itemsReplaced(ListChangeEvent event) {
-				ItemListListValueModelAdapter.this.itemAspectChanged(event);
-			}
-			public void itemsMoved(ListChangeEvent event) {
-				ItemListListValueModelAdapter.this.itemAspectChanged(event);
-			}
-			public void listCleared(ListChangeEvent event) {
-				ItemListListValueModelAdapter.this.itemAspectChanged(event);
-			}
-			public void listChanged(ListChangeEvent event) {
-				ItemListListValueModelAdapter.this.itemAspectChanged(event);
-			}
-			@Override
-			public String toString() {
-				return "item list listener: " + Arrays.asList(ItemListListValueModelAdapter.this.listNames);
-			}
-		};
-	}
-	
-
-	// ********** behavior **********
-
-	@Override
-	protected void startListeningToItem(Model item) {
-		for (String listName : this.listNames) {
-			item.addListChangeListener(listName, this.itemListListener);
-		}
-	}
-
-	@Override
-	protected void stopListeningToItem(Model item) {
-		for (String listName : this.listNames) {
-			item.removeListChangeListener(listName, this.itemListListener);
-		}
-	}
-
-}
diff --git a/jpa/plugins/org.eclipse.jpt.utility/src/org/eclipse/jpt/utility/internal/model/value/ItemPropertyListValueModelAdapter.java b/jpa/plugins/org.eclipse.jpt.utility/src/org/eclipse/jpt/utility/internal/model/value/ItemPropertyListValueModelAdapter.java
deleted file mode 100644
index 48140a0..0000000
--- a/jpa/plugins/org.eclipse.jpt.utility/src/org/eclipse/jpt/utility/internal/model/value/ItemPropertyListValueModelAdapter.java
+++ /dev/null
@@ -1,84 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2008 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.utility.internal.model.value;
-
-import java.util.Arrays;
-import org.eclipse.jpt.utility.model.Model;
-import org.eclipse.jpt.utility.model.event.PropertyChangeEvent;
-import org.eclipse.jpt.utility.model.listener.PropertyChangeListener;
-import org.eclipse.jpt.utility.model.value.CollectionValueModel;
-import org.eclipse.jpt.utility.model.value.ListValueModel;
-
-/**
- * Extend ItemAspectListValueModelAdapter to listen to one or more
- * properties of each item in the wrapped list model.
- */
-public class ItemPropertyListValueModelAdapter<E>
-	extends ItemAspectListValueModelAdapter<E>
-{
-
-	/** The names of the items' properties that we listen to. */
-	protected final String[] propertyNames;
-
-	/** Listener that listens to all the items in the list. */
-	protected final PropertyChangeListener itemPropertyListener;
-
-
-	// ********** constructors **********
-
-	/**
-	 * Construct an adapter for the specified item properties.
-	 */
-	public ItemPropertyListValueModelAdapter(ListValueModel<E> listHolder, String... propertyNames) {
-		super(listHolder);
-		this.propertyNames = propertyNames;
-		this.itemPropertyListener = this.buildItemPropertyListener();
-	}
-
-	/**
-	 * Construct an adapter for the specified item properties.
-	 */
-	public ItemPropertyListValueModelAdapter(CollectionValueModel<E> collectionHolder, String... propertyNames) {
-		this(new CollectionListValueModelAdapter<E>(collectionHolder), propertyNames);
-	}
-
-
-	// ********** initialization **********
-
-	protected PropertyChangeListener buildItemPropertyListener() {
-		return new PropertyChangeListener() {
-			public void propertyChanged(PropertyChangeEvent event) {
-				ItemPropertyListValueModelAdapter.this.itemAspectChanged(event);
-			}
-			@Override
-			public String toString() {
-				return "item property listener: " + Arrays.asList(ItemPropertyListValueModelAdapter.this.propertyNames);
-			}
-		};
-	}
-	
-
-	// ********** behavior **********
-
-	@Override
-	protected void startListeningToItem(Model item) {
-		for (String propertyName : this.propertyNames) {
-			item.addPropertyChangeListener(propertyName, this.itemPropertyListener);
-		}
-	}
-
-	@Override
-	protected void stopListeningToItem(Model item) {
-		for (String propertyName : this.propertyNames) {
-			item.removePropertyChangeListener(propertyName, this.itemPropertyListener);
-		}
-	}
-
-}
diff --git a/jpa/plugins/org.eclipse.jpt.utility/src/org/eclipse/jpt/utility/internal/model/value/ItemStateListValueModelAdapter.java b/jpa/plugins/org.eclipse.jpt.utility/src/org/eclipse/jpt/utility/internal/model/value/ItemStateListValueModelAdapter.java
deleted file mode 100644
index 46d7d86..0000000
--- a/jpa/plugins/org.eclipse.jpt.utility/src/org/eclipse/jpt/utility/internal/model/value/ItemStateListValueModelAdapter.java
+++ /dev/null
@@ -1,74 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2008 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.utility.internal.model.value;
-
-import org.eclipse.jpt.utility.model.Model;
-import org.eclipse.jpt.utility.model.event.StateChangeEvent;
-import org.eclipse.jpt.utility.model.listener.StateChangeListener;
-import org.eclipse.jpt.utility.model.value.CollectionValueModel;
-import org.eclipse.jpt.utility.model.value.ListValueModel;
-
-/**
- * Extend ItemAspectListValueModelAdapter to listen to the
- * "state" of each item in the wrapped list model.
- */
-public class ItemStateListValueModelAdapter<E>
-	extends ItemAspectListValueModelAdapter<E>
-{
-	/** Listener that listens to all the items in the list. */
-	protected final StateChangeListener itemStateListener;
-
-
-	// ********** constructors **********
-
-	/**
-	 * Construct an adapter for the item state.
-	 */
-	public ItemStateListValueModelAdapter(ListValueModel<E> listHolder) {
-		super(listHolder);
-		this.itemStateListener = this.buildItemStateListener();
-	}
-
-	/**
-	 * Construct an adapter for the item state.
-	 */
-	public ItemStateListValueModelAdapter(CollectionValueModel<E> collectionHolder) {
-		this(new CollectionListValueModelAdapter<E>(collectionHolder));
-	}
-
-
-	// ********** initialization **********
-
-	protected StateChangeListener buildItemStateListener() {
-		return new StateChangeListener() {
-			public void stateChanged(StateChangeEvent event) {
-				ItemStateListValueModelAdapter.this.itemAspectChanged(event);
-			}
-			@Override
-			public String toString() {
-				return "item state listener";
-			}
-		};
-	}
-	
-
-	// ********** behavior **********
-
-	@Override
-	protected void startListeningToItem(Model item) {
-		item.addStateChangeListener(this.itemStateListener);
-	}
-
-	@Override
-	protected void stopListeningToItem(Model item) {
-		item.removeStateChangeListener(this.itemStateListener);
-	}
-
-}
diff --git a/jpa/plugins/org.eclipse.jpt.utility/src/org/eclipse/jpt/utility/internal/model/value/ItemTreeListValueModelAdapter.java b/jpa/plugins/org.eclipse.jpt.utility/src/org/eclipse/jpt/utility/internal/model/value/ItemTreeListValueModelAdapter.java
deleted file mode 100644
index 4e39f6e..0000000
--- a/jpa/plugins/org.eclipse.jpt.utility/src/org/eclipse/jpt/utility/internal/model/value/ItemTreeListValueModelAdapter.java
+++ /dev/null
@@ -1,97 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.utility.internal.model.value;
-
-import java.util.Arrays;
-import org.eclipse.jpt.utility.model.Model;
-import org.eclipse.jpt.utility.model.event.TreeChangeEvent;
-import org.eclipse.jpt.utility.model.listener.TreeChangeListener;
-import org.eclipse.jpt.utility.model.value.CollectionValueModel;
-import org.eclipse.jpt.utility.model.value.ListValueModel;
-
-/**
- * Extend ItemAspectListValueModelAdapter to listen to one or more tree
- * aspects of each item in the wrapped list model.
- */
-public class ItemTreeListValueModelAdapter<E>
-	extends ItemAspectListValueModelAdapter<E>
-{
-
-	/** The names of the items' tree that we listen to. */
-	protected final String[] treeNames;
-
-	/** Listener that listens to all the items in the list. */
-	protected final TreeChangeListener itemTreeListener;
-
-
-	// ********** constructors **********
-
-	/**
-	 * Construct an adapter for the specified item trees.
-	 */
-	public ItemTreeListValueModelAdapter(ListValueModel<E> listHolder, String... treeNames) {
-		super(listHolder);
-		this.treeNames = treeNames;
-		this.itemTreeListener = this.buildItemTreeListener();
-	}
-
-	/**
-	 * Construct an adapter for the specified item trees.
-	 */
-	public ItemTreeListValueModelAdapter(CollectionValueModel<E> collectionHolder, String... treeNames) {
-		this(new CollectionListValueModelAdapter<E>(collectionHolder), treeNames);
-	}
-
-
-	// ********** initialization **********
-
-	/**
-	 * All we really care about is the fact that a tree aspect has 
-	 * changed.  Do the same thing no matter which event occurs.
-	 */
-	protected TreeChangeListener buildItemTreeListener() {
-		return new TreeChangeListener() {
-			public void nodeAdded(TreeChangeEvent event) {
-				ItemTreeListValueModelAdapter.this.itemAspectChanged(event);
-			}
-			public void nodeRemoved(TreeChangeEvent event) {
-				ItemTreeListValueModelAdapter.this.itemAspectChanged(event);
-			}
-			public void treeCleared(TreeChangeEvent event) {
-				ItemTreeListValueModelAdapter.this.itemAspectChanged(event);
-			}
-			public void treeChanged(TreeChangeEvent event) {
-				ItemTreeListValueModelAdapter.this.itemAspectChanged(event);
-			}
-			@Override
-			public String toString() {
-				return "item tree listener: " + Arrays.asList(ItemTreeListValueModelAdapter.this.treeNames);
-			}
-		};
-	}
-
-
-	// ********** behavior **********
-
-	@Override
-	protected void startListeningToItem(Model item) {
-		for (String treeName : this.treeNames) {
-			item.addTreeChangeListener(treeName, this.itemTreeListener);
-		}
-	}
-
-	@Override
-	protected void stopListeningToItem(Model item) {
-		for (String treeName : this.treeNames) {
-			item.removeTreeChangeListener(treeName, this.itemTreeListener);
-		}
-	}
-
-}
diff --git a/jpa/plugins/org.eclipse.jpt.utility/src/org/eclipse/jpt/utility/internal/model/value/ListAspectAdapter.java b/jpa/plugins/org.eclipse.jpt.utility/src/org/eclipse/jpt/utility/internal/model/value/ListAspectAdapter.java
deleted file mode 100644
index b8adaaa..0000000
--- a/jpa/plugins/org.eclipse.jpt.utility/src/org/eclipse/jpt/utility/internal/model/value/ListAspectAdapter.java
+++ /dev/null
@@ -1,287 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2008 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.utility.internal.model.value;
-
-import java.util.Arrays;
-import java.util.Collection;
-import java.util.Iterator;
-import java.util.ListIterator;
-import org.eclipse.jpt.utility.internal.CollectionTools;
-import org.eclipse.jpt.utility.internal.iterators.EmptyListIterator;
-import org.eclipse.jpt.utility.model.Model;
-import org.eclipse.jpt.utility.model.event.ListChangeEvent;
-import org.eclipse.jpt.utility.model.listener.ChangeListener;
-import org.eclipse.jpt.utility.model.listener.ListChangeListener;
-import org.eclipse.jpt.utility.model.value.ListValueModel;
-import org.eclipse.jpt.utility.model.value.PropertyValueModel;
-
-/**
- * This extension of AspectAdapter provides ListChange support.
- * This allows us to convert a set of one or more collections into
- * a single collection, LIST_VALUES.
- * 
- * The typical subclass will override the following methods:
- * #listIterator_()
- *     at the very minimum, override this method to return a list iterator
- *     on the subject's list aspect; it does not need to be overridden if
- *     #listIterator() is overridden and its behavior changed
- * #get(int)
- *     override this method to improve performance
- * #size_()
- *     override this method to improve performance; it does not need to be overridden if
- *     #size() is overridden and its behavior changed
- * #listIterator()
- *     override this method only if returning an empty list iterator when the
- *     subject is null is unacceptable
- * #size()
- *     override this method only if returning a zero when the
- *     subject is null is unacceptable
- */
-public abstract class ListAspectAdapter<S extends Model, E>
-	extends AspectAdapter<S>
-	implements ListValueModel<E>
-{
-	/**
-	 * The name of the subject's lists that we use for the value.
-	 */
-	protected final String[] listNames;
-		protected static final String[] EMPTY_LIST_NAMES = new String[0];
-
-	/** A listener that listens to the subject's list aspect. */
-	protected final ListChangeListener listChangeListener;
-
-	private static final Object[] EMPTY_ARRAY = new Object[0];
-
-
-	// ********** constructors **********
-
-	/**
-	 * Construct a ListAspectAdapter for the specified subject
-	 * and list.
-	 */
-	protected ListAspectAdapter(String listName, S subject) {
-		this(new String[] {listName}, subject);
-	}
-
-	/**
-	 * Construct a ListAspectAdapter for the specified subject
-	 * and lists.
-	 */
-	protected ListAspectAdapter(String[] listNames, S subject) {
-		this(new StaticPropertyValueModel<S>(subject), listNames);
-	}
-
-	/**
-	 * Construct a ListAspectAdapter for the specified subject holder
-	 * and lists.
-	 */
-	protected ListAspectAdapter(PropertyValueModel<? extends S> subjectHolder, String... listNames) {
-		super(subjectHolder);
-		this.listNames = listNames;
-		this.listChangeListener = this.buildListChangeListener();
-	}
-
-	/**
-	 * Construct a ListAspectAdapter for the specified subject holder
-	 * and lists.
-	 */
-	protected ListAspectAdapter(PropertyValueModel<? extends S> subjectHolder, Collection<String> listNames) {
-		this(subjectHolder, listNames.toArray(new String[listNames.size()]));
-	}
-
-	/**
-	 * Construct a ListAspectAdapter for an "unchanging" list in
-	 * the specified subject. This is useful for a list aspect that does not
-	 * change for a particular subject; but the subject will change, resulting in
-	 * a new list.
-	 */
-	protected ListAspectAdapter(PropertyValueModel<? extends S> subjectHolder) {
-		this(subjectHolder, EMPTY_LIST_NAMES);
-	}
-
-
-	// ********** initialization **********
-
-	/**
-	 * The subject's list aspect has changed, notify the listeners.
-	 */
-	protected ListChangeListener buildListChangeListener() {
-		// transform the subject's list change events into VALUE list change events
-		return new ListChangeListener() {
-			public void itemsAdded(ListChangeEvent event) {
-				ListAspectAdapter.this.itemsAdded(event);
-			}
-			public void itemsRemoved(ListChangeEvent event) {
-				ListAspectAdapter.this.itemsRemoved(event);
-			}
-			public void itemsReplaced(ListChangeEvent event) {
-				ListAspectAdapter.this.itemsReplaced(event);
-			}
-			public void itemsMoved(ListChangeEvent event) {
-				ListAspectAdapter.this.itemsMoved(event);
-			}
-			public void listCleared(ListChangeEvent event) {
-				ListAspectAdapter.this.listCleared(event);
-			}
-			public void listChanged(ListChangeEvent event) {
-				ListAspectAdapter.this.listChanged(event);
-			}
-			@Override
-			public String toString() {
-				return "list change listener: " + Arrays.asList(ListAspectAdapter.this.listNames);
-			}
-		};
-	}
-
-
-	// ********** ListValueModel implementation **********
-
-	/**
-	 * Return the elements of the subject's list aspect.
-	 */
-	public Iterator<E> iterator() {
-		return this.listIterator();
-	}
-
-	/**
-	 * Return the elements of the subject's list aspect.
-	 */
-	public ListIterator<E> listIterator() {
-		return (this.subject == null) ? EmptyListIterator.<E>instance() : this.listIterator_();
-	}
-
-	/**
-	 * Return the elements of the subject's list aspect.
-	 * At this point we can be sure that the subject is not null.
-	 * @see #listIterator()
-	 */
-	protected ListIterator<E> listIterator_() {
-		throw new UnsupportedOperationException();
-	}
-
-	/**
-	 * Return the element at the specified index of the subject's list aspect.
-	 */
-	public E get(int index) {
-		return CollectionTools.get(this.listIterator(), index);
-	}
-
-	/**
-	 * Return the size of the subject's list aspect.
-	 */
-	public int size() {
-		return this.subject == null ? 0 : this.size_();
-	}
-
-	/**
-	 * Return the size of the subject's list aspect.
-	 * At this point we can be sure that the subject is not null.
-	 * @see #size()
-	 */
-	protected int size_() {
-		return CollectionTools.size(this.listIterator());
-	}
-
-	/**
-	 * Return an array manifestation of the subject's list aspect.
-	 */
-	public Object[] toArray() {
-		return this.subject == null ? EMPTY_ARRAY : this.toArray_();
-	}
-
-	/**
-	 * Return an array manifestation of the subject's list aspect.
-	 * At this point we can be sure that the subject is not null.
-	 * @see #toArray()
-	 */
-	protected Object[] toArray_() {
-		return CollectionTools.array(this.listIterator(), this.size());
-	}
-
-
-	// ********** AspectAdapter implementation **********
-
-	@Override
-	protected Object getValue() {
-		return this.iterator();
-	}
-
-	@Override
-	protected Class<? extends ChangeListener> getListenerClass() {
-		return ListChangeListener.class;
-	}
-
-	@Override
-	protected String getListenerAspectName() {
-		return LIST_VALUES;
-	}
-
-	@Override
-	protected boolean hasListeners() {
-		return this.hasAnyListChangeListeners(LIST_VALUES);
-	}
-
-	@Override
-	protected void fireAspectChange(Object oldValue, Object newValue) {
-		this.fireListChanged(LIST_VALUES);
-	}
-
-	@Override
-	protected void engageSubject_() {
-    	for (String listName : this.listNames) {
-			((Model) this.subject).addListChangeListener(listName, this.listChangeListener);
-		}
-	}
-
-	@Override
-	protected void disengageSubject_() {
-    	for (String listName : this.listNames) {
-			((Model) this.subject).removeListChangeListener(listName, this.listChangeListener);
-		}
-	}
-
-	@Override
-	public void toString(StringBuilder sb) {
-		for (int i = 0; i < this.listNames.length; i++) {
-			if (i != 0) {
-				sb.append(", ");
-			}
-			sb.append(this.listNames[i]);
-		}
-	}
-
-
-	// ********** behavior **********
-
-	protected void itemsAdded(ListChangeEvent event) {
-		this.fireItemsAdded(event.cloneWithSource(this, LIST_VALUES));
-	}
-
-	protected void itemsRemoved(ListChangeEvent event) {
-		this.fireItemsRemoved(event.cloneWithSource(this, LIST_VALUES));
-	}
-
-	protected void itemsReplaced(ListChangeEvent event) {
-		this.fireItemsReplaced(event.cloneWithSource(this, LIST_VALUES));
-	}
-
-	protected void itemsMoved(ListChangeEvent event) {
-		this.fireItemsMoved(event.cloneWithSource(this, LIST_VALUES));
-	}
-
-	protected void listCleared(ListChangeEvent event) {
-		this.fireListCleared(LIST_VALUES);  // nothing from original event to forward
-	}
-
-	protected void listChanged(ListChangeEvent event) {
-		this.fireListChanged(LIST_VALUES);  // nothing from original event to forward
-	}
-
-}
diff --git a/jpa/plugins/org.eclipse.jpt.utility/src/org/eclipse/jpt/utility/internal/model/value/ListCollectionValueModelAdapter.java b/jpa/plugins/org.eclipse.jpt.utility/src/org/eclipse/jpt/utility/internal/model/value/ListCollectionValueModelAdapter.java
deleted file mode 100644
index dc8a7aa..0000000
--- a/jpa/plugins/org.eclipse.jpt.utility/src/org/eclipse/jpt/utility/internal/model/value/ListCollectionValueModelAdapter.java
+++ /dev/null
@@ -1,300 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2008 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.utility.internal.model.value;
-
-import java.util.ArrayList;
-import java.util.Iterator;
-import java.util.ListIterator;
-import org.eclipse.jpt.utility.internal.iterators.ReadOnlyIterator;
-import org.eclipse.jpt.utility.internal.model.AbstractModel;
-import org.eclipse.jpt.utility.internal.model.ChangeSupport;
-import org.eclipse.jpt.utility.internal.model.SingleAspectChangeSupport;
-import org.eclipse.jpt.utility.model.event.ListChangeEvent;
-import org.eclipse.jpt.utility.model.listener.CollectionChangeListener;
-import org.eclipse.jpt.utility.model.listener.ListChangeListener;
-import org.eclipse.jpt.utility.model.value.CollectionValueModel;
-import org.eclipse.jpt.utility.model.value.ListValueModel;
-
-/**
- * An adapter that allows us to make a ListValueModel behave like
- * a read-only CollectionValueModel, sorta.
- * 
- * We keep an internal collection somewhat in synch with the wrapped list.
- * 
- * NB: Since we only listen to the wrapped list when we have
- * listeners ourselves and we can only stay in synch with the wrapped
- * list while we are listening to it, results to various methods
- * (e.g. #size(), value()) will be unpredictable whenever
- * we do not have any listeners. This should not be too painful since,
- * most likely, client objects will also be listeners.
- */
-public class ListCollectionValueModelAdapter<E>
-	extends AbstractModel
-	implements CollectionValueModel<E>
-{
-	/** The wrapped list value model. */
-	protected final ListValueModel<? extends E> listHolder;
-
-	/** A listener that forwards any events fired by the list holder. */
-	protected final ListChangeListener listChangeListener;
-
-	/**
-	 * Our internal collection, which holds the same elements as
-	 * the wrapped list.
-	 */
-	// we declare this an ArrayList so we can use #clone() and #ensureCapacity(int)
-	protected final ArrayList<E> collection;
-
-
-	// ********** constructors/initialization **********
-
-	/**
-	 * Wrap the specified ListValueModel.
-	 */
-	public ListCollectionValueModelAdapter(ListValueModel<? extends E> listHolder) {
-		super();
-		if (listHolder == null) {
-			throw new NullPointerException();
-		}
-		this.listHolder = listHolder;
-		this.listChangeListener = this.buildListChangeListener();
-		this.collection = new ArrayList<E>();
-		// postpone building the collection and listening to the underlying list
-		// until we have listeners ourselves...
-	}
-
-	@Override
-	protected ChangeSupport buildChangeSupport() {
-		return new SingleAspectChangeSupport(this, CollectionChangeListener.class, VALUES);
-	}
-
-	/**
-	 * The wrapped list has changed, forward an equivalent
-	 * collection change event to our listeners.
-	 */
-	protected ListChangeListener buildListChangeListener() {
-		return new ListChangeListener() {
-			public void itemsAdded(ListChangeEvent event) {
-				ListCollectionValueModelAdapter.this.itemsAdded(event);
-			}
-			public void itemsRemoved(ListChangeEvent event) {
-				ListCollectionValueModelAdapter.this.itemsRemoved(event);
-			}
-			public void itemsReplaced(ListChangeEvent event) {
-				ListCollectionValueModelAdapter.this.itemsReplaced(event);
-			}
-			public void itemsMoved(ListChangeEvent event) {
-				ListCollectionValueModelAdapter.this.itemsMoved(event);
-			}
-			public void listCleared(ListChangeEvent event) {
-				ListCollectionValueModelAdapter.this.listCleared(event);
-			}
-			public void listChanged(ListChangeEvent event) {
-				ListCollectionValueModelAdapter.this.listChanged(event);
-			}
-			@Override
-			public String toString() {
-				return "list change listener";
-			}
-		};
-	}
-
-
-	// ********** CollectionValueModel implementation **********
-
-	public Iterator<E> iterator() {
-		// try to prevent backdoor modification of the list
-		return new ReadOnlyIterator<E>(this.collection);
-	}
-
-	public int size() {
-		return this.collection.size();
-	}
-
-
-	// ********** extend change support **********
-
-	/**
-	 * Override to start listening to the list holder if necessary.
-	 */
-	@Override
-	public void addCollectionChangeListener(CollectionChangeListener listener) {
-		if (this.hasNoListeners()) {
-			this.engageModel();
-		}
-		super.addCollectionChangeListener(listener);
-	}
-
-	/**
-	 * Override to start listening to the list holder if necessary.
-	 */
-	@Override
-	public void addCollectionChangeListener(String collectionName, CollectionChangeListener listener) {
-		if (collectionName == VALUES && this.hasNoListeners()) {
-			this.engageModel();
-		}
-		super.addCollectionChangeListener(collectionName, listener);
-	}
-
-	/**
-	 * Override to stop listening to the list holder if appropriate.
-	 */
-	@Override
-	public void removeCollectionChangeListener(CollectionChangeListener listener) {
-		super.removeCollectionChangeListener(listener);
-		if (this.hasNoListeners()) {
-			this.disengageModel();
-		}
-	}
-
-	/**
-	 * Override to stop listening to the list holder if appropriate.
-	 */
-	@Override
-	public void removeCollectionChangeListener(String collectionName, CollectionChangeListener listener) {
-		super.removeCollectionChangeListener(collectionName, listener);
-		if (collectionName == VALUES && this.hasNoListeners()) {
-			this.disengageModel();
-		}
-	}
-
-
-	// ********** queries **********
-
-	protected boolean hasListeners() {
-		return this.hasAnyCollectionChangeListeners(VALUES);
-	}
-
-	protected boolean hasNoListeners() {
-		return ! this.hasListeners();
-	}
-
-	/**
-	 * Return the index of the specified item, using object
-	 * identity instead of equality.
-	 */
-	protected int lastIdentityIndexOf(Object o) {
-		return this.lastIdentityIndexOf(o, this.collection.size());
-	}
-	
-	/**
-	 * Return the last index of the specified item, starting just before the
-	 * the specified endpoint, and using object identity instead of equality.
-	 */
-	protected int lastIdentityIndexOf(Object o, int end) {
-		for (int i = end; i-- > 0; ) {
-			if (this.collection.get(i) == o) {
-				return i;
-			}
-		}
-		return -1;
-	}
-	
-
-	// ********** behavior **********
-
-	protected void buildCollection() {
-		Iterator<? extends E> stream = this.listHolder.iterator();
-		// if the new list is empty, do nothing
-		if (stream.hasNext()) {
-			this.collection.ensureCapacity(this.listHolder.size());
-			while (stream.hasNext()) {
-				this.collection.add(stream.next());
-			}
-		}
-	}
-
-	protected void engageModel() {
-		this.listHolder.addListChangeListener(ListValueModel.LIST_VALUES, this.listChangeListener);
-		// synch our collection *after* we start listening to the list holder,
-		// since its value might change when a listener is added
-		this.buildCollection();
-	}
-
-	protected void disengageModel() {
-		this.listHolder.removeListChangeListener(ListValueModel.LIST_VALUES, this.listChangeListener);
-		// clear out the collection when we are not listening to the list holder
-		this.collection.clear();
-	}
-
-	// minimize suppressed warnings
-	@SuppressWarnings("unchecked")
-	protected ListIterator<E> items(ListChangeEvent event) {
-		return (ListIterator<E>) event.items();
-	}
-
-	// minimize suppressed warnings
-	@SuppressWarnings("unchecked")
-	protected ListIterator<E> replacedItems(ListChangeEvent event) {
-		return (ListIterator<E>) event.replacedItems();
-	}
-
-	protected void itemsAdded(ListChangeEvent event) {
-		this.addItemsToCollection(this.items(event), this.collection, VALUES);
-	}
-
-	protected void removeInternalItems(Iterator<E> items) {
-		// we have to remove the items individually,
-		// since they are probably not in sequence
-		while (items.hasNext()) {
-			Object removedItem = items.next();
-			int index = this.lastIdentityIndexOf(removedItem);
-			this.collection.remove(index);
-			this.fireItemRemoved(VALUES, removedItem);
-		}
-	}
-
-	protected void itemsRemoved(ListChangeEvent event) {
-		this.removeInternalItems(this.items(event));
-	}
-
-	protected void itemsReplaced(ListChangeEvent event) {
-		this.removeInternalItems(this.replacedItems(event));
-		this.addItemsToCollection(this.items(event), this.collection, VALUES);
-	}
-
-	protected void itemsMoved(ListChangeEvent event) {
-		// do nothing? moving items in a list has no net effect on a collection...
-	}
-
-	protected void listCleared(ListChangeEvent event) {
-		// put in empty check so we don't fire events unnecessarily
-		if ( ! this.collection.isEmpty()) {
-			this.collection.clear();
-			this.fireCollectionCleared(VALUES);
-		}
-	}
-
-	/**
-	 * synchronize our internal collection with the wrapped list
-	 * and fire the appropriate events
-	 */
-	protected void listChanged(ListChangeEvent event) {
-		// put in empty check so we don't fire events unnecessarily
-		if ( ! this.collection.isEmpty()) {
-			@SuppressWarnings("unchecked")
-			ArrayList<E> removedItems = (ArrayList<E>) this.collection.clone();
-			this.collection.clear();
-			this.fireItemsRemoved(VALUES, removedItems);
-		}
-
-		this.buildCollection();
-		// put in empty check so we don't fire events unnecessarily
-		if ( ! this.collection.isEmpty()) {
-			this.fireItemsAdded(VALUES, this.collection);
-		}
-	}
-
-	@Override
-	public void toString(StringBuilder sb) {
-		sb.append(this.listHolder);
-	}
-
-}
diff --git a/jpa/plugins/org.eclipse.jpt.utility/src/org/eclipse/jpt/utility/internal/model/value/ListCurator.java b/jpa/plugins/org.eclipse.jpt.utility/src/org/eclipse/jpt/utility/internal/model/value/ListCurator.java
deleted file mode 100644
index f04821a..0000000
--- a/jpa/plugins/org.eclipse.jpt.utility/src/org/eclipse/jpt/utility/internal/model/value/ListCurator.java
+++ /dev/null
@@ -1,220 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2008 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.utility.internal.model.value;
-
-import java.util.ArrayList;
-import java.util.Iterator;
-import java.util.List;
-import java.util.ListIterator;
-import org.eclipse.jpt.utility.internal.CollectionTools;
-import org.eclipse.jpt.utility.internal.iterators.ReadOnlyListIterator;
-import org.eclipse.jpt.utility.model.Model;
-import org.eclipse.jpt.utility.model.event.StateChangeEvent;
-import org.eclipse.jpt.utility.model.listener.ChangeListener;
-import org.eclipse.jpt.utility.model.listener.ListChangeListener;
-import org.eclipse.jpt.utility.model.listener.StateChangeListener;
-import org.eclipse.jpt.utility.model.value.ListValueModel;
-import org.eclipse.jpt.utility.model.value.PropertyValueModel;
-
-/**
- * This extension of AspectAdapter provides ListChange support
- * by adapting a subject's state change events to a minimum set
- * of list change events.
- */
-public abstract class ListCurator<S extends Model, E>
-	extends AspectAdapter<S>
-	implements ListValueModel<E>
-{
-	/** How the list looked before the last state change */
-	private final ArrayList<E> record;
-
-	/** A listener that listens for the subject's state to change */
-	private final StateChangeListener stateChangeListener;
-
-
-	// ********** constructors **********
-
-	/**
-	 * Construct a Curator for the specified subject.
-	 */
-	protected ListCurator(S subject) {
-		this(new StaticPropertyValueModel<S>(subject));
-	}
-
-	/**
-	 * Construct a curator for the specified subject holder.
-	 * The subject holder cannot be null.
-	 */
-	protected ListCurator(PropertyValueModel<? extends S> subjectHolder) {
-		super(subjectHolder);
-		this.record = new ArrayList<E>();
-		this.stateChangeListener = this.buildStateChangeListener();
-	}
-
-
-	// ********** initialization **********
-
-	/**
-	 * The subject's state has changed, do inventory and report to listeners.
-	 */
-	protected StateChangeListener buildStateChangeListener() {
-		return new StateChangeListener() {
-			public void stateChanged(StateChangeEvent event) {
-				ListCurator.this.submitInventoryReport();
-			}
-			@Override
-			public String toString() {
-				return "state change listener";
-			}
-		};
-	}
-
-
-	// ********** ListValueModel implementation **********
-
-	public Iterator<E> iterator() {
-		return this.listIterator();
-	}
-
-	public ListIterator<E> listIterator() {
-		return new ReadOnlyListIterator<E>(this.record);
-	}
-
-	/**
-	 * Return the item at the specified index of the subject's list aspect.
-	 */
-	public E get(int index) {
-		return this.record.get(index);
-	}
-
-	/**
-	 * Return the size of the subject's list aspect.
-	 */
-	public int size() {
-		return this.record.size();
-	}
-
-	/**
-	 * Return an array manifestation of the subject's list aspect.
-	 */
-	public Object[] toArray() {
-		return this.record.toArray();
-	}
-
-
-	// ********** AspectAdapter implementation **********
-
-	@Override
-	protected Object getValue() {
-		return this.iterator();
-	}
-
-	@Override
-	protected Class<? extends ChangeListener> getListenerClass() {
-		return ListChangeListener.class;
-	}
-
-	@Override
-	protected String getListenerAspectName() {
-		return LIST_VALUES;
-	}
-
-	@Override
-	protected boolean hasListeners() {
-		return this.hasAnyListChangeListeners(LIST_VALUES);
-	}
-
-	/**
-	 * The aspect has changed, notify listeners appropriately.
-	 */
-	@Override
-	protected void fireAspectChange(Object oldValue, Object newValue) {
-		this.fireListChanged(LIST_VALUES);
-	}
-
-	/**
-	 * The subject is not null - add our listener.
-	 */
-	@Override
-	protected void engageSubject_() {
-		((Model) this.subject).addStateChangeListener(this.stateChangeListener);
-		// synch our list *after* we start listening to the subject,
-		// since its value might change when a listener is added
-		CollectionTools.addAll(this.record, this.iteratorForRecord());
-	}
-
-	/**
-	 * The subject is not null - remove our listener.
-	 */
-	@Override
-	protected void disengageSubject_() {
-		((Model) this.subject).removeStateChangeListener(this.stateChangeListener);
-		// clear out the list when we are not listening to the subject
-		this.record.clear();
-	}
-
-
-	// ********** ListCurator protocol **********
-
-	/**
-	 * This is intended to be different from #ListValueModel.iterator().
-	 * It is intended to be used only when the subject changes or the
-	 * subject's "state" changes (as signified by a state change event).
-	 */
-	protected abstract Iterator<E> iteratorForRecord();
-
-
-	// ********** behavior **********
-
-	void submitInventoryReport() {
-		List<E> newRecord = CollectionTools.list(this.iteratorForRecord());
-		int recordIndex = 0;
-
-		// add items from the new record
-		for (E newItem : newRecord) {
-			this.inventoryNewItem(recordIndex, newItem);
-			recordIndex++;
-		}
-
-		// clean out items that are no longer in the new record
-		for (recordIndex = 0; recordIndex < this.record.size(); ) {
-			E item = this.record.get(recordIndex);
-
-			if (newRecord.contains(item)) {
-				recordIndex++;
-			} else {
-				this.removeItemFromInventory(recordIndex, item);
-			}
-		}
-	}
-
-	private void inventoryNewItem(int recordIndex, E newItem) {
-		List<E> rec = new ArrayList<E>(this.record);
-
-		if ((recordIndex < rec.size()) && rec.get(recordIndex).equals(newItem)) {
-			return;
-		}
-		if (rec.contains(newItem)) {
-			this.removeItemFromInventory(recordIndex, rec.get(recordIndex));
-			this.inventoryNewItem(recordIndex, newItem);
-		} else {
-			this.addItemToInventory(recordIndex, newItem);
-		}
-	}
-
-	private void addItemToInventory(int index, E item) {
-		this.addItemToList(index, item, this.record, LIST_VALUES);
-	}
-
-	private void removeItemFromInventory(int index, E item) {
-		this.removeItemFromList(index, this.record, LIST_VALUES);
-	}
-
-}
diff --git a/jpa/plugins/org.eclipse.jpt.utility/src/org/eclipse/jpt/utility/internal/model/value/ListPropertyValueModelAdapter.java b/jpa/plugins/org.eclipse.jpt.utility/src/org/eclipse/jpt/utility/internal/model/value/ListPropertyValueModelAdapter.java
deleted file mode 100644
index 6c78b4f..0000000
--- a/jpa/plugins/org.eclipse.jpt.utility/src/org/eclipse/jpt/utility/internal/model/value/ListPropertyValueModelAdapter.java
+++ /dev/null
@@ -1,166 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.utility.internal.model.value;
-
-import org.eclipse.jpt.utility.model.event.ListChangeEvent;
-import org.eclipse.jpt.utility.model.listener.ListChangeListener;
-import org.eclipse.jpt.utility.model.value.ListValueModel;
-
-/**
- * This abstract class provides the infrastructure needed to wrap
- * a list value model, "lazily" listen to it, and convert
- * its change notifications into property value model change
- * notifications.
- * 
- * Subclasses must override:
- * - #buildValue()
- *     to return the current property value, as derived from the
- *     current list value
- * 
- * Subclasses might want to override:
- * - #itemsAdded(ListChangeEvent event)
- * - #itemsRemoved(ListChangeEvent event)
- * - #itemsReplaced(ListChangeEvent event)
- * - #itemsMoved(ListChangeEvent event)
- * - #listCleared(ListChangeEvent event)
- * - #listChanged(ListChangeEvent event)
- *     to improve performance (by not recalculating the value, if possible)
- */
-public abstract class ListPropertyValueModelAdapter<T>
-	extends AspectPropertyValueModelAdapter<T>
-{
-	/** The wrapped list value model. */
-	protected final ListValueModel<?> listHolder;
-
-	/** A listener that allows us to synch with changes to the wrapped list holder. */
-	protected final ListChangeListener listChangeListener;
-
-
-	// ********** constructor/initialization **********
-
-	/**
-	 * Construct a property value model with the specified wrapped
-	 * list value model.
-	 */
-	protected ListPropertyValueModelAdapter(ListValueModel<?> listHolder) {
-		super();
-		this.listHolder = listHolder;
-		this.listChangeListener = this.buildListChangeListener();
-	}
-
-	protected ListChangeListener buildListChangeListener() {
-		return new ListChangeListener() {
-			public void itemsAdded(ListChangeEvent event) {
-				ListPropertyValueModelAdapter.this.itemsAdded(event);
-			}		
-			public void itemsRemoved(ListChangeEvent event) {
-				ListPropertyValueModelAdapter.this.itemsRemoved(event);
-			}
-			public void itemsReplaced(ListChangeEvent event) {
-				ListPropertyValueModelAdapter.this.itemsReplaced(event);
-			}
-			public void itemsMoved(ListChangeEvent event) {
-				ListPropertyValueModelAdapter.this.itemsMoved(event);
-			}
-			public void listCleared(ListChangeEvent event) {
-				ListPropertyValueModelAdapter.this.listCleared(event);
-			}
-			public void listChanged(ListChangeEvent event) {
-				ListPropertyValueModelAdapter.this.listChanged(event);
-			}
-			@Override
-			public String toString() {
-				return "list change listener";
-			}
-		};
-	}
-
-
-	// ********** behavior **********
-
-	/**
-	 * Start listening to the list holder.
-	 */
-	@Override
-	protected void engageModel_() {
-		this.listHolder.addListChangeListener(ListValueModel.LIST_VALUES, this.listChangeListener);
-	}
-
-	/**
-	 * Stop listening to the list holder.
-	 */
-	@Override
-	protected void disengageModel_() {
-		this.listHolder.removeListChangeListener(ListValueModel.LIST_VALUES, this.listChangeListener);
-	}
-
-	@Override
-	public void toString(StringBuilder sb) {
-		sb.append(this.listHolder);
-	}
-
-	
-	// ********** collection change support **********
-
-	/**
-	 * Items were added to the wrapped list holder;
-	 * propagate the change notification appropriately.
-	 */
-	protected void itemsAdded(ListChangeEvent event) {
-		// by default, simply recalculate the value and fire an event
-		this.propertyChanged();
-	}
-
-	/**
-	 * Items were removed from the wrapped list holder;
-	 * propagate the change notification appropriately.
-	 */
-	protected void itemsRemoved(ListChangeEvent event) {
-		// by default, simply recalculate the value and fire an event
-		this.propertyChanged();
-	}
-
-	/**
-	 * Items were replaced in the wrapped list holder;
-	 * propagate the change notification appropriately.
-	 */
-	protected void itemsReplaced(ListChangeEvent event) {
-		// by default, simply recalculate the value and fire an event
-		this.propertyChanged();
-	}
-
-	/**
-	 * Items were moved in the wrapped list holder;
-	 * propagate the change notification appropriately.
-	 */
-	protected void itemsMoved(ListChangeEvent event) {
-		// by default, simply recalculate the value and fire an event
-		this.propertyChanged();
-	}
-
-	/**
-	 * The wrapped list holder was cleared;
-	 * propagate the change notification appropriately.
-	 */
-	protected void listCleared(ListChangeEvent event) {
-		// by default, simply recalculate the value and fire an event
-		this.propertyChanged();
-	}
-
-	/**
-	 * The value of the wrapped list holder has changed;
-	 * propagate the change notification appropriately.
-	 */
-	protected void listChanged(ListChangeEvent event) {
-		// by default, simply recalculate the value and fire an event
-		this.propertyChanged();
-	}
-
-}
diff --git a/jpa/plugins/org.eclipse.jpt.utility/src/org/eclipse/jpt/utility/internal/model/value/ListValueModelWrapper.java b/jpa/plugins/org.eclipse.jpt.utility/src/org/eclipse/jpt/utility/internal/model/value/ListValueModelWrapper.java
deleted file mode 100644
index 06f5a07..0000000
--- a/jpa/plugins/org.eclipse.jpt.utility/src/org/eclipse/jpt/utility/internal/model/value/ListValueModelWrapper.java
+++ /dev/null
@@ -1,206 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2008 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.utility.internal.model.value;
-
-import java.util.ListIterator;
-import org.eclipse.jpt.utility.internal.model.AbstractModel;
-import org.eclipse.jpt.utility.internal.model.ChangeSupport;
-import org.eclipse.jpt.utility.internal.model.SingleAspectChangeSupport;
-import org.eclipse.jpt.utility.model.event.ListChangeEvent;
-import org.eclipse.jpt.utility.model.listener.ListChangeListener;
-import org.eclipse.jpt.utility.model.value.ListValueModel;
-
-/**
- * This abstract class provides the infrastructure needed to wrap
- * another list value model, "lazily" listen to it, and propagate
- * its change notifications.
- */
-public abstract class ListValueModelWrapper<E>
-	extends AbstractModel
-{
-
-	/** The wrapped list value model. */
-	protected final ListValueModel<? extends E> listHolder;
-
-	/** A listener that allows us to synch with changes to the wrapped list holder. */
-	protected final ListChangeListener listChangeListener;
-
-
-	// ********** constructors **********
-
-	/**
-	 * Construct a list value model with the specified wrapped
-	 * list value model.
-	 */
-	protected ListValueModelWrapper(ListValueModel<? extends E> listHolder) {
-		super();
-		if (listHolder == null) {
-			throw new NullPointerException();
-		}
-		this.listHolder = listHolder;
-		this.listChangeListener = this.buildListChangeListener();
-	}
-	
-
-	// ********** initialization **********
-
-	@Override
-	protected ChangeSupport buildChangeSupport() {
-		return new SingleAspectChangeSupport(this, ListChangeListener.class, ListValueModel.LIST_VALUES);
-	}
-
-	protected ListChangeListener buildListChangeListener() {
-		return new ListChangeListener() {
-			public void itemsAdded(ListChangeEvent event) {
-				ListValueModelWrapper.this.itemsAdded(event);
-			}
-			public void itemsRemoved(ListChangeEvent event) {
-				ListValueModelWrapper.this.itemsRemoved(event);
-			}
-			public void itemsReplaced(ListChangeEvent event) {
-				ListValueModelWrapper.this.itemsReplaced(event);
-			}
-			public void itemsMoved(ListChangeEvent event) {
-				ListValueModelWrapper.this.itemsMoved(event);
-			}
-			public void listCleared(ListChangeEvent event) {
-				ListValueModelWrapper.this.listCleared(event);
-			}
-			public void listChanged(ListChangeEvent event) {
-				ListValueModelWrapper.this.listChanged(event);
-			}
-			@Override
-			public String toString() {
-				return "list change listener";
-			}
-		};
-	}
-
-
-	// ********** extend change support **********
-
-	/**
-	 * Extend to start listening to the nested model if necessary.
-	 */
-	@Override
-	public synchronized void addListChangeListener(ListChangeListener listener) {
-		if (this.hasNoListChangeListeners(ListValueModel.LIST_VALUES)) {
-			this.engageModel();
-		}
-		super.addListChangeListener(listener);
-	}
-	
-	/**
-	 * Extend to start listening to the nested model if necessary.
-	 */
-	@Override
-	public synchronized void addListChangeListener(String listName, ListChangeListener listener) {
-		if (listName == ListValueModel.LIST_VALUES && this.hasNoListChangeListeners(ListValueModel.LIST_VALUES)) {
-			this.engageModel();
-		}
-		super.addListChangeListener(listName, listener);
-	}
-	
-	/**
-	 * Extend to stop listening to the nested model if necessary.
-	 */
-	@Override
-	public synchronized void removeListChangeListener(ListChangeListener listener) {
-		super.removeListChangeListener(listener);
-		if (this.hasNoListChangeListeners(ListValueModel.LIST_VALUES)) {
-			this.disengageModel();
-		}
-	}
-	
-	/**
-	 * Extend to stop listening to the nested model if necessary.
-	 */
-	@Override
-	public synchronized void removeListChangeListener(String listName, ListChangeListener listener) {
-		super.removeListChangeListener(listName, listener);
-		if (listName == ListValueModel.LIST_VALUES && this.hasNoListChangeListeners(ListValueModel.LIST_VALUES)) {
-			this.disengageModel();
-		}
-	}
-	
-
-	// ********** behavior **********
-
-	/**
-	 * Start listening to the list holder.
-	 */
-	protected void engageModel() {
-		this.listHolder.addListChangeListener(ListValueModel.LIST_VALUES, this.listChangeListener);
-	}
-
-	/**
-	 * Stop listening to the list holder.
-	 */
-	protected void disengageModel() {
-		this.listHolder.removeListChangeListener(ListValueModel.LIST_VALUES, this.listChangeListener);
-	}
-
-	@Override
-	public void toString(StringBuilder sb) {
-		sb.append(this.listHolder);
-	}
-
-	// minimize suppressed warnings
-	@SuppressWarnings("unchecked")
-	protected ListIterator<E> items(ListChangeEvent event) {
-		return (ListIterator<E>) event.items();
-	}
-
-	// minimize suppressed warnings
-	@SuppressWarnings("unchecked")
-	protected ListIterator<E> replacedItems(ListChangeEvent event) {
-		return (ListIterator<E>) event.replacedItems();
-	}
-
-
-	// ********** list change support **********
-
-	/**
-	 * Items were added to the wrapped list holder;
-	 * propagate the change notification appropriately.
-	 */
-	protected abstract void itemsAdded(ListChangeEvent event);
-
-	/**
-	 * Items were removed from the wrapped list holder;
-	 * propagate the change notification appropriately.
-	 */
-	protected abstract void itemsRemoved(ListChangeEvent event);
-
-	/**
-	 * Items were replaced in the wrapped list holder;
-	 * propagate the change notification appropriately.
-	 */
-	protected abstract void itemsReplaced(ListChangeEvent event);
-
-	/**
-	 * Items were moved in the wrapped list holder;
-	 * propagate the change notification appropriately.
-	 */
-	protected abstract void itemsMoved(ListChangeEvent event);
-
-	/**
-	 * The wrapped list holder was cleared;
-	 * propagate the change notification appropriately.
-	 */
-	protected abstract void listCleared(ListChangeEvent event);
-
-	/**
-	 * The value of the wrapped list holder has changed;
-	 * propagate the change notification appropriately.
-	 */
-	protected abstract void listChanged(ListChangeEvent event);
-
-}
diff --git a/jpa/plugins/org.eclipse.jpt.utility/src/org/eclipse/jpt/utility/internal/model/value/NullCollectionValueModel.java b/jpa/plugins/org.eclipse.jpt.utility/src/org/eclipse/jpt/utility/internal/model/value/NullCollectionValueModel.java
deleted file mode 100644
index db6447c..0000000
--- a/jpa/plugins/org.eclipse.jpt.utility/src/org/eclipse/jpt/utility/internal/model/value/NullCollectionValueModel.java
+++ /dev/null
@@ -1,58 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2008 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.utility.internal.model.value;
-
-import java.util.Iterator;
-import org.eclipse.jpt.utility.internal.ClassTools;
-import org.eclipse.jpt.utility.internal.iterators.EmptyIterator;
-import org.eclipse.jpt.utility.internal.model.AbstractModel;
-import org.eclipse.jpt.utility.model.value.CollectionValueModel;
-
-/**
- * A read-only collection value model for when you
- * don't need to support a collection. In particular, this
- * is useful for the leaf nodes of a tree that never have
- * children.
- * 
- * We don't use a singleton because we hold on to listeners.
- */
-public final class NullCollectionValueModel<E>
-	extends AbstractModel
-	implements CollectionValueModel<E>
-{
-	private static final long serialVersionUID = 1L;
-
-	/**
-	 * Default constructor.
-	 */
-	public NullCollectionValueModel() {
-		super();
-	}
-	
-
-	// ********** CollectionValueModel implementation **********
-
-	public int size() {
-		return 0;
-	}
-
-	public Iterator<E> iterator() {
-		return EmptyIterator.instance();
-	}
-
-
-	// ********** Object overrides **********
-
-    @Override
-	public String toString() {
-    	return ClassTools.shortClassNameForObject(this);
-	}
-
-}
diff --git a/jpa/plugins/org.eclipse.jpt.utility/src/org/eclipse/jpt/utility/internal/model/value/NullListValueModel.java b/jpa/plugins/org.eclipse.jpt.utility/src/org/eclipse/jpt/utility/internal/model/value/NullListValueModel.java
deleted file mode 100644
index 7bdb3ab..0000000
--- a/jpa/plugins/org.eclipse.jpt.utility/src/org/eclipse/jpt/utility/internal/model/value/NullListValueModel.java
+++ /dev/null
@@ -1,71 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2008 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.utility.internal.model.value;
-
-import java.util.Iterator;
-import java.util.ListIterator;
-import org.eclipse.jpt.utility.internal.ClassTools;
-import org.eclipse.jpt.utility.internal.iterators.EmptyIterator;
-import org.eclipse.jpt.utility.internal.iterators.EmptyListIterator;
-import org.eclipse.jpt.utility.internal.model.AbstractModel;
-import org.eclipse.jpt.utility.model.value.ListValueModel;
-
-/**
- * An empty list value model for when you don't
- * need to support a list.
- * 
- * We don't use a singleton because we hold on to listeners.
- */
-public final class NullListValueModel<E>
-	extends AbstractModel
-	implements ListValueModel<E>
-{
-	private static final Object[] EMPTY_ARRAY = new Object[0];
-	private static final long serialVersionUID = 1L;
-
-	/**
-	 * Default constructor.
-	 */
-	public NullListValueModel() {
-		super();
-	}
-
-
-	// ********** ListValueModel implementation **********
-
-	public Iterator<E> iterator() {
-		return EmptyIterator.instance();
-	}
-
-	public ListIterator<E> listIterator() {
-		return EmptyListIterator.instance();
-	}
-
-	public int size() {
-		return 0;
-	}
-
-	public E get(int index) {
-		throw new IndexOutOfBoundsException("Index: " + index + ", Size: 0");
-	}
-
-	public Object[] toArray() {
-		return EMPTY_ARRAY;
-	}
-
-
-	// ********** Object overrides **********
-
-	@Override
-	public String toString() {
-		return ClassTools.shortClassNameForObject(this);
-	}
-
-}
diff --git a/jpa/plugins/org.eclipse.jpt.utility/src/org/eclipse/jpt/utility/internal/model/value/NullPropertyValueModel.java b/jpa/plugins/org.eclipse.jpt.utility/src/org/eclipse/jpt/utility/internal/model/value/NullPropertyValueModel.java
deleted file mode 100644
index 12c9b67..0000000
--- a/jpa/plugins/org.eclipse.jpt.utility/src/org/eclipse/jpt/utility/internal/model/value/NullPropertyValueModel.java
+++ /dev/null
@@ -1,50 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2008 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.utility.internal.model.value;
-
-import org.eclipse.jpt.utility.internal.ClassTools;
-import org.eclipse.jpt.utility.internal.model.AbstractModel;
-import org.eclipse.jpt.utility.model.value.PropertyValueModel;
-
-/**
- * A property value model for when you
- * don't need to support a value.
- * 
- * We don't use a singleton because we hold on to listeners.
- */
-public class NullPropertyValueModel<T>
-	extends AbstractModel
-	implements PropertyValueModel<T>
-{
-	private static final long serialVersionUID = 1L;
-
-	/**
-	 * Default constructor.
-	 */
-	public NullPropertyValueModel() {
-		super();
-	}
-	
-
-	// ********** PropertyValueModel implementation **********
-
-	public T getValue() {
-		return null;
-	}
-
-
-	// ********** Object overrides **********
-
-    @Override
-	public String toString() {
-		return ClassTools.shortClassNameForObject(this);
-	}
-
-}
diff --git a/jpa/plugins/org.eclipse.jpt.utility/src/org/eclipse/jpt/utility/internal/model/value/NullTreeValueModel.java b/jpa/plugins/org.eclipse.jpt.utility/src/org/eclipse/jpt/utility/internal/model/value/NullTreeValueModel.java
deleted file mode 100644
index b035c29..0000000
--- a/jpa/plugins/org.eclipse.jpt.utility/src/org/eclipse/jpt/utility/internal/model/value/NullTreeValueModel.java
+++ /dev/null
@@ -1,52 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.utility.internal.model.value;
-
-import java.util.Iterator;
-import org.eclipse.jpt.utility.internal.ClassTools;
-import org.eclipse.jpt.utility.internal.iterators.EmptyIterator;
-import org.eclipse.jpt.utility.internal.model.AbstractModel;
-import org.eclipse.jpt.utility.model.value.TreeValueModel;
-
-/**
- * A tree value model for when you
- * don't need to support any nodes.
- * 
- * We don't use a singleton because we hold on to listeners.
- */
-public class NullTreeValueModel<E>
-	extends AbstractModel
-	implements TreeValueModel<E>
-{
-	private static final long serialVersionUID = 1L;
-
-	/**
-	 * Default constructor.
-	 */
-	public NullTreeValueModel() {
-		super();
-	}
-	
-
-	// ********** TreeValueModel implementation **********
-
-	public Iterator<E> nodes() {
-		return EmptyIterator.instance();
-	}
-
-
-	// ********** Object overrides **********
-
-    @Override
-	public String toString() {
-		return ClassTools.shortClassNameForObject(this);
-	}
-
-}
diff --git a/jpa/plugins/org.eclipse.jpt.utility/src/org/eclipse/jpt/utility/internal/model/value/PropertyAspectAdapter.java b/jpa/plugins/org.eclipse.jpt.utility/src/org/eclipse/jpt/utility/internal/model/value/PropertyAspectAdapter.java
deleted file mode 100644
index eb2b4f8..0000000
--- a/jpa/plugins/org.eclipse.jpt.utility/src/org/eclipse/jpt/utility/internal/model/value/PropertyAspectAdapter.java
+++ /dev/null
@@ -1,255 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2008 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.utility.internal.model.value;
-
-import java.util.Arrays;
-import java.util.Collection;
-import org.eclipse.jpt.utility.model.Model;
-import org.eclipse.jpt.utility.model.event.PropertyChangeEvent;
-import org.eclipse.jpt.utility.model.listener.ChangeListener;
-import org.eclipse.jpt.utility.model.listener.PropertyChangeListener;
-import org.eclipse.jpt.utility.model.value.PropertyValueModel;
-import org.eclipse.jpt.utility.model.value.WritablePropertyValueModel;
-
-/**
- * This AspectAdapter provides basic PropertyChange support.
- * This allows us to convert a set of one or more properties into
- * a single property, VALUE.
- * 
- * The typical subclass will override the following methods:
- * #buildValue_()
- *     at the very minimum, override this method to return the value of the
- *     subject's property (or "virtual" property); it does not need to be
- *     overridden if #buildValue() is overridden and its behavior changed
- * #setValue_(Object)
- *     override this method if the client code needs to *set* the value of
- *     the subject's property; oftentimes, though, the client code (e.g. UI)
- *     will need only to *get* the value; it does not need to be
- *     overridden if #setValue(Object) is overridden and its behavior changed
- * #buildValue()
- *     override this method only if returning a null value when the subject is null
- *     is unacceptable
- * #setValue(Object)
- *     override this method only if something must be done when the subject
- *     is null (e.g. throw an exception)
- */
-public abstract class PropertyAspectAdapter<S extends Model, T>
-	extends AspectAdapter<S>
-	implements WritablePropertyValueModel<T>
-{
-	/**
-	 * Cache the current value of the aspect so we
-	 * can pass an "old value" when we fire a property change event.
-	 * We need this because the value may be calculated and may
-	 * not be in the property change event fired by the subject,
-	 * especially when dealing with multiple aspects.
-	 */
-	protected T value;
-
-	/** The name of the subject's properties that we use for the value. */
-	protected final String[] propertyNames;
-		protected static final String[] EMPTY_PROPERTY_NAMES = new String[0];
-
-	/** A listener that listens to the appropriate properties of the subject. */
-	protected final PropertyChangeListener propertyChangeListener;
-
-
-	// ********** constructors **********
-
-	/**
-	 * Construct a PropertyAspectAdapter for the specified subject
-	 * and property.
-	 */
-	protected PropertyAspectAdapter(String propertyName, S subject) {
-		this(new String[] {propertyName}, subject);
-	}
-
-	/**
-	 * Construct a PropertyAspectAdapter for the specified subject
-	 * and properties.
-	 */
-	protected PropertyAspectAdapter(String[] propertyNames, S subject) {
-		this(new StaticPropertyValueModel<S>(subject), propertyNames);
-	}
-
-	/**
-	 * Construct a PropertyAspectAdapter for the specified subject holder
-	 * and properties.
-	 */
-	protected PropertyAspectAdapter(PropertyValueModel<? extends S> subjectHolder, String... propertyNames) {
-		super(subjectHolder);
-		this.propertyNames = propertyNames;
-		this.propertyChangeListener = this.buildPropertyChangeListener();
-		// our value is null when we are not listening to the subject
-		this.value = null;
-	}
-
-	/**
-	 * Construct a PropertyAspectAdapter for the specified subject holder
-	 * and properties.
-	 */
-	protected PropertyAspectAdapter(PropertyValueModel<? extends S> subjectHolder, Collection<String> propertyNames) {
-		this(subjectHolder, propertyNames.toArray(new String[propertyNames.size()]));
-	}
-
-	/**
-	 * Construct a PropertyAspectAdapter for an "unchanging" property in
-	 * the specified subject. This is useful for a property aspect that does not
-	 * change for a particular subject; but the subject will change, resulting in
-	 * a new property. (A TransformationPropertyValueModel could also be
-	 * used in this situation.)
-	 */
-	protected PropertyAspectAdapter(PropertyValueModel<? extends S> subjectHolder) {
-		this(subjectHolder, EMPTY_PROPERTY_NAMES);
-	}
-
-
-	// ********** initialization **********
-
-	/**
-	 * The subject's property has changed, notify the listeners.
-	 */
-	protected PropertyChangeListener buildPropertyChangeListener() {
-		// transform the subject's property change events into VALUE property change events
-		return new PropertyChangeListener() {
-			public void propertyChanged(PropertyChangeEvent event) {
-				PropertyAspectAdapter.this.propertyChanged();
-			}
-			@Override
-			public String toString() {
-				return "property change listener: " + Arrays.asList(PropertyAspectAdapter.this.propertyNames); //$NON-NLS-1$
-			}
-		};
-	}
-
-
-	// ********** PropertyValueModel implementation **********
-
-	/**
-	 * Return the value of the subject's property.
-	 */
-	@Override
-	public final T getValue() {
-		return this.value;
-	}
-
-
-	// ********** WritablePropertyValueModel implementation **********
-
-	/**
-	 * Set the value of the subject's property.
-	 */
-	public void setValue(T value) {
-		if (this.subject != null) {
-			this.setValue_(value);
-		}
-	}
-
-	/**
-	 * Set the value of the subject's property.
-	 * At this point we can be sure that the subject is not null.
-	 * @see #setValue(Object)
-	 */
-	protected void setValue_(@SuppressWarnings("unused") T value) {
-		throw new UnsupportedOperationException();
-	}
-
-
-	// ********** AspectAdapter implementation **********
-
-	@Override
-	protected Class<? extends ChangeListener> getListenerClass() {
-		return PropertyChangeListener.class;
-	}
-
-	@Override
-	protected String getListenerAspectName() {
-		return VALUE;
-	}
-
-    @Override
-	protected boolean hasListeners() {
-		return this.hasAnyPropertyChangeListeners(VALUE);
-	}
-
-    @Override
-	protected void fireAspectChange(Object oldValue, Object newValue) {
-		this.firePropertyChanged(VALUE, oldValue, newValue);
-	}
-
-    @Override
-	protected void engageSubject() {
-		super.engageSubject();
-		// synch our value *after* we start listening to the subject,
-		// since its value might change when a listener is added
-		this.value = this.buildValue();
-	}
-
-    @Override
-	protected void engageSubject_() {
-    	for (String propertyName : this.propertyNames) {
-			((Model) this.subject).addPropertyChangeListener(propertyName, this.propertyChangeListener);
-		}
-	}
-
-    @Override
-	protected void disengageSubject() {
-		super.disengageSubject();
-		// clear out our value when we are not listening to the subject
-		this.value = null;
-	}
-
-    @Override
-	protected void disengageSubject_() {
-    	for (String propertyName : this.propertyNames) {
-			((Model) this.subject).removePropertyChangeListener(propertyName, this.propertyChangeListener);
-		}
-	}
-
-
-	// ********** AbstractModel implementation **********
-
-	@Override
-	public void toString(StringBuilder sb) {
-		for (int i = 0; i < this.propertyNames.length; i++) {
-			if (i != 0) {
-				sb.append(", "); //$NON-NLS-1$
-			}
-			sb.append(this.propertyNames[i]);
-		}
-	}
-
-
-	// ********** behavior **********
-
-	/**
-	 * Return the aspect's value.
-	 * At this point the subject may be null.
-	 */
-	protected T buildValue() {
-		return (this.subject == null) ? null : this.buildValue_();
-	}
-
-	/**
-	 * Return the value of the subject's property.
-	 * At this point we can be sure that the subject is not null.
-	 * @see #buildValue()
-	 */
-	protected T buildValue_() {
-		throw new UnsupportedOperationException();
-	}
-
-	protected void propertyChanged() {
-		T old = this.value;
-		this.value = this.buildValue();
-		this.fireAspectChange(old, this.value);
-	}
-
-}
diff --git a/jpa/plugins/org.eclipse.jpt.utility/src/org/eclipse/jpt/utility/internal/model/value/PropertyCollectionValueModelAdapter.java b/jpa/plugins/org.eclipse.jpt.utility/src/org/eclipse/jpt/utility/internal/model/value/PropertyCollectionValueModelAdapter.java
deleted file mode 100644
index 5b09ad1..0000000
--- a/jpa/plugins/org.eclipse.jpt.utility/src/org/eclipse/jpt/utility/internal/model/value/PropertyCollectionValueModelAdapter.java
+++ /dev/null
@@ -1,194 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2008 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.utility.internal.model.value;
-
-import java.util.Iterator;
-import org.eclipse.jpt.utility.internal.iterators.EmptyIterator;
-import org.eclipse.jpt.utility.internal.iterators.SingleElementIterator;
-import org.eclipse.jpt.utility.internal.model.AbstractModel;
-import org.eclipse.jpt.utility.internal.model.ChangeSupport;
-import org.eclipse.jpt.utility.internal.model.SingleAspectChangeSupport;
-import org.eclipse.jpt.utility.model.event.PropertyChangeEvent;
-import org.eclipse.jpt.utility.model.listener.CollectionChangeListener;
-import org.eclipse.jpt.utility.model.listener.PropertyChangeListener;
-import org.eclipse.jpt.utility.model.value.CollectionValueModel;
-import org.eclipse.jpt.utility.model.value.PropertyValueModel;
-
-/**
- * An adapter that allows us to make a PropertyValueModel behave like
- * a read-only, single-element CollectionValueModel, sorta.
- * 
- * If the property's value is null, an empty iterator is returned
- * (i.e. you can't have a collection with a null element).
- */
-public class PropertyCollectionValueModelAdapter<E>
-	extends AbstractModel
-	implements CollectionValueModel<E>
-{
-	/** The wrapped property value model. */
-	protected final PropertyValueModel<? extends E> valueHolder;
-
-	/** A listener that forwards any events fired by the value holder. */
-	protected final PropertyChangeListener propertyChangeListener;
-
-	/** Cache the value. */
-	protected E value;
-
-
-	// ********** constructors/initialization **********
-
-	/**
-	 * Wrap the specified ListValueModel.
-	 */
-	public PropertyCollectionValueModelAdapter(PropertyValueModel<? extends E> valueHolder) {
-		super();
-		if (valueHolder == null) {
-			throw new NullPointerException();
-		}
-		this.valueHolder = valueHolder;
-		this.propertyChangeListener = this.buildPropertyChangeListener();
-		// postpone building the value and listening to the underlying value
-		// until we have listeners ourselves...
-	}
-
-	@Override
-	protected ChangeSupport buildChangeSupport() {
-		return new SingleAspectChangeSupport(this, CollectionChangeListener.class, VALUES);
-	}
-
-	/**
-	 * The wrapped value has changed, forward an equivalent
-	 * collection change event to our listeners.
-	 */
-	protected PropertyChangeListener buildPropertyChangeListener() {
-		return new PropertyChangeListener() {
-			@SuppressWarnings("unchecked")
-			public void propertyChanged(PropertyChangeEvent event) {
-				PropertyCollectionValueModelAdapter.this.valueChanged((E) event.getNewValue());
-			}
-			@Override
-			public String toString() {
-				return "property change listener";
-			}
-		};
-	}
-
-
-	// ********** CollectionValueModel implementation **********
-
-	public Iterator<E> iterator() {
-		return (this.value == null) ?
-					EmptyIterator.<E>instance()
-				:
-					new SingleElementIterator<E>(this.value);
-	}
-
-	public int size() {
-		return (this.value == null) ? 0 : 1;
-	}
-
-
-	// ********** extend change support **********
-
-	/**
-	 * Override to start listening to the value holder if necessary.
-	 */
-	@Override
-	public void addCollectionChangeListener(CollectionChangeListener listener) {
-		if (this.hasNoListeners()) {
-			this.engageModel();
-		}
-		super.addCollectionChangeListener(listener);
-	}
-
-	/**
-	 * Override to start listening to the value holder if necessary.
-	 */
-	@Override
-	public void addCollectionChangeListener(String collectionName, CollectionChangeListener listener) {
-		if (collectionName == VALUES && this.hasNoListeners()) {
-			this.engageModel();
-		}
-		super.addCollectionChangeListener(collectionName, listener);
-	}
-
-	/**
-	 * Override to stop listening to the value holder if appropriate.
-	 */
-	@Override
-	public void removeCollectionChangeListener(CollectionChangeListener listener) {
-		super.removeCollectionChangeListener(listener);
-		if (this.hasNoListeners()) {
-			this.disengageModel();
-		}
-	}
-
-	/**
-	 * Override to stop listening to the value holder if appropriate.
-	 */
-	@Override
-	public void removeCollectionChangeListener(String collectionName, CollectionChangeListener listener) {
-		super.removeCollectionChangeListener(collectionName, listener);
-		if (collectionName == VALUES && this.hasNoListeners()) {
-			this.disengageModel();
-		}
-	}
-
-
-	// ********** queries **********
-
-	protected boolean hasListeners() {
-		return this.hasAnyCollectionChangeListeners(VALUES);
-	}
-
-	protected boolean hasNoListeners() {
-		return ! this.hasListeners();
-	}
-
-
-	// ********** behavior **********
-
-	protected void engageModel() {
-		this.valueHolder.addPropertyChangeListener(PropertyValueModel.VALUE, this.propertyChangeListener);
-		// synch our value *after* we start listening to the value holder,
-		// since its value might change when a listener is added
-		this.value = this.valueHolder.getValue();
-	}
-
-	protected void disengageModel() {
-		this.valueHolder.removePropertyChangeListener(PropertyValueModel.VALUE, this.propertyChangeListener);
-		// clear out the value when we are not listening to the value holder
-		this.value = null;
-	}
-
-	/**
-	 * synchronize our internal value with the wrapped value
-	 * and fire the appropriate events
-	 */
-	protected void valueChanged(E newValue) {
-		// put in "empty" check so we don't fire events unnecessarily
-		if (this.value != null) {
-			E oldValue = this.value;
-			this.value = null;
-			this.fireItemRemoved(VALUES, oldValue);
-		}
-		this.value = newValue;
-		// put in "empty" check so we don't fire events unnecessarily
-		if (this.value != null) {
-			this.fireItemAdded(VALUES, this.value);
-		}
-	}
-
-	@Override
-	public void toString(StringBuilder sb) {
-		sb.append(this.valueHolder);
-	}
-
-}
diff --git a/jpa/plugins/org.eclipse.jpt.utility/src/org/eclipse/jpt/utility/internal/model/value/PropertyListValueModelAdapter.java b/jpa/plugins/org.eclipse.jpt.utility/src/org/eclipse/jpt/utility/internal/model/value/PropertyListValueModelAdapter.java
deleted file mode 100644
index 96afe29..0000000
--- a/jpa/plugins/org.eclipse.jpt.utility/src/org/eclipse/jpt/utility/internal/model/value/PropertyListValueModelAdapter.java
+++ /dev/null
@@ -1,219 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.utility.internal.model.value;
-
-import java.util.Iterator;
-import java.util.ListIterator;
-import org.eclipse.jpt.utility.internal.iterators.EmptyListIterator;
-import org.eclipse.jpt.utility.internal.iterators.SingleElementListIterator;
-import org.eclipse.jpt.utility.internal.model.AbstractModel;
-import org.eclipse.jpt.utility.internal.model.ChangeSupport;
-import org.eclipse.jpt.utility.internal.model.SingleAspectChangeSupport;
-import org.eclipse.jpt.utility.model.event.PropertyChangeEvent;
-import org.eclipse.jpt.utility.model.listener.ListChangeListener;
-import org.eclipse.jpt.utility.model.listener.PropertyChangeListener;
-import org.eclipse.jpt.utility.model.value.ListValueModel;
-import org.eclipse.jpt.utility.model.value.PropertyValueModel;
-
-/**
- * An adapter that allows us to make a PropertyValueModel behave like
- * a read-only, single-element ListValueModel, sorta.
- * 
- * If the property's value is null, an empty iterator is returned
- * (i.e. you can't have a list with a null element).
- */
-public class PropertyListValueModelAdapter<E>
-	extends AbstractModel
-	implements ListValueModel<E>
-{
-
-	/** The wrapped property value model. */
-	protected final PropertyValueModel<? extends E> valueHolder;
-
-	/** A listener that forwards any events fired by the value holder. */
-	protected final PropertyChangeListener propertyChangeListener;
-
-	/** Cache the value. */
-	protected E value;
-
-
-	// ********** constructors/initialization **********
-
-	/**
-	 * Wrap the specified property value model.
-	 */
-	public PropertyListValueModelAdapter(PropertyValueModel<? extends E> valueHolder) {
-		super();
-		if (valueHolder == null) {
-			throw new NullPointerException();
-		}
-		this.valueHolder = valueHolder;
-		this.propertyChangeListener = this.buildPropertyChangeListener();
-		// postpone building the value and listening to the underlying value
-		// until we have listeners ourselves...
-	}
-
-	@Override
-	protected ChangeSupport buildChangeSupport() {
-		return new SingleAspectChangeSupport(this, ListChangeListener.class, LIST_VALUES);
-	}
-
-	/**
-	 * The wrapped value has changed, forward an equivalent
-	 * list change event to our listeners.
-	 */
-	protected PropertyChangeListener buildPropertyChangeListener() {
-		return new PropertyChangeListener() {
-			@SuppressWarnings("unchecked")
-			public void propertyChanged(PropertyChangeEvent event) {
-				PropertyListValueModelAdapter.this.valueChanged((E) event.getNewValue());
-			}
-			@Override
-			public String toString() {
-				return "property change listener";
-			}
-		};
-	}
-
-
-	// ********** ListValueModel implementation **********
-
-	public Iterator<E> iterator() {
-		return this.listIterator();
-	}
-
-	public ListIterator<E> listIterator() {
-		return (this.value == null) ?
-					EmptyListIterator.<E>instance()
-				:
-					new SingleElementListIterator<E>(this.value);
-	}
-
-	public int size() {
-		return (this.value == null) ? 0 : 1;
-	}
-
-	public E get(int index) {
-		if (this.value == null) {
-			throw this.ioobe(index, 0);
-		}
-		if (index > 0) {
-			throw this.ioobe(index, 1);
-		}
-		return this.value;
-	}
-
-	protected static final Object[] EMPTY_OBJECT_ARRAY = new Object[0];
-	public Object[] toArray() {
-		return (this.value == null) ? EMPTY_OBJECT_ARRAY : new Object[] {this.value};
-	}
-
-
-	// ********** extend change support **********
-
-	/**
-	 * Override to start listening to the value holder if necessary.
-	 */
-	@Override
-	public void addListChangeListener(ListChangeListener listener) {
-		if (this.hasNoListeners()) {
-			this.engageModel();
-		}
-		super.addListChangeListener(listener);
-	}
-
-	/**
-	 * Override to start listening to the value holder if necessary.
-	 */
-	@Override
-	public void addListChangeListener(String listName, ListChangeListener listener) {
-		if (listName == LIST_VALUES && this.hasNoListeners()) {
-			this.engageModel();
-		}
-		super.addListChangeListener(listName, listener);
-	}
-
-	/**
-	 * Override to stop listening to the value holder if appropriate.
-	 */
-	@Override
-	public void removeListChangeListener(ListChangeListener listener) {
-		super.removeListChangeListener(listener);
-		if (this.hasNoListeners()) {
-			this.disengageModel();
-		}
-	}
-
-	/**
-	 * Override to stop listening to the value holder if appropriate.
-	 */
-	@Override
-	public void removeListChangeListener(String listName, ListChangeListener listener) {
-		super.removeListChangeListener(listName, listener);
-		if (listName == LIST_VALUES && this.hasNoListeners()) {
-			this.disengageModel();
-		}
-	}
-
-
-	// ********** queries **********
-
-	protected boolean hasListeners() {
-		return this.hasAnyListChangeListeners(LIST_VALUES);
-	}
-
-	protected boolean hasNoListeners() {
-		return ! this.hasListeners();
-	}
-
-
-	// ********** behavior **********
-
-	protected IndexOutOfBoundsException ioobe(int index, int size) {
-		return new IndexOutOfBoundsException("Index: " + index + ", Size: " + size);
-	}
-
-	protected void engageModel() {
-		this.valueHolder.addPropertyChangeListener(PropertyValueModel.VALUE, this.propertyChangeListener);
-		// synch our value *after* we start listening to the value holder,
-		// since its value might change when a listener is added
-		this.value = this.valueHolder.getValue();
-	}
-
-	protected void disengageModel() {
-		this.valueHolder.removePropertyChangeListener(PropertyValueModel.VALUE, this.propertyChangeListener);
-		// clear out the value when we are not listening to the value holder
-		this.value = null;
-	}
-
-	/**
-	 * synchronize our internal value with the wrapped value
-	 * and fire the appropriate events
-	 */
-	protected void valueChanged(E newValue) {
-		E oldValue = this.value;
-		this.value = newValue;
-		if (oldValue == null) {
-			this.fireItemAdded(LIST_VALUES, 0, newValue);
-		} else {
-			if (newValue == null) {
-				this.fireItemRemoved(LIST_VALUES, 0, oldValue);
-			} else {
-				this.fireItemReplaced(LIST_VALUES, 0, newValue, oldValue);
-			}
-		}
-	}
-
-	@Override
-	public void toString(StringBuilder sb) {
-		sb.append(this.valueHolder);
-	}
-
-}
diff --git a/jpa/plugins/org.eclipse.jpt.utility/src/org/eclipse/jpt/utility/internal/model/value/PropertyValueModelWrapper.java b/jpa/plugins/org.eclipse.jpt.utility/src/org/eclipse/jpt/utility/internal/model/value/PropertyValueModelWrapper.java
deleted file mode 100644
index c5195af..0000000
--- a/jpa/plugins/org.eclipse.jpt.utility/src/org/eclipse/jpt/utility/internal/model/value/PropertyValueModelWrapper.java
+++ /dev/null
@@ -1,145 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2008 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.utility.internal.model.value;
-
-import org.eclipse.jpt.utility.internal.model.AbstractModel;
-import org.eclipse.jpt.utility.internal.model.ChangeSupport;
-import org.eclipse.jpt.utility.internal.model.SingleAspectChangeSupport;
-import org.eclipse.jpt.utility.model.event.PropertyChangeEvent;
-import org.eclipse.jpt.utility.model.listener.PropertyChangeListener;
-import org.eclipse.jpt.utility.model.value.PropertyValueModel;
-
-/**
- * This abstract class provides the infrastructure needed to wrap
- * another property value model, "lazily" listen to it, and propagate
- * its change notifications.
- */
-public abstract class PropertyValueModelWrapper<T>
-	extends AbstractModel
-{
-
-	/** The wrapped property value model. */
-	protected final PropertyValueModel<? extends T> valueHolder;
-
-	/** A listener that allows us to synch with changes to the wrapped value holder. */
-	protected final PropertyChangeListener valueChangeListener;
-
-
-	// ********** constructors/initialization **********
-
-	/**
-	 * Construct a property value model with the specified wrapped
-	 * property value model. The value holder is required.
-	 */
-	protected PropertyValueModelWrapper(PropertyValueModel<? extends T> valueHolder) {
-		super();
-		if (valueHolder == null) {
-			throw new NullPointerException();
-		}
-		this.valueHolder = valueHolder;
-		this.valueChangeListener = this.buildValueChangeListener();
-	}
-	
-	@Override
-	protected ChangeSupport buildChangeSupport() {
-		return new SingleAspectChangeSupport(this, PropertyChangeListener.class, PropertyValueModel.VALUE);
-	}
-
-	protected PropertyChangeListener buildValueChangeListener() {
-		return new PropertyChangeListener() {
-			public void propertyChanged(PropertyChangeEvent event) {
-				PropertyValueModelWrapper.this.valueChanged(event);
-			}
-		    @Override
-			public String toString() {
-				return "value change listener"; //$NON-NLS-1$
-			}
-		};
-	}
-	
-
-	// ********** extend change support **********
-
-	/**
-	 * Extend to start listening to the nested model if necessary.
-	 */
-    @Override
-	public synchronized void addPropertyChangeListener(PropertyChangeListener listener) {
-		if (this.hasNoPropertyChangeListeners(PropertyValueModel.VALUE)) {
-			this.engageValueHolder();
-		}
-		super.addPropertyChangeListener(listener);
-	}
-	
-	/**
-	 * Extend to start listening to the nested model if necessary.
-	 */
-    @Override
-	public synchronized void addPropertyChangeListener(String propertyName, PropertyChangeListener listener) {
-		if (propertyName == PropertyValueModel.VALUE && this.hasNoPropertyChangeListeners(PropertyValueModel.VALUE)) {
-			this.engageValueHolder();
-		}
-		super.addPropertyChangeListener(propertyName, listener);
-	}
-	
-	/**
-	 * Extend to stop listening to the nested model if necessary.
-	 */
-    @Override
-	public synchronized void removePropertyChangeListener(PropertyChangeListener listener) {
-		super.removePropertyChangeListener(listener);
-		if (this.hasNoPropertyChangeListeners(PropertyValueModel.VALUE)) {
-			this.disengageValueHolder();
-		}
-	}
-	
-	/**
-	 * Extend to stop listening to the nested model if necessary.
-	 */
-    @Override
-	public synchronized void removePropertyChangeListener(String propertyName, PropertyChangeListener listener) {
-		super.removePropertyChangeListener(propertyName, listener);
-		if (propertyName == PropertyValueModel.VALUE && this.hasNoPropertyChangeListeners(PropertyValueModel.VALUE)) {
-			this.disengageValueHolder();
-		}
-	}
-	
-
-	// ********** behavior **********
-	
-	/**
-	 * Begin listening to the value holder.
-	 */
-	protected void engageValueHolder() {
-		this.valueHolder.addPropertyChangeListener(PropertyValueModel.VALUE, this.valueChangeListener);
-	}
-	
-	/**
-	 * Stop listening to the value holder.
-	 */
-	protected void disengageValueHolder() {
-		this.valueHolder.removePropertyChangeListener(PropertyValueModel.VALUE, this.valueChangeListener);
-	}
-	
-	@Override
-	public void toString(StringBuilder sb) {
-		sb.append(this.valueHolder);
-	}
-
-
-	// ********** property change support **********
-
-	/**
-	 * The value of the wrapped value holder has changed;
-	 * propagate the change notification appropriately.
-	 */
-	protected abstract void valueChanged(PropertyChangeEvent event);
-
-}
diff --git a/jpa/plugins/org.eclipse.jpt.utility/src/org/eclipse/jpt/utility/internal/model/value/ReadOnlyWritablePropertyValueModelWrapper.java b/jpa/plugins/org.eclipse.jpt.utility/src/org/eclipse/jpt/utility/internal/model/value/ReadOnlyWritablePropertyValueModelWrapper.java
deleted file mode 100644
index 2222625..0000000
--- a/jpa/plugins/org.eclipse.jpt.utility/src/org/eclipse/jpt/utility/internal/model/value/ReadOnlyWritablePropertyValueModelWrapper.java
+++ /dev/null
@@ -1,44 +0,0 @@
-/*******************************************************************************
- *  Copyright (c) 2009  Oracle. 
- *  All rights reserved.  This program and the accompanying materials are 
- *  made available under the terms of the Eclipse Public License v1.0 which 
- *  accompanies this distribution, and is available at 
- *  http://www.eclipse.org/legal/epl-v10.html
- *  
- *  Contributors: 
- *  	Oracle - initial API and implementation
- *******************************************************************************/
-package org.eclipse.jpt.utility.internal.model.value;
-
-import org.eclipse.jpt.utility.model.event.PropertyChangeEvent;
-import org.eclipse.jpt.utility.model.value.PropertyValueModel;
-import org.eclipse.jpt.utility.model.value.WritablePropertyValueModel;
-
-/**
- * A simple implementation of {@link WritablePropertyValueModel} that actually
- * ... <i>isn't</i> ... writable.  It can however be used in places that require a 
- * {@link WritablePropertyValueModel} and where the developer is sure that no 
- * attempt will be made to write to it.
- */
-public class ReadOnlyWritablePropertyValueModelWrapper<T>
-	extends PropertyValueModelWrapper<T>
-	implements WritablePropertyValueModel<T>
-{
-	public ReadOnlyWritablePropertyValueModelWrapper(PropertyValueModel<? extends T> valueHolder) {
-		super(valueHolder);
-	}
-	
-	
-	public T getValue() {
-		return this.valueHolder.getValue();
-	}
-	
-	public void setValue(T value) {
-		throw new UnsupportedOperationException("setValue");
-	}
-	
-	@Override
-	protected void valueChanged(PropertyChangeEvent event) {
-		firePropertyChanged(event.cloneWithSource(this));
-	}
-}
diff --git a/jpa/plugins/org.eclipse.jpt.utility/src/org/eclipse/jpt/utility/internal/model/value/SimpleCollectionValueModel.java b/jpa/plugins/org.eclipse.jpt.utility/src/org/eclipse/jpt/utility/internal/model/value/SimpleCollectionValueModel.java
deleted file mode 100644
index e61c511..0000000
--- a/jpa/plugins/org.eclipse.jpt.utility/src/org/eclipse/jpt/utility/internal/model/value/SimpleCollectionValueModel.java
+++ /dev/null
@@ -1,183 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2008 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.utility.internal.model.value;
-
-import java.util.Collection;
-import java.util.Iterator;
-import org.eclipse.jpt.utility.internal.CollectionTools;
-import org.eclipse.jpt.utility.internal.HashBag;
-import org.eclipse.jpt.utility.internal.model.AbstractModel;
-import org.eclipse.jpt.utility.internal.model.ChangeSupport;
-import org.eclipse.jpt.utility.internal.model.SingleAspectChangeSupport;
-import org.eclipse.jpt.utility.model.listener.CollectionChangeListener;
-import org.eclipse.jpt.utility.model.value.CollectionValueModel;
-
-/**
- * Implementation of CollectionValueModel and Collection that simply holds a
- * collection and notifies listeners of any changes.
- */
-public class SimpleCollectionValueModel<E>
-	extends AbstractModel
-	implements CollectionValueModel<E>, Collection<E>
-{
-	/** The collection. */
-	protected Collection<E> collection;
-
-
-	// ********** constructors **********
-
-	/**
-	 * Construct a CollectionValueModel for the specified collection.
-	 */
-	public SimpleCollectionValueModel(Collection<E> collection) {
-		super();
-		if (collection == null) {
-			throw new NullPointerException();
-		}
-		this.collection = collection;
-	}
-
-	/**
-	 * Construct a CollectionValueModel with an empty initial collection.
-	 */
-	public SimpleCollectionValueModel() {
-		this(new HashBag<E>());
-	}
-
-	@Override
-	protected ChangeSupport buildChangeSupport() {
-		return new SingleAspectChangeSupport(this, CollectionChangeListener.class, VALUES);
-	}
-
-
-	// ********** CollectionValueModel implementation **********
-
-	public Iterator<E> iterator() {
-		return new LocalIterator<E>(this.collection.iterator());
-	}
-
-	public int size() {
-		return this.collection.size();
-	}
-
-
-	// ********** Collection implementation **********
-
-	public boolean isEmpty() {
-		return this.collection.isEmpty();
-	}
-
-	public boolean contains(Object o) {
-		return this.collection.contains(o);
-	}
-
-	public Object[] toArray() {
-		return this.collection.toArray();
-	}
-
-	public <T extends Object> T[] toArray(T[] a) {
-		return this.collection.toArray(a);
-	}
-
-	public boolean add(E o) {
-		return this.addItemToCollection(o, this.collection, VALUES);
-	}
-
-	public boolean remove(Object o) {
-		return this.removeItemFromCollection(o, this.collection, VALUES);
-	}
-
-	public boolean containsAll(Collection<?> c) {
-		return this.collection.containsAll(c);
-	}
-
-	public boolean addAll(Collection<? extends E> c) {
-		return this.addItemsToCollection(c, this.collection, VALUES);
-	}
-
-	public boolean removeAll(Collection<?> c) {
-		return this.removeItemsFromCollection(c, this.collection, VALUES);
-	}
-
-	public boolean retainAll(Collection<?> c) {
-		return this.retainItemsInCollection(c, this.collection, VALUES);
-	}
-
-	public void clear() {
-		this.clearCollection(this.collection, VALUES);
-	}
-
-	@Override
-	public boolean equals(Object o) {
-		if (o == this) {
-			return true;
-		}
-		if ((o instanceof Collection) && (o instanceof CollectionValueModel)) {
-			Collection<E> c1 = CollectionTools.collection(this.collection);
-			@SuppressWarnings("unchecked")
-			Collection<E> c2 = CollectionTools.collection(((Collection<E>) o).iterator());
-			return c1.equals(c2);
-		}
-		return false;
-	}
-
-	@Override
-	public int hashCode() {
-		return CollectionTools.collection(this.collection).hashCode();
-	}
-
-
-	// ********** additional behavior **********
-
-	/**
-	 * Allow the collection to be replaced.
-	 */
-	public void setCollection(Collection<E> collection) {
-		if (collection == null) {
-			throw new NullPointerException();
-		}
-		this.collection = collection;
-		this.fireCollectionChanged(VALUES);
-	}
-
-	@Override
-	public void toString(StringBuilder sb) {
-		sb.append(this.collection);
-	}
-
-
-	// ********** iterator **********
-
-	private class LocalIterator<T> implements Iterator<T> {
-		private final Iterator<T> iterator;
-		private T next;
-
-		LocalIterator(Iterator<T> iterator) {
-			super();
-			this.iterator = iterator;
-		}
-
-		public boolean hasNext() {
-			return this.iterator.hasNext();
-		}
-
-		public T next() {
-			return this.next = this.iterator.next();
-		}
-
-		@SuppressWarnings("synthetic-access")
-		public void remove() {
-			this.iterator.remove();
-			SimpleCollectionValueModel.this.fireItemRemoved(VALUES, this.next);
-		}
-
-	}
-
-}
diff --git a/jpa/plugins/org.eclipse.jpt.utility/src/org/eclipse/jpt/utility/internal/model/value/SimpleListValueModel.java b/jpa/plugins/org.eclipse.jpt.utility/src/org/eclipse/jpt/utility/internal/model/value/SimpleListValueModel.java
deleted file mode 100644
index e6aca61..0000000
--- a/jpa/plugins/org.eclipse.jpt.utility/src/org/eclipse/jpt/utility/internal/model/value/SimpleListValueModel.java
+++ /dev/null
@@ -1,316 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2008 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.utility.internal.model.value;
-
-import java.util.ArrayList;
-import java.util.Collection;
-import java.util.Iterator;
-import java.util.List;
-import java.util.ListIterator;
-import org.eclipse.jpt.utility.internal.CollectionTools;
-import org.eclipse.jpt.utility.internal.model.AbstractModel;
-import org.eclipse.jpt.utility.internal.model.ChangeSupport;
-import org.eclipse.jpt.utility.internal.model.SingleAspectChangeSupport;
-import org.eclipse.jpt.utility.model.listener.ListChangeListener;
-import org.eclipse.jpt.utility.model.value.ListValueModel;
-
-/**
- * Implementation of ListValueModel and List that simply holds a
- * collection and notifies listeners of any changes.
- */
-public class SimpleListValueModel<E>
-	extends AbstractModel
-	implements ListValueModel<E>, List<E>
-{
-	/** The list. */
-	protected List<E> list;
-
-
-	// ********** constructors **********
-
-	/**
-	 * Construct a ListValueModel for the specified list.
-	 */
-	public SimpleListValueModel(List<E> list) {
-		super();
-		if (list == null) {
-			throw new NullPointerException();
-		}
-		this.list = list;
-	}
-
-	/**
-	 * Construct a ListValueModel with an empty initial list.
-	 */
-	public SimpleListValueModel() {
-		this(new ArrayList<E>());
-	}
-
-	@Override
-	protected ChangeSupport buildChangeSupport() {
-		return new SingleAspectChangeSupport(this, ListChangeListener.class, LIST_VALUES);
-	}
-
-
-	// ********** ListValueModel implementation **********
-
-	public Iterator<E> iterator() {
-		return new LocalIterator<E>(this.list.iterator());
-	}
-
-	public ListIterator<E> listIterator() {
-		return new LocalListIterator<E>(this.list.listIterator());
-	}
-
-	public int size() {
-		return this.list.size();
-	}
-
-	public E get(int index) {
-		return this.list.get(index);
-	}
-
-
-	// ********** List implementation **********
-
-	public boolean isEmpty() {
-		return this.list.isEmpty();
-	}
-
-	public boolean contains(Object o) {
-		return this.list.contains(o);
-	}
-
-	public Object[] toArray() {
-		return this.list.toArray();
-	}
-
-	public <T extends Object> T[] toArray(T[] a) {
-		return this.list.toArray(a);
-	}
-
-	public boolean add(E o) {
-		return this.addItemToList(o, this.list, LIST_VALUES);
-	}
-
-	public boolean remove(Object o) {
-		return this.removeItemFromList(o, this.list, LIST_VALUES);
-	}
-
-	public boolean containsAll(Collection<?> c) {
-		return this.list.containsAll(c);
-	}
-
-	public boolean addAll(Collection<? extends E> c) {
-		return this.addItemsToList(c, this.list, LIST_VALUES);
-	}
-
-	public boolean addAll(int index, Collection<? extends E> c) {
-		return this.addItemsToList(index, c, this.list, LIST_VALUES);
-	}
-
-	public boolean removeAll(Collection<?> c) {
-		return this.removeItemsFromList(c, this.list, LIST_VALUES);
-	}
-
-	public boolean retainAll(Collection<?> c) {
-		return this.retainItemsInList(c, this.list, LIST_VALUES);
-	}
-
-	public void clear() {
-		this.clearList(this.list, LIST_VALUES);
-	}
-
-	@Override
-	public boolean equals(Object o) {
-		if (o == this) {
-			return true;
-		}
-		if ((o instanceof List) && (o instanceof ListValueModel)) {
-			List<E> l1 = CollectionTools.list(this.list);
-			@SuppressWarnings("unchecked")
-			List<E> l2 = CollectionTools.list(((List<E>) o).iterator());
-			return l1.equals(l2);
-		}
-		return false;
-	}
-
-	@Override
-	public int hashCode() {
-		return this.list.hashCode();
-	}
-
-	public E set(int index, E element) {
-		return this.setItemInList(index, element, this.list, LIST_VALUES);
-	}
-
-	public void add(int index, E element) {
-		this.addItemToList(index, element, this.list, LIST_VALUES);
-	}
-
-	public E remove(int index) {
-		return this.removeItemFromList(index, this.list, LIST_VALUES);
-	}
-
-	public int indexOf(Object o) {
-		return this.list.indexOf(o);
-	}
-
-	public int lastIndexOf(Object o) {
-		return this.list.lastIndexOf(o);
-	}
-
-	public ListIterator<E> listIterator(int index) {
-		return new LocalListIterator<E>(this.list.listIterator(index));
-	}
-
-	public List<E> subList(int fromIndex, int toIndex) {
-		// TODO hmmm  ~bjv
-		throw new UnsupportedOperationException();
-	}
-
-
-	// ********** additional behavior **********
-
-	/**
-	 * Allow the list to be replaced.
-	 */
-	public void setList(List<E> list) {
-		if (list == null) {
-			throw new NullPointerException();
-		}
-		this.list = list;
-		this.fireListChanged(LIST_VALUES);
-	}
-
-	/**
-	 * Move a single element.
-	 */
-	public void move(int targetIndex, int sourceIndex) {
-		this.moveItemInList(targetIndex, sourceIndex, this.list, LIST_VALUES);
-	}
-
-	/**
-	 * Move a sub-list of elements.
-	 */
-	public void move(int targetIndex, int sourceIndex, int length) {
-		this.moveItemsInList(targetIndex, sourceIndex, length, this.list, LIST_VALUES);
-	}
-
-	/**
-	 * Remove a range of elements.
-	 */
-	public void remove(int index, int length) {
-		this.removeItemsFromList(index, length, this.list, LIST_VALUES);
-	}
-
-	/**
-	 * Set a range of elements.
-	 */
-	public void set(int index, List<E> elements) {
-		this.setItemsInList(index, elements, this.list, LIST_VALUES);
-	}
-
-	@Override
-	public void toString(StringBuilder sb) {
-		sb.append(this.list);
-	}
-
-
-	// ********** iterators **********
-
-	private class LocalIterator<T> implements Iterator<T> {
-		private final Iterator<T> iterator;
-		private int index = -1;
-		private T next;
-
-		LocalIterator(Iterator<T> iterator) {
-			super();
-			this.iterator = iterator;
-		}
-
-		public boolean hasNext() {
-			return this.iterator.hasNext();
-		}
-
-		public T next() {
-			this.next = this.iterator.next();
-			this.index++;
-			return this.next;
-		}
-
-		@SuppressWarnings("synthetic-access")
-		public void remove() {
-			this.iterator.remove();
-			SimpleListValueModel.this.fireItemRemoved(LIST_VALUES, this.index, this.next);
-		}
-
-	}
-
-	private class LocalListIterator<T> implements ListIterator<T> {
-		private final ListIterator<T> iterator;
-		private int last = -1;
-		private int next = 0;
-		private T current;
-
-		LocalListIterator(ListIterator<T> iterator) {
-			super();
-			this.iterator = iterator;
-		}
-
-		public boolean hasNext() {
-			return this.iterator.hasNext();
-		}
-
-		public T next() {
-			this.current = this.iterator.next();
-			this.last = this.next++;
-			return this.current;
-		}
-
-		public int nextIndex() {
-			return this.iterator.nextIndex();
-		}
-
-		public boolean hasPrevious() {
-			return this.iterator.hasPrevious();
-		}
-
-		public T previous() {
-			this.current = this.iterator.previous();
-			this.last = --this.next;
-			return this.current;
-		}
-
-		public int previousIndex() {
-			return this.iterator.previousIndex();
-		}
-
-		@SuppressWarnings("synthetic-access")
-		public void set(T o) {
-			this.iterator.set(o);
-			SimpleListValueModel.this.fireItemReplaced(LIST_VALUES, this.last, o, this.current);
-		}
-
-		@SuppressWarnings("synthetic-access")
-		public void add(T o) {
-			this.iterator.add(o);
-			SimpleListValueModel.this.fireItemAdded(LIST_VALUES, this.next, o);
-		}
-
-		@SuppressWarnings("synthetic-access")
-		public void remove() {
-			this.iterator.remove();
-			SimpleListValueModel.this.fireItemRemoved(LIST_VALUES, this.last, this.current);
-		}
-
-	}
-
-}
diff --git a/jpa/plugins/org.eclipse.jpt.utility/src/org/eclipse/jpt/utility/internal/model/value/SimplePropertyValueModel.java b/jpa/plugins/org.eclipse.jpt.utility/src/org/eclipse/jpt/utility/internal/model/value/SimplePropertyValueModel.java
deleted file mode 100644
index e7248e6..0000000
--- a/jpa/plugins/org.eclipse.jpt.utility/src/org/eclipse/jpt/utility/internal/model/value/SimplePropertyValueModel.java
+++ /dev/null
@@ -1,66 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2008 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.utility.internal.model.value;
-
-import org.eclipse.jpt.utility.internal.model.AbstractModel;
-import org.eclipse.jpt.utility.internal.model.ChangeSupport;
-import org.eclipse.jpt.utility.internal.model.SingleAspectChangeSupport;
-import org.eclipse.jpt.utility.model.listener.PropertyChangeListener;
-import org.eclipse.jpt.utility.model.value.WritablePropertyValueModel;
-
-/**
- * Implementation of WritablePropertyValueModel that simply holds on to an
- * object and uses it as the value.
- */
-public class SimplePropertyValueModel<T>
-	extends AbstractModel
-	implements WritablePropertyValueModel<T>
-{
-	/** The value. */
-	protected T value;
-
-
-	/**
-	 * Construct a PropertyValueModel for the specified value.
-	 */
-	public SimplePropertyValueModel(T value) {
-		super();
-		this.value = value;
-	}
-
-	/**
-	 * Construct a PropertyValueModel with a starting value of null.
-	 */
-	public SimplePropertyValueModel() {
-		this(null);
-	}
-
-	@Override
-	protected ChangeSupport buildChangeSupport() {
-		return new SingleAspectChangeSupport(this, PropertyChangeListener.class, VALUE);
-	}
-
-
-	public T getValue() {
-		return this.value;
-	}
-
-	public void setValue(T value) {
-		T old = this.value;
-		this.value = value;
-		this.firePropertyChanged(VALUE, old, value);
-	}
-
-	@Override
-	public void toString(StringBuilder sb) {
-		sb.append(this.value);
-	}
-
-}
diff --git a/jpa/plugins/org.eclipse.jpt.utility/src/org/eclipse/jpt/utility/internal/model/value/SortedListValueModelAdapter.java b/jpa/plugins/org.eclipse.jpt.utility/src/org/eclipse/jpt/utility/internal/model/value/SortedListValueModelAdapter.java
deleted file mode 100644
index 2194ba4..0000000
--- a/jpa/plugins/org.eclipse.jpt.utility/src/org/eclipse/jpt/utility/internal/model/value/SortedListValueModelAdapter.java
+++ /dev/null
@@ -1,132 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2008 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.utility.internal.model.value;
-
-import java.util.ArrayList;
-import java.util.Collections;
-import java.util.Comparator;
-import java.util.List;
-import org.eclipse.jpt.utility.internal.CollectionTools;
-import org.eclipse.jpt.utility.internal.Range;
-import org.eclipse.jpt.utility.model.event.CollectionChangeEvent;
-import org.eclipse.jpt.utility.model.value.CollectionValueModel;
-import org.eclipse.jpt.utility.model.value.ListValueModel;
-
-/**
- * An adapter that allows us to make a <code>CollectionValueModel</code>
- * (or <code>ListValueModel</code>) behave like a <code>ListValueModel</code>
- * that keeps its contents sorted and notifies listeners appropriately.
- * <p>
- * The comparator can be changed at any time; allowing the same
- * adapter to be used with different sort criteria (e.g. when the user
- * wants to sort a list of files first by name, then by date, then by size).
- * <p>
- * NB: Since we only listen to the wrapped collection when we have
- * listeners ourselves and we can only stay in synch with the wrapped
- * collection while we are listening to it, results to various methods
- * (e.g. <code>#size()</code>, <code>#getItem(int)</code>) will be
- * unpredictable whenever
- * we do not have any listeners. This should not be too painful since,
- * most likely, client objects will also be listeners.
- */
-public class SortedListValueModelAdapter<E>
-	extends CollectionListValueModelAdapter<E>
-{
-	/**
-	 * A comparator used for sorting the elements;
-	 * if it is null, we use "natural ordering".
-	 */
-	protected Comparator<E> comparator;
-
-
-	// ********** constructors **********
-
-	/**
-	 * Wrap the specified collection value model and sort its contents
-	 * using the specified comparator.
-	 */
-	public SortedListValueModelAdapter(CollectionValueModel<? extends E> collectionHolder, Comparator<E> comparator) {
-		super(collectionHolder);
-		this.comparator = comparator;
-	}
-
-	/**
-	 * Wrap the specified collection value model and sort its contents
-	 * based on the elements' "natural ordering".
-	 */
-	public SortedListValueModelAdapter(CollectionValueModel<? extends E> collectionHolder) {
-		this(collectionHolder, null);
-	}
-
-	/**
-	 * Wrap the specified list value model and sort its contents
-	 * using the specified comparator.
-	 */
-	public SortedListValueModelAdapter(ListValueModel<? extends E> listHolder, Comparator<E> comparator) {
-		this(new ListCollectionValueModelAdapter<E>(listHolder), comparator);
-	}
-
-	/**
-	 * Wrap the specified list value model and sort its contents
-	 * based on the elements' "natural ordering".
-	 */
-	public SortedListValueModelAdapter(ListValueModel<? extends E> listHolder) {
-		this(listHolder, null);
-	}
-
-
-	// ********** accessors **********
-
-	public void setComparator(Comparator<E> comparator) {
-		this.comparator = comparator;
-		this.sortList();
-	}
-
-
-	// ********** behavior **********
-
-	/**
-	 * Sort the internal list before
-	 * sending out change notification.
-	 */
-	@Override
-	protected void postBuildList() {
-		super.postBuildList();
-		Collections.sort(this.list, this.comparator);
-	}
-
-	/**
-	 * the list will need to be sorted after the item is added
-	 */
-	@Override
-	protected void itemsAdded(CollectionChangeEvent event) {
-		// first add the items and notify our listeners...
-		super.itemsAdded(event);
-		// ...then sort the list
-		this.sortList();
-	}
-
-	/**
-	 * sort the list and notify our listeners, if necessary;
-	 */
-	protected void sortList() {
-		// save the unsorted state of the sorted list so we can minimize the number of "replaced" items
-		@SuppressWarnings("unchecked")
-		ArrayList<E> unsortedList = (ArrayList<E>) this.list.clone();
-		Collections.sort(this.list, this.comparator);
-		Range diffRange = CollectionTools.identityDiffRange(unsortedList, this.list);
-		if (diffRange.size > 0) {
-			List<E> unsortedItems = unsortedList.subList(diffRange.start, diffRange.end + 1);
-			List<E> sortedItems = this.list.subList(diffRange.start, diffRange.end + 1);
-			this.fireItemsReplaced(LIST_VALUES, diffRange.start, sortedItems, unsortedItems);
-		}
-	}
-
-}
diff --git a/jpa/plugins/org.eclipse.jpt.utility/src/org/eclipse/jpt/utility/internal/model/value/StatePropertyValueModelAdapter.java b/jpa/plugins/org.eclipse.jpt.utility/src/org/eclipse/jpt/utility/internal/model/value/StatePropertyValueModelAdapter.java
deleted file mode 100644
index db6c0c9..0000000
--- a/jpa/plugins/org.eclipse.jpt.utility/src/org/eclipse/jpt/utility/internal/model/value/StatePropertyValueModelAdapter.java
+++ /dev/null
@@ -1,100 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.utility.internal.model.value;
-
-import org.eclipse.jpt.utility.model.Model;
-import org.eclipse.jpt.utility.model.event.StateChangeEvent;
-import org.eclipse.jpt.utility.model.listener.StateChangeListener;
-
-/**
- * This abstract class provides the infrastructure needed to wrap
- * a model, "lazily" listen to it, and convert
- * its state change notifications into property value model change
- * notifications.
- * 
- * Subclasses must override:
- * - #buildValue()
- *     to return the current property value, as derived from the
- *     current model
- * 
- * Subclasses might want to override:
- * - #stateChanged(StateChangeEvent event)
- *     to improve performance (by not recalculating the value, if possible)
- */
-public abstract class StatePropertyValueModelAdapter<T>
-	extends AspectPropertyValueModelAdapter<T>
-{
-	/** The wrapped model. */
-	protected final Model model;
-
-	/** A listener that allows us to synch with changes to the wrapped model. */
-	protected final StateChangeListener stateChangeListener;
-
-
-	// ********** constructor/initialization **********
-
-	/**
-	 * Construct a property value model with the specified wrapped model.
-	 */
-	protected StatePropertyValueModelAdapter(Model model) {
-		super();
-		this.model = model;
-		this.stateChangeListener = this.buildStateChangeListener();
-	}
-
-	protected StateChangeListener buildStateChangeListener() {
-		return new StateChangeListener() {
-			public void stateChanged(StateChangeEvent event) {
-				StatePropertyValueModelAdapter.this.stateChanged(event);
-			}
-			@Override
-			public String toString() {
-				return "state change listener";
-			}
-		};
-	}
-
-
-	// ********** behavior **********
-
-	/**
-	 * Start listening to the model.
-	 */
-	@Override
-	protected void engageModel_() {
-		this.model.addStateChangeListener(this.stateChangeListener);
-	}
-
-	/**
-	 * Stop listening to the model.
-	 */
-	@Override
-	protected void disengageModel_() {
-		this.model.removeStateChangeListener(this.stateChangeListener);
-	}
-
-	@Override
-	public void toString(StringBuilder sb) {
-		sb.append(this.model);
-	}
-
-	
-	// ********** state change support **********
-
-	/**
-	 * The model's state changed;
-	 * propagate the change notification appropriately.
-	 */
-	protected void stateChanged(StateChangeEvent event) {
-		// by default, simply recalculate the value and fire an event
-		this.propertyChanged();
-	}
-
-}
diff --git a/jpa/plugins/org.eclipse.jpt.utility/src/org/eclipse/jpt/utility/internal/model/value/StaticCollectionValueModel.java b/jpa/plugins/org.eclipse.jpt.utility/src/org/eclipse/jpt/utility/internal/model/value/StaticCollectionValueModel.java
deleted file mode 100644
index 136783b..0000000
--- a/jpa/plugins/org.eclipse.jpt.utility/src/org/eclipse/jpt/utility/internal/model/value/StaticCollectionValueModel.java
+++ /dev/null
@@ -1,72 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.utility.internal.model.value;
-
-import java.util.Collection;
-import java.util.Iterator;
-
-import org.eclipse.jpt.utility.internal.CollectionTools;
-import org.eclipse.jpt.utility.internal.StringTools;
-import org.eclipse.jpt.utility.internal.iterators.ReadOnlyIterator;
-import org.eclipse.jpt.utility.internal.model.AbstractModel;
-import org.eclipse.jpt.utility.model.value.CollectionValueModel;
-
-/**
- * Implementation of CollectionValueModel that can be used for
- * returning an iterator on a static collection, but still allows listeners to be added.
- * Listeners will NEVER be notified of any changes, because there should be none.
- */
-public class StaticCollectionValueModel<E>
-	extends AbstractModel
-	implements CollectionValueModel<E>
-{
-	/** The collection. */
-	protected final Collection<? extends E> collection;
-
-	private static final long serialVersionUID = 1L;
-
-
-	/**
-	 * Construct a static CollectionValueModel for the specified array.
-	 */
-	public StaticCollectionValueModel(E[] array) {
-		this(CollectionTools.list(array));
-	}
-
-	/**
-	 * Construct a static CollectionValueModel for the specified collection.
-	 */
-	public StaticCollectionValueModel(Collection<? extends E> collection) {
-		super();
-		if (collection == null) {
-			throw new NullPointerException();
-		}
-		this.collection = collection;
-	}
-
-	// ********** CollectionValueModel implementation **********
-
-	public int size() {
-		return this.collection.size();
-	}
-
-	public Iterator<E> iterator() {
-		return new ReadOnlyIterator<E>(this.collection.iterator());
-	}
-
-
-	// ********** Object overrides **********
-
-	@Override
-	public String toString() {
-		return StringTools.buildToStringFor(this, this.collection);
-	}
-
-}
diff --git a/jpa/plugins/org.eclipse.jpt.utility/src/org/eclipse/jpt/utility/internal/model/value/StaticListValueModel.java b/jpa/plugins/org.eclipse.jpt.utility/src/org/eclipse/jpt/utility/internal/model/value/StaticListValueModel.java
deleted file mode 100644
index 01bc2fb..0000000
--- a/jpa/plugins/org.eclipse.jpt.utility/src/org/eclipse/jpt/utility/internal/model/value/StaticListValueModel.java
+++ /dev/null
@@ -1,87 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.utility.internal.model.value;
-
-import java.util.Iterator;
-import java.util.List;
-import java.util.ListIterator;
-
-import org.eclipse.jpt.utility.internal.CollectionTools;
-import org.eclipse.jpt.utility.internal.StringTools;
-import org.eclipse.jpt.utility.internal.iterators.ReadOnlyIterator;
-import org.eclipse.jpt.utility.internal.iterators.ReadOnlyListIterator;
-import org.eclipse.jpt.utility.internal.model.AbstractModel;
-import org.eclipse.jpt.utility.model.value.ListValueModel;
-
-/**
- * Implementation of ListValueModel that can be used for
- * returning a list iterator on a static list, but still allows listeners to be added.
- * Listeners will NEVER be notified of any changes, because there should be none.
- */
-public class StaticListValueModel<E>
-	extends AbstractModel
-	implements ListValueModel<E>
-{
-	/** The value. */
-	protected final List<? extends E> list;
-
-	private static final long serialVersionUID = 1L;
-
-
-	/**
-	 * Construct a static ListValueModel for the specified array.
-	 */
-	public StaticListValueModel(E[] array) {
-		this(CollectionTools.list(array));
-	}
-
-	/**
-	 * Construct a static ListValueModel for the specified list.
-	 */
-	public StaticListValueModel(List<? extends E> list) {
-		super();
-		if (list == null) {
-			throw new NullPointerException();
-		}
-		this.list = list;
-	}
-
-
-	// ********** ListValueModel implementation **********
-
-	public Iterator<E> iterator() {
-		return new ReadOnlyIterator<E>(this.list.iterator());
-	}
-
-	public ListIterator<E> listIterator() {
-		return new ReadOnlyListIterator<E>(this.list.listIterator());
-	}
-
-	public int size() {
-		return this.list.size();
-	}
-
-	public E get(int index) {
-		return this.list.get(index);
-	}
-
-	public Object[] toArray() {
-		return this.list.toArray();
-	}
-
-
-	// ********** Object overrides **********
-
-	@Override
-	public String toString() {
-		return StringTools.buildToStringFor(this, this.list);
-	}
-
-}
diff --git a/jpa/plugins/org.eclipse.jpt.utility/src/org/eclipse/jpt/utility/internal/model/value/StaticPropertyValueModel.java b/jpa/plugins/org.eclipse.jpt.utility/src/org/eclipse/jpt/utility/internal/model/value/StaticPropertyValueModel.java
deleted file mode 100644
index e5eccf3..0000000
--- a/jpa/plugins/org.eclipse.jpt.utility/src/org/eclipse/jpt/utility/internal/model/value/StaticPropertyValueModel.java
+++ /dev/null
@@ -1,54 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2008 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.utility.internal.model.value;
-
-import org.eclipse.jpt.utility.internal.StringTools;
-import org.eclipse.jpt.utility.internal.model.AbstractModel;
-import org.eclipse.jpt.utility.model.value.PropertyValueModel;
-
-/**
- * Implementation of PropertyValueModel that can be used for
- * returning a static value, but still allows listeners to be added.
- * Listeners will NEVER be notified of any changes, because there should be none.
- */
-public class StaticPropertyValueModel<T>
-	extends AbstractModel
-	implements PropertyValueModel<T>
-{
-	/** The value. */
-	protected final T value;
-
-	private static final long serialVersionUID = 1L;
-
-
-	/**
-	 * Construct a static PropertyValueModel for the specified value.
-	 */
-	public StaticPropertyValueModel(T value) {
-		super();
-		this.value = value;
-	}
-
-
-	// ********** PropertyValueModel implementation **********
-
-	public T getValue() {
-		return this.value;
-	}
-
-
-	// ********** Object overrides **********
-
-	@Override
-	public String toString() {
-		return StringTools.buildToStringFor(this, this.value);
-	}
-
-}
diff --git a/jpa/plugins/org.eclipse.jpt.utility/src/org/eclipse/jpt/utility/internal/model/value/StaticTreeValueModel.java b/jpa/plugins/org.eclipse.jpt.utility/src/org/eclipse/jpt/utility/internal/model/value/StaticTreeValueModel.java
deleted file mode 100644
index 6c435a3..0000000
--- a/jpa/plugins/org.eclipse.jpt.utility/src/org/eclipse/jpt/utility/internal/model/value/StaticTreeValueModel.java
+++ /dev/null
@@ -1,59 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.utility.internal.model.value;
-
-import java.util.Iterator;
-import org.eclipse.jpt.utility.internal.CollectionTools;
-import org.eclipse.jpt.utility.internal.StringTools;
-import org.eclipse.jpt.utility.internal.iterators.ReadOnlyIterator;
-import org.eclipse.jpt.utility.internal.model.AbstractModel;
-import org.eclipse.jpt.utility.model.value.TreeValueModel;
-
-/**
- * Implementation of TreeValueModel that can be used for
- * returning an iterator on a static tree, but still allows listeners to be added.
- * Listeners will NEVER be notified of any changes, because there should be none.
- */
-public class StaticTreeValueModel<E>
-	extends AbstractModel
-	implements TreeValueModel<E>
-{
-	/** The tree's nodes. */
-	protected final Iterable<? extends E> nodes;
-
-	private static final long serialVersionUID = 1L;
-
-
-	/**
-	 * Construct a read-only TreeValueModel for the specified nodes.
-	 */
-	public StaticTreeValueModel(Iterable<? extends E> nodes) {
-		super();
-		if (nodes == null) {
-			throw new NullPointerException();
-		}
-		this.nodes = nodes;
-	}
-
-	// ********** TreeValueModel implementation **********
-
-	public Iterator<E> nodes() {
-		return new ReadOnlyIterator<E>(this.nodes.iterator());
-	}
-
-
-	// ********** Object overrides **********
-
-	@Override
-	public String toString() {
-		return StringTools.buildToStringFor(this, CollectionTools.collection(this.nodes()));
-	}
-
-}
diff --git a/jpa/plugins/org.eclipse.jpt.utility/src/org/eclipse/jpt/utility/internal/model/value/TransformationListValueModelAdapter.java b/jpa/plugins/org.eclipse.jpt.utility/src/org/eclipse/jpt/utility/internal/model/value/TransformationListValueModelAdapter.java
deleted file mode 100644
index f1a7c1f..0000000
--- a/jpa/plugins/org.eclipse.jpt.utility/src/org/eclipse/jpt/utility/internal/model/value/TransformationListValueModelAdapter.java
+++ /dev/null
@@ -1,241 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2008 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.utility.internal.model.value;
-
-import java.util.ArrayList;
-import java.util.Iterator;
-import java.util.List;
-import java.util.ListIterator;
-import org.eclipse.jpt.utility.internal.Transformer;
-import org.eclipse.jpt.utility.internal.iterators.ReadOnlyListIterator;
-import org.eclipse.jpt.utility.model.event.ListChangeEvent;
-import org.eclipse.jpt.utility.model.value.CollectionValueModel;
-import org.eclipse.jpt.utility.model.value.ListValueModel;
-
-/**
- * An adapter that allows us to transform a ListValueModel
- * (or CollectionValueModel) into a read-only ListValueModel
- * whose items are tranformations of the items in the wrapped
- * ListValueModel. It will keep its contents in synch with
- * the contents of the wrapped ListValueModel and notifies its
- * listeners of any changes.
- * <p>
- * The transformer can be changed at any time; allowing the same
- * adapter to be used with different transformations.
- * <p>
- * NB: Since we only listen to the wrapped list when we have
- * listeners ourselves and we can only stay in synch with the wrapped
- * list while we are listening to it, results to various methods
- * (e.g. #size(), #getItem(int)) will be unpredictable whenever
- * we do not have any listeners. This should not be too painful since,
- * most likely, client objects will also be listeners.
- */
-public class TransformationListValueModelAdapter<E1, E2>
-	extends ListValueModelWrapper<E1>
-	implements ListValueModel<E2>
-{
-
-	/** This transforms the items, unless the subclass overrides #transformItem(Object). */
-	protected Transformer<E1, E2> transformer;
-
-	/** The list of transformed items. */
-	protected final List<E2> transformedList;
-
-
-	// ********** constructors **********
-
-	/**
-	 * Constructor - the list holder is required.
-	 */
-	public TransformationListValueModelAdapter(ListValueModel<? extends E1> listHolder, Transformer<E1, E2> transformer) {
-		super(listHolder);
-		this.transformer = transformer;
-		this.transformedList = new ArrayList<E2>();
-	}
-
-	/**
-	 * Constructor - the list holder is required.
-	 */
-	public TransformationListValueModelAdapter(ListValueModel<? extends E1> listHolder) {
-		this(listHolder, Transformer.Null.<E1, E2>instance());
-	}
-
-	/**
-	 * Constructor - the collection holder is required.
-	 */
-	public TransformationListValueModelAdapter(CollectionValueModel<? extends E1> collectionHolder, Transformer<E1, E2> transformer) {
-		this(new CollectionListValueModelAdapter<E1>(collectionHolder), transformer);
-	}
-
-	/**
-	 * Constructor - the collection holder is required.
-	 */
-	public TransformationListValueModelAdapter(CollectionValueModel<? extends E1> collectionHolder) {
-		this(new CollectionListValueModelAdapter<E1>(collectionHolder));
-	}
-
-
-	// ********** ListValueModel implementation **********
-
-	public Iterator<E2> iterator() {
-		return this.listIterator();
-	}
-
-	public ListIterator<E2> listIterator() {
-		return new ReadOnlyListIterator<E2>(this.transformedList);
-	}
-
-	public E2 get(int index) {
-		return this.transformedList.get(index);
-	}
-
-	public int size() {
-		return this.transformedList.size();
-	}
-
-	public Object[] toArray() {
-		return this.transformedList.toArray();
-	}
-
-	// ********** behavior **********
-
-    @Override
-	protected void engageModel() {
-		super.engageModel();
-		// synch the transformed list *after* we start listening to the list holder,
-		// since its value might change when a listener is added
-		this.transformedList.addAll(this.transformItems(this.listHolder));
-	}
-
-    @Override
-	protected void disengageModel() {
-		super.disengageModel();
-		// clear out the list when we are not listening to the collection holder
-		this.transformedList.clear();
-	}
-
-	/**
-	 * Transform the items associated with the specified event.
-	 */
-	protected List<E2> transformItems(ListChangeEvent event) {
-		return this.transformItems(this.items(event), event.itemsSize());
-	}
-
-	/**
-	 * Transform the items in the specified list value model.
-	 */
-	protected List<E2> transformItems(ListValueModel<? extends E1> lvm) {
-		return this.transformItems(lvm.listIterator(), lvm.size());
-	}
-
-	/**
-	 * Transform the replaced items associated with the specified event.
-	 */
-	protected List<E2> transformReplacedItems(ListChangeEvent event) {
-		return this.transformItems(this.replacedItems(event), event.itemsSize());
-	}
-
-	/**
-	 * Transform the specified items.
-	 */
-	protected List<E2> transformItems(ListIterator<? extends E1> items, int size) {
-		List<E2> result = new ArrayList<E2>(size);
-		while (items.hasNext()) {
-			result.add(this.transformItem(items.next()));
-		}
-		return result;
-	}
-
-	/**
-	 * Transform the specified item.
-	 */
-	protected E2 transformItem(E1 item) {
-		return this.transformer.transform(item);
-	}
-
-	/**
-	 * Change the transformer and rebuild the collection.
-	 */
-	public void setTransformer(Transformer<E1, E2> transformer) {
-		this.transformer = transformer;
-		this.rebuildTransformedList();
-	}
-
-	/**
-	 * Synchronize our cache with the wrapped collection.
-	 */
-	protected void rebuildTransformedList() {
-		this.transformedList.clear();
-		this.transformedList.addAll(this.transformItems(this.listHolder));
-		this.fireListChanged(LIST_VALUES);
-	}
-
-
-	// ********** list change support **********
-
-	/**
-	 * Items were added to the wrapped list holder.
-	 * Transform them, add them to our transformation list,
-	 * and notify our listeners.
-	 */
-    @Override
-	protected void itemsAdded(ListChangeEvent event) {
-		this.addItemsToList(event.getIndex(), this.transformItems(event), this.transformedList, LIST_VALUES);
-	}
-
-	/**
-	 * Items were removed from the wrapped list holder.
-	 * Remove the corresponding items from our transformation list
-	 * and notify our listeners.
-	 */
-    @Override
-	protected void itemsRemoved(ListChangeEvent event) {
-		this.removeItemsFromList(event.getIndex(), event.itemsSize(), this.transformedList, LIST_VALUES);
-	}
-
-	/**
-	 * Items were replaced in the wrapped list holder.
-	 * Replace the corresponding items in our transformation list
-	 * and notify our listeners.
-	 */
-    @Override
-	protected void itemsReplaced(ListChangeEvent event) {
-		this.setItemsInList(event.getIndex(), this.transformItems(event), this.transformedList, LIST_VALUES);
-	}
-
-	/**
-	 * Items were moved in the wrapped list holder.
-	 * Move the corresponding items in our transformation list
-	 * and notify our listeners.
-	 */
-    @Override
-	protected void itemsMoved(ListChangeEvent event) {
-    	this.moveItemsInList(event.getTargetIndex(), event.getSourceIndex(), event.getMoveLength(), this.transformedList, LIST_VALUES);
-	}
-
-	/**
-	 * The wrapped list holder was cleared.
-	 * Clear our transformation list and notify our listeners.
-	 */
-    @Override
-	protected void listCleared(ListChangeEvent event) {
-    	this.clearList(this.transformedList, LIST_VALUES);
-	}
-
-	/**
-	 * The wrapped list holder has changed in some dramatic fashion.
-	 * Rebuild our transformation list and notify our listeners.
-	 */
-    @Override
-	protected void listChanged(ListChangeEvent event) {
-		this.rebuildTransformedList();
-	}
-
-}
diff --git a/jpa/plugins/org.eclipse.jpt.utility/src/org/eclipse/jpt/utility/internal/model/value/TransformationPropertyValueModel.java b/jpa/plugins/org.eclipse.jpt.utility/src/org/eclipse/jpt/utility/internal/model/value/TransformationPropertyValueModel.java
deleted file mode 100644
index ba878e5..0000000
--- a/jpa/plugins/org.eclipse.jpt.utility/src/org/eclipse/jpt/utility/internal/model/value/TransformationPropertyValueModel.java
+++ /dev/null
@@ -1,131 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2008 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.utility.internal.model.value;
-
-import org.eclipse.jpt.utility.internal.Transformer;
-import org.eclipse.jpt.utility.model.event.PropertyChangeEvent;
-import org.eclipse.jpt.utility.model.value.PropertyValueModel;
-
-/**
- * A <code>TransformationPropertyValueModel</code> wraps another
- * <code>PropertyValueModel</code> and uses a <code>Transformer</code>
- * to transform the wrapped value before it is returned by <code>value()</code>.
- * <p>
- * As an alternative to building a <code>Transformer</code>,
- * a subclass of <code>TransformationPropertyValueModel</code> can
- * either override the <code>transform_(Object)</code> method or,
- * if something other than null should be returned when the wrapped value
- * is null, override the <code>transform(Object)</code> method.
- */
-public class TransformationPropertyValueModel<T1, T2>
-	extends PropertyValueModelWrapper<T1>
-	implements PropertyValueModel<T2>
-{
-	protected final Transformer<T1, T2> transformer;
-
-
-	// ********** constructors/initialization **********
-
-	/**
-	 * Construct a property value model with the specified nested
-	 * property value model and the default transformer.
-	 * Use this constructor if you want to override the
-	 * <code>transform_(Object)</code> or <code>transform(Object)</code>
-	 * method instead of building a <code>Transformer</code>.
-	 */
-	public TransformationPropertyValueModel(PropertyValueModel<? extends T1> valueHolder) {
-		super(valueHolder);
-		this.transformer = this.buildTransformer();
-	}
-
-	/**
-	 * Construct an property value model with the specified nested
-	 * property value model and transformer.
-	 */
-	public TransformationPropertyValueModel(PropertyValueModel<? extends T1> valueHolder, Transformer<T1, T2> transformer) {
-		super(valueHolder);
-		this.transformer = transformer;
-	}
-
-	protected Transformer<T1, T2> buildTransformer() {
-		return new DefaultTransformer();
-	}
-
-
-	// ********** PropertyValueModel implementation **********
-
-	public T2 getValue() {
-		// transform the object returned by the nested value model before returning it
-		return this.transform(this.valueHolder.getValue());
-	}
-
-
-	// ********** PropertyValueModelWrapper implementation **********
-
-	@Override
-	protected void valueChanged(PropertyChangeEvent event) {
-		// transform the values before propagating the change event
-	    @SuppressWarnings("unchecked")
-		Object oldValue = this.transformOld((T1) event.getOldValue());
-	    @SuppressWarnings("unchecked")
-		Object newValue = this.transformNew((T1) event.getNewValue());
-		this.firePropertyChanged(VALUE, oldValue, newValue);
-	}
-
-
-	// ********** behavior **********
-
-	/**
-	 * Transform the specified value and return the result.
-	 * This is called by #value() and #valueChanged(PropertyChangeEvent).
-	 */
-	protected T2 transform(T1 value) {
-		return this.transformer.transform(value);
-	}
-
-	/**
-	 * Transform the specified, non-null, value and return the result.
-	 */
-	protected T2 transform_(@SuppressWarnings("unused") T1 value) {
-		throw new UnsupportedOperationException();
-	}
-
-	/**
-	 * Transform the specified old value and return the result.
-	 * By default, call {@link #transform(Object)}.
-	 * This is called by {@link #valueChanged(PropertyChangeEvent)}.
-	 */
-	protected T2 transformOld(T1 value) {
-		return this.transform(value);
-	}
-	
-	/**
-	 * Transform the specified new value and return the result.
-	 * By default, call {@link #transform(Object)}.
-	 * This is called by {@link #valueChanged(PropertyChangeEvent)}.
-	 */
-	protected T2 transformNew(T1 value) {
-		return this.transform(value);
-	}
-
-	// ********** default transformer **********
-
-	/**
-	 * The default transformer will return null if the wrapped value is null.
-	 * If the wrapped value is not null, it is transformed by a subclass
-	 * implementation of #transform_(Object).
-	 */
-	protected class DefaultTransformer implements Transformer<T1, T2> {
-		public T2 transform(T1 value) {
-			return (value == null) ? null : TransformationPropertyValueModel.this.transform_(value);
-		}
-	}
-
-}
diff --git a/jpa/plugins/org.eclipse.jpt.utility/src/org/eclipse/jpt/utility/internal/model/value/TransformationWritablePropertyValueModel.java b/jpa/plugins/org.eclipse.jpt.utility/src/org/eclipse/jpt/utility/internal/model/value/TransformationWritablePropertyValueModel.java
deleted file mode 100644
index 1299097..0000000
--- a/jpa/plugins/org.eclipse.jpt.utility/src/org/eclipse/jpt/utility/internal/model/value/TransformationWritablePropertyValueModel.java
+++ /dev/null
@@ -1,127 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.utility.internal.model.value;
-
-import org.eclipse.jpt.utility.internal.BidiTransformer;
-import org.eclipse.jpt.utility.model.value.WritablePropertyValueModel;
-
-/**
- * A <code>TransformationWritablePropertyValueModel</code> wraps another
- * <code>WritablePropertyValueModel</code> and uses a <code>BidiTransformer</code>
- * to:<ul>
- * <li>transform the wrapped value before it is returned by <code>value()</code>
- * <li>"reverse-transform" the new value that comes in via
- * <code>setValue(Object)</code>
- * </ul>
- * As an alternative to building a <code>BidiTransformer</code>,
- * a subclass of <code>TransformationWritablePropertyValueModel</code> can
- * override the <code>transform_(Object)</code> and 
- * <code>reverseTransform_(Object)</code> methods; or,
- * if something other than null should be returned when the wrapped value
- * is null or the new value is null, override the <code>transform(Object)</code>
- * and <code>reverseTransform(Object)</code> methods.
- */
-public class TransformationWritablePropertyValueModel<T1, T2>
-	extends TransformationPropertyValueModel<T1, T2>
-	implements WritablePropertyValueModel<T2>
-{
-
-	// ********** constructors/initialization **********
-
-	/**
-	 * Construct a writable property value model with the specified nested
-	 * writable property value model and the default bidi transformer.
-	 * Use this constructor if you want to override the
-	 * <code>transform_(Object)</code> and <code>reverseTransform_(Object)</code>
-	 * (or <code>transform(Object)</code> and <code>reverseTransform(Object)</code>)
-	 * methods instead of building a <code>BidiTransformer</code>.
-	 */
-	public TransformationWritablePropertyValueModel(WritablePropertyValueModel<T1> valueHolder) {
-		super(valueHolder);
-	}
-
-	/**
-	 * Construct a writable property value model with the specified nested
-	 * writable property value model and bidi transformer.
-	 */
-	public TransformationWritablePropertyValueModel(WritablePropertyValueModel<T1> valueHolder, BidiTransformer<T1, T2> transformer) {
-		super(valueHolder, transformer);
-	}
-
-	@Override
-	protected BidiTransformer<T1, T2> buildTransformer() {
-		return new DefaultBidiTransformer();
-	}
-
-
-	// ********** WritablePropertyValueModel implementation **********
-
-	public void setValue(T2 value) {
-		// "reverse-transform" the object before passing it to the the nested value model
-		this.valueHolder().setValue(this.reverseTransform(value));
-	}
-
-
-	// ********** behavior **********
-
-	/**
-	 * "Reverse-transform" the specified value and return the result.
-	 * This is called by #setValue(Object).
-	 */
-	protected T1 reverseTransform(T2 value) {
-		return this.transformer().reverseTransform(value);
-	}
-
-	/**
-	 * "Reverse-transform" the specified, non-null, value and return the result.
-	 */
-	protected T1 reverseTransform_(@SuppressWarnings("unused") T2 value) {
-		throw new UnsupportedOperationException();
-	}
-
-
-	// ********** queries **********
-
-	/**
-	 * Our constructors accept only a WritablePropertyValueModel<T1>.
-	 */
-	@SuppressWarnings("unchecked")
-	protected WritablePropertyValueModel<T1> valueHolder() {
-		return (WritablePropertyValueModel<T1>) this.valueHolder;
-	}
-
-	/**
-	 * Our constructors accept only a bidirectional transformer.
-	 */
-	protected BidiTransformer<T1, T2> transformer() {
-		return (BidiTransformer<T1, T2>) this.transformer;
-	}
-
-
-	// ********** default bidi transformer **********
-
-	/**
-	 * The default bidi transformer will return null if the wrapped value is null.
-	 * If the wrapped value is not null, it is transformed by a subclass
-	 * implementation of #transform_(Object).
-	 * The default bidi transformer will also return null if the new value is null.
-	 * If the new value is not null, it is reverse-transformed by a subclass
-	 * implementation of #reverseTransform_(Object).
-	 */
-	protected class DefaultBidiTransformer
-		extends DefaultTransformer
-		implements BidiTransformer<T1, T2>
-	{
-		public T1 reverseTransform(T2 value) {
-			return (value == null) ? null : TransformationWritablePropertyValueModel.this.reverseTransform_(value);
-		}
-	}
-
-}
diff --git a/jpa/plugins/org.eclipse.jpt.utility/src/org/eclipse/jpt/utility/internal/model/value/TreeAspectAdapter.java b/jpa/plugins/org.eclipse.jpt.utility/src/org/eclipse/jpt/utility/internal/model/value/TreeAspectAdapter.java
deleted file mode 100644
index 739bb97..0000000
--- a/jpa/plugins/org.eclipse.jpt.utility/src/org/eclipse/jpt/utility/internal/model/value/TreeAspectAdapter.java
+++ /dev/null
@@ -1,215 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2008 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.utility.internal.model.value;
-
-import java.util.Arrays;
-import java.util.Collection;
-import java.util.Iterator;
-import org.eclipse.jpt.utility.internal.iterators.EmptyIterator;
-import org.eclipse.jpt.utility.model.Model;
-import org.eclipse.jpt.utility.model.event.TreeChangeEvent;
-import org.eclipse.jpt.utility.model.listener.ChangeListener;
-import org.eclipse.jpt.utility.model.listener.TreeChangeListener;
-import org.eclipse.jpt.utility.model.value.PropertyValueModel;
-import org.eclipse.jpt.utility.model.value.TreeValueModel;
-
-/**
- * This extension of PropertyAdapter provides TreeChange support.
- * This allows us to convert a set of one or more trees into
- * a single tree, NODES.
- * 
- * The typical subclass will override the following methods:
- * #nodes_()
- *     at the very minimum, override this method to return an iterator
- *     on the subject's tree aspect; it does not need to be overridden if
- *     #nodes() is overridden and its behavior changed
- * #nodes()
- *     override this method only if returning an empty iterator when the
- *     subject is null is unacceptable
- */
-public abstract class TreeAspectAdapter<S extends Model, E>
-	extends AspectAdapter<S>
-	implements TreeValueModel<E>
-{
-	/**
-	 * The name of the subject's trees that we use for the value.
-	 */
-	protected final String[] treeNames;
-		protected static final String[] EMPTY_TREE_NAMES = new String[0];
-
-	/** A listener that listens to the subject's tree aspect. */
-	protected final TreeChangeListener treeChangeListener;
-
-
-	// ********** constructors **********
-
-	/**
-	 * Construct a TreeAspectAdapter for the specified subject
-	 * and tree.
-	 */
-	protected TreeAspectAdapter(String treeName, S subject) {
-		this(new String[] {treeName}, subject);
-	}
-
-	/**
-	 * Construct a TreeAspectAdapter for the specified subject
-	 * and trees.
-	 */
-	protected TreeAspectAdapter(String[] treeNames, S subject) {
-		this(new StaticPropertyValueModel<S>(subject), treeNames);
-	}
-
-	/**
-	 * Construct a TreeAspectAdapter for the specified subject holder
-	 * and trees.
-	 */
-	protected TreeAspectAdapter(PropertyValueModel<? extends S> subjectHolder, String... treeNames) {
-		super(subjectHolder);
-		this.treeNames = treeNames;
-		this.treeChangeListener = this.buildTreeChangeListener();
-	}
-
-	/**
-	 * Construct a TreeAspectAdapter for the specified subject holder
-	 * and trees.
-	 */
-	protected TreeAspectAdapter(PropertyValueModel<? extends S> subjectHolder, Collection<String> treeNames) {
-		this(subjectHolder, treeNames.toArray(new String[treeNames.size()]));
-	}
-
-	/**
-	 * Construct a TreeAspectAdapter for an "unchanging" tree in
-	 * the specified subject. This is useful for a tree aspect that does not
-	 * change for a particular subject; but the subject will change, resulting in
-	 * a new tree.
-	 */
-	protected TreeAspectAdapter(PropertyValueModel<? extends S> subjectHolder) {
-		this(subjectHolder, EMPTY_TREE_NAMES);
-	}
-
-
-	// ********** initialization **********
-
-	/**
-	 * The subject's tree aspect has changed, notify the listeners.
-	 */
-	protected TreeChangeListener buildTreeChangeListener() {
-		// transform the subject's tree change events into VALUE tree change events
-		return new TreeChangeListener() {
-			public void nodeAdded(TreeChangeEvent event) {
-				TreeAspectAdapter.this.nodeAdded(event);
-			}
-			public void nodeRemoved(TreeChangeEvent event) {
-				TreeAspectAdapter.this.nodeRemoved(event);
-			}
-			public void treeCleared(TreeChangeEvent event) {
-				TreeAspectAdapter.this.treeCleared(event);
-			}
-			public void treeChanged(TreeChangeEvent event) {
-				TreeAspectAdapter.this.treeChanged(event);
-			}
-			@Override
-			public String toString() {
-				return "tree change listener: " + Arrays.asList(TreeAspectAdapter.this.treeNames);
-			}
-		};
-	}
-
-
-	// ********** TreeValueModel implementation **********
-
-	/**
-	 * Return the nodes of the subject's tree aspect.
-	 */
-	public Iterator<E> nodes() {
-		return (this.subject == null) ? EmptyIterator.<E>instance() : this.nodes_();
-	}
-
-	/**
-	 * Return the nodes of the subject's tree aspect.
-	 * At this point we can be sure that the subject is not null.
-	 * @see #nodes()
-	 */
-	protected Iterator<E> nodes_() {
-		throw new UnsupportedOperationException();
-	}
-
-
-	// ********** AspectAdapter implementation **********
-
-	@Override
-	protected Object getValue() {
-		return this.nodes();
-	}
-
-	@Override
-	protected Class<? extends ChangeListener> getListenerClass() {
-		return TreeChangeListener.class;
-	}
-
-	@Override
-	protected String getListenerAspectName() {
-		return NODES;
-	}
-
-    @Override
-	protected boolean hasListeners() {
-		return this.hasAnyTreeChangeListeners(NODES);
-	}
-
-    @Override
-	protected void fireAspectChange(Object oldValue, Object newValue) {
-		this.fireTreeChanged(NODES);
-	}
-
-    @Override
-	protected void engageSubject_() {
-    	for (String treeName : this.treeNames) {
-			((Model) this.subject).addTreeChangeListener(treeName, this.treeChangeListener);
-		}
-	}
-
-    @Override
-	protected void disengageSubject_() {
-    	for (String treeName : this.treeNames) {
-			((Model) this.subject).removeTreeChangeListener(treeName, this.treeChangeListener);
-		}
-	}
-
-	@Override
-	public void toString(StringBuilder sb) {
-		for (int i = 0; i < this.treeNames.length; i++) {
-			if (i != 0) {
-				sb.append(", ");
-			}
-			sb.append(this.treeNames[i]);
-		}
-	}
-
-
-	// ********** behavior **********
-
-	protected void nodeAdded(TreeChangeEvent event) {
-		this.fireNodeAdded(NODES, event.getPath());
-	}
-
-	protected void nodeRemoved(TreeChangeEvent event) {
-		this.fireNodeRemoved(NODES, event.getPath());
-	}
-
-	protected void treeCleared(TreeChangeEvent event) {
-		this.fireTreeCleared(NODES);
-	}
-
-	protected void treeChanged(TreeChangeEvent event) {
-		this.fireTreeChanged(NODES, event.getPath());
-	}
-
-}
diff --git a/jpa/plugins/org.eclipse.jpt.utility/src/org/eclipse/jpt/utility/internal/model/value/TreePropertyValueModelAdapter.java b/jpa/plugins/org.eclipse.jpt.utility/src/org/eclipse/jpt/utility/internal/model/value/TreePropertyValueModelAdapter.java
deleted file mode 100644
index 11b6f1a..0000000
--- a/jpa/plugins/org.eclipse.jpt.utility/src/org/eclipse/jpt/utility/internal/model/value/TreePropertyValueModelAdapter.java
+++ /dev/null
@@ -1,137 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.utility.internal.model.value;
-
-import org.eclipse.jpt.utility.model.event.TreeChangeEvent;
-import org.eclipse.jpt.utility.model.listener.TreeChangeListener;
-import org.eclipse.jpt.utility.model.value.TreeValueModel;
-
-/**
- * This abstract class provides the infrastructure needed to wrap
- * a tree value model, "lazily" listen to it, and convert
- * its change notifications into property value model change
- * notifications.
- * 
- * Subclasses must override:
- * - #buildValue()
- *     to return the current property value, as derived from the
- *     current collection value
- * 
- * Subclasses might want to override:
- * - #stateChanged(StateChangeEvent event)
- *     to improve performance (by not recalculating the value, if possible)
- */
-public abstract class TreePropertyValueModelAdapter<T>
-	extends AspectPropertyValueModelAdapter<T>
-{
-	/** The wrapped tree value model. */
-	protected final TreeValueModel<?> treeHolder;
-
-	/** A listener that allows us to synch with changes to the wrapped tree holder. */
-	protected final TreeChangeListener treeChangeListener;
-
-
-	// ********** constructor/initialization **********
-
-	/**
-	 * Construct a property value model with the specified wrapped
-	 * tree value model.
-	 */
-	protected TreePropertyValueModelAdapter(TreeValueModel<?> treeHolder) {
-		super();
-		this.treeHolder = treeHolder;
-		this.treeChangeListener = this.buildTreeChangeListener();
-	}
-
-	protected TreeChangeListener buildTreeChangeListener() {
-		return new TreeChangeListener() {
-			public void nodeAdded(TreeChangeEvent event) {
-				TreePropertyValueModelAdapter.this.nodeAdded(event);
-			}
-			public void nodeRemoved(TreeChangeEvent event) {
-				TreePropertyValueModelAdapter.this.nodeRemoved(event);
-			}
-			public void treeCleared(TreeChangeEvent event) {
-				TreePropertyValueModelAdapter.this.treeCleared(event);
-			}
-			public void treeChanged(TreeChangeEvent event) {
-				TreePropertyValueModelAdapter.this.treeChanged(event);
-			}
-			@Override
-			public String toString() {
-				return "tree change listener";
-			}
-		};
-	}
-
-
-	// ********** behavior **********
-
-	/**
-	 * Start listening to the tree holder.
-	 */
-	@Override
-	protected void engageModel_() {
-		this.treeHolder.addTreeChangeListener(this.treeChangeListener);
-	}
-
-	/**
-	 * Stop listening to the tree holder.
-	 */
-	@Override
-	protected void disengageModel_() {
-		this.treeHolder.removeTreeChangeListener(this.treeChangeListener);
-	}
-
-	@Override
-	public void toString(StringBuilder sb) {
-		sb.append(this.treeHolder);
-	}
-
-	
-	// ********** state change support **********
-
-	/**
-	 * Nodes were added to the wrapped tree holder;
-	 * propagate the change notification appropriately.
-	 */
-	protected void nodeAdded(TreeChangeEvent event) {
-		// by default, simply recalculate the value and fire an event
-		this.propertyChanged();
-	}
-
-	/**
-	 * Nodes were removed from the wrapped tree holder;
-	 * propagate the change notification appropriately.
-	 */
-	protected void nodeRemoved(TreeChangeEvent event) {
-		// by default, simply recalculate the value and fire an event
-		this.propertyChanged();
-	}
-
-	/**
-	 * The wrapped tree holder was cleared;
-	 * propagate the change notification appropriately.
-	 */
-	protected void treeCleared(TreeChangeEvent event) {
-		// by default, simply recalculate the value and fire an event
-		this.propertyChanged();
-	}
-
-	/**
-	 * The wrapped tree holder changed;
-	 * propagate the change notification appropriately.
-	 */
-	protected void treeChanged(TreeChangeEvent event) {
-		// by default, simply recalculate the value and fire an event
-		this.propertyChanged();
-	}
-
-}
diff --git a/jpa/plugins/org.eclipse.jpt.utility/src/org/eclipse/jpt/utility/internal/model/value/ValueAspectAdapter.java b/jpa/plugins/org.eclipse.jpt.utility/src/org/eclipse/jpt/utility/internal/model/value/ValueAspectAdapter.java
deleted file mode 100644
index e1e75ff..0000000
--- a/jpa/plugins/org.eclipse.jpt.utility/src/org/eclipse/jpt/utility/internal/model/value/ValueAspectAdapter.java
+++ /dev/null
@@ -1,194 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2008 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.utility.internal.model.value;
-
-import org.eclipse.jpt.utility.internal.model.ChangeSupport;
-import org.eclipse.jpt.utility.model.event.PropertyChangeEvent;
-import org.eclipse.jpt.utility.model.listener.PropertyChangeListener;
-import org.eclipse.jpt.utility.model.listener.StateChangeListener;
-import org.eclipse.jpt.utility.model.value.WritablePropertyValueModel;
-
-/**
- * Abstract model that provides behavior for wrapping a property
- * value model and listening for changes to aspects of the *value* contained
- * by the property value model. Changes to the actual value are also monitored.
- * 
- * This is useful if you have a value that may change, but whose aspects can also
- * change in a fashion that might be of interest to the client.
- * 
- * NB: Clients will need to listen for two different change notifications: a property
- * change event will be be fired when the value changes; a state change event
- * will be fired when an aspect of the value changes.
- * 
- * Subclasses need to override two methods:
- * 
- * #engageValue_()
- *     begin listening to the appropriate aspect of the value and call
- *     #valueAspectChanged(Object) whenever the aspect changes
- * 
- * #disengageValue_()
- *     stop listening to the appropriate aspect of the value
- */
-public abstract class ValueAspectAdapter<T>
-	extends PropertyValueModelWrapper<T>
-	implements WritablePropertyValueModel<T>
-{
-	/** Cache the value so we can disengage. Null until we have a listener*/
-	protected T value;
-
-
-	// ********** constructors/initialization **********
-
-	/**
-	 * Constructor - the value holder is required.
-	 */
-	protected ValueAspectAdapter(WritablePropertyValueModel<T> valueHolder) {
-		super(valueHolder);
-	}
-
-	/**
-	 * Override to allow both property value model change and state change
-	 * listeners.
-	 */
-	@Override
-	protected ChangeSupport buildChangeSupport() {
-		return new ChangeSupport(this);
-	}
-
-
-	// ********** PropertyValueModel implementation **********
-
-	public T getValue() {
-		return this.value;
-	}
-
-
-	// ********** WritablePropertyValueModel implementation **********
-
-	public void setValue(T value) {
-		this.valueHolder().setValue(value);
-	}
-
-
-	// ********** PropertyValueModelWrapper implementation **********
-
-	@Override
-	protected void valueChanged(PropertyChangeEvent event) {
-		this.disengageValue();
-		this.engageValue();
-		this.firePropertyChanged(event.cloneWithSource(this));
-	}
-
-
-	// ********** extend change support **********
-
-	@Override
-	public synchronized void addStateChangeListener(StateChangeListener listener) {
-		if (this.hasNoEngagingListeners()) {
-			this.engageValue();
-		}
-		super.addStateChangeListener(listener);
-	}
-
-	@Override
-	public synchronized void removeStateChangeListener(StateChangeListener listener) {
-		super.removeStateChangeListener(listener);
-		if (this.hasNoEngagingListeners()) {
-			this.disengageValue();
-		}
-	}
-	
-	@Override
-	public synchronized void addPropertyChangeListener(PropertyChangeListener listener) {
-		if (this.hasNoEngagingListeners()) {
-			this.engageValue();
-		}
-		super.addPropertyChangeListener(listener);
-	}
-	
-	@Override
-	public synchronized void addPropertyChangeListener(String propertyName, PropertyChangeListener listener) {
-		if (this.hasNoEngagingListeners()) {
-			this.engageValue();
-		}
-		super.addPropertyChangeListener(propertyName, listener);
-	}
-	
-	@Override
-	public synchronized void removePropertyChangeListener(PropertyChangeListener listener) {
-		super.removePropertyChangeListener(listener);
-		if (this.hasNoEngagingListeners()) {
-			this.disengageValue();
-		}
-	}
-	
-	@Override
-	public synchronized void removePropertyChangeListener(String propertyName, PropertyChangeListener listener) {
-		super.removePropertyChangeListener(propertyName, listener);
-		if (this.hasNoEngagingListeners()) {
-			this.disengageValue();
-		}
-	}
-	
-	protected boolean hasNoEngagingListeners() {
-		return hasNoStateChangeListeners() && hasNoPropertyChangeListeners(VALUE);
-	}
-	
-
-	// ********** behavior **********
-
-	/**
-	 * Start listening to the current value.
-	 */
-	protected void engageValue() {
-		this.value = this.valueHolder.getValue();
-		if (this.value != null) {
-			this.engageValue_();
-		}
-	}
-
-	/**
-	 * Start listening to the current value.
-	 * At this point we can be sure that the value is not null.
-	 */
-	protected abstract void engageValue_();
-
-	/**
-	 * Stop listening to the current value.
-	 */
-	protected void disengageValue() {
-		if (this.value != null) {
-			this.disengageValue_();
-			this.value = null;
-		}
-	}
-
-	/**
-	 * Stop listening to the current value.
-	 * At this point we can be sure that the value is not null.
-	 */
-	protected abstract void disengageValue_();
-
-	/**
-	 * Subclasses should call this method whenever the value's aspect changes.
-	 */
-	protected void valueAspectChanged() {
-		this.fireStateChanged();
-	}
-
-	/**
-	 * Our constructors accept only a WritablePropertyValueModel<T1>.
-	 */
-	@SuppressWarnings("unchecked")
-	protected WritablePropertyValueModel<T> valueHolder() {
-		return (WritablePropertyValueModel<T>) this.valueHolder;
-	}
-
-}
diff --git a/jpa/plugins/org.eclipse.jpt.utility/src/org/eclipse/jpt/utility/internal/model/value/ValueCollectionAdapter.java b/jpa/plugins/org.eclipse.jpt.utility/src/org/eclipse/jpt/utility/internal/model/value/ValueCollectionAdapter.java
deleted file mode 100644
index 069fc0e..0000000
--- a/jpa/plugins/org.eclipse.jpt.utility/src/org/eclipse/jpt/utility/internal/model/value/ValueCollectionAdapter.java
+++ /dev/null
@@ -1,86 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2008 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.utility.internal.model.value;
-
-import java.util.Arrays;
-import org.eclipse.jpt.utility.model.Model;
-import org.eclipse.jpt.utility.model.event.CollectionChangeEvent;
-import org.eclipse.jpt.utility.model.listener.CollectionChangeListener;
-import org.eclipse.jpt.utility.model.value.WritablePropertyValueModel;
-
-/**
- * Extend ValueAspectAdapter to listen to one or more collection
- * aspects of the value in the wrapped value model.
- */
-public class ValueCollectionAdapter<T extends Model>
-	extends ValueAspectAdapter<T>
-{
-
-	/** The names of the value's collections that we listen to. */
-	protected final String[] collectionNames;
-
-	/** Listener that listens to the value. */
-	protected final CollectionChangeListener valueCollectionListener;
-
-
-	// ********** constructors **********
-
-	/**
-	 * Construct an adapter for the specified value collections.
-	 */
-	public ValueCollectionAdapter(WritablePropertyValueModel<T> valueHolder, String... collectionNames) {
-		super(valueHolder);
-		this.collectionNames = collectionNames;
-		this.valueCollectionListener = this.buildValueCollectionListener();
-	}
-
-
-	// ********** initialization **********
-
-	/**
-	 * All we really care about is the fact that a Collection aspect has 
-	 * changed. Do the same thing no matter which event occurs.
-	 */
-	protected CollectionChangeListener buildValueCollectionListener() {
-		return new CollectionChangeListener() {
-			public void itemsAdded(CollectionChangeEvent event) {
-				ValueCollectionAdapter.this.valueAspectChanged();
-			}
-			public void itemsRemoved(CollectionChangeEvent event) {
-				ValueCollectionAdapter.this.valueAspectChanged();
-			}
-			public void collectionCleared(CollectionChangeEvent event) {
-				ValueCollectionAdapter.this.valueAspectChanged();
-			}
-			public void collectionChanged(CollectionChangeEvent event) {
-				ValueCollectionAdapter.this.valueAspectChanged();
-			}
-			@Override
-			public String toString() {
-				return "value collection listener: " + Arrays.asList(ValueCollectionAdapter.this.collectionNames);
-			}
-		};
-	}
-
-	@Override
-	protected void engageValue_() {
-		for (String collectionName : this.collectionNames) {
-			this.value.addCollectionChangeListener(collectionName, this.valueCollectionListener);
-		}
-	}
-
-	@Override
-	protected void disengageValue_() {
-		for (String collectionName : this.collectionNames) {
-			this.value.removeCollectionChangeListener(collectionName, this.valueCollectionListener);
-		}
-	}
-
-}
diff --git a/jpa/plugins/org.eclipse.jpt.utility/src/org/eclipse/jpt/utility/internal/model/value/ValueListAdapter.java b/jpa/plugins/org.eclipse.jpt.utility/src/org/eclipse/jpt/utility/internal/model/value/ValueListAdapter.java
deleted file mode 100644
index 85cb429..0000000
--- a/jpa/plugins/org.eclipse.jpt.utility/src/org/eclipse/jpt/utility/internal/model/value/ValueListAdapter.java
+++ /dev/null
@@ -1,92 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2008 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.utility.internal.model.value;
-
-import java.util.Arrays;
-import org.eclipse.jpt.utility.model.Model;
-import org.eclipse.jpt.utility.model.event.ListChangeEvent;
-import org.eclipse.jpt.utility.model.listener.ListChangeListener;
-import org.eclipse.jpt.utility.model.value.WritablePropertyValueModel;
-
-/**
- * Extend ValueAspectAdapter to listen to one or more list
- * aspects of the value in the wrapped value model.
- */
-public class ValueListAdapter<T extends Model>
-	extends ValueAspectAdapter<T>
-{
-
-	/** The names of the value's lists that we listen to. */
-	protected final String[] listNames;
-
-	/** Listener that listens to the value. */
-	protected final ListChangeListener valueListListener;
-
-
-	// ********** constructors **********
-
-	/**
-	 * Construct an adapter for the specified value lists.
-	 */
-	public ValueListAdapter(WritablePropertyValueModel<T> valueHolder, String... listNames) {
-		super(valueHolder);
-		this.listNames = listNames;
-		this.valueListListener = this.buildValueListListener();
-	}
-
-
-	// ********** initialization **********
-
-	/**
-	 * All we really care about is the fact that a List aspect has 
-	 * changed. Do the same thing no matter which event occurs.
-	 */
-	protected ListChangeListener buildValueListListener() {
-		return new ListChangeListener() {
-			public void itemsAdded(ListChangeEvent event) {
-				ValueListAdapter.this.valueAspectChanged();
-			}
-			public void itemsRemoved(ListChangeEvent event) {
-				ValueListAdapter.this.valueAspectChanged();
-			}
-			public void itemsReplaced(ListChangeEvent event) {
-				ValueListAdapter.this.valueAspectChanged();
-			}
-			public void itemsMoved(ListChangeEvent event) {
-				ValueListAdapter.this.valueAspectChanged();
-			}
-			public void listCleared(ListChangeEvent event) {
-				ValueListAdapter.this.valueAspectChanged();
-			}
-			public void listChanged(ListChangeEvent event) {
-				ValueListAdapter.this.valueAspectChanged();
-			}
-			@Override
-			public String toString() {
-				return "value list listener: " + Arrays.asList(ValueListAdapter.this.listNames);
-			}
-		};
-	}
-
-	@Override
-	protected void engageValue_() {
-		for (String listName : this.listNames) {
-			this.value.addListChangeListener(listName, this.valueListListener);
-		}
-	}
-
-	@Override
-	protected void disengageValue_() {
-		for (String listName : this.listNames) {
-			this.value.removeListChangeListener(listName, this.valueListListener);
-		}
-	}
-
-}
diff --git a/jpa/plugins/org.eclipse.jpt.utility/src/org/eclipse/jpt/utility/internal/model/value/ValuePropertyAdapter.java b/jpa/plugins/org.eclipse.jpt.utility/src/org/eclipse/jpt/utility/internal/model/value/ValuePropertyAdapter.java
deleted file mode 100644
index a3d7e01..0000000
--- a/jpa/plugins/org.eclipse.jpt.utility/src/org/eclipse/jpt/utility/internal/model/value/ValuePropertyAdapter.java
+++ /dev/null
@@ -1,75 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2008 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.utility.internal.model.value;
-
-import java.util.Arrays;
-import org.eclipse.jpt.utility.model.Model;
-import org.eclipse.jpt.utility.model.event.PropertyChangeEvent;
-import org.eclipse.jpt.utility.model.listener.PropertyChangeListener;
-import org.eclipse.jpt.utility.model.value.WritablePropertyValueModel;
-
-/**
- * Extend ValueAspectAdapter to listen to one or more
- * properties of the value in the wrapped value model.
- */
-public class ValuePropertyAdapter<T extends Model>
-	extends ValueAspectAdapter<T>
-{
-	/** The names of the value's properties that we listen to. */
-	protected final String[] propertyNames;
-
-	/** Listener that listens to the value. */
-	protected final PropertyChangeListener valuePropertyListener;
-
-
-	// ********** constructors **********
-
-	/**
-	 * Construct an adapter for the specified value properties.
-	 */
-	public ValuePropertyAdapter(WritablePropertyValueModel<T> valueHolder, String... propertyNames) {
-		super(valueHolder);
-		this.propertyNames = propertyNames;
-		this.valuePropertyListener = this.buildValuePropertyListener();
-	}
-
-
-	// ********** initialization **********
-
-	protected PropertyChangeListener buildValuePropertyListener() {
-		return new PropertyChangeListener() {
-			public void propertyChanged(PropertyChangeEvent event) {
-				ValuePropertyAdapter.this.valueAspectChanged();
-			}
-			@Override
-			public String toString() {
-				return "value property listener: " + Arrays.asList(ValuePropertyAdapter.this.propertyNames);
-			}
-		};
-	}
-	
-
-	// ********** behavior **********
-
-	@Override
-	protected void engageValue_() {
-		for (String propertyName : this.propertyNames) {
-			this.value.addPropertyChangeListener(propertyName, this.valuePropertyListener);
-		}
-	}
-
-	@Override
-	protected void disengageValue_() {
-		for (String propertyName : this.propertyNames) {
-			this.value.removePropertyChangeListener(propertyName, this.valuePropertyListener);
-		}
-	}
-
-}
diff --git a/jpa/plugins/org.eclipse.jpt.utility/src/org/eclipse/jpt/utility/internal/model/value/ValueStateAdapter.java b/jpa/plugins/org.eclipse.jpt.utility/src/org/eclipse/jpt/utility/internal/model/value/ValueStateAdapter.java
deleted file mode 100644
index d516fdb..0000000
--- a/jpa/plugins/org.eclipse.jpt.utility/src/org/eclipse/jpt/utility/internal/model/value/ValueStateAdapter.java
+++ /dev/null
@@ -1,66 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2008 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.utility.internal.model.value;
-
-import org.eclipse.jpt.utility.model.Model;
-import org.eclipse.jpt.utility.model.event.StateChangeEvent;
-import org.eclipse.jpt.utility.model.listener.StateChangeListener;
-import org.eclipse.jpt.utility.model.value.WritablePropertyValueModel;
-
-/**
- * Extend ValueAspectAdapter to listen to the
- * "state" of the value in the wrapped value model.
- */
-public class ValueStateAdapter<T extends Model>
-	extends ValueAspectAdapter<T>
-{
-	/** Listener that listens to value. */
-	protected final StateChangeListener valueStateListener;
-
-
-	// ********** constructors **********
-
-	/**
-	 * Construct an adapter for the value state.
-	 */
-	public ValueStateAdapter(WritablePropertyValueModel<T> valueHolder) {
-		super(valueHolder);
-		this.valueStateListener = this.buildValueStateListener();
-	}
-
-
-	// ********** initialization **********
-
-	protected StateChangeListener buildValueStateListener() {
-		return new StateChangeListener() {
-			public void stateChanged(StateChangeEvent event) {
-				ValueStateAdapter.this.valueAspectChanged();
-			}
-			@Override
-			public String toString() {
-				return "value state listener";
-			}
-		};
-	}
-	
-
-	// ********** behavior **********
-
-	@Override
-	protected void engageValue_() {
-		this.value.addStateChangeListener(this.valueStateListener);
-	}
-
-	@Override
-	protected void disengageValue_() {
-		this.value.removeStateChangeListener(this.valueStateListener);
-	}
-
-}
diff --git a/jpa/plugins/org.eclipse.jpt.utility/src/org/eclipse/jpt/utility/internal/model/value/ValueTreeAdapter.java b/jpa/plugins/org.eclipse.jpt.utility/src/org/eclipse/jpt/utility/internal/model/value/ValueTreeAdapter.java
deleted file mode 100644
index 41361ed..0000000
--- a/jpa/plugins/org.eclipse.jpt.utility/src/org/eclipse/jpt/utility/internal/model/value/ValueTreeAdapter.java
+++ /dev/null
@@ -1,84 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.utility.internal.model.value;
-
-import java.util.Arrays;
-import org.eclipse.jpt.utility.model.Model;
-import org.eclipse.jpt.utility.model.event.TreeChangeEvent;
-import org.eclipse.jpt.utility.model.listener.TreeChangeListener;
-import org.eclipse.jpt.utility.model.value.WritablePropertyValueModel;
-
-/**
- * Extend ValueAspectAdapter to listen to one or more
- * tree aspects of the value in the wrapped value model.
- */
-public class ValueTreeAdapter<T extends Model>
-	extends ValueAspectAdapter<T>
-{
-	/** The names of the value's trees that we listen to. */
-	protected final String[] treeNames;
-
-	/** Listener that listens to the value. */
-	protected final TreeChangeListener valueTreeListener;
-
-
-	// ********** constructors **********
-
-	/**
-	 * Construct an adapter for the specified value trees.
-	 */
-	public ValueTreeAdapter(WritablePropertyValueModel<T> valueHolder, String... treeNames) {
-		super(valueHolder);
-		this.treeNames = treeNames;
-		this.valueTreeListener = this.buildValueTreeListener();
-	}
-
-
-	// ********** initialization **********
-
-	protected TreeChangeListener buildValueTreeListener() {
-		return new TreeChangeListener() {
-			public void nodeAdded(TreeChangeEvent event) {
-				ValueTreeAdapter.this.valueAspectChanged();
-			}
-			public void nodeRemoved(TreeChangeEvent event) {
-				ValueTreeAdapter.this.valueAspectChanged();
-			}
-			public void treeCleared(TreeChangeEvent event) {
-				ValueTreeAdapter.this.valueAspectChanged();
-			}
-			public void treeChanged(TreeChangeEvent event) {
-				ValueTreeAdapter.this.valueAspectChanged();
-			}
-			@Override
-			public String toString() {
-				return "value tree listener: " + Arrays.asList(ValueTreeAdapter.this.treeNames);
-			}
-		};
-	}
-
-
-	// ********** behavior **********
-
-	@Override
-	protected void engageValue_() {
-		for (String treeName : this.treeNames) {
-			this.value.addTreeChangeListener(treeName, this.valueTreeListener);
-		}
-	}
-
-	@Override
-	protected void disengageValue_() {
-		for (String treeName : this.treeNames) {
-			this.value.removeTreeChangeListener(treeName, this.valueTreeListener);
-		}
-	}
-
-}
diff --git a/jpa/plugins/org.eclipse.jpt.utility/src/org/eclipse/jpt/utility/internal/model/value/prefs/PreferencePropertyValueModel.java b/jpa/plugins/org.eclipse.jpt.utility/src/org/eclipse/jpt/utility/internal/model/value/prefs/PreferencePropertyValueModel.java
deleted file mode 100644
index 44a9d56..0000000
--- a/jpa/plugins/org.eclipse.jpt.utility/src/org/eclipse/jpt/utility/internal/model/value/prefs/PreferencePropertyValueModel.java
+++ /dev/null
@@ -1,345 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2008 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.utility.internal.model.value.prefs;
-
-import java.util.prefs.PreferenceChangeEvent;
-import java.util.prefs.PreferenceChangeListener;
-import java.util.prefs.Preferences;
-import org.eclipse.jpt.utility.internal.BidiStringConverter;
-import org.eclipse.jpt.utility.internal.model.value.AspectAdapter;
-import org.eclipse.jpt.utility.internal.model.value.StaticPropertyValueModel;
-import org.eclipse.jpt.utility.model.listener.ChangeListener;
-import org.eclipse.jpt.utility.model.listener.PropertyChangeListener;
-import org.eclipse.jpt.utility.model.value.PropertyValueModel;
-import org.eclipse.jpt.utility.model.value.WritablePropertyValueModel;
-
-/**
- * This adapter wraps a Preference and converts it into a PropertyValueModel.
- * It listens for the appropriate "preference" changes and converts them into
- * VALUE property changes. It also allows the specification of a default value
- * for the Preference, which, by default, is null (and is probably *not* a very
- * good default).
- * 
- * You can configure whether the preference's value is returned,
- * unchanged, as a string or as some other object (e.g. an Integer) by
- * setting the adapter's converter. Internally, the preference's value
- * is stored as the converted object; and the conversions take place
- * when reading or writing from the preferences node or retrieving the
- * value from an event fired by the preferences node.
- * 
- * This adapter is a bit different from most other adapters because the
- * change events fired off by a Preferences node are asynchronous from
- * the change itself. (AbstractPreferences uses an event dispatch daemon.)
- * As a result, a client can set our value with #setValue(Object) and we
- * will return from that method before we ever receive notification from
- * the Preferences node that *it* has changed. This means we cannot
- * rely on that event to keep our internally cached value in synch.
- */
-public class PreferencePropertyValueModel<P>
-	extends AspectAdapter<Preferences>
-	implements WritablePropertyValueModel<P>
-{
-	/** The key to the preference we use for the value. */
-	protected final String key;
-
-	/**
-	 * Cache the current (object) value of the preference so we
-	 * can pass an "old value" when we fire a property change event.
-	 */
-	protected P value;
-
-	/**
-	 * The default (object) value returned if there is no value
-	 * associated with the preference.
-	 */
-	protected final P defaultValue;
-
-	/**
-	 * This converter is used to convert the preference's
-	 * string value to and from an object.
-	 */
-	protected final BidiStringConverter<P> converter;
-
-	/** A listener that listens to the appropriate preference. */
-	protected final PreferenceChangeListener preferenceChangeListener;
-
-
-	// ********** constructors **********
-
-	/**
-	 * Construct an adapter for the specified preference.
-	 * The default value of the preference will be null.
-	 */
-	public PreferencePropertyValueModel(Preferences preferences, String key) {
-		this(preferences, key, null);
-	}
-
-	/**
-	 * Construct an adapter for the specified preference with
-	 * the specified default value for the preference.
-	 */
-	public PreferencePropertyValueModel(Preferences preferences, String key, P defaultValue) {
-		this(preferences, key, defaultValue, BidiStringConverter.Default.<P>instance());
-	}
-
-	/**
-	 * Construct an adapter for the specified preference with
-	 * the specified default value for the preference.
-	 */
-	public PreferencePropertyValueModel(Preferences preferences, String key, P defaultValue, BidiStringConverter<P> converter) {
-		this(new StaticPropertyValueModel<Preferences>(preferences), key, defaultValue, converter);
-	}
-
-	/**
-	 * Construct an adapter for the specified preference with
-	 * the specified default value for the preference.
-	 */
-	public static PreferencePropertyValueModel<Boolean> forBoolean(Preferences preferences, String key, boolean defaultValue) {
-		return new PreferencePropertyValueModel<Boolean>(
-				preferences,
-				key,
-				defaultValue ? Boolean.TRUE : Boolean.FALSE,
-				BidiStringConverter.BooleanConverter.instance()
-			);
-	}
-
-	/**
-	 * Construct an adapter for the specified preference with
-	 * the specified default value for the preference.
-	 */
-	public static PreferencePropertyValueModel<Integer> forInteger(Preferences preferences, String key, int defaultValue) {
-		return new PreferencePropertyValueModel<Integer>(
-				preferences,
-				key,
-				new Integer(defaultValue),
-				BidiStringConverter.IntegerConverter.instance()
-			);
-	}
-
-	/**
-	 * Construct an adapter for the specified preference.
-	 * The default value of the preference will be null.
-	 */
-	public PreferencePropertyValueModel(PropertyValueModel<? extends Preferences> preferencesHolder, String key) {
-		this(preferencesHolder, key, null);
-	}
-
-	/**
-	 * Construct an adapter for the specified preference with
-	 * the specified default value for the preference.
-	 */
-	public PreferencePropertyValueModel(PropertyValueModel<? extends Preferences> preferencesHolder, String key, P defaultValue) {
-		this(preferencesHolder, key, defaultValue, BidiStringConverter.Default.<P>instance());
-	}
-
-	/**
-	 * Construct an adapter for the specified preference with
-	 * the specified default value for the preference.
-	 */
-	public PreferencePropertyValueModel(PropertyValueModel<? extends Preferences> preferencesHolder, String key, P defaultValue, BidiStringConverter<P> converter) {
-		super(preferencesHolder);
-		this.key = key;
-		this.defaultValue = defaultValue;
-		this.converter = converter;
-		this.preferenceChangeListener = this.buildPreferenceChangeListener();
-		// our value is null when we are not listening to the preference
-		this.value = null;
-	}
-
-
-	// ********** initialization **********
-
-	/**
-	 * A preference has changed, notify the listeners if necessary.
-	 */
-	protected PreferenceChangeListener buildPreferenceChangeListener() {
-		// transform the preference change events into VALUE property change events
-		return new PreferenceChangeListener() {
-			public void preferenceChange(PreferenceChangeEvent event) {
-				PreferencePropertyValueModel.this.preferenceChanged(event.getKey(), event.getNewValue());
-			}
-			@Override
-			public String toString() {
-				return "preference change listener";
-			}
-		};
-	}
-
-
-	// ********** ValueModel implementation **********
-
-	/**
-	 * Return the cached (converted) value.
-	 */
-	@Override
-	public synchronized P getValue() {
-		return this.value;
-	}
-
-
-	// ********** PropertyValueModel implementation **********
-
-	/**
-	 * Set the cached value, then set the appropriate preference value.
-	 */
-	public synchronized void setValue(P value) {
-		if (this.hasNoListeners()) {
-			return;		// no changes allowed when we have no listeners
-		}
-
-		Object old = this.value;
-		this.value = value;
-		this.fireAspectChange(old, value);
-
-		if ((this.subject != null) && this.shouldSetPreference(old, value)) {
-			this.setValue_(value);
-		}
-	}
-
-
-	// ********** AspectAdapter implementation **********
-
-	@Override
-	protected Class<? extends ChangeListener> getListenerClass() {
-		return PropertyChangeListener.class;
-	}
-
-	@Override
-	protected String getListenerAspectName() {
-		return VALUE;
-	}
-
-	@Override
-	protected boolean hasListeners() {
-		return this.hasAnyPropertyChangeListeners(VALUE);
-	}
-
-	@Override
-	protected void fireAspectChange(Object oldValue, Object newValue) {
-		this.firePropertyChanged(VALUE, oldValue, newValue);
-	}
-
-	@Override
-	protected void engageSubject_() {
-		this.subject.addPreferenceChangeListener(this.preferenceChangeListener);
-		this.value = this.buildValue();
-	}
-
-	@Override
-	protected void disengageSubject_() {
-		try {
-			this.subject.removePreferenceChangeListener(this.preferenceChangeListener);
-		} catch (IllegalStateException ex) {
-			// for some odd reason, we are not allowed to remove a listener from a "dead"
-			// preferences node; so handle the exception that gets thrown here
-			if ( ! ex.getMessage().equals("Node has been removed.")) {
-				// if it is not the expected exception, re-throw it
-				throw ex;
-			}
-		}
-		this.value = null;
-	}
-
-
-	// ********** AbstractModel implementation **********
-
-	@Override
-	public void toString(StringBuilder sb) {
-		sb.append(this.key);
-		sb.append(" => ");
-		sb.append(this.value);
-	}
-
-
-	// ********** public API **********
-
-	/**
-	 * Return the preference's key.
-	 */
-	public String getKey() {
-		return this.key;
-	}
-
-
-	// ********** internal methods **********
-
-	/**
-	 * Return the preference's value.
-	 * At this point the subject may be null.
-	 */
-	protected P buildValue() {
-		return (this.subject == null) ? null : this.buildValue_();
-	}
-
-	/**
-	 * Return the appropriate preference, converted to the appropriate object.
-	 * At this point we can be sure that the subject is not null.
-	 */
-	protected P buildValue_() {
-		return this.convertToObject(this.subject.get(this.key, this.convertToString(this.defaultValue)));
-	}
-
-	/**
-	 * Set the appropriate preference after converting the value to a string.
-	 * At this point we can be sure that the subject is not null.
-	 */
-	protected void setValue_(P value) {
-		this.subject.put(this.key, this.convertToString(value));
-	}
-
-	/**
-	 * Return whether the specified new value should be passed
-	 * through to the preference. By default, only if the value has changed,
-	 * will it be passed through to the preference. This also has the
-	 * effect of not creating new preferences in the "backing store"
-	 * if the new value is the same as the default value.
-	 * 
-	 * Subclasses can override this method to return true if they
-	 * would like to ALWAYS pass through the new value to the preference.
-	 */
-	protected boolean shouldSetPreference(Object oldValue, Object newValue) {
-		return this.attributeValueHasChanged(oldValue, newValue);
-	}
-
-	/**
-	 * Convert the specified object to a string that can be stored as
-	 * the value of the preference.
-	 */
-	protected String convertToString(P o) {
-		return this.converter.convertToString(o);
-	}
-
-	/**
-	 * Convert the specified preference value string to an
-	 * appropriately-typed object to be returned to the client.
-	 */
-	protected P convertToObject(String s) {
-		return this.converter.convertToObject(s);
-	}
-
-	protected void preferenceChanged(String prefKey, String newValue) {
-		if (prefKey.equals(this.key)) {
-			this.preferenceChanged();
-		}
-	}
-
-	/**
-	 * The underlying preference changed; either because we changed it
-	 * in #setValue_(Object) or a third-party changed it.
-	 * If this is called because of our own change, the event will be
-	 * swallowed because the old and new values are the same.
-	 */
-	protected synchronized void preferenceChanged() {
-		Object old = this.value;
-		this.value = this.buildValue();
-		this.fireAspectChange(old, this.value);
-	}
-
-}
diff --git a/jpa/plugins/org.eclipse.jpt.utility/src/org/eclipse/jpt/utility/internal/model/value/prefs/PreferencesCollectionValueModel.java b/jpa/plugins/org.eclipse.jpt.utility/src/org/eclipse/jpt/utility/internal/model/value/prefs/PreferencesCollectionValueModel.java
deleted file mode 100644
index 546a668..0000000
--- a/jpa/plugins/org.eclipse.jpt.utility/src/org/eclipse/jpt/utility/internal/model/value/prefs/PreferencesCollectionValueModel.java
+++ /dev/null
@@ -1,200 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2008 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.utility.internal.model.value.prefs;
-
-import java.util.HashMap;
-import java.util.Iterator;
-import java.util.prefs.BackingStoreException;
-import java.util.prefs.PreferenceChangeEvent;
-import java.util.prefs.PreferenceChangeListener;
-import java.util.prefs.Preferences;
-import org.eclipse.jpt.utility.internal.iterators.ArrayIterator;
-import org.eclipse.jpt.utility.internal.iterators.TransformationIterator;
-import org.eclipse.jpt.utility.internal.model.value.AspectAdapter;
-import org.eclipse.jpt.utility.internal.model.value.StaticPropertyValueModel;
-import org.eclipse.jpt.utility.model.listener.ChangeListener;
-import org.eclipse.jpt.utility.model.listener.CollectionChangeListener;
-import org.eclipse.jpt.utility.model.value.CollectionValueModel;
-import org.eclipse.jpt.utility.model.value.PropertyValueModel;
-
-/**
- * This adapter wraps a Preferences node and converts its preferences into a
- * CollectionValueModel of PreferencePropertyValueModels. It listens for
- * "preference" changes and converts them into VALUE collection changes.
- */
-public class PreferencesCollectionValueModel<P>
-	extends AspectAdapter<Preferences>
-	implements CollectionValueModel<PreferencePropertyValueModel<P>>
-{
-
-	/** Cache the current preferences, stored in models and keyed by name. */
-	protected final HashMap<String, PreferencePropertyValueModel<P>> preferences;
-
-	/** A listener that listens to the preferences node for added or removed preferences. */
-	protected final PreferenceChangeListener preferenceChangeListener;
-
-
-	// ********** constructors **********
-
-	/**
-	 * Construct an adapter for the specified preferences node.
-	 */
-	public PreferencesCollectionValueModel(Preferences preferences) {
-		this(new StaticPropertyValueModel<Preferences>(preferences));
-	}
-
-	/**
-	 * Construct an adapter for the specified preferences node.
-	 */
-	public PreferencesCollectionValueModel(PropertyValueModel<? extends Preferences> preferencesHolder) {
-		super(preferencesHolder);
-		this.preferences = new HashMap<String, PreferencePropertyValueModel<P>>();
-		this.preferenceChangeListener = this.buildPreferenceChangeListener();
-	}
-
-
-	// ********** initialization **********
-
-	/**
-	 * A preferences have changed, notify the listeners.
-	 */
-	protected PreferenceChangeListener buildPreferenceChangeListener() {
-		// transform the preference change events into VALUE collection change events
-		return new PreferenceChangeListener() {
-			public void preferenceChange(PreferenceChangeEvent event) {
-				PreferencesCollectionValueModel.this.preferenceChanged(event.getKey(), event.getNewValue());
-			}
-			@Override
-			public String toString() {
-				return "preference change listener";
-			}
-		};
-	}
-
-
-	// ********** CollectionValueModel implementation **********
-
-	/**
-	 * Return an iterator on the preference models.
-	 */
-	public synchronized Iterator<PreferencePropertyValueModel<P>> iterator() {
-		return this.preferences.values().iterator();
-	}
-
-	public synchronized int size() {
-		return this.preferences.size();
-	}
-
-
-	// ********** AspectAdapter implementation **********
-
-	@Override
-	protected Object getValue() {
-		return this.iterator();
-	}
-
-	@Override
-	protected Class<? extends ChangeListener> getListenerClass() {
-		return CollectionChangeListener.class;
-	}
-
-	@Override
-	protected String getListenerAspectName() {
-		return VALUES;
-	}
-
-    @Override
-	protected boolean hasListeners() {
-		return this.hasAnyCollectionChangeListeners(VALUES);
-	}
-
-    @Override
-	protected void fireAspectChange(Object oldValue, Object newValue) {
-		this.fireCollectionChanged(VALUES);
-	}
-
-    @Override
-	protected void engageSubject_() {
-		this.subject.addPreferenceChangeListener(this.preferenceChangeListener);
-		for (Iterator<PreferencePropertyValueModel<P>> stream = this.preferenceModels(); stream.hasNext(); ) {
-			PreferencePropertyValueModel<P> preferenceModel = stream.next();
-			this.preferences.put(preferenceModel.getKey(), preferenceModel);
-		}
-	}
-
-    @Override
-	protected void disengageSubject_() {
-		try {
-			this.subject.removePreferenceChangeListener(this.preferenceChangeListener);
-		} catch (IllegalStateException ex) {
-			// for some odd reason, we are not allowed to remove a listener from a "dead"
-			// preferences node; so handle the exception that gets thrown here
-			if ( ! ex.getMessage().equals("Node has been removed.")) {
-				// if it is not the expected exception, re-throw it
-				throw ex;
-			}
-		}
-		this.preferences.clear();
-	}
-
-
-	// ********** AbstractModel implementation **********
-
-	@Override
-	public void toString(StringBuilder sb) {
-		sb.append(this.subject);
-	}
-
-
-	// ********** internal methods **********
-
-	/**
-	 * Return an iterator on the preference models.
-	 * At this point we can be sure that the subject is not null.
-	 */
-	protected Iterator<PreferencePropertyValueModel<P>> preferenceModels() {
-		String[] keys;
-		try {
-			keys = this.subject.keys();
-		} catch (BackingStoreException ex) {
-			throw new RuntimeException(ex);
-		}
-		return new TransformationIterator<String, PreferencePropertyValueModel<P>>(new ArrayIterator<String>(keys)) {
-			@Override
-			protected PreferencePropertyValueModel<P> transform(String key) {
-				return PreferencesCollectionValueModel.this.buildPreferenceModel(key);
-			}
-		};
-	}
-
-	/**
-	 * Override this method to tweak the model used to wrap the
-	 * specified preference (e.g. to customize the model's converter).
-	 */
-	protected PreferencePropertyValueModel<P> buildPreferenceModel(String key) {
-		return new PreferencePropertyValueModel<P>(this.subjectHolder, key);
-	}
-
-	protected synchronized void preferenceChanged(String key, String newValue) {
-		if (newValue == null) {
-			// a preference was removed
-			PreferencePropertyValueModel<P> preferenceModel = this.preferences.remove(key);
-			this.fireItemRemoved(VALUES, preferenceModel);
-		} else if ( ! this.preferences.containsKey(key)) {
-			// a preference was added
-			PreferencePropertyValueModel<P> preferenceModel = this.buildPreferenceModel(key);
-			this.preferences.put(key, preferenceModel);
-			this.fireItemAdded(VALUES, preferenceModel);
-		} else {
-			// a preference's value changed - do nothing
-		}
-	}
-
-}
diff --git a/jpa/plugins/org.eclipse.jpt.utility/src/org/eclipse/jpt/utility/internal/model/value/swing/AbstractTreeModel.java b/jpa/plugins/org.eclipse.jpt.utility/src/org/eclipse/jpt/utility/internal/model/value/swing/AbstractTreeModel.java
deleted file mode 100644
index 302a83f..0000000
--- a/jpa/plugins/org.eclipse.jpt.utility/src/org/eclipse/jpt/utility/internal/model/value/swing/AbstractTreeModel.java
+++ /dev/null
@@ -1,216 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2008 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.utility.internal.model.value.swing;
-
-import java.io.Serializable;
-import javax.swing.event.EventListenerList;
-import javax.swing.event.TreeModelEvent;
-import javax.swing.event.TreeModelListener;
-import javax.swing.tree.TreeModel;
-
-/**
- * Abstract class that should have been provided by the JDK
- * (à la javax.swing.AbstractListModel). This class provides:
- * - support for a collection of listeners
- * - a number of convenience methods for firing events for those listeners
- */
-public abstract class AbstractTreeModel
-	implements TreeModel, Serializable
-{
-	/** Our listeners. */
-	protected final EventListenerList listenerList;
-
-
-	// ********** constructors/initialization **********
-
-	protected AbstractTreeModel() {
-		super();
-		this.listenerList = new EventListenerList();
-	}
-
-
-	// ********** partial TreeModel implementation **********
-
-	public void addTreeModelListener(TreeModelListener l) {
-		this.listenerList.add(TreeModelListener.class, l);
-	}
-
-	public void removeTreeModelListener(TreeModelListener l) {
-		this.listenerList.remove(TreeModelListener.class, l);
-	}
-
-
-	// ********** queries **********
-
-	/**
-	 * Return the model's current collection of listeners.
-	 * (There seems to be a pattern of making this type of method public;
-	 * although it should probably be protected....)
-	 */
-	public TreeModelListener[] treeModelListeners() {
- 		return this.listenerList.getListeners(TreeModelListener.class);
-	}
-
-	/**
-	 * Return whether this model has no listeners.
-	 */
-	protected boolean hasNoTreeModelListeners() {
-		return this.listenerList.getListenerCount(TreeModelListener.class) == 0;
-	}
-
-	/**
-	 * Return whether this model has any listeners.
-	 */
-	protected boolean hasTreeModelListeners() {
-		return ! this.hasNoTreeModelListeners();
-	}
-
-
-	// ********** behavior **********
-
-	/**
-	 * Notify listeners of a model change.
-	 * A significant property of the nodes changed, but the nodes themselves
-	 * are still the same objects.
-	 * @see javax.swing.event.TreeModelEvent
-	 * @see javax.swing.event.TreeModelListener
-	 */
-	protected void fireTreeNodesChanged(Object[] path, int[] childIndices, Object[] children) {
-		// guaranteed to return a non-null array
-		Object[] listeners = this.listenerList.getListenerList();
-		TreeModelEvent event = null;
-		// process the listeners last to first, notifying
-		// those that are interested in this event
-		for (int i = listeners.length-2; i>=0; i-=2) {
-			if (listeners[i]==TreeModelListener.class) {
-				// lazily create the event
-				if (event == null) {
-					event = new TreeModelEvent(this, path, childIndices, children);
-				}
-				((TreeModelListener) listeners[i+1]).treeNodesChanged(event);
-			}
-		}
-	}
-
-
-	/**
-	 * Notify listeners of a model change.
-	 * A significant property of the node changed, but the node itself is the same object.
-	 * @see javax.swing.event.TreeModelEvent
-	 * @see javax.swing.event.TreeModelListener
-	 */
-	protected void fireTreeNodeChanged(Object[] path, int childIndex, Object child) {
-		this.fireTreeNodesChanged(path, new int[] {childIndex}, new Object[] {child});
-	}
-
-	/**
-	 * Notify listeners of a model change.
-	 * A significant property of the root changed, but the root itself is the same object.
-	 * @see javax.swing.event.TreeModelEvent
-	 * @see javax.swing.event.TreeModelListener
-	 */
-	protected void fireTreeRootChanged(Object root) {
-		this.fireTreeNodesChanged(new Object[] {root}, null, null);
-	}
-
-	/**
-	 * Notify listeners of a model change.
-	 * @see javax.swing.event.TreeModelEvent
-	 * @see javax.swing.event.TreeModelListener
-	 */
-	protected void fireTreeNodesInserted(Object[] path, int[] childIndices, Object[] children) {
-		// guaranteed to return a non-null array
-		Object[] listeners = this.listenerList.getListenerList();
-		TreeModelEvent event = null;
-		// process the listeners last to first, notifying
-		// those that are interested in this event
-		for (int i = listeners.length-2; i>=0; i-=2) {
-			if (listeners[i]==TreeModelListener.class) {
-				// lazily create the event
-				if (event == null) {
-					event = new TreeModelEvent(this, path, childIndices, children);
-				}
-				((TreeModelListener) listeners[i+1]).treeNodesInserted(event);
-			}
-		}
-	}
-
-	/**
-	 * Notify listeners of a model change.
-	 * @see javax.swing.event.TreeModelEvent
-	 * @see javax.swing.event.TreeModelListener
-	 */
-	protected void fireTreeNodeInserted(Object[] path, int childIndex, Object child) {
-		this.fireTreeNodesInserted(path, new int[] {childIndex}, new Object[] {child});
-	}
-
-	/**
-	 * Notify listeners of a model change.
-	 * @see javax.swing.event.TreeModelEvent
-	 * @see javax.swing.event.TreeModelListener
-	 */
-	protected void fireTreeNodesRemoved(Object[] path, int[] childIndices, Object[] children) {
-		// guaranteed to return a non-null array
-		Object[] listeners = this.listenerList.getListenerList();
-		TreeModelEvent event = null;
-		// process the listeners last to first, notifying
-		// those that are interested in this event
-		for (int i = listeners.length-2; i>=0; i-=2) {
-			if (listeners[i]==TreeModelListener.class) {
-				// lazily create the event
-				if (event == null) {
-					event = new TreeModelEvent(this, path, childIndices, children);
-				}
-				((TreeModelListener) listeners[i+1]).treeNodesRemoved(event);
-			}
-		}
-	}
-
-	/**
-	 * Notify listeners of a model change.
-	 * @see javax.swing.event.TreeModelEvent
-	 * @see javax.swing.event.TreeModelListener
-	 */
-	protected void fireTreeNodeRemoved(Object[] path, int childIndex, Object child) {
-		this.fireTreeNodesRemoved(path, new int[] {childIndex}, new Object[] {child});
-	}
-
-	/**
-	 * Notify listeners of a model change.
-	 * @see javax.swing.event.TreeModelEvent
-	 * @see javax.swing.event.TreeModelListener
-	 */
-	protected void fireTreeStructureChanged(Object[] path) {
-		// guaranteed to return a non-null array
-		Object[] listeners = this.listenerList.getListenerList();
-		TreeModelEvent event = null;
-		// process the listeners last to first, notifying
-		// those that are interested in this event
-		for (int i = listeners.length-2; i>=0; i-=2) {
-			if (listeners[i]==TreeModelListener.class) {
-				// lazily create the event
-				if (event == null) {
-					event = new TreeModelEvent(this, path);
-				}
-				((TreeModelListener) listeners[i+1]).treeStructureChanged(event);
-			}
-		}
-	}
-
-	/**
-	 * Notify listeners of a model change.
-	 * @see javax.swing.event.TreeModelEvent
-	 * @see javax.swing.event.TreeModelListener
-	 */
-	protected void fireTreeRootReplaced(Object newRoot) {
-		this.fireTreeStructureChanged(new Object[] {newRoot});
-	}
-
-}
diff --git a/jpa/plugins/org.eclipse.jpt.utility/src/org/eclipse/jpt/utility/internal/model/value/swing/CheckBoxModelAdapter.java b/jpa/plugins/org.eclipse.jpt.utility/src/org/eclipse/jpt/utility/internal/model/value/swing/CheckBoxModelAdapter.java
deleted file mode 100644
index 126cbfa..0000000
--- a/jpa/plugins/org.eclipse.jpt.utility/src/org/eclipse/jpt/utility/internal/model/value/swing/CheckBoxModelAdapter.java
+++ /dev/null
@@ -1,43 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2008 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.utility.internal.model.value.swing;
-
-import org.eclipse.jpt.utility.model.value.WritablePropertyValueModel;
-
-/**
- * This javax.swing.ButtonModel can be used to keep a listener
- * (e.g. a JCheckBox) in synch with a PropertyValueModel that
- * holds a boolean.
- * 
- * Maybe not the richest class in our toolbox, but it was the
- * victim of refactoring....  ~bjv
- */
-public class CheckBoxModelAdapter
-	extends ToggleButtonModelAdapter
-{
-
-	// ********** constructors **********
-
-	/**
-	 * Constructor - the boolean holder is required.
-	 */
-	public CheckBoxModelAdapter(WritablePropertyValueModel<Boolean> booleanHolder, boolean defaultValue) {
-		super(booleanHolder, defaultValue);
-	}
-
-	/**
-	 * Constructor - the boolean holder is required.
-	 * The default value will be false.
-	 */
-	public CheckBoxModelAdapter(WritablePropertyValueModel<Boolean> booleanHolder) {
-		super(booleanHolder);
-	}
-
-}
diff --git a/jpa/plugins/org.eclipse.jpt.utility/src/org/eclipse/jpt/utility/internal/model/value/swing/ColumnAdapter.java b/jpa/plugins/org.eclipse.jpt.utility/src/org/eclipse/jpt/utility/internal/model/value/swing/ColumnAdapter.java
deleted file mode 100644
index 482b5d2..0000000
--- a/jpa/plugins/org.eclipse.jpt.utility/src/org/eclipse/jpt/utility/internal/model/value/swing/ColumnAdapter.java
+++ /dev/null
@@ -1,49 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2008 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.utility.internal.model.value.swing;
-
-import org.eclipse.jpt.utility.model.value.WritablePropertyValueModel;
-
-
-/**
- * This adapter is used by the table model adapter to
- * convert a model object into the models used for each of
- * the cells for the object's corresponding row in the table.
- */
-public interface ColumnAdapter {
-	/**
-	 * Return the number of columns in the table.
-	 * Typically this is static.
-	 */
-	int columnCount();
-
-	/**
-	 * Return the name of the specified column.
-	 */
-	String columnName(int index);
-
-	/**
-	 * Return the class of the specified column.
-	 */
-	Class<?> columnClass(int index);
-
-	/**
-	 * Return whether the specified column is editable.
-	 * Typically this is the same for every row.
-	 */
-	boolean columnIsEditable(int index);
-
-	/**
-	 * Return the cell models for the specified subject
-	 * that corresponds to a single row in the table.
-	 */
-	WritablePropertyValueModel<Object>[] cellModels(Object subject);
-
-}
\ No newline at end of file
diff --git a/jpa/plugins/org.eclipse.jpt.utility/src/org/eclipse/jpt/utility/internal/model/value/swing/ComboBoxModelAdapter.java b/jpa/plugins/org.eclipse.jpt.utility/src/org/eclipse/jpt/utility/internal/model/value/swing/ComboBoxModelAdapter.java
deleted file mode 100644
index b3e0c92..0000000
--- a/jpa/plugins/org.eclipse.jpt.utility/src/org/eclipse/jpt/utility/internal/model/value/swing/ComboBoxModelAdapter.java
+++ /dev/null
@@ -1,140 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2008 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.utility.internal.model.value.swing;
-
-import javax.swing.ComboBoxModel;
-import org.eclipse.jpt.utility.internal.StringTools;
-import org.eclipse.jpt.utility.internal.model.listener.awt.AWTPropertyChangeListenerWrapper;
-import org.eclipse.jpt.utility.model.event.PropertyChangeEvent;
-import org.eclipse.jpt.utility.model.listener.PropertyChangeListener;
-import org.eclipse.jpt.utility.model.value.CollectionValueModel;
-import org.eclipse.jpt.utility.model.value.ListValueModel;
-import org.eclipse.jpt.utility.model.value.PropertyValueModel;
-import org.eclipse.jpt.utility.model.value.WritablePropertyValueModel;
-
-/**
- * This javax.swing.ComboBoxModel can be used to keep a ListDataListener
- * (e.g. a JComboBox) in synch with a ListValueModel (or a CollectionValueModel).
- * For combo boxes, the model object that holds the current selection is
- * typically a different model object than the one that holds the collection
- * of choices.
- * 
- * For example, a MWReference (the selectionOwner) has an attribute
- * "sourceTable" (the collectionOwner)
- * which holds on to a collection of MWDatabaseFields. When the selection
- * is changed this model will keep the listeners aware of the changes.
- * The inherited list model will keep its listeners aware of changes to the
- * collection model
- * 
- * In addition to the collection holder required by the superclass,
- * an instance of this ComboBoxModel must be supplied with a
- * selection holder, which is a PropertyValueModel that provides access
- * to the selection (typically a PropertyAspectAdapter).
- */
-public class ComboBoxModelAdapter
-	extends ListModelAdapter
-	implements ComboBoxModel
-{
-	protected final WritablePropertyValueModel<Object> selectionHolder;
-	protected final PropertyChangeListener selectionListener;
-
-
-	// ********** constructors **********
-
-	/**
-	 * Constructor - the list holder and selection holder are required;
-	 */
-	public ComboBoxModelAdapter(ListValueModel<?> listHolder, WritablePropertyValueModel<Object> selectionHolder) {
-		super(listHolder);
-		if (selectionHolder == null) {
-			throw new NullPointerException();
-		}
-		this.selectionHolder = selectionHolder;
-		this.selectionListener = this.buildSelectionListener();
-	}
-
-	/**
-	 * Constructor - the collection holder and selection holder are required;
-	 */
-	public ComboBoxModelAdapter(CollectionValueModel<?> collectionHolder, WritablePropertyValueModel<Object> selectionHolder) {
-		super(collectionHolder);
-		if (selectionHolder == null) {
-			throw new NullPointerException();
-		}
-		this.selectionHolder = selectionHolder;
-		this.selectionListener = this.buildSelectionListener();
-	}
-
-
-	// ********** initialization **********
-
-	protected PropertyChangeListener buildSelectionListener() {
-		return new AWTPropertyChangeListenerWrapper(this.buildSelectionListener_());
-	}
-
-	protected PropertyChangeListener buildSelectionListener_() {
-		return new PropertyChangeListener() {
-			public void propertyChanged(PropertyChangeEvent event) {
-				// notify listeners that the selection has changed
-				ComboBoxModelAdapter.this.fireSelectionChanged();
-			}
-			@Override
-			public String toString() {
-				return "selection listener";
-			}
-		};
-	}
-
-
-	// ********** ComboBoxModel implementation **********
-
-	public Object getSelectedItem() {
-		return this.selectionHolder.getValue();
-	}
-
-	public void setSelectedItem(Object selectedItem) {
-		this.selectionHolder.setValue(selectedItem);
-	}
-
-
-	// ********** behavior **********
-
-	/**
-	 * Extend to engage the selection holder.
-	 */
-	@Override
-	protected void engageModel() {
-		super.engageModel();
-		this.selectionHolder.addPropertyChangeListener(PropertyValueModel.VALUE, this.selectionListener);
-	}
-
-	/**
-	 * Extend to disengage the selection holder.
-	 */
-	@Override
-	protected void disengageModel() {
-		this.selectionHolder.removePropertyChangeListener(PropertyValueModel.VALUE, this.selectionListener);
-		super.disengageModel();
-	}
-
-	/**
-	 * Notify the listeners that the selection has changed.
-	 */
-	protected void fireSelectionChanged() {
-		// I guess this will work...
-		this.fireContentsChanged(this, -1, -1);
-	}
-
-	@Override
-	public String toString() {
-		return StringTools.buildToStringFor(this, this.selectionHolder + ":" + this.listHolder);
-	}
-
-}
diff --git a/jpa/plugins/org.eclipse.jpt.utility/src/org/eclipse/jpt/utility/internal/model/value/swing/DateSpinnerModelAdapter.java b/jpa/plugins/org.eclipse.jpt.utility/src/org/eclipse/jpt/utility/internal/model/value/swing/DateSpinnerModelAdapter.java
deleted file mode 100644
index 66d09d2..0000000
--- a/jpa/plugins/org.eclipse.jpt.utility/src/org/eclipse/jpt/utility/internal/model/value/swing/DateSpinnerModelAdapter.java
+++ /dev/null
@@ -1,198 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2008 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.utility.internal.model.value.swing;
-
-import java.util.Calendar;
-import java.util.Date;
-import javax.swing.SpinnerDateModel;
-import javax.swing.event.ChangeListener;
-import org.eclipse.jpt.utility.internal.StringTools;
-import org.eclipse.jpt.utility.internal.model.listener.awt.AWTPropertyChangeListenerWrapper;
-import org.eclipse.jpt.utility.model.event.PropertyChangeEvent;
-import org.eclipse.jpt.utility.model.listener.PropertyChangeListener;
-import org.eclipse.jpt.utility.model.value.PropertyValueModel;
-import org.eclipse.jpt.utility.model.value.WritablePropertyValueModel;
-
-/**
- * This javax.swing.SpinnerDateModel can be used to keep a ChangeListener
- * (e.g. a JSpinner) in synch with a PropertyValueModel that holds a date.
- * 
- * This class must be a sub-class of SpinnerDateModel because of some
- * crappy jdk code....  ~bjv
- * @see javax.swing.JSpinner#createEditor(javax.swing.SpinnerModel)
- * 
- * If this class needs to be modified, it would behoove us to review the
- * other, similar classes:
- * @see ListSpinnerModelAdapter
- * @see NumberSpinnerModelAdapter
- */
-public class DateSpinnerModelAdapter
-	extends SpinnerDateModel
-{
-
-	/**
-	 * The default spinner value; used when the underlying model date value is null.
-	 * The default is the current date.
-	 */
-	private final Date defaultValue;
-
-	/** A value model on the underlying date. */
-	private final WritablePropertyValueModel<Object> dateHolder;
-
-	/** A listener that allows us to synchronize with changes made to the underlying date. */
-	private final PropertyChangeListener dateChangeListener;
-
-
-	// ********** constructors **********
-
-	/**
-	 * Constructor - the date holder is required.
-	 * The default spinner value is the current date.
-	 */
-	public DateSpinnerModelAdapter(WritablePropertyValueModel<Object> dateHolder) {
-		this(dateHolder, new Date());
-	}
-
-	/**
-	 * Constructor - the date holder and default value are required.
-	 */
-	public DateSpinnerModelAdapter(WritablePropertyValueModel<Object> dateHolder, Date defaultValue) {
-		this(dateHolder, null, null, Calendar.DAY_OF_MONTH, defaultValue);
-	}
-
-	/**
-	 * Constructor - the date holder is required.
-	 * The default spinner value is the current date.
-	 */
-	public DateSpinnerModelAdapter(WritablePropertyValueModel<Object> dateHolder, Comparable<?> start, Comparable<?> end, int calendarField) {
-		this(dateHolder, start, end, calendarField, new Date());
-	}
-
-	/**
-	 * Constructor - the date holder is required.
-	 */
-	public DateSpinnerModelAdapter(WritablePropertyValueModel<Object> dateHolder, Comparable<?> start, Comparable<?> end, int calendarField, Date defaultValue) {
-		super(dateHolder.getValue() == null ? defaultValue : (Date) dateHolder.getValue(), start, end, calendarField);
-		this.dateHolder = dateHolder;
-		this.dateChangeListener = this.buildDateChangeListener();
-		// postpone listening to the underlying date
-		// until we have listeners ourselves...
-		this.defaultValue = defaultValue;
-	}
-
-
-	// ********** initialization **********
-
-	protected PropertyChangeListener buildDateChangeListener() {
-		return new AWTPropertyChangeListenerWrapper(this.buildDateChangeListener_());
-	}
-
-	protected PropertyChangeListener buildDateChangeListener_() {
-		return new PropertyChangeListener() {
-			public void propertyChanged(PropertyChangeEvent event) {
-				DateSpinnerModelAdapter.this.synchronize(event.getNewValue());
-			}
-			@Override
-			public String toString() {
-				return "date listener";
-			}
-		};
-	}
-
-
-	// ********** SpinnerModel implementation **********
-
-	/**
-	 * Extend to check whether this method is being called before we 
-	 * have any listeners.
-	 * This is necessary because some crappy jdk code gets the value
-	 * from the model *before* listening to the model.  ~bjv
-	 * @see javax.swing.JSpinner.DefaultEditor(javax.swing.JSpinner)
-	 */
-    @Override
-	public Object getValue() {
-		if (this.getChangeListeners().length == 0) {
-			// sorry about this "lateral" call to super  ~bjv
-			super.setValue(this.spinnerValueOf(this.dateHolder.getValue()));
-		}
-		return super.getValue();
-	}
-
-	/**
-	 * Extend to update the underlying date directly.
-	 * The resulting event will be ignored: @see #synchronize(Object).
-	 */
-	@Override
-	public void setValue(Object value) {
-		super.setValue(value);
-		this.dateHolder.setValue(value);
-	}
-
-	/**
-	 * Extend to start listening to the underlying date if necessary.
-	 */
-	@Override
-	public void addChangeListener(ChangeListener listener) {
-		if (this.getChangeListeners().length == 0) {
-			this.dateHolder.addPropertyChangeListener(PropertyValueModel.VALUE, this.dateChangeListener);
-			this.synchronize(this.dateHolder.getValue());
-		}
-		super.addChangeListener(listener);
-	}
-
-	/**
-	 * Extend to stop listening to the underlying date if appropriate.
-	 */
-    @Override
-	public void removeChangeListener(ChangeListener listener) {
-		super.removeChangeListener(listener);
-		if (this.getChangeListeners().length == 0) {
-			this.dateHolder.removePropertyChangeListener(PropertyValueModel.VALUE, this.dateChangeListener);
-		}
-	}
-
-
-	// ********** queries **********
-
-	protected Date getDefaultValue() {
-		return this.defaultValue;
-	}
-
-	/**
-	 * Convert to a non-null value.
-	 */
-	protected Object spinnerValueOf(Object value) {
-		return (value == null) ? this.getDefaultValue() : value;
-	}
-
-
-	// ********** behavior **********
-
-	/**
-	 * Set the spinner value if it has changed.
-	 */
-	void synchronize(Object value) {
-		Object newValue = this.spinnerValueOf(value);
-		// check to see whether the spinner date has already been synchronized
-		// (via #setValue())
-		if ( ! this.getValue().equals(newValue)) {
-			this.setValue(newValue);
-		}
-	}
-
-
-	// ********** standard methods **********
-
-	@Override
-	public String toString() {
-		return StringTools.buildToStringFor(this, this.dateHolder);
-	}
-
-}
diff --git a/jpa/plugins/org.eclipse.jpt.utility/src/org/eclipse/jpt/utility/internal/model/value/swing/DocumentAdapter.java b/jpa/plugins/org.eclipse.jpt.utility/src/org/eclipse/jpt/utility/internal/model/value/swing/DocumentAdapter.java
deleted file mode 100644
index eeb65b4..0000000
--- a/jpa/plugins/org.eclipse.jpt.utility/src/org/eclipse/jpt/utility/internal/model/value/swing/DocumentAdapter.java
+++ /dev/null
@@ -1,362 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2008 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.utility.internal.model.value.swing;
-
-import java.io.Serializable;
-import java.util.EventObject;
-import javax.swing.event.DocumentEvent;
-import javax.swing.event.DocumentListener;
-import javax.swing.event.EventListenerList;
-import javax.swing.event.UndoableEditEvent;
-import javax.swing.event.UndoableEditListener;
-import javax.swing.text.AttributeSet;
-import javax.swing.text.BadLocationException;
-import javax.swing.text.Document;
-import javax.swing.text.Element;
-import javax.swing.text.PlainDocument;
-import javax.swing.text.Position;
-import javax.swing.text.Segment;
-import org.eclipse.jpt.utility.internal.StringTools;
-import org.eclipse.jpt.utility.internal.model.listener.awt.AWTPropertyChangeListenerWrapper;
-import org.eclipse.jpt.utility.model.event.PropertyChangeEvent;
-import org.eclipse.jpt.utility.model.listener.PropertyChangeListener;
-import org.eclipse.jpt.utility.model.value.PropertyValueModel;
-import org.eclipse.jpt.utility.model.value.WritablePropertyValueModel;
-
-/**
- * This javax.swing.text.Document can be used to keep a DocumentListener
- * (e.g. a JTextField) in synch with a PropertyValueModel that holds a string.
- * 
- * NB: This model should only be used for "small" documents;
- * i.e. documents used by text fields, not text panes.
- * @see #synchronizeDelegate(String)
- */
-public class DocumentAdapter
-	implements Document, Serializable
-{
-
-	/** The delegate document whose behavior we "enhance". */
-	protected final Document delegate;
-
-	/** A listener that allows us to forward any changes made to the delegate document. */
-	protected final CombinedListener delegateListener;
-
-	/** A value model on the underlying model string. */
-	protected final WritablePropertyValueModel<String> stringHolder;
-
-	/** A listener that allows us to synchronize with changes made to the underlying model string. */
-	protected final PropertyChangeListener stringListener;
-
-    /** The event listener list for the document. */
-    protected final EventListenerList listenerList = new EventListenerList();
-
-
-	// ********** constructors **********
-
-	/**
-	 * Constructor - the string holder is required.
-	 * Wrap the specified document.
-	 */
-	public DocumentAdapter(WritablePropertyValueModel<String> stringHolder, Document delegate) {
-		super();
-		if (stringHolder == null || delegate == null) {
-			throw new NullPointerException();
-		}
-		this.stringHolder = stringHolder;
-		// postpone listening to the underlying model string
-		// until we have listeners ourselves...
-		this.delegate = delegate;
-		this.stringListener = this.buildStringListener();
-		this.delegateListener = this.buildDelegateListener();
-	}
-
-	/**
-	 * Constructor - the string holder is required.
-	 * Wrap a plain document.
-	 */
-	public DocumentAdapter(WritablePropertyValueModel<String> stringHolder) {
-		this(stringHolder, new PlainDocument());
-	}
-
-
-	// ********** initialization **********
-
-	protected PropertyChangeListener buildStringListener() {
-		return new AWTPropertyChangeListenerWrapper(this.buildStringListener_());
-	}
-
-	protected PropertyChangeListener buildStringListener_() {
-		return new PropertyChangeListener() {
-			public void propertyChanged(PropertyChangeEvent event) {
-				DocumentAdapter.this.stringChanged(event);
-			}
-			@Override
-			public String toString() {
-				return "string listener";
-			}
-		};
-	}
-
-	protected CombinedListener buildDelegateListener() {
-		return new InternalListener();
-	}
-
-
-	// ********** Document implementation **********
-
-	public int getLength() {
-		return this.delegate.getLength();
-	}
-
-	/**
-	 * Extend to start listening to the underlying models if necessary.
-	 */
-	public void addDocumentListener(DocumentListener listener) {
-		if (this.listenerList.getListenerCount(DocumentListener.class) == 0) {
-			this.delegate.addDocumentListener(this.delegateListener);
-			this.engageStringHolder();
-		}
-		this.listenerList.add(DocumentListener.class, listener);
-	}
-
-	/**
-	 * Extend to stop listening to the underlying models if appropriate.
-	 */
-	public void removeDocumentListener(DocumentListener listener) {
-		this.listenerList.remove(DocumentListener.class, listener);
-		if (this.listenerList.getListenerCount(DocumentListener.class) == 0) {
-			this.disengageStringHolder();
-			this.delegate.removeDocumentListener(this.delegateListener);
-		}
-	}
-
-	/**
-	 * Extend to start listening to the delegate document if necessary.
-	 */
-	public void addUndoableEditListener(UndoableEditListener listener) {
-		if (this.listenerList.getListenerCount(UndoableEditListener.class) == 0) {
-			this.delegate.addUndoableEditListener(this.delegateListener);
-		}
-		this.listenerList.add(UndoableEditListener.class, listener);
-	}
-
-	/**
-	 * Extend to stop listening to the delegate document if appropriate.
-	 */
-	public void removeUndoableEditListener(UndoableEditListener listener) {
-		this.listenerList.remove(UndoableEditListener.class, listener);
-		if (this.listenerList.getListenerCount(UndoableEditListener.class) == 0) {
-			this.delegate.removeUndoableEditListener(this.delegateListener);
-		}
-	}
-
-	public Object getProperty(Object key) {
-		return this.delegate.getProperty(key);
-	}
-
-	public void putProperty(Object key, Object value) {
-		this.delegate.putProperty(key, value);
-	}
-
-	/**
-	 * Extend to update the underlying model string directly.
-	 * The resulting event will be ignored: @see #synchronizeDelegate(String).
-	 */
-	public void remove(int offset, int len) throws BadLocationException {
-		this.delegate.remove(offset, len);
-		this.stringHolder.setValue(this.delegate.getText(0, this.delegate.getLength()));
-	}
-
-	/**
-	 * Extend to update the underlying model string directly.
-	 * The resulting event will be ignored: @see #synchronizeDelegate(String).
-	 */
-	public void insertString(int offset, String insertedString, AttributeSet a) throws BadLocationException {
-		this.delegate.insertString(offset, insertedString, a);
-		this.stringHolder.setValue(this.delegate.getText(0, this.delegate.getLength()));
-	}
-
-	public String getText(int offset, int length) throws BadLocationException {
-		return this.delegate.getText(offset, length);
-	}
-
-	public void getText(int offset, int length, Segment txt) throws BadLocationException {
-		this.delegate.getText(offset, length, txt);
-	}
-
-	public Position getStartPosition() {
-		return this.delegate.getStartPosition();
-	}
-
-	public Position getEndPosition() {
-		return this.delegate.getEndPosition();
-	}
-
-	public Position createPosition(int offs) throws BadLocationException {
-		return this.delegate.createPosition(offs);
-	}
-
-	public Element[] getRootElements() {
-		return this.delegate.getRootElements();
-	}
-
-	public Element getDefaultRootElement() {
-		return this.delegate.getDefaultRootElement();
-	}
-
-	public void render(Runnable r) {
-		this.delegate.render(r);
-	}
-
-
-	// ********** queries **********
-
-	public DocumentListener[] documentListeners() {
-		return this.listenerList.getListeners(DocumentListener.class);
-	}
-
-	public UndoableEditListener[] undoableEditListeners() {
-		return this.listenerList.getListeners(UndoableEditListener.class);
-	}
-
-
-	// ********** behavior **********
-
-	/**
-	 * A third party has modified the underlying model string.
-	 * Synchronize the delegate document accordingly.
-	 */
-	protected void stringChanged(PropertyChangeEvent event) {
-		this.synchronizeDelegate((String) event.getNewValue());
-	}
-
-	/**
-	 * Replace the document's entire text string with the new string.
-	 */
-	protected void synchronizeDelegate(String s) {
-		try {
-			int len = this.delegate.getLength();
-			// check to see whether the delegate has already been synchronized
-			// (via #insertString() or #remove())
-			if ( ! this.delegate.getText(0, len).equals(s)) {
-				this.delegate.remove(0, len);
-				this.delegate.insertString(0, s, null);
-			}
-		} catch (BadLocationException ex) {
-			throw new IllegalStateException(ex.getMessage());	// this should not happen...
-		}
-	}
-
-	protected void engageStringHolder() {
-		this.stringHolder.addPropertyChangeListener(PropertyValueModel.VALUE, this.stringListener);
-		this.synchronizeDelegate(this.stringHolder.getValue());
-	}
-
-	protected void disengageStringHolder() {
-		this.stringHolder.removePropertyChangeListener(PropertyValueModel.VALUE, this.stringListener);
-	}
-
-	protected void delegateChangedUpdate(DocumentEvent event) {
-		// no need to lazy-initialize the event;
-		// we wouldn't get here if we did not have listeners...
-		DocumentEvent ee = new InternalDocumentEvent(this, event);
-		DocumentListener[] listeners = this.documentListeners();
-		for (int i = listeners.length; i-- > 0; ) {
-			listeners[i].changedUpdate(ee);
-		}
-	}
-
-	protected void delegateInsertUpdate(DocumentEvent event) {
-		// no need to lazy-initialize the event;
-		// we wouldn't get here if we did not have listeners...
-		DocumentEvent ee = new InternalDocumentEvent(this, event);
-		DocumentListener[] listeners = this.documentListeners();
-		for (int i = listeners.length; i-- > 0; ) {
-			listeners[i].insertUpdate(ee);
-		}
-	}
-
-	protected void delegateRemoveUpdate(DocumentEvent event) {
-		// no need to lazy-initialize the event;
-		// we wouldn't get here if we did not have listeners...
-		DocumentEvent ee = new InternalDocumentEvent(this, event);
-		DocumentListener[] listeners = this.documentListeners();
-		for (int i = listeners.length; i-- > 0; ) {
-			listeners[i].removeUpdate(ee);
-		}
-	}
-
-	protected void delegateUndoableEditHappened(UndoableEditEvent event) {
-		// no need to lazy-initialize the event;
-		// we wouldn't get here if we did not have listeners...
-		UndoableEditEvent ee = new UndoableEditEvent(this, event.getEdit());
-		UndoableEditListener[] listeners = this.undoableEditListeners();
-		for (int i = listeners.length; i-- > 0; ) {
-			listeners[i].undoableEditHappened(ee);
-		}
-	}
-
-	// ********** standard methods **********
-
-	@Override
-	public String toString() {
-		return StringTools.buildToStringFor(this, this.stringHolder);
-	}
-
-
-// ********** inner class **********
-
-	protected interface CombinedListener extends DocumentListener, UndoableEditListener {
-		// just consolidate the two interfaces
-	}
-
-	protected class InternalListener implements CombinedListener {
-		public void changedUpdate(DocumentEvent event) {
-			DocumentAdapter.this.delegateChangedUpdate(event);
-		}
-		public void insertUpdate(DocumentEvent event) {
-			DocumentAdapter.this.delegateInsertUpdate(event);
-		}
-		public void removeUpdate(DocumentEvent event) {
-			DocumentAdapter.this.delegateRemoveUpdate(event);
-		}
-		public void undoableEditHappened(UndoableEditEvent event) {
-			DocumentAdapter.this.delegateUndoableEditHappened(event);
-		}
-	}
-	
-	protected static class InternalDocumentEvent
-		extends EventObject
-		implements DocumentEvent
-	{
-		protected DocumentEvent delegate;
-	
-		protected InternalDocumentEvent(Document document, DocumentEvent delegate) {
-			super(document);
-			this.delegate = delegate;
-		}
-		public ElementChange getChange(Element elem) {
-			return this.delegate.getChange(elem);
-		}
-		public Document getDocument() {
-			return (Document) this.source;
-		}
-		public int getLength() {
-			return this.delegate.getLength();
-		}
-		public int getOffset() {
-			return this.delegate.getOffset();
-		}
-		public EventType getType() {
-			return this.delegate.getType();
-		}
-	}
-
-}
diff --git a/jpa/plugins/org.eclipse.jpt.utility/src/org/eclipse/jpt/utility/internal/model/value/swing/ListModelAdapter.java b/jpa/plugins/org.eclipse.jpt.utility/src/org/eclipse/jpt/utility/internal/model/value/swing/ListModelAdapter.java
deleted file mode 100644
index 42e952f..0000000
--- a/jpa/plugins/org.eclipse.jpt.utility/src/org/eclipse/jpt/utility/internal/model/value/swing/ListModelAdapter.java
+++ /dev/null
@@ -1,286 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2008 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.utility.internal.model.value.swing;
-
-import javax.swing.AbstractListModel;
-import javax.swing.event.ListDataListener;
-import org.eclipse.jpt.utility.internal.StringTools;
-import org.eclipse.jpt.utility.internal.model.listener.awt.AWTListChangeListenerWrapper;
-import org.eclipse.jpt.utility.internal.model.value.CollectionListValueModelAdapter;
-import org.eclipse.jpt.utility.model.event.ListChangeEvent;
-import org.eclipse.jpt.utility.model.listener.ListChangeListener;
-import org.eclipse.jpt.utility.model.value.CollectionValueModel;
-import org.eclipse.jpt.utility.model.value.ListValueModel;
-
-/**
- * This javax.swing.ListModel can be used to keep a ListDataListener
- * (e.g. a JList) in synch with a ListValueModel (or a CollectionValueModel).
- * 
- * An instance of this ListModel *must* be supplied with a value model,
- * which is a ListValueModel on the bound list or a CollectionValueModel
- * on the bound collection. This is required - the list (or collection)
- * itself can be null, but the value model that holds it cannot.
- */
-public class ListModelAdapter
-	extends AbstractListModel
-{
-	/** A value model on the underlying model list. */
-	protected ListValueModel<?> listHolder;
-
-	/**
-	 * Cache the size of the list for "dramatic" changes.
-	 * @see #listChanged(ListChangeEvent)
-	 */
-	protected int listSize;
-
-	/** A listener that allows us to forward changes made to the underlying model list. */
-	protected final ListChangeListener listChangeListener;
-
-
-	// ********** constructors **********
-
-	/**
-	 * Default constructor - initialize stuff.
-	 */
-	private ListModelAdapter() {
-		super();
-		this.listSize = 0;
-		this.listChangeListener = this.buildListChangeListener();
-	}
-
-	/**
-	 * Constructor - the list holder is required.
-	 */
-	public ListModelAdapter(ListValueModel<?> listHolder) {
-		this();
-		this.setModel(listHolder);
-	}
-
-	/**
-	 * Constructor - the collection holder is required.
-	 */
-	public ListModelAdapter(CollectionValueModel<?> collectionHolder) {
-		this();
-		this.setModel(collectionHolder);
-	}
-
-
-	// ********** initialization **********
-
-	protected ListChangeListener buildListChangeListener() {
-		return new AWTListChangeListenerWrapper(this.buildListChangeListener_());
-	}
-
-	protected ListChangeListener buildListChangeListener_() {
-		return new ListChangeListener() {
-			public void itemsAdded(ListChangeEvent event) {
-				ListModelAdapter.this.itemsAdded(event);
-			}
-			public void itemsRemoved(ListChangeEvent event) {
-				ListModelAdapter.this.itemsRemoved(event);
-			}
-			public void itemsReplaced(ListChangeEvent event) {
-				ListModelAdapter.this.itemsReplaced(event);
-			}
-			public void itemsMoved(ListChangeEvent event) {
-				ListModelAdapter.this.itemsMoved(event);
-			}
-			public void listCleared(ListChangeEvent event) {
-				ListModelAdapter.this.listCleared();
-			}
-			public void listChanged(ListChangeEvent event) {
-				ListModelAdapter.this.listChanged();
-			}
-			@Override
-			public String toString() {
-				return "list listener";
-			}
-		};
-	}
-
-
-	// ********** ListModel implementation **********
-
-	public int getSize() {
-		return this.listHolder.size();
-	}
-
-	public Object getElementAt(int index) {
-		return this.listHolder.get(index);
-	}
-
-	/**
-	 * Extend to start listening to the underlying model list if necessary.
-	 */
-    @Override
-	public void addListDataListener(ListDataListener l) {
-		if (this.hasNoListDataListeners()) {
-			this.engageModel();
-			this.listSize = this.listHolder.size();
-		}
-		super.addListDataListener(l);
-	}
-
-	/**
-	 * Extend to stop listening to the underlying model list if appropriate.
-	 */
-    @Override
-	public void removeListDataListener(ListDataListener l) {
-		super.removeListDataListener(l);
-		if (this.hasNoListDataListeners()) {
-			this.disengageModel();
-			this.listSize = 0;
-		}
-	}
-
-
-	// ********** public API **********
-
-	/**
-	 * Return the underlying list model.
-	 */
-	public ListValueModel<?> model() {
-		return this.listHolder;
-	}
-	
-	/**
-	 * Set the underlying list model.
-	 */
-	public void setModel(ListValueModel<?> listHolder) {
-		if (listHolder == null) {
-			throw new NullPointerException();
-		}
-		boolean hasListeners = this.hasListDataListeners();
-		if (hasListeners) {
-			this.disengageModel();
-		}
-		this.listHolder = listHolder;
-		if (hasListeners) {
-			this.engageModel();
-			this.listChanged();
-		}
-	}
-
-	/**
-	 * Set the underlying collection model.
-	 */
-	@SuppressWarnings("unchecked")
-	public void setModel(CollectionValueModel<?> collectionHolder) {
-		this.setModel(new CollectionListValueModelAdapter(collectionHolder));
-	}
-
-
-	// ********** queries **********
-
-	/**
-	 * Return whether this model has no listeners.
-	 */
-	protected boolean hasNoListDataListeners() {
-		return this.getListDataListeners().length == 0;
-	}
-
-	/**
-	 * Return whether this model has any listeners.
-	 */
-	protected boolean hasListDataListeners() {
-		return ! this.hasNoListDataListeners();
-	}
-
-
-	// ********** behavior **********
-
-	protected void engageModel() {
-		this.listHolder.addListChangeListener(ListValueModel.LIST_VALUES, this.listChangeListener);
-	}
-
-	protected void disengageModel() {
-		this.listHolder.removeListChangeListener(ListValueModel.LIST_VALUES, this.listChangeListener);
-	}
-
-
-
-	// ********** list change support **********
-
-	/**
-	 * Items were added to the underlying model list.
-	 * Notify listeners of the changes.
-	 */
-	protected void itemsAdded(ListChangeEvent event) {
-		int start = event.getIndex();
-		int end = start + event.itemsSize() - 1;
-		this.fireIntervalAdded(this, start, end);
-		this.listSize += event.itemsSize();
-	}
-
-	/**
-	 * Items were removed from the underlying model list.
-	 * Notify listeners of the changes.
-	 */
-	protected void itemsRemoved(ListChangeEvent event) {
-		int start = event.getIndex();
-		int end = start + event.itemsSize() - 1;
-		this.fireIntervalRemoved(this, start, end);
-		this.listSize -= event.itemsSize();
-	}
-
-	/**
-	 * Items were replaced in the underlying model list.
-	 * Notify listeners of the changes.
-	 */
-	protected void itemsReplaced(ListChangeEvent event) {
-		int start = event.getIndex();
-		int end = start + event.itemsSize() - 1;
-		this.fireContentsChanged(this, start, end);
-	}
-
-	/**
-	 * Items were moved in the underlying model list.
-	 * Notify listeners of the changes.
-	 */
-	protected void itemsMoved(ListChangeEvent event) {
-		int start = Math.min(event.getSourceIndex(), event.getTargetIndex());
-		int end = Math.max(event.getSourceIndex(), event.getTargetIndex()) + event.getMoveLength() - 1;
-		this.fireContentsChanged(this, start, end);
-	}
-
-	/**
-	 * The underlying model list was cleared.
-	 * Notify listeners of the changes.
-	 */
-	protected void listCleared() {
-		if (this.listSize != 0) {
-			this.fireIntervalRemoved(this, 0, this.listSize - 1);
-			this.listSize = 0;
-		}
-	}
-
-	/**
-	 * The underlying model list has changed "dramatically".
-	 * Notify listeners of the changes.
-	 */
-	protected void listChanged() {
-		if (this.listSize != 0) {
-			this.fireIntervalRemoved(this, 0, this.listSize - 1);
-		}
-		this.listSize = this.listHolder.size();
-		if (this.listSize != 0) {
-			this.fireIntervalAdded(this, 0, this.listSize - 1);
-		}
-	}
-
-
-	// ********** Object overrides **********
-
-	@Override
-	public String toString() {
-		return StringTools.buildToStringFor(this, this.listHolder);
-	}
-
-}
diff --git a/jpa/plugins/org.eclipse.jpt.utility/src/org/eclipse/jpt/utility/internal/model/value/swing/ListSpinnerModelAdapter.java b/jpa/plugins/org.eclipse.jpt.utility/src/org/eclipse/jpt/utility/internal/model/value/swing/ListSpinnerModelAdapter.java
deleted file mode 100644
index 5271203..0000000
--- a/jpa/plugins/org.eclipse.jpt.utility/src/org/eclipse/jpt/utility/internal/model/value/swing/ListSpinnerModelAdapter.java
+++ /dev/null
@@ -1,218 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2008 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.utility.internal.model.value.swing;
-
-import java.util.Arrays;
-import java.util.List;
-import javax.swing.SpinnerListModel;
-import javax.swing.event.ChangeListener;
-import org.eclipse.jpt.utility.internal.StringTools;
-import org.eclipse.jpt.utility.internal.model.listener.awt.AWTPropertyChangeListenerWrapper;
-import org.eclipse.jpt.utility.model.event.PropertyChangeEvent;
-import org.eclipse.jpt.utility.model.listener.PropertyChangeListener;
-import org.eclipse.jpt.utility.model.value.PropertyValueModel;
-import org.eclipse.jpt.utility.model.value.WritablePropertyValueModel;
-
-/**
- * This javax.swing.SpinnerListModel can be used to keep a ChangeListener
- * (e.g. a JSpinner) in synch with a PropertyValueModel that holds a value
- * in the list.
- * 
- * This class must be a sub-class of SpinnerListModel because of some
- * crappy jdk code....  ~bjv
- * @see javax.swing.JSpinner#createEditor(javax.swing.SpinnerModel)
- * 
- * NB: This model should only be used for values that have a reasonably
- * inexpensive #equals() implementation.
- * @see #synchronize(Object)
- * 
- * If this class needs to be modified, it would behoove us to review the
- * other, similar classes:
- * @see DateSpinnerModelAdapter
- * @see NumberSpinnerModelAdapter
- */
-public class ListSpinnerModelAdapter
-	extends SpinnerListModel
-{
-
-	/**
-	 * The default spinner value; used when the underlying model value is null.
-	 * The default is the first item on the list.
-	 */
-	private final Object defaultValue;
-
-	/** A value model on the underlying value. */
-	private final WritablePropertyValueModel<Object> valueHolder;
-
-	/** A listener that allows us to synchronize with changes made to the underlying value. */
-	private final PropertyChangeListener valueChangeListener;
-
-
-	// ********** constructors **********
-
-	/**
-	 * Constructor - the value holder is required.
-	 * Use the model value itself as the default spinner value.
-	 */
-	public ListSpinnerModelAdapter(WritablePropertyValueModel<Object> valueHolder) {
-		this(valueHolder, valueHolder.getValue());
-	}
-
-	/**
-	 * Constructor - the value holder is required.
-	 */
-	public ListSpinnerModelAdapter(WritablePropertyValueModel<Object> valueHolder, Object defaultValue) {
-		this(valueHolder, new Object[] {defaultValue}, defaultValue);
-	}
-
-	/**
-	 * Constructor - the value holder is required.
-	 * Use the first item in the list of values as the default spinner value.
-	 */
-	public ListSpinnerModelAdapter(WritablePropertyValueModel<Object> valueHolder, Object[] values) {
-		this(valueHolder, values, values[0]);
-	}
-
-	/**
-	 * Constructor - the value holder is required.
-	 */
-	public ListSpinnerModelAdapter(WritablePropertyValueModel<Object> valueHolder, Object[] values, Object defaultValue) {
-		this(valueHolder, Arrays.asList(values), defaultValue);
-	}
-
-	/**
-	 * Constructor - the value holder is required.
-	 * Use the first item in the list of values as the default spinner value.
-	 */
-	public ListSpinnerModelAdapter(WritablePropertyValueModel<Object> valueHolder, List<Object> values) {
-		this(valueHolder, values, values.get(0));
-	}
-
-	/**
-	 * Constructor - the value holder is required.
-	 */
-	public ListSpinnerModelAdapter(WritablePropertyValueModel<Object> valueHolder, List<Object> values, Object defaultValue) {
-		super(values);
-		this.valueHolder = valueHolder;
-		this.valueChangeListener = this.buildValueChangeListener();
-		// postpone listening to the underlying value
-		// until we have listeners ourselves...
-		this.defaultValue = defaultValue;
-	}
-
-
-	// ********** initialization **********
-
-	protected PropertyChangeListener buildValueChangeListener() {
-		return new AWTPropertyChangeListenerWrapper(this.buildValueChangeListener_());
-	}
-
-	protected PropertyChangeListener buildValueChangeListener_() {
-		return new PropertyChangeListener() {
-			public void propertyChanged(PropertyChangeEvent event) {
-				ListSpinnerModelAdapter.this.synchronize(event.getNewValue());
-			}
-			@Override
-			public String toString() {
-				return "value listener";
-			}
-		};
-	}
-
-
-	// ********** SpinnerModel implementation **********
-
-	/**
-	 * Extend to check whether this method is being called before we 
-	 * have any listeners.
-	 * This is necessary because some crappy jdk code gets the value
-	 * from the model *before* listening to the model.  ~bjv
-	 * @see javax.swing.JSpinner.DefaultEditor(javax.swing.JSpinner)
-	 */
-    @Override
-	public Object getValue() {
-		if (this.getChangeListeners().length == 0) {
-			// sorry about this "lateral" call to super  ~bjv
-			super.setValue(this.spinnerValueOf(this.valueHolder.getValue()));
-		}
-		return super.getValue();
-	}
-
-	/**
-	 * Extend to update the underlying value directly.
-	 * The resulting event will be ignored: @see #synchronize(Object).
-	 */
-    @Override
-	public void setValue(Object value) {
-		super.setValue(value);
-		this.valueHolder.setValue(value);
-	}
-
-	/**
-	 * Extend to start listening to the underlying value if necessary.
-	 */
-    @Override
-	public void addChangeListener(ChangeListener listener) {
-		if (this.getChangeListeners().length == 0) {
-			this.valueHolder.addPropertyChangeListener(PropertyValueModel.VALUE, this.valueChangeListener);
-			this.synchronize(this.valueHolder.getValue());
-		}
-		super.addChangeListener(listener);
-	}
-
-	/**
-	 * Extend to stop listening to the underlying value if appropriate.
-	 */
-    @Override
-	public void removeChangeListener(ChangeListener listener) {
-		super.removeChangeListener(listener);
-		if (this.getChangeListeners().length == 0) {
-			this.valueHolder.removePropertyChangeListener(PropertyValueModel.VALUE, this.valueChangeListener);
-		}
-	}
-
-
-	// ********** queries **********
-
-	protected Object getDefaultValue() {
-		return this.defaultValue;
-	}
-
-	/**
-	 * Convert to a non-null value.
-	 */
-	protected Object spinnerValueOf(Object value) {
-		return (value == null) ? this.getDefaultValue() : value;
-	}
-
-
-	// ********** behavior **********
-
-	/**
-	 * Set the spinner value if it has changed.
-	 */
-	void synchronize(Object value) {
-		Object newValue = this.spinnerValueOf(value);
-		// check to see whether the spinner value has already been synchronized
-		// (via #setValue())
-		if ( ! this.getValue().equals(newValue)) {
-			this.setValue(newValue);
-		}
-	}
-
-
-	// ********** standard methods **********
-
-	@Override
-	public String toString() {
-		return StringTools.buildToStringFor(this, this.valueHolder);
-	}
-
-}
diff --git a/jpa/plugins/org.eclipse.jpt.utility/src/org/eclipse/jpt/utility/internal/model/value/swing/NumberSpinnerModelAdapter.java b/jpa/plugins/org.eclipse.jpt.utility/src/org/eclipse/jpt/utility/internal/model/value/swing/NumberSpinnerModelAdapter.java
deleted file mode 100644
index 484ff33..0000000
--- a/jpa/plugins/org.eclipse.jpt.utility/src/org/eclipse/jpt/utility/internal/model/value/swing/NumberSpinnerModelAdapter.java
+++ /dev/null
@@ -1,223 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2008 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.utility.internal.model.value.swing;
-
-import javax.swing.SpinnerNumberModel;
-import javax.swing.event.ChangeListener;
-import org.eclipse.jpt.utility.internal.StringTools;
-import org.eclipse.jpt.utility.internal.model.listener.awt.AWTPropertyChangeListenerWrapper;
-import org.eclipse.jpt.utility.model.event.PropertyChangeEvent;
-import org.eclipse.jpt.utility.model.listener.PropertyChangeListener;
-import org.eclipse.jpt.utility.model.value.PropertyValueModel;
-import org.eclipse.jpt.utility.model.value.WritablePropertyValueModel;
-
-/**
- * This javax.swing.SpinnerNumberModel can be used to keep a ChangeListener
- * (e.g. a JSpinner) in synch with a PropertyValueModel that holds a number.
- * 
- * This class must be a sub-class of SpinnerNumberModel because of some
- * crappy jdk code....  ~bjv
- * @see javax.swing.JSpinner#createEditor(javax.swing.SpinnerModel)
- * 
- * If this class needs to be modified, it would behoove us to review the
- * other, similar classes:
- * @see DateSpinnerModelAdapter
- * @see ListSpinnerModelAdapter
- */
-public class NumberSpinnerModelAdapter
-	extends SpinnerNumberModel
-{
-
-	/**
-	 * The default spinner value; used when the
-	 * underlying model number value is null.
-	 */
-	private final Number defaultValue;
-
-	/** A value model on the underlying number. */
-	private final WritablePropertyValueModel<Number> numberHolder;
-
-	/**
-	 * A listener that allows us to synchronize with
-	 * changes made to the underlying number.
-	 */
-	private final PropertyChangeListener numberChangeListener;
-
-
-	// ********** constructors **********
-
-	/**
-	 * Constructor - the number holder is required.
-	 * The default spinner value is zero.
-	 * The step size is one.
-	 */
-	public NumberSpinnerModelAdapter(WritablePropertyValueModel<Number> numberHolder) {
-		this(numberHolder, 0);
-	}
-
-	/**
-	 * Constructor - the number holder is required.
-	 * The step size is one.
-	 */
-	public NumberSpinnerModelAdapter(WritablePropertyValueModel<Number> numberHolder, int defaultValue) {
-		this(numberHolder, null, null, new Integer(1), new Integer(defaultValue));
-	}
-
-	/**
-	 * Constructor - the number holder is required.
-	 * Use the minimum value as the default spinner value.
-	 */
-	public NumberSpinnerModelAdapter(WritablePropertyValueModel<Number> numberHolder, int minimum, int maximum, int stepSize) {
-		this(numberHolder, minimum, maximum, stepSize, minimum);
-	}
-
-	/**
-	 * Constructor - the number holder is required.
-	 */
-	public NumberSpinnerModelAdapter(WritablePropertyValueModel<Number> numberHolder, int minimum, int maximum, int stepSize, int defaultValue) {
-		this(numberHolder, new Integer(minimum), new Integer(maximum), new Integer(stepSize), new Integer(defaultValue));
-	}
-
-	/**
-	 * Constructor - the number holder is required.
-	 * Use the minimum value as the default spinner value.
-	 */
-	public NumberSpinnerModelAdapter(WritablePropertyValueModel<Number> numberHolder, double value, double minimum, double maximum, double stepSize) {
-		this(numberHolder, value, minimum, maximum, stepSize, minimum);
-	}
-
-	/**
-	 * Constructor - the number holder is required.
-	 */
-	public NumberSpinnerModelAdapter(WritablePropertyValueModel<Number> numberHolder, double value, double minimum, double maximum, double stepSize, double defaultValue) {
-		this(numberHolder, new Double(minimum), new Double(maximum), new Double(stepSize), new Double(defaultValue));
-	}
-
-	/**
-	 * Constructor - the number holder is required.
-	 */
-	public NumberSpinnerModelAdapter(WritablePropertyValueModel<Number> numberHolder, Comparable<?> minimum, Comparable<?> maximum, Number stepSize, Number defaultValue) {
-		super(numberHolder.getValue() == null ? defaultValue : (Number) numberHolder.getValue(), minimum, maximum, stepSize);
-		this.numberHolder = numberHolder;
-		this.numberChangeListener = this.buildNumberChangeListener();
-		// postpone listening to the underlying number
-		// until we have listeners ourselves...
-		this.defaultValue = defaultValue;
-	}
-
-
-	// ********** initialization **********
-
-	protected PropertyChangeListener buildNumberChangeListener() {
-		return new AWTPropertyChangeListenerWrapper(this.buildNumberChangeListener_());
-	}
-
-	protected PropertyChangeListener buildNumberChangeListener_() {
-		return new PropertyChangeListener() {
-			public void propertyChanged(PropertyChangeEvent event) {
-				NumberSpinnerModelAdapter.this.synchronize(event.getNewValue());
-			}
-			@Override
-			public String toString() {
-				return "number listener";
-			}
-		};
-	}
-
-
-	// ********** SpinnerModel implementation **********
-
-	/**
-	 * Extend to check whether this method is being called before we 
-	 * have any listeners.
-	 * This is necessary because some crappy jdk code gets the value
-	 * from the model *before* listening to the model.  ~bjv
-	 * @see javax.swing.JSpinner.DefaultEditor(javax.swing.JSpinner)
-	 */
-    @Override
-	public Object getValue() {
-		if (this.getChangeListeners().length == 0) {
-			// sorry about this "lateral" call to super  ~bjv
-			super.setValue(this.spinnerValueOf(this.numberHolder.getValue()));
-		}
-		return super.getValue();
-	}
-
-	/**
-	 * Extend to update the underlying number directly.
-	 * The resulting event will be ignored: @see #synchronizeDelegate(Object).
-	 */
-    @Override
-	public void setValue(Object value) {
-		super.setValue(value);
-		this.numberHolder.setValue((Number) value);
-	}
-
-	/**
-	 * Extend to start listening to the underlying number if necessary.
-	 */
-    @Override
-	public void addChangeListener(ChangeListener listener) {
-		if (this.getChangeListeners().length == 0) {
-			this.numberHolder.addPropertyChangeListener(PropertyValueModel.VALUE, this.numberChangeListener);
-			this.synchronize(this.numberHolder.getValue());
-		}
-		super.addChangeListener(listener);
-	}
-
-	/**
-	 * Extend to stop listening to the underlying number if appropriate.
-	 */
-    @Override
-	public void removeChangeListener(ChangeListener listener) {
-		super.removeChangeListener(listener);
-		if (this.getChangeListeners().length == 0) {
-			this.numberHolder.removePropertyChangeListener(PropertyValueModel.VALUE, this.numberChangeListener);
-		}
-	}
-
-
-	// ********** queries **********
-
-	protected Number getDefaultValue() {
-		return this.defaultValue;
-	}
-
-	/**
-	 * Convert to a non-null value.
-	 */
-	protected Object spinnerValueOf(Object value) {
-		return (value == null) ? this.getDefaultValue() : value;
-	}
-
-
-	// ********** behavior **********
-
-	/**
-	 * Set the spinner value if it has changed.
-	 */
-	void synchronize(Object value) {
-		Object newValue = this.spinnerValueOf(value);
-		// check to see whether the date has already been synchronized
-		// (via #setValue())
-		if ( ! this.getValue().equals(newValue)) {
-			this.setValue(newValue);
-		}
-	}
-
-
-	// ********** standard methods **********
-
-	@Override
-	public String toString() {
-		return StringTools.buildToStringFor(this, this.numberHolder);
-	}
-
-}
diff --git a/jpa/plugins/org.eclipse.jpt.utility/src/org/eclipse/jpt/utility/internal/model/value/swing/ObjectListSelectionModel.java b/jpa/plugins/org.eclipse.jpt.utility/src/org/eclipse/jpt/utility/internal/model/value/swing/ObjectListSelectionModel.java
deleted file mode 100644
index 61d2e37..0000000
--- a/jpa/plugins/org.eclipse.jpt.utility/src/org/eclipse/jpt/utility/internal/model/value/swing/ObjectListSelectionModel.java
+++ /dev/null
@@ -1,427 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2008 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- *
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.utility.internal.model.value.swing;
-
-import java.util.Arrays;
-import java.util.Collection;
-import java.util.Iterator;
-import javax.swing.DefaultListSelectionModel;
-import javax.swing.ListModel;
-import javax.swing.event.ListDataEvent;
-import javax.swing.event.ListDataListener;
-import javax.swing.event.ListSelectionListener;
-import org.eclipse.jpt.utility.internal.CollectionTools;
-
-/**
- * This ListSelectionModel is aware of the ListModel and
- * provides convenience methods to access and set the
- * selected *objects*, as opposed to the selected *indexes*.
- */
-public class ObjectListSelectionModel
-	extends DefaultListSelectionModel
-{
-	/** The list model referenced by the list selection model. */
-	private final ListModel listModel;
-
-	/** A listener that allows us to clear the selection when the list model has changed. */
-	private final ListDataListener listDataListener;
-
-
-	// ********** constructors **********
-
-	/**
-	 * Construct a list selection model for the specified list model.
-	 */
-	public ObjectListSelectionModel(ListModel listModel) {
-		super();
-		this.listModel = listModel;
-		this.listDataListener = this.buildListDataListener();
-	}
-
-
-	// ********** initialization **********
-
-	private ListDataListener buildListDataListener() {
-		return new ListDataListener() {
-			public void intervalAdded(ListDataEvent event) {
-				// this does not affect the selection
-			}
-			public void intervalRemoved(ListDataEvent event) {
-				// this does not affect the selection
-			}
-			public void contentsChanged(ListDataEvent event) {
-				ObjectListSelectionModel.this.listModelContentsChanged(event);
-			}
-			@Override
-			public String toString() {
-				return "list data listener";
-			}
-		};
-	}
-
-	/**
-	 * Typically, the selection does not need to be cleared when the
-	 * contents of the list have changed. Most of the time this just
-	 * means an item has changed in a way that affects its display string
-	 * or icon. We typically only use the class for edits involving
-	 * single selection.
-	 * A subclass can override this method if the selection
-	 * should be cleared because a change could mean the selection is invalid.
-	 */
-	protected void listModelContentsChanged(ListDataEvent event) {
-		/**this.clearSelection();*/
-	}
-
-
-	// ********** ListSelectionModel implementation **********
-
-	@Override
-	public void addListSelectionListener(ListSelectionListener l) {
-		if (this.hasNoListSelectionListeners()) {
-			this.listModel.addListDataListener(this.listDataListener);
-		}
-		super.addListSelectionListener(l);
-	}
-
-	@Override
-	public void removeListSelectionListener(ListSelectionListener l) {
-		super.removeListSelectionListener(l);
-		if (this.hasNoListSelectionListeners()) {
-			this.listModel.removeListDataListener(this.listDataListener);
-		}
-	}
-
-
-	// ********** queries **********
-
-	/**
-	 * Return whether this model has no listeners.
-	 */
-	protected boolean hasNoListSelectionListeners() {	// private-protected
-		return this.getListSelectionListeners().length == 0;
-	}
-
-	/**
-	 * Return the list model referenced by the list selection model.
-	 */
-	public ListModel getListModel() {
-		return this.listModel;
-	}
-
-	public int selectedValuesSize() {
-		int min = this.getMinSelectionIndex();
-		int max = this.getMaxSelectionIndex();
-
-		if ((min < 0) || (max < 0)) {
-			return 0;
-		}
-
-		int n = 0;
-		int count = this.getListModel().getSize();
-		for (int i = min; i <= max; i++) {
-			if (this.isSelectedIndex(i) && (i < count)) {
-				n++;
-			}
-		}
-		return n;
-	}
-
-	/**
-	 * Return the first selected value.
-	 * Return null if the selection is empty.
-	 */
-	public Object selectedValue() {
-		int index = this.getMinSelectionIndex();
-		if (index == -1) {
-			return null;
-		}
-		if (this.getListModel().getSize() <= index) {
-			return null;
-		}
-		return this.getListModel().getElementAt(index);
-	}
-
-	/**
-	 * Return an array of the selected values.
-	 */
-	public Object[] selectedValues() {
-		int min = this.getMinSelectionIndex();
-		int max = this.getMaxSelectionIndex();
-
-		if ((min < 0) || (max < 0)) {
-			return new Object[0];
-		}
-
-		int maxSize = (max - min) + 1;
-		Object[] temp = new Object[maxSize];
-		int n = 0;
-		int count = this.getListModel().getSize();
-		for (int i = min; i <= max; i++) {
-			if (this.isSelectedIndex(i) && (i < count)) {
-				temp[n++] = this.getListModel().getElementAt(i);
-			}
-		}
-		if (n == maxSize) {
-			// all the elements in the range were selected
-			return temp;
-		}
-		// only some of the elements in the range were selected
-		Object[] result = new Object[n];
-		System.arraycopy(temp, 0, result, 0, n);
-		return result;
-	}
-
-	/**
-	 * Return an array of the selected indices in order.
-	 */
-	public int[] selectedIndices() {
-		int min = this.getMinSelectionIndex();
-		int max = this.getMaxSelectionIndex();
-
-		if ((min < 0) || (max < 0)) {
-			return new int[0];
-		}
-
-		int maxSize = (max - min) + 1;
-		int[] temp = new int[maxSize];
-		int n = 0;
-		int count = this.getListModel().getSize();
-		for (int i = min; i <= max; i++) {
-			if (this.isSelectedIndex(i) && (i < count)) {
-				temp[n++] = i;
-			}
-		}
-		if (n == maxSize) {
-			// all the elements in the range were selected
-			Arrays.sort(temp);
-			return temp;
-		}
-		// only some of the elements in the range were selected
-		int[] result = new int[n];
-		System.arraycopy(temp, 0, result, 0, n);
-		Arrays.sort(result);
-		return result;
-	}
-
-	/**
-	 * Set the selected value.
-	 */
-	public void setSelectedValue(Object object) {
-		this.setSelectedValues(CollectionTools.singletonIterator(object));
-	}
-
-	/**
-	 * Set the current set of selected objects to the specified objects.
-	 * @see javax.swing.ListSelectionModel#setSelectionInterval(int, int)
-	 */
-	public void setSelectedValues(Iterator<?> objects) {
-		this.setValueIsAdjusting(true);
-		this.clearSelection();
-		this.addSelectedValuesInternal(objects);
-		this.setValueIsAdjusting(false);
-	}
-
-	/**
-	 * Set the current set of selected objects to the specified objects.
-	 * @see javax.swing.ListSelectionModel#setSelectionInterval(int, int)
-	 */
-	public void setSelectedValues(Collection<?> objects) {
-		this.setSelectedValues(objects.iterator());
-	}
-
-	/**
-	 * Set the current set of selected objects to the specified objects.
-	 * @see javax.swing.ListSelectionModel#setSelectionInterval(int, int)
-	 */
-	public void setSelectedValues(Object[] objects) {
-		this.setSelectedValues(CollectionTools.iterator(objects));
-	}
-
-	/**
-	 * Add the specified object to the current set of selected objects.
-	 * @see javax.swing.ListSelectionModel#addSelectionInterval(int, int)
-	 */
-	public void addSelectedValue(Object object) {
-		this.addSelectedValues(CollectionTools.singletonIterator(object));
-	}
-
-	/**
-	 * Add the specified objects to the current set of selected objects.
-	 * @see javax.swing.ListSelectionModel#addSelectionInterval(int, int)
-	 */
-	public void addSelectedValues(Iterator<?> objects) {
-		this.setValueIsAdjusting(true);
-		this.addSelectedValuesInternal(objects);
-		this.setValueIsAdjusting(false);
-	}
-
-	/**
-	 * Add the specified objects to the current set of selected objects.
-	 * @see javax.swing.ListSelectionModel#addSelectionInterval(int, int)
-	 */
-	public void addSelectedValues(Collection<?> objects) {
-		this.addSelectedValues(objects.iterator());
-	}
-
-	/**
-	 * Add the specified objects to the current set of selected objects.
-	 * @see javax.swing.ListSelectionModel#addSelectionInterval(int, int)
-	 */
-	public void addSelectedValues(Object[] objects) {
-		this.addSelectedValues(CollectionTools.iterator(objects));
-	}
-
-	/**
-	 * Remove the specified object from the current set of selected objects.
-	 * @see javax.swing.ListSelectionModel#removeSelectionInterval(int, int)
-	 */
-	public void removeSelectedValue(Object object) {
-		this.removeSelectedValues(CollectionTools.singletonIterator(object));
-	}
-
-	/**
-	 * Remove the specified objects from the current set of selected objects.
-	 * @see javax.swing.ListSelectionModel#removeSelectionInterval(int, int)
-	 */
-	public void removeSelectedValues(Iterator<?> objects) {
-		this.setValueIsAdjusting(true);
-		ListModel lm = this.getListModel();
-		int lmSize = lm.getSize();
-		while (objects.hasNext()) {
-			int index = this.indexOf(objects.next(), lm, lmSize);
-			this.removeSelectionInterval(index, index);
-		}
-		this.setValueIsAdjusting(false);
-	}
-
-	/**
-	 * Remove the specified objects from the current set of selected objects.
-	 * @see javax.swing.ListSelectionModel#removeSelectionInterval(int, int)
-	 */
-	public void removeSelectedValues(Collection<?> objects) {
-		this.removeSelectedValues(objects.iterator());
-	}
-
-	/**
-	 * Remove the specified objects from the current set of selected objects.
-	 * @see javax.swing.ListSelectionModel#removeSelectionInterval(int, int)
-	 */
-	public void removeSelectedValues(Object[] objects) {
-		this.removeSelectedValues(CollectionTools.iterator(objects));
-	}
-
-	/**
-	 * @see javax.swing.ListSelectionModel#getAnchorSelectionIndex()
-	 * Return null if the anchor selection is empty.
-	 */
-	public Object getAnchorSelectedValue() {
-		int index = this.getAnchorSelectionIndex();
-		if (index == -1) {
-			return null;
-		}
-		return this.getListModel().getElementAt(index);
-	}
-
-	/**
-	 * @see javax.swing.ListSelectionModel#setAnchorSelectionIndex(int)
-	 */
-	public void setAnchorSelectedValue(Object object) {
-		this.setAnchorSelectionIndex(this.indexOf(object));
-	}
-
-	/**
-	 * @see javax.swing.ListSelectionModel#getLeadSelectionIndex()
-	 * Return null if the lead selection is empty.
-	 */
-	public Object getLeadSelectedValue() {
-		int index = this.getLeadSelectionIndex();
-		if (index == -1) {
-			return null;
-		}
-		return this.getListModel().getElementAt(index);
-	}
-
-	/**
-	 * @see javax.swing.ListSelectionModel#setLeadSelectionIndex(int)
-	 */
-	public void setLeadSelectedValue(Object object) {
-		this.setLeadSelectionIndex(this.indexOf(object));
-	}
-
-	/**
-	 * @see javax.swing.ListSelectionModel#getMaxSelectionIndex()
-	 * Return null if the max selection is empty.
-	 */
-	public Object getMaxSelectedValue() {
-		int index = this.getMaxSelectionIndex();
-		if (index == -1) {
-			return null;
-		}
-		return this.getListModel().getElementAt(index);
-	}
-
-	/**
-	 * @see javax.swing.ListSelectionModel#getMinSelectionIndex()
-	 * Return null if the min selection is empty.
-	 */
-	public Object getMinSelectedValue() {
-		int index = this.getMinSelectionIndex();
-		if (index == -1) {
-			return null;
-		}
-		return this.getListModel().getElementAt(index);
-	}
-
-	/**
-	 * @see javax.swing.ListSelectionModel#isSelectedIndex(int)
-	 */
-	public boolean valueIsSelected(Object object) {
-		return this.isSelectedIndex(this.indexOf(object));
-	}
-
-	/**
-	 * Add the specified objects to the current set of selected objects,
-	 * without wrapping the actions in "adjusting" events.
-	 */
-	private void addSelectedValuesInternal(Iterator<?> objects) {
-		ListModel lm = this.getListModel();
-		int listModelSize = lm.getSize();
-		while (objects.hasNext()) {
-			int index = this.indexOf(objects.next(), lm, listModelSize);
-			this.addSelectionInterval(index, index);
-		}
-	}
-
-	/**
-	 * Return the index in the list model of the specified object.
-	 * Return -1 if the object is not in the list model.
-	 */
-	private int indexOf(Object object) {
-		ListModel lm = this.getListModel();
-		return this.indexOf(object, lm, lm.getSize());
-	}
-
-	/**
-	 * Return the index in the list model of the specified object.
-	 * Return -1 if the object is not in the list model.
-	 */
-	// we're just jerking around with performance optimizations here
-	// (in memory of Phil...);
-	// call this method inside loops that do not modify the listModel
-	private int indexOf(Object object, ListModel lm, int listModelSize) {
-		for (int i = listModelSize; i-- > 0; ) {
-			if (lm.getElementAt(i) == object) {
-				return i;
-			}
-		}
-		return -1;
-	}
-
-}
diff --git a/jpa/plugins/org.eclipse.jpt.utility/src/org/eclipse/jpt/utility/internal/model/value/swing/PrimitiveListTreeModel.java b/jpa/plugins/org.eclipse.jpt.utility/src/org/eclipse/jpt/utility/internal/model/value/swing/PrimitiveListTreeModel.java
deleted file mode 100644
index 2bc8a17..0000000
--- a/jpa/plugins/org.eclipse.jpt.utility/src/org/eclipse/jpt/utility/internal/model/value/swing/PrimitiveListTreeModel.java
+++ /dev/null
@@ -1,233 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2008 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.utility.internal.model.value.swing;
-
-import java.util.ArrayList;
-import java.util.Iterator;
-import java.util.ListIterator;
-import javax.swing.event.TreeModelListener;
-import javax.swing.tree.DefaultMutableTreeNode;
-import javax.swing.tree.DefaultTreeModel;
-import javax.swing.tree.MutableTreeNode;
-import javax.swing.tree.TreeNode;
-import javax.swing.tree.TreePath;
-import org.eclipse.jpt.utility.internal.model.listener.awt.AWTListChangeListenerWrapper;
-import org.eclipse.jpt.utility.model.event.ListChangeEvent;
-import org.eclipse.jpt.utility.model.listener.ListChangeListener;
-import org.eclipse.jpt.utility.model.value.ListValueModel;
-
-/**
- * This TreeModel implementation provides a tree with a "null" root that
- * has a set of "primitive" children. These "primitive" children do not have
- * children themselves, making the tree a maximum of 2 levels deep.
- * This model automatically synchronizes the root's children with a
- * ListValueModel that holds a collection of primitive (non-model) objects
- * (e.g. Strings).
- * 
- * This is useful for providing an "editable" list of primitives. Since the JDK
- * does not provide us with an editable listbox, we must use an editable tree.
- * We wrap everything in DefaultMutableTreeNodes.
- * 
- * Subclasses must implement #primitiveChanged(int, Object) and update
- * the model appropriately. This method is called when the user edits the
- * list directly and presses <Enter>.
- * 
- * The JTree using this model must be configured as "editable":
- * 	tree.setEditable(true);
- */
-// TODO convert to use an adapter instead of requiring subclass
-public abstract class PrimitiveListTreeModel
-	extends DefaultTreeModel
-{
-	/** a model on the list of primitives */
-	private final ListValueModel<?> listHolder;
-
-	/** a listener that handles the adding, removing, and replacing of the primitives */
-	private final ListChangeListener listChangeListener;
-
-
-	// ********** constructors **********
-	
-	/**
-	 * Public constructor - the list holder is required
-	 */
-	public PrimitiveListTreeModel(ListValueModel<?> listHolder) {
-		super(new DefaultMutableTreeNode(null, true));  // true = the root can have children
-		if (listHolder == null) {
-			throw new NullPointerException();
-		}
-		this.listHolder = listHolder;
-		this.listChangeListener = this.buildListChangeListener();
-		// postpone listening to the model until we have listeners ourselves
-	}
-
-	protected ListChangeListener buildListChangeListener() {
-		return new AWTListChangeListenerWrapper(this.buildListChangeListener_());
-	}
-
-	protected ListChangeListener buildListChangeListener_() {
-		return new PrimitiveListChangeListener();
-	}
-
-
-	// ********** behavior **********
-
-	/**
-	 * Subclasses should override this method to update the 
-	 * model appropriately. The primitive at the specified index was
-	 * edited directly by the user and the new value is as specified.
-	 * Convert the value appropriately and place it in the model.
-	 */
-	protected abstract void primitiveChanged(int index, Object newValue);
-
-
-	// ********** TreeModel implementation **********
-
-	/**
-	 * Override to change the underlying model instead of changing the node directly.
-	 */
-    @Override
-	public void valueForPathChanged(TreePath path, Object newValue) {
-		TreeNode node = (TreeNode) path.getLastPathComponent();
-		int index = ((TreeNode) this.getRoot()).getIndex(node);
-		this.primitiveChanged(index, newValue);
-	}
-
-	/**
-	 * Extend to start listening to the underlying model if necessary.
-	 */
-    @Override
-	public void addTreeModelListener(TreeModelListener l) {
-		if (this.getTreeModelListeners().length == 0) {
-			this.listHolder.addListChangeListener(ListValueModel.LIST_VALUES, this.listChangeListener);
-			this.synchronizeList();
-		}
-		super.addTreeModelListener(l);
-	}
-
-	/**
-	 * Extend to stop listening to the underlying model if appropriate.
-	 */
-    @Override
-	public void removeTreeModelListener(TreeModelListener l) {
-		super.removeTreeModelListener(l);
-		if (this.getTreeModelListeners().length == 0) {
-			this.listHolder.removeListChangeListener(ListValueModel.LIST_VALUES, this.listChangeListener);
-		}
-	}
-
-
-	// ********** behavior **********
-
-	/**
-	 * Synchronize our list of nodes with the list of primitives
-	 */
-	void synchronizeList() {
-		this.clearList();
-		this.buildList();
-	}
-
-	void clearList() {
-		int childcount = this.root.getChildCount();
-		for (int i = childcount - 1; i >= 0; i--) {
-			this.removeNodeFromParent((MutableTreeNode)this.root.getChildAt(i));
-		}
-	}
-		
-	private void buildList() {
-		for (Iterator<?> stream = this.listHolder.iterator(); stream.hasNext(); ) {
-			this.addPrimitive(stream.next());
-		}
-	}
-
-	/**
-	 * Add the specified primitive to the end of the list.
-	 */
-	private void addPrimitive(Object primitive) {
-		this.insertPrimitive(this.root.getChildCount(), primitive);
-	}
-
-	/**
-	 * Create a node for the specified primitive
-	 * and insert it as a child of the root.
-	 */
-	void insertPrimitive(int index, Object primitive) {
-		DefaultMutableTreeNode node = new DefaultMutableTreeNode(primitive, false); // don't allow children on the child node
-		this.insertNodeInto(node, (MutableTreeNode) this.root, index);
-	}
-
-	/**
-	 * Remove node at the specified index.
-	 */
-	MutableTreeNode removeNode(int index) {
-		MutableTreeNode node = (MutableTreeNode) this.root.getChildAt(index);
-		this.removeNodeFromParent(node);
-		return node;
-	}
-
-	/**
-	 * Replace the user object of the node at childIndex.
-	 */
-	void replacePrimitive(int index, Object primitive) {
-		MutableTreeNode node = (MutableTreeNode) this.root.getChildAt(index);
-		node.setUserObject(primitive);
-		this.nodeChanged(node);
-	}
-
-
-	// ********** inner class **********
-
-	private class PrimitiveListChangeListener implements ListChangeListener {
-		PrimitiveListChangeListener() {
-			super();
-		}
-
-		public void itemsAdded(ListChangeEvent event) {
-			int i = event.getIndex();
-			for (ListIterator<?> stream = event.items(); stream.hasNext(); ) {
-				PrimitiveListTreeModel.this.insertPrimitive(i++, stream.next());
-			}
-		}
-
-		public void itemsRemoved(ListChangeEvent event) {
-			for (int i = 0; i < event.itemsSize(); i++) {
-				PrimitiveListTreeModel.this.removeNode(event.getIndex());
-			}
-		}
-
-		public void itemsReplaced(ListChangeEvent event) {
-			int i = event.getIndex();
-			for (ListIterator<?> stream = event.items(); stream.hasNext(); ) {
-				PrimitiveListTreeModel.this.replacePrimitive(i++, stream.next());
-			}
-		}
-
-		public void itemsMoved(ListChangeEvent event) {
-			ArrayList<MutableTreeNode> temp = new ArrayList<MutableTreeNode>(event.getMoveLength());
-			for (int i = 0; i < event.getMoveLength(); i++) {
-				temp.add(PrimitiveListTreeModel.this.removeNode(event.getSourceIndex()));
-			}
-			int i = event.getTargetIndex();
-			for (MutableTreeNode node : temp) {
-				PrimitiveListTreeModel.this.insertPrimitive(i++, node);
-			}
-		}
-
-		public void listCleared(ListChangeEvent event) {
-			PrimitiveListTreeModel.this.clearList();
-		}
-
-		public void listChanged(ListChangeEvent event) {
-			PrimitiveListTreeModel.this.synchronizeList();
-		}
-
-	}
-
-}
diff --git a/jpa/plugins/org.eclipse.jpt.utility/src/org/eclipse/jpt/utility/internal/model/value/swing/RadioButtonModelAdapter.java b/jpa/plugins/org.eclipse.jpt.utility/src/org/eclipse/jpt/utility/internal/model/value/swing/RadioButtonModelAdapter.java
deleted file mode 100644
index 1caee48..0000000
--- a/jpa/plugins/org.eclipse.jpt.utility/src/org/eclipse/jpt/utility/internal/model/value/swing/RadioButtonModelAdapter.java
+++ /dev/null
@@ -1,151 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2008 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.utility.internal.model.value.swing;
-
-import org.eclipse.jpt.utility.internal.BidiFilter;
-import org.eclipse.jpt.utility.internal.BidiTransformer;
-import org.eclipse.jpt.utility.internal.model.value.FilteringWritablePropertyValueModel;
-import org.eclipse.jpt.utility.internal.model.value.TransformationWritablePropertyValueModel;
-import org.eclipse.jpt.utility.model.value.WritablePropertyValueModel;
-
-/**
- * This javax.swing.ButtonModel can be used to keep a listener
- * (e.g. a JRadioButton) in synch with a (typically shared)
- * PropertyValueModel that holds one value out of a set of values.
- * 
- * NOTE: Do *not* use this model with a ButtonGroup, since the
- * shared value holder and the wrappers built by this adapter will
- * keep the appropriate radio button checked. Also, this allows
- * us to uncheck all the radio buttons in a group when the shared
- * value is null.
- */
-public class RadioButtonModelAdapter
-	extends ToggleButtonModelAdapter
-{
-
-	// ********** constructors **********
-
-	/**
-	 * Constructor - the value holder is required.
-	 */
-	public RadioButtonModelAdapter(WritablePropertyValueModel<Object> valueHolder, Object buttonValue, boolean defaultValue) {
-		super(buildBooleanHolder(valueHolder, buttonValue), defaultValue);
-	}
-
-	/**
-	 * Constructor - the value holder is required.
-	 * The default value will be false.
-	 */
-	public RadioButtonModelAdapter(WritablePropertyValueModel<Object> valueHolder, Object buttonValue) {
-		super(buildBooleanHolder(valueHolder, buttonValue));
-	}
-
-
-	// ********** static methods **********
-
-	/**
-	 * Build up a set of wrappers that will convert the
-	 * specified value holder and button value to/from a boolean.
-	 * 
-	 * If the value holder's value matches the button value,
-	 * the wrapper will return true. Likewise, if the value holder's
-	 * value is set to true, the wrapper will set the value holder's
-	 * value to the button value.
-	 */
-	public static WritablePropertyValueModel<Boolean> buildBooleanHolder(WritablePropertyValueModel<Object> valueHolder, Object buttonValue) {
-		WritablePropertyValueModel<Object> filteringPVM = new FilteringWritablePropertyValueModel<Object>(valueHolder, new RadioButtonFilter(buttonValue));
-		return new TransformationWritablePropertyValueModel<Object, Boolean>(filteringPVM, new RadioButtonTransformer(buttonValue));
-	}
-
-
-	// ********** overrides **********
-
-	/**
-	 * The user cannot de-select a radio button - the user
-	 * can only *select* a radio button. Only the model can
-	 * cause a radio button to be de-selected. We use the
-	 * ARMED flag to indicate whether we are being de-selected
-	 * by the user.
-	 */
-    @Override
-	public void setSelected(boolean b) {
-		// do not allow the user to de-select a radio button
-		// radio buttons can
-		if ((b == false) && this.isArmed()) {
-			return;
-		}
-		super.setSelected(b);
-	}
-
-
-	// ********** inner classes **********
-
-	/**
-	 * This filter will only pass through a new value to the wrapped
-	 * value holder when it matches the configured button value.
-	 */
-	public static class RadioButtonFilter implements BidiFilter<Object> {
-		private Object buttonValue;
-
-		public RadioButtonFilter(Object buttonValue) {
-			super();
-			this.buttonValue = buttonValue;
-		}
-
-		/**
-		 * always return the wrapped value
-		 */
-		public boolean accept(Object value) {
-			return true;
-		}
-
-		/**
-		 * pass through the value to the wrapped property value model
-		 * *only* when it matches our button value
-		 */
-		public boolean reverseAccept(Object value) {
-			return value == this.buttonValue;
-		}
-
-	}
-
-	/**
-	 * This transformer will convert the wrapped value to Boolean.TRUE
-	 * when it matches the configured button value.
-	 */
-	public static class RadioButtonTransformer implements BidiTransformer<Object, Boolean> {
-		private Object buttonValue;
-
-		public RadioButtonTransformer(Object buttonValue) {
-			super();
-			this.buttonValue = buttonValue;
-		}
-
-		/**
-		 * if the wrapped value matches our button value return true,
-		 * if it is some other value return false;
-		 * but if it is null simply pass it through because it will cause the
-		 * button model's default value to be used
-		 */
-		public Boolean transform(Object value) {
-			return (value == null) ? null : Boolean.valueOf(value == this.buttonValue);
-		}
-
-		/**
-		 * if the new value is true, pass through the our button value;
-		 * otherwise pass through null
-		 */
-		public Object reverseTransform(Boolean value) {
-			return (value.booleanValue()) ? this.buttonValue : null;
-		}
-
-	}
-
-}
diff --git a/jpa/plugins/org.eclipse.jpt.utility/src/org/eclipse/jpt/utility/internal/model/value/swing/SpinnerModelAdapter.java b/jpa/plugins/org.eclipse.jpt.utility/src/org/eclipse/jpt/utility/internal/model/value/swing/SpinnerModelAdapter.java
deleted file mode 100644
index c26f18f..0000000
--- a/jpa/plugins/org.eclipse.jpt.utility/src/org/eclipse/jpt/utility/internal/model/value/swing/SpinnerModelAdapter.java
+++ /dev/null
@@ -1,207 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2008 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.utility.internal.model.value.swing;
-
-import javax.swing.AbstractSpinnerModel;
-import javax.swing.SpinnerModel;
-import javax.swing.SpinnerNumberModel;
-import javax.swing.event.ChangeEvent;
-import javax.swing.event.ChangeListener;
-import org.eclipse.jpt.utility.internal.StringTools;
-import org.eclipse.jpt.utility.internal.model.listener.awt.AWTPropertyChangeListenerWrapper;
-import org.eclipse.jpt.utility.model.event.PropertyChangeEvent;
-import org.eclipse.jpt.utility.model.listener.PropertyChangeListener;
-import org.eclipse.jpt.utility.model.value.PropertyValueModel;
-import org.eclipse.jpt.utility.model.value.WritablePropertyValueModel;
-
-/**
- * This javax.swing.SpinnerModel can be used to keep a ChangeListener
- * (e.g. a JSpinner) in synch with a PropertyValueModel that holds a value.
- * 
- * Note: it is likely you want to use one of the following classes instead of
- * this one:
- *     DateSpinnerModelAdapter
- *     NumberSpinnerModelAdapter
- *     ListSpinnerModelAdapter
- * 
- * NB: This model should only be used for values that have a fairly
- * inexpensive #equals() implementation.
- * @see #synchronizeDelegate(Object)
- */
-public class SpinnerModelAdapter
-	extends AbstractSpinnerModel
-{
-	/** The delegate spinner model whose behavior we "enhance". */
-	protected final SpinnerModel delegate;
-
-	/** A listener that allows us to forward any changes made to the delegate spinner model. */
-	protected final ChangeListener delegateListener;
-
-	/** A value model on the underlying value. */
-	protected final WritablePropertyValueModel<Object> valueHolder;
-
-	/** A listener that allows us to synchronize with changes made to the underlying value. */
-	protected final PropertyChangeListener valueListener;
-
-
-	// ********** constructors **********
-
-	/**
-	 * Constructor - the value holder and delegate are required.
-	 */
-	public SpinnerModelAdapter(WritablePropertyValueModel<Object> valueHolder, SpinnerModel delegate) {
-		super();
-		if (valueHolder == null || delegate == null) {
-			throw new NullPointerException();
-		}
-		this.valueHolder = valueHolder;
-		this.delegate = delegate;
-		// postpone listening to the underlying value
-		// until we have listeners ourselves...
-		this.valueListener = this.buildValueListener();
-		this.delegateListener = this.buildDelegateListener();
-	}
-
-	/**
-	 * Constructor - the value holder is required.
-	 * This will wrap a simple number spinner model.
-	 */
-	public SpinnerModelAdapter(WritablePropertyValueModel<Object> valueHolder) {
-		this(valueHolder, new SpinnerNumberModel());
-	}
-
-
-	// ********** initialization **********
-
-	protected PropertyChangeListener buildValueListener() {
-		return new AWTPropertyChangeListenerWrapper(this.buildValueListener_());
-	}
-
-	protected PropertyChangeListener buildValueListener_() {
-		return new PropertyChangeListener() {
-			public void propertyChanged(PropertyChangeEvent event) {
-				SpinnerModelAdapter.this.valueChanged(event);
-			}
-			@Override
-			public String toString() {
-				return "value listener";
-			}
-		};
-	}
-
-	/**
-	 * expand access a bit for inner class
-	 */
-	@Override
-	protected void fireStateChanged() {
-		super.fireStateChanged();
-	}
-
-	protected ChangeListener buildDelegateListener() {
-		return new ChangeListener() {
-			public void stateChanged(ChangeEvent event) {
-				// forward the event, with this as the source
-				SpinnerModelAdapter.this.fireStateChanged();
-			}
-			@Override
-			public String toString() {
-				return "delegate listener";
-			}
-		};
-	}
-
-
-	// ********** SpinnerModel implementation **********
-
-	public Object getValue() {
-		return this.delegate.getValue();
-	}
-
-	/**
-	 * Extend to update the underlying value directly.
-	 * The resulting event will be ignored: @see #synchronizeDelegate(Object).
-	 */
-	public void setValue(Object value) {
-		this.delegate.setValue(value);
-		this.valueHolder.setValue(value);
-	}
-
-	public Object getNextValue() {
-		return this.delegate.getNextValue();
-	}
-
-	public Object getPreviousValue() {
-		return this.delegate.getPreviousValue();
-	}
-
-	/**
-	 * Extend to start listening to the underlying value if necessary.
-	 */
-    @Override
-	public void addChangeListener(ChangeListener listener) {
-		if (this.listenerList.getListenerCount(ChangeListener.class) == 0) {
-			this.delegate.addChangeListener(this.delegateListener);
-			this.engageValueHolder();
-		}
-		super.addChangeListener(listener);
-	}
-
-	/**
-	 * Extend to stop listening to the underlying value if appropriate.
-	 */
-    @Override
-	public void removeChangeListener(ChangeListener listener) {
-		super.removeChangeListener(listener);
-		if (this.listenerList.getListenerCount(ChangeListener.class) == 0) {
-			this.disengageValueHolder();
-			this.delegate.removeChangeListener(this.delegateListener);
-		}
-	}
-
-
-	// ********** behavior **********
-
-	/**
-	 * A third party has modified the underlying value.
-	 * Synchronize the delegate model accordingly.
-	 */
-	protected void valueChanged(PropertyChangeEvent event) {
-		this.synchronizeDelegate(event.getNewValue());
-	}
-
-	/**
-	 * Set the delegate's value if it has changed.
-	 */
-	protected void synchronizeDelegate(Object value) {
-		// check to see whether the delegate has already been synchronized
-		// (via #setValue())
-		if ( ! this.delegate.getValue().equals(value)) {
-			this.delegate.setValue(value);
-		}
-	}
-
-	protected void engageValueHolder() {
-		this.valueHolder.addPropertyChangeListener(PropertyValueModel.VALUE, this.valueListener);
-		this.synchronizeDelegate(this.valueHolder.getValue());
-	}
-
-	protected void disengageValueHolder() {
-		this.valueHolder.removePropertyChangeListener(PropertyValueModel.VALUE, this.valueListener);
-	}
-
-
-	// ********** standard methods **********
-
-	@Override
-	public String toString() {
-		return StringTools.buildToStringFor(this, this.valueHolder);
-	}
-
-}
diff --git a/jpa/plugins/org.eclipse.jpt.utility/src/org/eclipse/jpt/utility/internal/model/value/swing/TableModelAdapter.java b/jpa/plugins/org.eclipse.jpt.utility/src/org/eclipse/jpt/utility/internal/model/value/swing/TableModelAdapter.java
deleted file mode 100644
index 5e039e2..0000000
--- a/jpa/plugins/org.eclipse.jpt.utility/src/org/eclipse/jpt/utility/internal/model/value/swing/TableModelAdapter.java
+++ /dev/null
@@ -1,410 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2008 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.utility.internal.model.value.swing;
-
-import java.util.ArrayList;
-import java.util.Iterator;
-import java.util.List;
-import javax.swing.event.TableModelListener;
-import javax.swing.table.AbstractTableModel;
-import org.eclipse.jpt.utility.internal.model.listener.awt.AWTListChangeListenerWrapper;
-import org.eclipse.jpt.utility.internal.model.listener.awt.AWTPropertyChangeListenerWrapper;
-import org.eclipse.jpt.utility.internal.model.value.CollectionListValueModelAdapter;
-import org.eclipse.jpt.utility.model.event.ListChangeEvent;
-import org.eclipse.jpt.utility.model.event.PropertyChangeEvent;
-import org.eclipse.jpt.utility.model.listener.ListChangeListener;
-import org.eclipse.jpt.utility.model.listener.PropertyChangeListener;
-import org.eclipse.jpt.utility.model.value.CollectionValueModel;
-import org.eclipse.jpt.utility.model.value.ListValueModel;
-import org.eclipse.jpt.utility.model.value.PropertyValueModel;
-import org.eclipse.jpt.utility.model.value.WritablePropertyValueModel;
-
-/**
- * This TableModel can be used to keep a TableModelListener (e.g. a JTable)
- * in synch with a ListValueModel that holds a collection of model objects,
- * each of which corresponds to a row in the table.
- * Typically, each column of the table will be bound to a different aspect
- * of the contained model objects.
- * 
- * For example, a MWTable has an attribute 'databaseFields' that holds
- * a collection of MWDatabaseFields that would correspond to the rows of
- * a JTable; and each MWDatabaseField has a number
- * of attributes (e.g. name, type, size) that can be bound to the columns of
- * a row in the JTable. As these database fields are added, removed, and
- * changed, this model will keep the listeners aware of the changes.
- * 
- * An instance of this TableModel must be supplied with a
- * list holder (e.g. the 'databaseFields'), which is a value
- * model on the bound collection This is required - the
- * collection itself can be null, but the list value model that
- * holds it is required. Typically this list will be sorted (@see
- * SortedListValueModelAdapter).
- * 
- * This TableModel must also be supplied with a ColumnAdapter that
- * will be used to configure the headers, renderers, editors, and contents
- * of the various columns.
- * 
- * Design decision:
- * Cell listener options (from low space/high time to high space/low time):
- * 	- 1 cell listener listening to every cell (this is the current implementation)
- * 	- 1 cell listener per row
- * 	- 1 cell listener per cell
- */
-public class TableModelAdapter<E>
-	extends AbstractTableModel
-{
-	/**
-	 * a list of user objects that are converted to
-	 * rows via the column adapter
-	 */
-	private ListValueModel<? extends E> listHolder;
-	private final ListChangeListener listChangeListener;
-
-	/**
-	 * each row is an array of cell models
-	 */
-	// declare as ArrayList so we can use #ensureCapacity(int)
-	private final ArrayList<WritablePropertyValueModel<Object>[]> rows;
-
-	/**
-	 * client-supplied adapter that provides with the various column
-	 * settings and converts the objects in the LVM
-	 * into an array of cell models
-	 */
-	private final ColumnAdapter columnAdapter;
-
-	/**
-	 * the single listener that listens to every cell's model
-	 */
-	private final PropertyChangeListener cellListener;
-
-
-	// ********** constructors **********
-
-	/**
-	 * Construct a table model adapter for the specified objects
-	 * and adapter.
-	 */
-	public TableModelAdapter(ListValueModel<? extends E> listHolder, ColumnAdapter columnAdapter) {
-		super();
-		if (listHolder == null) {
-			throw new NullPointerException();
-		}
-		this.listHolder = listHolder;
-		this.columnAdapter = columnAdapter;
-		this.listChangeListener = this.buildListChangeListener();
-		this.rows = new ArrayList<WritablePropertyValueModel<Object>[]>();
-		this.cellListener = this.buildCellListener();
-	}
-
-	/**
-	 * Construct a table model adapter for the specified objects
-	 * and adapter.
-	 */
-	public TableModelAdapter(CollectionValueModel<? extends E> collectionHolder, ColumnAdapter columnAdapter) {
-		this(new CollectionListValueModelAdapter<E>(collectionHolder), columnAdapter);
-	}
-
-
-	// ********** initialization **********
-
-	protected ListChangeListener buildListChangeListener() {
-		return new AWTListChangeListenerWrapper(this.buildListChangeListener_());
-	}
-
-	protected ListChangeListener buildListChangeListener_() {
-		return new ListChangeListener() {
-			public void itemsAdded(ListChangeEvent event) {
-				TableModelAdapter.this.addRows(event.getIndex(), event.itemsSize(), this.items(event));
-			}
-			public void itemsRemoved(ListChangeEvent event) {
-				TableModelAdapter.this.removeRows(event.getIndex(), event.itemsSize());
-			}
-			public void itemsReplaced(ListChangeEvent event) {
-				TableModelAdapter.this.replaceRows(event.getIndex(), this.items(event));
-			}
-			public void itemsMoved(ListChangeEvent event) {
-				TableModelAdapter.this.moveRows(event.getTargetIndex(), event.getSourceIndex(), event.getMoveLength());
-			}
-			public void listCleared(ListChangeEvent event) {
-				TableModelAdapter.this.clearTable();
-			}
-			public void listChanged(ListChangeEvent event) {
-				TableModelAdapter.this.rebuildTable();
-			}
-			/**
-			 * minimize scope of suppressed warnings
-			 */
-			@SuppressWarnings("unchecked")
-			protected Iterator<Object> items(ListChangeEvent event) {
-				return (Iterator<Object>) event.items();
-			}
-			@Override
-			public String toString() {
-				return "list listener";
-			}
-		};
-	}
-
-
-	protected PropertyChangeListener buildCellListener() {
-		return new AWTPropertyChangeListenerWrapper(this.buildCellListener_());
-	}
-
-	protected PropertyChangeListener buildCellListener_() {
-		return new PropertyChangeListener() {
-			@SuppressWarnings("unchecked")
-			public void propertyChanged(PropertyChangeEvent event) {
-				TableModelAdapter.this.cellChanged((WritablePropertyValueModel<Object>) event.getSource());
-			}
-			@Override
-			public String toString() {
-				return "cell listener";
-			}
-		};
-	}
-
-
-	// ********** TableModel implementation **********
-
-	public int getColumnCount() {
-		return this.columnAdapter.columnCount();
-	}
-
-	public int getRowCount() {
-		return this.rows.size();
-	}
-
-    @Override
-	public String getColumnName(int column) {
-		return this.columnAdapter.columnName(column);
-	}
-
-    @Override
-	public Class<?> getColumnClass(int columnIndex) {
-		return this.columnAdapter.columnClass(columnIndex);
-	}
-
-    @Override
-	public boolean isCellEditable(int rowIndex, int columnIndex) {
-		return this.columnAdapter.columnIsEditable(columnIndex);
-	}
-
-	public Object getValueAt(int rowIndex, int columnIndex) {
-		WritablePropertyValueModel<Object>[] row = this.rows.get(rowIndex);
-		return row[columnIndex].getValue();
-	}
-
-	@Override
-	public void setValueAt(Object value, int rowIndex, int columnIndex) {
-		WritablePropertyValueModel<Object>[] row = this.rows.get(rowIndex);
-		row[columnIndex].setValue(value);
-	}
-
-	/**
-	 * Extend to start listening to the underlying model if necessary.
-	 */
-    @Override
-	public void addTableModelListener(TableModelListener l) {
-		if (this.hasNoTableModelListeners()) {
-			this.engageModel();
-		}
-		super.addTableModelListener(l);
-	}
-
-	/**
-	 * Extend to stop listening to the underlying model if necessary.
-	 */
-    @Override
-	public void removeTableModelListener(TableModelListener l) {
-		super.removeTableModelListener(l);
-		if (this.hasNoTableModelListeners()) {
-			this.disengageModel();
-		}
-	}
-
-
-	// ********** public API **********
-
-	/**
-	 * Return the underlying list model.
-	 */
-	public ListValueModel<? extends E> getModel() {
-		return this.listHolder;
-	}
-
-	/**
-	 * Set the underlying list model.
-	 */
-	public void setModel(ListValueModel<E> listHolder) {
-		if (listHolder == null) {
-			throw new NullPointerException();
-		}
-		boolean hasListeners = this.hasTableModelListeners();
-		if (hasListeners) {
-			this.disengageModel();
-		}
-		this.listHolder = listHolder;
-		if (hasListeners) {
-			this.engageModel();
-			this.fireTableDataChanged();
-		}
-	}
-
-	/**
-	 * Set the underlying collection model.
-	 */
-	public void setModel(CollectionValueModel<E> collectionHolder) {
-		this.setModel(new CollectionListValueModelAdapter<E>(collectionHolder));
-	}
-
-
-	// ********** queries **********
-
-	/**
-	 * Return whether this model has no listeners.
-	 */
-	protected boolean hasNoTableModelListeners() {
-		return this.listenerList.getListenerCount(TableModelListener.class) == 0;
-	}
-
-	/**
-	 * Return whether this model has any listeners.
-	 */
-	protected boolean hasTableModelListeners() {
-		return ! this.hasNoTableModelListeners();
-	}
-
-
-	// ********** behavior **********
-
-	/**
-	 * Start listening to the list of objects and the various aspects
-	 * of the objects that make up the rows.
-	 */
-	private void engageModel() {
-		this.listHolder.addListChangeListener(ListValueModel.LIST_VALUES, this.listChangeListener);
-		this.engageAllCells();
-	}
-
-	/**
-	 * Convert the objects into rows and listen to the cells.
-	 */
-	private void engageAllCells() {
-		this.rows.ensureCapacity(this.listHolder.size());
-		for (Iterator<? extends E> stream = this.listHolder.iterator(); stream.hasNext(); ) {
-			WritablePropertyValueModel<Object>[] row = this.columnAdapter.cellModels(stream.next());
-			this.engageRow(row);
-			this.rows.add(row);
-		}
-	}
-
-	/**
-	 * Listen to the cells in the specified row.
-	 */
-	private void engageRow(WritablePropertyValueModel<Object>[] row) {
-		for (int i = row.length; i-- > 0; ) {
-			row[i].addPropertyChangeListener(PropertyValueModel.VALUE, this.cellListener);
-		}
-	}
-
-	/**
-	 * Stop listening.
-	 */
-	private void disengageModel() {
-		this.disengageAllCells();
-		this.listHolder.removeListChangeListener(ListValueModel.LIST_VALUES, this.listChangeListener);
-	}
-
-	private void disengageAllCells() {
-		for (WritablePropertyValueModel<Object>[] row : this.rows) {
-			this.disengageRow(row);
-		}
-		this.rows.clear();
-	}
-
-	private void disengageRow(WritablePropertyValueModel<Object>[] row) {
-		for (int i = row.length; i-- > 0; ) {
-			row[i].removePropertyChangeListener(PropertyValueModel.VALUE, this.cellListener);
-		}
-	}
-
-	/**
-	 * brute-force search for the cell(s) that changed...
-	 */
-	void cellChanged(WritablePropertyValueModel<Object> cellHolder) {
-		for (int i = this.rows.size(); i-- > 0; ) {
-			WritablePropertyValueModel<Object>[] row = this.rows.get(i);
-			for (int j = row.length; j-- > 0; ) {
-				if (row[j] == cellHolder) {
-					this.fireTableCellUpdated(i, j);
-				}
-			}
-		}
-	}
-
-	/**
-	 * convert the items to rows
-	 */
-	void addRows(int index, int size, Iterator<Object> items) {
-		List<WritablePropertyValueModel<Object>[]> newRows = new ArrayList<WritablePropertyValueModel<Object>[]>(size);
-		while (items.hasNext()) {
-			WritablePropertyValueModel<Object>[] row = this.columnAdapter.cellModels(items.next());
-			this.engageRow(row);
-			newRows.add(row);
-		}
-		this.rows.addAll(index, newRows);
-		this.fireTableRowsInserted(index, index + size - 1);
-	}
-
-	void removeRows(int index, int size) {
-		for (int i = 0; i < size; i++) {
-			this.disengageRow(this.rows.remove(index));
-		}
-		this.fireTableRowsDeleted(index, index + size - 1);
-	}
-
-	void replaceRows(int index, Iterator<Object> items) {
-		int i = index;
-		while (items.hasNext()) {
-			WritablePropertyValueModel<Object>[] row = this.rows.get(i);
-			this.disengageRow(row);
-			row = this.columnAdapter.cellModels(items.next());
-			this.engageRow(row);
-			this.rows.set(i, row);
-			i++;
-		}
-		this.fireTableRowsUpdated(index, i - 1);
-	}
-
-	void moveRows(int targetIndex, int sourceIndex, int length) {
-		ArrayList<WritablePropertyValueModel<Object>[]> temp = new ArrayList<WritablePropertyValueModel<Object>[]>(length);
-		for (int i = 0; i < length; i++) {
-			temp.add(this.rows.remove(sourceIndex));
-		}
-		this.rows.addAll(targetIndex, temp);
-
-		int start = Math.min(targetIndex, sourceIndex);
-		int end = Math.max(targetIndex, sourceIndex) + length - 1;
-		this.fireTableRowsUpdated(start, end);
-	}
-
-	void clearTable() {
-		this.disengageAllCells();
-		this.fireTableDataChanged();
-	}
-
-	void rebuildTable() {
-		this.disengageAllCells();
-		this.engageAllCells();
-		this.fireTableDataChanged();
-	}
-
-}
diff --git a/jpa/plugins/org.eclipse.jpt.utility/src/org/eclipse/jpt/utility/internal/model/value/swing/ToggleButtonModelAdapter.java b/jpa/plugins/org.eclipse.jpt.utility/src/org/eclipse/jpt/utility/internal/model/value/swing/ToggleButtonModelAdapter.java
deleted file mode 100644
index 7c0e742..0000000
--- a/jpa/plugins/org.eclipse.jpt.utility/src/org/eclipse/jpt/utility/internal/model/value/swing/ToggleButtonModelAdapter.java
+++ /dev/null
@@ -1,224 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2008 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.utility.internal.model.value.swing;
-
-import java.awt.event.ActionListener;
-import java.awt.event.ItemListener;
-import javax.swing.JToggleButton.ToggleButtonModel;
-import javax.swing.event.ChangeListener;
-import org.eclipse.jpt.utility.internal.StringTools;
-import org.eclipse.jpt.utility.internal.model.listener.awt.AWTPropertyChangeListenerWrapper;
-import org.eclipse.jpt.utility.model.event.PropertyChangeEvent;
-import org.eclipse.jpt.utility.model.listener.PropertyChangeListener;
-import org.eclipse.jpt.utility.model.value.PropertyValueModel;
-import org.eclipse.jpt.utility.model.value.WritablePropertyValueModel;
-
-/**
- * This javax.swing.ButtonModel can be used to keep a listener
- * (e.g. a JCheckBox or a JRadioButton) in synch with a PropertyValueModel
- * on a boolean.
- */
-public class ToggleButtonModelAdapter
-	extends ToggleButtonModel
-{
-	/**
-	 * The default setting for the toggle button; for when the underlying model is null.
-	 * The default [default value] is false (i.e. the toggle button is unchecked/empty).
-	 */
-	protected final boolean defaultValue;
-
-	/** A value model on the underlying model boolean. */
-	protected final WritablePropertyValueModel<Boolean> booleanHolder;
-
-	/**
-	 * A listener that allows us to synchronize with
-	 * changes made to the underlying model boolean.
-	 */
-	protected final PropertyChangeListener booleanChangeListener;
-
-
-	// ********** constructors **********
-
-	/**
-	 * Constructor - the boolean holder is required.
-	 */
-	public ToggleButtonModelAdapter(WritablePropertyValueModel<Boolean> booleanHolder, boolean defaultValue) {
-		super();
-		if (booleanHolder == null) {
-			throw new NullPointerException();
-		}
-		this.booleanHolder = booleanHolder;
-		this.booleanChangeListener = this.buildBooleanChangeListener();
-		// postpone listening to the underlying model
-		// until we have listeners ourselves...
-		this.defaultValue = defaultValue;
-	}
-
-	/**
-	 * Constructor - the boolean holder is required.
-	 * The default value will be false.
-	 */
-	public ToggleButtonModelAdapter(WritablePropertyValueModel<Boolean> booleanHolder) {
-		this(booleanHolder, false);
-	}
-
-
-	// ********** initialization **********
-
-	protected PropertyChangeListener buildBooleanChangeListener() {
-		return new AWTPropertyChangeListenerWrapper(this.buildBooleanChangeListener_());
-	}
-
-	protected PropertyChangeListener buildBooleanChangeListener_() {
-		return new PropertyChangeListener() {
-			public void propertyChanged(PropertyChangeEvent event) {
-				ToggleButtonModelAdapter.this.booleanChanged(event);
-			}
-		    @Override
-			public String toString() {
-				return "boolean listener";
-			}
-		};
-	}
-
-
-	// ********** ButtonModel implementation **********
-
-	/**
-	 * Extend to update the underlying model if necessary.
-	 */
-    @Override
-	public void setSelected(boolean b) {
-		if (this.isSelected() != b) {	// stop the recursion!
-			super.setSelected(b);//put the super call first, otherwise the following gets called twice
-			this.booleanHolder.setValue(Boolean.valueOf(b));
-		}
-	}
-
-	/**
-	 * Extend to start listening to the underlying model if necessary.
-	 */
-    @Override
-	public void addActionListener(ActionListener l) {
-		if (this.hasNoListeners()) {
-			this.engageModel();
-		}
-		super.addActionListener(l);
-	}
-
-	/**
-	 * Extend to stop listening to the underlying model if appropriate.
-	 */
-    @Override
-	public void removeActionListener(ActionListener l) {
-		super.removeActionListener(l);
-		if (this.hasNoListeners()) {
-			this.disengageModel();
-		}
-	}
-
-	/**
-	 * Extend to start listening to the underlying model if necessary.
-	 */
-    @Override
-	public void addItemListener(ItemListener l) {
-		if (this.hasNoListeners()) {
-			this.engageModel();
-		}
-		super.addItemListener(l);
-	}
-
-	/**
-	 * Extend to stop listening to the underlying model if appropriate.
-	 */
-    @Override
-	public void removeItemListener(ItemListener l) {
-		super.removeItemListener(l);
-		if (this.hasNoListeners()) {
-			this.disengageModel();
-		}
-	}
-
-	/**
-	 * Extend to start listening to the underlying model if necessary.
-	 */
-    @Override
-	public void addChangeListener(ChangeListener l) {
-		if (this.hasNoListeners()) {
-			this.engageModel();
-		}
-		super.addChangeListener(l);
-	}
-
-	/**
-	 * Extend to stop listening to the underlying model if appropriate.
-	 */
-    @Override
-	public void removeChangeListener(ChangeListener l) {
-		super.removeChangeListener(l);
-		if (this.hasNoListeners()) {
-			this.disengageModel();
-		}
-	}
-
-
-	// ********** queries **********
-
-	/**
-	 * Return whether we have no listeners at all.
-	 */
-	protected boolean hasNoListeners() {
-		return this.listenerList.getListenerCount() == 0;
-	}
-
-	protected boolean getDefaultValue() {
-		return this.defaultValue;
-	}
-
-
-	// ********** behavior **********
-
-	/**
-	 * Synchronize with the specified value.
-	 * If it is null, use the default value (which is typically false).
-	 */
-	protected void setSelected(Boolean value) {
-		if (value == null) {
-			this.setSelected(this.getDefaultValue());
-		} else {
-			this.setSelected(value.booleanValue());
-		}
-	}
-
-	/**
-	 * The underlying model has changed - synchronize accordingly.
-	 */
-	protected void booleanChanged(PropertyChangeEvent event) {
-		this.setSelected((Boolean) event.getNewValue());
-	}
-
-	protected void engageModel() {
-		this.booleanHolder.addPropertyChangeListener(PropertyValueModel.VALUE, this.booleanChangeListener);
-		this.setSelected(this.booleanHolder.getValue());
-	}
-
-	protected void disengageModel() {
-		this.booleanHolder.removePropertyChangeListener(PropertyValueModel.VALUE, this.booleanChangeListener);
-	}
-
-
-	// ********** standard methods **********
-
-    @Override
-	public String toString() {
-		return StringTools.buildToStringFor(this, this.booleanHolder);
-	}
-
-}
diff --git a/jpa/plugins/org.eclipse.jpt.utility/src/org/eclipse/jpt/utility/internal/model/value/swing/TreeModelAdapter.java b/jpa/plugins/org.eclipse.jpt.utility/src/org/eclipse/jpt/utility/internal/model/value/swing/TreeModelAdapter.java
deleted file mode 100644
index f94a723..0000000
--- a/jpa/plugins/org.eclipse.jpt.utility/src/org/eclipse/jpt/utility/internal/model/value/swing/TreeModelAdapter.java
+++ /dev/null
@@ -1,722 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2008 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.utility.internal.model.value.swing;
-
-import java.util.ArrayList;
-import java.util.IdentityHashMap;
-import java.util.Iterator;
-import java.util.List;
-import javax.swing.event.TreeModelListener;
-import javax.swing.tree.TreePath;
-import org.eclipse.jpt.utility.internal.StringTools;
-import org.eclipse.jpt.utility.internal.model.listener.awt.AWTListChangeListenerWrapper;
-import org.eclipse.jpt.utility.internal.model.listener.awt.AWTPropertyChangeListenerWrapper;
-import org.eclipse.jpt.utility.internal.model.listener.awt.AWTStateChangeListenerWrapper;
-import org.eclipse.jpt.utility.internal.model.value.StaticPropertyValueModel;
-import org.eclipse.jpt.utility.model.event.ListChangeEvent;
-import org.eclipse.jpt.utility.model.event.PropertyChangeEvent;
-import org.eclipse.jpt.utility.model.event.StateChangeEvent;
-import org.eclipse.jpt.utility.model.listener.ListChangeListener;
-import org.eclipse.jpt.utility.model.listener.PropertyChangeListener;
-import org.eclipse.jpt.utility.model.listener.StateChangeListener;
-import org.eclipse.jpt.utility.model.value.ListValueModel;
-import org.eclipse.jpt.utility.model.value.PropertyValueModel;
-import org.eclipse.jpt.utility.model.value.TreeNodeValueModel;
-
-/**
- * This javax.swing.tree.TreeModel can be used to keep a TreeModelListener
- * (e.g. a JTree) in synch with a tree of TreeNodeValueModel objects. Unlike
- * javax.swing.tree.DefaultTreeModel, you do not add and remove nodes with
- * methods implemented here. You can add and remove nodes by adding and
- * removing them directly to/from the nodes (or, more typically, the domain
- * objects the nodes are wrapping and listening to).
- * 
- * Due to limitations in JTree, the root of the tree can never be null,
- * which, typically, should not be a problem. (If you want to display an empty
- * tree you can set the JTree's treeModel to null.)
- */
-public class TreeModelAdapter<T>
-	extends AbstractTreeModel
-{
-	/**
-	 * A value model on the underlying tree's root node and its
-	 * corresponding listener. This allows clients to swap out
-	 * the entire tree. Due to limitations in JTree, the root should
-	 * never be set to null while we have listeners.
-	 */
-	private final PropertyValueModel<TreeNodeValueModel<T>> rootHolder;
-	private final PropertyChangeListener rootListener;
-
-	/**
-	 * A listener that notifies us when a node's internal
-	 * "state" changes (as opposed to the node's value or list of
-	 * children), allowing us to forward notification to our listeners.
-	 */
-	private final StateChangeListener nodeStateListener;
-
-	/**
-	 * A listener that notifies us when a node's "value"
-	 * changes (as opposed to the node's state or list of
-	 * children), allowing us to forward notification to our listeners.
-	 * Typically, this will only happen with nodes that hold
-	 * primitive data.
-	 */
-	private final PropertyChangeListener nodeValueListener;
-
-	/**
-	 * A listener that notifies us when an underlying node's
-	 * "list" of children changes, allowing us to keep our
-	 * internal tree in synch with the underlying tree model.
-	 */
-	private final ListChangeListener childrenListener;
-
-	/* these attributes make up our internal tree */
-	/**
-	 * The root cannot be null while we have listeners, which is
-	 * most of the time. The root is cached so we can disengage
-	 * from it when it has been swapped out.
-	 */
-	private TreeNodeValueModel<T> root;
-
-	/**
-	 * Map the nodes to their lists of children.
-	 * We cache these so we can swap out the entire list of children
-	 * when we receive a #listChanged() event (which does not include
-	 * the items that were affected).
-	 * @see EventChangePolicy#rebuildChildren()
-	 */
-	final IdentityHashMap<TreeNodeValueModel<T>, List<TreeNodeValueModel<T>>> childrenLists;
-
-	/**
-	 * Map the children models to their parents.
-	 * We cache these so we can figure out the "real" source of the
-	 * list change events (the parent).
-	 * @see EventChangePolicy#parent()
-	 */
-	final IdentityHashMap<ListValueModel<TreeNodeValueModel<T>>, TreeNodeValueModel<T>> parents;
-
-
-	// ********** constructors **********
-
-	/**
-	 * Construct a tree model for the specified root.
-	 */
-	public TreeModelAdapter(PropertyValueModel<TreeNodeValueModel<T>> rootHolder) {
-		super();
-		if (rootHolder == null) {
-			throw new NullPointerException();
-		}
-		this.rootHolder = rootHolder;
-		this.rootListener = this.buildRootListener();
-		this.nodeStateListener = this.buildNodeStateListener();
-		this.nodeValueListener = this.buildNodeValueListener();
-		this.childrenListener = this.buildChildrenListener();
-		this.childrenLists = new IdentityHashMap<TreeNodeValueModel<T>, List<TreeNodeValueModel<T>>>();
-		this.parents = new IdentityHashMap<ListValueModel<TreeNodeValueModel<T>>, TreeNodeValueModel<T>>();
-	}
-
-	/**
-	 * Construct a tree model for the specified root.
-	 */
-	public TreeModelAdapter(TreeNodeValueModel<T> root) {
-		this(new StaticPropertyValueModel<TreeNodeValueModel<T>>(root));
-	}
-
-
-	// ********** initialization **********
-
-	protected PropertyChangeListener buildRootListener() {
-		return new AWTPropertyChangeListenerWrapper(this.buildRootListener_());
-	}
-
-	protected PropertyChangeListener buildRootListener_() {
-		return new PropertyChangeListener() {
-			public void propertyChanged(PropertyChangeEvent event) {
-				TreeModelAdapter.this.rootChanged();
-			}
-			@Override
-			public String toString() {
-				return "root listener";
-			}
-		};
-	}
-
-	protected PropertyChangeListener buildNodeValueListener() {
-		return new AWTPropertyChangeListenerWrapper(this.buildNodeValueListener_());
-	}
-
-	protected PropertyChangeListener buildNodeValueListener_() {
-		return new PropertyChangeListener() {
-			@SuppressWarnings("unchecked")
-			public void propertyChanged(PropertyChangeEvent event) {
-				TreeModelAdapter.this.nodeChanged((TreeNodeValueModel<T>) event.getSource());
-			}
-			@Override
-			public String toString() {
-				return "node value listener";
-			}
-		};
-	}
-
-	protected StateChangeListener buildNodeStateListener() {
-		return new AWTStateChangeListenerWrapper(this.buildNodeStateListener_());
-	}
-
-	protected StateChangeListener buildNodeStateListener_() {
-		return new StateChangeListener() {
-			@SuppressWarnings("unchecked")
-			public void stateChanged(StateChangeEvent event) {
-				TreeModelAdapter.this.nodeChanged((TreeNodeValueModel<T>) event.getSource());
-			}
-			@Override
-			public String toString() {
-				return "node state listener";
-			}
-		};
-	}
-
-	protected ListChangeListener buildChildrenListener() {
-		return new AWTListChangeListenerWrapper(this.buildChildrenListener_());
-	}
-
-	protected ListChangeListener buildChildrenListener_() {
-		return new ListChangeListener() {
-			public void itemsAdded(ListChangeEvent event) {
-				new EventChangePolicy(event).addChildren();
-			}
-			public void itemsRemoved(ListChangeEvent event) {
-				new EventChangePolicy(event).removeChildren();
-			}
-			public void itemsReplaced(ListChangeEvent event) {
-				new EventChangePolicy(event).replaceChildren();
-			}
-			public void itemsMoved(ListChangeEvent event) {
-				new EventChangePolicy(event).moveChildren();
-			}
-			public void listCleared(ListChangeEvent event) {
-				new EventChangePolicy(event).clearChildren();
-			}
-			public void listChanged(ListChangeEvent event) {
-				new EventChangePolicy(event).rebuildChildren();
-			}
-			@Override
-			public String toString() {
-				return "children listener";
-			}
-		};
-	}
-
-
-	// ********** TreeModel implementation **********
-
-	public Object getRoot() {
-		return this.root;
-	}
-
-	@SuppressWarnings("unchecked")
-	public Object getChild(Object parent, int index) {
-		return ((TreeNodeValueModel<T>) parent).child(index);
-	}
-
-	@SuppressWarnings("unchecked")
-	public int getChildCount(Object parent) {
-		return ((TreeNodeValueModel<T>) parent).childrenSize();
-	}
-
-	@SuppressWarnings("unchecked")
-	public boolean isLeaf(Object node) {
-		return ((TreeNodeValueModel<T>) node).isLeaf();
-	}
-
-	@SuppressWarnings("unchecked")
-	public void valueForPathChanged(TreePath path, Object newValue) {
-		((TreeNodeValueModel<T>) path.getLastPathComponent()).setValue((T) newValue);
-	}
-
-	@SuppressWarnings("unchecked")
-	public int getIndexOfChild(Object parent, Object child) {
-		return ((TreeNodeValueModel<T>) parent).indexOfChild((TreeNodeValueModel<T>) child);
-	}
-
-	/**
-	 * Extend to start listening to the underlying model if necessary.
-	 */
-    @Override
-	public void addTreeModelListener(TreeModelListener l) {
-		if (this.hasNoTreeModelListeners()) {
-			this.engageModel();
-		}
-		super.addTreeModelListener(l);
-	}
-
-	/**
-	 * Extend to stop listening to the underlying model if appropriate.
-	 */
-    @Override
-	public void removeTreeModelListener(TreeModelListener l) {
-		super.removeTreeModelListener(l);
-		if (this.hasNoTreeModelListeners()) {
-			this.disengageModel();
-		}
-	}
-
-
-	// ********** behavior **********
-
-	/**
-	 * Listen to the root and all the other nodes
-	 * in the underlying tree model.
-	 */
-	private void engageModel() {
-		this.rootHolder.addPropertyChangeListener(PropertyValueModel.VALUE, this.rootListener);
-		this.root = this.rootHolder.getValue();
-		if (this.root == null) {
-			throw new NullPointerException();	// the root cannot be null while we have listeners
-		}
-		this.engageNode(this.root);
-		this.addRoot();
-	}
-
-	/**
-	 * Add the root and all of the nodes to the underlying tree.
-	 */
-	private void addRoot() {
-		this.addNode(0, this.root);
-	}
-
-	/**
-	 * Stop listening to the root and all the other
-	 * nodes in the underlying tree model.
-	 */
-	private void disengageModel() {
-		this.removeRoot();
-		this.disengageNode(this.root);
-		this.root = null;
-		this.rootHolder.removePropertyChangeListener(PropertyValueModel.VALUE, this.rootListener);
-	}
-
-	/**
-	 * Remove the root and all of the nodes from the underlying tree.
-	 */
-	private void removeRoot() {
-		this.removeNode(0, this.root);
-	}
-
-	/**
-	 * The root has been swapped.
-	 * This method is a bit gnarly because the API for notifying listeners
-	 * that the root has changed is a bit inconsistent with that used for
-	 * non-root nodes.
-	 */
-	void rootChanged() {
-		TreeNodeValueModel<T> newRoot = this.rootHolder.getValue();
-		if (newRoot == null) {
-			throw new NullPointerException();	// the root cannot be null while we have listeners
-		}
-		// remove all the current root's children from the tree
-		// and remove the it from the internal tree
-		this.removeRoot(); 
-
-		// save the old root and swap in the new root
-		TreeNodeValueModel<T> oldRoot = this.root;
-		this.root = newRoot;
-
-		// we must be listening to both the old and new roots when we fire the event
-		// because their values can be affected by whether they have listeners
-		this.engageNode(this.root);
-		this.fireTreeRootReplaced(this.root);
-		// now we can stop listening to the old root
-		this.disengageNode(oldRoot);
-
-		// add the new root to the internal tree and
-		// add all its children to the tree also
-		this.addRoot();
-	}
-
-	/**
-	 * Either the "value" or the "state" of the specified node has changed,
-	 * forward notification to our listeners.
-	 */
-	void nodeChanged(TreeNodeValueModel<T> node) {
-		TreeNodeValueModel<T> parent = node.parent();
-		if (parent == null) {
-			this.fireTreeRootChanged(node);
-		} else {
-			this.fireTreeNodeChanged(parent.path(), parent.indexOfChild(node), node);
-		}
-	}
-
-	/**
-	 * Listen to the nodes, notify our listeners that the nodes were added,
-	 * and then add the nodes to our internal tree.
-	 * We must listen to the nodes before notifying anybody, because
-	 * adding a listener can change the value of a node.
-	 */
-	void addChildren(TreeNodeValueModel<T>[] path, int[] childIndices, TreeNodeValueModel<T>[] children) {
-		int len = childIndices.length;
-		for (int i = 0; i < len; i++) {
-			this.engageNode(children[i]);
-		}
-		this.fireTreeNodesInserted(path, childIndices, children);
-		for (int i = 0; i < len; i++) {
-			this.addNode(childIndices[i], children[i]);
-		}
-	}
-
-	/**
-	 * Listen to the node and its children model.
-	 */
-	private void engageNode(TreeNodeValueModel<T> node) {
-		node.addStateChangeListener(this.nodeStateListener);
-		node.addPropertyChangeListener(PropertyValueModel.VALUE, this.nodeValueListener);
-		node.childrenModel().addListChangeListener(ListValueModel.LIST_VALUES, this.childrenListener);
-	}
-
-	/**
-	 * Add the node to our internal tree;
-	 * then recurse down through the node's children,
-	 * adding them to the internal tree also.
-	 */
-	private void addNode(int index, TreeNodeValueModel<T> node) {
-		this.addNodeToInternalTree(node.parent(), index, node, node.childrenModel());
-		new NodeChangePolicy(node).addChildren();
-	}
-
-	/**
-	 * Add the specified node to our internal tree.
-	 */
-	private void addNodeToInternalTree(TreeNodeValueModel<T> parent, int index, TreeNodeValueModel<T> node, ListValueModel<TreeNodeValueModel<T>> childrenModel) {
-		List<TreeNodeValueModel<T>> siblings = this.childrenLists.get(parent);
-		if (siblings == null) {
-			siblings = new ArrayList<TreeNodeValueModel<T>>();
-			this.childrenLists.put(parent, siblings);
-		}
-		siblings.add(index, node);
-
-		this.parents.put(childrenModel, node);
-	}
-
-	/**
-	 * Remove nodes from our internal tree, notify our listeners that the
-	 * nodes were removed, then stop listening to the nodes.
-	 * We must listen to the nodes until after notifying anybody, because
-	 * removing a listener can change the value of a node.
-	 */
-	void removeChildren(TreeNodeValueModel<T>[] path, int[] childIndices, TreeNodeValueModel<T>[] children) {
-		int len = childIndices.length;
-		for (int i = 0; i < len; i++) {
-			// the indices slide down a notch each time we remove a child
-			this.removeNode(childIndices[i] - i, children[i]);
-		}
-		this.fireTreeNodesRemoved(path, childIndices, children);
-		for (int i = 0; i < len; i++) {
-			this.disengageNode(children[i]);
-		}
-	}
-
-	/**
-	 * First, recurse down through the node's children,
-	 * removing them from our internal tree;
-	 * then remove the node itself from our internal tree.
-	 */
-	private void removeNode(int index, TreeNodeValueModel<T> node) {
-		new NodeChangePolicy(node).removeChildren();
-		this.removeNodeFromInternalTree(node.parent(), index, node, node.childrenModel());
-	}
-
-	/**
-	 * Remove the specified node from our internal tree.
-	 */
-	private void removeNodeFromInternalTree(TreeNodeValueModel<T> parent, int index, TreeNodeValueModel<T> node, ListValueModel<TreeNodeValueModel<T>> childrenModel) {
-		this.parents.remove(childrenModel);
-
-		List<TreeNodeValueModel<T>> siblings = this.childrenLists.get(parent);
-		siblings.remove(index);
-		if (siblings.isEmpty()) {
-			this.childrenLists.remove(parent);
-		}
-	}
-
-	/**
-	 * Stop listening to the node and its children model.
-	 */
-	private void disengageNode(TreeNodeValueModel<T> node) {
-		node.childrenModel().removeListChangeListener(ListValueModel.LIST_VALUES, this.childrenListener);
-		node.removePropertyChangeListener(PropertyValueModel.VALUE, this.nodeValueListener);
-		node.removeStateChangeListener(this.nodeStateListener);
-	}
-
-	void moveChildren(TreeNodeValueModel<T> parent, int targetIndex, int sourceIndex, int length) {
-		List<TreeNodeValueModel<T>> childrenList = this.childrenLists.get(parent);
-		ArrayList<TreeNodeValueModel<T>> temp = new ArrayList<TreeNodeValueModel<T>>(length);
-		for (int i = 0; i < length; i++) {
-			temp.add(childrenList.remove(sourceIndex));
-		}
-		childrenList.addAll(targetIndex, temp);
-
-		this.fireTreeStructureChanged(parent.path());
-	}
-
-
-	// ********** standard methods **********
-
-	@Override
-	public String toString() {
-		return StringTools.buildToStringFor(this, this.root);
-	}
-
-
-	// ********** inner classes **********
-
-	/**
-	 * Coalesce some of the common change policy behavior.
-	 */
-	private abstract class ChangePolicy {
-
-		ChangePolicy() {
-			super();
-		}
-
-		/**
-		 * Add the current set of children.
-		 */
-		void addChildren() {
-			TreeModelAdapter.this.addChildren(this.parent().path(), this.childIndices(), this.childArray());
-		}
-
-		/**
-		 * Remove the current set of children.
-		 */
-		void removeChildren() {
-			TreeModelAdapter.this.removeChildren(this.parent().path(), this.childIndices(), this.childArray());
-		}
-
-		/**
-		 * Return an array of the indices of the current set of children,
-		 * which should be contiguous.
-		 */
-		int[] childIndices() {
-			return this.buildIndices(this.childrenStartIndex(), this.childrenSize());
-		}
-
-		/**
-		 * Return an array of the current set of children.
-		 */
-		TreeNodeValueModel<T>[] childArray() {
-			return this.buildArray(this.children(), this.childrenSize());
-		}
-
-		/**
-		 * Build an array to hold the elements in the specified iterator.
-		 * If they are different sizes, something is screwed up...
-		 */
-		TreeNodeValueModel<T>[] buildArray(Iterator<TreeNodeValueModel<T>> stream, int size) {
-			@SuppressWarnings("unchecked")
-			TreeNodeValueModel<T>[] array = new TreeNodeValueModel[size];
-			for (int i = 0; stream.hasNext(); i++) {
-				array[i] = stream.next();
-			}
-			return array;
-		}
-
-		/**
-		 * Return a set of indices, starting at zero and
-		 * continuing for the specified size.
-		 */
-		int[] buildIndices(int size) {
-			return buildIndices(0, size);
-		}
-
-		/**
-		 * Return a set of indices, starting at the specified index and
-		 * continuing for the specified size.
-		 */
-		int[] buildIndices(int start, int size) {
-			int[] indices = new int[size];
-			int index = start;
-			for (int i = 0; i < size; i++) {
-				indices[i] = index++;
-			}
-			return indices;
-		}
-
-		/**
-		 * Return the parent of the current set of children.
-		 */
-		abstract TreeNodeValueModel<T> parent();
-
-		/**
-		 * Return the starting index for the current set of children.
-		 */
-		abstract int childrenStartIndex();
-
-		/**
-		 * Return the size of the current set of children.
-		 */
-		abstract int childrenSize();
-
-		/**
-		 * Return an interator on the current set of children.
-		 */
-		abstract Iterator<TreeNodeValueModel<T>> children();
-
-	}
-
-
-	/**
-	 * Wraps a ListChangeEvent for adding, removing, replacing,
-	 * and changing children.
-	 */
-	private class EventChangePolicy extends ChangePolicy {
-		private ListChangeEvent event;
-
-		EventChangePolicy(ListChangeEvent event) {
-			this.event = event;
-		}
-
-		/**
-		 * Map the ListChangeEvent's source to the corresponding parent.
-		 */
-		@Override
-		TreeNodeValueModel<T> parent() {
-			return TreeModelAdapter.this.parents.get(this.event.getSource());
-		}
-
-		/**
-		 * The ListChangeEvent's item index is the children start index.
-		 */
-		@Override
-		int childrenStartIndex() {
-			return this.event.getIndex();
-		}
-
-		/**
-		 * The ListChangeEvent's size is the children size.
-		 */
-		@Override
-		int childrenSize() {
-			return this.event.itemsSize();
-		}
-
-		/**
-		 * The ListChangeEvent's items are the children.
-		 */
-		@Override
-		@SuppressWarnings("unchecked")
-		Iterator<TreeNodeValueModel<T>> children() {
-			return (Iterator<TreeNodeValueModel<T>>) this.event.items();
-		}
-
-		/**
-		 * Remove the old nodes and add the new ones.
-		 */
-		void replaceChildren() {
-			TreeNodeValueModel<T>[] parentPath = this.parent().path();
-			int[] childIndices = this.childIndices();
-			TreeModelAdapter.this.removeChildren(parentPath, childIndices, this.replacedChildren());
-			TreeModelAdapter.this.addChildren(parentPath, childIndices, this.childArray());
-		}
-
-		/**
-		 * Remove the old nodes and add the new ones.
-		 */
-		void moveChildren() {
-			TreeModelAdapter.this.moveChildren(this.parent(), this.event.getTargetIndex(), this.event.getSourceIndex(), this.event.getMoveLength());
-		}
-
-		/**
-		 * Clear all the nodes.
-		 */
-		void clearChildren() {
-			TreeNodeValueModel<T> parent = this.parent();
-			TreeNodeValueModel<T>[] parentPath = parent.path();
-			List<TreeNodeValueModel<T>> childrenList = TreeModelAdapter.this.childrenLists.get(parent);
-			int[] childIndices = this.buildIndices(childrenList.size());
-			TreeNodeValueModel<T>[] childArray = this.buildArray(childrenList.iterator(), childrenList.size());
-			TreeModelAdapter.this.removeChildren(parentPath, childIndices, childArray);
-		}
-
-		/**
-		 * Remove all the old nodes and add all the new nodes.
-		 */
-		void rebuildChildren() {
-			TreeNodeValueModel<T> parent = this.parent();
-			TreeNodeValueModel<T>[] parentPath = parent.path();
-			List<TreeNodeValueModel<T>> childrenList = TreeModelAdapter.this.childrenLists.get(parent);
-			int[] childIndices = this.buildIndices(childrenList.size());
-			TreeNodeValueModel<T>[] childArray = this.buildArray(childrenList.iterator(), childrenList.size());
-			TreeModelAdapter.this.removeChildren(parentPath, childIndices, childArray);
-
-			childIndices = this.buildIndices(parent.childrenModel().size());
-			childArray = this.buildArray(parent.childrenModel().iterator(), parent.childrenSize());
-			TreeModelAdapter.this.addChildren(parentPath, childIndices, childArray);
-		}
-
-		/**
-		 * The ListChangeEvent's replaced items are the replaced children.
-		 */
-		@SuppressWarnings("unchecked")
-		TreeNodeValueModel<T>[] replacedChildren() {
-			return this.buildArray((Iterator<TreeNodeValueModel<T>>) this.event.replacedItems(), this.event.itemsSize());
-		}
-
-	}
-
-
-	/**
-	 * Wraps a TreeNodeValueModel for adding and removing its children.
-	 */
-	private class NodeChangePolicy extends ChangePolicy {
-		private TreeNodeValueModel<T> node;
-
-		NodeChangePolicy(TreeNodeValueModel<T> node) {
-			this.node = node;
-		}
-
-		/**
-		 * The node itself is the parent.
-		 */
-		@Override
-		TreeNodeValueModel<T> parent() {
-			return this.node;
-		}
-
-		/**
-		 * Since we will always be dealing with all of the node's
-		 * children, the children start index is always zero.
-		 */
-		@Override
-		int childrenStartIndex() {
-			return 0;
-		}
-
-		/**
-		 * Since we will always be dealing with all of the node's
-		 * children, the children size is always equal to the size
-		 * of the children model.
-		 */
-		@Override
-		int childrenSize() {
-			return this.node.childrenModel().size();
-		}
-
-		/**
-		 * Since we will always be dealing with all of the node's
-		 * children, the children are all the objects held by
-		 * the children model.
-		 */
-		@Override
-		Iterator<TreeNodeValueModel<T>> children() {
-			return this.node.childrenModel().iterator();
-		}
-
-	}
-
-}
diff --git a/jpa/plugins/org.eclipse.jpt.utility/src/org/eclipse/jpt/utility/internal/node/AbstractNode.java b/jpa/plugins/org.eclipse.jpt.utility/src/org/eclipse/jpt/utility/internal/node/AbstractNode.java
deleted file mode 100644
index 4a84e18..0000000
--- a/jpa/plugins/org.eclipse.jpt.utility/src/org/eclipse/jpt/utility/internal/node/AbstractNode.java
+++ /dev/null
@@ -1,948 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.utility.internal.node;
-
-import java.util.ArrayList;
-import java.util.Collection;
-import java.util.HashMap;
-import java.util.HashSet;
-import java.util.Iterator;
-import java.util.List;
-import java.util.ListIterator;
-import java.util.Set;
-import java.util.Vector;
-
-import org.eclipse.jpt.utility.internal.iterators.CloneIterator;
-import org.eclipse.jpt.utility.internal.iterators.CloneListIterator;
-import org.eclipse.jpt.utility.internal.iterators.FilteringIterator;
-import org.eclipse.jpt.utility.internal.model.AbstractModel;
-import org.eclipse.jpt.utility.internal.model.CallbackChangeSupport;
-import org.eclipse.jpt.utility.internal.model.ChangeSupport;
-
-/**
- * Base class for Node classes.
- * Provides support for the following:
- *     initialization
- *     enforced object identity wrt #equals()/#hashCode()
- *     containment hierarchy (parent/child)
- *     user comment
- *     dirty flag
- *     problems
- *     sorting
- * 
- * Typically, subclasses should consider implementing the following methods:
- *     the appropriate constructors
- *         (with the appropriately-restrictive type declaration for parent)
- *     #initialize()
- *     #initialize(Node parentNode)
- *     #checkParent(Node parentNode)
- *     #addChildrenTo(List list)
- *     #nodeRemoved(Node)
- *     #validator()
- *     #transientAspectNames() or
- *         #addTransientAspectNamesTo(Set transientAspectNames)
- *     #addProblemsTo(List currentProblems)
- *     #nonValidatedAspectNames()
- *         #addNonValidatedAspectNamesTo(Set nonValidatedAspectNames)
- *     #displayString()
- *     #toString(StringBuilder sb)
- */
-public abstract class AbstractNode 
-	extends AbstractModel
-	implements Node
-{
-
-	/** Containment hierarchy. */
-	private Node parent;  // pseudo-final
-
-	/** Track whether the node has changed. */
-	private volatile boolean dirty;
-	private volatile boolean dirtyBranch;
-
-	/**
-	 * The node's problems, as calculated during validation.
-	 * This list should only be modified via a ProblemSynchronizer,
-	 * allowing for asynchronous modification from another thread.
-	 */
-	private Vector<Problem> problems;		// pseudo-final
-		private static final Object[] EMPTY_PROBLEM_MESSAGE_ARGUMENTS = new Object[0];
-
-	/**
-	 * Cache the node's "branch" problems, as calculated during validation.
-	 * This list should only be modified via a ProblemSynchronizer,
-	 * allowing for asynchronous modification from another thread.
-	 * This must be recalculated every time this node or one of its
-	 * descendants changes it problems.
-	 */
-	private Vector<Problem> branchProblems;		// pseudo-final
-
-	/** User comment. */
-	private volatile String comment;
-
-
-	// ********** static fields **********
-
-	/**
-	 * Sets of transient aspect names, keyed by class.
-	 * This is built up lazily, as the objects are modified.
-	 */
-	private static final HashMap<Class<? extends AbstractNode>, HashSet<String>> transientAspectNameSets = new HashMap<Class<? extends AbstractNode>, HashSet<String>>();
-
-	/**
-	 * Sets of non-validated aspect names, keyed by class.
-	 * This is built up lazily, as the objects are modified.
-	 */
-	private static final HashMap<Class<? extends AbstractNode>, HashSet<String>> nonValidatedAspectNameSets = new HashMap<Class<? extends AbstractNode>, HashSet<String>>();
-
-
-	// ********** constructors **********
-
-	/**
-	 * Most objects must have a parent.
-	 * Use this constructor to create a new node.
-	 * @see #initialize(Node)
-	 */
-	protected AbstractNode(Node parent) {
-		super();
-		this.initialize();
-		this.initialize(parent);
-	}
-
-
-	// ********** initialization **********
-
-	/**
-	 * Initialize a newly-created instance.
-	 * @see #initialize(Node)
-	 */
-	protected void initialize() {
-		this.comment = ""; //$NON-NLS-1$
-
-		// a new object is dirty, by definition
-		this.dirty = true;
-		this.dirtyBranch = true;
-
-		this.problems = new Vector<Problem>();
-		this.branchProblems = new Vector<Problem>();
-
-	// when you override this method, don't forget to include:
-	//	super.initialize();
-	}
-
-	/**
-	 * Initialize a newly-created instance.
-	 * @see #initialize()
-	 */
-	protected void initialize(Node parentNode) {
-		this.checkParent(parentNode);
-		this.parent = parentNode;
-	// when you override this method, don't forget to include:
-	//	super.initialize(parentNode);
-	}
-
-	@Override
-	protected ChangeSupport buildChangeSupport() {
-		return new CallbackChangeSupport(this, this.buildChangeSupportListener());
-	}
-
-	protected CallbackChangeSupport.Listener buildChangeSupportListener() {
-		return new CallbackChangeSupport.Listener() {
-			public void aspectChanged(String aspectName) {
-				AbstractNode.this.aspectChanged(aspectName);
-			}
-		};
-	}
-
-
-	// ********** equality **********
-
-	/**
-	 * Enforce object identity - do not allow objects to be equal unless
-	 * they are the same object.
-	 * Do NOT override this method - we rely on object identity extensively.
-	 */
-	@Override
-	public final boolean equals(Object o) {
-		return this == o;
-	}
-
-	/**
-	 * Enforce object identity - do not allow objects to be equal unless
-	 * they are the same object.
-	 * Do NOT override this method - we rely on object identity extensively.
-	 */
-	@Override
-	public final int hashCode() {
-		return super.hashCode();
-	}
-
-
-	// ********** containment hierarchy (parent/children) **********
-
-	/**
-	 * INTRA-TREE API?
-	 * Return the node's parent in the containment hierarchy.
-	 * Most nodes must have a parent.
-	 * @see #children()
-	 */
-	public Node getParent() {
-		return this.parent;
-	}
-
-	/**
-	 * Throw an IllegalArgumentException if the parent is not valid
-	 * for the node.
-	 * By default require a non-null parent. Override if other restrictions exist
-	 * or the parent should be null.
-	 * NB: Root node model implementations will need to override this method.
-	 */
-	protected void checkParent(Node parentNode) {
-		if (parentNode == null) {
-			throw new IllegalArgumentException("The parent node cannot be null"); //$NON-NLS-1$
-		}
-	}
-
-	/**
-	 * INTRA-TREE API?
-	 * Return the node's children, which are also nodes.
-	 * Do NOT override this method.
-	 * Override #addChildrenTo(List).
-	 * @see #getParent()
-	 * @see #addChildrenTo(java.util.List)
-	 */
-	public final Iterator<Node> children() {
-		List<Node> children = new ArrayList<Node>();
-		this.addChildrenTo(children);
-		return children.iterator();
-	}
-
-	/**
-	 * Subclasses should override this method to add their children
-	 * to the specified list.
-	 * @see #children()
-	 */
-	protected void addChildrenTo(@SuppressWarnings("unused") List<Node> list) {
-		// this class has no children, subclasses will...
-	// when you override this method, don't forget to include:
-	//	super.addChildrenTo(list);
-	}
-
-	/**
-	 * INTRA-TREE API?
-	 * Return the containment hierarchy's root node.
-	 * Most nodes must have a root.
-	 * @see #getParent()
-	 * NB: Assume the root has no parent.
-	 */
-	public Node root() {
-		Node p = this.parent;
-		return (p == null) ? this : p.root();
-	}
-
-	/**
-	 * Return whether the node is a descendant of the specified node.
-	 * By definition, a node is a descendant of itself.
-	 */
-	public boolean isDescendantOf(Node node) {
-		return (this == node) || this.parentIsDescendantOf(node);
-	}
-
-	protected boolean parentIsDescendantOf(Node node) {
-		return (this.parent != null) && this.parent.isDescendantOf(node);
-	}
-
-	/**
-	 * Return a collection holding all the node's "references", and all
-	 * the node's descendants' "references". "References" are
-	 * objects that are "referenced" by another object, as opposed
-	 * to "owned" by another object.
-	 */
-	public Iterator<Node.Reference> branchReferences() {
-		Collection<Node.Reference> branchReferences = new ArrayList<Node.Reference>(1000);		// start big
-		this.addBranchReferencesTo(branchReferences);
-		return branchReferences.iterator();
-	}
-
-	/**
-	 * INTRA-TREE API
-	 * Add the node's "references", and all the node's descendants'
-	 * "references", to the specified collection. "References" are
-	 * objects that are "referenced" by another object, as opposed
-	 * to "owned" by another object.
-	 * This method is of particular concern to Handles, since most
-	 * (hopefully all) "references" are held by Handles.
-	 * @see Reference
-	 * @see #children()
-	 */
-	public void addBranchReferencesTo(Collection<Node.Reference> branchReferences) {
-		for (Iterator<Node> stream = this.children(); stream.hasNext(); ) {
-			Node child = stream.next();		// pull out the child to ease debugging
-			child.addBranchReferencesTo(branchReferences);
-		}
-	}
-
-	/**
-	 * Return all the nodes in the object's branch of the tree,
-	 * including the node itself. The nodes will probably returned
-	 * in "depth-first" order.
-	 * Only really used for testing and debugging.
-	 */
-	public Iterator<Node> allNodes() {
-		Collection<Node> nodes = new ArrayList<Node>(1000);		// start big
-		this.addAllNodesTo(nodes);
-		return nodes.iterator();
-	}
-
-	/**
-	 * INTRA-TREE API?
-	 * Add all the nodes in the object's branch of the tree,
-	 * including the node itself, to the specified collection.
-	 * Only really used for testing and debugging.
-	 */
-	public void addAllNodesTo(Collection<Node> nodes) {
-		nodes.add(this);
-		for (Iterator<Node> stream = this.children(); stream.hasNext(); ) {
-			Node child = stream.next();		// pull out the child to ease debugging
-			child.addAllNodesTo(nodes);
-		}
-	}
-
-
-	// ********** model synchronization support **********
-
-	/**
-	 * INTRA-TREE API
-	 * This is a general notification that the specified node has been
-	 * removed from the tree. The node receiving this notification
-	 * should perform any necessary updates to remain in synch
-	 * with the tree (e.g. clearing out or replacing any references
-	 * to the removed node or any of the removed node's descendants).
-	 * @see #isDescendantOf(Node)
-	 */
-	public void nodeRemoved(Node node) {
-		for (Iterator<Node> stream = this.children(); stream.hasNext(); ) {
-			Node child = stream.next();		// pull out the child to ease debugging
-			child.nodeRemoved(node);
-		}
-	// when you override this method, don't forget to include:
-	//	super.nodeRemoved(node);
-	}
-
-	/**
-	 * convenience method
-	 * return whether node1 is a descendant of node2;
-	 * node1 can be null
-	 */
-	protected boolean nodeIsDescendantOf(Node node1, Node node2) {
-		return (node1 != null) && node1.isDescendantOf(node2);
-	}
-
-	/**
-	 * INTRA-TREE API
-	 * This is a general notification that the specified node has been
-	 * renamed. The node receiving this notification should mark its
-	 * branch dirty if necessary (i.e. it references the renamed node
-	 * or one of its descendants). This method is of particular concern
-	 * to Handles.
-	 * @see #isDescendantOf(Node)
-	 */
-	public void nodeRenamed(Node node) {
-		for (Iterator<Node> stream = this.children(); stream.hasNext(); ) {
-			Node child = stream.next();		// pull out the child to ease debugging
-			child.nodeRenamed(node);
-		}
-	// when you override this method, don't forget to include:
-	//	super.nodeRenamed(node);
-	}
-	
-	
-	// ********** user comment **********
-
-	/**
-	 * Return the object's user comment.
-	 */
-	public final String comment() {
-		return this.comment;
-	}
-
-	/**
-	 * Set the object's user comment.
-	 */
-	public final void setComment(String comment) {
-		Object old = this.comment;
-		this.comment = comment;
-		this.firePropertyChanged(COMMENT_PROPERTY, old, comment);
-	}
-
-
-	// ********** change support **********
-
-	/**
-	 * An aspect of the node has changed:
-	 * 	- if it is a persistent aspect, mark the object dirty
-	 * 	- if it is a significant aspect, validate the object
-	 */
-	protected void aspectChanged(String aspectName) {
-		if (this.aspectIsPersistent(aspectName)) {
-			// System.out.println(Thread.currentThread() + " dirty change: " + this + ": " + aspectName);
-			this.markDirty();
-		}
-		if (this.aspectChangeRequiresValidation(aspectName)) {
-			// System.out.println(Thread.currentThread() + " validation change: " + this + ": " + aspectName);
-			this.validate();
-		}
-	}
-
-	protected void validate() {
-		this.getValidator().validate();
-	}
-
-	/**
-	 * INTRA-TREE API
-	 * Return a validator that will be invoked whenever a
-	 * "validated" aspect of the node tree changes.
-	 * Typically only the root node directly holds a validator.
-	 * NB: Root node model implementations will need to override this method.
-	 */
-	public Node.Validator getValidator() {
-		if (this.parent == null) {
-			throw new IllegalStateException("This node should not be firing change events during its construction."); //$NON-NLS-1$
-		}
-		return this.parent.getValidator();
-	}
-
-	/**
-	 * Set a validator that will be invoked whenever a
-	 * "validated" aspect of the node tree changes.
-	 * Typically only the root node directly holds a validator.
-	 * NB: Root node model implementations will need to override this method.
-	 */
-	public void setValidator(Node.Validator validator) {
-		if (this.parent == null) {
-			throw new IllegalStateException("This root node should implement #setValidator(Node.Validator)."); //$NON-NLS-1$
-		}
-		throw new UnsupportedOperationException("Only root nodes implement #setValidator(Node.Validator)."); //$NON-NLS-1$
-	}
-
-
-	// ********** dirty flag support **********
-
-	/**
-	 * Return whether any persistent aspects of the object
-	 * have changed since the object was last read or saved.
-	 * This does NOT include changes to the object's descendants.
-	 */
-	public final boolean isDirty() {
-		return this.dirty;
-	}
-
-	/**
-	 * Return whether any persistent aspects of the object,
-	 * or any of its descendants, have changed since the object and
-	 * its descendants were last read or saved.
-	 */
-	public final boolean isDirtyBranch() {
-		return this.dirtyBranch;
-	}
-
-	/**
-	 * Return whether the object is unmodified
-	 * since it was last read or saved.
-	 * This does NOT include changes to the object's descendants.
-	 */
-	public final boolean isClean() {
-		return ! this.dirty;
-	}
-
-	/**
-	 * Return whether the object and all of its descendants
-	 * are unmodified since the object and
-	 * its descendants were last read or saved.
-	 */
-	public final boolean isCleanBranch() {
-		return ! this.dirtyBranch;
-	}
-
-	/**
-	 * Set the dirty branch flag setting. This is set to true
-	 * when either the object or one of its descendants becomes dirty.
-	 */
-	private void setIsDirtyBranch(boolean dirtyBranch) {
-		boolean old = this.dirtyBranch;
-		this.dirtyBranch = dirtyBranch;
-		this.firePropertyChanged(DIRTY_BRANCH_PROPERTY, old, dirtyBranch);
-	}
-
-	/**
-	 * Mark the object as dirty and as a dirty branch.
-	 * An object is marked dirty when either a "persistent" attribute
-	 * has changed or its save location has changed.
-	 */
-	private void markDirty() {
-		this.dirty = true;
-		this.markBranchDirty();
-	}
-
-	/**
-	 * INTRA-TREE API
-	 * Mark the node and its parent as dirty branches.
-	 * This message is propagated up the containment
-	 * tree when a particular node becomes dirty.
-	 */
-	public void markBranchDirty() {
-		// short-circuit any unnecessary propagation
-		if (this.dirtyBranch) {
-			// if this is already a dirty branch, the parent must be also
-			return;
-		}
-
-		this.setIsDirtyBranch(true);
-		this.markParentBranchDirty();
-	}
-
-	protected void markParentBranchDirty() {
-		if (this.parent != null) {
-			this.parent.markBranchDirty();
-		}
-	}
-
-	/**
-	 * Mark the object and all its descendants as dirty.
-	 * This is used when the save location of some
-	 * top-level object is changed and the entire
-	 * containment tree must be marked dirty so it
-	 * will be written out.
-	 */
-	public final void markEntireBranchDirty() {
-		this.markDirty();
-		for (Iterator<Node> stream = this.children(); stream.hasNext(); ) {
-			Node child = stream.next();		// pull out the child to ease debugging
-			child.markEntireBranchDirty();
-		}
-	}
-
-	/**
-	 * Mark the object and all its descendants as clean.
-	 * Then notify the object's parent that it (the parent)
-	 * might now be a clean branch also.
-	 * Typically used when the object has just been
-	 * read in or written out.
-	 */
-	public final void markEntireBranchClean() {
-		this.cascadeMarkEntireBranchClean();
-		this.markParentBranchCleanIfPossible();
-	}
-
-	protected void markParentBranchCleanIfPossible() {
-		if (this.parent != null) {
-			this.parent.markBranchCleanIfPossible();
-		}
-	}
-
-	/**
-	 * INTRA-TREE API
-	 * Mark the node and all its descendants as clean.
-	 * Typically used when the node has just been
-	 * read in or written out.
-	 * This method is for internal use only; it is not for
-	 * client use.
-	 * Not the best of method names.... :-(
-	 */
-	public final void cascadeMarkEntireBranchClean() {
-		for (Iterator<Node> stream = this.children(); stream.hasNext(); ) {
-			Node child = stream.next();		// pull out the child to ease debugging
-			child.cascadeMarkEntireBranchClean();
-		}
-		this.dirty = false;
-		this.setIsDirtyBranch(false);
-	}
-
-	/**
-	 * INTRA-TREE API
-	 * A child node's branch has been marked clean. If the node
-	 * itself is clean and if all of its children are also clean, the
-	 * node's branch can be marked clean. Then, if the node's
-	 * branch is clean, the node will notify its parent that it might
-	 * be clean also. This message is propagated up the containment
-	 * tree when a particular node becomes clean.
-	 */
-	public final void markBranchCleanIfPossible() {
-		// short-circuit any unnecessary propagation
-		if (this.dirty) {
-			// if the object is "locally" dirty, it is still a dirty branch
-			return;
-		}
-
-		for (Iterator<Node> stream = this.children(); stream.hasNext(); ) {
-			Node child = stream.next();		// pull out the child to ease debugging
-			if (child.isDirtyBranch()) {
-				return;
-			}
-		}
-
-		this.setIsDirtyBranch(false);
-		this.markParentBranchCleanIfPossible();
-	}
-
-	private boolean aspectIsPersistent(String aspectName) {
-		return ! this.aspectIsTransient(aspectName);
-	}
-
-	private boolean aspectIsTransient(String aspectName) {
-		return this.transientAspectNames().contains(aspectName);
-	}
-
-	/**
-	 * Return a set of the object's transient aspect names.
-	 * These are the aspects that, when they change, will NOT cause the
-	 * object to be marked dirty.
-	 * If you need instance-based calculation of your transient aspects,
-	 * override this method. If class-based calculation is sufficient,
-	 * override #addTransientAspectNamesTo(Set).
-	 */
-	protected final Set<String> transientAspectNames() {
-		synchronized (transientAspectNameSets) {
-			HashSet<String> transientAspectNames = transientAspectNameSets.get(this.getClass());
-			if (transientAspectNames == null) {
-				transientAspectNames = new HashSet<String>();
-				this.addTransientAspectNamesTo(transientAspectNames);
-				transientAspectNameSets.put(this.getClass(), transientAspectNames);
-			}
-			return transientAspectNames;
-		}
-	}
-
-	/**
-	 * Add the object's transient aspect names to the specified set.
-	 * These are the aspects that, when they change, will NOT cause the
-	 * object to be marked dirty.
-	 * If class-based calculation of your transient aspects is sufficient,
-	 * override this method. If you need instance-based calculation,
-	 * override #transientAspectNames().
-	 */
-	protected void addTransientAspectNamesTo(Set<String> transientAspectNames) {
-		transientAspectNames.add(DIRTY_BRANCH_PROPERTY);
-		transientAspectNames.add(BRANCH_PROBLEMS_LIST);
-		transientAspectNames.add(HAS_BRANCH_PROBLEMS_PROPERTY);
-	// when you override this method, don't forget to include:
-	//	super.addTransientAspectNamesTo(transientAspectNames);
-	}
-
-	/**
-	 * Return the dirty nodes in the object's branch of the tree,
-	 * including the node itself (if appropriate).
-	 * Only really used for testing and debugging.
-	 */
-	public final Iterator<Node> allDirtyNodes() {
-		return new FilteringIterator<Node, Node>(this.allNodes()) {
-			@Override
-			protected boolean accept(Node node) {
-				return (node instanceof AbstractNode) && ((AbstractNode) node).isDirty();
-			}
-		};
-	}
-
-
-	// ********** problems **********
-
-	/**
-	 * Return the node's problems.
-	 * This does NOT include the problems of the node's descendants.
-	 * @see #branchProblems()
-	 */
-	public final Iterator<Problem> problems() {
-		return new CloneIterator<Problem>(this.problems);	// removes are not allowed
-	}
-
-	/**
-	 * Return the size of the node's problems.
-	 * This does NOT include the problems of the node's descendants.
-	 * @see #branchProblemsSize()
-	 */
-	public final int problemsSize() {
-		return this.problems.size();
-	}
-
-	/**
-	 * Return whether the node has problems
-	 * This does NOT include the problems of the node's descendants.
-	 * @see #hasBranchProblems()
-	 */
-	public final boolean hasProblems() {
-		return ! this.problems.isEmpty();
-	}
-
-	/**
-	 * Return all the node's problems along with all the
-	 * node's descendants' problems.
-	 */
-	public final ListIterator<Problem> branchProblems() {
-		return new CloneListIterator<Problem>(this.branchProblems);	// removes are not allowed
-	}
-
-	/**
-	 * Return the size of all the node's problems along with all the
-	 * node's descendants' problems.
-	 */
-	public final int branchProblemsSize() {
-		return this.branchProblems.size();
-	}
-
-	/**
-	 * Return whether the node or any of its descendants have problems.
-	 */
-	public final boolean hasBranchProblems() {
-		return ! this.branchProblems.isEmpty();
-	}
-
-	public final boolean containsBranchProblem(Problem problem) {
-		return this.branchProblems.contains(problem);
-	}
-
-	protected final Problem buildProblem(String messageKey, Object... messageArguments) {
-		return new DefaultProblem(this, messageKey, messageArguments);
-	}
-
-	protected final Problem buildProblem(String messageKey) {
-		return this.buildProblem(messageKey, EMPTY_PROBLEM_MESSAGE_ARGUMENTS);
-	}
-
-	/**
-	 * Validate the node and all of its descendants,
-	 * and update their sets of "branch" problems.
-	 * If the node's "branch" problems have changed,
-	 * notify the node's parent.
-	 */
-	public void validateBranch() {
-		if (this.validateBranchInternal()) {
-			// if our "branch" problems have changed, then
-			// our parent must rebuild its "branch" problems also
-			this.rebuildParentBranchProblems();
-		}
-	}
-
-	protected void rebuildParentBranchProblems() {
-		if (this.parent != null) {
-			this.parent.rebuildBranchProblems();
-		}
-	}
-
-	/**
-	 * INTRA-TREE API
-	 * Validate the node and all of its descendants,
-	 * and update their sets of "branch" problems.
-	 * Return true if the collection of "branch" problems has changed.
-	 * This method is for internal use only; it is not for
-	 * client use.
-	 */
-	public boolean validateBranchInternal() {
-		// rebuild "branch" problems in children first
-		for (Iterator<Node> stream = this.children(); stream.hasNext(); ) {
-			Node child = stream.next();		// pull out the child to ease debugging
-			// ignore the return value because we are going to rebuild our "branch"
-			// problems no matter what, to see if they have changed
-			child.validateBranchInternal();
-		}
-
-		this.problems.clear();
-		this.addProblemsTo(this.problems);
-
-		return this.checkBranchProblems();
-	}
-
-	/**
-	 * Check for any problems and add them to the specified list.
-	 * This method should ONLY add problems for this particular node;
-	 * it should NOT add problems for any of this node's descendants
-	 * or ancestors. (Although there will be times when it is debatable
-	 * as to which node a problem "belongs" to....)
-	 * 
-	 * NB: This method should NOT modify ANY part of the node's state!
-	 * It is a READ-ONLY behavior. ONLY the list of current problems
-	 * passed in to the method should be modified.
-	 */
-	protected void addProblemsTo(@SuppressWarnings("unused") List<Problem> currentProblems) {
-		// The default is to do nothing.
-		// When you override this method, don't forget to include:
-	//	super.addProblemsTo(currentProblems);
-	}
-
-	/**
-	 * Rebuild the "branch" problems and return whether they have
-	 * changed.
-	 * NB: The entire collection of "branch" problems must be re-calculated
-	 * with EVERY "significant" change - we cannot keep it in synch via
-	 * change notifications because if a descendant with problems is
-	 * removed or replaced we will not receive notification that its
-	 * problems were removed from our "branch" problems.
-	 */
-	private boolean checkBranchProblems() {
-		Vector<Problem> oldBranchProblems = new Vector<Problem>(this.branchProblems);
-		int oldSize = this.branchProblems.size();
-
-		this.branchProblems.clear();
-		this.branchProblems.addAll(this.problems);
-		for (Iterator<Node> stream = this.children(); stream.hasNext(); ) {
-			Node child = stream.next();		// pull out the child to ease debugging
-			child.addBranchProblemsTo(this.branchProblems);
-		}
-
-		// if the size has changed to or from zero, our virtual flag has changed
-		int newSize = this.branchProblems.size();
-		if ((oldSize == 0) && (newSize != 0)) {
-			this.firePropertyChanged(HAS_BRANCH_PROBLEMS_PROPERTY, false, true);
-		} else if ((oldSize != 0) && (newSize == 0)) {
-			this.firePropertyChanged(HAS_BRANCH_PROBLEMS_PROPERTY, true, false);
-		}
-
-		if (oldBranchProblems.equals(this.branchProblems)) {
-			return false;		// our "branch" problems did not change
-		}
-		// our "branch" problems changed
-		this.fireListChanged(BRANCH_PROBLEMS_LIST);
-		return true;
-	}
-
-	/**
-	 * INTRA-TREE API
-	 * Add all the problems of the node and all
-	 * the problems of its descendants to the
-	 * specified collection.
-	 */
-	public final void addBranchProblemsTo(List<Problem> list) {
-		list.addAll(this.branchProblems);
-	}
-
-	/**
-	 * INTRA-TREE API
-	 * A child node's "branch" problems changed;
-	 * therefore the node's "branch" problems have changed also and
-	 * must be rebuilt.
-	 */
-	public final void rebuildBranchProblems() {
-		if ( ! this.checkBranchProblems()) {
-			throw new IllegalStateException("we should not get here unless our \"branch\" problems have changed"); //$NON-NLS-1$
-		}
-		this.rebuildParentBranchProblems();
-	}
-
-	/**
-	 * Clear the node's "branch" problems and the "branch"
-	 * problems of all of its descendants.
-	 * If the node's "branch" problems have changed,
-	 * notify the node's parent.
-	 */
-	public final void clearAllBranchProblems() {
-		if (this.clearAllBranchProblemsInternal()) {
-			// if our "branch" problems have changed, then
-			// our parent must rebuild its "branch" problems also
-			this.rebuildParentBranchProblems();
-		}
-	}
-
-	/**
-	 * INTRA-TREE API
-	 * Clear the node's "branch" problems and the "branch"
-	 * problems of all of its descendants.
-	 * Return true if the collection of "branch" problems has changed.
-	 * This method is for internal use only; it is not for
-	 * client use.
-	 */
-	public final boolean clearAllBranchProblemsInternal() {
-		if (this.branchProblems.isEmpty()) {
-			return false;
-		}
-		for (Iterator<Node> stream = this.children(); stream.hasNext(); ) {
-			Node child = stream.next();		// pull out the child to ease debugging
-			// ignore the return value because we are going to clear our "branch"
-			// problems no matter what
-			child.clearAllBranchProblemsInternal();
-		}
-		this.problems.clear();
-		this.branchProblems.clear();
-		this.firePropertyChanged(HAS_BRANCH_PROBLEMS_PROPERTY, true, false);
-		this.fireListChanged(BRANCH_PROBLEMS_LIST);
-		return true;
-	}
-
-	/**
-	 * Return whether a change to specified aspect requires a re-validation
-	 * of the node's tree.
-	 */
-	private boolean aspectChangeRequiresValidation(String aspectName) {
-		return ! this.aspectChangeDoesNotRequireValidation(aspectName);
-	}
-
-	private boolean aspectChangeDoesNotRequireValidation(String aspectName) {
-		return this.nonValidatedAspectNames().contains(aspectName);
-	}
-
-	/**
-	 * Return a set of the object's "non-validated" aspect names.
-	 * These are the aspects that, when they change, will NOT cause the
-	 * object (or its containing tree) to be validated, i.e. checked for problems.
-	 * If you need instance-based calculation of your "non-validated" aspects,
-	 * override this method. If class-based calculation is sufficient,
-	 * override #addNonValidatedAspectNamesTo(Set).
-	 */
-	protected final Set<String> nonValidatedAspectNames() {
-		synchronized (nonValidatedAspectNameSets) {
-			HashSet<String> nonValidatedAspectNames = nonValidatedAspectNameSets.get(this.getClass());
-			if (nonValidatedAspectNames == null) {
-				nonValidatedAspectNames = new HashSet<String>();
-				this.addNonValidatedAspectNamesTo(nonValidatedAspectNames);
-				nonValidatedAspectNameSets.put(this.getClass(), nonValidatedAspectNames);
-			}
-			return nonValidatedAspectNames;
-		}
-	}
-
-	/**
-	 * Add the object's "non-validated" aspect names to the specified set.
-	 * These are the aspects that, when they change, will NOT cause the
-	 * object (or its containing tree) to be validated, i.e. checked for problems.
-	 * If class-based calculation of your "non-validated" aspects is sufficient,
-	 * override this method. If you need instance-based calculation,
-	 * override #nonValidatedAspectNames().
-	 */
-	protected void addNonValidatedAspectNamesTo(Set<String> nonValidatedAspectNames) {
-		nonValidatedAspectNames.add(COMMENT_PROPERTY);
-		nonValidatedAspectNames.add(DIRTY_BRANCH_PROPERTY);
-		nonValidatedAspectNames.add(BRANCH_PROBLEMS_LIST);
-		nonValidatedAspectNames.add(HAS_BRANCH_PROBLEMS_PROPERTY);
-	// when you override this method, don't forget to include:
-	//	super.addNonValidatedAspectNamesTo(nonValidatedAspectNames);
-	}
-
-
-	// ********** display methods **********
-
-	/**
-	 * Compare display strings.
-	 */
-	public int compareTo(Node node) {
-		return DEFAULT_COMPARATOR.compare(this, node);
-	}
-
-	/**
-	 * Return a developer-friendly String. If you want something useful for
-	 * displaying in a user interface, use #displayString().
-	 * If you want to give more information in your #toString(),
-	 * override #toString(StringBuilder sb). 
-	 * Whatever you add to that string buffer will show up between the parentheses.
-	 * @see AbstractModel#toString(StringBuilder sb)
-	 * @see #displayString()
-	 */
-	@Override
-	public final String toString() {
-		return super.toString();
-	}
-
-}
diff --git a/jpa/plugins/org.eclipse.jpt.utility/src/org/eclipse/jpt/utility/internal/node/AsynchronousValidator.java b/jpa/plugins/org.eclipse.jpt.utility/src/org/eclipse/jpt/utility/internal/node/AsynchronousValidator.java
deleted file mode 100644
index fd2059c..0000000
--- a/jpa/plugins/org.eclipse.jpt.utility/src/org/eclipse/jpt/utility/internal/node/AsynchronousValidator.java
+++ /dev/null
@@ -1,50 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.utility.internal.node;
-
-import org.eclipse.jpt.utility.internal.StringTools;
-import org.eclipse.jpt.utility.internal.SynchronizedBoolean;
-
-/**
- * This implementation of the PluggableValidator.Delegate interface
- * simply sets a shared "validate" flag to true. This should trigger a
- * separate "validation" thread to begin validating the appropriate
- * branch of nodes.
- */
-public class AsynchronousValidator
-	implements PluggableValidator.Delegate
-{
-	private SynchronizedBoolean validateFlag;
-
-	/**
-	 * Construct a validator delegate with the specified shared
-	 * "validate" flag. This flag should be shared with
-	 * another thread that will perform the actual validation.
-	 */
-	public AsynchronousValidator(SynchronizedBoolean validateFlag) {
-		super();
-		this.validateFlag = validateFlag;
-	}
-
-	/**
-	 * Set the shared "validate" flag to true, triggering
-	 * an asynchronous validation of the appropriate
-	 * branch of nodes.
-	 */
-	public void validate() {
-		this.validateFlag.setTrue();
-	}
-
-	@Override
-	public String toString() {
-		return StringTools.buildToStringFor(this, this.validateFlag);
-	}
-
-}
diff --git a/jpa/plugins/org.eclipse.jpt.utility/src/org/eclipse/jpt/utility/internal/node/DefaultProblem.java b/jpa/plugins/org.eclipse.jpt.utility/src/org/eclipse/jpt/utility/internal/node/DefaultProblem.java
deleted file mode 100644
index 9d3898c..0000000
--- a/jpa/plugins/org.eclipse.jpt.utility/src/org/eclipse/jpt/utility/internal/node/DefaultProblem.java
+++ /dev/null
@@ -1,79 +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.utility.internal.node;
-
-import java.util.Arrays;
-import org.eclipse.jpt.utility.internal.StringTools;
-
-/**
- * This class is a straightforward implementation of the Problem interface.
- */
-public class DefaultProblem
-	implements Problem
-{
-	private final Node source;
-	private final String messageKey;
-	private final Object[] messageArguments;
-
-
-	DefaultProblem(Node source, String messageKey, Object[] messageArguments) {
-		super();
-		this.source = source;
-		this.messageKey = messageKey;
-		this.messageArguments = messageArguments;
-	}
-
-
-	// ********** Problem implementation **********
-
-	public Node source() {
-		return this.source;
-	}
-
-	public String messageKey() {
-		return this.messageKey;
-	}
-
-	public Object[] messageArguments() {
-		return this.messageArguments;
-	}
-
-
-	// ********** Object overrides **********
-
-	/**
-	 * We implement #equals(Object) because problems are repeatedly
-	 * re-calculated and the resulting problems merged with the existing
-	 * set of problems; and we want to keep the original problems and
-	 * ignore any freshly-generated duplicates.
-	 * Also, problems are not saved to disk....
-	 */
-	@Override
-	public boolean equals(Object o) {
-		if ( ! (o instanceof Problem)) {
-			return false;
-		}
-		Problem other = (Problem) o;
-		return this.source == other.source()
-				&& this.messageKey.equals(other.messageKey())
-				&& Arrays.equals(this.messageArguments, other.messageArguments());
-	}
-
-	@Override
-	public int hashCode() {
-		return this.source.hashCode() ^ this.messageKey.hashCode();
-	}
-
-	@Override
-	public String toString() {
-		return StringTools.buildToStringFor(this, this.messageKey);
-	}
-
-}
diff --git a/jpa/plugins/org.eclipse.jpt.utility/src/org/eclipse/jpt/utility/internal/node/Node.java b/jpa/plugins/org.eclipse.jpt.utility/src/org/eclipse/jpt/utility/internal/node/Node.java
deleted file mode 100644
index e4d7e10..0000000
--- a/jpa/plugins/org.eclipse.jpt.utility/src/org/eclipse/jpt/utility/internal/node/Node.java
+++ /dev/null
@@ -1,419 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2008 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.utility.internal.node;
-
-import com.ibm.icu.text.Collator;
-import java.util.Collection;
-import java.util.Comparator;
-import java.util.Iterator;
-import java.util.List;
-import java.util.ListIterator;
-import org.eclipse.jpt.utility.internal.StringTools;
-import org.eclipse.jpt.utility.model.Model;
-
-/**
- * This interface defines the methods that must be implemented
- * by any class whose instances are to be part of a containment hierarchy
- * that supports a "dirty" state and validation "problems".
- * 
- * Note: Methods marked "INTRA-TREE API" are typically only used by
- * the nodes themselves, as opposed to clients of the nodes. These
- * methods are called by a node on either its parent or its children.
- */
-public interface Node extends Model, Comparable<Node> {
-
-
-	// ********** containment hierarchy (parent/children) **********
-
-	/**
-	 * INTRA-TREE API?
-	 * Return the node's parent in the containment hierarchy.
-	 * Most nodes must have a parent. The parent is immutable.
-	 * @see #children()
-	 */
-	Node getParent();
-
-	/**
-	 * INTRA-TREE API?
-	 * Return the node's children, which are also nodes.
-	 * @see #getParent()
-	 */
-	Iterator<Node> children();
-
-	/**
-	 * INTRA-TREE API?
-	 * Return the containment hierarchy's root node.
-	 * Most nodes must have a root.
-	 * @see #getParent()
-	 */
-	Node root();
-
-	/**
-	 * Return whether the node is a descendant of the specified node.
-	 * By definition, a node is a descendant of itself.
-	 */
-	boolean isDescendantOf(Node node);
-
-	/**
-	 * INTRA-TREE API
-	 * Add the node's "references", and all the node's descendants'
-	 * "references", to the specified collection. "References" are
-	 * objects that are "referenced" by another object, as opposed
-	 * to "owned" by another object.
-	 * This method is of particular concern to Handles, since most
-	 * (hopefully all) "references" are held by Handles.
-	 * @see Reference
-	 * @see #children()
-	 */
-	void addBranchReferencesTo(Collection<Node.Reference> branchReferences);
-
-	/**
-	 * INTRA-TREE API?
-	 * Add all the nodes in the object's branch of the tree,
-	 * including the node itself, to the specified collection.
-	 * Only really used for testing and debugging.
-	 */
-	void addAllNodesTo(Collection<Node> nodes);
-
-
-	// ********** model synchronization support **********
-
-	/**
-	 * INTRA-TREE API
-	 * This is a general notification that the specified node has been
-	 * removed from the tree. The node receiving this notification
-	 * should perform any necessary updates to remain in synch
-	 * with the tree (e.g. clearing out or replacing any references
-	 * to the removed node or any of the removed node's descendants).
-	 * @see #isDescendantOf(Node)
-	 */
-	void nodeRemoved(Node node);
-
-	/**
-	 * INTRA-TREE API
-	 * This is a general notification that the specified node has been
-	 * renamed. The node receiving this notification should mark its
-	 * branch dirty if necessary (i.e. it references the renamed node
-	 * or one of its descendants). This method is of particular concern
-	 * to Handles.
-	 * @see #isDescendantOf(Node)
-	 */
-	void nodeRenamed(Node node);
-	
-
-	// ********** dirty flag support **********
-
-	/**
-	 * Return whether any persistent aspects of the node,
-	 * or any of its descendants, have changed since the node and
-	 * its descendants were last read or saved.
-	 */
-	boolean isDirtyBranch();
-		String DIRTY_BRANCH_PROPERTY = "dirtyBranch";
-
-	/**
-	 * INTRA-TREE API
-	 * Mark the node and its parent as dirty branches.
-	 * This message is propagated up the containment
-	 * tree when a particular node becomes dirty.
-	 */
-	void markBranchDirty();
-
-	/**
-	 * Mark the node and all its descendants as dirty.
-	 * This is used when the save location of some
-	 * top-level node is changed and the entire
-	 * containment tree must be marked dirty so it
-	 * will be written out.
-	 */
-	void markEntireBranchDirty();
-
-	/**
-	 * INTRA-TREE API
-	 * A child node's branch has been marked clean. If the node
-	 * itself is clean and if all of its children are also clean, the
-	 * node's branch can be marked clean. Then, if the node's
-	 * branch is clean, the node will notify its parent that it might
-	 * be clean also. This message is propagated up the containment
-	 * tree when a particular node becomes clean.
-	 */
-	void markBranchCleanIfPossible();
-
-	/**
-	 * INTRA-TREE API
-	 * Mark the node and all its descendants as clean.
-	 * Typically used when the node has just been
-	 * read in or written out.
-	 * This method is for internal use only; it is not for
-	 * client use.
-	 * Not the best of method names.... :-(
-	 */
-	void cascadeMarkEntireBranchClean();
-
-
-	// ********** problems **********
-
-	/**
-	 * INTRA-TREE API
-	 * Return a validator that will be invoked whenever a
-	 * "validated" aspect of the node tree changes.
-	 * Typically only the root node directly holds a validator.
-	 */
-	Validator getValidator();
-
-	/**
-	 * Set a validator that will be invoked whenever a
-	 * "validated" aspect of the node tree changes.
-	 * Typically only the root node directly holds a validator.
-	 */
-	void setValidator(Validator validator);
-
-	/**
-	 * Validate the node and its descendants.
-	 * This is an explicit request invoked by a client; and it will
-	 * typically be followed by a call to one of the following methods:
-	 * 	#branchProblems()
-	 * 	#hasBranchProblems()
-	 * Whether the node maintains its problems on the fly
-	 * or waits until this method is called is determined by the
-	 * implementation.
-	 * @see Problem
-	 */
-	void validateBranch();
-
-	/**
-	 * INTRA-TREE API
-	 * Validate the node and all of its descendants,
-	 * and update their sets of "branch" problems.
-	 * Return true if the collection of "branch" problems has changed.
-	 * This method is for internal use only; it is not for
-	 * client use.
-	 */
-	boolean validateBranchInternal();
-
-	/**
-	 * Return all the node's problems along with all the
-	 * node's descendants' problems.
-	 */
-	ListIterator<Problem> branchProblems();
-		String BRANCH_PROBLEMS_LIST = "branchProblems";
-
-	/**
-	 * Return the size of all the node's problems along with all the
-	 * node's descendants' problems.
-	 */
-	int branchProblemsSize();
-
-	/**
-	 * Return whether the node or any of its descendants have problems.
-	 */
-	boolean hasBranchProblems();
-		String HAS_BRANCH_PROBLEMS_PROPERTY = "hasBranchProblems";
-
-	/**
-	 * Return whether the node contains the specified branch problem.
-	 */
-	boolean containsBranchProblem(Problem problem);
-
-	/**
-	 * INTRA-TREE API
-	 * Something changed, rebuild the node's collection of branch problems.
-	 */
-	void rebuildBranchProblems();
-
-	/**
-	 * INTRA-TREE API
-	 * Add the node's problems, and all the node's descendants'
-	 * problems, to the specified list.
-	 * A call to this method should be immediately preceded by a call to
-	 * #validateBranch() or all of the problems might not be
-	 * added to the list.
-	 * @see Problem
-	 */
-	void addBranchProblemsTo(List<Problem> branchProblems);
-
-	/**
-	 * Clear the node's "branch" problems and the "branch"
-	 * problems of all of its descendants.
-	 */
-	void clearAllBranchProblems();
-
-	/**
-	 * INTRA-TREE API
-	 * Clear the node's "branch" problems and the "branch"
-	 * problems of all of its descendants.
-	 * Return true if the collection of "branch" problems has changed.
-	 * This method is for internal use only; it is not for
-	 * client use.
-	 */
-	boolean clearAllBranchProblemsInternal();
-
-
-	// ********** comment **********
-
-	/**
-	 * Return the user comment concerning the node.
-	 */
-	String comment();
-		String COMMENT_PROPERTY = "comment";
-
-	/**
-	 * Set the user comment concerning the node.
-	 */
-	void setComment(String comment);
-
-
-	// ********** displaying/sorting **********
-
-	/**
-	 * Return a string representation of the model, suitable for sorting.
-	 */
-	String displayString();
-
-
-	// ********** sub-interfaces **********
-
-	/**
-	 * Simple interface defining a "reference" between two nodes.
-	 * @see Node#addBranchReferencesTo(java.util.Collection)
-	 */
-	interface Reference {
-
-		/**
-		 * Return the "source" node of the reference, i.e. the node that
-		 * references the "target" node.
-		 */
-		Node source();
-
-		/**
-		 * Return the "target" node of the reference, i.e. the node that
-		 * is referenced by the "source" node.
-		 */
-		Node target();
-
-	}
-
-
-	/**
-	 * A validator will validate a node as appropriate.
-	 * Typically the validation will
-	 * 	- occur whenever a node has changed
-	 * 	- encompass the entire tree containing the node
-	 * 	- execute asynchronously
-	 */
-	interface Validator {
-
-		/**
-		 * A "significant" aspect has changed;
-		 * validate the node as appropriate
-		 */
-		void validate();
-
-		/**
-		 * Stop all validation of the node until #resume() is called.
-		 * This can be used to improve the performance of any long-running
-		 * action that triggers numerous changes to the node. Be sure to
-		 * match a call to this method with a corresponding call to
-		 * #resume().
-		 */
-		void pause();
-
-		/**
-		 * Resume validation of the node. This method can only be
-		 * called after a matching call to #pause().
-		 */
-		void resume();
-
-	}
-
-
-	// ********** helper implementations **********
-
-	/**
-	 * Straightforward implementation of the Reference interface
-	 * defined above.
-	 */
-	public class SimpleReference implements Reference {
-		private Node source;
-		private Node target;
-		public SimpleReference(Node source, Node target) {
-			super();
-			if (source == null || target == null) {
-				throw new NullPointerException();
-			}
-			this.source = source;
-			this.target = target;
-		}
-		public Node source() {
-			return this.source;
-		}
-		public Node target() {
-			return this.target;
-		}
-		@Override
-		public String toString() {
-			return StringTools.buildToStringFor(this, this.source + " => " + this.target);
-		}
-	}
-
-	/**
-	 * Typical comparator that can be used to sort a collection of nodes.
-	 * Sort based on display string:
-	 * 	- identical objects are equal (which means that cannot
-	 * 		co-exist in a SortedSet)
-	 * 	- use the default collator (which typically interleaves
-	 * 		lower- and upper-case letters)
-	 * 	- allow duplicate display strings (from different objects)
-	 * 	- try to return consistent results for same object pairs
-	 */
-	Comparator<Node> DEFAULT_COMPARATOR =
-		new Comparator<Node>() {
-			public int compare(Node node1, Node node2) {
-				// disallow duplicates based on object identity
-				if (node1 == node2) {
-					return 0;
-				}
-
-				// first compare display strings using the default collator
-				int result = Collator.getInstance().compare(node1.displayString(), node2.displayString());
-				if (result != 0) {
-					return result;
-				}
-
-				// then compare using object-id
-				result = System.identityHashCode(node1) - System.identityHashCode(node2);
-				if (result != 0) {
-					return result;
-				}
-
-				// It's unlikely that we get to this point; but, just in case, we will return -1.
-				// Unfortunately, this introduces some mild unpredictability to the sort order
-				// (unless the objects are always passed into this method in the same order).
-				return -1;		// if all else fails, indicate that o1 < o2
-			}
-			@Override
-			public String toString() {
-				return "Node.DEFAULT_COMPARATOR";
-			}
-		};
-
-
-	/**
-	 * This validator does nothing to validate the node.
-	 */
-	Validator NULL_VALIDATOR =
-		new PluggableValidator(PluggableValidator.Delegate.Null.instance()) {
-			@Override
-			public String toString() {
-				return "Node.NULL_VALIDATOR";
-			}
-		};
-
-}
diff --git a/jpa/plugins/org.eclipse.jpt.utility/src/org/eclipse/jpt/utility/internal/node/PluggableValidator.java b/jpa/plugins/org.eclipse.jpt.utility/src/org/eclipse/jpt/utility/internal/node/PluggableValidator.java
deleted file mode 100644
index c44f8aa..0000000
--- a/jpa/plugins/org.eclipse.jpt.utility/src/org/eclipse/jpt/utility/internal/node/PluggableValidator.java
+++ /dev/null
@@ -1,121 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2008 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.utility.internal.node;
-
-import org.eclipse.jpt.utility.internal.StringTools;
-import org.eclipse.jpt.utility.internal.SynchronizedBoolean;
-
-/**
- * This implementation of the Validator interface implements the
- * pause/resume portion of the protocol, but delegates the actual
- * validation to a "pluggable" delegate.
- */
-public class PluggableValidator
-	implements Node.Validator
-{
-	private boolean pause;
-	private boolean validateOnResume;
-	private final Delegate delegate;
-
-
-	/**
-	 * Convenience factory method.
-	 */
-	public static Node.Validator buildAsynchronousValidator(SynchronizedBoolean validateFlag) {
-		return new PluggableValidator(new AsynchronousValidator(validateFlag));
-	}
-
-	/**
-	 * Convenience factory method.
-	 */
-	public static Node.Validator buildSynchronousValidator(Node node) {
-		return new PluggableValidator(new SynchronousValidator(node));
-	}
-
-	/**
-	 * Construct a validator with the specified delegate.
-	 */
-	public PluggableValidator(Delegate delegate) {
-		super();
-		this.pause = false;
-		this.validateOnResume = false;
-		this.delegate = delegate;
-	}
-
-	public synchronized void validate() {
-		if (this.pause) {
-			this.validateOnResume = true;
-		} else {
-			this.delegate.validate();
-		}
-	}
-
-	public synchronized void pause() {
-		if (this.pause) {
-			throw new IllegalStateException("already paused");
-		}
-		this.pause = true;
-	}
-
-	public synchronized void resume() {
-		if ( ! this.pause) {
-			throw new IllegalStateException("not paused");
-		}
-		this.pause = false;
-		// validate any changes that occurred while the validation was paused
-		if (this.validateOnResume) {
-			this.validateOnResume = false;
-			this.delegate.validate();
-		}
-	}
-
-	@Override
-	public String toString() {
-		return StringTools.buildToStringFor(this, this.delegate);
-	}
-
-
-	// ********** member interface **********
-
-	/**
-	 * Interface implemented by any delegates of a pluggable validator.
-	 */
-	public interface Delegate {
-
-		/**
-		 * The validator is not "paused" - perform the appropriate validation.
-		 */
-		void validate();
-
-
-		/**
-		 * This delegate does nothing.
-		 */
-		final class Null implements Delegate {
-			public static final Delegate INSTANCE = new Null();
-			public static Delegate instance() {
-				return INSTANCE;
-			}
-			// ensure single instance
-			private Null() {
-				super();
-			}
-			public void validate() {
-				// do nothing
-			}
-			@Override
-			public String toString() {
-				return "PluggableValidator.Delegate.Null";
-			}
-		}
-
-	}
-
-}
diff --git a/jpa/plugins/org.eclipse.jpt.utility/src/org/eclipse/jpt/utility/internal/node/Problem.java b/jpa/plugins/org.eclipse.jpt.utility/src/org/eclipse/jpt/utility/internal/node/Problem.java
deleted file mode 100644
index 4f8e730..0000000
--- a/jpa/plugins/org.eclipse.jpt.utility/src/org/eclipse/jpt/utility/internal/node/Problem.java
+++ /dev/null
@@ -1,46 +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.utility.internal.node;
-
-/**
- * Define an interface describing the problems associated with a node.
- */
-public interface Problem {
-
-	/**
-	 * Return the node most closely associated with the problem.
-	 */
-	Node source();
-
-	/**
-	 * Return a key that can be used to uniquely identify the problem's message.
-	 */
-	String messageKey();
-
-	/**
-	 * Return the arguments associate with the problem's message.
-	 */
-	Object[] messageArguments();
-
-	/**
-	 * Return whether the problem is equal to the specified object.
-	 * It is equal if the specified object is a implementation of the
-	 * Problem interface and its source, message key, and message
-	 * arguments are all equal to this problem's.
-	 */
-	boolean equals(Object o);
-
-	/**
-	 * Return the problem's hash code, which should calculated as an
-	 * XOR of the source's hash code and the message key's hash code.
-	 */
-	int hashCode();
-
-}
diff --git a/jpa/plugins/org.eclipse.jpt.utility/src/org/eclipse/jpt/utility/internal/node/RunnableValidation.java b/jpa/plugins/org.eclipse.jpt.utility/src/org/eclipse/jpt/utility/internal/node/RunnableValidation.java
deleted file mode 100644
index 367d57a..0000000
--- a/jpa/plugins/org.eclipse.jpt.utility/src/org/eclipse/jpt/utility/internal/node/RunnableValidation.java
+++ /dev/null
@@ -1,128 +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.utility.internal.node;
-
-import java.util.logging.Level;
-import java.util.logging.LogRecord;
-import java.util.logging.Logger;
-import org.eclipse.jpt.utility.internal.SynchronizedBoolean;
-
-/**
- * This implementation of Runnable will asynchronously validate
- * a branch of nodes. It will wait until a shared "validate" flag is
- * set to validate the branch. Once the the branch is validated,
- * the thread will quiesce until the flag is set again.
- * 
- * There are two ways to stop this thread:
- * 	- Thread.interrupt()
- * 	- set the "continue" flag to false
- * For now, these two are equivalent; but in the future we might
- * pass the "continue" flag to the Node.validateBranch()
- * method so we can short-circuit the validation instead of waiting
- * until the entire branch is validated.
- */
-public class RunnableValidation
-	implements Runnable
-{
-	/** The node whose branch this thread will validate. */
-	private final Node node;
-
-	/** When this flag is set to true, we kick off the validation routine. */
-	private final SynchronizedBoolean validateFlag;
-
-	/** When this flag is set to false, we allow this thread to die. */
-	private final SynchronizedBoolean continueFlag;
-
-	/** Log any exceptions encountered during validation with the following settings. */
-	private final Logger exceptionLogger;
-	private final Level exceptionLevel;
-	private final String exceptionMessage;
-
-
-	/**
-	 * Construct a validation thread.
-	 */
-	public RunnableValidation(
-			Node node,
-			SynchronizedBoolean validateFlag,
-			SynchronizedBoolean continueFlag,
-			Logger exceptionLogger,
-			Level exceptionLevel,
-			String exceptionMessage
-	) {
-		super();
-		this.node = node;
-		this.validateFlag = validateFlag;
-		this.continueFlag = continueFlag;
-		this.exceptionLogger = exceptionLogger;
-		this.exceptionLevel = exceptionLevel;
-		this.exceptionMessage = exceptionMessage;
-	}
-
-
-	// ********** Runnable Implementation **********
-
-	/**
-	 * Loop while the "continue" flag is true and the thread
-	 * has not been interrupted by another thread.
-	 * In each loop: Wait until the "validate" flag is set to true,
-	 * then set it back to false and validate the branch of nodes.
-	 */
-	public void run() {
-		while (this.continueFlag.isTrue()) {
-			try {
-				this.validateFlag.waitToSetFalse();
-			} catch (InterruptedException ex) {
-				// we were interrupted while waiting, must be quittin' time
-				return;
-			}
-			this.validateNode();
-		}
-	}
-
-	/**
-	 * Validate the node, logging any exceptions.
-	 * If an exception occurs, we terminate the validation until the
-	 * "validation" flag is set again. Some exceptions occur because
-	 * of concurrent changes to the model that occur *after* validation
-	 * starts but before it completes an entire pass over the model. If that
-	 * is the case, things should be OK; because the exception will be
-	 * caught and the "validation" flag will have been set again *during* the
-	 * initial validation pass. So when we return from catching the exception
-	 * we will simply re-start the validation, hopefully with the model in
-	 * a consistent state that will prevent another exception from
-	 * occurring. Of course, if we have any exceptions that are *not*
-	 * the result of the model being in an inconsistent state, we will
-	 * probably fill the log; and those exceptions are bugs that need
-	 * to be fixed. (!) Hopefully the user will notice the enormous log and
-	 * contact support....  ~bjv
-	 */
-	private void validateNode() {
-		try {
-			this.node.validateBranch();
-		} catch (Throwable ex) {
-			this.logException(ex);
-		}
-	}
-
-	/**
-	 * We need to do all this because Logger#log(LogRecord) does not pass through
-	 * Logger#doLog(LogRecord) like all the other Logger#log(...) methods.
-	 */
-	private void logException(Throwable ex) {
-		LogRecord logRecord = new LogRecord(this.exceptionLevel, this.exceptionMessage);
-		logRecord.setParameters(new Object[] { this.node.displayString() });
-		logRecord.setThrown(ex);
-		logRecord.setLoggerName(this.exceptionLogger.getName());
-		logRecord.setResourceBundle(this.exceptionLogger.getResourceBundle());
-		this.exceptionLogger.log(logRecord);
-	}
-
-}
diff --git a/jpa/plugins/org.eclipse.jpt.utility/src/org/eclipse/jpt/utility/internal/node/SynchronousValidator.java b/jpa/plugins/org.eclipse.jpt.utility/src/org/eclipse/jpt/utility/internal/node/SynchronousValidator.java
deleted file mode 100644
index ede6b8b..0000000
--- a/jpa/plugins/org.eclipse.jpt.utility/src/org/eclipse/jpt/utility/internal/node/SynchronousValidator.java
+++ /dev/null
@@ -1,44 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.utility.internal.node;
-
-import org.eclipse.jpt.utility.internal.StringTools;
-
-/**
- * This implementation of the PluggableValidator.Delegate interface
- * will validate the node immediately.
- * 
- * This is useful for debugging in a single thread or generating
- * problem reports.
- */
-public class SynchronousValidator
-	implements PluggableValidator.Delegate
-{
-	private final Node node;
-
-	/**
-	 * Construct a validator that will immediately validate the
-	 * specified node.
-	 */
-	public SynchronousValidator(Node node) {
-		super();
-		this.node = node;
-	}
-
-	public void validate() {
-		this.node.validateBranch();
-	}
-
-	@Override
-	public String toString() {
-		return StringTools.buildToStringFor(this, this.node);
-	}
-
-}
diff --git a/jpa/plugins/org.eclipse.jpt.utility/src/org/eclipse/jpt/utility/internal/swing/CachingComboBoxModel.java b/jpa/plugins/org.eclipse.jpt.utility/src/org/eclipse/jpt/utility/internal/swing/CachingComboBoxModel.java
deleted file mode 100644
index 8ebe261..0000000
--- a/jpa/plugins/org.eclipse.jpt.utility/src/org/eclipse/jpt/utility/internal/swing/CachingComboBoxModel.java
+++ /dev/null
@@ -1,42 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.utility.internal.swing;
-
-import javax.swing.ComboBoxModel;
-
-/**
- * This interface allows a client to better control the performance of
- * a combo box model by allowing the client to specify when it is
- * acceptable for the model to "cache" and "uncache" its list of elements.
- * The model may ignore these hints if appropriate.
- */
-public interface CachingComboBoxModel extends ComboBoxModel {
-    
-    /**
-     * Cache the comboBoxModel List.  If you call this, you
-     * must make sure to call uncacheList() as well.  Otherwise
-     * stale data will be in the ComboBox until cacheList() is 
-     * called again or uncacheList() is called.
-     */
-    void cacheList();
-    
-    /**
-     * Clear the cached list.  Next time the list is needed it will
-     * be built when it is not cached.
-     */
-    void uncacheList();
-
-    /**
-     * Check to see if the list is already cached.  This can be used for 
-     * MouseEvents, since they are not terribly predictable.
-     */
-    boolean isCached();
-
-}
diff --git a/jpa/plugins/org.eclipse.jpt.utility/src/org/eclipse/jpt/utility/internal/swing/CheckBoxTableCellRenderer.java b/jpa/plugins/org.eclipse.jpt.utility/src/org/eclipse/jpt/utility/internal/swing/CheckBoxTableCellRenderer.java
deleted file mode 100644
index 45ec6be..0000000
--- a/jpa/plugins/org.eclipse.jpt.utility/src/org/eclipse/jpt/utility/internal/swing/CheckBoxTableCellRenderer.java
+++ /dev/null
@@ -1,206 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2008 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.utility.internal.swing;
-
-import java.awt.Color;
-import java.awt.Component;
-import java.awt.event.ActionEvent;
-import java.awt.event.ActionListener;
-import javax.swing.BorderFactory;
-import javax.swing.Icon;
-import javax.swing.JCheckBox;
-import javax.swing.JTable;
-import javax.swing.SwingConstants;
-import javax.swing.UIManager;
-import javax.swing.border.Border;
-import org.eclipse.jpt.utility.internal.swing.TableCellEditorAdapter.ImmediateEditListener;
-
-/**
- * Make the cell look like a check box.
- */
-public class CheckBoxTableCellRenderer implements TableCellEditorAdapter.Renderer {
-
-	/** the component used to paint the cell */
-	private final JCheckBox checkBox;
-	
-	/** the listener to be notified on an immediate edit */
-	protected TableCellEditorAdapter.ImmediateEditListener immediateEditListener;
-
-	/** "normal" border - assume the default table "focus" border is 1 pixel thick */
-	private static final Border NO_FOCUS_BORDER = BorderFactory.createEmptyBorder(1, 1, 1, 1);
-
-
-	// ********** constructors/initialization **********
-
-	/**
-	 * Construct a cell renderer with no label or icon.
-	 */
-	public CheckBoxTableCellRenderer() {
-		super();
-		this.checkBox = this.buildCheckBox();
-		// by default, check boxes do not paint their borders
-		this.checkBox.setBorderPainted(true);
-		// this setting is recommended for check boxes inside of trees and tables
-		this.checkBox.setBorderPaintedFlat(true);
-	}
-
-	/**
-	 * Construct a cell renderer with the specified text and icon,
-	 * either of which may be null.
-	 */
-	public CheckBoxTableCellRenderer(String text, Icon icon) {
-		this();
-		this.setText(text);
-		this.setIcon(icon);
-	}
-
-	/**
-	 * Construct a cell renderer with the specified text.
-	 */
-	public CheckBoxTableCellRenderer(String text) {
-		this(text, null);
-	}
-
-	/**
-	 * Construct a cell renderer with the specified icon.
-	 */
-	public CheckBoxTableCellRenderer(Icon icon) {
-		this(null, icon);
-	}
-
-	protected JCheckBox buildCheckBox() {
-		JCheckBox cb = new JCheckBox();
-		cb.addActionListener(this.buildActionListener());
-		return cb;
-	}
-	
-	private ActionListener buildActionListener() {
-		return new ActionListener() {
-			public void actionPerformed(ActionEvent e) {
-				if (CheckBoxTableCellRenderer.this.immediateEditListener != null) {
-					CheckBoxTableCellRenderer.this.immediateEditListener.immediateEdit();
-				}
-			}
-		};
-	}
-
-
-	// ********** TableCellRenderer implementation **********
-
-	public Component getTableCellRendererComponent(JTable table, Object value, boolean selected, boolean hasFocus, int row, int column) {
-	    this.checkBox.setHorizontalAlignment(SwingConstants.CENTER);
-		this.checkBox.setComponentOrientation(table.getComponentOrientation());
-		this.checkBox.setFont(table.getFont());
-		this.checkBox.setEnabled(table.isEnabled());
-
-		this.checkBox.setForeground(this.foregroundColor(table, value, selected, hasFocus, row, column));
-		this.checkBox.setBackground(this.backgroundColor(table, value, selected, hasFocus, row, column));
-		// once the colors are set, calculate opaque setting
-		this.checkBox.setOpaque(this.cellIsOpaqueIn(table, value, selected, hasFocus, row, column));
-		this.checkBox.setBorder(this.border(table, value, selected, hasFocus, row, column));
-
-		this.setValue(value);
-		return this.checkBox;
-	}
-
-	/**
-	 * Return the cell's foreground color.
-	 */
-	protected Color foregroundColor(JTable table, Object value, boolean selected, boolean hasFocus, int row, int column) {
-		if (selected) {
-			if (hasFocus && table.isCellEditable(row, column)) {
-				return UIManager.getColor("Table.focusCellForeground");
-			}
-			return table.getSelectionForeground();
-		}
-		return table.getForeground();
-	}
-
-	/**
-	 * Return the cell's background color.
-	 */
-	protected Color backgroundColor(JTable table, Object value, boolean selected, boolean hasFocus, int row, int column) {
-		if (selected) {
-			if (hasFocus && table.isCellEditable(row, column)) {
-				return UIManager.getColor("Table.focusCellBackground");
-			}
-			return table.getSelectionBackground();
-		}
-		return table.getBackground();
-	}
-
-	/**
-	 * Return the cell's border.
-	 */
-	protected Border border(JTable table, Object value, boolean selected, boolean hasFocus, int row, int column) {
-		return hasFocus ?  UIManager.getBorder("Table.focusCellHighlightBorder") : NO_FOCUS_BORDER;
-	}
-
-	/**
-	 * Return whether the cell should be opaque in the table.
-	 * If the cell's background is the same as the table's background
-	 * and table is opaque, we don't need to paint the background -
-	 * the table will do it.
-	 */
-	protected boolean cellIsOpaqueIn(JTable table, Object value, boolean selected, boolean hasFocus, int row, int column) {
-		Color cellBackground = this.checkBox.getBackground();
-		Color tableBackground = table.getBackground();
-		return ! (table.isOpaque() && cellBackground.equals(tableBackground));
-	}
-
-	/**
-	 * Set the check box's value.
-	 */
-	protected void setValue(Object value) {
-		// CR#3999318 - This null check needs to be removed once JDK bug is fixed
-		if (value == null) {
-			value = Boolean.FALSE;
-		}
-		this.checkBox.setSelected(((Boolean) value).booleanValue());
-	}
-
-
-	// ********** TableCellEditorAdapter.Renderer implementation **********
-
-	public Object getValue() {
-		return Boolean.valueOf(this.checkBox.isSelected());
-	}
-	
-	public void setImmediateEditListener(ImmediateEditListener listener) {
-		this.immediateEditListener = listener;
-	}
-
-	// ********** public API **********
-
-	/**
-	 * Set the check box's text; which by default is blank.
-	 */
-	public void setText(String text) {
-		this.checkBox.setText(text);
-	}
-
-	/**
-	 * Set the check box's icon; which by default is not present.
-	 */
-	public void setIcon(Icon icon) {
-		this.checkBox.setIcon(icon);
-	}
-
-	/**
-	 * Return the renderer's preferred height. This allows you
-	 * to set the table's row height to something the check box
-	 * will look good in....
-	 */
-	public int preferredHeight() {
-		// add in space for the border top and bottom
-		return (int) this.checkBox.getPreferredSize().getHeight() + 2;
-	}
-
-}
diff --git a/jpa/plugins/org.eclipse.jpt.utility/src/org/eclipse/jpt/utility/internal/swing/ComboBoxTableCellRenderer.java b/jpa/plugins/org.eclipse.jpt.utility/src/org/eclipse/jpt/utility/internal/swing/ComboBoxTableCellRenderer.java
deleted file mode 100644
index 55d8d1f..0000000
--- a/jpa/plugins/org.eclipse.jpt.utility/src/org/eclipse/jpt/utility/internal/swing/ComboBoxTableCellRenderer.java
+++ /dev/null
@@ -1,328 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2008 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.utility.internal.swing;
-
-import java.awt.Color;
-import java.awt.Component;
-import java.awt.Graphics;
-import java.awt.event.ActionEvent;
-import java.awt.event.ActionListener;
-import javax.swing.BorderFactory;
-import javax.swing.ComboBoxModel;
-import javax.swing.JComboBox;
-import javax.swing.JLabel;
-import javax.swing.JList;
-import javax.swing.JTable;
-import javax.swing.ListCellRenderer;
-import javax.swing.SwingConstants;
-import javax.swing.UIManager;
-import javax.swing.border.Border;
-import javax.swing.event.PopupMenuEvent;
-import javax.swing.event.PopupMenuListener;
-import org.eclipse.jpt.utility.internal.ClassTools;
-
-/**
- * Make the cell look like a combo-box.
- */
-public class ComboBoxTableCellRenderer implements TableCellEditorAdapter.Renderer {
-
-	/* caching the combo box because we are caching the comboBoxModel.
-	 * Everytime we rebuilt the comboBox we would set the model on it and not
-	 * remove the model from the old combo box.  This meant that new listeners
-	 * kept being added to the comboBoxModel for every comboBox build.
-	 * Not sure if there is a way to clear out the old combo box, or why
-	 * we were buildig a new combo box every time so I went with caching it.
-	 */
-	private JComboBox comboBox;
-	
-	/** the items used to populate the combo box */
-	private CachingComboBoxModel model;
-	private ListCellRenderer renderer;
-	Object value;
-	private static int height = -1;
-	boolean fakeFocusFlag;
-
-	/** the listener to be notified on an immediate edit */
-	protected TableCellEditorAdapter.ImmediateEditListener immediateEditListener;
-	
-	/** hold the original colors of the combo-box */
-	private static Color defaultForeground;
-	private static Color defaultBackground;
-
-	/** "normal" border - assume the default table "focus" border is 1 pixel thick */
-	private static final Border NO_FOCUS_BORDER = BorderFactory.createEmptyBorder(1, 1, 1, 1);
-
-
-	// ********** constructors/initialization **********
-
-	/**
-	 * Default constructor.
-	 */
-	private ComboBoxTableCellRenderer() {
-		super();
-		initialize();
-	}
-
-	/**
-	 * Construct a cell renderer that uses the specified combo-box model.
-	 */
-	public ComboBoxTableCellRenderer(ComboBoxModel model) {
-		this(new NonCachingComboBoxModel(model));
-	}
-	
-	/**
-	 * Construct a cell renderer that uses the specified caching combo-box model.
-	 */
-	public ComboBoxTableCellRenderer(CachingComboBoxModel model) {
-		this();
-		this.model = model;
-	}
-
-	/**
-	 * Construct a cell renderer that uses the specified
-	 * combo-box model and renderer.
-	 */
-	public ComboBoxTableCellRenderer(ComboBoxModel model, ListCellRenderer renderer) {
-		this(new NonCachingComboBoxModel(model), renderer);
-	}
-	
-	/**
-	 * Construct a cell renderer that uses the specified
-	 * caching combo-box model and renderer.
-	 */
-	public ComboBoxTableCellRenderer(CachingComboBoxModel model, ListCellRenderer renderer) {
-		this(model);
-		this.renderer = renderer;
-	}
-
-	protected void initialize() {
-		// save the original colors of the combo-box, so we
-		// can use them to paint non-selected cells
-		if (height == -1) {
-			JComboBox cb = new JComboBox();
-			cb.addItem("m");
-
-			// add in space for the border top and bottom
-			height = cb.getPreferredSize().height + 2;
-
-			defaultForeground = cb.getForeground();
-			defaultBackground = cb.getBackground();
-		}
-	}
-
-    static JLabel prototypeLabel = new JLabel("Prototype", new EmptyIcon(16), SwingConstants.LEADING);
-
-    protected JComboBox buildComboBox() {
-
-		final JComboBox result = new JComboBox() {
-			private boolean fakeFocus;
-			@Override
-			public boolean hasFocus() {
-				return fakeFocus || super.hasFocus();
-			}
-			@Override
-			public void paint(Graphics g) {
-				fakeFocus = ComboBoxTableCellRenderer.this.fakeFocusFlag;
-				super.paint(g);
-				fakeFocus = false;
-			}
-			//wrap the renderer to deal with the prototypeDisplayValue
-		    @Override
-			public void setRenderer(final ListCellRenderer aRenderer) {
-		        super.setRenderer(new ListCellRenderer(){
-		            public Component getListCellRendererComponent(JList list, Object v, int index, boolean isSelected, boolean cellHasFocus) {
-		                if (v == prototypeLabel) {
-		                    return prototypeLabel;
-		                }
-		                return aRenderer.getListCellRendererComponent(list, v, index, isSelected, cellHasFocus);
-		            }
-		        });
-		    }
-			@Override
-			public int getSelectedIndex() {
-		        boolean listNotCached = !listIsCached();
-		        if (listNotCached) {
-		            cacheList();
-		        }
-		        
-				int index = super.getSelectedIndex();
-
-		        if (listNotCached) {
-		            uncacheList();
-		        }
-				return index;
-		   }
-
-		};
-		// stole this code from javax.swing.DefaultCellEditor
-		result.putClientProperty("JComboBox.isTableCellEditor", Boolean.TRUE);
-		result.addActionListener(this.buildActionListener());
-		result.addPopupMenuListener(this.buildPopupMenuListener());
-		
-        //These are used to workaround problems with Swing trying to 
-        //determine the size of a comboBox with a large model
-        result.setPrototypeDisplayValue(prototypeLabel);
-        getListBox(result).setPrototypeCellValue(prototypeLabel);
-        
-		return result;
-	}
-	
-    
-    private JList getListBox(JComboBox result) {
-        return (JList) ClassTools.fieldValue(result.getUI(), "listBox");
-    }
-
-	
-	private ActionListener buildActionListener() {
-		return new ActionListener() {
-			public void actionPerformed(ActionEvent e) {
-				JComboBox cb = (JComboBox) e.getSource();
-				Object selectedItem = cb.getSelectedItem();
-
-				// Only update the selected item and invoke immediateEdit() if the
-				// selected item actually changed, during the initialization of the
-				// editing, the model changes and causes this method to be invoked,
-				// it causes CR#3963675 to occur because immediateEdit() stop the
-				// editing, which is done at the wrong time
-				if (ComboBoxTableCellRenderer.this.value != selectedItem) {
-					ComboBoxTableCellRenderer.this.value = cb.getSelectedItem();
-					ComboBoxTableCellRenderer.this.immediateEdit();
-				}
-			}
-		};
-	}
-
-	void immediateEdit() {
-		if (this.immediateEditListener != null) {
-			this.immediateEditListener.immediateEdit();
-		}
-	}
-	
-	private PopupMenuListener buildPopupMenuListener() {
-		return new PopupMenuListener() {
-		
-			public void popupMenuWillBecomeVisible(PopupMenuEvent e) {
-				if (listIsCached()) {
-					uncacheList();
-				}
-				cacheList();
-			}
-		
-			public void popupMenuWillBecomeInvisible(PopupMenuEvent e) {
-	            if (listIsCached()) {
-	                uncacheList();
-	            }
-
-			}
-		
-			public void popupMenuCanceled(PopupMenuEvent e) {
-	            if (listIsCached()) {
-	                uncacheList();
-	            }
-			}
-		};
-	}
-
-	
-	void cacheList() {
-		this.model.cacheList();
-	}
-	
-	void uncacheList() {
-		this.model.uncacheList();
-	}	
-	
-	boolean listIsCached() {
-		return this.model.isCached();
-	}
-	// ********** TableCellRenderer implementation **********
-
-	public Component getTableCellRendererComponent(JTable table, Object val, boolean selected, boolean hasFocus, int row, int column) {
-		this.fakeFocusFlag = selected || hasFocus;
-		if (this.comboBox == null) {
-			this.comboBox = this.buildComboBox();
-	
-			this.comboBox.setComponentOrientation(table.getComponentOrientation());
-			this.comboBox.setModel(this.model);
-			if (this.renderer != null) {
-				this.comboBox.setRenderer(this.renderer);
-			}
-			this.comboBox.setFont(table.getFont());
-			this.comboBox.setEnabled(table.isEnabled());
-			this.comboBox.setBorder(this.border(table, val, selected, hasFocus, row, column));
-		}
-
-		// We need to go through the model since JComboBox might prevent us from
-		// selecting the value. This can happen when the value is not contained
-		// in the model, see CR#3950044 for an example
-		this.model.setSelectedItem(val);
-
-		return this.comboBox;
-	}
-
-	/**
-	 * Return the cell's foreground color.
-	 */
-	protected Color foregroundColor(JTable table, Object val, boolean selected, boolean hasFocus, int row, int column) {
-		if (selected) {
-			if (hasFocus && table.isCellEditable(row, column)) {
-				return defaultForeground;
-			}
-			return table.getSelectionForeground();
-		}
-		return defaultForeground;
-	}
-
-	/**
-	 * Return the cell's background color.
-	 */
-	protected Color backgroundColor(JTable table, Object val, boolean selected, boolean hasFocus, int row, int column) {
-		if (selected) {
-			if (hasFocus && table.isCellEditable(row, column)) {
-				return defaultBackground;
-			}
-			return table.getSelectionBackground();
-		}
-		return defaultBackground;
-	}
-
-	/**
-	 * Return the cell's border.
-	 */
-	protected Border border(JTable table, Object val, boolean selected, boolean hasFocus, int row, int column) {
-		return hasFocus ?
-			UIManager.getBorder("Table.focusCellHighlightBorder")
-		:
-			NO_FOCUS_BORDER;
-	}
-
-
-	// ********** TableCellEditorAdapter.Renderer implementation **********
-
-	public Object getValue() {
-		return this.value;
-	}
-	
-	public void setImmediateEditListener(TableCellEditorAdapter.ImmediateEditListener listener) {
-		this.immediateEditListener = listener;
-	}
-
-
-	// ********** public API **********
-
-	/**
-	 * Return the renderer's preferred height. This allows you
-	 * to set the row height to something the combo-box will look good in....
-	 */
-	public int preferredHeight() {
-		return height;
-	}
-
-}
\ No newline at end of file
diff --git a/jpa/plugins/org.eclipse.jpt.utility/src/org/eclipse/jpt/utility/internal/swing/Displayable.java b/jpa/plugins/org.eclipse.jpt.utility/src/org/eclipse/jpt/utility/internal/swing/Displayable.java
deleted file mode 100644
index 64c0e3a..0000000
--- a/jpa/plugins/org.eclipse.jpt.utility/src/org/eclipse/jpt/utility/internal/swing/Displayable.java
+++ /dev/null
@@ -1,93 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2008 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.utility.internal.swing;
-
-import com.ibm.icu.text.Collator;
-import java.util.Comparator;
-import javax.swing.Icon;
-import org.eclipse.jpt.utility.model.Model;
-
-/**
- * Used by general-purpose UI models and renderers to cast
- * application model objects to something displayable.
- */
-public interface Displayable
-	extends Model, Comparable<Displayable>
-{
-
-	/**
-	 * Return a string that can be used to identify the model
-	 * in a textual UI setting (typically the object's name).
-	 * When the display string changes, the model should fire
-	 * the appropriate change notification:
-	 *     this.firePropertyChanged(DISPLAY_STRING_PROPERTY, oldDisplayString, this.displayString());
-	 */
-	String displayString();
-		String DISPLAY_STRING_PROPERTY = "displayString";
-
-	/**
-	 * Return an icon that can be used to identify the model
-	 * in a UI component that supports icons (the icon can be null).
-	 * When the icon changes, the model should fire
-	 * the appropriate change notification:
-	 *     this.firePropertyChanged(ICON_PROPERTY, oldIcon, this.icon());
-	 */
-	Icon icon();
-		String ICON_PROPERTY = "icon";
-
-
-	// ********** helper implementations **********
-
-	Collator DEFAULT_COLLATOR = Collator.getInstance();
-
-	/**
-	 * Since all displayable objects must be comparable, provide a
-	 * typical comparator that can be used to sort a collection of
-	 * displayable objects.
-	 * Sort based on display string:
-	 *     - identical objects are equal (which means they cannot
-	 *         co-exist in a SortedSet)
-	 *     - use the default collator (which typically interleaves
-	 *         lower- and upper-case letters)
-	 *     - allow duplicate display strings (from different objects)
-	 *     - try to return consistent results for same object pairs
-	 */
-	Comparator<Displayable> DEFAULT_COMPARATOR =
-		new Comparator<Displayable>() {
-			public int compare(Displayable d1, Displayable d2) {
-				// disallow duplicates based on object identity
-				if (d1 == d2) {
-					return 0;
-				}
-
-				// first compare display strings using the default collator
-				int result = DEFAULT_COLLATOR.compare(d1.displayString(), d2.displayString());
-				if (result != 0) {
-					return result;
-				}
-
-				// then compare using object-id
-				result = System.identityHashCode(d1) - System.identityHashCode(d2);
-				if (result != 0) {
-					return result;
-				}
-
-				// It's unlikely that we get to this point; but, just in case, we will return -1.
-				// Unfortunately, this introduces some mild unpredictability to the sort order
-				// (unless the objects are always passed into this method in the same order).
-				return -1;		// if all else fails, indicate that o1 < o2
-			}
-			@Override
-			public String toString() {
-				return "Displayable.DEFAULT_COMPARATOR";
-			}
-		};
-
-}
diff --git a/jpa/plugins/org.eclipse.jpt.utility/src/org/eclipse/jpt/utility/internal/swing/EmptyIcon.java b/jpa/plugins/org.eclipse.jpt.utility/src/org/eclipse/jpt/utility/internal/swing/EmptyIcon.java
deleted file mode 100644
index 148308e..0000000
--- a/jpa/plugins/org.eclipse.jpt.utility/src/org/eclipse/jpt/utility/internal/swing/EmptyIcon.java
+++ /dev/null
@@ -1,54 +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.utility.internal.swing;
-
-import java.awt.Component;
-import java.awt.Graphics;
-import javax.swing.Icon;
-
-/**
- * Implement the Icon interface with an icon that has a size but
- * does not paint anything on the graphics context.
- */
-public class EmptyIcon
-	implements Icon
-{
-	private final int width;
-	private final int height;
-
-	public static final EmptyIcon NULL_INSTANCE = new EmptyIcon(0);
-
-
-	public EmptyIcon(int width, int height) {
-		super();
-		this.width = width;
-		this.height = height;
-	}
-
-	public EmptyIcon(int size) {
-		this(size, size);
-	}
-
-
-	// ********** Icon implementation **********
-
-	public void paintIcon(Component c, Graphics g, int x, int y) {
-		// don't paint anything for an empty icon
-	}
-
-	public int getIconWidth() { 
-		return this.width;
-	}
-
-	public int getIconHeight() {
-		return this.height;
-	}
-
-}
diff --git a/jpa/plugins/org.eclipse.jpt.utility/src/org/eclipse/jpt/utility/internal/swing/FilteringListBrowser.java b/jpa/plugins/org.eclipse.jpt.utility/src/org/eclipse/jpt/utility/internal/swing/FilteringListBrowser.java
deleted file mode 100644
index d59f3e0..0000000
--- a/jpa/plugins/org.eclipse.jpt.utility/src/org/eclipse/jpt/utility/internal/swing/FilteringListBrowser.java
+++ /dev/null
@@ -1,140 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2008 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.utility.internal.swing;
-
-import javax.swing.Icon;
-import javax.swing.JComboBox;
-import javax.swing.JOptionPane;
-import javax.swing.ListModel;
-
-/**
- * This implementation of LongListComponent.Browser uses a
- * JOptionPane to prompt the user for the selection. The JOPtionPane
- * is passed a FilteringListPanel to assist the user in making
- * a selection.
- */
-public class FilteringListBrowser<T> 
-	implements ListChooser.ListBrowser 
-{
-	private FilteringListPanel<T> panel;
-
-	/**
-	 * Default constructor.
-	 */
-	public FilteringListBrowser() {
-		super();
-		this.panel = this.buildPanel();
-	}
-
-	protected FilteringListPanel<T> buildPanel() {
-		return new LocalFilteringListPanel<T>();
-	}
-
-	/**
-	 * Prompt the user using a JOptionPane with a filtering
-	 * list panel.
-	 */
-	public void browse(ListChooser chooser) {	
-		this.initializeCellRenderer(chooser);
-		
-		int option = 
-			JOptionPane.showOptionDialog(
-				chooser, 
-				this.message(chooser), 
-				this.title(chooser), 
-				this.optionType(chooser), 
-				this.messageType(chooser), 
-				this.icon(chooser), 
-				this.selectionValues(chooser), 
-				this.initialSelectionValue(chooser)
-		);
-		
-		if (option == JOptionPane.OK_OPTION) {
-			chooser.getModel().setSelectedItem(this.panel.selection());
-		}
-		
-		// clear the text field so the list box is re-filtered
-		this.panel.textField().setText("");
-	}
-	
-	protected void initializeCellRenderer(JComboBox comboBox) {
-		// default behavior should be to use the cell renderer from the combobox.
-		this.panel.listBox().setCellRenderer(comboBox.getRenderer());
-	}
-
-	/**
-	 * the message can be anything - here we build a component
-	 */
-	protected Object message(JComboBox comboBox) {
-		this.panel.setCompleteList(this.convertToArray(comboBox.getModel()));
-		this.panel.setSelection(comboBox.getModel().getSelectedItem());
-		return this.panel;
-	}
-
-	protected String title(JComboBox comboBox) {
-		return null;
-	}
-
-	protected int optionType(JComboBox comboBox) {
-		return JOptionPane.OK_CANCEL_OPTION;
-	}
-
-	protected int messageType(JComboBox comboBox) {
-		return JOptionPane.QUESTION_MESSAGE;
-	}
-
-	protected Icon icon(JComboBox comboBox) {
-		return null;
-	}
-
-	protected Object[] selectionValues(JComboBox comboBox) {
-		return null;
-	}
-
-	protected Object initialSelectionValue(JComboBox comboBox) {
-		return null;
-	}
-
-	/**
-	 * Convert the list of objects in the specified list model
-	 * into an array.
-	 */
-	protected Object[] convertToArray(ListModel model) {
-		int size = model.getSize();
-		Object[] result = new Object[size];
-		for (int i = 0; i < size; i++) {
-			result[i] = model.getElementAt(i);
-		}
-		return result;
-	}
-	
-	
-	// ********** custom panel **********
-	
-	protected static class LocalFilteringListPanel<S> extends FilteringListPanel<S> {
-		protected static final Object[] EMPTY_ARRAY = new Object[0];
-
-		protected LocalFilteringListPanel() {
-			super(EMPTY_ARRAY, null);
-		}
-	
-		/**
-		 * Disable the performance tweak because JOptionPane
-		 * will try open wide enough to disable the horizontal scroll bar;
-		 * and it looks a bit clumsy.
-		 */
-		@Override
-		protected String prototypeCellValue() {
-			return null;
-		}
-	
-	}
-
-}
diff --git a/jpa/plugins/org.eclipse.jpt.utility/src/org/eclipse/jpt/utility/internal/swing/FilteringListPanel.java b/jpa/plugins/org.eclipse.jpt.utility/src/org/eclipse/jpt/utility/internal/swing/FilteringListPanel.java
deleted file mode 100644
index ff17df3..0000000
--- a/jpa/plugins/org.eclipse.jpt.utility/src/org/eclipse/jpt/utility/internal/swing/FilteringListPanel.java
+++ /dev/null
@@ -1,455 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2008 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.utility.internal.swing;
-
-import java.awt.BorderLayout;
-import java.awt.Font;
-import javax.swing.AbstractListModel;
-import javax.swing.BorderFactory;
-import javax.swing.JLabel;
-import javax.swing.JList;
-import javax.swing.JPanel;
-import javax.swing.JScrollPane;
-import javax.swing.JTextField;
-import javax.swing.ListCellRenderer;
-import javax.swing.ListModel;
-import javax.swing.ListSelectionModel;
-import javax.swing.border.Border;
-import javax.swing.event.DocumentEvent;
-import javax.swing.event.DocumentListener;
-import org.eclipse.jpt.utility.internal.SimpleStringMatcher;
-import org.eclipse.jpt.utility.internal.StringConverter;
-import org.eclipse.jpt.utility.internal.StringMatcher;
-
-/**
- * This panel presents an entry field and a list box of choices that
- * allows the user to filter the entries in the list box by entering
- * a pattern in the entry field.
- * 
- * By default, two wildcards are allowed in the pattern:
- * 	'*' will match any set of zero or more characters
- * 	'?' will match any single character
- * 
- * The panel consists of 4 components that can be customized:
- * 	- 1 text field
- * 	- 1 list box
- * 	- 2 labels, one for each of the above
- * 
- * Other aspects of the panel's behavior can be changed:
- * 	- the string converter determines how the objects in the
- * 		list are converted to strings and compared to the pattern
- * 		entered in the text field; by default the converter simply
- * 		uses the result of the object's #toString() method
- * 		(if you replace the string converter, you will probably
- * 		want to replace the list box's cell renderer also)
- * 	- the string matcher can also be changed if you would
- * 		like different pattern matching behavior than that
- * 		described above
- * 	- you can specify the maximum size of the list - this may
- * 		force the user to enter a pattern restrictive enough
- * 		to result in a list smaller than the maximum size; the
- * 		default is -1, which disables the restriction
- * 
- * This panel is not a typical panel, in the sense that it does not share
- * its model with clients via value models. Instead, this panel's model
- * is set and queried directly because it is designed to be used in a
- * dialog that directs the user's behavior (as opposed to a "normal"
- * window).
- */
-public class FilteringListPanel<T> extends JPanel {
-
-	/**
-	 * The complete list of available choices
-	 * (as opposed to the partial list held by the list box).
-	 */
-	private Object[] completeList;
-
-	/**
-	 * An adapter used to convert the objects in the list
-	 * to strings so they can be run through the matcher
-	 * and displayed in the text field.
-	 */
-	StringConverter<T> stringConverter;
-
-	/** The text field. */
-	private JTextField textField;
-	private JLabel textFieldLabel;
-	private DocumentListener textFieldListener;
-
-	/** The list box. */
-	private JList listBox;
-	private JLabel listBoxLabel;
-
-	/** The maximum number of entries displayed in the list box. */
-	private int maxListSize;
-
-	/**
-	 * The matcher used to filter the list against
-	 * the pattern entered in the text field. By default,
-	 * this allows the two wildcard characters described in
-	 * the class comment.
-	 */
-	private StringMatcher stringMatcher;
-
-	/**
-	 * Performance tweak: We use this buffer instead of
-	 * a temporary variable during filtering so we don't have
-	 * to keep re-allocating it.
-	 */
-	private Object[] buffer;
-
-	private static final Border TEXT_FIELD_LABEL_BORDER = BorderFactory.createEmptyBorder(0, 0, 5, 0);
-	private static final Border LIST_BOX_LABEL_BORDER = BorderFactory.createEmptyBorder(5, 0, 5, 0);
-
-
-	// ********** constructors **********
-
-	/**
-	 * Construct a FilteringListPanel with the specified list of choices
-	 * and initial selection. Use the default string converter to convert the
-	 * choices and selection to strings (which simply calls #toString() on
-	 * the objects).
-	 */
-	public FilteringListPanel(Object[] completeList, Object initialSelection) {
-		this(completeList, initialSelection, StringConverter.Default.<T>instance());
-	}
-
-	/**
-	 * Construct a FilteringListPanel with the specified list of choices
-	 * and initial selection. Use the specified string converter to convert the
-	 * choices and selection to strings.
-	 */
-	public FilteringListPanel(Object[] completeList, Object initialSelection, StringConverter<T> stringConverter) {
-		super(new BorderLayout());
-		this.completeList = completeList;
-		this.stringConverter = stringConverter;
-		this.initialize(initialSelection);
-	}
-
-
-	// ********** initialization **********
-
-	private void initialize(Object initialSelection) {
-		this.maxListSize = this.defaultMaxListSize();
-		this.buffer = this.buildBuffer();
-
-		this.textFieldListener = this.buildTextFieldListener();
-
-		this.stringMatcher = this.buildStringMatcher();
-
-		this.initializeLayout(initialSelection);
-	}
-
-	private Object[] buildBuffer() {
-		return new Object[this.max()];
-	}
-
-	/**
-	 * Return the current max number of entries allowed in the list box.
-	 */
-	private int max() {
-		if (this.maxListSize == -1) {
-			return this.completeList.length;
-		}
-		return Math.min(this.maxListSize, this.completeList.length);
-	}
-
-	/**
-	 * Build a listener that will listen to changes in the text field
-	 * and filter the list appropriately.
-	 */
-	private DocumentListener buildTextFieldListener() {
-		return new DocumentListener() {
-			public void insertUpdate(DocumentEvent e) {
-				FilteringListPanel.this.filterList();
-			}
-			public void changedUpdate(DocumentEvent e) {
-				FilteringListPanel.this.filterList();
-			}
-			public void removeUpdate(DocumentEvent e) {
-				FilteringListPanel.this.filterList();
-			}
-			@Override
-			public String toString() {
-				return "text field listener";
-			}
-		};
-	}
-
-	private int defaultMaxListSize() {
-		return -1;
-	}
-
-	private StringMatcher buildStringMatcher() {
-		return new SimpleStringMatcher<T>();
-	}
-
-	private void initializeLayout(Object initialSelection) {
-		// text field
-		JPanel textFieldPanel = new JPanel(new BorderLayout());
-		this.textFieldLabel = new JLabel();
-		this.textFieldLabel.setBorder(TEXT_FIELD_LABEL_BORDER);
-		textFieldPanel.add(this.textFieldLabel, BorderLayout.NORTH);
-
-		this.textField = new JTextField();
-		this.textField.getDocument().addDocumentListener(this.textFieldListener);
-		this.textFieldLabel.setLabelFor(this.textField);
-		textFieldPanel.add(this.textField, BorderLayout.CENTER);
-
-		this.add(textFieldPanel, BorderLayout.NORTH);
-
-		// list box
-		JPanel listBoxPanel = new JPanel(new BorderLayout());
-		this.listBoxLabel = new JLabel();
-		this.listBoxLabel.setBorder(LIST_BOX_LABEL_BORDER);
-		listBoxPanel.add(this.listBoxLabel, BorderLayout.NORTH);
-
-		this.listBox = new JList();
-		this.listBox.setDoubleBuffered(true);
-		this.listBox.setModel(this.buildPartialArrayListModel(this.completeList, this.max()));
-		this.listBox.getSelectionModel().setSelectionMode(ListSelectionModel.SINGLE_SELECTION);
-		// performance tweak(?)
-		this.listBox.setPrototypeCellValue(this.prototypeCellValue());
-		this.listBox.setPrototypeCellValue(null);
-		this.listBox.setCellRenderer(this.buildDefaultCellRenderer());
-		this.listBoxLabel.setLabelFor(this.listBox);
-		// bug 2777802 - scroll bars shouldn't be on the tab sequence
-		JScrollPane listBoxScrollPane = new JScrollPane(this.listBox);
-		listBoxScrollPane.getHorizontalScrollBar().setFocusable(false);
-		listBoxScrollPane.getVerticalScrollBar().setFocusable(false);
-		listBoxPanel.add(listBoxScrollPane, BorderLayout.CENTER);
-
-		// initialize the widgets
-		this.listBox.setSelectedValue(initialSelection, true);
-		this.textField.select(0, this.textField.getText().length());
-
-		this.add(listBoxPanel, BorderLayout.CENTER);
-	}
-
-
-	// ********** public API **********
-
-	public Object selection() {
-		return this.listBox.getSelectedValue();
-	}
-
-	public void setSelection(Object selection) {
-		this.listBox.setSelectedValue(selection, true);
-	}
-
-	public Object[] completeList() {
-		return this.completeList;
-	}
-
-	/**
-	 * rebuild the filtering buffer and re-apply the filter
-	 * to the new list
-	 */
-	public void setCompleteList(Object[] completeList) {
-		this.completeList = completeList;
-		if (this.buffer.length < this.max()) {
-			// the buffer will never shrink - might want to re-consider...  ~bjv
-			this.buffer = this.buildBuffer();
-		}
-		this.filterList();
-	}
-
-	public int maxListSize() {
-		return this.maxListSize;
-	}
-
-	public void setMaxListSize(int maxListSize) {
-		this.maxListSize = maxListSize;
-		if (this.buffer.length < this.max()) {
-			// the buffer will never shrink - might want to re-consider...  ~bjv
-			this.buffer = this.buildBuffer();
-		}
-		this.filterList();
-	}
-
-	public StringConverter<T> stringConverter() {
-		return this.stringConverter;
-	}
-
-	/**
-	 * apply the new filter to the list
-	 */
-	public void setStringConverter(StringConverter<T> stringConverter) {
-		this.stringConverter = stringConverter;
-		this.filterList();
-	}
-
-	/**
-	 * allow client code to access the text field
-	 * (so we can set the focus)
-	 */
-	public JTextField textField() {
-		return this.textField;
-	}
-
-	/**
-	 * allow client code to access the text field label
-	 */
-	public JLabel textFieldLabel() {
-		return this.textFieldLabel;
-	}
-
-	/**
-	 * convenience method
-	 */
-	public void setTextFieldLabelText(String text) {
-		this.textFieldLabel.setText(text);
-	}
-
-	/**
-	 * allow client code to access the list box
-	 * (so we can add mouse listeners for double-clicking)
-	 */
-	public JList listBox() {
-		return this.listBox;
-	}
-
-	/**
-	 * convenience method
-	 */
-	public void setListBoxCellRenderer(ListCellRenderer renderer) {
-		this.listBox.setCellRenderer(renderer);
-	}
-
-	/**
-	 * allow client code to access the list box label
-	 */
-	public JLabel listBoxLabel() {
-		return this.listBoxLabel;
-	}
-
-	/**
-	 * convenience method
-	 */
-	public void setListBoxLabelText(String text) {
-		this.listBoxLabel.setText(text);
-	}
-
-	/**
-	 * convenience method
-	 */
-	public void setComponentsFont(Font font) {
-		this.textFieldLabel.setFont(font);
-		this.textField.setFont(font);
-		this.listBoxLabel.setFont(font);
-		this.listBox.setFont(font);
-	}
-
-	public StringMatcher stringMatcher() {
-		return this.stringMatcher;
-	}
-
-	/**
-	 * re-apply the filter to the list
-	 */
-	public void setStringMatcher(StringMatcher stringMatcher) {
-		this.stringMatcher = stringMatcher;
-		this.filterList();
-	}
-
-
-	// ********** internal methods **********
-
-	/**
-	 * Allow subclasses to disable performance tweak
-	 * by returning null here.
-	 */
-	protected String prototypeCellValue() {
-		return "==========> A_STRING_THAT_IS_DEFINITELY_LONGER_THAN_EVERY_STRING_IN_THE_LIST <==========";
-	}
-
-	/**
-	 * By default, use the string converter to build the text
-	 * used by the list box's cell renderer.
-	 */
-	protected ListCellRenderer buildDefaultCellRenderer() {
-		return new SimpleListCellRenderer() {
-			@Override
-			@SuppressWarnings("unchecked")
-			protected String buildText(Object value) {
-				return FilteringListPanel.this.stringConverter.convertToString((T) value);
-			}
-		};
-	}
-
-	/**
-	 * Something has changed that requires us to filter the list.
-	 * 
-	 * This method is synchronized because a fast typist can
-	 * generate events quicker than we can filter the list. (?  ~bjv)
-	 */
-	synchronized void filterList() {
-		// temporarily stop listening to the list box selection, since we will
-		// be changing the selection during the filtering and don't want
-		// that to affect the text field
-		this.filterList(this.textField.getText());
-	}
-
-	/**
-	 * Filter the contents of the list box to match the
-	 * specified pattern.
-	 */
-	private void filterList(String pattern) {
-		if (pattern.length() == 0) {
-			this.listBox.setModel(this.buildPartialArrayListModel(this.completeList, this.max()));
-		} else {
-			this.stringMatcher.setPatternString(pattern);
-			int j = 0;
-			int len = this.completeList.length;
-			int max = this.max();
-			for (int i = 0; i < len; i++) {
-				if (this.stringMatcher.matches(this.stringConverter.convertToString(this.entry(i)))) {
-					this.buffer[j++] = this.completeList[i];
-				}
-				if (j == max) {
-					break;
-				}
-			}
-			this.listBox.setModel(this.buildPartialArrayListModel(this.buffer, j));
-		}
-
-		// after filtering the list, determine the appropriate selection
-		if (this.listBox.getModel().getSize() == 0) {
-			this.listBox.getSelectionModel().clearSelection();
-		} else {
-			this.listBox.getSelectionModel().setAnchorSelectionIndex(0);
-			this.listBox.getSelectionModel().setLeadSelectionIndex(0);
-			this.listBox.ensureIndexIsVisible(0);
-		}
-	}
-
-	/**
-	 * minimize scope of suppressed warnings
-	 */
-	@SuppressWarnings("unchecked")
-	private T entry(int index) {
-		return (T) this.completeList[index];
-	}
-
-	/**
-	 * Build a list model that wraps only a portion of the specified array.
-	 * The model will include the array entries from 0 to (size - 1).
-	 */
-	private ListModel buildPartialArrayListModel(final Object[] array, final int size) {
-		return new AbstractListModel() {
-			public int getSize() {
-				return size;
-			}
-			public Object getElementAt(int index) {
-				return array[index];
-			}
-		};
-	}
-}
diff --git a/jpa/plugins/org.eclipse.jpt.utility/src/org/eclipse/jpt/utility/internal/swing/ListChooser.java b/jpa/plugins/org.eclipse.jpt.utility/src/org/eclipse/jpt/utility/internal/swing/ListChooser.java
deleted file mode 100644
index 9abc2e5..0000000
--- a/jpa/plugins/org.eclipse.jpt.utility/src/org/eclipse/jpt/utility/internal/swing/ListChooser.java
+++ /dev/null
@@ -1,425 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2008 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.utility.internal.swing;
-
-import java.awt.AWTEvent;
-import java.awt.AWTException;
-import java.awt.Component;
-import java.awt.EventQueue;
-import java.awt.Point;
-import java.awt.Robot;
-import java.awt.event.KeyAdapter;
-import java.awt.event.KeyEvent;
-import java.awt.event.KeyListener;
-import java.awt.event.MouseEvent;
-import javax.swing.ComboBoxModel;
-import javax.swing.DefaultListCellRenderer;
-import javax.swing.JButton;
-import javax.swing.JComboBox;
-import javax.swing.JComponent;
-import javax.swing.JLabel;
-import javax.swing.JList;
-import javax.swing.ListCellRenderer;
-import javax.swing.SwingConstants;
-import javax.swing.event.PopupMenuEvent;
-import javax.swing.event.PopupMenuListener;
-import javax.swing.plaf.basic.BasicComboBoxUI;
-import org.eclipse.jpt.utility.internal.ClassTools;
-
-/**
- * This component provides a way to handle selecting an item from a
- * list that may grow too large to be handled conveniently by a combo-box. 
- * If the list's size is less than the designated "long" list size, 
- * the choice list will be displayed in a normal combo-box popup; 
- * otherwise, a dialog will be used to prompt the user to choose a selection.
- * 
- * To change the browse mechanism, subclasses may 
- * 	- override the method #buildBrowser()
- *  - override the method #browse(), in which case the method 
- * 		#buildBrowser() may be ignored.
- */
-public class ListChooser 
-	extends JComboBox
-{
-	
-	/** the size of a "long" list - anything smaller is a "short" list */
-	int longListSize = DEFAULT_LONG_LIST_SIZE;
-	
-	/** the default size of a "long" list, which is 20 (to match JOptionPane's behavior) */
-	public static final int DEFAULT_LONG_LIST_SIZE = 20;
-	
-	/** property change associated with long list size */
-	public static final String LONG_LIST_SIZE_PROPERTY = "longListSize";
-	
-    static JLabel prototypeLabel = new JLabel("Prototype", new EmptyIcon(17), SwingConstants.LEADING);
-
-    /** 
-	 * whether the chooser is choosable.  if a chooser is not choosable,
-	 * it only serves as a display widget.  a user may not change its 
-	 * selected value.
-	 */
-	boolean choosable = true;
-	
-	/** property change associated with choosable */
-	public static final String CHOOSABLE_PROPERTY = "choosable";
-	
-	/** the browser used to make a selection from the long list - typically via a dialog */
-	private ListBrowser browser;
-	
-    private NodeSelector nodeSelector;
-    
-	/** INTERNAL - The popup is being shown.  Used to prevent infinite loop. */
-	boolean popupAlreadyInProgress;
-	
-	
-	// **************** Constructors ******************************************
-	
-	/**
-	 * Construct a list chooser for the specified model.
-	 */
-	public ListChooser(ComboBoxModel model) {
-		this(model, new NodeSelector.DefaultNodeSelector());
-	}
-	
-    public ListChooser(CachingComboBoxModel model) {
-        this(model, new NodeSelector.DefaultNodeSelector());
-    }
-    
-	public ListChooser(ComboBoxModel model, NodeSelector nodeSelector) {
-        this(new NonCachingComboBoxModel(model), nodeSelector);
-    }
-    
-    public ListChooser(CachingComboBoxModel model, NodeSelector nodeSelector) {
-        super(model);
-        this.initialize();
-        this.nodeSelector = nodeSelector;
-    }
-	// **************** Initialization ****************************************
-	
-	protected void initialize() {
-		this.addPopupMenuListener(this.buildPopupMenuListener());
-		this.setRenderer(new DefaultListCellRenderer());
-        this.addKeyListener(buildF3KeyListener());
-        
-        //These are used to workaround problems with Swing trying to 
-        //determine the size of a comboBox with a large model
-        setPrototypeDisplayValue(prototypeLabel);
-        listBox().setPrototypeCellValue(prototypeLabel);
-	}
-	
-    
-    private JList listBox() {
-        return (JList) ClassTools.fieldValue(this.ui, "listBox");
-    }
-    
-	/** 
-	 * When the popup is about to be shown, the event is consumed, and 
-	 * PopupHandler determines whether to reshow the popup or to show
-	 * the long list browser.
-	 */
-	private PopupMenuListener buildPopupMenuListener() {
-		return new PopupMenuListener() {
-			public void popupMenuWillBecomeVisible(PopupMenuEvent e) {
-				ListChooser.this.aboutToShowPopup();
-			}
-			public void popupMenuWillBecomeInvisible(PopupMenuEvent e) {
-				// do nothing
-			}
-			public void popupMenuCanceled(PopupMenuEvent e) {
-				// do nothing
-			}
-			@Override
-			public String toString() {
-				return "pop-up menu listener";
-			}
-		};
-	}
-	
-	/**
-	 * If this code is being reached due to the PopupHandler already being in progress,
-	 * then do nothing.  Otherwise, set the flag to true and launch the PopupHandler.
-	 */
-	void aboutToShowPopup() {
-		if (this.popupAlreadyInProgress) {
-			return;
-		}
-		
-		this.popupAlreadyInProgress = true;
-		EventQueue.invokeLater(new PopupHandler());
-	}
- 
-    
-	private KeyListener buildF3KeyListener() {
-        return new KeyAdapter() {
-            @Override
-			public void keyPressed(KeyEvent e) {
-                if (e.getKeyCode() == KeyEvent.VK_F3) {
-                    goToSelectedItem();
-                }                
-            }
-			@Override
-			public String toString() {
-				return "F3 key listener";
-			}
-        };
-    }
-    
-    public void goToSelectedItem() {
-        if (getSelectedItem() != null) {
-            ListChooser.this.nodeSelector.selectNodeFor(getSelectedItem());
-        }
-    }
-    
-	// **************** Browsing **********************************************
-	
-	/** 
-	 * Lazily initialize because subclasses may have further initialization to do
-	 * before browser can be built.
-	 */
-	protected void browse() {
-		if (this.browser == null) {
-			this.browser = this.buildBrowser();
-		}
-		
-		this.browser.browse(this);
-	}
-	
-	/**
-	 * Return the "browser" used to make a selection from the long list,
-	 * typically via a dialog.
-	 */
-	protected ListChooser.ListBrowser buildBrowser() {
-		return new SimpleListBrowser();
-	}
-	
-	
-	// **************** Choosable functionality *******************************
-	
-	/** override behavior - consume selection if chooser is not choosable */
-	@Override
-	public void setSelectedIndex(int anIndex) {
-		if (this.choosable) {
-			super.setSelectedIndex(anIndex);
-		}
-	}
-	
-	private void updateArrowButton() {
-		try {
-			BasicComboBoxUI comboBoxUi = (BasicComboBoxUI) ListChooser.this.getUI();
-			JButton arrowButton = (JButton) ClassTools.fieldValue(comboBoxUi, "arrowButton");
-			arrowButton.setEnabled(this.isEnabled() && this.choosable);
-		}
-		catch (Exception e) {
-			// this is a huge hack to try and make the combo box look right,
-			// so if it doesn't work, just swallow the exception
-		}
-	}
-	
-	
-    // **************** List Caching *******************************
-
-    void cacheList() {
-        ((CachingComboBoxModel) getModel()).cacheList();
-    }
-    
-    void uncacheList() {
-        ((CachingComboBoxModel) getModel()).uncacheList();
-    }
-
-    boolean listIsCached() {
-        return ((CachingComboBoxModel) getModel()).isCached();
-    }
-    
-	// **************** Public ************************************************
-	
-	public int longListSize() {
-		return this.longListSize;
-	}
-	
-	public void setLongListSize(int newLongListSize) {
-		int oldLongListSize = this.longListSize;
-		this.longListSize = newLongListSize;
-		this.firePropertyChange(LONG_LIST_SIZE_PROPERTY, oldLongListSize, newLongListSize);
-	}
-	
-	public boolean isChoosable() {
-		return this.choosable;
-	}
-	
-	public void setChoosable(boolean newValue) {
-		boolean oldValue = this.choosable;
-		this.choosable = newValue;
-		this.firePropertyChange(CHOOSABLE_PROPERTY, oldValue, newValue);
-		this.updateArrowButton();
-	}
-	
-	// **************** Handle selecting null as a value **********************
-
-	private boolean selectedIndexIsNoneSelectedItem(int index) {
-		return index == -1 &&
-				 getModel().getSize() > 0 &&
-				 getModel().getElementAt(0) == null;
-	}
-
-	@Override
-	public int getSelectedIndex() {
-        boolean listNotCached = !listIsCached();
-        if (listNotCached) {
-            cacheList();
-        }
-        
-		int index = super.getSelectedIndex();
-
-		// Use index 0 to show the <none selected> item since the actual value is
-		// null and JComboBox does not handle null values
-		if (selectedIndexIsNoneSelectedItem(index)) {
-			index = 0;
-        }
-
-        if (listNotCached) {
-            uncacheList();
-        }
-		return index;
-   }
-	
-	//wrap the renderer to deal with the prototypeDisplayValue
-    @Override
-	public void setRenderer(final ListCellRenderer aRenderer) {
-        super.setRenderer(new ListCellRenderer(){
-            public Component getListCellRendererComponent(JList list, Object value, int index, boolean isSelected, boolean cellHasFocus) {
-                if (value == prototypeLabel) {
-                    return prototypeLabel;
-                }
-                return aRenderer.getListCellRendererComponent(list, value, index, isSelected, cellHasFocus);
-            }
-        });
-    }
-    
-    
-	// **************** Member classes ****************************************
-	
-	/**
-	 * Define the API required by this ListChooser when it must
-	 * prompt the user to select an item from the "long" list.
-	 */
-	public interface ListBrowser 
-	{
-		/**
-		 * Prompt the user to make a selection from the specified
-		 * combo-box's model.
-		 */
-		void browse(ListChooser parentChooser);
-	}
-	
-	
-	/**
-	 * Runnable class that consumes popup window and determines whether
-	 * to reshow popup or to launch browser, based on the size of the list.
-	 */
-	private class PopupHandler
-		implements Runnable
-	{
-		/** The mouse event */
-		private MouseEvent lastMouseEvent;
-		
-		/** The component from which the last mouse event was thrown */
-		private JComponent eventComponent;
-		
-		/** The location of the component at the time the last mouse event was thrown */
-		private Point componentLocation;
-		
-		/** The location of the mouse at the time the last mouse event was thrown */
-		private Point mouseLocation;
-		
-		
-		PopupHandler() {
-			this.initialize();
-		}
-		
-		private void initialize() {
-			AWTEvent event = EventQueue.getCurrentEvent();
-			
-			if (event instanceof MouseEvent) {
-				this.lastMouseEvent = (MouseEvent) event;
-				this.eventComponent = (JComponent) this.lastMouseEvent.getSource();
-				this.componentLocation = this.eventComponent.getLocationOnScreen();
-				this.mouseLocation = this.lastMouseEvent.getPoint();
-			}
-			else {
-				this.eventComponent = null;
-				this.componentLocation = null;
-				this.mouseLocation = null;
-			}
-		}
-		
-		public void run() {
-			ListChooser.this.hidePopup();
-			
-            cacheList();
-			if (ListChooser.this.choosable == true) {
-				// If the combo box model is of sufficient length, the browser will be shown.
-				// Asking the combo box model for its size should be enough to ensure that 
-				//  its size is recalculated.
-				if (ListChooser.this.getModel().getSize() > ListChooser.this.longListSize) {
-					this.checkComboBoxButton();
-					ListChooser.this.browse();
-				}
-				else {
-					ListChooser.this.showPopup();
-					this.checkMousePosition();
-				}
-			}
-            if (listIsCached()) {
-                uncacheList();
-            }
-			
-			ListChooser.this.popupAlreadyInProgress = false;
-		}
-		
-		/** If this is not done, the button never becomes un-pressed */
-		private void checkComboBoxButton() {
-			try {
-				BasicComboBoxUI comboBoxUi = (BasicComboBoxUI) ListChooser.this.getUI();
-				JButton arrowButton = (JButton) ClassTools.fieldValue(comboBoxUi, "arrowButton");
-				arrowButton.getModel().setPressed(false);
-			}
-			catch (Exception e) {
-				// this is a huge hack to try and make the combo box look right,
-				// so if it doesn't work, just swallow the exception
-			}
-		}
-		
-		/**
-		 * Moves the mouse back to its original position before any jiggery pokery that we've done.
-		 */
-		private void checkMousePosition() {
-			if (this.eventComponent == null) {
-				return;
-			}
-			
-			final Point newComponentLocation = this.eventComponent.getLocationOnScreen();
-			boolean componentMoved = 
-				newComponentLocation.x - this.componentLocation.x != 0
-				|| newComponentLocation.y - this.componentLocation.y != 0;
-			
-			if (componentMoved) {
-				try {
-					new Robot().mouseMove(
-						newComponentLocation.x + this.mouseLocation.x,
-						newComponentLocation.y + this.mouseLocation.y
-					);
-				}
-				catch (AWTException ex) {
-					// move failed - do nothing
-				}
-			}
-		}
-	}
-}
diff --git a/jpa/plugins/org.eclipse.jpt.utility/src/org/eclipse/jpt/utility/internal/swing/NodeSelector.java b/jpa/plugins/org.eclipse.jpt.utility/src/org/eclipse/jpt/utility/internal/swing/NodeSelector.java
deleted file mode 100644
index f8b4d14..0000000
--- a/jpa/plugins/org.eclipse.jpt.utility/src/org/eclipse/jpt/utility/internal/swing/NodeSelector.java
+++ /dev/null
@@ -1,32 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.utility.internal.swing;
-
-/**
- * This will be called when the user presses F3 or chooses
- * 'Go To' in the context menu
- */
-public interface NodeSelector 
-{       
-    /**
-     * Select the appropriate Node in the tree or the editor panel.
-     */
-    void selectNodeFor(Object item);
-    
-    /**
-     * This NodeSelector will do nothing when selectNodeFor(Object) is called
-     */
-    class DefaultNodeSelector implements NodeSelector {
-        
-        public void selectNodeFor(Object item) {
-            //default is to do nothing
-        }
-    }
-}
\ No newline at end of file
diff --git a/jpa/plugins/org.eclipse.jpt.utility/src/org/eclipse/jpt/utility/internal/swing/NonCachingComboBoxModel.java b/jpa/plugins/org.eclipse.jpt.utility/src/org/eclipse/jpt/utility/internal/swing/NonCachingComboBoxModel.java
deleted file mode 100644
index ee72264..0000000
--- a/jpa/plugins/org.eclipse.jpt.utility/src/org/eclipse/jpt/utility/internal/swing/NonCachingComboBoxModel.java
+++ /dev/null
@@ -1,73 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.utility.internal.swing;
-
-import javax.swing.ComboBoxModel;
-import javax.swing.event.ListDataListener;
-
-/**
- * This implementation of the CachingComboBoxModel interface can be used
- * whenever there is no need for caching (i.e. the contents of the selection
- * list can be generated with little latency). All the normal ComboBoxModel
- * behavior is delegated to a client-supplied ComboBoxModel.
- */
-public class NonCachingComboBoxModel implements CachingComboBoxModel {
-	private ComboBoxModel wrappedComboBoxModel;
-
-	public NonCachingComboBoxModel(ComboBoxModel wrappedComboBoxModel) {
-		this.wrappedComboBoxModel = wrappedComboBoxModel;
-	}
-
-
-	// ********** CachingComboBoxModel implementation **********
-
-	public void cacheList() {
-		//do nothing
-	}
-
-	public void uncacheList() {
-		//do nothing
-	}
-
-	public boolean isCached() {
-		return false;
-	}
-
-
-	// ********** ComboBoxModel implementation **********
-
-	public void setSelectedItem(Object anItem) {
-		this.wrappedComboBoxModel.setSelectedItem(anItem);
-	}
-
-	public Object getSelectedItem() {
-		return this.wrappedComboBoxModel.getSelectedItem();
-	}
-
-
-	// ********** ListModel implementation **********
-
-	public int getSize() {
-		return this.wrappedComboBoxModel.getSize();
-	}
-
-	public Object getElementAt(int index) {
-		return this.wrappedComboBoxModel.getElementAt(index);
-	}
-
-	public void addListDataListener(ListDataListener l) {
-		this.wrappedComboBoxModel.addListDataListener(l);
-	}
-
-	public void removeListDataListener(ListDataListener l) {
-		this.wrappedComboBoxModel.removeListDataListener(l);
-	}  
-
-}
diff --git a/jpa/plugins/org.eclipse.jpt.utility/src/org/eclipse/jpt/utility/internal/swing/SimpleDisplayable.java b/jpa/plugins/org.eclipse.jpt.utility/src/org/eclipse/jpt/utility/internal/swing/SimpleDisplayable.java
deleted file mode 100644
index 8d5aa45..0000000
--- a/jpa/plugins/org.eclipse.jpt.utility/src/org/eclipse/jpt/utility/internal/swing/SimpleDisplayable.java
+++ /dev/null
@@ -1,177 +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.utility.internal.swing;
-
-import javax.swing.Icon;
-import org.eclipse.jpt.utility.internal.model.AbstractModel;
-
-/**
- * This implementation of Displayable converts any Object
- * to a Displayable. Subclass it to override #displayString() and
- * #icon() if necessary. Change notification will be fired if the
- * object is changed.
- * 
- * This can be used for Strings - the display string
- * will simply be the String itself.
- */
-public class SimpleDisplayable
-	extends AbstractModel
-	implements Displayable
-{
-	/** The object to be converted to a Displayable. */
-	protected Object object;
-
-
-	/**
-	 * Construct a displayable for the specified object.
-	 */
-	public SimpleDisplayable(Object object) {
-		super();
-		this.object = object;
-	}
-
-	public SimpleDisplayable(boolean b) {
-		this(Boolean.valueOf(b));
-	}
-
-	public SimpleDisplayable(char c) {
-		this(new Character(c));
-	}
-
-	public SimpleDisplayable(byte b) {
-		this(new Byte(b));
-	}
-
-	public SimpleDisplayable(short s) {
-		this(new Short(s));
-	}
-
-	public SimpleDisplayable(int i) {
-		this(new Integer(i));
-	}
-
-	public SimpleDisplayable(long l) {
-		this(new Long(l));
-	}
-
-	public SimpleDisplayable(float f) {
-		this(new Float(f));
-	}
-
-	public SimpleDisplayable(double d) {
-		this(new Double(d));
-	}
-
-
-	// ********** Displayable implementation **********
-
-	public String displayString() {
-		return this.object.toString();
-	}
-
-	public Icon icon() {
-		return null;
-	}
-
-
-	// ********** Comparable implementation **********
-
-	public int compareTo(Displayable o) {
-		return DEFAULT_COMPARATOR.compare(this, o);
-	}
-
-
-	// ********** accessors **********
-
-	public Object getObject() {
-		return this.object;
-	}
-
-	public void setObject(Object object) {
-		String oldDisplayString = this.displayString();
-		Icon oldIcon = this.icon();
-		this.object = object;
-		this.firePropertyChanged(DISPLAY_STRING_PROPERTY, oldDisplayString, this.displayString());
-		this.firePropertyChanged(ICON_PROPERTY, oldIcon, this.icon());
-	}
-
-	public boolean getBoolean() {
-		return ((Boolean) this.object).booleanValue();
-	}
-
-	public void setBoolean(boolean b) {
-		this.setObject(Boolean.valueOf(b));
-	}
-
-	public char getChar() {
-		return ((Character) this.object).charValue();
-	}
-
-	public void setChar(char c) {
-		this.setObject(new Character(c));
-	}
-
-	public byte getByte() {
-		return ((Byte) this.object).byteValue();
-	}
-
-	public void setByte(byte b) {
-		this.setObject(new Byte(b));
-	}
-
-	public short getShort() {
-		return ((Short) this.object).shortValue();
-	}
-
-	public void setShort(short s) {
-		this.setObject(new Short(s));
-	}
-
-	public int getInt() {
-		return ((Integer) this.object).intValue();
-	}
-
-	public void setInt(int i) {
-		this.setObject(new Integer(i));
-	}
-
-	public long getLong() {
-		return ((Long) this.object).longValue();
-	}
-
-	public void setLong(long l) {
-		this.setObject(new Long(l));
-	}
-
-	public float getFloat() {
-		return ((Float) this.object).floatValue();
-	}
-
-	public void setFloat(float f) {
-		this.setObject(new Float(f));
-	}
-
-	public double getDouble() {
-		return ((Double) this.object).doubleValue();
-	}
-
-	public void setDouble(double d) {
-		this.setObject(new Double(d));
-	}
-
-
-	// ********** override methods **********
-
-	@Override
-	public void toString(StringBuilder sb) {
-		sb.append(this.object);
-	}
-
-}
diff --git a/jpa/plugins/org.eclipse.jpt.utility/src/org/eclipse/jpt/utility/internal/swing/SimpleListBrowser.java b/jpa/plugins/org.eclipse.jpt.utility/src/org/eclipse/jpt/utility/internal/swing/SimpleListBrowser.java
deleted file mode 100644
index 7215c6a..0000000
--- a/jpa/plugins/org.eclipse.jpt.utility/src/org/eclipse/jpt/utility/internal/swing/SimpleListBrowser.java
+++ /dev/null
@@ -1,86 +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.utility.internal.swing;
-
-import javax.swing.Icon;
-import javax.swing.JComboBox;
-import javax.swing.JOptionPane;
-import javax.swing.ListModel;
-
-/**
- * This implementation of ListChooser.Browser uses a
- * JOptionPane to prompt the user for the selection. Subclasses 
- * can change the dialog's title, message, and/or icon.
- */
-public class SimpleListBrowser
-	implements ListChooser.ListBrowser 
-{
-	/** Default constructor */
-	protected SimpleListBrowser() {
-		super();
-	}
-	
-	/**
-	 * Prompt the user using a JOptionPane.
-	 */
-	public void browse(ListChooser chooser) {
-		Object selection = 
-			JOptionPane.showInputDialog(
-				chooser, 
-				this.message(chooser), 
-				this.title(chooser), 
-				this.messageType(chooser), 
-				this.icon(chooser), 
-				this.selectionValues(chooser), 
-				this.initialSelectionValue(chooser)
-			);
-		
-		if (selection != null) {
-			chooser.getModel().setSelectedItem(selection);
-		}
-	}
-	
-	protected Object message(JComboBox comboBox) {
-		return null;
-	}
-	
-	protected String title(JComboBox comboBox) {
-		return null;
-	}
-	
-	protected int messageType(JComboBox comboBox) {
-		return JOptionPane.QUESTION_MESSAGE;
-	}
-	
-	protected Icon icon(JComboBox comboBox) {
-		return null;
-	}
-	
-	protected Object[] selectionValues(JComboBox comboBox) {
-		return this.convertToArray(comboBox.getModel());
-	}
-	
-	protected Object initialSelectionValue(JComboBox comboBox) {
-		return comboBox.getModel().getSelectedItem();
-	}
-	
-	/**
-	 * Convert the list of objects in the specified list model
-	 * into an array.
-	 */
-	protected Object[] convertToArray(ListModel model) {
-		int size = model.getSize();
-		Object[] result = new Object[size];
-		for (int i = 0; i < size; i++) {
-			result[i] = model.getElementAt(i);
-		}
-		return result;
-	}
-}
diff --git a/jpa/plugins/org.eclipse.jpt.utility/src/org/eclipse/jpt/utility/internal/swing/SimpleListCellRenderer.java b/jpa/plugins/org.eclipse.jpt.utility/src/org/eclipse/jpt/utility/internal/swing/SimpleListCellRenderer.java
deleted file mode 100644
index ea649ba..0000000
--- a/jpa/plugins/org.eclipse.jpt.utility/src/org/eclipse/jpt/utility/internal/swing/SimpleListCellRenderer.java
+++ /dev/null
@@ -1,128 +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.utility.internal.swing;
-
-import java.awt.Component;
-import javax.swing.DefaultListCellRenderer;
-import javax.swing.Icon;
-import javax.swing.JList;
-
-/**
- * This renderer should behave the same as the DefaultListCellRenderer;
- * but it slightly refactors the calculation of the icon and text of the list
- * cell so that subclasses can easily override the methods that build
- * the icon and text.
- * 
- * In most cases, you need only override:
- *     #buildIcon(Object value)
- *     #buildText(Object value)
- */
-public class SimpleListCellRenderer
-	extends DefaultListCellRenderer
-{
-
-	/**
-	 * Construct a simple renderer.
-	 */
-	public SimpleListCellRenderer() {
-		super();
-	}
-
-	@Override
-	public Component getListCellRendererComponent(JList list, Object value, int index, boolean isSelected, boolean cellHasFocus) {
-		// substitute null for the cell value so nothing is drawn initially...
-		super.getListCellRendererComponent(list, null, index, isSelected, cellHasFocus);
-		this.setOpaque(true);
-
-		// ...then set the icon and text manually
-		this.setIcon(this.buildIcon(list, value, index, isSelected, cellHasFocus));
-		this.setText(this.buildText(list, value, index, isSelected, cellHasFocus));
-
-		this.setToolTipText(this.buildToolTipText(list, value, index, isSelected, cellHasFocus));
-
-		// the context will be initialized only if a reader is running
-		if (this.accessibleContext != null) {
-			this.accessibleContext.setAccessibleName(this.buildAccessibleName(list, value, index, isSelected, cellHasFocus));
-		}
-
-		return this;
-	}
-
-	/**
-	 * Return the icon representation of the specified cell
-	 * value and other settings. (Even more settings are
-	 * accessible via inherited getters: hasFocus, isEnabled, etc.)
-	 */
-	protected Icon buildIcon(JList list, Object value, int index, boolean isSelected, boolean cellHasFocus) {
-		return this.buildIcon(value);
-	}
-
-	/**
-	 * Return the icon representation of the specified cell
-	 * value. The default is to display no icon at all unless the
-	 * value itself is an icon.
-	 */
-	protected Icon buildIcon(Object value) {
-		// replicate the default behavior
-		return (value instanceof Icon) ? (Icon) value : null;
-	}
-
-	/**
-	 * Return the textual representation of the specified cell
-	 * value and other settings. (Even more settings are
-	 * accessible via inherited getters: hasFocus, isEnabled, etc.)
-	 */
-	protected String buildText(JList list, Object value, int index, boolean isSelected, boolean cellHasFocus) {
-		return this.buildText(value);
-	}
-
-	/**
-	 * Return the textual representation of the specified cell
-	 * value. The default is to display the object's default string
-	 * representation (as returned by #toString()); unless the
-	 * value itself is an icon, in which case no text is displayed.
-	 */
-	protected String buildText(Object value) {
-		return (value instanceof Icon) ? "" : ((value == null) ? "" : value.toString());
-	}
-
-	/**
-	 * Return the text displayed when the cursor lingers over the specified cell.
-	 * (Even more settings are accessible via inherited getters: hasFocus, isEnabled, etc.)
-	 */
-	protected String buildToolTipText(JList list, Object value, int index, boolean isSelected, boolean cellHasFocus) {
-		return this.buildToolTipText(value);
-	}
-
-	/**
-	 * Return the text displayed when the cursor lingers over the specified cell.
-	 */
-	protected String buildToolTipText(Object value) {
-		return null;
-	}
-
-	/**
-	 * Return the accessible name to be given to the component used to render
-	 * the given value and other settings. (Even more settings are accessible via
-	 * inherited getters: hasFocus, isEnabled, etc.)
-	 */
-	protected String buildAccessibleName(JList list, Object value, int index, boolean isSelected, boolean cellHasFocus) {
-		return this.buildAccessibleName(value);
-	}
-
-	/**
-	 * Return the accessible name to be given to the component used to render
-	 * the given value.
-	 */
-	protected String buildAccessibleName(Object value) {
-		return null;
-	}
-
-}
diff --git a/jpa/plugins/org.eclipse.jpt.utility/src/org/eclipse/jpt/utility/internal/swing/SpinnerTableCellRenderer.java b/jpa/plugins/org.eclipse.jpt.utility/src/org/eclipse/jpt/utility/internal/swing/SpinnerTableCellRenderer.java
deleted file mode 100644
index a15e16a..0000000
--- a/jpa/plugins/org.eclipse.jpt.utility/src/org/eclipse/jpt/utility/internal/swing/SpinnerTableCellRenderer.java
+++ /dev/null
@@ -1,186 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2008 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.utility.internal.swing;
-
-import java.awt.Color;
-import java.awt.Component;
-import javax.swing.BorderFactory;
-import javax.swing.JComponent;
-import javax.swing.JSpinner;
-import javax.swing.JTable;
-import javax.swing.SpinnerModel;
-import javax.swing.UIManager;
-import javax.swing.border.Border;
-import javax.swing.event.ChangeEvent;
-import javax.swing.event.ChangeListener;
-
-/**
- * Make the cell look like a spinner.
- */
-public class SpinnerTableCellRenderer implements TableCellEditorAdapter.Renderer {
-
-	/** the component used to paint the cell */
-	protected JSpinner spinner;
-	
-	/** the listener to be notified on an immediate edit */
-	protected TableCellEditorAdapter.ImmediateEditListener immediateEditListener;
-	
-	
-	// ********** constructors/initialization **********
-
-	/**
-	 * Construct a cell renderer that uses the default
-	 * spinner model, which is a "number" model.
-	 */
-	public SpinnerTableCellRenderer() {
-		super();
-		this.initialize();
-	}
-
-	/**
-	 * Construct a cell renderer that uses the specified
-	 * spinner model, which will determine how the values are displayed.
-	 */
-	public SpinnerTableCellRenderer(SpinnerModel model) {
-		this();
-		this.setModel(model);
-	}
-
-	protected void initialize() {
-		this.spinner = this.buildSpinner();
-	}
-
-	protected JSpinner buildSpinner() {
-		JSpinner s = new JSpinner();
-		s.addChangeListener(this.buildChangeListener());
-		return s;
-	}
-	
-	private ChangeListener buildChangeListener() {
-		return new ChangeListener() {
-			public void stateChanged(ChangeEvent e) {
-				if (SpinnerTableCellRenderer.this.immediateEditListener != null) {
-					SpinnerTableCellRenderer.this.immediateEditListener.immediateEdit();
-				}
-			}
-		};
-	}
-
-
-	// ********** TableCellRenderer implementation **********
-
-	public Component getTableCellRendererComponent(JTable table, Object value, boolean selected, boolean hasFocus, int row, int column) {
-		this.spinner.setComponentOrientation(table.getComponentOrientation());
-		this.spinner.setFont(table.getFont());
-		this.spinner.setEnabled(table.isEnabled());
-
-		JComponent editor = this.editor();
-		editor.setForeground(this.foregroundColor(table, value, selected, hasFocus, row, column));
-		editor.setBackground(this.backgroundColor(table, value, selected, hasFocus, row, column));
-		this.spinner.setBorder(this.border(table, value, selected, hasFocus, row, column));
-
-		this.setValue(value);
-		return this.spinner;
-	}
-
-	/**
-	 * Return the cell's foreground color.
-	 */
-	protected Color foregroundColor(JTable table, Object value, boolean selected, boolean hasFocus, int row, int column) {
-		if (selected) {
-			if (hasFocus && table.isCellEditable(row, column)) {
-				return UIManager.getColor("Table.focusCellForeground");
-			}
-			return table.getSelectionForeground();
-		}
-		return table.getForeground();
-	}
-
-	/**
-	 * Return the cell's background color.
-	 */
-	protected Color backgroundColor(JTable table, Object value, boolean selected, boolean hasFocus, int row, int column) {
-		if (selected) {
-			if (hasFocus && table.isCellEditable(row, column)) {
-				return UIManager.getColor("Table.focusCellBackground");
-			}
-			return table.getSelectionBackground();
-		}
-		return table.getBackground();
-	}
-
-	/**
-	 * Return the cell's border.
-	 */
-	protected Border border(JTable table, Object value, boolean selected, boolean hasFocus, int row, int column) {
-		if (hasFocus) {
-			return UIManager.getBorder("Table.focusCellHighlightBorder");
-		}
-		if (selected) {
-			return BorderFactory.createLineBorder(table.getSelectionBackground(), 1);
-		}
-		return BorderFactory.createLineBorder(table.getBackground(), 1);
-	}
-
-	/**
-	 * Return the editor component whose colors should be set
-	 * by the renderer.
-	 */
-	protected JComponent editor() {
-		JComponent editor = this.spinner.getEditor();
-		if (editor instanceof JSpinner.DefaultEditor) {
-			// typically, the editor will be the default or one of its subclasses...
-			editor = ((JSpinner.DefaultEditor) editor).getTextField();
-		}
-		return editor;
-	}
-
-	/**
-	 * Set the spinner's value
-	 */
-	protected void setValue(Object value) {
-		// CR#3999318 - This null check needs to be removed once JDK bug is fixed
-		if (value == null) {
-			value = new Integer(0);
-		}
-		this.spinner.setValue(value);
-	}
-
-
-	// ********** TableCellEditorAdapter.Renderer implementation **********
-
-	public Object getValue() {
-		return this.spinner.getValue();
-	}
-	
-	public void setImmediateEditListener(TableCellEditorAdapter.ImmediateEditListener listener) {
-		this.immediateEditListener = listener;
-	}
-
-
-	// ********** public API **********
-
-	/**
-	 * Set the spinner's model.
-	 */
-	public void setModel(SpinnerModel model) {
-		this.spinner.setModel(model);
-	}
-
-	/**
-	 * Return the renderer's preferred height. This allows you
-	 * to set the row height to something the spinner will look good in....
-	 */
-	public int preferredHeight() {
-		// add in space for the border top and bottom
-		return (int) this.spinner.getPreferredSize().getHeight() + 2;
-	}
-
-}
diff --git a/jpa/plugins/org.eclipse.jpt.utility/src/org/eclipse/jpt/utility/internal/swing/TableCellEditorAdapter.java b/jpa/plugins/org.eclipse.jpt.utility/src/org/eclipse/jpt/utility/internal/swing/TableCellEditorAdapter.java
deleted file mode 100644
index b19c86f..0000000
--- a/jpa/plugins/org.eclipse.jpt.utility/src/org/eclipse/jpt/utility/internal/swing/TableCellEditorAdapter.java
+++ /dev/null
@@ -1,96 +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.utility.internal.swing;
-
-import java.awt.Component;
-import javax.swing.AbstractCellEditor;
-import javax.swing.JTable;
-import javax.swing.table.TableCellEditor;
-import javax.swing.table.TableCellRenderer;
-
-/**
- * A table cell editor that wraps a table cell renderer.
- */
-public class TableCellEditorAdapter extends AbstractCellEditor implements TableCellEditor {
-
-	/** delegate to a renderer */
-	private Renderer renderer;
-	
-	
-	// ********** constructors/initialization **********
-	
-	private TableCellEditorAdapter() {
-		super();
-	}
-	
-	/**
-	 * Construct a cell editor that behaves like the specified renderer.
-	 */
-	public TableCellEditorAdapter(Renderer renderer) {
-		this();
-		this.initialize(renderer);
-	}
-	
-	protected void initialize(Renderer r) {
-		this.renderer = r;
-		r.setImmediateEditListener(this.buildImmediateEditListener());
-	}
-	
-	private ImmediateEditListener buildImmediateEditListener() {
-		return new ImmediateEditListener() {
-			public void immediateEdit() {
-				TableCellEditorAdapter.this.stopCellEditing();
-			}
-		};
-	}
-	
-	
-	// ********** CellEditor implementation **********
-	
-	public Object getCellEditorValue() {
-		return this.renderer.getValue();
-	}
-	
-	
-	// ********** TableCellEditor implementation **********
-
-	public Component getTableCellEditorComponent(JTable table, Object value, boolean selected, int row, int column) {
-		return this.renderer.getTableCellRendererComponent(table, value, selected, true, row, column);
-	}
-	
-	
-	// ********** Member classes **********************************************
-	
-	/**
-	 * This interface defines the methods that must be implemented by a renderer
-	 * that can be wrapped by a TableCellEditorAdapter.
-	 */
-	public interface Renderer extends TableCellRenderer {
-		
-		/**
-		 * Return the current value of the renderer.
-		 */
-		Object getValue();
-		
-		/**
-		 * Set the immediate edit listener
-		 */
-		void setImmediateEditListener(ImmediateEditListener listener);
-	}
-	
-	
-	public interface ImmediateEditListener {
-		
-		/**
-		 * Called when the renderer does an "immediate edit"
-		 */
-		void immediateEdit();
-	}
-}
diff --git a/jpa/plugins/org.eclipse.jpt.utility/src/org/eclipse/jpt/utility/model/Model.java b/jpa/plugins/org.eclipse.jpt.utility/src/org/eclipse/jpt/utility/model/Model.java
deleted file mode 100644
index 33f2fd2..0000000
--- a/jpa/plugins/org.eclipse.jpt.utility/src/org/eclipse/jpt/utility/model/Model.java
+++ /dev/null
@@ -1,195 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2008 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.utility.model;
-
-import org.eclipse.jpt.utility.model.listener.CollectionChangeListener;
-import org.eclipse.jpt.utility.model.listener.ListChangeListener;
-import org.eclipse.jpt.utility.model.listener.PropertyChangeListener;
-import org.eclipse.jpt.utility.model.listener.StateChangeListener;
-import org.eclipse.jpt.utility.model.listener.TreeChangeListener;
-
-/**
- * Interface to be implemented by models that notify listeners of
- * changes to bound properties, collections, lists, and/or trees.
- * 
- * Provisional API: This interface is part of an interim API that is still
- * under development and expected to change significantly before reaching
- * stability. It is available at this early stage to solicit feedback from
- * pioneering adopters on the understanding that any code that uses this API
- * will almost certainly be broken (repeatedly) as the API evolves.
- */
-public interface Model {
-
-	// ********** state change **********
-
-	/**
-	 * Add a listener that listens to all state change events.
-	 * The same listener may be added more than once and will be called
-	 * as many times as it is added. The listener cannot be null.
-	 */
-	void addStateChangeListener(StateChangeListener listener);
-
-	/**
-	 * Remove the specified state change listener. If the listener
-	 * was added more than once, it will be notified one less time
-	 * after being removed. An exception will be thrown if the
-	 * listener is null or if the listener was never added.
-	 */
-	void removeStateChangeListener(StateChangeListener listener);
-
-
-	// ********** property change **********
-
-	/**
-	 * Add a listener that listens to all property change events,
-	 * regardless of the property name associated with that event.
-	 * The same listener may be added more than once and will be called
-	 * as many times as it is added. The listener cannot be null.
-	 */
-	void addPropertyChangeListener(PropertyChangeListener listener);
-
-	/**
-	 * Add a listener that listens to all property change events with
-	 * the specified property name.
-	 * The same listener may be added more than once and will be called
-	 * as many times as it is added. The listener cannot be null.
-	 */
-	void addPropertyChangeListener(String propertyName, PropertyChangeListener listener);
-
-	/**
-	 * Remove a listener that listens to all property change events,
-	 * regardless of the property name associated with that event.
-	 * If the listener was added more than once, it will be notified one less
-	 * time after being removed. An exception will be thrown if the
-	 * listener is null or if the listener was never added.
-	 */
-	void removePropertyChangeListener(PropertyChangeListener listener);
-
-	/**
-	 * Remove a listener that listens to all property change events,
-	 * with the specified property name.
-	 * If the listener was added more than once, it will be notified one less
-	 * time after being removed. An exception will be thrown if the
-	 * listener is null or if the listener was never added.
-	 */
-	void removePropertyChangeListener(String propertyName, PropertyChangeListener listener);
-
-
-	// ********** collection change **********
-
-	/**
-	 * Add a listener that listens to all collection change events,
-	 * regardless of the collection name associated with that event.
-	 * The same listener may be added more than once and will be called
-	 * as many times as it is added. The listener cannot be null.
-	 */
-	void addCollectionChangeListener(CollectionChangeListener listener);
-
-	/**
-	 * Add a listener that listens to all collection change events with
-	 * the specified collection name.
-	 * The same listener may be added more than once and will be called
-	 * as many times as it is added. The listener cannot be null.
-	 */
-	void addCollectionChangeListener(String collectionName, CollectionChangeListener listener);
-
-	/**
-	 * Remove a listener that listens to all collection change events,
-	 * regardless of the collection name associated with that event.
-	 * If the listener was added more than once, it will be notified one less
-	 * time after being removed. An exception will be thrown if the
-	 * listener is null or if the listener was never added.
-	 */
-	void removeCollectionChangeListener(CollectionChangeListener listener);
-
-	/**
-	 * Remove a listener that listens to all collection change events,
-	 * with the specified collection name.
-	 * If the listener was added more than once, it will be notified one less
-	 * time after being removed. An exception will be thrown if the
-	 * listener is null or if the listener was never added.
-	 */
-	void removeCollectionChangeListener(String collectionName, CollectionChangeListener listener);
-
-
-	// ********** list change **********
-
-	/**
-	 * Add a listener that listens to all list change events,
-	 * regardless of the list name associated with that event.
-	 * The same listener may be added more than once and will be called
-	 * as many times as it is added. The listener cannot be null.
-	 */
-	void addListChangeListener(ListChangeListener listener);
-
-	/**
-	 * Add a listener that listens to all list change events with
-	 * the specified list name.
-	 * The same listener may be added more than once and will be called
-	 * as many times as it is added. The listener cannot be null.
-	 */
-	void addListChangeListener(String listName, ListChangeListener listener);
-
-	/**
-	 * Remove a listener that listens to all list change events,
-	 * regardless of the list name associated with that event.
-	 * If the listener was added more than once, it will be notified one less
-	 * time after being removed. An exception will be thrown if the
-	 * listener is null or if the listener was never added.
-	 */
-	void removeListChangeListener(ListChangeListener listener);
-
-	/**
-	 * Remove a listener that listens to all list change events,
-	 * with the specified list name.
-	 * If the listener was added more than once, it will be notified one less
-	 * time after being removed. An exception will be thrown if the
-	 * listener is null or if the listener was never added.
-	 */
-	void removeListChangeListener(String listName, ListChangeListener listener);
-
-
-	// ********** tree change **********
-
-	/**
-	 * Add a listener that listens to all tree change events,
-	 * regardless of the tree name associated with that event.
-	 * The same listener may be added more than once and will be called
-	 * as many times as it is added. The listener cannot be null.
-	 */
-	void addTreeChangeListener(TreeChangeListener listener);
-
-	/**
-	 * Add a listener that listens to all tree change events with
-	 * the specified tree name.
-	 * The same listener may be added more than once and will be called
-	 * as many times as it is added. The listener cannot be null.
-	 */
-	void addTreeChangeListener(String treeName, TreeChangeListener listener);
-
-	/**
-	 * Remove a listener that listens to all tree change events,
-	 * regardless of the tree name associated with that event.
-	 * If the listener was added more than once, it will be notified one less
-	 * time after being removed. An exception will be thrown if the
-	 * listener is null or if the listener was never added.
-	 */
-	void removeTreeChangeListener(TreeChangeListener listener);
-
-	/**
-	 * Remove a listener that listens to all tree change events,
-	 * with the specified tree name.
-	 * If the listener was added more than once, it will be notified one less
-	 * time after being removed. An exception will be thrown if the
-	 * listener is null or if the listener was never added.
-	 */
-	void removeTreeChangeListener(String treeName, TreeChangeListener listener);
-
-}
diff --git a/jpa/plugins/org.eclipse.jpt.utility/src/org/eclipse/jpt/utility/model/event/ChangeEvent.java b/jpa/plugins/org.eclipse.jpt.utility/src/org/eclipse/jpt/utility/model/event/ChangeEvent.java
deleted file mode 100644
index 5217abb..0000000
--- a/jpa/plugins/org.eclipse.jpt.utility/src/org/eclipse/jpt/utility/model/event/ChangeEvent.java
+++ /dev/null
@@ -1,64 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2008 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.utility.model.event;
-
-import java.util.EventObject;
-import org.eclipse.jpt.utility.internal.StringTools;
-import org.eclipse.jpt.utility.model.Model;
-
-/**
- * Abstract class for all the change events that can be fired by models.
- * 
- * Provisional API: This class is part of an interim API that is still
- * under development and expected to change significantly before reaching
- * stability. It is available at this early stage to solicit feedback from
- * pioneering adopters on the understanding that any code that uses this API
- * will almost certainly be broken (repeatedly) as the API evolves.
- */
-public abstract class ChangeEvent extends EventObject {
-
-	private static final long serialVersionUID = 1L;
-
-
-	/**
-	 * Construct a new change event.
-	 *
-	 * @param source The object on which the event initially occurred.
-	 */
-	protected ChangeEvent(Model source) {
-		super(source);
-	}
-
-	/**
-	 * Covariant override.
-	 */
-	@Override
-	public Model getSource() {
-		return (Model) super.getSource();
-	}
-
-	/**
-	 * Return the name of the aspect of the source that changed.
-	 * May be null if inappropriate.
-	 */
-	public abstract String getAspectName();
-
-	/**
-	 * Return a copy of the event with the specified source
-	 * replacing the current source.
-	 */
-	public abstract ChangeEvent cloneWithSource(Model newSource);
-
-	@Override
-	public String toString() {
-		return StringTools.buildToStringFor(this, this.getAspectName());
-	}
-
-}
diff --git a/jpa/plugins/org.eclipse.jpt.utility/src/org/eclipse/jpt/utility/model/event/CollectionChangeEvent.java b/jpa/plugins/org.eclipse.jpt.utility/src/org/eclipse/jpt/utility/model/event/CollectionChangeEvent.java
deleted file mode 100644
index 386026c..0000000
--- a/jpa/plugins/org.eclipse.jpt.utility/src/org/eclipse/jpt/utility/model/event/CollectionChangeEvent.java
+++ /dev/null
@@ -1,137 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2008 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.utility.model.event;
-
-import java.util.Collection;
-import java.util.Collections;
-import java.util.Iterator;
-import org.eclipse.jpt.utility.model.Model;
-
-/**
- * A "collection change" event gets delivered whenever a model changes a "bound"
- * or "constrained" collection. A CollectionChangeEvent is sent as an
- * argument to the CollectionChangeListener.
- * 
- * Normally a CollectionChangeEvent is accompanied by the collection name and
- * the items that were added to or removed from the changed collection.
- * 
- * Design options:
- * - create a collection to wrap a single added or removed item
- * 	(this is the option we implemented below and in collaborating code)
- * 	since there is no way to optimize downstream code for
- * 	single items, we take another performance hit by building
- * 	a collection each time  (@see Collections#singleton(Object))
- * 	and forcing downstream code to use an iterator every time
- * 
- * - fire a separate event for each item added or removed
- * 	eliminates any potential for optimizations to downstream code
- * 
- * - add protocol to support both single items and collections
- * 	adds conditional logic to downstream code
- * 
- * Provisional API: This class is part of an interim API that is still
- * under development and expected to change significantly before reaching
- * stability. It is available at this early stage to solicit feedback from
- * pioneering adopters on the understanding that any code that uses this API
- * will almost certainly be broken (repeatedly) as the API evolves.
- */
-public class CollectionChangeEvent extends ChangeEvent {
-
-	/** Name of the collection that changed. */
-	private final String collectionName;
-
-	/** The items that were added to or removed from the collection. May be empty, if not known. */
-	private final Collection<?> items;
-
-	private static final long serialVersionUID = 1L;
-
-
-	// ********** constructors **********
-
-	/**
-	 * Construct a new collection change event.
-	 *
-	 * @param source The object on which the event initially occurred.
-	 * @param collectionName The programmatic name of the collection that was changed.
-	 * @param items The items that were added to or removed from the collection.
-	 */
-	public CollectionChangeEvent(Model source, String collectionName, Collection<?> items) {
-		super(source);
-		if ((collectionName == null) || (items == null)) {
-			throw new NullPointerException();
-		}
-		this.collectionName = collectionName;
-		this.items = Collections.unmodifiableCollection(items);
-	}
-
-	/**
-	 * Construct a new collection change event.
-	 *
-	 * @param source The object on which the event initially occurred.
-	 * @param collectionName The programmatic name of the collection that was changed.
-	 */
-	public CollectionChangeEvent(Model source, String collectionName) {
-		this(source, collectionName, Collections.emptySet());
-	}
-
-
-	// ********** standard state **********
-
-	/**
-	 * Return the programmatic name of the collection that was changed.
-	 */
-	public String getCollectionName() {
-		return this.collectionName;
-	}
-
-	@Override
-	public String getAspectName() {
-		return this.collectionName;
-	}
-
-	/**
-	 * Return an iterator on the items that were added to or
-	 * removed from the collection.
-	 * May be empty if inappropriate or unknown.
-	 */
-	public Iterator<?> items() {
-		return this.items.iterator();
-	}
-
-	/**
-	 * Return the number of items that were added to or
-	 * removed from the collection.
-	 * May be 0 if inappropriate or unknown.
-	 */
-	public int itemsSize() {
-		return this.items.size();
-	}
-
-
-	// ********** cloning **********
-
-	/**
-	 * Return a copy of the event with the specified source
-	 * replacing the current source.
-	 */
-	@Override
-	public CollectionChangeEvent cloneWithSource(Model newSource) {
-		return new CollectionChangeEvent(newSource, this.collectionName, this.items);
-	}
-
-	/**
-	 * Return a copy of the event with the specified source and collection name
-	 * replacing the current source and collection name.
-	 */
-	public CollectionChangeEvent cloneWithSource(Model newSource, String newCollectionName) {
-		return new CollectionChangeEvent(newSource, newCollectionName, this.items);
-	}
-
-}
diff --git a/jpa/plugins/org.eclipse.jpt.utility/src/org/eclipse/jpt/utility/model/event/ListChangeEvent.java b/jpa/plugins/org.eclipse.jpt.utility/src/org/eclipse/jpt/utility/model/event/ListChangeEvent.java
deleted file mode 100644
index 9ec18ae..0000000
--- a/jpa/plugins/org.eclipse.jpt.utility/src/org/eclipse/jpt/utility/model/event/ListChangeEvent.java
+++ /dev/null
@@ -1,262 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2008 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.utility.model.event;
-
-import java.util.Collections;
-import java.util.List;
-import java.util.ListIterator;
-import org.eclipse.jpt.utility.model.Model;
-
-/**
- * A "list change" event gets delivered whenever a model changes a "bound"
- * or "constrained" list. A ListChangeEvent is sent as an
- * argument to the ListChangeListener.
- * 
- * Normally a ListChangeEvent is accompanied by the list name,
- * the items that were added to or removed from the changed list,
- * and the index of where the items are or were in the list.
- * 
- * Design options:
- * - create a list to wrap a single added or removed item
- * 	(this is the option we implemented below and in collaborating code)
- * 	since there is no way to optimize downstream code for
- * 	single items, we take another performance hit by building
- * 	a list each time  (@see Collections#singletonList(Object))
- * 	and forcing downstream code to use a list iterator every time
- * 
- * - fire a separate event for each item added or removed
- * 	eliminates any potential for optimizations to downstream code
- * 
- * - add protocol to support both single items and collections
- * 	adds conditional logic to downstream code
- * 
- * Provisional API: This class is part of an interim API that is still
- * under development and expected to change significantly before reaching
- * stability. It is available at this early stage to solicit feedback from
- * pioneering adopters on the understanding that any code that uses this API
- * will almost certainly be broken (repeatedly) as the API evolves.
- */
-public class ListChangeEvent extends ChangeEvent {
-
-	/**
-	 * Name of the list that changed.
-	 */
-	private final String listName;
-
-	/**
-	 * The index at which the items were added, removed, or replaced.
-	 * In the case of "moved" items, this will be the "target" index.
-	 * May be -1, if not known.
-	 */
-	private final int index;
-
-	/**
-	 * The items that were added to or removed from the list. In the case of
-	 * "replaced" items, these are the new items in the list.
-	 * In the case of "moved" items, this will be empty.
-	 * May be empty, if not known.
-	 */
-	private final List<?> items;
-
-	/**
-	 * The items in the list that were replaced by the items listed above,
-	 * in #items. May be empty, if not known.
-	 */
-	private final List<?> replacedItems;
-
-	/**
-	 * In the case of "moved" items, this will be the "source" index.
-	 * May be -1, if not known.
-	 */
-	private final int sourceIndex;
-
-	/**
-	 * In the case of "moved" items, this will be the number of items moved.
-	 * May be -1, if not known.
-	 */
-	private final int moveLength;
-
-	private static final long serialVersionUID = 1L;
-
-
-	// ********** constructors **********
-
-	protected ListChangeEvent(Model source, String listName, int index, List<?> items, List<?> replacedItems, int sourceIndex, int moveLength) {
-		super(source);
-		if ((listName == null) || (items == null) || (replacedItems == null)) {
-			throw new NullPointerException();
-		}
-		this.listName = listName;
-		this.index = index;
-		this.items = Collections.unmodifiableList(items);
-		this.replacedItems = Collections.unmodifiableList(replacedItems);
-		this.sourceIndex = sourceIndex;
-		this.moveLength = moveLength;
-	}
-
-	/**
-	 * Construct a new list change event for a list of replaced items.
-	 *
-	 * @param source The object on which the event initially occurred.
-	 * @param listName The programmatic name of the list that was changed.
-	 * @param index The index at which the items in the list were replaced.
-	 * @param items The new items in the list.
-	 * @param replacedItems The items in the list that were replaced.
-	 */
-	public ListChangeEvent(Model source, String listName, int index, List<?> items, List<?> replacedItems) {
-		this(source, listName, index, items, replacedItems, -1, -1);
-	}
-
-	/**
-	 * Construct a new list change event for a list of added or removed items.
-	 *
-	 * @param source The object on which the event initially occurred.
-	 * @param listName The programmatic name of the list that was changed.
-	 * @param index The index at which the items were added to or removed from the list.
-	 * @param items The items that were added to or removed from the list.
-	 */
-	public ListChangeEvent(Model source, String listName, int index, List<?> items) {
-		this(source, listName, index, items, Collections.emptyList(), -1, -1);
-	}
-
-	/**
-	 * Construct a new list change event for a list of moved items.
-	 *
-	 * @param source The object on which the event initially occurred.
-	 * @param listName The programmatic name of the list that was changed.
-	 * @param targetIndex The index to which the items were moved.
-	 * @param sourceIndex The index from which the items were moved.
-	 */
-	public ListChangeEvent(Model source, String listName, int targetIndex, int sourceIndex, int length) {
-		this(source, listName, targetIndex, Collections.emptyList(), Collections.emptyList(), sourceIndex, length);
-	}
-
-	/**
-	 * Construct a new list change event.
-	 *
-	 * @param source The object on which the event initially occurred.
-	 * @param listName The programmatic name of the list that was changed.
-	 */
-	public ListChangeEvent(Model source, String listName) {
-		this(source, listName, -1, Collections.emptyList(), Collections.emptyList(), -1, -1);
-	}
-
-
-	// ********** standard state **********
-
-	/**
-	 * Return the programmatic name of the list that was changed.
-	 */
-	public String getListName() {
-		return this.listName;
-	}
-
-	@Override
-	public String getAspectName() {
-		return this.listName;
-	}
-
-	/**
-	 * Return the index at which the items were added to, removed from,
-	 * or replaced in the list.
-	 * In the case of "moved" items, this will be the "target" index.
-	 * May be -1 if inappropriate or unknown.
-	 */
-	public int getIndex() {
-		return this.index;
-	}
-
-	/**
-	 * Return a list iterator on the items that were added to or
-	 * removed from the list. In the case of "replaced" items, these
-	 * are the new items in the list.
-	 * May be empty if inappropriate or unknown.
-	 */
-	public ListIterator<?> items() {
-		return this.items.listIterator();
-	}
-
-	/**
-	 * Return the number of items that were added to,
-	 * removed from, or replaced in the list.
-	 * May be 0 if inappropriate or unknown.
-	 */
-	public int itemsSize() {
-		return this.items.size();
-	}
-
-
-	// ********** replace **********
-
-	/**
-	 * Return a list iterator on the items in the list that were replaced.
-	 * May be empty if inappropriate or unknown.
-	 */
-	public ListIterator<?> replacedItems() {
-		return this.replacedItems.listIterator();
-	}
-
-
-	// ********** move **********
-
-	/**
-	 * In the case of "moved" items, this will be the "target" index.
-	 * May be -1 if inappropriate or unknown.
-	 */
-	public int getTargetIndex() {
-		return this.index;
-	}
-
-	/**
-	 * In the case of "moved" items, this will be the "source" index.
-	 * May be -1 if inappropriate or unknown.
-	 */
-	public int getSourceIndex() {
-		return this.sourceIndex;
-	}
-
-	/**
-	 * In the case of "moved" items, this will be the number of items moved.
-	 * May be -1 if inappropriate or unknown.
-	 */
-	public int getMoveLength() {
-		return this.moveLength;
-	}
-
-
-	// ********** cloning **********
-
-	/**
-	 * Return a copy of the event with the specified source
-	 * replacing the current source.
-	 */
-	@Override
-	public ListChangeEvent cloneWithSource(Model newSource) {
-		return new ListChangeEvent(newSource, this.listName, this.index, this.items, this.replacedItems, this.sourceIndex, this.moveLength);
-	}
-
-	/**
-	 * Return a copy of the event with the specified source and list name
-	 * replacing the current source and list name.
-	 */
-	public ListChangeEvent cloneWithSource(Model newSource, String newListName) {
-		return new ListChangeEvent(newSource, newListName, this.index, this.items, this.replacedItems, this.sourceIndex, this.moveLength);
-	}
-
-	/**
-	 * Return a copy of the event with the specified source and list name
-	 * replacing the current source and list name and displacing
-	 * the index by the specified amount.
-	 */
-	public ListChangeEvent cloneWithSource(Model newSource, String newListName, int offset) {
-		return new ListChangeEvent(newSource, newListName, this.index + offset, this.items, this.replacedItems, this.sourceIndex + offset, this.moveLength);
-	}
-
-}
diff --git a/jpa/plugins/org.eclipse.jpt.utility/src/org/eclipse/jpt/utility/model/event/PropertyChangeEvent.java b/jpa/plugins/org.eclipse.jpt.utility/src/org/eclipse/jpt/utility/model/event/PropertyChangeEvent.java
deleted file mode 100644
index ee2fa2f..0000000
--- a/jpa/plugins/org.eclipse.jpt.utility/src/org/eclipse/jpt/utility/model/event/PropertyChangeEvent.java
+++ /dev/null
@@ -1,104 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2008 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.utility.model.event;
-
-import org.eclipse.jpt.utility.model.Model;
-
-/**
- * A "property change" event gets delivered whenever a model changes a "bound"
- * or "constrained" property. A PropertyChangeEvent is sent as an
- * argument to the PropertyChangeListener.
- * 
- * Provisional API: This class is part of an interim API that is still
- * under development and expected to change significantly before reaching
- * stability. It is available at this early stage to solicit feedback from
- * pioneering adopters on the understanding that any code that uses this API
- * will almost certainly be broken (repeatedly) as the API evolves.
- */
-public class PropertyChangeEvent extends ChangeEvent {
-
-	/** Name of the property that changed. */
-	private final String propertyName;
-
-	/** The property's old value, before the change. */
-	private final Object oldValue;
-
-	/** The property's new value, after the change. */
-	private final Object newValue;
-
-	private static final long serialVersionUID = 1L;
-
-
-	// ********** constructors **********
-
-	/**
-	 * Construct a new property change event.
-	 *
-	 * @param source The object on which the event initially occurred.
-	 * @param propertyName The programmatic name of the property that was changed.
-	 * @param oldValue The old value of the property.
-	 * @param newValue The new value of the property.
-	 */
-	public PropertyChangeEvent(Model source, String propertyName, Object oldValue, Object newValue) {
-		super(source);
-		if (propertyName == null) {
-			throw new NullPointerException();
-		}
-		this.propertyName = propertyName;
-		this.oldValue = oldValue;
-		this.newValue = newValue;
-	}
-
-
-	// ********** standard state **********
-
-	/**
-	 * Return the programmatic name of the property that was changed.
-	 */
-	public String getPropertyName() {
-		return this.propertyName;
-	}
-
-	@Override
-	public String getAspectName() {
-		return this.propertyName;
-	}
-
-	/**
-	 * Return the old value of the property.
-	 */
-	public Object getOldValue() {
-		return this.oldValue;
-	}
-
-	/**
-	 * Return the new value of the property.
-	 */
-	public Object getNewValue() {
-		return this.newValue;
-	}
-
-
-	// ********** cloning **********
-
-	@Override
-	public PropertyChangeEvent cloneWithSource(Model newSource) {
-		return new PropertyChangeEvent(newSource, this.propertyName, this.oldValue, this.newValue);
-	}
-
-	/**
-	 * Return a copy of the event with the specified source
-	 * replacing the current source and the property name.
-	 */
-	public PropertyChangeEvent cloneWithSource(Model newSource, String newPropertyName) {
-		return new PropertyChangeEvent(newSource, newPropertyName, this.oldValue, this.newValue);
-	}
-
-}
diff --git a/jpa/plugins/org.eclipse.jpt.utility/src/org/eclipse/jpt/utility/model/event/StateChangeEvent.java b/jpa/plugins/org.eclipse.jpt.utility/src/org/eclipse/jpt/utility/model/event/StateChangeEvent.java
deleted file mode 100644
index 52e3690..0000000
--- a/jpa/plugins/org.eclipse.jpt.utility/src/org/eclipse/jpt/utility/model/event/StateChangeEvent.java
+++ /dev/null
@@ -1,57 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2008 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.utility.model.event;
-
-import org.eclipse.jpt.utility.model.Model;
-
-/**
- * A generic "state change" event gets delivered whenever a model changes to 
- * such extent that it cannot be delineated all aspects of it that have changed. 
- * A StateChangeEvent is sent as an argument to the StateChangeListener.
- * 
- * Provisional API: This class is part of an interim API that is still
- * under development and expected to change significantly before reaching
- * stability. It is available at this early stage to solicit feedback from
- * pioneering adopters on the understanding that any code that uses this API
- * will almost certainly be broken (repeatedly) as the API evolves.
- */
-public class StateChangeEvent extends ChangeEvent {
-
-	private static final long serialVersionUID = 1L;
-
-
-	// ********** constructors **********
-
-	/**
-	 * Construct a new state change event.
-	 *
-	 * @param source The object on which the event initially occurred.
-	 */
-	public StateChangeEvent(Model source) {
-		super(source);
-	}
-
-
-	// ********** standard state **********
-
-	@Override
-	public String getAspectName() {
-		return null;  // the point of the event is that the name is unknown...
-	}
-
-
-	// ********** cloning **********
-
-	@Override
-	public StateChangeEvent cloneWithSource(Model newSource) {
-		return new StateChangeEvent(newSource);
-	}
-
-}
diff --git a/jpa/plugins/org.eclipse.jpt.utility/src/org/eclipse/jpt/utility/model/event/TreeChangeEvent.java b/jpa/plugins/org.eclipse.jpt.utility/src/org/eclipse/jpt/utility/model/event/TreeChangeEvent.java
deleted file mode 100644
index 2272020..0000000
--- a/jpa/plugins/org.eclipse.jpt.utility/src/org/eclipse/jpt/utility/model/event/TreeChangeEvent.java
+++ /dev/null
@@ -1,111 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2008 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.utility.model.event;
-
-import org.eclipse.jpt.utility.model.Model;
-
-/**
- * A "tree change" event gets delivered whenever a model changes a "bound"
- * or "constrained" tree. A TreeChangeEvent is sent as an
- * argument to the TreeChangeListener.
- * 
- * Normally a TreeChangeEvent is accompanied by the tree name and a path
- * to the part of the tree that was changed.
- * 
- * Provisional API: This class is part of an interim API that is still
- * under development and expected to change significantly before reaching
- * stability. It is available at this early stage to solicit feedback from
- * pioneering adopters on the understanding that any code that uses this API
- * will almost certainly be broken (repeatedly) as the API evolves.
- */
-public class TreeChangeEvent extends ChangeEvent {
-
-	/** Name of the tree that changed. */
-	private final String treeName;
-
-    /**
-     * Path to the parent of the part of the tree that was changed.
-     * May be empty, if not known or if the entire tree changed.
-     */
-	protected final Object[] path;
-
-	private static final Object[] EMPTY_PATH = new Object[0];
-
-	private static final long serialVersionUID = 1L;
-
-
-	// ********** constructors **********
-
-	/**
-	 * Construct a new tree change event.
-	 *
-	 * @param source The object on which the event initially occurred.
-	 * @param treeName The programmatic name of the tree that was changed.
-	 * @param path The path to the part of the tree that was changed.
-	 */
-	public TreeChangeEvent(Model source, String treeName, Object[] path) {
-		super(source);
-		if ((treeName == null) || (path == null)) {
-			throw new NullPointerException();
-		}
-		this.treeName = treeName;
-		this.path = path;
-	}
-	
-	/**
-	 * Construct a new tree change event.
-	 *
-	 * @param source The object on which the event initially occurred.
-	 * @param treeName The programmatic name of the tree that was changed.
-	 */
-	public TreeChangeEvent(Model source, String treeName) {
-		this(source, treeName, EMPTY_PATH);
-	}
-	
-
-	// ********** standard state **********
-
-	/**
-	 * Return the programmatic name of the tree that was changed.
-	 */
-	public String getTreeName() {
-		return this.treeName;
-	}
-
-	@Override
-	public String getAspectName() {
-		return this.treeName;
-	}
-
-	/**
-	 * Return the path to the part of the tree that was changed.
-	 * May be empty, if not known.
-	 */
-	public Object[] getPath() {
-		return this.path;
-	}
-
-
-	// ********** cloning **********
-
-	@Override
-	public TreeChangeEvent cloneWithSource(Model newSource) {
-		return new TreeChangeEvent(newSource, this.treeName, this.path);
-	}
-
-	/**
-	 * Return a copy of the event with the specified source
-	 * replacing the current source and the tree name.
-	 */
-	public TreeChangeEvent cloneWithSource(Model newSource, String newTreeName) {
-		return new TreeChangeEvent(newSource, newTreeName, this.path);
-	}
-
-}
diff --git a/jpa/plugins/org.eclipse.jpt.utility/src/org/eclipse/jpt/utility/model/listener/ChangeListener.java b/jpa/plugins/org.eclipse.jpt.utility/src/org/eclipse/jpt/utility/model/listener/ChangeListener.java
deleted file mode 100644
index d29a7a7..0000000
--- a/jpa/plugins/org.eclipse.jpt.utility/src/org/eclipse/jpt/utility/model/listener/ChangeListener.java
+++ /dev/null
@@ -1,25 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2008 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.utility.model.listener;
-
-import java.util.EventListener;
-
-/**
- * Marker interface.
- * 
- * Provisional API: This interface is part of an interim API that is still
- * under development and expected to change significantly before reaching
- * stability. It is available at this early stage to solicit feedback from
- * pioneering adopters on the understanding that any code that uses this API
- * will almost certainly be broken (repeatedly) as the API evolves.
- */
-public interface ChangeListener extends EventListener {
-	// nothing for now
-}
diff --git a/jpa/plugins/org.eclipse.jpt.utility/src/org/eclipse/jpt/utility/model/listener/CollectionChangeAdapter.java b/jpa/plugins/org.eclipse.jpt.utility/src/org/eclipse/jpt/utility/model/listener/CollectionChangeAdapter.java
deleted file mode 100644
index 88b1359..0000000
--- a/jpa/plugins/org.eclipse.jpt.utility/src/org/eclipse/jpt/utility/model/listener/CollectionChangeAdapter.java
+++ /dev/null
@@ -1,48 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2008 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.utility.model.listener;
-
-import org.eclipse.jpt.utility.model.event.CollectionChangeEvent;
-
-/**
- * Convenience implementation of CollectionChangeListener.
- * 
- * Provisional API: This class is part of an interim API that is still
- * under development and expected to change significantly before reaching
- * stability. It is available at this early stage to solicit feedback from
- * pioneering adopters on the understanding that any code that uses this API
- * will almost certainly be broken (repeatedly) as the API evolves.
- */
-public class CollectionChangeAdapter implements CollectionChangeListener {
-
-	/**
-	 * Default constructor.
-	 */
-	public CollectionChangeAdapter() {
-		super();
-	}
-
-	public void itemsAdded(CollectionChangeEvent event) {
-		// do nothing
-	}
-
-	public void itemsRemoved(CollectionChangeEvent event) {
-		// do nothing
-	}
-
-	public void collectionCleared(CollectionChangeEvent event) {
-		// do nothing
-	}
-
-	public void collectionChanged(CollectionChangeEvent event) {
-		// do nothing
-	}
-
-}
diff --git a/jpa/plugins/org.eclipse.jpt.utility/src/org/eclipse/jpt/utility/model/listener/CollectionChangeListener.java b/jpa/plugins/org.eclipse.jpt.utility/src/org/eclipse/jpt/utility/model/listener/CollectionChangeListener.java
deleted file mode 100644
index 210388b..0000000
--- a/jpa/plugins/org.eclipse.jpt.utility/src/org/eclipse/jpt/utility/model/listener/CollectionChangeListener.java
+++ /dev/null
@@ -1,60 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2008 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.utility.model.listener;
-
-import org.eclipse.jpt.utility.model.event.CollectionChangeEvent;
-
-/**
- * A "collection change" event gets fired whenever a model changes a "bound"
- * collection. You can register a CollectionChangeListener with a source
- * model so as to be notified of any bound collection updates.
- * 
- * Provisional API: This interface is part of an interim API that is still
- * under development and expected to change significantly before reaching
- * stability. It is available at this early stage to solicit feedback from
- * pioneering adopters on the understanding that any code that uses this API
- * will almost certainly be broken (repeatedly) as the API evolves.
- */
-public interface CollectionChangeListener extends ChangeListener {
-
-	/**
-	 * This method gets called when items are added to a bound collection.
-	 * 
-	 * @param event A CollectionChangeEvent describing the event source,
-	 * the collection that changed, and the items that were added.
-	 */
-	void itemsAdded(CollectionChangeEvent event);
-
-	/**
-	 * This method gets called when items are removed from a bound collection.
-	 * 
-	 * @param event A CollectionChangeEvent describing the event source,
-	 * the collection that changed, and the items that were removed.
-	 */
-	void itemsRemoved(CollectionChangeEvent event);
-
-	/**
-	 * This method gets called when a bound collection is cleared.
-	 * 
-	 * @param event A CollectionChangeEvent describing the event source 
-	 * and the collection that changed.
-	 */
-	void collectionCleared(CollectionChangeEvent event);
-
-	/**
-	 * This method gets called when a bound collection is changed in a manner
-	 * that is not easily characterized by the other methods in this interface.
-	 * 
-	 * @param event A CollectionChangeEvent describing the event source 
-	 * and the collection that changed.
-	 */
-	void collectionChanged(CollectionChangeEvent event);
-
-}
diff --git a/jpa/plugins/org.eclipse.jpt.utility/src/org/eclipse/jpt/utility/model/listener/ListChangeAdapter.java b/jpa/plugins/org.eclipse.jpt.utility/src/org/eclipse/jpt/utility/model/listener/ListChangeAdapter.java
deleted file mode 100644
index 052abc5..0000000
--- a/jpa/plugins/org.eclipse.jpt.utility/src/org/eclipse/jpt/utility/model/listener/ListChangeAdapter.java
+++ /dev/null
@@ -1,56 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2008 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.utility.model.listener;
-
-import org.eclipse.jpt.utility.model.event.ListChangeEvent;
-
-/**
- * Convenience implementation of ListChangeListener.
- * 
- * Provisional API: This class is part of an interim API that is still
- * under development and expected to change significantly before reaching
- * stability. It is available at this early stage to solicit feedback from
- * pioneering adopters on the understanding that any code that uses this API
- * will almost certainly be broken (repeatedly) as the API evolves.
- */
-public class ListChangeAdapter implements ListChangeListener {
-
-	/**
-	 * Default constructor.
-	 */
-	public ListChangeAdapter() {
-		super();
-	}
-
-	public void itemsAdded(ListChangeEvent event) {
-		// do nothing
-	}
-
-	public void itemsRemoved(ListChangeEvent event) {
-		// do nothing
-	}
-
-	public void itemsReplaced(ListChangeEvent event) {
-		// do nothing
-	}
-
-	public void itemsMoved(ListChangeEvent event) {
-		// do nothing
-	}
-
-	public void listCleared(ListChangeEvent event) {
-		// do nothing
-	}
-
-	public void listChanged(ListChangeEvent event) {
-		// do nothing
-	}
-
-}
diff --git a/jpa/plugins/org.eclipse.jpt.utility/src/org/eclipse/jpt/utility/model/listener/ListChangeListener.java b/jpa/plugins/org.eclipse.jpt.utility/src/org/eclipse/jpt/utility/model/listener/ListChangeListener.java
deleted file mode 100644
index 74eab3a..0000000
--- a/jpa/plugins/org.eclipse.jpt.utility/src/org/eclipse/jpt/utility/model/listener/ListChangeListener.java
+++ /dev/null
@@ -1,80 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2008 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.utility.model.listener;
-
-import org.eclipse.jpt.utility.model.event.ListChangeEvent;
-
-/**
- * A "list change" event gets fired whenever a model changes a "bound"
- * list. You can register a ListChangeListener with a source
- * model so as to be notified of any bound list updates.
- * 
- * Provisional API: This interface is part of an interim API that is still
- * under development and expected to change significantly before reaching
- * stability. It is available at this early stage to solicit feedback from
- * pioneering adopters on the understanding that any code that uses this API
- * will almost certainly be broken (repeatedly) as the API evolves.
- */
-public interface ListChangeListener extends ChangeListener {
-
-	/**
-	 * This method gets called when items are added to a bound list.
-	 * 
-	 * @param event A ListChangeEvent describing the event source,
-	 * the list that changed, the items that were added, and the index
-	 * at which the items were added.
-	 */
-	void itemsAdded(ListChangeEvent event);
-
-	/**
-	 * This method gets called when items are removed from a bound list.
-	 * 
-	 * @param event A ListChangeEvent describing the event source,
-	 * the list that changed, the items that were removed, and the index
-	 * at which the items were removed.
-	 */
-	void itemsRemoved(ListChangeEvent event);
-
-	/**
-	 * This method gets called when items in a bound list are replaced.
-	 * 
-	 * @param event A ListChangeEvent describing the event source,
-	 * the list that changed, the items that were added, the items that were
-	 * replaced, and the index at which the items were replaced.
-	 */
-	void itemsReplaced(ListChangeEvent event);
-
-	/**
-	 * This method gets called when items in a bound list are moved.
-	 * 
-	 * @param event A ListChangeEvent describing the event source,
-	 * the list that changed, and the indices of where items were moved
-	 * from and to.
-	 */
-	void itemsMoved(ListChangeEvent event);
-
-	/**
-	 * This method gets called when a bound list is cleared.
-	 * 
-	 * @param event A ListChangeEvent object describing the event source 
-	 * and the list that changed.
-	 */
-	void listCleared(ListChangeEvent event);
-
-	/**
-	 * This method gets called when a bound list is changed in a manner
-	 * that is not easily characterized by the other methods in this interface.
-	 * 
-	 * @param event A ListChangeEvent object describing the event source 
-	 * and the list that changed.
-	 */
-	void listChanged(ListChangeEvent event);
-
-}
diff --git a/jpa/plugins/org.eclipse.jpt.utility/src/org/eclipse/jpt/utility/model/listener/MultiMethodReflectiveChangeListener.java b/jpa/plugins/org.eclipse.jpt.utility/src/org/eclipse/jpt/utility/model/listener/MultiMethodReflectiveChangeListener.java
deleted file mode 100644
index 9b69de5..0000000
--- a/jpa/plugins/org.eclipse.jpt.utility/src/org/eclipse/jpt/utility/model/listener/MultiMethodReflectiveChangeListener.java
+++ /dev/null
@@ -1,145 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2008 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.utility.model.listener;
-
-import java.lang.reflect.Method;
-import org.eclipse.jpt.utility.internal.ClassTools;
-import org.eclipse.jpt.utility.model.event.CollectionChangeEvent;
-import org.eclipse.jpt.utility.model.event.ListChangeEvent;
-import org.eclipse.jpt.utility.model.event.TreeChangeEvent;
-
-/**
- * This class is used by ReflectiveChangeListener when the requested listener
- * needs to implement multiple methods (i.e. CollectionChangeListener,
- * ListChangeListener, or TreeChangeListener).
- */
-class MultiMethodReflectiveChangeListener
-	extends ReflectiveChangeListener 
-	implements CollectionChangeListener, ListChangeListener, TreeChangeListener
-{
-	/** the methods we will invoke on the target object */
-	private final Method addMethod;
-	private final Method removeMethod;
-	private final Method replaceMethod;	// this can be null
-	private final Method moveMethod;	// this can be null
-	private final Method clearMethod;
-	private final Method changeMethod;
-
-
-	/**
-	 * The "replace" and "move" methods are optional.
-	 */
-	MultiMethodReflectiveChangeListener(Object target, Method addMethod, Method removeMethod, Method replaceMethod, Method moveMethod, Method clearMethod, Method changeMethod) {
-		super(target);
-		this.addMethod = addMethod;
-		this.removeMethod = removeMethod;
-		this.replaceMethod = replaceMethod;
-		this.moveMethod = moveMethod;
-		this.clearMethod = clearMethod;
-		this.changeMethod = changeMethod;
-	}
-
-	/**
-	 * No "replace" or "move" methods.
-	 */
-	MultiMethodReflectiveChangeListener(Object target, Method addMethod, Method removeMethod, Method clearMethod, Method changeMethod) {
-		this(target, addMethod, removeMethod, null, null, clearMethod, changeMethod);
-	}
-
-
-	// ********** CollectionChangeListener implementation **********
-
-	private void invoke(Method method, CollectionChangeEvent event) {
-		if (method.getParameterTypes().length == 0) {
-			ClassTools.executeMethod(method, this.target, EMPTY_COLLECTION_CHANGE_EVENT_ARRAY);
-		} else {
-			ClassTools.executeMethod(method, this.target, new CollectionChangeEvent[] {event});
-		}
-	}
-
-	public void itemsAdded(CollectionChangeEvent event) {
-		this.invoke(this.addMethod, event);
-	}
-
-	public void itemsRemoved(CollectionChangeEvent event) {
-		this.invoke(this.removeMethod, event);
-	}
-
-	public void collectionCleared(CollectionChangeEvent event) {
-		this.invoke(this.clearMethod, event);
-	}
-
-	public void collectionChanged(CollectionChangeEvent event) {
-		this.invoke(this.changeMethod, event);
-	}
-
-
-	// ********** ListChangeListener implementation **********
-
-	private void invoke(Method method, ListChangeEvent event) {
-		if (method.getParameterTypes().length == 0) {
-			ClassTools.executeMethod(method, this.target, EMPTY_LIST_CHANGE_EVENT_ARRAY);
-		} else {
-			ClassTools.executeMethod(method, this.target, new ListChangeEvent[] {event});
-		}
-	}
-
-	public void itemsAdded(ListChangeEvent event) {
-		this.invoke(this.addMethod, event);
-	}
-
-	public void itemsRemoved(ListChangeEvent event) {
-		this.invoke(this.removeMethod, event);
-	}
-
-	public void itemsReplaced(ListChangeEvent event) {
-		this.invoke(this.replaceMethod, event);
-	}
-
-	public void itemsMoved(ListChangeEvent event) {
-		this.invoke(this.moveMethod, event);
-	}
-
-	public void listCleared(ListChangeEvent event) {
-		this.invoke(this.clearMethod, event);
-	}
-
-	public void listChanged(ListChangeEvent event) {
-		this.invoke(this.changeMethod, event);
-	}
-
-
-	// ********** TreeChangeListener implementation **********
-
-	private void invoke(Method method, TreeChangeEvent event) {
-		if (method.getParameterTypes().length == 0) {
-			ClassTools.executeMethod(method, this.target, EMPTY_TREE_CHANGE_EVENT_ARRAY);
-		} else {
-			ClassTools.executeMethod(method, this.target, new TreeChangeEvent[] {event});
-		}
-	}
-
-	public void nodeAdded(TreeChangeEvent event) {
-		this.invoke(this.addMethod, event);
-	}
-
-	public void nodeRemoved(TreeChangeEvent event) {
-		this.invoke(this.removeMethod, event);
-	}
-
-	public void treeCleared(TreeChangeEvent event) {
-		this.invoke(this.clearMethod, event);
-	}
-
-	public void treeChanged(TreeChangeEvent event) {
-		this.invoke(this.changeMethod, event);
-	}
-
-}
diff --git a/jpa/plugins/org.eclipse.jpt.utility/src/org/eclipse/jpt/utility/model/listener/PropertyChangeAdapter.java b/jpa/plugins/org.eclipse.jpt.utility/src/org/eclipse/jpt/utility/model/listener/PropertyChangeAdapter.java
deleted file mode 100644
index 7842ba3..0000000
--- a/jpa/plugins/org.eclipse.jpt.utility/src/org/eclipse/jpt/utility/model/listener/PropertyChangeAdapter.java
+++ /dev/null
@@ -1,31 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.utility.model.listener;
-
-import org.eclipse.jpt.utility.model.event.PropertyChangeEvent;
-
-/**
- * Convenience implementation of PropertyChangeListener.
- * This is probably of limited use, since there only a single method to implement;
- * maybe as a null implementation.
- * 
- * Provisional API: This class is part of an interim API that is still
- * under development and expected to change significantly before reaching
- * stability. It is available at this early stage to solicit feedback from
- * pioneering adopters on the understanding that any code that uses this API
- * will almost certainly be broken (repeatedly) as the API evolves.
- */
-public class PropertyChangeAdapter implements PropertyChangeListener {
-
-	public void propertyChanged(PropertyChangeEvent event) {
-		// do nothing
-	}
-
-}
diff --git a/jpa/plugins/org.eclipse.jpt.utility/src/org/eclipse/jpt/utility/model/listener/PropertyChangeListener.java b/jpa/plugins/org.eclipse.jpt.utility/src/org/eclipse/jpt/utility/model/listener/PropertyChangeListener.java
deleted file mode 100644
index f76bed7..0000000
--- a/jpa/plugins/org.eclipse.jpt.utility/src/org/eclipse/jpt/utility/model/listener/PropertyChangeListener.java
+++ /dev/null
@@ -1,35 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2008 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.utility.model.listener;
-
-import org.eclipse.jpt.utility.model.event.PropertyChangeEvent;
-
-/**
- * A "property change" event gets fired whenever a model changes a "bound"
- * property. You can register a PropertyChangeListener with a source
- * model so as to be notified of any bound property updates.
- * 
- * Provisional API: This interface is part of an interim API that is still
- * under development and expected to change significantly before reaching
- * stability. It is available at this early stage to solicit feedback from
- * pioneering adopters on the understanding that any code that uses this API
- * will almost certainly be broken (repeatedly) as the API evolves.
- */
-public interface PropertyChangeListener extends ChangeListener {
-
-	/**
-	 * This method gets called when a model has changed a bound property.
-	 * 
-	 * @param event A StateChangeEvent describing the event source
-	 * and the property's old and new values.
-	 */
-	void propertyChanged(PropertyChangeEvent event);
-
-}
diff --git a/jpa/plugins/org.eclipse.jpt.utility/src/org/eclipse/jpt/utility/model/listener/ReflectiveChangeListener.java b/jpa/plugins/org.eclipse.jpt.utility/src/org/eclipse/jpt/utility/model/listener/ReflectiveChangeListener.java
deleted file mode 100644
index 0cab7d7..0000000
--- a/jpa/plugins/org.eclipse.jpt.utility/src/org/eclipse/jpt/utility/model/listener/ReflectiveChangeListener.java
+++ /dev/null
@@ -1,312 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2008 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.utility.model.listener;
-
-import java.lang.reflect.Method;
-import org.eclipse.jpt.utility.internal.ClassTools;
-import org.eclipse.jpt.utility.model.event.ChangeEvent;
-import org.eclipse.jpt.utility.model.event.CollectionChangeEvent;
-import org.eclipse.jpt.utility.model.event.ListChangeEvent;
-import org.eclipse.jpt.utility.model.event.PropertyChangeEvent;
-import org.eclipse.jpt.utility.model.event.StateChangeEvent;
-import org.eclipse.jpt.utility.model.event.TreeChangeEvent;
-
-/**
- * This factory builds listeners that reflectively forward ChangeEvents.
- * If you are worried about having too many little classes that have to be
- * loaded and maintained by the class loader, you can use one of these.
- * Of course, this comes with the additional overhead of reflection....
- * Also note that the validity of the method name is not checked at compile
- * time, but at runtime; although we *do* check the method as soon as the
- * listener is instantiated.
- * 
- * Provisional API: This class is part of an interim API that is still
- * under development and expected to change significantly before reaching
- * stability. It is available at this early stage to solicit feedback from
- * pioneering adopters on the understanding that any code that uses this API
- * will almost certainly be broken (repeatedly) as the API evolves.
- */
-public abstract class ReflectiveChangeListener {
-
-	/** the target object on which we will invoke the method */
-	protected final Object target;
-
-
-	protected static final Class<StateChangeEvent> STATE_CHANGE_EVENT_CLASS = StateChangeEvent.class;
-	@SuppressWarnings("unchecked")
-	protected static final Class<StateChangeEvent>[] STATE_CHANGE_EVENT_CLASS_ARRAY = new Class[] {STATE_CHANGE_EVENT_CLASS};
-	protected static final StateChangeEvent[] EMPTY_STATE_CHANGE_EVENT_ARRAY = new StateChangeEvent[0];
-
-	protected static final Class<PropertyChangeEvent> PROPERTY_CHANGE_EVENT_CLASS = PropertyChangeEvent.class;
-	@SuppressWarnings("unchecked")
-	protected static final Class<PropertyChangeEvent>[] PROPERTY_CHANGE_EVENT_CLASS_ARRAY = new Class[] {PROPERTY_CHANGE_EVENT_CLASS};
-	protected static final PropertyChangeEvent[] EMPTY_PROPERTY_CHANGE_EVENT_ARRAY = new PropertyChangeEvent[0];
-
-	protected static final Class<CollectionChangeEvent> COLLECTION_CHANGE_EVENT_CLASS = CollectionChangeEvent.class;
-	@SuppressWarnings("unchecked")
-	protected static final Class<CollectionChangeEvent>[] COLLECTION_CHANGE_EVENT_CLASS_ARRAY = new Class[] {COLLECTION_CHANGE_EVENT_CLASS};
-	protected static final CollectionChangeEvent[] EMPTY_COLLECTION_CHANGE_EVENT_ARRAY = new CollectionChangeEvent[0];
-
-	protected static final Class<ListChangeEvent> LIST_CHANGE_EVENT_CLASS = ListChangeEvent.class;
-	@SuppressWarnings("unchecked")
-	protected static final Class<ListChangeEvent>[] LIST_CHANGE_EVENT_CLASS_ARRAY = new Class[] {LIST_CHANGE_EVENT_CLASS};
-	protected static final ListChangeEvent[] EMPTY_LIST_CHANGE_EVENT_ARRAY = new ListChangeEvent[0];
-
-	protected static final Class<TreeChangeEvent> TREE_CHANGE_EVENT_CLASS = TreeChangeEvent.class;
-	@SuppressWarnings("unchecked")
-	protected static final Class<TreeChangeEvent>[] TREE_CHANGE_EVENT_CLASS_ARRAY = new Class[] {TREE_CHANGE_EVENT_CLASS};
-	protected static final TreeChangeEvent[] EMPTY_TREE_CHANGE_EVENT_ARRAY = new TreeChangeEvent[0];
-
-
-
-	// ********** helper methods **********
-
-	/**
-	 * Find and return a method implemented by the target that can be invoked
-	 * reflectively when a change event occurs.
-	 */
-	private static Method findChangeListenerMethod(Object target, String methodName, Class<? extends ChangeEvent>[] eventClassArray) {
-		Method method;
-		try {
-			method = ClassTools.method(target, methodName, eventClassArray);
-		} catch (NoSuchMethodException ex1) {
-			try {
-				method = ClassTools.method(target, methodName);
-			} catch (NoSuchMethodException ex2) {
-				throw new RuntimeException(ex2);  // "checked" exceptions bite
-			}
-		}
-		return method;
-	}
-
-	/**
-	 * Check whether the specified method is suitable for being invoked when a
-	 * change event has occurred. Throw an exception if it is not suitable.
-	 */
-	private static void checkChangeListenerMethod(Method method, Class<? extends ChangeEvent> eventClass) {
-		Class<?>[] parmTypes = method.getParameterTypes();
-		int parmTypesLength = parmTypes.length;
-		if (parmTypesLength == 0) {
-			return;
-		}
-		if ((parmTypesLength == 1) && parmTypes[0].isAssignableFrom(eventClass)) {
-			return;
-		}
-		throw new IllegalArgumentException(method.toString());
-	}
-
-
-	// ********** factory methods: StateChangeListener **********
-
-	/**
-	 * Construct a state change listener that will invoke the specified method
-	 * on the specified target.
-	 */
-	public static StateChangeListener buildStateChangeListener(Object target, Method method) {
-		checkChangeListenerMethod(method, STATE_CHANGE_EVENT_CLASS);
-		return new SingleMethodReflectiveChangeListener(target, method);
-	}
-
-	/**
-	 * Construct a state change listener that will invoke the specified method
-	 * on the specified target. If a single-argument method with the specified
-	 * name and appropriate argument is found, it will be invoked; otherwise,
-	 * a zero-argument method with the specified name will be invoked.
-	 */
-	public static StateChangeListener buildStateChangeListener(Object target, String methodName) {
-		return buildStateChangeListener(target, findChangeListenerMethod(target, methodName, STATE_CHANGE_EVENT_CLASS_ARRAY));
-	}
-
-
-	// ********** factory methods: PropertyChangeListener **********
-
-	/**
-	 * Construct a property change listener that will invoke the specified method
-	 * on the specified target.
-	 */
-	public static PropertyChangeListener buildPropertyChangeListener(Object target, Method method) {
-		checkChangeListenerMethod(method, PROPERTY_CHANGE_EVENT_CLASS);
-		return new SingleMethodReflectiveChangeListener(target, method);
-	}
-
-	/**
-	 * Construct a property change listener that will invoke the specified method
-	 * on the specified target. If a single-argument method with the specified
-	 * name and appropriate argument is found, it will be invoked; otherwise,
-	 * a zero-argument method with the specified name will be invoked.
-	 */
-	public static PropertyChangeListener buildPropertyChangeListener(Object target, String methodName) {
-		return buildPropertyChangeListener(target, findChangeListenerMethod(target, methodName, PROPERTY_CHANGE_EVENT_CLASS_ARRAY));
-	}
-
-
-	// ********** factory methods: CollectionChangeListener **********
-
-	/**
-	 * Construct a collection change listener that will invoke the specified methods
-	 * on the specified target.
-	 */
-	public static CollectionChangeListener buildCollectionChangeListener(Object target, Method addMethod, Method removeMethod, Method clearMethod, Method changeMethod) {
-		checkChangeListenerMethod(addMethod, COLLECTION_CHANGE_EVENT_CLASS);
-		checkChangeListenerMethod(removeMethod, COLLECTION_CHANGE_EVENT_CLASS);
-		checkChangeListenerMethod(clearMethod, COLLECTION_CHANGE_EVENT_CLASS);
-		checkChangeListenerMethod(changeMethod, COLLECTION_CHANGE_EVENT_CLASS);
-		return new MultiMethodReflectiveChangeListener(target, addMethod, removeMethod, clearMethod, changeMethod);
-	}
-
-	/**
-	 * Construct a collection change listener that will invoke the specified method
-	 * on the specified target for any change event.
-	 */
-	public static CollectionChangeListener buildCollectionChangeListener(Object target, Method method) {
-		return buildCollectionChangeListener(target, method, method, method, method);
-	}
-
-	/**
-	 * Construct a collection change listener that will invoke the specified methods
-	 * on the specified target for change events. If a single-argument method
-	 * with the specified name and appropriate argument is found, it will be invoked;
-	 * otherwise, a zero-argument method with the specified name will be invoked.
-	 */
-	public static CollectionChangeListener buildCollectionChangeListener(Object target, String addMethodName, String removeMethodName, String clearMethodName, String changeMethodName) {
-		return buildCollectionChangeListener(
-				target,
-				findChangeListenerMethod(target, addMethodName, COLLECTION_CHANGE_EVENT_CLASS_ARRAY),
-				findChangeListenerMethod(target, removeMethodName, COLLECTION_CHANGE_EVENT_CLASS_ARRAY),
-				findChangeListenerMethod(target, clearMethodName, COLLECTION_CHANGE_EVENT_CLASS_ARRAY),
-				findChangeListenerMethod(target, changeMethodName, COLLECTION_CHANGE_EVENT_CLASS_ARRAY)
-		);
-	}
-
-	/**
-	 * Construct a collection change listener that will invoke the specified method
-	 * on the specified target for any change event. If a single-argument method
-	 * with the specified name and appropriate argument is found, it will be invoked;
-	 * otherwise, a zero-argument method with the specified name will be invoked.
-	 */
-	public static CollectionChangeListener buildCollectionChangeListener(Object target, String methodName) {
-		return buildCollectionChangeListener(target, findChangeListenerMethod(target, methodName, COLLECTION_CHANGE_EVENT_CLASS_ARRAY));
-	}
-
-
-	// ********** factory methods: ListChangeListener **********
-
-	/**
-	 * Construct a list change listener that will invoke the specified methods
-	 * on the specified target.
-	 */
-	public static ListChangeListener buildListChangeListener(Object target, Method addMethod, Method removeMethod, Method replaceMethod, Method moveMethod, Method clearMethod, Method changeMethod) {
-		checkChangeListenerMethod(addMethod, LIST_CHANGE_EVENT_CLASS);
-		checkChangeListenerMethod(removeMethod, LIST_CHANGE_EVENT_CLASS);
-		checkChangeListenerMethod(replaceMethod, LIST_CHANGE_EVENT_CLASS);
-		checkChangeListenerMethod(moveMethod, LIST_CHANGE_EVENT_CLASS);
-		checkChangeListenerMethod(clearMethod, LIST_CHANGE_EVENT_CLASS);
-		checkChangeListenerMethod(changeMethod, LIST_CHANGE_EVENT_CLASS);
-		return new MultiMethodReflectiveChangeListener(target, addMethod, removeMethod, replaceMethod, moveMethod, clearMethod, changeMethod);
-	}
-
-	/**
-	 * Construct a list change listener that will invoke the specified method
-	 * on the specified target for any change event.
-	 */
-	public static ListChangeListener buildListChangeListener(Object target, Method method) {
-		return buildListChangeListener(target, method, method, method, method, method, method);
-	}
-
-	/**
-	 * Construct a list change listener that will invoke the specified methods
-	 * on the specified target for change events. If a single-argument method
-	 * with the specified name and appropriate argument is found, it will be invoked;
-	 * otherwise, a zero-argument method with the specified name will be invoked.
-	 */
-	public static ListChangeListener buildListChangeListener(Object target, String addMethodName, String removeMethodName, String replaceMethodName, String moveMethodName, String clearMethodName, String changeMethodName) {
-		return buildListChangeListener(
-				target,
-				findChangeListenerMethod(target, addMethodName, LIST_CHANGE_EVENT_CLASS_ARRAY),
-				findChangeListenerMethod(target, removeMethodName, LIST_CHANGE_EVENT_CLASS_ARRAY),
-				findChangeListenerMethod(target, replaceMethodName, LIST_CHANGE_EVENT_CLASS_ARRAY),
-				findChangeListenerMethod(target, moveMethodName, LIST_CHANGE_EVENT_CLASS_ARRAY),
-				findChangeListenerMethod(target, clearMethodName, LIST_CHANGE_EVENT_CLASS_ARRAY),
-				findChangeListenerMethod(target, changeMethodName, LIST_CHANGE_EVENT_CLASS_ARRAY)
-		);
-	}
-
-	/**
-	 * Construct a list change listener that will invoke the specified method
-	 * on the specified target for any change event. If a single-argument method
-	 * with the specified name and appropriate argument is found, it will be invoked;
-	 * otherwise, a zero-argument method with the specified name will be invoked.
-	 */
-	public static ListChangeListener buildListChangeListener(Object target, String methodName) {
-		return buildListChangeListener(target, findChangeListenerMethod(target, methodName, LIST_CHANGE_EVENT_CLASS_ARRAY));
-	}
-
-
-	// ********** factory methods: TreeChangeListener **********
-
-	/**
-	 * Construct a tree change listener that will invoke the specified methods
-	 * on the specified target.
-	 */
-	public static TreeChangeListener buildTreeChangeListener(Object target, Method addMethod, Method removeMethod, Method clearMethod, Method changeMethod) {
-		checkChangeListenerMethod(addMethod, TREE_CHANGE_EVENT_CLASS);
-		checkChangeListenerMethod(removeMethod, TREE_CHANGE_EVENT_CLASS);
-		checkChangeListenerMethod(clearMethod, TREE_CHANGE_EVENT_CLASS);
-		checkChangeListenerMethod(changeMethod, TREE_CHANGE_EVENT_CLASS);
-		return new MultiMethodReflectiveChangeListener(target, addMethod, removeMethod, clearMethod, changeMethod);
-	}
-
-	/**
-	 * Construct a tree change listener that will invoke the specified method
-	 * on the specified target for any change event.
-	 */
-	public static TreeChangeListener buildTreeChangeListener(Object target, Method method) {
-		return buildTreeChangeListener(target, method, method, method, method);
-	}
-
-	/**
-	 * Construct a tree change listener that will invoke the specified methods
-	 * on the specified target for change events. If a single-argument method
-	 * with the specified name and appropriate argument is found, it will be invoked;
-	 * otherwise, a zero-argument method with the specified name will be invoked.
-	 */
-	public static TreeChangeListener buildTreeChangeListener(Object target, String addMethodName, String removeMethodName, String clearMethodName, String changeMethodName) {
-		return buildTreeChangeListener(
-				target,
-				findChangeListenerMethod(target, addMethodName, TREE_CHANGE_EVENT_CLASS_ARRAY),
-				findChangeListenerMethod(target, removeMethodName, TREE_CHANGE_EVENT_CLASS_ARRAY),
-				findChangeListenerMethod(target, clearMethodName, TREE_CHANGE_EVENT_CLASS_ARRAY),
-				findChangeListenerMethod(target, changeMethodName, TREE_CHANGE_EVENT_CLASS_ARRAY)
-		);
-	}
-
-	/**
-	 * Construct a tree change listener that will invoke the specified method
-	 * on the specified target for any change event. If a single-argument method
-	 * with the specified name and appropriate argument is found, it will be invoked;
-	 * otherwise, a zero-argument method with the specified name will be invoked.
-	 */
-	public static TreeChangeListener buildTreeChangeListener(Object target, String methodName) {
-		return buildTreeChangeListener(target, findChangeListenerMethod(target, methodName, TREE_CHANGE_EVENT_CLASS_ARRAY));
-	}
-
-
-	// ********** constructor **********
-
-	/**
-	 * Construct a listener that will invoke the specified method
-	 * on the specified target.
-	 */
-	protected ReflectiveChangeListener(Object target) {
-		super();
-		this.target = target;
-	}
-
-}
diff --git a/jpa/plugins/org.eclipse.jpt.utility/src/org/eclipse/jpt/utility/model/listener/SingleMethodReflectiveChangeListener.java b/jpa/plugins/org.eclipse.jpt.utility/src/org/eclipse/jpt/utility/model/listener/SingleMethodReflectiveChangeListener.java
deleted file mode 100644
index ba7ea24..0000000
--- a/jpa/plugins/org.eclipse.jpt.utility/src/org/eclipse/jpt/utility/model/listener/SingleMethodReflectiveChangeListener.java
+++ /dev/null
@@ -1,60 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2008 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.utility.model.listener;
-
-import java.lang.reflect.Method;
-import org.eclipse.jpt.utility.internal.ClassTools;
-import org.eclipse.jpt.utility.model.event.PropertyChangeEvent;
-import org.eclipse.jpt.utility.model.event.StateChangeEvent;
-
-/**
- * This class is used by ReflectiveChangeListener when the requested listener
- * need only implement a single method (i.e. StateChangeListener or
- * PropertyChangeListener).
- */
-class SingleMethodReflectiveChangeListener
-	extends ReflectiveChangeListener
-	implements StateChangeListener, PropertyChangeListener
-{
-
-	/** the method we will invoke on the target object */
-	private final Method method;
-	/** cache the number of arguments */
-	private final boolean methodIsZeroArgument;
-
-	SingleMethodReflectiveChangeListener(Object target, Method method) {
-		super(target);
-		this.method = method;
-		this.methodIsZeroArgument = method.getParameterTypes().length == 0;
-	}
-
-
-	// ********** StateChangeListener implementation **********
-
-	public void stateChanged(StateChangeEvent event) {
-		if (this.methodIsZeroArgument) {
-			ClassTools.executeMethod(this.method, this.target, EMPTY_STATE_CHANGE_EVENT_ARRAY);
-		} else {
-			ClassTools.executeMethod(this.method, this.target, new StateChangeEvent[] {event});
-		}
-	}
-
-
-	// ********** PropertyChangeListener implementation **********
-
-	public void propertyChanged(PropertyChangeEvent event) {
-		if (this.methodIsZeroArgument) {
-			ClassTools.executeMethod(this.method, this.target, EMPTY_PROPERTY_CHANGE_EVENT_ARRAY);
-		} else {
-			ClassTools.executeMethod(this.method, this.target, new PropertyChangeEvent[] {event});
-		}
-	}
-
-}
diff --git a/jpa/plugins/org.eclipse.jpt.utility/src/org/eclipse/jpt/utility/model/listener/StateChangeAdapter.java b/jpa/plugins/org.eclipse.jpt.utility/src/org/eclipse/jpt/utility/model/listener/StateChangeAdapter.java
deleted file mode 100644
index 97c20a8..0000000
--- a/jpa/plugins/org.eclipse.jpt.utility/src/org/eclipse/jpt/utility/model/listener/StateChangeAdapter.java
+++ /dev/null
@@ -1,31 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.utility.model.listener;
-
-import org.eclipse.jpt.utility.model.event.StateChangeEvent;
-
-/**
- * Convenience implementation of StateChangeListener.
- * This is probably of limited use, since there only a single method to implement;
- * maybe as a null implementation.
- * 
- * Provisional API: This class is part of an interim API that is still
- * under development and expected to change significantly before reaching
- * stability. It is available at this early stage to solicit feedback from
- * pioneering adopters on the understanding that any code that uses this API
- * will almost certainly be broken (repeatedly) as the API evolves.
- */
-public class StateChangeAdapter implements StateChangeListener {
-
-	public void stateChanged(StateChangeEvent event) {
-		// do nothing
-	}
-
-}
diff --git a/jpa/plugins/org.eclipse.jpt.utility/src/org/eclipse/jpt/utility/model/listener/StateChangeListener.java b/jpa/plugins/org.eclipse.jpt.utility/src/org/eclipse/jpt/utility/model/listener/StateChangeListener.java
deleted file mode 100644
index 1ce6ba5..0000000
--- a/jpa/plugins/org.eclipse.jpt.utility/src/org/eclipse/jpt/utility/model/listener/StateChangeListener.java
+++ /dev/null
@@ -1,35 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2008 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.utility.model.listener;
-
-import org.eclipse.jpt.utility.model.event.StateChangeEvent;
-
-/**
- * A generic "state change" event gets delivered whenever a model changes to 
- * such extent that it cannot be delineated all aspects of it that have changed. 
- * You can register a StateChangeListener with a source model so as to be notified 
- * of any such changes.
- * 
- * Provisional API: This interface is part of an interim API that is still
- * under development and expected to change significantly before reaching
- * stability. It is available at this early stage to solicit feedback from
- * pioneering adopters on the understanding that any code that uses this API
- * will almost certainly be broken (repeatedly) as the API evolves.
- */
-public interface StateChangeListener extends ChangeListener {
-
-	/**
-	 * This method gets called when a model has changed in some general fashion.
-	 * 
-	 * @param event A StateChangeEvent describing the event source.
-	 */
-	void stateChanged(StateChangeEvent event);
-
-}
diff --git a/jpa/plugins/org.eclipse.jpt.utility/src/org/eclipse/jpt/utility/model/listener/TreeChangeAdapter.java b/jpa/plugins/org.eclipse.jpt.utility/src/org/eclipse/jpt/utility/model/listener/TreeChangeAdapter.java
deleted file mode 100644
index 3b46202..0000000
--- a/jpa/plugins/org.eclipse.jpt.utility/src/org/eclipse/jpt/utility/model/listener/TreeChangeAdapter.java
+++ /dev/null
@@ -1,48 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2008 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.utility.model.listener;
-
-import org.eclipse.jpt.utility.model.event.TreeChangeEvent;
-
-/**
- * Convenience implementation of TreeChangeListener.
- * 
- * Provisional API: This class is part of an interim API that is still
- * under development and expected to change significantly before reaching
- * stability. It is available at this early stage to solicit feedback from
- * pioneering adopters on the understanding that any code that uses this API
- * will almost certainly be broken (repeatedly) as the API evolves.
- */
-public class TreeChangeAdapter implements TreeChangeListener {
-
-	/**
-	 * Default constructor.
-	 */
-	public TreeChangeAdapter() {
-		super();
-	}
-
-	public void nodeAdded(TreeChangeEvent event) {
-		// do nothing
-	}
-
-	public void nodeRemoved(TreeChangeEvent event) {
-		// do nothing
-	}
-
-	public void treeCleared(TreeChangeEvent event) {
-		// do nothing
-	}
-
-	public void treeChanged(TreeChangeEvent event) {
-		// do nothing
-	}
-
-}
diff --git a/jpa/plugins/org.eclipse.jpt.utility/src/org/eclipse/jpt/utility/model/listener/TreeChangeListener.java b/jpa/plugins/org.eclipse.jpt.utility/src/org/eclipse/jpt/utility/model/listener/TreeChangeListener.java
deleted file mode 100644
index 7591f9d..0000000
--- a/jpa/plugins/org.eclipse.jpt.utility/src/org/eclipse/jpt/utility/model/listener/TreeChangeListener.java
+++ /dev/null
@@ -1,62 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2008 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.utility.model.listener;
-
-import org.eclipse.jpt.utility.model.event.TreeChangeEvent;
-
-/**
- * A "tree change" event gets fired whenever a model changes a "bound"
- * tree. You can register a TreeChangeListener with a source
- * model so as to be notified of any bound tree updates.
- * 
- * Provisional API: This interface is part of an interim API that is still
- * under development and expected to change significantly before reaching
- * stability. It is available at this early stage to solicit feedback from
- * pioneering adopters on the understanding that any code that uses this API
- * will almost certainly be broken (repeatedly) as the API evolves.
- */
-public interface TreeChangeListener extends ChangeListener {
-
-	/**
-	 * This method gets called when a node is added to a bound tree.
-	 * 
-	 * @param event A TreeChangeEvent describing the event source,
-	 * the tree that changed, and the path to the node that was added.
-	 */
-	void nodeAdded(TreeChangeEvent event);
-
-	/**
-	 * This method gets called when a node is removed from a bound tree.
-	 * 
-	 * @param event A TreeChangeEvent describing the event source,
-	 * the tree that changed, and the path to the node that was removed.
-	 */
-	void nodeRemoved(TreeChangeEvent event);
-
-	/**
-	 * This method gets called when a bound tree is cleared.
-	 * 
-	 * @param event A TreeChangeEvent describing the event source,
-	 * the tree that changed, and an empty path.
-	 */
-	void treeCleared(TreeChangeEvent event);
-
-	/**
-	 * This method gets called when a portion of a bound tree is changed in
-	 * a manner that is not easily characterized by the other methods in this
-	 * interface.
-	 * 
-	 * @param event A TreeChangeEvent describing the event source,
-	 * the tree that changed, and the path to the branch of the
-	 * tree that changed.
-	 */
-	void treeChanged(TreeChangeEvent event);
-
-}
diff --git a/jpa/plugins/org.eclipse.jpt.utility/src/org/eclipse/jpt/utility/model/value/CollectionValueModel.java b/jpa/plugins/org.eclipse.jpt.utility/src/org/eclipse/jpt/utility/model/value/CollectionValueModel.java
deleted file mode 100644
index ba25cf9..0000000
--- a/jpa/plugins/org.eclipse.jpt.utility/src/org/eclipse/jpt/utility/model/value/CollectionValueModel.java
+++ /dev/null
@@ -1,40 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2008 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.utility.model.value;
-
-import java.util.Iterator;
-import org.eclipse.jpt.utility.model.Model;
-
-/**
- * Interface used to abstract collection accessing and
- * change notification and make it more pluggable.
- * 
- * Provisional API: This interface is part of an interim API that is still
- * under development and expected to change significantly before reaching
- * stability. It is available at this early stage to solicit feedback from
- * pioneering adopters on the understanding that any code that uses this API
- * will almost certainly be broken (repeatedly) as the API evolves.
- */
-public interface CollectionValueModel<E>
-	extends Model, Iterable<E>
-{
-
-	/**
-	 * Return the collection's values.
-	 */
-	Iterator<E> iterator();
-		String VALUES = "values";
-
-	/**
-	 * Return the size of the collection value.
-	 */
-	int size();
-
-}
diff --git a/jpa/plugins/org.eclipse.jpt.utility/src/org/eclipse/jpt/utility/model/value/ListValueModel.java b/jpa/plugins/org.eclipse.jpt.utility/src/org/eclipse/jpt/utility/model/value/ListValueModel.java
deleted file mode 100644
index 65eaa77..0000000
--- a/jpa/plugins/org.eclipse.jpt.utility/src/org/eclipse/jpt/utility/model/value/ListValueModel.java
+++ /dev/null
@@ -1,55 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2008 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.utility.model.value;
-
-import java.util.Iterator;
-import java.util.ListIterator;
-import org.eclipse.jpt.utility.model.Model;
-
-/**
- * Interface used to abstract list accessing and
- * change notification and make it more pluggable.
- * 
- * Provisional API: This interface is part of an interim API that is still
- * under development and expected to change significantly before reaching
- * stability. It is available at this early stage to solicit feedback from
- * pioneering adopters on the understanding that any code that uses this API
- * will almost certainly be broken (repeatedly) as the API evolves.
- */
-public interface ListValueModel<E>
-	extends Model, Iterable<E>
-{
-	/**
-	 * Return the list's values.
-	 */
-	Iterator<E> iterator();
-		String LIST_VALUES = "list values";
-
-	/**
-	 * Return the list's values.
-	 */
-	ListIterator<E> listIterator();
-
-	/**
-	 * Return the size of the list.
-	 */
-	int size();
-
-	/**
-	 * Return the item at the specified index of the list.
-	 */
-	E get(int index);
-
-	/**
-	 * Return the list's values.
-	 */
-	Object[] toArray();
-
-}
diff --git a/jpa/plugins/org.eclipse.jpt.utility/src/org/eclipse/jpt/utility/model/value/PropertyValueModel.java b/jpa/plugins/org.eclipse.jpt.utility/src/org/eclipse/jpt/utility/model/value/PropertyValueModel.java
deleted file mode 100644
index 82ee3c0..0000000
--- a/jpa/plugins/org.eclipse.jpt.utility/src/org/eclipse/jpt/utility/model/value/PropertyValueModel.java
+++ /dev/null
@@ -1,34 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2008 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.utility.model.value;
-
-import org.eclipse.jpt.utility.model.Model;
-
-/**
- * Interface used to abstract property accessing and
- * change notification and make it more pluggable.
- * 
- * Provisional API: This interface is part of an interim API that is still
- * under development and expected to change significantly before reaching
- * stability. It is available at this early stage to solicit feedback from
- * pioneering adopters on the understanding that any code that uses this API
- * will almost certainly be broken (repeatedly) as the API evolves.
- */
-public interface PropertyValueModel<T>
-	extends Model
-{
-
-	/**
-	 * Return the property's value.
-	 */
-	T getValue();
-		String VALUE = "value";
-
-}
diff --git a/jpa/plugins/org.eclipse.jpt.utility/src/org/eclipse/jpt/utility/model/value/TreeNodeValueModel.java b/jpa/plugins/org.eclipse.jpt.utility/src/org/eclipse/jpt/utility/model/value/TreeNodeValueModel.java
deleted file mode 100644
index a6bcea8..0000000
--- a/jpa/plugins/org.eclipse.jpt.utility/src/org/eclipse/jpt/utility/model/value/TreeNodeValueModel.java
+++ /dev/null
@@ -1,71 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2008 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.utility.model.value;
-
-/**
- * Extend WritablePropertyValueModel to better support TreeModelAdapter.
- * 
- * Implementors of this interface should fire a "state change" event
- * whenever the node's internal state changes in a way that the
- * tree listeners should be notified.
- * 
- * Implementors of this interface should also fire a "value property change"
- * event whenever the node's value changes. Typically, only nodes that
- * hold "primitive" data will fire this event.
- * 
- * @see org.eclipse.jpt.utility.internal.model.value.AbstractTreeNodeValueModel
- * 
- * Provisional API: This interface is part of an interim API that is still
- * under development and expected to change significantly before reaching
- * stability. It is available at this early stage to solicit feedback from
- * pioneering adopters on the understanding that any code that uses this API
- * will almost certainly be broken (repeatedly) as the API evolves.
- */
-public interface TreeNodeValueModel<T>
-	extends WritablePropertyValueModel<T>
-{
-
-	/**
-	 * Return the node's parent node; null if the node
-	 * is the root.
-	 */
-	TreeNodeValueModel<T> parent();
-
-	/**
-	 * Return the path to the node.
-	 */
-	TreeNodeValueModel<T>[] path();
-
-	/**
-	 * Return a list value model of the node's child nodes.
-	 */
-	ListValueModel<TreeNodeValueModel<T>> childrenModel();
-
-	/**
-	 * Return the node's child at the specified index.
-	 */
-	TreeNodeValueModel<T> child(int index);
-
-	/**
-	 * Return the size of the node's list of children.
-	 */
-	int childrenSize();
-
-	/**
-	 * Return the index in the node's list of children of the specified child.
-	 */
-	int indexOfChild(TreeNodeValueModel<T> child);
-
-	/**
-	 * Return whether the node is a leaf (i.e. it has no children)
-	 */
-	boolean isLeaf();
-
-}
diff --git a/jpa/plugins/org.eclipse.jpt.utility/src/org/eclipse/jpt/utility/model/value/TreeValueModel.java b/jpa/plugins/org.eclipse.jpt.utility/src/org/eclipse/jpt/utility/model/value/TreeValueModel.java
deleted file mode 100644
index ec87a27..0000000
--- a/jpa/plugins/org.eclipse.jpt.utility/src/org/eclipse/jpt/utility/model/value/TreeValueModel.java
+++ /dev/null
@@ -1,34 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2008 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.utility.model.value;
-
-import java.util.Iterator;
-import org.eclipse.jpt.utility.model.Model;
-
-/**
- * Interface used to abstract tree accessing and
- * change notification and make it more pluggable.
- * 
- * Provisional API: This interface is part of an interim API that is still
- * under development and expected to change significantly before reaching
- * stability. It is available at this early stage to solicit feedback from
- * pioneering adopters on the understanding that any code that uses this API
- * will almost certainly be broken (repeatedly) as the API evolves.
- */
-public interface TreeValueModel<E>
-	extends Model
-{
-	/**
-	 * Return the tree's nodes.
-	 */
-	Iterator<E> nodes();
-		String NODES = "nodes";
-
-}
diff --git a/jpa/plugins/org.eclipse.jpt.utility/src/org/eclipse/jpt/utility/model/value/WritablePropertyValueModel.java b/jpa/plugins/org.eclipse.jpt.utility/src/org/eclipse/jpt/utility/model/value/WritablePropertyValueModel.java
deleted file mode 100644
index c2ddace..0000000
--- a/jpa/plugins/org.eclipse.jpt.utility/src/org/eclipse/jpt/utility/model/value/WritablePropertyValueModel.java
+++ /dev/null
@@ -1,31 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2008 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.utility.model.value;
-
-/**
- * Extend ValueModel to allow the setting of the property's value.
- * 
- * Provisional API: This interface is part of an interim API that is still
- * under development and expected to change significantly before reaching
- * stability. It is available at this early stage to solicit feedback from
- * pioneering adopters on the understanding that any code that uses this API
- * will almost certainly be broken (repeatedly) as the API evolves.
- */
-public interface WritablePropertyValueModel<T>
-	extends PropertyValueModel<T>
-{
-
-	/**
-	 * Set the value and fire a property change notification.
-	 * @see PropertyValueModel#VALUE
-	 */
-	void setValue(T value);
-
-}
diff --git a/jpa/tests/org.eclipse.jpt.core.tests.extension.resource/.classpath b/jpa/tests/org.eclipse.jpt.core.tests.extension.resource/.classpath
deleted file mode 100644
index d0ea689..0000000
--- a/jpa/tests/org.eclipse.jpt.core.tests.extension.resource/.classpath
+++ /dev/null
@@ -1,12 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<classpath>
-	<classpathentry kind="src" path="src"/>
-	<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/J2SE-1.5"/>
-	<classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins">
-		<accessrules>
-			<accessrule kind="accessible" pattern="org/eclipse/jpt/core/**"/>
-			<accessrule kind="accessible" pattern="org/eclipse/jpt/ui/**"/>
-		</accessrules>
-	</classpathentry>
-	<classpathentry kind="output" path="bin"/>
-</classpath>
diff --git a/jpa/tests/org.eclipse.jpt.core.tests.extension.resource/.cvsignore b/jpa/tests/org.eclipse.jpt.core.tests.extension.resource/.cvsignore
deleted file mode 100644
index a196dd7..0000000
--- a/jpa/tests/org.eclipse.jpt.core.tests.extension.resource/.cvsignore
+++ /dev/null
@@ -1,6 +0,0 @@
-bin
-@dot
-temp.folder
-build.xml
-javaCompiler...args
-javaCompiler...args.*
\ No newline at end of file
diff --git a/jpa/tests/org.eclipse.jpt.core.tests.extension.resource/.project b/jpa/tests/org.eclipse.jpt.core.tests.extension.resource/.project
deleted file mode 100644
index bb6561e..0000000
--- a/jpa/tests/org.eclipse.jpt.core.tests.extension.resource/.project
+++ /dev/null
@@ -1,28 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<projectDescription>
-	<name>org.eclipse.jpt.core.tests.extension.resource</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.extension.resource/.settings/org.eclipse.core.resources.prefs b/jpa/tests/org.eclipse.jpt.core.tests.extension.resource/.settings/org.eclipse.core.resources.prefs
deleted file mode 100644
index 55044aa..0000000
--- a/jpa/tests/org.eclipse.jpt.core.tests.extension.resource/.settings/org.eclipse.core.resources.prefs
+++ /dev/null
@@ -1,3 +0,0 @@
-#Mon Apr 07 14:26:32 EDT 2008
-eclipse.preferences.version=1
-encoding/<project>=ISO-8859-1
diff --git a/jpa/tests/org.eclipse.jpt.core.tests.extension.resource/META-INF/MANIFEST.MF b/jpa/tests/org.eclipse.jpt.core.tests.extension.resource/META-INF/MANIFEST.MF
deleted file mode 100644
index 5ecca57..0000000
--- a/jpa/tests/org.eclipse.jpt.core.tests.extension.resource/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.extension.resource;singleton:=true
-Bundle-Version: 2.2.0.qualifier
-Bundle-Activator: org.eclipse.jpt.core.tests.extension.resource.ExtensionTestPlugin
-Bundle-ActivationPolicy: lazy
-Bundle-Localization: plugin
-Require-Bundle: org.eclipse.core.runtime,
- org.eclipse.jpt.core,
- org.eclipse.jpt.ui,
- org.eclipse.wst.validation,
- org.eclipse.jpt.core,
- org.eclipse.jpt.gen,
- org.eclipse.jface,
- org.eclipse.jpt.db,
- org.eclipse.jdt.core,
- org.eclipse.emf.ecore,
- org.eclipse.jpt.utility,
- org.eclipse.core.resources,
- org.eclipse.ui.navigator;bundle-version="3.3.100",
- org.eclipse.ui.views.properties.tabbed;bundle-version="3.4.0"
-Bundle-RequiredExecutionEnvironment: J2SE-1.5
-Export-Package: org.eclipse.jpt.core.tests.extension.resource;x-friends:="org.eclipse.jpt.ui.tests,org.eclipse.jpt.core.tests"
diff --git a/jpa/tests/org.eclipse.jpt.core.tests.extension.resource/about.html b/jpa/tests/org.eclipse.jpt.core.tests.extension.resource/about.html
deleted file mode 100644
index be534ba..0000000
--- a/jpa/tests/org.eclipse.jpt.core.tests.extension.resource/about.html
+++ /dev/null
@@ -1,34 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN">
-<HTML>
-
-<head>
-<title>About</title>
-<meta http-equiv=Content-Type content="text/html; charset=ISO-8859-1">
-</head>
-
-<BODY lang="EN-US">
-
-<H3>About This Content</H3>
-
-<P>May 02, 2008</P>
-
-<H3>License</H3>
-
-<P>The Eclipse Foundation makes available all content in this plug-in 
-("Content"). Unless otherwise indicated below, the Content is provided to you 
-under the terms and conditions of the Eclipse Public License Version 1.0 
-("EPL"). A copy of the EPL is available at
-<A href="http://www.eclipse.org/org/documents/epl-v10.php">http://www.eclipse.org/org/documents/epl-v10.php</A>. 
-For purposes of the EPL, "Program" will mean the Content.</P>
-
-<P>If you did not receive this Content directly from the Eclipse Foundation, the 
-Content is being redistributed by another party ("Redistributor") and different 
-terms and conditions may apply to your use of any object code in the Content. 
-Check the Redistributor's license that was provided with the Content. If no such 
-license exists, contact the Redistributor. Unless otherwise indicated below, the 
-terms and conditions of the EPL still apply to any source code in the Content 
-and such source code may be obtained at
-<A href="http://www.eclipse.org/">http://www.eclipse.org/</A>.</P>
-
-</BODY>
-</HTML>
diff --git a/jpa/tests/org.eclipse.jpt.core.tests.extension.resource/build.properties b/jpa/tests/org.eclipse.jpt.core.tests.extension.resource/build.properties
deleted file mode 100644
index f5e3f40..0000000
--- a/jpa/tests/org.eclipse.jpt.core.tests.extension.resource/build.properties
+++ /dev/null
@@ -1,19 +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
-###############################################################################
-javacSource=1.5
-javacTarget=1.5
-source.. = src/
-output.. = bin/
-bin.includes = .,\
-               META-INF/,\
-               plugin.xml,\
-               plugin.properties
-jars.compile.order = .
diff --git a/jpa/tests/org.eclipse.jpt.core.tests.extension.resource/plugin.properties b/jpa/tests/org.eclipse.jpt.core.tests.extension.resource/plugin.properties
deleted file mode 100644
index 0f7956c..0000000
--- a/jpa/tests/org.eclipse.jpt.core.tests.extension.resource/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 = Dali Java Persistence Tools - Extension Tests
-providerName = Eclipse Web Tools Platform
diff --git a/jpa/tests/org.eclipse.jpt.core.tests.extension.resource/plugin.xml b/jpa/tests/org.eclipse.jpt.core.tests.extension.resource/plugin.xml
deleted file mode 100644
index 7c9881e..0000000
--- a/jpa/tests/org.eclipse.jpt.core.tests.extension.resource/plugin.xml
+++ /dev/null
@@ -1,27 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<?eclipse version="3.2"?>
-<plugin>
-
-	<extension
-		point="org.eclipse.jpt.core.jpaPlatforms">
-		
-		<jpaPlatform
-			id="core.testJpaPlatform"
-			label="Test Jpa Platform"
-			factoryClass="org.eclipse.jpt.core.tests.extension.resource.TestJpaPlatformFactory"
-			default="true">
-		</jpaPlatform>
-		
-	</extension>
-	
-	<extension
-		point="org.eclipse.jpt.ui.jpaPlatformUis">
-		
-		<jpaPlatformUi
-			id="core.testJpaPlatform.ui"
-			jpaPlatform="core.testJpaPlatform"
-			factoryClass="org.eclipse.jpt.core.tests.extension.resource.TestJpaPlatformUiFactory"/>
-		
-	</extension>
-
-</plugin>
diff --git a/jpa/tests/org.eclipse.jpt.core.tests.extension.resource/src/org/eclipse/jpt/core/tests/extension/resource/ExtensionTestPlugin.java b/jpa/tests/org.eclipse.jpt.core.tests.extension.resource/src/org/eclipse/jpt/core/tests/extension/resource/ExtensionTestPlugin.java
deleted file mode 100644
index 51075a6..0000000
--- a/jpa/tests/org.eclipse.jpt.core.tests.extension.resource/src/org/eclipse/jpt/core/tests/extension/resource/ExtensionTestPlugin.java
+++ /dev/null
@@ -1,54 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008 Oracle. All rights reserved.
- * This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     Oracle - initial API and implementation
- *******************************************************************************/
-package org.eclipse.jpt.core.tests.extension.resource;
-
-import org.eclipse.core.runtime.Plugin;
-import org.osgi.framework.BundleContext;
-
-/**
- * The activator class controls the plug-in life cycle
- */
-public class ExtensionTestPlugin extends Plugin {
-
-	// The plug-in ID
-	public static final String PLUGIN_ID = "org.eclipse.jpt.core.tests.extension.resource";
-
-	// The shared instance
-	private static ExtensionTestPlugin plugin;
-	
-	/**
-	 * The constructor
-	 */
-	public ExtensionTestPlugin() {
-	}
-
-	@Override
-	public void start(BundleContext context) throws Exception {
-		super.start(context);
-		plugin = this;
-	}
-
-	@Override
-	public void stop(BundleContext context) throws Exception {
-		plugin = null;
-		super.stop(context);
-	}
-
-	/**
-	 * Returns the shared instance
-	 *
-	 * @return the shared instance
-	 */
-	public static ExtensionTestPlugin getDefault() {
-		return plugin;
-	}
-
-}
diff --git a/jpa/tests/org.eclipse.jpt.core.tests.extension.resource/src/org/eclipse/jpt/core/tests/extension/resource/JavaTestAttributeMapping.java b/jpa/tests/org.eclipse.jpt.core.tests.extension.resource/src/org/eclipse/jpt/core/tests/extension/resource/JavaTestAttributeMapping.java
deleted file mode 100644
index faafbc3..0000000
--- a/jpa/tests/org.eclipse.jpt.core.tests.extension.resource/src/org/eclipse/jpt/core/tests/extension/resource/JavaTestAttributeMapping.java
+++ /dev/null
@@ -1,38 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008, 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- *
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.core.tests.extension.resource;
-
-import java.util.Iterator;
-import org.eclipse.jpt.core.context.java.JavaPersistentAttribute;
-import org.eclipse.jpt.core.internal.context.java.AbstractJavaAttributeMapping;
-
-public class JavaTestAttributeMapping extends AbstractJavaAttributeMapping
-{
-	public static final String TEST_ATTRIBUTE_MAPPING_KEY = "testAttribute";
-	public static final String TEST_ATTRIBUTE_ANNOTATION_NAME = "test.TestAttribute";
-
-
-	public JavaTestAttributeMapping(JavaPersistentAttribute parent) {
-		super(parent);
-	}
-	
-	public String getKey() {
-		return JavaTestAttributeMapping.TEST_ATTRIBUTE_MAPPING_KEY;
-	}
-
-	public String getAnnotationName() {
-		return JavaTestAttributeMapping.TEST_ATTRIBUTE_ANNOTATION_NAME;
-	}
-
-	public Iterator<String> supportingAnnotationNames() {
-		// TODO Auto-generated method stub
-		return null;
-	}
-}
diff --git a/jpa/tests/org.eclipse.jpt.core.tests.extension.resource/src/org/eclipse/jpt/core/tests/extension/resource/JavaTestAttributeMappingProvider.java b/jpa/tests/org.eclipse.jpt.core.tests.extension.resource/src/org/eclipse/jpt/core/tests/extension/resource/JavaTestAttributeMappingProvider.java
deleted file mode 100644
index 5eed911..0000000
--- a/jpa/tests/org.eclipse.jpt.core.tests.extension.resource/src/org/eclipse/jpt/core/tests/extension/resource/JavaTestAttributeMappingProvider.java
+++ /dev/null
@@ -1,48 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- *
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.core.tests.extension.resource;
-
-import org.eclipse.jpt.core.JpaFactory;
-import org.eclipse.jpt.core.context.java.JavaAttributeMappingProvider;
-import org.eclipse.jpt.core.context.java.JavaPersistentAttribute;
-
-public class JavaTestAttributeMappingProvider
-	implements JavaAttributeMappingProvider
-{
-	// singleton
-	private static final JavaTestAttributeMappingProvider INSTANCE = new JavaTestAttributeMappingProvider();
-
-	/**
-	 * Return the singleton.
-	 */
-	public static JavaAttributeMappingProvider instance() {
-		return INSTANCE;
-	}
-
-	/**
-	 * Ensure single instance.
-	 */
-	private JavaTestAttributeMappingProvider() {
-		super();
-	}
-
-	public String getKey() {
-		return JavaTestAttributeMapping.TEST_ATTRIBUTE_MAPPING_KEY;
-	}
-
-	public String getAnnotationName() {
-		return JavaTestAttributeMapping.TEST_ATTRIBUTE_ANNOTATION_NAME;
-	}
-
-	public JavaTestAttributeMapping buildMapping(JavaPersistentAttribute parent, JpaFactory factory) {
-		return ((TestJpaFactory) factory).buildJavaTestAttributeMapping(parent);
-	}		
-
-}
diff --git a/jpa/tests/org.eclipse.jpt.core.tests.extension.resource/src/org/eclipse/jpt/core/tests/extension/resource/JavaTestTypeMapping.java b/jpa/tests/org.eclipse.jpt.core.tests.extension.resource/src/org/eclipse/jpt/core/tests/extension/resource/JavaTestTypeMapping.java
deleted file mode 100644
index 4129cdd..0000000
--- a/jpa/tests/org.eclipse.jpt.core.tests.extension.resource/src/org/eclipse/jpt/core/tests/extension/resource/JavaTestTypeMapping.java
+++ /dev/null
@@ -1,50 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008, 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- *
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.core.tests.extension.resource;
-
-import java.util.Iterator;
-import org.eclipse.jpt.core.context.java.JavaPersistentType;
-import org.eclipse.jpt.core.internal.context.java.AbstractJavaTypeMapping;
-import org.eclipse.jpt.utility.internal.iterators.EmptyIterator;
-
-public class JavaTestTypeMapping extends AbstractJavaTypeMapping
-{
-	public static final String TEST_TYPE_MAPPING_KEY = "test";
-	public static final String TEST_TYPE_ANNOTATION_NAME = "test.Test";
-
-
-	public JavaTestTypeMapping(JavaPersistentType parent) {
-		super(parent);
-	}
-
-	public String getAnnotationName() {
-		return TEST_TYPE_ANNOTATION_NAME;
-	}
-
-	public String getKey() {
-		return TEST_TYPE_MAPPING_KEY;
-	}
-
-	public Iterator<String> correspondingAnnotationNames() {
-		return EmptyIterator.instance();
-	}
-
-	public boolean isMapped() {
-		return true;
-	}
-
-	public boolean tableNameIsInvalid(String tableName) {
-		return false;
-	}
-	
-	public boolean shouldValidateDbInfo() {
-		return false;
-	}
-}
diff --git a/jpa/tests/org.eclipse.jpt.core.tests.extension.resource/src/org/eclipse/jpt/core/tests/extension/resource/JavaTestTypeMappingProvider.java b/jpa/tests/org.eclipse.jpt.core.tests.extension.resource/src/org/eclipse/jpt/core/tests/extension/resource/JavaTestTypeMappingProvider.java
deleted file mode 100644
index 4eb6560..0000000
--- a/jpa/tests/org.eclipse.jpt.core.tests.extension.resource/src/org/eclipse/jpt/core/tests/extension/resource/JavaTestTypeMappingProvider.java
+++ /dev/null
@@ -1,51 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- *
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.core.tests.extension.resource;
-
-import org.eclipse.jpt.core.JpaFactory;
-import org.eclipse.jpt.core.context.java.JavaPersistentType;
-import org.eclipse.jpt.core.context.java.JavaTypeMappingProvider;
-
-/**
- * 
- */
-public class JavaTestTypeMappingProvider
-	implements JavaTypeMappingProvider
-{
-	// singleton
-	private static final JavaTestTypeMappingProvider INSTANCE = new JavaTestTypeMappingProvider();
-
-	/**
-	 * Return the singleton.
-	 */
-	public static JavaTypeMappingProvider instance() {
-		return INSTANCE;
-	}
-
-	/**
-	 * Ensure single instance.
-	 */
-	private JavaTestTypeMappingProvider() {
-		super();
-	}
-
-	public String getKey() {
-		return JavaTestTypeMapping.TEST_TYPE_MAPPING_KEY;
-	}
-	
-	public String getAnnotationName() {
-		return JavaTestTypeMapping.TEST_TYPE_ANNOTATION_NAME;
-	}
-
-	public JavaTestTypeMapping buildMapping(JavaPersistentType parent, JpaFactory factory) {
-		return ((TestJpaFactory) factory).buildJavaTestTypeMapping(parent);
-	}
-
-}
diff --git a/jpa/tests/org.eclipse.jpt.core.tests.extension.resource/src/org/eclipse/jpt/core/tests/extension/resource/TestJavaBasicMapping.java b/jpa/tests/org.eclipse.jpt.core.tests.extension.resource/src/org/eclipse/jpt/core/tests/extension/resource/TestJavaBasicMapping.java
deleted file mode 100644
index ccd2f6a..0000000
--- a/jpa/tests/org.eclipse.jpt.core.tests.extension.resource/src/org/eclipse/jpt/core/tests/extension/resource/TestJavaBasicMapping.java
+++ /dev/null
@@ -1,20 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- *
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.core.tests.extension.resource;
-
-import org.eclipse.jpt.core.context.java.JavaPersistentAttribute;
-import org.eclipse.jpt.core.internal.context.java.GenericJavaBasicMapping;
-
-public class TestJavaBasicMapping extends GenericJavaBasicMapping
-{
-	public TestJavaBasicMapping(JavaPersistentAttribute parent) {
-		super(parent);
-	}
-}
diff --git a/jpa/tests/org.eclipse.jpt.core.tests.extension.resource/src/org/eclipse/jpt/core/tests/extension/resource/TestJavaEntity.java b/jpa/tests/org.eclipse.jpt.core.tests.extension.resource/src/org/eclipse/jpt/core/tests/extension/resource/TestJavaEntity.java
deleted file mode 100644
index 55e8265..0000000
--- a/jpa/tests/org.eclipse.jpt.core.tests.extension.resource/src/org/eclipse/jpt/core/tests/extension/resource/TestJavaEntity.java
+++ /dev/null
@@ -1,20 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008, 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- *
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.core.tests.extension.resource;
-
-import org.eclipse.jpt.core.context.java.JavaPersistentType;
-import org.eclipse.jpt.core.internal.context.java.AbstractJavaEntity;
-
-public class TestJavaEntity extends AbstractJavaEntity
-{
-	protected TestJavaEntity(JavaPersistentType parent) {
-		super(parent);
-	}
-}
diff --git a/jpa/tests/org.eclipse.jpt.core.tests.extension.resource/src/org/eclipse/jpt/core/tests/extension/resource/TestJpaFactory.java b/jpa/tests/org.eclipse.jpt.core.tests.extension.resource/src/org/eclipse/jpt/core/tests/extension/resource/TestJpaFactory.java
deleted file mode 100644
index 203e751..0000000
--- a/jpa/tests/org.eclipse.jpt.core.tests.extension.resource/src/org/eclipse/jpt/core/tests/extension/resource/TestJpaFactory.java
+++ /dev/null
@@ -1,37 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2008 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the terms of
- * the Eclipse Public License v1.0, which accompanies this distribution and is available at
- * http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.core.tests.extension.resource;
-
-import org.eclipse.jpt.core.context.java.JavaBasicMapping;
-import org.eclipse.jpt.core.context.java.JavaEntity;
-import org.eclipse.jpt.core.context.java.JavaPersistentAttribute;
-import org.eclipse.jpt.core.context.java.JavaPersistentType;
-import org.eclipse.jpt.core.internal.platform.GenericJpaFactory;
-
-public class TestJpaFactory extends GenericJpaFactory
-{
-	@Override
-	public JavaEntity buildJavaEntity(JavaPersistentType parent) {
-		return new TestJavaEntity(parent);
-	}
-	
-	@Override
-	public JavaBasicMapping buildJavaBasicMapping(JavaPersistentAttribute parent) {
-		return new TestJavaBasicMapping(parent);
-	}
-	
-	public JavaTestTypeMapping buildJavaTestTypeMapping(JavaPersistentType parent) {
-		return new JavaTestTypeMapping(parent);
-	}
-	
-	public JavaTestAttributeMapping buildJavaTestAttributeMapping(JavaPersistentAttribute parent) {
-		return new JavaTestAttributeMapping(parent);
-	}
-}
diff --git a/jpa/tests/org.eclipse.jpt.core.tests.extension.resource/src/org/eclipse/jpt/core/tests/extension/resource/TestJpaPlatformFactory.java b/jpa/tests/org.eclipse.jpt.core.tests.extension.resource/src/org/eclipse/jpt/core/tests/extension/resource/TestJpaPlatformFactory.java
deleted file mode 100644
index 7219f4c..0000000
--- a/jpa/tests/org.eclipse.jpt.core.tests.extension.resource/src/org/eclipse/jpt/core/tests/extension/resource/TestJpaPlatformFactory.java
+++ /dev/null
@@ -1,63 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.core.tests.extension.resource;
-
-import org.eclipse.jpt.core.JpaAnnotationProvider;
-import org.eclipse.jpt.core.JpaFactory;
-import org.eclipse.jpt.core.JpaPlatform;
-import org.eclipse.jpt.core.JpaPlatformFactory;
-import org.eclipse.jpt.core.JpaValidation;
-import org.eclipse.jpt.core.internal.platform.GenericJpaAnnotationDefinitionProvider;
-import org.eclipse.jpt.core.internal.platform.GenericJpaAnnotationProvider;
-import org.eclipse.jpt.core.internal.platform.GenericJpaPlatform;
-import org.eclipse.jpt.core.internal.platform.GenericJpaPlatformProvider;
-
-/**
- * All the state in the JPA platform should be "static" (i.e. unchanging once
- * it is initialized).
- */
-public class TestJpaPlatformFactory
-	implements JpaPlatformFactory
-{
-
-	/**
-	 * zero-argument constructor
-	 */
-	public TestJpaPlatformFactory() {
-		super();
-	}
-	
-	public JpaPlatform buildJpaPlatform(String id) {
-		return new GenericJpaPlatform(
-			id,
-			buildJpaFactory(), 
-			buildJpaAnnotationProvider(), 
-			buildJpaValidation(),
-			GenericJpaPlatformProvider.instance(),
-			TestJpaPlatformProvider.instance());
-	}
-	
-	protected JpaFactory buildJpaFactory() {
-		return new TestJpaFactory();
-	}
-	
-	protected JpaAnnotationProvider buildJpaAnnotationProvider() {
-		return new GenericJpaAnnotationProvider(
-			GenericJpaAnnotationDefinitionProvider.instance());
-	}
-	
-	protected JpaValidation buildJpaValidation() {
-		return new JpaValidation() {
-			public Supported getTablePerConcreteClassInheritanceIsSupported() {
-				return Supported.MAYBE;
-			}
-		};
-	}
-}
diff --git a/jpa/tests/org.eclipse.jpt.core.tests.extension.resource/src/org/eclipse/jpt/core/tests/extension/resource/TestJpaPlatformProvider.java b/jpa/tests/org.eclipse.jpt.core.tests.extension.resource/src/org/eclipse/jpt/core/tests/extension/resource/TestJpaPlatformProvider.java
deleted file mode 100644
index 6380e8d..0000000
--- a/jpa/tests/org.eclipse.jpt.core.tests.extension.resource/src/org/eclipse/jpt/core/tests/extension/resource/TestJpaPlatformProvider.java
+++ /dev/null
@@ -1,79 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008, 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- *
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.core.tests.extension.resource;
-
-import java.util.List;
-import org.eclipse.jpt.core.JpaPlatformProvider;
-import org.eclipse.jpt.core.JpaResourceModelProvider;
-import org.eclipse.jpt.core.context.MappingFileProvider;
-import org.eclipse.jpt.core.context.java.DefaultJavaAttributeMappingProvider;
-import org.eclipse.jpt.core.context.java.JavaAttributeMappingProvider;
-import org.eclipse.jpt.core.context.java.JavaTypeMappingProvider;
-import org.eclipse.jpt.core.context.orm.OrmAttributeMappingProvider;
-import org.eclipse.jpt.core.context.orm.OrmTypeMappingProvider;
-import org.eclipse.jpt.core.internal.platform.AbstractJpaPlatformProvider;
-
-public class TestJpaPlatformProvider extends AbstractJpaPlatformProvider
-{
-	public static final String ID = "core.testJpaPlatform"; //$NON-NLS-1$
-
-	// singleton
-	private static final JpaPlatformProvider INSTANCE = new TestJpaPlatformProvider();
-
-	/**
-	 * Return the singleton.
-	 */
-	public static JpaPlatformProvider instance() {
-		return INSTANCE;
-	}
-
-	/**
-	 * Ensure single instance.
-	 */
-	private TestJpaPlatformProvider() {
-		super();
-	}
-	
-	@Override
-	protected void addJavaTypeMappingProvidersTo(List<JavaTypeMappingProvider> providers) {
-		providers.add(JavaTestTypeMappingProvider.instance());
-	}
-	
-	@Override
-	protected void addJavaAttributeMappingProvidersTo(List<JavaAttributeMappingProvider> providers) {
-		providers.add(JavaTestAttributeMappingProvider.instance());
-	}
-
-	@Override
-	protected void addMappingFileProvidersTo(List<MappingFileProvider> providers) {
-		//none
-	}
-
-	@Override
-	protected void addDefaultJavaAttributeMappingProvidersTo(List<DefaultJavaAttributeMappingProvider> providers) {
-		//none
-	}
-
-	@Override
-	protected void addOrmAttributeMappingProvidersTo(List<OrmAttributeMappingProvider> providers) {
-		//none
-	}
-
-	@Override
-	protected void addOrmTypeMappingProvidersTo(List<OrmTypeMappingProvider> providers) {
-		//none
-	}
-
-	@Override
-	protected void addResourceModelProvidersTo(List<JpaResourceModelProvider> providers) {
-		//none
-	}
-
-}
diff --git a/jpa/tests/org.eclipse.jpt.core.tests.extension.resource/src/org/eclipse/jpt/core/tests/extension/resource/TestJpaPlatformUiFactory.java b/jpa/tests/org.eclipse.jpt.core.tests.extension.resource/src/org/eclipse/jpt/core/tests/extension/resource/TestJpaPlatformUiFactory.java
deleted file mode 100644
index eca8555..0000000
--- a/jpa/tests/org.eclipse.jpt.core.tests.extension.resource/src/org/eclipse/jpt/core/tests/extension/resource/TestJpaPlatformUiFactory.java
+++ /dev/null
@@ -1,36 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- *
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.core.tests.extension.resource;
-
-import org.eclipse.jpt.ui.JpaPlatformUi;
-import org.eclipse.jpt.ui.JpaPlatformUiFactory;
-import org.eclipse.jpt.ui.internal.platform.generic.GenericJpaPlatformUi;
-import org.eclipse.jpt.ui.internal.platform.generic.GenericNavigatorProvider;
-import org.eclipse.jpt.ui.internal.structure.JavaResourceModelStructureProvider;
-import org.eclipse.jpt.ui.internal.structure.PersistenceResourceModelStructureProvider;
-
-public class TestJpaPlatformUiFactory implements JpaPlatformUiFactory
-{
-
-	/**
-	 * Zero arg constructor for extension point
-	 */
-	public TestJpaPlatformUiFactory() {
-		super();
-	}
-
-	public JpaPlatformUi buildJpaPlatformUi() {
-		return new GenericJpaPlatformUi(
-			new TestJpaUiFactory(),
-			new GenericNavigatorProvider(),
-			JavaResourceModelStructureProvider.instance(), 
-			PersistenceResourceModelStructureProvider.instance());
-	}
-}
diff --git a/jpa/tests/org.eclipse.jpt.core.tests.extension.resource/src/org/eclipse/jpt/core/tests/extension/resource/TestJpaUiFactory.java b/jpa/tests/org.eclipse.jpt.core.tests.extension.resource/src/org/eclipse/jpt/core/tests/extension/resource/TestJpaUiFactory.java
deleted file mode 100644
index bfd77f2..0000000
--- a/jpa/tests/org.eclipse.jpt.core.tests.extension.resource/src/org/eclipse/jpt/core/tests/extension/resource/TestJpaUiFactory.java
+++ /dev/null
@@ -1,27 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- *
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.core.tests.extension.resource;
-
-import org.eclipse.jpt.ui.JpaUiFactory;
-import org.eclipse.jpt.ui.internal.BaseJpaUiFactory;
-
-/**
- * The default implementation of the UI factory required to show the information
- * related to a JPA mapping (type or attribute).
- *
- * @see JpaUiFactory
- *
- * @version 1.0
- * @since 1.0
- */
-public class TestJpaUiFactory extends BaseJpaUiFactory
-{
-
-}
\ No newline at end of file
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 3c0b3a6..0000000
--- a/jpa/tests/org.eclipse.jpt.core.tests/.classpath
+++ /dev/null
@@ -1,14 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<classpath>
-	<classpathentry kind="src" path="src"/>
-	<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/J2SE-1.5"/>
-	<classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins">
-		<accessrules>
-			<accessrule kind="accessible" pattern="org/eclipse/wst/**"/>
-			<accessrule kind="accessible" pattern="org/eclipse/jst/**"/>
-			<accessrule kind="accessible" pattern="org/eclipse/jpt/core/**"/>
-			<accessrule kind="accessible" pattern="org/eclipse/jpt/utility/**"/>
-		</accessrules>
-	</classpathentry>
-	<classpathentry kind="output" path="bin"/>
-</classpath>
diff --git a/jpa/tests/org.eclipse.jpt.core.tests/.cvsignore b/jpa/tests/org.eclipse.jpt.core.tests/.cvsignore
deleted file mode 100644
index c4ba612..0000000
--- a/jpa/tests/org.eclipse.jpt.core.tests/.cvsignore
+++ /dev/null
@@ -1,5 +0,0 @@
-bin
-@dot
-temp.folder
-build.xml
-javaCompiler...args
\ No newline at end of file
diff --git a/jpa/tests/org.eclipse.jpt.core.tests/.project b/jpa/tests/org.eclipse.jpt.core.tests/.project
deleted file mode 100644
index 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 eb34878..0000000
--- a/jpa/tests/org.eclipse.jpt.core.tests/.settings/org.eclipse.core.resources.prefs
+++ /dev/null
@@ -1,3 +0,0 @@
-#Tue Jan 15 11:10:55 EST 2008
-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 8777f4d..0000000
--- a/jpa/tests/org.eclipse.jpt.core.tests/META-INF/MANIFEST.MF
+++ /dev/null
@@ -1,40 +0,0 @@
-Manifest-Version: 1.0
-Bundle-ManifestVersion: 2
-Bundle-Name: %pluginName
-Bundle-Vendor: %providerName
-Bundle-SymbolicName: org.eclipse.jpt.core.tests
-Bundle-Version: 2.2.0
-Bundle-Localization: plugin
-Require-Bundle: org.eclipse.core.resources;bundle-version="[3.4.0,4.0.0)",
- org.eclipse.core.runtime;bundle-version="[3.4.0,4.0.0)",
- org.eclipse.emf.ecore;bundle-version="[2.4.0,3.0.0)",
- org.eclipse.emf.ecore.xmi;bundle-version="[2.4.0,3.0.0)",
- org.eclipse.jdt.core;bundle-version="[3.4.0,4.0.0)",
- org.eclipse.jdt.ui;bundle-version="[3.4.0,4.0.0)",
- org.eclipse.jem;bundle-version="[2.0.200,3.0.0)",
- org.eclipse.jem.util;bundle-version="[2.0.100,3.0.0)",
- org.eclipse.jpt.core;bundle-version="[2.0.0,3.0.0)",
- org.eclipse.jpt.core.tests.extension.resource;bundle-version="[2.0.0,3.0.0)",
- org.eclipse.jpt.db;bundle-version="[1.2.0,2.0.0)",
- org.eclipse.jpt.utility;bundle-version="[1.2.0,2.0.0)",
- org.eclipse.jpt.utility.tests;bundle-version="[1.2.0,2.0.0)",
- org.eclipse.wst.common.emf;bundle-version="[1.1.200,2.0.0)",
- org.eclipse.wst.common.emfworkbench.integration;bundle-version="[1.1.200,2.0.0)",
- org.eclipse.wst.common.frameworks;bundle-version="[1.1.200,1.2.0)",
- org.eclipse.wst.common.modulecore;bundle-version="[1.1.200,2.0.0)",
- org.eclipse.wst.common.project.facet.core;bundle-version="[1.3.0,2.0.0)",
- org.junit;bundle-version="[3.8.2,4.0.0)",
- org.eclipse.wst.xml.core;bundle-version="[1.1.300,1.2.0)",
- org.eclipse.wst.validation;bundle-version="[1.2.0,1.3.0)"
-Bundle-RequiredExecutionEnvironment: J2SE-1.5
-Export-Package: org.eclipse.jpt.core.tests.internal;x-friends:="org.eclipse.jpt.ui.tests",
- org.eclipse.jpt.core.tests.internal.context;x-internal:=true,
- org.eclipse.jpt.core.tests.internal.context.java;x-internal:=true,
- org.eclipse.jpt.core.tests.internal.context.orm;x-internal:=true,
- org.eclipse.jpt.core.tests.internal.context.persistence;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-friends:="org.eclipse.jpt.ui.tests",
- org.eclipse.jpt.core.tests.internal.resource;x-internal:=true,
- org.eclipse.jpt.core.tests.internal.resource.java;x-internal:=true,
- org.eclipse.jpt.core.tests.internal.utility.jdt;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 be534ba..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>May 02, 2008</P>
-
-<H3>License</H3>
-
-<P>The Eclipse Foundation makes available all content in this plug-in 
-("Content"). Unless otherwise indicated below, the Content is provided to you 
-under the terms and conditions of the Eclipse Public License Version 1.0 
-("EPL"). A copy of the EPL is available at
-<A href="http://www.eclipse.org/org/documents/epl-v10.php">http://www.eclipse.org/org/documents/epl-v10.php</A>. 
-For purposes of the EPL, "Program" will mean the Content.</P>
-
-<P>If you did not receive this Content directly from the Eclipse Foundation, the 
-Content is being redistributed by another party ("Redistributor") and different 
-terms and conditions may apply to your use of any object code in the Content. 
-Check the Redistributor's license that was provided with the Content. If no such 
-license exists, contact the Redistributor. Unless otherwise indicated below, the 
-terms and conditions of the EPL still apply to any source code in the Content 
-and such source code may be obtained at
-<A href="http://www.eclipse.org/">http://www.eclipse.org/</A>.</P>
-
-</BODY>
-</HTML>
diff --git a/jpa/tests/org.eclipse.jpt.core.tests/build.properties b/jpa/tests/org.eclipse.jpt.core.tests/build.properties
deleted file mode 100644
index 96de1ee..0000000
--- a/jpa/tests/org.eclipse.jpt.core.tests/build.properties
+++ /dev/null
@@ -1,18 +0,0 @@
-################################################################################
-# Copyright (c) 2006, 2008 Oracle. All rights reserved.
-# This program and the accompanying materials are made available under the
-# terms of the Eclipse Public License v1.0, which accompanies this distribution
-# and is available at http://www.eclipse.org/legal/epl-v10.html.
-# 
-# Contributors:
-#     Oracle - initial API and implementation
-################################################################################
-javacSource = 1.5
-javacTarget = 1.5
-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 c4f4cbd..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=Dali Java Persistence Tools - Core Tests
-providerName=Eclipse Web Tools Platform
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 e3cfa6f..0000000
--- a/jpa/tests/org.eclipse.jpt.core.tests/src/org/eclipse/jpt/core/tests/internal/JptCoreTests.java
+++ /dev/null
@@ -1,83 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.core.tests.internal;
-
-import java.io.File;
-import junit.framework.Test;
-import junit.framework.TestSuite;
-import org.eclipse.jpt.core.tests.internal.context.JptCoreContextModelTests;
-import org.eclipse.jpt.core.tests.internal.model.JptCoreModelTests;
-import org.eclipse.jpt.core.tests.internal.projects.TestJpaProject;
-import org.eclipse.jpt.core.tests.internal.resource.JptCoreResourceModelTests;
-import org.eclipse.jpt.core.tests.internal.utility.jdt.JptCoreUtilityJdtTests;
-
-/**
- * decentralize test creation code
- * 
- * Required Java system property:
- *    -Dorg.eclipse.jpt.jpa.jar=<jpa.jar path>
- */
-@SuppressWarnings("nls")
-public class JptCoreTests {
-	private static final String JPA_JAR_PROPERTY = TestJpaProject.JPA_JAR_NAME_SYSTEM_PROPERTY;
-
-	public static Test suite() {
-		TestSuite suite = new TestSuite(JptCoreTests.class.getPackage().getName());
-
-		if(requiredJarsExists()) {
-			suite.addTest(JptCoreUtilityJdtTests.suite());
-			suite.addTest(JptCoreModelTests.suite());
-			suite.addTest(JptCoreResourceModelTests.suite());
-			suite.addTest(JptCoreContextModelTests.suite());
-		}
-		else {
-			suite.addTest(TestSuite.warning(buildMissingJarErrorMessage()));
-		}
-		return suite;
-	}
-	
-	public static boolean requiredJarsExists() {
-		return jpaJarPropertyExists() && jpaJarFileExists();
-	}
-
-	public static boolean jpaJarPropertyExists() {
-		return getSystemProperty(JPA_JAR_PROPERTY) != null;
-	}
-	
-	public static boolean jpaJarFileExists() {
-		return (new File(getSystemProperty(JPA_JAR_PROPERTY))).exists();
-	}
-
-	/*********** private **********/
-	private static String buildMissingJarErrorMessage() {
-
-		if( ! jpaJarPropertyExists()) {
-			return errorMissingProperty(JPA_JAR_PROPERTY);
-		}
-		return errorJarFileDoesNotExist(getSystemProperty(JPA_JAR_PROPERTY));
-	}
-
-	private static String errorMissingProperty(String propertyName) {
-		return "missing Java system property: \"" + propertyName + "\"";
-	}
-
-	private static String errorJarFileDoesNotExist(String propertyValue) {
-		return "JAR file doesn't exist: \"" + propertyValue + "\"";
-	}
-
-	private static String getSystemProperty(String propertyName) {
-		return System.getProperty(propertyName);
-	}
-	
-	private JptCoreTests() {
-		super();
-		throw new UnsupportedOperationException();
-	}
-}
diff --git a/jpa/tests/org.eclipse.jpt.core.tests/src/org/eclipse/jpt/core/tests/internal/context/ContextModelTestCase.java b/jpa/tests/org.eclipse.jpt.core.tests/src/org/eclipse/jpt/core/tests/internal/context/ContextModelTestCase.java
deleted file mode 100644
index f05f918..0000000
--- a/jpa/tests/org.eclipse.jpt.core.tests/src/org/eclipse/jpt/core/tests/internal/context/ContextModelTestCase.java
+++ /dev/null
@@ -1,187 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.core.tests.internal.context;
-
-import org.eclipse.core.resources.ResourcesPlugin;
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.core.runtime.Status;
-import org.eclipse.core.runtime.jobs.Job;
-import org.eclipse.emf.ecore.resource.Resource;
-import org.eclipse.jpt.core.JpaProject;
-import org.eclipse.jpt.core.context.Entity;
-import org.eclipse.jpt.core.context.JpaRootContextNode;
-import org.eclipse.jpt.core.context.MappingFile;
-import org.eclipse.jpt.core.context.java.JavaPersistentType;
-import org.eclipse.jpt.core.context.orm.EntityMappings;
-import org.eclipse.jpt.core.context.persistence.ClassRef;
-import org.eclipse.jpt.core.context.persistence.PersistenceUnit;
-import org.eclipse.jpt.core.resource.orm.XmlEntityMappings;
-import org.eclipse.jpt.core.resource.persistence.PersistenceFactory;
-import org.eclipse.jpt.core.resource.persistence.XmlJavaClassRef;
-import org.eclipse.jpt.core.resource.persistence.XmlMappingFileRef;
-import org.eclipse.jpt.core.resource.persistence.XmlPersistence;
-import org.eclipse.jpt.core.resource.persistence.XmlPersistenceUnit;
-import org.eclipse.jpt.core.resource.xml.JpaXmlResource;
-import org.eclipse.jpt.core.tests.internal.projects.TestJavaProject;
-import org.eclipse.jpt.core.tests.internal.projects.TestJpaProject;
-import org.eclipse.jpt.core.tests.internal.utility.jdt.AnnotationTestCase;
-import org.eclipse.wst.common.frameworks.datamodel.IDataModel;
-import org.eclipse.wst.common.internal.emfworkbench.WorkbenchResourceHelper;
-
-@SuppressWarnings("nls")
-public abstract class ContextModelTestCase extends AnnotationTestCase
-{
-	protected static final String BASE_PROJECT_NAME = "ContextModelTestProject";
-	
-	protected JpaXmlResource persistenceXmlResource;
-	
-	protected JpaXmlResource ormXmlResource;
-	
-	
-	protected ContextModelTestCase(String name) {
-		super(name);
-	}
-	
-	@Override
-	protected void setUp() throws Exception {
-		super.setUp();
-		this.persistenceXmlResource = getJpaProject().getPersistenceXmlResource();
-		this.ormXmlResource = getJpaProject().getDefaultOrmXmlResource();
-		waitForWorkspaceJobs();
-	}
-	
-	@Override
-	protected void tearDown() throws Exception {
-		this.persistenceXmlResource = null;
-		this.ormXmlResource = null;
-		super.tearDown();
-	}
-	
-	@Override
-	protected TestJavaProject buildJavaProject(boolean autoBuild) throws Exception {
-		return buildJpaProject(BASE_PROJECT_NAME, autoBuild, buildJpaConfigDataModel());
-	}
-	
-	protected TestJpaProject buildJpaProject(String projectName, boolean autoBuild, IDataModel jpaConfig) 
-			throws Exception {
-		return TestJpaProject.buildJpaProject(projectName, autoBuild, jpaConfig);
-	}
-	
-	protected IDataModel buildJpaConfigDataModel() {
-		return null;
-	}
-	
-	protected JpaProject getJpaProject() {
-		return getJavaProject().getJpaProject();
-	}
-	
-	protected void waitForWorkspaceJobs() {
-		// This job will not finish running until the workspace jobs are done
-		Job waitJob = new Job("Wait job") {
-				@Override
-				protected IStatus run(IProgressMonitor monitor) {
-					return Status.OK_STATUS;
-				}
-			};
-		waitJob.setRule(ResourcesPlugin.getWorkspace().getRoot());
-		waitJob.schedule();
-		try {
-			waitJob.join();
-		} catch (InterruptedException ex) {
-			// the job thread was interrupted during a wait - ignore
-		}
-	}
-	
-	protected JpaXmlResource getPersistenceXmlResource() {
-		return this.persistenceXmlResource;
-	}
-	
-	protected JpaXmlResource getOrmXmlResource() {
-		return this.ormXmlResource;
-	}
-	
-	protected XmlEntityMappings getXmlEntityMappings() {
-		return (XmlEntityMappings) getOrmXmlResource().getRootObject();
-	}
-	
-	protected XmlPersistence getXmlPersistence() {
-		return (XmlPersistence) getPersistenceXmlResource().getRootObject();
-	}
-	
-	protected EntityMappings getEntityMappings() {
-		MappingFile mappingFile = getPersistenceUnit().mappingFileRefs().next().getMappingFile();
-		return (mappingFile == null) ? null : (EntityMappings) mappingFile.getRoot();
-	}
-	
-	protected XmlPersistenceUnit getXmlPersistenceUnit() {
-		return getXmlPersistence().getPersistenceUnits().get(0);
-	}
-	
-	protected PersistenceUnit getPersistenceUnit() {
-		return getRootContextNode().getPersistenceXml().getPersistence().persistenceUnits().next();
-	}
-	
-	protected ClassRef getSpecifiedClassRef() {
-		return getPersistenceUnit().specifiedClassRefs().next();
-	}
-	
-	protected JavaPersistentType getJavaPersistentType() {
-		return getSpecifiedClassRef().getJavaPersistentType();
-	}
-	
-	protected Entity getJavaEntity() {
-		return (Entity) getJavaPersistentType().getMapping();
-	}
-	
-	protected void addXmlClassRef(String className) {
-		XmlPersistenceUnit xmlPersistenceUnit = getXmlPersistenceUnit();
-		
-		XmlJavaClassRef xmlClassRef = PersistenceFactory.eINSTANCE.createXmlJavaClassRef();
-		xmlClassRef.setJavaClass(className);
-		xmlPersistenceUnit.getClasses().add(xmlClassRef);
-	}
-	
-	protected void removeXmlClassRef(String className) {
-		XmlPersistenceUnit xmlPersistenceUnit = getXmlPersistenceUnit();
-		XmlJavaClassRef xmlJavaClassRefToRemove  = null;
-		for (XmlJavaClassRef xmlJavaClassRef : xmlPersistenceUnit.getClasses()) {
-			if (xmlJavaClassRef.getJavaClass().equals(className)) {
-				xmlJavaClassRefToRemove = xmlJavaClassRef;
-			}
-		}
-		if (xmlJavaClassRefToRemove == null) {
-			throw new IllegalArgumentException();
-		}
-		xmlPersistenceUnit.getClasses().remove(xmlJavaClassRefToRemove);
-	}
-	
-	protected void addXmlMappingFileRef(String fileName) {
-		XmlPersistenceUnit xmlPersistenceUnit = getXmlPersistenceUnit();
-		
-		XmlMappingFileRef xmlMappingFileRef = PersistenceFactory.eINSTANCE.createXmlMappingFileRef();
-		xmlMappingFileRef.setFileName(fileName);
-		xmlPersistenceUnit.getMappingFiles().add(xmlMappingFileRef);
-	}
-
-	protected JpaRootContextNode getRootContextNode() {
-		return getJavaProject().getJpaProject().getRootContextNode();
-	}
-	
-	@Override
-	protected TestJpaProject getJavaProject() {
-		return (TestJpaProject) super.getJavaProject();
-	}
-	
-	protected void deleteResource(Resource resource) throws CoreException {
-		WorkbenchResourceHelper.deleteResource(resource);
-	}
-}
diff --git a/jpa/tests/org.eclipse.jpt.core.tests/src/org/eclipse/jpt/core/tests/internal/context/JpaFileTests.java b/jpa/tests/org.eclipse.jpt.core.tests/src/org/eclipse/jpt/core/tests/internal/context/JpaFileTests.java
deleted file mode 100644
index 658b85f..0000000
--- a/jpa/tests/org.eclipse.jpt.core.tests/src/org/eclipse/jpt/core/tests/internal/context/JpaFileTests.java
+++ /dev/null
@@ -1,398 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008, 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.core.tests.internal.context;
-
-import java.util.Iterator;
-import org.eclipse.core.resources.IFile;
-import org.eclipse.jdt.core.ICompilationUnit;
-import org.eclipse.jpt.core.JpaFile;
-import org.eclipse.jpt.core.JpaStructureNode;
-import org.eclipse.jpt.core.JptCorePlugin;
-import org.eclipse.jpt.core.MappingKeys;
-import org.eclipse.jpt.core.context.java.JavaPersistentType;
-import org.eclipse.jpt.core.context.orm.EntityMappings;
-import org.eclipse.jpt.core.context.orm.OrmPersistentType;
-import org.eclipse.jpt.core.context.orm.OrmXml;
-import org.eclipse.jpt.core.context.persistence.ClassRef;
-import org.eclipse.jpt.core.context.persistence.MappingFileRef;
-import org.eclipse.jpt.core.resource.java.JPA;
-import org.eclipse.jpt.core.resource.persistence.PersistenceFactory;
-import org.eclipse.jpt.core.resource.persistence.XmlMappingFileRef;
-import org.eclipse.jpt.utility.internal.iterators.ArrayIterator;
-
-@SuppressWarnings("nls")
-public class JpaFileTests extends ContextModelTestCase
-{
-	public JpaFileTests(String name) {
-		super(name);
-	}	
-	
-	@Override
-	protected void setUp() throws Exception {
-		super.setUp();
-		XmlMappingFileRef mappingFileRef = PersistenceFactory.eINSTANCE.createXmlMappingFileRef();
-		mappingFileRef.setFileName(JptCorePlugin.DEFAULT_ORM_XML_FILE_PATH);
-		getXmlPersistenceUnit().getMappingFiles().add(mappingFileRef);
-		getPersistenceXmlResource().save(null);
-	}
-	
-	private ICompilationUnit createTestEntity() throws Exception {
-		return this.createTestType(new DefaultAnnotationWriter() {
-			@Override
-			public Iterator<String> imports() {
-				return new ArrayIterator<String>(JPA.ENTITY);
-			}
-			@Override
-			public void appendTypeAnnotationTo(StringBuilder sb) {
-				sb.append("@Entity");
-			}
-		});
-	}
-	
-	public void testGetRootStructureNode() throws Exception {
-		OrmPersistentType ormPersistentType = getEntityMappings().addPersistentType(MappingKeys.ENTITY_TYPE_MAPPING_KEY, FULLY_QUALIFIED_TYPE_NAME);
-
-		IFile file = getOrmXmlResource().getFile();
-		JpaFile ormXmlJpaFile = JptCorePlugin.getJpaFile(file);
-		
-		assertEquals(getEntityMappings(), ormXmlJpaFile.rootStructureNodes().next());
-		
-		
-		ICompilationUnit cu = createTestEntity();
-		JpaFile javaJpaFile = JptCorePlugin.getJpaFile((IFile) cu.getResource());
-		
-		assertEquals(ormPersistentType.getJavaPersistentType(), javaJpaFile.rootStructureNodes().next());
-		
-		addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
-
-		//verify the mapping file reference "wins" as the root structure node when both
-		//persistence.xml <class> tag and mapping file <entity> tag exist for a particulary java class
-		assertEquals(ormPersistentType.getJavaPersistentType(), javaJpaFile.rootStructureNodes().next());
-
-		getEntityMappings().removePersistentType(ormPersistentType);
-
-		assertEquals(getJavaEntity().getPersistentType(), javaJpaFile.rootStructureNodes().next());
-
-		ormPersistentType = getEntityMappings().addPersistentType(MappingKeys.ENTITY_TYPE_MAPPING_KEY, FULLY_QUALIFIED_TYPE_NAME);
-		assertEquals(ormPersistentType.getJavaPersistentType(), javaJpaFile.rootStructureNodes().next());
-	}
-	
-	public void testEntityMappingsRootStructureNodeRemoved() throws Exception {
-		IFile file = getOrmXmlResource().getFile();
-		JpaFile ormXmlJpaFile = JptCorePlugin.getJpaFile(file);
-		assertEquals(getEntityMappings(), ormXmlJpaFile.rootStructureNodes().next());
-		
-		((OrmXml) getEntityMappings().getParent()).removeEntityMappings();
-		
-		assertFalse(ormXmlJpaFile.rootStructureNodes().hasNext());
-	}
-
-	public void testImpliedEntityMappingsRootStructureNodeRemoved() throws Exception {
-		IFile file = getOrmXmlResource().getFile();
-		JpaFile ormXmlJpaFile = JptCorePlugin.getJpaFile(file);
-		
-		assertNull(getPersistenceUnit().getImpliedMappingFileRef());
-
-		getXmlPersistenceUnit().getMappingFiles().remove(0);
-		assertNotNull(getPersistenceUnit().getImpliedMappingFileRef());
-		assertEquals(getPersistenceUnit().getImpliedMappingFileRef().getMappingFile().getRoot(), ormXmlJpaFile.rootStructureNodes().next());
-				
-		((OrmXml) getPersistenceUnit().getImpliedMappingFileRef().getMappingFile()).removeEntityMappings();		
-		assertFalse(ormXmlJpaFile.rootStructureNodes().hasNext());
-	}
-	
-	public void testEntityMappingsRootStructureNodeRemovedFromResourceModel() throws Exception {
-		IFile file = getOrmXmlResource().getFile();
-		JpaFile ormXmlJpaFile = JptCorePlugin.getJpaFile(file);
-		assertEquals(getEntityMappings(), ormXmlJpaFile.rootStructureNodes().next());
-		
-		getOrmXmlResource().getContents().remove(getOrmXmlResource().getRootObject());
-		
-		assertFalse(ormXmlJpaFile.rootStructureNodes().hasNext());
-	}
-
-	public void testUpdatePersistenceRootStructureNodePersistenceRemoved() throws Exception {
-		IFile file = getPersistenceXmlResource().getFile();
-		JpaFile persistenceXmlJpaFile = JptCorePlugin.getJpaFile(file);
-		assertEquals(getRootContextNode().getPersistenceXml().getPersistence(), persistenceXmlJpaFile.rootStructureNodes().next());
-		
-		getRootContextNode().getPersistenceXml().removePersistence();	
-		assertFalse(persistenceXmlJpaFile.rootStructureNodes().hasNext());
-	}
-	
-	public void testUpdateOrmJavaRootStructureNodePersistenceRemoved() throws Exception {		
-		OrmPersistentType ormPersistentType = getEntityMappings().addPersistentType(MappingKeys.ENTITY_TYPE_MAPPING_KEY, FULLY_QUALIFIED_TYPE_NAME);
-		
-		ICompilationUnit cu = createTestEntity();
-		JpaFile javaJpaFile = JptCorePlugin.getJpaFile((IFile) cu.getResource());
-		
-		assertEquals(ormPersistentType.getJavaPersistentType(), javaJpaFile.rootStructureNodes().next());
-		
-		getRootContextNode().getPersistenceXml().removePersistence();
-		assertFalse(javaJpaFile.rootStructureNodes().hasNext());
-	}
-	
-	public void testUpdateJavaRootStructureNodePersistenceRemoved() throws Exception {		
-		ICompilationUnit cu = createTestEntity();
-		addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
-		
-		JpaFile javaJpaFile = JptCorePlugin.getJpaFile((IFile) cu.getResource());
-		
-		assertEquals(getJavaPersistentType(), javaJpaFile.rootStructureNodes().next());
-		
-		getRootContextNode().getPersistenceXml().removePersistence();
-		assertFalse(javaJpaFile.rootStructureNodes().hasNext());
-	}
-
-	public void testPersistenceRootStructureNodeRemovedFromResourceModel() throws Exception {
-		IFile file = getPersistenceXmlResource().getFile();
-		JpaFile persistenceXmlJpaFile = JptCorePlugin.getJpaFile(file);
-		getRootContextNode().getPersistenceXml().getPersistence();
-		assertEquals(getRootContextNode().getPersistenceXml().getPersistence(), persistenceXmlJpaFile.rootStructureNodes().next());
-		
-		getPersistenceXmlResource().getContents().remove(getXmlPersistence());
-		
-		assertFalse(persistenceXmlJpaFile.rootStructureNodes().hasNext());
-	}
-	
-	public void testUpdateOrmJavaRootStructureNodePersistenceXmlRemoved() throws Exception {		
-		OrmPersistentType ormPersistentType = getEntityMappings().addPersistentType(MappingKeys.ENTITY_TYPE_MAPPING_KEY, FULLY_QUALIFIED_TYPE_NAME);
-		
-		ICompilationUnit cu = createTestEntity();
-		JpaFile javaJpaFile = JptCorePlugin.getJpaFile((IFile) cu.getResource());
-		
-		assertEquals(ormPersistentType.getJavaPersistentType(), javaJpaFile.rootStructureNodes().next());
-		
-		getPersistenceXmlResource().getContents().remove(getXmlPersistence());
-		assertFalse(javaJpaFile.rootStructureNodes().hasNext());
-	}
-	
-	public void testUpdateJavaRootStructureNodePersistenceXmlRemoved() throws Exception {		
-		ICompilationUnit cu = createTestEntity();
-		addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
-		
-		JpaFile javaJpaFile = JptCorePlugin.getJpaFile((IFile) cu.getResource());
-		
-		assertEquals(getJavaPersistentType(), javaJpaFile.rootStructureNodes().next());
-		
-		getPersistenceXmlResource().getContents().remove(getXmlPersistence());
-		assertFalse(javaJpaFile.rootStructureNodes().hasNext());
-	}
-	
-	public void testOrmJavaPersistentTypeRootStructureNodeRemoved() throws Exception {
-		OrmPersistentType ormPersistentType = getEntityMappings().addPersistentType(MappingKeys.ENTITY_TYPE_MAPPING_KEY, FULLY_QUALIFIED_TYPE_NAME);
-		
-		ICompilationUnit cu = createTestEntity();
-		JpaFile javaJpaFile = JptCorePlugin.getJpaFile((IFile) cu.getResource());
-		JavaPersistentType javaPersistentType = ormPersistentType.getJavaPersistentType();
-		assertEquals(javaPersistentType, javaJpaFile.rootStructureNodes().next());
-		assertTrue(javaJpaFile.rootStructureNodes().next().getParent() instanceof OrmPersistentType);
-		
-		
-		getEntityMappings().removePersistentType(0);
-		
-		assertEquals(1, javaJpaFile.rootStructureNodesSize());
-		assertTrue(javaJpaFile.rootStructureNodes().next().getParent() instanceof ClassRef);
-		assertNotSame(javaPersistentType, javaJpaFile.rootStructureNodes().next());
-	}
-	
-	public void testOrmJavaPersistentTypeRootStructureNodeRemovedFromResourceModel() throws Exception {
-		OrmPersistentType ormPersistentType = getEntityMappings().addPersistentType(MappingKeys.ENTITY_TYPE_MAPPING_KEY, FULLY_QUALIFIED_TYPE_NAME);
-		
-		ICompilationUnit cu = createTestEntity();
-		JpaFile javaJpaFile = JptCorePlugin.getJpaFile((IFile) cu.getResource());
-		
-		JavaPersistentType javaPersistentType = ormPersistentType.getJavaPersistentType();
-		assertEquals(javaPersistentType, javaJpaFile.rootStructureNodes().next());
-		assertTrue(javaJpaFile.rootStructureNodes().next().getParent() instanceof OrmPersistentType);
-		
-		getXmlEntityMappings().getEntities().remove(0);
-		
-		assertEquals(1, javaJpaFile.rootStructureNodesSize());
-		assertTrue(javaJpaFile.rootStructureNodes().next().getParent() instanceof ClassRef);
-		assertNotSame(javaPersistentType, javaJpaFile.rootStructureNodes().next());
-	}
-
-	public void testJavaPersistentTypeRootStructureNodeRemoved() throws Exception {
-		ICompilationUnit cu = createTestEntity();
-		JpaFile javaJpaFile = JptCorePlugin.getJpaFile((IFile) cu.getResource());
-		
-		addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
-		JavaPersistentType javaPersistentType = getJavaPersistentType();
-		assertEquals(javaPersistentType, javaJpaFile.rootStructureNodes().next());
-		assertEquals(getEntityMappings().getPersistenceUnit().specifiedClassRefs().next(), javaJpaFile.rootStructureNodes().next().getParent());
-		
-		getEntityMappings().getPersistenceUnit().removeSpecifiedClassRef(0);
-		assertNotSame(javaPersistentType, javaJpaFile.rootStructureNodes().next());
-		assertEquals(getEntityMappings().getPersistenceUnit().impliedClassRefs().next(), javaJpaFile.rootStructureNodes().next().getParent());
-	}
-	
-	public void testJavaPersistentTypeRootStructureNodeRemovedFromResourceModel() throws Exception {
-		ICompilationUnit cu = createTestEntity();
-		JpaFile javaJpaFile = JptCorePlugin.getJpaFile((IFile) cu.getResource());
-		
-		addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
-		JavaPersistentType javaPersistentType = getJavaPersistentType();
-		Iterator<JpaStructureNode> rootStructureNodes = javaJpaFile.rootStructureNodes();
-		JpaStructureNode rootStructureNode = rootStructureNodes.next();
-		assertEquals(javaPersistentType, rootStructureNode);
-		assertEquals(getEntityMappings().getPersistenceUnit().specifiedClassRefs().next(), rootStructureNode.getParent());
-		assertFalse(rootStructureNodes.hasNext());
-		
-		removeXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
-		assertNotSame(javaPersistentType, javaJpaFile.rootStructureNodes().next());
-		assertEquals(getEntityMappings().getPersistenceUnit().impliedClassRefs().next(), javaJpaFile.rootStructureNodes().next().getParent());
-	}
-
-	public void testImpliedJavaPersistentTypeRootStructureNodeRemoved() throws Exception {
-		getJpaProject().setDiscoversAnnotatedClasses(true);
-		ICompilationUnit cu = createTestEntity();
-		JpaFile javaJpaFile = JptCorePlugin.getJpaFile((IFile) cu.getResource());
-		
-		JavaPersistentType javaPersistentType = getPersistenceUnit().impliedClassRefs().next().getJavaPersistentType();
-		assertEquals(javaPersistentType, javaJpaFile.rootStructureNodes().next());
-		
-		javaPersistentType.setMappingKey(MappingKeys.NULL_TYPE_MAPPING_KEY);
-		
-		assertFalse(javaJpaFile.rootStructureNodes().hasNext());
-	}
-	
-	public void testJavaRootStructureNodesEntityMappingsRemoved() throws Exception {
-		OrmPersistentType ormPersistentType = getEntityMappings().addPersistentType(MappingKeys.ENTITY_TYPE_MAPPING_KEY, FULLY_QUALIFIED_TYPE_NAME);
-		
-		ICompilationUnit cu = createTestEntity();
-		JpaFile javaJpaFile = JptCorePlugin.getJpaFile((IFile) cu.getResource());
-		
-		JavaPersistentType javaPersistentType = ormPersistentType.getJavaPersistentType();
-		assertEquals(javaPersistentType, javaJpaFile.rootStructureNodes().next());
-		
-		getOrmXmlResource().getContents().remove(getXmlEntityMappings());
-		assertNotSame(javaPersistentType, javaJpaFile.rootStructureNodes().next());
-		assertEquals(1, javaJpaFile.rootStructureNodesSize());
-		assertEquals(getPersistenceUnit().impliedClassRefs().next(), javaJpaFile.rootStructureNodes().next().getParent());
-	}
-	
-	public void testJavaRootStructureNodesPersistenceUnitRemovedFromResourceModel() throws Exception {
-		OrmPersistentType ormPersistentType = getEntityMappings().addPersistentType(MappingKeys.ENTITY_TYPE_MAPPING_KEY, FULLY_QUALIFIED_TYPE_NAME);
-		
-		ICompilationUnit cu = createTestEntity();
-		JpaFile javaJpaFile = JptCorePlugin.getJpaFile((IFile) cu.getResource());
-		
-		JavaPersistentType javaPersistentType = ormPersistentType.getJavaPersistentType();
-		assertEquals(javaPersistentType, javaJpaFile.rootStructureNodes().next());
-		
-		getXmlPersistence().getPersistenceUnits().remove(0);
-
-		assertFalse(javaJpaFile.rootStructureNodes().hasNext());
-		assertEquals(0, javaJpaFile.rootStructureNodesSize());
-	}
-	
-	public void testJavaRootStructureNodesPersistenceUnitRemoved() throws Exception {
-		OrmPersistentType ormPersistentType = getEntityMappings().addPersistentType(MappingKeys.ENTITY_TYPE_MAPPING_KEY, FULLY_QUALIFIED_TYPE_NAME);
-		
-		ICompilationUnit cu = createTestEntity();
-		JpaFile javaJpaFile = JptCorePlugin.getJpaFile((IFile) cu.getResource());
-		
-		JavaPersistentType javaPersistentType = ormPersistentType.getJavaPersistentType();
-		assertEquals(javaPersistentType, javaJpaFile.rootStructureNodes().next());
-		
-		getJpaProject().getRootContextNode().getPersistenceXml().getPersistence().removePersistenceUnit(0);
-
-		assertFalse(javaJpaFile.rootStructureNodes().hasNext());
-		assertEquals(0, javaJpaFile.rootStructureNodesSize());
-	}
-
-	public void testJavaRootStructureNodesOrmPersistentTypeRemoved() throws Exception {
-		OrmPersistentType ormPersistentType = getEntityMappings().addPersistentType(MappingKeys.ENTITY_TYPE_MAPPING_KEY, FULLY_QUALIFIED_TYPE_NAME);
-		
-		ICompilationUnit cu = createTestEntity();
-		JpaFile javaJpaFile = JptCorePlugin.getJpaFile((IFile) cu.getResource());
-		
-		JavaPersistentType javaPersistentType = ormPersistentType.getJavaPersistentType();
-		assertEquals(javaPersistentType, javaJpaFile.rootStructureNodes().next());
-		
-		getEntityMappings().removePersistentType(0);
-		assertNotSame(javaPersistentType, javaJpaFile.rootStructureNodes().next());
-		assertEquals(1, javaJpaFile.rootStructureNodesSize());
-		assertEquals(getEntityMappings().getPersistenceUnit().impliedClassRefs().next(), javaJpaFile.rootStructureNodes().next().getParent());
-	}
-	
-	public void testJavaRootStructureNodesOrmTypeMappingMorphed() throws Exception {
-		OrmPersistentType ormPersistentType = getEntityMappings().addPersistentType(MappingKeys.ENTITY_TYPE_MAPPING_KEY, FULLY_QUALIFIED_TYPE_NAME);
-		
-		ICompilationUnit cu = createTestEntity();
-		JpaFile javaJpaFile = JptCorePlugin.getJpaFile((IFile) cu.getResource());
-		
-		JavaPersistentType javaPersistentType = ormPersistentType.getJavaPersistentType();
-		assertEquals(javaPersistentType, javaJpaFile.rootStructureNodes().next());
-	
-		ormPersistentType.setMappingKey(MappingKeys.EMBEDDABLE_TYPE_MAPPING_KEY);
-		assertEquals(1, javaJpaFile.rootStructureNodesSize());
-		javaPersistentType = getEntityMappings().persistentTypes().next().getJavaPersistentType();
-		assertEquals(javaPersistentType, javaJpaFile.rootStructureNodes().next());
-		
-		getEntityMappings().removePersistentType(0);
-		assertNotSame(javaPersistentType, javaJpaFile.rootStructureNodes().next());
-		assertEquals(1, javaJpaFile.rootStructureNodesSize());
-		assertEquals(getEntityMappings().getPersistenceUnit().impliedClassRefs().next(), javaJpaFile.rootStructureNodes().next().getParent());
-	}
-	
-	public void testUpdateOrmJavaRootStructureNodeMappingFileRefChanged() throws Exception {		
-		OrmPersistentType ormPersistentType = getEntityMappings().addPersistentType(MappingKeys.ENTITY_TYPE_MAPPING_KEY, FULLY_QUALIFIED_TYPE_NAME);
-		
-		ICompilationUnit cu = createTestEntity();
-		JpaFile javaJpaFile = JptCorePlugin.getJpaFile((IFile) cu.getResource());
-		
-		assertEquals(ormPersistentType.getJavaPersistentType(), javaJpaFile.rootStructureNodes().next());
-		
-		MappingFileRef mappingFileRef = getPersistenceUnit().mappingFileRefs().next();
-		mappingFileRef.setFileName("foo");
-		
-		ormPersistentType = ((EntityMappings) getPersistenceUnit().getImpliedMappingFileRef().getMappingFile().getMappingFileRoot()).persistentTypes().next();
-		assertEquals(ormPersistentType.getJavaPersistentType(), javaJpaFile.rootStructureNodes().next());
-		
-		IFile file = getPersistenceXmlResource().getFile();
-		JpaFile ormXmlJpaFile = JptCorePlugin.getJpaFile(file);		
-		
-		assertEquals(1, ormXmlJpaFile.rootStructureNodesSize());
-	}
-	
-	public void testUpdateJavaRootStructureNodeMappingFileRefChanged() throws Exception {		
-		ICompilationUnit cu = createTestEntity();
-		addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
-		
-		JpaFile javaJpaFile = JptCorePlugin.getJpaFile((IFile) cu.getResource());
-		
-		assertEquals(getJavaPersistentType(), javaJpaFile.rootStructureNodes().next());
-		
-		MappingFileRef mappingFileRef = getPersistenceUnit().mappingFileRefs().next();
-		mappingFileRef.setFileName("foo");
-		assertEquals(getJavaPersistentType(), javaJpaFile.rootStructureNodes().next());
-	}
-
-	
-	public void testUpdateJavaRootStrucutreNodeDeleteOrmResource() throws Exception {
-		OrmPersistentType ormPersistentType = getEntityMappings().addPersistentType(MappingKeys.ENTITY_TYPE_MAPPING_KEY, FULLY_QUALIFIED_TYPE_NAME);
-		
-		ICompilationUnit cu = createTestEntity();
-		JpaFile javaJpaFile = JptCorePlugin.getJpaFile((IFile) cu.getResource());
-		
-		JavaPersistentType javaPersistentType = ormPersistentType.getJavaPersistentType();
-		assertEquals(javaPersistentType, javaJpaFile.rootStructureNodes().next());
-
-		
-		deleteResource(getOrmXmlResource());
-		
-		assertNotSame(javaPersistentType, javaJpaFile.rootStructureNodes().next());
-		assertEquals(1, javaJpaFile.rootStructureNodesSize());
-		assertEquals(getPersistenceUnit().impliedClassRefs().next(), javaJpaFile.rootStructureNodes().next().getParent());
-	}
-	//TODO test rootStructureNodes with a static inner class
-}
\ No newline at end of file
diff --git a/jpa/tests/org.eclipse.jpt.core.tests/src/org/eclipse/jpt/core/tests/internal/context/JpaProjectTests.java b/jpa/tests/org.eclipse.jpt.core.tests/src/org/eclipse/jpt/core/tests/internal/context/JpaProjectTests.java
deleted file mode 100644
index 752af84..0000000
--- a/jpa/tests/org.eclipse.jpt.core.tests/src/org/eclipse/jpt/core/tests/internal/context/JpaProjectTests.java
+++ /dev/null
@@ -1,147 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.core.tests.internal.context;
-
-import junit.framework.TestCase;
-import org.eclipse.jpt.core.JpaProject;
-import org.eclipse.jpt.core.JptCorePlugin;
-import org.eclipse.jpt.core.internal.resource.orm.OrmXmlResourceProvider;
-import org.eclipse.jpt.core.internal.resource.persistence.PersistenceXmlResourceProvider;
-import org.eclipse.jpt.core.resource.xml.JpaXmlResource;
-import org.eclipse.jpt.core.tests.internal.projects.TestJpaProject;
-
-@SuppressWarnings("nls")
-public class JpaProjectTests extends TestCase
-{
-	static final String BASE_PROJECT_NAME = JpaProjectTests.class.getSimpleName();
-	
-	TestJpaProject jpaProject;
-
-	
-	public JpaProjectTests(String name) {
-		super(name);
-	}
-
-	@Override
-	protected void setUp() throws Exception {
-		super.setUp();
-		this.jpaProject = TestJpaProject.buildJpaProject(BASE_PROJECT_NAME, false); // false = no auto-build
-	}
-	
-	@Override
-	protected void tearDown() throws Exception {
-		this.jpaProject.getProject().delete(true, true, null);
-		this.jpaProject = null;
-		super.tearDown();
-	}
-	
-	protected JpaProject getJpaProject() {
-		return this.jpaProject.getJpaProject();
-	}
-	
-	public void testGetPersistenceXmlResource() throws Exception {
-		JpaXmlResource resource = this.getJpaProject().getPersistenceXmlResource();
-		assertNotNull(resource);
-		assertEquals(JptCorePlugin.PERSISTENCE_XML_CONTENT_TYPE, resource.getContentType());
-		assertEquals("src/META-INF/persistence.xml", resource.getFile().getProjectRelativePath().toString());
-		
-		//delete the persistence.xml file and verify it is not returned from getPersistenceXmlResource()
-		resource.delete(null);
-		resource = this.getJpaProject().getPersistenceXmlResource();
-		assertNull(resource);
-		
-		//add the persistence.xml file back
-		createPersistenceXmlFile();
-		resource = this.getJpaProject().getPersistenceXmlResource();
-		assertNotNull(resource);
-		assertEquals(JptCorePlugin.PERSISTENCE_XML_CONTENT_TYPE, resource.getContentType());
-		assertEquals("src/META-INF/persistence.xml", resource.getFile().getProjectRelativePath().toString());
-	}
-	
-	private void createPersistenceXmlFile() throws Exception {
-		PersistenceXmlResourceProvider resourceProvider = 
-			PersistenceXmlResourceProvider.getDefaultXmlResourceProvider(this.jpaProject.getProject());
-		resourceProvider.createFileAndResource();
-	}
-
-	public void testGetDefaultOrmXmlResource() throws Exception {
-		JpaXmlResource resource = this.getJpaProject().getDefaultOrmXmlResource();
-		assertNotNull(resource);
-		assertEquals(JptCorePlugin.ORM_XML_CONTENT_TYPE, resource.getContentType());
-		assertEquals("src/META-INF/orm.xml", resource.getFile().getProjectRelativePath().toString());
-		
-		//delete the orm.xml file and verify it is not returned from getDefaultOrmXmlResource()
-		resource.delete(null);
-		resource = this.getJpaProject().getDefaultOrmXmlResource();
-		assertNull(resource);
-		
-		//add the default orm.xml file back
-		createDefaultOrmXmlFile();
-		resource = this.getJpaProject().getDefaultOrmXmlResource();
-		assertNotNull(resource);
-		assertEquals(JptCorePlugin.ORM_XML_CONTENT_TYPE, resource.getContentType());
-		assertEquals("src/META-INF/orm.xml", resource.getFile().getProjectRelativePath().toString());
-	}
-	
-	private void createDefaultOrmXmlFile() throws Exception {
-		OrmXmlResourceProvider resourceProvider = 
-			OrmXmlResourceProvider.getDefaultXmlResourceProvider(this.jpaProject.getProject());
-		resourceProvider.createFileAndResource();
-	}
-	
-	private void createOrmXmlFile(String filePath) throws Exception {
-		OrmXmlResourceProvider resourceProvider = 
-			OrmXmlResourceProvider.getXmlResourceProvider(this.jpaProject.getProject(), filePath);
-		resourceProvider.createFileAndResource();
-	}
-
-	public void testGetMappingFileResource() throws Exception {
-		JpaXmlResource resource = this.getJpaProject().getMappingFileXmlResource(JptCorePlugin.DEFAULT_ORM_XML_FILE_PATH);
-		assertNotNull(resource);
-		assertEquals(JptCorePlugin.ORM_XML_CONTENT_TYPE, resource.getContentType());
-		assertEquals("src/META-INF/orm.xml", resource.getFile().getProjectRelativePath().toString());
-		
-		//delete the orm.xml file and verify it is not returned from getMappingFileResource()
-		resource.delete(null);
-		resource = this.getJpaProject().getMappingFileXmlResource(JptCorePlugin.DEFAULT_ORM_XML_FILE_PATH);
-		assertNull(resource);
-		
-		//add the  orm.xml file back
-		createDefaultOrmXmlFile();
-		resource = this.getJpaProject().getMappingFileXmlResource(JptCorePlugin.DEFAULT_ORM_XML_FILE_PATH);
-		assertNotNull(resource);
-		assertEquals(JptCorePlugin.ORM_XML_CONTENT_TYPE, resource.getContentType());
-		assertEquals("src/META-INF/orm.xml", resource.getFile().getProjectRelativePath().toString());
-	}
-	
-	public void testGetMappingFileResourceDifferentlyName() throws Exception {
-		JpaXmlResource resource = this.getJpaProject().getMappingFileXmlResource("META-INF/orm2.xml");
-		assertNull(resource);
-
-		//create the orm2.xml file
-		createOrmXmlFile("META-INF/orm2.xml");
-		resource = this.getJpaProject().getMappingFileXmlResource("META-INF/orm2.xml");
-		assertNotNull(resource);
-		assertEquals(JptCorePlugin.ORM_XML_CONTENT_TYPE, resource.getContentType());
-		assertEquals("src/META-INF/orm2.xml", resource.getFile().getProjectRelativePath().toString());
-		
-		//delete the orm2.xml file and verify it is not returned from getMappingFileResource()
-		resource.delete(null);
-		resource = this.getJpaProject().getMappingFileXmlResource("META-INF/orm2.xml");
-		assertNull(resource);
-		
-		//add the orm2.xml file back
-		createOrmXmlFile("META-INF/orm2.xml");
-		resource = this.getJpaProject().getMappingFileXmlResource("META-INF/orm2.xml");
-		assertNotNull(resource);
-		assertEquals(JptCorePlugin.ORM_XML_CONTENT_TYPE, resource.getContentType());
-		assertEquals("src/META-INF/orm2.xml", resource.getFile().getProjectRelativePath().toString());
-	}
-}
diff --git a/jpa/tests/org.eclipse.jpt.core.tests/src/org/eclipse/jpt/core/tests/internal/context/JptCoreContextModelTests.java b/jpa/tests/org.eclipse.jpt.core.tests/src/org/eclipse/jpt/core/tests/internal/context/JptCoreContextModelTests.java
deleted file mode 100644
index cf843f2..0000000
--- a/jpa/tests/org.eclipse.jpt.core.tests/src/org/eclipse/jpt/core/tests/internal/context/JptCoreContextModelTests.java
+++ /dev/null
@@ -1,36 +0,0 @@
-/*******************************************************************************
- *  Copyright (c) 2007, 2009 Oracle. 
- *  All rights reserved.  This program and the accompanying materials 
- *  are made available under the terms of the Eclipse Public License v1.0 
- *  which accompanies this distribution, and is available at 
- *  http://www.eclipse.org/legal/epl-v10.html
- *  
- *  Contributors: 
- *  	Oracle - initial API and implementation
- *******************************************************************************/
-package org.eclipse.jpt.core.tests.internal.context;
-
-import junit.framework.Test;
-import junit.framework.TestCase;
-import junit.framework.TestSuite;
-import org.eclipse.jpt.core.tests.internal.context.java.JptCoreContextJavaModelTests;
-import org.eclipse.jpt.core.tests.internal.context.orm.JptCoreOrmContextModelTests;
-import org.eclipse.jpt.core.tests.internal.context.persistence.JptCorePersistenceContextModelTests;
-
-public class JptCoreContextModelTests extends TestCase
-{
-	public static Test suite() {
-		TestSuite suite = new TestSuite(JptCoreContextModelTests.class.getName());
-		suite.addTestSuite(JpaProjectTests.class);
-		suite.addTestSuite(JpaFileTests.class);
-		suite.addTest(JptCorePersistenceContextModelTests.suite());
-		suite.addTest(JptCoreOrmContextModelTests.suite());
-		suite.addTest(JptCoreContextJavaModelTests.suite());
-		return suite;
-	}
-
-	private JptCoreContextModelTests() {
-		super();
-		throw new UnsupportedOperationException();
-	}
-}
diff --git a/jpa/tests/org.eclipse.jpt.core.tests/src/org/eclipse/jpt/core/tests/internal/context/java/GenericJavaPersistentAttributeTests.java b/jpa/tests/org.eclipse.jpt.core.tests/src/org/eclipse/jpt/core/tests/internal/context/java/GenericJavaPersistentAttributeTests.java
deleted file mode 100644
index 0b1d609..0000000
--- a/jpa/tests/org.eclipse.jpt.core.tests/src/org/eclipse/jpt/core/tests/internal/context/java/GenericJavaPersistentAttributeTests.java
+++ /dev/null
@@ -1,237 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.core.tests.internal.context.java;
-
-import java.util.Iterator;
-import org.eclipse.jdt.core.ICompilationUnit;
-import org.eclipse.jpt.core.MappingKeys;
-import org.eclipse.jpt.core.context.AccessType;
-import org.eclipse.jpt.core.context.PersistentAttribute;
-import org.eclipse.jpt.core.context.java.JavaBasicMapping;
-import org.eclipse.jpt.core.context.java.JavaEmbeddedMapping;
-import org.eclipse.jpt.core.context.java.JavaIdMapping;
-import org.eclipse.jpt.core.resource.java.BasicAnnotation;
-import org.eclipse.jpt.core.resource.java.EmbeddedAnnotation;
-import org.eclipse.jpt.core.resource.java.IdAnnotation;
-import org.eclipse.jpt.core.resource.java.JPA;
-import org.eclipse.jpt.core.resource.java.JavaResourcePersistentAttribute;
-import org.eclipse.jpt.core.resource.java.JavaResourcePersistentType;
-import org.eclipse.jpt.core.tests.internal.context.ContextModelTestCase;
-import org.eclipse.jpt.utility.internal.iterators.ArrayIterator;
-
-@SuppressWarnings("nls")
-public class GenericJavaPersistentAttributeTests extends ContextModelTestCase
-{
-
-	private ICompilationUnit createTestEntityAnnotatedField() throws Exception {
-		return this.createTestType(new DefaultAnnotationWriter() {
-			@Override
-			public Iterator<String> imports() {
-				return new ArrayIterator<String>(JPA.ENTITY, JPA.ID);
-			}
-			@Override
-			public void appendTypeAnnotationTo(StringBuilder sb) {
-				sb.append("@Entity");
-			}
-			
-			@Override
-			public void appendIdFieldAnnotationTo(StringBuilder sb) {
-				sb.append("@Id");
-			}
-		});
-	}
-
-	private ICompilationUnit createTestEntityAnnotatedMethod() throws Exception {
-		return this.createTestType(new DefaultAnnotationWriter() {
-			@Override
-			public Iterator<String> imports() {
-				return new ArrayIterator<String>(JPA.ENTITY, JPA.ID);
-			}
-			@Override
-			public void appendTypeAnnotationTo(StringBuilder sb) {
-				sb.append("@Entity");
-			}
-			
-			@Override
-			public void appendGetIdMethodAnnotationTo(StringBuilder sb) {
-				sb.append("@Id");
-			}
-		});
-	}
-
-		
-	public GenericJavaPersistentAttributeTests(String name) {
-		super(name);
-	}
-		
-	public void testGetName() throws Exception {
-		createTestType();
-		addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
-		
-		PersistentAttribute persistentAttribute = getJavaPersistentType().attributes().next();
-		
-		assertEquals("id", persistentAttribute.getName());
-	}
-	
-	public void testGetMapping() throws Exception {
-		createTestEntityAnnotatedMethod();
-		addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
-
-		PersistentAttribute persistentAttribute = getJavaPersistentType().attributes().next();
-		assertTrue(persistentAttribute.getMapping() instanceof JavaIdMapping);
-
-		persistentAttribute.setSpecifiedMappingKey(null);
-		assertTrue(persistentAttribute.getMapping() instanceof JavaBasicMapping);
-	}
-	
-	public void testGetSpecifiedMapping() throws Exception {
-		createTestEntityAnnotatedMethod();
-		addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
-
-		PersistentAttribute persistentAttribute = getJavaPersistentType().attributes().next();
-		assertTrue(persistentAttribute.getSpecifiedMapping() instanceof JavaIdMapping);
-
-		persistentAttribute.setSpecifiedMappingKey(null);
-		assertNull(persistentAttribute.getSpecifiedMapping());
-	}
-	
-	public void testGetSpecifiedMappingNull() throws Exception {
-		createTestType();
-		addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
-		
-		PersistentAttribute persistentAttribute = getJavaPersistentType().attributes().next();
-
-		assertNull(persistentAttribute.getSpecifiedMapping());
-		assertNotNull(persistentAttribute.getMapping());
-	}
-	
-	public void testMappingKey() throws Exception {
-		createTestEntityAnnotatedMethod();
-		addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
-
-		PersistentAttribute persistentAttribute = getJavaPersistentType().attributes().next();
-
-		assertEquals(MappingKeys.ID_ATTRIBUTE_MAPPING_KEY, persistentAttribute.getMappingKey());
-		
-		persistentAttribute.setSpecifiedMappingKey(null);
-		assertEquals(MappingKeys.BASIC_ATTRIBUTE_MAPPING_KEY, persistentAttribute.getMappingKey());
-	}
-	
-	public void testDefaultMappingKey() throws Exception {
-		createTestEntityAnnotatedMethod();
-		addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
-
-		PersistentAttribute persistentAttribute = getJavaPersistentType().attributes().next();
-
-		assertEquals(MappingKeys.ID_ATTRIBUTE_MAPPING_KEY, persistentAttribute.getMappingKey());
-		assertEquals(MappingKeys.BASIC_ATTRIBUTE_MAPPING_KEY, persistentAttribute.getDefaultMappingKey());
-	}
-	
-	public void testSetSpecifiedMappingKey() throws Exception {
-		createTestType();
-		addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
-		
-		PersistentAttribute persistentAttribute = getJavaPersistentType().attributes().next();
-		assertNull(persistentAttribute.getSpecifiedMapping());
-
-		persistentAttribute.setSpecifiedMappingKey(MappingKeys.EMBEDDED_ATTRIBUTE_MAPPING_KEY);
-		
-		JavaResourcePersistentType typeResource = getJpaProject().getJavaResourcePersistentType(FULLY_QUALIFIED_TYPE_NAME);
-		JavaResourcePersistentAttribute attributeResource = typeResource.persistableAttributes().next();
-		assertNotNull(attributeResource.getMappingAnnotation());
-		assertTrue(attributeResource.getMappingAnnotation() instanceof EmbeddedAnnotation);
-		
-		assertEquals(MappingKeys.EMBEDDED_ATTRIBUTE_MAPPING_KEY, persistentAttribute.getMappingKey());
-		assertTrue(persistentAttribute.getSpecifiedMapping() instanceof JavaEmbeddedMapping);
-	}
-	
-	public void testSetSpecifiedMappingKey2() throws Exception {
-		createTestEntityAnnotatedField();
-		addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
-		
-		PersistentAttribute persistentAttribute = getJavaPersistentType().attributes().next();
-		assertEquals(MappingKeys.ID_ATTRIBUTE_MAPPING_KEY, persistentAttribute.getMappingKey());
-
-		persistentAttribute.setSpecifiedMappingKey(MappingKeys.EMBEDDED_ATTRIBUTE_MAPPING_KEY);
-		
-		JavaResourcePersistentType typeResource = getJpaProject().getJavaResourcePersistentType(FULLY_QUALIFIED_TYPE_NAME);
-		JavaResourcePersistentAttribute attributeResource = typeResource.persistableAttributes().next();
-		assertNotNull(attributeResource.getMappingAnnotation());
-		assertTrue(attributeResource.getMappingAnnotation() instanceof EmbeddedAnnotation);
-		
-		assertEquals(MappingKeys.EMBEDDED_ATTRIBUTE_MAPPING_KEY, persistentAttribute.getMappingKey());
-		assertTrue(persistentAttribute.getSpecifiedMapping() instanceof JavaEmbeddedMapping);
-	}
-
-	public void testSetSpecifiedMappingKeyNull() throws Exception {
-		createTestEntityAnnotatedMethod();
-		addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
-		
-		PersistentAttribute persistentAttribute = getJavaPersistentType().attributes().next();
-		assertEquals(MappingKeys.ID_ATTRIBUTE_MAPPING_KEY, persistentAttribute.getMappingKey());
-
-		persistentAttribute.setSpecifiedMappingKey(MappingKeys.NULL_ATTRIBUTE_MAPPING_KEY);
-		
-		JavaResourcePersistentType typeResource = getJpaProject().getJavaResourcePersistentType(FULLY_QUALIFIED_TYPE_NAME);
-		JavaResourcePersistentAttribute attributeResource = typeResource.persistableAttributes().next();
-		assertNull(attributeResource.getMappingAnnotation());
-		assertNull(attributeResource.getMappingAnnotation(IdAnnotation.ANNOTATION_NAME));
-		
-		assertNull(persistentAttribute.getSpecifiedMapping());
-	}
-	
-	public void testGetMappingKeyMappingChangeInResourceModel() throws Exception {
-		createTestEntityAnnotatedField();
-		addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
-		
-		PersistentAttribute persistentAttribute = getJavaPersistentType().attributes().next();
-		assertEquals(MappingKeys.ID_ATTRIBUTE_MAPPING_KEY, persistentAttribute.getMappingKey());
-		
-		JavaResourcePersistentType typeResource = getJpaProject().getJavaResourcePersistentType(FULLY_QUALIFIED_TYPE_NAME);
-		JavaResourcePersistentAttribute attributeResource = typeResource.persistableAttributes().next();
-		attributeResource.setMappingAnnotation(EmbeddedAnnotation.ANNOTATION_NAME);
-				
-		assertEquals(MappingKeys.EMBEDDED_ATTRIBUTE_MAPPING_KEY, persistentAttribute.getMappingKey());
-	}
-	
-	public void testGetMappingKeyMappingChangeInResourceModel2() throws Exception {
-		createTestType();
-		addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
-		
-		PersistentAttribute persistentAttribute = getJavaPersistentType().attributes().next();
-		assertNull(persistentAttribute.getSpecifiedMapping());
-		
-		JavaResourcePersistentType typeResource = getJpaProject().getJavaResourcePersistentType(FULLY_QUALIFIED_TYPE_NAME);
-		JavaResourcePersistentAttribute attributeResource = typeResource.persistableAttributes().next();
-		attributeResource.setMappingAnnotation(BasicAnnotation.ANNOTATION_NAME);
-				
-		assertEquals(MappingKeys.BASIC_ATTRIBUTE_MAPPING_KEY, persistentAttribute.getSpecifiedMapping().getKey());
-	}
-	
-	public void testGetAccessField() throws Exception {
-		createTestEntityAnnotatedField();
-		addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
-		
-		PersistentAttribute persistentAttribute = getJavaPersistentType().attributes().next();
-		assertEquals(AccessType.FIELD, persistentAttribute.getAccess());
-		assertEquals(AccessType.FIELD, persistentAttribute.getDefaultAccess());
-		assertEquals(null, persistentAttribute.getSpecifiedAccess());
-	}
-	
-	public void testGetAccessProperty() throws Exception {
-		createTestEntityAnnotatedMethod();
-		addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
-		
-		PersistentAttribute persistentAttribute = getJavaPersistentType().attributes().next();
-		assertEquals(AccessType.PROPERTY, persistentAttribute.getAccess());
-		assertEquals(AccessType.PROPERTY, persistentAttribute.getDefaultAccess());
-		assertEquals(null, persistentAttribute.getSpecifiedAccess());
-	}
-}
diff --git a/jpa/tests/org.eclipse.jpt.core.tests/src/org/eclipse/jpt/core/tests/internal/context/java/GenericJavaPersistentTypeTests.java b/jpa/tests/org.eclipse.jpt.core.tests/src/org/eclipse/jpt/core/tests/internal/context/java/GenericJavaPersistentTypeTests.java
deleted file mode 100644
index 65484b8..0000000
--- a/jpa/tests/org.eclipse.jpt.core.tests/src/org/eclipse/jpt/core/tests/internal/context/java/GenericJavaPersistentTypeTests.java
+++ /dev/null
@@ -1,759 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.core.tests.internal.context.java;
-
-import java.util.Iterator;
-import java.util.ListIterator;
-import org.eclipse.jdt.core.ICompilationUnit;
-import org.eclipse.jdt.core.IField;
-import org.eclipse.jpt.core.JptCorePlugin;
-import org.eclipse.jpt.core.MappingKeys;
-import org.eclipse.jpt.core.context.AccessType;
-import org.eclipse.jpt.core.context.PersistentAttribute;
-import org.eclipse.jpt.core.context.PersistentType;
-import org.eclipse.jpt.core.context.java.JavaPersistentAttribute;
-import org.eclipse.jpt.core.context.java.JavaPersistentType;
-import org.eclipse.jpt.core.context.orm.OrmPersistentType;
-import org.eclipse.jpt.core.context.persistence.ClassRef;
-import org.eclipse.jpt.core.resource.java.EmbeddableAnnotation;
-import org.eclipse.jpt.core.resource.java.EntityAnnotation;
-import org.eclipse.jpt.core.resource.java.JPA;
-import org.eclipse.jpt.core.resource.java.JavaResourcePersistentType;
-import org.eclipse.jpt.core.resource.persistence.PersistenceFactory;
-import org.eclipse.jpt.core.resource.persistence.XmlMappingFileRef;
-import org.eclipse.jpt.core.tests.internal.context.ContextModelTestCase;
-import org.eclipse.jpt.core.tests.internal.projects.TestJavaProject.SourceWriter;
-import org.eclipse.jpt.utility.internal.iterators.ArrayIterator;
-
-
-@SuppressWarnings("nls")
-public class GenericJavaPersistentTypeTests extends ContextModelTestCase
-{
-	@Override
-	protected void setUp() throws Exception {
-		super.setUp();
-		XmlMappingFileRef mappingFileRef = PersistenceFactory.eINSTANCE.createXmlMappingFileRef();
-		mappingFileRef.setFileName(JptCorePlugin.DEFAULT_ORM_XML_FILE_PATH);
-		getXmlPersistenceUnit().getMappingFiles().add(mappingFileRef);
-		getPersistenceXmlResource().save(null);
-	}
-		
-	private ICompilationUnit createTestEntity() throws Exception {
-		return this.createTestType(new DefaultAnnotationWriter() {
-			@Override
-			public Iterator<String> imports() {
-				return new ArrayIterator<String>(JPA.ENTITY);
-			}
-			@Override
-			public void appendTypeAnnotationTo(StringBuilder sb) {
-				sb.append("@Entity");
-			}
-		});
-	}
-
-	private ICompilationUnit createTestEntityAnnotatedField() throws Exception {	
-		return this.createTestType(new DefaultAnnotationWriter() {
-			@Override
-			public Iterator<String> imports() {
-				return new ArrayIterator<String>(JPA.ENTITY, JPA.ID);
-			}
-			@Override
-			public void appendTypeAnnotationTo(StringBuilder sb) {
-				sb.append("@Entity");
-			}
-			
-			@Override
-			public void appendIdFieldAnnotationTo(StringBuilder sb) {
-				sb.append("@Id");
-			}
-		});
-	}
-
-	private ICompilationUnit createTestEntityAnnotatedMethod() throws Exception {	
-		return this.createTestType(new DefaultAnnotationWriter() {
-			@Override
-			public Iterator<String> imports() {
-				return new ArrayIterator<String>(JPA.ENTITY, JPA.ID);
-			}
-			@Override
-			public void appendTypeAnnotationTo(StringBuilder sb) {
-				sb.append("@Entity");
-			}
-			
-			@Override
-			public void appendGetIdMethodAnnotationTo(StringBuilder sb) {
-				sb.append("@Id");
-			}
-		});
-	}
-	private ICompilationUnit createTestEntityAnnotatedFieldAndMethod() throws Exception {
-		return this.createTestType(new DefaultAnnotationWriter() {
-			@Override
-			public Iterator<String> imports() {
-				return new ArrayIterator<String>(JPA.ENTITY, JPA.ID);
-			}
-			@Override
-			public void appendTypeAnnotationTo(StringBuilder sb) {
-				sb.append("@Entity");
-			}
-			
-			@Override
-			public void appendGetIdMethodAnnotationTo(StringBuilder sb) {
-				sb.append("@Id");
-			}
-			
-			@Override
-			public void appendIdFieldAnnotationTo(StringBuilder sb) {
-				sb.append("@Id");
-			}
-		});
-	}
-	
-	private ICompilationUnit createTestSubType() throws Exception {
-		return this.createTestType(PACKAGE_NAME, "AnnotationTestTypeChild.java", "AnnotationTestTypeChild", new DefaultAnnotationWriter() {
-			@Override
-			public Iterator<String> imports() {
-				return new ArrayIterator<String>(JPA.ENTITY);
-			}
-			@Override
-			public void appendExtendsImplementsTo(StringBuilder sb) {
-				sb.append("extends " + TYPE_NAME + " ");
-			}
-			@Override
-			public void appendTypeAnnotationTo(StringBuilder sb) {
-				sb.append("@Entity");
-			}
-
-		});
-	}
-
-	private ICompilationUnit createTestSubTypeWithFieldAnnotation() throws Exception {
-		return this.createTestType(PACKAGE_NAME, "AnnotationTestTypeChild.java", "AnnotationTestTypeChild", new DefaultAnnotationWriter() {
-			@Override
-			public Iterator<String> imports() {
-				return new ArrayIterator<String>(JPA.ENTITY, JPA.ID);
-			}
-			@Override
-			public void appendExtendsImplementsTo(StringBuilder sb) {
-				sb.append("extends " + TYPE_NAME + " ");
-			}
-			@Override
-			public void appendTypeAnnotationTo(StringBuilder sb) {
-				sb.append("@Entity");
-			}
-
-			@Override
-			public void appendIdFieldAnnotationTo(StringBuilder sb) {
-				sb.append("@Id");
-			}
-		});
-	}
-	
-	private ICompilationUnit createTestSubTypeWithMethodAnnotation() throws Exception {
-		return this.createTestType(PACKAGE_NAME, "AnnotationTestTypeChild.java", "AnnotationTestTypeChild", new DefaultAnnotationWriter() {
-			@Override
-			public Iterator<String> imports() {
-				return new ArrayIterator<String>(JPA.ENTITY, JPA.ID);
-			}
-			@Override
-			public void appendExtendsImplementsTo(StringBuilder sb) {
-				sb.append("extends " + TYPE_NAME + " ");
-			}
-			@Override
-			public void appendTypeAnnotationTo(StringBuilder sb) {
-				sb.append("@Entity");
-			}
-
-			@Override
-			public void appendGetIdMethodAnnotationTo(StringBuilder sb) {
-				sb.append("@Id");
-			}
-		});
-	}
-	
-	private ICompilationUnit createTestSubTypeNonPersistent() throws Exception {
-		return this.createTestType(PACKAGE_NAME, "AnnotationTestTypeChild.java", "AnnotationTestTypeChild", new DefaultAnnotationWriter() {
-			@Override
-			public void appendExtendsImplementsTo(StringBuilder sb) {
-				sb.append("extends " + TYPE_NAME + " ");
-			}
-		});
-	}
-
-	private ICompilationUnit createTestSubTypePersistentExtendsNonPersistent() throws Exception {
-		return this.createTestType(PACKAGE_NAME, "AnnotationTestTypeChild2.java", "AnnotationTestTypeChild2", new DefaultAnnotationWriter() {
-			@Override
-			public Iterator<String> imports() {
-				return new ArrayIterator<String>(JPA.ENTITY, JPA.ID);
-			}
-			@Override
-			public void appendExtendsImplementsTo(StringBuilder sb) {
-				sb.append("extends AnnotationTestTypeChild ");
-			}
-			@Override
-			public void appendTypeAnnotationTo(StringBuilder sb) {
-				sb.append("@Entity");
-			}
-
-			@Override
-			public void appendGetIdMethodAnnotationTo(StringBuilder sb) {
-				sb.append("@Id");
-			}
-		});
-	}
-		
-	public GenericJavaPersistentTypeTests(String name) {
-		super(name);
-	}
-	
-	public void testGetName() throws Exception {
-		createTestType();
-		addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
-		
-		assertEquals(FULLY_QUALIFIED_TYPE_NAME, getJavaPersistentType().getName());
-	}
-	
-	public void testGetAccessNothingAnnotated() throws Exception {
-		createTestType();
-		addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
-
-		assertEquals(AccessType.FIELD, getJavaPersistentType().getAccess());
-	}
-
-	public void testAccessField() throws Exception {
-		createTestEntityAnnotatedField();
-		addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
-
-		assertEquals(AccessType.FIELD, getJavaPersistentType().getAccess());
-	}
-	
-	public void testAccessProperty() throws Exception {
-		createTestEntityAnnotatedMethod();
-		addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
-
-		assertEquals(AccessType.PROPERTY, getJavaPersistentType().getAccess());
-	}
-	
-	public void testAccessFieldAndMethodAnnotated() throws Exception {
-		createTestEntityAnnotatedFieldAndMethod();
-		addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
-
-		assertEquals(AccessType.FIELD, getJavaPersistentType().getAccess());
-	}
-
-	public void testAccessInheritance() throws Exception {
-		createTestEntityAnnotatedMethod();
-		createTestSubType();
-		
-		addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
-		addXmlClassRef(PACKAGE_NAME + ".AnnotationTestTypeChild");
-		
-		ListIterator<ClassRef> classRefs = getPersistenceUnit().specifiedClassRefs();
-		classRefs.next();
-		ClassRef classRef = classRefs.next();
-		
-		JavaPersistentType javaPersistentType = classRef.getJavaPersistentType();
-		assertEquals(PACKAGE_NAME + ".AnnotationTestTypeChild", javaPersistentType.getName());
-		
-		assertEquals(AccessType.PROPERTY, javaPersistentType.getAccess());
-	}
-		
-	public void testAccessInheritance2() throws Exception {
-		createTestEntityAnnotatedField();
-		createTestSubType();
-		
-		addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
-		addXmlClassRef(PACKAGE_NAME + ".AnnotationTestTypeChild");
-		
-		ListIterator<ClassRef> classRefs = getPersistenceUnit().specifiedClassRefs();
-		classRefs.next();
-		ClassRef classRef = classRefs.next();
-		
-		JavaPersistentType javaPersistentType = classRef.getJavaPersistentType();
-		assertEquals(PACKAGE_NAME + ".AnnotationTestTypeChild", javaPersistentType.getName());
-		
-		assertEquals(AccessType.FIELD, javaPersistentType.getAccess());
-	}	
-		
-	public void testAccessInheritance3() throws Exception {
-		createTestEntityAnnotatedField();
-		createTestSubTypeWithMethodAnnotation();
-		
-		addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
-		addXmlClassRef(PACKAGE_NAME + ".AnnotationTestTypeChild");
-		
-		ListIterator<ClassRef> classRefs = getPersistenceUnit().specifiedClassRefs();
-		classRefs.next();
-		ClassRef classRef = classRefs.next();
-		
-		JavaPersistentType javaPersistentType = classRef.getJavaPersistentType();
-		assertEquals(PACKAGE_NAME + ".AnnotationTestTypeChild", javaPersistentType.getName());
-		
-		assertEquals(AccessType.PROPERTY, javaPersistentType.getAccess());
-	}	
-		
-	public void testAccessInheritance4() throws Exception {
-		createTestEntityAnnotatedMethod();
-		createTestSubTypeWithFieldAnnotation();
-		
-		addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
-		addXmlClassRef(PACKAGE_NAME + ".AnnotationTestTypeChild");
-		
-		ListIterator<ClassRef> classRefs = getPersistenceUnit().specifiedClassRefs();
-		classRefs.next();
-		ClassRef classRef = classRefs.next();
-		JavaPersistentType javaPersistentType = classRef.getJavaPersistentType();
-		
-		assertEquals(PACKAGE_NAME + ".AnnotationTestTypeChild", javaPersistentType.getName());
-		
-		assertEquals(AccessType.FIELD, javaPersistentType.getAccess());
-	}
-	
-	//inherited class having annotations set wins over the default access set on persistence-unit-defaults
-	public void testAccessInheritancePersistenceUnitDefaultAccess() throws Exception {
-		createTestEntityAnnotatedMethod();
-		createTestSubType();
-		
-		addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
-		addXmlClassRef(PACKAGE_NAME + ".AnnotationTestTypeChild");
-		getEntityMappings().getPersistenceUnitMetadata().getPersistenceUnitDefaults().setAccess(AccessType.FIELD);
-
-		ListIterator<ClassRef> classRefs = getPersistenceUnit().specifiedClassRefs();
-		classRefs.next();
-		ClassRef classRef = classRefs.next();
-		JavaPersistentType javaPersistentType = classRef.getJavaPersistentType();
-		
-		assertEquals(PACKAGE_NAME + ".AnnotationTestTypeChild", javaPersistentType.getName());
-		
-		assertEquals(AccessType.PROPERTY, javaPersistentType.getAccess());
-	}
-
-	public void testAccessXmlNoAccessNoAnnotations() throws Exception {
-		OrmPersistentType entityPersistentType = getEntityMappings().addPersistentType(MappingKeys.ENTITY_TYPE_MAPPING_KEY, FULLY_QUALIFIED_TYPE_NAME);
-		createTestEntity();
-
-		JavaPersistentType javaPersistentType = entityPersistentType.getJavaPersistentType(); 
-		assertEquals(AccessType.FIELD, javaPersistentType.getAccess());
-	}
-	
-	public void testAccessXmlEntityAccessNoAnnotations() throws Exception {
-		OrmPersistentType entityPersistentType = getEntityMappings().addPersistentType(MappingKeys.ENTITY_TYPE_MAPPING_KEY, FULLY_QUALIFIED_TYPE_NAME);
-		createTestEntity();
-		JavaPersistentType javaPersistentType = entityPersistentType.getJavaPersistentType(); 
-
-		entityPersistentType.setSpecifiedAccess(AccessType.FIELD);
-		assertEquals(AccessType.FIELD, javaPersistentType.getAccess());
-
-		entityPersistentType.setSpecifiedAccess(AccessType.PROPERTY);
-		assertEquals(AccessType.PROPERTY, javaPersistentType.getAccess());
-	}
-	
-	public void testAccessXmlPersistenceUnitDefaultsAccessNoAnnotations()  throws Exception {
-		OrmPersistentType entityPersistentType = getEntityMappings().addPersistentType(MappingKeys.ENTITY_TYPE_MAPPING_KEY, FULLY_QUALIFIED_TYPE_NAME);
-		createTestEntity();
-		JavaPersistentType javaPersistentType = entityPersistentType.getJavaPersistentType(); 
-		assertEquals(AccessType.FIELD, javaPersistentType.getAccess());
-
-		getEntityMappings().getPersistenceUnitMetadata().getPersistenceUnitDefaults().setAccess(AccessType.FIELD);
-		assertEquals(AccessType.FIELD, javaPersistentType.getAccess());
-
-		getEntityMappings().getPersistenceUnitMetadata().getPersistenceUnitDefaults().setAccess(AccessType.PROPERTY);
-		assertEquals(AccessType.PROPERTY, javaPersistentType.getAccess());
-	}
-	
-	public void testAccessXmlEntityPropertyAccessAndFieldAnnotations() throws Exception {
-		//xml access set to property, field annotations, JavaPersistentType access is field
-		OrmPersistentType ormPersistentType = getEntityMappings().addPersistentType(MappingKeys.ENTITY_TYPE_MAPPING_KEY, FULLY_QUALIFIED_TYPE_NAME);
-		createTestEntityAnnotatedField();
-		JavaPersistentType javaPersistentType = ormPersistentType.getJavaPersistentType(); 
-
-		ormPersistentType.setSpecifiedAccess(AccessType.PROPERTY);
-		assertEquals(AccessType.FIELD, javaPersistentType.getAccess());
-	}
-	
-	public void testAccessXmlEntityFieldAccessAndPropertyAnnotations() throws Exception {
-		//xml access set to field, property annotations, JavaPersistentType access is property
-		OrmPersistentType ormPersistentType = getEntityMappings().addPersistentType(MappingKeys.ENTITY_TYPE_MAPPING_KEY, FULLY_QUALIFIED_TYPE_NAME);
-		createTestEntityAnnotatedMethod();
-		JavaPersistentType javaPersistentType = ormPersistentType.getJavaPersistentType(); 
-
-		ormPersistentType.setSpecifiedAccess(AccessType.FIELD);
-		assertEquals(AccessType.PROPERTY, javaPersistentType.getAccess());
-	}
-	
-	public void testAccessXmlPersistenceUnitDefaultsAccessFieldAnnotations() throws Exception {
-		OrmPersistentType entityPersistentType = getEntityMappings().addPersistentType(MappingKeys.ENTITY_TYPE_MAPPING_KEY, FULLY_QUALIFIED_TYPE_NAME);
-		createTestEntityAnnotatedField();
-		JavaPersistentType javaPersistentType = entityPersistentType.getJavaPersistentType(); 
-
-		getEntityMappings().getPersistenceUnitMetadata().getPersistenceUnitDefaults().setAccess(AccessType.PROPERTY);
-		assertEquals(AccessType.FIELD, javaPersistentType.getAccess());
-	}
-
-	//inheritance wins over entity-mappings specified access
-	public void testAccessXmlEntityMappingsAccessWithInheritance() throws Exception {
-		OrmPersistentType entityPersistentType = getEntityMappings().addPersistentType(MappingKeys.ENTITY_TYPE_MAPPING_KEY, FULLY_QUALIFIED_TYPE_NAME);
-		OrmPersistentType childEntityPersistentType = getEntityMappings().addPersistentType(MappingKeys.ENTITY_TYPE_MAPPING_KEY, PACKAGE_NAME + ".AnnotationTestTypeChild");
-		
-		createTestEntityAnnotatedMethod();
-		createTestSubType();
-		JavaPersistentType childJavaPersistentType = childEntityPersistentType.getJavaPersistentType(); 
-
-		getEntityMappings().setSpecifiedAccess(AccessType.FIELD);
-		assertEquals(AccessType.PROPERTY, entityPersistentType.getJavaPersistentType().getAccess());
-		assertEquals(AccessType.PROPERTY, childJavaPersistentType.getAccess());
-	}
-
-	public void testAccessXmlMetadataCompleteFieldAnnotations() throws Exception {
-		//xml access set to property, java has field annotations so the access should be field
-		OrmPersistentType entityPersistentType = getEntityMappings().addPersistentType(MappingKeys.ENTITY_TYPE_MAPPING_KEY, FULLY_QUALIFIED_TYPE_NAME);
-		createTestEntityAnnotatedField();
-		JavaPersistentType javaPersistentType = entityPersistentType.getJavaPersistentType(); 
-
-		getEntityMappings().getPersistenceUnitMetadata().getPersistenceUnitDefaults().setAccess(AccessType.PROPERTY);
-		getEntityMappings().getPersistenceUnitMetadata().setXmlMappingMetadataComplete(true);
-		assertEquals(AccessType.FIELD, javaPersistentType.getAccess());
-		
-	}
-	
-	public void testAccessNoXmlAccessXmlMetdataCompletePropertyAnnotations() throws Exception {
-		//xml access not set, metadata complete set.  JavaPersistentType access is property because properties are annotated
-		OrmPersistentType entityPersistentType = getEntityMappings().addPersistentType(MappingKeys.ENTITY_TYPE_MAPPING_KEY, FULLY_QUALIFIED_TYPE_NAME);
-		createTestEntityAnnotatedMethod();
-		JavaPersistentType javaPersistentType = entityPersistentType.getJavaPersistentType(); 
-
-		getEntityMappings().getPersistenceUnitMetadata().setXmlMappingMetadataComplete(true);
-		assertEquals(AccessType.PROPERTY, javaPersistentType.getAccess());
-	}
-	
-	public void testParentPersistentType() throws Exception {
-		createTestEntityAnnotatedMethod();
-		createTestSubTypeWithFieldAnnotation();
-		
-		addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
-		addXmlClassRef(PACKAGE_NAME + ".AnnotationTestTypeChild");
-		
-		ListIterator<ClassRef> classRefs = getPersistenceUnit().specifiedClassRefs();
-		ClassRef classRef = classRefs.next();
-		JavaPersistentType rootJavaPersistentType = classRef.getJavaPersistentType();
-		
-		classRef = classRefs.next();
-		JavaPersistentType childJavaPersistentType = classRef.getJavaPersistentType();
-		
-		assertEquals(rootJavaPersistentType, childJavaPersistentType.getParentPersistentType());
-		assertNull(rootJavaPersistentType.getParentPersistentType());
-	}
-	
-	public void testParentPersistentType2() throws Exception {
-		createTestEntityAnnotatedMethod();
-		createTestSubTypeWithFieldAnnotation();
-		
-		//parent is not added to the persistenceUnit, but it should still be found
-		//as the parentPersistentType because of impliedClassRefs and changes for bug 190317
-		addXmlClassRef(PACKAGE_NAME + ".AnnotationTestTypeChild");
-		
-		ListIterator<ClassRef> classRefs = getPersistenceUnit().specifiedClassRefs();
-		JavaPersistentType javaPersistentType = classRefs.next().getJavaPersistentType();
-		
-		assertNotNull(javaPersistentType.getParentPersistentType());
-	}	
-	
-	//Entity extends Non-Entity extends Entity 
-	public void testParentPersistentType3() throws Exception {
-		createTestEntityAnnotatedMethod();
-		createTestSubTypeNonPersistent();
-		createTestSubTypePersistentExtendsNonPersistent();
-		
-		addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
-		addXmlClassRef(PACKAGE_NAME + ".AnnotationTestTypeChild2");
-		
-		ListIterator<ClassRef> classRefs = getPersistenceUnit().specifiedClassRefs();
-		ClassRef classRef = classRefs.next();
-		JavaPersistentType rootJavaPersistentType = classRef.getJavaPersistentType();
-		
-		classRef = classRefs.next();
-		JavaPersistentType childJavaPersistentType = classRef.getJavaPersistentType();
-		
-		assertEquals(rootJavaPersistentType, childJavaPersistentType.getParentPersistentType());
-		assertNull(rootJavaPersistentType.getParentPersistentType());
-	}
-	
-	public void testInheritanceHierarchy() throws Exception {
-		createTestEntityAnnotatedMethod();
-		createTestSubTypeNonPersistent();
-		createTestSubTypePersistentExtendsNonPersistent();
-		
-		addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
-		addXmlClassRef(PACKAGE_NAME + ".AnnotationTestTypeChild2");
-		
-		ListIterator<ClassRef> classRefs = getPersistenceUnit().specifiedClassRefs();
-		JavaPersistentType rootJavaPersistentType = classRefs.next().getJavaPersistentType();
-		JavaPersistentType childJavaPersistentType = classRefs.next().getJavaPersistentType();
-		
-		Iterator<PersistentType> inheritanceHierarchy = childJavaPersistentType.inheritanceHierarchy();	
-		
-		assertEquals(childJavaPersistentType, inheritanceHierarchy.next());
-		assertEquals(rootJavaPersistentType, inheritanceHierarchy.next());
-	}
-	
-	public void testInheritanceHierarchy2() throws Exception {
-		createTestEntityAnnotatedMethod();
-		createTestSubTypeNonPersistent();
-		createTestSubTypePersistentExtendsNonPersistent();
-		
-		addXmlClassRef(PACKAGE_NAME + ".AnnotationTestTypeChild2");
-		addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
-		
-		ListIterator<ClassRef> classRefs = getPersistenceUnit().specifiedClassRefs();
-		JavaPersistentType childJavaPersistentType = classRefs.next().getJavaPersistentType();
-		JavaPersistentType rootJavaPersistentType = classRefs.next().getJavaPersistentType();
-		
-		Iterator<PersistentType> inheritanceHierarchy = childJavaPersistentType.inheritanceHierarchy();	
-		
-		assertEquals(childJavaPersistentType, inheritanceHierarchy.next());
-		assertEquals(rootJavaPersistentType, inheritanceHierarchy.next());
-	}
-	
-	public void testGetMapping() throws Exception {
-		createTestEntityAnnotatedMethod();
-		addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
-
-		assertEquals(MappingKeys.ENTITY_TYPE_MAPPING_KEY, getJavaPersistentType().getMapping().getKey());
-	}
-	
-	public void testGetMappingNull() throws Exception {
-		createTestType();
-		addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
-
-		assertEquals(MappingKeys.NULL_TYPE_MAPPING_KEY, getJavaPersistentType().getMapping().getKey());
-	}
-	
-	public void testMappingKey() throws Exception {
-		createTestEntityAnnotatedMethod();
-		addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
-
-		assertEquals(MappingKeys.ENTITY_TYPE_MAPPING_KEY, getJavaPersistentType().getMappingKey());
-	}
-	
-	public void testMappingKeyNull() throws Exception {
-		createTestType();
-		addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
-
-		assertEquals(MappingKeys.NULL_TYPE_MAPPING_KEY, getJavaPersistentType().getMappingKey());
-	}
-	
-	public void testSetMappingKey() throws Exception {
-		createTestType();
-		addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
-		
-		assertEquals(MappingKeys.NULL_TYPE_MAPPING_KEY, getJavaPersistentType().getMappingKey());
-
-		getJavaPersistentType().setMappingKey(MappingKeys.ENTITY_TYPE_MAPPING_KEY);
-		
-		JavaResourcePersistentType typeResource = getJpaProject().getJavaResourcePersistentType(FULLY_QUALIFIED_TYPE_NAME);
-		assertNotNull(typeResource.getMappingAnnotation());
-		assertTrue(typeResource.getMappingAnnotation() instanceof EntityAnnotation);
-		
-		assertEquals(MappingKeys.ENTITY_TYPE_MAPPING_KEY, getJavaPersistentType().getMappingKey());
-	}
-	
-	public void testSetMappingKey2() throws Exception {
-		createTestEntityAnnotatedField();
-		addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
-		
-		assertEquals(MappingKeys.ENTITY_TYPE_MAPPING_KEY, getJavaPersistentType().getMappingKey());
-
-		getJavaPersistentType().setMappingKey(MappingKeys.EMBEDDABLE_TYPE_MAPPING_KEY);
-		
-		JavaResourcePersistentType typeResource = getJpaProject().getJavaResourcePersistentType(FULLY_QUALIFIED_TYPE_NAME);
-		assertNotNull(typeResource.getMappingAnnotation());
-		assertTrue(typeResource.getMappingAnnotation() instanceof EmbeddableAnnotation);
-		
-		assertEquals(MappingKeys.EMBEDDABLE_TYPE_MAPPING_KEY, getJavaPersistentType().getMappingKey());
-	}
-
-	public void testSetMappingKeyNull() throws Exception {
-		createTestEntityAnnotatedMethod();
-		addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
-		
-		assertEquals(MappingKeys.ENTITY_TYPE_MAPPING_KEY, getJavaPersistentType().getMappingKey());
-
-		getJavaPersistentType().setMappingKey(MappingKeys.NULL_TYPE_MAPPING_KEY);
-		
-		JavaResourcePersistentType typeResource = getJpaProject().getJavaResourcePersistentType(FULLY_QUALIFIED_TYPE_NAME);
-		assertNull(typeResource.getMappingAnnotation());
-		assertNull(typeResource.getMappingAnnotation(EntityAnnotation.ANNOTATION_NAME));
-		
-		assertEquals(MappingKeys.NULL_TYPE_MAPPING_KEY, getJavaPersistentType().getMappingKey());
-	}
-	
-	public void testGetMappingKeyMappingChangeInResourceModel() throws Exception {
-		createTestEntityAnnotatedField();
-		addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
-		
-		assertEquals(MappingKeys.ENTITY_TYPE_MAPPING_KEY, getJavaPersistentType().getMappingKey());
-		
-		JavaResourcePersistentType typeResource = getJpaProject().getJavaResourcePersistentType(FULLY_QUALIFIED_TYPE_NAME);
-		typeResource.setMappingAnnotation(EmbeddableAnnotation.ANNOTATION_NAME);
-				
-		assertEquals(MappingKeys.EMBEDDABLE_TYPE_MAPPING_KEY, getJavaPersistentType().getMappingKey());
-	}
-	
-	public void testGetMappingKeyMappingChangeInResourceModel2() throws Exception {
-		createTestType();
-		addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
-		
-		assertEquals(MappingKeys.NULL_TYPE_MAPPING_KEY, getJavaPersistentType().getMappingKey());
-		
-		JavaResourcePersistentType typeResource = getJpaProject().getJavaResourcePersistentType(FULLY_QUALIFIED_TYPE_NAME);
-		typeResource.setMappingAnnotation(EntityAnnotation.ANNOTATION_NAME);
-				
-		assertEquals(MappingKeys.ENTITY_TYPE_MAPPING_KEY, getJavaPersistentType().getMappingKey());
-	}
-
-	public void testIsMapped() throws Exception {
-		createTestEntityAnnotatedMethod();
-		addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
-
-		assertTrue(getJavaPersistentType().isMapped());
-		
-		getJavaPersistentType().setMappingKey(MappingKeys.NULL_TYPE_MAPPING_KEY);	
-		assertFalse(getJavaPersistentType().isMapped());	
-	}
-	
-	public void testAttributes() throws Exception {
-		createTestEntityAnnotatedMethod();
-		addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
-		ListIterator<JavaPersistentAttribute> attributes = getJavaPersistentType().attributes();
-		
-		assertEquals("id", attributes.next().getName());
-		assertFalse(attributes.hasNext());
-	}
-	
-	public void testAttributes2() throws Exception {
-		createTestEntityAnnotatedFieldAndMethod();
-		addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
-
-		ListIterator<JavaPersistentAttribute> attributes = getJavaPersistentType().attributes();
-		
-		assertEquals("id", attributes.next().getName());
-		assertEquals("name", attributes.next().getName());
-		assertFalse(attributes.hasNext());
-	}
-	
-	public void testAttributesSize() throws Exception {
-		createTestEntityAnnotatedMethod();
-		addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
-
-		assertEquals(1, getJavaPersistentType().attributesSize());
-	}
-	
-	public void testAttributesSize2() throws Exception {
-		createTestEntityAnnotatedFieldAndMethod();
-		addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
-
-		assertEquals(2, getJavaPersistentType().attributesSize());
-	}
-	
-	public void testAttributeNamed() throws Exception {
-		createTestEntityAnnotatedMethod();
-		addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
-
-		PersistentAttribute attribute = getJavaPersistentType().getAttributeNamed("id");
-		
-		assertEquals("id", attribute.getName());
-		assertNull(getJavaPersistentType().getAttributeNamed("name"));
-		assertNull(getJavaPersistentType().getAttributeNamed("foo"));
-	}
-	
-	public void testAttributeNamed2() throws Exception {
-		createTestEntityAnnotatedField();
-		addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
-
-		PersistentAttribute attribute = getJavaPersistentType().getAttributeNamed("name");
-		
-		assertEquals("name", attribute.getName());
-		
-		assertNull(getJavaPersistentType().getAttributeNamed("foo"));
-	}
-	
-	public void testRenameAttribute() throws Exception {
-		ICompilationUnit testType = createTestEntityAnnotatedField();
-		addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
-		
-		ListIterator<JavaPersistentAttribute> attributes = getJavaPersistentType().attributes();
-		JavaPersistentAttribute idAttribute = attributes.next();
-		JavaPersistentAttribute nameAttribute = attributes.next();
-		
-		
-		assertEquals("id", idAttribute.getName());
-		assertEquals("name", nameAttribute.getName());
-		
-		IField idField = testType.findPrimaryType().getField("id");
-		idField.rename("id2", false, null);
-		
-		attributes = getJavaPersistentType().attributes();
-		JavaPersistentAttribute nameAttribute2 = attributes.next();
-		JavaPersistentAttribute id2Attribute = attributes.next();
-
-		assertNotSame(idAttribute, id2Attribute);
-		assertEquals("id2", id2Attribute.getName());
-		assertEquals(nameAttribute, nameAttribute2);
-		assertEquals("name", nameAttribute2.getName());
-		assertFalse(attributes.hasNext());
-	}
-
-	public void testParentPersistentTypeGeneric() throws Exception {
-		createTestGenericEntity();
-		createTestGenericMappedSuperclass();
-		
-		addXmlClassRef(PACKAGE_NAME + ".Entity1");
-		addXmlClassRef(PACKAGE_NAME + ".Entity2");
-		
-		JavaPersistentType javaPersistentType = getJavaPersistentType();
-		assertEquals("test.Entity1", javaPersistentType.getName());
-		assertNotNull(javaPersistentType.getParentPersistentType());
-		
-		assertEquals("test.Entity2", javaPersistentType.getParentPersistentType().getName());
-	}
-
-	private void createTestGenericEntity() throws Exception {
-		SourceWriter sourceWriter = new SourceWriter() {
-			public void appendSourceTo(StringBuilder sb) {
-				sb.append(CR);
-					sb.append("import ");
-					sb.append(JPA.ENTITY);
-					sb.append(";");
-					sb.append(CR);
-				sb.append("@Entity");
-				sb.append(CR);
-				sb.append("public class Entity1 ");
-				sb.append("extends Entity2<Integer> {}").append(CR);
-			}
-		};
-		this.javaProject.createCompilationUnit(PACKAGE_NAME, "Entity1.java", sourceWriter);
-	}
-	
-	private void createTestGenericMappedSuperclass() throws Exception {
-		SourceWriter sourceWriter = new SourceWriter() {
-			public void appendSourceTo(StringBuilder sb) {
-				sb.append(CR);
-					sb.append("import ");
-					sb.append(JPA.MAPPED_SUPERCLASS);
-					sb.append(";");
-					sb.append(CR);
-				sb.append("@MappedSuperclass");
-				sb.append(CR);
-				sb.append("public class Entity2<K> {}").append(CR);
-			}
-		};
-		this.javaProject.createCompilationUnit(PACKAGE_NAME, "Entity2.java", sourceWriter);
-	}
-}
diff --git a/jpa/tests/org.eclipse.jpt.core.tests/src/org/eclipse/jpt/core/tests/internal/context/java/JavaAssociationOverrideTests.java b/jpa/tests/org.eclipse.jpt.core.tests/src/org/eclipse/jpt/core/tests/internal/context/java/JavaAssociationOverrideTests.java
deleted file mode 100644
index d85ab5f..0000000
--- a/jpa/tests/org.eclipse.jpt.core.tests/src/org/eclipse/jpt/core/tests/internal/context/java/JavaAssociationOverrideTests.java
+++ /dev/null
@@ -1,389 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.core.tests.internal.context.java;
-
-import java.util.Iterator;
-import java.util.ListIterator;
-import org.eclipse.jdt.core.ICompilationUnit;
-import org.eclipse.jpt.core.context.AssociationOverride;
-import org.eclipse.jpt.core.context.Entity;
-import org.eclipse.jpt.core.context.JoinColumn;
-import org.eclipse.jpt.core.resource.java.AssociationOverrideAnnotation;
-import org.eclipse.jpt.core.resource.java.JPA;
-import org.eclipse.jpt.core.resource.java.JavaResourcePersistentType;
-import org.eclipse.jpt.core.tests.internal.context.ContextModelTestCase;
-import org.eclipse.jpt.core.tests.internal.projects.TestJavaProject.SourceWriter;
-import org.eclipse.jpt.utility.internal.iterators.ArrayIterator;
-
-public class JavaAssociationOverrideTests extends ContextModelTestCase
-{
-	private static final String ASSOCIATION_OVERRIDE_NAME = "MY_ASSOCIATION_OVERRIDE_NAME";
-
-		
-	private ICompilationUnit createTestMappedSuperclass() throws Exception {		
-		return this.createTestType(new DefaultAnnotationWriter() {
-			@Override
-			public Iterator<String> imports() {
-				return new ArrayIterator<String>(JPA.MAPPED_SUPERCLASS, JPA.ONE_TO_ONE);
-			}
-			@Override
-			public void appendTypeAnnotationTo(StringBuilder sb) {
-				sb.append("@MappedSuperclass");
-			}
-			
-			@Override
-			public void appendIdFieldAnnotationTo(StringBuilder sb) {
-				sb.append("    @OneToOne");
-				sb.append(CR);
-				sb.append("    private int address;").append(CR);
-				sb.append(CR);
-				sb.append("    ");
-			}
-		});
-	}
-
-	private ICompilationUnit createTestEntityWithAssociationOverride() throws Exception {
-		return this.createTestType(new DefaultAnnotationWriter() {
-			@Override
-			public Iterator<String> imports() {
-				return new ArrayIterator<String>(JPA.ENTITY, JPA.ASSOCIATION_OVERRIDE);
-			}
-			@Override
-			public void appendTypeAnnotationTo(StringBuilder sb) {
-				sb.append("@Entity").append(CR);
-				sb.append("@AssociationOverride(name=\"" + ASSOCIATION_OVERRIDE_NAME + "\")");
-			}
-		});
-	}
-
-	private void createTestSubType() throws Exception {
-		SourceWriter sourceWriter = new SourceWriter() {
-			public void appendSourceTo(StringBuilder sb) {
-				sb.append(CR);
-					sb.append("import ");
-					sb.append(JPA.ENTITY);
-					sb.append(";");
-					sb.append(CR);
-				sb.append("@Entity");
-				sb.append(CR);
-				sb.append("public class ").append("AnnotationTestTypeChild").append(" ");
-				sb.append("extends " + TYPE_NAME + " ");
-				sb.append("{}").append(CR);
-			}
-		};
-		this.javaProject.createCompilationUnit(PACKAGE_NAME, "AnnotationTestTypeChild.java", sourceWriter);
-	}
-
-
-		
-	public JavaAssociationOverrideTests(String name) {
-		super(name);
-	}
-	
-	public void testUpdateName() throws Exception {
-		createTestMappedSuperclass();
-		createTestSubType();
-		addXmlClassRef(PACKAGE_NAME + ".AnnotationTestTypeChild");
-		addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
-		
-		Entity entity = getJavaEntity();	
-		AssociationOverride javaAssociationOverride = entity.virtualAssociationOverrides().next();
-		javaAssociationOverride = javaAssociationOverride.setVirtual(false);
-		
-		JavaResourcePersistentType typeResource = getJpaProject().getJavaResourcePersistentType(PACKAGE_NAME + ".AnnotationTestTypeChild");
-		AssociationOverrideAnnotation associationOverrideResource = (AssociationOverrideAnnotation) typeResource.getSupportingAnnotation(JPA.ASSOCIATION_OVERRIDE);
-		
-		assertEquals("address", javaAssociationOverride.getName());
-		assertEquals("address", associationOverrideResource.getName());
-		assertTrue(getJavaEntity().associationOverrides().hasNext());
-		
-		//set name in the resource model, verify context model updated
-		associationOverrideResource.setName("FOO");
-		assertEquals("FOO", javaAssociationOverride.getName());
-		assertEquals("FOO", associationOverrideResource.getName());
-	
-		//set name to null in the resource model
-		associationOverrideResource.setName(null);
-		assertNull(javaAssociationOverride.getName());
-		assertNull(associationOverrideResource.getName());
-		
-		associationOverrideResource.setName("FOO");
-		assertEquals("FOO", javaAssociationOverride.getName());
-		assertEquals("FOO", associationOverrideResource.getName());
-
-		typeResource.removeSupportingAnnotation(0, JPA.ASSOCIATION_OVERRIDE, JPA.ASSOCIATION_OVERRIDES);
-		assertFalse(getJavaEntity().specifiedAssociationOverrides().hasNext());
-		assertFalse(typeResource.supportingAnnotations(JPA.ASSOCIATION_OVERRIDE, JPA.ASSOCIATION_OVERRIDES).hasNext());
-	}
-	
-	public void testModifyName() throws Exception {
-		createTestMappedSuperclass();
-		createTestSubType();
-		addXmlClassRef(PACKAGE_NAME + ".AnnotationTestTypeChild");
-		addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
-		
-		Entity entity = getJavaEntity();	
-		AssociationOverride javaAssociationOverride = entity.virtualAssociationOverrides().next();
-		javaAssociationOverride = javaAssociationOverride.setVirtual(false);
-		
-		JavaResourcePersistentType typeResource = getJpaProject().getJavaResourcePersistentType(PACKAGE_NAME + ".AnnotationTestTypeChild");
-		AssociationOverrideAnnotation associationOverrideResource = (AssociationOverrideAnnotation) typeResource.getSupportingAnnotation(JPA.ASSOCIATION_OVERRIDE);
-
-		assertEquals("address", javaAssociationOverride.getName());
-		assertEquals("address", associationOverrideResource.getName());
-		assertTrue(getJavaEntity().associationOverrides().hasNext());
-		
-		//set name in the context model, verify resource model modified
-		javaAssociationOverride.setName("foo");
-		assertEquals("foo", javaAssociationOverride.getName());
-		assertEquals("foo", associationOverrideResource.getName());
-		
-		//set name to null in the context model
-		javaAssociationOverride.setName(null);
-		assertNull(javaAssociationOverride.getName());
-		associationOverrideResource = (AssociationOverrideAnnotation) typeResource.getSupportingAnnotation(JPA.ASSOCIATION_OVERRIDE);
-		assertNull(associationOverrideResource.getName());
-	}
-
-	public void testAddSpecifiedJoinColumn() throws Exception {
-		createTestMappedSuperclass();
-		createTestSubType();
-		addXmlClassRef(PACKAGE_NAME + ".AnnotationTestTypeChild");
-		addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
-		
-		Entity entity = getJavaEntity();	
-		AssociationOverride javaAssociationOverride = entity.virtualAssociationOverrides().next();
-		javaAssociationOverride = javaAssociationOverride.setVirtual(false);
-		
-		JavaResourcePersistentType typeResource = getJpaProject().getJavaResourcePersistentType(PACKAGE_NAME + ".AnnotationTestTypeChild");
-		AssociationOverrideAnnotation associationOverrideResource = (AssociationOverrideAnnotation) typeResource.getSupportingAnnotation(JPA.ASSOCIATION_OVERRIDE);
-
-		
-		JoinColumn joinColumn = javaAssociationOverride.addSpecifiedJoinColumn(0);
-		joinColumn.setSpecifiedName("FOO");
-				
-		assertEquals("FOO", associationOverrideResource.joinColumnAt(0).getName());
-		
-		JoinColumn joinColumn2 = javaAssociationOverride.addSpecifiedJoinColumn(0);
-		joinColumn2.setSpecifiedName("BAR");
-		
-		assertEquals("BAR", associationOverrideResource.joinColumnAt(0).getName());
-		assertEquals("FOO", associationOverrideResource.joinColumnAt(1).getName());
-		
-		JoinColumn joinColumn3 = javaAssociationOverride.addSpecifiedJoinColumn(1);
-		joinColumn3.setSpecifiedName("BAZ");
-		
-		assertEquals("BAR", associationOverrideResource.joinColumnAt(0).getName());
-		assertEquals("BAZ", associationOverrideResource.joinColumnAt(1).getName());
-		assertEquals("FOO", associationOverrideResource.joinColumnAt(2).getName());
-		
-		ListIterator<JoinColumn> joinColumns = javaAssociationOverride.specifiedJoinColumns();
-		assertEquals(joinColumn2, joinColumns.next());
-		assertEquals(joinColumn3, joinColumns.next());
-		assertEquals(joinColumn, joinColumns.next());
-		
-		joinColumns = javaAssociationOverride.specifiedJoinColumns();
-		assertEquals("BAR", joinColumns.next().getName());
-		assertEquals("BAZ", joinColumns.next().getName());
-		assertEquals("FOO", joinColumns.next().getName());
-	}
-	
-	public void testRemoveSpecifiedJoinColumn() throws Exception {
-		createTestMappedSuperclass();
-		createTestSubType();
-		addXmlClassRef(PACKAGE_NAME + ".AnnotationTestTypeChild");
-		addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
-		
-		Entity entity = getJavaEntity();	
-		AssociationOverride javaAssociationOverride = entity.virtualAssociationOverrides().next();
-		javaAssociationOverride = javaAssociationOverride.setVirtual(false);
-		
-		JavaResourcePersistentType typeResource = getJpaProject().getJavaResourcePersistentType(PACKAGE_NAME + ".AnnotationTestTypeChild");
-		AssociationOverrideAnnotation associationOverrideResource = (AssociationOverrideAnnotation) typeResource.getSupportingAnnotation(JPA.ASSOCIATION_OVERRIDE);
-		
-		javaAssociationOverride.addSpecifiedJoinColumn(0).setSpecifiedName("FOO");
-		javaAssociationOverride.addSpecifiedJoinColumn(1).setSpecifiedName("BAR");
-		javaAssociationOverride.addSpecifiedJoinColumn(2).setSpecifiedName("BAZ");
-		
-		assertEquals(3, associationOverrideResource.joinColumnsSize());
-		
-		javaAssociationOverride.removeSpecifiedJoinColumn(0);
-		assertEquals(2, associationOverrideResource.joinColumnsSize());
-		assertEquals("BAR", associationOverrideResource.joinColumnAt(0).getName());
-		assertEquals("BAZ", associationOverrideResource.joinColumnAt(1).getName());
-
-		javaAssociationOverride.removeSpecifiedJoinColumn(0);
-		assertEquals(1, associationOverrideResource.joinColumnsSize());
-		assertEquals("BAZ", associationOverrideResource.joinColumnAt(0).getName());
-		
-		javaAssociationOverride.removeSpecifiedJoinColumn(0);
-		assertEquals(0, associationOverrideResource.joinColumnsSize());
-	}
-	
-	public void testMoveSpecifiedJoinColumn() throws Exception {
-		createTestMappedSuperclass();
-		createTestSubType();
-		addXmlClassRef(PACKAGE_NAME + ".AnnotationTestTypeChild");
-		addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
-		
-		Entity entity = getJavaEntity();	
-		AssociationOverride javaAssociationOverride = entity.virtualAssociationOverrides().next();
-		javaAssociationOverride = javaAssociationOverride.setVirtual(false);
-		
-		JavaResourcePersistentType typeResource = getJpaProject().getJavaResourcePersistentType(PACKAGE_NAME + ".AnnotationTestTypeChild");
-		AssociationOverrideAnnotation associationOverrideResource = (AssociationOverrideAnnotation) typeResource.getSupportingAnnotation(JPA.ASSOCIATION_OVERRIDE);
-		
-		javaAssociationOverride.addSpecifiedJoinColumn(0).setSpecifiedName("FOO");
-		javaAssociationOverride.addSpecifiedJoinColumn(1).setSpecifiedName("BAR");
-		javaAssociationOverride.addSpecifiedJoinColumn(2).setSpecifiedName("BAZ");
-				
-		assertEquals(3, associationOverrideResource.joinColumnsSize());
-		
-		
-		javaAssociationOverride.moveSpecifiedJoinColumn(2, 0);
-		ListIterator<JoinColumn> joinColumns = javaAssociationOverride.specifiedJoinColumns();
-		assertEquals("BAR", joinColumns.next().getName());
-		assertEquals("BAZ", joinColumns.next().getName());
-		assertEquals("FOO", joinColumns.next().getName());
-
-		assertEquals("BAR", associationOverrideResource.joinColumnAt(0).getName());
-		assertEquals("BAZ", associationOverrideResource.joinColumnAt(1).getName());
-		assertEquals("FOO", associationOverrideResource.joinColumnAt(2).getName());
-
-
-		javaAssociationOverride.moveSpecifiedJoinColumn(0, 1);
-		joinColumns = javaAssociationOverride.specifiedJoinColumns();
-		assertEquals("BAZ", joinColumns.next().getName());
-		assertEquals("BAR", joinColumns.next().getName());
-		assertEquals("FOO", joinColumns.next().getName());
-
-		assertEquals("BAZ", associationOverrideResource.joinColumnAt(0).getName());
-		assertEquals("BAR", associationOverrideResource.joinColumnAt(1).getName());
-		assertEquals("FOO", associationOverrideResource.joinColumnAt(2).getName());
-	}
-	
-	public void testUpdateJoinColumns() throws Exception {
-		createTestMappedSuperclass();
-		createTestSubType();
-		addXmlClassRef(PACKAGE_NAME + ".AnnotationTestTypeChild");
-		addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
-		
-		Entity entity = getJavaEntity();	
-		AssociationOverride javaAssociationOverride = entity.virtualAssociationOverrides().next();
-		javaAssociationOverride = javaAssociationOverride.setVirtual(false);
-		
-		JavaResourcePersistentType typeResource = getJpaProject().getJavaResourcePersistentType(PACKAGE_NAME + ".AnnotationTestTypeChild");
-		AssociationOverrideAnnotation associationOverrideResource = (AssociationOverrideAnnotation) typeResource.getSupportingAnnotation(JPA.ASSOCIATION_OVERRIDE);
-	
-		associationOverrideResource.addJoinColumn(0);
-		associationOverrideResource.addJoinColumn(1);
-		associationOverrideResource.addJoinColumn(2);
-		
-		associationOverrideResource.joinColumnAt(0).setName("FOO");
-		associationOverrideResource.joinColumnAt(1).setName("BAR");
-		associationOverrideResource.joinColumnAt(2).setName("BAZ");
-
-		ListIterator<JoinColumn> joinColumns = javaAssociationOverride.specifiedJoinColumns();
-		assertEquals("FOO", joinColumns.next().getName());
-		assertEquals("BAR", joinColumns.next().getName());
-		assertEquals("BAZ", joinColumns.next().getName());
-		assertFalse(joinColumns.hasNext());
-		
-		associationOverrideResource.moveJoinColumn(2, 0);
-		joinColumns = javaAssociationOverride.specifiedJoinColumns();
-		assertEquals("BAR", joinColumns.next().getName());
-		assertEquals("BAZ", joinColumns.next().getName());
-		assertEquals("FOO", joinColumns.next().getName());
-		assertFalse(joinColumns.hasNext());
-
-		associationOverrideResource.moveJoinColumn(0, 1);
-		joinColumns = javaAssociationOverride.specifiedJoinColumns();
-		assertEquals("BAZ", joinColumns.next().getName());
-		assertEquals("BAR", joinColumns.next().getName());
-		assertEquals("FOO", joinColumns.next().getName());
-		assertFalse(joinColumns.hasNext());
-
-		associationOverrideResource.removeJoinColumn(1);
-		joinColumns = javaAssociationOverride.specifiedJoinColumns();
-		assertEquals("BAZ", joinColumns.next().getName());
-		assertEquals("FOO", joinColumns.next().getName());
-		assertFalse(joinColumns.hasNext());
-
-		associationOverrideResource.removeJoinColumn(1);
-		joinColumns = javaAssociationOverride.specifiedJoinColumns();
-		assertEquals("BAZ", joinColumns.next().getName());
-		assertFalse(joinColumns.hasNext());
-		
-		associationOverrideResource.removeJoinColumn(0);
-		assertFalse(javaAssociationOverride.specifiedJoinColumns().hasNext());
-	}	
-	
-	
-	
-	
-	public void testGetName() throws Exception {
-		createTestEntityWithAssociationOverride();
-		addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
-
-		AssociationOverride specifiedAssociationOverride = getJavaEntity().specifiedAssociationOverrides().next();
-		assertEquals(ASSOCIATION_OVERRIDE_NAME, specifiedAssociationOverride.getName());
-		
-		
-		JavaResourcePersistentType typeResource = getJpaProject().getJavaResourcePersistentType(FULLY_QUALIFIED_TYPE_NAME);
-		AssociationOverrideAnnotation associationOverrideResource = (AssociationOverrideAnnotation) typeResource.getSupportingAnnotation(JPA.ASSOCIATION_OVERRIDE);
-		
-		associationOverrideResource.setName("FOO");
-		specifiedAssociationOverride = getJavaEntity().specifiedAssociationOverrides().next();
-		assertEquals("FOO", specifiedAssociationOverride.getName());
-	}
-	
-	public void testSetName() throws Exception {
-		createTestEntityWithAssociationOverride();
-		addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
-
-		AssociationOverride specifiedAssociationOverride = getJavaEntity().specifiedAssociationOverrides().next();
-		assertEquals(ASSOCIATION_OVERRIDE_NAME, specifiedAssociationOverride.getName());
-		
-		specifiedAssociationOverride.setName("FOO");
-		
-		JavaResourcePersistentType typeResource = getJpaProject().getJavaResourcePersistentType(FULLY_QUALIFIED_TYPE_NAME);
-		AssociationOverrideAnnotation associationOverrideResource = (AssociationOverrideAnnotation) typeResource.getSupportingAnnotation(JPA.ASSOCIATION_OVERRIDE);
-		
-		assertEquals("FOO", associationOverrideResource.getName());
-	}
-
-	public void testDefaultName() throws Exception {
-		createTestMappedSuperclass();
-		createTestSubType();
-		addXmlClassRef(PACKAGE_NAME + ".AnnotationTestTypeChild");
-		addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
-		
-		Entity entity = getJavaEntity();	
-		assertEquals("AnnotationTestTypeChild", entity.getName());
-		assertEquals(1, entity.virtualAssociationOverridesSize());
-		
-		AssociationOverride associationOverride = entity.virtualAssociationOverrides().next();
-		assertEquals("address", associationOverride.getName());
-	}
-	
-	public void testIsVirtual() throws Exception {
-		createTestMappedSuperclass();
-		createTestSubType();
-		addXmlClassRef(PACKAGE_NAME + ".AnnotationTestTypeChild");
-		addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
-		
-		Entity entity = getJavaEntity();	
-		assertEquals("AnnotationTestTypeChild", entity.getName());
-		assertEquals(1, entity.virtualAssociationOverridesSize());
-		
-		AssociationOverride associationOverride = entity.virtualAssociationOverrides().next();
-		assertTrue(associationOverride.isVirtual());
-	}
-}
diff --git a/jpa/tests/org.eclipse.jpt.core.tests/src/org/eclipse/jpt/core/tests/internal/context/java/JavaAttributeOverrideTests.java b/jpa/tests/org.eclipse.jpt.core.tests/src/org/eclipse/jpt/core/tests/internal/context/java/JavaAttributeOverrideTests.java
deleted file mode 100644
index 7edb940..0000000
--- a/jpa/tests/org.eclipse.jpt.core.tests/src/org/eclipse/jpt/core/tests/internal/context/java/JavaAttributeOverrideTests.java
+++ /dev/null
@@ -1,246 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2008 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.core.tests.internal.context.java;
-
-import java.util.Iterator;
-import org.eclipse.jdt.core.ICompilationUnit;
-import org.eclipse.jpt.core.context.AttributeOverride;
-import org.eclipse.jpt.core.context.BasicMapping;
-import org.eclipse.jpt.core.context.Column;
-import org.eclipse.jpt.core.context.Entity;
-import org.eclipse.jpt.core.context.java.JavaPersistentType;
-import org.eclipse.jpt.core.resource.java.AttributeOverrideAnnotation;
-import org.eclipse.jpt.core.resource.java.ColumnAnnotation;
-import org.eclipse.jpt.core.resource.java.JPA;
-import org.eclipse.jpt.core.resource.java.JavaResourcePersistentType;
-import org.eclipse.jpt.core.tests.internal.context.ContextModelTestCase;
-import org.eclipse.jpt.core.tests.internal.projects.TestJavaProject.SourceWriter;
-import org.eclipse.jpt.utility.internal.CollectionTools;
-import org.eclipse.jpt.utility.internal.iterators.ArrayIterator;
-
-public class JavaAttributeOverrideTests extends ContextModelTestCase
-{
-	private static final String ATTRIBUTE_OVERRIDE_NAME = "MY_ATTRIBUTE_OVERRIDE_NAME";
-	private static final String ATTRIBUTE_OVERRIDE_COLUMN_NAME = "MY_ATTRIBUTE_OVERRIDE_COLUMN_NAME";
-		
-	private ICompilationUnit createTestMappedSuperclass() throws Exception {
-		return this.createTestType(new DefaultAnnotationWriter() {
-			@Override
-			public Iterator<String> imports() {
-				return new ArrayIterator<String>(JPA.MAPPED_SUPERCLASS);
-			}
-			@Override
-			public void appendTypeAnnotationTo(StringBuilder sb) {
-				sb.append("@MappedSuperclass");
-			}
-		});
-	}
-
-	private ICompilationUnit createTestEntityWithAttributeOverride() throws Exception {
-		return this.createTestType(new DefaultAnnotationWriter() {
-			@Override
-			public Iterator<String> imports() {
-				return new ArrayIterator<String>(JPA.ENTITY, JPA.ATTRIBUTE_OVERRIDE, JPA.COLUMN);
-			}
-			@Override
-			public void appendTypeAnnotationTo(StringBuilder sb) {
-				sb.append("@Entity").append(CR);
-				sb.append("@AttributeOverride(name=\"" + ATTRIBUTE_OVERRIDE_NAME + "\", column=@Column(name=\"" + ATTRIBUTE_OVERRIDE_COLUMN_NAME + "\"))");
-			}
-		});
-	}
-
-	private void createTestSubType() throws Exception {
-		SourceWriter sourceWriter = new SourceWriter() {
-			public void appendSourceTo(StringBuilder sb) {
-				sb.append(CR);
-					sb.append("import ");
-					sb.append(JPA.ENTITY);
-					sb.append(";");
-					sb.append(CR);
-				sb.append("@Entity");
-				sb.append(CR);
-				sb.append("public class ").append("AnnotationTestTypeChild").append(" ");
-				sb.append("extends " + TYPE_NAME + " ");
-				sb.append("{}").append(CR);
-			}
-		};
-		this.javaProject.createCompilationUnit(PACKAGE_NAME, "AnnotationTestTypeChild.java", sourceWriter);
-	}
-
-
-		
-	public JavaAttributeOverrideTests(String name) {
-		super(name);
-	}
-	
-	public void testGetName() throws Exception {
-		createTestEntityWithAttributeOverride();
-		addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
-
-		AttributeOverride specifiedAttributeOverride = getJavaEntity().specifiedAttributeOverrides().next();
-		assertEquals(ATTRIBUTE_OVERRIDE_NAME, specifiedAttributeOverride.getName());
-		
-		
-		JavaResourcePersistentType typeResource = getJpaProject().getJavaResourcePersistentType(FULLY_QUALIFIED_TYPE_NAME);
-		AttributeOverrideAnnotation attributeOverrideResource = (AttributeOverrideAnnotation) typeResource.getSupportingAnnotation(JPA.ATTRIBUTE_OVERRIDE);
-		
-		attributeOverrideResource.setName("FOO");
-		specifiedAttributeOverride = getJavaEntity().specifiedAttributeOverrides().next();
-		assertEquals("FOO", specifiedAttributeOverride.getName());
-	}
-	
-	public void testSetName() throws Exception {
-		createTestEntityWithAttributeOverride();
-		addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
-
-		AttributeOverride specifiedAttributeOverride = getJavaEntity().specifiedAttributeOverrides().next();
-		assertEquals(ATTRIBUTE_OVERRIDE_NAME, specifiedAttributeOverride.getName());
-		
-		specifiedAttributeOverride.setName("FOO");
-		
-		JavaResourcePersistentType typeResource = getJpaProject().getJavaResourcePersistentType(FULLY_QUALIFIED_TYPE_NAME);
-		AttributeOverrideAnnotation attributeOverrideResource = (AttributeOverrideAnnotation) typeResource.getSupportingAnnotation(JPA.ATTRIBUTE_OVERRIDE);
-		
-		assertEquals("FOO", attributeOverrideResource.getName());
-	}
-
-	public void testColumnGetName() throws Exception {
-		createTestEntityWithAttributeOverride();
-		addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
-
-		AttributeOverride specifiedAttributeOverride = getJavaEntity().specifiedAttributeOverrides().next();
-		Column column = specifiedAttributeOverride.getColumn();
-		assertEquals(ATTRIBUTE_OVERRIDE_COLUMN_NAME, column.getName());
-		
-		
-		JavaResourcePersistentType typeResource = getJpaProject().getJavaResourcePersistentType(FULLY_QUALIFIED_TYPE_NAME);
-		AttributeOverrideAnnotation attributeOverrideResource = (AttributeOverrideAnnotation) typeResource.getSupportingAnnotation(JPA.ATTRIBUTE_OVERRIDE);
-		ColumnAnnotation columnResource = attributeOverrideResource.getColumn();
-		columnResource.setName("FOO");
-		
-		
-		column = getJavaEntity().specifiedAttributeOverrides().next().getColumn();
-		assertEquals("FOO", column.getName());
-	}
-	
-	public void testColumnSetName() throws Exception {
-		createTestEntityWithAttributeOverride();
-		addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
-
-		AttributeOverride specifiedAttributeOverride = getJavaEntity().specifiedAttributeOverrides().next();
-		Column column = specifiedAttributeOverride.getColumn();
-		assertEquals(ATTRIBUTE_OVERRIDE_COLUMN_NAME, column.getName());
-		
-		column.setSpecifiedName("FOO");
-		JavaResourcePersistentType typeResource = getJpaProject().getJavaResourcePersistentType(FULLY_QUALIFIED_TYPE_NAME);
-		AttributeOverrideAnnotation attributeOverrideResource = (AttributeOverrideAnnotation) typeResource.getSupportingAnnotation(JPA.ATTRIBUTE_OVERRIDE);
-		ColumnAnnotation columnResource = attributeOverrideResource.getColumn();
-
-		assertEquals("FOO", columnResource.getName());
-		
-		column.setSpecifiedName(null);
-		
-		attributeOverrideResource = (AttributeOverrideAnnotation) typeResource.getSupportingAnnotation(JPA.ATTRIBUTE_OVERRIDE);
-		assertNull(attributeOverrideResource.getColumn());
-		assertNotNull(specifiedAttributeOverride.getColumn());
-	}
-	
-	public void testColumnDefaultName() throws Exception {
-		createTestMappedSuperclass();
-		createTestSubType();
-		addXmlClassRef(PACKAGE_NAME + ".AnnotationTestTypeChild");
-		addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
-				
-		Entity entity = getJavaEntity();
-		assertEquals("AnnotationTestTypeChild", entity.getName());
-		assertEquals(2, entity.virtualAttributeOverridesSize());
-		
-		AttributeOverride attributeOverride = entity.virtualAttributeOverrides().next();
-		assertEquals("id", attributeOverride.getColumn().getDefaultName());
-		
-		
-		JavaPersistentType mappedSuperclass = CollectionTools.list(getPersistenceUnit().specifiedClassRefs()).get(1).getJavaPersistentType();
-		BasicMapping basicMapping = (BasicMapping) mappedSuperclass.getAttributeNamed("id").getMapping();
-		basicMapping.getColumn().setSpecifiedName("FOO");
-	
-		attributeOverride = entity.virtualAttributeOverrides().next();
-		assertEquals("FOO", attributeOverride.getColumn().getDefaultName());
-	}
-	
-	public void testColumnDefaultTableName() throws Exception {
-		createTestMappedSuperclass();
-		createTestSubType();
-		addXmlClassRef(PACKAGE_NAME + ".AnnotationTestTypeChild");
-		addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
-				
-		Entity entity = getJavaEntity();
-		assertEquals("AnnotationTestTypeChild", entity.getName());
-		assertEquals(2, entity.virtualAttributeOverridesSize());
-		
-		AttributeOverride attributeOverride = entity.virtualAttributeOverrides().next();
-		assertEquals("AnnotationTestTypeChild", attributeOverride.getColumn().getDefaultTable());
-
-		
-		JavaPersistentType mappedSuperclass = CollectionTools.list(getPersistenceUnit().specifiedClassRefs()).get(1).getJavaPersistentType();
-		BasicMapping basicMapping = (BasicMapping) mappedSuperclass.getAttributeNamed("id").getMapping();
-		basicMapping.getColumn().setSpecifiedTable("BAR");
-	
-		attributeOverride = entity.virtualAttributeOverrides().next();
-		assertEquals("BAR", attributeOverride.getColumn().getDefaultTable());
-	}
-	
-	public void testDefaultName() throws Exception {
-		createTestMappedSuperclass();
-		createTestSubType();
-		addXmlClassRef(PACKAGE_NAME + ".AnnotationTestTypeChild");
-		addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
-		
-		Entity entity = getJavaEntity();	
-		assertEquals("AnnotationTestTypeChild", entity.getName());
-		assertEquals(2, entity.virtualAttributeOverridesSize());
-		
-		AttributeOverride attributeOverride = entity.virtualAttributeOverrides().next();
-		assertEquals("id", attributeOverride.getName());
-	}
-	
-	public void testIsVirtual() throws Exception {
-		createTestMappedSuperclass();
-		createTestSubType();
-		addXmlClassRef(PACKAGE_NAME + ".AnnotationTestTypeChild");
-		addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
-		
-		Entity entity = getJavaEntity();	
-		assertEquals("AnnotationTestTypeChild", entity.getName());
-		assertEquals(2, entity.virtualAttributeOverridesSize());
-		
-		AttributeOverride attributeOverride = entity.virtualAttributeOverrides().next();
-		assertTrue(attributeOverride.isVirtual());
-	}
-	
-	public void testSetColumn() throws Exception {
-		createTestMappedSuperclass();
-		createTestSubType();
-		addXmlClassRef(PACKAGE_NAME + ".AnnotationTestTypeChild");
-		addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
-		
-		Entity entity = getJavaEntity();	
-		AttributeOverride attributeOverride = entity.virtualAttributeOverrides().next();
-		attributeOverride = attributeOverride.setVirtual(false);
-		attributeOverride.getColumn().setSpecifiedName("FOO");
-		
-		
-		JavaResourcePersistentType typeResource = getJpaProject().getJavaResourcePersistentType(PACKAGE_NAME + ".AnnotationTestTypeChild");
-		AttributeOverrideAnnotation attributeOverrideResource = (AttributeOverrideAnnotation) typeResource.getSupportingAnnotation(JPA.ATTRIBUTE_OVERRIDE);
-	
-		assertEquals("FOO", attributeOverrideResource.getColumn().getName());
-		assertEquals("FOO", entity.specifiedAttributeOverrides().next().getColumn().getSpecifiedName());
-	}
-}
diff --git a/jpa/tests/org.eclipse.jpt.core.tests/src/org/eclipse/jpt/core/tests/internal/context/java/JavaBasicMappingTests.java b/jpa/tests/org.eclipse.jpt.core.tests/src/org/eclipse/jpt/core/tests/internal/context/java/JavaBasicMappingTests.java
deleted file mode 100644
index 6847910..0000000
--- a/jpa/tests/org.eclipse.jpt.core.tests/src/org/eclipse/jpt/core/tests/internal/context/java/JavaBasicMappingTests.java
+++ /dev/null
@@ -1,978 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.core.tests.internal.context.java;
-
-import java.util.Iterator;
-
-import org.eclipse.jdt.core.ICompilationUnit;
-import org.eclipse.jpt.core.JptCorePlugin;
-import org.eclipse.jpt.core.MappingKeys;
-import org.eclipse.jpt.core.context.AccessType;
-import org.eclipse.jpt.core.context.BasicMapping;
-import org.eclipse.jpt.core.context.Converter;
-import org.eclipse.jpt.core.context.EmbeddedIdMapping;
-import org.eclipse.jpt.core.context.EmbeddedMapping;
-import org.eclipse.jpt.core.context.EnumType;
-import org.eclipse.jpt.core.context.EnumeratedConverter;
-import org.eclipse.jpt.core.context.FetchType;
-import org.eclipse.jpt.core.context.IdMapping;
-import org.eclipse.jpt.core.context.ManyToManyMapping;
-import org.eclipse.jpt.core.context.ManyToOneMapping;
-import org.eclipse.jpt.core.context.OneToManyMapping;
-import org.eclipse.jpt.core.context.OneToOneMapping;
-import org.eclipse.jpt.core.context.PersistentAttribute;
-import org.eclipse.jpt.core.context.TemporalConverter;
-import org.eclipse.jpt.core.context.TemporalType;
-import org.eclipse.jpt.core.context.TransientMapping;
-import org.eclipse.jpt.core.context.VersionMapping;
-import org.eclipse.jpt.core.resource.java.BasicAnnotation;
-import org.eclipse.jpt.core.resource.java.ColumnAnnotation;
-import org.eclipse.jpt.core.resource.java.EmbeddedAnnotation;
-import org.eclipse.jpt.core.resource.java.EmbeddedIdAnnotation;
-import org.eclipse.jpt.core.resource.java.EnumeratedAnnotation;
-import org.eclipse.jpt.core.resource.java.IdAnnotation;
-import org.eclipse.jpt.core.resource.java.JPA;
-import org.eclipse.jpt.core.resource.java.JavaResourcePersistentAttribute;
-import org.eclipse.jpt.core.resource.java.JavaResourcePersistentType;
-import org.eclipse.jpt.core.resource.java.LobAnnotation;
-import org.eclipse.jpt.core.resource.java.ManyToOneAnnotation;
-import org.eclipse.jpt.core.resource.java.OneToOneAnnotation;
-import org.eclipse.jpt.core.resource.java.TemporalAnnotation;
-import org.eclipse.jpt.core.resource.java.TransientAnnotation;
-import org.eclipse.jpt.core.resource.java.VersionAnnotation;
-import org.eclipse.jpt.core.resource.persistence.PersistenceFactory;
-import org.eclipse.jpt.core.resource.persistence.XmlMappingFileRef;
-import org.eclipse.jpt.core.tests.internal.context.ContextModelTestCase;
-import org.eclipse.jpt.utility.internal.iterators.ArrayIterator;
-
-@SuppressWarnings("nls")
-public class JavaBasicMappingTests extends ContextModelTestCase
-{
-
-	private ICompilationUnit createTestEntity() throws Exception {
-		return this.createTestType(new DefaultAnnotationWriter() {
-			@Override
-			public Iterator<String> imports() {
-				return new ArrayIterator<String>(JPA.ENTITY);
-			}
-			@Override
-			public void appendTypeAnnotationTo(StringBuilder sb) {
-				sb.append("@Entity");
-			}
-		});
-	}
-
-	private ICompilationUnit createTestEntityWithBasicMapping() throws Exception {	
-		return this.createTestType(new DefaultAnnotationWriter() {
-			@Override
-			public Iterator<String> imports() {
-				return new ArrayIterator<String>(JPA.ENTITY, JPA.BASIC);
-			}
-			@Override
-			public void appendTypeAnnotationTo(StringBuilder sb) {
-				sb.append("@Entity").append(CR);
-			}
-			
-			@Override
-			public void appendIdFieldAnnotationTo(StringBuilder sb) {
-				sb.append("@Basic").append(CR);
-			}
-		});
-	}
-	private ICompilationUnit createTestEntityWithBasicMappingFetchOptionalSpecified() throws Exception {	
-		return this.createTestType(new DefaultAnnotationWriter() {
-			@Override
-			public Iterator<String> imports() {
-				return new ArrayIterator<String>(JPA.ENTITY, JPA.BASIC, JPA.FETCH_TYPE);
-			}
-			@Override
-			public void appendTypeAnnotationTo(StringBuilder sb) {
-				sb.append("@Entity").append(CR);
-			}
-			
-			@Override
-			public void appendIdFieldAnnotationTo(StringBuilder sb) {
-				sb.append("@Basic(fetch=FetchType.EAGER, optional=false)").append(CR);
-			}
-		});
-	}
-
-	private ICompilationUnit createTestEntityWithLob() throws Exception {	
-		return this.createTestType(new DefaultAnnotationWriter() {
-			@Override
-			public Iterator<String> imports() {
-				return new ArrayIterator<String>(JPA.ENTITY, JPA.LOB);
-			}
-			@Override
-			public void appendTypeAnnotationTo(StringBuilder sb) {
-				sb.append("@Entity").append(CR);
-			}
-			
-			@Override
-			public void appendIdFieldAnnotationTo(StringBuilder sb) {
-				sb.append("@Lob").append(CR);
-			}
-		});
-	}
-
-	private ICompilationUnit createTestEntityWithEnumerated() throws Exception {	
-		return this.createTestType(new DefaultAnnotationWriter() {
-			@Override
-			public Iterator<String> imports() {
-				return new ArrayIterator<String>(JPA.ENTITY, JPA.ENUMERATED, JPA.ENUM_TYPE);
-			}
-			@Override
-			public void appendTypeAnnotationTo(StringBuilder sb) {
-				sb.append("@Entity").append(CR);
-			}
-			
-			@Override
-			public void appendIdFieldAnnotationTo(StringBuilder sb) {
-				sb.append("@Enumerated(EnumType.STRING)").append(CR);
-			}
-		});
-	}
-	
-	private ICompilationUnit createTestEntityWithTemporal() throws Exception {	
-		return this.createTestType(new DefaultAnnotationWriter() {
-			@Override
-			public Iterator<String> imports() {
-				return new ArrayIterator<String>(JPA.ENTITY, JPA.TEMPORAL, JPA.TEMPORAL_TYPE);
-			}
-			@Override
-			public void appendTypeAnnotationTo(StringBuilder sb) {
-				sb.append("@Entity").append(CR);
-			}
-			
-			@Override
-			public void appendIdFieldAnnotationTo(StringBuilder sb) {
-				sb.append("@Temporal(TemporalType.TIMESTAMP)").append(CR);
-			}
-		});
-	}
-		
-	public JavaBasicMappingTests(String name) {
-		super(name);
-	}
-	
-	public void testDefaultBasicGetDefaultFetch() throws Exception {
-		createTestEntity();
-		addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
-		
-		PersistentAttribute persistentAttribute = getJavaPersistentType().attributes().next();
-		BasicMapping basicMapping = (BasicMapping) persistentAttribute.getMapping();
-		assertEquals(FetchType.EAGER, basicMapping.getDefaultFetch());
-	}
-	
-	public void testSpecifiedBasicGetDefaultFetch() throws Exception {
-		createTestEntityWithBasicMapping();
-		addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
-		
-		PersistentAttribute persistentAttribute = getJavaPersistentType().attributes().next();
-		BasicMapping basicMapping = (BasicMapping) persistentAttribute.getSpecifiedMapping();
-		assertEquals(FetchType.EAGER, basicMapping.getDefaultFetch());
-	}
-	
-	public void testGetFetch() throws Exception {
-		createTestEntityWithBasicMapping();
-		addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
-		
-		PersistentAttribute persistentAttribute = getJavaPersistentType().attributes().next();
-		BasicMapping basicMapping = (BasicMapping) persistentAttribute.getSpecifiedMapping();
-
-		assertEquals(FetchType.EAGER, basicMapping.getFetch());
-		
-		basicMapping.setSpecifiedFetch(FetchType.LAZY);		
-		assertEquals(FetchType.LAZY, basicMapping.getFetch());
-	}
-	
-	public void testGetSpecifiedFetch() throws Exception {
-		createTestEntityWithBasicMapping();
-		addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
-		
-		PersistentAttribute persistentAttribute = getJavaPersistentType().attributes().next();
-		BasicMapping basicMapping = (BasicMapping) persistentAttribute.getSpecifiedMapping();
-
-		assertNull(basicMapping.getSpecifiedFetch());
-		
-		
-		JavaResourcePersistentType typeResource = getJpaProject().getJavaResourcePersistentType(FULLY_QUALIFIED_TYPE_NAME);
-		JavaResourcePersistentAttribute attributeResource = typeResource.persistableAttributes().next();
-		BasicAnnotation basic = (BasicAnnotation) attributeResource.getMappingAnnotation(JPA.BASIC);
-		basic.setFetch(org.eclipse.jpt.core.resource.java.FetchType.LAZY);
-		
-		assertEquals(FetchType.LAZY, basicMapping.getSpecifiedFetch());
-	}
-	
-	public void testGetSpecifiedFetch2() throws Exception {
-		createTestEntityWithBasicMappingFetchOptionalSpecified();
-		addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
-		
-		PersistentAttribute persistentAttribute = getJavaPersistentType().attributes().next();
-		BasicMapping basicMapping = (BasicMapping) persistentAttribute.getSpecifiedMapping();
-
-		assertEquals(FetchType.EAGER, basicMapping.getSpecifiedFetch());
-	}
-
-	public void testSetSpecifiedFetch() throws Exception {
-		createTestEntityWithBasicMapping();
-		addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
-		
-		PersistentAttribute persistentAttribute = getJavaPersistentType().attributes().next();
-		BasicMapping basicMapping = (BasicMapping) persistentAttribute.getSpecifiedMapping();
-		assertNull(basicMapping.getSpecifiedFetch());
-		
-		basicMapping.setSpecifiedFetch(FetchType.LAZY);
-		
-		JavaResourcePersistentType typeResource = getJpaProject().getJavaResourcePersistentType(FULLY_QUALIFIED_TYPE_NAME);
-		JavaResourcePersistentAttribute attributeResource = typeResource.persistableAttributes().next();
-		BasicAnnotation basic = (BasicAnnotation) attributeResource.getMappingAnnotation(JPA.BASIC);
-		
-		assertEquals(org.eclipse.jpt.core.resource.java.FetchType.LAZY, basic.getFetch());
-		
-		basicMapping.setSpecifiedFetch(null);
-		assertNotNull(attributeResource.getMappingAnnotation(JPA.BASIC));
-	}
-	
-	public void testSetSpecifiedFetch2() throws Exception {
-		createTestEntity();
-		addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
-		
-		createOrmXmlFile();
-		getEntityMappings().getPersistenceUnitMetadata().getPersistenceUnitDefaults().setAccess(AccessType.PROPERTY);
-		PersistentAttribute persistentAttribute = getJavaPersistentType().attributes().next();
-		BasicMapping basicMapping = (BasicMapping) persistentAttribute.getMapping();
-		assertNull(basicMapping.getSpecifiedFetch());
-		assertTrue(basicMapping.isDefault());
-		
-		basicMapping.setSpecifiedFetch(FetchType.LAZY);
-		
-		JavaResourcePersistentType typeResource = getJpaProject().getJavaResourcePersistentType(FULLY_QUALIFIED_TYPE_NAME);
-		JavaResourcePersistentAttribute attributeResource = typeResource.persistableProperties().next();
-		BasicAnnotation basic = (BasicAnnotation) attributeResource.getMappingAnnotation(JPA.BASIC);
-		
-		assertEquals(org.eclipse.jpt.core.resource.java.FetchType.LAZY, basic.getFetch());
-		
-		basicMapping = (BasicMapping) persistentAttribute.getMapping();
-		assertEquals(FetchType.LAZY, basicMapping.getSpecifiedFetch());
-		assertFalse(basicMapping.isDefault());
-
-		basicMapping.setSpecifiedFetch(null);
-		assertNotNull(attributeResource.getMappingAnnotation(JPA.BASIC));
-		
-		basicMapping = (BasicMapping) persistentAttribute.getMapping();
-		assertFalse(basicMapping.isDefault());
-	}
-	
-	protected void createOrmXmlFile() throws Exception {
-		XmlMappingFileRef mappingFileRef = PersistenceFactory.eINSTANCE.createXmlMappingFileRef();
-		mappingFileRef.setFileName(JptCorePlugin.DEFAULT_ORM_XML_FILE_PATH);
-		getXmlPersistenceUnit().getMappingFiles().add(mappingFileRef);
-		getPersistenceXmlResource().save(null);
-	}
-
-	public void testSetBasicRemovedFromResourceModel() throws Exception {
-		createTestEntityWithBasicMapping();
-		addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
-		
-		PersistentAttribute persistentAttribute = getJavaPersistentType().attributes().next();
-		BasicMapping basicMapping = (BasicMapping) persistentAttribute.getMapping();
-		JavaResourcePersistentType typeResource = getJpaProject().getJavaResourcePersistentType(FULLY_QUALIFIED_TYPE_NAME);
-		JavaResourcePersistentAttribute attributeResource = typeResource.persistableAttributes().next();
-		assertFalse(basicMapping.isDefault());
-		basicMapping.getColumn().setSpecifiedName("FOO");
-		attributeResource.addSupportingAnnotation(TemporalAnnotation.ANNOTATION_NAME);
-		attributeResource.addSupportingAnnotation(LobAnnotation.ANNOTATION_NAME);
-		attributeResource.addSupportingAnnotation(EnumeratedAnnotation.ANNOTATION_NAME);
-		assertFalse(basicMapping.isDefault());
-		
-		attributeResource.setMappingAnnotation(null);
-		
-		assertNotSame(basicMapping, persistentAttribute.getMapping());
-		
-		basicMapping = (BasicMapping) persistentAttribute.getMapping();
-		assertTrue(basicMapping.isDefault());
-		assertEquals("FOO", basicMapping.getColumn().getSpecifiedName());
-		
-		
-		assertNotNull(attributeResource.getSupportingAnnotation(ColumnAnnotation.ANNOTATION_NAME));
-		assertNotNull(attributeResource.getSupportingAnnotation(TemporalAnnotation.ANNOTATION_NAME));
-		assertNotNull(attributeResource.getSupportingAnnotation(LobAnnotation.ANNOTATION_NAME));
-		assertNotNull(attributeResource.getSupportingAnnotation(EnumeratedAnnotation.ANNOTATION_NAME));
-	}
-	
-	public void testBasicMorphToDefaultBasic() throws Exception {
-		createTestEntityWithBasicMapping();
-		addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
-		
-		PersistentAttribute persistentAttribute = getJavaPersistentType().attributes().next();
-		BasicMapping basicMapping = (BasicMapping) persistentAttribute.getMapping();
-		JavaResourcePersistentType typeResource = getJpaProject().getJavaResourcePersistentType(FULLY_QUALIFIED_TYPE_NAME);
-		JavaResourcePersistentAttribute attributeResource = typeResource.persistableAttributes().next();
-		assertFalse(basicMapping.isDefault());
-		basicMapping.getColumn().setSpecifiedName("FOO");
-		basicMapping.setSpecifiedConverter(Converter.ENUMERATED_CONVERTER);
-		((EnumeratedConverter) basicMapping.getSpecifiedConverter()).setSpecifiedEnumType(EnumType.STRING);
-		attributeResource.addSupportingAnnotation(LobAnnotation.ANNOTATION_NAME);
-		attributeResource.addSupportingAnnotation(TemporalAnnotation.ANNOTATION_NAME);
-		basicMapping.setSpecifiedFetch(FetchType.EAGER);
-		basicMapping.setSpecifiedOptional(Boolean.FALSE);
-		assertFalse(basicMapping.isDefault());
-		
-		persistentAttribute.setSpecifiedMappingKey(MappingKeys.NULL_ATTRIBUTE_MAPPING_KEY);
-		assertEquals("FOO", ((BasicMapping) persistentAttribute.getMapping()).getColumn().getSpecifiedName());
-		assertEquals(EnumType.STRING, ((EnumeratedConverter) ((BasicMapping) persistentAttribute.getMapping()).getSpecifiedConverter()).getEnumType());
-		
-		assertNull(((BasicMapping) persistentAttribute.getMapping()).getSpecifiedFetch());
-		assertNull(((BasicMapping) persistentAttribute.getMapping()).getSpecifiedOptional());
-		assertNull(attributeResource.getMappingAnnotation(BasicAnnotation.ANNOTATION_NAME));
-		assertNotNull(attributeResource.getSupportingAnnotation(ColumnAnnotation.ANNOTATION_NAME));
-		assertNotNull(attributeResource.getSupportingAnnotation(TemporalAnnotation.ANNOTATION_NAME));
-		assertNotNull(attributeResource.getSupportingAnnotation(LobAnnotation.ANNOTATION_NAME));
-		assertNotNull(attributeResource.getSupportingAnnotation(EnumeratedAnnotation.ANNOTATION_NAME));
-	}
-	
-	public void testBasicMorphToId() throws Exception {
-		createTestEntityWithBasicMapping();
-		addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
-		
-		PersistentAttribute persistentAttribute = getJavaPersistentType().attributes().next();
-		BasicMapping basicMapping = (BasicMapping) persistentAttribute.getMapping();
-		JavaResourcePersistentType typeResource = getJpaProject().getJavaResourcePersistentType(FULLY_QUALIFIED_TYPE_NAME);
-		JavaResourcePersistentAttribute attributeResource = typeResource.persistableAttributes().next();
-		assertFalse(basicMapping.isDefault());
-		basicMapping.getColumn().setSpecifiedName("FOO");
-		basicMapping.setSpecifiedConverter(Converter.TEMPORAL_CONVERTER);
-		((TemporalConverter) basicMapping.getSpecifiedConverter()).setTemporalType(TemporalType.TIME);
-		attributeResource.addSupportingAnnotation(LobAnnotation.ANNOTATION_NAME);
-		attributeResource.addSupportingAnnotation(EnumeratedAnnotation.ANNOTATION_NAME);
-		basicMapping.setSpecifiedFetch(FetchType.EAGER);
-		basicMapping.setSpecifiedOptional(Boolean.FALSE);
-		assertFalse(basicMapping.isDefault());
-		
-		persistentAttribute.setSpecifiedMappingKey(MappingKeys.ID_ATTRIBUTE_MAPPING_KEY);
-		assertEquals("FOO", ((IdMapping) persistentAttribute.getMapping()).getColumn().getSpecifiedName());
-		assertEquals(TemporalType.TIME, ((TemporalConverter) ((IdMapping) persistentAttribute.getMapping()).getSpecifiedConverter()).getTemporalType());
-		
-		assertNull(attributeResource.getMappingAnnotation(BasicAnnotation.ANNOTATION_NAME));
-		assertNotNull(attributeResource.getMappingAnnotation(IdAnnotation.ANNOTATION_NAME));
-		assertNotNull(attributeResource.getSupportingAnnotation(ColumnAnnotation.ANNOTATION_NAME));
-		assertNotNull(attributeResource.getSupportingAnnotation(TemporalAnnotation.ANNOTATION_NAME));
-		assertNull(attributeResource.getSupportingAnnotation(LobAnnotation.ANNOTATION_NAME));
-		assertNull(attributeResource.getSupportingAnnotation(EnumeratedAnnotation.ANNOTATION_NAME));
-	}
-	
-	public void testBasicMorphToVersion() throws Exception {
-		createTestEntityWithBasicMapping();
-		addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
-		
-		PersistentAttribute persistentAttribute = getJavaPersistentType().attributes().next();
-		BasicMapping basicMapping = (BasicMapping) persistentAttribute.getMapping();
-		JavaResourcePersistentType typeResource = getJpaProject().getJavaResourcePersistentType(FULLY_QUALIFIED_TYPE_NAME);
-		JavaResourcePersistentAttribute attributeResource = typeResource.persistableAttributes().next();
-		assertFalse(basicMapping.isDefault());
-		basicMapping.getColumn().setSpecifiedName("FOO");
-		basicMapping.setSpecifiedConverter(Converter.TEMPORAL_CONVERTER);
-		((TemporalConverter) basicMapping.getSpecifiedConverter()).setTemporalType(TemporalType.TIME);
-		attributeResource.addSupportingAnnotation(LobAnnotation.ANNOTATION_NAME);
-		attributeResource.addSupportingAnnotation(EnumeratedAnnotation.ANNOTATION_NAME);
-		assertFalse(basicMapping.isDefault());
-		
-		persistentAttribute.setSpecifiedMappingKey(MappingKeys.VERSION_ATTRIBUTE_MAPPING_KEY);
-		assertEquals("FOO", ((VersionMapping) persistentAttribute.getMapping()).getColumn().getSpecifiedName());
-		assertEquals(TemporalType.TIME, ((TemporalConverter) ((VersionMapping) persistentAttribute.getMapping()).getSpecifiedConverter()).getTemporalType());
-		
-		assertNull(attributeResource.getMappingAnnotation(BasicAnnotation.ANNOTATION_NAME));
-		assertNotNull(attributeResource.getMappingAnnotation(VersionAnnotation.ANNOTATION_NAME));
-		assertNotNull(attributeResource.getSupportingAnnotation(ColumnAnnotation.ANNOTATION_NAME));
-		assertNotNull(attributeResource.getSupportingAnnotation(TemporalAnnotation.ANNOTATION_NAME));
-		assertNull(attributeResource.getSupportingAnnotation(LobAnnotation.ANNOTATION_NAME));
-		assertNull(attributeResource.getSupportingAnnotation(EnumeratedAnnotation.ANNOTATION_NAME));
-	}
-	
-	public void testBasicMorphToEmbedded() throws Exception {
-		createTestEntityWithBasicMapping();
-		addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
-		
-		PersistentAttribute persistentAttribute = getJavaPersistentType().attributes().next();
-		BasicMapping basicMapping = (BasicMapping) persistentAttribute.getMapping();
-		JavaResourcePersistentType typeResource = getJpaProject().getJavaResourcePersistentType(FULLY_QUALIFIED_TYPE_NAME);
-		JavaResourcePersistentAttribute attributeResource = typeResource.persistableAttributes().next();
-		assertFalse(basicMapping.isDefault());
-		basicMapping.getColumn().setSpecifiedName("FOO");
-		attributeResource.addSupportingAnnotation(TemporalAnnotation.ANNOTATION_NAME);
-		attributeResource.addSupportingAnnotation(LobAnnotation.ANNOTATION_NAME);
-		attributeResource.addSupportingAnnotation(EnumeratedAnnotation.ANNOTATION_NAME);
-		assertFalse(basicMapping.isDefault());
-		
-		persistentAttribute.setSpecifiedMappingKey(MappingKeys.EMBEDDED_ATTRIBUTE_MAPPING_KEY);
-		assertTrue(persistentAttribute.getMapping() instanceof EmbeddedMapping);
-		
-		assertNull(attributeResource.getMappingAnnotation(BasicAnnotation.ANNOTATION_NAME));
-		assertNotNull(attributeResource.getMappingAnnotation(EmbeddedAnnotation.ANNOTATION_NAME));
-		assertNull(attributeResource.getSupportingAnnotation(ColumnAnnotation.ANNOTATION_NAME));
-		assertNull(attributeResource.getSupportingAnnotation(TemporalAnnotation.ANNOTATION_NAME));
-		assertNull(attributeResource.getSupportingAnnotation(LobAnnotation.ANNOTATION_NAME));
-		assertNull(attributeResource.getSupportingAnnotation(EnumeratedAnnotation.ANNOTATION_NAME));
-	}
-	
-	public void testBasicMorphToEmbeddedId() throws Exception {
-		createTestEntityWithBasicMapping();
-		addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
-		
-		PersistentAttribute persistentAttribute = getJavaPersistentType().attributes().next();
-		BasicMapping basicMapping = (BasicMapping) persistentAttribute.getMapping();
-		JavaResourcePersistentType typeResource = getJpaProject().getJavaResourcePersistentType(FULLY_QUALIFIED_TYPE_NAME);
-		JavaResourcePersistentAttribute attributeResource = typeResource.persistableAttributes().next();
-		assertFalse(basicMapping.isDefault());
-		basicMapping.getColumn().setSpecifiedName("FOO");
-		attributeResource.addSupportingAnnotation(TemporalAnnotation.ANNOTATION_NAME);
-		attributeResource.addSupportingAnnotation(LobAnnotation.ANNOTATION_NAME);
-		attributeResource.addSupportingAnnotation(EnumeratedAnnotation.ANNOTATION_NAME);
-		assertFalse(basicMapping.isDefault());
-		
-		persistentAttribute.setSpecifiedMappingKey(MappingKeys.EMBEDDED_ID_ATTRIBUTE_MAPPING_KEY);
-		assertTrue(persistentAttribute.getMapping() instanceof EmbeddedIdMapping);
-		
-		assertNull(attributeResource.getMappingAnnotation(BasicAnnotation.ANNOTATION_NAME));
-		assertNotNull(attributeResource.getMappingAnnotation(EmbeddedIdAnnotation.ANNOTATION_NAME));
-		assertNull(attributeResource.getSupportingAnnotation(ColumnAnnotation.ANNOTATION_NAME));
-		assertNull(attributeResource.getSupportingAnnotation(TemporalAnnotation.ANNOTATION_NAME));
-		assertNull(attributeResource.getSupportingAnnotation(LobAnnotation.ANNOTATION_NAME));
-		assertNull(attributeResource.getSupportingAnnotation(EnumeratedAnnotation.ANNOTATION_NAME));
-	}
-
-	public void testBasicMorphToTransient() throws Exception {
-		createTestEntityWithBasicMapping();
-		addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
-		
-		PersistentAttribute persistentAttribute = getJavaPersistentType().attributes().next();
-		BasicMapping basicMapping = (BasicMapping) persistentAttribute.getMapping();
-		JavaResourcePersistentType typeResource = getJpaProject().getJavaResourcePersistentType(FULLY_QUALIFIED_TYPE_NAME);
-		JavaResourcePersistentAttribute attributeResource = typeResource.persistableAttributes().next();
-		assertFalse(basicMapping.isDefault());
-		basicMapping.getColumn().setSpecifiedName("FOO");
-		attributeResource.addSupportingAnnotation(TemporalAnnotation.ANNOTATION_NAME);
-		attributeResource.addSupportingAnnotation(LobAnnotation.ANNOTATION_NAME);
-		attributeResource.addSupportingAnnotation(EnumeratedAnnotation.ANNOTATION_NAME);
-		assertFalse(basicMapping.isDefault());
-		
-		persistentAttribute.setSpecifiedMappingKey(MappingKeys.TRANSIENT_ATTRIBUTE_MAPPING_KEY);
-		assertTrue(persistentAttribute.getMapping() instanceof TransientMapping);
-		
-		assertNull(attributeResource.getMappingAnnotation(BasicAnnotation.ANNOTATION_NAME));
-		assertNotNull(attributeResource.getMappingAnnotation(TransientAnnotation.ANNOTATION_NAME));
-		assertNull(attributeResource.getSupportingAnnotation(ColumnAnnotation.ANNOTATION_NAME));
-		assertNull(attributeResource.getSupportingAnnotation(TemporalAnnotation.ANNOTATION_NAME));
-		assertNull(attributeResource.getSupportingAnnotation(LobAnnotation.ANNOTATION_NAME));
-		assertNull(attributeResource.getSupportingAnnotation(EnumeratedAnnotation.ANNOTATION_NAME));
-	}
-	
-	public void testBasicMorphToOneToOne() throws Exception {
-		createTestEntityWithBasicMapping();
-		addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
-		
-		PersistentAttribute persistentAttribute = getJavaPersistentType().attributes().next();
-		BasicMapping basicMapping = (BasicMapping) persistentAttribute.getMapping();
-		JavaResourcePersistentType typeResource = getJpaProject().getJavaResourcePersistentType(FULLY_QUALIFIED_TYPE_NAME);
-		JavaResourcePersistentAttribute attributeResource = typeResource.persistableAttributes().next();
-		assertFalse(basicMapping.isDefault());
-		basicMapping.getColumn().setSpecifiedName("FOO");
-		attributeResource.addSupportingAnnotation(TemporalAnnotation.ANNOTATION_NAME);
-		attributeResource.addSupportingAnnotation(LobAnnotation.ANNOTATION_NAME);
-		attributeResource.addSupportingAnnotation(EnumeratedAnnotation.ANNOTATION_NAME);
-		basicMapping.setSpecifiedFetch(FetchType.EAGER);
-		basicMapping.setSpecifiedOptional(Boolean.FALSE);
-		assertFalse(basicMapping.isDefault());
-		
-		persistentAttribute.setSpecifiedMappingKey(MappingKeys.ONE_TO_ONE_ATTRIBUTE_MAPPING_KEY);
-		assertTrue(persistentAttribute.getMapping() instanceof OneToOneMapping);
-		
-//TODO		assertEquals(FetchType.EAGER, ((IOneToOneMapping) persistentAttribute.getMapping()).getSpecifiedFetch());
-//		assertEquals(Boolean.FALSE, ((IOneToOneMapping) persistentAttribute.getMapping()).getSpecifiedOptional());
-		assertNotNull(attributeResource.getMappingAnnotation(OneToOneAnnotation.ANNOTATION_NAME));
-		assertNull(attributeResource.getMappingAnnotation(BasicAnnotation.ANNOTATION_NAME));
-		assertNull(attributeResource.getSupportingAnnotation(ColumnAnnotation.ANNOTATION_NAME));
-		assertNull(attributeResource.getSupportingAnnotation(TemporalAnnotation.ANNOTATION_NAME));
-		assertNull(attributeResource.getSupportingAnnotation(LobAnnotation.ANNOTATION_NAME));
-		assertNull(attributeResource.getSupportingAnnotation(EnumeratedAnnotation.ANNOTATION_NAME));
-	}
-
-	public void testBasicMorphToOneToMany() throws Exception {
-		createTestEntityWithBasicMapping();
-		addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
-		
-		PersistentAttribute persistentAttribute = getJavaPersistentType().attributes().next();
-		BasicMapping basicMapping = (BasicMapping) persistentAttribute.getMapping();
-		JavaResourcePersistentType typeResource = getJpaProject().getJavaResourcePersistentType(FULLY_QUALIFIED_TYPE_NAME);
-		JavaResourcePersistentAttribute attributeResource = typeResource.persistableAttributes().next();
-		assertFalse(basicMapping.isDefault());
-		basicMapping.getColumn().setSpecifiedName("FOO");
-		attributeResource.addSupportingAnnotation(TemporalAnnotation.ANNOTATION_NAME);
-		attributeResource.addSupportingAnnotation(LobAnnotation.ANNOTATION_NAME);
-		attributeResource.addSupportingAnnotation(EnumeratedAnnotation.ANNOTATION_NAME);
-		basicMapping.setSpecifiedFetch(FetchType.EAGER);
-		basicMapping.setSpecifiedOptional(Boolean.FALSE);
-		assertFalse(basicMapping.isDefault());
-		
-		persistentAttribute.setSpecifiedMappingKey(MappingKeys.ONE_TO_MANY_ATTRIBUTE_MAPPING_KEY);
-		assertTrue(persistentAttribute.getMapping() instanceof OneToManyMapping);
-		
-//TODO		assertEquals(FetchType.EAGER, ((IOneToManyMapping) persistentAttribute.getMapping()).getSpecifiedFetch());
-//		assertNotNull(attributeResource.mappingAnnotation(OneToMany.ANNOTATION_NAME));
-		assertNull(attributeResource.getMappingAnnotation(BasicAnnotation.ANNOTATION_NAME));
-		assertNull(attributeResource.getSupportingAnnotation(ColumnAnnotation.ANNOTATION_NAME));
-		assertNull(attributeResource.getSupportingAnnotation(TemporalAnnotation.ANNOTATION_NAME));
-		assertNull(attributeResource.getSupportingAnnotation(LobAnnotation.ANNOTATION_NAME));
-		assertNull(attributeResource.getSupportingAnnotation(EnumeratedAnnotation.ANNOTATION_NAME));
-	}
-	public void testBasicMorphToManyToOne() throws Exception {
-		createTestEntityWithBasicMapping();
-		addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
-		
-		PersistentAttribute persistentAttribute = getJavaPersistentType().attributes().next();
-		BasicMapping basicMapping = (BasicMapping) persistentAttribute.getMapping();
-		JavaResourcePersistentType typeResource = getJpaProject().getJavaResourcePersistentType(FULLY_QUALIFIED_TYPE_NAME);
-		JavaResourcePersistentAttribute attributeResource = typeResource.persistableAttributes().next();
-		assertFalse(basicMapping.isDefault());
-		basicMapping.getColumn().setSpecifiedName("FOO");
-		attributeResource.addSupportingAnnotation(TemporalAnnotation.ANNOTATION_NAME);
-		attributeResource.addSupportingAnnotation(LobAnnotation.ANNOTATION_NAME);
-		attributeResource.addSupportingAnnotation(EnumeratedAnnotation.ANNOTATION_NAME);
-		basicMapping.setSpecifiedFetch(FetchType.EAGER);
-		basicMapping.setSpecifiedOptional(Boolean.FALSE);
-		assertFalse(basicMapping.isDefault());
-		
-		persistentAttribute.setSpecifiedMappingKey(MappingKeys.MANY_TO_ONE_ATTRIBUTE_MAPPING_KEY);
-		assertTrue(persistentAttribute.getMapping() instanceof ManyToOneMapping);
-		
-//TODO		assertEquals(FetchType.EAGER, ((IManyToOneMapping) persistentAttribute.getMapping()).getSpecifiedFetch());
-//		assertEquals(Boolean.FALSE, ((IManyToOneMapping) persistentAttribute.getMapping()).getSpecifiedOptional());
-		assertNotNull(attributeResource.getMappingAnnotation(ManyToOneAnnotation.ANNOTATION_NAME));
-		assertNull(attributeResource.getMappingAnnotation(BasicAnnotation.ANNOTATION_NAME));
-		assertNull(attributeResource.getSupportingAnnotation(ColumnAnnotation.ANNOTATION_NAME));
-		assertNull(attributeResource.getSupportingAnnotation(TemporalAnnotation.ANNOTATION_NAME));
-		assertNull(attributeResource.getSupportingAnnotation(LobAnnotation.ANNOTATION_NAME));
-		assertNull(attributeResource.getSupportingAnnotation(EnumeratedAnnotation.ANNOTATION_NAME));
-	}
-	
-	public void testBasicMorphToManyToMany() throws Exception {
-		createTestEntityWithBasicMapping();
-		addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
-		
-		PersistentAttribute persistentAttribute = getJavaPersistentType().attributes().next();
-		BasicMapping basicMapping = (BasicMapping) persistentAttribute.getMapping();
-		JavaResourcePersistentType typeResource = getJpaProject().getJavaResourcePersistentType(FULLY_QUALIFIED_TYPE_NAME);
-		JavaResourcePersistentAttribute attributeResource = typeResource.persistableAttributes().next();
-		assertFalse(basicMapping.isDefault());
-		basicMapping.getColumn().setSpecifiedName("FOO");
-		attributeResource.addSupportingAnnotation(TemporalAnnotation.ANNOTATION_NAME);
-		attributeResource.addSupportingAnnotation(LobAnnotation.ANNOTATION_NAME);
-		attributeResource.addSupportingAnnotation(EnumeratedAnnotation.ANNOTATION_NAME);
-		basicMapping.setSpecifiedFetch(FetchType.EAGER);
-		basicMapping.setSpecifiedOptional(Boolean.FALSE);
-		assertFalse(basicMapping.isDefault());
-		
-		persistentAttribute.setSpecifiedMappingKey(MappingKeys.MANY_TO_MANY_ATTRIBUTE_MAPPING_KEY);
-		assertTrue(persistentAttribute.getMapping() instanceof ManyToManyMapping);
-		
-//TODO		assertEquals(FetchType.EAGER, ((IManyToManyMapping) persistentAttribute.getMapping()).getSpecifiedFetch());
-//		assertNotNull(attributeResource.mappingAnnotation(ManyToMany.ANNOTATION_NAME));
-		assertNull(attributeResource.getMappingAnnotation(BasicAnnotation.ANNOTATION_NAME));
-		assertNull(attributeResource.getSupportingAnnotation(ColumnAnnotation.ANNOTATION_NAME));
-		assertNull(attributeResource.getSupportingAnnotation(TemporalAnnotation.ANNOTATION_NAME));
-		assertNull(attributeResource.getSupportingAnnotation(LobAnnotation.ANNOTATION_NAME));
-		assertNull(attributeResource.getSupportingAnnotation(EnumeratedAnnotation.ANNOTATION_NAME));
-	}
-
-	public void testDefaultBasicGetDefaultOptional() throws Exception {
-		createTestEntity();
-		addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
-		
-		PersistentAttribute persistentAttribute = getJavaPersistentType().attributes().next();
-		BasicMapping basicMapping = (BasicMapping) persistentAttribute.getMapping();
-		assertEquals(true, basicMapping.isDefaultOptional());
-	}
-	
-	public void testSpecifiedBasicGetDefaultOptional() throws Exception {
-		createTestEntityWithBasicMapping();
-		addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
-		
-		PersistentAttribute persistentAttribute = getJavaPersistentType().attributes().next();
-		BasicMapping basicMapping = (BasicMapping) persistentAttribute.getSpecifiedMapping();
-		assertEquals(true, basicMapping.isDefaultOptional());
-	}
-	
-	public void testGetOptional() throws Exception {
-		createTestEntityWithBasicMapping();
-		addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
-		
-		PersistentAttribute persistentAttribute = getJavaPersistentType().attributes().next();
-		BasicMapping basicMapping = (BasicMapping) persistentAttribute.getSpecifiedMapping();
-
-		assertEquals(true, basicMapping.isOptional());
-		
-		basicMapping.setSpecifiedOptional(Boolean.TRUE);
-		assertEquals(true, basicMapping.isOptional());
-	}
-	
-	public void testGetSpecifiedOptional() throws Exception {
-		createTestEntityWithBasicMapping();
-		addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
-		
-		PersistentAttribute persistentAttribute = getJavaPersistentType().attributes().next();
-		BasicMapping basicMapping = (BasicMapping) persistentAttribute.getSpecifiedMapping();
-
-		assertNull(basicMapping.getSpecifiedOptional());
-		
-		
-		JavaResourcePersistentType typeResource = getJpaProject().getJavaResourcePersistentType(FULLY_QUALIFIED_TYPE_NAME);
-		JavaResourcePersistentAttribute attributeResource = typeResource.persistableAttributes().next();
-		BasicAnnotation basic = (BasicAnnotation) attributeResource.getMappingAnnotation(JPA.BASIC);
-		basic.setOptional(Boolean.FALSE);
-		
-		assertEquals(Boolean.FALSE, basicMapping.getSpecifiedOptional());
-	}
-	
-	public void testGetSpecifiedOptional2() throws Exception {
-		createTestEntityWithBasicMappingFetchOptionalSpecified();
-		addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
-		
-		PersistentAttribute persistentAttribute = getJavaPersistentType().attributes().next();
-		BasicMapping basicMapping = (BasicMapping) persistentAttribute.getSpecifiedMapping();
-
-		assertEquals(Boolean.FALSE, basicMapping.getSpecifiedOptional());
-	}
-
-	public void testSetSpecifiedOptional() throws Exception {
-		createTestEntityWithBasicMapping();
-		addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
-		
-		PersistentAttribute persistentAttribute = getJavaPersistentType().attributes().next();
-		BasicMapping basicMapping = (BasicMapping) persistentAttribute.getSpecifiedMapping();
-		assertNull(basicMapping.getSpecifiedOptional());
-		
-		basicMapping.setSpecifiedOptional(Boolean.FALSE);
-		
-		JavaResourcePersistentType typeResource = getJpaProject().getJavaResourcePersistentType(FULLY_QUALIFIED_TYPE_NAME);
-		JavaResourcePersistentAttribute attributeResource = typeResource.persistableAttributes().next();
-		BasicAnnotation basic = (BasicAnnotation) attributeResource.getMappingAnnotation(JPA.BASIC);
-		
-		assertEquals(Boolean.FALSE, basic.getOptional());
-		
-		basicMapping.setSpecifiedOptional(null);
-		assertNotNull(attributeResource.getMappingAnnotation(JPA.BASIC));
-	}
-	
-	public void testSetSpecifiedOptional2() throws Exception {
-		createTestEntity();
-		addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
-		
-		PersistentAttribute persistentAttribute = getJavaPersistentType().attributes().next();
-		BasicMapping basicMapping = (BasicMapping) persistentAttribute.getMapping();
-		assertNull(basicMapping.getSpecifiedOptional());
-		assertTrue(basicMapping.isDefault());
-		
-		basicMapping.setSpecifiedOptional(Boolean.TRUE);
-		
-		JavaResourcePersistentType typeResource = getJpaProject().getJavaResourcePersistentType(FULLY_QUALIFIED_TYPE_NAME);
-		JavaResourcePersistentAttribute attributeResource = typeResource.persistableAttributes().next();
-		BasicAnnotation basic = (BasicAnnotation) attributeResource.getMappingAnnotation(JPA.BASIC);
-		
-		assertEquals(Boolean.TRUE, basic.getOptional());
-		
-		basicMapping = (BasicMapping) persistentAttribute.getMapping();
-		assertEquals(Boolean.TRUE, basicMapping.getSpecifiedOptional());
-		assertFalse(basicMapping.isDefault());
-
-		basicMapping.setSpecifiedOptional(null);
-		assertNotNull(attributeResource.getMappingAnnotation(JPA.BASIC));
-		
-		basicMapping = (BasicMapping) persistentAttribute.getMapping();
-		assertFalse(basicMapping.isDefault());
-	}
-
-	
-	public void testGetSpecifiedOptionalUpdatesFromResourceModelChange() throws Exception {
-		createTestEntityWithBasicMapping();
-		addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
-		
-		PersistentAttribute persistentAttribute = getJavaPersistentType().attributes().next();
-		BasicMapping basicMapping = (BasicMapping) persistentAttribute.getSpecifiedMapping();
-
-		assertNull(basicMapping.getSpecifiedOptional());
-		
-		
-		JavaResourcePersistentType typeResource = getJpaProject().getJavaResourcePersistentType(FULLY_QUALIFIED_TYPE_NAME);
-		JavaResourcePersistentAttribute attributeResource = typeResource.persistableAttributes().next();
-		BasicAnnotation basic = (BasicAnnotation) attributeResource.getMappingAnnotation(JPA.BASIC);
-		basic.setOptional(Boolean.FALSE);
-		
-		assertEquals(Boolean.FALSE, basicMapping.getSpecifiedOptional());
-		
-		basic.setOptional(null);
-		assertNull(basicMapping.getSpecifiedOptional());
-		assertFalse(basicMapping.isDefault());
-		assertSame(basicMapping, persistentAttribute.getSpecifiedMapping());
-		
-		basic.setOptional(Boolean.FALSE);
-		attributeResource.setMappingAnnotation(null);
-		
-		assertNull(persistentAttribute.getSpecifiedMapping());
-		assertEquals(true, ((BasicMapping) persistentAttribute.getMapping()).isOptional());
-	}
-	
-	
-	public void testIsLob() throws Exception {
-		createTestEntityWithBasicMapping();
-		addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
-
-		PersistentAttribute persistentAttribute = getJavaPersistentType().attributes().next();
-		BasicMapping basicMapping = (BasicMapping) persistentAttribute.getSpecifiedMapping();
-
-		assertFalse(basicMapping.getConverter().getType() == Converter.LOB_CONVERTER);
-	}
-	
-	public void testIsLob2() throws Exception {
-		createTestEntityWithLob();
-		addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
-
-		PersistentAttribute persistentAttribute = getJavaPersistentType().attributes().next();
-		BasicMapping basicMapping = (BasicMapping) persistentAttribute.getMapping();
-
-		assertTrue(basicMapping.getConverter().getType() == Converter.LOB_CONVERTER);
-	}
-	
-	public void testSetLob() throws Exception {
-		createTestEntityWithBasicMapping();
-		addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
-
-		PersistentAttribute persistentAttribute = getJavaPersistentType().attributes().next();
-		BasicMapping basicMapping = (BasicMapping) persistentAttribute.getSpecifiedMapping();
-
-		basicMapping.setSpecifiedConverter(Converter.LOB_CONVERTER);
-		
-		JavaResourcePersistentType typeResource = getJpaProject().getJavaResourcePersistentType(FULLY_QUALIFIED_TYPE_NAME);
-		JavaResourcePersistentAttribute attributeResource = typeResource.persistableAttributes().next();
-		assertNotNull(attributeResource.getSupportingAnnotation(LobAnnotation.ANNOTATION_NAME));
-		
-		basicMapping.setSpecifiedConverter(null);
-		assertNull(attributeResource.getSupportingAnnotation(LobAnnotation.ANNOTATION_NAME));
-	}
-	
-	public void testIsLobUpdatesFromResourceModelChange() throws Exception {
-		createTestEntityWithBasicMapping();
-		addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
-
-		PersistentAttribute persistentAttribute = getJavaPersistentType().attributes().next();
-		BasicMapping basicMapping = (BasicMapping) persistentAttribute.getSpecifiedMapping();
-
-		assertFalse(basicMapping.getConverter().getType() == Converter.LOB_CONVERTER);
-		
-		JavaResourcePersistentType typeResource = getJpaProject().getJavaResourcePersistentType(FULLY_QUALIFIED_TYPE_NAME);
-		JavaResourcePersistentAttribute attributeResource = typeResource.persistableAttributes().next();
-		attributeResource.addSupportingAnnotation(LobAnnotation.ANNOTATION_NAME);
-		
-		assertTrue(basicMapping.getConverter().getType() == Converter.LOB_CONVERTER);
-	
-		attributeResource.removeSupportingAnnotation(LobAnnotation.ANNOTATION_NAME);
-		
-		assertFalse(basicMapping.getConverter().getType() == Converter.LOB_CONVERTER);
-	}
-	
-	public void testDefaultBasicGetDefaultConverter() throws Exception {
-		createTestEntity();
-		addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
-		
-		PersistentAttribute persistentAttribute = getJavaPersistentType().attributes().next();
-		BasicMapping basicMapping = (BasicMapping) persistentAttribute.getMapping();
-		assertTrue(basicMapping.getConverter().getType() == Converter.NO_CONVERTER);
-	}
-	
-	public void testSpecifiedBasicGetDefaultConverter() throws Exception {
-		createTestEntityWithBasicMapping();
-		addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
-		
-		PersistentAttribute persistentAttribute = getJavaPersistentType().attributes().next();
-		BasicMapping basicMapping = (BasicMapping) persistentAttribute.getSpecifiedMapping();
-		assertTrue(basicMapping.getConverter().getType() == Converter.NO_CONVERTER);
-	}
-	
-	public void testGetEnumerated() throws Exception {
-		createTestEntityWithBasicMapping();
-		addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
-		
-		PersistentAttribute persistentAttribute = getJavaPersistentType().attributes().next();
-		BasicMapping basicMapping = (BasicMapping) persistentAttribute.getSpecifiedMapping();
-
-		assertTrue(basicMapping.getConverter().getType() == Converter.NO_CONVERTER);
-	
-		JavaResourcePersistentType typeResource = getJpaProject().getJavaResourcePersistentType(FULLY_QUALIFIED_TYPE_NAME);
-		JavaResourcePersistentAttribute attributeResource = typeResource.persistableAttributes().next();
-		EnumeratedAnnotation enumeratedAnnotation = (EnumeratedAnnotation) attributeResource.addSupportingAnnotation(EnumeratedAnnotation.ANNOTATION_NAME);
-		assertEquals(EnumType.ORDINAL, ((EnumeratedConverter) basicMapping.getConverter()).getDefaultEnumType());
-		
-		enumeratedAnnotation.setValue(org.eclipse.jpt.core.resource.java.EnumType.STRING);		
-		assertEquals(EnumType.STRING, ((EnumeratedConverter) basicMapping.getConverter()).getSpecifiedEnumType());
-	}
-	
-	public void testGetSpecifiedEnumerated() throws Exception {
-		createTestEntityWithEnumerated();
-		addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
-		
-		PersistentAttribute persistentAttribute = getJavaPersistentType().attributes().next();
-		BasicMapping basicMapping = (BasicMapping) persistentAttribute.getMapping();
-
-		assertEquals(EnumType.STRING, ((EnumeratedConverter) basicMapping.getConverter()).getSpecifiedEnumType());
-	}
-
-	public void testSetSpecifiedEnumerated() throws Exception {
-		createTestEntityWithBasicMapping();
-		addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
-		
-		PersistentAttribute persistentAttribute = getJavaPersistentType().attributes().next();
-		BasicMapping basicMapping = (BasicMapping) persistentAttribute.getSpecifiedMapping();
-		assertTrue(basicMapping.getConverter().getType() == Converter.NO_CONVERTER);
-		
-		basicMapping.setSpecifiedConverter(Converter.ENUMERATED_CONVERTER);
-		
-		JavaResourcePersistentType typeResource = getJpaProject().getJavaResourcePersistentType(FULLY_QUALIFIED_TYPE_NAME);
-		JavaResourcePersistentAttribute attributeResource = typeResource.persistableAttributes().next();
-		EnumeratedAnnotation enumerated = (EnumeratedAnnotation) attributeResource.getSupportingAnnotation(EnumeratedAnnotation.ANNOTATION_NAME);
-		
-		assertNotNull(enumerated);
-		assertEquals(null, enumerated.getValue());
-		
-		((EnumeratedConverter) basicMapping.getConverter()).setSpecifiedEnumType(EnumType.STRING);
-		assertEquals(org.eclipse.jpt.core.resource.java.EnumType.STRING, enumerated.getValue());
-		
-		((EnumeratedConverter) basicMapping.getConverter()).setSpecifiedEnumType(null);
-		assertNotNull(attributeResource.getSupportingAnnotation(EnumeratedAnnotation.ANNOTATION_NAME));
-		assertNull(enumerated.getValue());
-		
-		basicMapping.setSpecifiedConverter(Converter.NO_CONVERTER);
-		assertNull(attributeResource.getSupportingAnnotation(EnumeratedAnnotation.ANNOTATION_NAME));
-	}
-	
-	public void testGetSpecifiedEnumeratedUpdatesFromResourceModelChange() throws Exception {
-		createTestEntityWithBasicMapping();
-		addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
-		
-		PersistentAttribute persistentAttribute = getJavaPersistentType().attributes().next();
-		BasicMapping basicMapping = (BasicMapping) persistentAttribute.getSpecifiedMapping();
-
-		assertTrue(basicMapping.getConverter().getType() == Converter.NO_CONVERTER);
-		
-		
-		JavaResourcePersistentType typeResource = getJpaProject().getJavaResourcePersistentType(FULLY_QUALIFIED_TYPE_NAME);
-		JavaResourcePersistentAttribute attributeResource = typeResource.persistableAttributes().next();
-		EnumeratedAnnotation enumerated = (EnumeratedAnnotation) attributeResource.addSupportingAnnotation(EnumeratedAnnotation.ANNOTATION_NAME);
-		enumerated.setValue(org.eclipse.jpt.core.resource.java.EnumType.STRING);
-		
-		assertEquals(EnumType.STRING, ((EnumeratedConverter) basicMapping.getConverter()).getSpecifiedEnumType());
-		
-		enumerated.setValue(null);
-		assertNotNull(attributeResource.getSupportingAnnotation(EnumeratedAnnotation.ANNOTATION_NAME));
-		assertNull(((EnumeratedConverter) basicMapping.getConverter()).getSpecifiedEnumType());
-		assertFalse(basicMapping.isDefault());
-		assertSame(basicMapping, persistentAttribute.getSpecifiedMapping());
-	}
-	
-	public void testGetTemporal() throws Exception {
-		createTestEntityWithBasicMapping();
-		addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
-		
-		JavaResourcePersistentType typeResource = getJpaProject().getJavaResourcePersistentType(FULLY_QUALIFIED_TYPE_NAME);
-		JavaResourcePersistentAttribute attributeResource = typeResource.persistableAttributes().next();
-		attributeResource.addSupportingAnnotation(TemporalAnnotation.ANNOTATION_NAME);
-		
-		PersistentAttribute persistentAttribute = getJavaPersistentType().attributes().next();
-		BasicMapping basicMapping = (BasicMapping) persistentAttribute.getSpecifiedMapping();
-
-		assertEquals(Converter.TEMPORAL_CONVERTER, basicMapping.getConverter().getType());
-	}
-	
-	public void testGetTemporal2() throws Exception {
-		createTestEntityWithTemporal();
-		addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
-		
-		PersistentAttribute persistentAttribute = getJavaPersistentType().attributes().next();
-		BasicMapping basicMapping = (BasicMapping) persistentAttribute.getMapping();
-
-		assertEquals(Converter.TEMPORAL_CONVERTER, basicMapping.getConverter().getType());
-		assertEquals(TemporalType.TIMESTAMP, ((TemporalConverter) basicMapping.getConverter()).getTemporalType());
-	}
-
-	public void testSetTemporal() throws Exception {
-		createTestEntityWithBasicMapping();
-		addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
-		
-		PersistentAttribute persistentAttribute = getJavaPersistentType().attributes().next();
-		BasicMapping basicMapping = (BasicMapping) persistentAttribute.getSpecifiedMapping();
-		assertEquals(Converter.NO_CONVERTER, basicMapping.getConverter().getType());
-		
-		basicMapping.setSpecifiedConverter(Converter.TEMPORAL_CONVERTER);
-		((TemporalConverter) basicMapping.getSpecifiedConverter()).setTemporalType(TemporalType.TIME);
-		
-		JavaResourcePersistentType typeResource = getJpaProject().getJavaResourcePersistentType(FULLY_QUALIFIED_TYPE_NAME);
-		JavaResourcePersistentAttribute attributeResource = typeResource.persistableAttributes().next();
-		TemporalAnnotation temporal = (TemporalAnnotation) attributeResource.getSupportingAnnotation(TemporalAnnotation.ANNOTATION_NAME);
-		
-		assertEquals(org.eclipse.jpt.core.resource.java.TemporalType.TIME, temporal.getValue());
-		
-		basicMapping.setSpecifiedConverter(null);
-		assertNull(attributeResource.getSupportingAnnotation(TemporalAnnotation.ANNOTATION_NAME));
-	}
-	
-	public void testGetTemporalUpdatesFromResourceModelChange() throws Exception {
-		createTestEntityWithBasicMapping();
-		addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
-		
-		PersistentAttribute persistentAttribute = getJavaPersistentType().attributes().next();
-		BasicMapping basicMapping = (BasicMapping) persistentAttribute.getSpecifiedMapping();
-
-		assertEquals(Converter.NO_CONVERTER, basicMapping.getConverter().getType());
-		
-		
-		JavaResourcePersistentType typeResource = getJpaProject().getJavaResourcePersistentType(FULLY_QUALIFIED_TYPE_NAME);
-		JavaResourcePersistentAttribute attributeResource = typeResource.persistableAttributes().next();
-		TemporalAnnotation temporal = (TemporalAnnotation) attributeResource.addSupportingAnnotation(TemporalAnnotation.ANNOTATION_NAME);
-		temporal.setValue(org.eclipse.jpt.core.resource.java.TemporalType.DATE);
-		
-		assertEquals(Converter.TEMPORAL_CONVERTER, basicMapping.getConverter().getType());
-		assertEquals(TemporalType.DATE, ((TemporalConverter) basicMapping.getConverter()).getTemporalType());
-		
-		attributeResource.removeSupportingAnnotation(TemporalAnnotation.ANNOTATION_NAME);
-		
-		assertEquals(Converter.NO_CONVERTER, basicMapping.getConverter().getType());
-		assertFalse(basicMapping.isDefault());
-		assertSame(basicMapping, persistentAttribute.getSpecifiedMapping());
-	}
-	
-	public void testGetColumn() throws Exception {
-		createTestEntityWithBasicMapping();
-		addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
-		
-		PersistentAttribute persistentAttribute = getJavaPersistentType().attributes().next();
-		BasicMapping basicMapping = (BasicMapping) persistentAttribute.getSpecifiedMapping();
-		
-		assertNull(basicMapping.getColumn().getSpecifiedName());
-		assertEquals("id", basicMapping.getColumn().getName());
-		
-		JavaResourcePersistentType typeResource = getJpaProject().getJavaResourcePersistentType(FULLY_QUALIFIED_TYPE_NAME);
-		JavaResourcePersistentAttribute attributeResource = typeResource.persistableAttributes().next();
-		ColumnAnnotation column = (ColumnAnnotation) attributeResource.addSupportingAnnotation(JPA.COLUMN);
-		column.setName("foo");
-		
-		assertEquals("foo", basicMapping.getColumn().getSpecifiedName());
-		assertEquals("foo", basicMapping.getColumn().getName());
-		assertEquals("id", basicMapping.getColumn().getDefaultName());
-	}
-}
diff --git a/jpa/tests/org.eclipse.jpt.core.tests/src/org/eclipse/jpt/core/tests/internal/context/java/JavaColumnTests.java b/jpa/tests/org.eclipse.jpt.core.tests/src/org/eclipse/jpt/core/tests/internal/context/java/JavaColumnTests.java
deleted file mode 100644
index 0573254..0000000
--- a/jpa/tests/org.eclipse.jpt.core.tests/src/org/eclipse/jpt/core/tests/internal/context/java/JavaColumnTests.java
+++ /dev/null
@@ -1,816 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2008 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.core.tests.internal.context.java;
-
-import java.util.Iterator;
-import org.eclipse.jdt.core.ICompilationUnit;
-import org.eclipse.jpt.core.context.BaseColumn;
-import org.eclipse.jpt.core.context.BasicMapping;
-import org.eclipse.jpt.core.context.Column;
-import org.eclipse.jpt.core.context.Entity;
-import org.eclipse.jpt.core.resource.java.ColumnAnnotation;
-import org.eclipse.jpt.core.resource.java.JPA;
-import org.eclipse.jpt.core.resource.java.JavaResourcePersistentAttribute;
-import org.eclipse.jpt.core.resource.java.JavaResourcePersistentType;
-import org.eclipse.jpt.core.tests.internal.context.ContextModelTestCase;
-import org.eclipse.jpt.utility.internal.iterators.ArrayIterator;
-
-@SuppressWarnings("nls")
-public class JavaColumnTests extends ContextModelTestCase
-{
-	private static final String COLUMN_NAME = "MY_COLUMN";
-	private static final String TABLE_NAME = "MY_TABLE";
-	private static final String COLUMN_DEFINITION = "MY_COLUMN_DEFINITION";
-	
-
-	private ICompilationUnit createTestEntity() throws Exception {
-		return this.createTestType(new DefaultAnnotationWriter() {
-			@Override
-			public Iterator<String> imports() {
-				return new ArrayIterator<String>(JPA.ENTITY);
-			}
-			@Override
-			public void appendTypeAnnotationTo(StringBuilder sb) {
-				sb.append("@Entity");
-			}
-		});
-	}
-
-	private ICompilationUnit createTestEntityWithDefaultBasicColumn() throws Exception {	
-		return this.createTestType(new DefaultAnnotationWriter() {
-			@Override
-			public Iterator<String> imports() {
-				return new ArrayIterator<String>(JPA.ENTITY, JPA.COLUMN);
-			}
-			@Override
-			public void appendTypeAnnotationTo(StringBuilder sb) {
-				sb.append("@Entity").append(CR);
-			}
-			
-			@Override
-			public void appendIdFieldAnnotationTo(StringBuilder sb) {
-				sb.append("@Column(name=\"" + COLUMN_NAME + "\")");
-			}
-		});
-	}
-
-	private ICompilationUnit createTestEntityWithBasicColumnTableSet() throws Exception {	
-		return this.createTestType(new DefaultAnnotationWriter() {
-			@Override
-			public Iterator<String> imports() {
-				return new ArrayIterator<String>(JPA.ENTITY, JPA.BASIC, JPA.COLUMN);
-			}
-			@Override
-			public void appendTypeAnnotationTo(StringBuilder sb) {
-				sb.append("@Entity").append(CR);
-			}
-			
-			@Override
-			public void appendIdFieldAnnotationTo(StringBuilder sb) {
-				sb.append("@Basic");
-				sb.append("@Column(table=\"" + TABLE_NAME + "\")");
-			}
-		});
-	}
-	
-	private ICompilationUnit createTestEntityWithBasicColumnColumnDefinitionSet() throws Exception {	
-		return this.createTestType(new DefaultAnnotationWriter() {
-			@Override
-			public Iterator<String> imports() {
-				return new ArrayIterator<String>(JPA.ENTITY, JPA.BASIC, JPA.COLUMN);
-			}
-			@Override
-			public void appendTypeAnnotationTo(StringBuilder sb) {
-				sb.append("@Entity").append(CR);
-			}
-			
-			@Override
-			public void appendIdFieldAnnotationTo(StringBuilder sb) {
-				sb.append("@Basic");
-				sb.append("@Column(columnDefinition=\"" + COLUMN_DEFINITION + "\")");
-			}
-		});
-	}
-	
-	public JavaColumnTests(String name) {
-		super(name);
-	}
-	
-	public void testGetSpecifiedNameNull() throws Exception {
-		createTestEntity();
-		addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
-
-		BasicMapping basicMapping = (BasicMapping) getJavaPersistentType().attributes().next().getMapping();
-		
-		assertNull(basicMapping.getColumn().getSpecifiedName());
-	}
-
-	public void testGetSpecifiedName() throws Exception {
-		createTestEntityWithDefaultBasicColumn();
-		addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
-		
-		BasicMapping basicMapping = (BasicMapping) getJavaPersistentType().attributes().next().getMapping();
-
-		assertEquals(COLUMN_NAME, basicMapping.getColumn().getSpecifiedName());
-	}
-	
-	public void testGetDefaultNameSpecifiedNameNull() throws Exception {
-		createTestEntity();
-		addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
-		BasicMapping basicMapping = (BasicMapping) getJavaPersistentType().attributes().next().getMapping();
-		
-		assertEquals(basicMapping.getPersistentAttribute().getName(), basicMapping.getColumn().getDefaultName());
-		assertEquals("id", basicMapping.getColumn().getDefaultName());
-	}
-
-	public void testGetDefaultName() throws Exception {
-		createTestEntityWithDefaultBasicColumn();
-		addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
-		
-		BasicMapping basicMapping = (BasicMapping) getJavaPersistentType().attributes().next().getMapping();
-		assertEquals("id", basicMapping.getColumn().getDefaultName());
-		
-		basicMapping.getColumn().setSpecifiedName("foo");
-		assertEquals("id", basicMapping.getColumn().getDefaultName());
-	}
-	
-	public void testGetNameSpecifiedNameNull() throws Exception {
-		createTestEntity();
-		addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
-		BasicMapping basicMapping = (BasicMapping) getJavaPersistentType().attributes().next().getMapping();
-		
-		assertEquals("id", basicMapping.getColumn().getName());
-	}
-	
-	public void testGetName() throws Exception {
-		createTestEntityWithDefaultBasicColumn();
-		addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
-		BasicMapping basicMapping = (BasicMapping) getJavaPersistentType().attributes().next().getMapping();
-	
-		assertEquals(COLUMN_NAME, basicMapping.getColumn().getName());
-	}
-
-	public void testSetSpecifiedName() throws Exception {
-		createTestEntity();
-		addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
-		BasicMapping basicMapping = (BasicMapping) getJavaPersistentType().attributes().next().getMapping();
-
-		basicMapping.getColumn().setSpecifiedName("foo");
-		
-		assertEquals("foo", basicMapping.getColumn().getSpecifiedName());
-		
-		JavaResourcePersistentType typeResource = getJpaProject().getJavaResourcePersistentType(FULLY_QUALIFIED_TYPE_NAME);
-		JavaResourcePersistentAttribute attributeResource = typeResource.persistableAttributes().next();
-		ColumnAnnotation column = (ColumnAnnotation) attributeResource.getSupportingAnnotation(JPA.COLUMN);
-		
-		assertEquals("foo", column.getName());
-	}
-	
-	public void testSetSpecifiedNameNull() throws Exception {
-		createTestEntityWithDefaultBasicColumn();
-		addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
-
-		BasicMapping basicMapping = (BasicMapping) getJavaPersistentType().attributes().next().getMapping();
-
-		basicMapping.getColumn().setSpecifiedName(null);
-		
-		assertNull(basicMapping.getColumn().getSpecifiedName());
-		
-		JavaResourcePersistentType typeResource = getJpaProject().getJavaResourcePersistentType(FULLY_QUALIFIED_TYPE_NAME);
-		JavaResourcePersistentAttribute attributeResource = typeResource.persistableAttributes().next();
-		assertNull(attributeResource.getSupportingAnnotation(JPA.COLUMN));
-	}
-	
-	public void testGetNameUpdatesFromResourceChange() throws Exception {
-		createTestEntity();
-		addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
-		BasicMapping basicMapping = (BasicMapping) getJavaPersistentType().attributes().next().getMapping();
-
-		assertNull(basicMapping.getColumn().getSpecifiedName());
-		
-		JavaResourcePersistentType typeResource = getJpaProject().getJavaResourcePersistentType(FULLY_QUALIFIED_TYPE_NAME);
-		JavaResourcePersistentAttribute attributeResource = typeResource.persistableAttributes().next();
-		ColumnAnnotation column = (ColumnAnnotation) attributeResource.addSupportingAnnotation(JPA.COLUMN);
-
-		column.setName("foo");
-		assertEquals("foo", basicMapping.getColumn().getSpecifiedName());
-		assertEquals("foo", basicMapping.getColumn().getName());
-		
-		column.setName(null);
-		assertNull(basicMapping.getColumn().getSpecifiedName());
-	}
-	
-	
-	
-	
-	
-	
-	
-	
-	
-	
-	
-	
-	
-	public void testGetSpecifiedTableNull() throws Exception {
-		createTestEntity();
-		addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
-
-		BasicMapping basicMapping = (BasicMapping) getJavaPersistentType().attributes().next().getMapping();
-		
-		assertNull(basicMapping.getColumn().getSpecifiedTable());
-	}
-
-	public void testGetSpecifiedTable() throws Exception {
-		createTestEntityWithBasicColumnTableSet();
-		addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
-		
-		BasicMapping basicMapping = (BasicMapping) getJavaPersistentType().attributes().next().getMapping();
-
-		assertEquals(TABLE_NAME, basicMapping.getColumn().getSpecifiedTable());
-	}
-	
-	public void testGetDefaultTableSpecifiedTableNull() throws Exception {
-		createTestEntity();
-		addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
-		BasicMapping basicMapping = (BasicMapping) getJavaPersistentType().attributes().next().getMapping();
-		
-		assertEquals(((Entity) basicMapping.getTypeMapping()).getName(), basicMapping.getColumn().getDefaultTable());
-		assertEquals(TYPE_NAME, basicMapping.getColumn().getDefaultTable());
-	}
-
-	public void testGetDefaultTable() throws Exception {
-		createTestEntityWithDefaultBasicColumn();
-		addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
-		
-		BasicMapping basicMapping = (BasicMapping) getJavaPersistentType().attributes().next().getMapping();
-		assertEquals(TYPE_NAME, basicMapping.getColumn().getDefaultTable());
-		
-		basicMapping.getColumn().setSpecifiedTable("foo");
-		assertEquals(TYPE_NAME, basicMapping.getColumn().getDefaultTable());
-	}
-	
-	public void testGetTable() throws Exception {
-		createTestEntityWithBasicColumnTableSet();
-		addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
-		BasicMapping basicMapping = (BasicMapping) getJavaPersistentType().attributes().next().getMapping();
-	
-		assertEquals(TABLE_NAME, basicMapping.getColumn().getTable());
-	}
-
-	public void testSetSpecifiedTable() throws Exception {
-		createTestEntity();
-		addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
-		BasicMapping basicMapping = (BasicMapping) getJavaPersistentType().attributes().next().getMapping();
-
-		basicMapping.getColumn().setSpecifiedTable("foo");
-		
-		assertEquals("foo", basicMapping.getColumn().getSpecifiedTable());
-		
-		JavaResourcePersistentType typeResource = getJpaProject().getJavaResourcePersistentType(FULLY_QUALIFIED_TYPE_NAME);
-		JavaResourcePersistentAttribute attributeResource = typeResource.persistableAttributes().next();
-		ColumnAnnotation column = (ColumnAnnotation) attributeResource.getSupportingAnnotation(JPA.COLUMN);
-		
-		assertEquals("foo", column.getTable());
-	}
-	
-	public void testSetSpecifiedTableNull() throws Exception {
-		createTestEntityWithBasicColumnTableSet();
-		addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
-
-		BasicMapping basicMapping = (BasicMapping) getJavaPersistentType().attributes().next().getMapping();
-
-		basicMapping.getColumn().setSpecifiedTable(null);
-		
-		assertNull(basicMapping.getColumn().getSpecifiedTable());
-		
-		JavaResourcePersistentType typeResource = getJpaProject().getJavaResourcePersistentType(FULLY_QUALIFIED_TYPE_NAME);
-		JavaResourcePersistentAttribute attributeResource = typeResource.persistableAttributes().next();
-		assertNull(attributeResource.getSupportingAnnotation(JPA.COLUMN));
-	}
-	
-	public void testGetTableUpdatesFromResourceChange() throws Exception {
-		createTestEntity();
-		addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
-		BasicMapping basicMapping = (BasicMapping) getJavaPersistentType().attributes().next().getMapping();
-
-		assertNull(basicMapping.getColumn().getSpecifiedTable());
-		
-		JavaResourcePersistentType typeResource = getJpaProject().getJavaResourcePersistentType(FULLY_QUALIFIED_TYPE_NAME);
-		JavaResourcePersistentAttribute attributeResource = typeResource.persistableAttributes().next();
-		ColumnAnnotation column = (ColumnAnnotation) attributeResource.addSupportingAnnotation(JPA.COLUMN);
-
-		column.setTable("foo");
-		assertEquals("foo", basicMapping.getColumn().getSpecifiedTable());
-		assertEquals("foo", basicMapping.getColumn().getTable());
-		
-		column.setTable(null);
-		assertNull(basicMapping.getColumn().getSpecifiedTable());
-	}
-	
-	public void testGetColumnDefinition() throws Exception {
-		createTestEntityWithBasicColumnColumnDefinitionSet();
-		addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
-		BasicMapping basicMapping = (BasicMapping) getJavaPersistentType().attributes().next().getMapping();
-		
-		assertEquals(COLUMN_DEFINITION, basicMapping.getColumn().getColumnDefinition());
-	}
-	
-	public void testSetColumnDefinition() throws Exception {
-		createTestEntityWithBasicColumnTableSet();
-		addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
-		BasicMapping basicMapping = (BasicMapping) getJavaPersistentType().attributes().next().getMapping();
-		
-		basicMapping.getColumn().setColumnDefinition("foo");
-		
-		JavaResourcePersistentType typeResource = getJpaProject().getJavaResourcePersistentType(FULLY_QUALIFIED_TYPE_NAME);
-		JavaResourcePersistentAttribute attributeResource = typeResource.persistableAttributes().next();
-		ColumnAnnotation column = (ColumnAnnotation) attributeResource.getSupportingAnnotation(JPA.COLUMN);
-		
-		assertEquals("foo", column.getColumnDefinition());
-		
-		basicMapping.getColumn().setColumnDefinition(null);
-		assertNull(column.getColumnDefinition());
-	}
-	
-	public void testGetColumnDefinitionUpdatesFromResourceChange() throws Exception {
-		createTestEntity();
-		addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
-		BasicMapping basicMapping = (BasicMapping) getJavaPersistentType().attributes().next().getMapping();
-
-		assertNull(basicMapping.getColumn().getColumnDefinition());
-		
-		JavaResourcePersistentType typeResource = getJpaProject().getJavaResourcePersistentType(FULLY_QUALIFIED_TYPE_NAME);
-		JavaResourcePersistentAttribute attributeResource = typeResource.persistableAttributes().next();
-		ColumnAnnotation column = (ColumnAnnotation) attributeResource.addSupportingAnnotation(JPA.COLUMN);
-
-		column.setColumnDefinition("foo");
-		assertEquals("foo", basicMapping.getColumn().getColumnDefinition());
-		
-		column.setColumnDefinition(null);
-		assertNull(basicMapping.getColumn().getColumnDefinition());
-
-	}
-	
-	public void testGetLength() throws Exception {
-		createTestEntity();
-		addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
-		BasicMapping basicMapping = (BasicMapping) getJavaPersistentType().attributes().next().getMapping();
-
-		assertEquals(Column.DEFAULT_LENGTH, basicMapping.getColumn().getLength());
-		basicMapping.getColumn().setSpecifiedLength(Integer.valueOf(55));
-		assertEquals(55, basicMapping.getColumn().getLength());
-	}
-	
-	public void testGetDefaultLength() throws Exception {
-		createTestEntityWithBasicColumnColumnDefinitionSet();
-		addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
-		
-		BasicMapping basicMapping = (BasicMapping) getJavaPersistentType().attributes().next().getMapping();
-
-		assertEquals(Column.DEFAULT_LENGTH, basicMapping.getColumn().getDefaultLength());
-		basicMapping.getColumn().setSpecifiedLength(Integer.valueOf(55));
-		
-		assertEquals(Column.DEFAULT_LENGTH, basicMapping.getColumn().getDefaultLength());
-	}	
-	
-	public void testGetSpecifiedLength() throws Exception {
-		createTestEntity();
-		addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
-		
-		BasicMapping basicMapping = (BasicMapping) getJavaPersistentType().attributes().next().getMapping();
-		
-		assertNull(basicMapping.getColumn().getSpecifiedLength());
-		
-		JavaResourcePersistentType typeResource = getJpaProject().getJavaResourcePersistentType(FULLY_QUALIFIED_TYPE_NAME);
-		JavaResourcePersistentAttribute attributeResource = typeResource.persistableAttributes().next();
-		ColumnAnnotation column = (ColumnAnnotation) attributeResource.addSupportingAnnotation(JPA.COLUMN);
-		column.setLength(Integer.valueOf(66));
-		
-		assertEquals(Integer.valueOf(66), basicMapping.getColumn().getSpecifiedLength());
-		assertEquals(66, basicMapping.getColumn().getLength());
-		
-		column.setLength(null);
-		
-		assertNull(attributeResource.getSupportingAnnotation(JPA.COLUMN));
-		assertNull(basicMapping.getColumn().getSpecifiedLength());	
-	}	
-	
-	public void testSetSpecifiedLength() throws Exception {
-		createTestEntityWithBasicColumnColumnDefinitionSet();
-		addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
-
-		BasicMapping basicMapping = (BasicMapping) getJavaPersistentType().attributes().next().getMapping();
-		
-		assertNull(basicMapping.getColumn().getSpecifiedLength());
-		
-		basicMapping.getColumn().setSpecifiedLength(Integer.valueOf(100));
-		
-		JavaResourcePersistentType typeResource = getJpaProject().getJavaResourcePersistentType(FULLY_QUALIFIED_TYPE_NAME);
-		JavaResourcePersistentAttribute attributeResource = typeResource.persistableAttributes().next();
-		ColumnAnnotation column = (ColumnAnnotation) attributeResource.getSupportingAnnotation(JPA.COLUMN);
-		
-		assertEquals(Integer.valueOf(100), column.getLength());
-		
-		basicMapping.getColumn().setSpecifiedLength(null);
-		
-		assertNull(column.getLength());
-	}
-
-	public void testGetPrecision() throws Exception {
-		createTestEntity();
-		addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
-		BasicMapping basicMapping = (BasicMapping) getJavaPersistentType().attributes().next().getMapping();
-
-		assertEquals(Column.DEFAULT_PRECISION, basicMapping.getColumn().getPrecision());
-		basicMapping.getColumn().setSpecifiedPrecision(Integer.valueOf(55));
-		assertEquals(55, basicMapping.getColumn().getPrecision());
-	}
-	
-	public void testGetDefaultPrecision() throws Exception {
-		createTestEntityWithBasicColumnColumnDefinitionSet();
-		addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
-		
-		BasicMapping basicMapping = (BasicMapping) getJavaPersistentType().attributes().next().getMapping();
-
-		assertEquals(Column.DEFAULT_PRECISION, basicMapping.getColumn().getDefaultPrecision());
-		basicMapping.getColumn().setSpecifiedPrecision(Integer.valueOf(55));
-		
-		assertEquals(Column.DEFAULT_PRECISION, basicMapping.getColumn().getDefaultPrecision());
-	}	
-	
-	public void testGetSpecifiedPrecision() throws Exception {
-		createTestEntity();
-		addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
-		
-		BasicMapping basicMapping = (BasicMapping) getJavaPersistentType().attributes().next().getMapping();
-		
-		assertNull(basicMapping.getColumn().getSpecifiedPrecision());
-		
-		JavaResourcePersistentType typeResource = getJpaProject().getJavaResourcePersistentType(FULLY_QUALIFIED_TYPE_NAME);
-		JavaResourcePersistentAttribute attributeResource = typeResource.persistableAttributes().next();
-		ColumnAnnotation column = (ColumnAnnotation) attributeResource.addSupportingAnnotation(JPA.COLUMN);
-		column.setPrecision(Integer.valueOf(66));
-		
-		assertEquals(Integer.valueOf(66), basicMapping.getColumn().getSpecifiedPrecision());
-		assertEquals(66, basicMapping.getColumn().getPrecision());
-		
-		column.setPrecision(null);
-		
-		assertNull(attributeResource.getSupportingAnnotation(JPA.COLUMN));
-		assertNull(basicMapping.getColumn().getSpecifiedPrecision());	
-	}	
-	
-	public void testSetSpecifiedPrecision() throws Exception {
-		createTestEntityWithBasicColumnColumnDefinitionSet();
-		addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
-
-		BasicMapping basicMapping = (BasicMapping) getJavaPersistentType().attributes().next().getMapping();
-		
-		assertNull(basicMapping.getColumn().getSpecifiedPrecision());
-		
-		basicMapping.getColumn().setSpecifiedPrecision(Integer.valueOf(100));
-		
-		JavaResourcePersistentType typeResource = getJpaProject().getJavaResourcePersistentType(FULLY_QUALIFIED_TYPE_NAME);
-		JavaResourcePersistentAttribute attributeResource = typeResource.persistableAttributes().next();
-		ColumnAnnotation column = (ColumnAnnotation) attributeResource.getSupportingAnnotation(JPA.COLUMN);
-		
-		assertEquals(Integer.valueOf(100), column.getPrecision());
-		
-		basicMapping.getColumn().setSpecifiedPrecision(null);
-		
-		assertNull(column.getPrecision());
-	}
-	
-	public void testGetScale() throws Exception {
-		createTestEntity();
-		addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
-		BasicMapping basicMapping = (BasicMapping) getJavaPersistentType().attributes().next().getMapping();
-
-		assertEquals(Column.DEFAULT_SCALE, basicMapping.getColumn().getScale());
-		basicMapping.getColumn().setSpecifiedScale(Integer.valueOf(55));
-		assertEquals(55, basicMapping.getColumn().getScale());
-	}
-	
-	public void testGetDefaultScale() throws Exception {
-		createTestEntityWithBasicColumnColumnDefinitionSet();
-		addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
-		
-		BasicMapping basicMapping = (BasicMapping) getJavaPersistentType().attributes().next().getMapping();
-
-		assertEquals(Column.DEFAULT_SCALE, basicMapping.getColumn().getDefaultScale());
-		basicMapping.getColumn().setSpecifiedScale(Integer.valueOf(55));
-		
-		assertEquals(Column.DEFAULT_SCALE, basicMapping.getColumn().getDefaultScale());
-	}	
-	
-	public void testGetSpecifiedScale() throws Exception {
-		createTestEntity();
-		addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
-		
-		BasicMapping basicMapping = (BasicMapping) getJavaPersistentType().attributes().next().getMapping();
-		
-		assertNull(basicMapping.getColumn().getSpecifiedScale());
-		
-		JavaResourcePersistentType typeResource = getJpaProject().getJavaResourcePersistentType(FULLY_QUALIFIED_TYPE_NAME);
-		JavaResourcePersistentAttribute attributeResource = typeResource.persistableAttributes().next();
-		ColumnAnnotation column = (ColumnAnnotation) attributeResource.addSupportingAnnotation(JPA.COLUMN);
-		column.setScale(Integer.valueOf(66));
-		
-		assertEquals(Integer.valueOf(66), basicMapping.getColumn().getSpecifiedScale());
-		assertEquals(66, basicMapping.getColumn().getScale());
-		
-		column.setScale(null);
-		
-		assertNull(attributeResource.getSupportingAnnotation(JPA.COLUMN));
-		assertNull(basicMapping.getColumn().getSpecifiedScale());	
-	}	
-	
-	public void testSetSpecifiedScale() throws Exception {
-		createTestEntityWithBasicColumnColumnDefinitionSet();
-		addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
-
-		BasicMapping basicMapping = (BasicMapping) getJavaPersistentType().attributes().next().getMapping();
-		
-		assertNull(basicMapping.getColumn().getSpecifiedScale());
-		
-		basicMapping.getColumn().setSpecifiedScale(Integer.valueOf(100));
-		
-		JavaResourcePersistentType typeResource = getJpaProject().getJavaResourcePersistentType(FULLY_QUALIFIED_TYPE_NAME);
-		JavaResourcePersistentAttribute attributeResource = typeResource.persistableAttributes().next();
-		ColumnAnnotation column = (ColumnAnnotation) attributeResource.getSupportingAnnotation(JPA.COLUMN);
-		
-		assertEquals(Integer.valueOf(100), column.getScale());
-		
-		basicMapping.getColumn().setSpecifiedScale(null);
-		
-		assertNull(column.getScale());
-	}
-	
-	public void testGetUnique() throws Exception {
-		createTestEntity();
-		addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
-		BasicMapping basicMapping = (BasicMapping) getJavaPersistentType().attributes().next().getMapping();
-
-		assertEquals(BaseColumn.DEFAULT_UNIQUE, basicMapping.getColumn().isUnique());
-		basicMapping.getColumn().setSpecifiedUnique(Boolean.TRUE);
-		assertEquals(true, basicMapping.getColumn().isUnique());
-	}
-	
-	public void testGetDefaultUnique() throws Exception {
-		createTestEntityWithBasicColumnColumnDefinitionSet();
-		addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
-		
-		BasicMapping basicMapping = (BasicMapping) getJavaPersistentType().attributes().next().getMapping();
-
-		assertEquals(BaseColumn.DEFAULT_UNIQUE, basicMapping.getColumn().isDefaultUnique());
-		basicMapping.getColumn().setSpecifiedUnique(Boolean.TRUE);
-		
-		assertEquals(BaseColumn.DEFAULT_UNIQUE, basicMapping.getColumn().isDefaultUnique());
-	}	
-	
-	public void testGetSpecifiedUnique() throws Exception {
-		createTestEntity();
-		addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
-		
-		BasicMapping basicMapping = (BasicMapping) getJavaPersistentType().attributes().next().getMapping();
-		
-		assertNull(basicMapping.getColumn().getSpecifiedUnique());
-		
-		JavaResourcePersistentType typeResource = getJpaProject().getJavaResourcePersistentType(FULLY_QUALIFIED_TYPE_NAME);
-		JavaResourcePersistentAttribute attributeResource = typeResource.persistableAttributes().next();
-		ColumnAnnotation column = (ColumnAnnotation) attributeResource.addSupportingAnnotation(JPA.COLUMN);
-		column.setUnique(Boolean.TRUE);
-		
-		assertEquals(Boolean.TRUE, basicMapping.getColumn().getSpecifiedUnique());
-		assertEquals(true, basicMapping.getColumn().isUnique());
-		
-		column.setUnique(null);
-		
-		assertNull(attributeResource.getSupportingAnnotation(JPA.COLUMN));
-		assertNull(basicMapping.getColumn().getSpecifiedUnique());	
-	}	
-	
-	public void testSetSpecifiedUnique() throws Exception {
-		createTestEntityWithBasicColumnColumnDefinitionSet();
-		addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
-
-		BasicMapping basicMapping = (BasicMapping) getJavaPersistentType().attributes().next().getMapping();
-		
-		assertNull(basicMapping.getColumn().getSpecifiedUnique());
-		
-		basicMapping.getColumn().setSpecifiedUnique(Boolean.FALSE);
-		
-		JavaResourcePersistentType typeResource = getJpaProject().getJavaResourcePersistentType(FULLY_QUALIFIED_TYPE_NAME);
-		JavaResourcePersistentAttribute attributeResource = typeResource.persistableAttributes().next();
-		ColumnAnnotation column = (ColumnAnnotation) attributeResource.getSupportingAnnotation(JPA.COLUMN);
-		
-		assertEquals(Boolean.FALSE, column.getUnique());
-		
-		basicMapping.getColumn().setSpecifiedUnique(null);
-		
-		assertNull(column.getUnique());
-	}
-		
-	public void testGetInsertable() throws Exception {
-		createTestEntity();
-		addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
-		BasicMapping basicMapping = (BasicMapping) getJavaPersistentType().attributes().next().getMapping();
-
-		assertEquals(BaseColumn.DEFAULT_INSERTABLE, basicMapping.getColumn().isInsertable());
-		basicMapping.getColumn().setSpecifiedInsertable(Boolean.TRUE);
-		assertEquals(true, basicMapping.getColumn().isInsertable());
-	}
-	
-	public void testGetDefaultInsertable() throws Exception {
-		createTestEntityWithBasicColumnColumnDefinitionSet();
-		addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
-		
-		BasicMapping basicMapping = (BasicMapping) getJavaPersistentType().attributes().next().getMapping();
-
-		assertEquals(BaseColumn.DEFAULT_INSERTABLE, basicMapping.getColumn().isDefaultInsertable());
-		basicMapping.getColumn().setSpecifiedInsertable(Boolean.TRUE);
-		
-		assertEquals(BaseColumn.DEFAULT_INSERTABLE, basicMapping.getColumn().isDefaultInsertable());
-	}	
-	
-	public void testGetSpecifiedInsertable() throws Exception {
-		createTestEntity();
-		addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
-		
-		BasicMapping basicMapping = (BasicMapping) getJavaPersistentType().attributes().next().getMapping();
-		
-		assertNull(basicMapping.getColumn().getSpecifiedInsertable());
-		
-		JavaResourcePersistentType typeResource = getJpaProject().getJavaResourcePersistentType(FULLY_QUALIFIED_TYPE_NAME);
-		JavaResourcePersistentAttribute attributeResource = typeResource.persistableAttributes().next();
-		ColumnAnnotation column = (ColumnAnnotation) attributeResource.addSupportingAnnotation(JPA.COLUMN);
-		column.setInsertable(Boolean.TRUE);
-		
-		assertEquals(Boolean.TRUE, basicMapping.getColumn().getSpecifiedInsertable());
-		assertEquals(true, basicMapping.getColumn().isInsertable());
-		
-		column.setInsertable(null);
-		
-		assertNull(attributeResource.getSupportingAnnotation(JPA.COLUMN));
-		assertNull(basicMapping.getColumn().getSpecifiedInsertable());	
-	}	
-	
-	public void testSetSpecifiedInsertable() throws Exception {
-		createTestEntityWithBasicColumnColumnDefinitionSet();
-		addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
-
-		BasicMapping basicMapping = (BasicMapping) getJavaPersistentType().attributes().next().getMapping();
-		
-		assertNull(basicMapping.getColumn().getSpecifiedInsertable());
-		
-		basicMapping.getColumn().setSpecifiedInsertable(Boolean.FALSE);
-		
-		JavaResourcePersistentType typeResource = getJpaProject().getJavaResourcePersistentType(FULLY_QUALIFIED_TYPE_NAME);
-		JavaResourcePersistentAttribute attributeResource = typeResource.persistableAttributes().next();
-		ColumnAnnotation column = (ColumnAnnotation) attributeResource.getSupportingAnnotation(JPA.COLUMN);
-		
-		assertEquals(Boolean.FALSE, column.getInsertable());
-		
-		basicMapping.getColumn().setSpecifiedInsertable(null);
-		
-		assertNull(column.getInsertable());
-	}
-	
-	public void testGetNullable() throws Exception {
-		createTestEntity();
-		addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
-		BasicMapping basicMapping = (BasicMapping) getJavaPersistentType().attributes().next().getMapping();
-
-		assertEquals(BaseColumn.DEFAULT_NULLABLE, basicMapping.getColumn().isNullable());
-		basicMapping.getColumn().setSpecifiedNullable(Boolean.TRUE);
-		assertEquals(true, basicMapping.getColumn().isNullable());
-	}
-	
-	public void testGetDefaultNullable() throws Exception {
-		createTestEntityWithBasicColumnColumnDefinitionSet();
-		addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
-		
-		BasicMapping basicMapping = (BasicMapping) getJavaPersistentType().attributes().next().getMapping();
-
-		assertEquals(BaseColumn.DEFAULT_NULLABLE, basicMapping.getColumn().isDefaultNullable());
-		basicMapping.getColumn().setSpecifiedNullable(Boolean.TRUE);
-		
-		assertEquals(BaseColumn.DEFAULT_NULLABLE, basicMapping.getColumn().isDefaultNullable());
-	}	
-	
-	public void testGetSpecifiedNullable() throws Exception {
-		createTestEntity();
-		addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
-		
-		BasicMapping basicMapping = (BasicMapping) getJavaPersistentType().attributes().next().getMapping();
-		
-		assertNull(basicMapping.getColumn().getSpecifiedNullable());
-		
-		JavaResourcePersistentType typeResource = getJpaProject().getJavaResourcePersistentType(FULLY_QUALIFIED_TYPE_NAME);
-		JavaResourcePersistentAttribute attributeResource = typeResource.persistableAttributes().next();
-		ColumnAnnotation column = (ColumnAnnotation) attributeResource.addSupportingAnnotation(JPA.COLUMN);
-		column.setNullable(Boolean.TRUE);
-		
-		assertEquals(Boolean.TRUE, basicMapping.getColumn().getSpecifiedNullable());
-		assertEquals(true, basicMapping.getColumn().isNullable());
-		
-		column.setNullable(null);
-		
-		assertNull(attributeResource.getSupportingAnnotation(JPA.COLUMN));
-		assertNull(basicMapping.getColumn().getSpecifiedNullable());	
-	}	
-	
-	public void testSetSpecifiedNullable() throws Exception {
-		createTestEntityWithBasicColumnColumnDefinitionSet();
-		addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
-
-		BasicMapping basicMapping = (BasicMapping) getJavaPersistentType().attributes().next().getMapping();
-		
-		assertNull(basicMapping.getColumn().getSpecifiedNullable());
-		
-		basicMapping.getColumn().setSpecifiedNullable(Boolean.FALSE);
-		
-		JavaResourcePersistentType typeResource = getJpaProject().getJavaResourcePersistentType(FULLY_QUALIFIED_TYPE_NAME);
-		JavaResourcePersistentAttribute attributeResource = typeResource.persistableAttributes().next();
-		ColumnAnnotation column = (ColumnAnnotation) attributeResource.getSupportingAnnotation(JPA.COLUMN);
-		
-		assertEquals(Boolean.FALSE, column.getNullable());
-		
-		basicMapping.getColumn().setSpecifiedNullable(null);
-		
-		assertNull(column.getNullable());
-	}
-	
-	public void testGetUpdatable() throws Exception {
-		createTestEntity();
-		addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
-		BasicMapping basicMapping = (BasicMapping) getJavaPersistentType().attributes().next().getMapping();
-
-		assertEquals(BaseColumn.DEFAULT_UPDATABLE, basicMapping.getColumn().isUpdatable());
-		basicMapping.getColumn().setSpecifiedUpdatable(Boolean.TRUE);
-		assertEquals(true, basicMapping.getColumn().isUpdatable());
-	}
-	
-	public void testGetDefaultUpdatable() throws Exception {
-		createTestEntityWithBasicColumnColumnDefinitionSet();
-		addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
-		
-		BasicMapping basicMapping = (BasicMapping) getJavaPersistentType().attributes().next().getMapping();
-
-		assertEquals(BaseColumn.DEFAULT_UPDATABLE, basicMapping.getColumn().isDefaultUpdatable());
-		basicMapping.getColumn().setSpecifiedUpdatable(Boolean.TRUE);
-		
-		assertEquals(BaseColumn.DEFAULT_UPDATABLE, basicMapping.getColumn().isDefaultUpdatable());
-	}	
-	
-	public void testGetSpecifiedUpdatable() throws Exception {
-		createTestEntity();
-		addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
-		
-		BasicMapping basicMapping = (BasicMapping) getJavaPersistentType().attributes().next().getMapping();
-		
-		assertNull(basicMapping.getColumn().getSpecifiedUpdatable());
-		
-		JavaResourcePersistentType typeResource = getJpaProject().getJavaResourcePersistentType(FULLY_QUALIFIED_TYPE_NAME);
-		JavaResourcePersistentAttribute attributeResource = typeResource.persistableAttributes().next();
-		ColumnAnnotation column = (ColumnAnnotation) attributeResource.addSupportingAnnotation(JPA.COLUMN);
-		column.setUpdatable(Boolean.TRUE);
-		
-		assertEquals(Boolean.TRUE, basicMapping.getColumn().getSpecifiedUpdatable());
-		assertEquals(true, basicMapping.getColumn().isUpdatable());
-		
-		column.setUpdatable(null);
-		
-		assertNull(attributeResource.getSupportingAnnotation(JPA.COLUMN));
-		assertNull(basicMapping.getColumn().getSpecifiedUpdatable());	
-	}	
-	
-	public void testSetSpecifiedUpdatable() throws Exception {
-		createTestEntityWithBasicColumnColumnDefinitionSet();
-		addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
-
-		BasicMapping basicMapping = (BasicMapping) getJavaPersistentType().attributes().next().getMapping();
-		
-		assertNull(basicMapping.getColumn().getSpecifiedUpdatable());
-		
-		basicMapping.getColumn().setSpecifiedUpdatable(Boolean.FALSE);
-		
-		JavaResourcePersistentType typeResource = getJpaProject().getJavaResourcePersistentType(FULLY_QUALIFIED_TYPE_NAME);
-		JavaResourcePersistentAttribute attributeResource = typeResource.persistableAttributes().next();
-		ColumnAnnotation column = (ColumnAnnotation) attributeResource.getSupportingAnnotation(JPA.COLUMN);
-		
-		assertEquals(Boolean.FALSE, column.getUpdatable());
-		
-		basicMapping.getColumn().setSpecifiedUpdatable(null);
-		
-		assertNull(column.getUpdatable());
-	}
-}
diff --git a/jpa/tests/org.eclipse.jpt.core.tests/src/org/eclipse/jpt/core/tests/internal/context/java/JavaDiscriminatorColumnTests.java b/jpa/tests/org.eclipse.jpt.core.tests/src/org/eclipse/jpt/core/tests/internal/context/java/JavaDiscriminatorColumnTests.java
deleted file mode 100644
index 9abd19c..0000000
--- a/jpa/tests/org.eclipse.jpt.core.tests/src/org/eclipse/jpt/core/tests/internal/context/java/JavaDiscriminatorColumnTests.java
+++ /dev/null
@@ -1,450 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2008 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.core.tests.internal.context.java;
-
-import java.util.Iterator;
-import java.util.ListIterator;
-import org.eclipse.jdt.core.ICompilationUnit;
-import org.eclipse.jpt.core.context.DiscriminatorColumn;
-import org.eclipse.jpt.core.context.DiscriminatorType;
-import org.eclipse.jpt.core.context.InheritanceType;
-import org.eclipse.jpt.core.context.java.JavaEntity;
-import org.eclipse.jpt.core.context.persistence.ClassRef;
-import org.eclipse.jpt.core.resource.java.DiscriminatorColumnAnnotation;
-import org.eclipse.jpt.core.resource.java.JPA;
-import org.eclipse.jpt.core.resource.java.JavaResourcePersistentType;
-import org.eclipse.jpt.core.tests.internal.context.ContextModelTestCase;
-import org.eclipse.jpt.core.tests.internal.projects.TestJavaProject.SourceWriter;
-import org.eclipse.jpt.utility.internal.iterators.ArrayIterator;
-
-@SuppressWarnings("nls")
-public class JavaDiscriminatorColumnTests extends ContextModelTestCase
-{
-	private static final String DISCRIMINATOR_COLUMN_NAME = "MY_DISCRIMINATOR_COLUMN";
-	private static final String COLUMN_DEFINITION = "MY_COLUMN_DEFINITION";
-	
-
-	private ICompilationUnit createTestEntity() throws Exception {
-		return this.createTestType(new DefaultAnnotationWriter() {
-			@Override
-			public Iterator<String> imports() {
-				return new ArrayIterator<String>(JPA.ENTITY);
-			}
-			@Override
-			public void appendTypeAnnotationTo(StringBuilder sb) {
-				sb.append("@Entity");
-			}
-		});
-	}
-
-	private ICompilationUnit createTestEntityWithDiscriminatorColumn() throws Exception {
-		return this.createTestType(new DefaultAnnotationWriter() {
-			@Override
-			public Iterator<String> imports() {
-				return new ArrayIterator<String>(JPA.ENTITY, JPA.DISCRIMINATOR_COLUMN);
-			}
-			@Override
-			public void appendTypeAnnotationTo(StringBuilder sb) {
-				sb.append("@Entity").append(CR);
-				sb.append("@DiscriminatorColumn(name=\"" + DISCRIMINATOR_COLUMN_NAME + "\")");
-			}
-		});
-	}
-	
-	private void createTestAbstractEntity() throws Exception {
-		SourceWriter sourceWriter = new SourceWriter() {
-			public void appendSourceTo(StringBuilder sb) {
-				sb.append(CR);
-					sb.append("import ");
-					sb.append(JPA.ENTITY);
-					sb.append(";");
-					sb.append(CR);
-				sb.append("@Entity");
-				sb.append(CR);
-				sb.append("public abstract class ").append(TYPE_NAME).append(" ");
-				sb.append("{}").append(CR);
-			}
-		};
-		this.javaProject.createCompilationUnit(PACKAGE_NAME, FILE_NAME, sourceWriter);
-	}
-	
-	private void createTestSubType() throws Exception {
-		SourceWriter sourceWriter = new SourceWriter() {
-			public void appendSourceTo(StringBuilder sb) {
-				sb.append(CR);
-					sb.append("import ");
-					sb.append(JPA.ENTITY);
-					sb.append(";");
-					sb.append(CR);
-				sb.append("@Entity");
-				sb.append(CR);
-				sb.append("public class ").append("AnnotationTestTypeChild").append(" ");
-				sb.append("extends " + TYPE_NAME + " ");
-				sb.append("{}").append(CR);
-			}
-		};
-		this.javaProject.createCompilationUnit(PACKAGE_NAME, "AnnotationTestTypeChild.java", sourceWriter);
-	}
-
-		
-	public JavaDiscriminatorColumnTests(String name) {
-		super(name);
-	}
-		
-	public void testGetSpecifiedNameNull() throws Exception {
-		createTestEntity();
-		addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
-
-		assertNull(getJavaEntity().getDiscriminatorColumn().getSpecifiedName());
-	}
-
-	public void testGetSpecifiedName() throws Exception {
-		createTestEntityWithDiscriminatorColumn();
-		addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
-
-		assertEquals(DISCRIMINATOR_COLUMN_NAME, getJavaEntity().getDiscriminatorColumn().getSpecifiedName());
-	}
-	
-	public void testGetDefaultNameSpecifiedNameNull() throws Exception {
-		createTestEntity();
-		addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
-		
-		assertEquals(null, getJavaEntity().getDiscriminatorColumn().getDefaultName());
-
-		createTestSubType();
-		addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
-		assertEquals("DTYPE", getJavaEntity().getDiscriminatorColumn().getDefaultName());
-	}
-
-	public void testGetDefaultName() throws Exception {
-		createTestEntityWithDiscriminatorColumn();
-		addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
-		
-		assertEquals(null, getJavaEntity().getDiscriminatorColumn().getDefaultName());
-
-		createTestSubType();
-		addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
-		assertEquals("DTYPE", getJavaEntity().getDiscriminatorColumn().getDefaultName());
-		
-		getJavaEntity().getDiscriminatorColumn().setSpecifiedName("foo");
-		assertEquals("DTYPE", getJavaEntity().getDiscriminatorColumn().getDefaultName());
-	}
-	
-	public void testGetNameSpecifiedNameNull() throws Exception {
-		createTestEntity();
-		addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
-		
-		assertEquals(null, getJavaEntity().getDiscriminatorColumn().getName());
-		
-		createTestSubType();
-		addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
-		assertEquals("DTYPE", getJavaEntity().getDiscriminatorColumn().getName());
-	}
-	
-	public void testGetName() throws Exception {
-		createTestEntityWithDiscriminatorColumn();
-		addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
-		
-		assertEquals(DISCRIMINATOR_COLUMN_NAME, getJavaEntity().getDiscriminatorColumn().getName());
-	}
-
-	public void testSetSpecifiedName() throws Exception {
-		createTestEntity();
-		addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
-
-		getJavaEntity().getDiscriminatorColumn().setSpecifiedName("foo");
-		
-		assertEquals("foo", getJavaEntity().getDiscriminatorColumn().getSpecifiedName());
-		
-		JavaResourcePersistentType typeResource = getJpaProject().getJavaResourcePersistentType(FULLY_QUALIFIED_TYPE_NAME);
-		DiscriminatorColumnAnnotation discriminatorColumn = (DiscriminatorColumnAnnotation) typeResource.getSupportingAnnotation(JPA.DISCRIMINATOR_COLUMN);
-		
-		assertEquals("foo", discriminatorColumn.getName());
-	}
-	
-	public void testSetSpecifiedNameNull() throws Exception {
-		createTestEntityWithDiscriminatorColumn();
-		addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
-
-		getJavaEntity().getDiscriminatorColumn().setSpecifiedName(null);
-		
-		assertNull(getJavaEntity().getDiscriminatorColumn().getSpecifiedName());
-		
-		JavaResourcePersistentType typeResource = getJpaProject().getJavaResourcePersistentType(FULLY_QUALIFIED_TYPE_NAME);
-		DiscriminatorColumnAnnotation discriminatorColumn = (DiscriminatorColumnAnnotation) typeResource.getSupportingAnnotation(JPA.DISCRIMINATOR_COLUMN);
-	
-		assertNull(discriminatorColumn);
-	}
-	
-	public void testGetDefaultDiscriminatorType() throws Exception {
-		createTestEntityWithDiscriminatorColumn();
-		addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
-		
-		assertEquals(null, getJavaEntity().getDiscriminatorColumn().getDefaultDiscriminatorType());
-
-		createTestSubType();
-		addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
-		assertEquals(DiscriminatorType.STRING, getJavaEntity().getDiscriminatorColumn().getDefaultDiscriminatorType());
-	}
-	
-	public void testGetDiscriminatorType() throws Exception {
-		createTestEntityWithDiscriminatorColumn();
-		addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
-		
-		assertEquals(null, getJavaEntity().getDiscriminatorColumn().getDiscriminatorType());
-
-		createTestSubType();
-		addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
-		
-		assertEquals(DiscriminatorType.STRING, getJavaEntity().getDiscriminatorColumn().getDiscriminatorType());
-
-		getJavaEntity().getDiscriminatorColumn().setSpecifiedDiscriminatorType(DiscriminatorType.CHAR);
-		assertEquals(DiscriminatorType.CHAR, getJavaEntity().getDiscriminatorColumn().getDiscriminatorType());
-	}
-	
-	public void testGetSpecifiedDiscriminatorType() throws Exception {
-		createTestEntityWithDiscriminatorColumn();
-		addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
-		
-		assertNull(getJavaEntity().getDiscriminatorColumn().getSpecifiedDiscriminatorType());
-		
-		
-		JavaResourcePersistentType typeResource = getJpaProject().getJavaResourcePersistentType(FULLY_QUALIFIED_TYPE_NAME);
-		DiscriminatorColumnAnnotation discriminatorColumn = (DiscriminatorColumnAnnotation) typeResource.getSupportingAnnotation(JPA.DISCRIMINATOR_COLUMN);
-		discriminatorColumn.setDiscriminatorType(org.eclipse.jpt.core.resource.java.DiscriminatorType.CHAR);
-		
-		assertEquals(DiscriminatorType.CHAR, getJavaEntity().getDiscriminatorColumn().getSpecifiedDiscriminatorType());
-	}
-	
-	public void testSetSpecifiedDiscriminatorType() throws Exception {
-		createTestEntityWithDiscriminatorColumn();
-		addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
-		
-		assertNull(getJavaEntity().getDiscriminatorColumn().getSpecifiedDiscriminatorType());
-		
-		getJavaEntity().getDiscriminatorColumn().setSpecifiedDiscriminatorType(DiscriminatorType.CHAR);
-		
-		JavaResourcePersistentType typeResource = getJpaProject().getJavaResourcePersistentType(FULLY_QUALIFIED_TYPE_NAME);
-		DiscriminatorColumnAnnotation discriminatorColumn = (DiscriminatorColumnAnnotation) typeResource.getSupportingAnnotation(JPA.DISCRIMINATOR_COLUMN);
-		
-		assertEquals(org.eclipse.jpt.core.resource.java.DiscriminatorType.CHAR, discriminatorColumn.getDiscriminatorType());
-		
-		getJavaEntity().getDiscriminatorColumn().setSpecifiedName(null);
-		getJavaEntity().getDiscriminatorColumn().setSpecifiedDiscriminatorType(null);
-		assertNull(typeResource.getSupportingAnnotation(JPA.DISCRIMINATOR_COLUMN));
-	}
-	
-	public void testGetDiscriminatorTypeUpdatesFromResourceChange() throws Exception {
-		createTestEntity();
-		addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
-
-		assertNull(getJavaEntity().getDiscriminatorColumn().getSpecifiedDiscriminatorType());
-		
-		JavaResourcePersistentType typeResource = getJpaProject().getJavaResourcePersistentType(FULLY_QUALIFIED_TYPE_NAME);
-		DiscriminatorColumnAnnotation column = (DiscriminatorColumnAnnotation) typeResource.addSupportingAnnotation(JPA.DISCRIMINATOR_COLUMN);
-
-		column.setDiscriminatorType(org.eclipse.jpt.core.resource.java.DiscriminatorType.INTEGER);
-		assertEquals(DiscriminatorType.INTEGER, getJavaEntity().getDiscriminatorColumn().getSpecifiedDiscriminatorType());
-		assertEquals(DiscriminatorType.INTEGER, getJavaEntity().getDiscriminatorColumn().getDiscriminatorType());
-		
-		column.setDiscriminatorType(null);
-		assertNull(getJavaEntity().getDiscriminatorColumn().getSpecifiedDiscriminatorType());
-		assertEquals(null, getJavaEntity().getDiscriminatorColumn().getDiscriminatorType());
-
-		createTestSubType();
-		addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);		
-		assertEquals(DiscriminatorColumn.DEFAULT_DISCRIMINATOR_TYPE, getJavaEntity().getDiscriminatorColumn().getDiscriminatorType());
-	}
-
-	public void testGetLength() throws Exception {
-		createTestEntity();
-		addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
-		
-		assertEquals(0, getJavaEntity().getDiscriminatorColumn().getLength());
-		
-		createTestSubType();
-		addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
-		
-		assertEquals(DiscriminatorColumn.DEFAULT_LENGTH, getJavaEntity().getDiscriminatorColumn().getLength());
-		getJavaEntity().getDiscriminatorColumn().setSpecifiedLength(Integer.valueOf(55));
-		assertEquals(55, getJavaEntity().getDiscriminatorColumn().getLength());
-	}
-	
-	public void testGetDefaultLength() throws Exception {
-		createTestEntityWithDiscriminatorColumn();
-		addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
-
-		assertEquals(0, getJavaEntity().getDiscriminatorColumn().getDefaultLength());
-
-		createTestSubType();
-		addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
-		assertEquals(DiscriminatorColumn.DEFAULT_LENGTH, getJavaEntity().getDiscriminatorColumn().getDefaultLength());
-
-		getJavaEntity().getDiscriminatorColumn().setSpecifiedLength(Integer.valueOf(55));
-		
-		assertEquals(DiscriminatorColumn.DEFAULT_LENGTH, getJavaEntity().getDiscriminatorColumn().getDefaultLength());
-	}	
-	
-	public void testGetSpecifiedLength() throws Exception {
-		createTestEntityWithDiscriminatorColumn();
-		addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
-
-		assertNull(getJavaEntity().getDiscriminatorColumn().getSpecifiedLength());
-		
-		JavaResourcePersistentType typeResource = getJpaProject().getJavaResourcePersistentType(FULLY_QUALIFIED_TYPE_NAME);
-		DiscriminatorColumnAnnotation discriminatorColumn = (DiscriminatorColumnAnnotation) typeResource.getSupportingAnnotation(JPA.DISCRIMINATOR_COLUMN);
-		discriminatorColumn.setLength(Integer.valueOf(66));
-		
-		assertEquals(Integer.valueOf(66), getJavaEntity().getDiscriminatorColumn().getSpecifiedLength());
-		assertEquals(66, getJavaEntity().getDiscriminatorColumn().getLength());		
-		discriminatorColumn.setName(null);
-		discriminatorColumn.setLength(null);
-		
-		assertNull(typeResource.getSupportingAnnotation(JPA.DISCRIMINATOR_COLUMN));
-		assertNull(getJavaEntity().getDiscriminatorColumn().getSpecifiedLength());	
-	}	
-	
-	public void testSetSpecifiedLength() throws Exception {
-		createTestEntityWithDiscriminatorColumn();
-		addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
-
-		assertNull(getJavaEntity().getDiscriminatorColumn().getSpecifiedLength());
-		
-		getJavaEntity().getDiscriminatorColumn().setSpecifiedLength(Integer.valueOf(100));
-		
-		JavaResourcePersistentType typeResource = getJpaProject().getJavaResourcePersistentType(FULLY_QUALIFIED_TYPE_NAME);
-		DiscriminatorColumnAnnotation discriminatorColumn = (DiscriminatorColumnAnnotation) typeResource.getSupportingAnnotation(JPA.DISCRIMINATOR_COLUMN);
-		
-		assertEquals(Integer.valueOf(100), discriminatorColumn.getLength());
-		
-		getJavaEntity().getDiscriminatorColumn().setSpecifiedName(null);
-		getJavaEntity().getDiscriminatorColumn().setSpecifiedLength(null);
-		assertNull(typeResource.getSupportingAnnotation(JPA.DISCRIMINATOR_COLUMN));
-	}
-	
-	public void testGetLengthUpdatesFromResourceChange() throws Exception {
-		createTestEntity();
-		addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
-
-		assertNull(getJavaEntity().getDiscriminatorColumn().getSpecifiedLength());
-		
-		JavaResourcePersistentType typeResource = getJpaProject().getJavaResourcePersistentType(FULLY_QUALIFIED_TYPE_NAME);
-		DiscriminatorColumnAnnotation column = (DiscriminatorColumnAnnotation) typeResource.addSupportingAnnotation(JPA.DISCRIMINATOR_COLUMN);
-
-		column.setLength(Integer.valueOf(78));
-		assertEquals(Integer.valueOf(78), getJavaEntity().getDiscriminatorColumn().getSpecifiedLength());
-		assertEquals(78, getJavaEntity().getDiscriminatorColumn().getLength());
-		
-		column.setLength(null);
-		assertNull(getJavaEntity().getDiscriminatorColumn().getSpecifiedLength());
-		assertEquals(0, getJavaEntity().getDiscriminatorColumn().getLength());
-
-		createTestSubType();
-		addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
-		assertEquals(DiscriminatorColumn.DEFAULT_LENGTH, getJavaEntity().getDiscriminatorColumn().getLength());
-	}
-
-	
-	public void testGetColumnDefinition() throws Exception {
-		createTestEntityWithDiscriminatorColumn();
-		addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
-		
-		assertNull(getJavaEntity().getDiscriminatorColumn().getColumnDefinition());
-
-		JavaResourcePersistentType typeResource = getJpaProject().getJavaResourcePersistentType(FULLY_QUALIFIED_TYPE_NAME);
-		DiscriminatorColumnAnnotation column = (DiscriminatorColumnAnnotation) typeResource.getSupportingAnnotation(JPA.DISCRIMINATOR_COLUMN);
-		column.setColumnDefinition(COLUMN_DEFINITION);
-		
-		assertEquals(COLUMN_DEFINITION, getJavaEntity().getDiscriminatorColumn().getColumnDefinition());
-		
-		column.setColumnDefinition(null);
-		
-		assertNull(getJavaEntity().getDiscriminatorColumn().getColumnDefinition());
-
-		typeResource.removeSupportingAnnotation(JPA.DISCRIMINATOR_COLUMN);
-	}
-	
-	public void testSetColumnDefinition() throws Exception {
-		createTestEntityWithDiscriminatorColumn();
-		addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
-		
-		getJavaEntity().getDiscriminatorColumn().setColumnDefinition("foo");
-		
-		JavaResourcePersistentType typeResource = getJpaProject().getJavaResourcePersistentType(FULLY_QUALIFIED_TYPE_NAME);
-		DiscriminatorColumnAnnotation column = (DiscriminatorColumnAnnotation) typeResource.getSupportingAnnotation(JPA.DISCRIMINATOR_COLUMN);
-		
-		assertEquals("foo", column.getColumnDefinition());
-		
-		getJavaEntity().getDiscriminatorColumn().setColumnDefinition(null);
-		column = (DiscriminatorColumnAnnotation) typeResource.getSupportingAnnotation(JPA.DISCRIMINATOR_COLUMN);
-		assertNull(column.getColumnDefinition());
-	}
-
-	public void testDefaults() throws Exception {
-		createTestAbstractEntity();
-		createTestSubType();
-		addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
-		addXmlClassRef(PACKAGE_NAME + "." + "AnnotationTestTypeChild");
-
-		ListIterator<ClassRef> classRefs = getPersistenceUnit().specifiedClassRefs();
-		JavaEntity abstractEntity = (JavaEntity) classRefs.next().getJavaPersistentType().getMapping();
-		JavaEntity childEntity = (JavaEntity) classRefs.next().getJavaPersistentType().getMapping();
-
-		//test defaults with single-table inheritance, no specified discriminator column set
-		assertEquals(InheritanceType.SINGLE_TABLE, abstractEntity.getDefaultInheritanceStrategy());
-		assertEquals(DiscriminatorColumn.DEFAULT_NAME, abstractEntity.getDiscriminatorColumn().getDefaultName());
-		assertEquals(DiscriminatorColumn.DEFAULT_LENGTH, abstractEntity.getDiscriminatorColumn().getDefaultLength());
-		assertEquals(DiscriminatorColumn.DEFAULT_DISCRIMINATOR_TYPE, abstractEntity.getDiscriminatorColumn().getDefaultDiscriminatorType());
-		
-		assertEquals(InheritanceType.SINGLE_TABLE, childEntity.getDefaultInheritanceStrategy());
-		assertEquals(DiscriminatorColumn.DEFAULT_NAME, childEntity.getDiscriminatorColumn().getDefaultName());
-		assertEquals(DiscriminatorColumn.DEFAULT_LENGTH, childEntity.getDiscriminatorColumn().getDefaultLength());
-		assertEquals(DiscriminatorColumn.DEFAULT_DISCRIMINATOR_TYPE, childEntity.getDiscriminatorColumn().getDefaultDiscriminatorType());
-
-		
-		//test defaults with single-table inheritance, specified discriminator column set on root
-		abstractEntity.getDiscriminatorColumn().setSpecifiedName("DTYPE2");
-		abstractEntity.getDiscriminatorColumn().setSpecifiedLength(Integer.valueOf(5));
-		abstractEntity.getDiscriminatorColumn().setSpecifiedDiscriminatorType(DiscriminatorType.CHAR);
-		
-		assertEquals(InheritanceType.SINGLE_TABLE, abstractEntity.getDefaultInheritanceStrategy());
-		assertEquals(DiscriminatorColumn.DEFAULT_NAME, abstractEntity.getDiscriminatorColumn().getDefaultName());
-		assertEquals(DiscriminatorColumn.DEFAULT_LENGTH, abstractEntity.getDiscriminatorColumn().getDefaultLength());
-		assertEquals(DiscriminatorColumn.DEFAULT_DISCRIMINATOR_TYPE, abstractEntity.getDiscriminatorColumn().getDefaultDiscriminatorType());
-		assertEquals("DTYPE2", abstractEntity.getDiscriminatorColumn().getSpecifiedName());
-		assertEquals(Integer.valueOf(5), abstractEntity.getDiscriminatorColumn().getSpecifiedLength());
-		assertEquals(DiscriminatorType.CHAR, abstractEntity.getDiscriminatorColumn().getSpecifiedDiscriminatorType());
-		
-		assertEquals(InheritanceType.SINGLE_TABLE, childEntity.getDefaultInheritanceStrategy());
-		assertEquals("DTYPE2", childEntity.getDiscriminatorColumn().getDefaultName());
-		assertEquals(5, childEntity.getDiscriminatorColumn().getDefaultLength());
-		assertEquals(DiscriminatorType.CHAR, childEntity.getDiscriminatorColumn().getDefaultDiscriminatorType());
-		assertEquals(null, childEntity.getDiscriminatorColumn().getSpecifiedName());
-		assertEquals(null, childEntity.getDiscriminatorColumn().getSpecifiedLength());
-		assertEquals(null, childEntity.getDiscriminatorColumn().getSpecifiedDiscriminatorType());
-		
-		
-		//test defaults with table-per-class inheritance, discriminator column does not apply
-		abstractEntity.getDiscriminatorColumn().setSpecifiedName(null);
-		abstractEntity.getDiscriminatorColumn().setSpecifiedLength(null);
-		abstractEntity.getDiscriminatorColumn().setSpecifiedDiscriminatorType(null);
-		abstractEntity.setSpecifiedInheritanceStrategy(InheritanceType.TABLE_PER_CLASS);
-		
-		assertEquals(InheritanceType.TABLE_PER_CLASS, abstractEntity.getInheritanceStrategy());
-		assertEquals(null, abstractEntity.getDiscriminatorColumn().getDefaultName());
-		assertEquals(0, abstractEntity.getDiscriminatorColumn().getDefaultLength());
-		assertEquals(null, abstractEntity.getDiscriminatorColumn().getDefaultDiscriminatorType());
-		
-		assertEquals(InheritanceType.TABLE_PER_CLASS, childEntity.getDefaultInheritanceStrategy());
-		assertEquals(null, childEntity.getDiscriminatorColumn().getDefaultName());
-		assertEquals(0, childEntity.getDiscriminatorColumn().getDefaultLength());
-		assertEquals(null, childEntity.getDiscriminatorColumn().getDefaultDiscriminatorType());
-	}
-}
diff --git a/jpa/tests/org.eclipse.jpt.core.tests/src/org/eclipse/jpt/core/tests/internal/context/java/JavaEmbeddableTests.java b/jpa/tests/org.eclipse.jpt.core.tests/src/org/eclipse/jpt/core/tests/internal/context/java/JavaEmbeddableTests.java
deleted file mode 100644
index 176178b..0000000
--- a/jpa/tests/org.eclipse.jpt.core.tests/src/org/eclipse/jpt/core/tests/internal/context/java/JavaEmbeddableTests.java
+++ /dev/null
@@ -1,177 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2008 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.core.tests.internal.context.java;
-
-import java.util.Iterator;
-import org.eclipse.jdt.core.ICompilationUnit;
-import org.eclipse.jpt.core.MappingKeys;
-import org.eclipse.jpt.core.context.Embeddable;
-import org.eclipse.jpt.core.context.Entity;
-import org.eclipse.jpt.core.context.MappedSuperclass;
-import org.eclipse.jpt.core.internal.context.java.JavaNullTypeMapping;
-import org.eclipse.jpt.core.resource.java.EmbeddableAnnotation;
-import org.eclipse.jpt.core.resource.java.JPA;
-import org.eclipse.jpt.core.resource.java.JavaResourcePersistentType;
-import org.eclipse.jpt.core.tests.internal.context.ContextModelTestCase;
-import org.eclipse.jpt.utility.internal.iterators.ArrayIterator;
-
-public class JavaEmbeddableTests extends ContextModelTestCase
-{
-	
-	private ICompilationUnit createTestEmbeddable() throws Exception {
-		return this.createTestType(new DefaultAnnotationWriter() {
-			@Override
-			public Iterator<String> imports() {
-				return new ArrayIterator<String>(JPA.EMBEDDABLE);
-			}
-			@Override
-			public void appendTypeAnnotationTo(StringBuilder sb) {
-				sb.append("@Embeddable");
-			}
-		});
-	}
-
-
-	public JavaEmbeddableTests(String name) {
-		super(name);
-	}
-	
-	public void testMorphToEntity() throws Exception {
-		createTestEmbeddable();
-		addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
-				
-		getJavaPersistentType().setMappingKey(MappingKeys.ENTITY_TYPE_MAPPING_KEY);
-		assertTrue(getJavaPersistentType().getMapping() instanceof Entity);
-		
-		JavaResourcePersistentType typeResource = getJpaProject().getJavaResourcePersistentType(FULLY_QUALIFIED_TYPE_NAME);
-		assertNull(typeResource.getMappingAnnotation(EmbeddableAnnotation.ANNOTATION_NAME));
-	}
-
-	public void testMorphToMappedSuperclass() throws Exception {
-		createTestEmbeddable();
-		addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
-				
-		getJavaPersistentType().setMappingKey(MappingKeys.MAPPED_SUPERCLASS_TYPE_MAPPING_KEY);
-		assertTrue(getJavaPersistentType().getMapping() instanceof MappedSuperclass);
-		
-		JavaResourcePersistentType typeResource = getJpaProject().getJavaResourcePersistentType(FULLY_QUALIFIED_TYPE_NAME);
-		assertNull(typeResource.getMappingAnnotation(EmbeddableAnnotation.ANNOTATION_NAME));
-	}
-	
-	public void testMorphToNull() throws Exception {
-		createTestEmbeddable();
-		addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
-		
-		getJavaPersistentType().setMappingKey(MappingKeys.NULL_TYPE_MAPPING_KEY);
-		assertTrue(getJavaPersistentType().getMapping() instanceof JavaNullTypeMapping);
-		
-		JavaResourcePersistentType typeResource = getJpaProject().getJavaResourcePersistentType(FULLY_QUALIFIED_TYPE_NAME);
-		assertNull(typeResource.getMappingAnnotation(EmbeddableAnnotation.ANNOTATION_NAME));
-	}
-	
-	public void testEmbeddable() throws Exception {
-		createTestEmbeddable();
-		addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
-		assertTrue(getJavaPersistentType().getMapping() instanceof Embeddable);
-	}
-	
-	public void testOverridableAttributeNames() throws Exception {
-		createTestEmbeddable();
-		addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
-	
-		Embeddable embeddable = (Embeddable) getJavaPersistentType().getMapping();
-		Iterator<String> overridableAttributeNames = embeddable.overridableAttributeNames();
-		assertFalse(overridableAttributeNames.hasNext());
-	}
-	
-	public void testOverridableAssociationNames() throws Exception {
-		createTestEmbeddable();
-		addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
-
-		Embeddable embeddable = (Embeddable) getJavaPersistentType().getMapping();
-		Iterator<String> overridableAssociationNames = embeddable.overridableAssociationNames();
-		assertFalse(overridableAssociationNames.hasNext());
-	}
-	
-	public void testTableNameIsInvalid() throws Exception {
-		createTestEmbeddable();
-		addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
-
-		Embeddable embeddable = (Embeddable) getJavaPersistentType().getMapping();
-
-		assertFalse(embeddable.tableNameIsInvalid(FULLY_QUALIFIED_TYPE_NAME));
-		assertFalse(embeddable.tableNameIsInvalid("FOO"));
-	}
-	
-	public void testAttributeMappingKeyAllowed() throws Exception {
-		createTestEmbeddable();
-		addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
-
-		Embeddable embeddable = (Embeddable) getJavaPersistentType().getMapping();
-		assertTrue(embeddable.attributeMappingKeyAllowed(MappingKeys.BASIC_ATTRIBUTE_MAPPING_KEY));
-		assertTrue(embeddable.attributeMappingKeyAllowed(MappingKeys.TRANSIENT_ATTRIBUTE_MAPPING_KEY));
-		assertFalse(embeddable.attributeMappingKeyAllowed(MappingKeys.ID_ATTRIBUTE_MAPPING_KEY));
-		assertFalse(embeddable.attributeMappingKeyAllowed(MappingKeys.EMBEDDED_ATTRIBUTE_MAPPING_KEY));
-		assertFalse(embeddable.attributeMappingKeyAllowed(MappingKeys.EMBEDDED_ID_ATTRIBUTE_MAPPING_KEY));
-		assertFalse(embeddable.attributeMappingKeyAllowed(MappingKeys.VERSION_ATTRIBUTE_MAPPING_KEY));
-		assertFalse(embeddable.attributeMappingKeyAllowed(MappingKeys.ONE_TO_ONE_ATTRIBUTE_MAPPING_KEY));
-		assertFalse(embeddable.attributeMappingKeyAllowed(MappingKeys.MANY_TO_ONE_ATTRIBUTE_MAPPING_KEY));
-		assertFalse(embeddable.attributeMappingKeyAllowed(MappingKeys.ONE_TO_MANY_ATTRIBUTE_MAPPING_KEY));
-		assertFalse(embeddable.attributeMappingKeyAllowed(MappingKeys.MANY_TO_MANY_ATTRIBUTE_MAPPING_KEY));
-	}
-
-
-	public void testAssociatedTables() throws Exception {
-		createTestEmbeddable();
-		addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
-
-		Embeddable embeddable = (Embeddable) getJavaPersistentType().getMapping();
-
-		assertFalse(embeddable.associatedTables().hasNext());
-	}
-
-	public void testAssociatedTablesIncludingInherited() throws Exception {
-		createTestEmbeddable();
-		addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
-
-		Embeddable embeddable = (Embeddable) getJavaPersistentType().getMapping();
-
-		assertFalse(embeddable.associatedTablesIncludingInherited().hasNext());
-	}
-	
-	public void testAssociatedTableNamesIncludingInherited() throws Exception {
-		createTestEmbeddable();
-		addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
-
-		Embeddable embeddable = (Embeddable) getJavaPersistentType().getMapping();
-
-		assertFalse(embeddable.associatedTableNamesIncludingInherited().hasNext());
-	}
-	
-	public void testAllOverridableAttributeNames() throws Exception {
-		createTestEmbeddable();
-		addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
-	
-		Embeddable embeddable = (Embeddable) getJavaPersistentType().getMapping();
-		Iterator<String> overridableAttributeNames = embeddable.overridableAttributeNames();
-		assertFalse(overridableAttributeNames.hasNext());
-	}
-	
-	//TODO need to create a subclass mappedSuperclass and test this
-	public void testAllOverridableAssociationNames() throws Exception {
-		createTestEmbeddable();
-		addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
-
-		Embeddable embeddable = (Embeddable) getJavaPersistentType().getMapping();
-		Iterator<String> overridableAssociationNames = embeddable.overridableAssociationNames();
-		assertFalse(overridableAssociationNames.hasNext());
-	}
-
-}
diff --git a/jpa/tests/org.eclipse.jpt.core.tests/src/org/eclipse/jpt/core/tests/internal/context/java/JavaEmbeddedIdMappingTests.java b/jpa/tests/org.eclipse.jpt.core.tests/src/org/eclipse/jpt/core/tests/internal/context/java/JavaEmbeddedIdMappingTests.java
deleted file mode 100644
index 37c1b40..0000000
--- a/jpa/tests/org.eclipse.jpt.core.tests/src/org/eclipse/jpt/core/tests/internal/context/java/JavaEmbeddedIdMappingTests.java
+++ /dev/null
@@ -1,635 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2008 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.core.tests.internal.context.java;
-
-import java.util.Iterator;
-import java.util.ListIterator;
-
-import org.eclipse.jdt.core.ICompilationUnit;
-import org.eclipse.jpt.core.MappingKeys;
-import org.eclipse.jpt.core.context.AttributeOverride;
-import org.eclipse.jpt.core.context.BasicMapping;
-import org.eclipse.jpt.core.context.Embeddable;
-import org.eclipse.jpt.core.context.EmbeddedIdMapping;
-import org.eclipse.jpt.core.context.EmbeddedMapping;
-import org.eclipse.jpt.core.context.IdMapping;
-import org.eclipse.jpt.core.context.ManyToManyMapping;
-import org.eclipse.jpt.core.context.ManyToOneMapping;
-import org.eclipse.jpt.core.context.OneToManyMapping;
-import org.eclipse.jpt.core.context.OneToOneMapping;
-import org.eclipse.jpt.core.context.PersistentAttribute;
-import org.eclipse.jpt.core.context.TransientMapping;
-import org.eclipse.jpt.core.context.VersionMapping;
-import org.eclipse.jpt.core.context.java.JavaAttributeOverride;
-import org.eclipse.jpt.core.context.persistence.ClassRef;
-import org.eclipse.jpt.core.internal.context.java.GenericJavaNullAttributeMapping;
-import org.eclipse.jpt.core.resource.java.AttributeOverrideAnnotation;
-import org.eclipse.jpt.core.resource.java.AttributeOverridesAnnotation;
-import org.eclipse.jpt.core.resource.java.BasicAnnotation;
-import org.eclipse.jpt.core.resource.java.EmbeddedAnnotation;
-import org.eclipse.jpt.core.resource.java.EmbeddedIdAnnotation;
-import org.eclipse.jpt.core.resource.java.IdAnnotation;
-import org.eclipse.jpt.core.resource.java.JPA;
-import org.eclipse.jpt.core.resource.java.JavaResourcePersistentAttribute;
-import org.eclipse.jpt.core.resource.java.JavaResourcePersistentType;
-import org.eclipse.jpt.core.resource.java.ManyToManyAnnotation;
-import org.eclipse.jpt.core.resource.java.ManyToOneAnnotation;
-import org.eclipse.jpt.core.resource.java.NestableAnnotation;
-import org.eclipse.jpt.core.resource.java.OneToManyAnnotation;
-import org.eclipse.jpt.core.resource.java.OneToOneAnnotation;
-import org.eclipse.jpt.core.resource.java.TransientAnnotation;
-import org.eclipse.jpt.core.resource.java.VersionAnnotation;
-import org.eclipse.jpt.core.tests.internal.context.ContextModelTestCase;
-import org.eclipse.jpt.core.tests.internal.projects.TestJavaProject.SourceWriter;
-import org.eclipse.jpt.utility.internal.iterators.ArrayIterator;
-
-@SuppressWarnings("nls")
-public class JavaEmbeddedIdMappingTests extends ContextModelTestCase
-{
-
-	public static final String EMBEDDABLE_TYPE_NAME = "MyEmbeddable";
-	public static final String FULLY_QUALIFIED_EMBEDDABLE_TYPE_NAME = PACKAGE_NAME + "." + EMBEDDABLE_TYPE_NAME;
-
-	private ICompilationUnit createTestEntityWithEmbeddedIdMapping() throws Exception {	
-		return this.createTestType(new DefaultAnnotationWriter() {
-			@Override
-			public Iterator<String> imports() {
-				return new ArrayIterator<String>(JPA.ENTITY, JPA.EMBEDDED_ID);
-			}
-			@Override
-			public void appendTypeAnnotationTo(StringBuilder sb) {
-				sb.append("@Entity").append(CR);
-			}
-			
-			@Override
-			public void appendIdFieldAnnotationTo(StringBuilder sb) {
-				sb.append("@EmbeddedId").append(CR);
-				sb.append(CR);
-				sb.append("    private " + EMBEDDABLE_TYPE_NAME +" myEmbeddedId;").append(CR);
-				sb.append(CR);
-			}
-		});
-	}
-
-	private void createEmbeddableType() throws Exception {
-		SourceWriter sourceWriter = new SourceWriter() {
-			public void appendSourceTo(StringBuilder sb) {
-				sb.append(CR);
-				sb.append("import ");
-				sb.append(JPA.EMBEDDABLE);
-				sb.append(";");
-				sb.append(CR);
-				sb.append("@Embeddable");
-				sb.append(CR);
-				sb.append("public class ").append(EMBEDDABLE_TYPE_NAME).append(" {");
-				sb.append(CR);
-				sb.append("    private String city;").append(CR);
-				sb.append(CR);
-				sb.append("    private String state;").append(CR);
-				sb.append(CR);
-				sb.append("    ");
-				sb.append("}").append(CR);
-			}
-		};
-		this.javaProject.createCompilationUnit(PACKAGE_NAME, EMBEDDABLE_TYPE_NAME + ".java", sourceWriter);
-	}
-	
-
-	public JavaEmbeddedIdMappingTests(String name) {
-		super(name);
-	}
-	
-	public void testMorphToBasicMapping() throws Exception {
-		createTestEntityWithEmbeddedIdMapping();
-		createEmbeddableType();
-		addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
-		
-		PersistentAttribute persistentAttribute = getJavaPersistentType().attributes().next();
-		EmbeddedIdMapping embeddedIdMapping = (EmbeddedIdMapping) persistentAttribute.getMapping();
-		JavaResourcePersistentType typeResource = getJpaProject().getJavaResourcePersistentType(FULLY_QUALIFIED_TYPE_NAME);
-		JavaResourcePersistentAttribute attributeResource = typeResource.persistableAttributes().next();
-		attributeResource.addSupportingAnnotation(0, JPA.ATTRIBUTE_OVERRIDE, JPA.ATTRIBUTE_OVERRIDES);
-		assertFalse(embeddedIdMapping.isDefault());
-		
-		persistentAttribute.setSpecifiedMappingKey(MappingKeys.BASIC_ATTRIBUTE_MAPPING_KEY);
-		assertTrue(persistentAttribute.getMapping() instanceof BasicMapping);
-		assertFalse(persistentAttribute.getMapping().isDefault());
-		
-		assertNull(attributeResource.getMappingAnnotation(EmbeddedIdAnnotation.ANNOTATION_NAME));
-		assertNotNull(attributeResource.getMappingAnnotation(BasicAnnotation.ANNOTATION_NAME));
-		assertNull(attributeResource.getSupportingAnnotation(AttributeOverrideAnnotation.ANNOTATION_NAME));
-	}
-	
-	public void testMorphToDefault() throws Exception {
-		createTestEntityWithEmbeddedIdMapping();
-		createEmbeddableType();
-		addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
-		addXmlClassRef(FULLY_QUALIFIED_EMBEDDABLE_TYPE_NAME);
-		
-		PersistentAttribute persistentAttribute = getJavaPersistentType().attributes().next();
-		EmbeddedIdMapping embeddedIdMapping = (EmbeddedIdMapping) persistentAttribute.getMapping();
-		JavaResourcePersistentType typeResource = getJpaProject().getJavaResourcePersistentType(FULLY_QUALIFIED_TYPE_NAME);
-		JavaResourcePersistentAttribute attributeResource = typeResource.persistableAttributes().next();
-		attributeResource.addSupportingAnnotation(0, JPA.ATTRIBUTE_OVERRIDE, JPA.ATTRIBUTE_OVERRIDES);
-		assertFalse(embeddedIdMapping.isDefault());
-		
-		persistentAttribute.setSpecifiedMappingKey(MappingKeys.NULL_ATTRIBUTE_MAPPING_KEY);
-		assertTrue(((EmbeddedMapping) persistentAttribute.getMapping()).attributeOverrides().hasNext());
-		assertTrue(persistentAttribute.getMapping().isDefault());
-	
-		assertNull(attributeResource.getMappingAnnotation(EmbeddedIdAnnotation.ANNOTATION_NAME));
-		assertNotNull(attributeResource.getSupportingAnnotation(AttributeOverrideAnnotation.ANNOTATION_NAME));
-	}
-	
-	public void testDefaultEmbeddedIdMapping() throws Exception {
-		createTestEntityWithEmbeddedIdMapping();
-		addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
-		
-		PersistentAttribute persistentAttribute = getJavaPersistentType().attributes().next();
-		EmbeddedIdMapping embeddedIdMapping = (EmbeddedIdMapping) persistentAttribute.getMapping();
-		assertFalse(embeddedIdMapping.isDefault());
-		
-		persistentAttribute.setSpecifiedMappingKey(MappingKeys.NULL_ATTRIBUTE_MAPPING_KEY);
-		assertTrue(persistentAttribute.getMapping() instanceof GenericJavaNullAttributeMapping);
-		assertTrue(persistentAttribute.getMapping().isDefault());
-		
-		createEmbeddableType();
-		addXmlClassRef(FULLY_QUALIFIED_EMBEDDABLE_TYPE_NAME);
-		assertTrue(persistentAttribute.getMapping() instanceof EmbeddedMapping);
-		assertTrue(persistentAttribute.getMapping().isDefault());
-	}
-	
-	public void testMorphToVersionMapping() throws Exception {
-		createTestEntityWithEmbeddedIdMapping();
-		createEmbeddableType();
-		addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
-		
-		PersistentAttribute persistentAttribute = getJavaPersistentType().attributes().next();
-		EmbeddedIdMapping embeddedIdMapping = (EmbeddedIdMapping) persistentAttribute.getMapping();
-		JavaResourcePersistentType typeResource = getJpaProject().getJavaResourcePersistentType(FULLY_QUALIFIED_TYPE_NAME);
-		JavaResourcePersistentAttribute attributeResource = typeResource.persistableAttributes().next();
-		attributeResource.addSupportingAnnotation(0, JPA.ATTRIBUTE_OVERRIDE, JPA.ATTRIBUTE_OVERRIDES);
-		assertFalse(embeddedIdMapping.isDefault());
-		
-		persistentAttribute.setSpecifiedMappingKey(MappingKeys.VERSION_ATTRIBUTE_MAPPING_KEY);
-		assertTrue(persistentAttribute.getMapping() instanceof VersionMapping);
-	
-		assertNull(attributeResource.getMappingAnnotation(EmbeddedIdAnnotation.ANNOTATION_NAME));
-		assertNotNull(attributeResource.getMappingAnnotation(VersionAnnotation.ANNOTATION_NAME));
-		assertNull(attributeResource.getSupportingAnnotation(AttributeOverrideAnnotation.ANNOTATION_NAME));
-	}
-	
-	public void testMorphToTransientMapping() throws Exception {
-		createTestEntityWithEmbeddedIdMapping();
-		createEmbeddableType();
-		addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
-		
-		PersistentAttribute persistentAttribute = getJavaPersistentType().attributes().next();
-		EmbeddedIdMapping embeddedIdMapping = (EmbeddedIdMapping) persistentAttribute.getMapping();
-		JavaResourcePersistentType typeResource = getJpaProject().getJavaResourcePersistentType(FULLY_QUALIFIED_TYPE_NAME);
-		JavaResourcePersistentAttribute attributeResource = typeResource.persistableAttributes().next();
-		attributeResource.addSupportingAnnotation(0, JPA.ATTRIBUTE_OVERRIDE, JPA.ATTRIBUTE_OVERRIDES);
-		assertFalse(embeddedIdMapping.isDefault());
-		
-		persistentAttribute.setSpecifiedMappingKey(MappingKeys.TRANSIENT_ATTRIBUTE_MAPPING_KEY);
-		assertTrue(persistentAttribute.getMapping() instanceof TransientMapping);
-		
-		assertNull(attributeResource.getMappingAnnotation(EmbeddedIdAnnotation.ANNOTATION_NAME));
-		assertNotNull(attributeResource.getMappingAnnotation(TransientAnnotation.ANNOTATION_NAME));
-		assertNull(attributeResource.getSupportingAnnotation(AttributeOverrideAnnotation.ANNOTATION_NAME));
-	}
-	
-	public void testMorphToIdMapping() throws Exception {
-		createTestEntityWithEmbeddedIdMapping();
-		createEmbeddableType();
-		addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
-		
-		PersistentAttribute persistentAttribute = getJavaPersistentType().attributes().next();
-		EmbeddedIdMapping embeddedIdMapping = (EmbeddedIdMapping) persistentAttribute.getMapping();
-		JavaResourcePersistentType typeResource = getJpaProject().getJavaResourcePersistentType(FULLY_QUALIFIED_TYPE_NAME);
-		JavaResourcePersistentAttribute attributeResource = typeResource.persistableAttributes().next();
-		attributeResource.addSupportingAnnotation(0, JPA.ATTRIBUTE_OVERRIDE, JPA.ATTRIBUTE_OVERRIDES);
-		assertFalse(embeddedIdMapping.isDefault());
-		
-		persistentAttribute.setSpecifiedMappingKey(MappingKeys.ID_ATTRIBUTE_MAPPING_KEY);
-		assertTrue(persistentAttribute.getMapping() instanceof IdMapping);
-		
-		assertNull(attributeResource.getMappingAnnotation(EmbeddedIdAnnotation.ANNOTATION_NAME));
-		assertNotNull(attributeResource.getMappingAnnotation(IdAnnotation.ANNOTATION_NAME));
-		assertNull(attributeResource.getSupportingAnnotation(AttributeOverrideAnnotation.ANNOTATION_NAME));
-	}
-
-	public void testMorphToEmbeddedMapping() throws Exception {
-		createTestEntityWithEmbeddedIdMapping();
-		createEmbeddableType();
-		addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
-		
-		PersistentAttribute persistentAttribute = getJavaPersistentType().attributes().next();
-		EmbeddedIdMapping embeddedIdMapping = (EmbeddedIdMapping) persistentAttribute.getMapping();
-		JavaResourcePersistentType typeResource = getJpaProject().getJavaResourcePersistentType(FULLY_QUALIFIED_TYPE_NAME);
-		JavaResourcePersistentAttribute attributeResource = typeResource.persistableAttributes().next();
-		attributeResource.addSupportingAnnotation(0, JPA.ATTRIBUTE_OVERRIDE, JPA.ATTRIBUTE_OVERRIDES);
-		assertFalse(embeddedIdMapping.isDefault());
-		
-		persistentAttribute.setSpecifiedMappingKey(MappingKeys.EMBEDDED_ATTRIBUTE_MAPPING_KEY);
-		assertTrue(persistentAttribute.getMapping() instanceof EmbeddedMapping);
-		
-		assertNull(attributeResource.getMappingAnnotation(EmbeddedIdAnnotation.ANNOTATION_NAME));
-		assertNotNull(attributeResource.getMappingAnnotation(EmbeddedAnnotation.ANNOTATION_NAME));
-		assertNotNull(attributeResource.getSupportingAnnotation(AttributeOverrideAnnotation.ANNOTATION_NAME));
-	}
-
-	public void testMorphToOneToOneMapping() throws Exception {
-		createTestEntityWithEmbeddedIdMapping();
-		createEmbeddableType();
-		addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
-		
-		PersistentAttribute persistentAttribute = getJavaPersistentType().attributes().next();
-		EmbeddedIdMapping embeddedIdMapping = (EmbeddedIdMapping) persistentAttribute.getMapping();
-		JavaResourcePersistentType typeResource = getJpaProject().getJavaResourcePersistentType(FULLY_QUALIFIED_TYPE_NAME);
-		JavaResourcePersistentAttribute attributeResource = typeResource.persistableAttributes().next();
-		attributeResource.addSupportingAnnotation(0, JPA.ATTRIBUTE_OVERRIDE, JPA.ATTRIBUTE_OVERRIDES);
-		assertFalse(embeddedIdMapping.isDefault());
-		
-		persistentAttribute.setSpecifiedMappingKey(MappingKeys.ONE_TO_ONE_ATTRIBUTE_MAPPING_KEY);
-		assertTrue(persistentAttribute.getMapping() instanceof OneToOneMapping);
-		
-		assertNull(attributeResource.getMappingAnnotation(EmbeddedIdAnnotation.ANNOTATION_NAME));
-		assertNotNull(attributeResource.getMappingAnnotation(OneToOneAnnotation.ANNOTATION_NAME));
-		assertNull(attributeResource.getSupportingAnnotation(AttributeOverrideAnnotation.ANNOTATION_NAME));
-	}
-	
-	public void testMorphToOneToManyMapping() throws Exception {
-		createTestEntityWithEmbeddedIdMapping();
-		createEmbeddableType();
-		addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
-		
-		PersistentAttribute persistentAttribute = getJavaPersistentType().attributes().next();
-		EmbeddedIdMapping embeddedIdMapping = (EmbeddedIdMapping) persistentAttribute.getMapping();
-		JavaResourcePersistentType typeResource = getJpaProject().getJavaResourcePersistentType(FULLY_QUALIFIED_TYPE_NAME);
-		JavaResourcePersistentAttribute attributeResource = typeResource.persistableAttributes().next();
-		attributeResource.addSupportingAnnotation(0, JPA.ATTRIBUTE_OVERRIDE, JPA.ATTRIBUTE_OVERRIDES);
-		assertFalse(embeddedIdMapping.isDefault());
-		
-		persistentAttribute.setSpecifiedMappingKey(MappingKeys.ONE_TO_MANY_ATTRIBUTE_MAPPING_KEY);
-		assertTrue(persistentAttribute.getMapping() instanceof OneToManyMapping);
-		
-		assertNull(attributeResource.getMappingAnnotation(EmbeddedIdAnnotation.ANNOTATION_NAME));
-		assertNotNull(attributeResource.getMappingAnnotation(OneToManyAnnotation.ANNOTATION_NAME));
-		assertNull(attributeResource.getSupportingAnnotation(AttributeOverrideAnnotation.ANNOTATION_NAME));
-	}
-	
-	public void testMorphToManyToOneMapping() throws Exception {
-		createTestEntityWithEmbeddedIdMapping();
-		createEmbeddableType();
-		addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
-		
-		PersistentAttribute persistentAttribute = getJavaPersistentType().attributes().next();
-		EmbeddedIdMapping embeddedIdMapping = (EmbeddedIdMapping) persistentAttribute.getMapping();
-		JavaResourcePersistentType typeResource = getJpaProject().getJavaResourcePersistentType(FULLY_QUALIFIED_TYPE_NAME);
-		JavaResourcePersistentAttribute attributeResource = typeResource.persistableAttributes().next();
-		attributeResource.addSupportingAnnotation(0, JPA.ATTRIBUTE_OVERRIDE, JPA.ATTRIBUTE_OVERRIDES);
-		assertFalse(embeddedIdMapping.isDefault());
-		
-		persistentAttribute.setSpecifiedMappingKey(MappingKeys.MANY_TO_ONE_ATTRIBUTE_MAPPING_KEY);
-		assertTrue(persistentAttribute.getMapping() instanceof ManyToOneMapping);
-		
-		assertNull(attributeResource.getMappingAnnotation(EmbeddedIdAnnotation.ANNOTATION_NAME));
-		assertNotNull(attributeResource.getMappingAnnotation(ManyToOneAnnotation.ANNOTATION_NAME));
-		assertNull(attributeResource.getSupportingAnnotation(AttributeOverrideAnnotation.ANNOTATION_NAME));
-	}
-	
-	public void testMorphToManyToManyMapping() throws Exception {
-		createTestEntityWithEmbeddedIdMapping();
-		createEmbeddableType();
-		addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
-		
-		PersistentAttribute persistentAttribute = getJavaPersistentType().attributes().next();
-		EmbeddedIdMapping embeddedIdMapping = (EmbeddedIdMapping) persistentAttribute.getMapping();
-		JavaResourcePersistentType typeResource = getJpaProject().getJavaResourcePersistentType(FULLY_QUALIFIED_TYPE_NAME);
-		JavaResourcePersistentAttribute attributeResource = typeResource.persistableAttributes().next();
-		attributeResource.addSupportingAnnotation(0, JPA.ATTRIBUTE_OVERRIDE, JPA.ATTRIBUTE_OVERRIDES);
-		assertFalse(embeddedIdMapping.isDefault());
-		
-		persistentAttribute.setSpecifiedMappingKey(MappingKeys.MANY_TO_MANY_ATTRIBUTE_MAPPING_KEY);
-		assertTrue(persistentAttribute.getMapping() instanceof ManyToManyMapping);
-		
-		assertNull(attributeResource.getMappingAnnotation(EmbeddedIdAnnotation.ANNOTATION_NAME));
-		assertNotNull(attributeResource.getMappingAnnotation(ManyToManyAnnotation.ANNOTATION_NAME));
-		assertNull(attributeResource.getSupportingAnnotation(AttributeOverrideAnnotation.ANNOTATION_NAME));
-	}
-	
-	public void testSpecifiedAttributeOverrides() throws Exception {
-		createTestEntityWithEmbeddedIdMapping();
-		createEmbeddableType();
-		addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
-		addXmlClassRef(FULLY_QUALIFIED_EMBEDDABLE_TYPE_NAME);
-		
-		EmbeddedIdMapping embeddedIdMapping = (EmbeddedIdMapping) getJavaPersistentType().getAttributeNamed("myEmbeddedId").getMapping();
-		
-		ListIterator<JavaAttributeOverride> specifiedAttributeOverrides = embeddedIdMapping.specifiedAttributeOverrides();
-		
-		assertFalse(specifiedAttributeOverrides.hasNext());
-
-		JavaResourcePersistentType typeResource = getJpaProject().getJavaResourcePersistentType(FULLY_QUALIFIED_TYPE_NAME);
-		JavaResourcePersistentAttribute attributeResource = typeResource.persistableAttributes().next();
-		
-		//add an annotation to the resource model and verify the context model is updated
-		AttributeOverrideAnnotation attributeOverride = (AttributeOverrideAnnotation) attributeResource.addSupportingAnnotation(0, JPA.ATTRIBUTE_OVERRIDE, JPA.ATTRIBUTE_OVERRIDES);
-		attributeOverride.setName("FOO");
-		specifiedAttributeOverrides = embeddedIdMapping.specifiedAttributeOverrides();		
-		assertEquals("FOO", specifiedAttributeOverrides.next().getName());
-		assertFalse(specifiedAttributeOverrides.hasNext());
-
-		attributeOverride = (AttributeOverrideAnnotation) attributeResource.addSupportingAnnotation(1, JPA.ATTRIBUTE_OVERRIDE, JPA.ATTRIBUTE_OVERRIDES);
-		attributeOverride.setName("BAR");
-		specifiedAttributeOverrides = embeddedIdMapping.specifiedAttributeOverrides();		
-		assertEquals("FOO", specifiedAttributeOverrides.next().getName());
-		assertEquals("BAR", specifiedAttributeOverrides.next().getName());
-		assertFalse(specifiedAttributeOverrides.hasNext());
-
-
-		attributeOverride = (AttributeOverrideAnnotation) attributeResource.addSupportingAnnotation(0, JPA.ATTRIBUTE_OVERRIDE, JPA.ATTRIBUTE_OVERRIDES);
-		attributeOverride.setName("BAZ");
-		specifiedAttributeOverrides = embeddedIdMapping.specifiedAttributeOverrides();		
-		assertEquals("BAZ", specifiedAttributeOverrides.next().getName());
-		assertEquals("FOO", specifiedAttributeOverrides.next().getName());
-		assertEquals("BAR", specifiedAttributeOverrides.next().getName());
-		assertFalse(specifiedAttributeOverrides.hasNext());
-	
-		//move an annotation to the resource model and verify the context model is updated
-		attributeResource.moveSupportingAnnotation(1, 0, JPA.ATTRIBUTE_OVERRIDES);
-		specifiedAttributeOverrides = embeddedIdMapping.specifiedAttributeOverrides();		
-		assertEquals("FOO", specifiedAttributeOverrides.next().getName());
-		assertEquals("BAZ", specifiedAttributeOverrides.next().getName());
-		assertEquals("BAR", specifiedAttributeOverrides.next().getName());
-		assertFalse(specifiedAttributeOverrides.hasNext());
-
-		attributeResource.removeSupportingAnnotation(0, JPA.ATTRIBUTE_OVERRIDE, JPA.ATTRIBUTE_OVERRIDES);
-		specifiedAttributeOverrides = embeddedIdMapping.specifiedAttributeOverrides();		
-		assertEquals("BAZ", specifiedAttributeOverrides.next().getName());
-		assertEquals("BAR", specifiedAttributeOverrides.next().getName());
-		assertFalse(specifiedAttributeOverrides.hasNext());
-	
-		attributeResource.removeSupportingAnnotation(0, JPA.ATTRIBUTE_OVERRIDE, JPA.ATTRIBUTE_OVERRIDES);
-		specifiedAttributeOverrides = embeddedIdMapping.specifiedAttributeOverrides();		
-		assertEquals("BAR", specifiedAttributeOverrides.next().getName());
-		assertFalse(specifiedAttributeOverrides.hasNext());
-
-		
-		attributeResource.removeSupportingAnnotation(0, JPA.ATTRIBUTE_OVERRIDE, JPA.ATTRIBUTE_OVERRIDES);
-		specifiedAttributeOverrides = embeddedIdMapping.specifiedAttributeOverrides();		
-		assertFalse(specifiedAttributeOverrides.hasNext());
-	}
-
-	public void testVirtualAttributeOverrides() throws Exception {
-		createTestEntityWithEmbeddedIdMapping();
-		createEmbeddableType();
-		addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
-		addXmlClassRef(FULLY_QUALIFIED_EMBEDDABLE_TYPE_NAME);
-		
-		EmbeddedIdMapping embeddedMapping = (EmbeddedIdMapping) getJavaPersistentType().getAttributeNamed("myEmbeddedId").getMapping();
-
-		JavaResourcePersistentType typeResource = getJpaProject().getJavaResourcePersistentType(FULLY_QUALIFIED_TYPE_NAME);
-		JavaResourcePersistentAttribute attributeResource = typeResource.persistableAttributes().next();
-		assertEquals("myEmbeddedId", attributeResource.getName());
-		assertNull(attributeResource.getSupportingAnnotation(AttributeOverrideAnnotation.ANNOTATION_NAME));
-		assertNull(attributeResource.getSupportingAnnotation(AttributeOverridesAnnotation.ANNOTATION_NAME));
-		
-		assertEquals(2, embeddedMapping.virtualAttributeOverridesSize());
-		AttributeOverride defaultAttributeOverride = embeddedMapping.virtualAttributeOverrides().next();
-		assertEquals("city", defaultAttributeOverride.getName());
-		assertEquals("city", defaultAttributeOverride.getColumn().getName());
-		assertEquals(TYPE_NAME, defaultAttributeOverride.getColumn().getTable());
-		assertEquals(null, defaultAttributeOverride.getColumn().getColumnDefinition());
-		assertEquals(true, defaultAttributeOverride.getColumn().isInsertable());
-		assertEquals(true, defaultAttributeOverride.getColumn().isUpdatable());
-		assertEquals(false, defaultAttributeOverride.getColumn().isUnique());
-		assertEquals(true, defaultAttributeOverride.getColumn().isNullable());
-		assertEquals(255, defaultAttributeOverride.getColumn().getLength());
-		assertEquals(0, defaultAttributeOverride.getColumn().getPrecision());
-		assertEquals(0, defaultAttributeOverride.getColumn().getScale());
-		
-		
-		ListIterator<ClassRef> classRefs = getPersistenceUnit().specifiedClassRefs();
-		classRefs.next();
-		Embeddable embeddable = (Embeddable) classRefs.next().getJavaPersistentType().getMapping();
-		
-		BasicMapping cityMapping = (BasicMapping) embeddable.getPersistentType().getAttributeNamed("city").getMapping();
-		cityMapping.getColumn().setSpecifiedName("FOO");
-		cityMapping.getColumn().setSpecifiedTable("BAR");
-		cityMapping.getColumn().setColumnDefinition("COLUMN_DEF");
-		cityMapping.getColumn().setSpecifiedInsertable(Boolean.FALSE);
-		cityMapping.getColumn().setSpecifiedUpdatable(Boolean.FALSE);
-		cityMapping.getColumn().setSpecifiedUnique(Boolean.TRUE);
-		cityMapping.getColumn().setSpecifiedNullable(Boolean.FALSE);
-		cityMapping.getColumn().setSpecifiedLength(Integer.valueOf(5));
-		cityMapping.getColumn().setSpecifiedPrecision(Integer.valueOf(6));
-		cityMapping.getColumn().setSpecifiedScale(Integer.valueOf(7));
-		
-		assertEquals("myEmbeddedId", attributeResource.getName());
-		assertNull(attributeResource.getSupportingAnnotation(AttributeOverrideAnnotation.ANNOTATION_NAME));
-		assertNull(attributeResource.getSupportingAnnotation(AttributeOverridesAnnotation.ANNOTATION_NAME));
-
-		assertEquals(2, embeddedMapping.virtualAttributeOverridesSize());
-		defaultAttributeOverride = embeddedMapping.virtualAttributeOverrides().next();
-		assertEquals("city", defaultAttributeOverride.getName());
-		assertEquals("FOO", defaultAttributeOverride.getColumn().getName());
-		assertEquals("BAR", defaultAttributeOverride.getColumn().getTable());
-		assertEquals("COLUMN_DEF", defaultAttributeOverride.getColumn().getColumnDefinition());
-		assertEquals(false, defaultAttributeOverride.getColumn().isInsertable());
-		assertEquals(false, defaultAttributeOverride.getColumn().isUpdatable());
-		assertEquals(true, defaultAttributeOverride.getColumn().isUnique());
-		assertEquals(false, defaultAttributeOverride.getColumn().isNullable());
-		assertEquals(5, defaultAttributeOverride.getColumn().getLength());
-		assertEquals(6, defaultAttributeOverride.getColumn().getPrecision());
-		assertEquals(7, defaultAttributeOverride.getColumn().getScale());
-
-		cityMapping.getColumn().setSpecifiedName(null);
-		cityMapping.getColumn().setSpecifiedTable(null);
-		cityMapping.getColumn().setColumnDefinition(null);
-		cityMapping.getColumn().setSpecifiedInsertable(null);
-		cityMapping.getColumn().setSpecifiedUpdatable(null);
-		cityMapping.getColumn().setSpecifiedUnique(null);
-		cityMapping.getColumn().setSpecifiedNullable(null);
-		cityMapping.getColumn().setSpecifiedLength(null);
-		cityMapping.getColumn().setSpecifiedPrecision(null);
-		cityMapping.getColumn().setSpecifiedScale(null);
-		defaultAttributeOverride = embeddedMapping.virtualAttributeOverrides().next();
-		assertEquals("city", defaultAttributeOverride.getName());
-		assertEquals("city", defaultAttributeOverride.getColumn().getName());
-		assertEquals(TYPE_NAME, defaultAttributeOverride.getColumn().getTable());
-		assertEquals(null, defaultAttributeOverride.getColumn().getColumnDefinition());
-		assertEquals(true, defaultAttributeOverride.getColumn().isInsertable());
-		assertEquals(true, defaultAttributeOverride.getColumn().isUpdatable());
-		assertEquals(false, defaultAttributeOverride.getColumn().isUnique());
-		assertEquals(true, defaultAttributeOverride.getColumn().isNullable());
-		assertEquals(255, defaultAttributeOverride.getColumn().getLength());
-		assertEquals(0, defaultAttributeOverride.getColumn().getPrecision());
-		assertEquals(0, defaultAttributeOverride.getColumn().getScale());
-		
-		AttributeOverrideAnnotation annotation = (AttributeOverrideAnnotation) attributeResource.addSupportingAnnotation(0, JPA.ATTRIBUTE_OVERRIDE, JPA.ATTRIBUTE_OVERRIDES);
-		annotation.setName("city");
-		assertEquals(1, embeddedMapping.virtualAttributeOverridesSize());
-	}
-	
-	public void testSpecifiedAttributeOverridesSize() throws Exception {
-		createTestEntityWithEmbeddedIdMapping();
-		createEmbeddableType();
-		addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
-		addXmlClassRef(FULLY_QUALIFIED_EMBEDDABLE_TYPE_NAME);
-		
-		EmbeddedIdMapping embeddedIdMapping = (EmbeddedIdMapping) getJavaPersistentType().getAttributeNamed("myEmbeddedId").getMapping();
-		assertEquals(0, embeddedIdMapping.specifiedAttributeOverridesSize());
-
-		JavaResourcePersistentType typeResource = getJpaProject().getJavaResourcePersistentType(FULLY_QUALIFIED_TYPE_NAME);
-		JavaResourcePersistentAttribute attributeResource = typeResource.persistableAttributes().next();
-
-		//add an annotation to the resource model and verify the context model is updated
-		AttributeOverrideAnnotation attributeOverride = (AttributeOverrideAnnotation) attributeResource.addSupportingAnnotation(0, JPA.ATTRIBUTE_OVERRIDE, JPA.ATTRIBUTE_OVERRIDES);
-		attributeOverride.setName("FOO");
-		attributeOverride = (AttributeOverrideAnnotation) attributeResource.addSupportingAnnotation(0, JPA.ATTRIBUTE_OVERRIDE, JPA.ATTRIBUTE_OVERRIDES);
-		attributeOverride.setName("BAR");
-
-		assertEquals(2, embeddedIdMapping.specifiedAttributeOverridesSize());
-	}
-	
-	public void testAttributeOverridesSize() throws Exception {
-		createTestEntityWithEmbeddedIdMapping();
-		createEmbeddableType();
-		addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
-		addXmlClassRef(FULLY_QUALIFIED_EMBEDDABLE_TYPE_NAME);
-		
-		EmbeddedIdMapping embeddedIdMapping = (EmbeddedIdMapping) getJavaPersistentType().getAttributeNamed("myEmbeddedId").getMapping();
-		assertEquals(2, embeddedIdMapping.attributeOverridesSize());
-
-		JavaResourcePersistentType typeResource = getJpaProject().getJavaResourcePersistentType(FULLY_QUALIFIED_TYPE_NAME);
-		JavaResourcePersistentAttribute attributeResource = typeResource.persistableAttributes().next();
-
-		//add an annotation to the resource model and verify the context model is updated
-		AttributeOverrideAnnotation attributeOverride = (AttributeOverrideAnnotation) attributeResource.addSupportingAnnotation(0, JPA.ATTRIBUTE_OVERRIDE, JPA.ATTRIBUTE_OVERRIDES);
-		attributeOverride.setName("FOO");
-		attributeOverride = (AttributeOverrideAnnotation) attributeResource.addSupportingAnnotation(0, JPA.ATTRIBUTE_OVERRIDE, JPA.ATTRIBUTE_OVERRIDES);
-		attributeOverride.setName("BAR");
-
-		assertEquals(4, embeddedIdMapping.attributeOverridesSize());
-		
-		attributeOverride = (AttributeOverrideAnnotation) attributeResource.addSupportingAnnotation(0, JPA.ATTRIBUTE_OVERRIDE, JPA.ATTRIBUTE_OVERRIDES);
-		attributeOverride.setName("city");
-		assertEquals(4, embeddedIdMapping.attributeOverridesSize());	
-	}
-	
-	public void testVirtualAttributeOverridesSize() throws Exception {
-		createTestEntityWithEmbeddedIdMapping();
-		createEmbeddableType();
-		addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
-		addXmlClassRef(FULLY_QUALIFIED_EMBEDDABLE_TYPE_NAME);
-		
-		EmbeddedIdMapping embeddedIdMapping = (EmbeddedIdMapping) getJavaPersistentType().getAttributeNamed("myEmbeddedId").getMapping();
-		assertEquals(2, embeddedIdMapping.virtualAttributeOverridesSize());
-
-		JavaResourcePersistentType typeResource = getJpaProject().getJavaResourcePersistentType(FULLY_QUALIFIED_TYPE_NAME);
-		JavaResourcePersistentAttribute attributeResource = typeResource.persistableAttributes().next();
-
-		//add an annotation to the resource model and verify the context model is updated
-		AttributeOverrideAnnotation attributeOverride = (AttributeOverrideAnnotation) attributeResource.addSupportingAnnotation(0, JPA.ATTRIBUTE_OVERRIDE, JPA.ATTRIBUTE_OVERRIDES);
-		attributeOverride.setName("FOO");
-
-		assertEquals(2, embeddedIdMapping.virtualAttributeOverridesSize());
-		
-		attributeOverride = (AttributeOverrideAnnotation) attributeResource.addSupportingAnnotation(0, JPA.ATTRIBUTE_OVERRIDE, JPA.ATTRIBUTE_OVERRIDES);
-		attributeOverride.setName("city");
-		assertEquals(1, embeddedIdMapping.virtualAttributeOverridesSize());
-		
-		attributeOverride = (AttributeOverrideAnnotation) attributeResource.addSupportingAnnotation(0, JPA.ATTRIBUTE_OVERRIDE, JPA.ATTRIBUTE_OVERRIDES);
-		attributeOverride.setName("state");
-		assertEquals(0, embeddedIdMapping.virtualAttributeOverridesSize());
-	}
-
-	public void testAttributeOverrideSetVirtual() throws Exception {
-		createTestEntityWithEmbeddedIdMapping();
-		createEmbeddableType();
-		addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
-		addXmlClassRef(FULLY_QUALIFIED_EMBEDDABLE_TYPE_NAME);
-				
-		EmbeddedIdMapping embeddedIdMapping = (EmbeddedIdMapping) getJavaPersistentType().getAttributeNamed("myEmbeddedId").getMapping();
-		embeddedIdMapping.virtualAttributeOverrides().next().setVirtual(false);
-		embeddedIdMapping.virtualAttributeOverrides().next().setVirtual(false);
-		
-		JavaResourcePersistentType typeResource = getJpaProject().getJavaResourcePersistentType(FULLY_QUALIFIED_TYPE_NAME);
-		JavaResourcePersistentAttribute attributeResource = typeResource.persistableAttributes().next();
-		Iterator<NestableAnnotation> attributeOverrides = attributeResource.supportingAnnotations(AttributeOverrideAnnotation.ANNOTATION_NAME, AttributeOverridesAnnotation.ANNOTATION_NAME);
-		
-		assertEquals("city", ((AttributeOverrideAnnotation) attributeOverrides.next()).getName());
-		assertEquals("state", ((AttributeOverrideAnnotation) attributeOverrides.next()).getName());
-		assertFalse(attributeOverrides.hasNext());
-		
-		embeddedIdMapping.specifiedAttributeOverrides().next().setVirtual(true);
-		attributeOverrides = attributeResource.supportingAnnotations(AttributeOverrideAnnotation.ANNOTATION_NAME, AttributeOverridesAnnotation.ANNOTATION_NAME);
-		assertEquals("state", ((AttributeOverrideAnnotation) attributeOverrides.next()).getName());
-		assertFalse(attributeOverrides.hasNext());
-		
-		assertEquals("city", embeddedIdMapping.virtualAttributeOverrides().next().getName());
-		assertEquals(1, embeddedIdMapping.virtualAttributeOverridesSize());
-		
-		embeddedIdMapping.specifiedAttributeOverrides().next().setVirtual(true);
-		attributeOverrides = attributeResource.supportingAnnotations(AttributeOverrideAnnotation.ANNOTATION_NAME, AttributeOverridesAnnotation.ANNOTATION_NAME);
-		assertFalse(attributeOverrides.hasNext());
-		
-		Iterator<AttributeOverride> virtualAttributeOverrides = embeddedIdMapping.virtualAttributeOverrides();
-		assertEquals("city", virtualAttributeOverrides.next().getName());
-		assertEquals("state", virtualAttributeOverrides.next().getName());
-		assertEquals(2, embeddedIdMapping.virtualAttributeOverridesSize());
-	}
-	
-	public void testAttributeOverrideSetVirtual2() throws Exception {
-		createTestEntityWithEmbeddedIdMapping();
-		createEmbeddableType();
-		addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
-		addXmlClassRef(FULLY_QUALIFIED_EMBEDDABLE_TYPE_NAME);
-		
-		EmbeddedIdMapping embeddedIdMapping = (EmbeddedIdMapping) getJavaPersistentType().getAttributeNamed("myEmbeddedId").getMapping();
-		ListIterator<AttributeOverride> virtualAttributeOverrides = embeddedIdMapping.virtualAttributeOverrides();
-		virtualAttributeOverrides.next();	
-		virtualAttributeOverrides.next().setVirtual(false);
-		embeddedIdMapping.virtualAttributeOverrides().next().setVirtual(false);
-		
-		JavaResourcePersistentType typeResource = getJpaProject().getJavaResourcePersistentType(FULLY_QUALIFIED_TYPE_NAME);
-		JavaResourcePersistentAttribute attributeResource = typeResource.persistableAttributes().next();
-		Iterator<NestableAnnotation> attributeOverrides = attributeResource.supportingAnnotations(AttributeOverrideAnnotation.ANNOTATION_NAME, AttributeOverridesAnnotation.ANNOTATION_NAME);
-		
-		assertEquals("state", ((AttributeOverrideAnnotation) attributeOverrides.next()).getName());
-		assertEquals("city", ((AttributeOverrideAnnotation) attributeOverrides.next()).getName());
-		assertFalse(attributeOverrides.hasNext());
-	}
-
-	
-	public void testMoveSpecifiedAttributeOverride() throws Exception {
-		createTestEntityWithEmbeddedIdMapping();
-		createEmbeddableType();
-		addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
-		addXmlClassRef(FULLY_QUALIFIED_EMBEDDABLE_TYPE_NAME);
-		
-		EmbeddedIdMapping embeddedIdMapping = (EmbeddedIdMapping) getJavaPersistentType().getAttributeNamed("myEmbeddedId").getMapping();
-		embeddedIdMapping.virtualAttributeOverrides().next().setVirtual(false);
-		embeddedIdMapping.virtualAttributeOverrides().next().setVirtual(false);
-		
-		JavaResourcePersistentType typeResource = getJpaProject().getJavaResourcePersistentType(FULLY_QUALIFIED_TYPE_NAME);
-		JavaResourcePersistentAttribute attributeResource = typeResource.persistableAttributes().next();
-		
-		attributeResource.moveSupportingAnnotation(1, 0, AttributeOverridesAnnotation.ANNOTATION_NAME);
-		
-		Iterator<NestableAnnotation> attributeOverrides = attributeResource.supportingAnnotations(AttributeOverrideAnnotation.ANNOTATION_NAME, AttributeOverridesAnnotation.ANNOTATION_NAME);
-
-		assertEquals("state", ((AttributeOverrideAnnotation) attributeOverrides.next()).getName());
-		assertEquals("city", ((AttributeOverrideAnnotation) attributeOverrides.next()).getName());
-		assertFalse(attributeOverrides.hasNext());
-	}
-}
diff --git a/jpa/tests/org.eclipse.jpt.core.tests/src/org/eclipse/jpt/core/tests/internal/context/java/JavaEmbeddedMappingTests.java b/jpa/tests/org.eclipse.jpt.core.tests/src/org/eclipse/jpt/core/tests/internal/context/java/JavaEmbeddedMappingTests.java
deleted file mode 100644
index 23731b4..0000000
--- a/jpa/tests/org.eclipse.jpt.core.tests/src/org/eclipse/jpt/core/tests/internal/context/java/JavaEmbeddedMappingTests.java
+++ /dev/null
@@ -1,680 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2008 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.core.tests.internal.context.java;
-
-import java.util.Iterator;
-import java.util.ListIterator;
-
-import org.eclipse.jdt.core.ICompilationUnit;
-import org.eclipse.jpt.core.MappingKeys;
-import org.eclipse.jpt.core.context.AttributeOverride;
-import org.eclipse.jpt.core.context.BasicMapping;
-import org.eclipse.jpt.core.context.Embeddable;
-import org.eclipse.jpt.core.context.EmbeddedIdMapping;
-import org.eclipse.jpt.core.context.EmbeddedMapping;
-import org.eclipse.jpt.core.context.IdMapping;
-import org.eclipse.jpt.core.context.ManyToManyMapping;
-import org.eclipse.jpt.core.context.ManyToOneMapping;
-import org.eclipse.jpt.core.context.OneToManyMapping;
-import org.eclipse.jpt.core.context.OneToOneMapping;
-import org.eclipse.jpt.core.context.PersistentAttribute;
-import org.eclipse.jpt.core.context.TransientMapping;
-import org.eclipse.jpt.core.context.VersionMapping;
-import org.eclipse.jpt.core.context.java.JavaAttributeOverride;
-import org.eclipse.jpt.core.context.persistence.ClassRef;
-import org.eclipse.jpt.core.internal.context.java.GenericJavaNullAttributeMapping;
-import org.eclipse.jpt.core.resource.java.AttributeOverrideAnnotation;
-import org.eclipse.jpt.core.resource.java.AttributeOverridesAnnotation;
-import org.eclipse.jpt.core.resource.java.BasicAnnotation;
-import org.eclipse.jpt.core.resource.java.EmbeddedAnnotation;
-import org.eclipse.jpt.core.resource.java.EmbeddedIdAnnotation;
-import org.eclipse.jpt.core.resource.java.IdAnnotation;
-import org.eclipse.jpt.core.resource.java.JPA;
-import org.eclipse.jpt.core.resource.java.JavaResourcePersistentAttribute;
-import org.eclipse.jpt.core.resource.java.JavaResourcePersistentType;
-import org.eclipse.jpt.core.resource.java.ManyToManyAnnotation;
-import org.eclipse.jpt.core.resource.java.ManyToOneAnnotation;
-import org.eclipse.jpt.core.resource.java.NestableAnnotation;
-import org.eclipse.jpt.core.resource.java.OneToManyAnnotation;
-import org.eclipse.jpt.core.resource.java.OneToOneAnnotation;
-import org.eclipse.jpt.core.resource.java.TransientAnnotation;
-import org.eclipse.jpt.core.resource.java.VersionAnnotation;
-import org.eclipse.jpt.core.tests.internal.context.ContextModelTestCase;
-import org.eclipse.jpt.core.tests.internal.projects.TestJavaProject.SourceWriter;
-import org.eclipse.jpt.utility.internal.iterators.ArrayIterator;
-
-@SuppressWarnings("nls")
-public class JavaEmbeddedMappingTests extends ContextModelTestCase
-{
-
-	public static final String EMBEDDABLE_TYPE_NAME = "MyEmbeddable";
-	public static final String FULLY_QUALIFIED_EMBEDDABLE_TYPE_NAME = PACKAGE_NAME + "." + EMBEDDABLE_TYPE_NAME;
-
-	private ICompilationUnit createTestEntityWithEmbeddedMapping() throws Exception {
-	
-		return this.createTestType(new DefaultAnnotationWriter() {
-			@Override
-			public Iterator<String> imports() {
-				return new ArrayIterator<String>(JPA.ENTITY, JPA.EMBEDDED);
-			}
-			@Override
-			public void appendTypeAnnotationTo(StringBuilder sb) {
-				sb.append("@Entity").append(CR);
-			}
-			
-			@Override
-			public void appendIdFieldAnnotationTo(StringBuilder sb) {
-				sb.append("@Embedded").append(CR);
-				sb.append("    private " + EMBEDDABLE_TYPE_NAME + " myEmbedded;").append(CR);
-				sb.append(CR);
-			}
-		});
-	}
-
-	private void createEmbeddableType() throws Exception {
-		SourceWriter sourceWriter = new SourceWriter() {
-			public void appendSourceTo(StringBuilder sb) {
-				sb.append(CR);
-					sb.append("import ");
-					sb.append(JPA.EMBEDDABLE);
-					sb.append(";");
-					sb.append(CR);
-				sb.append("@Embeddable");
-				sb.append(CR);
-				sb.append("public class ").append(EMBEDDABLE_TYPE_NAME).append(" {");
-				sb.append(CR);
-				sb.append("    private String city;").append(CR);
-				sb.append(CR);
-				sb.append("    private String state;").append(CR);
-				sb.append(CR);
-				sb.append("    ");
-				sb.append("}").append(CR);
-			}
-		};
-		this.javaProject.createCompilationUnit(PACKAGE_NAME, EMBEDDABLE_TYPE_NAME + ".java", sourceWriter);
-	}
-	
-
-	public JavaEmbeddedMappingTests(String name) {
-		super(name);
-	}
-	
-	public void testMorphToBasicMapping() throws Exception {
-		createTestEntityWithEmbeddedMapping();
-		createEmbeddableType();
-		addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
-		
-		PersistentAttribute persistentAttribute = getJavaPersistentType().attributes().next();
-		EmbeddedMapping embeddedMapping = (EmbeddedMapping) persistentAttribute.getMapping();
-		assertFalse(embeddedMapping.isDefault());
-		
-		persistentAttribute.setSpecifiedMappingKey(MappingKeys.BASIC_ATTRIBUTE_MAPPING_KEY);
-		assertTrue(persistentAttribute.getMapping() instanceof BasicMapping);
-		assertFalse(persistentAttribute.getMapping().isDefault());
-		
-		JavaResourcePersistentType typeResource = getJpaProject().getJavaResourcePersistentType(FULLY_QUALIFIED_TYPE_NAME);
-		JavaResourcePersistentAttribute attributeResource = typeResource.persistableAttributes().next();
-		assertNull(attributeResource.getMappingAnnotation(EmbeddedAnnotation.ANNOTATION_NAME));
-		assertNotNull(attributeResource.getMappingAnnotation(BasicAnnotation.ANNOTATION_NAME));
-		assertNull(attributeResource.getSupportingAnnotation(AttributeOverrideAnnotation.ANNOTATION_NAME));
-	}
-	
-	public void testMorphToDefault() throws Exception {
-		createTestEntityWithEmbeddedMapping();
-		createEmbeddableType();
-		addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
-		addXmlClassRef(FULLY_QUALIFIED_EMBEDDABLE_TYPE_NAME);
-		
-		PersistentAttribute persistentAttribute = getJavaPersistentType().attributes().next();
-		EmbeddedMapping embeddedMapping = (EmbeddedMapping) persistentAttribute.getMapping();
-		JavaResourcePersistentType typeResource = getJpaProject().getJavaResourcePersistentType(FULLY_QUALIFIED_TYPE_NAME);
-		JavaResourcePersistentAttribute attributeResource = typeResource.persistableAttributes().next();
-		attributeResource.addSupportingAnnotation(0, JPA.ATTRIBUTE_OVERRIDE, JPA.ATTRIBUTE_OVERRIDES);
-		assertFalse(embeddedMapping.isDefault());
-		
-		persistentAttribute.setSpecifiedMappingKey(MappingKeys.NULL_ATTRIBUTE_MAPPING_KEY);
-		assertTrue(((EmbeddedMapping) persistentAttribute.getMapping()).attributeOverrides().hasNext());
-		assertTrue(persistentAttribute.getMapping().isDefault());
-	
-		assertNull(attributeResource.getMappingAnnotation(EmbeddedAnnotation.ANNOTATION_NAME));
-		assertNotNull(attributeResource.getSupportingAnnotation(AttributeOverrideAnnotation.ANNOTATION_NAME));
-	}
-	
-	public void testDefaultEmbeddedMapping() throws Exception {
-		createTestEntityWithEmbeddedMapping();
-		addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
-		
-		PersistentAttribute persistentAttribute = getJavaPersistentType().attributes().next();
-		EmbeddedMapping embeddedMapping = (EmbeddedMapping) persistentAttribute.getMapping();
-		assertFalse(embeddedMapping.isDefault());
-		
-		persistentAttribute.setSpecifiedMappingKey(MappingKeys.NULL_ATTRIBUTE_MAPPING_KEY);
-		assertTrue(persistentAttribute.getMapping() instanceof GenericJavaNullAttributeMapping);
-		assertTrue(persistentAttribute.getMapping().isDefault());
-		
-		createEmbeddableType();
-		addXmlClassRef(FULLY_QUALIFIED_EMBEDDABLE_TYPE_NAME);
-		assertTrue(persistentAttribute.getMapping() instanceof EmbeddedMapping);
-		assertTrue(persistentAttribute.getMapping().isDefault());
-	}
-	
-	public void testDefaultEmbeddedMappingGenericEmbeddable() throws Exception {
-		createTestEntityWithDefaultEmbeddedMapping();
-		createTestGenericEmbeddable();
-		addXmlClassRef(PACKAGE_NAME + ".Entity1");
-		addXmlClassRef(PACKAGE_NAME + ".Embeddable1");
-		
-		PersistentAttribute persistentAttribute = getJavaPersistentType().attributes().next();
-		assertNull(persistentAttribute.getSpecifiedMapping());
-		assertNotNull(persistentAttribute.getMapping());
-		assertEquals(MappingKeys.EMBEDDED_ATTRIBUTE_MAPPING_KEY, persistentAttribute.getDefaultMappingKey());
-		assertTrue(persistentAttribute.getMapping().isDefault());
-	}
-	
-	private void createTestEntityWithDefaultEmbeddedMapping() throws Exception {
-		SourceWriter sourceWriter = new SourceWriter() {
-			public void appendSourceTo(StringBuilder sb) {
-				sb.append(CR);
-					sb.append("import ");
-					sb.append(JPA.ENTITY);
-					sb.append(";");
-					sb.append(CR);
-				sb.append("@Entity");
-				sb.append(CR);
-				sb.append("public class Entity1 { ").append(CR);
-				sb.append("private Embeddable1<Integer> myEmbeddable;").append(CR);
-				sb.append(CR);
-			}
-		};
-		this.javaProject.createCompilationUnit(PACKAGE_NAME, "Entity1.java", sourceWriter);
-	}
-	
-	private void createTestGenericEmbeddable() throws Exception {
-		SourceWriter sourceWriter = new SourceWriter() {
-			public void appendSourceTo(StringBuilder sb) {
-				sb.append(CR);
-					sb.append("import ");
-					sb.append(JPA.EMBEDDABLE);
-					sb.append(";");
-					sb.append(CR);
-				sb.append("@Embeddable");
-				sb.append(CR);
-				sb.append("public class Embeddable1<T> {}").append(CR);
-			}
-		};
-		this.javaProject.createCompilationUnit(PACKAGE_NAME, "Embeddable1.java", sourceWriter);
-	}
-	
-	public void testMorphToVersionMapping() throws Exception {
-		createTestEntityWithEmbeddedMapping();
-		createEmbeddableType();
-		addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
-		
-		PersistentAttribute persistentAttribute = getJavaPersistentType().attributes().next();
-		EmbeddedMapping embeddedMapping = (EmbeddedMapping) persistentAttribute.getMapping();
-		JavaResourcePersistentType typeResource = getJpaProject().getJavaResourcePersistentType(FULLY_QUALIFIED_TYPE_NAME);
-		JavaResourcePersistentAttribute attributeResource = typeResource.persistableAttributes().next();
-		attributeResource.addSupportingAnnotation(0, JPA.ATTRIBUTE_OVERRIDE, JPA.ATTRIBUTE_OVERRIDES);
-		assertFalse(embeddedMapping.isDefault());
-		
-		persistentAttribute.setSpecifiedMappingKey(MappingKeys.VERSION_ATTRIBUTE_MAPPING_KEY);
-		assertTrue(persistentAttribute.getMapping() instanceof VersionMapping);
-	
-		assertNull(attributeResource.getMappingAnnotation(EmbeddedAnnotation.ANNOTATION_NAME));
-		assertNotNull(attributeResource.getMappingAnnotation(VersionAnnotation.ANNOTATION_NAME));
-		assertNull(attributeResource.getSupportingAnnotation(AttributeOverrideAnnotation.ANNOTATION_NAME));
-	}
-	
-	public void testMorphToTransientMapping() throws Exception {
-		createTestEntityWithEmbeddedMapping();
-		createEmbeddableType();
-		addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
-		
-		PersistentAttribute persistentAttribute = getJavaPersistentType().attributes().next();
-		EmbeddedMapping embeddedMapping = (EmbeddedMapping) persistentAttribute.getMapping();
-		JavaResourcePersistentType typeResource = getJpaProject().getJavaResourcePersistentType(FULLY_QUALIFIED_TYPE_NAME);
-		JavaResourcePersistentAttribute attributeResource = typeResource.persistableAttributes().next();
-		attributeResource.addSupportingAnnotation(0, JPA.ATTRIBUTE_OVERRIDE, JPA.ATTRIBUTE_OVERRIDES);
-		assertFalse(embeddedMapping.isDefault());
-		
-		persistentAttribute.setSpecifiedMappingKey(MappingKeys.TRANSIENT_ATTRIBUTE_MAPPING_KEY);
-		assertTrue(persistentAttribute.getMapping() instanceof TransientMapping);
-		
-		assertNull(attributeResource.getMappingAnnotation(EmbeddedAnnotation.ANNOTATION_NAME));
-		assertNotNull(attributeResource.getMappingAnnotation(TransientAnnotation.ANNOTATION_NAME));
-		assertNull(attributeResource.getSupportingAnnotation(AttributeOverrideAnnotation.ANNOTATION_NAME));
-	}
-	
-	public void testMorphToIdMapping() throws Exception {
-		createTestEntityWithEmbeddedMapping();
-		createEmbeddableType();
-		addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
-		
-		PersistentAttribute persistentAttribute = getJavaPersistentType().attributes().next();
-		EmbeddedMapping embeddedMapping = (EmbeddedMapping) persistentAttribute.getMapping();
-		JavaResourcePersistentType typeResource = getJpaProject().getJavaResourcePersistentType(FULLY_QUALIFIED_TYPE_NAME);
-		JavaResourcePersistentAttribute attributeResource = typeResource.persistableAttributes().next();
-		attributeResource.addSupportingAnnotation(0, JPA.ATTRIBUTE_OVERRIDE, JPA.ATTRIBUTE_OVERRIDES);
-		assertFalse(embeddedMapping.isDefault());
-		
-		persistentAttribute.setSpecifiedMappingKey(MappingKeys.ID_ATTRIBUTE_MAPPING_KEY);
-		assertTrue(persistentAttribute.getMapping() instanceof IdMapping);
-		
-		assertNull(attributeResource.getMappingAnnotation(EmbeddedAnnotation.ANNOTATION_NAME));
-		assertNotNull(attributeResource.getMappingAnnotation(IdAnnotation.ANNOTATION_NAME));
-		assertNull(attributeResource.getSupportingAnnotation(AttributeOverrideAnnotation.ANNOTATION_NAME));
-	}
-
-	public void testMorphToEmbeddedIdMapping() throws Exception {
-		createTestEntityWithEmbeddedMapping();
-		createEmbeddableType();
-		addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
-		
-		PersistentAttribute persistentAttribute = getJavaPersistentType().attributes().next();
-		EmbeddedMapping embeddedMapping = (EmbeddedMapping) persistentAttribute.getMapping();
-		JavaResourcePersistentType typeResource = getJpaProject().getJavaResourcePersistentType(FULLY_QUALIFIED_TYPE_NAME);
-		JavaResourcePersistentAttribute attributeResource = typeResource.persistableAttributes().next();
-		attributeResource.addSupportingAnnotation(0, JPA.ATTRIBUTE_OVERRIDE, JPA.ATTRIBUTE_OVERRIDES);
-		assertFalse(embeddedMapping.isDefault());
-		
-		persistentAttribute.setSpecifiedMappingKey(MappingKeys.EMBEDDED_ID_ATTRIBUTE_MAPPING_KEY);
-		assertTrue(persistentAttribute.getMapping() instanceof EmbeddedIdMapping);
-		
-		assertNull(attributeResource.getMappingAnnotation(EmbeddedAnnotation.ANNOTATION_NAME));
-		assertNotNull(attributeResource.getMappingAnnotation(EmbeddedIdAnnotation.ANNOTATION_NAME));
-		assertNotNull(attributeResource.getSupportingAnnotation(AttributeOverrideAnnotation.ANNOTATION_NAME));
-	}
-	
-	public void testMorphToOneToOneMapping() throws Exception {
-		createTestEntityWithEmbeddedMapping();
-		createEmbeddableType();
-		addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
-		
-		PersistentAttribute persistentAttribute = getJavaPersistentType().attributes().next();
-		EmbeddedMapping embeddedMapping = (EmbeddedMapping) persistentAttribute.getMapping();
-		JavaResourcePersistentType typeResource = getJpaProject().getJavaResourcePersistentType(FULLY_QUALIFIED_TYPE_NAME);
-		JavaResourcePersistentAttribute attributeResource = typeResource.persistableAttributes().next();
-		attributeResource.addSupportingAnnotation(0, JPA.ATTRIBUTE_OVERRIDE, JPA.ATTRIBUTE_OVERRIDES);
-		assertFalse(embeddedMapping.isDefault());
-		
-		persistentAttribute.setSpecifiedMappingKey(MappingKeys.ONE_TO_ONE_ATTRIBUTE_MAPPING_KEY);
-		assertTrue(persistentAttribute.getMapping() instanceof OneToOneMapping);
-		
-		assertNull(attributeResource.getMappingAnnotation(EmbeddedAnnotation.ANNOTATION_NAME));
-		assertNotNull(attributeResource.getMappingAnnotation(OneToOneAnnotation.ANNOTATION_NAME));
-		assertNull(attributeResource.getSupportingAnnotation(AttributeOverrideAnnotation.ANNOTATION_NAME));
-	}
-
-	public void testMorphToOneToManyMapping() throws Exception {
-		createTestEntityWithEmbeddedMapping();
-		createEmbeddableType();
-		addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
-		
-		PersistentAttribute persistentAttribute = getJavaPersistentType().attributes().next();
-		EmbeddedMapping embeddedMapping = (EmbeddedMapping) persistentAttribute.getMapping();
-		JavaResourcePersistentType typeResource = getJpaProject().getJavaResourcePersistentType(FULLY_QUALIFIED_TYPE_NAME);
-		JavaResourcePersistentAttribute attributeResource = typeResource.persistableAttributes().next();
-		attributeResource.addSupportingAnnotation(0, JPA.ATTRIBUTE_OVERRIDE, JPA.ATTRIBUTE_OVERRIDES);
-		assertFalse(embeddedMapping.isDefault());
-		
-		persistentAttribute.setSpecifiedMappingKey(MappingKeys.ONE_TO_MANY_ATTRIBUTE_MAPPING_KEY);
-		assertTrue(persistentAttribute.getMapping() instanceof OneToManyMapping);
-		
-		assertNull(attributeResource.getMappingAnnotation(EmbeddedAnnotation.ANNOTATION_NAME));
-		assertNotNull(attributeResource.getMappingAnnotation(OneToManyAnnotation.ANNOTATION_NAME));
-		assertNull(attributeResource.getSupportingAnnotation(AttributeOverrideAnnotation.ANNOTATION_NAME));
-	}
-
-	public void testMorphToManyToOneMapping() throws Exception {
-		createTestEntityWithEmbeddedMapping();
-		createEmbeddableType();
-		addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
-		
-		PersistentAttribute persistentAttribute = getJavaPersistentType().attributes().next();
-		EmbeddedMapping embeddedMapping = (EmbeddedMapping) persistentAttribute.getMapping();
-		JavaResourcePersistentType typeResource = getJpaProject().getJavaResourcePersistentType(FULLY_QUALIFIED_TYPE_NAME);
-		JavaResourcePersistentAttribute attributeResource = typeResource.persistableAttributes().next();
-		attributeResource.addSupportingAnnotation(0, JPA.ATTRIBUTE_OVERRIDE, JPA.ATTRIBUTE_OVERRIDES);
-		assertFalse(embeddedMapping.isDefault());
-		
-		persistentAttribute.setSpecifiedMappingKey(MappingKeys.MANY_TO_ONE_ATTRIBUTE_MAPPING_KEY);
-		assertTrue(persistentAttribute.getMapping() instanceof ManyToOneMapping);
-		
-		assertNull(attributeResource.getMappingAnnotation(EmbeddedAnnotation.ANNOTATION_NAME));
-		assertNotNull(attributeResource.getMappingAnnotation(ManyToOneAnnotation.ANNOTATION_NAME));
-		assertNull(attributeResource.getSupportingAnnotation(AttributeOverrideAnnotation.ANNOTATION_NAME));
-	}
-
-	public void testMorphToManyToManyMapping() throws Exception {
-		createTestEntityWithEmbeddedMapping();
-		createEmbeddableType();
-		addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
-		
-		PersistentAttribute persistentAttribute = getJavaPersistentType().attributes().next();
-		EmbeddedMapping embeddedMapping = (EmbeddedMapping) persistentAttribute.getMapping();
-		JavaResourcePersistentType typeResource = getJpaProject().getJavaResourcePersistentType(FULLY_QUALIFIED_TYPE_NAME);
-		JavaResourcePersistentAttribute attributeResource = typeResource.persistableAttributes().next();
-		attributeResource.addSupportingAnnotation(0, JPA.ATTRIBUTE_OVERRIDE, JPA.ATTRIBUTE_OVERRIDES);
-		assertFalse(embeddedMapping.isDefault());
-		
-		persistentAttribute.setSpecifiedMappingKey(MappingKeys.MANY_TO_MANY_ATTRIBUTE_MAPPING_KEY);
-		assertTrue(persistentAttribute.getMapping() instanceof ManyToManyMapping);
-		
-		assertNull(attributeResource.getMappingAnnotation(EmbeddedAnnotation.ANNOTATION_NAME));
-		assertNotNull(attributeResource.getMappingAnnotation(ManyToManyAnnotation.ANNOTATION_NAME));
-		assertNull(attributeResource.getSupportingAnnotation(AttributeOverrideAnnotation.ANNOTATION_NAME));
-	}
-
-	public void testSpecifiedAttributeOverrides() throws Exception {
-		createTestEntityWithEmbeddedMapping();
-		createEmbeddableType();
-		addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
-		addXmlClassRef(FULLY_QUALIFIED_EMBEDDABLE_TYPE_NAME);
-		
-		EmbeddedMapping embeddedMapping = (EmbeddedMapping) getJavaPersistentType().getAttributeNamed("myEmbedded").getMapping();
-		
-		ListIterator<JavaAttributeOverride> specifiedAttributeOverrides = embeddedMapping.specifiedAttributeOverrides();
-		
-		assertFalse(specifiedAttributeOverrides.hasNext());
-
-		JavaResourcePersistentType typeResource = getJpaProject().getJavaResourcePersistentType(FULLY_QUALIFIED_TYPE_NAME);
-		JavaResourcePersistentAttribute attributeResource = typeResource.persistableAttributes().next();
-		
-		//add an annotation to the resource model and verify the context model is updated
-		AttributeOverrideAnnotation attributeOverride = (AttributeOverrideAnnotation) attributeResource.addSupportingAnnotation(0, JPA.ATTRIBUTE_OVERRIDE, JPA.ATTRIBUTE_OVERRIDES);
-		attributeOverride.setName("FOO");
-		specifiedAttributeOverrides = embeddedMapping.specifiedAttributeOverrides();		
-		assertEquals("FOO", specifiedAttributeOverrides.next().getName());
-		assertFalse(specifiedAttributeOverrides.hasNext());
-
-		attributeOverride = (AttributeOverrideAnnotation) attributeResource.addSupportingAnnotation(1, JPA.ATTRIBUTE_OVERRIDE, JPA.ATTRIBUTE_OVERRIDES);
-		attributeOverride.setName("BAR");
-		specifiedAttributeOverrides = embeddedMapping.specifiedAttributeOverrides();		
-		assertEquals("FOO", specifiedAttributeOverrides.next().getName());
-		assertEquals("BAR", specifiedAttributeOverrides.next().getName());
-		assertFalse(specifiedAttributeOverrides.hasNext());
-
-
-		attributeOverride = (AttributeOverrideAnnotation) attributeResource.addSupportingAnnotation(0, JPA.ATTRIBUTE_OVERRIDE, JPA.ATTRIBUTE_OVERRIDES);
-		attributeOverride.setName("BAZ");
-		specifiedAttributeOverrides = embeddedMapping.specifiedAttributeOverrides();		
-		assertEquals("BAZ", specifiedAttributeOverrides.next().getName());
-		assertEquals("FOO", specifiedAttributeOverrides.next().getName());
-		assertEquals("BAR", specifiedAttributeOverrides.next().getName());
-		assertFalse(specifiedAttributeOverrides.hasNext());
-	
-		//move an annotation to the resource model and verify the context model is updated
-		attributeResource.moveSupportingAnnotation(1, 0, JPA.ATTRIBUTE_OVERRIDES);
-		specifiedAttributeOverrides = embeddedMapping.specifiedAttributeOverrides();		
-		assertEquals("FOO", specifiedAttributeOverrides.next().getName());
-		assertEquals("BAZ", specifiedAttributeOverrides.next().getName());
-		assertEquals("BAR", specifiedAttributeOverrides.next().getName());
-		assertFalse(specifiedAttributeOverrides.hasNext());
-
-		attributeResource.removeSupportingAnnotation(0, JPA.ATTRIBUTE_OVERRIDE, JPA.ATTRIBUTE_OVERRIDES);
-		specifiedAttributeOverrides = embeddedMapping.specifiedAttributeOverrides();		
-		assertEquals("BAZ", specifiedAttributeOverrides.next().getName());
-		assertEquals("BAR", specifiedAttributeOverrides.next().getName());
-		assertFalse(specifiedAttributeOverrides.hasNext());
-	
-		attributeResource.removeSupportingAnnotation(0, JPA.ATTRIBUTE_OVERRIDE, JPA.ATTRIBUTE_OVERRIDES);
-		specifiedAttributeOverrides = embeddedMapping.specifiedAttributeOverrides();		
-		assertEquals("BAR", specifiedAttributeOverrides.next().getName());
-		assertFalse(specifiedAttributeOverrides.hasNext());
-
-		
-		attributeResource.removeSupportingAnnotation(0, JPA.ATTRIBUTE_OVERRIDE, JPA.ATTRIBUTE_OVERRIDES);
-		specifiedAttributeOverrides = embeddedMapping.specifiedAttributeOverrides();		
-		assertFalse(specifiedAttributeOverrides.hasNext());
-	}
-
-	public void testVirtualAttributeOverrides() throws Exception {
-		createTestEntityWithEmbeddedMapping();
-		createEmbeddableType();
-		addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
-		addXmlClassRef(FULLY_QUALIFIED_EMBEDDABLE_TYPE_NAME);
-		
-		EmbeddedMapping embeddedMapping = (EmbeddedMapping) getJavaPersistentType().getAttributeNamed("myEmbedded").getMapping();
-
-		JavaResourcePersistentType typeResource = getJpaProject().getJavaResourcePersistentType(FULLY_QUALIFIED_TYPE_NAME);
-		JavaResourcePersistentAttribute attributeResource = typeResource.persistableAttributes().next();
-		assertEquals("myEmbedded", attributeResource.getName());
-		assertNull(attributeResource.getSupportingAnnotation(AttributeOverrideAnnotation.ANNOTATION_NAME));
-		assertNull(attributeResource.getSupportingAnnotation(AttributeOverridesAnnotation.ANNOTATION_NAME));
-		
-		assertEquals(2, embeddedMapping.virtualAttributeOverridesSize());
-		AttributeOverride defaultAttributeOverride = embeddedMapping.virtualAttributeOverrides().next();
-		assertEquals("city", defaultAttributeOverride.getName());
-		assertEquals("city", defaultAttributeOverride.getColumn().getName());
-		assertEquals(TYPE_NAME, defaultAttributeOverride.getColumn().getTable());
-		assertEquals(null, defaultAttributeOverride.getColumn().getColumnDefinition());
-		assertEquals(true, defaultAttributeOverride.getColumn().isInsertable());
-		assertEquals(true, defaultAttributeOverride.getColumn().isUpdatable());
-		assertEquals(false, defaultAttributeOverride.getColumn().isUnique());
-		assertEquals(true, defaultAttributeOverride.getColumn().isNullable());
-		assertEquals(255, defaultAttributeOverride.getColumn().getLength());
-		assertEquals(0, defaultAttributeOverride.getColumn().getPrecision());
-		assertEquals(0, defaultAttributeOverride.getColumn().getScale());
-		
-		
-		ListIterator<ClassRef> classRefs = getPersistenceUnit().specifiedClassRefs();
-		classRefs.next();
-		Embeddable embeddable = (Embeddable) classRefs.next().getJavaPersistentType().getMapping();
-		
-		BasicMapping cityMapping = (BasicMapping) embeddable.getPersistentType().getAttributeNamed("city").getMapping();
-		cityMapping.getColumn().setSpecifiedName("FOO");
-		cityMapping.getColumn().setSpecifiedTable("BAR");
-		cityMapping.getColumn().setColumnDefinition("COLUMN_DEF");
-		cityMapping.getColumn().setSpecifiedInsertable(Boolean.FALSE);
-		cityMapping.getColumn().setSpecifiedUpdatable(Boolean.FALSE);
-		cityMapping.getColumn().setSpecifiedUnique(Boolean.TRUE);
-		cityMapping.getColumn().setSpecifiedNullable(Boolean.FALSE);
-		cityMapping.getColumn().setSpecifiedLength(Integer.valueOf(5));
-		cityMapping.getColumn().setSpecifiedPrecision(Integer.valueOf(6));
-		cityMapping.getColumn().setSpecifiedScale(Integer.valueOf(7));
-		
-		assertEquals("myEmbedded", attributeResource.getName());
-		assertNull(attributeResource.getSupportingAnnotation(AttributeOverrideAnnotation.ANNOTATION_NAME));
-		assertNull(attributeResource.getSupportingAnnotation(AttributeOverridesAnnotation.ANNOTATION_NAME));
-
-		assertEquals(2, embeddedMapping.virtualAttributeOverridesSize());
-		defaultAttributeOverride = embeddedMapping.virtualAttributeOverrides().next();
-		assertEquals("city", defaultAttributeOverride.getName());
-		assertEquals("FOO", defaultAttributeOverride.getColumn().getName());
-		assertEquals("BAR", defaultAttributeOverride.getColumn().getTable());
-		assertEquals("COLUMN_DEF", defaultAttributeOverride.getColumn().getColumnDefinition());
-		assertEquals(false, defaultAttributeOverride.getColumn().isInsertable());
-		assertEquals(false, defaultAttributeOverride.getColumn().isUpdatable());
-		assertEquals(true, defaultAttributeOverride.getColumn().isUnique());
-		assertEquals(false, defaultAttributeOverride.getColumn().isNullable());
-		assertEquals(5, defaultAttributeOverride.getColumn().getLength());
-		assertEquals(6, defaultAttributeOverride.getColumn().getPrecision());
-		assertEquals(7, defaultAttributeOverride.getColumn().getScale());
-
-		cityMapping.getColumn().setSpecifiedName(null);
-		cityMapping.getColumn().setSpecifiedTable(null);
-		cityMapping.getColumn().setColumnDefinition(null);
-		cityMapping.getColumn().setSpecifiedInsertable(null);
-		cityMapping.getColumn().setSpecifiedUpdatable(null);
-		cityMapping.getColumn().setSpecifiedUnique(null);
-		cityMapping.getColumn().setSpecifiedNullable(null);
-		cityMapping.getColumn().setSpecifiedLength(null);
-		cityMapping.getColumn().setSpecifiedPrecision(null);
-		cityMapping.getColumn().setSpecifiedScale(null);
-		defaultAttributeOverride = embeddedMapping.virtualAttributeOverrides().next();
-		assertEquals("city", defaultAttributeOverride.getName());
-		assertEquals("city", defaultAttributeOverride.getColumn().getName());
-		assertEquals(TYPE_NAME, defaultAttributeOverride.getColumn().getTable());
-		assertEquals(null, defaultAttributeOverride.getColumn().getColumnDefinition());
-		assertEquals(true, defaultAttributeOverride.getColumn().isInsertable());
-		assertEquals(true, defaultAttributeOverride.getColumn().isUpdatable());
-		assertEquals(false, defaultAttributeOverride.getColumn().isUnique());
-		assertEquals(true, defaultAttributeOverride.getColumn().isNullable());
-		assertEquals(255, defaultAttributeOverride.getColumn().getLength());
-		assertEquals(0, defaultAttributeOverride.getColumn().getPrecision());
-		assertEquals(0, defaultAttributeOverride.getColumn().getScale());
-		
-		AttributeOverrideAnnotation annotation = (AttributeOverrideAnnotation) attributeResource.addSupportingAnnotation(0, JPA.ATTRIBUTE_OVERRIDE, JPA.ATTRIBUTE_OVERRIDES);
-		annotation.setName("city");
-		assertEquals(1, embeddedMapping.virtualAttributeOverridesSize());
-	}
-	
-	public void testSpecifiedAttributeOverridesSize() throws Exception {
-		createTestEntityWithEmbeddedMapping();
-		createEmbeddableType();
-		addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
-		addXmlClassRef(FULLY_QUALIFIED_EMBEDDABLE_TYPE_NAME);
-		
-		EmbeddedMapping embeddedMapping = (EmbeddedMapping) getJavaPersistentType().getAttributeNamed("myEmbedded").getMapping();
-		assertEquals(0, embeddedMapping.specifiedAttributeOverridesSize());
-
-		JavaResourcePersistentType typeResource = getJpaProject().getJavaResourcePersistentType(FULLY_QUALIFIED_TYPE_NAME);
-		JavaResourcePersistentAttribute attributeResource = typeResource.persistableAttributes().next();
-
-		//add an annotation to the resource model and verify the context model is updated
-		AttributeOverrideAnnotation attributeOverride = (AttributeOverrideAnnotation) attributeResource.addSupportingAnnotation(0, JPA.ATTRIBUTE_OVERRIDE, JPA.ATTRIBUTE_OVERRIDES);
-		attributeOverride.setName("FOO");
-		attributeOverride = (AttributeOverrideAnnotation) attributeResource.addSupportingAnnotation(0, JPA.ATTRIBUTE_OVERRIDE, JPA.ATTRIBUTE_OVERRIDES);
-		attributeOverride.setName("BAR");
-
-		assertEquals(2, embeddedMapping.specifiedAttributeOverridesSize());
-	}
-	
-	public void testAttributeOverridesSize() throws Exception {
-		createTestEntityWithEmbeddedMapping();
-		createEmbeddableType();
-		addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
-		addXmlClassRef(FULLY_QUALIFIED_EMBEDDABLE_TYPE_NAME);
-		
-		EmbeddedMapping embeddedMapping = (EmbeddedMapping) getJavaPersistentType().getAttributeNamed("myEmbedded").getMapping();
-		assertEquals(2, embeddedMapping.attributeOverridesSize());
-
-		JavaResourcePersistentType typeResource = getJpaProject().getJavaResourcePersistentType(FULLY_QUALIFIED_TYPE_NAME);
-		JavaResourcePersistentAttribute attributeResource = typeResource.persistableAttributes().next();
-
-		//add an annotation to the resource model and verify the context model is updated
-		AttributeOverrideAnnotation attributeOverride = (AttributeOverrideAnnotation) attributeResource.addSupportingAnnotation(0, JPA.ATTRIBUTE_OVERRIDE, JPA.ATTRIBUTE_OVERRIDES);
-		attributeOverride.setName("FOO");
-		attributeOverride = (AttributeOverrideAnnotation) attributeResource.addSupportingAnnotation(0, JPA.ATTRIBUTE_OVERRIDE, JPA.ATTRIBUTE_OVERRIDES);
-		attributeOverride.setName("BAR");
-
-		assertEquals(4, embeddedMapping.attributeOverridesSize());
-		
-		attributeOverride = (AttributeOverrideAnnotation) attributeResource.addSupportingAnnotation(0, JPA.ATTRIBUTE_OVERRIDE, JPA.ATTRIBUTE_OVERRIDES);
-		attributeOverride.setName("city");
-		assertEquals(4, embeddedMapping.attributeOverridesSize());	
-	}
-	
-	public void testVirtualAttributeOverridesSize() throws Exception {
-		createTestEntityWithEmbeddedMapping();
-		createEmbeddableType();
-		addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
-		addXmlClassRef(FULLY_QUALIFIED_EMBEDDABLE_TYPE_NAME);
-		
-		EmbeddedMapping embeddedMapping = (EmbeddedMapping) getJavaPersistentType().getAttributeNamed("myEmbedded").getMapping();
-		assertEquals(2, embeddedMapping.virtualAttributeOverridesSize());
-
-		JavaResourcePersistentType typeResource = getJpaProject().getJavaResourcePersistentType(FULLY_QUALIFIED_TYPE_NAME);
-		JavaResourcePersistentAttribute attributeResource = typeResource.persistableAttributes().next();
-
-		//add an annotation to the resource model and verify the context model is updated
-		AttributeOverrideAnnotation attributeOverride = (AttributeOverrideAnnotation) attributeResource.addSupportingAnnotation(0, JPA.ATTRIBUTE_OVERRIDE, JPA.ATTRIBUTE_OVERRIDES);
-		attributeOverride.setName("FOO");
-
-		assertEquals(2, embeddedMapping.virtualAttributeOverridesSize());
-		
-		attributeOverride = (AttributeOverrideAnnotation) attributeResource.addSupportingAnnotation(0, JPA.ATTRIBUTE_OVERRIDE, JPA.ATTRIBUTE_OVERRIDES);
-		attributeOverride.setName("city");
-		assertEquals(1, embeddedMapping.virtualAttributeOverridesSize());
-		
-		attributeOverride = (AttributeOverrideAnnotation) attributeResource.addSupportingAnnotation(0, JPA.ATTRIBUTE_OVERRIDE, JPA.ATTRIBUTE_OVERRIDES);
-		attributeOverride.setName("state");
-		assertEquals(0, embeddedMapping.virtualAttributeOverridesSize());
-	}
-
-	public void testAttributeOverrideSetVirtual() throws Exception {
-		createTestEntityWithEmbeddedMapping();
-		createEmbeddableType();
-		addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
-		addXmlClassRef(FULLY_QUALIFIED_EMBEDDABLE_TYPE_NAME);
-				
-		EmbeddedMapping embeddedMapping = (EmbeddedMapping) getJavaPersistentType().getAttributeNamed("myEmbedded").getMapping();
-		embeddedMapping.virtualAttributeOverrides().next().setVirtual(false);
-		embeddedMapping.virtualAttributeOverrides().next().setVirtual(false);
-		
-		JavaResourcePersistentType typeResource = getJpaProject().getJavaResourcePersistentType(FULLY_QUALIFIED_TYPE_NAME);
-		JavaResourcePersistentAttribute attributeResource = typeResource.persistableAttributes().next();
-		Iterator<NestableAnnotation> attributeOverrides = attributeResource.supportingAnnotations(AttributeOverrideAnnotation.ANNOTATION_NAME, AttributeOverridesAnnotation.ANNOTATION_NAME);
-		
-		assertEquals("city", ((AttributeOverrideAnnotation) attributeOverrides.next()).getName());
-		assertEquals("state", ((AttributeOverrideAnnotation) attributeOverrides.next()).getName());
-		assertFalse(attributeOverrides.hasNext());
-		
-		embeddedMapping.specifiedAttributeOverrides().next().setVirtual(true);
-		attributeOverrides = attributeResource.supportingAnnotations(AttributeOverrideAnnotation.ANNOTATION_NAME, AttributeOverridesAnnotation.ANNOTATION_NAME);
-		assertEquals("state", ((AttributeOverrideAnnotation) attributeOverrides.next()).getName());
-		assertFalse(attributeOverrides.hasNext());
-		
-		assertEquals("city", embeddedMapping.virtualAttributeOverrides().next().getName());
-		assertEquals(1, embeddedMapping.virtualAttributeOverridesSize());
-		
-		embeddedMapping.specifiedAttributeOverrides().next().setVirtual(true);
-		attributeOverrides = attributeResource.supportingAnnotations(AttributeOverrideAnnotation.ANNOTATION_NAME, AttributeOverridesAnnotation.ANNOTATION_NAME);
-		assertFalse(attributeOverrides.hasNext());
-		
-		Iterator<AttributeOverride> virtualAttributeOverrides = embeddedMapping.virtualAttributeOverrides();
-		assertEquals("city", virtualAttributeOverrides.next().getName());
-		assertEquals("state", virtualAttributeOverrides.next().getName());
-		assertEquals(2, embeddedMapping.virtualAttributeOverridesSize());
-	}
-	
-	public void testAttributeOverrideSetVirtual2() throws Exception {
-		createTestEntityWithEmbeddedMapping();
-		createEmbeddableType();
-		addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
-		addXmlClassRef(FULLY_QUALIFIED_EMBEDDABLE_TYPE_NAME);
-		
-		EmbeddedMapping embeddedMapping = (EmbeddedMapping) getJavaPersistentType().getAttributeNamed("myEmbedded").getMapping();
-		ListIterator<AttributeOverride> virtualAttributeOverrides = embeddedMapping.virtualAttributeOverrides();
-		virtualAttributeOverrides.next();	
-		virtualAttributeOverrides.next().setVirtual(false);
-		embeddedMapping.virtualAttributeOverrides().next().setVirtual(false);
-		
-		JavaResourcePersistentType typeResource = getJpaProject().getJavaResourcePersistentType(FULLY_QUALIFIED_TYPE_NAME);
-		JavaResourcePersistentAttribute attributeResource = typeResource.persistableAttributes().next();
-		Iterator<NestableAnnotation> attributeOverrides = attributeResource.supportingAnnotations(AttributeOverrideAnnotation.ANNOTATION_NAME, AttributeOverridesAnnotation.ANNOTATION_NAME);
-		
-		assertEquals("state", ((AttributeOverrideAnnotation) attributeOverrides.next()).getName());
-		assertEquals("city", ((AttributeOverrideAnnotation) attributeOverrides.next()).getName());
-		assertFalse(attributeOverrides.hasNext());
-	}
-	
-	public void testMoveSpecifiedAttributeOverride() throws Exception {
-		createTestEntityWithEmbeddedMapping();
-		createEmbeddableType();
-		addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
-		addXmlClassRef(FULLY_QUALIFIED_EMBEDDABLE_TYPE_NAME);
-		
-		EmbeddedMapping embeddedMapping = (EmbeddedMapping) getJavaPersistentType().getAttributeNamed("myEmbedded").getMapping();
-		embeddedMapping.virtualAttributeOverrides().next().setVirtual(false);
-		embeddedMapping.virtualAttributeOverrides().next().setVirtual(false);
-		
-		JavaResourcePersistentType typeResource = getJpaProject().getJavaResourcePersistentType(FULLY_QUALIFIED_TYPE_NAME);
-		JavaResourcePersistentAttribute attributeResource = typeResource.persistableAttributes().next();
-		
-		attributeResource.moveSupportingAnnotation(1, 0, AttributeOverridesAnnotation.ANNOTATION_NAME);
-		
-		Iterator<NestableAnnotation> attributeOverrides = attributeResource.supportingAnnotations(AttributeOverrideAnnotation.ANNOTATION_NAME, AttributeOverridesAnnotation.ANNOTATION_NAME);
-
-		assertEquals("state", ((AttributeOverrideAnnotation) attributeOverrides.next()).getName());
-		assertEquals("city", ((AttributeOverrideAnnotation) attributeOverrides.next()).getName());
-		assertFalse(attributeOverrides.hasNext());
-	}
-}
diff --git a/jpa/tests/org.eclipse.jpt.core.tests/src/org/eclipse/jpt/core/tests/internal/context/java/JavaEntityTests.java b/jpa/tests/org.eclipse.jpt.core.tests/src/org/eclipse/jpt/core/tests/internal/context/java/JavaEntityTests.java
deleted file mode 100644
index 401db5d..0000000
--- a/jpa/tests/org.eclipse.jpt.core.tests/src/org/eclipse/jpt/core/tests/internal/context/java/JavaEntityTests.java
+++ /dev/null
@@ -1,3109 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.core.tests.internal.context.java;
-
-import java.util.Iterator;
-import java.util.ListIterator;
-
-import org.eclipse.jdt.core.ICompilationUnit;
-import org.eclipse.jpt.core.JptCorePlugin;
-import org.eclipse.jpt.core.MappingKeys;
-import org.eclipse.jpt.core.context.AccessType;
-import org.eclipse.jpt.core.context.AssociationOverride;
-import org.eclipse.jpt.core.context.AttributeOverride;
-import org.eclipse.jpt.core.context.BasicMapping;
-import org.eclipse.jpt.core.context.DiscriminatorType;
-import org.eclipse.jpt.core.context.Embeddable;
-import org.eclipse.jpt.core.context.Entity;
-import org.eclipse.jpt.core.context.IdMapping;
-import org.eclipse.jpt.core.context.InheritanceType;
-import org.eclipse.jpt.core.context.MappedSuperclass;
-import org.eclipse.jpt.core.context.NamedNativeQuery;
-import org.eclipse.jpt.core.context.NamedQuery;
-import org.eclipse.jpt.core.context.PersistentAttribute;
-import org.eclipse.jpt.core.context.PersistentType;
-import org.eclipse.jpt.core.context.PrimaryKeyJoinColumn;
-import org.eclipse.jpt.core.context.SecondaryTable;
-import org.eclipse.jpt.core.context.Table;
-import org.eclipse.jpt.core.context.java.JavaAssociationOverride;
-import org.eclipse.jpt.core.context.java.JavaAttributeOverride;
-import org.eclipse.jpt.core.context.java.JavaEntity;
-import org.eclipse.jpt.core.context.java.JavaIdMapping;
-import org.eclipse.jpt.core.context.java.JavaPersistentType;
-import org.eclipse.jpt.core.context.java.JavaPrimaryKeyJoinColumn;
-import org.eclipse.jpt.core.context.java.JavaSecondaryTable;
-import org.eclipse.jpt.core.context.orm.OrmPersistentType;
-import org.eclipse.jpt.core.context.persistence.ClassRef;
-import org.eclipse.jpt.core.internal.context.java.JavaNullTypeMapping;
-import org.eclipse.jpt.core.resource.java.AssociationOverrideAnnotation;
-import org.eclipse.jpt.core.resource.java.AssociationOverridesAnnotation;
-import org.eclipse.jpt.core.resource.java.AttributeOverrideAnnotation;
-import org.eclipse.jpt.core.resource.java.AttributeOverridesAnnotation;
-import org.eclipse.jpt.core.resource.java.DiscriminatorColumnAnnotation;
-import org.eclipse.jpt.core.resource.java.DiscriminatorValueAnnotation;
-import org.eclipse.jpt.core.resource.java.EntityAnnotation;
-import org.eclipse.jpt.core.resource.java.IdClassAnnotation;
-import org.eclipse.jpt.core.resource.java.InheritanceAnnotation;
-import org.eclipse.jpt.core.resource.java.JPA;
-import org.eclipse.jpt.core.resource.java.JavaResourcePersistentType;
-import org.eclipse.jpt.core.resource.java.NamedNativeQueriesAnnotation;
-import org.eclipse.jpt.core.resource.java.NamedNativeQueryAnnotation;
-import org.eclipse.jpt.core.resource.java.NamedQueriesAnnotation;
-import org.eclipse.jpt.core.resource.java.NamedQueryAnnotation;
-import org.eclipse.jpt.core.resource.java.NestableAnnotation;
-import org.eclipse.jpt.core.resource.java.PrimaryKeyJoinColumnAnnotation;
-import org.eclipse.jpt.core.resource.java.PrimaryKeyJoinColumnsAnnotation;
-import org.eclipse.jpt.core.resource.java.SecondaryTableAnnotation;
-import org.eclipse.jpt.core.resource.java.SecondaryTablesAnnotation;
-import org.eclipse.jpt.core.resource.java.SequenceGeneratorAnnotation;
-import org.eclipse.jpt.core.resource.java.TableAnnotation;
-import org.eclipse.jpt.core.resource.java.TableGeneratorAnnotation;
-import org.eclipse.jpt.core.resource.persistence.PersistenceFactory;
-import org.eclipse.jpt.core.resource.persistence.XmlMappingFileRef;
-import org.eclipse.jpt.core.tests.internal.context.ContextModelTestCase;
-import org.eclipse.jpt.core.tests.internal.projects.TestJavaProject.SourceWriter;
-import org.eclipse.jpt.utility.internal.CollectionTools;
-import org.eclipse.jpt.utility.internal.iterators.ArrayIterator;
-
-@SuppressWarnings("nls")
-public class JavaEntityTests extends ContextModelTestCase
-{
-	private static final String ENTITY_NAME = "entityName";
-	private static final String TABLE_NAME = "MY_TABLE";
-	private static final String DISCRIMINATOR_VALUE = "MY_DISCRIMINATOR_VALUE";
-	protected static final String SUB_TYPE_NAME = "AnnotationTestTypeChild";
-	protected static final String FULLY_QUALIFIED_SUB_TYPE_NAME = PACKAGE_NAME + "." + SUB_TYPE_NAME;
-	
-	
-	public JavaEntityTests(String name) {
-		super(name);
-	}
-
-	private ICompilationUnit createTestEntity() throws Exception {
-		return this.createTestType(new DefaultAnnotationWriter() {
-			@Override
-			public Iterator<String> imports() {
-				return new ArrayIterator<String>(JPA.ENTITY, JPA.ID);
-			}
-			@Override
-			public void appendTypeAnnotationTo(StringBuilder sb) {
-				sb.append("@Entity");
-			}
-		});
-	}
-	
-	private void createTestAbstractEntity() throws Exception {
-		SourceWriter sourceWriter = new SourceWriter() {
-			public void appendSourceTo(StringBuilder sb) {
-				sb.append(CR);
-					sb.append("import ");
-					sb.append(JPA.ENTITY);
-					sb.append(";");
-					sb.append(CR);
-				sb.append("@Entity");
-				sb.append(CR);
-				sb.append("public abstract class ").append(TYPE_NAME).append(" ");
-				sb.append("{}").append(CR);
-			}
-		};
-		this.javaProject.createCompilationUnit(PACKAGE_NAME, FILE_NAME, sourceWriter);
-	}
-
-	private ICompilationUnit createTestEntityAnnotationOnProperty() throws Exception {	
-		return this.createTestType(new DefaultAnnotationWriter() {
-			@Override
-			public Iterator<String> imports() {
-				return new ArrayIterator<String>(JPA.ENTITY, JPA.ID);
-			}
-			@Override
-			public void appendTypeAnnotationTo(StringBuilder sb) {
-				sb.append("@Entity");
-			}
-			
-			@Override
-			public void appendGetIdMethodAnnotationTo(StringBuilder sb) {
-				sb.append("@Id");
-			}
-		});
-	}
-
-	private ICompilationUnit createTestMappedSuperclass() throws Exception {
-		return this.createTestType(new DefaultAnnotationWriter() {
-			@Override
-			public Iterator<String> imports() {
-				return new ArrayIterator<String>(JPA.MAPPED_SUPERCLASS, JPA.ONE_TO_ONE);
-			}
-			@Override
-			public void appendTypeAnnotationTo(StringBuilder sb) {
-				sb.append("@MappedSuperclass");
-			}
-			
-			@Override
-			public void appendGetIdMethodAnnotationTo(StringBuilder sb) {
-				sb.append("private String foo;").append(CR);
-				sb.append(CR);
-				sb.append("    @OneToOne");
-				sb.append(CR);
-				sb.append("    private int address;").append(CR);
-				sb.append(CR);
-				sb.append("    @OneToOne");
-				sb.append(CR);
-				sb.append("    private int address2;").append(CR);
-				sb.append(CR);
-				sb.append("    ");
-			}
-		});
-	}
-	
-	private ICompilationUnit createTestAbstractEntityTablePerClass() throws Exception {
-		return this.createTestType(new DefaultAnnotationWriter() {
-			@Override
-			public Iterator<String> imports() {
-				return new ArrayIterator<String>(JPA.ENTITY, JPA.INHERITANCE, JPA.INHERITANCE_TYPE, JPA.ONE_TO_ONE);
-			}
-			@Override
-			public void appendTypeAnnotationTo(StringBuilder sb) {
-				sb.append("@Entity").append(CR);
-				sb.append("@Inheritance(strategy=InheritanceType.TABLE_PER_CLASS)");
-				sb.append("abstract");
-			}
-			
-			@Override
-			public void appendGetIdMethodAnnotationTo(StringBuilder sb) {
-				sb.append("private String foo;").append(CR);
-				sb.append(CR);
-				sb.append("    @OneToOne");
-				sb.append(CR);
-				sb.append("    private int address;").append(CR);
-				sb.append(CR);
-				sb.append("    @OneToOne");
-				sb.append(CR);
-				sb.append("    private int address2;").append(CR);
-				sb.append(CR);
-				sb.append("    ");
-			}
-		});
-	}
-
-	private ICompilationUnit createTestEntityWithName() throws Exception {
-		return this.createTestType(new DefaultAnnotationWriter() {
-			@Override
-			public Iterator<String> imports() {
-				return new ArrayIterator<String>(JPA.ENTITY, JPA.ID);
-			}
-			@Override
-			public void appendTypeAnnotationTo(StringBuilder sb) {
-				sb.append("@Entity(name=\"" + ENTITY_NAME + "\")");
-			}
-		});
-	}
-	
-	private ICompilationUnit createTestEntityWithTable() throws Exception {
-		return this.createTestType(new DefaultAnnotationWriter() {
-			@Override
-			public Iterator<String> imports() {
-				return new ArrayIterator<String>(JPA.ENTITY, JPA.TABLE);
-			}
-			@Override
-			public void appendTypeAnnotationTo(StringBuilder sb) {
-				sb.append("@Entity").append(CR);
-				sb.append("@Table(name=\"" + TABLE_NAME + "\")");
-			}
-		});
-	}
-
-	private void createTestSubType() throws Exception {
-		SourceWriter sourceWriter = new SourceWriter() {
-			public void appendSourceTo(StringBuilder sb) {
-				sb.append(CR);
-					sb.append("import ");
-					sb.append(JPA.ENTITY);
-					sb.append(";");
-					sb.append(CR);
-				sb.append("@Entity");
-				sb.append(CR);
-				sb.append("public class ").append("AnnotationTestTypeChild").append(" ");
-				sb.append("extends " + TYPE_NAME + " ");
-				sb.append("{}").append(CR);
-			}
-		};
-		this.javaProject.createCompilationUnit(PACKAGE_NAME, "AnnotationTestTypeChild.java", sourceWriter);
-	}
-
-	private ICompilationUnit createTestEntityWithInheritance() throws Exception {	
-		return this.createTestType(new DefaultAnnotationWriter() {
-			@Override
-			public Iterator<String> imports() {
-				return new ArrayIterator<String>(JPA.ENTITY, JPA.INHERITANCE, JPA.INHERITANCE_TYPE);
-			}
-			@Override
-			public void appendTypeAnnotationTo(StringBuilder sb) {
-				sb.append("@Entity").append(CR);
-				sb.append("@Inheritance(strategy=InheritanceType.TABLE_PER_CLASS)").append(CR);
-			}
-		});
-	}
-	
-	private ICompilationUnit createTestEntityWithDiscriminatorValue() throws Exception {	
-		return this.createTestType(new DefaultAnnotationWriter() {
-			@Override
-			public Iterator<String> imports() {
-				return new ArrayIterator<String>(JPA.ENTITY, JPA.DISCRIMINATOR_VALUE);
-			}
-			@Override
-			public void appendTypeAnnotationTo(StringBuilder sb) {
-				sb.append("@Entity").append(CR);
-				sb.append("@DiscriminatorValue(value=\"" + DISCRIMINATOR_VALUE + "\")");
-			}
-		});
-	}
-	
-	private ICompilationUnit createTestEntityWithSecondaryTable() throws Exception {
-		return this.createTestType(new DefaultAnnotationWriter() {
-			@Override
-			public Iterator<String> imports() {
-				return new ArrayIterator<String>(JPA.ENTITY, JPA.SECONDARY_TABLE);
-			}
-			@Override
-			public void appendTypeAnnotationTo(StringBuilder sb) {
-				sb.append("@Entity").append(CR);
-				sb.append("@SecondaryTable(name=\"foo\")");
-			}
-		});
-	}
-
-	private ICompilationUnit createTestEntityWithSecondaryTables() throws Exception {
-		return this.createTestType(new DefaultAnnotationWriter() {
-			@Override
-			public Iterator<String> imports() {
-				return new ArrayIterator<String>(JPA.ENTITY, JPA.SECONDARY_TABLE, JPA.SECONDARY_TABLES);
-			}
-			@Override
-			public void appendTypeAnnotationTo(StringBuilder sb) {
-				sb.append("@Entity").append(CR);
-				sb.append("@SecondaryTables({@SecondaryTable(name=\"foo\"), @SecondaryTable(name=\"bar\")})");
-			}
-		});
-	}
-
-	private ICompilationUnit createAbstractTestEntity() throws Exception {
-		return this.createTestType(new DefaultAnnotationWriter() {
-			@Override
-			public Iterator<String> imports() {
-				return new ArrayIterator<String>(JPA.ENTITY, JPA.INHERITANCE, JPA.INHERITANCE_TYPE);
-			}
-			@Override
-			public void appendTypeAnnotationTo(StringBuilder sb) {
-				sb.append("@Entity").append(CR);
-				sb.append("@Inheritance(strategy=InheritanceType.TABLE_PER_CLASS)").append(CR);
-				sb.append("abstract");
-			}
-		});
-	}
-
-	public void testMorphToMappedSuperclass() throws Exception {
-		createTestEntity();
-		addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
-		
-		Entity entity = (Entity) getJavaPersistentType().getMapping();
-		entity.getTable().setSpecifiedName("FOO");
-		entity.addSpecifiedSecondaryTable(0);
-		entity.addSpecifiedPrimaryKeyJoinColumn(0);
-		JavaResourcePersistentType typeResource = getJpaProject().getJavaResourcePersistentType(FULLY_QUALIFIED_TYPE_NAME);
-		typeResource.addSupportingAnnotation(0, JPA.ATTRIBUTE_OVERRIDE, JPA.ATTRIBUTE_OVERRIDES);
-		typeResource.addSupportingAnnotation(0, JPA.ASSOCIATION_OVERRIDE, JPA.ASSOCIATION_OVERRIDES);
-		entity.setSpecifiedInheritanceStrategy(InheritanceType.JOINED);
-		entity.setSpecifiedDiscriminatorValue("asdf");
-		entity.getDiscriminatorColumn().setSpecifiedName("BAR");
-		entity.addTableGenerator();
-		entity.addSequenceGenerator();
-		entity.setIdClass("myIdClass");
-		entity.addNamedNativeQuery(0);
-		entity.addNamedQuery(0);
-		
-		getJavaPersistentType().setMappingKey(MappingKeys.MAPPED_SUPERCLASS_TYPE_MAPPING_KEY);
-		assertTrue(getJavaPersistentType().getMapping() instanceof MappedSuperclass);
-		
-		assertNull(typeResource.getMappingAnnotation(EntityAnnotation.ANNOTATION_NAME));
-		assertNull(typeResource.getSupportingAnnotation(TableAnnotation.ANNOTATION_NAME));
-		assertNull(typeResource.getSupportingAnnotation(SecondaryTableAnnotation.ANNOTATION_NAME));
-		assertNull(typeResource.getSupportingAnnotation(PrimaryKeyJoinColumnAnnotation.ANNOTATION_NAME));
-		assertNull(typeResource.getSupportingAnnotation(AttributeOverrideAnnotation.ANNOTATION_NAME));
-		assertNull(typeResource.getSupportingAnnotation(AssociationOverrideAnnotation.ANNOTATION_NAME));
-		assertNull(typeResource.getSupportingAnnotation(InheritanceAnnotation.ANNOTATION_NAME));
-		assertNull(typeResource.getSupportingAnnotation(DiscriminatorValueAnnotation.ANNOTATION_NAME));
-		assertNull(typeResource.getSupportingAnnotation(DiscriminatorColumnAnnotation.ANNOTATION_NAME));
-		assertNull(typeResource.getSupportingAnnotation(TableGeneratorAnnotation.ANNOTATION_NAME));
-		assertNull(typeResource.getSupportingAnnotation(SequenceGeneratorAnnotation.ANNOTATION_NAME));
-		assertNotNull(typeResource.getSupportingAnnotation(IdClassAnnotation.ANNOTATION_NAME));
-		assertNull(typeResource.getSupportingAnnotation(NamedQueryAnnotation.ANNOTATION_NAME));
-		assertNull(typeResource.getSupportingAnnotation(NamedNativeQueryAnnotation.ANNOTATION_NAME));
-	}
-
-	public void testMorphToEmbeddable() throws Exception {
-		createTestEntity();
-		addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
-		
-		Entity entity = (Entity) getJavaPersistentType().getMapping();
-		entity.getTable().setSpecifiedName("FOO");
-		entity.addSpecifiedSecondaryTable(0);
-		entity.addSpecifiedPrimaryKeyJoinColumn(0);
-		JavaResourcePersistentType typeResource = getJpaProject().getJavaResourcePersistentType(FULLY_QUALIFIED_TYPE_NAME);
-		typeResource.addSupportingAnnotation(0, JPA.ATTRIBUTE_OVERRIDE, JPA.ATTRIBUTE_OVERRIDES);
-		typeResource.addSupportingAnnotation(0, JPA.ASSOCIATION_OVERRIDE, JPA.ASSOCIATION_OVERRIDES);
-		entity.setSpecifiedInheritanceStrategy(InheritanceType.JOINED);
-		entity.setSpecifiedDiscriminatorValue("asdf");
-		entity.getDiscriminatorColumn().setSpecifiedName("BAR");
-		entity.addTableGenerator();
-		entity.addSequenceGenerator();
-		entity.setIdClass("myIdClass");
-		entity.addNamedNativeQuery(0);
-		entity.addNamedQuery(0);
-		
-		getJavaPersistentType().setMappingKey(MappingKeys.EMBEDDABLE_TYPE_MAPPING_KEY);
-		assertTrue(getJavaPersistentType().getMapping() instanceof Embeddable);
-		
-		assertNull(typeResource.getMappingAnnotation(EntityAnnotation.ANNOTATION_NAME));
-		assertNull(typeResource.getSupportingAnnotation(TableAnnotation.ANNOTATION_NAME));
-		assertNull(typeResource.getSupportingAnnotation(SecondaryTableAnnotation.ANNOTATION_NAME));
-		assertNull(typeResource.getSupportingAnnotation(PrimaryKeyJoinColumnAnnotation.ANNOTATION_NAME));
-		assertNull(typeResource.getSupportingAnnotation(AttributeOverrideAnnotation.ANNOTATION_NAME));
-		assertNull(typeResource.getSupportingAnnotation(AssociationOverrideAnnotation.ANNOTATION_NAME));
-		assertNull(typeResource.getSupportingAnnotation(InheritanceAnnotation.ANNOTATION_NAME));
-		assertNull(typeResource.getSupportingAnnotation(DiscriminatorValueAnnotation.ANNOTATION_NAME));
-		assertNull(typeResource.getSupportingAnnotation(DiscriminatorColumnAnnotation.ANNOTATION_NAME));
-		assertNull(typeResource.getSupportingAnnotation(TableGeneratorAnnotation.ANNOTATION_NAME));
-		assertNull(typeResource.getSupportingAnnotation(SequenceGeneratorAnnotation.ANNOTATION_NAME));
-		assertNull(typeResource.getSupportingAnnotation(IdClassAnnotation.ANNOTATION_NAME));
-		assertNull(typeResource.getSupportingAnnotation(NamedQueryAnnotation.ANNOTATION_NAME));
-		assertNull(typeResource.getSupportingAnnotation(NamedNativeQueryAnnotation.ANNOTATION_NAME));
-	}
-	
-	public void testMorphToNull() throws Exception {
-		createTestEntity();
-		addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
-		
-		Entity entity = (Entity) getJavaPersistentType().getMapping();
-		entity.getTable().setSpecifiedName("FOO");
-		entity.addSpecifiedSecondaryTable(0);
-		entity.addSpecifiedPrimaryKeyJoinColumn(0);
-		JavaResourcePersistentType typeResource = getJpaProject().getJavaResourcePersistentType(FULLY_QUALIFIED_TYPE_NAME);
-		typeResource.addSupportingAnnotation(0, JPA.ATTRIBUTE_OVERRIDE, JPA.ATTRIBUTE_OVERRIDES);
-		typeResource.addSupportingAnnotation(0, JPA.ASSOCIATION_OVERRIDE, JPA.ASSOCIATION_OVERRIDES);
-		entity.setSpecifiedInheritanceStrategy(InheritanceType.JOINED);
-		entity.setSpecifiedDiscriminatorValue("asdf");
-		entity.getDiscriminatorColumn().setSpecifiedName("BAR");
-		entity.addTableGenerator();
-		entity.addSequenceGenerator();
-		entity.setIdClass("myIdClass");
-		entity.addNamedNativeQuery(0);
-		entity.addNamedQuery(0);
-		
-		getJavaPersistentType().setMappingKey(MappingKeys.NULL_TYPE_MAPPING_KEY);
-		assertTrue(getJavaPersistentType().getMapping() instanceof JavaNullTypeMapping);
-		
-		assertNull(typeResource.getMappingAnnotation(EntityAnnotation.ANNOTATION_NAME));
-		assertNull(typeResource.getSupportingAnnotation(TableAnnotation.ANNOTATION_NAME));
-		assertNull(typeResource.getSupportingAnnotation(SecondaryTableAnnotation.ANNOTATION_NAME));
-		assertNull(typeResource.getSupportingAnnotation(PrimaryKeyJoinColumnAnnotation.ANNOTATION_NAME));
-		assertNull(typeResource.getSupportingAnnotation(AttributeOverrideAnnotation.ANNOTATION_NAME));
-		assertNull(typeResource.getSupportingAnnotation(AssociationOverrideAnnotation.ANNOTATION_NAME));
-		assertNull(typeResource.getSupportingAnnotation(InheritanceAnnotation.ANNOTATION_NAME));
-		assertNull(typeResource.getSupportingAnnotation(DiscriminatorValueAnnotation.ANNOTATION_NAME));
-		assertNull(typeResource.getSupportingAnnotation(DiscriminatorColumnAnnotation.ANNOTATION_NAME));
-		assertNull(typeResource.getSupportingAnnotation(TableGeneratorAnnotation.ANNOTATION_NAME));
-		assertNull(typeResource.getSupportingAnnotation(SequenceGeneratorAnnotation.ANNOTATION_NAME));
-		assertNull(typeResource.getSupportingAnnotation(IdClassAnnotation.ANNOTATION_NAME));
-		assertNull(typeResource.getSupportingAnnotation(NamedQueryAnnotation.ANNOTATION_NAME));
-		assertNull(typeResource.getSupportingAnnotation(NamedNativeQueryAnnotation.ANNOTATION_NAME));
-	}
-	
-	public void testAccessNoAnnotations() throws Exception {
-		createTestEntity();
-		addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
-		assertEquals(AccessType.FIELD, getJavaPersistentType().getAccess());
-	}
-
-	public void testAccessAnnotationsOnParent() throws Exception {
-		createTestEntityAnnotationOnProperty();
-		createTestSubType();
-		addXmlClassRef(PACKAGE_NAME + ".AnnotationTestTypeChild");
-		addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
-		XmlMappingFileRef mappingFileRef = PersistenceFactory.eINSTANCE.createXmlMappingFileRef();
-		mappingFileRef.setFileName(JptCorePlugin.DEFAULT_ORM_XML_FILE_PATH);
-		getXmlPersistenceUnit().getMappingFiles().add(mappingFileRef);
-			
-		JavaPersistentType childPersistentType = getJavaPersistentType();
-		PersistentType parentPersistentType = childPersistentType.getParentPersistentType();
-		
-		assertEquals(AccessType.PROPERTY, parentPersistentType.getAccess());
-		assertEquals(AccessType.PROPERTY, childPersistentType.getAccess());		
-		
-		((IdMapping) parentPersistentType.getAttributeNamed("id").getMapping()).getColumn().setSpecifiedName("FOO");
-		JavaResourcePersistentType typeResource = getJpaProject().getJavaResourcePersistentType(FULLY_QUALIFIED_TYPE_NAME);
-		typeResource.persistableProperties().next().setMappingAnnotation(null);
-		//no mapping(Id) annotation, but still a Column annotation, so access should still be property
-		assertEquals(AccessType.PROPERTY, parentPersistentType.getAccess());
-		assertEquals(AccessType.PROPERTY, childPersistentType.getAccess());
-
-		((BasicMapping) parentPersistentType.getAttributeNamed("id").getMapping()).getColumn().setSpecifiedName(null);
-		assertEquals(AccessType.FIELD, parentPersistentType.getAccess());
-		assertEquals(AccessType.FIELD, childPersistentType.getAccess());
-		
-		getEntityMappings().getPersistenceUnitMetadata().getPersistenceUnitDefaults().setAccess(AccessType.PROPERTY);
-		assertEquals(AccessType.PROPERTY, parentPersistentType.getAccess());
-		assertEquals(AccessType.PROPERTY, childPersistentType.getAccess());
-		
-		getEntityMappings().setSpecifiedAccess(AccessType.FIELD);
-		//still accessType of PROPERTY because the java class is not specified in this orm.xml
-		assertEquals(AccessType.PROPERTY, parentPersistentType.getAccess());
-		assertEquals(AccessType.PROPERTY, childPersistentType.getAccess());
-		
-		OrmPersistentType ormPersistentType = getEntityMappings().addPersistentType(MappingKeys.ENTITY_TYPE_MAPPING_KEY, FULLY_QUALIFIED_TYPE_NAME);
-		removeXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
-		//only parent specified in orm.xml, i think this outcome is right??
-		assertEquals(AccessType.FIELD, ormPersistentType.getJavaPersistentType().getAccess());
-		assertEquals(AccessType.FIELD, childPersistentType.getAccess());
-
-		OrmPersistentType childOrmPersistentType = getEntityMappings().addPersistentType(MappingKeys.ENTITY_TYPE_MAPPING_KEY, PACKAGE_NAME + ".AnnotationTestTypeChild");
-		removeXmlClassRef(PACKAGE_NAME + ".AnnotationTestTypeChild");
-		//both parent and child specified in orm.xml
-		assertEquals(AccessType.FIELD, ormPersistentType.getJavaPersistentType().getAccess());
-		assertEquals(AccessType.FIELD, childOrmPersistentType.getJavaPersistentType().getAccess());
-	}
-	
-	public void testAccessWithXmlSettings() throws Exception {
-		createTestEntityAnnotationOnProperty();
-		addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
-		XmlMappingFileRef mappingFileRef = PersistenceFactory.eINSTANCE.createXmlMappingFileRef();
-		mappingFileRef.setFileName(JptCorePlugin.DEFAULT_ORM_XML_FILE_PATH);
-		getXmlPersistenceUnit().getMappingFiles().add(mappingFileRef);
-				
-		assertEquals(AccessType.PROPERTY, getJavaPersistentType().getAccess());
-			
-		((IdMapping) getJavaPersistentType().getAttributeNamed("id").getMapping()).getColumn().setSpecifiedName("FOO");
-		JavaResourcePersistentType typeResource = getJpaProject().getJavaResourcePersistentType(FULLY_QUALIFIED_TYPE_NAME);
-		typeResource.persistableProperties().next().setMappingAnnotation(null);
-		//no mapping(Id) annotation, but still a Column annotation, so access should still be property
-		assertEquals(AccessType.PROPERTY, getJavaPersistentType().getAccess());
-
-		((BasicMapping) getJavaPersistentType().getAttributeNamed("id").getMapping()).getColumn().setSpecifiedName(null);
-		assertEquals(AccessType.FIELD, getJavaPersistentType().getAccess());
-		
-		getEntityMappings().getPersistenceUnitMetadata().getPersistenceUnitDefaults().setAccess(AccessType.PROPERTY);
-		assertEquals(AccessType.PROPERTY, getJavaPersistentType().getAccess());
-		
-		getEntityMappings().setSpecifiedAccess(AccessType.FIELD);
-		//still accessType of PROPERTY because the java class is not specified in this orm.xml
-		assertEquals(AccessType.PROPERTY, getJavaPersistentType().getAccess());
-		
-		OrmPersistentType ormPersistentType = getEntityMappings().addPersistentType(MappingKeys.ENTITY_TYPE_MAPPING_KEY, FULLY_QUALIFIED_TYPE_NAME);
-		
-		//now class is specified in orm.xml, so entityMappings access setting wins over persistence-unit-defaults
-		assertEquals(AccessType.FIELD, ormPersistentType.getJavaPersistentType().getAccess());
-		
-		ormPersistentType.setSpecifiedAccess(AccessType.PROPERTY);
-		
-		//accessType should be PROPERTY now, java gets the access from xml entity if it is specified
-		assertEquals(AccessType.PROPERTY, ormPersistentType.getJavaPersistentType().getAccess());
-	}	
-	
-	public void testGetSpecifiedNameNull() throws Exception {
-		createTestEntity();
-		addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
-
-		assertNull(getJavaEntity().getSpecifiedName());
-	}
-
-	public void testGetSpecifiedName() throws Exception {
-		createTestEntityWithName();
-		addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
-
-		assertEquals(ENTITY_NAME, getJavaEntity().getSpecifiedName());
-	}
-	
-	public void testGetDefaultNameSpecifiedNameNull() throws Exception {
-		createTestEntity();
-		addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
-		
-		assertEquals(TYPE_NAME, getJavaEntity().getDefaultName());
-	}
-
-	public void testGetDefaultName() throws Exception {
-		createTestEntityWithName();
-		addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
-		
-		assertEquals(TYPE_NAME, getJavaEntity().getDefaultName());
-	}
-	
-	public void testGetNameSpecifiedNameNull() throws Exception {
-		createTestEntity();
-		addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
-		
-		assertEquals(TYPE_NAME, getJavaEntity().getName());
-	}
-	
-	public void testGetName() throws Exception {
-		createTestEntityWithName();
-		addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
-		
-		assertEquals(ENTITY_NAME, getJavaEntity().getName());
-	}
-
-	public void testSetSpecifiedName() throws Exception {
-		createTestEntity();
-		addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
-
-		getJavaEntity().setSpecifiedName("foo");
-		
-		assertEquals("foo", getJavaEntity().getSpecifiedName());
-		
-		JavaResourcePersistentType typeResource = getJpaProject().getJavaResourcePersistentType(FULLY_QUALIFIED_TYPE_NAME);
-		
-		assertEquals("foo", ((EntityAnnotation) typeResource.getMappingAnnotation()).getName());
-	}
-	
-	public void testSetSpecifiedNameNull() throws Exception {
-		createTestEntityWithName();
-		addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
-
-		getJavaEntity().setSpecifiedName(null);
-		
-		assertNull(getJavaEntity().getSpecifiedName());
-		
-		JavaResourcePersistentType typeResource = getJpaProject().getJavaResourcePersistentType(FULLY_QUALIFIED_TYPE_NAME);
-		
-		assertNull(((EntityAnnotation) typeResource.getMappingAnnotation()).getName());
-	}
-	
-	public void testUpdateFromSpecifiedNameChangeInResourceModel() throws Exception {
-		createTestEntityWithName();
-		addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
-		
-		JavaResourcePersistentType typeResource = getJpaProject().getJavaResourcePersistentType(FULLY_QUALIFIED_TYPE_NAME);
-		EntityAnnotation entity = (EntityAnnotation) typeResource.getMappingAnnotation();
-		entity.setName("foo");
-		
-		assertEquals("foo", getJavaEntity().getSpecifiedName());
-	}
-
-	public void testGetTableName() throws Exception {
-		addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
-		createTestEntityWithName();
-	
-		assertEquals(ENTITY_NAME, getJavaEntity().getPrimaryTableName());
-	}
-	
-	public void testGetTableName2() throws Exception {
-		createTestEntity();
-		addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
-	
-		assertEquals(TYPE_NAME, getJavaEntity().getPrimaryTableName());
-	}
-	
-	public void testGetTableName3() throws Exception {
-		createTestEntityWithTable();
-		addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
-	
-		assertEquals(TABLE_NAME, getJavaEntity().getPrimaryTableName());
-	}	
-	
-	public void testSetTableNameWithNullTable() throws Exception {
-		ICompilationUnit cu = createTestEntity();
-		addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
-	
-		Table table = getJavaEntity().getTable();
-		assertEquals(TYPE_NAME, table.getName());
-		assertSourceDoesNotContain("@Table", cu);
-		
-		table.setSpecifiedName(TABLE_NAME);
-		assertSourceContains("@Table(name = \"" + TABLE_NAME + "\")", cu);
-		
-		assertEquals(TABLE_NAME, getJavaEntity().getPrimaryTableName());
-		assertEquals(TABLE_NAME, table.getName());
-
-		table.setSpecifiedCatalog(TABLE_NAME);
-	}
-		
-	public void testGetInheritanceStrategy() throws Exception {
-		createTestEntityWithInheritance();
-		addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
-
-		assertEquals(InheritanceType.TABLE_PER_CLASS, getJavaEntity().getInheritanceStrategy());		
-	}
-	
-	public void testGetDefaultInheritanceStrategy() throws Exception {
-		createTestEntity();
-		createTestSubType();
-				
-		addXmlClassRef(PACKAGE_NAME + ".AnnotationTestTypeChild");
-		addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
-		
-		ListIterator<ClassRef> specifiedClassRefs = getPersistenceUnit().specifiedClassRefs();
-		Entity childEntity = (Entity) specifiedClassRefs.next().getJavaPersistentType().getMapping();
-		Entity rootEntity = (Entity) specifiedClassRefs.next().getJavaPersistentType().getMapping();
-		
-		assertNotSame(childEntity, rootEntity);
-		assertEquals(InheritanceType.SINGLE_TABLE, childEntity.getDefaultInheritanceStrategy());
-		
-		//change root inheritance strategy, verify default is changed for child entity
-		rootEntity.setSpecifiedInheritanceStrategy(InheritanceType.TABLE_PER_CLASS);
-
-		assertEquals(InheritanceType.SINGLE_TABLE, rootEntity.getDefaultInheritanceStrategy());
-		assertEquals(InheritanceType.TABLE_PER_CLASS, childEntity.getDefaultInheritanceStrategy());
-		assertEquals(InheritanceType.TABLE_PER_CLASS, childEntity.getInheritanceStrategy());
-		assertNull(childEntity.getSpecifiedInheritanceStrategy());
-	}
-	
-	public void testGetSpecifiedInheritanceStrategy() throws Exception {
-		createTestEntityWithInheritance();
-		addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
-
-		assertEquals(InheritanceType.TABLE_PER_CLASS, getJavaEntity().getSpecifiedInheritanceStrategy());
-
-		JavaResourcePersistentType typeResource = getJpaProject().getJavaResourcePersistentType(FULLY_QUALIFIED_TYPE_NAME);
-		InheritanceAnnotation inheritance = (InheritanceAnnotation) typeResource.getSupportingAnnotation(InheritanceAnnotation.ANNOTATION_NAME);
-
-		inheritance.setStrategy(org.eclipse.jpt.core.resource.java.InheritanceType.JOINED);
-		
-		assertEquals(InheritanceType.JOINED, getJavaEntity().getSpecifiedInheritanceStrategy());
-		
-		inheritance.setStrategy(null);
-		
-		assertNull(getJavaEntity().getSpecifiedInheritanceStrategy());
-	}
-	
-	public void testSetSpecifiedInheritanceStrategy() throws Exception {
-		createTestEntityWithInheritance();
-		addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
-		assertEquals(InheritanceType.TABLE_PER_CLASS, getJavaEntity().getSpecifiedInheritanceStrategy());
-
-		getJavaEntity().setSpecifiedInheritanceStrategy(InheritanceType.JOINED);
-		
-		assertEquals(InheritanceType.JOINED, getJavaEntity().getSpecifiedInheritanceStrategy());
-		
-		JavaResourcePersistentType typeResource = getJpaProject().getJavaResourcePersistentType(FULLY_QUALIFIED_TYPE_NAME);
-		InheritanceAnnotation inheritance = (InheritanceAnnotation) typeResource.getSupportingAnnotation(InheritanceAnnotation.ANNOTATION_NAME);
-		assertEquals(org.eclipse.jpt.core.resource.java.InheritanceType.JOINED, inheritance.getStrategy());
-		
-	}
-	
-	public void testGetDiscriminatorValue() throws Exception {
-		createTestEntityWithDiscriminatorValue();
-		addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
-
-		assertEquals(DISCRIMINATOR_VALUE, getJavaEntity().getDiscriminatorValue());		
-	}
-	
-	public void testGetDefaultDiscriminatorValue() throws Exception {
-		createTestEntityWithDiscriminatorValue();
-		addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
-		
-		assertEquals(null, getJavaEntity().getDefaultDiscriminatorValue());
-		
-		createTestSubType();
-		addXmlClassRef(FULLY_QUALIFIED_SUB_TYPE_NAME);
-		
-		assertEquals(getJavaEntity().getName(), getJavaEntity().getDefaultDiscriminatorValue());
-
-		getJavaEntity().getDiscriminatorColumn().setSpecifiedDiscriminatorType(DiscriminatorType.INTEGER);
-		assertNull(getJavaEntity().getDefaultDiscriminatorValue());
-	}
-	
-	public void testGetSpecifiedDiscriminatorValue() throws Exception {
-		createTestEntityWithDiscriminatorValue();
-		addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
-
-		assertEquals(DISCRIMINATOR_VALUE, getJavaEntity().getSpecifiedDiscriminatorValue());
-
-		JavaResourcePersistentType typeResource = getJpaProject().getJavaResourcePersistentType(FULLY_QUALIFIED_TYPE_NAME);
-		DiscriminatorValueAnnotation discriminatorValue = (DiscriminatorValueAnnotation) typeResource.getSupportingAnnotation(DiscriminatorValueAnnotation.ANNOTATION_NAME);
-
-		discriminatorValue.setValue("foo");
-		
-		assertEquals("foo", getJavaEntity().getSpecifiedDiscriminatorValue());
-		
-		discriminatorValue.setValue(null);
-		
-		assertNull(getJavaEntity().getSpecifiedDiscriminatorValue());
-		assertNull(typeResource.getSupportingAnnotation(DiscriminatorValueAnnotation.ANNOTATION_NAME));
-	}
-	
-	public void testSetSpecifiedDiscriminatorValue() throws Exception {
-		createTestEntityWithDiscriminatorValue();
-		addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
-		assertEquals(DISCRIMINATOR_VALUE, getJavaEntity().getSpecifiedDiscriminatorValue());
-
-		getJavaEntity().setSpecifiedDiscriminatorValue("foo");
-		
-		assertEquals("foo", getJavaEntity().getSpecifiedDiscriminatorValue());
-		
-		JavaResourcePersistentType typeResource = getJpaProject().getJavaResourcePersistentType(FULLY_QUALIFIED_TYPE_NAME);
-		DiscriminatorValueAnnotation discriminatorValue = (DiscriminatorValueAnnotation) typeResource.getSupportingAnnotation(DiscriminatorValueAnnotation.ANNOTATION_NAME);
-		assertEquals("foo", discriminatorValue.getValue());
-	}
-
-	public void testSecondaryTables() throws Exception {
-		createTestEntityWithSecondaryTable();
-		addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
-		
-		ListIterator<JavaSecondaryTable> secondaryTables = getJavaEntity().secondaryTables();
-		
-		assertTrue(secondaryTables.hasNext());
-		assertEquals("foo", secondaryTables.next().getName());
-		assertFalse(secondaryTables.hasNext());
-	}
-	
-	public void testSecondaryTablesSize() throws Exception {
-		createTestEntity();
-		addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
-
-		Entity entity = getJavaEntity();		
-		JavaResourcePersistentType typeResource = getJpaProject().getJavaResourcePersistentType(FULLY_QUALIFIED_TYPE_NAME);
-	
-		assertEquals(0, entity.secondaryTablesSize());
-
-		((SecondaryTableAnnotation) typeResource.addSupportingAnnotation(0, SecondaryTableAnnotation.ANNOTATION_NAME, SecondaryTablesAnnotation.ANNOTATION_NAME)).setName("FOO");
-		((SecondaryTableAnnotation) typeResource.addSupportingAnnotation(1, SecondaryTableAnnotation.ANNOTATION_NAME, SecondaryTablesAnnotation.ANNOTATION_NAME)).setName("BAR");
-		((SecondaryTableAnnotation) typeResource.addSupportingAnnotation(2, SecondaryTableAnnotation.ANNOTATION_NAME, SecondaryTablesAnnotation.ANNOTATION_NAME)).setName("BAZ");
-		
-		assertEquals(3, entity.secondaryTablesSize());
-	}
-	
-	public void testSpecifiedSecondaryTables() throws Exception {
-		createTestEntityWithSecondaryTables();
-		addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
-		
-		ListIterator<JavaSecondaryTable> specifiedSecondaryTables = getJavaEntity().specifiedSecondaryTables();
-		
-		assertTrue(specifiedSecondaryTables.hasNext());
-		assertEquals("foo", specifiedSecondaryTables.next().getName());
-		assertEquals("bar", specifiedSecondaryTables.next().getName());
-		assertFalse(specifiedSecondaryTables.hasNext());
-	}
-	
-	public void testSpecifiedSecondaryTablesSize() throws Exception {
-		createTestEntity();
-		addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
-
-		Entity entity = getJavaEntity();		
-		JavaResourcePersistentType typeResource = getJpaProject().getJavaResourcePersistentType(FULLY_QUALIFIED_TYPE_NAME);
-	
-		assertEquals(0, entity.specifiedSecondaryTablesSize());
-
-		((SecondaryTableAnnotation) typeResource.addSupportingAnnotation(0, SecondaryTableAnnotation.ANNOTATION_NAME, SecondaryTablesAnnotation.ANNOTATION_NAME)).setName("FOO");
-		((SecondaryTableAnnotation) typeResource.addSupportingAnnotation(1, SecondaryTableAnnotation.ANNOTATION_NAME, SecondaryTablesAnnotation.ANNOTATION_NAME)).setName("BAR");
-		((SecondaryTableAnnotation) typeResource.addSupportingAnnotation(2, SecondaryTableAnnotation.ANNOTATION_NAME, SecondaryTablesAnnotation.ANNOTATION_NAME)).setName("BAZ");
-		
-		assertEquals(3, entity.specifiedSecondaryTablesSize());
-	}
-
-	public void testAddSpecifiedSecondaryTable() throws Exception {
-		createTestEntity();
-		addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
-		
-		getJavaEntity().addSpecifiedSecondaryTable(0).setSpecifiedName("FOO");
-		getJavaEntity().addSpecifiedSecondaryTable(0).setSpecifiedName("BAR");
-		getJavaEntity().addSpecifiedSecondaryTable(0).setSpecifiedName("BAZ");
-		
-		JavaResourcePersistentType typeResource = getJpaProject().getJavaResourcePersistentType(FULLY_QUALIFIED_TYPE_NAME);
-		Iterator<NestableAnnotation> secondaryTables = typeResource.supportingAnnotations(SecondaryTableAnnotation.ANNOTATION_NAME, SecondaryTablesAnnotation.ANNOTATION_NAME);
-		
-		assertEquals("BAZ", ((SecondaryTableAnnotation) secondaryTables.next()).getName());
-		assertEquals("BAR", ((SecondaryTableAnnotation) secondaryTables.next()).getName());
-		assertEquals("FOO", ((SecondaryTableAnnotation) secondaryTables.next()).getName());
-		assertFalse(secondaryTables.hasNext());
-	}
-	
-	public void testAddSpecifiedSecondaryTable2() throws Exception {
-		createTestEntity();
-		addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
-		
-		getJavaEntity().addSpecifiedSecondaryTable(0).setSpecifiedName("FOO");
-		getJavaEntity().addSpecifiedSecondaryTable(1).setSpecifiedName("BAR");
-		getJavaEntity().addSpecifiedSecondaryTable(0).setSpecifiedName("BAZ");
-		
-		JavaResourcePersistentType typeResource = getJpaProject().getJavaResourcePersistentType(FULLY_QUALIFIED_TYPE_NAME);
-		Iterator<NestableAnnotation> secondaryTables = typeResource.supportingAnnotations(SecondaryTableAnnotation.ANNOTATION_NAME, SecondaryTablesAnnotation.ANNOTATION_NAME);
-		
-		assertEquals("BAZ", ((SecondaryTableAnnotation) secondaryTables.next()).getName());
-		assertEquals("FOO", ((SecondaryTableAnnotation) secondaryTables.next()).getName());
-		assertEquals("BAR", ((SecondaryTableAnnotation) secondaryTables.next()).getName());
-		assertFalse(secondaryTables.hasNext());
-	}
-	
-	public void testAddSpecifiedSecondaryTablePreservePkJoinColumns() throws Exception {
-		createTestEntity();
-		addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
-		
-		SecondaryTable specifiedSecondaryTable = getJavaEntity().addSpecifiedSecondaryTable(0);
-		specifiedSecondaryTable.setSpecifiedName("FOO");
-		specifiedSecondaryTable.setSpecifiedCatalog("CATALOG");
-		specifiedSecondaryTable.setSpecifiedSchema("SCHEMA");
-		specifiedSecondaryTable.addSpecifiedPrimaryKeyJoinColumn(0).setSpecifiedName("PK_NAME");
-		
-		//add another specified secondary table, pkJoinColumns from first should be saved.
-		SecondaryTable specifiedSecondaryTable2 = getJavaEntity().addSpecifiedSecondaryTable(1);
-		specifiedSecondaryTable2.setSpecifiedName("BAR");
-		
-		
-		Iterator<SecondaryTable> secondaryTables = getJavaEntity().secondaryTables();
-		SecondaryTable secondaryTable = secondaryTables.next();
-		assertEquals(secondaryTable, specifiedSecondaryTable);
-		assertEquals("FOO", secondaryTable.getName());
-		assertEquals("CATALOG", secondaryTable.getCatalog());
-		assertEquals("SCHEMA", secondaryTable.getSchema());
-		assertEquals(1, secondaryTable.specifiedPrimaryKeyJoinColumnsSize());
-		PrimaryKeyJoinColumn pkJoinColumn = secondaryTable.specifiedPrimaryKeyJoinColumns().next();
-		assertEquals("PK_NAME", pkJoinColumn.getName());
-		
-		secondaryTable = secondaryTables.next();
-		assertEquals(secondaryTable, specifiedSecondaryTable2);
-		assertEquals("BAR", secondaryTable.getName());
-		assertEquals(0, secondaryTable.specifiedPrimaryKeyJoinColumnsSize());
-			
-	}
-	
-	public void testRemoveSpecifiedSecondaryTable() throws Exception {
-		createTestEntity();
-		addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
-		
-		getJavaEntity().addSpecifiedSecondaryTable(0).setSpecifiedName("FOO");
-		getJavaEntity().addSpecifiedSecondaryTable(1).setSpecifiedName("BAR");
-		getJavaEntity().addSpecifiedSecondaryTable(2).setSpecifiedName("BAZ");
-		
-		JavaResourcePersistentType typeResource = getJpaProject().getJavaResourcePersistentType(FULLY_QUALIFIED_TYPE_NAME);
-		
-		assertEquals(3, CollectionTools.size(typeResource.supportingAnnotations(SecondaryTableAnnotation.ANNOTATION_NAME, SecondaryTablesAnnotation.ANNOTATION_NAME)));
-
-		getJavaEntity().removeSpecifiedSecondaryTable(1);
-		
-		Iterator<NestableAnnotation> secondaryTableResources = typeResource.supportingAnnotations(SecondaryTableAnnotation.ANNOTATION_NAME, SecondaryTablesAnnotation.ANNOTATION_NAME);
-		assertEquals("FOO", ((SecondaryTableAnnotation) secondaryTableResources.next()).getName());		
-		assertEquals("BAZ", ((SecondaryTableAnnotation) secondaryTableResources.next()).getName());
-		assertFalse(secondaryTableResources.hasNext());
-		
-		Iterator<SecondaryTable> secondaryTables = getJavaEntity().secondaryTables();
-		assertEquals("FOO", secondaryTables.next().getName());		
-		assertEquals("BAZ", secondaryTables.next().getName());
-		assertFalse(secondaryTables.hasNext());
-	
-		
-		getJavaEntity().removeSpecifiedSecondaryTable(1);
-		secondaryTableResources = typeResource.supportingAnnotations(SecondaryTableAnnotation.ANNOTATION_NAME, SecondaryTablesAnnotation.ANNOTATION_NAME);
-		assertEquals("FOO", ((SecondaryTableAnnotation) secondaryTableResources.next()).getName());		
-		assertFalse(secondaryTableResources.hasNext());
-
-		secondaryTables = getJavaEntity().secondaryTables();
-		assertEquals("FOO", secondaryTables.next().getName());
-		assertFalse(secondaryTables.hasNext());
-
-		
-		getJavaEntity().removeSpecifiedSecondaryTable(0);
-		secondaryTableResources = typeResource.supportingAnnotations(SecondaryTableAnnotation.ANNOTATION_NAME, SecondaryTablesAnnotation.ANNOTATION_NAME);
-		assertFalse(secondaryTableResources.hasNext());
-		secondaryTables = getJavaEntity().secondaryTables();
-		assertFalse(secondaryTables.hasNext());
-
-		assertNull(typeResource.getSupportingAnnotation(SecondaryTablesAnnotation.ANNOTATION_NAME));
-	}
-	
-	public void testMoveSpecifiedSecondaryTable() throws Exception {
-		createTestEntity();
-		addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
-
-		Entity entity = getJavaEntity();		
-		JavaResourcePersistentType typeResource = getJpaProject().getJavaResourcePersistentType(FULLY_QUALIFIED_TYPE_NAME);
-
-		entity.addSpecifiedSecondaryTable(0).setSpecifiedName("FOO");
-		entity.addSpecifiedSecondaryTable(1).setSpecifiedName("BAR");
-		entity.addSpecifiedSecondaryTable(2).setSpecifiedName("BAZ");
-		
-		ListIterator<NestableAnnotation> javaSecondaryTables = typeResource.supportingAnnotations(SecondaryTableAnnotation.ANNOTATION_NAME, SecondaryTablesAnnotation.ANNOTATION_NAME);
-		assertEquals(3, CollectionTools.size(javaSecondaryTables));
-		
-		
-		entity.moveSpecifiedSecondaryTable(2, 0);
-		ListIterator<SecondaryTable> secondaryTables = entity.specifiedSecondaryTables();
-		assertEquals("BAR", secondaryTables.next().getSpecifiedName());
-		assertEquals("BAZ", secondaryTables.next().getSpecifiedName());
-		assertEquals("FOO", secondaryTables.next().getSpecifiedName());
-
-		javaSecondaryTables = typeResource.supportingAnnotations(SecondaryTableAnnotation.ANNOTATION_NAME, SecondaryTablesAnnotation.ANNOTATION_NAME);
-		assertEquals("BAR", ((SecondaryTableAnnotation) javaSecondaryTables.next()).getName());
-		assertEquals("BAZ", ((SecondaryTableAnnotation) javaSecondaryTables.next()).getName());
-		assertEquals("FOO", ((SecondaryTableAnnotation) javaSecondaryTables.next()).getName());
-
-
-		entity.moveSpecifiedSecondaryTable(0, 1);
-		secondaryTables = entity.specifiedSecondaryTables();
-		assertEquals("BAZ", secondaryTables.next().getSpecifiedName());
-		assertEquals("BAR", secondaryTables.next().getSpecifiedName());
-		assertEquals("FOO", secondaryTables.next().getSpecifiedName());
-
-		javaSecondaryTables = typeResource.supportingAnnotations(SecondaryTableAnnotation.ANNOTATION_NAME, SecondaryTablesAnnotation.ANNOTATION_NAME);
-		assertEquals("BAZ", ((SecondaryTableAnnotation) javaSecondaryTables.next()).getName());
-		assertEquals("BAR", ((SecondaryTableAnnotation) javaSecondaryTables.next()).getName());
-		assertEquals("FOO", ((SecondaryTableAnnotation) javaSecondaryTables.next()).getName());
-	}
-	
-	public void testUpdateSpecifiedSecondaryTables() throws Exception {
-		createTestEntity();
-		addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
-
-		Entity entity = getJavaEntity();		
-		JavaResourcePersistentType typeResource = getJpaProject().getJavaResourcePersistentType(FULLY_QUALIFIED_TYPE_NAME);
-	
-		((SecondaryTableAnnotation) typeResource.addSupportingAnnotation(0, SecondaryTableAnnotation.ANNOTATION_NAME, SecondaryTablesAnnotation.ANNOTATION_NAME)).setName("FOO");
-		((SecondaryTableAnnotation) typeResource.addSupportingAnnotation(1, SecondaryTableAnnotation.ANNOTATION_NAME, SecondaryTablesAnnotation.ANNOTATION_NAME)).setName("BAR");
-		((SecondaryTableAnnotation) typeResource.addSupportingAnnotation(2, SecondaryTableAnnotation.ANNOTATION_NAME, SecondaryTablesAnnotation.ANNOTATION_NAME)).setName("BAZ");
-			
-		ListIterator<SecondaryTable> secondaryTables = entity.specifiedSecondaryTables();
-		assertEquals("FOO", secondaryTables.next().getName());
-		assertEquals("BAR", secondaryTables.next().getName());
-		assertEquals("BAZ", secondaryTables.next().getName());
-		assertFalse(secondaryTables.hasNext());
-		
-		typeResource.moveSupportingAnnotation(2, 0, SecondaryTablesAnnotation.ANNOTATION_NAME);
-		secondaryTables = entity.specifiedSecondaryTables();
-		assertEquals("BAR", secondaryTables.next().getName());
-		assertEquals("BAZ", secondaryTables.next().getName());
-		assertEquals("FOO", secondaryTables.next().getName());
-		assertFalse(secondaryTables.hasNext());
-	
-		typeResource.moveSupportingAnnotation(0, 1, SecondaryTablesAnnotation.ANNOTATION_NAME);
-		secondaryTables = entity.specifiedSecondaryTables();
-		assertEquals("BAZ", secondaryTables.next().getName());
-		assertEquals("BAR", secondaryTables.next().getName());
-		assertEquals("FOO", secondaryTables.next().getName());
-		assertFalse(secondaryTables.hasNext());
-	
-		typeResource.removeSupportingAnnotation(1,  SecondaryTableAnnotation.ANNOTATION_NAME, SecondaryTablesAnnotation.ANNOTATION_NAME);
-		secondaryTables = entity.specifiedSecondaryTables();
-		assertEquals("BAZ", secondaryTables.next().getName());
-		assertEquals("FOO", secondaryTables.next().getName());
-		assertFalse(secondaryTables.hasNext());
-	
-		typeResource.removeSupportingAnnotation(1,  SecondaryTableAnnotation.ANNOTATION_NAME, SecondaryTablesAnnotation.ANNOTATION_NAME);
-		secondaryTables = entity.specifiedSecondaryTables();
-		assertEquals("BAZ", secondaryTables.next().getName());
-		assertFalse(secondaryTables.hasNext());
-		
-		typeResource.removeSupportingAnnotation(0,  SecondaryTableAnnotation.ANNOTATION_NAME, SecondaryTablesAnnotation.ANNOTATION_NAME);
-		secondaryTables = entity.specifiedSecondaryTables();
-		assertFalse(secondaryTables.hasNext());
-	}
-	
-	public void testAssociatedTables() throws Exception {
-		createTestEntityWithSecondaryTables();
-		addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
-		
-		assertEquals(3, CollectionTools.size(getJavaEntity().associatedTables()));
-		Iterator<Table> associatedTables = getJavaEntity().associatedTables();
-		Table table1 = associatedTables.next();
-		SecondaryTable table2 = (SecondaryTable) associatedTables.next();
-		SecondaryTable table3 = (SecondaryTable) associatedTables.next();
-		assertEquals(TYPE_NAME, table1.getName());
-		assertEquals("foo", table2.getName());
-		assertEquals("bar", table3.getName());
-	}
-	
-	public void testAssociatedTablesIncludingInherited() throws Exception {
-		createTestEntityWithSecondaryTables();
-		createTestSubType();
-		addXmlClassRef(PACKAGE_NAME + ".AnnotationTestTypeChild");
-		addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
-		
-		ListIterator<ClassRef> specifiedClassRefs = getPersistenceUnit().specifiedClassRefs();
-		Entity childEntity = (Entity) specifiedClassRefs.next().getJavaPersistentType().getMapping();
-		Entity rootEntity = (Entity) specifiedClassRefs.next().getJavaPersistentType().getMapping();
-
-		assertEquals(3, CollectionTools.size(rootEntity.associatedTablesIncludingInherited()));
-		Iterator<Table> associatedTables = rootEntity.associatedTablesIncludingInherited();
-		Table table1 = associatedTables.next();
-		SecondaryTable table2 = (SecondaryTable) associatedTables.next();
-		SecondaryTable table3 = (SecondaryTable) associatedTables.next();
-		assertEquals(TYPE_NAME, table1.getName());
-		assertEquals("foo", table2.getName());
-		assertEquals("bar", table3.getName());
-
-		//TODO probably want this to be 3, since in this case the child descriptor really uses the
-		//parent table because it is single table inheritance strategy.  Not sure yet how to deal with this.
-		assertEquals(4, CollectionTools.size(childEntity.associatedTablesIncludingInherited()));
-	}
-	
-	public void testAssociatedTableNamesIncludingInherited() throws Exception {
-		createTestEntityWithSecondaryTables();
-		createTestSubType();
-		addXmlClassRef(PACKAGE_NAME + ".AnnotationTestTypeChild");
-		addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
-		
-		ListIterator<ClassRef> specifiedClassRefs = getPersistenceUnit().specifiedClassRefs();
-		Entity childEntity = (Entity) specifiedClassRefs.next().getJavaPersistentType().getMapping();
-		Entity rootEntity = (Entity) specifiedClassRefs.next().getJavaPersistentType().getMapping();
-		
-		assertEquals(3, CollectionTools.size(rootEntity.associatedTableNamesIncludingInherited()));
-		Iterator<String> associatedTables = rootEntity.associatedTableNamesIncludingInherited();
-		String table1 = associatedTables.next();
-		String table2 = associatedTables.next();
-		String table3 = associatedTables.next();
-		assertEquals(TYPE_NAME, table1);
-		assertEquals("foo", table2);
-		assertEquals("bar", table3);
-		
-		//TODO probably want this to be 3, since in this case the child descriptor really uses the
-		//parent table because it is single table inheritance strategy.  Not sure yet how to deal with this.
-		assertEquals(4, CollectionTools.size(childEntity.associatedTableNamesIncludingInherited()));
-	}
-	
-	public void testAddSecondaryTableToResourceModel() throws Exception {
-		createTestEntityWithName();
-		addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
-		
-		JavaResourcePersistentType typeResource = getJpaProject().getJavaResourcePersistentType(FULLY_QUALIFIED_TYPE_NAME);
-		SecondaryTableAnnotation secondaryTable = (SecondaryTableAnnotation) typeResource.addSupportingAnnotation(0, JPA.SECONDARY_TABLE, JPA.SECONDARY_TABLES);
-		secondaryTable.setName("FOO");
-		
-		assertEquals(1, getJavaEntity().secondaryTablesSize());
-		assertEquals("FOO", getJavaEntity().secondaryTables().next().getSpecifiedName());
-		assertEquals("FOO", getJavaEntity().secondaryTables().next().getName());
-
-		SecondaryTableAnnotation secondaryTable2 = (SecondaryTableAnnotation) typeResource.addSupportingAnnotation(1, JPA.SECONDARY_TABLE, JPA.SECONDARY_TABLES);
-		secondaryTable2.setName("BAR");
-		
-		assertEquals(2, getJavaEntity().secondaryTablesSize());
-		ListIterator<SecondaryTable> secondaryTables = getJavaEntity().secondaryTables();
-		assertEquals("FOO", secondaryTables.next().getSpecifiedName());
-		assertEquals("BAR", secondaryTables.next().getSpecifiedName());
-
-		SecondaryTableAnnotation secondaryTable3 = (SecondaryTableAnnotation) typeResource.addSupportingAnnotation(0, JPA.SECONDARY_TABLE, JPA.SECONDARY_TABLES);
-		secondaryTable3.setName("BAZ");
-		
-		assertEquals(3, getJavaEntity().secondaryTablesSize());
-		secondaryTables = getJavaEntity().secondaryTables();
-		assertEquals("BAZ", secondaryTables.next().getSpecifiedName());
-		assertEquals("FOO", secondaryTables.next().getSpecifiedName());
-		assertEquals("BAR", secondaryTables.next().getSpecifiedName());
-	}
-	
-	public void testRemoveSecondaryTableFromResourceModel() throws Exception {
-		createTestEntityWithSecondaryTables();
-		addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
-		
-		getJavaEntity().addSpecifiedSecondaryTable(2).setSpecifiedName("baz");
-		ListIterator<SecondaryTable> secondaryTables = getJavaEntity().secondaryTables();
-		
-		assertEquals(3, getJavaEntity().secondaryTablesSize());
-		assertEquals("foo", secondaryTables.next().getSpecifiedName());
-		assertEquals("bar", secondaryTables.next().getSpecifiedName());
-		assertEquals("baz", secondaryTables.next().getSpecifiedName());
-	
-		JavaResourcePersistentType typeResource = getJpaProject().getJavaResourcePersistentType(FULLY_QUALIFIED_TYPE_NAME);
-		typeResource.removeSupportingAnnotation(0, JPA.SECONDARY_TABLE, JPA.SECONDARY_TABLES);
-		
-		secondaryTables = getJavaEntity().secondaryTables();
-		assertEquals(2, getJavaEntity().secondaryTablesSize());
-		assertEquals("bar", secondaryTables.next().getSpecifiedName());
-		assertEquals("baz", secondaryTables.next().getSpecifiedName());
-	
-		typeResource.removeSupportingAnnotation(0, JPA.SECONDARY_TABLE, JPA.SECONDARY_TABLES);
-		
-		secondaryTables = getJavaEntity().secondaryTables();
-		assertEquals(1, getJavaEntity().secondaryTablesSize());
-		assertEquals("baz", secondaryTables.next().getSpecifiedName());
-		
-		
-		typeResource.removeSupportingAnnotation(0, JPA.SECONDARY_TABLE, JPA.SECONDARY_TABLES);
-		
-		secondaryTables = getJavaEntity().secondaryTables();
-		assertEquals(0, getJavaEntity().secondaryTablesSize());
-		assertFalse(secondaryTables.hasNext());
-	}	
-	
-	public void testGetSequenceGenerator() throws Exception {
-		createTestEntity();
-		addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
-		
-		assertNull(getJavaEntity().getSequenceGenerator());
-		assertEquals(0, getJavaEntity().getPersistenceUnit().generatorsSize());
-		
-		JavaResourcePersistentType typeResource = getJpaProject().getJavaResourcePersistentType(FULLY_QUALIFIED_TYPE_NAME);
-		typeResource.addSupportingAnnotation(JPA.SEQUENCE_GENERATOR);
-		
-		assertNotNull(getJavaEntity().getSequenceGenerator());
-		assertEquals(1, typeResource.supportingAnnotationsSize());
-		assertEquals(1, getJavaEntity().getPersistenceUnit().generatorsSize());
-		
-		getJavaEntity().getSequenceGenerator().setName("foo");
-		assertEquals(1, getJavaEntity().getPersistenceUnit().generatorsSize());
-	}
-	
-	public void testAddSequenceGenerator() throws Exception {
-		createTestEntity();
-		addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
-				
-		assertNull(getJavaEntity().getSequenceGenerator());
-		
-		getJavaEntity().addSequenceGenerator();
-		
-		JavaResourcePersistentType typeResource = getJpaProject().getJavaResourcePersistentType(FULLY_QUALIFIED_TYPE_NAME);
-	
-		assertNotNull(typeResource.getSupportingAnnotation(JPA.SEQUENCE_GENERATOR));
-		assertNotNull(getJavaEntity().getSequenceGenerator());
-		
-		//try adding another sequence generator, should get an IllegalStateException
-		try {
-			getJavaEntity().addSequenceGenerator();
-		} catch (IllegalStateException e) {
-			return;
-		}
-		fail("IllegalStateException not thrown");
-	}
-	
-	public void testRemoveSequenceGenerator() throws Exception {
-		createTestEntity();
-		addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
-		
-		JavaResourcePersistentType typeResource = getJpaProject().getJavaResourcePersistentType(FULLY_QUALIFIED_TYPE_NAME);
-		typeResource.addSupportingAnnotation(JPA.SEQUENCE_GENERATOR);
-		
-		getJavaEntity().removeSequenceGenerator();
-		
-		assertNull(getJavaEntity().getSequenceGenerator());
-		assertNull(typeResource.getSupportingAnnotation(JPA.SEQUENCE_GENERATOR));
-
-		//try removing the sequence generator again, should get an IllegalStateException
-		try {
-			getJavaEntity().removeSequenceGenerator();		
-		} catch (IllegalStateException e) {
-			return;
-		}
-		fail("IllegalStateException not thrown");
-	}
-	
-	public void testGetTableGenerator() throws Exception {
-		createTestEntity();
-		addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
-		
-		assertNull(getJavaEntity().getTableGenerator());
-		assertEquals(0, getJavaEntity().getPersistenceUnit().generatorsSize());
-	
-		JavaResourcePersistentType typeResource = getJpaProject().getJavaResourcePersistentType(FULLY_QUALIFIED_TYPE_NAME);
-		typeResource.addSupportingAnnotation(JPA.TABLE_GENERATOR);
-		
-		assertNotNull(getJavaEntity().getTableGenerator());		
-		assertEquals(1, typeResource.supportingAnnotationsSize());
-		assertEquals(1, getJavaEntity().getPersistenceUnit().generatorsSize());
-		
-		getJavaEntity().getTableGenerator().setName("foo");
-		assertEquals(1, getJavaEntity().getPersistenceUnit().generatorsSize());
-	}
-	
-	public void testAddTableGenerator() throws Exception {
-		createTestEntity();
-		addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
-		
-		assertNull(getJavaEntity().getTableGenerator());
-		
-		getJavaEntity().addTableGenerator();
-		
-		JavaResourcePersistentType typeResource = getJpaProject().getJavaResourcePersistentType(FULLY_QUALIFIED_TYPE_NAME);
-	
-		assertNotNull(typeResource.getSupportingAnnotation(JPA.TABLE_GENERATOR));
-		assertNotNull(getJavaEntity().getTableGenerator());
-		
-		//try adding another table generator, should get an IllegalStateException
-		try {
-			getJavaEntity().addTableGenerator();		
-		} catch (IllegalStateException e) {
-			return;
-		}
-		fail("IllegalStateException not thrown");
-	}
-	
-	public void testRemoveTableGenerator() throws Exception {
-		createTestEntity();
-		addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
-
-		JavaResourcePersistentType typeResource = getJpaProject().getJavaResourcePersistentType(FULLY_QUALIFIED_TYPE_NAME);
-		typeResource.addSupportingAnnotation(JPA.TABLE_GENERATOR);
-		
-		getJavaEntity().removeTableGenerator();
-		
-		assertNull(getJavaEntity().getTableGenerator());
-		assertNull(typeResource.getSupportingAnnotation(JPA.TABLE_GENERATOR));
-		
-		//try removing the table generator again, should get an IllegalStateException
-		try {
-			getJavaEntity().removeTableGenerator();		
-		} catch (IllegalStateException e) {
-			return;
-		}
-		fail("IllegalStateException not thrown");
-	}
-	
-	public void testGetDiscriminatorColumn() throws Exception {
-		createTestEntity();
-		addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
-		
-		assertNotNull(getJavaEntity().getDiscriminatorColumn());
-
-		JavaResourcePersistentType typeResource = getJpaProject().getJavaResourcePersistentType(FULLY_QUALIFIED_TYPE_NAME);
-		DiscriminatorColumnAnnotation column = (DiscriminatorColumnAnnotation) typeResource.addSupportingAnnotation(JPA.DISCRIMINATOR_COLUMN);
-		column.setName("foo");
-		
-		assertEquals("foo", getJavaEntity().getDiscriminatorColumn().getSpecifiedName());
-		
-		column.setName(null);
-		
-		assertNull(getJavaEntity().getDiscriminatorColumn().getSpecifiedName());
-
-		typeResource.removeSupportingAnnotation(JPA.DISCRIMINATOR_COLUMN);
-		
-		assertNotNull(getJavaEntity().getDiscriminatorColumn());
-	}
-	
-	public void testSpecifiedPrimaryKeyJoinColumns() throws Exception {
-		createTestEntity();
-		addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
-		
-		ListIterator<JavaPrimaryKeyJoinColumn> specifiedPkJoinColumns = getJavaEntity().specifiedPrimaryKeyJoinColumns();
-		
-		assertFalse(specifiedPkJoinColumns.hasNext());
-
-		JavaResourcePersistentType typeResource = getJpaProject().getJavaResourcePersistentType(FULLY_QUALIFIED_TYPE_NAME);
-
-		//add an annotation to the resource model and verify the context model is updated
-		PrimaryKeyJoinColumnAnnotation pkJoinColumn = (PrimaryKeyJoinColumnAnnotation) typeResource.addSupportingAnnotation(0, JPA.PRIMARY_KEY_JOIN_COLUMN, JPA.PRIMARY_KEY_JOIN_COLUMNS);
-		pkJoinColumn.setName("FOO");
-		specifiedPkJoinColumns = getJavaEntity().specifiedPrimaryKeyJoinColumns();		
-		assertEquals("FOO", specifiedPkJoinColumns.next().getName());
-		assertFalse(specifiedPkJoinColumns.hasNext());
-
-		pkJoinColumn = (PrimaryKeyJoinColumnAnnotation) typeResource.addSupportingAnnotation(0, JPA.PRIMARY_KEY_JOIN_COLUMN, JPA.PRIMARY_KEY_JOIN_COLUMNS);
-		pkJoinColumn.setName("BAR");
-		specifiedPkJoinColumns = getJavaEntity().specifiedPrimaryKeyJoinColumns();		
-		assertEquals("BAR", specifiedPkJoinColumns.next().getName());
-		assertEquals("FOO", specifiedPkJoinColumns.next().getName());
-		assertFalse(specifiedPkJoinColumns.hasNext());
-
-
-		pkJoinColumn = (PrimaryKeyJoinColumnAnnotation) typeResource.addSupportingAnnotation(0, JPA.PRIMARY_KEY_JOIN_COLUMN, JPA.PRIMARY_KEY_JOIN_COLUMNS);
-		pkJoinColumn.setName("BAZ");
-		specifiedPkJoinColumns = getJavaEntity().specifiedPrimaryKeyJoinColumns();		
-		assertEquals("BAZ", specifiedPkJoinColumns.next().getName());
-		assertEquals("BAR", specifiedPkJoinColumns.next().getName());
-		assertEquals("FOO", specifiedPkJoinColumns.next().getName());
-		assertFalse(specifiedPkJoinColumns.hasNext());
-	
-		//move an annotation to the resource model and verify the context model is updated
-		typeResource.moveSupportingAnnotation(1, 0, JPA.PRIMARY_KEY_JOIN_COLUMNS);
-		specifiedPkJoinColumns = getJavaEntity().specifiedPrimaryKeyJoinColumns();		
-		assertEquals("BAR", specifiedPkJoinColumns.next().getName());
-		assertEquals("BAZ", specifiedPkJoinColumns.next().getName());
-		assertEquals("FOO", specifiedPkJoinColumns.next().getName());
-		assertFalse(specifiedPkJoinColumns.hasNext());
-
-		typeResource.removeSupportingAnnotation(0, JPA.PRIMARY_KEY_JOIN_COLUMN, JPA.PRIMARY_KEY_JOIN_COLUMNS);
-		specifiedPkJoinColumns = getJavaEntity().specifiedPrimaryKeyJoinColumns();		
-		assertEquals("BAZ", specifiedPkJoinColumns.next().getName());
-		assertEquals("FOO", specifiedPkJoinColumns.next().getName());
-		assertFalse(specifiedPkJoinColumns.hasNext());
-	
-		typeResource.removeSupportingAnnotation(0, JPA.PRIMARY_KEY_JOIN_COLUMN, JPA.PRIMARY_KEY_JOIN_COLUMNS);
-		specifiedPkJoinColumns = getJavaEntity().specifiedPrimaryKeyJoinColumns();		
-		assertEquals("FOO", specifiedPkJoinColumns.next().getName());
-		assertFalse(specifiedPkJoinColumns.hasNext());
-
-		
-		typeResource.removeSupportingAnnotation(0, JPA.PRIMARY_KEY_JOIN_COLUMN, JPA.PRIMARY_KEY_JOIN_COLUMNS);
-		specifiedPkJoinColumns = getJavaEntity().specifiedPrimaryKeyJoinColumns();		
-		assertFalse(specifiedPkJoinColumns.hasNext());
-	}
-	
-	public void testSpecifiedPrimaryKeyJoinColumnsSize() throws Exception {
-		createTestEntity();
-		addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
-		
-		assertEquals(0, getJavaEntity().specifiedPrimaryKeyJoinColumnsSize());
-	
-		getJavaEntity().addSpecifiedPrimaryKeyJoinColumn(0).setSpecifiedName("FOO");
-		getJavaEntity().addSpecifiedPrimaryKeyJoinColumn(0).setSpecifiedName("BAR");
-		getJavaEntity().addSpecifiedPrimaryKeyJoinColumn(0).setSpecifiedName("BAZ");
-		
-		assertEquals(3, getJavaEntity().specifiedPrimaryKeyJoinColumnsSize());
-	}
-
-	public void testPrimaryKeyJoinColumnsSize() throws Exception {
-		createTestEntityWithSecondaryTable();
-		addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
-		
-		//just the default pkJoinColumn, so 1
-		assertEquals(1, getJavaEntity().primaryKeyJoinColumnsSize());
-	
-		getJavaEntity().addSpecifiedPrimaryKeyJoinColumn(0).setSpecifiedName("FOO");
-		getJavaEntity().addSpecifiedPrimaryKeyJoinColumn(0).setSpecifiedName("BAR");
-		getJavaEntity().addSpecifiedPrimaryKeyJoinColumn(0).setSpecifiedName("BAZ");
-		
-		//only the specified pkJoinColumns, 3
-		assertEquals(3, getJavaEntity().primaryKeyJoinColumnsSize());
-	}
-
-	public void testGetDefaultPrimaryKeyJoinColumn() throws Exception {
-		createTestEntityWithSecondaryTable();
-		addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
-		
-		assertNotNull(getJavaEntity().getDefaultPrimaryKeyJoinColumn());
-	
-		getJavaEntity().addSpecifiedPrimaryKeyJoinColumn(0).setSpecifiedName("FOO");
-		getJavaEntity().addSpecifiedPrimaryKeyJoinColumn(0).setSpecifiedName("BAR");
-		getJavaEntity().addSpecifiedPrimaryKeyJoinColumn(0).setSpecifiedName("BAZ");
-		
-		assertNull(getJavaEntity().getDefaultPrimaryKeyJoinColumn());
-	}
-	
-	public void testAddSpecifiedPrimaryKeyJoinColumn() throws Exception {
-		createTestEntity();
-		addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
-		
-		getJavaEntity().addSpecifiedPrimaryKeyJoinColumn(0).setSpecifiedName("FOO");
-		getJavaEntity().addSpecifiedPrimaryKeyJoinColumn(0).setSpecifiedName("BAR");
-		getJavaEntity().addSpecifiedPrimaryKeyJoinColumn(0).setSpecifiedName("BAZ");
-		
-		JavaResourcePersistentType typeResource = getJpaProject().getJavaResourcePersistentType(FULLY_QUALIFIED_TYPE_NAME);
-		Iterator<NestableAnnotation> pkJoinColumns = typeResource.supportingAnnotations(PrimaryKeyJoinColumnAnnotation.ANNOTATION_NAME, PrimaryKeyJoinColumnsAnnotation.ANNOTATION_NAME);
-		
-		assertEquals("BAZ", ((PrimaryKeyJoinColumnAnnotation) pkJoinColumns.next()).getName());
-		assertEquals("BAR", ((PrimaryKeyJoinColumnAnnotation) pkJoinColumns.next()).getName());
-		assertEquals("FOO", ((PrimaryKeyJoinColumnAnnotation) pkJoinColumns.next()).getName());
-		assertFalse(pkJoinColumns.hasNext());
-	}
-	
-	public void testAddSpecifiedPrimaryKeyJoinColumn2() throws Exception {
-		createTestEntity();
-		addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
-		
-		getJavaEntity().addSpecifiedPrimaryKeyJoinColumn(0).setSpecifiedName("FOO");
-		getJavaEntity().addSpecifiedPrimaryKeyJoinColumn(1).setSpecifiedName("BAR");
-		getJavaEntity().addSpecifiedPrimaryKeyJoinColumn(2).setSpecifiedName("BAZ");
-		
-		JavaResourcePersistentType typeResource = getJpaProject().getJavaResourcePersistentType(FULLY_QUALIFIED_TYPE_NAME);
-		Iterator<NestableAnnotation> pkJoinColumns = typeResource.supportingAnnotations(PrimaryKeyJoinColumnAnnotation.ANNOTATION_NAME, PrimaryKeyJoinColumnsAnnotation.ANNOTATION_NAME);
-		
-		assertEquals("FOO", ((PrimaryKeyJoinColumnAnnotation) pkJoinColumns.next()).getName());
-		assertEquals("BAR", ((PrimaryKeyJoinColumnAnnotation) pkJoinColumns.next()).getName());
-		assertEquals("BAZ", ((PrimaryKeyJoinColumnAnnotation) pkJoinColumns.next()).getName());
-		assertFalse(pkJoinColumns.hasNext());
-	}
-	public void testRemoveSpecifiedPrimaryKeyJoinColumn() throws Exception {
-		createTestEntity();
-		addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
-		
-		getJavaEntity().addSpecifiedPrimaryKeyJoinColumn(0).setSpecifiedName("FOO");
-		getJavaEntity().addSpecifiedPrimaryKeyJoinColumn(1).setSpecifiedName("BAR");
-		getJavaEntity().addSpecifiedPrimaryKeyJoinColumn(2).setSpecifiedName("BAZ");
-		
-		JavaResourcePersistentType typeResource = getJpaProject().getJavaResourcePersistentType(FULLY_QUALIFIED_TYPE_NAME);
-		
-		assertEquals(3, CollectionTools.size(typeResource.supportingAnnotations(PrimaryKeyJoinColumnAnnotation.ANNOTATION_NAME, PrimaryKeyJoinColumnsAnnotation.ANNOTATION_NAME)));
-
-		getJavaEntity().removeSpecifiedPrimaryKeyJoinColumn(1);
-		
-		Iterator<NestableAnnotation> pkJoinColumnResources = typeResource.supportingAnnotations(PrimaryKeyJoinColumnAnnotation.ANNOTATION_NAME, PrimaryKeyJoinColumnsAnnotation.ANNOTATION_NAME);
-		assertEquals("FOO", ((PrimaryKeyJoinColumnAnnotation) pkJoinColumnResources.next()).getName());		
-		assertEquals("BAZ", ((PrimaryKeyJoinColumnAnnotation) pkJoinColumnResources.next()).getName());
-		assertFalse(pkJoinColumnResources.hasNext());
-		
-		Iterator<PrimaryKeyJoinColumn> pkJoinColumns = getJavaEntity().specifiedPrimaryKeyJoinColumns();
-		assertEquals("FOO", pkJoinColumns.next().getName());		
-		assertEquals("BAZ", pkJoinColumns.next().getName());
-		assertFalse(pkJoinColumns.hasNext());
-	
-		
-		getJavaEntity().removeSpecifiedPrimaryKeyJoinColumn(1);
-		pkJoinColumnResources = typeResource.supportingAnnotations(PrimaryKeyJoinColumnAnnotation.ANNOTATION_NAME, PrimaryKeyJoinColumnsAnnotation.ANNOTATION_NAME);
-		assertEquals("FOO", ((PrimaryKeyJoinColumnAnnotation) pkJoinColumnResources.next()).getName());		
-		assertFalse(pkJoinColumnResources.hasNext());
-
-		pkJoinColumns = getJavaEntity().specifiedPrimaryKeyJoinColumns();
-		assertEquals("FOO", pkJoinColumns.next().getName());
-		assertFalse(pkJoinColumns.hasNext());
-
-		
-		getJavaEntity().removeSpecifiedPrimaryKeyJoinColumn(0);
-		pkJoinColumnResources = typeResource.supportingAnnotations(PrimaryKeyJoinColumnAnnotation.ANNOTATION_NAME, PrimaryKeyJoinColumnsAnnotation.ANNOTATION_NAME);
-		assertFalse(pkJoinColumnResources.hasNext());
-		pkJoinColumns = getJavaEntity().specifiedPrimaryKeyJoinColumns();
-		assertFalse(pkJoinColumns.hasNext());
-
-		assertNull(typeResource.getSupportingAnnotation(PrimaryKeyJoinColumnsAnnotation.ANNOTATION_NAME));
-	}
-	
-	public void testMoveSpecifiedPrimaryKeyJoinColumn() throws Exception {
-		createTestEntity();
-		addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
-
-		Entity entity = getJavaEntity();		
-		JavaResourcePersistentType typeResource = getJpaProject().getJavaResourcePersistentType(FULLY_QUALIFIED_TYPE_NAME);
-
-		entity.addSpecifiedPrimaryKeyJoinColumn(0).setSpecifiedName("FOO");
-		entity.addSpecifiedPrimaryKeyJoinColumn(1).setSpecifiedName("BAR");
-		entity.addSpecifiedPrimaryKeyJoinColumn(2).setSpecifiedName("BAZ");
-		
-		ListIterator<NestableAnnotation> javaPrimaryKeyJoinColumns = typeResource.supportingAnnotations(PrimaryKeyJoinColumnAnnotation.ANNOTATION_NAME, PrimaryKeyJoinColumnsAnnotation.ANNOTATION_NAME);
-		assertEquals(3, CollectionTools.size(javaPrimaryKeyJoinColumns));
-		
-		
-		entity.moveSpecifiedPrimaryKeyJoinColumn(2, 0);
-		ListIterator<PrimaryKeyJoinColumn> primaryKeyJoinColumns = entity.specifiedPrimaryKeyJoinColumns();
-		assertEquals("BAR", primaryKeyJoinColumns.next().getSpecifiedName());
-		assertEquals("BAZ", primaryKeyJoinColumns.next().getSpecifiedName());
-		assertEquals("FOO", primaryKeyJoinColumns.next().getSpecifiedName());
-
-		javaPrimaryKeyJoinColumns = typeResource.supportingAnnotations(PrimaryKeyJoinColumnAnnotation.ANNOTATION_NAME, PrimaryKeyJoinColumnsAnnotation.ANNOTATION_NAME);
-		assertEquals("BAR", ((PrimaryKeyJoinColumnAnnotation) javaPrimaryKeyJoinColumns.next()).getName());
-		assertEquals("BAZ", ((PrimaryKeyJoinColumnAnnotation) javaPrimaryKeyJoinColumns.next()).getName());
-		assertEquals("FOO", ((PrimaryKeyJoinColumnAnnotation) javaPrimaryKeyJoinColumns.next()).getName());
-
-
-		entity.moveSpecifiedPrimaryKeyJoinColumn(0, 1);
-		primaryKeyJoinColumns = entity.specifiedPrimaryKeyJoinColumns();
-		assertEquals("BAZ", primaryKeyJoinColumns.next().getSpecifiedName());
-		assertEquals("BAR", primaryKeyJoinColumns.next().getSpecifiedName());
-		assertEquals("FOO", primaryKeyJoinColumns.next().getSpecifiedName());
-
-		javaPrimaryKeyJoinColumns = typeResource.supportingAnnotations(PrimaryKeyJoinColumnAnnotation.ANNOTATION_NAME, PrimaryKeyJoinColumnsAnnotation.ANNOTATION_NAME);
-		assertEquals("BAZ", ((PrimaryKeyJoinColumnAnnotation) javaPrimaryKeyJoinColumns.next()).getName());
-		assertEquals("BAR", ((PrimaryKeyJoinColumnAnnotation) javaPrimaryKeyJoinColumns.next()).getName());
-		assertEquals("FOO", ((PrimaryKeyJoinColumnAnnotation) javaPrimaryKeyJoinColumns.next()).getName());
-	}
-	
-	public void testUpdateSpecifiedPrimaryKeyJoinColumns() throws Exception {
-		createTestEntity();
-		addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
-
-		Entity entity = getJavaEntity();		
-		JavaResourcePersistentType typeResource = getJpaProject().getJavaResourcePersistentType(FULLY_QUALIFIED_TYPE_NAME);
-	
-		((PrimaryKeyJoinColumnAnnotation) typeResource.addSupportingAnnotation(0, PrimaryKeyJoinColumnAnnotation.ANNOTATION_NAME, PrimaryKeyJoinColumnsAnnotation.ANNOTATION_NAME)).setName("FOO");
-		((PrimaryKeyJoinColumnAnnotation) typeResource.addSupportingAnnotation(1, PrimaryKeyJoinColumnAnnotation.ANNOTATION_NAME, PrimaryKeyJoinColumnsAnnotation.ANNOTATION_NAME)).setName("BAR");
-		((PrimaryKeyJoinColumnAnnotation) typeResource.addSupportingAnnotation(2, PrimaryKeyJoinColumnAnnotation.ANNOTATION_NAME, PrimaryKeyJoinColumnsAnnotation.ANNOTATION_NAME)).setName("BAZ");
-			
-		ListIterator<PrimaryKeyJoinColumn> primaryKeyJoinColumns = entity.specifiedPrimaryKeyJoinColumns();
-		assertEquals("FOO", primaryKeyJoinColumns.next().getName());
-		assertEquals("BAR", primaryKeyJoinColumns.next().getName());
-		assertEquals("BAZ", primaryKeyJoinColumns.next().getName());
-		assertFalse(primaryKeyJoinColumns.hasNext());
-		
-		typeResource.moveSupportingAnnotation(2, 0, PrimaryKeyJoinColumnsAnnotation.ANNOTATION_NAME);
-		primaryKeyJoinColumns = entity.specifiedPrimaryKeyJoinColumns();
-		assertEquals("BAR", primaryKeyJoinColumns.next().getName());
-		assertEquals("BAZ", primaryKeyJoinColumns.next().getName());
-		assertEquals("FOO", primaryKeyJoinColumns.next().getName());
-		assertFalse(primaryKeyJoinColumns.hasNext());
-	
-		typeResource.moveSupportingAnnotation(0, 1, PrimaryKeyJoinColumnsAnnotation.ANNOTATION_NAME);
-		primaryKeyJoinColumns = entity.specifiedPrimaryKeyJoinColumns();
-		assertEquals("BAZ", primaryKeyJoinColumns.next().getName());
-		assertEquals("BAR", primaryKeyJoinColumns.next().getName());
-		assertEquals("FOO", primaryKeyJoinColumns.next().getName());
-		assertFalse(primaryKeyJoinColumns.hasNext());
-	
-		typeResource.removeSupportingAnnotation(1,  PrimaryKeyJoinColumnAnnotation.ANNOTATION_NAME, PrimaryKeyJoinColumnsAnnotation.ANNOTATION_NAME);
-		primaryKeyJoinColumns = entity.specifiedPrimaryKeyJoinColumns();
-		assertEquals("BAZ", primaryKeyJoinColumns.next().getName());
-		assertEquals("FOO", primaryKeyJoinColumns.next().getName());
-		assertFalse(primaryKeyJoinColumns.hasNext());
-	
-		typeResource.removeSupportingAnnotation(1,  PrimaryKeyJoinColumnAnnotation.ANNOTATION_NAME, PrimaryKeyJoinColumnsAnnotation.ANNOTATION_NAME);
-		primaryKeyJoinColumns = entity.specifiedPrimaryKeyJoinColumns();
-		assertEquals("BAZ", primaryKeyJoinColumns.next().getName());
-		assertFalse(primaryKeyJoinColumns.hasNext());
-		
-		typeResource.removeSupportingAnnotation(0,  PrimaryKeyJoinColumnAnnotation.ANNOTATION_NAME, PrimaryKeyJoinColumnsAnnotation.ANNOTATION_NAME);
-		primaryKeyJoinColumns = entity.specifiedPrimaryKeyJoinColumns();
-		assertFalse(primaryKeyJoinColumns.hasNext());
-	}
-	
-	public void testPrimaryKeyJoinColumnIsVirtual() throws Exception {
-		createTestEntityWithSecondaryTable();
-		addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
-		
-		assertTrue(getJavaEntity().getDefaultPrimaryKeyJoinColumn().isVirtual());
-
-		getJavaEntity().addSpecifiedPrimaryKeyJoinColumn(0);
-		PrimaryKeyJoinColumn specifiedPkJoinColumn = getJavaEntity().specifiedPrimaryKeyJoinColumns().next();
-		assertFalse(specifiedPkJoinColumn.isVirtual());
-		
-		assertNull(getJavaEntity().getDefaultPrimaryKeyJoinColumn());
-	}
-	
-	public void testTableNameIsInvalid() throws Exception {
-		createTestEntity();
-		addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
-
-		assertFalse(getJavaEntity().tableNameIsInvalid(TYPE_NAME));
-		assertTrue(getJavaEntity().tableNameIsInvalid("FOO"));
-		
-		getJavaEntity().addSpecifiedSecondaryTable(0).setSpecifiedName("BAR");
-		
-		assertFalse(getJavaEntity().tableNameIsInvalid("BAR"));
-	}
-	
-	public void testAttributeMappingKeyAllowed() throws Exception {
-		createTestEntity();
-		addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
-
-		Entity entity = (Entity) getJavaPersistentType().getMapping();
-		assertTrue(entity.attributeMappingKeyAllowed(MappingKeys.BASIC_ATTRIBUTE_MAPPING_KEY));
-		assertTrue(entity.attributeMappingKeyAllowed(MappingKeys.ID_ATTRIBUTE_MAPPING_KEY));
-		assertTrue(entity.attributeMappingKeyAllowed(MappingKeys.EMBEDDED_ATTRIBUTE_MAPPING_KEY));
-		assertTrue(entity.attributeMappingKeyAllowed(MappingKeys.EMBEDDED_ID_ATTRIBUTE_MAPPING_KEY));
-		assertTrue(entity.attributeMappingKeyAllowed(MappingKeys.VERSION_ATTRIBUTE_MAPPING_KEY));
-		assertTrue(entity.attributeMappingKeyAllowed(MappingKeys.TRANSIENT_ATTRIBUTE_MAPPING_KEY));
-		assertTrue(entity.attributeMappingKeyAllowed(MappingKeys.ONE_TO_ONE_ATTRIBUTE_MAPPING_KEY));
-		assertTrue(entity.attributeMappingKeyAllowed(MappingKeys.MANY_TO_ONE_ATTRIBUTE_MAPPING_KEY));
-		assertTrue(entity.attributeMappingKeyAllowed(MappingKeys.ONE_TO_MANY_ATTRIBUTE_MAPPING_KEY));
-		assertTrue(entity.attributeMappingKeyAllowed(MappingKeys.MANY_TO_MANY_ATTRIBUTE_MAPPING_KEY));
-	}
-	
-	public void testOverridableAttributes() throws Exception {
-		createTestEntity();
-		addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
-	
-		Iterator<PersistentAttribute> overridableAttributes = getJavaEntity().overridableAttributes();
-		assertFalse(overridableAttributes.hasNext());
-		
-		
-		getJavaEntity().setSpecifiedInheritanceStrategy(InheritanceType.TABLE_PER_CLASS);
-		
-		overridableAttributes = getJavaEntity().overridableAttributes();		
-		assertEquals("id", overridableAttributes.next().getName());
-		assertEquals("name", overridableAttributes.next().getName());
-		assertFalse(overridableAttributes.hasNext());
-	}
-
-	public void testOverridableAttributeNames() throws Exception {
-		createTestEntity();
-		addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
-	
-		Iterator<String> overridableAttributeNames = getJavaEntity().overridableAttributeNames();
-		assertFalse(overridableAttributeNames.hasNext());
-		
-		
-		getJavaEntity().setSpecifiedInheritanceStrategy(InheritanceType.TABLE_PER_CLASS);
-		
-		overridableAttributeNames = getJavaEntity().overridableAttributeNames();
-		assertEquals("id", overridableAttributeNames.next());
-		assertEquals("name", overridableAttributeNames.next());
-		assertFalse(overridableAttributeNames.hasNext());
-	}
-
-	public void testAllOverridableAttributes() throws Exception {
-		createTestMappedSuperclass();
-		createTestSubType();
-		addXmlClassRef(PACKAGE_NAME + ".AnnotationTestTypeChild");
-		addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
-	
-		Iterator<PersistentAttribute> overridableAttributes = getJavaEntity().allOverridableAttributes();
-		assertEquals("id", overridableAttributes.next().getName());
-		assertEquals("name", overridableAttributes.next().getName());
-		assertEquals("foo", overridableAttributes.next().getName());
-		assertFalse(overridableAttributes.hasNext());
-	}
-	
-	public void testAllOverridableAttributesTablePerClass() throws Exception {
-		createTestAbstractEntityTablePerClass();
-		createTestSubType();
-		addXmlClassRef(PACKAGE_NAME + ".AnnotationTestTypeChild");
-		addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
-	
-		Iterator<PersistentAttribute> overridableAttributes = getJavaEntity().allOverridableAttributes();
-		assertEquals("id", overridableAttributes.next().getName());
-		assertEquals("name", overridableAttributes.next().getName());
-		assertEquals("foo", overridableAttributes.next().getName());
-		assertFalse(overridableAttributes.hasNext());
-		
-		
-		ListIterator<ClassRef> classRefs = getPersistenceUnit().specifiedClassRefs();
-		classRefs.next();
-		JavaEntity abstractEntity = (JavaEntity) classRefs.next().getJavaPersistentType().getMapping();
-		overridableAttributes = abstractEntity.allOverridableAttributes();
-		assertFalse(overridableAttributes.hasNext());
-	}
-	
-	public void testAllOverridableAssociationsTablePerClass() throws Exception {
-		createTestAbstractEntityTablePerClass();
-		createTestSubType();
-		addXmlClassRef(PACKAGE_NAME + ".AnnotationTestTypeChild");
-		addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
-	
-		Iterator<PersistentAttribute> overridableAssociations = getJavaEntity().allOverridableAssociations();
-		assertEquals("address", overridableAssociations.next().getName());
-		assertEquals("address2", overridableAssociations.next().getName());
-		assertFalse(overridableAssociations.hasNext());
-		
-		
-		ListIterator<ClassRef> classRefs = getPersistenceUnit().specifiedClassRefs();
-		classRefs.next();
-		JavaEntity abstractEntity = (JavaEntity) classRefs.next().getJavaPersistentType().getMapping();
-		overridableAssociations = abstractEntity.allOverridableAssociations();
-		assertFalse(overridableAssociations.hasNext());
-	}
-
-	public void testAllOverridableAttributesMappedSuperclassInOrmXml() throws Exception {
-		createTestMappedSuperclass();
-		createTestSubType();
-		addXmlClassRef(PACKAGE_NAME + ".AnnotationTestTypeChild");
-		getEntityMappings().addPersistentType(MappingKeys.MAPPED_SUPERCLASS_TYPE_MAPPING_KEY, FULLY_QUALIFIED_TYPE_NAME);
-		
-		Iterator<PersistentAttribute> overridableAttributes = getJavaEntity().allOverridableAttributes();
-		assertEquals("id", overridableAttributes.next().getName());
-		assertEquals("name", overridableAttributes.next().getName());
-		assertEquals("foo", overridableAttributes.next().getName());
-		assertFalse(overridableAttributes.hasNext());
-	}
-
-	public void testAllOverridableAttributeNames() throws Exception {
-		createTestMappedSuperclass();
-		createTestSubType();
-		addXmlClassRef(PACKAGE_NAME + ".AnnotationTestTypeChild");
-		addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
-	
-		Iterator<String> overridableAttributeNames = getJavaEntity().allOverridableAttributeNames();
-		assertEquals("id", overridableAttributeNames.next());
-		assertEquals("name", overridableAttributeNames.next());
-		assertEquals("foo", overridableAttributeNames.next());
-		assertFalse(overridableAttributeNames.hasNext());
-	}
-		
-	public void testSpecifiedAttributeOverrides() throws Exception {
-		createTestEntity();
-		addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
-		
-		ListIterator<JavaAttributeOverride> specifiedAttributeOverrides = getJavaEntity().specifiedAttributeOverrides();
-		
-		assertFalse(specifiedAttributeOverrides.hasNext());
-
-		JavaResourcePersistentType typeResource = getJpaProject().getJavaResourcePersistentType(FULLY_QUALIFIED_TYPE_NAME);
-
-		//add an annotation to the resource model and verify the context model is updated
-		AttributeOverrideAnnotation attributeOverride = (AttributeOverrideAnnotation) typeResource.addSupportingAnnotation(0, JPA.ATTRIBUTE_OVERRIDE, JPA.ATTRIBUTE_OVERRIDES);
-		attributeOverride.setName("FOO");
-		specifiedAttributeOverrides = getJavaEntity().specifiedAttributeOverrides();		
-		assertEquals("FOO", specifiedAttributeOverrides.next().getName());
-		assertFalse(specifiedAttributeOverrides.hasNext());
-
-		attributeOverride = (AttributeOverrideAnnotation) typeResource.addSupportingAnnotation(1, JPA.ATTRIBUTE_OVERRIDE, JPA.ATTRIBUTE_OVERRIDES);
-		attributeOverride.setName("BAR");
-		specifiedAttributeOverrides = getJavaEntity().specifiedAttributeOverrides();		
-		assertEquals("FOO", specifiedAttributeOverrides.next().getName());
-		assertEquals("BAR", specifiedAttributeOverrides.next().getName());
-		assertFalse(specifiedAttributeOverrides.hasNext());
-
-
-		attributeOverride = (AttributeOverrideAnnotation) typeResource.addSupportingAnnotation(0, JPA.ATTRIBUTE_OVERRIDE, JPA.ATTRIBUTE_OVERRIDES);
-		attributeOverride.setName("BAZ");
-		specifiedAttributeOverrides = getJavaEntity().specifiedAttributeOverrides();		
-		assertEquals("BAZ", specifiedAttributeOverrides.next().getName());
-		assertEquals("FOO", specifiedAttributeOverrides.next().getName());
-		assertEquals("BAR", specifiedAttributeOverrides.next().getName());
-		assertFalse(specifiedAttributeOverrides.hasNext());
-	
-		//move an annotation to the resource model and verify the context model is updated
-		typeResource.moveSupportingAnnotation(1, 0, JPA.ATTRIBUTE_OVERRIDES);
-		specifiedAttributeOverrides = getJavaEntity().specifiedAttributeOverrides();		
-		assertEquals("FOO", specifiedAttributeOverrides.next().getName());
-		assertEquals("BAZ", specifiedAttributeOverrides.next().getName());
-		assertEquals("BAR", specifiedAttributeOverrides.next().getName());
-		assertFalse(specifiedAttributeOverrides.hasNext());
-
-		typeResource.removeSupportingAnnotation(0, JPA.ATTRIBUTE_OVERRIDE, JPA.ATTRIBUTE_OVERRIDES);
-		specifiedAttributeOverrides = getJavaEntity().specifiedAttributeOverrides();		
-		assertEquals("BAZ", specifiedAttributeOverrides.next().getName());
-		assertEquals("BAR", specifiedAttributeOverrides.next().getName());
-		assertFalse(specifiedAttributeOverrides.hasNext());
-	
-		typeResource.removeSupportingAnnotation(0, JPA.ATTRIBUTE_OVERRIDE, JPA.ATTRIBUTE_OVERRIDES);
-		specifiedAttributeOverrides = getJavaEntity().specifiedAttributeOverrides();		
-		assertEquals("BAR", specifiedAttributeOverrides.next().getName());
-		assertFalse(specifiedAttributeOverrides.hasNext());
-
-		
-		typeResource.removeSupportingAnnotation(0, JPA.ATTRIBUTE_OVERRIDE, JPA.ATTRIBUTE_OVERRIDES);
-		specifiedAttributeOverrides = getJavaEntity().specifiedAttributeOverrides();		
-		assertFalse(specifiedAttributeOverrides.hasNext());
-	}
-
-	public void testDefaultAttributeOverrides() throws Exception {
-		createTestMappedSuperclass();
-		createTestSubType();
-			
-		addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
-		addXmlClassRef(FULLY_QUALIFIED_SUB_TYPE_NAME);
-		
-		ListIterator<ClassRef> classRefs = getPersistenceUnit().specifiedClassRefs();
-		classRefs.next();
-		JavaEntity javaEntity = (JavaEntity) classRefs.next().getJavaPersistentType().getMapping();
-
-		JavaResourcePersistentType typeResource = getJpaProject().getJavaResourcePersistentType(FULLY_QUALIFIED_SUB_TYPE_NAME);
-		assertEquals(SUB_TYPE_NAME, typeResource.getName());
-		assertNull(typeResource.getSupportingAnnotation(AttributeOverrideAnnotation.ANNOTATION_NAME));
-		assertNull(typeResource.getSupportingAnnotation(AttributeOverridesAnnotation.ANNOTATION_NAME));
-		
-		assertEquals(3, javaEntity.virtualAttributeOverridesSize());
-		AttributeOverride virtualAttributeOverride = javaEntity.virtualAttributeOverrides().next();
-		assertEquals("id", virtualAttributeOverride.getName());
-		assertEquals("id", virtualAttributeOverride.getColumn().getName());
-		assertEquals(SUB_TYPE_NAME, virtualAttributeOverride.getColumn().getTable());
-		
-
-		MappedSuperclass mappedSuperclass = (MappedSuperclass) getJavaPersistentType().getMapping();
-		
-		BasicMapping idMapping = (BasicMapping) mappedSuperclass.getPersistentType().getAttributeNamed("id").getMapping();
-		idMapping.getColumn().setSpecifiedName("FOO");
-		idMapping.getColumn().setSpecifiedTable("BAR");
-		
-		assertEquals(SUB_TYPE_NAME, typeResource.getName());
-		assertNull(typeResource.getSupportingAnnotation(AttributeOverrideAnnotation.ANNOTATION_NAME));
-		assertNull(typeResource.getSupportingAnnotation(AttributeOverridesAnnotation.ANNOTATION_NAME));
-
-		assertEquals(3, javaEntity.virtualAttributeOverridesSize());
-		virtualAttributeOverride = javaEntity.virtualAttributeOverrides().next();
-		assertEquals("id", virtualAttributeOverride.getName());
-		assertEquals("FOO", virtualAttributeOverride.getColumn().getName());
-		assertEquals("BAR", virtualAttributeOverride.getColumn().getTable());
-
-		idMapping.getColumn().setSpecifiedName(null);
-		idMapping.getColumn().setSpecifiedTable(null);
-		assertEquals(SUB_TYPE_NAME, typeResource.getName());
-		assertNull(typeResource.getSupportingAnnotation(AttributeOverrideAnnotation.ANNOTATION_NAME));
-		assertNull(typeResource.getSupportingAnnotation(AttributeOverridesAnnotation.ANNOTATION_NAME));
-
-		virtualAttributeOverride = javaEntity.virtualAttributeOverrides().next();
-		assertEquals("id", virtualAttributeOverride.getName());
-		assertEquals("id", virtualAttributeOverride.getColumn().getName());
-		assertEquals(SUB_TYPE_NAME, virtualAttributeOverride.getColumn().getTable());
-		
-		virtualAttributeOverride = virtualAttributeOverride.setVirtual(false);
-		assertEquals(2, javaEntity.virtualAttributeOverridesSize());
-	}
-	
-	public void testDefaultAttributeOverridesEntityHierachy() throws Exception {
-		createTestAbstractEntityTablePerClass();
-		createTestSubType();
-			
-		addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
-		addXmlClassRef(FULLY_QUALIFIED_SUB_TYPE_NAME);
-		
-		ListIterator<ClassRef> classRefs = getPersistenceUnit().specifiedClassRefs();
-		classRefs.next();
-		JavaEntity javaEntity = (JavaEntity) classRefs.next().getJavaPersistentType().getMapping();
-
-		JavaResourcePersistentType typeResource = getJpaProject().getJavaResourcePersistentType(FULLY_QUALIFIED_SUB_TYPE_NAME);
-		assertEquals(SUB_TYPE_NAME, typeResource.getName());
-		assertNull(typeResource.getSupportingAnnotation(AttributeOverrideAnnotation.ANNOTATION_NAME));
-		assertNull(typeResource.getSupportingAnnotation(AttributeOverridesAnnotation.ANNOTATION_NAME));
-		
-		assertEquals(3, javaEntity.virtualAttributeOverridesSize());
-		AttributeOverride virtualAttributeOverride = javaEntity.virtualAttributeOverrides().next();
-		assertEquals("id", virtualAttributeOverride.getName());
-		assertEquals("id", virtualAttributeOverride.getColumn().getName());
-		assertEquals(SUB_TYPE_NAME, virtualAttributeOverride.getColumn().getTable());
-		
-
-		JavaEntity superclass = (JavaEntity) getJavaPersistentType().getMapping();
-		
-		BasicMapping idMapping = (BasicMapping) superclass.getPersistentType().getAttributeNamed("id").getMapping();
-		idMapping.getColumn().setSpecifiedName("FOO");
-		idMapping.getColumn().setSpecifiedTable("BAR");
-		
-		assertEquals(SUB_TYPE_NAME, typeResource.getName());
-		assertNull(typeResource.getSupportingAnnotation(AttributeOverrideAnnotation.ANNOTATION_NAME));
-		assertNull(typeResource.getSupportingAnnotation(AttributeOverridesAnnotation.ANNOTATION_NAME));
-
-		assertEquals(3, javaEntity.virtualAttributeOverridesSize());
-		virtualAttributeOverride = javaEntity.virtualAttributeOverrides().next();
-		assertEquals("id", virtualAttributeOverride.getName());
-		assertEquals("FOO", virtualAttributeOverride.getColumn().getName());
-		assertEquals("BAR", virtualAttributeOverride.getColumn().getTable());
-
-		idMapping.getColumn().setSpecifiedName(null);
-		idMapping.getColumn().setSpecifiedTable(null);
-		assertEquals(SUB_TYPE_NAME, typeResource.getName());
-		assertNull(typeResource.getSupportingAnnotation(AttributeOverrideAnnotation.ANNOTATION_NAME));
-		assertNull(typeResource.getSupportingAnnotation(AttributeOverridesAnnotation.ANNOTATION_NAME));
-
-		virtualAttributeOverride = javaEntity.virtualAttributeOverrides().next();
-		assertEquals("id", virtualAttributeOverride.getName());
-		assertEquals("id", virtualAttributeOverride.getColumn().getName());
-		assertEquals(SUB_TYPE_NAME, virtualAttributeOverride.getColumn().getTable());
-		
-		virtualAttributeOverride = virtualAttributeOverride.setVirtual(false);
-		assertEquals(2, javaEntity.virtualAttributeOverridesSize());
-	}
-	
-	public void testSpecifiedAttributeOverridesSize() throws Exception {
-		createTestEntity();
-		addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
-		
-		assertEquals(0, getJavaEntity().specifiedAttributeOverridesSize());
-
-		JavaResourcePersistentType typeResource = getJpaProject().getJavaResourcePersistentType(FULLY_QUALIFIED_TYPE_NAME);
-
-		//add an annotation to the resource model and verify the context model is updated
-		AttributeOverrideAnnotation attributeOverride = (AttributeOverrideAnnotation) typeResource.addSupportingAnnotation(0, JPA.ATTRIBUTE_OVERRIDE, JPA.ATTRIBUTE_OVERRIDES);
-		attributeOverride.setName("FOO");
-		attributeOverride = (AttributeOverrideAnnotation) typeResource.addSupportingAnnotation(0, JPA.ATTRIBUTE_OVERRIDE, JPA.ATTRIBUTE_OVERRIDES);
-		attributeOverride.setName("BAR");
-
-		assertEquals(2, getJavaEntity().specifiedAttributeOverridesSize());
-	}
-	
-	public void testDefaultAttributeOverridesSize() throws Exception {
-		createTestMappedSuperclass();
-		createTestSubType();
-		
-		addXmlClassRef(FULLY_QUALIFIED_SUB_TYPE_NAME);
-		addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
-		Entity javaEntity = getJavaEntity();
-		
-		assertEquals(3, javaEntity.virtualAttributeOverridesSize());
-
-		javaEntity.virtualAttributeOverrides().next().setVirtual(false);
-		assertEquals(2, javaEntity.virtualAttributeOverridesSize());
-		
-		javaEntity.virtualAttributeOverrides().next().setVirtual(false);
-		assertEquals(1, javaEntity.virtualAttributeOverridesSize());
-		
-		javaEntity.virtualAttributeOverrides().next().setVirtual(false);
-		assertEquals(0, javaEntity.virtualAttributeOverridesSize());
-	}
-	
-	public void testAttributeOverridesSize() throws Exception {
-		createTestMappedSuperclass();
-		createTestSubType();
-			
-		addXmlClassRef(FULLY_QUALIFIED_SUB_TYPE_NAME);
-		addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
-		Entity javaEntity = getJavaEntity();
-		
-		assertEquals(3, javaEntity.attributeOverridesSize());
-
-		javaEntity.virtualAttributeOverrides().next().setVirtual(false);
-		assertEquals(3, javaEntity.attributeOverridesSize());
-		
-		javaEntity.virtualAttributeOverrides().next().setVirtual(false);
-		assertEquals(3, javaEntity.attributeOverridesSize());
-		
-		
-		JavaResourcePersistentType typeResource = getJpaProject().getJavaResourcePersistentType(FULLY_QUALIFIED_SUB_TYPE_NAME);
-		AttributeOverrideAnnotation annotation = (AttributeOverrideAnnotation) typeResource.addSupportingAnnotation(0, JPA.ATTRIBUTE_OVERRIDE, JPA.ATTRIBUTE_OVERRIDES);
-		annotation.setName("bar");	
-		assertEquals(4, javaEntity.attributeOverridesSize());
-	}
-
-	public void testAttributeOverrideSetVirtual() throws Exception {
-		createTestMappedSuperclass();
-		createTestSubType();
-			
-		addXmlClassRef(FULLY_QUALIFIED_SUB_TYPE_NAME);
-		addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
-				
-		getJavaEntity().virtualAttributeOverrides().next().setVirtual(false);
-		getJavaEntity().virtualAttributeOverrides().next().setVirtual(false);
-		
-		JavaResourcePersistentType typeResource = getJpaProject().getJavaResourcePersistentType(FULLY_QUALIFIED_SUB_TYPE_NAME);
-		Iterator<NestableAnnotation> attributeOverrides = typeResource.supportingAnnotations(AttributeOverrideAnnotation.ANNOTATION_NAME, AttributeOverridesAnnotation.ANNOTATION_NAME);
-		
-		assertEquals("id", ((AttributeOverrideAnnotation) attributeOverrides.next()).getName());
-		assertEquals("name", ((AttributeOverrideAnnotation) attributeOverrides.next()).getName());
-		assertFalse(attributeOverrides.hasNext());
-	}
-	
-	public void testAttributeOverrideSetVirtual2() throws Exception {
-		createTestMappedSuperclass();
-		createTestSubType();
-		
-		addXmlClassRef(FULLY_QUALIFIED_SUB_TYPE_NAME);
-		addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
-		
-		ListIterator<JavaAttributeOverride> virtualAttributeOverrides = getJavaEntity().virtualAttributeOverrides();
-		virtualAttributeOverrides.next();
-		virtualAttributeOverrides.next().setVirtual(false);
-		getJavaEntity().virtualAttributeOverrides().next().setVirtual(false);
-		
-		JavaResourcePersistentType typeResource = getJpaProject().getJavaResourcePersistentType(FULLY_QUALIFIED_SUB_TYPE_NAME);
-		Iterator<NestableAnnotation> attributeOverrides = typeResource.supportingAnnotations(AttributeOverrideAnnotation.ANNOTATION_NAME, AttributeOverridesAnnotation.ANNOTATION_NAME);
-		
-		assertEquals("name", ((AttributeOverrideAnnotation) attributeOverrides.next()).getName());
-		assertEquals("id", ((AttributeOverrideAnnotation) attributeOverrides.next()).getName());
-		assertFalse(attributeOverrides.hasNext());
-	}
-	
-	public void testAttributeOverrideSetVirtualTrue() throws Exception {
-		createTestMappedSuperclass();
-		createTestSubType();
-			
-		addXmlClassRef(FULLY_QUALIFIED_SUB_TYPE_NAME);
-		addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
-				
-		getJavaEntity().virtualAttributeOverrides().next().setVirtual(false);
-		getJavaEntity().virtualAttributeOverrides().next().setVirtual(false);
-		getJavaEntity().virtualAttributeOverrides().next().setVirtual(false);
-		
-		JavaResourcePersistentType typeResource = getJpaProject().getJavaResourcePersistentType(FULLY_QUALIFIED_SUB_TYPE_NAME);
-		assertEquals(3, CollectionTools.size(typeResource.supportingAnnotations(AttributeOverrideAnnotation.ANNOTATION_NAME, AttributeOverridesAnnotation.ANNOTATION_NAME)));
-
-		getJavaEntity().specifiedAttributeOverrides().next().setVirtual(true);
-		
-		Iterator<NestableAnnotation> attributeOverrideResources = typeResource.supportingAnnotations(AttributeOverrideAnnotation.ANNOTATION_NAME, AttributeOverridesAnnotation.ANNOTATION_NAME);
-		assertEquals("name", ((AttributeOverrideAnnotation) attributeOverrideResources.next()).getName());		
-		assertEquals("foo", ((AttributeOverrideAnnotation) attributeOverrideResources.next()).getName());
-		assertFalse(attributeOverrideResources.hasNext());
-		
-		Iterator<AttributeOverride> attributeOverrides = getJavaEntity().specifiedAttributeOverrides();
-		assertEquals("name", attributeOverrides.next().getName());		
-		assertEquals("foo", attributeOverrides.next().getName());
-		assertFalse(attributeOverrides.hasNext());
-	
-		
-		getJavaEntity().specifiedAttributeOverrides().next().setVirtual(true);
-		attributeOverrideResources = typeResource.supportingAnnotations(AttributeOverrideAnnotation.ANNOTATION_NAME, AttributeOverridesAnnotation.ANNOTATION_NAME);
-		assertEquals("foo", ((AttributeOverrideAnnotation) attributeOverrideResources.next()).getName());		
-		assertFalse(attributeOverrideResources.hasNext());
-
-		attributeOverrides = getJavaEntity().specifiedAttributeOverrides();
-		assertEquals("foo", attributeOverrides.next().getName());
-		assertFalse(attributeOverrides.hasNext());
-
-		
-		getJavaEntity().specifiedAttributeOverrides().next().setVirtual(true);
-		attributeOverrideResources = typeResource.supportingAnnotations(AttributeOverrideAnnotation.ANNOTATION_NAME, AttributeOverridesAnnotation.ANNOTATION_NAME);
-		assertFalse(attributeOverrideResources.hasNext());
-		attributeOverrides = getJavaEntity().specifiedAttributeOverrides();
-		assertFalse(attributeOverrides.hasNext());
-
-		assertNull(typeResource.getSupportingAnnotation(AttributeOverridesAnnotation.ANNOTATION_NAME));
-	}
-	
-	public void testMoveSpecifiedAttributeOverride() throws Exception {
-		createTestMappedSuperclass();
-		createTestSubType();
-			
-		addXmlClassRef(FULLY_QUALIFIED_SUB_TYPE_NAME);
-		addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
-		
-		Entity entity = getJavaEntity();
-		getJavaEntity().virtualAttributeOverrides().next().setVirtual(false);
-		getJavaEntity().virtualAttributeOverrides().next().setVirtual(false);
-		getJavaEntity().virtualAttributeOverrides().next().setVirtual(false);
-
-		
-		JavaResourcePersistentType typeResource = getJpaProject().getJavaResourcePersistentType(FULLY_QUALIFIED_SUB_TYPE_NAME);
-		
-		ListIterator<NestableAnnotation> javaAttributeOverrides = typeResource.supportingAnnotations(AttributeOverrideAnnotation.ANNOTATION_NAME, AttributeOverridesAnnotation.ANNOTATION_NAME);
-		assertEquals(3, CollectionTools.size(javaAttributeOverrides));
-		
-		
-		entity.moveSpecifiedAttributeOverride(2, 0);
-		ListIterator<AttributeOverride> attributeOverrides = entity.specifiedAttributeOverrides();
-		assertEquals("name", attributeOverrides.next().getName());
-		assertEquals("foo", attributeOverrides.next().getName());
-		assertEquals("id", attributeOverrides.next().getName());
-
-		javaAttributeOverrides = typeResource.supportingAnnotations(AttributeOverrideAnnotation.ANNOTATION_NAME, AttributeOverridesAnnotation.ANNOTATION_NAME);
-		assertEquals("name", ((AttributeOverrideAnnotation) javaAttributeOverrides.next()).getName());
-		assertEquals("foo", ((AttributeOverrideAnnotation) javaAttributeOverrides.next()).getName());
-		assertEquals("id", ((AttributeOverrideAnnotation) javaAttributeOverrides.next()).getName());
-
-
-		entity.moveSpecifiedAttributeOverride(0, 1);
-		attributeOverrides = entity.specifiedAttributeOverrides();
-		assertEquals("foo", attributeOverrides.next().getName());
-		assertEquals("name", attributeOverrides.next().getName());
-		assertEquals("id", attributeOverrides.next().getName());
-
-		javaAttributeOverrides = typeResource.supportingAnnotations(AttributeOverrideAnnotation.ANNOTATION_NAME, AttributeOverridesAnnotation.ANNOTATION_NAME);
-		assertEquals("foo", ((AttributeOverrideAnnotation) javaAttributeOverrides.next()).getName());
-		assertEquals("name", ((AttributeOverrideAnnotation) javaAttributeOverrides.next()).getName());
-		assertEquals("id", ((AttributeOverrideAnnotation) javaAttributeOverrides.next()).getName());
-	}
-//	
-	public void testUpdateSpecifiedAttributeOverrides() throws Exception {
-		createTestEntity();
-		addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
-
-		Entity entity = getJavaEntity();		
-		JavaResourcePersistentType typeResource = getJpaProject().getJavaResourcePersistentType(FULLY_QUALIFIED_TYPE_NAME);
-	
-		((AttributeOverrideAnnotation) typeResource.addSupportingAnnotation(0, AttributeOverrideAnnotation.ANNOTATION_NAME, AttributeOverridesAnnotation.ANNOTATION_NAME)).setName("FOO");
-		((AttributeOverrideAnnotation) typeResource.addSupportingAnnotation(1, AttributeOverrideAnnotation.ANNOTATION_NAME, AttributeOverridesAnnotation.ANNOTATION_NAME)).setName("BAR");
-		((AttributeOverrideAnnotation) typeResource.addSupportingAnnotation(2, AttributeOverrideAnnotation.ANNOTATION_NAME, AttributeOverridesAnnotation.ANNOTATION_NAME)).setName("BAZ");
-			
-		ListIterator<AttributeOverride> attributeOverrides = entity.specifiedAttributeOverrides();
-		assertEquals("FOO", attributeOverrides.next().getName());
-		assertEquals("BAR", attributeOverrides.next().getName());
-		assertEquals("BAZ", attributeOverrides.next().getName());
-		assertFalse(attributeOverrides.hasNext());
-		
-		typeResource.moveSupportingAnnotation(2, 0, AttributeOverridesAnnotation.ANNOTATION_NAME);
-		attributeOverrides = entity.specifiedAttributeOverrides();
-		assertEquals("BAR", attributeOverrides.next().getName());
-		assertEquals("BAZ", attributeOverrides.next().getName());
-		assertEquals("FOO", attributeOverrides.next().getName());
-		assertFalse(attributeOverrides.hasNext());
-	
-		typeResource.moveSupportingAnnotation(0, 1, AttributeOverridesAnnotation.ANNOTATION_NAME);
-		attributeOverrides = entity.specifiedAttributeOverrides();
-		assertEquals("BAZ", attributeOverrides.next().getName());
-		assertEquals("BAR", attributeOverrides.next().getName());
-		assertEquals("FOO", attributeOverrides.next().getName());
-		assertFalse(attributeOverrides.hasNext());
-	
-		typeResource.removeSupportingAnnotation(1,  AttributeOverrideAnnotation.ANNOTATION_NAME, AttributeOverridesAnnotation.ANNOTATION_NAME);
-		attributeOverrides = entity.specifiedAttributeOverrides();
-		assertEquals("BAZ", attributeOverrides.next().getName());
-		assertEquals("FOO", attributeOverrides.next().getName());
-		assertFalse(attributeOverrides.hasNext());
-	
-		typeResource.removeSupportingAnnotation(1,  AttributeOverrideAnnotation.ANNOTATION_NAME, AttributeOverridesAnnotation.ANNOTATION_NAME);
-		attributeOverrides = entity.specifiedAttributeOverrides();
-		assertEquals("BAZ", attributeOverrides.next().getName());
-		assertFalse(attributeOverrides.hasNext());
-		
-		typeResource.removeSupportingAnnotation(0,  AttributeOverrideAnnotation.ANNOTATION_NAME, AttributeOverridesAnnotation.ANNOTATION_NAME);
-		attributeOverrides = entity.specifiedAttributeOverrides();
-		assertFalse(attributeOverrides.hasNext());
-	}
-
-	public void testAttributeOverrideIsVirtual() throws Exception {
-		createTestMappedSuperclass();
-		createTestSubType();
-		addXmlClassRef(PACKAGE_NAME + ".AnnotationTestTypeChild");
-		addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
-		
-		ListIterator<AttributeOverride> virtualAttributeOverrides = getJavaEntity().virtualAttributeOverrides();	
-		AttributeOverride virtualAttributeOverride = virtualAttributeOverrides.next();
-		assertEquals("id", virtualAttributeOverride.getName());
-		assertTrue(virtualAttributeOverride.isVirtual());
-
-		virtualAttributeOverride = virtualAttributeOverrides.next();
-		assertEquals("name", virtualAttributeOverride.getName());
-		assertTrue(virtualAttributeOverride.isVirtual());
-		
-		virtualAttributeOverride = virtualAttributeOverrides.next();
-		assertEquals("foo", virtualAttributeOverride.getName());
-		assertTrue(virtualAttributeOverride.isVirtual());
-		assertFalse(virtualAttributeOverrides.hasNext());
-
-		getJavaEntity().virtualAttributeOverrides().next().setVirtual(false);
-		AttributeOverride specifiedAttributeOverride = getJavaEntity().specifiedAttributeOverrides().next();
-		assertFalse(specifiedAttributeOverride.isVirtual());
-		
-		
-		virtualAttributeOverrides = getJavaEntity().virtualAttributeOverrides();	
-		virtualAttributeOverride = virtualAttributeOverrides.next();
-		assertEquals("name", virtualAttributeOverride.getName());
-		assertTrue(virtualAttributeOverride.isVirtual());
-		
-		virtualAttributeOverride = virtualAttributeOverrides.next();
-		assertEquals("foo", virtualAttributeOverride.getName());
-		assertTrue(virtualAttributeOverride.isVirtual());
-		assertFalse(virtualAttributeOverrides.hasNext());
-	}
-	
-	
-	public void testOverridableAssociations() throws Exception {
-		createTestEntity();
-		addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
-
-		Iterator<PersistentAttribute> overridableAssociations = getJavaEntity().overridableAssociations();
-		assertFalse(overridableAssociations.hasNext());
-	}
-
-	public void testOverridableAssociationNames() throws Exception {
-		createTestEntity();
-		addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
-
-		Iterator<String> overridableAssociationNames = getJavaEntity().overridableAssociationNames();
-		assertFalse(overridableAssociationNames.hasNext());
-	}
-	
-//	//TODO add all mapping types to the mapped superclass to test which ones are overridable
-	public void testAllOverridableAssociationNames() throws Exception {
-		createTestMappedSuperclass();
-		createTestSubType();
-		addXmlClassRef(PACKAGE_NAME + ".AnnotationTestTypeChild");
-		addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
-
-		Iterator<String> overridableAssociationNames = getJavaEntity().allOverridableAssociationNames();
-		assertEquals("address", overridableAssociationNames.next());
-		assertEquals("address2", overridableAssociationNames.next());
-		assertFalse(overridableAssociationNames.hasNext());
-	}
-	
-	public void testAllOverridableAssociations() throws Exception {
-		createTestMappedSuperclass();
-		createTestSubType();
-		addXmlClassRef(PACKAGE_NAME + ".AnnotationTestTypeChild");
-		addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
-	
-		Iterator<PersistentAttribute> overridableAssociations = getJavaEntity().allOverridableAssociations();
-		assertEquals("address", overridableAssociations.next().getName());
-		assertEquals("address2", overridableAssociations.next().getName());
-		assertFalse(overridableAssociations.hasNext());
-	}
-	
-	public void testAllOverridableAssociationsMappedSuperclassInOrmXml() throws Exception {
-		createTestMappedSuperclass();
-		createTestSubType();
-		addXmlClassRef(PACKAGE_NAME + ".AnnotationTestTypeChild");
-		getEntityMappings().addPersistentType(MappingKeys.MAPPED_SUPERCLASS_TYPE_MAPPING_KEY, FULLY_QUALIFIED_TYPE_NAME);
-		
-		Iterator<PersistentAttribute> overridableAssociations = getJavaEntity().allOverridableAssociations();
-		assertEquals("address", overridableAssociations.next().getName());
-		assertEquals("address2", overridableAssociations.next().getName());
-		assertFalse(overridableAssociations.hasNext());
-	}
-
-	public void testSpecifiedAssociationOverrides() throws Exception {
-		createTestEntity();
-		addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
-		
-		ListIterator<JavaAssociationOverride> specifiedAssociationOverrides = getJavaEntity().specifiedAssociationOverrides();
-		
-		assertFalse(specifiedAssociationOverrides.hasNext());
-
-		JavaResourcePersistentType typeResource = getJpaProject().getJavaResourcePersistentType(FULLY_QUALIFIED_TYPE_NAME);
-
-		//add an annotation to the resource model and verify the context model is updated
-		AssociationOverrideAnnotation associationOverride = (AssociationOverrideAnnotation) typeResource.addSupportingAnnotation(0, JPA.ASSOCIATION_OVERRIDE, JPA.ASSOCIATION_OVERRIDES);
-		associationOverride.setName("FOO");
-		specifiedAssociationOverrides = getJavaEntity().specifiedAssociationOverrides();		
-		assertEquals("FOO", specifiedAssociationOverrides.next().getName());
-		assertFalse(specifiedAssociationOverrides.hasNext());
-
-		associationOverride = (AssociationOverrideAnnotation) typeResource.addSupportingAnnotation(1, JPA.ASSOCIATION_OVERRIDE, JPA.ASSOCIATION_OVERRIDES);
-		associationOverride.setName("BAR");
-		specifiedAssociationOverrides = getJavaEntity().specifiedAssociationOverrides();		
-		assertEquals("FOO", specifiedAssociationOverrides.next().getName());
-		assertEquals("BAR", specifiedAssociationOverrides.next().getName());
-		assertFalse(specifiedAssociationOverrides.hasNext());
-
-
-		associationOverride = (AssociationOverrideAnnotation) typeResource.addSupportingAnnotation(0, JPA.ASSOCIATION_OVERRIDE, JPA.ASSOCIATION_OVERRIDES);
-		associationOverride.setName("BAZ");
-		specifiedAssociationOverrides = getJavaEntity().specifiedAssociationOverrides();		
-		assertEquals("BAZ", specifiedAssociationOverrides.next().getName());
-		assertEquals("FOO", specifiedAssociationOverrides.next().getName());
-		assertEquals("BAR", specifiedAssociationOverrides.next().getName());
-		assertFalse(specifiedAssociationOverrides.hasNext());
-	
-		//move an annotation to the resource model and verify the context model is updated
-		typeResource.moveSupportingAnnotation(1, 0, JPA.ASSOCIATION_OVERRIDES);
-		specifiedAssociationOverrides = getJavaEntity().specifiedAssociationOverrides();		
-		assertEquals("FOO", specifiedAssociationOverrides.next().getName());
-		assertEquals("BAZ", specifiedAssociationOverrides.next().getName());
-		assertEquals("BAR", specifiedAssociationOverrides.next().getName());
-		assertFalse(specifiedAssociationOverrides.hasNext());
-
-		typeResource.removeSupportingAnnotation(0, JPA.ASSOCIATION_OVERRIDE, JPA.ASSOCIATION_OVERRIDES);
-		specifiedAssociationOverrides = getJavaEntity().specifiedAssociationOverrides();		
-		assertEquals("BAZ", specifiedAssociationOverrides.next().getName());
-		assertEquals("BAR", specifiedAssociationOverrides.next().getName());
-		assertFalse(specifiedAssociationOverrides.hasNext());
-	
-		typeResource.removeSupportingAnnotation(0, JPA.ASSOCIATION_OVERRIDE, JPA.ASSOCIATION_OVERRIDES);
-		specifiedAssociationOverrides = getJavaEntity().specifiedAssociationOverrides();		
-		assertEquals("BAR", specifiedAssociationOverrides.next().getName());
-		assertFalse(specifiedAssociationOverrides.hasNext());
-
-		
-		typeResource.removeSupportingAnnotation(0, JPA.ASSOCIATION_OVERRIDE, JPA.ASSOCIATION_OVERRIDES);
-		specifiedAssociationOverrides = getJavaEntity().specifiedAssociationOverrides();		
-		assertFalse(specifiedAssociationOverrides.hasNext());
-	}
-
-	public void testDefaultAssociationOverrides() throws Exception {
-		createTestMappedSuperclass();
-		createTestSubType();
-			
-		addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
-		addXmlClassRef(FULLY_QUALIFIED_SUB_TYPE_NAME);
-		
-		ListIterator<ClassRef> classRefs = getPersistenceUnit().specifiedClassRefs();
-		classRefs.next();
-		JavaEntity javaEntity = (JavaEntity) classRefs.next().getJavaPersistentType().getMapping();
-
-		JavaResourcePersistentType typeResource = getJpaProject().getJavaResourcePersistentType(FULLY_QUALIFIED_SUB_TYPE_NAME);
-		assertEquals(SUB_TYPE_NAME, typeResource.getName());
-		assertNull(typeResource.getSupportingAnnotation(AssociationOverrideAnnotation.ANNOTATION_NAME));
-		assertNull(typeResource.getSupportingAnnotation(AssociationOverridesAnnotation.ANNOTATION_NAME));
-		
-		assertEquals(2, javaEntity.virtualAssociationOverridesSize());
-		AssociationOverride virtualAssociationOverride = javaEntity.virtualAssociationOverrides().next();
-		assertEquals("address", virtualAssociationOverride.getName());
-		
-
-		//MappedSuperclass mappedSuperclass = (MappedSuperclass) javaPersistentType().getMapping();
-		//BasicMapping idMapping = (BasicMapping) mappedSuperclass.persistentType().attributeNamed("id").getMapping();
-		//idMapping.getColumn().setSpecifiedName("FOO");
-		//idMapping.getColumn().setSpecifiedTable("BAR");
-		
-		assertEquals(SUB_TYPE_NAME, typeResource.getName());
-		assertNull(typeResource.getSupportingAnnotation(AssociationOverrideAnnotation.ANNOTATION_NAME));
-		assertNull(typeResource.getSupportingAnnotation(AssociationOverridesAnnotation.ANNOTATION_NAME));
-
-		assertEquals(2, javaEntity.virtualAssociationOverridesSize());
-		virtualAssociationOverride = javaEntity.virtualAssociationOverrides().next();
-		assertEquals("address", virtualAssociationOverride.getName());
-
-		//idMapping.getColumn().setSpecifiedName(null);
-		//idMapping.getColumn().setSpecifiedTable(null);
-		assertEquals(SUB_TYPE_NAME, typeResource.getName());
-		assertNull(typeResource.getSupportingAnnotation(AssociationOverrideAnnotation.ANNOTATION_NAME));
-		assertNull(typeResource.getSupportingAnnotation(AssociationOverridesAnnotation.ANNOTATION_NAME));
-
-		virtualAssociationOverride = javaEntity.virtualAssociationOverrides().next();
-		assertEquals("address", virtualAssociationOverride.getName());
-		
-		virtualAssociationOverride = virtualAssociationOverride.setVirtual(false);
-		assertEquals(1, javaEntity.virtualAssociationOverridesSize());
-		
-		
-		
-//		//TODO joinColumns for default association overrides
-////	IJoinColumn defaultJoinColumn = defaultAssociationOverride.joinColumns().next();
-////	assertEquals("address", defaultJoinColumn.getName());
-////	assertEquals("address", defaultJoinColumn.getReferencedColumnName());
-////	assertEquals(SUB_TYPE_NAME, defaultJoinColumn.getTable());
-////	
-////
-////	IMappedSuperclass mappedSuperclass = (IMappedSuperclass) javaPersistentType().getMapping();
-////	
-////	IOneToOneMapping addressMapping = (IOneToOneMapping) mappedSuperclass.persistentType().attributeNamed("address").getMapping();
-////	IJoinColumn joinColumn = addressMapping.addSpecifiedJoinColumn(0);
-////	joinColumn.setSpecifiedName("FOO");
-////	joinColumn.setSpecifiedReferencedColumnName("BAR");
-////	joinColumn.setSpecifiedTable("BAZ");
-////	
-////	assertEquals(SUB_TYPE_NAME, typeResource.getName());
-////	assertNull(typeResource.annotation(AssociationOverride.ANNOTATION_NAME));
-////	assertNull(typeResource.annotation(AssociationOverrides.ANNOTATION_NAME));
-////
-////	assertEquals(1, CollectionTools.size(javaEntity.defaultAssociationOverrides()));
-////	defaultAssociationOverride = javaEntity.defaultAssociationOverrides().next();
-////	assertEquals("address", defaultAssociationOverride.getName());
-////	assertEquals("FOO", defaultJoinColumn.getName());
-////	assertEquals("BAR", defaultJoinColumn.getReferencedColumnName());
-////	assertEquals("BAZ", defaultJoinColumn.getTable());
-////
-////	joinColumn.setSpecifiedName(null);
-////	joinColumn.setSpecifiedReferencedColumnName(null);
-////	joinColumn.setSpecifiedTable(null);
-////	assertEquals(SUB_TYPE_NAME, typeResource.getName());
-////	assertNull(typeResource.annotation(AssociationOverride.ANNOTATION_NAME));
-////	assertNull(typeResource.annotation(AssociationOverrides.ANNOTATION_NAME));
-////
-////	defaultAssociationOverride = javaEntity.defaultAssociationOverrides().next();
-////	assertEquals("address", defaultJoinColumn.getName());
-////	assertEquals("address", defaultJoinColumn.getReferencedColumnName());
-////	assertEquals(SUB_TYPE_NAME, defaultJoinColumn.getTable());
-////	
-////	javaEntity.addSpecifiedAssociationOverride(0).setName("address");
-////	assertEquals(0, CollectionTools.size(javaEntity.defaultAssociationOverrides()));
-
-	}
-	
-	public void testSpecifiedAssociationOverridesSize() throws Exception {
-		createTestEntity();
-		addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
-		
-		assertEquals(0, getJavaEntity().specifiedAssociationOverridesSize());
-
-		JavaResourcePersistentType typeResource = getJpaProject().getJavaResourcePersistentType(FULLY_QUALIFIED_TYPE_NAME);
-
-		//add an annotation to the resource model and verify the context model is updated
-		AssociationOverrideAnnotation associationOverride = (AssociationOverrideAnnotation) typeResource.addSupportingAnnotation(0, JPA.ASSOCIATION_OVERRIDE, JPA.ASSOCIATION_OVERRIDES);
-		associationOverride.setName("FOO");
-		associationOverride = (AssociationOverrideAnnotation) typeResource.addSupportingAnnotation(0, JPA.ASSOCIATION_OVERRIDE, JPA.ASSOCIATION_OVERRIDES);
-		associationOverride.setName("BAR");
-
-		assertEquals(2, getJavaEntity().specifiedAssociationOverridesSize());
-	}
-	
-	public void testDefaultAssociationOverridesSize() throws Exception {
-		createTestMappedSuperclass();
-		createTestSubType();
-		
-		addXmlClassRef(FULLY_QUALIFIED_SUB_TYPE_NAME);
-		addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
-		Entity javaEntity = getJavaEntity();
-		
-		assertEquals(2, javaEntity.virtualAssociationOverridesSize());
-		
-		javaEntity.virtualAssociationOverrides().next().setVirtual(false);
-		assertEquals(1, javaEntity.virtualAssociationOverridesSize());
-		
-		javaEntity.virtualAssociationOverrides().next().setVirtual(false);
-		assertEquals(0, javaEntity.virtualAssociationOverridesSize());
-	}
-	
-	public void testAssociationOverridesSize() throws Exception {
-		createTestMappedSuperclass();
-		createTestSubType();
-			
-		addXmlClassRef(FULLY_QUALIFIED_SUB_TYPE_NAME);
-		addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
-		Entity javaEntity = getJavaEntity();
-		
-		assertEquals(2, javaEntity.associationOverridesSize());
-
-		javaEntity.virtualAssociationOverrides().next().setVirtual(false);
-		assertEquals(2, javaEntity.associationOverridesSize());
-		
-		javaEntity.virtualAssociationOverrides().next().setVirtual(false);
-		assertEquals(2, javaEntity.associationOverridesSize());
-		
-		
-		JavaResourcePersistentType typeResource = getJpaProject().getJavaResourcePersistentType(FULLY_QUALIFIED_SUB_TYPE_NAME);
-		AssociationOverrideAnnotation annotation = (AssociationOverrideAnnotation) typeResource.addSupportingAnnotation(0, JPA.ASSOCIATION_OVERRIDE, JPA.ASSOCIATION_OVERRIDES);
-		annotation.setName("bar");	
-		assertEquals(3, javaEntity.associationOverridesSize());
-	}
-
-	public void testAssociationOverrideSetVirtual() throws Exception {
-		createTestMappedSuperclass();
-		createTestSubType();
-			
-		addXmlClassRef(FULLY_QUALIFIED_SUB_TYPE_NAME);
-		addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
-				
-		getJavaEntity().virtualAssociationOverrides().next().setVirtual(false);
-		getJavaEntity().virtualAssociationOverrides().next().setVirtual(false);
-		
-		JavaResourcePersistentType typeResource = getJpaProject().getJavaResourcePersistentType(FULLY_QUALIFIED_SUB_TYPE_NAME);
-		Iterator<NestableAnnotation> associationOverrides = typeResource.supportingAnnotations(AssociationOverrideAnnotation.ANNOTATION_NAME, AssociationOverridesAnnotation.ANNOTATION_NAME);
-		
-		assertEquals("address", ((AssociationOverrideAnnotation) associationOverrides.next()).getName());
-		assertEquals("address2", ((AssociationOverrideAnnotation) associationOverrides.next()).getName());
-		assertFalse(associationOverrides.hasNext());
-	}
-	
-	public void testAssociationOverrideSetVirtual2() throws Exception {
-		createTestMappedSuperclass();
-		createTestSubType();
-		
-		addXmlClassRef(FULLY_QUALIFIED_SUB_TYPE_NAME);
-		addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
-		
-		ListIterator<JavaAssociationOverride> virtualAssociationOverrides = getJavaEntity().virtualAssociationOverrides();
-		virtualAssociationOverrides.next();
-		virtualAssociationOverrides.next().setVirtual(false);
-		getJavaEntity().virtualAssociationOverrides().next().setVirtual(false);
-		
-		JavaResourcePersistentType typeResource = getJpaProject().getJavaResourcePersistentType(FULLY_QUALIFIED_SUB_TYPE_NAME);
-		Iterator<NestableAnnotation> associationOverrides = typeResource.supportingAnnotations(AssociationOverrideAnnotation.ANNOTATION_NAME, AssociationOverridesAnnotation.ANNOTATION_NAME);
-		
-		assertEquals("address2", ((AssociationOverrideAnnotation) associationOverrides.next()).getName());
-		assertEquals("address", ((AssociationOverrideAnnotation) associationOverrides.next()).getName());
-		assertFalse(associationOverrides.hasNext());
-	}
-	
-	public void testAssociationOverrideSetVirtualTrue() throws Exception {
-		createTestMappedSuperclass();
-		createTestSubType();
-			
-		addXmlClassRef(FULLY_QUALIFIED_SUB_TYPE_NAME);
-		addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
-				
-		getJavaEntity().virtualAssociationOverrides().next().setVirtual(false);
-		getJavaEntity().virtualAssociationOverrides().next().setVirtual(false);
-		
-		JavaResourcePersistentType typeResource = getJpaProject().getJavaResourcePersistentType(FULLY_QUALIFIED_SUB_TYPE_NAME);
-		assertEquals(2, CollectionTools.size(typeResource.supportingAnnotations(AssociationOverrideAnnotation.ANNOTATION_NAME, AssociationOverridesAnnotation.ANNOTATION_NAME)));
-
-		getJavaEntity().specifiedAssociationOverrides().next().setVirtual(true);
-		
-		Iterator<NestableAnnotation> associationOverrideResources = typeResource.supportingAnnotations(AssociationOverrideAnnotation.ANNOTATION_NAME, AssociationOverridesAnnotation.ANNOTATION_NAME);
-		assertEquals("address2", ((AssociationOverrideAnnotation) associationOverrideResources.next()).getName());		
-		assertFalse(associationOverrideResources.hasNext());
-
-		Iterator<AssociationOverride> associationOverrides = getJavaEntity().specifiedAssociationOverrides();
-		assertEquals("address2", associationOverrides.next().getName());
-		assertFalse(associationOverrides.hasNext());
-
-		
-		getJavaEntity().specifiedAssociationOverrides().next().setVirtual(true);
-		associationOverrideResources = typeResource.supportingAnnotations(AssociationOverrideAnnotation.ANNOTATION_NAME, AssociationOverridesAnnotation.ANNOTATION_NAME);
-		assertFalse(associationOverrideResources.hasNext());
-		associationOverrides = getJavaEntity().specifiedAssociationOverrides();
-		assertFalse(associationOverrides.hasNext());
-
-		assertNull(typeResource.getSupportingAnnotation(AssociationOverridesAnnotation.ANNOTATION_NAME));
-	}
-	
-	public void testMoveSpecifiedAssociationOverride() throws Exception {
-		createTestMappedSuperclass();
-		createTestSubType();
-			
-		addXmlClassRef(FULLY_QUALIFIED_SUB_TYPE_NAME);
-		addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
-		
-		Entity entity = getJavaEntity();
-		getJavaEntity().virtualAssociationOverrides().next().setVirtual(false);
-		getJavaEntity().virtualAssociationOverrides().next().setVirtual(false);
-
-		
-		JavaResourcePersistentType typeResource = getJpaProject().getJavaResourcePersistentType(FULLY_QUALIFIED_SUB_TYPE_NAME);
-		
-		ListIterator<NestableAnnotation> javaAssociationOverrides = typeResource.supportingAnnotations(AssociationOverrideAnnotation.ANNOTATION_NAME, AssociationOverridesAnnotation.ANNOTATION_NAME);
-		assertEquals(2, CollectionTools.size(javaAssociationOverrides));
-		
-		
-		entity.moveSpecifiedAssociationOverride(1, 0);
-		ListIterator<AssociationOverride> associationOverrides = entity.specifiedAssociationOverrides();
-		assertEquals("address2", associationOverrides.next().getName());
-		assertEquals("address", associationOverrides.next().getName());
-
-		javaAssociationOverrides = typeResource.supportingAnnotations(AssociationOverrideAnnotation.ANNOTATION_NAME, AssociationOverridesAnnotation.ANNOTATION_NAME);
-		assertEquals("address2", ((AssociationOverrideAnnotation) javaAssociationOverrides.next()).getName());
-		assertEquals("address", ((AssociationOverrideAnnotation) javaAssociationOverrides.next()).getName());
-
-
-		entity.moveSpecifiedAssociationOverride(0, 1);
-		associationOverrides = entity.specifiedAssociationOverrides();
-		assertEquals("address", associationOverrides.next().getName());
-		assertEquals("address2", associationOverrides.next().getName());
-
-		javaAssociationOverrides = typeResource.supportingAnnotations(AssociationOverrideAnnotation.ANNOTATION_NAME, AssociationOverridesAnnotation.ANNOTATION_NAME);
-		assertEquals("address", ((AssociationOverrideAnnotation) javaAssociationOverrides.next()).getName());
-		assertEquals("address2", ((AssociationOverrideAnnotation) javaAssociationOverrides.next()).getName());
-	}
-
-	public void testUpdateSpecifiedAssociationOverrides() throws Exception {
-		createTestEntity();
-		addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
-
-		Entity entity = getJavaEntity();		
-		JavaResourcePersistentType typeResource = getJpaProject().getJavaResourcePersistentType(FULLY_QUALIFIED_TYPE_NAME);
-	
-		((AssociationOverrideAnnotation) typeResource.addSupportingAnnotation(0, AssociationOverrideAnnotation.ANNOTATION_NAME, AssociationOverridesAnnotation.ANNOTATION_NAME)).setName("FOO");
-		((AssociationOverrideAnnotation) typeResource.addSupportingAnnotation(1, AssociationOverrideAnnotation.ANNOTATION_NAME, AssociationOverridesAnnotation.ANNOTATION_NAME)).setName("BAR");
-		((AssociationOverrideAnnotation) typeResource.addSupportingAnnotation(2, AssociationOverrideAnnotation.ANNOTATION_NAME, AssociationOverridesAnnotation.ANNOTATION_NAME)).setName("BAZ");
-			
-		ListIterator<AssociationOverride> associationOverrides = entity.specifiedAssociationOverrides();
-		assertEquals("FOO", associationOverrides.next().getName());
-		assertEquals("BAR", associationOverrides.next().getName());
-		assertEquals("BAZ", associationOverrides.next().getName());
-		assertFalse(associationOverrides.hasNext());
-		
-		typeResource.moveSupportingAnnotation(2, 0, AssociationOverridesAnnotation.ANNOTATION_NAME);
-		associationOverrides = entity.specifiedAssociationOverrides();
-		assertEquals("BAR", associationOverrides.next().getName());
-		assertEquals("BAZ", associationOverrides.next().getName());
-		assertEquals("FOO", associationOverrides.next().getName());
-		assertFalse(associationOverrides.hasNext());
-	
-		typeResource.moveSupportingAnnotation(0, 1, AssociationOverridesAnnotation.ANNOTATION_NAME);
-		associationOverrides = entity.specifiedAssociationOverrides();
-		assertEquals("BAZ", associationOverrides.next().getName());
-		assertEquals("BAR", associationOverrides.next().getName());
-		assertEquals("FOO", associationOverrides.next().getName());
-		assertFalse(associationOverrides.hasNext());
-	
-		typeResource.removeSupportingAnnotation(1,  AssociationOverrideAnnotation.ANNOTATION_NAME, AssociationOverridesAnnotation.ANNOTATION_NAME);
-		associationOverrides = entity.specifiedAssociationOverrides();
-		assertEquals("BAZ", associationOverrides.next().getName());
-		assertEquals("FOO", associationOverrides.next().getName());
-		assertFalse(associationOverrides.hasNext());
-	
-		typeResource.removeSupportingAnnotation(1,  AssociationOverrideAnnotation.ANNOTATION_NAME, AssociationOverridesAnnotation.ANNOTATION_NAME);
-		associationOverrides = entity.specifiedAssociationOverrides();
-		assertEquals("BAZ", associationOverrides.next().getName());
-		assertFalse(associationOverrides.hasNext());
-		
-		typeResource.removeSupportingAnnotation(0,  AssociationOverrideAnnotation.ANNOTATION_NAME, AssociationOverridesAnnotation.ANNOTATION_NAME);
-		associationOverrides = entity.specifiedAssociationOverrides();
-		assertFalse(associationOverrides.hasNext());
-	}
-
-	public void testAssociationOverrideIsVirtual() throws Exception {
-		createTestMappedSuperclass();
-		createTestSubType();
-		addXmlClassRef(PACKAGE_NAME + ".AnnotationTestTypeChild");
-		addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
-		
-		ListIterator<AssociationOverride> virtualAssociationOverrides = getJavaEntity().virtualAssociationOverrides();	
-		AssociationOverride virtualAssociationOverride = virtualAssociationOverrides.next();
-		assertEquals("address", virtualAssociationOverride.getName());
-		assertTrue(virtualAssociationOverride.isVirtual());
-
-		virtualAssociationOverride = virtualAssociationOverrides.next();
-		assertEquals("address2", virtualAssociationOverride.getName());
-		assertTrue(virtualAssociationOverride.isVirtual());
-		assertFalse(virtualAssociationOverrides.hasNext());
-
-		getJavaEntity().virtualAssociationOverrides().next().setVirtual(false);
-		AssociationOverride specifiedAssociationOverride = getJavaEntity().specifiedAssociationOverrides().next();
-		assertFalse(specifiedAssociationOverride.isVirtual());
-		
-		
-		virtualAssociationOverrides = getJavaEntity().virtualAssociationOverrides();	
-		virtualAssociationOverride = virtualAssociationOverrides.next();
-		assertEquals("address2", virtualAssociationOverride.getName());
-		assertTrue(virtualAssociationOverride.isVirtual());
-		assertFalse(virtualAssociationOverrides.hasNext());
-	}
-	
-	public void testAddNamedQuery() throws Exception {
-		createTestEntity();
-		addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
-
-		Entity entity = getJavaEntity();		
-		JavaResourcePersistentType typeResource = getJpaProject().getJavaResourcePersistentType(FULLY_QUALIFIED_TYPE_NAME);
-		
-		NamedQuery namedQuery1 = entity.addNamedQuery(0);
-		namedQuery1.setName("FOO");
-		
-		ListIterator<NestableAnnotation> javaNamedQueries = typeResource.supportingAnnotations(NamedQueryAnnotation.ANNOTATION_NAME, NamedQueriesAnnotation.ANNOTATION_NAME);
-		assertEquals("FOO", ((NamedQueryAnnotation) javaNamedQueries.next()).getName());
-		
-		NamedQuery namedQuery2 = entity.addNamedQuery(0);
-		namedQuery2.setName("BAR");
-		
-		javaNamedQueries = typeResource.supportingAnnotations(NamedQueryAnnotation.ANNOTATION_NAME, NamedQueriesAnnotation.ANNOTATION_NAME);
-		assertEquals("BAR", ((NamedQueryAnnotation) javaNamedQueries.next()).getName());
-		assertEquals("FOO", ((NamedQueryAnnotation) javaNamedQueries.next()).getName());
-		
-		NamedQuery namedQuery3 = entity.addNamedQuery(1);
-		namedQuery3.setName("BAZ");
-		
-		javaNamedQueries = typeResource.supportingAnnotations(NamedQueryAnnotation.ANNOTATION_NAME, NamedQueriesAnnotation.ANNOTATION_NAME);
-		assertEquals("BAR", ((NamedQueryAnnotation) javaNamedQueries.next()).getName());
-		assertEquals("BAZ", ((NamedQueryAnnotation) javaNamedQueries.next()).getName());
-		assertEquals("FOO", ((NamedQueryAnnotation) javaNamedQueries.next()).getName());
-		
-		ListIterator<NamedQuery> namedQueries = entity.namedQueries();
-		assertEquals(namedQuery2, namedQueries.next());
-		assertEquals(namedQuery3, namedQueries.next());
-		assertEquals(namedQuery1, namedQueries.next());
-		
-		namedQueries = entity.namedQueries();
-		assertEquals("BAR", namedQueries.next().getName());
-		assertEquals("BAZ", namedQueries.next().getName());
-		assertEquals("FOO", namedQueries.next().getName());
-		
-		entity.addNamedNativeQuery(0).setName("foo");
-	}
-	
-	public void testRemoveNamedQuery() throws Exception {
-		createTestEntity();
-		addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
-
-		Entity entity = getJavaEntity();		
-		JavaResourcePersistentType typeResource = getJpaProject().getJavaResourcePersistentType(FULLY_QUALIFIED_TYPE_NAME);
-
-		entity.addNamedQuery(0).setName("FOO");
-		entity.addNamedQuery(1).setName("BAR");
-		entity.addNamedQuery(2).setName("BAZ");
-		
-		ListIterator<NestableAnnotation> javaNamedQueries = typeResource.supportingAnnotations(NamedQueryAnnotation.ANNOTATION_NAME, NamedQueriesAnnotation.ANNOTATION_NAME);
-		assertEquals(3, CollectionTools.size(javaNamedQueries));
-		
-		entity.removeNamedQuery(0);
-		javaNamedQueries = typeResource.supportingAnnotations(NamedQueryAnnotation.ANNOTATION_NAME, NamedQueriesAnnotation.ANNOTATION_NAME);
-		assertEquals(2, CollectionTools.size(javaNamedQueries));
-		javaNamedQueries = typeResource.supportingAnnotations(NamedQueryAnnotation.ANNOTATION_NAME, NamedQueriesAnnotation.ANNOTATION_NAME);
-		assertEquals("BAR", ((NamedQueryAnnotation) javaNamedQueries.next()).getName());
-		assertEquals("BAZ", ((NamedQueryAnnotation) javaNamedQueries.next()).getName());
-
-		entity.removeNamedQuery(0);
-		javaNamedQueries = typeResource.supportingAnnotations(NamedQueryAnnotation.ANNOTATION_NAME, NamedQueriesAnnotation.ANNOTATION_NAME);
-		assertEquals(1, CollectionTools.size(javaNamedQueries));
-		javaNamedQueries = typeResource.supportingAnnotations(NamedQueryAnnotation.ANNOTATION_NAME, NamedQueriesAnnotation.ANNOTATION_NAME);
-		assertEquals("BAZ", ((NamedQueryAnnotation) javaNamedQueries.next()).getName());
-		
-		entity.removeNamedQuery(0);
-		javaNamedQueries = typeResource.supportingAnnotations(NamedQueryAnnotation.ANNOTATION_NAME, NamedQueriesAnnotation.ANNOTATION_NAME);
-		assertEquals(0, CollectionTools.size(javaNamedQueries));
-	}
-	
-	public void testAddNamedNativeQueryWithNamedQuery() throws Exception {
-		createTestEntity();
-		addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
-
-		Entity entity = getJavaEntity();		
-		JavaResourcePersistentType typeResource = getJpaProject().getJavaResourcePersistentType(FULLY_QUALIFIED_TYPE_NAME);
-
-		entity.addNamedQuery(0).setName("FOO");
-		
-		
-		NamedNativeQueryAnnotation nativeQuery = (NamedNativeQueryAnnotation) typeResource.addSupportingAnnotation(0, JPA.NAMED_NATIVE_QUERY, JPA.NAMED_NATIVE_QUERIES);
-		nativeQuery.setName("BAR");
-		
-		assertEquals(1, entity.namedNativeQueriesSize());
-		assertEquals("BAR", entity.namedNativeQueries().next().getName());
-	}
-	
-	public void testAddNamedQueryWithNamedNativeQuery() throws Exception {
-		createTestEntity();
-		addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
-
-		Entity entity = getJavaEntity();		
-		JavaResourcePersistentType typeResource = getJpaProject().getJavaResourcePersistentType(FULLY_QUALIFIED_TYPE_NAME);
-
-		entity.addNamedNativeQuery(0).setName("FOO");
-		
-		
-		NamedQueryAnnotation namedQuery = (NamedQueryAnnotation) typeResource.addSupportingAnnotation(0, JPA.NAMED_QUERY, JPA.NAMED_QUERIES);
-		namedQuery.setName("BAR");
-		
-		assertEquals(1, entity.namedQueriesSize());
-		assertEquals("BAR", entity.namedQueries().next().getName());
-	}
-
-	public void testMoveNamedQuery() throws Exception {
-		createTestEntity();
-		addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
-
-		Entity entity = getJavaEntity();		
-		JavaResourcePersistentType typeResource = getJpaProject().getJavaResourcePersistentType(FULLY_QUALIFIED_TYPE_NAME);
-
-		entity.addNamedQuery(0).setName("FOO");
-		entity.addNamedQuery(1).setName("BAR");
-		entity.addNamedQuery(2).setName("BAZ");
-		
-		ListIterator<NestableAnnotation> javaNamedQueries = typeResource.supportingAnnotations(NamedQueryAnnotation.ANNOTATION_NAME, NamedQueriesAnnotation.ANNOTATION_NAME);
-		assertEquals(3, CollectionTools.size(javaNamedQueries));
-		
-		
-		entity.moveNamedQuery(2, 0);
-		ListIterator<NamedQuery> namedQueries = entity.namedQueries();
-		assertEquals("BAR", namedQueries.next().getName());
-		assertEquals("BAZ", namedQueries.next().getName());
-		assertEquals("FOO", namedQueries.next().getName());
-
-		javaNamedQueries = typeResource.supportingAnnotations(NamedQueryAnnotation.ANNOTATION_NAME, NamedQueriesAnnotation.ANNOTATION_NAME);
-		assertEquals("BAR", ((NamedQueryAnnotation) javaNamedQueries.next()).getName());
-		assertEquals("BAZ", ((NamedQueryAnnotation) javaNamedQueries.next()).getName());
-		assertEquals("FOO", ((NamedQueryAnnotation) javaNamedQueries.next()).getName());
-
-
-		entity.moveNamedQuery(0, 1);
-		namedQueries = entity.namedQueries();
-		assertEquals("BAZ", namedQueries.next().getName());
-		assertEquals("BAR", namedQueries.next().getName());
-		assertEquals("FOO", namedQueries.next().getName());
-
-		javaNamedQueries = typeResource.supportingAnnotations(NamedQueryAnnotation.ANNOTATION_NAME, NamedQueriesAnnotation.ANNOTATION_NAME);
-		assertEquals("BAZ", ((NamedQueryAnnotation) javaNamedQueries.next()).getName());
-		assertEquals("BAR", ((NamedQueryAnnotation) javaNamedQueries.next()).getName());
-		assertEquals("FOO", ((NamedQueryAnnotation) javaNamedQueries.next()).getName());
-	}
-	
-	public void testUpdateNamedQueries() throws Exception {
-		createTestEntity();
-		addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
-
-		Entity entity = getJavaEntity();		
-		JavaResourcePersistentType typeResource = getJpaProject().getJavaResourcePersistentType(FULLY_QUALIFIED_TYPE_NAME);
-		
-		assertEquals(0, entity.getPersistenceUnit().queriesSize());
-		
-		((NamedQueryAnnotation) typeResource.addSupportingAnnotation(0, NamedQueryAnnotation.ANNOTATION_NAME, NamedQueriesAnnotation.ANNOTATION_NAME)).setName("FOO");
-		((NamedQueryAnnotation) typeResource.addSupportingAnnotation(1, NamedQueryAnnotation.ANNOTATION_NAME, NamedQueriesAnnotation.ANNOTATION_NAME)).setName("BAR");
-		((NamedQueryAnnotation) typeResource.addSupportingAnnotation(2, NamedQueryAnnotation.ANNOTATION_NAME, NamedQueriesAnnotation.ANNOTATION_NAME)).setName("BAZ");
-		ListIterator<NamedQuery> namedQueries = entity.namedQueries();
-		assertEquals("FOO", namedQueries.next().getName());
-		assertEquals("BAR", namedQueries.next().getName());
-		assertEquals("BAZ", namedQueries.next().getName());
-		assertFalse(namedQueries.hasNext());
-		assertEquals(3, entity.getPersistenceUnit().queriesSize());
-		
-		typeResource.moveSupportingAnnotation(2, 0, NamedQueriesAnnotation.ANNOTATION_NAME);
-		namedQueries = entity.namedQueries();
-		assertEquals("BAR", namedQueries.next().getName());
-		assertEquals("BAZ", namedQueries.next().getName());
-		assertEquals("FOO", namedQueries.next().getName());
-		assertFalse(namedQueries.hasNext());
-		
-		typeResource.moveSupportingAnnotation(0, 1, NamedQueriesAnnotation.ANNOTATION_NAME);
-		namedQueries = entity.namedQueries();
-		assertEquals("BAZ", namedQueries.next().getName());
-		assertEquals("BAR", namedQueries.next().getName());
-		assertEquals("FOO", namedQueries.next().getName());
-		assertFalse(namedQueries.hasNext());
-		
-		typeResource.removeSupportingAnnotation(1,  NamedQueryAnnotation.ANNOTATION_NAME, NamedQueriesAnnotation.ANNOTATION_NAME);
-		namedQueries = entity.namedQueries();
-		assertEquals("BAZ", namedQueries.next().getName());
-		assertEquals("FOO", namedQueries.next().getName());
-		assertFalse(namedQueries.hasNext());
-		assertEquals(2, entity.getPersistenceUnit().queriesSize());
-		
-		typeResource.removeSupportingAnnotation(1,  NamedQueryAnnotation.ANNOTATION_NAME, NamedQueriesAnnotation.ANNOTATION_NAME);
-		namedQueries = entity.namedQueries();
-		assertEquals("BAZ", namedQueries.next().getName());
-		assertFalse(namedQueries.hasNext());
-		assertEquals(1, entity.getPersistenceUnit().queriesSize());
-		
-		typeResource.removeSupportingAnnotation(0,  NamedQueryAnnotation.ANNOTATION_NAME, NamedQueriesAnnotation.ANNOTATION_NAME);
-		namedQueries = entity.namedQueries();
-		assertFalse(namedQueries.hasNext());
-		assertEquals(0, entity.getPersistenceUnit().queriesSize());
-	}
-	
-	public void testNamedQueriesSize() throws Exception {
-		createTestEntity();
-		addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
-
-		Entity entity = getJavaEntity();		
-		JavaResourcePersistentType typeResource = getJpaProject().getJavaResourcePersistentType(FULLY_QUALIFIED_TYPE_NAME);
-	
-		assertEquals(0, entity.namedQueriesSize());
-
-		((NamedQueryAnnotation) typeResource.addSupportingAnnotation(0, NamedQueryAnnotation.ANNOTATION_NAME, NamedQueriesAnnotation.ANNOTATION_NAME)).setName("FOO");
-		((NamedQueryAnnotation) typeResource.addSupportingAnnotation(1, NamedQueryAnnotation.ANNOTATION_NAME, NamedQueriesAnnotation.ANNOTATION_NAME)).setName("BAR");
-		((NamedQueryAnnotation) typeResource.addSupportingAnnotation(2, NamedQueryAnnotation.ANNOTATION_NAME, NamedQueriesAnnotation.ANNOTATION_NAME)).setName("BAZ");
-		
-		assertEquals(3, entity.namedQueriesSize());
-	}
-	
-	public void testAddNamedNativeQuery() throws Exception {
-		createTestEntity();
-		addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
-
-		Entity entity = getJavaEntity();		
-		JavaResourcePersistentType typeResource = getJpaProject().getJavaResourcePersistentType(FULLY_QUALIFIED_TYPE_NAME);
-		
-		NamedNativeQuery namedNativeQuery = entity.addNamedNativeQuery(0);
-		namedNativeQuery.setName("FOO");
-		
-		ListIterator<NestableAnnotation> javaNamedQueries = typeResource.supportingAnnotations(NamedNativeQueryAnnotation.ANNOTATION_NAME, NamedNativeQueriesAnnotation.ANNOTATION_NAME);
-		assertEquals("FOO", ((NamedNativeQueryAnnotation) javaNamedQueries.next()).getName());
-		
-		NamedNativeQuery namedNativeQuery2 = entity.addNamedNativeQuery(0);
-		namedNativeQuery2.setName("BAR");
-		
-		javaNamedQueries = typeResource.supportingAnnotations(NamedNativeQueryAnnotation.ANNOTATION_NAME, NamedNativeQueriesAnnotation.ANNOTATION_NAME);
-		assertEquals("BAR", ((NamedNativeQueryAnnotation) javaNamedQueries.next()).getName());
-		assertEquals("FOO", ((NamedNativeQueryAnnotation) javaNamedQueries.next()).getName());
-		
-		NamedNativeQuery namedNativeQuery3 = entity.addNamedNativeQuery(1);
-		namedNativeQuery3.setName("BAZ");
-		
-		javaNamedQueries = typeResource.supportingAnnotations(NamedNativeQueryAnnotation.ANNOTATION_NAME, NamedNativeQueriesAnnotation.ANNOTATION_NAME);
-		assertEquals("BAR", ((NamedNativeQueryAnnotation) javaNamedQueries.next()).getName());
-		assertEquals("BAZ", ((NamedNativeQueryAnnotation) javaNamedQueries.next()).getName());
-		assertEquals("FOO", ((NamedNativeQueryAnnotation) javaNamedQueries.next()).getName());
-		
-		ListIterator<NamedNativeQuery> namedQueries = entity.namedNativeQueries();
-		assertEquals(namedNativeQuery2, namedQueries.next());
-		assertEquals(namedNativeQuery3, namedQueries.next());
-		assertEquals(namedNativeQuery, namedQueries.next());
-		
-		namedQueries = entity.namedNativeQueries();
-		assertEquals("BAR", namedQueries.next().getName());
-		assertEquals("BAZ", namedQueries.next().getName());
-		assertEquals("FOO", namedQueries.next().getName());
-	}
-	
-	public void testRemoveNamedNativeQuery() throws Exception {
-		createTestEntity();
-		addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
-
-		Entity entity = getJavaEntity();		
-		JavaResourcePersistentType typeResource = getJpaProject().getJavaResourcePersistentType(FULLY_QUALIFIED_TYPE_NAME);
-
-		entity.addNamedNativeQuery(0).setName("FOO");
-		entity.addNamedNativeQuery(1).setName("BAR");
-		entity.addNamedNativeQuery(2).setName("BAZ");
-		
-		ListIterator<NestableAnnotation> javaNamedQueries = typeResource.supportingAnnotations(NamedNativeQueryAnnotation.ANNOTATION_NAME, NamedNativeQueriesAnnotation.ANNOTATION_NAME);
-		assertEquals(3, CollectionTools.size(javaNamedQueries));
-		
-		entity.removeNamedNativeQuery(0);
-		javaNamedQueries = typeResource.supportingAnnotations(NamedNativeQueryAnnotation.ANNOTATION_NAME, NamedNativeQueriesAnnotation.ANNOTATION_NAME);
-		assertEquals(2, CollectionTools.size(javaNamedQueries));
-		javaNamedQueries = typeResource.supportingAnnotations(NamedNativeQueryAnnotation.ANNOTATION_NAME, NamedNativeQueriesAnnotation.ANNOTATION_NAME);
-		assertEquals("BAR", ((NamedNativeQueryAnnotation) javaNamedQueries.next()).getName());
-		assertEquals("BAZ", ((NamedNativeQueryAnnotation) javaNamedQueries.next()).getName());
-
-		entity.removeNamedNativeQuery(0);
-		javaNamedQueries = typeResource.supportingAnnotations(NamedNativeQueryAnnotation.ANNOTATION_NAME, NamedNativeQueriesAnnotation.ANNOTATION_NAME);
-		assertEquals(1, CollectionTools.size(javaNamedQueries));
-		javaNamedQueries = typeResource.supportingAnnotations(NamedNativeQueryAnnotation.ANNOTATION_NAME, NamedNativeQueriesAnnotation.ANNOTATION_NAME);
-		assertEquals("BAZ", ((NamedNativeQueryAnnotation) javaNamedQueries.next()).getName());
-		
-		entity.removeNamedNativeQuery(0);
-		javaNamedQueries = typeResource.supportingAnnotations(NamedNativeQueryAnnotation.ANNOTATION_NAME, NamedNativeQueriesAnnotation.ANNOTATION_NAME);
-		assertEquals(0, CollectionTools.size(javaNamedQueries));
-	}
-	
-	public void testMoveNamedNativeQuery() throws Exception {
-		createTestEntity();
-		addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
-
-		Entity entity = getJavaEntity();		
-		JavaResourcePersistentType typeResource = getJpaProject().getJavaResourcePersistentType(FULLY_QUALIFIED_TYPE_NAME);
-
-		entity.addNamedNativeQuery(0).setName("FOO");
-		entity.addNamedNativeQuery(1).setName("BAR");
-		entity.addNamedNativeQuery(2).setName("BAZ");
-		
-		ListIterator<NestableAnnotation> javaNamedQueries = typeResource.supportingAnnotations(NamedNativeQueryAnnotation.ANNOTATION_NAME, NamedNativeQueriesAnnotation.ANNOTATION_NAME);
-		assertEquals(3, CollectionTools.size(javaNamedQueries));
-		
-		
-		entity.moveNamedNativeQuery(2, 0);
-		ListIterator<NamedNativeQuery> namedQueries = entity.namedNativeQueries();
-		assertEquals("BAR", namedQueries.next().getName());
-		assertEquals("BAZ", namedQueries.next().getName());
-		assertEquals("FOO", namedQueries.next().getName());
-
-		javaNamedQueries = typeResource.supportingAnnotations(NamedNativeQueryAnnotation.ANNOTATION_NAME, NamedNativeQueriesAnnotation.ANNOTATION_NAME);
-		assertEquals("BAR", ((NamedNativeQueryAnnotation) javaNamedQueries.next()).getName());
-		assertEquals("BAZ", ((NamedNativeQueryAnnotation) javaNamedQueries.next()).getName());
-		assertEquals("FOO", ((NamedNativeQueryAnnotation) javaNamedQueries.next()).getName());
-
-
-		entity.moveNamedNativeQuery(0, 1);
-		namedQueries = entity.namedNativeQueries();
-		assertEquals("BAZ", namedQueries.next().getName());
-		assertEquals("BAR", namedQueries.next().getName());
-		assertEquals("FOO", namedQueries.next().getName());
-
-		javaNamedQueries = typeResource.supportingAnnotations(NamedNativeQueryAnnotation.ANNOTATION_NAME, NamedNativeQueriesAnnotation.ANNOTATION_NAME);
-		assertEquals("BAZ", ((NamedNativeQueryAnnotation) javaNamedQueries.next()).getName());
-		assertEquals("BAR", ((NamedNativeQueryAnnotation) javaNamedQueries.next()).getName());
-		assertEquals("FOO", ((NamedNativeQueryAnnotation) javaNamedQueries.next()).getName());
-	}
-	
-	public void testUpdateNamedNativeQueries() throws Exception {
-		createTestEntity();
-		addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
-
-		Entity entity = getJavaEntity();		
-		JavaResourcePersistentType typeResource = getJpaProject().getJavaResourcePersistentType(FULLY_QUALIFIED_TYPE_NAME);
-		
-		assertEquals(0, entity.getPersistenceUnit().queriesSize());
-		
-		((NamedNativeQueryAnnotation) typeResource.addSupportingAnnotation(0, NamedNativeQueryAnnotation.ANNOTATION_NAME, NamedNativeQueriesAnnotation.ANNOTATION_NAME)).setName("FOO");
-		((NamedNativeQueryAnnotation) typeResource.addSupportingAnnotation(1, NamedNativeQueryAnnotation.ANNOTATION_NAME, NamedNativeQueriesAnnotation.ANNOTATION_NAME)).setName("BAR");
-		((NamedNativeQueryAnnotation) typeResource.addSupportingAnnotation(2, NamedNativeQueryAnnotation.ANNOTATION_NAME, NamedNativeQueriesAnnotation.ANNOTATION_NAME)).setName("BAZ");	
-		ListIterator<NamedNativeQuery> namedQueries = entity.namedNativeQueries();
-		assertEquals("FOO", namedQueries.next().getName());
-		assertEquals("BAR", namedQueries.next().getName());
-		assertEquals("BAZ", namedQueries.next().getName());
-		assertFalse(namedQueries.hasNext());
-		assertEquals(3, entity.getPersistenceUnit().queriesSize());
-		
-		typeResource.moveSupportingAnnotation(2, 0, NamedNativeQueriesAnnotation.ANNOTATION_NAME);
-		namedQueries = entity.namedNativeQueries();
-		assertEquals("BAR", namedQueries.next().getName());
-		assertEquals("BAZ", namedQueries.next().getName());
-		assertEquals("FOO", namedQueries.next().getName());
-		assertFalse(namedQueries.hasNext());
-		
-		typeResource.moveSupportingAnnotation(0, 1, NamedNativeQueriesAnnotation.ANNOTATION_NAME);
-		namedQueries = entity.namedNativeQueries();
-		assertEquals("BAZ", namedQueries.next().getName());
-		assertEquals("BAR", namedQueries.next().getName());
-		assertEquals("FOO", namedQueries.next().getName());
-		assertFalse(namedQueries.hasNext());
-		
-		typeResource.removeSupportingAnnotation(1,  NamedNativeQueryAnnotation.ANNOTATION_NAME, NamedNativeQueriesAnnotation.ANNOTATION_NAME);
-		namedQueries = entity.namedNativeQueries();
-		assertEquals("BAZ", namedQueries.next().getName());
-		assertEquals("FOO", namedQueries.next().getName());
-		assertFalse(namedQueries.hasNext());
-		assertEquals(2, entity.getPersistenceUnit().queriesSize());
-		
-		typeResource.removeSupportingAnnotation(1,  NamedNativeQueryAnnotation.ANNOTATION_NAME, NamedNativeQueriesAnnotation.ANNOTATION_NAME);
-		namedQueries = entity.namedNativeQueries();
-		assertEquals("BAZ", namedQueries.next().getName());
-		assertFalse(namedQueries.hasNext());
-		assertEquals(1, entity.getPersistenceUnit().queriesSize());
-		
-		typeResource.removeSupportingAnnotation(0,  NamedNativeQueryAnnotation.ANNOTATION_NAME, NamedNativeQueriesAnnotation.ANNOTATION_NAME);
-		namedQueries = entity.namedNativeQueries();
-		assertFalse(namedQueries.hasNext());
-		assertEquals(0, entity.getPersistenceUnit().queriesSize());
-	}	
-	
-	public void testNamedNativeQueriesSize() throws Exception {
-		createTestEntity();
-		addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
-
-		Entity entity = getJavaEntity();		
-		JavaResourcePersistentType typeResource = getJpaProject().getJavaResourcePersistentType(FULLY_QUALIFIED_TYPE_NAME);
-	
-		assertEquals(0, entity.namedNativeQueriesSize());
-
-		((NamedNativeQueryAnnotation) typeResource.addSupportingAnnotation(0, NamedNativeQueryAnnotation.ANNOTATION_NAME, NamedNativeQueriesAnnotation.ANNOTATION_NAME)).setName("FOO");
-		((NamedNativeQueryAnnotation) typeResource.addSupportingAnnotation(1, NamedNativeQueryAnnotation.ANNOTATION_NAME, NamedNativeQueriesAnnotation.ANNOTATION_NAME)).setName("BAR");
-		((NamedNativeQueryAnnotation) typeResource.addSupportingAnnotation(2, NamedNativeQueryAnnotation.ANNOTATION_NAME, NamedNativeQueriesAnnotation.ANNOTATION_NAME)).setName("BAZ");
-		
-		assertEquals(3, entity.namedNativeQueriesSize());
-	}
-
-	public void testUpdateIdClass() throws Exception {
-		createTestEntity();
-		addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
-	
-		JavaResourcePersistentType typeResource = getJpaProject().getJavaResourcePersistentType(FULLY_QUALIFIED_TYPE_NAME);
-
-		assertNull(getJavaEntity().getIdClass());
-		assertNull(typeResource.getSupportingAnnotation(IdClassAnnotation.ANNOTATION_NAME));
-		
-		IdClassAnnotation idClass = (IdClassAnnotation) typeResource.addSupportingAnnotation(IdClassAnnotation.ANNOTATION_NAME);	
-		assertNull(getJavaEntity().getIdClass());
-		assertNotNull(typeResource.getSupportingAnnotation(IdClassAnnotation.ANNOTATION_NAME));
-		
-		idClass.setValue("model.Foo");
-		assertEquals("model.Foo", getJavaEntity().getIdClass());
-		assertEquals("model.Foo", ((IdClassAnnotation) typeResource.getSupportingAnnotation(IdClassAnnotation.ANNOTATION_NAME)).getValue());
-		
-		//test setting  @IdClass value to null, IdClass annotation is removed
-		idClass.setValue(null);
-		assertNull(getJavaEntity().getIdClass());
-		assertNull(typeResource.getSupportingAnnotation(IdClassAnnotation.ANNOTATION_NAME));
-		
-		//reset @IdClass value and then remove @IdClass
-		idClass = (IdClassAnnotation) typeResource.addSupportingAnnotation(IdClassAnnotation.ANNOTATION_NAME);	
-		idClass.setValue("model.Foo");
-		typeResource.removeSupportingAnnotation(IdClassAnnotation.ANNOTATION_NAME);
-		
-		assertNull(getJavaEntity().getIdClass());
-		assertNull(typeResource.getSupportingAnnotation(IdClassAnnotation.ANNOTATION_NAME));		
-	}
-	
-	public void testModifyIdClass() throws Exception {
-		createTestEntity();
-		addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
-	
-		JavaResourcePersistentType typeResource = getJpaProject().getJavaResourcePersistentType(FULLY_QUALIFIED_TYPE_NAME);
-
-		assertNull(getJavaEntity().getIdClass());
-		assertNull(typeResource.getSupportingAnnotation(IdClassAnnotation.ANNOTATION_NAME));
-			
-		getJavaEntity().setIdClass("model.Foo");
-		assertEquals("model.Foo", ((IdClassAnnotation) typeResource.getSupportingAnnotation(IdClassAnnotation.ANNOTATION_NAME)).getValue());
-		assertEquals("model.Foo", getJavaEntity().getIdClass());
-		
-		getJavaEntity().setIdClass(null);
-		assertNull(getJavaEntity().getIdClass());
-		assertNull(typeResource.getSupportingAnnotation(IdClassAnnotation.ANNOTATION_NAME));
-	}
-	
-	public void testGetPrimaryKeyColumnNameWithAttributeOverride() throws Exception {
-		createTestMappedSuperclass();
-		createTestSubType();
-		addXmlClassRef(PACKAGE_NAME + ".AnnotationTestTypeChild");
-		addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
-
-		Iterator<ClassRef> classRefs = getPersistenceUnit().specifiedClassRefs();
-		JavaPersistentType entityPersistentType = classRefs.next().getJavaPersistentType();
-		JavaEntity javaEntity = (JavaEntity) entityPersistentType.getMapping();
-		JavaPersistentType mappedSuperclassPersistentType = classRefs.next().getJavaPersistentType();
-		
-		assertNull(javaEntity.getPrimaryKeyColumnName());
-
-		mappedSuperclassPersistentType.getAttributeNamed("id").setSpecifiedMappingKey(MappingKeys.ID_ATTRIBUTE_MAPPING_KEY);
-		assertEquals("id", javaEntity.getPrimaryKeyColumnName());
-		
-		((JavaIdMapping) mappedSuperclassPersistentType.getAttributeNamed("id").getMapping()).getColumn().setSpecifiedName("MY_ID");
-		assertEquals("MY_ID", javaEntity.getPrimaryKeyColumnName());
-		
-		JavaAttributeOverride javaAttributeOverride = javaEntity.virtualAttributeOverrides().next();
-		assertEquals("id", javaAttributeOverride.getName());
-		
-		javaAttributeOverride = (JavaAttributeOverride) javaAttributeOverride.setVirtual(false);
-		javaAttributeOverride.getColumn().setSpecifiedName("ID");
-		assertEquals("ID", javaEntity.getPrimaryKeyColumnName());
-	}
-	
-	public void testDiscriminatorValueIsUndefinedConcreteClass() throws Exception {
-		createTestEntity();
-		addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
-		assertTrue(getJavaEntity().discriminatorValueIsUndefined());
-		
-		createTestSubType();
-		addXmlClassRef(FULLY_QUALIFIED_SUB_TYPE_NAME);
-		assertFalse(getJavaEntity().discriminatorValueIsUndefined());
-	}
-	
-	public void testDiscriminatorValueIsUndefinedAbstractClass() throws Exception {
-		createTestAbstractEntity();
-		addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
-		assertTrue(getJavaEntity().discriminatorValueIsUndefined());
-		
-		createTestSubType();
-		addXmlClassRef(FULLY_QUALIFIED_SUB_TYPE_NAME);
-		assertTrue(getJavaEntity().discriminatorValueIsUndefined());
-	}
-	
-	public void testSpecifiedDiscriminatorColumnIsAllowed() throws Exception {
-		createAbstractTestEntity();
-		createTestSubType();
-		addXmlClassRef(PACKAGE_NAME + ".AnnotationTestTypeChild");
-		addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
-		
-		ListIterator<ClassRef> specifiedClassRefs = getPersistenceUnit().specifiedClassRefs();
-		Entity concreteEntity = (Entity) specifiedClassRefs.next().getJavaPersistentType().getMapping();
-		assertEquals("AnnotationTestTypeChild", concreteEntity.getName());
-		
-		Entity abstractEntity = (Entity) specifiedClassRefs.next().getJavaPersistentType().getMapping();
-		assertEquals(TYPE_NAME, abstractEntity.getName());
-
-		//table-per-class, no discriminator column allowed
-		assertFalse(concreteEntity.specifiedDiscriminatorColumnIsAllowed());
-		assertFalse(abstractEntity.specifiedDiscriminatorColumnIsAllowed());
-
-		
-		//single-table, discriminator column allowed on root entity
-		abstractEntity.setSpecifiedInheritanceStrategy(null);
-		assertFalse(concreteEntity.specifiedDiscriminatorColumnIsAllowed());
-		assertTrue(abstractEntity.specifiedDiscriminatorColumnIsAllowed());
-	}
-	
-	public void testAbstractEntityGetDefaultDiscriminatorColumnNameTablePerClassInheritance() throws Exception {
-		createAbstractTestEntity();
-		createTestSubType();
-		
-		addXmlClassRef(PACKAGE_NAME + ".AnnotationTestTypeChild");
-		addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
-		
-		ListIterator<ClassRef> specifiedClassRefs = getPersistenceUnit().specifiedClassRefs();
-		Entity concreteEntity = (Entity) specifiedClassRefs.next().getJavaPersistentType().getMapping();
-		assertEquals("AnnotationTestTypeChild", concreteEntity.getName());
-		
-		Entity abstractEntity = (Entity) specifiedClassRefs.next().getJavaPersistentType().getMapping();
-		assertEquals(TYPE_NAME, abstractEntity.getName());
-		
-		
-		assertEquals(InheritanceType.TABLE_PER_CLASS, abstractEntity.getSpecifiedInheritanceStrategy());
-		assertEquals(null, concreteEntity.getSpecifiedInheritanceStrategy());
-		assertEquals(InheritanceType.TABLE_PER_CLASS, concreteEntity.getDefaultInheritanceStrategy());
-		
-		
-		assertTrue(abstractEntity.discriminatorValueIsUndefined());
-		assertFalse(concreteEntity.specifiedDiscriminatorColumnIsAllowed());
-		assertEquals(null, abstractEntity.getDiscriminatorColumn().getDefaultName());
-		assertEquals(null, concreteEntity.getDiscriminatorColumn().getDefaultName());
-		
-		assertTrue(abstractEntity.discriminatorValueIsUndefined());
-		assertEquals(null, abstractEntity.getDefaultDiscriminatorValue());
-		assertTrue(concreteEntity.discriminatorValueIsUndefined());
-		assertEquals(null, concreteEntity.getDefaultDiscriminatorValue());
-	}
-}
diff --git a/jpa/tests/org.eclipse.jpt.core.tests/src/org/eclipse/jpt/core/tests/internal/context/java/JavaGeneratedValueTests.java b/jpa/tests/org.eclipse.jpt.core.tests/src/org/eclipse/jpt/core/tests/internal/context/java/JavaGeneratedValueTests.java
deleted file mode 100644
index 38f306f..0000000
--- a/jpa/tests/org.eclipse.jpt.core.tests/src/org/eclipse/jpt/core/tests/internal/context/java/JavaGeneratedValueTests.java
+++ /dev/null
@@ -1,147 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2008 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.core.tests.internal.context.java;
-
-import java.util.Iterator;
-
-import org.eclipse.jdt.core.ICompilationUnit;
-import org.eclipse.jpt.core.context.GeneratedValue;
-import org.eclipse.jpt.core.context.GenerationType;
-import org.eclipse.jpt.core.context.IdMapping;
-import org.eclipse.jpt.core.resource.java.GeneratedValueAnnotation;
-import org.eclipse.jpt.core.resource.java.JPA;
-import org.eclipse.jpt.core.resource.java.JavaResourcePersistentAttribute;
-import org.eclipse.jpt.core.resource.java.JavaResourcePersistentType;
-import org.eclipse.jpt.core.tests.internal.context.ContextModelTestCase;
-import org.eclipse.jpt.utility.internal.iterators.ArrayIterator;
-
-public class JavaGeneratedValueTests extends ContextModelTestCase
-{
-	private static final String GENERATOR = "MY_GENERATOR";
-
-	private ICompilationUnit createTestEntityWithGeneratedValue() throws Exception {	
-		return this.createTestType(new DefaultAnnotationWriter() {
-			@Override
-			public Iterator<String> imports() {
-				return new ArrayIterator<String>(JPA.ENTITY, JPA.GENERATED_VALUE, JPA.ID);
-			}
-			@Override
-			public void appendTypeAnnotationTo(StringBuilder sb) {
-				sb.append("@Entity");
-			}
-			
-			@Override
-			public void appendIdFieldAnnotationTo(StringBuilder sb) {
-				sb.append("@Id").append(CR);
-				sb.append("@GeneratedValue(generator=\"" + GENERATOR + "\")");
-			}
-		});
-	}
-		
-	public JavaGeneratedValueTests(String name) {
-		super(name);
-	}
-	
-	public void testGetGenerator() throws Exception {
-		createTestEntityWithGeneratedValue();
-		addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
-
-		IdMapping idMapping = (IdMapping) getJavaPersistentType().getAttributeNamed("id").getMapping();
-		assertEquals(GENERATOR, idMapping.getGeneratedValue().getGenerator());
-
-		//change resource model sequenceGenerator name, verify the context model is updated
-		JavaResourcePersistentType typeResource = getJpaProject().getJavaResourcePersistentType(FULLY_QUALIFIED_TYPE_NAME);
-		JavaResourcePersistentAttribute attributeResource = typeResource.persistableAttributes().next();
-		GeneratedValueAnnotation generatedValue = (GeneratedValueAnnotation) attributeResource.getSupportingAnnotation(JPA.GENERATED_VALUE);
-		
-		generatedValue.setGenerator("foo");
-		
-		assertEquals("foo", idMapping.getGeneratedValue().getGenerator());
-	}
-
-	public void testSetSpecifiedGenerator() throws Exception {
-		createTestEntityWithGeneratedValue();
-		addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
-
-		IdMapping idMapping = (IdMapping) getJavaPersistentType().getAttributeNamed("id").getMapping();
-		assertEquals(GENERATOR, idMapping.getGeneratedValue().getGenerator());
-
-		idMapping.getGeneratedValue().setSpecifiedGenerator("foo");
-		
-		assertEquals("foo", idMapping.getGeneratedValue().getGenerator());
-		
-		JavaResourcePersistentType typeResource = getJpaProject().getJavaResourcePersistentType(FULLY_QUALIFIED_TYPE_NAME);
-		JavaResourcePersistentAttribute attributeResource = typeResource.persistableAttributes().next();
-		GeneratedValueAnnotation generatedValue = (GeneratedValueAnnotation) attributeResource.getSupportingAnnotation(JPA.GENERATED_VALUE);
-		
-		assertEquals("foo", generatedValue.getGenerator());
-	}
-	
-	public void testSetSpecifiedNameNull() throws Exception {
-		createTestEntityWithGeneratedValue();
-		addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
-
-		IdMapping idMapping = (IdMapping) getJavaPersistentType().getAttributeNamed("id").getMapping();
-		assertEquals(GENERATOR, idMapping.getGeneratedValue().getGenerator());
-
-		idMapping.getGeneratedValue().setSpecifiedGenerator(null);
-		
-		assertNotNull(idMapping.getGeneratedValue());
-		
-		JavaResourcePersistentType typeResource = getJpaProject().getJavaResourcePersistentType(FULLY_QUALIFIED_TYPE_NAME);
-		JavaResourcePersistentAttribute attributeResource = typeResource.persistableAttributes().next();
-		GeneratedValueAnnotation generatedValue = (GeneratedValueAnnotation) attributeResource.getSupportingAnnotation(JPA.GENERATED_VALUE);
-		
-		assertNotNull(generatedValue);
-	}
-	
-	public void testGetStrategy() throws Exception {
-		createTestEntityWithGeneratedValue();
-		addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
-
-		IdMapping idMapping = (IdMapping) getJavaPersistentType().getAttributeNamed("id").getMapping();
-		assertEquals(GeneratedValue.DEFAULT_STRATEGY, idMapping.getGeneratedValue().getStrategy());
-
-		//change resource model sequenceGenerator name, verify the context model is updated
-		JavaResourcePersistentType typeResource = getJpaProject().getJavaResourcePersistentType(FULLY_QUALIFIED_TYPE_NAME);
-		JavaResourcePersistentAttribute attributeResource = typeResource.persistableAttributes().next();
-		GeneratedValueAnnotation generatedValue = (GeneratedValueAnnotation) attributeResource.getSupportingAnnotation(JPA.GENERATED_VALUE);
-		
-		generatedValue.setStrategy(org.eclipse.jpt.core.resource.java.GenerationType.IDENTITY);
-		
-		assertEquals(GenerationType.IDENTITY, idMapping.getGeneratedValue().getStrategy());
-		assertEquals(GeneratedValue.DEFAULT_STRATEGY, idMapping.getGeneratedValue().getDefaultStrategy());
-	}
-
-	public void testSetSpecifiedStrategy() throws Exception {
-		createTestEntityWithGeneratedValue();
-		addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
-
-		IdMapping idMapping = (IdMapping) getJavaPersistentType().getAttributeNamed("id").getMapping();
-		assertEquals(GeneratedValue.DEFAULT_STRATEGY, idMapping.getGeneratedValue().getStrategy());
-
-		idMapping.getGeneratedValue().setSpecifiedStrategy(GenerationType.IDENTITY);
-		
-		assertEquals(GenerationType.IDENTITY, idMapping.getGeneratedValue().getStrategy());
-		
-		JavaResourcePersistentType typeResource = getJpaProject().getJavaResourcePersistentType(FULLY_QUALIFIED_TYPE_NAME);
-		JavaResourcePersistentAttribute attributeResource = typeResource.persistableAttributes().next();
-		GeneratedValueAnnotation generatedValue = (GeneratedValueAnnotation) attributeResource.getSupportingAnnotation(JPA.GENERATED_VALUE);
-		
-		assertEquals(org.eclipse.jpt.core.resource.java.GenerationType.IDENTITY, generatedValue.getStrategy());
-		
-		idMapping.getGeneratedValue().setSpecifiedStrategy(null);
-		
-		assertEquals(GeneratedValue.DEFAULT_STRATEGY, idMapping.getGeneratedValue().getStrategy());
-		generatedValue = (GeneratedValueAnnotation) attributeResource.getSupportingAnnotation(JPA.GENERATED_VALUE);
-		assertNotNull(generatedValue);
-		assertNull(generatedValue.getStrategy());
-	}
-}
diff --git a/jpa/tests/org.eclipse.jpt.core.tests/src/org/eclipse/jpt/core/tests/internal/context/java/JavaIdMappingTests.java b/jpa/tests/org.eclipse.jpt.core.tests/src/org/eclipse/jpt/core/tests/internal/context/java/JavaIdMappingTests.java
deleted file mode 100644
index 0ff5198..0000000
--- a/jpa/tests/org.eclipse.jpt.core.tests/src/org/eclipse/jpt/core/tests/internal/context/java/JavaIdMappingTests.java
+++ /dev/null
@@ -1,706 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.core.tests.internal.context.java;
-
-import java.util.Iterator;
-import org.eclipse.jdt.core.ICompilationUnit;
-import org.eclipse.jpt.core.MappingKeys;
-import org.eclipse.jpt.core.context.BasicMapping;
-import org.eclipse.jpt.core.context.Converter;
-import org.eclipse.jpt.core.context.EmbeddedIdMapping;
-import org.eclipse.jpt.core.context.EmbeddedMapping;
-import org.eclipse.jpt.core.context.IdMapping;
-import org.eclipse.jpt.core.context.ManyToManyMapping;
-import org.eclipse.jpt.core.context.ManyToOneMapping;
-import org.eclipse.jpt.core.context.OneToManyMapping;
-import org.eclipse.jpt.core.context.OneToOneMapping;
-import org.eclipse.jpt.core.context.PersistentAttribute;
-import org.eclipse.jpt.core.context.TemporalConverter;
-import org.eclipse.jpt.core.context.TemporalType;
-import org.eclipse.jpt.core.context.TransientMapping;
-import org.eclipse.jpt.core.context.VersionMapping;
-import org.eclipse.jpt.core.resource.java.BasicAnnotation;
-import org.eclipse.jpt.core.resource.java.ColumnAnnotation;
-import org.eclipse.jpt.core.resource.java.EmbeddedAnnotation;
-import org.eclipse.jpt.core.resource.java.EmbeddedIdAnnotation;
-import org.eclipse.jpt.core.resource.java.GeneratedValueAnnotation;
-import org.eclipse.jpt.core.resource.java.IdAnnotation;
-import org.eclipse.jpt.core.resource.java.JPA;
-import org.eclipse.jpt.core.resource.java.JavaResourcePersistentAttribute;
-import org.eclipse.jpt.core.resource.java.JavaResourcePersistentType;
-import org.eclipse.jpt.core.resource.java.ManyToManyAnnotation;
-import org.eclipse.jpt.core.resource.java.ManyToOneAnnotation;
-import org.eclipse.jpt.core.resource.java.OneToManyAnnotation;
-import org.eclipse.jpt.core.resource.java.OneToOneAnnotation;
-import org.eclipse.jpt.core.resource.java.SequenceGeneratorAnnotation;
-import org.eclipse.jpt.core.resource.java.TableGeneratorAnnotation;
-import org.eclipse.jpt.core.resource.java.TemporalAnnotation;
-import org.eclipse.jpt.core.resource.java.TransientAnnotation;
-import org.eclipse.jpt.core.resource.java.VersionAnnotation;
-import org.eclipse.jpt.core.tests.internal.context.ContextModelTestCase;
-import org.eclipse.jpt.utility.internal.iterators.ArrayIterator;
-
-public class JavaIdMappingTests extends ContextModelTestCase
-{
-
-	private ICompilationUnit createTestEntityWithIdMapping() throws Exception {
-		return this.createTestType(new DefaultAnnotationWriter() {
-			@Override
-			public Iterator<String> imports() {
-				return new ArrayIterator<String>(JPA.ENTITY, JPA.ID);
-			}
-			@Override
-			public void appendTypeAnnotationTo(StringBuilder sb) {
-				sb.append("@Entity").append(CR);
-			}
-			
-			@Override
-			public void appendIdFieldAnnotationTo(StringBuilder sb) {
-				sb.append("@Id").append(CR);
-			}
-		});
-	}
-
-	private ICompilationUnit createTestEntityWithTemporal() throws Exception {
-		return this.createTestType(new DefaultAnnotationWriter() {
-			@Override
-			public Iterator<String> imports() {
-				return new ArrayIterator<String>(JPA.ENTITY, JPA.ID, JPA.TEMPORAL, JPA.TEMPORAL_TYPE);
-			}
-			@Override
-			public void appendTypeAnnotationTo(StringBuilder sb) {
-				sb.append("@Entity").append(CR);
-			}
-			
-			@Override
-			public void appendIdFieldAnnotationTo(StringBuilder sb) {
-				sb.append("@Id").append(CR);
-				sb.append("@Temporal(TemporalType.TIMESTAMP)").append(CR);
-			}
-		});
-	}
-	
-	private ICompilationUnit createTestEntityWithIdMappingGeneratedValue() throws Exception {	
-		return this.createTestType(new DefaultAnnotationWriter() {
-			@Override
-			public Iterator<String> imports() {
-				return new ArrayIterator<String>(JPA.ENTITY, JPA.ID, JPA.GENERATED_VALUE);
-			}
-			@Override
-			public void appendTypeAnnotationTo(StringBuilder sb) {
-				sb.append("@Entity").append(CR);
-			}
-			
-			@Override
-			public void appendIdFieldAnnotationTo(StringBuilder sb) {
-				sb.append("@Id").append(CR);
-				sb.append("@GeneratedValue").append(CR);
-			}
-		});
-	}
-	
-	public JavaIdMappingTests(String name) {
-		super(name);
-	}
-	
-	public void testMorphToBasicMapping() throws Exception {
-		createTestEntityWithIdMapping();
-		addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
-		
-		PersistentAttribute persistentAttribute = getJavaPersistentType().attributes().next();
-		IdMapping idMapping = (IdMapping) persistentAttribute.getMapping();
-		assertFalse(idMapping.isDefault());
-		idMapping.getColumn().setSpecifiedName("FOO");
-		idMapping.setSpecifiedConverter(Converter.TEMPORAL_CONVERTER);
-		((TemporalConverter) idMapping.getSpecifiedConverter()).setTemporalType(TemporalType.TIME);
-		idMapping.addGeneratedValue();
-		idMapping.addTableGenerator();
-		idMapping.addSequenceGenerator();
-		assertFalse(idMapping.isDefault());
-		
-		persistentAttribute.setSpecifiedMappingKey(MappingKeys.BASIC_ATTRIBUTE_MAPPING_KEY);
-		assertEquals("FOO", ((BasicMapping) persistentAttribute.getMapping()).getColumn().getSpecifiedName());
-		assertEquals(TemporalType.TIME, ((TemporalConverter) ((BasicMapping) persistentAttribute.getMapping()).getConverter()).getTemporalType());
-		
-		JavaResourcePersistentType typeResource = getJpaProject().getJavaResourcePersistentType(FULLY_QUALIFIED_TYPE_NAME);
-		JavaResourcePersistentAttribute attributeResource = typeResource.persistableAttributes().next();
-		assertNull(attributeResource.getMappingAnnotation(IdAnnotation.ANNOTATION_NAME));
-		assertNotNull(attributeResource.getMappingAnnotation(BasicAnnotation.ANNOTATION_NAME));
-		assertNotNull(attributeResource.getSupportingAnnotation(ColumnAnnotation.ANNOTATION_NAME));
-		assertNotNull(attributeResource.getSupportingAnnotation(TemporalAnnotation.ANNOTATION_NAME));
-		assertNull(attributeResource.getSupportingAnnotation(TableGeneratorAnnotation.ANNOTATION_NAME));
-		assertNull(attributeResource.getSupportingAnnotation(SequenceGeneratorAnnotation.ANNOTATION_NAME));
-		assertNull(attributeResource.getSupportingAnnotation(GeneratedValueAnnotation.ANNOTATION_NAME));
-	}
-	
-	public void testMorphToDefault() throws Exception {
-		createTestEntityWithIdMapping();
-		addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
-		
-		PersistentAttribute persistentAttribute = getJavaPersistentType().attributes().next();
-		IdMapping idMapping = (IdMapping) persistentAttribute.getMapping();
-		assertFalse(idMapping.isDefault());
-		idMapping.getColumn().setSpecifiedName("FOO");
-		idMapping.setSpecifiedConverter(Converter.TEMPORAL_CONVERTER);
-		((TemporalConverter) idMapping.getSpecifiedConverter()).setTemporalType(TemporalType.TIME);
-		idMapping.addGeneratedValue();
-		idMapping.addTableGenerator();
-		idMapping.addSequenceGenerator();
-		assertFalse(idMapping.isDefault());
-		
-		persistentAttribute.setSpecifiedMappingKey(MappingKeys.NULL_ATTRIBUTE_MAPPING_KEY);
-		assertEquals("FOO", ((BasicMapping) persistentAttribute.getMapping()).getColumn().getSpecifiedName());
-		assertEquals(TemporalType.TIME, ((TemporalConverter) ((BasicMapping) persistentAttribute.getMapping()).getConverter()).getTemporalType());
-		
-		JavaResourcePersistentType typeResource = getJpaProject().getJavaResourcePersistentType(FULLY_QUALIFIED_TYPE_NAME);
-		JavaResourcePersistentAttribute attributeResource = typeResource.persistableAttributes().next();
-		assertNull(attributeResource.getMappingAnnotation(IdAnnotation.ANNOTATION_NAME));
-		assertNotNull(attributeResource.getSupportingAnnotation(ColumnAnnotation.ANNOTATION_NAME));
-		assertNotNull(attributeResource.getSupportingAnnotation(TemporalAnnotation.ANNOTATION_NAME));
-		assertNull(attributeResource.getSupportingAnnotation(TableGeneratorAnnotation.ANNOTATION_NAME));
-		assertNull(attributeResource.getSupportingAnnotation(SequenceGeneratorAnnotation.ANNOTATION_NAME));
-		assertNull(attributeResource.getSupportingAnnotation(GeneratedValueAnnotation.ANNOTATION_NAME));
-	}
-	
-	public void testMorphToVersionMapping() throws Exception {
-		createTestEntityWithIdMapping();
-		addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
-		
-		PersistentAttribute persistentAttribute = getJavaPersistentType().attributes().next();
-		IdMapping idMapping = (IdMapping) persistentAttribute.getMapping();
-		assertFalse(idMapping.isDefault());
-		idMapping.getColumn().setSpecifiedName("FOO");
-		idMapping.setSpecifiedConverter(Converter.TEMPORAL_CONVERTER);
-		((TemporalConverter) idMapping.getSpecifiedConverter()).setTemporalType(TemporalType.TIME);
-		idMapping.addGeneratedValue();
-		idMapping.addTableGenerator();
-		idMapping.addSequenceGenerator();
-		assertFalse(idMapping.isDefault());
-		
-		persistentAttribute.setSpecifiedMappingKey(MappingKeys.VERSION_ATTRIBUTE_MAPPING_KEY);
-		assertEquals("FOO", ((VersionMapping) persistentAttribute.getMapping()).getColumn().getSpecifiedName());
-		assertEquals(TemporalType.TIME, ((TemporalConverter) ((VersionMapping) persistentAttribute.getMapping()).getConverter()).getTemporalType());
-		
-		JavaResourcePersistentType typeResource = getJpaProject().getJavaResourcePersistentType(FULLY_QUALIFIED_TYPE_NAME);
-		JavaResourcePersistentAttribute attributeResource = typeResource.persistableAttributes().next();
-		assertNull(attributeResource.getMappingAnnotation(IdAnnotation.ANNOTATION_NAME));
-		assertNotNull(attributeResource.getMappingAnnotation(VersionAnnotation.ANNOTATION_NAME));
-		assertNotNull(attributeResource.getSupportingAnnotation(ColumnAnnotation.ANNOTATION_NAME));
-		assertNotNull(attributeResource.getSupportingAnnotation(TemporalAnnotation.ANNOTATION_NAME));
-		assertNull(attributeResource.getSupportingAnnotation(TableGeneratorAnnotation.ANNOTATION_NAME));
-		assertNull(attributeResource.getSupportingAnnotation(SequenceGeneratorAnnotation.ANNOTATION_NAME));
-		assertNull(attributeResource.getSupportingAnnotation(GeneratedValueAnnotation.ANNOTATION_NAME));
-	}
-	
-	public void testMorphToEmbeddedMapping() throws Exception {
-		createTestEntityWithIdMapping();
-		addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
-		
-		PersistentAttribute persistentAttribute = getJavaPersistentType().attributes().next();
-		IdMapping idMapping = (IdMapping) persistentAttribute.getMapping();
-		assertFalse(idMapping.isDefault());
-		idMapping.getColumn().setSpecifiedName("FOO");
-		idMapping.setSpecifiedConverter(Converter.TEMPORAL_CONVERTER);
-		((TemporalConverter) idMapping.getSpecifiedConverter()).setTemporalType(TemporalType.TIME);
-		idMapping.addGeneratedValue();
-		idMapping.addTableGenerator();
-		idMapping.addSequenceGenerator();
-		assertFalse(idMapping.isDefault());
-		
-		persistentAttribute.setSpecifiedMappingKey(MappingKeys.EMBEDDED_ATTRIBUTE_MAPPING_KEY);
-		assertTrue(persistentAttribute.getMapping() instanceof EmbeddedMapping);
-		
-		JavaResourcePersistentType typeResource = getJpaProject().getJavaResourcePersistentType(FULLY_QUALIFIED_TYPE_NAME);
-		JavaResourcePersistentAttribute attributeResource = typeResource.persistableAttributes().next();
-		assertNull(attributeResource.getMappingAnnotation(IdAnnotation.ANNOTATION_NAME));
-		assertNotNull(attributeResource.getMappingAnnotation(EmbeddedAnnotation.ANNOTATION_NAME));
-		assertNull(attributeResource.getSupportingAnnotation(ColumnAnnotation.ANNOTATION_NAME));
-		assertNull(attributeResource.getSupportingAnnotation(TemporalAnnotation.ANNOTATION_NAME));
-		assertNull(attributeResource.getSupportingAnnotation(TableGeneratorAnnotation.ANNOTATION_NAME));
-		assertNull(attributeResource.getSupportingAnnotation(SequenceGeneratorAnnotation.ANNOTATION_NAME));
-		assertNull(attributeResource.getSupportingAnnotation(GeneratedValueAnnotation.ANNOTATION_NAME));
-	}
-	
-	public void testMorphToTransientMapping() throws Exception {
-		createTestEntityWithIdMapping();
-		addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
-		
-		PersistentAttribute persistentAttribute = getJavaPersistentType().attributes().next();
-		IdMapping idMapping = (IdMapping) persistentAttribute.getMapping();
-		assertFalse(idMapping.isDefault());
-		idMapping.getColumn().setSpecifiedName("FOO");
-		idMapping.setSpecifiedConverter(Converter.TEMPORAL_CONVERTER);
-		((TemporalConverter) idMapping.getSpecifiedConverter()).setTemporalType(TemporalType.TIME);
-		idMapping.addGeneratedValue();
-		idMapping.addTableGenerator();
-		idMapping.addSequenceGenerator();
-		assertFalse(idMapping.isDefault());
-		
-		persistentAttribute.setSpecifiedMappingKey(MappingKeys.TRANSIENT_ATTRIBUTE_MAPPING_KEY);
-		assertTrue(persistentAttribute.getMapping() instanceof TransientMapping);
-		
-		JavaResourcePersistentType typeResource = getJpaProject().getJavaResourcePersistentType(FULLY_QUALIFIED_TYPE_NAME);
-		JavaResourcePersistentAttribute attributeResource = typeResource.persistableAttributes().next();
-		assertNull(attributeResource.getMappingAnnotation(IdAnnotation.ANNOTATION_NAME));
-		assertNotNull(attributeResource.getMappingAnnotation(TransientAnnotation.ANNOTATION_NAME));
-		assertNull(attributeResource.getSupportingAnnotation(ColumnAnnotation.ANNOTATION_NAME));
-		assertNull(attributeResource.getSupportingAnnotation(TemporalAnnotation.ANNOTATION_NAME));
-		assertNull(attributeResource.getSupportingAnnotation(TableGeneratorAnnotation.ANNOTATION_NAME));
-		assertNull(attributeResource.getSupportingAnnotation(SequenceGeneratorAnnotation.ANNOTATION_NAME));
-		assertNull(attributeResource.getSupportingAnnotation(GeneratedValueAnnotation.ANNOTATION_NAME));
-	}
-	
-	public void testMorphToEmbeddedIdMapping() throws Exception {
-		createTestEntityWithIdMapping();
-		addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
-		
-		PersistentAttribute persistentAttribute = getJavaPersistentType().attributes().next();
-		IdMapping idMapping = (IdMapping) persistentAttribute.getMapping();
-		assertFalse(idMapping.isDefault());
-		idMapping.getColumn().setSpecifiedName("FOO");
-		idMapping.setSpecifiedConverter(Converter.TEMPORAL_CONVERTER);
-		((TemporalConverter) idMapping.getSpecifiedConverter()).setTemporalType(TemporalType.TIME);
-		idMapping.addGeneratedValue();
-		idMapping.addTableGenerator();
-		idMapping.addSequenceGenerator();
-		assertFalse(idMapping.isDefault());
-		
-		persistentAttribute.setSpecifiedMappingKey(MappingKeys.EMBEDDED_ID_ATTRIBUTE_MAPPING_KEY);
-		assertTrue(persistentAttribute.getMapping() instanceof EmbeddedIdMapping);
-		
-		JavaResourcePersistentType typeResource = getJpaProject().getJavaResourcePersistentType(FULLY_QUALIFIED_TYPE_NAME);
-		JavaResourcePersistentAttribute attributeResource = typeResource.persistableAttributes().next();
-		assertNull(attributeResource.getMappingAnnotation(IdAnnotation.ANNOTATION_NAME));
-		assertNotNull(attributeResource.getMappingAnnotation(EmbeddedIdAnnotation.ANNOTATION_NAME));
-		assertNull(attributeResource.getSupportingAnnotation(ColumnAnnotation.ANNOTATION_NAME));
-		assertNull(attributeResource.getSupportingAnnotation(TemporalAnnotation.ANNOTATION_NAME));
-		assertNull(attributeResource.getSupportingAnnotation(TableGeneratorAnnotation.ANNOTATION_NAME));
-		assertNull(attributeResource.getSupportingAnnotation(SequenceGeneratorAnnotation.ANNOTATION_NAME));
-		assertNull(attributeResource.getSupportingAnnotation(GeneratedValueAnnotation.ANNOTATION_NAME));
-	}
-
-	public void testMorphToOneToOneMapping() throws Exception {
-		createTestEntityWithIdMapping();
-		addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
-		
-		PersistentAttribute persistentAttribute = getJavaPersistentType().attributes().next();
-		IdMapping idMapping = (IdMapping) persistentAttribute.getMapping();
-		assertFalse(idMapping.isDefault());
-		idMapping.getColumn().setSpecifiedName("FOO");
-		idMapping.setSpecifiedConverter(Converter.TEMPORAL_CONVERTER);
-		((TemporalConverter) idMapping.getSpecifiedConverter()).setTemporalType(TemporalType.TIME);
-		idMapping.addGeneratedValue();
-		idMapping.addTableGenerator();
-		idMapping.addSequenceGenerator();
-		assertFalse(idMapping.isDefault());
-		
-		persistentAttribute.setSpecifiedMappingKey(MappingKeys.ONE_TO_ONE_ATTRIBUTE_MAPPING_KEY);
-		assertTrue(persistentAttribute.getMapping() instanceof OneToOneMapping);
-		
-		JavaResourcePersistentType typeResource = getJpaProject().getJavaResourcePersistentType(FULLY_QUALIFIED_TYPE_NAME);
-		JavaResourcePersistentAttribute attributeResource = typeResource.persistableAttributes().next();
-		assertNull(attributeResource.getMappingAnnotation(IdAnnotation.ANNOTATION_NAME));
-		assertNotNull(attributeResource.getMappingAnnotation(OneToOneAnnotation.ANNOTATION_NAME));
-		assertNull(attributeResource.getSupportingAnnotation(ColumnAnnotation.ANNOTATION_NAME));
-		assertNull(attributeResource.getSupportingAnnotation(TemporalAnnotation.ANNOTATION_NAME));
-		assertNull(attributeResource.getSupportingAnnotation(TableGeneratorAnnotation.ANNOTATION_NAME));
-		assertNull(attributeResource.getSupportingAnnotation(SequenceGeneratorAnnotation.ANNOTATION_NAME));
-		assertNull(attributeResource.getSupportingAnnotation(GeneratedValueAnnotation.ANNOTATION_NAME));
-	}
-
-	public void testMorphToOneToManyMapping() throws Exception {
-		createTestEntityWithIdMapping();
-		addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
-		
-		PersistentAttribute persistentAttribute = getJavaPersistentType().attributes().next();
-		IdMapping idMapping = (IdMapping) persistentAttribute.getMapping();
-		assertFalse(idMapping.isDefault());
-		idMapping.getColumn().setSpecifiedName("FOO");
-		idMapping.setSpecifiedConverter(Converter.TEMPORAL_CONVERTER);
-		((TemporalConverter) idMapping.getSpecifiedConverter()).setTemporalType(TemporalType.TIME);
-		idMapping.addGeneratedValue();
-		idMapping.addTableGenerator();
-		idMapping.addSequenceGenerator();
-		assertFalse(idMapping.isDefault());
-		
-		persistentAttribute.setSpecifiedMappingKey(MappingKeys.ONE_TO_MANY_ATTRIBUTE_MAPPING_KEY);
-		assertTrue(persistentAttribute.getMapping() instanceof OneToManyMapping);
-		
-		JavaResourcePersistentType typeResource = getJpaProject().getJavaResourcePersistentType(FULLY_QUALIFIED_TYPE_NAME);
-		JavaResourcePersistentAttribute attributeResource = typeResource.persistableAttributes().next();
-		assertNull(attributeResource.getMappingAnnotation(IdAnnotation.ANNOTATION_NAME));
-		assertNotNull(attributeResource.getMappingAnnotation(OneToManyAnnotation.ANNOTATION_NAME));
-		assertNull(attributeResource.getSupportingAnnotation(ColumnAnnotation.ANNOTATION_NAME));
-		assertNull(attributeResource.getSupportingAnnotation(TemporalAnnotation.ANNOTATION_NAME));
-		assertNull(attributeResource.getSupportingAnnotation(TableGeneratorAnnotation.ANNOTATION_NAME));
-		assertNull(attributeResource.getSupportingAnnotation(SequenceGeneratorAnnotation.ANNOTATION_NAME));
-		assertNull(attributeResource.getSupportingAnnotation(GeneratedValueAnnotation.ANNOTATION_NAME));
-	}
-
-	public void testMorphToManyToOneMapping() throws Exception {
-		createTestEntityWithIdMapping();
-		addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
-		
-		PersistentAttribute persistentAttribute = getJavaPersistentType().attributes().next();
-		IdMapping idMapping = (IdMapping) persistentAttribute.getMapping();
-		assertFalse(idMapping.isDefault());
-		idMapping.getColumn().setSpecifiedName("FOO");
-		idMapping.setSpecifiedConverter(Converter.TEMPORAL_CONVERTER);
-		((TemporalConverter) idMapping.getSpecifiedConverter()).setTemporalType(TemporalType.TIME);
-		idMapping.addGeneratedValue();
-		idMapping.addTableGenerator();
-		idMapping.addSequenceGenerator();
-		assertFalse(idMapping.isDefault());
-		
-		persistentAttribute.setSpecifiedMappingKey(MappingKeys.MANY_TO_ONE_ATTRIBUTE_MAPPING_KEY);
-		assertTrue(persistentAttribute.getMapping() instanceof ManyToOneMapping);
-		
-		JavaResourcePersistentType typeResource = getJpaProject().getJavaResourcePersistentType(FULLY_QUALIFIED_TYPE_NAME);
-		JavaResourcePersistentAttribute attributeResource = typeResource.persistableAttributes().next();
-		assertNull(attributeResource.getMappingAnnotation(IdAnnotation.ANNOTATION_NAME));
-		assertNotNull(attributeResource.getMappingAnnotation(ManyToOneAnnotation.ANNOTATION_NAME));
-		assertNull(attributeResource.getSupportingAnnotation(ColumnAnnotation.ANNOTATION_NAME));
-		assertNull(attributeResource.getSupportingAnnotation(TemporalAnnotation.ANNOTATION_NAME));
-		assertNull(attributeResource.getSupportingAnnotation(TableGeneratorAnnotation.ANNOTATION_NAME));
-		assertNull(attributeResource.getSupportingAnnotation(SequenceGeneratorAnnotation.ANNOTATION_NAME));
-		assertNull(attributeResource.getSupportingAnnotation(GeneratedValueAnnotation.ANNOTATION_NAME));
-	}
-
-	public void testMorphToManyToManyMapping() throws Exception {
-		createTestEntityWithIdMapping();
-		addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
-		
-		PersistentAttribute persistentAttribute = getJavaPersistentType().attributes().next();
-		IdMapping idMapping = (IdMapping) persistentAttribute.getMapping();
-		assertFalse(idMapping.isDefault());
-		idMapping.getColumn().setSpecifiedName("FOO");
-		idMapping.setSpecifiedConverter(Converter.TEMPORAL_CONVERTER);
-		((TemporalConverter) idMapping.getSpecifiedConverter()).setTemporalType(TemporalType.TIME);
-		idMapping.addGeneratedValue();
-		idMapping.addTableGenerator();
-		idMapping.addSequenceGenerator();
-		assertFalse(idMapping.isDefault());
-		
-		persistentAttribute.setSpecifiedMappingKey(MappingKeys.MANY_TO_MANY_ATTRIBUTE_MAPPING_KEY);
-		assertTrue(persistentAttribute.getMapping() instanceof ManyToManyMapping);
-		
-		JavaResourcePersistentType typeResource = getJpaProject().getJavaResourcePersistentType(FULLY_QUALIFIED_TYPE_NAME);
-		JavaResourcePersistentAttribute attributeResource = typeResource.persistableAttributes().next();
-		assertNull(attributeResource.getMappingAnnotation(IdAnnotation.ANNOTATION_NAME));
-		assertNotNull(attributeResource.getMappingAnnotation(ManyToManyAnnotation.ANNOTATION_NAME));
-		assertNull(attributeResource.getSupportingAnnotation(ColumnAnnotation.ANNOTATION_NAME));
-		assertNull(attributeResource.getSupportingAnnotation(TemporalAnnotation.ANNOTATION_NAME));
-		assertNull(attributeResource.getSupportingAnnotation(TableGeneratorAnnotation.ANNOTATION_NAME));
-		assertNull(attributeResource.getSupportingAnnotation(SequenceGeneratorAnnotation.ANNOTATION_NAME));
-		assertNull(attributeResource.getSupportingAnnotation(GeneratedValueAnnotation.ANNOTATION_NAME));
-	}
-	
-	public void testGetTemporal() throws Exception {
-		createTestEntityWithTemporal();
-		addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
-		
-		PersistentAttribute persistentAttribute = getJavaPersistentType().attributes().next();
-		IdMapping idMapping = (IdMapping) persistentAttribute.getSpecifiedMapping();
-
-		assertEquals(TemporalType.TIMESTAMP, ((TemporalConverter) idMapping.getConverter()).getTemporalType());
-	}
-
-	public void testSetTemporal() throws Exception {
-		createTestEntityWithIdMapping();
-		addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
-		
-		PersistentAttribute persistentAttribute = getJavaPersistentType().attributes().next();
-		IdMapping idMapping = (IdMapping) persistentAttribute.getSpecifiedMapping();
-		assertEquals(Converter.NO_CONVERTER, idMapping.getConverter().getType());
-		
-		idMapping.setSpecifiedConverter(Converter.TEMPORAL_CONVERTER);
-		((TemporalConverter) idMapping.getConverter()).setTemporalType(TemporalType.TIME);
-		
-		JavaResourcePersistentType typeResource = getJpaProject().getJavaResourcePersistentType(FULLY_QUALIFIED_TYPE_NAME);
-		JavaResourcePersistentAttribute attributeResource = typeResource.persistableAttributes().next();
-		TemporalAnnotation temporal = (TemporalAnnotation) attributeResource.getSupportingAnnotation(TemporalAnnotation.ANNOTATION_NAME);
-		
-		assertEquals(org.eclipse.jpt.core.resource.java.TemporalType.TIME, temporal.getValue());
-		
-		idMapping.setSpecifiedConverter(null);
-		assertNull(attributeResource.getSupportingAnnotation(TemporalAnnotation.ANNOTATION_NAME));
-	}
-	
-	public void testGetTemporalUpdatesFromResourceModelChange() throws Exception {
-		createTestEntityWithIdMapping();
-		addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
-		
-		PersistentAttribute persistentAttribute = getJavaPersistentType().attributes().next();
-		IdMapping idMapping = (IdMapping) persistentAttribute.getSpecifiedMapping();
-
-		assertEquals(Converter.NO_CONVERTER, idMapping.getConverter().getType());
-		
-		
-		JavaResourcePersistentType typeResource = getJpaProject().getJavaResourcePersistentType(FULLY_QUALIFIED_TYPE_NAME);
-		JavaResourcePersistentAttribute attributeResource = typeResource.persistableAttributes().next();
-		TemporalAnnotation temporal = (TemporalAnnotation) attributeResource.addSupportingAnnotation(TemporalAnnotation.ANNOTATION_NAME);
-		temporal.setValue(org.eclipse.jpt.core.resource.java.TemporalType.DATE);
-		
-		assertEquals(TemporalType.DATE, ((TemporalConverter) idMapping.getConverter()).getTemporalType());
-		
-		attributeResource.removeSupportingAnnotation(TemporalAnnotation.ANNOTATION_NAME);
-		
-		assertEquals(Converter.NO_CONVERTER, idMapping.getConverter().getType());
-		assertFalse(idMapping.isDefault());
-		assertSame(idMapping, persistentAttribute.getSpecifiedMapping());
-	}
-	
-	public void testGetColumn() throws Exception {
-		createTestEntityWithIdMapping();
-		addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
-		
-		PersistentAttribute persistentAttribute = getJavaPersistentType().attributes().next();
-		IdMapping idMapping = (IdMapping) persistentAttribute.getSpecifiedMapping();
-		
-		assertNull(idMapping.getColumn().getSpecifiedName());
-		assertEquals("id", idMapping.getColumn().getName());
-		
-		JavaResourcePersistentType typeResource = getJpaProject().getJavaResourcePersistentType(FULLY_QUALIFIED_TYPE_NAME);
-		JavaResourcePersistentAttribute attributeResource = typeResource.persistableAttributes().next();
-		ColumnAnnotation column = (ColumnAnnotation) attributeResource.addSupportingAnnotation(JPA.COLUMN);
-		column.setName("foo");
-		
-		assertEquals("foo", idMapping.getColumn().getSpecifiedName());
-		assertEquals("foo", idMapping.getColumn().getName());
-		assertEquals("id", idMapping.getColumn().getDefaultName());
-	}
-
-	public void testGetSequenceGenerator() throws Exception {
-		createTestEntityWithIdMapping();
-		addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
-		
-		PersistentAttribute persistentAttribute = getJavaPersistentType().attributes().next();
-		IdMapping idMapping = (IdMapping) persistentAttribute.getSpecifiedMapping();
-		assertNull(idMapping.getSequenceGenerator());
-		assertEquals(0, idMapping.getPersistenceUnit().generatorsSize());
-		
-		JavaResourcePersistentType typeResource = getJpaProject().getJavaResourcePersistentType(FULLY_QUALIFIED_TYPE_NAME);
-		JavaResourcePersistentAttribute attributeResource = typeResource.persistableAttributes().next();
-		attributeResource.addSupportingAnnotation(JPA.SEQUENCE_GENERATOR);
-		assertNotNull(idMapping.getSequenceGenerator());
-		assertEquals(1, attributeResource.supportingAnnotationsSize());
-		assertEquals(1, idMapping.getPersistenceUnit().generatorsSize());
-		
-		idMapping.getSequenceGenerator().setName("foo");
-		assertEquals(1, idMapping.getPersistenceUnit().generatorsSize());
-	}
-	
-	public void testAddSequenceGenerator() throws Exception {
-		createTestEntityWithIdMapping();
-		addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
-		
-		PersistentAttribute persistentAttribute = getJavaPersistentType().attributes().next();
-		IdMapping idMapping = (IdMapping) persistentAttribute.getSpecifiedMapping();
-		
-		assertNull(idMapping.getSequenceGenerator());
-		
-		idMapping.addSequenceGenerator();
-		
-		JavaResourcePersistentType typeResource = getJpaProject().getJavaResourcePersistentType(FULLY_QUALIFIED_TYPE_NAME);
-		JavaResourcePersistentAttribute attributeResource = typeResource.persistableAttributes().next();
-	
-		assertNotNull(attributeResource.getSupportingAnnotation(JPA.SEQUENCE_GENERATOR));
-		assertNotNull(idMapping.getSequenceGenerator());
-		
-		//try adding another sequence generator, should get an IllegalStateException
-		try {
-				idMapping.addSequenceGenerator();
-		} catch (IllegalStateException e) {
-			return;
-		}
-		fail("IllegalStateException not thrown");
-	}
-	
-	public void testRemoveSequenceGenerator() throws Exception {
-		createTestEntityWithIdMapping();
-		addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
-		
-		PersistentAttribute persistentAttribute = getJavaPersistentType().attributes().next();
-		IdMapping idMapping = (IdMapping) persistentAttribute.getSpecifiedMapping();
-
-		JavaResourcePersistentType typeResource = getJpaProject().getJavaResourcePersistentType(FULLY_QUALIFIED_TYPE_NAME);
-		JavaResourcePersistentAttribute attributeResource = typeResource.persistableAttributes().next();
-		attributeResource.addSupportingAnnotation(JPA.SEQUENCE_GENERATOR);
-		
-		
-		idMapping.removeSequenceGenerator();
-		
-		assertNull(idMapping.getSequenceGenerator());
-		assertNull(attributeResource.getSupportingAnnotation(JPA.SEQUENCE_GENERATOR));
-
-		//try removing the sequence generator again, should get an IllegalStateException
-		try {
-			idMapping.removeSequenceGenerator();		
-		} catch (IllegalStateException e) {
-			return;
-		}
-		fail("IllegalStateException not thrown");
-	}
-	
-	public void testGetTableGenerator() throws Exception {
-		createTestEntityWithIdMapping();
-		addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
-		
-		PersistentAttribute persistentAttribute = getJavaPersistentType().attributes().next();
-		IdMapping idMapping = (IdMapping) persistentAttribute.getSpecifiedMapping();
-		assertNull(idMapping.getTableGenerator());
-		assertEquals(0, idMapping.getPersistenceUnit().generatorsSize());
-		
-		JavaResourcePersistentType typeResource = getJpaProject().getJavaResourcePersistentType(FULLY_QUALIFIED_TYPE_NAME);
-		JavaResourcePersistentAttribute attributeResource = typeResource.persistableAttributes().next();
-		attributeResource.addSupportingAnnotation(JPA.TABLE_GENERATOR);
-		assertNotNull(idMapping.getTableGenerator());		
-		assertEquals(1, attributeResource.supportingAnnotationsSize());
-		assertEquals(1, idMapping.getPersistenceUnit().generatorsSize());
-		
-		idMapping.getTableGenerator().setName("foo");
-		assertEquals(1, idMapping.getPersistenceUnit().generatorsSize());
-	}
-	
-	public void testAddTableGenerator() throws Exception {
-		createTestEntityWithIdMapping();
-		addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
-		
-		PersistentAttribute persistentAttribute = getJavaPersistentType().attributes().next();
-		IdMapping idMapping = (IdMapping) persistentAttribute.getSpecifiedMapping();
-		
-		assertNull(idMapping.getTableGenerator());
-		
-		idMapping.addTableGenerator();
-		
-		JavaResourcePersistentType typeResource = getJpaProject().getJavaResourcePersistentType(FULLY_QUALIFIED_TYPE_NAME);
-		JavaResourcePersistentAttribute attributeResource = typeResource.persistableAttributes().next();
-	
-		assertNotNull(attributeResource.getSupportingAnnotation(JPA.TABLE_GENERATOR));
-		assertNotNull(idMapping.getTableGenerator());
-		
-		//try adding another table generator, should get an IllegalStateException
-		try {
-			idMapping.addTableGenerator();		
-		} catch (IllegalStateException e) {
-			return;
-		}
-		fail("IllegalStateException not thrown");
-	}
-	
-	public void testRemoveTableGenerator() throws Exception {
-		createTestEntityWithIdMapping();
-		addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
-		
-		PersistentAttribute persistentAttribute = getJavaPersistentType().attributes().next();
-		IdMapping idMapping = (IdMapping) persistentAttribute.getSpecifiedMapping();
-
-		JavaResourcePersistentType typeResource = getJpaProject().getJavaResourcePersistentType(FULLY_QUALIFIED_TYPE_NAME);
-		JavaResourcePersistentAttribute attributeResource = typeResource.persistableAttributes().next();
-		attributeResource.addSupportingAnnotation(JPA.TABLE_GENERATOR);
-		
-		
-		idMapping.removeTableGenerator();
-		
-		assertNull(idMapping.getTableGenerator());
-		assertNull(attributeResource.getSupportingAnnotation(JPA.TABLE_GENERATOR));
-		
-		//try removing the table generator again, should get an IllegalStateException
-		try {
-			idMapping.removeTableGenerator();		
-		} catch (IllegalStateException e) {
-			return;
-		}
-		fail("IllegalStateException not thrown");
-	}
-	
-	public void testGetGeneratedValue() throws Exception {
-		createTestEntityWithIdMapping();
-		addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
-		
-		PersistentAttribute persistentAttribute = getJavaPersistentType().attributes().next();
-		IdMapping idMapping = (IdMapping) persistentAttribute.getSpecifiedMapping();
-		
-		assertNull(idMapping.getGeneratedValue());
-		
-		JavaResourcePersistentType typeResource = getJpaProject().getJavaResourcePersistentType(FULLY_QUALIFIED_TYPE_NAME);
-		JavaResourcePersistentAttribute attributeResource = typeResource.persistableAttributes().next();
-		attributeResource.addSupportingAnnotation(JPA.GENERATED_VALUE);
-		
-		assertNotNull(idMapping.getGeneratedValue());		
-		assertEquals(1, attributeResource.supportingAnnotationsSize());
-	}
-	
-	public void testGetGeneratedValue2() throws Exception {
-		addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
-		createTestEntityWithIdMappingGeneratedValue();
-		
-		PersistentAttribute persistentAttribute = getJavaPersistentType().attributes().next();
-		IdMapping idMapping = (IdMapping) persistentAttribute.getSpecifiedMapping();
-		
-		JavaResourcePersistentType typeResource = getJpaProject().getJavaResourcePersistentType(FULLY_QUALIFIED_TYPE_NAME);
-		JavaResourcePersistentAttribute attributeResource = typeResource.persistableAttributes().next();
-
-		assertNotNull(idMapping.getGeneratedValue());
-		assertEquals(1, attributeResource.supportingAnnotationsSize());
-	}
-	
-	public void testAddGeneratedValue() throws Exception {
-		createTestEntityWithIdMapping();
-		addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
-		
-		PersistentAttribute persistentAttribute = getJavaPersistentType().attributes().next();
-		IdMapping idMapping = (IdMapping) persistentAttribute.getSpecifiedMapping();
-		
-		assertNull(idMapping.getGeneratedValue());
-		
-		idMapping.addGeneratedValue();
-		
-		JavaResourcePersistentType typeResource = getJpaProject().getJavaResourcePersistentType(FULLY_QUALIFIED_TYPE_NAME);
-		JavaResourcePersistentAttribute attributeResource = typeResource.persistableAttributes().next();
-	
-		assertNotNull(attributeResource.getSupportingAnnotation(JPA.GENERATED_VALUE));
-		assertNotNull(idMapping.getGeneratedValue());
-		
-		//try adding another generated value, should get an IllegalStateException
-		try {
-			idMapping.addGeneratedValue();		
-		} catch (IllegalStateException e) {
-			return;
-		}
-		fail("IllegalStateException not thrown");
-	}
-	
-	public void testRemoveGeneratedValue() throws Exception {
-		createTestEntityWithIdMapping();
-		addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
-		
-		PersistentAttribute persistentAttribute = getJavaPersistentType().attributes().next();
-		IdMapping idMapping = (IdMapping) persistentAttribute.getSpecifiedMapping();
-
-		JavaResourcePersistentType typeResource = getJpaProject().getJavaResourcePersistentType(FULLY_QUALIFIED_TYPE_NAME);
-		JavaResourcePersistentAttribute attributeResource = typeResource.persistableAttributes().next();
-		attributeResource.addSupportingAnnotation(JPA.GENERATED_VALUE);
-		
-		
-		idMapping.removeGeneratedValue();
-		
-		assertNull(idMapping.getGeneratedValue());
-		assertNull(attributeResource.getSupportingAnnotation(JPA.GENERATED_VALUE));
-		
-		//try removing the generatedValue again, should get an IllegalStateException
-		try {
-			idMapping.removeGeneratedValue();		
-		} catch (IllegalStateException e) {
-			return;
-		}
-		fail("IllegalStateException not thrown");
-	}
-}
diff --git a/jpa/tests/org.eclipse.jpt.core.tests/src/org/eclipse/jpt/core/tests/internal/context/java/JavaJoinColumnTests.java b/jpa/tests/org.eclipse.jpt.core.tests/src/org/eclipse/jpt/core/tests/internal/context/java/JavaJoinColumnTests.java
deleted file mode 100644
index 9e74ee7..0000000
--- a/jpa/tests/org.eclipse.jpt.core.tests/src/org/eclipse/jpt/core/tests/internal/context/java/JavaJoinColumnTests.java
+++ /dev/null
@@ -1,533 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.core.tests.internal.context.java;
-
-import java.util.Iterator;
-import org.eclipse.jdt.core.ICompilationUnit;
-import org.eclipse.jpt.core.context.java.JavaJoinColumn;
-import org.eclipse.jpt.core.context.java.JavaJoinColumnJoiningStrategy;
-import org.eclipse.jpt.core.context.java.JavaOneToOneMapping;
-import org.eclipse.jpt.core.resource.java.JPA;
-import org.eclipse.jpt.core.resource.java.JavaResourcePersistentAttribute;
-import org.eclipse.jpt.core.resource.java.JavaResourcePersistentType;
-import org.eclipse.jpt.core.resource.java.JoinColumnAnnotation;
-import org.eclipse.jpt.core.tests.internal.context.ContextModelTestCase;
-import org.eclipse.jpt.core.tests.internal.projects.TestJavaProject.SourceWriter;
-import org.eclipse.jpt.utility.internal.iterators.ArrayIterator;
-
-public class JavaJoinColumnTests extends ContextModelTestCase
-{
-	public JavaJoinColumnTests(String name) {
-		super(name);
-	}
-
-	private ICompilationUnit createTestEntityWithOneToOne() throws Exception {
-		return this.createTestType(new DefaultAnnotationWriter() {
-			@Override
-			public Iterator<String> imports() {
-				return new ArrayIterator<String>(JPA.ENTITY, JPA.ONE_TO_ONE);
-			}
-			@Override
-			public void appendTypeAnnotationTo(StringBuilder sb) {
-				sb.append("@Entity");
-			}
-			@Override
-			public void appendIdFieldAnnotationTo(StringBuilder sb) {
-				sb.append("@OneToOne").append(CR);
-			}
-		});
-	}
-	
-	private ICompilationUnit createTestEntityWithValidOneToOne() throws Exception {
-		return this.createTestType(new DefaultAnnotationWriter() {
-			@Override
-			public Iterator<String> imports() {
-				return new ArrayIterator<String>(JPA.ENTITY, JPA.ONE_TO_ONE);
-			}
-			@Override
-			public void appendTypeAnnotationTo(StringBuilder sb) {
-				sb.append("@Entity");
-			}
-			@Override
-			public void appendIdFieldAnnotationTo(StringBuilder sb) {
-				sb.append("@OneToOne").append(CR);
-				sb.append("    private Project project;").append(CR);
-			}
-		});
-	}
-
-	private void createTargetEntity() throws Exception {
-		SourceWriter sourceWriter = new SourceWriter() {
-			public void appendSourceTo(StringBuilder sb) {
-				sb.append(CR);
-					sb.append("import ");
-					sb.append(JPA.ENTITY);
-					sb.append(";");
-					sb.append(CR);
-					sb.append("import ");
-					sb.append(JPA.ID);
-					sb.append(";");
-					sb.append(CR);
-				sb.append(CR);
-				sb.append("@Entity");
-				sb.append(CR);
-				sb.append("public class Project {").append(CR);
-				sb.append(CR);
-				sb.append("    @Id").append(CR);
-				sb.append("    private int proj_id;").append(CR);
-				sb.append(CR);
-			}
-		};
-		this.javaProject.createCompilationUnit(PACKAGE_NAME, "Project.java", sourceWriter);
-	}
-	
-	public void testUpdateSpecifiedName() throws Exception {
-		createTestEntityWithOneToOne();
-		addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
-
-		JavaOneToOneMapping oneToOneMapping = (JavaOneToOneMapping) getJavaPersistentType().attributes().next().getMapping();
-		JavaJoinColumnJoiningStrategy joinColumns = oneToOneMapping.getRelationshipReference().getJoinColumnJoiningStrategy();
-		
-		JavaResourcePersistentType typeResource = getJpaProject().getJavaResourcePersistentType(FULLY_QUALIFIED_TYPE_NAME);
-		JavaResourcePersistentAttribute attributeResource = typeResource.persistableAttributes().next();
-	
-		JoinColumnAnnotation javaJoinColumn = (JoinColumnAnnotation) attributeResource.getSupportingAnnotation(JoinColumnAnnotation.ANNOTATION_NAME);
-		
-		assertEquals(0, joinColumns.specifiedJoinColumnsSize());
-		assertNull(javaJoinColumn);
-		
-		
-		//set name in the resource model, verify context model updated
-		javaJoinColumn = (JoinColumnAnnotation) attributeResource.addSupportingAnnotation(JoinColumnAnnotation.ANNOTATION_NAME);
-		javaJoinColumn.setName("FOO");	
-		JavaJoinColumn joinColumn = joinColumns.specifiedJoinColumns().next();
-		assertEquals("FOO", joinColumn.getSpecifiedName());
-		assertEquals("FOO", javaJoinColumn.getName());
-	
-		//set name to null in the resource model, annotation removed, specified join column removed
-		javaJoinColumn.setName(null);
-		assertEquals(0, joinColumns.specifiedJoinColumnsSize());
-		assertNull(attributeResource.getSupportingAnnotation(JoinColumnAnnotation.ANNOTATION_NAME));
-	}
-	
-	public void testModifySpecifiedName() throws Exception {
-		createTestEntityWithOneToOne();
-		addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
-	
-		JavaOneToOneMapping oneToOneMapping = (JavaOneToOneMapping) getJavaPersistentType().attributes().next().getMapping();
-		JavaJoinColumnJoiningStrategy joinColumns = oneToOneMapping.getRelationshipReference().getJoinColumnJoiningStrategy();
-		
-		JavaResourcePersistentType typeResource = getJpaProject().getJavaResourcePersistentType(FULLY_QUALIFIED_TYPE_NAME);
-		JavaResourcePersistentAttribute attributeResource = typeResource.persistableAttributes().next();
-
-		
-		JavaJoinColumn joinColumn = joinColumns.addSpecifiedJoinColumn(0);
-		//set name in the context model, verify resource model modified
-		joinColumn.setSpecifiedName("foo");
-		JoinColumnAnnotation javaJoinColumn = (JoinColumnAnnotation) attributeResource.getSupportingAnnotation(JoinColumnAnnotation.ANNOTATION_NAME);
-		assertEquals("foo", joinColumn.getSpecifiedName());
-		assertEquals("foo", javaJoinColumn.getName());
-		
-		//set name to null in the context model
-		joinColumn.setSpecifiedName(null);
-		assertNull(joinColumn.getSpecifiedName());
-		assertNull(attributeResource.getSupportingAnnotation(JoinColumnAnnotation.ANNOTATION_NAME));
-	}
-	
-	// <attribute name>_<referenced column name>
-	//     or
-	// <target entity name>_<referenced column name>	
-	public void testDefaultName() throws Exception {
-		createTestEntityWithValidOneToOne();
-		createTargetEntity();
-		addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
-		
-		
-		JavaOneToOneMapping oneToOneMapping = (JavaOneToOneMapping) getJavaPersistentType().attributes().next().getMapping();
-		JavaJoinColumnJoiningStrategy joinColumns = oneToOneMapping.getRelationshipReference().getJoinColumnJoiningStrategy();
-		JavaJoinColumn defaultJavaJoinColumn = joinColumns.getDefaultJoinColumn();
-		
-//		assertNull(defaultJavaJoinColumn.getDefaultName());
-//TODO test default join column name
-//		//add target entity to the persistence unit, now join table name is [table name]_[target table name]
-//		addXmlClassRef(PACKAGE_NAME + ".Project");
-//		assertEquals(TYPE_NAME + "_Project", joinTable.getDefaultName());
-//		
-//		JavaPersistentTypeResource typeResource = jpaProject().javaPersistentTypeResource(FULLY_QUALIFIED_TYPE_NAME);
-//		JavaPersistentAttributeResource attributeResource = typeResource.attributes().next();
-//		assertNull(attributeResource.annotation(JoinTable.ANNOTATION_NAME));
-//	
-//		//target entity does not resolve, default name is null
-//		manyToManyMapping.setSpecifiedTargetEntity("Foo");
-//		assertNull(joinTable.getDefaultName());
-//
-//		//default target entity does resolve, so default name is again [table name]_[target table name]
-//		manyToManyMapping.setSpecifiedTargetEntity(null);
-//		assertEquals(TYPE_NAME + "_Project", joinTable.getDefaultName());
-//
-//		//add the join table annotation, verify default join table name is the same
-//		attributeResource.addAnnotation(JoinTable.ANNOTATION_NAME);
-//		assertEquals(TYPE_NAME + "_Project", joinTable.getDefaultName());
-//		assertNotNull(attributeResource.annotation(JoinTable.ANNOTATION_NAME));
-//		
-//		//set a table on the target entity, very default join table name updates
-//		manyToManyMapping.getResolvedTargetEntity().getTable().setSpecifiedName("FOO");
-//		assertEquals(TYPE_NAME + "_FOO", joinTable.getDefaultName());
-//		
-//		//set a table on the owning entity, very default join table name updates
-//		javaEntity().getTable().setSpecifiedName("BAR");
-//		assertEquals("BAR_FOO", joinTable.getDefaultName());
-	}
-	
-	public void testUpdateSpecifiedReferencedColumnName() throws Exception {
-		createTestEntityWithOneToOne();
-		addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
-
-		JavaOneToOneMapping oneToOneMapping = (JavaOneToOneMapping) getJavaPersistentType().attributes().next().getMapping();
-		JavaJoinColumnJoiningStrategy joinColumns = oneToOneMapping.getRelationshipReference().getJoinColumnJoiningStrategy();
-		
-		JavaResourcePersistentType typeResource = getJpaProject().getJavaResourcePersistentType(FULLY_QUALIFIED_TYPE_NAME);
-		JavaResourcePersistentAttribute attributeResource = typeResource.persistableAttributes().next();
-	
-		JoinColumnAnnotation javaJoinColumn = (JoinColumnAnnotation) attributeResource.getSupportingAnnotation(JoinColumnAnnotation.ANNOTATION_NAME);
-		
-		assertEquals(0, joinColumns.specifiedJoinColumnsSize());
-		assertNull(javaJoinColumn);
-		
-		
-		//set referenced column name in the resource model, verify context model updated
-		javaJoinColumn = (JoinColumnAnnotation) attributeResource.addSupportingAnnotation(JoinColumnAnnotation.ANNOTATION_NAME);
-		javaJoinColumn.setName("FOO");	
-		javaJoinColumn.setReferencedColumnName("BAR");
-		JavaJoinColumn joinColumn = joinColumns.specifiedJoinColumns().next();
-		assertEquals("BAR", joinColumn.getSpecifiedReferencedColumnName());
-		assertEquals("BAR", javaJoinColumn.getReferencedColumnName());
-	
-		//set referenced column name to null in the resource model, 
-		javaJoinColumn.setReferencedColumnName(null);
-		assertNull(joinColumn.getSpecifiedReferencedColumnName());
-		assertNull("BAR", javaJoinColumn.getReferencedColumnName());
-	}
-	
-	public void testModifySpecifiedReferencedColumnName() throws Exception {
-		createTestEntityWithOneToOne();
-		addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
-	
-		JavaOneToOneMapping oneToOneMapping = (JavaOneToOneMapping) getJavaPersistentType().attributes().next().getMapping();
-		JavaJoinColumnJoiningStrategy joinColumns = oneToOneMapping.getRelationshipReference().getJoinColumnJoiningStrategy();
-		
-		JavaResourcePersistentType typeResource = getJpaProject().getJavaResourcePersistentType(FULLY_QUALIFIED_TYPE_NAME);
-		JavaResourcePersistentAttribute attributeResource = typeResource.persistableAttributes().next();
-		
-		JavaJoinColumn joinColumn = joinColumns.addSpecifiedJoinColumn(0);
-		//set referenced column name in the context model, verify resource model modified
-		joinColumn.setSpecifiedName("foo");
-		joinColumn.setSpecifiedReferencedColumnName("BAR");
-		
-		JoinColumnAnnotation javaJoinColumn = (JoinColumnAnnotation) attributeResource.getSupportingAnnotation(JoinColumnAnnotation.ANNOTATION_NAME);
-		assertEquals("BAR", joinColumn.getSpecifiedReferencedColumnName());
-		assertEquals("BAR", javaJoinColumn.getReferencedColumnName());
-		
-		//set referenced column name to null in the context model
-		joinColumn.setSpecifiedReferencedColumnName(null);
-		assertNull(joinColumn.getSpecifiedReferencedColumnName());
-		assertNull(javaJoinColumn.getReferencedColumnName());
-	}
-	
-	public void testDefaultReferencedColumnName() throws Exception {
-	//TODO test default join column referenced column name
-		
-	}
-	
-	public void testUpdateTable() throws Exception {
-		createTestEntityWithOneToOne();
-		addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
-
-		JavaOneToOneMapping oneToOneMapping = (JavaOneToOneMapping) getJavaPersistentType().attributes().next().getMapping();
-		JavaJoinColumnJoiningStrategy joinColumns = oneToOneMapping.getRelationshipReference().getJoinColumnJoiningStrategy();
-		
-		JavaResourcePersistentType typeResource = getJpaProject().getJavaResourcePersistentType(FULLY_QUALIFIED_TYPE_NAME);
-		JavaResourcePersistentAttribute attributeResource = typeResource.persistableAttributes().next();
-	
-		JoinColumnAnnotation javaJoinColumn = (JoinColumnAnnotation) attributeResource.getSupportingAnnotation(JoinColumnAnnotation.ANNOTATION_NAME);
-		
-		assertEquals(0, joinColumns.specifiedJoinColumnsSize());
-		assertNull(javaJoinColumn);
-		
-		
-		//set table in the resource model, verify context model updated
-		javaJoinColumn = (JoinColumnAnnotation) attributeResource.addSupportingAnnotation(JoinColumnAnnotation.ANNOTATION_NAME);
-		javaJoinColumn.setName("FOO");	
-		javaJoinColumn.setTable("BAR");
-		JavaJoinColumn joinColumn = joinColumns.specifiedJoinColumns().next();
-		assertEquals("BAR", joinColumn.getSpecifiedTable());
-		assertEquals("BAR", javaJoinColumn.getTable());
-	
-		//set table to null in the resource model, 
-		javaJoinColumn.setTable(null);
-		assertNull(joinColumn.getSpecifiedTable());
-		assertNull("BAR", javaJoinColumn.getTable());
-	}
-	
-	public void testModifyTable() throws Exception {
-		createTestEntityWithOneToOne();
-		addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
-	
-		JavaOneToOneMapping oneToOneMapping = (JavaOneToOneMapping) getJavaPersistentType().attributes().next().getMapping();
-		JavaJoinColumnJoiningStrategy joinColumns = oneToOneMapping.getRelationshipReference().getJoinColumnJoiningStrategy();
-		
-		JavaResourcePersistentType typeResource = getJpaProject().getJavaResourcePersistentType(FULLY_QUALIFIED_TYPE_NAME);
-		JavaResourcePersistentAttribute attributeResource = typeResource.persistableAttributes().next();
-
-		
-		JavaJoinColumn joinColumn = joinColumns.addSpecifiedJoinColumn(0);
-		//set table in the context model, verify resource model modified
-		joinColumn.setSpecifiedName("foo");
-		joinColumn.setSpecifiedTable("BAR");
-		
-		JoinColumnAnnotation javaJoinColumn = (JoinColumnAnnotation) attributeResource.getSupportingAnnotation(JoinColumnAnnotation.ANNOTATION_NAME);
-		assertEquals("BAR", joinColumn.getSpecifiedTable());
-		assertEquals("BAR", javaJoinColumn.getTable());
-		
-		//set table to null in the context model
-		joinColumn.setSpecifiedTable(null);
-		assertNull(joinColumn.getSpecifiedTable());
-		assertNull(javaJoinColumn.getTable());
-	}
-	
-	public void testDefaultTable() throws Exception {
-	//TODO test default join column table
-		
-	}
-
-	public void testUpdateUnique() throws Exception {
-		createTestEntityWithOneToOne();
-		addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
-
-		JavaOneToOneMapping oneToOneMapping = (JavaOneToOneMapping) getJavaPersistentType().attributes().next().getMapping();
-		JavaJoinColumnJoiningStrategy joinColumns = oneToOneMapping.getRelationshipReference().getJoinColumnJoiningStrategy();
-		
-		JavaResourcePersistentType typeResource = getJpaProject().getJavaResourcePersistentType(FULLY_QUALIFIED_TYPE_NAME);
-		JavaResourcePersistentAttribute attributeResource = typeResource.persistableAttributes().next();
-	
-		JoinColumnAnnotation javaJoinColumn = (JoinColumnAnnotation) attributeResource.getSupportingAnnotation(JoinColumnAnnotation.ANNOTATION_NAME);
-		
-		assertEquals(0, joinColumns.specifiedJoinColumnsSize());
-		assertNull(javaJoinColumn);
-		
-		
-		//set unique in the resource model, verify context model updated
-		javaJoinColumn = (JoinColumnAnnotation) attributeResource.addSupportingAnnotation(JoinColumnAnnotation.ANNOTATION_NAME);
-		javaJoinColumn.setName("FOO");	
-		javaJoinColumn.setUnique(Boolean.TRUE);
-		JavaJoinColumn joinColumn = joinColumns.specifiedJoinColumns().next();
-		assertEquals(Boolean.TRUE, joinColumn.getSpecifiedUnique());
-		assertEquals(Boolean.TRUE, javaJoinColumn.getUnique());
-	
-		//set unique to null in the resource model, 
-		javaJoinColumn.setUnique(null);
-		assertNull(joinColumn.getSpecifiedUnique());
-		assertNull(javaJoinColumn.getUnique());
-	}
-	
-	public void testModifyUnique() throws Exception {
-		createTestEntityWithOneToOne();
-		addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
-	
-		JavaOneToOneMapping oneToOneMapping = (JavaOneToOneMapping) getJavaPersistentType().attributes().next().getMapping();
-		JavaJoinColumnJoiningStrategy joinColumns = oneToOneMapping.getRelationshipReference().getJoinColumnJoiningStrategy();
-		
-		JavaResourcePersistentType typeResource = getJpaProject().getJavaResourcePersistentType(FULLY_QUALIFIED_TYPE_NAME);
-		JavaResourcePersistentAttribute attributeResource = typeResource.persistableAttributes().next();
-
-		
-		JavaJoinColumn joinColumn = joinColumns.addSpecifiedJoinColumn(0);
-		//set unique in the context model, verify resource model modified
-		joinColumn.setSpecifiedName("foo");
-		joinColumn.setSpecifiedUnique(Boolean.TRUE);
-		
-		JoinColumnAnnotation javaJoinColumn = (JoinColumnAnnotation) attributeResource.getSupportingAnnotation(JoinColumnAnnotation.ANNOTATION_NAME);
-		assertEquals(Boolean.TRUE, joinColumn.getSpecifiedUnique());
-		assertEquals(Boolean.TRUE, javaJoinColumn.getUnique());
-		
-		//set unique to null in the context model
-		joinColumn.setSpecifiedUnique(null);
-		assertNull(joinColumn.getSpecifiedUnique());
-		assertNull(javaJoinColumn.getUnique());
-	}
-	
-	public void testUpdateNullable() throws Exception {
-		createTestEntityWithOneToOne();
-		addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
-
-		JavaOneToOneMapping oneToOneMapping = (JavaOneToOneMapping) getJavaPersistentType().attributes().next().getMapping();
-		JavaJoinColumnJoiningStrategy joinColumns = oneToOneMapping.getRelationshipReference().getJoinColumnJoiningStrategy();
-		
-		JavaResourcePersistentType typeResource = getJpaProject().getJavaResourcePersistentType(FULLY_QUALIFIED_TYPE_NAME);
-		JavaResourcePersistentAttribute attributeResource = typeResource.persistableAttributes().next();
-	
-		JoinColumnAnnotation javaJoinColumn = (JoinColumnAnnotation) attributeResource.getSupportingAnnotation(JoinColumnAnnotation.ANNOTATION_NAME);
-		
-		assertEquals(0, joinColumns.specifiedJoinColumnsSize());
-		assertNull(javaJoinColumn);
-		
-		
-		//set nullable in the resource model, verify context model updated
-		javaJoinColumn = (JoinColumnAnnotation) attributeResource.addSupportingAnnotation(JoinColumnAnnotation.ANNOTATION_NAME);
-		javaJoinColumn.setName("FOO");	
-		javaJoinColumn.setNullable(Boolean.FALSE);
-		JavaJoinColumn joinColumn = joinColumns.specifiedJoinColumns().next();
-		assertEquals(Boolean.FALSE, joinColumn.getSpecifiedNullable());
-		assertEquals(Boolean.FALSE, javaJoinColumn.getNullable());
-	
-		//set nullable to null in the resource model, 
-		javaJoinColumn.setNullable(null);
-		assertNull(joinColumn.getSpecifiedNullable());
-		assertNull(javaJoinColumn.getNullable());
-	}
-	
-	public void testModifyNullable() throws Exception {
-		createTestEntityWithOneToOne();
-		addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
-	
-		JavaOneToOneMapping oneToOneMapping = (JavaOneToOneMapping) getJavaPersistentType().attributes().next().getMapping();
-		JavaJoinColumnJoiningStrategy joinColumns = oneToOneMapping.getRelationshipReference().getJoinColumnJoiningStrategy();
-		
-		JavaResourcePersistentType typeResource = getJpaProject().getJavaResourcePersistentType(FULLY_QUALIFIED_TYPE_NAME);
-		JavaResourcePersistentAttribute attributeResource = typeResource.persistableAttributes().next();
-
-		
-		JavaJoinColumn joinColumn = joinColumns.addSpecifiedJoinColumn(0);
-		//set nullable in the context model, verify resource model modified
-		joinColumn.setSpecifiedName("foo");
-		joinColumn.setSpecifiedNullable(Boolean.FALSE);
-		
-		JoinColumnAnnotation javaJoinColumn = (JoinColumnAnnotation) attributeResource.getSupportingAnnotation(JoinColumnAnnotation.ANNOTATION_NAME);
-		assertEquals(Boolean.FALSE, joinColumn.getSpecifiedNullable());
-		assertEquals(Boolean.FALSE, javaJoinColumn.getNullable());
-		
-		//set nullable to null in the context model
-		joinColumn.setSpecifiedNullable(null);
-		assertNull(joinColumn.getSpecifiedNullable());
-		assertNull(javaJoinColumn.getNullable());
-	}
-
-	public void testUpdateInsertable() throws Exception {
-		createTestEntityWithOneToOne();
-		addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
-
-		JavaOneToOneMapping oneToOneMapping = (JavaOneToOneMapping) getJavaPersistentType().attributes().next().getMapping();
-		JavaJoinColumnJoiningStrategy joinColumns = oneToOneMapping.getRelationshipReference().getJoinColumnJoiningStrategy();
-		
-		JavaResourcePersistentType typeResource = getJpaProject().getJavaResourcePersistentType(FULLY_QUALIFIED_TYPE_NAME);
-		JavaResourcePersistentAttribute attributeResource = typeResource.persistableAttributes().next();
-	
-		JoinColumnAnnotation javaJoinColumn = (JoinColumnAnnotation) attributeResource.getSupportingAnnotation(JoinColumnAnnotation.ANNOTATION_NAME);
-		
-		assertEquals(0, joinColumns.specifiedJoinColumnsSize());
-		assertNull(javaJoinColumn);
-		
-		
-		//set insertable in the resource model, verify context model updated
-		javaJoinColumn = (JoinColumnAnnotation) attributeResource.addSupportingAnnotation(JoinColumnAnnotation.ANNOTATION_NAME);
-		javaJoinColumn.setName("FOO");	
-		javaJoinColumn.setInsertable(Boolean.FALSE);
-		JavaJoinColumn joinColumn = joinColumns.specifiedJoinColumns().next();
-		assertEquals(Boolean.FALSE, joinColumn.getSpecifiedInsertable());
-		assertEquals(Boolean.FALSE, javaJoinColumn.getInsertable());
-	
-		//set insertable to null in the resource model, 
-		javaJoinColumn.setInsertable(null);
-		assertNull(joinColumn.getSpecifiedInsertable());
-		assertNull(javaJoinColumn.getInsertable());
-	}
-	
-	public void testModifyInsertable() throws Exception {
-		createTestEntityWithOneToOne();
-		addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
-	
-		JavaOneToOneMapping oneToOneMapping = (JavaOneToOneMapping) getJavaPersistentType().attributes().next().getMapping();
-		JavaJoinColumnJoiningStrategy joinColumns = oneToOneMapping.getRelationshipReference().getJoinColumnJoiningStrategy();
-		
-		JavaResourcePersistentType typeResource = getJpaProject().getJavaResourcePersistentType(FULLY_QUALIFIED_TYPE_NAME);
-		JavaResourcePersistentAttribute attributeResource = typeResource.persistableAttributes().next();
-
-		
-		JavaJoinColumn joinColumn = joinColumns.addSpecifiedJoinColumn(0);
-		//set insertable in the context model, verify resource model modified
-		joinColumn.setSpecifiedName("foo");
-		joinColumn.setSpecifiedInsertable(Boolean.FALSE);
-		
-		JoinColumnAnnotation javaJoinColumn = (JoinColumnAnnotation) attributeResource.getSupportingAnnotation(JoinColumnAnnotation.ANNOTATION_NAME);
-		assertEquals(Boolean.FALSE, joinColumn.getSpecifiedInsertable());
-		assertEquals(Boolean.FALSE, javaJoinColumn.getInsertable());
-		
-		//set insertable to null in the context model
-		joinColumn.setSpecifiedInsertable(null);
-		assertNull(joinColumn.getSpecifiedInsertable());
-		assertNull(javaJoinColumn.getInsertable());
-	}
-
-	public void testUpdateUpdatable() throws Exception {
-		createTestEntityWithOneToOne();
-		addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
-
-		JavaOneToOneMapping oneToOneMapping = (JavaOneToOneMapping) getJavaPersistentType().attributes().next().getMapping();
-		JavaJoinColumnJoiningStrategy joinColumns = oneToOneMapping.getRelationshipReference().getJoinColumnJoiningStrategy();
-		
-		JavaResourcePersistentType typeResource = getJpaProject().getJavaResourcePersistentType(FULLY_QUALIFIED_TYPE_NAME);
-		JavaResourcePersistentAttribute attributeResource = typeResource.persistableAttributes().next();
-	
-		JoinColumnAnnotation javaJoinColumn = (JoinColumnAnnotation) attributeResource.getSupportingAnnotation(JoinColumnAnnotation.ANNOTATION_NAME);
-		
-		assertEquals(0, joinColumns.specifiedJoinColumnsSize());
-		assertNull(javaJoinColumn);
-		
-		
-		//set updatable in the resource model, verify context model updated
-		javaJoinColumn = (JoinColumnAnnotation) attributeResource.addSupportingAnnotation(JoinColumnAnnotation.ANNOTATION_NAME);
-		javaJoinColumn.setName("FOO");	
-		javaJoinColumn.setUpdatable(Boolean.FALSE);
-		JavaJoinColumn joinColumn = joinColumns.specifiedJoinColumns().next();
-		assertEquals(Boolean.FALSE, joinColumn.getSpecifiedUpdatable());
-		assertEquals(Boolean.FALSE, javaJoinColumn.getUpdatable());
-	
-		//set updatable to null in the resource model, 
-		javaJoinColumn.setUpdatable(null);
-		assertNull(joinColumn.getSpecifiedUpdatable());
-		assertNull(javaJoinColumn.getUpdatable());
-	}
-	
-	public void testModifyUpdatable() throws Exception {
-		createTestEntityWithOneToOne();
-		addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
-	
-		JavaOneToOneMapping oneToOneMapping = (JavaOneToOneMapping) getJavaPersistentType().attributes().next().getMapping();
-		JavaJoinColumnJoiningStrategy joinColumns = oneToOneMapping.getRelationshipReference().getJoinColumnJoiningStrategy();
-		
-		JavaResourcePersistentType typeResource = getJpaProject().getJavaResourcePersistentType(FULLY_QUALIFIED_TYPE_NAME);
-		JavaResourcePersistentAttribute attributeResource = typeResource.persistableAttributes().next();
-
-		
-		JavaJoinColumn joinColumn = joinColumns.addSpecifiedJoinColumn(0);
-		//set updatable in the context model, verify resource model modified
-		joinColumn.setSpecifiedName("foo");
-		joinColumn.setSpecifiedUpdatable(Boolean.FALSE);
-		
-		JoinColumnAnnotation javaJoinColumn = (JoinColumnAnnotation) attributeResource.getSupportingAnnotation(JoinColumnAnnotation.ANNOTATION_NAME);
-		assertEquals(Boolean.FALSE, joinColumn.getSpecifiedUpdatable());
-		assertEquals(Boolean.FALSE, javaJoinColumn.getUpdatable());
-		
-		//set updatable to null in the context model
-		joinColumn.setSpecifiedUpdatable(null);
-		assertNull(joinColumn.getSpecifiedUpdatable());
-		assertNull(javaJoinColumn.getUpdatable());
-	}
-}
diff --git a/jpa/tests/org.eclipse.jpt.core.tests/src/org/eclipse/jpt/core/tests/internal/context/java/JavaJoinTableTests.java b/jpa/tests/org.eclipse.jpt.core.tests/src/org/eclipse/jpt/core/tests/internal/context/java/JavaJoinTableTests.java
deleted file mode 100644
index 45f636e..0000000
--- a/jpa/tests/org.eclipse.jpt.core.tests/src/org/eclipse/jpt/core/tests/internal/context/java/JavaJoinTableTests.java
+++ /dev/null
@@ -1,970 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2008 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.core.tests.internal.context.java;
-
-import java.util.Iterator;
-import java.util.ListIterator;
-import org.eclipse.jdt.core.ICompilationUnit;
-import org.eclipse.jpt.core.context.JoinColumn;
-import org.eclipse.jpt.core.context.JoinTable;
-import org.eclipse.jpt.core.context.UniqueConstraint;
-import org.eclipse.jpt.core.context.java.JavaManyToManyMapping;
-import org.eclipse.jpt.core.context.java.JavaUniqueConstraint;
-import org.eclipse.jpt.core.resource.java.JPA;
-import org.eclipse.jpt.core.resource.java.JavaResourcePersistentAttribute;
-import org.eclipse.jpt.core.resource.java.JavaResourcePersistentType;
-import org.eclipse.jpt.core.resource.java.JoinTableAnnotation;
-import org.eclipse.jpt.core.resource.java.UniqueConstraintAnnotation;
-import org.eclipse.jpt.core.tests.internal.context.ContextModelTestCase;
-import org.eclipse.jpt.core.tests.internal.projects.TestJavaProject.SourceWriter;
-import org.eclipse.jpt.utility.internal.iterators.ArrayIterator;
-
-public class JavaJoinTableTests extends ContextModelTestCase
-{
-	public JavaJoinTableTests(String name) {
-		super(name);
-	}
-
-	private ICompilationUnit createTestEntityWithManyToMany() throws Exception {		
-		return this.createTestType(new DefaultAnnotationWriter() {
-			@Override
-			public Iterator<String> imports() {
-				return new ArrayIterator<String>(JPA.ENTITY, JPA.MANY_TO_MANY);
-			}
-			@Override
-			public void appendTypeAnnotationTo(StringBuilder sb) {
-				sb.append("@Entity");
-			}
-			@Override
-			public void appendIdFieldAnnotationTo(StringBuilder sb) {
-				sb.append("@ManyToMany").append(CR);
-			}
-		});
-	}
-	
-	private ICompilationUnit createTestEntityWithValidManyToMany() throws Exception {
-		return this.createTestType(new DefaultAnnotationWriter() {
-			@Override
-			public Iterator<String> imports() {
-				return new ArrayIterator<String>(JPA.ENTITY, JPA.MANY_TO_MANY, "java.util.Collection");
-			}
-			@Override
-			public void appendTypeAnnotationTo(StringBuilder sb) {
-				sb.append("@Entity");
-			}
-			@Override
-			public void appendIdFieldAnnotationTo(StringBuilder sb) {
-				sb.append("@ManyToMany").append(CR);
-				sb.append("    private Collection<Project> projects;").append(CR);
-			}
-		});
-	}
-
-	private void createTargetEntity() throws Exception {
-		SourceWriter sourceWriter = new SourceWriter() {
-			public void appendSourceTo(StringBuilder sb) {
-				sb.append(CR);
-					sb.append("import ");
-					sb.append(JPA.ENTITY);
-					sb.append(";");
-					sb.append(CR);
-					sb.append("import ");
-					sb.append(JPA.ID);
-					sb.append(";");
-					sb.append(CR);
-				sb.append(CR);
-				sb.append("@Entity");
-				sb.append(CR);
-				sb.append("public class Project {").append(CR);
-				sb.append(CR);
-				sb.append("    @Id").append(CR);
-				sb.append("    private int proj_id;").append(CR);
-				sb.append(CR);
-			}
-		};
-		this.javaProject.createCompilationUnit(PACKAGE_NAME, "Project.java", sourceWriter);
-	}
-	public void testUpdateSpecifiedName() throws Exception {
-		createTestEntityWithManyToMany();
-		addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
-
-		JavaManyToManyMapping manyToManyMapping = (JavaManyToManyMapping) getJavaPersistentType().attributes().next().getMapping();
-		JoinTable joinTable = manyToManyMapping.getRelationshipReference().getJoinTableJoiningStrategy().getJoinTable();
-		
-		JavaResourcePersistentType typeResource = getJpaProject().getJavaResourcePersistentType(FULLY_QUALIFIED_TYPE_NAME);
-		JavaResourcePersistentAttribute attributeResource = typeResource.persistableAttributes().next();
-	
-		JoinTableAnnotation javaJoinTable = (JoinTableAnnotation) attributeResource.getSupportingAnnotation(JoinTableAnnotation.ANNOTATION_NAME);
-		
-		assertNull(joinTable.getSpecifiedName());
-		assertNull(javaJoinTable);
-		
-		
-		//set name in the resource model, verify context model updated
-		attributeResource.addSupportingAnnotation(JoinTableAnnotation.ANNOTATION_NAME);
-		javaJoinTable = (JoinTableAnnotation) attributeResource.getSupportingAnnotation(JoinTableAnnotation.ANNOTATION_NAME);
-		javaJoinTable.setName("FOO");
-		assertEquals("FOO", joinTable.getSpecifiedName());
-		assertEquals("FOO", javaJoinTable.getName());
-	
-		//set name to null in the resource model
-		javaJoinTable.setName(null);
-		assertNull(joinTable.getSpecifiedName());
-		assertNull(javaJoinTable.getName());
-		
-		javaJoinTable.setName("FOO");
-		assertEquals("FOO", joinTable.getSpecifiedName());
-		assertEquals("FOO", javaJoinTable.getName());
-
-		attributeResource.removeSupportingAnnotation(JoinTableAnnotation.ANNOTATION_NAME);
-		assertNull(joinTable.getSpecifiedName());
-		assertNull(attributeResource.getSupportingAnnotation(JoinTableAnnotation.ANNOTATION_NAME));
-	}
-	
-	public void testModifySpecifiedName() throws Exception {
-		createTestEntityWithManyToMany();
-		addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
-	
-		JavaManyToManyMapping manyToManyMapping = (JavaManyToManyMapping) getJavaPersistentType().attributes().next().getMapping();
-		JoinTable joinTable = manyToManyMapping.getRelationshipReference().getJoinTableJoiningStrategy().getJoinTable();
-		
-		JavaResourcePersistentType typeResource = getJpaProject().getJavaResourcePersistentType(FULLY_QUALIFIED_TYPE_NAME);
-		JavaResourcePersistentAttribute attributeResource = typeResource.persistableAttributes().next();
-	
-		JoinTableAnnotation javaJoinTable = (JoinTableAnnotation) attributeResource.getSupportingAnnotation(JoinTableAnnotation.ANNOTATION_NAME);
-		
-		assertNull(joinTable.getSpecifiedName());
-		assertNull(javaJoinTable);
-	
-		//set name in the context model, verify resource model modified
-		joinTable.setSpecifiedName("foo");
-		javaJoinTable = (JoinTableAnnotation) attributeResource.getSupportingAnnotation(JoinTableAnnotation.ANNOTATION_NAME);
-		assertEquals("foo", joinTable.getSpecifiedName());
-		assertEquals("foo", javaJoinTable.getName());
-		
-		//set name to null in the context model
-		joinTable.setSpecifiedName(null);
-		assertNull(joinTable.getSpecifiedName());
-		assertNull(attributeResource.getSupportingAnnotation(JoinTableAnnotation.ANNOTATION_NAME));
-	}
-	
-	public void testDefaultName() throws Exception {
-		createTestEntityWithValidManyToMany();
-		addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
-		
-		
-		JavaManyToManyMapping manyToManyMapping = (JavaManyToManyMapping) getJavaPersistentType().attributes().next().getMapping();
-		JoinTable joinTable = manyToManyMapping.getRelationshipReference().getJoinTableJoiningStrategy().getJoinTable();
-		
-		//joinTable default name is null because targetEntity is not in the persistence unit
-		assertNull(joinTable.getDefaultName());
-
-		//add target entity to the persistence unit, now join table name is [table name]_[target table name]
-		createTargetEntity();
-		addXmlClassRef(PACKAGE_NAME + ".Project");
-		assertEquals(TYPE_NAME + "_Project", joinTable.getDefaultName());
-		
-		JavaResourcePersistentType typeResource = getJpaProject().getJavaResourcePersistentType(FULLY_QUALIFIED_TYPE_NAME);
-		JavaResourcePersistentAttribute attributeResource = typeResource.persistableAttributes().next();
-		assertNull(attributeResource.getSupportingAnnotation(JoinTableAnnotation.ANNOTATION_NAME));
-	
-		//target entity does not resolve, default name is null
-		manyToManyMapping.setSpecifiedTargetEntity("Foo");
-		assertNull(joinTable.getDefaultName());
-
-		//default target entity does resolve, so default name is again [table name]_[target table name]
-		manyToManyMapping.setSpecifiedTargetEntity(null);
-		assertEquals(TYPE_NAME + "_Project", joinTable.getDefaultName());
-
-		//add the join table annotation, verify default join table name is the same
-		attributeResource.addSupportingAnnotation(JoinTableAnnotation.ANNOTATION_NAME);
-		assertEquals(TYPE_NAME + "_Project", joinTable.getDefaultName());
-		assertNotNull(attributeResource.getSupportingAnnotation(JoinTableAnnotation.ANNOTATION_NAME));
-		
-		//set a table on the target entity, very default join table name updates
-		manyToManyMapping.getResolvedTargetEntity().getTable().setSpecifiedName("FOO");
-		assertEquals(TYPE_NAME + "_FOO", joinTable.getDefaultName());
-		
-		//set a table on the owning entity, very default join table name updates
-		getJavaEntity().getTable().setSpecifiedName("BAR");
-		assertEquals("BAR_FOO", joinTable.getDefaultName());
-	}
-
-	public void testUpdateSpecifiedSchema() throws Exception {
-		createTestEntityWithManyToMany();
-		addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
-
-		JavaManyToManyMapping manyToManyMapping = (JavaManyToManyMapping) getJavaPersistentType().attributes().next().getMapping();
-		JoinTable joinTable = manyToManyMapping.getRelationshipReference().getJoinTableJoiningStrategy().getJoinTable();
-		
-		JavaResourcePersistentType typeResource = getJpaProject().getJavaResourcePersistentType(FULLY_QUALIFIED_TYPE_NAME);
-		JavaResourcePersistentAttribute attributeResource = typeResource.persistableAttributes().next();
-	
-		JoinTableAnnotation javaJoinTable = (JoinTableAnnotation) attributeResource.getSupportingAnnotation(JoinTableAnnotation.ANNOTATION_NAME);
-		
-		assertNull(joinTable.getSpecifiedSchema());
-		assertNull(javaJoinTable);
-		
-		
-		//set schema in the resource model, verify context model updated
-		attributeResource.addSupportingAnnotation(JoinTableAnnotation.ANNOTATION_NAME);
-		javaJoinTable = (JoinTableAnnotation) attributeResource.getSupportingAnnotation(JoinTableAnnotation.ANNOTATION_NAME);
-		javaJoinTable.setSchema("FOO");
-		assertEquals("FOO", joinTable.getSpecifiedSchema());
-		assertEquals("FOO", javaJoinTable.getSchema());
-	
-		//set schema to null in the resource model
-		javaJoinTable.setSchema(null);
-		assertNull(joinTable.getSpecifiedSchema());
-		assertNull(javaJoinTable.getSchema());
-		
-		javaJoinTable.setSchema("FOO");
-		assertEquals("FOO", joinTable.getSpecifiedSchema());
-		assertEquals("FOO", javaJoinTable.getSchema());
-
-		attributeResource.removeSupportingAnnotation(JoinTableAnnotation.ANNOTATION_NAME);
-		assertNull(joinTable.getSpecifiedSchema());
-		assertNull(attributeResource.getSupportingAnnotation(JoinTableAnnotation.ANNOTATION_NAME));
-	}
-	
-	public void testModifySpecifiedSchema() throws Exception {
-		createTestEntityWithManyToMany();
-		addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
-	
-		JavaManyToManyMapping manyToManyMapping = (JavaManyToManyMapping) getJavaPersistentType().attributes().next().getMapping();
-		JoinTable joinTable = manyToManyMapping.getRelationshipReference().getJoinTableJoiningStrategy().getJoinTable();
-		
-		JavaResourcePersistentType typeResource = getJpaProject().getJavaResourcePersistentType(FULLY_QUALIFIED_TYPE_NAME);
-		JavaResourcePersistentAttribute attributeResource = typeResource.persistableAttributes().next();
-	
-		JoinTableAnnotation javaJoinTable = (JoinTableAnnotation) attributeResource.getSupportingAnnotation(JoinTableAnnotation.ANNOTATION_NAME);
-		
-		assertNull(joinTable.getSpecifiedSchema());
-		assertNull(javaJoinTable);
-	
-		//set schema in the context model, verify resource model modified
-		joinTable.setSpecifiedSchema("foo");
-		javaJoinTable = (JoinTableAnnotation) attributeResource.getSupportingAnnotation(JoinTableAnnotation.ANNOTATION_NAME);
-		assertEquals("foo", joinTable.getSpecifiedSchema());
-		assertEquals("foo", javaJoinTable.getSchema());
-		
-		//set schema to null in the context model
-		joinTable.setSpecifiedSchema(null);
-		assertNull(joinTable.getSpecifiedSchema());
-		assertNull(attributeResource.getSupportingAnnotation(JoinTableAnnotation.ANNOTATION_NAME));
-	}
-
-	public void testUpdateSpecifiedCatalog() throws Exception {
-		createTestEntityWithManyToMany();
-		addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
-
-		JavaManyToManyMapping manyToManyMapping = (JavaManyToManyMapping) getJavaPersistentType().attributes().next().getMapping();
-		JoinTable joinTable = manyToManyMapping.getRelationshipReference().getJoinTableJoiningStrategy().getJoinTable();
-		
-		JavaResourcePersistentType typeResource = getJpaProject().getJavaResourcePersistentType(FULLY_QUALIFIED_TYPE_NAME);
-		JavaResourcePersistentAttribute attributeResource = typeResource.persistableAttributes().next();
-	
-		JoinTableAnnotation javaJoinTable = (JoinTableAnnotation) attributeResource.getSupportingAnnotation(JoinTableAnnotation.ANNOTATION_NAME);
-		
-		assertNull(joinTable.getSpecifiedCatalog());
-		assertNull(javaJoinTable);
-		
-		
-		//set catalog in the resource model, verify context model updated
-		attributeResource.addSupportingAnnotation(JoinTableAnnotation.ANNOTATION_NAME);
-		javaJoinTable = (JoinTableAnnotation) attributeResource.getSupportingAnnotation(JoinTableAnnotation.ANNOTATION_NAME);
-		javaJoinTable.setCatalog("FOO");
-		assertEquals("FOO", joinTable.getSpecifiedCatalog());
-		assertEquals("FOO", javaJoinTable.getCatalog());
-	
-		//set catalog to null in the resource model
-		javaJoinTable.setCatalog(null);
-		assertNull(joinTable.getSpecifiedCatalog());
-		assertNull(javaJoinTable.getCatalog());
-		
-		javaJoinTable.setCatalog("FOO");
-		assertEquals("FOO", joinTable.getSpecifiedCatalog());
-		assertEquals("FOO", javaJoinTable.getCatalog());
-
-		attributeResource.removeSupportingAnnotation(JoinTableAnnotation.ANNOTATION_NAME);
-		assertNull(joinTable.getSpecifiedCatalog());
-		assertNull(attributeResource.getSupportingAnnotation(JoinTableAnnotation.ANNOTATION_NAME));
-	}
-	
-	public void testModifySpecifiedCatalog() throws Exception {
-		createTestEntityWithManyToMany();
-		addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
-	
-		JavaManyToManyMapping manyToManyMapping = (JavaManyToManyMapping) getJavaPersistentType().attributes().next().getMapping();
-		JoinTable joinTable = manyToManyMapping.getRelationshipReference().getJoinTableJoiningStrategy().getJoinTable();
-		
-		JavaResourcePersistentType typeResource = getJpaProject().getJavaResourcePersistentType(FULLY_QUALIFIED_TYPE_NAME);
-		JavaResourcePersistentAttribute attributeResource = typeResource.persistableAttributes().next();
-	
-		JoinTableAnnotation javaJoinTable = (JoinTableAnnotation) attributeResource.getSupportingAnnotation(JoinTableAnnotation.ANNOTATION_NAME);
-		
-		assertNull(joinTable.getSpecifiedCatalog());
-		assertNull(javaJoinTable);
-	
-		//set catalog in the context model, verify resource model modified
-		joinTable.setSpecifiedCatalog("foo");
-		javaJoinTable = (JoinTableAnnotation) attributeResource.getSupportingAnnotation(JoinTableAnnotation.ANNOTATION_NAME);
-		assertEquals("foo", joinTable.getSpecifiedCatalog());
-		assertEquals("foo", javaJoinTable.getCatalog());
-		
-		//set catalog to null in the context model
-		joinTable.setSpecifiedCatalog(null);
-		assertNull(joinTable.getSpecifiedCatalog());
-		assertNull(attributeResource.getSupportingAnnotation(JoinTableAnnotation.ANNOTATION_NAME));
-	}
-
-	public void testAddSpecifiedJoinColumn() throws Exception {
-		createTestEntityWithManyToMany();
-		addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
-
-		JavaManyToManyMapping manyToManyMapping = (JavaManyToManyMapping) getJavaPersistentType().attributes().next().getMapping();
-		JoinTable joinTable = manyToManyMapping.getRelationshipReference().getJoinTableJoiningStrategy().getJoinTable();
-		
-		JavaResourcePersistentType typeResource = getJpaProject().getJavaResourcePersistentType(FULLY_QUALIFIED_TYPE_NAME);
-		JavaResourcePersistentAttribute attributeResource = typeResource.persistableAttributes().next();
-	
-		
-		JoinColumn joinColumn = joinTable.addSpecifiedJoinColumn(0);
-		joinColumn.setSpecifiedName("FOO");
-				
-		JoinTableAnnotation joinTableResource = (JoinTableAnnotation) attributeResource.getSupportingAnnotation(JoinTableAnnotation.ANNOTATION_NAME);
-
-		assertEquals("FOO", joinTableResource.joinColumnAt(0).getName());
-		
-		JoinColumn joinColumn2 = joinTable.addSpecifiedJoinColumn(0);
-		joinColumn2.setSpecifiedName("BAR");
-		
-		assertEquals("BAR", joinTableResource.joinColumnAt(0).getName());
-		assertEquals("FOO", joinTableResource.joinColumnAt(1).getName());
-		
-		JoinColumn joinColumn3 = joinTable.addSpecifiedJoinColumn(1);
-		joinColumn3.setSpecifiedName("BAZ");
-		
-		assertEquals("BAR", joinTableResource.joinColumnAt(0).getName());
-		assertEquals("BAZ", joinTableResource.joinColumnAt(1).getName());
-		assertEquals("FOO", joinTableResource.joinColumnAt(2).getName());
-		
-		ListIterator<JoinColumn> joinColumns = joinTable.specifiedJoinColumns();
-		assertEquals(joinColumn2, joinColumns.next());
-		assertEquals(joinColumn3, joinColumns.next());
-		assertEquals(joinColumn, joinColumns.next());
-		
-		joinColumns = joinTable.specifiedJoinColumns();
-		assertEquals("BAR", joinColumns.next().getName());
-		assertEquals("BAZ", joinColumns.next().getName());
-		assertEquals("FOO", joinColumns.next().getName());
-	}
-	
-	public void testRemoveSpecifiedJoinColumn() throws Exception {
-		createTestEntityWithManyToMany();
-		addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
-
-		JavaManyToManyMapping manyToManyMapping = (JavaManyToManyMapping) getJavaPersistentType().attributes().next().getMapping();
-		JoinTable joinTable = manyToManyMapping.getRelationshipReference().getJoinTableJoiningStrategy().getJoinTable();
-		
-		JavaResourcePersistentType typeResource = getJpaProject().getJavaResourcePersistentType(FULLY_QUALIFIED_TYPE_NAME);
-		JavaResourcePersistentAttribute attributeResource = typeResource.persistableAttributes().next();
-
-		joinTable.addSpecifiedJoinColumn(0).setSpecifiedName("FOO");
-		joinTable.addSpecifiedJoinColumn(1).setSpecifiedName("BAR");
-		joinTable.addSpecifiedJoinColumn(2).setSpecifiedName("BAZ");
-		
-		JoinTableAnnotation joinTableResource = (JoinTableAnnotation) attributeResource.getSupportingAnnotation(JoinTableAnnotation.ANNOTATION_NAME);
-		assertEquals(3, joinTableResource.joinColumnsSize());
-		
-		joinTable.removeSpecifiedJoinColumn(0);
-		assertEquals(2, joinTableResource.joinColumnsSize());
-		assertEquals("BAR", joinTableResource.joinColumnAt(0).getName());
-		assertEquals("BAZ", joinTableResource.joinColumnAt(1).getName());
-
-		joinTable.removeSpecifiedJoinColumn(0);
-		assertEquals(1, joinTableResource.joinColumnsSize());
-		assertEquals("BAZ", joinTableResource.joinColumnAt(0).getName());
-		
-		joinTable.removeSpecifiedJoinColumn(0);
-		assertEquals(0, joinTableResource.joinColumnsSize());
-	}
-	
-	public void testMoveSpecifiedJoinColumn() throws Exception {
-		createTestEntityWithManyToMany();
-		addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
-
-		JavaManyToManyMapping manyToManyMapping = (JavaManyToManyMapping) getJavaPersistentType().attributes().next().getMapping();
-		JoinTable joinTable = manyToManyMapping.getRelationshipReference().getJoinTableJoiningStrategy().getJoinTable();
-		
-		JavaResourcePersistentType typeResource = getJpaProject().getJavaResourcePersistentType(FULLY_QUALIFIED_TYPE_NAME);
-		JavaResourcePersistentAttribute attributeResource = typeResource.persistableAttributes().next();
-
-		joinTable.addSpecifiedJoinColumn(0).setSpecifiedName("FOO");
-		joinTable.addSpecifiedJoinColumn(1).setSpecifiedName("BAR");
-		joinTable.addSpecifiedJoinColumn(2).setSpecifiedName("BAZ");
-		
-		JoinTableAnnotation joinTableResource = (JoinTableAnnotation) attributeResource.getSupportingAnnotation(JoinTableAnnotation.ANNOTATION_NAME);
-		assertEquals(3, joinTableResource.joinColumnsSize());
-		
-		
-		joinTable.moveSpecifiedJoinColumn(2, 0);
-		ListIterator<JoinColumn> joinColumns = joinTable.specifiedJoinColumns();
-		assertEquals("BAR", joinColumns.next().getName());
-		assertEquals("BAZ", joinColumns.next().getName());
-		assertEquals("FOO", joinColumns.next().getName());
-
-		assertEquals("BAR", joinTableResource.joinColumnAt(0).getName());
-		assertEquals("BAZ", joinTableResource.joinColumnAt(1).getName());
-		assertEquals("FOO", joinTableResource.joinColumnAt(2).getName());
-
-
-		joinTable.moveSpecifiedJoinColumn(0, 1);
-		joinColumns = joinTable.specifiedJoinColumns();
-		assertEquals("BAZ", joinColumns.next().getName());
-		assertEquals("BAR", joinColumns.next().getName());
-		assertEquals("FOO", joinColumns.next().getName());
-
-		assertEquals("BAZ", joinTableResource.joinColumnAt(0).getName());
-		assertEquals("BAR", joinTableResource.joinColumnAt(1).getName());
-		assertEquals("FOO", joinTableResource.joinColumnAt(2).getName());
-	}
-	
-	public void testUpdateJoinColumns() throws Exception {
-		createTestEntityWithManyToMany();
-		addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
-
-		JavaManyToManyMapping manyToManyMapping = (JavaManyToManyMapping) getJavaPersistentType().attributes().next().getMapping();
-		JoinTable joinTable = manyToManyMapping.getRelationshipReference().getJoinTableJoiningStrategy().getJoinTable();
-		
-		JavaResourcePersistentType typeResource = getJpaProject().getJavaResourcePersistentType(FULLY_QUALIFIED_TYPE_NAME);
-		JavaResourcePersistentAttribute attributeResource = typeResource.persistableAttributes().next();
-	
-		JoinTableAnnotation joinTableResource = (JoinTableAnnotation) attributeResource.addSupportingAnnotation(JoinTableAnnotation.ANNOTATION_NAME);
-	
-		joinTableResource.addJoinColumn(0);
-		joinTableResource.addJoinColumn(1);
-		joinTableResource.addJoinColumn(2);
-		
-		joinTableResource.joinColumnAt(0).setName("FOO");
-		joinTableResource.joinColumnAt(1).setName("BAR");
-		joinTableResource.joinColumnAt(2).setName("BAZ");
-	
-		ListIterator<JoinColumn> joinColumns = joinTable.specifiedJoinColumns();
-		assertEquals("FOO", joinColumns.next().getName());
-		assertEquals("BAR", joinColumns.next().getName());
-		assertEquals("BAZ", joinColumns.next().getName());
-		assertFalse(joinColumns.hasNext());
-		
-		joinTableResource.moveJoinColumn(2, 0);
-		joinColumns = joinTable.specifiedJoinColumns();
-		assertEquals("BAR", joinColumns.next().getName());
-		assertEquals("BAZ", joinColumns.next().getName());
-		assertEquals("FOO", joinColumns.next().getName());
-		assertFalse(joinColumns.hasNext());
-	
-		joinTableResource.moveJoinColumn(0, 1);
-		joinColumns = joinTable.specifiedJoinColumns();
-		assertEquals("BAZ", joinColumns.next().getName());
-		assertEquals("BAR", joinColumns.next().getName());
-		assertEquals("FOO", joinColumns.next().getName());
-		assertFalse(joinColumns.hasNext());
-	
-		joinTableResource.removeJoinColumn(1);
-		joinColumns = joinTable.specifiedJoinColumns();
-		assertEquals("BAZ", joinColumns.next().getName());
-		assertEquals("FOO", joinColumns.next().getName());
-		assertFalse(joinColumns.hasNext());
-	
-		joinTableResource.removeJoinColumn(1);
-		joinColumns = joinTable.specifiedJoinColumns();
-		assertEquals("BAZ", joinColumns.next().getName());
-		assertFalse(joinColumns.hasNext());
-		
-		joinTableResource.removeJoinColumn(0);
-		assertFalse(joinTable.specifiedJoinColumns().hasNext());
-	}
-	
-	public void testGetDefaultJoinColumn() {
-		//TODO
-	}
-	
-	public void testSpecifiedJoinColumnsSize() throws Exception {
-		createTestEntityWithManyToMany();
-		addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
-		
-		JavaManyToManyMapping manyToManyMapping = (JavaManyToManyMapping) getJavaPersistentType().attributes().next().getMapping();
-		JoinTable joinTable = manyToManyMapping.getRelationshipReference().getJoinTableJoiningStrategy().getJoinTable();
-		
-		assertEquals(0, joinTable.specifiedJoinColumnsSize());
-		
-		joinTable.addSpecifiedJoinColumn(0);
-		assertEquals(1, joinTable.specifiedJoinColumnsSize());
-		
-		joinTable.removeSpecifiedJoinColumn(0);
-		assertEquals(0, joinTable.specifiedJoinColumnsSize());
-	}
-
-	public void testJoinColumnsSize() throws Exception {
-		createTestEntityWithManyToMany();
-		addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
-		
-		JavaManyToManyMapping manyToManyMapping = (JavaManyToManyMapping) getJavaPersistentType().attributes().next().getMapping();
-		JoinTable joinTable = manyToManyMapping.getRelationshipReference().getJoinTableJoiningStrategy().getJoinTable();
-		
-		assertEquals(1, joinTable.joinColumnsSize());
-		
-		joinTable.addSpecifiedJoinColumn(0);
-		assertEquals(1, joinTable.joinColumnsSize());
-		
-		joinTable.addSpecifiedJoinColumn(0);
-		assertEquals(2, joinTable.joinColumnsSize());
-
-		joinTable.removeSpecifiedJoinColumn(0);
-		joinTable.removeSpecifiedJoinColumn(0);
-		assertEquals(1, joinTable.joinColumnsSize());
-		
-		//if non-owning side of the relationship then no default join table
-		manyToManyMapping.getRelationshipReference().getMappedByJoiningStrategy().setMappedByAttribute("foo");
-		assertNull(manyToManyMapping.getRelationshipReference().getJoinTableJoiningStrategy().getJoinTable());
-	}
-	
-	public void testAddSpecifiedInverseJoinColumn() throws Exception {
-		createTestEntityWithManyToMany();
-		addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
-
-		JavaManyToManyMapping manyToManyMapping = (JavaManyToManyMapping) getJavaPersistentType().attributes().next().getMapping();
-		JoinTable joinTable = manyToManyMapping.getRelationshipReference().getJoinTableJoiningStrategy().getJoinTable();
-		
-		JavaResourcePersistentType typeResource = getJpaProject().getJavaResourcePersistentType(FULLY_QUALIFIED_TYPE_NAME);
-		JavaResourcePersistentAttribute attributeResource = typeResource.persistableAttributes().next();
-	
-		
-		JoinColumn inverseJoinColumn = joinTable.addSpecifiedInverseJoinColumn(0);
-		inverseJoinColumn.setSpecifiedName("FOO");
-				
-		JoinTableAnnotation joinTableResource = (JoinTableAnnotation) attributeResource.getSupportingAnnotation(JoinTableAnnotation.ANNOTATION_NAME);
-
-		assertEquals("FOO", joinTableResource.inverseJoinColumnAt(0).getName());
-		
-		JoinColumn inverseJoinColumn2 = joinTable.addSpecifiedInverseJoinColumn(0);
-		inverseJoinColumn2.setSpecifiedName("BAR");
-		
-		assertEquals("BAR", joinTableResource.inverseJoinColumnAt(0).getName());
-		assertEquals("FOO", joinTableResource.inverseJoinColumnAt(1).getName());
-		
-		JoinColumn inverseJoinColumn3 = joinTable.addSpecifiedInverseJoinColumn(1);
-		inverseJoinColumn3.setSpecifiedName("BAZ");
-		
-		assertEquals("BAR", joinTableResource.inverseJoinColumnAt(0).getName());
-		assertEquals("BAZ", joinTableResource.inverseJoinColumnAt(1).getName());
-		assertEquals("FOO", joinTableResource.inverseJoinColumnAt(2).getName());
-		
-		ListIterator<JoinColumn> inverseJoinColumns = joinTable.specifiedInverseJoinColumns();
-		assertEquals(inverseJoinColumn2, inverseJoinColumns.next());
-		assertEquals(inverseJoinColumn3, inverseJoinColumns.next());
-		assertEquals(inverseJoinColumn, inverseJoinColumns.next());
-		
-		inverseJoinColumns = joinTable.specifiedInverseJoinColumns();
-		assertEquals("BAR", inverseJoinColumns.next().getName());
-		assertEquals("BAZ", inverseJoinColumns.next().getName());
-		assertEquals("FOO", inverseJoinColumns.next().getName());
-	}
-	
-	public void testRemoveSpecifiedInverseJoinColumn() throws Exception {
-		createTestEntityWithManyToMany();
-		addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
-
-		JavaManyToManyMapping manyToManyMapping = (JavaManyToManyMapping) getJavaPersistentType().attributes().next().getMapping();
-		JoinTable joinTable = manyToManyMapping.getRelationshipReference().getJoinTableJoiningStrategy().getJoinTable();
-		
-		JavaResourcePersistentType typeResource = getJpaProject().getJavaResourcePersistentType(FULLY_QUALIFIED_TYPE_NAME);
-		JavaResourcePersistentAttribute attributeResource = typeResource.persistableAttributes().next();
-
-		joinTable.addSpecifiedInverseJoinColumn(0).setSpecifiedName("FOO");
-		joinTable.addSpecifiedInverseJoinColumn(1).setSpecifiedName("BAR");
-		joinTable.addSpecifiedInverseJoinColumn(2).setSpecifiedName("BAZ");
-		
-		JoinTableAnnotation joinTableResource = (JoinTableAnnotation) attributeResource.getSupportingAnnotation(JoinTableAnnotation.ANNOTATION_NAME);
-		assertEquals(3, joinTableResource.inverseJoinColumnsSize());
-		
-		joinTable.removeSpecifiedInverseJoinColumn(0);
-		assertEquals(2, joinTableResource.inverseJoinColumnsSize());
-		assertEquals("BAR", joinTableResource.inverseJoinColumnAt(0).getName());
-		assertEquals("BAZ", joinTableResource.inverseJoinColumnAt(1).getName());
-
-		joinTable.removeSpecifiedInverseJoinColumn(0);
-		assertEquals(1, joinTableResource.inverseJoinColumnsSize());
-		assertEquals("BAZ", joinTableResource.inverseJoinColumnAt(0).getName());
-		
-		joinTable.removeSpecifiedInverseJoinColumn(0);
-		assertEquals(0, joinTableResource.inverseJoinColumnsSize());
-	}
-	
-	public void testMoveSpecifiedInverseJoinColumn() throws Exception {
-		createTestEntityWithManyToMany();
-		addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
-
-		JavaManyToManyMapping manyToManyMapping = (JavaManyToManyMapping) getJavaPersistentType().attributes().next().getMapping();
-		JoinTable joinTable = manyToManyMapping.getRelationshipReference().getJoinTableJoiningStrategy().getJoinTable();
-		
-		JavaResourcePersistentType typeResource = getJpaProject().getJavaResourcePersistentType(FULLY_QUALIFIED_TYPE_NAME);
-		JavaResourcePersistentAttribute attributeResource = typeResource.persistableAttributes().next();
-
-		joinTable.addSpecifiedInverseJoinColumn(0).setSpecifiedName("FOO");
-		joinTable.addSpecifiedInverseJoinColumn(1).setSpecifiedName("BAR");
-		joinTable.addSpecifiedInverseJoinColumn(2).setSpecifiedName("BAZ");
-		
-		JoinTableAnnotation joinTableResource = (JoinTableAnnotation) attributeResource.getSupportingAnnotation(JoinTableAnnotation.ANNOTATION_NAME);
-		assertEquals(3, joinTableResource.inverseJoinColumnsSize());
-		
-		
-		joinTable.moveSpecifiedInverseJoinColumn(2, 0);
-		ListIterator<JoinColumn> inverseJoinColumns = joinTable.specifiedInverseJoinColumns();
-		assertEquals("BAR", inverseJoinColumns.next().getName());
-		assertEquals("BAZ", inverseJoinColumns.next().getName());
-		assertEquals("FOO", inverseJoinColumns.next().getName());
-
-		assertEquals("BAR", joinTableResource.inverseJoinColumnAt(0).getName());
-		assertEquals("BAZ", joinTableResource.inverseJoinColumnAt(1).getName());
-		assertEquals("FOO", joinTableResource.inverseJoinColumnAt(2).getName());
-
-
-		joinTable.moveSpecifiedInverseJoinColumn(0, 1);
-		inverseJoinColumns = joinTable.specifiedInverseJoinColumns();
-		assertEquals("BAZ", inverseJoinColumns.next().getName());
-		assertEquals("BAR", inverseJoinColumns.next().getName());
-		assertEquals("FOO", inverseJoinColumns.next().getName());
-
-		assertEquals("BAZ", joinTableResource.inverseJoinColumnAt(0).getName());
-		assertEquals("BAR", joinTableResource.inverseJoinColumnAt(1).getName());
-		assertEquals("FOO", joinTableResource.inverseJoinColumnAt(2).getName());
-	}
-	
-	public void testUpdateInverseJoinColumns() throws Exception {
-		createTestEntityWithManyToMany();
-		addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
-
-		JavaManyToManyMapping manyToManyMapping = (JavaManyToManyMapping) getJavaPersistentType().attributes().next().getMapping();
-		JoinTable joinTable = manyToManyMapping.getRelationshipReference().getJoinTableJoiningStrategy().getJoinTable();
-		
-		JavaResourcePersistentType typeResource = getJpaProject().getJavaResourcePersistentType(FULLY_QUALIFIED_TYPE_NAME);
-		JavaResourcePersistentAttribute attributeResource = typeResource.persistableAttributes().next();
-	
-		JoinTableAnnotation joinTableResource = (JoinTableAnnotation) attributeResource.addSupportingAnnotation(JoinTableAnnotation.ANNOTATION_NAME);
-	
-		joinTableResource.addInverseJoinColumn(0);
-		joinTableResource.addInverseJoinColumn(1);
-		joinTableResource.addInverseJoinColumn(2);
-		
-		joinTableResource.inverseJoinColumnAt(0).setName("FOO");
-		joinTableResource.inverseJoinColumnAt(1).setName("BAR");
-		joinTableResource.inverseJoinColumnAt(2).setName("BAZ");
-	
-		ListIterator<JoinColumn> inverseJoinColumns = joinTable.specifiedInverseJoinColumns();
-		assertEquals("FOO", inverseJoinColumns.next().getName());
-		assertEquals("BAR", inverseJoinColumns.next().getName());
-		assertEquals("BAZ", inverseJoinColumns.next().getName());
-		assertFalse(inverseJoinColumns.hasNext());
-		
-		joinTableResource.moveInverseJoinColumn(2, 0);
-		inverseJoinColumns = joinTable.specifiedInverseJoinColumns();
-		assertEquals("BAR", inverseJoinColumns.next().getName());
-		assertEquals("BAZ", inverseJoinColumns.next().getName());
-		assertEquals("FOO", inverseJoinColumns.next().getName());
-		assertFalse(inverseJoinColumns.hasNext());
-	
-		joinTableResource.moveInverseJoinColumn(0, 1);
-		inverseJoinColumns = joinTable.specifiedInverseJoinColumns();
-		assertEquals("BAZ", inverseJoinColumns.next().getName());
-		assertEquals("BAR", inverseJoinColumns.next().getName());
-		assertEquals("FOO", inverseJoinColumns.next().getName());
-		assertFalse(inverseJoinColumns.hasNext());
-	
-		joinTableResource.removeInverseJoinColumn(1);
-		inverseJoinColumns = joinTable.specifiedInverseJoinColumns();
-		assertEquals("BAZ", inverseJoinColumns.next().getName());
-		assertEquals("FOO", inverseJoinColumns.next().getName());
-		assertFalse(inverseJoinColumns.hasNext());
-	
-		joinTableResource.removeInverseJoinColumn(1);
-		inverseJoinColumns = joinTable.specifiedInverseJoinColumns();
-		assertEquals("BAZ", inverseJoinColumns.next().getName());
-		assertFalse(inverseJoinColumns.hasNext());
-		
-		joinTableResource.removeInverseJoinColumn(0);
-		assertFalse(joinTable.specifiedInverseJoinColumns().hasNext());
-	}
-
-	public void testGetDefaultInverseJoinColumn() {
-		//TODO
-	}
-	
-	public void testSpecifiedInverseJoinColumnsSize() throws Exception {
-		createTestEntityWithManyToMany();
-		addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
-		
-		JavaManyToManyMapping manyToManyMapping = (JavaManyToManyMapping) getJavaPersistentType().attributes().next().getMapping();
-		JoinTable joinTable = manyToManyMapping.getRelationshipReference().getJoinTableJoiningStrategy().getJoinTable();
-		
-		assertEquals(0, joinTable.specifiedInverseJoinColumnsSize());
-		
-		joinTable.addSpecifiedInverseJoinColumn(0);
-		assertEquals(1, joinTable.specifiedInverseJoinColumnsSize());
-		
-		joinTable.removeSpecifiedInverseJoinColumn(0);
-		assertEquals(0, joinTable.specifiedInverseJoinColumnsSize());
-	}
-
-	public void testInverseJoinColumnsSize() throws Exception {
-		createTestEntityWithManyToMany();
-		addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
-		
-		JavaManyToManyMapping manyToManyMapping = (JavaManyToManyMapping) getJavaPersistentType().attributes().next().getMapping();
-		JoinTable joinTable = manyToManyMapping.getRelationshipReference().getJoinTableJoiningStrategy().getJoinTable();
-		
-		assertEquals(1, joinTable.inverseJoinColumnsSize());
-		
-		joinTable.addSpecifiedInverseJoinColumn(0);
-		assertEquals(1, joinTable.inverseJoinColumnsSize());
-		
-		joinTable.addSpecifiedInverseJoinColumn(0);
-		assertEquals(2, joinTable.inverseJoinColumnsSize());
-
-		joinTable.removeSpecifiedInverseJoinColumn(0);
-		joinTable.removeSpecifiedInverseJoinColumn(0);
-		assertEquals(1, joinTable.inverseJoinColumnsSize());
-		
-		//if non-owning side of the relationship then no default join table
-		manyToManyMapping.getRelationshipReference().getMappedByJoiningStrategy().setMappedByAttribute("foo");
-		assertNull(manyToManyMapping.getRelationshipReference().getJoinTableJoiningStrategy().getJoinTable());
-	}
-
-	public void testUniqueConstraints() throws Exception {
-		createTestEntityWithManyToMany();
-		addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
-		
-		JavaManyToManyMapping manyToManyMapping = (JavaManyToManyMapping) getJavaPersistentType().attributes().next().getMapping();
-		JoinTable joinTable = manyToManyMapping.getRelationshipReference().getJoinTableJoiningStrategy().getJoinTable();
-		
-		ListIterator<JavaUniqueConstraint> uniqueConstraints = joinTable.uniqueConstraints();
-		assertFalse(uniqueConstraints.hasNext());
-
-		JavaResourcePersistentType typeResource = getJpaProject().getJavaResourcePersistentType(FULLY_QUALIFIED_TYPE_NAME);
-		JavaResourcePersistentAttribute attributeResource = typeResource.persistableAttributes().next();
-		JoinTableAnnotation joinTableAnnotation = (JoinTableAnnotation) attributeResource.addSupportingAnnotation(JoinTableAnnotation.ANNOTATION_NAME);
-		joinTableAnnotation.addUniqueConstraint(0).addColumnName(0, "foo");
-		joinTableAnnotation.addUniqueConstraint(0).addColumnName(0, "bar");
-		
-		uniqueConstraints = joinTable.uniqueConstraints();
-		assertTrue(uniqueConstraints.hasNext());
-		assertEquals("bar", uniqueConstraints.next().columnNames().next());
-		assertEquals("foo", uniqueConstraints.next().columnNames().next());
-		assertFalse(uniqueConstraints.hasNext());
-	}
-	
-	public void testUniqueConstraintsSize() throws Exception {
-		createTestEntityWithManyToMany();
-		addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
-		
-		JavaManyToManyMapping manyToManyMapping = (JavaManyToManyMapping) getJavaPersistentType().attributes().next().getMapping();
-		JoinTable joinTable = manyToManyMapping.getRelationshipReference().getJoinTableJoiningStrategy().getJoinTable();
-		
-		assertEquals(0,  joinTable.uniqueConstraintsSize());
-
-		JavaResourcePersistentType typeResource = getJpaProject().getJavaResourcePersistentType(FULLY_QUALIFIED_TYPE_NAME);
-		JavaResourcePersistentAttribute attributeResource = typeResource.persistableAttributes().next();
-		JoinTableAnnotation joinTableAnnotation = (JoinTableAnnotation) attributeResource.addSupportingAnnotation(JoinTableAnnotation.ANNOTATION_NAME);
-		joinTableAnnotation.addUniqueConstraint(0).addColumnName(0, "foo");
-		joinTableAnnotation.addUniqueConstraint(1).addColumnName(0, "bar");
-		
-		assertEquals(2,  joinTable.uniqueConstraintsSize());
-	}
-
-	public void testAddUniqueConstraint() throws Exception {
-		createTestEntityWithManyToMany();
-		addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
-		
-		JavaManyToManyMapping manyToManyMapping = (JavaManyToManyMapping) getJavaPersistentType().attributes().next().getMapping();
-		JoinTable joinTable = manyToManyMapping.getRelationshipReference().getJoinTableJoiningStrategy().getJoinTable();
-		joinTable.addUniqueConstraint(0).addColumnName(0, "FOO");
-		joinTable.addUniqueConstraint(0).addColumnName(0, "BAR");
-		joinTable.addUniqueConstraint(0).addColumnName(0, "BAZ");
-		
-		JavaResourcePersistentType typeResource = getJpaProject().getJavaResourcePersistentType(FULLY_QUALIFIED_TYPE_NAME);
-		JavaResourcePersistentAttribute attributeResource = typeResource.persistableAttributes().next();
-		JoinTableAnnotation joinTableAnnotation = (JoinTableAnnotation) attributeResource.getSupportingAnnotation(JoinTableAnnotation.ANNOTATION_NAME);
-		ListIterator<UniqueConstraintAnnotation> uniqueConstraints = joinTableAnnotation.uniqueConstraints();
-		
-		assertEquals("BAZ", uniqueConstraints.next().columnNames().next());
-		assertEquals("BAR", uniqueConstraints.next().columnNames().next());
-		assertEquals("FOO", uniqueConstraints.next().columnNames().next());
-		assertFalse(uniqueConstraints.hasNext());
-	}
-	
-	public void testAddUniqueConstraint2() throws Exception {
-		createTestEntityWithManyToMany();
-		addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
-		
-		JavaManyToManyMapping manyToManyMapping = (JavaManyToManyMapping) getJavaPersistentType().attributes().next().getMapping();
-		JoinTable joinTable = manyToManyMapping.getRelationshipReference().getJoinTableJoiningStrategy().getJoinTable();
-		joinTable.addUniqueConstraint(0).addColumnName(0, "FOO");
-		joinTable.addUniqueConstraint(1).addColumnName(0, "BAR");
-		joinTable.addUniqueConstraint(0).addColumnName(0, "BAZ");
-		
-		JavaResourcePersistentType typeResource = getJpaProject().getJavaResourcePersistentType(FULLY_QUALIFIED_TYPE_NAME);
-		JavaResourcePersistentAttribute attributeResource = typeResource.persistableAttributes().next();
-		JoinTableAnnotation joinTableAnnotation = (JoinTableAnnotation) attributeResource.getSupportingAnnotation(JoinTableAnnotation.ANNOTATION_NAME);
-		ListIterator<UniqueConstraintAnnotation> uniqueConstraints = joinTableAnnotation.uniqueConstraints();
-		
-		assertEquals("BAZ", uniqueConstraints.next().columnNames().next());
-		assertEquals("FOO", uniqueConstraints.next().columnNames().next());
-		assertEquals("BAR", uniqueConstraints.next().columnNames().next());
-		assertFalse(uniqueConstraints.hasNext());
-	}
-	
-	public void testRemoveUniqueConstraint() throws Exception {
-		createTestEntityWithManyToMany();
-		addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
-		
-		JavaManyToManyMapping manyToManyMapping = (JavaManyToManyMapping) getJavaPersistentType().attributes().next().getMapping();
-		JoinTable joinTable = manyToManyMapping.getRelationshipReference().getJoinTableJoiningStrategy().getJoinTable();
-		joinTable.addUniqueConstraint(0).addColumnName(0, "FOO");
-		joinTable.addUniqueConstraint(1).addColumnName(0, "BAR");
-		joinTable.addUniqueConstraint(2).addColumnName(0, "BAZ");
-		
-		JavaResourcePersistentType typeResource = getJpaProject().getJavaResourcePersistentType(FULLY_QUALIFIED_TYPE_NAME);
-		JavaResourcePersistentAttribute attributeResource = typeResource.persistableAttributes().next();
-		JoinTableAnnotation joinTableAnnotation = (JoinTableAnnotation) attributeResource.getSupportingAnnotation(JoinTableAnnotation.ANNOTATION_NAME);
-		
-		assertEquals(3, joinTableAnnotation.uniqueConstraintsSize());
-
-		joinTable.removeUniqueConstraint(1);
-		
-		ListIterator<UniqueConstraintAnnotation> uniqueConstraintAnnotations = joinTableAnnotation.uniqueConstraints();
-		assertEquals("FOO", uniqueConstraintAnnotations.next().columnNames().next());		
-		assertEquals("BAZ", uniqueConstraintAnnotations.next().columnNames().next());
-		assertFalse(uniqueConstraintAnnotations.hasNext());
-		
-		Iterator<UniqueConstraint> uniqueConstraints = joinTable.uniqueConstraints();
-		assertEquals("FOO", uniqueConstraints.next().columnNames().next());		
-		assertEquals("BAZ", uniqueConstraints.next().columnNames().next());
-		assertFalse(uniqueConstraints.hasNext());
-	
-		
-		joinTable.removeUniqueConstraint(1);
-		uniqueConstraintAnnotations = joinTableAnnotation.uniqueConstraints();
-		assertEquals("FOO", uniqueConstraintAnnotations.next().columnNames().next());		
-		assertFalse(uniqueConstraintAnnotations.hasNext());
-
-		uniqueConstraints = joinTable.uniqueConstraints();
-		assertEquals("FOO", uniqueConstraints.next().columnNames().next());		
-		assertFalse(uniqueConstraints.hasNext());
-
-		
-		joinTable.removeUniqueConstraint(0);
-		uniqueConstraintAnnotations = joinTableAnnotation.uniqueConstraints();
-		assertFalse(uniqueConstraintAnnotations.hasNext());
-		uniqueConstraints = joinTable.uniqueConstraints();
-		assertFalse(uniqueConstraints.hasNext());
-	}
-	
-	public void testMoveUniqueConstraint() throws Exception {
-		createTestEntityWithManyToMany();
-		addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
-		
-		JavaManyToManyMapping manyToManyMapping = (JavaManyToManyMapping) getJavaPersistentType().attributes().next().getMapping();
-		JoinTable joinTable = manyToManyMapping.getRelationshipReference().getJoinTableJoiningStrategy().getJoinTable();
-		joinTable.addUniqueConstraint(0).addColumnName(0, "FOO");
-		joinTable.addUniqueConstraint(1).addColumnName(0, "BAR");
-		joinTable.addUniqueConstraint(2).addColumnName(0, "BAZ");
-		
-		JavaResourcePersistentType typeResource = getJpaProject().getJavaResourcePersistentType(FULLY_QUALIFIED_TYPE_NAME);
-		JavaResourcePersistentAttribute attributeResource = typeResource.persistableAttributes().next();
-		JoinTableAnnotation joinTableAnnotation = (JoinTableAnnotation) attributeResource.getSupportingAnnotation(JoinTableAnnotation.ANNOTATION_NAME);
-		
-		assertEquals(3, joinTableAnnotation.uniqueConstraintsSize());
-		
-		
-		joinTable.moveUniqueConstraint(2, 0);
-		ListIterator<UniqueConstraint> uniqueConstraints = joinTable.uniqueConstraints();
-		assertEquals("BAR", uniqueConstraints.next().columnNames().next());
-		assertEquals("BAZ", uniqueConstraints.next().columnNames().next());
-		assertEquals("FOO", uniqueConstraints.next().columnNames().next());
-
-		ListIterator<UniqueConstraintAnnotation> uniqueConstraintAnnotations = joinTableAnnotation.uniqueConstraints();
-		assertEquals("BAR", uniqueConstraintAnnotations.next().columnNames().next());
-		assertEquals("BAZ", uniqueConstraintAnnotations.next().columnNames().next());
-		assertEquals("FOO", uniqueConstraintAnnotations.next().columnNames().next());
-
-
-		joinTable.moveUniqueConstraint(0, 1);
-		uniqueConstraints = joinTable.uniqueConstraints();
-		assertEquals("BAZ", uniqueConstraints.next().columnNames().next());
-		assertEquals("BAR", uniqueConstraints.next().columnNames().next());
-		assertEquals("FOO", uniqueConstraints.next().columnNames().next());
-
-		uniqueConstraintAnnotations = joinTableAnnotation.uniqueConstraints();
-		assertEquals("BAZ", uniqueConstraintAnnotations.next().columnNames().next());
-		assertEquals("BAR", uniqueConstraintAnnotations.next().columnNames().next());
-		assertEquals("FOO", uniqueConstraintAnnotations.next().columnNames().next());
-	}
-	
-	public void testUpdateUniqueConstraints() throws Exception {
-		createTestEntityWithManyToMany();
-		addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
-
-		JavaManyToManyMapping manyToManyMapping = (JavaManyToManyMapping) getJavaPersistentType().attributes().next().getMapping();
-		JoinTable joinTable = manyToManyMapping.getRelationshipReference().getJoinTableJoiningStrategy().getJoinTable();
-		JavaResourcePersistentType typeResource = getJpaProject().getJavaResourcePersistentType(FULLY_QUALIFIED_TYPE_NAME);
-		JavaResourcePersistentAttribute attributeResource = typeResource.persistableAttributes().next();
-		JoinTableAnnotation joinTableAnnotation = (JoinTableAnnotation) attributeResource.addSupportingAnnotation(JoinTableAnnotation.ANNOTATION_NAME);
-	
-		joinTableAnnotation.addUniqueConstraint(0).addColumnName("FOO");
-		joinTableAnnotation.addUniqueConstraint(1).addColumnName("BAR");
-		joinTableAnnotation.addUniqueConstraint(2).addColumnName("BAZ");
-
-		
-		ListIterator<UniqueConstraint> uniqueConstraints = joinTable.uniqueConstraints();
-		assertEquals("FOO", uniqueConstraints.next().columnNames().next());
-		assertEquals("BAR", uniqueConstraints.next().columnNames().next());
-		assertEquals("BAZ", uniqueConstraints.next().columnNames().next());
-		assertFalse(uniqueConstraints.hasNext());
-		
-		joinTableAnnotation.moveUniqueConstraint(2, 0);
-		uniqueConstraints = joinTable.uniqueConstraints();
-		assertEquals("BAR", uniqueConstraints.next().columnNames().next());
-		assertEquals("BAZ", uniqueConstraints.next().columnNames().next());
-		assertEquals("FOO", uniqueConstraints.next().columnNames().next());
-		assertFalse(uniqueConstraints.hasNext());
-	
-		joinTableAnnotation.moveUniqueConstraint(0, 1);
-		uniqueConstraints = joinTable.uniqueConstraints();
-		assertEquals("BAZ", uniqueConstraints.next().columnNames().next());
-		assertEquals("BAR", uniqueConstraints.next().columnNames().next());
-		assertEquals("FOO", uniqueConstraints.next().columnNames().next());
-		assertFalse(uniqueConstraints.hasNext());
-	
-		joinTableAnnotation.removeUniqueConstraint(1);
-		uniqueConstraints = joinTable.uniqueConstraints();
-		assertEquals("BAZ", uniqueConstraints.next().columnNames().next());
-		assertEquals("FOO", uniqueConstraints.next().columnNames().next());
-		assertFalse(uniqueConstraints.hasNext());
-	
-		joinTableAnnotation.removeUniqueConstraint(1);
-		uniqueConstraints = joinTable.uniqueConstraints();
-		assertEquals("BAZ", uniqueConstraints.next().columnNames().next());
-		assertFalse(uniqueConstraints.hasNext());
-		
-		joinTableAnnotation.removeUniqueConstraint(0);
-		uniqueConstraints = joinTable.uniqueConstraints();
-		assertFalse(uniqueConstraints.hasNext());
-	}
-}
\ No newline at end of file
diff --git a/jpa/tests/org.eclipse.jpt.core.tests/src/org/eclipse/jpt/core/tests/internal/context/java/JavaManyToManyMappingTests.java b/jpa/tests/org.eclipse.jpt.core.tests/src/org/eclipse/jpt/core/tests/internal/context/java/JavaManyToManyMappingTests.java
deleted file mode 100644
index 06dfe5c..0000000
--- a/jpa/tests/org.eclipse.jpt.core.tests/src/org/eclipse/jpt/core/tests/internal/context/java/JavaManyToManyMappingTests.java
+++ /dev/null
@@ -1,966 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2008 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.core.tests.internal.context.java;
-
-import java.util.Iterator;
-import java.util.ListIterator;
-import org.eclipse.jdt.core.ICompilationUnit;
-import org.eclipse.jpt.core.MappingKeys;
-import org.eclipse.jpt.core.context.BasicMapping;
-import org.eclipse.jpt.core.context.EmbeddedIdMapping;
-import org.eclipse.jpt.core.context.EmbeddedMapping;
-import org.eclipse.jpt.core.context.FetchType;
-import org.eclipse.jpt.core.context.IdMapping;
-import org.eclipse.jpt.core.context.ManyToManyMapping;
-import org.eclipse.jpt.core.context.ManyToOneMapping;
-import org.eclipse.jpt.core.context.OneToManyMapping;
-import org.eclipse.jpt.core.context.OneToOneMapping;
-import org.eclipse.jpt.core.context.PersistentAttribute;
-import org.eclipse.jpt.core.context.TransientMapping;
-import org.eclipse.jpt.core.context.TypeMapping;
-import org.eclipse.jpt.core.context.VersionMapping;
-import org.eclipse.jpt.core.context.java.JavaPersistentType;
-import org.eclipse.jpt.core.context.persistence.ClassRef;
-import org.eclipse.jpt.core.resource.java.BasicAnnotation;
-import org.eclipse.jpt.core.resource.java.EmbeddedAnnotation;
-import org.eclipse.jpt.core.resource.java.EmbeddedIdAnnotation;
-import org.eclipse.jpt.core.resource.java.IdAnnotation;
-import org.eclipse.jpt.core.resource.java.JPA;
-import org.eclipse.jpt.core.resource.java.JavaResourcePersistentAttribute;
-import org.eclipse.jpt.core.resource.java.JavaResourcePersistentType;
-import org.eclipse.jpt.core.resource.java.JoinTableAnnotation;
-import org.eclipse.jpt.core.resource.java.ManyToManyAnnotation;
-import org.eclipse.jpt.core.resource.java.ManyToOneAnnotation;
-import org.eclipse.jpt.core.resource.java.MapKeyAnnotation;
-import org.eclipse.jpt.core.resource.java.OneToManyAnnotation;
-import org.eclipse.jpt.core.resource.java.OneToOneAnnotation;
-import org.eclipse.jpt.core.resource.java.OrderByAnnotation;
-import org.eclipse.jpt.core.resource.java.TransientAnnotation;
-import org.eclipse.jpt.core.resource.java.VersionAnnotation;
-import org.eclipse.jpt.core.tests.internal.context.ContextModelTestCase;
-import org.eclipse.jpt.core.tests.internal.projects.TestJavaProject.SourceWriter;
-import org.eclipse.jpt.utility.internal.iterators.ArrayIterator;
-
-@SuppressWarnings("nls")
-public class JavaManyToManyMappingTests extends ContextModelTestCase
-{
-
-	private void createTestTargetEntityAddress() throws Exception {
-		SourceWriter sourceWriter = new SourceWriter() {
-			public void appendSourceTo(StringBuilder sb) {
-				sb.append(CR);
-					sb.append("import ");
-					sb.append(JPA.ENTITY);
-					sb.append(";");
-					sb.append(CR);
-					sb.append("import ");
-					sb.append(JPA.ID);
-					sb.append(";");
-					sb.append(CR);
-				sb.append("@Entity");
-				sb.append(CR);
-				sb.append("public class ").append("Address").append(" ");
-				sb.append("{").append(CR);
-				sb.append(CR);
-				sb.append("    @Id").append(CR);
-				sb.append("    private int id;").append(CR);
-				sb.append(CR);
-				sb.append("    private String city;").append(CR);
-				sb.append(CR);
-				sb.append("    private String state;").append(CR);
-				sb.append(CR);
-				sb.append("    private int zip;").append(CR);
-				sb.append(CR);
-				sb.append("}").append(CR);
-		}
-		};
-		this.javaProject.createCompilationUnit(PACKAGE_NAME, "Address.java", sourceWriter);
-	}
-
-	private ICompilationUnit createTestEntityWithManyToManyMapping() throws Exception {
-		return this.createTestType(new DefaultAnnotationWriter() {
-			@Override
-			public Iterator<String> imports() {
-				return new ArrayIterator<String>(JPA.ENTITY, JPA.MANY_TO_MANY);
-			}
-			@Override
-			public void appendTypeAnnotationTo(StringBuilder sb) {
-				sb.append("@Entity").append(CR);
-			}
-			
-			@Override
-			public void appendIdFieldAnnotationTo(StringBuilder sb) {
-				sb.append("@ManyToMany").append(CR);
-			}
-		});
-	}
-	
-	private ICompilationUnit createTestEntityWithValidManyToManyMapping() throws Exception {
-		return this.createTestType(new DefaultAnnotationWriter() {
-			@Override
-			public Iterator<String> imports() {
-				return new ArrayIterator<String>(JPA.ENTITY, JPA.MANY_TO_MANY, JPA.ID, "java.util.Collection");
-			}
-			@Override
-			public void appendTypeAnnotationTo(StringBuilder sb) {
-				sb.append("@Entity").append(CR);
-			}
-			
-			@Override
-			public void appendIdFieldAnnotationTo(StringBuilder sb) {
-				sb.append(CR);
-				sb.append("    @ManyToMany").append(CR);				
-				sb.append("    private Collection<Address> addresses;").append(CR);
-				sb.append(CR);
-				sb.append("    @Id").append(CR);				
-			}
-		});
-	}
-	private ICompilationUnit createTestEntityWithCollectionManyToManyMapping() throws Exception {
-		return this.createTestType(new DefaultAnnotationWriter() {
-			@Override
-			public Iterator<String> imports() {
-				return new ArrayIterator<String>(JPA.ENTITY, JPA.MANY_TO_MANY, JPA.ID, "java.util.Collection");
-			}
-			@Override
-			public void appendTypeAnnotationTo(StringBuilder sb) {
-				sb.append("@Entity").append(CR);
-			}
-			
-			@Override
-			public void appendIdFieldAnnotationTo(StringBuilder sb) {
-				sb.append(CR);
-				sb.append("    @ManyToMany").append(CR);				
-				sb.append("    private Collection addresses;").append(CR);
-				sb.append(CR);
-				sb.append("    @Id").append(CR);				
-			}
-		});
-	}
-	private ICompilationUnit createTestEntityWithNonCollectionManyToManyMapping() throws Exception {
-		return this.createTestType(new DefaultAnnotationWriter() {
-			@Override
-			public Iterator<String> imports() {
-				return new ArrayIterator<String>(JPA.ENTITY, JPA.MANY_TO_MANY, JPA.ID);
-			}
-			@Override
-			public void appendTypeAnnotationTo(StringBuilder sb) {
-				sb.append("@Entity").append(CR);
-			}
-			
-			@Override
-			public void appendIdFieldAnnotationTo(StringBuilder sb) {
-				sb.append(CR);
-				sb.append("    @ManyToMany").append(CR);				
-				sb.append("    private Address addresses;").append(CR);
-				sb.append(CR);
-				sb.append("    @Id").append(CR);				
-			}
-		});
-	}
-
-	private void createTestDepartment() throws Exception {
-		SourceWriter sourceWriter = new SourceWriter() {
-			public void appendSourceTo(StringBuilder sb) {
-				sb.append(CR);
-					sb.append("import ").append(JPA.ENTITY).append(";");
-					sb.append(CR);
-					sb.append("import ").append(JPA.ID).append(";");
-					sb.append(CR);
-					sb.append("import java.util.Map;");
-					sb.append(CR);
-					sb.append("import ").append(JPA.MANY_TO_MANY).append(";");
-				sb.append("@Entity");
-				sb.append(CR);
-				sb.append("public class ").append("Department").append(" ");
-				sb.append("{").append(CR);
-				sb.append(CR);
-				sb.append("    @Id").append(CR);
-				sb.append("    private int id;").append(CR);
-				sb.append(CR);
-				sb.append("    @ManyToMany").append(CR);
-				sb.append("    private Map<Integer, Employee> employees;").append(CR);
-				sb.append(CR);
-				sb.append("}").append(CR);
-		}
-		};
-		this.javaProject.createCompilationUnit(PACKAGE_NAME, "Department.java", sourceWriter);
-	}
-
-	private void createTestEmployee() throws Exception {
-		SourceWriter sourceWriter = new SourceWriter() {
-			public void appendSourceTo(StringBuilder sb) {
-				sb.append(CR);
-					sb.append("import ").append(JPA.ENTITY).append(";");
-					sb.append(CR);
-					sb.append("import ").append(JPA.ID).append(";");
-					sb.append(CR);
-			sb.append("@Entity");
-				sb.append(CR);
-				sb.append("public class ").append("Employee").append(" ");
-				sb.append("{").append(CR);
-				sb.append(CR);
-				sb.append("    @Id").append(CR);
-				sb.append("    private int empId;").append(CR);
-				sb.append(CR);
-				sb.append("}").append(CR);
-		}
-		};
-		this.javaProject.createCompilationUnit(PACKAGE_NAME, "Employee.java", sourceWriter);
-	}
-
-	public JavaManyToManyMappingTests(String name) {
-		super(name);
-	}
-	
-	public void testMorphToBasicMapping() throws Exception {
-		createTestEntityWithManyToManyMapping();
-		addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
-		
-		PersistentAttribute persistentAttribute = getJavaPersistentType().attributes().next();
-		ManyToManyMapping manyToManyMapping = (ManyToManyMapping) persistentAttribute.getMapping();
-		manyToManyMapping.setOrderBy("asdf");
-		manyToManyMapping.getRelationshipReference().getJoinTableJoiningStrategy().getJoinTable().setSpecifiedName("FOO");
-		assertFalse(manyToManyMapping.isDefault());
-		
-		persistentAttribute.setSpecifiedMappingKey(MappingKeys.BASIC_ATTRIBUTE_MAPPING_KEY);
-		assertTrue(persistentAttribute.getMapping() instanceof BasicMapping);
-		assertFalse(persistentAttribute.getMapping().isDefault());
-		
-		JavaResourcePersistentType typeResource = getJpaProject().getJavaResourcePersistentType(FULLY_QUALIFIED_TYPE_NAME);
-		JavaResourcePersistentAttribute attributeResource = typeResource.persistableAttributes().next();
-		assertNull(attributeResource.getMappingAnnotation(ManyToManyAnnotation.ANNOTATION_NAME));
-		assertNotNull(attributeResource.getMappingAnnotation(BasicAnnotation.ANNOTATION_NAME));
-		assertNull(attributeResource.getSupportingAnnotation(JoinTableAnnotation.ANNOTATION_NAME));
-		assertNull(attributeResource.getSupportingAnnotation(OrderByAnnotation.ANNOTATION_NAME));
-	}
-	
-	public void testMorphToDefault() throws Exception {
-		createTestEntityWithManyToManyMapping();
-		addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
-		
-		PersistentAttribute persistentAttribute = getJavaPersistentType().attributes().next();
-		ManyToManyMapping manyToManyMapping = (ManyToManyMapping) persistentAttribute.getMapping();
-		manyToManyMapping.setOrderBy("asdf");
-		manyToManyMapping.getRelationshipReference().getJoinTableJoiningStrategy().getJoinTable().setSpecifiedName("FOO");
-		assertFalse(manyToManyMapping.isDefault());
-		
-		persistentAttribute.setSpecifiedMappingKey(MappingKeys.NULL_ATTRIBUTE_MAPPING_KEY);
-		assertNull(persistentAttribute.getSpecifiedMapping());
-		assertTrue(persistentAttribute.getMapping().isDefault());
-	
-		JavaResourcePersistentType typeResource = getJpaProject().getJavaResourcePersistentType(FULLY_QUALIFIED_TYPE_NAME);
-		JavaResourcePersistentAttribute attributeResource = typeResource.persistableAttributes().next();
-		assertNull(attributeResource.getMappingAnnotation(ManyToManyAnnotation.ANNOTATION_NAME));
-		assertNull(attributeResource.getSupportingAnnotation(JoinTableAnnotation.ANNOTATION_NAME));
-		assertNull(attributeResource.getSupportingAnnotation(OrderByAnnotation.ANNOTATION_NAME));
-	}
-	
-	public void testMorphToVersionMapping() throws Exception {
-		createTestEntityWithManyToManyMapping();
-		addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
-		
-		PersistentAttribute persistentAttribute = getJavaPersistentType().attributes().next();
-		ManyToManyMapping manyToManyMapping = (ManyToManyMapping) persistentAttribute.getMapping();
-		manyToManyMapping.setOrderBy("asdf");
-		manyToManyMapping.getRelationshipReference().getJoinTableJoiningStrategy().getJoinTable().setSpecifiedName("FOO");
-		assertFalse(manyToManyMapping.isDefault());
-		
-		persistentAttribute.setSpecifiedMappingKey(MappingKeys.VERSION_ATTRIBUTE_MAPPING_KEY);
-		assertTrue(persistentAttribute.getMapping() instanceof VersionMapping);
-		assertFalse(persistentAttribute.getMapping().isDefault());
-		
-		JavaResourcePersistentType typeResource = getJpaProject().getJavaResourcePersistentType(FULLY_QUALIFIED_TYPE_NAME);
-		JavaResourcePersistentAttribute attributeResource = typeResource.persistableAttributes().next();
-		assertNull(attributeResource.getMappingAnnotation(ManyToManyAnnotation.ANNOTATION_NAME));
-		assertNotNull(attributeResource.getMappingAnnotation(VersionAnnotation.ANNOTATION_NAME));
-		assertNull(attributeResource.getSupportingAnnotation(JoinTableAnnotation.ANNOTATION_NAME));
-		assertNull(attributeResource.getSupportingAnnotation(OrderByAnnotation.ANNOTATION_NAME));
-	}
-	
-	public void testMorphToIdMapping() throws Exception {
-		createTestEntityWithManyToManyMapping();
-		addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
-		
-		PersistentAttribute persistentAttribute = getJavaPersistentType().attributes().next();
-		ManyToManyMapping manyToManyMapping = (ManyToManyMapping) persistentAttribute.getMapping();
-		manyToManyMapping.setOrderBy("asdf");
-		manyToManyMapping.getRelationshipReference().getJoinTableJoiningStrategy().getJoinTable().setSpecifiedName("FOO");
-		assertFalse(manyToManyMapping.isDefault());
-		
-		persistentAttribute.setSpecifiedMappingKey(MappingKeys.ID_ATTRIBUTE_MAPPING_KEY);
-		assertTrue(persistentAttribute.getMapping() instanceof IdMapping);
-		assertFalse(persistentAttribute.getMapping().isDefault());
-		
-		JavaResourcePersistentType typeResource = getJpaProject().getJavaResourcePersistentType(FULLY_QUALIFIED_TYPE_NAME);
-		JavaResourcePersistentAttribute attributeResource = typeResource.persistableAttributes().next();
-		assertNull(attributeResource.getMappingAnnotation(ManyToManyAnnotation.ANNOTATION_NAME));
-		assertNotNull(attributeResource.getMappingAnnotation(IdAnnotation.ANNOTATION_NAME));
-		assertNull(attributeResource.getSupportingAnnotation(JoinTableAnnotation.ANNOTATION_NAME));
-		assertNull(attributeResource.getSupportingAnnotation(OrderByAnnotation.ANNOTATION_NAME));
-	}
-	
-	public void testMorphToEmbeddedMapping() throws Exception {
-		createTestEntityWithManyToManyMapping();
-		addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
-		
-		PersistentAttribute persistentAttribute = getJavaPersistentType().attributes().next();
-		ManyToManyMapping manyToManyMapping = (ManyToManyMapping) persistentAttribute.getMapping();
-		manyToManyMapping.setOrderBy("asdf");
-		manyToManyMapping.getRelationshipReference().getJoinTableJoiningStrategy().getJoinTable().setSpecifiedName("FOO");
-		assertFalse(manyToManyMapping.isDefault());
-		
-		persistentAttribute.setSpecifiedMappingKey(MappingKeys.EMBEDDED_ATTRIBUTE_MAPPING_KEY);
-		assertTrue(persistentAttribute.getMapping() instanceof EmbeddedMapping);
-		assertFalse(persistentAttribute.getMapping().isDefault());
-		
-		JavaResourcePersistentType typeResource = getJpaProject().getJavaResourcePersistentType(FULLY_QUALIFIED_TYPE_NAME);
-		JavaResourcePersistentAttribute attributeResource = typeResource.persistableAttributes().next();
-		assertNull(attributeResource.getMappingAnnotation(ManyToManyAnnotation.ANNOTATION_NAME));
-		assertNotNull(attributeResource.getMappingAnnotation(EmbeddedAnnotation.ANNOTATION_NAME));
-		assertNull(attributeResource.getSupportingAnnotation(JoinTableAnnotation.ANNOTATION_NAME));
-		assertNull(attributeResource.getSupportingAnnotation(OrderByAnnotation.ANNOTATION_NAME));
-	}
-	
-	public void testMorphToEmbeddedIdMapping() throws Exception {
-		createTestEntityWithManyToManyMapping();
-		addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
-		
-		PersistentAttribute persistentAttribute = getJavaPersistentType().attributes().next();
-		ManyToManyMapping manyToManyMapping = (ManyToManyMapping) persistentAttribute.getMapping();
-		manyToManyMapping.setOrderBy("asdf");
-		manyToManyMapping.getRelationshipReference().getJoinTableJoiningStrategy().getJoinTable().setSpecifiedName("FOO");
-		assertFalse(manyToManyMapping.isDefault());
-		
-		persistentAttribute.setSpecifiedMappingKey(MappingKeys.EMBEDDED_ID_ATTRIBUTE_MAPPING_KEY);
-		assertTrue(persistentAttribute.getMapping() instanceof EmbeddedIdMapping);
-		assertFalse(persistentAttribute.getMapping().isDefault());
-		
-		JavaResourcePersistentType typeResource = getJpaProject().getJavaResourcePersistentType(FULLY_QUALIFIED_TYPE_NAME);
-		JavaResourcePersistentAttribute attributeResource = typeResource.persistableAttributes().next();
-		assertNull(attributeResource.getMappingAnnotation(ManyToManyAnnotation.ANNOTATION_NAME));
-		assertNotNull(attributeResource.getMappingAnnotation(EmbeddedIdAnnotation.ANNOTATION_NAME));
-		assertNull(attributeResource.getSupportingAnnotation(JoinTableAnnotation.ANNOTATION_NAME));
-		assertNull(attributeResource.getSupportingAnnotation(OrderByAnnotation.ANNOTATION_NAME));
-	}
-	
-	public void testMorphToTransientMapping() throws Exception {
-		createTestEntityWithManyToManyMapping();
-		addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
-		
-		PersistentAttribute persistentAttribute = getJavaPersistentType().attributes().next();
-		ManyToManyMapping manyToManyMapping = (ManyToManyMapping) persistentAttribute.getMapping();
-		manyToManyMapping.setOrderBy("asdf");
-		manyToManyMapping.getRelationshipReference().getJoinTableJoiningStrategy().getJoinTable().setSpecifiedName("FOO");
-		assertFalse(manyToManyMapping.isDefault());
-		
-		persistentAttribute.setSpecifiedMappingKey(MappingKeys.TRANSIENT_ATTRIBUTE_MAPPING_KEY);
-		assertTrue(persistentAttribute.getMapping() instanceof TransientMapping);
-		assertFalse(persistentAttribute.getMapping().isDefault());
-		
-		JavaResourcePersistentType typeResource = getJpaProject().getJavaResourcePersistentType(FULLY_QUALIFIED_TYPE_NAME);
-		JavaResourcePersistentAttribute attributeResource = typeResource.persistableAttributes().next();
-		assertNull(attributeResource.getMappingAnnotation(ManyToManyAnnotation.ANNOTATION_NAME));
-		assertNotNull(attributeResource.getMappingAnnotation(TransientAnnotation.ANNOTATION_NAME));
-		assertNull(attributeResource.getSupportingAnnotation(JoinTableAnnotation.ANNOTATION_NAME));
-		assertNull(attributeResource.getSupportingAnnotation(OrderByAnnotation.ANNOTATION_NAME));
-	}
-	
-	public void testMorphToOneToOneMapping() throws Exception {
-		createTestEntityWithManyToManyMapping();
-		addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
-		
-		PersistentAttribute persistentAttribute = getJavaPersistentType().attributes().next();
-		ManyToManyMapping manyToManyMapping = (ManyToManyMapping) persistentAttribute.getMapping();
-		manyToManyMapping.setOrderBy("asdf");
-		manyToManyMapping.getRelationshipReference().getJoinTableJoiningStrategy().getJoinTable().setSpecifiedName("FOO");
-		assertFalse(manyToManyMapping.isDefault());
-		
-		persistentAttribute.setSpecifiedMappingKey(MappingKeys.ONE_TO_ONE_ATTRIBUTE_MAPPING_KEY);
-		assertTrue(persistentAttribute.getMapping() instanceof OneToOneMapping);
-		assertFalse(persistentAttribute.getMapping().isDefault());
-		
-		JavaResourcePersistentType typeResource = getJpaProject().getJavaResourcePersistentType(FULLY_QUALIFIED_TYPE_NAME);
-		JavaResourcePersistentAttribute attributeResource = typeResource.persistableAttributes().next();
-		assertNull(attributeResource.getMappingAnnotation(ManyToManyAnnotation.ANNOTATION_NAME));
-		assertNotNull(attributeResource.getMappingAnnotation(OneToOneAnnotation.ANNOTATION_NAME));
-		assertNotNull(attributeResource.getSupportingAnnotation(JoinTableAnnotation.ANNOTATION_NAME));
-		assertNull(attributeResource.getSupportingAnnotation(OrderByAnnotation.ANNOTATION_NAME));
-	}
-	
-	public void testMorphToOneToManyMapping() throws Exception {
-		createTestEntityWithManyToManyMapping();
-		addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
-		
-		PersistentAttribute persistentAttribute = getJavaPersistentType().attributes().next();
-		ManyToManyMapping manyToManyMapping = (ManyToManyMapping) persistentAttribute.getMapping();
-		manyToManyMapping.setOrderBy("asdf");
-		manyToManyMapping.getRelationshipReference().getJoinTableJoiningStrategy().getJoinTable().setSpecifiedName("FOO");
-		assertFalse(manyToManyMapping.isDefault());
-		
-		persistentAttribute.setSpecifiedMappingKey(MappingKeys.ONE_TO_MANY_ATTRIBUTE_MAPPING_KEY);
-		assertTrue(persistentAttribute.getMapping() instanceof OneToManyMapping);
-		assertFalse(persistentAttribute.getMapping().isDefault());
-		
-		JavaResourcePersistentType typeResource = getJpaProject().getJavaResourcePersistentType(FULLY_QUALIFIED_TYPE_NAME);
-		JavaResourcePersistentAttribute attributeResource = typeResource.persistableAttributes().next();
-		assertNull(attributeResource.getMappingAnnotation(ManyToManyAnnotation.ANNOTATION_NAME));
-		assertNotNull(attributeResource.getMappingAnnotation(OneToManyAnnotation.ANNOTATION_NAME));
-		assertNotNull(attributeResource.getSupportingAnnotation(JoinTableAnnotation.ANNOTATION_NAME));
-		assertNotNull(attributeResource.getSupportingAnnotation(OrderByAnnotation.ANNOTATION_NAME));
-	}
-	
-	public void testMorphToManyToOneMapping() throws Exception {
-		createTestEntityWithManyToManyMapping();
-		addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
-		
-		PersistentAttribute persistentAttribute = getJavaPersistentType().attributes().next();
-		ManyToManyMapping manyToManyMapping = (ManyToManyMapping) persistentAttribute.getMapping();
-		manyToManyMapping.setOrderBy("asdf");
-		manyToManyMapping.getRelationshipReference().getJoinTableJoiningStrategy().getJoinTable().setSpecifiedName("FOO");
-		assertFalse(manyToManyMapping.isDefault());
-		
-		persistentAttribute.setSpecifiedMappingKey(MappingKeys.MANY_TO_ONE_ATTRIBUTE_MAPPING_KEY);
-		assertTrue(persistentAttribute.getMapping() instanceof ManyToOneMapping);
-		assertFalse(persistentAttribute.getMapping().isDefault());
-		
-		JavaResourcePersistentType typeResource = getJpaProject().getJavaResourcePersistentType(FULLY_QUALIFIED_TYPE_NAME);
-		JavaResourcePersistentAttribute attributeResource = typeResource.persistableAttributes().next();
-		assertNull(attributeResource.getMappingAnnotation(ManyToManyAnnotation.ANNOTATION_NAME));
-		assertNotNull(attributeResource.getMappingAnnotation(ManyToOneAnnotation.ANNOTATION_NAME));
-		assertNotNull(attributeResource.getSupportingAnnotation(JoinTableAnnotation.ANNOTATION_NAME));
-		assertNull(attributeResource.getSupportingAnnotation(OrderByAnnotation.ANNOTATION_NAME));
-	}
-
-	public void testUpdateSpecifiedTargetEntity() throws Exception {
-		createTestEntityWithManyToManyMapping();
-		addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
-		
-		PersistentAttribute persistentAttribute = getJavaPersistentType().attributes().next();
-		ManyToManyMapping manyToManyMapping = (ManyToManyMapping) persistentAttribute.getMapping();
-		
-		JavaResourcePersistentType typeResource = getJpaProject().getJavaResourcePersistentType(FULLY_QUALIFIED_TYPE_NAME);
-		JavaResourcePersistentAttribute attributeResource = typeResource.persistableAttributes().next();
-		ManyToManyAnnotation manyToMany = (ManyToManyAnnotation) attributeResource.getMappingAnnotation();
-		
-		assertNull(manyToManyMapping.getSpecifiedTargetEntity());
-		assertNull(manyToMany.getTargetEntity());
-				
-		//set target entity in the resource model, verify context model updated
-		manyToMany.setTargetEntity("newTargetEntity");
-		assertEquals("newTargetEntity", manyToManyMapping.getSpecifiedTargetEntity());
-		assertEquals("newTargetEntity", manyToMany.getTargetEntity());
-	
-		//set target entity to null in the resource model
-		manyToMany.setTargetEntity(null);
-		assertNull(manyToManyMapping.getSpecifiedTargetEntity());
-		assertNull(manyToMany.getTargetEntity());
-	}
-	
-	public void testModifySpecifiedTargetEntity() throws Exception {
-		createTestEntityWithManyToManyMapping();
-		addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
-		
-		PersistentAttribute persistentAttribute = getJavaPersistentType().attributes().next();
-		ManyToManyMapping manyToManyMapping = (ManyToManyMapping) persistentAttribute.getMapping();
-		
-		JavaResourcePersistentType typeResource = getJpaProject().getJavaResourcePersistentType(FULLY_QUALIFIED_TYPE_NAME);
-		JavaResourcePersistentAttribute attributeResource = typeResource.persistableAttributes().next();
-		ManyToManyAnnotation manyToMany = (ManyToManyAnnotation) attributeResource.getMappingAnnotation();
-		
-		assertNull(manyToManyMapping.getSpecifiedTargetEntity());
-		assertNull(manyToMany.getTargetEntity());
-				
-		//set target entity in the context model, verify resource model updated
-		manyToManyMapping.setSpecifiedTargetEntity("newTargetEntity");
-		assertEquals("newTargetEntity", manyToManyMapping.getSpecifiedTargetEntity());
-		assertEquals("newTargetEntity", manyToMany.getTargetEntity());
-	
-		//set target entity to null in the context model
-		manyToManyMapping.setSpecifiedTargetEntity(null);
-		assertNull(manyToManyMapping.getSpecifiedTargetEntity());
-		assertNull(manyToMany.getTargetEntity());
-	}
-	
-	public void testUpdateSpecifiedFetch() throws Exception {
-		createTestEntityWithManyToManyMapping();
-		addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
-		
-		PersistentAttribute persistentAttribute = getJavaPersistentType().attributes().next();
-		ManyToManyMapping manyToManyMapping = (ManyToManyMapping) persistentAttribute.getMapping();
-		
-		JavaResourcePersistentType typeResource = getJpaProject().getJavaResourcePersistentType(FULLY_QUALIFIED_TYPE_NAME);
-		JavaResourcePersistentAttribute attributeResource = typeResource.persistableAttributes().next();
-		ManyToManyAnnotation manyToMany = (ManyToManyAnnotation) attributeResource.getMappingAnnotation();
-		
-		assertNull(manyToManyMapping.getSpecifiedFetch());
-		assertNull(manyToMany.getFetch());
-				
-		//set fetch in the resource model, verify context model updated
-		manyToMany.setFetch(org.eclipse.jpt.core.resource.java.FetchType.EAGER);
-		assertEquals(FetchType.EAGER, manyToManyMapping.getSpecifiedFetch());
-		assertEquals(org.eclipse.jpt.core.resource.java.FetchType.EAGER, manyToMany.getFetch());
-	
-		manyToMany.setFetch(org.eclipse.jpt.core.resource.java.FetchType.LAZY);
-		assertEquals(FetchType.LAZY, manyToManyMapping.getSpecifiedFetch());
-		assertEquals(org.eclipse.jpt.core.resource.java.FetchType.LAZY, manyToMany.getFetch());
-
-		
-		//set fetch to null in the resource model
-		manyToMany.setFetch(null);
-		assertNull(manyToManyMapping.getSpecifiedFetch());
-		assertNull(manyToMany.getFetch());
-	}
-	
-	public void testModifySpecifiedFetch() throws Exception {
-		createTestEntityWithManyToManyMapping();
-		addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
-		
-		PersistentAttribute persistentAttribute = getJavaPersistentType().attributes().next();
-		ManyToManyMapping manyToManyMapping = (ManyToManyMapping) persistentAttribute.getMapping();
-		
-		JavaResourcePersistentType typeResource = getJpaProject().getJavaResourcePersistentType(FULLY_QUALIFIED_TYPE_NAME);
-		JavaResourcePersistentAttribute attributeResource = typeResource.persistableAttributes().next();
-		ManyToManyAnnotation manyToMany = (ManyToManyAnnotation) attributeResource.getMappingAnnotation();
-		
-		assertNull(manyToManyMapping.getSpecifiedFetch());
-		assertNull(manyToMany.getFetch());
-				
-		//set fetch in the context model, verify resource model updated
-		manyToManyMapping.setSpecifiedFetch(FetchType.EAGER);
-		assertEquals(FetchType.EAGER, manyToManyMapping.getSpecifiedFetch());
-		assertEquals(org.eclipse.jpt.core.resource.java.FetchType.EAGER, manyToMany.getFetch());
-	
-		manyToManyMapping.setSpecifiedFetch(FetchType.LAZY);
-		assertEquals(FetchType.LAZY, manyToManyMapping.getSpecifiedFetch());
-		assertEquals(org.eclipse.jpt.core.resource.java.FetchType.LAZY, manyToMany.getFetch());
-
-		
-		//set fetch to null in the context model
-		manyToManyMapping.setSpecifiedFetch(null);
-		assertNull(manyToManyMapping.getSpecifiedFetch());
-		assertNull(manyToMany.getFetch());
-	}
-
-	public void testUpdateMappedBy() throws Exception {
-		createTestEntityWithManyToManyMapping();
-		addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
-		
-		PersistentAttribute persistentAttribute = getJavaPersistentType().attributes().next();
-		ManyToManyMapping manyToManyMapping = (ManyToManyMapping) persistentAttribute.getMapping();
-		
-		JavaResourcePersistentType typeResource = getJpaProject().getJavaResourcePersistentType(FULLY_QUALIFIED_TYPE_NAME);
-		JavaResourcePersistentAttribute attributeResource = typeResource.persistableAttributes().next();
-		ManyToManyAnnotation manyToMany = (ManyToManyAnnotation) attributeResource.getMappingAnnotation();
-		
-		assertNull(manyToManyMapping.getRelationshipReference().getMappedByJoiningStrategy().getMappedByAttribute());
-		assertNull(manyToMany.getMappedBy());
-				
-		//set mappedByJoiningStrategy in the resource model, verify context model updated
-		manyToMany.setMappedBy("newMappedBy");
-		assertEquals("newMappedBy", manyToManyMapping.getRelationshipReference().getMappedByJoiningStrategy().getMappedByAttribute());
-		assertEquals("newMappedBy", manyToMany.getMappedBy());
-	
-		//set mappedByJoiningStrategy to null in the resource model
-		manyToMany.setMappedBy(null);
-		assertNull(manyToManyMapping.getRelationshipReference().getMappedByJoiningStrategy().getMappedByAttribute());
-		assertNull(manyToMany.getMappedBy());
-	}
-	
-	public void testModifyMappedBy() throws Exception {
-		createTestEntityWithManyToManyMapping();
-		addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
-		
-		PersistentAttribute persistentAttribute = getJavaPersistentType().attributes().next();
-		ManyToManyMapping manyToManyMapping = (ManyToManyMapping) persistentAttribute.getMapping();
-		
-		JavaResourcePersistentType typeResource = getJpaProject().getJavaResourcePersistentType(FULLY_QUALIFIED_TYPE_NAME);
-		JavaResourcePersistentAttribute attributeResource = typeResource.persistableAttributes().next();
-		ManyToManyAnnotation manyToMany = (ManyToManyAnnotation) attributeResource.getMappingAnnotation();
-		
-		assertNull(manyToManyMapping.getRelationshipReference().getMappedByJoiningStrategy().getMappedByAttribute());
-		assertNull(manyToMany.getMappedBy());
-				
-		//set mappedBy in the context model, verify resource model updated
-		manyToManyMapping.getRelationshipReference().getMappedByJoiningStrategy().setMappedByAttribute("newTargetEntity");
-		assertEquals("newTargetEntity", manyToManyMapping.getRelationshipReference().getMappedByJoiningStrategy().getMappedByAttribute());
-		assertEquals("newTargetEntity", manyToMany.getMappedBy());
-	
-		//set mappedBy to null in the context model
-		manyToManyMapping.getRelationshipReference().getMappedByJoiningStrategy().setMappedByAttribute(null);
-		assertNull(manyToManyMapping.getRelationshipReference().getMappedByJoiningStrategy().getMappedByAttribute());
-		assertNull(manyToMany.getMappedBy());
-	}
-
-
-	public void testCandidateMappedByAttributeNames() throws Exception {
-		createTestEntityWithValidManyToManyMapping();
-		createTestTargetEntityAddress();
-		addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
-		addXmlClassRef(PACKAGE_NAME + ".Address");
-		
-		PersistentAttribute persistentAttribute = getJavaPersistentType().attributes().next();
-		ManyToManyMapping manyToManyMapping = (ManyToManyMapping) persistentAttribute.getMapping();
-
-		Iterator<String> attributeNames = 
-			manyToManyMapping.getRelationshipReference().getMappedByJoiningStrategy().candidateMappedByAttributeNames();
-		assertEquals("id", attributeNames.next());
-		assertEquals("city", attributeNames.next());
-		assertEquals("state", attributeNames.next());
-		assertEquals("zip", attributeNames.next());
-		assertFalse(attributeNames.hasNext());
-		
-		manyToManyMapping.setSpecifiedTargetEntity("foo");
-		attributeNames = 
-			manyToManyMapping.getRelationshipReference().getMappedByJoiningStrategy().candidateMappedByAttributeNames();
-		assertFalse(attributeNames.hasNext());
-		
-		manyToManyMapping.setSpecifiedTargetEntity(null);
-		attributeNames = 
-			manyToManyMapping.getRelationshipReference().getMappedByJoiningStrategy().candidateMappedByAttributeNames();
-		assertEquals("id", attributeNames.next());
-		assertEquals("city", attributeNames.next());
-		assertEquals("state", attributeNames.next());
-		assertEquals("zip", attributeNames.next());
-		assertFalse(attributeNames.hasNext());
-	}
-
-	public void testDefaultTargetEntity() throws Exception {
-		createTestEntityWithValidManyToManyMapping();
-		createTestTargetEntityAddress();
-		addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
-		
-		PersistentAttribute persistentAttribute = getJavaPersistentType().attributes().next();
-		ManyToManyMapping manyToManyMapping = (ManyToManyMapping) persistentAttribute.getMapping();
-
-		//targetEntity not in the persistence unit, default still set, handled by validation
-		assertEquals(PACKAGE_NAME + ".Address", manyToManyMapping.getDefaultTargetEntity());
-		
-		//add targetEntity to the persistence unit
-		addXmlClassRef(PACKAGE_NAME + ".Address");
-		assertEquals(PACKAGE_NAME + ".Address", manyToManyMapping.getDefaultTargetEntity());
-
-		//test default still the same when specified target entity it set
-		manyToManyMapping.setSpecifiedTargetEntity("foo");
-		assertEquals(PACKAGE_NAME + ".Address", manyToManyMapping.getDefaultTargetEntity());
-		
-		ListIterator<ClassRef> classRefs = getPersistenceUnit().specifiedClassRefs();
-		classRefs.next();
-		ClassRef addressClassRef = classRefs.next();
-		JavaPersistentType addressPersistentType = addressClassRef.getJavaPersistentType();
-
-		//test target is not an Entity, default target entity still exists, this case handled with validation
-		addressPersistentType.setMappingKey(MappingKeys.NULL_TYPE_MAPPING_KEY);
-		assertEquals(PACKAGE_NAME + ".Address", manyToManyMapping.getDefaultTargetEntity());
-	}
-	
-	public void testDefaultTargetEntityCollectionType() throws Exception {
-		createTestEntityWithCollectionManyToManyMapping();
-		createTestTargetEntityAddress();
-		addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
-		addXmlClassRef(PACKAGE_NAME + ".Address");
-	
-		PersistentAttribute persistentAttribute = getJavaPersistentType().attributes().next();
-		ManyToManyMapping manyToManyMapping = (ManyToManyMapping) persistentAttribute.getMapping();
-
-		assertNull(manyToManyMapping.getDefaultTargetEntity());
-	}
-	
-	public void testDefaultTargetEntityNonCollectionType() throws Exception {
-		createTestEntityWithNonCollectionManyToManyMapping();
-		createTestTargetEntityAddress();
-		addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
-		addXmlClassRef(PACKAGE_NAME + ".Address");
-	
-		PersistentAttribute persistentAttribute = getJavaPersistentType().attributes().next();
-		ManyToManyMapping manyToManyMapping = (ManyToManyMapping) persistentAttribute.getMapping();
-
-		assertNull(manyToManyMapping.getDefaultTargetEntity());
-	}
-	
-	public void testTargetEntity() throws Exception {
-		createTestEntityWithValidManyToManyMapping();
-		createTestTargetEntityAddress();
-		addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
-		
-		PersistentAttribute persistentAttribute = getJavaPersistentType().attributes().next();
-		ManyToManyMapping manyToManyMapping = (ManyToManyMapping) persistentAttribute.getMapping();
-
-		assertEquals(PACKAGE_NAME + ".Address", manyToManyMapping.getTargetEntity());
-
-		manyToManyMapping.setSpecifiedTargetEntity("foo");
-		assertEquals("foo", manyToManyMapping.getTargetEntity());
-		
-		manyToManyMapping.setSpecifiedTargetEntity(null);
-		assertEquals(PACKAGE_NAME + ".Address", manyToManyMapping.getTargetEntity());
-	}
-	
-	public void testResolvedTargetEntity() throws Exception {
-		createTestEntityWithValidManyToManyMapping();
-		addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
-		
-		PersistentAttribute persistentAttribute = getJavaPersistentType().attributes().next();
-		ManyToManyMapping manyToManyMapping = (ManyToManyMapping) persistentAttribute.getMapping();
-
-		//targetEntity not in the persistence unit
-		assertNull(manyToManyMapping.getResolvedTargetEntity());
-		
-		//add targetEntity to the persistence unit, now target entity should resolve
-		createTestTargetEntityAddress();
-		addXmlClassRef(PACKAGE_NAME + ".Address");
-		ListIterator<ClassRef> classRefs = getPersistenceUnit().specifiedClassRefs();
-		classRefs.next();
-		ClassRef addressClassRef = classRefs.next();
-		TypeMapping addressTypeMapping = addressClassRef.getJavaPersistentType().getMapping();
-		assertEquals(addressTypeMapping, manyToManyMapping.getResolvedTargetEntity());
-
-		//test default still the same when specified target entity it set
-		manyToManyMapping.setSpecifiedTargetEntity("foo");
-		assertNull(manyToManyMapping.getResolvedTargetEntity());
-		
-		
-		manyToManyMapping.setSpecifiedTargetEntity(PACKAGE_NAME + ".Address");
-		assertEquals(addressTypeMapping, manyToManyMapping.getResolvedTargetEntity());
-		
-
-		manyToManyMapping.setSpecifiedTargetEntity(null);
-		assertEquals(addressTypeMapping, manyToManyMapping.getResolvedTargetEntity());
-	}
-
-	
-	public void testUpdateMapKey() throws Exception {
-		createTestEntityWithManyToManyMapping();
-		addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
-		
-		PersistentAttribute persistentAttribute = getJavaPersistentType().attributes().next();
-		ManyToManyMapping manyToManyMapping = (ManyToManyMapping) persistentAttribute.getMapping();
-		
-		JavaResourcePersistentType typeResource = getJpaProject().getJavaResourcePersistentType(FULLY_QUALIFIED_TYPE_NAME);
-		JavaResourcePersistentAttribute attributeResource = typeResource.persistableAttributes().next();
-		
-		assertNull(manyToManyMapping.getMapKey());
-		assertNull(attributeResource.getSupportingAnnotation(MapKeyAnnotation.ANNOTATION_NAME));
-		
-		//set mapKey in the resource model, verify context model does not change
-		attributeResource.addSupportingAnnotation(MapKeyAnnotation.ANNOTATION_NAME);
-		assertNull(manyToManyMapping.getMapKey());
-		MapKeyAnnotation mapKey = (MapKeyAnnotation) attributeResource.getSupportingAnnotation(MapKeyAnnotation.ANNOTATION_NAME);
-		assertNotNull(mapKey);
-				
-		//set mapKey name in the resource model, verify context model updated
-		mapKey.setName("myMapKey");
-		assertEquals("myMapKey", manyToManyMapping.getMapKey());
-		assertEquals("myMapKey", mapKey.getName());
-		
-		//set mapKey name to null in the resource model
-		mapKey.setName(null);
-		assertNull(manyToManyMapping.getMapKey());
-		assertNull(mapKey.getName());
-		
-		mapKey.setName("myMapKey");
-		attributeResource.removeSupportingAnnotation(MapKeyAnnotation.ANNOTATION_NAME);
-		assertNull(manyToManyMapping.getMapKey());
-		assertNull(attributeResource.getSupportingAnnotation(MapKeyAnnotation.ANNOTATION_NAME));
-	}
-	
-	public void testModifyMapKey() throws Exception {
-		createTestEntityWithManyToManyMapping();
-		addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
-		
-		PersistentAttribute persistentAttribute = getJavaPersistentType().attributes().next();
-		ManyToManyMapping manyToManyMapping = (ManyToManyMapping) persistentAttribute.getMapping();
-		
-		JavaResourcePersistentType typeResource = getJpaProject().getJavaResourcePersistentType(FULLY_QUALIFIED_TYPE_NAME);
-		JavaResourcePersistentAttribute attributeResource = typeResource.persistableAttributes().next();
-		
-		assertNull(manyToManyMapping.getMapKey());
-		assertNull(attributeResource.getSupportingAnnotation(MapKeyAnnotation.ANNOTATION_NAME));
-					
-		//set mapKey  in the context model, verify resource model updated
-		manyToManyMapping.setMapKey("myMapKey");
-		MapKeyAnnotation mapKey = (MapKeyAnnotation) attributeResource.getSupportingAnnotation(MapKeyAnnotation.ANNOTATION_NAME);
-		assertEquals("myMapKey", manyToManyMapping.getMapKey());
-		assertEquals("myMapKey", mapKey.getName());
-	
-		//set mapKey to null in the context model
-		manyToManyMapping.setMapKey(null);
-		assertNull(manyToManyMapping.getMapKey());
-		assertNull(attributeResource.getSupportingAnnotation(MapKeyAnnotation.ANNOTATION_NAME));
-	}
-
-	public void testUpdateOrderBy() throws Exception {
-		createTestEntityWithManyToManyMapping();
-		addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
-		
-		PersistentAttribute persistentAttribute = getJavaPersistentType().attributes().next();
-		ManyToManyMapping manyToManyMapping = (ManyToManyMapping) persistentAttribute.getMapping();
-		
-		JavaResourcePersistentType typeResource = getJpaProject().getJavaResourcePersistentType(FULLY_QUALIFIED_TYPE_NAME);
-		JavaResourcePersistentAttribute attributeResource = typeResource.persistableAttributes().next();
-		
-		assertNull(manyToManyMapping.getOrderBy());
-		assertNull(attributeResource.getSupportingAnnotation(OrderByAnnotation.ANNOTATION_NAME));
-				
-		//set orderBy in the resource model, verify context model updated
-		attributeResource.addSupportingAnnotation(OrderByAnnotation.ANNOTATION_NAME);
-		OrderByAnnotation orderBy = (OrderByAnnotation) attributeResource.getSupportingAnnotation(OrderByAnnotation.ANNOTATION_NAME);
-		orderBy.setValue("newOrderBy");
-		assertEquals("newOrderBy", manyToManyMapping.getOrderBy());
-		assertEquals("newOrderBy", orderBy.getValue());
-	
-		//set orderBy to null in the resource model
-		attributeResource.removeSupportingAnnotation(OrderByAnnotation.ANNOTATION_NAME);
-		assertNull(manyToManyMapping.getOrderBy());
-		assertNull(attributeResource.getSupportingAnnotation(OrderByAnnotation.ANNOTATION_NAME));
-	}
-	
-	public void testModifyOrderBy() throws Exception {
-		createTestEntityWithManyToManyMapping();
-		addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
-		
-		PersistentAttribute persistentAttribute = getJavaPersistentType().attributes().next();
-		ManyToManyMapping manyToManyMapping = (ManyToManyMapping) persistentAttribute.getMapping();
-		
-		JavaResourcePersistentType typeResource = getJpaProject().getJavaResourcePersistentType(FULLY_QUALIFIED_TYPE_NAME);
-		JavaResourcePersistentAttribute attributeResource = typeResource.persistableAttributes().next();
-		
-		assertNull(manyToManyMapping.getOrderBy());
-		assertNull(attributeResource.getSupportingAnnotation(OrderByAnnotation.ANNOTATION_NAME));
-				
-		//set mappedBy in the context model, verify resource model updated
-		manyToManyMapping.setOrderBy("newOrderBy");
-		assertEquals("newOrderBy", manyToManyMapping.getOrderBy());
-		OrderByAnnotation orderBy = (OrderByAnnotation) attributeResource.getSupportingAnnotation(OrderByAnnotation.ANNOTATION_NAME);
-		assertEquals("newOrderBy", orderBy.getValue());
-	
-		//set mappedBy to null in the context model
-		manyToManyMapping.setOrderBy(null);
-		assertNull(manyToManyMapping.getOrderBy());
-		assertNull(attributeResource.getSupportingAnnotation(OrderByAnnotation.ANNOTATION_NAME));
-	}
-	
-	public void testUpdateNoOrdering()  throws Exception {
-		createTestEntityWithManyToManyMapping();
-		addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
-		
-		PersistentAttribute persistentAttribute = getJavaPersistentType().attributes().next();
-		ManyToManyMapping manyToManyMapping = (ManyToManyMapping) persistentAttribute.getMapping();
-		
-		JavaResourcePersistentType typeResource = getJpaProject().getJavaResourcePersistentType(FULLY_QUALIFIED_TYPE_NAME);
-		JavaResourcePersistentAttribute attributeResource = typeResource.persistableAttributes().next();
-		
-		assertTrue(manyToManyMapping.isNoOrdering());
-		assertNull(attributeResource.getSupportingAnnotation(OrderByAnnotation.ANNOTATION_NAME));
-				
-		//set orderBy in the resource model, verify context model updated
-		attributeResource.addSupportingAnnotation(OrderByAnnotation.ANNOTATION_NAME);
-		assertFalse(manyToManyMapping.isNoOrdering());
-		
-		OrderByAnnotation orderBy = (OrderByAnnotation) attributeResource.getSupportingAnnotation(OrderByAnnotation.ANNOTATION_NAME);
-		orderBy.setValue("newOrderBy");
-		assertFalse(manyToManyMapping.isNoOrdering());
-	
-		//set orderBy to null in the resource model
-		attributeResource.removeSupportingAnnotation(OrderByAnnotation.ANNOTATION_NAME);
-		assertTrue(manyToManyMapping.isNoOrdering());
-		assertNull(attributeResource.getSupportingAnnotation(OrderByAnnotation.ANNOTATION_NAME));
-	}
-	
-	public void testModifyNoOrdering() throws Exception {
-		createTestEntityWithManyToManyMapping();
-		addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
-		
-		PersistentAttribute persistentAttribute = getJavaPersistentType().attributes().next();
-		ManyToManyMapping manyToManyMapping = (ManyToManyMapping) persistentAttribute.getMapping();
-		
-		JavaResourcePersistentType typeResource = getJpaProject().getJavaResourcePersistentType(FULLY_QUALIFIED_TYPE_NAME);
-		JavaResourcePersistentAttribute attributeResource = typeResource.persistableAttributes().next();
-		
-		assertTrue(manyToManyMapping.isNoOrdering());
-		assertNull(attributeResource.getSupportingAnnotation(OrderByAnnotation.ANNOTATION_NAME));
-				
-//		manyToManyMapping.setNoOrdering(false); //this does nothing
-//		//set mappedBy in the context model, verify resource model updated
-//		manyToManyMapping.setOrderBy("newOrderBy");
-//		assertEquals("newOrderBy", manyToManyMapping.getOrderBy());
-//		OrderBy orderBy = (OrderBy) attributeResource.annotation(OrderBy.ANNOTATION_NAME);
-//		assertEquals("newOrderBy", orderBy.getValue());
-//	
-//		//set mappedBy to null in the context model
-//		manyToManyMapping.setOrderBy(null);
-//		assertNull(manyToManyMapping.getOrderBy());
-//		assertNull(attributeResource.annotation(OrderBy.ANNOTATION_NAME));		
-	}
-	
-	public void testUpdatePkOrdering() throws Exception {
-		createTestEntityWithManyToManyMapping();
-		addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
-		
-		PersistentAttribute persistentAttribute = getJavaPersistentType().attributes().next();
-		ManyToManyMapping manyToManyMapping = (ManyToManyMapping) persistentAttribute.getMapping();
-		
-		JavaResourcePersistentType typeResource = getJpaProject().getJavaResourcePersistentType(FULLY_QUALIFIED_TYPE_NAME);
-		JavaResourcePersistentAttribute attributeResource = typeResource.persistableAttributes().next();
-		
-		assertFalse(manyToManyMapping.isPkOrdering());
-		assertNull(attributeResource.getSupportingAnnotation(OrderByAnnotation.ANNOTATION_NAME));
-				
-		//set orderBy in the resource model, verify context model updated
-		attributeResource.addSupportingAnnotation(OrderByAnnotation.ANNOTATION_NAME);
-		assertTrue(manyToManyMapping.isPkOrdering());
-		
-		OrderByAnnotation orderBy = (OrderByAnnotation) attributeResource.getSupportingAnnotation(OrderByAnnotation.ANNOTATION_NAME);
-		orderBy.setValue("newOrderBy");
-		assertFalse(manyToManyMapping.isPkOrdering());
-	
-		//set orderBy to null in the resource model
-		attributeResource.removeSupportingAnnotation(OrderByAnnotation.ANNOTATION_NAME);
-		assertFalse(manyToManyMapping.isPkOrdering());
-		assertNull(attributeResource.getSupportingAnnotation(OrderByAnnotation.ANNOTATION_NAME));
-	}
-
-	public void testUpdateCustomOrdering()  throws Exception {
-		createTestEntityWithManyToManyMapping();
-		addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
-		
-		PersistentAttribute persistentAttribute = getJavaPersistentType().attributes().next();
-		ManyToManyMapping manyToManyMapping = (ManyToManyMapping) persistentAttribute.getMapping();
-		
-		JavaResourcePersistentType typeResource = getJpaProject().getJavaResourcePersistentType(FULLY_QUALIFIED_TYPE_NAME);
-		JavaResourcePersistentAttribute attributeResource = typeResource.persistableAttributes().next();
-		
-		assertFalse(manyToManyMapping.isCustomOrdering());
-		assertNull(attributeResource.getSupportingAnnotation(OrderByAnnotation.ANNOTATION_NAME));
-				
-		//set orderBy in the resource model, verify context model updated
-		attributeResource.addSupportingAnnotation(OrderByAnnotation.ANNOTATION_NAME);
-		assertFalse(manyToManyMapping.isCustomOrdering());
-		
-		OrderByAnnotation orderBy = (OrderByAnnotation) attributeResource.getSupportingAnnotation(OrderByAnnotation.ANNOTATION_NAME);
-		orderBy.setValue("newOrderBy");
-		assertTrue(manyToManyMapping.isCustomOrdering());
-	
-		//set orderBy to null in the resource model
-		attributeResource.removeSupportingAnnotation(OrderByAnnotation.ANNOTATION_NAME);
-		assertFalse(manyToManyMapping.isCustomOrdering());
-		assertNull(attributeResource.getSupportingAnnotation(OrderByAnnotation.ANNOTATION_NAME));
-	}
-	
-	public void testDefaultTargetEntityForMap() throws Exception {
-		createTestEmployee();
-		createTestDepartment();
-		addXmlClassRef(PACKAGE_NAME + ".Department");
-		addXmlClassRef(PACKAGE_NAME + ".Employee");
-		
-		JavaPersistentType departmentPersistentType = getJavaPersistentType();
-		ManyToManyMapping employeesMapping = (ManyToManyMapping) departmentPersistentType.getAttributeNamed("employees").getSpecifiedMapping();
-		assertEquals(PACKAGE_NAME + ".Employee", employeesMapping.getTargetEntity());
-	}
-}
diff --git a/jpa/tests/org.eclipse.jpt.core.tests/src/org/eclipse/jpt/core/tests/internal/context/java/JavaManyToOneMappingTests.java b/jpa/tests/org.eclipse.jpt.core.tests/src/org/eclipse/jpt/core/tests/internal/context/java/JavaManyToOneMappingTests.java
deleted file mode 100644
index 86060f5..0000000
--- a/jpa/tests/org.eclipse.jpt.core.tests/src/org/eclipse/jpt/core/tests/internal/context/java/JavaManyToOneMappingTests.java
+++ /dev/null
@@ -1,904 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2008 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.core.tests.internal.context.java;
-
-import java.util.Iterator;
-import java.util.ListIterator;
-import org.eclipse.jdt.core.ICompilationUnit;
-import org.eclipse.jpt.core.MappingKeys;
-import org.eclipse.jpt.core.context.BasicMapping;
-import org.eclipse.jpt.core.context.EmbeddedIdMapping;
-import org.eclipse.jpt.core.context.EmbeddedMapping;
-import org.eclipse.jpt.core.context.IdMapping;
-import org.eclipse.jpt.core.context.JoinColumn;
-import org.eclipse.jpt.core.context.JoinColumnJoiningStrategy;
-import org.eclipse.jpt.core.context.ManyToManyMapping;
-import org.eclipse.jpt.core.context.ManyToOneMapping;
-import org.eclipse.jpt.core.context.OneToManyMapping;
-import org.eclipse.jpt.core.context.OneToOneMapping;
-import org.eclipse.jpt.core.context.PersistentAttribute;
-import org.eclipse.jpt.core.context.TransientMapping;
-import org.eclipse.jpt.core.context.TypeMapping;
-import org.eclipse.jpt.core.context.VersionMapping;
-import org.eclipse.jpt.core.context.java.JavaPersistentType;
-import org.eclipse.jpt.core.context.persistence.ClassRef;
-import org.eclipse.jpt.core.resource.java.BasicAnnotation;
-import org.eclipse.jpt.core.resource.java.EmbeddedAnnotation;
-import org.eclipse.jpt.core.resource.java.EmbeddedIdAnnotation;
-import org.eclipse.jpt.core.resource.java.IdAnnotation;
-import org.eclipse.jpt.core.resource.java.JPA;
-import org.eclipse.jpt.core.resource.java.JavaResourcePersistentAttribute;
-import org.eclipse.jpt.core.resource.java.JavaResourcePersistentType;
-import org.eclipse.jpt.core.resource.java.JoinColumnAnnotation;
-import org.eclipse.jpt.core.resource.java.JoinColumnsAnnotation;
-import org.eclipse.jpt.core.resource.java.ManyToManyAnnotation;
-import org.eclipse.jpt.core.resource.java.ManyToOneAnnotation;
-import org.eclipse.jpt.core.resource.java.NestableAnnotation;
-import org.eclipse.jpt.core.resource.java.OneToManyAnnotation;
-import org.eclipse.jpt.core.resource.java.OneToOneAnnotation;
-import org.eclipse.jpt.core.resource.java.TransientAnnotation;
-import org.eclipse.jpt.core.resource.java.VersionAnnotation;
-import org.eclipse.jpt.core.tests.internal.context.ContextModelTestCase;
-import org.eclipse.jpt.core.tests.internal.projects.TestJavaProject.SourceWriter;
-import org.eclipse.jpt.utility.internal.CollectionTools;
-import org.eclipse.jpt.utility.internal.iterators.ArrayIterator;
-
-@SuppressWarnings("nls")
-public class JavaManyToOneMappingTests extends ContextModelTestCase
-{
-
-	private void createTestTargetEntityAddress() throws Exception {
-		SourceWriter sourceWriter = new SourceWriter() {
-			public void appendSourceTo(StringBuilder sb) {
-				sb.append(CR);
-					sb.append("import ");
-					sb.append(JPA.ENTITY);
-					sb.append(";");
-					sb.append(CR);
-					sb.append("import ");
-					sb.append(JPA.ID);
-					sb.append(";");
-					sb.append(CR);
-				sb.append("@Entity");
-				sb.append(CR);
-				sb.append("public class ").append("Address").append(" ");
-				sb.append("{").append(CR);
-				sb.append(CR);
-				sb.append("    @Id").append(CR);
-				sb.append("    private int id;").append(CR);
-				sb.append(CR);
-				sb.append("    private String city;").append(CR);
-				sb.append(CR);
-				sb.append("    private String state;").append(CR);
-				sb.append(CR);
-				sb.append("    private int zip;").append(CR);
-				sb.append(CR);
-				sb.append("}").append(CR);
-		}
-		};
-		this.javaProject.createCompilationUnit(PACKAGE_NAME, "Address.java", sourceWriter);
-	}
-
-	private ICompilationUnit createTestEntityWithManyToOneMapping() throws Exception {
-		return this.createTestType(new DefaultAnnotationWriter() {
-			@Override
-			public Iterator<String> imports() {
-				return new ArrayIterator<String>(JPA.ENTITY, JPA.MANY_TO_ONE);
-			}
-			@Override
-			public void appendTypeAnnotationTo(StringBuilder sb) {
-				sb.append("@Entity").append(CR);
-			}
-			
-			@Override
-			public void appendIdFieldAnnotationTo(StringBuilder sb) {
-				sb.append("@ManyToOne").append(CR);
-			}
-		});
-	}
-	
-	private ICompilationUnit createTestEntityWithValidManyToOneMapping() throws Exception {
-		return this.createTestType(new DefaultAnnotationWriter() {
-			@Override
-			public Iterator<String> imports() {
-				return new ArrayIterator<String>(JPA.ENTITY, JPA.MANY_TO_ONE, JPA.ID);
-			}
-			@Override
-			public void appendTypeAnnotationTo(StringBuilder sb) {
-				sb.append("@Entity").append(CR);
-			}
-			
-			@Override
-			public void appendIdFieldAnnotationTo(StringBuilder sb) {
-				sb.append(CR);
-				sb.append("    @ManyToOne").append(CR);				
-				sb.append("    private Address address;").append(CR);
-				sb.append(CR);
-				sb.append("    @Id").append(CR);				
-			}
-		});
-	}
-	
-	private ICompilationUnit createTestEntityWithCollectionManyToOneMapping() throws Exception {
-		return this.createTestType(new DefaultAnnotationWriter() {
-			@Override
-			public Iterator<String> imports() {
-				return new ArrayIterator<String>(JPA.ENTITY, JPA.MANY_TO_ONE, JPA.ID, "java.util.Collection");
-			}
-			@Override
-			public void appendTypeAnnotationTo(StringBuilder sb) {
-				sb.append("@Entity").append(CR);
-			}
-			
-			@Override
-			public void appendIdFieldAnnotationTo(StringBuilder sb) {
-				sb.append(CR);
-				sb.append("    @ManyToOne").append(CR);				
-				sb.append("    private Collection address;").append(CR);
-				sb.append(CR);
-				sb.append("    @Id").append(CR);				
-			}
-		});
-	}
-	
-	private ICompilationUnit createTestEntityWithGenericizedCollectionManyToOneMapping() throws Exception {
-		return this.createTestType(new DefaultAnnotationWriter() {
-			@Override
-			public Iterator<String> imports() {
-				return new ArrayIterator<String>(JPA.ENTITY, JPA.MANY_TO_ONE, JPA.ID, "java.util.Collection");
-			}
-			@Override
-			public void appendTypeAnnotationTo(StringBuilder sb) {
-				sb.append("@Entity").append(CR);
-			}
-			
-			@Override
-			public void appendIdFieldAnnotationTo(StringBuilder sb) {
-				sb.append(CR);
-				sb.append("    @ManyToOne").append(CR);				
-				sb.append("    private Collection<Address> address;").append(CR);
-				sb.append(CR);
-				sb.append("    @Id").append(CR);				
-			}
-		});
-	}
-
-	public JavaManyToOneMappingTests(String name) {
-		super(name);
-	}
-	
-	public void testMorphToBasicMapping() throws Exception {
-		createTestEntityWithManyToOneMapping();
-		addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
-		
-		PersistentAttribute persistentAttribute = getJavaPersistentType().attributes().next();
-		ManyToOneMapping manyToOneMapping = (ManyToOneMapping) persistentAttribute.getMapping();
-		JoinColumnJoiningStrategy joinColumns = manyToOneMapping.getRelationshipReference().getJoinColumnJoiningStrategy();
-		joinColumns.addSpecifiedJoinColumn(0);
-		assertFalse(manyToOneMapping.isDefault());
-		
-		persistentAttribute.setSpecifiedMappingKey(MappingKeys.BASIC_ATTRIBUTE_MAPPING_KEY);
-		assertTrue(persistentAttribute.getMapping() instanceof BasicMapping);
-		assertFalse(persistentAttribute.getMapping().isDefault());
-		
-		JavaResourcePersistentType typeResource = getJpaProject().getJavaResourcePersistentType(FULLY_QUALIFIED_TYPE_NAME);
-		JavaResourcePersistentAttribute attributeResource = typeResource.persistableAttributes().next();
-		assertNull(attributeResource.getMappingAnnotation(ManyToOneAnnotation.ANNOTATION_NAME));
-		assertNotNull(attributeResource.getMappingAnnotation(BasicAnnotation.ANNOTATION_NAME));
-		assertNull(attributeResource.getSupportingAnnotation(JoinColumnAnnotation.ANNOTATION_NAME));
-	}
-	
-	public void testMorphToDefault() throws Exception {
-		createTestEntityWithManyToOneMapping();
-		addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
-		
-		PersistentAttribute persistentAttribute = getJavaPersistentType().attributes().next();
-		ManyToOneMapping manyToOneMapping = (ManyToOneMapping) persistentAttribute.getMapping();
-		JoinColumnJoiningStrategy joinColumns = manyToOneMapping.getRelationshipReference().getJoinColumnJoiningStrategy();
-		joinColumns.addSpecifiedJoinColumn(0);
-		assertFalse(manyToOneMapping.isDefault());
-		
-		persistentAttribute.setSpecifiedMappingKey(MappingKeys.NULL_ATTRIBUTE_MAPPING_KEY);
-		assertNull(persistentAttribute.getSpecifiedMapping());
-		assertTrue(persistentAttribute.getMapping().isDefault());
-	
-		JavaResourcePersistentType typeResource = getJpaProject().getJavaResourcePersistentType(FULLY_QUALIFIED_TYPE_NAME);
-		JavaResourcePersistentAttribute attributeResource = typeResource.persistableAttributes().next();
-		assertNull(attributeResource.getMappingAnnotation(ManyToOneAnnotation.ANNOTATION_NAME));
-		assertNull(attributeResource.getSupportingAnnotation(JoinColumnAnnotation.ANNOTATION_NAME));
-	}
-	
-	public void testMorphToVersionMapping() throws Exception {
-		createTestEntityWithManyToOneMapping();
-		addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
-		
-		PersistentAttribute persistentAttribute = getJavaPersistentType().attributes().next();
-		ManyToOneMapping manyToOneMapping = (ManyToOneMapping) persistentAttribute.getMapping();
-		JoinColumnJoiningStrategy joinColumns = manyToOneMapping.getRelationshipReference().getJoinColumnJoiningStrategy();
-		joinColumns.addSpecifiedJoinColumn(0);
-		assertFalse(manyToOneMapping.isDefault());
-		
-		persistentAttribute.setSpecifiedMappingKey(MappingKeys.VERSION_ATTRIBUTE_MAPPING_KEY);
-		assertTrue(persistentAttribute.getMapping() instanceof VersionMapping);
-		assertFalse(persistentAttribute.getMapping().isDefault());
-		
-		JavaResourcePersistentType typeResource = getJpaProject().getJavaResourcePersistentType(FULLY_QUALIFIED_TYPE_NAME);
-		JavaResourcePersistentAttribute attributeResource = typeResource.persistableAttributes().next();
-		assertNull(attributeResource.getMappingAnnotation(ManyToOneAnnotation.ANNOTATION_NAME));
-		assertNotNull(attributeResource.getMappingAnnotation(VersionAnnotation.ANNOTATION_NAME));
-		assertNull(attributeResource.getSupportingAnnotation(JoinColumnAnnotation.ANNOTATION_NAME));
-	}
-	
-	public void testMorphToIdMapping() throws Exception {
-		createTestEntityWithManyToOneMapping();
-		addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
-		
-		PersistentAttribute persistentAttribute = getJavaPersistentType().attributes().next();
-		ManyToOneMapping manyToOneMapping = (ManyToOneMapping) persistentAttribute.getMapping();
-		JoinColumnJoiningStrategy joinColumns = manyToOneMapping.getRelationshipReference().getJoinColumnJoiningStrategy();
-		joinColumns.addSpecifiedJoinColumn(0);
-		assertFalse(manyToOneMapping.isDefault());
-		
-		persistentAttribute.setSpecifiedMappingKey(MappingKeys.ID_ATTRIBUTE_MAPPING_KEY);
-		assertTrue(persistentAttribute.getMapping() instanceof IdMapping);
-		assertFalse(persistentAttribute.getMapping().isDefault());
-		
-		JavaResourcePersistentType typeResource = getJpaProject().getJavaResourcePersistentType(FULLY_QUALIFIED_TYPE_NAME);
-		JavaResourcePersistentAttribute attributeResource = typeResource.persistableAttributes().next();
-		assertNull(attributeResource.getMappingAnnotation(ManyToOneAnnotation.ANNOTATION_NAME));
-		assertNotNull(attributeResource.getMappingAnnotation(IdAnnotation.ANNOTATION_NAME));
-		assertNull(attributeResource.getSupportingAnnotation(JoinColumnAnnotation.ANNOTATION_NAME));
-	}
-	
-	public void testMorphToEmbeddedMapping() throws Exception {
-		createTestEntityWithManyToOneMapping();
-		addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
-		
-		PersistentAttribute persistentAttribute = getJavaPersistentType().attributes().next();
-		ManyToOneMapping manyToOneMapping = (ManyToOneMapping) persistentAttribute.getMapping();
-		JoinColumnJoiningStrategy joinColumns = manyToOneMapping.getRelationshipReference().getJoinColumnJoiningStrategy();
-		joinColumns.addSpecifiedJoinColumn(0);
-		assertFalse(manyToOneMapping.isDefault());
-		
-		persistentAttribute.setSpecifiedMappingKey(MappingKeys.EMBEDDED_ATTRIBUTE_MAPPING_KEY);
-		assertTrue(persistentAttribute.getMapping() instanceof EmbeddedMapping);
-		assertFalse(persistentAttribute.getMapping().isDefault());
-		
-		JavaResourcePersistentType typeResource = getJpaProject().getJavaResourcePersistentType(FULLY_QUALIFIED_TYPE_NAME);
-		JavaResourcePersistentAttribute attributeResource = typeResource.persistableAttributes().next();
-		assertNull(attributeResource.getMappingAnnotation(ManyToOneAnnotation.ANNOTATION_NAME));
-		assertNotNull(attributeResource.getMappingAnnotation(EmbeddedAnnotation.ANNOTATION_NAME));
-		assertNull(attributeResource.getSupportingAnnotation(JoinColumnAnnotation.ANNOTATION_NAME));
-	}
-	
-	public void testMorphToEmbeddedIdMapping() throws Exception {
-		createTestEntityWithManyToOneMapping();
-		addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
-		
-		PersistentAttribute persistentAttribute = getJavaPersistentType().attributes().next();
-		ManyToOneMapping manyToOneMapping = (ManyToOneMapping) persistentAttribute.getMapping();
-		JoinColumnJoiningStrategy joinColumns = manyToOneMapping.getRelationshipReference().getJoinColumnJoiningStrategy();
-		joinColumns.addSpecifiedJoinColumn(0);
-		assertFalse(manyToOneMapping.isDefault());
-		
-		persistentAttribute.setSpecifiedMappingKey(MappingKeys.EMBEDDED_ID_ATTRIBUTE_MAPPING_KEY);
-		assertTrue(persistentAttribute.getMapping() instanceof EmbeddedIdMapping);
-		assertFalse(persistentAttribute.getMapping().isDefault());
-		
-		JavaResourcePersistentType typeResource = getJpaProject().getJavaResourcePersistentType(FULLY_QUALIFIED_TYPE_NAME);
-		JavaResourcePersistentAttribute attributeResource = typeResource.persistableAttributes().next();
-		assertNull(attributeResource.getMappingAnnotation(ManyToOneAnnotation.ANNOTATION_NAME));
-		assertNotNull(attributeResource.getMappingAnnotation(EmbeddedIdAnnotation.ANNOTATION_NAME));
-		assertNull(attributeResource.getSupportingAnnotation(JoinColumnAnnotation.ANNOTATION_NAME));
-	}
-	
-	public void testMorphToTransientMapping() throws Exception {
-		createTestEntityWithManyToOneMapping();
-		addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
-		
-		PersistentAttribute persistentAttribute = getJavaPersistentType().attributes().next();
-		ManyToOneMapping manyToOneMapping = (ManyToOneMapping) persistentAttribute.getMapping();
-		JoinColumnJoiningStrategy joinColumns = manyToOneMapping.getRelationshipReference().getJoinColumnJoiningStrategy();
-		joinColumns.addSpecifiedJoinColumn(0);
-		assertFalse(manyToOneMapping.isDefault());
-		
-		persistentAttribute.setSpecifiedMappingKey(MappingKeys.TRANSIENT_ATTRIBUTE_MAPPING_KEY);
-		assertTrue(persistentAttribute.getMapping() instanceof TransientMapping);
-		assertFalse(persistentAttribute.getMapping().isDefault());
-		
-		JavaResourcePersistentType typeResource = getJpaProject().getJavaResourcePersistentType(FULLY_QUALIFIED_TYPE_NAME);
-		JavaResourcePersistentAttribute attributeResource = typeResource.persistableAttributes().next();
-		assertNull(attributeResource.getMappingAnnotation(ManyToOneAnnotation.ANNOTATION_NAME));
-		assertNotNull(attributeResource.getMappingAnnotation(TransientAnnotation.ANNOTATION_NAME));
-		assertNull(attributeResource.getSupportingAnnotation(JoinColumnAnnotation.ANNOTATION_NAME));
-	}
-	
-	public void testMorphToOneToOneMapping() throws Exception {
-		createTestEntityWithManyToOneMapping();
-		addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
-		
-		PersistentAttribute persistentAttribute = getJavaPersistentType().attributes().next();
-		ManyToOneMapping manyToOneMapping = (ManyToOneMapping) persistentAttribute.getMapping();
-		JoinColumnJoiningStrategy joinColumns = manyToOneMapping.getRelationshipReference().getJoinColumnJoiningStrategy();
-		joinColumns.addSpecifiedJoinColumn(0);
-		assertFalse(manyToOneMapping.isDefault());
-		
-		persistentAttribute.setSpecifiedMappingKey(MappingKeys.ONE_TO_ONE_ATTRIBUTE_MAPPING_KEY);
-		assertTrue(persistentAttribute.getMapping() instanceof OneToOneMapping);
-		assertFalse(persistentAttribute.getMapping().isDefault());
-		
-		JavaResourcePersistentType typeResource = getJpaProject().getJavaResourcePersistentType(FULLY_QUALIFIED_TYPE_NAME);
-		JavaResourcePersistentAttribute attributeResource = typeResource.persistableAttributes().next();
-		assertNull(attributeResource.getMappingAnnotation(ManyToOneAnnotation.ANNOTATION_NAME));
-		assertNotNull(attributeResource.getMappingAnnotation(OneToOneAnnotation.ANNOTATION_NAME));
-		assertNotNull(attributeResource.getSupportingAnnotation(JoinColumnAnnotation.ANNOTATION_NAME));
-	}
-	
-	public void testMorphToOneToManyMapping() throws Exception {
-		createTestEntityWithManyToOneMapping();
-		addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
-		
-		PersistentAttribute persistentAttribute = getJavaPersistentType().attributes().next();
-		ManyToOneMapping manyToOneMapping = (ManyToOneMapping) persistentAttribute.getMapping();
-		JoinColumnJoiningStrategy joinColumns = manyToOneMapping.getRelationshipReference().getJoinColumnJoiningStrategy();
-		joinColumns.addSpecifiedJoinColumn(0);
-		assertFalse(manyToOneMapping.isDefault());
-		
-		persistentAttribute.setSpecifiedMappingKey(MappingKeys.ONE_TO_MANY_ATTRIBUTE_MAPPING_KEY);
-		assertTrue(persistentAttribute.getMapping() instanceof OneToManyMapping);
-		assertFalse(persistentAttribute.getMapping().isDefault());
-		
-		JavaResourcePersistentType typeResource = getJpaProject().getJavaResourcePersistentType(FULLY_QUALIFIED_TYPE_NAME);
-		JavaResourcePersistentAttribute attributeResource = typeResource.persistableAttributes().next();
-		assertNull(attributeResource.getMappingAnnotation(ManyToOneAnnotation.ANNOTATION_NAME));
-		assertNotNull(attributeResource.getMappingAnnotation(OneToManyAnnotation.ANNOTATION_NAME));
-		assertNotNull(attributeResource.getSupportingAnnotation(JoinColumnAnnotation.ANNOTATION_NAME));
-	}
-	
-	public void testMorphToManyToManyMapping() throws Exception {
-		createTestEntityWithManyToOneMapping();
-		addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
-		
-		PersistentAttribute persistentAttribute = getJavaPersistentType().attributes().next();
-		ManyToOneMapping manyToOneMapping = (ManyToOneMapping) persistentAttribute.getMapping();
-		JoinColumnJoiningStrategy joinColumns = manyToOneMapping.getRelationshipReference().getJoinColumnJoiningStrategy();
-		joinColumns.addSpecifiedJoinColumn(0);
-		assertFalse(manyToOneMapping.isDefault());
-		
-		persistentAttribute.setSpecifiedMappingKey(MappingKeys.MANY_TO_MANY_ATTRIBUTE_MAPPING_KEY);
-		assertTrue(persistentAttribute.getMapping() instanceof ManyToManyMapping);
-		assertFalse(persistentAttribute.getMapping().isDefault());
-		
-		JavaResourcePersistentType typeResource = getJpaProject().getJavaResourcePersistentType(FULLY_QUALIFIED_TYPE_NAME);
-		JavaResourcePersistentAttribute attributeResource = typeResource.persistableAttributes().next();
-		assertNull(attributeResource.getMappingAnnotation(ManyToOneAnnotation.ANNOTATION_NAME));
-		assertNotNull(attributeResource.getMappingAnnotation(ManyToManyAnnotation.ANNOTATION_NAME));
-		assertNull(attributeResource.getSupportingAnnotation(JoinColumnAnnotation.ANNOTATION_NAME));
-	}
-	
-	public void testUpdateSpecifiedTargetEntity() throws Exception {
-		createTestEntityWithManyToOneMapping();
-		addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
-		
-		PersistentAttribute persistentAttribute = getJavaPersistentType().attributes().next();
-		ManyToOneMapping manyToOneMapping = (ManyToOneMapping) persistentAttribute.getMapping();
-		
-		JavaResourcePersistentType typeResource = getJpaProject().getJavaResourcePersistentType(FULLY_QUALIFIED_TYPE_NAME);
-		JavaResourcePersistentAttribute attributeResource = typeResource.persistableAttributes().next();
-		ManyToOneAnnotation manyToOne = (ManyToOneAnnotation) attributeResource.getMappingAnnotation();
-		
-		assertNull(manyToOneMapping.getSpecifiedTargetEntity());
-		assertNull(manyToOne.getTargetEntity());
-				
-		//set target entity in the resource model, verify context model updated
-		manyToOne.setTargetEntity("newTargetEntity");
-		assertEquals("newTargetEntity", manyToOneMapping.getSpecifiedTargetEntity());
-		assertEquals("newTargetEntity", manyToOne.getTargetEntity());
-	
-		//set target entity to null in the resource model
-		manyToOne.setTargetEntity(null);
-		assertNull(manyToOneMapping.getSpecifiedTargetEntity());
-		assertNull(manyToOne.getTargetEntity());
-	}
-	
-	public void testModifySpecifiedTargetEntity() throws Exception {
-		createTestEntityWithManyToOneMapping();
-		addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
-		
-		PersistentAttribute persistentAttribute = getJavaPersistentType().attributes().next();
-		ManyToOneMapping manyToOneMapping = (ManyToOneMapping) persistentAttribute.getMapping();
-		
-		JavaResourcePersistentType typeResource = getJpaProject().getJavaResourcePersistentType(FULLY_QUALIFIED_TYPE_NAME);
-		JavaResourcePersistentAttribute attributeResource = typeResource.persistableAttributes().next();
-		ManyToOneAnnotation manyToOne = (ManyToOneAnnotation) attributeResource.getMappingAnnotation();
-		
-		assertNull(manyToOneMapping.getSpecifiedTargetEntity());
-		assertNull(manyToOne.getTargetEntity());
-				
-		//set target entity in the context model, verify resource model updated
-		manyToOneMapping.setSpecifiedTargetEntity("newTargetEntity");
-		assertEquals("newTargetEntity", manyToOneMapping.getSpecifiedTargetEntity());
-		assertEquals("newTargetEntity", manyToOne.getTargetEntity());
-	
-		//set target entity to null in the context model
-		manyToOneMapping.setSpecifiedTargetEntity(null);
-		assertNull(manyToOneMapping.getSpecifiedTargetEntity());
-		assertNull(manyToOne.getTargetEntity());
-	}
-	
-	public void testUpdateSpecifiedOptional() throws Exception {
-		createTestEntityWithManyToOneMapping();
-		addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
-		
-		PersistentAttribute persistentAttribute = getJavaPersistentType().attributes().next();
-		ManyToOneMapping manyToOneMapping = (ManyToOneMapping) persistentAttribute.getMapping();
-		
-		JavaResourcePersistentType typeResource = getJpaProject().getJavaResourcePersistentType(FULLY_QUALIFIED_TYPE_NAME);
-		JavaResourcePersistentAttribute attributeResource = typeResource.persistableAttributes().next();
-		ManyToOneAnnotation manyToOne = (ManyToOneAnnotation) attributeResource.getMappingAnnotation();
-		
-		assertNull(manyToOneMapping.getSpecifiedOptional());
-		assertNull(manyToOne.getOptional());
-				
-		//set optional in the resource model, verify context model updated
-		manyToOne.setOptional(Boolean.TRUE);
-		assertEquals(Boolean.TRUE, manyToOneMapping.getSpecifiedOptional());
-		assertEquals(Boolean.TRUE, manyToOne.getOptional());
-	
-		manyToOne.setOptional(Boolean.FALSE);
-		assertEquals(Boolean.FALSE, manyToOneMapping.getSpecifiedOptional());
-		assertEquals(Boolean.FALSE, manyToOne.getOptional());
-
-		
-		//set optional to null in the resource model
-		manyToOne.setOptional(null);
-		assertNull(manyToOneMapping.getSpecifiedOptional());
-		assertNull(manyToOne.getOptional());
-	}
-	
-	public void testModifySpecifiedOptional() throws Exception {
-		createTestEntityWithManyToOneMapping();
-		addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
-		
-		PersistentAttribute persistentAttribute = getJavaPersistentType().attributes().next();
-		ManyToOneMapping manyToOneMapping = (ManyToOneMapping) persistentAttribute.getMapping();
-		
-		JavaResourcePersistentType typeResource = getJpaProject().getJavaResourcePersistentType(FULLY_QUALIFIED_TYPE_NAME);
-		JavaResourcePersistentAttribute attributeResource = typeResource.persistableAttributes().next();
-		ManyToOneAnnotation manyToOne = (ManyToOneAnnotation) attributeResource.getMappingAnnotation();
-		
-		assertNull(manyToOneMapping.getSpecifiedOptional());
-		assertNull(manyToOne.getOptional());
-				
-		//set optional in the context model, verify resource model updated
-		manyToOneMapping.setSpecifiedOptional(Boolean.TRUE);
-		assertEquals(Boolean.TRUE, manyToOneMapping.getSpecifiedOptional());
-		assertEquals(Boolean.TRUE, manyToOne.getOptional());
-	
-		manyToOneMapping.setSpecifiedOptional(Boolean.FALSE);
-		assertEquals(Boolean.FALSE, manyToOneMapping.getSpecifiedOptional());
-		assertEquals(Boolean.FALSE, manyToOne.getOptional());
-
-		
-		//set optional to null in the context model
-		manyToOneMapping.setSpecifiedOptional(null);
-		assertNull(manyToOneMapping.getSpecifiedOptional());
-		assertNull(manyToOne.getOptional());
-	}
-	
-	
-	public void testSpecifiedJoinColumns() throws Exception {
-		createTestEntityWithManyToOneMapping();
-		addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
-		
-		PersistentAttribute persistentAttribute = getJavaPersistentType().attributes().next();
-		ManyToOneMapping manyToOneMapping = (ManyToOneMapping) persistentAttribute.getMapping();
-		JoinColumnJoiningStrategy joinColumns = manyToOneMapping.getRelationshipReference().getJoinColumnJoiningStrategy();
-		
-		ListIterator<? extends JoinColumn> specifiedJoinColumns = joinColumns.specifiedJoinColumns();
-		
-		assertFalse(specifiedJoinColumns.hasNext());
-
-		JavaResourcePersistentType typeResource = getJpaProject().getJavaResourcePersistentType(FULLY_QUALIFIED_TYPE_NAME);
-		JavaResourcePersistentAttribute attributeResource = typeResource.persistableAttributes().next();
-
-		//add an annotation to the resource model and verify the context model is updated
-		JoinColumnAnnotation joinColumn = (JoinColumnAnnotation) attributeResource.addSupportingAnnotation(0, JPA.JOIN_COLUMN, JPA.JOIN_COLUMNS);
-		joinColumn.setName("FOO");
-		specifiedJoinColumns = joinColumns.specifiedJoinColumns();	
-		assertEquals("FOO", specifiedJoinColumns.next().getName());
-		assertFalse(specifiedJoinColumns.hasNext());
-
-		joinColumn = (JoinColumnAnnotation) attributeResource.addSupportingAnnotation(0, JPA.JOIN_COLUMN, JPA.JOIN_COLUMNS);
-		joinColumn.setName("BAR");
-		specifiedJoinColumns = joinColumns.specifiedJoinColumns();		
-		assertEquals("BAR", specifiedJoinColumns.next().getName());
-		assertEquals("FOO", specifiedJoinColumns.next().getName());
-		assertFalse(specifiedJoinColumns.hasNext());
-
-
-		joinColumn = (JoinColumnAnnotation) attributeResource.addSupportingAnnotation(0, JPA.JOIN_COLUMN, JPA.JOIN_COLUMNS);
-		joinColumn.setName("BAZ");
-		specifiedJoinColumns = joinColumns.specifiedJoinColumns();		
-		assertEquals("BAZ", specifiedJoinColumns.next().getName());
-		assertEquals("BAR", specifiedJoinColumns.next().getName());
-		assertEquals("FOO", specifiedJoinColumns.next().getName());
-		assertFalse(specifiedJoinColumns.hasNext());
-	
-		//move an annotation to the resource model and verify the context model is updated
-		attributeResource.moveSupportingAnnotation(1, 0, JPA.JOIN_COLUMNS);
-		specifiedJoinColumns = joinColumns.specifiedJoinColumns();		
-		assertEquals("BAR", specifiedJoinColumns.next().getName());
-		assertEquals("BAZ", specifiedJoinColumns.next().getName());
-		assertEquals("FOO", specifiedJoinColumns.next().getName());
-		assertFalse(specifiedJoinColumns.hasNext());
-
-		attributeResource.removeSupportingAnnotation(0, JPA.JOIN_COLUMN, JPA.JOIN_COLUMNS);
-		specifiedJoinColumns = joinColumns.specifiedJoinColumns();		
-		assertEquals("BAZ", specifiedJoinColumns.next().getName());
-		assertEquals("FOO", specifiedJoinColumns.next().getName());
-		assertFalse(specifiedJoinColumns.hasNext());
-	
-		attributeResource.removeSupportingAnnotation(0, JPA.JOIN_COLUMN, JPA.JOIN_COLUMNS);
-		specifiedJoinColumns = joinColumns.specifiedJoinColumns();		
-		assertEquals("FOO", specifiedJoinColumns.next().getName());
-		assertFalse(specifiedJoinColumns.hasNext());
-
-		
-		attributeResource.removeSupportingAnnotation(0, JPA.JOIN_COLUMN, JPA.JOIN_COLUMNS);
-		specifiedJoinColumns = joinColumns.specifiedJoinColumns();		
-		assertFalse(specifiedJoinColumns.hasNext());
-	}
-	
-	public void testGetDefaultJoin() {
-		//TODO
-	}
-	
-	public void testSpecifiedJoinColumnsSize() throws Exception {
-		createTestEntityWithManyToOneMapping();
-		addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
-		
-		PersistentAttribute persistentAttribute = getJavaPersistentType().attributes().next();
-		ManyToOneMapping manyToOneMapping = (ManyToOneMapping) persistentAttribute.getMapping();
-		JoinColumnJoiningStrategy joinColumns = manyToOneMapping.getRelationshipReference().getJoinColumnJoiningStrategy();
-		
-		assertEquals(0, joinColumns.specifiedJoinColumnsSize());
-		
-		joinColumns.addSpecifiedJoinColumn(0);
-		assertEquals(1, joinColumns.specifiedJoinColumnsSize());
-		
-		joinColumns.removeSpecifiedJoinColumn(0);
-		assertEquals(0, joinColumns.specifiedJoinColumnsSize());
-	}
-
-	public void testJoinColumnsSize() throws Exception {
-		createTestEntityWithManyToOneMapping();
-		addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
-		
-		PersistentAttribute persistentAttribute = getJavaPersistentType().attributes().next();
-		ManyToOneMapping manyToOneMapping = (ManyToOneMapping) persistentAttribute.getMapping();
-		JoinColumnJoiningStrategy joinColumns = manyToOneMapping.getRelationshipReference().getJoinColumnJoiningStrategy();
-		
-		assertEquals(1, joinColumns.joinColumnsSize());
-		
-		joinColumns.addSpecifiedJoinColumn(0);
-		assertEquals(1, joinColumns.joinColumnsSize());
-		
-		joinColumns.addSpecifiedJoinColumn(0);
-		assertEquals(2, joinColumns.joinColumnsSize());
-
-		joinColumns.removeSpecifiedJoinColumn(0);
-		joinColumns.removeSpecifiedJoinColumn(0);
-		assertEquals(1, joinColumns.joinColumnsSize());
-	}
-
-	public void testAddSpecifiedJoinColumn() throws Exception {
-		createTestEntityWithManyToOneMapping();
-		addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
-		
-		PersistentAttribute persistentAttribute = getJavaPersistentType().attributes().next();
-		ManyToOneMapping manyToOneMapping = (ManyToOneMapping) persistentAttribute.getMapping();
-		JoinColumnJoiningStrategy joinColumns = manyToOneMapping.getRelationshipReference().getJoinColumnJoiningStrategy();
-		
-		joinColumns.addSpecifiedJoinColumn(0).setSpecifiedName("FOO");
-		joinColumns.addSpecifiedJoinColumn(0).setSpecifiedName("BAR");
-		joinColumns.addSpecifiedJoinColumn(0).setSpecifiedName("BAZ");
-		
-		JavaResourcePersistentType typeResource = getJpaProject().getJavaResourcePersistentType(FULLY_QUALIFIED_TYPE_NAME);
-		JavaResourcePersistentAttribute attributeResource = typeResource.persistableAttributes().next();
-		Iterator<NestableAnnotation> joinColumnsIterator = attributeResource.supportingAnnotations(JoinColumnAnnotation.ANNOTATION_NAME, JoinColumnsAnnotation.ANNOTATION_NAME);
-		
-		assertEquals("BAZ", ((JoinColumnAnnotation) joinColumnsIterator.next()).getName());
-		assertEquals("BAR", ((JoinColumnAnnotation) joinColumnsIterator.next()).getName());
-		assertEquals("FOO", ((JoinColumnAnnotation) joinColumnsIterator.next()).getName());
-		assertFalse(joinColumnsIterator.hasNext());
-	}
-	
-	public void testAddSpecifiedJoinColumn2() throws Exception {
-		createTestEntityWithManyToOneMapping();
-		addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
-		
-		PersistentAttribute persistentAttribute = getJavaPersistentType().attributes().next();
-		ManyToOneMapping manyToOneMapping = (ManyToOneMapping) persistentAttribute.getMapping();
-		JoinColumnJoiningStrategy joinColumns = manyToOneMapping.getRelationshipReference().getJoinColumnJoiningStrategy();
-		
-		joinColumns.addSpecifiedJoinColumn(0).setSpecifiedName("FOO");
-		joinColumns.addSpecifiedJoinColumn(1).setSpecifiedName("BAR");
-		joinColumns.addSpecifiedJoinColumn(2).setSpecifiedName("BAZ");
-		
-		JavaResourcePersistentType typeResource = getJpaProject().getJavaResourcePersistentType(FULLY_QUALIFIED_TYPE_NAME);
-		JavaResourcePersistentAttribute attributeResource = typeResource.persistableAttributes().next();
-		Iterator<NestableAnnotation> joinColumnsIterator = attributeResource.supportingAnnotations(JoinColumnAnnotation.ANNOTATION_NAME, JoinColumnsAnnotation.ANNOTATION_NAME);
-		
-		assertEquals("FOO", ((JoinColumnAnnotation) joinColumnsIterator.next()).getName());
-		assertEquals("BAR", ((JoinColumnAnnotation) joinColumnsIterator.next()).getName());
-		assertEquals("BAZ", ((JoinColumnAnnotation) joinColumnsIterator.next()).getName());
-		assertFalse(joinColumnsIterator.hasNext());
-	}
-	public void testRemoveSpecifiedJoinColumn() throws Exception {
-		createTestEntityWithManyToOneMapping();
-		addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
-		
-		PersistentAttribute persistentAttribute = getJavaPersistentType().attributes().next();
-		ManyToOneMapping manyToOneMapping = (ManyToOneMapping) persistentAttribute.getMapping();
-		JoinColumnJoiningStrategy joinColumns = manyToOneMapping.getRelationshipReference().getJoinColumnJoiningStrategy();
-		
-		joinColumns.addSpecifiedJoinColumn(0).setSpecifiedName("FOO");
-		joinColumns.addSpecifiedJoinColumn(1).setSpecifiedName("BAR");
-		joinColumns.addSpecifiedJoinColumn(2).setSpecifiedName("BAZ");
-		
-		JavaResourcePersistentType typeResource = getJpaProject().getJavaResourcePersistentType(FULLY_QUALIFIED_TYPE_NAME);
-		JavaResourcePersistentAttribute attributeResource = typeResource.persistableAttributes().next();
-	
-		assertEquals(3, CollectionTools.size(attributeResource.supportingAnnotations(JoinColumnAnnotation.ANNOTATION_NAME, JoinColumnsAnnotation.ANNOTATION_NAME)));
-
-		joinColumns.removeSpecifiedJoinColumn(1);
-		
-		Iterator<NestableAnnotation> joinColumnResources = attributeResource.supportingAnnotations(JoinColumnAnnotation.ANNOTATION_NAME, JoinColumnsAnnotation.ANNOTATION_NAME);
-		assertEquals("FOO", ((JoinColumnAnnotation) joinColumnResources.next()).getName());		
-		assertEquals("BAZ", ((JoinColumnAnnotation) joinColumnResources.next()).getName());
-		assertFalse(joinColumnResources.hasNext());
-		
-		Iterator<? extends JoinColumn> joinColumnsIterator = joinColumns.specifiedJoinColumns();
-		assertEquals("FOO", joinColumnsIterator.next().getName());		
-		assertEquals("BAZ", joinColumnsIterator.next().getName());
-		assertFalse(joinColumnsIterator.hasNext());
-	
-		
-		joinColumns.removeSpecifiedJoinColumn(1);
-		joinColumnResources = attributeResource.supportingAnnotations(JoinColumnAnnotation.ANNOTATION_NAME, JoinColumnsAnnotation.ANNOTATION_NAME);
-		assertEquals("FOO", ((JoinColumnAnnotation) joinColumnResources.next()).getName());		
-		assertFalse(joinColumnResources.hasNext());
-
-		joinColumnsIterator = joinColumns.specifiedJoinColumns();
-		assertEquals("FOO", joinColumnsIterator.next().getName());
-		assertFalse(joinColumnsIterator.hasNext());
-
-		
-		joinColumns.removeSpecifiedJoinColumn(0);
-		joinColumnResources = attributeResource.supportingAnnotations(JoinColumnAnnotation.ANNOTATION_NAME, JoinColumnsAnnotation.ANNOTATION_NAME);
-		assertFalse(joinColumnResources.hasNext());
-		joinColumnsIterator = joinColumns.specifiedJoinColumns();
-		assertFalse(joinColumnsIterator.hasNext());
-
-		assertNull(attributeResource.getSupportingAnnotation(JoinColumnsAnnotation.ANNOTATION_NAME));
-	}
-	
-	public void testMoveSpecifiedJoinColumn() throws Exception {
-		createTestEntityWithManyToOneMapping();
-		addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
-		
-		PersistentAttribute persistentAttribute = getJavaPersistentType().attributes().next();
-		ManyToOneMapping manyToOneMapping = (ManyToOneMapping) persistentAttribute.getMapping();
-		JoinColumnJoiningStrategy joinColumns = manyToOneMapping.getRelationshipReference().getJoinColumnJoiningStrategy();
-		
-		joinColumns.addSpecifiedJoinColumn(0).setSpecifiedName("FOO");
-		joinColumns.addSpecifiedJoinColumn(1).setSpecifiedName("BAR");
-		joinColumns.addSpecifiedJoinColumn(2).setSpecifiedName("BAZ");
-		
-		JavaResourcePersistentAttribute attributeResource = getJpaProject().getJavaResourcePersistentType(FULLY_QUALIFIED_TYPE_NAME).persistableAttributes().next();
-		
-		ListIterator<NestableAnnotation> javaJoinColumns = attributeResource.supportingAnnotations(JoinColumnAnnotation.ANNOTATION_NAME, JoinColumnsAnnotation.ANNOTATION_NAME);
-		assertEquals(3, CollectionTools.size(javaJoinColumns));
-		
-		
-		joinColumns.moveSpecifiedJoinColumn(2, 0);
-		ListIterator<? extends JoinColumn> primaryKeyJoinColumns = joinColumns.specifiedJoinColumns();
-		assertEquals("BAR", primaryKeyJoinColumns.next().getSpecifiedName());
-		assertEquals("BAZ", primaryKeyJoinColumns.next().getSpecifiedName());
-		assertEquals("FOO", primaryKeyJoinColumns.next().getSpecifiedName());
-
-		javaJoinColumns = attributeResource.supportingAnnotations(JoinColumnAnnotation.ANNOTATION_NAME, JoinColumnsAnnotation.ANNOTATION_NAME);
-		assertEquals("BAR", ((JoinColumnAnnotation) javaJoinColumns.next()).getName());
-		assertEquals("BAZ", ((JoinColumnAnnotation) javaJoinColumns.next()).getName());
-		assertEquals("FOO", ((JoinColumnAnnotation) javaJoinColumns.next()).getName());
-
-
-		joinColumns.moveSpecifiedJoinColumn(0, 1);
-		primaryKeyJoinColumns = joinColumns.specifiedJoinColumns();
-		assertEquals("BAZ", primaryKeyJoinColumns.next().getSpecifiedName());
-		assertEquals("BAR", primaryKeyJoinColumns.next().getSpecifiedName());
-		assertEquals("FOO", primaryKeyJoinColumns.next().getSpecifiedName());
-
-		javaJoinColumns = attributeResource.supportingAnnotations(JoinColumnAnnotation.ANNOTATION_NAME, JoinColumnsAnnotation.ANNOTATION_NAME);
-		assertEquals("BAZ", ((JoinColumnAnnotation) javaJoinColumns.next()).getName());
-		assertEquals("BAR", ((JoinColumnAnnotation) javaJoinColumns.next()).getName());
-		assertEquals("FOO", ((JoinColumnAnnotation) javaJoinColumns.next()).getName());
-	}
-
-	public void testUpdateSpecifiedJoinColumns() throws Exception {
-		createTestEntityWithManyToOneMapping();
-		addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
-		
-		PersistentAttribute persistentAttribute = getJavaPersistentType().attributes().next();
-		ManyToOneMapping manyToOneMapping = (ManyToOneMapping) persistentAttribute.getMapping();
-		JoinColumnJoiningStrategy joinColumns = manyToOneMapping.getRelationshipReference().getJoinColumnJoiningStrategy();
-		JavaResourcePersistentAttribute attributeResource = getJpaProject().getJavaResourcePersistentType(FULLY_QUALIFIED_TYPE_NAME).persistableAttributes().next();
-	
-		((JoinColumnAnnotation) attributeResource.addSupportingAnnotation(0, JoinColumnAnnotation.ANNOTATION_NAME, JoinColumnsAnnotation.ANNOTATION_NAME)).setName("FOO");
-		((JoinColumnAnnotation) attributeResource.addSupportingAnnotation(1, JoinColumnAnnotation.ANNOTATION_NAME, JoinColumnsAnnotation.ANNOTATION_NAME)).setName("BAR");
-		((JoinColumnAnnotation) attributeResource.addSupportingAnnotation(2, JoinColumnAnnotation.ANNOTATION_NAME, JoinColumnsAnnotation.ANNOTATION_NAME)).setName("BAZ");
-			
-		ListIterator<? extends JoinColumn> joinColumnsIterator = joinColumns.specifiedJoinColumns();
-		assertEquals("FOO", joinColumnsIterator.next().getName());
-		assertEquals("BAR", joinColumnsIterator.next().getName());
-		assertEquals("BAZ", joinColumnsIterator.next().getName());
-		assertFalse(joinColumnsIterator.hasNext());
-		
-		attributeResource.moveSupportingAnnotation(2, 0, JoinColumnsAnnotation.ANNOTATION_NAME);
-		joinColumnsIterator = joinColumns.specifiedJoinColumns();
-		assertEquals("BAR", joinColumnsIterator.next().getName());
-		assertEquals("BAZ", joinColumnsIterator.next().getName());
-		assertEquals("FOO", joinColumnsIterator.next().getName());
-		assertFalse(joinColumnsIterator.hasNext());
-	
-		attributeResource.moveSupportingAnnotation(0, 1, JoinColumnsAnnotation.ANNOTATION_NAME);
-		joinColumnsIterator = joinColumns.specifiedJoinColumns();
-		assertEquals("BAZ", joinColumnsIterator.next().getName());
-		assertEquals("BAR", joinColumnsIterator.next().getName());
-		assertEquals("FOO", joinColumnsIterator.next().getName());
-		assertFalse(joinColumnsIterator.hasNext());
-	
-		attributeResource.removeSupportingAnnotation(1,  JoinColumnAnnotation.ANNOTATION_NAME, JoinColumnsAnnotation.ANNOTATION_NAME);
-		joinColumnsIterator = joinColumns.specifiedJoinColumns();
-		assertEquals("BAZ", joinColumnsIterator.next().getName());
-		assertEquals("FOO", joinColumnsIterator.next().getName());
-		assertFalse(joinColumnsIterator.hasNext());
-	
-		attributeResource.removeSupportingAnnotation(1,  JoinColumnAnnotation.ANNOTATION_NAME, JoinColumnsAnnotation.ANNOTATION_NAME);
-		joinColumnsIterator = joinColumns.specifiedJoinColumns();
-		assertEquals("BAZ", joinColumnsIterator.next().getName());
-		assertFalse(joinColumnsIterator.hasNext());
-		
-		attributeResource.removeSupportingAnnotation(0,  JoinColumnAnnotation.ANNOTATION_NAME, JoinColumnsAnnotation.ANNOTATION_NAME);
-		joinColumnsIterator = joinColumns.specifiedJoinColumns();
-		assertFalse(joinColumnsIterator.hasNext());
-	}
-	public void testJoinColumnIsVirtual() throws Exception {
-		createTestEntityWithManyToOneMapping();
-		addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
-		
-		PersistentAttribute persistentAttribute = getJavaPersistentType().attributes().next();
-		ManyToOneMapping manyToOneMapping = (ManyToOneMapping) persistentAttribute.getMapping();
-		JoinColumnJoiningStrategy joinColumns = manyToOneMapping.getRelationshipReference().getJoinColumnJoiningStrategy();
-		
-		assertTrue(joinColumns.getDefaultJoinColumn().isVirtual());
-		
-		joinColumns.addSpecifiedJoinColumn(0);
-		JoinColumn specifiedJoinColumn = joinColumns.specifiedJoinColumns().next();
-		assertFalse(specifiedJoinColumn.isVirtual());
-		
-		assertNull(joinColumns.getDefaultJoinColumn());
-	}
-	
-	public void testDefaultTargetEntity() throws Exception {
-		createTestEntityWithValidManyToOneMapping();
-		createTestTargetEntityAddress();
-		addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
-		
-		PersistentAttribute persistentAttribute = getJavaPersistentType().attributes().next();
-		ManyToOneMapping manyToOneMapping = (ManyToOneMapping) persistentAttribute.getMapping();
-
-		//targetEntity not in the persistence unit, default still set, handled by validation
-		assertEquals(PACKAGE_NAME + ".Address", manyToOneMapping.getDefaultTargetEntity());
-		
-		//add targetEntity to the persistence unit
-		addXmlClassRef(PACKAGE_NAME + ".Address");
-		assertEquals(PACKAGE_NAME + ".Address", manyToOneMapping.getDefaultTargetEntity());
-
-		//test default still the same when specified target entity it set
-		manyToOneMapping.setSpecifiedTargetEntity("foo");
-		assertEquals(PACKAGE_NAME + ".Address", manyToOneMapping.getDefaultTargetEntity());
-		
-		ListIterator<ClassRef> classRefs = getPersistenceUnit().specifiedClassRefs();
-		classRefs.next();
-		ClassRef addressClassRef = classRefs.next();
-		JavaPersistentType addressPersistentType = addressClassRef.getJavaPersistentType();
-
-		//test target is not an Entity, default target entity still exists, this case handled with validation
-		addressPersistentType.setMappingKey(MappingKeys.NULL_TYPE_MAPPING_KEY);
-		assertEquals(PACKAGE_NAME + ".Address", manyToOneMapping.getDefaultTargetEntity());
-	}
-	
-	public void testDefaultTargetEntityCollectionType() throws Exception {
-		createTestEntityWithCollectionManyToOneMapping();
-		createTestTargetEntityAddress();
-		addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
-		addXmlClassRef(PACKAGE_NAME + ".Address");
-	
-		PersistentAttribute persistentAttribute = getJavaPersistentType().attributes().next();
-		ManyToOneMapping manyToOneMapping = (ManyToOneMapping) persistentAttribute.getMapping();
-
-		assertNull(manyToOneMapping.getDefaultTargetEntity());
-	}
-	
-	public void testDefaultTargetEntityGenericizedCollectionType() throws Exception {
-		createTestEntityWithGenericizedCollectionManyToOneMapping();
-		createTestTargetEntityAddress();
-		addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
-		addXmlClassRef(PACKAGE_NAME + ".Address");
-	
-		PersistentAttribute persistentAttribute = getJavaPersistentType().attributes().next();
-		ManyToOneMapping manyToOneMapping = (ManyToOneMapping) persistentAttribute.getMapping();
-
-		assertNull(manyToOneMapping.getDefaultTargetEntity());
-	}
-	
-	public void testTargetEntity() throws Exception {
-		createTestEntityWithValidManyToOneMapping();
-		createTestTargetEntityAddress();
-		addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
-		addXmlClassRef(PACKAGE_NAME + ".Address");
-		
-		PersistentAttribute persistentAttribute = getJavaPersistentType().attributes().next();
-		ManyToOneMapping manyToOneMapping = (ManyToOneMapping) persistentAttribute.getMapping();
-
-		assertEquals(PACKAGE_NAME + ".Address", manyToOneMapping.getTargetEntity());
-
-		manyToOneMapping.setSpecifiedTargetEntity("foo");
-		assertEquals("foo", manyToOneMapping.getTargetEntity());
-		
-		manyToOneMapping.setSpecifiedTargetEntity(null);
-		assertEquals(PACKAGE_NAME + ".Address", manyToOneMapping.getTargetEntity());
-	}
-	
-	public void testResolvedTargetEntity() throws Exception {
-		createTestEntityWithValidManyToOneMapping();
-		addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
-		
-		PersistentAttribute persistentAttribute = getJavaPersistentType().attributes().next();
-		ManyToOneMapping manyToOneMapping = (ManyToOneMapping) persistentAttribute.getMapping();
-
-		//targetEntity not in the persistence unit
-		assertNull(manyToOneMapping.getResolvedTargetEntity());
-		
-		//add targetEntity to the persistence unit, now target entity should resolve
-		createTestTargetEntityAddress();
-		addXmlClassRef(PACKAGE_NAME + ".Address");
-		ListIterator<ClassRef> classRefs = getPersistenceUnit().specifiedClassRefs();
-		classRefs.next();
-		ClassRef addressClassRef = classRefs.next();
-		TypeMapping addressTypeMapping = addressClassRef.getJavaPersistentType().getMapping();
-		assertEquals(addressTypeMapping, manyToOneMapping.getResolvedTargetEntity());
-
-		//test default still the same when specified target entity it set
-		manyToOneMapping.setSpecifiedTargetEntity("foo");
-		assertNull(manyToOneMapping.getResolvedTargetEntity());
-		
-		
-		manyToOneMapping.setSpecifiedTargetEntity(PACKAGE_NAME + ".Address");
-		assertEquals(addressTypeMapping, manyToOneMapping.getResolvedTargetEntity());
-		
-
-		manyToOneMapping.setSpecifiedTargetEntity(null);
-		assertEquals(addressTypeMapping, manyToOneMapping.getResolvedTargetEntity());
-	}
-
-}
diff --git a/jpa/tests/org.eclipse.jpt.core.tests/src/org/eclipse/jpt/core/tests/internal/context/java/JavaMappedSuperclassTests.java b/jpa/tests/org.eclipse.jpt.core.tests/src/org/eclipse/jpt/core/tests/internal/context/java/JavaMappedSuperclassTests.java
deleted file mode 100644
index d951c22..0000000
--- a/jpa/tests/org.eclipse.jpt.core.tests/src/org/eclipse/jpt/core/tests/internal/context/java/JavaMappedSuperclassTests.java
+++ /dev/null
@@ -1,245 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2008 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.core.tests.internal.context.java;
-
-import java.util.Iterator;
-import org.eclipse.jdt.core.ICompilationUnit;
-import org.eclipse.jpt.core.MappingKeys;
-import org.eclipse.jpt.core.context.Embeddable;
-import org.eclipse.jpt.core.context.Entity;
-import org.eclipse.jpt.core.context.MappedSuperclass;
-import org.eclipse.jpt.core.internal.context.java.JavaNullTypeMapping;
-import org.eclipse.jpt.core.resource.java.IdClassAnnotation;
-import org.eclipse.jpt.core.resource.java.JPA;
-import org.eclipse.jpt.core.resource.java.JavaResourcePersistentType;
-import org.eclipse.jpt.core.resource.java.MappedSuperclassAnnotation;
-import org.eclipse.jpt.core.tests.internal.context.ContextModelTestCase;
-import org.eclipse.jpt.utility.internal.iterators.ArrayIterator;
-
-public class JavaMappedSuperclassTests extends ContextModelTestCase
-{
-	
-	private ICompilationUnit createTestMappedSuperclass() throws Exception {
-		return this.createTestType(new DefaultAnnotationWriter() {
-			@Override
-			public Iterator<String> imports() {
-				return new ArrayIterator<String>(JPA.MAPPED_SUPERCLASS);
-			}
-			@Override
-			public void appendTypeAnnotationTo(StringBuilder sb) {
-				sb.append("@MappedSuperclass");
-			}
-		});
-	}
-
-
-	public JavaMappedSuperclassTests(String name) {
-		super(name);
-	}
-	
-	public void testMorphToEntity() throws Exception {
-		createTestMappedSuperclass();
-		addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
-				
-		MappedSuperclass mappedSuperclass = (MappedSuperclass) getJavaPersistentType().getMapping();
-		mappedSuperclass.setIdClass("myIdClass");
-		
-		getJavaPersistentType().setMappingKey(MappingKeys.ENTITY_TYPE_MAPPING_KEY);
-		assertTrue(getJavaPersistentType().getMapping() instanceof Entity);
-		
-		JavaResourcePersistentType typeResource = getJpaProject().getJavaResourcePersistentType(FULLY_QUALIFIED_TYPE_NAME);
-		assertNull(typeResource.getMappingAnnotation(MappedSuperclassAnnotation.ANNOTATION_NAME));
-		assertNotNull(typeResource.getSupportingAnnotation(IdClassAnnotation.ANNOTATION_NAME));
-	}
-
-	public void testMorphToEmbeddable() throws Exception {
-		createTestMappedSuperclass();
-		addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
-				
-		MappedSuperclass mappedSuperclass = (MappedSuperclass) getJavaPersistentType().getMapping();
-		mappedSuperclass.setIdClass("myIdClass");
-
-		getJavaPersistentType().setMappingKey(MappingKeys.EMBEDDABLE_TYPE_MAPPING_KEY);
-		assertTrue(getJavaPersistentType().getMapping() instanceof Embeddable);
-		
-		JavaResourcePersistentType typeResource = getJpaProject().getJavaResourcePersistentType(FULLY_QUALIFIED_TYPE_NAME);
-		assertNull(typeResource.getMappingAnnotation(MappedSuperclassAnnotation.ANNOTATION_NAME));
-		assertNull(typeResource.getSupportingAnnotation(IdClassAnnotation.ANNOTATION_NAME));
-	}
-	
-	public void testMorphToNull() throws Exception {
-		createTestMappedSuperclass();
-		addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
-				
-		MappedSuperclass mappedSuperclass = (MappedSuperclass) getJavaPersistentType().getMapping();
-		mappedSuperclass.setIdClass("myIdClass");
-
-		getJavaPersistentType().setMappingKey(MappingKeys.NULL_TYPE_MAPPING_KEY);
-		assertTrue(getJavaPersistentType().getMapping() instanceof JavaNullTypeMapping);
-		
-		JavaResourcePersistentType typeResource = getJpaProject().getJavaResourcePersistentType(FULLY_QUALIFIED_TYPE_NAME);
-		assertNull(typeResource.getMappingAnnotation(MappedSuperclassAnnotation.ANNOTATION_NAME));
-		assertNull(typeResource.getSupportingAnnotation(IdClassAnnotation.ANNOTATION_NAME));
-	}
-
-	
-	public void testMappedSuperclass() throws Exception {
-		createTestMappedSuperclass();
-		addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
-		assertTrue(getJavaPersistentType().getMapping() instanceof MappedSuperclass);
-	}
-	
-	public void testOverridableAttributeNames() throws Exception {
-		createTestMappedSuperclass();
-		addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
-	
-		MappedSuperclass mappedSuperclass = (MappedSuperclass) getJavaPersistentType().getMapping();
-		Iterator<String> overridableAttributeNames = mappedSuperclass.overridableAttributeNames();
-		assertEquals("id", overridableAttributeNames.next());
-		assertEquals("name", overridableAttributeNames.next());
-		assertFalse(overridableAttributeNames.hasNext());
-	}
-	
-	public void testOverridableAssociationNames() throws Exception {
-		createTestMappedSuperclass();
-		addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
-
-		MappedSuperclass mappedSuperclass = (MappedSuperclass) getJavaPersistentType().getMapping();
-		Iterator<String> overridableAssociationNames = mappedSuperclass.overridableAssociationNames();
-		assertFalse(overridableAssociationNames.hasNext());
-	}
-	
-	public void testTableNameIsInvalid() throws Exception {
-		createTestMappedSuperclass();
-		addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
-
-		MappedSuperclass mappedSuperclass = (MappedSuperclass) getJavaPersistentType().getMapping();
-
-		assertFalse(mappedSuperclass.tableNameIsInvalid(FULLY_QUALIFIED_TYPE_NAME));
-		assertFalse(mappedSuperclass.tableNameIsInvalid("FOO"));
-	}
-
-	public void testAssociatedTables() throws Exception {
-		createTestMappedSuperclass();
-		addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
-
-		MappedSuperclass mappedSuperclass = (MappedSuperclass) getJavaPersistentType().getMapping();
-
-		assertFalse(mappedSuperclass.associatedTables().hasNext());
-	}
-
-	public void testAssociatedTablesIncludingInherited() throws Exception {
-		createTestMappedSuperclass();
-		addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
-
-		MappedSuperclass mappedSuperclass = (MappedSuperclass) getJavaPersistentType().getMapping();
-
-		assertFalse(mappedSuperclass.associatedTablesIncludingInherited().hasNext());
-	}
-	
-	public void testAssociatedTableNamesIncludingInherited() throws Exception {
-		createTestMappedSuperclass();
-		addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
-
-		MappedSuperclass mappedSuperclass = (MappedSuperclass) getJavaPersistentType().getMapping();
-
-		assertFalse(mappedSuperclass.associatedTableNamesIncludingInherited().hasNext());
-	}
-	
-	public void testAllOverridableAttributeNames() throws Exception {
-		createTestMappedSuperclass();
-		addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
-	
-		MappedSuperclass mappedSuperclass = (MappedSuperclass) getJavaPersistentType().getMapping();
-		Iterator<String> overridableAttributeNames = mappedSuperclass.overridableAttributeNames();
-		assertEquals("id", overridableAttributeNames.next());
-		assertEquals("name", overridableAttributeNames.next());
-		assertFalse(overridableAttributeNames.hasNext());
-	}
-	
-	//TODO need to create a subclass mappedSuperclass and test this
-	public void testAllOverridableAssociationNames() throws Exception {
-		createTestMappedSuperclass();
-		addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
-
-		MappedSuperclass mappedSuperclass = (MappedSuperclass) getJavaPersistentType().getMapping();
-		Iterator<String> overridableAssociationNames = mappedSuperclass.overridableAssociationNames();
-		assertFalse(overridableAssociationNames.hasNext());
-	}
-	
-	public void testAttributeMappingKeyAllowed() throws Exception {
-		createTestMappedSuperclass();
-		addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
-
-		MappedSuperclass mappedSuperclass = (MappedSuperclass) getJavaPersistentType().getMapping();
-		assertTrue(mappedSuperclass.attributeMappingKeyAllowed(MappingKeys.BASIC_ATTRIBUTE_MAPPING_KEY));
-		assertTrue(mappedSuperclass.attributeMappingKeyAllowed(MappingKeys.ID_ATTRIBUTE_MAPPING_KEY));
-		assertTrue(mappedSuperclass.attributeMappingKeyAllowed(MappingKeys.EMBEDDED_ATTRIBUTE_MAPPING_KEY));
-		assertTrue(mappedSuperclass.attributeMappingKeyAllowed(MappingKeys.EMBEDDED_ID_ATTRIBUTE_MAPPING_KEY));
-		assertTrue(mappedSuperclass.attributeMappingKeyAllowed(MappingKeys.VERSION_ATTRIBUTE_MAPPING_KEY));
-		assertTrue(mappedSuperclass.attributeMappingKeyAllowed(MappingKeys.TRANSIENT_ATTRIBUTE_MAPPING_KEY));
-		assertTrue(mappedSuperclass.attributeMappingKeyAllowed(MappingKeys.ONE_TO_ONE_ATTRIBUTE_MAPPING_KEY));
-		assertTrue(mappedSuperclass.attributeMappingKeyAllowed(MappingKeys.MANY_TO_ONE_ATTRIBUTE_MAPPING_KEY));
-		assertTrue(mappedSuperclass.attributeMappingKeyAllowed(MappingKeys.ONE_TO_MANY_ATTRIBUTE_MAPPING_KEY));
-		assertTrue(mappedSuperclass.attributeMappingKeyAllowed(MappingKeys.MANY_TO_MANY_ATTRIBUTE_MAPPING_KEY));
-	}
-
-	public void testUpdateIdClass() throws Exception {
-		createTestMappedSuperclass();
-		addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
-	
-		JavaResourcePersistentType typeResource = getJpaProject().getJavaResourcePersistentType(FULLY_QUALIFIED_TYPE_NAME);
-		MappedSuperclass mappedSuperclass = (MappedSuperclass) getJavaPersistentType().getMapping();
-
-		assertNull(mappedSuperclass.getIdClass());
-		assertNull(typeResource.getSupportingAnnotation(IdClassAnnotation.ANNOTATION_NAME));
-		
-		IdClassAnnotation idClass = (IdClassAnnotation) typeResource.addSupportingAnnotation(IdClassAnnotation.ANNOTATION_NAME);	
-		assertNull(mappedSuperclass.getIdClass());
-		assertNotNull(typeResource.getSupportingAnnotation(IdClassAnnotation.ANNOTATION_NAME));
-		
-		idClass.setValue("model.Foo");
-		assertEquals("model.Foo", mappedSuperclass.getIdClass());
-		assertEquals("model.Foo", ((IdClassAnnotation) typeResource.getSupportingAnnotation(IdClassAnnotation.ANNOTATION_NAME)).getValue());
-		
-		//test setting  @IdClass value to null, IdClass annotation is removed
-		idClass.setValue(null);
-		assertNull(mappedSuperclass.getIdClass());
-		assertNull(typeResource.getSupportingAnnotation(IdClassAnnotation.ANNOTATION_NAME));
-		
-		//reset @IdClass value and then remove @IdClass
-		idClass = (IdClassAnnotation) typeResource.addSupportingAnnotation(IdClassAnnotation.ANNOTATION_NAME);	
-		idClass.setValue("model.Foo");
-		typeResource.removeSupportingAnnotation(IdClassAnnotation.ANNOTATION_NAME);
-		
-		assertNull(mappedSuperclass.getIdClass());
-		assertNull(typeResource.getSupportingAnnotation(IdClassAnnotation.ANNOTATION_NAME));		
-	}
-	
-	public void testModifyIdClass() throws Exception {
-		createTestMappedSuperclass();
-		addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
-	
-		JavaResourcePersistentType typeResource = getJpaProject().getJavaResourcePersistentType(FULLY_QUALIFIED_TYPE_NAME);
-		MappedSuperclass mappedSuperclass = (MappedSuperclass) getJavaPersistentType().getMapping();
-
-		assertNull(mappedSuperclass.getIdClass());
-		assertNull(typeResource.getSupportingAnnotation(IdClassAnnotation.ANNOTATION_NAME));
-			
-		mappedSuperclass.setIdClass("model.Foo");
-		assertEquals("model.Foo", ((IdClassAnnotation) typeResource.getSupportingAnnotation(IdClassAnnotation.ANNOTATION_NAME)).getValue());
-		assertEquals("model.Foo", mappedSuperclass.getIdClass());
-		
-		mappedSuperclass.setIdClass(null);
-		assertNull(mappedSuperclass.getIdClass());
-		assertNull(typeResource.getSupportingAnnotation(IdClassAnnotation.ANNOTATION_NAME));
-	}
-
-}
diff --git a/jpa/tests/org.eclipse.jpt.core.tests/src/org/eclipse/jpt/core/tests/internal/context/java/JavaNamedNativeQueryTests.java b/jpa/tests/org.eclipse.jpt.core.tests/src/org/eclipse/jpt/core/tests/internal/context/java/JavaNamedNativeQueryTests.java
deleted file mode 100644
index 905570b..0000000
--- a/jpa/tests/org.eclipse.jpt.core.tests/src/org/eclipse/jpt/core/tests/internal/context/java/JavaNamedNativeQueryTests.java
+++ /dev/null
@@ -1,424 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.core.tests.internal.context.java;
-
-import java.util.Iterator;
-import java.util.ListIterator;
-import org.eclipse.jdt.core.ICompilationUnit;
-import org.eclipse.jpt.core.context.Entity;
-import org.eclipse.jpt.core.context.NamedNativeQuery;
-import org.eclipse.jpt.core.context.QueryHint;
-import org.eclipse.jpt.core.resource.java.JPA;
-import org.eclipse.jpt.core.resource.java.JavaResourcePersistentType;
-import org.eclipse.jpt.core.resource.java.NamedNativeQueryAnnotation;
-import org.eclipse.jpt.core.tests.internal.context.ContextModelTestCase;
-import org.eclipse.jpt.utility.internal.iterators.ArrayIterator;
-
-public class JavaNamedNativeQueryTests extends ContextModelTestCase
-{
-	private static final String QUERY_NAME = "QUERY_NAME";
-	private static final String QUERY_QUERY = "MY_QUERY";
-		
-	private ICompilationUnit createTestEntityWithNamedNativeQuery() throws Exception {
-		return this.createTestType(new DefaultAnnotationWriter() {
-			@Override
-			public Iterator<String> imports() {
-				return new ArrayIterator<String>(JPA.ENTITY, JPA.NAMED_NATIVE_QUERY);
-			}
-			@Override
-			public void appendTypeAnnotationTo(StringBuilder sb) {
-				sb.append("@Entity").append(CR);
-				sb.append("@NamedNativeQuery(name=\"" + QUERY_NAME + "\", query=\"" + QUERY_QUERY + "\")");
-			}
-		});
-	}
-
-
-		
-	public JavaNamedNativeQueryTests(String name) {
-		super(name);
-	}
-	
-	public void testUpdateName() throws Exception {
-		createTestEntityWithNamedNativeQuery();
-		addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
-		
-		Entity entity = getJavaEntity();
-		NamedNativeQuery namedNativeQuery = entity.namedNativeQueries().next();
-				
-		JavaResourcePersistentType typeResource = getJpaProject().getJavaResourcePersistentType(FULLY_QUALIFIED_TYPE_NAME);
-		NamedNativeQueryAnnotation javaNamedNativeQuery = (NamedNativeQueryAnnotation) typeResource.getSupportingAnnotation(NamedNativeQueryAnnotation.ANNOTATION_NAME);
-		
-		assertEquals(QUERY_NAME, javaNamedNativeQuery.getName());
-		assertEquals(QUERY_NAME, namedNativeQuery.getName());
-				
-		//set name to null in the resource model
-		javaNamedNativeQuery.setName(null);
-		assertNull(javaNamedNativeQuery.getName());
-		assertNull(namedNativeQuery.getName());
-
-		//set name in the resource model, verify context model updated
-		javaNamedNativeQuery.setName("foo");
-		assertEquals("foo", javaNamedNativeQuery.getName());
-		assertEquals("foo", namedNativeQuery.getName());
-	}
-	
-	public void testModifyName() throws Exception {
-		createTestEntityWithNamedNativeQuery();
-		addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
-		Entity entity = getJavaEntity();
-		NamedNativeQuery namedNativeQuery = entity.namedNativeQueries().next();
-				
-		JavaResourcePersistentType typeResource = getJpaProject().getJavaResourcePersistentType(FULLY_QUALIFIED_TYPE_NAME);
-		NamedNativeQueryAnnotation javaNamedNativeQuery = (NamedNativeQueryAnnotation) typeResource.getSupportingAnnotation(NamedNativeQueryAnnotation.ANNOTATION_NAME);
-		
-		assertEquals(QUERY_NAME, javaNamedNativeQuery.getName());
-		assertEquals(QUERY_NAME, namedNativeQuery.getName());
-				
-		//set name to null in the context model
-		namedNativeQuery.setName(null);
-		assertNull(javaNamedNativeQuery.getName());
-		assertNull(namedNativeQuery.getName());
-
-		//set name in the context model, verify resource model updated
-		namedNativeQuery.setName("foo");
-		assertEquals("foo", javaNamedNativeQuery.getName());
-		assertEquals("foo", namedNativeQuery.getName());
-	}
-	
-	public void testUpdateQuery() throws Exception {
-		createTestEntityWithNamedNativeQuery();
-		addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
-		
-		Entity entity = getJavaEntity();
-		NamedNativeQuery namedNativeQuery = entity.namedNativeQueries().next();
-				
-		JavaResourcePersistentType typeResource = getJpaProject().getJavaResourcePersistentType(FULLY_QUALIFIED_TYPE_NAME);
-		NamedNativeQueryAnnotation javaNamedNativeQuery = (NamedNativeQueryAnnotation) typeResource.getSupportingAnnotation(NamedNativeQueryAnnotation.ANNOTATION_NAME);
-		
-		assertEquals(QUERY_QUERY, javaNamedNativeQuery.getQuery());
-		assertEquals(QUERY_QUERY, namedNativeQuery.getQuery());
-				
-		//set name to null in the resource model
-		javaNamedNativeQuery.setQuery(null);
-		assertNull(javaNamedNativeQuery.getQuery());
-		assertNull(namedNativeQuery.getQuery());
-
-		//set name in the resource model, verify context model updated
-		javaNamedNativeQuery.setQuery("foo");
-		assertEquals("foo", javaNamedNativeQuery.getQuery());
-		assertEquals("foo", namedNativeQuery.getQuery());
-	}
-	
-	public void testModifyQuery() throws Exception {
-		createTestEntityWithNamedNativeQuery();
-		addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
-		Entity entity = getJavaEntity();
-		NamedNativeQuery namedNativeQuery = entity.namedNativeQueries().next();
-				
-		JavaResourcePersistentType typeResource = getJpaProject().getJavaResourcePersistentType(FULLY_QUALIFIED_TYPE_NAME);
-		NamedNativeQueryAnnotation javaNamedNativeQuery = (NamedNativeQueryAnnotation) typeResource.getSupportingAnnotation(NamedNativeQueryAnnotation.ANNOTATION_NAME);
-		
-		assertEquals(QUERY_QUERY, javaNamedNativeQuery.getQuery());
-		assertEquals(QUERY_QUERY, namedNativeQuery.getQuery());
-				
-		//set name to null in the context model
-		namedNativeQuery.setQuery(null);
-		assertNull(javaNamedNativeQuery.getQuery());
-		assertNull(namedNativeQuery.getQuery());
-
-		//set name in the context model, verify resource model updated
-		namedNativeQuery.setQuery("foo");
-		assertEquals("foo", javaNamedNativeQuery.getQuery());
-		assertEquals("foo", namedNativeQuery.getQuery());
-	}
-	
-	
-	public void testAddHint() throws Exception {
-		createTestEntityWithNamedNativeQuery();
-		addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
-		Entity entity = getJavaEntity();
-		NamedNativeQuery namedNativeQuery = entity.namedNativeQueries().next();
-				
-		JavaResourcePersistentType typeResource = getJpaProject().getJavaResourcePersistentType(FULLY_QUALIFIED_TYPE_NAME);
-		NamedNativeQueryAnnotation javaNamedNativeQuery = (NamedNativeQueryAnnotation) typeResource.getSupportingAnnotation(NamedNativeQueryAnnotation.ANNOTATION_NAME);
-	
-		
-		QueryHint queryHint = namedNativeQuery.addHint(0);
-		getOrmXmlResource().save(null);
-		queryHint.setName("FOO");
-		getOrmXmlResource().save(null);
-
-		assertEquals("FOO", javaNamedNativeQuery.hintAt(0).getName());
-		
-		QueryHint queryHint2 = namedNativeQuery.addHint(0);
-		getOrmXmlResource().save(null);
-		queryHint2.setName("BAR");
-		getOrmXmlResource().save(null);
-		
-		assertEquals("BAR", javaNamedNativeQuery.hintAt(0).getName());
-		assertEquals("FOO", javaNamedNativeQuery.hintAt(1).getName());
-		
-		QueryHint queryHint3 = namedNativeQuery.addHint(1);
-		getOrmXmlResource().save(null);
-		queryHint3.setName("BAZ");
-		getOrmXmlResource().save(null);
-		
-		assertEquals("BAR", javaNamedNativeQuery.hintAt(0).getName());
-		assertEquals("BAZ", javaNamedNativeQuery.hintAt(1).getName());
-		assertEquals("FOO", javaNamedNativeQuery.hintAt(2).getName());
-		
-		ListIterator<QueryHint> hints = namedNativeQuery.hints();
-		assertEquals(queryHint2, hints.next());
-		assertEquals(queryHint3, hints.next());
-		assertEquals(queryHint, hints.next());
-		
-		hints = namedNativeQuery.hints();
-		assertEquals("BAR", hints.next().getName());
-		assertEquals("BAZ", hints.next().getName());
-		assertEquals("FOO", hints.next().getName());
-	}
-	
-	public void testRemoveHint() throws Exception {
-		createTestEntityWithNamedNativeQuery();
-		addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
-		Entity entity = getJavaEntity();
-		NamedNativeQuery namedNativeQuery = entity.namedNativeQueries().next();
-				
-		JavaResourcePersistentType typeResource = getJpaProject().getJavaResourcePersistentType(FULLY_QUALIFIED_TYPE_NAME);
-		NamedNativeQueryAnnotation javaNamedNativeQuery = (NamedNativeQueryAnnotation) typeResource.getSupportingAnnotation(NamedNativeQueryAnnotation.ANNOTATION_NAME);
-
-		namedNativeQuery.addHint(0).setName("FOO");
-		namedNativeQuery.addHint(1).setName("BAR");
-		namedNativeQuery.addHint(2).setName("BAZ");
-		
-		assertEquals(3, javaNamedNativeQuery.hintsSize());
-		
-		namedNativeQuery.removeHint(0);
-		assertEquals(2, javaNamedNativeQuery.hintsSize());
-		assertEquals("BAR", javaNamedNativeQuery.hintAt(0).getName());
-		assertEquals("BAZ", javaNamedNativeQuery.hintAt(1).getName());
-
-		namedNativeQuery.removeHint(0);
-		assertEquals(1, javaNamedNativeQuery.hintsSize());
-		assertEquals("BAZ", javaNamedNativeQuery.hintAt(0).getName());
-		
-		namedNativeQuery.removeHint(0);
-		assertEquals(0, javaNamedNativeQuery.hintsSize());
-	}
-	
-	public void testMoveHint() throws Exception {
-		createTestEntityWithNamedNativeQuery();
-		addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
-		Entity entity = getJavaEntity();
-		NamedNativeQuery namedNativeQuery = entity.namedNativeQueries().next();
-				
-		JavaResourcePersistentType typeResource = getJpaProject().getJavaResourcePersistentType(FULLY_QUALIFIED_TYPE_NAME);
-		NamedNativeQueryAnnotation javaNamedNativeQuery = (NamedNativeQueryAnnotation) typeResource.getSupportingAnnotation(NamedNativeQueryAnnotation.ANNOTATION_NAME);
-
-		namedNativeQuery.addHint(0).setName("FOO");
-		namedNativeQuery.addHint(1).setName("BAR");
-		namedNativeQuery.addHint(2).setName("BAZ");
-		
-		assertEquals(3, javaNamedNativeQuery.hintsSize());
-		
-		
-		namedNativeQuery.moveHint(2, 0);
-		ListIterator<QueryHint> hints = namedNativeQuery.hints();
-		assertEquals("BAR", hints.next().getName());
-		assertEquals("BAZ", hints.next().getName());
-		assertEquals("FOO", hints.next().getName());
-
-		assertEquals("BAR", javaNamedNativeQuery.hintAt(0).getName());
-		assertEquals("BAZ", javaNamedNativeQuery.hintAt(1).getName());
-		assertEquals("FOO", javaNamedNativeQuery.hintAt(2).getName());
-
-
-		namedNativeQuery.moveHint(0, 1);
-		hints = namedNativeQuery.hints();
-		assertEquals("BAZ", hints.next().getName());
-		assertEquals("BAR", hints.next().getName());
-		assertEquals("FOO", hints.next().getName());
-
-		assertEquals("BAZ", javaNamedNativeQuery.hintAt(0).getName());
-		assertEquals("BAR", javaNamedNativeQuery.hintAt(1).getName());
-		assertEquals("FOO", javaNamedNativeQuery.hintAt(2).getName());
-	}
-	
-	public void testUpdateHints() throws Exception {
-		createTestEntityWithNamedNativeQuery();
-		addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
-		Entity entity = getJavaEntity();
-		NamedNativeQuery namedNativeQuery = entity.namedNativeQueries().next();
-				
-		JavaResourcePersistentType typeResource = getJpaProject().getJavaResourcePersistentType(FULLY_QUALIFIED_TYPE_NAME);
-		NamedNativeQueryAnnotation javaNamedNativeQuery = (NamedNativeQueryAnnotation) typeResource.getSupportingAnnotation(NamedNativeQueryAnnotation.ANNOTATION_NAME);
-		
-		javaNamedNativeQuery.addHint(0);
-		javaNamedNativeQuery.addHint(1);
-		javaNamedNativeQuery.addHint(2);
-		
-		javaNamedNativeQuery.hintAt(0).setName("FOO");
-		javaNamedNativeQuery.hintAt(1).setName("BAR");
-		javaNamedNativeQuery.hintAt(2).setName("BAZ");
-	
-		ListIterator<QueryHint> hints = namedNativeQuery.hints();
-		assertEquals("FOO", hints.next().getName());
-		assertEquals("BAR", hints.next().getName());
-		assertEquals("BAZ", hints.next().getName());
-		assertFalse(hints.hasNext());
-		
-		javaNamedNativeQuery.moveHint(2, 0);
-		hints = namedNativeQuery.hints();
-		assertEquals("BAR", hints.next().getName());
-		assertEquals("BAZ", hints.next().getName());
-		assertEquals("FOO", hints.next().getName());
-		assertFalse(hints.hasNext());
-	
-		javaNamedNativeQuery.moveHint(0, 1);
-		hints = namedNativeQuery.hints();
-		assertEquals("BAZ", hints.next().getName());
-		assertEquals("BAR", hints.next().getName());
-		assertEquals("FOO", hints.next().getName());
-		assertFalse(hints.hasNext());
-	
-		javaNamedNativeQuery.removeHint(1);
-		hints = namedNativeQuery.hints();
-		assertEquals("BAZ", hints.next().getName());
-		assertEquals("FOO", hints.next().getName());
-		assertFalse(hints.hasNext());
-	
-		javaNamedNativeQuery.removeHint(1);
-		hints = namedNativeQuery.hints();
-		assertEquals("BAZ", hints.next().getName());
-		assertFalse(hints.hasNext());
-		
-		javaNamedNativeQuery.removeHint(0);
-		assertFalse(namedNativeQuery.hints().hasNext());
-	}
-
-	public void testHintsSize() throws Exception {
-		createTestEntityWithNamedNativeQuery();
-		addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
-		Entity entity = getJavaEntity();
-		
-		NamedNativeQuery namedNativeQuery = entity.namedNativeQueries().next();
-		assertEquals(0, namedNativeQuery.hintsSize());
-		
-		JavaResourcePersistentType typeResource = getJpaProject().getJavaResourcePersistentType(FULLY_QUALIFIED_TYPE_NAME);
-		NamedNativeQueryAnnotation javaNamedNativeQuery = (NamedNativeQueryAnnotation) typeResource.getSupportingAnnotation(NamedNativeQueryAnnotation.ANNOTATION_NAME);
-		
-		
-		javaNamedNativeQuery.addHint(0);
-		assertEquals(1, namedNativeQuery.hintsSize());
-		
-		javaNamedNativeQuery.addHint(0);
-		assertEquals(2, namedNativeQuery.hintsSize());
-		
-		javaNamedNativeQuery.removeHint(0);
-		javaNamedNativeQuery.removeHint(0);
-		assertEquals(0, namedNativeQuery.hintsSize());
-	}
-	
-	public void testUpdateResultClass() throws Exception {
-		createTestEntityWithNamedNativeQuery();
-		addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
-		
-		Entity entity = getJavaEntity();
-		NamedNativeQuery namedNativeQuery = entity.namedNativeQueries().next();
-				
-		JavaResourcePersistentType typeResource = getJpaProject().getJavaResourcePersistentType(FULLY_QUALIFIED_TYPE_NAME);
-		NamedNativeQueryAnnotation javaNamedNativeQuery = (NamedNativeQueryAnnotation) typeResource.getSupportingAnnotation(NamedNativeQueryAnnotation.ANNOTATION_NAME);
-		
-		assertEquals(null, javaNamedNativeQuery.getResultClass());
-		assertEquals(null, namedNativeQuery.getResultClass());
-
-		//set name in the resource model, verify context model updated
-		javaNamedNativeQuery.setResultClass("foo");
-		assertEquals("foo", javaNamedNativeQuery.getResultClass());
-		assertEquals("foo", namedNativeQuery.getResultClass());
-		
-		//set name to null in the resource model
-		javaNamedNativeQuery.setResultClass(null);
-		assertNull(javaNamedNativeQuery.getResultClass());
-		assertNull(namedNativeQuery.getResultClass());
-	}
-	
-	public void testModifyResultClass() throws Exception {
-		createTestEntityWithNamedNativeQuery();
-		addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
-		Entity entity = getJavaEntity();
-		NamedNativeQuery namedNativeQuery = entity.namedNativeQueries().next();
-				
-		JavaResourcePersistentType typeResource = getJpaProject().getJavaResourcePersistentType(FULLY_QUALIFIED_TYPE_NAME);
-		NamedNativeQueryAnnotation javaNamedNativeQuery = (NamedNativeQueryAnnotation) typeResource.getSupportingAnnotation(NamedNativeQueryAnnotation.ANNOTATION_NAME);
-		
-		assertEquals(null, javaNamedNativeQuery.getResultClass());
-		assertEquals(null, namedNativeQuery.getResultClass());
-				
-		//set name in the context model, verify resource model updated
-		namedNativeQuery.setResultClass("foo");
-		assertEquals("foo", javaNamedNativeQuery.getResultClass());
-		assertEquals("foo", namedNativeQuery.getResultClass());
-
-		//set name to null in the context model
-		namedNativeQuery.setResultClass(null);
-		assertNull(javaNamedNativeQuery.getResultClass());
-		assertNull(namedNativeQuery.getResultClass());
-	}
-	
-	public void testUpdateResultSetMapping() throws Exception {
-		createTestEntityWithNamedNativeQuery();
-		addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
-		
-		Entity entity = getJavaEntity();
-		NamedNativeQuery namedNativeQuery = entity.namedNativeQueries().next();
-				
-		JavaResourcePersistentType typeResource = getJpaProject().getJavaResourcePersistentType(FULLY_QUALIFIED_TYPE_NAME);
-		NamedNativeQueryAnnotation javaNamedNativeQuery = (NamedNativeQueryAnnotation) typeResource.getSupportingAnnotation(NamedNativeQueryAnnotation.ANNOTATION_NAME);
-		
-		assertEquals(null, javaNamedNativeQuery.getResultSetMapping());
-		assertEquals(null, namedNativeQuery.getResultSetMapping());
-
-		//set name in the resource model, verify context model updated
-		javaNamedNativeQuery.setResultSetMapping("foo");
-		assertEquals("foo", javaNamedNativeQuery.getResultSetMapping());
-		assertEquals("foo", namedNativeQuery.getResultSetMapping());
-		
-		//set name to null in the resource model
-		javaNamedNativeQuery.setResultSetMapping(null);
-		assertNull(javaNamedNativeQuery.getResultSetMapping());
-		assertNull(namedNativeQuery.getResultSetMapping());
-	}
-	
-	public void testModifyResultSetMapping() throws Exception {
-		createTestEntityWithNamedNativeQuery();
-		addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
-		Entity entity = getJavaEntity();
-		NamedNativeQuery namedNativeQuery = entity.namedNativeQueries().next();
-				
-		JavaResourcePersistentType typeResource = getJpaProject().getJavaResourcePersistentType(FULLY_QUALIFIED_TYPE_NAME);
-		NamedNativeQueryAnnotation javaNamedNativeQuery = (NamedNativeQueryAnnotation) typeResource.getSupportingAnnotation(NamedNativeQueryAnnotation.ANNOTATION_NAME);
-		
-		assertEquals(null, javaNamedNativeQuery.getResultSetMapping());
-		assertEquals(null, namedNativeQuery.getResultSetMapping());
-
-		//set name in the context model, verify resource model updated
-		namedNativeQuery.setResultSetMapping("foo");
-		assertEquals("foo", javaNamedNativeQuery.getResultSetMapping());
-		assertEquals("foo", namedNativeQuery.getResultSetMapping());
-		
-		//set name to null in the context model
-		namedNativeQuery.setResultSetMapping(null);
-		assertNull(javaNamedNativeQuery.getResultSetMapping());
-		assertNull(namedNativeQuery.getResultSetMapping());
-	}
-
-}
diff --git a/jpa/tests/org.eclipse.jpt.core.tests/src/org/eclipse/jpt/core/tests/internal/context/java/JavaNamedQueryTests.java b/jpa/tests/org.eclipse.jpt.core.tests/src/org/eclipse/jpt/core/tests/internal/context/java/JavaNamedQueryTests.java
deleted file mode 100644
index bebc76e..0000000
--- a/jpa/tests/org.eclipse.jpt.core.tests/src/org/eclipse/jpt/core/tests/internal/context/java/JavaNamedQueryTests.java
+++ /dev/null
@@ -1,323 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2008 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.core.tests.internal.context.java;
-
-import java.util.Iterator;
-import java.util.ListIterator;
-import org.eclipse.jdt.core.ICompilationUnit;
-import org.eclipse.jpt.core.context.Entity;
-import org.eclipse.jpt.core.context.NamedQuery;
-import org.eclipse.jpt.core.context.QueryHint;
-import org.eclipse.jpt.core.resource.java.JPA;
-import org.eclipse.jpt.core.resource.java.JavaResourcePersistentType;
-import org.eclipse.jpt.core.resource.java.NamedQueryAnnotation;
-import org.eclipse.jpt.core.tests.internal.context.ContextModelTestCase;
-import org.eclipse.jpt.utility.internal.iterators.ArrayIterator;
-
-public class JavaNamedQueryTests extends ContextModelTestCase
-{
-	private static final String QUERY_NAME = "QUERY_NAME";
-	private static final String QUERY_QUERY = "MY_QUERY";
-		
-	private ICompilationUnit createTestEntityWithNamedQuery() throws Exception {
-		return this.createTestType(new DefaultAnnotationWriter() {
-			@Override
-			public Iterator<String> imports() {
-				return new ArrayIterator<String>(JPA.ENTITY, JPA.NAMED_QUERY);
-			}
-			@Override
-			public void appendTypeAnnotationTo(StringBuilder sb) {
-				sb.append("@Entity").append(CR);
-				sb.append("@NamedQuery(name=\"" + QUERY_NAME + "\", query=\"" + QUERY_QUERY + "\")");
-			}
-		});
-	}
-
-
-		
-	public JavaNamedQueryTests(String name) {
-		super(name);
-	}
-	
-	public void testUpdateName() throws Exception {
-		createTestEntityWithNamedQuery();
-		addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
-		
-		Entity entity = getJavaEntity();
-		NamedQuery namedQuery = entity.namedQueries().next();
-				
-		JavaResourcePersistentType typeResource = getJpaProject().getJavaResourcePersistentType(FULLY_QUALIFIED_TYPE_NAME);
-		NamedQueryAnnotation javaNamedQuery = (NamedQueryAnnotation) typeResource.getSupportingAnnotation(NamedQueryAnnotation.ANNOTATION_NAME);
-		
-		assertEquals(QUERY_NAME, javaNamedQuery.getName());
-		assertEquals(QUERY_NAME, namedQuery.getName());
-				
-		//set name to null in the resource model
-		javaNamedQuery.setName(null);
-		assertNull(javaNamedQuery.getName());
-		assertNull(namedQuery.getName());
-
-		//set name in the resource model, verify context model updated
-		javaNamedQuery.setName("foo");
-		assertEquals("foo", javaNamedQuery.getName());
-		assertEquals("foo", namedQuery.getName());
-	}
-	
-	public void testModifyName() throws Exception {
-		createTestEntityWithNamedQuery();
-		addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
-		Entity entity = getJavaEntity();
-		NamedQuery namedQuery = entity.namedQueries().next();
-				
-		JavaResourcePersistentType typeResource = getJpaProject().getJavaResourcePersistentType(FULLY_QUALIFIED_TYPE_NAME);
-		NamedQueryAnnotation javaNamedQuery = (NamedQueryAnnotation) typeResource.getSupportingAnnotation(NamedQueryAnnotation.ANNOTATION_NAME);
-		
-		assertEquals(QUERY_NAME, javaNamedQuery.getName());
-		assertEquals(QUERY_NAME, namedQuery.getName());
-				
-		//set name to null in the context model
-		namedQuery.setName(null);
-		assertNull(javaNamedQuery.getName());
-		assertNull(namedQuery.getName());
-
-		//set name in the context model, verify resource model updated
-		namedQuery.setName("foo");
-		assertEquals("foo", javaNamedQuery.getName());
-		assertEquals("foo", namedQuery.getName());
-	}
-	
-	public void testUpdateQuery() throws Exception {
-		createTestEntityWithNamedQuery();
-		addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
-		
-		Entity entity = getJavaEntity();
-		NamedQuery namedQuery = entity.namedQueries().next();
-				
-		JavaResourcePersistentType typeResource = getJpaProject().getJavaResourcePersistentType(FULLY_QUALIFIED_TYPE_NAME);
-		NamedQueryAnnotation javaNamedQuery = (NamedQueryAnnotation) typeResource.getSupportingAnnotation(NamedQueryAnnotation.ANNOTATION_NAME);
-		
-		assertEquals(QUERY_QUERY, javaNamedQuery.getQuery());
-		assertEquals(QUERY_QUERY, namedQuery.getQuery());
-				
-		//set name to null in the resource model
-		javaNamedQuery.setQuery(null);
-		assertNull(javaNamedQuery.getQuery());
-		assertNull(namedQuery.getQuery());
-
-		//set name in the resource model, verify context model updated
-		javaNamedQuery.setQuery("foo");
-		assertEquals("foo", javaNamedQuery.getQuery());
-		assertEquals("foo", namedQuery.getQuery());
-	}
-	
-	public void testModifyQuery() throws Exception {
-		createTestEntityWithNamedQuery();
-		addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
-		Entity entity = getJavaEntity();
-		NamedQuery namedQuery = entity.namedQueries().next();
-				
-		JavaResourcePersistentType typeResource = getJpaProject().getJavaResourcePersistentType(FULLY_QUALIFIED_TYPE_NAME);
-		NamedQueryAnnotation javaNamedQuery = (NamedQueryAnnotation) typeResource.getSupportingAnnotation(NamedQueryAnnotation.ANNOTATION_NAME);
-		
-		assertEquals(QUERY_QUERY, javaNamedQuery.getQuery());
-		assertEquals(QUERY_QUERY, namedQuery.getQuery());
-				
-		//set name to null in the context model
-		namedQuery.setQuery(null);
-		assertNull(javaNamedQuery.getQuery());
-		assertNull(namedQuery.getQuery());
-
-		//set name in the context model, verify resource model updated
-		namedQuery.setQuery("foo");
-		assertEquals("foo", javaNamedQuery.getQuery());
-		assertEquals("foo", namedQuery.getQuery());
-	}
-	
-	
-	public void testAddHint() throws Exception {
-		createTestEntityWithNamedQuery();
-		addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
-		Entity entity = getJavaEntity();
-		NamedQuery namedQuery = entity.namedQueries().next();
-				
-		JavaResourcePersistentType typeResource = getJpaProject().getJavaResourcePersistentType(FULLY_QUALIFIED_TYPE_NAME);
-		NamedQueryAnnotation javaNamedQuery = (NamedQueryAnnotation) typeResource.getSupportingAnnotation(NamedQueryAnnotation.ANNOTATION_NAME);
-	
-		
-		QueryHint queryHint = namedQuery.addHint(0);
-		queryHint.setName("FOO");
-
-		assertEquals("FOO", javaNamedQuery.hintAt(0).getName());
-		
-		QueryHint queryHint2 = namedQuery.addHint(0);
-		queryHint2.setName("BAR");
-		
-		assertEquals("BAR", javaNamedQuery.hintAt(0).getName());
-		assertEquals("FOO", javaNamedQuery.hintAt(1).getName());
-		
-		QueryHint queryHint3 = namedQuery.addHint(1);
-		queryHint3.setName("BAZ");
-		
-		assertEquals("BAR", javaNamedQuery.hintAt(0).getName());
-		assertEquals("BAZ", javaNamedQuery.hintAt(1).getName());
-		assertEquals("FOO", javaNamedQuery.hintAt(2).getName());
-		
-		ListIterator<QueryHint> hints = namedQuery.hints();
-		assertEquals(queryHint2, hints.next());
-		assertEquals(queryHint3, hints.next());
-		assertEquals(queryHint, hints.next());
-		
-		hints = namedQuery.hints();
-		assertEquals("BAR", hints.next().getName());
-		assertEquals("BAZ", hints.next().getName());
-		assertEquals("FOO", hints.next().getName());
-	}
-	
-	public void testRemoveHint() throws Exception {
-		createTestEntityWithNamedQuery();
-		addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
-		Entity entity = getJavaEntity();
-		NamedQuery namedQuery = entity.namedQueries().next();
-				
-		JavaResourcePersistentType typeResource = getJpaProject().getJavaResourcePersistentType(FULLY_QUALIFIED_TYPE_NAME);
-		NamedQueryAnnotation javaNamedQuery = (NamedQueryAnnotation) typeResource.getSupportingAnnotation(NamedQueryAnnotation.ANNOTATION_NAME);
-
-		namedQuery.addHint(0).setName("FOO");
-		namedQuery.addHint(1).setName("BAR");
-		namedQuery.addHint(2).setName("BAZ");
-		
-		assertEquals(3, javaNamedQuery.hintsSize());
-		
-		namedQuery.removeHint(0);
-		assertEquals(2, javaNamedQuery.hintsSize());
-		assertEquals("BAR", javaNamedQuery.hintAt(0).getName());
-		assertEquals("BAZ", javaNamedQuery.hintAt(1).getName());
-
-		namedQuery.removeHint(0);
-		assertEquals(1, javaNamedQuery.hintsSize());
-		assertEquals("BAZ", javaNamedQuery.hintAt(0).getName());
-		
-		namedQuery.removeHint(0);
-		assertEquals(0, javaNamedQuery.hintsSize());
-	}
-	
-	public void testMoveHint() throws Exception {
-		createTestEntityWithNamedQuery();
-		addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
-		Entity entity = getJavaEntity();
-		NamedQuery namedQuery = entity.namedQueries().next();
-				
-		JavaResourcePersistentType typeResource = getJpaProject().getJavaResourcePersistentType(FULLY_QUALIFIED_TYPE_NAME);
-		NamedQueryAnnotation javaNamedQuery = (NamedQueryAnnotation) typeResource.getSupportingAnnotation(NamedQueryAnnotation.ANNOTATION_NAME);
-
-		namedQuery.addHint(0).setName("FOO");
-		namedQuery.addHint(1).setName("BAR");
-		namedQuery.addHint(2).setName("BAZ");
-		
-		assertEquals(3, javaNamedQuery.hintsSize());
-		
-		
-		namedQuery.moveHint(2, 0);
-		ListIterator<QueryHint> hints = namedQuery.hints();
-		assertEquals("BAR", hints.next().getName());
-		assertEquals("BAZ", hints.next().getName());
-		assertEquals("FOO", hints.next().getName());
-
-		assertEquals("BAR", javaNamedQuery.hintAt(0).getName());
-		assertEquals("BAZ", javaNamedQuery.hintAt(1).getName());
-		assertEquals("FOO", javaNamedQuery.hintAt(2).getName());
-
-
-		namedQuery.moveHint(0, 1);
-		hints = namedQuery.hints();
-		assertEquals("BAZ", hints.next().getName());
-		assertEquals("BAR", hints.next().getName());
-		assertEquals("FOO", hints.next().getName());
-
-		assertEquals("BAZ", javaNamedQuery.hintAt(0).getName());
-		assertEquals("BAR", javaNamedQuery.hintAt(1).getName());
-		assertEquals("FOO", javaNamedQuery.hintAt(2).getName());
-	}
-	
-	public void testUpdateHints() throws Exception {
-		createTestEntityWithNamedQuery();
-		addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
-		Entity entity = getJavaEntity();
-		NamedQuery namedQuery = entity.namedQueries().next();
-				
-		JavaResourcePersistentType typeResource = getJpaProject().getJavaResourcePersistentType(FULLY_QUALIFIED_TYPE_NAME);
-		NamedQueryAnnotation javaNamedQuery = (NamedQueryAnnotation) typeResource.getSupportingAnnotation(NamedQueryAnnotation.ANNOTATION_NAME);
-		
-		javaNamedQuery.addHint(0);
-		javaNamedQuery.addHint(1);
-		javaNamedQuery.addHint(2);
-		
-		javaNamedQuery.hintAt(0).setName("FOO");
-		javaNamedQuery.hintAt(1).setName("BAR");
-		javaNamedQuery.hintAt(2).setName("BAZ");
-	
-		ListIterator<QueryHint> hints = namedQuery.hints();
-		assertEquals("FOO", hints.next().getName());
-		assertEquals("BAR", hints.next().getName());
-		assertEquals("BAZ", hints.next().getName());
-		assertFalse(hints.hasNext());
-		
-		javaNamedQuery.moveHint(2, 0);
-		hints = namedQuery.hints();
-		assertEquals("BAR", hints.next().getName());
-		assertEquals("BAZ", hints.next().getName());
-		assertEquals("FOO", hints.next().getName());
-		assertFalse(hints.hasNext());
-	
-		javaNamedQuery.moveHint(0, 1);
-		hints = namedQuery.hints();
-		assertEquals("BAZ", hints.next().getName());
-		assertEquals("BAR", hints.next().getName());
-		assertEquals("FOO", hints.next().getName());
-		assertFalse(hints.hasNext());
-	
-		javaNamedQuery.removeHint(1);
-		hints = namedQuery.hints();
-		assertEquals("BAZ", hints.next().getName());
-		assertEquals("FOO", hints.next().getName());
-		assertFalse(hints.hasNext());
-	
-		javaNamedQuery.removeHint(1);
-		hints = namedQuery.hints();
-		assertEquals("BAZ", hints.next().getName());
-		assertFalse(hints.hasNext());
-		
-		javaNamedQuery.removeHint(0);
-		assertFalse(namedQuery.hints().hasNext());
-	}
-	
-	public void testHintsSize() throws Exception {
-		createTestEntityWithNamedQuery();
-		addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
-		Entity entity = getJavaEntity();
-		
-		NamedQuery namedQuery = entity.namedQueries().next();
-		assertEquals(0, namedQuery.hintsSize());
-		
-		JavaResourcePersistentType typeResource = getJpaProject().getJavaResourcePersistentType(FULLY_QUALIFIED_TYPE_NAME);
-		NamedQueryAnnotation javaNamedQuery = (NamedQueryAnnotation) typeResource.getSupportingAnnotation(NamedQueryAnnotation.ANNOTATION_NAME);
-		
-		
-		javaNamedQuery.addHint(0);
-		assertEquals(1, namedQuery.hintsSize());
-		
-		javaNamedQuery.addHint(0);
-		assertEquals(2, namedQuery.hintsSize());
-		
-		javaNamedQuery.removeHint(0);
-		javaNamedQuery.removeHint(0);
-		assertEquals(0, namedQuery.hintsSize());
-	}
-}
diff --git a/jpa/tests/org.eclipse.jpt.core.tests/src/org/eclipse/jpt/core/tests/internal/context/java/JavaOneToManyMappingTests.java b/jpa/tests/org.eclipse.jpt.core.tests/src/org/eclipse/jpt/core/tests/internal/context/java/JavaOneToManyMappingTests.java
deleted file mode 100644
index 29cbf0d..0000000
--- a/jpa/tests/org.eclipse.jpt.core.tests/src/org/eclipse/jpt/core/tests/internal/context/java/JavaOneToManyMappingTests.java
+++ /dev/null
@@ -1,942 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2008 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.core.tests.internal.context.java;
-
-import java.util.Iterator;
-import java.util.ListIterator;
-import org.eclipse.jdt.core.ICompilationUnit;
-import org.eclipse.jpt.core.MappingKeys;
-import org.eclipse.jpt.core.context.BasicMapping;
-import org.eclipse.jpt.core.context.EmbeddedIdMapping;
-import org.eclipse.jpt.core.context.EmbeddedMapping;
-import org.eclipse.jpt.core.context.FetchType;
-import org.eclipse.jpt.core.context.IdMapping;
-import org.eclipse.jpt.core.context.ManyToManyMapping;
-import org.eclipse.jpt.core.context.ManyToOneMapping;
-import org.eclipse.jpt.core.context.OneToManyMapping;
-import org.eclipse.jpt.core.context.OneToOneMapping;
-import org.eclipse.jpt.core.context.PersistentAttribute;
-import org.eclipse.jpt.core.context.TransientMapping;
-import org.eclipse.jpt.core.context.TypeMapping;
-import org.eclipse.jpt.core.context.VersionMapping;
-import org.eclipse.jpt.core.context.java.JavaPersistentType;
-import org.eclipse.jpt.core.context.persistence.ClassRef;
-import org.eclipse.jpt.core.resource.java.BasicAnnotation;
-import org.eclipse.jpt.core.resource.java.EmbeddedAnnotation;
-import org.eclipse.jpt.core.resource.java.EmbeddedIdAnnotation;
-import org.eclipse.jpt.core.resource.java.IdAnnotation;
-import org.eclipse.jpt.core.resource.java.JPA;
-import org.eclipse.jpt.core.resource.java.JavaResourcePersistentAttribute;
-import org.eclipse.jpt.core.resource.java.JavaResourcePersistentType;
-import org.eclipse.jpt.core.resource.java.JoinTableAnnotation;
-import org.eclipse.jpt.core.resource.java.ManyToManyAnnotation;
-import org.eclipse.jpt.core.resource.java.ManyToOneAnnotation;
-import org.eclipse.jpt.core.resource.java.MapKeyAnnotation;
-import org.eclipse.jpt.core.resource.java.OneToManyAnnotation;
-import org.eclipse.jpt.core.resource.java.OneToOneAnnotation;
-import org.eclipse.jpt.core.resource.java.OrderByAnnotation;
-import org.eclipse.jpt.core.resource.java.TransientAnnotation;
-import org.eclipse.jpt.core.resource.java.VersionAnnotation;
-import org.eclipse.jpt.core.tests.internal.context.ContextModelTestCase;
-import org.eclipse.jpt.core.tests.internal.projects.TestJavaProject.SourceWriter;
-import org.eclipse.jpt.utility.internal.iterators.ArrayIterator;
-
-@SuppressWarnings("nls")
-public class JavaOneToManyMappingTests extends ContextModelTestCase
-{
-
-	private void createTestTargetEntityAddress() throws Exception {
-		SourceWriter sourceWriter = new SourceWriter() {
-			public void appendSourceTo(StringBuilder sb) {
-				sb.append(CR);
-					sb.append("import ");
-					sb.append(JPA.ENTITY);
-					sb.append(";");
-					sb.append(CR);
-					sb.append("import ");
-					sb.append(JPA.ID);
-					sb.append(";");
-					sb.append(CR);
-				sb.append("@Entity");
-				sb.append(CR);
-				sb.append("public class ").append("Address").append(" ");
-				sb.append("{").append(CR);
-				sb.append(CR);
-				sb.append("    @Id").append(CR);
-				sb.append("    private int id;").append(CR);
-				sb.append(CR);
-				sb.append("    private String city;").append(CR);
-				sb.append(CR);
-				sb.append("    private String state;").append(CR);
-				sb.append(CR);
-				sb.append("    private int zip;").append(CR);
-				sb.append(CR);
-				sb.append("}").append(CR);
-		}
-		};
-		this.javaProject.createCompilationUnit(PACKAGE_NAME, "Address.java", sourceWriter);
-	}
-
-	private ICompilationUnit createTestEntityWithOneToManyMapping() throws Exception {
-		return this.createTestType(new DefaultAnnotationWriter() {
-			@Override
-			public Iterator<String> imports() {
-				return new ArrayIterator<String>(JPA.ENTITY, JPA.ONE_TO_MANY);
-			}
-			@Override
-			public void appendTypeAnnotationTo(StringBuilder sb) {
-				sb.append("@Entity").append(CR);
-			}
-			
-			@Override
-			public void appendIdFieldAnnotationTo(StringBuilder sb) {
-				sb.append("@OneToMany").append(CR);
-			}
-		});
-	}
-	
-	private ICompilationUnit createTestEntityWithValidOneToManyMapping() throws Exception {
-		return this.createTestType(new DefaultAnnotationWriter() {
-			@Override
-			public Iterator<String> imports() {
-				return new ArrayIterator<String>(JPA.ENTITY, JPA.ONE_TO_MANY, JPA.ID, "java.util.Collection");
-			}
-			@Override
-			public void appendTypeAnnotationTo(StringBuilder sb) {
-				sb.append("@Entity").append(CR);
-			}
-			
-			@Override
-			public void appendIdFieldAnnotationTo(StringBuilder sb) {
-				sb.append(CR);
-				sb.append("    @OneToMany").append(CR);				
-				sb.append("    private Collection<Address> addresses;").append(CR);
-				sb.append(CR);
-				sb.append("    @Id").append(CR);				
-			}
-		});
-	}
-
-	private ICompilationUnit createTestEntityWithCollectionOneToManyMapping() throws Exception {
-		return this.createTestType(new DefaultAnnotationWriter() {
-			@Override
-			public Iterator<String> imports() {
-				return new ArrayIterator<String>(JPA.ENTITY, JPA.ONE_TO_MANY, JPA.ID, "java.util.Collection");
-			}
-			@Override
-			public void appendTypeAnnotationTo(StringBuilder sb) {
-				sb.append("@Entity").append(CR);
-			}
-			
-			@Override
-			public void appendIdFieldAnnotationTo(StringBuilder sb) {
-				sb.append(CR);
-				sb.append("    @OneToMany").append(CR);				
-				sb.append("    private Collection addresses;").append(CR);
-				sb.append(CR);
-				sb.append("    @Id").append(CR);				
-			}
-		});
-	}
-	private ICompilationUnit createTestEntityWithNonCollectionOneToManyMapping() throws Exception {
-		return this.createTestType(new DefaultAnnotationWriter() {
-			@Override
-			public Iterator<String> imports() {
-				return new ArrayIterator<String>(JPA.ENTITY, JPA.ONE_TO_MANY, JPA.ID);
-			}
-			@Override
-			public void appendTypeAnnotationTo(StringBuilder sb) {
-				sb.append("@Entity").append(CR);
-			}
-			
-			@Override
-			public void appendIdFieldAnnotationTo(StringBuilder sb) {
-				sb.append(CR);
-				sb.append("    @OneToMany").append(CR);				
-				sb.append("    private Address addresses;").append(CR);
-				sb.append(CR);
-				sb.append("    @Id").append(CR);				
-			}
-		});
-	}
-	
-	private void createTestDepartment() throws Exception {
-		SourceWriter sourceWriter = new SourceWriter() {
-			public void appendSourceTo(StringBuilder sb) {
-				sb.append(CR);
-					sb.append("import ").append(JPA.ENTITY).append(";");
-					sb.append(CR);
-					sb.append("import ").append(JPA.ID).append(";");
-					sb.append(CR);
-					sb.append("import java.util.Map;");
-					sb.append(CR);
-					sb.append("import ").append(JPA.ONE_TO_MANY).append(";");
-				sb.append("@Entity");
-				sb.append(CR);
-				sb.append("public class ").append("Department").append(" ");
-				sb.append("{").append(CR);
-				sb.append(CR);
-				sb.append("    @Id").append(CR);
-				sb.append("    private int id;").append(CR);
-				sb.append(CR);
-				sb.append("    @OneToMany").append(CR);
-				sb.append("    private Map<Integer, Employee> employees;").append(CR);
-				sb.append(CR);
-				sb.append("}").append(CR);
-		}
-		};
-		this.javaProject.createCompilationUnit(PACKAGE_NAME, "Department.java", sourceWriter);
-	}
-
-	private void createTestEmployee() throws Exception {
-		SourceWriter sourceWriter = new SourceWriter() {
-			public void appendSourceTo(StringBuilder sb) {
-				sb.append(CR);
-					sb.append("import ").append(JPA.ENTITY).append(";");
-					sb.append(CR);
-					sb.append("import ").append(JPA.ID).append(";");
-					sb.append(CR);
-			sb.append("@Entity");
-				sb.append(CR);
-				sb.append("public class ").append("Employee").append(" ");
-				sb.append("{").append(CR);
-				sb.append(CR);
-				sb.append("    @Id").append(CR);
-				sb.append("    private int empId;").append(CR);
-				sb.append(CR);
-				sb.append("}").append(CR);
-		}
-		};
-		this.javaProject.createCompilationUnit(PACKAGE_NAME, "Employee.java", sourceWriter);
-	}
-	
-	public JavaOneToManyMappingTests(String name) {
-		super(name);
-	}
-	
-	public void testMorphToBasicMapping() throws Exception {
-		createTestEntityWithOneToManyMapping();
-		addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
-		
-		PersistentAttribute persistentAttribute = getJavaPersistentType().attributes().next();
-		OneToManyMapping oneToManyMapping = (OneToManyMapping) persistentAttribute.getMapping();
-		oneToManyMapping.setOrderBy("asdf");
-		oneToManyMapping.getRelationshipReference().getJoinTableJoiningStrategy().getJoinTable().setSpecifiedName("FOO");
-		assertFalse(oneToManyMapping.isDefault());
-		
-		persistentAttribute.setSpecifiedMappingKey(MappingKeys.BASIC_ATTRIBUTE_MAPPING_KEY);
-		assertTrue(persistentAttribute.getMapping() instanceof BasicMapping);
-		assertFalse(persistentAttribute.getMapping().isDefault());
-		
-		JavaResourcePersistentType typeResource = getJpaProject().getJavaResourcePersistentType(FULLY_QUALIFIED_TYPE_NAME);
-		JavaResourcePersistentAttribute attributeResource = typeResource.persistableAttributes().next();
-		assertNull(attributeResource.getMappingAnnotation(OneToManyAnnotation.ANNOTATION_NAME));
-		assertNotNull(attributeResource.getMappingAnnotation(BasicAnnotation.ANNOTATION_NAME));
-		assertNull(attributeResource.getSupportingAnnotation(JoinTableAnnotation.ANNOTATION_NAME));
-		assertNull(attributeResource.getSupportingAnnotation(OrderByAnnotation.ANNOTATION_NAME));
-	}
-	
-	public void testMorphToDefault() throws Exception {
-		createTestEntityWithOneToManyMapping();
-		addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
-		
-		PersistentAttribute persistentAttribute = getJavaPersistentType().attributes().next();
-		OneToManyMapping oneToManyMapping = (OneToManyMapping) persistentAttribute.getMapping();
-		oneToManyMapping.setOrderBy("asdf");
-		oneToManyMapping.getRelationshipReference().getJoinTableJoiningStrategy().getJoinTable().setSpecifiedName("FOO");
-		assertFalse(oneToManyMapping.isDefault());
-		
-		persistentAttribute.setSpecifiedMappingKey(MappingKeys.NULL_ATTRIBUTE_MAPPING_KEY);
-		assertNull(persistentAttribute.getSpecifiedMapping());
-		assertTrue(persistentAttribute.getMapping().isDefault());
-	
-		JavaResourcePersistentType typeResource = getJpaProject().getJavaResourcePersistentType(FULLY_QUALIFIED_TYPE_NAME);
-		JavaResourcePersistentAttribute attributeResource = typeResource.persistableAttributes().next();
-		assertNull(attributeResource.getMappingAnnotation(OneToManyAnnotation.ANNOTATION_NAME));
-		assertNull(attributeResource.getSupportingAnnotation(JoinTableAnnotation.ANNOTATION_NAME));
-		assertNull(attributeResource.getSupportingAnnotation(OrderByAnnotation.ANNOTATION_NAME));
-	}
-	
-	public void testMorphToVersionMapping() throws Exception {
-		createTestEntityWithOneToManyMapping();
-		addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
-		
-		PersistentAttribute persistentAttribute = getJavaPersistentType().attributes().next();
-		OneToManyMapping oneToManyMapping = (OneToManyMapping) persistentAttribute.getMapping();
-		oneToManyMapping.setOrderBy("asdf");
-		oneToManyMapping.getRelationshipReference().getJoinTableJoiningStrategy().getJoinTable().setSpecifiedName("FOO");
-		assertFalse(oneToManyMapping.isDefault());
-		
-		persistentAttribute.setSpecifiedMappingKey(MappingKeys.VERSION_ATTRIBUTE_MAPPING_KEY);
-		assertTrue(persistentAttribute.getMapping() instanceof VersionMapping);
-		assertFalse(persistentAttribute.getMapping().isDefault());
-		
-		JavaResourcePersistentType typeResource = getJpaProject().getJavaResourcePersistentType(FULLY_QUALIFIED_TYPE_NAME);
-		JavaResourcePersistentAttribute attributeResource = typeResource.persistableAttributes().next();
-		assertNull(attributeResource.getMappingAnnotation(OneToManyAnnotation.ANNOTATION_NAME));
-		assertNotNull(attributeResource.getMappingAnnotation(VersionAnnotation.ANNOTATION_NAME));
-		assertNull(attributeResource.getSupportingAnnotation(JoinTableAnnotation.ANNOTATION_NAME));
-		assertNull(attributeResource.getSupportingAnnotation(OrderByAnnotation.ANNOTATION_NAME));
-	}
-	
-	public void testMorphToIdMapping() throws Exception {
-		createTestEntityWithOneToManyMapping();
-		addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
-		
-		PersistentAttribute persistentAttribute = getJavaPersistentType().attributes().next();
-		OneToManyMapping oneToManyMapping = (OneToManyMapping) persistentAttribute.getMapping();
-		oneToManyMapping.setOrderBy("asdf");
-		oneToManyMapping.getRelationshipReference().getJoinTableJoiningStrategy().getJoinTable().setSpecifiedName("FOO");
-		assertFalse(oneToManyMapping.isDefault());
-		
-		persistentAttribute.setSpecifiedMappingKey(MappingKeys.ID_ATTRIBUTE_MAPPING_KEY);
-		assertTrue(persistentAttribute.getMapping() instanceof IdMapping);
-		assertFalse(persistentAttribute.getMapping().isDefault());
-		
-		JavaResourcePersistentType typeResource = getJpaProject().getJavaResourcePersistentType(FULLY_QUALIFIED_TYPE_NAME);
-		JavaResourcePersistentAttribute attributeResource = typeResource.persistableAttributes().next();
-		assertNull(attributeResource.getMappingAnnotation(OneToManyAnnotation.ANNOTATION_NAME));
-		assertNotNull(attributeResource.getMappingAnnotation(IdAnnotation.ANNOTATION_NAME));
-		assertNull(attributeResource.getSupportingAnnotation(JoinTableAnnotation.ANNOTATION_NAME));
-		assertNull(attributeResource.getSupportingAnnotation(OrderByAnnotation.ANNOTATION_NAME));
-	}
-	
-	public void testMorphToEmbeddedMapping() throws Exception {
-		createTestEntityWithOneToManyMapping();
-		addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
-		
-		PersistentAttribute persistentAttribute = getJavaPersistentType().attributes().next();
-		OneToManyMapping oneToManyMapping = (OneToManyMapping) persistentAttribute.getMapping();
-		oneToManyMapping.setOrderBy("asdf");
-		oneToManyMapping.getRelationshipReference().getJoinTableJoiningStrategy().getJoinTable().setSpecifiedName("FOO");
-		assertFalse(oneToManyMapping.isDefault());
-		
-		persistentAttribute.setSpecifiedMappingKey(MappingKeys.EMBEDDED_ATTRIBUTE_MAPPING_KEY);
-		assertTrue(persistentAttribute.getMapping() instanceof EmbeddedMapping);
-		assertFalse(persistentAttribute.getMapping().isDefault());
-		
-		JavaResourcePersistentType typeResource = getJpaProject().getJavaResourcePersistentType(FULLY_QUALIFIED_TYPE_NAME);
-		JavaResourcePersistentAttribute attributeResource = typeResource.persistableAttributes().next();
-		assertNull(attributeResource.getMappingAnnotation(OneToManyAnnotation.ANNOTATION_NAME));
-		assertNotNull(attributeResource.getMappingAnnotation(EmbeddedAnnotation.ANNOTATION_NAME));
-		assertNull(attributeResource.getSupportingAnnotation(JoinTableAnnotation.ANNOTATION_NAME));
-		assertNull(attributeResource.getSupportingAnnotation(OrderByAnnotation.ANNOTATION_NAME));
-	}
-	
-	public void testMorphToEmbeddedIdMapping() throws Exception {
-		createTestEntityWithOneToManyMapping();
-		addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
-		
-		PersistentAttribute persistentAttribute = getJavaPersistentType().attributes().next();
-		OneToManyMapping oneToManyMapping = (OneToManyMapping) persistentAttribute.getMapping();
-		oneToManyMapping.setOrderBy("asdf");
-		oneToManyMapping.getRelationshipReference().getJoinTableJoiningStrategy().getJoinTable().setSpecifiedName("FOO");
-		assertFalse(oneToManyMapping.isDefault());
-		
-		persistentAttribute.setSpecifiedMappingKey(MappingKeys.EMBEDDED_ID_ATTRIBUTE_MAPPING_KEY);
-		assertTrue(persistentAttribute.getMapping() instanceof EmbeddedIdMapping);
-		assertFalse(persistentAttribute.getMapping().isDefault());
-		
-		JavaResourcePersistentType typeResource = getJpaProject().getJavaResourcePersistentType(FULLY_QUALIFIED_TYPE_NAME);
-		JavaResourcePersistentAttribute attributeResource = typeResource.persistableAttributes().next();
-		assertNull(attributeResource.getMappingAnnotation(OneToManyAnnotation.ANNOTATION_NAME));
-		assertNotNull(attributeResource.getMappingAnnotation(EmbeddedIdAnnotation.ANNOTATION_NAME));
-		assertNull(attributeResource.getSupportingAnnotation(JoinTableAnnotation.ANNOTATION_NAME));
-		assertNull(attributeResource.getSupportingAnnotation(OrderByAnnotation.ANNOTATION_NAME));
-	}
-	
-	public void testMorphToTransientMapping() throws Exception {
-		createTestEntityWithOneToManyMapping();
-		addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
-		
-		PersistentAttribute persistentAttribute = getJavaPersistentType().attributes().next();
-		OneToManyMapping oneToManyMapping = (OneToManyMapping) persistentAttribute.getMapping();
-		oneToManyMapping.setOrderBy("asdf");
-		oneToManyMapping.getRelationshipReference().getJoinTableJoiningStrategy().getJoinTable().setSpecifiedName("FOO");
-		assertFalse(oneToManyMapping.isDefault());
-		
-		persistentAttribute.setSpecifiedMappingKey(MappingKeys.TRANSIENT_ATTRIBUTE_MAPPING_KEY);
-		assertTrue(persistentAttribute.getMapping() instanceof TransientMapping);
-		assertFalse(persistentAttribute.getMapping().isDefault());
-		
-		JavaResourcePersistentType typeResource = getJpaProject().getJavaResourcePersistentType(FULLY_QUALIFIED_TYPE_NAME);
-		JavaResourcePersistentAttribute attributeResource = typeResource.persistableAttributes().next();
-		assertNull(attributeResource.getMappingAnnotation(OneToManyAnnotation.ANNOTATION_NAME));
-		assertNotNull(attributeResource.getMappingAnnotation(TransientAnnotation.ANNOTATION_NAME));
-		assertNull(attributeResource.getSupportingAnnotation(JoinTableAnnotation.ANNOTATION_NAME));
-		assertNull(attributeResource.getSupportingAnnotation(OrderByAnnotation.ANNOTATION_NAME));
-	}
-	
-	public void testMorphToOneToOneMapping() throws Exception {
-		createTestEntityWithOneToManyMapping();
-		addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
-		
-		PersistentAttribute persistentAttribute = getJavaPersistentType().attributes().next();
-		OneToManyMapping oneToManyMapping = (OneToManyMapping) persistentAttribute.getMapping();
-		oneToManyMapping.setOrderBy("asdf");
-		oneToManyMapping.getRelationshipReference().getJoinTableJoiningStrategy().getJoinTable().setSpecifiedName("FOO");
-		assertFalse(oneToManyMapping.isDefault());
-		
-		persistentAttribute.setSpecifiedMappingKey(MappingKeys.ONE_TO_ONE_ATTRIBUTE_MAPPING_KEY);
-		assertTrue(persistentAttribute.getMapping() instanceof OneToOneMapping);
-		assertFalse(persistentAttribute.getMapping().isDefault());
-		
-		JavaResourcePersistentType typeResource = getJpaProject().getJavaResourcePersistentType(FULLY_QUALIFIED_TYPE_NAME);
-		JavaResourcePersistentAttribute attributeResource = typeResource.persistableAttributes().next();
-		assertNull(attributeResource.getMappingAnnotation(OneToManyAnnotation.ANNOTATION_NAME));
-		assertNotNull(attributeResource.getMappingAnnotation(OneToOneAnnotation.ANNOTATION_NAME));
-		assertNotNull(attributeResource.getSupportingAnnotation(JoinTableAnnotation.ANNOTATION_NAME));
-		assertNull(attributeResource.getSupportingAnnotation(OrderByAnnotation.ANNOTATION_NAME));
-	}
-	
-	public void testMorphToManyToManyMapping() throws Exception {
-		createTestEntityWithOneToManyMapping();
-		addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
-		
-		PersistentAttribute persistentAttribute = getJavaPersistentType().attributes().next();
-		OneToManyMapping oneToManyMapping = (OneToManyMapping) persistentAttribute.getMapping();
-		oneToManyMapping.setOrderBy("asdf");
-		oneToManyMapping.getRelationshipReference().getJoinTableJoiningStrategy().getJoinTable().setSpecifiedName("FOO");
-		assertFalse(oneToManyMapping.isDefault());
-		
-		persistentAttribute.setSpecifiedMappingKey(MappingKeys.MANY_TO_MANY_ATTRIBUTE_MAPPING_KEY);
-		assertTrue(persistentAttribute.getMapping() instanceof ManyToManyMapping);
-		assertFalse(persistentAttribute.getMapping().isDefault());
-		
-		JavaResourcePersistentType typeResource = getJpaProject().getJavaResourcePersistentType(FULLY_QUALIFIED_TYPE_NAME);
-		JavaResourcePersistentAttribute attributeResource = typeResource.persistableAttributes().next();
-		assertNull(attributeResource.getMappingAnnotation(OneToManyAnnotation.ANNOTATION_NAME));
-		assertNotNull(attributeResource.getMappingAnnotation(ManyToManyAnnotation.ANNOTATION_NAME));
-		assertNotNull(attributeResource.getSupportingAnnotation(JoinTableAnnotation.ANNOTATION_NAME));
-		assertNotNull(attributeResource.getSupportingAnnotation(OrderByAnnotation.ANNOTATION_NAME));
-	}
-	
-	public void testMorphToManyToOneMapping() throws Exception {
-		createTestEntityWithOneToManyMapping();
-		addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
-		
-		PersistentAttribute persistentAttribute = getJavaPersistentType().attributes().next();
-		OneToManyMapping oneToManyMapping = (OneToManyMapping) persistentAttribute.getMapping();
-		oneToManyMapping.setOrderBy("asdf");
-		oneToManyMapping.getRelationshipReference().getJoinTableJoiningStrategy().getJoinTable().setSpecifiedName("FOO");
-		assertFalse(oneToManyMapping.isDefault());
-		
-		persistentAttribute.setSpecifiedMappingKey(MappingKeys.MANY_TO_ONE_ATTRIBUTE_MAPPING_KEY);
-		assertTrue(persistentAttribute.getMapping() instanceof ManyToOneMapping);
-		assertFalse(persistentAttribute.getMapping().isDefault());
-		
-		JavaResourcePersistentType typeResource = getJpaProject().getJavaResourcePersistentType(FULLY_QUALIFIED_TYPE_NAME);
-		JavaResourcePersistentAttribute attributeResource = typeResource.persistableAttributes().next();
-		assertNull(attributeResource.getMappingAnnotation(OneToManyAnnotation.ANNOTATION_NAME));
-		assertNotNull(attributeResource.getMappingAnnotation(ManyToOneAnnotation.ANNOTATION_NAME));
-		assertNotNull(attributeResource.getSupportingAnnotation(JoinTableAnnotation.ANNOTATION_NAME));
-		assertNull(attributeResource.getSupportingAnnotation(OrderByAnnotation.ANNOTATION_NAME));
-	}
-
-	
-	public void testUpdateSpecifiedTargetEntity() throws Exception {
-		createTestEntityWithOneToManyMapping();
-		addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
-		
-		PersistentAttribute persistentAttribute = getJavaPersistentType().attributes().next();
-		OneToManyMapping oneToManyMapping = (OneToManyMapping) persistentAttribute.getMapping();
-		
-		JavaResourcePersistentType typeResource = getJpaProject().getJavaResourcePersistentType(FULLY_QUALIFIED_TYPE_NAME);
-		JavaResourcePersistentAttribute attributeResource = typeResource.persistableAttributes().next();
-		OneToManyAnnotation oneToMany = (OneToManyAnnotation) attributeResource.getMappingAnnotation();
-		
-		assertNull(oneToManyMapping.getSpecifiedTargetEntity());
-		assertNull(oneToMany.getTargetEntity());
-				
-		//set target entity in the resource model, verify context model updated
-		oneToMany.setTargetEntity("newTargetEntity");
-		assertEquals("newTargetEntity", oneToManyMapping.getSpecifiedTargetEntity());
-		assertEquals("newTargetEntity", oneToMany.getTargetEntity());
-	
-		//set target entity to null in the resource model
-		oneToMany.setTargetEntity(null);
-		assertNull(oneToManyMapping.getSpecifiedTargetEntity());
-		assertNull(oneToMany.getTargetEntity());
-	}
-	
-	public void testModifySpecifiedTargetEntity() throws Exception {
-		createTestEntityWithOneToManyMapping();
-		addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
-		
-		PersistentAttribute persistentAttribute = getJavaPersistentType().attributes().next();
-		OneToManyMapping oneToManyMapping = (OneToManyMapping) persistentAttribute.getMapping();
-		
-		JavaResourcePersistentType typeResource = getJpaProject().getJavaResourcePersistentType(FULLY_QUALIFIED_TYPE_NAME);
-		JavaResourcePersistentAttribute attributeResource = typeResource.persistableAttributes().next();
-		OneToManyAnnotation oneToMany = (OneToManyAnnotation) attributeResource.getMappingAnnotation();
-		
-		assertNull(oneToManyMapping.getSpecifiedTargetEntity());
-		assertNull(oneToMany.getTargetEntity());
-				
-		//set target entity in the context model, verify resource model updated
-		oneToManyMapping.setSpecifiedTargetEntity("newTargetEntity");
-		assertEquals("newTargetEntity", oneToManyMapping.getSpecifiedTargetEntity());
-		assertEquals("newTargetEntity", oneToMany.getTargetEntity());
-	
-		//set target entity to null in the context model
-		oneToManyMapping.setSpecifiedTargetEntity(null);
-		assertNull(oneToManyMapping.getSpecifiedTargetEntity());
-		assertNull(oneToMany.getTargetEntity());
-	}
-	
-	public void testUpdateSpecifiedFetch() throws Exception {
-		createTestEntityWithOneToManyMapping();
-		addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
-		
-		PersistentAttribute persistentAttribute = getJavaPersistentType().attributes().next();
-		OneToManyMapping oneToManyMapping = (OneToManyMapping) persistentAttribute.getMapping();
-		
-		JavaResourcePersistentType typeResource = getJpaProject().getJavaResourcePersistentType(FULLY_QUALIFIED_TYPE_NAME);
-		JavaResourcePersistentAttribute attributeResource = typeResource.persistableAttributes().next();
-		OneToManyAnnotation oneToMany = (OneToManyAnnotation) attributeResource.getMappingAnnotation();
-		
-		assertNull(oneToManyMapping.getSpecifiedFetch());
-		assertNull(oneToMany.getFetch());
-				
-		//set fetch in the resource model, verify context model updated
-		oneToMany.setFetch(org.eclipse.jpt.core.resource.java.FetchType.EAGER);
-		assertEquals(FetchType.EAGER, oneToManyMapping.getSpecifiedFetch());
-		assertEquals(org.eclipse.jpt.core.resource.java.FetchType.EAGER, oneToMany.getFetch());
-	
-		oneToMany.setFetch(org.eclipse.jpt.core.resource.java.FetchType.LAZY);
-		assertEquals(FetchType.LAZY, oneToManyMapping.getSpecifiedFetch());
-		assertEquals(org.eclipse.jpt.core.resource.java.FetchType.LAZY, oneToMany.getFetch());
-
-		
-		//set fetch to null in the resource model
-		oneToMany.setFetch(null);
-		assertNull(oneToManyMapping.getSpecifiedFetch());
-		assertNull(oneToMany.getFetch());
-	}
-	
-	public void testModifySpecifiedFetch() throws Exception {
-		createTestEntityWithOneToManyMapping();
-		addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
-		
-		PersistentAttribute persistentAttribute = getJavaPersistentType().attributes().next();
-		OneToManyMapping oneToManyMapping = (OneToManyMapping) persistentAttribute.getMapping();
-		
-		JavaResourcePersistentType typeResource = getJpaProject().getJavaResourcePersistentType(FULLY_QUALIFIED_TYPE_NAME);
-		JavaResourcePersistentAttribute attributeResource = typeResource.persistableAttributes().next();
-		OneToManyAnnotation oneToMany = (OneToManyAnnotation) attributeResource.getMappingAnnotation();
-		
-		assertNull(oneToManyMapping.getSpecifiedFetch());
-		assertNull(oneToMany.getFetch());
-				
-		//set fetch in the context model, verify resource model updated
-		oneToManyMapping.setSpecifiedFetch(FetchType.EAGER);
-		assertEquals(FetchType.EAGER, oneToManyMapping.getSpecifiedFetch());
-		assertEquals(org.eclipse.jpt.core.resource.java.FetchType.EAGER, oneToMany.getFetch());
-	
-		oneToManyMapping.setSpecifiedFetch(FetchType.LAZY);
-		assertEquals(FetchType.LAZY, oneToManyMapping.getSpecifiedFetch());
-		assertEquals(org.eclipse.jpt.core.resource.java.FetchType.LAZY, oneToMany.getFetch());
-
-		
-		//set fetch to null in the context model
-		oneToManyMapping.setSpecifiedFetch(null);
-		assertNull(oneToManyMapping.getSpecifiedFetch());
-		assertNull(oneToMany.getFetch());
-	}
-
-	public void testUpdateMappedBy() throws Exception {
-		createTestEntityWithOneToManyMapping();
-		addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
-		
-		PersistentAttribute persistentAttribute = getJavaPersistentType().attributes().next();
-		OneToManyMapping oneToManyMapping = (OneToManyMapping) persistentAttribute.getMapping();
-		
-		JavaResourcePersistentType typeResource = getJpaProject().getJavaResourcePersistentType(FULLY_QUALIFIED_TYPE_NAME);
-		JavaResourcePersistentAttribute attributeResource = typeResource.persistableAttributes().next();
-		OneToManyAnnotation oneToMany = (OneToManyAnnotation) attributeResource.getMappingAnnotation();
-		
-		assertNull(oneToManyMapping.getRelationshipReference().getMappedByJoiningStrategy().getMappedByAttribute());
-		assertNull(oneToMany.getMappedBy());
-				
-		//set mappedBy in the resource model, verify context model updated
-		oneToMany.setMappedBy("newMappedBy");
-		assertEquals("newMappedBy", oneToManyMapping.getRelationshipReference().getMappedByJoiningStrategy().getMappedByAttribute());
-		assertEquals("newMappedBy", oneToMany.getMappedBy());
-	
-		//set mappedBy to null in the resource model
-		oneToMany.setMappedBy(null);
-		assertNull(oneToManyMapping.getRelationshipReference().getMappedByJoiningStrategy().getMappedByAttribute());
-		assertNull(oneToMany.getMappedBy());
-	}
-	
-	public void testModifyMappedBy() throws Exception {
-		createTestEntityWithOneToManyMapping();
-		addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
-		
-		PersistentAttribute persistentAttribute = getJavaPersistentType().attributes().next();
-		OneToManyMapping oneToManyMapping = (OneToManyMapping) persistentAttribute.getMapping();
-		
-		JavaResourcePersistentType typeResource = getJpaProject().getJavaResourcePersistentType(FULLY_QUALIFIED_TYPE_NAME);
-		JavaResourcePersistentAttribute attributeResource = typeResource.persistableAttributes().next();
-		OneToManyAnnotation oneToMany = (OneToManyAnnotation) attributeResource.getMappingAnnotation();
-		
-		assertNull(oneToManyMapping.getRelationshipReference().getMappedByJoiningStrategy().getMappedByAttribute());
-		assertNull(oneToMany.getMappedBy());
-				
-		//set mappedBy in the context model, verify resource model updated
-		oneToManyMapping.getRelationshipReference().getMappedByJoiningStrategy().setMappedByAttribute("newTargetEntity");
-		assertEquals("newTargetEntity", oneToManyMapping.getRelationshipReference().getMappedByJoiningStrategy().getMappedByAttribute());
-		assertEquals("newTargetEntity", oneToMany.getMappedBy());
-	
-		//set mappedBy to null in the context model
-		oneToManyMapping.getRelationshipReference().getMappedByJoiningStrategy().setMappedByAttribute(null);
-		assertNull(oneToManyMapping.getRelationshipReference().getMappedByJoiningStrategy().getMappedByAttribute());
-		assertNull(oneToMany.getMappedBy());
-	}
-
-
-	public void testCandidateMappedByAttributeNames() throws Exception {
-		createTestEntityWithValidOneToManyMapping();
-		createTestTargetEntityAddress();
-		addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
-		addXmlClassRef(PACKAGE_NAME + ".Address");
-		
-		PersistentAttribute persistentAttribute = getJavaPersistentType().attributes().next();
-		OneToManyMapping oneToManyMapping = (OneToManyMapping) persistentAttribute.getMapping();
-
-		Iterator<String> attributeNames = 
-			oneToManyMapping.getRelationshipReference().getMappedByJoiningStrategy().candidateMappedByAttributeNames();
-		assertEquals("id", attributeNames.next());
-		assertEquals("city", attributeNames.next());
-		assertEquals("state", attributeNames.next());
-		assertEquals("zip", attributeNames.next());
-		assertFalse(attributeNames.hasNext());
-		
-		oneToManyMapping.setSpecifiedTargetEntity("foo");
-		attributeNames = 
-			oneToManyMapping.getRelationshipReference().getMappedByJoiningStrategy().candidateMappedByAttributeNames();
-		assertFalse(attributeNames.hasNext());
-		
-		oneToManyMapping.setSpecifiedTargetEntity(null);
-		attributeNames = 
-			oneToManyMapping.getRelationshipReference().getMappedByJoiningStrategy().candidateMappedByAttributeNames();
-		assertEquals("id", attributeNames.next());
-		assertEquals("city", attributeNames.next());
-		assertEquals("state", attributeNames.next());
-		assertEquals("zip", attributeNames.next());
-		assertFalse(attributeNames.hasNext());
-	}
-
-	public void testDefaultTargetEntity() throws Exception {
-		createTestEntityWithValidOneToManyMapping();
-		createTestTargetEntityAddress();
-		addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
-		
-		PersistentAttribute persistentAttribute = getJavaPersistentType().attributes().next();
-		OneToManyMapping oneToManyMapping = (OneToManyMapping) persistentAttribute.getMapping();
-
-		//targetEntity not in the persistence unit, default still set, handled by validation
-		assertEquals(PACKAGE_NAME + ".Address", oneToManyMapping.getDefaultTargetEntity());
-		
-		//add targetEntity to the persistence unit
-		addXmlClassRef(PACKAGE_NAME + ".Address");
-		assertEquals(PACKAGE_NAME + ".Address", oneToManyMapping.getDefaultTargetEntity());
-
-		//test default still the same when specified target entity it set
-		oneToManyMapping.setSpecifiedTargetEntity("foo");
-		assertEquals(PACKAGE_NAME + ".Address", oneToManyMapping.getDefaultTargetEntity());
-		
-		ListIterator<ClassRef> classRefs = getPersistenceUnit().specifiedClassRefs();
-		classRefs.next();
-		ClassRef addressClassRef = classRefs.next();
-		JavaPersistentType addressPersistentType = addressClassRef.getJavaPersistentType();
-
-		//test target is not an Entity, default target entity still exists, this case handled with validation
-		addressPersistentType.setMappingKey(MappingKeys.NULL_TYPE_MAPPING_KEY);
-		assertEquals(PACKAGE_NAME + ".Address", oneToManyMapping.getDefaultTargetEntity());
-	}
-	
-	public void testDefaultTargetEntityCollectionType() throws Exception {
-		createTestEntityWithCollectionOneToManyMapping();
-		createTestTargetEntityAddress();
-		addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
-		addXmlClassRef(PACKAGE_NAME + ".Address");
-	
-		PersistentAttribute persistentAttribute = getJavaPersistentType().attributes().next();
-		OneToManyMapping oneToManyMapping = (OneToManyMapping) persistentAttribute.getMapping();
-
-		assertNull(oneToManyMapping.getDefaultTargetEntity());
-	}
-	
-	public void testDefaultTargetEntityNonCollectionType() throws Exception {
-		createTestEntityWithNonCollectionOneToManyMapping();
-		createTestTargetEntityAddress();
-		addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
-		addXmlClassRef(PACKAGE_NAME + ".Address");
-	
-		PersistentAttribute persistentAttribute = getJavaPersistentType().attributes().next();
-		OneToManyMapping oneToManyMapping = (OneToManyMapping) persistentAttribute.getMapping();
-
-		assertNull(oneToManyMapping.getDefaultTargetEntity());
-	}
-	
-	public void testTargetEntity() throws Exception {
-		createTestEntityWithValidOneToManyMapping();
-		createTestTargetEntityAddress();
-		addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
-		
-		PersistentAttribute persistentAttribute = getJavaPersistentType().attributes().next();
-		OneToManyMapping oneToManyMapping = (OneToManyMapping) persistentAttribute.getMapping();
-
-		assertEquals(PACKAGE_NAME + ".Address", oneToManyMapping.getTargetEntity());
-
-		oneToManyMapping.setSpecifiedTargetEntity("foo");
-		assertEquals("foo", oneToManyMapping.getTargetEntity());
-		
-		oneToManyMapping.setSpecifiedTargetEntity(null);
-		assertEquals(PACKAGE_NAME + ".Address", oneToManyMapping.getTargetEntity());
-	}
-	
-	public void testResolvedTargetEntity() throws Exception {
-		createTestEntityWithValidOneToManyMapping();
-		addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
-		
-		PersistentAttribute persistentAttribute = getJavaPersistentType().attributes().next();
-		OneToManyMapping oneToManyMapping = (OneToManyMapping) persistentAttribute.getMapping();
-
-		//targetEntity not in the persistence unit
-		assertNull(oneToManyMapping.getResolvedTargetEntity());
-		
-		//add targetEntity to the persistence unit, now target entity should resolve
-		createTestTargetEntityAddress();
-		addXmlClassRef(PACKAGE_NAME + ".Address");
-		ListIterator<ClassRef> classRefs = getPersistenceUnit().specifiedClassRefs();
-		classRefs.next();
-		ClassRef addressClassRef = classRefs.next();
-		TypeMapping addressTypeMapping = addressClassRef.getJavaPersistentType().getMapping();
-		assertEquals(addressTypeMapping, oneToManyMapping.getResolvedTargetEntity());
-
-		//test default still the same when specified target entity it set
-		oneToManyMapping.setSpecifiedTargetEntity("foo");
-		assertNull(oneToManyMapping.getResolvedTargetEntity());
-		
-		
-		oneToManyMapping.setSpecifiedTargetEntity(PACKAGE_NAME + ".Address");
-		assertEquals(addressTypeMapping, oneToManyMapping.getResolvedTargetEntity());
-		
-
-		oneToManyMapping.setSpecifiedTargetEntity(null);
-		assertEquals(addressTypeMapping, oneToManyMapping.getResolvedTargetEntity());
-	}
-
-	
-	public void testUpdateMapKey() throws Exception {
-		createTestEntityWithOneToManyMapping();
-		addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
-		
-		PersistentAttribute persistentAttribute = getJavaPersistentType().attributes().next();
-		OneToManyMapping oneToManyMapping = (OneToManyMapping) persistentAttribute.getMapping();
-		
-		JavaResourcePersistentType typeResource = getJpaProject().getJavaResourcePersistentType(FULLY_QUALIFIED_TYPE_NAME);
-		JavaResourcePersistentAttribute attributeResource = typeResource.persistableAttributes().next();
-		
-		assertNull(oneToManyMapping.getMapKey());
-		assertNull(attributeResource.getSupportingAnnotation(MapKeyAnnotation.ANNOTATION_NAME));
-		
-		//set mapKey in the resource model, verify context model does not change
-		attributeResource.addSupportingAnnotation(MapKeyAnnotation.ANNOTATION_NAME);
-		assertNull(oneToManyMapping.getMapKey());
-		MapKeyAnnotation mapKey = (MapKeyAnnotation) attributeResource.getSupportingAnnotation(MapKeyAnnotation.ANNOTATION_NAME);
-		assertNotNull(mapKey);
-				
-		//set mapKey name in the resource model, verify context model updated
-		mapKey.setName("myMapKey");
-		assertEquals("myMapKey", oneToManyMapping.getMapKey());
-		assertEquals("myMapKey", mapKey.getName());
-		
-		//set mapKey name to null in the resource model
-		mapKey.setName(null);
-		assertNull(oneToManyMapping.getMapKey());
-		assertNull(mapKey.getName());
-		
-		mapKey.setName("myMapKey");
-		attributeResource.removeSupportingAnnotation(MapKeyAnnotation.ANNOTATION_NAME);
-		assertNull(oneToManyMapping.getMapKey());
-		assertNull(attributeResource.getSupportingAnnotation(MapKeyAnnotation.ANNOTATION_NAME));
-	}
-	
-	public void testModifyMapKey() throws Exception {
-		createTestEntityWithOneToManyMapping();
-		addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
-		
-		PersistentAttribute persistentAttribute = getJavaPersistentType().attributes().next();
-		OneToManyMapping oneToManyMapping = (OneToManyMapping) persistentAttribute.getMapping();
-		
-		JavaResourcePersistentType typeResource = getJpaProject().getJavaResourcePersistentType(FULLY_QUALIFIED_TYPE_NAME);
-		JavaResourcePersistentAttribute attributeResource = typeResource.persistableAttributes().next();
-		
-		assertNull(oneToManyMapping.getMapKey());
-		assertNull(attributeResource.getSupportingAnnotation(MapKeyAnnotation.ANNOTATION_NAME));
-					
-		//set mapKey  in the context model, verify resource model updated
-		oneToManyMapping.setMapKey("myMapKey");
-		MapKeyAnnotation mapKey = (MapKeyAnnotation) attributeResource.getSupportingAnnotation(MapKeyAnnotation.ANNOTATION_NAME);
-		assertEquals("myMapKey", oneToManyMapping.getMapKey());
-		assertEquals("myMapKey", mapKey.getName());
-	
-		//set mapKey to null in the context model
-		oneToManyMapping.setMapKey(null);
-		assertNull(oneToManyMapping.getMapKey());
-		assertNull(attributeResource.getSupportingAnnotation(MapKeyAnnotation.ANNOTATION_NAME));
-	}
-
-	public void testUpdateOrderBy() throws Exception {
-		createTestEntityWithOneToManyMapping();
-		addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
-		
-		PersistentAttribute persistentAttribute = getJavaPersistentType().attributes().next();
-		OneToManyMapping oneToManyMapping = (OneToManyMapping) persistentAttribute.getMapping();
-		
-		JavaResourcePersistentType typeResource = getJpaProject().getJavaResourcePersistentType(FULLY_QUALIFIED_TYPE_NAME);
-		JavaResourcePersistentAttribute attributeResource = typeResource.persistableAttributes().next();
-		
-		assertNull(oneToManyMapping.getOrderBy());
-		assertNull(attributeResource.getSupportingAnnotation(OrderByAnnotation.ANNOTATION_NAME));
-				
-		//set orderBy in the resource model, verify context model updated
-		attributeResource.addSupportingAnnotation(OrderByAnnotation.ANNOTATION_NAME);
-		OrderByAnnotation orderBy = (OrderByAnnotation) attributeResource.getSupportingAnnotation(OrderByAnnotation.ANNOTATION_NAME);
-		orderBy.setValue("newOrderBy");
-		assertEquals("newOrderBy", oneToManyMapping.getOrderBy());
-		assertEquals("newOrderBy", orderBy.getValue());
-	
-		//set orderBy to null in the resource model
-		attributeResource.removeSupportingAnnotation(OrderByAnnotation.ANNOTATION_NAME);
-		assertNull(oneToManyMapping.getOrderBy());
-		assertNull(attributeResource.getSupportingAnnotation(OrderByAnnotation.ANNOTATION_NAME));
-	}
-	
-	public void testModifyOrderBy() throws Exception {
-		createTestEntityWithOneToManyMapping();
-		addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
-		
-		PersistentAttribute persistentAttribute = getJavaPersistentType().attributes().next();
-		OneToManyMapping oneToManyMapping = (OneToManyMapping) persistentAttribute.getMapping();
-		
-		JavaResourcePersistentType typeResource = getJpaProject().getJavaResourcePersistentType(FULLY_QUALIFIED_TYPE_NAME);
-		JavaResourcePersistentAttribute attributeResource = typeResource.persistableAttributes().next();
-		
-		assertNull(oneToManyMapping.getOrderBy());
-		assertNull(attributeResource.getSupportingAnnotation(OrderByAnnotation.ANNOTATION_NAME));
-				
-		//set mappedBy in the context model, verify resource model updated
-		oneToManyMapping.setOrderBy("newOrderBy");
-		assertEquals("newOrderBy", oneToManyMapping.getOrderBy());
-		OrderByAnnotation orderBy = (OrderByAnnotation) attributeResource.getSupportingAnnotation(OrderByAnnotation.ANNOTATION_NAME);
-		assertEquals("newOrderBy", orderBy.getValue());
-	
-		//set mappedBy to null in the context model
-		oneToManyMapping.setOrderBy(null);
-		assertNull(oneToManyMapping.getOrderBy());
-		assertNull(attributeResource.getSupportingAnnotation(OrderByAnnotation.ANNOTATION_NAME));
-	}
-	
-	public void testUpdateNoOrdering()  throws Exception {
-		createTestEntityWithOneToManyMapping();
-		addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
-		
-		PersistentAttribute persistentAttribute = getJavaPersistentType().attributes().next();
-		OneToManyMapping oneToManyMapping = (OneToManyMapping) persistentAttribute.getMapping();
-		
-		JavaResourcePersistentType typeResource = getJpaProject().getJavaResourcePersistentType(FULLY_QUALIFIED_TYPE_NAME);
-		JavaResourcePersistentAttribute attributeResource = typeResource.persistableAttributes().next();
-		
-		assertTrue(oneToManyMapping.isNoOrdering());
-		assertNull(attributeResource.getSupportingAnnotation(OrderByAnnotation.ANNOTATION_NAME));
-				
-		//set orderBy in the resource model, verify context model updated
-		attributeResource.addSupportingAnnotation(OrderByAnnotation.ANNOTATION_NAME);
-		assertFalse(oneToManyMapping.isNoOrdering());
-		
-		OrderByAnnotation orderBy = (OrderByAnnotation) attributeResource.getSupportingAnnotation(OrderByAnnotation.ANNOTATION_NAME);
-		orderBy.setValue("newOrderBy");
-		assertFalse(oneToManyMapping.isNoOrdering());
-	
-		//set orderBy to null in the resource model
-		attributeResource.removeSupportingAnnotation(OrderByAnnotation.ANNOTATION_NAME);
-		assertTrue(oneToManyMapping.isNoOrdering());
-		assertNull(attributeResource.getSupportingAnnotation(OrderByAnnotation.ANNOTATION_NAME));
-	}
-	
-	public void testUpdatePkOrdering()  throws Exception {
-		createTestEntityWithOneToManyMapping();
-		addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
-		
-		PersistentAttribute persistentAttribute = getJavaPersistentType().attributes().next();
-		OneToManyMapping oneToManyMapping = (OneToManyMapping) persistentAttribute.getMapping();
-		
-		JavaResourcePersistentType typeResource = getJpaProject().getJavaResourcePersistentType(FULLY_QUALIFIED_TYPE_NAME);
-		JavaResourcePersistentAttribute attributeResource = typeResource.persistableAttributes().next();
-		
-		assertFalse(oneToManyMapping.isPkOrdering());
-		assertNull(attributeResource.getSupportingAnnotation(OrderByAnnotation.ANNOTATION_NAME));
-				
-		//set orderBy in the resource model, verify context model updated
-		attributeResource.addSupportingAnnotation(OrderByAnnotation.ANNOTATION_NAME);
-		assertTrue(oneToManyMapping.isPkOrdering());
-		
-		OrderByAnnotation orderBy = (OrderByAnnotation) attributeResource.getSupportingAnnotation(OrderByAnnotation.ANNOTATION_NAME);
-		orderBy.setValue("newOrderBy");
-		assertFalse(oneToManyMapping.isPkOrdering());
-	
-		//set orderBy to null in the resource model
-		attributeResource.removeSupportingAnnotation(OrderByAnnotation.ANNOTATION_NAME);
-		assertFalse(oneToManyMapping.isPkOrdering());
-		assertNull(attributeResource.getSupportingAnnotation(OrderByAnnotation.ANNOTATION_NAME));
-	}
-
-	public void testUpdateCustomOrdering()  throws Exception {
-		createTestEntityWithOneToManyMapping();
-		addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
-		
-		PersistentAttribute persistentAttribute = getJavaPersistentType().attributes().next();
-		OneToManyMapping oneToManyMapping = (OneToManyMapping) persistentAttribute.getMapping();
-		
-		JavaResourcePersistentType typeResource = getJpaProject().getJavaResourcePersistentType(FULLY_QUALIFIED_TYPE_NAME);
-		JavaResourcePersistentAttribute attributeResource = typeResource.persistableAttributes().next();
-		
-		assertFalse(oneToManyMapping.isCustomOrdering());
-		assertNull(attributeResource.getSupportingAnnotation(OrderByAnnotation.ANNOTATION_NAME));
-				
-		//set orderBy in the resource model, verify context model updated
-		attributeResource.addSupportingAnnotation(OrderByAnnotation.ANNOTATION_NAME);
-		assertFalse(oneToManyMapping.isCustomOrdering());
-		
-		OrderByAnnotation orderBy = (OrderByAnnotation) attributeResource.getSupportingAnnotation(OrderByAnnotation.ANNOTATION_NAME);
-		orderBy.setValue("newOrderBy");
-		assertTrue(oneToManyMapping.isCustomOrdering());
-	
-		//set orderBy to null in the resource model
-		attributeResource.removeSupportingAnnotation(OrderByAnnotation.ANNOTATION_NAME);
-		assertFalse(oneToManyMapping.isCustomOrdering());
-		assertNull(attributeResource.getSupportingAnnotation(OrderByAnnotation.ANNOTATION_NAME));
-	}
-	
-	public void testDefaultTargetEntityForMap() throws Exception {
-		createTestEmployee();
-		createTestDepartment();
-		addXmlClassRef(PACKAGE_NAME + ".Department");
-		addXmlClassRef(PACKAGE_NAME + ".Employee");
-		
-		JavaPersistentType departmentPersistentType = getJavaPersistentType();
-		OneToManyMapping employeesMapping = (OneToManyMapping) departmentPersistentType.getAttributeNamed("employees").getSpecifiedMapping();
-		assertEquals(PACKAGE_NAME + ".Employee", employeesMapping.getTargetEntity());
-	}
-}
diff --git a/jpa/tests/org.eclipse.jpt.core.tests/src/org/eclipse/jpt/core/tests/internal/context/java/JavaOneToOneMappingTests.java b/jpa/tests/org.eclipse.jpt.core.tests/src/org/eclipse/jpt/core/tests/internal/context/java/JavaOneToOneMappingTests.java
deleted file mode 100644
index 6c10347..0000000
--- a/jpa/tests/org.eclipse.jpt.core.tests/src/org/eclipse/jpt/core/tests/internal/context/java/JavaOneToOneMappingTests.java
+++ /dev/null
@@ -1,1332 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2008 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.core.tests.internal.context.java;
-
-import java.util.Iterator;
-import java.util.ListIterator;
-import org.eclipse.jdt.core.ICompilationUnit;
-import org.eclipse.jpt.core.MappingKeys;
-import org.eclipse.jpt.core.context.BasicMapping;
-import org.eclipse.jpt.core.context.EmbeddedIdMapping;
-import org.eclipse.jpt.core.context.EmbeddedMapping;
-import org.eclipse.jpt.core.context.FetchType;
-import org.eclipse.jpt.core.context.IdMapping;
-import org.eclipse.jpt.core.context.JoinColumn;
-import org.eclipse.jpt.core.context.JoinColumnJoiningStrategy;
-import org.eclipse.jpt.core.context.ManyToManyMapping;
-import org.eclipse.jpt.core.context.ManyToOneMapping;
-import org.eclipse.jpt.core.context.MappedByJoiningStrategy;
-import org.eclipse.jpt.core.context.OneToManyMapping;
-import org.eclipse.jpt.core.context.OneToOneMapping;
-import org.eclipse.jpt.core.context.PersistentAttribute;
-import org.eclipse.jpt.core.context.PrimaryKeyJoinColumn;
-import org.eclipse.jpt.core.context.PrimaryKeyJoinColumnJoiningStrategy;
-import org.eclipse.jpt.core.context.TransientMapping;
-import org.eclipse.jpt.core.context.TypeMapping;
-import org.eclipse.jpt.core.context.VersionMapping;
-import org.eclipse.jpt.core.context.java.JavaPersistentType;
-import org.eclipse.jpt.core.context.java.JavaPrimaryKeyJoinColumn;
-import org.eclipse.jpt.core.context.persistence.ClassRef;
-import org.eclipse.jpt.core.resource.java.BasicAnnotation;
-import org.eclipse.jpt.core.resource.java.EmbeddedAnnotation;
-import org.eclipse.jpt.core.resource.java.EmbeddedIdAnnotation;
-import org.eclipse.jpt.core.resource.java.IdAnnotation;
-import org.eclipse.jpt.core.resource.java.JPA;
-import org.eclipse.jpt.core.resource.java.JavaResourcePersistentAttribute;
-import org.eclipse.jpt.core.resource.java.JavaResourcePersistentType;
-import org.eclipse.jpt.core.resource.java.JoinColumnAnnotation;
-import org.eclipse.jpt.core.resource.java.JoinColumnsAnnotation;
-import org.eclipse.jpt.core.resource.java.ManyToManyAnnotation;
-import org.eclipse.jpt.core.resource.java.ManyToOneAnnotation;
-import org.eclipse.jpt.core.resource.java.NestableAnnotation;
-import org.eclipse.jpt.core.resource.java.OneToManyAnnotation;
-import org.eclipse.jpt.core.resource.java.OneToOneAnnotation;
-import org.eclipse.jpt.core.resource.java.PrimaryKeyJoinColumnAnnotation;
-import org.eclipse.jpt.core.resource.java.PrimaryKeyJoinColumnsAnnotation;
-import org.eclipse.jpt.core.resource.java.TransientAnnotation;
-import org.eclipse.jpt.core.resource.java.VersionAnnotation;
-import org.eclipse.jpt.core.tests.internal.context.ContextModelTestCase;
-import org.eclipse.jpt.core.tests.internal.projects.TestJavaProject.SourceWriter;
-import org.eclipse.jpt.utility.internal.CollectionTools;
-import org.eclipse.jpt.utility.internal.iterators.ArrayIterator;
-
-@SuppressWarnings("nls")
-public class JavaOneToOneMappingTests extends ContextModelTestCase
-{
-
-	private void createTestTargetEntityAddress() throws Exception {
-		SourceWriter sourceWriter = new SourceWriter() {
-			public void appendSourceTo(StringBuilder sb) {
-				sb.append(CR);
-					sb.append("import ");
-					sb.append(JPA.ENTITY);
-					sb.append(";");
-					sb.append(CR);
-					sb.append("import ");
-					sb.append(JPA.ID);
-					sb.append(";");
-					sb.append(CR);
-				sb.append("@Entity");
-				sb.append(CR);
-				sb.append("public class ").append("Address").append(" ");
-				sb.append("{").append(CR);
-				sb.append(CR);
-				sb.append("    @Id").append(CR);
-				sb.append("    private int id;").append(CR);
-				sb.append(CR);
-				sb.append("    private String city;").append(CR);
-				sb.append(CR);
-				sb.append("    private String state;").append(CR);
-				sb.append(CR);
-				sb.append("    private int zip;").append(CR);
-				sb.append(CR);
-				sb.append("}").append(CR);
-			}
-		};
-		this.javaProject.createCompilationUnit(PACKAGE_NAME, "Address.java", sourceWriter);
-	}
-
-	
-	private ICompilationUnit createTestEntityWithOneToOneMapping() throws Exception {
-		return this.createTestType(new DefaultAnnotationWriter() {
-			@Override
-			public Iterator<String> imports() {
-				return new ArrayIterator<String>(JPA.ENTITY, JPA.ONE_TO_ONE);
-			}
-			@Override
-			public void appendTypeAnnotationTo(StringBuilder sb) {
-				sb.append("@Entity").append(CR);
-			}
-			
-			@Override
-			public void appendIdFieldAnnotationTo(StringBuilder sb) {
-				sb.append("@OneToOne").append(CR);
-			}
-		});
-	}
-	
-	private ICompilationUnit createTestEntityWithValidOneToOneMapping() throws Exception {
-		return this.createTestType(new DefaultAnnotationWriter() {
-			@Override
-			public Iterator<String> imports() {
-				return new ArrayIterator<String>(JPA.ENTITY, JPA.ONE_TO_ONE, JPA.ID);
-			}
-			@Override
-			public void appendTypeAnnotationTo(StringBuilder sb) {
-				sb.append("@Entity").append(CR);
-			}
-			
-			@Override
-			public void appendIdFieldAnnotationTo(StringBuilder sb) {
-				sb.append(CR);
-				sb.append("    @OneToOne").append(CR);				
-				sb.append("    private Address address;").append(CR);
-				sb.append(CR);
-				sb.append("    @Id").append(CR);				
-			}
-		});
-	}
-	
-	private ICompilationUnit createTestEntityWithCollectionOneToOneMapping() throws Exception {
-		return this.createTestType(new DefaultAnnotationWriter() {
-			@Override
-			public Iterator<String> imports() {
-				return new ArrayIterator<String>(JPA.ENTITY, JPA.ONE_TO_ONE, JPA.ID, "java.util.Collection");
-			}
-			@Override
-			public void appendTypeAnnotationTo(StringBuilder sb) {
-				sb.append("@Entity").append(CR);
-			}
-			
-			@Override
-			public void appendIdFieldAnnotationTo(StringBuilder sb) {
-				sb.append(CR);
-				sb.append("    @OneToOne").append(CR);				
-				sb.append("    private Collection address;").append(CR);
-				sb.append(CR);
-				sb.append("    @Id").append(CR);				
-			}
-		});
-	}
-	
-	private ICompilationUnit createTestEntityWithGenericizedCollectionOneToOneMapping() throws Exception {
-		return this.createTestType(new DefaultAnnotationWriter() {
-			@Override
-			public Iterator<String> imports() {
-				return new ArrayIterator<String>(JPA.ENTITY, JPA.ONE_TO_ONE, JPA.ID, "java.util.Collection");
-			}
-			@Override
-			public void appendTypeAnnotationTo(StringBuilder sb) {
-				sb.append("@Entity").append(CR);
-			}
-			
-			@Override
-			public void appendIdFieldAnnotationTo(StringBuilder sb) {
-				sb.append(CR);
-				sb.append("    @OneToOne").append(CR);				
-				sb.append("    private Collection<Address> address;").append(CR);
-				sb.append(CR);
-				sb.append("    @Id").append(CR);				
-			}
-		});
-	}
-
-	public JavaOneToOneMappingTests(String name) {
-		super(name);
-	}
-	
-	public void testMorphToBasicMapping() throws Exception {
-		createTestEntityWithOneToOneMapping();
-		addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
-		
-		PersistentAttribute persistentAttribute = getJavaPersistentType().attributes().next();
-		OneToOneMapping oneToOneMapping = (OneToOneMapping) persistentAttribute.getMapping();
-		JoinColumnJoiningStrategy joinColumns = oneToOneMapping.getRelationshipReference().getJoinColumnJoiningStrategy();
-		joinColumns.addSpecifiedJoinColumn(0);
-		assertFalse(oneToOneMapping.isDefault());
-		
-		persistentAttribute.setSpecifiedMappingKey(MappingKeys.BASIC_ATTRIBUTE_MAPPING_KEY);
-		assertTrue(persistentAttribute.getMapping() instanceof BasicMapping);
-		assertFalse(persistentAttribute.getMapping().isDefault());
-		
-		JavaResourcePersistentType typeResource = getJpaProject().getJavaResourcePersistentType(FULLY_QUALIFIED_TYPE_NAME);
-		JavaResourcePersistentAttribute attributeResource = typeResource.persistableAttributes().next();
-		assertNull(attributeResource.getMappingAnnotation(OneToOneAnnotation.ANNOTATION_NAME));
-		assertNotNull(attributeResource.getMappingAnnotation(BasicAnnotation.ANNOTATION_NAME));
-		assertNull(attributeResource.getSupportingAnnotation(JoinColumnAnnotation.ANNOTATION_NAME));
-	}
-	
-	public void testMorphToDefault() throws Exception {
-		createTestEntityWithOneToOneMapping();
-		addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
-		
-		PersistentAttribute persistentAttribute = getJavaPersistentType().attributes().next();
-		OneToOneMapping oneToOneMapping = (OneToOneMapping) persistentAttribute.getMapping();
-		JoinColumnJoiningStrategy joinColumns = oneToOneMapping.getRelationshipReference().getJoinColumnJoiningStrategy();
-		joinColumns.addSpecifiedJoinColumn(0);
-		assertFalse(oneToOneMapping.isDefault());
-		
-		persistentAttribute.setSpecifiedMappingKey(MappingKeys.NULL_ATTRIBUTE_MAPPING_KEY);
-		assertNull(persistentAttribute.getSpecifiedMapping());
-		assertTrue(persistentAttribute.getMapping().isDefault());
-	
-		JavaResourcePersistentType typeResource = getJpaProject().getJavaResourcePersistentType(FULLY_QUALIFIED_TYPE_NAME);
-		JavaResourcePersistentAttribute attributeResource = typeResource.persistableAttributes().next();
-		assertNull(attributeResource.getMappingAnnotation(OneToOneAnnotation.ANNOTATION_NAME));
-		assertNull(attributeResource.getSupportingAnnotation(JoinColumnAnnotation.ANNOTATION_NAME));
-	}
-	
-	public void testMorphToVersionMapping() throws Exception {
-		createTestEntityWithOneToOneMapping();
-		addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
-		
-		PersistentAttribute persistentAttribute = getJavaPersistentType().attributes().next();
-		OneToOneMapping oneToOneMapping = (OneToOneMapping) persistentAttribute.getMapping();
-		JoinColumnJoiningStrategy joinColumns = oneToOneMapping.getRelationshipReference().getJoinColumnJoiningStrategy();
-		joinColumns.addSpecifiedJoinColumn(0);
-		assertFalse(oneToOneMapping.isDefault());
-		
-		persistentAttribute.setSpecifiedMappingKey(MappingKeys.VERSION_ATTRIBUTE_MAPPING_KEY);
-		assertTrue(persistentAttribute.getMapping() instanceof VersionMapping);
-		assertFalse(persistentAttribute.getMapping().isDefault());
-		
-		JavaResourcePersistentType typeResource = getJpaProject().getJavaResourcePersistentType(FULLY_QUALIFIED_TYPE_NAME);
-		JavaResourcePersistentAttribute attributeResource = typeResource.persistableAttributes().next();
-		assertNull(attributeResource.getMappingAnnotation(OneToOneAnnotation.ANNOTATION_NAME));
-		assertNotNull(attributeResource.getMappingAnnotation(VersionAnnotation.ANNOTATION_NAME));
-		assertNull(attributeResource.getSupportingAnnotation(JoinColumnAnnotation.ANNOTATION_NAME));
-	}
-	
-	public void testMorphToIdMapping() throws Exception {
-		createTestEntityWithOneToOneMapping();
-		addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
-		
-		PersistentAttribute persistentAttribute = getJavaPersistentType().attributes().next();
-		OneToOneMapping oneToOneMapping = (OneToOneMapping) persistentAttribute.getMapping();
-		JoinColumnJoiningStrategy joinColumns = oneToOneMapping.getRelationshipReference().getJoinColumnJoiningStrategy();
-		joinColumns.addSpecifiedJoinColumn(0);
-		assertFalse(oneToOneMapping.isDefault());
-		
-		persistentAttribute.setSpecifiedMappingKey(MappingKeys.ID_ATTRIBUTE_MAPPING_KEY);
-		assertTrue(persistentAttribute.getMapping() instanceof IdMapping);
-		assertFalse(persistentAttribute.getMapping().isDefault());
-		
-		JavaResourcePersistentType typeResource = getJpaProject().getJavaResourcePersistentType(FULLY_QUALIFIED_TYPE_NAME);
-		JavaResourcePersistentAttribute attributeResource = typeResource.persistableAttributes().next();
-		assertNull(attributeResource.getMappingAnnotation(OneToOneAnnotation.ANNOTATION_NAME));
-		assertNotNull(attributeResource.getMappingAnnotation(IdAnnotation.ANNOTATION_NAME));
-		assertNull(attributeResource.getSupportingAnnotation(JoinColumnAnnotation.ANNOTATION_NAME));
-	}
-	
-	public void testMorphToEmbeddedMapping() throws Exception {
-		createTestEntityWithOneToOneMapping();
-		addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
-		
-		PersistentAttribute persistentAttribute = getJavaPersistentType().attributes().next();
-		OneToOneMapping oneToOneMapping = (OneToOneMapping) persistentAttribute.getMapping();
-		JoinColumnJoiningStrategy joinColumns = oneToOneMapping.getRelationshipReference().getJoinColumnJoiningStrategy();
-		joinColumns.addSpecifiedJoinColumn(0);
-		assertFalse(oneToOneMapping.isDefault());
-		
-		persistentAttribute.setSpecifiedMappingKey(MappingKeys.EMBEDDED_ATTRIBUTE_MAPPING_KEY);
-		assertTrue(persistentAttribute.getMapping() instanceof EmbeddedMapping);
-		assertFalse(persistentAttribute.getMapping().isDefault());
-		
-		JavaResourcePersistentType typeResource = getJpaProject().getJavaResourcePersistentType(FULLY_QUALIFIED_TYPE_NAME);
-		JavaResourcePersistentAttribute attributeResource = typeResource.persistableAttributes().next();
-		assertNull(attributeResource.getMappingAnnotation(OneToOneAnnotation.ANNOTATION_NAME));
-		assertNotNull(attributeResource.getMappingAnnotation(EmbeddedAnnotation.ANNOTATION_NAME));
-		assertNull(attributeResource.getSupportingAnnotation(JoinColumnAnnotation.ANNOTATION_NAME));
-	}
-	
-	public void testMorphToEmbeddedIdMapping() throws Exception {
-		createTestEntityWithOneToOneMapping();
-		addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
-		
-		PersistentAttribute persistentAttribute = getJavaPersistentType().attributes().next();
-		OneToOneMapping oneToOneMapping = (OneToOneMapping) persistentAttribute.getMapping();
-		JoinColumnJoiningStrategy joinColumns = oneToOneMapping.getRelationshipReference().getJoinColumnJoiningStrategy();
-		joinColumns.addSpecifiedJoinColumn(0);
-		assertFalse(oneToOneMapping.isDefault());
-		
-		persistentAttribute.setSpecifiedMappingKey(MappingKeys.EMBEDDED_ID_ATTRIBUTE_MAPPING_KEY);
-		assertTrue(persistentAttribute.getMapping() instanceof EmbeddedIdMapping);
-		assertFalse(persistentAttribute.getMapping().isDefault());
-		
-		JavaResourcePersistentType typeResource = getJpaProject().getJavaResourcePersistentType(FULLY_QUALIFIED_TYPE_NAME);
-		JavaResourcePersistentAttribute attributeResource = typeResource.persistableAttributes().next();
-		assertNull(attributeResource.getMappingAnnotation(OneToOneAnnotation.ANNOTATION_NAME));
-		assertNotNull(attributeResource.getMappingAnnotation(EmbeddedIdAnnotation.ANNOTATION_NAME));
-		assertNull(attributeResource.getSupportingAnnotation(JoinColumnAnnotation.ANNOTATION_NAME));
-	}
-	
-	public void testMorphToTransientMapping() throws Exception {
-		createTestEntityWithOneToOneMapping();
-		addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
-		
-		PersistentAttribute persistentAttribute = getJavaPersistentType().attributes().next();
-		OneToOneMapping oneToOneMapping = (OneToOneMapping) persistentAttribute.getMapping();
-		JoinColumnJoiningStrategy joinColumns = oneToOneMapping.getRelationshipReference().getJoinColumnJoiningStrategy();
-		joinColumns.addSpecifiedJoinColumn(0);
-		assertFalse(oneToOneMapping.isDefault());
-		
-		persistentAttribute.setSpecifiedMappingKey(MappingKeys.TRANSIENT_ATTRIBUTE_MAPPING_KEY);
-		assertTrue(persistentAttribute.getMapping() instanceof TransientMapping);
-		assertFalse(persistentAttribute.getMapping().isDefault());
-		
-		JavaResourcePersistentType typeResource = getJpaProject().getJavaResourcePersistentType(FULLY_QUALIFIED_TYPE_NAME);
-		JavaResourcePersistentAttribute attributeResource = typeResource.persistableAttributes().next();
-		assertNull(attributeResource.getMappingAnnotation(OneToOneAnnotation.ANNOTATION_NAME));
-		assertNotNull(attributeResource.getMappingAnnotation(TransientAnnotation.ANNOTATION_NAME));
-		assertNull(attributeResource.getSupportingAnnotation(JoinColumnAnnotation.ANNOTATION_NAME));
-	}
-	
-	public void testMorphToManyToOneMapping() throws Exception {
-		createTestEntityWithOneToOneMapping();
-		addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
-		
-		PersistentAttribute persistentAttribute = getJavaPersistentType().attributes().next();
-		OneToOneMapping oneToOneMapping = (OneToOneMapping) persistentAttribute.getMapping();
-		JoinColumnJoiningStrategy joinColumns = oneToOneMapping.getRelationshipReference().getJoinColumnJoiningStrategy();
-		joinColumns.addSpecifiedJoinColumn(0);
-		assertFalse(oneToOneMapping.isDefault());
-		
-		persistentAttribute.setSpecifiedMappingKey(MappingKeys.MANY_TO_ONE_ATTRIBUTE_MAPPING_KEY);
-		assertTrue(persistentAttribute.getMapping() instanceof ManyToOneMapping);
-		assertFalse(persistentAttribute.getMapping().isDefault());
-		
-		JavaResourcePersistentType typeResource = getJpaProject().getJavaResourcePersistentType(FULLY_QUALIFIED_TYPE_NAME);
-		JavaResourcePersistentAttribute attributeResource = typeResource.persistableAttributes().next();
-		assertNull(attributeResource.getMappingAnnotation(OneToOneAnnotation.ANNOTATION_NAME));
-		assertNotNull(attributeResource.getMappingAnnotation(ManyToOneAnnotation.ANNOTATION_NAME));
-		assertNotNull(attributeResource.getSupportingAnnotation(JoinColumnAnnotation.ANNOTATION_NAME));
-	}
-	
-	public void testMorphToOneToManyMapping() throws Exception {
-		createTestEntityWithOneToOneMapping();
-		addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
-		
-		PersistentAttribute persistentAttribute = getJavaPersistentType().attributes().next();
-		OneToOneMapping oneToOneMapping = (OneToOneMapping) persistentAttribute.getMapping();
-		JoinColumnJoiningStrategy joinColumns = oneToOneMapping.getRelationshipReference().getJoinColumnJoiningStrategy();
-		joinColumns.addSpecifiedJoinColumn(0);
-		assertFalse(oneToOneMapping.isDefault());
-		
-		persistentAttribute.setSpecifiedMappingKey(MappingKeys.ONE_TO_MANY_ATTRIBUTE_MAPPING_KEY);
-		assertTrue(persistentAttribute.getMapping() instanceof OneToManyMapping);
-		assertFalse(persistentAttribute.getMapping().isDefault());
-		
-		JavaResourcePersistentType typeResource = getJpaProject().getJavaResourcePersistentType(FULLY_QUALIFIED_TYPE_NAME);
-		JavaResourcePersistentAttribute attributeResource = typeResource.persistableAttributes().next();
-		assertNull(attributeResource.getMappingAnnotation(OneToOneAnnotation.ANNOTATION_NAME));
-		assertNotNull(attributeResource.getMappingAnnotation(OneToManyAnnotation.ANNOTATION_NAME));
-		assertNotNull(attributeResource.getSupportingAnnotation(JoinColumnAnnotation.ANNOTATION_NAME));
-	}
-	
-	public void testMorphToManyToManyMapping() throws Exception {
-		createTestEntityWithOneToOneMapping();
-		addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
-		
-		PersistentAttribute persistentAttribute = getJavaPersistentType().attributes().next();
-		OneToOneMapping oneToOneMapping = (OneToOneMapping) persistentAttribute.getMapping();
-		JoinColumnJoiningStrategy joinColumns = oneToOneMapping.getRelationshipReference().getJoinColumnJoiningStrategy();
-		joinColumns.addSpecifiedJoinColumn(0);
-		assertFalse(oneToOneMapping.isDefault());
-		
-		persistentAttribute.setSpecifiedMappingKey(MappingKeys.MANY_TO_MANY_ATTRIBUTE_MAPPING_KEY);
-		assertTrue(persistentAttribute.getMapping() instanceof ManyToManyMapping);
-		assertFalse(persistentAttribute.getMapping().isDefault());
-		
-		JavaResourcePersistentType typeResource = getJpaProject().getJavaResourcePersistentType(FULLY_QUALIFIED_TYPE_NAME);
-		JavaResourcePersistentAttribute attributeResource = typeResource.persistableAttributes().next();
-		assertNull(attributeResource.getMappingAnnotation(OneToOneAnnotation.ANNOTATION_NAME));
-		assertNotNull(attributeResource.getMappingAnnotation(ManyToManyAnnotation.ANNOTATION_NAME));
-		assertNull(attributeResource.getSupportingAnnotation(JoinColumnAnnotation.ANNOTATION_NAME));
-	}
-
-	
-	public void testUpdateSpecifiedTargetEntity() throws Exception {
-		createTestEntityWithOneToOneMapping();
-		addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
-		
-		PersistentAttribute persistentAttribute = getJavaPersistentType().attributes().next();
-		OneToOneMapping oneToOneMapping = (OneToOneMapping) persistentAttribute.getMapping();
-		
-		JavaResourcePersistentType typeResource = getJpaProject().getJavaResourcePersistentType(FULLY_QUALIFIED_TYPE_NAME);
-		JavaResourcePersistentAttribute attributeResource = typeResource.persistableAttributes().next();
-		OneToOneAnnotation oneToOne = (OneToOneAnnotation) attributeResource.getMappingAnnotation();
-		
-		assertNull(oneToOneMapping.getSpecifiedTargetEntity());
-		assertNull(oneToOne.getTargetEntity());
-				
-		//set target entity in the resource model, verify context model updated
-		oneToOne.setTargetEntity("newTargetEntity");
-		assertEquals("newTargetEntity", oneToOneMapping.getSpecifiedTargetEntity());
-		assertEquals("newTargetEntity", oneToOne.getTargetEntity());
-	
-		//set target entity to null in the resource model
-		oneToOne.setTargetEntity(null);
-		assertNull(oneToOneMapping.getSpecifiedTargetEntity());
-		assertNull(oneToOne.getTargetEntity());
-	}
-	
-	public void testModifySpecifiedTargetEntity() throws Exception {
-		createTestEntityWithOneToOneMapping();
-		addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
-		
-		PersistentAttribute persistentAttribute = getJavaPersistentType().attributes().next();
-		OneToOneMapping oneToOneMapping = (OneToOneMapping) persistentAttribute.getMapping();
-		
-		JavaResourcePersistentType typeResource = getJpaProject().getJavaResourcePersistentType(FULLY_QUALIFIED_TYPE_NAME);
-		JavaResourcePersistentAttribute attributeResource = typeResource.persistableAttributes().next();
-		OneToOneAnnotation oneToOne = (OneToOneAnnotation) attributeResource.getMappingAnnotation();
-		
-		assertNull(oneToOneMapping.getSpecifiedTargetEntity());
-		assertNull(oneToOne.getTargetEntity());
-				
-		//set target entity in the context model, verify resource model updated
-		oneToOneMapping.setSpecifiedTargetEntity("newTargetEntity");
-		assertEquals("newTargetEntity", oneToOneMapping.getSpecifiedTargetEntity());
-		assertEquals("newTargetEntity", oneToOne.getTargetEntity());
-	
-		//set target entity to null in the context model
-		oneToOneMapping.setSpecifiedTargetEntity(null);
-		assertNull(oneToOneMapping.getSpecifiedTargetEntity());
-		assertNull(oneToOne.getTargetEntity());
-	}
-	
-	public void testUpdateMappedBy() throws Exception {
-		createTestEntityWithOneToOneMapping();
-		addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
-		
-		PersistentAttribute persistentAttribute = getJavaPersistentType().attributes().next();
-		OneToOneMapping oneToOneMapping = (OneToOneMapping) persistentAttribute.getMapping();
-		MappedByJoiningStrategy mappedBy = oneToOneMapping.getRelationshipReference().getMappedByJoiningStrategy();
-		
-		JavaResourcePersistentType typeResource = getJpaProject().getJavaResourcePersistentType(FULLY_QUALIFIED_TYPE_NAME);
-		JavaResourcePersistentAttribute attributeResource = typeResource.persistableAttributes().next();
-		OneToOneAnnotation oneToOne = (OneToOneAnnotation) attributeResource.getMappingAnnotation();
-		
-		assertNull(mappedBy.getMappedByAttribute());
-		assertNull(oneToOne.getMappedBy());
-				
-		//set mappedBy in the resource model, verify context model updated
-		oneToOne.setMappedBy("newMappedBy");
-		assertEquals("newMappedBy", mappedBy.getMappedByAttribute());
-		assertEquals("newMappedBy", oneToOne.getMappedBy());
-	
-		//set mappedBy to null in the resource model
-		oneToOne.setMappedBy(null);
-		assertNull(mappedBy.getMappedByAttribute());
-		assertNull(oneToOne.getMappedBy());
-	}
-	
-	public void testModifyMappedBy() throws Exception {
-		createTestEntityWithOneToOneMapping();
-		addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
-		
-		PersistentAttribute persistentAttribute = getJavaPersistentType().attributes().next();
-		OneToOneMapping oneToOneMapping = (OneToOneMapping) persistentAttribute.getMapping();
-		MappedByJoiningStrategy mappedBy = oneToOneMapping.getRelationshipReference().getMappedByJoiningStrategy();
-		
-		JavaResourcePersistentType typeResource = getJpaProject().getJavaResourcePersistentType(FULLY_QUALIFIED_TYPE_NAME);
-		JavaResourcePersistentAttribute attributeResource = typeResource.persistableAttributes().next();
-		OneToOneAnnotation oneToOne = (OneToOneAnnotation) attributeResource.getMappingAnnotation();
-		
-		assertNull(mappedBy.getMappedByAttribute());
-		assertNull(oneToOne.getMappedBy());
-				
-		//set mappedByJoiningStrategy in the context model, verify resource model updated
-		mappedBy.setMappedByAttribute("newTargetEntity");
-		assertEquals("newTargetEntity", mappedBy.getMappedByAttribute());
-		assertEquals("newTargetEntity", oneToOne.getMappedBy());
-	
-		//set mappedByJoiningStrategy to null in the context model
-		mappedBy.setMappedByAttribute(null);
-		assertNull(mappedBy.getMappedByAttribute());
-		assertNull(oneToOne.getMappedBy());
-	}
-
-	public void testUpdateSpecifiedOptional() throws Exception {
-		createTestEntityWithOneToOneMapping();
-		addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
-		
-		PersistentAttribute persistentAttribute = getJavaPersistentType().attributes().next();
-		OneToOneMapping oneToOneMapping = (OneToOneMapping) persistentAttribute.getMapping();
-		
-		JavaResourcePersistentType typeResource = getJpaProject().getJavaResourcePersistentType(FULLY_QUALIFIED_TYPE_NAME);
-		JavaResourcePersistentAttribute attributeResource = typeResource.persistableAttributes().next();
-		OneToOneAnnotation oneToOne = (OneToOneAnnotation) attributeResource.getMappingAnnotation();
-		
-		assertNull(oneToOneMapping.getSpecifiedOptional());
-		assertNull(oneToOne.getOptional());
-				
-		//set optional in the resource model, verify context model updated
-		oneToOne.setOptional(Boolean.TRUE);
-		assertEquals(Boolean.TRUE, oneToOneMapping.getSpecifiedOptional());
-		assertEquals(Boolean.TRUE, oneToOne.getOptional());
-	
-		oneToOne.setOptional(Boolean.FALSE);
-		assertEquals(Boolean.FALSE, oneToOneMapping.getSpecifiedOptional());
-		assertEquals(Boolean.FALSE, oneToOne.getOptional());
-
-		
-		//set optional to null in the resource model
-		oneToOne.setOptional(null);
-		assertNull(oneToOneMapping.getSpecifiedOptional());
-		assertNull(oneToOne.getOptional());
-	}
-	
-	public void testModifySpecifiedOptional() throws Exception {
-		createTestEntityWithOneToOneMapping();
-		addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
-		
-		PersistentAttribute persistentAttribute = getJavaPersistentType().attributes().next();
-		OneToOneMapping oneToOneMapping = (OneToOneMapping) persistentAttribute.getMapping();
-		
-		JavaResourcePersistentType typeResource = getJpaProject().getJavaResourcePersistentType(FULLY_QUALIFIED_TYPE_NAME);
-		JavaResourcePersistentAttribute attributeResource = typeResource.persistableAttributes().next();
-		OneToOneAnnotation oneToOne = (OneToOneAnnotation) attributeResource.getMappingAnnotation();
-		
-		assertNull(oneToOneMapping.getSpecifiedOptional());
-		assertNull(oneToOne.getOptional());
-				
-		//set optional in the context model, verify resource model updated
-		oneToOneMapping.setSpecifiedOptional(Boolean.TRUE);
-		assertEquals(Boolean.TRUE, oneToOneMapping.getSpecifiedOptional());
-		assertEquals(Boolean.TRUE, oneToOne.getOptional());
-	
-		oneToOneMapping.setSpecifiedOptional(Boolean.FALSE);
-		assertEquals(Boolean.FALSE, oneToOneMapping.getSpecifiedOptional());
-		assertEquals(Boolean.FALSE, oneToOne.getOptional());
-
-		
-		//set optional to null in the context model
-		oneToOneMapping.setSpecifiedOptional(null);
-		assertNull(oneToOneMapping.getSpecifiedOptional());
-		assertNull(oneToOne.getOptional());
-	}
-	
-	public void testUpdateSpecifiedFetch() throws Exception {
-		createTestEntityWithOneToOneMapping();
-		addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
-		
-		PersistentAttribute persistentAttribute = getJavaPersistentType().attributes().next();
-		OneToOneMapping oneToOneMapping = (OneToOneMapping) persistentAttribute.getMapping();
-		
-		JavaResourcePersistentType typeResource = getJpaProject().getJavaResourcePersistentType(FULLY_QUALIFIED_TYPE_NAME);
-		JavaResourcePersistentAttribute attributeResource = typeResource.persistableAttributes().next();
-		OneToOneAnnotation oneToOne = (OneToOneAnnotation) attributeResource.getMappingAnnotation();
-		
-		assertNull(oneToOneMapping.getSpecifiedFetch());
-		assertNull(oneToOne.getFetch());
-				
-		//set fetch in the resource model, verify context model updated
-		oneToOne.setFetch(org.eclipse.jpt.core.resource.java.FetchType.EAGER);
-		assertEquals(FetchType.EAGER, oneToOneMapping.getSpecifiedFetch());
-		assertEquals(org.eclipse.jpt.core.resource.java.FetchType.EAGER, oneToOne.getFetch());
-	
-		oneToOne.setFetch(org.eclipse.jpt.core.resource.java.FetchType.LAZY);
-		assertEquals(FetchType.LAZY, oneToOneMapping.getSpecifiedFetch());
-		assertEquals(org.eclipse.jpt.core.resource.java.FetchType.LAZY, oneToOne.getFetch());
-
-		
-		//set fetch to null in the resource model
-		oneToOne.setFetch(null);
-		assertNull(oneToOneMapping.getSpecifiedFetch());
-		assertNull(oneToOne.getFetch());
-	}
-	
-	public void testModifySpecifiedFetch() throws Exception {
-		createTestEntityWithOneToOneMapping();
-		addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
-		
-		PersistentAttribute persistentAttribute = getJavaPersistentType().attributes().next();
-		OneToOneMapping oneToOneMapping = (OneToOneMapping) persistentAttribute.getMapping();
-		
-		JavaResourcePersistentType typeResource = getJpaProject().getJavaResourcePersistentType(FULLY_QUALIFIED_TYPE_NAME);
-		JavaResourcePersistentAttribute attributeResource = typeResource.persistableAttributes().next();
-		OneToOneAnnotation oneToOne = (OneToOneAnnotation) attributeResource.getMappingAnnotation();
-		
-		assertNull(oneToOneMapping.getSpecifiedFetch());
-		assertNull(oneToOne.getFetch());
-				
-		//set fetch in the context model, verify resource model updated
-		oneToOneMapping.setSpecifiedFetch(FetchType.EAGER);
-		assertEquals(FetchType.EAGER, oneToOneMapping.getSpecifiedFetch());
-		assertEquals(org.eclipse.jpt.core.resource.java.FetchType.EAGER, oneToOne.getFetch());
-	
-		oneToOneMapping.setSpecifiedFetch(FetchType.LAZY);
-		assertEquals(FetchType.LAZY, oneToOneMapping.getSpecifiedFetch());
-		assertEquals(org.eclipse.jpt.core.resource.java.FetchType.LAZY, oneToOne.getFetch());
-
-		
-		//set fetch to null in the context model
-		oneToOneMapping.setSpecifiedFetch(null);
-		assertNull(oneToOneMapping.getSpecifiedFetch());
-		assertNull(oneToOne.getFetch());
-	}
-	
-	public void testSpecifiedJoinColumns() throws Exception {
-		createTestEntityWithOneToOneMapping();
-		addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
-		
-		PersistentAttribute persistentAttribute = getJavaPersistentType().attributes().next();
-		OneToOneMapping oneToOneMapping = (OneToOneMapping) persistentAttribute.getMapping();
-		JoinColumnJoiningStrategy joinColumns = oneToOneMapping.getRelationshipReference().getJoinColumnJoiningStrategy();
-		
-		ListIterator<? extends JoinColumn> specifiedJoinColumns = joinColumns.specifiedJoinColumns();
-		
-		assertFalse(specifiedJoinColumns.hasNext());
-
-		JavaResourcePersistentType typeResource = getJpaProject().getJavaResourcePersistentType(FULLY_QUALIFIED_TYPE_NAME);
-		JavaResourcePersistentAttribute attributeResource = typeResource.persistableAttributes().next();
-
-		//add an annotation to the resource model and verify the context model is updated
-		JoinColumnAnnotation joinColumn = (JoinColumnAnnotation) attributeResource.addSupportingAnnotation(0, JPA.JOIN_COLUMN, JPA.JOIN_COLUMNS);
-		joinColumn.setName("FOO");
-		specifiedJoinColumns = joinColumns.specifiedJoinColumns();	
-		assertEquals("FOO", specifiedJoinColumns.next().getName());
-		assertFalse(specifiedJoinColumns.hasNext());
-
-		joinColumn = (JoinColumnAnnotation) attributeResource.addSupportingAnnotation(0, JPA.JOIN_COLUMN, JPA.JOIN_COLUMNS);
-		joinColumn.setName("BAR");
-		specifiedJoinColumns = joinColumns.specifiedJoinColumns();		
-		assertEquals("BAR", specifiedJoinColumns.next().getName());
-		assertEquals("FOO", specifiedJoinColumns.next().getName());
-		assertFalse(specifiedJoinColumns.hasNext());
-
-
-		joinColumn = (JoinColumnAnnotation) attributeResource.addSupportingAnnotation(0, JPA.JOIN_COLUMN, JPA.JOIN_COLUMNS);
-		joinColumn.setName("BAZ");
-		specifiedJoinColumns = joinColumns.specifiedJoinColumns();		
-		assertEquals("BAZ", specifiedJoinColumns.next().getName());
-		assertEquals("BAR", specifiedJoinColumns.next().getName());
-		assertEquals("FOO", specifiedJoinColumns.next().getName());
-		assertFalse(specifiedJoinColumns.hasNext());
-	
-		//move an annotation to the resource model and verify the context model is updated
-		attributeResource.moveSupportingAnnotation(1, 0, JPA.JOIN_COLUMNS);
-		specifiedJoinColumns = joinColumns.specifiedJoinColumns();		
-		assertEquals("BAR", specifiedJoinColumns.next().getName());
-		assertEquals("BAZ", specifiedJoinColumns.next().getName());
-		assertEquals("FOO", specifiedJoinColumns.next().getName());
-		assertFalse(specifiedJoinColumns.hasNext());
-
-		attributeResource.removeSupportingAnnotation(0, JPA.JOIN_COLUMN, JPA.JOIN_COLUMNS);
-		specifiedJoinColumns = joinColumns.specifiedJoinColumns();		
-		assertEquals("BAZ", specifiedJoinColumns.next().getName());
-		assertEquals("FOO", specifiedJoinColumns.next().getName());
-		assertFalse(specifiedJoinColumns.hasNext());
-	
-		attributeResource.removeSupportingAnnotation(0, JPA.JOIN_COLUMN, JPA.JOIN_COLUMNS);
-		specifiedJoinColumns = joinColumns.specifiedJoinColumns();		
-		assertEquals("FOO", specifiedJoinColumns.next().getName());
-		assertFalse(specifiedJoinColumns.hasNext());
-
-		
-		attributeResource.removeSupportingAnnotation(0, JPA.JOIN_COLUMN, JPA.JOIN_COLUMNS);
-		specifiedJoinColumns = joinColumns.specifiedJoinColumns();		
-		assertFalse(specifiedJoinColumns.hasNext());
-	}
-	
-	public void testGetDefaultJoin() {
-		//TODO
-	}
-	
-	public void testSpecifiedJoinColumnsSize() throws Exception {
-		createTestEntityWithOneToOneMapping();
-		addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
-		
-		PersistentAttribute persistentAttribute = getJavaPersistentType().attributes().next();
-		OneToOneMapping oneToOneMapping = (OneToOneMapping) persistentAttribute.getMapping();
-		JoinColumnJoiningStrategy joinColumns = oneToOneMapping.getRelationshipReference().getJoinColumnJoiningStrategy();
-		
-		assertEquals(0, joinColumns.specifiedJoinColumnsSize());
-		
-		joinColumns.addSpecifiedJoinColumn(0);
-		assertEquals(1, joinColumns.specifiedJoinColumnsSize());
-		
-		joinColumns.removeSpecifiedJoinColumn(0);
-		assertEquals(0, joinColumns.specifiedJoinColumnsSize());
-	}
-
-	public void testJoinColumnsSize() throws Exception {
-		createTestEntityWithOneToOneMapping();
-		addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
-		
-		PersistentAttribute persistentAttribute = getJavaPersistentType().attributes().next();
-		OneToOneMapping oneToOneMapping = (OneToOneMapping) persistentAttribute.getMapping();
-		JoinColumnJoiningStrategy joinColumns = oneToOneMapping.getRelationshipReference().getJoinColumnJoiningStrategy();
-		
-		assertEquals(1, joinColumns.joinColumnsSize());
-		
-		joinColumns.addSpecifiedJoinColumn(0);
-		assertEquals(1, joinColumns.joinColumnsSize());
-		
-		joinColumns.addSpecifiedJoinColumn(0);
-		assertEquals(2, joinColumns.joinColumnsSize());
-
-		joinColumns.removeSpecifiedJoinColumn(0);
-		joinColumns.removeSpecifiedJoinColumn(0);
-		assertEquals(1, joinColumns.joinColumnsSize());
-		
-		//if non-owning side of the relationship then no default join column
-		oneToOneMapping.getRelationshipReference().getMappedByJoiningStrategy().setMappedByAttribute("foo");
-		assertEquals(0, joinColumns.joinColumnsSize());
-	}
-
-	public void testAddSpecifiedJoinColumn() throws Exception {
-		createTestEntityWithOneToOneMapping();
-		addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
-		
-		PersistentAttribute persistentAttribute = getJavaPersistentType().attributes().next();
-		OneToOneMapping oneToOneMapping = (OneToOneMapping) persistentAttribute.getMapping();
-		JoinColumnJoiningStrategy joinColumns = oneToOneMapping.getRelationshipReference().getJoinColumnJoiningStrategy();
-		
-		joinColumns.addSpecifiedJoinColumn(0).setSpecifiedName("FOO");
-		joinColumns.addSpecifiedJoinColumn(0).setSpecifiedName("BAR");
-		joinColumns.addSpecifiedJoinColumn(0).setSpecifiedName("BAZ");
-		
-		JavaResourcePersistentType typeResource = getJpaProject().getJavaResourcePersistentType(FULLY_QUALIFIED_TYPE_NAME);
-		JavaResourcePersistentAttribute attributeResource = typeResource.persistableAttributes().next();
-		Iterator<NestableAnnotation> joinColumnsIterator = 
-			attributeResource.supportingAnnotations(JoinColumnAnnotation.ANNOTATION_NAME, JoinColumnsAnnotation.ANNOTATION_NAME);
-		
-		assertEquals("BAZ", ((JoinColumnAnnotation) joinColumnsIterator.next()).getName());
-		assertEquals("BAR", ((JoinColumnAnnotation) joinColumnsIterator.next()).getName());
-		assertEquals("FOO", ((JoinColumnAnnotation) joinColumnsIterator.next()).getName());
-		assertFalse(joinColumnsIterator.hasNext());
-	}
-	
-	public void testAddSpecifiedJoinColumn2() throws Exception {
-		createTestEntityWithOneToOneMapping();
-		addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
-		
-		PersistentAttribute persistentAttribute = getJavaPersistentType().attributes().next();
-		OneToOneMapping oneToOneMapping = (OneToOneMapping) persistentAttribute.getMapping();
-		JoinColumnJoiningStrategy joinColumns = oneToOneMapping.getRelationshipReference().getJoinColumnJoiningStrategy();
-		
-		joinColumns.addSpecifiedJoinColumn(0).setSpecifiedName("FOO");
-		joinColumns.addSpecifiedJoinColumn(1).setSpecifiedName("BAR");
-		joinColumns.addSpecifiedJoinColumn(2).setSpecifiedName("BAZ");
-		
-		JavaResourcePersistentType typeResource = getJpaProject().getJavaResourcePersistentType(FULLY_QUALIFIED_TYPE_NAME);
-		JavaResourcePersistentAttribute attributeResource = typeResource.persistableAttributes().next();
-		Iterator<NestableAnnotation> joinColumnsIterator = 
-			attributeResource.supportingAnnotations(JoinColumnAnnotation.ANNOTATION_NAME, JoinColumnsAnnotation.ANNOTATION_NAME);
-		
-		assertEquals("FOO", ((JoinColumnAnnotation) joinColumnsIterator.next()).getName());
-		assertEquals("BAR", ((JoinColumnAnnotation) joinColumnsIterator.next()).getName());
-		assertEquals("BAZ", ((JoinColumnAnnotation) joinColumnsIterator.next()).getName());
-		assertFalse(joinColumnsIterator.hasNext());
-	}
-	public void testRemoveSpecifiedJoinColumn() throws Exception {
-		createTestEntityWithOneToOneMapping();
-		addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
-		
-		PersistentAttribute persistentAttribute = getJavaPersistentType().attributes().next();
-		OneToOneMapping oneToOneMapping = (OneToOneMapping) persistentAttribute.getMapping();
-		JoinColumnJoiningStrategy joinColumns = oneToOneMapping.getRelationshipReference().getJoinColumnJoiningStrategy();
-		
-		joinColumns.addSpecifiedJoinColumn(0).setSpecifiedName("FOO");
-		joinColumns.addSpecifiedJoinColumn(1).setSpecifiedName("BAR");
-		joinColumns.addSpecifiedJoinColumn(2).setSpecifiedName("BAZ");
-		
-		JavaResourcePersistentType typeResource = getJpaProject().getJavaResourcePersistentType(FULLY_QUALIFIED_TYPE_NAME);
-		JavaResourcePersistentAttribute attributeResource = typeResource.persistableAttributes().next();
-		
-		assertEquals(3, CollectionTools.size(attributeResource.supportingAnnotations(JoinColumnAnnotation.ANNOTATION_NAME, JoinColumnsAnnotation.ANNOTATION_NAME)));
-
-		joinColumns.removeSpecifiedJoinColumn(1);
-		
-		Iterator<NestableAnnotation> joinColumnResources = attributeResource.supportingAnnotations(JoinColumnAnnotation.ANNOTATION_NAME, JoinColumnsAnnotation.ANNOTATION_NAME);
-		assertEquals("FOO", ((JoinColumnAnnotation) joinColumnResources.next()).getName());		
-		assertEquals("BAZ", ((JoinColumnAnnotation) joinColumnResources.next()).getName());
-		assertFalse(joinColumnResources.hasNext());
-		
-		Iterator<? extends JoinColumn> joinColumnsIterator = joinColumns.specifiedJoinColumns();
-		assertEquals("FOO", joinColumnsIterator.next().getName());		
-		assertEquals("BAZ", joinColumnsIterator.next().getName());
-		assertFalse(joinColumnsIterator.hasNext());
-	
-		
-		joinColumns.removeSpecifiedJoinColumn(1);
-		joinColumnResources = attributeResource.supportingAnnotations(JoinColumnAnnotation.ANNOTATION_NAME, JoinColumnsAnnotation.ANNOTATION_NAME);
-		assertEquals("FOO", ((JoinColumnAnnotation) joinColumnResources.next()).getName());		
-		assertFalse(joinColumnResources.hasNext());
-
-		joinColumnsIterator = joinColumns.specifiedJoinColumns();
-		assertEquals("FOO", joinColumnsIterator.next().getName());
-		assertFalse(joinColumnsIterator.hasNext());
-
-		
-		joinColumns.removeSpecifiedJoinColumn(0);
-		joinColumnResources = attributeResource.supportingAnnotations(JoinColumnAnnotation.ANNOTATION_NAME, JoinColumnsAnnotation.ANNOTATION_NAME);
-		assertFalse(joinColumnResources.hasNext());
-		joinColumnsIterator = joinColumns.specifiedJoinColumns();
-		assertFalse(joinColumnsIterator.hasNext());
-
-		assertNull(attributeResource.getSupportingAnnotation(JoinColumnsAnnotation.ANNOTATION_NAME));
-	}
-	
-	public void testMoveSpecifiedJoinColumn() throws Exception {
-		createTestEntityWithOneToOneMapping();
-		addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
-		
-		PersistentAttribute persistentAttribute = getJavaPersistentType().attributes().next();
-		OneToOneMapping oneToOneMapping = (OneToOneMapping) persistentAttribute.getMapping();
-		JoinColumnJoiningStrategy joinColumns = oneToOneMapping.getRelationshipReference().getJoinColumnJoiningStrategy();
-		
-		joinColumns.addSpecifiedJoinColumn(0).setSpecifiedName("FOO");
-		joinColumns.addSpecifiedJoinColumn(1).setSpecifiedName("BAR");
-		joinColumns.addSpecifiedJoinColumn(2).setSpecifiedName("BAZ");
-		
-		JavaResourcePersistentAttribute attributeResource = getJpaProject().getJavaResourcePersistentType(FULLY_QUALIFIED_TYPE_NAME).persistableAttributes().next();
-		
-		ListIterator<NestableAnnotation> javaJoinColumns = attributeResource.supportingAnnotations(JoinColumnAnnotation.ANNOTATION_NAME, JoinColumnsAnnotation.ANNOTATION_NAME);
-		assertEquals(3, CollectionTools.size(javaJoinColumns));
-		
-		
-		joinColumns.moveSpecifiedJoinColumn(2, 0);
-		ListIterator<? extends JoinColumn> primaryKeyJoinColumns = joinColumns.specifiedJoinColumns();
-		assertEquals("BAR", primaryKeyJoinColumns.next().getSpecifiedName());
-		assertEquals("BAZ", primaryKeyJoinColumns.next().getSpecifiedName());
-		assertEquals("FOO", primaryKeyJoinColumns.next().getSpecifiedName());
-
-		javaJoinColumns = attributeResource.supportingAnnotations(JoinColumnAnnotation.ANNOTATION_NAME, JoinColumnsAnnotation.ANNOTATION_NAME);
-		assertEquals("BAR", ((JoinColumnAnnotation) javaJoinColumns.next()).getName());
-		assertEquals("BAZ", ((JoinColumnAnnotation) javaJoinColumns.next()).getName());
-		assertEquals("FOO", ((JoinColumnAnnotation) javaJoinColumns.next()).getName());
-
-
-		joinColumns.moveSpecifiedJoinColumn(0, 1);
-		primaryKeyJoinColumns = joinColumns.specifiedJoinColumns();
-		assertEquals("BAZ", primaryKeyJoinColumns.next().getSpecifiedName());
-		assertEquals("BAR", primaryKeyJoinColumns.next().getSpecifiedName());
-		assertEquals("FOO", primaryKeyJoinColumns.next().getSpecifiedName());
-
-		javaJoinColumns = attributeResource.supportingAnnotations(JoinColumnAnnotation.ANNOTATION_NAME, JoinColumnsAnnotation.ANNOTATION_NAME);
-		assertEquals("BAZ", ((JoinColumnAnnotation) javaJoinColumns.next()).getName());
-		assertEquals("BAR", ((JoinColumnAnnotation) javaJoinColumns.next()).getName());
-		assertEquals("FOO", ((JoinColumnAnnotation) javaJoinColumns.next()).getName());
-	}
-	
-	public void testUpdateSpecifiedJoinColumns() throws Exception {
-		createTestEntityWithOneToOneMapping();
-		addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
-		
-		PersistentAttribute persistentAttribute = getJavaPersistentType().attributes().next();
-		OneToOneMapping oneToOneMapping = (OneToOneMapping) persistentAttribute.getMapping();
-		JoinColumnJoiningStrategy joinColumns = oneToOneMapping.getRelationshipReference().getJoinColumnJoiningStrategy();
-		JavaResourcePersistentAttribute attributeResource = getJpaProject().getJavaResourcePersistentType(FULLY_QUALIFIED_TYPE_NAME).persistableAttributes().next();
-	
-		((JoinColumnAnnotation) attributeResource.addSupportingAnnotation(0, JoinColumnAnnotation.ANNOTATION_NAME, JoinColumnsAnnotation.ANNOTATION_NAME)).setName("FOO");
-		((JoinColumnAnnotation) attributeResource.addSupportingAnnotation(1, JoinColumnAnnotation.ANNOTATION_NAME, JoinColumnsAnnotation.ANNOTATION_NAME)).setName("BAR");
-		((JoinColumnAnnotation) attributeResource.addSupportingAnnotation(2, JoinColumnAnnotation.ANNOTATION_NAME, JoinColumnsAnnotation.ANNOTATION_NAME)).setName("BAZ");
-			
-		ListIterator<? extends JoinColumn> joinColumnsIterator = joinColumns.specifiedJoinColumns();
-		assertEquals("FOO", joinColumnsIterator.next().getName());
-		assertEquals("BAR", joinColumnsIterator.next().getName());
-		assertEquals("BAZ", joinColumnsIterator.next().getName());
-		assertFalse(joinColumnsIterator.hasNext());
-		
-		attributeResource.moveSupportingAnnotation(2, 0, JoinColumnsAnnotation.ANNOTATION_NAME);
-		joinColumnsIterator = joinColumns.specifiedJoinColumns();
-		assertEquals("BAR", joinColumnsIterator.next().getName());
-		assertEquals("BAZ", joinColumnsIterator.next().getName());
-		assertEquals("FOO", joinColumnsIterator.next().getName());
-		assertFalse(joinColumnsIterator.hasNext());
-	
-		attributeResource.moveSupportingAnnotation(0, 1, JoinColumnsAnnotation.ANNOTATION_NAME);
-		joinColumnsIterator = joinColumns.specifiedJoinColumns();
-		assertEquals("BAZ", joinColumnsIterator.next().getName());
-		assertEquals("BAR", joinColumnsIterator.next().getName());
-		assertEquals("FOO", joinColumnsIterator.next().getName());
-		assertFalse(joinColumnsIterator.hasNext());
-	
-		attributeResource.removeSupportingAnnotation(1,  JoinColumnAnnotation.ANNOTATION_NAME, JoinColumnsAnnotation.ANNOTATION_NAME);
-		joinColumnsIterator = joinColumns.specifiedJoinColumns();
-		assertEquals("BAZ", joinColumnsIterator.next().getName());
-		assertEquals("FOO", joinColumnsIterator.next().getName());
-		assertFalse(joinColumnsIterator.hasNext());
-	
-		attributeResource.removeSupportingAnnotation(1,  JoinColumnAnnotation.ANNOTATION_NAME, JoinColumnsAnnotation.ANNOTATION_NAME);
-		joinColumnsIterator = joinColumns.specifiedJoinColumns();
-		assertEquals("BAZ", joinColumnsIterator.next().getName());
-		assertFalse(joinColumnsIterator.hasNext());
-		
-		attributeResource.removeSupportingAnnotation(0,  JoinColumnAnnotation.ANNOTATION_NAME, JoinColumnsAnnotation.ANNOTATION_NAME);
-		joinColumnsIterator = joinColumns.specifiedJoinColumns();
-		assertFalse(joinColumnsIterator.hasNext());
-	}
-	
-	public void testJoinColumnIsVirtual() throws Exception {
-		createTestEntityWithOneToOneMapping();
-		addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
-		
-		PersistentAttribute persistentAttribute = getJavaPersistentType().attributes().next();
-		OneToOneMapping oneToOneMapping = (OneToOneMapping) persistentAttribute.getMapping();
-		JoinColumnJoiningStrategy joinColumns = oneToOneMapping.getRelationshipReference().getJoinColumnJoiningStrategy();
-		
-		assertTrue(joinColumns.getDefaultJoinColumn().isVirtual());
-
-		joinColumns.addSpecifiedJoinColumn(0);
-		JoinColumn specifiedJoinColumn = joinColumns.specifiedJoinColumns().next();
-		assertFalse(specifiedJoinColumn.isVirtual());
-		
-		assertNull(joinColumns.getDefaultJoinColumn());
-	}
-
-	public void testCandidateMappedByAttributeNames() throws Exception {
-		createTestEntityWithValidOneToOneMapping();
-		createTestTargetEntityAddress();
-		addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
-		addXmlClassRef(PACKAGE_NAME + ".Address");
-		
-		PersistentAttribute persistentAttribute = getJavaPersistentType().attributes().next();
-		OneToOneMapping oneToOneMapping = (OneToOneMapping) persistentAttribute.getMapping();
-
-		Iterator<String> attributeNames = 
-			oneToOneMapping.getRelationshipReference().getMappedByJoiningStrategy().candidateMappedByAttributeNames();
-		assertEquals("id", attributeNames.next());
-		assertEquals("city", attributeNames.next());
-		assertEquals("state", attributeNames.next());
-		assertEquals("zip", attributeNames.next());
-		assertFalse(attributeNames.hasNext());
-		
-		oneToOneMapping.setSpecifiedTargetEntity("foo");
-		attributeNames = 
-			oneToOneMapping.getRelationshipReference().getMappedByJoiningStrategy().candidateMappedByAttributeNames();
-		assertFalse(attributeNames.hasNext());
-		
-		oneToOneMapping.setSpecifiedTargetEntity(null);
-		attributeNames = 
-			oneToOneMapping.getRelationshipReference().getMappedByJoiningStrategy().candidateMappedByAttributeNames();
-		assertEquals("id", attributeNames.next());
-		assertEquals("city", attributeNames.next());
-		assertEquals("state", attributeNames.next());
-		assertEquals("zip", attributeNames.next());
-		assertFalse(attributeNames.hasNext());
-	}
-
-	public void testDefaultTargetEntity() throws Exception {
-		createTestEntityWithValidOneToOneMapping();
-		createTestTargetEntityAddress();
-		addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
-		
-		PersistentAttribute persistentAttribute = getJavaPersistentType().attributes().next();
-		OneToOneMapping oneToOneMapping = (OneToOneMapping) persistentAttribute.getMapping();
-
-		//targetEntity not in the persistence unit, default still set, handled by validation
-		assertEquals(PACKAGE_NAME + ".Address", oneToOneMapping.getDefaultTargetEntity());
-		
-		//add targetEntity to the persistence unit
-		addXmlClassRef(PACKAGE_NAME + ".Address");
-		assertEquals(PACKAGE_NAME + ".Address", oneToOneMapping.getDefaultTargetEntity());
-
-		//test default still the same when specified target entity it set
-		oneToOneMapping.setSpecifiedTargetEntity("foo");
-		assertEquals(PACKAGE_NAME + ".Address", oneToOneMapping.getDefaultTargetEntity());
-		
-		ListIterator<ClassRef> classRefs = getPersistenceUnit().specifiedClassRefs();
-		classRefs.next();
-		ClassRef addressClassRef = classRefs.next();
-		JavaPersistentType addressPersistentType = addressClassRef.getJavaPersistentType();
-
-		//test target is not an Entity, default target entity still exists, this case handled with validation
-		addressPersistentType.setMappingKey(MappingKeys.NULL_TYPE_MAPPING_KEY);
-		assertEquals(PACKAGE_NAME + ".Address", oneToOneMapping.getDefaultTargetEntity());
-	}
-	
-	public void testDefaultTargetEntityCollectionType() throws Exception {
-		createTestEntityWithCollectionOneToOneMapping();
-		createTestTargetEntityAddress();
-		addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
-		addXmlClassRef(PACKAGE_NAME + ".Address");
-	
-		PersistentAttribute persistentAttribute = getJavaPersistentType().attributes().next();
-		OneToOneMapping oneToOneMapping = (OneToOneMapping) persistentAttribute.getMapping();
-
-		assertNull(oneToOneMapping.getDefaultTargetEntity());
-	}
-	
-	public void testDefaultTargetEntityGenericizedCollectionType() throws Exception {
-		createTestEntityWithGenericizedCollectionOneToOneMapping();
-		createTestTargetEntityAddress();
-		addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
-		addXmlClassRef(PACKAGE_NAME + ".Address");
-	
-		PersistentAttribute persistentAttribute = getJavaPersistentType().attributes().next();
-		OneToOneMapping oneToOneMapping = (OneToOneMapping) persistentAttribute.getMapping();
-
-		assertNull(oneToOneMapping.getDefaultTargetEntity());
-	}
-	
-	public void testTargetEntity() throws Exception {
-		createTestEntityWithValidOneToOneMapping();
-		createTestTargetEntityAddress();
-		addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
-		
-		PersistentAttribute persistentAttribute = getJavaPersistentType().attributes().next();
-		OneToOneMapping oneToOneMapping = (OneToOneMapping) persistentAttribute.getMapping();
-
-		assertEquals(PACKAGE_NAME + ".Address", oneToOneMapping.getTargetEntity());
-
-		oneToOneMapping.setSpecifiedTargetEntity("foo");
-		assertEquals("foo", oneToOneMapping.getTargetEntity());
-		
-		oneToOneMapping.setSpecifiedTargetEntity(null);
-		assertEquals(PACKAGE_NAME + ".Address", oneToOneMapping.getTargetEntity());
-	}
-	
-	public void testResolvedTargetEntity() throws Exception {
-		createTestEntityWithValidOneToOneMapping();
-		addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
-		
-		PersistentAttribute persistentAttribute = getJavaPersistentType().attributes().next();
-		OneToOneMapping oneToOneMapping = (OneToOneMapping) persistentAttribute.getMapping();
-
-		//targetEntity not in the persistence unit
-		assertNull(oneToOneMapping.getResolvedTargetEntity());
-		
-		//add targetEntity to the persistence unit, now target entity should resolve
-		createTestTargetEntityAddress();
-		addXmlClassRef(PACKAGE_NAME + ".Address");
-		ListIterator<ClassRef> classRefs = getPersistenceUnit().specifiedClassRefs();
-		classRefs.next();
-		ClassRef addressClassRef = classRefs.next();
-		TypeMapping addressTypeMapping = addressClassRef.getJavaPersistentType().getMapping();
-		assertEquals(addressTypeMapping, oneToOneMapping.getResolvedTargetEntity());
-
-		//test default still the same when specified target entity it set
-		oneToOneMapping.setSpecifiedTargetEntity("foo");
-		assertNull(oneToOneMapping.getResolvedTargetEntity());
-		
-		
-		oneToOneMapping.setSpecifiedTargetEntity(PACKAGE_NAME + ".Address");
-		assertEquals(addressTypeMapping, oneToOneMapping.getResolvedTargetEntity());
-		
-
-		oneToOneMapping.setSpecifiedTargetEntity(null);
-		assertEquals(addressTypeMapping, oneToOneMapping.getResolvedTargetEntity());
-	}
-	
-	public void testPrimaryKeyJoinColumns() throws Exception {
-		createTestEntityWithOneToOneMapping();
-		addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
-		
-		PersistentAttribute persistentAttribute = getJavaPersistentType().attributes().next();
-		OneToOneMapping oneToOneMapping = (OneToOneMapping) persistentAttribute.getMapping();
-		PrimaryKeyJoinColumnJoiningStrategy strategy = 
-			oneToOneMapping.getRelationshipReference().getPrimaryKeyJoinColumnJoiningStrategy();
-		ListIterator<JavaPrimaryKeyJoinColumn> primaryKeyJoinColumns = 
-			strategy.primaryKeyJoinColumns();
-		
-		assertFalse(primaryKeyJoinColumns.hasNext());
-
-		JavaResourcePersistentType typeResource = getJpaProject().getJavaResourcePersistentType(FULLY_QUALIFIED_TYPE_NAME);
-		JavaResourcePersistentAttribute attributeResource = typeResource.persistableAttributes().next();
-
-		//add an annotation to the resource model and verify the context model is updated
-		PrimaryKeyJoinColumnAnnotation joinColumn = (PrimaryKeyJoinColumnAnnotation) attributeResource.addSupportingAnnotation(0, JPA.PRIMARY_KEY_JOIN_COLUMN, JPA.PRIMARY_KEY_JOIN_COLUMNS);
-		joinColumn.setName("FOO");
-		primaryKeyJoinColumns = strategy.primaryKeyJoinColumns();	
-		assertEquals("FOO", primaryKeyJoinColumns.next().getName());
-		assertFalse(primaryKeyJoinColumns.hasNext());
-
-		joinColumn = (PrimaryKeyJoinColumnAnnotation) attributeResource.addSupportingAnnotation(0, JPA.PRIMARY_KEY_JOIN_COLUMN, JPA.PRIMARY_KEY_JOIN_COLUMNS);
-		joinColumn.setName("BAR");
-		primaryKeyJoinColumns = strategy.primaryKeyJoinColumns();		
-		assertEquals("BAR", primaryKeyJoinColumns.next().getName());
-		assertEquals("FOO", primaryKeyJoinColumns.next().getName());
-		assertFalse(primaryKeyJoinColumns.hasNext());
-
-
-		joinColumn = (PrimaryKeyJoinColumnAnnotation) attributeResource.addSupportingAnnotation(0, JPA.PRIMARY_KEY_JOIN_COLUMN, JPA.PRIMARY_KEY_JOIN_COLUMNS);
-		joinColumn.setName("BAZ");
-		primaryKeyJoinColumns = strategy.primaryKeyJoinColumns();		
-		assertEquals("BAZ", primaryKeyJoinColumns.next().getName());
-		assertEquals("BAR", primaryKeyJoinColumns.next().getName());
-		assertEquals("FOO", primaryKeyJoinColumns.next().getName());
-		assertFalse(primaryKeyJoinColumns.hasNext());
-	
-		//move an annotation to the resource model and verify the context model is updated
-		attributeResource.moveSupportingAnnotation(1, 0, JPA.PRIMARY_KEY_JOIN_COLUMNS);
-		primaryKeyJoinColumns = strategy.primaryKeyJoinColumns();		
-		assertEquals("BAR", primaryKeyJoinColumns.next().getName());
-		assertEquals("BAZ", primaryKeyJoinColumns.next().getName());
-		assertEquals("FOO", primaryKeyJoinColumns.next().getName());
-		assertFalse(primaryKeyJoinColumns.hasNext());
-
-		attributeResource.removeSupportingAnnotation(0, JPA.PRIMARY_KEY_JOIN_COLUMN, JPA.PRIMARY_KEY_JOIN_COLUMNS);
-		primaryKeyJoinColumns = strategy.primaryKeyJoinColumns();		
-		assertEquals("BAZ", primaryKeyJoinColumns.next().getName());
-		assertEquals("FOO", primaryKeyJoinColumns.next().getName());
-		assertFalse(primaryKeyJoinColumns.hasNext());
-	
-		attributeResource.removeSupportingAnnotation(0, JPA.PRIMARY_KEY_JOIN_COLUMN, JPA.PRIMARY_KEY_JOIN_COLUMNS);
-		primaryKeyJoinColumns = strategy.primaryKeyJoinColumns();		
-		assertEquals("FOO", primaryKeyJoinColumns.next().getName());
-		assertFalse(primaryKeyJoinColumns.hasNext());
-
-		
-		attributeResource.removeSupportingAnnotation(0, JPA.PRIMARY_KEY_JOIN_COLUMN, JPA.PRIMARY_KEY_JOIN_COLUMNS);
-		primaryKeyJoinColumns = strategy.primaryKeyJoinColumns();		
-		assertFalse(primaryKeyJoinColumns.hasNext());
-	}
-	
-	public void testPrimaryKeyJoinColumnsSize() throws Exception {
-		createTestEntityWithOneToOneMapping();
-		addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
-		
-		PersistentAttribute persistentAttribute = getJavaPersistentType().attributes().next();
-		OneToOneMapping oneToOneMapping = (OneToOneMapping) persistentAttribute.getMapping();
-		PrimaryKeyJoinColumnJoiningStrategy strategy = 
-			oneToOneMapping.getRelationshipReference().getPrimaryKeyJoinColumnJoiningStrategy();
-		
-		assertEquals(0, strategy.primaryKeyJoinColumnsSize());
-		
-		strategy.addPrimaryKeyJoinColumn(0);
-		assertEquals(1, strategy.primaryKeyJoinColumnsSize());
-		
-		strategy.removePrimaryKeyJoinColumn(0);
-		assertEquals(0, strategy.primaryKeyJoinColumnsSize());
-	}
-
-	public void testAddPrimaryKeyJoinColumn() throws Exception {
-		createTestEntityWithOneToOneMapping();
-		addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
-		
-		PersistentAttribute persistentAttribute = getJavaPersistentType().attributes().next();
-		OneToOneMapping oneToOneMapping = (OneToOneMapping) persistentAttribute.getMapping();
-		PrimaryKeyJoinColumnJoiningStrategy strategy = 
-			oneToOneMapping.getRelationshipReference().getPrimaryKeyJoinColumnJoiningStrategy();
-		
-		strategy.addPrimaryKeyJoinColumn(0).setSpecifiedName("FOO");
-		strategy.addPrimaryKeyJoinColumn(0).setSpecifiedName("BAR");
-		strategy.addPrimaryKeyJoinColumn(0).setSpecifiedName("BAZ");
-		
-		JavaResourcePersistentType typeResource = getJpaProject().getJavaResourcePersistentType(FULLY_QUALIFIED_TYPE_NAME);
-		JavaResourcePersistentAttribute attributeResource = typeResource.persistableAttributes().next();
-		Iterator<NestableAnnotation> joinColumns = attributeResource.supportingAnnotations(PrimaryKeyJoinColumnAnnotation.ANNOTATION_NAME, PrimaryKeyJoinColumnsAnnotation.ANNOTATION_NAME);
-		
-		assertEquals("BAZ", ((PrimaryKeyJoinColumnAnnotation) joinColumns.next()).getName());
-		assertEquals("BAR", ((PrimaryKeyJoinColumnAnnotation) joinColumns.next()).getName());
-		assertEquals("FOO", ((PrimaryKeyJoinColumnAnnotation) joinColumns.next()).getName());
-		assertFalse(joinColumns.hasNext());
-	}
-	
-	public void testAddPrimaryKeyJoinColumn2() throws Exception {
-		createTestEntityWithOneToOneMapping();
-		addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
-		
-		PersistentAttribute persistentAttribute = getJavaPersistentType().attributes().next();
-		OneToOneMapping oneToOneMapping = (OneToOneMapping) persistentAttribute.getMapping();
-		PrimaryKeyJoinColumnJoiningStrategy strategy = 
-			oneToOneMapping.getRelationshipReference().getPrimaryKeyJoinColumnJoiningStrategy();
-		
-		strategy.addPrimaryKeyJoinColumn(0).setSpecifiedName("FOO");
-		strategy.addPrimaryKeyJoinColumn(1).setSpecifiedName("BAR");
-		strategy.addPrimaryKeyJoinColumn(2).setSpecifiedName("BAZ");
-		
-		JavaResourcePersistentType typeResource = getJpaProject().getJavaResourcePersistentType(FULLY_QUALIFIED_TYPE_NAME);
-		JavaResourcePersistentAttribute attributeResource = typeResource.persistableAttributes().next();
-		Iterator<NestableAnnotation> joinColumns = attributeResource.supportingAnnotations(PrimaryKeyJoinColumnAnnotation.ANNOTATION_NAME, PrimaryKeyJoinColumnsAnnotation.ANNOTATION_NAME);
-		
-		assertEquals("FOO", ((PrimaryKeyJoinColumnAnnotation) joinColumns.next()).getName());
-		assertEquals("BAR", ((PrimaryKeyJoinColumnAnnotation) joinColumns.next()).getName());
-		assertEquals("BAZ", ((PrimaryKeyJoinColumnAnnotation) joinColumns.next()).getName());
-		assertFalse(joinColumns.hasNext());
-	}
-	
-	public void testRemovePrimaryKeyJoinColumn() throws Exception {
-		createTestEntityWithOneToOneMapping();
-		addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
-		
-		PersistentAttribute persistentAttribute = getJavaPersistentType().attributes().next();
-		OneToOneMapping oneToOneMapping = (OneToOneMapping) persistentAttribute.getMapping();
-		PrimaryKeyJoinColumnJoiningStrategy strategy = 
-			oneToOneMapping.getRelationshipReference().getPrimaryKeyJoinColumnJoiningStrategy();
-		
-		strategy.addPrimaryKeyJoinColumn(0).setSpecifiedName("FOO");
-		strategy.addPrimaryKeyJoinColumn(1).setSpecifiedName("BAR");
-		strategy.addPrimaryKeyJoinColumn(2).setSpecifiedName("BAZ");
-		
-		JavaResourcePersistentType typeResource = getJpaProject().getJavaResourcePersistentType(FULLY_QUALIFIED_TYPE_NAME);
-		JavaResourcePersistentAttribute attributeResource = typeResource.persistableAttributes().next();
-		
-		assertEquals(3, CollectionTools.size(attributeResource.supportingAnnotations(PrimaryKeyJoinColumnAnnotation.ANNOTATION_NAME, PrimaryKeyJoinColumnsAnnotation.ANNOTATION_NAME)));
-
-		strategy.removePrimaryKeyJoinColumn(1);
-		
-		Iterator<NestableAnnotation> joinColumnResources = attributeResource.supportingAnnotations(PrimaryKeyJoinColumnAnnotation.ANNOTATION_NAME, PrimaryKeyJoinColumnsAnnotation.ANNOTATION_NAME);
-		assertEquals("FOO", ((PrimaryKeyJoinColumnAnnotation) joinColumnResources.next()).getName());		
-		assertEquals("BAZ", ((PrimaryKeyJoinColumnAnnotation) joinColumnResources.next()).getName());
-		assertFalse(joinColumnResources.hasNext());
-		
-		Iterator<PrimaryKeyJoinColumn> joinColumns = strategy.primaryKeyJoinColumns();
-		assertEquals("FOO", joinColumns.next().getName());		
-		assertEquals("BAZ", joinColumns.next().getName());
-		assertFalse(joinColumns.hasNext());
-	
-		
-		strategy.removePrimaryKeyJoinColumn(1);
-		joinColumnResources = attributeResource.supportingAnnotations(PrimaryKeyJoinColumnAnnotation.ANNOTATION_NAME, PrimaryKeyJoinColumnsAnnotation.ANNOTATION_NAME);
-		assertEquals("FOO", ((PrimaryKeyJoinColumnAnnotation) joinColumnResources.next()).getName());		
-		assertFalse(joinColumnResources.hasNext());
-
-		joinColumns = strategy.primaryKeyJoinColumns();
-		assertEquals("FOO", joinColumns.next().getName());
-		assertFalse(joinColumns.hasNext());
-
-		
-		strategy.removePrimaryKeyJoinColumn(0);
-		joinColumnResources = attributeResource.supportingAnnotations(PrimaryKeyJoinColumnAnnotation.ANNOTATION_NAME, PrimaryKeyJoinColumnsAnnotation.ANNOTATION_NAME);
-		assertFalse(joinColumnResources.hasNext());
-		joinColumns = strategy.primaryKeyJoinColumns();
-		assertFalse(joinColumns.hasNext());
-
-		assertNull(attributeResource.getSupportingAnnotation(PrimaryKeyJoinColumnsAnnotation.ANNOTATION_NAME));
-	}
-	
-	public void testMovePrimaryKeyJoinColumn() throws Exception {
-		createTestEntityWithOneToOneMapping();
-		addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
-		
-		PersistentAttribute persistentAttribute = getJavaPersistentType().attributes().next();
-		OneToOneMapping oneToOneMapping = (OneToOneMapping) persistentAttribute.getMapping();
-		PrimaryKeyJoinColumnJoiningStrategy strategy = 
-			oneToOneMapping.getRelationshipReference().getPrimaryKeyJoinColumnJoiningStrategy();
-		
-		strategy.addPrimaryKeyJoinColumn(0).setSpecifiedName("FOO");
-		strategy.addPrimaryKeyJoinColumn(1).setSpecifiedName("BAR");
-		strategy.addPrimaryKeyJoinColumn(2).setSpecifiedName("BAZ");
-		
-		JavaResourcePersistentAttribute attributeResource = getJpaProject().getJavaResourcePersistentType(FULLY_QUALIFIED_TYPE_NAME).persistableAttributes().next();
-		
-		ListIterator<NestableAnnotation> javaJoinColumns = attributeResource.supportingAnnotations(PrimaryKeyJoinColumnAnnotation.ANNOTATION_NAME, PrimaryKeyJoinColumnsAnnotation.ANNOTATION_NAME);
-		assertEquals(3, CollectionTools.size(javaJoinColumns));
-		
-		
-		strategy.movePrimaryKeyJoinColumn(2, 0);
-		ListIterator<PrimaryKeyJoinColumn> primaryKeyJoinColumns = strategy.primaryKeyJoinColumns();
-		assertEquals("BAR", primaryKeyJoinColumns.next().getSpecifiedName());
-		assertEquals("BAZ", primaryKeyJoinColumns.next().getSpecifiedName());
-		assertEquals("FOO", primaryKeyJoinColumns.next().getSpecifiedName());
-
-		javaJoinColumns = attributeResource.supportingAnnotations(PrimaryKeyJoinColumnAnnotation.ANNOTATION_NAME, PrimaryKeyJoinColumnsAnnotation.ANNOTATION_NAME);
-		assertEquals("BAR", ((PrimaryKeyJoinColumnAnnotation) javaJoinColumns.next()).getName());
-		assertEquals("BAZ", ((PrimaryKeyJoinColumnAnnotation) javaJoinColumns.next()).getName());
-		assertEquals("FOO", ((PrimaryKeyJoinColumnAnnotation) javaJoinColumns.next()).getName());
-
-
-		strategy.movePrimaryKeyJoinColumn(0, 1);
-		primaryKeyJoinColumns = strategy.primaryKeyJoinColumns();
-		assertEquals("BAZ", primaryKeyJoinColumns.next().getSpecifiedName());
-		assertEquals("BAR", primaryKeyJoinColumns.next().getSpecifiedName());
-		assertEquals("FOO", primaryKeyJoinColumns.next().getSpecifiedName());
-
-		javaJoinColumns = attributeResource.supportingAnnotations(PrimaryKeyJoinColumnAnnotation.ANNOTATION_NAME, PrimaryKeyJoinColumnsAnnotation.ANNOTATION_NAME);
-		assertEquals("BAZ", ((PrimaryKeyJoinColumnAnnotation) javaJoinColumns.next()).getName());
-		assertEquals("BAR", ((PrimaryKeyJoinColumnAnnotation) javaJoinColumns.next()).getName());
-		assertEquals("FOO", ((PrimaryKeyJoinColumnAnnotation) javaJoinColumns.next()).getName());
-	}
-	
-	public void testUpdatePrimaryKeyJoinColumns() throws Exception {
-		createTestEntityWithOneToOneMapping();
-		addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
-		
-		JavaResourcePersistentAttribute attributeResource = getJpaProject().getJavaResourcePersistentType(FULLY_QUALIFIED_TYPE_NAME).persistableAttributes().next();
-		PersistentAttribute persistentAttribute = getJavaPersistentType().attributes().next();
-		OneToOneMapping oneToOneMapping = (OneToOneMapping) persistentAttribute.getMapping();
-		PrimaryKeyJoinColumnJoiningStrategy strategy = 
-			oneToOneMapping.getRelationshipReference().getPrimaryKeyJoinColumnJoiningStrategy();
-		
-		((PrimaryKeyJoinColumnAnnotation) attributeResource.addSupportingAnnotation(0, PrimaryKeyJoinColumnAnnotation.ANNOTATION_NAME, PrimaryKeyJoinColumnsAnnotation.ANNOTATION_NAME)).setName("FOO");
-		((PrimaryKeyJoinColumnAnnotation) attributeResource.addSupportingAnnotation(1, PrimaryKeyJoinColumnAnnotation.ANNOTATION_NAME, PrimaryKeyJoinColumnsAnnotation.ANNOTATION_NAME)).setName("BAR");
-		((PrimaryKeyJoinColumnAnnotation) attributeResource.addSupportingAnnotation(2, PrimaryKeyJoinColumnAnnotation.ANNOTATION_NAME, PrimaryKeyJoinColumnsAnnotation.ANNOTATION_NAME)).setName("BAZ");
-			
-		ListIterator<PrimaryKeyJoinColumn> joinColumns = strategy.primaryKeyJoinColumns();
-		assertEquals("FOO", joinColumns.next().getName());
-		assertEquals("BAR", joinColumns.next().getName());
-		assertEquals("BAZ", joinColumns.next().getName());
-		assertFalse(joinColumns.hasNext());
-		
-		attributeResource.moveSupportingAnnotation(2, 0, PrimaryKeyJoinColumnsAnnotation.ANNOTATION_NAME);
-		joinColumns = strategy.primaryKeyJoinColumns();
-		assertEquals("BAR", joinColumns.next().getName());
-		assertEquals("BAZ", joinColumns.next().getName());
-		assertEquals("FOO", joinColumns.next().getName());
-		assertFalse(joinColumns.hasNext());
-	
-		attributeResource.moveSupportingAnnotation(0, 1, PrimaryKeyJoinColumnsAnnotation.ANNOTATION_NAME);
-		joinColumns = strategy.primaryKeyJoinColumns();
-		assertEquals("BAZ", joinColumns.next().getName());
-		assertEquals("BAR", joinColumns.next().getName());
-		assertEquals("FOO", joinColumns.next().getName());
-		assertFalse(joinColumns.hasNext());
-	
-		attributeResource.removeSupportingAnnotation(1,  PrimaryKeyJoinColumnAnnotation.ANNOTATION_NAME, PrimaryKeyJoinColumnsAnnotation.ANNOTATION_NAME);
-		joinColumns = strategy.primaryKeyJoinColumns();
-		assertEquals("BAZ", joinColumns.next().getName());
-		assertEquals("FOO", joinColumns.next().getName());
-		assertFalse(joinColumns.hasNext());
-	
-		attributeResource.removeSupportingAnnotation(1,  PrimaryKeyJoinColumnAnnotation.ANNOTATION_NAME, PrimaryKeyJoinColumnsAnnotation.ANNOTATION_NAME);
-		joinColumns = strategy.primaryKeyJoinColumns();
-		assertEquals("BAZ", joinColumns.next().getName());
-		assertFalse(joinColumns.hasNext());
-		
-		attributeResource.removeSupportingAnnotation(0,  PrimaryKeyJoinColumnAnnotation.ANNOTATION_NAME, PrimaryKeyJoinColumnsAnnotation.ANNOTATION_NAME);
-		joinColumns = strategy.primaryKeyJoinColumns();
-		assertFalse(joinColumns.hasNext());
-	}
-}
diff --git a/jpa/tests/org.eclipse.jpt.core.tests/src/org/eclipse/jpt/core/tests/internal/context/java/JavaPrimaryKeyJoinColumnTests.java b/jpa/tests/org.eclipse.jpt.core.tests/src/org/eclipse/jpt/core/tests/internal/context/java/JavaPrimaryKeyJoinColumnTests.java
deleted file mode 100644
index 51d129c..0000000
--- a/jpa/tests/org.eclipse.jpt.core.tests/src/org/eclipse/jpt/core/tests/internal/context/java/JavaPrimaryKeyJoinColumnTests.java
+++ /dev/null
@@ -1,295 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2008 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.core.tests.internal.context.java;
-
-import java.util.Iterator;
-import org.eclipse.jdt.core.ICompilationUnit;
-import org.eclipse.jpt.core.MappingKeys;
-import org.eclipse.jpt.core.context.PersistentAttribute;
-import org.eclipse.jpt.core.context.PrimaryKeyJoinColumn;
-import org.eclipse.jpt.core.resource.java.JPA;
-import org.eclipse.jpt.core.resource.java.JavaResourcePersistentType;
-import org.eclipse.jpt.core.resource.java.PrimaryKeyJoinColumnAnnotation;
-import org.eclipse.jpt.core.tests.internal.context.ContextModelTestCase;
-import org.eclipse.jpt.utility.internal.iterators.ArrayIterator;
-
-public class JavaPrimaryKeyJoinColumnTests extends ContextModelTestCase
-{
-	private static final String PRIMARY_KEY_JOIN_COLUMN_NAME = "MY_PRIMARY_KEY_JOIN_COLUMN";
-	private static final String COLUMN_DEFINITION = "MY_COLUMN_DEFINITION";
-
-
-	private ICompilationUnit createTestEntity() throws Exception {
-		return this.createTestType(new DefaultAnnotationWriter() {
-			@Override
-			public Iterator<String> imports() {
-				return new ArrayIterator<String>(JPA.ENTITY, JPA.ID);
-			}
-			@Override
-			public void appendTypeAnnotationTo(StringBuilder sb) {
-				sb.append("@Entity");
-			}
-			
-			@Override
-			public void appendIdFieldAnnotationTo(StringBuilder sb) {
-				sb.append("@Id");
-			}
-		});
-	}
-
-	private ICompilationUnit createTestEntityWithPrimaryKeyJoinColumn() throws Exception {	
-		return this.createTestType(new DefaultAnnotationWriter() {
-			@Override
-			public Iterator<String> imports() {
-				return new ArrayIterator<String>(JPA.ENTITY, JPA.ID, JPA.PRIMARY_KEY_JOIN_COLUMN);
-			}
-			@Override
-			public void appendTypeAnnotationTo(StringBuilder sb) {
-				sb.append("@Entity").append(CR);
-				sb.append("@PrimaryKeyJoinColumn(name=\"" + PRIMARY_KEY_JOIN_COLUMN_NAME + "\")");
-			}
-			@Override
-			public void appendIdFieldAnnotationTo(StringBuilder sb) {
-				sb.append("@Id");
-			}
-		});
-	}
-
-		
-	public JavaPrimaryKeyJoinColumnTests(String name) {
-		super(name);
-	}
-	
-	public void testGetSpecifiedName() throws Exception {
-		createTestEntityWithPrimaryKeyJoinColumn();
-		addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
-
-		PrimaryKeyJoinColumn specifiedPkJoinColumn = getJavaEntity().specifiedPrimaryKeyJoinColumns().next();
-		assertEquals(PRIMARY_KEY_JOIN_COLUMN_NAME, specifiedPkJoinColumn.getSpecifiedName());
-		
-		
-		JavaResourcePersistentType typeResource = getJpaProject().getJavaResourcePersistentType(FULLY_QUALIFIED_TYPE_NAME);
-		PrimaryKeyJoinColumnAnnotation pkJoinColumnResource = (PrimaryKeyJoinColumnAnnotation) typeResource.getSupportingAnnotation(JPA.PRIMARY_KEY_JOIN_COLUMN);
-		
-		pkJoinColumnResource.setName("FOO");
-		specifiedPkJoinColumn = getJavaEntity().specifiedPrimaryKeyJoinColumns().next();
-		assertEquals("FOO", specifiedPkJoinColumn.getName());
-	}
-	
-	public void testGetDefaultNameNoSpecifiedPrimaryKeyJoinColumns() throws Exception {
-		createTestEntity();
-		addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
-		
-		PrimaryKeyJoinColumn pkJoinColumn = getJavaEntity().getDefaultPrimaryKeyJoinColumn();
-		assertEquals("id", pkJoinColumn.getDefaultName());
-	}
-
-	public void testGetDefaultName() throws Exception {
-		createTestEntityWithPrimaryKeyJoinColumn();
-		addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
-		
-		assertNull(getJavaEntity().getDefaultPrimaryKeyJoinColumn());
-		
-		PrimaryKeyJoinColumn specifiedPkJoinColumn = getJavaEntity().specifiedPrimaryKeyJoinColumns().next();
-		assertEquals("id", specifiedPkJoinColumn.getDefaultName());
-		
-		//remove @Id annotation
-		PersistentAttribute idAttribute = getJavaPersistentType().getAttributeNamed("id");
-		idAttribute.setSpecifiedMappingKey(MappingKeys.NULL_ATTRIBUTE_MAPPING_KEY);
-
-		assertNull(specifiedPkJoinColumn.getDefaultName());
-	}
-	
-	public void testGetName() throws Exception {
-		createTestEntityWithPrimaryKeyJoinColumn();
-		addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
-		
-		PrimaryKeyJoinColumn specifiedPkJoinColumn = getJavaEntity().specifiedPrimaryKeyJoinColumns().next();
-		assertEquals(PRIMARY_KEY_JOIN_COLUMN_NAME, specifiedPkJoinColumn.getName());
-	}
-
-	public void testSetSpecifiedName() throws Exception {
-		createTestEntityWithPrimaryKeyJoinColumn();
-		addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
-
-		PrimaryKeyJoinColumn specifiedPkJoinColumn = getJavaEntity().specifiedPrimaryKeyJoinColumns().next();
-		
-		specifiedPkJoinColumn.setSpecifiedName("foo");
-		assertEquals("foo", specifiedPkJoinColumn.getSpecifiedName());
-		
-		JavaResourcePersistentType typeResource = getJpaProject().getJavaResourcePersistentType(FULLY_QUALIFIED_TYPE_NAME);
-		PrimaryKeyJoinColumnAnnotation pkJoinColumn = (PrimaryKeyJoinColumnAnnotation) typeResource.getSupportingAnnotation(JPA.PRIMARY_KEY_JOIN_COLUMN);
-		
-		assertEquals("foo", pkJoinColumn.getName());
-		
-		specifiedPkJoinColumn.setSpecifiedName(null);
-		assertNull(specifiedPkJoinColumn.getSpecifiedName());
-		pkJoinColumn = (PrimaryKeyJoinColumnAnnotation) typeResource.getSupportingAnnotation(JPA.PRIMARY_KEY_JOIN_COLUMN);
-		assertNull(pkJoinColumn);
-	}
-
-	public void testGetColumnDefinition() throws Exception {
-		createTestEntityWithPrimaryKeyJoinColumn();
-		addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
-		
-		PrimaryKeyJoinColumn specifiedPkJoinColumn = getJavaEntity().specifiedPrimaryKeyJoinColumns().next();
-		assertNull(specifiedPkJoinColumn.getColumnDefinition());
-
-		JavaResourcePersistentType typeResource = getJpaProject().getJavaResourcePersistentType(FULLY_QUALIFIED_TYPE_NAME);
-		PrimaryKeyJoinColumnAnnotation column = (PrimaryKeyJoinColumnAnnotation) typeResource.getSupportingAnnotation(JPA.PRIMARY_KEY_JOIN_COLUMN);
-		column.setColumnDefinition(COLUMN_DEFINITION);
-		
-		assertEquals(COLUMN_DEFINITION, specifiedPkJoinColumn.getColumnDefinition());
-		
-		column.setColumnDefinition(null);
-		
-		assertNull(specifiedPkJoinColumn.getColumnDefinition());
-
-		typeResource.removeSupportingAnnotation(JPA.PRIMARY_KEY_JOIN_COLUMN);
-		
-		assertEquals(0, getJavaEntity().specifiedPrimaryKeyJoinColumnsSize());
-	}
-	
-	public void testSetColumnDefinition() throws Exception {
-		createTestEntityWithPrimaryKeyJoinColumn();
-		addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
-		
-		PrimaryKeyJoinColumn specifiedPkJoinColumn = getJavaEntity().specifiedPrimaryKeyJoinColumns().next();
-		specifiedPkJoinColumn.setColumnDefinition("foo");
-		
-		JavaResourcePersistentType typeResource = getJpaProject().getJavaResourcePersistentType(FULLY_QUALIFIED_TYPE_NAME);
-		PrimaryKeyJoinColumnAnnotation column = (PrimaryKeyJoinColumnAnnotation) typeResource.getSupportingAnnotation(JPA.PRIMARY_KEY_JOIN_COLUMN);
-		
-		assertEquals("foo", column.getColumnDefinition());
-		
-		specifiedPkJoinColumn.setColumnDefinition(null);
-		column = (PrimaryKeyJoinColumnAnnotation) typeResource.getSupportingAnnotation(JPA.PRIMARY_KEY_JOIN_COLUMN);
-		assertNull(column.getColumnDefinition());
-	}
-
-	public void testGetSpecifiedReferencedColumnName() throws Exception {
-		createTestEntityWithPrimaryKeyJoinColumn();
-		addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
-
-		PrimaryKeyJoinColumn specifiedPkJoinColumn = getJavaEntity().specifiedPrimaryKeyJoinColumns().next();
-		assertNull(specifiedPkJoinColumn.getSpecifiedReferencedColumnName());
-		
-		JavaResourcePersistentType typeResource = getJpaProject().getJavaResourcePersistentType(FULLY_QUALIFIED_TYPE_NAME);
-		PrimaryKeyJoinColumnAnnotation pkJoinColumnResource = (PrimaryKeyJoinColumnAnnotation) typeResource.getSupportingAnnotation(JPA.PRIMARY_KEY_JOIN_COLUMN);
-		
-		pkJoinColumnResource.setReferencedColumnName("FOO");
-		specifiedPkJoinColumn = getJavaEntity().specifiedPrimaryKeyJoinColumns().next();
-		assertEquals("FOO", specifiedPkJoinColumn.getSpecifiedReferencedColumnName());
-	}
-	
-	public void testGetDefaultReferencedColumnNameNoSpecifiedPrimaryKeyJoinColumns() throws Exception {
-		createTestEntity();
-		addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
-		
-		PrimaryKeyJoinColumn pkJoinColumn = getJavaEntity().getDefaultPrimaryKeyJoinColumn();
-		assertEquals("id", pkJoinColumn.getDefaultReferencedColumnName());
-	}
-	
-	public void testGetDefaultReferencedColumnName() throws Exception {
-		createTestEntityWithPrimaryKeyJoinColumn();
-		addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
-		
-		assertNull(getJavaEntity().getDefaultPrimaryKeyJoinColumn());
-		
-		PrimaryKeyJoinColumn specifiedPkJoinColumn = getJavaEntity().specifiedPrimaryKeyJoinColumns().next();
-		assertEquals("id", specifiedPkJoinColumn.getDefaultReferencedColumnName());
-		
-		
-		//remove @Id annotation
-		PersistentAttribute idAttribute = getJavaPersistentType().getAttributeNamed("id");
-		idAttribute.setSpecifiedMappingKey(MappingKeys.NULL_ATTRIBUTE_MAPPING_KEY);
-
-		assertNull(specifiedPkJoinColumn.getDefaultReferencedColumnName());
-	}
-	
-	public void testGetReferencedColumnName() throws Exception {
-		createTestEntityWithPrimaryKeyJoinColumn();
-		addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
-		
-		JavaResourcePersistentType typeResource = getJpaProject().getJavaResourcePersistentType(FULLY_QUALIFIED_TYPE_NAME);
-		PrimaryKeyJoinColumnAnnotation pkJoinColumnResource = (PrimaryKeyJoinColumnAnnotation) typeResource.getSupportingAnnotation(JPA.PRIMARY_KEY_JOIN_COLUMN);
-		
-		pkJoinColumnResource.setReferencedColumnName("FOO");
-		
-		PrimaryKeyJoinColumn specifiedPkJoinColumn = getJavaEntity().specifiedPrimaryKeyJoinColumns().next();
-		assertEquals("FOO", specifiedPkJoinColumn.getReferencedColumnName());
-	}
-
-	public void testSetSpecifiedReferencedColumnName() throws Exception {
-		createTestEntityWithPrimaryKeyJoinColumn();
-		addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
-
-		PrimaryKeyJoinColumn specifiedPkJoinColumn = getJavaEntity().specifiedPrimaryKeyJoinColumns().next();
-		
-		specifiedPkJoinColumn.setSpecifiedReferencedColumnName("foo");
-		assertEquals("foo", specifiedPkJoinColumn.getSpecifiedReferencedColumnName());
-		
-		JavaResourcePersistentType typeResource = getJpaProject().getJavaResourcePersistentType(FULLY_QUALIFIED_TYPE_NAME);
-		PrimaryKeyJoinColumnAnnotation pkJoinColumn = (PrimaryKeyJoinColumnAnnotation) typeResource.getSupportingAnnotation(JPA.PRIMARY_KEY_JOIN_COLUMN);
-		
-		assertEquals("foo", pkJoinColumn.getReferencedColumnName());
-		
-		specifiedPkJoinColumn.setSpecifiedName(null);
-		specifiedPkJoinColumn.setSpecifiedReferencedColumnName(null);
-		assertNull(specifiedPkJoinColumn.getSpecifiedReferencedColumnName());
-		pkJoinColumn = (PrimaryKeyJoinColumnAnnotation) typeResource.getSupportingAnnotation(JPA.PRIMARY_KEY_JOIN_COLUMN);
-		assertNull(pkJoinColumn);
-	}
-	
-	public void testIsVirtual() throws Exception {
-		createTestEntityWithPrimaryKeyJoinColumn();
-		addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
-
-		PrimaryKeyJoinColumn specifiedPkJoinColumn = getJavaEntity().specifiedPrimaryKeyJoinColumns().next();
-		assertFalse(specifiedPkJoinColumn.isVirtual());
-		
-		assertNull(getJavaEntity().getDefaultPrimaryKeyJoinColumn());
-		getJavaEntity().removeSpecifiedPrimaryKeyJoinColumn(0);
-		assertTrue(getJavaEntity().getDefaultPrimaryKeyJoinColumn().isVirtual());
-	}
-	
-	public void testIsReferencedColumnResolved() throws Exception {
-		createTestEntityWithPrimaryKeyJoinColumn();
-		addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
-
-		PrimaryKeyJoinColumn specifiedPkJoinColumn = getJavaEntity().specifiedPrimaryKeyJoinColumns().next();
-		assertFalse(specifiedPkJoinColumn.isReferencedColumnResolved());
-	}
-	
-	public void testDbColumn() throws Exception {
-		createTestEntityWithPrimaryKeyJoinColumn();
-		addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
-
-		PrimaryKeyJoinColumn specifiedPkJoinColumn = getJavaEntity().specifiedPrimaryKeyJoinColumns().next();
-		assertNull(specifiedPkJoinColumn.getDbColumn());
-	}
-	
-	public void testDbReferencedColumn() throws Exception {
-		createTestEntityWithPrimaryKeyJoinColumn();
-		addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
-
-		PrimaryKeyJoinColumn specifiedPkJoinColumn = getJavaEntity().specifiedPrimaryKeyJoinColumns().next();
-		assertNull(specifiedPkJoinColumn.getReferencedDbColumn());
-	}
-	
-	public void testDbTable() throws Exception {
-		createTestEntityWithPrimaryKeyJoinColumn();
-		addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
-
-		PrimaryKeyJoinColumn specifiedPkJoinColumn = getJavaEntity().specifiedPrimaryKeyJoinColumns().next();
-		assertNull(specifiedPkJoinColumn.getDbTable());
-	}
-
-}
diff --git a/jpa/tests/org.eclipse.jpt.core.tests/src/org/eclipse/jpt/core/tests/internal/context/java/JavaQueryHintTests.java b/jpa/tests/org.eclipse.jpt.core.tests/src/org/eclipse/jpt/core/tests/internal/context/java/JavaQueryHintTests.java
deleted file mode 100644
index 24ff7a1..0000000
--- a/jpa/tests/org.eclipse.jpt.core.tests/src/org/eclipse/jpt/core/tests/internal/context/java/JavaQueryHintTests.java
+++ /dev/null
@@ -1,142 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2008 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.core.tests.internal.context.java;
-
-import java.util.Iterator;
-import org.eclipse.jdt.core.ICompilationUnit;
-import org.eclipse.jpt.core.context.Entity;
-import org.eclipse.jpt.core.context.QueryHint;
-import org.eclipse.jpt.core.resource.java.JPA;
-import org.eclipse.jpt.core.resource.java.JavaResourcePersistentType;
-import org.eclipse.jpt.core.resource.java.NamedQueryAnnotation;
-import org.eclipse.jpt.core.resource.java.QueryHintAnnotation;
-import org.eclipse.jpt.core.tests.internal.context.ContextModelTestCase;
-import org.eclipse.jpt.utility.internal.iterators.ArrayIterator;
-
-public class JavaQueryHintTests extends ContextModelTestCase
-{
-	private static final String QUERY_NAME = "QUERY_NAME";
-		
-	private ICompilationUnit createTestEntityWithNamedQuery() throws Exception {
-		return this.createTestType(new DefaultAnnotationWriter() {
-			@Override
-			public Iterator<String> imports() {
-				return new ArrayIterator<String>(JPA.ENTITY, JPA.NAMED_QUERY, JPA.QUERY_HINT);
-			}
-			@Override
-			public void appendTypeAnnotationTo(StringBuilder sb) {
-				sb.append("@Entity").append(CR);
-				sb.append("@NamedQuery(name=\"" + QUERY_NAME + "\", hints=@QueryHint())");
-			}
-		});
-	}
-
-
-		
-	public JavaQueryHintTests(String name) {
-		super(name);
-	}
-	
-	public void testUpdateName() throws Exception {
-		createTestEntityWithNamedQuery();
-		addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
-		
-		Entity entity = getJavaEntity();
-		QueryHint queryHint = entity.namedQueries().next().hints().next();
-
-		JavaResourcePersistentType typeResource = getJpaProject().getJavaResourcePersistentType(FULLY_QUALIFIED_TYPE_NAME);
-		QueryHintAnnotation javaQueryHint = ((NamedQueryAnnotation) typeResource.getSupportingAnnotation(NamedQueryAnnotation.ANNOTATION_NAME)).hints().next();
-		
-		assertNull(javaQueryHint.getName());
-		assertNull(queryHint.getName());
-
-		//set name in the resource model, verify context model updated
-		javaQueryHint.setName("foo");
-		assertEquals("foo", javaQueryHint.getName());
-		assertEquals("foo", queryHint.getName());
-		
-		//set name to null in the resource model
-		javaQueryHint.setName(null);
-		assertNull(javaQueryHint.getName());
-		assertEquals(0, entity.namedQueries().next().hintsSize());
-	}
-	
-	public void testModifyName() throws Exception {
-		createTestEntityWithNamedQuery();
-		addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
-		
-		Entity entity = getJavaEntity();
-		QueryHint queryHint = entity.namedQueries().next().hints().next();
-
-		JavaResourcePersistentType typeResource = getJpaProject().getJavaResourcePersistentType(FULLY_QUALIFIED_TYPE_NAME);
-		QueryHintAnnotation javaQueryhint = ((NamedQueryAnnotation) typeResource.getSupportingAnnotation(NamedQueryAnnotation.ANNOTATION_NAME)).hints().next();
-		
-		assertNull(javaQueryhint.getName());
-		assertNull(queryHint.getName());
-
-		//set name in the context model, verify resource model updated
-		queryHint.setName("foo");
-		assertEquals("foo", javaQueryhint.getName());
-		assertEquals("foo", queryHint.getName());
-		
-		//set name to null in the context model
-		queryHint.setName(null);
-		assertNull(javaQueryhint.getName());
-		assertNull(queryHint.getName());
-	}
-	
-	public void testUpdateValue() throws Exception {
-		createTestEntityWithNamedQuery();
-		addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
-		
-		Entity entity = getJavaEntity();
-		QueryHint queryHint = entity.namedQueries().next().hints().next();
-
-		JavaResourcePersistentType typeResource = getJpaProject().getJavaResourcePersistentType(FULLY_QUALIFIED_TYPE_NAME);
-		QueryHintAnnotation javaQueryhint = ((NamedQueryAnnotation) typeResource.getSupportingAnnotation(NamedQueryAnnotation.ANNOTATION_NAME)).hints().next();
-		
-		assertNull(javaQueryhint.getValue());
-		assertNull(queryHint.getValue());
-
-		//set name in the resource model, verify context model updated
-		javaQueryhint.setValue("foo");
-		assertEquals("foo", javaQueryhint.getValue());
-		assertEquals("foo", queryHint.getValue());
-		
-		//set name to null in the resource model
-		javaQueryhint.setValue(null);
-		assertNull(javaQueryhint.getValue());
-		assertEquals(0, entity.namedQueries().next().hintsSize());
-	}
-	
-	public void testModifyValue() throws Exception {
-		createTestEntityWithNamedQuery();
-		addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
-		
-		Entity entity = getJavaEntity();
-		QueryHint queryHint = entity.namedQueries().next().hints().next();
-
-		JavaResourcePersistentType typeResource = getJpaProject().getJavaResourcePersistentType(FULLY_QUALIFIED_TYPE_NAME);
-		QueryHintAnnotation javaQueryhint = ((NamedQueryAnnotation) typeResource.getSupportingAnnotation(NamedQueryAnnotation.ANNOTATION_NAME)).hints().next();
-		
-		assertNull(javaQueryhint.getValue());
-		assertNull(queryHint.getValue());
-
-		//set name in the context model, verify resource model updated
-		queryHint.setValue("foo");
-		assertEquals("foo", javaQueryhint.getValue());
-		assertEquals("foo", queryHint.getValue());
-		
-		//set name to null in the context model
-		queryHint.setValue(null);
-		assertNull(javaQueryhint.getValue());
-		assertNull(queryHint.getValue());
-	}
-}
diff --git a/jpa/tests/org.eclipse.jpt.core.tests/src/org/eclipse/jpt/core/tests/internal/context/java/JavaSecondaryTableTests.java b/jpa/tests/org.eclipse.jpt.core.tests/src/org/eclipse/jpt/core/tests/internal/context/java/JavaSecondaryTableTests.java
deleted file mode 100644
index 45de2f1..0000000
--- a/jpa/tests/org.eclipse.jpt.core.tests/src/org/eclipse/jpt/core/tests/internal/context/java/JavaSecondaryTableTests.java
+++ /dev/null
@@ -1,734 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2008 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.core.tests.internal.context.java;
-
-import java.util.Iterator;
-import java.util.ListIterator;
-
-import org.eclipse.jdt.core.ICompilationUnit;
-import org.eclipse.jpt.core.MappingKeys;
-import org.eclipse.jpt.core.context.IdMapping;
-import org.eclipse.jpt.core.context.PersistentAttribute;
-import org.eclipse.jpt.core.context.PrimaryKeyJoinColumn;
-import org.eclipse.jpt.core.context.SecondaryTable;
-import org.eclipse.jpt.core.context.UniqueConstraint;
-import org.eclipse.jpt.core.context.java.JavaPrimaryKeyJoinColumn;
-import org.eclipse.jpt.core.context.java.JavaUniqueConstraint;
-import org.eclipse.jpt.core.resource.java.JPA;
-import org.eclipse.jpt.core.resource.java.JavaResourcePersistentType;
-import org.eclipse.jpt.core.resource.java.NestableAnnotation;
-import org.eclipse.jpt.core.resource.java.PrimaryKeyJoinColumnAnnotation;
-import org.eclipse.jpt.core.resource.java.SecondaryTableAnnotation;
-import org.eclipse.jpt.core.resource.java.UniqueConstraintAnnotation;
-import org.eclipse.jpt.core.tests.internal.context.ContextModelTestCase;
-import org.eclipse.jpt.utility.internal.iterators.ArrayIterator;
-
-@SuppressWarnings("nls")
-public class JavaSecondaryTableTests extends ContextModelTestCase
-{
-	private static final String TABLE_NAME = "MY_TABLE";
-
-	private ICompilationUnit createTestEntityWithSecondaryTable() throws Exception {
-		return this.createTestType(new DefaultAnnotationWriter() {
-			@Override
-			public Iterator<String> imports() {
-				return new ArrayIterator<String>(JPA.ENTITY, JPA.SECONDARY_TABLE, JPA.ID);
-			}
-			@Override
-			public void appendTypeAnnotationTo(StringBuilder sb) {
-				sb.append("@Entity").append(CR);
-				sb.append("@SecondaryTable(name=\"" + TABLE_NAME + "\")");
-			}
-			@Override
-			public void appendIdFieldAnnotationTo(StringBuilder sb) {
-				sb.append("@Id");
-			}
-		});
-	}
-	
-	private ICompilationUnit createTestEntityWithSecondaryTables() throws Exception {
-		return this.createTestType(new DefaultAnnotationWriter() {
-			@Override
-			public Iterator<String> imports() {
-				return new ArrayIterator<String>(JPA.ENTITY, JPA.SECONDARY_TABLE, JPA.SECONDARY_TABLES);
-			}
-			@Override
-			public void appendTypeAnnotationTo(StringBuilder sb) {
-				sb.append("@Entity").append(CR);
-				sb.append("@SecondaryTables({@SecondaryTable(name=\"foo\"), @SecondaryTable(name=\"bar\")})");
-			}
-		});
-	}
-
-
-
-		
-	public JavaSecondaryTableTests(String name) {
-		super(name);
-	}
-
-	public void testGetSpecifiedName() throws Exception {
-		createTestEntityWithSecondaryTable();
-		addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
-
-		SecondaryTable secondaryTable = getJavaEntity().secondaryTables().next();
-		assertEquals(TABLE_NAME, secondaryTable.getSpecifiedName());
-	}
-	
-	public void testGetDefaultNameNull() throws Exception {
-		createTestEntityWithSecondaryTable();
-		addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
-		
-		SecondaryTable secondaryTable = getJavaEntity().secondaryTables().next();
-		assertNull(secondaryTable.getDefaultName());
-	}
-	
-	public void testGetName() throws Exception {
-		createTestEntityWithSecondaryTable();
-		addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
-		
-		SecondaryTable secondaryTable = getJavaEntity().secondaryTables().next();
-		assertEquals(TABLE_NAME, secondaryTable.getName());
-	}
-
-	public void testSetSpecifiedName() throws Exception {
-		createTestEntityWithSecondaryTable();
-		addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
-
-		SecondaryTable secondaryTable = getJavaEntity().secondaryTables().next();
-		secondaryTable.setSpecifiedName("foo");
-		
-		assertEquals("foo", getJavaEntity().secondaryTables().next().getSpecifiedName());
-		
-		JavaResourcePersistentType typeResource = getJpaProject().getJavaResourcePersistentType(FULLY_QUALIFIED_TYPE_NAME);
-		SecondaryTableAnnotation table = (SecondaryTableAnnotation) typeResource.getSupportingAnnotation(JPA.SECONDARY_TABLE);
-		
-		assertEquals("foo", table.getName());
-	}
-	
-	public void testSetSpecifiedNameNull() throws Exception {
-		createTestEntityWithSecondaryTable();
-		addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
-
-		SecondaryTable secondaryTable = getJavaEntity().secondaryTables().next();
-		secondaryTable.setSpecifiedName(null);
-		
-		assertEquals(0, getJavaEntity().secondaryTablesSize());
-		
-		JavaResourcePersistentType typeResource = getJpaProject().getJavaResourcePersistentType(FULLY_QUALIFIED_TYPE_NAME);
-		assertNull(typeResource.getSupportingAnnotation(JPA.SECONDARY_TABLE));
-	}
-	
-	public void testUpdateFromSpecifiedNameChangeInResourceModel() throws Exception {
-		createTestEntityWithSecondaryTable();
-		addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
-		
-		JavaResourcePersistentType typeResource = getJpaProject().getJavaResourcePersistentType(FULLY_QUALIFIED_TYPE_NAME);
-		SecondaryTableAnnotation table = (SecondaryTableAnnotation) typeResource.getSupportingAnnotation(JPA.SECONDARY_TABLE);
-		table.setName("foo");
-		
-		assertEquals("foo", getJavaEntity().secondaryTables().next().getSpecifiedName());
-	}
-	
-	public void testUpdateFromSpecifiedCatalogChangeInResourceModel() throws Exception {
-		createTestEntityWithSecondaryTables();
-		addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
-		
-		JavaResourcePersistentType typeResource = getJpaProject().getJavaResourcePersistentType(FULLY_QUALIFIED_TYPE_NAME);
-		ListIterator<NestableAnnotation> secondaryTableResources = typeResource.supportingAnnotations(JPA.SECONDARY_TABLE, JPA.SECONDARY_TABLES);
-		((SecondaryTableAnnotation) secondaryTableResources.next()).setCatalog("foo");
-		((SecondaryTableAnnotation) secondaryTableResources.next()).setCatalog("bar");
-		
-		ListIterator<SecondaryTable> secondaryTsbles = getJavaEntity().secondaryTables();
-		assertEquals("foo", secondaryTsbles.next().getSpecifiedCatalog());
-		assertEquals("bar", secondaryTsbles.next().getSpecifiedCatalog());
-	}
-	
-	public void testUpdateFromSpecifiedSchemaChangeInResourceModel() throws Exception {
-		createTestEntityWithSecondaryTables();
-		addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
-		
-		JavaResourcePersistentType typeResource = getJpaProject().getJavaResourcePersistentType(FULLY_QUALIFIED_TYPE_NAME);
-		ListIterator<NestableAnnotation> secondaryTableResources = typeResource.supportingAnnotations(JPA.SECONDARY_TABLE, JPA.SECONDARY_TABLES);
-		((SecondaryTableAnnotation) secondaryTableResources.next()).setSchema("foo");
-		((SecondaryTableAnnotation) secondaryTableResources.next()).setSchema("bar");
-		
-		ListIterator<SecondaryTable> secondaryTsbles = getJavaEntity().secondaryTables();
-		assertEquals("foo", secondaryTsbles.next().getSpecifiedSchema());
-		assertEquals("bar", secondaryTsbles.next().getSpecifiedSchema());
-	}
-
-	public void testGetCatalog() throws Exception {
-		createTestEntityWithSecondaryTable();
-		addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
-		
-		JavaResourcePersistentType typeResource = getJpaProject().getJavaResourcePersistentType(FULLY_QUALIFIED_TYPE_NAME);
-		SecondaryTableAnnotation table = (SecondaryTableAnnotation) typeResource.getSupportingAnnotation(JPA.SECONDARY_TABLE);
-		
-		table.setCatalog("myCatalog");
-		
-		assertEquals("myCatalog", getJavaEntity().secondaryTables().next().getSpecifiedCatalog());
-		assertEquals("myCatalog", getJavaEntity().secondaryTables().next().getCatalog());
-	}
-	
-	public void testGetDefaultCatalog() throws Exception {
-		createTestEntityWithSecondaryTable();
-		addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
-		
-		assertNull(getJavaEntity().secondaryTables().next().getDefaultCatalog());
-		
-		getJavaEntity().secondaryTables().next().setSpecifiedCatalog("myCatalog");
-		
-		assertNull(getJavaEntity().secondaryTables().next().getDefaultCatalog());
-	}
-	
-	public void testSetSpecifiedCatalog() throws Exception {
-		createTestEntityWithSecondaryTable();
-		addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
-		SecondaryTable table = getJavaEntity().secondaryTables().next();
-		table.setSpecifiedCatalog("myCatalog");
-		table.setSpecifiedName(null);
-		
-		JavaResourcePersistentType typeResource = getJpaProject().getJavaResourcePersistentType(FULLY_QUALIFIED_TYPE_NAME);
-		SecondaryTableAnnotation tableResource = (SecondaryTableAnnotation) typeResource.getSupportingAnnotation(JPA.SECONDARY_TABLE);
-		
-		assertEquals("myCatalog", tableResource.getCatalog());
-		
-		table.setSpecifiedCatalog(null);
-		assertNull(typeResource.getSupportingAnnotation(JPA.SECONDARY_TABLE));
-	}
-	
-	public void testGetSchema() throws Exception {
-		createTestEntityWithSecondaryTable();
-		addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
-		
-		JavaResourcePersistentType typeResource = getJpaProject().getJavaResourcePersistentType(FULLY_QUALIFIED_TYPE_NAME);
-		SecondaryTableAnnotation tableResource = (SecondaryTableAnnotation) typeResource.getSupportingAnnotation(JPA.SECONDARY_TABLE);
-		
-		tableResource.setSchema("mySchema");
-		
-		assertEquals("mySchema", getJavaEntity().secondaryTables().next().getSpecifiedSchema());
-		assertEquals("mySchema", getJavaEntity().secondaryTables().next().getSchema());
-	}
-	
-	public void testGetDefaultSchema() throws Exception {
-		createTestEntityWithSecondaryTable();
-		addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
-		
-		assertNull(getJavaEntity().secondaryTables().next().getDefaultSchema());
-		
-		getJavaEntity().secondaryTables().next().setSpecifiedSchema("mySchema");
-		
-		assertNull(getJavaEntity().secondaryTables().next().getDefaultSchema());
-	}
-	
-	public void testSetSpecifiedSchema() throws Exception {
-		createTestEntityWithSecondaryTable();
-		addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
-		SecondaryTable table = getJavaEntity().secondaryTables().next();
-		table.setSpecifiedSchema("mySchema");
-		table.setSpecifiedName(null);
-		
-		JavaResourcePersistentType typeResource = getJpaProject().getJavaResourcePersistentType(FULLY_QUALIFIED_TYPE_NAME);
-		SecondaryTableAnnotation tableResource = (SecondaryTableAnnotation) typeResource.getSupportingAnnotation(JPA.SECONDARY_TABLE);
-		
-		assertEquals("mySchema", tableResource.getSchema());
-		
-		table.setSpecifiedSchema(null);
-		assertNull(typeResource.getSupportingAnnotation(JPA.SECONDARY_TABLE));
-	}
-
-	public void testSpecifiedPrimaryKeyJoinColumns() throws Exception {
-		createTestEntityWithSecondaryTable();
-		addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
-		
-		SecondaryTable secondaryTable = getJavaEntity().specifiedSecondaryTables().next();
-		ListIterator<JavaPrimaryKeyJoinColumn> specifiedPkJoinColumns = secondaryTable.specifiedPrimaryKeyJoinColumns();
-		
-		assertFalse(specifiedPkJoinColumns.hasNext());
-
-		JavaResourcePersistentType typeResource = getJpaProject().getJavaResourcePersistentType(FULLY_QUALIFIED_TYPE_NAME);
-		SecondaryTableAnnotation tableResource = (SecondaryTableAnnotation) typeResource.getSupportingAnnotation(JPA.SECONDARY_TABLE);
-
-		//add an annotation to the resource model and verify the context model is updated
-		PrimaryKeyJoinColumnAnnotation pkJoinColumn = tableResource.addPkJoinColumn(0);
-		pkJoinColumn.setName("FOO");
-		specifiedPkJoinColumns = secondaryTable.specifiedPrimaryKeyJoinColumns();		
-		assertEquals("FOO", specifiedPkJoinColumns.next().getName());
-		assertFalse(specifiedPkJoinColumns.hasNext());
-
-		pkJoinColumn = tableResource.addPkJoinColumn(0);
-		pkJoinColumn.setName("BAR");
-		specifiedPkJoinColumns = secondaryTable.specifiedPrimaryKeyJoinColumns();		
-		assertEquals("BAR", specifiedPkJoinColumns.next().getName());
-		assertEquals("FOO", specifiedPkJoinColumns.next().getName());
-		assertFalse(specifiedPkJoinColumns.hasNext());
-
-		
-		//move an annotation to the resource model and verify the context model is updated
-		tableResource.movePkJoinColumn(1, 0);
-		specifiedPkJoinColumns = secondaryTable.specifiedPrimaryKeyJoinColumns();		
-		assertEquals("FOO", specifiedPkJoinColumns.next().getName());
-		assertEquals("BAR", specifiedPkJoinColumns.next().getName());
-		assertFalse(specifiedPkJoinColumns.hasNext());
-
-		tableResource.removePkJoinColumn(0);
-		specifiedPkJoinColumns = secondaryTable.specifiedPrimaryKeyJoinColumns();		
-		assertEquals("BAR", specifiedPkJoinColumns.next().getName());
-		assertFalse(specifiedPkJoinColumns.hasNext());
-	
-		tableResource.removePkJoinColumn(0);
-		specifiedPkJoinColumns = secondaryTable.specifiedPrimaryKeyJoinColumns();		
-		assertFalse(specifiedPkJoinColumns.hasNext());
-	}
-	
-	public void testSpecifiedPrimaryKeyJoinColumnsSize() throws Exception {
-		createTestEntityWithSecondaryTable();
-		addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
-		
-		SecondaryTable secondaryTable = getJavaEntity().specifiedSecondaryTables().next();
-		assertEquals(0, secondaryTable.specifiedPrimaryKeyJoinColumnsSize());
-	
-		secondaryTable.addSpecifiedPrimaryKeyJoinColumn(0).setSpecifiedName("FOO");
-		secondaryTable.addSpecifiedPrimaryKeyJoinColumn(0).setSpecifiedName("BAR");
-		secondaryTable.addSpecifiedPrimaryKeyJoinColumn(0).setSpecifiedName("BAZ");
-		
-		assertEquals(3, secondaryTable.specifiedPrimaryKeyJoinColumnsSize());
-	}
-
-	public void testPrimaryKeyJoinColumnsSize() throws Exception {
-		createTestEntityWithSecondaryTable();
-		addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
-		
-		SecondaryTable secondaryTable = getJavaEntity().specifiedSecondaryTables().next();
-		//just the default pkJoinColumn, so 1
-		assertEquals(1, secondaryTable.primaryKeyJoinColumnsSize());
-	
-		secondaryTable.addSpecifiedPrimaryKeyJoinColumn(0).setSpecifiedName("FOO");
-		secondaryTable.addSpecifiedPrimaryKeyJoinColumn(0).setSpecifiedName("BAR");
-		secondaryTable.addSpecifiedPrimaryKeyJoinColumn(0).setSpecifiedName("BAZ");
-		
-		//only the specified pkJoinColumns, 3
-		assertEquals(3, secondaryTable.primaryKeyJoinColumnsSize());
-	}
-
-	public void testGetDefaultPrimaryKeyJoinColumn() throws Exception {
-		createTestEntityWithSecondaryTable();
-		addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
-		
-		SecondaryTable secondaryTable = getJavaEntity().specifiedSecondaryTables().next();
-		assertNotNull(secondaryTable.getDefaultPrimaryKeyJoinColumn());
-	
-		secondaryTable.addSpecifiedPrimaryKeyJoinColumn(0).setSpecifiedName("FOO");
-		secondaryTable.addSpecifiedPrimaryKeyJoinColumn(0).setSpecifiedName("BAR");
-		secondaryTable.addSpecifiedPrimaryKeyJoinColumn(0).setSpecifiedName("BAZ");
-		
-		assertNull(secondaryTable.getDefaultPrimaryKeyJoinColumn());
-	}
-	
-	public void testPrimaryKeyJoinColumnDefaults() throws Exception {
-		createTestEntityWithSecondaryTable();
-		addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
-		
-		SecondaryTable secondaryTable = getJavaEntity().specifiedSecondaryTables().next();
-		PrimaryKeyJoinColumn defaultPkJoinColumn = secondaryTable.getDefaultPrimaryKeyJoinColumn(); 
-		assertNotNull(defaultPkJoinColumn);	
-		assertEquals("id", defaultPkJoinColumn.getDefaultName());
-		assertEquals("id", defaultPkJoinColumn.getDefaultReferencedColumnName());
-		
-		
-		IdMapping idMapping = (IdMapping) getJavaEntity().getPersistentType().getAttributeNamed("id").getMapping();
-		idMapping.getColumn().setSpecifiedName("FOO");		
-		assertEquals("FOO", defaultPkJoinColumn.getDefaultName());
-		assertEquals("FOO", defaultPkJoinColumn.getDefaultReferencedColumnName());
-		
-		idMapping.getColumn().setSpecifiedName(null);
-		assertEquals("id", defaultPkJoinColumn.getDefaultName());
-		assertEquals("id", defaultPkJoinColumn.getDefaultReferencedColumnName());
-	}
-
-	public void testAddSpecifiedPrimaryKeyJoinColumn() throws Exception {
-		createTestEntityWithSecondaryTable();
-		addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
-		
-		SecondaryTable secondaryTable = getJavaEntity().specifiedSecondaryTables().next();
-		secondaryTable.addSpecifiedPrimaryKeyJoinColumn(0).setSpecifiedName("FOO");
-		secondaryTable.addSpecifiedPrimaryKeyJoinColumn(0).setSpecifiedName("BAR");
-		secondaryTable.addSpecifiedPrimaryKeyJoinColumn(0).setSpecifiedName("BAZ");
-		
-		Iterator<PrimaryKeyJoinColumn> specifiedPkJoinColumns = secondaryTable.specifiedPrimaryKeyJoinColumns();
-		assertEquals("BAZ", specifiedPkJoinColumns.next().getName());
-		assertEquals("BAR", specifiedPkJoinColumns.next().getName());
-		assertEquals("FOO", specifiedPkJoinColumns.next().getName());
-	
-		JavaResourcePersistentType typeResource = getJpaProject().getJavaResourcePersistentType(FULLY_QUALIFIED_TYPE_NAME);
-		SecondaryTableAnnotation tableResource = (SecondaryTableAnnotation) typeResource.getSupportingAnnotation(JPA.SECONDARY_TABLE);
-		Iterator<PrimaryKeyJoinColumnAnnotation> pkJoinColumns = tableResource.pkJoinColumns();
-		
-		assertEquals("BAZ", pkJoinColumns.next().getName());
-		assertEquals("BAR", pkJoinColumns.next().getName());
-		assertEquals("FOO", pkJoinColumns.next().getName());
-		assertFalse(pkJoinColumns.hasNext());
-	}
-	
-	public void testAddSpecifiedPrimaryKeyJoinColumn2() throws Exception {
-		createTestEntityWithSecondaryTable();
-		addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
-		
-		SecondaryTable secondaryTable = getJavaEntity().specifiedSecondaryTables().next();
-
-		secondaryTable.addSpecifiedPrimaryKeyJoinColumn(0).setSpecifiedName("FOO");
-		secondaryTable.addSpecifiedPrimaryKeyJoinColumn(1).setSpecifiedName("BAR");
-		secondaryTable.addSpecifiedPrimaryKeyJoinColumn(2).setSpecifiedName("BAZ");
-		
-		Iterator<PrimaryKeyJoinColumn> specifiedPkJoinColumns = secondaryTable.specifiedPrimaryKeyJoinColumns();
-		assertEquals("FOO", specifiedPkJoinColumns.next().getName());
-		assertEquals("BAR", specifiedPkJoinColumns.next().getName());
-		assertEquals("BAZ", specifiedPkJoinColumns.next().getName());
-
-		JavaResourcePersistentType typeResource = getJpaProject().getJavaResourcePersistentType(FULLY_QUALIFIED_TYPE_NAME);
-		SecondaryTableAnnotation tableResource = (SecondaryTableAnnotation) typeResource.getSupportingAnnotation(JPA.SECONDARY_TABLE);
-		Iterator<PrimaryKeyJoinColumnAnnotation> pkJoinColumns = tableResource.pkJoinColumns();
-		
-		assertEquals("FOO", pkJoinColumns.next().getName());
-		assertEquals("BAR", pkJoinColumns.next().getName());
-		assertEquals("BAZ", pkJoinColumns.next().getName());
-		assertFalse(pkJoinColumns.hasNext());
-	}
-	public void testRemoveSpecifiedPrimaryKeyJoinColumn() throws Exception {
-		createTestEntityWithSecondaryTable();
-		addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
-		
-		SecondaryTable secondaryTable = getJavaEntity().specifiedSecondaryTables().next();
-
-		secondaryTable.addSpecifiedPrimaryKeyJoinColumn(0).setSpecifiedName("FOO");
-		secondaryTable.addSpecifiedPrimaryKeyJoinColumn(1).setSpecifiedName("BAR");
-		secondaryTable.addSpecifiedPrimaryKeyJoinColumn(2).setSpecifiedName("BAZ");
-		
-		JavaResourcePersistentType typeResource = getJpaProject().getJavaResourcePersistentType(FULLY_QUALIFIED_TYPE_NAME);
-		SecondaryTableAnnotation tableResource = (SecondaryTableAnnotation) typeResource.getSupportingAnnotation(JPA.SECONDARY_TABLE);
-		
-		assertEquals(3, tableResource.pkJoinColumnsSize());
-
-		secondaryTable.removeSpecifiedPrimaryKeyJoinColumn(1);
-		
-		Iterator<PrimaryKeyJoinColumnAnnotation> pkJoinColumnResources = tableResource.pkJoinColumns();
-		assertEquals("FOO", pkJoinColumnResources.next().getName());		
-		assertEquals("BAZ", pkJoinColumnResources.next().getName());
-		assertFalse(pkJoinColumnResources.hasNext());
-		
-		Iterator<PrimaryKeyJoinColumn> pkJoinColumns = secondaryTable.specifiedPrimaryKeyJoinColumns();
-		assertEquals("FOO", pkJoinColumns.next().getName());		
-		assertEquals("BAZ", pkJoinColumns.next().getName());
-		assertFalse(pkJoinColumns.hasNext());
-	
-		
-		secondaryTable.removeSpecifiedPrimaryKeyJoinColumn(1);
-		pkJoinColumnResources = tableResource.pkJoinColumns();
-		assertEquals("FOO", pkJoinColumnResources.next().getName());		
-		assertFalse(pkJoinColumnResources.hasNext());
-
-		pkJoinColumns = secondaryTable.specifiedPrimaryKeyJoinColumns();
-		assertEquals("FOO", pkJoinColumns.next().getName());
-		assertFalse(pkJoinColumns.hasNext());
-
-		
-		secondaryTable.removeSpecifiedPrimaryKeyJoinColumn(0);
-		pkJoinColumnResources = tableResource.pkJoinColumns();
-		assertFalse(pkJoinColumnResources.hasNext());
-		pkJoinColumns = secondaryTable.specifiedPrimaryKeyJoinColumns();
-		assertFalse(pkJoinColumns.hasNext());
-
-		assertEquals(0, tableResource.pkJoinColumnsSize());
-	}
-	
-	public void testMoveSpecifiedPrimaryKeyJoinColumn() throws Exception {
-		createTestEntityWithSecondaryTable();
-		addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
-		
-		SecondaryTable secondaryTable = getJavaEntity().specifiedSecondaryTables().next();
-		secondaryTable.addSpecifiedPrimaryKeyJoinColumn(0).setSpecifiedName("FOO");
-		secondaryTable.addSpecifiedPrimaryKeyJoinColumn(1).setSpecifiedName("BAR");
-		secondaryTable.addSpecifiedPrimaryKeyJoinColumn(2).setSpecifiedName("BAZ");
-		
-		Iterator<PrimaryKeyJoinColumn> specifiedPkJoinColumns = secondaryTable.specifiedPrimaryKeyJoinColumns();
-		assertEquals("FOO", specifiedPkJoinColumns.next().getName());
-		assertEquals("BAR", specifiedPkJoinColumns.next().getName());
-		assertEquals("BAZ", specifiedPkJoinColumns.next().getName());
-
-		JavaResourcePersistentType typeResource = getJpaProject().getJavaResourcePersistentType(FULLY_QUALIFIED_TYPE_NAME);
-		SecondaryTableAnnotation tableResource = (SecondaryTableAnnotation) typeResource.getSupportingAnnotation(JPA.SECONDARY_TABLE);
-		Iterator<PrimaryKeyJoinColumnAnnotation> pkJoinColumns = tableResource.pkJoinColumns();
-		
-		assertEquals("FOO", pkJoinColumns.next().getName());
-		assertEquals("BAR", pkJoinColumns.next().getName());
-		assertEquals("BAZ", pkJoinColumns.next().getName());
-
-		
-		secondaryTable.moveSpecifiedPrimaryKeyJoinColumn(2, 0);
-		pkJoinColumns = tableResource.pkJoinColumns();
-
-		assertEquals("BAR", pkJoinColumns.next().getName());
-		assertEquals("BAZ", pkJoinColumns.next().getName());
-		assertEquals("FOO", pkJoinColumns.next().getName());
-	}
-	
-	public void testPrimaryKeyJoinColumnGetDefaultName() throws Exception {
-		createTestEntityWithSecondaryTable();
-		addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
-		
-		SecondaryTable secondaryTable = getJavaEntity().specifiedSecondaryTables().next();
-		PrimaryKeyJoinColumn defaultPkJoinColumn = secondaryTable.getDefaultPrimaryKeyJoinColumn();
-		assertEquals("id", defaultPkJoinColumn.getDefaultName());
-
-		
-		//remove @Id annotation
-		PersistentAttribute idAttribute = getJavaPersistentType().getAttributeNamed("id");
-		idAttribute.setSpecifiedMappingKey(MappingKeys.NULL_ATTRIBUTE_MAPPING_KEY);
-
-		assertNull(defaultPkJoinColumn.getDefaultName());
-	}
-	public void testPrimaryKeyJoinColumnGetDefaultReferencedColumnName() throws Exception {
-		createTestEntityWithSecondaryTable();
-		addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
-		
-		SecondaryTable secondaryTable = getJavaEntity().specifiedSecondaryTables().next();
-		PrimaryKeyJoinColumn defaultPkJoinColumn = secondaryTable.getDefaultPrimaryKeyJoinColumn();
-		assertEquals("id", defaultPkJoinColumn.getDefaultReferencedColumnName());
-		
-		//remove @Id annotation
-		PersistentAttribute idAttribute = getJavaPersistentType().getAttributeNamed("id");
-		idAttribute.setSpecifiedMappingKey(MappingKeys.NULL_ATTRIBUTE_MAPPING_KEY);
-
-		assertNull(defaultPkJoinColumn.getDefaultReferencedColumnName());
-	}
-	
-	public void testPrimaryKeyJoinColumnIsVirtual() throws Exception {
-		createTestEntityWithSecondaryTable();
-		addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
-		SecondaryTable secondaryTable = getJavaEntity().specifiedSecondaryTables().next();
-		
-		assertTrue(secondaryTable.getDefaultPrimaryKeyJoinColumn().isVirtual());
-		
-		secondaryTable.addSpecifiedPrimaryKeyJoinColumn(0);
-		PrimaryKeyJoinColumn specifiedPkJoinColumn = secondaryTable.specifiedPrimaryKeyJoinColumns().next();
-		assertFalse(specifiedPkJoinColumn.isVirtual());
-		
-		assertNull(secondaryTable.getDefaultPrimaryKeyJoinColumn());
-	}
-
-
-	public void testUniqueConstraints() throws Exception {
-		createTestEntityWithSecondaryTable();
-		addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
-		
-		SecondaryTable secondaryTable = getJavaEntity().specifiedSecondaryTables().next();
-
-		ListIterator<JavaUniqueConstraint> uniqueConstraints = secondaryTable.uniqueConstraints();
-		assertFalse(uniqueConstraints.hasNext());
-
-		JavaResourcePersistentType resourcePersistentType = getJpaProject().getJavaResourcePersistentType(FULLY_QUALIFIED_TYPE_NAME);
-		SecondaryTableAnnotation secondaryTableAnnotation = (SecondaryTableAnnotation) resourcePersistentType.getSupportingAnnotation(JPA.SECONDARY_TABLE);
-		secondaryTableAnnotation.addUniqueConstraint(0).addColumnName(0, "foo");
-		secondaryTableAnnotation.addUniqueConstraint(0).addColumnName(0, "bar");
-		
-		uniqueConstraints = secondaryTable.uniqueConstraints();
-		assertTrue(uniqueConstraints.hasNext());
-		assertEquals("bar", uniqueConstraints.next().columnNames().next());
-		assertEquals("foo", uniqueConstraints.next().columnNames().next());
-		assertFalse(uniqueConstraints.hasNext());
-	}
-	
-	public void testUniqueConstraintsSize() throws Exception {
-		createTestEntityWithSecondaryTable();
-		addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
-		
-		SecondaryTable secondaryTable = getJavaEntity().specifiedSecondaryTables().next();
-
-		assertEquals(0,  secondaryTable.uniqueConstraintsSize());
-
-		JavaResourcePersistentType resourcePersistentType = getJpaProject().getJavaResourcePersistentType(FULLY_QUALIFIED_TYPE_NAME);
-		SecondaryTableAnnotation secondaryTableAnnotation = (SecondaryTableAnnotation) resourcePersistentType.getSupportingAnnotation(JPA.SECONDARY_TABLE);
-		secondaryTableAnnotation.addUniqueConstraint(0).addColumnName(0, "foo");
-		secondaryTableAnnotation.addUniqueConstraint(1).addColumnName(0, "bar");
-		
-		assertEquals(2,  secondaryTable.uniqueConstraintsSize());
-	}
-
-	public void testAddUniqueConstraint() throws Exception {
-		createTestEntityWithSecondaryTable();
-		addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
-		
-		SecondaryTable secondaryTable = getJavaEntity().specifiedSecondaryTables().next();
-		secondaryTable.addUniqueConstraint(0).addColumnName(0, "FOO");
-		secondaryTable.addUniqueConstraint(0).addColumnName(0, "BAR");
-		secondaryTable.addUniqueConstraint(0).addColumnName(0, "BAZ");
-		
-		JavaResourcePersistentType resourcePersistentType = getJpaProject().getJavaResourcePersistentType(FULLY_QUALIFIED_TYPE_NAME);
-		SecondaryTableAnnotation secondaryTableAnnotation = (SecondaryTableAnnotation) resourcePersistentType.getSupportingAnnotation(JPA.SECONDARY_TABLE);
-		ListIterator<UniqueConstraintAnnotation> uniqueConstraints = secondaryTableAnnotation.uniqueConstraints();
-		
-		assertEquals("BAZ", uniqueConstraints.next().columnNames().next());
-		assertEquals("BAR", uniqueConstraints.next().columnNames().next());
-		assertEquals("FOO", uniqueConstraints.next().columnNames().next());
-		assertFalse(uniqueConstraints.hasNext());
-	}
-	
-	public void testAddUniqueConstraint2() throws Exception {
-		createTestEntityWithSecondaryTable();
-		addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
-		
-		SecondaryTable secondaryTable = getJavaEntity().specifiedSecondaryTables().next();
-		secondaryTable.addUniqueConstraint(0).addColumnName(0, "FOO");
-		secondaryTable.addUniqueConstraint(1).addColumnName(0, "BAR");
-		secondaryTable.addUniqueConstraint(0).addColumnName(0, "BAZ");
-		
-		JavaResourcePersistentType resourcePersistentType = getJpaProject().getJavaResourcePersistentType(FULLY_QUALIFIED_TYPE_NAME);
-		SecondaryTableAnnotation secondaryTableAnnotation = (SecondaryTableAnnotation) resourcePersistentType.getSupportingAnnotation(JPA.SECONDARY_TABLE);
-		ListIterator<UniqueConstraintAnnotation> uniqueConstraints = secondaryTableAnnotation.uniqueConstraints();
-		
-		assertEquals("BAZ", uniqueConstraints.next().columnNames().next());
-		assertEquals("FOO", uniqueConstraints.next().columnNames().next());
-		assertEquals("BAR", uniqueConstraints.next().columnNames().next());
-		assertFalse(uniqueConstraints.hasNext());
-	}
-	
-	public void testRemoveUniqueConstraint() throws Exception {
-		createTestEntityWithSecondaryTable();
-		addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
-		
-		SecondaryTable secondaryTable = getJavaEntity().specifiedSecondaryTables().next();
-		secondaryTable.addUniqueConstraint(0).addColumnName(0, "FOO");
-		secondaryTable.addUniqueConstraint(1).addColumnName(0, "BAR");
-		secondaryTable.addUniqueConstraint(2).addColumnName(0, "BAZ");
-		
-		JavaResourcePersistentType resourcePersistentType = getJpaProject().getJavaResourcePersistentType(FULLY_QUALIFIED_TYPE_NAME);
-		SecondaryTableAnnotation secondaryTableAnnotation = (SecondaryTableAnnotation) resourcePersistentType.getSupportingAnnotation(JPA.SECONDARY_TABLE);
-		
-		assertEquals(3, secondaryTableAnnotation.uniqueConstraintsSize());
-
-		secondaryTable.removeUniqueConstraint(1);
-		
-		ListIterator<UniqueConstraintAnnotation> uniqueConstraintAnnotations = secondaryTableAnnotation.uniqueConstraints();
-		assertEquals("FOO", uniqueConstraintAnnotations.next().columnNames().next());		
-		assertEquals("BAZ", uniqueConstraintAnnotations.next().columnNames().next());
-		assertFalse(uniqueConstraintAnnotations.hasNext());
-		
-		Iterator<UniqueConstraint> uniqueConstraints = secondaryTable.uniqueConstraints();
-		assertEquals("FOO", uniqueConstraints.next().columnNames().next());		
-		assertEquals("BAZ", uniqueConstraints.next().columnNames().next());
-		assertFalse(uniqueConstraints.hasNext());
-	
-		
-		secondaryTable.removeUniqueConstraint(1);
-		uniqueConstraintAnnotations = secondaryTableAnnotation.uniqueConstraints();
-		assertEquals("FOO", uniqueConstraintAnnotations.next().columnNames().next());		
-		assertFalse(uniqueConstraintAnnotations.hasNext());
-
-		uniqueConstraints = secondaryTable.uniqueConstraints();
-		assertEquals("FOO", uniqueConstraints.next().columnNames().next());		
-		assertFalse(uniqueConstraints.hasNext());
-
-		
-		secondaryTable.removeUniqueConstraint(0);
-		uniqueConstraintAnnotations = secondaryTableAnnotation.uniqueConstraints();
-		assertFalse(uniqueConstraintAnnotations.hasNext());
-		uniqueConstraints = secondaryTable.uniqueConstraints();
-		assertFalse(uniqueConstraints.hasNext());
-	}
-	
-	public void testMoveUniqueConstraint() throws Exception {
-		createTestEntityWithSecondaryTable();
-		addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
-		
-		SecondaryTable secondaryTable = getJavaEntity().specifiedSecondaryTables().next();
-		secondaryTable.addUniqueConstraint(0).addColumnName(0, "FOO");
-		secondaryTable.addUniqueConstraint(1).addColumnName(0, "BAR");
-		secondaryTable.addUniqueConstraint(2).addColumnName(0, "BAZ");
-		
-		JavaResourcePersistentType resourcePersistentType = getJpaProject().getJavaResourcePersistentType(FULLY_QUALIFIED_TYPE_NAME);
-		SecondaryTableAnnotation secondaryTableAnnotation = (SecondaryTableAnnotation) resourcePersistentType.getSupportingAnnotation(JPA.SECONDARY_TABLE);
-		
-		assertEquals(3, secondaryTableAnnotation.uniqueConstraintsSize());
-		
-		
-		secondaryTable.moveUniqueConstraint(2, 0);
-		ListIterator<UniqueConstraint> uniqueConstraints = secondaryTable.uniqueConstraints();
-		assertEquals("BAR", uniqueConstraints.next().columnNames().next());
-		assertEquals("BAZ", uniqueConstraints.next().columnNames().next());
-		assertEquals("FOO", uniqueConstraints.next().columnNames().next());
-
-		ListIterator<UniqueConstraintAnnotation> uniqueConstraintAnnotations = secondaryTableAnnotation.uniqueConstraints();
-		assertEquals("BAR", uniqueConstraintAnnotations.next().columnNames().next());
-		assertEquals("BAZ", uniqueConstraintAnnotations.next().columnNames().next());
-		assertEquals("FOO", uniqueConstraintAnnotations.next().columnNames().next());
-
-
-		secondaryTable.moveUniqueConstraint(0, 1);
-		uniqueConstraints = secondaryTable.uniqueConstraints();
-		assertEquals("BAZ", uniqueConstraints.next().columnNames().next());
-		assertEquals("BAR", uniqueConstraints.next().columnNames().next());
-		assertEquals("FOO", uniqueConstraints.next().columnNames().next());
-
-		uniqueConstraintAnnotations = secondaryTableAnnotation.uniqueConstraints();
-		assertEquals("BAZ", uniqueConstraintAnnotations.next().columnNames().next());
-		assertEquals("BAR", uniqueConstraintAnnotations.next().columnNames().next());
-		assertEquals("FOO", uniqueConstraintAnnotations.next().columnNames().next());
-	}
-	
-	public void testUpdateUniqueConstraints() throws Exception {
-		createTestEntityWithSecondaryTable();
-		addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
-		
-		SecondaryTable secondaryTable = getJavaEntity().specifiedSecondaryTables().next();
-		JavaResourcePersistentType resourcePersistentType = getJpaProject().getJavaResourcePersistentType(FULLY_QUALIFIED_TYPE_NAME);
-		SecondaryTableAnnotation secondaryTableAnnotation = (SecondaryTableAnnotation) resourcePersistentType.getSupportingAnnotation(JPA.SECONDARY_TABLE);
-	
-		secondaryTableAnnotation.addUniqueConstraint(0).addColumnName("FOO");
-		secondaryTableAnnotation.addUniqueConstraint(1).addColumnName("BAR");
-		secondaryTableAnnotation.addUniqueConstraint(2).addColumnName("BAZ");
-
-		
-		ListIterator<UniqueConstraint> uniqueConstraints = secondaryTable.uniqueConstraints();
-		assertEquals("FOO", uniqueConstraints.next().columnNames().next());
-		assertEquals("BAR", uniqueConstraints.next().columnNames().next());
-		assertEquals("BAZ", uniqueConstraints.next().columnNames().next());
-		assertFalse(uniqueConstraints.hasNext());
-		
-		secondaryTableAnnotation.moveUniqueConstraint(2, 0);
-		uniqueConstraints = secondaryTable.uniqueConstraints();
-		assertEquals("BAR", uniqueConstraints.next().columnNames().next());
-		assertEquals("BAZ", uniqueConstraints.next().columnNames().next());
-		assertEquals("FOO", uniqueConstraints.next().columnNames().next());
-		assertFalse(uniqueConstraints.hasNext());
-	
-		secondaryTableAnnotation.moveUniqueConstraint(0, 1);
-		uniqueConstraints = secondaryTable.uniqueConstraints();
-		assertEquals("BAZ", uniqueConstraints.next().columnNames().next());
-		assertEquals("BAR", uniqueConstraints.next().columnNames().next());
-		assertEquals("FOO", uniqueConstraints.next().columnNames().next());
-		assertFalse(uniqueConstraints.hasNext());
-	
-		secondaryTableAnnotation.removeUniqueConstraint(1);
-		uniqueConstraints = secondaryTable.uniqueConstraints();
-		assertEquals("BAZ", uniqueConstraints.next().columnNames().next());
-		assertEquals("FOO", uniqueConstraints.next().columnNames().next());
-		assertFalse(uniqueConstraints.hasNext());
-	
-		secondaryTableAnnotation.removeUniqueConstraint(1);
-		uniqueConstraints = secondaryTable.uniqueConstraints();
-		assertEquals("BAZ", uniqueConstraints.next().columnNames().next());
-		assertFalse(uniqueConstraints.hasNext());
-		
-		secondaryTableAnnotation.removeUniqueConstraint(0);
-		uniqueConstraints = secondaryTable.uniqueConstraints();
-		assertFalse(uniqueConstraints.hasNext());
-	}
-}
diff --git a/jpa/tests/org.eclipse.jpt.core.tests/src/org/eclipse/jpt/core/tests/internal/context/java/JavaSequenceGeneratorTests.java b/jpa/tests/org.eclipse.jpt.core.tests/src/org/eclipse/jpt/core/tests/internal/context/java/JavaSequenceGeneratorTests.java
deleted file mode 100644
index 0b46e2f..0000000
--- a/jpa/tests/org.eclipse.jpt.core.tests/src/org/eclipse/jpt/core/tests/internal/context/java/JavaSequenceGeneratorTests.java
+++ /dev/null
@@ -1,256 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2008 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.core.tests.internal.context.java;
-
-import java.util.Iterator;
-import org.eclipse.jdt.core.ICompilationUnit;
-import org.eclipse.jpt.core.context.Generator;
-import org.eclipse.jpt.core.context.IdMapping;
-import org.eclipse.jpt.core.context.SequenceGenerator;
-import org.eclipse.jpt.core.resource.java.JPA;
-import org.eclipse.jpt.core.resource.java.JavaResourcePersistentAttribute;
-import org.eclipse.jpt.core.resource.java.JavaResourcePersistentType;
-import org.eclipse.jpt.core.resource.java.SequenceGeneratorAnnotation;
-import org.eclipse.jpt.core.tests.internal.context.ContextModelTestCase;
-import org.eclipse.jpt.utility.internal.iterators.ArrayIterator;
-
-@SuppressWarnings("nls")
-public class JavaSequenceGeneratorTests extends ContextModelTestCase
-{
-	private static final String SEQUENCE_GENERATOR_NAME = "MY_SEQUENCE_GENERATOR";
-	
-
-	private ICompilationUnit createTestEntityWithSequenceGenerator() throws Exception {
-		return this.createTestType(new DefaultAnnotationWriter() {
-			@Override
-			public Iterator<String> imports() {
-				return new ArrayIterator<String>(JPA.ENTITY, JPA.SEQUENCE_GENERATOR, JPA.ID);
-			}
-			@Override
-			public void appendTypeAnnotationTo(StringBuilder sb) {
-				sb.append("@Entity");
-			}
-			
-			@Override
-			public void appendIdFieldAnnotationTo(StringBuilder sb) {
-				sb.append("@Id").append(CR);
-				sb.append("@SequenceGenerator(name=\"" + SEQUENCE_GENERATOR_NAME + "\")");
-			}
-		});
-	}
-		
-	public JavaSequenceGeneratorTests(String name) {
-		super(name);
-	}
-
-	public void testGetName() throws Exception {
-		createTestEntityWithSequenceGenerator();
-		addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
-
-		IdMapping idMapping = (IdMapping) getJavaPersistentType().getAttributeNamed("id").getMapping();
-		assertEquals(SEQUENCE_GENERATOR_NAME, idMapping.getSequenceGenerator().getName());
-
-		//change resource model sequenceGenerator name, verify the context model is updated
-		JavaResourcePersistentType typeResource = getJpaProject().getJavaResourcePersistentType(FULLY_QUALIFIED_TYPE_NAME);
-		JavaResourcePersistentAttribute attributeResource = typeResource.persistableAttributes().next();
-		SequenceGeneratorAnnotation sequenceGenerator = (SequenceGeneratorAnnotation) attributeResource.getSupportingAnnotation(JPA.SEQUENCE_GENERATOR);
-		
-		sequenceGenerator.setName("foo");
-		
-		assertEquals("foo", idMapping.getSequenceGenerator().getName());
-	}
-
-	public void testSetName() throws Exception {
-		createTestEntityWithSequenceGenerator();
-		addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
-
-		IdMapping idMapping = (IdMapping) getJavaPersistentType().getAttributeNamed("id").getMapping();
-		assertEquals(SEQUENCE_GENERATOR_NAME, idMapping.getSequenceGenerator().getName());
-
-		idMapping.getSequenceGenerator().setName("foo");
-		
-		assertEquals("foo", idMapping.getSequenceGenerator().getName());
-		
-		JavaResourcePersistentType typeResource = getJpaProject().getJavaResourcePersistentType(FULLY_QUALIFIED_TYPE_NAME);
-		JavaResourcePersistentAttribute attributeResource = typeResource.persistableAttributes().next();
-		SequenceGeneratorAnnotation sequenceGenerator = (SequenceGeneratorAnnotation) attributeResource.getSupportingAnnotation(JPA.SEQUENCE_GENERATOR);
-		
-		assertEquals("foo", sequenceGenerator.getName());
-	}
-	
-	public void testSetSpecifiedNameNull() throws Exception {
-		createTestEntityWithSequenceGenerator();
-		addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
-
-		IdMapping idMapping = (IdMapping) getJavaPersistentType().getAttributeNamed("id").getMapping();
-		assertEquals(SEQUENCE_GENERATOR_NAME, idMapping.getSequenceGenerator().getName());
-
-		idMapping.getSequenceGenerator().setName(null);
-		
-		assertNull(idMapping.getSequenceGenerator());
-		
-		JavaResourcePersistentType typeResource = getJpaProject().getJavaResourcePersistentType(FULLY_QUALIFIED_TYPE_NAME);
-		JavaResourcePersistentAttribute attributeResource = typeResource.persistableAttributes().next();
-		SequenceGeneratorAnnotation sequenceGenerator = (SequenceGeneratorAnnotation) attributeResource.getSupportingAnnotation(JPA.SEQUENCE_GENERATOR);
-		
-		assertNull(sequenceGenerator);
-	}
-	
-	public void testGetInitialValue() throws Exception {
-		createTestEntityWithSequenceGenerator();
-		addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
-		
-		IdMapping idMapping = (IdMapping) getJavaPersistentType().getAttributeNamed("id").getMapping();
-		
-		assertEquals(SequenceGenerator.DEFAULT_INITIAL_VALUE, idMapping.getSequenceGenerator().getInitialValue());
-		JavaResourcePersistentType typeResource = getJpaProject().getJavaResourcePersistentType(FULLY_QUALIFIED_TYPE_NAME);
-		JavaResourcePersistentAttribute attributeResource = typeResource.persistableAttributes().next();
-		SequenceGeneratorAnnotation sequenceGenerator = (SequenceGeneratorAnnotation) attributeResource.getSupportingAnnotation(JPA.SEQUENCE_GENERATOR);	
-		
-		sequenceGenerator.setInitialValue(Integer.valueOf(82));
-		
-		assertEquals(82, idMapping.getSequenceGenerator().getInitialValue());
-		assertEquals(Integer.valueOf(82), idMapping.getSequenceGenerator().getSpecifiedInitialValue());
-	}
-	
-	public void testGetDefaultInitialValue() throws Exception {
-		createTestEntityWithSequenceGenerator();
-		addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
-		
-		IdMapping idMapping = (IdMapping) getJavaPersistentType().getAttributeNamed("id").getMapping();
-
-		assertEquals(SequenceGenerator.DEFAULT_INITIAL_VALUE, idMapping.getSequenceGenerator().getDefaultInitialValue());
-		
-		idMapping.getSequenceGenerator().setSpecifiedInitialValue(Integer.valueOf(82));
-		
-		assertEquals(SequenceGenerator.DEFAULT_INITIAL_VALUE, idMapping.getSequenceGenerator().getDefaultInitialValue());
-		assertEquals(Integer.valueOf(82), idMapping.getSequenceGenerator().getSpecifiedInitialValue());
-	}
-	
-	public void testSetSpecifiedInitialValue() throws Exception {
-		createTestEntityWithSequenceGenerator();
-		addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
-		
-		IdMapping idMapping = (IdMapping) getJavaPersistentType().getAttributeNamed("id").getMapping();
-		idMapping.getSequenceGenerator().setSpecifiedInitialValue(Integer.valueOf(20));
-		
-		JavaResourcePersistentType typeResource = getJpaProject().getJavaResourcePersistentType(FULLY_QUALIFIED_TYPE_NAME);
-		JavaResourcePersistentAttribute attributeResource = typeResource.persistableAttributes().next();
-		SequenceGeneratorAnnotation sequenceGenerator = (SequenceGeneratorAnnotation) attributeResource.getSupportingAnnotation(JPA.SEQUENCE_GENERATOR);	
-		
-		assertEquals(Integer.valueOf(20), sequenceGenerator.getInitialValue());
-		
-		idMapping.getSequenceGenerator().setName(null);
-		idMapping.getSequenceGenerator().setSpecifiedInitialValue(null);
-		assertNull(attributeResource.getSupportingAnnotation(JPA.SEQUENCE_GENERATOR));
-	}
-	
-	public void testGetAllocationSize() throws Exception {
-		createTestEntityWithSequenceGenerator();
-		addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
-		
-		IdMapping idMapping = (IdMapping) getJavaPersistentType().getAttributeNamed("id").getMapping();
-		
-		assertEquals(Generator.DEFAULT_ALLOCATION_SIZE, idMapping.getSequenceGenerator().getAllocationSize());
-
-		JavaResourcePersistentType typeResource = getJpaProject().getJavaResourcePersistentType(FULLY_QUALIFIED_TYPE_NAME);
-		JavaResourcePersistentAttribute attributeResource = typeResource.persistableAttributes().next();
-		SequenceGeneratorAnnotation sequenceGenerator = (SequenceGeneratorAnnotation) attributeResource.getSupportingAnnotation(JPA.SEQUENCE_GENERATOR);	
-		
-		sequenceGenerator.setAllocationSize(Integer.valueOf(20));
-		
-		assertEquals(20, idMapping.getSequenceGenerator().getAllocationSize());
-		assertEquals(Integer.valueOf(20), idMapping.getSequenceGenerator().getSpecifiedAllocationSize());
-	}
-	
-	public void testGetDefaultAllocationSize() throws Exception {
-		createTestEntityWithSequenceGenerator();
-		addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
-		
-		IdMapping idMapping = (IdMapping) getJavaPersistentType().getAttributeNamed("id").getMapping();
-
-		assertEquals(Generator.DEFAULT_ALLOCATION_SIZE, idMapping.getSequenceGenerator().getDefaultAllocationSize());
-		
-		idMapping.getSequenceGenerator().setSpecifiedAllocationSize(Integer.valueOf(20));
-		
-		assertEquals(Generator.DEFAULT_ALLOCATION_SIZE, idMapping.getSequenceGenerator().getDefaultAllocationSize());
-		assertEquals(Integer.valueOf(20), idMapping.getSequenceGenerator().getSpecifiedAllocationSize());
-	}
-	
-	public void testSetSpecifiedAllocationSize() throws Exception {
-		createTestEntityWithSequenceGenerator();
-		addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
-		
-		IdMapping idMapping = (IdMapping) getJavaPersistentType().getAttributeNamed("id").getMapping();
-		idMapping.getSequenceGenerator().setSpecifiedAllocationSize(Integer.valueOf(25));
-		
-		JavaResourcePersistentType typeResource = getJpaProject().getJavaResourcePersistentType(FULLY_QUALIFIED_TYPE_NAME);
-		JavaResourcePersistentAttribute attributeResource = typeResource.persistableAttributes().next();
-		SequenceGeneratorAnnotation sequenceGenerator = (SequenceGeneratorAnnotation) attributeResource.getSupportingAnnotation(JPA.SEQUENCE_GENERATOR);	
-		
-		assertEquals(Integer.valueOf(25), sequenceGenerator.getAllocationSize());
-		
-		idMapping.getSequenceGenerator().setName(null);
-		idMapping.getSequenceGenerator().setSpecifiedAllocationSize(null);
-		assertNull(attributeResource.getSupportingAnnotation(JPA.SEQUENCE_GENERATOR));
-	}
-	
-	
-
-	public void testGetSequenceName() throws Exception {
-		createTestEntityWithSequenceGenerator();
-		addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
-		
-		IdMapping idMapping = (IdMapping) getJavaPersistentType().getAttributeNamed("id").getMapping();
-		
-		assertNull(idMapping.getSequenceGenerator().getSequenceName());
-		JavaResourcePersistentType typeResource = getJpaProject().getJavaResourcePersistentType(FULLY_QUALIFIED_TYPE_NAME);
-		JavaResourcePersistentAttribute attributeResource = typeResource.persistableAttributes().next();
-		SequenceGeneratorAnnotation sequenceGenerator = (SequenceGeneratorAnnotation) attributeResource.getSupportingAnnotation(JPA.SEQUENCE_GENERATOR);	
-		
-		sequenceGenerator.setSequenceName("mySequenceName");
-		
-		assertEquals("mySequenceName", idMapping.getSequenceGenerator().getSequenceName());
-		assertEquals("mySequenceName", idMapping.getSequenceGenerator().getSpecifiedSequenceName());
-	}
-	
-	public void testGetDefaultSequenceName() throws Exception {
-		createTestEntityWithSequenceGenerator();
-		addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
-		
-		IdMapping idMapping = (IdMapping) getJavaPersistentType().getAttributeNamed("id").getMapping();
-
-		assertNull(idMapping.getSequenceGenerator().getDefaultSequenceName());
-		
-		idMapping.getSequenceGenerator().setSpecifiedSequenceName("mySequenceName");
-		
-		assertNull(idMapping.getSequenceGenerator().getDefaultSequenceName());
-		assertEquals("mySequenceName", idMapping.getSequenceGenerator().getSpecifiedSequenceName());
-	}
-	
-	public void testSetSpecifiedSequenceName() throws Exception {
-		createTestEntityWithSequenceGenerator();
-		addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
-		
-		IdMapping idMapping = (IdMapping) getJavaPersistentType().getAttributeNamed("id").getMapping();
-		idMapping.getSequenceGenerator().setSpecifiedSequenceName("mySequenceName");
-		
-		JavaResourcePersistentType typeResource = getJpaProject().getJavaResourcePersistentType(FULLY_QUALIFIED_TYPE_NAME);
-		JavaResourcePersistentAttribute attributeResource = typeResource.persistableAttributes().next();
-		SequenceGeneratorAnnotation sequenceGenerator = (SequenceGeneratorAnnotation) attributeResource.getSupportingAnnotation(JPA.SEQUENCE_GENERATOR);	
-		
-		assertEquals("mySequenceName", sequenceGenerator.getSequenceName());
-		
-		idMapping.getSequenceGenerator().setName(null);
-		idMapping.getSequenceGenerator().setSpecifiedSequenceName(null);
-		assertNull(attributeResource.getSupportingAnnotation(JPA.SEQUENCE_GENERATOR));
-	}
-
-}
diff --git a/jpa/tests/org.eclipse.jpt.core.tests/src/org/eclipse/jpt/core/tests/internal/context/java/JavaTableGeneratorTests.java b/jpa/tests/org.eclipse.jpt.core.tests/src/org/eclipse/jpt/core/tests/internal/context/java/JavaTableGeneratorTests.java
deleted file mode 100644
index eea6843..0000000
--- a/jpa/tests/org.eclipse.jpt.core.tests/src/org/eclipse/jpt/core/tests/internal/context/java/JavaTableGeneratorTests.java
+++ /dev/null
@@ -1,701 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2008 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.core.tests.internal.context.java;
-
-import java.util.Iterator;
-import java.util.ListIterator;
-import org.eclipse.jdt.core.ICompilationUnit;
-import org.eclipse.jpt.core.JptCorePlugin;
-import org.eclipse.jpt.core.MappingKeys;
-import org.eclipse.jpt.core.context.Generator;
-import org.eclipse.jpt.core.context.IdMapping;
-import org.eclipse.jpt.core.context.TableGenerator;
-import org.eclipse.jpt.core.context.UniqueConstraint;
-import org.eclipse.jpt.core.context.java.JavaUniqueConstraint;
-import org.eclipse.jpt.core.context.orm.OrmEntity;
-import org.eclipse.jpt.core.context.orm.OrmPersistentType;
-import org.eclipse.jpt.core.resource.java.JPA;
-import org.eclipse.jpt.core.resource.java.JavaResourcePersistentAttribute;
-import org.eclipse.jpt.core.resource.java.JavaResourcePersistentType;
-import org.eclipse.jpt.core.resource.java.TableGeneratorAnnotation;
-import org.eclipse.jpt.core.resource.java.UniqueConstraintAnnotation;
-import org.eclipse.jpt.core.resource.persistence.PersistenceFactory;
-import org.eclipse.jpt.core.resource.persistence.XmlMappingFileRef;
-import org.eclipse.jpt.core.tests.internal.context.ContextModelTestCase;
-import org.eclipse.jpt.utility.internal.iterators.ArrayIterator;
-
-@SuppressWarnings("nls")
-public class JavaTableGeneratorTests extends ContextModelTestCase
-{
-	private static final String TABLE_GENERATOR_NAME = "MY_TABLE_GENERATOR";
-
-	private ICompilationUnit createTestEntityWithTableGenerator() throws Exception {
-		return this.createTestType(new DefaultAnnotationWriter() {
-			@Override
-			public Iterator<String> imports() {
-				return new ArrayIterator<String>(JPA.ENTITY, JPA.TABLE_GENERATOR, JPA.ID);
-			}
-			@Override
-			public void appendTypeAnnotationTo(StringBuilder sb) {
-				sb.append("@Entity");
-			}
-			
-			@Override
-			public void appendIdFieldAnnotationTo(StringBuilder sb) {
-				sb.append("@Id").append(CR);
-				sb.append("@TableGenerator(name=\"" + TABLE_GENERATOR_NAME + "\")");
-			}
-		});
-	}
-		
-	public JavaTableGeneratorTests(String name) {
-		super(name);
-	}
-
-	public void testGetName() throws Exception {
-		createTestEntityWithTableGenerator();
-		addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
-
-		IdMapping idMapping = (IdMapping) getJavaPersistentType().getAttributeNamed("id").getMapping();
-		assertEquals(TABLE_GENERATOR_NAME, idMapping.getTableGenerator().getName());
-
-		//change resource model tableGenerator name, verify the context model is updated
-		JavaResourcePersistentType typeResource = getJpaProject().getJavaResourcePersistentType(FULLY_QUALIFIED_TYPE_NAME);
-		JavaResourcePersistentAttribute attributeResource = typeResource.persistableAttributes().next();
-		TableGeneratorAnnotation tableGenerator = (TableGeneratorAnnotation) attributeResource.getSupportingAnnotation(JPA.TABLE_GENERATOR);
-		
-		tableGenerator.setName("foo");
-		
-		assertEquals("foo", idMapping.getTableGenerator().getName());
-	}
-
-	public void testSetName() throws Exception {
-		createTestEntityWithTableGenerator();
-		addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
-
-		IdMapping idMapping = (IdMapping) getJavaPersistentType().getAttributeNamed("id").getMapping();
-		assertEquals(TABLE_GENERATOR_NAME, idMapping.getTableGenerator().getName());
-
-		idMapping.getTableGenerator().setName("foo");
-		
-		assertEquals("foo", idMapping.getTableGenerator().getName());
-		
-		JavaResourcePersistentType typeResource = getJpaProject().getJavaResourcePersistentType(FULLY_QUALIFIED_TYPE_NAME);
-		JavaResourcePersistentAttribute attributeResource = typeResource.persistableAttributes().next();
-		TableGeneratorAnnotation tableGenerator = (TableGeneratorAnnotation) attributeResource.getSupportingAnnotation(JPA.TABLE_GENERATOR);
-		
-		assertEquals("foo", tableGenerator.getName());
-	}
-	
-	public void testSetSpecifiedNameNull() throws Exception {
-		createTestEntityWithTableGenerator();
-		addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
-
-		IdMapping idMapping = (IdMapping) getJavaPersistentType().getAttributeNamed("id").getMapping();
-		assertEquals(TABLE_GENERATOR_NAME, idMapping.getTableGenerator().getName());
-
-		idMapping.getTableGenerator().setName(null);
-		
-		assertNull(idMapping.getTableGenerator());
-		
-		JavaResourcePersistentType typeResource = getJpaProject().getJavaResourcePersistentType(FULLY_QUALIFIED_TYPE_NAME);
-		JavaResourcePersistentAttribute attributeResource = typeResource.persistableAttributes().next();
-		TableGeneratorAnnotation tableGenerator = (TableGeneratorAnnotation) attributeResource.getSupportingAnnotation(JPA.TABLE_GENERATOR);
-		
-		assertNull(tableGenerator);
-	}
-	
-	public void testGetCatalog() throws Exception {
-		createTestEntityWithTableGenerator();
-		addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
-		
-		IdMapping idMapping = (IdMapping) getJavaPersistentType().getAttributeNamed("id").getMapping();
-		
-		assertNull(idMapping.getTableGenerator().getCatalog());
-		JavaResourcePersistentType typeResource = getJpaProject().getJavaResourcePersistentType(FULLY_QUALIFIED_TYPE_NAME);
-		JavaResourcePersistentAttribute attributeResource = typeResource.persistableAttributes().next();
-		TableGeneratorAnnotation tableGenerator = (TableGeneratorAnnotation) attributeResource.getSupportingAnnotation(JPA.TABLE_GENERATOR);	
-		
-		tableGenerator.setCatalog("myCatalog");
-		
-		assertEquals("myCatalog", idMapping.getTableGenerator().getCatalog());
-		assertEquals("myCatalog", idMapping.getTableGenerator().getSpecifiedCatalog());
-	}
-	
-	public void testGetDefaultCatalog() throws Exception {
-		createTestEntityWithTableGenerator();
-		addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
-		
-		IdMapping idMapping = (IdMapping) getJavaPersistentType().getAttributeNamed("id").getMapping();
-
-		assertNull(idMapping.getTableGenerator().getDefaultCatalog());
-		
-		idMapping.getTableGenerator().setSpecifiedCatalog("myCatalog");
-		
-		assertNull(idMapping.getTableGenerator().getDefaultCatalog());
-		assertEquals("myCatalog", idMapping.getTableGenerator().getSpecifiedCatalog());
-	}
-	
-	public void testSetSpecifiedCatalog() throws Exception {
-		createTestEntityWithTableGenerator();
-		addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
-		
-		IdMapping idMapping = (IdMapping) getJavaPersistentType().getAttributeNamed("id").getMapping();
-		idMapping.getTableGenerator().setSpecifiedCatalog("myCatalog");
-		
-		JavaResourcePersistentType typeResource = getJpaProject().getJavaResourcePersistentType(FULLY_QUALIFIED_TYPE_NAME);
-		JavaResourcePersistentAttribute attributeResource = typeResource.persistableAttributes().next();
-		TableGeneratorAnnotation tableGenerator = (TableGeneratorAnnotation) attributeResource.getSupportingAnnotation(JPA.TABLE_GENERATOR);	
-		
-		assertEquals("myCatalog", tableGenerator.getCatalog());
-		
-		idMapping.getTableGenerator().setName(null);
-		idMapping.getTableGenerator().setSpecifiedCatalog(null);
-		assertNull(attributeResource.getSupportingAnnotation(JPA.TABLE_GENERATOR));
-	}
-
-	public void testGetSchema() throws Exception {
-		createTestEntityWithTableGenerator();
-		addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
-		
-		IdMapping idMapping = (IdMapping) getJavaPersistentType().getAttributeNamed("id").getMapping();
-		
-		assertNull(idMapping.getTableGenerator().getSchema());
-		JavaResourcePersistentType typeResource = getJpaProject().getJavaResourcePersistentType(FULLY_QUALIFIED_TYPE_NAME);
-		JavaResourcePersistentAttribute attributeResource = typeResource.persistableAttributes().next();
-		TableGeneratorAnnotation tableGenerator = (TableGeneratorAnnotation) attributeResource.getSupportingAnnotation(JPA.TABLE_GENERATOR);	
-		
-		tableGenerator.setSchema("mySchema");
-		
-		assertEquals("mySchema", idMapping.getTableGenerator().getSchema());
-		assertEquals("mySchema", idMapping.getTableGenerator().getSpecifiedSchema());
-	}
-	
-	public void testGetDefaultSchema() throws Exception {
-		createTestEntityWithTableGenerator();
-		addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
-		
-		IdMapping idMapping = (IdMapping) getJavaPersistentType().getAttributeNamed("id").getMapping();
-
-		assertNull(idMapping.getTableGenerator().getDefaultSchema());
-		
-		idMapping.getTableGenerator().setSpecifiedSchema("mySchema");
-		
-		assertNull(idMapping.getTableGenerator().getDefaultSchema());
-		assertEquals("mySchema", idMapping.getTableGenerator().getSpecifiedSchema());
-	}
-	
-	public void testUpdateDefaultSchemaFromPersistenceUnitDefaults() throws Exception {
-		XmlMappingFileRef mappingFileRef = PersistenceFactory.eINSTANCE.createXmlMappingFileRef();
-		mappingFileRef.setFileName(JptCorePlugin.DEFAULT_ORM_XML_FILE_PATH);
-		getXmlPersistenceUnit().getMappingFiles().add(mappingFileRef);
-
-		createTestEntityWithTableGenerator();
-		
-		OrmPersistentType ormPersistentType = getEntityMappings().addPersistentType(MappingKeys.ENTITY_TYPE_MAPPING_KEY, FULLY_QUALIFIED_TYPE_NAME);
-		OrmEntity ormEntity = (OrmEntity) ormPersistentType.getMapping();
-		IdMapping idMapping = (IdMapping)  ormPersistentType.getJavaPersistentType().getAttributeNamed("id").getMapping();
-		
-		assertNull(idMapping.getTableGenerator().getDefaultSchema());
-		
-		getEntityMappings().getPersistenceUnitMetadata().getPersistenceUnitDefaults().setSpecifiedSchema("FOO");
-		assertEquals("FOO", idMapping.getTableGenerator().getDefaultSchema());
-		
-		getEntityMappings().setSpecifiedSchema("BAR");
-		assertEquals("BAR", idMapping.getTableGenerator().getDefaultSchema());
-		
-		ormEntity.getTable().setSpecifiedSchema("XML_SCHEMA");
-		assertEquals("BAR", idMapping.getTableGenerator().getDefaultSchema());
-
-		getEntityMappings().removePersistentType(0);
-		addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
-		//default schema taken from persistence-unit-defaults not entity-mappings since the entity is not in an orm.xml file
-		assertEquals("FOO", ((IdMapping) getJavaPersistentType().getAttributeNamed("id").getMapping()).getTableGenerator().getDefaultSchema());
-	}
-
-	public void testSetSpecifiedSchema() throws Exception {
-		createTestEntityWithTableGenerator();
-		addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
-		
-		IdMapping idMapping = (IdMapping) getJavaPersistentType().getAttributeNamed("id").getMapping();
-		idMapping.getTableGenerator().setSpecifiedSchema("mySchema");
-		
-		JavaResourcePersistentType typeResource = getJpaProject().getJavaResourcePersistentType(FULLY_QUALIFIED_TYPE_NAME);
-		JavaResourcePersistentAttribute attributeResource = typeResource.persistableAttributes().next();
-		TableGeneratorAnnotation tableGenerator = (TableGeneratorAnnotation) attributeResource.getSupportingAnnotation(JPA.TABLE_GENERATOR);	
-		
-		assertEquals("mySchema", tableGenerator.getSchema());
-		
-		idMapping.getTableGenerator().setName(null);
-		idMapping.getTableGenerator().setSpecifiedSchema(null);
-		assertNull(attributeResource.getSupportingAnnotation(JPA.TABLE_GENERATOR));
-	}
-	
-	public void testGetPkColumnName() throws Exception {
-		createTestEntityWithTableGenerator();
-		addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
-		
-		IdMapping idMapping = (IdMapping) getJavaPersistentType().getAttributeNamed("id").getMapping();
-		
-		assertNull(idMapping.getTableGenerator().getPkColumnName());
-		JavaResourcePersistentType typeResource = getJpaProject().getJavaResourcePersistentType(FULLY_QUALIFIED_TYPE_NAME);
-		JavaResourcePersistentAttribute attributeResource = typeResource.persistableAttributes().next();
-		TableGeneratorAnnotation tableGenerator = (TableGeneratorAnnotation) attributeResource.getSupportingAnnotation(JPA.TABLE_GENERATOR);	
-		
-		tableGenerator.setPkColumnName("myPkColumnName");
-		
-		assertEquals("myPkColumnName", idMapping.getTableGenerator().getPkColumnName());
-		assertEquals("myPkColumnName", idMapping.getTableGenerator().getSpecifiedPkColumnName());
-	}
-	
-	public void testGetDefaultPkColumnName() throws Exception {
-		createTestEntityWithTableGenerator();
-		addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
-		
-		IdMapping idMapping = (IdMapping) getJavaPersistentType().getAttributeNamed("id").getMapping();
-
-		assertNull(idMapping.getTableGenerator().getDefaultPkColumnName());
-		
-		idMapping.getTableGenerator().setSpecifiedPkColumnName("myPkColumnName");
-		
-		assertNull(idMapping.getTableGenerator().getDefaultPkColumnName());
-		assertEquals("myPkColumnName", idMapping.getTableGenerator().getSpecifiedPkColumnName());
-	}
-	
-	public void testSetSpecifiedPkColumnName() throws Exception {
-		createTestEntityWithTableGenerator();
-		addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
-		
-		IdMapping idMapping = (IdMapping) getJavaPersistentType().getAttributeNamed("id").getMapping();
-		idMapping.getTableGenerator().setSpecifiedPkColumnName("myPkColumnName");
-		
-		JavaResourcePersistentType typeResource = getJpaProject().getJavaResourcePersistentType(FULLY_QUALIFIED_TYPE_NAME);
-		JavaResourcePersistentAttribute attributeResource = typeResource.persistableAttributes().next();
-		TableGeneratorAnnotation tableGenerator = (TableGeneratorAnnotation) attributeResource.getSupportingAnnotation(JPA.TABLE_GENERATOR);	
-		
-		assertEquals("myPkColumnName", tableGenerator.getPkColumnName());
-		
-		idMapping.getTableGenerator().setName(null);
-		idMapping.getTableGenerator().setSpecifiedPkColumnName(null);
-		assertNull(attributeResource.getSupportingAnnotation(JPA.TABLE_GENERATOR));
-	}	
-	
-	public void testGetValueColumnName() throws Exception {
-		createTestEntityWithTableGenerator();
-		addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
-		
-		IdMapping idMapping = (IdMapping) getJavaPersistentType().getAttributeNamed("id").getMapping();
-		
-		assertNull(idMapping.getTableGenerator().getValueColumnName());
-		JavaResourcePersistentType typeResource = getJpaProject().getJavaResourcePersistentType(FULLY_QUALIFIED_TYPE_NAME);
-		JavaResourcePersistentAttribute attributeResource = typeResource.persistableAttributes().next();
-		TableGeneratorAnnotation tableGenerator = (TableGeneratorAnnotation) attributeResource.getSupportingAnnotation(JPA.TABLE_GENERATOR);	
-		
-		tableGenerator.setValueColumnName("myValueColumnName");
-		
-		assertEquals("myValueColumnName", idMapping.getTableGenerator().getValueColumnName());
-		assertEquals("myValueColumnName", idMapping.getTableGenerator().getSpecifiedValueColumnName());
-	}
-	
-	public void testGetDefaultValueColumnName() throws Exception {
-		createTestEntityWithTableGenerator();
-		addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
-		
-		IdMapping idMapping = (IdMapping) getJavaPersistentType().getAttributeNamed("id").getMapping();
-
-		assertNull(idMapping.getTableGenerator().getDefaultValueColumnName());
-		
-		idMapping.getTableGenerator().setSpecifiedValueColumnName("myValueColumnName");
-		
-		assertNull(idMapping.getTableGenerator().getDefaultValueColumnName());
-		assertEquals("myValueColumnName", idMapping.getTableGenerator().getSpecifiedValueColumnName());
-	}
-	
-	public void testSetSpecifiedValueColumnName() throws Exception {
-		createTestEntityWithTableGenerator();
-		addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
-		
-		IdMapping idMapping = (IdMapping) getJavaPersistentType().getAttributeNamed("id").getMapping();
-		idMapping.getTableGenerator().setSpecifiedValueColumnName("myValueColumnName");
-		
-		JavaResourcePersistentType typeResource = getJpaProject().getJavaResourcePersistentType(FULLY_QUALIFIED_TYPE_NAME);
-		JavaResourcePersistentAttribute attributeResource = typeResource.persistableAttributes().next();
-		TableGeneratorAnnotation tableGenerator = (TableGeneratorAnnotation) attributeResource.getSupportingAnnotation(JPA.TABLE_GENERATOR);	
-		
-		assertEquals("myValueColumnName", tableGenerator.getValueColumnName());
-		
-		idMapping.getTableGenerator().setName(null);
-		idMapping.getTableGenerator().setSpecifiedValueColumnName(null);
-		assertNull(attributeResource.getSupportingAnnotation(JPA.TABLE_GENERATOR));
-	}
-	
-	public void testGetPkColumnValue() throws Exception {
-		createTestEntityWithTableGenerator();
-		addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
-		
-		IdMapping idMapping = (IdMapping) getJavaPersistentType().getAttributeNamed("id").getMapping();
-		
-		assertNull(idMapping.getTableGenerator().getPkColumnValue());
-		JavaResourcePersistentType typeResource = getJpaProject().getJavaResourcePersistentType(FULLY_QUALIFIED_TYPE_NAME);
-		JavaResourcePersistentAttribute attributeResource = typeResource.persistableAttributes().next();
-		TableGeneratorAnnotation tableGenerator = (TableGeneratorAnnotation) attributeResource.getSupportingAnnotation(JPA.TABLE_GENERATOR);	
-		
-		tableGenerator.setPkColumnValue("myPkColumnValue");
-		
-		assertEquals("myPkColumnValue", idMapping.getTableGenerator().getPkColumnValue());
-		assertEquals("myPkColumnValue", idMapping.getTableGenerator().getSpecifiedPkColumnValue());
-	}
-	
-	public void testGetDefaultPkColumnValue() throws Exception {
-		createTestEntityWithTableGenerator();
-		addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
-		
-		IdMapping idMapping = (IdMapping) getJavaPersistentType().getAttributeNamed("id").getMapping();
-
-		assertNull(idMapping.getTableGenerator().getDefaultPkColumnValue());
-		
-		idMapping.getTableGenerator().setSpecifiedPkColumnValue("myPkColumnValue");
-		
-		assertNull(idMapping.getTableGenerator().getDefaultPkColumnValue());
-		assertEquals("myPkColumnValue", idMapping.getTableGenerator().getSpecifiedPkColumnValue());
-	}
-	
-	public void testSetSpecifiedPkColumnValue() throws Exception {
-		createTestEntityWithTableGenerator();
-		addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
-		
-		IdMapping idMapping = (IdMapping) getJavaPersistentType().getAttributeNamed("id").getMapping();
-		idMapping.getTableGenerator().setSpecifiedPkColumnValue("myPkColumnValue");
-		
-		JavaResourcePersistentType typeResource = getJpaProject().getJavaResourcePersistentType(FULLY_QUALIFIED_TYPE_NAME);
-		JavaResourcePersistentAttribute attributeResource = typeResource.persistableAttributes().next();
-		TableGeneratorAnnotation tableGenerator = (TableGeneratorAnnotation) attributeResource.getSupportingAnnotation(JPA.TABLE_GENERATOR);	
-		
-		assertEquals("myPkColumnValue", tableGenerator.getPkColumnValue());
-		
-		idMapping.getTableGenerator().setName(null);
-		idMapping.getTableGenerator().setSpecifiedPkColumnValue(null);
-		assertNull(attributeResource.getSupportingAnnotation(JPA.TABLE_GENERATOR));
-	}
-	
-	public void testGetInitialValue() throws Exception {
-		createTestEntityWithTableGenerator();
-		addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
-		
-		IdMapping idMapping = (IdMapping) getJavaPersistentType().getAttributeNamed("id").getMapping();
-		
-		assertEquals(TableGenerator.DEFAULT_INITIAL_VALUE, idMapping.getTableGenerator().getInitialValue());
-		JavaResourcePersistentType typeResource = getJpaProject().getJavaResourcePersistentType(FULLY_QUALIFIED_TYPE_NAME);
-		JavaResourcePersistentAttribute attributeResource = typeResource.persistableAttributes().next();
-		TableGeneratorAnnotation tableGenerator = (TableGeneratorAnnotation) attributeResource.getSupportingAnnotation(JPA.TABLE_GENERATOR);	
-		
-		tableGenerator.setInitialValue(Integer.valueOf(82));
-		
-		assertEquals(82, idMapping.getTableGenerator().getInitialValue());
-		assertEquals(Integer.valueOf(82), idMapping.getTableGenerator().getSpecifiedInitialValue());
-	}
-	
-	public void testGetDefaultInitialValue() throws Exception {
-		createTestEntityWithTableGenerator();
-		addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
-		
-		IdMapping idMapping = (IdMapping) getJavaPersistentType().getAttributeNamed("id").getMapping();
-
-		assertEquals(TableGenerator.DEFAULT_INITIAL_VALUE, idMapping.getTableGenerator().getDefaultInitialValue());
-		
-		idMapping.getTableGenerator().setSpecifiedInitialValue(Integer.valueOf(82));
-		
-		assertEquals(TableGenerator.DEFAULT_INITIAL_VALUE, idMapping.getTableGenerator().getDefaultInitialValue());
-		assertEquals(Integer.valueOf(82), idMapping.getTableGenerator().getSpecifiedInitialValue());
-	}
-	
-	public void testSetSpecifiedInitialValue() throws Exception {
-		createTestEntityWithTableGenerator();
-		addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
-		
-		IdMapping idMapping = (IdMapping) getJavaPersistentType().getAttributeNamed("id").getMapping();
-		idMapping.getTableGenerator().setSpecifiedInitialValue(Integer.valueOf(20));
-		
-		JavaResourcePersistentType typeResource = getJpaProject().getJavaResourcePersistentType(FULLY_QUALIFIED_TYPE_NAME);
-		JavaResourcePersistentAttribute attributeResource = typeResource.persistableAttributes().next();
-		TableGeneratorAnnotation tableGenerator = (TableGeneratorAnnotation) attributeResource.getSupportingAnnotation(JPA.TABLE_GENERATOR);	
-		
-		assertEquals(Integer.valueOf(20), tableGenerator.getInitialValue());
-		
-		idMapping.getTableGenerator().setName(null);
-		idMapping.getTableGenerator().setSpecifiedInitialValue(null);
-		assertNull(attributeResource.getSupportingAnnotation(JPA.TABLE_GENERATOR));
-	}
-	
-	public void testGetAllocationSize() throws Exception {
-		createTestEntityWithTableGenerator();
-		addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
-		
-		IdMapping idMapping = (IdMapping) getJavaPersistentType().getAttributeNamed("id").getMapping();
-		
-		assertEquals(Generator.DEFAULT_ALLOCATION_SIZE, idMapping.getTableGenerator().getAllocationSize());
-
-		JavaResourcePersistentType typeResource = getJpaProject().getJavaResourcePersistentType(FULLY_QUALIFIED_TYPE_NAME);
-		JavaResourcePersistentAttribute attributeResource = typeResource.persistableAttributes().next();
-		TableGeneratorAnnotation tableGenerator = (TableGeneratorAnnotation) attributeResource.getSupportingAnnotation(JPA.TABLE_GENERATOR);	
-		
-		tableGenerator.setAllocationSize(Integer.valueOf(20));
-		
-		assertEquals(20, idMapping.getTableGenerator().getAllocationSize());
-		assertEquals(Integer.valueOf(20), idMapping.getTableGenerator().getSpecifiedAllocationSize());
-	}
-	
-	public void testGetDefaultAllocationSize() throws Exception {
-		createTestEntityWithTableGenerator();
-		addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
-		
-		IdMapping idMapping = (IdMapping) getJavaPersistentType().getAttributeNamed("id").getMapping();
-
-		assertEquals(Generator.DEFAULT_ALLOCATION_SIZE, idMapping.getTableGenerator().getDefaultAllocationSize());
-		
-		idMapping.getTableGenerator().setSpecifiedAllocationSize(Integer.valueOf(20));
-		
-		assertEquals(Generator.DEFAULT_ALLOCATION_SIZE, idMapping.getTableGenerator().getDefaultAllocationSize());
-		assertEquals(Integer.valueOf(20), idMapping.getTableGenerator().getSpecifiedAllocationSize());
-	}
-	
-	public void testSetSpecifiedAllocationSize() throws Exception {
-		createTestEntityWithTableGenerator();
-		addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
-		
-		IdMapping idMapping = (IdMapping) getJavaPersistentType().getAttributeNamed("id").getMapping();
-		idMapping.getTableGenerator().setSpecifiedAllocationSize(Integer.valueOf(25));
-		
-		JavaResourcePersistentType typeResource = getJpaProject().getJavaResourcePersistentType(FULLY_QUALIFIED_TYPE_NAME);
-		JavaResourcePersistentAttribute attributeResource = typeResource.persistableAttributes().next();
-		TableGeneratorAnnotation tableGenerator = (TableGeneratorAnnotation) attributeResource.getSupportingAnnotation(JPA.TABLE_GENERATOR);	
-		
-		assertEquals(Integer.valueOf(25), tableGenerator.getAllocationSize());
-		
-		idMapping.getTableGenerator().setName(null);
-		idMapping.getTableGenerator().setSpecifiedAllocationSize(null);
-		assertNull(attributeResource.getSupportingAnnotation(JPA.TABLE_GENERATOR));
-	}
-	
-
-	public void testUniqueConstraints() throws Exception {
-		createTestEntityWithTableGenerator();
-		addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
-		
-		TableGenerator tableGenerator = ((IdMapping) getJavaPersistentType().getAttributeNamed("id").getMapping()).getTableGenerator();
-
-		ListIterator<JavaUniqueConstraint> uniqueConstraints = tableGenerator.uniqueConstraints();
-		assertFalse(uniqueConstraints.hasNext());
-
-		JavaResourcePersistentType typeResource = getJpaProject().getJavaResourcePersistentType(FULLY_QUALIFIED_TYPE_NAME);
-		JavaResourcePersistentAttribute attributeResource = typeResource.persistableAttributes().next();
-		TableGeneratorAnnotation tableGeneratorAnnotation = (TableGeneratorAnnotation) attributeResource.getSupportingAnnotation(JPA.TABLE_GENERATOR);	
-		tableGeneratorAnnotation.addUniqueConstraint(0).addColumnName(0, "foo");
-		tableGeneratorAnnotation.addUniqueConstraint(0).addColumnName(0, "bar");
-		
-		uniqueConstraints = tableGenerator.uniqueConstraints();
-		assertTrue(uniqueConstraints.hasNext());
-		assertEquals("bar", uniqueConstraints.next().columnNames().next());
-		assertEquals("foo", uniqueConstraints.next().columnNames().next());
-		assertFalse(uniqueConstraints.hasNext());
-	}
-	
-	public void testUniqueConstraintsSize() throws Exception {
-		createTestEntityWithTableGenerator();
-		addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
-		
-		TableGenerator tableGenerator = ((IdMapping) getJavaPersistentType().getAttributeNamed("id").getMapping()).getTableGenerator();
-
-		assertEquals(0,  tableGenerator.uniqueConstraintsSize());
-
-		JavaResourcePersistentType typeResource = getJpaProject().getJavaResourcePersistentType(FULLY_QUALIFIED_TYPE_NAME);
-		JavaResourcePersistentAttribute attributeResource = typeResource.persistableAttributes().next();
-		TableGeneratorAnnotation tableGeneratorAnnotation = (TableGeneratorAnnotation) attributeResource.getSupportingAnnotation(JPA.TABLE_GENERATOR);	
-		tableGeneratorAnnotation.addUniqueConstraint(0).addColumnName(0, "foo");
-		tableGeneratorAnnotation.addUniqueConstraint(1).addColumnName(0, "bar");
-		
-		assertEquals(2,  tableGenerator.uniqueConstraintsSize());
-	}
-
-	public void testAddUniqueConstraint() throws Exception {
-		createTestEntityWithTableGenerator();
-		addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
-		
-		TableGenerator tableGenerator = ((IdMapping) getJavaPersistentType().getAttributeNamed("id").getMapping()).getTableGenerator();
-		tableGenerator.addUniqueConstraint(0).addColumnName(0, "FOO");
-		tableGenerator.addUniqueConstraint(0).addColumnName(0, "BAR");
-		tableGenerator.addUniqueConstraint(0).addColumnName(0, "BAZ");
-		
-		JavaResourcePersistentType typeResource = getJpaProject().getJavaResourcePersistentType(FULLY_QUALIFIED_TYPE_NAME);
-		JavaResourcePersistentAttribute attributeResource = typeResource.persistableAttributes().next();
-		TableGeneratorAnnotation tableGeneratorAnnotation = (TableGeneratorAnnotation) attributeResource.getSupportingAnnotation(JPA.TABLE_GENERATOR);	
-		ListIterator<UniqueConstraintAnnotation> uniqueConstraints = tableGeneratorAnnotation.uniqueConstraints();
-		
-		assertEquals("BAZ", uniqueConstraints.next().columnNames().next());
-		assertEquals("BAR", uniqueConstraints.next().columnNames().next());
-		assertEquals("FOO", uniqueConstraints.next().columnNames().next());
-		assertFalse(uniqueConstraints.hasNext());
-	}
-	
-	public void testAddUniqueConstraint2() throws Exception {
-		createTestEntityWithTableGenerator();
-		addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
-		
-		TableGenerator tableGenerator = ((IdMapping) getJavaPersistentType().getAttributeNamed("id").getMapping()).getTableGenerator();
-		tableGenerator.addUniqueConstraint(0).addColumnName(0, "FOO");
-		tableGenerator.addUniqueConstraint(1).addColumnName(0, "BAR");
-		tableGenerator.addUniqueConstraint(0).addColumnName(0, "BAZ");
-		
-		JavaResourcePersistentType typeResource = getJpaProject().getJavaResourcePersistentType(FULLY_QUALIFIED_TYPE_NAME);
-		JavaResourcePersistentAttribute attributeResource = typeResource.persistableAttributes().next();
-		TableGeneratorAnnotation tableGeneratorAnnotation = (TableGeneratorAnnotation) attributeResource.getSupportingAnnotation(JPA.TABLE_GENERATOR);	
-		ListIterator<UniqueConstraintAnnotation> uniqueConstraints = tableGeneratorAnnotation.uniqueConstraints();
-		
-		assertEquals("BAZ", uniqueConstraints.next().columnNames().next());
-		assertEquals("FOO", uniqueConstraints.next().columnNames().next());
-		assertEquals("BAR", uniqueConstraints.next().columnNames().next());
-		assertFalse(uniqueConstraints.hasNext());
-	}
-	
-	public void testRemoveUniqueConstraint() throws Exception {
-		createTestEntityWithTableGenerator();
-		addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
-		
-		TableGenerator tableGenerator = ((IdMapping) getJavaPersistentType().getAttributeNamed("id").getMapping()).getTableGenerator();
-		tableGenerator.addUniqueConstraint(0).addColumnName(0, "FOO");
-		tableGenerator.addUniqueConstraint(1).addColumnName(0, "BAR");
-		tableGenerator.addUniqueConstraint(2).addColumnName(0, "BAZ");
-		
-		JavaResourcePersistentType typeResource = getJpaProject().getJavaResourcePersistentType(FULLY_QUALIFIED_TYPE_NAME);
-		JavaResourcePersistentAttribute attributeResource = typeResource.persistableAttributes().next();
-		TableGeneratorAnnotation tableGeneratorAnnotation = (TableGeneratorAnnotation) attributeResource.getSupportingAnnotation(JPA.TABLE_GENERATOR);	
-		
-		assertEquals(3, tableGeneratorAnnotation.uniqueConstraintsSize());
-
-		tableGenerator.removeUniqueConstraint(1);
-		
-		ListIterator<UniqueConstraintAnnotation> uniqueConstraintAnnotations = tableGeneratorAnnotation.uniqueConstraints();
-		assertEquals("FOO", uniqueConstraintAnnotations.next().columnNames().next());		
-		assertEquals("BAZ", uniqueConstraintAnnotations.next().columnNames().next());
-		assertFalse(uniqueConstraintAnnotations.hasNext());
-		
-		Iterator<UniqueConstraint> uniqueConstraints = tableGenerator.uniqueConstraints();
-		assertEquals("FOO", uniqueConstraints.next().columnNames().next());		
-		assertEquals("BAZ", uniqueConstraints.next().columnNames().next());
-		assertFalse(uniqueConstraints.hasNext());
-	
-		
-		tableGenerator.removeUniqueConstraint(1);
-		uniqueConstraintAnnotations = tableGeneratorAnnotation.uniqueConstraints();
-		assertEquals("FOO", uniqueConstraintAnnotations.next().columnNames().next());		
-		assertFalse(uniqueConstraintAnnotations.hasNext());
-
-		uniqueConstraints = tableGenerator.uniqueConstraints();
-		assertEquals("FOO", uniqueConstraints.next().columnNames().next());		
-		assertFalse(uniqueConstraints.hasNext());
-
-		
-		tableGenerator.removeUniqueConstraint(0);
-		uniqueConstraintAnnotations = tableGeneratorAnnotation.uniqueConstraints();
-		assertFalse(uniqueConstraintAnnotations.hasNext());
-		uniqueConstraints = tableGenerator.uniqueConstraints();
-		assertFalse(uniqueConstraints.hasNext());
-	}
-	
-	public void testMoveUniqueConstraint() throws Exception {
-		createTestEntityWithTableGenerator();
-		addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
-		
-		TableGenerator tableGenerator = ((IdMapping) getJavaPersistentType().getAttributeNamed("id").getMapping()).getTableGenerator();
-		tableGenerator.addUniqueConstraint(0).addColumnName(0, "FOO");
-		tableGenerator.addUniqueConstraint(1).addColumnName(0, "BAR");
-		tableGenerator.addUniqueConstraint(2).addColumnName(0, "BAZ");
-		
-		JavaResourcePersistentType typeResource = getJpaProject().getJavaResourcePersistentType(FULLY_QUALIFIED_TYPE_NAME);
-		JavaResourcePersistentAttribute attributeResource = typeResource.persistableAttributes().next();
-		TableGeneratorAnnotation tableGeneratorAnnotation = (TableGeneratorAnnotation) attributeResource.getSupportingAnnotation(JPA.TABLE_GENERATOR);	
-		
-		assertEquals(3, tableGeneratorAnnotation.uniqueConstraintsSize());
-		
-		
-		tableGenerator.moveUniqueConstraint(2, 0);
-		ListIterator<UniqueConstraint> uniqueConstraints = tableGenerator.uniqueConstraints();
-		assertEquals("BAR", uniqueConstraints.next().columnNames().next());
-		assertEquals("BAZ", uniqueConstraints.next().columnNames().next());
-		assertEquals("FOO", uniqueConstraints.next().columnNames().next());
-
-		ListIterator<UniqueConstraintAnnotation> uniqueConstraintAnnotations = tableGeneratorAnnotation.uniqueConstraints();
-		assertEquals("BAR", uniqueConstraintAnnotations.next().columnNames().next());
-		assertEquals("BAZ", uniqueConstraintAnnotations.next().columnNames().next());
-		assertEquals("FOO", uniqueConstraintAnnotations.next().columnNames().next());
-
-
-		tableGenerator.moveUniqueConstraint(0, 1);
-		uniqueConstraints = tableGenerator.uniqueConstraints();
-		assertEquals("BAZ", uniqueConstraints.next().columnNames().next());
-		assertEquals("BAR", uniqueConstraints.next().columnNames().next());
-		assertEquals("FOO", uniqueConstraints.next().columnNames().next());
-
-		uniqueConstraintAnnotations = tableGeneratorAnnotation.uniqueConstraints();
-		assertEquals("BAZ", uniqueConstraintAnnotations.next().columnNames().next());
-		assertEquals("BAR", uniqueConstraintAnnotations.next().columnNames().next());
-		assertEquals("FOO", uniqueConstraintAnnotations.next().columnNames().next());
-	}
-	
-	public void testUpdateUniqueConstraints() throws Exception {
-		createTestEntityWithTableGenerator();
-		addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
-
-		TableGenerator tableGenerator = ((IdMapping) getJavaPersistentType().getAttributeNamed("id").getMapping()).getTableGenerator();
-		JavaResourcePersistentType typeResource = getJpaProject().getJavaResourcePersistentType(FULLY_QUALIFIED_TYPE_NAME);
-		JavaResourcePersistentAttribute attributeResource = typeResource.persistableAttributes().next();
-		TableGeneratorAnnotation tableGeneratorAnnotation = (TableGeneratorAnnotation) attributeResource.getSupportingAnnotation(JPA.TABLE_GENERATOR);	
-	
-		tableGeneratorAnnotation.addUniqueConstraint(0).addColumnName("FOO");
-		tableGeneratorAnnotation.addUniqueConstraint(1).addColumnName("BAR");
-		tableGeneratorAnnotation.addUniqueConstraint(2).addColumnName("BAZ");
-
-		
-		ListIterator<UniqueConstraint> uniqueConstraints = tableGenerator.uniqueConstraints();
-		assertEquals("FOO", uniqueConstraints.next().columnNames().next());
-		assertEquals("BAR", uniqueConstraints.next().columnNames().next());
-		assertEquals("BAZ", uniqueConstraints.next().columnNames().next());
-		assertFalse(uniqueConstraints.hasNext());
-		
-		tableGeneratorAnnotation.moveUniqueConstraint(2, 0);
-		uniqueConstraints = tableGenerator.uniqueConstraints();
-		assertEquals("BAR", uniqueConstraints.next().columnNames().next());
-		assertEquals("BAZ", uniqueConstraints.next().columnNames().next());
-		assertEquals("FOO", uniqueConstraints.next().columnNames().next());
-		assertFalse(uniqueConstraints.hasNext());
-	
-		tableGeneratorAnnotation.moveUniqueConstraint(0, 1);
-		uniqueConstraints = tableGenerator.uniqueConstraints();
-		assertEquals("BAZ", uniqueConstraints.next().columnNames().next());
-		assertEquals("BAR", uniqueConstraints.next().columnNames().next());
-		assertEquals("FOO", uniqueConstraints.next().columnNames().next());
-		assertFalse(uniqueConstraints.hasNext());
-	
-		tableGeneratorAnnotation.removeUniqueConstraint(1);
-		uniqueConstraints = tableGenerator.uniqueConstraints();
-		assertEquals("BAZ", uniqueConstraints.next().columnNames().next());
-		assertEquals("FOO", uniqueConstraints.next().columnNames().next());
-		assertFalse(uniqueConstraints.hasNext());
-	
-		tableGeneratorAnnotation.removeUniqueConstraint(1);
-		uniqueConstraints = tableGenerator.uniqueConstraints();
-		assertEquals("BAZ", uniqueConstraints.next().columnNames().next());
-		assertFalse(uniqueConstraints.hasNext());
-		
-		tableGeneratorAnnotation.removeUniqueConstraint(0);
-		uniqueConstraints = tableGenerator.uniqueConstraints();
-		assertFalse(uniqueConstraints.hasNext());
-	}
-}
diff --git a/jpa/tests/org.eclipse.jpt.core.tests/src/org/eclipse/jpt/core/tests/internal/context/java/JavaTableTests.java b/jpa/tests/org.eclipse.jpt.core.tests/src/org/eclipse/jpt/core/tests/internal/context/java/JavaTableTests.java
deleted file mode 100644
index f972a4f..0000000
--- a/jpa/tests/org.eclipse.jpt.core.tests/src/org/eclipse/jpt/core/tests/internal/context/java/JavaTableTests.java
+++ /dev/null
@@ -1,599 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.core.tests.internal.context.java;
-
-import java.util.Iterator;
-import java.util.ListIterator;
-import org.eclipse.core.resources.IFile;
-import org.eclipse.jdt.core.ICompilationUnit;
-import org.eclipse.jpt.core.JptCorePlugin;
-import org.eclipse.jpt.core.MappingKeys;
-import org.eclipse.jpt.core.context.Entity;
-import org.eclipse.jpt.core.context.InheritanceType;
-import org.eclipse.jpt.core.context.Table;
-import org.eclipse.jpt.core.context.UniqueConstraint;
-import org.eclipse.jpt.core.context.java.JavaEntity;
-import org.eclipse.jpt.core.context.java.JavaUniqueConstraint;
-import org.eclipse.jpt.core.context.orm.OrmEntity;
-import org.eclipse.jpt.core.context.orm.OrmPersistentType;
-import org.eclipse.jpt.core.context.persistence.ClassRef;
-import org.eclipse.jpt.core.resource.java.JPA;
-import org.eclipse.jpt.core.resource.java.JavaResourcePersistentType;
-import org.eclipse.jpt.core.resource.java.TableAnnotation;
-import org.eclipse.jpt.core.resource.java.UniqueConstraintAnnotation;
-import org.eclipse.jpt.core.resource.persistence.PersistenceFactory;
-import org.eclipse.jpt.core.resource.persistence.XmlMappingFileRef;
-import org.eclipse.jpt.core.tests.internal.context.ContextModelTestCase;
-import org.eclipse.jpt.utility.internal.iterators.ArrayIterator;
-
-@SuppressWarnings("nls")
-public class JavaTableTests extends ContextModelTestCase
-{
-	private static final String TABLE_NAME = "MY_TABLE";
-
-	private ICompilationUnit createTestEntity() throws Exception {
-		return this.createTestType(new DefaultAnnotationWriter() {
-			@Override
-			public Iterator<String> imports() {
-				return new ArrayIterator<String>(JPA.ENTITY);
-			}
-			@Override
-			public void appendTypeAnnotationTo(StringBuilder sb) {
-				sb.append("@Entity");
-			}
-		});
-	}
-
-	private ICompilationUnit createTestEntityWithTable() throws Exception {
-		return this.createTestType(new DefaultAnnotationWriter() {
-			@Override
-			public Iterator<String> imports() {
-				return new ArrayIterator<String>(JPA.ENTITY, JPA.TABLE);
-			}
-			@Override
-			public void appendTypeAnnotationTo(StringBuilder sb) {
-				sb.append("@Entity").append(CR);
-				sb.append("@Table(name=\"" + TABLE_NAME + "\")");
-			}
-		});
-	}
-
-	private ICompilationUnit createTestSubType() throws Exception {
-		return this.createTestType(PACKAGE_NAME, "AnnotationTestTypeChild.java", "AnnotationTestTypeChild", new DefaultAnnotationWriter() {
-			@Override
-			public Iterator<String> imports() {
-				return new ArrayIterator<String>(JPA.ENTITY);
-			}
-			@Override
-			public void appendExtendsImplementsTo(StringBuilder sb) {
-				sb.append("extends " + TYPE_NAME + " ");
-			}
-			@Override
-			public void appendTypeAnnotationTo(StringBuilder sb) {
-				sb.append("@Entity");
-			}
-
-		});
-	}
-
-	private ICompilationUnit createAbstractTestEntity() throws Exception {
-		return this.createTestType(new DefaultAnnotationWriter() {
-			@Override
-			public Iterator<String> imports() {
-				return new ArrayIterator<String>(JPA.ENTITY, JPA.INHERITANCE, JPA.INHERITANCE_TYPE);
-			}
-			@Override
-			public void appendTypeAnnotationTo(StringBuilder sb) {
-				sb.append("@Entity").append(CR);
-				sb.append("@Inheritance(strategy=InheritanceType.TABLE_PER_CLASS)").append(CR);
-				sb.append("abstract");
-			}
-		});
-	}
-
-		
-	public JavaTableTests(String name) {
-		super(name);
-	}
-
-	public void testGetSpecifiedNameNull() throws Exception {
-		createTestEntity();
-		addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
-
-		assertNull(getJavaEntity().getTable().getSpecifiedName());
-	}
-
-	public void testGetSpecifiedName() throws Exception {
-		createTestEntityWithTable();
-		addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
-
-		assertEquals(TABLE_NAME, getJavaEntity().getTable().getSpecifiedName());
-	}
-	
-	public void testGetDefaultNameSpecifiedNameNull() throws Exception {
-		createTestEntity();
-		addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
-		
-		assertEquals(TYPE_NAME, getJavaEntity().getTable().getDefaultName());
-	}
-
-	public void testGetDefaultName() throws Exception {
-		createTestEntityWithTable();
-		addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
-		
-		assertEquals(TYPE_NAME, getJavaEntity().getTable().getDefaultName());
-		
-		//test that setting the java entity name will change the table default name
-		getJavaEntity().setSpecifiedName("foo");
-		assertEquals("foo", getJavaEntity().getTable().getDefaultName());
-	}
-	
-	public void testGetDefaultNameSingleTableInheritance() throws Exception {
-		createTestEntity();
-		createTestSubType();
-		
-		addXmlClassRef(PACKAGE_NAME + ".AnnotationTestTypeChild");
-		addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
-		
-		ListIterator<ClassRef> specifiedClassRefs = getPersistenceUnit().specifiedClassRefs();
-		Entity childEntity = (Entity) specifiedClassRefs.next().getJavaPersistentType().getMapping();
-		Entity rootEntity = (Entity) specifiedClassRefs.next().getJavaPersistentType().getMapping();
-		
-		assertNotSame(getJavaEntity(), rootEntity);
-		assertEquals(TYPE_NAME, childEntity.getTable().getDefaultName());
-		assertEquals(TYPE_NAME, rootEntity.getTable().getDefaultName());
-		
-		//test that setting the root java entity name will change the table default name of the child
-		rootEntity.setSpecifiedName("foo");
-		assertEquals("foo", childEntity.getTable().getDefaultName());
-	}
-
-	public void testUpdateDefaultSchemaFromPersistenceUnitDefaults() throws Exception {
-		XmlMappingFileRef mappingFileRef = PersistenceFactory.eINSTANCE.createXmlMappingFileRef();
-		mappingFileRef.setFileName(JptCorePlugin.DEFAULT_ORM_XML_FILE_PATH);
-		getXmlPersistenceUnit().getMappingFiles().add(mappingFileRef);
-
-		createTestEntity();
-		
-		OrmPersistentType ormPersistentType = getEntityMappings().addPersistentType(MappingKeys.ENTITY_TYPE_MAPPING_KEY, FULLY_QUALIFIED_TYPE_NAME);
-		OrmEntity ormEntity = (OrmEntity) ormPersistentType.getMapping();
-		JavaEntity javaEntity = ormEntity.getJavaEntity();
-		
-		assertNull(javaEntity.getTable().getDefaultSchema());
-		
-		getEntityMappings().getPersistenceUnitMetadata().getPersistenceUnitDefaults().setSpecifiedSchema("FOO");
-		assertEquals("FOO", javaEntity.getTable().getDefaultSchema());
-		
-		getEntityMappings().setSpecifiedSchema("BAR");
-		assertEquals("BAR", javaEntity.getTable().getDefaultSchema());
-		
-		ormEntity.getTable().setSpecifiedSchema("XML_SCHEMA");
-		assertEquals("BAR", javaEntity.getTable().getDefaultSchema());
-
-		getEntityMappings().removePersistentType(0);
-		addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
-		//default schema taken from persistence-unit-defaults not entity-mappings since the entity is not in an orm.xml file
-		assertEquals("FOO", getJavaEntity().getTable().getDefaultSchema());
-
-		IFile file = getOrmXmlResource().getFile();
-		//remove the mapping file reference from the persistence.xml.  default schema 
-		//should still come from persistence-unit-defaults because of implied mapped-file-ref
-		getXmlPersistenceUnit().getMappingFiles().remove(mappingFileRef);
-		assertEquals("FOO", getJavaEntity().getTable().getDefaultSchema());
-	
-		file.delete(true, null);
-		assertNull(getJavaEntity().getTable().getDefaultSchema());
-	}
-	
-	public void testGetNameSpecifiedNameNull() throws Exception {
-		createTestEntity();
-		addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
-		
-		assertEquals(TYPE_NAME, getJavaEntity().getTable().getName());
-	}
-	
-	public void testGetName() throws Exception {
-		createTestEntityWithTable();
-		addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
-		
-		assertEquals(TABLE_NAME, getJavaEntity().getTable().getName());
-	}
-
-	public void testSetSpecifiedName() throws Exception {
-		createTestEntity();
-		addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
-
-		getJavaEntity().getTable().setSpecifiedName("foo");
-		
-		assertEquals("foo", getJavaEntity().getTable().getSpecifiedName());
-		
-		JavaResourcePersistentType typeResource = getJpaProject().getJavaResourcePersistentType(FULLY_QUALIFIED_TYPE_NAME);
-		TableAnnotation table = (TableAnnotation) typeResource.getSupportingAnnotation(JPA.TABLE);
-		
-		assertEquals("foo", table.getName());
-	}
-	
-	public void testSetSpecifiedNameNull() throws Exception {
-		createTestEntityWithTable();
-		addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
-
-		getJavaEntity().getTable().setSpecifiedName(null);
-		
-		assertNull(getJavaEntity().getTable().getSpecifiedName());
-		
-		JavaResourcePersistentType typeResource = getJpaProject().getJavaResourcePersistentType(FULLY_QUALIFIED_TYPE_NAME);
-		TableAnnotation table = (TableAnnotation) typeResource.getSupportingAnnotation(JPA.TABLE);
-	
-		assertNull(table);
-	}
-	
-	public void testUpdateFromSpecifiedNameChangeInResourceModel() throws Exception {
-		createTestEntityWithTable();
-		addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
-		
-		JavaResourcePersistentType typeResource = getJpaProject().getJavaResourcePersistentType(FULLY_QUALIFIED_TYPE_NAME);
-		TableAnnotation table = (TableAnnotation) typeResource.getSupportingAnnotation(JPA.TABLE);
-		table.setName("foo");
-		
-		assertEquals("foo", getJavaEntity().getTable().getSpecifiedName());
-		
-		typeResource.removeSupportingAnnotation(JPA.TABLE);
-		assertNull(getJavaEntity().getTable().getSpecifiedName());
-	}
-	
-	public void testGetCatalog() throws Exception {
-		createTestEntityWithTable();
-		addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
-		
-		JavaResourcePersistentType typeResource = getJpaProject().getJavaResourcePersistentType(FULLY_QUALIFIED_TYPE_NAME);
-		TableAnnotation table = (TableAnnotation) typeResource.getSupportingAnnotation(JPA.TABLE);
-		
-		table.setCatalog("myCatalog");
-		
-		assertEquals("myCatalog", getJavaEntity().getTable().getSpecifiedCatalog());
-		assertEquals("myCatalog", getJavaEntity().getTable().getCatalog());
-	}
-	
-	public void testGetDefaultCatalog() throws Exception {
-		createTestEntity();
-		addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
-		
-		assertNull(getJavaEntity().getTable().getDefaultCatalog());
-		
-		getJavaEntity().getTable().setSpecifiedCatalog("myCatalog");
-		
-		assertNull(getJavaEntity().getTable().getDefaultCatalog());
-	}
-	
-	public void testUpdateDefaultCatalogFromPersistenceUnitDefaults() throws Exception {
-		XmlMappingFileRef mappingFileRef = PersistenceFactory.eINSTANCE.createXmlMappingFileRef();
-		mappingFileRef.setFileName(JptCorePlugin.DEFAULT_ORM_XML_FILE_PATH);
-		getXmlPersistenceUnit().getMappingFiles().add(mappingFileRef);
-
-		createTestEntity();
-		
-		OrmPersistentType ormPersistentType = getEntityMappings().addPersistentType(MappingKeys.ENTITY_TYPE_MAPPING_KEY, FULLY_QUALIFIED_TYPE_NAME);
-		OrmEntity ormEntity = (OrmEntity) ormPersistentType.getMapping();
-		JavaEntity javaEntity = ormEntity.getJavaEntity();
-		
-		assertNull(javaEntity.getTable().getDefaultCatalog());
-		
-		getEntityMappings().getPersistenceUnitMetadata().getPersistenceUnitDefaults().setSpecifiedCatalog("FOO");
-		assertEquals("FOO", javaEntity.getTable().getDefaultCatalog());
-		
-		getEntityMappings().setSpecifiedCatalog("BAR");
-		assertEquals("BAR", javaEntity.getTable().getDefaultCatalog());
-		
-		ormEntity.getTable().setSpecifiedCatalog("XML_CATALOG");
-		assertEquals("BAR", javaEntity.getTable().getDefaultCatalog());
-
-		getEntityMappings().removePersistentType(0);
-		addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
-		//default catalog taken from persistence-unite-defaults not entity-mappings since the entity is not in an orm.xml file
-		assertEquals("FOO", getJavaEntity().getTable().getDefaultCatalog());
-
-		IFile file = getOrmXmlResource().getFile();
-		//remove the mapping file reference from the persistence.xml.  default schema 
-		//should still come from persistence-unit-defaults because of implied mapped-file-ref
-		getXmlPersistenceUnit().getMappingFiles().remove(mappingFileRef);
-		assertEquals("FOO", getJavaEntity().getTable().getDefaultCatalog());
-	
-		file.delete(true, null);
-		assertNull(getJavaEntity().getTable().getDefaultCatalog());
-	}
-
-	public void testSetSpecifiedCatalog() throws Exception {
-		createTestEntity();
-		addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
-		Table table = getJavaEntity().getTable();
-		table.setSpecifiedCatalog("myCatalog");
-		
-		JavaResourcePersistentType typeResource = getJpaProject().getJavaResourcePersistentType(FULLY_QUALIFIED_TYPE_NAME);
-		TableAnnotation tableResource = (TableAnnotation) typeResource.getSupportingAnnotation(JPA.TABLE);
-		
-		assertEquals("myCatalog", tableResource.getCatalog());
-		
-		table.setSpecifiedCatalog(null);
-		assertNull(typeResource.getSupportingAnnotation(JPA.TABLE));
-	}
-	
-	public void testGetSchema() throws Exception {
-		createTestEntityWithTable();
-		addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
-		
-		JavaResourcePersistentType typeResource = getJpaProject().getJavaResourcePersistentType(FULLY_QUALIFIED_TYPE_NAME);
-		TableAnnotation table = (TableAnnotation) typeResource.getSupportingAnnotation(JPA.TABLE);
-		
-		table.setSchema("mySchema");
-		
-		assertEquals("mySchema", getJavaEntity().getTable().getSpecifiedSchema());
-		assertEquals("mySchema", getJavaEntity().getTable().getSchema());
-	}
-	
-	public void testGetDefaultSchema() throws Exception {
-		createTestEntity();
-		addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
-		
-		assertNull(getJavaEntity().getTable().getDefaultSchema());
-		
-		getJavaEntity().getTable().setSpecifiedSchema("mySchema");
-		
-		assertNull(getJavaEntity().getTable().getDefaultSchema());
-	}
-	
-	public void testSetSpecifiedSchema() throws Exception {
-		createTestEntity();
-		addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
-		Table table = getJavaEntity().getTable();
-		table.setSpecifiedSchema("mySchema");
-		
-		JavaResourcePersistentType typeResource = getJpaProject().getJavaResourcePersistentType(FULLY_QUALIFIED_TYPE_NAME);
-		TableAnnotation tableResource = (TableAnnotation) typeResource.getSupportingAnnotation(JPA.TABLE);
-		
-		assertEquals("mySchema", tableResource.getSchema());
-		
-		table.setSpecifiedSchema(null);
-		assertNull(typeResource.getSupportingAnnotation(JPA.TABLE));
-	}
-
-	public void testUniqueConstraints() throws Exception {
-		createTestEntityWithTable();
-		addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
-		
-		ListIterator<JavaUniqueConstraint> uniqueConstraints = getJavaEntity().getTable().uniqueConstraints();
-		assertFalse(uniqueConstraints.hasNext());
-
-		JavaResourcePersistentType typeResource = getJpaProject().getJavaResourcePersistentType(FULLY_QUALIFIED_TYPE_NAME);
-		TableAnnotation tableAnnotation = (TableAnnotation) typeResource.getSupportingAnnotation(JPA.TABLE);
-		tableAnnotation.addUniqueConstraint(0).addColumnName(0, "foo");
-		tableAnnotation.addUniqueConstraint(0).addColumnName(0, "bar");
-		
-		uniqueConstraints = getJavaEntity().getTable().uniqueConstraints();
-		assertTrue(uniqueConstraints.hasNext());
-		assertEquals("bar", uniqueConstraints.next().columnNames().next());
-		assertEquals("foo", uniqueConstraints.next().columnNames().next());
-		assertFalse(uniqueConstraints.hasNext());
-	}
-	
-	public void testUniqueConstraintsSize() throws Exception {
-		createTestEntityWithTable();
-		addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
-		
-		assertEquals(0,  getJavaEntity().getTable().uniqueConstraintsSize());
-
-		JavaResourcePersistentType typeResource = getJpaProject().getJavaResourcePersistentType(FULLY_QUALIFIED_TYPE_NAME);
-		TableAnnotation tableAnnotation = (TableAnnotation) typeResource.getSupportingAnnotation(JPA.TABLE);
-		tableAnnotation.addUniqueConstraint(0).addColumnName(0, "foo");
-		tableAnnotation.addUniqueConstraint(1).addColumnName(0, "bar");
-		
-		assertEquals(2,  getJavaEntity().getTable().uniqueConstraintsSize());
-	}
-
-	public void testAddUniqueConstraint() throws Exception {
-		createTestEntity();
-		addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
-		
-		Table table = getJavaEntity().getTable();
-		table.addUniqueConstraint(0).addColumnName(0, "FOO");
-		table.addUniqueConstraint(0).addColumnName(0, "BAR");
-		table.addUniqueConstraint(0).addColumnName(0, "BAZ");
-		
-		JavaResourcePersistentType typeResource = getJpaProject().getJavaResourcePersistentType(FULLY_QUALIFIED_TYPE_NAME);
-		TableAnnotation tableAnnotation = (TableAnnotation) typeResource.getSupportingAnnotation(JPA.TABLE);
-		ListIterator<UniqueConstraintAnnotation> uniqueConstraints = tableAnnotation.uniqueConstraints();
-		
-		assertEquals("BAZ", uniqueConstraints.next().columnNames().next());
-		assertEquals("BAR", uniqueConstraints.next().columnNames().next());
-		assertEquals("FOO", uniqueConstraints.next().columnNames().next());
-		assertFalse(uniqueConstraints.hasNext());
-	}
-	
-	public void testAddUniqueConstraint2() throws Exception {
-		createTestEntityWithTable();
-		addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
-		
-		Table table = getJavaEntity().getTable();
-		table.addUniqueConstraint(0).addColumnName(0, "FOO");
-		table.addUniqueConstraint(1).addColumnName(0, "BAR");
-		table.addUniqueConstraint(0).addColumnName(0, "BAZ");
-		
-		JavaResourcePersistentType typeResource = getJpaProject().getJavaResourcePersistentType(FULLY_QUALIFIED_TYPE_NAME);
-		TableAnnotation tableAnnotation = (TableAnnotation) typeResource.getSupportingAnnotation(JPA.TABLE);
-		ListIterator<UniqueConstraintAnnotation> uniqueConstraints = tableAnnotation.uniqueConstraints();
-		
-		assertEquals("BAZ", uniqueConstraints.next().columnNames().next());
-		assertEquals("FOO", uniqueConstraints.next().columnNames().next());
-		assertEquals("BAR", uniqueConstraints.next().columnNames().next());
-		assertFalse(uniqueConstraints.hasNext());
-	}
-	
-	public void testRemoveUniqueConstraint() throws Exception {
-		createTestEntity();
-		addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
-		
-		Table table = getJavaEntity().getTable();
-		table.addUniqueConstraint(0).addColumnName(0, "FOO");
-		table.addUniqueConstraint(1).addColumnName(0, "BAR");
-		table.addUniqueConstraint(2).addColumnName(0, "BAZ");
-		
-		JavaResourcePersistentType typeResource = getJpaProject().getJavaResourcePersistentType(FULLY_QUALIFIED_TYPE_NAME);
-		TableAnnotation tableAnnotation = (TableAnnotation) typeResource.getSupportingAnnotation(JPA.TABLE);
-		
-		assertEquals(3, tableAnnotation.uniqueConstraintsSize());
-
-		table.removeUniqueConstraint(1);
-		
-		ListIterator<UniqueConstraintAnnotation> uniqueConstraintAnnotations = tableAnnotation.uniqueConstraints();
-		assertEquals("FOO", uniqueConstraintAnnotations.next().columnNames().next());		
-		assertEquals("BAZ", uniqueConstraintAnnotations.next().columnNames().next());
-		assertFalse(uniqueConstraintAnnotations.hasNext());
-		
-		Iterator<UniqueConstraint> uniqueConstraints = table.uniqueConstraints();
-		assertEquals("FOO", uniqueConstraints.next().columnNames().next());		
-		assertEquals("BAZ", uniqueConstraints.next().columnNames().next());
-		assertFalse(uniqueConstraints.hasNext());
-	
-		
-		table.removeUniqueConstraint(1);
-		uniqueConstraintAnnotations = tableAnnotation.uniqueConstraints();
-		assertEquals("FOO", uniqueConstraintAnnotations.next().columnNames().next());		
-		assertFalse(uniqueConstraintAnnotations.hasNext());
-
-		uniqueConstraints = table.uniqueConstraints();
-		assertEquals("FOO", uniqueConstraints.next().columnNames().next());		
-		assertFalse(uniqueConstraints.hasNext());
-
-		
-		table.removeUniqueConstraint(0);
-		uniqueConstraintAnnotations = tableAnnotation.uniqueConstraints();
-		assertFalse(uniqueConstraintAnnotations.hasNext());
-		uniqueConstraints = table.uniqueConstraints();
-		assertFalse(uniqueConstraints.hasNext());
-	}
-	
-	public void testMoveUniqueConstraint() throws Exception {
-		createTestEntity();
-		addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
-		
-		Table table = getJavaEntity().getTable();
-		table.addUniqueConstraint(0).addColumnName(0, "FOO");
-		table.addUniqueConstraint(1).addColumnName(0, "BAR");
-		table.addUniqueConstraint(2).addColumnName(0, "BAZ");
-		
-		JavaResourcePersistentType typeResource = getJpaProject().getJavaResourcePersistentType(FULLY_QUALIFIED_TYPE_NAME);
-		TableAnnotation tableAnnotation = (TableAnnotation) typeResource.getSupportingAnnotation(JPA.TABLE);
-		
-		assertEquals(3, tableAnnotation.uniqueConstraintsSize());
-		
-		
-		table.moveUniqueConstraint(2, 0);
-		ListIterator<UniqueConstraint> uniqueConstraints = table.uniqueConstraints();
-		assertEquals("BAR", uniqueConstraints.next().columnNames().next());
-		assertEquals("BAZ", uniqueConstraints.next().columnNames().next());
-		assertEquals("FOO", uniqueConstraints.next().columnNames().next());
-
-		ListIterator<UniqueConstraintAnnotation> uniqueConstraintAnnotations = tableAnnotation.uniqueConstraints();
-		assertEquals("BAR", uniqueConstraintAnnotations.next().columnNames().next());
-		assertEquals("BAZ", uniqueConstraintAnnotations.next().columnNames().next());
-		assertEquals("FOO", uniqueConstraintAnnotations.next().columnNames().next());
-
-
-		table.moveUniqueConstraint(0, 1);
-		uniqueConstraints = table.uniqueConstraints();
-		assertEquals("BAZ", uniqueConstraints.next().columnNames().next());
-		assertEquals("BAR", uniqueConstraints.next().columnNames().next());
-		assertEquals("FOO", uniqueConstraints.next().columnNames().next());
-
-		uniqueConstraintAnnotations = tableAnnotation.uniqueConstraints();
-		assertEquals("BAZ", uniqueConstraintAnnotations.next().columnNames().next());
-		assertEquals("BAR", uniqueConstraintAnnotations.next().columnNames().next());
-		assertEquals("FOO", uniqueConstraintAnnotations.next().columnNames().next());
-	}
-	
-	public void testUpdateUniqueConstraints() throws Exception {
-		createTestEntityWithTable();
-		addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
-
-		Table table = getJavaEntity().getTable();
-		JavaResourcePersistentType typeResource = getJpaProject().getJavaResourcePersistentType(FULLY_QUALIFIED_TYPE_NAME);
-		TableAnnotation tableAnnotation = (TableAnnotation) typeResource.getSupportingAnnotation(JPA.TABLE);
-	
-		tableAnnotation.addUniqueConstraint(0).addColumnName("FOO");
-		tableAnnotation.addUniqueConstraint(1).addColumnName("BAR");
-		tableAnnotation.addUniqueConstraint(2).addColumnName("BAZ");
-
-		
-		ListIterator<UniqueConstraint> uniqueConstraints = table.uniqueConstraints();
-		assertEquals("FOO", uniqueConstraints.next().columnNames().next());
-		assertEquals("BAR", uniqueConstraints.next().columnNames().next());
-		assertEquals("BAZ", uniqueConstraints.next().columnNames().next());
-		assertFalse(uniqueConstraints.hasNext());
-		
-		tableAnnotation.moveUniqueConstraint(2, 0);
-		uniqueConstraints = table.uniqueConstraints();
-		assertEquals("BAR", uniqueConstraints.next().columnNames().next());
-		assertEquals("BAZ", uniqueConstraints.next().columnNames().next());
-		assertEquals("FOO", uniqueConstraints.next().columnNames().next());
-		assertFalse(uniqueConstraints.hasNext());
-	
-		tableAnnotation.moveUniqueConstraint(0, 1);
-		uniqueConstraints = table.uniqueConstraints();
-		assertEquals("BAZ", uniqueConstraints.next().columnNames().next());
-		assertEquals("BAR", uniqueConstraints.next().columnNames().next());
-		assertEquals("FOO", uniqueConstraints.next().columnNames().next());
-		assertFalse(uniqueConstraints.hasNext());
-	
-		tableAnnotation.removeUniqueConstraint(1);
-		uniqueConstraints = table.uniqueConstraints();
-		assertEquals("BAZ", uniqueConstraints.next().columnNames().next());
-		assertEquals("FOO", uniqueConstraints.next().columnNames().next());
-		assertFalse(uniqueConstraints.hasNext());
-	
-		tableAnnotation.removeUniqueConstraint(1);
-		uniqueConstraints = table.uniqueConstraints();
-		assertEquals("BAZ", uniqueConstraints.next().columnNames().next());
-		assertFalse(uniqueConstraints.hasNext());
-		
-		tableAnnotation.removeUniqueConstraint(0);
-		uniqueConstraints = table.uniqueConstraints();
-		assertFalse(uniqueConstraints.hasNext());
-	}
-	
-	public void testAbstractEntityGetDefaultNameTablePerClassInheritance() throws Exception {
-		createAbstractTestEntity();
-		createTestSubType();
-		
-		addXmlClassRef(PACKAGE_NAME + ".AnnotationTestTypeChild");
-		addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
-		
-		ListIterator<ClassRef> specifiedClassRefs = getPersistenceUnit().specifiedClassRefs();
-		Entity concreteEntity = (Entity) specifiedClassRefs.next().getJavaPersistentType().getMapping();
-		assertEquals("AnnotationTestTypeChild", concreteEntity.getName());
-		
-		Entity abstractEntity = (Entity) specifiedClassRefs.next().getJavaPersistentType().getMapping();
-		assertEquals(TYPE_NAME, abstractEntity.getName());
-		
-		
-		assertEquals(InheritanceType.TABLE_PER_CLASS, abstractEntity.getSpecifiedInheritanceStrategy());
-		assertEquals(null, concreteEntity.getSpecifiedInheritanceStrategy());
-		assertEquals(InheritanceType.TABLE_PER_CLASS, concreteEntity.getDefaultInheritanceStrategy());
-		
-		
-		assertEquals(null, abstractEntity.getTable().getDefaultName());
-		assertEquals(null, abstractEntity.getTable().getDefaultCatalog());
-		assertEquals(null, abstractEntity.getTable().getDefaultSchema());
-		
-		
-		assertEquals("AnnotationTestTypeChild", concreteEntity.getTable().getDefaultName());
-		assertEquals(null, concreteEntity.getTable().getDefaultCatalog());
-		assertEquals(null, concreteEntity.getTable().getDefaultSchema());
-	}
-
-}
diff --git a/jpa/tests/org.eclipse.jpt.core.tests/src/org/eclipse/jpt/core/tests/internal/context/java/JavaTransientMappingTests.java b/jpa/tests/org.eclipse.jpt.core.tests/src/org/eclipse/jpt/core/tests/internal/context/java/JavaTransientMappingTests.java
deleted file mode 100644
index 6f2ca90..0000000
--- a/jpa/tests/org.eclipse.jpt.core.tests/src/org/eclipse/jpt/core/tests/internal/context/java/JavaTransientMappingTests.java
+++ /dev/null
@@ -1,248 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2008 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.core.tests.internal.context.java;
-
-import java.util.Iterator;
-import org.eclipse.jdt.core.ICompilationUnit;
-import org.eclipse.jpt.core.MappingKeys;
-import org.eclipse.jpt.core.context.BasicMapping;
-import org.eclipse.jpt.core.context.EmbeddedIdMapping;
-import org.eclipse.jpt.core.context.EmbeddedMapping;
-import org.eclipse.jpt.core.context.IdMapping;
-import org.eclipse.jpt.core.context.ManyToManyMapping;
-import org.eclipse.jpt.core.context.ManyToOneMapping;
-import org.eclipse.jpt.core.context.OneToManyMapping;
-import org.eclipse.jpt.core.context.OneToOneMapping;
-import org.eclipse.jpt.core.context.PersistentAttribute;
-import org.eclipse.jpt.core.context.TransientMapping;
-import org.eclipse.jpt.core.context.VersionMapping;
-import org.eclipse.jpt.core.resource.java.BasicAnnotation;
-import org.eclipse.jpt.core.resource.java.EmbeddedAnnotation;
-import org.eclipse.jpt.core.resource.java.EmbeddedIdAnnotation;
-import org.eclipse.jpt.core.resource.java.IdAnnotation;
-import org.eclipse.jpt.core.resource.java.JPA;
-import org.eclipse.jpt.core.resource.java.JavaResourcePersistentAttribute;
-import org.eclipse.jpt.core.resource.java.JavaResourcePersistentType;
-import org.eclipse.jpt.core.resource.java.ManyToManyAnnotation;
-import org.eclipse.jpt.core.resource.java.ManyToOneAnnotation;
-import org.eclipse.jpt.core.resource.java.OneToManyAnnotation;
-import org.eclipse.jpt.core.resource.java.OneToOneAnnotation;
-import org.eclipse.jpt.core.resource.java.TransientAnnotation;
-import org.eclipse.jpt.core.resource.java.VersionAnnotation;
-import org.eclipse.jpt.core.tests.internal.context.ContextModelTestCase;
-import org.eclipse.jpt.utility.internal.iterators.ArrayIterator;
-
-public class JavaTransientMappingTests extends ContextModelTestCase
-{
-
-	private ICompilationUnit createTestEntityWithTransientMapping() throws Exception {
-		return this.createTestType(new DefaultAnnotationWriter() {
-			@Override
-			public Iterator<String> imports() {
-				return new ArrayIterator<String>(JPA.ENTITY, JPA.TRANSIENT);
-			}
-			@Override
-			public void appendTypeAnnotationTo(StringBuilder sb) {
-				sb.append("@Entity").append(CR);
-			}
-			
-			@Override
-			public void appendIdFieldAnnotationTo(StringBuilder sb) {
-				sb.append("@Transient").append(CR);
-			}
-		});
-	}
-		
-	public JavaTransientMappingTests(String name) {
-		super(name);
-	}
-	
-	public void testMorphToBasicMapping() throws Exception {
-		createTestEntityWithTransientMapping();
-		addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
-		
-		PersistentAttribute persistentAttribute = getJavaPersistentType().attributes().next();
-		TransientMapping transientMapping = (TransientMapping) persistentAttribute.getMapping();
-		assertFalse(transientMapping.isDefault());
-		
-		persistentAttribute.setSpecifiedMappingKey(MappingKeys.BASIC_ATTRIBUTE_MAPPING_KEY);
-		assertTrue(persistentAttribute.getMapping() instanceof BasicMapping);
-		assertFalse(persistentAttribute.getMapping().isDefault());
-		
-		JavaResourcePersistentType typeResource = getJpaProject().getJavaResourcePersistentType(FULLY_QUALIFIED_TYPE_NAME);
-		JavaResourcePersistentAttribute attributeResource = typeResource.persistableAttributes().next();
-		assertNull(attributeResource.getMappingAnnotation(TransientAnnotation.ANNOTATION_NAME));
-		assertNotNull(attributeResource.getMappingAnnotation(BasicAnnotation.ANNOTATION_NAME));
-	}
-	
-	public void testMorphToDefault() throws Exception {
-		createTestEntityWithTransientMapping();
-		addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
-		
-		PersistentAttribute persistentAttribute = getJavaPersistentType().attributes().next();
-		TransientMapping transientMapping = (TransientMapping) persistentAttribute.getMapping();
-		assertFalse(transientMapping.isDefault());
-		
-		persistentAttribute.setSpecifiedMappingKey(MappingKeys.NULL_ATTRIBUTE_MAPPING_KEY);
-		assertTrue(persistentAttribute.getMapping() instanceof BasicMapping);
-		assertTrue(persistentAttribute.getMapping().isDefault());
-		
-		JavaResourcePersistentType typeResource = getJpaProject().getJavaResourcePersistentType(FULLY_QUALIFIED_TYPE_NAME);
-		JavaResourcePersistentAttribute attributeResource = typeResource.persistableAttributes().next();
-		assertNull(attributeResource.getMappingAnnotation(TransientAnnotation.ANNOTATION_NAME));
-	}
-	
-	public void testMorphToVersionMapping() throws Exception {
-		createTestEntityWithTransientMapping();
-		addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
-		
-		PersistentAttribute persistentAttribute = getJavaPersistentType().attributes().next();
-		TransientMapping transientMapping = (TransientMapping) persistentAttribute.getMapping();
-		assertFalse(transientMapping.isDefault());
-		
-		persistentAttribute.setSpecifiedMappingKey(MappingKeys.VERSION_ATTRIBUTE_MAPPING_KEY);
-		assertTrue(persistentAttribute.getMapping() instanceof VersionMapping);
-	
-		JavaResourcePersistentType typeResource = getJpaProject().getJavaResourcePersistentType(FULLY_QUALIFIED_TYPE_NAME);
-		JavaResourcePersistentAttribute attributeResource = typeResource.persistableAttributes().next();
-		assertNull(attributeResource.getMappingAnnotation(TransientAnnotation.ANNOTATION_NAME));
-		assertNotNull(attributeResource.getMappingAnnotation(VersionAnnotation.ANNOTATION_NAME));
-	}
-	
-	public void testMorphToEmbeddedMapping() throws Exception {
-		createTestEntityWithTransientMapping();
-		addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
-		
-		PersistentAttribute persistentAttribute = getJavaPersistentType().attributes().next();
-		TransientMapping transientMapping = (TransientMapping) persistentAttribute.getMapping();
-		assertFalse(transientMapping.isDefault());
-		
-		persistentAttribute.setSpecifiedMappingKey(MappingKeys.EMBEDDED_ATTRIBUTE_MAPPING_KEY);
-		assertTrue(persistentAttribute.getMapping() instanceof EmbeddedMapping);
-		
-		JavaResourcePersistentType typeResource = getJpaProject().getJavaResourcePersistentType(FULLY_QUALIFIED_TYPE_NAME);
-		JavaResourcePersistentAttribute attributeResource = typeResource.persistableAttributes().next();
-		assertNull(attributeResource.getMappingAnnotation(TransientAnnotation.ANNOTATION_NAME));
-		assertNotNull(attributeResource.getMappingAnnotation(EmbeddedAnnotation.ANNOTATION_NAME));
-	}
-	
-	public void testMorphToIdMapping() throws Exception {
-		createTestEntityWithTransientMapping();
-		addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
-		
-		PersistentAttribute persistentAttribute = getJavaPersistentType().attributes().next();
-		TransientMapping transientMapping = (TransientMapping) persistentAttribute.getMapping();
-		assertFalse(transientMapping.isDefault());
-		
-		persistentAttribute.setSpecifiedMappingKey(MappingKeys.ID_ATTRIBUTE_MAPPING_KEY);
-		assertTrue(persistentAttribute.getMapping() instanceof IdMapping);
-		
-		JavaResourcePersistentType typeResource = getJpaProject().getJavaResourcePersistentType(FULLY_QUALIFIED_TYPE_NAME);
-		JavaResourcePersistentAttribute attributeResource = typeResource.persistableAttributes().next();
-		assertNull(attributeResource.getMappingAnnotation(TransientAnnotation.ANNOTATION_NAME));
-		assertNotNull(attributeResource.getMappingAnnotation(IdAnnotation.ANNOTATION_NAME));
-	}
-	
-	public void testMorphToEmbeddedIdMapping() throws Exception {
-		createTestEntityWithTransientMapping();
-		addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
-		
-		PersistentAttribute persistentAttribute = getJavaPersistentType().attributes().next();
-		TransientMapping transientMapping = (TransientMapping) persistentAttribute.getMapping();
-		assertFalse(transientMapping.isDefault());
-		
-		persistentAttribute.setSpecifiedMappingKey(MappingKeys.EMBEDDED_ID_ATTRIBUTE_MAPPING_KEY);
-		assertTrue(persistentAttribute.getMapping() instanceof EmbeddedIdMapping);
-		
-		JavaResourcePersistentType typeResource = getJpaProject().getJavaResourcePersistentType(FULLY_QUALIFIED_TYPE_NAME);
-		JavaResourcePersistentAttribute attributeResource = typeResource.persistableAttributes().next();
-		assertNull(attributeResource.getMappingAnnotation(TransientAnnotation.ANNOTATION_NAME));
-		assertNotNull(attributeResource.getMappingAnnotation(EmbeddedIdAnnotation.ANNOTATION_NAME));
-	}
-	
-	public void testMorphToOneToOneMapping() throws Exception {
-		createTestEntityWithTransientMapping();
-		addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
-		
-		PersistentAttribute persistentAttribute = getJavaPersistentType().attributes().next();
-		TransientMapping transientMapping = (TransientMapping) persistentAttribute.getMapping();
-		assertFalse(transientMapping.isDefault());
-		
-		persistentAttribute.setSpecifiedMappingKey(MappingKeys.ONE_TO_ONE_ATTRIBUTE_MAPPING_KEY);
-		assertTrue(persistentAttribute.getMapping() instanceof OneToOneMapping);
-		
-		JavaResourcePersistentType typeResource = getJpaProject().getJavaResourcePersistentType(FULLY_QUALIFIED_TYPE_NAME);
-		JavaResourcePersistentAttribute attributeResource = typeResource.persistableAttributes().next();
-		assertNull(attributeResource.getMappingAnnotation(TransientAnnotation.ANNOTATION_NAME));
-		assertNotNull(attributeResource.getMappingAnnotation(OneToOneAnnotation.ANNOTATION_NAME));
-	}
-	
-	public void testMorphToOneToManyMapping() throws Exception {
-		createTestEntityWithTransientMapping();
-		addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
-		
-		PersistentAttribute persistentAttribute = getJavaPersistentType().attributes().next();
-		TransientMapping transientMapping = (TransientMapping) persistentAttribute.getMapping();
-		assertFalse(transientMapping.isDefault());
-		
-		persistentAttribute.setSpecifiedMappingKey(MappingKeys.ONE_TO_MANY_ATTRIBUTE_MAPPING_KEY);
-		assertTrue(persistentAttribute.getMapping() instanceof OneToManyMapping);
-		
-		JavaResourcePersistentType typeResource = getJpaProject().getJavaResourcePersistentType(FULLY_QUALIFIED_TYPE_NAME);
-		JavaResourcePersistentAttribute attributeResource = typeResource.persistableAttributes().next();
-		assertNull(attributeResource.getMappingAnnotation(TransientAnnotation.ANNOTATION_NAME));
-		assertNotNull(attributeResource.getMappingAnnotation(OneToManyAnnotation.ANNOTATION_NAME));
-	}
-	
-	public void testMorphToManyToOneMapping() throws Exception {
-		createTestEntityWithTransientMapping();
-		addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
-		
-		PersistentAttribute persistentAttribute = getJavaPersistentType().attributes().next();
-		TransientMapping transientMapping = (TransientMapping) persistentAttribute.getMapping();
-		assertFalse(transientMapping.isDefault());
-		
-		persistentAttribute.setSpecifiedMappingKey(MappingKeys.MANY_TO_ONE_ATTRIBUTE_MAPPING_KEY);
-		assertTrue(persistentAttribute.getMapping() instanceof ManyToOneMapping);
-		
-		JavaResourcePersistentType typeResource = getJpaProject().getJavaResourcePersistentType(FULLY_QUALIFIED_TYPE_NAME);
-		JavaResourcePersistentAttribute attributeResource = typeResource.persistableAttributes().next();
-		assertNull(attributeResource.getMappingAnnotation(TransientAnnotation.ANNOTATION_NAME));
-		assertNotNull(attributeResource.getMappingAnnotation(ManyToOneAnnotation.ANNOTATION_NAME));
-	}
-	
-	public void testMorphToManyToManyMapping() throws Exception {
-		createTestEntityWithTransientMapping();
-		addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
-		
-		PersistentAttribute persistentAttribute = getJavaPersistentType().attributes().next();
-		TransientMapping transientMapping = (TransientMapping) persistentAttribute.getMapping();
-		assertFalse(transientMapping.isDefault());
-		
-		persistentAttribute.setSpecifiedMappingKey(MappingKeys.MANY_TO_MANY_ATTRIBUTE_MAPPING_KEY);
-		assertTrue(persistentAttribute.getMapping() instanceof ManyToManyMapping);
-		
-		JavaResourcePersistentType typeResource = getJpaProject().getJavaResourcePersistentType(FULLY_QUALIFIED_TYPE_NAME);
-		JavaResourcePersistentAttribute attributeResource = typeResource.persistableAttributes().next();
-		assertNull(attributeResource.getMappingAnnotation(TransientAnnotation.ANNOTATION_NAME));
-		assertNotNull(attributeResource.getMappingAnnotation(ManyToManyAnnotation.ANNOTATION_NAME));
-	}
-	
-	public void testTransientMapping() throws Exception {
-		createTestEntityWithTransientMapping();
-		addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
-		
-		PersistentAttribute persistentAttribute = getJavaPersistentType().attributes().next();
-		TransientMapping transientMapping = (TransientMapping) persistentAttribute.getSpecifiedMapping();
-
-		assertNotNull(transientMapping);
-	}
-
-}
diff --git a/jpa/tests/org.eclipse.jpt.core.tests/src/org/eclipse/jpt/core/tests/internal/context/java/JavaVersionMappingTests.java b/jpa/tests/org.eclipse.jpt.core.tests/src/org/eclipse/jpt/core/tests/internal/context/java/JavaVersionMappingTests.java
deleted file mode 100644
index a8b6f2c..0000000
--- a/jpa/tests/org.eclipse.jpt.core.tests/src/org/eclipse/jpt/core/tests/internal/context/java/JavaVersionMappingTests.java
+++ /dev/null
@@ -1,398 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2008 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.core.tests.internal.context.java;
-
-import java.util.Iterator;
-import org.eclipse.jdt.core.ICompilationUnit;
-import org.eclipse.jpt.core.MappingKeys;
-import org.eclipse.jpt.core.context.BasicMapping;
-import org.eclipse.jpt.core.context.Converter;
-import org.eclipse.jpt.core.context.EmbeddedIdMapping;
-import org.eclipse.jpt.core.context.EmbeddedMapping;
-import org.eclipse.jpt.core.context.IdMapping;
-import org.eclipse.jpt.core.context.ManyToManyMapping;
-import org.eclipse.jpt.core.context.ManyToOneMapping;
-import org.eclipse.jpt.core.context.OneToManyMapping;
-import org.eclipse.jpt.core.context.OneToOneMapping;
-import org.eclipse.jpt.core.context.PersistentAttribute;
-import org.eclipse.jpt.core.context.TemporalConverter;
-import org.eclipse.jpt.core.context.TemporalType;
-import org.eclipse.jpt.core.context.TransientMapping;
-import org.eclipse.jpt.core.context.VersionMapping;
-import org.eclipse.jpt.core.resource.java.BasicAnnotation;
-import org.eclipse.jpt.core.resource.java.ColumnAnnotation;
-import org.eclipse.jpt.core.resource.java.EmbeddedAnnotation;
-import org.eclipse.jpt.core.resource.java.EmbeddedIdAnnotation;
-import org.eclipse.jpt.core.resource.java.IdAnnotation;
-import org.eclipse.jpt.core.resource.java.JPA;
-import org.eclipse.jpt.core.resource.java.JavaResourcePersistentAttribute;
-import org.eclipse.jpt.core.resource.java.JavaResourcePersistentType;
-import org.eclipse.jpt.core.resource.java.ManyToManyAnnotation;
-import org.eclipse.jpt.core.resource.java.ManyToOneAnnotation;
-import org.eclipse.jpt.core.resource.java.OneToManyAnnotation;
-import org.eclipse.jpt.core.resource.java.OneToOneAnnotation;
-import org.eclipse.jpt.core.resource.java.TemporalAnnotation;
-import org.eclipse.jpt.core.resource.java.TransientAnnotation;
-import org.eclipse.jpt.core.resource.java.VersionAnnotation;
-import org.eclipse.jpt.core.tests.internal.context.ContextModelTestCase;
-import org.eclipse.jpt.utility.internal.iterators.ArrayIterator;
-
-public class JavaVersionMappingTests extends ContextModelTestCase
-{
-	private ICompilationUnit createTestEntityWithVersionMapping() throws Exception {	
-		return this.createTestType(new DefaultAnnotationWriter() {
-			@Override
-			public Iterator<String> imports() {
-				return new ArrayIterator<String>(JPA.ENTITY, JPA.VERSION);
-			}
-			@Override
-			public void appendTypeAnnotationTo(StringBuilder sb) {
-				sb.append("@Entity").append(CR);
-			}
-			
-			@Override
-			public void appendIdFieldAnnotationTo(StringBuilder sb) {
-				sb.append("@Version").append(CR);
-			}
-		});
-	}
-
-	private ICompilationUnit createTestEntityWithTemporal() throws Exception {	
-		return this.createTestType(new DefaultAnnotationWriter() {
-			@Override
-			public Iterator<String> imports() {
-				return new ArrayIterator<String>(JPA.ENTITY, JPA.VERSION, JPA.TEMPORAL, JPA.TEMPORAL_TYPE);
-			}
-			@Override
-			public void appendTypeAnnotationTo(StringBuilder sb) {
-				sb.append("@Entity").append(CR);
-			}
-			
-			@Override
-			public void appendIdFieldAnnotationTo(StringBuilder sb) {
-				sb.append("@Version").append(CR);
-				sb.append("@Temporal(TemporalType.TIMESTAMP)").append(CR);
-			}
-		});
-	}
-		
-	public JavaVersionMappingTests(String name) {
-		super(name);
-	}
-		
-	public void testMorphToBasicMapping() throws Exception {
-		createTestEntityWithVersionMapping();
-		addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
-		
-		PersistentAttribute persistentAttribute = getJavaPersistentType().attributes().next();
-		VersionMapping versionMapping = (VersionMapping) persistentAttribute.getMapping();
-		assertFalse(versionMapping.isDefault());
-		versionMapping.getColumn().setSpecifiedName("FOO");
-		versionMapping.setSpecifiedConverter(Converter.TEMPORAL_CONVERTER);
-		((TemporalConverter) versionMapping.getSpecifiedConverter()).setTemporalType(TemporalType.TIME);
-		assertFalse(versionMapping.isDefault());
-		
-		persistentAttribute.setSpecifiedMappingKey(MappingKeys.BASIC_ATTRIBUTE_MAPPING_KEY);
-		assertEquals("FOO", ((BasicMapping) persistentAttribute.getMapping()).getColumn().getSpecifiedName());
-		assertEquals(TemporalType.TIME, ((TemporalConverter) ((BasicMapping) persistentAttribute.getMapping()).getConverter()).getTemporalType());
-		
-		JavaResourcePersistentType typeResource = getJpaProject().getJavaResourcePersistentType(FULLY_QUALIFIED_TYPE_NAME);
-		JavaResourcePersistentAttribute attributeResource = typeResource.persistableAttributes().next();
-		assertNull(attributeResource.getMappingAnnotation(VersionAnnotation.ANNOTATION_NAME));
-		assertNotNull(attributeResource.getMappingAnnotation(BasicAnnotation.ANNOTATION_NAME));
-		assertNotNull(attributeResource.getSupportingAnnotation(ColumnAnnotation.ANNOTATION_NAME));
-		assertNotNull(attributeResource.getSupportingAnnotation(TemporalAnnotation.ANNOTATION_NAME));
-	}
-	
-	public void testMorphToDefault() throws Exception {
-		createTestEntityWithVersionMapping();
-		addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
-		
-		PersistentAttribute persistentAttribute = getJavaPersistentType().attributes().next();
-		VersionMapping versionMapping = (VersionMapping) persistentAttribute.getMapping();
-		assertFalse(versionMapping.isDefault());
-		versionMapping.getColumn().setSpecifiedName("FOO");
-		versionMapping.setSpecifiedConverter(Converter.TEMPORAL_CONVERTER);
-		((TemporalConverter) versionMapping.getSpecifiedConverter()).setTemporalType(TemporalType.TIME);
-		assertFalse(versionMapping.isDefault());
-		
-		persistentAttribute.setSpecifiedMappingKey(MappingKeys.NULL_ATTRIBUTE_MAPPING_KEY);
-		assertEquals("FOO", ((BasicMapping) persistentAttribute.getMapping()).getColumn().getSpecifiedName());
-		assertEquals(TemporalType.TIME, ((TemporalConverter) ((BasicMapping) persistentAttribute.getMapping()).getConverter()).getTemporalType());
-		
-		JavaResourcePersistentType typeResource = getJpaProject().getJavaResourcePersistentType(FULLY_QUALIFIED_TYPE_NAME);
-		JavaResourcePersistentAttribute attributeResource = typeResource.persistableAttributes().next();
-		assertNull(attributeResource.getMappingAnnotation(VersionAnnotation.ANNOTATION_NAME));
-		assertNotNull(attributeResource.getSupportingAnnotation(ColumnAnnotation.ANNOTATION_NAME));
-		assertNotNull(attributeResource.getSupportingAnnotation(TemporalAnnotation.ANNOTATION_NAME));
-	}
-	
-	public void testMorphToIdMapping() throws Exception {
-		createTestEntityWithVersionMapping();
-		addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
-		
-		PersistentAttribute persistentAttribute = getJavaPersistentType().attributes().next();
-		VersionMapping versionMapping = (VersionMapping) persistentAttribute.getMapping();
-		assertFalse(versionMapping.isDefault());
-		versionMapping.getColumn().setSpecifiedName("FOO");
-		versionMapping.setSpecifiedConverter(Converter.TEMPORAL_CONVERTER);
-		((TemporalConverter) versionMapping.getSpecifiedConverter()).setTemporalType(TemporalType.TIME);
-		assertFalse(versionMapping.isDefault());
-		
-		persistentAttribute.setSpecifiedMappingKey(MappingKeys.ID_ATTRIBUTE_MAPPING_KEY);
-		assertEquals("FOO", ((IdMapping) persistentAttribute.getMapping()).getColumn().getSpecifiedName());
-		assertEquals(TemporalType.TIME, ((TemporalConverter) ((IdMapping) persistentAttribute.getMapping()).getConverter()).getTemporalType());
-		
-		JavaResourcePersistentType typeResource = getJpaProject().getJavaResourcePersistentType(FULLY_QUALIFIED_TYPE_NAME);
-		JavaResourcePersistentAttribute attributeResource = typeResource.persistableAttributes().next();
-		assertNull(attributeResource.getMappingAnnotation(VersionAnnotation.ANNOTATION_NAME));
-		assertNotNull(attributeResource.getMappingAnnotation(IdAnnotation.ANNOTATION_NAME));
-		assertNotNull(attributeResource.getSupportingAnnotation(ColumnAnnotation.ANNOTATION_NAME));
-		assertNotNull(attributeResource.getSupportingAnnotation(TemporalAnnotation.ANNOTATION_NAME));
-	}
-	
-	public void testMorphToEmbeddedMapping() throws Exception {
-		createTestEntityWithVersionMapping();
-		addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
-		
-		PersistentAttribute persistentAttribute = getJavaPersistentType().attributes().next();
-		VersionMapping versionMapping = (VersionMapping) persistentAttribute.getMapping();
-		assertFalse(versionMapping.isDefault());
-		versionMapping.getColumn().setSpecifiedName("FOO");
-		versionMapping.setSpecifiedConverter(Converter.TEMPORAL_CONVERTER);
-		((TemporalConverter) versionMapping.getSpecifiedConverter()).setTemporalType(TemporalType.TIME);
-		assertFalse(versionMapping.isDefault());
-		
-		persistentAttribute.setSpecifiedMappingKey(MappingKeys.EMBEDDED_ATTRIBUTE_MAPPING_KEY);
-		assertTrue(persistentAttribute.getMapping() instanceof EmbeddedMapping);
-		
-		JavaResourcePersistentType typeResource = getJpaProject().getJavaResourcePersistentType(FULLY_QUALIFIED_TYPE_NAME);
-		JavaResourcePersistentAttribute attributeResource = typeResource.persistableAttributes().next();
-		assertNull(attributeResource.getMappingAnnotation(VersionAnnotation.ANNOTATION_NAME));
-		assertNotNull(attributeResource.getMappingAnnotation(EmbeddedAnnotation.ANNOTATION_NAME));
-		assertNull(attributeResource.getSupportingAnnotation(ColumnAnnotation.ANNOTATION_NAME));
-		assertNull(attributeResource.getSupportingAnnotation(TemporalAnnotation.ANNOTATION_NAME));
-	}
-	
-	public void testMorphToTransientMapping() throws Exception {
-		createTestEntityWithVersionMapping();
-		addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
-		
-		PersistentAttribute persistentAttribute = getJavaPersistentType().attributes().next();
-		VersionMapping versionMapping = (VersionMapping) persistentAttribute.getMapping();
-		assertFalse(versionMapping.isDefault());
-		versionMapping.getColumn().setSpecifiedName("FOO");
-		versionMapping.setSpecifiedConverter(Converter.TEMPORAL_CONVERTER);
-		((TemporalConverter) versionMapping.getSpecifiedConverter()).setTemporalType(TemporalType.TIME);
-		assertFalse(versionMapping.isDefault());
-
-		persistentAttribute.setSpecifiedMappingKey(MappingKeys.TRANSIENT_ATTRIBUTE_MAPPING_KEY);
-		assertTrue(persistentAttribute.getMapping() instanceof TransientMapping);
-		
-		JavaResourcePersistentType typeResource = getJpaProject().getJavaResourcePersistentType(FULLY_QUALIFIED_TYPE_NAME);
-		JavaResourcePersistentAttribute attributeResource = typeResource.persistableAttributes().next();
-		assertNull(attributeResource.getMappingAnnotation(VersionAnnotation.ANNOTATION_NAME));
-		assertNotNull(attributeResource.getMappingAnnotation(TransientAnnotation.ANNOTATION_NAME));
-		assertNull(attributeResource.getSupportingAnnotation(ColumnAnnotation.ANNOTATION_NAME));
-		assertNull(attributeResource.getSupportingAnnotation(TemporalAnnotation.ANNOTATION_NAME));
-	}
-	
-	public void testMorphToEmbeddedIdMapping() throws Exception {
-		createTestEntityWithVersionMapping();
-		addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
-		
-		PersistentAttribute persistentAttribute = getJavaPersistentType().attributes().next();
-		VersionMapping versionMapping = (VersionMapping) persistentAttribute.getMapping();
-		assertFalse(versionMapping.isDefault());
-		versionMapping.getColumn().setSpecifiedName("FOO");
-		versionMapping.setSpecifiedConverter(Converter.TEMPORAL_CONVERTER);
-		((TemporalConverter) versionMapping.getSpecifiedConverter()).setTemporalType(TemporalType.TIME);
-		assertFalse(versionMapping.isDefault());
-
-		persistentAttribute.setSpecifiedMappingKey(MappingKeys.EMBEDDED_ID_ATTRIBUTE_MAPPING_KEY);
-		assertTrue(persistentAttribute.getMapping() instanceof EmbeddedIdMapping);
-		
-		JavaResourcePersistentType typeResource = getJpaProject().getJavaResourcePersistentType(FULLY_QUALIFIED_TYPE_NAME);
-		JavaResourcePersistentAttribute attributeResource = typeResource.persistableAttributes().next();
-		assertNull(attributeResource.getMappingAnnotation(VersionAnnotation.ANNOTATION_NAME));
-		assertNotNull(attributeResource.getMappingAnnotation(EmbeddedIdAnnotation.ANNOTATION_NAME));
-		assertNull(attributeResource.getSupportingAnnotation(ColumnAnnotation.ANNOTATION_NAME));
-		assertNull(attributeResource.getSupportingAnnotation(TemporalAnnotation.ANNOTATION_NAME));
-	}
-	
-	public void testMorphToOneToOneMapping() throws Exception {
-		createTestEntityWithVersionMapping();
-		addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
-		
-		PersistentAttribute persistentAttribute = getJavaPersistentType().attributes().next();
-		VersionMapping versionMapping = (VersionMapping) persistentAttribute.getMapping();
-		assertFalse(versionMapping.isDefault());
-		versionMapping.getColumn().setSpecifiedName("FOO");
-		versionMapping.setSpecifiedConverter(Converter.TEMPORAL_CONVERTER);
-		((TemporalConverter) versionMapping.getSpecifiedConverter()).setTemporalType(TemporalType.TIME);
-		assertFalse(versionMapping.isDefault());
-
-		persistentAttribute.setSpecifiedMappingKey(MappingKeys.ONE_TO_ONE_ATTRIBUTE_MAPPING_KEY);
-		assertTrue(persistentAttribute.getMapping() instanceof OneToOneMapping);
-		
-		JavaResourcePersistentType typeResource = getJpaProject().getJavaResourcePersistentType(FULLY_QUALIFIED_TYPE_NAME);
-		JavaResourcePersistentAttribute attributeResource = typeResource.persistableAttributes().next();
-		assertNull(attributeResource.getMappingAnnotation(VersionAnnotation.ANNOTATION_NAME));
-		assertNotNull(attributeResource.getMappingAnnotation(OneToOneAnnotation.ANNOTATION_NAME));
-		assertNull(attributeResource.getSupportingAnnotation(ColumnAnnotation.ANNOTATION_NAME));
-		assertNull(attributeResource.getSupportingAnnotation(TemporalAnnotation.ANNOTATION_NAME));
-	}
-	
-	public void testMorphToOneToManyMapping() throws Exception {
-		createTestEntityWithVersionMapping();
-		addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
-		
-		PersistentAttribute persistentAttribute = getJavaPersistentType().attributes().next();
-		VersionMapping versionMapping = (VersionMapping) persistentAttribute.getMapping();
-		assertFalse(versionMapping.isDefault());
-		versionMapping.getColumn().setSpecifiedName("FOO");
-		versionMapping.setSpecifiedConverter(Converter.TEMPORAL_CONVERTER);
-		((TemporalConverter) versionMapping.getSpecifiedConverter()).setTemporalType(TemporalType.TIME);
-		assertFalse(versionMapping.isDefault());
-
-		persistentAttribute.setSpecifiedMappingKey(MappingKeys.ONE_TO_MANY_ATTRIBUTE_MAPPING_KEY);
-		assertTrue(persistentAttribute.getMapping() instanceof OneToManyMapping);
-		
-		JavaResourcePersistentType typeResource = getJpaProject().getJavaResourcePersistentType(FULLY_QUALIFIED_TYPE_NAME);
-		JavaResourcePersistentAttribute attributeResource = typeResource.persistableAttributes().next();
-		assertNull(attributeResource.getMappingAnnotation(VersionAnnotation.ANNOTATION_NAME));
-		assertNotNull(attributeResource.getMappingAnnotation(OneToManyAnnotation.ANNOTATION_NAME));
-		assertNull(attributeResource.getSupportingAnnotation(ColumnAnnotation.ANNOTATION_NAME));
-		assertNull(attributeResource.getSupportingAnnotation(TemporalAnnotation.ANNOTATION_NAME));
-	}
-	
-	public void testMorphToManyToOneMapping() throws Exception {
-		createTestEntityWithVersionMapping();
-		addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
-		
-		PersistentAttribute persistentAttribute = getJavaPersistentType().attributes().next();
-		VersionMapping versionMapping = (VersionMapping) persistentAttribute.getMapping();
-		assertFalse(versionMapping.isDefault());
-		versionMapping.getColumn().setSpecifiedName("FOO");
-		versionMapping.setSpecifiedConverter(Converter.TEMPORAL_CONVERTER);
-		((TemporalConverter) versionMapping.getSpecifiedConverter()).setTemporalType(TemporalType.TIME);
-		assertFalse(versionMapping.isDefault());
-
-		persistentAttribute.setSpecifiedMappingKey(MappingKeys.MANY_TO_ONE_ATTRIBUTE_MAPPING_KEY);
-		assertTrue(persistentAttribute.getMapping() instanceof ManyToOneMapping);
-		
-		JavaResourcePersistentType typeResource = getJpaProject().getJavaResourcePersistentType(FULLY_QUALIFIED_TYPE_NAME);
-		JavaResourcePersistentAttribute attributeResource = typeResource.persistableAttributes().next();
-		assertNull(attributeResource.getMappingAnnotation(VersionAnnotation.ANNOTATION_NAME));
-		assertNotNull(attributeResource.getMappingAnnotation(ManyToOneAnnotation.ANNOTATION_NAME));
-		assertNull(attributeResource.getSupportingAnnotation(ColumnAnnotation.ANNOTATION_NAME));
-		assertNull(attributeResource.getSupportingAnnotation(TemporalAnnotation.ANNOTATION_NAME));
-	}
-	
-	public void testMorphToManyToManyMapping() throws Exception {
-		createTestEntityWithVersionMapping();
-		addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
-		
-		PersistentAttribute persistentAttribute = getJavaPersistentType().attributes().next();
-		VersionMapping versionMapping = (VersionMapping) persistentAttribute.getMapping();
-		assertFalse(versionMapping.isDefault());
-		versionMapping.getColumn().setSpecifiedName("FOO");
-		versionMapping.setSpecifiedConverter(Converter.TEMPORAL_CONVERTER);
-		((TemporalConverter) versionMapping.getSpecifiedConverter()).setTemporalType(TemporalType.TIME);
-		assertFalse(versionMapping.isDefault());
-
-		persistentAttribute.setSpecifiedMappingKey(MappingKeys.MANY_TO_MANY_ATTRIBUTE_MAPPING_KEY);
-		assertTrue(persistentAttribute.getMapping() instanceof ManyToManyMapping);
-		
-		JavaResourcePersistentType typeResource = getJpaProject().getJavaResourcePersistentType(FULLY_QUALIFIED_TYPE_NAME);
-		JavaResourcePersistentAttribute attributeResource = typeResource.persistableAttributes().next();
-		assertNull(attributeResource.getMappingAnnotation(VersionAnnotation.ANNOTATION_NAME));
-		assertNotNull(attributeResource.getMappingAnnotation(ManyToManyAnnotation.ANNOTATION_NAME));
-		assertNull(attributeResource.getSupportingAnnotation(ColumnAnnotation.ANNOTATION_NAME));
-		assertNull(attributeResource.getSupportingAnnotation(TemporalAnnotation.ANNOTATION_NAME));
-	}
-	
-	
-	public void testGetTemporal() throws Exception {
-		createTestEntityWithTemporal();
-		addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
-		
-		PersistentAttribute persistentAttribute = getJavaPersistentType().attributes().next();
-		VersionMapping versionMapping = (VersionMapping) persistentAttribute.getSpecifiedMapping();
-
-		assertEquals(TemporalType.TIMESTAMP, ((TemporalConverter) versionMapping.getConverter()).getTemporalType());
-	}
-
-	public void testSetTemporal() throws Exception {
-		createTestEntityWithVersionMapping();
-		addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
-		
-		PersistentAttribute persistentAttribute = getJavaPersistentType().attributes().next();
-		VersionMapping versionMapping = (VersionMapping) persistentAttribute.getSpecifiedMapping();
-		assertEquals(Converter.NO_CONVERTER, versionMapping.getConverter().getType());
-		
-		versionMapping.setSpecifiedConverter(Converter.TEMPORAL_CONVERTER);
-		((TemporalConverter) versionMapping.getConverter()).setTemporalType(TemporalType.TIME);
-		
-		JavaResourcePersistentType typeResource = getJpaProject().getJavaResourcePersistentType(FULLY_QUALIFIED_TYPE_NAME);
-		JavaResourcePersistentAttribute attributeResource = typeResource.persistableAttributes().next();
-		TemporalAnnotation temporal = (TemporalAnnotation) attributeResource.getSupportingAnnotation(TemporalAnnotation.ANNOTATION_NAME);
-		
-		assertEquals(org.eclipse.jpt.core.resource.java.TemporalType.TIME, temporal.getValue());
-		
-		versionMapping.setSpecifiedConverter(null);
-		assertNull(attributeResource.getSupportingAnnotation(TemporalAnnotation.ANNOTATION_NAME));
-	}
-	
-	public void testGetTemporalUpdatesFromResourceModelChange() throws Exception {
-		createTestEntityWithVersionMapping();
-		addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
-		
-		PersistentAttribute persistentAttribute = getJavaPersistentType().attributes().next();
-		VersionMapping versionMapping = (VersionMapping) persistentAttribute.getSpecifiedMapping();
-
-		assertEquals(Converter.NO_CONVERTER, versionMapping.getConverter().getType());
-		
-		
-		JavaResourcePersistentType typeResource = getJpaProject().getJavaResourcePersistentType(FULLY_QUALIFIED_TYPE_NAME);
-		JavaResourcePersistentAttribute attributeResource = typeResource.persistableAttributes().next();
-		TemporalAnnotation temporal = (TemporalAnnotation) attributeResource.addSupportingAnnotation(TemporalAnnotation.ANNOTATION_NAME);
-		temporal.setValue(org.eclipse.jpt.core.resource.java.TemporalType.DATE);
-		
-		assertEquals(TemporalType.DATE, ((TemporalConverter) versionMapping.getConverter()).getTemporalType());
-		
-		attributeResource.removeSupportingAnnotation(TemporalAnnotation.ANNOTATION_NAME);
-		
-		assertEquals(Converter.NO_CONVERTER, versionMapping.getConverter().getType());
-		assertFalse(versionMapping.isDefault());
-		assertSame(versionMapping, persistentAttribute.getSpecifiedMapping());
-	}
-	
-	public void testGetColumn() throws Exception {
-		createTestEntityWithVersionMapping();
-		addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
-		
-		PersistentAttribute persistentAttribute = getJavaPersistentType().attributes().next();
-		VersionMapping versionMapping = (VersionMapping) persistentAttribute.getSpecifiedMapping();
-		
-		assertNull(versionMapping.getColumn().getSpecifiedName());
-		assertEquals("id", versionMapping.getColumn().getName());
-		
-		JavaResourcePersistentType typeResource = getJpaProject().getJavaResourcePersistentType(FULLY_QUALIFIED_TYPE_NAME);
-		JavaResourcePersistentAttribute attributeResource = typeResource.persistableAttributes().next();
-		ColumnAnnotation column = (ColumnAnnotation) attributeResource.addSupportingAnnotation(JPA.COLUMN);
-		column.setName("foo");
-		
-		assertEquals("foo", versionMapping.getColumn().getSpecifiedName());
-		assertEquals("foo", versionMapping.getColumn().getName());
-		assertEquals("id", versionMapping.getColumn().getDefaultName());
-	}
-	
-}
diff --git a/jpa/tests/org.eclipse.jpt.core.tests/src/org/eclipse/jpt/core/tests/internal/context/java/JptCoreContextJavaModelTests.java b/jpa/tests/org.eclipse.jpt.core.tests/src/org/eclipse/jpt/core/tests/internal/context/java/JptCoreContextJavaModelTests.java
deleted file mode 100644
index 2777d46..0000000
--- a/jpa/tests/org.eclipse.jpt.core.tests/src/org/eclipse/jpt/core/tests/internal/context/java/JptCoreContextJavaModelTests.java
+++ /dev/null
@@ -1,58 +0,0 @@
-/*******************************************************************************
- *  Copyright (c) 2007, 2009 Oracle. 
- *  All rights reserved.  This program and the accompanying materials 
- *  are made available under the terms of the Eclipse Public License v1.0 
- *  which accompanies this distribution, and is available at 
- *  http://www.eclipse.org/legal/epl-v10.html
- *  
- *  Contributors: 
- *  	Oracle - initial API and implementation
- *******************************************************************************/
-package org.eclipse.jpt.core.tests.internal.context.java;
-
-import junit.framework.Test;
-import junit.framework.TestCase;
-import junit.framework.TestSuite;
-
-public class JptCoreContextJavaModelTests extends TestCase
-{
-	public static Test suite() {
-		TestSuite suite = new TestSuite(JptCoreContextJavaModelTests.class.getName());
-		suite.addTestSuite(JavaAssociationOverrideTests.class);
-		suite.addTestSuite(JavaAttributeOverrideTests.class);
-		suite.addTestSuite(JavaBasicMappingTests.class);
-		suite.addTestSuite(JavaColumnTests.class);
-		suite.addTestSuite(JavaDiscriminatorColumnTests.class);
-		suite.addTestSuite(JavaEmbeddableTests.class);
-		suite.addTestSuite(JavaEmbeddedIdMappingTests.class);
-		suite.addTestSuite(JavaEmbeddedMappingTests.class);
-		suite.addTestSuite(JavaEntityTests.class);
-		suite.addTestSuite(JavaGeneratedValueTests.class);
-		suite.addTestSuite(JavaIdMappingTests.class);
-		suite.addTestSuite(JavaJoinColumnTests.class);	
-		suite.addTestSuite(JavaJoinTableTests.class);		
-		suite.addTestSuite(JavaMappedSuperclassTests.class);
-		suite.addTestSuite(JavaManyToManyMappingTests.class);
-		suite.addTestSuite(JavaManyToOneMappingTests.class);
-		suite.addTestSuite(JavaNamedQueryTests.class);
-		suite.addTestSuite(JavaNamedNativeQueryTests.class);
-		suite.addTestSuite(JavaQueryHintTests.class);
-		suite.addTestSuite(JavaOneToManyMappingTests.class);
-		suite.addTestSuite(JavaOneToOneMappingTests.class);
-		suite.addTestSuite(GenericJavaPersistentTypeTests.class);
-		suite.addTestSuite(GenericJavaPersistentAttributeTests.class);
-		suite.addTestSuite(JavaPrimaryKeyJoinColumnTests.class);
-		suite.addTestSuite(JavaSecondaryTableTests.class);
-		suite.addTestSuite(JavaSequenceGeneratorTests.class);
-		suite.addTestSuite(JavaTableGeneratorTests.class);
-		suite.addTestSuite(JavaTableTests.class);
-		suite.addTestSuite(JavaTransientMappingTests.class);
-		suite.addTestSuite(JavaVersionMappingTests.class);
-		return suite;
-	}
-
-	private JptCoreContextJavaModelTests() {
-		super();
-		throw new UnsupportedOperationException();
-	}
-}
diff --git a/jpa/tests/org.eclipse.jpt.core.tests/src/org/eclipse/jpt/core/tests/internal/context/orm/EntityMappingsTests.java b/jpa/tests/org.eclipse.jpt.core.tests/src/org/eclipse/jpt/core/tests/internal/context/orm/EntityMappingsTests.java
deleted file mode 100644
index bbd9f54..0000000
--- a/jpa/tests/org.eclipse.jpt.core.tests/src/org/eclipse/jpt/core/tests/internal/context/orm/EntityMappingsTests.java
+++ /dev/null
@@ -1,1066 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.core.tests.internal.context.orm;
-
-import java.util.ListIterator;
-import org.eclipse.jpt.core.JptCorePlugin;
-import org.eclipse.jpt.core.MappingKeys;
-import org.eclipse.jpt.core.context.AccessType;
-import org.eclipse.jpt.core.context.SequenceGenerator;
-import org.eclipse.jpt.core.context.TableGenerator;
-import org.eclipse.jpt.core.context.orm.OrmNamedNativeQuery;
-import org.eclipse.jpt.core.context.orm.OrmNamedQuery;
-import org.eclipse.jpt.core.context.orm.OrmSequenceGenerator;
-import org.eclipse.jpt.core.context.orm.OrmTableGenerator;
-import org.eclipse.jpt.core.resource.orm.OrmFactory;
-import org.eclipse.jpt.core.resource.orm.XmlEmbeddable;
-import org.eclipse.jpt.core.resource.orm.XmlEntity;
-import org.eclipse.jpt.core.resource.orm.XmlMappedSuperclass;
-import org.eclipse.jpt.core.resource.orm.XmlSequenceGenerator;
-import org.eclipse.jpt.core.resource.orm.XmlTableGenerator;
-import org.eclipse.jpt.core.resource.persistence.PersistenceFactory;
-import org.eclipse.jpt.core.resource.persistence.XmlMappingFileRef;
-import org.eclipse.jpt.core.tests.internal.context.ContextModelTestCase;
-
-@SuppressWarnings("nls")
-public class EntityMappingsTests extends ContextModelTestCase
-{
-	public EntityMappingsTests(String name) {
-		super(name);
-	}	
-	
-	@Override
-	protected void setUp() throws Exception {
-		super.setUp();
-		XmlMappingFileRef mappingFileRef = PersistenceFactory.eINSTANCE.createXmlMappingFileRef();
-		mappingFileRef.setFileName(JptCorePlugin.DEFAULT_ORM_XML_FILE_PATH);
-		getXmlPersistenceUnit().getMappingFiles().add(mappingFileRef);
-		getPersistenceXmlResource().save(null);
-	}
-	
-	public void testGetVersion() throws Exception {
-		assertEquals("1.0", getEntityMappings().getVersion());
-	}
-	
-	public void testUpdateDescription() throws Exception {
-		assertNull(getEntityMappings().getDescription());
-		assertNull(getXmlEntityMappings().getDescription());
-		
-		//set description in the resource model, verify context model updated
-		getXmlEntityMappings().setDescription("newDescription");
-		assertEquals("newDescription", getEntityMappings().getDescription());
-		assertEquals("newDescription", getXmlEntityMappings().getDescription());
-	
-		//set description to null in the resource model
-		getXmlEntityMappings().setDescription(null);
-		assertNull(getEntityMappings().getDescription());
-		assertNull(getXmlEntityMappings().getDescription());
-	}
-	
-	public void testModifyDescription() throws Exception {
-		assertNull(getEntityMappings().getDescription());
-		assertNull(getXmlEntityMappings().getDescription());
-		
-		//set description in the context model, verify resource model modified
-		getEntityMappings().setDescription("newDescription");
-		assertEquals("newDescription", getEntityMappings().getDescription());
-		assertEquals("newDescription", getXmlEntityMappings().getDescription());
-		
-		//set description to null in the context model
-		getEntityMappings().setDescription(null);
-		assertNull(getEntityMappings().getDescription());
-		assertNull(getXmlEntityMappings().getDescription());
-	}
-	
-	public void testUpdatePackage() throws Exception {
-		assertNull(getEntityMappings().getPackage());
-		assertNull(getXmlEntityMappings().getPackage());
-		
-		//set package in the resource model, verify context model updated
-		getXmlEntityMappings().setPackage("foo.model");
-		assertEquals("foo.model", getEntityMappings().getPackage());
-		assertEquals("foo.model", getXmlEntityMappings().getPackage());
-		
-		//set package to null in the resource model
-		getXmlEntityMappings().setPackage(null);
-		assertNull(getEntityMappings().getPackage());
-		assertNull(getXmlEntityMappings().getPackage());
-	}
-	
-	public void testModifyPackage() throws Exception {
-		assertNull(getEntityMappings().getPackage());
-		assertNull(getXmlEntityMappings().getPackage());
-		
-		//set package in the context model, verify resource model modified
-		getEntityMappings().setPackage("foo.model");
-		assertEquals("foo.model", getEntityMappings().getPackage());
-		assertEquals("foo.model", getXmlEntityMappings().getPackage());
-
-		//set package to null in the context model
-		getEntityMappings().setPackage(null);
-		assertNull(getEntityMappings().getPackage());
-		assertNull(getXmlEntityMappings().getPackage());
-	}
-
-	public void testUpdateSpecifiedSchema() throws Exception {
-		assertNull(getEntityMappings().getSpecifiedSchema());
-		assertNull(getXmlEntityMappings().getSchema());
-		
-		//set schema in the resource model, verify context model updated
-		getXmlEntityMappings().setSchema("MY_SCHEMA");
-		assertEquals("MY_SCHEMA", getEntityMappings().getSpecifiedSchema());
-		assertEquals("MY_SCHEMA", getXmlEntityMappings().getSchema());
-
-		//set schema to null in the resource model
-		getXmlEntityMappings().setSchema(null);
-		assertNull(getEntityMappings().getSpecifiedSchema());
-		assertNull(getXmlEntityMappings().getSchema());
-	}
-	
-	public void testModifySpecifiedSchema() throws Exception {
-		assertNull(getEntityMappings().getSpecifiedSchema());
-		assertNull(getXmlEntityMappings().getSchema());
-		
-		//set schema in the context model, verify resource model modified
-		getEntityMappings().setSpecifiedSchema("MY_SCHEMA");
-		assertEquals("MY_SCHEMA", getEntityMappings().getSpecifiedSchema());
-		assertEquals("MY_SCHEMA", getXmlEntityMappings().getSchema());
-
-		//set schema to null in the context model
-		getEntityMappings().setSpecifiedSchema(null);
-		assertNull(getEntityMappings().getSpecifiedSchema());
-		assertNull(getXmlEntityMappings().getSchema());
-	}
-
-	public void testUpdateSpecifiedCatalog() throws Exception {
-		assertNull(getEntityMappings().getSpecifiedCatalog());
-		assertNull(getXmlEntityMappings().getCatalog());
-		
-		//set catalog in the resource model, verify context model updated
-		getXmlEntityMappings().setCatalog("MY_CATALOG");
-		assertEquals("MY_CATALOG", getEntityMappings().getSpecifiedCatalog());
-		assertEquals("MY_CATALOG", getXmlEntityMappings().getCatalog());
-
-		//set catalog to null in the resource model
-		getXmlEntityMappings().setCatalog(null);
-		assertNull(getEntityMappings().getSpecifiedCatalog());
-		assertNull(getXmlEntityMappings().getCatalog());
-	}
-	
-	public void testUpdateDefaultSchema() throws Exception {
-		assertNull(getEntityMappings().getDefaultSchema());
-		assertNull(getEntityMappings().getSpecifiedSchema());
-		assertNull(getXmlEntityMappings().getSchema());
-	
-		getXmlEntityMappings().setPersistenceUnitMetadata(OrmFactory.eINSTANCE.createXmlPersistenceUnitMetadata());
-		org.eclipse.jpt.core.resource.orm.XmlPersistenceUnitDefaults persistenceUnitDefaults = OrmFactory.eINSTANCE.createXmlPersistenceUnitDefaults();
-		getXmlEntityMappings().getPersistenceUnitMetadata().setPersistenceUnitDefaults(persistenceUnitDefaults);
-		persistenceUnitDefaults.setSchema("MY_SCHEMA");
-		assertEquals("MY_SCHEMA", getEntityMappings().getDefaultSchema());
-		assertNull(getEntityMappings().getSpecifiedSchema());
-		assertNull(getXmlEntityMappings().getSchema());
-		assertEquals("MY_SCHEMA", getXmlEntityMappings().getPersistenceUnitMetadata().getPersistenceUnitDefaults().getSchema());
-	
-		persistenceUnitDefaults.setSchema(null);
-		assertNull(getEntityMappings().getDefaultSchema());
-		assertNull(getEntityMappings().getSpecifiedSchema());
-		assertNull(getXmlEntityMappings().getSchema());
-		assertNull(getXmlEntityMappings().getPersistenceUnitMetadata().getPersistenceUnitDefaults().getSchema());
-	}
-	
-	public void testUpdateSchema() throws Exception {
-		assertNull(getEntityMappings().getDefaultSchema());
-		assertNull(getEntityMappings().getSchema());
-		assertNull(getEntityMappings().getSpecifiedSchema());
-		assertNull(getXmlEntityMappings().getSchema());
-	
-		getXmlEntityMappings().setSchema("MY_SCHEMA");
-		assertNull(getEntityMappings().getDefaultSchema());
-		assertEquals("MY_SCHEMA", getEntityMappings().getSchema());
-		assertEquals("MY_SCHEMA", getEntityMappings().getSpecifiedSchema());
-		assertEquals("MY_SCHEMA", getXmlEntityMappings().getSchema());
-		
-		getXmlEntityMappings().setSchema(null);
-		assertNull(getEntityMappings().getDefaultSchema());
-		assertNull(getEntityMappings().getSchema());
-		assertNull(getEntityMappings().getSpecifiedSchema());
-		assertNull(getXmlEntityMappings().getSchema());
-
-		getEntityMappings().getPersistenceUnitMetadata().getPersistenceUnitDefaults().setSpecifiedSchema("DEFAULT_SCHEMA");
-		assertEquals("DEFAULT_SCHEMA", getEntityMappings().getDefaultSchema());
-		assertEquals("DEFAULT_SCHEMA", getEntityMappings().getSchema());
-		assertNull(getEntityMappings().getSpecifiedSchema());
-		assertNull(getXmlEntityMappings().getSchema());
-		
-		getEntityMappings().getPersistenceUnitMetadata().getPersistenceUnitDefaults().setSpecifiedSchema(null);
-		assertNull(getEntityMappings().getDefaultSchema());
-		assertNull(getEntityMappings().getSchema());
-		assertNull(getEntityMappings().getSpecifiedSchema());
-		assertNull(getXmlEntityMappings().getSchema());
-	}	
-	
-	public void testModifySpecifiedCatalog() throws Exception {
-		assertNull(getEntityMappings().getSpecifiedCatalog());
-		assertNull(getXmlEntityMappings().getCatalog());
-		
-		//set catalog in the context model, verify resource model modified
-		getEntityMappings().setSpecifiedCatalog("MY_CATALOG");
-		assertEquals("MY_CATALOG", getEntityMappings().getSpecifiedCatalog());
-		assertEquals("MY_CATALOG", getXmlEntityMappings().getCatalog());
-		
-		//set catalog to null in the context model
-		getEntityMappings().setSpecifiedCatalog(null);
-		assertNull(getEntityMappings().getSpecifiedCatalog());
-		assertNull(getXmlEntityMappings().getCatalog());
-	}
-	
-	public void testUpdateDefaultCatalog() throws Exception {
-		assertNull(getEntityMappings().getDefaultCatalog());
-		assertNull(getEntityMappings().getSpecifiedCatalog());
-		assertNull(getXmlEntityMappings().getCatalog());
-	
-		getXmlEntityMappings().setPersistenceUnitMetadata(OrmFactory.eINSTANCE.createXmlPersistenceUnitMetadata());
-		org.eclipse.jpt.core.resource.orm.XmlPersistenceUnitDefaults persistenceUnitDefaults = OrmFactory.eINSTANCE.createXmlPersistenceUnitDefaults();
-		getXmlEntityMappings().getPersistenceUnitMetadata().setPersistenceUnitDefaults(persistenceUnitDefaults);
-		persistenceUnitDefaults.setCatalog("MY_CATALOG");
-		assertEquals("MY_CATALOG", getEntityMappings().getDefaultCatalog());
-		assertNull(getEntityMappings().getSpecifiedCatalog());
-		assertNull(getXmlEntityMappings().getCatalog());
-		assertEquals("MY_CATALOG", getXmlEntityMappings().getPersistenceUnitMetadata().getPersistenceUnitDefaults().getCatalog());
-	
-		persistenceUnitDefaults.setCatalog(null);
-		assertNull(getEntityMappings().getDefaultCatalog());
-		assertNull(getEntityMappings().getSpecifiedCatalog());
-		assertNull(getXmlEntityMappings().getCatalog());
-		assertNull(getXmlEntityMappings().getPersistenceUnitMetadata().getPersistenceUnitDefaults().getCatalog());
-	}
-	
-	public void testUpdateCatalog() throws Exception {
-		assertNull(getEntityMappings().getDefaultCatalog());
-		assertNull(getEntityMappings().getCatalog());
-		assertNull(getEntityMappings().getSpecifiedCatalog());
-		assertNull(getXmlEntityMappings().getCatalog());
-	
-		getXmlEntityMappings().setCatalog("MY_CATALOG");
-		assertNull(getEntityMappings().getDefaultCatalog());
-		assertEquals("MY_CATALOG", getEntityMappings().getCatalog());
-		assertEquals("MY_CATALOG", getEntityMappings().getSpecifiedCatalog());
-		assertEquals("MY_CATALOG", getXmlEntityMappings().getCatalog());
-		
-		getXmlEntityMappings().setCatalog(null);
-		assertNull(getEntityMappings().getDefaultCatalog());
-		assertNull(getEntityMappings().getCatalog());
-		assertNull(getEntityMappings().getSpecifiedCatalog());
-		assertNull(getXmlEntityMappings().getCatalog());
-
-		getEntityMappings().getPersistenceUnitMetadata().getPersistenceUnitDefaults().setSpecifiedCatalog("DEFAULT_CATALOG");
-		assertEquals("DEFAULT_CATALOG", getEntityMappings().getDefaultCatalog());
-		assertEquals("DEFAULT_CATALOG", getEntityMappings().getCatalog());
-		assertNull(getEntityMappings().getSpecifiedCatalog());
-		assertNull(getXmlEntityMappings().getCatalog());
-		
-		getEntityMappings().getPersistenceUnitMetadata().getPersistenceUnitDefaults().setSpecifiedCatalog(null);
-		assertNull(getEntityMappings().getDefaultCatalog());
-		assertNull(getEntityMappings().getCatalog());
-		assertNull(getEntityMappings().getSpecifiedCatalog());
-		assertNull(getXmlEntityMappings().getCatalog());
-	}	
-
-	public void testUpdateSpecifiedAccess() throws Exception {
-		assertNull(getEntityMappings().getSpecifiedAccess());
-		assertNull(getXmlEntityMappings().getAccess());
-		
-		//set access in the resource model, verify context model updated
-		getXmlEntityMappings().setAccess(org.eclipse.jpt.core.resource.orm.AccessType.PROPERTY);
-		assertEquals(AccessType.PROPERTY, getEntityMappings().getSpecifiedAccess());
-		assertEquals(org.eclipse.jpt.core.resource.orm.AccessType.PROPERTY, getXmlEntityMappings().getAccess());
-		
-		//set access to null in the resource model
-		getXmlEntityMappings().setAccess(null);
-		assertNull(getEntityMappings().getSpecifiedAccess());
-		assertNull(getXmlEntityMappings().getAccess());
-	}
-	
-	public void testModifySpecifiedAccess() throws Exception {
-		assertNull(getEntityMappings().getSpecifiedAccess());
-		assertNull(getXmlEntityMappings().getAccess());
-		
-		//set access in the context model, verify resource model modified
-		getEntityMappings().setSpecifiedAccess(AccessType.PROPERTY);
-		assertEquals(AccessType.PROPERTY, getEntityMappings().getSpecifiedAccess());
-		assertEquals(org.eclipse.jpt.core.resource.orm.AccessType.PROPERTY, getXmlEntityMappings().getAccess());
-		
-		//set access to null in the context model
-		getEntityMappings().setSpecifiedAccess(null);
-		assertNull(getEntityMappings().getSpecifiedAccess());
-		assertNull(getXmlEntityMappings().getAccess());
-	}
-	
-	public void testUpdateDefaultAccess() throws Exception {
-		assertNull(getEntityMappings().getDefaultAccess());
-		assertNull(getEntityMappings().getSpecifiedAccess());
-		assertNull(getXmlEntityMappings().getAccess());
-	
-		getXmlEntityMappings().setPersistenceUnitMetadata(OrmFactory.eINSTANCE.createXmlPersistenceUnitMetadata());
-		org.eclipse.jpt.core.resource.orm.XmlPersistenceUnitDefaults persistenceUnitDefaults = OrmFactory.eINSTANCE.createXmlPersistenceUnitDefaults();
-		getXmlEntityMappings().getPersistenceUnitMetadata().setPersistenceUnitDefaults(persistenceUnitDefaults);
-		persistenceUnitDefaults.setAccess(org.eclipse.jpt.core.resource.orm.AccessType.PROPERTY);
-		assertEquals(AccessType.PROPERTY, getEntityMappings().getDefaultAccess());
-		assertNull(getEntityMappings().getSpecifiedAccess());
-		assertNull(getXmlEntityMappings().getAccess());
-		
-		persistenceUnitDefaults.setAccess(org.eclipse.jpt.core.resource.orm.AccessType.FIELD);
-		assertEquals(AccessType.FIELD, getEntityMappings().getDefaultAccess());
-		assertNull(getEntityMappings().getSpecifiedAccess());
-		assertNull(getXmlEntityMappings().getAccess());
-		
-		persistenceUnitDefaults.setAccess(null);
-		assertNull(getEntityMappings().getDefaultAccess());
-		assertNull(getEntityMappings().getSpecifiedAccess());
-		assertNull(getXmlEntityMappings().getAccess());
-	}
-
-	public void testUpdateAccess() throws Exception {
-		assertNull(getEntityMappings().getAccess());
-		assertNull(getEntityMappings().getDefaultAccess());
-		assertNull(getEntityMappings().getSpecifiedAccess());
-		assertNull(getXmlEntityMappings().getAccess());
-	
-		getXmlEntityMappings().setAccess(org.eclipse.jpt.core.resource.orm.AccessType.FIELD);
-		assertNull(getEntityMappings().getDefaultAccess());
-		assertEquals(AccessType.FIELD, getEntityMappings().getAccess());
-		assertEquals(AccessType.FIELD, getEntityMappings().getSpecifiedAccess());
-		assertEquals(org.eclipse.jpt.core.resource.orm.AccessType.FIELD, getXmlEntityMappings().getAccess());
-		
-		getXmlEntityMappings().setAccess(null);
-		assertNull(getEntityMappings().getAccess());
-		assertNull(getEntityMappings().getDefaultAccess());
-		assertNull(getEntityMappings().getSpecifiedAccess());
-		assertNull(getXmlEntityMappings().getAccess());
-
-		getEntityMappings().getPersistenceUnitMetadata().getPersistenceUnitDefaults().setAccess(AccessType.FIELD);
-		assertEquals(AccessType.FIELD, getEntityMappings().getDefaultAccess());
-		assertEquals(AccessType.FIELD, getEntityMappings().getAccess());
-		assertNull(getEntityMappings().getSpecifiedAccess());
-		assertNull(getXmlEntityMappings().getAccess());
-		
-		getEntityMappings().getPersistenceUnitMetadata().getPersistenceUnitDefaults().setAccess(null);
-		assertNull(getEntityMappings().getDefaultAccess());
-		assertNull(getEntityMappings().getAccess());
-		assertNull(getEntityMappings().getSpecifiedAccess());
-		assertNull(getXmlEntityMappings().getAccess());
-	}	
-
-	
-	public void testUpdateOrmPersistentTypes() throws Exception {
-		assertFalse(getEntityMappings().persistentTypes().hasNext());
-		assertTrue(getXmlEntityMappings().getMappedSuperclasses().isEmpty());
-		assertTrue(getXmlEntityMappings().getEntities().isEmpty());
-		assertTrue(getXmlEntityMappings().getEmbeddables().isEmpty());
-		
-		//add embeddable in the resource model, verify context model updated
-		XmlEmbeddable embeddable = OrmFactory.eINSTANCE.createXmlEmbeddable();
-		getXmlEntityMappings().getEmbeddables().add(embeddable);
-		embeddable.setClassName("model.Foo");
-		assertTrue(getEntityMappings().persistentTypes().hasNext());
-		assertEquals("model.Foo", getEntityMappings().persistentTypes().next().getMapping().getClass_());
-		assertTrue(getXmlEntityMappings().getMappedSuperclasses().isEmpty());
-		assertTrue(getXmlEntityMappings().getEntities().isEmpty());
-		assertFalse(getXmlEntityMappings().getEmbeddables().isEmpty());
-		assertEquals("model.Foo", getXmlEntityMappings().getEmbeddables().get(0).getClassName());
-		
-		//add entity in the resource model, verify context model updated
-		XmlEntity entity = OrmFactory.eINSTANCE.createXmlEntity();
-		getXmlEntityMappings().getEntities().add(entity);
-		entity.setClassName("model.Foo2");
-		assertTrue(getEntityMappings().persistentTypes().hasNext());
-		assertEquals("model.Foo2", getEntityMappings().persistentTypes().next().getMapping().getClass_());
-		assertTrue(getXmlEntityMappings().getMappedSuperclasses().isEmpty());
-		assertFalse(getXmlEntityMappings().getEntities().isEmpty());
-		assertFalse(getXmlEntityMappings().getEmbeddables().isEmpty());
-		assertEquals("model.Foo2", getXmlEntityMappings().getEntities().get(0).getClassName());
-
-		//add mapped-superclass in the resource model, verify context model updated
-		XmlMappedSuperclass mappedSuperclass = OrmFactory.eINSTANCE.createXmlMappedSuperclass();
-		getXmlEntityMappings().getMappedSuperclasses().add(mappedSuperclass);
-		mappedSuperclass.setClassName("model.Foo3");
-		assertTrue(getEntityMappings().persistentTypes().hasNext());
-		assertEquals("model.Foo3", getEntityMappings().persistentTypes().next().getMapping().getClass_());
-		assertFalse(getXmlEntityMappings().getMappedSuperclasses().isEmpty());
-		assertFalse(getXmlEntityMappings().getEntities().isEmpty());
-		assertFalse(getXmlEntityMappings().getEmbeddables().isEmpty());
-		assertEquals("model.Foo3", getXmlEntityMappings().getMappedSuperclasses().get(0).getClassName());
-	}
-	
-	
-	public void testAddOrmPersistentType() throws Exception {
-		assertFalse(getEntityMappings().persistentTypes().hasNext());
-		assertTrue(getXmlEntityMappings().getMappedSuperclasses().isEmpty());
-		assertTrue(getXmlEntityMappings().getEntities().isEmpty());
-		assertTrue(getXmlEntityMappings().getEmbeddables().isEmpty());
-		
-		//add embeddable in the context model, verify resource model modified
-		getEntityMappings().addPersistentType(MappingKeys.EMBEDDABLE_TYPE_MAPPING_KEY, "model.Foo");
-		assertTrue(getEntityMappings().persistentTypes().hasNext());
-		assertEquals("model.Foo", getEntityMappings().persistentTypes().next().getMapping().getClass_());
-		assertEquals(MappingKeys.EMBEDDABLE_TYPE_MAPPING_KEY, getEntityMappings().persistentTypes().next().getMapping().getKey());
-		assertTrue(getXmlEntityMappings().getMappedSuperclasses().isEmpty());
-		assertTrue(getXmlEntityMappings().getEntities().isEmpty());
-		assertFalse(getXmlEntityMappings().getEmbeddables().isEmpty());
-		assertEquals("model.Foo", getXmlEntityMappings().getEmbeddables().get(0).getClassName());
-
-		//add entity in the context model, verify resource model modified
-		getEntityMappings().addPersistentType(MappingKeys.ENTITY_TYPE_MAPPING_KEY, "model.Foo2");
-		assertTrue(getEntityMappings().persistentTypes().hasNext());
-		assertEquals("model.Foo2", getEntityMappings().persistentTypes().next().getMapping().getClass_());
-		assertEquals(MappingKeys.ENTITY_TYPE_MAPPING_KEY, getEntityMappings().persistentTypes().next().getMapping().getKey());
-		assertTrue(getXmlEntityMappings().getMappedSuperclasses().isEmpty());
-		assertFalse(getXmlEntityMappings().getEntities().isEmpty());
-		assertFalse(getXmlEntityMappings().getEmbeddables().isEmpty());
-		assertEquals("model.Foo2", getXmlEntityMappings().getEntities().get(0).getClassName());
-
-		//add mapped-superclass in the context model, verify resource model modified
-		getEntityMappings().addPersistentType(MappingKeys.MAPPED_SUPERCLASS_TYPE_MAPPING_KEY, "model.Foo3");
-		assertTrue(getEntityMappings().persistentTypes().hasNext());
-		assertEquals("model.Foo3", getEntityMappings().persistentTypes().next().getMapping().getClass_());
-		assertEquals(MappingKeys.MAPPED_SUPERCLASS_TYPE_MAPPING_KEY, getEntityMappings().persistentTypes().next().getMapping().getKey());
-		assertFalse(getXmlEntityMappings().getMappedSuperclasses().isEmpty());
-		assertFalse(getXmlEntityMappings().getEntities().isEmpty());
-		assertFalse(getXmlEntityMappings().getEmbeddables().isEmpty());
-		assertEquals("model.Foo3", getXmlEntityMappings().getMappedSuperclasses().get(0).getClassName());
-	}
-	
-	public void testRemoveOrmPersistentType() throws Exception {
-		assertFalse(getEntityMappings().persistentTypes().hasNext());
-		assertTrue(getXmlEntityMappings().getMappedSuperclasses().isEmpty());
-		assertTrue(getXmlEntityMappings().getEntities().isEmpty());
-		assertTrue(getXmlEntityMappings().getEmbeddables().isEmpty());
-		
-		getEntityMappings().addPersistentType(MappingKeys.EMBEDDABLE_TYPE_MAPPING_KEY, "model.Foo");
-		getEntityMappings().addPersistentType(MappingKeys.ENTITY_TYPE_MAPPING_KEY, "model.Foo2");
-		getEntityMappings().addPersistentType(MappingKeys.MAPPED_SUPERCLASS_TYPE_MAPPING_KEY, "model.Foo3");
-		
-		//remove ormPersistentType from the context model, verify resource model modified
-		getEntityMappings().removePersistentType(1);
-		assertFalse(getXmlEntityMappings().getMappedSuperclasses().isEmpty());
-		assertTrue(getXmlEntityMappings().getEntities().isEmpty());
-		assertFalse(getXmlEntityMappings().getEmbeddables().isEmpty());
-		
-		getEntityMappings().removePersistentType(1);
-		assertFalse(getXmlEntityMappings().getMappedSuperclasses().isEmpty());
-		assertTrue(getXmlEntityMappings().getEntities().isEmpty());
-		assertTrue(getXmlEntityMappings().getEmbeddables().isEmpty());
-		
-		getEntityMappings().removePersistentType(0);
-		assertTrue(getXmlEntityMappings().getMappedSuperclasses().isEmpty());
-		assertTrue(getXmlEntityMappings().getEntities().isEmpty());
-		assertTrue(getXmlEntityMappings().getEmbeddables().isEmpty());
-	}
-	
-	public void testUpdateTableGenerators() throws Exception {
-		assertEquals(0, getEntityMappings().tableGeneratorsSize());
-		assertEquals(0, getXmlEntityMappings().getTableGenerators().size());
-		assertEquals(0, getEntityMappings().getPersistenceUnit().generatorsSize());
-		
-		XmlTableGenerator tableGeneratorResource = OrmFactory.eINSTANCE.createXmlTableGeneratorImpl();
-		getXmlEntityMappings().getTableGenerators().add(tableGeneratorResource);
-		tableGeneratorResource.setName("FOO");
-		
-		TableGenerator tableGenerator = getEntityMappings().tableGenerators().next();
-		assertEquals("FOO", tableGenerator.getName());
-		assertEquals(1, getEntityMappings().getPersistenceUnit().generatorsSize());
-		
-		XmlTableGenerator tableGeneratorResource2 = OrmFactory.eINSTANCE.createXmlTableGeneratorImpl();
-		getXmlEntityMappings().getTableGenerators().add(0, tableGeneratorResource2);
-		tableGeneratorResource2.setName("BAR");
-		
-		ListIterator<OrmTableGenerator> tableGenerators = getEntityMappings().tableGenerators();
-		assertEquals("BAR", tableGenerators.next().getName());
-		assertEquals("FOO", tableGenerators.next().getName());
-		assertFalse(tableGenerators.hasNext());
-		assertEquals(2, getEntityMappings().getPersistenceUnit().generatorsSize());
-		
-		XmlTableGenerator tableGeneratorResource3 = OrmFactory.eINSTANCE.createXmlTableGeneratorImpl();
-		getXmlEntityMappings().getTableGenerators().add(1, tableGeneratorResource3);
-		tableGeneratorResource3.setName("BAZ");
-		
-		tableGenerators = getEntityMappings().tableGenerators();
-		assertEquals("BAR", tableGenerators.next().getName());
-		assertEquals("BAZ", tableGenerators.next().getName());
-		assertEquals("FOO", tableGenerators.next().getName());
-		assertFalse(tableGenerators.hasNext());
-		assertEquals(3, getEntityMappings().getPersistenceUnit().generatorsSize());
-		
-		getXmlEntityMappings().getTableGenerators().move(2, 0);
-		tableGenerators = getEntityMappings().tableGenerators();
-		assertEquals("BAZ", tableGenerators.next().getName());
-		assertEquals("FOO", tableGenerators.next().getName());
-		assertEquals("BAR", tableGenerators.next().getName());
-		assertFalse(tableGenerators.hasNext());
-		assertEquals(3, getEntityMappings().getPersistenceUnit().generatorsSize());
-		
-		getXmlEntityMappings().getTableGenerators().remove(0);
-		tableGenerators = getEntityMappings().tableGenerators();
-		assertEquals("FOO", tableGenerators.next().getName());
-		assertEquals("BAR", tableGenerators.next().getName());
-		assertFalse(tableGenerators.hasNext());
-		assertEquals(2, getEntityMappings().getPersistenceUnit().generatorsSize());
-		
-		getXmlEntityMappings().getTableGenerators().remove(1);
-		tableGenerators = getEntityMappings().tableGenerators();
-		assertEquals("FOO", tableGenerators.next().getName());
-		assertFalse(tableGenerators.hasNext());
-		assertEquals(1, getEntityMappings().getPersistenceUnit().generatorsSize());
-		
-		getXmlEntityMappings().getTableGenerators().clear();
-		tableGenerators = getEntityMappings().tableGenerators();
-		assertFalse(tableGenerators.hasNext());
-		assertEquals(0, getEntityMappings().getPersistenceUnit().generatorsSize());
-	}
-	
-	public void testAddTableGenerator() throws Exception {
-		assertEquals(0, getEntityMappings().tableGeneratorsSize());
-		assertEquals(0, getXmlEntityMappings().getTableGenerators().size());
-		getEntityMappings().addTableGenerator(0).setName("FOO");
-		
-		assertEquals("FOO", getXmlEntityMappings().getTableGenerators().get(0).getName());
-		
-		getEntityMappings().addTableGenerator(0).setName("BAR");
-		assertEquals("BAR", getXmlEntityMappings().getTableGenerators().get(0).getName());
-		assertEquals("FOO", getXmlEntityMappings().getTableGenerators().get(1).getName());
-		assertEquals(2, getXmlEntityMappings().getTableGenerators().size());
-		
-		ListIterator<OrmTableGenerator> tableGenerators = getEntityMappings().tableGenerators();
-		assertEquals("BAR", tableGenerators.next().getName());
-		assertEquals("FOO", tableGenerators.next().getName());
-		assertFalse(tableGenerators.hasNext());
-	}
-	
-	public void testRemoveTableGenerator() throws Exception {
-		assertEquals(0, getEntityMappings().tableGeneratorsSize());
-		assertEquals(0, getXmlEntityMappings().getTableGenerators().size());
-		
-		TableGenerator tableGenerator = getEntityMappings().addTableGenerator(0);
-		tableGenerator.setName("FOO");
-		TableGenerator tableGenerator2 = getEntityMappings().addTableGenerator(1);
-		tableGenerator2.setName("BAR");
-		TableGenerator tableGenerator3 = getEntityMappings().addTableGenerator(2);
-		tableGenerator3.setName("BAZ");
-		assertEquals("FOO", getXmlEntityMappings().getTableGenerators().get(0).getName());
-		assertEquals("BAR", getXmlEntityMappings().getTableGenerators().get(1).getName());
-		assertEquals("BAZ", getXmlEntityMappings().getTableGenerators().get(2).getName());
-		assertEquals(3, getXmlEntityMappings().getTableGenerators().size());
-		
-		getEntityMappings().removeTableGenerator(0);
-		assertEquals("BAR", getXmlEntityMappings().getTableGenerators().get(0).getName());
-		assertEquals("BAZ", getXmlEntityMappings().getTableGenerators().get(1).getName());
-		
-		ListIterator<OrmTableGenerator> tableGenerators = getEntityMappings().tableGenerators();
-		OrmTableGenerator xmlTableGenerator = tableGenerators.next();
-		assertEquals("BAR", xmlTableGenerator.getName());
-		assertEquals(tableGenerator2, xmlTableGenerator);
-		xmlTableGenerator = tableGenerators.next();
-		assertEquals("BAZ", xmlTableGenerator.getName());
-		assertEquals(tableGenerator3, xmlTableGenerator);
-		assertFalse(tableGenerators.hasNext());
-
-		
-		getEntityMappings().removeTableGenerator(1);
-		assertEquals("BAR", getXmlEntityMappings().getTableGenerators().get(0).getName());
-		tableGenerators = getEntityMappings().tableGenerators();
-		xmlTableGenerator = tableGenerators.next();
-		assertEquals("BAR", xmlTableGenerator.getName());
-		assertEquals(tableGenerator2, xmlTableGenerator);
-		assertFalse(tableGenerators.hasNext());
-
-		
-		getEntityMappings().removeTableGenerator(0);
-		assertEquals(0, getXmlEntityMappings().getTableGenerators().size());
-		tableGenerators = getEntityMappings().tableGenerators();
-		assertFalse(tableGenerators.hasNext());		
-	}
-	
-	public void testMoveTableGenerator() throws Exception {
-		assertEquals(0, getEntityMappings().tableGeneratorsSize());
-		assertEquals(0, getXmlEntityMappings().getTableGenerators().size());
-		
-		TableGenerator tableGenerator = getEntityMappings().addTableGenerator(0);
-		tableGenerator.setName("FOO");
-		TableGenerator tableGenerator2 = getEntityMappings().addTableGenerator(1);
-		tableGenerator2.setName("BAR");
-		TableGenerator tableGenerator3 = getEntityMappings().addTableGenerator(2);
-		tableGenerator3.setName("BAZ");
-		assertEquals("FOO", getXmlEntityMappings().getTableGenerators().get(0).getName());
-		assertEquals("BAR", getXmlEntityMappings().getTableGenerators().get(1).getName());
-		assertEquals("BAZ", getXmlEntityMappings().getTableGenerators().get(2).getName());
-		assertEquals(3, getXmlEntityMappings().getTableGenerators().size());
-		
-		getEntityMappings().moveTableGenerator(2, 0);
-		assertEquals("BAR", getXmlEntityMappings().getTableGenerators().get(0).getName());
-		assertEquals("BAZ", getXmlEntityMappings().getTableGenerators().get(1).getName());
-		assertEquals("FOO", getXmlEntityMappings().getTableGenerators().get(2).getName());
-		assertEquals(3, getXmlEntityMappings().getTableGenerators().size());
-		
-		getEntityMappings().moveTableGenerator(0, 2);
-		assertEquals("FOO", getXmlEntityMappings().getTableGenerators().get(0).getName());
-		assertEquals("BAR", getXmlEntityMappings().getTableGenerators().get(1).getName());
-		assertEquals("BAZ", getXmlEntityMappings().getTableGenerators().get(2).getName());
-		assertEquals(3, getXmlEntityMappings().getTableGenerators().size());
-	}
-	
-	public void testTableGeneratorsSize() throws Exception {
-		assertEquals(0, getEntityMappings().tableGeneratorsSize());
-		assertEquals(0, getXmlEntityMappings().getTableGenerators().size());
-		
-		
-		TableGenerator tableGenerator = getEntityMappings().addTableGenerator(0);
-		tableGenerator.setName("FOO");
-		TableGenerator tableGenerator2 = getEntityMappings().addTableGenerator(1);
-		tableGenerator2.setName("BAR");
-		TableGenerator tableGenerator3 = getEntityMappings().addTableGenerator(2);
-		tableGenerator3.setName("BAZ");
-	
-		assertEquals(3, getEntityMappings().tableGeneratorsSize());
-		
-		getXmlEntityMappings().getTableGenerators().remove(0);
-		assertEquals(2, getEntityMappings().tableGeneratorsSize());
-	}
-
-	public void testUpdateSequenceGenerators() throws Exception {
-		assertEquals(0, getEntityMappings().sequenceGeneratorsSize());
-		assertEquals(0, getXmlEntityMappings().getSequenceGenerators().size());
-		assertEquals(0, getEntityMappings().getPersistenceUnit().generatorsSize());
-		
-		XmlSequenceGenerator sequenceGeneratorResource = OrmFactory.eINSTANCE.createXmlSequenceGeneratorImpl();
-		getXmlEntityMappings().getSequenceGenerators().add(sequenceGeneratorResource);
-		sequenceGeneratorResource.setName("FOO");
-		
-		SequenceGenerator sequenceGenerator = getEntityMappings().sequenceGenerators().next();
-		assertEquals("FOO", sequenceGenerator.getName());
-		assertEquals(1, getEntityMappings().getPersistenceUnit().generatorsSize());
-		
-		XmlSequenceGenerator sequenceGeneratorResource2 = OrmFactory.eINSTANCE.createXmlSequenceGeneratorImpl();
-		getXmlEntityMappings().getSequenceGenerators().add(0, sequenceGeneratorResource2);
-		sequenceGeneratorResource2.setName("BAR");
-		
-		ListIterator<OrmSequenceGenerator> sequenceGenerators = getEntityMappings().sequenceGenerators();
-		assertEquals("BAR", sequenceGenerators.next().getName());
-		assertEquals("FOO", sequenceGenerators.next().getName());
-		assertFalse(sequenceGenerators.hasNext());
-		assertEquals(2, getEntityMappings().getPersistenceUnit().generatorsSize());
-		
-		XmlSequenceGenerator sequenceGeneratorResource3 = OrmFactory.eINSTANCE.createXmlSequenceGeneratorImpl();
-		getXmlEntityMappings().getSequenceGenerators().add(1, sequenceGeneratorResource3);
-		sequenceGeneratorResource3.setName("BAZ");
-
-		sequenceGenerators = getEntityMappings().sequenceGenerators();
-		assertEquals("BAR", sequenceGenerators.next().getName());
-		assertEquals("BAZ", sequenceGenerators.next().getName());
-		assertEquals("FOO", sequenceGenerators.next().getName());
-		assertFalse(sequenceGenerators.hasNext());
-		assertEquals(3, getEntityMappings().getPersistenceUnit().generatorsSize());
-		
-		getXmlEntityMappings().getSequenceGenerators().move(2, 0);
-		sequenceGenerators = getEntityMappings().sequenceGenerators();
-		assertEquals("BAZ", sequenceGenerators.next().getName());
-		assertEquals("FOO", sequenceGenerators.next().getName());
-		assertEquals("BAR", sequenceGenerators.next().getName());
-		assertFalse(sequenceGenerators.hasNext());
-		
-		getXmlEntityMappings().getSequenceGenerators().remove(0);
-		sequenceGenerators = getEntityMappings().sequenceGenerators();
-		assertEquals("FOO", sequenceGenerators.next().getName());
-		assertEquals("BAR", sequenceGenerators.next().getName());
-		assertFalse(sequenceGenerators.hasNext());
-		assertEquals(2, getEntityMappings().getPersistenceUnit().generatorsSize());
-
-		getXmlEntityMappings().getSequenceGenerators().remove(1);
-		sequenceGenerators = getEntityMappings().sequenceGenerators();
-		assertEquals("FOO", sequenceGenerators.next().getName());
-		assertFalse(sequenceGenerators.hasNext());
-		assertEquals(1, getEntityMappings().getPersistenceUnit().generatorsSize());
-		
-		getXmlEntityMappings().getSequenceGenerators().clear();
-		sequenceGenerators = getEntityMappings().sequenceGenerators();
-		assertFalse(sequenceGenerators.hasNext());
-		assertEquals(0, getEntityMappings().getPersistenceUnit().generatorsSize());
-	}
-	
-	public void testAddSequenceGenerator() throws Exception {
-		assertEquals(0, getEntityMappings().sequenceGeneratorsSize());
-		assertEquals(0, getXmlEntityMappings().getSequenceGenerators().size());
-		
-		getEntityMappings().addSequenceGenerator(0).setName("FOO");
-		
-		assertEquals("FOO", getXmlEntityMappings().getSequenceGenerators().get(0).getName());
-		
-		getEntityMappings().addSequenceGenerator(0).setName("BAR");
-		assertEquals("BAR", getXmlEntityMappings().getSequenceGenerators().get(0).getName());
-		assertEquals("FOO", getXmlEntityMappings().getSequenceGenerators().get(1).getName());
-		assertEquals(2, getXmlEntityMappings().getSequenceGenerators().size());
-		
-		ListIterator<OrmSequenceGenerator> sequenceGenerators = getEntityMappings().sequenceGenerators();
-		assertEquals("BAR", sequenceGenerators.next().getName());
-		assertEquals("FOO", sequenceGenerators.next().getName());
-		assertFalse(sequenceGenerators.hasNext());
-	}
-	
-	public void testRemoveSequenceGenerator() throws Exception {
-		assertEquals(0, getEntityMappings().sequenceGeneratorsSize());
-		assertEquals(0, getXmlEntityMappings().getSequenceGenerators().size());
-		
-		SequenceGenerator sequenceGenerator = getEntityMappings().addSequenceGenerator(0);
-		sequenceGenerator.setName("FOO");
-		SequenceGenerator sequenceGenerator2 = getEntityMappings().addSequenceGenerator(1);
-		sequenceGenerator2.setName("BAR");
-		SequenceGenerator sequenceGenerator3 = getEntityMappings().addSequenceGenerator(2);
-		sequenceGenerator3.setName("BAZ");
-		assertEquals("FOO", getXmlEntityMappings().getSequenceGenerators().get(0).getName());
-		assertEquals("BAR", getXmlEntityMappings().getSequenceGenerators().get(1).getName());
-		assertEquals("BAZ", getXmlEntityMappings().getSequenceGenerators().get(2).getName());
-		assertEquals(3, getXmlEntityMappings().getSequenceGenerators().size());
-		
-		getEntityMappings().removeSequenceGenerator(0);
-		assertEquals("BAR", getXmlEntityMappings().getSequenceGenerators().get(0).getName());
-		assertEquals("BAZ", getXmlEntityMappings().getSequenceGenerators().get(1).getName());
-		
-		ListIterator<OrmSequenceGenerator> sequenceGenerators = getEntityMappings().sequenceGenerators();
-		SequenceGenerator xmlSequenceGenerator = sequenceGenerators.next();
-		assertEquals("BAR", xmlSequenceGenerator.getName());
-		assertEquals(sequenceGenerator2, xmlSequenceGenerator);
-		xmlSequenceGenerator = sequenceGenerators.next();
-		assertEquals("BAZ", xmlSequenceGenerator.getName());
-		assertEquals(sequenceGenerator3, xmlSequenceGenerator);
-		assertFalse(sequenceGenerators.hasNext());
-
-		
-		getEntityMappings().removeSequenceGenerator(1);
-		assertEquals("BAR", getXmlEntityMappings().getSequenceGenerators().get(0).getName());
-		sequenceGenerators = getEntityMappings().sequenceGenerators();
-		xmlSequenceGenerator = sequenceGenerators.next();
-		assertEquals("BAR", xmlSequenceGenerator.getName());
-		assertEquals(sequenceGenerator2, xmlSequenceGenerator);
-		assertFalse(sequenceGenerators.hasNext());
-
-		
-		getEntityMappings().removeSequenceGenerator(0);
-		assertEquals(0, getXmlEntityMappings().getSequenceGenerators().size());
-		sequenceGenerators = getEntityMappings().sequenceGenerators();
-		assertFalse(sequenceGenerators.hasNext());		
-	}
-	
-	public void testMoveSequenceGenerator() throws Exception {
-		assertEquals(0, getEntityMappings().sequenceGeneratorsSize());
-		assertEquals(0, getXmlEntityMappings().getSequenceGenerators().size());
-		
-		SequenceGenerator sequenceGenerator = getEntityMappings().addSequenceGenerator(0);
-		sequenceGenerator.setName("FOO");
-		SequenceGenerator sequenceGenerator2 = getEntityMappings().addSequenceGenerator(1);
-		sequenceGenerator2.setName("BAR");
-		SequenceGenerator sequenceGenerator3 = getEntityMappings().addSequenceGenerator(2);
-		sequenceGenerator3.setName("BAZ");
-		assertEquals("FOO", getXmlEntityMappings().getSequenceGenerators().get(0).getName());
-		assertEquals("BAR", getXmlEntityMappings().getSequenceGenerators().get(1).getName());
-		assertEquals("BAZ", getXmlEntityMappings().getSequenceGenerators().get(2).getName());
-		assertEquals(3, getXmlEntityMappings().getSequenceGenerators().size());
-		
-		getEntityMappings().moveSequenceGenerator(2, 0);
-		assertEquals("BAR", getXmlEntityMappings().getSequenceGenerators().get(0).getName());
-		assertEquals("BAZ", getXmlEntityMappings().getSequenceGenerators().get(1).getName());
-		assertEquals("FOO", getXmlEntityMappings().getSequenceGenerators().get(2).getName());
-		assertEquals(3, getXmlEntityMappings().getSequenceGenerators().size());
-		
-		getEntityMappings().moveSequenceGenerator(0, 2);
-		assertEquals("FOO", getXmlEntityMappings().getSequenceGenerators().get(0).getName());
-		assertEquals("BAR", getXmlEntityMappings().getSequenceGenerators().get(1).getName());
-		assertEquals("BAZ", getXmlEntityMappings().getSequenceGenerators().get(2).getName());
-		assertEquals(3, getXmlEntityMappings().getSequenceGenerators().size());
-		
-	}
-	
-	public void testSequenceGeneratorsSize() throws Exception {
-		assertEquals(0, getEntityMappings().sequenceGeneratorsSize());
-		assertEquals(0, getXmlEntityMappings().getSequenceGenerators().size());
-		
-		
-		SequenceGenerator sequenceGenerator = getEntityMappings().addSequenceGenerator(0);
-		sequenceGenerator.setName("FOO");
-		SequenceGenerator sequenceGenerator2 = getEntityMappings().addSequenceGenerator(1);
-		sequenceGenerator2.setName("BAR");
-		SequenceGenerator sequenceGenerator3 = getEntityMappings().addSequenceGenerator(2);
-		sequenceGenerator3.setName("BAZ");
-	
-		assertEquals(3, getEntityMappings().sequenceGeneratorsSize());
-		
-		getXmlEntityMappings().getSequenceGenerators().remove(0);
-		assertEquals(2, getEntityMappings().sequenceGeneratorsSize());
-	}
-
-	
-	public void testAddNamedQuery() throws Exception {
-		OrmNamedQuery namedQuery = getEntityMappings().addNamedQuery(0);
-		namedQuery.setName("FOO");
-				
-		assertEquals("FOO", getXmlEntityMappings().getNamedQueries().get(0).getName());
-		
-		OrmNamedQuery namedQuery2 = getEntityMappings().addNamedQuery(0);
-		namedQuery2.setName("BAR");
-		
-		assertEquals("BAR", getXmlEntityMappings().getNamedQueries().get(0).getName());
-		assertEquals("FOO", getXmlEntityMappings().getNamedQueries().get(1).getName());
-		
-		OrmNamedQuery namedQuery3 = getEntityMappings().addNamedQuery(1);
-		namedQuery3.setName("BAZ");
-		
-		assertEquals("BAR", getXmlEntityMappings().getNamedQueries().get(0).getName());
-		assertEquals("BAZ", getXmlEntityMappings().getNamedQueries().get(1).getName());
-		assertEquals("FOO", getXmlEntityMappings().getNamedQueries().get(2).getName());
-		
-		ListIterator<OrmNamedQuery> namedQueries = getEntityMappings().namedQueries();
-		assertEquals(namedQuery2, namedQueries.next());
-		assertEquals(namedQuery3, namedQueries.next());
-		assertEquals(namedQuery, namedQueries.next());
-		
-		namedQueries = getEntityMappings().namedQueries();
-		assertEquals("BAR", namedQueries.next().getName());
-		assertEquals("BAZ", namedQueries.next().getName());
-		assertEquals("FOO", namedQueries.next().getName());
-	}
-	
-	public void testRemoveNamedQuery() throws Exception {
-		getEntityMappings().addNamedQuery(0).setName("FOO");
-		getEntityMappings().addNamedQuery(1).setName("BAR");
-		getEntityMappings().addNamedQuery(2).setName("BAZ");
-		
-		assertEquals(3, getXmlEntityMappings().getNamedQueries().size());
-		
-		getEntityMappings().removeNamedQuery(0);
-		assertEquals(2, getXmlEntityMappings().getNamedQueries().size());
-		assertEquals("BAR", getXmlEntityMappings().getNamedQueries().get(0).getName());
-		assertEquals("BAZ", getXmlEntityMappings().getNamedQueries().get(1).getName());
-
-		getEntityMappings().removeNamedQuery(0);
-		assertEquals(1, getXmlEntityMappings().getNamedQueries().size());
-		assertEquals("BAZ", getXmlEntityMappings().getNamedQueries().get(0).getName());
-		
-		getEntityMappings().removeNamedQuery(0);
-		assertEquals(0, getXmlEntityMappings().getNamedQueries().size());
-	}
-	
-	public void testMoveNamedQuery() throws Exception {
-		getEntityMappings().addNamedQuery(0).setName("FOO");
-		getEntityMappings().addNamedQuery(1).setName("BAR");
-		getEntityMappings().addNamedQuery(2).setName("BAZ");
-		
-		assertEquals(3, getXmlEntityMappings().getNamedQueries().size());
-		
-		
-		getEntityMappings().moveNamedQuery(2, 0);
-		ListIterator<OrmNamedQuery> namedQueries = getEntityMappings().namedQueries();
-		assertEquals("BAR", namedQueries.next().getName());
-		assertEquals("BAZ", namedQueries.next().getName());
-		assertEquals("FOO", namedQueries.next().getName());
-
-		assertEquals("BAR", getXmlEntityMappings().getNamedQueries().get(0).getName());
-		assertEquals("BAZ", getXmlEntityMappings().getNamedQueries().get(1).getName());
-		assertEquals("FOO", getXmlEntityMappings().getNamedQueries().get(2).getName());
-
-
-		getEntityMappings().moveNamedQuery(0, 1);
-		namedQueries = getEntityMappings().namedQueries();
-		assertEquals("BAZ", namedQueries.next().getName());
-		assertEquals("BAR", namedQueries.next().getName());
-		assertEquals("FOO", namedQueries.next().getName());
-
-		assertEquals("BAZ", getXmlEntityMappings().getNamedQueries().get(0).getName());
-		assertEquals("BAR", getXmlEntityMappings().getNamedQueries().get(1).getName());
-		assertEquals("FOO", getXmlEntityMappings().getNamedQueries().get(2).getName());
-	}
-	
-	public void testUpdateNamedQueries() throws Exception {
-		assertEquals(0, getEntityMappings().getPersistenceUnit().queriesSize());
-		
-		getXmlEntityMappings().getNamedQueries().add(OrmFactory.eINSTANCE.createXmlNamedQuery());
-		getXmlEntityMappings().getNamedQueries().add(OrmFactory.eINSTANCE.createXmlNamedQuery());
-		getXmlEntityMappings().getNamedQueries().add(OrmFactory.eINSTANCE.createXmlNamedQuery());
-		
-		getXmlEntityMappings().getNamedQueries().get(0).setName("FOO");
-		getXmlEntityMappings().getNamedQueries().get(1).setName("BAR");
-		getXmlEntityMappings().getNamedQueries().get(2).setName("BAZ");
-		
-		ListIterator<OrmNamedQuery> namedQueries = getEntityMappings().namedQueries();
-		assertEquals("FOO", namedQueries.next().getName());
-		assertEquals("BAR", namedQueries.next().getName());
-		assertEquals("BAZ", namedQueries.next().getName());
-		assertFalse(namedQueries.hasNext());
-		assertEquals(3, getEntityMappings().getPersistenceUnit().queriesSize());
-		
-		getXmlEntityMappings().getNamedQueries().move(2, 0);
-		namedQueries = getEntityMappings().namedQueries();
-		assertEquals("BAR", namedQueries.next().getName());
-		assertEquals("BAZ", namedQueries.next().getName());
-		assertEquals("FOO", namedQueries.next().getName());
-		assertFalse(namedQueries.hasNext());
-		
-		getXmlEntityMappings().getNamedQueries().move(0, 1);
-		namedQueries = getEntityMappings().namedQueries();
-		assertEquals("BAZ", namedQueries.next().getName());
-		assertEquals("BAR", namedQueries.next().getName());
-		assertEquals("FOO", namedQueries.next().getName());
-		assertFalse(namedQueries.hasNext());
-		
-		getXmlEntityMappings().getNamedQueries().remove(1);
-		namedQueries = getEntityMappings().namedQueries();
-		assertEquals("BAZ", namedQueries.next().getName());
-		assertEquals("FOO", namedQueries.next().getName());
-		assertFalse(namedQueries.hasNext());
-		assertEquals(2, getEntityMappings().getPersistenceUnit().queriesSize());
-		
-		getXmlEntityMappings().getNamedQueries().remove(1);
-		namedQueries = getEntityMappings().namedQueries();
-		assertEquals("BAZ", namedQueries.next().getName());
-		assertFalse(namedQueries.hasNext());
-		assertEquals(1, getEntityMappings().getPersistenceUnit().queriesSize());
-		
-		getXmlEntityMappings().getNamedQueries().remove(0);
-		assertFalse(getEntityMappings().namedQueries().hasNext());
-		assertEquals(0, getEntityMappings().getPersistenceUnit().queriesSize());
-	}
-	
-	public void testAddNamedNativeQuery() throws Exception {
-		OrmNamedNativeQuery namedNativeQuery = getEntityMappings().addNamedNativeQuery(0);
-		namedNativeQuery.setName("FOO");
-				
-		assertEquals("FOO", getXmlEntityMappings().getNamedNativeQueries().get(0).getName());
-		
-		OrmNamedNativeQuery namedNativeQuery2 = getEntityMappings().addNamedNativeQuery(0);
-		namedNativeQuery2.setName("BAR");
-		
-		assertEquals("BAR", getXmlEntityMappings().getNamedNativeQueries().get(0).getName());
-		assertEquals("FOO", getXmlEntityMappings().getNamedNativeQueries().get(1).getName());
-		
-		OrmNamedNativeQuery namedNativeQuery3 = getEntityMappings().addNamedNativeQuery(1);
-		namedNativeQuery3.setName("BAZ");
-		
-		assertEquals("BAR", getXmlEntityMappings().getNamedNativeQueries().get(0).getName());
-		assertEquals("BAZ", getXmlEntityMappings().getNamedNativeQueries().get(1).getName());
-		assertEquals("FOO", getXmlEntityMappings().getNamedNativeQueries().get(2).getName());
-		
-		ListIterator<OrmNamedNativeQuery> namedNativeQueries = getEntityMappings().namedNativeQueries();
-		assertEquals(namedNativeQuery2, namedNativeQueries.next());
-		assertEquals(namedNativeQuery3, namedNativeQueries.next());
-		assertEquals(namedNativeQuery, namedNativeQueries.next());
-		
-		namedNativeQueries = getEntityMappings().namedNativeQueries();
-		assertEquals("BAR", namedNativeQueries.next().getName());
-		assertEquals("BAZ", namedNativeQueries.next().getName());
-		assertEquals("FOO", namedNativeQueries.next().getName());
-	}
-	
-	public void testRemoveNamedNativeQuery() throws Exception {
-		getEntityMappings().addNamedNativeQuery(0).setName("FOO");
-		getEntityMappings().addNamedNativeQuery(1).setName("BAR");
-		getEntityMappings().addNamedNativeQuery(2).setName("BAZ");
-		
-		assertEquals(3, getXmlEntityMappings().getNamedNativeQueries().size());
-		
-		getEntityMappings().removeNamedNativeQuery(0);
-		assertEquals(2, getXmlEntityMappings().getNamedNativeQueries().size());
-		assertEquals("BAR", getXmlEntityMappings().getNamedNativeQueries().get(0).getName());
-		assertEquals("BAZ", getXmlEntityMappings().getNamedNativeQueries().get(1).getName());
-
-		getEntityMappings().removeNamedNativeQuery(0);
-		assertEquals(1, getXmlEntityMappings().getNamedNativeQueries().size());
-		assertEquals("BAZ", getXmlEntityMappings().getNamedNativeQueries().get(0).getName());
-		
-		getEntityMappings().removeNamedNativeQuery(0);
-		assertEquals(0, getXmlEntityMappings().getNamedNativeQueries().size());
-	}
-	
-	public void testMoveNamedNativeQuery() throws Exception {
-		getEntityMappings().addNamedNativeQuery(0).setName("FOO");
-		getEntityMappings().addNamedNativeQuery(1).setName("BAR");
-		getEntityMappings().addNamedNativeQuery(2).setName("BAZ");
-		
-		assertEquals(3, getXmlEntityMappings().getNamedNativeQueries().size());
-		
-		
-		getEntityMappings().moveNamedNativeQuery(2, 0);
-		ListIterator<OrmNamedNativeQuery> namedNativeQueries = getEntityMappings().namedNativeQueries();
-		assertEquals("BAR", namedNativeQueries.next().getName());
-		assertEquals("BAZ", namedNativeQueries.next().getName());
-		assertEquals("FOO", namedNativeQueries.next().getName());
-
-		assertEquals("BAR", getXmlEntityMappings().getNamedNativeQueries().get(0).getName());
-		assertEquals("BAZ", getXmlEntityMappings().getNamedNativeQueries().get(1).getName());
-		assertEquals("FOO", getXmlEntityMappings().getNamedNativeQueries().get(2).getName());
-
-
-		getEntityMappings().moveNamedNativeQuery(0, 1);
-		namedNativeQueries = getEntityMappings().namedNativeQueries();
-		assertEquals("BAZ", namedNativeQueries.next().getName());
-		assertEquals("BAR", namedNativeQueries.next().getName());
-		assertEquals("FOO", namedNativeQueries.next().getName());
-
-		assertEquals("BAZ", getXmlEntityMappings().getNamedNativeQueries().get(0).getName());
-		assertEquals("BAR", getXmlEntityMappings().getNamedNativeQueries().get(1).getName());
-		assertEquals("FOO", getXmlEntityMappings().getNamedNativeQueries().get(2).getName());
-	}
-	
-	public void testUpdateNamedNativeQueries() throws Exception {
-		assertEquals(0, getEntityMappings().getPersistenceUnit().queriesSize());
-		
-		getXmlEntityMappings().getNamedNativeQueries().add(OrmFactory.eINSTANCE.createXmlNamedNativeQuery());
-		getXmlEntityMappings().getNamedNativeQueries().add(OrmFactory.eINSTANCE.createXmlNamedNativeQuery());
-		getXmlEntityMappings().getNamedNativeQueries().add(OrmFactory.eINSTANCE.createXmlNamedNativeQuery());
-		
-		getXmlEntityMappings().getNamedNativeQueries().get(0).setName("FOO");
-		getXmlEntityMappings().getNamedNativeQueries().get(1).setName("BAR");
-		getXmlEntityMappings().getNamedNativeQueries().get(2).setName("BAZ");
-		
-		ListIterator<OrmNamedNativeQuery> namedNativeQueries = getEntityMappings().namedNativeQueries();
-		assertEquals("FOO", namedNativeQueries.next().getName());
-		assertEquals("BAR", namedNativeQueries.next().getName());
-		assertEquals("BAZ", namedNativeQueries.next().getName());
-		assertFalse(namedNativeQueries.hasNext());
-		assertEquals(3, getEntityMappings().getPersistenceUnit().queriesSize());
-		
-		getXmlEntityMappings().getNamedNativeQueries().move(2, 0);
-		namedNativeQueries = getEntityMappings().namedNativeQueries();
-		assertEquals("BAR", namedNativeQueries.next().getName());
-		assertEquals("BAZ", namedNativeQueries.next().getName());
-		assertEquals("FOO", namedNativeQueries.next().getName());
-		assertFalse(namedNativeQueries.hasNext());
-		
-		getXmlEntityMappings().getNamedNativeQueries().move(0, 1);
-		namedNativeQueries = getEntityMappings().namedNativeQueries();
-		assertEquals("BAZ", namedNativeQueries.next().getName());
-		assertEquals("BAR", namedNativeQueries.next().getName());
-		assertEquals("FOO", namedNativeQueries.next().getName());
-		assertFalse(namedNativeQueries.hasNext());
-		
-		getXmlEntityMappings().getNamedNativeQueries().remove(1);
-		namedNativeQueries = getEntityMappings().namedNativeQueries();
-		assertEquals("BAZ", namedNativeQueries.next().getName());
-		assertEquals("FOO", namedNativeQueries.next().getName());
-		assertFalse(namedNativeQueries.hasNext());
-		assertEquals(2, getEntityMappings().getPersistenceUnit().queriesSize());
-		
-		getXmlEntityMappings().getNamedNativeQueries().remove(1);
-		namedNativeQueries = getEntityMappings().namedNativeQueries();
-		assertEquals("BAZ", namedNativeQueries.next().getName());
-		assertFalse(namedNativeQueries.hasNext());
-		assertEquals(1, getEntityMappings().getPersistenceUnit().queriesSize());
-		
-		getXmlEntityMappings().getNamedNativeQueries().remove(0);
-		assertFalse(getEntityMappings().namedNativeQueries().hasNext());
-		assertEquals(0, getEntityMappings().getPersistenceUnit().queriesSize());
-	}
-}
\ No newline at end of file
diff --git a/jpa/tests/org.eclipse.jpt.core.tests/src/org/eclipse/jpt/core/tests/internal/context/orm/GenericOrmPersistentAttributeTests.java b/jpa/tests/org.eclipse.jpt.core.tests/src/org/eclipse/jpt/core/tests/internal/context/orm/GenericOrmPersistentAttributeTests.java
deleted file mode 100644
index 4c7fe74..0000000
--- a/jpa/tests/org.eclipse.jpt.core.tests/src/org/eclipse/jpt/core/tests/internal/context/orm/GenericOrmPersistentAttributeTests.java
+++ /dev/null
@@ -1,316 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008, 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.core.tests.internal.context.orm;
-
-import java.util.Iterator;
-import java.util.ListIterator;
-import org.eclipse.jdt.core.ICompilationUnit;
-import org.eclipse.jpt.core.JptCorePlugin;
-import org.eclipse.jpt.core.MappingKeys;
-import org.eclipse.jpt.core.context.AccessType;
-import org.eclipse.jpt.core.context.BasicMapping;
-import org.eclipse.jpt.core.context.IdMapping;
-import org.eclipse.jpt.core.context.java.JavaPersistentAttribute;
-import org.eclipse.jpt.core.context.java.JavaPersistentType;
-import org.eclipse.jpt.core.context.orm.OrmPersistentAttribute;
-import org.eclipse.jpt.core.context.orm.OrmPersistentType;
-import org.eclipse.jpt.core.internal.context.orm.GenericOrmIdMapping;
-import org.eclipse.jpt.core.internal.context.orm.GenericOrmNullAttributeMapping;
-import org.eclipse.jpt.core.internal.context.orm.GenericOrmOneToOneMapping;
-import org.eclipse.jpt.core.resource.java.JPA;
-import org.eclipse.jpt.core.resource.java.JavaResourcePersistentAttribute;
-import org.eclipse.jpt.core.resource.persistence.PersistenceFactory;
-import org.eclipse.jpt.core.resource.persistence.XmlMappingFileRef;
-import org.eclipse.jpt.core.tests.internal.context.ContextModelTestCase;
-import org.eclipse.jpt.utility.internal.iterators.ArrayIterator;
-
-@SuppressWarnings("nls")
-public class GenericOrmPersistentAttributeTests extends ContextModelTestCase
-{
-	public GenericOrmPersistentAttributeTests(String name) {
-		super(name);
-	}
-	
-	@Override
-	protected void setUp() throws Exception {
-		super.setUp();
-		XmlMappingFileRef mappingFileRef = PersistenceFactory.eINSTANCE.createXmlMappingFileRef();
-		mappingFileRef.setFileName(JptCorePlugin.DEFAULT_ORM_XML_FILE_PATH);
-		getXmlPersistenceUnit().getMappingFiles().add(mappingFileRef);
-		getPersistenceXmlResource().save(null);
-	}
-	
-	private ICompilationUnit createTestTypeNullAttributeMapping() throws Exception {
-	
-		return this.createTestType(new DefaultAnnotationWriter() {			
-			@Override
-			public void appendIdFieldAnnotationTo(StringBuilder sb) {
-				sb.append(CR);			
-				sb.append("    private Address address;").append(CR);
-				sb.append(CR);
-			}
-		});
-	}
-	
-	private ICompilationUnit createTestEntityIdMapping() throws Exception {
-		return this.createTestType(new DefaultAnnotationWriter() {
-			@Override
-			public Iterator<String> imports() {
-				return new ArrayIterator<String>(JPA.ENTITY, JPA.ID, JPA.COLUMN);
-			}
-			@Override
-			public void appendTypeAnnotationTo(StringBuilder sb) {
-				sb.append("@Entity");
-			}
-			@Override
-			public void appendIdFieldAnnotationTo(StringBuilder sb) {
-				sb.append("@Id");
-				sb.append("@Column(name=\"FOO\")");
-			}
-		});
-	}
-	
-	private ICompilationUnit createTestEntityOneToOneMapping() throws Exception {
-		return this.createTestType(new DefaultAnnotationWriter() {
-			@Override
-			public Iterator<String> imports() {
-				return new ArrayIterator<String>(JPA.ENTITY, JPA.ONE_TO_ONE);
-			}
-			@Override
-			public void appendTypeAnnotationTo(StringBuilder sb) {
-				sb.append("@Entity");
-			}
-			@Override
-			public void appendIdFieldAnnotationTo(StringBuilder sb) {
-				sb.append("@OneToOne");
-				sb.append("    private Address address;");
-			}
-		});
-	}
-	
-	public void testMakeSpecified() throws Exception {
-		createTestType();
-		OrmPersistentType ormPersistentType = getEntityMappings().addPersistentType(MappingKeys.ENTITY_TYPE_MAPPING_KEY, FULLY_QUALIFIED_TYPE_NAME);
-		
-		assertEquals(2, ormPersistentType.virtualAttributesSize());
-		
-		OrmPersistentAttribute ormPersistentAttribute = ormPersistentType.virtualAttributes().next();
-		assertEquals("id", ormPersistentAttribute.getName());
-		assertTrue(ormPersistentAttribute.isVirtual());
-		ormPersistentAttribute.makeSpecified();
-		
-		assertEquals(1, ormPersistentType.virtualAttributesSize());
-		assertEquals(1, ormPersistentType.specifiedAttributesSize());
-		OrmPersistentAttribute specifiedOrmPersistentAttribute = ormPersistentType.specifiedAttributes().next();
-		assertEquals("id", specifiedOrmPersistentAttribute.getName());
-		assertFalse(specifiedOrmPersistentAttribute.isVirtual());
-		
-		ormPersistentAttribute = ormPersistentType.virtualAttributes().next();
-		ormPersistentAttribute.makeSpecified();
-		
-		assertEquals(0, ormPersistentType.virtualAttributesSize());
-		assertEquals(2, ormPersistentType.specifiedAttributesSize());
-		ListIterator<OrmPersistentAttribute> specifiedAttributes = ormPersistentType.specifiedAttributes();
-		specifiedOrmPersistentAttribute = specifiedAttributes.next();
-		assertEquals("id", specifiedOrmPersistentAttribute.getName());
-		assertFalse(specifiedOrmPersistentAttribute.isVirtual());
-		
-		specifiedOrmPersistentAttribute = specifiedAttributes.next();
-		assertEquals("name", specifiedOrmPersistentAttribute.getName());
-		assertFalse(specifiedOrmPersistentAttribute.isVirtual());
-	}
-	
-	public void testMakeSpecifiedMappingKey() throws Exception {
-		createTestTypeNullAttributeMapping();
-		OrmPersistentType ormPersistentType = getEntityMappings().addPersistentType(MappingKeys.ENTITY_TYPE_MAPPING_KEY, FULLY_QUALIFIED_TYPE_NAME);
-		
-		assertEquals(3, ormPersistentType.virtualAttributesSize());
-		
-		//take a virtual mapping with a mapping type and make it specified
-		OrmPersistentAttribute ormPersistentAttribute = ormPersistentType.virtualAttributes().next();
-		assertEquals("address", ormPersistentAttribute.getName());
-		assertTrue(ormPersistentAttribute.isVirtual());
-		assertTrue(ormPersistentAttribute.getMapping() instanceof GenericOrmNullAttributeMapping);
-		ormPersistentAttribute.makeSpecified(MappingKeys.ONE_TO_ONE_ATTRIBUTE_MAPPING_KEY);
-		
-		assertEquals(2, ormPersistentType.virtualAttributesSize());
-		assertEquals(1, ormPersistentType.specifiedAttributesSize());
-		OrmPersistentAttribute specifiedOrmPersistentAttribute = ormPersistentType.specifiedAttributes().next();
-		assertEquals("address", specifiedOrmPersistentAttribute.getName());
-		assertFalse(specifiedOrmPersistentAttribute.isVirtual());
-		assertTrue(specifiedOrmPersistentAttribute.getMapping() instanceof GenericOrmOneToOneMapping);
-		
-		
-		ormPersistentAttribute = ormPersistentType.virtualAttributes().next();
-		ormPersistentAttribute.makeSpecified(MappingKeys.ID_ATTRIBUTE_MAPPING_KEY);
-		
-		assertEquals(1, ormPersistentType.virtualAttributesSize());
-		assertEquals(2, ormPersistentType.specifiedAttributesSize());
-		ListIterator<OrmPersistentAttribute> specifiedAttributes = ormPersistentType.specifiedAttributes();
-		
-		specifiedOrmPersistentAttribute = specifiedAttributes.next();
-		assertEquals("id", specifiedOrmPersistentAttribute.getName());
-		assertFalse(specifiedOrmPersistentAttribute.isVirtual());
-		assertTrue(specifiedOrmPersistentAttribute.getMapping() instanceof GenericOrmIdMapping);
-		
-		specifiedOrmPersistentAttribute = specifiedAttributes.next();
-		assertEquals("address", specifiedOrmPersistentAttribute.getName());
-		assertFalse(specifiedOrmPersistentAttribute.isVirtual());
-	}
-	
-	public void testMakeVirtual() throws Exception {
-		createTestType();
-		OrmPersistentType ormPersistentType = getEntityMappings().addPersistentType(MappingKeys.ENTITY_TYPE_MAPPING_KEY, FULLY_QUALIFIED_TYPE_NAME);
-		
-		assertEquals(2, ormPersistentType.virtualAttributesSize());
-		
-		ormPersistentType.virtualAttributes().next().makeSpecified();
-		ormPersistentType.virtualAttributes().next().makeSpecified();
-
-		assertEquals(0, ormPersistentType.virtualAttributesSize());
-		assertEquals(2, ormPersistentType.specifiedAttributesSize());
-		OrmPersistentAttribute specifiedOrmPersistentAttribute = ormPersistentType.specifiedAttributes().next();
-		assertEquals("id", specifiedOrmPersistentAttribute.getName());
-		assertFalse(specifiedOrmPersistentAttribute.isVirtual());
-		
-		specifiedOrmPersistentAttribute.makeVirtual();
-		assertEquals(1, ormPersistentType.virtualAttributesSize());
-		assertEquals(1, ormPersistentType.specifiedAttributesSize());
-		
-		specifiedOrmPersistentAttribute = ormPersistentType.specifiedAttributes().next();
-		specifiedOrmPersistentAttribute.makeVirtual();
-		assertEquals(2, ormPersistentType.virtualAttributesSize());
-		assertEquals(0, ormPersistentType.specifiedAttributesSize());
-		
-		ListIterator<OrmPersistentAttribute> virtualAttributes = ormPersistentType.virtualAttributes();
-		OrmPersistentAttribute virtualAttribute = virtualAttributes.next();		
-		assertEquals("id", virtualAttribute.getName());
-		virtualAttribute = virtualAttributes.next();		
-		assertEquals("name", virtualAttribute.getName());
-	}
-	
-	public void testMakeVirtualNoUnderlyingJavaAttribute() throws Exception {
-		createTestType();
-		OrmPersistentType ormPersistentType = getEntityMappings().addPersistentType(MappingKeys.ENTITY_TYPE_MAPPING_KEY, FULLY_QUALIFIED_TYPE_NAME);
-		
-		assertEquals(2, ormPersistentType.virtualAttributesSize());
-		
-		ormPersistentType.virtualAttributes().next().makeSpecified();
-		ormPersistentType.virtualAttributes().next().makeSpecified();
-
-		
-		ormPersistentType.specifiedAttributes().next().getMapping().setName("noJavaAttribute");
-		assertEquals(1, ormPersistentType.virtualAttributesSize());
-		assertEquals(2, ormPersistentType.specifiedAttributesSize());
-		
-		
-		OrmPersistentAttribute specifiedOrmPersistentAttribute = ormPersistentType.specifiedAttributes().next();
-		specifiedOrmPersistentAttribute.makeVirtual();
-		assertEquals(1, ormPersistentType.virtualAttributesSize());
-		assertEquals(1, ormPersistentType.specifiedAttributesSize());
-		
-		assertEquals("id", ormPersistentType.virtualAttributes().next().getName());
-		assertEquals("name", ormPersistentType.specifiedAttributes().next().getName());
-	}
-	
-	public void testVirtualMappingTypeWhenMetadataComplete()  throws Exception {
-		createTestEntityIdMapping();
-		OrmPersistentType ormPersistentType = getEntityMappings().addPersistentType(MappingKeys.ENTITY_TYPE_MAPPING_KEY, FULLY_QUALIFIED_TYPE_NAME);
-		
-		OrmPersistentAttribute ormPersistentAttribute = ormPersistentType.virtualAttributes().next();
-		assertEquals("id", ormPersistentAttribute.getName());
-		assertEquals(MappingKeys.ID_ATTRIBUTE_MAPPING_KEY, ormPersistentAttribute.getMappingKey());
-		assertEquals("FOO", ((IdMapping) ormPersistentAttribute.getMapping()).getColumn().getName());
-		
-		
-		ormPersistentType.getMapping().setSpecifiedMetadataComplete(Boolean.TRUE);
-
-		ormPersistentAttribute = ormPersistentType.virtualAttributes().next();
-		assertEquals("id", ormPersistentAttribute.getName());
-		assertEquals(MappingKeys.BASIC_ATTRIBUTE_MAPPING_KEY, ormPersistentAttribute.getMappingKey());
-		assertEquals("id", ((BasicMapping) ormPersistentAttribute.getMapping()).getColumn().getName());
-	}
-	
-	public void testVirtualMappingTypeWhenMetadataComplete2()  throws Exception {
-		createTestEntityOneToOneMapping();
-		OrmPersistentType ormPersistentType = getEntityMappings().addPersistentType(MappingKeys.ENTITY_TYPE_MAPPING_KEY, FULLY_QUALIFIED_TYPE_NAME);
-		
-		OrmPersistentAttribute ormPersistentAttribute = ormPersistentType.virtualAttributes().next();
-		assertEquals("address", ormPersistentAttribute.getName());
-		assertEquals(MappingKeys.ONE_TO_ONE_ATTRIBUTE_MAPPING_KEY, ormPersistentAttribute.getMappingKey());
-		
-		
-		ormPersistentType.getMapping().setSpecifiedMetadataComplete(Boolean.TRUE);
-
-		ormPersistentAttribute = ormPersistentType.virtualAttributes().next();
-		assertEquals("address", ormPersistentAttribute.getName());
-		assertEquals(MappingKeys.NULL_ATTRIBUTE_MAPPING_KEY, ormPersistentAttribute.getMappingKey());
-	}
-	
-	public void testGetJavaPersistentAttribute() throws Exception {
-		createTestEntityIdMapping();
-		OrmPersistentType ormPersistentType = getEntityMappings().addPersistentType(MappingKeys.ENTITY_TYPE_MAPPING_KEY, FULLY_QUALIFIED_TYPE_NAME);
-		JavaPersistentType javaPersistentType = ormPersistentType.getJavaPersistentType();
-		
-		OrmPersistentAttribute ormPersistentAttribute = ormPersistentType.getAttributeNamed("id");
-		JavaPersistentAttribute javaPersistentAttribute = javaPersistentType.getAttributeNamed("id");
-			
-		//virtual orm attribute, access type matches java : FIELD, name matches java
-		assertTrue(ormPersistentAttribute.isVirtual());
-		assertNotSame(javaPersistentAttribute, ormPersistentAttribute.getJavaPersistentAttribute());
-		assertEquals(AccessType.FIELD, javaPersistentAttribute.getAccess());
-		JavaResourcePersistentAttribute javaResourcePersistentAttribute = ormPersistentAttribute.getJavaPersistentAttribute().getResourcePersistentAttribute();
-		assertTrue(javaResourcePersistentAttribute.isField());
-		assertEquals("id", javaResourcePersistentAttribute.getName());
-		assertEquals(javaPersistentType.getResourcePersistentType().persistableFields().next(), javaResourcePersistentAttribute);
-		
-		
-		//specified orm attribute, access type matches java : FIELD, name matches java
-		//javaPersistentAttribute should be == to java context model object
-		ormPersistentAttribute.makeSpecified();
-		ormPersistentAttribute = ormPersistentType.getAttributeNamed("id");
-		assertFalse(ormPersistentAttribute.isVirtual());
-		assertEquals(javaPersistentAttribute, ormPersistentAttribute.getJavaPersistentAttribute());
-	
-		
-		//virtual orm attribute, java access type FIELD, orm access type PROPERTY, name matches java
-		//verify the property java resource persistent attribute is used in orm.
-		ormPersistentAttribute.makeVirtual();
-		ormPersistentAttribute = ormPersistentType.getAttributeNamed("id");		
-		ormPersistentType.setSpecifiedAccess(AccessType.PROPERTY);
-		assertNotSame(ormPersistentAttribute, ormPersistentType.getAttributeNamed("id"));
-		ormPersistentAttribute = ormPersistentType.getAttributeNamed("id");
-		assertNotSame(javaPersistentAttribute, ormPersistentAttribute.getJavaPersistentAttribute());
-		assertEquals(AccessType.FIELD, javaPersistentAttribute.getAccess());
-		assertEquals(AccessType.PROPERTY, ormPersistentAttribute.getJavaPersistentAttribute().getAccess());
-		javaResourcePersistentAttribute = ormPersistentAttribute.getJavaPersistentAttribute().getResourcePersistentAttribute();
-		assertTrue(javaResourcePersistentAttribute.isProperty());
-		assertEquals("id", javaResourcePersistentAttribute.getName());
-		assertEquals(javaPersistentType.getResourcePersistentType().persistableProperties().next(), javaResourcePersistentAttribute);
-		
-		
-		ormPersistentType.setSpecifiedAccess(null);//default access will be field
-		ormPersistentAttribute = ormPersistentType.getAttributeNamed("id");		
-		ormPersistentAttribute.makeSpecified();
-		ormPersistentAttribute = ormPersistentType.getAttributeNamed("id");		
-		ormPersistentAttribute.getMapping().setName("id2");
-		assertEquals(null, ormPersistentAttribute.getJavaPersistentAttribute());
-		
-		ormPersistentAttribute.getMapping().setName(null);
-		assertEquals(null, ormPersistentAttribute.getJavaPersistentAttribute());
-
-		ormPersistentAttribute.getMapping().setName("id");
-		assertEquals(javaPersistentAttribute, ormPersistentAttribute.getJavaPersistentAttribute());
-
-		
-		ormPersistentType.getMapping().setSpecifiedMetadataComplete(Boolean.TRUE);
-		assertEquals(javaPersistentAttribute, ormPersistentAttribute.getJavaPersistentAttribute());
-	}
-}
\ No newline at end of file
diff --git a/jpa/tests/org.eclipse.jpt.core.tests/src/org/eclipse/jpt/core/tests/internal/context/orm/GenericOrmPersistentTypeTests.java b/jpa/tests/org.eclipse.jpt.core.tests/src/org/eclipse/jpt/core/tests/internal/context/orm/GenericOrmPersistentTypeTests.java
deleted file mode 100644
index 152877f..0000000
--- a/jpa/tests/org.eclipse.jpt.core.tests/src/org/eclipse/jpt/core/tests/internal/context/orm/GenericOrmPersistentTypeTests.java
+++ /dev/null
@@ -1,582 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.core.tests.internal.context.orm;
-
-import java.util.Iterator;
-import java.util.ListIterator;
-import org.eclipse.jpt.core.JptCorePlugin;
-import org.eclipse.jpt.core.MappingKeys;
-import org.eclipse.jpt.core.context.Converter;
-import org.eclipse.jpt.core.context.TemporalConverter;
-import org.eclipse.jpt.core.context.TemporalType;
-import org.eclipse.jpt.core.context.java.JavaPersistentAttribute;
-import org.eclipse.jpt.core.context.orm.OrmBasicMapping;
-import org.eclipse.jpt.core.context.orm.OrmPersistentAttribute;
-import org.eclipse.jpt.core.context.orm.OrmPersistentType;
-import org.eclipse.jpt.core.resource.java.JavaResourcePersistentType;
-import org.eclipse.jpt.core.resource.orm.OrmFactory;
-import org.eclipse.jpt.core.resource.orm.XmlBasic;
-import org.eclipse.jpt.core.resource.orm.XmlBasicImpl;
-import org.eclipse.jpt.core.resource.orm.XmlEmbedded;
-import org.eclipse.jpt.core.resource.orm.XmlEmbeddedIdImpl;
-import org.eclipse.jpt.core.resource.orm.XmlEmbeddedImpl;
-import org.eclipse.jpt.core.resource.orm.XmlEntity;
-import org.eclipse.jpt.core.resource.orm.XmlId;
-import org.eclipse.jpt.core.resource.orm.XmlIdImpl;
-import org.eclipse.jpt.core.resource.orm.XmlManyToManyImpl;
-import org.eclipse.jpt.core.resource.orm.XmlManyToOneImpl;
-import org.eclipse.jpt.core.resource.orm.XmlOneToManyImpl;
-import org.eclipse.jpt.core.resource.orm.XmlOneToOneImpl;
-import org.eclipse.jpt.core.resource.orm.XmlTransient;
-import org.eclipse.jpt.core.resource.orm.XmlTransientImpl;
-import org.eclipse.jpt.core.resource.orm.XmlVersion;
-import org.eclipse.jpt.core.resource.orm.XmlVersionImpl;
-import org.eclipse.jpt.core.resource.persistence.PersistenceFactory;
-import org.eclipse.jpt.core.resource.persistence.XmlMappingFileRef;
-import org.eclipse.jpt.core.tests.internal.context.ContextModelTestCase;
-import org.eclipse.jpt.core.tests.internal.projects.TestJavaProject.SourceWriter;
-import org.eclipse.jpt.utility.internal.ClassTools;
-
-@SuppressWarnings("nls")
-public class GenericOrmPersistentTypeTests extends ContextModelTestCase
-{
-	public static final String MODEL_TYPE_NAME = "Model";
-	public static final String FULLY_QUALIFIED_MODEL_TYPE_NAME = PACKAGE_NAME + "." + MODEL_TYPE_NAME;
-	
-	public static final String EMPLOYEE_TYPE_NAME = "Employee";
-	public static final String FULLY_QUALIFIED_EMPLOYEE_TYPE_NAME = PACKAGE_NAME + "." + EMPLOYEE_TYPE_NAME;
-
-	
-	public GenericOrmPersistentTypeTests(String name) {
-		super(name);
-	}
-	
-	
-	@Override
-	protected void setUp() throws Exception {
-		super.setUp();
-		XmlMappingFileRef mappingFileRef = PersistenceFactory.eINSTANCE.createXmlMappingFileRef();
-		mappingFileRef.setFileName(JptCorePlugin.DEFAULT_ORM_XML_FILE_PATH);
-		getXmlPersistenceUnit().getMappingFiles().add(mappingFileRef);
-		getPersistenceXmlResource().save(null);
-	}	
-	
-	private void createModelType() throws Exception {
-		SourceWriter sourceWriter = new SourceWriter() {
-			public void appendSourceTo(StringBuilder sb) {
-				sb.append(CR);
-				sb.append("public abstract class ").append(MODEL_TYPE_NAME).append(" {");
-				sb.append(CR);
-				sb.append("    private int id;").append(CR);
-				sb.append(CR);
-				sb.append("    private String name;").append(CR);
-				sb.append(CR);
-				sb.append("    ");
-				sb.append("}").append(CR);
-			}
-		};
-		this.javaProject.createCompilationUnit(PACKAGE_NAME, MODEL_TYPE_NAME + ".java", sourceWriter);
-	}
-	
-	private void createEmployeeType() throws Exception {
-		SourceWriter sourceWriter = new SourceWriter() {
-			public void appendSourceTo(StringBuilder sb) {
-				sb.append(CR);
-				sb.append("public class ").append(EMPLOYEE_TYPE_NAME).append(" extends ").append(MODEL_TYPE_NAME).append(" {");
-				sb.append(CR);
-				sb.append("    private String department;").append(CR);
-				sb.append(CR);
-				sb.append("    private java.util.Date startDate;").append(CR);
-				sb.append(CR);
-				sb.append("    ");
-				sb.append("}").append(CR);
-			}
-		};
-		this.javaProject.createCompilationUnit(PACKAGE_NAME, EMPLOYEE_TYPE_NAME + ".java", sourceWriter);
-	}
-	
-//	public void testUpdateXmlTypeMapping() throws Exception {
-//		assertFalse(entityMappings().ormPersistentTypes().hasNext());
-//		assertTrue(ormResource().getEntityMappings().getMappedSuperclasses().isEmpty());
-//		assertTrue(ormResource().getEntityMappings().getEntities().isEmpty());
-//		assertTrue(ormResource().getEntityMappings().getEmbeddables().isEmpty());
-//		
-//		//add embeddable in the resource model, verify context model updated
-//		Embeddable embeddable = OrmFactory.eINSTANCE.createEmbeddable();
-//		ormResource().getEntityMappings().getEmbeddables().add(embeddable);
-//		embeddable.setClassName("model.Foo");
-//		assertTrue(entityMappings().ormPersistentTypes().hasNext());
-//		assertEquals("model.Foo", entityMappings().ormPersistentTypes().next().getMapping().getClass_());
-//		assertTrue(ormResource().getEntityMappings().getMappedSuperclasses().isEmpty());
-//		assertTrue(ormResource().getEntityMappings().getEntities().isEmpty());
-//		assertFalse(ormResource().getEntityMappings().getEmbeddables().isEmpty());
-//		assertEquals("model.Foo", ormResource().getEntityMappings().getEmbeddables().get(0).getClassName());
-//		
-//		//add entity in the resource model, verify context model updated
-//		Entity entity = OrmFactory.eINSTANCE.createEntity();
-//		ormResource().getEntityMappings().getEntities().add(entity);
-//		entity.setClassName("model.Foo2");
-//		assertTrue(entityMappings().ormPersistentTypes().hasNext());
-//		assertEquals("model.Foo2", entityMappings().ormPersistentTypes().next().getMapping().getClass_());
-//		assertTrue(ormResource().getEntityMappings().getMappedSuperclasses().isEmpty());
-//		assertFalse(ormResource().getEntityMappings().getEntities().isEmpty());
-//		assertFalse(ormResource().getEntityMappings().getEmbeddables().isEmpty());
-//		assertEquals("model.Foo2", ormResource().getEntityMappings().getEntities().get(0).getClassName());
-//
-//		//add mapped-superclass in the resource model, verify context model updated
-//		MappedSuperclass mappedSuperclass = OrmFactory.eINSTANCE.createMappedSuperclass();
-//		ormResource().getEntityMappings().getMappedSuperclasses().add(mappedSuperclass);
-//		mappedSuperclass.setClassName("model.Foo3");
-//		assertTrue(entityMappings().ormPersistentTypes().hasNext());
-//		assertEquals("model.Foo3", entityMappings().ormPersistentTypes().next().getMapping().getClass_());
-//		assertFalse(ormResource().getEntityMappings().getMappedSuperclasses().isEmpty());
-//		assertFalse(ormResource().getEntityMappings().getEntities().isEmpty());
-//		assertFalse(ormResource().getEntityMappings().getEmbeddables().isEmpty());
-//		assertEquals("model.Foo3", ormResource().getEntityMappings().getMappedSuperclasses().get(0).getClassName());
-//	}
-//	
-	
-	public void testMorphXmlTypeMapping() throws Exception {
-		assertFalse(getEntityMappings().persistentTypes().hasNext());
-		assertTrue(getXmlEntityMappings().getMappedSuperclasses().isEmpty());
-		assertTrue(getXmlEntityMappings().getEntities().isEmpty());
-		assertTrue(getXmlEntityMappings().getEmbeddables().isEmpty());
-		
-		OrmPersistentType embeddablePersistentType = getEntityMappings().addPersistentType(MappingKeys.EMBEDDABLE_TYPE_MAPPING_KEY, "model.Foo");
-		OrmPersistentType entityPersistentType = getEntityMappings().addPersistentType(MappingKeys.ENTITY_TYPE_MAPPING_KEY, "model.Foo2");
-		OrmPersistentType mappedSuperclassPersistentType = getEntityMappings().addPersistentType(MappingKeys.MAPPED_SUPERCLASS_TYPE_MAPPING_KEY, "model.Foo3");
-	
-		OrmPersistentType ormPersistentType = getEntityMappings().persistentTypes().next();
-		assertEquals(mappedSuperclassPersistentType, ormPersistentType);
-		assertEquals(MappingKeys.MAPPED_SUPERCLASS_TYPE_MAPPING_KEY, ormPersistentType.getMapping().getKey());
-	
-		ormPersistentType.setMappingKey(MappingKeys.EMBEDDABLE_TYPE_MAPPING_KEY);
-		assertEquals(0, getXmlEntityMappings().getMappedSuperclasses().size());
-		assertEquals(1, getXmlEntityMappings().getEntities().size());
-		assertEquals(2, getXmlEntityMappings().getEmbeddables().size());
-		
-		Iterator<OrmPersistentType> ormPersistentTypes = getEntityMappings().persistentTypes();
-		//the same OrmPersistentTypes should still be in the context model
-		assertEquals(ormPersistentTypes.next(), entityPersistentType);
-		assertEquals(ormPersistentTypes.next(), embeddablePersistentType);
-		assertEquals(ormPersistentTypes.next(), mappedSuperclassPersistentType);
-		
-		assertEquals("model.Foo", getXmlEntityMappings().getEmbeddables().get(0).getClassName());
-		assertEquals("model.Foo3", getXmlEntityMappings().getEmbeddables().get(1).getClassName());
-	}
-	
-	public void testAddSpecifiedPersistentAttribute() throws Exception {
-		OrmPersistentType entityPersistentType = getEntityMappings().addPersistentType(MappingKeys.ENTITY_TYPE_MAPPING_KEY, "model.Foo2");
-		
-		entityPersistentType.addSpecifiedPersistentAttribute(MappingKeys.BASIC_ATTRIBUTE_MAPPING_KEY, "basicAttribute");
-	
-		XmlEntity entity = getXmlEntityMappings().getEntities().get(0);
-		XmlBasic basic = entity.getAttributes().getBasics().get(0);
-		assertEquals("basicAttribute", basic.getName());
-		
-		entityPersistentType.addSpecifiedPersistentAttribute(MappingKeys.EMBEDDED_ATTRIBUTE_MAPPING_KEY, "embeddedAttribute");
-	
-		XmlEmbedded embedded = entity.getAttributes().getEmbeddeds().get(0);
-		assertEquals("embeddedAttribute", embedded.getName());
-		
-		entityPersistentType.addSpecifiedPersistentAttribute(MappingKeys.TRANSIENT_ATTRIBUTE_MAPPING_KEY, "transientAttribute");
-	
-		XmlTransient transientResource = entity.getAttributes().getTransients().get(0);
-		assertEquals("transientAttribute", transientResource.getName());
-
-		entityPersistentType.addSpecifiedPersistentAttribute(MappingKeys.VERSION_ATTRIBUTE_MAPPING_KEY, "versionAttribute");
-	
-		XmlVersion version = entity.getAttributes().getVersions().get(0);
-		assertEquals("versionAttribute", version.getName());
-
-		entityPersistentType.addSpecifiedPersistentAttribute(MappingKeys.ID_ATTRIBUTE_MAPPING_KEY, "idAttribute");
-	
-		XmlId id = entity.getAttributes().getIds().get(0);
-		assertEquals("idAttribute", id.getName());
-		
-		
-		ListIterator<OrmPersistentAttribute> persistentAttributes = entityPersistentType.specifiedAttributes();
-		assertEquals("idAttribute", persistentAttributes.next().getName());
-		assertEquals("basicAttribute", persistentAttributes.next().getName());
-		assertEquals("versionAttribute", persistentAttributes.next().getName());
-		assertEquals("embeddedAttribute", persistentAttributes.next().getName());
-		assertEquals("transientAttribute", persistentAttributes.next().getName());
-		assertFalse(persistentAttributes.hasNext());
-	}
-	
-	public void testRemoveSpecifiedPersistentAttribute() throws Exception {
-		OrmPersistentType entityPersistentType = getEntityMappings().addPersistentType(MappingKeys.ENTITY_TYPE_MAPPING_KEY, "model.Foo2");
-		
-		entityPersistentType.addSpecifiedPersistentAttribute(MappingKeys.BASIC_ATTRIBUTE_MAPPING_KEY, "basicAttribute");
-		entityPersistentType.addSpecifiedPersistentAttribute(MappingKeys.EMBEDDED_ATTRIBUTE_MAPPING_KEY, "embeddedAttribute");
-		entityPersistentType.addSpecifiedPersistentAttribute(MappingKeys.VERSION_ATTRIBUTE_MAPPING_KEY, "versionAttribute");
-		entityPersistentType.addSpecifiedPersistentAttribute(MappingKeys.ID_ATTRIBUTE_MAPPING_KEY, "idAttribute");
-		entityPersistentType.addSpecifiedPersistentAttribute(MappingKeys.TRANSIENT_ATTRIBUTE_MAPPING_KEY, "transientAttribute");
-	
-		XmlEntity entity = getXmlEntityMappings().getEntities().get(0);
-		assertEquals("basicAttribute",  entity.getAttributes().getBasics().get(0).getName());
-		assertEquals("embeddedAttribute",  entity.getAttributes().getEmbeddeds().get(0).getName());
-		assertEquals("versionAttribute",  entity.getAttributes().getVersions().get(0).getName());
-		assertEquals("idAttribute",  entity.getAttributes().getIds().get(0).getName());
-		assertEquals("transientAttribute",  entity.getAttributes().getTransients().get(0).getName());
-		
-		entityPersistentType.removeSpecifiedPersistentAttribute(entityPersistentType.getAttributeNamed("basicAttribute"));
-		assertEquals("embeddedAttribute",  entity.getAttributes().getEmbeddeds().get(0).getName());
-		assertEquals("versionAttribute",  entity.getAttributes().getVersions().get(0).getName());
-		assertEquals("idAttribute",  entity.getAttributes().getIds().get(0).getName());
-		assertEquals("transientAttribute",  entity.getAttributes().getTransients().get(0).getName());
-		
-		entityPersistentType.removeSpecifiedPersistentAttribute(entityPersistentType.getAttributeNamed("embeddedAttribute"));
-		assertEquals("versionAttribute",  entity.getAttributes().getVersions().get(0).getName());
-		assertEquals("idAttribute",  entity.getAttributes().getIds().get(0).getName());
-		assertEquals("transientAttribute",  entity.getAttributes().getTransients().get(0).getName());
-		
-		entityPersistentType.removeSpecifiedPersistentAttribute(entityPersistentType.getAttributeNamed("versionAttribute"));
-		assertEquals("idAttribute",  entity.getAttributes().getIds().get(0).getName());
-		assertEquals("transientAttribute",  entity.getAttributes().getTransients().get(0).getName());
-		
-		entityPersistentType.removeSpecifiedPersistentAttribute(entityPersistentType.getAttributeNamed("idAttribute"));
-		assertEquals("transientAttribute",  entity.getAttributes().getTransients().get(0).getName());
-		
-		entityPersistentType.removeSpecifiedPersistentAttribute(entityPersistentType.getAttributeNamed("transientAttribute"));
-		assertNull(entity.getAttributes());
-	}
-	
-	public void testRemoveId() throws Exception {
-		OrmPersistentType entityPersistentType = getEntityMappings().addPersistentType(MappingKeys.ENTITY_TYPE_MAPPING_KEY, "model.Foo2");
-		XmlEntity entity = getXmlEntityMappings().getEntities().get(0);
-		
-		entityPersistentType.addSpecifiedPersistentAttribute(MappingKeys.ID_ATTRIBUTE_MAPPING_KEY, "idAttribute");
-		assertEquals("idAttribute",  entity.getAttributes().getIds().get(0).getName());
-
-		entityPersistentType.removeSpecifiedPersistentAttribute(entityPersistentType.getAttributeNamed("idAttribute"));	
-		assertNull(entity.getAttributes());
-	}
-	
-	public void testRemoveBasic() throws Exception {
-		OrmPersistentType entityPersistentType = getEntityMappings().addPersistentType(MappingKeys.ENTITY_TYPE_MAPPING_KEY, "model.Foo2");
-		XmlEntity entity = getXmlEntityMappings().getEntities().get(0);
-		
-		entityPersistentType.addSpecifiedPersistentAttribute(MappingKeys.BASIC_ATTRIBUTE_MAPPING_KEY, "basicAttribute");
-		assertEquals("basicAttribute",  entity.getAttributes().getBasics().get(0).getName());
-
-		entityPersistentType.removeSpecifiedPersistentAttribute(entityPersistentType.getAttributeNamed("basicAttribute"));	
-		assertNull(entity.getAttributes());
-	}
-	
-	public void testRemoveVersion() throws Exception {
-		OrmPersistentType entityPersistentType = getEntityMappings().addPersistentType(MappingKeys.ENTITY_TYPE_MAPPING_KEY, "model.Foo2");
-		XmlEntity entity = getXmlEntityMappings().getEntities().get(0);
-		
-		entityPersistentType.addSpecifiedPersistentAttribute(MappingKeys.VERSION_ATTRIBUTE_MAPPING_KEY, "versionAttribute");
-		assertEquals("versionAttribute",  entity.getAttributes().getVersions().get(0).getName());
-
-		entityPersistentType.removeSpecifiedPersistentAttribute(entityPersistentType.getAttributeNamed("versionAttribute"));	
-		assertNull(entity.getAttributes());
-	}
-	
-	public void testRemoveEmbedded() throws Exception {
-		OrmPersistentType entityPersistentType = getEntityMappings().addPersistentType(MappingKeys.ENTITY_TYPE_MAPPING_KEY, "model.Foo2");
-		XmlEntity entity = getXmlEntityMappings().getEntities().get(0);
-		
-		entityPersistentType.addSpecifiedPersistentAttribute(MappingKeys.EMBEDDED_ATTRIBUTE_MAPPING_KEY, "embeddedAttribute");
-		assertEquals("embeddedAttribute",  entity.getAttributes().getEmbeddeds().get(0).getName());
-
-		entityPersistentType.removeSpecifiedPersistentAttribute(entityPersistentType.getAttributeNamed("embeddedAttribute"));	
-		assertNull(entity.getAttributes());
-	}
-	
-	public void testRemoveTransient() throws Exception {
-		OrmPersistentType entityPersistentType = getEntityMappings().addPersistentType(MappingKeys.ENTITY_TYPE_MAPPING_KEY, "model.Foo2");
-		XmlEntity entity = getXmlEntityMappings().getEntities().get(0);
-		
-		entityPersistentType.addSpecifiedPersistentAttribute(MappingKeys.TRANSIENT_ATTRIBUTE_MAPPING_KEY, "transientAttribute");
-		assertEquals("transientAttribute",  entity.getAttributes().getTransients().get(0).getName());
-
-		entityPersistentType.removeSpecifiedPersistentAttribute(entityPersistentType.getAttributeNamed("transientAttribute"));	
-		assertNull(entity.getAttributes());
-	}
-
-	public void testUpdateSpecifiedPersistentAttributes() throws Exception {
-		OrmPersistentType entityPersistentType = getEntityMappings().addPersistentType(MappingKeys.ENTITY_TYPE_MAPPING_KEY, "model.Foo2");
-		XmlEntity entity = getXmlEntityMappings().getEntities().get(0);
-
-		entity.setAttributes(OrmFactory.eINSTANCE.createAttributes());
-		XmlBasicImpl basic = OrmFactory.eINSTANCE.createXmlBasicImpl();
-		entity.getAttributes().getBasics().add(basic);
-		basic.setName("basicAttribute");
-			
-		OrmPersistentAttribute ormPersistentAttribute = entityPersistentType.attributes().next();
-		assertEquals("basicAttribute", ormPersistentAttribute.getName());
-		assertEquals(MappingKeys.BASIC_ATTRIBUTE_MAPPING_KEY, ormPersistentAttribute.getMapping().getKey());
-		
-		XmlEmbeddedImpl embedded = OrmFactory.eINSTANCE.createXmlEmbeddedImpl();
-		entity.getAttributes().getEmbeddeds().add(embedded);
-		embedded.setName("embeddedAttribute");
-		
-		ListIterator<OrmPersistentAttribute> attributes = entityPersistentType.attributes();
-		ormPersistentAttribute = attributes.next();
-		assertEquals("basicAttribute", ormPersistentAttribute.getName());
-		assertEquals(MappingKeys.BASIC_ATTRIBUTE_MAPPING_KEY, ormPersistentAttribute.getMapping().getKey());
-		ormPersistentAttribute = attributes.next();
-		assertEquals("embeddedAttribute", ormPersistentAttribute.getName());
-		assertEquals(MappingKeys.EMBEDDED_ATTRIBUTE_MAPPING_KEY, ormPersistentAttribute.getMapping().getKey());
-		assertFalse(attributes.hasNext());
-	
-		XmlVersionImpl version = OrmFactory.eINSTANCE.createXmlVersionImpl();
-		entity.getAttributes().getVersions().add(version);
-		version.setName("versionAttribute");
-		
-		attributes = entityPersistentType.attributes();
-		ormPersistentAttribute = attributes.next();
-		assertEquals("basicAttribute", ormPersistentAttribute.getName());
-		assertEquals(MappingKeys.BASIC_ATTRIBUTE_MAPPING_KEY, ormPersistentAttribute.getMapping().getKey());
-		ormPersistentAttribute = attributes.next();
-		assertEquals("versionAttribute", ormPersistentAttribute.getName());
-		assertEquals(MappingKeys.VERSION_ATTRIBUTE_MAPPING_KEY, ormPersistentAttribute.getMapping().getKey());
-		ormPersistentAttribute = attributes.next();
-		assertEquals("embeddedAttribute", ormPersistentAttribute.getName());
-		assertEquals(MappingKeys.EMBEDDED_ATTRIBUTE_MAPPING_KEY, ormPersistentAttribute.getMapping().getKey());
-		assertFalse(attributes.hasNext());
-
-		XmlIdImpl id = OrmFactory.eINSTANCE.createXmlIdImpl();
-		entity.getAttributes().getIds().add(id);
-		id.setName("idAttribute");
-		
-		attributes = entityPersistentType.attributes();
-		ormPersistentAttribute = attributes.next();
-		assertEquals("idAttribute", ormPersistentAttribute.getName());
-		assertEquals(MappingKeys.ID_ATTRIBUTE_MAPPING_KEY, ormPersistentAttribute.getMapping().getKey());
-		ormPersistentAttribute = attributes.next();
-		assertEquals("basicAttribute", ormPersistentAttribute.getName());
-		assertEquals(MappingKeys.BASIC_ATTRIBUTE_MAPPING_KEY, ormPersistentAttribute.getMapping().getKey());
-		ormPersistentAttribute = attributes.next();
-		assertEquals("versionAttribute", ormPersistentAttribute.getName());
-		assertEquals(MappingKeys.VERSION_ATTRIBUTE_MAPPING_KEY, ormPersistentAttribute.getMapping().getKey());
-		ormPersistentAttribute = attributes.next();
-		assertEquals("embeddedAttribute", ormPersistentAttribute.getName());
-		assertEquals(MappingKeys.EMBEDDED_ATTRIBUTE_MAPPING_KEY, ormPersistentAttribute.getMapping().getKey());
-		assertFalse(attributes.hasNext());
-		
-		XmlTransientImpl transientResource = OrmFactory.eINSTANCE.createXmlTransientImpl();
-		entity.getAttributes().getTransients().add(transientResource);
-		transientResource.setName("transientAttribute");
-		
-		attributes = entityPersistentType.attributes();
-		ormPersistentAttribute = attributes.next();
-		assertEquals("idAttribute", ormPersistentAttribute.getName());
-		assertEquals(MappingKeys.ID_ATTRIBUTE_MAPPING_KEY, ormPersistentAttribute.getMapping().getKey());
-		ormPersistentAttribute = attributes.next();
-		assertEquals("basicAttribute", ormPersistentAttribute.getName());
-		assertEquals(MappingKeys.BASIC_ATTRIBUTE_MAPPING_KEY, ormPersistentAttribute.getMapping().getKey());
-		ormPersistentAttribute = attributes.next();
-		assertEquals("versionAttribute", ormPersistentAttribute.getName());
-		assertEquals(MappingKeys.VERSION_ATTRIBUTE_MAPPING_KEY, ormPersistentAttribute.getMapping().getKey());
-		ormPersistentAttribute = attributes.next();
-		assertEquals("embeddedAttribute", ormPersistentAttribute.getName());
-		assertEquals(MappingKeys.EMBEDDED_ATTRIBUTE_MAPPING_KEY, ormPersistentAttribute.getMapping().getKey());
-		ormPersistentAttribute = attributes.next();
-		assertEquals("transientAttribute", ormPersistentAttribute.getName());
-		assertEquals(MappingKeys.TRANSIENT_ATTRIBUTE_MAPPING_KEY, ormPersistentAttribute.getMapping().getKey());
-		assertFalse(attributes.hasNext());
-		
-		XmlManyToOneImpl manyToOneResource = OrmFactory.eINSTANCE.createXmlManyToOneImpl();
-		entity.getAttributes().getManyToOnes().add(manyToOneResource);
-		manyToOneResource.setName("manyToOneAttribute");
-		
-		attributes = entityPersistentType.attributes();
-		ormPersistentAttribute = attributes.next();
-		assertEquals("idAttribute", ormPersistentAttribute.getName());
-		assertEquals(MappingKeys.ID_ATTRIBUTE_MAPPING_KEY, ormPersistentAttribute.getMapping().getKey());
-		ormPersistentAttribute = attributes.next();
-		assertEquals("basicAttribute", ormPersistentAttribute.getName());
-		assertEquals(MappingKeys.BASIC_ATTRIBUTE_MAPPING_KEY, ormPersistentAttribute.getMapping().getKey());
-		ormPersistentAttribute = attributes.next();
-		assertEquals("versionAttribute", ormPersistentAttribute.getName());
-		assertEquals(MappingKeys.VERSION_ATTRIBUTE_MAPPING_KEY, ormPersistentAttribute.getMapping().getKey());
-		ormPersistentAttribute = attributes.next();
-		assertEquals("manyToOneAttribute", ormPersistentAttribute.getName());
-		assertEquals(MappingKeys.MANY_TO_ONE_ATTRIBUTE_MAPPING_KEY, ormPersistentAttribute.getMapping().getKey());
-		ormPersistentAttribute = attributes.next();
-		assertEquals("embeddedAttribute", ormPersistentAttribute.getName());
-		assertEquals(MappingKeys.EMBEDDED_ATTRIBUTE_MAPPING_KEY, ormPersistentAttribute.getMapping().getKey());
-		ormPersistentAttribute = attributes.next();
-		assertEquals("transientAttribute", ormPersistentAttribute.getName());
-		assertEquals(MappingKeys.TRANSIENT_ATTRIBUTE_MAPPING_KEY, ormPersistentAttribute.getMapping().getKey());
-		assertFalse(attributes.hasNext());
-
-		XmlManyToManyImpl manyToManyResource = OrmFactory.eINSTANCE.createXmlManyToManyImpl();
-		entity.getAttributes().getManyToManys().add(manyToManyResource);
-		manyToManyResource.setName("manyToManyAttribute");
-		
-		attributes = entityPersistentType.attributes();
-		ormPersistentAttribute = attributes.next();
-		assertEquals("idAttribute", ormPersistentAttribute.getName());
-		assertEquals(MappingKeys.ID_ATTRIBUTE_MAPPING_KEY, ormPersistentAttribute.getMapping().getKey());
-		ormPersistentAttribute = attributes.next();
-		assertEquals("basicAttribute", ormPersistentAttribute.getName());
-		assertEquals(MappingKeys.BASIC_ATTRIBUTE_MAPPING_KEY, ormPersistentAttribute.getMapping().getKey());
-		ormPersistentAttribute = attributes.next();
-		assertEquals("versionAttribute", ormPersistentAttribute.getName());
-		assertEquals(MappingKeys.VERSION_ATTRIBUTE_MAPPING_KEY, ormPersistentAttribute.getMapping().getKey());
-		ormPersistentAttribute = attributes.next();
-		assertEquals("manyToOneAttribute", ormPersistentAttribute.getName());
-		assertEquals(MappingKeys.MANY_TO_ONE_ATTRIBUTE_MAPPING_KEY, ormPersistentAttribute.getMapping().getKey());
-		ormPersistentAttribute = attributes.next();
-		assertEquals("manyToManyAttribute", ormPersistentAttribute.getName());
-		assertEquals(MappingKeys.MANY_TO_MANY_ATTRIBUTE_MAPPING_KEY, ormPersistentAttribute.getMapping().getKey());
-		ormPersistentAttribute = attributes.next();
-		assertEquals("embeddedAttribute", ormPersistentAttribute.getName());
-		assertEquals(MappingKeys.EMBEDDED_ATTRIBUTE_MAPPING_KEY, ormPersistentAttribute.getMapping().getKey());
-		ormPersistentAttribute = attributes.next();
-		assertEquals("transientAttribute", ormPersistentAttribute.getName());
-		assertEquals(MappingKeys.TRANSIENT_ATTRIBUTE_MAPPING_KEY, ormPersistentAttribute.getMapping().getKey());
-		assertFalse(attributes.hasNext());
-		
-		XmlOneToManyImpl oneToManyResource = OrmFactory.eINSTANCE.createXmlOneToManyImpl();
-		entity.getAttributes().getOneToManys().add(oneToManyResource);
-		oneToManyResource.setName("oneToManyAttribute");
-		
-		attributes = entityPersistentType.attributes();
-		ormPersistentAttribute = attributes.next();
-		assertEquals("idAttribute", ormPersistentAttribute.getName());
-		assertEquals(MappingKeys.ID_ATTRIBUTE_MAPPING_KEY, ormPersistentAttribute.getMapping().getKey());
-		ormPersistentAttribute = attributes.next();
-		assertEquals("basicAttribute", ormPersistentAttribute.getName());
-		assertEquals(MappingKeys.BASIC_ATTRIBUTE_MAPPING_KEY, ormPersistentAttribute.getMapping().getKey());
-		ormPersistentAttribute = attributes.next();
-		assertEquals("versionAttribute", ormPersistentAttribute.getName());
-		assertEquals(MappingKeys.VERSION_ATTRIBUTE_MAPPING_KEY, ormPersistentAttribute.getMapping().getKey());
-		ormPersistentAttribute = attributes.next();
-		assertEquals("manyToOneAttribute", ormPersistentAttribute.getName());
-		assertEquals(MappingKeys.MANY_TO_ONE_ATTRIBUTE_MAPPING_KEY, ormPersistentAttribute.getMapping().getKey());
-		ormPersistentAttribute = attributes.next();
-		assertEquals("oneToManyAttribute", ormPersistentAttribute.getName());
-		assertEquals(MappingKeys.ONE_TO_MANY_ATTRIBUTE_MAPPING_KEY, ormPersistentAttribute.getMapping().getKey());
-		ormPersistentAttribute = attributes.next();
-		assertEquals("manyToManyAttribute", ormPersistentAttribute.getName());
-		assertEquals(MappingKeys.MANY_TO_MANY_ATTRIBUTE_MAPPING_KEY, ormPersistentAttribute.getMapping().getKey());
-		ormPersistentAttribute = attributes.next();
-		assertEquals("embeddedAttribute", ormPersistentAttribute.getName());
-		assertEquals(MappingKeys.EMBEDDED_ATTRIBUTE_MAPPING_KEY, ormPersistentAttribute.getMapping().getKey());
-		ormPersistentAttribute = attributes.next();
-		assertEquals("transientAttribute", ormPersistentAttribute.getName());
-		assertEquals(MappingKeys.TRANSIENT_ATTRIBUTE_MAPPING_KEY, ormPersistentAttribute.getMapping().getKey());
-		assertFalse(attributes.hasNext());
-
-		XmlOneToOneImpl oneToOneResource = OrmFactory.eINSTANCE.createXmlOneToOneImpl();
-		entity.getAttributes().getOneToOnes().add(oneToOneResource);
-		oneToOneResource.setName("oneToOneAttribute");
-		
-		attributes = entityPersistentType.attributes();
-		ormPersistentAttribute = attributes.next();
-		assertEquals("idAttribute", ormPersistentAttribute.getName());
-		assertEquals(MappingKeys.ID_ATTRIBUTE_MAPPING_KEY, ormPersistentAttribute.getMapping().getKey());
-		ormPersistentAttribute = attributes.next();
-		assertEquals("basicAttribute", ormPersistentAttribute.getName());
-		assertEquals(MappingKeys.BASIC_ATTRIBUTE_MAPPING_KEY, ormPersistentAttribute.getMapping().getKey());
-		ormPersistentAttribute = attributes.next();
-		assertEquals("versionAttribute", ormPersistentAttribute.getName());
-		assertEquals(MappingKeys.VERSION_ATTRIBUTE_MAPPING_KEY, ormPersistentAttribute.getMapping().getKey());
-		ormPersistentAttribute = attributes.next();
-		assertEquals("manyToOneAttribute", ormPersistentAttribute.getName());
-		assertEquals(MappingKeys.MANY_TO_ONE_ATTRIBUTE_MAPPING_KEY, ormPersistentAttribute.getMapping().getKey());
-		ormPersistentAttribute = attributes.next();
-		assertEquals("oneToManyAttribute", ormPersistentAttribute.getName());
-		assertEquals(MappingKeys.ONE_TO_MANY_ATTRIBUTE_MAPPING_KEY, ormPersistentAttribute.getMapping().getKey());
-		ormPersistentAttribute = attributes.next();
-		assertEquals("oneToOneAttribute", ormPersistentAttribute.getName());
-		assertEquals(MappingKeys.ONE_TO_ONE_ATTRIBUTE_MAPPING_KEY, ormPersistentAttribute.getMapping().getKey());
-		ormPersistentAttribute = attributes.next();
-		assertEquals("manyToManyAttribute", ormPersistentAttribute.getName());
-		assertEquals(MappingKeys.MANY_TO_MANY_ATTRIBUTE_MAPPING_KEY, ormPersistentAttribute.getMapping().getKey());
-		ormPersistentAttribute = attributes.next();
-		assertEquals("embeddedAttribute", ormPersistentAttribute.getName());
-		assertEquals(MappingKeys.EMBEDDED_ATTRIBUTE_MAPPING_KEY, ormPersistentAttribute.getMapping().getKey());
-		ormPersistentAttribute = attributes.next();
-		assertEquals("transientAttribute", ormPersistentAttribute.getName());
-		assertEquals(MappingKeys.TRANSIENT_ATTRIBUTE_MAPPING_KEY, ormPersistentAttribute.getMapping().getKey());
-		assertFalse(attributes.hasNext());
-
-
-		XmlEmbeddedIdImpl embeddedIdResource = OrmFactory.eINSTANCE.createXmlEmbeddedIdImpl();
-		entity.getAttributes().getEmbeddedIds().add(embeddedIdResource);
-		embeddedIdResource.setName("embeddedIdAttribute");
-		
-		attributes = entityPersistentType.attributes();
-		ormPersistentAttribute = attributes.next();
-		assertEquals("idAttribute", ormPersistentAttribute.getName());
-		assertEquals(MappingKeys.ID_ATTRIBUTE_MAPPING_KEY, ormPersistentAttribute.getMapping().getKey());
-		ormPersistentAttribute = attributes.next();
-		assertEquals("embeddedIdAttribute", ormPersistentAttribute.getName());
-		assertEquals(MappingKeys.EMBEDDED_ID_ATTRIBUTE_MAPPING_KEY, ormPersistentAttribute.getMapping().getKey());
-		ormPersistentAttribute = attributes.next();
-		assertEquals("basicAttribute", ormPersistentAttribute.getName());
-		assertEquals(MappingKeys.BASIC_ATTRIBUTE_MAPPING_KEY, ormPersistentAttribute.getMapping().getKey());
-		ormPersistentAttribute = attributes.next();
-		assertEquals("versionAttribute", ormPersistentAttribute.getName());
-		assertEquals(MappingKeys.VERSION_ATTRIBUTE_MAPPING_KEY, ormPersistentAttribute.getMapping().getKey());
-		ormPersistentAttribute = attributes.next();
-		assertEquals("manyToOneAttribute", ormPersistentAttribute.getName());
-		assertEquals(MappingKeys.MANY_TO_ONE_ATTRIBUTE_MAPPING_KEY, ormPersistentAttribute.getMapping().getKey());
-		ormPersistentAttribute = attributes.next();
-		assertEquals("oneToManyAttribute", ormPersistentAttribute.getName());
-		assertEquals(MappingKeys.ONE_TO_MANY_ATTRIBUTE_MAPPING_KEY, ormPersistentAttribute.getMapping().getKey());
-		ormPersistentAttribute = attributes.next();
-		assertEquals("oneToOneAttribute", ormPersistentAttribute.getName());
-		assertEquals(MappingKeys.ONE_TO_ONE_ATTRIBUTE_MAPPING_KEY, ormPersistentAttribute.getMapping().getKey());
-		ormPersistentAttribute = attributes.next();
-		assertEquals("manyToManyAttribute", ormPersistentAttribute.getName());
-		assertEquals(MappingKeys.MANY_TO_MANY_ATTRIBUTE_MAPPING_KEY, ormPersistentAttribute.getMapping().getKey());
-		ormPersistentAttribute = attributes.next();
-		assertEquals("embeddedAttribute", ormPersistentAttribute.getName());
-		assertEquals(MappingKeys.EMBEDDED_ATTRIBUTE_MAPPING_KEY, ormPersistentAttribute.getMapping().getKey());
-		ormPersistentAttribute = attributes.next();
-		assertEquals("transientAttribute", ormPersistentAttribute.getName());
-		assertEquals(MappingKeys.TRANSIENT_ATTRIBUTE_MAPPING_KEY, ormPersistentAttribute.getMapping().getKey());
-		assertFalse(attributes.hasNext());
-
-		entity.getAttributes().getBasics().remove(0);
-		entity.getAttributes().getEmbeddeds().remove(0);
-		entity.getAttributes().getTransients().remove(0);
-		entity.getAttributes().getIds().remove(0);
-		entity.getAttributes().getVersions().remove(0);
-		entity.getAttributes().getManyToOnes().remove(0);
-		entity.getAttributes().getManyToManys().remove(0);
-		entity.getAttributes().getOneToManys().remove(0);
-		entity.getAttributes().getOneToOnes().remove(0);
-		entity.getAttributes().getEmbeddedIds().remove(0);
-		assertFalse(entityPersistentType.attributes().hasNext());
-		assertNotNull(entity.getAttributes());
-	}
-	
-	
-
-	public void testInheritedAttributesResolve() throws Exception {
-		createModelType();
-		createEmployeeType();
-		
-		OrmPersistentType employeePersistentType = getEntityMappings().addPersistentType(MappingKeys.ENTITY_TYPE_MAPPING_KEY, FULLY_QUALIFIED_EMPLOYEE_TYPE_NAME);
-
-		
-		employeePersistentType.addSpecifiedPersistentAttribute(MappingKeys.ID_ATTRIBUTE_MAPPING_KEY, "id");
-		employeePersistentType.addSpecifiedPersistentAttribute(MappingKeys.BASIC_ATTRIBUTE_MAPPING_KEY, "name");
-		OrmPersistentAttribute startDateAttribute = employeePersistentType.addSpecifiedPersistentAttribute(MappingKeys.BASIC_ATTRIBUTE_MAPPING_KEY, "startDate");
-		((OrmBasicMapping) startDateAttribute.getSpecifiedMapping()).setSpecifiedConverter(Converter.TEMPORAL_CONVERTER);
-		((TemporalConverter) ((OrmBasicMapping) startDateAttribute.getSpecifiedMapping()).getSpecifiedConverter()).setTemporalType(TemporalType.DATE);
-		
-		OrmPersistentAttribute idAttribute = employeePersistentType.getAttributeNamed("id");
-		JavaPersistentAttribute javaPersistentAttribute = idAttribute.getJavaPersistentAttribute();
-		assertNotNull(javaPersistentAttribute);
-		assertEquals("id", javaPersistentAttribute.getName());
-		assertEquals("test.Employee", javaPersistentAttribute.getPersistentType().getName());
-		assertEquals("test.Model", ((JavaResourcePersistentType) ClassTools.fieldValue(javaPersistentAttribute.getResourcePersistentAttribute(), "parent")).getQualifiedName());
-	}
-}
\ No newline at end of file
diff --git a/jpa/tests/org.eclipse.jpt.core.tests/src/org/eclipse/jpt/core/tests/internal/context/orm/JptCoreOrmContextModelTests.java b/jpa/tests/org.eclipse.jpt.core.tests/src/org/eclipse/jpt/core/tests/internal/context/orm/JptCoreOrmContextModelTests.java
deleted file mode 100644
index 88216c4..0000000
--- a/jpa/tests/org.eclipse.jpt.core.tests/src/org/eclipse/jpt/core/tests/internal/context/orm/JptCoreOrmContextModelTests.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.context.orm;
-
-import junit.framework.Test;
-import junit.framework.TestCase;
-import junit.framework.TestSuite;
-
-public class JptCoreOrmContextModelTests extends TestCase
-{
-	public static Test suite() {
-		TestSuite suite = new TestSuite(JptCoreOrmContextModelTests.class.getName());
-		suite.addTestSuite(OrmXmlTests.class);
-		suite.addTestSuite(EntityMappingsTests.class);
-		suite.addTestSuite(PersistenceUnitMetadataTests.class);
-		suite.addTestSuite(PersistenceUnitDefaultsTests.class);
-		suite.addTestSuite(GenericOrmPersistentAttributeTests.class);
-		suite.addTestSuite(GenericOrmPersistentTypeTests.class);
-		suite.addTestSuite(OrmAssociationOverrideTests.class);
-		suite.addTestSuite(OrmAttributeOverrideTests.class);
-		suite.addTestSuite(OrmBasicMappingTests.class);
-		suite.addTestSuite(OrmCascadeTests.class);
-		suite.addTestSuite(OrmColumnTests.class);
-		suite.addTestSuite(OrmDiscriminatorColumnTests.class);
-		suite.addTestSuite(OrmIdMappingTests.class);
-		suite.addTestSuite(OrmEmbeddableTests.class);
-		suite.addTestSuite(OrmEmbeddedMappingTests.class);
-		suite.addTestSuite(OrmEmbeddedIdMappingTests.class);
-		suite.addTestSuite(OrmEntityTests.class);
-		suite.addTestSuite(OrmGeneratedValueTests.class);
-		suite.addTestSuite(OrmJoinColumnTests.class);
-		suite.addTestSuite(OrmJoinTableTests.class);
-		suite.addTestSuite(OrmMappedSuperclassTests.class);
-		suite.addTestSuite(OrmManyToManyMappingTests.class);
-		suite.addTestSuite(OrmManyToOneMappingTests.class);
-		suite.addTestSuite(OrmNamedQueryTests.class);
-		suite.addTestSuite(OrmNamedNativeQueryTests.class);
-		suite.addTestSuite(OrmOneToManyMappingTests.class);
-		suite.addTestSuite(OrmOneToOneMappingTests.class);
-		suite.addTestSuite(OrmPrimaryKeyJoinColumnTests.class);
-		suite.addTestSuite(OrmQueryHintTests.class);
-		suite.addTestSuite(OrmSecondaryTableTests.class);
-		suite.addTestSuite(OrmSequenceGeneratorTests.class);
-		suite.addTestSuite(OrmTableGeneratorTests.class);
-		suite.addTestSuite(OrmTableTests.class);
-		suite.addTestSuite(OrmTransientMappingTests.class);
-		suite.addTestSuite(OrmVersionMappingTests.class);
-		return suite;
-	}
-	
-	private JptCoreOrmContextModelTests() {
-		throw new UnsupportedOperationException();
-	}
-}
diff --git a/jpa/tests/org.eclipse.jpt.core.tests/src/org/eclipse/jpt/core/tests/internal/context/orm/OrmAssociationOverrideTests.java b/jpa/tests/org.eclipse.jpt.core.tests/src/org/eclipse/jpt/core/tests/internal/context/orm/OrmAssociationOverrideTests.java
deleted file mode 100644
index 43e3ee4..0000000
--- a/jpa/tests/org.eclipse.jpt.core.tests/src/org/eclipse/jpt/core/tests/internal/context/orm/OrmAssociationOverrideTests.java
+++ /dev/null
@@ -1,255 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008, 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.core.tests.internal.context.orm;
-
-import java.util.ListIterator;
-import org.eclipse.jpt.core.JptCorePlugin;
-import org.eclipse.jpt.core.MappingKeys;
-import org.eclipse.jpt.core.context.orm.OrmAssociationOverride;
-import org.eclipse.jpt.core.context.orm.OrmEntity;
-import org.eclipse.jpt.core.context.orm.OrmJoinColumn;
-import org.eclipse.jpt.core.context.orm.OrmPersistentType;
-import org.eclipse.jpt.core.resource.orm.OrmFactory;
-import org.eclipse.jpt.core.resource.orm.XmlAssociationOverride;
-import org.eclipse.jpt.core.resource.orm.XmlEntity;
-import org.eclipse.jpt.core.resource.persistence.PersistenceFactory;
-import org.eclipse.jpt.core.resource.persistence.XmlMappingFileRef;
-import org.eclipse.jpt.core.tests.internal.context.ContextModelTestCase;
-
-@SuppressWarnings("nls")
-public class OrmAssociationOverrideTests extends ContextModelTestCase
-{
-	public OrmAssociationOverrideTests(String name) {
-		super(name);
-	}
-	
-	@Override
-	protected void setUp() throws Exception {
-		super.setUp();
-		XmlMappingFileRef mappingFileRef = PersistenceFactory.eINSTANCE.createXmlMappingFileRef();
-		mappingFileRef.setFileName(JptCorePlugin.DEFAULT_ORM_XML_FILE_PATH);
-		getXmlPersistenceUnit().getMappingFiles().add(mappingFileRef);
-		getPersistenceXmlResource().save(null);
-	}
-
-	public void testUpdateName() throws Exception {
-		OrmPersistentType ormPersistentType = getEntityMappings().addPersistentType(MappingKeys.ENTITY_TYPE_MAPPING_KEY, "model.foo");
-		OrmEntity ormEntity = (OrmEntity) ormPersistentType.getMapping();
-		
-		XmlEntity entityResource = getXmlEntityMappings().getEntities().get(0);
-		entityResource.getAssociationOverrides().add(OrmFactory.eINSTANCE.createXmlAssociationOverrideImpl());
-		XmlAssociationOverride xmlAssociationOverride = entityResource.getAssociationOverrides().get(0);
-		OrmAssociationOverride ormAssociationOverride = ormEntity.specifiedAssociationOverrides().next();
-		
-		assertNull(ormAssociationOverride.getName());
-		assertNull(xmlAssociationOverride.getName());
-		assertTrue(ormEntity.associationOverrides().hasNext());
-		assertFalse(entityResource.getAssociationOverrides().isEmpty());
-		
-		//set name in the resource model, verify context model updated
-		xmlAssociationOverride.setName("FOO");
-		assertEquals("FOO", ormAssociationOverride.getName());
-		assertEquals("FOO", xmlAssociationOverride.getName());
-	
-		//set name to null in the resource model
-		xmlAssociationOverride.setName(null);
-		assertNull(ormAssociationOverride.getName());
-		assertNull(xmlAssociationOverride.getName());
-		
-		xmlAssociationOverride.setName("FOO");
-		assertEquals("FOO", ormAssociationOverride.getName());
-		assertEquals("FOO", xmlAssociationOverride.getName());
-
-		entityResource.getAssociationOverrides().remove(0);
-		assertFalse(ormEntity.associationOverrides().hasNext());
-		assertTrue(entityResource.getAssociationOverrides().isEmpty());
-	}
-	
-	public void testModifyName() throws Exception {
-		OrmPersistentType ormPersistentType = getEntityMappings().addPersistentType(MappingKeys.ENTITY_TYPE_MAPPING_KEY, "model.foo");
-		OrmEntity ormEntity = (OrmEntity) ormPersistentType.getMapping();
-
-		XmlEntity entityResource = getXmlEntityMappings().getEntities().get(0);
-		entityResource.getAssociationOverrides().add(OrmFactory.eINSTANCE.createXmlAssociationOverrideImpl());
-		XmlAssociationOverride xmlAssociationOverride = entityResource.getAssociationOverrides().get(0);
-		OrmAssociationOverride ormAssociationOverride = ormEntity.specifiedAssociationOverrides().next();
-
-		assertNull(ormAssociationOverride.getName());
-		assertNull(xmlAssociationOverride.getName());
-		
-		//set name in the context model, verify resource model modified
-		ormAssociationOverride.setName("foo");
-		assertEquals("foo", ormAssociationOverride.getName());
-		assertEquals("foo", xmlAssociationOverride.getName());
-		
-		//set name to null in the context model
-		ormAssociationOverride.setName(null);
-		assertNull(ormAssociationOverride.getName());
-		assertNull(entityResource.getAssociationOverrides().get(0).getName());
-	}
-	
-	
-	public void testAddSpecifiedJoinColumn() throws Exception {
-		OrmPersistentType ormPersistentType = getEntityMappings().addPersistentType(MappingKeys.ENTITY_TYPE_MAPPING_KEY, "model.Foo");
-		OrmEntity ormEntity = (OrmEntity) ormPersistentType.getMapping();
-
-		XmlEntity entityResource = getXmlEntityMappings().getEntities().get(0);
-		entityResource.getAssociationOverrides().add(OrmFactory.eINSTANCE.createXmlAssociationOverrideImpl());
-		OrmAssociationOverride ormAssociationOverride = ormEntity.specifiedAssociationOverrides().next();
-		
-		XmlAssociationOverride xmlAssociationOverride = entityResource.getAssociationOverrides().get(0);
-		
-		OrmJoinColumn joinColumn = ormAssociationOverride.addSpecifiedJoinColumn(0);
-		joinColumn.setSpecifiedName("FOO");
-				
-		assertEquals("FOO", xmlAssociationOverride.getJoinColumns().get(0).getName());
-		
-		OrmJoinColumn joinColumn2 = ormAssociationOverride.addSpecifiedJoinColumn(0);
-		joinColumn2.setSpecifiedName("BAR");
-		
-		assertEquals("BAR", xmlAssociationOverride.getJoinColumns().get(0).getName());
-		assertEquals("FOO", xmlAssociationOverride.getJoinColumns().get(1).getName());
-		
-		OrmJoinColumn joinColumn3 = ormAssociationOverride.addSpecifiedJoinColumn(1);
-		joinColumn3.setSpecifiedName("BAZ");
-		
-		assertEquals("BAR", xmlAssociationOverride.getJoinColumns().get(0).getName());
-		assertEquals("BAZ", xmlAssociationOverride.getJoinColumns().get(1).getName());
-		assertEquals("FOO", xmlAssociationOverride.getJoinColumns().get(2).getName());
-		
-		ListIterator<OrmJoinColumn> joinColumns = ormAssociationOverride.specifiedJoinColumns();
-		assertEquals(joinColumn2, joinColumns.next());
-		assertEquals(joinColumn3, joinColumns.next());
-		assertEquals(joinColumn, joinColumns.next());
-		
-		joinColumns = ormAssociationOverride.specifiedJoinColumns();
-		assertEquals("BAR", joinColumns.next().getName());
-		assertEquals("BAZ", joinColumns.next().getName());
-		assertEquals("FOO", joinColumns.next().getName());
-	}
-	
-	public void testRemoveSpecifiedJoinColumn() throws Exception {
-		OrmPersistentType ormPersistentType = getEntityMappings().addPersistentType(MappingKeys.ENTITY_TYPE_MAPPING_KEY, "model.Foo");
-		OrmEntity ormEntity = (OrmEntity) ormPersistentType.getMapping();
-		XmlEntity entityResource = getXmlEntityMappings().getEntities().get(0);
-		entityResource.getAssociationOverrides().add(OrmFactory.eINSTANCE.createXmlAssociationOverrideImpl());
-		OrmAssociationOverride ormAssociationOverride = ormEntity.specifiedAssociationOverrides().next();
-		
-		XmlAssociationOverride xmlAssociationOverride = entityResource.getAssociationOverrides().get(0);
-		
-		ormAssociationOverride.addSpecifiedJoinColumn(0).setSpecifiedName("FOO");
-		ormAssociationOverride.addSpecifiedJoinColumn(1).setSpecifiedName("BAR");
-		ormAssociationOverride.addSpecifiedJoinColumn(2).setSpecifiedName("BAZ");
-		
-		assertEquals(3, xmlAssociationOverride.getJoinColumns().size());
-		
-		ormAssociationOverride.removeSpecifiedJoinColumn(0);
-		assertEquals(2, xmlAssociationOverride.getJoinColumns().size());
-		assertEquals("BAR", xmlAssociationOverride.getJoinColumns().get(0).getName());
-		assertEquals("BAZ", xmlAssociationOverride.getJoinColumns().get(1).getName());
-
-		ormAssociationOverride.removeSpecifiedJoinColumn(0);
-		assertEquals(1, xmlAssociationOverride.getJoinColumns().size());
-		assertEquals("BAZ", xmlAssociationOverride.getJoinColumns().get(0).getName());
-		
-		ormAssociationOverride.removeSpecifiedJoinColumn(0);
-		assertEquals(0, xmlAssociationOverride.getJoinColumns().size());
-	}
-	
-	public void testMoveSpecifiedJoinColumn() throws Exception {
-		OrmPersistentType ormPersistentType = getEntityMappings().addPersistentType(MappingKeys.ENTITY_TYPE_MAPPING_KEY, "model.Foo");
-		OrmEntity ormEntity = (OrmEntity) ormPersistentType.getMapping();
-		XmlEntity entityResource = getXmlEntityMappings().getEntities().get(0);
-		entityResource.getAssociationOverrides().add(OrmFactory.eINSTANCE.createXmlAssociationOverrideImpl());
-		OrmAssociationOverride ormAssociationOverride = ormEntity.specifiedAssociationOverrides().next();
-		
-		XmlAssociationOverride xmlAssociationOverride = entityResource.getAssociationOverrides().get(0);
-
-		ormAssociationOverride.addSpecifiedJoinColumn(0).setSpecifiedName("FOO");
-		ormAssociationOverride.addSpecifiedJoinColumn(1).setSpecifiedName("BAR");
-		ormAssociationOverride.addSpecifiedJoinColumn(2).setSpecifiedName("BAZ");
-		
-		assertEquals(3, xmlAssociationOverride.getJoinColumns().size());
-		
-		
-		ormAssociationOverride.moveSpecifiedJoinColumn(2, 0);
-		ListIterator<OrmJoinColumn> joinColumns = ormAssociationOverride.specifiedJoinColumns();
-		assertEquals("BAR", joinColumns.next().getName());
-		assertEquals("BAZ", joinColumns.next().getName());
-		assertEquals("FOO", joinColumns.next().getName());
-
-		assertEquals("BAR", xmlAssociationOverride.getJoinColumns().get(0).getName());
-		assertEquals("BAZ", xmlAssociationOverride.getJoinColumns().get(1).getName());
-		assertEquals("FOO", xmlAssociationOverride.getJoinColumns().get(2).getName());
-
-
-		ormAssociationOverride.moveSpecifiedJoinColumn(0, 1);
-		joinColumns = ormAssociationOverride.specifiedJoinColumns();
-		assertEquals("BAZ", joinColumns.next().getName());
-		assertEquals("BAR", joinColumns.next().getName());
-		assertEquals("FOO", joinColumns.next().getName());
-
-		assertEquals("BAZ", xmlAssociationOverride.getJoinColumns().get(0).getName());
-		assertEquals("BAR", xmlAssociationOverride.getJoinColumns().get(1).getName());
-		assertEquals("FOO", xmlAssociationOverride.getJoinColumns().get(2).getName());
-	}
-	
-	public void testUpdateJoinColumns() throws Exception {
-		OrmPersistentType ormPersistentType = getEntityMappings().addPersistentType(MappingKeys.ENTITY_TYPE_MAPPING_KEY, "model.Foo");
-		OrmEntity ormEntity = (OrmEntity) ormPersistentType.getMapping();
-		XmlEntity entityResource = getXmlEntityMappings().getEntities().get(0);
-		entityResource.getAssociationOverrides().add(OrmFactory.eINSTANCE.createXmlAssociationOverrideImpl());
-		OrmAssociationOverride ormAssociationOverride = ormEntity.specifiedAssociationOverrides().next();
-		
-		XmlAssociationOverride xmlAssociationOverride = entityResource.getAssociationOverrides().get(0);
-	
-		xmlAssociationOverride.getJoinColumns().add(OrmFactory.eINSTANCE.createXmlJoinColumnImpl());
-		xmlAssociationOverride.getJoinColumns().add(OrmFactory.eINSTANCE.createXmlJoinColumnImpl());
-		xmlAssociationOverride.getJoinColumns().add(OrmFactory.eINSTANCE.createXmlJoinColumnImpl());
-		
-		xmlAssociationOverride.getJoinColumns().get(0).setName("FOO");
-		xmlAssociationOverride.getJoinColumns().get(1).setName("BAR");
-		xmlAssociationOverride.getJoinColumns().get(2).setName("BAZ");
-
-		ListIterator<OrmJoinColumn> joinColumns = ormAssociationOverride.specifiedJoinColumns();
-		assertEquals("FOO", joinColumns.next().getName());
-		assertEquals("BAR", joinColumns.next().getName());
-		assertEquals("BAZ", joinColumns.next().getName());
-		assertFalse(joinColumns.hasNext());
-		
-		xmlAssociationOverride.getJoinColumns().move(2, 0);
-		joinColumns = ormAssociationOverride.specifiedJoinColumns();
-		assertEquals("BAR", joinColumns.next().getName());
-		assertEquals("BAZ", joinColumns.next().getName());
-		assertEquals("FOO", joinColumns.next().getName());
-		assertFalse(joinColumns.hasNext());
-
-		xmlAssociationOverride.getJoinColumns().move(0, 1);
-		joinColumns = ormAssociationOverride.specifiedJoinColumns();
-		assertEquals("BAZ", joinColumns.next().getName());
-		assertEquals("BAR", joinColumns.next().getName());
-		assertEquals("FOO", joinColumns.next().getName());
-		assertFalse(joinColumns.hasNext());
-
-		xmlAssociationOverride.getJoinColumns().remove(1);
-		joinColumns = ormAssociationOverride.specifiedJoinColumns();
-		assertEquals("BAZ", joinColumns.next().getName());
-		assertEquals("FOO", joinColumns.next().getName());
-		assertFalse(joinColumns.hasNext());
-
-		xmlAssociationOverride.getJoinColumns().remove(1);
-		joinColumns = ormAssociationOverride.specifiedJoinColumns();
-		assertEquals("BAZ", joinColumns.next().getName());
-		assertFalse(joinColumns.hasNext());
-		
-		xmlAssociationOverride.getJoinColumns().remove(0);
-		assertFalse(ormAssociationOverride.specifiedJoinColumns().hasNext());
-	}
-}
\ No newline at end of file
diff --git a/jpa/tests/org.eclipse.jpt.core.tests/src/org/eclipse/jpt/core/tests/internal/context/orm/OrmAttributeOverrideTests.java b/jpa/tests/org.eclipse.jpt.core.tests/src/org/eclipse/jpt/core/tests/internal/context/orm/OrmAttributeOverrideTests.java
deleted file mode 100644
index fdb62a5..0000000
--- a/jpa/tests/org.eclipse.jpt.core.tests/src/org/eclipse/jpt/core/tests/internal/context/orm/OrmAttributeOverrideTests.java
+++ /dev/null
@@ -1,96 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.core.tests.internal.context.orm;
-
-import org.eclipse.jpt.core.JptCorePlugin;
-import org.eclipse.jpt.core.MappingKeys;
-import org.eclipse.jpt.core.context.orm.OrmAttributeOverride;
-import org.eclipse.jpt.core.context.orm.OrmEntity;
-import org.eclipse.jpt.core.context.orm.OrmPersistentType;
-import org.eclipse.jpt.core.resource.orm.OrmFactory;
-import org.eclipse.jpt.core.resource.orm.XmlAttributeOverride;
-import org.eclipse.jpt.core.resource.orm.XmlEntity;
-import org.eclipse.jpt.core.resource.persistence.PersistenceFactory;
-import org.eclipse.jpt.core.resource.persistence.XmlMappingFileRef;
-import org.eclipse.jpt.core.tests.internal.context.ContextModelTestCase;
-
-@SuppressWarnings("nls")
-public class OrmAttributeOverrideTests extends ContextModelTestCase
-{
-	public OrmAttributeOverrideTests(String name) {
-		super(name);
-	}
-	
-	@Override
-	protected void setUp() throws Exception {
-		super.setUp();
-		XmlMappingFileRef mappingFileRef = PersistenceFactory.eINSTANCE.createXmlMappingFileRef();
-		mappingFileRef.setFileName(JptCorePlugin.DEFAULT_ORM_XML_FILE_PATH);
-		getXmlPersistenceUnit().getMappingFiles().add(mappingFileRef);
-		getPersistenceXmlResource().save(null);
-	}
-	
-	public void testUpdateName() throws Exception {
-		OrmPersistentType ormPersistentType = getEntityMappings().addPersistentType(MappingKeys.ENTITY_TYPE_MAPPING_KEY, "model.foo");
-		OrmEntity ormEntity = (OrmEntity) ormPersistentType.getMapping();
-		
-		XmlEntity entityResource = getXmlEntityMappings().getEntities().get(0);
-		entityResource.getAttributeOverrides().add(OrmFactory.eINSTANCE.createXmlAttributeOverrideImpl());
-		XmlAttributeOverride attributeOverrideResource = entityResource.getAttributeOverrides().get(0);
-		OrmAttributeOverride ormAttributeOverride = ormEntity.specifiedAttributeOverrides().next();
-		
-		assertNull(ormAttributeOverride.getName());
-		assertNull(attributeOverrideResource.getName());
-		assertTrue(ormEntity.attributeOverrides().hasNext());
-		assertFalse(entityResource.getAttributeOverrides().isEmpty());
-		
-		//set name in the resource model, verify context model updated
-		attributeOverrideResource.setName("FOO");
-		assertEquals("FOO", ormAttributeOverride.getName());
-		assertEquals("FOO", attributeOverrideResource.getName());
-	
-		//set name to null in the resource model
-		attributeOverrideResource.setName(null);
-		assertNull(ormAttributeOverride.getName());
-		assertNull(attributeOverrideResource.getName());
-		
-		attributeOverrideResource.setName("FOO");
-		assertEquals("FOO", ormAttributeOverride.getName());
-		assertEquals("FOO", attributeOverrideResource.getName());
-
-		entityResource.getAttributeOverrides().remove(0);
-		assertFalse(ormEntity.attributeOverrides().hasNext());
-		assertTrue(entityResource.getAttributeOverrides().isEmpty());
-	}
-	
-	public void testModifyName() throws Exception {
-		OrmPersistentType ormPersistentType = getEntityMappings().addPersistentType(MappingKeys.ENTITY_TYPE_MAPPING_KEY, "model.foo");
-		OrmEntity ormEntity = (OrmEntity) ormPersistentType.getMapping();
-		
-		XmlEntity entityResource = getXmlEntityMappings().getEntities().get(0);
-		entityResource.getAttributeOverrides().add(OrmFactory.eINSTANCE.createXmlAttributeOverrideImpl());
-		XmlAttributeOverride attributeOverrideResource = entityResource.getAttributeOverrides().get(0);
-		OrmAttributeOverride ormAttributeOverride = ormEntity.specifiedAttributeOverrides().next();
-
-		assertNull(ormAttributeOverride.getName());
-		assertNull(attributeOverrideResource.getName());
-		
-		//set name in the context model, verify resource model modified
-		ormAttributeOverride.setName("foo");
-		assertEquals("foo", ormAttributeOverride.getName());
-		assertEquals("foo", attributeOverrideResource.getName());
-		
-		//set name to null in the context model
-		ormAttributeOverride.setName(null);
-		assertNull(ormAttributeOverride.getName());
-		assertNull(entityResource.getAttributeOverrides().get(0).getName());
-	}
-
-}
\ No newline at end of file
diff --git a/jpa/tests/org.eclipse.jpt.core.tests/src/org/eclipse/jpt/core/tests/internal/context/orm/OrmBasicMappingTests.java b/jpa/tests/org.eclipse.jpt.core.tests/src/org/eclipse/jpt/core/tests/internal/context/orm/OrmBasicMappingTests.java
deleted file mode 100644
index 15a7d50..0000000
--- a/jpa/tests/org.eclipse.jpt.core.tests/src/org/eclipse/jpt/core/tests/internal/context/orm/OrmBasicMappingTests.java
+++ /dev/null
@@ -1,709 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.core.tests.internal.context.orm;
-
-import java.util.Iterator;
-import org.eclipse.jdt.core.ICompilationUnit;
-import org.eclipse.jpt.core.JptCorePlugin;
-import org.eclipse.jpt.core.MappingKeys;
-import org.eclipse.jpt.core.context.BasicMapping;
-import org.eclipse.jpt.core.context.Converter;
-import org.eclipse.jpt.core.context.EmbeddedIdMapping;
-import org.eclipse.jpt.core.context.EmbeddedMapping;
-import org.eclipse.jpt.core.context.EnumType;
-import org.eclipse.jpt.core.context.EnumeratedConverter;
-import org.eclipse.jpt.core.context.FetchType;
-import org.eclipse.jpt.core.context.IdMapping;
-import org.eclipse.jpt.core.context.ManyToManyMapping;
-import org.eclipse.jpt.core.context.ManyToOneMapping;
-import org.eclipse.jpt.core.context.OneToManyMapping;
-import org.eclipse.jpt.core.context.OneToOneMapping;
-import org.eclipse.jpt.core.context.TemporalConverter;
-import org.eclipse.jpt.core.context.TemporalType;
-import org.eclipse.jpt.core.context.TransientMapping;
-import org.eclipse.jpt.core.context.VersionMapping;
-import org.eclipse.jpt.core.context.orm.OrmBasicMapping;
-import org.eclipse.jpt.core.context.orm.OrmColumn;
-import org.eclipse.jpt.core.context.orm.OrmPersistentAttribute;
-import org.eclipse.jpt.core.context.orm.OrmPersistentType;
-import org.eclipse.jpt.core.resource.java.JPA;
-import org.eclipse.jpt.core.resource.orm.XmlBasic;
-import org.eclipse.jpt.core.resource.persistence.PersistenceFactory;
-import org.eclipse.jpt.core.resource.persistence.XmlMappingFileRef;
-import org.eclipse.jpt.core.tests.internal.context.ContextModelTestCase;
-import org.eclipse.jpt.utility.internal.iterators.ArrayIterator;
-
-@SuppressWarnings("nls")
-public class OrmBasicMappingTests extends ContextModelTestCase
-{
-	public OrmBasicMappingTests(String name) {
-		super(name);
-	}	
-	
-	@Override
-	protected void setUp() throws Exception {
-		super.setUp();
-		XmlMappingFileRef mappingFileRef = PersistenceFactory.eINSTANCE.createXmlMappingFileRef();
-		mappingFileRef.setFileName(JptCorePlugin.DEFAULT_ORM_XML_FILE_PATH);
-		getXmlPersistenceUnit().getMappingFiles().add(mappingFileRef);
-		getPersistenceXmlResource().save(null);
-	}
-	
-	private ICompilationUnit createTestEntityBasicMapping() throws Exception {
-		return this.createTestType(new DefaultAnnotationWriter() {
-			@Override
-			public Iterator<String> imports() {
-				return new ArrayIterator<String>(JPA.ENTITY, JPA.BASIC, JPA.FETCH_TYPE, JPA.COLUMN, JPA.LOB, JPA.TEMPORAL, JPA.TEMPORAL_TYPE, JPA.ENUMERATED, JPA.ENUM_TYPE);
-			}
-			@Override
-			public void appendTypeAnnotationTo(StringBuilder sb) {
-				sb.append("@Entity");
-			}
-			
-			@Override
-			public void appendIdFieldAnnotationTo(StringBuilder sb) {
-				sb.append("@Basic(fetch=FetchType.LAZY, optional=false)");
-				sb.append(CR);
-				sb.append("    @Column(name=\"MY_COLUMN\", unique=true, nullable=false, insertable=false, updatable=false, columnDefinition=\"COLUMN_DEFINITION\", table=\"MY_TABLE\", length=5, precision=6, scale=7)");
-				sb.append(CR);
-				sb.append("    @Lob");
-				sb.append(CR);
-				sb.append("    @Temporal(TemporalType.TIMESTAMP)");
-				sb.append(CR);
-				sb.append("    @Enumerated(EnumType.STRING)");
-			}
-		});
-	}
-	
-	public void testUpdateName() throws Exception {
-		OrmPersistentType ormPersistentType = getEntityMappings().addPersistentType(MappingKeys.ENTITY_TYPE_MAPPING_KEY, "model.Foo");
-		OrmPersistentAttribute ormPersistentAttribute = ormPersistentType.addSpecifiedPersistentAttribute(MappingKeys.BASIC_ATTRIBUTE_MAPPING_KEY, "basicMapping");
-		OrmBasicMapping ormBasicMapping = (OrmBasicMapping) ormPersistentAttribute.getMapping();
-		XmlBasic basicResource = getXmlEntityMappings().getEntities().get(0).getAttributes().getBasics().get(0);
-		
-		assertEquals("basicMapping", ormBasicMapping.getName());
-		assertEquals("basicMapping", basicResource.getName());
-				
-		//set name in the resource model, verify context model updated
-		basicResource.setName("newName");
-		assertEquals("newName", ormBasicMapping.getName());
-		assertEquals("newName", basicResource.getName());
-	
-		//set name to null in the resource model
-		basicResource.setName(null);
-		assertNull(ormBasicMapping.getName());
-		assertNull(basicResource.getName());
-	}
-	
-	public void testModifyName() throws Exception {
-		OrmPersistentType ormPersistentType = getEntityMappings().addPersistentType(MappingKeys.ENTITY_TYPE_MAPPING_KEY, "model.Foo");
-		OrmPersistentAttribute ormPersistentAttribute = ormPersistentType.addSpecifiedPersistentAttribute(MappingKeys.BASIC_ATTRIBUTE_MAPPING_KEY, "basicMapping");
-		OrmBasicMapping ormBasicMapping = (OrmBasicMapping) ormPersistentAttribute.getMapping();
-		XmlBasic basicResource = getXmlEntityMappings().getEntities().get(0).getAttributes().getBasics().get(0);
-		
-		assertEquals("basicMapping", ormBasicMapping.getName());
-		assertEquals("basicMapping", basicResource.getName());
-				
-		//set name in the context model, verify resource model updated
-		ormBasicMapping.setName("newName");
-		assertEquals("newName", ormBasicMapping.getName());
-		assertEquals("newName", basicResource.getName());
-	
-		//set name to null in the context model
-		ormBasicMapping.setName(null);
-		assertNull(ormBasicMapping.getName());
-		assertNull(basicResource.getName());
-	}
-
-	public void testUpdateSpecifiedFetch() throws Exception {
-		OrmPersistentType ormPersistentType = getEntityMappings().addPersistentType(MappingKeys.ENTITY_TYPE_MAPPING_KEY, "model.Foo");
-		OrmPersistentAttribute ormPersistentAttribute = ormPersistentType.addSpecifiedPersistentAttribute(MappingKeys.BASIC_ATTRIBUTE_MAPPING_KEY, "basicMapping");
-		OrmBasicMapping ormBasicMapping = (OrmBasicMapping) ormPersistentAttribute.getMapping();
-		XmlBasic basicResource = getXmlEntityMappings().getEntities().get(0).getAttributes().getBasics().get(0);
-		
-		assertNull(ormBasicMapping.getSpecifiedFetch());
-		assertNull(basicResource.getFetch());
-				
-		//set fetch in the resource model, verify context model updated
-		basicResource.setFetch(org.eclipse.jpt.core.resource.orm.FetchType.EAGER);
-		assertEquals(FetchType.EAGER, ormBasicMapping.getSpecifiedFetch());
-		assertEquals(org.eclipse.jpt.core.resource.orm.FetchType.EAGER, basicResource.getFetch());
-	
-		basicResource.setFetch(org.eclipse.jpt.core.resource.orm.FetchType.LAZY);
-		assertEquals(FetchType.LAZY, ormBasicMapping.getSpecifiedFetch());
-		assertEquals(org.eclipse.jpt.core.resource.orm.FetchType.LAZY, basicResource.getFetch());
-
-		//set fetch to null in the resource model
-		basicResource.setFetch(null);
-		assertNull(ormBasicMapping.getSpecifiedFetch());
-		assertNull(basicResource.getFetch());
-	}
-	
-	public void testModifySpecifiedFetch() throws Exception {
-		OrmPersistentType ormPersistentType = getEntityMappings().addPersistentType(MappingKeys.ENTITY_TYPE_MAPPING_KEY, "model.Foo");
-		OrmPersistentAttribute ormPersistentAttribute = ormPersistentType.addSpecifiedPersistentAttribute(MappingKeys.BASIC_ATTRIBUTE_MAPPING_KEY, "basicMapping");
-		OrmBasicMapping ormBasicMapping = (OrmBasicMapping) ormPersistentAttribute.getMapping();
-		XmlBasic basicResource = getXmlEntityMappings().getEntities().get(0).getAttributes().getBasics().get(0);
-		
-		assertNull(ormBasicMapping.getSpecifiedFetch());
-		assertNull(basicResource.getFetch());
-				
-		//set fetch in the context model, verify resource model updated
-		ormBasicMapping.setSpecifiedFetch(FetchType.EAGER);
-		assertEquals(org.eclipse.jpt.core.resource.orm.FetchType.EAGER, basicResource.getFetch());
-		assertEquals(FetchType.EAGER, ormBasicMapping.getSpecifiedFetch());
-	
-		ormBasicMapping.setSpecifiedFetch(FetchType.LAZY);
-		assertEquals(org.eclipse.jpt.core.resource.orm.FetchType.LAZY, basicResource.getFetch());
-		assertEquals(FetchType.LAZY, ormBasicMapping.getSpecifiedFetch());
-
-		//set fetch to null in the context model
-		ormBasicMapping.setSpecifiedFetch(null);
-		assertNull(basicResource.getFetch());
-		assertNull(ormBasicMapping.getSpecifiedFetch());
-	}
-	
-	public void testUpdateSpecifiedEnumerated() throws Exception {
-		OrmPersistentType ormPersistentType = getEntityMappings().addPersistentType(MappingKeys.ENTITY_TYPE_MAPPING_KEY, "model.Foo");
-		OrmPersistentAttribute ormPersistentAttribute = ormPersistentType.addSpecifiedPersistentAttribute(MappingKeys.BASIC_ATTRIBUTE_MAPPING_KEY, "basicMapping");
-		OrmBasicMapping ormBasicMapping = (OrmBasicMapping) ormPersistentAttribute.getMapping();
-		XmlBasic basicResource = getXmlEntityMappings().getEntities().get(0).getAttributes().getBasics().get(0);
-		
-		assertNull(ormBasicMapping.getSpecifiedConverter());
-		assertNull(basicResource.getEnumerated());
-				
-		//set enumerated in the resource model, verify context model updated
-		basicResource.setEnumerated(org.eclipse.jpt.core.resource.orm.EnumType.ORDINAL);
-		assertEquals(EnumType.ORDINAL, ((EnumeratedConverter) ormBasicMapping.getConverter()).getSpecifiedEnumType());
-		assertEquals(org.eclipse.jpt.core.resource.orm.EnumType.ORDINAL, basicResource.getEnumerated());
-	
-		basicResource.setEnumerated(org.eclipse.jpt.core.resource.orm.EnumType.STRING);
-		assertEquals(EnumType.STRING, ((EnumeratedConverter) ormBasicMapping.getConverter()).getSpecifiedEnumType());
-		assertEquals(org.eclipse.jpt.core.resource.orm.EnumType.STRING, basicResource.getEnumerated());
-
-		//set enumerated to null in the resource model
-		basicResource.setEnumerated(null);
-		assertNull(ormBasicMapping.getSpecifiedConverter());
-		assertNull(basicResource.getEnumerated());
-	}
-	
-	public void testModifySpecifiedEnumerated() throws Exception {
-		OrmPersistentType ormPersistentType = getEntityMappings().addPersistentType(MappingKeys.ENTITY_TYPE_MAPPING_KEY, "model.Foo");
-		OrmPersistentAttribute ormPersistentAttribute = ormPersistentType.addSpecifiedPersistentAttribute(MappingKeys.BASIC_ATTRIBUTE_MAPPING_KEY, "basicMapping");
-		OrmBasicMapping ormBasicMapping = (OrmBasicMapping) ormPersistentAttribute.getMapping();
-		XmlBasic basicResource = getXmlEntityMappings().getEntities().get(0).getAttributes().getBasics().get(0);
-		
-		assertNull(ormBasicMapping.getSpecifiedConverter());
-		assertNull(basicResource.getEnumerated());
-				
-		//set enumerated in the context model, verify resource model updated
-		ormBasicMapping.setSpecifiedConverter(Converter.ENUMERATED_CONVERTER);
-		((EnumeratedConverter) ormBasicMapping.getConverter()).setSpecifiedEnumType(EnumType.ORDINAL);
-		assertEquals(org.eclipse.jpt.core.resource.orm.EnumType.ORDINAL, basicResource.getEnumerated());
-		assertEquals(EnumType.ORDINAL, ((EnumeratedConverter) ormBasicMapping.getConverter()).getSpecifiedEnumType());
-	
-		((EnumeratedConverter) ormBasicMapping.getConverter()).setSpecifiedEnumType(EnumType.STRING);
-		assertEquals(org.eclipse.jpt.core.resource.orm.EnumType.STRING, basicResource.getEnumerated());
-		assertEquals(EnumType.STRING, ((EnumeratedConverter) ormBasicMapping.getConverter()).getSpecifiedEnumType());
-
-		//set enumerated to null in the context model
-		ormBasicMapping.setSpecifiedConverter(null);
-		assertNull(basicResource.getEnumerated());
-		assertNull(ormBasicMapping.getSpecifiedConverter());
-	}
-	
-	public void testUpdateSpecifiedOptional() throws Exception {
-		OrmPersistentType ormPersistentType = getEntityMappings().addPersistentType(MappingKeys.ENTITY_TYPE_MAPPING_KEY, "model.Foo");
-		OrmPersistentAttribute ormPersistentAttribute = ormPersistentType.addSpecifiedPersistentAttribute(MappingKeys.BASIC_ATTRIBUTE_MAPPING_KEY, "basicMapping");
-		OrmBasicMapping ormBasicMapping = (OrmBasicMapping) ormPersistentAttribute.getMapping();
-		XmlBasic basicResource = getXmlEntityMappings().getEntities().get(0).getAttributes().getBasics().get(0);
-		
-		assertNull(ormBasicMapping.getSpecifiedOptional());
-		assertNull(basicResource.getOptional());
-				
-		//set enumerated in the resource model, verify context model updated
-		basicResource.setOptional(Boolean.TRUE);
-		assertEquals(Boolean.TRUE, ormBasicMapping.getSpecifiedOptional());
-		assertEquals(Boolean.TRUE, basicResource.getOptional());
-	
-		basicResource.setOptional(Boolean.FALSE);
-		assertEquals(Boolean.FALSE, ormBasicMapping.getSpecifiedOptional());
-		assertEquals(Boolean.FALSE, basicResource.getOptional());
-
-		//set enumerated to null in the resource model
-		basicResource.setOptional(null);
-		assertNull(ormBasicMapping.getSpecifiedOptional());
-		assertNull(basicResource.getOptional());
-	}
-	
-	public void testModifySpecifiedOptional() throws Exception {
-		OrmPersistentType ormPersistentType = getEntityMappings().addPersistentType(MappingKeys.ENTITY_TYPE_MAPPING_KEY, "model.Foo");
-		OrmPersistentAttribute ormPersistentAttribute = ormPersistentType.addSpecifiedPersistentAttribute(MappingKeys.BASIC_ATTRIBUTE_MAPPING_KEY, "basicMapping");
-		OrmBasicMapping ormBasicMapping = (OrmBasicMapping) ormPersistentAttribute.getMapping();
-		XmlBasic basicResource = getXmlEntityMappings().getEntities().get(0).getAttributes().getBasics().get(0);
-		
-		assertNull(ormBasicMapping.getSpecifiedOptional());
-		assertNull(basicResource.getOptional());
-				
-		//set enumerated in the context model, verify resource model updated
-		ormBasicMapping.setSpecifiedOptional(Boolean.TRUE);
-		assertEquals(Boolean.TRUE, basicResource.getOptional());
-		assertEquals(Boolean.TRUE, ormBasicMapping.getSpecifiedOptional());
-	
-		ormBasicMapping.setSpecifiedOptional(Boolean.FALSE);
-		assertEquals(Boolean.FALSE, basicResource.getOptional());
-		assertEquals(Boolean.FALSE, ormBasicMapping.getSpecifiedOptional());
-
-		//set enumerated to null in the context model
-		ormBasicMapping.setSpecifiedOptional(null);
-		assertNull(basicResource.getOptional());
-		assertNull(ormBasicMapping.getSpecifiedOptional());
-	}
-	
-	public void testUpdateSpecifiedLob() throws Exception {
-		OrmPersistentType ormPersistentType = getEntityMappings().addPersistentType(MappingKeys.ENTITY_TYPE_MAPPING_KEY, "model.Foo");
-		OrmPersistentAttribute ormPersistentAttribute = ormPersistentType.addSpecifiedPersistentAttribute(MappingKeys.BASIC_ATTRIBUTE_MAPPING_KEY, "basicMapping");
-		OrmBasicMapping ormBasicMapping = (OrmBasicMapping) ormPersistentAttribute.getMapping();
-		XmlBasic basicResource = getXmlEntityMappings().getEntities().get(0).getAttributes().getBasics().get(0);
-		
-		assertNull(ormBasicMapping.getSpecifiedConverter());
-		assertFalse(basicResource.isLob());
-				
-		//set lob in the resource model, verify context model updated
-		basicResource.setLob(true);
-		assertEquals(Converter.LOB_CONVERTER, ormBasicMapping.getConverter().getType());
-		assertTrue(basicResource.isLob());
-
-		//set lob to null in the resource model
-		basicResource.setLob(false);
-		assertNull(ormBasicMapping.getSpecifiedConverter());
-		assertFalse(basicResource.isLob());
-	}
-	
-	public void testModifySpecifiedLob() throws Exception {
-		OrmPersistentType ormPersistentType = getEntityMappings().addPersistentType(MappingKeys.ENTITY_TYPE_MAPPING_KEY, "model.Foo");
-		OrmPersistentAttribute ormPersistentAttribute = ormPersistentType.addSpecifiedPersistentAttribute(MappingKeys.BASIC_ATTRIBUTE_MAPPING_KEY, "basicMapping");
-		OrmBasicMapping ormBasicMapping = (OrmBasicMapping) ormPersistentAttribute.getMapping();
-		XmlBasic basicResource = getXmlEntityMappings().getEntities().get(0).getAttributes().getBasics().get(0);
-	
-		assertNull(ormBasicMapping.getSpecifiedConverter());
-		assertFalse(basicResource.isLob());
-				
-		//set lob in the context model, verify resource model updated
-		ormBasicMapping.setSpecifiedConverter(Converter.LOB_CONVERTER);
-		assertTrue(basicResource.isLob());
-		assertEquals(Converter.LOB_CONVERTER, ormBasicMapping.getConverter().getType());
-	
-		//set lob to false in the context model
-		ormBasicMapping.setSpecifiedConverter(null);
-		assertFalse(basicResource.isLob());
-		assertNull(ormBasicMapping.getSpecifiedConverter());
-	}
-	
-	public void testUpdateTemporal() throws Exception {
-		OrmPersistentType ormPersistentType = getEntityMappings().addPersistentType(MappingKeys.ENTITY_TYPE_MAPPING_KEY, "model.Foo");
-		OrmPersistentAttribute ormPersistentAttribute = ormPersistentType.addSpecifiedPersistentAttribute(MappingKeys.BASIC_ATTRIBUTE_MAPPING_KEY, "basicMapping");
-		OrmBasicMapping ormBasicMapping = (OrmBasicMapping) ormPersistentAttribute.getMapping();
-		XmlBasic basicResource = getXmlEntityMappings().getEntities().get(0).getAttributes().getBasics().get(0);
-		
-		assertNull(ormBasicMapping.getSpecifiedConverter());
-		assertNull(basicResource.getTemporal());
-				
-		//set temporal in the resource model, verify context model updated
-		basicResource.setTemporal(org.eclipse.jpt.core.resource.orm.TemporalType.DATE);
-		assertEquals(TemporalType.DATE, ((TemporalConverter) ormBasicMapping.getConverter()).getTemporalType());
-		assertEquals(org.eclipse.jpt.core.resource.orm.TemporalType.DATE, basicResource.getTemporal());
-	
-		basicResource.setTemporal(org.eclipse.jpt.core.resource.orm.TemporalType.TIME);
-		assertEquals(TemporalType.TIME, ((TemporalConverter) ormBasicMapping.getConverter()).getTemporalType());
-		assertEquals(org.eclipse.jpt.core.resource.orm.TemporalType.TIME, basicResource.getTemporal());
-
-		basicResource.setTemporal(org.eclipse.jpt.core.resource.orm.TemporalType.TIMESTAMP);
-		assertEquals(TemporalType.TIMESTAMP, ((TemporalConverter) ormBasicMapping.getConverter()).getTemporalType());
-		assertEquals(org.eclipse.jpt.core.resource.orm.TemporalType.TIMESTAMP, basicResource.getTemporal());
-
-		//set temporal to null in the resource model
-		basicResource.setTemporal(null);
-		assertNull(ormBasicMapping.getSpecifiedConverter());
-		assertNull(basicResource.getTemporal());
-	}
-	
-	public void testModifyTemporal() throws Exception {
-		OrmPersistentType ormPersistentType = getEntityMappings().addPersistentType(MappingKeys.ENTITY_TYPE_MAPPING_KEY, "model.Foo");
-		OrmPersistentAttribute ormPersistentAttribute = ormPersistentType.addSpecifiedPersistentAttribute(MappingKeys.BASIC_ATTRIBUTE_MAPPING_KEY, "basicMapping");
-		OrmBasicMapping ormBasicMapping = (OrmBasicMapping) ormPersistentAttribute.getMapping();
-		XmlBasic basicResource = getXmlEntityMappings().getEntities().get(0).getAttributes().getBasics().get(0);
-		
-		assertNull(ormBasicMapping.getSpecifiedConverter());
-		assertNull(basicResource.getTemporal());
-				
-		//set temporal in the context model, verify resource model updated
-		ormBasicMapping.setSpecifiedConverter(Converter.TEMPORAL_CONVERTER);
-		((TemporalConverter) ormBasicMapping.getSpecifiedConverter()).setTemporalType(TemporalType.DATE);
-		assertEquals(org.eclipse.jpt.core.resource.orm.TemporalType.DATE, basicResource.getTemporal());
-		assertEquals(TemporalType.DATE, ((TemporalConverter) ormBasicMapping.getSpecifiedConverter()).getTemporalType());
-	
-		((TemporalConverter) ormBasicMapping.getSpecifiedConverter()).setTemporalType(TemporalType.TIME);
-		assertEquals(org.eclipse.jpt.core.resource.orm.TemporalType.TIME, basicResource.getTemporal());
-		assertEquals(TemporalType.TIME, ((TemporalConverter) ormBasicMapping.getSpecifiedConverter()).getTemporalType());
-
-		((TemporalConverter) ormBasicMapping.getSpecifiedConverter()).setTemporalType(TemporalType.TIMESTAMP);
-		assertEquals(org.eclipse.jpt.core.resource.orm.TemporalType.TIMESTAMP, basicResource.getTemporal());
-		assertEquals(TemporalType.TIMESTAMP, ((TemporalConverter) ormBasicMapping.getSpecifiedConverter()).getTemporalType());
-
-		//set temporal to null in the context model
-		ormBasicMapping.setSpecifiedConverter(null);
-		assertNull(basicResource.getTemporal());
-		assertNull(ormBasicMapping.getSpecifiedConverter());
-	}
-	
-	//TODO test defaults
-	//TODO test overriding java mapping with a different mapping type in xml
-
-
-	public void testBasicMappingNoUnderylingJavaAttribute() throws Exception {
-		createTestEntityBasicMapping();
-
-		OrmPersistentType ormPersistentType = getEntityMappings().addPersistentType(MappingKeys.ENTITY_TYPE_MAPPING_KEY, FULLY_QUALIFIED_TYPE_NAME);
-		ormPersistentType.addSpecifiedPersistentAttribute(MappingKeys.BASIC_ATTRIBUTE_MAPPING_KEY, "foo");
-		assertEquals(2, ormPersistentType.virtualAttributesSize());
-		
-		OrmPersistentAttribute ormPersistentAttribute = ormPersistentType.specifiedAttributes().next();
-		OrmBasicMapping ormBasicMapping = (OrmBasicMapping) ormPersistentAttribute.getMapping();
-		
-		assertEquals("foo", ormBasicMapping.getName());
-		assertNull(ormBasicMapping.getSpecifiedConverter());
-		assertNull(ormBasicMapping.getSpecifiedFetch());
-		assertNull(ormBasicMapping.getSpecifiedOptional());
-		assertEquals(FetchType.EAGER, ormBasicMapping.getFetch());
-		assertEquals(true, ormBasicMapping.isOptional());
-
-		
-		OrmColumn ormColumn = ormBasicMapping.getColumn();
-		assertNull(ormColumn.getSpecifiedName());
-		assertNull(ormColumn.getSpecifiedUnique());
-		assertNull(ormColumn.getSpecifiedNullable());
-		assertNull(ormColumn.getSpecifiedInsertable());
-		assertNull(ormColumn.getSpecifiedUpdatable());
-		assertNull(ormColumn.getColumnDefinition());
-		assertNull(ormColumn.getSpecifiedTable());
-		assertNull(ormColumn.getSpecifiedLength());
-		assertNull(ormColumn.getSpecifiedPrecision());
-		assertNull(ormColumn.getSpecifiedScale());
-		
-		assertEquals("foo", ormColumn.getDefaultName());
-		assertEquals(false, ormColumn.isDefaultUnique());
-		assertEquals(true, ormColumn.isDefaultNullable());
-		assertEquals(true, ormColumn.isDefaultInsertable());
-		assertEquals(true, ormColumn.isDefaultUpdatable());
-		assertEquals(null, ormColumn.getColumnDefinition());
-		assertEquals(TYPE_NAME, ormColumn.getDefaultTable());
-		assertEquals(255, ormColumn.getDefaultLength());
-		assertEquals(0, ormColumn.getDefaultPrecision());
-		assertEquals(0, ormColumn.getDefaultScale());
-	}
-	
-	//@Basic(fetch=FetchType.LAZY, optional=false)
-	//@Column(name="MY_COLUMN", unique=true, nullable=false, insertable=false, updatable=false, 
-	//    columnDefinition="COLUMN_DEFINITION", table="MY_TABLE", length=5, precision=6, scale=7)");
-	//@Column(
-	//@Lob
-	//@Temporal(TemporalType.TIMESTAMP)
-	//@Enumerated(EnumType.STRING)
-	public void testVirtualMappingMetadataCompleteFalse() throws Exception {
-		createTestEntityBasicMapping();
-		OrmPersistentType ormPersistentType = getEntityMappings().addPersistentType(MappingKeys.ENTITY_TYPE_MAPPING_KEY, FULLY_QUALIFIED_TYPE_NAME);
-		assertEquals(2, ormPersistentType.virtualAttributesSize());		
-		OrmPersistentAttribute ormPersistentAttribute = ormPersistentType.virtualAttributes().next();
-		
-		OrmBasicMapping ormBasicMapping = (OrmBasicMapping) ormPersistentAttribute.getMapping();	
-		assertEquals("id", ormBasicMapping.getName());
-		assertEquals(Converter.ENUMERATED_CONVERTER, ormBasicMapping.getConverter().getType());
-		assertEquals(EnumType.STRING, ((EnumeratedConverter) ormBasicMapping.getConverter()).getEnumType());
-		assertEquals(FetchType.LAZY, ormBasicMapping.getSpecifiedFetch());
-		assertEquals(Boolean.FALSE, ormBasicMapping.getSpecifiedOptional());
-		
-		OrmColumn ormColumn = ormBasicMapping.getColumn();
-		assertEquals("MY_COLUMN", ormColumn.getSpecifiedName());
-		assertEquals(Boolean.TRUE, ormColumn.getSpecifiedUnique());
-		assertEquals(Boolean.FALSE, ormColumn.getSpecifiedNullable());
-		assertEquals(Boolean.FALSE, ormColumn.getSpecifiedInsertable());
-		assertEquals(Boolean.FALSE, ormColumn.getSpecifiedUpdatable());
-		assertEquals("COLUMN_DEFINITION", ormColumn.getColumnDefinition());
-		assertEquals("MY_TABLE", ormColumn.getSpecifiedTable());
-		assertEquals(Integer.valueOf(5), ormColumn.getSpecifiedLength());
-		assertEquals(Integer.valueOf(6), ormColumn.getSpecifiedPrecision());
-		assertEquals(Integer.valueOf(7), ormColumn.getSpecifiedScale());
-	}
-	
-	public void testVirtualMappingMetadataCompleteTrue() throws Exception {
-		createTestEntityBasicMapping();
-		OrmPersistentType ormPersistentType = getEntityMappings().addPersistentType(MappingKeys.ENTITY_TYPE_MAPPING_KEY, FULLY_QUALIFIED_TYPE_NAME);
-		ormPersistentType.getMapping().setSpecifiedMetadataComplete(Boolean.TRUE);
-		assertEquals(2, ormPersistentType.virtualAttributesSize());		
-		OrmPersistentAttribute ormPersistentAttribute = ormPersistentType.virtualAttributes().next();
-		
-		OrmBasicMapping ormBasicMapping = (OrmBasicMapping) ormPersistentAttribute.getMapping();	
-		assertEquals("id", ormBasicMapping.getName());
-		assertEquals(Converter.NO_CONVERTER, ormBasicMapping.getConverter().getType());
-		assertEquals(FetchType.EAGER, ormBasicMapping.getSpecifiedFetch());
-		assertEquals(Boolean.TRUE, ormBasicMapping.getSpecifiedOptional());
-		
-		OrmColumn ormColumn = ormBasicMapping.getColumn();
-		assertEquals("id", ormColumn.getSpecifiedName());
-		assertEquals(Boolean.FALSE, ormColumn.getSpecifiedUnique());
-		assertEquals(Boolean.TRUE, ormColumn.getSpecifiedNullable());
-		assertEquals(Boolean.TRUE, ormColumn.getSpecifiedInsertable());
-		assertEquals(Boolean.TRUE, ormColumn.getSpecifiedUpdatable());
-		assertNull(ormColumn.getColumnDefinition());
-		assertEquals(TYPE_NAME, ormColumn.getSpecifiedTable());
-		assertEquals(Integer.valueOf(255), ormColumn.getSpecifiedLength());
-		assertEquals(Integer.valueOf(0), ormColumn.getSpecifiedPrecision());
-		assertEquals(Integer.valueOf(0), ormColumn.getSpecifiedScale());
-	}
-	
-	public void testSpecifiedMapping() throws Exception {
-		createTestEntityBasicMapping();
-
-		OrmPersistentType ormPersistentType = getEntityMappings().addPersistentType(MappingKeys.ENTITY_TYPE_MAPPING_KEY, FULLY_QUALIFIED_TYPE_NAME);
-		ormPersistentType.addSpecifiedPersistentAttribute(MappingKeys.BASIC_ATTRIBUTE_MAPPING_KEY, "id");
-		assertEquals(1, ormPersistentType.virtualAttributesSize());
-		
-		OrmPersistentAttribute ormPersistentAttribute = ormPersistentType.specifiedAttributes().next();
-		OrmBasicMapping ormBasicMapping = (OrmBasicMapping) ormPersistentAttribute.getMapping();
-		
-		assertEquals("id", ormBasicMapping.getName());
-		assertEquals(Converter.NO_CONVERTER, ormBasicMapping.getConverter().getType());
-		assertNull(ormBasicMapping.getSpecifiedFetch());
-		assertNull(ormBasicMapping.getSpecifiedOptional());
-		assertEquals(FetchType.EAGER, ormBasicMapping.getDefaultFetch());
-		assertEquals(true, ormBasicMapping.isDefaultOptional());
-		
-		OrmColumn ormColumn = ormBasicMapping.getColumn();
-		assertNull(ormColumn.getSpecifiedName());
-		assertNull(ormColumn.getSpecifiedUnique());
-		assertNull(ormColumn.getSpecifiedNullable());
-		assertNull(ormColumn.getSpecifiedInsertable());
-		assertNull(ormColumn.getSpecifiedUpdatable());
-		assertNull(ormColumn.getColumnDefinition());
-		assertNull(ormColumn.getSpecifiedTable());
-		assertNull(ormColumn.getSpecifiedLength());
-		assertNull(ormColumn.getSpecifiedPrecision());
-		assertNull(ormColumn.getSpecifiedScale());
-		
-		assertEquals("id", ormColumn.getDefaultName());
-		assertEquals(false, ormColumn.isDefaultUnique());
-		assertEquals(true, ormColumn.isDefaultNullable());
-		assertEquals(true, ormColumn.isDefaultInsertable());
-		assertEquals(true, ormColumn.isDefaultUpdatable());
-		assertEquals(null, ormColumn.getColumnDefinition());
-		assertEquals(TYPE_NAME, ormColumn.getDefaultTable());
-		assertEquals(255, ormColumn.getDefaultLength());
-		assertEquals(0, ormColumn.getDefaultPrecision());
-		assertEquals(0, ormColumn.getDefaultScale());
-
-	}
-	//3 things tested above
-	//1. virtual mapping metadata complete=false - defaults are taken from the java annotations
-	//2. virtual mapping metadata complete=true - defaults are taken from java defaults,annotations ignored
-	//3. specified mapping (metadata complete=true/false - defaults are taken from java annotations
-	
-	
-	public void testBasicMorphToIdMapping() throws Exception {
-		createTestEntityBasicMapping();
-		OrmPersistentType ormPersistentType = getEntityMappings().addPersistentType(MappingKeys.ENTITY_TYPE_MAPPING_KEY, FULLY_QUALIFIED_TYPE_NAME);
-		OrmPersistentAttribute ormPersistentAttribute = ormPersistentType.addSpecifiedPersistentAttribute(MappingKeys.BASIC_ATTRIBUTE_MAPPING_KEY, "basic");
-		
-		BasicMapping basicMapping = (BasicMapping) ormPersistentAttribute.getMapping();
-		assertFalse(basicMapping.isDefault());
-		basicMapping.getColumn().setSpecifiedName("FOO");
-		basicMapping.setSpecifiedConverter(Converter.TEMPORAL_CONVERTER);
-		((TemporalConverter) basicMapping.getSpecifiedConverter()).setTemporalType(TemporalType.TIME);
-		basicMapping.setSpecifiedFetch(FetchType.EAGER);
-		basicMapping.setSpecifiedOptional(Boolean.FALSE);
-		assertFalse(basicMapping.isDefault());
-		
-		ormPersistentAttribute.setSpecifiedMappingKey(MappingKeys.ID_ATTRIBUTE_MAPPING_KEY);
-		assertEquals(1, ormPersistentType.specifiedAttributesSize());
-		assertEquals(ormPersistentAttribute, ormPersistentType.specifiedAttributes().next());
-		assertTrue(ormPersistentAttribute.getMapping() instanceof IdMapping);
-		assertEquals("basic", ormPersistentAttribute.getMapping().getName());
-		assertEquals("FOO", ((IdMapping) ormPersistentAttribute.getMapping()).getColumn().getSpecifiedName());
-	}
-	
-	public void testBasicMorphToVersionMapping() throws Exception {
-		createTestEntityBasicMapping();
-		OrmPersistentType ormPersistentType = getEntityMappings().addPersistentType(MappingKeys.ENTITY_TYPE_MAPPING_KEY, FULLY_QUALIFIED_TYPE_NAME);
-		OrmPersistentAttribute ormPersistentAttribute = ormPersistentType.addSpecifiedPersistentAttribute(MappingKeys.BASIC_ATTRIBUTE_MAPPING_KEY, "basic");
-		
-		BasicMapping basicMapping = (BasicMapping) ormPersistentAttribute.getMapping();
-		assertFalse(basicMapping.isDefault());
-		basicMapping.getColumn().setSpecifiedName("FOO");
-		basicMapping.setSpecifiedConverter(Converter.TEMPORAL_CONVERTER);
-		((TemporalConverter) basicMapping.getSpecifiedConverter()).setTemporalType(TemporalType.TIME);
-		basicMapping.setSpecifiedFetch(FetchType.EAGER);
-		basicMapping.setSpecifiedOptional(Boolean.FALSE);
-		assertFalse(basicMapping.isDefault());
-		
-		ormPersistentAttribute.setSpecifiedMappingKey(MappingKeys.VERSION_ATTRIBUTE_MAPPING_KEY);
-		assertEquals(1, ormPersistentType.specifiedAttributesSize());
-		assertEquals(ormPersistentAttribute, ormPersistentType.specifiedAttributes().next());
-		assertTrue(ormPersistentAttribute.getMapping() instanceof VersionMapping);
-		assertEquals("basic", ormPersistentAttribute.getMapping().getName());
-		assertEquals("FOO", ((VersionMapping) ormPersistentAttribute.getMapping()).getColumn().getSpecifiedName());
-	}
-	
-	public void testBasicMorphToTransientMapping() throws Exception {
-		createTestEntityBasicMapping();
-		OrmPersistentType ormPersistentType = getEntityMappings().addPersistentType(MappingKeys.ENTITY_TYPE_MAPPING_KEY, FULLY_QUALIFIED_TYPE_NAME);
-		OrmPersistentAttribute ormPersistentAttribute = ormPersistentType.addSpecifiedPersistentAttribute(MappingKeys.BASIC_ATTRIBUTE_MAPPING_KEY, "basic");
-		
-		BasicMapping basicMapping = (BasicMapping) ormPersistentAttribute.getMapping();
-		assertFalse(basicMapping.isDefault());
-		basicMapping.getColumn().setSpecifiedName("FOO");
-		basicMapping.setSpecifiedConverter(Converter.TEMPORAL_CONVERTER);
-		((TemporalConverter) basicMapping.getSpecifiedConverter()).setTemporalType(TemporalType.TIME);
-		basicMapping.setSpecifiedFetch(FetchType.EAGER);
-		basicMapping.setSpecifiedOptional(Boolean.FALSE);
-		assertFalse(basicMapping.isDefault());
-		
-		ormPersistentAttribute.setSpecifiedMappingKey(MappingKeys.TRANSIENT_ATTRIBUTE_MAPPING_KEY);
-		assertEquals(1, ormPersistentType.specifiedAttributesSize());
-		assertEquals(ormPersistentAttribute, ormPersistentType.specifiedAttributes().next());
-		assertTrue(ormPersistentAttribute.getMapping() instanceof TransientMapping);
-		assertEquals("basic", ormPersistentAttribute.getMapping().getName());
-	}
-	
-	public void testBasicMorphToEmbeddedMapping() throws Exception {
-		createTestEntityBasicMapping();
-		OrmPersistentType ormPersistentType = getEntityMappings().addPersistentType(MappingKeys.ENTITY_TYPE_MAPPING_KEY, FULLY_QUALIFIED_TYPE_NAME);
-		OrmPersistentAttribute ormPersistentAttribute = ormPersistentType.addSpecifiedPersistentAttribute(MappingKeys.BASIC_ATTRIBUTE_MAPPING_KEY, "basic");
-		
-		BasicMapping basicMapping = (BasicMapping) ormPersistentAttribute.getMapping();
-		assertFalse(basicMapping.isDefault());
-		basicMapping.getColumn().setSpecifiedName("FOO");
-		basicMapping.setSpecifiedConverter(Converter.TEMPORAL_CONVERTER);
-		((TemporalConverter) basicMapping.getSpecifiedConverter()).setTemporalType(TemporalType.TIME);
-		basicMapping.setSpecifiedFetch(FetchType.EAGER);
-		basicMapping.setSpecifiedOptional(Boolean.FALSE);
-		assertFalse(basicMapping.isDefault());
-		
-		ormPersistentAttribute.setSpecifiedMappingKey(MappingKeys.EMBEDDED_ATTRIBUTE_MAPPING_KEY);
-		assertEquals(1, ormPersistentType.specifiedAttributesSize());
-		assertEquals(ormPersistentAttribute, ormPersistentType.specifiedAttributes().next());
-		assertTrue(ormPersistentAttribute.getMapping() instanceof EmbeddedMapping);
-		assertEquals("basic", ormPersistentAttribute.getMapping().getName());
-	}
-	
-	public void testBasicMorphToEmbeddedIdMapping() throws Exception {
-		createTestEntityBasicMapping();
-		OrmPersistentType ormPersistentType = getEntityMappings().addPersistentType(MappingKeys.ENTITY_TYPE_MAPPING_KEY, FULLY_QUALIFIED_TYPE_NAME);
-		OrmPersistentAttribute ormPersistentAttribute = ormPersistentType.addSpecifiedPersistentAttribute(MappingKeys.BASIC_ATTRIBUTE_MAPPING_KEY, "basic");
-		
-		BasicMapping basicMapping = (BasicMapping) ormPersistentAttribute.getMapping();
-		assertFalse(basicMapping.isDefault());
-		basicMapping.getColumn().setSpecifiedName("FOO");
-		basicMapping.setSpecifiedConverter(Converter.TEMPORAL_CONVERTER);
-		((TemporalConverter) basicMapping.getSpecifiedConverter()).setTemporalType(TemporalType.TIME);
-		basicMapping.setSpecifiedFetch(FetchType.EAGER);
-		basicMapping.setSpecifiedOptional(Boolean.FALSE);
-		assertFalse(basicMapping.isDefault());
-		
-		ormPersistentAttribute.setSpecifiedMappingKey(MappingKeys.EMBEDDED_ID_ATTRIBUTE_MAPPING_KEY);
-		assertEquals(1, ormPersistentType.specifiedAttributesSize());
-		assertEquals(ormPersistentAttribute, ormPersistentType.specifiedAttributes().next());
-		assertTrue(ormPersistentAttribute.getMapping() instanceof EmbeddedIdMapping);
-		assertEquals("basic", ormPersistentAttribute.getMapping().getName());
-	}
-	
-	public void testBasicMorphToOneToOneMapping() throws Exception {
-		createTestEntityBasicMapping();
-		OrmPersistentType ormPersistentType = getEntityMappings().addPersistentType(MappingKeys.ENTITY_TYPE_MAPPING_KEY, FULLY_QUALIFIED_TYPE_NAME);
-		OrmPersistentAttribute ormPersistentAttribute = ormPersistentType.addSpecifiedPersistentAttribute(MappingKeys.BASIC_ATTRIBUTE_MAPPING_KEY, "basic");
-		
-		BasicMapping basicMapping = (BasicMapping) ormPersistentAttribute.getMapping();
-		assertFalse(basicMapping.isDefault());
-		basicMapping.getColumn().setSpecifiedName("FOO");
-		basicMapping.setSpecifiedConverter(Converter.TEMPORAL_CONVERTER);
-		((TemporalConverter) basicMapping.getSpecifiedConverter()).setTemporalType(TemporalType.TIME);
-		basicMapping.setSpecifiedFetch(FetchType.EAGER);
-		basicMapping.setSpecifiedOptional(Boolean.FALSE);
-		assertFalse(basicMapping.isDefault());
-		
-		ormPersistentAttribute.setSpecifiedMappingKey(MappingKeys.ONE_TO_ONE_ATTRIBUTE_MAPPING_KEY);
-		assertEquals(1, ormPersistentType.specifiedAttributesSize());
-		assertEquals(ormPersistentAttribute, ormPersistentType.specifiedAttributes().next());
-		assertTrue(ormPersistentAttribute.getMapping() instanceof OneToOneMapping);
-		assertEquals("basic", ormPersistentAttribute.getMapping().getName());
-	}
-	
-	public void testBasicMorphToOneToManyMapping() throws Exception {
-		createTestEntityBasicMapping();
-		OrmPersistentType ormPersistentType = getEntityMappings().addPersistentType(MappingKeys.ENTITY_TYPE_MAPPING_KEY, FULLY_QUALIFIED_TYPE_NAME);
-		OrmPersistentAttribute ormPersistentAttribute = ormPersistentType.addSpecifiedPersistentAttribute(MappingKeys.BASIC_ATTRIBUTE_MAPPING_KEY, "basic");
-		
-		BasicMapping basicMapping = (BasicMapping) ormPersistentAttribute.getMapping();
-		assertFalse(basicMapping.isDefault());
-		basicMapping.getColumn().setSpecifiedName("FOO");
-		basicMapping.setSpecifiedConverter(Converter.TEMPORAL_CONVERTER);
-		((TemporalConverter) basicMapping.getSpecifiedConverter()).setTemporalType(TemporalType.TIME);
-		basicMapping.setSpecifiedFetch(FetchType.EAGER);
-		basicMapping.setSpecifiedOptional(Boolean.FALSE);
-		assertFalse(basicMapping.isDefault());
-		
-		ormPersistentAttribute.setSpecifiedMappingKey(MappingKeys.ONE_TO_MANY_ATTRIBUTE_MAPPING_KEY);
-		assertEquals(1, ormPersistentType.specifiedAttributesSize());
-		assertEquals(ormPersistentAttribute, ormPersistentType.specifiedAttributes().next());
-		assertTrue(ormPersistentAttribute.getMapping() instanceof OneToManyMapping);
-		assertEquals("basic", ormPersistentAttribute.getMapping().getName());
-	}
-	
-	public void testBasicMorphToManyToOneMapping() throws Exception {
-		createTestEntityBasicMapping();
-		OrmPersistentType ormPersistentType = getEntityMappings().addPersistentType(MappingKeys.ENTITY_TYPE_MAPPING_KEY, FULLY_QUALIFIED_TYPE_NAME);
-		OrmPersistentAttribute ormPersistentAttribute = ormPersistentType.addSpecifiedPersistentAttribute(MappingKeys.BASIC_ATTRIBUTE_MAPPING_KEY, "basic");
-		
-		BasicMapping basicMapping = (BasicMapping) ormPersistentAttribute.getMapping();
-		assertFalse(basicMapping.isDefault());
-		basicMapping.getColumn().setSpecifiedName("FOO");
-		basicMapping.setSpecifiedConverter(Converter.TEMPORAL_CONVERTER);
-		((TemporalConverter) basicMapping.getSpecifiedConverter()).setTemporalType(TemporalType.TIME);
-		basicMapping.setSpecifiedFetch(FetchType.EAGER);
-		basicMapping.setSpecifiedOptional(Boolean.FALSE);
-		assertFalse(basicMapping.isDefault());
-		
-		ormPersistentAttribute.setSpecifiedMappingKey(MappingKeys.MANY_TO_ONE_ATTRIBUTE_MAPPING_KEY);
-		assertEquals(1, ormPersistentType.specifiedAttributesSize());
-		assertEquals(ormPersistentAttribute, ormPersistentType.specifiedAttributes().next());
-		assertTrue(ormPersistentAttribute.getMapping() instanceof ManyToOneMapping);
-		assertEquals("basic", ormPersistentAttribute.getMapping().getName());
-	}
-	
-	public void testBasicMorphToManyToManyMapping() throws Exception {
-		createTestEntityBasicMapping();
-		OrmPersistentType ormPersistentType = getEntityMappings().addPersistentType(MappingKeys.ENTITY_TYPE_MAPPING_KEY, FULLY_QUALIFIED_TYPE_NAME);
-		OrmPersistentAttribute ormPersistentAttribute = ormPersistentType.addSpecifiedPersistentAttribute(MappingKeys.BASIC_ATTRIBUTE_MAPPING_KEY, "basic");
-		
-		BasicMapping basicMapping = (BasicMapping) ormPersistentAttribute.getMapping();
-		assertFalse(basicMapping.isDefault());
-		basicMapping.getColumn().setSpecifiedName("FOO");
-		basicMapping.setSpecifiedConverter(Converter.TEMPORAL_CONVERTER);
-		((TemporalConverter) basicMapping.getSpecifiedConverter()).setTemporalType(TemporalType.TIME);
-		basicMapping.setSpecifiedFetch(FetchType.EAGER);
-		basicMapping.setSpecifiedOptional(Boolean.FALSE);
-		assertFalse(basicMapping.isDefault());
-		
-		ormPersistentAttribute.setSpecifiedMappingKey(MappingKeys.MANY_TO_MANY_ATTRIBUTE_MAPPING_KEY);
-		assertEquals(1, ormPersistentType.specifiedAttributesSize());
-		assertEquals(ormPersistentAttribute, ormPersistentType.specifiedAttributes().next());
-		assertTrue(ormPersistentAttribute.getMapping() instanceof ManyToManyMapping);
-		assertEquals("basic", ormPersistentAttribute.getMapping().getName());
-	}
-}
\ No newline at end of file
diff --git a/jpa/tests/org.eclipse.jpt.core.tests/src/org/eclipse/jpt/core/tests/internal/context/orm/OrmCascadeTests.java b/jpa/tests/org.eclipse.jpt.core.tests/src/org/eclipse/jpt/core/tests/internal/context/orm/OrmCascadeTests.java
deleted file mode 100644
index 2ca8d45..0000000
--- a/jpa/tests/org.eclipse.jpt.core.tests/src/org/eclipse/jpt/core/tests/internal/context/orm/OrmCascadeTests.java
+++ /dev/null
@@ -1,280 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.core.tests.internal.context.orm;
-
-import org.eclipse.jpt.core.JptCorePlugin;
-import org.eclipse.jpt.core.MappingKeys;
-import org.eclipse.jpt.core.context.Cascade;
-import org.eclipse.jpt.core.context.orm.OrmOneToOneMapping;
-import org.eclipse.jpt.core.context.orm.OrmPersistentAttribute;
-import org.eclipse.jpt.core.context.orm.OrmPersistentType;
-import org.eclipse.jpt.core.resource.orm.OrmFactory;
-import org.eclipse.jpt.core.resource.orm.XmlOneToOne;
-import org.eclipse.jpt.core.resource.persistence.PersistenceFactory;
-import org.eclipse.jpt.core.resource.persistence.XmlMappingFileRef;
-import org.eclipse.jpt.core.tests.internal.context.ContextModelTestCase;
-
-@SuppressWarnings("nls")
-public class OrmCascadeTests extends ContextModelTestCase
-{
-	public OrmCascadeTests(String name) {
-		super(name);
-	}
-	
-	
-	@Override
-	protected void setUp() throws Exception {
-		super.setUp();
-		XmlMappingFileRef mappingFileRef = PersistenceFactory.eINSTANCE.createXmlMappingFileRef();
-		mappingFileRef.setFileName(JptCorePlugin.DEFAULT_ORM_XML_FILE_PATH);
-		getXmlPersistenceUnit().getMappingFiles().add(mappingFileRef);
-		getPersistenceXmlResource().save(null);
-	}
-	
-	public void testUpdateCascadeAll() throws Exception {
-		OrmPersistentType ormPersistentType = getEntityMappings().addPersistentType(MappingKeys.ENTITY_TYPE_MAPPING_KEY, "model.Foo");
-		OrmPersistentAttribute ormPersistentAttribute = ormPersistentType.addSpecifiedPersistentAttribute(MappingKeys.ONE_TO_ONE_ATTRIBUTE_MAPPING_KEY, "oneToOneMapping");
-		OrmOneToOneMapping ormOneToOneMapping = (OrmOneToOneMapping) ormPersistentAttribute.getMapping();
-		XmlOneToOne oneToOne = getXmlEntityMappings().getEntities().get(0).getAttributes().getOneToOnes().get(0);
-		Cascade cascade = ormOneToOneMapping.getCascade();
-		
-		assertEquals(false, cascade.isAll());
-		assertNull(oneToOne.getCascade());
-		
-		//set cascade in the resource model, verify context model does not change
-		oneToOne.setCascade(OrmFactory.eINSTANCE.createCascadeTypeImpl());
-		assertEquals(false, cascade.isAll());
-		assertNotNull(oneToOne.getCascade());
-				
-		//set all in the resource model, verify context model updated
-		oneToOne.getCascade().setCascadeAll(true);
-		assertEquals(true, cascade.isAll());
-		assertEquals(true, oneToOne.getCascade().isCascadeAll());
-		
-		//set all to false in the resource model
-		oneToOne.getCascade().setCascadeAll(false);
-		assertEquals(false, cascade.isAll());
-		assertEquals(false, oneToOne.getCascade().isCascadeAll());
-	}
-	
-	public void testModifyCascadeAll() throws Exception {
-		OrmPersistentType ormPersistentType = getEntityMappings().addPersistentType(MappingKeys.ENTITY_TYPE_MAPPING_KEY, "model.Foo");
-		OrmPersistentAttribute ormPersistentAttribute = ormPersistentType.addSpecifiedPersistentAttribute(MappingKeys.ONE_TO_ONE_ATTRIBUTE_MAPPING_KEY, "oneToOneMapping");
-		OrmOneToOneMapping ormOneToOneMapping = (OrmOneToOneMapping) ormPersistentAttribute.getMapping();
-		XmlOneToOne oneToOne = getXmlEntityMappings().getEntities().get(0).getAttributes().getOneToOnes().get(0);
-		
-		Cascade cascade = ormOneToOneMapping.getCascade();
-		
-		assertEquals(false, cascade.isAll());
-		assertNull(oneToOne.getCascade());
-					
-		//set all in the context model, verify resource model updated
-		cascade.setAll(true);
-		assertEquals(true, cascade.isAll());
-		assertEquals(true, oneToOne.getCascade().isCascadeAll());
-	
-		//set all to false in the context model
-		cascade.setAll(false);
-		assertEquals(false, cascade.isAll());
-		assertNull(oneToOne.getCascade());
-	}
-	
-	public void testUpdateCascadePersist() throws Exception {
-		OrmPersistentType ormPersistentType = getEntityMappings().addPersistentType(MappingKeys.ENTITY_TYPE_MAPPING_KEY, "model.Foo");
-		OrmPersistentAttribute ormPersistentAttribute = ormPersistentType.addSpecifiedPersistentAttribute(MappingKeys.ONE_TO_ONE_ATTRIBUTE_MAPPING_KEY, "oneToOneMapping");
-		OrmOneToOneMapping ormOneToOneMapping = (OrmOneToOneMapping) ormPersistentAttribute.getMapping();
-		XmlOneToOne oneToOne = getXmlEntityMappings().getEntities().get(0).getAttributes().getOneToOnes().get(0);
-		Cascade cascade = ormOneToOneMapping.getCascade();
-		
-		assertEquals(false, cascade.isPersist());
-		assertNull(oneToOne.getCascade());
-		
-		//set cascade in the resource model, verify context model does not change
-		oneToOne.setCascade(OrmFactory.eINSTANCE.createCascadeTypeImpl());
-		assertEquals(false, cascade.isPersist());
-		assertNotNull(oneToOne.getCascade());
-				
-		//set Persist in the resource model, verify context model updated
-		oneToOne.getCascade().setCascadePersist(true);
-		assertEquals(true, cascade.isPersist());
-		assertEquals(true, oneToOne.getCascade().isCascadePersist());
-		
-		//set Persist to false in the resource model
-		oneToOne.getCascade().setCascadePersist(false);
-		assertEquals(false, cascade.isPersist());
-		assertEquals(false, oneToOne.getCascade().isCascadePersist());
-	}
-	
-	public void testModifyCascadePersist() throws Exception {
-		OrmPersistentType ormPersistentType = getEntityMappings().addPersistentType(MappingKeys.ENTITY_TYPE_MAPPING_KEY, "model.Foo");
-		OrmPersistentAttribute ormPersistentAttribute = ormPersistentType.addSpecifiedPersistentAttribute(MappingKeys.ONE_TO_ONE_ATTRIBUTE_MAPPING_KEY, "oneToOneMapping");
-		OrmOneToOneMapping ormOneToOneMapping = (OrmOneToOneMapping) ormPersistentAttribute.getMapping();
-		XmlOneToOne oneToOne = getXmlEntityMappings().getEntities().get(0).getAttributes().getOneToOnes().get(0);
-		
-		Cascade cascade = ormOneToOneMapping.getCascade();
-		
-		assertEquals(false, cascade.isPersist());
-		assertNull(oneToOne.getCascade());
-					
-		//set Persist in the context model, verify resource model updated
-		cascade.setPersist(true);
-		assertEquals(true, cascade.isPersist());
-		assertEquals(true, oneToOne.getCascade().isCascadePersist());
-	
-		//set Persist to false in the context model
-		cascade.setPersist(false);
-		assertEquals(false, cascade.isPersist());
-		assertNull(oneToOne.getCascade());
-	}
-	
-	public void testUpdateCascadeMerge() throws Exception {
-		OrmPersistentType ormPersistentType = getEntityMappings().addPersistentType(MappingKeys.ENTITY_TYPE_MAPPING_KEY, "model.Foo");
-		OrmPersistentAttribute ormPersistentAttribute = ormPersistentType.addSpecifiedPersistentAttribute(MappingKeys.ONE_TO_ONE_ATTRIBUTE_MAPPING_KEY, "oneToOneMapping");
-		OrmOneToOneMapping ormOneToOneMapping = (OrmOneToOneMapping) ormPersistentAttribute.getMapping();
-		XmlOneToOne oneToOne = getXmlEntityMappings().getEntities().get(0).getAttributes().getOneToOnes().get(0);
-		Cascade cascade = ormOneToOneMapping.getCascade();
-		
-		assertEquals(false, cascade.isMerge());
-		assertNull(oneToOne.getCascade());
-		
-		//set cascade in the resource model, verify context model does not change
-		oneToOne.setCascade(OrmFactory.eINSTANCE.createCascadeTypeImpl());
-		assertEquals(false, cascade.isMerge());
-		assertNotNull(oneToOne.getCascade());
-				
-		//set Merge in the resource model, verify context model updated
-		oneToOne.getCascade().setCascadeMerge(true);
-		assertEquals(true, cascade.isMerge());
-		assertEquals(true, oneToOne.getCascade().isCascadeMerge());
-		
-		//set Merge to false in the resource model
-		oneToOne.getCascade().setCascadeMerge(false);
-		assertEquals(false, cascade.isMerge());
-		assertEquals(false, oneToOne.getCascade().isCascadeMerge());
-	}
-	
-	public void testModifyCascadeMerge() throws Exception {
-		OrmPersistentType ormPersistentType = getEntityMappings().addPersistentType(MappingKeys.ENTITY_TYPE_MAPPING_KEY, "model.Foo");
-		OrmPersistentAttribute ormPersistentAttribute = ormPersistentType.addSpecifiedPersistentAttribute(MappingKeys.ONE_TO_ONE_ATTRIBUTE_MAPPING_KEY, "oneToOneMapping");
-		OrmOneToOneMapping ormOneToOneMapping = (OrmOneToOneMapping) ormPersistentAttribute.getMapping();
-		XmlOneToOne oneToOne = getXmlEntityMappings().getEntities().get(0).getAttributes().getOneToOnes().get(0);
-		
-		Cascade cascade = ormOneToOneMapping.getCascade();
-		
-		assertEquals(false, cascade.isMerge());
-		assertNull(oneToOne.getCascade());
-					
-		//set Merge in the context model, verify resource model updated
-		cascade.setMerge(true);
-		assertEquals(true, cascade.isMerge());
-		assertEquals(true, oneToOne.getCascade().isCascadeMerge());
-	
-		//set Merge to false in the context model
-		cascade.setMerge(false);
-		assertEquals(false, cascade.isMerge());
-		assertNull(oneToOne.getCascade());
-	}
-	
-	public void testUpdateCascadeRemove() throws Exception {
-		OrmPersistentType ormPersistentType = getEntityMappings().addPersistentType(MappingKeys.ENTITY_TYPE_MAPPING_KEY, "model.Foo");
-		OrmPersistentAttribute ormPersistentAttribute = ormPersistentType.addSpecifiedPersistentAttribute(MappingKeys.ONE_TO_ONE_ATTRIBUTE_MAPPING_KEY, "oneToOneMapping");
-		OrmOneToOneMapping ormOneToOneMapping = (OrmOneToOneMapping) ormPersistentAttribute.getMapping();
-		XmlOneToOne oneToOne = getXmlEntityMappings().getEntities().get(0).getAttributes().getOneToOnes().get(0);
-		Cascade cascade = ormOneToOneMapping.getCascade();
-		
-		assertEquals(false, cascade.isRemove());
-		assertNull(oneToOne.getCascade());
-		
-		//set cascade in the resource model, verify context model does not change
-		oneToOne.setCascade(OrmFactory.eINSTANCE.createCascadeTypeImpl());
-		assertEquals(false, cascade.isRemove());
-		assertNotNull(oneToOne.getCascade());
-				
-		//set Remove in the resource model, verify context model updated
-		oneToOne.getCascade().setCascadeRemove(true);
-		assertEquals(true, cascade.isRemove());
-		assertEquals(true, oneToOne.getCascade().isCascadeRemove());
-		
-		//set Remove to false in the resource model
-		oneToOne.getCascade().setCascadeRemove(false);
-		assertEquals(false, cascade.isRemove());
-		assertEquals(false, oneToOne.getCascade().isCascadeRemove());
-	}
-	
-	public void testModifyCascadeRemove() throws Exception {
-		OrmPersistentType ormPersistentType = getEntityMappings().addPersistentType(MappingKeys.ENTITY_TYPE_MAPPING_KEY, "model.Foo");
-		OrmPersistentAttribute ormPersistentAttribute = ormPersistentType.addSpecifiedPersistentAttribute(MappingKeys.ONE_TO_ONE_ATTRIBUTE_MAPPING_KEY, "oneToOneMapping");
-		OrmOneToOneMapping ormOneToOneMapping = (OrmOneToOneMapping) ormPersistentAttribute.getMapping();
-		XmlOneToOne oneToOne = getXmlEntityMappings().getEntities().get(0).getAttributes().getOneToOnes().get(0);
-		
-		Cascade cascade = ormOneToOneMapping.getCascade();
-		
-		assertEquals(false, cascade.isRemove());
-		assertNull(oneToOne.getCascade());
-					
-		//set Remove in the context model, verify resource model updated
-		cascade.setRemove(true);
-		assertEquals(true, cascade.isRemove());
-		assertEquals(true, oneToOne.getCascade().isCascadeRemove());
-	
-		//set Remove to false in the context model
-		cascade.setRemove(false);
-		assertEquals(false, cascade.isRemove());
-		assertNull(oneToOne.getCascade());
-	}
-	
-	public void testUpdateCascadeRefresh() throws Exception {
-		OrmPersistentType ormPersistentType = getEntityMappings().addPersistentType(MappingKeys.ENTITY_TYPE_MAPPING_KEY, "model.Foo");
-		OrmPersistentAttribute ormPersistentAttribute = ormPersistentType.addSpecifiedPersistentAttribute(MappingKeys.ONE_TO_ONE_ATTRIBUTE_MAPPING_KEY, "oneToOneMapping");
-		OrmOneToOneMapping ormOneToOneMapping = (OrmOneToOneMapping) ormPersistentAttribute.getMapping();
-		XmlOneToOne oneToOne = getXmlEntityMappings().getEntities().get(0).getAttributes().getOneToOnes().get(0);
-		Cascade cascade = ormOneToOneMapping.getCascade();
-		
-		assertEquals(false, cascade.isRefresh());
-		assertNull(oneToOne.getCascade());
-		
-		//set cascade in the resource model, verify context model does not change
-		oneToOne.setCascade(OrmFactory.eINSTANCE.createCascadeTypeImpl());
-		assertEquals(false, cascade.isRefresh());
-		assertNotNull(oneToOne.getCascade());
-				
-		//set Refresh in the resource model, verify context model updated
-		oneToOne.getCascade().setCascadeRefresh(true);
-		assertEquals(true, cascade.isRefresh());
-		assertEquals(true, oneToOne.getCascade().isCascadeRefresh());
-		
-		//set Refresh to false in the resource model
-		oneToOne.getCascade().setCascadeRefresh(false);
-		assertEquals(false, cascade.isRefresh());
-		assertEquals(false, oneToOne.getCascade().isCascadeRefresh());
-	}
-	
-	public void testModifyCascadeRefresh() throws Exception {
-		OrmPersistentType ormPersistentType = getEntityMappings().addPersistentType(MappingKeys.ENTITY_TYPE_MAPPING_KEY, "model.Foo");
-		OrmPersistentAttribute ormPersistentAttribute = ormPersistentType.addSpecifiedPersistentAttribute(MappingKeys.ONE_TO_ONE_ATTRIBUTE_MAPPING_KEY, "oneToOneMapping");
-		OrmOneToOneMapping ormOneToOneMapping = (OrmOneToOneMapping) ormPersistentAttribute.getMapping();
-		XmlOneToOne oneToOne = getXmlEntityMappings().getEntities().get(0).getAttributes().getOneToOnes().get(0);
-		
-		Cascade cascade = ormOneToOneMapping.getCascade();
-		
-		assertEquals(false, cascade.isRefresh());
-		assertNull(oneToOne.getCascade());
-					
-		//set Refresh in the context model, verify resource model updated
-		cascade.setRefresh(true);
-		assertEquals(true, cascade.isRefresh());
-		assertEquals(true, oneToOne.getCascade().isCascadeRefresh());
-	
-		//set Refresh to false in the context model
-		cascade.setRefresh(false);
-		assertEquals(false, cascade.isRefresh());
-		assertNull(oneToOne.getCascade());
-	}
-}
\ No newline at end of file
diff --git a/jpa/tests/org.eclipse.jpt.core.tests/src/org/eclipse/jpt/core/tests/internal/context/orm/OrmColumnTests.java b/jpa/tests/org.eclipse.jpt.core.tests/src/org/eclipse/jpt/core/tests/internal/context/orm/OrmColumnTests.java
deleted file mode 100644
index e6dbc53..0000000
--- a/jpa/tests/org.eclipse.jpt.core.tests/src/org/eclipse/jpt/core/tests/internal/context/orm/OrmColumnTests.java
+++ /dev/null
@@ -1,820 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.core.tests.internal.context.orm;
-
-import java.util.Iterator;
-import java.util.ListIterator;
-import org.eclipse.jdt.core.ICompilationUnit;
-import org.eclipse.jpt.core.JptCorePlugin;
-import org.eclipse.jpt.core.MappingKeys;
-import org.eclipse.jpt.core.context.Column;
-import org.eclipse.jpt.core.context.java.JavaBasicMapping;
-import org.eclipse.jpt.core.context.orm.OrmBasicMapping;
-import org.eclipse.jpt.core.context.orm.OrmColumn;
-import org.eclipse.jpt.core.context.orm.OrmEntity;
-import org.eclipse.jpt.core.context.orm.OrmPersistentAttribute;
-import org.eclipse.jpt.core.context.orm.OrmPersistentType;
-import org.eclipse.jpt.core.resource.java.JPA;
-import org.eclipse.jpt.core.resource.orm.OrmFactory;
-import org.eclipse.jpt.core.resource.orm.XmlBasic;
-import org.eclipse.jpt.core.resource.orm.XmlEntity;
-import org.eclipse.jpt.core.resource.persistence.PersistenceFactory;
-import org.eclipse.jpt.core.resource.persistence.XmlMappingFileRef;
-import org.eclipse.jpt.core.tests.internal.context.ContextModelTestCase;
-import org.eclipse.jpt.utility.internal.iterators.ArrayIterator;
-
-@SuppressWarnings("nls")
-public class OrmColumnTests extends ContextModelTestCase
-{
-	public OrmColumnTests(String name) {
-		super(name);
-	}
-	
-	@Override
-	protected void setUp() throws Exception {
-		super.setUp();
-		XmlMappingFileRef mappingFileRef = PersistenceFactory.eINSTANCE.createXmlMappingFileRef();
-		mappingFileRef.setFileName(JptCorePlugin.DEFAULT_ORM_XML_FILE_PATH);
-		getXmlPersistenceUnit().getMappingFiles().add(mappingFileRef);
-		getPersistenceXmlResource().save(null);
-	}
-	
-	private ICompilationUnit createTestEntity() throws Exception {
-		return this.createTestType(new DefaultAnnotationWriter() {
-			@Override
-			public Iterator<String> imports() {
-				return new ArrayIterator<String>(JPA.ENTITY, JPA.ID);
-			}
-			@Override
-			public void appendTypeAnnotationTo(StringBuilder sb) {
-				sb.append("@Entity");
-			}
-			@Override
-			public void appendIdFieldAnnotationTo(StringBuilder sb) {
-				sb.append("@Id");
-			}
-		});
-	}
-	
-	public void testUpdateSpecifiedName() throws Exception {
-		OrmPersistentType ormPersistentType = getEntityMappings().addPersistentType(MappingKeys.ENTITY_TYPE_MAPPING_KEY, "model.foo");
-		OrmPersistentAttribute ormPersistentAttribute = ormPersistentType.addSpecifiedPersistentAttribute(MappingKeys.BASIC_ATTRIBUTE_MAPPING_KEY, "basicMapping");
-		OrmBasicMapping ormBasicMapping = (OrmBasicMapping) ormPersistentAttribute.getMapping();
-		OrmColumn ormColumn = ormBasicMapping.getColumn();
-		
-		XmlEntity entityResource = getXmlEntityMappings().getEntities().get(0);
-		XmlBasic basic = entityResource.getAttributes().getBasics().get(0);
-
-		assertNull(ormColumn.getSpecifiedName());
-		assertNull(basic.getColumn());
-		
-		//set name in the resource model, verify context model updated
-		basic.setColumn(OrmFactory.eINSTANCE.createXmlColumnImpl());
-		basic.getColumn().setName("FOO");
-		getOrmXmlResource().save(null);
-		assertEquals("FOO", ormColumn.getSpecifiedName());
-		assertEquals("FOO", basic.getColumn().getName());
-	
-		//set name to null in the resource model
-		basic.getColumn().setName(null);
-		assertNull(ormColumn.getSpecifiedName());
-		assertNull(basic.getColumn().getName());
-		
-		basic.getColumn().setName("FOO");
-		assertEquals("FOO", ormColumn.getSpecifiedName());
-		assertEquals("FOO", basic.getColumn().getName());
-
-		basic.setColumn(null);
-		assertNull(ormColumn.getSpecifiedName());
-		assertNull(basic.getColumn());
-	}
-	
-	public void testModifySpecifiedName() throws Exception {
-		OrmPersistentType ormPersistentType = getEntityMappings().addPersistentType(MappingKeys.ENTITY_TYPE_MAPPING_KEY, "model.foo");
-		OrmPersistentAttribute ormPersistentAttribute = ormPersistentType.addSpecifiedPersistentAttribute(MappingKeys.BASIC_ATTRIBUTE_MAPPING_KEY, "basicMapping");
-		OrmBasicMapping ormBasicMapping = (OrmBasicMapping) ormPersistentAttribute.getMapping();
-		OrmColumn ormColumn = ormBasicMapping.getColumn();
-		
-		XmlEntity entityResource = getXmlEntityMappings().getEntities().get(0);
-		XmlBasic basic = entityResource.getAttributes().getBasics().get(0);
-
-		assertNull(ormColumn.getSpecifiedName());
-		assertNull(basic.getColumn());
-		
-		//set name in the context model, verify resource model modified
-		ormColumn.setSpecifiedName("foo");
-		assertEquals("foo", ormColumn.getSpecifiedName());
-		assertEquals("foo", basic.getColumn().getName());
-		
-		//set name to null in the context model
-		ormColumn.setSpecifiedName(null);
-		assertNull(ormColumn.getSpecifiedName());
-		assertNull(basic.getColumn());
-	}
-	
-	public void testUpdateColumnDefinition() throws Exception {
-		OrmPersistentType ormPersistentType = getEntityMappings().addPersistentType(MappingKeys.ENTITY_TYPE_MAPPING_KEY, "model.foo");
-		OrmPersistentAttribute ormPersistentAttribute = ormPersistentType.addSpecifiedPersistentAttribute(MappingKeys.BASIC_ATTRIBUTE_MAPPING_KEY, "basicMapping");
-		OrmBasicMapping ormBasicMapping = (OrmBasicMapping) ormPersistentAttribute.getMapping();
-		OrmColumn ormColumn = ormBasicMapping.getColumn();
-		
-		XmlEntity entityResource = getXmlEntityMappings().getEntities().get(0);
-		XmlBasic basic = entityResource.getAttributes().getBasics().get(0);
-
-		assertNull(ormColumn.getColumnDefinition());
-		assertNull(basic.getColumn());
-		
-		//set name in the resource model, verify context model updated
-		basic.setColumn(OrmFactory.eINSTANCE.createXmlColumnImpl());
-		basic.getColumn().setColumnDefinition("FOO");
-		assertEquals("FOO", ormColumn.getColumnDefinition());
-		assertEquals("FOO", basic.getColumn().getColumnDefinition());
-	
-		//set name to null in the resource model
-		basic.getColumn().setColumnDefinition(null);
-		assertNull(ormColumn.getColumnDefinition());
-		assertNull(basic.getColumn().getColumnDefinition());
-		
-		basic.getColumn().setColumnDefinition("FOO");
-		assertEquals("FOO", ormColumn.getColumnDefinition());
-		assertEquals("FOO", basic.getColumn().getColumnDefinition());
-
-		basic.setColumn(null);
-		assertNull(ormColumn.getColumnDefinition());
-		assertNull(basic.getColumn());
-	}
-	
-	public void testModifyColumnDefinition() throws Exception {
-		OrmPersistentType ormPersistentType = getEntityMappings().addPersistentType(MappingKeys.ENTITY_TYPE_MAPPING_KEY, "model.foo");
-		OrmPersistentAttribute ormPersistentAttribute = ormPersistentType.addSpecifiedPersistentAttribute(MappingKeys.BASIC_ATTRIBUTE_MAPPING_KEY, "basicMapping");
-		OrmBasicMapping ormBasicMapping = (OrmBasicMapping) ormPersistentAttribute.getMapping();
-		OrmColumn ormColumn = ormBasicMapping.getColumn();
-		
-		XmlEntity entityResource = getXmlEntityMappings().getEntities().get(0);
-		XmlBasic basic = entityResource.getAttributes().getBasics().get(0);
-
-		assertNull(ormColumn.getColumnDefinition());
-		assertNull(basic.getColumn());
-		
-		//set name in the context model, verify resource model modified
-		ormColumn.setColumnDefinition("foo");
-		assertEquals("foo", ormColumn.getColumnDefinition());
-		assertEquals("foo", basic.getColumn().getColumnDefinition());
-		
-		//set name to null in the context model
-		ormColumn.setColumnDefinition(null);
-		assertNull(ormColumn.getColumnDefinition());
-		assertNull(basic.getColumn());
-	}
-
-	public void testUpdateSpecifiedTable() throws Exception {
-		OrmPersistentType ormPersistentType = getEntityMappings().addPersistentType(MappingKeys.ENTITY_TYPE_MAPPING_KEY, "model.foo");
-		OrmPersistentAttribute ormPersistentAttribute = ormPersistentType.addSpecifiedPersistentAttribute(MappingKeys.BASIC_ATTRIBUTE_MAPPING_KEY, "basicMapping");
-		OrmBasicMapping ormBasicMapping = (OrmBasicMapping) ormPersistentAttribute.getMapping();
-		OrmColumn ormColumn = ormBasicMapping.getColumn();
-		
-		XmlEntity entityResource = getXmlEntityMappings().getEntities().get(0);
-		XmlBasic basic = entityResource.getAttributes().getBasics().get(0);
-
-		assertNull(ormColumn.getSpecifiedTable());
-		assertNull(basic.getColumn());
-		
-		//set name in the resource model, verify context model updated
-		basic.setColumn(OrmFactory.eINSTANCE.createXmlColumnImpl());
-		basic.getColumn().setTable("FOO");
-		assertEquals("FOO", ormColumn.getSpecifiedTable());
-		assertEquals("FOO", basic.getColumn().getTable());
-	
-		//set name to null in the resource model
-		basic.getColumn().setTable(null);
-		assertNull(ormColumn.getSpecifiedTable());
-		assertNull(basic.getColumn().getTable());
-		
-		basic.getColumn().setTable("FOO");
-		assertEquals("FOO", ormColumn.getSpecifiedTable());
-		assertEquals("FOO", basic.getColumn().getTable());
-
-		basic.setColumn(null);
-		assertNull(ormColumn.getSpecifiedTable());
-		assertNull(basic.getColumn());
-	}
-	
-	public void testModifySpecifiedTable() throws Exception {
-		OrmPersistentType ormPersistentType = getEntityMappings().addPersistentType(MappingKeys.ENTITY_TYPE_MAPPING_KEY, "model.foo");
-		OrmPersistentAttribute ormPersistentAttribute = ormPersistentType.addSpecifiedPersistentAttribute(MappingKeys.BASIC_ATTRIBUTE_MAPPING_KEY, "basicMapping");
-		OrmBasicMapping ormBasicMapping = (OrmBasicMapping) ormPersistentAttribute.getMapping();
-		OrmColumn ormColumn = ormBasicMapping.getColumn();
-		
-		XmlEntity entityResource = getXmlEntityMappings().getEntities().get(0);
-		XmlBasic basic = entityResource.getAttributes().getBasics().get(0);
-
-		assertNull(ormColumn.getSpecifiedTable());
-		assertNull(basic.getColumn());
-		
-		//set name in the context model, verify resource model modified
-		ormColumn.setSpecifiedTable("foo");
-		assertEquals("foo", ormColumn.getSpecifiedTable());
-		assertEquals("foo", basic.getColumn().getTable());
-		
-		//set name to null in the context model
-		ormColumn.setSpecifiedTable(null);
-		assertNull(ormColumn.getSpecifiedTable());
-		assertNull(basic.getColumn());
-	}
-
-	public void testUpdateSpecifiedNullable() throws Exception {
-		OrmPersistentType ormPersistentType = getEntityMappings().addPersistentType(MappingKeys.ENTITY_TYPE_MAPPING_KEY, "model.foo");
-		OrmPersistentAttribute ormPersistentAttribute = ormPersistentType.addSpecifiedPersistentAttribute(MappingKeys.BASIC_ATTRIBUTE_MAPPING_KEY, "basicMapping");
-		OrmBasicMapping ormBasicMapping = (OrmBasicMapping) ormPersistentAttribute.getMapping();
-		OrmColumn ormColumn = ormBasicMapping.getColumn();
-		
-		XmlEntity entityResource = getXmlEntityMappings().getEntities().get(0);
-		XmlBasic basic = entityResource.getAttributes().getBasics().get(0);
-
-		assertNull(ormColumn.getSpecifiedNullable());
-		assertNull(basic.getColumn());
-		
-		//set name in the resource model, verify context model updated
-		basic.setColumn(OrmFactory.eINSTANCE.createXmlColumnImpl());
-		basic.getColumn().setNullable(Boolean.TRUE);
-		assertEquals(Boolean.TRUE, ormColumn.getSpecifiedNullable());
-		assertEquals(Boolean.TRUE, basic.getColumn().getNullable());
-	
-		//set name to null in the resource model
-		basic.getColumn().setNullable(null);
-		assertNull(ormColumn.getSpecifiedNullable());
-		assertNull(basic.getColumn().getNullable());
-		
-		basic.getColumn().setNullable(Boolean.FALSE);
-		assertEquals(Boolean.FALSE, ormColumn.getSpecifiedNullable());
-		assertEquals(Boolean.FALSE, basic.getColumn().getNullable());
-
-		basic.setColumn(null);
-		assertNull(ormColumn.getSpecifiedNullable());
-		assertNull(basic.getColumn());
-	}
-	
-	public void testModifySpecifiedNullable() throws Exception {
-		OrmPersistentType ormPersistentType = getEntityMappings().addPersistentType(MappingKeys.ENTITY_TYPE_MAPPING_KEY, "model.foo");
-		OrmPersistentAttribute ormPersistentAttribute = ormPersistentType.addSpecifiedPersistentAttribute(MappingKeys.BASIC_ATTRIBUTE_MAPPING_KEY, "basicMapping");
-		OrmBasicMapping ormBasicMapping = (OrmBasicMapping) ormPersistentAttribute.getMapping();
-		OrmColumn ormColumn = ormBasicMapping.getColumn();
-		
-		XmlEntity entityResource = getXmlEntityMappings().getEntities().get(0);
-		XmlBasic basic = entityResource.getAttributes().getBasics().get(0);
-
-		assertNull(ormColumn.getSpecifiedNullable());
-		assertNull(basic.getColumn());
-		
-		//set name in the context model, verify resource model modified
-		ormColumn.setSpecifiedNullable(Boolean.FALSE);
-		assertEquals(Boolean.FALSE, ormColumn.getSpecifiedNullable());
-		assertEquals(Boolean.FALSE, basic.getColumn().getNullable());
-		
-		//set name to null in the context model
-		ormColumn.setSpecifiedNullable(null);
-		assertNull(ormColumn.getSpecifiedNullable());
-		assertNull(basic.getColumn());
-	}
-
-	public void testUpdateSpecifiedUpdatable() throws Exception {
-		OrmPersistentType ormPersistentType = getEntityMappings().addPersistentType(MappingKeys.ENTITY_TYPE_MAPPING_KEY, "model.foo");
-		OrmPersistentAttribute ormPersistentAttribute = ormPersistentType.addSpecifiedPersistentAttribute(MappingKeys.BASIC_ATTRIBUTE_MAPPING_KEY, "basicMapping");
-		OrmBasicMapping ormBasicMapping = (OrmBasicMapping) ormPersistentAttribute.getMapping();
-		OrmColumn ormColumn = ormBasicMapping.getColumn();
-		
-		XmlEntity entityResource = getXmlEntityMappings().getEntities().get(0);
-		XmlBasic basic = entityResource.getAttributes().getBasics().get(0);
-
-		assertNull(ormColumn.getSpecifiedUpdatable());
-		assertNull(basic.getColumn());
-		
-		//set name in the resource model, verify context model updated
-		basic.setColumn(OrmFactory.eINSTANCE.createXmlColumnImpl());
-		basic.getColumn().setUpdatable(Boolean.TRUE);
-		assertEquals(Boolean.TRUE, ormColumn.getSpecifiedUpdatable());
-		assertEquals(Boolean.TRUE, basic.getColumn().getUpdatable());
-	
-		//set name to null in the resource model
-		basic.getColumn().setUpdatable(null);
-		assertNull(ormColumn.getSpecifiedUpdatable());
-		assertNull(basic.getColumn().getUpdatable());
-		
-		basic.getColumn().setUpdatable(Boolean.FALSE);
-		assertEquals(Boolean.FALSE, ormColumn.getSpecifiedUpdatable());
-		assertEquals(Boolean.FALSE, basic.getColumn().getUpdatable());
-
-		basic.setColumn(null);
-		assertNull(ormColumn.getSpecifiedUpdatable());
-		assertNull(basic.getColumn());
-	}
-	
-	public void testModifySpecifiedUpdatable() throws Exception {
-		OrmPersistentType ormPersistentType = getEntityMappings().addPersistentType(MappingKeys.ENTITY_TYPE_MAPPING_KEY, "model.foo");
-		OrmPersistentAttribute ormPersistentAttribute = ormPersistentType.addSpecifiedPersistentAttribute(MappingKeys.BASIC_ATTRIBUTE_MAPPING_KEY, "basicMapping");
-		OrmBasicMapping ormBasicMapping = (OrmBasicMapping) ormPersistentAttribute.getMapping();
-		OrmColumn ormColumn = ormBasicMapping.getColumn();
-		
-		XmlEntity entityResource = getXmlEntityMappings().getEntities().get(0);
-		XmlBasic basic = entityResource.getAttributes().getBasics().get(0);
-
-		assertNull(ormColumn.getSpecifiedUpdatable());
-		assertNull(basic.getColumn());
-		
-		//set name in the context model, verify resource model modified
-		ormColumn.setSpecifiedUpdatable(Boolean.FALSE);
-		assertEquals(Boolean.FALSE, ormColumn.getSpecifiedUpdatable());
-		assertEquals(Boolean.FALSE, basic.getColumn().getUpdatable());
-		
-		//set name to null in the context model
-		ormColumn.setSpecifiedUpdatable(null);
-		assertNull(ormColumn.getSpecifiedUpdatable());
-		assertNull(basic.getColumn());
-	}
-
-	public void testUpdateSpecifiedInsertable() throws Exception {
-		OrmPersistentType ormPersistentType = getEntityMappings().addPersistentType(MappingKeys.ENTITY_TYPE_MAPPING_KEY, "model.foo");
-		OrmPersistentAttribute ormPersistentAttribute = ormPersistentType.addSpecifiedPersistentAttribute(MappingKeys.BASIC_ATTRIBUTE_MAPPING_KEY, "basicMapping");
-		OrmBasicMapping ormBasicMapping = (OrmBasicMapping) ormPersistentAttribute.getMapping();
-		OrmColumn ormColumn = ormBasicMapping.getColumn();
-		
-		XmlEntity entityResource = getXmlEntityMappings().getEntities().get(0);
-		XmlBasic basic = entityResource.getAttributes().getBasics().get(0);
-
-		assertNull(ormColumn.getSpecifiedInsertable());
-		assertNull(basic.getColumn());
-		
-		//set name in the resource model, verify context model updated
-		basic.setColumn(OrmFactory.eINSTANCE.createXmlColumnImpl());
-		basic.getColumn().setInsertable(Boolean.TRUE);
-		assertEquals(Boolean.TRUE, ormColumn.getSpecifiedInsertable());
-		assertEquals(Boolean.TRUE, basic.getColumn().getInsertable());
-	
-		//set name to null in the resource model
-		basic.getColumn().setInsertable(null);
-		assertNull(ormColumn.getSpecifiedInsertable());
-		assertNull(basic.getColumn().getInsertable());
-		
-		basic.getColumn().setInsertable(Boolean.FALSE);
-		assertEquals(Boolean.FALSE, ormColumn.getSpecifiedInsertable());
-		assertEquals(Boolean.FALSE, basic.getColumn().getInsertable());
-
-		basic.setColumn(null);
-		assertNull(ormColumn.getSpecifiedInsertable());
-		assertNull(basic.getColumn());
-	}
-	
-	public void testModifySpecifiedInsertable() throws Exception {
-		OrmPersistentType ormPersistentType = getEntityMappings().addPersistentType(MappingKeys.ENTITY_TYPE_MAPPING_KEY, "model.foo");
-		OrmPersistentAttribute ormPersistentAttribute = ormPersistentType.addSpecifiedPersistentAttribute(MappingKeys.BASIC_ATTRIBUTE_MAPPING_KEY, "basicMapping");
-		OrmBasicMapping ormBasicMapping = (OrmBasicMapping) ormPersistentAttribute.getMapping();
-		OrmColumn ormColumn = ormBasicMapping.getColumn();
-		
-		XmlEntity entityResource = getXmlEntityMappings().getEntities().get(0);
-		XmlBasic basic = entityResource.getAttributes().getBasics().get(0);
-
-		assertNull(ormColumn.getSpecifiedInsertable());
-		assertNull(basic.getColumn());
-		
-		//set name in the context model, verify resource model modified
-		ormColumn.setSpecifiedInsertable(Boolean.FALSE);
-		assertEquals(Boolean.FALSE, ormColumn.getSpecifiedInsertable());
-		assertEquals(Boolean.FALSE, basic.getColumn().getInsertable());
-		
-		//set name to null in the context model
-		ormColumn.setSpecifiedInsertable(null);
-		assertNull(ormColumn.getSpecifiedInsertable());
-		assertNull(basic.getColumn());
-	}
-	
-	public void testUpdateSpecifiedUnique() throws Exception {
-		OrmPersistentType ormPersistentType = getEntityMappings().addPersistentType(MappingKeys.ENTITY_TYPE_MAPPING_KEY, "model.foo");
-		OrmPersistentAttribute ormPersistentAttribute = ormPersistentType.addSpecifiedPersistentAttribute(MappingKeys.BASIC_ATTRIBUTE_MAPPING_KEY, "basicMapping");
-		OrmBasicMapping ormBasicMapping = (OrmBasicMapping) ormPersistentAttribute.getMapping();
-		OrmColumn ormColumn = ormBasicMapping.getColumn();
-		
-		XmlEntity entityResource = getXmlEntityMappings().getEntities().get(0);
-		XmlBasic basic = entityResource.getAttributes().getBasics().get(0);
-
-		assertNull(ormColumn.getSpecifiedUnique());
-		assertNull(basic.getColumn());
-		
-		//set name in the resource model, verify context model updated
-		basic.setColumn(OrmFactory.eINSTANCE.createXmlColumnImpl());
-		basic.getColumn().setUnique(Boolean.TRUE);
-		assertEquals(Boolean.TRUE, ormColumn.getSpecifiedUnique());
-		assertEquals(Boolean.TRUE, basic.getColumn().getUnique());
-	
-		//set name to null in the resource model
-		basic.getColumn().setUnique(null);
-		assertNull(ormColumn.getSpecifiedUnique());
-		assertNull(basic.getColumn().getUnique());
-		
-		basic.getColumn().setUnique(Boolean.FALSE);
-		assertEquals(Boolean.FALSE, ormColumn.getSpecifiedUnique());
-		assertEquals(Boolean.FALSE, basic.getColumn().getUnique());
-
-		basic.setColumn(null);
-		assertNull(ormColumn.getSpecifiedUnique());
-		assertNull(basic.getColumn());
-	}
-	
-	public void testModifySpecifiedUnique() throws Exception {
-		OrmPersistentType ormPersistentType = getEntityMappings().addPersistentType(MappingKeys.ENTITY_TYPE_MAPPING_KEY, "model.foo");
-		OrmPersistentAttribute ormPersistentAttribute = ormPersistentType.addSpecifiedPersistentAttribute(MappingKeys.BASIC_ATTRIBUTE_MAPPING_KEY, "basicMapping");
-		OrmBasicMapping ormBasicMapping = (OrmBasicMapping) ormPersistentAttribute.getMapping();
-		OrmColumn ormColumn = ormBasicMapping.getColumn();
-		
-		XmlEntity entityResource = getXmlEntityMappings().getEntities().get(0);
-		XmlBasic basic = entityResource.getAttributes().getBasics().get(0);
-
-		assertNull(ormColumn.getSpecifiedUnique());
-		assertNull(basic.getColumn());
-		
-		//set name in the context model, verify resource model modified
-		ormColumn.setSpecifiedUnique(Boolean.FALSE);
-		assertEquals(Boolean.FALSE, ormColumn.getSpecifiedUnique());
-		assertEquals(Boolean.FALSE, basic.getColumn().getUnique());
-		
-		//set name to null in the context model
-		ormColumn.setSpecifiedUnique(null);
-		assertNull(ormColumn.getSpecifiedUnique());
-		assertNull(basic.getColumn());
-	}
-	
-	public void testUpdateSpecifiedLength() throws Exception {
-		OrmPersistentType ormPersistentType = getEntityMappings().addPersistentType(MappingKeys.ENTITY_TYPE_MAPPING_KEY, "model.foo");
-		OrmPersistentAttribute ormPersistentAttribute = ormPersistentType.addSpecifiedPersistentAttribute(MappingKeys.BASIC_ATTRIBUTE_MAPPING_KEY, "basicMapping");
-		OrmBasicMapping ormBasicMapping = (OrmBasicMapping) ormPersistentAttribute.getMapping();
-		OrmColumn ormColumn = ormBasicMapping.getColumn();
-		
-		XmlEntity entityResource = getXmlEntityMappings().getEntities().get(0);
-		XmlBasic basic = entityResource.getAttributes().getBasics().get(0);
-
-		assertNull(ormColumn.getSpecifiedLength());
-		assertNull(basic.getColumn());
-		
-		//set name in the resource model, verify context model updated
-		basic.setColumn(OrmFactory.eINSTANCE.createXmlColumnImpl());
-		basic.getColumn().setLength(Integer.valueOf(8));
-		assertEquals(Integer.valueOf(8), ormColumn.getSpecifiedLength());
-		assertEquals(Integer.valueOf(8), basic.getColumn().getLength());
-	
-		//set name to null in the resource model
-		basic.getColumn().setLength(null);
-		assertNull(ormColumn.getSpecifiedLength());
-		assertNull(basic.getColumn().getLength());
-		
-		basic.getColumn().setLength(Integer.valueOf(11));
-		assertEquals(Integer.valueOf(11), ormColumn.getSpecifiedLength());
-		assertEquals(Integer.valueOf(11), basic.getColumn().getLength());
-
-		basic.setColumn(null);
-		assertNull(ormColumn.getSpecifiedLength());
-		assertNull(basic.getColumn());
-	}
-	
-	public void testModifySpecifiedLength() throws Exception {
-		OrmPersistentType ormPersistentType = getEntityMappings().addPersistentType(MappingKeys.ENTITY_TYPE_MAPPING_KEY, "model.foo");
-		OrmPersistentAttribute ormPersistentAttribute = ormPersistentType.addSpecifiedPersistentAttribute(MappingKeys.BASIC_ATTRIBUTE_MAPPING_KEY, "basicMapping");
-		OrmBasicMapping ormBasicMapping = (OrmBasicMapping) ormPersistentAttribute.getMapping();
-		OrmColumn ormColumn = ormBasicMapping.getColumn();
-		
-		XmlEntity entityResource = getXmlEntityMappings().getEntities().get(0);
-		XmlBasic basic = entityResource.getAttributes().getBasics().get(0);
-
-		assertNull(ormColumn.getSpecifiedLength());
-		assertNull(basic.getColumn());
-		
-		//set name in the context model, verify resource model modified
-		ormColumn.setSpecifiedLength(Integer.valueOf(7));
-		assertEquals(Integer.valueOf(7), ormColumn.getSpecifiedLength());
-		assertEquals(Integer.valueOf(7), basic.getColumn().getLength());
-		
-		//set name to null in the context model
-		ormColumn.setSpecifiedLength(null);
-		assertNull(ormColumn.getSpecifiedLength());
-		assertNull(basic.getColumn());
-	}
-	
-	public void testUpdateSpecifiedPrecision() throws Exception {
-		OrmPersistentType ormPersistentType = getEntityMappings().addPersistentType(MappingKeys.ENTITY_TYPE_MAPPING_KEY, "model.foo");
-		OrmPersistentAttribute ormPersistentAttribute = ormPersistentType.addSpecifiedPersistentAttribute(MappingKeys.BASIC_ATTRIBUTE_MAPPING_KEY, "basicMapping");
-		OrmBasicMapping ormBasicMapping = (OrmBasicMapping) ormPersistentAttribute.getMapping();
-		OrmColumn ormColumn = ormBasicMapping.getColumn();
-		
-		XmlEntity entityResource = getXmlEntityMappings().getEntities().get(0);
-		XmlBasic basic = entityResource.getAttributes().getBasics().get(0);
-
-		assertNull(ormColumn.getSpecifiedLength());
-		assertNull(basic.getColumn());
-		
-		//set name in the resource model, verify context model updated
-		basic.setColumn(OrmFactory.eINSTANCE.createXmlColumnImpl());
-		basic.getColumn().setPrecision(Integer.valueOf(8));
-		assertEquals(Integer.valueOf(8), ormColumn.getSpecifiedPrecision());
-		assertEquals(Integer.valueOf(8), basic.getColumn().getPrecision());
-	
-		//set name to null in the resource model
-		basic.getColumn().setPrecision(null);
-		assertNull(ormColumn.getSpecifiedLength());
-		assertNull(basic.getColumn().getPrecision());
-		
-		basic.getColumn().setPrecision(Integer.valueOf(11));
-		assertEquals(Integer.valueOf(11), ormColumn.getSpecifiedPrecision());
-		assertEquals(Integer.valueOf(11), basic.getColumn().getPrecision());
-
-		basic.setColumn(null);
-		assertNull(ormColumn.getSpecifiedLength());
-		assertNull(basic.getColumn());
-	}
-	
-	public void testModifySpecifiedPrecision() throws Exception {
-		OrmPersistentType ormPersistentType = getEntityMappings().addPersistentType(MappingKeys.ENTITY_TYPE_MAPPING_KEY, "model.foo");
-		OrmPersistentAttribute ormPersistentAttribute = ormPersistentType.addSpecifiedPersistentAttribute(MappingKeys.BASIC_ATTRIBUTE_MAPPING_KEY, "basicMapping");
-		OrmBasicMapping ormBasicMapping = (OrmBasicMapping) ormPersistentAttribute.getMapping();
-		OrmColumn ormColumn = ormBasicMapping.getColumn();
-		
-		XmlEntity entityResource = getXmlEntityMappings().getEntities().get(0);
-		XmlBasic basic = entityResource.getAttributes().getBasics().get(0);
-
-		assertNull(ormColumn.getSpecifiedLength());
-		assertNull(basic.getColumn());
-		
-		//set name in the context model, verify resource model modified
-		ormColumn.setSpecifiedPrecision(Integer.valueOf(7));
-		assertEquals(Integer.valueOf(7), ormColumn.getSpecifiedPrecision());
-		assertEquals(Integer.valueOf(7), basic.getColumn().getPrecision());
-		
-		//set name to null in the context model
-		ormColumn.setSpecifiedPrecision(null);
-		assertNull(ormColumn.getSpecifiedLength());
-		assertNull(basic.getColumn());
-	}
-	
-	public void testUpdateSpecifiedScale() throws Exception {
-		OrmPersistentType ormPersistentType = getEntityMappings().addPersistentType(MappingKeys.ENTITY_TYPE_MAPPING_KEY, "model.foo");
-		OrmPersistentAttribute ormPersistentAttribute = ormPersistentType.addSpecifiedPersistentAttribute(MappingKeys.BASIC_ATTRIBUTE_MAPPING_KEY, "basicMapping");
-		OrmBasicMapping ormBasicMapping = (OrmBasicMapping) ormPersistentAttribute.getMapping();
-		OrmColumn ormColumn = ormBasicMapping.getColumn();
-		
-		XmlEntity entityResource = getXmlEntityMappings().getEntities().get(0);
-		XmlBasic basic = entityResource.getAttributes().getBasics().get(0);
-
-		assertNull(ormColumn.getSpecifiedLength());
-		assertNull(basic.getColumn());
-		
-		//set name in the resource model, verify context model updated
-		basic.setColumn(OrmFactory.eINSTANCE.createXmlColumnImpl());
-		basic.getColumn().setScale(Integer.valueOf(8));
-		assertEquals(Integer.valueOf(8), ormColumn.getSpecifiedScale());
-		assertEquals(Integer.valueOf(8), basic.getColumn().getScale());
-	
-		//set name to null in the resource model
-		basic.getColumn().setScale(null);
-		assertNull(ormColumn.getSpecifiedLength());
-		assertNull(basic.getColumn().getScale());
-		
-		basic.getColumn().setScale(Integer.valueOf(11));
-		assertEquals(Integer.valueOf(11), ormColumn.getSpecifiedScale());
-		assertEquals(Integer.valueOf(11), basic.getColumn().getScale());
-
-		basic.setColumn(null);
-		assertNull(ormColumn.getSpecifiedLength());
-		assertNull(basic.getColumn());
-	}
-	
-	public void testModifySpecifiedScale() throws Exception {
-		OrmPersistentType ormPersistentType = getEntityMappings().addPersistentType(MappingKeys.ENTITY_TYPE_MAPPING_KEY, "model.foo");
-		OrmPersistentAttribute ormPersistentAttribute = ormPersistentType.addSpecifiedPersistentAttribute(MappingKeys.BASIC_ATTRIBUTE_MAPPING_KEY, "basicMapping");
-		OrmBasicMapping ormBasicMapping = (OrmBasicMapping) ormPersistentAttribute.getMapping();
-		OrmColumn ormColumn = ormBasicMapping.getColumn();
-		
-		XmlEntity entityResource = getXmlEntityMappings().getEntities().get(0);
-		XmlBasic basic = entityResource.getAttributes().getBasics().get(0);
-
-		assertNull(ormColumn.getSpecifiedLength());
-		assertNull(basic.getColumn());
-		
-		//set name in the context model, verify resource model modified
-		ormColumn.setSpecifiedScale(Integer.valueOf(7));
-		assertEquals(Integer.valueOf(7), ormColumn.getSpecifiedScale());
-		assertEquals(Integer.valueOf(7), basic.getColumn().getScale());
-		
-		//set name to null in the context model
-		ormColumn.setSpecifiedScale(null);
-		assertNull(ormColumn.getSpecifiedLength());
-		assertNull(basic.getColumn());
-	}
-	
-	public void testVirtualColumnDefaults() throws Exception {
-		createTestEntity();
-
-		OrmPersistentType ormPersistentType = getEntityMappings().addPersistentType(MappingKeys.ENTITY_TYPE_MAPPING_KEY, FULLY_QUALIFIED_TYPE_NAME);
-		ListIterator<OrmPersistentAttribute> attributes = ormPersistentType.virtualAttributes();
-		attributes.next();	
-		
-		//virtual attrubte in orm.xml, java attribute has no Column annotation
-		OrmPersistentAttribute namePersistentAttribute = attributes.next();
-		OrmBasicMapping nameVirtualMapping = (OrmBasicMapping) namePersistentAttribute.getMapping();		
-		OrmColumn ormColumn = nameVirtualMapping.getColumn();
-		assertEquals("name", ormColumn.getSpecifiedName());
-		assertEquals(TYPE_NAME, ormColumn.getSpecifiedTable());
-		assertEquals(null, ormColumn.getColumnDefinition());
-		assertEquals(Boolean.TRUE, ormColumn.getSpecifiedInsertable());
-		assertEquals(Boolean.TRUE, ormColumn.getSpecifiedUpdatable());
-		assertEquals(Boolean.TRUE, ormColumn.getSpecifiedNullable());
-		assertEquals(Boolean.FALSE, ormColumn.getSpecifiedUnique());
-		assertEquals(Column.DEFAULT_LENGTH, ormColumn.getSpecifiedLength().intValue());
-		assertEquals(Column.DEFAULT_PRECISION, ormColumn.getSpecifiedPrecision().intValue());
-		assertEquals(Column.DEFAULT_SCALE, ormColumn.getSpecifiedScale().intValue());
-	
-		//set Column annotation in Java
-		JavaBasicMapping javaBasicMapping = (JavaBasicMapping) ormPersistentType.getJavaPersistentType().getAttributeNamed("name").getMapping();
-		javaBasicMapping.getColumn().setSpecifiedName("FOO");		
-		javaBasicMapping.getColumn().setSpecifiedTable("FOO_TABLE");
-		javaBasicMapping.getColumn().setColumnDefinition("COLUMN_DEFINITION");
-		javaBasicMapping.getColumn().setSpecifiedInsertable(Boolean.FALSE);	
-		javaBasicMapping.getColumn().setSpecifiedUpdatable(Boolean.FALSE);	
-		javaBasicMapping.getColumn().setSpecifiedNullable(Boolean.FALSE);	
-		javaBasicMapping.getColumn().setSpecifiedUnique(Boolean.TRUE);	
-		javaBasicMapping.getColumn().setSpecifiedLength(Integer.valueOf(45));
-		javaBasicMapping.getColumn().setSpecifiedPrecision(Integer.valueOf(46));
-		javaBasicMapping.getColumn().setSpecifiedScale(Integer.valueOf(47));
-
-		assertEquals("FOO", ormColumn.getSpecifiedName());
-		assertEquals("FOO_TABLE", ormColumn.getSpecifiedTable());
-		assertEquals("COLUMN_DEFINITION", ormColumn.getColumnDefinition());
-		assertEquals(Boolean.FALSE, ormColumn.getSpecifiedInsertable());
-		assertEquals(Boolean.FALSE, ormColumn.getSpecifiedUpdatable());
-		assertEquals(Boolean.FALSE, ormColumn.getSpecifiedNullable());
-		assertEquals(Boolean.TRUE, ormColumn.getSpecifiedUnique());
-		assertEquals(Integer.valueOf(45), ormColumn.getSpecifiedLength());
-		assertEquals(Integer.valueOf(46), ormColumn.getSpecifiedPrecision());
-		assertEquals(Integer.valueOf(47), ormColumn.getSpecifiedScale());
-
-	
-		//set metadata-complete, orm.xml virtual column ignores java column annotation
-		ormPersistentType.getMapping().setSpecifiedMetadataComplete(Boolean.TRUE);
-		assertEquals("name", ormColumn.getSpecifiedName());
-		assertEquals(TYPE_NAME, ormColumn.getSpecifiedTable());
-		assertEquals(null, ormColumn.getColumnDefinition());
-		assertEquals(Boolean.TRUE, ormColumn.getSpecifiedInsertable());
-		assertEquals(Boolean.TRUE, ormColumn.getSpecifiedUpdatable());
-		assertEquals(Boolean.TRUE, ormColumn.getSpecifiedNullable());
-		assertEquals(Boolean.FALSE, ormColumn.getSpecifiedUnique());
-		assertEquals(Column.DEFAULT_LENGTH, ormColumn.getSpecifiedLength().intValue());
-		assertEquals(Column.DEFAULT_PRECISION, ormColumn.getSpecifiedPrecision().intValue());
-		assertEquals(Column.DEFAULT_SCALE, ormColumn.getSpecifiedScale().intValue());
-	
-		getEntityMappings().getPersistenceUnitMetadata().setXmlMappingMetadataComplete(true);
-		ormPersistentType.getMapping().setSpecifiedMetadataComplete(Boolean.FALSE);
-		assertEquals("name", ormColumn.getSpecifiedName());
-		assertEquals(TYPE_NAME, ormColumn.getSpecifiedTable());
-		assertEquals(null, ormColumn.getColumnDefinition());
-		assertEquals(Boolean.TRUE, ormColumn.getSpecifiedInsertable());
-		assertEquals(Boolean.TRUE, ormColumn.getSpecifiedUpdatable());
-		assertEquals(Boolean.TRUE, ormColumn.getSpecifiedNullable());
-		assertEquals(Boolean.FALSE, ormColumn.getSpecifiedUnique());
-		assertEquals(Column.DEFAULT_LENGTH, ormColumn.getSpecifiedLength().intValue());
-		assertEquals(Column.DEFAULT_PRECISION, ormColumn.getSpecifiedPrecision().intValue());
-		assertEquals(Column.DEFAULT_SCALE, ormColumn.getSpecifiedScale().intValue());
-	
-		ormPersistentType.getMapping().setSpecifiedMetadataComplete(null);
-		assertEquals("name", ormColumn.getSpecifiedName());
-		assertEquals(TYPE_NAME, ormColumn.getSpecifiedTable());
-		assertEquals(null, ormColumn.getColumnDefinition());
-		assertEquals(Boolean.TRUE, ormColumn.getSpecifiedInsertable());
-		assertEquals(Boolean.TRUE, ormColumn.getSpecifiedUpdatable());
-		assertEquals(Boolean.TRUE, ormColumn.getSpecifiedNullable());
-		assertEquals(Boolean.FALSE, ormColumn.getSpecifiedUnique());
-		assertEquals(Column.DEFAULT_LENGTH, ormColumn.getSpecifiedLength().intValue());
-		assertEquals(Column.DEFAULT_PRECISION, ormColumn.getSpecifiedPrecision().intValue());
-		assertEquals(Column.DEFAULT_SCALE, ormColumn.getSpecifiedScale().intValue());
-		
-		//set metadata-complete false, orm.xml virtual column gets setting from java annotation
-		getEntityMappings().getPersistenceUnitMetadata().setXmlMappingMetadataComplete(false);
-		assertEquals("FOO", ormColumn.getSpecifiedName());
-		assertEquals("FOO_TABLE", ormColumn.getSpecifiedTable());
-		assertEquals("COLUMN_DEFINITION", ormColumn.getColumnDefinition());
-		assertEquals(Boolean.FALSE, ormColumn.getSpecifiedInsertable());
-		assertEquals(Boolean.FALSE, ormColumn.getSpecifiedUpdatable());
-		assertEquals(Boolean.FALSE, ormColumn.getSpecifiedNullable());
-		assertEquals(Boolean.TRUE, ormColumn.getSpecifiedUnique());
-		assertEquals(Integer.valueOf(45), ormColumn.getSpecifiedLength());
-		assertEquals(Integer.valueOf(46), ormColumn.getSpecifiedPrecision());
-		assertEquals(Integer.valueOf(47), ormColumn.getSpecifiedScale());
-	}
-	
-	public void testNullColumnDefaults() throws Exception {
-		createTestEntity();
-
-		OrmPersistentType ormPersistentType = getEntityMappings().addPersistentType(MappingKeys.ENTITY_TYPE_MAPPING_KEY, FULLY_QUALIFIED_TYPE_NAME);
-		OrmPersistentAttribute namePersistentAttribute = ormPersistentType.addSpecifiedPersistentAttribute(MappingKeys.BASIC_ATTRIBUTE_MAPPING_KEY, "name");
-
-		OrmBasicMapping nameVirtualMapping = (OrmBasicMapping) namePersistentAttribute.getMapping();		
-		OrmColumn ormColumn = nameVirtualMapping.getColumn();
-	
-		//set Column annotation in Java
-		JavaBasicMapping javaBasicMapping = (JavaBasicMapping) ormPersistentType.getJavaPersistentType().getAttributeNamed("name").getMapping();
-		javaBasicMapping.getColumn().setSpecifiedName("FOO");		
-		javaBasicMapping.getColumn().setSpecifiedTable("FOO_TABLE");
-		javaBasicMapping.getColumn().setColumnDefinition("COLUMN_DEFINITION");
-		javaBasicMapping.getColumn().setSpecifiedInsertable(Boolean.FALSE);	
-		javaBasicMapping.getColumn().setSpecifiedUpdatable(Boolean.FALSE);	
-		javaBasicMapping.getColumn().setSpecifiedNullable(Boolean.FALSE);	
-		javaBasicMapping.getColumn().setSpecifiedUnique(Boolean.TRUE);	
-		javaBasicMapping.getColumn().setSpecifiedLength(Integer.valueOf(45));
-		javaBasicMapping.getColumn().setSpecifiedPrecision(Integer.valueOf(46));
-		javaBasicMapping.getColumn().setSpecifiedScale(Integer.valueOf(47));
-
-	
-		assertEquals("name", ormColumn.getDefaultName());
-		assertEquals(TYPE_NAME, ormColumn.getDefaultTable());
-		assertEquals(true, ormColumn.isDefaultInsertable());
-		assertEquals(true, ormColumn.isDefaultUpdatable());
-		assertEquals(true, ormColumn.isDefaultNullable());
-		assertEquals(false, ormColumn.isDefaultUnique());
-		assertEquals(Column.DEFAULT_LENGTH, ormColumn.getDefaultLength());
-		assertEquals(Column.DEFAULT_PRECISION, ormColumn.getDefaultPrecision());
-		assertEquals(Column.DEFAULT_SCALE, ormColumn.getDefaultScale());
-		assertNull(ormColumn.getSpecifiedName());
-		assertNull(ormColumn.getSpecifiedTable());
-		assertNull(ormColumn.getColumnDefinition());
-		assertNull(ormColumn.getSpecifiedInsertable());
-		assertNull(ormColumn.getSpecifiedUpdatable());
-		assertNull(ormColumn.getSpecifiedNullable());
-		assertNull(ormColumn.getSpecifiedUnique());
-		assertNull(ormColumn.getSpecifiedLength());
-		assertNull(ormColumn.getSpecifiedPrecision());
-		assertNull(ormColumn.getSpecifiedScale());
-	}
-
-	public void testVirtualColumnTable() throws Exception {
-		createTestEntity();
-
-		OrmPersistentType ormPersistentType = getEntityMappings().addPersistentType(MappingKeys.ENTITY_TYPE_MAPPING_KEY, FULLY_QUALIFIED_TYPE_NAME);
-		ListIterator<OrmPersistentAttribute> attributes = ormPersistentType.virtualAttributes();
-		attributes.next();	
-		
-		//virtual attribute in orm.xml, java attribute has no Column annotation
-		OrmPersistentAttribute namePersistentAttribute = attributes.next();
-		OrmBasicMapping nameVirtualMapping = (OrmBasicMapping) namePersistentAttribute.getMapping();	
-		OrmColumn ormColumn = nameVirtualMapping.getColumn();
-		
-		assertEquals(TYPE_NAME, ormColumn.getSpecifiedTable());
-	
-		((OrmEntity) ormPersistentType.getMapping()).getTable().setSpecifiedName("ORM_TABLE");
-		assertEquals("ORM_TABLE", ormColumn.getSpecifiedTable());
-		
-		//set Column table element in Java
-		JavaBasicMapping javaBasicMapping = (JavaBasicMapping) ormPersistentType.getJavaPersistentType().getAttributeNamed("name").getMapping();
-		javaBasicMapping.getColumn().setSpecifiedTable("JAVA_TABLE");	
-		assertEquals("JAVA_TABLE", ormColumn.getSpecifiedTable());
-		
-		//make name persistent attribute not virtual
-		namePersistentAttribute = ormPersistentType.addSpecifiedPersistentAttribute(MappingKeys.BASIC_ATTRIBUTE_MAPPING_KEY, "name");
-		nameVirtualMapping = (OrmBasicMapping) namePersistentAttribute.getMapping();	
-		ormColumn = nameVirtualMapping.getColumn();
-		assertNull(ormColumn.getSpecifiedTable());
-		assertEquals("ORM_TABLE", ormColumn.getDefaultTable());
-		
-	}
-
-//public void testUpdateDefaultNameNoJava() throws Exception {
-//	createTestEntity();
-//	
-//	OrmPersistentType ormPersistentType = entityMappings().addOrmPersistentType(IMappingKeys.ENTITY_TYPE_MAPPING_KEY, "model.Foo");
-//	XmlEntity xmlEntity = (XmlEntity) ormPersistentType.getMapping();
-//	assertEquals("Foo", xmlEntity.getTable().getDefaultName());
-//}
-//
-//public void testUpdateDefaultNameFromParent() throws Exception {
-//	createTestEntity();
-//	createTestSubType();
-//	
-//	OrmPersistentType parentOrmPersistentType = entityMappings().addOrmPersistentType(IMappingKeys.ENTITY_TYPE_MAPPING_KEY, FULLY_QUALIFIED_TYPE_NAME);
-//	OrmPersistentType childOrmPersistentType = entityMappings().addOrmPersistentType(IMappingKeys.ENTITY_TYPE_MAPPING_KEY, PACKAGE_NAME + ".AnnotationTestTypeChild");
-//	XmlEntity parentXmlEntity = (XmlEntity) parentOrmPersistentType.getMapping();
-//	XmlEntity childXmlEntity = (XmlEntity) childOrmPersistentType.getMapping();
-//	
-//	assertEquals(TYPE_NAME, parentXmlEntity.getTable().getDefaultName());
-//	assertEquals(TYPE_NAME, childXmlEntity.getTable().getDefaultName());
-//	
-//	parentXmlEntity.getTable().setSpecifiedName("FOO");
-//	assertEquals(TYPE_NAME, parentXmlEntity.getTable().getDefaultName());
-//	assertEquals("FOO", childXmlEntity.getTable().getDefaultName());
-//
-//	parentXmlEntity.setSpecifiedInheritanceStrategy(InheritanceType.JOINED);
-//	assertEquals(TYPE_NAME, parentXmlEntity.getTable().getDefaultName());
-//	assertEquals("AnnotationTestTypeChild", childXmlEntity.getTable().getDefaultName());
-//}
-
-}
\ No newline at end of file
diff --git a/jpa/tests/org.eclipse.jpt.core.tests/src/org/eclipse/jpt/core/tests/internal/context/orm/OrmDiscriminatorColumnTests.java b/jpa/tests/org.eclipse.jpt.core.tests/src/org/eclipse/jpt/core/tests/internal/context/orm/OrmDiscriminatorColumnTests.java
deleted file mode 100644
index 9defed0..0000000
--- a/jpa/tests/org.eclipse.jpt.core.tests/src/org/eclipse/jpt/core/tests/internal/context/orm/OrmDiscriminatorColumnTests.java
+++ /dev/null
@@ -1,456 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.core.tests.internal.context.orm;
-
-import org.eclipse.jpt.core.JptCorePlugin;
-import org.eclipse.jpt.core.MappingKeys;
-import org.eclipse.jpt.core.context.DiscriminatorColumn;
-import org.eclipse.jpt.core.context.DiscriminatorType;
-import org.eclipse.jpt.core.context.Entity;
-import org.eclipse.jpt.core.context.InheritanceType;
-import org.eclipse.jpt.core.context.orm.OrmDiscriminatorColumn;
-import org.eclipse.jpt.core.context.orm.OrmEntity;
-import org.eclipse.jpt.core.context.orm.OrmPersistentType;
-import org.eclipse.jpt.core.resource.java.JPA;
-import org.eclipse.jpt.core.resource.orm.OrmFactory;
-import org.eclipse.jpt.core.resource.orm.XmlEntity;
-import org.eclipse.jpt.core.resource.persistence.PersistenceFactory;
-import org.eclipse.jpt.core.resource.persistence.XmlMappingFileRef;
-import org.eclipse.jpt.core.tests.internal.context.ContextModelTestCase;
-import org.eclipse.jpt.core.tests.internal.projects.TestJavaProject.SourceWriter;
-
-@SuppressWarnings("nls")
-public class OrmDiscriminatorColumnTests extends ContextModelTestCase
-{
-	public OrmDiscriminatorColumnTests(String name) {
-		super(name);
-	}
-	
-	@Override
-	protected void setUp() throws Exception {
-		super.setUp();
-		XmlMappingFileRef mappingFileRef = PersistenceFactory.eINSTANCE.createXmlMappingFileRef();
-		mappingFileRef.setFileName(JptCorePlugin.DEFAULT_ORM_XML_FILE_PATH);
-		getXmlPersistenceUnit().getMappingFiles().add(mappingFileRef);
-		getPersistenceXmlResource().save(null);
-	}
-	
-	private void createTestAbstractEntity() throws Exception {
-		SourceWriter sourceWriter = new SourceWriter() {
-			public void appendSourceTo(StringBuilder sb) {
-				sb.append(CR);
-					sb.append("import ");
-					sb.append(JPA.ENTITY);
-					sb.append(";");
-					sb.append(CR);
-				sb.append("@Entity");
-				sb.append(CR);
-				sb.append("public abstract class ").append(TYPE_NAME).append(" ");
-				sb.append("{}").append(CR);
-			}
-		};
-		this.javaProject.createCompilationUnit(PACKAGE_NAME, FILE_NAME, sourceWriter);
-	}
-	
-	
-	private void createTestSubType() throws Exception {
-		SourceWriter sourceWriter = new SourceWriter() {
-			public void appendSourceTo(StringBuilder sb) {
-				sb.append(CR);
-					sb.append("import ");
-					sb.append(JPA.ENTITY);
-					sb.append(";");
-					sb.append(CR);
-				sb.append("@Entity");
-				sb.append(CR);
-				sb.append("public class ").append("AnnotationTestTypeChild").append(" ");
-				sb.append("extends " + TYPE_NAME + " ");
-				sb.append("{}").append(CR);
-			}
-		};
-		this.javaProject.createCompilationUnit(PACKAGE_NAME, "AnnotationTestTypeChild.java", sourceWriter);
-	}
-	
-	public void testUpdateSpecifiedName() throws Exception {
-		OrmPersistentType ormPersistentType = getEntityMappings().addPersistentType(MappingKeys.ENTITY_TYPE_MAPPING_KEY, "model.foo");
-		OrmEntity ormEntity = (OrmEntity) ormPersistentType.getMapping();
-		OrmDiscriminatorColumn ormColumn = ormEntity.getDiscriminatorColumn();
-		
-		XmlEntity entityResource = getXmlEntityMappings().getEntities().get(0);
-
-		assertNull(ormColumn.getSpecifiedName());
-		assertNull(entityResource.getDiscriminatorColumn());
-		
-		//set name in the resource model, verify context model updated
-		entityResource.setDiscriminatorColumn(OrmFactory.eINSTANCE.createXmlDiscriminatorColumn());
-		entityResource.getDiscriminatorColumn().setName("FOO");
-		assertEquals("FOO", ormColumn.getSpecifiedName());
-		assertEquals("FOO", entityResource.getDiscriminatorColumn().getName());
-	
-		//set name to null in the resource model
-		entityResource.getDiscriminatorColumn().setName(null);
-		assertNull(ormColumn.getSpecifiedName());
-		assertNull(entityResource.getDiscriminatorColumn().getName());
-		
-		entityResource.getDiscriminatorColumn().setName("FOO");
-		assertEquals("FOO", ormColumn.getSpecifiedName());
-		assertEquals("FOO", entityResource.getDiscriminatorColumn().getName());
-
-		entityResource.setDiscriminatorColumn(null);
-		assertNull(ormColumn.getSpecifiedName());
-		assertNull(entityResource.getDiscriminatorColumn());
-	}
-	
-	public void testModifySpecifiedName() throws Exception {
-		OrmPersistentType ormPersistentType = getEntityMappings().addPersistentType(MappingKeys.ENTITY_TYPE_MAPPING_KEY, "model.foo");
-		OrmEntity ormEntity = (OrmEntity) ormPersistentType.getMapping();
-		OrmDiscriminatorColumn ormColumn = ormEntity.getDiscriminatorColumn();
-		
-		XmlEntity entityResource = getXmlEntityMappings().getEntities().get(0);
-
-		assertNull(ormColumn.getSpecifiedName());
-		assertNull(entityResource.getDiscriminatorColumn());
-		
-		//set name in the context model, verify resource model modified
-		ormColumn.setSpecifiedName("foo");
-		assertEquals("foo", ormColumn.getSpecifiedName());
-		assertEquals("foo", entityResource.getDiscriminatorColumn().getName());
-		
-		//set name to null in the context model
-		ormColumn.setSpecifiedName(null);
-		assertNull(ormColumn.getSpecifiedName());
-		assertNull(entityResource.getDiscriminatorColumn());
-	}
-	
-//	public void testUpdateDefaultNameFromJavaTable() throws Exception {
-//		createTestEntity();
-//		
-//		OrmPersistentType ormPersistentType = entityMappings().addOrmPersistentType(IMappingKeys.ENTITY_TYPE_MAPPING_KEY, FULLY_QUALIFIED_TYPE_NAME);
-//		XmlEntity ormEntity = (XmlEntity) ormPersistentType.getMapping();
-//		assertEquals(TYPE_NAME, ormEntity.getTable().getDefaultName());
-//		
-//		ormEntity.javaEntity().getTable().setSpecifiedName("Foo");
-//		assertEquals("Foo", ormEntity.getTable().getDefaultName());
-//		
-//		ormEntity.setSpecifiedMetadataComplete(Boolean.TRUE);
-//		assertEquals(TYPE_NAME, ormEntity.getTable().getDefaultName());
-//
-//		ormEntity.entityMappings().getPersistenceUnitMetadata().setXmlMappingMetadataComplete(true);
-//		ormEntity.setSpecifiedMetadataComplete(Boolean.FALSE);
-//		assertEquals(TYPE_NAME, ormEntity.getTable().getDefaultName());
-//	
-//		ormEntity.setSpecifiedMetadataComplete(null);
-//		assertEquals(TYPE_NAME, ormEntity.getTable().getDefaultName());
-//		
-//		ormEntity.entityMappings().getPersistenceUnitMetadata().setXmlMappingMetadataComplete(false);
-//		assertEquals("Foo", ormEntity.getTable().getDefaultName());
-//		
-//		ormEntity.getTable().setSpecifiedName("Bar");
-//		assertEquals(TYPE_NAME, ormEntity.getTable().getDefaultName());
-//	}
-//	
-//	public void testUpdateDefaultNameNoJava() throws Exception {
-//		createTestEntity();
-//		
-//		OrmPersistentType ormPersistentType = entityMappings().addOrmPersistentType(IMappingKeys.ENTITY_TYPE_MAPPING_KEY, "model.Foo");
-//		XmlEntity ormEntity = (XmlEntity) ormPersistentType.getMapping();
-//		assertEquals("Foo", ormEntity.getTable().getDefaultName());
-//	}
-//	
-//	public void testUpdateDefaultNameFromParent() throws Exception {
-//		createTestEntity();
-//		createTestSubType();
-//		
-//		OrmPersistentType parentOrmPersistentType = entityMappings().addOrmPersistentType(IMappingKeys.ENTITY_TYPE_MAPPING_KEY, FULLY_QUALIFIED_TYPE_NAME);
-//		OrmPersistentType childOrmPersistentType = entityMappings().addOrmPersistentType(IMappingKeys.ENTITY_TYPE_MAPPING_KEY, PACKAGE_NAME + ".AnnotationTestTypeChild");
-//		XmlEntity parentXmlEntity = (XmlEntity) parentOrmPersistentType.getMapping();
-//		XmlEntity childXmlEntity = (XmlEntity) childOrmPersistentType.getMapping();
-//		
-//		assertEquals(TYPE_NAME, parentXmlEntity.getTable().getDefaultName());
-//		assertEquals(TYPE_NAME, childXmlEntity.getTable().getDefaultName());
-//		
-//		parentXmlEntity.getTable().setSpecifiedName("FOO");
-//		assertEquals(TYPE_NAME, parentXmlEntity.getTable().getDefaultName());
-//		assertEquals("FOO", childXmlEntity.getTable().getDefaultName());
-//
-//		parentXmlEntity.setSpecifiedInheritanceStrategy(InheritanceType.JOINED);
-//		assertEquals(TYPE_NAME, parentXmlEntity.getTable().getDefaultName());
-//		assertEquals("AnnotationTestTypeChild", childXmlEntity.getTable().getDefaultName());
-//	}
-	
-	public void testUpdateSpecifiedLength() throws Exception {
-		OrmPersistentType ormPersistentType = getEntityMappings().addPersistentType(MappingKeys.ENTITY_TYPE_MAPPING_KEY, "model.foo");
-		OrmEntity ormEntity = (OrmEntity) ormPersistentType.getMapping();
-		OrmDiscriminatorColumn ormColumn = ormEntity.getDiscriminatorColumn();
-		
-		XmlEntity entityResource = getXmlEntityMappings().getEntities().get(0);
-
-		assertNull(ormColumn.getSpecifiedLength());
-		assertNull(entityResource.getDiscriminatorColumn());
-		
-		//set name in the resource model, verify context model updated
-		entityResource.setDiscriminatorColumn(OrmFactory.eINSTANCE.createXmlDiscriminatorColumn());
-		entityResource.getDiscriminatorColumn().setLength(Integer.valueOf(8));
-		assertEquals(Integer.valueOf(8), ormColumn.getSpecifiedLength());
-		assertEquals(Integer.valueOf(8), entityResource.getDiscriminatorColumn().getLength());
-	
-		//set name to null in the resource model
-		entityResource.getDiscriminatorColumn().setLength(null);
-		assertNull(ormColumn.getSpecifiedLength());
-		assertNull(entityResource.getDiscriminatorColumn().getLength());
-		
-		entityResource.getDiscriminatorColumn().setLength(Integer.valueOf(11));
-		assertEquals(Integer.valueOf(11), ormColumn.getSpecifiedLength());
-		assertEquals(Integer.valueOf(11), entityResource.getDiscriminatorColumn().getLength());
-
-		entityResource.setDiscriminatorColumn(null);
-		assertNull(ormColumn.getSpecifiedLength());
-		assertNull(entityResource.getDiscriminatorColumn());
-	}
-	
-	public void testModifySpecifiedLength() throws Exception {
-		OrmPersistentType ormPersistentType = getEntityMappings().addPersistentType(MappingKeys.ENTITY_TYPE_MAPPING_KEY, "model.foo");
-		OrmEntity ormEntity = (OrmEntity) ormPersistentType.getMapping();
-		OrmDiscriminatorColumn ormColumn = ormEntity.getDiscriminatorColumn();
-		
-		XmlEntity entityResource = getXmlEntityMappings().getEntities().get(0);
-
-		assertNull(ormColumn.getSpecifiedLength());
-		assertNull(entityResource.getDiscriminatorColumn());
-		
-		//set name in the context model, verify resource model modified
-		ormColumn.setSpecifiedLength(Integer.valueOf(7));
-		assertEquals(Integer.valueOf(7), ormColumn.getSpecifiedLength());
-		assertEquals(Integer.valueOf(7), entityResource.getDiscriminatorColumn().getLength());
-		
-		//set name to null in the context model
-		ormColumn.setSpecifiedLength(null);
-		assertNull(ormColumn.getSpecifiedLength());
-		assertNull(entityResource.getDiscriminatorColumn());
-	}
-
-	public void testUpdateSpecifiedColumnDefinition() throws Exception {
-		OrmPersistentType ormPersistentType = getEntityMappings().addPersistentType(MappingKeys.ENTITY_TYPE_MAPPING_KEY, "model.foo");
-		OrmEntity ormEntity = (OrmEntity) ormPersistentType.getMapping();
-		OrmDiscriminatorColumn ormColumn = ormEntity.getDiscriminatorColumn();
-		
-		XmlEntity entityResource = getXmlEntityMappings().getEntities().get(0);
-
-		assertNull(ormColumn.getColumnDefinition());
-		assertNull(entityResource.getDiscriminatorColumn());
-		
-		//set name in the resource model, verify context model updated
-		entityResource.setDiscriminatorColumn(OrmFactory.eINSTANCE.createXmlDiscriminatorColumn());
-		entityResource.getDiscriminatorColumn().setColumnDefinition("FOO");
-		assertEquals("FOO", ormColumn.getColumnDefinition());
-		assertEquals("FOO", entityResource.getDiscriminatorColumn().getColumnDefinition());
-	
-		//set name to null in the resource model
-		entityResource.getDiscriminatorColumn().setColumnDefinition(null);
-		assertNull(ormColumn.getColumnDefinition());
-		assertNull(entityResource.getDiscriminatorColumn().getColumnDefinition());
-		
-		entityResource.getDiscriminatorColumn().setColumnDefinition("FOO");
-		assertEquals("FOO", ormColumn.getColumnDefinition());
-		assertEquals("FOO", entityResource.getDiscriminatorColumn().getColumnDefinition());
-
-		entityResource.setDiscriminatorColumn(null);
-		assertNull(ormColumn.getColumnDefinition());
-		assertNull(entityResource.getDiscriminatorColumn());
-	}
-	
-	public void testModifySpecifiedColumnDefinition() throws Exception {
-		OrmPersistentType ormPersistentType = getEntityMappings().addPersistentType(MappingKeys.ENTITY_TYPE_MAPPING_KEY, "model.foo");
-		OrmEntity ormEntity = (OrmEntity) ormPersistentType.getMapping();
-		OrmDiscriminatorColumn ormColumn = ormEntity.getDiscriminatorColumn();
-		
-		XmlEntity entityResource = getXmlEntityMappings().getEntities().get(0);
-
-		assertNull(ormColumn.getColumnDefinition());
-		assertNull(entityResource.getDiscriminatorColumn());
-		
-		//set name in the context model, verify resource model modified
-		ormColumn.setColumnDefinition("foo");
-		assertEquals("foo", ormColumn.getColumnDefinition());
-		assertEquals("foo", entityResource.getDiscriminatorColumn().getColumnDefinition());
-		
-		//set name to null in the context model
-		ormColumn.setColumnDefinition(null);
-		assertNull(ormColumn.getColumnDefinition());
-		assertNull(entityResource.getDiscriminatorColumn());
-	}
-	
-	public void testUpdateSpecifiedDiscriminatorType() throws Exception {
-		OrmPersistentType ormPersistentType = getEntityMappings().addPersistentType(MappingKeys.ENTITY_TYPE_MAPPING_KEY, "model.foo");
-		OrmEntity ormEntity = (OrmEntity) ormPersistentType.getMapping();
-		OrmDiscriminatorColumn ormColumn = ormEntity.getDiscriminatorColumn();
-		
-		XmlEntity entityResource = getXmlEntityMappings().getEntities().get(0);
-
-		assertNull(ormColumn.getSpecifiedDiscriminatorType());
-		assertNull(entityResource.getDiscriminatorColumn());
-		
-		//set discriminator type in the resource model, verify context model updated
-		entityResource.setDiscriminatorColumn(OrmFactory.eINSTANCE.createXmlDiscriminatorColumn());
-		entityResource.getDiscriminatorColumn().setDiscriminatorType(org.eclipse.jpt.core.resource.orm.DiscriminatorType.STRING);
-		assertEquals(DiscriminatorType.STRING, ormColumn.getSpecifiedDiscriminatorType());
-		assertEquals(org.eclipse.jpt.core.resource.orm.DiscriminatorType.STRING, entityResource.getDiscriminatorColumn().getDiscriminatorType());
-	
-		//set discriminator type to null in the resource model
-		entityResource.getDiscriminatorColumn().setDiscriminatorType(null);
-		assertNull(ormColumn.getSpecifiedDiscriminatorType());
-		assertNull(entityResource.getDiscriminatorColumn().getDiscriminatorType());
-		
-		entityResource.getDiscriminatorColumn().setDiscriminatorType(org.eclipse.jpt.core.resource.orm.DiscriminatorType.CHAR);
-		assertEquals(DiscriminatorType.CHAR, ormColumn.getSpecifiedDiscriminatorType());
-		assertEquals(org.eclipse.jpt.core.resource.orm.DiscriminatorType.CHAR, entityResource.getDiscriminatorColumn().getDiscriminatorType());
-
-		entityResource.setDiscriminatorColumn(null);
-		assertNull(ormColumn.getSpecifiedDiscriminatorType());
-		assertNull(entityResource.getDiscriminatorColumn());
-	}
-	
-	public void testModifySpecifiedDiscriminatorType() throws Exception {
-		OrmPersistentType ormPersistentType = getEntityMappings().addPersistentType(MappingKeys.ENTITY_TYPE_MAPPING_KEY, "model.foo");
-		OrmEntity ormEntity = (OrmEntity) ormPersistentType.getMapping();
-		OrmDiscriminatorColumn ormColumn = ormEntity.getDiscriminatorColumn();
-		
-		XmlEntity entityResource = getXmlEntityMappings().getEntities().get(0);
-
-		assertNull(ormColumn.getSpecifiedDiscriminatorType());
-		assertNull(entityResource.getDiscriminatorColumn());
-		
-		//set discriminator type in the context model, verify resource model modified
-		ormColumn.setSpecifiedDiscriminatorType(DiscriminatorType.STRING);
-		assertEquals(DiscriminatorType.STRING, ormColumn.getSpecifiedDiscriminatorType());
-		assertEquals(org.eclipse.jpt.core.resource.orm.DiscriminatorType.STRING, entityResource.getDiscriminatorColumn().getDiscriminatorType());
-		
-		//set discriminator type to null in the context model
-		ormColumn.setSpecifiedDiscriminatorType(null);
-		assertNull(ormColumn.getSpecifiedDiscriminatorType());
-		assertNull(entityResource.getDiscriminatorColumn());
-	}
-	
-	public void testDefaultsNoDiscriminatorColumnInJava() throws Exception {
-		createTestAbstractEntity();
-		createTestSubType();
-		OrmPersistentType persistentType = getEntityMappings().addPersistentType(MappingKeys.ENTITY_TYPE_MAPPING_KEY, FULLY_QUALIFIED_TYPE_NAME);
-		OrmEntity abstractEntity = (OrmEntity) persistentType.getMapping();
-
-		OrmPersistentType childPersistentType = getEntityMappings().addPersistentType(MappingKeys.ENTITY_TYPE_MAPPING_KEY, PACKAGE_NAME + "." + "AnnotationTestTypeChild");
-		OrmEntity childEntity = (OrmEntity) childPersistentType.getMapping();
-
-		//test defaults with single-table inheritance, no specified discriminator column set
-		assertEquals(InheritanceType.SINGLE_TABLE, abstractEntity.getDefaultInheritanceStrategy());
-		assertEquals(DiscriminatorColumn.DEFAULT_NAME, abstractEntity.getDiscriminatorColumn().getDefaultName());
-		assertEquals(DiscriminatorColumn.DEFAULT_LENGTH, abstractEntity.getDiscriminatorColumn().getDefaultLength());
-		assertEquals(DiscriminatorColumn.DEFAULT_DISCRIMINATOR_TYPE, abstractEntity.getDiscriminatorColumn().getDefaultDiscriminatorType());
-		
-		assertEquals(InheritanceType.SINGLE_TABLE, childEntity.getDefaultInheritanceStrategy());
-		assertEquals(DiscriminatorColumn.DEFAULT_NAME, childEntity.getDiscriminatorColumn().getDefaultName());
-		assertEquals(DiscriminatorColumn.DEFAULT_LENGTH, childEntity.getDiscriminatorColumn().getDefaultLength());
-		assertEquals(DiscriminatorColumn.DEFAULT_DISCRIMINATOR_TYPE, childEntity.getDiscriminatorColumn().getDefaultDiscriminatorType());
-
-		
-		//test defaults with single-table inheritance, specified discriminator column set on root
-		abstractEntity.getDiscriminatorColumn().setSpecifiedName("DTYPE2");
-		abstractEntity.getDiscriminatorColumn().setSpecifiedLength(Integer.valueOf(5));
-		abstractEntity.getDiscriminatorColumn().setSpecifiedDiscriminatorType(DiscriminatorType.CHAR);
-		
-		assertEquals(InheritanceType.SINGLE_TABLE, abstractEntity.getDefaultInheritanceStrategy());
-		assertEquals(DiscriminatorColumn.DEFAULT_NAME, abstractEntity.getDiscriminatorColumn().getDefaultName());
-		assertEquals(DiscriminatorColumn.DEFAULT_LENGTH, abstractEntity.getDiscriminatorColumn().getDefaultLength());
-		assertEquals(DiscriminatorColumn.DEFAULT_DISCRIMINATOR_TYPE, abstractEntity.getDiscriminatorColumn().getDefaultDiscriminatorType());
-		assertEquals("DTYPE2", abstractEntity.getDiscriminatorColumn().getSpecifiedName());
-		assertEquals(Integer.valueOf(5), abstractEntity.getDiscriminatorColumn().getSpecifiedLength());
-		assertEquals(DiscriminatorType.CHAR, abstractEntity.getDiscriminatorColumn().getSpecifiedDiscriminatorType());
-		
-		assertEquals(InheritanceType.SINGLE_TABLE, childEntity.getDefaultInheritanceStrategy());
-		assertEquals("DTYPE2", childEntity.getDiscriminatorColumn().getDefaultName());
-		assertEquals(5, childEntity.getDiscriminatorColumn().getDefaultLength());
-		assertEquals(DiscriminatorType.CHAR, childEntity.getDiscriminatorColumn().getDefaultDiscriminatorType());
-		assertEquals(null, childEntity.getDiscriminatorColumn().getSpecifiedName());
-		assertEquals(null, childEntity.getDiscriminatorColumn().getSpecifiedLength());
-		assertEquals(null, childEntity.getDiscriminatorColumn().getSpecifiedDiscriminatorType());
-		
-		
-		//test defaults with table-per-class inheritance, discriminator column does not apply
-		abstractEntity.getDiscriminatorColumn().setSpecifiedName(null);
-		abstractEntity.getDiscriminatorColumn().setSpecifiedLength(null);
-		abstractEntity.getDiscriminatorColumn().setSpecifiedDiscriminatorType(null);
-		abstractEntity.setSpecifiedInheritanceStrategy(InheritanceType.TABLE_PER_CLASS);
-		
-		assertEquals(InheritanceType.TABLE_PER_CLASS, abstractEntity.getInheritanceStrategy());
-		assertEquals(null, abstractEntity.getDiscriminatorColumn().getDefaultName());
-		assertEquals(0, abstractEntity.getDiscriminatorColumn().getDefaultLength());
-		assertEquals(null, abstractEntity.getDiscriminatorColumn().getDefaultDiscriminatorType());
-		
-		assertEquals(InheritanceType.TABLE_PER_CLASS, childEntity.getDefaultInheritanceStrategy());
-		assertEquals(null, childEntity.getDiscriminatorColumn().getDefaultName());
-		assertEquals(0, childEntity.getDiscriminatorColumn().getDefaultLength());
-		assertEquals(null, childEntity.getDiscriminatorColumn().getDefaultDiscriminatorType());
-	}
-	
-	public void testDefaultsDiscriminatorColumnInJava() throws Exception {
-		createTestAbstractEntity();
-		createTestSubType();
-		OrmPersistentType persistentType = getEntityMappings().addPersistentType(MappingKeys.ENTITY_TYPE_MAPPING_KEY, FULLY_QUALIFIED_TYPE_NAME);
-		OrmEntity abstractEntity = (OrmEntity) persistentType.getMapping();
-
-		OrmPersistentType childPersistentType = getEntityMappings().addPersistentType(MappingKeys.ENTITY_TYPE_MAPPING_KEY, PACKAGE_NAME + "." + "AnnotationTestTypeChild");
-		OrmEntity childEntity = (OrmEntity) childPersistentType.getMapping();
-		
-		((Entity) persistentType.getJavaPersistentType().getMapping()).getDiscriminatorColumn().setSpecifiedName("FOO");
-		((Entity) persistentType.getJavaPersistentType().getMapping()).getDiscriminatorColumn().setSpecifiedLength(Integer.valueOf(5));
-		((Entity) persistentType.getJavaPersistentType().getMapping()).getDiscriminatorColumn().setSpecifiedDiscriminatorType(DiscriminatorType.CHAR);
-		
-		//test defaults with single-table inheritance, specified discriminator column set in java
-		assertEquals(InheritanceType.SINGLE_TABLE, abstractEntity.getDefaultInheritanceStrategy());
-		assertEquals("FOO", abstractEntity.getDiscriminatorColumn().getDefaultName());
-		assertEquals(5, abstractEntity.getDiscriminatorColumn().getDefaultLength());
-		assertEquals(DiscriminatorType.CHAR, abstractEntity.getDiscriminatorColumn().getDefaultDiscriminatorType());
-		
-		assertEquals(InheritanceType.SINGLE_TABLE, childEntity.getDefaultInheritanceStrategy());
-		assertEquals("FOO", childEntity.getDiscriminatorColumn().getDefaultName());
-		assertEquals(5, childEntity.getDiscriminatorColumn().getDefaultLength());
-		assertEquals(DiscriminatorType.CHAR, childEntity.getDiscriminatorColumn().getDefaultDiscriminatorType());
-
-		
-		//test defaults with single-table inheritance, specified discriminator column set in java, metadata-complete true
-		getEntityMappings().getPersistenceUnitMetadata().setXmlMappingMetadataComplete(true);
-		assertEquals(InheritanceType.SINGLE_TABLE, abstractEntity.getDefaultInheritanceStrategy());
-		assertEquals(DiscriminatorColumn.DEFAULT_NAME, abstractEntity.getDiscriminatorColumn().getDefaultName());
-		assertEquals(DiscriminatorColumn.DEFAULT_LENGTH, abstractEntity.getDiscriminatorColumn().getDefaultLength());
-		assertEquals(DiscriminatorColumn.DEFAULT_DISCRIMINATOR_TYPE, abstractEntity.getDiscriminatorColumn().getDefaultDiscriminatorType());
-		
-		assertEquals(InheritanceType.SINGLE_TABLE, childEntity.getDefaultInheritanceStrategy());
-		assertEquals(DiscriminatorColumn.DEFAULT_NAME, childEntity.getDiscriminatorColumn().getDefaultName());
-		assertEquals(DiscriminatorColumn.DEFAULT_LENGTH, childEntity.getDiscriminatorColumn().getDefaultLength());
-		assertEquals(DiscriminatorColumn.DEFAULT_DISCRIMINATOR_TYPE, childEntity.getDiscriminatorColumn().getDefaultDiscriminatorType());
-		
-		
-		//test defaults with single-table inheritance, specified discriminator column set in orm
-		getEntityMappings().getPersistenceUnitMetadata().setXmlMappingMetadataComplete(false);
-		abstractEntity.getDiscriminatorColumn().setSpecifiedName("BAR");
-		abstractEntity.getDiscriminatorColumn().setSpecifiedLength(Integer.valueOf(6));
-		abstractEntity.getDiscriminatorColumn().setSpecifiedDiscriminatorType(DiscriminatorType.INTEGER);
-		
-		assertEquals(InheritanceType.SINGLE_TABLE, abstractEntity.getDefaultInheritanceStrategy());
-		assertEquals(DiscriminatorColumn.DEFAULT_NAME, abstractEntity.getDiscriminatorColumn().getDefaultName());
-		assertEquals(DiscriminatorColumn.DEFAULT_LENGTH, abstractEntity.getDiscriminatorColumn().getDefaultLength());
-		assertEquals(DiscriminatorColumn.DEFAULT_DISCRIMINATOR_TYPE, abstractEntity.getDiscriminatorColumn().getDefaultDiscriminatorType());
-		
-		assertEquals(InheritanceType.SINGLE_TABLE, childEntity.getDefaultInheritanceStrategy());
-		assertEquals("BAR", childEntity.getDiscriminatorColumn().getDefaultName());
-		assertEquals(6, childEntity.getDiscriminatorColumn().getDefaultLength());
-		assertEquals(DiscriminatorType.INTEGER, childEntity.getDiscriminatorColumn().getDefaultDiscriminatorType());
-
-	}
-}
\ No newline at end of file
diff --git a/jpa/tests/org.eclipse.jpt.core.tests/src/org/eclipse/jpt/core/tests/internal/context/orm/OrmEmbeddableTests.java b/jpa/tests/org.eclipse.jpt.core.tests/src/org/eclipse/jpt/core/tests/internal/context/orm/OrmEmbeddableTests.java
deleted file mode 100644
index 90edce1..0000000
--- a/jpa/tests/org.eclipse.jpt.core.tests/src/org/eclipse/jpt/core/tests/internal/context/orm/OrmEmbeddableTests.java
+++ /dev/null
@@ -1,295 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.core.tests.internal.context.orm;
-
-import java.util.ListIterator;
-import org.eclipse.jpt.core.JptCorePlugin;
-import org.eclipse.jpt.core.MappingKeys;
-import org.eclipse.jpt.core.context.AccessType;
-import org.eclipse.jpt.core.context.orm.OrmEmbeddable;
-import org.eclipse.jpt.core.context.orm.OrmEntity;
-import org.eclipse.jpt.core.context.orm.OrmMappedSuperclass;
-import org.eclipse.jpt.core.context.orm.OrmPersistentType;
-import org.eclipse.jpt.core.resource.orm.OrmFactory;
-import org.eclipse.jpt.core.resource.orm.XmlEmbeddable;
-import org.eclipse.jpt.core.resource.orm.XmlEntity;
-import org.eclipse.jpt.core.resource.orm.XmlMappedSuperclass;
-import org.eclipse.jpt.core.resource.persistence.PersistenceFactory;
-import org.eclipse.jpt.core.resource.persistence.XmlMappingFileRef;
-import org.eclipse.jpt.core.tests.internal.context.ContextModelTestCase;
-
-@SuppressWarnings("nls")
-public class OrmEmbeddableTests extends ContextModelTestCase
-{
-	public OrmEmbeddableTests(String name) {
-		super(name);
-	}
-	
-	
-	@Override
-	protected void setUp() throws Exception {
-		super.setUp();
-		XmlMappingFileRef mappingFileRef = PersistenceFactory.eINSTANCE.createXmlMappingFileRef();
-		mappingFileRef.setFileName(JptCorePlugin.DEFAULT_ORM_XML_FILE_PATH);
-		getXmlPersistenceUnit().getMappingFiles().add(mappingFileRef);
-		getPersistenceXmlResource().save(null);
-	}
-
-	public void testUpdateClass() throws Exception {
-		OrmPersistentType ormPersistentType = getEntityMappings().addPersistentType(MappingKeys.EMBEDDABLE_TYPE_MAPPING_KEY, "model.Foo");
-		OrmEmbeddable ormEmbeddable = (OrmEmbeddable) ormPersistentType.getMapping();
-		XmlEmbeddable embeddableResource = getXmlEntityMappings().getEmbeddables().get(0);
-		assertEquals("model.Foo", ormEmbeddable.getClass_());
-		assertEquals("model.Foo", embeddableResource.getClassName());
-		
-		//set class in the resource model, verify context model updated
-		embeddableResource.setClassName("com.Bar");
-		assertEquals("com.Bar", ormEmbeddable.getClass_());
-		assertEquals("com.Bar", embeddableResource.getClassName());
-	
-		//set class to null in the resource model
-		embeddableResource.setClassName(null);
-		assertNull(ormEmbeddable.getClass_());
-		assertNull(embeddableResource.getClassName());
-	}
-	
-	public void testModifyClass() throws Exception {
-		OrmPersistentType ormPersistentType = getEntityMappings().addPersistentType(MappingKeys.EMBEDDABLE_TYPE_MAPPING_KEY, "model.Foo");
-		OrmEmbeddable ormEmbeddable = (OrmEmbeddable) ormPersistentType.getMapping();
-		XmlEmbeddable embeddableResource = getXmlEntityMappings().getEmbeddables().get(0);
-		assertEquals("model.Foo", ormEmbeddable.getClass_());
-		assertEquals("model.Foo", embeddableResource.getClassName());
-		
-		//set class in the context model, verify resource model modified
-		ormEmbeddable.setClass("com.Bar");
-		assertEquals("com.Bar", ormEmbeddable.getClass_());
-		assertEquals("com.Bar", embeddableResource.getClassName());
-		
-		//set class to null in the context model
-		ormEmbeddable.setClass(null);
-		assertNull(ormEmbeddable.getClass_());
-		assertNull(embeddableResource.getClassName());
-	}
-	//TODO add tests for setting the className when the package is set on entity-mappings
-	
-	public void testUpdateSpecifiedAccess() throws Exception {
-		OrmPersistentType ormPersistentType = getEntityMappings().addPersistentType(MappingKeys.EMBEDDABLE_TYPE_MAPPING_KEY, "model.Foo");
-		XmlEmbeddable embeddableResource = getXmlEntityMappings().getEmbeddables().get(0);
-		assertNull(ormPersistentType.getSpecifiedAccess());
-		assertNull(embeddableResource.getAccess());
-		
-		//set access in the resource model, verify context model updated
-		embeddableResource.setAccess(org.eclipse.jpt.core.resource.orm.AccessType.FIELD);
-		assertEquals(AccessType.FIELD, ormPersistentType.getSpecifiedAccess());
-		assertEquals(org.eclipse.jpt.core.resource.orm.AccessType.FIELD, embeddableResource.getAccess());
-	
-		//set access to null in the resource model
-		embeddableResource.setAccess(null);
-		assertNull(ormPersistentType.getSpecifiedAccess());
-		assertNull(embeddableResource.getAccess());
-	}
-	
-	public void testModifySpecifiedAccess() throws Exception {
-		OrmPersistentType ormPersistentType = getEntityMappings().addPersistentType(MappingKeys.EMBEDDABLE_TYPE_MAPPING_KEY, "model.Foo");
-		XmlEmbeddable embeddableResource = getXmlEntityMappings().getEmbeddables().get(0);
-		assertNull(ormPersistentType.getSpecifiedAccess());
-		assertNull(embeddableResource.getAccess());
-		
-		//set access in the context model, verify resource model modified
-		ormPersistentType.setSpecifiedAccess(AccessType.PROPERTY);
-		assertEquals(AccessType.PROPERTY, ormPersistentType.getSpecifiedAccess());
-		assertEquals(org.eclipse.jpt.core.resource.orm.AccessType.PROPERTY, embeddableResource.getAccess());
-		
-		//set access to null in the context model
-		ormPersistentType.setSpecifiedAccess(null);
-		assertNull(ormPersistentType.getSpecifiedAccess());
-		assertNull(embeddableResource.getAccess());
-	}
-	//TODO test default access from
-		//underlying java
-		//persistence-unit-defaults
-		//entity-mappings
-		//with xml-mapping-metadata-complete set
-	
-	public void testUpdateSpecifiedMetadataComplete() throws Exception {
-		OrmPersistentType ormPersistentType = getEntityMappings().addPersistentType(MappingKeys.EMBEDDABLE_TYPE_MAPPING_KEY, "model.Foo");
-		OrmEmbeddable ormEmbeddable = (OrmEmbeddable) ormPersistentType.getMapping();
-		XmlEmbeddable embeddableResource = getXmlEntityMappings().getEmbeddables().get(0);
-		assertNull(embeddableResource.getMetadataComplete());
-		
-		//set metadata-complete in the resource model, verify context model updated
-		embeddableResource.setMetadataComplete(Boolean.TRUE);
-		assertEquals(Boolean.TRUE, ormEmbeddable.getSpecifiedMetadataComplete());
-		assertEquals(Boolean.TRUE, embeddableResource.getMetadataComplete());
-	
-		//set access to false in the resource model
-		embeddableResource.setMetadataComplete(Boolean.FALSE);
-		assertEquals(Boolean.FALSE, ormEmbeddable.getSpecifiedMetadataComplete());
-		assertEquals(Boolean.FALSE, embeddableResource.getMetadataComplete());
-		
-		embeddableResource.setMetadataComplete(null);
-		assertNull(ormEmbeddable.getSpecifiedMetadataComplete());
-		assertNull(embeddableResource.getMetadataComplete());
-	}
-	
-	public void testModifySpecifiedMetadataComplete() throws Exception {
-		OrmPersistentType ormPersistentType = getEntityMappings().addPersistentType(MappingKeys.EMBEDDABLE_TYPE_MAPPING_KEY, "model.Foo");
-		OrmEmbeddable ormEmbeddable = (OrmEmbeddable) ormPersistentType.getMapping();
-		XmlEmbeddable embeddableResource = getXmlEntityMappings().getEmbeddables().get(0);
-		assertNull(embeddableResource.getMetadataComplete());
-		
-		//set access in the context model, verify resource model modified
-		ormEmbeddable.setSpecifiedMetadataComplete(Boolean.TRUE);
-		assertEquals(Boolean.TRUE, ormEmbeddable.getSpecifiedMetadataComplete());
-		assertEquals(Boolean.TRUE, embeddableResource.getMetadataComplete());
-		
-		//set access to null in the context model
-		ormEmbeddable.setSpecifiedMetadataComplete(Boolean.FALSE);
-		assertEquals(Boolean.FALSE, ormEmbeddable.getSpecifiedMetadataComplete());
-		assertEquals(Boolean.FALSE, embeddableResource.getMetadataComplete());
-		
-		ormEmbeddable.setSpecifiedMetadataComplete(null);
-		assertNull(ormEmbeddable.getSpecifiedMetadataComplete());
-		assertNull(embeddableResource.getMetadataComplete());
-	}
-	
-	public void testUpdateDefaultMetadataComplete() throws Exception {
-		OrmPersistentType ormPersistentType = getEntityMappings().addPersistentType(MappingKeys.EMBEDDABLE_TYPE_MAPPING_KEY, "model.Foo");
-		OrmEmbeddable ormEmbeddable = (OrmEmbeddable) ormPersistentType.getMapping();
-		XmlEmbeddable embeddableResource = getXmlEntityMappings().getEmbeddables().get(0);
-		assertNull(ormEmbeddable.getSpecifiedMetadataComplete());
-		assertFalse(ormEmbeddable.isDefaultMetadataComplete());
-		assertNull(embeddableResource.getMetadataComplete());
-		
-		getXmlEntityMappings().setPersistenceUnitMetadata(OrmFactory.eINSTANCE.createXmlPersistenceUnitMetadata());
-		getXmlEntityMappings().getPersistenceUnitMetadata().setXmlMappingMetadataComplete(true);
-		assertTrue(ormEmbeddable.isDefaultMetadataComplete());
-		assertNull(ormEmbeddable.getSpecifiedMetadataComplete());
-		assertNull(embeddableResource.getMetadataComplete());
-		
-		getXmlEntityMappings().getPersistenceUnitMetadata().setXmlMappingMetadataComplete(false);
-		assertNull(ormEmbeddable.getSpecifiedMetadataComplete());
-		assertFalse(ormEmbeddable.isDefaultMetadataComplete());
-		assertNull(embeddableResource.getMetadataComplete());
-	}
-	
-	public void testUpdateMetadataComplete() throws Exception {
-		OrmPersistentType ormPersistentType = getEntityMappings().addPersistentType(MappingKeys.EMBEDDABLE_TYPE_MAPPING_KEY, "model.Foo");
-		OrmEmbeddable ormEmbeddable = (OrmEmbeddable) ormPersistentType.getMapping();
-		XmlEmbeddable embeddableResource = getXmlEntityMappings().getEmbeddables().get(0);
-		assertNull(ormEmbeddable.getSpecifiedMetadataComplete());
-		assertFalse(ormEmbeddable.isMetadataComplete());
-		assertNull(embeddableResource.getMetadataComplete());
-		
-		getXmlEntityMappings().setPersistenceUnitMetadata(OrmFactory.eINSTANCE.createXmlPersistenceUnitMetadata());
-		getXmlEntityMappings().getPersistenceUnitMetadata().setXmlMappingMetadataComplete(true);
-		assertTrue(ormEmbeddable.isMetadataComplete());
-		assertNull(ormEmbeddable.getSpecifiedMetadataComplete());
-		assertNull(embeddableResource.getMetadataComplete());
-		
-		getXmlEntityMappings().getPersistenceUnitMetadata().setXmlMappingMetadataComplete(false);
-		assertFalse(ormEmbeddable.isMetadataComplete());
-		assertNull(ormEmbeddable.getSpecifiedMetadataComplete());
-		assertNull(embeddableResource.getMetadataComplete());
-	}
-	
-	public void testMakeEmbeddableEntity() throws Exception {
-		OrmPersistentType embeddablePersistentType = getEntityMappings().addPersistentType(MappingKeys.EMBEDDABLE_TYPE_MAPPING_KEY, "model.Foo");
-		OrmEmbeddable embeddable = (OrmEmbeddable) embeddablePersistentType.getMapping();
-		embeddablePersistentType.setSpecifiedAccess(AccessType.PROPERTY);
-		embeddable.setSpecifiedMetadataComplete(Boolean.TRUE);
-	
-		embeddablePersistentType.setMappingKey(MappingKeys.ENTITY_TYPE_MAPPING_KEY);
-		
-		XmlEntity entity = getXmlEntityMappings().getEntities().get(0);
-		assertEquals("model.Foo", entity.getClassName());
-		assertEquals(Boolean.TRUE, entity.getMetadataComplete());
-		assertEquals(org.eclipse.jpt.core.resource.orm.AccessType.PROPERTY, entity.getAccess());
-		assertNull(entity.getDiscriminatorValue());
-		assertNull(entity.getName());
-		
-		OrmEntity ormEntity = (OrmEntity) embeddablePersistentType.getMapping();
-		assertEquals("model.Foo", ormEntity.getClass_());
-		assertEquals(Boolean.TRUE, ormEntity.getSpecifiedMetadataComplete());
-		assertEquals(AccessType.PROPERTY, embeddablePersistentType.getSpecifiedAccess());
-	}
-		
-	//test with 2 Embeddables, make the second one an Entity so it has to move to the front of the list
-	public void testMakeEmbeddableEntity2() throws Exception {
-		getEntityMappings().addPersistentType(MappingKeys.EMBEDDABLE_TYPE_MAPPING_KEY, "model.Foo2");
-		OrmPersistentType embeddablePersistentType = getEntityMappings().addPersistentType(MappingKeys.EMBEDDABLE_TYPE_MAPPING_KEY, "model.Foo");
-		OrmEmbeddable embeddable = (OrmEmbeddable) embeddablePersistentType.getMapping();
-		embeddablePersistentType.setSpecifiedAccess(AccessType.PROPERTY);
-		embeddable.setSpecifiedMetadataComplete(Boolean.TRUE);
-	
-		embeddablePersistentType.setMappingKey(MappingKeys.ENTITY_TYPE_MAPPING_KEY);
-		
-		XmlEntity entity = getXmlEntityMappings().getEntities().get(0);
-		assertEquals("model.Foo", entity.getClassName());
-		assertEquals(Boolean.TRUE, entity.getMetadataComplete());
-		assertEquals(org.eclipse.jpt.core.resource.orm.AccessType.PROPERTY, entity.getAccess());
-		assertNull(entity.getDiscriminatorValue());
-		assertNull(entity.getName());
-		
-		OrmEntity ormEntity = (OrmEntity) embeddablePersistentType.getMapping();
-		assertEquals("model.Foo", ormEntity.getClass_());
-		assertEquals(Boolean.TRUE, ormEntity.getSpecifiedMetadataComplete());
-		assertEquals(AccessType.PROPERTY, embeddablePersistentType.getSpecifiedAccess());
-		
-		ListIterator<OrmPersistentType> persistentTypes = getEntityMappings().persistentTypes();
-		assertEquals(MappingKeys.ENTITY_TYPE_MAPPING_KEY, persistentTypes.next().getMappingKey());
-		assertEquals(MappingKeys.EMBEDDABLE_TYPE_MAPPING_KEY, persistentTypes.next().getMappingKey());
-	}
-	
-	public void testMakeEmbeddableMappedSuperclass() throws Exception {
-		OrmPersistentType embeddablePersistentType = getEntityMappings().addPersistentType(MappingKeys.EMBEDDABLE_TYPE_MAPPING_KEY, "model.Foo");
-		OrmEmbeddable embeddable = (OrmEmbeddable) embeddablePersistentType.getMapping();
-		embeddablePersistentType.setSpecifiedAccess(AccessType.PROPERTY);
-		embeddable.setSpecifiedMetadataComplete(Boolean.TRUE);
-	
-		embeddablePersistentType.setMappingKey(MappingKeys.MAPPED_SUPERCLASS_TYPE_MAPPING_KEY);
-		
-		XmlMappedSuperclass  mappedSuperclass = getXmlEntityMappings().getMappedSuperclasses().get(0);
-		assertEquals("model.Foo", mappedSuperclass.getClassName());
-		assertEquals(Boolean.TRUE, mappedSuperclass.getMetadataComplete());
-		assertEquals(org.eclipse.jpt.core.resource.orm.AccessType.PROPERTY, mappedSuperclass.getAccess());
-	
-		OrmMappedSuperclass ormMappedSuperclass = (OrmMappedSuperclass) embeddablePersistentType.getMapping();
-		assertEquals("model.Foo", ormMappedSuperclass.getClass_());
-		assertEquals(Boolean.TRUE, ormMappedSuperclass.getSpecifiedMetadataComplete());
-		assertEquals(AccessType.PROPERTY, embeddablePersistentType.getSpecifiedAccess());
-	}
-	
-	//test with 2 Embeddables, make the second one a MappedSuperclass so it has to move to the front of the list
-	public void testMakeEmbeddableMappedSuperclass2() throws Exception {
-		getEntityMappings().addPersistentType(MappingKeys.EMBEDDABLE_TYPE_MAPPING_KEY, "model.Foo2");
-		OrmPersistentType embeddablePersistentType = getEntityMappings().addPersistentType(MappingKeys.EMBEDDABLE_TYPE_MAPPING_KEY, "model.Foo");
-		OrmEmbeddable embeddable = (OrmEmbeddable) embeddablePersistentType.getMapping();
-		embeddablePersistentType.setSpecifiedAccess(AccessType.PROPERTY);
-		embeddable.setSpecifiedMetadataComplete(Boolean.TRUE);
-	
-		embeddablePersistentType.setMappingKey(MappingKeys.MAPPED_SUPERCLASS_TYPE_MAPPING_KEY);
-		
-		XmlMappedSuperclass  mappedSuperclass = getXmlEntityMappings().getMappedSuperclasses().get(0);
-		assertEquals("model.Foo", mappedSuperclass.getClassName());
-		assertEquals(Boolean.TRUE, mappedSuperclass.getMetadataComplete());
-		assertEquals(org.eclipse.jpt.core.resource.orm.AccessType.PROPERTY, mappedSuperclass.getAccess());
-	
-		OrmMappedSuperclass ormMappedSuperclass = (OrmMappedSuperclass) embeddablePersistentType.getMapping();
-		assertEquals("model.Foo", ormMappedSuperclass.getClass_());
-		assertEquals(Boolean.TRUE, ormMappedSuperclass.getSpecifiedMetadataComplete());
-		assertEquals(AccessType.PROPERTY, embeddablePersistentType.getSpecifiedAccess());
-		
-		ListIterator<OrmPersistentType> persistentTypes = getEntityMappings().persistentTypes();
-		assertEquals(MappingKeys.MAPPED_SUPERCLASS_TYPE_MAPPING_KEY, persistentTypes.next().getMappingKey());
-		assertEquals(MappingKeys.EMBEDDABLE_TYPE_MAPPING_KEY, persistentTypes.next().getMappingKey());
-	}
-
-}
\ No newline at end of file
diff --git a/jpa/tests/org.eclipse.jpt.core.tests/src/org/eclipse/jpt/core/tests/internal/context/orm/OrmEmbeddedIdMappingTests.java b/jpa/tests/org.eclipse.jpt.core.tests/src/org/eclipse/jpt/core/tests/internal/context/orm/OrmEmbeddedIdMappingTests.java
deleted file mode 100644
index ab904af..0000000
--- a/jpa/tests/org.eclipse.jpt.core.tests/src/org/eclipse/jpt/core/tests/internal/context/orm/OrmEmbeddedIdMappingTests.java
+++ /dev/null
@@ -1,903 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.core.tests.internal.context.orm;
-
-import java.util.Iterator;
-import java.util.ListIterator;
-import org.eclipse.jdt.core.ICompilationUnit;
-import org.eclipse.jpt.core.JptCorePlugin;
-import org.eclipse.jpt.core.MappingKeys;
-import org.eclipse.jpt.core.context.AttributeOverride;
-import org.eclipse.jpt.core.context.BasicMapping;
-import org.eclipse.jpt.core.context.Column;
-import org.eclipse.jpt.core.context.EmbeddedIdMapping;
-import org.eclipse.jpt.core.context.EmbeddedMapping;
-import org.eclipse.jpt.core.context.IdMapping;
-import org.eclipse.jpt.core.context.ManyToManyMapping;
-import org.eclipse.jpt.core.context.ManyToOneMapping;
-import org.eclipse.jpt.core.context.OneToManyMapping;
-import org.eclipse.jpt.core.context.OneToOneMapping;
-import org.eclipse.jpt.core.context.TransientMapping;
-import org.eclipse.jpt.core.context.VersionMapping;
-import org.eclipse.jpt.core.context.java.JavaBasicMapping;
-import org.eclipse.jpt.core.context.java.JavaEmbeddedIdMapping;
-import org.eclipse.jpt.core.context.orm.OrmAttributeOverride;
-import org.eclipse.jpt.core.context.orm.OrmColumn;
-import org.eclipse.jpt.core.context.orm.OrmEmbeddedIdMapping;
-import org.eclipse.jpt.core.context.orm.OrmEmbeddedMapping;
-import org.eclipse.jpt.core.context.orm.OrmPersistentAttribute;
-import org.eclipse.jpt.core.context.orm.OrmPersistentType;
-import org.eclipse.jpt.core.resource.java.JPA;
-import org.eclipse.jpt.core.resource.orm.OrmFactory;
-import org.eclipse.jpt.core.resource.orm.XmlEmbeddedId;
-import org.eclipse.jpt.core.resource.persistence.PersistenceFactory;
-import org.eclipse.jpt.core.resource.persistence.XmlMappingFileRef;
-import org.eclipse.jpt.core.tests.internal.context.ContextModelTestCase;
-import org.eclipse.jpt.core.tests.internal.projects.TestJavaProject.SourceWriter;
-import org.eclipse.jpt.utility.internal.iterators.ArrayIterator;
-
-@SuppressWarnings("nls")
-public class OrmEmbeddedIdMappingTests extends ContextModelTestCase
-{
-	private static final String ATTRIBUTE_OVERRIDE_NAME = "city";
-	private static final String ATTRIBUTE_OVERRIDE_COLUMN_NAME = "E_CITY";
-
-	public OrmEmbeddedIdMappingTests(String name) {
-		super(name);
-	}
-	
-	@Override
-	protected void setUp() throws Exception {
-		super.setUp();
-		XmlMappingFileRef mappingFileRef = PersistenceFactory.eINSTANCE.createXmlMappingFileRef();
-		mappingFileRef.setFileName(JptCorePlugin.DEFAULT_ORM_XML_FILE_PATH);
-		getXmlPersistenceUnit().getMappingFiles().add(mappingFileRef);
-		getPersistenceXmlResource().save(null);
-	}
-	
-	private ICompilationUnit createTestEntityEmbeddedIdMapping() throws Exception {
-		return this.createTestType(new DefaultAnnotationWriter() {
-			@Override
-			public Iterator<String> imports() {
-				return new ArrayIterator<String>(JPA.ENTITY, JPA.EMBEDDED_ID, JPA.ATTRIBUTE_OVERRIDE, JPA.COLUMN);
-			}
-			@Override
-			public void appendTypeAnnotationTo(StringBuilder sb) {
-				sb.append("@Entity");
-			}
-			
-			@Override
-			public void appendIdFieldAnnotationTo(StringBuilder sb) {
-				sb.append(CR);
-				sb.append("    @EmbeddedId");
-				sb.append(CR);
-				sb.append("    @AttributeOverride(name=\"" + ATTRIBUTE_OVERRIDE_NAME + "\", column=@Column(name=\"" + ATTRIBUTE_OVERRIDE_COLUMN_NAME + "\"))");
-				sb.append(CR);
-				sb.append("    private Address address;").append(CR);
-				sb.append(CR);
-				sb.append("    @Id");				
-			}
-		});
-	}	
-	
-	private void createTestEmbeddableAddress() throws Exception {
-		SourceWriter sourceWriter = new SourceWriter() {
-			public void appendSourceTo(StringBuilder sb) {
-				sb.append(CR);
-					sb.append("import ");
-					sb.append(JPA.EMBEDDABLE);
-					sb.append(";");
-					sb.append(CR);
-					sb.append("import ");
-					sb.append(JPA.ID);
-					sb.append(";");
-					sb.append(CR);
-					sb.append("import ");
-					sb.append(JPA.COLUMN);
-					sb.append(";");
-					sb.append(CR);
-				sb.append(CR);
-				sb.append("@Embeddable");
-				sb.append(CR);
-				sb.append("public class ").append("Address").append(" ");
-				sb.append("{").append(CR);
-				sb.append(CR);
-				sb.append("    @Id").append(CR);
-				sb.append("    private int id;").append(CR);
-				sb.append(CR);
-				sb.append("    private String city;").append(CR);
-				sb.append(CR);
-				sb.append("    @Column(name=\"A_STATE\")").append(CR);
-				sb.append("    private String state;").append(CR);
-				sb.append(CR);
-				sb.append("    private int zip;").append(CR);
-				sb.append(CR);
-				sb.append("}").append(CR);
-			}
-		};
-		this.javaProject.createCompilationUnit(PACKAGE_NAME, "Address.java", sourceWriter);
-	}	
-
-//	public void testUpdateName() throws Exception {
-//		OrmPersistentType ormPersistentType = entityMappings().addOrmPersistentType(IMappingKeys.ENTITY_TYPE_MAPPING_KEY, "model.Foo");
-//		XmlPersistentAttribute ormPersistentAttribute = ormPersistentType.addSpecifiedPersistentAttribute(IMappingKeys.EMBEDDED_ID_ATTRIBUTE_MAPPING_KEY, "embeddedIdMapping");
-//		XmlEmbeddedIdMapping xmlEmbeddedIdMapping = (XmlEmbeddedIdMapping) ormPersistentAttribute.getMapping();
-//		EmbeddedId embeddedIdResource = ormResource().getEntityMappings().getEntities().get(0).getAttributes().getEmbeddedIds().get(0);
-//		
-//		assertEquals("embeddedIdMapping", xmlEmbeddedIdMapping.getName());
-//		assertEquals("embeddedIdMapping", embeddedIdResource.getName());
-//				
-//		//set name in the resource model, verify context model updated
-//		embeddedIdResource.setName("newName");
-//		assertEquals("newName", xmlEmbeddedIdMapping.getName());
-//		assertEquals("newName", embeddedIdResource.getName());
-//	
-//		//set name to null in the resource model
-//		embeddedIdResource.setName(null);
-//		assertNull(xmlEmbeddedIdMapping.getName());
-//		assertNull(embeddedIdResource.getName());
-//	}
-//	
-//	public void testModifyName() throws Exception {
-//		OrmPersistentType ormPersistentType = entityMappings().addOrmPersistentType(IMappingKeys.ENTITY_TYPE_MAPPING_KEY, "model.Foo");
-//		XmlPersistentAttribute ormPersistentAttribute = ormPersistentType.addSpecifiedPersistentAttribute(IMappingKeys.EMBEDDED_ID_ATTRIBUTE_MAPPING_KEY, "embeddedIdMapping");
-//		XmlEmbeddedIdMapping xmlEmbeddedIdMapping = (XmlEmbeddedIdMapping) ormPersistentAttribute.getMapping();
-//		EmbeddedId embeddedIdResource = ormResource().getEntityMappings().getEntities().get(0).getAttributes().getEmbeddedIds().get(0);
-//		
-//		assertEquals("embeddedIdMapping", xmlEmbeddedIdMapping.getName());
-//		assertEquals("embeddedIdMapping", embeddedIdResource.getName());
-//				
-//		//set name in the context model, verify resource model updated
-//		xmlEmbeddedIdMapping.setName("newName");
-//		assertEquals("newName", xmlEmbeddedIdMapping.getName());
-//		assertEquals("newName", embeddedIdResource.getName());
-//	
-//		//set name to null in the context model
-//		xmlEmbeddedIdMapping.setName(null);
-//		assertNull(xmlEmbeddedIdMapping.getName());
-//		assertNull(embeddedIdResource.getName());
-//	}
-//	
-//	public void testAddSpecifiedAttributeOverride() throws Exception {
-//		OrmPersistentType ormPersistentType = entityMappings().addOrmPersistentType(IMappingKeys.ENTITY_TYPE_MAPPING_KEY, "model.Foo");
-//		XmlPersistentAttribute ormPersistentAttribute = ormPersistentType.addSpecifiedPersistentAttribute(IMappingKeys.EMBEDDED_ID_ATTRIBUTE_MAPPING_KEY, "embeddedIdMapping");
-//		XmlEmbeddedIdMapping xmlEmbeddedIdMapping = (XmlEmbeddedIdMapping) ormPersistentAttribute.getMapping();
-//		EmbeddedId embeddedIdResource = ormResource().getEntityMappings().getEntities().get(0).getAttributes().getEmbeddedIds().get(0);
-//		
-//		XmlAttributeOverride attributeOverride = xmlEmbeddedIdMapping.addSpecifiedAttributeOverride(0);
-//		ormResource().save(null);
-//		attributeOverride.setName("FOO");
-//		ormResource().save(null);
-//				
-//		assertEquals("FOO", embeddedIdResource.getAttributeOverrides().get(0).getName());
-//		
-//		XmlAttributeOverride attributeOverride2 = xmlEmbeddedIdMapping.addSpecifiedAttributeOverride(0);
-//		ormResource().save(null);
-//		attributeOverride2.setName("BAR");
-//		ormResource().save(null);
-//		
-//		assertEquals("BAR", embeddedIdResource.getAttributeOverrides().get(0).getName());
-//		assertEquals("FOO", embeddedIdResource.getAttributeOverrides().get(1).getName());
-//		
-//		XmlAttributeOverride attributeOverride3 = xmlEmbeddedIdMapping.addSpecifiedAttributeOverride(1);
-//		ormResource().save(null);
-//		attributeOverride3.setName("BAZ");
-//		ormResource().save(null);
-//		
-//		assertEquals("BAR", embeddedIdResource.getAttributeOverrides().get(0).getName());
-//		assertEquals("BAZ", embeddedIdResource.getAttributeOverrides().get(1).getName());
-//		assertEquals("FOO", embeddedIdResource.getAttributeOverrides().get(2).getName());
-//		
-//		ListIterator<XmlAttributeOverride> attributeOverrides = xmlEmbeddedIdMapping.specifiedAttributeOverrides();
-//		assertEquals(attributeOverride2, attributeOverrides.next());
-//		assertEquals(attributeOverride3, attributeOverrides.next());
-//		assertEquals(attributeOverride, attributeOverrides.next());
-//		
-//		attributeOverrides = xmlEmbeddedIdMapping.specifiedAttributeOverrides();
-//		assertEquals("BAR", attributeOverrides.next().getName());
-//		assertEquals("BAZ", attributeOverrides.next().getName());
-//		assertEquals("FOO", attributeOverrides.next().getName());
-//	}
-//	
-//	public void testRemoveSpecifiedAttributeOverride() throws Exception {
-//		OrmPersistentType ormPersistentType = entityMappings().addOrmPersistentType(IMappingKeys.ENTITY_TYPE_MAPPING_KEY, "model.Foo");
-//		XmlPersistentAttribute ormPersistentAttribute = ormPersistentType.addSpecifiedPersistentAttribute(IMappingKeys.EMBEDDED_ID_ATTRIBUTE_MAPPING_KEY, "embeddedIdMapping");
-//		XmlEmbeddedIdMapping xmlEmbeddedIdMapping = (XmlEmbeddedIdMapping) ormPersistentAttribute.getMapping();
-//		EmbeddedId embeddedIdResource = ormResource().getEntityMappings().getEntities().get(0).getAttributes().getEmbeddedIds().get(0);
-//
-//		xmlEmbeddedIdMapping.addSpecifiedAttributeOverride(0).setName("FOO");
-//		xmlEmbeddedIdMapping.addSpecifiedAttributeOverride(1).setName("BAR");
-//		xmlEmbeddedIdMapping.addSpecifiedAttributeOverride(2).setName("BAZ");
-//		
-//		assertEquals(3, embeddedIdResource.getAttributeOverrides().size());
-//		
-//		xmlEmbeddedIdMapping.removeSpecifiedAttributeOverride(0);
-//		assertEquals(2, embeddedIdResource.getAttributeOverrides().size());
-//		assertEquals("BAR", embeddedIdResource.getAttributeOverrides().get(0).getName());
-//		assertEquals("BAZ", embeddedIdResource.getAttributeOverrides().get(1).getName());
-//
-//		xmlEmbeddedIdMapping.removeSpecifiedAttributeOverride(0);
-//		assertEquals(1, embeddedIdResource.getAttributeOverrides().size());
-//		assertEquals("BAZ", embeddedIdResource.getAttributeOverrides().get(0).getName());
-//		
-//		xmlEmbeddedIdMapping.removeSpecifiedAttributeOverride(0);
-//		assertEquals(0, embeddedIdResource.getAttributeOverrides().size());
-//	}
-//	
-//	public void testMoveSpecifiedAttributeOverride() throws Exception {
-//		OrmPersistentType ormPersistentType = entityMappings().addOrmPersistentType(IMappingKeys.ENTITY_TYPE_MAPPING_KEY, "model.Foo");
-//		XmlPersistentAttribute ormPersistentAttribute = ormPersistentType.addSpecifiedPersistentAttribute(IMappingKeys.EMBEDDED_ID_ATTRIBUTE_MAPPING_KEY, "embeddedIdMapping");
-//		XmlEmbeddedIdMapping xmlEmbeddedIdMapping = (XmlEmbeddedIdMapping) ormPersistentAttribute.getMapping();
-//		EmbeddedId embeddedIdResource = ormResource().getEntityMappings().getEntities().get(0).getAttributes().getEmbeddedIds().get(0);
-//
-//		xmlEmbeddedIdMapping.addSpecifiedAttributeOverride(0).setName("FOO");
-//		xmlEmbeddedIdMapping.addSpecifiedAttributeOverride(1).setName("BAR");
-//		xmlEmbeddedIdMapping.addSpecifiedAttributeOverride(2).setName("BAZ");
-//		
-//		assertEquals(3, embeddedIdResource.getAttributeOverrides().size());
-//		
-//		
-//		xmlEmbeddedIdMapping.moveSpecifiedAttributeOverride(2, 0);
-//		ListIterator<XmlAttributeOverride> attributeOverrides = xmlEmbeddedIdMapping.specifiedAttributeOverrides();
-//		assertEquals("BAR", attributeOverrides.next().getName());
-//		assertEquals("BAZ", attributeOverrides.next().getName());
-//		assertEquals("FOO", attributeOverrides.next().getName());
-//
-//		assertEquals("BAR", embeddedIdResource.getAttributeOverrides().get(0).getName());
-//		assertEquals("BAZ", embeddedIdResource.getAttributeOverrides().get(1).getName());
-//		assertEquals("FOO", embeddedIdResource.getAttributeOverrides().get(2).getName());
-//
-//
-//		xmlEmbeddedIdMapping.moveSpecifiedAttributeOverride(0, 1);
-//		attributeOverrides = xmlEmbeddedIdMapping.specifiedAttributeOverrides();
-//		assertEquals("BAZ", attributeOverrides.next().getName());
-//		assertEquals("BAR", attributeOverrides.next().getName());
-//		assertEquals("FOO", attributeOverrides.next().getName());
-//
-//		assertEquals("BAZ", embeddedIdResource.getAttributeOverrides().get(0).getName());
-//		assertEquals("BAR", embeddedIdResource.getAttributeOverrides().get(1).getName());
-//		assertEquals("FOO", embeddedIdResource.getAttributeOverrides().get(2).getName());
-//	}
-//	
-//	public void testUpdateAttributeOverrides() throws Exception {
-//		OrmPersistentType ormPersistentType = entityMappings().addOrmPersistentType(IMappingKeys.ENTITY_TYPE_MAPPING_KEY, "model.Foo");
-//		XmlPersistentAttribute ormPersistentAttribute = ormPersistentType.addSpecifiedPersistentAttribute(IMappingKeys.EMBEDDED_ID_ATTRIBUTE_MAPPING_KEY, "embeddedIdMapping");
-//		XmlEmbeddedIdMapping xmlEmbeddedIdMapping = (XmlEmbeddedIdMapping) ormPersistentAttribute.getMapping();
-//		EmbeddedId embeddedIdResource = ormResource().getEntityMappings().getEntities().get(0).getAttributes().getEmbeddedIds().get(0);
-//		
-//		embeddedIdResource.getAttributeOverrides().add(OrmFactory.eINSTANCE.createAttributeOverrideImpl());
-//		embeddedIdResource.getAttributeOverrides().add(OrmFactory.eINSTANCE.createAttributeOverrideImpl());
-//		embeddedIdResource.getAttributeOverrides().add(OrmFactory.eINSTANCE.createAttributeOverrideImpl());
-//		
-//		embeddedIdResource.getAttributeOverrides().get(0).setName("FOO");
-//		embeddedIdResource.getAttributeOverrides().get(1).setName("BAR");
-//		embeddedIdResource.getAttributeOverrides().get(2).setName("BAZ");
-//
-//		ListIterator<XmlAttributeOverride> attributeOverrides = xmlEmbeddedIdMapping.specifiedAttributeOverrides();
-//		assertEquals("FOO", attributeOverrides.next().getName());
-//		assertEquals("BAR", attributeOverrides.next().getName());
-//		assertEquals("BAZ", attributeOverrides.next().getName());
-//		assertFalse(attributeOverrides.hasNext());
-//		
-//		embeddedIdResource.getAttributeOverrides().move(2, 0);
-//		attributeOverrides = xmlEmbeddedIdMapping.specifiedAttributeOverrides();
-//		assertEquals("BAR", attributeOverrides.next().getName());
-//		assertEquals("BAZ", attributeOverrides.next().getName());
-//		assertEquals("FOO", attributeOverrides.next().getName());
-//		assertFalse(attributeOverrides.hasNext());
-//
-//		embeddedIdResource.getAttributeOverrides().move(0, 1);
-//		attributeOverrides = xmlEmbeddedIdMapping.specifiedAttributeOverrides();
-//		assertEquals("BAZ", attributeOverrides.next().getName());
-//		assertEquals("BAR", attributeOverrides.next().getName());
-//		assertEquals("FOO", attributeOverrides.next().getName());
-//		assertFalse(attributeOverrides.hasNext());
-//
-//		embeddedIdResource.getAttributeOverrides().remove(1);
-//		attributeOverrides = xmlEmbeddedIdMapping.specifiedAttributeOverrides();
-//		assertEquals("BAZ", attributeOverrides.next().getName());
-//		assertEquals("FOO", attributeOverrides.next().getName());
-//		assertFalse(attributeOverrides.hasNext());
-//
-//		embeddedIdResource.getAttributeOverrides().remove(1);
-//		attributeOverrides = xmlEmbeddedIdMapping.specifiedAttributeOverrides();
-//		assertEquals("BAZ", attributeOverrides.next().getName());
-//		assertFalse(attributeOverrides.hasNext());
-//		
-//		embeddedIdResource.getAttributeOverrides().remove(0);
-//		assertFalse(xmlEmbeddedIdMapping.specifiedAttributeOverrides().hasNext());
-//	}
-	
-	public void testEmbeddedIdMorphToIdMapping() throws Exception {
-		createTestEntityEmbeddedIdMapping();
-		OrmPersistentType ormPersistentType = getEntityMappings().addPersistentType(MappingKeys.ENTITY_TYPE_MAPPING_KEY, FULLY_QUALIFIED_TYPE_NAME);
-		OrmPersistentAttribute ormPersistentAttribute = ormPersistentType.addSpecifiedPersistentAttribute(MappingKeys.EMBEDDED_ID_ATTRIBUTE_MAPPING_KEY, "embeddedId");
-		
-		EmbeddedIdMapping embeddedIdMapping = (EmbeddedIdMapping) ormPersistentAttribute.getMapping();
-		assertFalse(embeddedIdMapping.isDefault());
-		XmlEmbeddedId embeddedIdResource = getXmlEntityMappings().getEntities().get(0).getAttributes().getEmbeddedIds().get(0);
-		embeddedIdResource.getAttributeOverrides().add(OrmFactory.eINSTANCE.createXmlAttributeOverrideImpl());
-		AttributeOverride attributeOverride = embeddedIdMapping.specifiedAttributeOverrides().next();
-		attributeOverride.setName("override");
-		attributeOverride.getColumn().setSpecifiedName("OVERRIDE_COLUMN");
-		assertFalse(embeddedIdMapping.isDefault());
-		
-		ormPersistentAttribute.setSpecifiedMappingKey(MappingKeys.ID_ATTRIBUTE_MAPPING_KEY);
-		assertEquals(1, ormPersistentType.specifiedAttributesSize());
-		assertEquals(ormPersistentAttribute, ormPersistentType.specifiedAttributes().next());
-		assertTrue(ormPersistentAttribute.getMapping() instanceof IdMapping);
-		assertEquals("embeddedId", ormPersistentAttribute.getMapping().getName());
-	}
-	
-	public void testEmbeddedIdMorphToVersionMapping() throws Exception {
-		createTestEntityEmbeddedIdMapping();
-		OrmPersistentType ormPersistentType = getEntityMappings().addPersistentType(MappingKeys.ENTITY_TYPE_MAPPING_KEY, FULLY_QUALIFIED_TYPE_NAME);
-		OrmPersistentAttribute ormPersistentAttribute = ormPersistentType.addSpecifiedPersistentAttribute(MappingKeys.EMBEDDED_ID_ATTRIBUTE_MAPPING_KEY, "embeddedId");
-		
-		EmbeddedIdMapping embeddedIdMapping = (EmbeddedIdMapping) ormPersistentAttribute.getMapping();
-		assertFalse(embeddedIdMapping.isDefault());
-		XmlEmbeddedId embeddedIdResource = getXmlEntityMappings().getEntities().get(0).getAttributes().getEmbeddedIds().get(0);
-		embeddedIdResource.getAttributeOverrides().add(OrmFactory.eINSTANCE.createXmlAttributeOverrideImpl());
-		AttributeOverride attributeOverride = embeddedIdMapping.specifiedAttributeOverrides().next();
-		attributeOverride.setName("override");
-		attributeOverride.getColumn().setSpecifiedName("OVERRIDE_COLUMN");
-		assertFalse(embeddedIdMapping.isDefault());
-		
-		ormPersistentAttribute.setSpecifiedMappingKey(MappingKeys.VERSION_ATTRIBUTE_MAPPING_KEY);
-		assertEquals(1, ormPersistentType.specifiedAttributesSize());
-		assertEquals(ormPersistentAttribute, ormPersistentType.specifiedAttributes().next());
-		assertTrue(ormPersistentAttribute.getMapping() instanceof VersionMapping);
-		assertEquals("embeddedId", ormPersistentAttribute.getMapping().getName());
-	}
-	
-	public void testEmbeddedIdMorphToTransientMapping() throws Exception {
-		createTestEntityEmbeddedIdMapping();
-		OrmPersistentType ormPersistentType = getEntityMappings().addPersistentType(MappingKeys.ENTITY_TYPE_MAPPING_KEY, FULLY_QUALIFIED_TYPE_NAME);
-		OrmPersistentAttribute ormPersistentAttribute = ormPersistentType.addSpecifiedPersistentAttribute(MappingKeys.EMBEDDED_ID_ATTRIBUTE_MAPPING_KEY, "embeddedId");
-		
-		EmbeddedIdMapping embeddedIdMapping = (EmbeddedIdMapping) ormPersistentAttribute.getMapping();
-		assertFalse(embeddedIdMapping.isDefault());
-		XmlEmbeddedId embeddedIdResource = getXmlEntityMappings().getEntities().get(0).getAttributes().getEmbeddedIds().get(0);
-		embeddedIdResource.getAttributeOverrides().add(OrmFactory.eINSTANCE.createXmlAttributeOverrideImpl());
-		AttributeOverride attributeOverride = embeddedIdMapping.specifiedAttributeOverrides().next();
-		attributeOverride.setName("override");
-		attributeOverride.getColumn().setSpecifiedName("OVERRIDE_COLUMN");
-		assertFalse(embeddedIdMapping.isDefault());
-		
-		ormPersistentAttribute.setSpecifiedMappingKey(MappingKeys.TRANSIENT_ATTRIBUTE_MAPPING_KEY);
-		assertEquals(1, ormPersistentType.specifiedAttributesSize());
-		assertEquals(ormPersistentAttribute, ormPersistentType.specifiedAttributes().next());
-		assertTrue(ormPersistentAttribute.getMapping() instanceof TransientMapping);
-		assertEquals("embeddedId", ormPersistentAttribute.getMapping().getName());
-	}
-	
-	public void testEmbeddedIdMorphToBasicMapping() throws Exception {
-		createTestEntityEmbeddedIdMapping();
-		OrmPersistentType ormPersistentType = getEntityMappings().addPersistentType(MappingKeys.ENTITY_TYPE_MAPPING_KEY, FULLY_QUALIFIED_TYPE_NAME);
-		OrmPersistentAttribute ormPersistentAttribute = ormPersistentType.addSpecifiedPersistentAttribute(MappingKeys.EMBEDDED_ID_ATTRIBUTE_MAPPING_KEY, "embeddedId");
-		
-		EmbeddedIdMapping embeddedIdMapping = (EmbeddedIdMapping) ormPersistentAttribute.getMapping();
-		assertFalse(embeddedIdMapping.isDefault());
-		XmlEmbeddedId embeddedIdResource = getXmlEntityMappings().getEntities().get(0).getAttributes().getEmbeddedIds().get(0);
-		embeddedIdResource.getAttributeOverrides().add(OrmFactory.eINSTANCE.createXmlAttributeOverrideImpl());
-		AttributeOverride attributeOverride = embeddedIdMapping.specifiedAttributeOverrides().next();
-		attributeOverride.setName("override");
-		attributeOverride.getColumn().setSpecifiedName("OVERRIDE_COLUMN");
-		assertFalse(embeddedIdMapping.isDefault());
-		
-		ormPersistentAttribute.setSpecifiedMappingKey(MappingKeys.BASIC_ATTRIBUTE_MAPPING_KEY);
-		assertEquals(1, ormPersistentType.specifiedAttributesSize());
-		assertEquals(ormPersistentAttribute, ormPersistentType.specifiedAttributes().next());
-		assertTrue(ormPersistentAttribute.getMapping() instanceof BasicMapping);
-		assertEquals("embeddedId", ormPersistentAttribute.getMapping().getName());
-	}
-	
-	public void testEmbeddedIdMorphToEmbeddedMapping() throws Exception {
-		createTestEntityEmbeddedIdMapping();
-		OrmPersistentType ormPersistentType = getEntityMappings().addPersistentType(MappingKeys.ENTITY_TYPE_MAPPING_KEY, FULLY_QUALIFIED_TYPE_NAME);
-		OrmPersistentAttribute ormPersistentAttribute = ormPersistentType.addSpecifiedPersistentAttribute(MappingKeys.EMBEDDED_ID_ATTRIBUTE_MAPPING_KEY, "embeddedId");
-		
-		EmbeddedIdMapping embeddedIdMapping = (EmbeddedIdMapping) ormPersistentAttribute.getMapping();
-		assertFalse(embeddedIdMapping.isDefault());
-		XmlEmbeddedId embeddedIdResource = getXmlEntityMappings().getEntities().get(0).getAttributes().getEmbeddedIds().get(0);
-		embeddedIdResource.getAttributeOverrides().add(OrmFactory.eINSTANCE.createXmlAttributeOverrideImpl());
-		AttributeOverride attributeOverride = embeddedIdMapping.specifiedAttributeOverrides().next();
-		attributeOverride.setName("override");
-		attributeOverride.getColumn().setSpecifiedName("OVERRIDE_COLUMN");
-		assertFalse(embeddedIdMapping.isDefault());
-		
-		ormPersistentAttribute.setSpecifiedMappingKey(MappingKeys.EMBEDDED_ATTRIBUTE_MAPPING_KEY);
-		assertEquals(1, ormPersistentType.specifiedAttributesSize());
-		assertEquals(ormPersistentAttribute, ormPersistentType.specifiedAttributes().next());
-		assertTrue(ormPersistentAttribute.getMapping() instanceof EmbeddedMapping);
-		assertEquals("embeddedId", ormPersistentAttribute.getMapping().getName());
-		attributeOverride = ((EmbeddedMapping) ormPersistentAttribute.getMapping()).specifiedAttributeOverrides().next();
-		assertEquals("override", attributeOverride.getName());
-		assertEquals("OVERRIDE_COLUMN", attributeOverride.getColumn().getSpecifiedName());
-	}
-	
-	public void testEmbeddedIdMorphToOneToOneMapping() throws Exception {
-		createTestEntityEmbeddedIdMapping();
-		OrmPersistentType ormPersistentType = getEntityMappings().addPersistentType(MappingKeys.ENTITY_TYPE_MAPPING_KEY, FULLY_QUALIFIED_TYPE_NAME);
-		OrmPersistentAttribute ormPersistentAttribute = ormPersistentType.addSpecifiedPersistentAttribute(MappingKeys.EMBEDDED_ID_ATTRIBUTE_MAPPING_KEY, "embeddedId");
-		
-		EmbeddedIdMapping embeddedIdMapping = (EmbeddedIdMapping) ormPersistentAttribute.getMapping();
-		assertFalse(embeddedIdMapping.isDefault());
-		XmlEmbeddedId embeddedIdResource = getXmlEntityMappings().getEntities().get(0).getAttributes().getEmbeddedIds().get(0);
-		embeddedIdResource.getAttributeOverrides().add(OrmFactory.eINSTANCE.createXmlAttributeOverrideImpl());
-		AttributeOverride attributeOverride = embeddedIdMapping.specifiedAttributeOverrides().next();
-		attributeOverride.setName("override");
-		attributeOverride.getColumn().setSpecifiedName("OVERRIDE_COLUMN");
-		assertFalse(embeddedIdMapping.isDefault());
-		
-		ormPersistentAttribute.setSpecifiedMappingKey(MappingKeys.ONE_TO_ONE_ATTRIBUTE_MAPPING_KEY);
-		assertEquals(1, ormPersistentType.specifiedAttributesSize());
-		assertEquals(ormPersistentAttribute, ormPersistentType.specifiedAttributes().next());
-		assertTrue(ormPersistentAttribute.getMapping() instanceof OneToOneMapping);
-		assertEquals("embeddedId", ormPersistentAttribute.getMapping().getName());
-	}
-	
-	public void testEmbeddedIdMorphToOneToManyMapping() throws Exception {
-		createTestEntityEmbeddedIdMapping();
-		OrmPersistentType ormPersistentType = getEntityMappings().addPersistentType(MappingKeys.ENTITY_TYPE_MAPPING_KEY, FULLY_QUALIFIED_TYPE_NAME);
-		OrmPersistentAttribute ormPersistentAttribute = ormPersistentType.addSpecifiedPersistentAttribute(MappingKeys.EMBEDDED_ID_ATTRIBUTE_MAPPING_KEY, "embeddedId");
-		
-		EmbeddedIdMapping embeddedIdMapping = (EmbeddedIdMapping) ormPersistentAttribute.getMapping();
-		assertFalse(embeddedIdMapping.isDefault());
-		XmlEmbeddedId embeddedIdResource = getXmlEntityMappings().getEntities().get(0).getAttributes().getEmbeddedIds().get(0);
-		embeddedIdResource.getAttributeOverrides().add(OrmFactory.eINSTANCE.createXmlAttributeOverrideImpl());
-		AttributeOverride attributeOverride = embeddedIdMapping.specifiedAttributeOverrides().next();
-		attributeOverride.setName("override");
-		attributeOverride.getColumn().setSpecifiedName("OVERRIDE_COLUMN");
-		assertFalse(embeddedIdMapping.isDefault());
-		
-		ormPersistentAttribute.setSpecifiedMappingKey(MappingKeys.ONE_TO_MANY_ATTRIBUTE_MAPPING_KEY);
-		assertEquals(1, ormPersistentType.specifiedAttributesSize());
-		assertEquals(ormPersistentAttribute, ormPersistentType.specifiedAttributes().next());
-		assertTrue(ormPersistentAttribute.getMapping() instanceof OneToManyMapping);
-		assertEquals("embeddedId", ormPersistentAttribute.getMapping().getName());
-	}
-	
-	public void testEmbeddedIdMorphToManyToOneMapping() throws Exception {
-		createTestEntityEmbeddedIdMapping();
-		OrmPersistentType ormPersistentType = getEntityMappings().addPersistentType(MappingKeys.ENTITY_TYPE_MAPPING_KEY, FULLY_QUALIFIED_TYPE_NAME);
-		OrmPersistentAttribute ormPersistentAttribute = ormPersistentType.addSpecifiedPersistentAttribute(MappingKeys.EMBEDDED_ID_ATTRIBUTE_MAPPING_KEY, "embeddedId");
-		
-		EmbeddedIdMapping embeddedIdMapping = (EmbeddedIdMapping) ormPersistentAttribute.getMapping();
-		assertFalse(embeddedIdMapping.isDefault());
-		XmlEmbeddedId embeddedIdResource = getXmlEntityMappings().getEntities().get(0).getAttributes().getEmbeddedIds().get(0);
-		embeddedIdResource.getAttributeOverrides().add(OrmFactory.eINSTANCE.createXmlAttributeOverrideImpl());
-		AttributeOverride attributeOverride = embeddedIdMapping.specifiedAttributeOverrides().next();
-		attributeOverride.setName("override");
-		attributeOverride.getColumn().setSpecifiedName("OVERRIDE_COLUMN");
-		assertFalse(embeddedIdMapping.isDefault());
-		
-		ormPersistentAttribute.setSpecifiedMappingKey(MappingKeys.MANY_TO_ONE_ATTRIBUTE_MAPPING_KEY);
-		assertTrue(ormPersistentAttribute.getMapping() instanceof ManyToOneMapping);
-		assertEquals("embeddedId", ormPersistentAttribute.getMapping().getName());
-	}
-	
-	public void testEmbeddedIdMorphToManyToManyMapping() throws Exception {
-		createTestEntityEmbeddedIdMapping();
-		OrmPersistentType ormPersistentType = getEntityMappings().addPersistentType(MappingKeys.ENTITY_TYPE_MAPPING_KEY, FULLY_QUALIFIED_TYPE_NAME);
-		OrmPersistentAttribute ormPersistentAttribute = ormPersistentType.addSpecifiedPersistentAttribute(MappingKeys.EMBEDDED_ID_ATTRIBUTE_MAPPING_KEY, "embeddedId");
-		
-		EmbeddedIdMapping embeddedIdMapping = (EmbeddedIdMapping) ormPersistentAttribute.getMapping();
-		assertFalse(embeddedIdMapping.isDefault());
-		XmlEmbeddedId embeddedIdResource = getXmlEntityMappings().getEntities().get(0).getAttributes().getEmbeddedIds().get(0);
-		embeddedIdResource.getAttributeOverrides().add(OrmFactory.eINSTANCE.createXmlAttributeOverrideImpl());
-		AttributeOverride attributeOverride = embeddedIdMapping.specifiedAttributeOverrides().next();
-		attributeOverride.setName("override");
-		attributeOverride.getColumn().setSpecifiedName("OVERRIDE_COLUMN");
-		assertFalse(embeddedIdMapping.isDefault());
-		
-		ormPersistentAttribute.setSpecifiedMappingKey(MappingKeys.MANY_TO_MANY_ATTRIBUTE_MAPPING_KEY);
-		assertEquals(1, ormPersistentType.specifiedAttributesSize());
-		assertEquals(ormPersistentAttribute, ormPersistentType.specifiedAttributes().next());
-		assertTrue(ormPersistentAttribute.getMapping() instanceof ManyToManyMapping);
-		assertEquals("embeddedId", ormPersistentAttribute.getMapping().getName());
-	}
-	
-	public void testUpdateName() throws Exception {
-		OrmPersistentType ormPersistentType = getEntityMappings().addPersistentType(MappingKeys.ENTITY_TYPE_MAPPING_KEY, "model.Foo");
-		OrmPersistentAttribute ormPersistentAttribute = ormPersistentType.addSpecifiedPersistentAttribute(MappingKeys.EMBEDDED_ID_ATTRIBUTE_MAPPING_KEY, "embeddedMapping");
-		OrmEmbeddedIdMapping ormEmbeddedMapping = (OrmEmbeddedIdMapping) ormPersistentAttribute.getMapping();
-		XmlEmbeddedId embeddedResource = getXmlEntityMappings().getEntities().get(0).getAttributes().getEmbeddedIds().get(0);
-		
-		assertEquals("embeddedMapping", ormEmbeddedMapping.getName());
-		assertEquals("embeddedMapping", embeddedResource.getName());
-				
-		//set name in the resource model, verify context model updated
-		embeddedResource.setName("newName");
-		assertEquals("newName", ormEmbeddedMapping.getName());
-		assertEquals("newName", embeddedResource.getName());
-	
-		//set name to null in the resource model
-		embeddedResource.setName(null);
-		assertNull(ormEmbeddedMapping.getName());
-		assertNull(embeddedResource.getName());
-	}
-	
-	public void testModifyName() throws Exception {
-		OrmPersistentType ormPersistentType = getEntityMappings().addPersistentType(MappingKeys.ENTITY_TYPE_MAPPING_KEY, "model.Foo");
-		OrmPersistentAttribute ormPersistentAttribute = ormPersistentType.addSpecifiedPersistentAttribute(MappingKeys.EMBEDDED_ID_ATTRIBUTE_MAPPING_KEY, "embeddedMapping");
-		OrmEmbeddedIdMapping ormEmbeddedMapping = (OrmEmbeddedIdMapping) ormPersistentAttribute.getMapping();
-		XmlEmbeddedId embeddedResource = getXmlEntityMappings().getEntities().get(0).getAttributes().getEmbeddedIds().get(0);
-		
-		assertEquals("embeddedMapping", ormEmbeddedMapping.getName());
-		assertEquals("embeddedMapping", embeddedResource.getName());
-				
-		//set name in the context model, verify resource model updated
-		ormEmbeddedMapping.setName("newName");
-		assertEquals("newName", ormEmbeddedMapping.getName());
-		assertEquals("newName", embeddedResource.getName());
-	
-		//set name to null in the context model
-		ormEmbeddedMapping.setName(null);
-		assertNull(ormEmbeddedMapping.getName());
-		assertNull(embeddedResource.getName());
-	}
-	
-	public void testMoveSpecifiedAttributeOverride() throws Exception {
-		OrmPersistentType ormPersistentType = getEntityMappings().addPersistentType(MappingKeys.ENTITY_TYPE_MAPPING_KEY, "model.Foo");
-		OrmPersistentAttribute ormPersistentAttribute = ormPersistentType.addSpecifiedPersistentAttribute(MappingKeys.EMBEDDED_ID_ATTRIBUTE_MAPPING_KEY, "embeddedMapping");
-		OrmEmbeddedIdMapping ormEmbeddedIdMapping = (OrmEmbeddedIdMapping) ormPersistentAttribute.getMapping();
-		XmlEmbeddedId embeddedIdResource = getXmlEntityMappings().getEntities().get(0).getAttributes().getEmbeddedIds().get(0);
-
-		embeddedIdResource.getAttributeOverrides().add(OrmFactory.eINSTANCE.createXmlAttributeOverrideImpl());
-		embeddedIdResource.getAttributeOverrides().add(OrmFactory.eINSTANCE.createXmlAttributeOverrideImpl());
-		embeddedIdResource.getAttributeOverrides().add(OrmFactory.eINSTANCE.createXmlAttributeOverrideImpl());
-		
-		embeddedIdResource.getAttributeOverrides().get(0).setName("FOO");
-		embeddedIdResource.getAttributeOverrides().get(1).setName("BAR");
-		embeddedIdResource.getAttributeOverrides().get(2).setName("BAZ");
-		
-		assertEquals(3, embeddedIdResource.getAttributeOverrides().size());		
-		
-		ormEmbeddedIdMapping.moveSpecifiedAttributeOverride(2, 0);
-		ListIterator<OrmAttributeOverride> attributeOverrides = ormEmbeddedIdMapping.specifiedAttributeOverrides();
-		assertEquals("BAR", attributeOverrides.next().getName());
-		assertEquals("BAZ", attributeOverrides.next().getName());
-		assertEquals("FOO", attributeOverrides.next().getName());
-
-		assertEquals("BAR", embeddedIdResource.getAttributeOverrides().get(0).getName());
-		assertEquals("BAZ", embeddedIdResource.getAttributeOverrides().get(1).getName());
-		assertEquals("FOO", embeddedIdResource.getAttributeOverrides().get(2).getName());
-
-
-		ormEmbeddedIdMapping.moveSpecifiedAttributeOverride(0, 1);
-		attributeOverrides = ormEmbeddedIdMapping.specifiedAttributeOverrides();
-		assertEquals("BAZ", attributeOverrides.next().getName());
-		assertEquals("BAR", attributeOverrides.next().getName());
-		assertEquals("FOO", attributeOverrides.next().getName());
-
-		assertEquals("BAZ", embeddedIdResource.getAttributeOverrides().get(0).getName());
-		assertEquals("BAR", embeddedIdResource.getAttributeOverrides().get(1).getName());
-		assertEquals("FOO", embeddedIdResource.getAttributeOverrides().get(2).getName());
-	}
-	
-	public void testUpdateAttributeOverrides() throws Exception {
-		OrmPersistentType ormPersistentType = getEntityMappings().addPersistentType(MappingKeys.ENTITY_TYPE_MAPPING_KEY, "model.Foo");
-		OrmPersistentAttribute ormPersistentAttribute = ormPersistentType.addSpecifiedPersistentAttribute(MappingKeys.EMBEDDED_ID_ATTRIBUTE_MAPPING_KEY, "embeddedMapping");
-		OrmEmbeddedIdMapping ormEmbeddedIdMapping = (OrmEmbeddedIdMapping) ormPersistentAttribute.getMapping();
-		XmlEmbeddedId embeddedIdResource = getXmlEntityMappings().getEntities().get(0).getAttributes().getEmbeddedIds().get(0);
-		
-		embeddedIdResource.getAttributeOverrides().add(OrmFactory.eINSTANCE.createXmlAttributeOverrideImpl());
-		embeddedIdResource.getAttributeOverrides().add(OrmFactory.eINSTANCE.createXmlAttributeOverrideImpl());
-		embeddedIdResource.getAttributeOverrides().add(OrmFactory.eINSTANCE.createXmlAttributeOverrideImpl());
-		
-		embeddedIdResource.getAttributeOverrides().get(0).setName("FOO");
-		embeddedIdResource.getAttributeOverrides().get(1).setName("BAR");
-		embeddedIdResource.getAttributeOverrides().get(2).setName("BAZ");
-
-		ListIterator<OrmAttributeOverride> attributeOverrides = ormEmbeddedIdMapping.specifiedAttributeOverrides();
-		assertEquals("FOO", attributeOverrides.next().getName());
-		assertEquals("BAR", attributeOverrides.next().getName());
-		assertEquals("BAZ", attributeOverrides.next().getName());
-		assertFalse(attributeOverrides.hasNext());
-		
-		embeddedIdResource.getAttributeOverrides().move(2, 0);
-		attributeOverrides = ormEmbeddedIdMapping.specifiedAttributeOverrides();
-		assertEquals("BAR", attributeOverrides.next().getName());
-		assertEquals("BAZ", attributeOverrides.next().getName());
-		assertEquals("FOO", attributeOverrides.next().getName());
-		assertFalse(attributeOverrides.hasNext());
-
-		embeddedIdResource.getAttributeOverrides().move(0, 1);
-		attributeOverrides = ormEmbeddedIdMapping.specifiedAttributeOverrides();
-		assertEquals("BAZ", attributeOverrides.next().getName());
-		assertEquals("BAR", attributeOverrides.next().getName());
-		assertEquals("FOO", attributeOverrides.next().getName());
-		assertFalse(attributeOverrides.hasNext());
-
-		embeddedIdResource.getAttributeOverrides().remove(1);
-		attributeOverrides = ormEmbeddedIdMapping.specifiedAttributeOverrides();
-		assertEquals("BAZ", attributeOverrides.next().getName());
-		assertEquals("FOO", attributeOverrides.next().getName());
-		assertFalse(attributeOverrides.hasNext());
-
-		embeddedIdResource.getAttributeOverrides().remove(1);
-		attributeOverrides = ormEmbeddedIdMapping.specifiedAttributeOverrides();
-		assertEquals("BAZ", attributeOverrides.next().getName());
-		assertFalse(attributeOverrides.hasNext());
-		
-		embeddedIdResource.getAttributeOverrides().remove(0);
-		assertFalse(ormEmbeddedIdMapping.specifiedAttributeOverrides().hasNext());
-	}
-	
-	
-	public void testEmbeddedMappingNoUnderylingJavaAttribute() throws Exception {
-		createTestEntityEmbeddedIdMapping();
-		createTestEmbeddableAddress();
-
-		OrmPersistentType ormPersistentType = getEntityMappings().addPersistentType(MappingKeys.ENTITY_TYPE_MAPPING_KEY, FULLY_QUALIFIED_TYPE_NAME);
-		getEntityMappings().addPersistentType(MappingKeys.EMBEDDABLE_TYPE_MAPPING_KEY, PACKAGE_NAME + ".Address");
-		ormPersistentType.addSpecifiedPersistentAttribute(MappingKeys.EMBEDDED_ID_ATTRIBUTE_MAPPING_KEY, "foo");
-		assertEquals(3, ormPersistentType.virtualAttributesSize());
-		
-		OrmPersistentAttribute ormPersistentAttribute = ormPersistentType.specifiedAttributes().next();
-		OrmEmbeddedIdMapping ormEmbeddedIdMapping = (OrmEmbeddedIdMapping) ormPersistentAttribute.getMapping();
-		
-		assertEquals("foo", ormEmbeddedIdMapping.getName());
-
-		
-		assertFalse(ormEmbeddedIdMapping.specifiedAttributeOverrides().hasNext());
-		assertFalse(ormEmbeddedIdMapping.virtualAttributeOverrides().hasNext());
-	}
-	
-	public void testVirtualAttributeOverrides() throws Exception {
-		createTestEntityEmbeddedIdMapping();
-		createTestEmbeddableAddress();
-		OrmPersistentType persistentType = getEntityMappings().addPersistentType(MappingKeys.ENTITY_TYPE_MAPPING_KEY, FULLY_QUALIFIED_TYPE_NAME);
-		OrmPersistentType persistentType2 = getEntityMappings().addPersistentType(MappingKeys.EMBEDDABLE_TYPE_MAPPING_KEY, PACKAGE_NAME + ".Address");
-		
-		//embedded mapping is virtual, specified attribute overrides should exist
-		OrmPersistentAttribute ormPersistentAttribute = persistentType.getAttributeNamed("address");
-		OrmEmbeddedIdMapping embeddedIdMapping = (OrmEmbeddedIdMapping) ormPersistentAttribute.getMapping();
-		assertEquals(4, embeddedIdMapping.attributeOverridesSize());
-		assertEquals(0, embeddedIdMapping.virtualAttributeOverridesSize());
-		assertEquals(4, embeddedIdMapping.specifiedAttributeOverridesSize());
-		ListIterator<OrmAttributeOverride> specifiedAttributeOverrides = embeddedIdMapping.specifiedAttributeOverrides();
-		OrmAttributeOverride attributeOverride = specifiedAttributeOverrides.next();
-		assertEquals("city", attributeOverride.getName());
-		attributeOverride = specifiedAttributeOverrides.next();
-		assertEquals("id", attributeOverride.getName());
-		attributeOverride = specifiedAttributeOverrides.next();
-		assertEquals("state", attributeOverride.getName());
-		attributeOverride = specifiedAttributeOverrides.next();
-		assertEquals("zip", attributeOverride.getName());
-		
-		JavaEmbeddedIdMapping javaEmbeddedIdMapping = (JavaEmbeddedIdMapping) ormPersistentAttribute.getJavaPersistentAttribute().getMapping();
-		Column javaAttributeOverrideColumn = javaEmbeddedIdMapping.specifiedAttributeOverrides().next().getColumn();
-		
-		javaAttributeOverrideColumn.setSpecifiedName("FOO_COLUMN");
-		javaAttributeOverrideColumn.setSpecifiedTable("FOO_TABLE");
-		javaAttributeOverrideColumn.setColumnDefinition("COLUMN_DEF");
-		javaAttributeOverrideColumn.setSpecifiedInsertable(Boolean.FALSE);
-		javaAttributeOverrideColumn.setSpecifiedUpdatable(Boolean.FALSE);
-		javaAttributeOverrideColumn.setSpecifiedUnique(Boolean.TRUE);
-		javaAttributeOverrideColumn.setSpecifiedNullable(Boolean.FALSE);
-		javaAttributeOverrideColumn.setSpecifiedLength(Integer.valueOf(5));
-		javaAttributeOverrideColumn.setSpecifiedPrecision(Integer.valueOf(6));
-		javaAttributeOverrideColumn.setSpecifiedScale(Integer.valueOf(7));
-
-		JavaBasicMapping javaBasicMapping = (JavaBasicMapping) persistentType2.getJavaPersistentType().getAttributeNamed("state").getMapping();
-		javaBasicMapping.getColumn().setSpecifiedName("MY_STATE_COLUMN");
-		assertEquals(4, embeddedIdMapping.attributeOverridesSize());
-		assertEquals(0, embeddedIdMapping.virtualAttributeOverridesSize());
-		assertEquals(4, embeddedIdMapping.specifiedAttributeOverridesSize());
-		specifiedAttributeOverrides = embeddedIdMapping.specifiedAttributeOverrides();
-		attributeOverride = specifiedAttributeOverrides.next();
-		assertEquals("city", attributeOverride.getName());
-		assertEquals("FOO_COLUMN", attributeOverride.getColumn().getSpecifiedName());
-		assertEquals("FOO_TABLE", attributeOverride.getColumn().getSpecifiedTable());
-		assertEquals("COLUMN_DEF", attributeOverride.getColumn().getColumnDefinition());
-		assertEquals(false, attributeOverride.getColumn().isInsertable());
-		assertEquals(false, attributeOverride.getColumn().isUpdatable());
-		assertEquals(true, attributeOverride.getColumn().isUnique());
-		assertEquals(false, attributeOverride.getColumn().isNullable());
-		assertEquals(5, attributeOverride.getColumn().getLength());
-		assertEquals(6, attributeOverride.getColumn().getPrecision());
-		assertEquals(7, attributeOverride.getColumn().getScale());
-		
-		attributeOverride = specifiedAttributeOverrides.next();
-		assertEquals("id", attributeOverride.getName());
-		attributeOverride = specifiedAttributeOverrides.next();
-		assertEquals("state", attributeOverride.getName());
-		assertEquals("MY_STATE_COLUMN", attributeOverride.getColumn().getSpecifiedName());
-		attributeOverride = specifiedAttributeOverrides.next();
-		assertEquals("zip", attributeOverride.getName());
-		
-		
-		
-		//embedded mapping is specified, virtual attribute overrides should exist
-		persistentType.getAttributeNamed("address").makeSpecified();
-		getOrmXmlResource().save(null);
-		embeddedIdMapping = (OrmEmbeddedIdMapping) persistentType.getAttributeNamed("address").getMapping();
-		assertEquals(4, embeddedIdMapping.attributeOverridesSize());
-		assertEquals(4, embeddedIdMapping.virtualAttributeOverridesSize());
-		assertEquals(0, embeddedIdMapping.specifiedAttributeOverridesSize());
-		ListIterator<OrmAttributeOverride> virtualAttributeOverrides = embeddedIdMapping.virtualAttributeOverrides();
-		attributeOverride = virtualAttributeOverrides.next();
-		assertEquals("id", attributeOverride.getName());
-		attributeOverride = virtualAttributeOverrides.next();
-		assertEquals("city", attributeOverride.getName());
-		assertEquals("city", attributeOverride.getColumn().getDefaultName());
-		assertEquals(TYPE_NAME, attributeOverride.getColumn().getDefaultTable());
-		assertEquals(null, attributeOverride.getColumn().getColumnDefinition());
-		assertEquals(true, attributeOverride.getColumn().isInsertable());
-		assertEquals(true, attributeOverride.getColumn().isUpdatable());
-		assertEquals(false, attributeOverride.getColumn().isUnique());
-		assertEquals(true, attributeOverride.getColumn().isNullable());
-		assertEquals(255, attributeOverride.getColumn().getLength());
-		assertEquals(0, attributeOverride.getColumn().getPrecision());
-		assertEquals(0, attributeOverride.getColumn().getScale());
-		attributeOverride = virtualAttributeOverrides.next();
-		assertEquals("state", attributeOverride.getName());
-		assertEquals("MY_STATE_COLUMN", attributeOverride.getColumn().getDefaultName());
-		assertEquals(TYPE_NAME, attributeOverride.getColumn().getDefaultTable());
-		attributeOverride = virtualAttributeOverrides.next();
-		assertEquals("zip", attributeOverride.getName());
-		
-		//set one of the virtual attribute overrides to specified, verify others are still virtual
-		embeddedIdMapping.virtualAttributeOverrides().next().setVirtual(false);
-		
-		assertEquals(4, embeddedIdMapping.attributeOverridesSize());
-		assertEquals(1, embeddedIdMapping.specifiedAttributeOverridesSize());
-		assertEquals(3, embeddedIdMapping.virtualAttributeOverridesSize());
-		assertEquals("id", embeddedIdMapping.specifiedAttributeOverrides().next().getName());
-		virtualAttributeOverrides = embeddedIdMapping.virtualAttributeOverrides();
-		attributeOverride = virtualAttributeOverrides.next();
-		assertEquals("city", attributeOverride.getName());
-		attributeOverride = virtualAttributeOverrides.next();
-		assertEquals("state", attributeOverride.getName());
-		attributeOverride = virtualAttributeOverrides.next();
-		assertEquals("zip", attributeOverride.getName());
-	}
-	
-	public void testVirtualMappingMetadataCompleteFalse() throws Exception {
-		createTestEntityEmbeddedIdMapping();
-		createTestEmbeddableAddress();
-
-		OrmPersistentType ormPersistentType = getEntityMappings().addPersistentType(MappingKeys.ENTITY_TYPE_MAPPING_KEY, FULLY_QUALIFIED_TYPE_NAME);
-		getEntityMappings().addPersistentType(MappingKeys.EMBEDDABLE_TYPE_MAPPING_KEY, PACKAGE_NAME + ".Address");
-		assertEquals(3, ormPersistentType.virtualAttributesSize());		
-		OrmPersistentAttribute ormPersistentAttribute = ormPersistentType.virtualAttributes().next();
-		
-		OrmEmbeddedIdMapping ormEmbeddedIdMapping = (OrmEmbeddedIdMapping) ormPersistentAttribute.getMapping();	
-		assertEquals("address", ormEmbeddedIdMapping.getName());
-
-		assertEquals(4, ormEmbeddedIdMapping.specifiedAttributeOverridesSize());
-		assertEquals(0, ormEmbeddedIdMapping.virtualAttributeOverridesSize());
-		ListIterator<OrmAttributeOverride> ormAttributeOverrides = ormEmbeddedIdMapping.specifiedAttributeOverrides();
-
-		OrmAttributeOverride ormAttributeOverride = ormAttributeOverrides.next();
-		assertEquals(ATTRIBUTE_OVERRIDE_NAME, ormAttributeOverride.getName());
-		OrmColumn ormColumn = ormAttributeOverride.getColumn();
-		assertEquals(ATTRIBUTE_OVERRIDE_COLUMN_NAME, ormColumn.getSpecifiedName());
-
-	
-		ormAttributeOverride = ormAttributeOverrides.next();
-		assertEquals("id", ormAttributeOverride.getName());
-		ormColumn = ormAttributeOverride.getColumn();
-		assertEquals("id", ormColumn.getSpecifiedName());
-
-		ormAttributeOverride = ormAttributeOverrides.next();
-		assertEquals("state", ormAttributeOverride.getName());
-		ormColumn = ormAttributeOverride.getColumn();
-		assertEquals("A_STATE", ormColumn.getSpecifiedName());
-
-		ormAttributeOverride = ormAttributeOverrides.next();
-		assertEquals("zip", ormAttributeOverride.getName());
-		ormColumn = ormAttributeOverride.getColumn();
-		assertEquals("zip", ormColumn.getSpecifiedName());
-
-	}
-	
-	public void testVirtualMappingMetadataCompleteTrue() throws Exception {
-		createTestEntityEmbeddedIdMapping();
-		createTestEmbeddableAddress();
-
-		OrmPersistentType ormPersistentType = getEntityMappings().addPersistentType(MappingKeys.ENTITY_TYPE_MAPPING_KEY, FULLY_QUALIFIED_TYPE_NAME);
-		getEntityMappings().addPersistentType(MappingKeys.EMBEDDABLE_TYPE_MAPPING_KEY, PACKAGE_NAME + ".Address");
-		ormPersistentType.getMapping().setSpecifiedMetadataComplete(Boolean.TRUE);
-		assertEquals(3, ormPersistentType.virtualAttributesSize());		
-		OrmPersistentAttribute ormPersistentAttribute = ormPersistentType.virtualAttributes().next();
-		
-		//will be an OrmEmbeddedMapping instead of OrmEmbeddedIdMapping since that is the default
-		OrmEmbeddedMapping ormEmbeddedMapping = (OrmEmbeddedMapping) ormPersistentAttribute.getMapping();	
-		assertEquals("address", ormEmbeddedMapping.getName());
-
-		//TODO
-//		assertEquals(4, ormEmbeddedIdMapping.specifiedAttributeOverridesSize());
-//		assertEquals(0, CollectionTools.size(ormEmbeddedIdMapping.defaultAttributeOverrides()));
-//		ListIterator<XmlAttributeOverride> ormAttributeOverrides = ormEmbeddedIdMapping.specifiedAttributeOverrides();
-//
-//		XmlAttributeOverride ormAttributeOverride = ormAttributeOverrides.next();
-//		assertEquals(ATTRIBUTE_OVERRIDE_NAME, ormAttributeOverride.getName());
-//		XmlColumn xmlColumn = ormAttributeOverride.getColumn();
-//		assertEquals("city", xmlColumn.getSpecifiedName());
-////		assertEquals(Boolean.TRUE, xmlColumn.getSpecifiedUnique());
-////		assertEquals(Boolean.FALSE, xmlColumn.getSpecifiedNullable());
-////		assertEquals(Boolean.FALSE, xmlColumn.getSpecifiedInsertable());
-////		assertEquals(Boolean.FALSE, xmlColumn.getSpecifiedUpdatable());
-////		assertEquals("COLUMN_DEFINITION", xmlColumn.getColumnDefinition());
-////		assertEquals("MY_TABLE", xmlColumn.getSpecifiedTable());
-////		assertEquals(Integer.valueOf(5), xmlColumn.getSpecifiedLength());
-////		assertEquals(Integer.valueOf(6), xmlColumn.getSpecifiedPrecision());
-////		assertEquals(Integer.valueOf(7), xmlColumn.getSpecifiedScale());
-//		
-//		ormAttributeOverride = ormAttributeOverrides.next();
-//		assertEquals("id", ormAttributeOverride.getName());
-//		xmlColumn = ormAttributeOverride.getColumn();
-//		assertEquals("id", xmlColumn.getSpecifiedName());
-//
-//		ormAttributeOverride = ormAttributeOverrides.next();
-//		assertEquals("state", ormAttributeOverride.getName());
-//		xmlColumn = ormAttributeOverride.getColumn();
-//		assertEquals("state", xmlColumn.getSpecifiedName());
-//
-//		ormAttributeOverride = ormAttributeOverrides.next();
-//		assertEquals("zip", ormAttributeOverride.getName());
-//		xmlColumn = ormAttributeOverride.getColumn();
-//		assertEquals("zip", xmlColumn.getSpecifiedName());
-	}
-	
-	public void testSpecifiedMapping() throws Exception {
-		createTestEntityEmbeddedIdMapping();
-		createTestEmbeddableAddress();
-
-		OrmPersistentType ormPersistentType = getEntityMappings().addPersistentType(MappingKeys.ENTITY_TYPE_MAPPING_KEY, FULLY_QUALIFIED_TYPE_NAME);
-		getEntityMappings().addPersistentType(MappingKeys.EMBEDDABLE_TYPE_MAPPING_KEY, PACKAGE_NAME + ".Address");
-
-		ormPersistentType.addSpecifiedPersistentAttribute(MappingKeys.EMBEDDED_ID_ATTRIBUTE_MAPPING_KEY, "address");
-		assertEquals(2, ormPersistentType.virtualAttributesSize());
-		
-		OrmPersistentAttribute ormPersistentAttribute = ormPersistentType.specifiedAttributes().next();
-		OrmEmbeddedIdMapping ormEmbeddedIdMapping = (OrmEmbeddedIdMapping) ormPersistentAttribute.getMapping();
-		
-		assertEquals("address", ormEmbeddedIdMapping.getName());
-
-		assertEquals(0, ormEmbeddedIdMapping.specifiedAttributeOverridesSize());
-		//TODO
-//		assertEquals(4, CollectionTools.size(ormEmbeddedIdMapping.defaultAttributeOverrides()));
-//		ListIterator<XmlAttributeOverride> ormAttributeOverrides = ormEmbeddedIdMapping.defaultAttributeOverrides();
-//
-//		XmlAttributeOverride ormAttributeOverride = ormAttributeOverrides.next();
-//		assertEquals(ATTRIBUTE_OVERRIDE_NAME, ormAttributeOverride.getName());
-//		XmlColumn xmlColumn = ormAttributeOverride.getColumn();
-//		assertEquals("city", xmlColumn.getDefaultName());
-////		assertEquals(Boolean.TRUE, xmlColumn.getSpecifiedUnique());
-////		assertEquals(Boolean.FALSE, xmlColumn.getSpecifiedNullable());
-////		assertEquals(Boolean.FALSE, xmlColumn.getSpecifiedInsertable());
-////		assertEquals(Boolean.FALSE, xmlColumn.getSpecifiedUpdatable());
-////		assertEquals("COLUMN_DEFINITION", xmlColumn.getColumnDefinition());
-////		assertEquals("MY_TABLE", xmlColumn.getSpecifiedTable());
-////		assertEquals(Integer.valueOf(5), xmlColumn.getSpecifiedLength());
-////		assertEquals(Integer.valueOf(6), xmlColumn.getSpecifiedPrecision());
-////		assertEquals(Integer.valueOf(7), xmlColumn.getSpecifiedScale());
-//		
-//		ormAttributeOverride = ormAttributeOverrides.next();
-//		assertEquals("id", ormAttributeOverride.getName());
-//		xmlColumn = ormAttributeOverride.getColumn();
-//		assertEquals("id", xmlColumn.getDefaultName());
-//
-//		ormAttributeOverride = ormAttributeOverrides.next();
-//		assertEquals("state", ormAttributeOverride.getName());
-//		xmlColumn = ormAttributeOverride.getColumn();
-//		assertEquals("state", xmlColumn.getDefaultName());
-//
-//		ormAttributeOverride = ormAttributeOverrides.next();
-//		assertEquals("zip", ormAttributeOverride.getName());
-//		xmlColumn = ormAttributeOverride.getColumn();
-//		assertEquals("zip", xmlColumn.getDefaultName());
-	}
-
-}
\ No newline at end of file
diff --git a/jpa/tests/org.eclipse.jpt.core.tests/src/org/eclipse/jpt/core/tests/internal/context/orm/OrmEmbeddedMappingTests.java b/jpa/tests/org.eclipse.jpt.core.tests/src/org/eclipse/jpt/core/tests/internal/context/orm/OrmEmbeddedMappingTests.java
deleted file mode 100644
index 93d3015..0000000
--- a/jpa/tests/org.eclipse.jpt.core.tests/src/org/eclipse/jpt/core/tests/internal/context/orm/OrmEmbeddedMappingTests.java
+++ /dev/null
@@ -1,773 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.core.tests.internal.context.orm;
-
-import java.util.Iterator;
-import java.util.ListIterator;
-import org.eclipse.jdt.core.ICompilationUnit;
-import org.eclipse.jpt.core.JptCorePlugin;
-import org.eclipse.jpt.core.MappingKeys;
-import org.eclipse.jpt.core.context.AttributeOverride;
-import org.eclipse.jpt.core.context.BasicMapping;
-import org.eclipse.jpt.core.context.Column;
-import org.eclipse.jpt.core.context.EmbeddedIdMapping;
-import org.eclipse.jpt.core.context.EmbeddedMapping;
-import org.eclipse.jpt.core.context.IdMapping;
-import org.eclipse.jpt.core.context.ManyToManyMapping;
-import org.eclipse.jpt.core.context.ManyToOneMapping;
-import org.eclipse.jpt.core.context.OneToManyMapping;
-import org.eclipse.jpt.core.context.OneToOneMapping;
-import org.eclipse.jpt.core.context.TransientMapping;
-import org.eclipse.jpt.core.context.VersionMapping;
-import org.eclipse.jpt.core.context.java.JavaBasicMapping;
-import org.eclipse.jpt.core.context.java.JavaEmbeddedMapping;
-import org.eclipse.jpt.core.context.orm.OrmAttributeOverride;
-import org.eclipse.jpt.core.context.orm.OrmColumn;
-import org.eclipse.jpt.core.context.orm.OrmEmbeddedMapping;
-import org.eclipse.jpt.core.context.orm.OrmPersistentAttribute;
-import org.eclipse.jpt.core.context.orm.OrmPersistentType;
-import org.eclipse.jpt.core.resource.java.JPA;
-import org.eclipse.jpt.core.resource.orm.OrmFactory;
-import org.eclipse.jpt.core.resource.orm.XmlEmbedded;
-import org.eclipse.jpt.core.resource.persistence.PersistenceFactory;
-import org.eclipse.jpt.core.resource.persistence.XmlMappingFileRef;
-import org.eclipse.jpt.core.tests.internal.context.ContextModelTestCase;
-import org.eclipse.jpt.core.tests.internal.projects.TestJavaProject.SourceWriter;
-import org.eclipse.jpt.utility.internal.iterators.ArrayIterator;
-
-@SuppressWarnings("nls")
-public class OrmEmbeddedMappingTests extends ContextModelTestCase
-{
-	private static final String ATTRIBUTE_OVERRIDE_NAME = "city";
-	private static final String ATTRIBUTE_OVERRIDE_COLUMN_NAME = "E_CITY";
-
-	public OrmEmbeddedMappingTests(String name) {
-		super(name);
-	}
-		
-	@Override
-	protected void setUp() throws Exception {
-		super.setUp();
-		XmlMappingFileRef mappingFileRef = PersistenceFactory.eINSTANCE.createXmlMappingFileRef();
-		mappingFileRef.setFileName(JptCorePlugin.DEFAULT_ORM_XML_FILE_PATH);
-		getXmlPersistenceUnit().getMappingFiles().add(mappingFileRef);
-		getPersistenceXmlResource().save(null);
-	}
-	
-	private ICompilationUnit createTestEntityEmbeddedMapping() throws Exception {
-		return this.createTestType(new DefaultAnnotationWriter() {
-			@Override
-			public Iterator<String> imports() {
-				return new ArrayIterator<String>(JPA.ENTITY, JPA.EMBEDDED, JPA.ATTRIBUTE_OVERRIDE, JPA.COLUMN);
-			}
-			@Override
-			public void appendTypeAnnotationTo(StringBuilder sb) {
-				sb.append("@Entity");
-			}
-			
-			@Override
-			public void appendIdFieldAnnotationTo(StringBuilder sb) {
-				sb.append(CR);
-				sb.append("    @Embedded");
-				sb.append(CR);
-				sb.append("    @AttributeOverride(name=\"" + ATTRIBUTE_OVERRIDE_NAME + "\", column=@Column(name=\"" + ATTRIBUTE_OVERRIDE_COLUMN_NAME + "\"))");
-				sb.append(CR);
-				sb.append("    private Address address;").append(CR);
-				sb.append(CR);
-				sb.append("    @Id");				
-			}
-		});
-	}	
-	
-	private void createTestEmbeddableAddress() throws Exception {
-		SourceWriter sourceWriter = new SourceWriter() {
-			public void appendSourceTo(StringBuilder sb) {
-				sb.append(CR);
-					sb.append("import ");
-					sb.append(JPA.EMBEDDABLE);
-					sb.append(";");
-					sb.append(CR);
-					sb.append("import ");
-					sb.append(JPA.ID);
-					sb.append(";");
-					sb.append(CR);
-					sb.append("import ");
-					sb.append(JPA.COLUMN);
-					sb.append(";");
-					sb.append(CR);
-				sb.append(CR);
-				sb.append("@Embeddable");
-				sb.append(CR);
-				sb.append("public class ").append("Address").append(" ");
-				sb.append("{").append(CR);
-				sb.append(CR);
-				sb.append("    @Id").append(CR);
-				sb.append("    private int id;").append(CR);
-				sb.append(CR);
-				sb.append("    private String city;").append(CR);
-				sb.append(CR);
-				sb.append("    @Column(name=\"A_STATE\")").append(CR);
-				sb.append("    private String state;").append(CR);
-				sb.append(CR);
-				sb.append("    private int zip;").append(CR);
-				sb.append(CR);
-				sb.append("}").append(CR);
-			}
-		};
-		this.javaProject.createCompilationUnit(PACKAGE_NAME, "Address.java", sourceWriter);
-	}	
-
-	public void testUpdateName() throws Exception {
-		OrmPersistentType ormPersistentType = getEntityMappings().addPersistentType(MappingKeys.ENTITY_TYPE_MAPPING_KEY, "model.Foo");
-		OrmPersistentAttribute ormPersistentAttribute = ormPersistentType.addSpecifiedPersistentAttribute(MappingKeys.EMBEDDED_ATTRIBUTE_MAPPING_KEY, "embeddedMapping");
-		OrmEmbeddedMapping ormEmbeddedMapping = (OrmEmbeddedMapping) ormPersistentAttribute.getMapping();
-		XmlEmbedded embeddedResource = getXmlEntityMappings().getEntities().get(0).getAttributes().getEmbeddeds().get(0);
-		
-		assertEquals("embeddedMapping", ormEmbeddedMapping.getName());
-		assertEquals("embeddedMapping", embeddedResource.getName());
-				
-		//set name in the resource model, verify context model updated
-		embeddedResource.setName("newName");
-		assertEquals("newName", ormEmbeddedMapping.getName());
-		assertEquals("newName", embeddedResource.getName());
-	
-		//set name to null in the resource model
-		embeddedResource.setName(null);
-		assertNull(ormEmbeddedMapping.getName());
-		assertNull(embeddedResource.getName());
-	}
-	
-	public void testModifyName() throws Exception {
-		OrmPersistentType ormPersistentType = getEntityMappings().addPersistentType(MappingKeys.ENTITY_TYPE_MAPPING_KEY, "model.Foo");
-		OrmPersistentAttribute ormPersistentAttribute = ormPersistentType.addSpecifiedPersistentAttribute(MappingKeys.EMBEDDED_ATTRIBUTE_MAPPING_KEY, "embeddedMapping");
-		OrmEmbeddedMapping ormEmbeddedMapping = (OrmEmbeddedMapping) ormPersistentAttribute.getMapping();
-		XmlEmbedded embeddedResource = getXmlEntityMappings().getEntities().get(0).getAttributes().getEmbeddeds().get(0);
-		
-		assertEquals("embeddedMapping", ormEmbeddedMapping.getName());
-		assertEquals("embeddedMapping", embeddedResource.getName());
-				
-		//set name in the context model, verify resource model updated
-		ormEmbeddedMapping.setName("newName");
-		assertEquals("newName", ormEmbeddedMapping.getName());
-		assertEquals("newName", embeddedResource.getName());
-	
-		//set name to null in the context model
-		ormEmbeddedMapping.setName(null);
-		assertNull(ormEmbeddedMapping.getName());
-		assertNull(embeddedResource.getName());
-	}
-	
-//	public void testAddSpecifiedAttributeOverride() throws Exception {
-//		OrmPersistentType ormPersistentType = entityMappings().addOrmPersistentType(MappingKeys.ENTITY_TYPE_MAPPING_KEY, "model.Foo");
-//		OrmPersistentAttribute ormPersistentAttribute = ormPersistentType.addSpecifiedPersistentAttribute(MappingKeys.EMBEDDED_ATTRIBUTE_MAPPING_KEY, "embeddedMapping");
-//		OrmEmbeddedMapping ormEmbeddedMapping = (OrmEmbeddedMapping) ormPersistentAttribute.getMapping();
-//		XmlEmbedded embeddedResource = ormResource().getEntityMappings().getEntities().get(0).getAttributes().getEmbeddeds().get(0);
-//		
-//		OrmAttributeOverride attributeOverride = ormEmbeddedMapping.addSpecifiedAttributeOverride(0);
-//		attributeOverride.setName("FOO");
-//				
-//		assertEquals("FOO", embeddedResource.getAttributeOverrides().get(0).getName());
-//		
-//		OrmAttributeOverride attributeOverride2 = ormEmbeddedMapping.addSpecifiedAttributeOverride(0);
-//		attributeOverride2.setName("BAR");
-//		
-//		assertEquals("BAR", embeddedResource.getAttributeOverrides().get(0).getName());
-//		assertEquals("FOO", embeddedResource.getAttributeOverrides().get(1).getName());
-//		
-//		OrmAttributeOverride attributeOverride3 = ormEmbeddedMapping.addSpecifiedAttributeOverride(1);
-//		attributeOverride3.setName("BAZ");
-//		
-//		assertEquals("BAR", embeddedResource.getAttributeOverrides().get(0).getName());
-//		assertEquals("BAZ", embeddedResource.getAttributeOverrides().get(1).getName());
-//		assertEquals("FOO", embeddedResource.getAttributeOverrides().get(2).getName());
-//		
-//		ListIterator<OrmAttributeOverride> attributeOverrides = ormEmbeddedMapping.specifiedAttributeOverrides();
-//		assertEquals(attributeOverride2, attributeOverrides.next());
-//		assertEquals(attributeOverride3, attributeOverrides.next());
-//		assertEquals(attributeOverride, attributeOverrides.next());
-//		
-//		attributeOverrides = ormEmbeddedMapping.specifiedAttributeOverrides();
-//		assertEquals("BAR", attributeOverrides.next().getName());
-//		assertEquals("BAZ", attributeOverrides.next().getName());
-//		assertEquals("FOO", attributeOverrides.next().getName());
-//	}
-//	
-//	public void testRemoveSpecifiedAttributeOverride() throws Exception {
-//		OrmPersistentType ormPersistentType = entityMappings().addOrmPersistentType(MappingKeys.ENTITY_TYPE_MAPPING_KEY, "model.Foo");
-//		OrmPersistentAttribute ormPersistentAttribute = ormPersistentType.addSpecifiedPersistentAttribute(MappingKeys.EMBEDDED_ATTRIBUTE_MAPPING_KEY, "embeddedMapping");
-//		OrmEmbeddedMapping ormEmbeddedMapping = (OrmEmbeddedMapping) ormPersistentAttribute.getMapping();
-//		XmlEmbedded embeddedResource = ormResource().getEntityMappings().getEntities().get(0).getAttributes().getEmbeddeds().get(0);
-//
-//		ormEmbeddedMapping.addSpecifiedAttributeOverride(0).setName("FOO");
-//		ormEmbeddedMapping.addSpecifiedAttributeOverride(1).setName("BAR");
-//		ormEmbeddedMapping.addSpecifiedAttributeOverride(2).setName("BAZ");
-//		
-//		assertEquals(3, embeddedResource.getAttributeOverrides().size());
-//		
-//		ormEmbeddedMapping.removeSpecifiedAttributeOverride(0);
-//		assertEquals(2, embeddedResource.getAttributeOverrides().size());
-//		assertEquals("BAR", embeddedResource.getAttributeOverrides().get(0).getName());
-//		assertEquals("BAZ", embeddedResource.getAttributeOverrides().get(1).getName());
-//
-//		ormEmbeddedMapping.removeSpecifiedAttributeOverride(0);
-//		assertEquals(1, embeddedResource.getAttributeOverrides().size());
-//		assertEquals("BAZ", embeddedResource.getAttributeOverrides().get(0).getName());
-//		
-//		ormEmbeddedMapping.removeSpecifiedAttributeOverride(0);
-//		assertEquals(0, embeddedResource.getAttributeOverrides().size());
-//	}
-	
-	public void testMoveSpecifiedAttributeOverride() throws Exception {
-		OrmPersistentType ormPersistentType = getEntityMappings().addPersistentType(MappingKeys.ENTITY_TYPE_MAPPING_KEY, "model.Foo");
-		OrmPersistentAttribute ormPersistentAttribute = ormPersistentType.addSpecifiedPersistentAttribute(MappingKeys.EMBEDDED_ATTRIBUTE_MAPPING_KEY, "embeddedMapping");
-		OrmEmbeddedMapping ormEmbeddedMapping = (OrmEmbeddedMapping) ormPersistentAttribute.getMapping();
-		XmlEmbedded embeddedResource = getXmlEntityMappings().getEntities().get(0).getAttributes().getEmbeddeds().get(0);
-
-		embeddedResource.getAttributeOverrides().add(OrmFactory.eINSTANCE.createXmlAttributeOverrideImpl());
-		embeddedResource.getAttributeOverrides().add(OrmFactory.eINSTANCE.createXmlAttributeOverrideImpl());
-		embeddedResource.getAttributeOverrides().add(OrmFactory.eINSTANCE.createXmlAttributeOverrideImpl());
-		
-		embeddedResource.getAttributeOverrides().get(0).setName("FOO");
-		embeddedResource.getAttributeOverrides().get(1).setName("BAR");
-		embeddedResource.getAttributeOverrides().get(2).setName("BAZ");
-		
-		assertEquals(3, embeddedResource.getAttributeOverrides().size());		
-		
-		ormEmbeddedMapping.moveSpecifiedAttributeOverride(2, 0);
-		ListIterator<OrmAttributeOverride> attributeOverrides = ormEmbeddedMapping.specifiedAttributeOverrides();
-		assertEquals("BAR", attributeOverrides.next().getName());
-		assertEquals("BAZ", attributeOverrides.next().getName());
-		assertEquals("FOO", attributeOverrides.next().getName());
-
-		assertEquals("BAR", embeddedResource.getAttributeOverrides().get(0).getName());
-		assertEquals("BAZ", embeddedResource.getAttributeOverrides().get(1).getName());
-		assertEquals("FOO", embeddedResource.getAttributeOverrides().get(2).getName());
-
-
-		ormEmbeddedMapping.moveSpecifiedAttributeOverride(0, 1);
-		attributeOverrides = ormEmbeddedMapping.specifiedAttributeOverrides();
-		assertEquals("BAZ", attributeOverrides.next().getName());
-		assertEquals("BAR", attributeOverrides.next().getName());
-		assertEquals("FOO", attributeOverrides.next().getName());
-
-		assertEquals("BAZ", embeddedResource.getAttributeOverrides().get(0).getName());
-		assertEquals("BAR", embeddedResource.getAttributeOverrides().get(1).getName());
-		assertEquals("FOO", embeddedResource.getAttributeOverrides().get(2).getName());
-	}
-	
-	public void testUpdateAttributeOverrides() throws Exception {
-		OrmPersistentType ormPersistentType = getEntityMappings().addPersistentType(MappingKeys.ENTITY_TYPE_MAPPING_KEY, "model.Foo");
-		OrmPersistentAttribute ormPersistentAttribute = ormPersistentType.addSpecifiedPersistentAttribute(MappingKeys.EMBEDDED_ATTRIBUTE_MAPPING_KEY, "embeddedMapping");
-		OrmEmbeddedMapping ormEmbeddedMapping = (OrmEmbeddedMapping) ormPersistentAttribute.getMapping();
-		XmlEmbedded embeddedResource = getXmlEntityMappings().getEntities().get(0).getAttributes().getEmbeddeds().get(0);
-		
-		embeddedResource.getAttributeOverrides().add(OrmFactory.eINSTANCE.createXmlAttributeOverrideImpl());
-		embeddedResource.getAttributeOverrides().add(OrmFactory.eINSTANCE.createXmlAttributeOverrideImpl());
-		embeddedResource.getAttributeOverrides().add(OrmFactory.eINSTANCE.createXmlAttributeOverrideImpl());
-		
-		embeddedResource.getAttributeOverrides().get(0).setName("FOO");
-		embeddedResource.getAttributeOverrides().get(1).setName("BAR");
-		embeddedResource.getAttributeOverrides().get(2).setName("BAZ");
-
-		ListIterator<OrmAttributeOverride> attributeOverrides = ormEmbeddedMapping.specifiedAttributeOverrides();
-		assertEquals("FOO", attributeOverrides.next().getName());
-		assertEquals("BAR", attributeOverrides.next().getName());
-		assertEquals("BAZ", attributeOverrides.next().getName());
-		assertFalse(attributeOverrides.hasNext());
-		
-		embeddedResource.getAttributeOverrides().move(2, 0);
-		attributeOverrides = ormEmbeddedMapping.specifiedAttributeOverrides();
-		assertEquals("BAR", attributeOverrides.next().getName());
-		assertEquals("BAZ", attributeOverrides.next().getName());
-		assertEquals("FOO", attributeOverrides.next().getName());
-		assertFalse(attributeOverrides.hasNext());
-
-		embeddedResource.getAttributeOverrides().move(0, 1);
-		attributeOverrides = ormEmbeddedMapping.specifiedAttributeOverrides();
-		assertEquals("BAZ", attributeOverrides.next().getName());
-		assertEquals("BAR", attributeOverrides.next().getName());
-		assertEquals("FOO", attributeOverrides.next().getName());
-		assertFalse(attributeOverrides.hasNext());
-
-		embeddedResource.getAttributeOverrides().remove(1);
-		attributeOverrides = ormEmbeddedMapping.specifiedAttributeOverrides();
-		assertEquals("BAZ", attributeOverrides.next().getName());
-		assertEquals("FOO", attributeOverrides.next().getName());
-		assertFalse(attributeOverrides.hasNext());
-
-		embeddedResource.getAttributeOverrides().remove(1);
-		attributeOverrides = ormEmbeddedMapping.specifiedAttributeOverrides();
-		assertEquals("BAZ", attributeOverrides.next().getName());
-		assertFalse(attributeOverrides.hasNext());
-		
-		embeddedResource.getAttributeOverrides().remove(0);
-		assertFalse(ormEmbeddedMapping.specifiedAttributeOverrides().hasNext());
-	}
-	
-	
-	public void testEmbeddedMappingNoUnderylingJavaAttribute() throws Exception {
-		createTestEntityEmbeddedMapping();
-		createTestEmbeddableAddress();
-
-		OrmPersistentType ormPersistentType = getEntityMappings().addPersistentType(MappingKeys.ENTITY_TYPE_MAPPING_KEY, FULLY_QUALIFIED_TYPE_NAME);
-		getEntityMappings().addPersistentType(MappingKeys.EMBEDDABLE_TYPE_MAPPING_KEY, PACKAGE_NAME + ".Address");
-		ormPersistentType.addSpecifiedPersistentAttribute(MappingKeys.EMBEDDED_ATTRIBUTE_MAPPING_KEY, "foo");
-		assertEquals(3, ormPersistentType.virtualAttributesSize());
-		
-		OrmPersistentAttribute ormPersistentAttribute = ormPersistentType.specifiedAttributes().next();
-		OrmEmbeddedMapping ormEmbeddedMapping = (OrmEmbeddedMapping) ormPersistentAttribute.getMapping();
-		
-		assertEquals("foo", ormEmbeddedMapping.getName());
-
-		
-		assertFalse(ormEmbeddedMapping.specifiedAttributeOverrides().hasNext());
-		assertFalse(ormEmbeddedMapping.virtualAttributeOverrides().hasNext());
-	}
-	
-	public void testVirtualAttributeOverrides() throws Exception {
-		createTestEntityEmbeddedMapping();
-		createTestEmbeddableAddress();
-		OrmPersistentType persistentType = getEntityMappings().addPersistentType(MappingKeys.ENTITY_TYPE_MAPPING_KEY, FULLY_QUALIFIED_TYPE_NAME);
-		OrmPersistentType persistentType2 = getEntityMappings().addPersistentType(MappingKeys.EMBEDDABLE_TYPE_MAPPING_KEY, PACKAGE_NAME + ".Address");
-		
-		//embedded mapping is virtual, specified attribute overrides should exist
-		OrmPersistentAttribute ormPersistentAttribute = persistentType.getAttributeNamed("address");
-		OrmEmbeddedMapping embeddedMapping = (OrmEmbeddedMapping) ormPersistentAttribute.getMapping();
-		assertEquals(4, embeddedMapping.attributeOverridesSize());
-		assertEquals(0, embeddedMapping.virtualAttributeOverridesSize());
-		assertEquals(4, embeddedMapping.specifiedAttributeOverridesSize());
-		ListIterator<OrmAttributeOverride> specifiedAttributeOverrides = embeddedMapping.specifiedAttributeOverrides();
-		OrmAttributeOverride attributeOverride = specifiedAttributeOverrides.next();
-		assertEquals("city", attributeOverride.getName());
-		attributeOverride = specifiedAttributeOverrides.next();
-		assertEquals("id", attributeOverride.getName());
-		attributeOverride = specifiedAttributeOverrides.next();
-		assertEquals("state", attributeOverride.getName());
-		attributeOverride = specifiedAttributeOverrides.next();
-		assertEquals("zip", attributeOverride.getName());
-		
-		JavaEmbeddedMapping javaEmbeddedMapping = (JavaEmbeddedMapping) ormPersistentAttribute.getJavaPersistentAttribute().getMapping();
-		Column javaAttributeOverrideColumn = javaEmbeddedMapping.specifiedAttributeOverrides().next().getColumn();
-		
-		javaAttributeOverrideColumn.setSpecifiedName("FOO_COLUMN");
-		javaAttributeOverrideColumn.setSpecifiedTable("FOO_TABLE");
-		javaAttributeOverrideColumn.setColumnDefinition("COLUMN_DEF");
-		javaAttributeOverrideColumn.setSpecifiedInsertable(Boolean.FALSE);
-		javaAttributeOverrideColumn.setSpecifiedUpdatable(Boolean.FALSE);
-		javaAttributeOverrideColumn.setSpecifiedUnique(Boolean.TRUE);
-		javaAttributeOverrideColumn.setSpecifiedNullable(Boolean.FALSE);
-		javaAttributeOverrideColumn.setSpecifiedLength(Integer.valueOf(5));
-		javaAttributeOverrideColumn.setSpecifiedPrecision(Integer.valueOf(6));
-		javaAttributeOverrideColumn.setSpecifiedScale(Integer.valueOf(7));
-
-		JavaBasicMapping javaBasicMapping = (JavaBasicMapping) persistentType2.getJavaPersistentType().getAttributeNamed("state").getMapping();
-		javaBasicMapping.getColumn().setSpecifiedName("MY_STATE_COLUMN");
-		assertEquals(4, embeddedMapping.attributeOverridesSize());
-		assertEquals(0, embeddedMapping.virtualAttributeOverridesSize());
-		assertEquals(4, embeddedMapping.specifiedAttributeOverridesSize());
-		specifiedAttributeOverrides = embeddedMapping.specifiedAttributeOverrides();
-		attributeOverride = specifiedAttributeOverrides.next();
-		assertEquals("city", attributeOverride.getName());
-		assertEquals("FOO_COLUMN", attributeOverride.getColumn().getSpecifiedName());
-		assertEquals("FOO_TABLE", attributeOverride.getColumn().getSpecifiedTable());
-		assertEquals("COLUMN_DEF", attributeOverride.getColumn().getColumnDefinition());
-		assertEquals(false, attributeOverride.getColumn().isInsertable());
-		assertEquals(false, attributeOverride.getColumn().isUpdatable());
-		assertEquals(true, attributeOverride.getColumn().isUnique());
-		assertEquals(false, attributeOverride.getColumn().isNullable());
-		assertEquals(5, attributeOverride.getColumn().getLength());
-		assertEquals(6, attributeOverride.getColumn().getPrecision());
-		assertEquals(7, attributeOverride.getColumn().getScale());
-		
-		attributeOverride = specifiedAttributeOverrides.next();
-		assertEquals("id", attributeOverride.getName());
-		attributeOverride = specifiedAttributeOverrides.next();
-		assertEquals("state", attributeOverride.getName());
-		assertEquals("MY_STATE_COLUMN", attributeOverride.getColumn().getSpecifiedName());
-		attributeOverride = specifiedAttributeOverrides.next();
-		assertEquals("zip", attributeOverride.getName());
-		
-		
-		
-		//embedded mapping is specified, virtual attribute overrides should exist
-		persistentType.getAttributeNamed("address").makeSpecified();
-		getOrmXmlResource().save(null);
-		embeddedMapping = (OrmEmbeddedMapping) persistentType.getAttributeNamed("address").getMapping();
-		assertEquals(4, embeddedMapping.attributeOverridesSize());
-		assertEquals(4, embeddedMapping.virtualAttributeOverridesSize());
-		assertEquals(0, embeddedMapping.specifiedAttributeOverridesSize());
-		ListIterator<OrmAttributeOverride> virtualAttributeOverrides = embeddedMapping.virtualAttributeOverrides();
-		attributeOverride = virtualAttributeOverrides.next();
-		assertEquals("id", attributeOverride.getName());
-		attributeOverride = virtualAttributeOverrides.next();
-		assertEquals("city", attributeOverride.getName());
-		assertEquals("city", attributeOverride.getColumn().getName());
-		assertEquals(TYPE_NAME, attributeOverride.getColumn().getTable());
-		assertEquals(null, attributeOverride.getColumn().getColumnDefinition());
-		assertEquals(true, attributeOverride.getColumn().isInsertable());
-		assertEquals(true, attributeOverride.getColumn().isUpdatable());
-		assertEquals(false, attributeOverride.getColumn().isUnique());
-		assertEquals(true, attributeOverride.getColumn().isNullable());
-		assertEquals(255, attributeOverride.getColumn().getLength());
-		assertEquals(0, attributeOverride.getColumn().getPrecision());
-		assertEquals(0, attributeOverride.getColumn().getScale());
-		attributeOverride = virtualAttributeOverrides.next();
-		assertEquals("state", attributeOverride.getName());
-		assertEquals("MY_STATE_COLUMN", attributeOverride.getColumn().getDefaultName());
-		assertEquals(TYPE_NAME, attributeOverride.getColumn().getDefaultTable());
-		attributeOverride = virtualAttributeOverrides.next();
-		assertEquals("zip", attributeOverride.getName());
-		
-		//set one of the virtual attribute overrides to specified, verify others are still virtual
-		embeddedMapping.virtualAttributeOverrides().next().setVirtual(false);
-		
-		assertEquals(4, embeddedMapping.attributeOverridesSize());
-		assertEquals(1, embeddedMapping.specifiedAttributeOverridesSize());
-		assertEquals(3, embeddedMapping.virtualAttributeOverridesSize());
-		assertEquals("id", embeddedMapping.specifiedAttributeOverrides().next().getName());
-		virtualAttributeOverrides = embeddedMapping.virtualAttributeOverrides();
-		attributeOverride = virtualAttributeOverrides.next();
-		assertEquals("city", attributeOverride.getName());
-		attributeOverride = virtualAttributeOverrides.next();
-		assertEquals("state", attributeOverride.getName());
-		attributeOverride = virtualAttributeOverrides.next();
-		assertEquals("zip", attributeOverride.getName());
-	}
-
-	
-	public void testVirtualMappingMetadataCompleteFalse() throws Exception {
-		createTestEntityEmbeddedMapping();
-		createTestEmbeddableAddress();
-
-		OrmPersistentType ormPersistentType = getEntityMappings().addPersistentType(MappingKeys.ENTITY_TYPE_MAPPING_KEY, FULLY_QUALIFIED_TYPE_NAME);
-		getEntityMappings().addPersistentType(MappingKeys.EMBEDDABLE_TYPE_MAPPING_KEY, PACKAGE_NAME + ".Address");
-		assertEquals(3, ormPersistentType.virtualAttributesSize());		
-		OrmPersistentAttribute ormPersistentAttribute = ormPersistentType.virtualAttributes().next();
-		
-		OrmEmbeddedMapping ormEmbeddedMapping = (OrmEmbeddedMapping) ormPersistentAttribute.getMapping();	
-		assertEquals("address", ormEmbeddedMapping.getName());
-
-		assertEquals(4, ormEmbeddedMapping.specifiedAttributeOverridesSize());
-		assertEquals(0, ormEmbeddedMapping.virtualAttributeOverridesSize());
-		ListIterator<OrmAttributeOverride> ormAttributeOverrides = ormEmbeddedMapping.specifiedAttributeOverrides();
-
-		OrmAttributeOverride ormAttributeOverride = ormAttributeOverrides.next();
-		assertEquals(ATTRIBUTE_OVERRIDE_NAME, ormAttributeOverride.getName());
-		OrmColumn ormColumn = ormAttributeOverride.getColumn();
-		assertEquals(ATTRIBUTE_OVERRIDE_COLUMN_NAME, ormColumn.getSpecifiedName());
-
-	
-		ormAttributeOverride = ormAttributeOverrides.next();
-		assertEquals("id", ormAttributeOverride.getName());
-		ormColumn = ormAttributeOverride.getColumn();
-		assertEquals("id", ormColumn.getSpecifiedName());
-
-		ormAttributeOverride = ormAttributeOverrides.next();
-		assertEquals("state", ormAttributeOverride.getName());
-		ormColumn = ormAttributeOverride.getColumn();
-		assertEquals("A_STATE", ormColumn.getSpecifiedName());
-
-		ormAttributeOverride = ormAttributeOverrides.next();
-		assertEquals("zip", ormAttributeOverride.getName());
-		ormColumn = ormAttributeOverride.getColumn();
-		assertEquals("zip", ormColumn.getSpecifiedName());
-
-	}
-	
-	public void testVirtualMappingMetadataCompleteTrue() throws Exception {
-		createTestEntityEmbeddedMapping();
-		createTestEmbeddableAddress();
-
-		OrmPersistentType ormPersistentType = getEntityMappings().addPersistentType(MappingKeys.ENTITY_TYPE_MAPPING_KEY, FULLY_QUALIFIED_TYPE_NAME);
-		getEntityMappings().addPersistentType(MappingKeys.EMBEDDABLE_TYPE_MAPPING_KEY, PACKAGE_NAME + ".Address");
-		ormPersistentType.getMapping().setSpecifiedMetadataComplete(Boolean.TRUE);
-		assertEquals(3, ormPersistentType.virtualAttributesSize());		
-		OrmPersistentAttribute ormPersistentAttribute = ormPersistentType.virtualAttributes().next();
-		
-		OrmEmbeddedMapping ormEmbeddedMapping = (OrmEmbeddedMapping) ormPersistentAttribute.getMapping();	
-		assertEquals("address", ormEmbeddedMapping.getName());
-
-		//TODO
-//		assertEquals(4, ormEmbeddedMapping.specifiedAttributeOverridesSize());
-//		assertEquals(0, CollectionTools.size(ormEmbeddedMapping.defaultAttributeOverrides()));
-//		ListIterator<XmlAttributeOverride> ormAttributeOverrides = ormEmbeddedMapping.specifiedAttributeOverrides();
-//
-//		XmlAttributeOverride ormAttributeOverride = ormAttributeOverrides.next();
-//		assertEquals(ATTRIBUTE_OVERRIDE_NAME, ormAttributeOverride.getName());
-//		XmlColumn xmlColumn = ormAttributeOverride.getColumn();
-//		assertEquals("city", xmlColumn.getSpecifiedName());
-////		assertEquals(Boolean.TRUE, xmlColumn.getSpecifiedUnique());
-////		assertEquals(Boolean.FALSE, xmlColumn.getSpecifiedNullable());
-////		assertEquals(Boolean.FALSE, xmlColumn.getSpecifiedInsertable());
-////		assertEquals(Boolean.FALSE, xmlColumn.getSpecifiedUpdatable());
-////		assertEquals("COLUMN_DEFINITION", xmlColumn.getColumnDefinition());
-////		assertEquals("MY_TABLE", xmlColumn.getSpecifiedTable());
-////		assertEquals(Integer.valueOf(5), xmlColumn.getSpecifiedLength());
-////		assertEquals(Integer.valueOf(6), xmlColumn.getSpecifiedPrecision());
-////		assertEquals(Integer.valueOf(7), xmlColumn.getSpecifiedScale());
-//		
-//		ormAttributeOverride = ormAttributeOverrides.next();
-//		assertEquals("id", ormAttributeOverride.getName());
-//		xmlColumn = ormAttributeOverride.getColumn();
-//		assertEquals("id", xmlColumn.getSpecifiedName());
-//
-//		ormAttributeOverride = ormAttributeOverrides.next();
-//		assertEquals("state", ormAttributeOverride.getName());
-//		xmlColumn = ormAttributeOverride.getColumn();
-//		assertEquals("state", xmlColumn.getSpecifiedName());
-//
-//		ormAttributeOverride = ormAttributeOverrides.next();
-//		assertEquals("zip", ormAttributeOverride.getName());
-//		xmlColumn = ormAttributeOverride.getColumn();
-//		assertEquals("zip", xmlColumn.getSpecifiedName());
-	}
-	
-	public void testSpecifiedMapping() throws Exception {
-		createTestEntityEmbeddedMapping();
-		createTestEmbeddableAddress();
-
-		OrmPersistentType ormPersistentType = getEntityMappings().addPersistentType(MappingKeys.ENTITY_TYPE_MAPPING_KEY, FULLY_QUALIFIED_TYPE_NAME);
-		getEntityMappings().addPersistentType(MappingKeys.EMBEDDABLE_TYPE_MAPPING_KEY, PACKAGE_NAME + ".Address");
-
-		ormPersistentType.addSpecifiedPersistentAttribute(MappingKeys.EMBEDDED_ATTRIBUTE_MAPPING_KEY, "address");
-		assertEquals(2, ormPersistentType.virtualAttributesSize());
-		
-		OrmPersistentAttribute ormPersistentAttribute = ormPersistentType.specifiedAttributes().next();
-		OrmEmbeddedMapping ormEmbeddedMapping = (OrmEmbeddedMapping) ormPersistentAttribute.getMapping();
-		
-		assertEquals("address", ormEmbeddedMapping.getName());
-
-		assertEquals(0, ormEmbeddedMapping.specifiedAttributeOverridesSize());
-		//TODO
-//		assertEquals(4, CollectionTools.size(ormEmbeddedMapping.defaultAttributeOverrides()));
-//		ListIterator<XmlAttributeOverride> ormAttributeOverrides = ormEmbeddedMapping.defaultAttributeOverrides();
-//
-//		XmlAttributeOverride ormAttributeOverride = ormAttributeOverrides.next();
-//		assertEquals(ATTRIBUTE_OVERRIDE_NAME, ormAttributeOverride.getName());
-//		XmlColumn xmlColumn = ormAttributeOverride.getColumn();
-//		assertEquals("city", xmlColumn.getDefaultName());
-////		assertEquals(Boolean.TRUE, xmlColumn.getSpecifiedUnique());
-////		assertEquals(Boolean.FALSE, xmlColumn.getSpecifiedNullable());
-////		assertEquals(Boolean.FALSE, xmlColumn.getSpecifiedInsertable());
-////		assertEquals(Boolean.FALSE, xmlColumn.getSpecifiedUpdatable());
-////		assertEquals("COLUMN_DEFINITION", xmlColumn.getColumnDefinition());
-////		assertEquals("MY_TABLE", xmlColumn.getSpecifiedTable());
-////		assertEquals(Integer.valueOf(5), xmlColumn.getSpecifiedLength());
-////		assertEquals(Integer.valueOf(6), xmlColumn.getSpecifiedPrecision());
-////		assertEquals(Integer.valueOf(7), xmlColumn.getSpecifiedScale());
-//		
-//		ormAttributeOverride = ormAttributeOverrides.next();
-//		assertEquals("id", ormAttributeOverride.getName());
-//		xmlColumn = ormAttributeOverride.getColumn();
-//		assertEquals("id", xmlColumn.getDefaultName());
-//
-//		ormAttributeOverride = ormAttributeOverrides.next();
-//		assertEquals("state", ormAttributeOverride.getName());
-//		xmlColumn = ormAttributeOverride.getColumn();
-//		assertEquals("state", xmlColumn.getDefaultName());
-//
-//		ormAttributeOverride = ormAttributeOverrides.next();
-//		assertEquals("zip", ormAttributeOverride.getName());
-//		xmlColumn = ormAttributeOverride.getColumn();
-//		assertEquals("zip", xmlColumn.getDefaultName());
-	}
-	
-	
-	public void testEmbeddedMorphToIdMapping() throws Exception {
-		createTestEntityEmbeddedMapping();
-		OrmPersistentType ormPersistentType = getEntityMappings().addPersistentType(MappingKeys.ENTITY_TYPE_MAPPING_KEY, FULLY_QUALIFIED_TYPE_NAME);
-		OrmPersistentAttribute ormPersistentAttribute = ormPersistentType.addSpecifiedPersistentAttribute(MappingKeys.EMBEDDED_ATTRIBUTE_MAPPING_KEY, "embedded");
-		
-		EmbeddedMapping embeddedMapping = (EmbeddedMapping) ormPersistentAttribute.getMapping();
-		assertFalse(embeddedMapping.isDefault());
-		XmlEmbedded embeddedResource = getXmlEntityMappings().getEntities().get(0).getAttributes().getEmbeddeds().get(0);
-		embeddedResource.getAttributeOverrides().add(OrmFactory.eINSTANCE.createXmlAttributeOverrideImpl());
-		AttributeOverride attributeOverride = embeddedMapping.specifiedAttributeOverrides().next();
-		attributeOverride.setName("override");
-		attributeOverride.getColumn().setSpecifiedName("OVERRIDE_COLUMN");
-		assertFalse(embeddedMapping.isDefault());
-		
-		ormPersistentAttribute.setSpecifiedMappingKey(MappingKeys.ID_ATTRIBUTE_MAPPING_KEY);
-		assertEquals(1, ormPersistentType.specifiedAttributesSize());
-		assertEquals(ormPersistentAttribute, ormPersistentType.specifiedAttributes().next());
-		assertTrue(ormPersistentAttribute.getMapping() instanceof IdMapping);
-		assertEquals("embedded", ormPersistentAttribute.getMapping().getName());
-	}
-	
-	public void testEmbeddedMorphToVersionMapping() throws Exception {
-		createTestEntityEmbeddedMapping();
-		OrmPersistentType ormPersistentType = getEntityMappings().addPersistentType(MappingKeys.ENTITY_TYPE_MAPPING_KEY, FULLY_QUALIFIED_TYPE_NAME);
-		OrmPersistentAttribute ormPersistentAttribute = ormPersistentType.addSpecifiedPersistentAttribute(MappingKeys.EMBEDDED_ATTRIBUTE_MAPPING_KEY, "embedded");
-		
-		EmbeddedMapping embeddedMapping = (EmbeddedMapping) ormPersistentAttribute.getMapping();
-		assertFalse(embeddedMapping.isDefault());
-		XmlEmbedded embeddedResource = getXmlEntityMappings().getEntities().get(0).getAttributes().getEmbeddeds().get(0);
-		embeddedResource.getAttributeOverrides().add(OrmFactory.eINSTANCE.createXmlAttributeOverrideImpl());
-		AttributeOverride attributeOverride = embeddedMapping.specifiedAttributeOverrides().next();
-		attributeOverride.setName("override");
-		attributeOverride.getColumn().setSpecifiedName("OVERRIDE_COLUMN");
-		assertFalse(embeddedMapping.isDefault());
-		
-		ormPersistentAttribute.setSpecifiedMappingKey(MappingKeys.VERSION_ATTRIBUTE_MAPPING_KEY);
-		assertEquals(1, ormPersistentType.specifiedAttributesSize());
-		assertEquals(ormPersistentAttribute, ormPersistentType.specifiedAttributes().next());
-		assertTrue(ormPersistentAttribute.getMapping() instanceof VersionMapping);
-		assertEquals("embedded", ormPersistentAttribute.getMapping().getName());
-	}
-	
-	public void testEmbeddedMorphToTransientMapping() throws Exception {
-		createTestEntityEmbeddedMapping();
-		OrmPersistentType ormPersistentType = getEntityMappings().addPersistentType(MappingKeys.ENTITY_TYPE_MAPPING_KEY, FULLY_QUALIFIED_TYPE_NAME);
-		OrmPersistentAttribute ormPersistentAttribute = ormPersistentType.addSpecifiedPersistentAttribute(MappingKeys.EMBEDDED_ATTRIBUTE_MAPPING_KEY, "embedded");
-		
-		EmbeddedMapping embeddedMapping = (EmbeddedMapping) ormPersistentAttribute.getMapping();
-		assertFalse(embeddedMapping.isDefault());
-		XmlEmbedded embeddedResource = getXmlEntityMappings().getEntities().get(0).getAttributes().getEmbeddeds().get(0);
-		embeddedResource.getAttributeOverrides().add(OrmFactory.eINSTANCE.createXmlAttributeOverrideImpl());
-		AttributeOverride attributeOverride = embeddedMapping.specifiedAttributeOverrides().next();
-		attributeOverride.setName("override");
-		attributeOverride.getColumn().setSpecifiedName("OVERRIDE_COLUMN");
-		assertFalse(embeddedMapping.isDefault());
-		
-		ormPersistentAttribute.setSpecifiedMappingKey(MappingKeys.TRANSIENT_ATTRIBUTE_MAPPING_KEY);
-		assertEquals(1, ormPersistentType.specifiedAttributesSize());
-		assertEquals(ormPersistentAttribute, ormPersistentType.specifiedAttributes().next());
-		assertTrue(ormPersistentAttribute.getMapping() instanceof TransientMapping);
-		assertEquals("embedded", ormPersistentAttribute.getMapping().getName());
-	}
-	
-	public void testEmbeddedMorphToBasicMapping() throws Exception {
-		createTestEntityEmbeddedMapping();
-		OrmPersistentType ormPersistentType = getEntityMappings().addPersistentType(MappingKeys.ENTITY_TYPE_MAPPING_KEY, FULLY_QUALIFIED_TYPE_NAME);
-		OrmPersistentAttribute ormPersistentAttribute = ormPersistentType.addSpecifiedPersistentAttribute(MappingKeys.EMBEDDED_ATTRIBUTE_MAPPING_KEY, "embedded");
-		
-		EmbeddedMapping embeddedMapping = (EmbeddedMapping) ormPersistentAttribute.getMapping();
-		assertFalse(embeddedMapping.isDefault());
-		XmlEmbedded embeddedResource = getXmlEntityMappings().getEntities().get(0).getAttributes().getEmbeddeds().get(0);
-		embeddedResource.getAttributeOverrides().add(OrmFactory.eINSTANCE.createXmlAttributeOverrideImpl());
-		AttributeOverride attributeOverride = embeddedMapping.specifiedAttributeOverrides().next();
-		attributeOverride.setName("override");
-		attributeOverride.getColumn().setSpecifiedName("OVERRIDE_COLUMN");
-		assertFalse(embeddedMapping.isDefault());
-		
-		ormPersistentAttribute.setSpecifiedMappingKey(MappingKeys.BASIC_ATTRIBUTE_MAPPING_KEY);
-		assertEquals(1, ormPersistentType.specifiedAttributesSize());
-		assertEquals(ormPersistentAttribute, ormPersistentType.specifiedAttributes().next());
-		assertTrue(ormPersistentAttribute.getMapping() instanceof BasicMapping);
-		assertEquals("embedded", ormPersistentAttribute.getMapping().getName());
-	}
-	
-	public void testEmbeddedMorphToEmbeddedIdMapping() throws Exception {
-		createTestEntityEmbeddedMapping();
-		OrmPersistentType ormPersistentType = getEntityMappings().addPersistentType(MappingKeys.ENTITY_TYPE_MAPPING_KEY, FULLY_QUALIFIED_TYPE_NAME);
-		OrmPersistentAttribute ormPersistentAttribute = ormPersistentType.addSpecifiedPersistentAttribute(MappingKeys.EMBEDDED_ATTRIBUTE_MAPPING_KEY, "embedded");
-		
-		EmbeddedMapping embeddedMapping = (EmbeddedMapping) ormPersistentAttribute.getMapping();
-		assertFalse(embeddedMapping.isDefault());
-		XmlEmbedded embeddedResource = getXmlEntityMappings().getEntities().get(0).getAttributes().getEmbeddeds().get(0);
-		embeddedResource.getAttributeOverrides().add(OrmFactory.eINSTANCE.createXmlAttributeOverrideImpl());
-		AttributeOverride attributeOverride = embeddedMapping.specifiedAttributeOverrides().next();
-		attributeOverride.setName("override");
-		attributeOverride.getColumn().setSpecifiedName("OVERRIDE_COLUMN");
-		assertFalse(embeddedMapping.isDefault());
-		
-		ormPersistentAttribute.setSpecifiedMappingKey(MappingKeys.EMBEDDED_ID_ATTRIBUTE_MAPPING_KEY);
-		assertTrue(ormPersistentAttribute.getMapping() instanceof EmbeddedIdMapping);
-		assertEquals(1, ormPersistentType.specifiedAttributesSize());
-		assertEquals(ormPersistentAttribute, ormPersistentType.specifiedAttributes().next());
-		assertEquals("embedded", ormPersistentAttribute.getMapping().getName());
-		attributeOverride = ((EmbeddedIdMapping) ormPersistentAttribute.getMapping()).specifiedAttributeOverrides().next();
-		assertEquals("override", attributeOverride.getName());
-		assertEquals("OVERRIDE_COLUMN", attributeOverride.getColumn().getSpecifiedName());
-	}
-	
-	public void testEmbeddedMorphToOneToOneMapping() throws Exception {
-		createTestEntityEmbeddedMapping();
-		OrmPersistentType ormPersistentType = getEntityMappings().addPersistentType(MappingKeys.ENTITY_TYPE_MAPPING_KEY, FULLY_QUALIFIED_TYPE_NAME);
-		OrmPersistentAttribute ormPersistentAttribute = ormPersistentType.addSpecifiedPersistentAttribute(MappingKeys.EMBEDDED_ATTRIBUTE_MAPPING_KEY, "embedded");
-		
-		EmbeddedMapping embeddedMapping = (EmbeddedMapping) ormPersistentAttribute.getMapping();
-		assertFalse(embeddedMapping.isDefault());
-		XmlEmbedded embeddedResource = getXmlEntityMappings().getEntities().get(0).getAttributes().getEmbeddeds().get(0);
-		embeddedResource.getAttributeOverrides().add(OrmFactory.eINSTANCE.createXmlAttributeOverrideImpl());
-		AttributeOverride attributeOverride = embeddedMapping.specifiedAttributeOverrides().next();
-		attributeOverride.setName("override");
-		attributeOverride.getColumn().setSpecifiedName("OVERRIDE_COLUMN");
-		assertFalse(embeddedMapping.isDefault());
-		
-		ormPersistentAttribute.setSpecifiedMappingKey(MappingKeys.ONE_TO_ONE_ATTRIBUTE_MAPPING_KEY);
-		assertEquals(1, ormPersistentType.specifiedAttributesSize());
-		assertEquals(ormPersistentAttribute, ormPersistentType.specifiedAttributes().next());
-		assertTrue(ormPersistentAttribute.getMapping() instanceof OneToOneMapping);
-		assertEquals("embedded", ormPersistentAttribute.getMapping().getName());
-	}
-	
-	public void testEmbeddedMorphToOneToManyMapping() throws Exception {
-		createTestEntityEmbeddedMapping();
-		OrmPersistentType ormPersistentType = getEntityMappings().addPersistentType(MappingKeys.ENTITY_TYPE_MAPPING_KEY, FULLY_QUALIFIED_TYPE_NAME);
-		OrmPersistentAttribute ormPersistentAttribute = ormPersistentType.addSpecifiedPersistentAttribute(MappingKeys.EMBEDDED_ATTRIBUTE_MAPPING_KEY, "embedded");
-		
-		EmbeddedMapping embeddedMapping = (EmbeddedMapping) ormPersistentAttribute.getMapping();
-		assertFalse(embeddedMapping.isDefault());
-		XmlEmbedded embeddedResource = getXmlEntityMappings().getEntities().get(0).getAttributes().getEmbeddeds().get(0);
-		embeddedResource.getAttributeOverrides().add(OrmFactory.eINSTANCE.createXmlAttributeOverrideImpl());
-		AttributeOverride attributeOverride = embeddedMapping.specifiedAttributeOverrides().next();
-		attributeOverride.setName("override");
-		attributeOverride.getColumn().setSpecifiedName("OVERRIDE_COLUMN");
-		assertFalse(embeddedMapping.isDefault());
-		
-		ormPersistentAttribute.setSpecifiedMappingKey(MappingKeys.ONE_TO_MANY_ATTRIBUTE_MAPPING_KEY);
-		assertEquals(1, ormPersistentType.specifiedAttributesSize());
-		assertEquals(ormPersistentAttribute, ormPersistentType.specifiedAttributes().next());
-		assertTrue(ormPersistentAttribute.getMapping() instanceof OneToManyMapping);
-		assertEquals("embedded", ormPersistentAttribute.getMapping().getName());
-	}
-	
-	public void testEmbeddedMorphToManyToOneMapping() throws Exception {
-		createTestEntityEmbeddedMapping();
-		OrmPersistentType ormPersistentType = getEntityMappings().addPersistentType(MappingKeys.ENTITY_TYPE_MAPPING_KEY, FULLY_QUALIFIED_TYPE_NAME);
-		OrmPersistentAttribute ormPersistentAttribute = ormPersistentType.addSpecifiedPersistentAttribute(MappingKeys.EMBEDDED_ATTRIBUTE_MAPPING_KEY, "embedded");
-		
-		EmbeddedMapping embeddedMapping = (EmbeddedMapping) ormPersistentAttribute.getMapping();
-		assertFalse(embeddedMapping.isDefault());
-		XmlEmbedded embeddedResource = getXmlEntityMappings().getEntities().get(0).getAttributes().getEmbeddeds().get(0);
-		embeddedResource.getAttributeOverrides().add(OrmFactory.eINSTANCE.createXmlAttributeOverrideImpl());
-		AttributeOverride attributeOverride = embeddedMapping.specifiedAttributeOverrides().next();
-		attributeOverride.setName("override");
-		attributeOverride.getColumn().setSpecifiedName("OVERRIDE_COLUMN");
-		assertFalse(embeddedMapping.isDefault());
-		
-		ormPersistentAttribute.setSpecifiedMappingKey(MappingKeys.MANY_TO_ONE_ATTRIBUTE_MAPPING_KEY);
-		assertEquals(1, ormPersistentType.specifiedAttributesSize());
-		assertEquals(ormPersistentAttribute, ormPersistentType.specifiedAttributes().next());
-		assertTrue(ormPersistentAttribute.getMapping() instanceof ManyToOneMapping);
-		assertEquals("embedded", ormPersistentAttribute.getMapping().getName());
-	}
-	
-	public void testEmbeddedMorphToManyToManyMapping() throws Exception {
-		createTestEntityEmbeddedMapping();
-		OrmPersistentType ormPersistentType = getEntityMappings().addPersistentType(MappingKeys.ENTITY_TYPE_MAPPING_KEY, FULLY_QUALIFIED_TYPE_NAME);
-		OrmPersistentAttribute ormPersistentAttribute = ormPersistentType.addSpecifiedPersistentAttribute(MappingKeys.EMBEDDED_ATTRIBUTE_MAPPING_KEY, "embedded");
-		
-		EmbeddedMapping embeddedMapping = (EmbeddedMapping) ormPersistentAttribute.getMapping();
-		assertFalse(embeddedMapping.isDefault());
-		XmlEmbedded embeddedResource = getXmlEntityMappings().getEntities().get(0).getAttributes().getEmbeddeds().get(0);
-		embeddedResource.getAttributeOverrides().add(OrmFactory.eINSTANCE.createXmlAttributeOverrideImpl());
-		AttributeOverride attributeOverride = embeddedMapping.specifiedAttributeOverrides().next();
-		attributeOverride.setName("override");
-		attributeOverride.getColumn().setSpecifiedName("OVERRIDE_COLUMN");
-		assertFalse(embeddedMapping.isDefault());
-		
-		ormPersistentAttribute.setSpecifiedMappingKey(MappingKeys.MANY_TO_MANY_ATTRIBUTE_MAPPING_KEY);
-		assertTrue(ormPersistentAttribute.getMapping() instanceof ManyToManyMapping);
-		assertEquals("embedded", ormPersistentAttribute.getMapping().getName());
-	}
-
-}
\ No newline at end of file
diff --git a/jpa/tests/org.eclipse.jpt.core.tests/src/org/eclipse/jpt/core/tests/internal/context/orm/OrmEntityTests.java b/jpa/tests/org.eclipse.jpt.core.tests/src/org/eclipse/jpt/core/tests/internal/context/orm/OrmEntityTests.java
deleted file mode 100644
index 7e46469..0000000
--- a/jpa/tests/org.eclipse.jpt.core.tests/src/org/eclipse/jpt/core/tests/internal/context/orm/OrmEntityTests.java
+++ /dev/null
@@ -1,2371 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.core.tests.internal.context.orm;
-
-import java.util.Iterator;
-import java.util.ListIterator;
-import org.eclipse.jdt.core.ICompilationUnit;
-import org.eclipse.jpt.core.JptCorePlugin;
-import org.eclipse.jpt.core.MappingKeys;
-import org.eclipse.jpt.core.context.AccessType;
-import org.eclipse.jpt.core.context.AttributeOverride;
-import org.eclipse.jpt.core.context.BasicMapping;
-import org.eclipse.jpt.core.context.DiscriminatorType;
-import org.eclipse.jpt.core.context.Entity;
-import org.eclipse.jpt.core.context.InheritanceType;
-import org.eclipse.jpt.core.context.PersistentAttribute;
-import org.eclipse.jpt.core.context.PersistentType;
-import org.eclipse.jpt.core.context.java.JavaEntity;
-import org.eclipse.jpt.core.context.java.JavaPrimaryKeyJoinColumn;
-import org.eclipse.jpt.core.context.java.JavaSecondaryTable;
-import org.eclipse.jpt.core.context.orm.OrmAssociationOverride;
-import org.eclipse.jpt.core.context.orm.OrmAttributeOverride;
-import org.eclipse.jpt.core.context.orm.OrmBasicMapping;
-import org.eclipse.jpt.core.context.orm.OrmEmbeddable;
-import org.eclipse.jpt.core.context.orm.OrmEntity;
-import org.eclipse.jpt.core.context.orm.OrmIdMapping;
-import org.eclipse.jpt.core.context.orm.OrmMappedSuperclass;
-import org.eclipse.jpt.core.context.orm.OrmNamedNativeQuery;
-import org.eclipse.jpt.core.context.orm.OrmNamedQuery;
-import org.eclipse.jpt.core.context.orm.OrmPersistentAttribute;
-import org.eclipse.jpt.core.context.orm.OrmPersistentType;
-import org.eclipse.jpt.core.context.orm.OrmPrimaryKeyJoinColumn;
-import org.eclipse.jpt.core.context.orm.OrmSecondaryTable;
-import org.eclipse.jpt.core.resource.java.JPA;
-import org.eclipse.jpt.core.resource.orm.OrmFactory;
-import org.eclipse.jpt.core.resource.orm.XmlEmbeddable;
-import org.eclipse.jpt.core.resource.orm.XmlEntity;
-import org.eclipse.jpt.core.resource.orm.XmlMappedSuperclass;
-import org.eclipse.jpt.core.resource.persistence.PersistenceFactory;
-import org.eclipse.jpt.core.resource.persistence.XmlMappingFileRef;
-import org.eclipse.jpt.core.tests.internal.context.ContextModelTestCase;
-import org.eclipse.jpt.core.tests.internal.projects.TestJavaProject.SourceWriter;
-import org.eclipse.jpt.utility.internal.CollectionTools;
-import org.eclipse.jpt.utility.internal.iterators.ArrayIterator;
-
-@SuppressWarnings("nls")
-public class OrmEntityTests extends ContextModelTestCase
-{
-	
-	protected static final String CHILD_TYPE_NAME = "AnnotationTestTypeChild";
-	protected static final String FULLY_QUALIFIED_CHILD_TYPE_NAME = PACKAGE_NAME + "." + CHILD_TYPE_NAME;
-
-	public OrmEntityTests(String name) {
-		super(name);
-	}
-	
-	@Override
-	protected void setUp() throws Exception {
-		super.setUp();
-		XmlMappingFileRef mappingFileRef = PersistenceFactory.eINSTANCE.createXmlMappingFileRef();
-		mappingFileRef.setFileName(JptCorePlugin.DEFAULT_ORM_XML_FILE_PATH);
-		getXmlPersistenceUnit().getMappingFiles().add(mappingFileRef);
-		getPersistenceXmlResource().save(null);
-	}
-	
-	private ICompilationUnit createTestEntityDefaultFieldAccess() throws Exception {
-		return this.createTestType(new DefaultAnnotationWriter() {
-			@Override
-			public Iterator<String> imports() {
-				return new ArrayIterator<String>(JPA.ENTITY);
-			}
-			@Override
-			public void appendTypeAnnotationTo(StringBuilder sb) {
-				sb.append("@Entity");
-			}
-		});
-	}
-	
-	private ICompilationUnit createTestEntityFieldAccess() throws Exception {
-		return this.createTestType(new DefaultAnnotationWriter() {
-			@Override
-			public Iterator<String> imports() {
-				return new ArrayIterator<String>(JPA.ENTITY, JPA.ID);
-			}
-			@Override
-			public void appendTypeAnnotationTo(StringBuilder sb) {
-				sb.append("@Entity");
-			}
-			@Override
-			public void appendIdFieldAnnotationTo(StringBuilder sb) {
-				sb.append("@Id");
-			}
-		});
-	}
-	
-	private ICompilationUnit createTestEntityPropertyAccess() throws Exception {
-		return this.createTestType(new DefaultAnnotationWriter() {
-			@Override
-			public Iterator<String> imports() {
-				return new ArrayIterator<String>(JPA.ENTITY, JPA.ID);
-			}
-			@Override
-			public void appendTypeAnnotationTo(StringBuilder sb) {
-				sb.append("@Entity");
-			}
-			@Override
-			public void appendGetIdMethodAnnotationTo(StringBuilder sb) {
-				sb.append("@Id");
-			}
-		});
-	}
-
-	private void createTestSubType() throws Exception {
-		SourceWriter sourceWriter = new SourceWriter() {
-			public void appendSourceTo(StringBuilder sb) {
-				sb.append(CR);
-					sb.append("import ");
-					sb.append(JPA.ENTITY);
-					sb.append(";");
-					sb.append(CR);
-				sb.append("@Entity");
-				sb.append(CR);
-				sb.append("public class ").append(CHILD_TYPE_NAME).append(" ");
-				sb.append("extends ").append(TYPE_NAME).append(" ");
-				sb.append("{}").append(CR);
-			}
-		};
-		this.javaProject.createCompilationUnit(PACKAGE_NAME, "AnnotationTestTypeChild.java", sourceWriter);
-	}
-	
-	private void createTestSubTypeUnmapped() throws Exception {
-		SourceWriter sourceWriter = new SourceWriter() {
-			public void appendSourceTo(StringBuilder sb) {
-				sb.append(CR);
-				sb.append("public class ").append(CHILD_TYPE_NAME).append(" ");
-				sb.append("extends ").append(TYPE_NAME).append(" ");
-				sb.append("{}").append(CR);
-			}
-		};
-		this.javaProject.createCompilationUnit(PACKAGE_NAME, "AnnotationTestTypeChild.java", sourceWriter);
-	}
-
-
-	private ICompilationUnit createTestMappedSuperclass() throws Exception {
-		return this.createTestType(new DefaultAnnotationWriter() {
-			@Override
-			public Iterator<String> imports() {
-				return new ArrayIterator<String>(JPA.MAPPED_SUPERCLASS, JPA.ONE_TO_ONE);
-			}
-			@Override
-			public void appendTypeAnnotationTo(StringBuilder sb) {
-				sb.append("@MappedSuperclass");
-			}
-			
-			@Override
-			public void appendGetIdMethodAnnotationTo(StringBuilder sb) {
-				sb.append("private String foo;").append(CR);
-				sb.append(CR);
-				sb.append("    @OneToOne");
-				sb.append(CR);
-				sb.append("    private int address;").append(CR);
-				sb.append(CR);
-				sb.append("    @OneToOne");
-				sb.append(CR);
-				sb.append("    private int address2;").append(CR);
-				sb.append(CR);
-				sb.append("    ");
-			}
-		});
-	}
-	
-	private void createTestAbstractType() throws Exception {
-		SourceWriter sourceWriter = new SourceWriter() {
-			public void appendSourceTo(StringBuilder sb) {
-				sb.append(CR);
-				sb.append("public abstract class ").append(TYPE_NAME).append(" ");
-				sb.append("{}").append(CR);
-			}
-		};
-		this.javaProject.createCompilationUnit(PACKAGE_NAME, FILE_NAME, sourceWriter);
-	}
-
-	private ICompilationUnit createAbstractTestEntity() throws Exception {
-		return this.createTestType(new DefaultAnnotationWriter() {
-			@Override
-			public Iterator<String> imports() {
-				return new ArrayIterator<String>(JPA.ENTITY, JPA.INHERITANCE, JPA.INHERITANCE_TYPE);
-			}
-			@Override
-			public void appendTypeAnnotationTo(StringBuilder sb) {
-				sb.append("@Entity").append(CR);
-				sb.append("@Inheritance(strategy=InheritanceType.TABLE_PER_CLASS)").append(CR);
-				sb.append("abstract");
-			}
-		});
-	}
-	
-	private ICompilationUnit createTestAbstractEntityTablePerClass() throws Exception {
-		return this.createTestType(new DefaultAnnotationWriter() {
-			@Override
-			public Iterator<String> imports() {
-				return new ArrayIterator<String>(JPA.ENTITY, JPA.INHERITANCE, JPA.INHERITANCE_TYPE, JPA.ONE_TO_ONE);
-			}
-			@Override
-			public void appendTypeAnnotationTo(StringBuilder sb) {
-				sb.append("@Entity").append(CR);
-				sb.append("@Inheritance(strategy=InheritanceType.TABLE_PER_CLASS)");
-				sb.append("abstract");
-			}
-			
-			@Override
-			public void appendGetIdMethodAnnotationTo(StringBuilder sb) {
-				sb.append("private String foo;").append(CR);
-				sb.append(CR);
-				sb.append("    @OneToOne");
-				sb.append(CR);
-				sb.append("    private int address;").append(CR);
-				sb.append(CR);
-				sb.append("    @OneToOne");
-				sb.append(CR);
-				sb.append("    private int address2;").append(CR);
-				sb.append(CR);
-				sb.append("    ");
-			}
-		});
-	}
-
-	public void testUpdateSpecifiedName() throws Exception {
-		OrmPersistentType ormPersistentType = getEntityMappings().addPersistentType(MappingKeys.ENTITY_TYPE_MAPPING_KEY, "model.foo");
-		OrmEntity ormEntity = (OrmEntity) ormPersistentType.getMapping();
-		XmlEntity entityResource = getXmlEntityMappings().getEntities().get(0);
-		assertNull(ormEntity.getSpecifiedName());
-		assertNull(entityResource.getName());
-		
-		//set name in the resource model, verify context model updated
-		entityResource.setName("foo");
-		assertEquals("foo", ormEntity.getSpecifiedName());
-		assertEquals("foo", entityResource.getName());
-	
-		//set name to null in the resource model
-		entityResource.setName(null);
-		assertNull(ormEntity.getSpecifiedName());
-		assertNull(entityResource.getName());
-	}
-	
-	public void testModifySpecifiedName() throws Exception {
-		OrmPersistentType ormPersistentType = getEntityMappings().addPersistentType(MappingKeys.ENTITY_TYPE_MAPPING_KEY, "model.foo");
-		OrmEntity ormEntity = (OrmEntity) ormPersistentType.getMapping();
-		XmlEntity entityResource = getXmlEntityMappings().getEntities().get(0);
-		assertNull(ormEntity.getSpecifiedName());
-		assertNull(entityResource.getName());
-		
-		//set name in the context model, verify resource model modified
-		ormEntity.setSpecifiedName("foo");
-		assertEquals("foo", ormEntity.getSpecifiedName());
-		assertEquals("foo", entityResource.getName());
-		
-		//set name to null in the context model
-		ormEntity.setSpecifiedName(null);
-		assertNull(ormEntity.getSpecifiedName());
-		assertNull(entityResource.getName());
-	}
-
-	public void testUpdateDefaultName() throws Exception {
-		createTestEntityFieldAccess();
-		
-		OrmPersistentType ormPersistentType = getEntityMappings().addPersistentType(MappingKeys.ENTITY_TYPE_MAPPING_KEY, FULLY_QUALIFIED_TYPE_NAME);
-		OrmEntity ormEntity = (OrmEntity) ormPersistentType.getMapping();
-		XmlEntity entityResource = getXmlEntityMappings().getEntities().get(0);
-		assertEquals(TYPE_NAME, ormEntity.getDefaultName());
-		
-		ormEntity.getJavaEntity().setSpecifiedName("Foo");
-		//xml default entity name comes from java
-		assertEquals("Foo", ormEntity.getDefaultName());
-		
-		//set class in the resource model, verify context model updated
-		entityResource.setClassName("com.Bar");
-		assertEquals("Bar", ormEntity.getDefaultName());
-		
-		//set class to null in the resource model
-		entityResource.setClassName(null);
-		assertNull(ormEntity.getDefaultName());
-		
-		entityResource.setClassName(FULLY_QUALIFIED_TYPE_NAME);
-		assertEquals("Foo", ormEntity.getDefaultName());
-		entityResource.setMetadataComplete(Boolean.TRUE);
-		assertEquals(TYPE_NAME, ormEntity.getDefaultName());
-		
-		ormEntity.getJavaEntity().setSpecifiedName("Foo1");
-		assertEquals(TYPE_NAME, ormEntity.getDefaultName());
-		
-		entityResource.setMetadataComplete(null);
-		assertEquals("Foo1", ormEntity.getDefaultName());
-	}
-	
-	public void testUpdateName() throws Exception {
-		OrmPersistentType ormPersistentType = getEntityMappings().addPersistentType(MappingKeys.ENTITY_TYPE_MAPPING_KEY, "model.Foo");
-		OrmEntity ormEntity = (OrmEntity) ormPersistentType.getMapping();
-		XmlEntity entityResource = getXmlEntityMappings().getEntities().get(0);
-		assertEquals("Foo", ormEntity.getName());
-		
-		//set class in the resource model, verify context model updated
-		entityResource.setClassName("com.Bar");
-		assertEquals("Bar", ormEntity.getName());
-		
-		entityResource.setName("Baz");
-		assertEquals("Baz", ormEntity.getName());
-		
-		//set class to null in the resource model
-		entityResource.setClassName(null);
-		assertEquals("Baz", ormEntity.getName());
-		
-		entityResource.setName(null);
-		assertNull(ormEntity.getName());
-	}
-
-	public void testUpdateClass() throws Exception {
-		OrmPersistentType ormPersistentType = getEntityMappings().addPersistentType(MappingKeys.ENTITY_TYPE_MAPPING_KEY, "model.Foo");
-		OrmEntity ormEntity = (OrmEntity) ormPersistentType.getMapping();
-		XmlEntity entityResource = getXmlEntityMappings().getEntities().get(0);
-		assertEquals("model.Foo", ormEntity.getClass_());
-		assertEquals("model.Foo", entityResource.getClassName());
-		
-		//set class in the resource model, verify context model updated
-		entityResource.setClassName("com.Bar");
-		assertEquals("com.Bar", ormEntity.getClass_());
-		assertEquals("com.Bar", entityResource.getClassName());
-	
-		//set class to null in the resource model
-		entityResource.setClassName(null);
-		assertNull(ormEntity.getClass_());
-		assertNull(entityResource.getClassName());
-	}
-	
-	public void testModifyClass() throws Exception {
-		OrmPersistentType ormPersistentType = getEntityMappings().addPersistentType(MappingKeys.ENTITY_TYPE_MAPPING_KEY, "model.Foo");
-		OrmEntity ormEntity = (OrmEntity) ormPersistentType.getMapping();
-		XmlEntity entityResource = getXmlEntityMappings().getEntities().get(0);
-		assertEquals("model.Foo", ormEntity.getClass_());
-		assertEquals("model.Foo", entityResource.getClassName());
-		
-		//set class in the context model, verify resource model modified
-		ormEntity.setClass("com.Bar");
-		assertEquals("com.Bar", ormEntity.getClass_());
-		assertEquals("com.Bar", entityResource.getClassName());
-		
-		//set class to null in the context model
-		ormEntity.setClass(null);
-		assertNull(ormEntity.getClass_());
-		assertNull(entityResource.getClassName());
-	}
-	//TODO add tests for setting the className when the package is set on entity-mappings
-	
-	public void testUpdateSpecifiedAccess() throws Exception {
-		OrmPersistentType ormPersistentType = getEntityMappings().addPersistentType(MappingKeys.ENTITY_TYPE_MAPPING_KEY, "model.Foo");
-		XmlEntity entityResource = getXmlEntityMappings().getEntities().get(0);
-		assertNull(ormPersistentType.getSpecifiedAccess());
-		assertNull(entityResource.getAccess());
-		
-		//set access in the resource model, verify context model updated
-		entityResource.setAccess(org.eclipse.jpt.core.resource.orm.AccessType.FIELD);
-		assertEquals(AccessType.FIELD, ormPersistentType.getSpecifiedAccess());
-		assertEquals(org.eclipse.jpt.core.resource.orm.AccessType.FIELD, entityResource.getAccess());
-	
-		//set access to null in the resource model
-		entityResource.setAccess(null);
-		assertNull(ormPersistentType.getSpecifiedAccess());
-		assertNull(entityResource.getAccess());
-	}
-	
-	public void testModifySpecifiedAccess() throws Exception {
-		OrmPersistentType ormPersistentType = getEntityMappings().addPersistentType(MappingKeys.ENTITY_TYPE_MAPPING_KEY, "model.Foo");
-		XmlEntity entityResource = getXmlEntityMappings().getEntities().get(0);
-		assertNull(ormPersistentType.getSpecifiedAccess());
-		assertNull(entityResource.getAccess());
-		
-		//set access in the context model, verify resource model modified
-		ormPersistentType.setSpecifiedAccess(AccessType.PROPERTY);
-		assertEquals(AccessType.PROPERTY, ormPersistentType.getSpecifiedAccess());
-		assertEquals(org.eclipse.jpt.core.resource.orm.AccessType.PROPERTY, entityResource.getAccess());
-		
-		//set access to null in the context model
-		ormPersistentType.setSpecifiedAccess(null);
-		assertNull(ormPersistentType.getSpecifiedAccess());
-		assertNull(entityResource.getAccess());
-	}
-	
-	public void testUpdateDefaultAccessFromPersistenceUnitDefaults() throws Exception {
-		OrmPersistentType ormPersistentType = getEntityMappings().addPersistentType(MappingKeys.ENTITY_TYPE_MAPPING_KEY, "model.Foo");
-		XmlEntity entityResource = getXmlEntityMappings().getEntities().get(0);
-		assertNull(ormPersistentType.getSpecifiedAccess());
-		assertEquals(AccessType.FIELD, ormPersistentType.getDefaultAccess());
-		assertNull(entityResource.getAccess());
-		
-		getXmlEntityMappings().setPersistenceUnitMetadata(OrmFactory.eINSTANCE.createXmlPersistenceUnitMetadata());
-		getXmlEntityMappings().getPersistenceUnitMetadata().setPersistenceUnitDefaults(OrmFactory.eINSTANCE.createXmlPersistenceUnitDefaults());
-		getXmlEntityMappings().getPersistenceUnitMetadata().getPersistenceUnitDefaults().setAccess(org.eclipse.jpt.core.resource.orm.AccessType.FIELD);
-		assertEquals(AccessType.FIELD, ormPersistentType.getDefaultAccess());
-		assertNull(ormPersistentType.getSpecifiedAccess());
-		assertNull(entityResource.getAccess());
-		
-		getXmlEntityMappings().getPersistenceUnitMetadata().getPersistenceUnitDefaults().setAccess(org.eclipse.jpt.core.resource.orm.AccessType.PROPERTY);
-		assertEquals(AccessType.PROPERTY, ormPersistentType.getDefaultAccess());
-		assertNull(ormPersistentType.getSpecifiedAccess());
-		assertNull(entityResource.getAccess());
-		
-		getXmlEntityMappings().getPersistenceUnitMetadata().getPersistenceUnitDefaults().setAccess(null);
-		assertNull(ormPersistentType.getSpecifiedAccess());
-		assertEquals(AccessType.FIELD, ormPersistentType.getDefaultAccess());
-		assertNull(entityResource.getAccess());
-	}
-	
-	public void testUpdateDefaultAccessFromJava() throws Exception {
-		createTestEntityDefaultFieldAccess();
-
-		OrmPersistentType ormPersistentType = getEntityMappings().addPersistentType(MappingKeys.ENTITY_TYPE_MAPPING_KEY, FULLY_QUALIFIED_TYPE_NAME);
-		//java has no annotations, defaultAccess in xml is FIELD anyway
-		assertEquals(AccessType.FIELD, ormPersistentType.getDefaultAccess());
-		
-		getEntityMappings().setSpecifiedAccess(AccessType.FIELD);
-		getEntityMappings().getPersistenceUnitMetadata().getPersistenceUnitDefaults().setAccess(AccessType.PROPERTY);		
-		//entityMappings access wins over persistence-unit-defaults access
-		assertEquals(AccessType.FIELD, ormPersistentType.getDefaultAccess());
-		
-		getEntityMappings().setSpecifiedAccess(null);		
-		//persistence-unit-defaults access used now
-		assertEquals(AccessType.PROPERTY, ormPersistentType.getDefaultAccess());
-		
-		getEntityMappings().getPersistenceUnitMetadata().getPersistenceUnitDefaults().setAccess(null);
-		assertEquals(AccessType.FIELD, ormPersistentType.getDefaultAccess());
-		
-		ormPersistentType.getJavaPersistentType().getAttributeNamed("id").setSpecifiedMappingKey(MappingKeys.ID_ATTRIBUTE_MAPPING_KEY);
-		//java has annotations on fields now, that should win in all cases
-		assertEquals(AccessType.FIELD, ormPersistentType.getDefaultAccess());
-		
-		getEntityMappings().setSpecifiedAccess(AccessType.PROPERTY);
-		getEntityMappings().getPersistenceUnitMetadata().getPersistenceUnitDefaults().setAccess(AccessType.PROPERTY);
-		assertEquals(AccessType.FIELD, ormPersistentType.getDefaultAccess());
-
-		ormPersistentType.getJavaPersistentType().getAttributeNamed("id").setSpecifiedMappingKey(MappingKeys.NULL_ATTRIBUTE_MAPPING_KEY);
-		assertEquals(AccessType.PROPERTY, ormPersistentType.getDefaultAccess());
-	}
-
-	public void testUpdateDefaultAccessFromJavaFieldAccess() throws Exception {
-		createTestEntityFieldAccess();
-
-		OrmPersistentType ormPersistentType = getEntityMappings().addPersistentType(MappingKeys.ENTITY_TYPE_MAPPING_KEY, FULLY_QUALIFIED_TYPE_NAME);
-		OrmEntity ormEntity = (OrmEntity) ormPersistentType.getMapping();
-		assertEquals(AccessType.FIELD, ormPersistentType.getDefaultAccess());
-		
-		ormEntity.setSpecifiedMetadataComplete(Boolean.TRUE);
-		assertEquals(AccessType.FIELD, ormPersistentType.getDefaultAccess());
-		
-		ormEntity.setSpecifiedMetadataComplete(Boolean.FALSE);
-		assertEquals(AccessType.FIELD, ormPersistentType.getDefaultAccess());
-
-		getEntityMappings().getPersistenceUnitMetadata().setXmlMappingMetadataComplete(true);
-		assertEquals(AccessType.FIELD, ormPersistentType.getDefaultAccess());
-		
-		ormEntity.setSpecifiedMetadataComplete(null);
-		assertEquals(AccessType.FIELD, ormPersistentType.getDefaultAccess());
-		
-		getEntityMappings().getPersistenceUnitMetadata().setXmlMappingMetadataComplete(false);
-		assertEquals(AccessType.FIELD, ormPersistentType.getDefaultAccess());
-	}
-	
-	public void testUpdateDefaultAccessFromJavaPropertyAccess() throws Exception {
-		createTestEntityPropertyAccess();
-
-		OrmPersistentType ormPersistentType = getEntityMappings().addPersistentType(MappingKeys.ENTITY_TYPE_MAPPING_KEY, FULLY_QUALIFIED_TYPE_NAME);
-		OrmEntity ormEntity = (OrmEntity) ormPersistentType.getMapping();
-		assertEquals(AccessType.PROPERTY, ormPersistentType.getDefaultAccess());
-		
-		ormEntity.setSpecifiedMetadataComplete(Boolean.TRUE);
-		assertEquals(AccessType.FIELD, ormPersistentType.getDefaultAccess());
-		
-		ormEntity.setSpecifiedMetadataComplete(Boolean.FALSE);
-		assertEquals(AccessType.PROPERTY, ormPersistentType.getDefaultAccess());
-
-		getEntityMappings().getPersistenceUnitMetadata().setXmlMappingMetadataComplete(true);
-		assertEquals(AccessType.FIELD, ormPersistentType.getDefaultAccess());
-		
-		ormEntity.setSpecifiedMetadataComplete(null);
-		assertEquals(AccessType.FIELD, ormPersistentType.getDefaultAccess());
-		
-		getEntityMappings().getPersistenceUnitMetadata().setXmlMappingMetadataComplete(false);
-		assertEquals(AccessType.PROPERTY, ormPersistentType.getDefaultAccess());
-	}
-	
-	public void testUpdateDefaultAccessNoUnderlyingJava() throws Exception {
-		OrmPersistentType ormPersistentType = getEntityMappings().addPersistentType(MappingKeys.ENTITY_TYPE_MAPPING_KEY, "model.Foo");
-		assertEquals(AccessType.FIELD, ormPersistentType.getDefaultAccess());
-	}
-		
-	public void testUpdateSpecifiedMetadataComplete() throws Exception {
-		OrmPersistentType ormPersistentType = getEntityMappings().addPersistentType(MappingKeys.ENTITY_TYPE_MAPPING_KEY, "model.Foo");
-		OrmEntity ormEntity = (OrmEntity) ormPersistentType.getMapping();
-		XmlEntity entityResource = getXmlEntityMappings().getEntities().get(0);
-		assertNull(ormEntity.getSpecifiedMetadataComplete());
-		assertNull(entityResource.getMetadataComplete());
-		
-		//set metadata-complete in the resource model, verify context model updated
-		entityResource.setMetadataComplete(Boolean.TRUE);
-		assertEquals(Boolean.TRUE, ormEntity.getSpecifiedMetadataComplete());
-		assertEquals(Boolean.TRUE, entityResource.getMetadataComplete());
-	
-		//set access to false in the resource model
-		entityResource.setMetadataComplete(Boolean.FALSE);
-		assertEquals(Boolean.FALSE, ormEntity.getSpecifiedMetadataComplete());
-		assertEquals(Boolean.FALSE, entityResource.getMetadataComplete());
-		
-		entityResource.setMetadataComplete(null);
-		assertNull(ormEntity.getSpecifiedMetadataComplete());
-		assertNull(entityResource.getMetadataComplete());
-	}
-	
-	public void testModifySpecifiedMetadataComplete() throws Exception {
-		OrmPersistentType ormPersistentType = getEntityMappings().addPersistentType(MappingKeys.ENTITY_TYPE_MAPPING_KEY, "model.Foo");
-		OrmEntity ormEntity = (OrmEntity) ormPersistentType.getMapping();
-		XmlEntity entityResource = getXmlEntityMappings().getEntities().get(0);
-		assertNull(ormEntity.getSpecifiedMetadataComplete());
-		assertNull(entityResource.getMetadataComplete());
-		
-		//set access in the context model, verify resource model modified
-		ormEntity.setSpecifiedMetadataComplete(Boolean.TRUE);
-		assertTrue(ormEntity.getSpecifiedMetadataComplete().booleanValue());
-		assertTrue(entityResource.getMetadataComplete().booleanValue());
-		
-		//set access to null in the context model
-		ormEntity.setSpecifiedMetadataComplete(Boolean.FALSE);
-		assertFalse(ormEntity.getSpecifiedMetadataComplete().booleanValue());
-		assertFalse(entityResource.getMetadataComplete().booleanValue());
-		
-		ormEntity.setSpecifiedMetadataComplete(null);
-		assertNull(ormEntity.getSpecifiedMetadataComplete());
-		assertNull(entityResource.getMetadataComplete());
-	}
-	
-	public void testUpdateDefaultMetadataComplete() throws Exception {
-		OrmPersistentType ormPersistentType = getEntityMappings().addPersistentType(MappingKeys.ENTITY_TYPE_MAPPING_KEY, "model.Foo");
-		OrmEntity ormEntity = (OrmEntity) ormPersistentType.getMapping();
-		XmlEntity entityResource = getXmlEntityMappings().getEntities().get(0);
-		assertNull(ormEntity.getSpecifiedMetadataComplete());
-		assertFalse(ormEntity.isDefaultMetadataComplete());
-		assertNull(entityResource.getMetadataComplete());
-		
-		getXmlEntityMappings().setPersistenceUnitMetadata(OrmFactory.eINSTANCE.createXmlPersistenceUnitMetadata());
-		getXmlEntityMappings().getPersistenceUnitMetadata().setXmlMappingMetadataComplete(true);
-		assertTrue(ormEntity.isDefaultMetadataComplete());
-		assertNull(ormEntity.getSpecifiedMetadataComplete());
-		assertNull(entityResource.getMetadataComplete());
-		
-		getXmlEntityMappings().getPersistenceUnitMetadata().setXmlMappingMetadataComplete(false);
-		assertNull(ormEntity.getSpecifiedMetadataComplete());
-		assertFalse(ormEntity.isDefaultMetadataComplete());
-		assertNull(entityResource.getMetadataComplete());
-		
-		getXmlEntityMappings().getPersistenceUnitMetadata().setXmlMappingMetadataComplete(true);
-		ormEntity.setSpecifiedMetadataComplete(Boolean.FALSE);
-		assertEquals(Boolean.FALSE, ormEntity.getSpecifiedMetadataComplete());
-		assertTrue(ormEntity.isDefaultMetadataComplete());
-		assertTrue(ormEntity.isMetadataComplete());
-	}
-
-	public void testUpdateMetadataComplete() throws Exception {
-		OrmPersistentType ormPersistentType = getEntityMappings().addPersistentType(MappingKeys.ENTITY_TYPE_MAPPING_KEY, "model.Foo");
-		OrmEntity ormEntity = (OrmEntity) ormPersistentType.getMapping();
-		XmlEntity entityResource = getXmlEntityMappings().getEntities().get(0);
-		assertNull(ormEntity.getSpecifiedMetadataComplete());
-		assertFalse(ormEntity.isMetadataComplete());
-		assertNull(entityResource.getMetadataComplete());
-		
-		getXmlEntityMappings().setPersistenceUnitMetadata(OrmFactory.eINSTANCE.createXmlPersistenceUnitMetadata());
-		getXmlEntityMappings().getPersistenceUnitMetadata().setXmlMappingMetadataComplete(true);
-		assertTrue(ormEntity.isMetadataComplete());
-		assertNull(ormEntity.getSpecifiedMetadataComplete());
-		assertNull(entityResource.getMetadataComplete());
-		
-		getXmlEntityMappings().getPersistenceUnitMetadata().setXmlMappingMetadataComplete(false);
-		assertFalse(ormEntity.isMetadataComplete());
-		assertNull(ormEntity.getSpecifiedMetadataComplete());
-		assertNull(entityResource.getMetadataComplete());
-	}
-	
-	
-	public void testUpdateInheritanceStrategy() throws Exception {
-		OrmPersistentType ormPersistentType = getEntityMappings().addPersistentType(MappingKeys.ENTITY_TYPE_MAPPING_KEY, "model.Foo");
-		OrmEntity ormEntity = (OrmEntity) ormPersistentType.getMapping();
-		XmlEntity entityResource = getXmlEntityMappings().getEntities().get(0);
-		assertEquals(InheritanceType.SINGLE_TABLE, ormEntity.getInheritanceStrategy());
-		assertNull(entityResource.getInheritance());
-
-		//set inheritance strategy in the resource model, verify context model updated
-		entityResource.setInheritance(OrmFactory.eINSTANCE.createInheritance());
-		entityResource.getInheritance().setStrategy(org.eclipse.jpt.core.resource.orm.InheritanceType.TABLE_PER_CLASS);
-		
-		assertEquals(InheritanceType.TABLE_PER_CLASS, ormEntity.getInheritanceStrategy());		
-		assertEquals(org.eclipse.jpt.core.resource.orm.InheritanceType.TABLE_PER_CLASS, entityResource.getInheritance().getStrategy());		
-	}
-	
-	public void testUpdateDefaultInheritanceStrategyFromJava() throws Exception {
-		createTestEntityDefaultFieldAccess();
-
-		OrmPersistentType ormPersistentType = getEntityMappings().addPersistentType(MappingKeys.ENTITY_TYPE_MAPPING_KEY, FULLY_QUALIFIED_TYPE_NAME);
-		OrmEntity ormEntity = (OrmEntity) ormPersistentType.getMapping();
-		//no inheritance strategy specified in java so single-table is default
-		assertEquals(InheritanceType.SINGLE_TABLE, ormEntity.getDefaultInheritanceStrategy());
-		
-		ormEntity.getJavaEntity().setSpecifiedInheritanceStrategy(InheritanceType.JOINED);
-		assertEquals(InheritanceType.JOINED, ormEntity.getDefaultInheritanceStrategy());
-			
-		ormEntity.setSpecifiedInheritanceStrategy(InheritanceType.TABLE_PER_CLASS);
-		//inheritance tag exists in xml, so it overrides anything in java
-		assertEquals(InheritanceType.SINGLE_TABLE, ormEntity.getDefaultInheritanceStrategy());
-
-		ormEntity.setSpecifiedInheritanceStrategy(null);		
-		assertEquals(InheritanceType.JOINED, ormEntity.getDefaultInheritanceStrategy());
-
-		ormEntity.setSpecifiedMetadataComplete(Boolean.TRUE);
-		assertEquals(InheritanceType.SINGLE_TABLE, ormEntity.getDefaultInheritanceStrategy());
-		
-		ormEntity.setSpecifiedMetadataComplete(Boolean.FALSE);
-		assertEquals(InheritanceType.JOINED, ormEntity.getDefaultInheritanceStrategy());
-		
-		getEntityMappings().getPersistenceUnitMetadata().setXmlMappingMetadataComplete(true);
-		//this setting overrides the false meta-data complete found on ormEntity
-		assertEquals(InheritanceType.SINGLE_TABLE, ormEntity.getDefaultInheritanceStrategy());
-	}
-	
-	public void testUpdateDefaultInheritanceStrategyFromParent() throws Exception {
-		createTestEntityDefaultFieldAccess();
-		createTestSubType();
-	
-		OrmPersistentType parentPersistentType = getEntityMappings().addPersistentType(MappingKeys.ENTITY_TYPE_MAPPING_KEY, FULLY_QUALIFIED_TYPE_NAME);
-		OrmPersistentType childPersistentType = getEntityMappings().addPersistentType(MappingKeys.ENTITY_TYPE_MAPPING_KEY, PACKAGE_NAME + ".AnnotationTestTypeChild");
-		OrmEntity parentXmlEntity = (OrmEntity) parentPersistentType.getMapping();
-		OrmEntity childXmlEntity = (OrmEntity) childPersistentType.getMapping();
-		
-		assertEquals(parentXmlEntity, childXmlEntity.getParentEntity());
-		assertEquals(InheritanceType.SINGLE_TABLE, childXmlEntity.getDefaultInheritanceStrategy());
-		
-		//change root inheritance strategy, verify default is changed for child entity
-		parentXmlEntity.setSpecifiedInheritanceStrategy(InheritanceType.TABLE_PER_CLASS);
-		assertEquals(InheritanceType.SINGLE_TABLE, parentXmlEntity.getDefaultInheritanceStrategy());
-		assertEquals(InheritanceType.TABLE_PER_CLASS, childXmlEntity.getDefaultInheritanceStrategy());
-		assertNull(childXmlEntity.getSpecifiedInheritanceStrategy());
-
-		//set specified inheritance strategy in java and verify defaults in xml are correct
-		parentXmlEntity.setSpecifiedInheritanceStrategy(null);
-		parentXmlEntity.getJavaEntity().setSpecifiedInheritanceStrategy(InheritanceType.JOINED);
-		assertEquals(InheritanceType.JOINED, parentXmlEntity.getDefaultInheritanceStrategy());
-		assertEquals(InheritanceType.JOINED, childXmlEntity.getDefaultInheritanceStrategy());
-		assertNull(parentXmlEntity.getSpecifiedInheritanceStrategy());
-		assertNull(childXmlEntity.getSpecifiedInheritanceStrategy());
-		
-		getEntityMappings().getPersistenceUnitMetadata().setXmlMappingMetadataComplete(true);
-		assertEquals(InheritanceType.SINGLE_TABLE, parentXmlEntity.getDefaultInheritanceStrategy());
-		assertEquals(InheritanceType.SINGLE_TABLE, childXmlEntity.getDefaultInheritanceStrategy());
-	}
-
-	public void testUpdateSpecifiedInheritanceStrategy() throws Exception {
-		OrmPersistentType ormPersistentType = getEntityMappings().addPersistentType(MappingKeys.ENTITY_TYPE_MAPPING_KEY, "model.foo");
-		OrmEntity ormEntity = (OrmEntity) ormPersistentType.getMapping();
-		XmlEntity entityResource = getXmlEntityMappings().getEntities().get(0);
-		assertNull(ormEntity.getSpecifiedInheritanceStrategy());
-		assertNull(entityResource.getInheritance());
-		
-		//set strategy in the resource model, verify context model updated
-		entityResource.setInheritance(OrmFactory.eINSTANCE.createInheritance());
-		entityResource.getInheritance().setStrategy(org.eclipse.jpt.core.resource.orm.InheritanceType.JOINED);
-		assertEquals(InheritanceType.JOINED, ormEntity.getSpecifiedInheritanceStrategy());
-		assertEquals(org.eclipse.jpt.core.resource.orm.InheritanceType.JOINED, entityResource.getInheritance().getStrategy());
-	
-		//set strategy to null in the resource model
-		entityResource.getInheritance().setStrategy(null);
-		assertNull(ormEntity.getSpecifiedInheritanceStrategy());
-		assertNull(entityResource.getInheritance().getStrategy());
-		
-		entityResource.getInheritance().setStrategy(org.eclipse.jpt.core.resource.orm.InheritanceType.SINGLE_TABLE);
-		assertEquals(InheritanceType.SINGLE_TABLE, ormEntity.getSpecifiedInheritanceStrategy());
-		assertEquals(org.eclipse.jpt.core.resource.orm.InheritanceType.SINGLE_TABLE, entityResource.getInheritance().getStrategy());
-
-		entityResource.setInheritance(null);
-		assertNull(ormEntity.getSpecifiedInheritanceStrategy());
-		assertNull(entityResource.getInheritance());
-	}
-	
-	public void testModifySpecifiedInheritanceStrategy() throws Exception {
-		OrmPersistentType ormPersistentType = getEntityMappings().addPersistentType(MappingKeys.ENTITY_TYPE_MAPPING_KEY, "model.foo");
-		OrmEntity ormEntity = (OrmEntity) ormPersistentType.getMapping();
-		XmlEntity entityResource = getXmlEntityMappings().getEntities().get(0);
-		assertNull(ormEntity.getSpecifiedInheritanceStrategy());
-		assertNull(entityResource.getInheritance());
-		
-		//set strategy in the context model, verify resource model modified
-		ormEntity.setSpecifiedInheritanceStrategy(InheritanceType.TABLE_PER_CLASS);
-		assertEquals(InheritanceType.TABLE_PER_CLASS, ormEntity.getSpecifiedInheritanceStrategy());
-		assertEquals(org.eclipse.jpt.core.resource.orm.InheritanceType.TABLE_PER_CLASS, entityResource.getInheritance().getStrategy());
-		
-		//set strategy to null in the context model
-		ormEntity.setSpecifiedInheritanceStrategy(null);
-		assertNull(ormEntity.getSpecifiedInheritanceStrategy());
-		assertNull(entityResource.getInheritance());	
-	}
-	
-	public void testAddSpecifiedSecondaryTable() throws Exception {
-		OrmPersistentType persistentType = getEntityMappings().addPersistentType(MappingKeys.ENTITY_TYPE_MAPPING_KEY, FULLY_QUALIFIED_TYPE_NAME);
-		OrmEntity ormEntity = (OrmEntity) persistentType.getMapping();
-		XmlEntity entityResource = getXmlEntityMappings().getEntities().get(0);
-
-		OrmSecondaryTable secondaryTable = ormEntity.addSpecifiedSecondaryTable(0);
-		secondaryTable.setSpecifiedName("FOO");
-				
-		assertEquals("FOO", entityResource.getSecondaryTables().get(0).getName());
-		
-		OrmSecondaryTable secondaryTable2 = ormEntity.addSpecifiedSecondaryTable(0);
-		secondaryTable2.setSpecifiedName("BAR");
-		
-		assertEquals("BAR", entityResource.getSecondaryTables().get(0).getName());
-		assertEquals("FOO", entityResource.getSecondaryTables().get(1).getName());
-		
-		OrmSecondaryTable secondaryTable3 = ormEntity.addSpecifiedSecondaryTable(1);
-		secondaryTable3.setSpecifiedName("BAZ");
-		
-		assertEquals("BAR", entityResource.getSecondaryTables().get(0).getName());
-		assertEquals("BAZ", entityResource.getSecondaryTables().get(1).getName());
-		assertEquals("FOO", entityResource.getSecondaryTables().get(2).getName());
-		
-		ListIterator<OrmSecondaryTable> secondaryTables = ormEntity.specifiedSecondaryTables();
-		assertEquals(secondaryTable2, secondaryTables.next());
-		assertEquals(secondaryTable3, secondaryTables.next());
-		assertEquals(secondaryTable, secondaryTables.next());
-		
-		secondaryTables = ormEntity.specifiedSecondaryTables();
-		assertEquals("BAR", secondaryTables.next().getName());
-		assertEquals("BAZ", secondaryTables.next().getName());
-		assertEquals("FOO", secondaryTables.next().getName());
-	}
-	
-	public void testRemoveSpecifiedSecondaryTable() throws Exception {
-		OrmPersistentType persistentType = getEntityMappings().addPersistentType(MappingKeys.ENTITY_TYPE_MAPPING_KEY, FULLY_QUALIFIED_TYPE_NAME);
-		OrmEntity ormEntity = (OrmEntity) persistentType.getMapping();
-
-		ormEntity.addSpecifiedSecondaryTable(0).setSpecifiedName("FOO");
-		ormEntity.addSpecifiedSecondaryTable(1).setSpecifiedName("BAR");
-		ormEntity.addSpecifiedSecondaryTable(2).setSpecifiedName("BAZ");
-		
-		XmlEntity entityResource = getXmlEntityMappings().getEntities().get(0);
-		assertEquals(3, entityResource.getSecondaryTables().size());
-		
-		ormEntity.removeSpecifiedSecondaryTable(0);
-		assertEquals(2, entityResource.getSecondaryTables().size());
-		assertEquals("BAR", entityResource.getSecondaryTables().get(0).getName());
-		assertEquals("BAZ", entityResource.getSecondaryTables().get(1).getName());
-
-		ormEntity.removeSpecifiedSecondaryTable(0);
-		assertEquals(1, entityResource.getSecondaryTables().size());
-		assertEquals("BAZ", entityResource.getSecondaryTables().get(0).getName());
-		
-		ormEntity.removeSpecifiedSecondaryTable(0);
-		assertEquals(0, entityResource.getSecondaryTables().size());
-	}
-	
-	public void testMoveSpecifiedSecondaryTable() throws Exception {
-		OrmPersistentType persistentType = getEntityMappings().addPersistentType(MappingKeys.ENTITY_TYPE_MAPPING_KEY, FULLY_QUALIFIED_TYPE_NAME);
-		OrmEntity ormEntity = (OrmEntity) persistentType.getMapping();
-
-		ormEntity.addSpecifiedSecondaryTable(0).setSpecifiedName("FOO");
-		ormEntity.addSpecifiedSecondaryTable(1).setSpecifiedName("BAR");
-		ormEntity.addSpecifiedSecondaryTable(2).setSpecifiedName("BAZ");
-		
-		XmlEntity entityResource = getXmlEntityMappings().getEntities().get(0);
-		assertEquals(3, entityResource.getSecondaryTables().size());
-		
-		
-		ormEntity.moveSpecifiedSecondaryTable(2, 0);
-		ListIterator<OrmSecondaryTable> secondaryTables = ormEntity.specifiedSecondaryTables();
-		assertEquals("BAR", secondaryTables.next().getName());
-		assertEquals("BAZ", secondaryTables.next().getName());
-		assertEquals("FOO", secondaryTables.next().getName());
-
-		assertEquals("BAR", entityResource.getSecondaryTables().get(0).getName());
-		assertEquals("BAZ", entityResource.getSecondaryTables().get(1).getName());
-		assertEquals("FOO", entityResource.getSecondaryTables().get(2).getName());
-
-
-		ormEntity.moveSpecifiedSecondaryTable(0, 1);
-		secondaryTables = ormEntity.specifiedSecondaryTables();
-		assertEquals("BAZ", secondaryTables.next().getName());
-		assertEquals("BAR", secondaryTables.next().getName());
-		assertEquals("FOO", secondaryTables.next().getName());
-
-		assertEquals("BAZ", entityResource.getSecondaryTables().get(0).getName());
-		assertEquals("BAR", entityResource.getSecondaryTables().get(1).getName());
-		assertEquals("FOO", entityResource.getSecondaryTables().get(2).getName());
-	}
-	
-	public void testUpdateSecondaryTables() throws Exception {
-		OrmPersistentType persistentType = getEntityMappings().addPersistentType(MappingKeys.ENTITY_TYPE_MAPPING_KEY, FULLY_QUALIFIED_TYPE_NAME);
-		OrmEntity ormEntity = (OrmEntity) persistentType.getMapping();
-		
-		XmlEntity entityResource = getXmlEntityMappings().getEntities().get(0);
-		entityResource.getSecondaryTables().add(OrmFactory.eINSTANCE.createXmlSecondaryTableImpl());
-		entityResource.getSecondaryTables().add(OrmFactory.eINSTANCE.createXmlSecondaryTableImpl());
-		entityResource.getSecondaryTables().add(OrmFactory.eINSTANCE.createXmlSecondaryTableImpl());
-		
-		entityResource.getSecondaryTables().get(0).setName("FOO");
-		entityResource.getSecondaryTables().get(1).setName("BAR");
-		entityResource.getSecondaryTables().get(2).setName("BAZ");
-
-		ListIterator<OrmSecondaryTable> secondaryTables = ormEntity.specifiedSecondaryTables();
-		assertEquals("FOO", secondaryTables.next().getName());
-		assertEquals("BAR", secondaryTables.next().getName());
-		assertEquals("BAZ", secondaryTables.next().getName());
-		assertFalse(secondaryTables.hasNext());
-		
-		entityResource.getSecondaryTables().move(2, 0);
-		secondaryTables = ormEntity.specifiedSecondaryTables();
-		assertEquals("BAR", secondaryTables.next().getName());
-		assertEquals("BAZ", secondaryTables.next().getName());
-		assertEquals("FOO", secondaryTables.next().getName());
-		assertFalse(secondaryTables.hasNext());
-
-		entityResource.getSecondaryTables().move(0, 1);
-		secondaryTables = ormEntity.specifiedSecondaryTables();
-		assertEquals("BAZ", secondaryTables.next().getName());
-		assertEquals("BAR", secondaryTables.next().getName());
-		assertEquals("FOO", secondaryTables.next().getName());
-		assertFalse(secondaryTables.hasNext());
-
-		entityResource.getSecondaryTables().remove(1);
-		secondaryTables = ormEntity.specifiedSecondaryTables();
-		assertEquals("BAZ", secondaryTables.next().getName());
-		assertEquals("FOO", secondaryTables.next().getName());
-		assertFalse(secondaryTables.hasNext());
-
-		entityResource.getSecondaryTables().remove(1);
-		secondaryTables = ormEntity.specifiedSecondaryTables();
-		assertEquals("BAZ", secondaryTables.next().getName());
-		assertFalse(secondaryTables.hasNext());
-		
-		entityResource.getSecondaryTables().remove(0);
-		assertFalse(ormEntity.specifiedSecondaryTables().hasNext());
-	}
-	
-	public void testVirtualSecondaryTables() throws Exception {
-		createTestEntityFieldAccess();
-		createTestSubType();
-	
-		OrmPersistentType parentPersistentType = getEntityMappings().addPersistentType(MappingKeys.ENTITY_TYPE_MAPPING_KEY, FULLY_QUALIFIED_TYPE_NAME);
-		OrmPersistentType childPersistentType = getEntityMappings().addPersistentType(MappingKeys.ENTITY_TYPE_MAPPING_KEY, PACKAGE_NAME + ".AnnotationTestTypeChild");
-		OrmEntity parentOrmEntity = (OrmEntity) parentPersistentType.getMapping();
-		OrmEntity childOrmEntity = (OrmEntity) childPersistentType.getMapping();
-		JavaEntity javaEntity = childOrmEntity.getJavaEntity();
-		
-		JavaSecondaryTable javaSecondaryTableFoo = javaEntity.addSpecifiedSecondaryTable(0);
-		javaSecondaryTableFoo.setSpecifiedName("FOO");
-		OrmSecondaryTable virtualSecondaryTableFoo = childOrmEntity.virtualSecondaryTables().next();
-		assertEquals("FOO", childOrmEntity.secondaryTables().next().getName());
-		assertEquals("FOO", virtualSecondaryTableFoo.getName());
-		assertEquals(0, virtualSecondaryTableFoo.specifiedPrimaryKeyJoinColumnsSize());
-		assertEquals("id", virtualSecondaryTableFoo.getDefaultPrimaryKeyJoinColumn().getDefaultName());
-		assertEquals("id", virtualSecondaryTableFoo.getDefaultPrimaryKeyJoinColumn().getDefaultReferencedColumnName());
-		
-		assertEquals(0, childOrmEntity.specifiedSecondaryTablesSize());
-		assertEquals(1, childOrmEntity.virtualSecondaryTablesSize());
-		assertEquals(1, childOrmEntity.secondaryTablesSize());
-		
-		javaEntity.addSpecifiedSecondaryTable(0).setSpecifiedName("BAR");
-		ListIterator<OrmSecondaryTable> virtualSecondaryTables = childOrmEntity.virtualSecondaryTables();
-		ListIterator<OrmSecondaryTable> secondaryTables = childOrmEntity.secondaryTables();
-		assertEquals("BAR", virtualSecondaryTables.next().getName());
-		assertEquals("FOO", virtualSecondaryTables.next().getName());
-		assertEquals("BAR", secondaryTables.next().getName());
-		assertEquals("FOO", secondaryTables.next().getName());
-		assertEquals(0, childOrmEntity.specifiedSecondaryTablesSize());
-		assertEquals(2, childOrmEntity.virtualSecondaryTablesSize());
-		assertEquals(2, childOrmEntity.secondaryTablesSize());
-		
-		childOrmEntity.setSpecifiedMetadataComplete(Boolean.TRUE);
-		assertEquals(0, childOrmEntity.virtualSecondaryTablesSize());
-		
-		childOrmEntity.setSpecifiedMetadataComplete(Boolean.FALSE);
-		assertEquals(2, childOrmEntity.virtualSecondaryTablesSize());
-		
-		
-		childOrmEntity.setSecondaryTablesDefinedInXml(true);
-		assertEquals(0, childOrmEntity.virtualSecondaryTablesSize());
-		assertEquals(2, childOrmEntity.specifiedSecondaryTablesSize());
-		assertEquals(2, childOrmEntity.secondaryTablesSize());
-		ListIterator<OrmSecondaryTable> specifiedSecondaryTables = childOrmEntity.specifiedSecondaryTables();
-		assertEquals("BAR", specifiedSecondaryTables.next().getName());
-		OrmSecondaryTable specifiedSecondaryTableFoo = specifiedSecondaryTables.next();
-		assertEquals("FOO", specifiedSecondaryTableFoo.getName());
-		assertEquals(0, specifiedSecondaryTableFoo.specifiedPrimaryKeyJoinColumnsSize());
-		assertEquals("id", specifiedSecondaryTableFoo.getDefaultPrimaryKeyJoinColumn().getDefaultName());
-		assertEquals("id", specifiedSecondaryTableFoo.getDefaultPrimaryKeyJoinColumn().getDefaultReferencedColumnName());
-		
-		
-		childOrmEntity.removeSpecifiedSecondaryTable(0);
-		assertEquals(0, childOrmEntity.virtualSecondaryTablesSize());
-		assertEquals(1, childOrmEntity.specifiedSecondaryTablesSize());
-		assertEquals(1, childOrmEntity.secondaryTablesSize());
-		assertEquals("FOO", childOrmEntity.specifiedSecondaryTables().next().getName());
-		
-	
-		childOrmEntity.removeSpecifiedSecondaryTable(0);
-		assertEquals(0, childOrmEntity.specifiedSecondaryTablesSize());
-		assertEquals(2, childOrmEntity.virtualSecondaryTablesSize());
-		assertEquals(2, childOrmEntity.secondaryTablesSize());
-		virtualSecondaryTables = childOrmEntity.virtualSecondaryTables();
-		assertEquals("BAR", virtualSecondaryTables.next().getName());
-		assertEquals("FOO", virtualSecondaryTables.next().getName());
-		
-		
-		//add a specified secondary table to the parent, this will not affect virtual secondaryTables in child
-		parentOrmEntity.addSpecifiedSecondaryTable(0).setSpecifiedName("PARENT_TABLE");
-		assertEquals(2, childOrmEntity.virtualSecondaryTablesSize());	
-	}
-
-	public void testAssociatedTables() throws Exception {
-		createTestEntityFieldAccess();
-		OrmPersistentType persistentType = getEntityMappings().addPersistentType(MappingKeys.ENTITY_TYPE_MAPPING_KEY, FULLY_QUALIFIED_TYPE_NAME);
-		
-		OrmEntity entity = (OrmEntity) persistentType.getMapping();
-		assertEquals(1, CollectionTools.size(entity.associatedTables()));
-		
-		entity.addSpecifiedSecondaryTable(0).setSpecifiedName("FOO");
-		assertEquals(2, CollectionTools.size(entity.associatedTables()));
-	
-		entity.addSpecifiedSecondaryTable(0).setSpecifiedName("BAR");
-		assertEquals(3, CollectionTools.size(entity.associatedTables()));
-	}
-	
-	public void testAssociatedTableNamesIncludingInherited() throws Exception {
-		
-	}
-	
-	public void testTableNameIsInvalid() throws Exception {
-		
-	}
-	
-	public void testMakeEntityEmbeddable() throws Exception {
-		OrmPersistentType entityPersistentType = getEntityMappings().addPersistentType(MappingKeys.ENTITY_TYPE_MAPPING_KEY, "model.Foo");
-		OrmEntity entity = (OrmEntity) entityPersistentType.getMapping();
-		entityPersistentType.setSpecifiedAccess(AccessType.PROPERTY);
-		entity.setSpecifiedDiscriminatorValue("DISC_VALUE");
-		entity.setSpecifiedInheritanceStrategy(InheritanceType.JOINED);
-		entity.setSpecifiedMetadataComplete(Boolean.TRUE);
-		entity.setSpecifiedName("ENTITY_NAME");
-	
-		entityPersistentType.setMappingKey(MappingKeys.EMBEDDABLE_TYPE_MAPPING_KEY);
-		
-		XmlEmbeddable embeddable = getXmlEntityMappings().getEmbeddables().get(0);
-		assertEquals("model.Foo", embeddable.getClassName());
-		assertEquals(Boolean.TRUE, embeddable.getMetadataComplete());
-		assertEquals(org.eclipse.jpt.core.resource.orm.AccessType.PROPERTY, embeddable.getAccess());
-		
-		OrmEmbeddable ormEmbeddable = (OrmEmbeddable) entityPersistentType.getMapping();
-		assertEquals("model.Foo", ormEmbeddable.getClass_());
-		assertEquals(Boolean.TRUE, ormEmbeddable.getSpecifiedMetadataComplete());
-		assertEquals(AccessType.PROPERTY, entityPersistentType.getSpecifiedAccess());
-	}
-	
-	//TODO test that attribute mappings are not removed when changing type mapping.
-	public void testMakeEntityEmbeddable2() throws Exception {
-		OrmPersistentType entityPersistentType = getEntityMappings().addPersistentType(MappingKeys.ENTITY_TYPE_MAPPING_KEY, "model.Foo");
-		getEntityMappings().addPersistentType(MappingKeys.ENTITY_TYPE_MAPPING_KEY, "model.Foo2");
-		OrmEntity entity = (OrmEntity) entityPersistentType.getMapping();
-		entityPersistentType.setSpecifiedAccess(AccessType.PROPERTY);
-		entity.setSpecifiedDiscriminatorValue("DISC_VALUE");
-		entity.setSpecifiedInheritanceStrategy(InheritanceType.JOINED);
-		entity.setSpecifiedMetadataComplete(Boolean.TRUE);
-		entity.setSpecifiedName("ENTITY_NAME");
-//		entityPersistentType.addSpecifiedPersistentAttribute(IMappingKeys.BASIC_ATTRIBUTE_MAPPING_KEY, "basicMapping");
-	
-		entityPersistentType.setMappingKey(MappingKeys.EMBEDDABLE_TYPE_MAPPING_KEY);
-		
-		XmlEmbeddable embeddable = getXmlEntityMappings().getEmbeddables().get(0);
-		assertEquals("model.Foo", embeddable.getClassName());
-		assertEquals(Boolean.TRUE, embeddable.getMetadataComplete());
-		assertEquals(org.eclipse.jpt.core.resource.orm.AccessType.PROPERTY, embeddable.getAccess());
-//		assertEquals("basicMapping", embeddable.getAttributes().getBasics().get(0).getName());
-		
-		OrmEmbeddable ormEmbeddable = (OrmEmbeddable) entityPersistentType.getMapping();
-		assertEquals("model.Foo", ormEmbeddable.getClass_());
-		assertEquals(Boolean.TRUE, ormEmbeddable.getSpecifiedMetadataComplete());
-		assertEquals(AccessType.PROPERTY, entityPersistentType.getSpecifiedAccess());
-//		assertEquals("basicMapping", ormEmbeddable.persistentType().attributes().next().getName());
-	}
-	
-	public void testMakeEntityMappedSuperclass() throws Exception {
-		OrmPersistentType entityPersistentType = getEntityMappings().addPersistentType(MappingKeys.ENTITY_TYPE_MAPPING_KEY, "model.Foo");
-		OrmEntity entity = (OrmEntity) entityPersistentType.getMapping();
-		entityPersistentType.setSpecifiedAccess(AccessType.PROPERTY);
-		entity.setSpecifiedDiscriminatorValue("DISC_VALUE");
-		entity.setSpecifiedInheritanceStrategy(InheritanceType.JOINED);
-		entity.setSpecifiedMetadataComplete(Boolean.TRUE);
-		entity.setSpecifiedName("ENTITY_NAME");
-	
-		entityPersistentType.setMappingKey(MappingKeys.MAPPED_SUPERCLASS_TYPE_MAPPING_KEY);
-		
-		XmlMappedSuperclass mappedSuperclass = getXmlEntityMappings().getMappedSuperclasses().get(0);
-		assertEquals("model.Foo", mappedSuperclass.getClassName());
-		assertEquals(Boolean.TRUE, mappedSuperclass.getMetadataComplete());
-		assertEquals(org.eclipse.jpt.core.resource.orm.AccessType.PROPERTY, mappedSuperclass.getAccess());
-		
-		OrmMappedSuperclass ormMappedSuperclass = (OrmMappedSuperclass) entityPersistentType.getMapping();
-		assertEquals("model.Foo", ormMappedSuperclass.getClass_());
-		assertEquals(Boolean.TRUE, ormMappedSuperclass.getSpecifiedMetadataComplete());
-		assertEquals(AccessType.PROPERTY, entityPersistentType.getSpecifiedAccess());
-	}
-	
-	public void testMakeEntityMappedSuperclass2() throws Exception {
-		getEntityMappings().addPersistentType(MappingKeys.ENTITY_TYPE_MAPPING_KEY, "model.Foo2");
-		OrmPersistentType entityPersistentType = getEntityMappings().addPersistentType(MappingKeys.ENTITY_TYPE_MAPPING_KEY, "model.Foo");
-		OrmEntity entity = (OrmEntity) entityPersistentType.getMapping();
-		entityPersistentType.setSpecifiedAccess(AccessType.PROPERTY);
-		entity.setSpecifiedDiscriminatorValue("DISC_VALUE");
-		entity.setSpecifiedInheritanceStrategy(InheritanceType.JOINED);
-		entity.setSpecifiedMetadataComplete(Boolean.TRUE);
-		entity.setSpecifiedName("ENTITY_NAME");
-	
-		entityPersistentType.setMappingKey(MappingKeys.MAPPED_SUPERCLASS_TYPE_MAPPING_KEY);
-		
-		XmlMappedSuperclass mappedSuperclass = getXmlEntityMappings().getMappedSuperclasses().get(0);
-		assertEquals("model.Foo", mappedSuperclass.getClassName());
-		assertEquals(Boolean.TRUE, mappedSuperclass.getMetadataComplete());
-		assertEquals(org.eclipse.jpt.core.resource.orm.AccessType.PROPERTY, mappedSuperclass.getAccess());
-		
-		OrmMappedSuperclass ormMappedSuperclass = (OrmMappedSuperclass) entityPersistentType.getMapping();
-		assertEquals("model.Foo", ormMappedSuperclass.getClass_());
-		assertEquals(Boolean.TRUE, ormMappedSuperclass.getSpecifiedMetadataComplete());
-		assertEquals(AccessType.PROPERTY, entityPersistentType.getSpecifiedAccess());
-	}
-
-	
-	public void testAddSequenceGenerator() throws Exception {
-		OrmPersistentType ormPersistentType = getEntityMappings().addPersistentType(MappingKeys.ENTITY_TYPE_MAPPING_KEY, "model.Foo");
-		OrmEntity ormEntity = (OrmEntity) ormPersistentType.getMapping();
-		XmlEntity entityResource = getXmlEntityMappings().getEntities().get(0);
-		
-		assertNull(ormEntity.getSequenceGenerator());
-		assertNull(entityResource.getSequenceGenerator());
-		
-		ormEntity.addSequenceGenerator();
-		
-		assertNotNull(entityResource.getSequenceGenerator());
-		assertNotNull(ormEntity.getSequenceGenerator());
-				
-		//try adding another sequence generator, should get an IllegalStateException
-		try {
-			ormEntity.addSequenceGenerator();
-		} catch (IllegalStateException e) {
-			return;
-		}
-		fail("IllegalStateException not thrown");
-	}
-	
-	public void testRemoveSequenceGenerator() throws Exception {
-		OrmPersistentType ormPersistentType = getEntityMappings().addPersistentType(MappingKeys.ENTITY_TYPE_MAPPING_KEY, "model.Foo");
-		OrmEntity ormEntity = (OrmEntity) ormPersistentType.getMapping();
-		XmlEntity entityResource = getXmlEntityMappings().getEntities().get(0);
-		
-		assertNull(ormEntity.getSequenceGenerator());
-		assertNull(entityResource.getSequenceGenerator());
-
-		ormEntity.addSequenceGenerator();
-		assertNotNull(entityResource.getSequenceGenerator());
-		assertNotNull(ormEntity.getSequenceGenerator());
-
-		ormEntity.removeSequenceGenerator();
-		
-		assertNull(ormEntity.getSequenceGenerator());
-		assertNull(entityResource.getSequenceGenerator());
-
-		//try removing the sequence generator again, should get an IllegalStateException
-		try {
-			ormEntity.removeSequenceGenerator();		
-		} catch (IllegalStateException e) {
-			return;
-		}
-		fail("IllegalStateException not thrown");
-	}
-
-	public void testUpdateSequenceGenerator() throws Exception {
-		OrmPersistentType ormPersistentType = getEntityMappings().addPersistentType(MappingKeys.ENTITY_TYPE_MAPPING_KEY, "model.Foo");
-		OrmEntity ormEntity = (OrmEntity) ormPersistentType.getMapping();
-		XmlEntity entityResource = getXmlEntityMappings().getEntities().get(0);
-		
-		assertNull(ormEntity.getSequenceGenerator());
-		assertNull(entityResource.getSequenceGenerator());
-		assertEquals(0, ormEntity.getPersistenceUnit().generatorsSize());
-		
-		entityResource.setSequenceGenerator(OrmFactory.eINSTANCE.createXmlSequenceGeneratorImpl());
-				
-		assertNotNull(ormEntity.getSequenceGenerator());
-		assertNotNull(entityResource.getSequenceGenerator());
-		assertEquals(1, ormEntity.getPersistenceUnit().generatorsSize());
-		
-		ormEntity.getSequenceGenerator().setName("foo");
-		assertEquals(1, ormEntity.getPersistenceUnit().generatorsSize());
-
-		entityResource.setSequenceGenerator(null);
-		assertNull(ormEntity.getSequenceGenerator());
-		assertNull(entityResource.getSequenceGenerator());
-		assertEquals(0, ormEntity.getPersistenceUnit().generatorsSize());
-	}
-	
-	public void testAddTableGenerator() throws Exception {
-		OrmPersistentType ormPersistentType = getEntityMappings().addPersistentType(MappingKeys.ENTITY_TYPE_MAPPING_KEY, "model.Foo");
-		OrmEntity ormEntity = (OrmEntity) ormPersistentType.getMapping();
-		XmlEntity entityResource = getXmlEntityMappings().getEntities().get(0);
-		
-		assertNull(ormEntity.getTableGenerator());
-		assertNull(entityResource.getTableGenerator());
-		
-		ormEntity.addTableGenerator();
-		
-		assertNotNull(entityResource.getTableGenerator());
-		assertNotNull(ormEntity.getTableGenerator());
-				
-		//try adding another table generator, should get an IllegalStateException
-		try {
-			ormEntity.addTableGenerator();
-		} catch (IllegalStateException e) {
-			return;
-		}
-		fail("IllegalStateException not thrown");
-	}
-	
-	public void testRemoveTableGenerator() throws Exception {
-		OrmPersistentType ormPersistentType = getEntityMappings().addPersistentType(MappingKeys.ENTITY_TYPE_MAPPING_KEY, "model.Foo");
-		OrmEntity ormEntity = (OrmEntity) ormPersistentType.getMapping();
-		XmlEntity entityResource = getXmlEntityMappings().getEntities().get(0);
-		
-		assertNull(ormEntity.getTableGenerator());
-		assertNull(entityResource.getTableGenerator());
-
-		ormEntity.addTableGenerator();
-		assertNotNull(entityResource.getTableGenerator());
-		assertNotNull(ormEntity.getTableGenerator());
-
-		ormEntity.removeTableGenerator();
-		
-		assertNull(ormEntity.getTableGenerator());
-		assertNull(entityResource.getTableGenerator());
-
-		//try removing the table generator again, should get an IllegalStateException
-		try {
-			ormEntity.removeTableGenerator();		
-		} catch (IllegalStateException e) {
-			return;
-		}
-		fail("IllegalStateException not thrown");
-	}
-	
-	public void testUpdateTableGenerator() throws Exception {
-		OrmPersistentType ormPersistentType = getEntityMappings().addPersistentType(MappingKeys.ENTITY_TYPE_MAPPING_KEY, "model.Foo");
-		OrmEntity ormEntity = (OrmEntity) ormPersistentType.getMapping();
-		XmlEntity entityResource = getXmlEntityMappings().getEntities().get(0);
-		
-		assertNull(ormEntity.getTableGenerator());
-		assertNull(entityResource.getTableGenerator());
-		assertEquals(0, ormEntity.getPersistenceUnit().generatorsSize());
-		
-		entityResource.setTableGenerator(OrmFactory.eINSTANCE.createXmlTableGeneratorImpl());
-				
-		assertNotNull(ormEntity.getTableGenerator());
-		assertNotNull(entityResource.getTableGenerator());
-		assertEquals(1, ormEntity.getPersistenceUnit().generatorsSize());
-
-		ormEntity.getTableGenerator().setName("foo");
-		assertEquals(1, ormEntity.getPersistenceUnit().generatorsSize());
-		
-		entityResource.setTableGenerator(null);
-		assertNull(ormEntity.getTableGenerator());
-		assertNull(entityResource.getTableGenerator());
-		assertEquals(0, ormEntity.getPersistenceUnit().generatorsSize());
-	}
-	
-	public void testUpdateDiscriminatorColumn() throws Exception {
-		OrmPersistentType ormPersistentType = getEntityMappings().addPersistentType(MappingKeys.ENTITY_TYPE_MAPPING_KEY, "model.Foo");
-		OrmEntity ormEntity = (OrmEntity) ormPersistentType.getMapping();
-		XmlEntity entityResource = getXmlEntityMappings().getEntities().get(0);
-		
-		assertNotNull(ormEntity.getDiscriminatorColumn());
-
-		entityResource.setDiscriminatorColumn(OrmFactory.eINSTANCE.createXmlDiscriminatorColumn());
-		entityResource.getDiscriminatorColumn().setName("FOO");
-		
-		assertEquals("FOO", ormEntity.getDiscriminatorColumn().getSpecifiedName());
-		assertEquals("FOO", entityResource.getDiscriminatorColumn().getName());
-		
-		entityResource.getDiscriminatorColumn().setName(null);
-		
-		assertNull(ormEntity.getDiscriminatorColumn().getSpecifiedName());
-		assertNull(entityResource.getDiscriminatorColumn().getName());
-
-		entityResource.setDiscriminatorColumn(null);
-		
-		assertNotNull(ormEntity.getDiscriminatorColumn());
-	}
-	
-	public void testUpdateDiscriminatorValue() throws Exception {
-		OrmPersistentType ormPersistentType = getEntityMappings().addPersistentType(MappingKeys.ENTITY_TYPE_MAPPING_KEY, "model.Foo");
-		OrmEntity ormEntity = (OrmEntity) ormPersistentType.getMapping();
-		XmlEntity entityResource = getXmlEntityMappings().getEntities().get(0);
-		
-		assertNull(ormEntity.getSpecifiedDiscriminatorValue());
-		assertNull(entityResource.getDiscriminatorValue());
-
-		entityResource.setDiscriminatorValue("FOO");
-		
-		assertEquals("FOO", ormEntity.getSpecifiedDiscriminatorValue());
-		assertEquals("FOO", entityResource.getDiscriminatorValue());
-		
-		entityResource.setDiscriminatorValue(null);
-		
-		assertNull(ormEntity.getSpecifiedDiscriminatorValue());
-		assertNull(entityResource.getDiscriminatorValue());
-	}
-	
-	public void testModifyDiscriminatorValue() throws Exception {
-		OrmPersistentType ormPersistentType = getEntityMappings().addPersistentType(MappingKeys.ENTITY_TYPE_MAPPING_KEY, "model.Foo");
-		OrmEntity ormEntity = (OrmEntity) ormPersistentType.getMapping();
-		XmlEntity entityResource = getXmlEntityMappings().getEntities().get(0);
-		
-		assertNull(ormEntity.getSpecifiedDiscriminatorValue());
-		assertNull(entityResource.getDiscriminatorValue());
-
-		ormEntity.setSpecifiedDiscriminatorValue("FOO");
-		
-		assertEquals("FOO", ormEntity.getSpecifiedDiscriminatorValue());
-		assertEquals("FOO", entityResource.getDiscriminatorValue());
-		
-		ormEntity.setSpecifiedDiscriminatorValue(null);
-		
-		assertNull(ormEntity.getSpecifiedDiscriminatorValue());
-		assertNull(entityResource.getDiscriminatorValue());
-	}
-	
-	public void testGetDefaultDiscriminatorValue() throws Exception {
-		createTestEntityFieldAccess();
-		OrmPersistentType persistentType = getEntityMappings().addPersistentType(MappingKeys.ENTITY_TYPE_MAPPING_KEY, FULLY_QUALIFIED_TYPE_NAME);
-		OrmEntity ormEntity = (OrmEntity) persistentType.getMapping();
-		JavaEntity javaEntity = (JavaEntity) persistentType.getJavaPersistentType().getMapping();
-		assertEquals(null, ormEntity.getDefaultDiscriminatorValue());
-
-		createTestSubType();
-		getEntityMappings().addPersistentType(MappingKeys.ENTITY_TYPE_MAPPING_KEY, FULLY_QUALIFIED_CHILD_TYPE_NAME);
-		assertEquals(ormEntity.getName(), ormEntity.getDefaultDiscriminatorValue());
-	
-		javaEntity.getDiscriminatorColumn().setSpecifiedDiscriminatorType(DiscriminatorType.INTEGER);
-		assertNull(ormEntity.getDefaultDiscriminatorValue());
-		
-		javaEntity.getDiscriminatorColumn().setSpecifiedDiscriminatorType(null);
-		javaEntity.setSpecifiedDiscriminatorValue("FOO");
-		
-		assertEquals("FOO", ormEntity.getDefaultDiscriminatorValue());
-
-		ormEntity.setSpecifiedMetadataComplete(Boolean.TRUE);
-		assertEquals(ormEntity.getName(), ormEntity.getDefaultDiscriminatorValue());
-	}
-	
-	public void testAddSpecifiedPrimaryKeyJoinColumn() throws Exception {
-		OrmPersistentType persistentType = getEntityMappings().addPersistentType(MappingKeys.ENTITY_TYPE_MAPPING_KEY, FULLY_QUALIFIED_TYPE_NAME);
-		OrmEntity ormEntity = (OrmEntity) persistentType.getMapping();
-		XmlEntity entityResource = getXmlEntityMappings().getEntities().get(0);
-
-		OrmPrimaryKeyJoinColumn primaryKeyJoinColumn = ormEntity.addSpecifiedPrimaryKeyJoinColumn(0);
-		primaryKeyJoinColumn.setSpecifiedName("FOO");
-				
-		assertEquals("FOO", entityResource.getPrimaryKeyJoinColumns().get(0).getName());
-		
-		OrmPrimaryKeyJoinColumn primaryKeyJoinColumn2 = ormEntity.addSpecifiedPrimaryKeyJoinColumn(0);
-		primaryKeyJoinColumn2.setSpecifiedName("BAR");
-		
-		assertEquals("BAR", entityResource.getPrimaryKeyJoinColumns().get(0).getName());
-		assertEquals("FOO", entityResource.getPrimaryKeyJoinColumns().get(1).getName());
-		
-		OrmPrimaryKeyJoinColumn primaryKeyJoinColumn3 = ormEntity.addSpecifiedPrimaryKeyJoinColumn(1);
-		primaryKeyJoinColumn3.setSpecifiedName("BAZ");
-		
-		assertEquals("BAR", entityResource.getPrimaryKeyJoinColumns().get(0).getName());
-		assertEquals("BAZ", entityResource.getPrimaryKeyJoinColumns().get(1).getName());
-		assertEquals("FOO", entityResource.getPrimaryKeyJoinColumns().get(2).getName());
-		
-		ListIterator<OrmPrimaryKeyJoinColumn> primaryKeyJoinColumns = ormEntity.specifiedPrimaryKeyJoinColumns();
-		assertEquals(primaryKeyJoinColumn2, primaryKeyJoinColumns.next());
-		assertEquals(primaryKeyJoinColumn3, primaryKeyJoinColumns.next());
-		assertEquals(primaryKeyJoinColumn, primaryKeyJoinColumns.next());
-		
-		primaryKeyJoinColumns = ormEntity.specifiedPrimaryKeyJoinColumns();
-		assertEquals("BAR", primaryKeyJoinColumns.next().getName());
-		assertEquals("BAZ", primaryKeyJoinColumns.next().getName());
-		assertEquals("FOO", primaryKeyJoinColumns.next().getName());
-	}
-	
-	public void testRemoveSpecifiedPrimaryKeyJoinColumn() throws Exception {
-		OrmPersistentType persistentType = getEntityMappings().addPersistentType(MappingKeys.ENTITY_TYPE_MAPPING_KEY, FULLY_QUALIFIED_TYPE_NAME);
-		OrmEntity ormEntity = (OrmEntity) persistentType.getMapping();
-
-		ormEntity.addSpecifiedPrimaryKeyJoinColumn(0).setSpecifiedName("FOO");
-		ormEntity.addSpecifiedPrimaryKeyJoinColumn(1).setSpecifiedName("BAR");
-		ormEntity.addSpecifiedPrimaryKeyJoinColumn(2).setSpecifiedName("BAZ");
-		
-		XmlEntity entityResource = getXmlEntityMappings().getEntities().get(0);
-		assertEquals(3, entityResource.getPrimaryKeyJoinColumns().size());
-		
-		ormEntity.removeSpecifiedPrimaryKeyJoinColumn(0);
-		assertEquals(2, entityResource.getPrimaryKeyJoinColumns().size());
-		assertEquals("BAR", entityResource.getPrimaryKeyJoinColumns().get(0).getName());
-		assertEquals("BAZ", entityResource.getPrimaryKeyJoinColumns().get(1).getName());
-
-		ormEntity.removeSpecifiedPrimaryKeyJoinColumn(0);
-		assertEquals(1, entityResource.getPrimaryKeyJoinColumns().size());
-		assertEquals("BAZ", entityResource.getPrimaryKeyJoinColumns().get(0).getName());
-		
-		ormEntity.removeSpecifiedPrimaryKeyJoinColumn(0);
-		assertEquals(0, entityResource.getPrimaryKeyJoinColumns().size());
-	}
-	
-	public void testMoveSpecifiedPrimaryKeyJoinColumn() throws Exception {
-		OrmPersistentType persistentType = getEntityMappings().addPersistentType(MappingKeys.ENTITY_TYPE_MAPPING_KEY, FULLY_QUALIFIED_TYPE_NAME);
-		OrmEntity ormEntity = (OrmEntity) persistentType.getMapping();
-
-		ormEntity.addSpecifiedPrimaryKeyJoinColumn(0).setSpecifiedName("FOO");
-		ormEntity.addSpecifiedPrimaryKeyJoinColumn(1).setSpecifiedName("BAR");
-		ormEntity.addSpecifiedPrimaryKeyJoinColumn(2).setSpecifiedName("BAZ");
-		
-		XmlEntity entityResource = getXmlEntityMappings().getEntities().get(0);
-		assertEquals(3, entityResource.getPrimaryKeyJoinColumns().size());
-		
-		
-		ormEntity.moveSpecifiedPrimaryKeyJoinColumn(2, 0);
-		ListIterator<OrmPrimaryKeyJoinColumn> primaryKeyJoinColumns = ormEntity.specifiedPrimaryKeyJoinColumns();
-		assertEquals("BAR", primaryKeyJoinColumns.next().getName());
-		assertEquals("BAZ", primaryKeyJoinColumns.next().getName());
-		assertEquals("FOO", primaryKeyJoinColumns.next().getName());
-
-		assertEquals("BAR", entityResource.getPrimaryKeyJoinColumns().get(0).getName());
-		assertEquals("BAZ", entityResource.getPrimaryKeyJoinColumns().get(1).getName());
-		assertEquals("FOO", entityResource.getPrimaryKeyJoinColumns().get(2).getName());
-
-
-		ormEntity.moveSpecifiedPrimaryKeyJoinColumn(0, 1);
-		primaryKeyJoinColumns = ormEntity.specifiedPrimaryKeyJoinColumns();
-		assertEquals("BAZ", primaryKeyJoinColumns.next().getName());
-		assertEquals("BAR", primaryKeyJoinColumns.next().getName());
-		assertEquals("FOO", primaryKeyJoinColumns.next().getName());
-
-		assertEquals("BAZ", entityResource.getPrimaryKeyJoinColumns().get(0).getName());
-		assertEquals("BAR", entityResource.getPrimaryKeyJoinColumns().get(1).getName());
-		assertEquals("FOO", entityResource.getPrimaryKeyJoinColumns().get(2).getName());
-	}
-	
-	public void testUpdatePrimaryKeyJoinColumns() throws Exception {
-		OrmPersistentType persistentType = getEntityMappings().addPersistentType(MappingKeys.ENTITY_TYPE_MAPPING_KEY, FULLY_QUALIFIED_TYPE_NAME);
-		OrmEntity ormEntity = (OrmEntity) persistentType.getMapping();
-		
-		XmlEntity entityResource = getXmlEntityMappings().getEntities().get(0);
-		entityResource.getPrimaryKeyJoinColumns().add(OrmFactory.eINSTANCE.createXmlPrimaryKeyJoinColumnImpl());
-		entityResource.getPrimaryKeyJoinColumns().add(OrmFactory.eINSTANCE.createXmlPrimaryKeyJoinColumnImpl());
-		entityResource.getPrimaryKeyJoinColumns().add(OrmFactory.eINSTANCE.createXmlPrimaryKeyJoinColumnImpl());
-		
-		entityResource.getPrimaryKeyJoinColumns().get(0).setName("FOO");
-		entityResource.getPrimaryKeyJoinColumns().get(1).setName("BAR");
-		entityResource.getPrimaryKeyJoinColumns().get(2).setName("BAZ");
-
-		ListIterator<OrmPrimaryKeyJoinColumn> primaryKeyJoinColumns = ormEntity.specifiedPrimaryKeyJoinColumns();
-		assertEquals("FOO", primaryKeyJoinColumns.next().getName());
-		assertEquals("BAR", primaryKeyJoinColumns.next().getName());
-		assertEquals("BAZ", primaryKeyJoinColumns.next().getName());
-		assertFalse(primaryKeyJoinColumns.hasNext());
-		
-		entityResource.getPrimaryKeyJoinColumns().move(2, 0);
-		primaryKeyJoinColumns = ormEntity.specifiedPrimaryKeyJoinColumns();
-		assertEquals("BAR", primaryKeyJoinColumns.next().getName());
-		assertEquals("BAZ", primaryKeyJoinColumns.next().getName());
-		assertEquals("FOO", primaryKeyJoinColumns.next().getName());
-		assertFalse(primaryKeyJoinColumns.hasNext());
-
-		entityResource.getPrimaryKeyJoinColumns().move(0, 1);
-		primaryKeyJoinColumns = ormEntity.specifiedPrimaryKeyJoinColumns();
-		assertEquals("BAZ", primaryKeyJoinColumns.next().getName());
-		assertEquals("BAR", primaryKeyJoinColumns.next().getName());
-		assertEquals("FOO", primaryKeyJoinColumns.next().getName());
-		assertFalse(primaryKeyJoinColumns.hasNext());
-
-		entityResource.getPrimaryKeyJoinColumns().remove(1);
-		primaryKeyJoinColumns = ormEntity.specifiedPrimaryKeyJoinColumns();
-		assertEquals("BAZ", primaryKeyJoinColumns.next().getName());
-		assertEquals("FOO", primaryKeyJoinColumns.next().getName());
-		assertFalse(primaryKeyJoinColumns.hasNext());
-
-		entityResource.getPrimaryKeyJoinColumns().remove(1);
-		primaryKeyJoinColumns = ormEntity.specifiedPrimaryKeyJoinColumns();
-		assertEquals("BAZ", primaryKeyJoinColumns.next().getName());
-		assertFalse(primaryKeyJoinColumns.hasNext());
-		
-		entityResource.getPrimaryKeyJoinColumns().remove(0);
-		assertFalse(ormEntity.specifiedPrimaryKeyJoinColumns().hasNext());
-	}
-
-	public void testDefaultPrimaryKeyJoinColumns() throws Exception {
-		createTestType();
-		createTestSubTypeUnmapped();
-		
-		OrmPersistentType persistentType = getEntityMappings().addPersistentType(MappingKeys.ENTITY_TYPE_MAPPING_KEY, FULLY_QUALIFIED_TYPE_NAME);
-		OrmPersistentType childPersistentType = getEntityMappings().addPersistentType(MappingKeys.ENTITY_TYPE_MAPPING_KEY, FULLY_QUALIFIED_CHILD_TYPE_NAME);
-		childPersistentType.getJavaPersistentType().setMappingKey(MappingKeys.NULL_TYPE_MAPPING_KEY);
-		
-		persistentType.getAttributeNamed("id").makeSpecified(MappingKeys.ID_ATTRIBUTE_MAPPING_KEY);
-		
-		((OrmEntity) persistentType.getMapping()).setSpecifiedInheritanceStrategy(InheritanceType.JOINED);
-		
-		OrmEntity childEntity = (OrmEntity) childPersistentType.getMapping();
-		
-		assertTrue(childEntity.defaultPrimaryKeyJoinColumns().hasNext());
-		assertEquals("id", childEntity.defaultPrimaryKeyJoinColumns().next().getDefaultName());
-		assertEquals("id", childEntity.defaultPrimaryKeyJoinColumns().next().getDefaultReferencedColumnName());
-		
-		childPersistentType.getJavaPersistentType().setMappingKey(MappingKeys.ENTITY_TYPE_MAPPING_KEY);
-		persistentType.getJavaPersistentType().setMappingKey(MappingKeys.ENTITY_TYPE_MAPPING_KEY);
-		
-		assertTrue(childEntity.defaultPrimaryKeyJoinColumns().hasNext());
-		assertEquals("id", childEntity.defaultPrimaryKeyJoinColumns().next().getDefaultName());
-		assertEquals("id", childEntity.defaultPrimaryKeyJoinColumns().next().getDefaultReferencedColumnName());
-		
-		OrmPrimaryKeyJoinColumn specifiedPkJoinColumn = childEntity.addSpecifiedPrimaryKeyJoinColumn(0);
-		specifiedPkJoinColumn.setSpecifiedName("FOO");
-		specifiedPkJoinColumn.setSpecifiedReferencedColumnName("BAR");
-		
-		assertFalse(childEntity.defaultPrimaryKeyJoinColumns().hasNext());
-		
-		//remove the pkJoinColumn from the context mode, verify context model has a default pkJoinColumn
-		childEntity.removeSpecifiedPrimaryKeyJoinColumn(0);
-		assertTrue(childEntity.defaultPrimaryKeyJoinColumns().hasNext());
-		assertEquals("id", childEntity.defaultPrimaryKeyJoinColumns().next().getDefaultName());
-		assertEquals("id", childEntity.defaultPrimaryKeyJoinColumns().next().getDefaultReferencedColumnName());
-
-		
-		childPersistentType.getJavaPersistentType().setMappingKey(MappingKeys.NULL_TYPE_MAPPING_KEY);
-		persistentType.getJavaPersistentType().setMappingKey(MappingKeys.NULL_TYPE_MAPPING_KEY);
-		
-		specifiedPkJoinColumn = childEntity.addSpecifiedPrimaryKeyJoinColumn(0);
-		specifiedPkJoinColumn.setSpecifiedName("FOO");
-		specifiedPkJoinColumn.setSpecifiedReferencedColumnName("BAR");		
-		assertFalse(childEntity.defaultPrimaryKeyJoinColumns().hasNext());
-		//now remove the pkJoinColumn from the resource model, verify context model updates and has a default pkJoinColumn
-		((XmlEntity)childEntity.getResourceTypeMapping()).getPrimaryKeyJoinColumns().remove(0);
-		assertTrue(childEntity.defaultPrimaryKeyJoinColumns().hasNext());
-		assertEquals("id", childEntity.defaultPrimaryKeyJoinColumns().next().getDefaultName());
-		assertEquals("id", childEntity.defaultPrimaryKeyJoinColumns().next().getDefaultReferencedColumnName());
-	}
-	
-	public void testDefaultPrimaryKeyJoinColumnsFromJava() throws Exception {
-		createTestEntityFieldAccess();
-		createTestSubType();
-		
-		OrmPersistentType persistentType = getEntityMappings().addPersistentType(MappingKeys.ENTITY_TYPE_MAPPING_KEY, FULLY_QUALIFIED_TYPE_NAME);
-		OrmPersistentType childPersistentType = getEntityMappings().addPersistentType(MappingKeys.ENTITY_TYPE_MAPPING_KEY, FULLY_QUALIFIED_CHILD_TYPE_NAME);
-		
-		
-		((JavaEntity) persistentType.getJavaPersistentType().getMapping()).setSpecifiedInheritanceStrategy(InheritanceType.JOINED);
-		
-		OrmEntity childEntity = (OrmEntity) childPersistentType.getMapping();
-		
-		assertTrue(childEntity.defaultPrimaryKeyJoinColumns().hasNext());
-		assertEquals("id", childEntity.defaultPrimaryKeyJoinColumns().next().getDefaultName());
-		assertEquals("id", childEntity.defaultPrimaryKeyJoinColumns().next().getDefaultReferencedColumnName());
-		
-		JavaEntity javaEntity = (JavaEntity) childPersistentType.getJavaPersistentType().getMapping();
-		JavaPrimaryKeyJoinColumn javaPrimaryKeyJoinColumn = javaEntity.addSpecifiedPrimaryKeyJoinColumn(0);
-		javaPrimaryKeyJoinColumn.setSpecifiedName("FOO");
-		javaPrimaryKeyJoinColumn.setSpecifiedReferencedColumnName("BAR");
-		
-		JavaPrimaryKeyJoinColumn javaPrimaryKeyJoinColumn2 = javaEntity.addSpecifiedPrimaryKeyJoinColumn(1);
-		javaPrimaryKeyJoinColumn2.setSpecifiedName("FOO2");
-		javaPrimaryKeyJoinColumn2.setSpecifiedReferencedColumnName("BAR2");
-		
-		childPersistentType.getJavaPersistentType().setMappingKey(MappingKeys.ENTITY_TYPE_MAPPING_KEY);
-		persistentType.getJavaPersistentType().setMappingKey(MappingKeys.ENTITY_TYPE_MAPPING_KEY);
-		
-		ListIterator<OrmPrimaryKeyJoinColumn> defaultPrimaryKeyJoinColumns = childEntity.defaultPrimaryKeyJoinColumns();
-		OrmPrimaryKeyJoinColumn defaultPrimaryKeyJoinColumn = defaultPrimaryKeyJoinColumns.next();
-		assertEquals("FOO", defaultPrimaryKeyJoinColumn.getName());
-		assertEquals("BAR", defaultPrimaryKeyJoinColumn.getReferencedColumnName());
-		
-		defaultPrimaryKeyJoinColumn = defaultPrimaryKeyJoinColumns.next();
-		assertEquals("FOO2", defaultPrimaryKeyJoinColumn.getName());
-		assertEquals("BAR2", defaultPrimaryKeyJoinColumn.getReferencedColumnName());
-		assertFalse(defaultPrimaryKeyJoinColumns.hasNext());
-		
-		childEntity.setSpecifiedMetadataComplete(Boolean.TRUE);
-		defaultPrimaryKeyJoinColumns = childEntity.defaultPrimaryKeyJoinColumns();
-		defaultPrimaryKeyJoinColumn = defaultPrimaryKeyJoinColumns.next();
-		assertEquals("id", defaultPrimaryKeyJoinColumn.getDefaultName());
-		assertEquals("id", defaultPrimaryKeyJoinColumn.getDefaultReferencedColumnName());
-		
-		assertFalse(defaultPrimaryKeyJoinColumns.hasNext());
-		
-	}
-	
-	public void testMoveSpecifiedAttributeOverride() throws Exception {
-		OrmPersistentType persistentType = getEntityMappings().addPersistentType(MappingKeys.ENTITY_TYPE_MAPPING_KEY, FULLY_QUALIFIED_TYPE_NAME);
-		OrmEntity ormEntity = (OrmEntity) persistentType.getMapping();
-
-		XmlEntity entityResource = getXmlEntityMappings().getEntities().get(0);
-		entityResource.getAttributeOverrides().add(OrmFactory.eINSTANCE.createXmlAttributeOverrideImpl());
-		entityResource.getAttributeOverrides().add(OrmFactory.eINSTANCE.createXmlAttributeOverrideImpl());
-		entityResource.getAttributeOverrides().add(OrmFactory.eINSTANCE.createXmlAttributeOverrideImpl());
-		
-		entityResource.getAttributeOverrides().get(0).setName("FOO");
-		entityResource.getAttributeOverrides().get(1).setName("BAR");
-		entityResource.getAttributeOverrides().get(2).setName("BAZ");
-		
-		assertEquals(3, entityResource.getAttributeOverrides().size());
-		
-		
-		ormEntity.moveSpecifiedAttributeOverride(2, 0);
-		ListIterator<OrmAttributeOverride> attributeOverrides = ormEntity.specifiedAttributeOverrides();
-		assertEquals("BAR", attributeOverrides.next().getName());
-		assertEquals("BAZ", attributeOverrides.next().getName());
-		assertEquals("FOO", attributeOverrides.next().getName());
-
-		assertEquals("BAR", entityResource.getAttributeOverrides().get(0).getName());
-		assertEquals("BAZ", entityResource.getAttributeOverrides().get(1).getName());
-		assertEquals("FOO", entityResource.getAttributeOverrides().get(2).getName());
-
-
-		ormEntity.moveSpecifiedAttributeOverride(0, 1);
-		attributeOverrides = ormEntity.specifiedAttributeOverrides();
-		assertEquals("BAZ", attributeOverrides.next().getName());
-		assertEquals("BAR", attributeOverrides.next().getName());
-		assertEquals("FOO", attributeOverrides.next().getName());
-
-		assertEquals("BAZ", entityResource.getAttributeOverrides().get(0).getName());
-		assertEquals("BAR", entityResource.getAttributeOverrides().get(1).getName());
-		assertEquals("FOO", entityResource.getAttributeOverrides().get(2).getName());
-	}
-	
-	public void testUpdateAttributeOverrides() throws Exception {
-		OrmPersistentType persistentType = getEntityMappings().addPersistentType(MappingKeys.ENTITY_TYPE_MAPPING_KEY, FULLY_QUALIFIED_TYPE_NAME);
-		OrmEntity ormEntity = (OrmEntity) persistentType.getMapping();
-		
-		XmlEntity entityResource = getXmlEntityMappings().getEntities().get(0);
-		entityResource.getAttributeOverrides().add(OrmFactory.eINSTANCE.createXmlAttributeOverrideImpl());
-		entityResource.getAttributeOverrides().add(OrmFactory.eINSTANCE.createXmlAttributeOverrideImpl());
-		entityResource.getAttributeOverrides().add(OrmFactory.eINSTANCE.createXmlAttributeOverrideImpl());
-		
-		entityResource.getAttributeOverrides().get(0).setName("FOO");
-		entityResource.getAttributeOverrides().get(1).setName("BAR");
-		entityResource.getAttributeOverrides().get(2).setName("BAZ");
-
-		ListIterator<OrmAttributeOverride> attributeOverrides = ormEntity.specifiedAttributeOverrides();
-		assertEquals("FOO", attributeOverrides.next().getName());
-		assertEquals("BAR", attributeOverrides.next().getName());
-		assertEquals("BAZ", attributeOverrides.next().getName());
-		assertFalse(attributeOverrides.hasNext());
-		
-		entityResource.getAttributeOverrides().move(2, 0);
-		attributeOverrides = ormEntity.specifiedAttributeOverrides();
-		assertEquals("BAR", attributeOverrides.next().getName());
-		assertEquals("BAZ", attributeOverrides.next().getName());
-		assertEquals("FOO", attributeOverrides.next().getName());
-		assertFalse(attributeOverrides.hasNext());
-
-		entityResource.getAttributeOverrides().move(0, 1);
-		attributeOverrides = ormEntity.specifiedAttributeOverrides();
-		assertEquals("BAZ", attributeOverrides.next().getName());
-		assertEquals("BAR", attributeOverrides.next().getName());
-		assertEquals("FOO", attributeOverrides.next().getName());
-		assertFalse(attributeOverrides.hasNext());
-
-		entityResource.getAttributeOverrides().remove(1);
-		attributeOverrides = ormEntity.specifiedAttributeOverrides();
-		assertEquals("BAZ", attributeOverrides.next().getName());
-		assertEquals("FOO", attributeOverrides.next().getName());
-		assertFalse(attributeOverrides.hasNext());
-
-		entityResource.getAttributeOverrides().remove(1);
-		attributeOverrides = ormEntity.specifiedAttributeOverrides();
-		assertEquals("BAZ", attributeOverrides.next().getName());
-		assertFalse(attributeOverrides.hasNext());
-		
-		entityResource.getAttributeOverrides().remove(0);
-		assertFalse(ormEntity.specifiedAttributeOverrides().hasNext());
-	}
-	
-	public void testVirtualAttributeOverrides() throws Exception {
-		createTestMappedSuperclass();
-		createTestSubType();
-		OrmPersistentType persistentType = getEntityMappings().addPersistentType(MappingKeys.ENTITY_TYPE_MAPPING_KEY, FULLY_QUALIFIED_CHILD_TYPE_NAME);
-		OrmPersistentType persistentType2 = getEntityMappings().addPersistentType(MappingKeys.MAPPED_SUPERCLASS_TYPE_MAPPING_KEY, FULLY_QUALIFIED_TYPE_NAME);
-		
-		
-		OrmEntity entity = (OrmEntity) persistentType.getMapping();
-		
-		assertEquals(3, entity.virtualAttributeOverridesSize());
-		ListIterator<OrmAttributeOverride> virtualAttributeOverrides = entity.virtualAttributeOverrides();
-		OrmAttributeOverride attributeOverride = virtualAttributeOverrides.next();
-		assertEquals("id", attributeOverride.getName());
-		attributeOverride = virtualAttributeOverrides.next();
-		assertEquals("name", attributeOverride.getName());
-		attributeOverride = virtualAttributeOverrides.next();
-		assertEquals("foo", attributeOverride.getName());
-		
-		entity.virtualAttributeOverrides().next().setVirtual(false);
-		
-		assertEquals(2, entity.virtualAttributeOverridesSize());
-		virtualAttributeOverrides = entity.virtualAttributeOverrides();
-		attributeOverride = virtualAttributeOverrides.next();
-		assertEquals("name", attributeOverride.getName());
-		attributeOverride = virtualAttributeOverrides.next();
-		assertEquals("foo", attributeOverride.getName());
-		
-		entity.setSpecifiedMetadataComplete(Boolean.TRUE);
-		assertEquals(2, entity.virtualAttributeOverridesSize());
-		virtualAttributeOverrides = entity.virtualAttributeOverrides();
-		attributeOverride = virtualAttributeOverrides.next();
-		assertEquals("name", attributeOverride.getName());
-		attributeOverride = virtualAttributeOverrides.next();
-		assertEquals("foo", attributeOverride.getName());
-		
-		entity.specifiedAttributeOverrides().next().setVirtual(true);
-		entity.setSpecifiedMetadataComplete(Boolean.FALSE);
-		entity.getJavaEntity().virtualAttributeOverrides().next().setVirtual(false);
-		entity.getJavaEntity().specifiedAttributeOverrides().next().getColumn().setSpecifiedName("FOO");
-		assertEquals(3, entity.virtualAttributeOverridesSize());
-		virtualAttributeOverrides = entity.virtualAttributeOverrides();
-		attributeOverride = virtualAttributeOverrides.next();
-		assertEquals("id", attributeOverride.getName());
-		assertEquals("FOO", attributeOverride.getColumn().getSpecifiedName());//TODO specified or default?
-		attributeOverride = virtualAttributeOverrides.next();
-		assertEquals("name", attributeOverride.getName());
-		assertEquals("name", attributeOverride.getColumn().getSpecifiedName());
-		attributeOverride = virtualAttributeOverrides.next();
-		assertEquals("foo", attributeOverride.getName());
-		
-		persistentType2.getAttributeNamed("name").makeSpecified();
-		OrmBasicMapping basicMapping = (OrmBasicMapping) persistentType2.getAttributeNamed("name").getMapping();
-		basicMapping.getColumn().setSpecifiedName("MY_NAME");
-		
-		assertEquals(3, entity.virtualAttributeOverridesSize());
-		virtualAttributeOverrides = entity.virtualAttributeOverrides();
-		attributeOverride = virtualAttributeOverrides.next();
-		assertEquals("name", attributeOverride.getName());
-		assertEquals("MY_NAME", attributeOverride.getColumn().getSpecifiedName());
-		attributeOverride = virtualAttributeOverrides.next();
-		assertEquals("id", attributeOverride.getName());
-		assertEquals("FOO", attributeOverride.getColumn().getSpecifiedName());//TODO specified or default?
-		attributeOverride = virtualAttributeOverrides.next();
-		assertEquals("foo", attributeOverride.getName());
-	}
-	
-	public void testVirtualAttributeOverridesNoJavaEntity() throws Exception {
-		createTestMappedSuperclass();
-		createTestSubType();
-		OrmPersistentType persistentType = getEntityMappings().addPersistentType(MappingKeys.ENTITY_TYPE_MAPPING_KEY, FULLY_QUALIFIED_CHILD_TYPE_NAME);
-		getEntityMappings().addPersistentType(MappingKeys.MAPPED_SUPERCLASS_TYPE_MAPPING_KEY, FULLY_QUALIFIED_TYPE_NAME);
-		
-		
-		OrmEntity entity = (OrmEntity) persistentType.getMapping();
-		
-		persistentType.getJavaPersistentType().setMappingKey(MappingKeys.NULL_TYPE_MAPPING_KEY);
-		assertEquals(3, entity.virtualAttributeOverridesSize());
-		ListIterator<OrmAttributeOverride> virtualAttributeOverrides = entity.virtualAttributeOverrides();
-		OrmAttributeOverride attributeOverride = virtualAttributeOverrides.next();
-		assertEquals("id", attributeOverride.getName());
-		attributeOverride = virtualAttributeOverrides.next();
-		assertEquals("name", attributeOverride.getName());
-		attributeOverride = virtualAttributeOverrides.next();
-		assertEquals("foo", attributeOverride.getName());
-	}
-	
-	public void testAttributeOverrideColumnDefaults() throws Exception {
-		createTestMappedSuperclass();
-		createTestSubType();
-		OrmPersistentType persistentType = getEntityMappings().addPersistentType(MappingKeys.ENTITY_TYPE_MAPPING_KEY, FULLY_QUALIFIED_CHILD_TYPE_NAME);
-		getEntityMappings().addPersistentType(MappingKeys.MAPPED_SUPERCLASS_TYPE_MAPPING_KEY, FULLY_QUALIFIED_TYPE_NAME);
-		
-		
-		OrmEntity entity = (OrmEntity) persistentType.getMapping();
-		
-		entity.virtualAttributeOverrides().next().setVirtual(false);
-		
-		OrmAttributeOverride attributeOverride = entity.specifiedAttributeOverrides().next();
-		assertEquals("id", attributeOverride.getColumn().getDefaultName());
-		assertEquals(CHILD_TYPE_NAME, attributeOverride.getColumn().getDefaultTable());
-		
-		((JavaEntity) persistentType.getJavaPersistentType().getMapping()).getTable().setSpecifiedName("FOO");
-		assertEquals("id", attributeOverride.getColumn().getDefaultName());
-		assertEquals("FOO", attributeOverride.getColumn().getDefaultTable());
-		
-		entity.setSpecifiedMetadataComplete(Boolean.TRUE);
-		assertEquals("id", attributeOverride.getColumn().getDefaultName());
-		assertEquals(CHILD_TYPE_NAME, attributeOverride.getColumn().getDefaultTable());
-		
-		entity.setSpecifiedMetadataComplete(Boolean.FALSE);
-		entity.getTable().setSpecifiedName("BAR");
-		assertEquals("id", attributeOverride.getColumn().getDefaultName());
-		assertEquals("BAR", attributeOverride.getColumn().getDefaultTable());
-	}
-	
-	public void testAttributeOverrideColumnDefaultsNoJavaAnnotations() throws Exception {
-		createTestType();
-		createTestSubTypeUnmapped();
-		OrmPersistentType persistentType = getEntityMappings().addPersistentType(MappingKeys.ENTITY_TYPE_MAPPING_KEY, FULLY_QUALIFIED_CHILD_TYPE_NAME);
-		getEntityMappings().addPersistentType(MappingKeys.MAPPED_SUPERCLASS_TYPE_MAPPING_KEY, FULLY_QUALIFIED_TYPE_NAME);
-		
-		OrmEntity entity = (OrmEntity) persistentType.getMapping();	
-		OrmAttributeOverride attributeOverride = entity.virtualAttributeOverrides().next();
-		((OrmPersistentAttribute) persistentType.getParentPersistentType().getAttributeNamed("id")).makeSpecified();
-		BasicMapping basicMapping = (BasicMapping) persistentType.getParentPersistentType().getAttributeNamed("id").getSpecifiedMapping();
-		basicMapping.getColumn().setSpecifiedName("MY_COLUMN");
-		basicMapping.getColumn().setSpecifiedTable("BAR");
-		
-		assertEquals("MY_COLUMN", attributeOverride.getColumn().getDefaultName());
-		assertEquals("BAR", attributeOverride.getColumn().getDefaultTable());
-
-	
-		getEntityMappings().getPersistenceUnitMetadata().setXmlMappingMetadataComplete(true);
-		attributeOverride = entity.virtualAttributeOverrides().next();
-		assertEquals("MY_COLUMN", attributeOverride.getColumn().getName());
-		assertEquals("BAR", attributeOverride.getColumn().getTable());
-	}
-	
-	public void testOverridableAttributes() throws Exception {
-		createTestEntityDefaultFieldAccess();
-		
-		OrmPersistentType persistentType = getEntityMappings().addPersistentType(MappingKeys.ENTITY_TYPE_MAPPING_KEY, FULLY_QUALIFIED_TYPE_NAME);
-		Entity entity = (Entity) persistentType.getMapping();
-		Iterator<OrmPersistentAttribute> overridableAttributes = persistentType.getMapping().overridableAttributes();
-		assertFalse(overridableAttributes.hasNext());
-		
-		
-		entity.setSpecifiedInheritanceStrategy(InheritanceType.TABLE_PER_CLASS);
-		
-		overridableAttributes = entity.overridableAttributes();		
-		assertEquals("id", overridableAttributes.next().getName());
-		assertEquals("name", overridableAttributes.next().getName());
-		assertFalse(overridableAttributes.hasNext());
-	}
-
-	public void testOverridableAttributeNames() throws Exception {
-		createTestEntityDefaultFieldAccess();
-		
-		OrmPersistentType persistentType = getEntityMappings().addPersistentType(MappingKeys.ENTITY_TYPE_MAPPING_KEY, FULLY_QUALIFIED_TYPE_NAME);
-		Entity entity = (Entity) persistentType.getMapping();
-		Iterator<String> overridableAttributeNames = persistentType.getMapping().overridableAttributeNames();
-		
-		
-		entity.setSpecifiedInheritanceStrategy(InheritanceType.TABLE_PER_CLASS);
-		
-		overridableAttributeNames = entity.overridableAttributeNames();
-		assertEquals("id", overridableAttributeNames.next());
-		assertEquals("name", overridableAttributeNames.next());
-		assertFalse(overridableAttributeNames.hasNext());
-	}
-
-	public void testAllOverridableAttributes() throws Exception {
-		createTestMappedSuperclass();
-		createTestSubType();
-		OrmPersistentType persistentType = getEntityMappings().addPersistentType(MappingKeys.ENTITY_TYPE_MAPPING_KEY, FULLY_QUALIFIED_CHILD_TYPE_NAME);
-		getEntityMappings().addPersistentType(MappingKeys.MAPPED_SUPERCLASS_TYPE_MAPPING_KEY, FULLY_QUALIFIED_TYPE_NAME);		
-		OrmEntity entity = (OrmEntity) persistentType.getMapping();
-	
-		Iterator<PersistentAttribute> overridableAttributes = entity.allOverridableAttributes();
-		assertEquals("id", overridableAttributes.next().getName());
-		assertEquals("name", overridableAttributes.next().getName());
-		assertEquals("foo", overridableAttributes.next().getName());
-		assertFalse(overridableAttributes.hasNext());
-	}
-
-	public void testAllOverridableAttributesTablePerClass() throws Exception {
-		createTestAbstractEntityTablePerClass();
-		createTestSubType();
-		OrmPersistentType persistentType = getEntityMappings().addPersistentType(MappingKeys.ENTITY_TYPE_MAPPING_KEY, FULLY_QUALIFIED_CHILD_TYPE_NAME);
-		OrmPersistentType abstractPersistentType = getEntityMappings().addPersistentType(MappingKeys.ENTITY_TYPE_MAPPING_KEY, FULLY_QUALIFIED_TYPE_NAME);		
-		OrmEntity entity = (OrmEntity) persistentType.getMapping();
-		OrmEntity abstractEntity = (OrmEntity) abstractPersistentType.getMapping();
-	
-		Iterator<PersistentAttribute> overridableAttributes = entity.allOverridableAttributes();
-		assertEquals("id", overridableAttributes.next().getName());
-		assertEquals("name", overridableAttributes.next().getName());
-		assertEquals("foo", overridableAttributes.next().getName());
-		assertFalse(overridableAttributes.hasNext());
-		
-		
-		overridableAttributes = abstractEntity.allOverridableAttributes();
-		assertFalse(overridableAttributes.hasNext());
-	}
-	
-	public void testDefaultAttributeOverridesEntityHierachy() throws Exception {
-		createTestAbstractEntityTablePerClass();
-		createTestSubType();
-		
-		PersistentType abstractPersistentType = getEntityMappings().addPersistentType(MappingKeys.ENTITY_TYPE_MAPPING_KEY, FULLY_QUALIFIED_TYPE_NAME);
-		PersistentType concretePersistentType = getEntityMappings().addPersistentType(MappingKeys.ENTITY_TYPE_MAPPING_KEY, FULLY_QUALIFIED_CHILD_TYPE_NAME);
-		Entity concreteEntity =(Entity) concretePersistentType.getMapping();
-		
-		assertEquals(3, concreteEntity.virtualAttributeOverridesSize());
-		AttributeOverride virtualAttributeOverride = concreteEntity.virtualAttributeOverrides().next();
-		assertEquals("id", virtualAttributeOverride.getName());
-		assertEquals("id", virtualAttributeOverride.getColumn().getName());
-		assertEquals(CHILD_TYPE_NAME, virtualAttributeOverride.getColumn().getTable());
-		
-		
-		OrmBasicMapping idMapping = (OrmBasicMapping) abstractPersistentType.getAttributeNamed("id").getMapping();
-		idMapping.getPersistentAttribute().makeSpecified();
-		idMapping = (OrmBasicMapping) abstractPersistentType.getAttributeNamed("id").getMapping();
-		idMapping.getColumn().setSpecifiedName("FOO");
-		idMapping.getColumn().setSpecifiedTable("BAR");
-		
-
-		assertEquals(3, concreteEntity.virtualAttributeOverridesSize());
-		virtualAttributeOverride = concreteEntity.virtualAttributeOverrides().next();
-		assertEquals("id", virtualAttributeOverride.getName());
-		assertEquals("FOO", virtualAttributeOverride.getColumn().getName());
-		assertEquals("BAR", virtualAttributeOverride.getColumn().getTable());
-
-		idMapping.getColumn().setSpecifiedName(null);
-		idMapping.getColumn().setSpecifiedTable(null);
-
-		virtualAttributeOverride = concreteEntity.virtualAttributeOverrides().next();
-		assertEquals("id", virtualAttributeOverride.getName());
-		assertEquals("id", virtualAttributeOverride.getColumn().getName());
-		assertEquals(CHILD_TYPE_NAME, virtualAttributeOverride.getColumn().getTable());
-		
-		virtualAttributeOverride = virtualAttributeOverride.setVirtual(false);
-		assertEquals(2, concreteEntity.virtualAttributeOverridesSize());
-	}
-	
-	public void testMoveSpecifiedAssociationOverride() throws Exception {
-		OrmPersistentType persistentType = getEntityMappings().addPersistentType(MappingKeys.ENTITY_TYPE_MAPPING_KEY, FULLY_QUALIFIED_TYPE_NAME);
-		OrmEntity ormEntity = (OrmEntity) persistentType.getMapping();
-
-		XmlEntity entityResource = getXmlEntityMappings().getEntities().get(0);
-		entityResource.getAssociationOverrides().add(OrmFactory.eINSTANCE.createXmlAssociationOverrideImpl());
-		entityResource.getAssociationOverrides().add(OrmFactory.eINSTANCE.createXmlAssociationOverrideImpl());
-		entityResource.getAssociationOverrides().add(OrmFactory.eINSTANCE.createXmlAssociationOverrideImpl());
-		
-		entityResource.getAssociationOverrides().get(0).setName("FOO");
-		entityResource.getAssociationOverrides().get(1).setName("BAR");
-		entityResource.getAssociationOverrides().get(2).setName("BAZ");
-		
-		assertEquals(3, entityResource.getAssociationOverrides().size());
-		
-		
-		ormEntity.moveSpecifiedAssociationOverride(2, 0);
-		ListIterator<OrmAssociationOverride> associationOverrides = ormEntity.specifiedAssociationOverrides();
-		assertEquals("BAR", associationOverrides.next().getName());
-		assertEquals("BAZ", associationOverrides.next().getName());
-		assertEquals("FOO", associationOverrides.next().getName());
-
-		assertEquals("BAR", entityResource.getAssociationOverrides().get(0).getName());
-		assertEquals("BAZ", entityResource.getAssociationOverrides().get(1).getName());
-		assertEquals("FOO", entityResource.getAssociationOverrides().get(2).getName());
-
-
-		ormEntity.moveSpecifiedAssociationOverride(0, 1);
-		associationOverrides = ormEntity.specifiedAssociationOverrides();
-		assertEquals("BAZ", associationOverrides.next().getName());
-		assertEquals("BAR", associationOverrides.next().getName());
-		assertEquals("FOO", associationOverrides.next().getName());
-
-		assertEquals("BAZ", entityResource.getAssociationOverrides().get(0).getName());
-		assertEquals("BAR", entityResource.getAssociationOverrides().get(1).getName());
-		assertEquals("FOO", entityResource.getAssociationOverrides().get(2).getName());
-	}
-	
-	public void testUpdateAssociationOverrides() throws Exception {
-		OrmPersistentType persistentType = getEntityMappings().addPersistentType(MappingKeys.ENTITY_TYPE_MAPPING_KEY, FULLY_QUALIFIED_TYPE_NAME);
-		OrmEntity ormEntity = (OrmEntity) persistentType.getMapping();
-		
-		XmlEntity entityResource = getXmlEntityMappings().getEntities().get(0);
-		entityResource.getAssociationOverrides().add(OrmFactory.eINSTANCE.createXmlAssociationOverrideImpl());
-		entityResource.getAssociationOverrides().add(OrmFactory.eINSTANCE.createXmlAssociationOverrideImpl());
-		entityResource.getAssociationOverrides().add(OrmFactory.eINSTANCE.createXmlAssociationOverrideImpl());
-		
-		entityResource.getAssociationOverrides().get(0).setName("FOO");
-		entityResource.getAssociationOverrides().get(1).setName("BAR");
-		entityResource.getAssociationOverrides().get(2).setName("BAZ");
-
-		ListIterator<OrmAssociationOverride> associationOverrides = ormEntity.specifiedAssociationOverrides();
-		assertEquals("FOO", associationOverrides.next().getName());
-		assertEquals("BAR", associationOverrides.next().getName());
-		assertEquals("BAZ", associationOverrides.next().getName());
-		assertFalse(associationOverrides.hasNext());
-		
-		entityResource.getAssociationOverrides().move(2, 0);
-		associationOverrides = ormEntity.specifiedAssociationOverrides();
-		assertEquals("BAR", associationOverrides.next().getName());
-		assertEquals("BAZ", associationOverrides.next().getName());
-		assertEquals("FOO", associationOverrides.next().getName());
-		assertFalse(associationOverrides.hasNext());
-
-		entityResource.getAssociationOverrides().move(0, 1);
-		associationOverrides = ormEntity.specifiedAssociationOverrides();
-		assertEquals("BAZ", associationOverrides.next().getName());
-		assertEquals("BAR", associationOverrides.next().getName());
-		assertEquals("FOO", associationOverrides.next().getName());
-		assertFalse(associationOverrides.hasNext());
-
-		entityResource.getAssociationOverrides().remove(1);
-		associationOverrides = ormEntity.specifiedAssociationOverrides();
-		assertEquals("BAZ", associationOverrides.next().getName());
-		assertEquals("FOO", associationOverrides.next().getName());
-		assertFalse(associationOverrides.hasNext());
-
-		entityResource.getAssociationOverrides().remove(1);
-		associationOverrides = ormEntity.specifiedAssociationOverrides();
-		assertEquals("BAZ", associationOverrides.next().getName());
-		assertFalse(associationOverrides.hasNext());
-		
-		entityResource.getAssociationOverrides().remove(0);
-		assertFalse(ormEntity.specifiedAssociationOverrides().hasNext());
-	}
-
-	
-	public void testAddNamedQuery() throws Exception {
-		OrmPersistentType persistentType = getEntityMappings().addPersistentType(MappingKeys.ENTITY_TYPE_MAPPING_KEY, FULLY_QUALIFIED_TYPE_NAME);
-		OrmEntity ormEntity = (OrmEntity) persistentType.getMapping();
-		XmlEntity entityResource = getXmlEntityMappings().getEntities().get(0);
-
-		OrmNamedQuery namedQuery = ormEntity.addNamedQuery(0);
-		namedQuery.setName("FOO");
-				
-		assertEquals("FOO", entityResource.getNamedQueries().get(0).getName());
-		
-		OrmNamedQuery namedQuery2 = ormEntity.addNamedQuery(0);
-		namedQuery2.setName("BAR");
-		
-		assertEquals("BAR", entityResource.getNamedQueries().get(0).getName());
-		assertEquals("FOO", entityResource.getNamedQueries().get(1).getName());
-		
-		OrmNamedQuery namedQuery3 = ormEntity.addNamedQuery(1);
-		namedQuery3.setName("BAZ");
-		
-		assertEquals("BAR", entityResource.getNamedQueries().get(0).getName());
-		assertEquals("BAZ", entityResource.getNamedQueries().get(1).getName());
-		assertEquals("FOO", entityResource.getNamedQueries().get(2).getName());
-		
-		ListIterator<OrmNamedQuery> namedQueries = ormEntity.namedQueries();
-		assertEquals(namedQuery2, namedQueries.next());
-		assertEquals(namedQuery3, namedQueries.next());
-		assertEquals(namedQuery, namedQueries.next());
-		
-		namedQueries = ormEntity.namedQueries();
-		assertEquals("BAR", namedQueries.next().getName());
-		assertEquals("BAZ", namedQueries.next().getName());
-		assertEquals("FOO", namedQueries.next().getName());
-	}
-	
-	public void testRemoveNamedQuery() throws Exception {
-		OrmPersistentType persistentType = getEntityMappings().addPersistentType(MappingKeys.ENTITY_TYPE_MAPPING_KEY, FULLY_QUALIFIED_TYPE_NAME);
-		OrmEntity ormEntity = (OrmEntity) persistentType.getMapping();
-
-		ormEntity.addNamedQuery(0).setName("FOO");
-		ormEntity.addNamedQuery(1).setName("BAR");
-		ormEntity.addNamedQuery(2).setName("BAZ");
-		
-		XmlEntity entityResource = getXmlEntityMappings().getEntities().get(0);
-		assertEquals(3, entityResource.getNamedQueries().size());
-		
-		ormEntity.removeNamedQuery(0);
-		assertEquals(2, entityResource.getNamedQueries().size());
-		assertEquals("BAR", entityResource.getNamedQueries().get(0).getName());
-		assertEquals("BAZ", entityResource.getNamedQueries().get(1).getName());
-
-		ormEntity.removeNamedQuery(0);
-		assertEquals(1, entityResource.getNamedQueries().size());
-		assertEquals("BAZ", entityResource.getNamedQueries().get(0).getName());
-		
-		ormEntity.removeNamedQuery(0);
-		assertEquals(0, entityResource.getNamedQueries().size());
-	}
-	
-	public void testMoveNamedQuery() throws Exception {
-		OrmPersistentType persistentType = getEntityMappings().addPersistentType(MappingKeys.ENTITY_TYPE_MAPPING_KEY, FULLY_QUALIFIED_TYPE_NAME);
-		OrmEntity ormEntity = (OrmEntity) persistentType.getMapping();
-
-		ormEntity.addNamedQuery(0).setName("FOO");
-		ormEntity.addNamedQuery(1).setName("BAR");
-		ormEntity.addNamedQuery(2).setName("BAZ");
-		
-		XmlEntity entityResource = getXmlEntityMappings().getEntities().get(0);
-		assertEquals(3, entityResource.getNamedQueries().size());
-		
-		
-		ormEntity.moveNamedQuery(2, 0);
-		ListIterator<OrmNamedQuery> namedQueries = ormEntity.namedQueries();
-		assertEquals("BAR", namedQueries.next().getName());
-		assertEquals("BAZ", namedQueries.next().getName());
-		assertEquals("FOO", namedQueries.next().getName());
-
-		assertEquals("BAR", entityResource.getNamedQueries().get(0).getName());
-		assertEquals("BAZ", entityResource.getNamedQueries().get(1).getName());
-		assertEquals("FOO", entityResource.getNamedQueries().get(2).getName());
-
-
-		ormEntity.moveNamedQuery(0, 1);
-		namedQueries = ormEntity.namedQueries();
-		assertEquals("BAZ", namedQueries.next().getName());
-		assertEquals("BAR", namedQueries.next().getName());
-		assertEquals("FOO", namedQueries.next().getName());
-
-		assertEquals("BAZ", entityResource.getNamedQueries().get(0).getName());
-		assertEquals("BAR", entityResource.getNamedQueries().get(1).getName());
-		assertEquals("FOO", entityResource.getNamedQueries().get(2).getName());
-	}
-	
-	public void testUpdateNamedQueries() throws Exception {
-		OrmPersistentType persistentType = getEntityMappings().addPersistentType(MappingKeys.ENTITY_TYPE_MAPPING_KEY, FULLY_QUALIFIED_TYPE_NAME);
-		OrmEntity ormEntity = (OrmEntity) persistentType.getMapping();
-		
-		assertEquals(0, ormEntity.getPersistenceUnit().queriesSize());
-		
-		XmlEntity entityResource = getXmlEntityMappings().getEntities().get(0);
-		entityResource.getNamedQueries().add(OrmFactory.eINSTANCE.createXmlNamedQuery());
-		entityResource.getNamedQueries().add(OrmFactory.eINSTANCE.createXmlNamedQuery());
-		entityResource.getNamedQueries().add(OrmFactory.eINSTANCE.createXmlNamedQuery());
-		entityResource.getNamedQueries().get(0).setName("FOO");
-		entityResource.getNamedQueries().get(1).setName("BAR");
-		entityResource.getNamedQueries().get(2).setName("BAZ");
-		
-		ListIterator<OrmNamedQuery> namedQueries = ormEntity.namedQueries();
-		assertEquals("FOO", namedQueries.next().getName());
-		assertEquals("BAR", namedQueries.next().getName());
-		assertEquals("BAZ", namedQueries.next().getName());
-		assertFalse(namedQueries.hasNext());
-		assertEquals(3, ormEntity.getPersistenceUnit().queriesSize());
-		
-		entityResource.getNamedQueries().move(2, 0);
-		namedQueries = ormEntity.namedQueries();
-		assertEquals("BAR", namedQueries.next().getName());
-		assertEquals("BAZ", namedQueries.next().getName());
-		assertEquals("FOO", namedQueries.next().getName());
-		assertFalse(namedQueries.hasNext());
-		
-		entityResource.getNamedQueries().move(0, 1);
-		namedQueries = ormEntity.namedQueries();
-		assertEquals("BAZ", namedQueries.next().getName());
-		assertEquals("BAR", namedQueries.next().getName());
-		assertEquals("FOO", namedQueries.next().getName());
-		assertFalse(namedQueries.hasNext());
-		
-		entityResource.getNamedQueries().remove(1);
-		namedQueries = ormEntity.namedQueries();
-		assertEquals("BAZ", namedQueries.next().getName());
-		assertEquals("FOO", namedQueries.next().getName());
-		assertFalse(namedQueries.hasNext());
-		assertEquals(2, ormEntity.getPersistenceUnit().queriesSize());
-		
-		entityResource.getNamedQueries().remove(1);
-		namedQueries = ormEntity.namedQueries();
-		assertEquals("BAZ", namedQueries.next().getName());
-		assertFalse(namedQueries.hasNext());
-		assertEquals(1, ormEntity.getPersistenceUnit().queriesSize());
-		
-		entityResource.getNamedQueries().remove(0);
-		assertFalse(ormEntity.namedQueries().hasNext());
-		assertEquals(0, ormEntity.getPersistenceUnit().queriesSize());
-	}
-	
-	public void testAddNamedNativeQuery() throws Exception {
-		OrmPersistentType persistentType = getEntityMappings().addPersistentType(MappingKeys.ENTITY_TYPE_MAPPING_KEY, FULLY_QUALIFIED_TYPE_NAME);
-		OrmEntity ormEntity = (OrmEntity) persistentType.getMapping();
-		XmlEntity entityResource = getXmlEntityMappings().getEntities().get(0);
-
-		OrmNamedNativeQuery namedNativeQuery = ormEntity.addNamedNativeQuery(0);
-		namedNativeQuery.setName("FOO");
-				
-		assertEquals("FOO", entityResource.getNamedNativeQueries().get(0).getName());
-		
-		OrmNamedNativeQuery namedNativeQuery2 = ormEntity.addNamedNativeQuery(0);
-		namedNativeQuery2.setName("BAR");
-		
-		assertEquals("BAR", entityResource.getNamedNativeQueries().get(0).getName());
-		assertEquals("FOO", entityResource.getNamedNativeQueries().get(1).getName());
-		
-		OrmNamedNativeQuery namedNativeQuery3 = ormEntity.addNamedNativeQuery(1);
-		namedNativeQuery3.setName("BAZ");
-		
-		assertEquals("BAR", entityResource.getNamedNativeQueries().get(0).getName());
-		assertEquals("BAZ", entityResource.getNamedNativeQueries().get(1).getName());
-		assertEquals("FOO", entityResource.getNamedNativeQueries().get(2).getName());
-		
-		ListIterator<OrmNamedNativeQuery> namedNativeQueries = ormEntity.namedNativeQueries();
-		assertEquals(namedNativeQuery2, namedNativeQueries.next());
-		assertEquals(namedNativeQuery3, namedNativeQueries.next());
-		assertEquals(namedNativeQuery, namedNativeQueries.next());
-		
-		namedNativeQueries = ormEntity.namedNativeQueries();
-		assertEquals("BAR", namedNativeQueries.next().getName());
-		assertEquals("BAZ", namedNativeQueries.next().getName());
-		assertEquals("FOO", namedNativeQueries.next().getName());
-	}
-	
-	public void testRemoveNamedNativeQuery() throws Exception {
-		OrmPersistentType persistentType = getEntityMappings().addPersistentType(MappingKeys.ENTITY_TYPE_MAPPING_KEY, FULLY_QUALIFIED_TYPE_NAME);
-		OrmEntity ormEntity = (OrmEntity) persistentType.getMapping();
-
-		ormEntity.addNamedNativeQuery(0).setName("FOO");
-		ormEntity.addNamedNativeQuery(1).setName("BAR");
-		ormEntity.addNamedNativeQuery(2).setName("BAZ");
-		
-		XmlEntity entityResource = getXmlEntityMappings().getEntities().get(0);
-		assertEquals(3, entityResource.getNamedNativeQueries().size());
-		
-		ormEntity.removeNamedNativeQuery(0);
-		assertEquals(2, entityResource.getNamedNativeQueries().size());
-		assertEquals("BAR", entityResource.getNamedNativeQueries().get(0).getName());
-		assertEquals("BAZ", entityResource.getNamedNativeQueries().get(1).getName());
-
-		ormEntity.removeNamedNativeQuery(0);
-		assertEquals(1, entityResource.getNamedNativeQueries().size());
-		assertEquals("BAZ", entityResource.getNamedNativeQueries().get(0).getName());
-		
-		ormEntity.removeNamedNativeQuery(0);
-		assertEquals(0, entityResource.getNamedNativeQueries().size());
-	}
-	
-	public void testMoveNamedNativeQuery() throws Exception {
-		OrmPersistentType persistentType = getEntityMappings().addPersistentType(MappingKeys.ENTITY_TYPE_MAPPING_KEY, FULLY_QUALIFIED_TYPE_NAME);
-		OrmEntity ormEntity = (OrmEntity) persistentType.getMapping();
-
-		ormEntity.addNamedNativeQuery(0).setName("FOO");
-		ormEntity.addNamedNativeQuery(1).setName("BAR");
-		ormEntity.addNamedNativeQuery(2).setName("BAZ");
-		
-		XmlEntity entityResource = getXmlEntityMappings().getEntities().get(0);
-		assertEquals(3, entityResource.getNamedNativeQueries().size());
-		
-		
-		ormEntity.moveNamedNativeQuery(2, 0);
-		ListIterator<OrmNamedNativeQuery> namedNativeQueries = ormEntity.namedNativeQueries();
-		assertEquals("BAR", namedNativeQueries.next().getName());
-		assertEquals("BAZ", namedNativeQueries.next().getName());
-		assertEquals("FOO", namedNativeQueries.next().getName());
-
-		assertEquals("BAR", entityResource.getNamedNativeQueries().get(0).getName());
-		assertEquals("BAZ", entityResource.getNamedNativeQueries().get(1).getName());
-		assertEquals("FOO", entityResource.getNamedNativeQueries().get(2).getName());
-
-
-		ormEntity.moveNamedNativeQuery(0, 1);
-		namedNativeQueries = ormEntity.namedNativeQueries();
-		assertEquals("BAZ", namedNativeQueries.next().getName());
-		assertEquals("BAR", namedNativeQueries.next().getName());
-		assertEquals("FOO", namedNativeQueries.next().getName());
-
-		assertEquals("BAZ", entityResource.getNamedNativeQueries().get(0).getName());
-		assertEquals("BAR", entityResource.getNamedNativeQueries().get(1).getName());
-		assertEquals("FOO", entityResource.getNamedNativeQueries().get(2).getName());
-	}
-	
-	public void testUpdateNamedNativeQueries() throws Exception {
-		OrmPersistentType persistentType = getEntityMappings().addPersistentType(MappingKeys.ENTITY_TYPE_MAPPING_KEY, FULLY_QUALIFIED_TYPE_NAME);
-		OrmEntity ormEntity = (OrmEntity) persistentType.getMapping();
-		
-		assertEquals(0, ormEntity.getPersistenceUnit().queriesSize());
-		
-		XmlEntity entityResource = getXmlEntityMappings().getEntities().get(0);
-		entityResource.getNamedNativeQueries().add(OrmFactory.eINSTANCE.createXmlNamedNativeQuery());
-		entityResource.getNamedNativeQueries().add(OrmFactory.eINSTANCE.createXmlNamedNativeQuery());
-		entityResource.getNamedNativeQueries().add(OrmFactory.eINSTANCE.createXmlNamedNativeQuery());
-		entityResource.getNamedNativeQueries().get(0).setName("FOO");
-		entityResource.getNamedNativeQueries().get(1).setName("BAR");
-		entityResource.getNamedNativeQueries().get(2).setName("BAZ");
-		ListIterator<OrmNamedNativeQuery> namedNativeQueries = ormEntity.namedNativeQueries();
-		assertEquals("FOO", namedNativeQueries.next().getName());
-		assertEquals("BAR", namedNativeQueries.next().getName());
-		assertEquals("BAZ", namedNativeQueries.next().getName());
-		assertFalse(namedNativeQueries.hasNext());
-		assertEquals(3, ormEntity.getPersistenceUnit().queriesSize());
-		
-		entityResource.getNamedNativeQueries().move(2, 0);
-		namedNativeQueries = ormEntity.namedNativeQueries();
-		assertEquals("BAR", namedNativeQueries.next().getName());
-		assertEquals("BAZ", namedNativeQueries.next().getName());
-		assertEquals("FOO", namedNativeQueries.next().getName());
-		assertFalse(namedNativeQueries.hasNext());
-		
-		entityResource.getNamedNativeQueries().move(0, 1);
-		namedNativeQueries = ormEntity.namedNativeQueries();
-		assertEquals("BAZ", namedNativeQueries.next().getName());
-		assertEquals("BAR", namedNativeQueries.next().getName());
-		assertEquals("FOO", namedNativeQueries.next().getName());
-		assertFalse(namedNativeQueries.hasNext());
-		
-		entityResource.getNamedNativeQueries().remove(1);
-		namedNativeQueries = ormEntity.namedNativeQueries();
-		assertEquals("BAZ", namedNativeQueries.next().getName());
-		assertEquals("FOO", namedNativeQueries.next().getName());
-		assertFalse(namedNativeQueries.hasNext());
-		assertEquals(2, ormEntity.getPersistenceUnit().queriesSize());
-		
-		entityResource.getNamedNativeQueries().remove(1);
-		namedNativeQueries = ormEntity.namedNativeQueries();
-		assertEquals("BAZ", namedNativeQueries.next().getName());
-		assertFalse(namedNativeQueries.hasNext());
-		assertEquals(1, ormEntity.getPersistenceUnit().queriesSize());
-		
-		entityResource.getNamedNativeQueries().remove(0);
-		assertFalse(ormEntity.namedNativeQueries().hasNext());
-		assertEquals(0, ormEntity.getPersistenceUnit().queriesSize());
-	}
-	
-	public void testUpdateIdClass() throws Exception {
-		OrmPersistentType persistentType = getEntityMappings().addPersistentType(MappingKeys.ENTITY_TYPE_MAPPING_KEY, FULLY_QUALIFIED_TYPE_NAME);
-		OrmEntity ormEntity = (OrmEntity) persistentType.getMapping();
-		
-		XmlEntity entityResource = getXmlEntityMappings().getEntities().get(0);
-
-		assertNull(ormEntity.getIdClass());
-		assertNull(entityResource.getIdClass());
-		
-		entityResource.setIdClass(OrmFactory.eINSTANCE.createXmlIdClass());
-		
-		assertNull(ormEntity.getIdClass());
-		assertNotNull(entityResource.getIdClass());
-		
-		entityResource.getIdClass().setClassName("model.Foo");
-		assertEquals("model.Foo", ormEntity.getIdClass());
-		assertEquals("model.Foo", entityResource.getIdClass().getClassName());
-		
-		//test setting  @IdClass value to null, id-class tag is not removed
-		entityResource.getIdClass().setClassName(null);
-		assertNull(ormEntity.getIdClass());
-		assertNotNull(entityResource.getIdClass());
-		
-		//reset @IdClass value and then remove id-class tag
-		entityResource.setIdClass(OrmFactory.eINSTANCE.createXmlIdClass());
-		entityResource.getIdClass().setClassName("model.Foo");
-		entityResource.setIdClass(null);
-		
-		assertNull(ormEntity.getIdClass());
-		assertNull(entityResource.getIdClass());
-	}
-	
-	public void testModifyIdClass() throws Exception {
-		OrmPersistentType persistentType = getEntityMappings().addPersistentType(MappingKeys.ENTITY_TYPE_MAPPING_KEY, FULLY_QUALIFIED_TYPE_NAME);
-		OrmEntity ormEntity = (OrmEntity) persistentType.getMapping();
-		
-		XmlEntity entityResource = getXmlEntityMappings().getEntities().get(0);
-
-		assertNull(ormEntity.getIdClass());
-		assertNull(entityResource.getIdClass());
-			
-		ormEntity.setIdClass("model.Foo");
-		assertEquals("model.Foo", entityResource.getIdClass().getClassName());
-		assertEquals("model.Foo", ormEntity.getIdClass());
-		
-		ormEntity.setIdClass(null);
-		assertNull(ormEntity.getIdClass());
-		assertNull(entityResource.getIdClass());
-	}
-
-	
-	public void testGetPrimaryKeyColumnNameWithAttributeOverride() throws Exception {
-		createTestMappedSuperclass();
-		createTestSubType();
-		OrmPersistentType parentPersistentType = getEntityMappings().addPersistentType(MappingKeys.MAPPED_SUPERCLASS_TYPE_MAPPING_KEY, FULLY_QUALIFIED_TYPE_NAME);
-		OrmPersistentType childPersistentType = getEntityMappings().addPersistentType(MappingKeys.ENTITY_TYPE_MAPPING_KEY, PACKAGE_NAME + ".AnnotationTestTypeChild");
-		OrmEntity childXmlEntity = (OrmEntity) childPersistentType.getMapping();
-		
-		assertNull(childXmlEntity.getPrimaryKeyColumnName());
-
-		parentPersistentType.getAttributeNamed("id").makeSpecified(MappingKeys.ID_ATTRIBUTE_MAPPING_KEY);
-		assertEquals("id", childXmlEntity.getPrimaryKeyColumnName());
-		
-		((OrmIdMapping) parentPersistentType.getAttributeNamed("id").getMapping()).getColumn().setSpecifiedName("MY_ID");
-		assertEquals("MY_ID", childXmlEntity.getPrimaryKeyColumnName());
-
-		//TODO once bug 228718 is fixed
-//		OrmAttributeOverride ormAttributeOverride = childXmlEntity.virtualAttributeOverrides().next();
-//		assertEquals("id", ormAttributeOverride.getName());
-//		
-//		ormAttributeOverride = (OrmAttributeOverride) ormAttributeOverride.setVirtual(false);
-//		ormAttributeOverride.getColumn().setSpecifiedName("ID");
-//		assertEquals("ID", childXmlEntity.getPrimaryKeyColumnName());
-	}
-
-	
-	public void testDiscriminatorValueIsUndefinedConcreteClass() throws Exception {
-		createTestType();
-		OrmPersistentType persistentType = getEntityMappings().addPersistentType(MappingKeys.ENTITY_TYPE_MAPPING_KEY, FULLY_QUALIFIED_TYPE_NAME);
-		OrmEntity entity = (OrmEntity) persistentType.getMapping();
-		assertTrue(entity.discriminatorValueIsUndefined());
-		
-		createTestSubType();
-		getEntityMappings().addPersistentType(MappingKeys.ENTITY_TYPE_MAPPING_KEY, FULLY_QUALIFIED_CHILD_TYPE_NAME);
-		assertFalse(entity.discriminatorValueIsUndefined());
-	}
-
-	public void testDiscriminatorValueIsAllowedAbstractClass() throws Exception {
-		createTestAbstractType();
-		OrmPersistentType persistentType = getEntityMappings().addPersistentType(MappingKeys.ENTITY_TYPE_MAPPING_KEY, FULLY_QUALIFIED_TYPE_NAME);
-		OrmEntity entity = (OrmEntity) persistentType.getMapping();
-		assertTrue(entity.discriminatorValueIsUndefined());
-		
-		createTestSubType();
-		getEntityMappings().addPersistentType(MappingKeys.ENTITY_TYPE_MAPPING_KEY, FULLY_QUALIFIED_CHILD_TYPE_NAME);
-		assertTrue(entity.discriminatorValueIsUndefined());
-	}
-	
-	public void testDiscriminatorColumnIsAllowed() throws Exception {
-		createAbstractTestEntity();
-		createTestSubType();
-		OrmPersistentType concretePersistentType = getEntityMappings().addPersistentType(MappingKeys.ENTITY_TYPE_MAPPING_KEY, PACKAGE_NAME + ".AnnotationTestTypeChild");
-		OrmPersistentType abstractPersistentType = getEntityMappings().addPersistentType(MappingKeys.ENTITY_TYPE_MAPPING_KEY, FULLY_QUALIFIED_TYPE_NAME);
-		
-		Entity concreteEntity = (Entity) concretePersistentType.getMapping();
-		assertEquals("AnnotationTestTypeChild", concreteEntity.getName());
-		
-		Entity abstractEntity = (Entity) abstractPersistentType.getMapping();
-		assertEquals(TYPE_NAME, abstractEntity.getName());
-
-		
-		//table-per-class, no discriminator column allowed
-		assertFalse(concreteEntity.specifiedDiscriminatorColumnIsAllowed());
-		assertFalse(abstractEntity.specifiedDiscriminatorColumnIsAllowed());
-
-		
-		//single-table, discriminator column allowed on root entity
-		((JavaEntity) abstractPersistentType.getJavaPersistentType().getMapping()).setSpecifiedInheritanceStrategy(null);
-		assertFalse(concreteEntity.specifiedDiscriminatorColumnIsAllowed());
-		assertTrue(abstractEntity.specifiedDiscriminatorColumnIsAllowed());
-	}
-	
-	public void testAbstractEntityGetDefaultDiscriminatorColumnNameTablePerClassInheritance() throws Exception {
-		createAbstractTestEntity();
-		createTestSubType();
-		
-		OrmPersistentType concretePersistentType = getEntityMappings().addPersistentType(MappingKeys.ENTITY_TYPE_MAPPING_KEY, PACKAGE_NAME + ".AnnotationTestTypeChild");
-		OrmPersistentType abstractPersistentType = getEntityMappings().addPersistentType(MappingKeys.ENTITY_TYPE_MAPPING_KEY, FULLY_QUALIFIED_TYPE_NAME);
-		
-		Entity concreteEntity = (Entity) concretePersistentType.getMapping();
-		assertEquals("AnnotationTestTypeChild", concreteEntity.getName());
-		
-		Entity abstractEntity = (Entity) abstractPersistentType.getMapping();
-		assertEquals(TYPE_NAME, abstractEntity.getName());
-
-		
-		assertEquals(null, abstractEntity.getSpecifiedInheritanceStrategy());
-		assertEquals(null, concreteEntity.getSpecifiedInheritanceStrategy());
-		assertEquals(InheritanceType.TABLE_PER_CLASS, abstractEntity.getDefaultInheritanceStrategy());
-		assertEquals(InheritanceType.TABLE_PER_CLASS, concreteEntity.getDefaultInheritanceStrategy());
-		
-		
-		assertTrue(abstractEntity.discriminatorValueIsUndefined());
-		assertFalse(concreteEntity.specifiedDiscriminatorColumnIsAllowed());
-		assertEquals(null, abstractEntity.getDiscriminatorColumn().getDefaultName());
-		assertEquals(null, concreteEntity.getDiscriminatorColumn().getDefaultName());
-		
-		assertTrue(abstractEntity.discriminatorValueIsUndefined());
-		assertEquals(null, abstractEntity.getDefaultDiscriminatorValue());
-		assertTrue(concreteEntity.discriminatorValueIsUndefined());
-		assertEquals(null, concreteEntity.getDefaultDiscriminatorValue());
-	}
-}
\ No newline at end of file
diff --git a/jpa/tests/org.eclipse.jpt.core.tests/src/org/eclipse/jpt/core/tests/internal/context/orm/OrmGeneratedValueTests.java b/jpa/tests/org.eclipse.jpt.core.tests/src/org/eclipse/jpt/core/tests/internal/context/orm/OrmGeneratedValueTests.java
deleted file mode 100644
index ebcc7e5..0000000
--- a/jpa/tests/org.eclipse.jpt.core.tests/src/org/eclipse/jpt/core/tests/internal/context/orm/OrmGeneratedValueTests.java
+++ /dev/null
@@ -1,135 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.core.tests.internal.context.orm;
-
-import java.util.Iterator;
-import org.eclipse.jdt.core.ICompilationUnit;
-import org.eclipse.jpt.core.JptCorePlugin;
-import org.eclipse.jpt.core.MappingKeys;
-import org.eclipse.jpt.core.context.GeneratedValue;
-import org.eclipse.jpt.core.context.GenerationType;
-import org.eclipse.jpt.core.context.IdMapping;
-import org.eclipse.jpt.core.context.orm.OrmGeneratedValue;
-import org.eclipse.jpt.core.context.orm.OrmIdMapping;
-import org.eclipse.jpt.core.context.orm.OrmPersistentAttribute;
-import org.eclipse.jpt.core.context.orm.OrmPersistentType;
-import org.eclipse.jpt.core.resource.java.JPA;
-import org.eclipse.jpt.core.resource.orm.XmlGeneratedValue;
-import org.eclipse.jpt.core.resource.orm.XmlId;
-import org.eclipse.jpt.core.resource.persistence.PersistenceFactory;
-import org.eclipse.jpt.core.resource.persistence.XmlMappingFileRef;
-import org.eclipse.jpt.core.tests.internal.context.ContextModelTestCase;
-import org.eclipse.jpt.utility.internal.iterators.ArrayIterator;
-
-
-@SuppressWarnings("nls")public class OrmGeneratedValueTests extends ContextModelTestCase
-{
-	public OrmGeneratedValueTests(String name) {
-		super(name);
-	}
-	
-	@Override
-	protected void setUp() throws Exception {
-		super.setUp();
-		XmlMappingFileRef mappingFileRef = PersistenceFactory.eINSTANCE.createXmlMappingFileRef();
-		mappingFileRef.setFileName(JptCorePlugin.DEFAULT_ORM_XML_FILE_PATH);
-		getXmlPersistenceUnit().getMappingFiles().add(mappingFileRef);
-		getPersistenceXmlResource().save(null);
-	}
-	
-	private ICompilationUnit createTestEntity() throws Exception {
-		return this.createTestType(new DefaultAnnotationWriter() {
-			@Override
-			public Iterator<String> imports() {
-				return new ArrayIterator<String>(JPA.ENTITY, JPA.ID);
-			}
-			@Override
-			public void appendTypeAnnotationTo(StringBuilder sb) {
-				sb.append("@Entity");
-			}
-			@Override
-			public void appendIdFieldAnnotationTo(StringBuilder sb) {
-				sb.append("@Id");
-			}
-		});
-	}
-	
-	public void testUpdateSpecifiedName() throws Exception {
-		OrmPersistentType ormPersistentType = getEntityMappings().addPersistentType(MappingKeys.ENTITY_TYPE_MAPPING_KEY, "model.Foo");
-		OrmPersistentAttribute ormPersistentAttribute = ormPersistentType.addSpecifiedPersistentAttribute(MappingKeys.ID_ATTRIBUTE_MAPPING_KEY, "idMapping");
-		OrmIdMapping ormIdMapping = (OrmIdMapping) ormPersistentAttribute.getMapping();
-		OrmGeneratedValue ormGeneratedValue = ormIdMapping.addGeneratedValue();
-		XmlId idResource = getXmlEntityMappings().getEntities().get(0).getAttributes().getIds().get(0);
-		XmlGeneratedValue generatedValueResource = idResource.getGeneratedValue();
-		
-		//set generator in the resource model, verify context model updated
-		generatedValueResource.setGenerator("FOO");
-		assertEquals("FOO", ormGeneratedValue.getSpecifiedGenerator());
-		assertEquals("FOO", generatedValueResource.getGenerator());
-	
-		//set name to null in the resource model
-		generatedValueResource.setGenerator(null);
-		assertNull(ormGeneratedValue.getSpecifiedGenerator());
-		assertNull(generatedValueResource.getGenerator());
-	}
-	
-	public void testModifySpecifiedName() throws Exception {
-		OrmPersistentType ormPersistentType = getEntityMappings().addPersistentType(MappingKeys.ENTITY_TYPE_MAPPING_KEY, "model.Foo");
-		OrmPersistentAttribute ormPersistentAttribute = ormPersistentType.addSpecifiedPersistentAttribute(MappingKeys.ID_ATTRIBUTE_MAPPING_KEY, "idMapping");
-		OrmIdMapping ormIdMapping = (OrmIdMapping) ormPersistentAttribute.getMapping();
-		OrmGeneratedValue ormGeneratedValue = ormIdMapping.addGeneratedValue();
-		XmlId idResource = getXmlEntityMappings().getEntities().get(0).getAttributes().getIds().get(0);
-		XmlGeneratedValue generatedValueResource = idResource.getGeneratedValue();
-		
-		//set name in the context model, verify resource model modified
-		ormGeneratedValue.setSpecifiedGenerator("FOO");
-		assertEquals("FOO", generatedValueResource.getGenerator());
-		assertEquals("FOO", ormGeneratedValue.getSpecifiedGenerator());
-		
-		//set name to null in the context model
-		ormGeneratedValue.setSpecifiedGenerator(null);
-		assertNull(generatedValueResource.getGenerator());
-		assertNull(ormGeneratedValue.getSpecifiedGenerator());
-	}
-
-	public void testDefaultsFromJava() throws Exception {
-		createTestEntity();
-		OrmPersistentType ormPersistentType = getEntityMappings().addPersistentType(MappingKeys.ENTITY_TYPE_MAPPING_KEY, FULLY_QUALIFIED_TYPE_NAME);
-		
-		OrmPersistentAttribute ormIdAttribute = ormPersistentType.virtualAttributes().next();
-		IdMapping ormIdMapping = (IdMapping) ormIdAttribute.getMapping();
-		assertEquals(null, ormIdMapping.getGeneratedValue());
-		
-		IdMapping javaIdMapping = (IdMapping) ormPersistentType.getJavaPersistentType().attributes().next().getMapping();
-		GeneratedValue javaGeneratedValue = javaIdMapping.addGeneratedValue();
-		javaGeneratedValue.setSpecifiedGenerator("Foo");
-		javaGeneratedValue.setSpecifiedStrategy(GenerationType.SEQUENCE);
-		
-		assertEquals("Foo", ormIdMapping.getGeneratedValue().getSpecifiedGenerator());
-		assertEquals(GenerationType.SEQUENCE, ormIdMapping.getGeneratedValue().getSpecifiedStrategy());
-		assertEquals("Foo", javaGeneratedValue.getSpecifiedGenerator());
-		assertEquals(GenerationType.SEQUENCE, javaGeneratedValue.getSpecifiedStrategy());
-		
-		ormIdAttribute.makeSpecified();
-		ormIdAttribute = ormPersistentType.specifiedAttributes().next();
-		ormIdMapping = (IdMapping) ormIdAttribute.getMapping();
-		assertEquals(null, ormIdMapping.getGeneratedValue());
-		assertEquals("Foo", javaGeneratedValue.getSpecifiedGenerator());
-		assertEquals(GenerationType.SEQUENCE, javaGeneratedValue.getSpecifiedStrategy());
-		
-		ormIdAttribute.makeVirtual();
-		ormIdAttribute = ormPersistentType.virtualAttributes().next();
-		ormIdMapping = (IdMapping) ormIdAttribute.getMapping();
-		assertEquals("Foo", ormIdMapping.getGeneratedValue().getSpecifiedGenerator());
-		assertEquals(GenerationType.SEQUENCE, ormIdMapping.getGeneratedValue().getSpecifiedStrategy());
-		assertEquals("Foo", javaGeneratedValue.getSpecifiedGenerator());
-		assertEquals(GenerationType.SEQUENCE, javaGeneratedValue.getSpecifiedStrategy());
-	}
-}
\ No newline at end of file
diff --git a/jpa/tests/org.eclipse.jpt.core.tests/src/org/eclipse/jpt/core/tests/internal/context/orm/OrmIdMappingTests.java b/jpa/tests/org.eclipse.jpt.core.tests/src/org/eclipse/jpt/core/tests/internal/context/orm/OrmIdMappingTests.java
deleted file mode 100644
index 4b51a81..0000000
--- a/jpa/tests/org.eclipse.jpt.core.tests/src/org/eclipse/jpt/core/tests/internal/context/orm/OrmIdMappingTests.java
+++ /dev/null
@@ -1,744 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.core.tests.internal.context.orm;
-
-import java.util.Iterator;
-import org.eclipse.jdt.core.ICompilationUnit;
-import org.eclipse.jpt.core.JptCorePlugin;
-import org.eclipse.jpt.core.MappingKeys;
-import org.eclipse.jpt.core.context.BasicMapping;
-import org.eclipse.jpt.core.context.Converter;
-import org.eclipse.jpt.core.context.EmbeddedIdMapping;
-import org.eclipse.jpt.core.context.EmbeddedMapping;
-import org.eclipse.jpt.core.context.GenerationType;
-import org.eclipse.jpt.core.context.IdMapping;
-import org.eclipse.jpt.core.context.ManyToManyMapping;
-import org.eclipse.jpt.core.context.ManyToOneMapping;
-import org.eclipse.jpt.core.context.OneToManyMapping;
-import org.eclipse.jpt.core.context.OneToOneMapping;
-import org.eclipse.jpt.core.context.TemporalConverter;
-import org.eclipse.jpt.core.context.TemporalType;
-import org.eclipse.jpt.core.context.TransientMapping;
-import org.eclipse.jpt.core.context.VersionMapping;
-import org.eclipse.jpt.core.context.orm.OrmColumn;
-import org.eclipse.jpt.core.context.orm.OrmGeneratedValue;
-import org.eclipse.jpt.core.context.orm.OrmIdMapping;
-import org.eclipse.jpt.core.context.orm.OrmPersistentAttribute;
-import org.eclipse.jpt.core.context.orm.OrmPersistentType;
-import org.eclipse.jpt.core.context.orm.OrmSequenceGenerator;
-import org.eclipse.jpt.core.context.orm.OrmTableGenerator;
-import org.eclipse.jpt.core.resource.java.JPA;
-import org.eclipse.jpt.core.resource.orm.OrmFactory;
-import org.eclipse.jpt.core.resource.orm.XmlId;
-import org.eclipse.jpt.core.resource.persistence.PersistenceFactory;
-import org.eclipse.jpt.core.resource.persistence.XmlMappingFileRef;
-import org.eclipse.jpt.core.tests.internal.context.ContextModelTestCase;
-import org.eclipse.jpt.utility.internal.iterators.ArrayIterator;
-
-@SuppressWarnings("nls")
-public class OrmIdMappingTests extends ContextModelTestCase
-{
-	public OrmIdMappingTests(String name) {
-		super(name);
-	}
-	
-	
-	@Override
-	protected void setUp() throws Exception {
-		super.setUp();
-		XmlMappingFileRef mappingFileRef = PersistenceFactory.eINSTANCE.createXmlMappingFileRef();
-		mappingFileRef.setFileName(JptCorePlugin.DEFAULT_ORM_XML_FILE_PATH);
-		getXmlPersistenceUnit().getMappingFiles().add(mappingFileRef);
-		getPersistenceXmlResource().save(null);
-	}
-
-	private ICompilationUnit createTestEntityIdMapping() throws Exception {
-		return this.createTestType(new DefaultAnnotationWriter() {
-			@Override
-			public Iterator<String> imports() {
-				return new ArrayIterator<String>(JPA.ENTITY, JPA.ID, JPA.COLUMN, JPA.TEMPORAL, JPA.TEMPORAL_TYPE, JPA.GENERATED_VALUE, JPA.GENERATION_TYPE, JPA.TABLE_GENERATOR, JPA.SEQUENCE_GENERATOR);
-			}
-			@Override
-			public void appendTypeAnnotationTo(StringBuilder sb) {
-				sb.append("@Entity");
-			}
-			
-			@Override
-			public void appendIdFieldAnnotationTo(StringBuilder sb) {
-				sb.append("@Id");
-				sb.append(CR);
-				sb.append("    @Column(name=\"MY_COLUMN\", unique=true, nullable=false, insertable=false, updatable=false, columnDefinition=\"COLUMN_DEFINITION\", table=\"MY_TABLE\", length=5, precision=6, scale=7)");
-				sb.append(CR);
-				sb.append("    @Temporal(TemporalType.TIMESTAMP)");
-				sb.append(CR);
-				sb.append("    @GeneratedValue(strategy=GenerationType.TABLE, generator=\"myTableGenerator\")");
-				sb.append(CR);
-				sb.append("    @TableGenerator(name=\"myTableGenerator\", table=\"myTable\", catalog=\"myCatalog\", schema=\"mySchema\", pkColumnName=\"myPkColumnName\", valueColumnName=\"myValueColumnName\", pkColumnValue=\"myPkColumnValue\", initialValue=1, allocationSize=1)");
-				sb.append(CR);
-				sb.append("    @SequenceGenerator(name=\"mySequenceGenerator\")");
-			}
-		});
-	}
-	
-	public void testUpdateName() throws Exception {
-		OrmPersistentType ormPersistentType = getEntityMappings().addPersistentType(MappingKeys.ENTITY_TYPE_MAPPING_KEY, "model.Foo");
-		OrmPersistentAttribute ormPersistentAttribute = ormPersistentType.addSpecifiedPersistentAttribute(MappingKeys.ID_ATTRIBUTE_MAPPING_KEY, "idMapping");
-		OrmIdMapping ormIdMapping = (OrmIdMapping) ormPersistentAttribute.getMapping();
-		XmlId idResource = getXmlEntityMappings().getEntities().get(0).getAttributes().getIds().get(0);
-		
-		assertEquals("idMapping", ormIdMapping.getName());
-		assertEquals("idMapping", idResource.getName());
-				
-		//set name in the resource model, verify context model updated
-		idResource.setName("newName");
-		assertEquals("newName", ormIdMapping.getName());
-		assertEquals("newName", idResource.getName());
-	
-		//set name to null in the resource model
-		idResource.setName(null);
-		assertNull(ormIdMapping.getName());
-		assertNull(idResource.getName());
-	}
-	
-	public void testModifyName() throws Exception {
-		OrmPersistentType ormPersistentType = getEntityMappings().addPersistentType(MappingKeys.ENTITY_TYPE_MAPPING_KEY, "model.Foo");
-		OrmPersistentAttribute ormPersistentAttribute = ormPersistentType.addSpecifiedPersistentAttribute(MappingKeys.ID_ATTRIBUTE_MAPPING_KEY, "idMapping");
-		OrmIdMapping ormIdMapping = (OrmIdMapping) ormPersistentAttribute.getMapping();
-		XmlId idResource = getXmlEntityMappings().getEntities().get(0).getAttributes().getIds().get(0);
-		
-		assertEquals("idMapping", ormIdMapping.getName());
-		assertEquals("idMapping", idResource.getName());
-				
-		//set name in the context model, verify resource model updated
-		ormIdMapping.setName("newName");
-		assertEquals("newName", ormIdMapping.getName());
-		assertEquals("newName", idResource.getName());
-	
-		//set name to null in the context model
-		ormIdMapping.setName(null);
-		assertNull(ormIdMapping.getName());
-		assertNull(idResource.getName());
-	}
-	
-	public void testUpdateTemporal() throws Exception {
-		OrmPersistentType ormPersistentType = getEntityMappings().addPersistentType(MappingKeys.ENTITY_TYPE_MAPPING_KEY, "model.Foo");
-		OrmPersistentAttribute ormPersistentAttribute = ormPersistentType.addSpecifiedPersistentAttribute(MappingKeys.ID_ATTRIBUTE_MAPPING_KEY, "idMapping");
-		OrmIdMapping ormIdMapping = (OrmIdMapping) ormPersistentAttribute.getMapping();
-		XmlId idResource = getXmlEntityMappings().getEntities().get(0).getAttributes().getIds().get(0);
-		
-		assertNull(ormIdMapping.getSpecifiedConverter());
-		assertNull(idResource.getTemporal());
-				
-		//set temporal in the resource model, verify context model updated
-		idResource.setTemporal(org.eclipse.jpt.core.resource.orm.TemporalType.DATE);
-		assertEquals(TemporalType.DATE, ((TemporalConverter) ormIdMapping.getConverter()).getTemporalType());
-		assertEquals(org.eclipse.jpt.core.resource.orm.TemporalType.DATE, idResource.getTemporal());
-	
-		idResource.setTemporal(org.eclipse.jpt.core.resource.orm.TemporalType.TIME);
-		assertEquals(TemporalType.TIME, ((TemporalConverter) ormIdMapping.getConverter()).getTemporalType());
-		assertEquals(org.eclipse.jpt.core.resource.orm.TemporalType.TIME, idResource.getTemporal());
-
-		idResource.setTemporal(org.eclipse.jpt.core.resource.orm.TemporalType.TIMESTAMP);
-		assertEquals(TemporalType.TIMESTAMP, ((TemporalConverter) ormIdMapping.getConverter()).getTemporalType());
-		assertEquals(org.eclipse.jpt.core.resource.orm.TemporalType.TIMESTAMP, idResource.getTemporal());
-
-		//set temporal to null in the resource model
-		idResource.setTemporal(null);
-		assertNull(ormIdMapping.getSpecifiedConverter());
-		assertNull(idResource.getTemporal());
-	}
-	
-	public void testModifyTemporal() throws Exception {
-		OrmPersistentType ormPersistentType = getEntityMappings().addPersistentType(MappingKeys.ENTITY_TYPE_MAPPING_KEY, "model.Foo");
-		OrmPersistentAttribute ormPersistentAttribute = ormPersistentType.addSpecifiedPersistentAttribute(MappingKeys.ID_ATTRIBUTE_MAPPING_KEY, "idMapping");
-		OrmIdMapping ormIdMapping = (OrmIdMapping) ormPersistentAttribute.getMapping();
-		XmlId idResource = getXmlEntityMappings().getEntities().get(0).getAttributes().getIds().get(0);
-		
-		assertNull(ormIdMapping.getSpecifiedConverter());
-		assertNull(idResource.getTemporal());
-				
-		//set temporal in the context model, verify resource model updated
-		ormIdMapping.setSpecifiedConverter(Converter.TEMPORAL_CONVERTER);
-		((TemporalConverter) ormIdMapping.getSpecifiedConverter()).setTemporalType(TemporalType.DATE);
-		assertEquals(org.eclipse.jpt.core.resource.orm.TemporalType.DATE, idResource.getTemporal());
-		assertEquals(TemporalType.DATE, ((TemporalConverter) ormIdMapping.getSpecifiedConverter()).getTemporalType());
-	
-		((TemporalConverter) ormIdMapping.getSpecifiedConverter()).setTemporalType(TemporalType.TIME);
-		assertEquals(org.eclipse.jpt.core.resource.orm.TemporalType.TIME, idResource.getTemporal());
-		assertEquals(TemporalType.TIME, ((TemporalConverter) ormIdMapping.getSpecifiedConverter()).getTemporalType());
-
-		((TemporalConverter) ormIdMapping.getSpecifiedConverter()).setTemporalType(TemporalType.TIMESTAMP);
-		assertEquals(org.eclipse.jpt.core.resource.orm.TemporalType.TIMESTAMP, idResource.getTemporal());
-		assertEquals(TemporalType.TIMESTAMP, ((TemporalConverter) ormIdMapping.getSpecifiedConverter()).getTemporalType());
-
-		//set temporal to null in the context model
-		ormIdMapping.setSpecifiedConverter(null);
-		assertNull(idResource.getTemporal());
-		assertNull(ormIdMapping.getSpecifiedConverter());
-	}
-	
-	//TODO test defaults
-	//TODO test overriding java mapping with a different mapping type in xml
-
-	
-	public void testAddSequenceGenerator() throws Exception {
-		OrmPersistentType ormPersistentType = getEntityMappings().addPersistentType(MappingKeys.ENTITY_TYPE_MAPPING_KEY, "model.Foo");
-		OrmPersistentAttribute ormPersistentAttribute = ormPersistentType.addSpecifiedPersistentAttribute(MappingKeys.ID_ATTRIBUTE_MAPPING_KEY, "idMapping");
-		OrmIdMapping ormIdMapping = (OrmIdMapping) ormPersistentAttribute.getMapping();
-		XmlId idResource = getXmlEntityMappings().getEntities().get(0).getAttributes().getIds().get(0);
-		
-		assertNull(ormIdMapping.getSequenceGenerator());
-		assertNull(idResource.getSequenceGenerator());
-		
-		ormIdMapping.addSequenceGenerator();
-		
-		assertNotNull(idResource.getSequenceGenerator());
-		assertNotNull(ormIdMapping.getSequenceGenerator());
-				
-		//try adding another sequence generator, should get an IllegalStateException
-		try {
-			ormIdMapping.addSequenceGenerator();
-		} catch (IllegalStateException e) {
-			return;
-		}
-		fail("IllegalStateException not thrown");
-	}
-	
-	public void testRemoveSequenceGenerator() throws Exception {
-		OrmPersistentType ormPersistentType = getEntityMappings().addPersistentType(MappingKeys.ENTITY_TYPE_MAPPING_KEY, "model.Foo");
-		OrmPersistentAttribute ormPersistentAttribute = ormPersistentType.addSpecifiedPersistentAttribute(MappingKeys.ID_ATTRIBUTE_MAPPING_KEY, "idMapping");
-		OrmIdMapping ormIdMapping = (OrmIdMapping) ormPersistentAttribute.getMapping();
-		XmlId idResource = getXmlEntityMappings().getEntities().get(0).getAttributes().getIds().get(0);
-		
-		assertNull(ormIdMapping.getSequenceGenerator());
-		assertNull(idResource.getSequenceGenerator());
-
-		ormIdMapping.addSequenceGenerator();
-		assertNotNull(idResource.getSequenceGenerator());
-		assertNotNull(ormIdMapping.getSequenceGenerator());
-
-		ormIdMapping.removeSequenceGenerator();
-		
-		assertNull(ormIdMapping.getSequenceGenerator());
-		assertNull(idResource.getSequenceGenerator());
-
-		//try removing the sequence generator again, should get an IllegalStateException
-		try {
-			ormIdMapping.removeSequenceGenerator();		
-		} catch (IllegalStateException e) {
-			return;
-		}
-		fail("IllegalStateException not thrown");
-	}
-
-	public void testUpdateSequenceGenerator() throws Exception {
-		OrmPersistentType ormPersistentType = getEntityMappings().addPersistentType(MappingKeys.ENTITY_TYPE_MAPPING_KEY, "model.Foo");
-		OrmPersistentAttribute ormPersistentAttribute = ormPersistentType.addSpecifiedPersistentAttribute(MappingKeys.ID_ATTRIBUTE_MAPPING_KEY, "idMapping");
-		OrmIdMapping ormIdMapping = (OrmIdMapping) ormPersistentAttribute.getMapping();
-		XmlId idResource = getXmlEntityMappings().getEntities().get(0).getAttributes().getIds().get(0);
-		
-		assertNull(ormIdMapping.getSequenceGenerator());
-		assertNull(idResource.getSequenceGenerator());
-		assertEquals(0, ormIdMapping.getPersistenceUnit().generatorsSize());
-		
-		idResource.setSequenceGenerator(OrmFactory.eINSTANCE.createXmlSequenceGeneratorImpl());
-		assertNotNull(ormIdMapping.getSequenceGenerator());
-		assertNotNull(idResource.getSequenceGenerator());
-		assertEquals(1, ormIdMapping.getPersistenceUnit().generatorsSize());
-		
-		ormIdMapping.getSequenceGenerator().setName("foo");
-		assertEquals(1, ormIdMapping.getPersistenceUnit().generatorsSize());
-				
-		idResource.setSequenceGenerator(null);
-		assertNull(ormIdMapping.getSequenceGenerator());
-		assertNull(idResource.getSequenceGenerator());
-		assertEquals(0, ormIdMapping.getPersistenceUnit().generatorsSize());
-	}
-	
-	public void testAddTableGenerator() throws Exception {
-		OrmPersistentType ormPersistentType = getEntityMappings().addPersistentType(MappingKeys.ENTITY_TYPE_MAPPING_KEY, "model.Foo");
-		OrmPersistentAttribute ormPersistentAttribute = ormPersistentType.addSpecifiedPersistentAttribute(MappingKeys.ID_ATTRIBUTE_MAPPING_KEY, "idMapping");
-		OrmIdMapping ormIdMapping = (OrmIdMapping) ormPersistentAttribute.getMapping();
-		XmlId idResource = getXmlEntityMappings().getEntities().get(0).getAttributes().getIds().get(0);
-		
-		assertNull(ormIdMapping.getTableGenerator());
-		assertNull(idResource.getTableGenerator());
-		
-		ormIdMapping.addTableGenerator();
-		
-		assertNotNull(idResource.getTableGenerator());
-		assertNotNull(ormIdMapping.getTableGenerator());
-				
-		//try adding another table generator, should get an IllegalStateException
-		try {
-			ormIdMapping.addTableGenerator();
-		} catch (IllegalStateException e) {
-			return;
-		}
-		fail("IllegalStateException not thrown");
-	}
-	
-	public void testRemoveTableGenerator() throws Exception {
-		OrmPersistentType ormPersistentType = getEntityMappings().addPersistentType(MappingKeys.ENTITY_TYPE_MAPPING_KEY, "model.Foo");
-		OrmPersistentAttribute ormPersistentAttribute = ormPersistentType.addSpecifiedPersistentAttribute(MappingKeys.ID_ATTRIBUTE_MAPPING_KEY, "idMapping");
-		OrmIdMapping ormIdMapping = (OrmIdMapping) ormPersistentAttribute.getMapping();
-		XmlId idResource = getXmlEntityMappings().getEntities().get(0).getAttributes().getIds().get(0);
-		
-		assertNull(ormIdMapping.getTableGenerator());
-		assertNull(idResource.getTableGenerator());
-
-		ormIdMapping.addTableGenerator();
-		assertNotNull(idResource.getTableGenerator());
-		assertNotNull(ormIdMapping.getTableGenerator());
-
-		ormIdMapping.removeTableGenerator();
-		
-		assertNull(ormIdMapping.getTableGenerator());
-		assertNull(idResource.getTableGenerator());
-
-		//try removing the table generator again, should get an IllegalStateException
-		try {
-			ormIdMapping.removeTableGenerator();		
-		} catch (IllegalStateException e) {
-			return;
-		}
-		fail("IllegalStateException not thrown");
-	}
-	
-	public void testUpdateTableGenerator() throws Exception {
-		OrmPersistentType ormPersistentType = getEntityMappings().addPersistentType(MappingKeys.ENTITY_TYPE_MAPPING_KEY, "model.Foo");
-		OrmPersistentAttribute ormPersistentAttribute = ormPersistentType.addSpecifiedPersistentAttribute(MappingKeys.ID_ATTRIBUTE_MAPPING_KEY, "idMapping");
-		OrmIdMapping ormIdMapping = (OrmIdMapping) ormPersistentAttribute.getMapping();
-		XmlId idResource = getXmlEntityMappings().getEntities().get(0).getAttributes().getIds().get(0);
-		
-		assertNull(ormIdMapping.getTableGenerator());
-		assertNull(idResource.getTableGenerator());
-		assertEquals(0, ormIdMapping.getPersistenceUnit().generatorsSize());
-		
-		idResource.setTableGenerator(OrmFactory.eINSTANCE.createXmlTableGeneratorImpl());		
-		assertNotNull(ormIdMapping.getTableGenerator());
-		assertNotNull(idResource.getTableGenerator());
-		assertEquals(1, ormIdMapping.getPersistenceUnit().generatorsSize());
-		
-		ormIdMapping.getTableGenerator().setName("foo");
-		assertEquals(1, ormIdMapping.getPersistenceUnit().generatorsSize());
-
-		idResource.setTableGenerator(null);
-		assertNull(ormIdMapping.getTableGenerator());
-		assertNull(idResource.getTableGenerator());
-		assertEquals(0, ormIdMapping.getPersistenceUnit().generatorsSize());
-	}
-
-	public void testAddGeneratedValue() throws Exception {
-		OrmPersistentType ormPersistentType = getEntityMappings().addPersistentType(MappingKeys.ENTITY_TYPE_MAPPING_KEY, "model.Foo");
-		OrmPersistentAttribute ormPersistentAttribute = ormPersistentType.addSpecifiedPersistentAttribute(MappingKeys.ID_ATTRIBUTE_MAPPING_KEY, "idMapping");
-		OrmIdMapping ormIdMapping = (OrmIdMapping) ormPersistentAttribute.getMapping();
-		XmlId idResource = getXmlEntityMappings().getEntities().get(0).getAttributes().getIds().get(0);
-		
-		assertNull(ormIdMapping.getGeneratedValue());
-		assertNull(idResource.getGeneratedValue());
-		
-		ormIdMapping.addGeneratedValue();
-		
-		assertNotNull(idResource.getGeneratedValue());
-		assertNotNull(ormIdMapping.getGeneratedValue());
-				
-		//try adding another sequence generator, should get an IllegalStateException
-		try {
-			ormIdMapping.addGeneratedValue();
-		} catch (IllegalStateException e) {
-			return;
-		}
-		fail("IllegalStateException not thrown");
-	}
-	
-	public void testRemoveGeneratedValue() throws Exception {
-		OrmPersistentType ormPersistentType = getEntityMappings().addPersistentType(MappingKeys.ENTITY_TYPE_MAPPING_KEY, "model.Foo");
-		OrmPersistentAttribute ormPersistentAttribute = ormPersistentType.addSpecifiedPersistentAttribute(MappingKeys.ID_ATTRIBUTE_MAPPING_KEY, "idMapping");
-		OrmIdMapping ormIdMapping = (OrmIdMapping) ormPersistentAttribute.getMapping();
-		XmlId idResource = getXmlEntityMappings().getEntities().get(0).getAttributes().getIds().get(0);
-		
-		assertNull(ormIdMapping.getGeneratedValue());
-		assertNull(idResource.getGeneratedValue());
-
-		ormIdMapping.addGeneratedValue();
-		assertNotNull(idResource.getGeneratedValue());
-		assertNotNull(ormIdMapping.getGeneratedValue());
-
-		ormIdMapping.removeGeneratedValue();
-		
-		assertNull(ormIdMapping.getGeneratedValue());
-		assertNull(idResource.getGeneratedValue());
-
-		//try removing the sequence generator again, should get an IllegalStateException
-		try {
-			ormIdMapping.removeGeneratedValue();		
-		} catch (IllegalStateException e) {
-			return;
-		}
-		fail("IllegalStateException not thrown");
-	}
-
-	public void testUpdateGeneratedValue() throws Exception {
-		OrmPersistentType ormPersistentType = getEntityMappings().addPersistentType(MappingKeys.ENTITY_TYPE_MAPPING_KEY, "model.Foo");
-		OrmPersistentAttribute ormPersistentAttribute = ormPersistentType.addSpecifiedPersistentAttribute(MappingKeys.ID_ATTRIBUTE_MAPPING_KEY, "idMapping");
-		OrmIdMapping ormIdMapping = (OrmIdMapping) ormPersistentAttribute.getMapping();
-		XmlId idResource = getXmlEntityMappings().getEntities().get(0).getAttributes().getIds().get(0);
-		
-		assertNull(ormIdMapping.getGeneratedValue());
-		assertNull(idResource.getGeneratedValue());
-		
-		idResource.setGeneratedValue(OrmFactory.eINSTANCE.createXmlGeneratedValueImpl());
-				
-		assertNotNull(ormIdMapping.getGeneratedValue());
-		assertNotNull(idResource.getGeneratedValue());
-				
-		idResource.setGeneratedValue(null);
-		assertNull(ormIdMapping.getGeneratedValue());
-		assertNull(idResource.getGeneratedValue());
-	}
-	
-	
-	public void testIdMappingNoUnderylingJavaAttribute() throws Exception {
-		createTestEntityIdMapping();
-
-		OrmPersistentType ormPersistentType = getEntityMappings().addPersistentType(MappingKeys.ENTITY_TYPE_MAPPING_KEY, FULLY_QUALIFIED_TYPE_NAME);
-		ormPersistentType.addSpecifiedPersistentAttribute(MappingKeys.ID_ATTRIBUTE_MAPPING_KEY, "foo");
-		assertEquals(2, ormPersistentType.virtualAttributesSize());
-		
-		OrmPersistentAttribute ormPersistentAttribute = ormPersistentType.specifiedAttributes().next();
-		OrmIdMapping ormIdMapping = (OrmIdMapping) ormPersistentAttribute.getMapping();
-		
-		assertEquals("foo", ormIdMapping.getName());
-		assertNull(ormIdMapping.getSpecifiedConverter());
-		assertNull(ormIdMapping.getGeneratedValue());
-		assertNull(ormIdMapping.getSequenceGenerator());
-		assertNull(ormIdMapping.getTableGenerator());
-
-		
-		OrmColumn ormColumn = ormIdMapping.getColumn();
-		assertNull(ormColumn.getSpecifiedName());
-		assertNull(ormColumn.getSpecifiedUnique());
-		assertNull(ormColumn.getSpecifiedNullable());
-		assertNull(ormColumn.getSpecifiedInsertable());
-		assertNull(ormColumn.getSpecifiedUpdatable());
-		assertNull(ormColumn.getColumnDefinition());
-		assertNull(ormColumn.getSpecifiedTable());
-		assertNull(ormColumn.getSpecifiedLength());
-		assertNull(ormColumn.getSpecifiedPrecision());
-		assertNull(ormColumn.getSpecifiedScale());
-		
-		assertEquals("foo", ormColumn.getDefaultName());
-		assertEquals(false, ormColumn.isDefaultUnique());
-		assertEquals(true, ormColumn.isDefaultNullable());
-		assertEquals(true, ormColumn.isDefaultInsertable());
-		assertEquals(true, ormColumn.isDefaultUpdatable());
-		assertEquals(null, ormColumn.getColumnDefinition());
-		assertEquals(TYPE_NAME, ormColumn.getDefaultTable());
-		assertEquals(255, ormColumn.getDefaultLength());
-		assertEquals(0, ormColumn.getDefaultPrecision());
-		assertEquals(0, ormColumn.getDefaultScale());
-	}
-	
-	//@Basic(fetch=FetchType.LAZY, optional=false)
-	//@Column(name="MY_COLUMN", unique=true, nullable=false, insertable=false, updatable=false, 
-	//    columnDefinition="COLUMN_DEFINITION", table="MY_TABLE", length=5, precision=6, scale=7)");
-	//@Column(
-	//@Lob
-	//@Temporal(TemporalType.TIMESTAMP)
-	//@Enumerated(EnumType.STRING)
-	public void testVirtualMappingMetadataCompleteFalse() throws Exception {
-		createTestEntityIdMapping();
-		OrmPersistentType ormPersistentType = getEntityMappings().addPersistentType(MappingKeys.ENTITY_TYPE_MAPPING_KEY, FULLY_QUALIFIED_TYPE_NAME);
-		assertEquals(2, ormPersistentType.virtualAttributesSize());		
-		OrmPersistentAttribute ormPersistentAttribute = ormPersistentType.virtualAttributes().next();
-		
-		OrmIdMapping ormIdMapping = (OrmIdMapping) ormPersistentAttribute.getMapping();	
-		assertEquals("id", ormIdMapping.getName());
-		assertEquals(Converter.TEMPORAL_CONVERTER, ormIdMapping.getConverter().getType());
-		assertEquals(TemporalType.TIMESTAMP, ((TemporalConverter) ormIdMapping.getConverter()).getTemporalType());
-		
-		OrmColumn ormColumn = ormIdMapping.getColumn();
-		assertEquals("MY_COLUMN", ormColumn.getSpecifiedName());
-		assertEquals(Boolean.TRUE, ormColumn.getSpecifiedUnique());
-		assertEquals(Boolean.FALSE, ormColumn.getSpecifiedNullable());
-		assertEquals(Boolean.FALSE, ormColumn.getSpecifiedInsertable());
-		assertEquals(Boolean.FALSE, ormColumn.getSpecifiedUpdatable());
-		assertEquals("COLUMN_DEFINITION", ormColumn.getColumnDefinition());
-		assertEquals("MY_TABLE", ormColumn.getSpecifiedTable());
-		assertEquals(Integer.valueOf(5), ormColumn.getSpecifiedLength());
-		assertEquals(Integer.valueOf(6), ormColumn.getSpecifiedPrecision());
-		assertEquals(Integer.valueOf(7), ormColumn.getSpecifiedScale());
-		
-		OrmGeneratedValue ormGeneratedValue = ormIdMapping.getGeneratedValue();
-		assertEquals("myTableGenerator", ormGeneratedValue.getSpecifiedGenerator());
-		assertEquals(GenerationType.TABLE, ormGeneratedValue.getSpecifiedStrategy());
-		
-		OrmTableGenerator ormTableGenerator = ormIdMapping.getTableGenerator();
-		assertEquals("myTableGenerator", ormTableGenerator.getName());
-		assertEquals("myTable", ormTableGenerator.getSpecifiedTable());
-		assertEquals("myCatalog", ormTableGenerator.getSpecifiedCatalog());
-		assertEquals("mySchema", ormTableGenerator.getSpecifiedSchema());
-		assertEquals("myPkColumnName", ormTableGenerator.getSpecifiedPkColumnName());
-		assertEquals("myPkColumnValue", ormTableGenerator.getSpecifiedPkColumnValue());
-		assertEquals("myValueColumnName", ormTableGenerator.getSpecifiedValueColumnName());
-		assertEquals(Integer.valueOf(1), ormTableGenerator.getSpecifiedInitialValue());
-		assertEquals(Integer.valueOf(1), ormTableGenerator.getSpecifiedAllocationSize());
-
-		OrmSequenceGenerator ormSequenceGenerator = ormIdMapping.getSequenceGenerator();
-		assertEquals("mySequenceGenerator", ormSequenceGenerator.getName());
-	}
-	
-	public void testVirtualMappingMetadataCompleteTrue() throws Exception {
-		createTestEntityIdMapping();
-		OrmPersistentType ormPersistentType = getEntityMappings().addPersistentType(MappingKeys.ENTITY_TYPE_MAPPING_KEY, FULLY_QUALIFIED_TYPE_NAME);
-		ormPersistentType.getMapping().setSpecifiedMetadataComplete(Boolean.TRUE);
-		assertEquals(2, ormPersistentType.virtualAttributesSize());		
-		OrmPersistentAttribute ormPersistentAttribute = ormPersistentType.virtualAttributes().next();
-
-		assertEquals(MappingKeys.BASIC_ATTRIBUTE_MAPPING_KEY, ormPersistentAttribute.getMappingKey());
-		
-		ormPersistentAttribute.makeSpecified(MappingKeys.ID_ATTRIBUTE_MAPPING_KEY);
-		ormPersistentAttribute= ormPersistentType.specifiedAttributes().next();
-		
-		OrmIdMapping ormIdMapping = (OrmIdMapping) ormPersistentAttribute.getMapping();	
-		assertEquals("id", ormIdMapping.getName());
-		assertNull(ormIdMapping.getSpecifiedConverter());
-		assertNull(ormIdMapping.getGeneratedValue());
-		assertNull(ormIdMapping.getSequenceGenerator());
-		assertNull(ormIdMapping.getTableGenerator());
-		
-		OrmColumn ormColumn = ormIdMapping.getColumn();
-		assertEquals("id", ormColumn.getName());
-		assertEquals(false, ormColumn.isDefaultUnique());
-		assertEquals(true, ormColumn.isDefaultNullable());
-		assertEquals(true, ormColumn.isDefaultInsertable());
-		assertEquals(true, ormColumn.isDefaultUpdatable());
-		assertNull(ormColumn.getColumnDefinition());
-		assertEquals(TYPE_NAME, ormColumn.getTable());
-		assertEquals(255, ormColumn.getLength());
-		assertEquals(0, ormColumn.getPrecision());
-		assertEquals(0, ormColumn.getScale());
-	}
-	
-	public void testSpecifiedMapping() throws Exception {
-		createTestEntityIdMapping();
-
-		OrmPersistentType ormPersistentType = getEntityMappings().addPersistentType(MappingKeys.ENTITY_TYPE_MAPPING_KEY, FULLY_QUALIFIED_TYPE_NAME);
-		ormPersistentType.addSpecifiedPersistentAttribute(MappingKeys.ID_ATTRIBUTE_MAPPING_KEY, "id");
-		assertEquals(1, ormPersistentType.virtualAttributesSize());
-		
-		OrmPersistentAttribute ormPersistentAttribute = ormPersistentType.specifiedAttributes().next();
-		OrmIdMapping ormIdMapping = (OrmIdMapping) ormPersistentAttribute.getMapping();
-		
-		assertEquals("id", ormIdMapping.getName());
-		assertNull(ormIdMapping.getSpecifiedConverter());
-		assertNull(ormIdMapping.getGeneratedValue());
-		assertNull(ormIdMapping.getSequenceGenerator());
-		assertNull(ormIdMapping.getTableGenerator());
-		
-		OrmColumn ormColumn = ormIdMapping.getColumn();
-		assertNull(ormColumn.getSpecifiedName());
-		assertNull(ormColumn.getSpecifiedUnique());
-		assertNull(ormColumn.getSpecifiedNullable());
-		assertNull(ormColumn.getSpecifiedInsertable());
-		assertNull(ormColumn.getSpecifiedUpdatable());
-		assertNull(ormColumn.getColumnDefinition());
-		assertNull(ormColumn.getSpecifiedTable());
-		assertNull(ormColumn.getSpecifiedLength());
-		assertNull(ormColumn.getSpecifiedPrecision());
-		assertNull(ormColumn.getSpecifiedScale());
-		
-		assertEquals("id", ormColumn.getDefaultName());
-		assertEquals(false, ormColumn.isDefaultUnique());
-		assertEquals(true, ormColumn.isDefaultNullable());
-		assertEquals(true, ormColumn.isDefaultInsertable());
-		assertEquals(true, ormColumn.isDefaultUpdatable());
-		assertEquals(null, ormColumn.getColumnDefinition());
-		assertEquals(TYPE_NAME, ormColumn.getDefaultTable());
-		assertEquals(255, ormColumn.getDefaultLength());
-		assertEquals(0, ormColumn.getDefaultPrecision());
-		assertEquals(0, ormColumn.getDefaultScale());
-	}
-	
-	//3 things tested above
-	//1. virtual mapping metadata complete=false - defaults are taken from the java annotations
-	//2. virtual mapping metadata complete=true - defaults are taken from java defaults,annotations ignored
-	//3. specified mapping (metadata complete=true/false - defaults are taken from java annotations
-
-	public void testIdMorphToBasicMapping() throws Exception {
-		createTestEntityIdMapping();
-		OrmPersistentType ormPersistentType = getEntityMappings().addPersistentType(MappingKeys.ENTITY_TYPE_MAPPING_KEY, FULLY_QUALIFIED_TYPE_NAME);
-		OrmPersistentAttribute ormPersistentAttribute = ormPersistentType.addSpecifiedPersistentAttribute(MappingKeys.ID_ATTRIBUTE_MAPPING_KEY, "id");
-		
-		IdMapping idMapping = (IdMapping) ormPersistentAttribute.getMapping();
-		assertFalse(idMapping.isDefault());
-		idMapping.getColumn().setSpecifiedName("FOO");
-		idMapping.setSpecifiedConverter(Converter.TEMPORAL_CONVERTER);
-		((TemporalConverter) idMapping.getSpecifiedConverter()).setTemporalType(TemporalType.TIME);
-		assertFalse(idMapping.isDefault());
-		
-		ormPersistentAttribute.setSpecifiedMappingKey(MappingKeys.BASIC_ATTRIBUTE_MAPPING_KEY);
-		assertEquals(1, ormPersistentType.specifiedAttributesSize());
-		assertEquals(ormPersistentAttribute, ormPersistentType.specifiedAttributes().next());
-		assertTrue(ormPersistentAttribute.getMapping() instanceof BasicMapping);
-		assertEquals("id", ormPersistentAttribute.getMapping().getName());
-		assertEquals("FOO", ((BasicMapping) ormPersistentAttribute.getMapping()).getColumn().getSpecifiedName());
-	}
-	
-	public void testIdMorphToVersionMapping() throws Exception {
-		createTestEntityIdMapping();
-		OrmPersistentType ormPersistentType = getEntityMappings().addPersistentType(MappingKeys.ENTITY_TYPE_MAPPING_KEY, FULLY_QUALIFIED_TYPE_NAME);
-		OrmPersistentAttribute ormPersistentAttribute = ormPersistentType.addSpecifiedPersistentAttribute(MappingKeys.ID_ATTRIBUTE_MAPPING_KEY, "id");
-		
-		IdMapping idMapping = (IdMapping) ormPersistentAttribute.getMapping();
-		assertFalse(idMapping.isDefault());
-		idMapping.getColumn().setSpecifiedName("FOO");
-		idMapping.setSpecifiedConverter(Converter.TEMPORAL_CONVERTER);
-		((TemporalConverter) idMapping.getSpecifiedConverter()).setTemporalType(TemporalType.TIME);
-		assertFalse(idMapping.isDefault());
-		
-		ormPersistentAttribute.setSpecifiedMappingKey(MappingKeys.VERSION_ATTRIBUTE_MAPPING_KEY);
-		assertEquals(1, ormPersistentType.specifiedAttributesSize());
-		assertEquals(ormPersistentAttribute, ormPersistentType.specifiedAttributes().next());
-		assertTrue(ormPersistentAttribute.getMapping() instanceof VersionMapping);
-		assertEquals("id", ormPersistentAttribute.getMapping().getName());
-		assertEquals("FOO", ((VersionMapping) ormPersistentAttribute.getMapping()).getColumn().getSpecifiedName());
-	}
-	
-	public void testIdMorphToTransientMapping() throws Exception {
-		createTestEntityIdMapping();
-		OrmPersistentType ormPersistentType = getEntityMappings().addPersistentType(MappingKeys.ENTITY_TYPE_MAPPING_KEY, FULLY_QUALIFIED_TYPE_NAME);
-		OrmPersistentAttribute ormPersistentAttribute = ormPersistentType.addSpecifiedPersistentAttribute(MappingKeys.ID_ATTRIBUTE_MAPPING_KEY, "id");
-		
-		IdMapping idMapping = (IdMapping) ormPersistentAttribute.getMapping();
-		assertFalse(idMapping.isDefault());
-		idMapping.getColumn().setSpecifiedName("FOO");
-		idMapping.setSpecifiedConverter(Converter.TEMPORAL_CONVERTER);
-		((TemporalConverter) idMapping.getSpecifiedConverter()).setTemporalType(TemporalType.TIME);
-		assertFalse(idMapping.isDefault());
-		
-		ormPersistentAttribute.setSpecifiedMappingKey(MappingKeys.TRANSIENT_ATTRIBUTE_MAPPING_KEY);
-		assertTrue(ormPersistentAttribute.getMapping() instanceof TransientMapping);
-		assertEquals("id", ormPersistentAttribute.getMapping().getName());
-	}
-	
-	public void testIdMorphToEmbeddedMapping() throws Exception {
-		createTestEntityIdMapping();
-		OrmPersistentType ormPersistentType = getEntityMappings().addPersistentType(MappingKeys.ENTITY_TYPE_MAPPING_KEY, FULLY_QUALIFIED_TYPE_NAME);
-		OrmPersistentAttribute ormPersistentAttribute = ormPersistentType.addSpecifiedPersistentAttribute(MappingKeys.ID_ATTRIBUTE_MAPPING_KEY, "id");
-		
-		IdMapping idMapping = (IdMapping) ormPersistentAttribute.getMapping();
-		assertFalse(idMapping.isDefault());
-		idMapping.getColumn().setSpecifiedName("FOO");
-		idMapping.setSpecifiedConverter(Converter.TEMPORAL_CONVERTER);
-		((TemporalConverter) idMapping.getSpecifiedConverter()).setTemporalType(TemporalType.TIME);
-		assertFalse(idMapping.isDefault());
-		
-		ormPersistentAttribute.setSpecifiedMappingKey(MappingKeys.EMBEDDED_ATTRIBUTE_MAPPING_KEY);
-		assertEquals(1, ormPersistentType.specifiedAttributesSize());
-		assertEquals(ormPersistentAttribute, ormPersistentType.specifiedAttributes().next());
-		assertTrue(ormPersistentAttribute.getMapping() instanceof EmbeddedMapping);
-		assertEquals("id", ormPersistentAttribute.getMapping().getName());
-	}
-	
-	public void testIdMorphToEmbeddedIdMapping() throws Exception {
-		createTestEntityIdMapping();
-		OrmPersistentType ormPersistentType = getEntityMappings().addPersistentType(MappingKeys.ENTITY_TYPE_MAPPING_KEY, FULLY_QUALIFIED_TYPE_NAME);
-		OrmPersistentAttribute ormPersistentAttribute = ormPersistentType.addSpecifiedPersistentAttribute(MappingKeys.ID_ATTRIBUTE_MAPPING_KEY, "id");
-		
-		IdMapping idMapping = (IdMapping) ormPersistentAttribute.getMapping();
-		assertFalse(idMapping.isDefault());
-		idMapping.getColumn().setSpecifiedName("FOO");
-		idMapping.setSpecifiedConverter(Converter.TEMPORAL_CONVERTER);
-		((TemporalConverter) idMapping.getSpecifiedConverter()).setTemporalType(TemporalType.TIME);
-		assertFalse(idMapping.isDefault());
-		
-		ormPersistentAttribute.setSpecifiedMappingKey(MappingKeys.EMBEDDED_ID_ATTRIBUTE_MAPPING_KEY);
-		assertTrue(ormPersistentAttribute.getMapping() instanceof EmbeddedIdMapping);
-		assertEquals("id", ormPersistentAttribute.getMapping().getName());
-	}
-	
-	public void testIdMorphToOneToOneMapping() throws Exception {
-		createTestEntityIdMapping();
-		OrmPersistentType ormPersistentType = getEntityMappings().addPersistentType(MappingKeys.ENTITY_TYPE_MAPPING_KEY, FULLY_QUALIFIED_TYPE_NAME);
-		OrmPersistentAttribute ormPersistentAttribute = ormPersistentType.addSpecifiedPersistentAttribute(MappingKeys.ID_ATTRIBUTE_MAPPING_KEY, "id");
-		
-		IdMapping idMapping = (IdMapping) ormPersistentAttribute.getMapping();
-		assertFalse(idMapping.isDefault());
-		idMapping.getColumn().setSpecifiedName("FOO");
-		idMapping.setSpecifiedConverter(Converter.TEMPORAL_CONVERTER);
-		((TemporalConverter) idMapping.getSpecifiedConverter()).setTemporalType(TemporalType.TIME);
-		assertFalse(idMapping.isDefault());
-		
-		ormPersistentAttribute.setSpecifiedMappingKey(MappingKeys.ONE_TO_ONE_ATTRIBUTE_MAPPING_KEY);
-		assertEquals(1, ormPersistentType.specifiedAttributesSize());
-		assertEquals(ormPersistentAttribute, ormPersistentType.specifiedAttributes().next());
-		assertTrue(ormPersistentAttribute.getMapping() instanceof OneToOneMapping);
-		assertEquals("id", ormPersistentAttribute.getMapping().getName());
-	}
-	
-	public void testIdMorphToOneToManyMapping() throws Exception {
-		createTestEntityIdMapping();
-		OrmPersistentType ormPersistentType = getEntityMappings().addPersistentType(MappingKeys.ENTITY_TYPE_MAPPING_KEY, FULLY_QUALIFIED_TYPE_NAME);
-		OrmPersistentAttribute ormPersistentAttribute = ormPersistentType.addSpecifiedPersistentAttribute(MappingKeys.ID_ATTRIBUTE_MAPPING_KEY, "id");
-		
-		IdMapping idMapping = (IdMapping) ormPersistentAttribute.getMapping();
-		assertFalse(idMapping.isDefault());
-		idMapping.getColumn().setSpecifiedName("FOO");
-		idMapping.setSpecifiedConverter(Converter.TEMPORAL_CONVERTER);
-		((TemporalConverter) idMapping.getSpecifiedConverter()).setTemporalType(TemporalType.TIME);
-		assertFalse(idMapping.isDefault());
-		
-		ormPersistentAttribute.setSpecifiedMappingKey(MappingKeys.ONE_TO_MANY_ATTRIBUTE_MAPPING_KEY);
-		assertEquals(1, ormPersistentType.specifiedAttributesSize());
-		assertEquals(ormPersistentAttribute, ormPersistentType.specifiedAttributes().next());
-		assertTrue(ormPersistentAttribute.getMapping() instanceof OneToManyMapping);
-		assertEquals("id", ormPersistentAttribute.getMapping().getName());
-	}
-	
-	public void testIdMorphToManyToOneMapping() throws Exception {
-		createTestEntityIdMapping();
-		OrmPersistentType ormPersistentType = getEntityMappings().addPersistentType(MappingKeys.ENTITY_TYPE_MAPPING_KEY, FULLY_QUALIFIED_TYPE_NAME);
-		OrmPersistentAttribute ormPersistentAttribute = ormPersistentType.addSpecifiedPersistentAttribute(MappingKeys.ID_ATTRIBUTE_MAPPING_KEY, "id");
-		
-		IdMapping idMapping = (IdMapping) ormPersistentAttribute.getMapping();
-		assertFalse(idMapping.isDefault());
-		idMapping.getColumn().setSpecifiedName("FOO");
-		idMapping.setSpecifiedConverter(Converter.TEMPORAL_CONVERTER);
-		((TemporalConverter) idMapping.getSpecifiedConverter()).setTemporalType(TemporalType.TIME);
-		assertFalse(idMapping.isDefault());
-		
-		ormPersistentAttribute.setSpecifiedMappingKey(MappingKeys.MANY_TO_ONE_ATTRIBUTE_MAPPING_KEY);
-		assertEquals(1, ormPersistentType.specifiedAttributesSize());
-		assertEquals(ormPersistentAttribute, ormPersistentType.specifiedAttributes().next());
-		assertTrue(ormPersistentAttribute.getMapping() instanceof ManyToOneMapping);
-		assertEquals("id", ormPersistentAttribute.getMapping().getName());
-	}
-	
-	public void testIdMorphToManyToManyMapping() throws Exception {
-		createTestEntityIdMapping();
-		OrmPersistentType ormPersistentType = getEntityMappings().addPersistentType(MappingKeys.ENTITY_TYPE_MAPPING_KEY, FULLY_QUALIFIED_TYPE_NAME);
-		OrmPersistentAttribute ormPersistentAttribute = ormPersistentType.addSpecifiedPersistentAttribute(MappingKeys.ID_ATTRIBUTE_MAPPING_KEY, "id");
-		
-		IdMapping idMapping = (IdMapping) ormPersistentAttribute.getMapping();
-		assertFalse(idMapping.isDefault());
-		idMapping.getColumn().setSpecifiedName("FOO");
-		idMapping.setSpecifiedConverter(Converter.TEMPORAL_CONVERTER);
-		((TemporalConverter) idMapping.getSpecifiedConverter()).setTemporalType(TemporalType.TIME);
-		assertFalse(idMapping.isDefault());
-		
-		ormPersistentAttribute.setSpecifiedMappingKey(MappingKeys.MANY_TO_MANY_ATTRIBUTE_MAPPING_KEY);
-		assertEquals(1, ormPersistentType.specifiedAttributesSize());
-		assertEquals(ormPersistentAttribute, ormPersistentType.specifiedAttributes().next());
-		assertTrue(ormPersistentAttribute.getMapping() instanceof ManyToManyMapping);
-		assertEquals("id", ormPersistentAttribute.getMapping().getName());
-	}	
-}
\ No newline at end of file
diff --git a/jpa/tests/org.eclipse.jpt.core.tests/src/org/eclipse/jpt/core/tests/internal/context/orm/OrmJoinColumnTests.java b/jpa/tests/org.eclipse.jpt.core.tests/src/org/eclipse/jpt/core/tests/internal/context/orm/OrmJoinColumnTests.java
deleted file mode 100644
index b2dc08a..0000000
--- a/jpa/tests/org.eclipse.jpt.core.tests/src/org/eclipse/jpt/core/tests/internal/context/orm/OrmJoinColumnTests.java
+++ /dev/null
@@ -1,506 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.core.tests.internal.context.orm;
-
-import org.eclipse.jpt.core.JptCorePlugin;
-import org.eclipse.jpt.core.MappingKeys;
-import org.eclipse.jpt.core.context.orm.OrmJoinColumn;
-import org.eclipse.jpt.core.context.orm.OrmJoinTable;
-import org.eclipse.jpt.core.context.orm.OrmManyToManyMapping;
-import org.eclipse.jpt.core.context.orm.OrmPersistentAttribute;
-import org.eclipse.jpt.core.context.orm.OrmPersistentType;
-import org.eclipse.jpt.core.resource.orm.XmlJoinColumn;
-import org.eclipse.jpt.core.resource.orm.XmlJoinTable;
-import org.eclipse.jpt.core.resource.orm.XmlManyToMany;
-import org.eclipse.jpt.core.resource.persistence.PersistenceFactory;
-import org.eclipse.jpt.core.resource.persistence.XmlMappingFileRef;
-import org.eclipse.jpt.core.tests.internal.context.ContextModelTestCase;
-
-@SuppressWarnings("nls")
-public class OrmJoinColumnTests extends ContextModelTestCase
-{
-	public OrmJoinColumnTests(String name) {
-		super(name);
-	}
-	
-	@Override
-	protected void setUp() throws Exception {
-		super.setUp();
-		XmlMappingFileRef mappingFileRef = PersistenceFactory.eINSTANCE.createXmlMappingFileRef();
-		mappingFileRef.setFileName(JptCorePlugin.DEFAULT_ORM_XML_FILE_PATH);
-		getXmlPersistenceUnit().getMappingFiles().add(mappingFileRef);
-		getPersistenceXmlResource().save(null);
-	}
-	
-	public void testUpdateSpecifiedName() throws Exception {
-		OrmPersistentType ormPersistentType = getEntityMappings().addPersistentType(MappingKeys.ENTITY_TYPE_MAPPING_KEY, "model.Foo");
-		OrmPersistentAttribute ormPersistentAttribute = ormPersistentType.addSpecifiedPersistentAttribute(MappingKeys.MANY_TO_MANY_ATTRIBUTE_MAPPING_KEY, "manyToManyMapping");
-		OrmManyToManyMapping ormManyToManyMapping = (OrmManyToManyMapping) ormPersistentAttribute.getMapping();
-		XmlManyToMany manyToMany = getXmlEntityMappings().getEntities().get(0).getAttributes().getManyToManys().get(0);
-
-		OrmJoinTable ormJoinTable = ormManyToManyMapping.getRelationshipReference().getJoinTableJoiningStrategy().getJoinTable();		
-		OrmJoinColumn joinColumn = ormJoinTable.addSpecifiedJoinColumn(0);
-		XmlJoinTable joinTableResource = manyToMany.getJoinTable();
-		XmlJoinColumn joinColumnResource = joinTableResource.getJoinColumns().get(0);
-				
-		assertNull(joinColumn.getSpecifiedName());
-		assertNull(joinColumnResource.getName());
-		
-		//set name in the resource model, verify context model updated
-		joinColumnResource.setName("FOO");
-		assertEquals("FOO", joinColumn.getSpecifiedName());
-		assertEquals("FOO", joinColumnResource.getName());
-	
-		//set name to null in the resource model
-		joinColumnResource.setName(null);
-		assertNull(joinColumn.getSpecifiedName());
-		assertNull(joinColumnResource.getName());
-		
-		joinColumnResource.setName("FOO");
-		assertEquals("FOO", joinColumn.getSpecifiedName());
-		assertEquals("FOO", joinColumnResource.getName());
-
-		joinTableResource.getJoinColumns().remove(0);
-		assertFalse(ormJoinTable.specifiedJoinColumns().hasNext());
-		assertTrue(joinTableResource.getJoinColumns().isEmpty());
-	}
-	
-	public void testModifySpecifiedName() throws Exception {
-		OrmPersistentType ormPersistentType = getEntityMappings().addPersistentType(MappingKeys.ENTITY_TYPE_MAPPING_KEY, "model.Foo");
-		OrmPersistentAttribute ormPersistentAttribute = ormPersistentType.addSpecifiedPersistentAttribute(MappingKeys.MANY_TO_MANY_ATTRIBUTE_MAPPING_KEY, "manyToManyMapping");
-		OrmManyToManyMapping ormManyToManyMapping = (OrmManyToManyMapping) ormPersistentAttribute.getMapping();
-		XmlManyToMany manyToMany = getXmlEntityMappings().getEntities().get(0).getAttributes().getManyToManys().get(0);
-
-		OrmJoinTable ormJoinTable = ormManyToManyMapping.getRelationshipReference().getJoinTableJoiningStrategy().getJoinTable();		
-		OrmJoinColumn joinColumn = ormJoinTable.addSpecifiedJoinColumn(0);
-		XmlJoinTable joinTableResource = manyToMany.getJoinTable();
-		XmlJoinColumn joinColumnResource = joinTableResource.getJoinColumns().get(0);
-				
-		assertNull(joinColumn.getSpecifiedName());
-		assertNull(joinColumnResource.getName());
-		
-		//set name in the context model, verify resource model modified
-		joinColumn.setSpecifiedName("foo");
-		assertEquals("foo", joinColumn.getSpecifiedName());
-		assertEquals("foo", joinColumnResource.getName());
-		
-		//set name to null in the context model
-		joinColumn.setSpecifiedName(null);
-		assertNull(joinColumn.getSpecifiedName());
-		assertNull(joinTableResource.getJoinColumns().get(0).getName());
-	}
-	
-	public void testUpdateSpecifiedReferencedColumnName() throws Exception {
-		OrmPersistentType ormPersistentType = getEntityMappings().addPersistentType(MappingKeys.ENTITY_TYPE_MAPPING_KEY, "model.Foo");
-		OrmPersistentAttribute ormPersistentAttribute = ormPersistentType.addSpecifiedPersistentAttribute(MappingKeys.MANY_TO_MANY_ATTRIBUTE_MAPPING_KEY, "manyToManyMapping");
-		OrmManyToManyMapping ormManyToManyMapping = (OrmManyToManyMapping) ormPersistentAttribute.getMapping();
-		XmlManyToMany manyToMany = getXmlEntityMappings().getEntities().get(0).getAttributes().getManyToManys().get(0);
-
-		OrmJoinTable ormJoinTable = ormManyToManyMapping.getRelationshipReference().getJoinTableJoiningStrategy().getJoinTable();		
-		OrmJoinColumn joinColumn = ormJoinTable.addSpecifiedJoinColumn(0);
-		XmlJoinTable joinTableResource = manyToMany.getJoinTable();
-		XmlJoinColumn joinColumnResource = joinTableResource.getJoinColumns().get(0);
-				
-		assertNull(joinColumn.getSpecifiedReferencedColumnName());
-		assertNull(joinColumnResource.getReferencedColumnName());
-				
-		//set name in the resource model, verify context model updated
-		joinColumnResource.setReferencedColumnName("FOO");
-		assertEquals("FOO", joinColumn.getSpecifiedReferencedColumnName());
-		assertEquals("FOO", joinColumnResource.getReferencedColumnName());
-	
-		//set name to null in the resource model
-		joinColumnResource.setReferencedColumnName(null);
-		assertNull(joinColumn.getSpecifiedReferencedColumnName());
-		assertNull(joinColumnResource.getReferencedColumnName());
-		
-		joinColumnResource.setReferencedColumnName("FOO");
-		assertEquals("FOO", joinColumn.getSpecifiedReferencedColumnName());
-		assertEquals("FOO", joinColumnResource.getReferencedColumnName());
-
-		joinTableResource.getJoinColumns().remove(0);
-		assertFalse(ormJoinTable.specifiedJoinColumns().hasNext());
-		assertTrue(joinTableResource.getJoinColumns().isEmpty());
-	}
-	
-	public void testModifySpecifiedReferencedColumnName() throws Exception {
-		OrmPersistentType ormPersistentType = getEntityMappings().addPersistentType(MappingKeys.ENTITY_TYPE_MAPPING_KEY, "model.Foo");
-		OrmPersistentAttribute ormPersistentAttribute = ormPersistentType.addSpecifiedPersistentAttribute(MappingKeys.MANY_TO_MANY_ATTRIBUTE_MAPPING_KEY, "manyToManyMapping");
-		OrmManyToManyMapping ormManyToManyMapping = (OrmManyToManyMapping) ormPersistentAttribute.getMapping();
-		XmlManyToMany manyToMany = getXmlEntityMappings().getEntities().get(0).getAttributes().getManyToManys().get(0);
-
-		OrmJoinTable ormJoinTable = ormManyToManyMapping.getRelationshipReference().getJoinTableJoiningStrategy().getJoinTable();		
-		OrmJoinColumn joinColumn = ormJoinTable.addSpecifiedJoinColumn(0);
-		XmlJoinTable joinTableResource = manyToMany.getJoinTable();
-		XmlJoinColumn joinColumnResource = joinTableResource.getJoinColumns().get(0);
-				
-		assertNull(joinColumn.getSpecifiedReferencedColumnName());
-		assertNull(joinColumnResource.getReferencedColumnName());
-		
-		//set name in the context model, verify resource model modified
-		joinColumn.setSpecifiedReferencedColumnName("foo");
-		assertEquals("foo", joinColumn.getSpecifiedReferencedColumnName());
-		assertEquals("foo", joinColumnResource.getReferencedColumnName());
-		
-		//set name to null in the context model
-		joinColumn.setSpecifiedReferencedColumnName(null);
-		assertNull(joinColumn.getSpecifiedReferencedColumnName());
-		assertNull(joinTableResource.getJoinColumns().get(0).getReferencedColumnName());
-	}
-
-	public void testUpdateSpecifiedColumnDefinition() throws Exception {
-		OrmPersistentType ormPersistentType = getEntityMappings().addPersistentType(MappingKeys.ENTITY_TYPE_MAPPING_KEY, "model.Foo");
-		OrmPersistentAttribute ormPersistentAttribute = ormPersistentType.addSpecifiedPersistentAttribute(MappingKeys.MANY_TO_MANY_ATTRIBUTE_MAPPING_KEY, "manyToManyMapping");
-		OrmManyToManyMapping ormManyToManyMapping = (OrmManyToManyMapping) ormPersistentAttribute.getMapping();
-		XmlManyToMany manyToMany = getXmlEntityMappings().getEntities().get(0).getAttributes().getManyToManys().get(0);
-
-		OrmJoinTable ormJoinTable = ormManyToManyMapping.getRelationshipReference().getJoinTableJoiningStrategy().getJoinTable();		
-		OrmJoinColumn joinColumn = ormJoinTable.addSpecifiedJoinColumn(0);
-		XmlJoinTable joinTableResource = manyToMany.getJoinTable();
-		XmlJoinColumn joinColumnResource = joinTableResource.getJoinColumns().get(0);
-		
-		assertNull(joinColumn.getColumnDefinition());
-		assertNull(joinColumnResource.getColumnDefinition());
-		
-		//set name in the resource model, verify context model updated
-		joinColumnResource.setColumnDefinition("FOO");
-		assertEquals("FOO", joinColumn.getColumnDefinition());
-		assertEquals("FOO", joinColumnResource.getColumnDefinition());
-	
-		//set name to null in the resource model
-		joinColumnResource.setColumnDefinition(null);
-		assertNull(joinColumn.getColumnDefinition());
-		assertNull(joinColumnResource.getColumnDefinition());
-		
-		joinColumnResource.setColumnDefinition("FOO");
-		assertEquals("FOO", joinColumn.getColumnDefinition());
-		assertEquals("FOO", joinColumnResource.getColumnDefinition());
-
-		joinTableResource.getJoinColumns().remove(0);
-		assertFalse(ormJoinTable.specifiedJoinColumns().hasNext());
-		assertTrue(joinTableResource.getJoinColumns().isEmpty());
-	}
-	
-	public void testModifySpecifiedColumnDefinition() throws Exception {
-		OrmPersistentType ormPersistentType = getEntityMappings().addPersistentType(MappingKeys.ENTITY_TYPE_MAPPING_KEY, "model.Foo");
-		OrmPersistentAttribute ormPersistentAttribute = ormPersistentType.addSpecifiedPersistentAttribute(MappingKeys.MANY_TO_MANY_ATTRIBUTE_MAPPING_KEY, "manyToManyMapping");
-		OrmManyToManyMapping ormManyToManyMapping = (OrmManyToManyMapping) ormPersistentAttribute.getMapping();
-		XmlManyToMany manyToMany = getXmlEntityMappings().getEntities().get(0).getAttributes().getManyToManys().get(0);
-
-		OrmJoinTable ormJoinTable = ormManyToManyMapping.getRelationshipReference().getJoinTableJoiningStrategy().getJoinTable();		
-		OrmJoinColumn joinColumn = ormJoinTable.addSpecifiedJoinColumn(0);
-		XmlJoinTable joinTableResource = manyToMany.getJoinTable();
-		XmlJoinColumn joinColumnResource = joinTableResource.getJoinColumns().get(0);
-		
-		assertNull(joinColumn.getColumnDefinition());
-		assertNull(joinColumnResource.getColumnDefinition());
-		
-		//set name in the context model, verify resource model modified
-		joinColumn.setColumnDefinition("foo");
-		assertEquals("foo", joinColumn.getColumnDefinition());
-		assertEquals("foo", joinColumnResource.getColumnDefinition());
-		
-		//set name to null in the context model
-		joinColumn.setColumnDefinition(null);
-		assertNull(joinColumn.getColumnDefinition());
-		assertNull(joinTableResource.getJoinColumns().get(0).getColumnDefinition());
-	}
-	
-	public void testUpdateSpecifiedTable() throws Exception {
-		OrmPersistentType ormPersistentType = getEntityMappings().addPersistentType(MappingKeys.ENTITY_TYPE_MAPPING_KEY, "model.Foo");
-		OrmPersistentAttribute ormPersistentAttribute = ormPersistentType.addSpecifiedPersistentAttribute(MappingKeys.MANY_TO_MANY_ATTRIBUTE_MAPPING_KEY, "manyToManyMapping");
-		OrmManyToManyMapping ormManyToManyMapping = (OrmManyToManyMapping) ormPersistentAttribute.getMapping();
-		XmlManyToMany manyToMany = getXmlEntityMappings().getEntities().get(0).getAttributes().getManyToManys().get(0);
-
-		OrmJoinTable ormJoinTable = ormManyToManyMapping.getRelationshipReference().getJoinTableJoiningStrategy().getJoinTable();		
-		OrmJoinColumn ormJoinColumn = ormJoinTable.addSpecifiedJoinColumn(0);
-		XmlJoinTable joinTableResource = manyToMany.getJoinTable();
-		XmlJoinColumn joinColumnResource = joinTableResource.getJoinColumns().get(0);
-
-		assertNull(ormJoinColumn.getSpecifiedTable());
-		assertNull(joinColumnResource.getTable());
-		
-		//set table in the resource model, verify context model updated
-		joinColumnResource.setTable("FOO");
-		assertEquals("FOO", ormJoinColumn.getSpecifiedTable());
-		assertEquals("FOO", joinColumnResource.getTable());
-	
-		//set table to null in the resource model
-		joinColumnResource.setTable(null);
-		assertNull(ormJoinColumn.getSpecifiedTable());
-		assertNull(joinColumnResource.getTable());
-		
-		joinColumnResource.setTable("FOO");
-		assertEquals("FOO", ormJoinColumn.getSpecifiedTable());
-		assertEquals("FOO", joinColumnResource.getTable());
-
-		joinTableResource.getJoinColumns().remove(0);
-		assertFalse(ormJoinTable.specifiedJoinColumns().hasNext());
-		assertTrue(joinTableResource.getJoinColumns().isEmpty());
-	}
-	
-	public void testModifySpecifiedTable() throws Exception {
-		OrmPersistentType ormPersistentType = getEntityMappings().addPersistentType(MappingKeys.ENTITY_TYPE_MAPPING_KEY, "model.Foo");
-		OrmPersistentAttribute ormPersistentAttribute = ormPersistentType.addSpecifiedPersistentAttribute(MappingKeys.MANY_TO_MANY_ATTRIBUTE_MAPPING_KEY, "manyToManyMapping");
-		OrmManyToManyMapping ormManyToManyMapping = (OrmManyToManyMapping) ormPersistentAttribute.getMapping();
-		XmlManyToMany manyToMany = getXmlEntityMappings().getEntities().get(0).getAttributes().getManyToManys().get(0);
-
-		OrmJoinTable ormJoinTable = ormManyToManyMapping.getRelationshipReference().getJoinTableJoiningStrategy().getJoinTable();		
-		OrmJoinColumn ormJoinColumn = ormJoinTable.addSpecifiedJoinColumn(0);
-		XmlJoinTable joinTableResource = manyToMany.getJoinTable();
-		XmlJoinColumn joinColumnResource = joinTableResource.getJoinColumns().get(0);
-
-		assertNull(ormJoinColumn.getSpecifiedTable());
-		assertNull(joinColumnResource.getTable());
-		
-		//set table in the context model, verify resource model modified
-		ormJoinColumn.setSpecifiedTable("foo");
-		assertEquals("foo", ormJoinColumn.getSpecifiedTable());
-		assertEquals("foo", joinColumnResource.getTable());
-		
-		//set table to null in the context model
-		ormJoinColumn.setSpecifiedTable(null);
-		assertNull(ormJoinColumn.getSpecifiedTable());
-		assertNull(joinTableResource.getJoinColumns().get(0).getTable());
-	}
-
-	public void testUpdateSpecifiedNullable() throws Exception {
-		OrmPersistentType ormPersistentType = getEntityMappings().addPersistentType(MappingKeys.ENTITY_TYPE_MAPPING_KEY, "model.Foo");
-		OrmPersistentAttribute ormPersistentAttribute = ormPersistentType.addSpecifiedPersistentAttribute(MappingKeys.MANY_TO_MANY_ATTRIBUTE_MAPPING_KEY, "manyToManyMapping");
-		OrmManyToManyMapping ormManyToManyMapping = (OrmManyToManyMapping) ormPersistentAttribute.getMapping();
-		XmlManyToMany manyToMany = getXmlEntityMappings().getEntities().get(0).getAttributes().getManyToManys().get(0);
-
-		OrmJoinTable ormJoinTable = ormManyToManyMapping.getRelationshipReference().getJoinTableJoiningStrategy().getJoinTable();		
-		OrmJoinColumn ormJoinColumn = ormJoinTable.addSpecifiedJoinColumn(0);
-		XmlJoinTable joinTableResource = manyToMany.getJoinTable();
-		XmlJoinColumn joinColumnResource = joinTableResource.getJoinColumns().get(0);
-
-		assertNull(ormJoinColumn.getSpecifiedNullable());
-		assertNull(joinColumnResource.getNullable());
-		
-		//set nullable in the resource model, verify context model updated
-		joinColumnResource.setNullable(Boolean.TRUE);
-		assertEquals(Boolean.TRUE, ormJoinColumn.getSpecifiedNullable());
-		assertEquals(Boolean.TRUE, joinColumnResource.getNullable());
-	
-		//set nullable to null in the resource model
-		joinColumnResource.setNullable(null);
-		assertNull(ormJoinColumn.getSpecifiedNullable());
-		assertNull(joinColumnResource.getNullable());
-		
-		joinColumnResource.setNullable(Boolean.FALSE);
-		assertEquals(Boolean.FALSE, ormJoinColumn.getSpecifiedNullable());
-		assertEquals(Boolean.FALSE, joinColumnResource.getNullable());
-
-		joinTableResource.getJoinColumns().remove(0);
-		assertFalse(ormJoinTable.specifiedJoinColumns().hasNext());
-		assertTrue(joinTableResource.getJoinColumns().isEmpty());
-	}
-	
-	public void testModifySpecifiedNullable() throws Exception {
-		OrmPersistentType ormPersistentType = getEntityMappings().addPersistentType(MappingKeys.ENTITY_TYPE_MAPPING_KEY, "model.Foo");
-		OrmPersistentAttribute ormPersistentAttribute = ormPersistentType.addSpecifiedPersistentAttribute(MappingKeys.MANY_TO_MANY_ATTRIBUTE_MAPPING_KEY, "manyToManyMapping");
-		OrmManyToManyMapping ormManyToManyMapping = (OrmManyToManyMapping) ormPersistentAttribute.getMapping();
-		XmlManyToMany manyToMany = getXmlEntityMappings().getEntities().get(0).getAttributes().getManyToManys().get(0);
-
-		OrmJoinTable ormJoinTable = ormManyToManyMapping.getRelationshipReference().getJoinTableJoiningStrategy().getJoinTable();		
-		OrmJoinColumn ormJoinColumn = ormJoinTable.addSpecifiedJoinColumn(0);
-		XmlJoinTable joinTableResource = manyToMany.getJoinTable();
-		XmlJoinColumn joinColumnResource = joinTableResource.getJoinColumns().get(0);
-
-		assertNull(ormJoinColumn.getSpecifiedNullable());
-		assertNull(joinColumnResource.getNullable());
-		
-		//set nullable in the context model, verify resource model modified
-		ormJoinColumn.setSpecifiedNullable(Boolean.FALSE);
-		assertEquals(Boolean.FALSE, ormJoinColumn.getSpecifiedNullable());
-		assertEquals(Boolean.FALSE, joinColumnResource.getNullable());
-		
-		//set nullable to null in the context model
-		ormJoinColumn.setSpecifiedNullable(null);
-		assertNull(ormJoinColumn.getSpecifiedNullable());
-		assertNull(joinTableResource.getJoinColumns().get(0).getNullable());
-	}
-
-	public void testUpdateSpecifiedUpdatable() throws Exception {
-		OrmPersistentType ormPersistentType = getEntityMappings().addPersistentType(MappingKeys.ENTITY_TYPE_MAPPING_KEY, "model.Foo");
-		OrmPersistentAttribute ormPersistentAttribute = ormPersistentType.addSpecifiedPersistentAttribute(MappingKeys.MANY_TO_MANY_ATTRIBUTE_MAPPING_KEY, "manyToManyMapping");
-		OrmManyToManyMapping ormManyToManyMapping = (OrmManyToManyMapping) ormPersistentAttribute.getMapping();
-		XmlManyToMany manyToMany = getXmlEntityMappings().getEntities().get(0).getAttributes().getManyToManys().get(0);
-
-		OrmJoinTable ormJoinTable = ormManyToManyMapping.getRelationshipReference().getJoinTableJoiningStrategy().getJoinTable();		
-		OrmJoinColumn ormJoinColumn = ormJoinTable.addSpecifiedJoinColumn(0);
-		XmlJoinTable joinTableResource = manyToMany.getJoinTable();
-		XmlJoinColumn joinColumnResource = joinTableResource.getJoinColumns().get(0);
-
-		assertNull(ormJoinColumn.getSpecifiedUpdatable());
-		assertNull(joinColumnResource.getUpdatable());
-		
-		//set updatable in the resource model, verify context model updated
-		joinColumnResource.setUpdatable(Boolean.TRUE);
-		assertEquals(Boolean.TRUE, ormJoinColumn.getSpecifiedUpdatable());
-		assertEquals(Boolean.TRUE, joinColumnResource.getUpdatable());
-	
-		//set updatable to null in the resource model
-		joinColumnResource.setUpdatable(null);
-		assertNull(ormJoinColumn.getSpecifiedUpdatable());
-		assertNull(joinColumnResource.getUpdatable());
-		
-		joinColumnResource.setUpdatable(Boolean.FALSE);
-		assertEquals(Boolean.FALSE, ormJoinColumn.getSpecifiedUpdatable());
-		assertEquals(Boolean.FALSE, joinColumnResource.getUpdatable());
-
-		joinTableResource.getJoinColumns().remove(0);
-		assertFalse(ormJoinTable.specifiedJoinColumns().hasNext());
-		assertTrue(joinTableResource.getJoinColumns().isEmpty());
-	}
-	
-	public void testModifySpecifiedUpdatable() throws Exception {
-		OrmPersistentType ormPersistentType = getEntityMappings().addPersistentType(MappingKeys.ENTITY_TYPE_MAPPING_KEY, "model.Foo");
-		OrmPersistentAttribute ormPersistentAttribute = ormPersistentType.addSpecifiedPersistentAttribute(MappingKeys.MANY_TO_MANY_ATTRIBUTE_MAPPING_KEY, "manyToManyMapping");
-		OrmManyToManyMapping ormManyToManyMapping = (OrmManyToManyMapping) ormPersistentAttribute.getMapping();
-		XmlManyToMany manyToMany = getXmlEntityMappings().getEntities().get(0).getAttributes().getManyToManys().get(0);
-
-		OrmJoinTable ormJoinTable = ormManyToManyMapping.getRelationshipReference().getJoinTableJoiningStrategy().getJoinTable();		
-		OrmJoinColumn ormJoinColumn = ormJoinTable.addSpecifiedJoinColumn(0);
-		XmlJoinTable joinTableResource = manyToMany.getJoinTable();
-		XmlJoinColumn joinColumnResource = joinTableResource.getJoinColumns().get(0);
-
-		assertNull(ormJoinColumn.getSpecifiedUpdatable());
-		assertNull(joinColumnResource.getUpdatable());
-		
-		//set updatable in the context model, verify resource model modified
-		ormJoinColumn.setSpecifiedUpdatable(Boolean.FALSE);
-		assertEquals(Boolean.FALSE, ormJoinColumn.getSpecifiedUpdatable());
-		assertEquals(Boolean.FALSE, joinColumnResource.getUpdatable());
-		
-		//set updatable to null in the context model
-		ormJoinColumn.setSpecifiedUpdatable(null);
-		assertNull(ormJoinColumn.getSpecifiedUpdatable());
-		assertNull(joinTableResource.getJoinColumns().get(0).getUpdatable());
-	}
-
-	public void testUpdateSpecifiedInsertable() throws Exception {
-		OrmPersistentType ormPersistentType = getEntityMappings().addPersistentType(MappingKeys.ENTITY_TYPE_MAPPING_KEY, "model.Foo");
-		OrmPersistentAttribute ormPersistentAttribute = ormPersistentType.addSpecifiedPersistentAttribute(MappingKeys.MANY_TO_MANY_ATTRIBUTE_MAPPING_KEY, "manyToManyMapping");
-		OrmManyToManyMapping ormManyToManyMapping = (OrmManyToManyMapping) ormPersistentAttribute.getMapping();
-		XmlManyToMany manyToMany = getXmlEntityMappings().getEntities().get(0).getAttributes().getManyToManys().get(0);
-
-		OrmJoinTable ormJoinTable = ormManyToManyMapping.getRelationshipReference().getJoinTableJoiningStrategy().getJoinTable();		
-		OrmJoinColumn ormJoinColumn = ormJoinTable.addSpecifiedJoinColumn(0);
-		XmlJoinTable joinTableResource = manyToMany.getJoinTable();
-		XmlJoinColumn joinColumnResource = joinTableResource.getJoinColumns().get(0);
-
-		assertNull(ormJoinColumn.getSpecifiedInsertable());
-		assertNull(joinColumnResource.getInsertable());
-		
-		//set insertable in the resource model, verify context model updated
-		joinColumnResource.setInsertable(Boolean.TRUE);
-		assertEquals(Boolean.TRUE, ormJoinColumn.getSpecifiedInsertable());
-		assertEquals(Boolean.TRUE, joinColumnResource.getInsertable());
-	
-		//set insertable to null in the resource model
-		joinColumnResource.setInsertable(null);
-		assertNull(ormJoinColumn.getSpecifiedInsertable());
-		assertNull(joinColumnResource.getInsertable());
-		
-		joinColumnResource.setInsertable(Boolean.FALSE);
-		assertEquals(Boolean.FALSE, ormJoinColumn.getSpecifiedInsertable());
-		assertEquals(Boolean.FALSE, joinColumnResource.getInsertable());
-
-		joinTableResource.getJoinColumns().remove(0);
-		assertFalse(ormJoinTable.specifiedJoinColumns().hasNext());
-		assertTrue(joinTableResource.getJoinColumns().isEmpty());
-	}
-	
-	public void testModifySpecifiedInsertable() throws Exception {
-		OrmPersistentType ormPersistentType = getEntityMappings().addPersistentType(MappingKeys.ENTITY_TYPE_MAPPING_KEY, "model.Foo");
-		OrmPersistentAttribute ormPersistentAttribute = ormPersistentType.addSpecifiedPersistentAttribute(MappingKeys.MANY_TO_MANY_ATTRIBUTE_MAPPING_KEY, "manyToManyMapping");
-		OrmManyToManyMapping ormManyToManyMapping = (OrmManyToManyMapping) ormPersistentAttribute.getMapping();
-		XmlManyToMany manyToMany = getXmlEntityMappings().getEntities().get(0).getAttributes().getManyToManys().get(0);
-
-		OrmJoinTable ormJoinTable = ormManyToManyMapping.getRelationshipReference().getJoinTableJoiningStrategy().getJoinTable();		
-		OrmJoinColumn ormJoinColumn = ormJoinTable.addSpecifiedJoinColumn(0);
-		XmlJoinTable joinTableResource = manyToMany.getJoinTable();
-		XmlJoinColumn joinColumnResource = joinTableResource.getJoinColumns().get(0);
-
-		assertNull(ormJoinColumn.getSpecifiedInsertable());
-		assertNull(joinColumnResource.getInsertable());
-		
-		//set insertable in the context model, verify resource model modified
-		ormJoinColumn.setSpecifiedInsertable(Boolean.FALSE);
-		assertEquals(Boolean.FALSE, ormJoinColumn.getSpecifiedInsertable());
-		assertEquals(Boolean.FALSE, joinColumnResource.getInsertable());
-		
-		//set insertable to null in the context model
-		ormJoinColumn.setSpecifiedInsertable(null);
-		assertNull(ormJoinColumn.getSpecifiedInsertable());
-		assertNull(joinTableResource.getJoinColumns().get(0).getInsertable());
-	}
-	
-	public void testUpdateSpecifiedUnique() throws Exception {
-		OrmPersistentType ormPersistentType = getEntityMappings().addPersistentType(MappingKeys.ENTITY_TYPE_MAPPING_KEY, "model.Foo");
-		OrmPersistentAttribute ormPersistentAttribute = ormPersistentType.addSpecifiedPersistentAttribute(MappingKeys.MANY_TO_MANY_ATTRIBUTE_MAPPING_KEY, "manyToManyMapping");
-		OrmManyToManyMapping ormManyToManyMapping = (OrmManyToManyMapping) ormPersistentAttribute.getMapping();
-		XmlManyToMany manyToMany = getXmlEntityMappings().getEntities().get(0).getAttributes().getManyToManys().get(0);
-
-		OrmJoinTable ormJoinTable = ormManyToManyMapping.getRelationshipReference().getJoinTableJoiningStrategy().getJoinTable();		
-		OrmJoinColumn ormJoinColumn = ormJoinTable.addSpecifiedJoinColumn(0);
-		XmlJoinTable joinTableResource = manyToMany.getJoinTable();
-		XmlJoinColumn joinColumnResource = joinTableResource.getJoinColumns().get(0);
-
-		assertNull(ormJoinColumn.getSpecifiedUnique());
-		assertNull(joinColumnResource.getUnique());
-		
-		//set unique in the resource model, verify context model updated
-		joinColumnResource.setUnique(Boolean.TRUE);
-		assertEquals(Boolean.TRUE, ormJoinColumn.getSpecifiedUnique());
-		assertEquals(Boolean.TRUE, joinColumnResource.getUnique());
-	
-		//set unique to null in the resource model
-		joinColumnResource.setUnique(null);
-		assertNull(ormJoinColumn.getSpecifiedUnique());
-		assertNull(joinColumnResource.getUnique());
-		
-		joinColumnResource.setUnique(Boolean.FALSE);
-		assertEquals(Boolean.FALSE, ormJoinColumn.getSpecifiedUnique());
-		assertEquals(Boolean.FALSE, joinColumnResource.getUnique());
-
-		joinTableResource.getJoinColumns().remove(0);
-		assertFalse(ormJoinTable.specifiedJoinColumns().hasNext());
-		assertTrue(joinTableResource.getJoinColumns().isEmpty());
-	}
-	
-	public void testModifySpecifiedUnique() throws Exception {
-		OrmPersistentType ormPersistentType = getEntityMappings().addPersistentType(MappingKeys.ENTITY_TYPE_MAPPING_KEY, "model.Foo");
-		OrmPersistentAttribute ormPersistentAttribute = ormPersistentType.addSpecifiedPersistentAttribute(MappingKeys.MANY_TO_MANY_ATTRIBUTE_MAPPING_KEY, "manyToManyMapping");
-		OrmManyToManyMapping ormManyToManyMapping = (OrmManyToManyMapping) ormPersistentAttribute.getMapping();
-		XmlManyToMany manyToMany = getXmlEntityMappings().getEntities().get(0).getAttributes().getManyToManys().get(0);
-
-		OrmJoinTable ormJoinTable = ormManyToManyMapping.getRelationshipReference().getJoinTableJoiningStrategy().getJoinTable();		
-		OrmJoinColumn ormJoinColumn = ormJoinTable.addSpecifiedJoinColumn(0);
-		XmlJoinTable joinTableResource = manyToMany.getJoinTable();
-		XmlJoinColumn joinColumnResource = joinTableResource.getJoinColumns().get(0);
-
-		assertNull(ormJoinColumn.getSpecifiedUnique());
-		assertNull(joinColumnResource.getUnique());
-		
-		//set unique in the context model, verify resource model modified
-		ormJoinColumn.setSpecifiedUnique(Boolean.FALSE);
-		assertEquals(Boolean.FALSE, ormJoinColumn.getSpecifiedUnique());
-		assertEquals(Boolean.FALSE, joinColumnResource.getUnique());
-		
-		//set unique to null in the context model
-		ormJoinColumn.setSpecifiedUnique(null);
-		assertNull(ormJoinColumn.getSpecifiedUnique());
-		assertNull(joinTableResource.getJoinColumns().get(0).getUnique());
-	}
-
-}
\ No newline at end of file
diff --git a/jpa/tests/org.eclipse.jpt.core.tests/src/org/eclipse/jpt/core/tests/internal/context/orm/OrmJoinTableTests.java b/jpa/tests/org.eclipse.jpt.core.tests/src/org/eclipse/jpt/core/tests/internal/context/orm/OrmJoinTableTests.java
deleted file mode 100644
index e9e9817..0000000
--- a/jpa/tests/org.eclipse.jpt.core.tests/src/org/eclipse/jpt/core/tests/internal/context/orm/OrmJoinTableTests.java
+++ /dev/null
@@ -1,1156 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.core.tests.internal.context.orm;
-
-import java.util.Iterator;
-import java.util.ListIterator;
-import org.eclipse.jdt.core.ICompilationUnit;
-import org.eclipse.jpt.core.JptCorePlugin;
-import org.eclipse.jpt.core.MappingKeys;
-import org.eclipse.jpt.core.context.java.JavaEntity;
-import org.eclipse.jpt.core.context.java.JavaJoinColumn;
-import org.eclipse.jpt.core.context.java.JavaJoinTable;
-import org.eclipse.jpt.core.context.java.JavaManyToManyMapping;
-import org.eclipse.jpt.core.context.java.JavaPersistentAttribute;
-import org.eclipse.jpt.core.context.orm.OrmEntity;
-import org.eclipse.jpt.core.context.orm.OrmJoinColumn;
-import org.eclipse.jpt.core.context.orm.OrmJoinTable;
-import org.eclipse.jpt.core.context.orm.OrmManyToManyMapping;
-import org.eclipse.jpt.core.context.orm.OrmPersistentAttribute;
-import org.eclipse.jpt.core.context.orm.OrmPersistentType;
-import org.eclipse.jpt.core.context.orm.OrmUniqueConstraint;
-import org.eclipse.jpt.core.resource.java.JPA;
-import org.eclipse.jpt.core.resource.orm.OrmFactory;
-import org.eclipse.jpt.core.resource.orm.XmlJoinTable;
-import org.eclipse.jpt.core.resource.orm.XmlManyToMany;
-import org.eclipse.jpt.core.resource.orm.XmlUniqueConstraint;
-import org.eclipse.jpt.core.resource.persistence.PersistenceFactory;
-import org.eclipse.jpt.core.resource.persistence.XmlMappingFileRef;
-import org.eclipse.jpt.core.tests.internal.context.ContextModelTestCase;
-import org.eclipse.jpt.core.tests.internal.projects.TestJavaProject.SourceWriter;
-import org.eclipse.jpt.utility.internal.iterators.ArrayIterator;
-
-@SuppressWarnings("nls")
-public class OrmJoinTableTests extends ContextModelTestCase
-{
-	public OrmJoinTableTests(String name) {
-		super(name);
-	}
-	
-	@Override
-	protected void setUp() throws Exception {
-		super.setUp();
-		XmlMappingFileRef mappingFileRef = PersistenceFactory.eINSTANCE.createXmlMappingFileRef();
-		mappingFileRef.setFileName(JptCorePlugin.DEFAULT_ORM_XML_FILE_PATH);
-		getXmlPersistenceUnit().getMappingFiles().add(mappingFileRef);
-		getPersistenceXmlResource().save(null);
-	}
-
-	private ICompilationUnit createTestEntityWithValidManyToMany() throws Exception {		
-		return this.createTestType(new DefaultAnnotationWriter() {
-			@Override
-			public Iterator<String> imports() {
-				return new ArrayIterator<String>(JPA.ENTITY, JPA.MANY_TO_MANY, JPA.ID, "java.util.Collection");
-			}
-			@Override
-			public void appendTypeAnnotationTo(StringBuilder sb) {
-				sb.append("@Entity");
-			}
-			@Override
-			public void appendIdFieldAnnotationTo(StringBuilder sb) {
-				sb.append("@ManyToMany").append(CR);
-				sb.append("    private Collection<Project> projects;").append(CR);
-				sb.append("@Id").append(CR);
-			}
-		});
-	}
-	
-	private void createTargetEntity() throws Exception {
-		SourceWriter sourceWriter = new SourceWriter() {
-			public void appendSourceTo(StringBuilder sb) {
-				sb.append(CR);
-					sb.append("import ");
-					sb.append(JPA.ENTITY);
-					sb.append(";");
-					sb.append(CR);
-					sb.append("import ");
-					sb.append(JPA.ID);
-					sb.append(";");
-					sb.append(CR);
-				sb.append(CR);
-				sb.append("@Entity");
-				sb.append(CR);
-				sb.append("public class Project {").append(CR);
-				sb.append(CR);
-				sb.append("    @Id").append(CR);
-				sb.append("    private int proj_id;").append(CR);
-				sb.append(CR);
-			}
-		};
-		this.javaProject.createCompilationUnit(PACKAGE_NAME, "Project.java", sourceWriter);
-	}
-
-	public void testUpdateSpecifiedName() throws Exception {
-		OrmPersistentType ormPersistentType = getEntityMappings().addPersistentType(MappingKeys.ENTITY_TYPE_MAPPING_KEY, "model.Foo");
-		OrmPersistentAttribute ormPersistentAttribute = ormPersistentType.addSpecifiedPersistentAttribute(MappingKeys.MANY_TO_MANY_ATTRIBUTE_MAPPING_KEY, "manyToManyMapping");
-		OrmManyToManyMapping ormManyToManyMapping = (OrmManyToManyMapping) ormPersistentAttribute.getMapping();
-		XmlManyToMany manyToMany = getXmlEntityMappings().getEntities().get(0).getAttributes().getManyToManys().get(0);
-
-		OrmJoinTable ormJoinTable = ormManyToManyMapping.getRelationshipReference().getJoinTableJoiningStrategy().getJoinTable();
-		
-		assertNull(ormJoinTable.getSpecifiedName());
-		assertNull(manyToMany.getJoinTable());
-		
-		
-		//set name in the resource model, verify context model updated
-		manyToMany.setJoinTable(OrmFactory.eINSTANCE.createXmlJoinTableImpl());
-		manyToMany.getJoinTable().setName("FOO");
-		assertEquals("FOO", ormJoinTable.getSpecifiedName());
-		assertEquals("FOO", manyToMany.getJoinTable().getName());
-	
-		//set name to null in the resource model
-		manyToMany.getJoinTable().setName(null);
-		assertNull(ormJoinTable.getSpecifiedName());
-		assertNull(manyToMany.getJoinTable().getName());
-		
-		manyToMany.getJoinTable().setName("FOO");
-		assertEquals("FOO", ormJoinTable.getSpecifiedName());
-		assertEquals("FOO", manyToMany.getJoinTable().getName());
-
-		manyToMany.setJoinTable(null);
-		assertNull(ormJoinTable.getSpecifiedName());
-		assertNull(manyToMany.getJoinTable());
-	}
-	
-	public void testModifySpecifiedName() throws Exception {
-		OrmPersistentType ormPersistentType = getEntityMappings().addPersistentType(MappingKeys.ENTITY_TYPE_MAPPING_KEY, "model.Foo");
-		OrmPersistentAttribute ormPersistentAttribute = ormPersistentType.addSpecifiedPersistentAttribute(MappingKeys.MANY_TO_MANY_ATTRIBUTE_MAPPING_KEY, "manyToManyMapping");
-		OrmManyToManyMapping ormManyToManyMapping = (OrmManyToManyMapping) ormPersistentAttribute.getMapping();
-		XmlManyToMany manyToMany = getXmlEntityMappings().getEntities().get(0).getAttributes().getManyToManys().get(0);
-
-		OrmJoinTable ormJoinTable = ormManyToManyMapping.getRelationshipReference().getJoinTableJoiningStrategy().getJoinTable();
-		
-		assertNull(ormJoinTable.getSpecifiedName());
-		assertNull(manyToMany.getJoinTable());
-		
-		//set name in the context model, verify resource model modified
-		ormJoinTable.setSpecifiedName("foo");
-		assertEquals("foo", ormJoinTable.getSpecifiedName());
-		assertEquals("foo", manyToMany.getJoinTable().getName());
-		
-		//set name to null in the context model
-		ormJoinTable.setSpecifiedName(null);
-		assertNull(ormJoinTable.getSpecifiedName());
-		assertNull(manyToMany.getJoinTable());
-	}
-	
-	public void testVirtualJoinTable() throws Exception {
-		createTestEntityWithValidManyToMany();
-		
-		OrmPersistentType ormPersistentType = getEntityMappings().addPersistentType(MappingKeys.ENTITY_TYPE_MAPPING_KEY, FULLY_QUALIFIED_TYPE_NAME);
-
-		OrmPersistentAttribute ormPersistentAttribute = ormPersistentType.getAttributeNamed("projects");
-		OrmManyToManyMapping ormManyToManyMapping = (OrmManyToManyMapping) ormPersistentAttribute.getMapping();
-		OrmJoinTable ormJoinTable = ormManyToManyMapping.getRelationshipReference().getJoinTableJoiningStrategy().getJoinTable();
-		
-		assertTrue(ormPersistentAttribute.isVirtual());
-		assertEquals(null, ormJoinTable.getSpecifiedName());
-
-		createTargetEntity();
-		getEntityMappings().addPersistentType(MappingKeys.ENTITY_TYPE_MAPPING_KEY, PACKAGE_NAME + ".Project");
-
-		assertEquals(TYPE_NAME + "_Project", ormJoinTable.getSpecifiedName());
-		assertNull(ormJoinTable.getSpecifiedCatalog());
-		assertNull(ormJoinTable.getSpecifiedSchema());
-		assertEquals(0, ormJoinTable.specifiedJoinColumnsSize());
-		assertEquals(0, ormJoinTable.specifiedInverseJoinColumnsSize());
-		OrmJoinColumn ormJoinColumn = ormJoinTable.getDefaultJoinColumn();
-//TODO need to test joinColumn defaults here as well as in java and all the relatioship mapping types
-//		assertEquals("id_project_id", ormJoinColumn.getDefaultName());
-//		assertEquals("id_project_id", ormJoinColumn.getDefaultReferencedColumnName());
-		OrmJoinColumn inverseOrmJoinColumn = ormJoinTable.getDefaultInverseJoinColumn();
-//		assertEquals("id_project_id", inverseOrmJoinColumn.getDefaultName());
-//		assertEquals("id_project_id", inverseOrmJoinColumn.getDefaultReferencedColumnName());
-	
-		JavaPersistentAttribute javaPersistentAttribute = ormPersistentAttribute.getJavaPersistentAttribute();
-		JavaManyToManyMapping javaManyToManyMapping = (JavaManyToManyMapping) javaPersistentAttribute.getMapping();
-		JavaJoinTable javaJoinTable = javaManyToManyMapping.getRelationshipReference().getJoinTableJoiningStrategy().getJoinTable();
-		javaJoinTable.setSpecifiedName("FOO");
-		javaJoinTable.setSpecifiedCatalog("CATALOG");
-		javaJoinTable.setSpecifiedSchema("SCHEMA");
-		JavaJoinColumn javaJoinColumn = javaJoinTable.addSpecifiedJoinColumn(0);
-		javaJoinColumn.setSpecifiedName("NAME");
-		javaJoinColumn.setSpecifiedReferencedColumnName("REFERENCED_NAME");
-		JavaJoinColumn inverseJavaJoinColumn = javaJoinTable.addSpecifiedInverseJoinColumn(0);
-		inverseJavaJoinColumn.setSpecifiedName("INVERSE_NAME");
-		inverseJavaJoinColumn.setSpecifiedReferencedColumnName("INVERSE_REFERENCED_NAME");
-		
-		assertEquals("FOO", ormJoinTable.getSpecifiedName());
-		assertEquals("CATALOG", ormJoinTable.getSpecifiedCatalog());
-		assertEquals("SCHEMA", ormJoinTable.getSpecifiedSchema());
-		assertEquals(1, ormJoinTable.specifiedJoinColumnsSize());
-		assertEquals(1, ormJoinTable.specifiedInverseJoinColumnsSize());
-		ormJoinColumn = ormJoinTable.specifiedJoinColumns().next();
-		assertEquals("NAME", ormJoinColumn.getSpecifiedName());
-		assertEquals("REFERENCED_NAME", ormJoinColumn.getSpecifiedReferencedColumnName());
-		inverseOrmJoinColumn = ormJoinTable.specifiedInverseJoinColumns().next();
-		assertEquals("INVERSE_NAME", inverseOrmJoinColumn.getSpecifiedName());
-		assertEquals("INVERSE_REFERENCED_NAME", inverseOrmJoinColumn.getSpecifiedReferencedColumnName());
-	}
-	
-	public void testUpdateDefaultNameFromJavaTable() throws Exception {
-		createTestEntityWithValidManyToMany();
-
-		OrmPersistentType ormPersistentType = getEntityMappings().addPersistentType(MappingKeys.ENTITY_TYPE_MAPPING_KEY, FULLY_QUALIFIED_TYPE_NAME);
-		
-		OrmPersistentAttribute ormPersistentAttribute = ormPersistentType.addSpecifiedPersistentAttribute(MappingKeys.MANY_TO_MANY_ATTRIBUTE_MAPPING_KEY, "projects");
-		OrmManyToManyMapping ormManyToManyMapping = (OrmManyToManyMapping) ormPersistentAttribute.getMapping();
-		
-		OrmJoinTable ormJoinTable = ormManyToManyMapping.getRelationshipReference().getJoinTableJoiningStrategy().getJoinTable();
-		assertEquals(null, ormJoinTable.getDefaultName());
-		
-		createTargetEntity();
-		OrmPersistentType targetPersistentType = getEntityMappings().addPersistentType(MappingKeys.ENTITY_TYPE_MAPPING_KEY, PACKAGE_NAME + ".Project");
-		assertEquals(TYPE_NAME + "_Project", ormJoinTable.getDefaultName());
-
-		
-		((JavaEntity) targetPersistentType.getJavaPersistentType().getMapping()).getTable().setSpecifiedName("FOO");
-		assertEquals(TYPE_NAME + "_FOO", ormJoinTable.getDefaultName());
-		
-		((JavaEntity) ormPersistentType.getJavaPersistentType().getMapping()).getTable().setSpecifiedName("BAR");
-		assertEquals("BAR_FOO", ormJoinTable.getDefaultName());
-		
-		ormPersistentType.getJavaPersistentType().getAttributeNamed("projects").setSpecifiedMappingKey(MappingKeys.MANY_TO_MANY_ATTRIBUTE_MAPPING_KEY);
-		JavaManyToManyMapping javaManyMapping = (JavaManyToManyMapping) ormPersistentType.getJavaPersistentType().getAttributeNamed("projects").getMapping();
-		javaManyMapping.getRelationshipReference().getJoinTableJoiningStrategy().getJoinTable().setSpecifiedName("JAVA_JOIN_TABLE");
-		
-		assertEquals("BAR_FOO", ormJoinTable.getDefaultName());
-
-		
-		//set metadata-complete to true, will ignore java annotation settings
-		getEntityMappings().getPersistenceUnitMetadata().setXmlMappingMetadataComplete(true);
-		//ormPersistentType.getMapping().setSpecifiedMetadataComplete(Boolean.TRUE);
-		assertEquals(TYPE_NAME + "_Project", ormJoinTable.getDefaultName());
-		
-		
-		getEntityMappings().getPersistenceUnitMetadata().setXmlMappingMetadataComplete(false);
-		//remove m-m mapping from the orm.xml file
-		ormPersistentAttribute.makeVirtual();
-		//ormPersistentType.getMapping().setSpecifiedMetadataComplete(null);
-		ormPersistentAttribute = ormPersistentType.getAttributeNamed("projects");
-		ormManyToManyMapping = (OrmManyToManyMapping) ormPersistentAttribute.getMapping();
-		ormJoinTable = ormManyToManyMapping.getRelationshipReference().getJoinTableJoiningStrategy().getJoinTable();
-		assertTrue(ormPersistentAttribute.isVirtual());
-		assertEquals("JAVA_JOIN_TABLE", ormManyToManyMapping.getRelationshipReference().getJoinTableJoiningStrategy().getJoinTable().getSpecifiedName());//specifiedName since this is a virtual mapping now
-		
-		javaManyMapping.getRelationshipReference().getJoinTableJoiningStrategy().getJoinTable().setSpecifiedName(null);
-		assertEquals("BAR_FOO", ormJoinTable.getSpecifiedName());
-		assertEquals("BAR_FOO", ormJoinTable.getDefaultName());
-		
-		((OrmEntity) ormPersistentType.getMapping()).getTable().setSpecifiedName("ORM_TABLE_NAME");
-		assertEquals("ORM_TABLE_NAME_FOO", ormJoinTable.getDefaultName());
-		
-		((OrmEntity) targetPersistentType.getMapping()).getTable().setSpecifiedName("ORM_TARGET");
-		assertEquals("ORM_TABLE_NAME_ORM_TARGET", ormJoinTable.getDefaultName());
-	}
-
-	public void testUpdateSpecifiedSchema() throws Exception {
-		OrmPersistentType ormPersistentType = getEntityMappings().addPersistentType(MappingKeys.ENTITY_TYPE_MAPPING_KEY, "model.Foo");
-		OrmPersistentAttribute ormPersistentAttribute = ormPersistentType.addSpecifiedPersistentAttribute(MappingKeys.MANY_TO_MANY_ATTRIBUTE_MAPPING_KEY, "manyToManyMapping");
-		OrmManyToManyMapping ormManyToManyMapping = (OrmManyToManyMapping) ormPersistentAttribute.getMapping();
-		XmlManyToMany manyToMany = getXmlEntityMappings().getEntities().get(0).getAttributes().getManyToManys().get(0);
-
-		OrmJoinTable ormJoinTable = ormManyToManyMapping.getRelationshipReference().getJoinTableJoiningStrategy().getJoinTable();
-		
-		assertNull(ormJoinTable.getSpecifiedSchema());
-		assertNull(manyToMany.getJoinTable());
-		
-		//set schema in the resource model, verify context model updated
-		manyToMany.setJoinTable(OrmFactory.eINSTANCE.createXmlJoinTableImpl());
-		manyToMany.getJoinTable().setSchema("FOO");
-		assertEquals("FOO", ormJoinTable.getSpecifiedSchema());
-		assertEquals("FOO", manyToMany.getJoinTable().getSchema());
-	
-		//set Schema to null in the resource model
-		manyToMany.getJoinTable().setSchema(null);
-		assertNull(ormJoinTable.getSpecifiedSchema());
-		assertNull(manyToMany.getJoinTable().getSchema());
-		
-		manyToMany.getJoinTable().setSchema("FOO");
-		assertEquals("FOO", ormJoinTable.getSpecifiedSchema());
-		assertEquals("FOO", manyToMany.getJoinTable().getSchema());
-
-		manyToMany.setJoinTable(null);
-		assertNull(ormJoinTable.getSpecifiedSchema());
-		assertNull(manyToMany.getJoinTable());
-	}
-	
-//	public void testUpdateDefaultSchemaFromJavaTable() throws Exception {
-//		createTestEntity();
-//		
-//		OrmPersistentType ormPersistentType = entityMappings().addOrmPersistentType(IMappingKeys.ENTITY_TYPE_MAPPING_KEY, FULLY_QUALIFIED_TYPE_NAME);
-//		XmlEntity xmlEntity = (XmlEntity) ormPersistentType.getMapping();
-//		assertNull(xmlEntity.getTable().getDefaultSchema());
-//		
-//		xmlEntity.javaEntity().getTable().setSpecifiedSchema("Foo");
-//		assertEquals("Foo", xmlEntity.getTable().getDefaultSchema());
-//		
-//		xmlEntity.setSpecifiedMetadataComplete(Boolean.TRUE);
-//		assertNull(xmlEntity.getTable().getDefaultSchema());
-//
-//		xmlEntity.entityMappings().getPersistenceUnitMetadata().setXmlMappingMetadataComplete(true);
-//		xmlEntity.setSpecifiedMetadataComplete(Boolean.FALSE);
-//		assertNull(xmlEntity.getTable().getDefaultSchema());
-//	
-//		xmlEntity.setSpecifiedMetadataComplete(null);
-//		assertNull(xmlEntity.getTable().getDefaultSchema());
-//		
-//		xmlEntity.entityMappings().getPersistenceUnitMetadata().setXmlMappingMetadataComplete(false);
-//		assertEquals("Foo", xmlEntity.getTable().getDefaultSchema());
-//		
-//		xmlEntity.getTable().setSpecifiedName("Bar");
-//		assertNull(xmlEntity.getTable().getDefaultSchema());
-//	}
-//	
-//	public void testUpdateDefaultSchemaNoJava() throws Exception {
-//		createTestEntity();
-//		
-//		OrmPersistentType ormPersistentType = entityMappings().addOrmPersistentType(IMappingKeys.ENTITY_TYPE_MAPPING_KEY, "model.Foo");
-//		XmlEntity xmlEntity = (XmlEntity) ormPersistentType.getMapping();
-//		assertNull(xmlEntity.getTable().getDefaultSchema());
-//	}
-//	
-//	public void testUpdateDefaultSchemaFromParent() throws Exception {
-//		createTestEntity();
-//		createTestSubType();
-//		
-//		OrmPersistentType parentOrmPersistentType = entityMappings().addOrmPersistentType(IMappingKeys.ENTITY_TYPE_MAPPING_KEY, FULLY_QUALIFIED_TYPE_NAME);
-//		OrmPersistentType childOrmPersistentType = entityMappings().addOrmPersistentType(IMappingKeys.ENTITY_TYPE_MAPPING_KEY, PACKAGE_NAME + ".AnnotationTestTypeChild");
-//		XmlEntity parentXmlEntity = (XmlEntity) parentOrmPersistentType.getMapping();
-//		XmlEntity childXmlEntity = (XmlEntity) childOrmPersistentType.getMapping();
-//		
-//		assertNull(parentXmlEntity.getTable().getDefaultSchema());
-//		assertNull(childXmlEntity.getTable().getDefaultSchema());
-//		
-//		parentXmlEntity.getTable().setSpecifiedSchema("FOO");
-//		assertNull(parentXmlEntity.getTable().getDefaultSchema());
-//		assertEquals("FOO", childXmlEntity.getTable().getDefaultSchema());
-//
-//		parentXmlEntity.setSpecifiedInheritanceStrategy(InheritanceType.JOINED);
-//		assertNull(parentXmlEntity.getTable().getDefaultSchema());
-//		assertNull(childXmlEntity.getTable().getDefaultSchema());
-//	}
-//	
-//	public void testUpdateDefaultSchemaFromPersistenceUnitDefaults() throws Exception {
-//		createTestEntity();
-//		
-//		OrmPersistentType ormPersistentType = entityMappings().addOrmPersistentType(IMappingKeys.ENTITY_TYPE_MAPPING_KEY, FULLY_QUALIFIED_TYPE_NAME);
-//		XmlEntity xmlEntity = (XmlEntity) ormPersistentType.getMapping();
-//		assertNull(xmlEntity.getTable().getDefaultSchema());
-//		
-//		xmlEntity.entityMappings().getPersistenceUnitMetadata().getPersistenceUnitDefaults().setSchema("FOO");
-//		assertEquals("FOO", xmlEntity.getTable().getDefaultSchema());
-//		
-//		xmlEntity.entityMappings().setSpecifiedSchema("BAR");
-//		assertEquals("BAR", xmlEntity.getTable().getDefaultSchema());
-//		
-//		xmlEntity.javaEntity().getTable().setSpecifiedSchema("JAVA_SCHEMA");
-//		assertEquals("JAVA_SCHEMA", xmlEntity.getTable().getDefaultSchema());
-//		
-//		xmlEntity.getTable().setSpecifiedName("BLAH");
-//		//xml entity now has a table element so default schema is not taken from java
-//		assertEquals("BAR", xmlEntity.getTable().getDefaultSchema());
-//
-//		
-//		xmlEntity.entityMappings().setSpecifiedSchema(null);
-//		assertEquals("FOO", xmlEntity.getTable().getDefaultSchema());
-//
-//		xmlEntity.entityMappings().getPersistenceUnitMetadata().getPersistenceUnitDefaults().setSchema(null);
-//		assertNull(xmlEntity.getTable().getDefaultSchema());
-//		
-//		xmlEntity.getTable().setSpecifiedName(null);
-//		assertEquals("JAVA_SCHEMA", xmlEntity.getTable().getDefaultSchema());
-//	}
-
-	public void testModifySpecifiedSchema() throws Exception {
-		OrmPersistentType ormPersistentType = getEntityMappings().addPersistentType(MappingKeys.ENTITY_TYPE_MAPPING_KEY, "model.Foo");
-		OrmPersistentAttribute ormPersistentAttribute = ormPersistentType.addSpecifiedPersistentAttribute(MappingKeys.MANY_TO_MANY_ATTRIBUTE_MAPPING_KEY, "manyToManyMapping");
-		OrmManyToManyMapping ormManyToManyMapping = (OrmManyToManyMapping) ormPersistentAttribute.getMapping();
-		XmlManyToMany manyToMany = getXmlEntityMappings().getEntities().get(0).getAttributes().getManyToManys().get(0);
-
-		OrmJoinTable ormJoinTable = ormManyToManyMapping.getRelationshipReference().getJoinTableJoiningStrategy().getJoinTable();
-		
-		assertNull(ormJoinTable.getSpecifiedSchema());
-		assertNull(manyToMany.getJoinTable());
-		
-		//set Schema in the context model, verify resource model modified
-		ormJoinTable.setSpecifiedSchema("foo");
-		assertEquals("foo", ormJoinTable.getSpecifiedSchema());
-		assertEquals("foo", manyToMany.getJoinTable().getSchema());
-		
-		//set Schema to null in the context model
-		ormJoinTable.setSpecifiedSchema(null);
-		assertNull(ormJoinTable.getSpecifiedSchema());
-		assertNull(manyToMany.getJoinTable());
-	}
-	
-	public void testUpdateSpecifiedCatalog() throws Exception {
-		OrmPersistentType ormPersistentType = getEntityMappings().addPersistentType(MappingKeys.ENTITY_TYPE_MAPPING_KEY, "model.Foo");
-		OrmPersistentAttribute ormPersistentAttribute = ormPersistentType.addSpecifiedPersistentAttribute(MappingKeys.MANY_TO_MANY_ATTRIBUTE_MAPPING_KEY, "manyToManyMapping");
-		OrmManyToManyMapping ormManyToManyMapping = (OrmManyToManyMapping) ormPersistentAttribute.getMapping();
-		XmlManyToMany manyToMany = getXmlEntityMappings().getEntities().get(0).getAttributes().getManyToManys().get(0);
-
-		OrmJoinTable ormJoinTable = ormManyToManyMapping.getRelationshipReference().getJoinTableJoiningStrategy().getJoinTable();
-		
-		assertNull(ormJoinTable.getSpecifiedCatalog());
-		assertNull(manyToMany.getJoinTable());
-		
-		//set Catalog in the resource model, verify context model updated
-		manyToMany.setJoinTable(OrmFactory.eINSTANCE.createXmlJoinTableImpl());
-		manyToMany.getJoinTable().setCatalog("FOO");
-		assertEquals("FOO", ormJoinTable.getSpecifiedCatalog());
-		assertEquals("FOO", manyToMany.getJoinTable().getCatalog());
-	
-		//set Catalog to null in the resource model
-		manyToMany.getJoinTable().setCatalog(null);
-		assertNull(ormJoinTable.getSpecifiedCatalog());
-		assertNull(manyToMany.getJoinTable().getCatalog());
-		
-		manyToMany.getJoinTable().setCatalog("FOO");
-		assertEquals("FOO", ormJoinTable.getSpecifiedCatalog());
-		assertEquals("FOO", manyToMany.getJoinTable().getCatalog());
-
-		manyToMany.setJoinTable(null);
-		assertNull(ormJoinTable.getSpecifiedCatalog());
-		assertNull(manyToMany.getJoinTable());
-	}
-	
-	public void testModifySpecifiedCatalog() throws Exception {
-		OrmPersistentType ormPersistentType = getEntityMappings().addPersistentType(MappingKeys.ENTITY_TYPE_MAPPING_KEY, "model.Foo");
-		OrmPersistentAttribute ormPersistentAttribute = ormPersistentType.addSpecifiedPersistentAttribute(MappingKeys.MANY_TO_MANY_ATTRIBUTE_MAPPING_KEY, "manyToManyMapping");
-		OrmManyToManyMapping ormManyToManyMapping = (OrmManyToManyMapping) ormPersistentAttribute.getMapping();
-		XmlManyToMany manyToMany = getXmlEntityMappings().getEntities().get(0).getAttributes().getManyToManys().get(0);
-
-		OrmJoinTable ormJoinTable = ormManyToManyMapping.getRelationshipReference().getJoinTableJoiningStrategy().getJoinTable();
-		
-		assertNull(ormJoinTable.getSpecifiedCatalog());
-		assertNull(manyToMany.getJoinTable());
-		
-		//set Catalog in the context model, verify resource model modified
-		ormJoinTable.setSpecifiedCatalog("foo");
-		assertEquals("foo", ormJoinTable.getSpecifiedCatalog());
-		assertEquals("foo", manyToMany.getJoinTable().getCatalog());
-		
-		//set Catalog to null in the context model
-		ormJoinTable.setSpecifiedCatalog(null);
-		assertNull(ormJoinTable.getSpecifiedCatalog());
-		assertNull(manyToMany.getJoinTable());
-	}
-	
-//	public void testUpdateDefaultCatalogFromJavaTable() throws Exception {
-//		createTestEntity();
-//		
-//		OrmPersistentType ormPersistentType = entityMappings().addOrmPersistentType(IMappingKeys.ENTITY_TYPE_MAPPING_KEY, FULLY_QUALIFIED_TYPE_NAME);
-//		XmlEntity xmlEntity = (XmlEntity) ormPersistentType.getMapping();
-//		assertNull(xmlEntity.getTable().getDefaultCatalog());
-//		
-//		xmlEntity.javaEntity().getTable().setSpecifiedCatalog("Foo");
-//		assertEquals("Foo", xmlEntity.getTable().getDefaultCatalog());
-//		
-//		xmlEntity.setSpecifiedMetadataComplete(Boolean.TRUE);
-//		assertNull(xmlEntity.getTable().getDefaultCatalog());
-//
-//		xmlEntity.entityMappings().getPersistenceUnitMetadata().setXmlMappingMetadataComplete(true);
-//		xmlEntity.setSpecifiedMetadataComplete(Boolean.FALSE);
-//		assertNull(xmlEntity.getTable().getDefaultCatalog());
-//	
-//		xmlEntity.setSpecifiedMetadataComplete(null);
-//		assertNull(xmlEntity.getTable().getDefaultCatalog());
-//		
-//		xmlEntity.entityMappings().getPersistenceUnitMetadata().setXmlMappingMetadataComplete(false);
-//		assertEquals("Foo", xmlEntity.getTable().getDefaultCatalog());
-//		
-//		xmlEntity.getTable().setSpecifiedName("Bar");
-//		assertNull(xmlEntity.getTable().getDefaultCatalog());
-//	}
-//	
-//	public void testUpdateDefaultCatalogNoJava() throws Exception {
-//		createTestEntity();
-//		
-//		OrmPersistentType ormPersistentType = entityMappings().addOrmPersistentType(IMappingKeys.ENTITY_TYPE_MAPPING_KEY, "model.Foo");
-//		XmlEntity xmlEntity = (XmlEntity) ormPersistentType.getMapping();
-//		assertNull(xmlEntity.getTable().getDefaultCatalog());
-//	}
-//	
-//	public void testUpdateDefaultCatalogFromParent() throws Exception {
-//		createTestEntity();
-//		createTestSubType();
-//		
-//		OrmPersistentType parentOrmPersistentType = entityMappings().addOrmPersistentType(IMappingKeys.ENTITY_TYPE_MAPPING_KEY, FULLY_QUALIFIED_TYPE_NAME);
-//		OrmPersistentType childOrmPersistentType = entityMappings().addOrmPersistentType(IMappingKeys.ENTITY_TYPE_MAPPING_KEY, PACKAGE_NAME + ".AnnotationTestTypeChild");
-//		XmlEntity parentXmlEntity = (XmlEntity) parentOrmPersistentType.getMapping();
-//		XmlEntity childXmlEntity = (XmlEntity) childOrmPersistentType.getMapping();
-//		
-//		assertNull(parentXmlEntity.getTable().getDefaultCatalog());
-//		assertNull(childXmlEntity.getTable().getDefaultCatalog());
-//		
-//		parentXmlEntity.getTable().setSpecifiedCatalog("FOO");
-//		assertNull(parentXmlEntity.getTable().getDefaultCatalog());
-//		assertEquals("FOO", childXmlEntity.getTable().getDefaultCatalog());
-//
-//		parentXmlEntity.setSpecifiedInheritanceStrategy(InheritanceType.JOINED);
-//		assertNull(parentXmlEntity.getTable().getDefaultCatalog());
-//		assertNull(childXmlEntity.getTable().getDefaultCatalog());
-//	}
-//	
-//	public void testUpdateDefaultCatalogFromPersistenceUnitDefaults() throws Exception {
-//		createTestEntity();
-//		
-//		OrmPersistentType ormPersistentType = entityMappings().addOrmPersistentType(IMappingKeys.ENTITY_TYPE_MAPPING_KEY, FULLY_QUALIFIED_TYPE_NAME);
-//		XmlEntity xmlEntity = (XmlEntity) ormPersistentType.getMapping();
-//		assertNull(xmlEntity.getTable().getDefaultCatalog());
-//		
-//		xmlEntity.entityMappings().getPersistenceUnitMetadata().getPersistenceUnitDefaults().setCatalog("FOO");
-//		assertEquals("FOO", xmlEntity.getTable().getDefaultCatalog());
-//		
-//		xmlEntity.entityMappings().setSpecifiedCatalog("BAR");
-//		assertEquals("BAR", xmlEntity.getTable().getDefaultCatalog());
-//		
-//		xmlEntity.javaEntity().getTable().setSpecifiedCatalog("JAVA_CATALOG");
-//		assertEquals("JAVA_CATALOG", xmlEntity.getTable().getDefaultCatalog());
-//		
-//		xmlEntity.getTable().setSpecifiedName("BLAH");
-//		//xml entity now has a table element so default schema is not taken from java
-//		assertEquals("BAR", xmlEntity.getTable().getDefaultCatalog());
-//
-//		
-//		xmlEntity.entityMappings().setSpecifiedCatalog(null);
-//		assertEquals("FOO", xmlEntity.getTable().getDefaultCatalog());
-//
-//		xmlEntity.entityMappings().getPersistenceUnitMetadata().getPersistenceUnitDefaults().setCatalog(null);
-//		assertNull(xmlEntity.getTable().getDefaultCatalog());
-//		
-//		xmlEntity.getTable().setSpecifiedName(null);
-//		assertEquals("JAVA_CATALOG", xmlEntity.getTable().getDefaultCatalog());
-//}
-
-//	
-//	public void testUpdateName() throws Exception {
-//		OrmPersistentType ormPersistentType = entityMappings().addOrmPersistentType(IMappingKeys.ENTITY_TYPE_MAPPING_KEY, "model.Foo");
-//		XmlEntity xmlEntity = (XmlEntity) ormPersistentType.getMapping();
-//		Entity entityResource = ormResource().getEntityMappings().getEntities().get(0);
-//		assertEquals("Foo", xmlEntity.getName());
-//		
-//		//set class in the resource model, verify context model updated
-//		entityResource.setClassName("com.Bar");
-//		assertEquals("Bar", xmlEntity.getName());
-//		
-//		entityResource.setName("Baz");
-//		assertEquals("Baz", xmlEntity.getName());
-//		
-//		//set class to null in the resource model
-//		entityResource.setClassName(null);
-//		assertEquals("Baz", xmlEntity.getName());
-//		
-//		entityResource.setName(null);
-//		assertNull(xmlEntity.getName());
-//	}
-
-
-	public void testAddSpecifiedJoinColumn() throws Exception {
-		OrmPersistentType ormPersistentType = getEntityMappings().addPersistentType(MappingKeys.ENTITY_TYPE_MAPPING_KEY, "model.Foo");
-		OrmPersistentAttribute ormPersistentAttribute = ormPersistentType.addSpecifiedPersistentAttribute(MappingKeys.MANY_TO_MANY_ATTRIBUTE_MAPPING_KEY, "manyToManyMapping");
-		OrmManyToManyMapping ormManyToManyMapping = (OrmManyToManyMapping) ormPersistentAttribute.getMapping();
-		XmlManyToMany manyToMany = getXmlEntityMappings().getEntities().get(0).getAttributes().getManyToManys().get(0);
-
-		OrmJoinTable ormJoinTable = ormManyToManyMapping.getRelationshipReference().getJoinTableJoiningStrategy().getJoinTable();
-		
-		OrmJoinColumn joinColumn = ormJoinTable.addSpecifiedJoinColumn(0);
-		joinColumn.setSpecifiedName("FOO");
-				
-		XmlJoinTable joinTableResource = manyToMany.getJoinTable();
-		assertEquals("FOO", joinTableResource.getJoinColumns().get(0).getName());
-		
-		OrmJoinColumn joinColumn2 = ormJoinTable.addSpecifiedJoinColumn(0);
-		joinColumn2.setSpecifiedName("BAR");
-		
-		assertEquals("BAR", joinTableResource.getJoinColumns().get(0).getName());
-		assertEquals("FOO", joinTableResource.getJoinColumns().get(1).getName());
-		
-		OrmJoinColumn joinColumn3 = ormJoinTable.addSpecifiedJoinColumn(1);
-		joinColumn3.setSpecifiedName("BAZ");
-		
-		assertEquals("BAR", joinTableResource.getJoinColumns().get(0).getName());
-		assertEquals("BAZ", joinTableResource.getJoinColumns().get(1).getName());
-		assertEquals("FOO", joinTableResource.getJoinColumns().get(2).getName());
-		
-		ListIterator<OrmJoinColumn> joinColumns = ormJoinTable.specifiedJoinColumns();
-		assertEquals(joinColumn2, joinColumns.next());
-		assertEquals(joinColumn3, joinColumns.next());
-		assertEquals(joinColumn, joinColumns.next());
-		
-		joinColumns = ormJoinTable.specifiedJoinColumns();
-		assertEquals("BAR", joinColumns.next().getName());
-		assertEquals("BAZ", joinColumns.next().getName());
-		assertEquals("FOO", joinColumns.next().getName());
-	}
-	
-	public void testRemoveSpecifiedJoinColumn() throws Exception {
-		OrmPersistentType ormPersistentType = getEntityMappings().addPersistentType(MappingKeys.ENTITY_TYPE_MAPPING_KEY, "model.Foo");
-		OrmPersistentAttribute ormPersistentAttribute = ormPersistentType.addSpecifiedPersistentAttribute(MappingKeys.MANY_TO_MANY_ATTRIBUTE_MAPPING_KEY, "manyToManyMapping");
-		OrmManyToManyMapping ormManyToManyMapping = (OrmManyToManyMapping) ormPersistentAttribute.getMapping();
-		XmlManyToMany manyToMany = getXmlEntityMappings().getEntities().get(0).getAttributes().getManyToManys().get(0);
-
-		OrmJoinTable ormJoinTable = ormManyToManyMapping.getRelationshipReference().getJoinTableJoiningStrategy().getJoinTable();
-		
-		ormJoinTable.addSpecifiedJoinColumn(0).setSpecifiedName("FOO");
-		ormJoinTable.addSpecifiedJoinColumn(1).setSpecifiedName("BAR");
-		ormJoinTable.addSpecifiedJoinColumn(2).setSpecifiedName("BAZ");
-		
-		XmlJoinTable joinTableResource = manyToMany.getJoinTable();
-		assertEquals(3, joinTableResource.getJoinColumns().size());
-		
-		ormJoinTable.removeSpecifiedJoinColumn(0);
-		assertEquals(2, joinTableResource.getJoinColumns().size());
-		assertEquals("BAR", joinTableResource.getJoinColumns().get(0).getName());
-		assertEquals("BAZ", joinTableResource.getJoinColumns().get(1).getName());
-
-		ormJoinTable.removeSpecifiedJoinColumn(0);
-		assertEquals(1, joinTableResource.getJoinColumns().size());
-		assertEquals("BAZ", joinTableResource.getJoinColumns().get(0).getName());
-		
-		ormJoinTable.removeSpecifiedJoinColumn(0);
-		assertEquals(0, joinTableResource.getJoinColumns().size());
-	}
-	
-	public void testMoveSpecifiedJoinColumn() throws Exception {
-		OrmPersistentType ormPersistentType = getEntityMappings().addPersistentType(MappingKeys.ENTITY_TYPE_MAPPING_KEY, "model.Foo");
-		OrmPersistentAttribute ormPersistentAttribute = ormPersistentType.addSpecifiedPersistentAttribute(MappingKeys.MANY_TO_MANY_ATTRIBUTE_MAPPING_KEY, "manyToManyMapping");
-		OrmManyToManyMapping ormManyToManyMapping = (OrmManyToManyMapping) ormPersistentAttribute.getMapping();
-		XmlManyToMany manyToMany = getXmlEntityMappings().getEntities().get(0).getAttributes().getManyToManys().get(0);
-
-		OrmJoinTable ormJoinTable = ormManyToManyMapping.getRelationshipReference().getJoinTableJoiningStrategy().getJoinTable();
-		
-		ormJoinTable.addSpecifiedJoinColumn(0).setSpecifiedName("FOO");
-		ormJoinTable.addSpecifiedJoinColumn(1).setSpecifiedName("BAR");
-		ormJoinTable.addSpecifiedJoinColumn(2).setSpecifiedName("BAZ");
-		
-		XmlJoinTable joinTableResource = manyToMany.getJoinTable();
-		assertEquals(3, joinTableResource.getJoinColumns().size());
-		
-		
-		ormJoinTable.moveSpecifiedJoinColumn(2, 0);
-		ListIterator<OrmJoinColumn> joinColumns = ormJoinTable.specifiedJoinColumns();
-		assertEquals("BAR", joinColumns.next().getName());
-		assertEquals("BAZ", joinColumns.next().getName());
-		assertEquals("FOO", joinColumns.next().getName());
-
-		assertEquals("BAR", joinTableResource.getJoinColumns().get(0).getName());
-		assertEquals("BAZ", joinTableResource.getJoinColumns().get(1).getName());
-		assertEquals("FOO", joinTableResource.getJoinColumns().get(2).getName());
-
-
-		ormJoinTable.moveSpecifiedJoinColumn(0, 1);
-		joinColumns = ormJoinTable.specifiedJoinColumns();
-		assertEquals("BAZ", joinColumns.next().getName());
-		assertEquals("BAR", joinColumns.next().getName());
-		assertEquals("FOO", joinColumns.next().getName());
-
-		assertEquals("BAZ", joinTableResource.getJoinColumns().get(0).getName());
-		assertEquals("BAR", joinTableResource.getJoinColumns().get(1).getName());
-		assertEquals("FOO", joinTableResource.getJoinColumns().get(2).getName());
-	}
-	
-	public void testUpdateInverseJoinColumns() throws Exception {
-		OrmPersistentType ormPersistentType = getEntityMappings().addPersistentType(MappingKeys.ENTITY_TYPE_MAPPING_KEY, "model.Foo");
-		OrmPersistentAttribute ormPersistentAttribute = ormPersistentType.addSpecifiedPersistentAttribute(MappingKeys.MANY_TO_MANY_ATTRIBUTE_MAPPING_KEY, "manyToManyMapping");
-		OrmManyToManyMapping ormManyToManyMapping = (OrmManyToManyMapping) ormPersistentAttribute.getMapping();
-		XmlManyToMany manyToMany = getXmlEntityMappings().getEntities().get(0).getAttributes().getManyToManys().get(0);
-
-		OrmJoinTable ormJoinTable = ormManyToManyMapping.getRelationshipReference().getJoinTableJoiningStrategy().getJoinTable();
-		manyToMany.setJoinTable(OrmFactory.eINSTANCE.createXmlJoinTableImpl());
-		XmlJoinTable joinTableResource = manyToMany.getJoinTable();
-	
-		joinTableResource.getInverseJoinColumns().add(OrmFactory.eINSTANCE.createXmlJoinColumnImpl());
-		joinTableResource.getInverseJoinColumns().add(OrmFactory.eINSTANCE.createXmlJoinColumnImpl());
-		joinTableResource.getInverseJoinColumns().add(OrmFactory.eINSTANCE.createXmlJoinColumnImpl());
-		
-		joinTableResource.getInverseJoinColumns().get(0).setName("FOO");
-		joinTableResource.getInverseJoinColumns().get(1).setName("BAR");
-		joinTableResource.getInverseJoinColumns().get(2).setName("BAZ");
-
-		ListIterator<OrmJoinColumn> joinColumns = ormJoinTable.specifiedInverseJoinColumns();
-		assertEquals("FOO", joinColumns.next().getName());
-		assertEquals("BAR", joinColumns.next().getName());
-		assertEquals("BAZ", joinColumns.next().getName());
-		assertFalse(joinColumns.hasNext());
-		
-		joinTableResource.getInverseJoinColumns().move(2, 0);
-		joinColumns = ormJoinTable.specifiedInverseJoinColumns();
-		assertEquals("BAR", joinColumns.next().getName());
-		assertEquals("BAZ", joinColumns.next().getName());
-		assertEquals("FOO", joinColumns.next().getName());
-		assertFalse(joinColumns.hasNext());
-
-		joinTableResource.getInverseJoinColumns().move(0, 1);
-		joinColumns = ormJoinTable.specifiedInverseJoinColumns();
-		assertEquals("BAZ", joinColumns.next().getName());
-		assertEquals("BAR", joinColumns.next().getName());
-		assertEquals("FOO", joinColumns.next().getName());
-		assertFalse(joinColumns.hasNext());
-
-		joinTableResource.getInverseJoinColumns().remove(1);
-		joinColumns = ormJoinTable.specifiedInverseJoinColumns();
-		assertEquals("BAZ", joinColumns.next().getName());
-		assertEquals("FOO", joinColumns.next().getName());
-		assertFalse(joinColumns.hasNext());
-
-		joinTableResource.getInverseJoinColumns().remove(1);
-		joinColumns = ormJoinTable.specifiedInverseJoinColumns();
-		assertEquals("BAZ", joinColumns.next().getName());
-		assertFalse(joinColumns.hasNext());
-		
-		joinTableResource.getInverseJoinColumns().remove(0);
-		assertFalse(ormJoinTable.specifiedInverseJoinColumns().hasNext());
-	}
-
-	public void testAddSpecifiedInverseJoinColumn() throws Exception {
-		OrmPersistentType ormPersistentType = getEntityMappings().addPersistentType(MappingKeys.ENTITY_TYPE_MAPPING_KEY, "model.Foo");
-		OrmPersistentAttribute ormPersistentAttribute = ormPersistentType.addSpecifiedPersistentAttribute(MappingKeys.MANY_TO_MANY_ATTRIBUTE_MAPPING_KEY, "manyToManyMapping");
-		OrmManyToManyMapping ormManyToManyMapping = (OrmManyToManyMapping) ormPersistentAttribute.getMapping();
-		XmlManyToMany manyToMany = getXmlEntityMappings().getEntities().get(0).getAttributes().getManyToManys().get(0);
-
-		OrmJoinTable ormJoinTable = ormManyToManyMapping.getRelationshipReference().getJoinTableJoiningStrategy().getJoinTable();
-		
-		OrmJoinColumn joinColumn = ormJoinTable.addSpecifiedInverseJoinColumn(0);
-		joinColumn.setSpecifiedName("FOO");
-				
-		XmlJoinTable joinTableResource = manyToMany.getJoinTable();
-		assertEquals("FOO", joinTableResource.getInverseJoinColumns().get(0).getName());
-		
-		OrmJoinColumn joinColumn2 = ormJoinTable.addSpecifiedInverseJoinColumn(0);
-		joinColumn2.setSpecifiedName("BAR");
-		
-		assertEquals("BAR", joinTableResource.getInverseJoinColumns().get(0).getName());
-		assertEquals("FOO", joinTableResource.getInverseJoinColumns().get(1).getName());
-		
-		OrmJoinColumn joinColumn3 = ormJoinTable.addSpecifiedInverseJoinColumn(1);
-		joinColumn3.setSpecifiedName("BAZ");
-		
-		assertEquals("BAR", joinTableResource.getInverseJoinColumns().get(0).getName());
-		assertEquals("BAZ", joinTableResource.getInverseJoinColumns().get(1).getName());
-		assertEquals("FOO", joinTableResource.getInverseJoinColumns().get(2).getName());
-		
-		ListIterator<OrmJoinColumn> joinColumns = ormJoinTable.specifiedInverseJoinColumns();
-		assertEquals(joinColumn2, joinColumns.next());
-		assertEquals(joinColumn3, joinColumns.next());
-		assertEquals(joinColumn, joinColumns.next());
-		
-		joinColumns = ormJoinTable.specifiedInverseJoinColumns();
-		assertEquals("BAR", joinColumns.next().getName());
-		assertEquals("BAZ", joinColumns.next().getName());
-		assertEquals("FOO", joinColumns.next().getName());
-	}
-	
-	public void testRemoveSpecifiedInverseJoinColumn() throws Exception {
-		OrmPersistentType ormPersistentType = getEntityMappings().addPersistentType(MappingKeys.ENTITY_TYPE_MAPPING_KEY, "model.Foo");
-		OrmPersistentAttribute ormPersistentAttribute = ormPersistentType.addSpecifiedPersistentAttribute(MappingKeys.MANY_TO_MANY_ATTRIBUTE_MAPPING_KEY, "manyToManyMapping");
-		OrmManyToManyMapping ormManyToManyMapping = (OrmManyToManyMapping) ormPersistentAttribute.getMapping();
-		XmlManyToMany manyToMany = getXmlEntityMappings().getEntities().get(0).getAttributes().getManyToManys().get(0);
-
-		OrmJoinTable ormJoinTable = ormManyToManyMapping.getRelationshipReference().getJoinTableJoiningStrategy().getJoinTable();
-		
-		ormJoinTable.addSpecifiedInverseJoinColumn(0).setSpecifiedName("FOO");
-		ormJoinTable.addSpecifiedInverseJoinColumn(1).setSpecifiedName("BAR");
-		ormJoinTable.addSpecifiedInverseJoinColumn(2).setSpecifiedName("BAZ");
-		
-		XmlJoinTable joinTableResource = manyToMany.getJoinTable();
-		assertEquals(3, joinTableResource.getInverseJoinColumns().size());
-		
-		ormJoinTable.removeSpecifiedInverseJoinColumn(0);
-		assertEquals(2, joinTableResource.getInverseJoinColumns().size());
-		assertEquals("BAR", joinTableResource.getInverseJoinColumns().get(0).getName());
-		assertEquals("BAZ", joinTableResource.getInverseJoinColumns().get(1).getName());
-
-		ormJoinTable.removeSpecifiedInverseJoinColumn(0);
-		assertEquals(1, joinTableResource.getInverseJoinColumns().size());
-		assertEquals("BAZ", joinTableResource.getInverseJoinColumns().get(0).getName());
-		
-		ormJoinTable.removeSpecifiedInverseJoinColumn(0);
-		assertEquals(0, joinTableResource.getInverseJoinColumns().size());
-	}
-	
-	public void testMoveSpecifiedInverseJoinColumn() throws Exception {
-		OrmPersistentType ormPersistentType = getEntityMappings().addPersistentType(MappingKeys.ENTITY_TYPE_MAPPING_KEY, "model.Foo");
-		OrmPersistentAttribute ormPersistentAttribute = ormPersistentType.addSpecifiedPersistentAttribute(MappingKeys.MANY_TO_MANY_ATTRIBUTE_MAPPING_KEY, "manyToManyMapping");
-		OrmManyToManyMapping ormManyToManyMapping = (OrmManyToManyMapping) ormPersistentAttribute.getMapping();
-		XmlManyToMany manyToMany = getXmlEntityMappings().getEntities().get(0).getAttributes().getManyToManys().get(0);
-
-		OrmJoinTable ormJoinTable = ormManyToManyMapping.getRelationshipReference().getJoinTableJoiningStrategy().getJoinTable();
-		
-		ormJoinTable.addSpecifiedInverseJoinColumn(0).setSpecifiedName("FOO");
-		ormJoinTable.addSpecifiedInverseJoinColumn(1).setSpecifiedName("BAR");
-		ormJoinTable.addSpecifiedInverseJoinColumn(2).setSpecifiedName("BAZ");
-		
-		XmlJoinTable joinTableResource = manyToMany.getJoinTable();
-		assertEquals(3, joinTableResource.getInverseJoinColumns().size());
-		
-		
-		ormJoinTable.moveSpecifiedInverseJoinColumn(2, 0);
-		ListIterator<OrmJoinColumn> joinColumns = ormJoinTable.specifiedInverseJoinColumns();
-		assertEquals("BAR", joinColumns.next().getName());
-		assertEquals("BAZ", joinColumns.next().getName());
-		assertEquals("FOO", joinColumns.next().getName());
-
-		assertEquals("BAR", joinTableResource.getInverseJoinColumns().get(0).getName());
-		assertEquals("BAZ", joinTableResource.getInverseJoinColumns().get(1).getName());
-		assertEquals("FOO", joinTableResource.getInverseJoinColumns().get(2).getName());
-
-
-		ormJoinTable.moveSpecifiedInverseJoinColumn(0, 1);
-		joinColumns = ormJoinTable.specifiedInverseJoinColumns();
-		assertEquals("BAZ", joinColumns.next().getName());
-		assertEquals("BAR", joinColumns.next().getName());
-		assertEquals("FOO", joinColumns.next().getName());
-
-		assertEquals("BAZ", joinTableResource.getInverseJoinColumns().get(0).getName());
-		assertEquals("BAR", joinTableResource.getInverseJoinColumns().get(1).getName());
-		assertEquals("FOO", joinTableResource.getInverseJoinColumns().get(2).getName());
-	}
-	
-	public void testUpdateJoinColumns() throws Exception {
-		OrmPersistentType ormPersistentType = getEntityMappings().addPersistentType(MappingKeys.ENTITY_TYPE_MAPPING_KEY, "model.Foo");
-		OrmPersistentAttribute ormPersistentAttribute = ormPersistentType.addSpecifiedPersistentAttribute(MappingKeys.MANY_TO_MANY_ATTRIBUTE_MAPPING_KEY, "manyToManyMapping");
-		OrmManyToManyMapping ormManyToManyMapping = (OrmManyToManyMapping) ormPersistentAttribute.getMapping();
-		XmlManyToMany manyToMany = getXmlEntityMappings().getEntities().get(0).getAttributes().getManyToManys().get(0);
-
-		OrmJoinTable ormJoinTable = ormManyToManyMapping.getRelationshipReference().getJoinTableJoiningStrategy().getJoinTable();
-		manyToMany.setJoinTable(OrmFactory.eINSTANCE.createXmlJoinTableImpl());
-		XmlJoinTable joinTableResource = manyToMany.getJoinTable();
-	
-		joinTableResource.getJoinColumns().add(OrmFactory.eINSTANCE.createXmlJoinColumnImpl());
-		joinTableResource.getJoinColumns().add(OrmFactory.eINSTANCE.createXmlJoinColumnImpl());
-		joinTableResource.getJoinColumns().add(OrmFactory.eINSTANCE.createXmlJoinColumnImpl());
-		
-		joinTableResource.getJoinColumns().get(0).setName("FOO");
-		joinTableResource.getJoinColumns().get(1).setName("BAR");
-		joinTableResource.getJoinColumns().get(2).setName("BAZ");
-
-		ListIterator<OrmJoinColumn> joinColumns = ormJoinTable.specifiedJoinColumns();
-		assertEquals("FOO", joinColumns.next().getName());
-		assertEquals("BAR", joinColumns.next().getName());
-		assertEquals("BAZ", joinColumns.next().getName());
-		assertFalse(joinColumns.hasNext());
-		
-		joinTableResource.getJoinColumns().move(2, 0);
-		joinColumns = ormJoinTable.specifiedJoinColumns();
-		assertEquals("BAR", joinColumns.next().getName());
-		assertEquals("BAZ", joinColumns.next().getName());
-		assertEquals("FOO", joinColumns.next().getName());
-		assertFalse(joinColumns.hasNext());
-
-		joinTableResource.getJoinColumns().move(0, 1);
-		joinColumns = ormJoinTable.specifiedJoinColumns();
-		assertEquals("BAZ", joinColumns.next().getName());
-		assertEquals("BAR", joinColumns.next().getName());
-		assertEquals("FOO", joinColumns.next().getName());
-		assertFalse(joinColumns.hasNext());
-
-		joinTableResource.getJoinColumns().remove(1);
-		joinColumns = ormJoinTable.specifiedJoinColumns();
-		assertEquals("BAZ", joinColumns.next().getName());
-		assertEquals("FOO", joinColumns.next().getName());
-		assertFalse(joinColumns.hasNext());
-
-		joinTableResource.getJoinColumns().remove(1);
-		joinColumns = ormJoinTable.specifiedJoinColumns();
-		assertEquals("BAZ", joinColumns.next().getName());
-		assertFalse(joinColumns.hasNext());
-		
-		joinTableResource.getJoinColumns().remove(0);
-		assertFalse(ormJoinTable.specifiedJoinColumns().hasNext());
-	}
-	
-
-	public void testUniqueConstraints() throws Exception {
-		OrmPersistentType ormPersistentType = getEntityMappings().addPersistentType(MappingKeys.ENTITY_TYPE_MAPPING_KEY, "model.Foo");
-		OrmPersistentAttribute ormPersistentAttribute = ormPersistentType.addSpecifiedPersistentAttribute(MappingKeys.MANY_TO_MANY_ATTRIBUTE_MAPPING_KEY, "manyToManyMapping");
-		OrmManyToManyMapping ormManyToManyMapping = (OrmManyToManyMapping) ormPersistentAttribute.getMapping();
-		XmlManyToMany manyToMany = getXmlEntityMappings().getEntities().get(0).getAttributes().getManyToManys().get(0);
-
-		OrmJoinTable ormJoinTable = ormManyToManyMapping.getRelationshipReference().getJoinTableJoiningStrategy().getJoinTable();
-		manyToMany.setJoinTable(OrmFactory.eINSTANCE.createXmlJoinTableImpl());
-		XmlJoinTable joinTableResource = manyToMany.getJoinTable();
-		
-		ListIterator<OrmUniqueConstraint> uniqueConstraints = ormJoinTable.uniqueConstraints();
-		assertFalse(uniqueConstraints.hasNext());
-		
-		XmlUniqueConstraint uniqueConstraintResource = OrmFactory.eINSTANCE.createXmlUniqueConstraintImpl();
-		joinTableResource.getUniqueConstraints().add(0, uniqueConstraintResource);
-		uniqueConstraintResource.getColumnNames().add(0, "foo");
-		
-		uniqueConstraintResource = OrmFactory.eINSTANCE.createXmlUniqueConstraintImpl();
-		joinTableResource.getUniqueConstraints().add(0, uniqueConstraintResource);
-		uniqueConstraintResource.getColumnNames().add(0, "bar");
-		
-		uniqueConstraints = ormJoinTable.uniqueConstraints();
-		assertTrue(uniqueConstraints.hasNext());
-		assertEquals("bar", uniqueConstraints.next().columnNames().next());
-		assertEquals("foo", uniqueConstraints.next().columnNames().next());
-		assertFalse(uniqueConstraints.hasNext());
-	}
-	
-	public void testUniqueConstraintsSize() throws Exception {
-		OrmPersistentType ormPersistentType = getEntityMappings().addPersistentType(MappingKeys.ENTITY_TYPE_MAPPING_KEY, "model.Foo");
-		OrmPersistentAttribute ormPersistentAttribute = ormPersistentType.addSpecifiedPersistentAttribute(MappingKeys.MANY_TO_MANY_ATTRIBUTE_MAPPING_KEY, "manyToManyMapping");
-		OrmManyToManyMapping ormManyToManyMapping = (OrmManyToManyMapping) ormPersistentAttribute.getMapping();
-		XmlManyToMany manyToMany = getXmlEntityMappings().getEntities().get(0).getAttributes().getManyToManys().get(0);
-
-		OrmJoinTable ormJoinTable = ormManyToManyMapping.getRelationshipReference().getJoinTableJoiningStrategy().getJoinTable();
-		manyToMany.setJoinTable(OrmFactory.eINSTANCE.createXmlJoinTableImpl());
-		XmlJoinTable joinTableResource = manyToMany.getJoinTable();
-		
-		assertEquals(0,  ormJoinTable.uniqueConstraintsSize());
-		
-		XmlUniqueConstraint uniqueConstraintResource = OrmFactory.eINSTANCE.createXmlUniqueConstraintImpl();
-		joinTableResource.getUniqueConstraints().add(0, uniqueConstraintResource);
-		uniqueConstraintResource.getColumnNames().add(0, "foo");
-		
-		uniqueConstraintResource = OrmFactory.eINSTANCE.createXmlUniqueConstraintImpl();
-		joinTableResource.getUniqueConstraints().add(1, uniqueConstraintResource);
-		uniqueConstraintResource.getColumnNames().add(0, "bar");
-		
-		assertEquals(2,  ormJoinTable.uniqueConstraintsSize());
-	}
-
-	public void testAddUniqueConstraint() throws Exception {
-		OrmPersistentType ormPersistentType = getEntityMappings().addPersistentType(MappingKeys.ENTITY_TYPE_MAPPING_KEY, "model.Foo");
-		OrmPersistentAttribute ormPersistentAttribute = ormPersistentType.addSpecifiedPersistentAttribute(MappingKeys.MANY_TO_MANY_ATTRIBUTE_MAPPING_KEY, "manyToManyMapping");
-		OrmManyToManyMapping ormManyToManyMapping = (OrmManyToManyMapping) ormPersistentAttribute.getMapping();
-		XmlManyToMany manyToMany = getXmlEntityMappings().getEntities().get(0).getAttributes().getManyToManys().get(0);
-
-		OrmJoinTable ormJoinTable = ormManyToManyMapping.getRelationshipReference().getJoinTableJoiningStrategy().getJoinTable();
-		manyToMany.setJoinTable(OrmFactory.eINSTANCE.createXmlJoinTableImpl());
-		XmlJoinTable joinTableResource = manyToMany.getJoinTable();
-		
-		ormJoinTable.addUniqueConstraint(0).addColumnName(0, "FOO");
-		ormJoinTable.addUniqueConstraint(0).addColumnName(0, "BAR");
-		ormJoinTable.addUniqueConstraint(0).addColumnName(0, "BAZ");
-
-		ListIterator<XmlUniqueConstraint> uniqueConstraints = joinTableResource.getUniqueConstraints().listIterator();
-		
-		assertEquals("BAZ", uniqueConstraints.next().getColumnNames().get(0));
-		assertEquals("BAR", uniqueConstraints.next().getColumnNames().get(0));
-		assertEquals("FOO", uniqueConstraints.next().getColumnNames().get(0));
-		assertFalse(uniqueConstraints.hasNext());
-	}
-	
-	public void testAddUniqueConstraint2() throws Exception {
-		OrmPersistentType ormPersistentType = getEntityMappings().addPersistentType(MappingKeys.ENTITY_TYPE_MAPPING_KEY, "model.Foo");
-		OrmPersistentAttribute ormPersistentAttribute = ormPersistentType.addSpecifiedPersistentAttribute(MappingKeys.MANY_TO_MANY_ATTRIBUTE_MAPPING_KEY, "manyToManyMapping");
-		OrmManyToManyMapping ormManyToManyMapping = (OrmManyToManyMapping) ormPersistentAttribute.getMapping();
-		XmlManyToMany manyToMany = getXmlEntityMappings().getEntities().get(0).getAttributes().getManyToManys().get(0);
-
-		OrmJoinTable ormJoinTable = ormManyToManyMapping.getRelationshipReference().getJoinTableJoiningStrategy().getJoinTable();
-		manyToMany.setJoinTable(OrmFactory.eINSTANCE.createXmlJoinTableImpl());
-		XmlJoinTable joinTableResource = manyToMany.getJoinTable();
-
-		ormJoinTable.addUniqueConstraint(0).addColumnName(0, "FOO");
-		ormJoinTable.addUniqueConstraint(1).addColumnName(0, "BAR");
-		ormJoinTable.addUniqueConstraint(0).addColumnName(0, "BAZ");
-		
-		ListIterator<XmlUniqueConstraint> uniqueConstraints = joinTableResource.getUniqueConstraints().listIterator();
-		
-		assertEquals("BAZ", uniqueConstraints.next().getColumnNames().get(0));
-		assertEquals("FOO", uniqueConstraints.next().getColumnNames().get(0));
-		assertEquals("BAR", uniqueConstraints.next().getColumnNames().get(0));
-		assertFalse(uniqueConstraints.hasNext());
-	}
-	
-	public void testRemoveUniqueConstraint() throws Exception {
-		OrmPersistentType ormPersistentType = getEntityMappings().addPersistentType(MappingKeys.ENTITY_TYPE_MAPPING_KEY, "model.Foo");
-		OrmPersistentAttribute ormPersistentAttribute = ormPersistentType.addSpecifiedPersistentAttribute(MappingKeys.MANY_TO_MANY_ATTRIBUTE_MAPPING_KEY, "manyToManyMapping");
-		OrmManyToManyMapping ormManyToManyMapping = (OrmManyToManyMapping) ormPersistentAttribute.getMapping();
-		XmlManyToMany manyToMany = getXmlEntityMappings().getEntities().get(0).getAttributes().getManyToManys().get(0);
-
-		OrmJoinTable ormJoinTable = ormManyToManyMapping.getRelationshipReference().getJoinTableJoiningStrategy().getJoinTable();
-		manyToMany.setJoinTable(OrmFactory.eINSTANCE.createXmlJoinTableImpl());
-		XmlJoinTable joinTableResource = manyToMany.getJoinTable();
-		
-		ormJoinTable.addUniqueConstraint(0).addColumnName(0, "FOO");
-		ormJoinTable.addUniqueConstraint(1).addColumnName(0, "BAR");
-		ormJoinTable.addUniqueConstraint(2).addColumnName(0, "BAZ");
-		
-		assertEquals(3, joinTableResource.getUniqueConstraints().size());
-
-		ormJoinTable.removeUniqueConstraint(1);
-		
-		ListIterator<XmlUniqueConstraint> uniqueConstraintResources = joinTableResource.getUniqueConstraints().listIterator();
-		assertEquals("FOO", uniqueConstraintResources.next().getColumnNames().get(0));		
-		assertEquals("BAZ", uniqueConstraintResources.next().getColumnNames().get(0));
-		assertFalse(uniqueConstraintResources.hasNext());
-		
-		Iterator<OrmUniqueConstraint> uniqueConstraints = ormJoinTable.uniqueConstraints();
-		assertEquals("FOO", uniqueConstraints.next().columnNames().next());		
-		assertEquals("BAZ", uniqueConstraints.next().columnNames().next());
-		assertFalse(uniqueConstraints.hasNext());
-	
-		
-		ormJoinTable.removeUniqueConstraint(1);
-		uniqueConstraintResources = joinTableResource.getUniqueConstraints().listIterator();
-		assertEquals("FOO", uniqueConstraintResources.next().getColumnNames().get(0));		
-		assertFalse(uniqueConstraintResources.hasNext());
-
-		uniqueConstraints = ormJoinTable.uniqueConstraints();
-		assertEquals("FOO", uniqueConstraints.next().columnNames().next());		
-		assertFalse(uniqueConstraints.hasNext());
-
-		
-		ormJoinTable.removeUniqueConstraint(0);
-		uniqueConstraintResources = joinTableResource.getUniqueConstraints().listIterator();
-		assertFalse(uniqueConstraintResources.hasNext());
-		uniqueConstraints = ormJoinTable.uniqueConstraints();
-		assertFalse(uniqueConstraints.hasNext());
-	}
-	
-	public void testMoveUniqueConstraint() throws Exception {
-		OrmPersistentType ormPersistentType = getEntityMappings().addPersistentType(MappingKeys.ENTITY_TYPE_MAPPING_KEY, "model.Foo");
-		OrmPersistentAttribute ormPersistentAttribute = ormPersistentType.addSpecifiedPersistentAttribute(MappingKeys.MANY_TO_MANY_ATTRIBUTE_MAPPING_KEY, "manyToManyMapping");
-		OrmManyToManyMapping ormManyToManyMapping = (OrmManyToManyMapping) ormPersistentAttribute.getMapping();
-		XmlManyToMany manyToMany = getXmlEntityMappings().getEntities().get(0).getAttributes().getManyToManys().get(0);
-
-		OrmJoinTable ormJoinTable = ormManyToManyMapping.getRelationshipReference().getJoinTableJoiningStrategy().getJoinTable();
-		manyToMany.setJoinTable(OrmFactory.eINSTANCE.createXmlJoinTableImpl());
-		XmlJoinTable joinTableResource = manyToMany.getJoinTable();
-		
-		ormJoinTable.addUniqueConstraint(0).addColumnName(0, "FOO");
-		ormJoinTable.addUniqueConstraint(1).addColumnName(0, "BAR");
-		ormJoinTable.addUniqueConstraint(2).addColumnName(0, "BAZ");
-		
-		assertEquals(3, joinTableResource.getUniqueConstraints().size());
-		
-		
-		ormJoinTable.moveUniqueConstraint(2, 0);
-		ListIterator<OrmUniqueConstraint> uniqueConstraints = ormJoinTable.uniqueConstraints();
-		assertEquals("BAR", uniqueConstraints.next().columnNames().next());
-		assertEquals("BAZ", uniqueConstraints.next().columnNames().next());
-		assertEquals("FOO", uniqueConstraints.next().columnNames().next());
-
-		ListIterator<XmlUniqueConstraint> uniqueConstraintResources = joinTableResource.getUniqueConstraints().listIterator();
-		assertEquals("BAR", uniqueConstraintResources.next().getColumnNames().get(0));
-		assertEquals("BAZ", uniqueConstraintResources.next().getColumnNames().get(0));
-		assertEquals("FOO", uniqueConstraintResources.next().getColumnNames().get(0));
-
-
-		ormJoinTable.moveUniqueConstraint(0, 1);
-		uniqueConstraints = ormJoinTable.uniqueConstraints();
-		assertEquals("BAZ", uniqueConstraints.next().columnNames().next());
-		assertEquals("BAR", uniqueConstraints.next().columnNames().next());
-		assertEquals("FOO", uniqueConstraints.next().columnNames().next());
-
-		uniqueConstraintResources = joinTableResource.getUniqueConstraints().listIterator();
-		assertEquals("BAZ", uniqueConstraintResources.next().getColumnNames().get(0));
-		assertEquals("BAR", uniqueConstraintResources.next().getColumnNames().get(0));
-		assertEquals("FOO", uniqueConstraintResources.next().getColumnNames().get(0));
-	}
-	
-	public void testUpdateUniqueConstraints() throws Exception {
-		OrmPersistentType ormPersistentType = getEntityMappings().addPersistentType(MappingKeys.ENTITY_TYPE_MAPPING_KEY, "model.Foo");
-		OrmPersistentAttribute ormPersistentAttribute = ormPersistentType.addSpecifiedPersistentAttribute(MappingKeys.MANY_TO_MANY_ATTRIBUTE_MAPPING_KEY, "manyToManyMapping");
-		OrmManyToManyMapping ormManyToManyMapping = (OrmManyToManyMapping) ormPersistentAttribute.getMapping();
-		XmlManyToMany manyToMany = getXmlEntityMappings().getEntities().get(0).getAttributes().getManyToManys().get(0);
-
-		OrmJoinTable ormJoinTable = ormManyToManyMapping.getRelationshipReference().getJoinTableJoiningStrategy().getJoinTable();
-		manyToMany.setJoinTable(OrmFactory.eINSTANCE.createXmlJoinTableImpl());
-		XmlJoinTable joinTableResource = manyToMany.getJoinTable();
-	
-		XmlUniqueConstraint uniqueConstraintResource = OrmFactory.eINSTANCE.createXmlUniqueConstraintImpl();
-		joinTableResource.getUniqueConstraints().add(0, uniqueConstraintResource);
-		uniqueConstraintResource.getColumnNames().add(0, "FOO");
-
-		uniqueConstraintResource = OrmFactory.eINSTANCE.createXmlUniqueConstraintImpl();
-		joinTableResource.getUniqueConstraints().add(1, uniqueConstraintResource);
-		uniqueConstraintResource.getColumnNames().add(0, "BAR");
-
-		uniqueConstraintResource = OrmFactory.eINSTANCE.createXmlUniqueConstraintImpl();
-		joinTableResource.getUniqueConstraints().add(2, uniqueConstraintResource);
-		uniqueConstraintResource.getColumnNames().add(0, "BAZ");
-
-		
-		ListIterator<OrmUniqueConstraint> uniqueConstraints = ormJoinTable.uniqueConstraints();
-		assertEquals("FOO", uniqueConstraints.next().columnNames().next());
-		assertEquals("BAR", uniqueConstraints.next().columnNames().next());
-		assertEquals("BAZ", uniqueConstraints.next().columnNames().next());
-		assertFalse(uniqueConstraints.hasNext());
-		
-		joinTableResource.getUniqueConstraints().move(2, 0);
-		uniqueConstraints = ormJoinTable.uniqueConstraints();
-		assertEquals("BAR", uniqueConstraints.next().columnNames().next());
-		assertEquals("BAZ", uniqueConstraints.next().columnNames().next());
-		assertEquals("FOO", uniqueConstraints.next().columnNames().next());
-		assertFalse(uniqueConstraints.hasNext());
-	
-		joinTableResource.getUniqueConstraints().move(0, 1);
-		uniqueConstraints = ormJoinTable.uniqueConstraints();
-		assertEquals("BAZ", uniqueConstraints.next().columnNames().next());
-		assertEquals("BAR", uniqueConstraints.next().columnNames().next());
-		assertEquals("FOO", uniqueConstraints.next().columnNames().next());
-		assertFalse(uniqueConstraints.hasNext());
-	
-		joinTableResource.getUniqueConstraints().remove(1);
-		uniqueConstraints = ormJoinTable.uniqueConstraints();
-		assertEquals("BAZ", uniqueConstraints.next().columnNames().next());
-		assertEquals("FOO", uniqueConstraints.next().columnNames().next());
-		assertFalse(uniqueConstraints.hasNext());
-	
-		joinTableResource.getUniqueConstraints().remove(1);
-		uniqueConstraints = ormJoinTable.uniqueConstraints();
-		assertEquals("BAZ", uniqueConstraints.next().columnNames().next());
-		assertFalse(uniqueConstraints.hasNext());
-		
-		joinTableResource.getUniqueConstraints().remove(0);
-		uniqueConstraints = ormJoinTable.uniqueConstraints();
-		assertFalse(uniqueConstraints.hasNext());
-	}
-	
-
-	public void testUniqueConstraintsFromJava() throws Exception {
-		createTestEntityWithValidManyToMany();
-		
-		OrmPersistentType ormPersistentType = getEntityMappings().addPersistentType(MappingKeys.ENTITY_TYPE_MAPPING_KEY, FULLY_QUALIFIED_TYPE_NAME);
-		OrmManyToManyMapping ormManyToManyMapping = (OrmManyToManyMapping) ormPersistentType.attributes().next().getMapping();
-		OrmJoinTable ormJoinTable = ormManyToManyMapping.getRelationshipReference().getJoinTableJoiningStrategy().getJoinTable();
-		
-		assertTrue(ormManyToManyMapping.getPersistentAttribute().isVirtual());
-		
-		ListIterator<OrmUniqueConstraint> uniqueConstraints = ormJoinTable.uniqueConstraints();
-		assertFalse(uniqueConstraints.hasNext());
-
-		JavaManyToManyMapping javaManyToManyMapping = (JavaManyToManyMapping) ormPersistentType.getJavaPersistentType().attributes().next().getMapping();
-		JavaJoinTable javaJoinTable = javaManyToManyMapping.getRelationshipReference().getJoinTableJoiningStrategy().getJoinTable();
-		
-		javaJoinTable.addUniqueConstraint(0).addColumnName(0, "FOO");
-		javaJoinTable.addUniqueConstraint(1).addColumnName(0, "BAR");
-		javaJoinTable.addUniqueConstraint(2).addColumnName(0, "BAZ");
-
-		uniqueConstraints = ormJoinTable.uniqueConstraints();
-		assertTrue(uniqueConstraints.hasNext());
-		assertEquals("FOO", uniqueConstraints.next().columnNames().next());
-		assertEquals("BAR", uniqueConstraints.next().columnNames().next());
-		assertEquals("BAZ", uniqueConstraints.next().columnNames().next());
-		assertFalse(uniqueConstraints.hasNext());
-		
-		ormManyToManyMapping.getPersistentAttribute().makeSpecified();
-		
-		ormManyToManyMapping = (OrmManyToManyMapping) ormPersistentType.attributes().next().getMapping();
-		assertEquals(0,  ormManyToManyMapping.getRelationshipReference().getJoinTableJoiningStrategy().getJoinTable().uniqueConstraintsSize());
-	}
-
-}
\ No newline at end of file
diff --git a/jpa/tests/org.eclipse.jpt.core.tests/src/org/eclipse/jpt/core/tests/internal/context/orm/OrmManyToManyMappingTests.java b/jpa/tests/org.eclipse.jpt.core.tests/src/org/eclipse/jpt/core/tests/internal/context/orm/OrmManyToManyMappingTests.java
deleted file mode 100644
index b0d03f9..0000000
--- a/jpa/tests/org.eclipse.jpt.core.tests/src/org/eclipse/jpt/core/tests/internal/context/orm/OrmManyToManyMappingTests.java
+++ /dev/null
@@ -1,592 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.core.tests.internal.context.orm;
-
-import org.eclipse.jpt.core.JptCorePlugin;
-import org.eclipse.jpt.core.MappingKeys;
-import org.eclipse.jpt.core.context.BasicMapping;
-import org.eclipse.jpt.core.context.EmbeddedIdMapping;
-import org.eclipse.jpt.core.context.EmbeddedMapping;
-import org.eclipse.jpt.core.context.FetchType;
-import org.eclipse.jpt.core.context.IdMapping;
-import org.eclipse.jpt.core.context.JoinColumn;
-import org.eclipse.jpt.core.context.JoinTable;
-import org.eclipse.jpt.core.context.ManyToManyMapping;
-import org.eclipse.jpt.core.context.ManyToOneMapping;
-import org.eclipse.jpt.core.context.OneToManyMapping;
-import org.eclipse.jpt.core.context.OneToOneMapping;
-import org.eclipse.jpt.core.context.TransientMapping;
-import org.eclipse.jpt.core.context.VersionMapping;
-import org.eclipse.jpt.core.context.orm.OrmManyToManyMapping;
-import org.eclipse.jpt.core.context.orm.OrmMappedByJoiningStrategy;
-import org.eclipse.jpt.core.context.orm.OrmPersistentAttribute;
-import org.eclipse.jpt.core.context.orm.OrmPersistentType;
-import org.eclipse.jpt.core.resource.orm.OrmFactory;
-import org.eclipse.jpt.core.resource.orm.XmlManyToMany;
-import org.eclipse.jpt.core.resource.persistence.PersistenceFactory;
-import org.eclipse.jpt.core.resource.persistence.XmlMappingFileRef;
-import org.eclipse.jpt.core.tests.internal.context.ContextModelTestCase;
-
-@SuppressWarnings("nls")
-public class OrmManyToManyMappingTests extends ContextModelTestCase
-{
-	public OrmManyToManyMappingTests(String name) {
-		super(name);
-	}
-	
-	
-	@Override
-	protected void setUp() throws Exception {
-		super.setUp();
-		XmlMappingFileRef mappingFileRef = PersistenceFactory.eINSTANCE.createXmlMappingFileRef();
-		mappingFileRef.setFileName(JptCorePlugin.DEFAULT_ORM_XML_FILE_PATH);
-		getXmlPersistenceUnit().getMappingFiles().add(mappingFileRef);
-		getPersistenceXmlResource().save(null);
-	}
-	
-	public void testUpdateName() throws Exception {
-		OrmPersistentType ormPersistentType = getEntityMappings().addPersistentType(MappingKeys.ENTITY_TYPE_MAPPING_KEY, "model.Foo");
-		OrmPersistentAttribute ormPersistentAttribute = ormPersistentType.addSpecifiedPersistentAttribute(MappingKeys.MANY_TO_MANY_ATTRIBUTE_MAPPING_KEY, "manyToManyMapping");
-		OrmManyToManyMapping ormManyToManyMapping = (OrmManyToManyMapping) ormPersistentAttribute.getMapping();
-		XmlManyToMany manyToMany = getXmlEntityMappings().getEntities().get(0).getAttributes().getManyToManys().get(0);
-		
-		assertEquals("manyToManyMapping", ormManyToManyMapping.getName());
-		assertEquals("manyToManyMapping", manyToMany.getName());
-				
-		//set name in the resource model, verify context model updated
-		manyToMany.setName("newName");
-		assertEquals("newName", ormManyToManyMapping.getName());
-		assertEquals("newName", manyToMany.getName());
-	
-		//set name to null in the resource model
-		manyToMany.setName(null);
-		assertNull(ormManyToManyMapping.getName());
-		assertNull(manyToMany.getName());
-	}
-	
-	public void testModifyName() throws Exception {
-		OrmPersistentType ormPersistentType = getEntityMappings().addPersistentType(MappingKeys.ENTITY_TYPE_MAPPING_KEY, "model.Foo");
-		OrmPersistentAttribute ormPersistentAttribute = ormPersistentType.addSpecifiedPersistentAttribute(MappingKeys.MANY_TO_MANY_ATTRIBUTE_MAPPING_KEY, "manyToManyMapping");
-		OrmManyToManyMapping ormManyToManyMapping = (OrmManyToManyMapping) ormPersistentAttribute.getMapping();
-		XmlManyToMany manyToMany = getXmlEntityMappings().getEntities().get(0).getAttributes().getManyToManys().get(0);
-		
-		assertEquals("manyToManyMapping", ormManyToManyMapping.getName());
-		assertEquals("manyToManyMapping", manyToMany.getName());
-				
-		//set name in the context model, verify resource model updated
-		ormManyToManyMapping.setName("newName");
-		assertEquals("newName", ormManyToManyMapping.getName());
-		assertEquals("newName", manyToMany.getName());
-	
-		//set name to null in the context model
-		ormManyToManyMapping.setName(null);
-		assertNull(ormManyToManyMapping.getName());
-		assertNull(manyToMany.getName());
-	}
-	
-	public void testUpdateTargetEntity() throws Exception {
-		OrmPersistentType ormPersistentType = getEntityMappings().addPersistentType(MappingKeys.ENTITY_TYPE_MAPPING_KEY, "model.Foo");
-		OrmPersistentAttribute ormPersistentAttribute = ormPersistentType.addSpecifiedPersistentAttribute(MappingKeys.MANY_TO_MANY_ATTRIBUTE_MAPPING_KEY, "manyToManyMapping");
-		OrmManyToManyMapping ormManyToManyMapping = (OrmManyToManyMapping) ormPersistentAttribute.getMapping();
-		XmlManyToMany manyToMany = getXmlEntityMappings().getEntities().get(0).getAttributes().getManyToManys().get(0);
-		
-		assertNull(ormManyToManyMapping.getSpecifiedTargetEntity());
-		assertNull(manyToMany.getTargetEntity());
-				
-		//set target entity in the resource model, verify context model updated
-		manyToMany.setTargetEntity("newTargetEntity");
-		assertEquals("newTargetEntity", ormManyToManyMapping.getSpecifiedTargetEntity());
-		assertEquals("newTargetEntity", manyToMany.getTargetEntity());
-	
-		//set target entity to null in the resource model
-		manyToMany.setTargetEntity(null);
-		assertNull(ormManyToManyMapping.getSpecifiedTargetEntity());
-		assertNull(manyToMany.getTargetEntity());
-	}
-	
-	public void testModifyTargetEntity() throws Exception {
-		OrmPersistentType ormPersistentType = getEntityMappings().addPersistentType(MappingKeys.ENTITY_TYPE_MAPPING_KEY, "model.Foo");
-		OrmPersistentAttribute ormPersistentAttribute = ormPersistentType.addSpecifiedPersistentAttribute(MappingKeys.MANY_TO_MANY_ATTRIBUTE_MAPPING_KEY, "manyToManyMapping");
-		OrmManyToManyMapping ormManyToManyMapping = (OrmManyToManyMapping) ormPersistentAttribute.getMapping();
-		XmlManyToMany manyToMany = getXmlEntityMappings().getEntities().get(0).getAttributes().getManyToManys().get(0);
-		
-		assertNull(ormManyToManyMapping.getSpecifiedTargetEntity());
-		assertNull(manyToMany.getTargetEntity());
-				
-		//set target entity in the context model, verify resource model updated
-		ormManyToManyMapping.setSpecifiedTargetEntity("newTargetEntity");
-		assertEquals("newTargetEntity", ormManyToManyMapping.getSpecifiedTargetEntity());
-		assertEquals("newTargetEntity", manyToMany.getTargetEntity());
-	
-		//set target entity to null in the context model
-		ormManyToManyMapping.setSpecifiedTargetEntity(null);
-		assertNull(ormManyToManyMapping.getSpecifiedTargetEntity());
-		assertNull(manyToMany.getTargetEntity());
-	}
-	
-	public void testUpdateSpecifiedFetch() throws Exception {
-		OrmPersistentType ormPersistentType = getEntityMappings().addPersistentType(MappingKeys.ENTITY_TYPE_MAPPING_KEY, "model.Foo");
-		OrmPersistentAttribute ormPersistentAttribute = ormPersistentType.addSpecifiedPersistentAttribute(MappingKeys.MANY_TO_MANY_ATTRIBUTE_MAPPING_KEY, "manyToManyMapping");
-		OrmManyToManyMapping ormManyToManyMapping = (OrmManyToManyMapping) ormPersistentAttribute.getMapping();
-		XmlManyToMany manyToManyResource = getXmlEntityMappings().getEntities().get(0).getAttributes().getManyToManys().get(0);
-		
-		assertNull(ormManyToManyMapping.getSpecifiedFetch());
-		assertNull(manyToManyResource.getFetch());
-				
-		//set fetch in the resource model, verify context model updated
-		manyToManyResource.setFetch(org.eclipse.jpt.core.resource.orm.FetchType.EAGER);
-		assertEquals(FetchType.EAGER, ormManyToManyMapping.getSpecifiedFetch());
-		assertEquals(org.eclipse.jpt.core.resource.orm.FetchType.EAGER, manyToManyResource.getFetch());
-	
-		manyToManyResource.setFetch(org.eclipse.jpt.core.resource.orm.FetchType.LAZY);
-		assertEquals(FetchType.LAZY, ormManyToManyMapping.getSpecifiedFetch());
-		assertEquals(org.eclipse.jpt.core.resource.orm.FetchType.LAZY, manyToManyResource.getFetch());
-
-		//set fetch to null in the resource model
-		manyToManyResource.setFetch(null);
-		assertNull(ormManyToManyMapping.getSpecifiedFetch());
-		assertNull(manyToManyResource.getFetch());
-	}
-	
-	public void testModifySpecifiedFetch() throws Exception {
-		OrmPersistentType ormPersistentType = getEntityMappings().addPersistentType(MappingKeys.ENTITY_TYPE_MAPPING_KEY, "model.Foo");
-		OrmPersistentAttribute ormPersistentAttribute = ormPersistentType.addSpecifiedPersistentAttribute(MappingKeys.MANY_TO_MANY_ATTRIBUTE_MAPPING_KEY, "manyToManyMapping");
-		OrmManyToManyMapping ormManyToManyMapping = (OrmManyToManyMapping) ormPersistentAttribute.getMapping();
-		XmlManyToMany manyToManyResource = getXmlEntityMappings().getEntities().get(0).getAttributes().getManyToManys().get(0);
-		
-		assertNull(ormManyToManyMapping.getSpecifiedFetch());
-		assertNull(manyToManyResource.getFetch());
-				
-		//set fetch in the context model, verify resource model updated
-		ormManyToManyMapping.setSpecifiedFetch(FetchType.EAGER);
-		assertEquals(org.eclipse.jpt.core.resource.orm.FetchType.EAGER, manyToManyResource.getFetch());
-		assertEquals(FetchType.EAGER, ormManyToManyMapping.getSpecifiedFetch());
-	
-		ormManyToManyMapping.setSpecifiedFetch(FetchType.LAZY);
-		assertEquals(org.eclipse.jpt.core.resource.orm.FetchType.LAZY, manyToManyResource.getFetch());
-		assertEquals(FetchType.LAZY, ormManyToManyMapping.getSpecifiedFetch());
-
-		//set fetch to null in the context model
-		ormManyToManyMapping.setSpecifiedFetch(null);
-		assertNull(manyToManyResource.getFetch());
-		assertNull(ormManyToManyMapping.getSpecifiedFetch());
-	}
-		
-	public void testUpdateMappedBy() throws Exception {
-		OrmPersistentType ormPersistentType = getEntityMappings().addPersistentType(MappingKeys.ENTITY_TYPE_MAPPING_KEY, "model.Foo");
-		OrmPersistentAttribute ormPersistentAttribute = ormPersistentType.addSpecifiedPersistentAttribute(MappingKeys.MANY_TO_MANY_ATTRIBUTE_MAPPING_KEY, "manyToManyMapping");
-		OrmManyToManyMapping ormManyToManyMapping = (OrmManyToManyMapping) ormPersistentAttribute.getMapping();
-		OrmMappedByJoiningStrategy strategy = ormManyToManyMapping.getRelationshipReference().getMappedByJoiningStrategy();
-		XmlManyToMany manyToMany = getXmlEntityMappings().getEntities().get(0).getAttributes().getManyToManys().get(0);
-		
-		assertNull(strategy.getMappedByAttribute());
-		assertNull(manyToMany.getMappedBy());
-				
-		//set mappedBy in the resource model, verify context model updated
-		manyToMany.setMappedBy("newMappedBy");
-		assertEquals("newMappedBy", strategy.getMappedByAttribute());
-		assertEquals("newMappedBy", manyToMany.getMappedBy());
-	
-		//setmappedBy to null in the resource model
-		manyToMany.setMappedBy(null);
-		assertNull(strategy.getMappedByAttribute());
-		assertNull(manyToMany.getMappedBy());
-	}
-	
-	public void testModifyMappedBy() throws Exception {
-		OrmPersistentType ormPersistentType = getEntityMappings().addPersistentType(MappingKeys.ENTITY_TYPE_MAPPING_KEY, "model.Foo");
-		OrmPersistentAttribute ormPersistentAttribute = ormPersistentType.addSpecifiedPersistentAttribute(MappingKeys.MANY_TO_MANY_ATTRIBUTE_MAPPING_KEY, "manyToManyMapping");
-		OrmManyToManyMapping ormManyToManyMapping = (OrmManyToManyMapping) ormPersistentAttribute.getMapping();
-		OrmMappedByJoiningStrategy strategy = ormManyToManyMapping.getRelationshipReference().getMappedByJoiningStrategy();
-		XmlManyToMany manyToMany = getXmlEntityMappings().getEntities().get(0).getAttributes().getManyToManys().get(0);
-		
-		assertNull(strategy.getMappedByAttribute());
-		assertNull(manyToMany.getMappedBy());
-				
-		//set mappedBy in the context model, verify resource model updated
-		strategy.setMappedByAttribute("newMappedBy");
-		assertEquals("newMappedBy", strategy.getMappedByAttribute());
-		assertEquals("newMappedBy", manyToMany.getMappedBy());
-	
-		//set mappedBy to null in the context model
-		strategy.setMappedByAttribute(null);
-		assertNull(strategy.getMappedByAttribute());
-		assertNull(manyToMany.getMappedBy());
-	}
-	
-	public void testUpdateMapKey() throws Exception {
-		OrmPersistentType ormPersistentType = getEntityMappings().addPersistentType(MappingKeys.ENTITY_TYPE_MAPPING_KEY, "model.Foo");
-		OrmPersistentAttribute ormPersistentAttribute = ormPersistentType.addSpecifiedPersistentAttribute(MappingKeys.MANY_TO_MANY_ATTRIBUTE_MAPPING_KEY, "manyToManyMapping");
-		OrmManyToManyMapping ormManyToManyMapping = (OrmManyToManyMapping) ormPersistentAttribute.getMapping();
-		XmlManyToMany manyToMany = getXmlEntityMappings().getEntities().get(0).getAttributes().getManyToManys().get(0);
-		
-		assertNull(ormManyToManyMapping.getMapKey());
-		assertNull(manyToMany.getMapKey());
-		
-		//set mapKey in the resource model, verify context model does not change
-		manyToMany.setMapKey(OrmFactory.eINSTANCE.createMapKeyImpl());
-		assertNull(ormManyToManyMapping.getMapKey());
-		assertNotNull(manyToMany.getMapKey());
-				
-		//set mapKey name in the resource model, verify context model updated
-		manyToMany.getMapKey().setName("myMapKey");
-		assertEquals("myMapKey", ormManyToManyMapping.getMapKey());
-		assertEquals("myMapKey", manyToMany.getMapKey().getName());
-		
-		//set mapKey name to null in the resource model
-		manyToMany.getMapKey().setName(null);
-		assertNull(ormManyToManyMapping.getMapKey());
-		assertNull(manyToMany.getMapKey().getName());
-		
-		manyToMany.getMapKey().setName("myMapKey");
-		manyToMany.setMapKey(null);
-		assertNull(ormManyToManyMapping.getMapKey());
-		assertNull(manyToMany.getMapKey());
-	}
-	
-	public void testModifyMapKey() throws Exception {
-		OrmPersistentType ormPersistentType = getEntityMappings().addPersistentType(MappingKeys.ENTITY_TYPE_MAPPING_KEY, "model.Foo");
-		OrmPersistentAttribute ormPersistentAttribute = ormPersistentType.addSpecifiedPersistentAttribute(MappingKeys.MANY_TO_MANY_ATTRIBUTE_MAPPING_KEY, "manyToManyMapping");
-		OrmManyToManyMapping ormManyToManyMapping = (OrmManyToManyMapping) ormPersistentAttribute.getMapping();
-		XmlManyToMany manyToMany = getXmlEntityMappings().getEntities().get(0).getAttributes().getManyToManys().get(0);
-		
-		assertNull(ormManyToManyMapping.getMapKey());
-		assertNull(manyToMany.getMapKey());
-					
-		//set mapKey  in the context model, verify resource model updated
-		ormManyToManyMapping.setMapKey("myMapKey");
-		assertEquals("myMapKey", ormManyToManyMapping.getMapKey());
-		assertEquals("myMapKey", manyToMany.getMapKey().getName());
-	
-		//set mapKey to null in the context model
-		ormManyToManyMapping.setMapKey(null);
-		assertNull(ormManyToManyMapping.getMapKey());
-		assertNull(manyToMany.getMapKey());
-	}
-	
-	public void testUpdateOrderBy() throws Exception {
-		OrmPersistentType ormPersistentType = getEntityMappings().addPersistentType(MappingKeys.ENTITY_TYPE_MAPPING_KEY, "model.Foo");
-		OrmPersistentAttribute ormPersistentAttribute = ormPersistentType.addSpecifiedPersistentAttribute(MappingKeys.MANY_TO_MANY_ATTRIBUTE_MAPPING_KEY, "manyToManyMapping");
-		OrmManyToManyMapping ormManyToManyMapping = (OrmManyToManyMapping) ormPersistentAttribute.getMapping();
-		XmlManyToMany manyToMany = getXmlEntityMappings().getEntities().get(0).getAttributes().getManyToManys().get(0);
-		
-		assertNull(ormManyToManyMapping.getOrderBy());
-		assertNull(manyToMany.getOrderBy());
-				
-		//set orderBy in the resource model, verify context model updated
-		manyToMany.setOrderBy("newOrderBy");
-		assertEquals("newOrderBy", ormManyToManyMapping.getOrderBy());
-		assertEquals("newOrderBy", manyToMany.getOrderBy());
-	
-		//set orderBy to null in the resource model
-		manyToMany.setOrderBy(null);
-		assertNull(ormManyToManyMapping.getOrderBy());
-		assertNull(manyToMany.getOrderBy());
-	}
-	
-	public void testModifyOrderBy() throws Exception {
-		OrmPersistentType ormPersistentType = getEntityMappings().addPersistentType(MappingKeys.ENTITY_TYPE_MAPPING_KEY, "model.Foo");
-		OrmPersistentAttribute ormPersistentAttribute = ormPersistentType.addSpecifiedPersistentAttribute(MappingKeys.MANY_TO_MANY_ATTRIBUTE_MAPPING_KEY, "manyToManyMapping");
-		OrmManyToManyMapping ormManyToManyMapping = (OrmManyToManyMapping) ormPersistentAttribute.getMapping();
-		XmlManyToMany manyToMany = getXmlEntityMappings().getEntities().get(0).getAttributes().getManyToManys().get(0);
-		
-		assertNull(ormManyToManyMapping.getOrderBy());
-		assertNull(manyToMany.getOrderBy());
-				
-		//set mappedBy in the context model, verify resource model updated
-		ormManyToManyMapping.setOrderBy("newOrderBy");
-		assertEquals("newOrderBy", ormManyToManyMapping.getOrderBy());
-		assertEquals("newOrderBy", manyToMany.getOrderBy());
-	
-		//set mappedBy to null in the context model
-		ormManyToManyMapping.setOrderBy(null);
-		assertNull(ormManyToManyMapping.getOrderBy());
-		assertNull(manyToMany.getOrderBy());
-	}
-	
-	public void testIsNoOrdering() throws Exception {
-		OrmPersistentType ormPersistentType = getEntityMappings().addPersistentType(MappingKeys.ENTITY_TYPE_MAPPING_KEY, "model.Foo");
-		OrmPersistentAttribute ormPersistentAttribute = ormPersistentType.addSpecifiedPersistentAttribute(MappingKeys.MANY_TO_MANY_ATTRIBUTE_MAPPING_KEY, "manyToManyMapping");
-		OrmManyToManyMapping ormManyToManyMapping = (OrmManyToManyMapping) ormPersistentAttribute.getMapping();
-		
-		assertTrue(ormManyToManyMapping.isNoOrdering());
-
-		ormManyToManyMapping.setOrderBy("foo");
-		assertFalse(ormManyToManyMapping.isNoOrdering());
-		
-		ormManyToManyMapping.setOrderBy(null);
-		assertTrue(ormManyToManyMapping.isNoOrdering());
-	}
-	
-	public void testSetNoOrdering() throws Exception {
-		OrmPersistentType ormPersistentType = getEntityMappings().addPersistentType(MappingKeys.ENTITY_TYPE_MAPPING_KEY, "model.Foo");
-		OrmPersistentAttribute ormPersistentAttribute = ormPersistentType.addSpecifiedPersistentAttribute(MappingKeys.MANY_TO_MANY_ATTRIBUTE_MAPPING_KEY, "manyToManyMapping");
-		OrmManyToManyMapping ormManyToManyMapping = (OrmManyToManyMapping) ormPersistentAttribute.getMapping();
-		
-		assertTrue(ormManyToManyMapping.isNoOrdering());
-
-		ormManyToManyMapping.setOrderBy("foo");
-		assertFalse(ormManyToManyMapping.isNoOrdering());
-		
-		ormManyToManyMapping.setNoOrdering(true);
-		assertTrue(ormManyToManyMapping.isNoOrdering());
-		assertNull(ormManyToManyMapping.getOrderBy());
-	}
-//TODO
-//	public boolean isOrderByPk() {
-//		return "".equals(getOrderBy());
-//	}
-//
-//	public void setOrderByPk() {
-//		setOrderBy("");
-//	}
-
-	public void testIsCustomOrdering() throws Exception {
-		OrmPersistentType ormPersistentType = getEntityMappings().addPersistentType(MappingKeys.ENTITY_TYPE_MAPPING_KEY, "model.Foo");
-		OrmPersistentAttribute ormPersistentAttribute = ormPersistentType.addSpecifiedPersistentAttribute(MappingKeys.MANY_TO_MANY_ATTRIBUTE_MAPPING_KEY, "manyToManyMapping");
-		OrmManyToManyMapping ormManyToManyMapping = (OrmManyToManyMapping) ormPersistentAttribute.getMapping();
-		
-		assertFalse(ormManyToManyMapping.isCustomOrdering());
-
-		ormManyToManyMapping.setOrderBy("foo");
-		assertTrue(ormManyToManyMapping.isCustomOrdering());
-		
-		ormManyToManyMapping.setOrderBy(null);
-		assertFalse(ormManyToManyMapping.isCustomOrdering());
-	}
-	
-	public void testManyToManyMorphToIdMapping() throws Exception {
-		OrmPersistentType ormPersistentType = getEntityMappings().addPersistentType(MappingKeys.ENTITY_TYPE_MAPPING_KEY, FULLY_QUALIFIED_TYPE_NAME);
-		OrmPersistentAttribute ormPersistentAttribute = ormPersistentType.addSpecifiedPersistentAttribute(MappingKeys.MANY_TO_MANY_ATTRIBUTE_MAPPING_KEY, "manyToMany");
-		
-		ManyToManyMapping manyToManyMapping = (ManyToManyMapping) ormPersistentAttribute.getMapping();
-		assertFalse(manyToManyMapping.isDefault());
-		manyToManyMapping.setSpecifiedFetch(FetchType.EAGER);
-		manyToManyMapping.setSpecifiedTargetEntity("TargetEntity");
-		manyToManyMapping.setOrderBy("customOrder");
-		manyToManyMapping.setMapKey("mapKey");
-		assertFalse(manyToManyMapping.isDefault());	
-		
-		ormPersistentAttribute.setSpecifiedMappingKey(MappingKeys.ID_ATTRIBUTE_MAPPING_KEY);
-		assertEquals(1, ormPersistentType.specifiedAttributesSize());
-		assertEquals(ormPersistentAttribute, ormPersistentType.specifiedAttributes().next());
-		assertTrue(ormPersistentAttribute.getMapping() instanceof IdMapping);
-		assertEquals("manyToMany", ormPersistentAttribute.getMapping().getName());
-	}
-	
-	public void testManyToManyMorphToVersionMapping() throws Exception {
-		OrmPersistentType ormPersistentType = getEntityMappings().addPersistentType(MappingKeys.ENTITY_TYPE_MAPPING_KEY, FULLY_QUALIFIED_TYPE_NAME);
-		OrmPersistentAttribute ormPersistentAttribute = ormPersistentType.addSpecifiedPersistentAttribute(MappingKeys.MANY_TO_MANY_ATTRIBUTE_MAPPING_KEY, "manyToMany");
-		
-		ManyToManyMapping manyToManyMapping = (ManyToManyMapping) ormPersistentAttribute.getMapping();
-		assertFalse(manyToManyMapping.isDefault());
-		manyToManyMapping.setSpecifiedFetch(FetchType.EAGER);
-		manyToManyMapping.setSpecifiedTargetEntity("TargetEntity");
-		manyToManyMapping.setOrderBy("customOrder");
-		manyToManyMapping.setMapKey("mapKey");
-		assertFalse(manyToManyMapping.isDefault());	
-		
-		ormPersistentAttribute.setSpecifiedMappingKey(MappingKeys.VERSION_ATTRIBUTE_MAPPING_KEY);
-		assertEquals(1, ormPersistentType.specifiedAttributesSize());
-		assertEquals(ormPersistentAttribute, ormPersistentType.specifiedAttributes().next());
-		assertTrue(ormPersistentAttribute.getMapping() instanceof VersionMapping);
-		assertEquals("manyToMany", ormPersistentAttribute.getMapping().getName());
-	}
-	
-	public void testManyToManyMorphToTransientMapping() throws Exception {
-		OrmPersistentType ormPersistentType = getEntityMappings().addPersistentType(MappingKeys.ENTITY_TYPE_MAPPING_KEY, FULLY_QUALIFIED_TYPE_NAME);
-		OrmPersistentAttribute ormPersistentAttribute = ormPersistentType.addSpecifiedPersistentAttribute(MappingKeys.MANY_TO_MANY_ATTRIBUTE_MAPPING_KEY, "manyToMany");
-		
-		ManyToManyMapping manyToManyMapping = (ManyToManyMapping) ormPersistentAttribute.getMapping();
-		assertFalse(manyToManyMapping.isDefault());
-		manyToManyMapping.setSpecifiedFetch(FetchType.EAGER);
-		manyToManyMapping.setSpecifiedTargetEntity("TargetEntity");
-		manyToManyMapping.setOrderBy("customOrder");
-		manyToManyMapping.setMapKey("mapKey");
-		assertFalse(manyToManyMapping.isDefault());	
-		
-		ormPersistentAttribute.setSpecifiedMappingKey(MappingKeys.TRANSIENT_ATTRIBUTE_MAPPING_KEY);
-		assertEquals(1, ormPersistentType.specifiedAttributesSize());
-		assertEquals(ormPersistentAttribute, ormPersistentType.specifiedAttributes().next());
-		assertTrue(ormPersistentAttribute.getMapping() instanceof TransientMapping);
-		assertEquals("manyToMany", ormPersistentAttribute.getMapping().getName());
-	}
-	
-	public void testManyToManyMorphToEmbeddedMapping() throws Exception {
-		OrmPersistentType ormPersistentType = getEntityMappings().addPersistentType(MappingKeys.ENTITY_TYPE_MAPPING_KEY, FULLY_QUALIFIED_TYPE_NAME);
-		OrmPersistentAttribute ormPersistentAttribute = ormPersistentType.addSpecifiedPersistentAttribute(MappingKeys.MANY_TO_MANY_ATTRIBUTE_MAPPING_KEY, "manyToMany");
-		
-		ManyToManyMapping manyToManyMapping = (ManyToManyMapping) ormPersistentAttribute.getMapping();
-		assertFalse(manyToManyMapping.isDefault());
-		manyToManyMapping.setSpecifiedFetch(FetchType.EAGER);
-		manyToManyMapping.setSpecifiedTargetEntity("TargetEntity");
-		manyToManyMapping.setOrderBy("customOrder");
-		manyToManyMapping.setMapKey("mapKey");
-		assertFalse(manyToManyMapping.isDefault());	
-		
-		ormPersistentAttribute.setSpecifiedMappingKey(MappingKeys.EMBEDDED_ATTRIBUTE_MAPPING_KEY);
-		assertEquals(1, ormPersistentType.specifiedAttributesSize());
-		assertEquals(ormPersistentAttribute, ormPersistentType.specifiedAttributes().next());
-		assertTrue(ormPersistentAttribute.getMapping() instanceof EmbeddedMapping);
-		assertEquals("manyToMany", ormPersistentAttribute.getMapping().getName());
-	}
-	
-	public void testManyToManyMorphToEmbeddedIdMapping() throws Exception {
-		OrmPersistentType ormPersistentType = getEntityMappings().addPersistentType(MappingKeys.ENTITY_TYPE_MAPPING_KEY, FULLY_QUALIFIED_TYPE_NAME);
-		OrmPersistentAttribute ormPersistentAttribute = ormPersistentType.addSpecifiedPersistentAttribute(MappingKeys.MANY_TO_MANY_ATTRIBUTE_MAPPING_KEY, "manyToMany");
-		
-		ManyToManyMapping manyToManyMapping = (ManyToManyMapping) ormPersistentAttribute.getMapping();
-		assertFalse(manyToManyMapping.isDefault());
-		manyToManyMapping.setSpecifiedFetch(FetchType.EAGER);
-		manyToManyMapping.setSpecifiedTargetEntity("TargetEntity");
-		manyToManyMapping.setOrderBy("customOrder");
-		manyToManyMapping.setMapKey("mapKey");
-		assertFalse(manyToManyMapping.isDefault());	
-		
-		ormPersistentAttribute.setSpecifiedMappingKey(MappingKeys.EMBEDDED_ID_ATTRIBUTE_MAPPING_KEY);
-		assertEquals(1, ormPersistentType.specifiedAttributesSize());
-		assertEquals(ormPersistentAttribute, ormPersistentType.specifiedAttributes().next());
-		assertTrue(ormPersistentAttribute.getMapping() instanceof EmbeddedIdMapping);
-		assertEquals("manyToMany", ormPersistentAttribute.getMapping().getName());
-	}
-	
-	public void testManyToManyMorphToOneToOneMapping() throws Exception {
-		OrmPersistentType ormPersistentType = getEntityMappings().addPersistentType(MappingKeys.ENTITY_TYPE_MAPPING_KEY, FULLY_QUALIFIED_TYPE_NAME);
-		OrmPersistentAttribute ormPersistentAttribute = ormPersistentType.addSpecifiedPersistentAttribute(MappingKeys.MANY_TO_MANY_ATTRIBUTE_MAPPING_KEY, "manyToMany");
-		
-		ManyToManyMapping manyToManyMapping = (ManyToManyMapping) ormPersistentAttribute.getMapping();
-		assertFalse(manyToManyMapping.isDefault());
-		manyToManyMapping.setSpecifiedFetch(FetchType.EAGER);
-		manyToManyMapping.setSpecifiedTargetEntity("TargetEntity");
-		manyToManyMapping.setOrderBy("customOrder");
-		manyToManyMapping.setMapKey("mapKey");
-		manyToManyMapping.getRelationshipReference().getMappedByJoiningStrategy().setMappedByAttribute("mappedBy");
-		manyToManyMapping.getCascade().setAll(true);
-		manyToManyMapping.getCascade().setMerge(true);
-		manyToManyMapping.getCascade().setPersist(true);
-		manyToManyMapping.getCascade().setRefresh(true);
-		manyToManyMapping.getCascade().setRemove(true);
-		assertFalse(manyToManyMapping.isDefault());	
-		
-		ormPersistentAttribute.setSpecifiedMappingKey(MappingKeys.ONE_TO_ONE_ATTRIBUTE_MAPPING_KEY);
-		assertEquals(1, ormPersistentType.specifiedAttributesSize());
-		assertEquals(ormPersistentAttribute, ormPersistentType.specifiedAttributes().next());
-		assertTrue(ormPersistentAttribute.getMapping() instanceof OneToOneMapping);
-		assertEquals("manyToMany", ormPersistentAttribute.getMapping().getName());
-		assertEquals(FetchType.EAGER, ((OneToOneMapping) ormPersistentAttribute.getMapping()).getSpecifiedFetch());
-		assertEquals("TargetEntity", ((OneToOneMapping) ormPersistentAttribute.getMapping()).getSpecifiedTargetEntity());
-		assertEquals("mappedBy", ((OneToOneMapping) ormPersistentAttribute.getMapping()).getRelationshipReference().getMappedByJoiningStrategy().getMappedByAttribute());
-		assertTrue(((OneToOneMapping) ormPersistentAttribute.getMapping()).getCascade().isAll());
-		assertTrue(((OneToOneMapping) ormPersistentAttribute.getMapping()).getCascade().isMerge());
-		assertTrue(((OneToOneMapping) ormPersistentAttribute.getMapping()).getCascade().isPersist());
-		assertTrue(((OneToOneMapping) ormPersistentAttribute.getMapping()).getCascade().isRefresh());
-		assertTrue(((OneToOneMapping) ormPersistentAttribute.getMapping()).getCascade().isRemove());
-	}
-	
-	public void testManyToManyMorphToOneToManyMapping() throws Exception {
-		OrmPersistentType ormPersistentType = getEntityMappings().addPersistentType(MappingKeys.ENTITY_TYPE_MAPPING_KEY, FULLY_QUALIFIED_TYPE_NAME);
-		OrmPersistentAttribute ormPersistentAttribute = ormPersistentType.addSpecifiedPersistentAttribute(MappingKeys.MANY_TO_MANY_ATTRIBUTE_MAPPING_KEY, "manyToMany");
-		
-		ManyToManyMapping manyToManyMapping = (ManyToManyMapping) ormPersistentAttribute.getMapping();
-		assertFalse(manyToManyMapping.isDefault());
-		manyToManyMapping.setSpecifiedFetch(FetchType.EAGER);
-		manyToManyMapping.setSpecifiedTargetEntity("TargetEntity");
-		manyToManyMapping.setOrderBy("customOrder");
-		manyToManyMapping.setMapKey("mapKey");
-		manyToManyMapping.getCascade().setAll(true);
-		manyToManyMapping.getCascade().setMerge(true);
-		manyToManyMapping.getCascade().setPersist(true);
-		manyToManyMapping.getCascade().setRefresh(true);
-		manyToManyMapping.getCascade().setRemove(true);
-		manyToManyMapping.getRelationshipReference().getJoinTableJoiningStrategy().getJoinTable().setSpecifiedName("MY_JOIN_TABLE");
-		JoinColumn joinColumn = manyToManyMapping.getRelationshipReference().getJoinTableJoiningStrategy().getJoinTable().addSpecifiedJoinColumn(0);
-		joinColumn.setSpecifiedName("name");
-		joinColumn.setSpecifiedReferencedColumnName("referenceName");
-		JoinColumn inverseJoinColumn = manyToManyMapping.getRelationshipReference().getJoinTableJoiningStrategy().getJoinTable().addSpecifiedInverseJoinColumn(0);
-		inverseJoinColumn.setSpecifiedName("inverseName");
-		inverseJoinColumn.setSpecifiedReferencedColumnName("inverseReferenceName");
-		assertFalse(manyToManyMapping.isDefault());	
-		
-		ormPersistentAttribute.setSpecifiedMappingKey(MappingKeys.ONE_TO_MANY_ATTRIBUTE_MAPPING_KEY);
-		assertEquals(1, ormPersistentType.specifiedAttributesSize());
-		assertEquals(ormPersistentAttribute, ormPersistentType.specifiedAttributes().next());
-		assertTrue(ormPersistentAttribute.getMapping() instanceof OneToManyMapping);
-		assertEquals("manyToMany", ormPersistentAttribute.getMapping().getName());
-		assertEquals(FetchType.EAGER, ((OneToManyMapping) ormPersistentAttribute.getMapping()).getSpecifiedFetch());
-		assertEquals("TargetEntity", ((OneToManyMapping) ormPersistentAttribute.getMapping()).getSpecifiedTargetEntity());
-		assertTrue(((OneToManyMapping) ormPersistentAttribute.getMapping()).getCascade().isAll());
-		assertTrue(((OneToManyMapping) ormPersistentAttribute.getMapping()).getCascade().isMerge());
-		assertTrue(((OneToManyMapping) ormPersistentAttribute.getMapping()).getCascade().isPersist());
-		assertTrue(((OneToManyMapping) ormPersistentAttribute.getMapping()).getCascade().isRefresh());
-		assertTrue(((OneToManyMapping) ormPersistentAttribute.getMapping()).getCascade().isRemove());
-		JoinTable joinTable = ((OneToManyMapping) ormPersistentAttribute.getMapping()).getRelationshipReference().getJoinTableJoiningStrategy().getJoinTable();
-		assertEquals("MY_JOIN_TABLE", joinTable.getName());
-		assertEquals("name", joinTable.joinColumns().next().getSpecifiedName());
-		assertEquals("referenceName", joinTable.joinColumns().next().getSpecifiedReferencedColumnName());
-		assertEquals("inverseName", joinTable.inverseJoinColumns().next().getSpecifiedName());
-		assertEquals("inverseReferenceName", joinTable.inverseJoinColumns().next().getSpecifiedReferencedColumnName());
-	}
-	
-	public void testManyToManyMorphToManyToOneMapping() throws Exception {
-		OrmPersistentType ormPersistentType = getEntityMappings().addPersistentType(MappingKeys.ENTITY_TYPE_MAPPING_KEY, FULLY_QUALIFIED_TYPE_NAME);
-		OrmPersistentAttribute ormPersistentAttribute = ormPersistentType.addSpecifiedPersistentAttribute(MappingKeys.MANY_TO_MANY_ATTRIBUTE_MAPPING_KEY, "manyToMany");
-		
-		ManyToManyMapping manyToManyMapping = (ManyToManyMapping) ormPersistentAttribute.getMapping();
-		assertFalse(manyToManyMapping.isDefault());
-		manyToManyMapping.setSpecifiedFetch(FetchType.EAGER);
-		manyToManyMapping.setSpecifiedTargetEntity("TargetEntity");
-		manyToManyMapping.setOrderBy("customOrder");
-		manyToManyMapping.setMapKey("mapKey");
-		manyToManyMapping.getCascade().setAll(true);
-		manyToManyMapping.getCascade().setMerge(true);
-		manyToManyMapping.getCascade().setPersist(true);
-		manyToManyMapping.getCascade().setRefresh(true);
-		manyToManyMapping.getCascade().setRemove(true);
-		assertFalse(manyToManyMapping.isDefault());	
-		
-		ormPersistentAttribute.setSpecifiedMappingKey(MappingKeys.MANY_TO_ONE_ATTRIBUTE_MAPPING_KEY);
-		assertEquals(1, ormPersistentType.specifiedAttributesSize());
-		assertEquals(ormPersistentAttribute, ormPersistentType.specifiedAttributes().next());
-		assertTrue(ormPersistentAttribute.getMapping() instanceof ManyToOneMapping);
-		assertEquals("manyToMany", ormPersistentAttribute.getMapping().getName());
-		assertEquals(FetchType.EAGER, ((ManyToOneMapping) ormPersistentAttribute.getMapping()).getSpecifiedFetch());
-		assertEquals("TargetEntity", ((ManyToOneMapping) ormPersistentAttribute.getMapping()).getSpecifiedTargetEntity());
-		assertTrue(((ManyToOneMapping) ormPersistentAttribute.getMapping()).getCascade().isAll());
-		assertTrue(((ManyToOneMapping) ormPersistentAttribute.getMapping()).getCascade().isMerge());
-		assertTrue(((ManyToOneMapping) ormPersistentAttribute.getMapping()).getCascade().isPersist());
-		assertTrue(((ManyToOneMapping) ormPersistentAttribute.getMapping()).getCascade().isRefresh());
-		assertTrue(((ManyToOneMapping) ormPersistentAttribute.getMapping()).getCascade().isRemove());
-	}
-	
-	public void testManyToManyMorphToBasicMapping() throws Exception {
-		OrmPersistentType ormPersistentType = getEntityMappings().addPersistentType(MappingKeys.ENTITY_TYPE_MAPPING_KEY, FULLY_QUALIFIED_TYPE_NAME);
-		OrmPersistentAttribute ormPersistentAttribute = ormPersistentType.addSpecifiedPersistentAttribute(MappingKeys.MANY_TO_MANY_ATTRIBUTE_MAPPING_KEY, "manyToMany");
-		
-		ManyToManyMapping manyToManyMapping = (ManyToManyMapping) ormPersistentAttribute.getMapping();
-		assertFalse(manyToManyMapping.isDefault());
-		manyToManyMapping.setSpecifiedFetch(FetchType.EAGER);
-		manyToManyMapping.setSpecifiedTargetEntity("TargetEntity");
-		manyToManyMapping.setOrderBy("customOrder");
-		manyToManyMapping.setMapKey("mapKey");
-		manyToManyMapping.getCascade().setAll(true);
-		manyToManyMapping.getCascade().setMerge(true);
-		manyToManyMapping.getCascade().setPersist(true);
-		manyToManyMapping.getCascade().setRefresh(true);
-		manyToManyMapping.getCascade().setRemove(true);
-		assertFalse(manyToManyMapping.isDefault());	
-		
-		ormPersistentAttribute.setSpecifiedMappingKey(MappingKeys.BASIC_ATTRIBUTE_MAPPING_KEY);
-		assertEquals(1, ormPersistentType.specifiedAttributesSize());
-		assertEquals(ormPersistentAttribute, ormPersistentType.specifiedAttributes().next());
-		assertTrue(ormPersistentAttribute.getMapping() instanceof BasicMapping);
-		assertEquals("manyToMany", ormPersistentAttribute.getMapping().getName());
-//TODO	assertEquals(FetchType.EAGER, ((IBasicMapping) ormPersistentAttribute.getMapping()).getSpecifiedFetch());
-	}
-}
\ No newline at end of file
diff --git a/jpa/tests/org.eclipse.jpt.core.tests/src/org/eclipse/jpt/core/tests/internal/context/orm/OrmManyToOneMappingTests.java b/jpa/tests/org.eclipse.jpt.core.tests/src/org/eclipse/jpt/core/tests/internal/context/orm/OrmManyToOneMappingTests.java
deleted file mode 100644
index 43e25d8..0000000
--- a/jpa/tests/org.eclipse.jpt.core.tests/src/org/eclipse/jpt/core/tests/internal/context/orm/OrmManyToOneMappingTests.java
+++ /dev/null
@@ -1,548 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.core.tests.internal.context.orm;
-
-import java.util.Iterator;
-import java.util.ListIterator;
-import org.eclipse.jdt.core.ICompilationUnit;
-import org.eclipse.jpt.core.JptCorePlugin;
-import org.eclipse.jpt.core.MappingKeys;
-import org.eclipse.jpt.core.context.Cascade;
-import org.eclipse.jpt.core.context.FetchType;
-import org.eclipse.jpt.core.context.orm.OrmJoinColumn;
-import org.eclipse.jpt.core.context.orm.OrmJoinColumnJoiningStrategy;
-import org.eclipse.jpt.core.context.orm.OrmManyToOneMapping;
-import org.eclipse.jpt.core.context.orm.OrmPersistentAttribute;
-import org.eclipse.jpt.core.context.orm.OrmPersistentType;
-import org.eclipse.jpt.core.resource.java.JPA;
-import org.eclipse.jpt.core.resource.orm.XmlManyToOne;
-import org.eclipse.jpt.core.resource.persistence.PersistenceFactory;
-import org.eclipse.jpt.core.resource.persistence.XmlMappingFileRef;
-import org.eclipse.jpt.core.tests.internal.context.ContextModelTestCase;
-import org.eclipse.jpt.core.tests.internal.projects.TestJavaProject.SourceWriter;
-import org.eclipse.jpt.utility.internal.iterators.ArrayIterator;
-
-@SuppressWarnings("nls")
-public class OrmManyToOneMappingTests extends ContextModelTestCase
-{
-	public OrmManyToOneMappingTests(String name) {
-		super(name);
-	}
-		
-	@Override
-	protected void setUp() throws Exception {
-		super.setUp();
-		XmlMappingFileRef mappingFileRef = PersistenceFactory.eINSTANCE.createXmlMappingFileRef();
-		mappingFileRef.setFileName(JptCorePlugin.DEFAULT_ORM_XML_FILE_PATH);
-		getXmlPersistenceUnit().getMappingFiles().add(mappingFileRef);
-		getPersistenceXmlResource().save(null);
-	}
-	
-	private ICompilationUnit createTestEntityManyToOneMapping() throws Exception {
-		return this.createTestType(new DefaultAnnotationWriter() {
-			@Override
-			public Iterator<String> imports() {
-				return new ArrayIterator<String>(JPA.ENTITY, JPA.MANY_TO_ONE, JPA.JOIN_COLUMN, JPA.FETCH_TYPE, JPA.CASCADE_TYPE);
-			}
-			@Override
-			public void appendTypeAnnotationTo(StringBuilder sb) {
-				sb.append("@Entity");
-			}
-			
-			@Override
-			public void appendIdFieldAnnotationTo(StringBuilder sb) {
-				sb.append(CR);
-				sb.append("    @ManyToOne(fetch=FetchType.LAZY, optional=false, targetEntity=Address.class, cascade={CascadeType.ALL, CascadeType.PERSIST, CascadeType.MERGE, CascadeType.REMOVE, CascadeType.REFRESH})");
-				sb.append(CR);
-				sb.append("    @JoinColumn(name=\"MY_COLUMN\", referencedColumnName=\"MY_REFERENCED_COLUMN\", unique=true, nullable=false, insertable=false, updatable=false, columnDefinition=\"COLUMN_DEFINITION\", table=\"MY_TABLE\")");
-				sb.append(CR);
-				sb.append("    private Address address;").append(CR);
-				sb.append(CR);
-				sb.append("    @Id");				
-			}
-		});
-	}	
-	
-	private void createTestTargetEntityAddress() throws Exception {
-		SourceWriter sourceWriter = new SourceWriter() {
-			public void appendSourceTo(StringBuilder sb) {
-				sb.append(CR);
-					sb.append("import ");
-					sb.append(JPA.ENTITY);
-					sb.append(";");
-					sb.append(CR);
-					sb.append("import ");
-					sb.append(JPA.ID);
-					sb.append(";");
-					sb.append(CR);
-				sb.append(CR);
-				sb.append("@Entity");
-				sb.append(CR);
-				sb.append("public class ").append("Address").append(" ");
-				sb.append("{").append(CR);
-				sb.append(CR);
-				sb.append("    @Id").append(CR);
-				sb.append("    private int id;").append(CR);
-				sb.append(CR);
-				sb.append("    private String city;").append(CR);
-				sb.append(CR);
-				sb.append("    private String state;").append(CR);
-				sb.append(CR);
-				sb.append("    private int zip;").append(CR);
-				sb.append(CR);
-				sb.append("}").append(CR);
-			}
-		};
-		this.javaProject.createCompilationUnit(PACKAGE_NAME, "Address.java", sourceWriter);
-	}	
-	
-	public void testUpdateName() throws Exception {
-		OrmPersistentType ormPersistentType = getEntityMappings().addPersistentType(MappingKeys.ENTITY_TYPE_MAPPING_KEY, "model.Foo");
-		OrmPersistentAttribute ormPersistentAttribute = ormPersistentType.addSpecifiedPersistentAttribute(MappingKeys.MANY_TO_ONE_ATTRIBUTE_MAPPING_KEY, "manyToOneMapping");
-		OrmManyToOneMapping ormManyToOneMapping = (OrmManyToOneMapping) ormPersistentAttribute.getMapping();
-		XmlManyToOne manyToOne = getXmlEntityMappings().getEntities().get(0).getAttributes().getManyToOnes().get(0);
-		
-		assertEquals("manyToOneMapping", ormManyToOneMapping.getName());
-		assertEquals("manyToOneMapping", manyToOne.getName());
-				
-		//set name in the resource model, verify context model updated
-		manyToOne.setName("newName");
-		assertEquals("newName", ormManyToOneMapping.getName());
-		assertEquals("newName", manyToOne.getName());
-	
-		//set name to null in the resource model
-		manyToOne.setName(null);
-		assertNull(ormManyToOneMapping.getName());
-		assertNull(manyToOne.getName());
-	}
-	
-	public void testModifyName() throws Exception {
-		OrmPersistentType ormPersistentType = getEntityMappings().addPersistentType(MappingKeys.ENTITY_TYPE_MAPPING_KEY, "model.Foo");
-		OrmPersistentAttribute ormPersistentAttribute = ormPersistentType.addSpecifiedPersistentAttribute(MappingKeys.MANY_TO_ONE_ATTRIBUTE_MAPPING_KEY, "manyToOneMapping");
-		OrmManyToOneMapping ormManyToOneMapping = (OrmManyToOneMapping) ormPersistentAttribute.getMapping();
-		XmlManyToOne manyToOne = getXmlEntityMappings().getEntities().get(0).getAttributes().getManyToOnes().get(0);
-		
-		assertEquals("manyToOneMapping", ormManyToOneMapping.getName());
-		assertEquals("manyToOneMapping", manyToOne.getName());
-				
-		//set name in the context model, verify resource model updated
-		ormManyToOneMapping.setName("newName");
-		assertEquals("newName", ormManyToOneMapping.getName());
-		assertEquals("newName", manyToOne.getName());
-	
-		//set name to null in the context model
-		ormManyToOneMapping.setName(null);
-		assertNull(ormManyToOneMapping.getName());
-		assertNull(manyToOne.getName());
-	}
-	
-	public void testUpdateTargetEntity() throws Exception {
-		OrmPersistentType ormPersistentType = getEntityMappings().addPersistentType(MappingKeys.ENTITY_TYPE_MAPPING_KEY, "model.Foo");
-		OrmPersistentAttribute ormPersistentAttribute = ormPersistentType.addSpecifiedPersistentAttribute(MappingKeys.MANY_TO_ONE_ATTRIBUTE_MAPPING_KEY, "manyToOneMapping");
-		OrmManyToOneMapping ormManyToOneMapping = (OrmManyToOneMapping) ormPersistentAttribute.getMapping();
-		XmlManyToOne manyToOne = getXmlEntityMappings().getEntities().get(0).getAttributes().getManyToOnes().get(0);
-		
-		assertNull(ormManyToOneMapping.getSpecifiedTargetEntity());
-		assertNull(manyToOne.getTargetEntity());
-				
-		//set target entity in the resource model, verify context model updated
-		manyToOne.setTargetEntity("newTargetEntity");
-		assertEquals("newTargetEntity", ormManyToOneMapping.getSpecifiedTargetEntity());
-		assertEquals("newTargetEntity", manyToOne.getTargetEntity());
-	
-		//set target entity to null in the resource model
-		manyToOne.setTargetEntity(null);
-		assertNull(ormManyToOneMapping.getSpecifiedTargetEntity());
-		assertNull(manyToOne.getTargetEntity());
-	}
-	
-	public void testModifyTargetEntity() throws Exception {
-		OrmPersistentType ormPersistentType = getEntityMappings().addPersistentType(MappingKeys.ENTITY_TYPE_MAPPING_KEY, "model.Foo");
-		OrmPersistentAttribute ormPersistentAttribute = ormPersistentType.addSpecifiedPersistentAttribute(MappingKeys.MANY_TO_ONE_ATTRIBUTE_MAPPING_KEY, "manyToOneMapping");
-		OrmManyToOneMapping ormManyToOneMapping = (OrmManyToOneMapping) ormPersistentAttribute.getMapping();
-		XmlManyToOne manyToOne = getXmlEntityMappings().getEntities().get(0).getAttributes().getManyToOnes().get(0);
-		
-		assertNull(ormManyToOneMapping.getSpecifiedTargetEntity());
-		assertNull(manyToOne.getTargetEntity());
-				
-		//set target entity in the context model, verify resource model updated
-		ormManyToOneMapping.setSpecifiedTargetEntity("newTargetEntity");
-		assertEquals("newTargetEntity", ormManyToOneMapping.getSpecifiedTargetEntity());
-		assertEquals("newTargetEntity", manyToOne.getTargetEntity());
-	
-		//set target entity to null in the context model
-		ormManyToOneMapping.setSpecifiedTargetEntity(null);
-		assertNull(ormManyToOneMapping.getSpecifiedTargetEntity());
-		assertNull(manyToOne.getTargetEntity());
-	}
-	
-	public void testUpdateSpecifiedFetch() throws Exception {
-		OrmPersistentType ormPersistentType = getEntityMappings().addPersistentType(MappingKeys.ENTITY_TYPE_MAPPING_KEY, "model.Foo");
-		OrmPersistentAttribute ormPersistentAttribute = ormPersistentType.addSpecifiedPersistentAttribute(MappingKeys.MANY_TO_ONE_ATTRIBUTE_MAPPING_KEY, "manyToOneMapping");
-		OrmManyToOneMapping ormManyToOneMapping = (OrmManyToOneMapping) ormPersistentAttribute.getMapping();
-		XmlManyToOne manyToOneResource = getXmlEntityMappings().getEntities().get(0).getAttributes().getManyToOnes().get(0);
-		
-		assertNull(ormManyToOneMapping.getSpecifiedFetch());
-		assertNull(manyToOneResource.getFetch());
-				
-		//set fetch in the resource model, verify context model updated
-		manyToOneResource.setFetch(org.eclipse.jpt.core.resource.orm.FetchType.EAGER);
-		assertEquals(FetchType.EAGER, ormManyToOneMapping.getSpecifiedFetch());
-		assertEquals(org.eclipse.jpt.core.resource.orm.FetchType.EAGER, manyToOneResource.getFetch());
-	
-		manyToOneResource.setFetch(org.eclipse.jpt.core.resource.orm.FetchType.LAZY);
-		assertEquals(FetchType.LAZY, ormManyToOneMapping.getSpecifiedFetch());
-		assertEquals(org.eclipse.jpt.core.resource.orm.FetchType.LAZY, manyToOneResource.getFetch());
-
-		//set fetch to null in the resource model
-		manyToOneResource.setFetch(null);
-		assertNull(ormManyToOneMapping.getSpecifiedFetch());
-		assertNull(manyToOneResource.getFetch());
-	}
-	
-	public void testModifySpecifiedFetch() throws Exception {
-		OrmPersistentType ormPersistentType = getEntityMappings().addPersistentType(MappingKeys.ENTITY_TYPE_MAPPING_KEY, "model.Foo");
-		OrmPersistentAttribute ormPersistentAttribute = ormPersistentType.addSpecifiedPersistentAttribute(MappingKeys.MANY_TO_ONE_ATTRIBUTE_MAPPING_KEY, "manyToOneMapping");
-		OrmManyToOneMapping ormManyToOneMapping = (OrmManyToOneMapping) ormPersistentAttribute.getMapping();
-		XmlManyToOne manyToOneResource = getXmlEntityMappings().getEntities().get(0).getAttributes().getManyToOnes().get(0);
-		
-		assertNull(ormManyToOneMapping.getSpecifiedFetch());
-		assertNull(manyToOneResource.getFetch());
-				
-		//set fetch in the context model, verify resource model updated
-		ormManyToOneMapping.setSpecifiedFetch(FetchType.EAGER);
-		assertEquals(org.eclipse.jpt.core.resource.orm.FetchType.EAGER, manyToOneResource.getFetch());
-		assertEquals(FetchType.EAGER, ormManyToOneMapping.getSpecifiedFetch());
-	
-		ormManyToOneMapping.setSpecifiedFetch(FetchType.LAZY);
-		assertEquals(org.eclipse.jpt.core.resource.orm.FetchType.LAZY, manyToOneResource.getFetch());
-		assertEquals(FetchType.LAZY, ormManyToOneMapping.getSpecifiedFetch());
-
-		//set fetch to null in the context model
-		ormManyToOneMapping.setSpecifiedFetch(null);
-		assertNull(manyToOneResource.getFetch());
-		assertNull(ormManyToOneMapping.getSpecifiedFetch());
-	}
-	
-	public void testUpdateSpecifiedOptional() throws Exception {
-		OrmPersistentType ormPersistentType = getEntityMappings().addPersistentType(MappingKeys.ENTITY_TYPE_MAPPING_KEY, "model.Foo");
-		OrmPersistentAttribute ormPersistentAttribute = ormPersistentType.addSpecifiedPersistentAttribute(MappingKeys.MANY_TO_ONE_ATTRIBUTE_MAPPING_KEY, "manyToOneMapping");
-		OrmManyToOneMapping ormManyToOneMapping = (OrmManyToOneMapping) ormPersistentAttribute.getMapping();
-		XmlManyToOne manyToOneResource = getXmlEntityMappings().getEntities().get(0).getAttributes().getManyToOnes().get(0);
-		
-		assertNull(ormManyToOneMapping.getSpecifiedOptional());
-		assertNull(manyToOneResource.getOptional());
-				
-		//set optional in the resource model, verify context model updated
-		manyToOneResource.setOptional(Boolean.TRUE);
-		assertEquals(Boolean.TRUE, ormManyToOneMapping.getSpecifiedOptional());
-		assertEquals(Boolean.TRUE, manyToOneResource.getOptional());
-	
-		manyToOneResource.setOptional(Boolean.FALSE);
-		assertEquals(Boolean.FALSE, ormManyToOneMapping.getSpecifiedOptional());
-		assertEquals(Boolean.FALSE, manyToOneResource.getOptional());
-
-		//set optional to null in the resource model
-		manyToOneResource.setOptional(null);
-		assertNull(ormManyToOneMapping.getSpecifiedOptional());
-		assertNull(manyToOneResource.getOptional());
-	}
-	
-	public void testModifySpecifiedOptional() throws Exception {
-		OrmPersistentType ormPersistentType = getEntityMappings().addPersistentType(MappingKeys.ENTITY_TYPE_MAPPING_KEY, "model.Foo");
-		OrmPersistentAttribute ormPersistentAttribute = ormPersistentType.addSpecifiedPersistentAttribute(MappingKeys.MANY_TO_ONE_ATTRIBUTE_MAPPING_KEY, "manyToOneMapping");
-		OrmManyToOneMapping ormManyToOneMapping = (OrmManyToOneMapping) ormPersistentAttribute.getMapping();
-		XmlManyToOne manyToOneResource = getXmlEntityMappings().getEntities().get(0).getAttributes().getManyToOnes().get(0);
-		
-		assertNull(ormManyToOneMapping.getSpecifiedOptional());
-		assertNull(manyToOneResource.getOptional());
-				
-		//set optional in the context model, verify resource model updated
-		ormManyToOneMapping.setSpecifiedOptional(Boolean.TRUE);
-		assertEquals(Boolean.TRUE, manyToOneResource.getOptional());
-		assertEquals(Boolean.TRUE, ormManyToOneMapping.getSpecifiedOptional());
-	
-		ormManyToOneMapping.setSpecifiedOptional(Boolean.FALSE);
-		assertEquals(Boolean.FALSE, manyToOneResource.getOptional());
-		assertEquals(Boolean.FALSE, ormManyToOneMapping.getSpecifiedOptional());
-
-		//set optional to null in the context model
-		ormManyToOneMapping.setSpecifiedOptional(null);
-		assertNull(manyToOneResource.getOptional());
-		assertNull(ormManyToOneMapping.getSpecifiedOptional());
-	}
-	
-	public void testAddSpecifiedJoinColumn() throws Exception {
-		OrmPersistentType ormPersistentType = getEntityMappings().addPersistentType(MappingKeys.ENTITY_TYPE_MAPPING_KEY, "model.Foo");
-		OrmPersistentAttribute ormPersistentAttribute = ormPersistentType.addSpecifiedPersistentAttribute(MappingKeys.MANY_TO_ONE_ATTRIBUTE_MAPPING_KEY, "manyToOneMapping");
-		OrmManyToOneMapping ormManyToOneMapping = (OrmManyToOneMapping) ormPersistentAttribute.getMapping();
-		OrmJoinColumnJoiningStrategy strategy = ormManyToOneMapping.getRelationshipReference().getJoinColumnJoiningStrategy();
-		XmlManyToOne manyToOneResource = getXmlEntityMappings().getEntities().get(0).getAttributes().getManyToOnes().get(0);
-		
-		OrmJoinColumn joinColumn = strategy.addSpecifiedJoinColumn(0);
-		joinColumn.setSpecifiedName("FOO");
-				
-		assertEquals("FOO", manyToOneResource.getJoinColumns().get(0).getName());
-		
-		OrmJoinColumn joinColumn2 = strategy.addSpecifiedJoinColumn(0);
-		joinColumn2.setSpecifiedName("BAR");
-		
-		assertEquals("BAR", manyToOneResource.getJoinColumns().get(0).getName());
-		assertEquals("FOO", manyToOneResource.getJoinColumns().get(1).getName());
-		
-		OrmJoinColumn joinColumn3 = strategy.addSpecifiedJoinColumn(1);
-		joinColumn3.setSpecifiedName("BAZ");
-		
-		assertEquals("BAR", manyToOneResource.getJoinColumns().get(0).getName());
-		assertEquals("BAZ", manyToOneResource.getJoinColumns().get(1).getName());
-		assertEquals("FOO", manyToOneResource.getJoinColumns().get(2).getName());
-		
-		ListIterator<OrmJoinColumn> joinColumns = strategy.specifiedJoinColumns();
-		assertEquals(joinColumn2, joinColumns.next());
-		assertEquals(joinColumn3, joinColumns.next());
-		assertEquals(joinColumn, joinColumns.next());
-		
-		joinColumns = strategy.specifiedJoinColumns();
-		assertEquals("BAR", joinColumns.next().getName());
-		assertEquals("BAZ", joinColumns.next().getName());
-		assertEquals("FOO", joinColumns.next().getName());
-	}
-	
-	public void testRemoveSpecifiedJoinColumn() throws Exception {
-		OrmPersistentType ormPersistentType = getEntityMappings().addPersistentType(MappingKeys.ENTITY_TYPE_MAPPING_KEY, "model.Foo");
-		OrmPersistentAttribute ormPersistentAttribute = ormPersistentType.addSpecifiedPersistentAttribute(MappingKeys.MANY_TO_ONE_ATTRIBUTE_MAPPING_KEY, "manyToOneMapping");
-		OrmManyToOneMapping ormManyToOneMapping = (OrmManyToOneMapping) ormPersistentAttribute.getMapping();
-		OrmJoinColumnJoiningStrategy strategy = ormManyToOneMapping.getRelationshipReference().getJoinColumnJoiningStrategy();
-		XmlManyToOne manyToOneResource = getXmlEntityMappings().getEntities().get(0).getAttributes().getManyToOnes().get(0);
-
-		strategy.addSpecifiedJoinColumn(0).setSpecifiedName("FOO");
-		strategy.addSpecifiedJoinColumn(1).setSpecifiedName("BAR");
-		strategy.addSpecifiedJoinColumn(2).setSpecifiedName("BAZ");
-		
-		assertEquals(3, manyToOneResource.getJoinColumns().size());
-		
-		strategy.removeSpecifiedJoinColumn(0);
-		assertEquals(2, manyToOneResource.getJoinColumns().size());
-		assertEquals("BAR", manyToOneResource.getJoinColumns().get(0).getName());
-		assertEquals("BAZ", manyToOneResource.getJoinColumns().get(1).getName());
-
-		strategy.removeSpecifiedJoinColumn(0);
-		assertEquals(1, manyToOneResource.getJoinColumns().size());
-		assertEquals("BAZ", manyToOneResource.getJoinColumns().get(0).getName());
-		
-		strategy.removeSpecifiedJoinColumn(0);
-		assertEquals(0, manyToOneResource.getJoinColumns().size());
-	}
-	
-	public void testMoveSpecifiedJoinColumn() throws Exception {
-		OrmPersistentType ormPersistentType = getEntityMappings().addPersistentType(MappingKeys.ENTITY_TYPE_MAPPING_KEY, "model.Foo");
-		OrmPersistentAttribute ormPersistentAttribute = ormPersistentType.addSpecifiedPersistentAttribute(MappingKeys.MANY_TO_ONE_ATTRIBUTE_MAPPING_KEY, "manyToOneMapping");
-		OrmManyToOneMapping ormManyToOneMapping = (OrmManyToOneMapping) ormPersistentAttribute.getMapping();
-		OrmJoinColumnJoiningStrategy strategy = ormManyToOneMapping.getRelationshipReference().getJoinColumnJoiningStrategy();
-		XmlManyToOne manyToOneResource = getXmlEntityMappings().getEntities().get(0).getAttributes().getManyToOnes().get(0);
-
-		strategy.addSpecifiedJoinColumn(0).setSpecifiedName("FOO");
-		strategy.addSpecifiedJoinColumn(1).setSpecifiedName("BAR");
-		strategy.addSpecifiedJoinColumn(2).setSpecifiedName("BAZ");
-		
-		assertEquals(3, manyToOneResource.getJoinColumns().size());
-		
-		
-		strategy.moveSpecifiedJoinColumn(2, 0);
-		ListIterator<OrmJoinColumn> joinColumns = strategy.specifiedJoinColumns();
-		assertEquals("BAR", joinColumns.next().getName());
-		assertEquals("BAZ", joinColumns.next().getName());
-		assertEquals("FOO", joinColumns.next().getName());
-
-		assertEquals("BAR", manyToOneResource.getJoinColumns().get(0).getName());
-		assertEquals("BAZ", manyToOneResource.getJoinColumns().get(1).getName());
-		assertEquals("FOO", manyToOneResource.getJoinColumns().get(2).getName());
-
-
-		strategy.moveSpecifiedJoinColumn(0, 1);
-		joinColumns = strategy.specifiedJoinColumns();
-		assertEquals("BAZ", joinColumns.next().getName());
-		assertEquals("BAR", joinColumns.next().getName());
-		assertEquals("FOO", joinColumns.next().getName());
-
-		assertEquals("BAZ", manyToOneResource.getJoinColumns().get(0).getName());
-		assertEquals("BAR", manyToOneResource.getJoinColumns().get(1).getName());
-		assertEquals("FOO", manyToOneResource.getJoinColumns().get(2).getName());
-	}
-	
-	
-	public void testManyToOneMappingNoUnderylingJavaAttribute() throws Exception {
-		createTestEntityManyToOneMapping();
-		createTestTargetEntityAddress();
-
-		OrmPersistentType ormPersistentType = getEntityMappings().addPersistentType(MappingKeys.ENTITY_TYPE_MAPPING_KEY, FULLY_QUALIFIED_TYPE_NAME);
-		getEntityMappings().addPersistentType(MappingKeys.ENTITY_TYPE_MAPPING_KEY, PACKAGE_NAME + ".Address");
-		ormPersistentType.addSpecifiedPersistentAttribute(MappingKeys.MANY_TO_ONE_ATTRIBUTE_MAPPING_KEY, "foo");
-		assertEquals(3, ormPersistentType.virtualAttributesSize());
-		
-		OrmPersistentAttribute ormPersistentAttribute = ormPersistentType.specifiedAttributes().next();
-		OrmManyToOneMapping ormManyToOneMapping = (OrmManyToOneMapping) ormPersistentAttribute.getMapping();
-		OrmJoinColumnJoiningStrategy strategy = ormManyToOneMapping.getRelationshipReference().getJoinColumnJoiningStrategy();
-		
-		assertEquals("foo", ormManyToOneMapping.getName());
-
-		assertNull(ormManyToOneMapping.getSpecifiedFetch());
-		assertNull(ormManyToOneMapping.getSpecifiedOptional());
-		assertNull(ormManyToOneMapping.getSpecifiedTargetEntity());
-		assertEquals(FetchType.EAGER, ormManyToOneMapping.getFetch());
-		assertEquals(true, ormManyToOneMapping.isOptional());
-		assertNull(ormManyToOneMapping.getTargetEntity());
-
-		
-		assertFalse(strategy.specifiedJoinColumns().hasNext());
-		//TODO default joinColumns
-		//assertTrue(ormManyToOneMapping.defaultJoinColumns().hasNext());
-	
-	
-		Cascade cascade = ormManyToOneMapping.getCascade();
-		assertFalse(cascade.isAll());
-		assertFalse(cascade.isMerge());
-		assertFalse(cascade.isPersist());
-		assertFalse(cascade.isRemove());
-		assertFalse(cascade.isRefresh());
-	}
-	
-	public void testVirtualMappingMetadataCompleteFalse() throws Exception {
-		createTestEntityManyToOneMapping();
-		createTestTargetEntityAddress();
-
-		OrmPersistentType ormPersistentType = getEntityMappings().addPersistentType(MappingKeys.ENTITY_TYPE_MAPPING_KEY, FULLY_QUALIFIED_TYPE_NAME);
-		getEntityMappings().addPersistentType(MappingKeys.ENTITY_TYPE_MAPPING_KEY, PACKAGE_NAME + ".Address");
-		assertEquals(3, ormPersistentType.virtualAttributesSize());		
-		OrmPersistentAttribute ormPersistentAttribute = ormPersistentType.virtualAttributes().next();
-		
-		OrmManyToOneMapping ormManyToOneMapping = (OrmManyToOneMapping) ormPersistentAttribute.getMapping();	
-		assertEquals("address", ormManyToOneMapping.getName());
-		assertEquals(FetchType.LAZY, ormManyToOneMapping.getSpecifiedFetch());
-		assertEquals(Boolean.FALSE, ormManyToOneMapping.getSpecifiedOptional());
-		assertEquals("Address", ormManyToOneMapping.getSpecifiedTargetEntity());
-
-		OrmJoinColumn ormJoinColumn = ormManyToOneMapping.getRelationshipReference().getJoinColumnJoiningStrategy().specifiedJoinColumns().next();
-		assertEquals("MY_COLUMN", ormJoinColumn.getSpecifiedName());
-		assertEquals("MY_REFERENCED_COLUMN", ormJoinColumn.getSpecifiedReferencedColumnName());
-		assertEquals(Boolean.TRUE, ormJoinColumn.getSpecifiedUnique());
-		assertEquals(Boolean.FALSE, ormJoinColumn.getSpecifiedNullable());
-		assertEquals(Boolean.FALSE, ormJoinColumn.getSpecifiedInsertable());
-		assertEquals(Boolean.FALSE, ormJoinColumn.getSpecifiedUpdatable());
-		assertEquals("COLUMN_DEFINITION", ormJoinColumn.getColumnDefinition());
-		assertEquals("MY_TABLE", ormJoinColumn.getSpecifiedTable());
-
-		Cascade cascade = ormManyToOneMapping.getCascade();
-		assertTrue(cascade.isAll());
-		assertTrue(cascade.isMerge());
-		assertTrue(cascade.isPersist());
-		assertTrue(cascade.isRemove());
-		assertTrue(cascade.isRefresh());
-	}
-	
-	public void testVirtualMappingMetadataCompleteTrue() throws Exception {
-		createTestEntityManyToOneMapping();
-		createTestTargetEntityAddress();
-
-		OrmPersistentType ormPersistentType = getEntityMappings().addPersistentType(MappingKeys.ENTITY_TYPE_MAPPING_KEY, FULLY_QUALIFIED_TYPE_NAME);
-		getEntityMappings().addPersistentType(MappingKeys.ENTITY_TYPE_MAPPING_KEY, PACKAGE_NAME + ".Address");
-		ormPersistentType.getMapping().setSpecifiedMetadataComplete(Boolean.TRUE);
-		assertEquals(3, ormPersistentType.virtualAttributesSize());		
-		OrmPersistentAttribute ormPersistentAttribute = ormPersistentType.virtualAttributes().next();
-		
-		assertEquals(MappingKeys.NULL_ATTRIBUTE_MAPPING_KEY, ormPersistentAttribute.getMappingKey());
-		
-		ormPersistentAttribute.makeSpecified(MappingKeys.MANY_TO_ONE_ATTRIBUTE_MAPPING_KEY);
-		ormPersistentAttribute= ormPersistentType.specifiedAttributes().next();
-		
-		OrmManyToOneMapping ormManyToOneMapping = (OrmManyToOneMapping) ormPersistentAttribute.getMapping();	
-		assertEquals("address", ormManyToOneMapping.getName());
-		assertEquals(FetchType.EAGER, ormManyToOneMapping.getDefaultFetch());
-		assertEquals(true, ormManyToOneMapping.isDefaultOptional());
-		//TODO hmm, is this correct?
-		assertEquals("test.Address", ormManyToOneMapping.getDefaultTargetEntity());
-		
-		//TODO default join columns in xml one-to-one
-//		XmlJoinColumn ormJoinColumn = ormManyToOneMapping.specifiedJoinColumns().next();
-//		//TODO java default columns name in JavaSingleRelationshipMapping.JoinColumnOwner
-//		//assertEquals("address", ormJoinColumn.getSpecifiedName());
-//		//assertEquals("address", ormJoinColumn.getSpecifiedReferencedColumnName());
-//		assertEquals(Boolean.FALSE, ormJoinColumn.getSpecifiedUnique());
-//		assertEquals(Boolean.TRUE, ormJoinColumn.getSpecifiedNullable());
-//		assertEquals(Boolean.TRUE, ormJoinColumn.getSpecifiedInsertable());
-//		assertEquals(Boolean.TRUE, ormJoinColumn.getSpecifiedUpdatable());
-//		assertNull(ormJoinColumn.getColumnDefinition());
-//		assertEquals(TYPE_NAME, ormJoinColumn.getSpecifiedTable());
-
-		Cascade cascade = ormManyToOneMapping.getCascade();
-		assertFalse(cascade.isAll());
-		assertFalse(cascade.isMerge());
-		assertFalse(cascade.isPersist());
-		assertFalse(cascade.isRemove());
-		assertFalse(cascade.isRefresh());
-	}
-	
-	public void testSpecifiedMapping() throws Exception {
-		createTestEntityManyToOneMapping();
-		createTestTargetEntityAddress();
-
-		OrmPersistentType ormPersistentType = getEntityMappings().addPersistentType(MappingKeys.ENTITY_TYPE_MAPPING_KEY, FULLY_QUALIFIED_TYPE_NAME);
-		getEntityMappings().addPersistentType(MappingKeys.ENTITY_TYPE_MAPPING_KEY, PACKAGE_NAME + ".Address");
-
-		ormPersistentType.addSpecifiedPersistentAttribute(MappingKeys.MANY_TO_ONE_ATTRIBUTE_MAPPING_KEY, "address");
-		assertEquals(2, ormPersistentType.virtualAttributesSize());
-		
-		OrmPersistentAttribute ormPersistentAttribute = ormPersistentType.specifiedAttributes().next();
-		OrmManyToOneMapping ormManyToOneMapping = (OrmManyToOneMapping) ormPersistentAttribute.getMapping();
-		
-		assertEquals("address", ormManyToOneMapping.getName());
-		assertNull(ormManyToOneMapping.getSpecifiedFetch());
-		assertNull(ormManyToOneMapping.getSpecifiedOptional());
-		assertNull(ormManyToOneMapping.getSpecifiedTargetEntity());
-		assertEquals(FetchType.EAGER, ormManyToOneMapping.getFetch());
-		assertEquals(true, ormManyToOneMapping.isOptional());
-		assertEquals("test.Address", ormManyToOneMapping.getDefaultTargetEntity());
-		
-		assertFalse(ormManyToOneMapping.getRelationshipReference().getJoinColumnJoiningStrategy().specifiedJoinColumns().hasNext());
-		
-		//TODO default join columns for specified xmlManyToOne mapping
-//		XmlJoinColumn ormJoinColumn = ormManyToOneMapping.defaultJoinColumns().next();
-//		assertNull(ormJoinColumn.getSpecifiedName());
-//		assertNull(ormJoinColumn.getSpecifiedReferencedColumnName());
-//		assertNull(ormJoinColumn.getSpecifiedUnique());
-//		assertNull(ormJoinColumn.getSpecifiedNullable());
-//		assertNull(ormJoinColumn.getSpecifiedInsertable());
-//		assertNull(ormJoinColumn.getSpecifiedUpdatable());
-//		assertNull(ormJoinColumn.getColumnDefinition());
-//		assertNull(ormJoinColumn.getSpecifiedTable());
-//		
-//		assertEquals("address", ormJoinColumn.getDefaultName());
-//		assertEquals("address", ormJoinColumn.getDefaultReferencedColumnName());
-//		assertEquals(Boolean.FALSE, ormJoinColumn.getDefaultUnique());
-//		assertEquals(Boolean.TRUE, ormJoinColumn.getDefaultNullable());
-//		assertEquals(Boolean.TRUE, ormJoinColumn.getDefaultInsertable());
-//		assertEquals(Boolean.TRUE, ormJoinColumn.getDefaultUpdatable());
-//		assertEquals(null, ormJoinColumn.getColumnDefinition());
-//		assertEquals(TYPE_NAME, ormJoinColumn.getDefaultTable());
-
-		Cascade cascade = ormManyToOneMapping.getCascade();
-		assertFalse(cascade.isAll());
-		assertFalse(cascade.isMerge());
-		assertFalse(cascade.isPersist());
-		assertFalse(cascade.isRemove());
-		assertFalse(cascade.isRefresh());
-	}
-	
-	//3 things tested above
-	//1. virtual mapping metadata complete=false - defaults are taken from the java annotations
-	//2. virtual mapping metadata complete=true - defaults are taken from java defaults,annotations ignored
-	//3. specified mapping (metadata complete=true/false - defaults are taken from java annotations
-
-}
\ No newline at end of file
diff --git a/jpa/tests/org.eclipse.jpt.core.tests/src/org/eclipse/jpt/core/tests/internal/context/orm/OrmMappedSuperclassTests.java b/jpa/tests/org.eclipse.jpt.core.tests/src/org/eclipse/jpt/core/tests/internal/context/orm/OrmMappedSuperclassTests.java
deleted file mode 100644
index ba21405..0000000
--- a/jpa/tests/org.eclipse.jpt.core.tests/src/org/eclipse/jpt/core/tests/internal/context/orm/OrmMappedSuperclassTests.java
+++ /dev/null
@@ -1,345 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.core.tests.internal.context.orm;
-
-import java.util.ListIterator;
-import org.eclipse.jpt.core.JptCorePlugin;
-import org.eclipse.jpt.core.MappingKeys;
-import org.eclipse.jpt.core.context.AccessType;
-import org.eclipse.jpt.core.context.orm.OrmEmbeddable;
-import org.eclipse.jpt.core.context.orm.OrmEntity;
-import org.eclipse.jpt.core.context.orm.OrmMappedSuperclass;
-import org.eclipse.jpt.core.context.orm.OrmPersistentType;
-import org.eclipse.jpt.core.resource.orm.OrmFactory;
-import org.eclipse.jpt.core.resource.orm.XmlEmbeddable;
-import org.eclipse.jpt.core.resource.orm.XmlEntity;
-import org.eclipse.jpt.core.resource.orm.XmlMappedSuperclass;
-import org.eclipse.jpt.core.resource.persistence.PersistenceFactory;
-import org.eclipse.jpt.core.resource.persistence.XmlMappingFileRef;
-import org.eclipse.jpt.core.tests.internal.context.ContextModelTestCase;
-
-@SuppressWarnings("nls")
-public class OrmMappedSuperclassTests extends ContextModelTestCase
-{
-	public OrmMappedSuperclassTests(String name) {
-		super(name);
-	}
-	
-	
-	@Override
-	protected void setUp() throws Exception {
-		super.setUp();
-		XmlMappingFileRef mappingFileRef = PersistenceFactory.eINSTANCE.createXmlMappingFileRef();
-		mappingFileRef.setFileName(JptCorePlugin.DEFAULT_ORM_XML_FILE_PATH);
-		getXmlPersistenceUnit().getMappingFiles().add(mappingFileRef);
-		getPersistenceXmlResource().save(null);
-	}
-	
-	public void testUpdateClass() throws Exception {
-		OrmPersistentType ormPersistentType = getEntityMappings().addPersistentType(MappingKeys.MAPPED_SUPERCLASS_TYPE_MAPPING_KEY, "model.Foo");
-		OrmMappedSuperclass ormMappedSuperclass = (OrmMappedSuperclass) ormPersistentType.getMapping();
-		XmlMappedSuperclass mappedSuperclassResource = getXmlEntityMappings().getMappedSuperclasses().get(0);
-		assertEquals("model.Foo", ormMappedSuperclass.getClass_());
-		assertEquals("model.Foo", mappedSuperclassResource.getClassName());
-		
-		//set class in the resource model, verify context model updated
-		mappedSuperclassResource.setClassName("com.Bar");
-		assertEquals("com.Bar", ormMappedSuperclass.getClass_());
-		assertEquals("com.Bar", mappedSuperclassResource.getClassName());
-	
-		//set class to null in the resource model
-		mappedSuperclassResource.setClassName(null);
-		assertNull(ormMappedSuperclass.getClass_());
-		assertNull(mappedSuperclassResource.getClassName());
-	}
-	
-	public void testModifyClass() throws Exception {
-		OrmPersistentType ormPersistentType = getEntityMappings().addPersistentType(MappingKeys.MAPPED_SUPERCLASS_TYPE_MAPPING_KEY, "model.Foo");
-		OrmMappedSuperclass ormMappedSuperclass = (OrmMappedSuperclass) ormPersistentType.getMapping();
-		XmlMappedSuperclass mappedSuperclassResource = getXmlEntityMappings().getMappedSuperclasses().get(0);
-		assertEquals("model.Foo", ormMappedSuperclass.getClass_());
-		assertEquals("model.Foo", mappedSuperclassResource.getClassName());
-		
-		//set class in the context model, verify resource model modified
-		ormMappedSuperclass.setClass("com.Bar");
-		assertEquals("com.Bar", ormMappedSuperclass.getClass_());
-		assertEquals("com.Bar", mappedSuperclassResource.getClassName());
-		
-		//set class to null in the context model
-		ormMappedSuperclass.setClass(null);
-		assertNull(ormMappedSuperclass.getClass_());
-		assertNull(mappedSuperclassResource.getClassName());
-	}
-	//TODO add tests for setting the className when the package is set on entity-mappings
-	
-	public void testUpdateSpecifiedAccess() throws Exception {
-		OrmPersistentType ormPersistentType = getEntityMappings().addPersistentType(MappingKeys.MAPPED_SUPERCLASS_TYPE_MAPPING_KEY, "model.Foo");
-		XmlMappedSuperclass mappedSuperclassResource = getXmlEntityMappings().getMappedSuperclasses().get(0);
-		assertNull(ormPersistentType.getSpecifiedAccess());
-		assertNull(mappedSuperclassResource.getAccess());
-		
-		//set access in the resource model, verify context model updated
-		mappedSuperclassResource.setAccess(org.eclipse.jpt.core.resource.orm.AccessType.FIELD);
-		assertEquals(AccessType.FIELD, ormPersistentType.getSpecifiedAccess());
-		assertEquals(org.eclipse.jpt.core.resource.orm.AccessType.FIELD, mappedSuperclassResource.getAccess());
-	
-		//set access to null in the resource model
-		mappedSuperclassResource.setAccess(null);
-		assertNull(ormPersistentType.getSpecifiedAccess());
-		assertNull(mappedSuperclassResource.getAccess());
-	}
-	
-	public void testModifySpecifiedAccess() throws Exception {
-		OrmPersistentType ormPersistentType = getEntityMappings().addPersistentType(MappingKeys.MAPPED_SUPERCLASS_TYPE_MAPPING_KEY, "model.Foo");
-		XmlMappedSuperclass mappedSuperclassResource = getXmlEntityMappings().getMappedSuperclasses().get(0);
-		assertNull(ormPersistentType.getSpecifiedAccess());
-		assertNull(mappedSuperclassResource.getAccess());
-		
-		//set access in the context model, verify resource model modified
-		ormPersistentType.setSpecifiedAccess(AccessType.PROPERTY);
-		assertEquals(AccessType.PROPERTY, ormPersistentType.getSpecifiedAccess());
-		assertEquals(org.eclipse.jpt.core.resource.orm.AccessType.PROPERTY, mappedSuperclassResource.getAccess());
-		
-		//set access to null in the context model
-		ormPersistentType.setSpecifiedAccess(null);
-		assertNull(ormPersistentType.getSpecifiedAccess());
-		assertNull(mappedSuperclassResource.getAccess());
-	}
-	//TODO test default access from
-		//underlying java
-		//persistence-unit-defaults
-		//entity-mappings
-		//with xml-mapping-metadata-complete set
-	
-	public void testUpdateSpecifiedMetadataComplete() throws Exception {
-		OrmPersistentType ormPersistentType = getEntityMappings().addPersistentType(MappingKeys.MAPPED_SUPERCLASS_TYPE_MAPPING_KEY, "model.Foo");
-		OrmMappedSuperclass ormMappedSuperclass = (OrmMappedSuperclass) ormPersistentType.getMapping();
-		XmlMappedSuperclass mappedSuperclassResource = getXmlEntityMappings().getMappedSuperclasses().get(0);
-		assertNull(ormMappedSuperclass.getSpecifiedMetadataComplete());
-		assertNull(mappedSuperclassResource.getMetadataComplete());
-		
-		//set metadata-complete in the resource model, verify context model updated
-		mappedSuperclassResource.setMetadataComplete(Boolean.TRUE);
-		assertEquals(Boolean.TRUE, ormMappedSuperclass.getSpecifiedMetadataComplete());
-		assertEquals(Boolean.TRUE, mappedSuperclassResource.getMetadataComplete());
-	
-		//set access to false in the resource model
-		mappedSuperclassResource.setMetadataComplete(Boolean.FALSE);
-		assertEquals(Boolean.FALSE, ormMappedSuperclass.getSpecifiedMetadataComplete());
-		assertEquals(Boolean.FALSE, mappedSuperclassResource.getMetadataComplete());
-		
-		mappedSuperclassResource.setMetadataComplete(null);
-		assertNull(ormMappedSuperclass.getSpecifiedMetadataComplete());
-		assertNull(mappedSuperclassResource.getMetadataComplete());
-	}
-	
-	public void testModifySpecifiedMetadataComplete() throws Exception {
-		OrmPersistentType ormPersistentType = getEntityMappings().addPersistentType(MappingKeys.MAPPED_SUPERCLASS_TYPE_MAPPING_KEY, "model.Foo");
-		OrmMappedSuperclass ormMappedSuperclass = (OrmMappedSuperclass) ormPersistentType.getMapping();
-		XmlMappedSuperclass mappedSuperclassResource = getXmlEntityMappings().getMappedSuperclasses().get(0);		assertNull(ormMappedSuperclass.getSpecifiedMetadataComplete());
-		assertNull(mappedSuperclassResource.getMetadataComplete());
-		
-		//set access in the context model, verify resource model modified
-		ormMappedSuperclass.setSpecifiedMetadataComplete(Boolean.TRUE);
-		assertEquals(Boolean.TRUE, ormMappedSuperclass.getSpecifiedMetadataComplete());
-		assertEquals(Boolean.TRUE, mappedSuperclassResource.getMetadataComplete());
-		
-		//set access to null in the context model
-		ormMappedSuperclass.setSpecifiedMetadataComplete(Boolean.FALSE);
-		assertEquals(Boolean.FALSE, ormMappedSuperclass.getSpecifiedMetadataComplete());
-		assertEquals(Boolean.FALSE, mappedSuperclassResource.getMetadataComplete());
-		
-		ormMappedSuperclass.setSpecifiedMetadataComplete(null);
-		assertNull(ormMappedSuperclass.getSpecifiedMetadataComplete());
-		assertNull(mappedSuperclassResource.getMetadataComplete());
-	}
-	
-	public void testUpdateDefaultMetadataComplete() throws Exception {
-		OrmPersistentType ormPersistentType = getEntityMappings().addPersistentType(MappingKeys.MAPPED_SUPERCLASS_TYPE_MAPPING_KEY, "model.Foo");
-		OrmMappedSuperclass ormMappedSuperclass = (OrmMappedSuperclass) ormPersistentType.getMapping();
-		XmlMappedSuperclass mappedSuperclassResource = getXmlEntityMappings().getMappedSuperclasses().get(0);
-		assertNull(ormMappedSuperclass.getSpecifiedMetadataComplete());
-		assertNull(ormMappedSuperclass.getSpecifiedMetadataComplete());
-		assertFalse(ormMappedSuperclass.isDefaultMetadataComplete());
-		assertNull(mappedSuperclassResource.getMetadataComplete());
-		
-		getXmlEntityMappings().setPersistenceUnitMetadata(OrmFactory.eINSTANCE.createXmlPersistenceUnitMetadata());
-		getXmlEntityMappings().getPersistenceUnitMetadata().setXmlMappingMetadataComplete(true);
-		assertTrue(ormMappedSuperclass.isDefaultMetadataComplete());
-		assertNull(ormMappedSuperclass.getSpecifiedMetadataComplete());
-		assertNull(mappedSuperclassResource.getMetadataComplete());
-		
-		getXmlEntityMappings().getPersistenceUnitMetadata().setXmlMappingMetadataComplete(false);
-		assertNull(ormMappedSuperclass.getSpecifiedMetadataComplete());
-		assertFalse(ormMappedSuperclass.isDefaultMetadataComplete());
-		assertNull(mappedSuperclassResource.getMetadataComplete());
-	}
-	
-	public void testUpdateMetadataComplete() throws Exception {
-		OrmPersistentType ormPersistentType = getEntityMappings().addPersistentType(MappingKeys.MAPPED_SUPERCLASS_TYPE_MAPPING_KEY, "model.Foo");
-		OrmMappedSuperclass ormMappedSuperclass = (OrmMappedSuperclass) ormPersistentType.getMapping();
-		XmlMappedSuperclass mappedSuperclassResource = getXmlEntityMappings().getMappedSuperclasses().get(0);
-		assertNull(ormMappedSuperclass.getSpecifiedMetadataComplete());
-		assertNull(ormMappedSuperclass.getSpecifiedMetadataComplete());
-		assertFalse(ormMappedSuperclass.isMetadataComplete());
-		assertNull(mappedSuperclassResource.getMetadataComplete());
-		
-		getXmlEntityMappings().setPersistenceUnitMetadata(OrmFactory.eINSTANCE.createXmlPersistenceUnitMetadata());
-		getXmlEntityMappings().getPersistenceUnitMetadata().setXmlMappingMetadataComplete(true);
-		assertTrue(ormMappedSuperclass.isMetadataComplete());
-		assertNull(ormMappedSuperclass.getSpecifiedMetadataComplete());
-		assertNull(mappedSuperclassResource.getMetadataComplete());
-		
-		getXmlEntityMappings().getPersistenceUnitMetadata().setXmlMappingMetadataComplete(false);
-		assertFalse(ormMappedSuperclass.isMetadataComplete());
-		assertNull(ormMappedSuperclass.getSpecifiedMetadataComplete());
-		assertNull(mappedSuperclassResource.getMetadataComplete());
-	}
-
-	
-	public void testMakeMappedSuperclassEntity() throws Exception {
-		OrmPersistentType mappedSuperclassPersistentType = getEntityMappings().addPersistentType(MappingKeys.MAPPED_SUPERCLASS_TYPE_MAPPING_KEY, "model.Foo");
-		OrmMappedSuperclass mappedSuperclass = (OrmMappedSuperclass) mappedSuperclassPersistentType.getMapping();
-		mappedSuperclassPersistentType.setSpecifiedAccess(AccessType.PROPERTY);
-		mappedSuperclass.setSpecifiedMetadataComplete(Boolean.TRUE);
-	
-		mappedSuperclassPersistentType.setMappingKey(MappingKeys.ENTITY_TYPE_MAPPING_KEY);
-		
-		XmlEntity entity = getXmlEntityMappings().getEntities().get(0);
-		assertEquals("model.Foo", entity.getClassName());
-		assertEquals(Boolean.TRUE, entity.getMetadataComplete());
-		assertEquals(org.eclipse.jpt.core.resource.orm.AccessType.PROPERTY, entity.getAccess());
-		assertNull(entity.getDiscriminatorValue());
-		assertNull(entity.getName());
-		
-		OrmEntity ormEntity = (OrmEntity) mappedSuperclassPersistentType.getMapping();
-		assertEquals("model.Foo", ormEntity.getClass_());
-		assertEquals(Boolean.TRUE, ormEntity.getSpecifiedMetadataComplete());
-		assertEquals(AccessType.PROPERTY, mappedSuperclassPersistentType.getSpecifiedAccess());
-	}
-		
-	//test with 2 MappedSuperclasses, make the first one an Entity so it has to move to the end of the list
-	public void testMakeMappedSuperclassEntity2() throws Exception {
-		OrmPersistentType mappedSuperclassPersistentType = getEntityMappings().addPersistentType(MappingKeys.MAPPED_SUPERCLASS_TYPE_MAPPING_KEY, "model.Foo");
-		getEntityMappings().addPersistentType(MappingKeys.MAPPED_SUPERCLASS_TYPE_MAPPING_KEY, "model.Foo2");
-		OrmMappedSuperclass mappedSuperclass = (OrmMappedSuperclass) mappedSuperclassPersistentType.getMapping();
-		mappedSuperclassPersistentType.setSpecifiedAccess(AccessType.PROPERTY);
-		mappedSuperclass.setSpecifiedMetadataComplete(Boolean.TRUE);
-	
-		mappedSuperclassPersistentType.setMappingKey(MappingKeys.ENTITY_TYPE_MAPPING_KEY);
-		
-		XmlEntity entity = getXmlEntityMappings().getEntities().get(0);
-		assertEquals("model.Foo", entity.getClassName());
-		assertEquals(Boolean.TRUE, entity.getMetadataComplete());
-		assertEquals(org.eclipse.jpt.core.resource.orm.AccessType.PROPERTY, entity.getAccess());
-		assertNull(entity.getDiscriminatorValue());
-		assertNull(entity.getName());
-		
-		OrmEntity ormEntity = (OrmEntity) mappedSuperclassPersistentType.getMapping();
-		assertEquals("model.Foo", ormEntity.getClass_());
-		assertEquals(Boolean.TRUE, ormEntity.getSpecifiedMetadataComplete());
-		assertEquals(AccessType.PROPERTY, mappedSuperclassPersistentType.getSpecifiedAccess());
-		
-		ListIterator<OrmPersistentType> persistentTypes = getEntityMappings().persistentTypes();
-		assertEquals(MappingKeys.MAPPED_SUPERCLASS_TYPE_MAPPING_KEY, persistentTypes.next().getMappingKey());
-		assertEquals(MappingKeys.ENTITY_TYPE_MAPPING_KEY, persistentTypes.next().getMappingKey());
-	}
-	
-	public void testMakeMappedSuperclassEmbeddable() throws Exception {
-		OrmPersistentType mappedSuperclassPersistentType = getEntityMappings().addPersistentType(MappingKeys.MAPPED_SUPERCLASS_TYPE_MAPPING_KEY, "model.Foo");
-		OrmMappedSuperclass mappedSuperclass = (OrmMappedSuperclass) mappedSuperclassPersistentType.getMapping();
-		mappedSuperclassPersistentType.setSpecifiedAccess(AccessType.PROPERTY);
-		mappedSuperclass.setSpecifiedMetadataComplete(Boolean.TRUE);
-	
-		mappedSuperclassPersistentType.setMappingKey(MappingKeys.EMBEDDABLE_TYPE_MAPPING_KEY);
-		
-		XmlEmbeddable embeddable = getXmlEntityMappings().getEmbeddables().get(0);
-		assertEquals("model.Foo", embeddable.getClassName());
-		assertEquals(Boolean.TRUE, embeddable.getMetadataComplete());
-		assertEquals(org.eclipse.jpt.core.resource.orm.AccessType.PROPERTY, embeddable.getAccess());
-		
-		OrmEmbeddable ormEmbeddable = (OrmEmbeddable) mappedSuperclassPersistentType.getMapping();
-		assertEquals("model.Foo", ormEmbeddable.getClass_());
-		assertEquals(Boolean.TRUE, ormEmbeddable.getSpecifiedMetadataComplete());
-		assertEquals(AccessType.PROPERTY, mappedSuperclassPersistentType.getSpecifiedAccess());
-	}
-	//test with 2 MappedSuperclasses, make the first one an Embeddable so it has to move to the end of the list
-	public void testMakeMappedSuperclassEmbeddable2() throws Exception {
-		OrmPersistentType mappedSuperclassPersistentType = getEntityMappings().addPersistentType(MappingKeys.MAPPED_SUPERCLASS_TYPE_MAPPING_KEY, "model.Foo");
-		getEntityMappings().addPersistentType(MappingKeys.MAPPED_SUPERCLASS_TYPE_MAPPING_KEY, "model.Foo2");
-		OrmMappedSuperclass mappedSuperclass = (OrmMappedSuperclass) mappedSuperclassPersistentType.getMapping();
-		mappedSuperclassPersistentType.setSpecifiedAccess(AccessType.PROPERTY);
-		mappedSuperclass.setSpecifiedMetadataComplete(Boolean.TRUE);
-	
-		mappedSuperclassPersistentType.setMappingKey(MappingKeys.EMBEDDABLE_TYPE_MAPPING_KEY);
-		
-		XmlEmbeddable embeddable = getXmlEntityMappings().getEmbeddables().get(0);
-		assertEquals("model.Foo", embeddable.getClassName());
-		assertEquals(Boolean.TRUE, embeddable.getMetadataComplete());
-		assertEquals(org.eclipse.jpt.core.resource.orm.AccessType.PROPERTY, embeddable.getAccess());
-		
-		OrmEmbeddable ormEmbeddable = (OrmEmbeddable) mappedSuperclassPersistentType.getMapping();
-		assertEquals("model.Foo", ormEmbeddable.getClass_());
-		assertEquals(Boolean.TRUE, ormEmbeddable.getSpecifiedMetadataComplete());
-		assertEquals(AccessType.PROPERTY, mappedSuperclassPersistentType.getSpecifiedAccess());
-		
-		ListIterator<OrmPersistentType> persistentTypes = getEntityMappings().persistentTypes();
-		assertEquals(MappingKeys.MAPPED_SUPERCLASS_TYPE_MAPPING_KEY, persistentTypes.next().getMappingKey());
-		assertEquals(MappingKeys.EMBEDDABLE_TYPE_MAPPING_KEY, persistentTypes.next().getMappingKey());
-	}
-	
-	public void testUpdateIdClass() throws Exception {
-		OrmPersistentType ormPersistentType = getEntityMappings().addPersistentType(MappingKeys.MAPPED_SUPERCLASS_TYPE_MAPPING_KEY, "model.Foo");
-		OrmMappedSuperclass ormMappedSuperclass = (OrmMappedSuperclass) ormPersistentType.getMapping();
-		XmlMappedSuperclass mappedSuperclassResource = getXmlEntityMappings().getMappedSuperclasses().get(0);		assertNull(ormMappedSuperclass.getSpecifiedMetadataComplete());
-
-		assertNull(ormMappedSuperclass.getIdClass());
-		assertNull(mappedSuperclassResource.getIdClass());
-		
-		mappedSuperclassResource.setIdClass(OrmFactory.eINSTANCE.createXmlIdClass());
-		
-		assertNull(ormMappedSuperclass.getIdClass());
-		assertNotNull(mappedSuperclassResource.getIdClass());
-		
-		mappedSuperclassResource.getIdClass().setClassName("model.Foo");
-		assertEquals("model.Foo", ormMappedSuperclass.getIdClass());
-		assertEquals("model.Foo", mappedSuperclassResource.getIdClass().getClassName());
-		
-		//test setting  @IdClass value to null, id-class tag is not removed
-		mappedSuperclassResource.getIdClass().setClassName(null);
-		assertNull(ormMappedSuperclass.getIdClass());
-		assertNotNull(mappedSuperclassResource.getIdClass());
-		
-		//reset @IdClass value and then remove id-class tag
-		mappedSuperclassResource.setIdClass(OrmFactory.eINSTANCE.createXmlIdClass());
-		mappedSuperclassResource.getIdClass().setClassName("model.Foo");
-		mappedSuperclassResource.setIdClass(null);
-		
-		assertNull(ormMappedSuperclass.getIdClass());
-		assertNull(mappedSuperclassResource.getIdClass());
-	}
-	
-	public void testModifyIdClass() throws Exception {
-		OrmPersistentType ormPersistentType = getEntityMappings().addPersistentType(MappingKeys.MAPPED_SUPERCLASS_TYPE_MAPPING_KEY, "model.Foo");
-		OrmMappedSuperclass ormMappedSuperclass = (OrmMappedSuperclass) ormPersistentType.getMapping();
-		XmlMappedSuperclass mappedSuperclassResource = getXmlEntityMappings().getMappedSuperclasses().get(0);		assertNull(ormMappedSuperclass.getSpecifiedMetadataComplete());
-
-		assertNull(ormMappedSuperclass.getIdClass());
-		assertNull(mappedSuperclassResource.getIdClass());
-			
-		ormMappedSuperclass.setIdClass("model.Foo");
-		assertEquals("model.Foo", mappedSuperclassResource.getIdClass().getClassName());
-		assertEquals("model.Foo", ormMappedSuperclass.getIdClass());
-		
-		ormMappedSuperclass.setIdClass(null);
-		assertNull(ormMappedSuperclass.getIdClass());
-		assertNull(mappedSuperclassResource.getIdClass());
-	}
-}
\ No newline at end of file
diff --git a/jpa/tests/org.eclipse.jpt.core.tests/src/org/eclipse/jpt/core/tests/internal/context/orm/OrmNamedNativeQueryTests.java b/jpa/tests/org.eclipse.jpt.core.tests/src/org/eclipse/jpt/core/tests/internal/context/orm/OrmNamedNativeQueryTests.java
deleted file mode 100644
index 7715cf0..0000000
--- a/jpa/tests/org.eclipse.jpt.core.tests/src/org/eclipse/jpt/core/tests/internal/context/orm/OrmNamedNativeQueryTests.java
+++ /dev/null
@@ -1,358 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.core.tests.internal.context.orm;
-
-import java.util.ListIterator;
-import org.eclipse.jpt.core.JptCorePlugin;
-import org.eclipse.jpt.core.MappingKeys;
-import org.eclipse.jpt.core.context.orm.OrmEntity;
-import org.eclipse.jpt.core.context.orm.OrmNamedNativeQuery;
-import org.eclipse.jpt.core.context.orm.OrmPersistentType;
-import org.eclipse.jpt.core.context.orm.OrmQueryHint;
-import org.eclipse.jpt.core.resource.orm.OrmFactory;
-import org.eclipse.jpt.core.resource.orm.XmlNamedNativeQuery;
-import org.eclipse.jpt.core.resource.persistence.PersistenceFactory;
-import org.eclipse.jpt.core.resource.persistence.XmlMappingFileRef;
-import org.eclipse.jpt.core.tests.internal.context.ContextModelTestCase;
-
-@SuppressWarnings("nls")
-public class OrmNamedNativeQueryTests extends ContextModelTestCase
-{
-	public OrmNamedNativeQueryTests(String name) {
-		super(name);
-	}
-	
-	
-	@Override
-	protected void setUp() throws Exception {
-		super.setUp();
-		XmlMappingFileRef mappingFileRef = PersistenceFactory.eINSTANCE.createXmlMappingFileRef();
-		mappingFileRef.setFileName(JptCorePlugin.DEFAULT_ORM_XML_FILE_PATH);
-		getXmlPersistenceUnit().getMappingFiles().add(mappingFileRef);
-		getPersistenceXmlResource().save(null);
-	}
-
-	public void testUpdateName() throws Exception {
-		OrmPersistentType ormPersistentType = getEntityMappings().addPersistentType(MappingKeys.ENTITY_TYPE_MAPPING_KEY, "model.Foo");
-		OrmEntity ormEntity = (OrmEntity) ormPersistentType.getMapping();
-		OrmNamedNativeQuery ormNamedNativeQuery = ormEntity.addNamedNativeQuery(0);
-		
-		XmlNamedNativeQuery namedNativeQueryResource = getXmlEntityMappings().getEntities().get(0).getNamedNativeQueries().get(0);
-		
-		assertNull(ormNamedNativeQuery.getName());
-		assertNull(namedNativeQueryResource.getName());
-				
-		//set name in the resource model, verify context model updated
-		namedNativeQueryResource.setName("newName");
-		assertEquals("newName", ormNamedNativeQuery.getName());
-		assertEquals("newName", namedNativeQueryResource.getName());
-	
-		//set name to null in the resource model
-		namedNativeQueryResource.setName(null);
-		assertNull(ormNamedNativeQuery.getName());
-		assertNull(namedNativeQueryResource.getName());
-	}
-	
-	public void testModifyName() throws Exception {
-		OrmPersistentType ormPersistentType = getEntityMappings().addPersistentType(MappingKeys.ENTITY_TYPE_MAPPING_KEY, "model.Foo");
-		OrmEntity ormEntity = (OrmEntity) ormPersistentType.getMapping();
-		OrmNamedNativeQuery ormNamedNativeQuery = ormEntity.addNamedNativeQuery(0);
-		
-		XmlNamedNativeQuery namedNativeQueryResource = getXmlEntityMappings().getEntities().get(0).getNamedNativeQueries().get(0);
-		
-		assertNull(ormNamedNativeQuery.getName());
-		assertNull(namedNativeQueryResource.getName());
-				
-		//set name in the context model, verify resource model updated
-		ormNamedNativeQuery.setName("newName");
-		assertEquals("newName", ormNamedNativeQuery.getName());
-		assertEquals("newName", namedNativeQueryResource.getName());
-	
-		//set name to null in the context model
-		ormNamedNativeQuery.setName(null);
-		assertNull(ormNamedNativeQuery.getName());
-		assertNull(namedNativeQueryResource.getName());
-	}
-	
-	public void testUpdateQuery() throws Exception {
-		OrmPersistentType ormPersistentType = getEntityMappings().addPersistentType(MappingKeys.ENTITY_TYPE_MAPPING_KEY, "model.Foo");
-		OrmEntity ormEntity = (OrmEntity) ormPersistentType.getMapping();
-		OrmNamedNativeQuery ormNamedNativeQuery = ormEntity.addNamedNativeQuery(0);
-		
-		XmlNamedNativeQuery namedNativeQueryResource = getXmlEntityMappings().getEntities().get(0).getNamedNativeQueries().get(0);
-		
-		assertNull(ormNamedNativeQuery.getQuery());
-		assertNull(namedNativeQueryResource.getQuery());
-				
-		//set name in the resource model, verify context model updated
-		namedNativeQueryResource.setQuery("newName");
-		assertEquals("newName", ormNamedNativeQuery.getQuery());
-		assertEquals("newName", namedNativeQueryResource.getQuery());
-	
-		//set name to null in the resource model
-		namedNativeQueryResource.setQuery(null);
-		assertNull(ormNamedNativeQuery.getQuery());
-		assertNull(namedNativeQueryResource.getQuery());
-	}
-	
-	public void testModifyQuery() throws Exception {
-		OrmPersistentType ormPersistentType = getEntityMappings().addPersistentType(MappingKeys.ENTITY_TYPE_MAPPING_KEY, "model.Foo");
-		OrmEntity ormEntity = (OrmEntity) ormPersistentType.getMapping();
-		OrmNamedNativeQuery ormNamedNativeQuery = ormEntity.addNamedNativeQuery(0);
-		
-		XmlNamedNativeQuery namedNativeQueryResource = getXmlEntityMappings().getEntities().get(0).getNamedNativeQueries().get(0);
-		
-		assertNull(ormNamedNativeQuery.getQuery());
-		assertNull(namedNativeQueryResource.getQuery());
-				
-		//set name in the context model, verify resource model updated
-		ormNamedNativeQuery.setQuery("newName");
-		assertEquals("newName", ormNamedNativeQuery.getQuery());
-		assertEquals("newName", namedNativeQueryResource.getQuery());
-	
-		//set name to null in the context model
-		ormNamedNativeQuery.setQuery(null);
-		assertNull(ormNamedNativeQuery.getQuery());
-		assertNull(namedNativeQueryResource.getQuery());
-	}
-	
-	public void testAddHint() throws Exception {
-		OrmPersistentType ormPersistentType = getEntityMappings().addPersistentType(MappingKeys.ENTITY_TYPE_MAPPING_KEY, "model.Foo");
-		OrmEntity ormEntity = (OrmEntity) ormPersistentType.getMapping();
-		OrmNamedNativeQuery ormNamedNativeQuery = ormEntity.addNamedNativeQuery(0);
-		
-		XmlNamedNativeQuery namedNativeQueryResource = getXmlEntityMappings().getEntities().get(0).getNamedNativeQueries().get(0);
-
-		OrmQueryHint queryHint = ormNamedNativeQuery.addHint(0);
-		queryHint.setName("FOO");
-				
-		assertEquals("FOO", namedNativeQueryResource.getHints().get(0).getName());
-		
-		OrmQueryHint queryHint2 = ormNamedNativeQuery.addHint(0);
-		queryHint2.setName("BAR");
-		
-		assertEquals("BAR", namedNativeQueryResource.getHints().get(0).getName());
-		assertEquals("FOO", namedNativeQueryResource.getHints().get(1).getName());
-		
-		OrmQueryHint queryHint3 = ormNamedNativeQuery.addHint(1);
-		queryHint3.setName("BAZ");
-		
-		assertEquals("BAR", namedNativeQueryResource.getHints().get(0).getName());
-		assertEquals("BAZ", namedNativeQueryResource.getHints().get(1).getName());
-		assertEquals("FOO", namedNativeQueryResource.getHints().get(2).getName());
-		
-		ListIterator<OrmQueryHint> queryHints = ormNamedNativeQuery.hints();
-		assertEquals(queryHint2, queryHints.next());
-		assertEquals(queryHint3, queryHints.next());
-		assertEquals(queryHint, queryHints.next());
-		
-		queryHints = ormNamedNativeQuery.hints();
-		assertEquals("BAR", queryHints.next().getName());
-		assertEquals("BAZ", queryHints.next().getName());
-		assertEquals("FOO", queryHints.next().getName());
-	}
-	
-	public void testRemoveHint() throws Exception {
-		OrmPersistentType ormPersistentType = getEntityMappings().addPersistentType(MappingKeys.ENTITY_TYPE_MAPPING_KEY, "model.Foo");
-		OrmEntity ormEntity = (OrmEntity) ormPersistentType.getMapping();
-		OrmNamedNativeQuery ormNamedNativeQuery = ormEntity.addNamedNativeQuery(0);
-		
-		XmlNamedNativeQuery namedNativeQueryResource = getXmlEntityMappings().getEntities().get(0).getNamedNativeQueries().get(0);
-
-		ormNamedNativeQuery.addHint(0).setName("FOO");
-		ormNamedNativeQuery.addHint(1).setName("BAR");
-		ormNamedNativeQuery.addHint(2).setName("BAZ");
-		
-		assertEquals(3, namedNativeQueryResource.getHints().size());
-		
-		ormNamedNativeQuery.removeHint(0);
-		assertEquals(2, namedNativeQueryResource.getHints().size());
-		assertEquals("BAR", namedNativeQueryResource.getHints().get(0).getName());
-		assertEquals("BAZ", namedNativeQueryResource.getHints().get(1).getName());
-
-		ormNamedNativeQuery.removeHint(0);
-		assertEquals(1, namedNativeQueryResource.getHints().size());
-		assertEquals("BAZ", namedNativeQueryResource.getHints().get(0).getName());
-		
-		ormNamedNativeQuery.removeHint(0);
-		assertEquals(0, namedNativeQueryResource.getHints().size());
-	}
-	
-	public void testMoveHint() throws Exception {
-		OrmPersistentType ormPersistentType = getEntityMappings().addPersistentType(MappingKeys.ENTITY_TYPE_MAPPING_KEY, "model.Foo");
-		OrmEntity ormEntity = (OrmEntity) ormPersistentType.getMapping();
-		OrmNamedNativeQuery ormNamedNativeQuery = ormEntity.addNamedNativeQuery(0);
-		
-		XmlNamedNativeQuery namedNativeQueryResource = getXmlEntityMappings().getEntities().get(0).getNamedNativeQueries().get(0);
-
-		ormNamedNativeQuery.addHint(0).setName("FOO");
-		ormNamedNativeQuery.addHint(1).setName("BAR");
-		ormNamedNativeQuery.addHint(2).setName("BAZ");
-		
-		assertEquals(3, namedNativeQueryResource.getHints().size());
-		
-		
-		ormNamedNativeQuery.moveHint(2, 0);
-		ListIterator<OrmQueryHint> hints = ormNamedNativeQuery.hints();
-		assertEquals("BAR", hints.next().getName());
-		assertEquals("BAZ", hints.next().getName());
-		assertEquals("FOO", hints.next().getName());
-
-		assertEquals("BAR", namedNativeQueryResource.getHints().get(0).getName());
-		assertEquals("BAZ", namedNativeQueryResource.getHints().get(1).getName());
-		assertEquals("FOO", namedNativeQueryResource.getHints().get(2).getName());
-
-
-		ormNamedNativeQuery.moveHint(0, 1);
-		hints = ormNamedNativeQuery.hints();
-		assertEquals("BAZ", hints.next().getName());
-		assertEquals("BAR", hints.next().getName());
-		assertEquals("FOO", hints.next().getName());
-
-		assertEquals("BAZ", namedNativeQueryResource.getHints().get(0).getName());
-		assertEquals("BAR", namedNativeQueryResource.getHints().get(1).getName());
-		assertEquals("FOO", namedNativeQueryResource.getHints().get(2).getName());
-	}
-	
-	public void testUpdateHints() throws Exception {
-		OrmPersistentType ormPersistentType = getEntityMappings().addPersistentType(MappingKeys.ENTITY_TYPE_MAPPING_KEY, "model.Foo");
-		OrmEntity ormEntity = (OrmEntity) ormPersistentType.getMapping();
-		OrmNamedNativeQuery ormNamedNativeQuery = ormEntity.addNamedNativeQuery(0);
-		
-		XmlNamedNativeQuery namedNativeQueryResource = getXmlEntityMappings().getEntities().get(0).getNamedNativeQueries().get(0);
-
-		namedNativeQueryResource.getHints().add(OrmFactory.eINSTANCE.createXmlQueryHint());
-		namedNativeQueryResource.getHints().add(OrmFactory.eINSTANCE.createXmlQueryHint());
-		namedNativeQueryResource.getHints().add(OrmFactory.eINSTANCE.createXmlQueryHint());
-		
-		namedNativeQueryResource.getHints().get(0).setName("FOO");
-		namedNativeQueryResource.getHints().get(1).setName("BAR");
-		namedNativeQueryResource.getHints().get(2).setName("BAZ");
-
-		ListIterator<OrmQueryHint> hints = ormNamedNativeQuery.hints();
-		assertEquals("FOO", hints.next().getName());
-		assertEquals("BAR", hints.next().getName());
-		assertEquals("BAZ", hints.next().getName());
-		assertFalse(hints.hasNext());
-		
-		namedNativeQueryResource.getHints().move(2, 0);
-		hints = ormNamedNativeQuery.hints();
-		assertEquals("BAR", hints.next().getName());
-		assertEquals("BAZ", hints.next().getName());
-		assertEquals("FOO", hints.next().getName());
-		assertFalse(hints.hasNext());
-
-		namedNativeQueryResource.getHints().move(0, 1);
-		hints = ormNamedNativeQuery.hints();
-		assertEquals("BAZ", hints.next().getName());
-		assertEquals("BAR", hints.next().getName());
-		assertEquals("FOO", hints.next().getName());
-		assertFalse(hints.hasNext());
-
-		namedNativeQueryResource.getHints().remove(1);
-		hints = ormNamedNativeQuery.hints();
-		assertEquals("BAZ", hints.next().getName());
-		assertEquals("FOO", hints.next().getName());
-		assertFalse(hints.hasNext());
-
-		namedNativeQueryResource.getHints().remove(1);
-		hints = ormNamedNativeQuery.hints();
-		assertEquals("BAZ", hints.next().getName());
-		assertFalse(hints.hasNext());
-		
-		namedNativeQueryResource.getHints().remove(0);
-		assertFalse(ormNamedNativeQuery.hints().hasNext());
-	}
-	
-	
-	public void testUpdateResultSetMapping() throws Exception {
-		OrmPersistentType ormPersistentType = getEntityMappings().addPersistentType(MappingKeys.ENTITY_TYPE_MAPPING_KEY, "model.Foo");
-		OrmEntity ormEntity = (OrmEntity) ormPersistentType.getMapping();
-		OrmNamedNativeQuery ormNamedNativeQuery = ormEntity.addNamedNativeQuery(0);
-		
-		XmlNamedNativeQuery namedNativeQueryResource = getXmlEntityMappings().getEntities().get(0).getNamedNativeQueries().get(0);
-		
-		assertEquals(null, namedNativeQueryResource.getResultSetMapping());
-		assertEquals(null, ormNamedNativeQuery.getResultSetMapping());
-
-		//set name in the resource model, verify context model updated
-		namedNativeQueryResource.setResultSetMapping("foo");
-		assertEquals("foo", namedNativeQueryResource.getResultSetMapping());
-		assertEquals("foo", ormNamedNativeQuery.getResultSetMapping());
-		
-		//set name to null in the resource model
-		namedNativeQueryResource.setResultSetMapping(null);
-		assertNull(namedNativeQueryResource.getResultSetMapping());
-		assertNull(ormNamedNativeQuery.getResultSetMapping());
-	}
-	
-	public void testModifyResultSetMapping() throws Exception {
-		OrmPersistentType ormPersistentType = getEntityMappings().addPersistentType(MappingKeys.ENTITY_TYPE_MAPPING_KEY, "model.Foo");
-		OrmEntity ormEntity = (OrmEntity) ormPersistentType.getMapping();
-		OrmNamedNativeQuery ormNamedNativeQuery = ormEntity.addNamedNativeQuery(0);
-		
-		XmlNamedNativeQuery namedNativeQueryResource = getXmlEntityMappings().getEntities().get(0).getNamedNativeQueries().get(0);
-		
-		assertEquals(null, namedNativeQueryResource.getResultSetMapping());
-		assertEquals(null, ormNamedNativeQuery.getResultSetMapping());
-
-		//set name in the context model, verify resource model updated
-		ormNamedNativeQuery.setResultSetMapping("foo");
-		assertEquals("foo", namedNativeQueryResource.getResultSetMapping());
-		assertEquals("foo", ormNamedNativeQuery.getResultSetMapping());
-		
-		//set name to null in the context model
-		ormNamedNativeQuery.setResultSetMapping(null);
-		assertNull(namedNativeQueryResource.getResultSetMapping());
-		assertNull(ormNamedNativeQuery.getResultSetMapping());
-	}
-	
-	public void testUpdateResultClass() throws Exception {
-		OrmPersistentType ormPersistentType = getEntityMappings().addPersistentType(MappingKeys.ENTITY_TYPE_MAPPING_KEY, "model.Foo");
-		OrmEntity ormEntity = (OrmEntity) ormPersistentType.getMapping();
-		OrmNamedNativeQuery ormNamedNativeQuery = ormEntity.addNamedNativeQuery(0);
-		
-		XmlNamedNativeQuery namedNativeQueryResource = getXmlEntityMappings().getEntities().get(0).getNamedNativeQueries().get(0);
-		
-		assertEquals(null, namedNativeQueryResource.getResultClass());
-		assertEquals(null, ormNamedNativeQuery.getResultClass());
-
-		//set name in the resource model, verify context model updated
-		namedNativeQueryResource.setResultClass("foo");
-		assertEquals("foo", namedNativeQueryResource.getResultClass());
-		assertEquals("foo", ormNamedNativeQuery.getResultClass());
-		
-		//set name to null in the resource model
-		namedNativeQueryResource.setResultClass(null);
-		assertNull(namedNativeQueryResource.getResultClass());
-		assertNull(ormNamedNativeQuery.getResultClass());
-	}
-	
-	public void testModifyResultClass() throws Exception {
-		OrmPersistentType ormPersistentType = getEntityMappings().addPersistentType(MappingKeys.ENTITY_TYPE_MAPPING_KEY, "model.Foo");
-		OrmEntity ormEntity = (OrmEntity) ormPersistentType.getMapping();
-		OrmNamedNativeQuery ormNamedNativeQuery = ormEntity.addNamedNativeQuery(0);
-		
-		XmlNamedNativeQuery namedNativeQueryResource = getXmlEntityMappings().getEntities().get(0).getNamedNativeQueries().get(0);
-		
-		assertEquals(null, namedNativeQueryResource.getResultClass());
-		assertEquals(null, ormNamedNativeQuery.getResultClass());
-
-		//set name in the context model, verify resource model updated
-		ormNamedNativeQuery.setResultClass("foo");
-		assertEquals("foo", namedNativeQueryResource.getResultClass());
-		assertEquals("foo", ormNamedNativeQuery.getResultClass());
-		
-		//set name to null in the context model
-		ormNamedNativeQuery.setResultClass(null);
-		assertNull(namedNativeQueryResource.getResultClass());
-		assertNull(ormNamedNativeQuery.getResultClass());
-	}
-}
\ No newline at end of file
diff --git a/jpa/tests/org.eclipse.jpt.core.tests/src/org/eclipse/jpt/core/tests/internal/context/orm/OrmNamedQueryTests.java b/jpa/tests/org.eclipse.jpt.core.tests/src/org/eclipse/jpt/core/tests/internal/context/orm/OrmNamedQueryTests.java
deleted file mode 100644
index def6b91..0000000
--- a/jpa/tests/org.eclipse.jpt.core.tests/src/org/eclipse/jpt/core/tests/internal/context/orm/OrmNamedQueryTests.java
+++ /dev/null
@@ -1,273 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.core.tests.internal.context.orm;
-
-import java.util.ListIterator;
-import org.eclipse.jpt.core.JptCorePlugin;
-import org.eclipse.jpt.core.MappingKeys;
-import org.eclipse.jpt.core.context.orm.OrmEntity;
-import org.eclipse.jpt.core.context.orm.OrmNamedQuery;
-import org.eclipse.jpt.core.context.orm.OrmPersistentType;
-import org.eclipse.jpt.core.context.orm.OrmQueryHint;
-import org.eclipse.jpt.core.resource.orm.OrmFactory;
-import org.eclipse.jpt.core.resource.orm.XmlNamedQuery;
-import org.eclipse.jpt.core.resource.persistence.PersistenceFactory;
-import org.eclipse.jpt.core.resource.persistence.XmlMappingFileRef;
-import org.eclipse.jpt.core.tests.internal.context.ContextModelTestCase;
-
-@SuppressWarnings("nls")
-public class OrmNamedQueryTests extends ContextModelTestCase
-{
-	public OrmNamedQueryTests(String name) {
-		super(name);
-	}
-	
-	
-	@Override
-	protected void setUp() throws Exception {
-		super.setUp();
-		XmlMappingFileRef mappingFileRef = PersistenceFactory.eINSTANCE.createXmlMappingFileRef();
-		mappingFileRef.setFileName(JptCorePlugin.DEFAULT_ORM_XML_FILE_PATH);
-		getXmlPersistenceUnit().getMappingFiles().add(mappingFileRef);
-		getPersistenceXmlResource().save(null);
-	}
-
-	public void testUpdateName() throws Exception {
-		OrmPersistentType ormPersistentType = getEntityMappings().addPersistentType(MappingKeys.ENTITY_TYPE_MAPPING_KEY, "model.Foo");
-		OrmEntity ormEntity = (OrmEntity) ormPersistentType.getMapping();
-		OrmNamedQuery ormNamedQuery = ormEntity.addNamedQuery(0);
-		
-		XmlNamedQuery namedQueryResource = getXmlEntityMappings().getEntities().get(0).getNamedQueries().get(0);
-		
-		assertNull(ormNamedQuery.getName());
-		assertNull(namedQueryResource.getName());
-				
-		//set name in the resource model, verify context model updated
-		namedQueryResource.setName("newName");
-		assertEquals("newName", ormNamedQuery.getName());
-		assertEquals("newName", namedQueryResource.getName());
-	
-		//set name to null in the resource model
-		namedQueryResource.setName(null);
-		assertNull(ormNamedQuery.getName());
-		assertNull(namedQueryResource.getName());
-	}
-	
-	public void testModifyName() throws Exception {
-		OrmPersistentType ormPersistentType = getEntityMappings().addPersistentType(MappingKeys.ENTITY_TYPE_MAPPING_KEY, "model.Foo");
-		OrmEntity ormEntity = (OrmEntity) ormPersistentType.getMapping();
-		OrmNamedQuery ormNamedQuery = ormEntity.addNamedQuery(0);
-		
-		XmlNamedQuery namedQueryResource = getXmlEntityMappings().getEntities().get(0).getNamedQueries().get(0);
-		
-		assertNull(ormNamedQuery.getName());
-		assertNull(namedQueryResource.getName());
-				
-		//set name in the context model, verify resource model updated
-		ormNamedQuery.setName("newName");
-		assertEquals("newName", ormNamedQuery.getName());
-		assertEquals("newName", namedQueryResource.getName());
-	
-		//set name to null in the context model
-		ormNamedQuery.setName(null);
-		assertNull(ormNamedQuery.getName());
-		assertNull(namedQueryResource.getName());
-	}
-	
-	public void testUpdateQuery() throws Exception {
-		OrmPersistentType ormPersistentType = getEntityMappings().addPersistentType(MappingKeys.ENTITY_TYPE_MAPPING_KEY, "model.Foo");
-		OrmEntity ormEntity = (OrmEntity) ormPersistentType.getMapping();
-		OrmNamedQuery ormNamedQuery = ormEntity.addNamedQuery(0);
-		
-		XmlNamedQuery namedQueryResource = getXmlEntityMappings().getEntities().get(0).getNamedQueries().get(0);
-		
-		assertNull(ormNamedQuery.getQuery());
-		assertNull(namedQueryResource.getQuery());
-				
-		//set name in the resource model, verify context model updated
-		namedQueryResource.setQuery("newName");
-		assertEquals("newName", ormNamedQuery.getQuery());
-		assertEquals("newName", namedQueryResource.getQuery());
-	
-		//set name to null in the resource model
-		namedQueryResource.setQuery(null);
-		assertNull(ormNamedQuery.getQuery());
-		assertNull(namedQueryResource.getQuery());
-	}
-	
-	public void testModifyQuery() throws Exception {
-		OrmPersistentType ormPersistentType = getEntityMappings().addPersistentType(MappingKeys.ENTITY_TYPE_MAPPING_KEY, "model.Foo");
-		OrmEntity ormEntity = (OrmEntity) ormPersistentType.getMapping();
-		OrmNamedQuery ormNamedQuery = ormEntity.addNamedQuery(0);
-		
-		XmlNamedQuery namedQueryResource = getXmlEntityMappings().getEntities().get(0).getNamedQueries().get(0);
-		
-		assertNull(ormNamedQuery.getQuery());
-		assertNull(namedQueryResource.getQuery());
-				
-		//set name in the context model, verify resource model updated
-		ormNamedQuery.setQuery("newName");
-		assertEquals("newName", ormNamedQuery.getQuery());
-		assertEquals("newName", namedQueryResource.getQuery());
-	
-		//set name to null in the context model
-		ormNamedQuery.setQuery(null);
-		assertNull(ormNamedQuery.getQuery());
-		assertNull(namedQueryResource.getQuery());
-	}
-	
-	public void testAddHint() throws Exception {
-		OrmPersistentType ormPersistentType = getEntityMappings().addPersistentType(MappingKeys.ENTITY_TYPE_MAPPING_KEY, "model.Foo");
-		OrmEntity ormEntity = (OrmEntity) ormPersistentType.getMapping();
-		OrmNamedQuery ormNamedQuery = ormEntity.addNamedQuery(0);
-		
-		XmlNamedQuery namedQueryResource = getXmlEntityMappings().getEntities().get(0).getNamedQueries().get(0);
-
-		OrmQueryHint queryHint = ormNamedQuery.addHint(0);
-		queryHint.setName("FOO");
-				
-		assertEquals("FOO", namedQueryResource.getHints().get(0).getName());
-		
-		OrmQueryHint queryHint2 = ormNamedQuery.addHint(0);
-		queryHint2.setName("BAR");
-		
-		assertEquals("BAR", namedQueryResource.getHints().get(0).getName());
-		assertEquals("FOO", namedQueryResource.getHints().get(1).getName());
-		
-		OrmQueryHint queryHint3 = ormNamedQuery.addHint(1);
-		queryHint3.setName("BAZ");
-		
-		assertEquals("BAR", namedQueryResource.getHints().get(0).getName());
-		assertEquals("BAZ", namedQueryResource.getHints().get(1).getName());
-		assertEquals("FOO", namedQueryResource.getHints().get(2).getName());
-		
-		ListIterator<OrmQueryHint> queryHints = ormNamedQuery.hints();
-		assertEquals(queryHint2, queryHints.next());
-		assertEquals(queryHint3, queryHints.next());
-		assertEquals(queryHint, queryHints.next());
-		
-		queryHints = ormNamedQuery.hints();
-		assertEquals("BAR", queryHints.next().getName());
-		assertEquals("BAZ", queryHints.next().getName());
-		assertEquals("FOO", queryHints.next().getName());
-	}
-	
-	public void testRemoveHint() throws Exception {
-		OrmPersistentType ormPersistentType = getEntityMappings().addPersistentType(MappingKeys.ENTITY_TYPE_MAPPING_KEY, "model.Foo");
-		OrmEntity ormEntity = (OrmEntity) ormPersistentType.getMapping();
-		OrmNamedQuery ormNamedQuery = ormEntity.addNamedQuery(0);
-		
-		XmlNamedQuery namedQueryResource = getXmlEntityMappings().getEntities().get(0).getNamedQueries().get(0);
-
-		ormNamedQuery.addHint(0).setName("FOO");
-		ormNamedQuery.addHint(1).setName("BAR");
-		ormNamedQuery.addHint(2).setName("BAZ");
-		
-		assertEquals(3, namedQueryResource.getHints().size());
-		
-		ormNamedQuery.removeHint(0);
-		assertEquals(2, namedQueryResource.getHints().size());
-		assertEquals("BAR", namedQueryResource.getHints().get(0).getName());
-		assertEquals("BAZ", namedQueryResource.getHints().get(1).getName());
-
-		ormNamedQuery.removeHint(0);
-		assertEquals(1, namedQueryResource.getHints().size());
-		assertEquals("BAZ", namedQueryResource.getHints().get(0).getName());
-		
-		ormNamedQuery.removeHint(0);
-		assertEquals(0, namedQueryResource.getHints().size());
-	}
-	
-	public void testMoveHint() throws Exception {
-		OrmPersistentType ormPersistentType = getEntityMappings().addPersistentType(MappingKeys.ENTITY_TYPE_MAPPING_KEY, "model.Foo");
-		OrmEntity ormEntity = (OrmEntity) ormPersistentType.getMapping();
-		OrmNamedQuery ormNamedQuery = ormEntity.addNamedQuery(0);
-		
-		XmlNamedQuery namedQueryResource = getXmlEntityMappings().getEntities().get(0).getNamedQueries().get(0);
-
-		ormNamedQuery.addHint(0).setName("FOO");
-		ormNamedQuery.addHint(1).setName("BAR");
-		ormNamedQuery.addHint(2).setName("BAZ");
-		
-		assertEquals(3, namedQueryResource.getHints().size());
-		
-		
-		ormNamedQuery.moveHint(2, 0);
-		ListIterator<OrmQueryHint> hints = ormNamedQuery.hints();
-		assertEquals("BAR", hints.next().getName());
-		assertEquals("BAZ", hints.next().getName());
-		assertEquals("FOO", hints.next().getName());
-
-		assertEquals("BAR", namedQueryResource.getHints().get(0).getName());
-		assertEquals("BAZ", namedQueryResource.getHints().get(1).getName());
-		assertEquals("FOO", namedQueryResource.getHints().get(2).getName());
-
-
-		ormNamedQuery.moveHint(0, 1);
-		hints = ormNamedQuery.hints();
-		assertEquals("BAZ", hints.next().getName());
-		assertEquals("BAR", hints.next().getName());
-		assertEquals("FOO", hints.next().getName());
-
-		assertEquals("BAZ", namedQueryResource.getHints().get(0).getName());
-		assertEquals("BAR", namedQueryResource.getHints().get(1).getName());
-		assertEquals("FOO", namedQueryResource.getHints().get(2).getName());
-	}
-	
-	public void testUpdateHints() throws Exception {
-		OrmPersistentType ormPersistentType = getEntityMappings().addPersistentType(MappingKeys.ENTITY_TYPE_MAPPING_KEY, "model.Foo");
-		OrmEntity ormEntity = (OrmEntity) ormPersistentType.getMapping();
-		OrmNamedQuery ormNamedQuery = ormEntity.addNamedQuery(0);
-		
-		XmlNamedQuery namedQueryResource = getXmlEntityMappings().getEntities().get(0).getNamedQueries().get(0);
-
-		namedQueryResource.getHints().add(OrmFactory.eINSTANCE.createXmlQueryHint());
-		namedQueryResource.getHints().add(OrmFactory.eINSTANCE.createXmlQueryHint());
-		namedQueryResource.getHints().add(OrmFactory.eINSTANCE.createXmlQueryHint());
-		
-		namedQueryResource.getHints().get(0).setName("FOO");
-		namedQueryResource.getHints().get(1).setName("BAR");
-		namedQueryResource.getHints().get(2).setName("BAZ");
-
-		ListIterator<OrmQueryHint> hints = ormNamedQuery.hints();
-		assertEquals("FOO", hints.next().getName());
-		assertEquals("BAR", hints.next().getName());
-		assertEquals("BAZ", hints.next().getName());
-		assertFalse(hints.hasNext());
-		
-		namedQueryResource.getHints().move(2, 0);
-		hints = ormNamedQuery.hints();
-		assertEquals("BAR", hints.next().getName());
-		assertEquals("BAZ", hints.next().getName());
-		assertEquals("FOO", hints.next().getName());
-		assertFalse(hints.hasNext());
-
-		namedQueryResource.getHints().move(0, 1);
-		hints = ormNamedQuery.hints();
-		assertEquals("BAZ", hints.next().getName());
-		assertEquals("BAR", hints.next().getName());
-		assertEquals("FOO", hints.next().getName());
-		assertFalse(hints.hasNext());
-
-		namedQueryResource.getHints().remove(1);
-		hints = ormNamedQuery.hints();
-		assertEquals("BAZ", hints.next().getName());
-		assertEquals("FOO", hints.next().getName());
-		assertFalse(hints.hasNext());
-
-		namedQueryResource.getHints().remove(1);
-		hints = ormNamedQuery.hints();
-		assertEquals("BAZ", hints.next().getName());
-		assertFalse(hints.hasNext());
-		
-		namedQueryResource.getHints().remove(0);
-		assertFalse(ormNamedQuery.hints().hasNext());
-	}
-}
\ No newline at end of file
diff --git a/jpa/tests/org.eclipse.jpt.core.tests/src/org/eclipse/jpt/core/tests/internal/context/orm/OrmOneToManyMappingTests.java b/jpa/tests/org.eclipse.jpt.core.tests/src/org/eclipse/jpt/core/tests/internal/context/orm/OrmOneToManyMappingTests.java
deleted file mode 100644
index 089ed6b..0000000
--- a/jpa/tests/org.eclipse.jpt.core.tests/src/org/eclipse/jpt/core/tests/internal/context/orm/OrmOneToManyMappingTests.java
+++ /dev/null
@@ -1,612 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.core.tests.internal.context.orm;
-
-import org.eclipse.jpt.core.JptCorePlugin;
-import org.eclipse.jpt.core.MappingKeys;
-import org.eclipse.jpt.core.context.BasicMapping;
-import org.eclipse.jpt.core.context.EmbeddedIdMapping;
-import org.eclipse.jpt.core.context.EmbeddedMapping;
-import org.eclipse.jpt.core.context.FetchType;
-import org.eclipse.jpt.core.context.IdMapping;
-import org.eclipse.jpt.core.context.JoinColumn;
-import org.eclipse.jpt.core.context.JoinTable;
-import org.eclipse.jpt.core.context.ManyToManyMapping;
-import org.eclipse.jpt.core.context.ManyToOneMapping;
-import org.eclipse.jpt.core.context.OneToManyMapping;
-import org.eclipse.jpt.core.context.OneToOneMapping;
-import org.eclipse.jpt.core.context.TransientMapping;
-import org.eclipse.jpt.core.context.VersionMapping;
-import org.eclipse.jpt.core.context.orm.OrmMappedByJoiningStrategy;
-import org.eclipse.jpt.core.context.orm.OrmOneToManyMapping;
-import org.eclipse.jpt.core.context.orm.OrmPersistentAttribute;
-import org.eclipse.jpt.core.context.orm.OrmPersistentType;
-import org.eclipse.jpt.core.resource.orm.OrmFactory;
-import org.eclipse.jpt.core.resource.orm.XmlOneToMany;
-import org.eclipse.jpt.core.resource.persistence.PersistenceFactory;
-import org.eclipse.jpt.core.resource.persistence.XmlMappingFileRef;
-import org.eclipse.jpt.core.tests.internal.context.ContextModelTestCase;
-
-@SuppressWarnings("nls")
-public class OrmOneToManyMappingTests extends ContextModelTestCase
-{
-	public OrmOneToManyMappingTests(String name) {
-		super(name);
-	}
-	
-	
-	@Override
-	protected void setUp() throws Exception {
-		super.setUp();
-		XmlMappingFileRef mappingFileRef = PersistenceFactory.eINSTANCE.createXmlMappingFileRef();
-		mappingFileRef.setFileName(JptCorePlugin.DEFAULT_ORM_XML_FILE_PATH);
-		getXmlPersistenceUnit().getMappingFiles().add(mappingFileRef);
-		getPersistenceXmlResource().save(null);
-	}
-	
-	public void testUpdateName() throws Exception {
-		OrmPersistentType ormPersistentType = getEntityMappings().addPersistentType(MappingKeys.ENTITY_TYPE_MAPPING_KEY, "model.Foo");
-		OrmPersistentAttribute ormPersistentAttribute = ormPersistentType.addSpecifiedPersistentAttribute(MappingKeys.ONE_TO_MANY_ATTRIBUTE_MAPPING_KEY, "oneToManyMapping");
-		OrmOneToManyMapping ormOneToManyMapping = (OrmOneToManyMapping) ormPersistentAttribute.getMapping();
-		XmlOneToMany oneToMany = getXmlEntityMappings().getEntities().get(0).getAttributes().getOneToManys().get(0);
-		
-		assertEquals("oneToManyMapping", ormOneToManyMapping.getName());
-		assertEquals("oneToManyMapping", oneToMany.getName());
-				
-		//set name in the resource model, verify context model updated
-		oneToMany.setName("newName");
-		assertEquals("newName", ormOneToManyMapping.getName());
-		assertEquals("newName", oneToMany.getName());
-	
-		//set name to null in the resource model
-		oneToMany.setName(null);
-		assertNull(ormOneToManyMapping.getName());
-		assertNull(oneToMany.getName());
-	}
-	
-	public void testModifyName() throws Exception {
-		OrmPersistentType ormPersistentType = getEntityMappings().addPersistentType(MappingKeys.ENTITY_TYPE_MAPPING_KEY, "model.Foo");
-		OrmPersistentAttribute ormPersistentAttribute = ormPersistentType.addSpecifiedPersistentAttribute(MappingKeys.ONE_TO_MANY_ATTRIBUTE_MAPPING_KEY, "oneToManyMapping");
-		OrmOneToManyMapping ormOneToManyMapping = (OrmOneToManyMapping) ormPersistentAttribute.getMapping();
-		XmlOneToMany oneToMany = getXmlEntityMappings().getEntities().get(0).getAttributes().getOneToManys().get(0);
-		
-		assertEquals("oneToManyMapping", ormOneToManyMapping.getName());
-		assertEquals("oneToManyMapping", oneToMany.getName());
-				
-		//set name in the context model, verify resource model updated
-		ormOneToManyMapping.setName("newName");
-		assertEquals("newName", ormOneToManyMapping.getName());
-		assertEquals("newName", oneToMany.getName());
-	
-		//set name to null in the context model
-		ormOneToManyMapping.setName(null);
-		assertNull(ormOneToManyMapping.getName());
-		assertNull(oneToMany.getName());
-	}
-	
-	public void testUpdateTargetEntity() throws Exception {
-		OrmPersistentType ormPersistentType = getEntityMappings().addPersistentType(MappingKeys.ENTITY_TYPE_MAPPING_KEY, "model.Foo");
-		OrmPersistentAttribute ormPersistentAttribute = ormPersistentType.addSpecifiedPersistentAttribute(MappingKeys.ONE_TO_MANY_ATTRIBUTE_MAPPING_KEY, "oneToManyMapping");
-		OrmOneToManyMapping ormOneToManyMapping = (OrmOneToManyMapping) ormPersistentAttribute.getMapping();
-		XmlOneToMany oneToMany = getXmlEntityMappings().getEntities().get(0).getAttributes().getOneToManys().get(0);
-		
-		assertNull(ormOneToManyMapping.getSpecifiedTargetEntity());
-		assertNull(oneToMany.getTargetEntity());
-				
-		//set target entity in the resource model, verify context model updated
-		oneToMany.setTargetEntity("newTargetEntity");
-		assertEquals("newTargetEntity", ormOneToManyMapping.getSpecifiedTargetEntity());
-		assertEquals("newTargetEntity", oneToMany.getTargetEntity());
-	
-		//set target entity to null in the resource model
-		oneToMany.setTargetEntity(null);
-		assertNull(ormOneToManyMapping.getSpecifiedTargetEntity());
-		assertNull(oneToMany.getTargetEntity());
-	}
-	
-	public void testModifyTargetEntity() throws Exception {
-		OrmPersistentType ormPersistentType = getEntityMappings().addPersistentType(MappingKeys.ENTITY_TYPE_MAPPING_KEY, "model.Foo");
-		OrmPersistentAttribute ormPersistentAttribute = ormPersistentType.addSpecifiedPersistentAttribute(MappingKeys.ONE_TO_MANY_ATTRIBUTE_MAPPING_KEY, "oneToManyMapping");
-		OrmOneToManyMapping ormOneToManyMapping = (OrmOneToManyMapping) ormPersistentAttribute.getMapping();
-		XmlOneToMany oneToMany = getXmlEntityMappings().getEntities().get(0).getAttributes().getOneToManys().get(0);
-		
-		assertNull(ormOneToManyMapping.getSpecifiedTargetEntity());
-		assertNull(oneToMany.getTargetEntity());
-				
-		//set target entity in the context model, verify resource model updated
-		ormOneToManyMapping.setSpecifiedTargetEntity("newTargetEntity");
-		assertEquals("newTargetEntity", ormOneToManyMapping.getSpecifiedTargetEntity());
-		assertEquals("newTargetEntity", oneToMany.getTargetEntity());
-	
-		//set target entity to null in the context model
-		ormOneToManyMapping.setSpecifiedTargetEntity(null);
-		assertNull(ormOneToManyMapping.getSpecifiedTargetEntity());
-		assertNull(oneToMany.getTargetEntity());
-	}
-	
-	public void testUpdateSpecifiedFetch() throws Exception {
-		OrmPersistentType ormPersistentType = getEntityMappings().addPersistentType(MappingKeys.ENTITY_TYPE_MAPPING_KEY, "model.Foo");
-		OrmPersistentAttribute ormPersistentAttribute = ormPersistentType.addSpecifiedPersistentAttribute(MappingKeys.ONE_TO_MANY_ATTRIBUTE_MAPPING_KEY, "oneToManyMapping");
-		OrmOneToManyMapping ormOneToManyMapping = (OrmOneToManyMapping) ormPersistentAttribute.getMapping();
-		XmlOneToMany oneToManyResource = getXmlEntityMappings().getEntities().get(0).getAttributes().getOneToManys().get(0);
-		
-		assertNull(ormOneToManyMapping.getSpecifiedFetch());
-		assertNull(oneToManyResource.getFetch());
-				
-		//set fetch in the resource model, verify context model updated
-		oneToManyResource.setFetch(org.eclipse.jpt.core.resource.orm.FetchType.EAGER);
-		assertEquals(FetchType.EAGER, ormOneToManyMapping.getSpecifiedFetch());
-		assertEquals(org.eclipse.jpt.core.resource.orm.FetchType.EAGER, oneToManyResource.getFetch());
-	
-		oneToManyResource.setFetch(org.eclipse.jpt.core.resource.orm.FetchType.LAZY);
-		assertEquals(FetchType.LAZY, ormOneToManyMapping.getSpecifiedFetch());
-		assertEquals(org.eclipse.jpt.core.resource.orm.FetchType.LAZY, oneToManyResource.getFetch());
-
-		//set fetch to null in the resource model
-		oneToManyResource.setFetch(null);
-		assertNull(ormOneToManyMapping.getSpecifiedFetch());
-		assertNull(oneToManyResource.getFetch());
-	}
-	
-	public void testModifySpecifiedFetch() throws Exception {
-		OrmPersistentType ormPersistentType = getEntityMappings().addPersistentType(MappingKeys.ENTITY_TYPE_MAPPING_KEY, "model.Foo");
-		OrmPersistentAttribute ormPersistentAttribute = ormPersistentType.addSpecifiedPersistentAttribute(MappingKeys.ONE_TO_MANY_ATTRIBUTE_MAPPING_KEY, "oneToManyMapping");
-		OrmOneToManyMapping ormOneToManyMapping = (OrmOneToManyMapping) ormPersistentAttribute.getMapping();
-		XmlOneToMany oneToManyResource = getXmlEntityMappings().getEntities().get(0).getAttributes().getOneToManys().get(0);
-		
-		assertNull(ormOneToManyMapping.getSpecifiedFetch());
-		assertNull(oneToManyResource.getFetch());
-				
-		//set fetch in the context model, verify resource model updated
-		ormOneToManyMapping.setSpecifiedFetch(FetchType.EAGER);
-		assertEquals(org.eclipse.jpt.core.resource.orm.FetchType.EAGER, oneToManyResource.getFetch());
-		assertEquals(FetchType.EAGER, ormOneToManyMapping.getSpecifiedFetch());
-	
-		ormOneToManyMapping.setSpecifiedFetch(FetchType.LAZY);
-		assertEquals(org.eclipse.jpt.core.resource.orm.FetchType.LAZY, oneToManyResource.getFetch());
-		assertEquals(FetchType.LAZY, ormOneToManyMapping.getSpecifiedFetch());
-
-		//set fetch to null in the context model
-		ormOneToManyMapping.setSpecifiedFetch(null);
-		assertNull(oneToManyResource.getFetch());
-		assertNull(ormOneToManyMapping.getSpecifiedFetch());
-	}
-	
-	public void testUpdateMappedBy() throws Exception {
-		OrmPersistentType ormPersistentType = getEntityMappings().addPersistentType(MappingKeys.ENTITY_TYPE_MAPPING_KEY, "model.Foo");
-		OrmPersistentAttribute ormPersistentAttribute = ormPersistentType.addSpecifiedPersistentAttribute(MappingKeys.ONE_TO_MANY_ATTRIBUTE_MAPPING_KEY, "oneToManyMapping");
-		OrmOneToManyMapping ormOneToManyMapping = (OrmOneToManyMapping) ormPersistentAttribute.getMapping();
-		OrmMappedByJoiningStrategy strategy = ormOneToManyMapping.getRelationshipReference().getMappedByJoiningStrategy();
-		XmlOneToMany oneToMany = getXmlEntityMappings().getEntities().get(0).getAttributes().getOneToManys().get(0);
-		
-		assertNull(strategy.getMappedByAttribute());
-		assertNull(oneToMany.getMappedBy());
-				
-		//set mappedBy in the resource model, verify context model updated
-		oneToMany.setMappedBy("newMappedBy");
-		assertEquals("newMappedBy", strategy.getMappedByAttribute());
-		assertEquals("newMappedBy", oneToMany.getMappedBy());
-	
-		//setmappedBy to null in the resource model
-		oneToMany.setMappedBy(null);
-		assertNull(strategy.getMappedByAttribute());
-		assertNull(oneToMany.getMappedBy());
-	}
-	
-	public void testModifyMappedBy() throws Exception {
-		OrmPersistentType ormPersistentType = getEntityMappings().addPersistentType(MappingKeys.ENTITY_TYPE_MAPPING_KEY, "model.Foo");
-		OrmPersistentAttribute ormPersistentAttribute = ormPersistentType.addSpecifiedPersistentAttribute(MappingKeys.ONE_TO_MANY_ATTRIBUTE_MAPPING_KEY, "oneToManyMapping");
-		OrmOneToManyMapping ormOneToManyMapping = (OrmOneToManyMapping) ormPersistentAttribute.getMapping();
-		OrmMappedByJoiningStrategy strategy = ormOneToManyMapping.getRelationshipReference().getMappedByJoiningStrategy();
-		XmlOneToMany oneToMany = getXmlEntityMappings().getEntities().get(0).getAttributes().getOneToManys().get(0);
-		
-		assertNull(strategy.getMappedByAttribute());
-		assertNull(oneToMany.getMappedBy());
-				
-		//set mappedBy in the context model, verify resource model updated
-		strategy.setMappedByAttribute("newMappedBy");
-		assertEquals("newMappedBy", strategy.getMappedByAttribute());
-		assertEquals("newMappedBy", oneToMany.getMappedBy());
-	
-		//set mappedBy to null in the context model
-		strategy.setMappedByAttribute(null);
-		assertNull(strategy.getMappedByAttribute());
-		assertNull(oneToMany.getMappedBy());
-	}
-	
-	
-	public void testUpdateMapKey() throws Exception {
-		OrmPersistentType ormPersistentType = getEntityMappings().addPersistentType(MappingKeys.ENTITY_TYPE_MAPPING_KEY, "model.Foo");
-		OrmPersistentAttribute ormPersistentAttribute = ormPersistentType.addSpecifiedPersistentAttribute(MappingKeys.ONE_TO_MANY_ATTRIBUTE_MAPPING_KEY, "oneToManyMapping");
-		OrmOneToManyMapping ormOneToManyMapping = (OrmOneToManyMapping) ormPersistentAttribute.getMapping();
-		XmlOneToMany oneToMany = getXmlEntityMappings().getEntities().get(0).getAttributes().getOneToManys().get(0);
-		
-		assertNull(ormOneToManyMapping.getMapKey());
-		assertNull(oneToMany.getMapKey());
-		
-		//set mapKey in the resource model, verify context model does not change
-		oneToMany.setMapKey(OrmFactory.eINSTANCE.createMapKeyImpl());
-		assertNull(ormOneToManyMapping.getMapKey());
-		assertNotNull(oneToMany.getMapKey());
-				
-		//set mapKey name in the resource model, verify context model updated
-		oneToMany.getMapKey().setName("myMapKey");
-		assertEquals("myMapKey", ormOneToManyMapping.getMapKey());
-		assertEquals("myMapKey", oneToMany.getMapKey().getName());
-		
-		//set mapKey name to null in the resource model
-		oneToMany.getMapKey().setName(null);
-		assertNull(ormOneToManyMapping.getMapKey());
-		assertNull(oneToMany.getMapKey().getName());
-		
-		oneToMany.getMapKey().setName("myMapKey");
-		oneToMany.setMapKey(null);
-		assertNull(ormOneToManyMapping.getMapKey());
-		assertNull(oneToMany.getMapKey());
-	}
-	
-	public void testModifyMapKey() throws Exception {
-		OrmPersistentType ormPersistentType = getEntityMappings().addPersistentType(MappingKeys.ENTITY_TYPE_MAPPING_KEY, "model.Foo");
-		OrmPersistentAttribute ormPersistentAttribute = ormPersistentType.addSpecifiedPersistentAttribute(MappingKeys.ONE_TO_MANY_ATTRIBUTE_MAPPING_KEY, "oneToManyMapping");
-		OrmOneToManyMapping ormOneToManyMapping = (OrmOneToManyMapping) ormPersistentAttribute.getMapping();
-		XmlOneToMany oneToMany = getXmlEntityMappings().getEntities().get(0).getAttributes().getOneToManys().get(0);
-		
-		assertNull(ormOneToManyMapping.getMapKey());
-		assertNull(oneToMany.getMapKey());
-					
-		//set mapKey  in the context model, verify resource model updated
-		ormOneToManyMapping.setMapKey("myMapKey");
-		assertEquals("myMapKey", ormOneToManyMapping.getMapKey());
-		assertEquals("myMapKey", oneToMany.getMapKey().getName());
-	
-		//set mapKey to null in the context model
-		ormOneToManyMapping.setMapKey(null);
-		assertNull(ormOneToManyMapping.getMapKey());
-		assertNull(oneToMany.getMapKey());
-	}
-
-	public void testUpdateOrderBy() throws Exception {
-		OrmPersistentType ormPersistentType = getEntityMappings().addPersistentType(MappingKeys.ENTITY_TYPE_MAPPING_KEY, "model.Foo");
-		OrmPersistentAttribute ormPersistentAttribute = ormPersistentType.addSpecifiedPersistentAttribute(MappingKeys.ONE_TO_MANY_ATTRIBUTE_MAPPING_KEY, "oneToManyMapping");
-		OrmOneToManyMapping ormOneToManyMapping = (OrmOneToManyMapping) ormPersistentAttribute.getMapping();
-		XmlOneToMany oneToMany = getXmlEntityMappings().getEntities().get(0).getAttributes().getOneToManys().get(0);
-		
-		assertNull(ormOneToManyMapping.getOrderBy());
-		assertNull(oneToMany.getOrderBy());
-				
-		//set orderBy in the resource model, verify context model updated
-		oneToMany.setOrderBy("newOrderBy");
-		assertEquals("newOrderBy", ormOneToManyMapping.getOrderBy());
-		assertEquals("newOrderBy", oneToMany.getOrderBy());
-	
-		//set orderBy to null in the resource model
-		oneToMany.setOrderBy(null);
-		assertNull(ormOneToManyMapping.getOrderBy());
-		assertNull(oneToMany.getOrderBy());
-	}
-	
-	public void testModifyOrderBy() throws Exception {
-		OrmPersistentType ormPersistentType = getEntityMappings().addPersistentType(MappingKeys.ENTITY_TYPE_MAPPING_KEY, "model.Foo");
-		OrmPersistentAttribute ormPersistentAttribute = ormPersistentType.addSpecifiedPersistentAttribute(MappingKeys.ONE_TO_MANY_ATTRIBUTE_MAPPING_KEY, "oneToManyMapping");
-		OrmOneToManyMapping ormOneToManyMapping = (OrmOneToManyMapping) ormPersistentAttribute.getMapping();
-		XmlOneToMany oneToMany = getXmlEntityMappings().getEntities().get(0).getAttributes().getOneToManys().get(0);
-		
-		assertNull(ormOneToManyMapping.getOrderBy());
-		assertNull(oneToMany.getOrderBy());
-				
-		//set mappedBy in the context model, verify resource model updated
-		ormOneToManyMapping.setOrderBy("newOrderBy");
-		assertEquals("newOrderBy", ormOneToManyMapping.getOrderBy());
-		assertEquals("newOrderBy", oneToMany.getOrderBy());
-	
-		//set mappedBy to null in the context model
-		ormOneToManyMapping.setOrderBy(null);
-		assertNull(ormOneToManyMapping.getOrderBy());
-		assertNull(oneToMany.getOrderBy());
-	}
-	
-	public void testIsNoOrdering() throws Exception {
-		OrmPersistentType ormPersistentType = getEntityMappings().addPersistentType(MappingKeys.ENTITY_TYPE_MAPPING_KEY, "model.Foo");
-		OrmPersistentAttribute ormPersistentAttribute = ormPersistentType.addSpecifiedPersistentAttribute(MappingKeys.ONE_TO_MANY_ATTRIBUTE_MAPPING_KEY, "oneToManyMapping");
-		OrmOneToManyMapping ormOneToManyMapping = (OrmOneToManyMapping) ormPersistentAttribute.getMapping();
-		
-		assertTrue(ormOneToManyMapping.isNoOrdering());
-
-		ormOneToManyMapping.setOrderBy("foo");
-		assertFalse(ormOneToManyMapping.isNoOrdering());
-		
-		ormOneToManyMapping.setOrderBy(null);
-		assertTrue(ormOneToManyMapping.isNoOrdering());
-	}
-	
-	public void testSetNoOrdering() throws Exception {
-		OrmPersistentType ormPersistentType = getEntityMappings().addPersistentType(MappingKeys.ENTITY_TYPE_MAPPING_KEY, "model.Foo");
-		OrmPersistentAttribute ormPersistentAttribute = ormPersistentType.addSpecifiedPersistentAttribute(MappingKeys.ONE_TO_MANY_ATTRIBUTE_MAPPING_KEY, "oneToManyMapping");
-		OrmOneToManyMapping ormOneToManyMapping = (OrmOneToManyMapping) ormPersistentAttribute.getMapping();
-		
-		assertTrue(ormOneToManyMapping.isNoOrdering());
-
-		ormOneToManyMapping.setOrderBy("foo");
-		assertFalse(ormOneToManyMapping.isNoOrdering());
-		
-		ormOneToManyMapping.setNoOrdering(true);
-		assertTrue(ormOneToManyMapping.isNoOrdering());
-		assertNull(ormOneToManyMapping.getOrderBy());
-	}
-//TODO
-//	public boolean isOrderByPk() {
-//		return "".equals(getOrderBy());
-//	}
-//
-//	public void setOrderByPk() {
-//		setOrderBy("");
-//	}
-
-	public void testIsCustomOrdering() throws Exception {
-		OrmPersistentType ormPersistentType = getEntityMappings().addPersistentType(MappingKeys.ENTITY_TYPE_MAPPING_KEY, "model.Foo");
-		OrmPersistentAttribute ormPersistentAttribute = ormPersistentType.addSpecifiedPersistentAttribute(MappingKeys.ONE_TO_MANY_ATTRIBUTE_MAPPING_KEY, "oneToManyMapping");
-		OrmOneToManyMapping ormOneToManyMapping = (OrmOneToManyMapping) ormPersistentAttribute.getMapping();
-		
-		assertFalse(ormOneToManyMapping.isCustomOrdering());
-
-		ormOneToManyMapping.setOrderBy("foo");
-		assertTrue(ormOneToManyMapping.isCustomOrdering());
-		
-		ormOneToManyMapping.setOrderBy(null);
-		assertFalse(ormOneToManyMapping.isCustomOrdering());
-	}
-	
-	public void testOneToManyMorphToIdMapping() throws Exception {
-		OrmPersistentType ormPersistentType = getEntityMappings().addPersistentType(MappingKeys.ENTITY_TYPE_MAPPING_KEY, FULLY_QUALIFIED_TYPE_NAME);
-		OrmPersistentAttribute ormPersistentAttribute = ormPersistentType.addSpecifiedPersistentAttribute(MappingKeys.ONE_TO_MANY_ATTRIBUTE_MAPPING_KEY, "oneToMany");
-		
-		OneToManyMapping oneToManyMapping = (OneToManyMapping) ormPersistentAttribute.getMapping();
-		assertFalse(oneToManyMapping.isDefault());
-		oneToManyMapping.setSpecifiedFetch(FetchType.EAGER);
-		oneToManyMapping.setSpecifiedTargetEntity("TargetEntity");
-		oneToManyMapping.setOrderBy("customOrder");
-		oneToManyMapping.setMapKey("mapKey");
-		oneToManyMapping.getRelationshipReference().getMappedByJoiningStrategy().setMappedByAttribute("mappedBy");
-		assertFalse(oneToManyMapping.isDefault());	
-		
-		ormPersistentAttribute.setSpecifiedMappingKey(MappingKeys.ID_ATTRIBUTE_MAPPING_KEY);
-		assertEquals(1, ormPersistentType.specifiedAttributesSize());
-		assertEquals(ormPersistentAttribute, ormPersistentType.specifiedAttributes().next());
-		assertTrue(ormPersistentAttribute.getMapping() instanceof IdMapping);
-		assertEquals("oneToMany", ormPersistentAttribute.getMapping().getName());
-	}
-	
-	public void testOneToManyMorphToVersionMapping() throws Exception {
-		OrmPersistentType ormPersistentType = getEntityMappings().addPersistentType(MappingKeys.ENTITY_TYPE_MAPPING_KEY, FULLY_QUALIFIED_TYPE_NAME);
-		OrmPersistentAttribute ormPersistentAttribute = ormPersistentType.addSpecifiedPersistentAttribute(MappingKeys.ONE_TO_MANY_ATTRIBUTE_MAPPING_KEY, "oneToMany");
-		
-		OneToManyMapping oneToManyMapping = (OneToManyMapping) ormPersistentAttribute.getMapping();
-		assertFalse(oneToManyMapping.isDefault());
-		oneToManyMapping.setSpecifiedFetch(FetchType.EAGER);
-		oneToManyMapping.setSpecifiedTargetEntity("TargetEntity");
-		oneToManyMapping.setOrderBy("customOrder");
-		oneToManyMapping.setMapKey("mapKey");
-		oneToManyMapping.getRelationshipReference().getJoinTableJoiningStrategy().getJoinTable().setSpecifiedName("MY_JOIN_TABLE");
-		JoinColumn joinColumn = oneToManyMapping.getRelationshipReference().getJoinTableJoiningStrategy().getJoinTable().addSpecifiedJoinColumn(0);
-		joinColumn.setSpecifiedName("name");
-		joinColumn.setSpecifiedReferencedColumnName("referenceName");
-		JoinColumn inverseJoinColumn = oneToManyMapping.getRelationshipReference().getJoinTableJoiningStrategy().getJoinTable().addSpecifiedInverseJoinColumn(0);
-		inverseJoinColumn.setSpecifiedName("inverseName");
-		inverseJoinColumn.setSpecifiedReferencedColumnName("inverseReferenceName");
-		assertFalse(oneToManyMapping.isDefault());	
-		
-		ormPersistentAttribute.setSpecifiedMappingKey(MappingKeys.VERSION_ATTRIBUTE_MAPPING_KEY);
-		assertEquals(1, ormPersistentType.specifiedAttributesSize());
-		assertEquals(ormPersistentAttribute, ormPersistentType.specifiedAttributes().next());
-		assertTrue(ormPersistentAttribute.getMapping() instanceof VersionMapping);
-		assertEquals("oneToMany", ormPersistentAttribute.getMapping().getName());
-	}
-	
-	public void testOneToManyMorphToTransientMapping() throws Exception {
-		OrmPersistentType ormPersistentType = getEntityMappings().addPersistentType(MappingKeys.ENTITY_TYPE_MAPPING_KEY, FULLY_QUALIFIED_TYPE_NAME);
-		OrmPersistentAttribute ormPersistentAttribute = ormPersistentType.addSpecifiedPersistentAttribute(MappingKeys.ONE_TO_MANY_ATTRIBUTE_MAPPING_KEY, "oneToMany");
-		
-		OneToManyMapping oneToManyMapping = (OneToManyMapping) ormPersistentAttribute.getMapping();
-		assertFalse(oneToManyMapping.isDefault());
-		oneToManyMapping.setSpecifiedFetch(FetchType.EAGER);
-		oneToManyMapping.setSpecifiedTargetEntity("TargetEntity");
-		oneToManyMapping.setOrderBy("customOrder");
-		oneToManyMapping.setMapKey("mapKey");
-		oneToManyMapping.getRelationshipReference().getMappedByJoiningStrategy().setMappedByAttribute("mappedBy");
-		assertFalse(oneToManyMapping.isDefault());	
-		
-		ormPersistentAttribute.setSpecifiedMappingKey(MappingKeys.TRANSIENT_ATTRIBUTE_MAPPING_KEY);
-		assertEquals(1, ormPersistentType.specifiedAttributesSize());
-		assertEquals(ormPersistentAttribute, ormPersistentType.specifiedAttributes().next());
-		assertTrue(ormPersistentAttribute.getMapping() instanceof TransientMapping);
-		assertEquals("oneToMany", ormPersistentAttribute.getMapping().getName());
-	}
-	
-	public void testOneToManyMorphToEmbeddedMapping() throws Exception {
-		OrmPersistentType ormPersistentType = getEntityMappings().addPersistentType(MappingKeys.ENTITY_TYPE_MAPPING_KEY, FULLY_QUALIFIED_TYPE_NAME);
-		OrmPersistentAttribute ormPersistentAttribute = ormPersistentType.addSpecifiedPersistentAttribute(MappingKeys.ONE_TO_MANY_ATTRIBUTE_MAPPING_KEY, "oneToMany");
-		
-		OneToManyMapping oneToManyMapping = (OneToManyMapping) ormPersistentAttribute.getMapping();
-		assertFalse(oneToManyMapping.isDefault());
-		oneToManyMapping.setSpecifiedFetch(FetchType.EAGER);
-		oneToManyMapping.setSpecifiedTargetEntity("TargetEntity");
-		oneToManyMapping.setOrderBy("customOrder");
-		oneToManyMapping.setMapKey("mapKey");
-		oneToManyMapping.getRelationshipReference().getJoinTableJoiningStrategy().getJoinTable().setSpecifiedName("MY_JOIN_TABLE");
-		JoinColumn joinColumn = oneToManyMapping.getRelationshipReference().getJoinTableJoiningStrategy().getJoinTable().addSpecifiedJoinColumn(0);
-		joinColumn.setSpecifiedName("name");
-		joinColumn.setSpecifiedReferencedColumnName("referenceName");
-		JoinColumn inverseJoinColumn = oneToManyMapping.getRelationshipReference().getJoinTableJoiningStrategy().getJoinTable().addSpecifiedInverseJoinColumn(0);
-		inverseJoinColumn.setSpecifiedName("inverseName");
-		inverseJoinColumn.setSpecifiedReferencedColumnName("inverseReferenceName");
-		assertFalse(oneToManyMapping.isDefault());	
-		
-		ormPersistentAttribute.setSpecifiedMappingKey(MappingKeys.EMBEDDED_ATTRIBUTE_MAPPING_KEY);
-		assertEquals(1, ormPersistentType.specifiedAttributesSize());
-		assertEquals(ormPersistentAttribute, ormPersistentType.specifiedAttributes().next());
-		assertTrue(ormPersistentAttribute.getMapping() instanceof EmbeddedMapping);
-		assertEquals("oneToMany", ormPersistentAttribute.getMapping().getName());
-	}
-	
-	public void testOneToManyMorphToEmbeddedIdMapping() throws Exception {
-		OrmPersistentType ormPersistentType = getEntityMappings().addPersistentType(MappingKeys.ENTITY_TYPE_MAPPING_KEY, FULLY_QUALIFIED_TYPE_NAME);
-		OrmPersistentAttribute ormPersistentAttribute = ormPersistentType.addSpecifiedPersistentAttribute(MappingKeys.ONE_TO_MANY_ATTRIBUTE_MAPPING_KEY, "oneToMany");
-		
-		OneToManyMapping oneToManyMapping = (OneToManyMapping) ormPersistentAttribute.getMapping();
-		assertFalse(oneToManyMapping.isDefault());
-		oneToManyMapping.setSpecifiedFetch(FetchType.EAGER);
-		oneToManyMapping.setSpecifiedTargetEntity("TargetEntity");
-		oneToManyMapping.setOrderBy("customOrder");
-		oneToManyMapping.setMapKey("mapKey");
-		oneToManyMapping.getRelationshipReference().getMappedByJoiningStrategy().setMappedByAttribute("mappedBy");
-		assertFalse(oneToManyMapping.isDefault());	
-		
-		ormPersistentAttribute.setSpecifiedMappingKey(MappingKeys.EMBEDDED_ID_ATTRIBUTE_MAPPING_KEY);
-		assertEquals(1, ormPersistentType.specifiedAttributesSize());
-		assertEquals(ormPersistentAttribute, ormPersistentType.specifiedAttributes().next());
-		assertTrue(ormPersistentAttribute.getMapping() instanceof EmbeddedIdMapping);
-		assertEquals("oneToMany", ormPersistentAttribute.getMapping().getName());
-	}
-	
-	public void testOneToManyMorphToOneToOneMapping() throws Exception {
-		OrmPersistentType ormPersistentType = getEntityMappings().addPersistentType(MappingKeys.ENTITY_TYPE_MAPPING_KEY, FULLY_QUALIFIED_TYPE_NAME);
-		OrmPersistentAttribute ormPersistentAttribute = ormPersistentType.addSpecifiedPersistentAttribute(MappingKeys.ONE_TO_MANY_ATTRIBUTE_MAPPING_KEY, "oneToMany");
-		
-		OneToManyMapping oneToManyMapping = (OneToManyMapping) ormPersistentAttribute.getMapping();
-		assertFalse(oneToManyMapping.isDefault());
-		oneToManyMapping.setSpecifiedFetch(FetchType.EAGER);
-		oneToManyMapping.setSpecifiedTargetEntity("TargetEntity");
-		oneToManyMapping.setOrderBy("customOrder");
-		oneToManyMapping.setMapKey("mapKey");
-		oneToManyMapping.getRelationshipReference().getMappedByJoiningStrategy().setMappedByAttribute("mappedBy");
-		oneToManyMapping.getCascade().setAll(true);
-		oneToManyMapping.getCascade().setMerge(true);
-		oneToManyMapping.getCascade().setPersist(true);
-		oneToManyMapping.getCascade().setRefresh(true);
-		oneToManyMapping.getCascade().setRemove(true);
-		assertFalse(oneToManyMapping.isDefault());	
-		
-		ormPersistentAttribute.setSpecifiedMappingKey(MappingKeys.ONE_TO_ONE_ATTRIBUTE_MAPPING_KEY);
-		assertEquals(1, ormPersistentType.specifiedAttributesSize());
-		assertEquals(ormPersistentAttribute, ormPersistentType.specifiedAttributes().next());
-		assertTrue(ormPersistentAttribute.getMapping() instanceof OneToOneMapping);
-		assertEquals("oneToMany", ormPersistentAttribute.getMapping().getName());
-		assertEquals(FetchType.EAGER, ((OneToOneMapping) ormPersistentAttribute.getMapping()).getSpecifiedFetch());
-		assertEquals("TargetEntity", ((OneToOneMapping) ormPersistentAttribute.getMapping()).getSpecifiedTargetEntity());
-		assertEquals("mappedBy", ((OneToOneMapping) ormPersistentAttribute.getMapping()).getRelationshipReference().getMappedByJoiningStrategy().getMappedByAttribute());
-		assertTrue(((OneToOneMapping) ormPersistentAttribute.getMapping()).getCascade().isAll());
-		assertTrue(((OneToOneMapping) ormPersistentAttribute.getMapping()).getCascade().isMerge());
-		assertTrue(((OneToOneMapping) ormPersistentAttribute.getMapping()).getCascade().isPersist());
-		assertTrue(((OneToOneMapping) ormPersistentAttribute.getMapping()).getCascade().isRefresh());
-		assertTrue(((OneToOneMapping) ormPersistentAttribute.getMapping()).getCascade().isRemove());
-	}
-	
-	public void testOneToManyMorphToManyToManyMapping() throws Exception {
-		OrmPersistentType ormPersistentType = getEntityMappings().addPersistentType(MappingKeys.ENTITY_TYPE_MAPPING_KEY, FULLY_QUALIFIED_TYPE_NAME);
-		OrmPersistentAttribute ormPersistentAttribute = ormPersistentType.addSpecifiedPersistentAttribute(MappingKeys.ONE_TO_MANY_ATTRIBUTE_MAPPING_KEY, "oneToMany");
-		
-		OneToManyMapping oneToManyMapping = (OneToManyMapping) ormPersistentAttribute.getMapping();
-		assertFalse(oneToManyMapping.isDefault());
-		oneToManyMapping.setSpecifiedFetch(FetchType.EAGER);
-		oneToManyMapping.setSpecifiedTargetEntity("TargetEntity");
-		oneToManyMapping.setOrderBy("customOrder");
-		oneToManyMapping.setMapKey("mapKey");
-		oneToManyMapping.getCascade().setAll(true);
-		oneToManyMapping.getCascade().setMerge(true);
-		oneToManyMapping.getCascade().setPersist(true);
-		oneToManyMapping.getCascade().setRefresh(true);
-		oneToManyMapping.getCascade().setRemove(true);
-		oneToManyMapping.getRelationshipReference().getJoinTableJoiningStrategy().getJoinTable().setSpecifiedName("MY_JOIN_TABLE");
-		JoinColumn joinColumn = oneToManyMapping.getRelationshipReference().getJoinTableJoiningStrategy().getJoinTable().addSpecifiedJoinColumn(0);
-		joinColumn.setSpecifiedName("name");
-		joinColumn.setSpecifiedReferencedColumnName("referenceName");
-		JoinColumn inverseJoinColumn = oneToManyMapping.getRelationshipReference().getJoinTableJoiningStrategy().getJoinTable().addSpecifiedInverseJoinColumn(0);
-		inverseJoinColumn.setSpecifiedName("inverseName");
-		inverseJoinColumn.setSpecifiedReferencedColumnName("inverseReferenceName");
-		assertFalse(oneToManyMapping.isDefault());	
-		
-		ormPersistentAttribute.setSpecifiedMappingKey(MappingKeys.MANY_TO_MANY_ATTRIBUTE_MAPPING_KEY);
-		assertEquals(1, ormPersistentType.specifiedAttributesSize());
-		assertEquals(ormPersistentAttribute, ormPersistentType.specifiedAttributes().next());
-		assertTrue(ormPersistentAttribute.getMapping() instanceof ManyToManyMapping);
-		assertEquals("oneToMany", ormPersistentAttribute.getMapping().getName());
-		assertEquals(FetchType.EAGER, ((ManyToManyMapping) ormPersistentAttribute.getMapping()).getSpecifiedFetch());
-		assertEquals("TargetEntity", ((ManyToManyMapping) ormPersistentAttribute.getMapping()).getSpecifiedTargetEntity());
-		assertTrue(((ManyToManyMapping) ormPersistentAttribute.getMapping()).getCascade().isAll());
-		assertTrue(((ManyToManyMapping) ormPersistentAttribute.getMapping()).getCascade().isMerge());
-		assertTrue(((ManyToManyMapping) ormPersistentAttribute.getMapping()).getCascade().isPersist());
-		assertTrue(((ManyToManyMapping) ormPersistentAttribute.getMapping()).getCascade().isRefresh());
-		assertTrue(((ManyToManyMapping) ormPersistentAttribute.getMapping()).getCascade().isRemove());
-		JoinTable joinTable = ((ManyToManyMapping) ormPersistentAttribute.getMapping()).getRelationshipReference().getJoinTableJoiningStrategy().getJoinTable();
-		assertEquals("MY_JOIN_TABLE", joinTable.getName());
-		assertEquals("name", joinTable.joinColumns().next().getSpecifiedName());
-		assertEquals("referenceName", joinTable.joinColumns().next().getSpecifiedReferencedColumnName());
-		assertEquals("inverseName", joinTable.inverseJoinColumns().next().getSpecifiedName());
-		assertEquals("inverseReferenceName", joinTable.inverseJoinColumns().next().getSpecifiedReferencedColumnName());
-	}
-	
-	public void testOneToManyMorphToManyToOneMapping() throws Exception {
-		OrmPersistentType ormPersistentType = getEntityMappings().addPersistentType(MappingKeys.ENTITY_TYPE_MAPPING_KEY, FULLY_QUALIFIED_TYPE_NAME);
-		OrmPersistentAttribute ormPersistentAttribute = ormPersistentType.addSpecifiedPersistentAttribute(MappingKeys.ONE_TO_MANY_ATTRIBUTE_MAPPING_KEY, "oneToMany");
-		
-		OneToManyMapping oneToManyMapping = (OneToManyMapping) ormPersistentAttribute.getMapping();
-		assertFalse(oneToManyMapping.isDefault());
-		oneToManyMapping.setSpecifiedFetch(FetchType.EAGER);
-		oneToManyMapping.setSpecifiedTargetEntity("TargetEntity");
-		oneToManyMapping.setOrderBy("customOrder");
-		oneToManyMapping.setMapKey("mapKey");
-		oneToManyMapping.getRelationshipReference().getMappedByJoiningStrategy().setMappedByAttribute("mappedBy");
-		oneToManyMapping.getCascade().setAll(true);
-		oneToManyMapping.getCascade().setMerge(true);
-		oneToManyMapping.getCascade().setPersist(true);
-		oneToManyMapping.getCascade().setRefresh(true);
-		oneToManyMapping.getCascade().setRemove(true);
-		assertFalse(oneToManyMapping.isDefault());	
-		
-		ormPersistentAttribute.setSpecifiedMappingKey(MappingKeys.MANY_TO_ONE_ATTRIBUTE_MAPPING_KEY);
-		assertEquals(1, ormPersistentType.specifiedAttributesSize());
-		assertEquals(ormPersistentAttribute, ormPersistentType.specifiedAttributes().next());
-		assertTrue(ormPersistentAttribute.getMapping() instanceof ManyToOneMapping);
-		assertEquals("oneToMany", ormPersistentAttribute.getMapping().getName());
-		assertEquals(FetchType.EAGER, ((ManyToOneMapping) ormPersistentAttribute.getMapping()).getSpecifiedFetch());
-		assertEquals("TargetEntity", ((ManyToOneMapping) ormPersistentAttribute.getMapping()).getSpecifiedTargetEntity());
-		assertTrue(((ManyToOneMapping) ormPersistentAttribute.getMapping()).getCascade().isAll());
-		assertTrue(((ManyToOneMapping) ormPersistentAttribute.getMapping()).getCascade().isMerge());
-		assertTrue(((ManyToOneMapping) ormPersistentAttribute.getMapping()).getCascade().isPersist());
-		assertTrue(((ManyToOneMapping) ormPersistentAttribute.getMapping()).getCascade().isRefresh());
-		assertTrue(((ManyToOneMapping) ormPersistentAttribute.getMapping()).getCascade().isRemove());
-	}
-	
-	public void testOneToManyMorphToBasicMapping() throws Exception {
-		OrmPersistentType ormPersistentType = getEntityMappings().addPersistentType(MappingKeys.ENTITY_TYPE_MAPPING_KEY, FULLY_QUALIFIED_TYPE_NAME);
-		OrmPersistentAttribute ormPersistentAttribute = ormPersistentType.addSpecifiedPersistentAttribute(MappingKeys.ONE_TO_MANY_ATTRIBUTE_MAPPING_KEY, "oneToMany");
-		
-		OneToManyMapping oneToManyMapping = (OneToManyMapping) ormPersistentAttribute.getMapping();
-		assertFalse(oneToManyMapping.isDefault());
-		oneToManyMapping.setSpecifiedFetch(FetchType.EAGER);
-		oneToManyMapping.setSpecifiedTargetEntity("TargetEntity");
-		oneToManyMapping.setOrderBy("customOrder");
-		oneToManyMapping.setMapKey("mapKey");
-		oneToManyMapping.getRelationshipReference().getMappedByJoiningStrategy().setMappedByAttribute("mappedBy");
-		oneToManyMapping.getCascade().setAll(true);
-		oneToManyMapping.getCascade().setMerge(true);
-		oneToManyMapping.getCascade().setPersist(true);
-		oneToManyMapping.getCascade().setRefresh(true);
-		oneToManyMapping.getCascade().setRemove(true);
-		assertFalse(oneToManyMapping.isDefault());	
-		
-		ormPersistentAttribute.setSpecifiedMappingKey(MappingKeys.BASIC_ATTRIBUTE_MAPPING_KEY);
-		assertEquals(1, ormPersistentType.specifiedAttributesSize());
-		assertEquals(ormPersistentAttribute, ormPersistentType.specifiedAttributes().next());
-		assertTrue(ormPersistentAttribute.getMapping() instanceof BasicMapping);
-		assertEquals("oneToMany", ormPersistentAttribute.getMapping().getName());
-//TODO	assertEquals(FetchType.EAGER, ((IBasicMapping) ormPersistentAttribute.getMapping()).getSpecifiedFetch());
-	}
-}
\ No newline at end of file
diff --git a/jpa/tests/org.eclipse.jpt.core.tests/src/org/eclipse/jpt/core/tests/internal/context/orm/OrmOneToOneMappingTests.java b/jpa/tests/org.eclipse.jpt.core.tests/src/org/eclipse/jpt/core/tests/internal/context/orm/OrmOneToOneMappingTests.java
deleted file mode 100644
index 601cf62..0000000
--- a/jpa/tests/org.eclipse.jpt.core.tests/src/org/eclipse/jpt/core/tests/internal/context/orm/OrmOneToOneMappingTests.java
+++ /dev/null
@@ -1,969 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.core.tests.internal.context.orm;
-
-import java.util.Iterator;
-import java.util.ListIterator;
-import org.eclipse.jdt.core.ICompilationUnit;
-import org.eclipse.jpt.core.JptCorePlugin;
-import org.eclipse.jpt.core.MappingKeys;
-import org.eclipse.jpt.core.context.BasicMapping;
-import org.eclipse.jpt.core.context.Cascade;
-import org.eclipse.jpt.core.context.EmbeddedIdMapping;
-import org.eclipse.jpt.core.context.EmbeddedMapping;
-import org.eclipse.jpt.core.context.FetchType;
-import org.eclipse.jpt.core.context.IdMapping;
-import org.eclipse.jpt.core.context.JoinColumn;
-import org.eclipse.jpt.core.context.ManyToManyMapping;
-import org.eclipse.jpt.core.context.ManyToOneMapping;
-import org.eclipse.jpt.core.context.MappedByJoiningStrategy;
-import org.eclipse.jpt.core.context.OneToManyMapping;
-import org.eclipse.jpt.core.context.OneToOneMapping;
-import org.eclipse.jpt.core.context.TransientMapping;
-import org.eclipse.jpt.core.context.VersionMapping;
-import org.eclipse.jpt.core.context.orm.OrmJoinColumn;
-import org.eclipse.jpt.core.context.orm.OrmJoinColumnJoiningStrategy;
-import org.eclipse.jpt.core.context.orm.OrmOneToOneMapping;
-import org.eclipse.jpt.core.context.orm.OrmPersistentAttribute;
-import org.eclipse.jpt.core.context.orm.OrmPersistentType;
-import org.eclipse.jpt.core.context.orm.OrmPrimaryKeyJoinColumn;
-import org.eclipse.jpt.core.context.orm.OrmPrimaryKeyJoinColumnJoiningStrategy;
-import org.eclipse.jpt.core.resource.java.JPA;
-import org.eclipse.jpt.core.resource.orm.XmlOneToOne;
-import org.eclipse.jpt.core.resource.persistence.PersistenceFactory;
-import org.eclipse.jpt.core.resource.persistence.XmlMappingFileRef;
-import org.eclipse.jpt.core.tests.internal.context.ContextModelTestCase;
-import org.eclipse.jpt.core.tests.internal.projects.TestJavaProject.SourceWriter;
-import org.eclipse.jpt.utility.internal.iterators.ArrayIterator;
-
-@SuppressWarnings("nls")
-public class OrmOneToOneMappingTests extends ContextModelTestCase
-{
-	public OrmOneToOneMappingTests(String name) {
-		super(name);
-	}
-	
-	@Override
-	protected void setUp() throws Exception {
-		super.setUp();
-		XmlMappingFileRef mappingFileRef = PersistenceFactory.eINSTANCE.createXmlMappingFileRef();
-		mappingFileRef.setFileName(JptCorePlugin.DEFAULT_ORM_XML_FILE_PATH);
-		getXmlPersistenceUnit().getMappingFiles().add(mappingFileRef);
-		getPersistenceXmlResource().save(null);
-	}
-	
-	private ICompilationUnit createTestEntityOneToOneMapping() throws Exception {
-		return this.createTestType(new DefaultAnnotationWriter() {
-			@Override
-			public Iterator<String> imports() {
-				return new ArrayIterator<String>(JPA.ENTITY, JPA.ONE_TO_ONE, JPA.JOIN_COLUMN, JPA.FETCH_TYPE, JPA.CASCADE_TYPE);
-			}
-			@Override
-			public void appendTypeAnnotationTo(StringBuilder sb) {
-				sb.append("@Entity");
-			}
-			
-			@Override
-			public void appendIdFieldAnnotationTo(StringBuilder sb) {
-				sb.append(CR);
-				sb.append("    @OneToOne(fetch=FetchType.LAZY, optional=false, targetEntity=Address.class, cascade={CascadeType.ALL, CascadeType.PERSIST, CascadeType.MERGE, CascadeType.REMOVE, CascadeType.REFRESH})");
-				sb.append(CR);
-				sb.append("    @JoinColumn(name=\"MY_COLUMN\", referencedColumnName=\"MY_REFERENCED_COLUMN\", unique=true, nullable=false, insertable=false, updatable=false, columnDefinition=\"COLUMN_DEFINITION\", table=\"MY_TABLE\")");
-				sb.append(CR);
-				sb.append("    private Address address;").append(CR);
-				sb.append(CR);
-				sb.append("    @Id");				
-			}
-		});
-	}	
-	
-	private void createTestTargetEntityAddress() throws Exception {
-		SourceWriter sourceWriter = new SourceWriter() {
-			public void appendSourceTo(StringBuilder sb) {
-				sb.append(CR);
-					sb.append("import ");
-					sb.append(JPA.ENTITY);
-					sb.append(";");
-					sb.append(CR);
-					sb.append("import ");
-					sb.append(JPA.ID);
-					sb.append(";");
-					sb.append(CR);
-				sb.append(CR);
-				sb.append("@Entity");
-				sb.append(CR);
-				sb.append("public class ").append("Address").append(" ");
-				sb.append("{").append(CR);
-				sb.append(CR);
-				sb.append("    @Id").append(CR);
-				sb.append("    private int id;").append(CR);
-				sb.append(CR);
-				sb.append("    private String city;").append(CR);
-				sb.append(CR);
-				sb.append("    private String state;").append(CR);
-				sb.append(CR);
-				sb.append("    private int zip;").append(CR);
-				sb.append(CR);
-				sb.append("}").append(CR);
-		}
-		};
-		this.javaProject.createCompilationUnit(PACKAGE_NAME, "Address.java", sourceWriter);
-	}
-	
-	public void testUpdateName() throws Exception {
-		OrmPersistentType ormPersistentType = getEntityMappings().addPersistentType(MappingKeys.ENTITY_TYPE_MAPPING_KEY, "model.Foo");
-		OrmPersistentAttribute ormPersistentAttribute = ormPersistentType.addSpecifiedPersistentAttribute(MappingKeys.ONE_TO_ONE_ATTRIBUTE_MAPPING_KEY, "oneToOneMapping");
-		OrmOneToOneMapping ormOneToOneMapping = (OrmOneToOneMapping) ormPersistentAttribute.getMapping();
-		XmlOneToOne oneToOne = getXmlEntityMappings().getEntities().get(0).getAttributes().getOneToOnes().get(0);
-		
-		assertEquals("oneToOneMapping", ormOneToOneMapping.getName());
-		assertEquals("oneToOneMapping", oneToOne.getName());
-				
-		//set name in the resource model, verify context model updated
-		oneToOne.setName("newName");
-		assertEquals("newName", ormOneToOneMapping.getName());
-		assertEquals("newName", oneToOne.getName());
-	
-		//set name to null in the resource model
-		oneToOne.setName(null);
-		assertNull(ormOneToOneMapping.getName());
-		assertNull(oneToOne.getName());
-	}
-	
-	public void testModifyName() throws Exception {
-		OrmPersistentType ormPersistentType = getEntityMappings().addPersistentType(MappingKeys.ENTITY_TYPE_MAPPING_KEY, "model.Foo");
-		OrmPersistentAttribute ormPersistentAttribute = ormPersistentType.addSpecifiedPersistentAttribute(MappingKeys.ONE_TO_ONE_ATTRIBUTE_MAPPING_KEY, "oneToOneMapping");
-		OrmOneToOneMapping ormOneToOneMapping = (OrmOneToOneMapping) ormPersistentAttribute.getMapping();
-		XmlOneToOne oneToOne = getXmlEntityMappings().getEntities().get(0).getAttributes().getOneToOnes().get(0);
-		
-		assertEquals("oneToOneMapping", ormOneToOneMapping.getName());
-		assertEquals("oneToOneMapping", oneToOne.getName());
-				
-		//set name in the context model, verify resource model updated
-		ormOneToOneMapping.setName("newName");
-		assertEquals("newName", ormOneToOneMapping.getName());
-		assertEquals("newName", oneToOne.getName());
-	
-		//set name to null in the context model
-		ormOneToOneMapping.setName(null);
-		assertNull(ormOneToOneMapping.getName());
-		assertNull(oneToOne.getName());
-	}
-	
-	public void testUpdateSpecifiedTargetEntity() throws Exception {
-		OrmPersistentType ormPersistentType = getEntityMappings().addPersistentType(MappingKeys.ENTITY_TYPE_MAPPING_KEY, "model.Foo");
-		OrmPersistentAttribute ormPersistentAttribute = ormPersistentType.addSpecifiedPersistentAttribute(MappingKeys.ONE_TO_ONE_ATTRIBUTE_MAPPING_KEY, "oneToOneMapping");
-		OrmOneToOneMapping ormOneToOneMapping = (OrmOneToOneMapping) ormPersistentAttribute.getMapping();
-		XmlOneToOne oneToOne = getXmlEntityMappings().getEntities().get(0).getAttributes().getOneToOnes().get(0);
-		
-		assertNull(ormOneToOneMapping.getSpecifiedTargetEntity());
-		assertNull(oneToOne.getTargetEntity());
-				
-		//set target entity in the resource model, verify context model updated
-		oneToOne.setTargetEntity("newTargetEntity");
-		assertEquals("newTargetEntity", ormOneToOneMapping.getSpecifiedTargetEntity());
-		assertEquals("newTargetEntity", oneToOne.getTargetEntity());
-	
-		//set target entity to null in the resource model
-		oneToOne.setTargetEntity(null);
-		assertNull(ormOneToOneMapping.getSpecifiedTargetEntity());
-		assertNull(oneToOne.getTargetEntity());
-	}
-	
-	public void testModifySpecifiedTargetEntity() throws Exception {
-		OrmPersistentType ormPersistentType = getEntityMappings().addPersistentType(MappingKeys.ENTITY_TYPE_MAPPING_KEY, "model.Foo");
-		OrmPersistentAttribute ormPersistentAttribute = ormPersistentType.addSpecifiedPersistentAttribute(MappingKeys.ONE_TO_ONE_ATTRIBUTE_MAPPING_KEY, "oneToOneMapping");
-		OrmOneToOneMapping ormOneToOneMapping = (OrmOneToOneMapping) ormPersistentAttribute.getMapping();
-		XmlOneToOne oneToOne = getXmlEntityMappings().getEntities().get(0).getAttributes().getOneToOnes().get(0);
-		
-		assertNull(ormOneToOneMapping.getSpecifiedTargetEntity());
-		assertNull(oneToOne.getTargetEntity());
-				
-		//set target entity in the context model, verify resource model updated
-		ormOneToOneMapping.setSpecifiedTargetEntity("newTargetEntity");
-		assertEquals("newTargetEntity", ormOneToOneMapping.getSpecifiedTargetEntity());
-		assertEquals("newTargetEntity", oneToOne.getTargetEntity());
-	
-		//set target entity to null in the context model
-		ormOneToOneMapping.setSpecifiedTargetEntity(null);
-		assertNull(ormOneToOneMapping.getSpecifiedTargetEntity());
-		assertNull(oneToOne.getTargetEntity());
-	}
-	
-	public void testUpdateSpecifiedFetch() throws Exception {
-		OrmPersistentType ormPersistentType = getEntityMappings().addPersistentType(MappingKeys.ENTITY_TYPE_MAPPING_KEY, "model.Foo");
-		OrmPersistentAttribute ormPersistentAttribute = ormPersistentType.addSpecifiedPersistentAttribute(MappingKeys.ONE_TO_ONE_ATTRIBUTE_MAPPING_KEY, "oneToOneMapping");
-		OrmOneToOneMapping ormOneToOneMapping = (OrmOneToOneMapping) ormPersistentAttribute.getMapping();
-		XmlOneToOne oneToOneResource = getXmlEntityMappings().getEntities().get(0).getAttributes().getOneToOnes().get(0);
-		
-		assertNull(ormOneToOneMapping.getSpecifiedFetch());
-		assertNull(oneToOneResource.getFetch());
-				
-		//set fetch in the resource model, verify context model updated
-		oneToOneResource.setFetch(org.eclipse.jpt.core.resource.orm.FetchType.EAGER);
-		assertEquals(FetchType.EAGER, ormOneToOneMapping.getSpecifiedFetch());
-		assertEquals(org.eclipse.jpt.core.resource.orm.FetchType.EAGER, oneToOneResource.getFetch());
-	
-		oneToOneResource.setFetch(org.eclipse.jpt.core.resource.orm.FetchType.LAZY);
-		assertEquals(FetchType.LAZY, ormOneToOneMapping.getSpecifiedFetch());
-		assertEquals(org.eclipse.jpt.core.resource.orm.FetchType.LAZY, oneToOneResource.getFetch());
-
-		//set fetch to null in the resource model
-		oneToOneResource.setFetch(null);
-		assertNull(ormOneToOneMapping.getSpecifiedFetch());
-		assertNull(oneToOneResource.getFetch());
-	}
-	
-	public void testModifySpecifiedFetch() throws Exception {
-		OrmPersistentType ormPersistentType = getEntityMappings().addPersistentType(MappingKeys.ENTITY_TYPE_MAPPING_KEY, "model.Foo");
-		OrmPersistentAttribute ormPersistentAttribute = ormPersistentType.addSpecifiedPersistentAttribute(MappingKeys.ONE_TO_ONE_ATTRIBUTE_MAPPING_KEY, "oneToOneMapping");
-		OrmOneToOneMapping ormOneToOneMapping = (OrmOneToOneMapping) ormPersistentAttribute.getMapping();
-		XmlOneToOne oneToOneResource = getXmlEntityMappings().getEntities().get(0).getAttributes().getOneToOnes().get(0);
-		
-		assertNull(ormOneToOneMapping.getSpecifiedFetch());
-		assertNull(oneToOneResource.getFetch());
-				
-		//set fetch in the context model, verify resource model updated
-		ormOneToOneMapping.setSpecifiedFetch(FetchType.EAGER);
-		assertEquals(org.eclipse.jpt.core.resource.orm.FetchType.EAGER, oneToOneResource.getFetch());
-		assertEquals(FetchType.EAGER, ormOneToOneMapping.getSpecifiedFetch());
-	
-		ormOneToOneMapping.setSpecifiedFetch(FetchType.LAZY);
-		assertEquals(org.eclipse.jpt.core.resource.orm.FetchType.LAZY, oneToOneResource.getFetch());
-		assertEquals(FetchType.LAZY, ormOneToOneMapping.getSpecifiedFetch());
-
-		//set fetch to null in the context model
-		ormOneToOneMapping.setSpecifiedFetch(null);
-		assertNull(oneToOneResource.getFetch());
-		assertNull(ormOneToOneMapping.getSpecifiedFetch());
-	}
-
-	public void testUpdateMappedBy() throws Exception {
-		OrmPersistentType ormPersistentType = getEntityMappings().addPersistentType(MappingKeys.ENTITY_TYPE_MAPPING_KEY, "model.Foo");
-		OrmPersistentAttribute ormPersistentAttribute = ormPersistentType.addSpecifiedPersistentAttribute(MappingKeys.ONE_TO_ONE_ATTRIBUTE_MAPPING_KEY, "oneToOneMapping");
-		OrmOneToOneMapping ormOneToOneMapping = (OrmOneToOneMapping) ormPersistentAttribute.getMapping();
-		MappedByJoiningStrategy strategy = ormOneToOneMapping.getRelationshipReference().getMappedByJoiningStrategy();
-		XmlOneToOne oneToOne = getXmlEntityMappings().getEntities().get(0).getAttributes().getOneToOnes().get(0);
-		
-		assertNull(strategy.getMappedByAttribute());
-		assertNull(oneToOne.getMappedBy());
-				
-		//set mappedBy in the resource model, verify context model updated
-		oneToOne.setMappedBy("newMappedBy");
-		assertEquals("newMappedBy", strategy.getMappedByAttribute());
-		assertEquals("newMappedBy", oneToOne.getMappedBy());
-	
-		//set mappedBy to null in the resource model
-		oneToOne.setMappedBy(null);
-		assertNull(strategy.getMappedByAttribute());
-		assertNull(oneToOne.getMappedBy());
-	}
-	
-	public void testModifyMappedBy() throws Exception {
-		OrmPersistentType ormPersistentType = getEntityMappings().addPersistentType(MappingKeys.ENTITY_TYPE_MAPPING_KEY, "model.Foo");
-		OrmPersistentAttribute ormPersistentAttribute = ormPersistentType.addSpecifiedPersistentAttribute(MappingKeys.ONE_TO_ONE_ATTRIBUTE_MAPPING_KEY, "oneToOneMapping");
-		OrmOneToOneMapping ormOneToOneMapping = (OrmOneToOneMapping) ormPersistentAttribute.getMapping();
-		MappedByJoiningStrategy strategy = ormOneToOneMapping.getRelationshipReference().getMappedByJoiningStrategy();
-		XmlOneToOne oneToOne = getXmlEntityMappings().getEntities().get(0).getAttributes().getOneToOnes().get(0);
-		
-		assertNull(strategy.getMappedByAttribute());
-		assertNull(oneToOne.getMappedBy());
-				
-		//set mappedBy in the context model, verify resource model updated
-		strategy.setMappedByAttribute("newMappedBy");
-		assertEquals("newMappedBy", strategy.getMappedByAttribute());
-		assertEquals("newMappedBy", oneToOne.getMappedBy());
-	
-		//set mappedBy to null in the context model
-		strategy.setMappedByAttribute(null);
-		assertNull(strategy.getMappedByAttribute());
-		assertNull(oneToOne.getMappedBy());
-	}
-	
-	
-	public void testUpdateSpecifiedOptional() throws Exception {
-		OrmPersistentType ormPersistentType = getEntityMappings().addPersistentType(MappingKeys.ENTITY_TYPE_MAPPING_KEY, "model.Foo");
-		OrmPersistentAttribute ormPersistentAttribute = ormPersistentType.addSpecifiedPersistentAttribute(MappingKeys.ONE_TO_ONE_ATTRIBUTE_MAPPING_KEY, "oneToOneMapping");
-		OrmOneToOneMapping ormOneToOneMapping = (OrmOneToOneMapping) ormPersistentAttribute.getMapping();
-		XmlOneToOne oneToOneResource = getXmlEntityMappings().getEntities().get(0).getAttributes().getOneToOnes().get(0);
-		
-		assertNull(ormOneToOneMapping.getSpecifiedOptional());
-		assertNull(oneToOneResource.getOptional());
-				
-		//set optional in the resource model, verify context model updated
-		oneToOneResource.setOptional(Boolean.TRUE);
-		assertEquals(Boolean.TRUE, ormOneToOneMapping.getSpecifiedOptional());
-		assertEquals(Boolean.TRUE, oneToOneResource.getOptional());
-	
-		oneToOneResource.setOptional(Boolean.FALSE);
-		assertEquals(Boolean.FALSE, ormOneToOneMapping.getSpecifiedOptional());
-		assertEquals(Boolean.FALSE, oneToOneResource.getOptional());
-
-		//set optional to null in the resource model
-		oneToOneResource.setOptional(null);
-		assertNull(ormOneToOneMapping.getSpecifiedOptional());
-		assertNull(oneToOneResource.getOptional());
-	}
-	
-	public void testModifySpecifiedOptional() throws Exception {
-		OrmPersistentType ormPersistentType = getEntityMappings().addPersistentType(MappingKeys.ENTITY_TYPE_MAPPING_KEY, "model.Foo");
-		OrmPersistentAttribute ormPersistentAttribute = ormPersistentType.addSpecifiedPersistentAttribute(MappingKeys.ONE_TO_ONE_ATTRIBUTE_MAPPING_KEY, "oneToOneMapping");
-		OrmOneToOneMapping ormOneToOneMapping = (OrmOneToOneMapping) ormPersistentAttribute.getMapping();
-		XmlOneToOne oneToOneResource = getXmlEntityMappings().getEntities().get(0).getAttributes().getOneToOnes().get(0);
-		
-		assertNull(ormOneToOneMapping.getSpecifiedOptional());
-		assertNull(oneToOneResource.getOptional());
-				
-		//set optional in the context model, verify resource model updated
-		ormOneToOneMapping.setSpecifiedOptional(Boolean.TRUE);
-		assertEquals(Boolean.TRUE, oneToOneResource.getOptional());
-		assertEquals(Boolean.TRUE, ormOneToOneMapping.getSpecifiedOptional());
-	
-		ormOneToOneMapping.setSpecifiedOptional(Boolean.FALSE);
-		assertEquals(Boolean.FALSE, oneToOneResource.getOptional());
-		assertEquals(Boolean.FALSE, ormOneToOneMapping.getSpecifiedOptional());
-
-		//set optional to null in the context model
-		ormOneToOneMapping.setSpecifiedOptional(null);
-		assertNull(oneToOneResource.getOptional());
-		assertNull(ormOneToOneMapping.getSpecifiedOptional());
-	}
-	
-	public void testAddSpecifiedJoinColumn() throws Exception {
-		OrmPersistentType ormPersistentType = getEntityMappings().addPersistentType(MappingKeys.ENTITY_TYPE_MAPPING_KEY, "model.Foo");
-		OrmPersistentAttribute ormPersistentAttribute = ormPersistentType.addSpecifiedPersistentAttribute(MappingKeys.ONE_TO_ONE_ATTRIBUTE_MAPPING_KEY, "oneToOneMapping");
-		OrmOneToOneMapping ormOneToOneMapping = (OrmOneToOneMapping) ormPersistentAttribute.getMapping();
-		OrmJoinColumnJoiningStrategy strategy = ormOneToOneMapping.getRelationshipReference().getJoinColumnJoiningStrategy();
-		XmlOneToOne oneToOneResource = getXmlEntityMappings().getEntities().get(0).getAttributes().getOneToOnes().get(0);
-		
-		OrmJoinColumn joinColumn = strategy.addSpecifiedJoinColumn(0);
-		joinColumn.setSpecifiedName("FOO");
-				
-		assertEquals("FOO", oneToOneResource.getJoinColumns().get(0).getName());
-		
-		OrmJoinColumn joinColumn2 = strategy.addSpecifiedJoinColumn(0);
-		joinColumn2.setSpecifiedName("BAR");
-		
-		assertEquals("BAR", oneToOneResource.getJoinColumns().get(0).getName());
-		assertEquals("FOO", oneToOneResource.getJoinColumns().get(1).getName());
-		
-		OrmJoinColumn joinColumn3 = strategy.addSpecifiedJoinColumn(1);
-		joinColumn3.setSpecifiedName("BAZ");
-		
-		assertEquals("BAR", oneToOneResource.getJoinColumns().get(0).getName());
-		assertEquals("BAZ", oneToOneResource.getJoinColumns().get(1).getName());
-		assertEquals("FOO", oneToOneResource.getJoinColumns().get(2).getName());
-		
-		ListIterator<OrmJoinColumn> joinColumns = strategy.specifiedJoinColumns();
-		assertEquals(joinColumn2, joinColumns.next());
-		assertEquals(joinColumn3, joinColumns.next());
-		assertEquals(joinColumn, joinColumns.next());
-		
-		joinColumns = strategy.specifiedJoinColumns();
-		assertEquals("BAR", joinColumns.next().getName());
-		assertEquals("BAZ", joinColumns.next().getName());
-		assertEquals("FOO", joinColumns.next().getName());
-	}
-	
-	public void testRemoveSpecifiedJoinColumn() throws Exception {
-		OrmPersistentType ormPersistentType = getEntityMappings().addPersistentType(MappingKeys.ENTITY_TYPE_MAPPING_KEY, "model.Foo");
-		OrmPersistentAttribute ormPersistentAttribute = ormPersistentType.addSpecifiedPersistentAttribute(MappingKeys.ONE_TO_ONE_ATTRIBUTE_MAPPING_KEY, "oneToOneMapping");
-		OrmOneToOneMapping ormOneToOneMapping = (OrmOneToOneMapping) ormPersistentAttribute.getMapping();
-		OrmJoinColumnJoiningStrategy strategy = ormOneToOneMapping.getRelationshipReference().getJoinColumnJoiningStrategy();
-		XmlOneToOne oneToOneResource = getXmlEntityMappings().getEntities().get(0).getAttributes().getOneToOnes().get(0);
-
-		strategy.addSpecifiedJoinColumn(0).setSpecifiedName("FOO");
-		strategy.addSpecifiedJoinColumn(1).setSpecifiedName("BAR");
-		strategy.addSpecifiedJoinColumn(2).setSpecifiedName("BAZ");
-		
-		assertEquals(3, oneToOneResource.getJoinColumns().size());
-		
-		strategy.removeSpecifiedJoinColumn(0);
-		assertEquals(2, oneToOneResource.getJoinColumns().size());
-		assertEquals("BAR", oneToOneResource.getJoinColumns().get(0).getName());
-		assertEquals("BAZ", oneToOneResource.getJoinColumns().get(1).getName());
-
-		strategy.removeSpecifiedJoinColumn(0);
-		assertEquals(1, oneToOneResource.getJoinColumns().size());
-		assertEquals("BAZ", oneToOneResource.getJoinColumns().get(0).getName());
-		
-		strategy.removeSpecifiedJoinColumn(0);
-		assertEquals(0, oneToOneResource.getJoinColumns().size());
-	}
-	
-	public void testMoveSpecifiedJoinColumn() throws Exception {
-		OrmPersistentType ormPersistentType = getEntityMappings().addPersistentType(MappingKeys.ENTITY_TYPE_MAPPING_KEY, "model.Foo");
-		OrmPersistentAttribute ormPersistentAttribute = ormPersistentType.addSpecifiedPersistentAttribute(MappingKeys.ONE_TO_ONE_ATTRIBUTE_MAPPING_KEY, "oneToOneMapping");
-		OrmOneToOneMapping ormOneToOneMapping = (OrmOneToOneMapping) ormPersistentAttribute.getMapping();
-		OrmJoinColumnJoiningStrategy strategy = ormOneToOneMapping.getRelationshipReference().getJoinColumnJoiningStrategy();
-		XmlOneToOne oneToOneResource = getXmlEntityMappings().getEntities().get(0).getAttributes().getOneToOnes().get(0);
-
-		strategy.addSpecifiedJoinColumn(0).setSpecifiedName("FOO");
-		strategy.addSpecifiedJoinColumn(1).setSpecifiedName("BAR");
-		strategy.addSpecifiedJoinColumn(2).setSpecifiedName("BAZ");
-		
-		assertEquals(3, oneToOneResource.getJoinColumns().size());
-		
-		
-		strategy.moveSpecifiedJoinColumn(2, 0);
-		ListIterator<OrmJoinColumn> joinColumns = strategy.specifiedJoinColumns();
-		assertEquals("BAR", joinColumns.next().getName());
-		assertEquals("BAZ", joinColumns.next().getName());
-		assertEquals("FOO", joinColumns.next().getName());
-
-		assertEquals("BAR", oneToOneResource.getJoinColumns().get(0).getName());
-		assertEquals("BAZ", oneToOneResource.getJoinColumns().get(1).getName());
-		assertEquals("FOO", oneToOneResource.getJoinColumns().get(2).getName());
-
-
-		strategy.moveSpecifiedJoinColumn(0, 1);
-		joinColumns = strategy.specifiedJoinColumns();
-		assertEquals("BAZ", joinColumns.next().getName());
-		assertEquals("BAR", joinColumns.next().getName());
-		assertEquals("FOO", joinColumns.next().getName());
-
-		assertEquals("BAZ", oneToOneResource.getJoinColumns().get(0).getName());
-		assertEquals("BAR", oneToOneResource.getJoinColumns().get(1).getName());
-		assertEquals("FOO", oneToOneResource.getJoinColumns().get(2).getName());
-	}
-	
-	public void testOneToOneMappingNoUnderylingJavaAttribute() throws Exception {
-		createTestEntityOneToOneMapping();
-		createTestTargetEntityAddress();
-
-		OrmPersistentType ormPersistentType = getEntityMappings().addPersistentType(MappingKeys.ENTITY_TYPE_MAPPING_KEY, FULLY_QUALIFIED_TYPE_NAME);
-		getEntityMappings().addPersistentType(MappingKeys.ENTITY_TYPE_MAPPING_KEY, PACKAGE_NAME + ".Address");
-		ormPersistentType.addSpecifiedPersistentAttribute(MappingKeys.ONE_TO_ONE_ATTRIBUTE_MAPPING_KEY, "foo");
-		assertEquals(3, ormPersistentType.virtualAttributesSize());
-		
-		OrmPersistentAttribute ormPersistentAttribute = ormPersistentType.specifiedAttributes().next();
-		OrmOneToOneMapping ormOneToOneMapping = (OrmOneToOneMapping) ormPersistentAttribute.getMapping();
-		
-		assertEquals("foo", ormOneToOneMapping.getName());
-
-		assertNull(ormOneToOneMapping.getSpecifiedFetch());
-		assertNull(ormOneToOneMapping.getSpecifiedOptional());
-		assertNull(ormOneToOneMapping.getSpecifiedTargetEntity());
-		assertEquals(FetchType.EAGER, ormOneToOneMapping.getFetch());
-		assertEquals(true, ormOneToOneMapping.isOptional());
-		assertNull(ormOneToOneMapping.getTargetEntity());
-
-		
-		assertTrue(ormOneToOneMapping.getRelationshipReference().getJoinColumnJoiningStrategy().joinColumnsSize() > 0);
-		//TODO default joinColumns
-		//assertTrue(ormOneToOneMapping.defaultJoinColumns().hasNext());
-	
-	
-		Cascade cascade = ormOneToOneMapping.getCascade();
-		assertFalse(cascade.isAll());
-		assertFalse(cascade.isMerge());
-		assertFalse(cascade.isPersist());
-		assertFalse(cascade.isRemove());
-		assertFalse(cascade.isRefresh());
-	}
-	
-	
-	public void testVirtualMappingMetadataCompleteFalse() throws Exception {
-		createTestEntityOneToOneMapping();
-		createTestTargetEntityAddress();
-
-		OrmPersistentType ormPersistentType = getEntityMappings().addPersistentType(MappingKeys.ENTITY_TYPE_MAPPING_KEY, FULLY_QUALIFIED_TYPE_NAME);
-		getEntityMappings().addPersistentType(MappingKeys.ENTITY_TYPE_MAPPING_KEY, PACKAGE_NAME + ".Address");
-		assertEquals(3, ormPersistentType.virtualAttributesSize());		
-		OrmPersistentAttribute ormPersistentAttribute = ormPersistentType.virtualAttributes().next();
-		
-		OrmOneToOneMapping ormOneToOneMapping = (OrmOneToOneMapping) ormPersistentAttribute.getMapping();	
-		assertEquals("address", ormOneToOneMapping.getName());
-		assertEquals(FetchType.LAZY, ormOneToOneMapping.getSpecifiedFetch());
-		assertEquals(Boolean.FALSE, ormOneToOneMapping.getSpecifiedOptional());
-		assertEquals("Address", ormOneToOneMapping.getSpecifiedTargetEntity());
-		assertNull(ormOneToOneMapping.getRelationshipReference().
-			getMappedByJoiningStrategy().getMappedByAttribute());
-
-		OrmJoinColumn ormJoinColumn = 
-			ormOneToOneMapping.getRelationshipReference().getJoinColumnJoiningStrategy().specifiedJoinColumns().next();
-		assertEquals("MY_COLUMN", ormJoinColumn.getSpecifiedName());
-		assertEquals("MY_REFERENCED_COLUMN", ormJoinColumn.getSpecifiedReferencedColumnName());
-		assertEquals(Boolean.TRUE, ormJoinColumn.getSpecifiedUnique());
-		assertEquals(Boolean.FALSE, ormJoinColumn.getSpecifiedNullable());
-		assertEquals(Boolean.FALSE, ormJoinColumn.getSpecifiedInsertable());
-		assertEquals(Boolean.FALSE, ormJoinColumn.getSpecifiedUpdatable());
-		assertEquals("COLUMN_DEFINITION", ormJoinColumn.getColumnDefinition());
-		assertEquals("MY_TABLE", ormJoinColumn.getSpecifiedTable());
-
-		Cascade cascade = ormOneToOneMapping.getCascade();
-		assertTrue(cascade.isAll());
-		assertTrue(cascade.isMerge());
-		assertTrue(cascade.isPersist());
-		assertTrue(cascade.isRemove());
-		assertTrue(cascade.isRefresh());
-	}
-	
-	public void testVirtualMappingMetadataCompleteTrue() throws Exception {
-		createTestEntityOneToOneMapping();
-		createTestTargetEntityAddress();
-
-		OrmPersistentType ormPersistentType = getEntityMappings().addPersistentType(MappingKeys.ENTITY_TYPE_MAPPING_KEY, FULLY_QUALIFIED_TYPE_NAME);
-		getEntityMappings().addPersistentType(MappingKeys.ENTITY_TYPE_MAPPING_KEY, PACKAGE_NAME + ".Address");
-		ormPersistentType.getMapping().setSpecifiedMetadataComplete(Boolean.TRUE);
-		assertEquals(3, ormPersistentType.virtualAttributesSize());		
-		OrmPersistentAttribute ormPersistentAttribute = ormPersistentType.virtualAttributes().next();
-		
-		assertEquals(MappingKeys.NULL_ATTRIBUTE_MAPPING_KEY, ormPersistentAttribute.getMappingKey());
-		
-		ormPersistentAttribute.makeSpecified(MappingKeys.ONE_TO_ONE_ATTRIBUTE_MAPPING_KEY);
-		ormPersistentAttribute= ormPersistentType.specifiedAttributes().next();
-
-		OrmOneToOneMapping ormOneToOneMapping = (OrmOneToOneMapping) ormPersistentAttribute.getMapping();	
-		assertEquals("address", ormOneToOneMapping.getName());
-		assertEquals(FetchType.EAGER, ormOneToOneMapping.getFetch());
-		assertEquals(true, ormOneToOneMapping.isOptional());
-		assertEquals("test.Address", ormOneToOneMapping.getTargetEntity());
-		assertNull(ormOneToOneMapping.getRelationshipReference().getMappedByJoiningStrategy().getMappedByAttribute());
-
-		//TODO default join columns in xml one-to-one
-//		XmlJoinColumn ormJoinColumn = ormOneToOneMapping.specifiedJoinColumns().next();
-//		//TODO java default columns name in JavaSingleRelationshipMapping.JoinColumnOwner
-//		//assertEquals("address", ormJoinColumn.getSpecifiedName());
-//		//assertEquals("address", ormJoinColumn.getSpecifiedReferencedColumnName());
-//		assertEquals(Boolean.FALSE, ormJoinColumn.getSpecifiedUnique());
-//		assertEquals(Boolean.TRUE, ormJoinColumn.getSpecifiedNullable());
-//		assertEquals(Boolean.TRUE, ormJoinColumn.getSpecifiedInsertable());
-//		assertEquals(Boolean.TRUE, ormJoinColumn.getSpecifiedUpdatable());
-//		assertNull(ormJoinColumn.getColumnDefinition());
-//		assertEquals(TYPE_NAME, ormJoinColumn.getSpecifiedTable());
-
-		Cascade cascade = ormOneToOneMapping.getCascade();
-		assertFalse(cascade.isAll());
-		assertFalse(cascade.isMerge());
-		assertFalse(cascade.isPersist());
-		assertFalse(cascade.isRemove());
-		assertFalse(cascade.isRefresh());
-	}
-	
-	public void testSpecifiedMapping() throws Exception {
-		createTestEntityOneToOneMapping();
-		createTestTargetEntityAddress();
-
-		OrmPersistentType ormPersistentType = getEntityMappings().addPersistentType(MappingKeys.ENTITY_TYPE_MAPPING_KEY, FULLY_QUALIFIED_TYPE_NAME);
-		getEntityMappings().addPersistentType(MappingKeys.ENTITY_TYPE_MAPPING_KEY, PACKAGE_NAME + ".Address");
-
-		ormPersistentType.addSpecifiedPersistentAttribute(MappingKeys.ONE_TO_ONE_ATTRIBUTE_MAPPING_KEY, "address");
-		assertEquals(2, ormPersistentType.virtualAttributesSize());
-		
-		OrmPersistentAttribute ormPersistentAttribute = ormPersistentType.specifiedAttributes().next();
-		OrmOneToOneMapping ormOneToOneMapping = (OrmOneToOneMapping) ormPersistentAttribute.getMapping();
-		
-		assertEquals("address", ormOneToOneMapping.getName());
-		assertNull(ormOneToOneMapping.getSpecifiedFetch());
-		assertNull(ormOneToOneMapping.getSpecifiedOptional());
-		assertNull(ormOneToOneMapping.getSpecifiedTargetEntity());
-		assertNull(ormOneToOneMapping.getRelationshipReference().getMappedByJoiningStrategy().getMappedByAttribute());
-		assertEquals(FetchType.EAGER, ormOneToOneMapping.getFetch());
-		assertEquals(true, ormOneToOneMapping.isOptional());
-		//TODO default target entity in xml
-		//assertEquals("test.Address", ormOneToOneMapping.getDefaultTargetEntity());
-		
-		assertTrue(ormOneToOneMapping.getRelationshipReference().getJoinColumnJoiningStrategy().joinColumnsSize() > 0);
-		
-		//TODO default join columns for specified xmlOneToOne mapping
-//		XmlJoinColumn ormJoinColumn = ormOneToOneMapping.defaultJoinColumns().next();
-//		assertNull(ormJoinColumn.getSpecifiedName());
-//		assertNull(ormJoinColumn.getSpecifiedReferencedColumnName());
-//		assertNull(ormJoinColumn.getSpecifiedUnique());
-//		assertNull(ormJoinColumn.getSpecifiedNullable());
-//		assertNull(ormJoinColumn.getSpecifiedInsertable());
-//		assertNull(ormJoinColumn.getSpecifiedUpdatable());
-//		assertNull(ormJoinColumn.getColumnDefinition());
-//		assertNull(ormJoinColumn.getSpecifiedTable());
-//		
-//		assertEquals("address", ormJoinColumn.getDefaultName());
-//		assertEquals("address", ormJoinColumn.getDefaultReferencedColumnName());
-//		assertEquals(Boolean.FALSE, ormJoinColumn.getDefaultUnique());
-//		assertEquals(Boolean.TRUE, ormJoinColumn.getDefaultNullable());
-//		assertEquals(Boolean.TRUE, ormJoinColumn.getDefaultInsertable());
-//		assertEquals(Boolean.TRUE, ormJoinColumn.getDefaultUpdatable());
-//		assertEquals(null, ormJoinColumn.getColumnDefinition());
-//		assertEquals(TYPE_NAME, ormJoinColumn.getDefaultTable());
-
-		Cascade cascade = ormOneToOneMapping.getCascade();
-		assertFalse(cascade.isAll());
-		assertFalse(cascade.isMerge());
-		assertFalse(cascade.isPersist());
-		assertFalse(cascade.isRemove());
-		assertFalse(cascade.isRefresh());
-	}
-	
-	
-	public void testOneToOneMorphToIdMapping() throws Exception {
-		OrmPersistentType ormPersistentType = getEntityMappings().addPersistentType(MappingKeys.ENTITY_TYPE_MAPPING_KEY, FULLY_QUALIFIED_TYPE_NAME);
-		OrmPersistentAttribute ormPersistentAttribute = ormPersistentType.addSpecifiedPersistentAttribute(MappingKeys.ONE_TO_ONE_ATTRIBUTE_MAPPING_KEY, "oneToOne");
-		
-		OneToOneMapping oneToOneMapping = (OneToOneMapping) ormPersistentAttribute.getMapping();
-		assertFalse(oneToOneMapping.isDefault());
-		oneToOneMapping.setSpecifiedFetch(FetchType.EAGER);
-		oneToOneMapping.setSpecifiedTargetEntity("TargetEntity");
-		oneToOneMapping.getRelationshipReference().getMappedByJoiningStrategy().setMappedByAttribute("mappedBy");
-		oneToOneMapping.getCascade().setAll(true);
-		oneToOneMapping.getCascade().setMerge(true);
-		oneToOneMapping.getCascade().setPersist(true);
-		oneToOneMapping.getCascade().setRefresh(true);
-		oneToOneMapping.getCascade().setRemove(true);
-		JoinColumn joinColumn = oneToOneMapping.getRelationshipReference().getJoinColumnJoiningStrategy().addSpecifiedJoinColumn(0);
-		joinColumn.setSpecifiedName("name");
-		joinColumn.setSpecifiedReferencedColumnName("referenceName");
-		assertFalse(oneToOneMapping.isDefault());	
-		
-		ormPersistentAttribute.setSpecifiedMappingKey(MappingKeys.ID_ATTRIBUTE_MAPPING_KEY);
-		assertEquals(1, ormPersistentType.specifiedAttributesSize());
-		assertEquals(ormPersistentAttribute, ormPersistentType.specifiedAttributes().next());
-		assertTrue(ormPersistentAttribute.getMapping() instanceof IdMapping);
-		assertEquals("oneToOne", ormPersistentAttribute.getMapping().getName());
-	}
-	
-	public void testOneToOneMorphToVersionMapping() throws Exception {
-		OrmPersistentType ormPersistentType = getEntityMappings().addPersistentType(MappingKeys.ENTITY_TYPE_MAPPING_KEY, FULLY_QUALIFIED_TYPE_NAME);
-		OrmPersistentAttribute ormPersistentAttribute = ormPersistentType.addSpecifiedPersistentAttribute(MappingKeys.ONE_TO_ONE_ATTRIBUTE_MAPPING_KEY, "oneToOne");
-		
-		OneToOneMapping oneToOneMapping = (OneToOneMapping) ormPersistentAttribute.getMapping();
-		assertFalse(oneToOneMapping.isDefault());
-		oneToOneMapping.setSpecifiedFetch(FetchType.EAGER);
-		oneToOneMapping.setSpecifiedTargetEntity("TargetEntity");
-		oneToOneMapping.getRelationshipReference().getMappedByJoiningStrategy().setMappedByAttribute("mappedBy");
-		oneToOneMapping.getCascade().setAll(true);
-		oneToOneMapping.getCascade().setMerge(true);
-		oneToOneMapping.getCascade().setPersist(true);
-		oneToOneMapping.getCascade().setRefresh(true);
-		oneToOneMapping.getCascade().setRemove(true);
-		JoinColumn joinColumn = oneToOneMapping.getRelationshipReference().getJoinColumnJoiningStrategy().addSpecifiedJoinColumn(0);
-		joinColumn.setSpecifiedName("name");
-		joinColumn.setSpecifiedReferencedColumnName("referenceName");
-		assertFalse(oneToOneMapping.isDefault());	
-		
-		ormPersistentAttribute.setSpecifiedMappingKey(MappingKeys.VERSION_ATTRIBUTE_MAPPING_KEY);
-		assertEquals(1, ormPersistentType.specifiedAttributesSize());
-		assertEquals(ormPersistentAttribute, ormPersistentType.specifiedAttributes().next());
-		assertTrue(ormPersistentAttribute.getMapping() instanceof VersionMapping);
-		assertEquals("oneToOne", ormPersistentAttribute.getMapping().getName());
-	}
-	
-	public void testOneToOneMorphToTransientMapping() throws Exception {
-		OrmPersistentType ormPersistentType = getEntityMappings().addPersistentType(MappingKeys.ENTITY_TYPE_MAPPING_KEY, FULLY_QUALIFIED_TYPE_NAME);
-		OrmPersistentAttribute ormPersistentAttribute = ormPersistentType.addSpecifiedPersistentAttribute(MappingKeys.ONE_TO_ONE_ATTRIBUTE_MAPPING_KEY, "oneToOne");
-
-		OneToOneMapping oneToOneMapping = (OneToOneMapping) ormPersistentAttribute.getMapping();
-		assertFalse(oneToOneMapping.isDefault());
-		oneToOneMapping.setSpecifiedFetch(FetchType.EAGER);
-		oneToOneMapping.setSpecifiedTargetEntity("TargetEntity");
-		oneToOneMapping.getRelationshipReference().getMappedByJoiningStrategy().setMappedByAttribute("mappedBy");
-		oneToOneMapping.getCascade().setAll(true);
-		oneToOneMapping.getCascade().setMerge(true);
-		oneToOneMapping.getCascade().setPersist(true);
-		oneToOneMapping.getCascade().setRefresh(true);
-		oneToOneMapping.getCascade().setRemove(true);
-		JoinColumn joinColumn = oneToOneMapping.getRelationshipReference().getJoinColumnJoiningStrategy().addSpecifiedJoinColumn(0);
-		joinColumn.setSpecifiedName("name");
-		joinColumn.setSpecifiedReferencedColumnName("referenceName");
-		assertFalse(oneToOneMapping.isDefault());	
-		
-		ormPersistentAttribute.setSpecifiedMappingKey(MappingKeys.TRANSIENT_ATTRIBUTE_MAPPING_KEY);
-		assertEquals(1, ormPersistentType.specifiedAttributesSize());
-		assertEquals(ormPersistentAttribute, ormPersistentType.specifiedAttributes().next());
-		assertTrue(ormPersistentAttribute.getMapping() instanceof TransientMapping);
-		assertEquals("oneToOne", ormPersistentAttribute.getMapping().getName());
-	}
-	
-	public void testOneToOneMorphToEmbeddedMapping() throws Exception {
-		OrmPersistentType ormPersistentType = getEntityMappings().addPersistentType(MappingKeys.ENTITY_TYPE_MAPPING_KEY, FULLY_QUALIFIED_TYPE_NAME);
-		OrmPersistentAttribute ormPersistentAttribute = ormPersistentType.addSpecifiedPersistentAttribute(MappingKeys.ONE_TO_ONE_ATTRIBUTE_MAPPING_KEY, "oneToOne");
-
-		OneToOneMapping oneToOneMapping = (OneToOneMapping) ormPersistentAttribute.getMapping();
-		assertFalse(oneToOneMapping.isDefault());
-		oneToOneMapping.setSpecifiedFetch(FetchType.EAGER);
-		oneToOneMapping.setSpecifiedTargetEntity("TargetEntity");
-		oneToOneMapping.getRelationshipReference().getMappedByJoiningStrategy().setMappedByAttribute("mappedBy");
-		oneToOneMapping.getCascade().setAll(true);
-		oneToOneMapping.getCascade().setMerge(true);
-		oneToOneMapping.getCascade().setPersist(true);
-		oneToOneMapping.getCascade().setRefresh(true);
-		oneToOneMapping.getCascade().setRemove(true);
-		JoinColumn joinColumn = oneToOneMapping.getRelationshipReference().getJoinColumnJoiningStrategy().addSpecifiedJoinColumn(0);
-		joinColumn.setSpecifiedName("name");
-		joinColumn.setSpecifiedReferencedColumnName("referenceName");
-		assertFalse(oneToOneMapping.isDefault());	
-		
-		ormPersistentAttribute.setSpecifiedMappingKey(MappingKeys.EMBEDDED_ATTRIBUTE_MAPPING_KEY);
-		assertEquals(1, ormPersistentType.specifiedAttributesSize());
-		assertEquals(ormPersistentAttribute, ormPersistentType.specifiedAttributes().next());
-		assertTrue(ormPersistentAttribute.getMapping() instanceof EmbeddedMapping);
-		assertEquals("oneToOne", ormPersistentAttribute.getMapping().getName());
-	}
-	
-	public void testOneToOneMorphToEmbeddedIdMapping() throws Exception {
-		OrmPersistentType ormPersistentType = getEntityMappings().addPersistentType(MappingKeys.ENTITY_TYPE_MAPPING_KEY, FULLY_QUALIFIED_TYPE_NAME);
-		OrmPersistentAttribute ormPersistentAttribute = ormPersistentType.addSpecifiedPersistentAttribute(MappingKeys.ONE_TO_ONE_ATTRIBUTE_MAPPING_KEY, "oneToOne");
-		
-		OneToOneMapping oneToOneMapping = (OneToOneMapping) ormPersistentAttribute.getMapping();
-		assertFalse(oneToOneMapping.isDefault());
-		oneToOneMapping.setSpecifiedFetch(FetchType.EAGER);
-		oneToOneMapping.setSpecifiedTargetEntity("TargetEntity");
-		oneToOneMapping.getRelationshipReference().getMappedByJoiningStrategy().setMappedByAttribute("mappedBy");
-		oneToOneMapping.getCascade().setAll(true);
-		oneToOneMapping.getCascade().setMerge(true);
-		oneToOneMapping.getCascade().setPersist(true);
-		oneToOneMapping.getCascade().setRefresh(true);
-		oneToOneMapping.getCascade().setRemove(true);
-		JoinColumn joinColumn = oneToOneMapping.getRelationshipReference().getJoinColumnJoiningStrategy().addSpecifiedJoinColumn(0);
-		joinColumn.setSpecifiedName("name");
-		joinColumn.setSpecifiedReferencedColumnName("referenceName");
-		assertFalse(oneToOneMapping.isDefault());	
-		
-		ormPersistentAttribute.setSpecifiedMappingKey(MappingKeys.EMBEDDED_ID_ATTRIBUTE_MAPPING_KEY);
-		assertEquals(1, ormPersistentType.specifiedAttributesSize());
-		assertEquals(ormPersistentAttribute, ormPersistentType.specifiedAttributes().next());
-		assertTrue(ormPersistentAttribute.getMapping() instanceof EmbeddedIdMapping);
-		assertEquals("oneToOne", ormPersistentAttribute.getMapping().getName());
-	}
-	
-	public void testOneToOneMorphToManyToManyMapping() throws Exception {
-		OrmPersistentType ormPersistentType = getEntityMappings().addPersistentType(MappingKeys.ENTITY_TYPE_MAPPING_KEY, FULLY_QUALIFIED_TYPE_NAME);
-		OrmPersistentAttribute ormPersistentAttribute = ormPersistentType.addSpecifiedPersistentAttribute(MappingKeys.ONE_TO_ONE_ATTRIBUTE_MAPPING_KEY, "oneToOne");
-		
-		OneToOneMapping oneToOneMapping = (OneToOneMapping) ormPersistentAttribute.getMapping();
-		assertFalse(oneToOneMapping.isDefault());
-		oneToOneMapping.setSpecifiedFetch(FetchType.EAGER);
-		oneToOneMapping.setSpecifiedTargetEntity("TargetEntity");
-		oneToOneMapping.getRelationshipReference().getMappedByJoiningStrategy().setMappedByAttribute("mappedBy");
-		oneToOneMapping.getCascade().setAll(true);
-		oneToOneMapping.getCascade().setMerge(true);
-		oneToOneMapping.getCascade().setPersist(true);
-		oneToOneMapping.getCascade().setRefresh(true);
-		oneToOneMapping.getCascade().setRemove(true);
-		JoinColumn joinColumn = oneToOneMapping.getRelationshipReference().getJoinColumnJoiningStrategy().addSpecifiedJoinColumn(0);
-		joinColumn.setSpecifiedName("name");
-		joinColumn.setSpecifiedReferencedColumnName("referenceName");
-		assertFalse(oneToOneMapping.isDefault());	
-		
-		ormPersistentAttribute.setSpecifiedMappingKey(MappingKeys.MANY_TO_MANY_ATTRIBUTE_MAPPING_KEY);
-		assertEquals(1, ormPersistentType.specifiedAttributesSize());
-		assertEquals(ormPersistentAttribute, ormPersistentType.specifiedAttributes().next());
-		assertTrue(ormPersistentAttribute.getMapping() instanceof ManyToManyMapping);
-		assertEquals("oneToOne", ormPersistentAttribute.getMapping().getName());
-		assertEquals(FetchType.EAGER, ((ManyToManyMapping) ormPersistentAttribute.getMapping()).getSpecifiedFetch());
-		assertEquals("TargetEntity", ((ManyToManyMapping) ormPersistentAttribute.getMapping()).getSpecifiedTargetEntity());
-		assertEquals("mappedBy", ((ManyToManyMapping) ormPersistentAttribute.getMapping()).getRelationshipReference().getMappedByJoiningStrategy().getMappedByAttribute());
-		assertTrue(((ManyToManyMapping) ormPersistentAttribute.getMapping()).getCascade().isAll());
-		assertTrue(((ManyToManyMapping) ormPersistentAttribute.getMapping()).getCascade().isMerge());
-		assertTrue(((ManyToManyMapping) ormPersistentAttribute.getMapping()).getCascade().isPersist());
-		assertTrue(((ManyToManyMapping) ormPersistentAttribute.getMapping()).getCascade().isRefresh());
-		assertTrue(((ManyToManyMapping) ormPersistentAttribute.getMapping()).getCascade().isRemove());
-	}
-	
-	public void testOneToOneMorphToOneToManyMapping() throws Exception {
-		OrmPersistentType ormPersistentType = getEntityMappings().addPersistentType(MappingKeys.ENTITY_TYPE_MAPPING_KEY, FULLY_QUALIFIED_TYPE_NAME);
-		OrmPersistentAttribute ormPersistentAttribute = ormPersistentType.addSpecifiedPersistentAttribute(MappingKeys.ONE_TO_ONE_ATTRIBUTE_MAPPING_KEY, "oneToOne");
-		
-		OneToOneMapping oneToOneMapping = (OneToOneMapping) ormPersistentAttribute.getMapping();
-		assertFalse(oneToOneMapping.isDefault());
-		oneToOneMapping.setSpecifiedFetch(FetchType.EAGER);
-		oneToOneMapping.setSpecifiedTargetEntity("TargetEntity");
-		oneToOneMapping.getRelationshipReference().getMappedByJoiningStrategy().setMappedByAttribute("mappedBy");
-		oneToOneMapping.getCascade().setAll(true);
-		oneToOneMapping.getCascade().setMerge(true);
-		oneToOneMapping.getCascade().setPersist(true);
-		oneToOneMapping.getCascade().setRefresh(true);
-		oneToOneMapping.getCascade().setRemove(true);
-		JoinColumn joinColumn = oneToOneMapping.getRelationshipReference().getJoinColumnJoiningStrategy().addSpecifiedJoinColumn(0);
-		joinColumn.setSpecifiedName("name");
-		joinColumn.setSpecifiedReferencedColumnName("referenceName");
-		assertFalse(oneToOneMapping.isDefault());	
-		
-		ormPersistentAttribute.setSpecifiedMappingKey(MappingKeys.ONE_TO_MANY_ATTRIBUTE_MAPPING_KEY);
-		assertEquals(1, ormPersistentType.specifiedAttributesSize());
-		assertEquals(ormPersistentAttribute, ormPersistentType.specifiedAttributes().next());
-		assertTrue(ormPersistentAttribute.getMapping() instanceof OneToManyMapping);
-		assertEquals("oneToOne", ormPersistentAttribute.getMapping().getName());
-		assertEquals(FetchType.EAGER, ((OneToManyMapping) ormPersistentAttribute.getMapping()).getSpecifiedFetch());
-		assertEquals("TargetEntity", ((OneToManyMapping) ormPersistentAttribute.getMapping()).getSpecifiedTargetEntity());
-		assertEquals("mappedBy", ((OneToManyMapping) ormPersistentAttribute.getMapping()).getRelationshipReference().getMappedByJoiningStrategy().getMappedByAttribute());
-		assertTrue(((OneToManyMapping) ormPersistentAttribute.getMapping()).getCascade().isAll());
-		assertTrue(((OneToManyMapping) ormPersistentAttribute.getMapping()).getCascade().isMerge());
-		assertTrue(((OneToManyMapping) ormPersistentAttribute.getMapping()).getCascade().isPersist());
-		assertTrue(((OneToManyMapping) ormPersistentAttribute.getMapping()).getCascade().isRefresh());
-		assertTrue(((OneToManyMapping) ormPersistentAttribute.getMapping()).getCascade().isRemove());
-	}
-	
-	public void testOneToOneMorphToManyToOneMapping() throws Exception {
-		OrmPersistentType ormPersistentType = getEntityMappings().addPersistentType(MappingKeys.ENTITY_TYPE_MAPPING_KEY, FULLY_QUALIFIED_TYPE_NAME);
-		OrmPersistentAttribute ormPersistentAttribute = ormPersistentType.addSpecifiedPersistentAttribute(MappingKeys.ONE_TO_ONE_ATTRIBUTE_MAPPING_KEY, "oneToOne");
-		
-		OneToOneMapping oneToOneMapping = (OneToOneMapping) ormPersistentAttribute.getMapping();
-		assertFalse(oneToOneMapping.isDefault());
-		oneToOneMapping.setSpecifiedFetch(FetchType.EAGER);
-		oneToOneMapping.setSpecifiedTargetEntity("TargetEntity");
-		oneToOneMapping.getRelationshipReference().getMappedByJoiningStrategy().setMappedByAttribute("mappedBy");
-		oneToOneMapping.getCascade().setAll(true);
-		oneToOneMapping.getCascade().setMerge(true);
-		oneToOneMapping.getCascade().setPersist(true);
-		oneToOneMapping.getCascade().setRefresh(true);
-		oneToOneMapping.getCascade().setRemove(true);
-		JoinColumn joinColumn = oneToOneMapping.getRelationshipReference().getJoinColumnJoiningStrategy().addSpecifiedJoinColumn(0);
-		joinColumn.setSpecifiedName("name");
-		joinColumn.setSpecifiedReferencedColumnName("referenceName");
-		assertFalse(oneToOneMapping.isDefault());	
-		
-		ormPersistentAttribute.setSpecifiedMappingKey(MappingKeys.MANY_TO_ONE_ATTRIBUTE_MAPPING_KEY);
-		assertEquals(1, ormPersistentType.specifiedAttributesSize());
-		assertEquals(ormPersistentAttribute, ormPersistentType.specifiedAttributes().next());
-		assertTrue(ormPersistentAttribute.getMapping() instanceof ManyToOneMapping);
-		assertEquals("oneToOne", ormPersistentAttribute.getMapping().getName());
-		assertEquals(FetchType.EAGER, ((ManyToOneMapping) ormPersistentAttribute.getMapping()).getSpecifiedFetch());
-		assertEquals("TargetEntity", ((ManyToOneMapping) ormPersistentAttribute.getMapping()).getSpecifiedTargetEntity());
-		assertTrue(((ManyToOneMapping) ormPersistentAttribute.getMapping()).getCascade().isAll());
-		assertTrue(((ManyToOneMapping) ormPersistentAttribute.getMapping()).getCascade().isMerge());
-		assertTrue(((ManyToOneMapping) ormPersistentAttribute.getMapping()).getCascade().isPersist());
-		assertTrue(((ManyToOneMapping) ormPersistentAttribute.getMapping()).getCascade().isRefresh());
-		assertTrue(((ManyToOneMapping) ormPersistentAttribute.getMapping()).getCascade().isRemove());
-		
-		joinColumn = ((ManyToOneMapping) ormPersistentAttribute.getMapping()).getRelationshipReference().getJoinColumnJoiningStrategy().specifiedJoinColumns().next();
-		assertEquals("name", joinColumn.getName());		
-		assertEquals("referenceName", joinColumn.getReferencedColumnName());		
-	}
-	
-	public void testOneToOneMorphToBasicMapping() throws Exception {
-		OrmPersistentType ormPersistentType = getEntityMappings().addPersistentType(MappingKeys.ENTITY_TYPE_MAPPING_KEY, FULLY_QUALIFIED_TYPE_NAME);
-		OrmPersistentAttribute ormPersistentAttribute = ormPersistentType.addSpecifiedPersistentAttribute(MappingKeys.ONE_TO_ONE_ATTRIBUTE_MAPPING_KEY, "oneToOne");
-		
-		OneToOneMapping oneToOneMapping = (OneToOneMapping) ormPersistentAttribute.getMapping();
-		assertFalse(oneToOneMapping.isDefault());
-		oneToOneMapping.setSpecifiedFetch(FetchType.EAGER);
-		oneToOneMapping.setSpecifiedTargetEntity("TargetEntity");
-		oneToOneMapping.getRelationshipReference().getMappedByJoiningStrategy().setMappedByAttribute("mappedBy");
-		oneToOneMapping.getCascade().setAll(true);
-		oneToOneMapping.getCascade().setMerge(true);
-		oneToOneMapping.getCascade().setPersist(true);
-		oneToOneMapping.getCascade().setRefresh(true);
-		oneToOneMapping.getCascade().setRemove(true);
-		JoinColumn joinColumn = oneToOneMapping.getRelationshipReference().getJoinColumnJoiningStrategy().addSpecifiedJoinColumn(0);
-		joinColumn.setSpecifiedName("name");
-		joinColumn.setSpecifiedReferencedColumnName("referenceName");
-		assertFalse(oneToOneMapping.isDefault());	
-		
-		ormPersistentAttribute.setSpecifiedMappingKey(MappingKeys.BASIC_ATTRIBUTE_MAPPING_KEY);
-		assertEquals(1, ormPersistentType.specifiedAttributesSize());
-		assertEquals(ormPersistentAttribute, ormPersistentType.specifiedAttributes().next());
-		assertTrue(ormPersistentAttribute.getMapping() instanceof BasicMapping);
-		assertEquals("oneToOne", ormPersistentAttribute.getMapping().getName());
-//TODO	assertEquals(FetchType.EAGER, ((IBasicMapping) ormPersistentAttribute.getMapping()).getSpecifiedFetch());
-	}
-	
-	
-	
-	
-	
-	public void testAddPrimaryKeyJoinColumn() throws Exception {
-		OrmPersistentType ormPersistentType = getEntityMappings().addPersistentType(MappingKeys.ENTITY_TYPE_MAPPING_KEY, "model.Foo");
-		OrmPersistentAttribute ormPersistentAttribute = ormPersistentType.addSpecifiedPersistentAttribute(MappingKeys.ONE_TO_ONE_ATTRIBUTE_MAPPING_KEY, "oneToOneMapping");
-		OrmOneToOneMapping ormOneToOneMapping = (OrmOneToOneMapping) ormPersistentAttribute.getMapping();
-		OrmPrimaryKeyJoinColumnJoiningStrategy strategy = ormOneToOneMapping.getRelationshipReference().getPrimaryKeyJoinColumnJoiningStrategy();
-		XmlOneToOne oneToOneResource = getXmlEntityMappings().getEntities().get(0).getAttributes().getOneToOnes().get(0);
-		
-		OrmPrimaryKeyJoinColumn joinColumn = strategy.addPrimaryKeyJoinColumn(0);
-		joinColumn.setSpecifiedName("FOO");
-				
-		assertEquals("FOO", oneToOneResource.getPrimaryKeyJoinColumns().get(0).getName());
-		
-		OrmPrimaryKeyJoinColumn joinColumn2 = strategy.addPrimaryKeyJoinColumn(0);
-		joinColumn2.setSpecifiedName("BAR");
-		
-		assertEquals("BAR", oneToOneResource.getPrimaryKeyJoinColumns().get(0).getName());
-		assertEquals("FOO", oneToOneResource.getPrimaryKeyJoinColumns().get(1).getName());
-		
-		OrmPrimaryKeyJoinColumn joinColumn3 = strategy.addPrimaryKeyJoinColumn(1);
-		joinColumn3.setSpecifiedName("BAZ");
-		
-		assertEquals("BAR", oneToOneResource.getPrimaryKeyJoinColumns().get(0).getName());
-		assertEquals("BAZ", oneToOneResource.getPrimaryKeyJoinColumns().get(1).getName());
-		assertEquals("FOO", oneToOneResource.getPrimaryKeyJoinColumns().get(2).getName());
-		
-		ListIterator<OrmPrimaryKeyJoinColumn> joinColumns = strategy.primaryKeyJoinColumns();
-		assertEquals(joinColumn2, joinColumns.next());
-		assertEquals(joinColumn3, joinColumns.next());
-		assertEquals(joinColumn, joinColumns.next());
-		
-		joinColumns = strategy.primaryKeyJoinColumns();
-		assertEquals("BAR", joinColumns.next().getName());
-		assertEquals("BAZ", joinColumns.next().getName());
-		assertEquals("FOO", joinColumns.next().getName());
-	}
-	
-	public void testRemovePrimaryKeyJoinColumn() throws Exception {
-		OrmPersistentType ormPersistentType = getEntityMappings().addPersistentType(MappingKeys.ENTITY_TYPE_MAPPING_KEY, "model.Foo");
-		OrmPersistentAttribute ormPersistentAttribute = ormPersistentType.addSpecifiedPersistentAttribute(MappingKeys.ONE_TO_ONE_ATTRIBUTE_MAPPING_KEY, "oneToOneMapping");
-		OrmOneToOneMapping ormOneToOneMapping = (OrmOneToOneMapping) ormPersistentAttribute.getMapping();
-		OrmPrimaryKeyJoinColumnJoiningStrategy strategy = ormOneToOneMapping.getRelationshipReference().getPrimaryKeyJoinColumnJoiningStrategy();
-		XmlOneToOne oneToOneResource = getXmlEntityMappings().getEntities().get(0).getAttributes().getOneToOnes().get(0);
-
-		strategy.addPrimaryKeyJoinColumn(0).setSpecifiedName("FOO");
-		strategy.addPrimaryKeyJoinColumn(1).setSpecifiedName("BAR");
-		strategy.addPrimaryKeyJoinColumn(2).setSpecifiedName("BAZ");
-		
-		assertEquals(3, oneToOneResource.getPrimaryKeyJoinColumns().size());
-		
-		strategy.removePrimaryKeyJoinColumn(0);
-		assertEquals(2, oneToOneResource.getPrimaryKeyJoinColumns().size());
-		assertEquals("BAR", oneToOneResource.getPrimaryKeyJoinColumns().get(0).getName());
-		assertEquals("BAZ", oneToOneResource.getPrimaryKeyJoinColumns().get(1).getName());
-
-		strategy.removePrimaryKeyJoinColumn(0);
-		assertEquals(1, oneToOneResource.getPrimaryKeyJoinColumns().size());
-		assertEquals("BAZ", oneToOneResource.getPrimaryKeyJoinColumns().get(0).getName());
-		
-		strategy.removePrimaryKeyJoinColumn(0);
-		assertEquals(0, oneToOneResource.getPrimaryKeyJoinColumns().size());
-	}
-	
-	public void testMovePrimaryKeyJoinColumn() throws Exception {
-		OrmPersistentType ormPersistentType = getEntityMappings().addPersistentType(MappingKeys.ENTITY_TYPE_MAPPING_KEY, "model.Foo");
-		OrmPersistentAttribute ormPersistentAttribute = ormPersistentType.addSpecifiedPersistentAttribute(MappingKeys.ONE_TO_ONE_ATTRIBUTE_MAPPING_KEY, "oneToOneMapping");
-		OrmOneToOneMapping ormOneToOneMapping = (OrmOneToOneMapping) ormPersistentAttribute.getMapping();
-		OrmPrimaryKeyJoinColumnJoiningStrategy strategy = ormOneToOneMapping.getRelationshipReference().getPrimaryKeyJoinColumnJoiningStrategy();
-		XmlOneToOne oneToOneResource = getXmlEntityMappings().getEntities().get(0).getAttributes().getOneToOnes().get(0);
-
-		strategy.addPrimaryKeyJoinColumn(0).setSpecifiedName("FOO");
-		strategy.addPrimaryKeyJoinColumn(1).setSpecifiedName("BAR");
-		strategy.addPrimaryKeyJoinColumn(2).setSpecifiedName("BAZ");
-		
-		assertEquals(3, oneToOneResource.getPrimaryKeyJoinColumns().size());
-		
-		
-		strategy.movePrimaryKeyJoinColumn(2, 0);
-		ListIterator<OrmPrimaryKeyJoinColumn> joinColumns = strategy.primaryKeyJoinColumns();
-		assertEquals("BAR", joinColumns.next().getName());
-		assertEquals("BAZ", joinColumns.next().getName());
-		assertEquals("FOO", joinColumns.next().getName());
-
-		assertEquals("BAR", oneToOneResource.getPrimaryKeyJoinColumns().get(0).getName());
-		assertEquals("BAZ", oneToOneResource.getPrimaryKeyJoinColumns().get(1).getName());
-		assertEquals("FOO", oneToOneResource.getPrimaryKeyJoinColumns().get(2).getName());
-
-
-		strategy.movePrimaryKeyJoinColumn(0, 1);
-		joinColumns = strategy.primaryKeyJoinColumns();
-		assertEquals("BAZ", joinColumns.next().getName());
-		assertEquals("BAR", joinColumns.next().getName());
-		assertEquals("FOO", joinColumns.next().getName());
-
-		assertEquals("BAZ", oneToOneResource.getPrimaryKeyJoinColumns().get(0).getName());
-		assertEquals("BAR", oneToOneResource.getPrimaryKeyJoinColumns().get(1).getName());
-		assertEquals("FOO", oneToOneResource.getPrimaryKeyJoinColumns().get(2).getName());
-	}
-
-}
\ No newline at end of file
diff --git a/jpa/tests/org.eclipse.jpt.core.tests/src/org/eclipse/jpt/core/tests/internal/context/orm/OrmPrimaryKeyJoinColumnTests.java b/jpa/tests/org.eclipse.jpt.core.tests/src/org/eclipse/jpt/core/tests/internal/context/orm/OrmPrimaryKeyJoinColumnTests.java
deleted file mode 100644
index 9105567..0000000
--- a/jpa/tests/org.eclipse.jpt.core.tests/src/org/eclipse/jpt/core/tests/internal/context/orm/OrmPrimaryKeyJoinColumnTests.java
+++ /dev/null
@@ -1,253 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.core.tests.internal.context.orm;
-
-import org.eclipse.jpt.core.JptCorePlugin;
-import org.eclipse.jpt.core.MappingKeys;
-import org.eclipse.jpt.core.context.orm.OrmEntity;
-import org.eclipse.jpt.core.context.orm.OrmPersistentType;
-import org.eclipse.jpt.core.context.orm.OrmPrimaryKeyJoinColumn;
-import org.eclipse.jpt.core.resource.orm.XmlEntity;
-import org.eclipse.jpt.core.resource.orm.XmlPrimaryKeyJoinColumn;
-import org.eclipse.jpt.core.resource.persistence.PersistenceFactory;
-import org.eclipse.jpt.core.resource.persistence.XmlMappingFileRef;
-import org.eclipse.jpt.core.tests.internal.context.ContextModelTestCase;
-
-@SuppressWarnings("nls")
-public class OrmPrimaryKeyJoinColumnTests extends ContextModelTestCase
-{
-	public OrmPrimaryKeyJoinColumnTests(String name) {
-		super(name);
-	}
-	
-	@Override
-	protected void setUp() throws Exception {
-		super.setUp();
-		XmlMappingFileRef mappingFileRef = PersistenceFactory.eINSTANCE.createXmlMappingFileRef();
-		mappingFileRef.setFileName(JptCorePlugin.DEFAULT_ORM_XML_FILE_PATH);
-		getXmlPersistenceUnit().getMappingFiles().add(mappingFileRef);
-		getPersistenceXmlResource().save(null);
-	}
-	
-	public void testUpdateSpecifiedName() throws Exception {
-		OrmPersistentType ormPersistentType = getEntityMappings().addPersistentType(MappingKeys.ENTITY_TYPE_MAPPING_KEY, "model.foo");
-		OrmEntity ormEntity = (OrmEntity) ormPersistentType.getMapping();
-		OrmPrimaryKeyJoinColumn ormPrimaryKeyJoinColumn = ormEntity.addSpecifiedPrimaryKeyJoinColumn(0);
-		
-		XmlEntity entityResource = getXmlEntityMappings().getEntities().get(0);
-		XmlPrimaryKeyJoinColumn primaryKeyJoinColumnResource = entityResource.getPrimaryKeyJoinColumns().get(0);
-		
-		assertNull(ormPrimaryKeyJoinColumn.getSpecifiedName());
-		assertNull(primaryKeyJoinColumnResource.getName());
-		
-		//set name in the resource model, verify context model updated
-		primaryKeyJoinColumnResource.setName("FOO");
-		assertEquals("FOO", ormPrimaryKeyJoinColumn.getSpecifiedName());
-		assertEquals("FOO", primaryKeyJoinColumnResource.getName());
-	
-		//set name to null in the resource model
-		primaryKeyJoinColumnResource.setName(null);
-		assertNull(ormPrimaryKeyJoinColumn.getSpecifiedName());
-		assertNull(primaryKeyJoinColumnResource.getName());
-		
-		primaryKeyJoinColumnResource.setName("FOO");
-		assertEquals("FOO", ormPrimaryKeyJoinColumn.getSpecifiedName());
-		assertEquals("FOO", primaryKeyJoinColumnResource.getName());
-
-		entityResource.getPrimaryKeyJoinColumns().remove(0);
-		assertFalse(ormEntity.specifiedPrimaryKeyJoinColumns().hasNext());
-		assertTrue(entityResource.getPrimaryKeyJoinColumns().isEmpty());
-	}
-	
-	public void testModifySpecifiedName() throws Exception {
-		OrmPersistentType ormPersistentType = getEntityMappings().addPersistentType(MappingKeys.ENTITY_TYPE_MAPPING_KEY, "model.foo");
-		OrmEntity ormEntity = (OrmEntity) ormPersistentType.getMapping();
-		OrmPrimaryKeyJoinColumn ormPrimaryKeyJoinColumn = ormEntity.addSpecifiedPrimaryKeyJoinColumn(0);
-		
-		XmlEntity entityResource = getXmlEntityMappings().getEntities().get(0);
-		XmlPrimaryKeyJoinColumn primaryKeyJoinColumnResource = entityResource.getPrimaryKeyJoinColumns().get(0);
-
-		assertNull(ormPrimaryKeyJoinColumn.getSpecifiedName());
-		assertNull(primaryKeyJoinColumnResource.getName());
-		
-		//set name in the context model, verify resource model modified
-		ormPrimaryKeyJoinColumn.setSpecifiedName("foo");
-		assertEquals("foo", ormPrimaryKeyJoinColumn.getSpecifiedName());
-		assertEquals("foo", primaryKeyJoinColumnResource.getName());
-		
-		//set name to null in the context model
-		ormPrimaryKeyJoinColumn.setSpecifiedName(null);
-		assertNull(ormPrimaryKeyJoinColumn.getSpecifiedName());
-		assertNull(entityResource.getPrimaryKeyJoinColumns().get(0).getName());
-	}
-	
-	public void testUpdateSpecifiedReferencedColumnName() throws Exception {
-		OrmPersistentType ormPersistentType = getEntityMappings().addPersistentType(MappingKeys.ENTITY_TYPE_MAPPING_KEY, "model.foo");
-		OrmEntity ormEntity = (OrmEntity) ormPersistentType.getMapping();
-		OrmPrimaryKeyJoinColumn ormPrimaryKeyJoinColumn = ormEntity.addSpecifiedPrimaryKeyJoinColumn(0);
-		
-		XmlEntity entityResource = getXmlEntityMappings().getEntities().get(0);
-		XmlPrimaryKeyJoinColumn primaryKeyJoinColumnResource = entityResource.getPrimaryKeyJoinColumns().get(0);
-		
-		assertNull(ormPrimaryKeyJoinColumn.getSpecifiedReferencedColumnName());
-		assertNull(primaryKeyJoinColumnResource.getReferencedColumnName());
-		
-		//set name in the resource model, verify context model updated
-		primaryKeyJoinColumnResource.setReferencedColumnName("FOO");
-		assertEquals("FOO", ormPrimaryKeyJoinColumn.getSpecifiedReferencedColumnName());
-		assertEquals("FOO", primaryKeyJoinColumnResource.getReferencedColumnName());
-	
-		//set name to null in the resource model
-		primaryKeyJoinColumnResource.setReferencedColumnName(null);
-		assertNull(ormPrimaryKeyJoinColumn.getSpecifiedReferencedColumnName());
-		assertNull(primaryKeyJoinColumnResource.getReferencedColumnName());
-		
-		primaryKeyJoinColumnResource.setReferencedColumnName("FOO");
-		assertEquals("FOO", ormPrimaryKeyJoinColumn.getSpecifiedReferencedColumnName());
-		assertEquals("FOO", primaryKeyJoinColumnResource.getReferencedColumnName());
-
-		entityResource.getPrimaryKeyJoinColumns().remove(0);
-		assertFalse(ormEntity.specifiedPrimaryKeyJoinColumns().hasNext());
-		assertTrue(entityResource.getPrimaryKeyJoinColumns().isEmpty());
-	}
-	
-	public void testModifySpecifiedReferencedColumnName() throws Exception {
-		OrmPersistentType ormPersistentType = getEntityMappings().addPersistentType(MappingKeys.ENTITY_TYPE_MAPPING_KEY, "model.foo");
-		OrmEntity ormEntity = (OrmEntity) ormPersistentType.getMapping();
-		OrmPrimaryKeyJoinColumn ormPrimaryKeyJoinColumn = ormEntity.addSpecifiedPrimaryKeyJoinColumn(0);
-		
-		XmlEntity entityResource = getXmlEntityMappings().getEntities().get(0);
-		XmlPrimaryKeyJoinColumn primaryKeyJoinColumnResource = entityResource.getPrimaryKeyJoinColumns().get(0);
-
-		assertNull(ormPrimaryKeyJoinColumn.getSpecifiedReferencedColumnName());
-		assertNull(primaryKeyJoinColumnResource.getReferencedColumnName());
-		
-		//set name in the context model, verify resource model modified
-		ormPrimaryKeyJoinColumn.setSpecifiedReferencedColumnName("foo");
-		assertEquals("foo", ormPrimaryKeyJoinColumn.getSpecifiedReferencedColumnName());
-		assertEquals("foo", primaryKeyJoinColumnResource.getReferencedColumnName());
-		
-		//set name to null in the context model
-		ormPrimaryKeyJoinColumn.setSpecifiedReferencedColumnName(null);
-		assertNull(ormPrimaryKeyJoinColumn.getSpecifiedReferencedColumnName());
-		assertNull(entityResource.getPrimaryKeyJoinColumns().get(0).getReferencedColumnName());
-	}
-
-//	public void testUpdateDefaultNameFromJavaTable() throws Exception {
-//		createTestEntity();
-//		
-//		OrmPersistentType ormPersistentType = entityMappings().addOrmPersistentType(IMappingKeys.ENTITY_TYPE_MAPPING_KEY, FULLY_QUALIFIED_TYPE_NAME);
-//		XmlEntity ormEntity = (XmlEntity) ormPersistentType.getMapping();
-//		assertEquals(TYPE_NAME, ormEntity.getTable().getDefaultName());
-//		
-//		ormEntity.javaEntity().getTable().setSpecifiedName("Foo");
-//		assertEquals("Foo", ormEntity.getTable().getDefaultName());
-//		
-//		ormEntity.setSpecifiedMetadataComplete(Boolean.TRUE);
-//		assertEquals(TYPE_NAME, ormEntity.getTable().getDefaultName());
-//
-//		ormEntity.entityMappings().getPersistenceUnitMetadata().setXmlMappingMetadataComplete(true);
-//		ormEntity.setSpecifiedMetadataComplete(Boolean.FALSE);
-//		assertEquals(TYPE_NAME, ormEntity.getTable().getDefaultName());
-//	
-//		ormEntity.setSpecifiedMetadataComplete(null);
-//		assertEquals(TYPE_NAME, ormEntity.getTable().getDefaultName());
-//		
-//		ormEntity.entityMappings().getPersistenceUnitMetadata().setXmlMappingMetadataComplete(false);
-//		assertEquals("Foo", ormEntity.getTable().getDefaultName());
-//		
-//		ormEntity.getTable().setSpecifiedName("Bar");
-//		assertEquals(TYPE_NAME, ormEntity.getTable().getDefaultName());
-//	}
-//	
-//	public void testUpdateDefaultNameNoJava() throws Exception {
-//		createTestEntity();
-//		
-//		OrmPersistentType ormPersistentType = entityMappings().addOrmPersistentType(IMappingKeys.ENTITY_TYPE_MAPPING_KEY, "model.Foo");
-//		XmlEntity ormEntity = (XmlEntity) ormPersistentType.getMapping();
-//		assertEquals("Foo", ormEntity.getTable().getDefaultName());
-//	}
-//	
-//	public void testUpdateDefaultNameFromParent() throws Exception {
-//		createTestEntity();
-//		createTestSubType();
-//		
-//		OrmPersistentType parentOrmPersistentType = entityMappings().addOrmPersistentType(IMappingKeys.ENTITY_TYPE_MAPPING_KEY, FULLY_QUALIFIED_TYPE_NAME);
-//		OrmPersistentType childOrmPersistentType = entityMappings().addOrmPersistentType(IMappingKeys.ENTITY_TYPE_MAPPING_KEY, PACKAGE_NAME + ".AnnotationTestTypeChild");
-//		XmlEntity parentXmlEntity = (XmlEntity) parentOrmPersistentType.getMapping();
-//		XmlEntity childXmlEntity = (XmlEntity) childOrmPersistentType.getMapping();
-//		
-//		assertEquals(TYPE_NAME, parentXmlEntity.getTable().getDefaultName());
-//		assertEquals(TYPE_NAME, childXmlEntity.getTable().getDefaultName());
-//		
-//		parentXmlEntity.getTable().setSpecifiedName("FOO");
-//		assertEquals(TYPE_NAME, parentXmlEntity.getTable().getDefaultName());
-//		assertEquals("FOO", childXmlEntity.getTable().getDefaultName());
-//
-//		parentXmlEntity.setSpecifiedInheritanceStrategy(InheritanceType.JOINED);
-//		assertEquals(TYPE_NAME, parentXmlEntity.getTable().getDefaultName());
-//		assertEquals("AnnotationTestTypeChild", childXmlEntity.getTable().getDefaultName());
-//	}
-	
-
-	public void testUpdateSpecifiedColumnDefinition() throws Exception {
-		OrmPersistentType ormPersistentType = getEntityMappings().addPersistentType(MappingKeys.ENTITY_TYPE_MAPPING_KEY, "model.foo");
-		OrmEntity ormEntity = (OrmEntity) ormPersistentType.getMapping();
-		OrmPrimaryKeyJoinColumn ormPrimaryKeyJoinColumn = ormEntity.addSpecifiedPrimaryKeyJoinColumn(0);
-		
-		XmlEntity entityResource = getXmlEntityMappings().getEntities().get(0);
-		XmlPrimaryKeyJoinColumn primaryKeyJoinColumnResource = entityResource.getPrimaryKeyJoinColumns().get(0);
-		
-		assertNull(ormPrimaryKeyJoinColumn.getColumnDefinition());
-		assertNull(primaryKeyJoinColumnResource.getColumnDefinition());
-		
-		//set name in the resource model, verify context model updated
-		primaryKeyJoinColumnResource.setColumnDefinition("FOO");
-		assertEquals("FOO", ormPrimaryKeyJoinColumn.getColumnDefinition());
-		assertEquals("FOO", primaryKeyJoinColumnResource.getColumnDefinition());
-	
-		//set name to null in the resource model
-		primaryKeyJoinColumnResource.setColumnDefinition(null);
-		assertNull(ormPrimaryKeyJoinColumn.getColumnDefinition());
-		assertNull(primaryKeyJoinColumnResource.getColumnDefinition());
-		
-		primaryKeyJoinColumnResource.setColumnDefinition("FOO");
-		assertEquals("FOO", ormPrimaryKeyJoinColumn.getColumnDefinition());
-		assertEquals("FOO", primaryKeyJoinColumnResource.getColumnDefinition());
-
-		entityResource.getPrimaryKeyJoinColumns().remove(0);
-		assertFalse(ormEntity.specifiedPrimaryKeyJoinColumns().hasNext());
-		assertTrue(entityResource.getPrimaryKeyJoinColumns().isEmpty());
-	}
-	
-	public void testModifySpecifiedColumnDefinition() throws Exception {
-		OrmPersistentType ormPersistentType = getEntityMappings().addPersistentType(MappingKeys.ENTITY_TYPE_MAPPING_KEY, "model.foo");
-		OrmEntity ormEntity = (OrmEntity) ormPersistentType.getMapping();
-		OrmPrimaryKeyJoinColumn ormPrimaryKeyJoinColumn = ormEntity.addSpecifiedPrimaryKeyJoinColumn(0);
-		
-		XmlEntity entityResource = getXmlEntityMappings().getEntities().get(0);
-		XmlPrimaryKeyJoinColumn primaryKeyJoinColumnResource = entityResource.getPrimaryKeyJoinColumns().get(0);
-
-		assertNull(ormPrimaryKeyJoinColumn.getColumnDefinition());
-		assertNull(primaryKeyJoinColumnResource.getColumnDefinition());
-		
-		//set name in the context model, verify resource model modified
-		ormPrimaryKeyJoinColumn.setColumnDefinition("foo");
-		assertEquals("foo", ormPrimaryKeyJoinColumn.getColumnDefinition());
-		assertEquals("foo", primaryKeyJoinColumnResource.getColumnDefinition());
-		
-		//set name to null in the context model
-		ormPrimaryKeyJoinColumn.setColumnDefinition(null);
-		assertNull(ormPrimaryKeyJoinColumn.getColumnDefinition());
-		assertNull(entityResource.getPrimaryKeyJoinColumns().get(0).getColumnDefinition());
-	}
-	
-
-}
\ No newline at end of file
diff --git a/jpa/tests/org.eclipse.jpt.core.tests/src/org/eclipse/jpt/core/tests/internal/context/orm/OrmQueryHintTests.java b/jpa/tests/org.eclipse.jpt.core.tests/src/org/eclipse/jpt/core/tests/internal/context/orm/OrmQueryHintTests.java
deleted file mode 100644
index de776a3..0000000
--- a/jpa/tests/org.eclipse.jpt.core.tests/src/org/eclipse/jpt/core/tests/internal/context/orm/OrmQueryHintTests.java
+++ /dev/null
@@ -1,122 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.core.tests.internal.context.orm;
-
-import org.eclipse.jpt.core.JptCorePlugin;
-import org.eclipse.jpt.core.MappingKeys;
-import org.eclipse.jpt.core.context.orm.OrmEntity;
-import org.eclipse.jpt.core.context.orm.OrmPersistentType;
-import org.eclipse.jpt.core.context.orm.OrmQueryHint;
-import org.eclipse.jpt.core.resource.orm.XmlQueryHint;
-import org.eclipse.jpt.core.resource.persistence.PersistenceFactory;
-import org.eclipse.jpt.core.resource.persistence.XmlMappingFileRef;
-import org.eclipse.jpt.core.tests.internal.context.ContextModelTestCase;
-
-@SuppressWarnings("nls")
-public class OrmQueryHintTests extends ContextModelTestCase
-{
-	public OrmQueryHintTests(String name) {
-		super(name);
-	}
-	
-	
-	@Override
-	protected void setUp() throws Exception {
-		super.setUp();
-		XmlMappingFileRef mappingFileRef = PersistenceFactory.eINSTANCE.createXmlMappingFileRef();
-		mappingFileRef.setFileName(JptCorePlugin.DEFAULT_ORM_XML_FILE_PATH);
-		getXmlPersistenceUnit().getMappingFiles().add(mappingFileRef);
-		getPersistenceXmlResource().save(null);
-	}
-
-	public void testUpdateName() throws Exception {
-		OrmPersistentType ormPersistentType = getEntityMappings().addPersistentType(MappingKeys.ENTITY_TYPE_MAPPING_KEY, "model.Foo");
-		OrmEntity ormEntity = (OrmEntity) ormPersistentType.getMapping();
-		OrmQueryHint ormQueryHint = ormEntity.addNamedQuery(0).addHint(0);
-		
-		XmlQueryHint queryHintResource = getXmlEntityMappings().getEntities().get(0).getNamedQueries().get(0).getHints().get(0);
-		
-		assertNull(ormQueryHint.getName());
-		assertNull(queryHintResource.getName());
-				
-		//set name in the resource model, verify context model updated
-		queryHintResource.setName("newName");
-		assertEquals("newName", ormQueryHint.getName());
-		assertEquals("newName", queryHintResource.getName());
-	
-		//set name to null in the resource model
-		queryHintResource.setName(null);
-		assertNull(ormQueryHint.getName());
-		assertNull(queryHintResource.getName());
-	}
-	
-	public void testModifyName() throws Exception {
-		OrmPersistentType ormPersistentType = getEntityMappings().addPersistentType(MappingKeys.ENTITY_TYPE_MAPPING_KEY, "model.Foo");
-		OrmEntity ormEntity = (OrmEntity) ormPersistentType.getMapping();
-		OrmQueryHint ormQueryHint = ormEntity.addNamedQuery(0).addHint(0);
-		
-		XmlQueryHint queryHintResource = getXmlEntityMappings().getEntities().get(0).getNamedQueries().get(0).getHints().get(0);
-		
-		assertNull(ormQueryHint.getName());
-		assertNull(queryHintResource.getName());
-				
-		//set name in the context model, verify resource model updated
-		ormQueryHint.setName("newName");
-		assertEquals("newName", ormQueryHint.getName());
-		assertEquals("newName", queryHintResource.getName());
-	
-		//set name to null in the context model
-		ormQueryHint.setName(null);
-		assertNull(ormQueryHint.getName());
-		assertNull(queryHintResource.getName());
-	}
-	
-	public void testUpdateValue() throws Exception {
-		OrmPersistentType ormPersistentType = getEntityMappings().addPersistentType(MappingKeys.ENTITY_TYPE_MAPPING_KEY, "model.Foo");
-		OrmEntity ormEntity = (OrmEntity) ormPersistentType.getMapping();
-		OrmQueryHint ormQueryHint = ormEntity.addNamedQuery(0).addHint(0);
-		
-		XmlQueryHint queryHintResource = getXmlEntityMappings().getEntities().get(0).getNamedQueries().get(0).getHints().get(0);
-		
-		assertNull(ormQueryHint.getValue());
-		assertNull(queryHintResource.getValue());
-				
-		//set name in the resource model, verify context model updated
-		queryHintResource.setValue("newName");
-		assertEquals("newName", ormQueryHint.getValue());
-		assertEquals("newName", queryHintResource.getValue());
-	
-		//set name to null in the resource model
-		queryHintResource.setValue(null);
-		assertNull(ormQueryHint.getValue());
-		assertNull(queryHintResource.getValue());
-	}
-	
-	public void testModifyValue() throws Exception {
-		OrmPersistentType ormPersistentType = getEntityMappings().addPersistentType(MappingKeys.ENTITY_TYPE_MAPPING_KEY, "model.Foo");
-		OrmEntity ormEntity = (OrmEntity) ormPersistentType.getMapping();
-		OrmQueryHint ormQueryHint = ormEntity.addNamedQuery(0).addHint(0);
-		
-		XmlQueryHint queryHintResource = getXmlEntityMappings().getEntities().get(0).getNamedQueries().get(0).getHints().get(0);
-		
-		assertNull(ormQueryHint.getValue());
-		assertNull(queryHintResource.getValue());
-				
-		//set name in the context model, verify resource model updated
-		ormQueryHint.setValue("newName");
-		assertEquals("newName", ormQueryHint.getValue());
-		assertEquals("newName", queryHintResource.getValue());
-	
-		//set name to null in the context model
-		ormQueryHint.setValue(null);
-		assertNull(ormQueryHint.getValue());
-		assertNull(queryHintResource.getValue());
-	}
-}
\ No newline at end of file
diff --git a/jpa/tests/org.eclipse.jpt.core.tests/src/org/eclipse/jpt/core/tests/internal/context/orm/OrmSecondaryTableTests.java b/jpa/tests/org.eclipse.jpt.core.tests/src/org/eclipse/jpt/core/tests/internal/context/orm/OrmSecondaryTableTests.java
deleted file mode 100644
index 82135c3..0000000
--- a/jpa/tests/org.eclipse.jpt.core.tests/src/org/eclipse/jpt/core/tests/internal/context/orm/OrmSecondaryTableTests.java
+++ /dev/null
@@ -1,764 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.core.tests.internal.context.orm;
-
-import java.util.Iterator;
-import java.util.ListIterator;
-import org.eclipse.jdt.core.ICompilationUnit;
-import org.eclipse.jpt.core.JptCorePlugin;
-import org.eclipse.jpt.core.MappingKeys;
-import org.eclipse.jpt.core.context.InheritanceType;
-import org.eclipse.jpt.core.context.SecondaryTable;
-import org.eclipse.jpt.core.context.java.JavaEntity;
-import org.eclipse.jpt.core.context.java.JavaSecondaryTable;
-import org.eclipse.jpt.core.context.orm.OrmEntity;
-import org.eclipse.jpt.core.context.orm.OrmPersistentType;
-import org.eclipse.jpt.core.context.orm.OrmPrimaryKeyJoinColumn;
-import org.eclipse.jpt.core.context.orm.OrmSecondaryTable;
-import org.eclipse.jpt.core.context.orm.OrmUniqueConstraint;
-import org.eclipse.jpt.core.resource.java.JPA;
-import org.eclipse.jpt.core.resource.orm.OrmFactory;
-import org.eclipse.jpt.core.resource.orm.XmlEntity;
-import org.eclipse.jpt.core.resource.orm.XmlSecondaryTable;
-import org.eclipse.jpt.core.resource.orm.XmlUniqueConstraint;
-import org.eclipse.jpt.core.resource.persistence.PersistenceFactory;
-import org.eclipse.jpt.core.resource.persistence.XmlMappingFileRef;
-import org.eclipse.jpt.core.tests.internal.context.ContextModelTestCase;
-import org.eclipse.jpt.core.tests.internal.projects.TestJavaProject.SourceWriter;
-import org.eclipse.jpt.utility.internal.iterators.ArrayIterator;
-
-@SuppressWarnings("nls")
-public class OrmSecondaryTableTests extends ContextModelTestCase
-{
-	public OrmSecondaryTableTests(String name) {
-		super(name);
-	}
-	
-	@Override
-	protected void setUp() throws Exception {
-		super.setUp();
-		XmlMappingFileRef mappingFileRef = PersistenceFactory.eINSTANCE.createXmlMappingFileRef();
-		mappingFileRef.setFileName(JptCorePlugin.DEFAULT_ORM_XML_FILE_PATH);
-		getXmlPersistenceUnit().getMappingFiles().add(mappingFileRef);
-		getPersistenceXmlResource().save(null);
-	}
-	
-	private ICompilationUnit createTestEntity() throws Exception {
-		return this.createTestType(new DefaultAnnotationWriter() {
-			@Override
-			public Iterator<String> imports() {
-				return new ArrayIterator<String>(JPA.ENTITY, JPA.ID);
-			}
-			@Override
-			public void appendTypeAnnotationTo(StringBuilder sb) {
-				sb.append("@Entity");
-			}
-			@Override
-			public void appendIdFieldAnnotationTo(StringBuilder sb) {
-				sb.append("@Id");
-			}
-		});
-	}
-	
-	private void createTestSubType() throws Exception {
-		SourceWriter sourceWriter = new SourceWriter() {
-			public void appendSourceTo(StringBuilder sb) {
-				sb.append(CR);
-					sb.append("import ");
-					sb.append(JPA.ENTITY);
-					sb.append(";");
-					sb.append(CR);
-				sb.append("@Entity");
-				sb.append(CR);
-				sb.append("public class ").append("AnnotationTestTypeChild").append(" ");
-				sb.append("extends " + TYPE_NAME + " ");
-				sb.append("{}").append(CR);
-			}
-		};
-		this.javaProject.createCompilationUnit(PACKAGE_NAME, "AnnotationTestTypeChild.java", sourceWriter);
-	}
-	
-	public void testUpdateSpecifiedName() throws Exception {
-		OrmPersistentType ormPersistentType = getEntityMappings().addPersistentType(MappingKeys.ENTITY_TYPE_MAPPING_KEY, "model.foo");
-		OrmEntity ormEntity = (OrmEntity) ormPersistentType.getMapping();
-		XmlEntity entityResource = getXmlEntityMappings().getEntities().get(0);
-				
-		//set name in the resource model, verify context model updated
-		entityResource.getSecondaryTables().add(OrmFactory.eINSTANCE.createXmlSecondaryTableImpl());
-		entityResource.getSecondaryTables().get(0).setName("FOO");
-		OrmSecondaryTable secondaryTable = ormEntity.specifiedSecondaryTables().next();
-		assertEquals("FOO", secondaryTable.getSpecifiedName());
-		assertEquals("FOO", entityResource.getSecondaryTables().get(0).getName());
-	
-		//set name to null in the resource model
-		entityResource.getSecondaryTables().get(0).setName(null);
-		assertNull(secondaryTable.getSpecifiedName());
-		assertNull(entityResource.getSecondaryTables().get(0).getName());
-		
-		entityResource.getSecondaryTables().remove(0);
-		assertFalse(ormEntity.specifiedSecondaryTables().hasNext());
-		assertEquals(0, entityResource.getSecondaryTables().size());
-	}
-	
-	public void testModifySpecifiedName() throws Exception {
-		OrmPersistentType ormPersistentType = getEntityMappings().addPersistentType(MappingKeys.ENTITY_TYPE_MAPPING_KEY, "model.foo");
-		OrmEntity ormEntity = (OrmEntity) ormPersistentType.getMapping();
-		XmlEntity entityResource = getXmlEntityMappings().getEntities().get(0);
-		
-		//set name in the context model, verify resource model modified
-		OrmSecondaryTable secondaryTable = ormEntity.addSpecifiedSecondaryTable(0);
-		secondaryTable.setSpecifiedName("foo");
-		
-		assertEquals("foo", secondaryTable.getSpecifiedName());
-		assertEquals("foo", entityResource.getSecondaryTables().get(0).getName());
-		
-		//set name to null in the context model
-		secondaryTable.setSpecifiedName(null);
-		assertNull(secondaryTable.getSpecifiedName());
-		assertNull(entityResource.getSecondaryTables().get(0).getName());
-		
-		ormEntity.removeSpecifiedSecondaryTable(0);
-		assertFalse(ormEntity.specifiedSecondaryTables().hasNext());
-		assertEquals(0, entityResource.getSecondaryTables().size());	
-	}
-	
-	public void testUpdateDefaultNameFromJavaTable() throws Exception {
-		createTestEntity();
-		
-		OrmPersistentType ormPersistentType = getEntityMappings().addPersistentType(MappingKeys.ENTITY_TYPE_MAPPING_KEY, FULLY_QUALIFIED_TYPE_NAME);
-		OrmEntity ormEntity = (OrmEntity) ormPersistentType.getMapping();
-		
-		ormEntity.getJavaEntity().addSpecifiedSecondaryTable(0).setSpecifiedName("FOO");
-
-		OrmSecondaryTable ormSecondaryTable = ormEntity.virtualSecondaryTables().next();
-		assertEquals("FOO", ormSecondaryTable.getSpecifiedName());
-		
-		ormEntity.getJavaEntity().specifiedSecondaryTables().next().setSpecifiedName("BAZ");
-		assertEquals("BAZ", ormSecondaryTable.getSpecifiedName());
-		
-		ormEntity.setSecondaryTablesDefinedInXml(true);
-		assertNull(ormEntity.specifiedSecondaryTables().next().getDefaultName());
-		assertEquals("BAZ", ormEntity.specifiedSecondaryTables().next().getSpecifiedName());
-
-	}
-
-	public void testUpdateSpecifiedSchema() throws Exception {
-		OrmPersistentType ormPersistentType = getEntityMappings().addPersistentType(MappingKeys.ENTITY_TYPE_MAPPING_KEY, "model.foo");
-		OrmEntity ormEntity = (OrmEntity) ormPersistentType.getMapping();
-		XmlEntity entityResource = getXmlEntityMappings().getEntities().get(0);
-				
-		//set schema in the resource model, verify context model updated
-		entityResource.getSecondaryTables().add(OrmFactory.eINSTANCE.createXmlSecondaryTableImpl());
-		entityResource.getSecondaryTables().get(0).setSchema("FOO");
-		OrmSecondaryTable secondaryTable = ormEntity.specifiedSecondaryTables().next();
-		assertEquals("FOO", secondaryTable.getSpecifiedSchema());
-		assertEquals("FOO", entityResource.getSecondaryTables().get(0).getSchema());
-	
-		//set schema to null in the resource model
-		entityResource.getSecondaryTables().get(0).setSchema(null);
-		assertNull(secondaryTable.getSpecifiedSchema());
-		assertNull(entityResource.getSecondaryTables().get(0).getSchema());
-		
-		entityResource.getSecondaryTables().remove(0);
-		assertFalse(ormEntity.specifiedSecondaryTables().hasNext());
-		assertEquals(0, entityResource.getSecondaryTables().size());
-	}
-
-	public void testModifySpecifiedSchema() throws Exception {
-		OrmPersistentType ormPersistentType = getEntityMappings().addPersistentType(MappingKeys.ENTITY_TYPE_MAPPING_KEY, "model.foo");
-		OrmEntity ormEntity = (OrmEntity) ormPersistentType.getMapping();
-		XmlEntity entityResource = getXmlEntityMappings().getEntities().get(0);
-		
-		//set schema in the context model, verify resource model modified
-		OrmSecondaryTable secondaryTable = ormEntity.addSpecifiedSecondaryTable(0);
-		secondaryTable.setSpecifiedSchema("foo");
-		
-		assertEquals("foo", secondaryTable.getSpecifiedSchema());
-		assertEquals("foo", entityResource.getSecondaryTables().get(0).getSchema());
-		
-		//set schema to null in the context model
-		secondaryTable.setSpecifiedSchema(null);
-		assertNull(secondaryTable.getSpecifiedSchema());
-		assertNull(entityResource.getSecondaryTables().get(0).getSchema());
-		
-		ormEntity.removeSpecifiedSecondaryTable(0);
-		assertFalse(ormEntity.specifiedSecondaryTables().hasNext());
-		assertEquals(0, entityResource.getSecondaryTables().size());	
-	}
-
-	public void testUpdateDefaultSchemaFromJavaTable() throws Exception {
-		createTestEntity();
-		
-		OrmPersistentType ormPersistentType = getEntityMappings().addPersistentType(MappingKeys.ENTITY_TYPE_MAPPING_KEY, FULLY_QUALIFIED_TYPE_NAME);
-		OrmEntity ormEntity = (OrmEntity) ormPersistentType.getMapping();
-		assertEquals(TYPE_NAME, ormEntity.getTable().getDefaultName());
-		
-		SecondaryTable javaSecondaryTable = ormEntity.getJavaEntity().addSpecifiedSecondaryTable(0);
-		javaSecondaryTable.setSpecifiedName("FOO");
-		javaSecondaryTable.setSpecifiedSchema("BAR");
-		
-		OrmSecondaryTable ormSecondaryTable = ormEntity.virtualSecondaryTables().next();
-		assertEquals("BAR", ormSecondaryTable.getSpecifiedSchema());
-		
-		javaSecondaryTable.setSpecifiedSchema("BAZ");
-		assertEquals("BAZ", ormSecondaryTable.getSpecifiedSchema());
-
-		
-		ormEntity.setSecondaryTablesDefinedInXml(true);
-		assertNull(ormEntity.specifiedSecondaryTables().next().getDefaultSchema());
-		assertEquals("BAZ", ormEntity.specifiedSecondaryTables().next().getSpecifiedSchema());
-	}
-
-	public void testUpdateDefaultSchemaFromParent() throws Exception {
-		createTestEntity();
-		createTestSubType();
-		
-		OrmPersistentType parentOrmPersistentType = getEntityMappings().addPersistentType(MappingKeys.ENTITY_TYPE_MAPPING_KEY, FULLY_QUALIFIED_TYPE_NAME);
-		OrmPersistentType childOrmPersistentType = getEntityMappings().addPersistentType(MappingKeys.ENTITY_TYPE_MAPPING_KEY, PACKAGE_NAME + ".AnnotationTestTypeChild");
-		OrmEntity parentOrmEntity = (OrmEntity) parentOrmPersistentType.getMapping();
-		OrmEntity childOrmEntity = (OrmEntity) childOrmPersistentType.getMapping();
-		
-		assertNull(parentOrmEntity.getTable().getDefaultSchema());
-		assertNull(childOrmEntity.getTable().getDefaultSchema());
-		
-		parentOrmEntity.getTable().setSpecifiedSchema("FOO");
-		assertNull(parentOrmEntity.getTable().getDefaultSchema());
-		assertEquals("FOO", childOrmEntity.getTable().getDefaultSchema());
-
-		parentOrmEntity.setSpecifiedInheritanceStrategy(InheritanceType.JOINED);
-		assertNull(parentOrmEntity.getTable().getDefaultSchema());
-		assertNull(childOrmEntity.getTable().getDefaultSchema());
-	}
-	
-	public void testUpdateDefaultSchemaFromPersistenceUnitDefaults() throws Exception {
-		createTestEntity();
-		
-		OrmPersistentType ormPersistentType = getEntityMappings().addPersistentType(MappingKeys.ENTITY_TYPE_MAPPING_KEY, FULLY_QUALIFIED_TYPE_NAME);
-		OrmEntity ormEntity = (OrmEntity) ormPersistentType.getMapping();
-		OrmSecondaryTable ormSecondaryTable = ormEntity.addSpecifiedSecondaryTable(0);
-		ormSecondaryTable.setSpecifiedName("FOO");
-		assertNull(ormSecondaryTable.getDefaultSchema());
-		
-		getEntityMappings().getPersistenceUnitMetadata().getPersistenceUnitDefaults().setSpecifiedSchema("FOO");
-		assertEquals("FOO", ormSecondaryTable.getDefaultSchema());
-		
-		getEntityMappings().setSpecifiedSchema("BAR");
-		assertEquals("BAR", ormSecondaryTable.getDefaultSchema());
-		
-		SecondaryTable javaSecondaryTable = ormEntity.getJavaEntity().addSpecifiedSecondaryTable(0);
-		javaSecondaryTable.setSpecifiedName("FOO");
-		javaSecondaryTable.setSpecifiedSchema("JAVA_SCHEMA");
-		assertEquals("BAR", ormSecondaryTable.getDefaultSchema()); //schema is not defaulted from underlying java
-		
-		getEntityMappings().setSpecifiedSchema(null);
-		assertEquals("FOO", ormSecondaryTable.getDefaultSchema());
-
-		getEntityMappings().getPersistenceUnitMetadata().getPersistenceUnitDefaults().setSpecifiedSchema(null);
-		assertNull(ormSecondaryTable.getDefaultSchema());
-	}
-	
-	public void testUpdateSpecifiedCatalog() throws Exception {
-		OrmPersistentType ormPersistentType = getEntityMappings().addPersistentType(MappingKeys.ENTITY_TYPE_MAPPING_KEY, "model.foo");
-		OrmEntity ormEntity = (OrmEntity) ormPersistentType.getMapping();
-		XmlEntity entityResource = getXmlEntityMappings().getEntities().get(0);
-				
-		//set catalog in the resource model, verify context model updated
-		entityResource.getSecondaryTables().add(OrmFactory.eINSTANCE.createXmlSecondaryTableImpl());
-		entityResource.getSecondaryTables().get(0).setCatalog("FOO");
-		OrmSecondaryTable secondaryTable = ormEntity.specifiedSecondaryTables().next();
-		assertEquals("FOO", secondaryTable.getSpecifiedCatalog());
-		assertEquals("FOO", entityResource.getSecondaryTables().get(0).getCatalog());
-	
-		//set catalog to null in the resource model
-		entityResource.getSecondaryTables().get(0).setCatalog(null);
-		assertNull(secondaryTable.getSpecifiedCatalog());
-		assertNull(entityResource.getSecondaryTables().get(0).getCatalog());
-		
-		entityResource.getSecondaryTables().remove(0);
-		assertFalse(ormEntity.specifiedSecondaryTables().hasNext());
-		assertEquals(0, entityResource.getSecondaryTables().size());
-	}
-	
-	public void testModifySpecifiedCatalog() throws Exception {
-		OrmPersistentType ormPersistentType = getEntityMappings().addPersistentType(MappingKeys.ENTITY_TYPE_MAPPING_KEY, "model.foo");
-		OrmEntity ormEntity = (OrmEntity) ormPersistentType.getMapping();
-		XmlEntity entityResource = getXmlEntityMappings().getEntities().get(0);
-		
-		//set catalog in the context model, verify resource model modified
-		OrmSecondaryTable secondaryTable = ormEntity.addSpecifiedSecondaryTable(0);
-		secondaryTable.setSpecifiedCatalog("foo");
-		
-		assertEquals("foo", secondaryTable.getSpecifiedCatalog());
-		assertEquals("foo", entityResource.getSecondaryTables().get(0).getCatalog());
-		
-		//set catalog to null in the context model
-		secondaryTable.setSpecifiedCatalog(null);
-		assertNull(secondaryTable.getSpecifiedCatalog());
-		assertNull(entityResource.getSecondaryTables().get(0).getCatalog());
-		
-		ormEntity.removeSpecifiedSecondaryTable(0);
-		assertFalse(ormEntity.specifiedSecondaryTables().hasNext());
-		assertEquals(0, entityResource.getSecondaryTables().size());	
-	}
-	
-	public void testUpdateDefaultCatalogFromJavaTable() throws Exception {
-		createTestEntity();
-		
-		OrmPersistentType ormPersistentType = getEntityMappings().addPersistentType(MappingKeys.ENTITY_TYPE_MAPPING_KEY, FULLY_QUALIFIED_TYPE_NAME);
-		OrmEntity ormEntity = (OrmEntity) ormPersistentType.getMapping();
-		assertEquals(TYPE_NAME, ormEntity.getTable().getDefaultName());
-		
-		SecondaryTable javaSecondaryTable = ormEntity.getJavaEntity().addSpecifiedSecondaryTable(0);
-		javaSecondaryTable.setSpecifiedName("FOO");
-		javaSecondaryTable.setSpecifiedCatalog("BAR");
-		
-		OrmSecondaryTable ormSecondaryTable = ormEntity.virtualSecondaryTables().next();
-		assertEquals("BAR", ormSecondaryTable.getSpecifiedCatalog());
-		
-		javaSecondaryTable.setSpecifiedCatalog("BAZ");
-		assertEquals("BAZ", ormSecondaryTable.getSpecifiedCatalog());
-		
-		ormEntity.setSecondaryTablesDefinedInXml(true);
-		assertNull(ormEntity.specifiedSecondaryTables().next().getDefaultCatalog());
-		assertEquals("BAZ", ormEntity.specifiedSecondaryTables().next().getSpecifiedCatalog());
-	}
-
-	public void testUpdateDefaultCatalogFromPersistenceUnitDefaults() throws Exception {
-		createTestEntity();
-		
-		OrmPersistentType ormPersistentType = getEntityMappings().addPersistentType(MappingKeys.ENTITY_TYPE_MAPPING_KEY, FULLY_QUALIFIED_TYPE_NAME);
-		OrmEntity ormEntity = (OrmEntity) ormPersistentType.getMapping();
-		OrmSecondaryTable ormSecondaryTable = ormEntity.addSpecifiedSecondaryTable(0);
-		ormSecondaryTable.setSpecifiedName("FOO");
-		assertNull(ormSecondaryTable.getDefaultCatalog());
-		
-		getEntityMappings().getPersistenceUnitMetadata().getPersistenceUnitDefaults().setSpecifiedCatalog("FOO");
-		assertEquals("FOO", ormSecondaryTable.getDefaultCatalog());
-		
-		getEntityMappings().setSpecifiedCatalog("BAR");
-		assertEquals("BAR", ormSecondaryTable.getDefaultCatalog());
-		
-		SecondaryTable javaSecondaryTable = ormEntity.getJavaEntity().addSpecifiedSecondaryTable(0);
-		javaSecondaryTable.setSpecifiedName("FOO");
-		javaSecondaryTable.setSpecifiedCatalog("JAVA_CATALOG");
-		assertEquals("BAR", ormSecondaryTable.getDefaultCatalog()); //schema is not defaulted from underlying java
-		
-		getEntityMappings().setSpecifiedCatalog(null);
-		assertEquals("FOO", ormSecondaryTable.getDefaultCatalog());
-
-		getEntityMappings().getPersistenceUnitMetadata().getPersistenceUnitDefaults().setSpecifiedCatalog(null);
-		assertNull(ormSecondaryTable.getDefaultCatalog());
-	}
-	
-	public void testAddSpecifiedPrimaryKeyJoinColumn() throws Exception {
-		OrmPersistentType persistentType = getEntityMappings().addPersistentType(MappingKeys.ENTITY_TYPE_MAPPING_KEY, FULLY_QUALIFIED_TYPE_NAME);
-		OrmEntity ormEntity = (OrmEntity) persistentType.getMapping();
-		OrmSecondaryTable ormSecondaryTable = ormEntity.addSpecifiedSecondaryTable(0);
-		XmlEntity entityResource = getXmlEntityMappings().getEntities().get(0);
-		XmlSecondaryTable secondaryTableResource = entityResource.getSecondaryTables().get(0);
-		
-		OrmPrimaryKeyJoinColumn primaryKeyJoinColumn = ormSecondaryTable.addSpecifiedPrimaryKeyJoinColumn(0);
-		primaryKeyJoinColumn.setSpecifiedName("FOO");
-				
-		assertEquals("FOO", secondaryTableResource.getPrimaryKeyJoinColumns().get(0).getName());
-		
-		OrmPrimaryKeyJoinColumn primaryKeyJoinColumn2 = ormSecondaryTable.addSpecifiedPrimaryKeyJoinColumn(0);
-		primaryKeyJoinColumn2.setSpecifiedName("BAR");
-		
-		assertEquals("BAR", secondaryTableResource.getPrimaryKeyJoinColumns().get(0).getName());
-		assertEquals("FOO", secondaryTableResource.getPrimaryKeyJoinColumns().get(1).getName());
-		
-		OrmPrimaryKeyJoinColumn primaryKeyJoinColumn3 = ormSecondaryTable.addSpecifiedPrimaryKeyJoinColumn(1);
-		primaryKeyJoinColumn3.setSpecifiedName("BAZ");
-		
-		assertEquals("BAR", secondaryTableResource.getPrimaryKeyJoinColumns().get(0).getName());
-		assertEquals("BAZ", secondaryTableResource.getPrimaryKeyJoinColumns().get(1).getName());
-		assertEquals("FOO", secondaryTableResource.getPrimaryKeyJoinColumns().get(2).getName());
-		
-		ListIterator<OrmPrimaryKeyJoinColumn> primaryKeyJoinColumns = ormSecondaryTable.specifiedPrimaryKeyJoinColumns();
-		assertEquals(primaryKeyJoinColumn2, primaryKeyJoinColumns.next());
-		assertEquals(primaryKeyJoinColumn3, primaryKeyJoinColumns.next());
-		assertEquals(primaryKeyJoinColumn, primaryKeyJoinColumns.next());
-		
-		primaryKeyJoinColumns = ormSecondaryTable.specifiedPrimaryKeyJoinColumns();
-		assertEquals("BAR", primaryKeyJoinColumns.next().getName());
-		assertEquals("BAZ", primaryKeyJoinColumns.next().getName());
-		assertEquals("FOO", primaryKeyJoinColumns.next().getName());
-	}
-	
-	public void testRemoveSpecifiedPrimaryKeyJoinColumn() throws Exception {
-		OrmPersistentType persistentType = getEntityMappings().addPersistentType(MappingKeys.ENTITY_TYPE_MAPPING_KEY, FULLY_QUALIFIED_TYPE_NAME);
-		OrmEntity ormEntity = (OrmEntity) persistentType.getMapping();
-		OrmSecondaryTable ormSecondaryTable = ormEntity.addSpecifiedSecondaryTable(0);
-		XmlEntity entityResource = getXmlEntityMappings().getEntities().get(0);
-		XmlSecondaryTable secondaryTableResource = entityResource.getSecondaryTables().get(0);
-
-		ormSecondaryTable.addSpecifiedPrimaryKeyJoinColumn(0).setSpecifiedName("FOO");
-		ormSecondaryTable.addSpecifiedPrimaryKeyJoinColumn(1).setSpecifiedName("BAR");
-		ormSecondaryTable.addSpecifiedPrimaryKeyJoinColumn(2).setSpecifiedName("BAZ");
-		
-		assertEquals(3, secondaryTableResource.getPrimaryKeyJoinColumns().size());
-		
-		ormSecondaryTable.removeSpecifiedPrimaryKeyJoinColumn(0);
-		assertEquals(2, secondaryTableResource.getPrimaryKeyJoinColumns().size());
-		assertEquals("BAR", secondaryTableResource.getPrimaryKeyJoinColumns().get(0).getName());
-		assertEquals("BAZ", secondaryTableResource.getPrimaryKeyJoinColumns().get(1).getName());
-
-		ormSecondaryTable.removeSpecifiedPrimaryKeyJoinColumn(0);
-		assertEquals(1, secondaryTableResource.getPrimaryKeyJoinColumns().size());
-		assertEquals("BAZ", secondaryTableResource.getPrimaryKeyJoinColumns().get(0).getName());
-		
-		ormSecondaryTable.removeSpecifiedPrimaryKeyJoinColumn(0);
-		assertEquals(0, secondaryTableResource.getPrimaryKeyJoinColumns().size());
-	}
-	
-	public void testMoveSpecifiedPrimaryKeyJoinColumn() throws Exception {
-		OrmPersistentType persistentType = getEntityMappings().addPersistentType(MappingKeys.ENTITY_TYPE_MAPPING_KEY, FULLY_QUALIFIED_TYPE_NAME);
-		OrmEntity ormEntity = (OrmEntity) persistentType.getMapping();
-		OrmSecondaryTable ormSecondaryTable = ormEntity.addSpecifiedSecondaryTable(0);
-		XmlEntity entityResource = getXmlEntityMappings().getEntities().get(0);
-		XmlSecondaryTable secondaryTableResource = entityResource.getSecondaryTables().get(0);
-
-		ormSecondaryTable.addSpecifiedPrimaryKeyJoinColumn(0).setSpecifiedName("FOO");
-		ormSecondaryTable.addSpecifiedPrimaryKeyJoinColumn(1).setSpecifiedName("BAR");
-		ormSecondaryTable.addSpecifiedPrimaryKeyJoinColumn(2).setSpecifiedName("BAZ");
-		
-		assertEquals(3, secondaryTableResource.getPrimaryKeyJoinColumns().size());
-		
-		
-		ormSecondaryTable.moveSpecifiedPrimaryKeyJoinColumn(2, 0);
-		ListIterator<OrmPrimaryKeyJoinColumn> primaryKeyJoinColumns = ormSecondaryTable.specifiedPrimaryKeyJoinColumns();
-		assertEquals("BAR", primaryKeyJoinColumns.next().getName());
-		assertEquals("BAZ", primaryKeyJoinColumns.next().getName());
-		assertEquals("FOO", primaryKeyJoinColumns.next().getName());
-
-		assertEquals("BAR", secondaryTableResource.getPrimaryKeyJoinColumns().get(0).getName());
-		assertEquals("BAZ", secondaryTableResource.getPrimaryKeyJoinColumns().get(1).getName());
-		assertEquals("FOO", secondaryTableResource.getPrimaryKeyJoinColumns().get(2).getName());
-
-
-		ormSecondaryTable.moveSpecifiedPrimaryKeyJoinColumn(0, 1);
-		primaryKeyJoinColumns = ormSecondaryTable.specifiedPrimaryKeyJoinColumns();
-		assertEquals("BAZ", primaryKeyJoinColumns.next().getName());
-		assertEquals("BAR", primaryKeyJoinColumns.next().getName());
-		assertEquals("FOO", primaryKeyJoinColumns.next().getName());
-
-		assertEquals("BAZ", secondaryTableResource.getPrimaryKeyJoinColumns().get(0).getName());
-		assertEquals("BAR", secondaryTableResource.getPrimaryKeyJoinColumns().get(1).getName());
-		assertEquals("FOO", secondaryTableResource.getPrimaryKeyJoinColumns().get(2).getName());
-	}
-	
-	public void testUpdatePrimaryKeyJoinColumns() throws Exception {
-		OrmPersistentType persistentType = getEntityMappings().addPersistentType(MappingKeys.ENTITY_TYPE_MAPPING_KEY, FULLY_QUALIFIED_TYPE_NAME);
-		OrmEntity ormEntity = (OrmEntity) persistentType.getMapping();
-		OrmSecondaryTable ormSecondaryTable = ormEntity.addSpecifiedSecondaryTable(0);
-		XmlEntity entityResource = getXmlEntityMappings().getEntities().get(0);
-		XmlSecondaryTable secondaryTableResource = entityResource.getSecondaryTables().get(0);
-		
-		secondaryTableResource.getPrimaryKeyJoinColumns().add(OrmFactory.eINSTANCE.createXmlPrimaryKeyJoinColumnImpl());
-		secondaryTableResource.getPrimaryKeyJoinColumns().add(OrmFactory.eINSTANCE.createXmlPrimaryKeyJoinColumnImpl());
-		secondaryTableResource.getPrimaryKeyJoinColumns().add(OrmFactory.eINSTANCE.createXmlPrimaryKeyJoinColumnImpl());
-		
-		secondaryTableResource.getPrimaryKeyJoinColumns().get(0).setName("FOO");
-		secondaryTableResource.getPrimaryKeyJoinColumns().get(1).setName("BAR");
-		secondaryTableResource.getPrimaryKeyJoinColumns().get(2).setName("BAZ");
-
-		ListIterator<OrmPrimaryKeyJoinColumn> primaryKeyJoinColumns = ormSecondaryTable.specifiedPrimaryKeyJoinColumns();
-		assertEquals("FOO", primaryKeyJoinColumns.next().getName());
-		assertEquals("BAR", primaryKeyJoinColumns.next().getName());
-		assertEquals("BAZ", primaryKeyJoinColumns.next().getName());
-		assertFalse(primaryKeyJoinColumns.hasNext());
-		
-		secondaryTableResource.getPrimaryKeyJoinColumns().move(2, 0);
-		primaryKeyJoinColumns = ormSecondaryTable.specifiedPrimaryKeyJoinColumns();
-		assertEquals("BAR", primaryKeyJoinColumns.next().getName());
-		assertEquals("BAZ", primaryKeyJoinColumns.next().getName());
-		assertEquals("FOO", primaryKeyJoinColumns.next().getName());
-		assertFalse(primaryKeyJoinColumns.hasNext());
-
-		secondaryTableResource.getPrimaryKeyJoinColumns().move(0, 1);
-		primaryKeyJoinColumns = ormSecondaryTable.specifiedPrimaryKeyJoinColumns();
-		assertEquals("BAZ", primaryKeyJoinColumns.next().getName());
-		assertEquals("BAR", primaryKeyJoinColumns.next().getName());
-		assertEquals("FOO", primaryKeyJoinColumns.next().getName());
-		assertFalse(primaryKeyJoinColumns.hasNext());
-
-		secondaryTableResource.getPrimaryKeyJoinColumns().remove(1);
-		primaryKeyJoinColumns = ormSecondaryTable.specifiedPrimaryKeyJoinColumns();
-		assertEquals("BAZ", primaryKeyJoinColumns.next().getName());
-		assertEquals("FOO", primaryKeyJoinColumns.next().getName());
-		assertFalse(primaryKeyJoinColumns.hasNext());
-
-		secondaryTableResource.getPrimaryKeyJoinColumns().remove(1);
-		primaryKeyJoinColumns = ormSecondaryTable.specifiedPrimaryKeyJoinColumns();
-		assertEquals("BAZ", primaryKeyJoinColumns.next().getName());
-		assertFalse(primaryKeyJoinColumns.hasNext());
-		
-		secondaryTableResource.getPrimaryKeyJoinColumns().remove(0);
-		assertFalse(ormSecondaryTable.specifiedPrimaryKeyJoinColumns().hasNext());
-	}
-	
-
-	public void testUniqueConstraints() throws Exception {
-		OrmPersistentType persistentType = getEntityMappings().addPersistentType(MappingKeys.ENTITY_TYPE_MAPPING_KEY, FULLY_QUALIFIED_TYPE_NAME);
-		OrmEntity ormEntity = (OrmEntity) persistentType.getMapping();
-		OrmSecondaryTable ormSecondaryTable = ormEntity.addSpecifiedSecondaryTable(0);
-		XmlEntity entityResource = getXmlEntityMappings().getEntities().get(0);
-		XmlSecondaryTable secondaryTableResource = entityResource.getSecondaryTables().get(0);
-		
-		ListIterator<OrmUniqueConstraint> uniqueConstraints = ormSecondaryTable.uniqueConstraints();
-		assertFalse(uniqueConstraints.hasNext());
-		
-		XmlUniqueConstraint uniqueConstraintResource = OrmFactory.eINSTANCE.createXmlUniqueConstraintImpl();
-		secondaryTableResource.getUniqueConstraints().add(0, uniqueConstraintResource);
-		uniqueConstraintResource.getColumnNames().add(0, "foo");
-		
-		uniqueConstraintResource = OrmFactory.eINSTANCE.createXmlUniqueConstraintImpl();
-		secondaryTableResource.getUniqueConstraints().add(0, uniqueConstraintResource);
-		uniqueConstraintResource.getColumnNames().add(0, "bar");
-		
-		uniqueConstraints = ormSecondaryTable.uniqueConstraints();
-		assertTrue(uniqueConstraints.hasNext());
-		assertEquals("bar", uniqueConstraints.next().columnNames().next());
-		assertEquals("foo", uniqueConstraints.next().columnNames().next());
-		assertFalse(uniqueConstraints.hasNext());
-	}
-	
-	public void testUniqueConstraintsSize() throws Exception {
-		OrmPersistentType persistentType = getEntityMappings().addPersistentType(MappingKeys.ENTITY_TYPE_MAPPING_KEY, FULLY_QUALIFIED_TYPE_NAME);
-		OrmEntity ormEntity = (OrmEntity) persistentType.getMapping();
-		OrmSecondaryTable ormSecondaryTable = ormEntity.addSpecifiedSecondaryTable(0);
-		XmlEntity entityResource = getXmlEntityMappings().getEntities().get(0);
-		XmlSecondaryTable secondaryTableResource = entityResource.getSecondaryTables().get(0);
-		
-		assertEquals(0,  ormSecondaryTable.uniqueConstraintsSize());
-		
-		XmlUniqueConstraint uniqueConstraintResource = OrmFactory.eINSTANCE.createXmlUniqueConstraintImpl();
-		secondaryTableResource.getUniqueConstraints().add(0, uniqueConstraintResource);
-		uniqueConstraintResource.getColumnNames().add(0, "foo");
-		
-		uniqueConstraintResource = OrmFactory.eINSTANCE.createXmlUniqueConstraintImpl();
-		secondaryTableResource.getUniqueConstraints().add(1, uniqueConstraintResource);
-		uniqueConstraintResource.getColumnNames().add(0, "bar");
-		
-		assertEquals(2,  ormSecondaryTable.uniqueConstraintsSize());
-	}
-
-	public void testAddUniqueConstraint() throws Exception {
-		OrmPersistentType persistentType = getEntityMappings().addPersistentType(MappingKeys.ENTITY_TYPE_MAPPING_KEY, FULLY_QUALIFIED_TYPE_NAME);
-		OrmEntity ormEntity = (OrmEntity) persistentType.getMapping();
-		OrmSecondaryTable ormSecondaryTable = ormEntity.addSpecifiedSecondaryTable(0);
-		XmlEntity entityResource = getXmlEntityMappings().getEntities().get(0);
-		XmlSecondaryTable secondaryTableResource = entityResource.getSecondaryTables().get(0);
-		
-		ormSecondaryTable.addUniqueConstraint(0).addColumnName(0, "FOO");
-		ormSecondaryTable.addUniqueConstraint(0).addColumnName(0, "BAR");
-		ormSecondaryTable.addUniqueConstraint(0).addColumnName(0, "BAZ");
-		
-		ListIterator<XmlUniqueConstraint> uniqueConstraints = secondaryTableResource.getUniqueConstraints().listIterator();
-		
-		assertEquals("BAZ", uniqueConstraints.next().getColumnNames().get(0));
-		assertEquals("BAR", uniqueConstraints.next().getColumnNames().get(0));
-		assertEquals("FOO", uniqueConstraints.next().getColumnNames().get(0));
-		assertFalse(uniqueConstraints.hasNext());
-	}
-	
-	public void testAddUniqueConstraint2() throws Exception {
-		OrmPersistentType persistentType = getEntityMappings().addPersistentType(MappingKeys.ENTITY_TYPE_MAPPING_KEY, FULLY_QUALIFIED_TYPE_NAME);
-		OrmEntity ormEntity = (OrmEntity) persistentType.getMapping();
-		OrmSecondaryTable ormSecondaryTable = ormEntity.addSpecifiedSecondaryTable(0);
-		XmlEntity entityResource = getXmlEntityMappings().getEntities().get(0);
-		XmlSecondaryTable secondaryTableResource = entityResource.getSecondaryTables().get(0);
-		
-		ormSecondaryTable.addUniqueConstraint(0).addColumnName(0, "FOO");
-		ormSecondaryTable.addUniqueConstraint(1).addColumnName(0, "BAR");
-		ormSecondaryTable.addUniqueConstraint(0).addColumnName(0, "BAZ");
-		
-		ListIterator<XmlUniqueConstraint> uniqueConstraints = secondaryTableResource.getUniqueConstraints().listIterator();
-		
-		assertEquals("BAZ", uniqueConstraints.next().getColumnNames().get(0));
-		assertEquals("FOO", uniqueConstraints.next().getColumnNames().get(0));
-		assertEquals("BAR", uniqueConstraints.next().getColumnNames().get(0));
-		assertFalse(uniqueConstraints.hasNext());
-	}
-	
-	public void testRemoveUniqueConstraint() throws Exception {
-		OrmPersistentType persistentType = getEntityMappings().addPersistentType(MappingKeys.ENTITY_TYPE_MAPPING_KEY, FULLY_QUALIFIED_TYPE_NAME);
-		OrmEntity ormEntity = (OrmEntity) persistentType.getMapping();
-		OrmSecondaryTable ormSecondaryTable = ormEntity.addSpecifiedSecondaryTable(0);
-		XmlEntity entityResource = getXmlEntityMappings().getEntities().get(0);
-		XmlSecondaryTable secondaryTableResource = entityResource.getSecondaryTables().get(0);
-		
-		ormSecondaryTable.addUniqueConstraint(0).addColumnName(0, "FOO");
-		ormSecondaryTable.addUniqueConstraint(1).addColumnName(0, "BAR");
-		ormSecondaryTable.addUniqueConstraint(2).addColumnName(0, "BAZ");
-		
-		assertEquals(3, secondaryTableResource.getUniqueConstraints().size());
-
-		ormSecondaryTable.removeUniqueConstraint(1);
-		
-		ListIterator<XmlUniqueConstraint> uniqueConstraintResources = secondaryTableResource.getUniqueConstraints().listIterator();
-		assertEquals("FOO", uniqueConstraintResources.next().getColumnNames().get(0));		
-		assertEquals("BAZ", uniqueConstraintResources.next().getColumnNames().get(0));
-		assertFalse(uniqueConstraintResources.hasNext());
-		
-		Iterator<OrmUniqueConstraint> uniqueConstraints = ormSecondaryTable.uniqueConstraints();
-		assertEquals("FOO", uniqueConstraints.next().columnNames().next());		
-		assertEquals("BAZ", uniqueConstraints.next().columnNames().next());
-		assertFalse(uniqueConstraints.hasNext());
-	
-		
-		ormSecondaryTable.removeUniqueConstraint(1);
-		uniqueConstraintResources = secondaryTableResource.getUniqueConstraints().listIterator();
-		assertEquals("FOO", uniqueConstraintResources.next().getColumnNames().get(0));		
-		assertFalse(uniqueConstraintResources.hasNext());
-
-		uniqueConstraints = ormSecondaryTable.uniqueConstraints();
-		assertEquals("FOO", uniqueConstraints.next().columnNames().next());		
-		assertFalse(uniqueConstraints.hasNext());
-
-		
-		ormSecondaryTable.removeUniqueConstraint(0);
-		uniqueConstraintResources = secondaryTableResource.getUniqueConstraints().listIterator();
-		assertFalse(uniqueConstraintResources.hasNext());
-		uniqueConstraints = ormSecondaryTable.uniqueConstraints();
-		assertFalse(uniqueConstraints.hasNext());
-	}
-	
-	public void testMoveUniqueConstraint() throws Exception {
-		OrmPersistentType persistentType = getEntityMappings().addPersistentType(MappingKeys.ENTITY_TYPE_MAPPING_KEY, FULLY_QUALIFIED_TYPE_NAME);
-		OrmEntity ormEntity = (OrmEntity) persistentType.getMapping();
-		OrmSecondaryTable ormSecondaryTable = ormEntity.addSpecifiedSecondaryTable(0);
-		XmlEntity entityResource = getXmlEntityMappings().getEntities().get(0);
-		XmlSecondaryTable secondaryTableResource = entityResource.getSecondaryTables().get(0);
-		
-		ormSecondaryTable.addUniqueConstraint(0).addColumnName(0, "FOO");
-		ormSecondaryTable.addUniqueConstraint(1).addColumnName(0, "BAR");
-		ormSecondaryTable.addUniqueConstraint(2).addColumnName(0, "BAZ");
-		
-		assertEquals(3, secondaryTableResource.getUniqueConstraints().size());
-		
-		
-		ormSecondaryTable.moveUniqueConstraint(2, 0);
-		ListIterator<OrmUniqueConstraint> uniqueConstraints = ormSecondaryTable.uniqueConstraints();
-		assertEquals("BAR", uniqueConstraints.next().columnNames().next());
-		assertEquals("BAZ", uniqueConstraints.next().columnNames().next());
-		assertEquals("FOO", uniqueConstraints.next().columnNames().next());
-
-		ListIterator<XmlUniqueConstraint> uniqueConstraintResources = secondaryTableResource.getUniqueConstraints().listIterator();
-		assertEquals("BAR", uniqueConstraintResources.next().getColumnNames().get(0));
-		assertEquals("BAZ", uniqueConstraintResources.next().getColumnNames().get(0));
-		assertEquals("FOO", uniqueConstraintResources.next().getColumnNames().get(0));
-
-
-		ormSecondaryTable.moveUniqueConstraint(0, 1);
-		uniqueConstraints = ormSecondaryTable.uniqueConstraints();
-		assertEquals("BAZ", uniqueConstraints.next().columnNames().next());
-		assertEquals("BAR", uniqueConstraints.next().columnNames().next());
-		assertEquals("FOO", uniqueConstraints.next().columnNames().next());
-
-		uniqueConstraintResources = secondaryTableResource.getUniqueConstraints().listIterator();
-		assertEquals("BAZ", uniqueConstraintResources.next().getColumnNames().get(0));
-		assertEquals("BAR", uniqueConstraintResources.next().getColumnNames().get(0));
-		assertEquals("FOO", uniqueConstraintResources.next().getColumnNames().get(0));
-	}
-	
-	public void testUpdateUniqueConstraints() throws Exception {
-		OrmPersistentType persistentType = getEntityMappings().addPersistentType(MappingKeys.ENTITY_TYPE_MAPPING_KEY, FULLY_QUALIFIED_TYPE_NAME);
-		OrmEntity ormEntity = (OrmEntity) persistentType.getMapping();
-		OrmSecondaryTable ormSecondaryTable = ormEntity.addSpecifiedSecondaryTable(0);
-		XmlEntity entityResource = getXmlEntityMappings().getEntities().get(0);
-		XmlSecondaryTable secondaryTableResource = entityResource.getSecondaryTables().get(0);
-	
-		XmlUniqueConstraint uniqueConstraintResource = OrmFactory.eINSTANCE.createXmlUniqueConstraintImpl();
-		secondaryTableResource.getUniqueConstraints().add(0, uniqueConstraintResource);
-		uniqueConstraintResource.getColumnNames().add(0, "FOO");
-
-		uniqueConstraintResource = OrmFactory.eINSTANCE.createXmlUniqueConstraintImpl();
-		secondaryTableResource.getUniqueConstraints().add(1, uniqueConstraintResource);
-		uniqueConstraintResource.getColumnNames().add(0, "BAR");
-
-		uniqueConstraintResource = OrmFactory.eINSTANCE.createXmlUniqueConstraintImpl();
-		secondaryTableResource.getUniqueConstraints().add(2, uniqueConstraintResource);
-		uniqueConstraintResource.getColumnNames().add(0, "BAZ");
-
-		
-		ListIterator<OrmUniqueConstraint> uniqueConstraints = ormSecondaryTable.uniqueConstraints();
-		assertEquals("FOO", uniqueConstraints.next().columnNames().next());
-		assertEquals("BAR", uniqueConstraints.next().columnNames().next());
-		assertEquals("BAZ", uniqueConstraints.next().columnNames().next());
-		assertFalse(uniqueConstraints.hasNext());
-		
-		secondaryTableResource.getUniqueConstraints().move(2, 0);
-		uniqueConstraints = ormSecondaryTable.uniqueConstraints();
-		assertEquals("BAR", uniqueConstraints.next().columnNames().next());
-		assertEquals("BAZ", uniqueConstraints.next().columnNames().next());
-		assertEquals("FOO", uniqueConstraints.next().columnNames().next());
-		assertFalse(uniqueConstraints.hasNext());
-	
-		secondaryTableResource.getUniqueConstraints().move(0, 1);
-		uniqueConstraints = ormSecondaryTable.uniqueConstraints();
-		assertEquals("BAZ", uniqueConstraints.next().columnNames().next());
-		assertEquals("BAR", uniqueConstraints.next().columnNames().next());
-		assertEquals("FOO", uniqueConstraints.next().columnNames().next());
-		assertFalse(uniqueConstraints.hasNext());
-	
-		secondaryTableResource.getUniqueConstraints().remove(1);
-		uniqueConstraints = ormSecondaryTable.uniqueConstraints();
-		assertEquals("BAZ", uniqueConstraints.next().columnNames().next());
-		assertEquals("FOO", uniqueConstraints.next().columnNames().next());
-		assertFalse(uniqueConstraints.hasNext());
-	
-		secondaryTableResource.getUniqueConstraints().remove(1);
-		uniqueConstraints = ormSecondaryTable.uniqueConstraints();
-		assertEquals("BAZ", uniqueConstraints.next().columnNames().next());
-		assertFalse(uniqueConstraints.hasNext());
-		
-		secondaryTableResource.getUniqueConstraints().remove(0);
-		uniqueConstraints = ormSecondaryTable.uniqueConstraints();
-		assertFalse(uniqueConstraints.hasNext());
-	}
-	
-	
-	public void testUniqueConstraintsFromJava() throws Exception {
-		createTestEntity();
-		OrmPersistentType ormPersistentType = getEntityMappings().addPersistentType(MappingKeys.ENTITY_TYPE_MAPPING_KEY, FULLY_QUALIFIED_TYPE_NAME);
-		OrmEntity ormEntity = (OrmEntity) ormPersistentType.getMapping();
-		
-		JavaEntity javaEntity = (JavaEntity) ormPersistentType.getJavaPersistentType().getMapping();
-		JavaSecondaryTable javaSecondaryTable = javaEntity.addSpecifiedSecondaryTable(0);
-		javaSecondaryTable.setSpecifiedName("SECONDARY");
-		
-		OrmSecondaryTable ormSecondaryTable = ormEntity.secondaryTables().next();
-		assertTrue(ormSecondaryTable.isVirtual());
-		ListIterator<OrmUniqueConstraint> uniqueConstraints = ormSecondaryTable.uniqueConstraints();
-		assertFalse(uniqueConstraints.hasNext());
-
-		
-		javaSecondaryTable.addUniqueConstraint(0).addColumnName(0, "FOO");
-		javaSecondaryTable.addUniqueConstraint(1).addColumnName(0, "BAR");
-		javaSecondaryTable.addUniqueConstraint(2).addColumnName(0, "BAZ");
-
-		uniqueConstraints = ormSecondaryTable.uniqueConstraints();
-		assertTrue(uniqueConstraints.hasNext());
-		assertEquals("FOO", uniqueConstraints.next().columnNames().next());
-		assertEquals("BAR", uniqueConstraints.next().columnNames().next());
-		assertEquals("BAZ", uniqueConstraints.next().columnNames().next());
-		assertFalse(uniqueConstraints.hasNext());
-		
-		ormEntity.setSecondaryTablesDefinedInXml(true);
-		OrmSecondaryTable ormSecondaryTable2 = ormEntity.secondaryTables().next();
-		ormSecondaryTable2.setSpecifiedName("SECONDARY");
-		
-		assertEquals("SECONDARY", ormSecondaryTable.getSpecifiedName());
-		assertFalse(ormSecondaryTable2.isVirtual());
-		assertEquals(0, ormSecondaryTable2.uniqueConstraintsSize());
-	}
-}
\ No newline at end of file
diff --git a/jpa/tests/org.eclipse.jpt.core.tests/src/org/eclipse/jpt/core/tests/internal/context/orm/OrmSequenceGeneratorTests.java b/jpa/tests/org.eclipse.jpt.core.tests/src/org/eclipse/jpt/core/tests/internal/context/orm/OrmSequenceGeneratorTests.java
deleted file mode 100644
index 08ea9fb..0000000
--- a/jpa/tests/org.eclipse.jpt.core.tests/src/org/eclipse/jpt/core/tests/internal/context/orm/OrmSequenceGeneratorTests.java
+++ /dev/null
@@ -1,172 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.core.tests.internal.context.orm;
-
-import org.eclipse.jpt.core.JptCorePlugin;
-import org.eclipse.jpt.core.context.SequenceGenerator;
-import org.eclipse.jpt.core.resource.orm.XmlSequenceGenerator;
-import org.eclipse.jpt.core.resource.persistence.PersistenceFactory;
-import org.eclipse.jpt.core.resource.persistence.XmlMappingFileRef;
-import org.eclipse.jpt.core.tests.internal.context.ContextModelTestCase;
-
-@SuppressWarnings("nls")
-public class OrmSequenceGeneratorTests extends ContextModelTestCase
-{
-	public OrmSequenceGeneratorTests(String name) {
-		super(name);
-	}
-	
-	@Override
-	protected void setUp() throws Exception {
-		super.setUp();
-		XmlMappingFileRef mappingFileRef = PersistenceFactory.eINSTANCE.createXmlMappingFileRef();
-		mappingFileRef.setFileName(JptCorePlugin.DEFAULT_ORM_XML_FILE_PATH);
-		getXmlPersistenceUnit().getMappingFiles().add(mappingFileRef);
-		getPersistenceXmlResource().save(null);
-	}
-	
-	public void testUpdateSpecifiedName() throws Exception {
-		SequenceGenerator sequenceGenerator = getEntityMappings().addSequenceGenerator(0);		
-		XmlSequenceGenerator sequenceGeneratorResource = getXmlEntityMappings().getSequenceGenerators().get(0);
-		
-		//set name in the resource model, verify context model updated
-		sequenceGeneratorResource.setName("FOO");
-		assertEquals("FOO", sequenceGenerator.getName());
-		assertEquals("FOO", sequenceGeneratorResource.getName());
-	
-		//set name to null in the resource model
-		sequenceGeneratorResource.setName(null);
-		assertNull(sequenceGenerator.getName());
-		assertNull(sequenceGeneratorResource.getName());
-	}
-	
-	public void testModifySpecifiedName() throws Exception {
-		SequenceGenerator sequenceGenerator = getEntityMappings().addSequenceGenerator(0);		
-		XmlSequenceGenerator sequenceGeneratorResource = getXmlEntityMappings().getSequenceGenerators().get(0);
-		
-		//set name in the context model, verify resource model modified
-		sequenceGenerator.setName("FOO");
-		assertEquals("FOO", sequenceGeneratorResource.getName());
-		assertEquals("FOO", sequenceGenerator.getName());
-		
-		//set name to null in the context model
-		sequenceGenerator.setName(null);
-		assertNull(sequenceGeneratorResource.getName());
-		assertNull(sequenceGenerator.getName());
-	}
-	
-	public void testUpdateSpecifiedSequenceName() throws Exception {
-		SequenceGenerator sequenceGenerator = getEntityMappings().addSequenceGenerator(0);		
-		XmlSequenceGenerator sequenceGeneratorResource = getXmlEntityMappings().getSequenceGenerators().get(0);
-		
-		//set name in the resource model, verify context model updated
-		sequenceGeneratorResource.setSequenceName("FOO");
-		assertEquals("FOO", sequenceGenerator.getSpecifiedSequenceName());
-		assertEquals("FOO", sequenceGeneratorResource.getSequenceName());
-	
-		//set name to null in the resource model
-		sequenceGeneratorResource.setSequenceName(null);
-		assertNull(sequenceGenerator.getSpecifiedSequenceName());
-		assertNull(sequenceGeneratorResource.getSequenceName());
-	}
-	
-	public void testModifySpecifiedSequenceName() throws Exception {
-		SequenceGenerator sequenceGenerator = getEntityMappings().addSequenceGenerator(0);		
-		XmlSequenceGenerator sequenceGeneratorResource = getXmlEntityMappings().getSequenceGenerators().get(0);
-		
-		//set name in the context model, verify resource model modified
-		sequenceGenerator.setSpecifiedSequenceName("FOO");
-		assertEquals("FOO", sequenceGeneratorResource.getSequenceName());
-		assertEquals("FOO", sequenceGenerator.getSpecifiedSequenceName());
-		
-		//set name to null in the context model
-		sequenceGenerator.setSpecifiedSequenceName(null);
-		assertNull(sequenceGeneratorResource.getSequenceName());
-		assertNull(sequenceGenerator.getSpecifiedSequenceName());
-	}
-
-	public void testUpdateSpecifiedInitialValue() throws Exception {
-		SequenceGenerator sequenceGenerator = getEntityMappings().addSequenceGenerator(0);		
-		XmlSequenceGenerator sequenceGeneratorResource = getXmlEntityMappings().getSequenceGenerators().get(0);
-		
-		//set initial value in the resource model, verify context model updated
-		sequenceGeneratorResource.setInitialValue(Integer.valueOf(10));
-		assertEquals(Integer.valueOf(10), sequenceGenerator.getSpecifiedInitialValue());
-		assertEquals(Integer.valueOf(10), sequenceGeneratorResource.getInitialValue());
-	
-		//set initial value to 1, which happens to be the default, in the resource model
-		sequenceGeneratorResource.setInitialValue(Integer.valueOf(1));
-		assertEquals(Integer.valueOf(1), sequenceGenerator.getSpecifiedInitialValue());
-		assertEquals(Integer.valueOf(1), sequenceGeneratorResource.getInitialValue());
-	
-		//set initial value to null in the resource model
-		sequenceGeneratorResource.setInitialValue(null);
-		assertNull(sequenceGenerator.getSpecifiedInitialValue());
-		assertNull(sequenceGeneratorResource.getInitialValue());
-	}
-	
-	public void testModifySpecifiedInitialValue() throws Exception {
-		SequenceGenerator sequenceGenerator = getEntityMappings().addSequenceGenerator(0);		
-		XmlSequenceGenerator sequenceGeneratorResource = getXmlEntityMappings().getSequenceGenerators().get(0);
-		
-		//set initial value in the context model, verify resource model modified
-		sequenceGenerator.setSpecifiedInitialValue(Integer.valueOf(10));
-		assertEquals(Integer.valueOf(10), sequenceGeneratorResource.getInitialValue());
-		assertEquals(Integer.valueOf(10), sequenceGenerator.getSpecifiedInitialValue());
-		
-		sequenceGenerator.setSpecifiedInitialValue(Integer.valueOf(1));
-		assertEquals(Integer.valueOf(1), sequenceGeneratorResource.getInitialValue());
-		assertEquals(Integer.valueOf(1), sequenceGenerator.getSpecifiedInitialValue());
-
-		//set initial value to null in the context model
-		sequenceGenerator.setSpecifiedInitialValue(null);
-		assertNull(sequenceGeneratorResource.getInitialValue());
-		assertNull(sequenceGenerator.getSpecifiedInitialValue());
-	}
-	
-	public void testUpdateSpecifiedAllocationSize() throws Exception {
-		SequenceGenerator sequenceGenerator = getEntityMappings().addSequenceGenerator(0);		
-		XmlSequenceGenerator sequenceGeneratorResource = getXmlEntityMappings().getSequenceGenerators().get(0);
-		
-		//set allocation size in the resource model, verify context model updated
-		sequenceGeneratorResource.setAllocationSize(Integer.valueOf(10));
-		assertEquals(Integer.valueOf(10), sequenceGenerator.getSpecifiedAllocationSize());
-		assertEquals(Integer.valueOf(10), sequenceGeneratorResource.getAllocationSize());
-	
-		//set allocation size to 50, which happens to be the default, in the resource model
-		sequenceGeneratorResource.setAllocationSize(Integer.valueOf(1));
-		assertEquals(Integer.valueOf(1), sequenceGenerator.getSpecifiedAllocationSize());
-		assertEquals(Integer.valueOf(1), sequenceGeneratorResource.getAllocationSize());
-	
-		//set allocation size to null in the resource model
-		sequenceGeneratorResource.setAllocationSize(null);
-		assertNull(sequenceGenerator.getSpecifiedAllocationSize());
-		assertNull(sequenceGeneratorResource.getAllocationSize());
-	}
-	
-	public void testModifySpecifiedAllocationSize() throws Exception {
-		SequenceGenerator sequenceGenerator = getEntityMappings().addSequenceGenerator(0);		
-		XmlSequenceGenerator sequenceGeneratorResource = getXmlEntityMappings().getSequenceGenerators().get(0);
-		
-		//set allocation size in the context model, verify resource model modified
-		sequenceGenerator.setSpecifiedAllocationSize(Integer.valueOf(10));
-		assertEquals(Integer.valueOf(10), sequenceGeneratorResource.getAllocationSize());
-		assertEquals(Integer.valueOf(10), sequenceGenerator.getSpecifiedAllocationSize());
-		
-		sequenceGenerator.setSpecifiedAllocationSize(Integer.valueOf(50));
-		assertEquals(Integer.valueOf(50), sequenceGeneratorResource.getAllocationSize());
-		assertEquals(Integer.valueOf(50), sequenceGenerator.getSpecifiedAllocationSize());
-
-		//set allocation size to null in the context model
-		sequenceGenerator.setSpecifiedAllocationSize(null);
-		assertNull(sequenceGeneratorResource.getAllocationSize());
-		assertNull(sequenceGenerator.getSpecifiedAllocationSize());
-	}
-}
\ No newline at end of file
diff --git a/jpa/tests/org.eclipse.jpt.core.tests/src/org/eclipse/jpt/core/tests/internal/context/orm/OrmTableGeneratorTests.java b/jpa/tests/org.eclipse.jpt.core.tests/src/org/eclipse/jpt/core/tests/internal/context/orm/OrmTableGeneratorTests.java
deleted file mode 100644
index a11e5e9..0000000
--- a/jpa/tests/org.eclipse.jpt.core.tests/src/org/eclipse/jpt/core/tests/internal/context/orm/OrmTableGeneratorTests.java
+++ /dev/null
@@ -1,604 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.core.tests.internal.context.orm;
-
-import java.util.Iterator;
-import java.util.ListIterator;
-import org.eclipse.jdt.core.ICompilationUnit;
-import org.eclipse.jpt.core.JptCorePlugin;
-import org.eclipse.jpt.core.MappingKeys;
-import org.eclipse.jpt.core.context.TableGenerator;
-import org.eclipse.jpt.core.context.UniqueConstraint;
-import org.eclipse.jpt.core.context.java.JavaIdMapping;
-import org.eclipse.jpt.core.context.java.JavaTableGenerator;
-import org.eclipse.jpt.core.context.orm.OrmIdMapping;
-import org.eclipse.jpt.core.context.orm.OrmPersistentType;
-import org.eclipse.jpt.core.context.orm.OrmTableGenerator;
-import org.eclipse.jpt.core.context.orm.OrmUniqueConstraint;
-import org.eclipse.jpt.core.resource.java.JPA;
-import org.eclipse.jpt.core.resource.orm.OrmFactory;
-import org.eclipse.jpt.core.resource.orm.XmlTableGenerator;
-import org.eclipse.jpt.core.resource.orm.XmlUniqueConstraint;
-import org.eclipse.jpt.core.resource.persistence.PersistenceFactory;
-import org.eclipse.jpt.core.resource.persistence.XmlMappingFileRef;
-import org.eclipse.jpt.core.tests.internal.context.ContextModelTestCase;
-import org.eclipse.jpt.utility.internal.iterators.ArrayIterator;
-
-@SuppressWarnings("nls")
-public class OrmTableGeneratorTests extends ContextModelTestCase
-{
-	public OrmTableGeneratorTests(String name) {
-		super(name);
-	}
-	
-	@Override
-	protected void setUp() throws Exception {
-		super.setUp();
-		XmlMappingFileRef mappingFileRef = PersistenceFactory.eINSTANCE.createXmlMappingFileRef();
-		mappingFileRef.setFileName(JptCorePlugin.DEFAULT_ORM_XML_FILE_PATH);
-		getXmlPersistenceUnit().getMappingFiles().add(mappingFileRef);
-		getPersistenceXmlResource().save(null);
-	}
-	
-	private ICompilationUnit createTestEntity() throws Exception {
-		return this.createTestType(new DefaultAnnotationWriter() {
-			@Override
-			public Iterator<String> imports() {
-				return new ArrayIterator<String>(JPA.ENTITY, JPA.ID);
-			}
-			@Override
-			public void appendTypeAnnotationTo(StringBuilder sb) {
-				sb.append("@Entity");
-			}
-			@Override
-			public void appendIdFieldAnnotationTo(StringBuilder sb) {
-				sb.append("@Id");
-			}
-		});
-	}
-	
-	public void testUpdateSpecifiedName() throws Exception {
-		TableGenerator tableGenerator = getEntityMappings().addTableGenerator(0);		
-		XmlTableGenerator tableGeneratorResource = getXmlEntityMappings().getTableGenerators().get(0);
-		
-		//set name in the resource model, verify context model updated
-		tableGeneratorResource.setName("FOO");
-		assertEquals("FOO", tableGenerator.getName());
-		assertEquals("FOO", tableGeneratorResource.getName());
-	
-		//set name to null in the resource model
-		tableGeneratorResource.setName(null);
-		assertNull(tableGenerator.getName());
-		assertNull(tableGeneratorResource.getName());
-	}
-	
-	public void testModifySpecifiedName() throws Exception {
-		TableGenerator tableGenerator = getEntityMappings().addTableGenerator(0);		
-		XmlTableGenerator tableGeneratorResource = getXmlEntityMappings().getTableGenerators().get(0);
-		
-		//set name in the context model, verify resource model modified
-		tableGenerator.setName("FOO");
-		assertEquals("FOO", tableGeneratorResource.getName());
-		assertEquals("FOO", tableGenerator.getName());
-		
-		//set name to null in the context model
-		tableGenerator.setName(null);
-		assertNull(tableGeneratorResource.getName());
-		assertNull(tableGenerator.getName());
-	}
-
-	public void testUpdateSpecifiedInitialValue() throws Exception {
-		TableGenerator tableGenerator = getEntityMappings().addTableGenerator(0);		
-		XmlTableGenerator tableGeneratorResource = getXmlEntityMappings().getTableGenerators().get(0);
-		
-		//set initial value in the resource model, verify context model updated
-		tableGeneratorResource.setInitialValue(Integer.valueOf(10));
-		assertEquals(Integer.valueOf(10), tableGenerator.getSpecifiedInitialValue());
-		assertEquals(Integer.valueOf(10), tableGeneratorResource.getInitialValue());
-	
-		//set initial value to 1, which happens to be the default, in the resource model
-		tableGeneratorResource.setInitialValue(Integer.valueOf(1));
-		assertEquals(Integer.valueOf(1), tableGenerator.getSpecifiedInitialValue());
-		assertEquals(Integer.valueOf(1), tableGeneratorResource.getInitialValue());
-	
-		//set initial value to null in the resource model
-		tableGeneratorResource.setInitialValue(null);
-		assertNull(tableGenerator.getSpecifiedInitialValue());
-		assertNull(tableGeneratorResource.getInitialValue());
-	}
-	
-	public void testModifySpecifiedInitialValue() throws Exception {
-		TableGenerator tableGenerator = getEntityMappings().addTableGenerator(0);		
-		XmlTableGenerator tableGeneratorResource = getXmlEntityMappings().getTableGenerators().get(0);
-		
-		//set initial value in the context model, verify resource model modified
-		tableGenerator.setSpecifiedInitialValue(Integer.valueOf(10));
-		assertEquals(Integer.valueOf(10), tableGeneratorResource.getInitialValue());
-		assertEquals(Integer.valueOf(10), tableGenerator.getSpecifiedInitialValue());
-		
-		tableGenerator.setSpecifiedInitialValue(Integer.valueOf(1));
-		assertEquals(Integer.valueOf(1), tableGeneratorResource.getInitialValue());
-		assertEquals(Integer.valueOf(1), tableGenerator.getSpecifiedInitialValue());
-
-		//set initial value to null in the context model
-		tableGenerator.setSpecifiedInitialValue(null);
-		assertNull(tableGeneratorResource.getInitialValue());
-		assertNull(tableGenerator.getSpecifiedInitialValue());
-	}
-	
-	public void testUpdateSpecifiedAllocationSize() throws Exception {
-		TableGenerator tableGenerator = getEntityMappings().addTableGenerator(0);		
-		XmlTableGenerator tableGeneratorResource = getXmlEntityMappings().getTableGenerators().get(0);
-		
-		//set allocation size in the resource model, verify context model updated
-		tableGeneratorResource.setAllocationSize(Integer.valueOf(10));
-		assertEquals(Integer.valueOf(10), tableGenerator.getSpecifiedAllocationSize());
-		assertEquals(Integer.valueOf(10), tableGeneratorResource.getAllocationSize());
-	
-		//set allocation size to 50, which happens to be the default, in the resource model
-		tableGeneratorResource.setAllocationSize(Integer.valueOf(1));
-		assertEquals(Integer.valueOf(1), tableGenerator.getSpecifiedAllocationSize());
-		assertEquals(Integer.valueOf(1), tableGeneratorResource.getAllocationSize());
-	
-		//set allocation size to null in the resource model
-		tableGeneratorResource.setAllocationSize(null);
-		assertNull(tableGenerator.getSpecifiedAllocationSize());
-		assertNull(tableGeneratorResource.getAllocationSize());
-	}
-	
-	public void testModifySpecifiedAllocationSize() throws Exception {
-		TableGenerator tableGenerator = getEntityMappings().addTableGenerator(0);		
-		XmlTableGenerator tableGeneratorResource = getXmlEntityMappings().getTableGenerators().get(0);
-		
-		//set allocation size in the context model, verify resource model modified
-		tableGenerator.setSpecifiedAllocationSize(Integer.valueOf(10));
-		assertEquals(Integer.valueOf(10), tableGeneratorResource.getAllocationSize());
-		assertEquals(Integer.valueOf(10), tableGenerator.getSpecifiedAllocationSize());
-		
-		tableGenerator.setSpecifiedAllocationSize(Integer.valueOf(50));
-		assertEquals(Integer.valueOf(50), tableGeneratorResource.getAllocationSize());
-		assertEquals(Integer.valueOf(50), tableGenerator.getSpecifiedAllocationSize());
-
-		//set allocation size to null in the context model
-		tableGenerator.setSpecifiedAllocationSize(null);
-		assertNull(tableGeneratorResource.getAllocationSize());
-		assertNull(tableGenerator.getSpecifiedAllocationSize());
-	}
-	
-	public void testUpdateSpecifiedTable() throws Exception {
-		TableGenerator tableGenerator = getEntityMappings().addTableGenerator(0);		
-		XmlTableGenerator tableGeneratorResource = getXmlEntityMappings().getTableGenerators().get(0);
-		
-		//set name in the resource model, verify context model updated
-		tableGeneratorResource.setTable("FOO");
-		assertEquals("FOO", tableGenerator.getSpecifiedTable());
-		assertEquals("FOO", tableGeneratorResource.getTable());
-	
-		//set name to null in the resource model
-		tableGeneratorResource.setTable(null);
-		assertNull(tableGenerator.getSpecifiedTable());
-		assertNull(tableGeneratorResource.getTable());
-	}
-	
-	public void testModifySpecifiedTable() throws Exception {
-		TableGenerator tableGenerator = getEntityMappings().addTableGenerator(0);		
-		XmlTableGenerator tableGeneratorResource = getXmlEntityMappings().getTableGenerators().get(0);
-		
-		//set name in the context model, verify resource model modified
-		tableGenerator.setSpecifiedTable("FOO");
-		assertEquals("FOO", tableGeneratorResource.getTable());
-		assertEquals("FOO", tableGenerator.getSpecifiedTable());
-		
-		//set name to null in the context model
-		tableGenerator.setSpecifiedTable(null);
-		assertNull(tableGeneratorResource.getTable());
-		assertNull(tableGenerator.getSpecifiedTable());
-	}
-
-	public void testUpdateSpecifiedSchema() throws Exception {
-		TableGenerator tableGenerator = getEntityMappings().addTableGenerator(0);		
-		XmlTableGenerator tableGeneratorResource = getXmlEntityMappings().getTableGenerators().get(0);
-		
-		//set name in the resource model, verify context model updated
-		tableGeneratorResource.setSchema("FOO");
-		assertEquals("FOO", tableGenerator.getSpecifiedSchema());
-		assertEquals("FOO", tableGeneratorResource.getSchema());
-	
-		//set name to null in the resource model
-		tableGeneratorResource.setSchema(null);
-		assertNull(tableGenerator.getSpecifiedSchema());
-		assertNull(tableGeneratorResource.getSchema());
-	}
-	
-	public void testModifySpecifiedSchema() throws Exception {
-		TableGenerator tableGenerator = getEntityMappings().addTableGenerator(0);		
-		XmlTableGenerator tableGeneratorResource = getXmlEntityMappings().getTableGenerators().get(0);
-		
-		//set name in the context model, verify resource model modified
-		tableGenerator.setSpecifiedSchema("FOO");
-		assertEquals("FOO", tableGeneratorResource.getSchema());
-		assertEquals("FOO", tableGenerator.getSpecifiedSchema());
-		
-		//set name to null in the context model
-		tableGenerator.setSpecifiedSchema(null);
-		assertNull(tableGeneratorResource.getSchema());
-		assertNull(tableGenerator.getSpecifiedSchema());
-	}
-	
-	public void testUpdateDefaultSchemaFromPersistenceUnitDefaults() throws Exception {
-		TableGenerator tableGenerator = getEntityMappings().addTableGenerator(0);		
-		
-		assertNull(tableGenerator.getDefaultSchema());
-		
-		getEntityMappings().getPersistenceUnitMetadata().getPersistenceUnitDefaults().setSpecifiedSchema("FOO");
-		assertEquals("FOO", tableGenerator.getDefaultSchema());
-		
-		getEntityMappings().setSpecifiedSchema("BAR");
-		assertEquals("BAR", tableGenerator.getDefaultSchema());
-	}
-
-	public void testUpdateSpecifiedCatalog() throws Exception {
-		TableGenerator tableGenerator = getEntityMappings().addTableGenerator(0);		
-		XmlTableGenerator tableGeneratorResource = getXmlEntityMappings().getTableGenerators().get(0);
-		
-		//set name in the resource model, verify context model updated
-		tableGeneratorResource.setCatalog("FOO");
-		assertEquals("FOO", tableGenerator.getSpecifiedCatalog());
-		assertEquals("FOO", tableGeneratorResource.getCatalog());
-	
-		//set name to null in the resource model
-		tableGeneratorResource.setCatalog(null);
-		assertNull(tableGenerator.getSpecifiedCatalog());
-		assertNull(tableGeneratorResource.getCatalog());
-	}
-	
-	public void testModifySpecifiedCatalog() throws Exception {
-		TableGenerator tableGenerator = getEntityMappings().addTableGenerator(0);		
-		XmlTableGenerator tableGeneratorResource = getXmlEntityMappings().getTableGenerators().get(0);
-		
-		//set name in the context model, verify resource model modified
-		tableGenerator.setSpecifiedCatalog("FOO");
-		assertEquals("FOO", tableGeneratorResource.getCatalog());
-		assertEquals("FOO", tableGenerator.getSpecifiedCatalog());
-		
-		//set name to null in the context model
-		tableGenerator.setSpecifiedCatalog(null);
-		assertNull(tableGeneratorResource.getCatalog());
-		assertNull(tableGenerator.getSpecifiedCatalog());
-	}
-	
-	public void testUpdateSpecifiedPkColumnName() throws Exception {
-		TableGenerator tableGenerator = getEntityMappings().addTableGenerator(0);		
-		XmlTableGenerator tableGeneratorResource = getXmlEntityMappings().getTableGenerators().get(0);
-		
-		//set name in the resource model, verify context model updated
-		tableGeneratorResource.setPkColumnName("FOO");
-		assertEquals("FOO", tableGenerator.getSpecifiedPkColumnName());
-		assertEquals("FOO", tableGeneratorResource.getPkColumnName());
-	
-		//set name to null in the resource model
-		tableGeneratorResource.setPkColumnName(null);
-		assertNull(tableGenerator.getSpecifiedPkColumnName());
-		assertNull(tableGeneratorResource.getPkColumnName());
-	}
-	
-	public void testModifySpecifiedPkColumnName() throws Exception {
-		TableGenerator tableGenerator = getEntityMappings().addTableGenerator(0);		
-		XmlTableGenerator tableGeneratorResource = getXmlEntityMappings().getTableGenerators().get(0);
-		
-		//set name in the context model, verify resource model modified
-		tableGenerator.setSpecifiedPkColumnName("FOO");
-		assertEquals("FOO", tableGeneratorResource.getPkColumnName());
-		assertEquals("FOO", tableGenerator.getSpecifiedPkColumnName());
-		
-		//set name to null in the context model
-		tableGenerator.setSpecifiedPkColumnName(null);
-		assertNull(tableGeneratorResource.getPkColumnName());
-		assertNull(tableGenerator.getSpecifiedPkColumnName());
-	}
-	
-	public void testUpdateSpecifiedValueColumnName() throws Exception {
-		TableGenerator tableGenerator = getEntityMappings().addTableGenerator(0);		
-		XmlTableGenerator tableGeneratorResource = getXmlEntityMappings().getTableGenerators().get(0);
-		
-		//set name in the resource model, verify context model updated
-		tableGeneratorResource.setValueColumnName("FOO");
-		assertEquals("FOO", tableGenerator.getSpecifiedValueColumnName());
-		assertEquals("FOO", tableGeneratorResource.getValueColumnName());
-	
-		//set name to null in the resource model
-		tableGeneratorResource.setValueColumnName(null);
-		assertNull(tableGenerator.getSpecifiedValueColumnName());
-		assertNull(tableGeneratorResource.getValueColumnName());
-	}
-	
-	public void testModifySpecifiedValueColumnName() throws Exception {
-		TableGenerator tableGenerator = getEntityMappings().addTableGenerator(0);		
-		XmlTableGenerator tableGeneratorResource = getXmlEntityMappings().getTableGenerators().get(0);
-		
-		//set name in the context model, verify resource model modified
-		tableGenerator.setSpecifiedValueColumnName("FOO");
-		assertEquals("FOO", tableGeneratorResource.getValueColumnName());
-		assertEquals("FOO", tableGenerator.getSpecifiedValueColumnName());
-		
-		//set name to null in the context model
-		tableGenerator.setSpecifiedValueColumnName(null);
-		assertNull(tableGeneratorResource.getValueColumnName());
-		assertNull(tableGenerator.getSpecifiedValueColumnName());
-	}
-	
-	public void testUpdateSpecifiedPkColumnValue() throws Exception {
-		TableGenerator tableGenerator = getEntityMappings().addTableGenerator(0);		
-		XmlTableGenerator tableGeneratorResource = getXmlEntityMappings().getTableGenerators().get(0);
-		
-		//set name in the resource model, verify context model updated
-		tableGeneratorResource.setPkColumnValue("FOO");
-		assertEquals("FOO", tableGenerator.getSpecifiedPkColumnValue());
-		assertEquals("FOO", tableGeneratorResource.getPkColumnValue());
-	
-		//set name to null in the resource model
-		tableGeneratorResource.setPkColumnValue(null);
-		assertNull(tableGenerator.getSpecifiedPkColumnValue());
-		assertNull(tableGeneratorResource.getPkColumnValue());
-	}
-	
-	public void testModifySpecifiedPkColumnValue() throws Exception {
-		TableGenerator tableGenerator = getEntityMappings().addTableGenerator(0);		
-		XmlTableGenerator tableGeneratorResource = getXmlEntityMappings().getTableGenerators().get(0);
-		
-		//set name in the context model, verify resource model modified
-		tableGenerator.setSpecifiedPkColumnValue("FOO");
-		assertEquals("FOO", tableGeneratorResource.getPkColumnValue());
-		assertEquals("FOO", tableGenerator.getSpecifiedPkColumnValue());
-		
-		//set name to null in the context model
-		tableGenerator.setSpecifiedPkColumnValue(null);
-		assertNull(tableGeneratorResource.getPkColumnValue());
-		assertNull(tableGenerator.getSpecifiedPkColumnValue());
-	}
-	
-
-	public void testUniqueConstraints() throws Exception {
-		TableGenerator tableGenerator = getEntityMappings().addTableGenerator(0);		
-		XmlTableGenerator tableGeneratorResource = getXmlEntityMappings().getTableGenerators().get(0);
-		
-		ListIterator<OrmUniqueConstraint> uniqueConstraints = tableGenerator.uniqueConstraints();
-		assertFalse(uniqueConstraints.hasNext());
-		
-		XmlUniqueConstraint uniqueConstraintResource = OrmFactory.eINSTANCE.createXmlUniqueConstraintImpl();
-		tableGeneratorResource.getUniqueConstraints().add(0, uniqueConstraintResource);
-		uniqueConstraintResource.getColumnNames().add(0, "foo");
-		
-		uniqueConstraintResource = OrmFactory.eINSTANCE.createXmlUniqueConstraintImpl();
-		tableGeneratorResource.getUniqueConstraints().add(0, uniqueConstraintResource);
-		uniqueConstraintResource.getColumnNames().add(0, "bar");
-		
-		uniqueConstraints = tableGenerator.uniqueConstraints();
-		assertTrue(uniqueConstraints.hasNext());
-		assertEquals("bar", uniqueConstraints.next().columnNames().next());
-		assertEquals("foo", uniqueConstraints.next().columnNames().next());
-		assertFalse(uniqueConstraints.hasNext());
-	}
-	
-	public void testUniqueConstraintsSize() throws Exception {
-		TableGenerator tableGenerator = getEntityMappings().addTableGenerator(0);		
-		XmlTableGenerator tableGeneratorResource = getXmlEntityMappings().getTableGenerators().get(0);
-		
-		assertEquals(0,  tableGenerator.uniqueConstraintsSize());
-		
-		XmlUniqueConstraint uniqueConstraintResource = OrmFactory.eINSTANCE.createXmlUniqueConstraintImpl();
-		tableGeneratorResource.getUniqueConstraints().add(0, uniqueConstraintResource);
-		uniqueConstraintResource.getColumnNames().add(0, "foo");
-		
-		uniqueConstraintResource = OrmFactory.eINSTANCE.createXmlUniqueConstraintImpl();
-		tableGeneratorResource.getUniqueConstraints().add(1, uniqueConstraintResource);
-		uniqueConstraintResource.getColumnNames().add(0, "bar");
-		
-		assertEquals(2,  tableGenerator.uniqueConstraintsSize());
-	}
-
-	public void testAddUniqueConstraint() throws Exception {
-		TableGenerator tableGenerator = getEntityMappings().addTableGenerator(0);		
-		XmlTableGenerator tableGeneratorResource = getXmlEntityMappings().getTableGenerators().get(0);
-		
-		tableGenerator.addUniqueConstraint(0).addColumnName(0, "FOO");
-		tableGenerator.addUniqueConstraint(0).addColumnName(0, "BAR");
-		tableGenerator.addUniqueConstraint(0).addColumnName(0, "BAZ");
-				
-		ListIterator<XmlUniqueConstraint> uniqueConstraints = tableGeneratorResource.getUniqueConstraints().listIterator();
-		
-		assertEquals("BAZ", uniqueConstraints.next().getColumnNames().get(0));
-		assertEquals("BAR", uniqueConstraints.next().getColumnNames().get(0));
-		assertEquals("FOO", uniqueConstraints.next().getColumnNames().get(0));
-		assertFalse(uniqueConstraints.hasNext());
-	}
-	
-	public void testAddUniqueConstraint2() throws Exception {
-		TableGenerator tableGenerator = getEntityMappings().addTableGenerator(0);		
-		XmlTableGenerator tableGeneratorResource = getXmlEntityMappings().getTableGenerators().get(0);
-		
-		tableGenerator.addUniqueConstraint(0).addColumnName(0, "FOO");
-		tableGenerator.addUniqueConstraint(1).addColumnName(0, "BAR");
-		tableGenerator.addUniqueConstraint(0).addColumnName(0, "BAZ");
-		
-		ListIterator<XmlUniqueConstraint> uniqueConstraints = tableGeneratorResource.getUniqueConstraints().listIterator();
-		
-		assertEquals("BAZ", uniqueConstraints.next().getColumnNames().get(0));
-		assertEquals("FOO", uniqueConstraints.next().getColumnNames().get(0));
-		assertEquals("BAR", uniqueConstraints.next().getColumnNames().get(0));
-		assertFalse(uniqueConstraints.hasNext());
-	}
-	
-	public void testRemoveUniqueConstraint() throws Exception {
-		TableGenerator tableGenerator = getEntityMappings().addTableGenerator(0);		
-		XmlTableGenerator tableGeneratorResource = getXmlEntityMappings().getTableGenerators().get(0);
-
-		tableGenerator.addUniqueConstraint(0).addColumnName(0, "FOO");
-		tableGenerator.addUniqueConstraint(1).addColumnName(0, "BAR");
-		tableGenerator.addUniqueConstraint(2).addColumnName(0, "BAZ");
-		
-		assertEquals(3, tableGeneratorResource.getUniqueConstraints().size());
-
-		tableGenerator.removeUniqueConstraint(1);
-		
-		ListIterator<XmlUniqueConstraint> uniqueConstraintResources = tableGeneratorResource.getUniqueConstraints().listIterator();
-		assertEquals("FOO", uniqueConstraintResources.next().getColumnNames().get(0));		
-		assertEquals("BAZ", uniqueConstraintResources.next().getColumnNames().get(0));
-		assertFalse(uniqueConstraintResources.hasNext());
-		
-		Iterator<UniqueConstraint> uniqueConstraints = tableGenerator.uniqueConstraints();
-		assertEquals("FOO", uniqueConstraints.next().columnNames().next());		
-		assertEquals("BAZ", uniqueConstraints.next().columnNames().next());
-		assertFalse(uniqueConstraints.hasNext());
-	
-		
-		tableGenerator.removeUniqueConstraint(1);
-		uniqueConstraintResources = tableGeneratorResource.getUniqueConstraints().listIterator();
-		assertEquals("FOO", uniqueConstraintResources.next().getColumnNames().get(0));		
-		assertFalse(uniqueConstraintResources.hasNext());
-
-		uniqueConstraints = tableGenerator.uniqueConstraints();
-		assertEquals("FOO", uniqueConstraints.next().columnNames().next());		
-		assertFalse(uniqueConstraints.hasNext());
-
-		
-		tableGenerator.removeUniqueConstraint(0);
-		uniqueConstraintResources = tableGeneratorResource.getUniqueConstraints().listIterator();
-		assertFalse(uniqueConstraintResources.hasNext());
-		uniqueConstraints = tableGenerator.uniqueConstraints();
-		assertFalse(uniqueConstraints.hasNext());
-	}
-	
-	public void testMoveUniqueConstraint() throws Exception {
-		TableGenerator tableGenerator = getEntityMappings().addTableGenerator(0);		
-		XmlTableGenerator tableGeneratorResource = getXmlEntityMappings().getTableGenerators().get(0);
-
-		tableGenerator.addUniqueConstraint(0).addColumnName(0, "FOO");
-		tableGenerator.addUniqueConstraint(1).addColumnName(0, "BAR");
-		tableGenerator.addUniqueConstraint(2).addColumnName(0, "BAZ");
-		
-		assertEquals(3, tableGeneratorResource.getUniqueConstraints().size());
-		
-		
-		tableGenerator.moveUniqueConstraint(2, 0);
-		ListIterator<UniqueConstraint> uniqueConstraints = tableGenerator.uniqueConstraints();
-		assertEquals("BAR", uniqueConstraints.next().columnNames().next());
-		assertEquals("BAZ", uniqueConstraints.next().columnNames().next());
-		assertEquals("FOO", uniqueConstraints.next().columnNames().next());
-
-		ListIterator<XmlUniqueConstraint> uniqueConstraintResources = tableGeneratorResource.getUniqueConstraints().listIterator();
-		assertEquals("BAR", uniqueConstraintResources.next().getColumnNames().get(0));
-		assertEquals("BAZ", uniqueConstraintResources.next().getColumnNames().get(0));
-		assertEquals("FOO", uniqueConstraintResources.next().getColumnNames().get(0));
-
-
-		tableGenerator.moveUniqueConstraint(0, 1);
-		uniqueConstraints = tableGenerator.uniqueConstraints();
-		assertEquals("BAZ", uniqueConstraints.next().columnNames().next());
-		assertEquals("BAR", uniqueConstraints.next().columnNames().next());
-		assertEquals("FOO", uniqueConstraints.next().columnNames().next());
-
-		uniqueConstraintResources = tableGeneratorResource.getUniqueConstraints().listIterator();
-		assertEquals("BAZ", uniqueConstraintResources.next().getColumnNames().get(0));
-		assertEquals("BAR", uniqueConstraintResources.next().getColumnNames().get(0));
-		assertEquals("FOO", uniqueConstraintResources.next().getColumnNames().get(0));
-	}
-	
-	public void testUpdateUniqueConstraints() throws Exception {
-		TableGenerator tableGenerator = getEntityMappings().addTableGenerator(0);		
-		XmlTableGenerator tableGeneratorResource = getXmlEntityMappings().getTableGenerators().get(0);
-	
-		XmlUniqueConstraint uniqueConstraintResource = OrmFactory.eINSTANCE.createXmlUniqueConstraintImpl();
-		tableGeneratorResource.getUniqueConstraints().add(0, uniqueConstraintResource);
-		uniqueConstraintResource.getColumnNames().add(0, "FOO");
-
-		uniqueConstraintResource = OrmFactory.eINSTANCE.createXmlUniqueConstraintImpl();
-		tableGeneratorResource.getUniqueConstraints().add(1, uniqueConstraintResource);
-		uniqueConstraintResource.getColumnNames().add(0, "BAR");
-
-		uniqueConstraintResource = OrmFactory.eINSTANCE.createXmlUniqueConstraintImpl();
-		tableGeneratorResource.getUniqueConstraints().add(2, uniqueConstraintResource);
-		uniqueConstraintResource.getColumnNames().add(0, "BAZ");
-
-		
-		ListIterator<UniqueConstraint> uniqueConstraints = tableGenerator.uniqueConstraints();
-		assertEquals("FOO", uniqueConstraints.next().columnNames().next());
-		assertEquals("BAR", uniqueConstraints.next().columnNames().next());
-		assertEquals("BAZ", uniqueConstraints.next().columnNames().next());
-		assertFalse(uniqueConstraints.hasNext());
-		
-		tableGeneratorResource.getUniqueConstraints().move(2, 0);
-		uniqueConstraints = tableGenerator.uniqueConstraints();
-		assertEquals("BAR", uniqueConstraints.next().columnNames().next());
-		assertEquals("BAZ", uniqueConstraints.next().columnNames().next());
-		assertEquals("FOO", uniqueConstraints.next().columnNames().next());
-		assertFalse(uniqueConstraints.hasNext());
-	
-		tableGeneratorResource.getUniqueConstraints().move(0, 1);
-		uniqueConstraints = tableGenerator.uniqueConstraints();
-		assertEquals("BAZ", uniqueConstraints.next().columnNames().next());
-		assertEquals("BAR", uniqueConstraints.next().columnNames().next());
-		assertEquals("FOO", uniqueConstraints.next().columnNames().next());
-		assertFalse(uniqueConstraints.hasNext());
-	
-		tableGeneratorResource.getUniqueConstraints().remove(1);
-		uniqueConstraints = tableGenerator.uniqueConstraints();
-		assertEquals("BAZ", uniqueConstraints.next().columnNames().next());
-		assertEquals("FOO", uniqueConstraints.next().columnNames().next());
-		assertFalse(uniqueConstraints.hasNext());
-	
-		tableGeneratorResource.getUniqueConstraints().remove(1);
-		uniqueConstraints = tableGenerator.uniqueConstraints();
-		assertEquals("BAZ", uniqueConstraints.next().columnNames().next());
-		assertFalse(uniqueConstraints.hasNext());
-		
-		tableGeneratorResource.getUniqueConstraints().remove(0);
-		uniqueConstraints = tableGenerator.uniqueConstraints();
-		assertFalse(uniqueConstraints.hasNext());
-	}
-	
-	public void testUniqueConstraintsFromJava() throws Exception {
-		createTestEntity();
-		OrmPersistentType ormPersistentType = getEntityMappings().addPersistentType(MappingKeys.ENTITY_TYPE_MAPPING_KEY, FULLY_QUALIFIED_TYPE_NAME);
-
-		OrmIdMapping ormIdMapping = (OrmIdMapping) ormPersistentType.attributes().next().getMapping();
-
-		JavaIdMapping javaIdMapping = (JavaIdMapping) ormPersistentType.getJavaPersistentType().attributes().next().getMapping();
-		JavaTableGenerator javaTableGenerator = javaIdMapping.addTableGenerator();
-		javaTableGenerator.setName("TABLE_GENERATOR");
-		
-		OrmTableGenerator ormTableGenerator = ormIdMapping.getTableGenerator();
-		assertTrue(ormTableGenerator.isVirtual());
-		ListIterator<OrmUniqueConstraint> uniqueConstraints = ormTableGenerator.uniqueConstraints();
-		assertFalse(uniqueConstraints.hasNext());
-
-		
-		javaTableGenerator.addUniqueConstraint(0).addColumnName(0, "FOO");
-		javaTableGenerator.addUniqueConstraint(1).addColumnName(0, "BAR");
-		javaTableGenerator.addUniqueConstraint(2).addColumnName(0, "BAZ");
-
-		uniqueConstraints = ormTableGenerator.uniqueConstraints();
-		assertTrue(uniqueConstraints.hasNext());
-		assertEquals("FOO", uniqueConstraints.next().columnNames().next());
-		assertEquals("BAR", uniqueConstraints.next().columnNames().next());
-		assertEquals("BAZ", uniqueConstraints.next().columnNames().next());
-		assertFalse(uniqueConstraints.hasNext());
-		
-		ormIdMapping.getPersistentAttribute().makeSpecified();
-		ormIdMapping = (OrmIdMapping) ormPersistentType.attributes().next().getMapping();
-	
-		OrmTableGenerator ormTableGenerator2 = ormIdMapping.addTableGenerator();
-		ormTableGenerator2.setName("TABLE_GENERATOR");
-		
-		assertFalse(ormTableGenerator2.isVirtual());
-		assertEquals(0, ormTableGenerator2.uniqueConstraintsSize());
-	}
-
-}
\ No newline at end of file
diff --git a/jpa/tests/org.eclipse.jpt.core.tests/src/org/eclipse/jpt/core/tests/internal/context/orm/OrmTableTests.java b/jpa/tests/org.eclipse.jpt.core.tests/src/org/eclipse/jpt/core/tests/internal/context/orm/OrmTableTests.java
deleted file mode 100644
index a97aa89..0000000
--- a/jpa/tests/org.eclipse.jpt.core.tests/src/org/eclipse/jpt/core/tests/internal/context/orm/OrmTableTests.java
+++ /dev/null
@@ -1,827 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.core.tests.internal.context.orm;
-
-import java.util.Iterator;
-import java.util.ListIterator;
-import org.eclipse.jdt.core.ICompilationUnit;
-import org.eclipse.jpt.core.JptCorePlugin;
-import org.eclipse.jpt.core.MappingKeys;
-import org.eclipse.jpt.core.context.InheritanceType;
-import org.eclipse.jpt.core.context.orm.OrmEntity;
-import org.eclipse.jpt.core.context.orm.OrmPersistentType;
-import org.eclipse.jpt.core.context.orm.OrmTable;
-import org.eclipse.jpt.core.context.orm.OrmUniqueConstraint;
-import org.eclipse.jpt.core.resource.java.JPA;
-import org.eclipse.jpt.core.resource.orm.OrmFactory;
-import org.eclipse.jpt.core.resource.orm.XmlEntity;
-import org.eclipse.jpt.core.resource.orm.XmlTable;
-import org.eclipse.jpt.core.resource.orm.XmlUniqueConstraint;
-import org.eclipse.jpt.core.resource.persistence.PersistenceFactory;
-import org.eclipse.jpt.core.resource.persistence.XmlMappingFileRef;
-import org.eclipse.jpt.core.tests.internal.context.ContextModelTestCase;
-import org.eclipse.jpt.core.tests.internal.projects.TestJavaProject.SourceWriter;
-import org.eclipse.jpt.utility.internal.iterators.ArrayIterator;
-
-@SuppressWarnings("nls")
-public class OrmTableTests extends ContextModelTestCase
-{
-	public OrmTableTests(String name) {
-		super(name);
-	}
-	
-	@Override
-	protected void setUp() throws Exception {
-		super.setUp();
-		XmlMappingFileRef mappingFileRef = PersistenceFactory.eINSTANCE.createXmlMappingFileRef();
-		mappingFileRef.setFileName(JptCorePlugin.DEFAULT_ORM_XML_FILE_PATH);
-		getXmlPersistenceUnit().getMappingFiles().add(mappingFileRef);
-		getPersistenceXmlResource().save(null);
-	}
-	
-	private ICompilationUnit createTestEntity() throws Exception {	
-		return this.createTestType(new DefaultAnnotationWriter() {
-			@Override
-			public Iterator<String> imports() {
-				return new ArrayIterator<String>(JPA.ENTITY, JPA.ID);
-			}
-			@Override
-			public void appendTypeAnnotationTo(StringBuilder sb) {
-				sb.append("@Entity");
-			}
-			@Override
-			public void appendIdFieldAnnotationTo(StringBuilder sb) {
-				sb.append("@Id");
-			}
-		});
-	}
-	
-	private void createTestSubType() throws Exception {
-		SourceWriter sourceWriter = new SourceWriter() {
-			public void appendSourceTo(StringBuilder sb) {
-				sb.append(CR);
-					sb.append("import ");
-					sb.append(JPA.ENTITY);
-					sb.append(";");
-					sb.append(CR);
-				sb.append("@Entity");
-				sb.append(CR);
-				sb.append("public class ").append("AnnotationTestTypeChild").append(" ");
-				sb.append("extends " + TYPE_NAME + " ");
-				sb.append("{}").append(CR);
-			}
-		};
-		this.javaProject.createCompilationUnit(PACKAGE_NAME, "AnnotationTestTypeChild.java", sourceWriter);
-	}
-
-	private ICompilationUnit createAbstractTestEntity() throws Exception {
-		return this.createTestType(new DefaultAnnotationWriter() {
-			@Override
-			public Iterator<String> imports() {
-				return new ArrayIterator<String>(JPA.ENTITY, JPA.INHERITANCE, JPA.INHERITANCE_TYPE);
-			}
-			@Override
-			public void appendTypeAnnotationTo(StringBuilder sb) {
-				sb.append("@Entity").append(CR);
-				sb.append("@Inheritance(strategy=InheritanceType.TABLE_PER_CLASS)").append(CR);
-				sb.append("abstract");
-			}
-		});
-	}
-	
-	public void testUpdateSpecifiedName() throws Exception {
-		OrmPersistentType ormPersistentType = getEntityMappings().addPersistentType(MappingKeys.ENTITY_TYPE_MAPPING_KEY, "model.foo");
-		OrmEntity ormEntity = (OrmEntity) ormPersistentType.getMapping();
-		OrmTable ormTable = ormEntity.getTable();
-		XmlEntity entityResource = getXmlEntityMappings().getEntities().get(0);
-		assertNull(ormTable.getSpecifiedName());
-		assertNull(entityResource.getTable());
-		
-		//set name in the resource model, verify context model updated
-		entityResource.setTable(OrmFactory.eINSTANCE.createXmlTable());
-		entityResource.getTable().setName("FOO");
-		assertEquals("FOO", ormTable.getSpecifiedName());
-		assertEquals("FOO", entityResource.getTable().getName());
-	
-		//set name to null in the resource model
-		entityResource.getTable().setName(null);
-		assertNull(ormTable.getSpecifiedName());
-		assertNull(entityResource.getTable().getName());
-		
-		entityResource.getTable().setName("FOO");
-		assertEquals("FOO", ormTable.getSpecifiedName());
-		assertEquals("FOO", entityResource.getTable().getName());
-
-		entityResource.setTable(null);
-		assertNull(ormTable.getSpecifiedName());
-		assertNull(entityResource.getTable());
-	}
-	
-	public void testModifySpecifiedName() throws Exception {
-		OrmPersistentType ormPersistentType = getEntityMappings().addPersistentType(MappingKeys.ENTITY_TYPE_MAPPING_KEY, "model.foo");
-		OrmTable ormTable = ((OrmEntity) ormPersistentType.getMapping()).getTable();
-		XmlEntity entityResource = getXmlEntityMappings().getEntities().get(0);
-		assertNull(ormTable.getSpecifiedName());
-		assertNull(entityResource.getTable());
-		
-		//set name in the context model, verify resource model modified
-		ormTable.setSpecifiedName("foo");
-		assertEquals("foo", ormTable.getSpecifiedName());
-		assertEquals("foo", entityResource.getTable().getName());
-		
-		//set name to null in the context model
-		ormTable.setSpecifiedName(null);
-		assertNull(ormTable.getSpecifiedName());
-		assertNull(entityResource.getTable());
-	}
-	
-	public void testUpdateDefaultNameFromJavaTable() throws Exception {
-		createTestEntity();
-		
-		OrmPersistentType ormPersistentType = getEntityMappings().addPersistentType(MappingKeys.ENTITY_TYPE_MAPPING_KEY, FULLY_QUALIFIED_TYPE_NAME);
-		OrmEntity ormEntity = (OrmEntity) ormPersistentType.getMapping();
-		assertEquals(TYPE_NAME, ormEntity.getTable().getDefaultName());
-		
-		ormEntity.getJavaEntity().getTable().setSpecifiedName("Foo");
-		assertEquals("Foo", ormEntity.getTable().getDefaultName());
-		
-		ormEntity.setSpecifiedMetadataComplete(Boolean.TRUE);
-		assertEquals(TYPE_NAME, ormEntity.getTable().getDefaultName());
-
-		getEntityMappings().getPersistenceUnitMetadata().setXmlMappingMetadataComplete(true);
-		ormEntity.setSpecifiedMetadataComplete(Boolean.FALSE);
-		assertEquals(TYPE_NAME, ormEntity.getTable().getDefaultName());
-	
-		ormEntity.setSpecifiedMetadataComplete(null);
-		assertEquals(TYPE_NAME, ormEntity.getTable().getDefaultName());
-		
-		getEntityMappings().getPersistenceUnitMetadata().setXmlMappingMetadataComplete(false);
-		assertEquals("Foo", ormEntity.getTable().getDefaultName());
-		
-		ormEntity.getTable().setSpecifiedName("Bar");
-		assertEquals(TYPE_NAME, ormEntity.getTable().getDefaultName());
-	}
-	
-	public void testUpdateDefaultNameNoJava() throws Exception {
-		OrmPersistentType ormPersistentType = getEntityMappings().addPersistentType(MappingKeys.ENTITY_TYPE_MAPPING_KEY, "model.Foo");
-		OrmEntity ormEntity = (OrmEntity) ormPersistentType.getMapping();
-		assertEquals("Foo", ormEntity.getTable().getDefaultName());
-	}
-	
-	public void testUpdateDefaultNameFromEntityName() throws Exception {
-		createTestEntity();
-		
-		OrmPersistentType ormPersistentType = getEntityMappings().addPersistentType(MappingKeys.ENTITY_TYPE_MAPPING_KEY, FULLY_QUALIFIED_TYPE_NAME);
-		OrmEntity ormEntity = (OrmEntity) ormPersistentType.getMapping();
-		
-		assertEquals(TYPE_NAME, ormEntity.getTable().getDefaultName());
-		ormEntity.setSpecifiedName("foo");
-		
-		assertEquals("foo", ormEntity.getTable().getDefaultName());
-		
-		ormEntity.setSpecifiedName(null);
-		assertEquals(TYPE_NAME, ormEntity.getTable().getDefaultName());
-		
-		ormEntity.getJavaEntity().setSpecifiedName("foo");
-		assertEquals("foo", ormEntity.getTable().getDefaultName());
-		
-		ormEntity.setSpecifiedMetadataComplete(Boolean.TRUE);
-		assertEquals(TYPE_NAME, ormEntity.getTable().getDefaultName());
-	}
-	
-	public void testUpdateDefaultNameFromParent() throws Exception {
-		createTestEntity();
-		createTestSubType();
-		
-		OrmPersistentType parentOrmPersistentType = getEntityMappings().addPersistentType(MappingKeys.ENTITY_TYPE_MAPPING_KEY, FULLY_QUALIFIED_TYPE_NAME);
-		OrmPersistentType childOrmPersistentType = getEntityMappings().addPersistentType(MappingKeys.ENTITY_TYPE_MAPPING_KEY, PACKAGE_NAME + ".AnnotationTestTypeChild");
-		OrmEntity parentXmlEntity = (OrmEntity) parentOrmPersistentType.getMapping();
-		OrmEntity childXmlEntity = (OrmEntity) childOrmPersistentType.getMapping();
-		
-		assertEquals(TYPE_NAME, parentXmlEntity.getTable().getDefaultName());
-		assertEquals(TYPE_NAME, childXmlEntity.getTable().getDefaultName());
-		
-		parentXmlEntity.getTable().setSpecifiedName("FOO");
-		assertEquals(TYPE_NAME, parentXmlEntity.getTable().getDefaultName());
-		assertEquals("FOO", childXmlEntity.getTable().getDefaultName());
-
-		parentXmlEntity.setSpecifiedInheritanceStrategy(InheritanceType.JOINED);
-		assertEquals(TYPE_NAME, parentXmlEntity.getTable().getDefaultName());
-		assertEquals("AnnotationTestTypeChild", childXmlEntity.getTable().getDefaultName());
-	}
-
-	public void testUpdateSpecifiedSchema() throws Exception {
-		OrmPersistentType ormPersistentType = getEntityMappings().addPersistentType(MappingKeys.ENTITY_TYPE_MAPPING_KEY, "model.foo");
-		OrmEntity ormEntity = (OrmEntity) ormPersistentType.getMapping();
-		OrmTable ormTable = ormEntity.getTable();
-		XmlEntity entityResource = getXmlEntityMappings().getEntities().get(0);
-		assertNull(ormTable.getSpecifiedSchema());
-		assertNull(entityResource.getTable());
-		
-		//set schema in the resource model, verify context model updated
-		entityResource.setTable(OrmFactory.eINSTANCE.createXmlTable());
-		entityResource.getTable().setSchema("FOO");
-		assertEquals("FOO", ormTable.getSpecifiedSchema());
-		assertEquals("FOO", entityResource.getTable().getSchema());
-	
-		//set Schema to null in the resource model
-		entityResource.getTable().setSchema(null);
-		assertNull(ormTable.getSpecifiedSchema());
-		assertNull(entityResource.getTable().getSchema());
-		
-		entityResource.getTable().setSchema("FOO");
-		assertEquals("FOO", ormTable.getSpecifiedSchema());
-		assertEquals("FOO", entityResource.getTable().getSchema());
-
-		entityResource.setTable(null);
-		assertNull(ormTable.getSpecifiedSchema());
-		assertNull(entityResource.getTable());
-	}
-	
-	public void testUpdateDefaultSchemaFromJavaTable() throws Exception {
-		createTestEntity();
-		
-		OrmPersistentType ormPersistentType = getEntityMappings().addPersistentType(MappingKeys.ENTITY_TYPE_MAPPING_KEY, FULLY_QUALIFIED_TYPE_NAME);
-		OrmEntity ormEntity = (OrmEntity) ormPersistentType.getMapping();
-		assertNull(ormEntity.getTable().getDefaultSchema());
-		
-		ormEntity.getJavaEntity().getTable().setSpecifiedSchema("Foo");
-		assertEquals("Foo", ormEntity.getTable().getDefaultSchema());
-		
-		ormEntity.setSpecifiedMetadataComplete(Boolean.TRUE);
-		assertNull(ormEntity.getTable().getDefaultSchema());
-
-		getEntityMappings().getPersistenceUnitMetadata().setXmlMappingMetadataComplete(true);
-		ormEntity.setSpecifiedMetadataComplete(Boolean.FALSE);
-		assertNull(ormEntity.getTable().getDefaultSchema());
-	
-		ormEntity.setSpecifiedMetadataComplete(null);
-		assertNull(ormEntity.getTable().getDefaultSchema());
-		
-		getEntityMappings().getPersistenceUnitMetadata().setXmlMappingMetadataComplete(false);
-		assertEquals("Foo", ormEntity.getTable().getDefaultSchema());
-		
-		ormEntity.getTable().setSpecifiedName("Bar");
-		assertNull(ormEntity.getTable().getDefaultSchema());
-	}
-	
-	public void testUpdateDefaultSchemaNoJava() throws Exception {
-		createTestEntity();
-		
-		OrmPersistentType ormPersistentType = getEntityMappings().addPersistentType(MappingKeys.ENTITY_TYPE_MAPPING_KEY, "model.Foo");
-		OrmEntity ormEntity = (OrmEntity) ormPersistentType.getMapping();
-		assertNull(ormEntity.getTable().getDefaultSchema());
-	}
-	
-	public void testUpdateDefaultSchemaFromParent() throws Exception {
-		createTestEntity();
-		createTestSubType();
-		
-		OrmPersistentType parentOrmPersistentType = getEntityMappings().addPersistentType(MappingKeys.ENTITY_TYPE_MAPPING_KEY, FULLY_QUALIFIED_TYPE_NAME);
-		OrmPersistentType childOrmPersistentType = getEntityMappings().addPersistentType(MappingKeys.ENTITY_TYPE_MAPPING_KEY, PACKAGE_NAME + ".AnnotationTestTypeChild");
-		OrmEntity parentXmlEntity = (OrmEntity) parentOrmPersistentType.getMapping();
-		OrmEntity childXmlEntity = (OrmEntity) childOrmPersistentType.getMapping();
-		
-		assertNull(parentXmlEntity.getTable().getDefaultSchema());
-		assertNull(childXmlEntity.getTable().getDefaultSchema());
-		
-		parentXmlEntity.getTable().setSpecifiedSchema("FOO");
-		assertNull(parentXmlEntity.getTable().getDefaultSchema());
-		assertEquals("FOO", childXmlEntity.getTable().getDefaultSchema());
-
-		parentXmlEntity.setSpecifiedInheritanceStrategy(InheritanceType.JOINED);
-		assertNull(parentXmlEntity.getTable().getDefaultSchema());
-		assertNull(childXmlEntity.getTable().getDefaultSchema());
-	}
-	
-	public void testUpdateDefaultSchemaFromPersistenceUnitDefaults() throws Exception {
-		createTestEntity();
-		
-		OrmPersistentType ormPersistentType = getEntityMappings().addPersistentType(MappingKeys.ENTITY_TYPE_MAPPING_KEY, FULLY_QUALIFIED_TYPE_NAME);
-		OrmEntity ormEntity = (OrmEntity) ormPersistentType.getMapping();
-		assertNull(ormEntity.getTable().getDefaultSchema());
-		
-		getEntityMappings().getPersistenceUnitMetadata().getPersistenceUnitDefaults().setSpecifiedSchema("FOO");
-		assertEquals("FOO", ormEntity.getTable().getDefaultSchema());
-		
-		getEntityMappings().setSpecifiedSchema("BAR");
-		assertEquals("BAR", ormEntity.getTable().getDefaultSchema());
-		
-		ormEntity.getJavaEntity().getTable().setSpecifiedSchema("JAVA_SCHEMA");
-		assertEquals("JAVA_SCHEMA", ormEntity.getTable().getDefaultSchema());
-		
-		ormEntity.getTable().setSpecifiedName("BLAH");
-		//xml entity now has a table element so default schema is not taken from java
-		assertEquals("BAR", ormEntity.getTable().getDefaultSchema());
-
-		
-		getEntityMappings().setSpecifiedSchema(null);
-		assertEquals("FOO", ormEntity.getTable().getDefaultSchema());
-
-		getEntityMappings().getPersistenceUnitMetadata().getPersistenceUnitDefaults().setSpecifiedSchema(null);
-		assertNull(ormEntity.getTable().getDefaultSchema());
-		
-		ormEntity.getTable().setSpecifiedName(null);
-		assertEquals("JAVA_SCHEMA", ormEntity.getTable().getDefaultSchema());
-	}
-
-	public void testModifySpecifiedSchema() throws Exception {
-		OrmPersistentType ormPersistentType = getEntityMappings().addPersistentType(MappingKeys.ENTITY_TYPE_MAPPING_KEY, "model.foo");
-		OrmEntity ormEntity = (OrmEntity) ormPersistentType.getMapping();
-		OrmTable ormTable = ormEntity.getTable();
-		XmlEntity entityResource = getXmlEntityMappings().getEntities().get(0);
-		assertNull(ormTable.getSpecifiedSchema());
-		assertNull(entityResource.getTable());
-		
-		//set Schema in the context model, verify resource model modified
-		ormTable.setSpecifiedSchema("foo");
-		assertEquals("foo", ormTable.getSpecifiedSchema());
-		assertEquals("foo", entityResource.getTable().getSchema());
-		
-		//set Schema to null in the context model
-		ormTable.setSpecifiedSchema(null);
-		assertNull(ormTable.getSpecifiedSchema());
-		assertNull(entityResource.getTable());
-	}
-	
-	public void testUpdateSpecifiedCatalog() throws Exception {
-		OrmPersistentType ormPersistentType = getEntityMappings().addPersistentType(MappingKeys.ENTITY_TYPE_MAPPING_KEY, "model.foo");
-		OrmEntity ormEntity = (OrmEntity) ormPersistentType.getMapping();
-		OrmTable ormTable = ormEntity.getTable();
-		XmlEntity entityResource = getXmlEntityMappings().getEntities().get(0);
-		assertNull(ormTable.getSpecifiedCatalog());
-		assertNull(entityResource.getTable());
-		
-		//set Catalog in the resource model, verify context model updated
-		entityResource.setTable(OrmFactory.eINSTANCE.createXmlTable());
-		entityResource.getTable().setCatalog("FOO");
-		assertEquals("FOO", ormTable.getSpecifiedCatalog());
-		assertEquals("FOO", entityResource.getTable().getCatalog());
-	
-		//set Catalog to null in the resource model
-		entityResource.getTable().setCatalog(null);
-		assertNull(ormTable.getSpecifiedCatalog());
-		assertNull(entityResource.getTable().getCatalog());
-		
-		entityResource.getTable().setCatalog("FOO");
-		assertEquals("FOO", ormTable.getSpecifiedCatalog());
-		assertEquals("FOO", entityResource.getTable().getCatalog());
-
-		entityResource.setTable(null);
-		assertNull(ormTable.getSpecifiedCatalog());
-		assertNull(entityResource.getTable());
-	}
-	
-	public void testModifySpecifiedCatalog() throws Exception {
-		OrmPersistentType ormPersistentType = getEntityMappings().addPersistentType(MappingKeys.ENTITY_TYPE_MAPPING_KEY, "model.foo");
-		OrmEntity ormEntity = (OrmEntity) ormPersistentType.getMapping();
-		OrmTable ormTable = ormEntity.getTable();
-		XmlEntity entityResource = getXmlEntityMappings().getEntities().get(0);
-		assertNull(ormTable.getSpecifiedCatalog());
-		assertNull(entityResource.getTable());
-		
-		//set Catalog in the context model, verify resource model modified
-		ormTable.setSpecifiedCatalog("foo");
-		assertEquals("foo", ormTable.getSpecifiedCatalog());
-		assertEquals("foo", entityResource.getTable().getCatalog());
-		
-		//set Catalog to null in the context model
-		ormTable.setSpecifiedCatalog(null);
-		assertNull(ormTable.getSpecifiedCatalog());
-		assertNull(entityResource.getTable());
-	}
-	
-	public void testUpdateDefaultCatalogFromJavaTable() throws Exception {
-		createTestEntity();
-		
-		OrmPersistentType ormPersistentType = getEntityMappings().addPersistentType(MappingKeys.ENTITY_TYPE_MAPPING_KEY, FULLY_QUALIFIED_TYPE_NAME);
-		OrmEntity ormEntity = (OrmEntity) ormPersistentType.getMapping();
-		assertNull(ormEntity.getTable().getDefaultCatalog());
-		
-		ormEntity.getJavaEntity().getTable().setSpecifiedCatalog("Foo");
-		assertEquals("Foo", ormEntity.getTable().getDefaultCatalog());
-		
-		ormEntity.setSpecifiedMetadataComplete(Boolean.TRUE);
-		assertNull(ormEntity.getTable().getDefaultCatalog());
-
-		getEntityMappings().getPersistenceUnitMetadata().setXmlMappingMetadataComplete(true);
-		ormEntity.setSpecifiedMetadataComplete(Boolean.FALSE);
-		assertNull(ormEntity.getTable().getDefaultCatalog());
-	
-		ormEntity.setSpecifiedMetadataComplete(null);
-		assertNull(ormEntity.getTable().getDefaultCatalog());
-		
-		getEntityMappings().getPersistenceUnitMetadata().setXmlMappingMetadataComplete(false);
-		assertEquals("Foo", ormEntity.getTable().getDefaultCatalog());
-		
-		ormEntity.getTable().setSpecifiedName("Bar");
-		assertNull(ormEntity.getTable().getDefaultCatalog());
-	}
-	
-	public void testUpdateDefaultCatalogNoJava() throws Exception {
-		createTestEntity();
-		
-		OrmPersistentType ormPersistentType = getEntityMappings().addPersistentType(MappingKeys.ENTITY_TYPE_MAPPING_KEY, "model.Foo");
-		OrmEntity ormEntity = (OrmEntity) ormPersistentType.getMapping();
-		assertNull(ormEntity.getTable().getDefaultCatalog());
-	}
-	
-	public void testUpdateDefaultCatalogFromParent() throws Exception {
-		createTestEntity();
-		createTestSubType();
-		
-		OrmPersistentType parentOrmPersistentType = getEntityMappings().addPersistentType(MappingKeys.ENTITY_TYPE_MAPPING_KEY, FULLY_QUALIFIED_TYPE_NAME);
-		OrmPersistentType childOrmPersistentType = getEntityMappings().addPersistentType(MappingKeys.ENTITY_TYPE_MAPPING_KEY, PACKAGE_NAME + ".AnnotationTestTypeChild");
-		OrmEntity parentXmlEntity = (OrmEntity) parentOrmPersistentType.getMapping();
-		OrmEntity childXmlEntity = (OrmEntity) childOrmPersistentType.getMapping();
-		
-		assertNull(parentXmlEntity.getTable().getDefaultCatalog());
-		assertNull(childXmlEntity.getTable().getDefaultCatalog());
-		
-		parentXmlEntity.getTable().setSpecifiedCatalog("FOO");
-		assertNull(parentXmlEntity.getTable().getDefaultCatalog());
-		assertEquals("FOO", childXmlEntity.getTable().getDefaultCatalog());
-
-		parentXmlEntity.setSpecifiedInheritanceStrategy(InheritanceType.JOINED);
-		assertNull(parentXmlEntity.getTable().getDefaultCatalog());
-		assertNull(childXmlEntity.getTable().getDefaultCatalog());
-	}
-	
-	public void testUpdateDefaultCatalogFromPersistenceUnitDefaults() throws Exception {
-		createTestEntity();
-		
-		OrmPersistentType ormPersistentType = getEntityMappings().addPersistentType(MappingKeys.ENTITY_TYPE_MAPPING_KEY, FULLY_QUALIFIED_TYPE_NAME);
-		OrmEntity ormEntity = (OrmEntity) ormPersistentType.getMapping();
-		assertNull(ormEntity.getTable().getDefaultCatalog());
-		
-		getEntityMappings().getPersistenceUnitMetadata().getPersistenceUnitDefaults().setSpecifiedCatalog("FOO");
-		assertEquals("FOO", ormEntity.getTable().getDefaultCatalog());
-		
-		getEntityMappings().setSpecifiedCatalog("BAR");
-		assertEquals("BAR", ormEntity.getTable().getDefaultCatalog());
-		
-		ormEntity.getJavaEntity().getTable().setSpecifiedCatalog("JAVA_CATALOG");
-		assertEquals("JAVA_CATALOG", ormEntity.getTable().getDefaultCatalog());
-		
-		ormEntity.getTable().setSpecifiedName("BLAH");
-		//xml entity now has a table element so default schema is not taken from java
-		assertEquals("BAR", ormEntity.getTable().getDefaultCatalog());
-
-		
-		getEntityMappings().setSpecifiedCatalog(null);
-		assertEquals("FOO", ormEntity.getTable().getDefaultCatalog());
-
-		getEntityMappings().getPersistenceUnitMetadata().getPersistenceUnitDefaults().setSpecifiedCatalog(null);
-		assertNull(ormEntity.getTable().getDefaultCatalog());
-		
-		ormEntity.getTable().setSpecifiedName(null);
-		assertEquals("JAVA_CATALOG", ormEntity.getTable().getDefaultCatalog());
-}
-
-//	
-//	public void testUpdateName() throws Exception {
-//		OrmPersistentType ormPersistentType = entityMappings().addOrmPersistentType(IMappingKeys.ENTITY_TYPE_MAPPING_KEY, "model.Foo");
-//		XmlEntity ormEntity = (XmlEntity) ormPersistentType.getMapping();
-//		Entity entityResource = ormResource().getEntityMappings().getEntities().get(0);
-//		assertEquals("Foo", ormEntity.getName());
-//		
-//		//set class in the resource model, verify context model updated
-//		entityResource.setClassName("com.Bar");
-//		assertEquals("Bar", ormEntity.getName());
-//		
-//		entityResource.setName("Baz");
-//		assertEquals("Baz", ormEntity.getName());
-//		
-//		//set class to null in the resource model
-//		entityResource.setClassName(null);
-//		assertEquals("Baz", ormEntity.getName());
-//		
-//		entityResource.setName(null);
-//		assertNull(ormEntity.getName());
-//	}
-
-	public void testUniqueConstraints() throws Exception {
-		createTestEntity();
-		
-		OrmPersistentType ormPersistentType = getEntityMappings().addPersistentType(MappingKeys.ENTITY_TYPE_MAPPING_KEY, FULLY_QUALIFIED_TYPE_NAME);
-		OrmEntity ormEntity = (OrmEntity) ormPersistentType.getMapping();
-		
-		ListIterator<OrmUniqueConstraint> uniqueConstraints = ormEntity.getTable().uniqueConstraints();
-		assertFalse(uniqueConstraints.hasNext());
-
-		XmlEntity entityResource = getXmlEntityMappings().getEntities().get(0);
-		XmlTable tableResource = OrmFactory.eINSTANCE.createXmlTable();
-		entityResource.setTable(tableResource);
-		
-		XmlUniqueConstraint uniqueConstraintResource = OrmFactory.eINSTANCE.createXmlUniqueConstraintImpl();
-		tableResource.getUniqueConstraints().add(0, uniqueConstraintResource);
-		uniqueConstraintResource.getColumnNames().add(0, "foo");
-		
-		uniqueConstraintResource = OrmFactory.eINSTANCE.createXmlUniqueConstraintImpl();
-		tableResource.getUniqueConstraints().add(0, uniqueConstraintResource);
-		uniqueConstraintResource.getColumnNames().add(0, "bar");
-		
-		uniqueConstraints = ormEntity.getTable().uniqueConstraints();
-		assertTrue(uniqueConstraints.hasNext());
-		assertEquals("bar", uniqueConstraints.next().columnNames().next());
-		assertEquals("foo", uniqueConstraints.next().columnNames().next());
-		assertFalse(uniqueConstraints.hasNext());
-	}
-	
-	public void testUniqueConstraintsSize() throws Exception {
-		createTestEntity();
-		
-		OrmPersistentType ormPersistentType = getEntityMappings().addPersistentType(MappingKeys.ENTITY_TYPE_MAPPING_KEY, FULLY_QUALIFIED_TYPE_NAME);
-		OrmEntity ormEntity = (OrmEntity) ormPersistentType.getMapping();
-		
-		assertEquals(0,  ormEntity.getTable().uniqueConstraintsSize());
-
-		XmlEntity entityResource = getXmlEntityMappings().getEntities().get(0);
-		XmlTable tableResource = OrmFactory.eINSTANCE.createXmlTable();
-		entityResource.setTable(tableResource);
-		
-		XmlUniqueConstraint uniqueConstraintResource = OrmFactory.eINSTANCE.createXmlUniqueConstraintImpl();
-		tableResource.getUniqueConstraints().add(0, uniqueConstraintResource);
-		uniqueConstraintResource.getColumnNames().add(0, "foo");
-		
-		uniqueConstraintResource = OrmFactory.eINSTANCE.createXmlUniqueConstraintImpl();
-		tableResource.getUniqueConstraints().add(1, uniqueConstraintResource);
-		uniqueConstraintResource.getColumnNames().add(0, "bar");
-		
-		assertEquals(2,  ormEntity.getTable().uniqueConstraintsSize());
-	}
-
-	public void testAddUniqueConstraint() throws Exception {
-		createTestEntity();
-		
-		OrmPersistentType ormPersistentType = getEntityMappings().addPersistentType(MappingKeys.ENTITY_TYPE_MAPPING_KEY, FULLY_QUALIFIED_TYPE_NAME);
-		OrmEntity ormEntity = (OrmEntity) ormPersistentType.getMapping();
-		
-		OrmTable table = ormEntity.getTable();
-		table.addUniqueConstraint(0).addColumnName(0, "FOO");
-		table.addUniqueConstraint(0).addColumnName(0, "BAR");
-		table.addUniqueConstraint(0).addColumnName(0, "BAZ");
-		
-		XmlEntity entityResource = getXmlEntityMappings().getEntities().get(0);
-		XmlTable tableResource = entityResource.getTable();
-		
-		ListIterator<XmlUniqueConstraint> uniqueConstraints = tableResource.getUniqueConstraints().listIterator();
-		
-		assertEquals("BAZ", uniqueConstraints.next().getColumnNames().get(0));
-		assertEquals("BAR", uniqueConstraints.next().getColumnNames().get(0));
-		assertEquals("FOO", uniqueConstraints.next().getColumnNames().get(0));
-		assertFalse(uniqueConstraints.hasNext());
-	}
-	
-	public void testAddUniqueConstraint2() throws Exception {
-		createTestEntity();
-		
-		OrmPersistentType ormPersistentType = getEntityMappings().addPersistentType(MappingKeys.ENTITY_TYPE_MAPPING_KEY, FULLY_QUALIFIED_TYPE_NAME);
-		OrmEntity ormEntity = (OrmEntity) ormPersistentType.getMapping();
-		
-		OrmTable table = ormEntity.getTable();
-		table.addUniqueConstraint(0).addColumnName(0, "FOO");
-		table.addUniqueConstraint(1).addColumnName(0, "BAR");
-		table.addUniqueConstraint(0).addColumnName(0, "BAZ");
-		
-		XmlEntity entityResource = getXmlEntityMappings().getEntities().get(0);
-		XmlTable tableResource = entityResource.getTable();
-		
-		ListIterator<XmlUniqueConstraint> uniqueConstraints = tableResource.getUniqueConstraints().listIterator();
-		
-		assertEquals("BAZ", uniqueConstraints.next().getColumnNames().get(0));
-		assertEquals("FOO", uniqueConstraints.next().getColumnNames().get(0));
-		assertEquals("BAR", uniqueConstraints.next().getColumnNames().get(0));
-		assertFalse(uniqueConstraints.hasNext());
-	}
-	
-	public void testRemoveUniqueConstraint() throws Exception {
-		createTestEntity();
-		
-		OrmPersistentType ormPersistentType = getEntityMappings().addPersistentType(MappingKeys.ENTITY_TYPE_MAPPING_KEY, FULLY_QUALIFIED_TYPE_NAME);
-		OrmEntity ormEntity = (OrmEntity) ormPersistentType.getMapping();
-		
-		OrmTable table = ormEntity.getTable();
-		table.addUniqueConstraint(0).addColumnName(0, "FOO");
-		table.addUniqueConstraint(1).addColumnName(0, "BAR");
-		table.addUniqueConstraint(2).addColumnName(0, "BAZ");
-		
-		XmlEntity entityResource = getXmlEntityMappings().getEntities().get(0);
-		XmlTable tableResource = entityResource.getTable();
-		
-		assertEquals(3, tableResource.getUniqueConstraints().size());
-
-		table.removeUniqueConstraint(1);
-		
-		ListIterator<XmlUniqueConstraint> uniqueConstraintResources = tableResource.getUniqueConstraints().listIterator();
-		assertEquals("FOO", uniqueConstraintResources.next().getColumnNames().get(0));		
-		assertEquals("BAZ", uniqueConstraintResources.next().getColumnNames().get(0));
-		assertFalse(uniqueConstraintResources.hasNext());
-		
-		Iterator<OrmUniqueConstraint> uniqueConstraints = table.uniqueConstraints();
-		assertEquals("FOO", uniqueConstraints.next().columnNames().next());		
-		assertEquals("BAZ", uniqueConstraints.next().columnNames().next());
-		assertFalse(uniqueConstraints.hasNext());
-	
-		
-		table.removeUniqueConstraint(1);
-		uniqueConstraintResources = tableResource.getUniqueConstraints().listIterator();
-		assertEquals("FOO", uniqueConstraintResources.next().getColumnNames().get(0));		
-		assertFalse(uniqueConstraintResources.hasNext());
-
-		uniqueConstraints = table.uniqueConstraints();
-		assertEquals("FOO", uniqueConstraints.next().columnNames().next());		
-		assertFalse(uniqueConstraints.hasNext());
-
-		
-		table.removeUniqueConstraint(0);
-		uniqueConstraintResources = tableResource.getUniqueConstraints().listIterator();
-		assertFalse(uniqueConstraintResources.hasNext());
-		uniqueConstraints = table.uniqueConstraints();
-		assertFalse(uniqueConstraints.hasNext());
-	}
-	
-	public void testMoveUniqueConstraint() throws Exception {
-		createTestEntity();
-		
-		OrmPersistentType ormPersistentType = getEntityMappings().addPersistentType(MappingKeys.ENTITY_TYPE_MAPPING_KEY, FULLY_QUALIFIED_TYPE_NAME);
-		OrmEntity ormEntity = (OrmEntity) ormPersistentType.getMapping();
-		
-		OrmTable table = ormEntity.getTable();
-		table.addUniqueConstraint(0).addColumnName(0, "FOO");
-		table.addUniqueConstraint(1).addColumnName(0, "BAR");
-		table.addUniqueConstraint(2).addColumnName(0, "BAZ");
-		
-		XmlEntity entityResource = getXmlEntityMappings().getEntities().get(0);
-		XmlTable tableResource = entityResource.getTable();
-		
-		assertEquals(3, tableResource.getUniqueConstraints().size());
-		
-		
-		table.moveUniqueConstraint(2, 0);
-		ListIterator<OrmUniqueConstraint> uniqueConstraints = table.uniqueConstraints();
-		assertEquals("BAR", uniqueConstraints.next().columnNames().next());
-		assertEquals("BAZ", uniqueConstraints.next().columnNames().next());
-		assertEquals("FOO", uniqueConstraints.next().columnNames().next());
-
-		ListIterator<XmlUniqueConstraint> uniqueConstraintResources = tableResource.getUniqueConstraints().listIterator();
-		assertEquals("BAR", uniqueConstraintResources.next().getColumnNames().get(0));
-		assertEquals("BAZ", uniqueConstraintResources.next().getColumnNames().get(0));
-		assertEquals("FOO", uniqueConstraintResources.next().getColumnNames().get(0));
-
-
-		table.moveUniqueConstraint(0, 1);
-		uniqueConstraints = table.uniqueConstraints();
-		assertEquals("BAZ", uniqueConstraints.next().columnNames().next());
-		assertEquals("BAR", uniqueConstraints.next().columnNames().next());
-		assertEquals("FOO", uniqueConstraints.next().columnNames().next());
-
-		uniqueConstraintResources = tableResource.getUniqueConstraints().listIterator();
-		assertEquals("BAZ", uniqueConstraintResources.next().getColumnNames().get(0));
-		assertEquals("BAR", uniqueConstraintResources.next().getColumnNames().get(0));
-		assertEquals("FOO", uniqueConstraintResources.next().getColumnNames().get(0));
-	}
-	
-	public void testUpdateUniqueConstraints() throws Exception {
-		createTestEntity();
-		
-		OrmPersistentType ormPersistentType = getEntityMappings().addPersistentType(MappingKeys.ENTITY_TYPE_MAPPING_KEY, FULLY_QUALIFIED_TYPE_NAME);
-		OrmEntity ormEntity = (OrmEntity) ormPersistentType.getMapping();
-		
-		OrmTable table = ormEntity.getTable();
-		
-		XmlEntity entityResource = getXmlEntityMappings().getEntities().get(0);
-		XmlTable tableResource = OrmFactory.eINSTANCE.createXmlTable();
-		entityResource.setTable(tableResource);
-	
-		XmlUniqueConstraint uniqueConstraintResource = OrmFactory.eINSTANCE.createXmlUniqueConstraintImpl();
-		tableResource.getUniqueConstraints().add(0, uniqueConstraintResource);
-		uniqueConstraintResource.getColumnNames().add(0, "FOO");
-
-		uniqueConstraintResource = OrmFactory.eINSTANCE.createXmlUniqueConstraintImpl();
-		tableResource.getUniqueConstraints().add(1, uniqueConstraintResource);
-		uniqueConstraintResource.getColumnNames().add(0, "BAR");
-
-		uniqueConstraintResource = OrmFactory.eINSTANCE.createXmlUniqueConstraintImpl();
-		tableResource.getUniqueConstraints().add(2, uniqueConstraintResource);
-		uniqueConstraintResource.getColumnNames().add(0, "BAZ");
-
-		
-		ListIterator<OrmUniqueConstraint> uniqueConstraints = table.uniqueConstraints();
-		assertEquals("FOO", uniqueConstraints.next().columnNames().next());
-		assertEquals("BAR", uniqueConstraints.next().columnNames().next());
-		assertEquals("BAZ", uniqueConstraints.next().columnNames().next());
-		assertFalse(uniqueConstraints.hasNext());
-		
-		tableResource.getUniqueConstraints().move(2, 0);
-		uniqueConstraints = table.uniqueConstraints();
-		assertEquals("BAR", uniqueConstraints.next().columnNames().next());
-		assertEquals("BAZ", uniqueConstraints.next().columnNames().next());
-		assertEquals("FOO", uniqueConstraints.next().columnNames().next());
-		assertFalse(uniqueConstraints.hasNext());
-	
-		tableResource.getUniqueConstraints().move(0, 1);
-		uniqueConstraints = table.uniqueConstraints();
-		assertEquals("BAZ", uniqueConstraints.next().columnNames().next());
-		assertEquals("BAR", uniqueConstraints.next().columnNames().next());
-		assertEquals("FOO", uniqueConstraints.next().columnNames().next());
-		assertFalse(uniqueConstraints.hasNext());
-	
-		tableResource.getUniqueConstraints().remove(1);
-		uniqueConstraints = table.uniqueConstraints();
-		assertEquals("BAZ", uniqueConstraints.next().columnNames().next());
-		assertEquals("FOO", uniqueConstraints.next().columnNames().next());
-		assertFalse(uniqueConstraints.hasNext());
-	
-		tableResource.getUniqueConstraints().remove(1);
-		uniqueConstraints = table.uniqueConstraints();
-		assertEquals("BAZ", uniqueConstraints.next().columnNames().next());
-		assertFalse(uniqueConstraints.hasNext());
-		
-		tableResource.getUniqueConstraints().remove(0);
-		uniqueConstraints = table.uniqueConstraints();
-		assertFalse(uniqueConstraints.hasNext());
-	}
-
-//TODO not yet supporting unique constriants from java
-//	public void testUniqueConstraintsFromJava() throws Exception {
-//		createTestEntity();
-//		
-//		OrmPersistentType ormPersistentType = entityMappings().addOrmPersistentType(MappingKeys.ENTITY_TYPE_MAPPING_KEY, FULLY_QUALIFIED_TYPE_NAME);
-//		OrmEntity ormEntity = (OrmEntity) ormPersistentType.getMapping();
-//				
-//		ListIterator<OrmUniqueConstraint> uniqueConstraints = ormEntity.getTable().uniqueConstraints();
-//		assertFalse(uniqueConstraints.hasNext());
-//
-//		JavaEntity javaEntity = (JavaEntity) ormPersistentType.getJavaPersistentType().getMapping();
-//		javaEntity.getTable().addUniqueConstraint(0).addColumnName(0, "FOO");
-//		javaEntity.getTable().addUniqueConstraint(1).addColumnName(0, "BAR");
-//		javaEntity.getTable().addUniqueConstraint(2).addColumnName(0, "BAZ");
-//		
-//		
-//		XmlEntity entityResource = ormResource().getEntityMappings().getEntities().get(0);
-//		assertNull(entityResource.getTable());
-//
-//		uniqueConstraints = ormEntity.getTable().uniqueConstraints();
-//		assertTrue(uniqueConstraints.hasNext());
-//		assertEquals("FOO", uniqueConstraints.next().columnNames().next());
-//		assertEquals("BAR", uniqueConstraints.next().columnNames().next());
-//		assertEquals("BAZ", uniqueConstraints.next().columnNames().next());
-//		assertFalse(uniqueConstraints.hasNext());
-//		
-//		entityResource.setTable(OrmFactory.eINSTANCE.createXmlTableImpl());
-//		assertEquals(0,  ormEntity.getTable().uniqueConstraintsSize());
-//	}
-	
-	public void testAbstractEntityGetDefaultNameTablePerClassInheritance() throws Exception {
-		createAbstractTestEntity();
-		createTestSubType();
-		OrmPersistentType abstractPersistentType = getEntityMappings().addPersistentType(MappingKeys.ENTITY_TYPE_MAPPING_KEY, FULLY_QUALIFIED_TYPE_NAME);
-		OrmEntity abstractEntity = (OrmEntity) abstractPersistentType.getMapping();
-		OrmPersistentType concretePersistentType = getEntityMappings().addPersistentType(MappingKeys.ENTITY_TYPE_MAPPING_KEY, PACKAGE_NAME + ".AnnotationTestTypeChild");
-		OrmEntity concreteEntity = (OrmEntity) concretePersistentType.getMapping();		
-		
-		assertEquals(null, abstractEntity.getSpecifiedInheritanceStrategy());
-		assertEquals(InheritanceType.TABLE_PER_CLASS, abstractEntity.getDefaultInheritanceStrategy());
-		assertEquals(null, concreteEntity.getSpecifiedInheritanceStrategy());
-		assertEquals(InheritanceType.TABLE_PER_CLASS, concreteEntity.getDefaultInheritanceStrategy());
-		
-		
-		assertEquals(null, abstractEntity.getTable().getDefaultName());
-		assertEquals(null, abstractEntity.getTable().getDefaultCatalog());
-		assertEquals(null, abstractEntity.getTable().getDefaultSchema());
-			
-		assertEquals("AnnotationTestTypeChild", concreteEntity.getTable().getDefaultName());
-		assertEquals(null, concreteEntity.getTable().getDefaultCatalog());
-		assertEquals(null, concreteEntity.getTable().getDefaultSchema());
-		
-		//meta-data complete true, inheritance strategy no single-table
-		getEntityMappings().getPersistenceUnitMetadata().setXmlMappingMetadataComplete(true);
-		assertEquals(TYPE_NAME, abstractEntity.getTable().getDefaultName());
-		assertEquals(null, abstractEntity.getTable().getDefaultCatalog());
-		assertEquals(null, abstractEntity.getTable().getDefaultSchema());	
-		
-		assertEquals("AnnotationTestType", concreteEntity.getTable().getDefaultName());
-		assertEquals(null, concreteEntity.getTable().getDefaultCatalog());
-		assertEquals(null, concreteEntity.getTable().getDefaultSchema());
-		
-		
-		//set inheritance strategy to table-per-class in orm.xml
-		abstractEntity.setSpecifiedInheritanceStrategy(InheritanceType.TABLE_PER_CLASS);
-		assertEquals(null, abstractEntity.getTable().getDefaultName());
-		assertEquals(null, abstractEntity.getTable().getDefaultCatalog());
-		assertEquals(null, abstractEntity.getTable().getDefaultSchema());
-			
-		assertEquals("AnnotationTestTypeChild", concreteEntity.getTable().getDefaultName());
-		assertEquals(null, concreteEntity.getTable().getDefaultCatalog());
-		assertEquals(null, concreteEntity.getTable().getDefaultSchema());
-	}
-
-}
\ No newline at end of file
diff --git a/jpa/tests/org.eclipse.jpt.core.tests/src/org/eclipse/jpt/core/tests/internal/context/orm/OrmTransientMappingTests.java b/jpa/tests/org.eclipse.jpt.core.tests/src/org/eclipse/jpt/core/tests/internal/context/orm/OrmTransientMappingTests.java
deleted file mode 100644
index 60946a9..0000000
--- a/jpa/tests/org.eclipse.jpt.core.tests/src/org/eclipse/jpt/core/tests/internal/context/orm/OrmTransientMappingTests.java
+++ /dev/null
@@ -1,302 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.core.tests.internal.context.orm;
-
-import java.util.Iterator;
-import org.eclipse.jdt.core.ICompilationUnit;
-import org.eclipse.jpt.core.JptCorePlugin;
-import org.eclipse.jpt.core.MappingKeys;
-import org.eclipse.jpt.core.context.EmbeddedIdMapping;
-import org.eclipse.jpt.core.context.EmbeddedMapping;
-import org.eclipse.jpt.core.context.IdMapping;
-import org.eclipse.jpt.core.context.ManyToManyMapping;
-import org.eclipse.jpt.core.context.ManyToOneMapping;
-import org.eclipse.jpt.core.context.OneToManyMapping;
-import org.eclipse.jpt.core.context.OneToOneMapping;
-import org.eclipse.jpt.core.context.TransientMapping;
-import org.eclipse.jpt.core.context.VersionMapping;
-import org.eclipse.jpt.core.context.orm.OrmPersistentAttribute;
-import org.eclipse.jpt.core.context.orm.OrmPersistentType;
-import org.eclipse.jpt.core.context.orm.OrmTransientMapping;
-import org.eclipse.jpt.core.resource.java.JPA;
-import org.eclipse.jpt.core.resource.orm.XmlTransient;
-import org.eclipse.jpt.core.resource.persistence.PersistenceFactory;
-import org.eclipse.jpt.core.resource.persistence.XmlMappingFileRef;
-import org.eclipse.jpt.core.tests.internal.context.ContextModelTestCase;
-import org.eclipse.jpt.utility.internal.iterators.ArrayIterator;
-
-@SuppressWarnings("nls")
-public class OrmTransientMappingTests extends ContextModelTestCase
-{
-	public OrmTransientMappingTests(String name) {
-		super(name);
-	}
-	
-	@Override
-	protected void setUp() throws Exception {
-		super.setUp();
-		XmlMappingFileRef mappingFileRef = PersistenceFactory.eINSTANCE.createXmlMappingFileRef();
-		mappingFileRef.setFileName(JptCorePlugin.DEFAULT_ORM_XML_FILE_PATH);
-		getXmlPersistenceUnit().getMappingFiles().add(mappingFileRef);
-		getPersistenceXmlResource().save(null);
-	}
-
-	private ICompilationUnit createTestEntityTransientMapping() throws Exception {
-		return this.createTestType(new DefaultAnnotationWriter() {
-			@Override
-			public Iterator<String> imports() {
-				return new ArrayIterator<String>(JPA.ENTITY, JPA.TRANSIENT);
-			}
-			@Override
-			public void appendTypeAnnotationTo(StringBuilder sb) {
-				sb.append("@Entity");
-			}
-			
-			@Override
-			public void appendIdFieldAnnotationTo(StringBuilder sb) {
-				sb.append("@Transient");
-			}
-		});
-	}
-	public void testUpdateName() throws Exception {
-		OrmPersistentType ormPersistentType = getEntityMappings().addPersistentType(MappingKeys.ENTITY_TYPE_MAPPING_KEY, "model.Foo");
-		OrmPersistentAttribute ormPersistentAttribute = ormPersistentType.addSpecifiedPersistentAttribute(MappingKeys.TRANSIENT_ATTRIBUTE_MAPPING_KEY, "transientMapping");
-		OrmTransientMapping xmlTransientnMapping = (OrmTransientMapping) ormPersistentAttribute.getMapping();
-		XmlTransient transientResource = getXmlEntityMappings().getEntities().get(0).getAttributes().getTransients().get(0);
-		
-		assertEquals("transientMapping", xmlTransientnMapping.getName());
-		assertEquals("transientMapping", transientResource.getName());
-				
-		//set name in the resource model, verify context model updated
-		transientResource.setName("newName");
-		assertEquals("newName", xmlTransientnMapping.getName());
-		assertEquals("newName", transientResource.getName());
-	
-		//set name to null in the resource model
-		transientResource.setName(null);
-		assertNull(xmlTransientnMapping.getName());
-		assertNull(transientResource.getName());
-	}
-	
-	public void testModifyName() throws Exception {
-		OrmPersistentType ormPersistentType = getEntityMappings().addPersistentType(MappingKeys.ENTITY_TYPE_MAPPING_KEY, "model.Foo");
-		OrmPersistentAttribute ormPersistentAttribute = ormPersistentType.addSpecifiedPersistentAttribute(MappingKeys.TRANSIENT_ATTRIBUTE_MAPPING_KEY, "transientMapping");
-		OrmTransientMapping xmlTransientnMapping = (OrmTransientMapping) ormPersistentAttribute.getMapping();
-		XmlTransient transientResource = getXmlEntityMappings().getEntities().get(0).getAttributes().getTransients().get(0);
-		
-		assertEquals("transientMapping", xmlTransientnMapping.getName());
-		assertEquals("transientMapping", transientResource.getName());
-				
-		//set name in the context model, verify resource model updated
-		xmlTransientnMapping.setName("newName");
-		assertEquals("newName", xmlTransientnMapping.getName());
-		assertEquals("newName", transientResource.getName());
-	
-		//set name to null in the context model
-		xmlTransientnMapping.setName(null);
-		assertNull(xmlTransientnMapping.getName());
-		assertNull(transientResource.getName());
-	}
-	
-	
-	public void testTransientMappingNoUnderylingJavaAttribute() throws Exception {
-		createTestEntityTransientMapping();
-
-		OrmPersistentType ormPersistentType = getEntityMappings().addPersistentType(MappingKeys.ENTITY_TYPE_MAPPING_KEY, FULLY_QUALIFIED_TYPE_NAME);
-		ormPersistentType.addSpecifiedPersistentAttribute(MappingKeys.TRANSIENT_ATTRIBUTE_MAPPING_KEY, "foo");
-		assertEquals(2, ormPersistentType.virtualAttributesSize());
-		
-		OrmPersistentAttribute ormPersistentAttribute = ormPersistentType.specifiedAttributes().next();
-		OrmTransientMapping ormTransientMapping = (OrmTransientMapping) ormPersistentAttribute.getMapping();
-		
-		assertEquals("foo", ormTransientMapping.getName());
-	}
-	
-	//@Basic(fetch=FetchType.LAZY, optional=false)
-	//@Column(name="MY_COLUMN", unique=true, nullable=false, insertable=false, updatable=false, 
-	//    columnDefinition="COLUMN_DEFINITION", table="MY_TABLE", length=5, precision=6, scale=7)");
-	//@Column(
-	//@Lob
-	//@Temporal(TemporalType.TIMESTAMP)
-	//@Enumerated(EnumType.STRING)
-	public void testVirtualMappingMetadataCompleteFalse() throws Exception {
-		createTestEntityTransientMapping();
-		OrmPersistentType ormPersistentType = getEntityMappings().addPersistentType(MappingKeys.ENTITY_TYPE_MAPPING_KEY, FULLY_QUALIFIED_TYPE_NAME);
-		assertEquals(2, ormPersistentType.virtualAttributesSize());		
-		OrmPersistentAttribute ormPersistentAttribute = ormPersistentType.virtualAttributes().next();
-		
-		OrmTransientMapping ormTransientMapping = (OrmTransientMapping) ormPersistentAttribute.getMapping();	
-		assertEquals("id", ormTransientMapping.getName());
-	}
-	
-	public void testVirtualMappingMetadataCompleteTrue() throws Exception {
-		createTestEntityTransientMapping();
-		OrmPersistentType ormPersistentType = getEntityMappings().addPersistentType(MappingKeys.ENTITY_TYPE_MAPPING_KEY, FULLY_QUALIFIED_TYPE_NAME);
-		ormPersistentType.getMapping().setSpecifiedMetadataComplete(Boolean.TRUE);
-		assertEquals(2, ormPersistentType.virtualAttributesSize());		
-		OrmPersistentAttribute ormPersistentAttribute = ormPersistentType.virtualAttributes().next();
-		
-		assertEquals(MappingKeys.BASIC_ATTRIBUTE_MAPPING_KEY, ormPersistentAttribute.getMappingKey());
-		
-		ormPersistentAttribute.makeSpecified(MappingKeys.TRANSIENT_ATTRIBUTE_MAPPING_KEY);
-		ormPersistentAttribute= ormPersistentType.specifiedAttributes().next();
-
-		OrmTransientMapping ormTransientMapping = (OrmTransientMapping) ormPersistentAttribute.getMapping();	
-		assertEquals("id", ormTransientMapping.getName());
-	}
-	
-	public void testSpecifiedMapping() throws Exception {
-		createTestEntityTransientMapping();
-
-		OrmPersistentType ormPersistentType = getEntityMappings().addPersistentType(MappingKeys.ENTITY_TYPE_MAPPING_KEY, FULLY_QUALIFIED_TYPE_NAME);
-		ormPersistentType.addSpecifiedPersistentAttribute(MappingKeys.TRANSIENT_ATTRIBUTE_MAPPING_KEY, "id");
-		assertEquals(1, ormPersistentType.virtualAttributesSize());
-		
-		OrmPersistentAttribute ormPersistentAttribute = ormPersistentType.specifiedAttributes().next();
-		OrmTransientMapping ormTransientMapping = (OrmTransientMapping) ormPersistentAttribute.getMapping();
-		
-		assertEquals("id", ormTransientMapping.getName());
-	}
-	
-	public void testTransientMorphToIdMapping() throws Exception {
-		createTestEntityTransientMapping();
-		OrmPersistentType ormPersistentType = getEntityMappings().addPersistentType(MappingKeys.ENTITY_TYPE_MAPPING_KEY, FULLY_QUALIFIED_TYPE_NAME);
-		OrmPersistentAttribute ormPersistentAttribute = ormPersistentType.addSpecifiedPersistentAttribute(MappingKeys.TRANSIENT_ATTRIBUTE_MAPPING_KEY, "transient");
-		
-		TransientMapping transientMapping = (TransientMapping) ormPersistentAttribute.getMapping();
-		assertFalse(transientMapping.isDefault());
-		
-		ormPersistentAttribute.setSpecifiedMappingKey(MappingKeys.ID_ATTRIBUTE_MAPPING_KEY);
-		assertEquals(1, ormPersistentType.specifiedAttributesSize());
-		assertEquals(ormPersistentAttribute, ormPersistentType.specifiedAttributes().next());
-		assertTrue(ormPersistentAttribute.getMapping() instanceof IdMapping);
-		assertEquals("transient", ormPersistentAttribute.getMapping().getName());
-	}
-	
-	public void testTransientMorphToVersionMapping() throws Exception {
-		createTestEntityTransientMapping();
-		OrmPersistentType ormPersistentType = getEntityMappings().addPersistentType(MappingKeys.ENTITY_TYPE_MAPPING_KEY, FULLY_QUALIFIED_TYPE_NAME);
-		OrmPersistentAttribute ormPersistentAttribute = ormPersistentType.addSpecifiedPersistentAttribute(MappingKeys.TRANSIENT_ATTRIBUTE_MAPPING_KEY, "transient");
-		
-		TransientMapping transientMapping = (TransientMapping) ormPersistentAttribute.getMapping();
-		assertFalse(transientMapping.isDefault());
-		
-		ormPersistentAttribute.setSpecifiedMappingKey(MappingKeys.VERSION_ATTRIBUTE_MAPPING_KEY);
-		assertEquals(1, ormPersistentType.specifiedAttributesSize());
-		assertEquals(ormPersistentAttribute, ormPersistentType.specifiedAttributes().next());
-		assertTrue(ormPersistentAttribute.getMapping() instanceof VersionMapping);
-		assertEquals("transient", ormPersistentAttribute.getMapping().getName());
-	}
-	
-	public void testTransientMorphToTransientMapping() throws Exception {
-		createTestEntityTransientMapping();
-		OrmPersistentType ormPersistentType = getEntityMappings().addPersistentType(MappingKeys.ENTITY_TYPE_MAPPING_KEY, FULLY_QUALIFIED_TYPE_NAME);
-		OrmPersistentAttribute ormPersistentAttribute = ormPersistentType.addSpecifiedPersistentAttribute(MappingKeys.TRANSIENT_ATTRIBUTE_MAPPING_KEY, "transient");
-		
-		TransientMapping transientMapping = (TransientMapping) ormPersistentAttribute.getMapping();
-		assertFalse(transientMapping.isDefault());
-		
-		ormPersistentAttribute.setSpecifiedMappingKey(MappingKeys.TRANSIENT_ATTRIBUTE_MAPPING_KEY);
-		assertEquals(1, ormPersistentType.specifiedAttributesSize());
-		assertEquals(ormPersistentAttribute, ormPersistentType.specifiedAttributes().next());
-		assertTrue(ormPersistentAttribute.getMapping() instanceof TransientMapping);
-		assertEquals("transient", ormPersistentAttribute.getMapping().getName());
-	}
-	
-	public void testTransientMorphToEmbeddedMapping() throws Exception {
-		createTestEntityTransientMapping();
-		OrmPersistentType ormPersistentType = getEntityMappings().addPersistentType(MappingKeys.ENTITY_TYPE_MAPPING_KEY, FULLY_QUALIFIED_TYPE_NAME);
-		OrmPersistentAttribute ormPersistentAttribute = ormPersistentType.addSpecifiedPersistentAttribute(MappingKeys.TRANSIENT_ATTRIBUTE_MAPPING_KEY, "transient");
-		
-		TransientMapping transientMapping = (TransientMapping) ormPersistentAttribute.getMapping();
-		assertFalse(transientMapping.isDefault());
-		
-		ormPersistentAttribute.setSpecifiedMappingKey(MappingKeys.EMBEDDED_ATTRIBUTE_MAPPING_KEY);
-		assertEquals(1, ormPersistentType.specifiedAttributesSize());
-		assertEquals(ormPersistentAttribute, ormPersistentType.specifiedAttributes().next());
-		assertTrue(ormPersistentAttribute.getMapping() instanceof EmbeddedMapping);
-		assertEquals("transient", ormPersistentAttribute.getMapping().getName());
-	}
-	
-	public void testTransientMorphToEmbeddedIdMapping() throws Exception {
-		createTestEntityTransientMapping();
-		OrmPersistentType ormPersistentType = getEntityMappings().addPersistentType(MappingKeys.ENTITY_TYPE_MAPPING_KEY, FULLY_QUALIFIED_TYPE_NAME);
-		OrmPersistentAttribute ormPersistentAttribute = ormPersistentType.addSpecifiedPersistentAttribute(MappingKeys.TRANSIENT_ATTRIBUTE_MAPPING_KEY, "transient");
-		
-		TransientMapping transientMapping = (TransientMapping) ormPersistentAttribute.getMapping();
-		assertFalse(transientMapping.isDefault());
-	
-		ormPersistentAttribute.setSpecifiedMappingKey(MappingKeys.EMBEDDED_ID_ATTRIBUTE_MAPPING_KEY);
-		assertEquals(1, ormPersistentType.specifiedAttributesSize());
-		assertEquals(ormPersistentAttribute, ormPersistentType.specifiedAttributes().next());
-		assertTrue(ormPersistentAttribute.getMapping() instanceof EmbeddedIdMapping);
-		assertEquals("transient", ormPersistentAttribute.getMapping().getName());
-	}
-	
-	public void testTransientMorphToOneToOneMapping() throws Exception {
-		createTestEntityTransientMapping();
-		OrmPersistentType ormPersistentType = getEntityMappings().addPersistentType(MappingKeys.ENTITY_TYPE_MAPPING_KEY, FULLY_QUALIFIED_TYPE_NAME);
-		OrmPersistentAttribute ormPersistentAttribute = ormPersistentType.addSpecifiedPersistentAttribute(MappingKeys.TRANSIENT_ATTRIBUTE_MAPPING_KEY, "transient");
-		
-		TransientMapping transientMapping = (TransientMapping) ormPersistentAttribute.getMapping();
-		assertFalse(transientMapping.isDefault());
-		
-		ormPersistentAttribute.setSpecifiedMappingKey(MappingKeys.ONE_TO_ONE_ATTRIBUTE_MAPPING_KEY);
-		assertEquals(1, ormPersistentType.specifiedAttributesSize());
-		assertEquals(ormPersistentAttribute, ormPersistentType.specifiedAttributes().next());
-		assertTrue(ormPersistentAttribute.getMapping() instanceof OneToOneMapping);
-		assertEquals("transient", ormPersistentAttribute.getMapping().getName());
-	}
-	
-	public void testTransientMorphToOneToManyMapping() throws Exception {
-		createTestEntityTransientMapping();
-		OrmPersistentType ormPersistentType = getEntityMappings().addPersistentType(MappingKeys.ENTITY_TYPE_MAPPING_KEY, FULLY_QUALIFIED_TYPE_NAME);
-		OrmPersistentAttribute ormPersistentAttribute = ormPersistentType.addSpecifiedPersistentAttribute(MappingKeys.TRANSIENT_ATTRIBUTE_MAPPING_KEY, "transient");
-		
-		TransientMapping transientMapping = (TransientMapping) ormPersistentAttribute.getMapping();
-		assertFalse(transientMapping.isDefault());
-		
-		ormPersistentAttribute.setSpecifiedMappingKey(MappingKeys.ONE_TO_MANY_ATTRIBUTE_MAPPING_KEY);
-		assertEquals(1, ormPersistentType.specifiedAttributesSize());
-		assertEquals(ormPersistentAttribute, ormPersistentType.specifiedAttributes().next());
-		assertTrue(ormPersistentAttribute.getMapping() instanceof OneToManyMapping);
-		assertEquals("transient", ormPersistentAttribute.getMapping().getName());
-	}
-	
-	public void testTransientMorphToManyToOneMapping() throws Exception {
-		createTestEntityTransientMapping();
-		OrmPersistentType ormPersistentType = getEntityMappings().addPersistentType(MappingKeys.ENTITY_TYPE_MAPPING_KEY, FULLY_QUALIFIED_TYPE_NAME);
-		OrmPersistentAttribute ormPersistentAttribute = ormPersistentType.addSpecifiedPersistentAttribute(MappingKeys.TRANSIENT_ATTRIBUTE_MAPPING_KEY, "transient");
-		
-		TransientMapping transientMapping = (TransientMapping) ormPersistentAttribute.getMapping();
-		assertFalse(transientMapping.isDefault());
-		
-		ormPersistentAttribute.setSpecifiedMappingKey(MappingKeys.MANY_TO_ONE_ATTRIBUTE_MAPPING_KEY);
-		assertEquals(1, ormPersistentType.specifiedAttributesSize());
-		assertEquals(ormPersistentAttribute, ormPersistentType.specifiedAttributes().next());
-		assertTrue(ormPersistentAttribute.getMapping() instanceof ManyToOneMapping);
-		assertEquals("transient", ormPersistentAttribute.getMapping().getName());
-	}
-	
-	public void testTransientMorphToManyToManyMapping() throws Exception {
-		createTestEntityTransientMapping();
-		OrmPersistentType ormPersistentType = getEntityMappings().addPersistentType(MappingKeys.ENTITY_TYPE_MAPPING_KEY, FULLY_QUALIFIED_TYPE_NAME);
-		OrmPersistentAttribute ormPersistentAttribute = ormPersistentType.addSpecifiedPersistentAttribute(MappingKeys.TRANSIENT_ATTRIBUTE_MAPPING_KEY, "transient");
-		
-		TransientMapping transientMapping = (TransientMapping) ormPersistentAttribute.getMapping();
-		assertFalse(transientMapping.isDefault());
-		
-		ormPersistentAttribute.setSpecifiedMappingKey(MappingKeys.MANY_TO_MANY_ATTRIBUTE_MAPPING_KEY);
-		assertEquals(1, ormPersistentType.specifiedAttributesSize());
-		assertEquals(ormPersistentAttribute, ormPersistentType.specifiedAttributes().next());
-		assertTrue(ormPersistentAttribute.getMapping() instanceof ManyToManyMapping);
-		assertEquals("transient", ormPersistentAttribute.getMapping().getName());
-	}
-}
\ No newline at end of file
diff --git a/jpa/tests/org.eclipse.jpt.core.tests/src/org/eclipse/jpt/core/tests/internal/context/orm/OrmVersionMappingTests.java b/jpa/tests/org.eclipse.jpt.core.tests/src/org/eclipse/jpt/core/tests/internal/context/orm/OrmVersionMappingTests.java
deleted file mode 100644
index 61829a4..0000000
--- a/jpa/tests/org.eclipse.jpt.core.tests/src/org/eclipse/jpt/core/tests/internal/context/orm/OrmVersionMappingTests.java
+++ /dev/null
@@ -1,486 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.core.tests.internal.context.orm;
-
-import java.util.Iterator;
-import org.eclipse.jdt.core.ICompilationUnit;
-import org.eclipse.jpt.core.JptCorePlugin;
-import org.eclipse.jpt.core.MappingKeys;
-import org.eclipse.jpt.core.context.BasicMapping;
-import org.eclipse.jpt.core.context.Converter;
-import org.eclipse.jpt.core.context.EmbeddedIdMapping;
-import org.eclipse.jpt.core.context.EmbeddedMapping;
-import org.eclipse.jpt.core.context.IdMapping;
-import org.eclipse.jpt.core.context.ManyToManyMapping;
-import org.eclipse.jpt.core.context.ManyToOneMapping;
-import org.eclipse.jpt.core.context.OneToManyMapping;
-import org.eclipse.jpt.core.context.OneToOneMapping;
-import org.eclipse.jpt.core.context.TemporalConverter;
-import org.eclipse.jpt.core.context.TemporalType;
-import org.eclipse.jpt.core.context.TransientMapping;
-import org.eclipse.jpt.core.context.VersionMapping;
-import org.eclipse.jpt.core.context.orm.OrmColumn;
-import org.eclipse.jpt.core.context.orm.OrmPersistentAttribute;
-import org.eclipse.jpt.core.context.orm.OrmPersistentType;
-import org.eclipse.jpt.core.context.orm.OrmVersionMapping;
-import org.eclipse.jpt.core.resource.java.JPA;
-import org.eclipse.jpt.core.resource.orm.XmlVersion;
-import org.eclipse.jpt.core.resource.persistence.PersistenceFactory;
-import org.eclipse.jpt.core.resource.persistence.XmlMappingFileRef;
-import org.eclipse.jpt.core.tests.internal.context.ContextModelTestCase;
-import org.eclipse.jpt.utility.internal.iterators.ArrayIterator;
-
-@SuppressWarnings("nls")
-public class OrmVersionMappingTests extends ContextModelTestCase
-{
-	public OrmVersionMappingTests(String name) {
-		super(name);
-	}
-	
-	@Override
-	protected void setUp() throws Exception {
-		super.setUp();
-		XmlMappingFileRef mappingFileRef = PersistenceFactory.eINSTANCE.createXmlMappingFileRef();
-		mappingFileRef.setFileName(JptCorePlugin.DEFAULT_ORM_XML_FILE_PATH);
-		getXmlPersistenceUnit().getMappingFiles().add(mappingFileRef);
-		getPersistenceXmlResource().save(null);
-	}
-
-	private ICompilationUnit createTestEntityVersionMapping() throws Exception {
-		return this.createTestType(new DefaultAnnotationWriter() {
-			@Override
-			public Iterator<String> imports() {
-				return new ArrayIterator<String>(JPA.ENTITY, JPA.VERSION, JPA.COLUMN, JPA.TEMPORAL, JPA.TEMPORAL_TYPE);
-			}
-			@Override
-			public void appendTypeAnnotationTo(StringBuilder sb) {
-				sb.append("@Entity");
-			}
-			
-			@Override
-			public void appendIdFieldAnnotationTo(StringBuilder sb) {
-				sb.append("@Version");
-				sb.append(CR);
-				sb.append("    @Column(name=\"MY_COLUMN\", unique=true, nullable=false, insertable=false, updatable=false, columnDefinition=\"COLUMN_DEFINITION\", table=\"MY_TABLE\", length=5, precision=6, scale=7)");
-				sb.append(CR);
-				sb.append("    @Temporal(TemporalType.TIMESTAMP)");
-			}
-		});
-	}
-	
-	public void testUpdateName() throws Exception {
-		OrmPersistentType ormPersistentType = getEntityMappings().addPersistentType(MappingKeys.ENTITY_TYPE_MAPPING_KEY, "model.Foo");
-		OrmPersistentAttribute ormPersistentAttribute = ormPersistentType.addSpecifiedPersistentAttribute(MappingKeys.VERSION_ATTRIBUTE_MAPPING_KEY, "versionMapping");
-		OrmVersionMapping ormVersionMapping = (OrmVersionMapping) ormPersistentAttribute.getMapping();
-		XmlVersion versionResource = getXmlEntityMappings().getEntities().get(0).getAttributes().getVersions().get(0);
-		
-		assertEquals("versionMapping", ormVersionMapping.getName());
-		assertEquals("versionMapping", versionResource.getName());
-				
-		//set name in the resource model, verify context model updated
-		versionResource.setName("newName");
-		assertEquals("newName", ormVersionMapping.getName());
-		assertEquals("newName", versionResource.getName());
-	
-		//set name to null in the resource model
-		versionResource.setName(null);
-		assertNull(ormVersionMapping.getName());
-		assertNull(versionResource.getName());
-	}
-	
-	public void testModifyName() throws Exception {
-		OrmPersistentType ormPersistentType = getEntityMappings().addPersistentType(MappingKeys.ENTITY_TYPE_MAPPING_KEY, "model.Foo");
-		OrmPersistentAttribute ormPersistentAttribute = ormPersistentType.addSpecifiedPersistentAttribute(MappingKeys.VERSION_ATTRIBUTE_MAPPING_KEY, "versionMapping");
-		OrmVersionMapping ormVersionMapping = (OrmVersionMapping) ormPersistentAttribute.getMapping();
-		XmlVersion versionResource = getXmlEntityMappings().getEntities().get(0).getAttributes().getVersions().get(0);
-		
-		assertEquals("versionMapping", ormVersionMapping.getName());
-		assertEquals("versionMapping", versionResource.getName());
-				
-		//set name in the context model, verify resource model updated
-		ormVersionMapping.setName("newName");
-		assertEquals("newName", ormVersionMapping.getName());
-		assertEquals("newName", versionResource.getName());
-	
-		//set name to null in the context model
-		ormVersionMapping.setName(null);
-		assertNull(ormVersionMapping.getName());
-		assertNull(versionResource.getName());
-	}	
-	
-	public void testUpdateTemporal() throws Exception {
-		OrmPersistentType ormPersistentType = getEntityMappings().addPersistentType(MappingKeys.ENTITY_TYPE_MAPPING_KEY, "model.Foo");
-		OrmPersistentAttribute ormPersistentAttribute = ormPersistentType.addSpecifiedPersistentAttribute(MappingKeys.VERSION_ATTRIBUTE_MAPPING_KEY, "versionMapping");
-		OrmVersionMapping ormVersionMapping = (OrmVersionMapping) ormPersistentAttribute.getMapping();
-		XmlVersion versionResource = getXmlEntityMappings().getEntities().get(0).getAttributes().getVersions().get(0);
-		
-		assertNull(ormVersionMapping.getSpecifiedConverter());
-		assertNull(versionResource.getTemporal());
-				
-		//set temporal in the resource model, verify context model updated
-		versionResource.setTemporal(org.eclipse.jpt.core.resource.orm.TemporalType.DATE);
-		assertEquals(TemporalType.DATE, ((TemporalConverter) ormVersionMapping.getConverter()).getTemporalType());
-		assertEquals(org.eclipse.jpt.core.resource.orm.TemporalType.DATE, versionResource.getTemporal());
-	
-		versionResource.setTemporal(org.eclipse.jpt.core.resource.orm.TemporalType.TIME);
-		assertEquals(TemporalType.TIME, ((TemporalConverter) ormVersionMapping.getConverter()).getTemporalType());
-		assertEquals(org.eclipse.jpt.core.resource.orm.TemporalType.TIME, versionResource.getTemporal());
-
-		versionResource.setTemporal(org.eclipse.jpt.core.resource.orm.TemporalType.TIMESTAMP);
-		assertEquals(TemporalType.TIMESTAMP, ((TemporalConverter) ormVersionMapping.getConverter()).getTemporalType());
-		assertEquals(org.eclipse.jpt.core.resource.orm.TemporalType.TIMESTAMP, versionResource.getTemporal());
-
-		//set temporal to null in the resource model
-		versionResource.setTemporal(null);
-		assertNull(ormVersionMapping.getSpecifiedConverter());
-		assertNull(versionResource.getTemporal());
-	}
-	
-	public void testModifyTemporal() throws Exception {
-		OrmPersistentType ormPersistentType = getEntityMappings().addPersistentType(MappingKeys.ENTITY_TYPE_MAPPING_KEY, "model.Foo");
-		OrmPersistentAttribute ormPersistentAttribute = ormPersistentType.addSpecifiedPersistentAttribute(MappingKeys.VERSION_ATTRIBUTE_MAPPING_KEY, "versionMapping");
-		OrmVersionMapping ormVersionMapping = (OrmVersionMapping) ormPersistentAttribute.getMapping();
-		XmlVersion versionResource = getXmlEntityMappings().getEntities().get(0).getAttributes().getVersions().get(0);
-		
-		assertNull(ormVersionMapping.getSpecifiedConverter());
-		assertNull(versionResource.getTemporal());
-				
-		//set temporal in the context model, verify resource model updated
-		ormVersionMapping.setSpecifiedConverter(Converter.TEMPORAL_CONVERTER);
-		((TemporalConverter) ormVersionMapping.getSpecifiedConverter()).setTemporalType(TemporalType.DATE);
-		assertEquals(org.eclipse.jpt.core.resource.orm.TemporalType.DATE, versionResource.getTemporal());
-		assertEquals(TemporalType.DATE, ((TemporalConverter) ormVersionMapping.getSpecifiedConverter()).getTemporalType());
-	
-		((TemporalConverter) ormVersionMapping.getSpecifiedConverter()).setTemporalType(TemporalType.TIME);
-		assertEquals(org.eclipse.jpt.core.resource.orm.TemporalType.TIME, versionResource.getTemporal());
-		assertEquals(TemporalType.TIME, ((TemporalConverter) ormVersionMapping.getSpecifiedConverter()).getTemporalType());
-
-		((TemporalConverter) ormVersionMapping.getSpecifiedConverter()).setTemporalType(TemporalType.TIMESTAMP);
-		assertEquals(org.eclipse.jpt.core.resource.orm.TemporalType.TIMESTAMP, versionResource.getTemporal());
-		assertEquals(TemporalType.TIMESTAMP, ((TemporalConverter) ormVersionMapping.getSpecifiedConverter()).getTemporalType());
-
-		//set temporal to null in the context model
-		ormVersionMapping.setSpecifiedConverter(null);
-		assertNull(versionResource.getTemporal());
-		assertNull(ormVersionMapping.getSpecifiedConverter());
-	}
-	
-	//TODO test defaults
-	//TODO test overriding java mapping with a different mapping type in xml
-	
-	public void testVersionMappingNoUnderylingJavaAttribute() throws Exception {
-		createTestEntityVersionMapping();
-
-		OrmPersistentType ormPersistentType = getEntityMappings().addPersistentType(MappingKeys.ENTITY_TYPE_MAPPING_KEY, FULLY_QUALIFIED_TYPE_NAME);
-		ormPersistentType.addSpecifiedPersistentAttribute(MappingKeys.VERSION_ATTRIBUTE_MAPPING_KEY, "foo");
-		assertEquals(2, ormPersistentType.virtualAttributesSize());
-		
-		OrmPersistentAttribute ormPersistentAttribute = ormPersistentType.specifiedAttributes().next();
-		OrmVersionMapping ormVersionMapping = (OrmVersionMapping) ormPersistentAttribute.getMapping();
-		
-		assertEquals("foo", ormVersionMapping.getName());
-		assertNull(ormVersionMapping.getSpecifiedConverter());
-
-		
-		OrmColumn ormColumn = ormVersionMapping.getColumn();
-		assertNull(ormColumn.getSpecifiedName());
-		assertNull(ormColumn.getSpecifiedUnique());
-		assertNull(ormColumn.getSpecifiedNullable());
-		assertNull(ormColumn.getSpecifiedInsertable());
-		assertNull(ormColumn.getSpecifiedUpdatable());
-		assertNull(ormColumn.getColumnDefinition());
-		assertNull(ormColumn.getSpecifiedTable());
-		assertNull(ormColumn.getSpecifiedLength());
-		assertNull(ormColumn.getSpecifiedPrecision());
-		assertNull(ormColumn.getSpecifiedScale());
-		
-		assertEquals("foo", ormColumn.getDefaultName());
-		assertEquals(false, ormColumn.isDefaultUnique());
-		assertEquals(true, ormColumn.isDefaultNullable());
-		assertEquals(true, ormColumn.isDefaultInsertable());
-		assertEquals(true, ormColumn.isDefaultUpdatable());
-		assertEquals(null, ormColumn.getColumnDefinition());
-		assertEquals(TYPE_NAME, ormColumn.getDefaultTable());
-		assertEquals(255, ormColumn.getDefaultLength());
-		assertEquals(0, ormColumn.getDefaultPrecision());
-		assertEquals(0, ormColumn.getDefaultScale());
-	}
-	
-	//@Basic(fetch=FetchType.LAZY, optional=false)
-	//@Column(name="MY_COLUMN", unique=true, nullable=false, insertable=false, updatable=false, 
-	//    columnDefinition="COLUMN_DEFINITION", table="MY_TABLE", length=5, precision=6, scale=7)");
-	//@Column(
-	//@Lob
-	//@Temporal(TemporalType.TIMESTAMP)
-	//@Enumerated(EnumType.STRING)
-	public void testVirtualMappingMetadataCompleteFalse() throws Exception {
-		createTestEntityVersionMapping();
-		OrmPersistentType ormPersistentType = getEntityMappings().addPersistentType(MappingKeys.ENTITY_TYPE_MAPPING_KEY, FULLY_QUALIFIED_TYPE_NAME);
-		assertEquals(2, ormPersistentType.virtualAttributesSize());		
-		OrmPersistentAttribute ormPersistentAttribute = ormPersistentType.virtualAttributes().next();
-		
-		OrmVersionMapping ormVersionMapping = (OrmVersionMapping) ormPersistentAttribute.getMapping();	
-		assertEquals("id", ormVersionMapping.getName());
-		assertEquals(Converter.TEMPORAL_CONVERTER, ormVersionMapping.getConverter().getType());
-		assertEquals(TemporalType.TIMESTAMP, ((TemporalConverter) ormVersionMapping.getConverter()).getTemporalType());
-		
-		OrmColumn ormColumn = ormVersionMapping.getColumn();
-		assertEquals("MY_COLUMN", ormColumn.getSpecifiedName());
-		assertEquals(Boolean.TRUE, ormColumn.getSpecifiedUnique());
-		assertEquals(Boolean.FALSE, ormColumn.getSpecifiedNullable());
-		assertEquals(Boolean.FALSE, ormColumn.getSpecifiedInsertable());
-		assertEquals(Boolean.FALSE, ormColumn.getSpecifiedUpdatable());
-		assertEquals("COLUMN_DEFINITION", ormColumn.getColumnDefinition());
-		assertEquals("MY_TABLE", ormColumn.getSpecifiedTable());
-		assertEquals(Integer.valueOf(5), ormColumn.getSpecifiedLength());
-		assertEquals(Integer.valueOf(6), ormColumn.getSpecifiedPrecision());
-		assertEquals(Integer.valueOf(7), ormColumn.getSpecifiedScale());
-	}
-	
-	public void testVirtualMappingMetadataCompleteTrue() throws Exception {
-		createTestEntityVersionMapping();
-		OrmPersistentType ormPersistentType = getEntityMappings().addPersistentType(MappingKeys.ENTITY_TYPE_MAPPING_KEY, FULLY_QUALIFIED_TYPE_NAME);
-		ormPersistentType.getMapping().setSpecifiedMetadataComplete(Boolean.TRUE);
-		assertEquals(2, ormPersistentType.virtualAttributesSize());		
-		OrmPersistentAttribute ormPersistentAttribute = ormPersistentType.virtualAttributes().next();
-		
-		assertEquals(MappingKeys.BASIC_ATTRIBUTE_MAPPING_KEY, ormPersistentAttribute.getMappingKey());
-		
-		ormPersistentAttribute.makeSpecified(MappingKeys.VERSION_ATTRIBUTE_MAPPING_KEY);
-		ormPersistentAttribute= ormPersistentType.specifiedAttributes().next();
-
-		OrmVersionMapping ormVersionMapping = (OrmVersionMapping) ormPersistentAttribute.getMapping();	
-		assertEquals("id", ormVersionMapping.getName());
-		assertNull(ormVersionMapping.getSpecifiedConverter());
-		
-		OrmColumn ormColumn = ormVersionMapping.getColumn();
-		assertEquals("id", ormColumn.getName());
-		assertEquals(false, ormColumn.isDefaultUnique());
-		assertEquals(true, ormColumn.isDefaultNullable());
-		assertEquals(true, ormColumn.isDefaultInsertable());
-		assertEquals(true, ormColumn.isDefaultUpdatable());
-		assertNull(ormColumn.getColumnDefinition());
-		assertEquals(TYPE_NAME, ormColumn.getTable());
-		assertEquals(255, ormColumn.getLength());
-		assertEquals(0, ormColumn.getPrecision());
-		assertEquals(0, ormColumn.getScale());
-	}
-	
-	public void testSpecifiedMapping() throws Exception {
-		createTestEntityVersionMapping();
-
-		OrmPersistentType ormPersistentType = getEntityMappings().addPersistentType(MappingKeys.ENTITY_TYPE_MAPPING_KEY, FULLY_QUALIFIED_TYPE_NAME);
-		ormPersistentType.addSpecifiedPersistentAttribute(MappingKeys.VERSION_ATTRIBUTE_MAPPING_KEY, "id");
-		assertEquals(1, ormPersistentType.virtualAttributesSize());
-		
-		OrmPersistentAttribute ormPersistentAttribute = ormPersistentType.specifiedAttributes().next();
-		OrmVersionMapping ormVersionMapping = (OrmVersionMapping) ormPersistentAttribute.getMapping();
-		
-		assertEquals("id", ormVersionMapping.getName());
-		assertNull(ormVersionMapping.getSpecifiedConverter());
-		
-		OrmColumn ormColumn = ormVersionMapping.getColumn();
-		assertNull(ormColumn.getSpecifiedName());
-		assertNull(ormColumn.getSpecifiedUnique());
-		assertNull(ormColumn.getSpecifiedNullable());
-		assertNull(ormColumn.getSpecifiedInsertable());
-		assertNull(ormColumn.getSpecifiedUpdatable());
-		assertNull(ormColumn.getColumnDefinition());
-		assertNull(ormColumn.getSpecifiedTable());
-		assertNull(ormColumn.getSpecifiedLength());
-		assertNull(ormColumn.getSpecifiedPrecision());
-		assertNull(ormColumn.getSpecifiedScale());
-		
-		assertEquals("id", ormColumn.getDefaultName());
-		assertEquals(false, ormColumn.isDefaultUnique());
-		assertEquals(true, ormColumn.isDefaultNullable());
-		assertEquals(true, ormColumn.isDefaultInsertable());
-		assertEquals(true, ormColumn.isDefaultUpdatable());
-		assertEquals(null, ormColumn.getColumnDefinition());
-		assertEquals(TYPE_NAME, ormColumn.getDefaultTable());
-		assertEquals(255, ormColumn.getDefaultLength());
-		assertEquals(0, ormColumn.getDefaultPrecision());
-		assertEquals(0, ormColumn.getDefaultScale());
-	}
-	
-	public void testVersionMorphToIdMapping() throws Exception {
-		createTestEntityVersionMapping();
-		OrmPersistentType ormPersistentType = getEntityMappings().addPersistentType(MappingKeys.ENTITY_TYPE_MAPPING_KEY, FULLY_QUALIFIED_TYPE_NAME);
-		OrmPersistentAttribute ormPersistentAttribute = ormPersistentType.addSpecifiedPersistentAttribute(MappingKeys.VERSION_ATTRIBUTE_MAPPING_KEY, "version");
-		
-		VersionMapping versionMapping = (VersionMapping) ormPersistentAttribute.getMapping();
-		assertFalse(versionMapping.isDefault());
-		versionMapping.getColumn().setSpecifiedName("FOO");
-		versionMapping.setSpecifiedConverter(Converter.TEMPORAL_CONVERTER);
-		((TemporalConverter) versionMapping.getSpecifiedConverter()).setTemporalType(TemporalType.TIME);
-		assertFalse(versionMapping.isDefault());
-		
-		ormPersistentAttribute.setSpecifiedMappingKey(MappingKeys.ID_ATTRIBUTE_MAPPING_KEY);
-		assertEquals(1, ormPersistentType.specifiedAttributesSize());
-		assertEquals(ormPersistentAttribute, ormPersistentType.specifiedAttributes().next());
-		assertTrue(ormPersistentAttribute.getMapping() instanceof IdMapping);
-		assertEquals("version", ormPersistentAttribute.getMapping().getName());
-		assertEquals("FOO", ((IdMapping) ormPersistentAttribute.getMapping()).getColumn().getSpecifiedName());
-	}
-	
-	public void testVersionMorphToBasicMapping() throws Exception {
-		createTestEntityVersionMapping();
-		OrmPersistentType ormPersistentType = getEntityMappings().addPersistentType(MappingKeys.ENTITY_TYPE_MAPPING_KEY, FULLY_QUALIFIED_TYPE_NAME);
-		OrmPersistentAttribute ormPersistentAttribute = ormPersistentType.addSpecifiedPersistentAttribute(MappingKeys.VERSION_ATTRIBUTE_MAPPING_KEY, "version");
-		
-		VersionMapping versionMapping = (VersionMapping) ormPersistentAttribute.getMapping();
-		assertFalse(versionMapping.isDefault());
-		versionMapping.getColumn().setSpecifiedName("FOO");
-		versionMapping.setSpecifiedConverter(Converter.TEMPORAL_CONVERTER);
-		((TemporalConverter) versionMapping.getSpecifiedConverter()).setTemporalType(TemporalType.TIME);
-		assertFalse(versionMapping.isDefault());
-		
-		ormPersistentAttribute.setSpecifiedMappingKey(MappingKeys.BASIC_ATTRIBUTE_MAPPING_KEY);
-		assertEquals(1, ormPersistentType.specifiedAttributesSize());
-		assertEquals(ormPersistentAttribute, ormPersistentType.specifiedAttributes().next());
-		assertTrue(ormPersistentAttribute.getMapping() instanceof BasicMapping);
-		assertEquals("version", ormPersistentAttribute.getMapping().getName());
-		assertEquals("FOO", ((BasicMapping) ormPersistentAttribute.getMapping()).getColumn().getSpecifiedName());
-	}
-	
-	public void testVersionMorphToTransientMapping() throws Exception {
-		createTestEntityVersionMapping();
-		OrmPersistentType ormPersistentType = getEntityMappings().addPersistentType(MappingKeys.ENTITY_TYPE_MAPPING_KEY, FULLY_QUALIFIED_TYPE_NAME);
-		OrmPersistentAttribute ormPersistentAttribute = ormPersistentType.addSpecifiedPersistentAttribute(MappingKeys.VERSION_ATTRIBUTE_MAPPING_KEY, "version");
-		
-		VersionMapping versionMapping = (VersionMapping) ormPersistentAttribute.getMapping();
-		assertFalse(versionMapping.isDefault());
-		versionMapping.getColumn().setSpecifiedName("FOO");
-		versionMapping.setSpecifiedConverter(Converter.TEMPORAL_CONVERTER);
-		((TemporalConverter) versionMapping.getSpecifiedConverter()).setTemporalType(TemporalType.TIME);
-		assertFalse(versionMapping.isDefault());
-		
-		ormPersistentAttribute.setSpecifiedMappingKey(MappingKeys.TRANSIENT_ATTRIBUTE_MAPPING_KEY);
-		assertEquals(1, ormPersistentType.specifiedAttributesSize());
-		assertEquals(ormPersistentAttribute, ormPersistentType.specifiedAttributes().next());
-		assertTrue(ormPersistentAttribute.getMapping() instanceof TransientMapping);
-		assertEquals("version", ormPersistentAttribute.getMapping().getName());
-	}
-	
-	public void testVersionMorphToEmbeddedMapping() throws Exception {
-		createTestEntityVersionMapping();
-		OrmPersistentType ormPersistentType = getEntityMappings().addPersistentType(MappingKeys.ENTITY_TYPE_MAPPING_KEY, FULLY_QUALIFIED_TYPE_NAME);
-		OrmPersistentAttribute ormPersistentAttribute = ormPersistentType.addSpecifiedPersistentAttribute(MappingKeys.VERSION_ATTRIBUTE_MAPPING_KEY, "version");
-		
-		VersionMapping versionMapping = (VersionMapping) ormPersistentAttribute.getMapping();
-		assertFalse(versionMapping.isDefault());
-		versionMapping.getColumn().setSpecifiedName("FOO");
-		versionMapping.setSpecifiedConverter(Converter.TEMPORAL_CONVERTER);
-		((TemporalConverter) versionMapping.getSpecifiedConverter()).setTemporalType(TemporalType.TIME);
-		assertFalse(versionMapping.isDefault());
-		
-		ormPersistentAttribute.setSpecifiedMappingKey(MappingKeys.EMBEDDED_ATTRIBUTE_MAPPING_KEY);
-		assertEquals(1, ormPersistentType.specifiedAttributesSize());
-		assertEquals(ormPersistentAttribute, ormPersistentType.specifiedAttributes().next());
-		assertTrue(ormPersistentAttribute.getMapping() instanceof EmbeddedMapping);
-		assertEquals("version", ormPersistentAttribute.getMapping().getName());
-	}
-	
-	public void testVersionMorphToEmbeddedIdMapping() throws Exception {
-		createTestEntityVersionMapping();
-		OrmPersistentType ormPersistentType = getEntityMappings().addPersistentType(MappingKeys.ENTITY_TYPE_MAPPING_KEY, FULLY_QUALIFIED_TYPE_NAME);
-		OrmPersistentAttribute ormPersistentAttribute = ormPersistentType.addSpecifiedPersistentAttribute(MappingKeys.VERSION_ATTRIBUTE_MAPPING_KEY, "version");
-		
-		VersionMapping versionMapping = (VersionMapping) ormPersistentAttribute.getMapping();
-		assertFalse(versionMapping.isDefault());
-		versionMapping.getColumn().setSpecifiedName("FOO");
-		versionMapping.setSpecifiedConverter(Converter.TEMPORAL_CONVERTER);
-		((TemporalConverter) versionMapping.getSpecifiedConverter()).setTemporalType(TemporalType.TIME);
-		assertFalse(versionMapping.isDefault());
-		
-		ormPersistentAttribute.setSpecifiedMappingKey(MappingKeys.EMBEDDED_ID_ATTRIBUTE_MAPPING_KEY);
-		assertEquals(1, ormPersistentType.specifiedAttributesSize());
-		assertEquals(ormPersistentAttribute, ormPersistentType.specifiedAttributes().next());
-		assertTrue(ormPersistentAttribute.getMapping() instanceof EmbeddedIdMapping);
-		assertEquals("version", ormPersistentAttribute.getMapping().getName());
-	}
-	
-	public void testVersionMorphToOneToOneMapping() throws Exception {
-		createTestEntityVersionMapping();
-		OrmPersistentType ormPersistentType = getEntityMappings().addPersistentType(MappingKeys.ENTITY_TYPE_MAPPING_KEY, FULLY_QUALIFIED_TYPE_NAME);
-		OrmPersistentAttribute ormPersistentAttribute = ormPersistentType.addSpecifiedPersistentAttribute(MappingKeys.VERSION_ATTRIBUTE_MAPPING_KEY, "version");
-		
-		VersionMapping versionMapping = (VersionMapping) ormPersistentAttribute.getMapping();
-		assertFalse(versionMapping.isDefault());
-		versionMapping.getColumn().setSpecifiedName("FOO");
-		versionMapping.setSpecifiedConverter(Converter.TEMPORAL_CONVERTER);
-		((TemporalConverter) versionMapping.getSpecifiedConverter()).setTemporalType(TemporalType.TIME);
-		assertFalse(versionMapping.isDefault());
-		
-		ormPersistentAttribute.setSpecifiedMappingKey(MappingKeys.ONE_TO_ONE_ATTRIBUTE_MAPPING_KEY);
-		assertEquals(1, ormPersistentType.specifiedAttributesSize());
-		assertEquals(ormPersistentAttribute, ormPersistentType.specifiedAttributes().next());
-		assertTrue(ormPersistentAttribute.getMapping() instanceof OneToOneMapping);
-		assertEquals("version", ormPersistentAttribute.getMapping().getName());
-	}
-	
-	public void testVersionMorphToOneToManyMapping() throws Exception {
-		createTestEntityVersionMapping();
-		OrmPersistentType ormPersistentType = getEntityMappings().addPersistentType(MappingKeys.ENTITY_TYPE_MAPPING_KEY, FULLY_QUALIFIED_TYPE_NAME);
-		OrmPersistentAttribute ormPersistentAttribute = ormPersistentType.addSpecifiedPersistentAttribute(MappingKeys.VERSION_ATTRIBUTE_MAPPING_KEY, "version");
-
-		VersionMapping versionMapping = (VersionMapping) ormPersistentAttribute.getMapping();
-		assertFalse(versionMapping.isDefault());
-		versionMapping.getColumn().setSpecifiedName("FOO");
-		versionMapping.setSpecifiedConverter(Converter.TEMPORAL_CONVERTER);
-		((TemporalConverter) versionMapping.getSpecifiedConverter()).setTemporalType(TemporalType.TIME);
-		assertFalse(versionMapping.isDefault());
-		
-		ormPersistentAttribute.setSpecifiedMappingKey(MappingKeys.ONE_TO_MANY_ATTRIBUTE_MAPPING_KEY);
-		assertEquals(1, ormPersistentType.specifiedAttributesSize());
-		assertEquals(ormPersistentAttribute, ormPersistentType.specifiedAttributes().next());
-		assertTrue(ormPersistentAttribute.getMapping() instanceof OneToManyMapping);
-		assertEquals("version", ormPersistentAttribute.getMapping().getName());
-	}
-	
-	public void testVersionMorphToManyToOneMapping() throws Exception {
-		createTestEntityVersionMapping();
-		OrmPersistentType ormPersistentType = getEntityMappings().addPersistentType(MappingKeys.ENTITY_TYPE_MAPPING_KEY, FULLY_QUALIFIED_TYPE_NAME);
-		OrmPersistentAttribute ormPersistentAttribute = ormPersistentType.addSpecifiedPersistentAttribute(MappingKeys.VERSION_ATTRIBUTE_MAPPING_KEY, "version");
-		
-		VersionMapping versionMapping = (VersionMapping) ormPersistentAttribute.getMapping();
-		assertFalse(versionMapping.isDefault());
-		versionMapping.getColumn().setSpecifiedName("FOO");
-		versionMapping.setSpecifiedConverter(Converter.TEMPORAL_CONVERTER);
-		((TemporalConverter) versionMapping.getSpecifiedConverter()).setTemporalType(TemporalType.TIME);
-		assertFalse(versionMapping.isDefault());
-		
-		ormPersistentAttribute.setSpecifiedMappingKey(MappingKeys.MANY_TO_ONE_ATTRIBUTE_MAPPING_KEY);
-		assertEquals(1, ormPersistentType.specifiedAttributesSize());
-		assertEquals(ormPersistentAttribute, ormPersistentType.specifiedAttributes().next());
-		assertTrue(ormPersistentAttribute.getMapping() instanceof ManyToOneMapping);
-		assertEquals("version", ormPersistentAttribute.getMapping().getName());
-	}
-	
-	public void testVersionMorphToManyToManyMapping() throws Exception {
-		createTestEntityVersionMapping();
-		OrmPersistentType ormPersistentType = getEntityMappings().addPersistentType(MappingKeys.ENTITY_TYPE_MAPPING_KEY, FULLY_QUALIFIED_TYPE_NAME);
-		OrmPersistentAttribute ormPersistentAttribute = ormPersistentType.addSpecifiedPersistentAttribute(MappingKeys.VERSION_ATTRIBUTE_MAPPING_KEY, "version");
-		
-		VersionMapping versionMapping = (VersionMapping) ormPersistentAttribute.getMapping();
-		assertFalse(versionMapping.isDefault());
-		versionMapping.getColumn().setSpecifiedName("FOO");
-		versionMapping.setSpecifiedConverter(Converter.TEMPORAL_CONVERTER);
-		((TemporalConverter) versionMapping.getSpecifiedConverter()).setTemporalType(TemporalType.TIME);
-		assertFalse(versionMapping.isDefault());
-		
-		ormPersistentAttribute.setSpecifiedMappingKey(MappingKeys.MANY_TO_MANY_ATTRIBUTE_MAPPING_KEY);
-		assertEquals(1, ormPersistentType.specifiedAttributesSize());
-		assertEquals(ormPersistentAttribute, ormPersistentType.specifiedAttributes().next());
-		assertTrue(ormPersistentAttribute.getMapping() instanceof ManyToManyMapping);
-		assertEquals("version", ormPersistentAttribute.getMapping().getName());
-	}
-
-}
\ No newline at end of file
diff --git a/jpa/tests/org.eclipse.jpt.core.tests/src/org/eclipse/jpt/core/tests/internal/context/orm/OrmXmlTests.java b/jpa/tests/org.eclipse.jpt.core.tests/src/org/eclipse/jpt/core/tests/internal/context/orm/OrmXmlTests.java
deleted file mode 100644
index dd3974c..0000000
--- a/jpa/tests/org.eclipse.jpt.core.tests/src/org/eclipse/jpt/core/tests/internal/context/orm/OrmXmlTests.java
+++ /dev/null
@@ -1,110 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.core.tests.internal.context.orm;
-
-import org.eclipse.jpt.core.JptCorePlugin;
-import org.eclipse.jpt.core.context.orm.OrmXml;
-import org.eclipse.jpt.core.resource.orm.OrmFactory;
-import org.eclipse.jpt.core.resource.persistence.PersistenceFactory;
-import org.eclipse.jpt.core.resource.persistence.XmlMappingFileRef;
-import org.eclipse.jpt.core.resource.xml.JpaXmlResource;
-import org.eclipse.jpt.core.tests.internal.context.ContextModelTestCase;
-
-@SuppressWarnings("nls")
-public class OrmXmlTests extends ContextModelTestCase
-{
-	public OrmXmlTests(String name) {
-		super(name);
-	}
-	
-	@Override
-	protected void setUp() throws Exception {
-		super.setUp();
-		getXmlPersistenceUnit().setName("foo");
-		XmlMappingFileRef mappingFileRef = PersistenceFactory.eINSTANCE.createXmlMappingFileRef();
-		mappingFileRef.setFileName(JptCorePlugin.DEFAULT_ORM_XML_FILE_PATH);
-		getXmlPersistenceUnit().getMappingFiles().add(mappingFileRef);
-		getPersistenceXmlResource().save(null);
-	}
-	
-	protected OrmXml getOrmXml() {
-		return (OrmXml) getPersistenceUnit().mappingFileRefs().next().getMappingFile();
-	}
-	
-	public void testUpdateAddEntityMappings() throws Exception {
-		assertEquals(2, getJpaProject().jpaFilesSize());
-		JpaXmlResource ormResource = getOrmXmlResource();
-		ormResource.getContents().clear();
-		ormResource.save(null);
-		
-		//the ContentType of the orm.xml file is no longer orm, so the jpa file is removed
-		assertNull(getOrmXml());
-		assertEquals(1, getJpaProject().jpaFilesSize()); //should only be the persistence.xml file
-		
-		ormResource.getContents().add(OrmFactory.eINSTANCE.createXmlEntityMappings());
-		ormResource.save(null);
-		
-		assertNotNull(getOrmXml().getEntityMappings());
-		assertEquals(2, getJpaProject().jpaFilesSize());
-	}
-	
-	public void testModifyAddEntityMappings() {
-		JpaXmlResource ormResource = getOrmXmlResource();
-		ormResource.getContents().remove(getXmlEntityMappings());
-		assertNull(getXmlEntityMappings());
-		
-		OrmXml ormXml = getOrmXml();
-		assertNull(ormXml.getRoot());
-		
-		ormXml.addEntityMappings();
-		
-		assertNotNull(ormXml.getRoot());
-		
-		boolean exceptionThrown = false;
-		try {
-			ormXml.addEntityMappings();
-		}
-		catch (IllegalStateException ise) {
-			exceptionThrown = true;
-		}
-		
-		assertTrue("IllegalStateException was not thrown", exceptionThrown);
-	}
-	
-	public void testUpdateRemoveEntityMappings() throws Exception {
-		JpaXmlResource ormResource = getOrmXmlResource();
-		
-		assertNotNull(getOrmXml().getRoot());
-		
-		ormResource.getContents().clear();
-		
-		assertNull(getOrmXml().getRoot());
-	}
-	
-	public void testModifyRemoveEntityMappings() {
-		OrmXml ormXml = getOrmXml();
-		
-		assertNotNull(ormXml.getRoot());
-		
-		ormXml.removeEntityMappings();
-		
-		assertNull(ormXml.getRoot());
-		
-		boolean exceptionThrown = false;
-		try {
-			ormXml.removeEntityMappings();
-		}
-		catch (IllegalStateException ise) {
-			exceptionThrown = true;
-		}
-		
-		assertTrue("IllegalStateException was not thrown", exceptionThrown);
-	}
-}
diff --git a/jpa/tests/org.eclipse.jpt.core.tests/src/org/eclipse/jpt/core/tests/internal/context/orm/PersistenceUnitDefaultsTests.java b/jpa/tests/org.eclipse.jpt.core.tests/src/org/eclipse/jpt/core/tests/internal/context/orm/PersistenceUnitDefaultsTests.java
deleted file mode 100644
index 9a3d6ad..0000000
--- a/jpa/tests/org.eclipse.jpt.core.tests/src/org/eclipse/jpt/core/tests/internal/context/orm/PersistenceUnitDefaultsTests.java
+++ /dev/null
@@ -1,369 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.core.tests.internal.context.orm;
-
-import org.eclipse.jpt.core.JptCorePlugin;
-import org.eclipse.jpt.core.context.AccessType;
-import org.eclipse.jpt.core.context.orm.OrmPersistenceUnitDefaults;
-import org.eclipse.jpt.core.resource.orm.OrmFactory;
-import org.eclipse.jpt.core.resource.orm.XmlPersistenceUnitMetadata;
-import org.eclipse.jpt.core.resource.persistence.PersistenceFactory;
-import org.eclipse.jpt.core.resource.persistence.XmlMappingFileRef;
-import org.eclipse.jpt.core.tests.internal.context.ContextModelTestCase;
-
-@SuppressWarnings("nls")
-public class PersistenceUnitDefaultsTests extends ContextModelTestCase
-{
-	public PersistenceUnitDefaultsTests(String name) {
-		super(name);
-	}
-	
-	
-	@Override
-	protected void setUp() throws Exception {
-		super.setUp();
-		XmlMappingFileRef mappingFileRef = PersistenceFactory.eINSTANCE.createXmlMappingFileRef();
-		mappingFileRef.setFileName(JptCorePlugin.DEFAULT_ORM_XML_FILE_PATH);
-		getXmlPersistenceUnit().getMappingFiles().add(mappingFileRef);
-		getPersistenceXmlResource().save(null);
-	}
-	
-	protected OrmPersistenceUnitDefaults getPersistenceUnitDefaults() {
-		return getEntityMappings().getPersistenceUnitMetadata().getPersistenceUnitDefaults();
-	}
-	
-	public void testIsAllFeaturesUnset() throws Exception {
-		OrmPersistenceUnitDefaults persistenceUnitDefaults = getPersistenceUnitDefaults();
-		assertNull(persistenceUnitDefaults.getAccess());
-		assertNull(getXmlEntityMappings().getPersistenceUnitMetadata());
-		
-		XmlPersistenceUnitMetadata persistenceUnitMetadata = OrmFactory.eINSTANCE.createXmlPersistenceUnitMetadata();
-		getXmlEntityMappings().setPersistenceUnitMetadata(persistenceUnitMetadata);
-		assertTrue(persistenceUnitMetadata.isUnset());
-		
-		org.eclipse.jpt.core.resource.orm.XmlPersistenceUnitDefaults persistenceUnitDefaultsResource = OrmFactory.eINSTANCE.createXmlPersistenceUnitDefaults();
-		persistenceUnitMetadata.setPersistenceUnitDefaults(persistenceUnitDefaultsResource);
-		assertTrue(persistenceUnitDefaultsResource.isUnset());
-		
-		persistenceUnitDefaultsResource.setCascadePersist(true);
-		assertFalse(persistenceUnitDefaultsResource.isUnset());
-		
-		persistenceUnitDefaultsResource.setCascadePersist(false);
-		assertTrue(persistenceUnitDefaultsResource.isUnset());
-		
-		persistenceUnitDefaultsResource.setSchema("asdf");
-		assertFalse(persistenceUnitDefaultsResource.isUnset());
-		
-		persistenceUnitDefaultsResource.setSchema(null);
-		assertTrue(persistenceUnitDefaultsResource.isUnset());
-		
-		persistenceUnitDefaultsResource.setCatalog("asdf");
-		assertFalse(persistenceUnitDefaultsResource.isUnset());
-		
-		persistenceUnitDefaultsResource.setCatalog(null);
-		assertTrue(persistenceUnitDefaultsResource.isUnset());
-		
-		
-		persistenceUnitDefaultsResource.setAccess(org.eclipse.jpt.core.resource.orm.AccessType.PROPERTY);
-		assertFalse(persistenceUnitDefaultsResource.isUnset());
-		
-		persistenceUnitDefaultsResource.setAccess(org.eclipse.jpt.core.resource.orm.AccessType.FIELD);
-		assertFalse(persistenceUnitDefaultsResource.isUnset());
-		
-		persistenceUnitDefaultsResource.setAccess(null);
-		assertTrue(persistenceUnitDefaultsResource.isUnset());
-	}
-
-	public void testUpdateSchema() throws Exception {
-		OrmPersistenceUnitDefaults persistenceUnitDefaults = getPersistenceUnitDefaults();
-		assertNull(persistenceUnitDefaults.getSchema());
-		assertNull(getXmlEntityMappings().getPersistenceUnitMetadata());
-		
-		//set schema in the resource model, verify context model updated
-		getXmlEntityMappings().setPersistenceUnitMetadata(OrmFactory.eINSTANCE.createXmlPersistenceUnitMetadata());
-		getXmlEntityMappings().getPersistenceUnitMetadata().setPersistenceUnitDefaults(OrmFactory.eINSTANCE.createXmlPersistenceUnitDefaults());
-		getXmlEntityMappings().getPersistenceUnitMetadata().getPersistenceUnitDefaults().setSchema("MY_SCHEMA");
-		assertEquals("MY_SCHEMA", persistenceUnitDefaults.getSchema());
-		assertEquals("MY_SCHEMA", getXmlEntityMappings().getPersistenceUnitMetadata().getPersistenceUnitDefaults().getSchema());
-	
-		//set schema to null in the resource model
-		getXmlEntityMappings().getPersistenceUnitMetadata().getPersistenceUnitDefaults().setSchema(null);
-		assertNull(persistenceUnitDefaults.getSchema());
-		assertNull(getXmlEntityMappings().getPersistenceUnitMetadata().getPersistenceUnitDefaults().getSchema());
-	}
-	
-	public void testModifySchema() throws Exception {		
-		OrmPersistenceUnitDefaults persistenceUnitDefaults = getPersistenceUnitDefaults();
-		assertNull(persistenceUnitDefaults.getSchema());
-		assertNull(getXmlEntityMappings().getPersistenceUnitMetadata());
-		
-		//set schema in the context model, verify resource model modified
-		persistenceUnitDefaults.setSpecifiedSchema("MY_SCHEMA");
-		assertEquals("MY_SCHEMA", persistenceUnitDefaults.getSchema());
-		assertEquals("MY_SCHEMA", getXmlEntityMappings().getPersistenceUnitMetadata().getPersistenceUnitDefaults().getSchema());
-		
-		//set schema to null in the context model
-		persistenceUnitDefaults.setSpecifiedSchema(null);
-		assertNull(persistenceUnitDefaults.getSchema());
-		assertNull(getXmlEntityMappings().getPersistenceUnitMetadata());
-	}
-	
-	public void testModifySchema2() throws Exception {
-		OrmPersistenceUnitDefaults persistenceUnitDefaults = getPersistenceUnitDefaults();
-		assertNull(persistenceUnitDefaults.getSchema());
-		assertNull(getXmlEntityMappings().getPersistenceUnitMetadata());
-		
-		//set schema in the context model, verify resource model modified
-		persistenceUnitDefaults.setSpecifiedSchema("MY_SCHEMA");
-		assertEquals("MY_SCHEMA", persistenceUnitDefaults.getSchema());
-		assertEquals("MY_SCHEMA", getXmlEntityMappings().getPersistenceUnitMetadata().getPersistenceUnitDefaults().getSchema());
-		
-		//set another element on the persistence-unit-defaults element so it doesn't get removed
-		getXmlEntityMappings().getPersistenceUnitMetadata().getPersistenceUnitDefaults().setCatalog("MY_CATALOG");
-		//set schema to null in the context model
-		persistenceUnitDefaults.setSpecifiedSchema(null);
-		assertNull(persistenceUnitDefaults.getSchema());
-		assertNull(getXmlEntityMappings().getPersistenceUnitMetadata().getPersistenceUnitDefaults().getSchema());
-	}
-	
-	public void testModifySchema3() throws Exception {
-		OrmPersistenceUnitDefaults persistenceUnitDefaults = getPersistenceUnitDefaults();
-		assertNull(persistenceUnitDefaults.getSchema());
-		assertNull(getXmlEntityMappings().getPersistenceUnitMetadata());
-		//set another element on the persistence-unit-metadata element so only persistence-unit-defaults element gets removed
-		getXmlEntityMappings().setPersistenceUnitMetadata(OrmFactory.eINSTANCE.createXmlPersistenceUnitMetadata());
-		getXmlEntityMappings().getPersistenceUnitMetadata().setXmlMappingMetadataComplete(true);
-		
-		//set schema in the context model, verify resource model modified
-		persistenceUnitDefaults.setSpecifiedSchema("MY_SCHEMA");
-		assertEquals("MY_SCHEMA", persistenceUnitDefaults.getSchema());
-		assertEquals("MY_SCHEMA", getXmlEntityMappings().getPersistenceUnitMetadata().getPersistenceUnitDefaults().getSchema());
-		
-		//set schema to null in the context model
-		persistenceUnitDefaults.setSpecifiedSchema(null);
-		assertNull(persistenceUnitDefaults.getSchema());
-		assertNull(getXmlEntityMappings().getPersistenceUnitMetadata().getPersistenceUnitDefaults());
-	}
-	
-	public void testUpdateCatalog() throws Exception {
-		OrmPersistenceUnitDefaults persistenceUnitDefaults = getPersistenceUnitDefaults();
-		assertNull(persistenceUnitDefaults.getCatalog());
-		assertNull(getXmlEntityMappings().getPersistenceUnitMetadata());
-		
-		//set catalog in the resource model, verify context model updated
-		getXmlEntityMappings().setPersistenceUnitMetadata(OrmFactory.eINSTANCE.createXmlPersistenceUnitMetadata());
-		getXmlEntityMappings().getPersistenceUnitMetadata().setPersistenceUnitDefaults(OrmFactory.eINSTANCE.createXmlPersistenceUnitDefaults());
-		getXmlEntityMappings().getPersistenceUnitMetadata().getPersistenceUnitDefaults().setCatalog("MY_CATALOG");
-		assertEquals("MY_CATALOG", persistenceUnitDefaults.getCatalog());
-		assertEquals("MY_CATALOG", getXmlEntityMappings().getPersistenceUnitMetadata().getPersistenceUnitDefaults().getCatalog());
-	
-		//set catalog to null in the resource model
-		getXmlEntityMappings().getPersistenceUnitMetadata().getPersistenceUnitDefaults().setCatalog(null);
-		assertNull(persistenceUnitDefaults.getCatalog());
-		assertNull(getXmlEntityMappings().getPersistenceUnitMetadata().getPersistenceUnitDefaults().getCatalog());
-	}
-	
-	public void testModifyCatalog() throws Exception {		
-		OrmPersistenceUnitDefaults persistenceUnitDefaults = getPersistenceUnitDefaults();
-		assertNull(persistenceUnitDefaults.getCatalog());
-		assertNull(getXmlEntityMappings().getPersistenceUnitMetadata());
-		
-		//set catalog in the context model, verify resource model modified
-		persistenceUnitDefaults.setSpecifiedCatalog("MY_CATALOG");
-		assertEquals("MY_CATALOG", persistenceUnitDefaults.getCatalog());
-		assertEquals("MY_CATALOG", getXmlEntityMappings().getPersistenceUnitMetadata().getPersistenceUnitDefaults().getCatalog());
-		
-		//set catalog to null in the context model
-		persistenceUnitDefaults.setSpecifiedCatalog(null);
-		assertNull(persistenceUnitDefaults.getCatalog());
-		assertNull(getXmlEntityMappings().getPersistenceUnitMetadata());
-	}
-	
-	public void testModifyCatalog2() throws Exception {
-		OrmPersistenceUnitDefaults persistenceUnitDefaults = getPersistenceUnitDefaults();
-		assertNull(persistenceUnitDefaults.getCatalog());
-		assertNull(getXmlEntityMappings().getPersistenceUnitMetadata());
-		
-		//set catalog in the context model, verify resource model modified
-		persistenceUnitDefaults.setSpecifiedCatalog("MY_CATALOG");
-		assertEquals("MY_CATALOG", persistenceUnitDefaults.getCatalog());
-		assertEquals("MY_CATALOG", getXmlEntityMappings().getPersistenceUnitMetadata().getPersistenceUnitDefaults().getCatalog());
-		
-		//set another element on the persistence-unit-defaults element so it doesn't get removed
-		getXmlEntityMappings().getPersistenceUnitMetadata().getPersistenceUnitDefaults().setSchema("MY_SCHEMA");
-		//set catalog to null in the context model
-		persistenceUnitDefaults.setSpecifiedCatalog(null);
-		assertNull(persistenceUnitDefaults.getCatalog());
-		assertNull(getXmlEntityMappings().getPersistenceUnitMetadata().getPersistenceUnitDefaults().getCatalog());
-	}
-	
-	public void testModifyCatalog3() throws Exception {
-		OrmPersistenceUnitDefaults persistenceUnitDefaults = getPersistenceUnitDefaults();
-		assertNull(persistenceUnitDefaults.getCatalog());
-		assertNull(getXmlEntityMappings().getPersistenceUnitMetadata());
-		//set another element on the persistence-unit-metadata element so only persistence-unit-defaults element gets removed
-		getXmlEntityMappings().setPersistenceUnitMetadata(OrmFactory.eINSTANCE.createXmlPersistenceUnitMetadata());
-		getXmlEntityMappings().getPersistenceUnitMetadata().setXmlMappingMetadataComplete(true);
-		
-		//set catalog in the context model, verify resource model modified
-		persistenceUnitDefaults.setSpecifiedCatalog("MY_CATALOG");
-		assertEquals("MY_CATALOG", persistenceUnitDefaults.getCatalog());
-		assertEquals("MY_CATALOG", getXmlEntityMappings().getPersistenceUnitMetadata().getPersistenceUnitDefaults().getCatalog());
-		
-		//set catalog to null in the context model
-		persistenceUnitDefaults.setSpecifiedCatalog(null);
-		assertNull(persistenceUnitDefaults.getCatalog());
-		assertNull(getXmlEntityMappings().getPersistenceUnitMetadata().getPersistenceUnitDefaults());
-	}
-	
-	public void testUpdateCascadePersist() throws Exception {
-		OrmPersistenceUnitDefaults persistenceUnitDefaults = getPersistenceUnitDefaults();
-		assertFalse(persistenceUnitDefaults.isCascadePersist());
-		assertNull(getXmlEntityMappings().getPersistenceUnitMetadata());
-		
-		//set cascadePersist in the resource model, verify context model updated
-		getXmlEntityMappings().setPersistenceUnitMetadata(OrmFactory.eINSTANCE.createXmlPersistenceUnitMetadata());
-		getXmlEntityMappings().getPersistenceUnitMetadata().setPersistenceUnitDefaults(OrmFactory.eINSTANCE.createXmlPersistenceUnitDefaults());
-		getXmlEntityMappings().getPersistenceUnitMetadata().getPersistenceUnitDefaults().setCascadePersist(true);
-		assertTrue(persistenceUnitDefaults.isCascadePersist());
-		assertTrue(getXmlEntityMappings().getPersistenceUnitMetadata().getPersistenceUnitDefaults().isCascadePersist());
-	
-		//set cascadePersist to null in the resource model, persistence-unit-defaults tag not removed
-		getXmlEntityMappings().getPersistenceUnitMetadata().getPersistenceUnitDefaults().setCascadePersist(false);
-		assertFalse(persistenceUnitDefaults.isCascadePersist());
-		assertFalse(getXmlEntityMappings().getPersistenceUnitMetadata().getPersistenceUnitDefaults().isCascadePersist());
-	}
-	
-	public void testModifyCascadePersist() throws Exception {		
-		OrmPersistenceUnitDefaults persistenceUnitDefaults = getPersistenceUnitDefaults();
-		assertFalse(persistenceUnitDefaults.isCascadePersist());
-		assertNull(getXmlEntityMappings().getPersistenceUnitMetadata());
-		
-		//set cascadePersist in the context model, verify resource model modified
-		persistenceUnitDefaults.setCascadePersist(true);
-		assertTrue(persistenceUnitDefaults.isCascadePersist());
-		assertTrue(getXmlEntityMappings().getPersistenceUnitMetadata().getPersistenceUnitDefaults().isCascadePersist());
-		
-		//set cascadePersist to null in the context model
-		persistenceUnitDefaults.setCascadePersist(false);
-		assertFalse(persistenceUnitDefaults.isCascadePersist());
-		assertNull(getXmlEntityMappings().getPersistenceUnitMetadata());
-	}
-	
-	public void testModifyCascadePersist2() throws Exception {
-		OrmPersistenceUnitDefaults persistenceUnitDefaults = getPersistenceUnitDefaults();
-		assertFalse(persistenceUnitDefaults.isCascadePersist());
-		assertNull(getXmlEntityMappings().getPersistenceUnitMetadata());
-		
-		//set cascadePersist in the context model, verify resource model modified
-		persistenceUnitDefaults.setCascadePersist(true);
-		assertTrue(persistenceUnitDefaults.isCascadePersist());
-		assertTrue(getXmlEntityMappings().getPersistenceUnitMetadata().getPersistenceUnitDefaults().isCascadePersist());
-		
-		//set another element on the persistence-unit-defaults element so it doesn't get removed
-		getXmlEntityMappings().getPersistenceUnitMetadata().getPersistenceUnitDefaults().setCatalog("MY_CATALOG");
-		//set cascadePersist to null in the context model
-		persistenceUnitDefaults.setCascadePersist(false);
-		assertFalse(persistenceUnitDefaults.isCascadePersist());
-		assertFalse(getXmlEntityMappings().getPersistenceUnitMetadata().getPersistenceUnitDefaults().isCascadePersist());
-	}
-	
-	public void testModifyCascadePersist3() throws Exception {
-		OrmPersistenceUnitDefaults persistenceUnitDefaults = getPersistenceUnitDefaults();
-		assertFalse(persistenceUnitDefaults.isCascadePersist());
-		assertNull(getXmlEntityMappings().getPersistenceUnitMetadata());
-		//set another element on the persistence-unit-metadata element so only persistence-unit-defaults element gets removed
-		getXmlEntityMappings().setPersistenceUnitMetadata(OrmFactory.eINSTANCE.createXmlPersistenceUnitMetadata());
-		getXmlEntityMappings().getPersistenceUnitMetadata().setXmlMappingMetadataComplete(true);
-		
-		//set cascadePersist in the context model, verify resource model modified
-		persistenceUnitDefaults.setCascadePersist(true);
-		assertTrue(persistenceUnitDefaults.isCascadePersist());
-		assertTrue(getXmlEntityMappings().getPersistenceUnitMetadata().getPersistenceUnitDefaults().isCascadePersist());
-		
-		//set cascadePersist to null in the context model
-		persistenceUnitDefaults.setCascadePersist(false);
-		assertFalse(persistenceUnitDefaults.isCascadePersist());
-		assertNull(getXmlEntityMappings().getPersistenceUnitMetadata().getPersistenceUnitDefaults());
-	}
-	
-	
-	public void testUpdateAccess() throws Exception {
-		OrmPersistenceUnitDefaults persistenceUnitDefaults = getPersistenceUnitDefaults();
-		assertNull(persistenceUnitDefaults.getAccess());
-		assertNull(getXmlEntityMappings().getPersistenceUnitMetadata());
-		
-		//set access in the resource model, verify context model updated
-		getXmlEntityMappings().setPersistenceUnitMetadata(OrmFactory.eINSTANCE.createXmlPersistenceUnitMetadata());
-		getXmlEntityMappings().getPersistenceUnitMetadata().setPersistenceUnitDefaults(OrmFactory.eINSTANCE.createXmlPersistenceUnitDefaults());
-		getXmlEntityMappings().getPersistenceUnitMetadata().getPersistenceUnitDefaults().setAccess(org.eclipse.jpt.core.resource.orm.AccessType.FIELD);
-		assertEquals(AccessType.FIELD, persistenceUnitDefaults.getAccess());
-		assertEquals(org.eclipse.jpt.core.resource.orm.AccessType.FIELD, getXmlEntityMappings().getPersistenceUnitMetadata().getPersistenceUnitDefaults().getAccess());
-	
-		//set access to null in the resource model
-		getXmlEntityMappings().getPersistenceUnitMetadata().getPersistenceUnitDefaults().setAccess(null);
-		assertNull(persistenceUnitDefaults.getAccess());
-		assertNull(getXmlEntityMappings().getPersistenceUnitMetadata().getPersistenceUnitDefaults().getAccess());
-	}
-	
-	public void testModifyAccess() throws Exception {		
-		OrmPersistenceUnitDefaults persistenceUnitDefaults = getPersistenceUnitDefaults();
-		assertNull(persistenceUnitDefaults.getAccess());
-		assertNull(getXmlEntityMappings().getPersistenceUnitMetadata());
-		
-		//set access in the context model, verify resource model modified
-		persistenceUnitDefaults.setAccess(AccessType.PROPERTY);
-		assertEquals(AccessType.PROPERTY, persistenceUnitDefaults.getAccess());
-		assertEquals(org.eclipse.jpt.core.resource.orm.AccessType.PROPERTY, getXmlEntityMappings().getPersistenceUnitMetadata().getPersistenceUnitDefaults().getAccess());
-		
-		//set access to null in the context model
-		persistenceUnitDefaults.setAccess(null);
-		assertNull(persistenceUnitDefaults.getAccess());
-		assertNull(getXmlEntityMappings().getPersistenceUnitMetadata());
-	}
-	
-	public void testModifyAccess2() throws Exception {
-		OrmPersistenceUnitDefaults persistenceUnitDefaults = getPersistenceUnitDefaults();
-		assertNull(persistenceUnitDefaults.getAccess());
-		assertNull(getXmlEntityMappings().getPersistenceUnitMetadata());
-		
-		//set access in the context model, verify resource model modified
-		persistenceUnitDefaults.setAccess(AccessType.FIELD);
-		assertEquals(AccessType.FIELD, persistenceUnitDefaults.getAccess());
-		assertEquals(org.eclipse.jpt.core.resource.orm.AccessType.FIELD, getXmlEntityMappings().getPersistenceUnitMetadata().getPersistenceUnitDefaults().getAccess());
-		
-		//set another element on the persistence-unit-defaults element so it doesn't get removed
-		getXmlEntityMappings().getPersistenceUnitMetadata().getPersistenceUnitDefaults().setCascadePersist(true);
-		//set access to null in the context model
-		persistenceUnitDefaults.setAccess(null);
-		assertNull(persistenceUnitDefaults.getAccess());
-		assertNull(getXmlEntityMappings().getPersistenceUnitMetadata().getPersistenceUnitDefaults().getAccess());
-	}
-	
-	public void testModifyAccess3() throws Exception {
-		OrmPersistenceUnitDefaults persistenceUnitDefaults = getPersistenceUnitDefaults();
-		assertNull(persistenceUnitDefaults.getAccess());
-		assertNull(getXmlEntityMappings().getPersistenceUnitMetadata());
-		//set another element on the persistence-unit-metadata element so only persistence-unit-defaults element gets removed
-		getXmlEntityMappings().setPersistenceUnitMetadata(OrmFactory.eINSTANCE.createXmlPersistenceUnitMetadata());
-		getXmlEntityMappings().getPersistenceUnitMetadata().setXmlMappingMetadataComplete(true);
-		
-		//set access in the context model, verify resource model modified
-		persistenceUnitDefaults.setAccess(AccessType.FIELD);
-		assertEquals(AccessType.FIELD, persistenceUnitDefaults.getAccess());
-		assertEquals(org.eclipse.jpt.core.resource.orm.AccessType.FIELD, getXmlEntityMappings().getPersistenceUnitMetadata().getPersistenceUnitDefaults().getAccess());
-		
-		//set access to null in the context model
-		persistenceUnitDefaults.setAccess(null);
-		assertNull(persistenceUnitDefaults.getAccess());
-		assertNull(getXmlEntityMappings().getPersistenceUnitMetadata().getPersistenceUnitDefaults());
-	}
-
-}
\ No newline at end of file
diff --git a/jpa/tests/org.eclipse.jpt.core.tests/src/org/eclipse/jpt/core/tests/internal/context/orm/PersistenceUnitMetadataTests.java b/jpa/tests/org.eclipse.jpt.core.tests/src/org/eclipse/jpt/core/tests/internal/context/orm/PersistenceUnitMetadataTests.java
deleted file mode 100644
index 1d9850e..0000000
--- a/jpa/tests/org.eclipse.jpt.core.tests/src/org/eclipse/jpt/core/tests/internal/context/orm/PersistenceUnitMetadataTests.java
+++ /dev/null
@@ -1,104 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.core.tests.internal.context.orm;
-
-import org.eclipse.jpt.core.JptCorePlugin;
-import org.eclipse.jpt.core.context.orm.PersistenceUnitMetadata;
-import org.eclipse.jpt.core.resource.orm.OrmFactory;
-import org.eclipse.jpt.core.resource.persistence.PersistenceFactory;
-import org.eclipse.jpt.core.resource.persistence.XmlMappingFileRef;
-import org.eclipse.jpt.core.tests.internal.context.ContextModelTestCase;
-
-public class PersistenceUnitMetadataTests extends ContextModelTestCase
-{
-	public PersistenceUnitMetadataTests(String name) {
-		super(name);
-	}
-	
-	
-	@Override
-	protected void setUp() throws Exception {
-		super.setUp();
-		XmlMappingFileRef mappingFileRef = PersistenceFactory.eINSTANCE.createXmlMappingFileRef();
-		mappingFileRef.setFileName(JptCorePlugin.DEFAULT_ORM_XML_FILE_PATH);
-		getXmlPersistenceUnit().getMappingFiles().add(mappingFileRef);
-		getPersistenceXmlResource().save(null);
-	}
-
-	protected PersistenceUnitMetadata persistenceUnitMetadata() {
-		return getEntityMappings().getPersistenceUnitMetadata();
-	}
-	
-	public void testIsAllFeaturesUnset() throws Exception {
-		org.eclipse.jpt.core.resource.orm.XmlPersistenceUnitMetadata persistenceUnitMetadata = OrmFactory.eINSTANCE.createXmlPersistenceUnitMetadata();
-		getXmlEntityMappings().setPersistenceUnitMetadata(persistenceUnitMetadata);
-		assertTrue(persistenceUnitMetadata.isUnset());
-		
-		persistenceUnitMetadata.setXmlMappingMetadataComplete(true);
-		assertFalse(persistenceUnitMetadata.isUnset());
-		
-		persistenceUnitMetadata.setXmlMappingMetadataComplete(false);
-		assertTrue(persistenceUnitMetadata.isUnset());
-		
-		persistenceUnitMetadata.setPersistenceUnitDefaults(OrmFactory.eINSTANCE.createXmlPersistenceUnitDefaults());
-		assertFalse(persistenceUnitMetadata.isUnset());		
-	}
-	
-	public void testUpdateXmlMappingMetadataComplete() throws Exception {
-		PersistenceUnitMetadata persistenceUnitMetadata = getEntityMappings().getPersistenceUnitMetadata();
-		assertFalse(persistenceUnitMetadata.isXmlMappingMetadataComplete());
-		assertNull(getXmlEntityMappings().getPersistenceUnitMetadata());
-		
-		//set xmlMappingMetadataComplete in the resource model, verify context model updated
-		getXmlEntityMappings().setPersistenceUnitMetadata(OrmFactory.eINSTANCE.createXmlPersistenceUnitMetadata());
-		getXmlEntityMappings().getPersistenceUnitMetadata().setXmlMappingMetadataComplete(true);		
-		assertTrue(persistenceUnitMetadata.isXmlMappingMetadataComplete());
-		assertTrue(getXmlEntityMappings().getPersistenceUnitMetadata().isXmlMappingMetadataComplete());
-
-		//set xmlMappingMetadataComplete to null in the resource model
-		getXmlEntityMappings().getPersistenceUnitMetadata().setXmlMappingMetadataComplete(false);
-		assertFalse(persistenceUnitMetadata.isXmlMappingMetadataComplete());
-		assertFalse(getXmlEntityMappings().getPersistenceUnitMetadata().isXmlMappingMetadataComplete());
-	}
-	
-	public void testModifyXmlMappingMetadataComplete() throws Exception {		
-		PersistenceUnitMetadata persistenceUnitMetadata = getEntityMappings().getPersistenceUnitMetadata();
-		assertFalse(persistenceUnitMetadata.isXmlMappingMetadataComplete());
-		assertNull(getXmlEntityMappings().getPersistenceUnitMetadata());
-		
-		//set xmlMappingMetadataComplete in the context model, verify resource model modified
-		persistenceUnitMetadata.setXmlMappingMetadataComplete(true);
-		assertTrue(persistenceUnitMetadata.isXmlMappingMetadataComplete());
-		assertTrue(getXmlEntityMappings().getPersistenceUnitMetadata().isXmlMappingMetadataComplete());
-		
-		//set xmlMappingMetadataComplete to null in the context model
-		persistenceUnitMetadata.setXmlMappingMetadataComplete(false);
-		assertFalse(persistenceUnitMetadata.isXmlMappingMetadataComplete());
-		assertNull(getXmlEntityMappings().getPersistenceUnitMetadata());
-	}
-	
-	public void testModifyXmlMappingMetadataComplete2() throws Exception {
-		PersistenceUnitMetadata persistenceUnitMetadata = getEntityMappings().getPersistenceUnitMetadata();
-		assertFalse(persistenceUnitMetadata.isXmlMappingMetadataComplete());
-		assertNull(getXmlEntityMappings().getPersistenceUnitMetadata());
-		
-		//set xmlMappingMetadataComplete in the context model, verify resource model modified
-		persistenceUnitMetadata.setXmlMappingMetadataComplete(true);
-		assertTrue(persistenceUnitMetadata.isXmlMappingMetadataComplete());
-		assertTrue(getXmlEntityMappings().getPersistenceUnitMetadata().isXmlMappingMetadataComplete());
-		
-		//set xmlMappingMetadataComplete to null in the context model
-		//set another element on the persistence-unit-metadata element so it doesn't get removed
-		getXmlEntityMappings().getPersistenceUnitMetadata().setPersistenceUnitDefaults(OrmFactory.eINSTANCE.createXmlPersistenceUnitDefaults());
-		persistenceUnitMetadata.setXmlMappingMetadataComplete(false);
-		assertFalse(persistenceUnitMetadata.isXmlMappingMetadataComplete());
-		assertFalse(getXmlEntityMappings().getPersistenceUnitMetadata().isXmlMappingMetadataComplete());
-	}
-}
\ No newline at end of file
diff --git a/jpa/tests/org.eclipse.jpt.core.tests/src/org/eclipse/jpt/core/tests/internal/context/persistence/ClassRefTests.java b/jpa/tests/org.eclipse.jpt.core.tests/src/org/eclipse/jpt/core/tests/internal/context/persistence/ClassRefTests.java
deleted file mode 100644
index 3773551..0000000
--- a/jpa/tests/org.eclipse.jpt.core.tests/src/org/eclipse/jpt/core/tests/internal/context/persistence/ClassRefTests.java
+++ /dev/null
@@ -1,112 +0,0 @@
-/*******************************************************************************
- *  Copyright (c) 2007, 2008 Oracle. 
- *  All rights reserved.  This program and the accompanying materials 
- *  are made available under the terms of the Eclipse Public License v1.0 
- *  which accompanies this distribution, and is available at 
- *  http://www.eclipse.org/legal/epl-v10.html
- *  
- *  Contributors: 
- *  	Oracle - initial API and implementation
- *******************************************************************************/
-package org.eclipse.jpt.core.tests.internal.context.persistence;
-
-import org.eclipse.jpt.core.context.persistence.ClassRef;
-import org.eclipse.jpt.core.context.persistence.PersistenceUnit;
-import org.eclipse.jpt.core.resource.persistence.PersistenceFactory;
-import org.eclipse.jpt.core.resource.persistence.XmlJavaClassRef;
-import org.eclipse.jpt.core.resource.persistence.XmlPersistenceUnit;
-import org.eclipse.jpt.core.tests.internal.context.ContextModelTestCase;
-
-public class ClassRefTests extends ContextModelTestCase
-{
-	public ClassRefTests(String name) {
-		super(name);
-	}
-	
-	public void testUpdateClassName() {
-		XmlPersistenceUnit xmlPersistenceUnit = getXmlPersistenceUnit();
-		PersistenceUnit persistenceUnit = getPersistenceUnit();
-		
-		// add class ref
-		XmlJavaClassRef xmlClassRef = PersistenceFactory.eINSTANCE.createXmlJavaClassRef();
-		xmlClassRef.setJavaClass("com.foo.Bar");
-		xmlPersistenceUnit.getClasses().add(xmlClassRef);
-		ClassRef classRef = persistenceUnit.specifiedClassRefs().next();
-		
-		// test that class names are initially equal
-		assertEquals(classRef.getClassName(), xmlClassRef.getJavaClass());
-		
-		// set xml class name to different name, test equality
-		xmlClassRef.setJavaClass("com.bar.Foo");
-		
-		classRef = persistenceUnit.specifiedClassRefs().next();
-		assertEquals(classRef.getClassName(), xmlClassRef.getJavaClass());
-		
-		// set class name to empty string, test equality
-		xmlClassRef.setJavaClass("");
-		
-		classRef = persistenceUnit.specifiedClassRefs().next();
-		assertEquals(classRef.getClassName(), xmlClassRef.getJavaClass());
-		
-		// set name back to non empty string, test equality
-		xmlClassRef.setJavaClass("com.foo.Bar");
-		
-		classRef = persistenceUnit.specifiedClassRefs().next();
-		assertEquals(classRef.getClassName(), xmlClassRef.getJavaClass());
-	}
-	
-	public void testModifyClassName() {
-		XmlPersistenceUnit xmlPersistenceUnit = getXmlPersistenceUnit();
-		PersistenceUnit persistenceUnit = getPersistenceUnit();
-		
-		// add class ref
-		XmlJavaClassRef xmlClassRef = PersistenceFactory.eINSTANCE.createXmlJavaClassRef();
-		xmlClassRef.setJavaClass("com.foo.Bar");
-		xmlPersistenceUnit.getClasses().add(xmlClassRef);
-		ClassRef classRef = persistenceUnit.specifiedClassRefs().next();
-		
-		// test that class names are initially equal
-		assertEquals(classRef.getClassName(), xmlClassRef.getJavaClass());
-		
-		// set context class name to different name, test equality
-		classRef.setClassName("com.bar.Foo");
-		
-		assertEquals(classRef.getClassName(), xmlClassRef.getJavaClass());
-		
-		// set class name to empty string, test equality
-		classRef.setClassName("");
-		
-		assertEquals(classRef.getClassName(), xmlClassRef.getJavaClass());
-		
-		// set class name to null, test equality
-		classRef.setClassName(null);
-		
-		assertEquals(classRef.getClassName(), xmlClassRef.getJavaClass());
-		
-		// set name back to non-null, test equality
-		classRef.setClassName("com.foo.Bar");
-		
-		assertEquals(classRef.getClassName(), xmlClassRef.getJavaClass());
-	}
-	
-	
-	public void testGetPersistentType() throws Exception {
-		createTestType();
-		
-		XmlPersistenceUnit xmlPersistenceUnit = getXmlPersistenceUnit();
-		
-		XmlJavaClassRef xmlClassRef = PersistenceFactory.eINSTANCE.createXmlJavaClassRef();
-		xmlClassRef.setJavaClass(FULLY_QUALIFIED_TYPE_NAME);
-		xmlPersistenceUnit.getClasses().add(xmlClassRef);
-		
-		ClassRef classRef = getSpecifiedClassRef();
-		
-		assertEquals(FULLY_QUALIFIED_TYPE_NAME, classRef.getJavaPersistentType().getName());
-		
-		//test setting to a class that does not exist in the project
-		xmlClassRef.setJavaClass("com.foo.Bar");
-		
-		classRef = getSpecifiedClassRef();		
-		assertNull(classRef.getJavaPersistentType());		
-	}
-}
diff --git a/jpa/tests/org.eclipse.jpt.core.tests/src/org/eclipse/jpt/core/tests/internal/context/persistence/JptCorePersistenceContextModelTests.java b/jpa/tests/org.eclipse.jpt.core.tests/src/org/eclipse/jpt/core/tests/internal/context/persistence/JptCorePersistenceContextModelTests.java
deleted file mode 100644
index daeeb47..0000000
--- a/jpa/tests/org.eclipse.jpt.core.tests/src/org/eclipse/jpt/core/tests/internal/context/persistence/JptCorePersistenceContextModelTests.java
+++ /dev/null
@@ -1,33 +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.context.persistence;
-
-import junit.framework.Test;
-import junit.framework.TestCase;
-import junit.framework.TestSuite;
-
-public class JptCorePersistenceContextModelTests extends TestCase
-{
-	public static Test suite() {
-		TestSuite suite = new TestSuite(JptCorePersistenceContextModelTests.class.getName());
-		suite.addTestSuite(RootContextNodeTests.class);
-		suite.addTestSuite(PersistenceXmlTests.class);
-		suite.addTestSuite(PersistenceTests.class);
-		suite.addTestSuite(PersistenceUnitTests.class);
-		suite.addTestSuite(MappingFileRefTests.class);
-		suite.addTestSuite(ClassRefTests.class);
-		return suite;
-	}
-	
-	private JptCorePersistenceContextModelTests() {
-		throw new UnsupportedOperationException();
-	}
-}
diff --git a/jpa/tests/org.eclipse.jpt.core.tests/src/org/eclipse/jpt/core/tests/internal/context/persistence/MappingFileRefTests.java b/jpa/tests/org.eclipse.jpt.core.tests/src/org/eclipse/jpt/core/tests/internal/context/persistence/MappingFileRefTests.java
deleted file mode 100644
index caadd6c..0000000
--- a/jpa/tests/org.eclipse.jpt.core.tests/src/org/eclipse/jpt/core/tests/internal/context/persistence/MappingFileRefTests.java
+++ /dev/null
@@ -1,97 +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.context.persistence;
-
-import org.eclipse.jpt.core.context.persistence.MappingFileRef;
-import org.eclipse.jpt.core.context.persistence.PersistenceUnit;
-import org.eclipse.jpt.core.resource.persistence.PersistenceFactory;
-import org.eclipse.jpt.core.resource.persistence.XmlMappingFileRef;
-import org.eclipse.jpt.core.resource.persistence.XmlPersistenceUnit;
-import org.eclipse.jpt.core.tests.internal.context.ContextModelTestCase;
-
-public class MappingFileRefTests extends ContextModelTestCase
-{
-	public MappingFileRefTests(String name) {
-		super(name);
-	}
-	
-	protected MappingFileRef mappingFileRef() {
-		return getPersistenceUnit().mappingFileRefs().next();
-	}
-	
-	public void testUpdateFileName() {
-		XmlPersistenceUnit xmlPersistenceUnit = getXmlPersistenceUnit();
-		PersistenceUnit persistenceUnit = getPersistenceUnit();
-		
-		// add mapping file ref
-		XmlMappingFileRef xmlFileRef = PersistenceFactory.eINSTANCE.createXmlMappingFileRef();
-		xmlFileRef.setFileName("foo.xml");
-		xmlPersistenceUnit.getMappingFiles().add(xmlFileRef);
-		MappingFileRef fileRef = persistenceUnit.specifiedMappingFileRefs().next();
-		
-		// test that file names are initially equal
-		assertEquals(fileRef.getFileName(), xmlFileRef.getFileName());
-		
-		// set xml to different file name, test equality
-		xmlFileRef.setFileName("bar.xml");
-		
-		assertEquals(fileRef.getFileName(), xmlFileRef.getFileName());
-		
-		// set file name to empty string, test equality
-		xmlFileRef.setFileName("");
-		
-		assertEquals(fileRef.getFileName(), xmlFileRef.getFileName());
-		
-		// set file name to null, test equality
-		xmlFileRef.setFileName(null);
-		
-		assertEquals(fileRef.getFileName(), xmlFileRef.getFileName());
-		
-		// set file name back to non-null, test equality
-		xmlFileRef.setFileName("baz.xml");
-		
-		assertEquals(fileRef.getFileName(), xmlFileRef.getFileName());
-	}
-	
-	public void testModifyFileName() {
-		XmlPersistenceUnit xmlPersistenceUnit = getXmlPersistenceUnit();
-		PersistenceUnit persistenceUnit = getPersistenceUnit();
-		
-		// add mapping file ref
-		XmlMappingFileRef xmlFileRef = PersistenceFactory.eINSTANCE.createXmlMappingFileRef();
-		xmlFileRef.setFileName("foo.xml");
-		xmlPersistenceUnit.getMappingFiles().add(xmlFileRef);
-		MappingFileRef fileRef = persistenceUnit.specifiedMappingFileRefs().next();
-		
-		// test that file names are initially equal
-		assertEquals(fileRef.getFileName(), xmlFileRef.getFileName());
-		
-		// set context to different file name, test equality
-		fileRef.setFileName("bar.xml");
-		
-		assertEquals(fileRef.getFileName(), xmlFileRef.getFileName());
-		
-		// set file name to empty string, test equality
-		fileRef.setFileName("");
-		
-		assertEquals(fileRef.getFileName(), xmlFileRef.getFileName());
-		
-		// set file name to null, test equality
-		fileRef.setFileName(null);
-		
-		assertEquals(fileRef.getFileName(), xmlFileRef.getFileName());
-		
-		// set file name back to non-null, test equality
-		fileRef.setFileName("baz.xml");
-		
-		assertEquals(fileRef.getFileName(), xmlFileRef.getFileName());
-	}
-}
diff --git a/jpa/tests/org.eclipse.jpt.core.tests/src/org/eclipse/jpt/core/tests/internal/context/persistence/PersistenceTests.java b/jpa/tests/org.eclipse.jpt.core.tests/src/org/eclipse/jpt/core/tests/internal/context/persistence/PersistenceTests.java
deleted file mode 100644
index 5fb73d8..0000000
--- a/jpa/tests/org.eclipse.jpt.core.tests/src/org/eclipse/jpt/core/tests/internal/context/persistence/PersistenceTests.java
+++ /dev/null
@@ -1,134 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.core.tests.internal.context.persistence;
-
-import org.eclipse.jpt.core.context.persistence.Persistence;
-import org.eclipse.jpt.core.resource.persistence.PersistenceFactory;
-import org.eclipse.jpt.core.resource.persistence.XmlPersistence;
-import org.eclipse.jpt.core.resource.persistence.XmlPersistenceUnit;
-import org.eclipse.jpt.core.tests.internal.context.ContextModelTestCase;
-
-@SuppressWarnings("nls")
-public class PersistenceTests extends ContextModelTestCase
-{
-	public PersistenceTests(String name) {
-		super(name);
-	}
-	
-	protected Persistence persistence() {
-		return getRootContextNode().getPersistenceXml().getPersistence();
-	}
-	
-	public void testUpdateAddPersistenceUnit() throws Exception {
-		XmlPersistence xmlPersistence = getXmlPersistence();
-		Persistence persistence = getRootContextNode().getPersistenceXml().getPersistence();
-		
-		// clear xml persistence units, test that it's clear in context
-		xmlPersistence.getPersistenceUnits().clear();
-		
-		assertEquals(0, persistence.persistenceUnitsSize());
-		
-		// add xml persistence unit, test that it's added to context
-		XmlPersistenceUnit xmlPersistenceUnit = PersistenceFactory.eINSTANCE.createXmlPersistenceUnit();
-		xmlPersistenceUnit.setName("test");
-		xmlPersistence.getPersistenceUnits().add(xmlPersistenceUnit);
-		
-		assertEquals(1, persistence.persistenceUnitsSize());
-		
-		// add another, test that it *isn't* add to context
-		xmlPersistenceUnit = PersistenceFactory.eINSTANCE.createXmlPersistenceUnit();
-		xmlPersistenceUnit.setName("test2");
-		xmlPersistence.getPersistenceUnits().add(xmlPersistenceUnit);
-		
-		assertEquals(1, persistence.persistenceUnitsSize());
-	}
-	
-	public void testModifyAddPersistencUnit() {
-		XmlPersistence xmlPersistence = getXmlPersistence();
-		Persistence persistence = persistence();
-		
-		// clear xml persistence units, test that it's clear in context
-		xmlPersistence.getPersistenceUnits().clear();
-		assertEquals(0, persistence.persistenceUnitsSize());
-		
-		// add persistence unit, test that it's added to resource
-		persistence.addPersistenceUnit();
-		
-		assertEquals(1, persistence.persistenceUnitsSize());
-		
-		// add another, test that we get an exception
-		boolean exception = false;
-		try {
-			persistence.addPersistenceUnit();
-		}
-		catch (IllegalStateException e) {
-			exception = true;
-		}
-		
-		assertTrue(exception);
-	}
-	
-	public void testUpdateRemovePersistenceUnit() throws Exception {
-		XmlPersistence xmlPersistence = getXmlPersistence();
-		Persistence persistence = getRootContextNode().getPersistenceXml().getPersistence();
-		
-		// add a persistence unit and test that there are two existing xml and 
-		// one context persistence unit
-		XmlPersistenceUnit xmlPersistenceUnit = PersistenceFactory.eINSTANCE.createXmlPersistenceUnit();
-		xmlPersistenceUnit.setName("test");
-		xmlPersistence.getPersistenceUnits().add(xmlPersistenceUnit);
-		
-		assertEquals(2, xmlPersistence.getPersistenceUnits().size());
-		assertEquals(1, persistence.persistenceUnitsSize());
-		
-		// remove persistence unit from xml, test that context remains unchanged
-		xmlPersistenceUnit = xmlPersistence.getPersistenceUnits().get(0);
-		xmlPersistence.getPersistenceUnits().remove(xmlPersistenceUnit);
-		
-		assertEquals(1, xmlPersistence.getPersistenceUnits().size());
-		assertEquals(1, persistence.persistenceUnitsSize());
-		
-		// remove another one from xml, text that it's now removed from context
-		xmlPersistenceUnit = xmlPersistence.getPersistenceUnits().get(0);
-		xmlPersistence.getPersistenceUnits().remove(xmlPersistenceUnit);
-		
-		assertEquals(0, xmlPersistence.getPersistenceUnits().size());
-		assertEquals(0, persistence.persistenceUnitsSize());
-	}
-	
-	public void testModifyRemovePersistenceUnit() {
-		XmlPersistence xmlPersistence = getXmlPersistence();
-		Persistence persistence = persistence();
-		
-		// add a persistence unit and test that there are two existing xml and 
-		// one context persistence unit
-		XmlPersistenceUnit xmlPersistenceUnit = PersistenceFactory.eINSTANCE.createXmlPersistenceUnit();
-		xmlPersistenceUnit.setName("test");
-		xmlPersistence.getPersistenceUnits().add(xmlPersistenceUnit);
-		
-		assertEquals(2, xmlPersistence.getPersistenceUnits().size());
-		assertEquals(1, persistence.persistenceUnitsSize());
-		
-		// remove persistence unit, test that it's removed from resource and that
-		// a *new* persistence unit representing the previously unrepresented one
-		// is present
-		persistence.removePersistenceUnit(0);
-		
-		assertEquals(1, xmlPersistence.getPersistenceUnits().size());
-		assertEquals(1, persistence.persistenceUnitsSize());
-		
-		// remove new persistence unit, test that it's removed from resource and 
-		// context
-		persistence.removePersistenceUnit(0);
-		
-		assertEquals(0, xmlPersistence.getPersistenceUnits().size());
-		assertEquals(0, persistence.persistenceUnitsSize());
-	}
-}
diff --git a/jpa/tests/org.eclipse.jpt.core.tests/src/org/eclipse/jpt/core/tests/internal/context/persistence/PersistenceUnitTests.java b/jpa/tests/org.eclipse.jpt.core.tests/src/org/eclipse/jpt/core/tests/internal/context/persistence/PersistenceUnitTests.java
deleted file mode 100644
index 4eb8a6f..0000000
--- a/jpa/tests/org.eclipse.jpt.core.tests/src/org/eclipse/jpt/core/tests/internal/context/persistence/PersistenceUnitTests.java
+++ /dev/null
@@ -1,1211 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- *******************************************************************************/
-package org.eclipse.jpt.core.tests.internal.context.persistence;
-
-import java.io.IOException;
-import java.util.Iterator;
-import java.util.ListIterator;
-import org.eclipse.jdt.core.ICompilationUnit;
-import org.eclipse.jpt.core.JptCorePlugin;
-import org.eclipse.jpt.core.MappingKeys;
-import org.eclipse.jpt.core.context.AccessType;
-import org.eclipse.jpt.core.context.java.JavaPersistentType;
-import org.eclipse.jpt.core.context.orm.OrmPersistentType;
-import org.eclipse.jpt.core.context.orm.OrmXml;
-import org.eclipse.jpt.core.context.persistence.ClassRef;
-import org.eclipse.jpt.core.context.persistence.MappingFileRef;
-import org.eclipse.jpt.core.context.persistence.PersistenceUnit;
-import org.eclipse.jpt.core.context.persistence.PersistenceUnitTransactionType;
-import org.eclipse.jpt.core.internal.resource.orm.OrmXmlResourceProvider;
-import org.eclipse.jpt.core.resource.java.JPA;
-import org.eclipse.jpt.core.resource.persistence.PersistenceFactory;
-import org.eclipse.jpt.core.resource.persistence.XmlJavaClassRef;
-import org.eclipse.jpt.core.resource.persistence.XmlMappingFileRef;
-import org.eclipse.jpt.core.resource.persistence.XmlPersistenceUnit;
-import org.eclipse.jpt.core.resource.persistence.XmlPersistenceUnitTransactionType;
-import org.eclipse.jpt.core.resource.persistence.XmlProperties;
-import org.eclipse.jpt.core.resource.persistence.XmlProperty;
-import org.eclipse.jpt.core.resource.xml.JpaXmlResource;
-import org.eclipse.jpt.core.tests.internal.context.ContextModelTestCase;
-import org.eclipse.jpt.utility.internal.iterators.ArrayIterator;
-
-@SuppressWarnings("nls")
-public class PersistenceUnitTests extends ContextModelTestCase
-{
-	
-	protected static final String INNER_CLASS_NAME = "InnerAnnotationTestType";
-	protected static final String FULLY_QUALIFIED_INNER_CLASS_NAME = PACKAGE_NAME + "." + TYPE_NAME + "." + INNER_CLASS_NAME;
-
-	public static final String OTHER_TYPE_NAME = "OtherTestType";
-	public static final String FULLY_QUALIFIED_OTHER_TYPE_NAME = PACKAGE_NAME + "." + OTHER_TYPE_NAME;
-
-
-	public PersistenceUnitTests(String name) {
-		super(name);
-	}
-		
-	public void testUpdateName() {
-		XmlPersistenceUnit xmlPersistenceUnit = getXmlPersistenceUnit();
-		PersistenceUnit persistenceUnit = getPersistenceUnit();
-		
-		// test that names are initially equal
-		assertEquals(xmlPersistenceUnit.getName(), persistenceUnit.getName());
-		
-		// set name to different name, test equality
-		xmlPersistenceUnit.setName("newName");
-		
-		assertEquals(xmlPersistenceUnit.getName(), persistenceUnit.getName());
-		
-		// set name to empty string, test equality
-		xmlPersistenceUnit.setName("");
-		
-		assertEquals(xmlPersistenceUnit.getName(), persistenceUnit.getName());
-		
-		// set name to null, test equality
-		xmlPersistenceUnit.setName(null);
-		
-		assertEquals(xmlPersistenceUnit.getName(), persistenceUnit.getName());
-		
-		// set name back to non-null, test equality
-		xmlPersistenceUnit.setName("newName");
-		
-		assertEquals(xmlPersistenceUnit.getName(), persistenceUnit.getName());
-	}
-	
-	public void testModifyName() {
-		XmlPersistenceUnit xmlPersistenceUnit = getXmlPersistenceUnit();
-		PersistenceUnit persistenceUnit = getPersistenceUnit();
-		
-		// test that names are initially equal
-		assertEquals(xmlPersistenceUnit.getName(), persistenceUnit.getName());
-		
-		// set name to different name, test equality
-		persistenceUnit.setName("newName");
-		
-		assertEquals(xmlPersistenceUnit.getName(), persistenceUnit.getName());
-		
-		// set name to empty string, test equality
-		persistenceUnit.setName("");
-		
-		assertEquals(xmlPersistenceUnit.getName(), persistenceUnit.getName());
-		
-		// set name to null, test equality
-		persistenceUnit.setName(null);
-		
-		assertEquals(xmlPersistenceUnit.getName(), persistenceUnit.getName());
-		
-		// set name back to non-null, test equality
-		persistenceUnit.setName("newName");
-		
-		assertEquals(xmlPersistenceUnit.getName(), persistenceUnit.getName());
-	}
-	
-	public void testUpdateTransactionType() {
-		XmlPersistenceUnit xmlPersistenceUnit = getXmlPersistenceUnit();
-		PersistenceUnit persistenceUnit = getPersistenceUnit();
-		
-		// 1 - initial value is default
-		assertNull(xmlPersistenceUnit.getTransactionType());
-		assertNull(persistenceUnit.getSpecifiedTransactionType());
-		
-		// 2 - set value, context changed
-		xmlPersistenceUnit.setTransactionType(XmlPersistenceUnitTransactionType.JTA);
-		
-		assertEquals(PersistenceUnitTransactionType.JTA, persistenceUnit.getSpecifiedTransactionType());
-		
-		xmlPersistenceUnit.setTransactionType(XmlPersistenceUnitTransactionType.RESOURCE_LOCAL);
-		
-		assertEquals(PersistenceUnitTransactionType.RESOURCE_LOCAL, persistenceUnit.getSpecifiedTransactionType());
-		
-		// 3 - unset value, context changed
-		xmlPersistenceUnit.setTransactionType(null);
-		
-		assertNull(persistenceUnit.getSpecifiedTransactionType());
-	}
-	
-	public void testModifyTransactionType() {
-		XmlPersistenceUnit xmlPersistenceUnit = getXmlPersistenceUnit();
-		PersistenceUnit persistenceUnit = getPersistenceUnit();
-		
-		// 1 - initial value is default
-		assertNull(xmlPersistenceUnit.getTransactionType());
-		assertNull(persistenceUnit.getSpecifiedTransactionType());
-		
-		// 2 - set context value, resource changed
-		persistenceUnit.setSpecifiedTransactionType(PersistenceUnitTransactionType.JTA);
-		
-		assertEquals(XmlPersistenceUnitTransactionType.JTA, xmlPersistenceUnit.getTransactionType());
-		
-		persistenceUnit.setSpecifiedTransactionType(PersistenceUnitTransactionType.RESOURCE_LOCAL);
-		
-		assertEquals(XmlPersistenceUnitTransactionType.RESOURCE_LOCAL, xmlPersistenceUnit.getTransactionType());
-		
-		// 3 - set context value to default, resource unset
-		persistenceUnit.setSpecifiedTransactionType(null);
-		
-		assertNull(persistenceUnit.getSpecifiedTransactionType());
-		assertNull(xmlPersistenceUnit.getTransactionType());
-	}
-	
-	public void testUpdateDescription() {
-		XmlPersistenceUnit xmlPersistenceUnit = getXmlPersistenceUnit();
-		PersistenceUnit persistenceUnit = getPersistenceUnit();
-		
-		// test that descriptions are initially equal
-		assertEquals(xmlPersistenceUnit.getDescription(), persistenceUnit.getDescription());
-		
-		// set description to different description, test equality
-		xmlPersistenceUnit.setDescription("newDescription");
-		
-		assertEquals(xmlPersistenceUnit.getDescription(), persistenceUnit.getDescription());
-		
-		// set description to empty string, test equality
-		xmlPersistenceUnit.setDescription("");
-		
-		assertEquals(xmlPersistenceUnit.getDescription(), persistenceUnit.getDescription());
-		
-		// set description to null, test equality
-		xmlPersistenceUnit.setDescription(null);
-		
-		assertEquals(xmlPersistenceUnit.getDescription(), persistenceUnit.getDescription());
-		
-		// set description back to non-null, test equality
-		xmlPersistenceUnit.setDescription("newDescription");
-		
-		assertEquals(xmlPersistenceUnit.getDescription(), persistenceUnit.getDescription());
-	}
-	
-	public void testModifyDescription() {
-		XmlPersistenceUnit xmlPersistenceUnit = getXmlPersistenceUnit();
-		PersistenceUnit persistenceUnit = getPersistenceUnit();
-		
-		// test that descriptions are initially equal
-		assertEquals(xmlPersistenceUnit.getDescription(), persistenceUnit.getDescription());
-		
-		// set description to different description, test equality
-		persistenceUnit.setDescription("newDescription");
-		
-		assertEquals(xmlPersistenceUnit.getDescription(), persistenceUnit.getDescription());
-		
-		// set description to empty string, test equality
-		persistenceUnit.setDescription("");
-		
-		assertEquals(xmlPersistenceUnit.getDescription(), persistenceUnit.getDescription());
-		
-		// set description to null, test equality
-		persistenceUnit.setDescription(null);
-		
-		assertEquals(xmlPersistenceUnit.getDescription(), persistenceUnit.getDescription());
-		
-		// set description back to non-null, test equality
-		persistenceUnit.setDescription("newDescription");
-		
-		assertEquals(xmlPersistenceUnit.getDescription(), persistenceUnit.getDescription());
-	}
-	
-	public void testUpdateProvider() {
-		XmlPersistenceUnit xmlPersistenceUnit = getXmlPersistenceUnit();
-		PersistenceUnit persistenceUnit = getPersistenceUnit();
-		
-		// test that providers are initially equal
-		assertEquals(xmlPersistenceUnit.getProvider(), persistenceUnit.getProvider());
-		
-		// set provider to different provider, test equality
-		xmlPersistenceUnit.setProvider("newProvider");
-		
-		assertEquals(xmlPersistenceUnit.getProvider(), persistenceUnit.getProvider());
-		
-		// set provider to empty string, test equality
-		xmlPersistenceUnit.setProvider("");
-		
-		assertEquals(xmlPersistenceUnit.getProvider(), persistenceUnit.getProvider());
-		
-		// set provider to null, test equality
-		xmlPersistenceUnit.setProvider(null);
-		
-		assertEquals(xmlPersistenceUnit.getProvider(), persistenceUnit.getProvider());
-		
-		// set provider back to non-null, test equality
-		xmlPersistenceUnit.setProvider("newProvider");
-		
-		assertEquals(xmlPersistenceUnit.getProvider(), persistenceUnit.getProvider());
-	}
-	
-	public void testModifyProvider() {
-		XmlPersistenceUnit xmlPersistenceUnit = getXmlPersistenceUnit();
-		PersistenceUnit persistenceUnit = getPersistenceUnit();
-		
-		// test that providers are initially equal
-		assertEquals(xmlPersistenceUnit.getProvider(), persistenceUnit.getProvider());
-		
-		// set provider to different provider, test equality
-		persistenceUnit.setProvider("newProvider");
-		
-		assertEquals(xmlPersistenceUnit.getProvider(), persistenceUnit.getProvider());
-		
-		// set provider to empty string, test equality
-		persistenceUnit.setProvider("");
-		
-		assertEquals(xmlPersistenceUnit.getProvider(), persistenceUnit.getProvider());
-		
-		// set provider to null, test equality
-		persistenceUnit.setProvider(null);
-		
-		assertEquals(xmlPersistenceUnit.getProvider(), persistenceUnit.getProvider());
-		
-		// set provider back to non-null, test equality
-		persistenceUnit.setProvider("newProvider");
-		
-		assertEquals(xmlPersistenceUnit.getProvider(), persistenceUnit.getProvider());
-	}
-	
-	public void testUpdateJtaDataSource() {
-		XmlPersistenceUnit xmlPersistenceUnit = getXmlPersistenceUnit();
-		PersistenceUnit persistenceUnit = getPersistenceUnit();
-		
-		// test that jtaDataSources are initially equal
-		assertEquals(xmlPersistenceUnit.getJtaDataSource(), persistenceUnit.getJtaDataSource());
-		
-		// set jtaDataSource to different jtaDataSource, test equality
-		xmlPersistenceUnit.setJtaDataSource("newJtaDataSource");
-		
-		assertEquals(xmlPersistenceUnit.getJtaDataSource(), persistenceUnit.getJtaDataSource());
-		
-		// set jtaDataSource to empty string, test equality
-		xmlPersistenceUnit.setJtaDataSource("");
-		
-		assertEquals(xmlPersistenceUnit.getJtaDataSource(), persistenceUnit.getJtaDataSource());
-		
-		// set jtaDataSource to null, test equality
-		xmlPersistenceUnit.setJtaDataSource(null);
-		
-		assertEquals(xmlPersistenceUnit.getJtaDataSource(), persistenceUnit.getJtaDataSource());
-		
-		// set jtaDataSource back to non-null, test equality
-		xmlPersistenceUnit.setJtaDataSource("newJtaDataSource");
-		
-		assertEquals(xmlPersistenceUnit.getJtaDataSource(), persistenceUnit.getJtaDataSource());
-	}
-	
-	public void testModifyJtaDataSource() {
-		XmlPersistenceUnit xmlPersistenceUnit = getXmlPersistenceUnit();
-		PersistenceUnit persistenceUnit = getPersistenceUnit();
-		
-		// test that jtaDataSources are initially equal
-		assertEquals(xmlPersistenceUnit.getJtaDataSource(), persistenceUnit.getJtaDataSource());
-		
-		// set jtaDataSource to different jtaDataSource, test equality
-		persistenceUnit.setJtaDataSource("newJtaDataSource");
-		
-		assertEquals(xmlPersistenceUnit.getJtaDataSource(), persistenceUnit.getJtaDataSource());
-		
-		// set jtaDataSource to empty string, test equality
-		persistenceUnit.setJtaDataSource("");
-		
-		assertEquals(xmlPersistenceUnit.getJtaDataSource(), persistenceUnit.getJtaDataSource());
-		
-		// set jtaDataSource to null, test equality
-		persistenceUnit.setJtaDataSource(null);
-		
-		assertEquals(xmlPersistenceUnit.getJtaDataSource(), persistenceUnit.getJtaDataSource());
-		
-		// set jtaDataSource back to non-null, test equality
-		persistenceUnit.setJtaDataSource("newJtaDataSource");
-		
-		assertEquals(xmlPersistenceUnit.getJtaDataSource(), persistenceUnit.getJtaDataSource());
-	}
-	
-	public void testUpdateNonJtaDataSource() {
-		XmlPersistenceUnit xmlPersistenceUnit = getXmlPersistenceUnit();
-		PersistenceUnit persistenceUnit = getPersistenceUnit();
-		
-		// test that nonJtaDataSources are initially equal
-		assertEquals(xmlPersistenceUnit.getNonJtaDataSource(), persistenceUnit.getNonJtaDataSource());
-		
-		// set nonJtaDataSource to different nonJtaDataSource, test equality
-		xmlPersistenceUnit.setNonJtaDataSource("newNonJtaDataSource");
-		
-		assertEquals(xmlPersistenceUnit.getNonJtaDataSource(), persistenceUnit.getNonJtaDataSource());
-		
-		// set nonJtaDataSource to empty string, test equality
-		xmlPersistenceUnit.setNonJtaDataSource("");
-		
-		assertEquals(xmlPersistenceUnit.getNonJtaDataSource(), persistenceUnit.getNonJtaDataSource());
-		
-		// set nonJtaDataSource to null, test equality
-		xmlPersistenceUnit.setNonJtaDataSource(null);
-		
-		assertEquals(xmlPersistenceUnit.getNonJtaDataSource(), persistenceUnit.getNonJtaDataSource());
-		
-		// set nonJtaDataSource back to non-null, test equality
-		xmlPersistenceUnit.setNonJtaDataSource("newNonJtaDataSource");
-		
-		assertEquals(xmlPersistenceUnit.getNonJtaDataSource(), persistenceUnit.getNonJtaDataSource());
-	}
-	
-	public void testModifyNonJtaDataSource() {
-		XmlPersistenceUnit xmlPersistenceUnit = getXmlPersistenceUnit();
-		PersistenceUnit persistenceUnit = getPersistenceUnit();
-		
-		// test that nonJtaDataSources are initially equal
-		assertEquals(xmlPersistenceUnit.getNonJtaDataSource(), persistenceUnit.getNonJtaDataSource());
-		
-		// set nonJtaDataSource to different nonJtaDataSource, test equality
-		persistenceUnit.setNonJtaDataSource("newNonJtaDataSource");
-		
-		assertEquals(xmlPersistenceUnit.getNonJtaDataSource(), persistenceUnit.getNonJtaDataSource());
-		
-		// set nonJtaDataSource to empty string, test equality
-		persistenceUnit.setNonJtaDataSource("");
-		
-		assertEquals(xmlPersistenceUnit.getNonJtaDataSource(), persistenceUnit.getNonJtaDataSource());
-		
-		// set nonJtaDataSource to null, test equality
-		persistenceUnit.setNonJtaDataSource(null);
-		
-		assertEquals(xmlPersistenceUnit.getNonJtaDataSource(), persistenceUnit.getNonJtaDataSource());
-		
-		// set nonJtaDataSource back to non-null, test equality
-		persistenceUnit.setNonJtaDataSource("newNonJtaDataSource");
-		
-		assertEquals(xmlPersistenceUnit.getNonJtaDataSource(), persistenceUnit.getNonJtaDataSource());
-	}
-	
-	public void testUpdateJarFileRefs1() {
-		// TODO
-	}
-	
-	public void testUpdateJarFileRefs2() {
-		// TODO
-	}
-	
-	public void testUpdateImpliedMappingFileRef1() throws Exception {
-		PersistenceUnit persistenceUnit = getPersistenceUnit();
-		
-		// test that there is one initially
-		JpaXmlResource ormResource = getOrmXmlResource();
-		assertTrue(ormResource.fileExists());
-		assertNotNull(persistenceUnit.getImpliedMappingFileRef());
-		
-		// remove orm.xml
-		deleteResource(ormResource);
-		
-		assertFalse(ormResource.fileExists());
-		assertNull(persistenceUnit.getImpliedMappingFileRef());
-	}
-	
-	public void testUpdateImpliedMappingFileRef2() {
-		XmlPersistenceUnit xmlPersistenceUnit = getXmlPersistenceUnit();
-		PersistenceUnit persistenceUnit = getPersistenceUnit();
-		
-		// test that there is one initially
-		JpaXmlResource ormResource = getOrmXmlResource();
-		assertTrue(ormResource.fileExists());
-		assertNotNull(persistenceUnit.getImpliedMappingFileRef());
-		
-		// add specified orm.xml
-		XmlMappingFileRef xmlMappingFileRef = PersistenceFactory.eINSTANCE.createXmlMappingFileRef();
-		xmlMappingFileRef.setFileName("META-INF/orm.xml");
-		xmlPersistenceUnit.getMappingFiles().add(xmlMappingFileRef);
-		
-		assertEquals(1, persistenceUnit.specifiedMappingFileRefsSize());
-		
-		assertTrue(ormResource.fileExists());
-		assertNull(persistenceUnit.getImpliedMappingFileRef());
-	}
-	
-	public void testUpdateSpecifiedMappingFileRefs1() {
-		XmlPersistenceUnit xmlPersistenceUnit = getXmlPersistenceUnit();
-		PersistenceUnit persistenceUnit = getPersistenceUnit();
-		
-		// test there are none initially
-		assertEquals(0, xmlPersistenceUnit.getMappingFiles().size());
-		assertEquals(0, persistenceUnit.specifiedMappingFileRefsSize());
-		
-		// add mapping file ref, test that it's added to context
-		XmlMappingFileRef xmlMappingFileRef = PersistenceFactory.eINSTANCE.createXmlMappingFileRef();
-		xmlMappingFileRef.setFileName("orm.xml");
-		xmlPersistenceUnit.getMappingFiles().add(xmlMappingFileRef);
-		
-		assertEquals(1, persistenceUnit.specifiedMappingFileRefsSize());
-		
-		// add another ...
-		xmlMappingFileRef = PersistenceFactory.eINSTANCE.createXmlMappingFileRef();
-		xmlMappingFileRef.setFileName("orm2.xml");
-		xmlPersistenceUnit.getMappingFiles().add(xmlMappingFileRef);
-		
-		assertEquals(2, persistenceUnit.specifiedMappingFileRefsSize());
-	}
-	
-	public void testUpdateSpecifiedMappingFileRefs2() {
-		XmlPersistenceUnit xmlPersistenceUnit = getXmlPersistenceUnit();
-		PersistenceUnit persistenceUnit = getPersistenceUnit();
-		
-		// add two mapping file refs and test that there are two existing in xml and context
-		XmlMappingFileRef xmlMappingFileRef = PersistenceFactory.eINSTANCE.createXmlMappingFileRef();
-		xmlMappingFileRef.setFileName("orm.xml");
-		xmlPersistenceUnit.getMappingFiles().add(xmlMappingFileRef);
-		xmlMappingFileRef = PersistenceFactory.eINSTANCE.createXmlMappingFileRef();
-		xmlMappingFileRef.setFileName("orm2.xml");
-		xmlPersistenceUnit.getMappingFiles().add(xmlMappingFileRef);
-		
-		assertEquals(xmlPersistenceUnit.getMappingFiles().size(), 2);
-		assertEquals(2, persistenceUnit.specifiedMappingFileRefsSize());
-		
-		// remove mapping file ref from xml, test that it's removed from context
-		xmlMappingFileRef = xmlPersistenceUnit.getMappingFiles().get(0);
-		xmlPersistenceUnit.getMappingFiles().remove(xmlMappingFileRef);
-		
-		assertEquals(1, persistenceUnit.specifiedMappingFileRefsSize());
-		
-		// remove another one ...
-		xmlMappingFileRef = xmlPersistenceUnit.getMappingFiles().get(0);
-		xmlPersistenceUnit.getMappingFiles().remove(xmlMappingFileRef);
-		
-		assertEquals(0, persistenceUnit.specifiedMappingFileRefsSize());
-	}
-	
-	public void testModifySpecifiedMappingFileRefs1() {
-		XmlPersistenceUnit xmlPersistenceUnit = getXmlPersistenceUnit();
-		PersistenceUnit persistenceUnit = getPersistenceUnit();
-		
-		// test there are none initially
-		assertEquals(0, xmlPersistenceUnit.getMappingFiles().size());
-		assertEquals(0, persistenceUnit.specifiedMappingFileRefsSize());
-		
-		// add mapping file ref, test that it's added to resource
-		persistenceUnit.addSpecifiedMappingFileRef().setFileName("foo");
-		
-		assertEquals(1, xmlPersistenceUnit.getMappingFiles().size());
-		assertEquals("foo", xmlPersistenceUnit.getMappingFiles().get(0).getFileName());
-		
-		// add another ...
-		persistenceUnit.addSpecifiedMappingFileRef().setFileName("bar");
-		assertEquals("foo", xmlPersistenceUnit.getMappingFiles().get(0).getFileName());
-		assertEquals("bar", xmlPersistenceUnit.getMappingFiles().get(1).getFileName());
-		
-		assertEquals(2, xmlPersistenceUnit.getMappingFiles().size());
-		
-		// add another, testing order
-		persistenceUnit.addSpecifiedMappingFileRef(0).setFileName("baz");
-		assertEquals(3, xmlPersistenceUnit.getMappingFiles().size());
-		assertEquals("baz", xmlPersistenceUnit.getMappingFiles().get(0).getFileName());
-		assertEquals("foo", xmlPersistenceUnit.getMappingFiles().get(1).getFileName());
-		assertEquals("bar", xmlPersistenceUnit.getMappingFiles().get(2).getFileName());
-	}
-	
-	public void testModifySpecifiedMappingFileRefs2() {
-		XmlPersistenceUnit xmlPersistenceUnit = getXmlPersistenceUnit();
-		PersistenceUnit persistenceUnit = getPersistenceUnit();
-		
-		// add two mapping file refs and test that there are two existing in xml and context
-		XmlMappingFileRef xmlMappingFileRef = PersistenceFactory.eINSTANCE.createXmlMappingFileRef();
-		xmlMappingFileRef.setFileName("orm.xml");
-		xmlPersistenceUnit.getMappingFiles().add(xmlMappingFileRef);
-		xmlMappingFileRef = PersistenceFactory.eINSTANCE.createXmlMappingFileRef();
-		xmlMappingFileRef.setFileName("orm2.xml");
-		xmlPersistenceUnit.getMappingFiles().add(xmlMappingFileRef);
-		
-		assertEquals(2, xmlPersistenceUnit.getMappingFiles().size());
-		assertEquals(2, persistenceUnit.specifiedMappingFileRefsSize());
-		
-		// remove mapping file ref from context, test that it's removed from xml
-		persistenceUnit.removeSpecifiedMappingFileRef(0);
-		
-		assertEquals(1, xmlPersistenceUnit.getMappingFiles().size());
-			
-		// remove another one ...
-		persistenceUnit.removeSpecifiedMappingFileRef(0);
-		
-		assertEquals(0, xmlPersistenceUnit.getMappingFiles().size());
-	}
-	
-	public void testUpdateClassRefs1() {
-		XmlPersistenceUnit xmlPersistenceUnit = getXmlPersistenceUnit();
-		PersistenceUnit persistenceUnit = getPersistenceUnit();
-		
-		// test there are none initially
-		assertEquals(0, xmlPersistenceUnit.getClasses().size());
-		assertEquals(0, persistenceUnit.specifiedClassRefsSize());
-		
-		// add mapping file ref, test that it's added to context
-		XmlJavaClassRef xmlClassRef = PersistenceFactory.eINSTANCE.createXmlJavaClassRef();
-		xmlClassRef.setJavaClass("com.foo.Bar");
-		xmlPersistenceUnit.getClasses().add(xmlClassRef);
-		
-		assertEquals(1, persistenceUnit.specifiedClassRefsSize());
-		
-		// add another ...
-		xmlClassRef = PersistenceFactory.eINSTANCE.createXmlJavaClassRef();
-		xmlClassRef.setJavaClass("com.foo.Baz");
-		xmlPersistenceUnit.getClasses().add(xmlClassRef);
-		
-		assertEquals(2, persistenceUnit.specifiedClassRefsSize());
-	}
-	
-	public void testUpdateClassRefs2() {
-		XmlPersistenceUnit xmlPersistenceUnit = getXmlPersistenceUnit();
-		PersistenceUnit persistenceUnit = getPersistenceUnit();
-		
-		// add two class refs and test that there are two existing in xml and context
-		XmlJavaClassRef xmlClassRef = PersistenceFactory.eINSTANCE.createXmlJavaClassRef();
-		xmlClassRef.setJavaClass("com.foo.Bar");
-		xmlPersistenceUnit.getClasses().add(xmlClassRef);
-		xmlClassRef = PersistenceFactory.eINSTANCE.createXmlJavaClassRef();
-		xmlClassRef.setJavaClass("com.foo.Baz");
-		xmlPersistenceUnit.getClasses().add(xmlClassRef);
-		
-		assertEquals(2, xmlPersistenceUnit.getClasses().size());
-		assertEquals(2, persistenceUnit.specifiedClassRefsSize());
-		
-		// remove class ref from xml, test that it's removed from context
-		xmlClassRef = xmlPersistenceUnit.getClasses().get(0);
-		xmlPersistenceUnit.getClasses().remove(xmlClassRef);
-		
-		assertEquals(1, persistenceUnit.specifiedClassRefsSize());
-		
-		// remove another one ...
-		xmlClassRef = xmlPersistenceUnit.getClasses().get(0);
-		xmlPersistenceUnit.getClasses().remove(xmlClassRef);
-		
-		assertEquals(0, persistenceUnit.specifiedClassRefsSize());
-	}
-	
-	public void testModifyClassRefs1() {
-		XmlPersistenceUnit xmlPersistenceUnit = getXmlPersistenceUnit();
-		PersistenceUnit persistenceUnit = getPersistenceUnit();
-		
-		// test there are none initially
-		assertEquals(0, xmlPersistenceUnit.getClasses().size());
-		assertEquals(0, persistenceUnit.specifiedClassRefsSize());
-		
-		// add class ref, test that it's added to context
-		persistenceUnit.addSpecifiedClassRef().setClassName("Foo");
-		
-		try {
-			getPersistenceXmlResource().save(null);
-		}
-		catch (IOException e) {
-			// TODO Auto-generated catch block
-			e.printStackTrace();
-		}
-		assertEquals(1, xmlPersistenceUnit.getClasses().size());
-		assertEquals("Foo", xmlPersistenceUnit.getClasses().get(0).getJavaClass());
-	
-		// add another ...
-		persistenceUnit.addSpecifiedClassRef().setClassName("Bar");
-		
-		assertEquals(2, xmlPersistenceUnit.getClasses().size());
-		assertEquals("Foo", xmlPersistenceUnit.getClasses().get(0).getJavaClass());
-		assertEquals("Bar", xmlPersistenceUnit.getClasses().get(1).getJavaClass());
-	
-		
-		persistenceUnit.addSpecifiedClassRef(0).setClassName("Baz");
-		
-		assertEquals(3, xmlPersistenceUnit.getClasses().size());
-		assertEquals("Baz", xmlPersistenceUnit.getClasses().get(0).getJavaClass());
-		assertEquals("Foo", xmlPersistenceUnit.getClasses().get(1).getJavaClass());
-		assertEquals("Bar", xmlPersistenceUnit.getClasses().get(2).getJavaClass());
-	}
-	
-	public void testModifyClassRefs2() {
-		XmlPersistenceUnit xmlPersistenceUnit = getXmlPersistenceUnit();
-		PersistenceUnit persistenceUnit = getPersistenceUnit();
-		
-		// add two class refs and test that there are two existing in xml and context
-		XmlJavaClassRef xmlClassRef = PersistenceFactory.eINSTANCE.createXmlJavaClassRef();
-		xmlClassRef.setJavaClass("com.foo.Bar");
-		xmlPersistenceUnit.getClasses().add(xmlClassRef);
-		xmlClassRef = PersistenceFactory.eINSTANCE.createXmlJavaClassRef();
-		xmlClassRef.setJavaClass("com.foo.Baz");
-		xmlPersistenceUnit.getClasses().add(xmlClassRef);
-		
-		assertEquals(2, xmlPersistenceUnit.getClasses().size());
-		assertEquals(2, persistenceUnit.specifiedClassRefsSize());
-		
-		// remove class ref from context, test that it's removed from xml
-		persistenceUnit.removeSpecifiedClassRef(0);
-		
-		assertEquals(1, xmlPersistenceUnit.getClasses().size());
-		
-		// remove another one ...
-		persistenceUnit.removeSpecifiedClassRef(0);
-		
-		assertEquals(0, xmlPersistenceUnit.getClasses().size());
-	}
-
-	public void testImpliedClassRefs() throws Exception {
-		createTestEntityWithPersistentInnerClass();
-		Iterator<ClassRef> classRefs = getPersistenceUnit().impliedClassRefs();
-		assertEquals(FULLY_QUALIFIED_TYPE_NAME, classRefs.next().getClassName());
-		assertEquals(FULLY_QUALIFIED_INNER_CLASS_NAME, classRefs.next().getClassName());
-		
-		getJpaProject().setDiscoversAnnotatedClasses(true);
-		classRefs = getPersistenceUnit().impliedClassRefs();
-		assertEquals(FULLY_QUALIFIED_TYPE_NAME, classRefs.next().getClassName());
-		assertEquals(FULLY_QUALIFIED_INNER_CLASS_NAME, classRefs.next().getClassName());
-		
-		addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
-		classRefs = getPersistenceUnit().impliedClassRefs();
-		assertEquals(FULLY_QUALIFIED_INNER_CLASS_NAME, classRefs.next().getClassName());
-		assertFalse(classRefs.hasNext());
-		
-		
-		removeXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
-		classRefs = getPersistenceUnit().impliedClassRefs();
-		assertEquals(FULLY_QUALIFIED_INNER_CLASS_NAME, classRefs.next().getClassName());
-		assertEquals(FULLY_QUALIFIED_TYPE_NAME, classRefs.next().getClassName());
-		
-		getEntityMappings().addPersistentType(MappingKeys.ENTITY_TYPE_MAPPING_KEY, FULLY_QUALIFIED_TYPE_NAME);
-		classRefs = getPersistenceUnit().impliedClassRefs();
-		assertEquals(FULLY_QUALIFIED_INNER_CLASS_NAME, classRefs.next().getClassName());
-		assertFalse(classRefs.hasNext());
-		
-		addXmlClassRef(FULLY_QUALIFIED_INNER_CLASS_NAME);
-		classRefs = getPersistenceUnit().impliedClassRefs();
-		assertFalse(classRefs.hasNext());
-		
-		removeXmlClassRef(FULLY_QUALIFIED_INNER_CLASS_NAME);
-		classRefs = getPersistenceUnit().impliedClassRefs();
-		assertEquals(FULLY_QUALIFIED_INNER_CLASS_NAME, classRefs.next().getClassName());
-		assertFalse(classRefs.hasNext());
-
-		getEntityMappings().addPersistentType(MappingKeys.ENTITY_TYPE_MAPPING_KEY, FULLY_QUALIFIED_INNER_CLASS_NAME);
-		classRefs = getPersistenceUnit().impliedClassRefs();
-		assertFalse(classRefs.hasNext());
-	}
-	
-	public void testRenamePersistentTypeImpliedClassRefs() throws Exception {
-		getJavaProject().getJpaProject().setDiscoversAnnotatedClasses(true);
-		ICompilationUnit testType = createTestEntity();
-		@SuppressWarnings("unused")
-		ICompilationUnit otherTestType = this.createTestOtherTypeEntity();
-		
-		Iterator<ClassRef> classRefs = getPersistenceUnit().impliedClassRefs();
-		ClassRef testTypeClassRef = classRefs.next();
-		ClassRef otherTestTypeClassRef = classRefs.next();
-		
-		assertEquals(FULLY_QUALIFIED_TYPE_NAME, testTypeClassRef.getClassName());
-		assertEquals(FULLY_QUALIFIED_OTHER_TYPE_NAME, otherTestTypeClassRef.getClassName());
-		
-		JavaPersistentType testJavaPersistentType = testTypeClassRef.getJavaPersistentType();
-		JavaPersistentType otherTestJavaPersistentType = otherTestTypeClassRef.getJavaPersistentType();
-		
-		testType.findPrimaryType().rename("TestType2", false, null);
-		
-		classRefs = getPersistenceUnit().impliedClassRefs();
-		otherTestTypeClassRef = classRefs.next();
-		testTypeClassRef = classRefs.next();
-		
-		assertEquals(FULLY_QUALIFIED_OTHER_TYPE_NAME, otherTestTypeClassRef.getClassName());
-		assertEquals("test.TestType2", testTypeClassRef.getClassName());
-		
-		assertEquals(otherTestJavaPersistentType, otherTestTypeClassRef.getJavaPersistentType());
-		assertNotSame(testJavaPersistentType, testTypeClassRef.getJavaPersistentType());
-	}
-	
-	public void testUpdateExcludeUnlistedClasses() throws Exception {
-		XmlPersistenceUnit xmlPersistenceUnit = getXmlPersistenceUnit();
-		PersistenceUnit persistenceUnit = getPersistenceUnit();
-		
-		// 1 - initial value is default
-		assertNull(persistenceUnit.getSpecifiedExcludeUnlistedClasses());
-		assertFalse(persistenceUnit.excludesUnlistedClasses());
-		assertNull(xmlPersistenceUnit.getExcludeUnlistedClasses());
-		
-		// 2 - set value, context changed
-		xmlPersistenceUnit.setExcludeUnlistedClasses(Boolean.TRUE);
-		
-		assertEquals(Boolean.TRUE, persistenceUnit.getSpecifiedExcludeUnlistedClasses());
-		assertTrue(persistenceUnit.excludesUnlistedClasses());
-		assertEquals(Boolean.TRUE, xmlPersistenceUnit.getExcludeUnlistedClasses());
-		
-		xmlPersistenceUnit.setExcludeUnlistedClasses(Boolean.FALSE);
-		
-		assertEquals(Boolean.FALSE, persistenceUnit.getSpecifiedExcludeUnlistedClasses());
-		assertFalse(persistenceUnit.excludesUnlistedClasses());
-		assertEquals(Boolean.FALSE, xmlPersistenceUnit.getExcludeUnlistedClasses());
-		
-		// 3 - unset value, context changed
-		xmlPersistenceUnit.setExcludeUnlistedClasses(null);
-		
-		assertNull(persistenceUnit.getSpecifiedExcludeUnlistedClasses());
-		assertFalse(persistenceUnit.excludesUnlistedClasses());
-		assertNull(xmlPersistenceUnit.getExcludeUnlistedClasses());
-	}
-	
-	public void testModifyExcludeUnlistedClasses() {
-		XmlPersistenceUnit xmlPersistenceUnit = getXmlPersistenceUnit();
-		PersistenceUnit persistenceUnit = getPersistenceUnit();
-		
-		// 1 - initial value is default
-		assertNull(persistenceUnit.getSpecifiedExcludeUnlistedClasses());
-		assertFalse(persistenceUnit.excludesUnlistedClasses());
-		assertNull(xmlPersistenceUnit.getExcludeUnlistedClasses());
-		
-		// 2 - set value, resource changed
-		persistenceUnit.setSpecifiedExcludeUnlistedClasses(Boolean.TRUE);
-		
-		assertEquals(Boolean.TRUE, persistenceUnit.getSpecifiedExcludeUnlistedClasses());
-		assertTrue(persistenceUnit.excludesUnlistedClasses());
-		assertEquals(Boolean.TRUE, xmlPersistenceUnit.getExcludeUnlistedClasses());
-		
-		persistenceUnit.setSpecifiedExcludeUnlistedClasses(Boolean.FALSE);
-		
-		assertEquals(Boolean.FALSE, persistenceUnit.getSpecifiedExcludeUnlistedClasses());
-		assertFalse(persistenceUnit.excludesUnlistedClasses());
-		assertEquals(Boolean.FALSE, xmlPersistenceUnit.getExcludeUnlistedClasses());
-		
-		// 3 - set context to default, resource unset
-		persistenceUnit.setSpecifiedExcludeUnlistedClasses(null);
-		
-		assertNull(persistenceUnit.getSpecifiedExcludeUnlistedClasses());
-		assertFalse(persistenceUnit.excludesUnlistedClasses());
-		assertNull(xmlPersistenceUnit.getExcludeUnlistedClasses());
-	}
-	
-	public void testUpdateProperties1() {
-		XmlPersistenceUnit xmlPersistenceUnit = getXmlPersistenceUnit();
-		PersistenceUnit persistenceUnit = getPersistenceUnit();
-		
-		// test there are none initially
-		assertNull(xmlPersistenceUnit.getProperties());
-		assertEquals(0, persistenceUnit.propertiesSize());
-		
-		// add "properties", test that there's no real change to context
-		XmlProperties xmlProperties = PersistenceFactory.eINSTANCE.createXmlProperties();
-		xmlPersistenceUnit.setProperties(xmlProperties);
-		assertEquals(0, persistenceUnit.propertiesSize());
-		
-		// add property, test that it's added to context
-		XmlProperty xmlProperty = PersistenceFactory.eINSTANCE.createXmlProperty();
-		xmlProperty.setName("foo");
-		xmlProperty.setValue("bar");
-		xmlProperties.getProperties().add(xmlProperty);
-		
-		assertEquals(1, persistenceUnit.propertiesSize());
-		
-		// add another ...
-		xmlProperty = PersistenceFactory.eINSTANCE.createXmlProperty();
-		xmlProperty.setName("FOO");
-		xmlProperty.setValue("BAR");
-		xmlProperties.getProperties().add(xmlProperty);
-		
-		assertEquals(2, persistenceUnit.propertiesSize());
-	}
-	
-	public void testUpdateProperties2() {
-		XmlPersistenceUnit xmlPersistenceUnit = getXmlPersistenceUnit();
-		PersistenceUnit persistenceUnit = getPersistenceUnit();
-		
-		// add two properties and test that there are two existing in xml and context
-		XmlProperties xmlProperties = PersistenceFactory.eINSTANCE.createXmlProperties();
-		xmlPersistenceUnit.setProperties(xmlProperties);
-		XmlProperty xmlProperty = PersistenceFactory.eINSTANCE.createXmlProperty();
-		xmlProperty.setName("foo");
-		xmlProperty.setValue("bar");
-		xmlProperties.getProperties().add(xmlProperty);
-		xmlProperty = PersistenceFactory.eINSTANCE.createXmlProperty();
-		xmlProperty.setName("FOO");
-		xmlProperty.setValue("BAR");
-		xmlProperties.getProperties().add(xmlProperty);
-		
-		assertEquals(2, xmlPersistenceUnit.getProperties().getProperties().size());
-		assertEquals(2, persistenceUnit.propertiesSize());
-		
-		// remove property from xml, test that it's removed from context
-		xmlProperty = xmlProperties.getProperties().get(0);
-		xmlProperties.getProperties().remove(xmlProperty);
-		
-		assertEquals(1, persistenceUnit.propertiesSize());
-		
-		// remove another one ...
-		xmlProperty = xmlProperties.getProperties().get(0);
-		xmlProperties.getProperties().remove(xmlProperty);
-		
-		assertEquals(0, persistenceUnit.propertiesSize());
-	}
-	
-	public void testModifyProperties1() {
-		XmlPersistenceUnit xmlPersistenceUnit = getXmlPersistenceUnit();
-		PersistenceUnit persistenceUnit = getPersistenceUnit();
-		
-		// test there are none initially
-		assertNull(xmlPersistenceUnit.getProperties());
-		assertEquals(0, persistenceUnit.propertiesSize());
-		
-		// add property, test that it's added to resource
-		persistenceUnit.addProperty().setName("foo");
-		
-		assertNotNull(xmlPersistenceUnit.getProperties());
-		assertEquals(1, xmlPersistenceUnit.getProperties().getProperties().size());
-		assertEquals("foo", xmlPersistenceUnit.getProperties().getProperties().get(0).getName());
-		
-		// add another ...
-		persistenceUnit.addProperty().setName("bar");
-		
-		assertEquals(2, xmlPersistenceUnit.getProperties().getProperties().size());
-		assertEquals("foo", xmlPersistenceUnit.getProperties().getProperties().get(0).getName());
-		assertEquals("bar", xmlPersistenceUnit.getProperties().getProperties().get(1).getName());
-
-		// add another testing order
-		persistenceUnit.addProperty(0).setName("baz");
-		
-		assertEquals(3, xmlPersistenceUnit.getProperties().getProperties().size());
-		assertEquals("baz", xmlPersistenceUnit.getProperties().getProperties().get(0).getName());
-		assertEquals("foo", xmlPersistenceUnit.getProperties().getProperties().get(1).getName());
-		assertEquals("bar", xmlPersistenceUnit.getProperties().getProperties().get(2).getName());
-	}
-	
-	public void testModifyProperties2() {
-		XmlPersistenceUnit xmlPersistenceUnit = getXmlPersistenceUnit();
-		PersistenceUnit persistenceUnit = getPersistenceUnit();
-		
-		// add two properties and test that there are two existing in xml and context
-		XmlProperties xmlProperties = PersistenceFactory.eINSTANCE.createXmlProperties();
-		xmlPersistenceUnit.setProperties(xmlProperties);
-		XmlProperty xmlProperty = PersistenceFactory.eINSTANCE.createXmlProperty();
-		xmlProperty.setName("foo");
-		xmlProperty.setValue("bar");
-		xmlProperties.getProperties().add(xmlProperty);
-		xmlProperty = PersistenceFactory.eINSTANCE.createXmlProperty();
-		xmlProperty.setName("FOO");
-		xmlProperty.setValue("BAR");
-		xmlProperties.getProperties().add(xmlProperty);
-		
-		assertEquals(2, xmlPersistenceUnit.getProperties().getProperties().size());
-		assertEquals(2, persistenceUnit.propertiesSize());
-		
-		// remove property from context, test that it's removed from resource
-		persistenceUnit.removeProperty("foo");
-		
-		assertEquals(1, xmlPersistenceUnit.getProperties().getProperties().size());
-		
-		// remove another one.  test that properties object is nulled
-		persistenceUnit.removeProperty("FOO", "BAR");
-		
-		assertNull(xmlPersistenceUnit.getProperties());
-	}
-	
-	public void testModifyProperties3() {
-		XmlPersistenceUnit xmlPersistenceUnit = getXmlPersistenceUnit();
-		PersistenceUnit persistenceUnit = getPersistenceUnit();
-		
-		// add two properties and test that there are two existing in xml and context
-		persistenceUnit.setProperty("foo", "bar", false);
-		persistenceUnit.setProperty("FOO", "BAR", false);
-		
-		assertEquals(2, xmlPersistenceUnit.getProperties().getProperties().size());
-		assertEquals(2, persistenceUnit.propertiesSize());
-		
-		// remove property from context, test that it's removed from resource
-		persistenceUnit.removeProperty("foo", "bar");
-		
-		assertEquals(1, xmlPersistenceUnit.getProperties().getProperties().size());
-		
-		// remove another one, test that properties object is nulled
-		persistenceUnit.removeProperty("FOO");
-		
-		assertNull(xmlPersistenceUnit.getProperties());
-	}
-	
-	public void testModifyProperties4() {
-		XmlPersistenceUnit xmlPersistenceUnit = getXmlPersistenceUnit();
-		PersistenceUnit persistenceUnit = getPersistenceUnit();
-		
-		// add two properties and test that there are two existing in xml and context
-		persistenceUnit.setProperty("foo", "bar", false);
-		persistenceUnit.setProperty("FOO", "BAR", false);
-		
-		assertEquals(2, xmlPersistenceUnit.getProperties().getProperties().size());
-		assertEquals(2, persistenceUnit.propertiesSize());
-		
-		// modify a property, test its value
-		persistenceUnit.setProperty("foo", "", false);
-		assertEquals("", persistenceUnit.getProperty("foo").getValue());
-
-		persistenceUnit.setProperty("foo", "BAR", false);
-		assertEquals("BAR", persistenceUnit.getProperty("foo").getValue());
-		
-		// remove property from context, test that it's removed from resource
-		persistenceUnit.removeProperty("FOO");
-		assertNull(persistenceUnit.getProperty("FOO"));
-		assertEquals(1, xmlPersistenceUnit.getProperties().getProperties().size());
-
-		// remove by setting value to null, test that properties object is nulled
-		persistenceUnit.setProperty("notExist", null, false);
-		assertNull(persistenceUnit.getProperty("notExist"));
-
-		persistenceUnit.setProperty("foo", null, false);
-		assertNull(persistenceUnit.getProperty("foo"));
-		assertNull(xmlPersistenceUnit.getProperties());
-	}
-	
-	public void testModifyProperties5() {
-		XmlPersistenceUnit xmlPersistenceUnit = getXmlPersistenceUnit();
-		PersistenceUnit persistenceUnit = getPersistenceUnit();
-		
-		// testing duplicate keys, add four properties and test that there are four existing in xml and context
-		persistenceUnit.setProperty("FOO", "BAR", false);
-		persistenceUnit.setProperty("foo", "bar 3", true);
-		persistenceUnit.setProperty("foo", "bar 2", true);
-		persistenceUnit.setProperty("foo", "bar 1", true);
-		
-		assertEquals(4, xmlPersistenceUnit.getProperties().getProperties().size());
-		assertEquals(4, persistenceUnit.propertiesSize());
-		
-		// remove a property, test that there are four existing in xml and context
-		persistenceUnit.removeProperty("foo", "bar 1");
-		assertEquals(3, xmlPersistenceUnit.getProperties().getProperties().size());
-		assertEquals(3, persistenceUnit.propertiesSize());
-	}
-	
-	public void testAccessProperty() {
-		PersistenceUnit persistenceUnit = getPersistenceUnit();
-		
-		// add two properties and try to access it.
-		persistenceUnit.setProperty("foo", "bar", false);
-		persistenceUnit.setProperty("FOO", "BAR", false);
-		
-		PersistenceUnit.Property property = persistenceUnit.getProperty("foo");
-		assertNotNull(property);
-		assertEquals("bar", property.getValue());
-		assertNotNull(persistenceUnit.getProperty("FOO"));
-		assertEquals("BAR", persistenceUnit.getProperty("FOO").getValue());
-		assertNull(persistenceUnit.getProperty("notExist"));
-	}
-	
-	private PersistenceUnit.Property persistenceUnitFirstProperty() {
-		return getPersistenceUnit().properties().next();
-	}
-
-	public void testUpdatePropertyName() {
-		XmlPersistenceUnit xmlPersistenceUnit = getXmlPersistenceUnit();
-		
-		// add property for testing
-		XmlProperties xmlProperties = PersistenceFactory.eINSTANCE.createXmlProperties();
-		xmlPersistenceUnit.setProperties(xmlProperties);
-		XmlProperty xmlProperty = PersistenceFactory.eINSTANCE.createXmlProperty();
-		xmlProperties.getProperties().add(xmlProperty);
-		
-		// test that names are initially equal
-		assertEquals(xmlProperty.getName(), persistenceUnitFirstProperty().getName());
-		
-		// set name to different name, test equality
-		xmlProperty.setName("newName");
-
-		assertEquals(xmlProperty.getName(), persistenceUnitFirstProperty().getName());
-		
-		// set name to empty string, test equality
-		xmlProperty.setName("");
-
-		assertEquals(xmlProperty.getName(), persistenceUnitFirstProperty().getName());
-		
-		// set name back to non-null, test equality
-		xmlProperty.setName("newName");
-
-		assertEquals(xmlProperty.getName(), persistenceUnitFirstProperty().getName());
-	}
-	
-	public void testUpdatePropertyValue() {
-		XmlPersistenceUnit xmlPersistenceUnit = getXmlPersistenceUnit();
-		
-		// add property for testing
-		XmlProperties xmlProperties = PersistenceFactory.eINSTANCE.createXmlProperties();
-		xmlPersistenceUnit.setProperties(xmlProperties);
-		XmlProperty xmlProperty = PersistenceFactory.eINSTANCE.createXmlProperty();
-		xmlProperties.getProperties().add(xmlProperty);
-		
-		// test that values are initially equal
-		assertEquals(xmlProperty.getValue(), persistenceUnitFirstProperty().getValue());
-		
-		// set value to different value, test equality
-		xmlProperty.setValue("newValue");
-		
-		assertEquals(xmlProperty.getValue(), persistenceUnitFirstProperty().getValue());
-		
-		// set value to empty string, test equality
-		xmlProperty.setValue("");
-		
-		assertEquals(xmlProperty.getValue(), persistenceUnitFirstProperty().getValue());
-		
-		// set value to null, test equality
-		xmlProperty.setValue(null);
-		
-		assertEquals(xmlProperty.getValue(), persistenceUnitFirstProperty().getValue());
-		
-		// set value back to non-null, test equality
-		xmlProperty.setValue("newValue");
-		
-		assertEquals(xmlProperty.getValue(), persistenceUnitFirstProperty().getValue());
-	}	
-	
-	public void testGetDefaultAccess() throws Exception {
-		addXmlMappingFileRef(JptCorePlugin.DEFAULT_ORM_XML_FILE_PATH);
-		createOrm2XmlFile();
-		PersistenceUnit persistenceUnit = getPersistenceUnit();
-		ListIterator<MappingFileRef> mappingFileRefs = getPersistenceUnit().mappingFileRefs();
-		OrmXml ormMappingFile = (OrmXml) mappingFileRefs.next().getMappingFile();
-		OrmXml orm2MappingFile = (OrmXml) mappingFileRefs.next().getMappingFile();
-		
-		assertEquals(null, persistenceUnit.getDefaultAccess());
-		
-		ormMappingFile.getEntityMappings().getPersistenceUnitMetadata().getPersistenceUnitDefaults().setAccess(AccessType.PROPERTY);		
-		assertEquals(AccessType.PROPERTY, persistenceUnit.getDefaultAccess());
-		
-		ormMappingFile.getEntityMappings().getPersistenceUnitMetadata().getPersistenceUnitDefaults().setAccess(AccessType.FIELD);	
-		assertEquals(AccessType.FIELD, persistenceUnit.getDefaultAccess());
-		
-		ormMappingFile.getEntityMappings().getPersistenceUnitMetadata().getPersistenceUnitDefaults().setAccess(null);	
-		assertFalse(ormMappingFile.getEntityMappings().getPersistenceUnitMetadata().getPersistenceUnitDefaults().resourceExists());
-		assertEquals(null, persistenceUnit.getDefaultAccess());
-				
-		orm2MappingFile.getEntityMappings().getPersistenceUnitMetadata().getPersistenceUnitDefaults().setAccess(AccessType.FIELD);	
-		assertEquals(AccessType.FIELD, persistenceUnit.getDefaultAccess());
-	}
-	
-	public void testGetDefaultSchema() throws Exception {
-		addXmlMappingFileRef(JptCorePlugin.DEFAULT_ORM_XML_FILE_PATH);
-		createOrm2XmlFile();
-		PersistenceUnit persistenceUnit = getPersistenceUnit();
-		ListIterator<MappingFileRef> mappingFileRefs = getPersistenceUnit().mappingFileRefs();
-		OrmXml ormMappingFile = (OrmXml) mappingFileRefs.next().getMappingFile();
-		OrmXml orm2MappingFile = (OrmXml) mappingFileRefs.next().getMappingFile();
-		
-		assertEquals(null, persistenceUnit.getDefaultSchema());
-		
-		ormMappingFile.getEntityMappings().getPersistenceUnitMetadata().getPersistenceUnitDefaults().setSpecifiedSchema("FOO");		
-		assertEquals("FOO", persistenceUnit.getDefaultSchema());
-		
-		ormMappingFile.getEntityMappings().getPersistenceUnitMetadata().getPersistenceUnitDefaults().setSpecifiedSchema(null);	
-		assertFalse(ormMappingFile.getEntityMappings().getPersistenceUnitMetadata().getPersistenceUnitDefaults().resourceExists());
-		assertEquals(null, persistenceUnit.getDefaultSchema());
-				
-		orm2MappingFile.getEntityMappings().getPersistenceUnitMetadata().getPersistenceUnitDefaults().setSpecifiedSchema("BAR");	
-		assertEquals("BAR", persistenceUnit.getDefaultSchema());
-	}
-	
-	public void testGetDefaultCatalog() throws Exception {
-		addXmlMappingFileRef(JptCorePlugin.DEFAULT_ORM_XML_FILE_PATH);
-		createOrm2XmlFile();
-		PersistenceUnit persistenceUnit = getPersistenceUnit();
-		ListIterator<MappingFileRef> mappingFileRefs = getPersistenceUnit().mappingFileRefs();
-		OrmXml ormMappingFile = (OrmXml) mappingFileRefs.next().getMappingFile();
-		OrmXml orm2MappingFile = (OrmXml) mappingFileRefs.next().getMappingFile();
-		
-		assertEquals(null, persistenceUnit.getDefaultCatalog());
-		
-		ormMappingFile.getEntityMappings().getPersistenceUnitMetadata().getPersistenceUnitDefaults().setSpecifiedCatalog("FOO");		
-		assertEquals("FOO", persistenceUnit.getDefaultCatalog());
-		
-		ormMappingFile.getEntityMappings().getPersistenceUnitMetadata().getPersistenceUnitDefaults().setSpecifiedCatalog(null);	
-		assertFalse(ormMappingFile.getEntityMappings().getPersistenceUnitMetadata().getPersistenceUnitDefaults().resourceExists());
-		assertEquals(null, persistenceUnit.getDefaultCatalog());
-				
-		orm2MappingFile.getEntityMappings().getPersistenceUnitMetadata().getPersistenceUnitDefaults().setSpecifiedCatalog("BAR");	
-		assertEquals("BAR", persistenceUnit.getDefaultCatalog());
-	}
-	
-	protected void createOrm2XmlFile() throws Exception {
-		OrmXmlResourceProvider resourceProvider = 
-			OrmXmlResourceProvider.getXmlResourceProvider(getJavaProject().getProject(), "META-INF/orm2.xml");
-		resourceProvider.createFileAndResource();
-
-		
-		addXmlMappingFileRef("META-INF/orm2.xml");
-		getPersistenceXmlResource().save(null);
-	}
-
-	private ICompilationUnit createTestEntity() throws Exception {
-		return this.createTestType(new DefaultAnnotationWriter() {
-			@Override
-			public Iterator<String> imports() {
-				return new ArrayIterator<String>(JPA.ENTITY);
-			}
-			@Override
-			public void appendTypeAnnotationTo(StringBuilder sb) {
-				sb.append("@Entity").append(CR);
-			}
-		});
-	}
-	
-	private ICompilationUnit createTestOtherTypeEntity() throws Exception {
-		return this.createTestType(PACKAGE_NAME, OTHER_TYPE_NAME + ".java", OTHER_TYPE_NAME, new DefaultAnnotationWriter() {
-			@Override
-			public Iterator<String> imports() {
-				return new ArrayIterator<String>(JPA.ENTITY);
-			}
-				@Override
-			public void appendTypeAnnotationTo(StringBuilder sb) {
-				sb.append("@Entity");
-			}
-
-		});
-	}
-
-	private ICompilationUnit createTestEntityWithPersistentInnerClass() throws Exception {
-		return this.createTestType(new DefaultAnnotationWriter() {
-			@Override
-			public Iterator<String> imports() {
-				return new ArrayIterator<String>(JPA.ENTITY);
-			}
-			@Override
-			public void appendTypeAnnotationTo(StringBuilder sb) {
-				sb.append("@Entity").append(CR);
-			}
-			
-			@Override
-			public void appendMemberTypeTo(StringBuilder sb) {
-				sb.append("@Entity").append(CR);
-				sb.append("     public static class " + INNER_CLASS_NAME + " {}").append(CR);
-			}
-		});
-	}
-
-	public void testPersistentType() throws Exception {
-		getJpaProject().setDiscoversAnnotatedClasses(false);	
-		PersistenceUnit persistenceUnit = getPersistenceUnit();
-		createTestEntity();
-		
-		//persistentType not listed in persistence.xml and discoverAnnotatedClasses is false
-		//still find the persistentType because of changes for bug 190317
-		assertFalse(getJpaProject().discoversAnnotatedClasses());
-		assertNotNull(persistenceUnit.getPersistentType(FULLY_QUALIFIED_TYPE_NAME));
-		
-		//test persistentType not listed in persistence.xml, discover annotated classes set to true
-		getJpaProject().setDiscoversAnnotatedClasses(true);	
-		assertNotNull(persistenceUnit.getPersistentType(FULLY_QUALIFIED_TYPE_NAME));
-		
-		//test persistentType list as class in persistence.xml
-		getJpaProject().setDiscoversAnnotatedClasses(false);
-		XmlJavaClassRef classRef = PersistenceFactory.eINSTANCE.createXmlJavaClassRef();
-		classRef.setJavaClass(FULLY_QUALIFIED_TYPE_NAME);
-		getXmlPersistenceUnit().getClasses().add(classRef);
-		assertNotNull(persistenceUnit.getPersistentType(FULLY_QUALIFIED_TYPE_NAME));
-
-		
-		//test persistentType from orm.xml file that is specified in the persistence.xml
-		addXmlMappingFileRef(JptCorePlugin.DEFAULT_ORM_XML_FILE_PATH);
-		OrmPersistentType ormPersistentType = getEntityMappings().addPersistentType(MappingKeys.ENTITY_TYPE_MAPPING_KEY, "model.Foo");
-		assertNotNull(persistenceUnit.getPersistentType("model.Foo"));
-		assertEquals(ormPersistentType, persistenceUnit.getPersistentType("model.Foo"));
-
-		//test persistentType from orm.xml file that is implied(not specified) in the persistence.xml
-		getXmlPersistenceUnit().getMappingFiles().remove(0);
-		assertNotNull(persistenceUnit.getPersistentType("model.Foo"));
-	}
-	
-//TODO
-//	String getDefaultSchema();
-//	String getDefaultCatalog();
-//	AccessType getDefaultAccess();
-//	boolean getDefaultCascadePersist();
-
-}
diff --git a/jpa/tests/org.eclipse.jpt.core.tests/src/org/eclipse/jpt/core/tests/internal/context/persistence/PersistenceXmlTests.java b/jpa/tests/org.eclipse.jpt.core.tests/src/org/eclipse/jpt/core/tests/internal/context/persistence/PersistenceXmlTests.java
deleted file mode 100644
index d174789..0000000
--- a/jpa/tests/org.eclipse.jpt.core.tests/src/org/eclipse/jpt/core/tests/internal/context/persistence/PersistenceXmlTests.java
+++ /dev/null
@@ -1,95 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.core.tests.internal.context.persistence;
-
-import org.eclipse.jpt.core.context.persistence.PersistenceXml;
-import org.eclipse.jpt.core.resource.persistence.PersistenceFactory;
-import org.eclipse.jpt.core.resource.xml.JpaXmlResource;
-import org.eclipse.jpt.core.tests.internal.context.ContextModelTestCase;
-
-public class PersistenceXmlTests extends ContextModelTestCase
-{
-	public PersistenceXmlTests(String name) {
-		super(name);
-	}
-	
-	protected PersistenceXml getPersistenceXml() {
-		return getRootContextNode().getPersistenceXml();
-	}
-	
-	public void testUpdateAddPersistence() throws Exception {
-		assertEquals(2, getJpaProject().jpaFilesSize());
-		JpaXmlResource prm = getPersistenceXmlResource();
-		prm.getContents().clear();
-		prm.save(null);
-		
-		//the ContentType of the persistence.xml file is no longer persistence, so the jpa file is removed
-		assertNull(getPersistenceXml());
-		assertEquals(1, getJpaProject().jpaFilesSize()); //should only be the orm.xml file
-		
-		prm.getContents().add(PersistenceFactory.eINSTANCE.createXmlPersistence());
-		prm.save(null);
-		
-		assertNotNull(getPersistenceXml().getPersistence());
-		assertEquals(2, getJpaProject().jpaFilesSize());	
-	}
-	
-	public void testModifyAddPersistence() {
-		JpaXmlResource prm = getPersistenceXmlResource();
-		prm.getContents().remove(getXmlPersistence());
-		assertNull(getXmlPersistence());
-		
-		PersistenceXml persistenceXml = getPersistenceXml();
-		
-		persistenceXml.addPersistence();
-		
-		assertNotNull(persistenceXml.getPersistence());
-		
-		boolean exceptionThrown = false;
-		try {
-			persistenceXml.addPersistence();
-		}
-		catch (IllegalStateException ise) {
-			exceptionThrown = true;
-		}
-		
-		assertTrue(exceptionThrown);
-	}
-	
-	public void testUpdateRemovePersistence() throws Exception {
-		JpaXmlResource prm = getPersistenceXmlResource();
-		
-		assertNotNull(getPersistenceXml().getPersistence());
-		
-		prm.getContents().clear();
-		
-		assertNull(getPersistenceXml().getPersistence());
-	}
-	
-	public void testModifyRemovePersistence() {
-		PersistenceXml persistenceXml = getPersistenceXml();
-		
-		assertNotNull(persistenceXml.getPersistence());
-		
-		persistenceXml.removePersistence();
-		
-		assertNull(persistenceXml.getPersistence());
-		
-		boolean exceptionThrown = false;
-		try {
-			persistenceXml.removePersistence();
-		}
-		catch (IllegalStateException ise) {
-			exceptionThrown = true;
-		}
-		
-		assertTrue(exceptionThrown);
-	}
-}
diff --git a/jpa/tests/org.eclipse.jpt.core.tests/src/org/eclipse/jpt/core/tests/internal/context/persistence/RootContextNodeTests.java b/jpa/tests/org.eclipse.jpt.core.tests/src/org/eclipse/jpt/core/tests/internal/context/persistence/RootContextNodeTests.java
deleted file mode 100644
index 86ed77e..0000000
--- a/jpa/tests/org.eclipse.jpt.core.tests/src/org/eclipse/jpt/core/tests/internal/context/persistence/RootContextNodeTests.java
+++ /dev/null
@@ -1,47 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.core.tests.internal.context.persistence;
-
-import org.eclipse.jpt.core.context.JpaRootContextNode;
-import org.eclipse.jpt.core.resource.persistence.PersistenceFactory;
-import org.eclipse.jpt.core.resource.xml.JpaXmlResource;
-import org.eclipse.jpt.core.tests.internal.context.ContextModelTestCase;
-
-public class RootContextNodeTests extends ContextModelTestCase
-{
-	public RootContextNodeTests(String name) {
-		super(name);
-	}
-	
-	public void testUpdateAddPersistenceXml() throws Exception {
-		JpaXmlResource pr = getPersistenceXmlResource();
-		deleteResource(pr);
-		
-		assertFalse(pr.fileExists());
-		
-		JpaRootContextNode baseJpaContent = getJavaProject().getJpaProject().getRootContextNode();
-		assertNull(baseJpaContent.getPersistenceXml());
-		
-		pr.getContents().add(PersistenceFactory.eINSTANCE.createXmlPersistence());
-		pr.save(null);
-		assertNotNull(baseJpaContent.getPersistenceXml());
-	}
-	
-	public void testUpdateRemovePersistenceXml() throws Exception {
-		JpaXmlResource pr = getPersistenceXmlResource();
-		JpaRootContextNode baseJpaContent = getJavaProject().getJpaProject().getRootContextNode();
-		
-		assertNotNull(baseJpaContent.getPersistenceXml());
-		
-		deleteResource(pr);
-		
-		assertNull(baseJpaContent.getPersistenceXml());
-	}
-}
diff --git a/jpa/tests/org.eclipse.jpt.core.tests/src/org/eclipse/jpt/core/tests/internal/model/JpaModelTests.java b/jpa/tests/org.eclipse.jpt.core.tests/src/org/eclipse/jpt/core/tests/internal/model/JpaModelTests.java
deleted file mode 100644
index d634056..0000000
--- a/jpa/tests/org.eclipse.jpt.core.tests/src/org/eclipse/jpt/core/tests/internal/model/JpaModelTests.java
+++ /dev/null
@@ -1,227 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2008 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.core.tests.internal.model;
-
-import java.io.BufferedInputStream;
-import java.io.ByteArrayInputStream;
-import java.io.InputStream;
-import junit.framework.TestCase;
-import org.eclipse.core.resources.IFile;
-import org.eclipse.core.resources.IProject;
-import org.eclipse.core.resources.ResourcesPlugin;
-import org.eclipse.core.runtime.Path;
-import org.eclipse.jpt.core.JpaProject;
-import org.eclipse.jpt.core.JptCorePlugin;
-import org.eclipse.jpt.core.internal.GenericJpaModel;
-import org.eclipse.jpt.core.internal.JpaModelManager;
-import org.eclipse.jpt.core.tests.internal.projects.TestFacetedProject;
-import org.eclipse.jpt.core.tests.internal.projects.TestJavaProject;
-import org.eclipse.jpt.core.tests.internal.projects.TestPlatformProject;
-import org.eclipse.jpt.utility.internal.ClassTools;
-
-@SuppressWarnings("nls")
-public class JpaModelTests extends TestCase {
-
-	/** carriage return */
-	public static final String CR = System.getProperty("line.separator");
-
-	protected TestFacetedProject testProject;
-	public JpaModelTests(String name) {
-		super(name);
-	}
-
-	@Override
-	protected void setUp() throws Exception {
-		super.setUp();
-		if (this.debug()) {
-			this.printName();
-		}
-		this.testProject = this.buildTestProject();
-	}
-
-	private boolean debug() {
-		Boolean debug = (Boolean) ClassTools.staticFieldValue(JpaModelManager.class, "DEBUG");
-		return debug.booleanValue();
-	}
-
-	private void printName() {
-		String name = this.getName();
-		System.out.println();
-		System.out.println();
-		this.printNameBorder(name);
-		System.out.println(name);
-		this.printNameBorder(name);
-	}
-
-	private void printNameBorder(String name) {
-		for (int i = name.length(); i-- > 0; ) {
-			System.out.print('=');
-		}
-		System.out.println();
-	}
-
-	@Override
-	protected void tearDown() throws Exception {
-		this.testProject.getProject().delete(true, true, null);
-		this.testProject = null;
-		super.tearDown();
-	}
-
-	/** 
-	 * Builds a project with the java and utility facets installed, and with
-	 * pre-existing entities added.
-	 */
-	private TestFacetedProject buildTestProject() throws Exception {
-		TestJavaProject testProject = TestJavaProject.buildJavaProject(ClassTools.shortClassNameForObject(this), true);
-		testProject.installFacet("jst.utility", "1.0");
-		testProject.createCompilationUnit("test.pkg", "TestEntity.java", "@Entity public class TestEntity {}");
-		testProject.createCompilationUnit("test.pkg", "TestEntity2.java", "@Entity public class TestEntity2 {}");
-		return testProject;
-	}	
-
-	private IFile getFile(TestPlatformProject p, String path) {
-		return p.getProject().getFile(new Path(path));
-	}
-
-	public void testJpaModel() {
-		assertNotNull(JptCorePlugin.getJpaModel());
-	}
-
-	public void testProjectCloseReopen() throws Exception {
-		this.testProject.installFacet("jpt.jpa", "1.0");
-
-		this.testProject.getProject().close(null);
-		assertFalse(this.testProject.getProject().isOpen());
-		JpaProject jpaProject = JptCorePlugin.getJpaProject(this.testProject.getProject());
-		assertNull(jpaProject);
-
-		this.testProject.getProject().open(null);
-		assertTrue(this.testProject.getProject().isOpen());
-		jpaProject = JptCorePlugin.getJpaProject(this.testProject.getProject());
-		assertNotNull(jpaProject);
-		assertEquals(4, jpaProject.jpaFilesSize());
-		assertNotNull(jpaProject.getJpaFile(this.getFile(this.testProject, "src/test/pkg/TestEntity.java")));
-		assertNotNull(jpaProject.getJpaFile(this.getFile(this.testProject, "src/test/pkg/TestEntity2.java")));
-
-		assertNotNull(jpaProject.getJpaFile(this.getFile(this.testProject, "src/META-INF/persistence.xml")));
-		assertNotNull(jpaProject.getJpaFile(this.getFile(this.testProject, "src/META-INF/orm.xml")));
-	}
-
-	public void testProjectDeleteReimport() throws Exception {
-		this.testProject.installFacet("jpt.jpa", "1.0");
-		JpaProject jpaProject = JptCorePlugin.getJpaProject(this.testProject.getProject());
-		assertNotNull(jpaProject);
-		assertEquals(1, JptCorePlugin.getJpaModel().jpaProjectsSize());
-
-		this.testProject.getProject().delete(false, true, null);
-		jpaProject = JptCorePlugin.getJpaProject(this.testProject.getProject());
-		assertNull(jpaProject);
-		assertEquals(0, JptCorePlugin.getJpaModel().jpaProjectsSize());
-		assertEquals(0, ResourcesPlugin.getWorkspace().getRoot().getProjects().length);
-
-		IProject project = ResourcesPlugin.getWorkspace().getRoot().getProject(this.testProject.getProject().getName());
-		project.create(null);
-		assertEquals(1, ResourcesPlugin.getWorkspace().getRoot().getProjects().length);
-		project.open(null);
-
-		assertTrue(project.isOpen());
-		assertTrue(JptCorePlugin.projectHasJpaFacet(project));
-		jpaProject = JptCorePlugin.getJpaProject(project);
-		assertNotNull(jpaProject);
-		assertEquals(4, jpaProject.jpaFilesSize());
-		assertNotNull(jpaProject.getJpaFile(this.getFile(this.testProject, "src/test/pkg/TestEntity.java")));
-		assertNotNull(jpaProject.getJpaFile(this.getFile(this.testProject, "src/test/pkg/TestEntity2.java")));
-		assertNotNull(jpaProject.getJpaFile(this.getFile(this.testProject, "src/META-INF/persistence.xml")));
-		assertNotNull(jpaProject.getJpaFile(this.getFile(this.testProject, "src/META-INF/orm.xml")));
-	}
-
-	public void testFacetInstallUninstall() throws Exception {
-		assertNull(JptCorePlugin.getJpaProject(this.testProject.getProject()));
-
-		this.testProject.installFacet("jpt.jpa", "1.0");
-		assertEquals(1, JptCorePlugin.getJpaModel().jpaProjectsSize());
-		JpaProject jpaProject = JptCorePlugin.getJpaProject(this.testProject.getProject());
-		assertNotNull(jpaProject);
-		assertEquals(4, jpaProject.jpaFilesSize());
-		assertNotNull(jpaProject.getJpaFile(this.getFile(this.testProject, "src/test/pkg/TestEntity.java")));
-		assertNotNull(jpaProject.getJpaFile(this.getFile(this.testProject, "src/test/pkg/TestEntity2.java")));
-
-		assertNotNull(jpaProject.getJpaFile(this.getFile(this.testProject, "src/META-INF/persistence.xml")));
-		assertNotNull(jpaProject.getJpaFile(this.getFile(this.testProject, "src/META-INF/orm.xml")));
-
-		this.testProject.uninstallFacet("jpt.jpa", "1.0");
-		assertEquals(0, JptCorePlugin.getJpaModel().jpaProjectsSize());
-		jpaProject = JptCorePlugin.getJpaProject(this.testProject.getProject());
-		assertNull(jpaProject);
-	}
-
-	//TODO - Commented out this test, since it was failing in the I-Build and we're not sure why.
-	//See bug 221757
-	public void testEditFacetSettingsFile() throws Exception {
-		assertNull(JptCorePlugin.getJpaProject(this.testProject.getProject()));
-
-		// add the JPA facet by modifying the facet settings file directly
-		IFile facetSettingsFile = this.getFile(this.testProject, ".settings/org.eclipse.wst.common.project.facet.core.xml");
-		InputStream inStream = new BufferedInputStream(facetSettingsFile.getContents());
-		int fileSize = inStream.available();
-		byte[] buf = new byte[fileSize];
-		inStream.read(buf);
-		inStream.close();
-
-		String oldDocument = new String(buf);
-		String oldString = "<installed facet=\"jst.utility\" version=\"1.0\"/>";
-		String newString = oldString + CR + "  " + "<installed facet=\"jpt.jpa\" version=\"1.0\"/>";
-		String newDocument = oldDocument.replaceAll(oldString, newString);
-
-		facetSettingsFile.setContents(new ByteArrayInputStream(newDocument.getBytes()), false, false, null);
-
-		// TODO moved more stuff to the error console until we can figure out why it fails intermittently  ~kfb
-//		assertEquals(1, JptCorePlugin.getJpaModel().jpaProjectsSize());
-//		JpaProject jpaProject = JptCorePlugin.getJpaProject(this.testProject.getProject());
-//		assertNotNull(jpaProject);
-//		// persistence.xml and orm.xml do not get created in this situation (?)
-//		assertEquals(2, jpaProject.jpaFilesSize());
-//		assertNotNull(jpaProject.getJpaFile(this.getFile(this.testProject, "src/test/pkg/TestEntity.java")));
-//		assertNotNull(jpaProject.getJpaFile(this.getFile(this.testProject, "src/test/pkg/TestEntity2.java")));
-////		assertNotNull(jpaProject.getJpaFile(this.getFile(this.testProject, "src/META-INF/persistence.xml")));
-////		assertNotNull(jpaProject.getJpaFile(this.getFile(this.testProject, "src/META-INF/orm.xml")));
-		int size = JptCorePlugin.getJpaModel().jpaProjectsSize();
-		if (size != 1) {
-			System.err.println("bogus size: " + size);
-			System.err.println("bogus project: " + JptCorePlugin.getJpaProject(this.testProject.getProject()));
-		}
-
-		// now remove the JPA facet
-		facetSettingsFile.setContents(new ByteArrayInputStream(oldDocument.getBytes()), false, false, null);
-// TODO moved this stuff to the error console until we can figure out why it fails intermittently  ~bjv
-//		assertEquals(0, JptCorePlugin.jpaModel().jpaProjectsSize());
-//		jpaProject = JptCorePlugin.jpaProject(testProject.getProject());
-//		assertNull(jpaProject);
-		int newSize = JptCorePlugin.getJpaModel().jpaProjectsSize();
-		if (newSize != 0) {
-			System.err.println("bogus size: " + newSize);
-			System.err.println("bogus project: " + JptCorePlugin.getJpaProject(this.testProject.getProject()));
-		}
-	}
-
-	/**
-	 * make sure the DEBUG constants are 'false' before checking in the code
-	 */
-	public void testDEBUG() {
-		this.verifyDEBUG(JpaModelManager.class);
-		this.verifyDEBUG(GenericJpaModel.class);
-	}
-
-	private void verifyDEBUG(Class<?> clazz) {
-		assertFalse("Recompile with \"DEBUG = false\": " + clazz.getName(),
-				((Boolean) ClassTools.staticFieldValue(clazz, "DEBUG")).booleanValue());
-	}
-
-}
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 1a90dc6..0000000
--- a/jpa/tests/org.eclipse.jpt.core.tests/src/org/eclipse/jpt/core/tests/internal/model/JptCoreModelTests.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.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(JpaModelTests.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/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 b27caa3..0000000
--- a/jpa/tests/org.eclipse.jpt.core.tests/src/org/eclipse/jpt/core/tests/internal/platform/BaseJpaPlatformTests.java
+++ /dev/null
@@ -1,76 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008 Oracle. All rights reserved.
- * This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     Oracle - initial API and implementation
- *******************************************************************************/
-package org.eclipse.jpt.core.tests.internal.platform;
-
-import junit.framework.TestCase;
-import org.eclipse.jpt.core.tests.internal.projects.TestJpaProject;
-
-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();
-		this.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 {
-		this.jpaProject.getProject().delete(true, true, null);
-		this.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();
-//		XmlPersistence 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 {}"
-//			);
-//		XmlJavaClassRef 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/JpaPlatformExtensionTests.java b/jpa/tests/org.eclipse.jpt.core.tests/src/org/eclipse/jpt/core/tests/internal/platform/JpaPlatformExtensionTests.java
deleted file mode 100644
index d145f18..0000000
--- a/jpa/tests/org.eclipse.jpt.core.tests/src/org/eclipse/jpt/core/tests/internal/platform/JpaPlatformExtensionTests.java
+++ /dev/null
@@ -1,92 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2008 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.core.tests.internal.platform;
-
-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.core.JptCorePlugin;
-import org.eclipse.jpt.core.internal.facet.JpaFacetDataModelProperties;
-import org.eclipse.jpt.core.internal.facet.JpaFacetDataModelProvider;
-import org.eclipse.jpt.core.internal.platform.JpaPlatformRegistry;
-import org.eclipse.jpt.core.tests.extension.resource.ExtensionTestPlugin;
-import org.eclipse.jpt.core.tests.extension.resource.TestJpaPlatformProvider;
-import org.eclipse.jpt.core.tests.internal.context.ContextModelTestCase;
-import org.eclipse.jpt.core.tests.internal.projects.TestJavaProject;
-import org.eclipse.jpt.core.tests.internal.projects.TestJpaProject;
-import org.eclipse.jpt.utility.internal.CollectionTools;
-import org.eclipse.wst.common.frameworks.datamodel.IDataModel;
-import org.eclipse.wst.common.project.facet.core.IActionConfigFactory;
-
-@SuppressWarnings("nls")
-public class JpaPlatformExtensionTests extends ContextModelTestCase
-{
-	public static final String TEST_PLATFORM_ID = TestJpaPlatformProvider.ID;
-	public static final String TEST_PLATFORM_LABEL = "Test Jpa Platform";
-	
-	protected TestJpaProject testProject;
-
-	public JpaPlatformExtensionTests(String name) {
-		super(name);
-	}
-
-	@Override
-	protected void setUp() throws Exception {
-		super.setUp();
-		verifyExtensionTestProjectExists();
-	}
-	
-	@Override
-	protected TestJavaProject buildJavaProject(boolean autoBuild) throws Exception {
-		return super.buildJpaProject(PROJECT_NAME, autoBuild, this.buildConfig());
-	}
-
-	protected IDataModel buildConfig() throws Exception {
-		IActionConfigFactory configFactory = new JpaFacetDataModelProvider();
-		IDataModel config = (IDataModel) configFactory.create();
-		config.setProperty(JpaFacetDataModelProperties.PLATFORM_ID, TEST_PLATFORM_ID);
-		return config;
-	}
-
-	public static void verifyExtensionTestProjectExists() {
-		IExtensionRegistry registry = Platform.getExtensionRegistry();
-		IExtensionPoint extensionPoint = 
-			registry.getExtensionPoint(JptCorePlugin.PLUGIN_ID, "jpaPlatform");
-		IExtension[] extensions = extensionPoint.getExtensions();
-		boolean extensionFound = false;
-		for (IExtension extension : extensions) {
-			if (extension.getContributor().getName().equals(ExtensionTestPlugin.PLUGIN_ID)) {
-				extensionFound = true;
-			}
-		}
-		if (!extensionFound) {
-			throw new RuntimeException("Missing Extension " + TEST_PLATFORM_ID + ". The ExtensionTestProject plugin must be in your testing workspace.");
-		}
-	}
-	
-	@Override
-	protected void tearDown() throws Exception {
-		super.tearDown();
-	}
-	
-	public void testAllJpaPlatformIds() {
-		assertTrue(CollectionTools.size(JpaPlatformRegistry.instance().jpaPlatformIds()) >= 2);
-	}
-	
-	public void testJpaPlatformLabel() {
-		assertEquals(TEST_PLATFORM_LABEL, JpaPlatformRegistry.instance().getJpaPlatformLabel(TEST_PLATFORM_ID));	
-	}
-	
-	public void testJpaPlatform() {
-		assertNotNull(JpaPlatformRegistry.instance().getJpaPlatform(this.testProject.getProject()));		
-	}
-
-}
diff --git a/jpa/tests/org.eclipse.jpt.core.tests/src/org/eclipse/jpt/core/tests/internal/platform/JpaPlatformTests.java b/jpa/tests/org.eclipse.jpt.core.tests/src/org/eclipse/jpt/core/tests/internal/platform/JpaPlatformTests.java
deleted file mode 100644
index 1bbd9ab..0000000
--- a/jpa/tests/org.eclipse.jpt.core.tests/src/org/eclipse/jpt/core/tests/internal/platform/JpaPlatformTests.java
+++ /dev/null
@@ -1,120 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2008 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.core.tests.internal.platform;
-
-
-import java.util.Iterator;
-import org.eclipse.jdt.core.ICompilationUnit;
-import org.eclipse.jpt.core.JpaPlatform;
-import org.eclipse.jpt.core.MappingKeys;
-import org.eclipse.jpt.core.context.java.JavaAttributeMapping;
-import org.eclipse.jpt.core.context.java.JavaTypeMapping;
-import org.eclipse.jpt.core.internal.facet.JpaFacetDataModelProperties;
-import org.eclipse.jpt.core.internal.facet.JpaFacetDataModelProvider;
-import org.eclipse.jpt.core.resource.java.JPA;
-import org.eclipse.jpt.core.tests.extension.resource.ExtensionTestPlugin;
-import org.eclipse.jpt.core.tests.extension.resource.JavaTestAttributeMapping;
-import org.eclipse.jpt.core.tests.extension.resource.JavaTestAttributeMappingProvider;
-import org.eclipse.jpt.core.tests.extension.resource.JavaTestTypeMapping;
-import org.eclipse.jpt.core.tests.extension.resource.JavaTestTypeMappingProvider;
-import org.eclipse.jpt.core.tests.extension.resource.TestJavaBasicMapping;
-import org.eclipse.jpt.core.tests.extension.resource.TestJavaEntity;
-import org.eclipse.jpt.core.tests.extension.resource.TestJpaFactory;
-import org.eclipse.jpt.core.tests.extension.resource.TestJpaPlatformProvider;
-import org.eclipse.jpt.core.tests.internal.context.ContextModelTestCase;
-import org.eclipse.jpt.core.tests.internal.projects.TestJavaProject;
-import org.eclipse.jpt.core.tests.internal.projects.TestJpaProject;
-import org.eclipse.jpt.utility.internal.iterators.ArrayIterator;
-import org.eclipse.wst.common.frameworks.datamodel.IDataModel;
-import org.eclipse.wst.common.project.facet.core.IActionConfigFactory;
-
-public class JpaPlatformTests extends ContextModelTestCase
-{
-	protected TestJpaProject testProject;
-
-	protected static final String PROJECT_NAME = "ExtensionTestProject";
-	protected static final String PACKAGE_NAME = "extension.test";
-	
-	public static final String TEST_PLUGIN_CLASS = ExtensionTestPlugin.class.getName();
-	public static final String TEST_PLUGIN_ID = "org.eclipse.jpt.core.tests.extension.resource";
-
-	public static final String TEST_PLATFORM_CLASS_NAME = TestJpaPlatformProvider.class.getName();
-	public static final String TEST_PLATFORM_LABEL = "Test Jpa Platform";
-	public static final String TEST_JPA_FACTORY = TestJpaFactory.class.getName();
-	public static final String TEST_TYPE_MAPPING_PROVIDER_CLASS = JavaTestTypeMappingProvider.class.getName();
-	public static final String TEST_ATTRIBUTE_MAPPING_PROVIDER_CLASS = JavaTestAttributeMappingProvider.class.getName();
-	
-	public JpaPlatformTests(String name) {
-		super(name);
-	}
-
-	@Override
-	protected void setUp() throws Exception {
-		super.setUp();
-		JpaPlatformExtensionTests.verifyExtensionTestProjectExists();
-	}
-
-	@Override
-	protected TestJavaProject buildJavaProject(boolean autoBuild) throws Exception {
-		return super.buildJpaProject(PROJECT_NAME, autoBuild, this.buildConfig());
-	}
-
-	protected IDataModel buildConfig() throws Exception {
-		IActionConfigFactory configFactory = new JpaFacetDataModelProvider();
-		IDataModel config = (IDataModel) configFactory.create();
-		config.setProperty(JpaFacetDataModelProperties.PLATFORM_ID, TestJpaPlatformProvider.ID);
-		return config;
-	}
-
-	private ICompilationUnit createTestEntity() throws Exception {
-		return this.createTestType(new DefaultAnnotationWriter() {
-			@Override
-			public Iterator<String> imports() {
-				return new ArrayIterator<String>(JPA.ENTITY);
-			}
-			@Override
-			public void appendTypeAnnotationTo(StringBuilder sb) {
-				sb.append("@Entity").append(CR);
-			}
-		});
-	}
-
-	
-	protected JpaPlatform jpaPlatform() {
-		return this.getJpaProject().getJpaPlatform();
-	}
-
-	public void testJpaFactory() {
-		assertTrue(jpaPlatform().getJpaFactory().getClass().getName().equals(TEST_JPA_FACTORY));
-	}
-	
-	public void testBuildJavaTypeMappingFromMappingKey() throws Exception {
-		createTestEntity();
-		addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
-
-		JavaTypeMapping javaTypeMapping = getJpaProject().getJpaPlatform().buildJavaTypeMappingFromMappingKey(JavaTestTypeMapping.TEST_TYPE_MAPPING_KEY, getJavaPersistentType());
-		assertTrue(javaTypeMapping instanceof JavaTestTypeMapping);
-		
-		javaTypeMapping = jpaPlatform().buildJavaTypeMappingFromMappingKey(MappingKeys.ENTITY_TYPE_MAPPING_KEY, getJavaPersistentType());
-		assertTrue(javaTypeMapping instanceof TestJavaEntity);	
-	}
-	
-	public void testBuildJavaAttributeMappingFromMappingKey() throws Exception {
-		createTestEntity();
-		addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
-
-		JavaAttributeMapping javaAttributeMapping = getJpaProject().getJpaPlatform().buildJavaAttributeMappingFromMappingKey(JavaTestAttributeMapping.TEST_ATTRIBUTE_MAPPING_KEY, getJavaPersistentType().getAttributeNamed("name"));	
-		assertTrue(javaAttributeMapping instanceof JavaTestAttributeMapping);
-		
-		javaAttributeMapping = jpaPlatform().buildJavaAttributeMappingFromMappingKey(MappingKeys.BASIC_ATTRIBUTE_MAPPING_KEY, getJavaPersistentType().getAttributeNamed("name"));
-		assertTrue(javaAttributeMapping instanceof TestJavaBasicMapping);
-	}
-	
-}
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 22f66e3..0000000
--- a/jpa/tests/org.eclipse.jpt.core.tests/src/org/eclipse/jpt/core/tests/internal/projects/TestFacetedProject.java
+++ /dev/null
@@ -1,80 +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.frameworks.datamodel.IDataModel;
-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;
-
-/**
- * This builds and holds a "faceted" project.
- * Support for installing facets.
- */
-public class TestFacetedProject extends TestPlatformProject {
-	private final IFacetedProject facetedProject;
-
-
-	// ********** builders *****************************
-	
-	public static TestFacetedProject buildFacetedProject(String baseProjectName, boolean autoBuild)
-			throws CoreException {
-		return new TestFacetedProject(baseProjectName, autoBuild);
-	}
-	
-	
-	// ********** 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 {
-		this.installFacet(facetName, versionName, null);
-	}
-
-	public void uninstallFacet(String facetName, String versionName) throws CoreException {
-		this.uninstallFacet(facetName, versionName, null);
-	}
-
-	/**
-	 * if 'config' is null, the JPA project will be built with the defaults
-	 * defined in JpaFacetDataModelProvider#getDefaultProperty(String)
-	 */
-	public void installFacet(String facetName, String versionName, IDataModel config) throws CoreException {
-		this.facetedProject.installProjectFacet(this.facetVersion(facetName, versionName), config, null);
-	}
-
-	public void uninstallFacet(String facetName, String versionName, IDataModel config) throws CoreException {
-		this.facetedProject.uninstallProjectFacet(this.facetVersion(facetName, versionName), config, null);
-	}
-
-	private IProjectFacetVersion facetVersion(String facetName, String versionName) {
-		return ProjectFacetsManager.getProjectFacet(facetName).getVersion(versionName);
-	}
-
-}
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 b7960b0..0000000
--- a/jpa/tests/org.eclipse.jpt.core.tests/src/org/eclipse/jpt/core/tests/internal/projects/TestJavaProject.java
+++ /dev/null
@@ -1,118 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005, 2008 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.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.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.jpt.utility.internal.CollectionTools;
-
-/**
- * This builds and holds a "Java" project.
- * Support for adding packages and types.
- * 
- * "Java" projects aren't required to be "faceted" projects, but for JPA
- * testing they are.
- */
-public class TestJavaProject extends TestFacetedProject {
-	private final IJavaProject javaProject;
-	private final IPackageFragmentRoot sourceFolder;
-
-
-	// ********** builders *****************************
-	
-	public static TestJavaProject buildJavaProject(String baseProjectName, boolean autoBuild)
-			throws CoreException {
-		return new TestJavaProject(baseProjectName, autoBuild);
-	}
-	
-	
-	// ********** constructors/initialization **********
-
-	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"));
-	}
-
-	public 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 ICompilationUnit createCompilationUnit(String packageName, String compilationUnitName, String source) throws CoreException {
-		return this.createCompilationUnit(this.createPackage(packageName), compilationUnitName, new SimpleSourceWriter(source));
-	}
-
-	/**
-	 * The source should NOT contain a package declaration;
-	 * it will be added here.
-	 */
-	public ICompilationUnit createCompilationUnit(String packageName, String compilationUnitName, SourceWriter sourceWriter) throws CoreException {
-		return this.createCompilationUnit(this.createPackage(packageName), compilationUnitName, sourceWriter);
-	}
-
-	/**
-	 * The source should NOT contain a package declaration;
-	 * it will be added here.
-	 */
-	public ICompilationUnit createCompilationUnit(IPackageFragment packageFragment, String compilationUnitName, SourceWriter sourceWriter) throws CoreException {
-		StringBuilder sb = new StringBuilder(2000);
-		sb.append("package ").append(packageFragment.getElementName()).append(";").append(CR);
-		sb.append(CR);
-		sourceWriter.appendSourceTo(sb);
-		String source = sb.toString();
-		return packageFragment.createCompilationUnit(compilationUnitName, source, false, null);	// false = "no force"
-	}
-
-
-	// ********** member classes **********
-
-	public interface SourceWriter {
-		void appendSourceTo(StringBuilder sb);
-	}
-
-	public class SimpleSourceWriter implements SourceWriter {
-		private final String source;
-		public SimpleSourceWriter(String source) {
-			super();
-			this.source = source;
-		}
-		public void appendSourceTo(StringBuilder 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 2089901..0000000
--- a/jpa/tests/org.eclipse.jpt.core.tests/src/org/eclipse/jpt/core/tests/internal/projects/TestJpaProject.java
+++ /dev/null
@@ -1,86 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005, 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.core.tests.internal.projects;
-
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.jpt.core.JpaProject;
-import org.eclipse.jpt.core.JptCorePlugin;
-import org.eclipse.jpt.core.internal.SynchronousJpaProjectUpdater;
-import org.eclipse.wst.common.frameworks.datamodel.IDataModel;
-
-/**
- * This builds and holds a "JPA" project.
- * Support for adding packages and types.
- * 
- * The JPA project's settings (platform, database connection, etc.) can be
- * controlled by building a data model and passing it into the constructor.
- */
-public class TestJpaProject extends TestJavaProject {
-	private final JpaProject jpaProject;
-
-	public static final String JPA_JAR_NAME_SYSTEM_PROPERTY = "org.eclipse.jpt.jpa.jar";
-	public static final String ECLIPSELINK_JAR_NAME_SYSTEM_PROPERTY = "org.eclipse.jpt.eclipselink.jar";
-
-
-	// ********** builders **********
-
-	public static TestJpaProject buildJpaProject(String baseProjectName, boolean autoBuild, IDataModel jpaConfig)
-			throws CoreException {
-		return new TestJpaProject(baseProjectName, autoBuild, jpaConfig);
-	}
-
-	public static TestJpaProject buildJpaProject(String baseProjectName, boolean autoBuild)
-			throws CoreException {
-		return buildJpaProject(baseProjectName, autoBuild, null);
-	}
-
-	// ********** constructors/initialization **********
-
-	public TestJpaProject(String projectName) throws CoreException {
-		this(projectName, false);
-	}
-
-	public TestJpaProject(String projectName, boolean autoBuild) throws CoreException {
-		this(projectName, autoBuild, null);
-	}
-
-	public TestJpaProject(String projectName, boolean autoBuild, IDataModel jpaConfig) throws CoreException {
-		super(projectName, autoBuild);
-		this.installFacet("jst.utility", "1.0");
-		this.installFacet("jpt.jpa", "1.0", jpaConfig);
-		this.addJar(jpaJarName());
-		if (eclipseLinkJarName() != null) {
-			this.addJar(eclipseLinkJarName());
-		}
-		this.jpaProject = JptCorePlugin.getJpaProject(this.getProject());
-		this.jpaProject.setDiscoversAnnotatedClasses(true);
-		this.jpaProject.setUpdater(new SynchronousJpaProjectUpdater(this.jpaProject));
-	}
-
-	public static String jpaJarName() {
-		return getSystemProperty(JPA_JAR_NAME_SYSTEM_PROPERTY);
-	}
-
-	public static String eclipseLinkJarName() {
-		return getSystemProperty(ECLIPSELINK_JAR_NAME_SYSTEM_PROPERTY);
-	}
-
-	private static String getSystemProperty(String propertyName) {
-		return System.getProperty(propertyName);
-	}
-
-
-	// ********** public methods **********
-
-	public JpaProject getJpaProject() {
-		return this.jpaProject;
-	}
-
-}
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 20e9b0b..0000000
--- a/jpa/tests/org.eclipse.jpt.core.tests/src/org/eclipse/jpt/core/tests/internal/projects/TestPlatformProject.java
+++ /dev/null
@@ -1,78 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005, 2008 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.core.tests.internal.projects;
-
-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.jpt.utility.internal.CollectionTools;
-
-/**
- * This builds and holds a "general" Eclipse 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");
-
-	
-	// ********** builders **********
-	
-	public static TestPlatformProject buildPlatformProject(String baseProjectName, boolean autoBuild)
-			throws CoreException {
-		return new TestPlatformProject(baseProjectName, autoBuild);
-	}
-	
-	
-	// ********** constructors/initialization **********
-	
-	public TestPlatformProject(String projectName, boolean autoBuild) throws CoreException {
-		super();
-		this.setAutoBuild(autoBuild);  // workspace-wide setting
-		this.project = this.buildPlatformProject(projectName);
-	}
-
-	private void setAutoBuild(boolean autoBuild) throws CoreException {
-		IWorkspaceDescription description = ResourcesPlugin.getWorkspace().getDescription();
-		description.setAutoBuilding(autoBuild);
-		ResourcesPlugin.getWorkspace().setDescription(description);
-	}
-
-	private IProject buildPlatformProject(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(CollectionTools.add(description.getNatureIds(), natureID));
-		this.project.setDescription(description, null);
-	}
-
-	public void removeProjectNature(String natureID) throws CoreException {
-		IProjectDescription description = this.project.getDescription();
-		description.setNatureIds(CollectionTools.removeAllOccurrences(description.getNatureIds(), natureID));
-		this.project.setDescription(description, null);
-	}
-
-}
diff --git a/jpa/tests/org.eclipse.jpt.core.tests/src/org/eclipse/jpt/core/tests/internal/resource/JptCoreResourceModelTests.java b/jpa/tests/org.eclipse.jpt.core.tests/src/org/eclipse/jpt/core/tests/internal/resource/JptCoreResourceModelTests.java
deleted file mode 100644
index 2d1fed9..0000000
--- a/jpa/tests/org.eclipse.jpt.core.tests/src/org/eclipse/jpt/core/tests/internal/resource/JptCoreResourceModelTests.java
+++ /dev/null
@@ -1,30 +0,0 @@
-/*******************************************************************************
- *  Copyright (c) 2007, 2009 Oracle. 
- *  All rights reserved.  This program and the accompanying materials 
- *  are made available under the terms of the Eclipse Public License v1.0 
- *  which accompanies this distribution, and is available at 
- *  http://www.eclipse.org/legal/epl-v10.html
- *  
- *  Contributors: 
- *  	Oracle - initial API and implementation
- *******************************************************************************/
-package org.eclipse.jpt.core.tests.internal.resource;
-
-import junit.framework.Test;
-import junit.framework.TestCase;
-import junit.framework.TestSuite;
-import org.eclipse.jpt.core.tests.internal.resource.java.JptJavaResourceTests;
-
-public class JptCoreResourceModelTests extends TestCase
-{
-	public static Test suite() {
-		TestSuite suite = new TestSuite(JptCoreResourceModelTests.class.getName());
-		suite.addTest(JptJavaResourceTests.suite());
-		return suite;
-	}
-
-	private JptCoreResourceModelTests() {
-		super();
-		throw new UnsupportedOperationException();
-	}
-}
diff --git a/jpa/tests/org.eclipse.jpt.core.tests/src/org/eclipse/jpt/core/tests/internal/resource/java/AssociationOverrideTests.java b/jpa/tests/org.eclipse.jpt.core.tests/src/org/eclipse/jpt/core/tests/internal/resource/java/AssociationOverrideTests.java
deleted file mode 100644
index d86c38e..0000000
--- a/jpa/tests/org.eclipse.jpt.core.tests/src/org/eclipse/jpt/core/tests/internal/resource/java/AssociationOverrideTests.java
+++ /dev/null
@@ -1,253 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.core.tests.internal.resource.java;
-
-import java.util.Iterator;
-import org.eclipse.jdt.core.ICompilationUnit;
-import org.eclipse.jpt.core.resource.java.AssociationOverrideAnnotation;
-import org.eclipse.jpt.core.resource.java.JPA;
-import org.eclipse.jpt.core.resource.java.JavaResourcePersistentAttribute;
-import org.eclipse.jpt.core.resource.java.JavaResourcePersistentType;
-import org.eclipse.jpt.core.resource.java.JoinColumnAnnotation;
-import org.eclipse.jpt.utility.internal.iterators.ArrayIterator;
-
-@SuppressWarnings("nls")
-public class AssociationOverrideTests extends JavaResourceModelTestCase {
-	
-	private static final String ASSOCIATION_OVERRIDE_NAME = "MY_ASSOCIATION_OVERRIDE";
-	
-	public AssociationOverrideTests(String name) {
-		super(name);
-	}
-	
-	private ICompilationUnit createTestAssociationOverrideOnField() throws Exception {
-		return this.createTestType(new DefaultAnnotationWriter() {
-			@Override
-			public Iterator<String> imports() {
-				return new ArrayIterator<String>(JPA.ASSOCIATION_OVERRIDE, JPA.COLUMN);
-			}
-			@Override
-			public void appendIdFieldAnnotationTo(StringBuilder sb) {
-				sb.append("@AssociationOverride(name = \"" + ASSOCIATION_OVERRIDE_NAME + "\")");
-			}
-		});
-	}
-	
-	private ICompilationUnit createTestAssociationOverrideWithJoinColumns() throws Exception {
-		return this.createTestType(new DefaultAnnotationWriter() {
-			@Override
-			public Iterator<String> imports() {
-				return new ArrayIterator<String>(JPA.ASSOCIATION_OVERRIDE, JPA.JOIN_COLUMN);
-			}
-			@Override
-			public void appendIdFieldAnnotationTo(StringBuilder sb) {
-				sb.append("@AssociationOverride(name = \"" + ASSOCIATION_OVERRIDE_NAME + "\", joinColumns = {@JoinColumn(name = \"BAR\"), @JoinColumn})");
-			}
-		});
-	}
-
-	public void testGetName() throws Exception {
-		ICompilationUnit cu = this.createTestAssociationOverrideOnField();
-		JavaResourcePersistentType typeResource = buildJavaTypeResource(cu); 
-		JavaResourcePersistentAttribute attributeResource = typeResource.fields().next();
-		AssociationOverrideAnnotation associationOverride = (AssociationOverrideAnnotation) attributeResource.getSupportingAnnotation(JPA.ASSOCIATION_OVERRIDE);
-
-		assertNotNull(associationOverride);
-		assertEquals(ASSOCIATION_OVERRIDE_NAME, associationOverride.getName());
-	}
-
-	public void testSetName() throws Exception {
-		ICompilationUnit cu = this.createTestAssociationOverrideOnField();
-		JavaResourcePersistentType typeResource = buildJavaTypeResource(cu); 
-		JavaResourcePersistentAttribute attributeResource = typeResource.fields().next();
-		AssociationOverrideAnnotation associationOverride = (AssociationOverrideAnnotation) attributeResource.getSupportingAnnotation(JPA.ASSOCIATION_OVERRIDE);
-
-		assertNotNull(associationOverride);
-		assertEquals(ASSOCIATION_OVERRIDE_NAME, associationOverride.getName());
-
-		associationOverride.setName("Foo");
-		assertEquals("Foo", associationOverride.getName());
-		assertSourceContains("@AssociationOverride(name = \"Foo\")", cu);
-	}
-	
-	public void testSetNameNull() throws Exception {
-		ICompilationUnit cu = this.createTestAssociationOverrideOnField();
-		JavaResourcePersistentType typeResource = buildJavaTypeResource(cu); 
-		JavaResourcePersistentAttribute attributeResource = typeResource.fields().next();
-		AssociationOverrideAnnotation associationOverride = (AssociationOverrideAnnotation) attributeResource.getSupportingAnnotation(JPA.ASSOCIATION_OVERRIDE);
-
-		assertEquals(ASSOCIATION_OVERRIDE_NAME, associationOverride.getName());
-		
-		associationOverride.setName(null);
-		assertNull(associationOverride.getName());
-		
-		assertSourceDoesNotContain("@AssociationOverride(name = \"" + ASSOCIATION_OVERRIDE_NAME + "\")", cu);
-		assertSourceContains("@AssociationOverride", cu);
-	}
-	
-	
-	public void testJoinColumns() throws Exception {
-		ICompilationUnit cu = this.createTestAssociationOverrideOnField();
-		JavaResourcePersistentType typeResource = buildJavaTypeResource(cu); 
-		JavaResourcePersistentAttribute attributeResource = typeResource.fields().next();
-		
-		AssociationOverrideAnnotation associationOverride = (AssociationOverrideAnnotation) attributeResource.getSupportingAnnotation(JPA.ASSOCIATION_OVERRIDE);
-		
-		assertEquals(0, associationOverride.joinColumnsSize());
-	}
-	
-	public void testJoinColumns2() throws Exception {
-		ICompilationUnit cu = this.createTestAssociationOverrideOnField();
-		JavaResourcePersistentType typeResource = buildJavaTypeResource(cu); 
-		JavaResourcePersistentAttribute attributeResource = typeResource.fields().next();
-		
-		AssociationOverrideAnnotation associationOverride = (AssociationOverrideAnnotation) attributeResource.getSupportingAnnotation(JPA.ASSOCIATION_OVERRIDE);
-
-		
-		associationOverride.addJoinColumn(0);
-		associationOverride.addJoinColumn(1);
-				
-		assertEquals(2, associationOverride.joinColumnsSize());
-	}
-	
-	public void testJoinColumns3() throws Exception {
-		ICompilationUnit cu = this.createTestAssociationOverrideWithJoinColumns();
-		JavaResourcePersistentType typeResource = buildJavaTypeResource(cu); 
-		JavaResourcePersistentAttribute attributeResource = typeResource.fields().next();
-		
-		AssociationOverrideAnnotation associationOverride = (AssociationOverrideAnnotation) attributeResource.getSupportingAnnotation(JPA.ASSOCIATION_OVERRIDE);
-				
-		assertEquals(2, associationOverride.joinColumnsSize());
-	}
-	
-	public void testAddJoinColumn() throws Exception {
-		ICompilationUnit cu = this.createTestAssociationOverrideOnField();
-		JavaResourcePersistentType typeResource = buildJavaTypeResource(cu); 
-		JavaResourcePersistentAttribute attributeResource = typeResource.fields().next();
-		
-		AssociationOverrideAnnotation associationOverride = (AssociationOverrideAnnotation) attributeResource.getSupportingAnnotation(JPA.ASSOCIATION_OVERRIDE);
-		
-		associationOverride.addJoinColumn(0).setName("FOO");
-		associationOverride.addJoinColumn(1);
-		associationOverride.addJoinColumn(0).setName("BAR");
-
-		assertEquals("BAR", associationOverride.joinColumnAt(0).getName());
-		assertEquals("FOO", associationOverride.joinColumnAt(1).getName());
-		assertNull(associationOverride.joinColumnAt(2).getName());
-
-		assertSourceContains("@AssociationOverride(name = \"" + ASSOCIATION_OVERRIDE_NAME + "\", joinColumns = {@JoinColumn(name = \"BAR\"),@JoinColumn(name = \"FOO\"), @JoinColumn})", cu);
-	}
-	
-	public void testRemoveJoinColumn() throws Exception {
-		ICompilationUnit cu = this.createTestAssociationOverrideWithJoinColumns();
-		JavaResourcePersistentType typeResource = buildJavaTypeResource(cu); 
-		JavaResourcePersistentAttribute attributeResource = typeResource.fields().next();
-		
-		AssociationOverrideAnnotation associationOverride = (AssociationOverrideAnnotation) attributeResource.getSupportingAnnotation(JPA.ASSOCIATION_OVERRIDE);
-		associationOverride.addJoinColumn(0).setName("FOO");
-		
-		Iterator<JoinColumnAnnotation> joinColumns = associationOverride.joinColumns();
-		assertEquals("FOO", joinColumns.next().getName());
-		assertEquals("BAR", joinColumns.next().getName());
-		assertNull(joinColumns.next().getName());
-		assertEquals(false, joinColumns.hasNext());
-		assertSourceContains("@AssociationOverride(name = \"" + ASSOCIATION_OVERRIDE_NAME + "\", joinColumns = {@JoinColumn(name = \"FOO\"), @JoinColumn(name = \"BAR\"), @JoinColumn})", cu);
-		
-		associationOverride.removeJoinColumn(1);
-		joinColumns = associationOverride.joinColumns();
-		assertEquals("FOO", joinColumns.next().getName());
-		assertNull(joinColumns.next().getName());
-		assertEquals(false, joinColumns.hasNext());
-		assertSourceContains("@AssociationOverride(name = \"" + ASSOCIATION_OVERRIDE_NAME + "\", joinColumns = {@JoinColumn(name = \"FOO\"), @JoinColumn})", cu);
-
-		associationOverride.removeJoinColumn(0);
-		joinColumns = associationOverride.joinColumns();
-		assertNull(joinColumns.next().getName());
-		assertEquals(false, joinColumns.hasNext());
-		assertSourceContains("@AssociationOverride(name = \"" + ASSOCIATION_OVERRIDE_NAME + "\", joinColumns = @JoinColumn)", cu);
-
-		
-		associationOverride.setName(null);
-		associationOverride.removeJoinColumn(0);
-		assertSourceDoesNotContain("@AssociationOverride", cu);
-	}
-	
-	public void testMoveJoinColumn() throws Exception {
-		ICompilationUnit cu = this.createTestAssociationOverrideWithJoinColumns();
-		JavaResourcePersistentType typeResource = buildJavaTypeResource(cu); 
-		JavaResourcePersistentAttribute attributeResource = typeResource.fields().next();
-		
-		AssociationOverrideAnnotation associationOverride = (AssociationOverrideAnnotation) attributeResource.getSupportingAnnotation(JPA.ASSOCIATION_OVERRIDE);
-		JoinColumnAnnotation joinColumn = associationOverride.joinColumnAt(0);
-		joinColumn.setReferencedColumnName("REF_NAME");
-		joinColumn.setUnique(Boolean.FALSE);
-		joinColumn.setNullable(Boolean.FALSE);
-		joinColumn.setInsertable(Boolean.FALSE);
-		joinColumn.setUpdatable(Boolean.FALSE);
-		joinColumn.setColumnDefinition("COLUMN_DEF");
-		joinColumn.setTable("TABLE");
-		associationOverride.addJoinColumn(0).setName("FOO");
-		
-		assertSourceContains("@AssociationOverride(name = \"" + ASSOCIATION_OVERRIDE_NAME + "\", joinColumns = {@JoinColumn(name = \"FOO\"), @JoinColumn(name = \"BAR\", referencedColumnName = \"REF_NAME\", unique = false, nullable = false, insertable = false, updatable = false, columnDefinition = \"COLUMN_DEF\", table = \"TABLE\"), @JoinColumn})", cu);
-
-		associationOverride.moveJoinColumn(2, 0);
-		assertEquals("BAR", associationOverride.joinColumnAt(0).getName());
-		assertNull(associationOverride.joinColumnAt(1).getName());
-		assertEquals("FOO", associationOverride.joinColumnAt(2).getName());
-		assertEquals(3, associationOverride.joinColumnsSize());
-		assertSourceContains("@AssociationOverride(name = \"" + ASSOCIATION_OVERRIDE_NAME + "\", joinColumns = {@JoinColumn(name = \"BAR\", referencedColumnName = \"REF_NAME\", unique = false, nullable = false, insertable = false, updatable = false, columnDefinition = \"COLUMN_DEF\", table = \"TABLE\"), @JoinColumn, @JoinColumn(name = \"FOO\")})", cu);
-	}
-	
-	public void testMoveJoinColumn2() throws Exception {
-		ICompilationUnit cu = this.createTestAssociationOverrideWithJoinColumns();
-		JavaResourcePersistentType typeResource = buildJavaTypeResource(cu);
-		JavaResourcePersistentAttribute attributeResource = typeResource.fields().next();
-		
-		AssociationOverrideAnnotation associationOverride = (AssociationOverrideAnnotation) attributeResource.getSupportingAnnotation(JPA.ASSOCIATION_OVERRIDE);
-		
-		JoinColumnAnnotation joinColumn = associationOverride.joinColumnAt(0);
-		joinColumn.setReferencedColumnName("REF_NAME");
-		joinColumn.setUnique(Boolean.FALSE);
-		joinColumn.setNullable(Boolean.FALSE);
-		joinColumn.setInsertable(Boolean.FALSE);
-		joinColumn.setUpdatable(Boolean.FALSE);
-		joinColumn.setColumnDefinition("COLUMN_DEF");
-		joinColumn.setTable("TABLE");
-		associationOverride.addJoinColumn(0).setName("FOO");
-		
-		assertSourceContains("@AssociationOverride(name = \"" + ASSOCIATION_OVERRIDE_NAME + "\", joinColumns = {@JoinColumn(name = \"FOO\"), @JoinColumn(name = \"BAR\", referencedColumnName = \"REF_NAME\", unique = false, nullable = false, insertable = false, updatable = false, columnDefinition = \"COLUMN_DEF\", table = \"TABLE\"), @JoinColumn})", cu);
-
-		associationOverride.moveJoinColumn(0, 2);
-		assertNull(associationOverride.joinColumnAt(0).getName());
-		assertEquals("FOO", associationOverride.joinColumnAt(1).getName());
-		assertEquals("BAR", associationOverride.joinColumnAt(2).getName());
-		assertEquals(3, associationOverride.joinColumnsSize());
-		assertSourceContains("@AssociationOverride(name = \"" + ASSOCIATION_OVERRIDE_NAME + "\", joinColumns = {@JoinColumn, @JoinColumn(name = \"FOO\"), @JoinColumn(name = \"BAR\", referencedColumnName = \"REF_NAME\", unique = false, nullable = false, insertable = false, updatable = false, columnDefinition = \"COLUMN_DEF\", table = \"TABLE\")})", cu);
-	}
-	
-	public void testSetJoinColumnName() throws Exception {
-		ICompilationUnit cu = this.createTestAssociationOverrideWithJoinColumns();
-		JavaResourcePersistentType typeResource = buildJavaTypeResource(cu); 
-		JavaResourcePersistentAttribute attributeResource = typeResource.fields().next();
-		
-		AssociationOverrideAnnotation associationOverride = (AssociationOverrideAnnotation) attributeResource.getSupportingAnnotation(JPA.ASSOCIATION_OVERRIDE);
-				
-		assertEquals(2, associationOverride.joinColumnsSize());
-		
-		JoinColumnAnnotation joinColumn = associationOverride.joinColumns().next();
-		
-		assertEquals("BAR", joinColumn.getName());
-		
-		joinColumn.setName("foo");
-		assertEquals("foo", joinColumn.getName());
-		
-		assertSourceContains("@AssociationOverride(name = \"" + ASSOCIATION_OVERRIDE_NAME + "\", joinColumns = {@JoinColumn(name = \"foo\"), @JoinColumn})", cu);
-	}
-}
diff --git a/jpa/tests/org.eclipse.jpt.core.tests/src/org/eclipse/jpt/core/tests/internal/resource/java/AssociationOverridesTests.java b/jpa/tests/org.eclipse.jpt.core.tests/src/org/eclipse/jpt/core/tests/internal/resource/java/AssociationOverridesTests.java
deleted file mode 100644
index c7a207c..0000000
--- a/jpa/tests/org.eclipse.jpt.core.tests/src/org/eclipse/jpt/core/tests/internal/resource/java/AssociationOverridesTests.java
+++ /dev/null
@@ -1,320 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.core.tests.internal.resource.java;
-
-import java.util.Iterator;
-
-import org.eclipse.jdt.core.ICompilationUnit;
-import org.eclipse.jpt.core.resource.java.AssociationOverrideAnnotation;
-import org.eclipse.jpt.core.resource.java.AssociationOverridesAnnotation;
-import org.eclipse.jpt.core.resource.java.JPA;
-import org.eclipse.jpt.core.resource.java.JavaResourcePersistentAttribute;
-import org.eclipse.jpt.core.resource.java.JavaResourcePersistentType;
-import org.eclipse.jpt.core.resource.java.JoinColumnAnnotation;
-import org.eclipse.jpt.core.resource.java.NestableAnnotation;
-import org.eclipse.jpt.utility.internal.CollectionTools;
-import org.eclipse.jpt.utility.internal.iterators.ArrayIterator;
-
-@SuppressWarnings("nls")
-public class AssociationOverridesTests extends JavaResourceModelTestCase {
-	
-	private static final String ASSOCIATION_OVERRIDE_NAME = "MY_ASSOCIATION_OVERRIDE";
-	
-	public AssociationOverridesTests(String name) {
-		super(name);
-	}
-
-	private ICompilationUnit createTestAssociationOverrideOnField() throws Exception {
-		return this.createTestType(new DefaultAnnotationWriter() {
-			@Override
-			public Iterator<String> imports() {
-				return new ArrayIterator<String>(JPA.ASSOCIATION_OVERRIDE, JPA.ASSOCIATION_OVERRIDES);
-			}
-			@Override
-			public void appendIdFieldAnnotationTo(StringBuilder sb) {
-				sb.append("@AssociationOverrides(@AssociationOverride(name = \"" + ASSOCIATION_OVERRIDE_NAME + "\"))");
-			}
-		});
-	}
-	
-	private ICompilationUnit createTestAssociationOverrideWithJoinColumns() throws Exception {
-		return this.createTestType(new DefaultAnnotationWriter() {
-			@Override
-			public Iterator<String> imports() {
-				return new ArrayIterator<String>(JPA.ASSOCIATION_OVERRIDE, JPA.ASSOCIATION_OVERRIDES, JPA.JOIN_COLUMN);
-			}
-			@Override
-			public void appendIdFieldAnnotationTo(StringBuilder sb) {
-				sb.append("@AssociationOverrides(@AssociationOverride(name = \"" + ASSOCIATION_OVERRIDE_NAME + "\", joinColumns = {@JoinColumn(name = \"BAR\"), @JoinColumn}))");
-			}
-		});
-	}
-	
-	private ICompilationUnit createTestAssociationOverride() throws Exception {
-		return this.createTestType(new DefaultAnnotationWriter() {
-			@Override
-			public Iterator<String> imports() {
-				return new ArrayIterator<String>(JPA.ENTITY, JPA.ASSOCIATION_OVERRIDE, JPA.JOIN_COLUMN);
-			}
-			@Override
-			public void appendTypeAnnotationTo(StringBuilder sb) {
-				sb.append("@Entity");
-				sb.append(CR);
-				sb.append("@AssociationOverride(name = \"FOO\", joinColumns = @JoinColumn(name = \"FOO\", columnDefinition = \"BAR\", referencedColumnName = \"BAZ\"))");
-			}
-		});
-	}
-
-	public void testGetName() throws Exception {
-		ICompilationUnit cu = this.createTestAssociationOverrideOnField();
-		JavaResourcePersistentType typeResource = buildJavaTypeResource(cu); 
-		JavaResourcePersistentAttribute attributeResource = typeResource.fields().next();
-		AssociationOverridesAnnotation associationOverrides = (AssociationOverridesAnnotation) attributeResource.getSupportingAnnotation(JPA.ASSOCIATION_OVERRIDES);
-		AssociationOverrideAnnotation associationOverride = associationOverrides.nestedAnnotations().next();
-
-		assertNotNull(associationOverride);
-		assertEquals(ASSOCIATION_OVERRIDE_NAME, associationOverride.getName());
-	}
-
-	public void testSetName() throws Exception {
-		ICompilationUnit cu = this.createTestAssociationOverrideOnField();
-		JavaResourcePersistentType typeResource = buildJavaTypeResource(cu); 
-		JavaResourcePersistentAttribute attributeResource = typeResource.fields().next();
-		AssociationOverridesAnnotation associationOverrides = (AssociationOverridesAnnotation) attributeResource.getSupportingAnnotation(JPA.ASSOCIATION_OVERRIDES);
-		AssociationOverrideAnnotation associationOverride = associationOverrides.nestedAnnotations().next();
-
-		assertNotNull(associationOverride);
-		assertEquals(ASSOCIATION_OVERRIDE_NAME, associationOverride.getName());
-
-		associationOverride.setName("Foo");
-		assertEquals("Foo", associationOverride.getName());
-		assertSourceContains("@AssociationOverrides(@AssociationOverride(name = \"Foo\"))", cu);
-	}
-	
-	public void testSetNameNull() throws Exception {
-		ICompilationUnit cu = this.createTestAssociationOverrideOnField();
-		JavaResourcePersistentType typeResource = buildJavaTypeResource(cu); 
-		JavaResourcePersistentAttribute attributeResource = typeResource.fields().next();
-		AssociationOverridesAnnotation associationOverrides = (AssociationOverridesAnnotation) attributeResource.getSupportingAnnotation(JPA.ASSOCIATION_OVERRIDES);
-		AssociationOverrideAnnotation associationOverride = associationOverrides.nestedAnnotations().next();
-		assertEquals(ASSOCIATION_OVERRIDE_NAME, associationOverride.getName());
-		
-		associationOverride.setName(null);
-		assertNull(associationOverride.getName());
-		
-		assertSourceDoesNotContain("@AssociationOverride(name = \"" + ASSOCIATION_OVERRIDE_NAME + "\")", cu);
-		assertSourceContains("@AssociationOverride", cu);
-		assertSourceContains("@AssociationOverrides", cu);
-	}
-	
-	public void testAddAssociationOverrideCopyExisting() throws Exception {
-		ICompilationUnit cu = createTestAssociationOverride();
-		JavaResourcePersistentType typeResource = buildJavaTypeResource(cu);
-		
-		AssociationOverrideAnnotation associationOverride = (AssociationOverrideAnnotation) typeResource.addSupportingAnnotation(1, JPA.ASSOCIATION_OVERRIDE, JPA.ASSOCIATION_OVERRIDES);
-		associationOverride.setName("BAR");
-		assertSourceContains("@AssociationOverrides({@AssociationOverride(name = \"FOO\", joinColumns = @JoinColumn(name = \"FOO\", columnDefinition = \"BAR\", referencedColumnName = \"BAZ\")),@AssociationOverride(name = \"BAR\")})", cu);
-		
-		assertNull(typeResource.getSupportingAnnotation(JPA.ASSOCIATION_OVERRIDE));
-		assertNotNull(typeResource.getSupportingAnnotation(JPA.ASSOCIATION_OVERRIDES));
-		assertEquals(2, CollectionTools.size(typeResource.supportingAnnotations(JPA.ASSOCIATION_OVERRIDE, JPA.ASSOCIATION_OVERRIDES)));
-	}
-	
-	public void testAddAssociationOverrideToBeginningOfList() throws Exception {
-		ICompilationUnit cu = createTestAssociationOverride();
-		JavaResourcePersistentType typeResource = buildJavaTypeResource(cu);
-		
-		AssociationOverrideAnnotation associationOverride = (AssociationOverrideAnnotation) typeResource.addSupportingAnnotation(1, JPA.ASSOCIATION_OVERRIDE, JPA.ASSOCIATION_OVERRIDES);
-		associationOverride.setName("BAR");
-		assertSourceContains("@AssociationOverrides({@AssociationOverride(name = \"FOO\", joinColumns = @JoinColumn(name = \"FOO\", columnDefinition = \"BAR\", referencedColumnName = \"BAZ\")),@AssociationOverride(name = \"BAR\")})", cu);
-		
-		associationOverride = (AssociationOverrideAnnotation) typeResource.addSupportingAnnotation(0, JPA.ASSOCIATION_OVERRIDE, JPA.ASSOCIATION_OVERRIDES);
-		associationOverride.setName("BAZ");
-		assertSourceContains("@AssociationOverrides({@AssociationOverride(name = \"BAZ\"),@AssociationOverride(name = \"FOO\", joinColumns = @JoinColumn(name = \"FOO\", columnDefinition = \"BAR\", referencedColumnName = \"BAZ\")), @AssociationOverride(name = \"BAR\")})", cu);
-
-		Iterator<NestableAnnotation> associationOverrides = typeResource.supportingAnnotations(JPA.ASSOCIATION_OVERRIDE, JPA.ASSOCIATION_OVERRIDES);
-		assertEquals("BAZ", ((AssociationOverrideAnnotation) associationOverrides.next()).getName());
-		assertEquals("FOO", ((AssociationOverrideAnnotation) associationOverrides.next()).getName());
-		assertEquals("BAR", ((AssociationOverrideAnnotation) associationOverrides.next()).getName());
-
-		assertNull(typeResource.getSupportingAnnotation(JPA.ASSOCIATION_OVERRIDE));
-		assertNotNull(typeResource.getSupportingAnnotation(JPA.ASSOCIATION_OVERRIDES));
-		assertEquals(3, CollectionTools.size(typeResource.supportingAnnotations(JPA.ASSOCIATION_OVERRIDE, JPA.ASSOCIATION_OVERRIDES)));
-	}
-
-	public void testRemoveAssociationOverrideCopyExisting() throws Exception {
-		ICompilationUnit cu = createTestAssociationOverride();
-		JavaResourcePersistentType typeResource = buildJavaTypeResource(cu);
-		
-		AssociationOverrideAnnotation associationOverride = (AssociationOverrideAnnotation) typeResource.addSupportingAnnotation(1, JPA.ASSOCIATION_OVERRIDE, JPA.ASSOCIATION_OVERRIDES);
-		associationOverride.setName("BAR");
-		assertSourceContains("@AssociationOverrides({@AssociationOverride(name = \"FOO\", joinColumns = @JoinColumn(name = \"FOO\", columnDefinition = \"BAR\", referencedColumnName = \"BAZ\")),@AssociationOverride(name = \"BAR\")})", cu);
-		
-		typeResource.removeSupportingAnnotation(1, JPA.ASSOCIATION_OVERRIDE, JPA.ASSOCIATION_OVERRIDES);
-		assertSourceContains("@AssociationOverride(name = \"FOO\", joinColumns = @JoinColumn(name = \"FOO\", columnDefinition = \"BAR\", referencedColumnName = \"BAZ\"))", cu);
-	}
-	
-	public void testJoinColumns() throws Exception {
-		ICompilationUnit cu = this.createTestAssociationOverrideOnField();
-		JavaResourcePersistentType typeResource = buildJavaTypeResource(cu); 
-		JavaResourcePersistentAttribute attributeResource = typeResource.fields().next();
-		
-		AssociationOverrideAnnotation associationOverride = (AssociationOverrideAnnotation) attributeResource.supportingAnnotations(JPA.ASSOCIATION_OVERRIDE, JPA.ASSOCIATION_OVERRIDES).next();
-		
-		assertEquals(0, associationOverride.joinColumnsSize());
-	}
-	
-	public void testJoinColumns2() throws Exception {
-		ICompilationUnit cu = this.createTestAssociationOverrideOnField();
-		JavaResourcePersistentType typeResource = buildJavaTypeResource(cu); 
-		JavaResourcePersistentAttribute attributeResource = typeResource.fields().next();
-		
-		AssociationOverrideAnnotation associationOverride = (AssociationOverrideAnnotation) attributeResource.supportingAnnotations(JPA.ASSOCIATION_OVERRIDE, JPA.ASSOCIATION_OVERRIDES).next();
-		
-		associationOverride.addJoinColumn(0);
-		associationOverride.addJoinColumn(1);
-		
-		assertEquals(2, associationOverride.joinColumnsSize());
-	}
-	
-	public void testJoinColumns3() throws Exception {
-		ICompilationUnit cu = this.createTestAssociationOverrideWithJoinColumns();
-		JavaResourcePersistentType typeResource = buildJavaTypeResource(cu); 
-		JavaResourcePersistentAttribute attributeResource = typeResource.fields().next();
-		
-		AssociationOverrideAnnotation associationOverride = (AssociationOverrideAnnotation) attributeResource.supportingAnnotations(JPA.ASSOCIATION_OVERRIDE, JPA.ASSOCIATION_OVERRIDES).next();
-				
-		assertEquals(2, associationOverride.joinColumnsSize());
-	}
-	
-	public void testAddJoinColumn() throws Exception {
-		ICompilationUnit cu = this.createTestAssociationOverrideOnField();
-		JavaResourcePersistentType typeResource = buildJavaTypeResource(cu); 
-		JavaResourcePersistentAttribute attributeResource = typeResource.fields().next();
-		
-		AssociationOverrideAnnotation associationOverride = (AssociationOverrideAnnotation) attributeResource.supportingAnnotations(JPA.ASSOCIATION_OVERRIDE, JPA.ASSOCIATION_OVERRIDES).next();
-		
-		associationOverride.addJoinColumn(0).setName("FOO");
-		associationOverride.addJoinColumn(1);
-		associationOverride.addJoinColumn(0).setName("BAR");
-
-
-		Iterator<JoinColumnAnnotation> joinColumns = associationOverride.joinColumns();
-		assertEquals("BAR", joinColumns.next().getName());
-		assertEquals("FOO", joinColumns.next().getName());
-		assertNull(joinColumns.next().getName());
-	
-		assertSourceContains("@AssociationOverrides(@AssociationOverride(name = \"" + ASSOCIATION_OVERRIDE_NAME + "\", joinColumns = {@JoinColumn(name = \"BAR\"),@JoinColumn(name = \"FOO\"), @JoinColumn}))", cu);
-	}
-	
-	public void testRemoveJoinColumn() throws Exception {
-		ICompilationUnit cu = this.createTestAssociationOverrideWithJoinColumns();
-		JavaResourcePersistentType typeResource = buildJavaTypeResource(cu); 
-		JavaResourcePersistentAttribute attributeResource = typeResource.fields().next();
-		
-		AssociationOverrideAnnotation associationOverride = (AssociationOverrideAnnotation) attributeResource.supportingAnnotations(JPA.ASSOCIATION_OVERRIDE, JPA.ASSOCIATION_OVERRIDES).next();
-		associationOverride.addJoinColumn(0).setName("FOO");
-		
-		Iterator<JoinColumnAnnotation> joinColumns = associationOverride.joinColumns();
-		assertEquals("FOO", joinColumns.next().getName());
-		assertEquals("BAR", joinColumns.next().getName());
-		assertNull(joinColumns.next().getName());
-		assertEquals(false, joinColumns.hasNext());
-		assertSourceContains("@AssociationOverrides(@AssociationOverride(name = \"" + ASSOCIATION_OVERRIDE_NAME + "\", joinColumns = {@JoinColumn(name = \"FOO\"), @JoinColumn(name = \"BAR\"), @JoinColumn}))", cu);
-		
-		associationOverride.removeJoinColumn(1);
-		joinColumns = associationOverride.joinColumns();
-		assertEquals("FOO", joinColumns.next().getName());
-		assertNull(joinColumns.next().getName());
-		assertEquals(false, joinColumns.hasNext());
-		assertSourceContains("@AssociationOverrides(@AssociationOverride(name = \"" + ASSOCIATION_OVERRIDE_NAME + "\", joinColumns = {@JoinColumn(name = \"FOO\"), @JoinColumn}))", cu);
-
-		associationOverride.removeJoinColumn(0);
-		joinColumns = associationOverride.joinColumns();
-		assertNull(joinColumns.next().getName());
-		assertEquals(false, joinColumns.hasNext());
-		assertSourceContains("@AssociationOverrides(@AssociationOverride(name = \"" + ASSOCIATION_OVERRIDE_NAME + "\", joinColumns = @JoinColumn))", cu);
-
-		
-		associationOverride.setName(null);
-		associationOverride.removeJoinColumn(0);
-		assertSourceDoesNotContain("@AssociationOverride", cu);
-	}
-	
-	public void testMoveJoinColumn() throws Exception {
-		ICompilationUnit cu = this.createTestAssociationOverrideWithJoinColumns();
-		JavaResourcePersistentType typeResource = buildJavaTypeResource(cu); 
-		JavaResourcePersistentAttribute attributeResource = typeResource.fields().next();
-		
-		AssociationOverrideAnnotation associationOverride = (AssociationOverrideAnnotation) attributeResource.supportingAnnotations(JPA.ASSOCIATION_OVERRIDE, JPA.ASSOCIATION_OVERRIDES).next();
-		JoinColumnAnnotation joinColumn = associationOverride.joinColumnAt(0);
-		joinColumn.setReferencedColumnName("REF_NAME");
-		joinColumn.setUnique(Boolean.FALSE);
-		joinColumn.setNullable(Boolean.FALSE);
-		joinColumn.setInsertable(Boolean.FALSE);
-		joinColumn.setUpdatable(Boolean.FALSE);
-		joinColumn.setColumnDefinition("COLUMN_DEF");
-		joinColumn.setTable("TABLE");
-		associationOverride.addJoinColumn(0).setName("FOO");
-		assertSourceContains("@AssociationOverrides(@AssociationOverride(name = \"" + ASSOCIATION_OVERRIDE_NAME + "\", joinColumns = {@JoinColumn(name = \"FOO\"), @JoinColumn(name = \"BAR\", referencedColumnName = \"REF_NAME\", unique = false, nullable = false, insertable = false, updatable = false, columnDefinition = \"COLUMN_DEF\", table = \"TABLE\"), @JoinColumn}))", cu);
-
-		associationOverride.moveJoinColumn(2, 0);
-		assertEquals("BAR", associationOverride.joinColumnAt(0).getName());
-		assertNull(associationOverride.joinColumnAt(1).getName());
-		assertEquals("FOO", associationOverride.joinColumnAt(2).getName());
-		assertEquals(3, associationOverride.joinColumnsSize());
-		assertSourceContains("@AssociationOverrides(@AssociationOverride(name = \"" + ASSOCIATION_OVERRIDE_NAME + "\", joinColumns = {@JoinColumn(name = \"BAR\", referencedColumnName = \"REF_NAME\", unique = false, nullable = false, insertable = false, updatable = false, columnDefinition = \"COLUMN_DEF\", table = \"TABLE\"), @JoinColumn, @JoinColumn(name = \"FOO\")}))", cu);
-	}
-	
-	public void testMoveJoinColumn2() throws Exception {
-		ICompilationUnit cu = this.createTestAssociationOverrideWithJoinColumns();
-		JavaResourcePersistentType typeResource = buildJavaTypeResource(cu);
-		JavaResourcePersistentAttribute attributeResource = typeResource.fields().next();
-		
-		AssociationOverrideAnnotation associationOverride = (AssociationOverrideAnnotation) attributeResource.supportingAnnotations(JPA.ASSOCIATION_OVERRIDE, JPA.ASSOCIATION_OVERRIDES).next();
-		
-		JoinColumnAnnotation joinColumn = associationOverride.joinColumnAt(0);
-		joinColumn.setReferencedColumnName("REF_NAME");
-		joinColumn.setUnique(Boolean.FALSE);
-		joinColumn.setNullable(Boolean.FALSE);
-		joinColumn.setInsertable(Boolean.FALSE);
-		joinColumn.setUpdatable(Boolean.FALSE);
-		joinColumn.setColumnDefinition("COLUMN_DEF");
-		joinColumn.setTable("TABLE");
-		associationOverride.addJoinColumn(0).setName("FOO");
-		
-		assertSourceContains("@AssociationOverrides(@AssociationOverride(name = \"" + ASSOCIATION_OVERRIDE_NAME + "\", joinColumns = {@JoinColumn(name = \"FOO\"), @JoinColumn(name = \"BAR\", referencedColumnName = \"REF_NAME\", unique = false, nullable = false, insertable = false, updatable = false, columnDefinition = \"COLUMN_DEF\", table = \"TABLE\"), @JoinColumn}))", cu);
-		associationOverride.moveJoinColumn(0, 2);
-		assertNull(associationOverride.joinColumnAt(0).getName());
-		assertEquals("FOO", associationOverride.joinColumnAt(1).getName());
-		assertEquals("BAR", associationOverride.joinColumnAt(2).getName());
-		assertEquals(3, associationOverride.joinColumnsSize());
-		assertSourceContains("@AssociationOverrides(@AssociationOverride(name = \"" + ASSOCIATION_OVERRIDE_NAME + "\", joinColumns = {@JoinColumn, @JoinColumn(name = \"FOO\"), @JoinColumn(name = \"BAR\", referencedColumnName = \"REF_NAME\", unique = false, nullable = false, insertable = false, updatable = false, columnDefinition = \"COLUMN_DEF\", table = \"TABLE\")}))", cu);
-	}
-	
-	public void testSetJoinColumnName() throws Exception {
-		ICompilationUnit cu = this.createTestAssociationOverrideWithJoinColumns();
-		JavaResourcePersistentType typeResource = buildJavaTypeResource(cu); 
-		JavaResourcePersistentAttribute attributeResource = typeResource.fields().next();
-		
-		AssociationOverrideAnnotation associationOverride = (AssociationOverrideAnnotation) attributeResource.supportingAnnotations(JPA.ASSOCIATION_OVERRIDE, JPA.ASSOCIATION_OVERRIDES).next();
-				
-		assertEquals(2, associationOverride.joinColumnsSize());
-		
-		JoinColumnAnnotation joinColumn = associationOverride.joinColumns().next();
-		
-		assertEquals("BAR", joinColumn.getName());
-		
-		joinColumn.setName("foo");
-		assertEquals("foo", joinColumn.getName());
-		
-		assertSourceContains("@AssociationOverrides(@AssociationOverride(name = \"" + ASSOCIATION_OVERRIDE_NAME + "\", joinColumns = {@JoinColumn(name = \"foo\"), @JoinColumn}))", cu);
-	}
-}
diff --git a/jpa/tests/org.eclipse.jpt.core.tests/src/org/eclipse/jpt/core/tests/internal/resource/java/AttributeOverrideTests.java b/jpa/tests/org.eclipse.jpt.core.tests/src/org/eclipse/jpt/core/tests/internal/resource/java/AttributeOverrideTests.java
deleted file mode 100644
index 74aa629..0000000
--- a/jpa/tests/org.eclipse.jpt.core.tests/src/org/eclipse/jpt/core/tests/internal/resource/java/AttributeOverrideTests.java
+++ /dev/null
@@ -1,150 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.core.tests.internal.resource.java;
-
-import java.util.Iterator;
-import org.eclipse.jdt.core.ICompilationUnit;
-import org.eclipse.jpt.core.resource.java.AttributeOverrideAnnotation;
-import org.eclipse.jpt.core.resource.java.ColumnAnnotation;
-import org.eclipse.jpt.core.resource.java.JPA;
-import org.eclipse.jpt.core.resource.java.JavaResourcePersistentAttribute;
-import org.eclipse.jpt.core.resource.java.JavaResourcePersistentType;
-import org.eclipse.jpt.utility.internal.iterators.ArrayIterator;
-
-@SuppressWarnings("nls")
-public class AttributeOverrideTests extends JavaResourceModelTestCase {
-	
-	private static final String COLUMN_NAME = "MY_COLUMN";
-	private static final String ATTRIBUTE_OVERRIDE_NAME = "MY_ATTRIBUTE_OVERRIDE";
-	
-	public AttributeOverrideTests(String name) {
-		super(name);
-	}
-
-	private ICompilationUnit createTestAttributeOverrideOnField() throws Exception {
-		return this.createTestType(new DefaultAnnotationWriter() {
-			@Override
-			public Iterator<String> imports() {
-				return new ArrayIterator<String>(JPA.ATTRIBUTE_OVERRIDE, JPA.COLUMN);
-			}
-			@Override
-			public void appendIdFieldAnnotationTo(StringBuilder sb) {
-				sb.append("@AttributeOverride(name = \"" + ATTRIBUTE_OVERRIDE_NAME + "\")");
-			}
-		});
-	}
-	
-	private ICompilationUnit createTestAttributeOverrideWithColumnOnField() throws Exception {
-		return this.createTestType(new DefaultAnnotationWriter() {
-			@Override
-			public Iterator<String> imports() {
-				return new ArrayIterator<String>(JPA.ATTRIBUTE_OVERRIDE, JPA.COLUMN);
-			}
-			@Override
-			public void appendIdFieldAnnotationTo(StringBuilder sb) {
-				sb.append("@AttributeOverride(name = \"" + ATTRIBUTE_OVERRIDE_NAME + "\", column = @Column(name = \"" + COLUMN_NAME + "\"))");
-			}
-		});
-	}
-		
-	public void testGetName() throws Exception {
-		ICompilationUnit cu = this.createTestAttributeOverrideOnField();
-		JavaResourcePersistentType typeResource = buildJavaTypeResource(cu); 
-		JavaResourcePersistentAttribute attributeResource = typeResource.fields().next();
-		AttributeOverrideAnnotation attributeOverride = (AttributeOverrideAnnotation) attributeResource.getSupportingAnnotation(JPA.ATTRIBUTE_OVERRIDE);
-
-		assertNotNull(attributeOverride);
-		assertEquals(ATTRIBUTE_OVERRIDE_NAME, attributeOverride.getName());
-	}
-
-	public void testGetNullColumn() throws Exception {
-		ICompilationUnit cu = this.createTestAttributeOverrideOnField();
-		JavaResourcePersistentType typeResource = buildJavaTypeResource(cu); 
-		JavaResourcePersistentAttribute attributeResource = typeResource.fields().next();
-		AttributeOverrideAnnotation attributeOverride = (AttributeOverrideAnnotation) attributeResource.getSupportingAnnotation(JPA.ATTRIBUTE_OVERRIDE);
-		ColumnAnnotation column = attributeOverride.getColumn();
-		assertNotNull(attributeOverride);
-		assertNull(column);
-	}
-
-	public void testSetName() throws Exception {
-		ICompilationUnit cu = this.createTestAttributeOverrideOnField();
-		JavaResourcePersistentType typeResource = buildJavaTypeResource(cu); 
-		JavaResourcePersistentAttribute attributeResource = typeResource.fields().next();
-		AttributeOverrideAnnotation attributeOverride = (AttributeOverrideAnnotation) attributeResource.getSupportingAnnotation(JPA.ATTRIBUTE_OVERRIDE);
-
-		assertNotNull(attributeOverride);
-		assertEquals(ATTRIBUTE_OVERRIDE_NAME, attributeOverride.getName());
-
-		attributeOverride.setName("Foo");
-		assertEquals("Foo", attributeOverride.getName());
-		assertSourceContains("@AttributeOverride(name = \"Foo\")", cu);
-	}
-	
-	public void testSetNameNull() throws Exception {
-		ICompilationUnit cu = this.createTestAttributeOverrideOnField();
-		JavaResourcePersistentType typeResource = buildJavaTypeResource(cu); 
-		JavaResourcePersistentAttribute attributeResource = typeResource.fields().next();
-		AttributeOverrideAnnotation attributeOverride = (AttributeOverrideAnnotation) attributeResource.getSupportingAnnotation(JPA.ATTRIBUTE_OVERRIDE);
-
-		assertEquals(ATTRIBUTE_OVERRIDE_NAME, attributeOverride.getName());
-		
-		attributeOverride.setName(null);
-		assertNull(attributeOverride.getName());
-		
-		assertSourceDoesNotContain("@AttributeOverride(name=\"" + ATTRIBUTE_OVERRIDE_NAME + "\")", cu);
-		assertSourceContains("@AttributeOverride", cu);
-	}
-	
-	public void testColumnGetName() throws Exception {
-		ICompilationUnit cu = this.createTestAttributeOverrideWithColumnOnField();
-		JavaResourcePersistentType typeResource = buildJavaTypeResource(cu); 
-		JavaResourcePersistentAttribute attributeResource = typeResource.fields().next();
-		AttributeOverrideAnnotation attributeOverride = (AttributeOverrideAnnotation) attributeResource.getSupportingAnnotation(JPA.ATTRIBUTE_OVERRIDE);
-		ColumnAnnotation column = attributeOverride.getColumn();
-		assertEquals(COLUMN_NAME, column.getName());
-	}
-	
-	public void testColumnSetName() throws Exception {
-		ICompilationUnit cu = this.createTestAttributeOverrideWithColumnOnField();
-		JavaResourcePersistentType typeResource = buildJavaTypeResource(cu); 
-		JavaResourcePersistentAttribute attributeResource = typeResource.fields().next();
-		AttributeOverrideAnnotation attributeOverride = (AttributeOverrideAnnotation) attributeResource.getSupportingAnnotation(JPA.ATTRIBUTE_OVERRIDE);
-		ColumnAnnotation column = attributeOverride.getColumn();
-		assertEquals(COLUMN_NAME, column.getName());
-		
-		column.setName("Foo");
-		
-		assertSourceContains("@AttributeOverride(name = \"" + ATTRIBUTE_OVERRIDE_NAME + "\", column = @Column(name = \"Foo\"))", cu);
-		
-		column.setName(null);
-		assertNull(attributeOverride.getColumn());
-		assertSourceContains("@AttributeOverride(name = \"" + ATTRIBUTE_OVERRIDE_NAME + "\")", cu);
-	}
-	
-	public void testAddColumn() throws Exception {
-		ICompilationUnit cu = this.createTestAttributeOverrideOnField();
-		JavaResourcePersistentType typeResource = buildJavaTypeResource(cu); 
-		JavaResourcePersistentAttribute attributeResource = typeResource.fields().next();
-		AttributeOverrideAnnotation attributeOverride = (AttributeOverrideAnnotation) attributeResource.getSupportingAnnotation(JPA.ATTRIBUTE_OVERRIDE);
-		ColumnAnnotation column = attributeOverride.getColumn();
-		assertNull(column);
-	}
-	
-	public void testRemoveColumn() throws Exception {
-		ICompilationUnit cu = this.createTestAttributeOverrideOnField();
-		JavaResourcePersistentType typeResource = buildJavaTypeResource(cu); 
-		JavaResourcePersistentAttribute attributeResource = typeResource.fields().next();
-		AttributeOverrideAnnotation attributeOverride = (AttributeOverrideAnnotation) attributeResource.getSupportingAnnotation(JPA.ATTRIBUTE_OVERRIDE);
-		ColumnAnnotation column = attributeOverride.getColumn();
-		assertNull(column);
-	}
-
-}
diff --git a/jpa/tests/org.eclipse.jpt.core.tests/src/org/eclipse/jpt/core/tests/internal/resource/java/AttributeOverridesTests.java b/jpa/tests/org.eclipse.jpt.core.tests/src/org/eclipse/jpt/core/tests/internal/resource/java/AttributeOverridesTests.java
deleted file mode 100644
index 51b5418..0000000
--- a/jpa/tests/org.eclipse.jpt.core.tests/src/org/eclipse/jpt/core/tests/internal/resource/java/AttributeOverridesTests.java
+++ /dev/null
@@ -1,272 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.core.tests.internal.resource.java;
-
-import java.util.Iterator;
-
-import org.eclipse.jdt.core.ICompilationUnit;
-import org.eclipse.jpt.core.resource.java.AttributeOverrideAnnotation;
-import org.eclipse.jpt.core.resource.java.AttributeOverridesAnnotation;
-import org.eclipse.jpt.core.resource.java.ColumnAnnotation;
-import org.eclipse.jpt.core.resource.java.JPA;
-import org.eclipse.jpt.core.resource.java.JavaResourcePersistentAttribute;
-import org.eclipse.jpt.core.resource.java.JavaResourcePersistentType;
-import org.eclipse.jpt.core.resource.java.NestableAnnotation;
-import org.eclipse.jpt.utility.internal.CollectionTools;
-import org.eclipse.jpt.utility.internal.iterators.ArrayIterator;
-
-@SuppressWarnings("nls")
-public class AttributeOverridesTests extends JavaResourceModelTestCase {
-	
-	private static final String COLUMN_NAME = "MY_COLUMN";
-	private static final String ATTRIBUTE_OVERRIDE_NAME = "MY_ATTRIBUTE_OVERRIDE";
-	
-	public AttributeOverridesTests(String name) {
-		super(name);
-	}
-
-	private ICompilationUnit createTestAttributeOverrideOnField() throws Exception {
-		return this.createTestType(new DefaultAnnotationWriter() {
-			@Override
-			public Iterator<String> imports() {
-				return new ArrayIterator<String>(JPA.ATTRIBUTE_OVERRIDE, JPA.ATTRIBUTE_OVERRIDES, JPA.COLUMN);
-			}
-			@Override
-			public void appendIdFieldAnnotationTo(StringBuilder sb) {
-				sb.append("@AttributeOverrides(@AttributeOverride(name = \"" + ATTRIBUTE_OVERRIDE_NAME + "\"))");
-			}
-		});
-	}
-	
-	private ICompilationUnit createTestAttributeOverrideWithColumnOnField() throws Exception {
-		return this.createTestType(new DefaultAnnotationWriter() {
-			@Override
-			public Iterator<String> imports() {
-				return new ArrayIterator<String>(JPA.ATTRIBUTE_OVERRIDE, JPA.ATTRIBUTE_OVERRIDES, JPA.COLUMN);
-			}
-			@Override
-			public void appendIdFieldAnnotationTo(StringBuilder sb) {
-				sb.append("@AttributeOverrides(@AttributeOverride(name = \"" + ATTRIBUTE_OVERRIDE_NAME + "\", column = @Column(name = \"" + COLUMN_NAME + "\")))");
-			}
-		});
-	}
-	
-	private ICompilationUnit createTestAttributeOverride() throws Exception {
-		return this.createTestType(new DefaultAnnotationWriter() {
-			@Override
-			public Iterator<String> imports() {
-				return new ArrayIterator<String>(JPA.ENTITY, JPA.ATTRIBUTE_OVERRIDE, JPA.COLUMN);
-			}
-			@Override
-			public void appendTypeAnnotationTo(StringBuilder sb) {
-				sb.append("@Entity");
-				sb.append(CR);
-				sb.append("@AttributeOverride(name = \"FOO\", column = @Column(name = \"FOO\", columnDefinition = \"BAR\", table = \"BAZ\", unique = false, nullable = false, insertable = false, updatable = false, length = 1, precision = 1, scale = 1))");
-			}
-		});
-	}
-
-	public void testGetName() throws Exception {
-		ICompilationUnit cu = this.createTestAttributeOverrideOnField();
-		JavaResourcePersistentType typeResource = buildJavaTypeResource(cu); 
-		JavaResourcePersistentAttribute attributeResource = typeResource.fields().next();
-		AttributeOverridesAnnotation attributeOverrides = (AttributeOverridesAnnotation) attributeResource.getSupportingAnnotation(JPA.ATTRIBUTE_OVERRIDES);
-		AttributeOverrideAnnotation attributeOverride = attributeOverrides.nestedAnnotations().next();
-
-		assertNotNull(attributeOverride);
-		assertEquals(ATTRIBUTE_OVERRIDE_NAME, attributeOverride.getName());
-	}
-
-	public void testGetNullColumn() throws Exception {
-		ICompilationUnit cu = this.createTestAttributeOverrideOnField();
-		JavaResourcePersistentType typeResource = buildJavaTypeResource(cu); 
-		JavaResourcePersistentAttribute attributeResource = typeResource.fields().next();
-		AttributeOverridesAnnotation attributeOverrides = (AttributeOverridesAnnotation) attributeResource.getSupportingAnnotation(JPA.ATTRIBUTE_OVERRIDES);
-		AttributeOverrideAnnotation attributeOverride = attributeOverrides.nestedAnnotations().next();
-		ColumnAnnotation column = attributeOverride.getColumn();
-		assertNotNull(attributeOverride);
-		assertNull(column);
-	}
-
-	public void testSetName() throws Exception {
-		ICompilationUnit cu = this.createTestAttributeOverrideOnField();
-		JavaResourcePersistentType typeResource = buildJavaTypeResource(cu); 
-		JavaResourcePersistentAttribute attributeResource = typeResource.fields().next();
-		AttributeOverridesAnnotation attributeOverrides = (AttributeOverridesAnnotation) attributeResource.getSupportingAnnotation(JPA.ATTRIBUTE_OVERRIDES);
-		AttributeOverrideAnnotation attributeOverride = attributeOverrides.nestedAnnotations().next();
-
-		assertNotNull(attributeOverride);
-		assertEquals(ATTRIBUTE_OVERRIDE_NAME, attributeOverride.getName());
-
-		attributeOverride.setName("Foo");
-		assertEquals("Foo", attributeOverride.getName());
-		assertSourceContains("@AttributeOverrides(@AttributeOverride(name = \"Foo\"))", cu);
-	}
-	
-	public void testSetNameNull() throws Exception {
-		ICompilationUnit cu = this.createTestAttributeOverrideOnField();
-		JavaResourcePersistentType typeResource = buildJavaTypeResource(cu); 
-		JavaResourcePersistentAttribute attributeResource = typeResource.fields().next();
-		AttributeOverridesAnnotation attributeOverrides = (AttributeOverridesAnnotation) attributeResource.getSupportingAnnotation(JPA.ATTRIBUTE_OVERRIDES);
-		AttributeOverrideAnnotation attributeOverride = attributeOverrides.nestedAnnotations().next();
-		assertEquals(ATTRIBUTE_OVERRIDE_NAME, attributeOverride.getName());
-		
-		attributeOverride.setName(null);
-		assertNull(attributeOverride.getName());
-		
-		assertSourceDoesNotContain("@AttributeOverride(name=\"" + ATTRIBUTE_OVERRIDE_NAME + "\")", cu);
-		assertSourceContains("@AttributeOverride", cu);
-		assertSourceContains("@AttributeOverrides", cu);
-	}
-	
-	public void testColumnGetName() throws Exception {
-		ICompilationUnit cu = this.createTestAttributeOverrideWithColumnOnField();
-		JavaResourcePersistentType typeResource = buildJavaTypeResource(cu); 
-		JavaResourcePersistentAttribute attributeResource = typeResource.fields().next();
-		AttributeOverridesAnnotation attributeOverrides = (AttributeOverridesAnnotation) attributeResource.getSupportingAnnotation(JPA.ATTRIBUTE_OVERRIDES);
-		AttributeOverrideAnnotation attributeOverride = attributeOverrides.nestedAnnotations().next();
-
-		ColumnAnnotation column = attributeOverride.getColumn();
-		assertEquals(COLUMN_NAME, column.getName());
-	}
-	
-	public void testColumnSetName() throws Exception {
-		ICompilationUnit cu = this.createTestAttributeOverrideWithColumnOnField();
-		JavaResourcePersistentType typeResource = buildJavaTypeResource(cu); 
-		JavaResourcePersistentAttribute attributeResource = typeResource.fields().next();
-		AttributeOverrideAnnotation attributeOverride = (AttributeOverrideAnnotation) attributeResource.supportingAnnotations(JPA.ATTRIBUTE_OVERRIDE, JPA.ATTRIBUTE_OVERRIDES).next();
-
-		ColumnAnnotation column = attributeOverride.getColumn();
-		
-		assertEquals(COLUMN_NAME, column.getName());
-		
-		column.setName("Foo");
-		
-		assertSourceContains("@AttributeOverrides(@AttributeOverride(name = \"" + ATTRIBUTE_OVERRIDE_NAME + "\", column = @Column(name = \"Foo\")))", cu);
-		
-		column.setName(null);
-		assertNull(attributeOverride.getColumn());
-		assertSourceContains("@AttributeOverride(name = \"" + ATTRIBUTE_OVERRIDE_NAME + "\")", cu);
-	}
-	
-	public void testAddAttributeOverrideCopyExisting() throws Exception {
-		ICompilationUnit cu = createTestAttributeOverride();
-		JavaResourcePersistentType typeResource = buildJavaTypeResource(cu);
-		
-		AttributeOverrideAnnotation attributeOverride = (AttributeOverrideAnnotation) typeResource.addSupportingAnnotation(1, JPA.ATTRIBUTE_OVERRIDE, JPA.ATTRIBUTE_OVERRIDES);
-		attributeOverride.setName("BAR");
-		assertSourceContains("@AttributeOverrides({@AttributeOverride(name = \"FOO\", column = @Column(name = \"FOO\", columnDefinition = \"BAR\", table = \"BAZ\", unique = false, nullable = false, insertable = false, updatable = false, length = 1, precision = 1, scale = 1)),@AttributeOverride(name = \"BAR\")})", cu);
-		
-		assertNull(typeResource.getSupportingAnnotation(JPA.ATTRIBUTE_OVERRIDE));
-		assertNotNull(typeResource.getSupportingAnnotation(JPA.ATTRIBUTE_OVERRIDES));
-		assertEquals(2, CollectionTools.size(typeResource.supportingAnnotations(JPA.ATTRIBUTE_OVERRIDE, JPA.ATTRIBUTE_OVERRIDES)));
-	}
-	
-	public void testAddAttributeOverrideToBeginningOfList() throws Exception {
-		ICompilationUnit cu = createTestAttributeOverride();
-		JavaResourcePersistentType typeResource = buildJavaTypeResource(cu);
-		
-		AttributeOverrideAnnotation attributeOverride = (AttributeOverrideAnnotation) typeResource.addSupportingAnnotation(1, JPA.ATTRIBUTE_OVERRIDE, JPA.ATTRIBUTE_OVERRIDES);
-		attributeOverride.setName("BAR");
-		assertSourceContains("@AttributeOverrides({@AttributeOverride(name = \"FOO\", column = @Column(name = \"FOO\", columnDefinition = \"BAR\", table = \"BAZ\", unique = false, nullable = false, insertable = false, updatable = false, length = 1, precision = 1, scale = 1)),@AttributeOverride(name = \"BAR\")})", cu);
-		
-		attributeOverride = (AttributeOverrideAnnotation) typeResource.addSupportingAnnotation(0, JPA.ATTRIBUTE_OVERRIDE, JPA.ATTRIBUTE_OVERRIDES);
-		attributeOverride.setName("BAZ");
-		assertSourceContains("@AttributeOverrides({@AttributeOverride(name = \"BAZ\"),@AttributeOverride(name = \"FOO\", column = @Column(name = \"FOO\", columnDefinition = \"BAR\", table = \"BAZ\", unique = false, nullable = false, insertable = false, updatable = false, length = 1, precision = 1, scale = 1)), @AttributeOverride(name = \"BAR\")})", cu);
-
-		Iterator<NestableAnnotation> attributeOverrides = typeResource.supportingAnnotations(JPA.ATTRIBUTE_OVERRIDE, JPA.ATTRIBUTE_OVERRIDES);
-		assertEquals("BAZ", ((AttributeOverrideAnnotation) attributeOverrides.next()).getName());
-		assertEquals("FOO", ((AttributeOverrideAnnotation) attributeOverrides.next()).getName());
-		assertEquals("BAR", ((AttributeOverrideAnnotation) attributeOverrides.next()).getName());
-
-		assertNull(typeResource.getSupportingAnnotation(JPA.ATTRIBUTE_OVERRIDE));
-		assertNotNull(typeResource.getSupportingAnnotation(JPA.ATTRIBUTE_OVERRIDES));
-		assertEquals(3, CollectionTools.size(typeResource.supportingAnnotations(JPA.ATTRIBUTE_OVERRIDE, JPA.ATTRIBUTE_OVERRIDES)));
-	}
-
-	public void testRemoveAttributeOverrideCopyExisting() throws Exception {
-		ICompilationUnit cu = createTestAttributeOverride();
-		JavaResourcePersistentType typeResource = buildJavaTypeResource(cu);
-		
-		AttributeOverrideAnnotation attributeOverride = (AttributeOverrideAnnotation) typeResource.addSupportingAnnotation(1, JPA.ATTRIBUTE_OVERRIDE, JPA.ATTRIBUTE_OVERRIDES);
-		attributeOverride.setName("BAR");
-		assertSourceContains("@AttributeOverrides({@AttributeOverride(name = \"FOO\", column = @Column(name = \"FOO\", columnDefinition = \"BAR\", table = \"BAZ\", unique = false, nullable = false, insertable = false, updatable = false, length = 1, precision = 1, scale = 1)),@AttributeOverride(name = \"BAR\")})", cu);
-		
-		typeResource.removeSupportingAnnotation(1, JPA.ATTRIBUTE_OVERRIDE, JPA.ATTRIBUTE_OVERRIDES);
-		assertSourceContains("@AttributeOverride(name = \"FOO\", column = @Column(name = \"FOO\", columnDefinition = \"BAR\", table = \"BAZ\", unique = false, nullable = false, insertable = false, updatable = false, length = 1, precision = 1, scale = 1))", cu);
-	}
-	//not sure i want to test this api, how can we keep ContainerAnnotation.add, move, remove from being public?
-	//users should go throught AbstractJavapersistenceResource. this gets confusing because you would handle it differently
-	//for non top-level annotations
-//	public void testAdd() throws Exception {
-//		ICompilationUnit cu = this.createTestType();
-//		JavaPersistentTypeResource typeResource = buildJavaTypeResource(cu); 
-//		JavaPersistentAttributeResource attributeResource = typeResource.fields().next();
-//		AttributeOverrides attributeOverrides = (AttributeOverrides) attributeResource.annotation(JPA.ATTRIBUTE_OVERRIDES);
-//		assertNull(attributeOverrides);
-//		
-//		attributeResource.addAnnotation(JPA.ATTRIBUTE_OVERRIDES);
-//		attributeOverrides = (AttributeOverrides) attributeResource.annotation(JPA.ATTRIBUTE_OVERRIDES);
-//		assertNotNull(attributeOverrides);
-//		
-//		assertSourceContains("@AttributeOverrides");
-//		
-//		AttributeOverride fooAttributeOverride = attributeOverrides.add(0);
-//		fooAttributeOverride.setName("Foo");
-//	
-//		assertSourceContains("@AttributeOverrides(@AttributeOverride(name=\"Foo\"))");
-//
-//		AttributeOverride barAttributeOverride = attributeOverrides.add(0);
-//		barAttributeOverride.setName("Bar");
-//	
-//		assertSourceContains("@AttributeOverrides({@AttributeOverride(name=\"Bar\"), @AttributeOverride(name=\"Foo\")})");
-//
-//	}
-//	
-//	public void testMove() throws Exception {
-//		ICompilationUnit cu = this.createTestAttributeOverrideWithColumnOnField();
-//		JavaPersistentTypeResource typeResource = buildJavaTypeResource(cu); 
-//		JavaPersistentAttributeResource attributeResource = typeResource.fields().next();
-//		AttributeOverrides attributeOverrides = (AttributeOverrides) attributeResource.annotation(JPA.ATTRIBUTE_OVERRIDES);
-//		
-//		AttributeOverride fooAttributeOverride = attributeOverrides.add(1);
-//		fooAttributeOverride.setName("Foo");
-//		
-//		assertSourceContains("@AttributeOverrides({@AttributeOverride(name=\"" + ATTRIBUTE_OVERRIDE_NAME + "\"), @AttributeOverride(name=\"Foo\")})");
-//		
-//		attributeOverrides.move(0, 1);
-//		
-//		assertSourceContains("@AttributeOverrides({@AttributeOverride(name=\"Foo\"), @AttributeOverride(name=\"" + ATTRIBUTE_OVERRIDE_NAME + "\")})");
-//	}
-//	
-//	public void testRemove() throws Exception {
-//		ICompilationUnit cu = this.createTestAttributeOverrideWithColumnOnField();
-//		JavaPersistentTypeResource typeResource = buildJavaTypeResource(cu); 
-//		JavaPersistentAttributeResource attributeResource = typeResource.fields().next();
-//		AttributeOverrides attributeOverrides = (AttributeOverrides) attributeResource.annotation(JPA.ATTRIBUTE_OVERRIDES);
-//		
-//		AttributeOverride fooAttributeOverride = attributeOverrides.add(1);
-//		fooAttributeOverride.setName("Foo");
-//		
-//		assertSourceContains("@AttributeOverrides({@AttributeOverride(name=\"" + ATTRIBUTE_OVERRIDE_NAME + "\"), @AttributeOverride(name=\"Foo\")})");
-//		
-//		attributeOverrides.remove(0);
-//
-//		assertSourceContains("@AttributeOverrides(@AttributeOverride(name=\"Foo\"))");
-//
-//		attributeOverrides.remove(0);
-//		
-//		assertSourceContains("@AttributeOverrides()");
-//
-//	}
-	
-
-
-}
diff --git a/jpa/tests/org.eclipse.jpt.core.tests/src/org/eclipse/jpt/core/tests/internal/resource/java/BasicTests.java b/jpa/tests/org.eclipse.jpt.core.tests/src/org/eclipse/jpt/core/tests/internal/resource/java/BasicTests.java
deleted file mode 100644
index f2077b9..0000000
--- a/jpa/tests/org.eclipse.jpt.core.tests/src/org/eclipse/jpt/core/tests/internal/resource/java/BasicTests.java
+++ /dev/null
@@ -1,151 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.core.tests.internal.resource.java;
-
-import java.util.Iterator;
-import org.eclipse.jdt.core.ICompilationUnit;
-import org.eclipse.jpt.core.resource.java.BasicAnnotation;
-import org.eclipse.jpt.core.resource.java.FetchType;
-import org.eclipse.jpt.core.resource.java.JPA;
-import org.eclipse.jpt.core.resource.java.JavaResourcePersistentAttribute;
-import org.eclipse.jpt.core.resource.java.JavaResourcePersistentType;
-import org.eclipse.jpt.utility.internal.iterators.ArrayIterator;
-
-@SuppressWarnings("nls")
-public class BasicTests extends JavaResourceModelTestCase {
-	
-	public BasicTests(String name) {
-		super(name);
-	}
-
-	private ICompilationUnit createTestBasic() throws Exception {
-		return this.createTestType(new DefaultAnnotationWriter() {
-			@Override
-			public Iterator<String> imports() {
-				return new ArrayIterator<String>(JPA.BASIC);
-			}
-			@Override
-			public void appendIdFieldAnnotationTo(StringBuilder sb) {
-				sb.append("@Basic");
-			}
-		});
-	}
-	
-	private ICompilationUnit createTestBasicWithOptional() throws Exception {
-		return this.createTestType(new DefaultAnnotationWriter() {
-			@Override
-			public Iterator<String> imports() {
-				return new ArrayIterator<String>(JPA.BASIC);
-			}
-			@Override
-			public void appendIdFieldAnnotationTo(StringBuilder sb) {
-				sb.append("@Basic(optional = true)");
-			}
-		});
-	}
-	
-	private ICompilationUnit createTestBasicWithFetch() throws Exception {
-		return this.createTestType(new DefaultAnnotationWriter() {
-			@Override
-			public Iterator<String> imports() {
-				return new ArrayIterator<String>(JPA.BASIC, JPA.FETCH_TYPE);
-			}
-			@Override
-			public void appendIdFieldAnnotationTo(StringBuilder sb) {
-				sb.append("@Basic(fetch = FetchType.EAGER)");
-			}
-		});
-	}
-
-	public void testBasic() throws Exception {
-		ICompilationUnit cu = this.createTestBasic();
-		JavaResourcePersistentType typeResource = buildJavaTypeResource(cu); 
-		JavaResourcePersistentAttribute attributeResource = typeResource.fields().next();
-		
-		BasicAnnotation basic = (BasicAnnotation) attributeResource.getMappingAnnotation(JPA.BASIC);
-		assertNotNull(basic);
-	}
-
-	public void testGetOptional() throws Exception {
-		ICompilationUnit cu = this.createTestBasicWithOptional();
-		JavaResourcePersistentType typeResource = buildJavaTypeResource(cu);
-		JavaResourcePersistentAttribute attributeResource = typeResource.fields().next();
-		
-		BasicAnnotation basic = (BasicAnnotation) attributeResource.getMappingAnnotation(JPA.BASIC);
-		assertEquals(Boolean.TRUE, basic.getOptional());
-	}
-
-	public void testSetOptional() throws Exception {
-		ICompilationUnit cu = this.createTestBasicWithOptional();
-		JavaResourcePersistentType typeResource = buildJavaTypeResource(cu);
-		JavaResourcePersistentAttribute attributeResource = typeResource.fields().next();
-		
-		BasicAnnotation basic = (BasicAnnotation) attributeResource.getMappingAnnotation(JPA.BASIC);
-		assertEquals(Boolean.TRUE, basic.getOptional());
-		
-		basic.setOptional(Boolean.FALSE);
-		assertEquals(Boolean.FALSE, basic.getOptional());
-		
-		assertSourceContains("@Basic(optional = false)", cu);
-	}
-	
-	public void testSetOptionalNull() throws Exception {
-		ICompilationUnit cu = this.createTestBasicWithOptional();
-		JavaResourcePersistentType typeResource = buildJavaTypeResource(cu);
-		JavaResourcePersistentAttribute attributeResource = typeResource.fields().next();
-		
-		BasicAnnotation basic = (BasicAnnotation) attributeResource.getMappingAnnotation(JPA.BASIC);
-		assertEquals(Boolean.TRUE, basic.getOptional());
-		
-		basic.setOptional(null);
-		assertNull(basic.getOptional());
-		
-		assertSourceContains("@Basic", cu);
-		assertSourceDoesNotContain("optional", cu);
-	}
-	
-	public void testGetFetch() throws Exception {
-		ICompilationUnit cu = this.createTestBasicWithFetch();
-		JavaResourcePersistentType typeResource = buildJavaTypeResource(cu);
-		JavaResourcePersistentAttribute attributeResource = typeResource.fields().next();
-		
-		BasicAnnotation basic = (BasicAnnotation) attributeResource.getMappingAnnotation(JPA.BASIC);
-		assertEquals(FetchType.EAGER, basic.getFetch());
-	}
-
-	public void testSetFetch() throws Exception {
-		ICompilationUnit cu = this.createTestBasicWithFetch();
-		JavaResourcePersistentType typeResource = buildJavaTypeResource(cu);
-		JavaResourcePersistentAttribute attributeResource = typeResource.fields().next();
-		
-		BasicAnnotation basic = (BasicAnnotation) attributeResource.getMappingAnnotation(JPA.BASIC);
-		assertEquals(FetchType.EAGER, basic.getFetch());
-		
-		basic.setFetch(FetchType.LAZY);
-		assertEquals(FetchType.LAZY, basic.getFetch());
-		
-		assertSourceContains("@Basic(fetch = LAZY)", cu);
-	}
-	
-	public void testSetFetchNull() throws Exception {
-		ICompilationUnit cu = this.createTestBasicWithFetch();
-		JavaResourcePersistentType typeResource = buildJavaTypeResource(cu);
-		JavaResourcePersistentAttribute attributeResource = typeResource.fields().next();
-		
-		BasicAnnotation basic = (BasicAnnotation) attributeResource.getMappingAnnotation(JPA.BASIC);
-		assertEquals(FetchType.EAGER, basic.getFetch());
-		
-		basic.setFetch(null);
-		assertNull(basic.getFetch());
-		
-		assertSourceContains("@Basic", cu);
-		assertSourceDoesNotContain("fetch", cu);
-	}
-}
diff --git a/jpa/tests/org.eclipse.jpt.core.tests/src/org/eclipse/jpt/core/tests/internal/resource/java/ColumnTests.java b/jpa/tests/org.eclipse.jpt.core.tests/src/org/eclipse/jpt/core/tests/internal/resource/java/ColumnTests.java
deleted file mode 100644
index f82a496..0000000
--- a/jpa/tests/org.eclipse.jpt.core.tests/src/org/eclipse/jpt/core/tests/internal/resource/java/ColumnTests.java
+++ /dev/null
@@ -1,404 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.core.tests.internal.resource.java;
-
-import java.util.Iterator;
-import org.eclipse.jdt.core.ICompilationUnit;
-import org.eclipse.jpt.core.resource.java.ColumnAnnotation;
-import org.eclipse.jpt.core.resource.java.JPA;
-import org.eclipse.jpt.core.resource.java.JavaResourcePersistentAttribute;
-import org.eclipse.jpt.core.resource.java.JavaResourcePersistentType;
-import org.eclipse.jpt.utility.internal.iterators.ArrayIterator;
-
-@SuppressWarnings("nls")
-public class ColumnTests extends JavaResourceModelTestCase {
-	
-	private static final String COLUMN_NAME = "MY_COLUMN";
-	private static final String COLUMN_TABLE = "MY_TABLE";
-	private static final String COLUMN_COLUMN_DEFINITION = "COLUMN_DEFINITION";
-	
-	public ColumnTests(String name) {
-		super(name);
-	}
-
-	private ICompilationUnit createTestColumn() throws Exception {
-		return this.createTestType(new DefaultAnnotationWriter() {
-			@Override
-			public Iterator<String> imports() {
-				return new ArrayIterator<String>(JPA.COLUMN);
-			}
-			@Override
-			public void appendIdFieldAnnotationTo(StringBuilder sb) {
-				sb.append("@Column");
-			}
-		});
-	}
-	
-	private ICompilationUnit createTestColumnWithName() throws Exception {
-		return this.createTestType(new DefaultAnnotationWriter() {
-			@Override
-			public Iterator<String> imports() {
-				return new ArrayIterator<String>(JPA.COLUMN);
-			}
-			@Override
-			public void appendIdFieldAnnotationTo(StringBuilder sb) {
-				sb.append("@Column(name = \"" + COLUMN_NAME + "\")");
-			}
-		});
-	}
-	
-	private ICompilationUnit createTestColumnWithTable() throws Exception {
-		return this.createTestType(new DefaultAnnotationWriter() {
-			@Override
-			public Iterator<String> imports() {
-				return new ArrayIterator<String>(JPA.COLUMN);
-			}
-			@Override
-			public void appendIdFieldAnnotationTo(StringBuilder sb) {
-				sb.append("@Column(table = \"" + COLUMN_TABLE + "\")");
-			}
-		});
-	}
-	
-	private ICompilationUnit createTestColumnWithColumnDefinition() throws Exception {
-		return this.createTestType(new DefaultAnnotationWriter() {
-			@Override
-			public Iterator<String> imports() {
-				return new ArrayIterator<String>(JPA.COLUMN);
-			}
-			@Override
-			public void appendIdFieldAnnotationTo(StringBuilder sb) {
-				sb.append("@Column(columnDefinition = \"" + COLUMN_COLUMN_DEFINITION + "\")");
-			}
-		});
-	}
-	
-	private ICompilationUnit createTestColumnWithBooleanElement(final String booleanElement) throws Exception {
-		return this.createTestType(new DefaultAnnotationWriter() {
-			@Override
-			public Iterator<String> imports() {
-				return new ArrayIterator<String>(JPA.COLUMN);
-			}
-			@Override
-			public void appendIdFieldAnnotationTo(StringBuilder sb) {
-				sb.append("@Column(" + booleanElement + " = true)");
-			}
-		});
-	}
-	
-	private ICompilationUnit createTestColumnWithIntElement(final String intElement) throws Exception {
-		return this.createTestType(new DefaultAnnotationWriter() {
-			@Override
-			public Iterator<String> imports() {
-				return new ArrayIterator<String>(JPA.COLUMN);
-			}
-			@Override
-			public void appendIdFieldAnnotationTo(StringBuilder sb) {
-				sb.append("@Column(" + intElement + " = 5)");
-			}
-		});
-	}
-	
-	public void testGetName() throws Exception {
-		ICompilationUnit cu = this.createTestColumnWithName();
-		JavaResourcePersistentType typeResource = buildJavaTypeResource(cu); 
-		JavaResourcePersistentAttribute attributeResource = typeResource.fields().next();
-		ColumnAnnotation column = (ColumnAnnotation) attributeResource.getSupportingAnnotation(JPA.COLUMN);
-		assertNotNull(column);
-		assertEquals(COLUMN_NAME, column.getName());
-	}
-
-	public void testGetNull() throws Exception {
-		ICompilationUnit cu = this.createTestColumn();
-		JavaResourcePersistentType typeResource = buildJavaTypeResource(cu); 
-		JavaResourcePersistentAttribute attributeResource = typeResource.fields().next();
-		ColumnAnnotation column = (ColumnAnnotation) attributeResource.getSupportingAnnotation(JPA.COLUMN);
-		assertNotNull(column);
-		assertNull(column.getName());
-		assertNull(column.getNullable());
-		assertNull(column.getInsertable());
-		assertNull(column.getUnique());
-		assertNull(column.getUpdatable());
-		assertNull(column.getTable());
-		assertNull(column.getColumnDefinition());
-	}
-
-	public void testSetName() throws Exception {
-		ICompilationUnit cu = this.createTestColumn();
-		JavaResourcePersistentType typeResource = buildJavaTypeResource(cu); 
-		JavaResourcePersistentAttribute attributeResource = typeResource.fields().next();
-		ColumnAnnotation column = (ColumnAnnotation) attributeResource.getSupportingAnnotation(JPA.COLUMN);
-
-		assertNotNull(column);
-		assertNull(column.getName());
-
-		column.setName("Foo");
-		assertEquals("Foo", column.getName());
-		
-		assertSourceContains("@Column(name = \"Foo\")", cu);
-	}
-	
-	public void testSetNameNull() throws Exception {
-		ICompilationUnit cu = this.createTestColumnWithName();
-		JavaResourcePersistentType typeResource = buildJavaTypeResource(cu); 
-		JavaResourcePersistentAttribute attributeResource = typeResource.fields().next();
-		ColumnAnnotation column = (ColumnAnnotation) attributeResource.getSupportingAnnotation(JPA.COLUMN);
-
-		assertEquals(COLUMN_NAME, column.getName());
-		
-		column.setName(null);
-		assertNull(column.getName());
-		
-		assertSourceDoesNotContain("@Column", cu);
-	}
-	
-	public void testGetTable() throws Exception {
-		ICompilationUnit cu = this.createTestColumnWithTable();
-		JavaResourcePersistentType typeResource = buildJavaTypeResource(cu); 
-		JavaResourcePersistentAttribute attributeResource = typeResource.fields().next();
-		ColumnAnnotation column = (ColumnAnnotation) attributeResource.getSupportingAnnotation(JPA.COLUMN);
-		assertEquals(COLUMN_TABLE, column.getTable());
-	}
-
-	public void testSetTable() throws Exception {
-		ICompilationUnit cu = this.createTestColumn();
-		JavaResourcePersistentType typeResource = buildJavaTypeResource(cu); 
-		JavaResourcePersistentAttribute attributeResource = typeResource.fields().next();
-		ColumnAnnotation column = (ColumnAnnotation) attributeResource.getSupportingAnnotation(JPA.COLUMN);
-
-		assertNotNull(column);
-		assertNull(column.getTable());
-
-		column.setTable("Foo");
-		assertEquals("Foo", column.getTable());
-		
-		assertSourceContains("@Column(table = \"Foo\")", cu);
-
-		
-		column.setTable(null);
-		assertSourceDoesNotContain("@Column", cu);
-	}
-
-	public void testGetColumnDefinition() throws Exception {
-		ICompilationUnit cu = this.createTestColumnWithColumnDefinition();
-		JavaResourcePersistentType typeResource = buildJavaTypeResource(cu); 
-		JavaResourcePersistentAttribute attributeResource = typeResource.fields().next();
-		ColumnAnnotation column = (ColumnAnnotation) attributeResource.getSupportingAnnotation(JPA.COLUMN);
-		assertEquals(COLUMN_COLUMN_DEFINITION, column.getColumnDefinition());
-	}
-
-	public void testSetColumnDefinition() throws Exception {
-		ICompilationUnit cu = this.createTestColumn();
-		JavaResourcePersistentType typeResource = buildJavaTypeResource(cu); 
-		JavaResourcePersistentAttribute attributeResource = typeResource.fields().next();
-		ColumnAnnotation column = (ColumnAnnotation) attributeResource.getSupportingAnnotation(JPA.COLUMN);
-
-		assertNotNull(column);
-		assertNull(column.getColumnDefinition());
-
-		column.setColumnDefinition("Foo");
-		assertEquals("Foo", column.getColumnDefinition());
-		
-		assertSourceContains("@Column(columnDefinition = \"Foo\")", cu);
-
-		
-		column.setColumnDefinition(null);
-		assertSourceDoesNotContain("@Column", cu);
-	}
-
-	public void testGetUnique() throws Exception {
-		ICompilationUnit cu = this.createTestColumnWithBooleanElement("unique");
-		JavaResourcePersistentType typeResource = buildJavaTypeResource(cu); 
-		JavaResourcePersistentAttribute attributeResource = typeResource.fields().next();
-		ColumnAnnotation column = (ColumnAnnotation) attributeResource.getSupportingAnnotation(JPA.COLUMN);
-
-		assertEquals(Boolean.TRUE, column.getUnique());
-	}
-	
-	public void testSetUnique() throws Exception {
-		ICompilationUnit cu = this.createTestColumn();
-		JavaResourcePersistentType typeResource = buildJavaTypeResource(cu); 
-		JavaResourcePersistentAttribute attributeResource = typeResource.fields().next();
-		ColumnAnnotation column = (ColumnAnnotation) attributeResource.getSupportingAnnotation(JPA.COLUMN);
-
-		assertNotNull(column);
-		assertNull(column.getUnique());
-
-		column.setUnique(Boolean.FALSE);
-		assertEquals(Boolean.FALSE, column.getUnique());
-		
-		assertSourceContains("@Column(unique = false)", cu);
-		
-		column.setUnique(null);
-		assertSourceDoesNotContain("@Column", cu);
-	}
-	
-	public void testGetNullable() throws Exception {
-		ICompilationUnit cu = this.createTestColumnWithBooleanElement("nullable");
-		JavaResourcePersistentType typeResource = buildJavaTypeResource(cu); 
-		JavaResourcePersistentAttribute attributeResource = typeResource.fields().next();
-		ColumnAnnotation column = (ColumnAnnotation) attributeResource.getSupportingAnnotation(JPA.COLUMN);
-
-		assertEquals(Boolean.TRUE, column.getNullable());
-	}
-	
-	public void testSetNullable() throws Exception {
-		ICompilationUnit cu = this.createTestColumn();
-		JavaResourcePersistentType typeResource = buildJavaTypeResource(cu); 
-		JavaResourcePersistentAttribute attributeResource = typeResource.fields().next();
-		ColumnAnnotation column = (ColumnAnnotation) attributeResource.getSupportingAnnotation(JPA.COLUMN);
-
-		assertNotNull(column);
-		assertNull(column.getNullable());
-
-		column.setNullable(Boolean.FALSE);
-		assertEquals(Boolean.FALSE, column.getNullable());
-		
-		assertSourceContains("@Column(nullable = false)", cu);
-		
-		column.setNullable(null);
-		assertSourceDoesNotContain("@Column", cu);
-	}
-
-	public void testGetInsertable() throws Exception {
-		ICompilationUnit cu = this.createTestColumnWithBooleanElement("insertable");
-		JavaResourcePersistentType typeResource = buildJavaTypeResource(cu); 
-		JavaResourcePersistentAttribute attributeResource = typeResource.fields().next();
-		ColumnAnnotation column = (ColumnAnnotation) attributeResource.getSupportingAnnotation(JPA.COLUMN);
-
-		assertEquals(Boolean.TRUE, column.getInsertable());
-	}
-	
-	public void testSetInsertable() throws Exception {
-		ICompilationUnit cu = this.createTestColumn();
-		JavaResourcePersistentType typeResource = buildJavaTypeResource(cu); 
-		JavaResourcePersistentAttribute attributeResource = typeResource.fields().next();
-		ColumnAnnotation column = (ColumnAnnotation) attributeResource.getSupportingAnnotation(JPA.COLUMN);
-
-		assertNotNull(column);
-		assertNull(column.getInsertable());
-
-		column.setInsertable(Boolean.FALSE);
-		assertEquals(Boolean.FALSE, column.getInsertable());
-		
-		assertSourceContains("@Column(insertable = false)", cu);
-		
-		column.setInsertable(null);
-		assertSourceDoesNotContain("@Column", cu);
-	}
-	
-	public void testGetUpdatable() throws Exception {
-		ICompilationUnit cu = this.createTestColumnWithBooleanElement("updatable");
-		JavaResourcePersistentType typeResource = buildJavaTypeResource(cu); 
-		JavaResourcePersistentAttribute attributeResource = typeResource.fields().next();
-		ColumnAnnotation column = (ColumnAnnotation) attributeResource.getSupportingAnnotation(JPA.COLUMN);
-
-		assertEquals(Boolean.TRUE, column.getUpdatable());
-	}
-	
-	public void testSetUpdatable() throws Exception {
-		ICompilationUnit cu = this.createTestColumn();
-		JavaResourcePersistentType typeResource = buildJavaTypeResource(cu); 
-		JavaResourcePersistentAttribute attributeResource = typeResource.fields().next();
-		ColumnAnnotation column = (ColumnAnnotation) attributeResource.getSupportingAnnotation(JPA.COLUMN);
-
-		assertNotNull(column);
-		assertNull(column.getUpdatable());
-
-		column.setUpdatable(Boolean.FALSE);
-		assertEquals(Boolean.FALSE, column.getUpdatable());
-		
-		assertSourceContains("@Column(updatable = false)", cu);
-		
-		column.setUpdatable(null);
-		assertSourceDoesNotContain("@Column", cu);
-	}
-
-	public void testGetLength() throws Exception {
-		ICompilationUnit cu = this.createTestColumnWithIntElement("length");
-		JavaResourcePersistentType typeResource = buildJavaTypeResource(cu); 
-		JavaResourcePersistentAttribute attributeResource = typeResource.fields().next();
-		ColumnAnnotation column = (ColumnAnnotation) attributeResource.getSupportingAnnotation(JPA.COLUMN);
-
-		assertEquals(Integer.valueOf(5), column.getLength());
-	}
-	
-	public void testSetLength() throws Exception {
-		ICompilationUnit cu = this.createTestColumn();
-		JavaResourcePersistentType typeResource = buildJavaTypeResource(cu); 
-		JavaResourcePersistentAttribute attributeResource = typeResource.fields().next();
-		ColumnAnnotation column = (ColumnAnnotation) attributeResource.getSupportingAnnotation(JPA.COLUMN);
-
-		assertNotNull(column);
-		assertNull(column.getLength());
-
-		column.setLength(Integer.valueOf(5));
-		assertEquals(Integer.valueOf(5), column.getLength());
-		
-		assertSourceContains("@Column(length = 5)", cu);
-		
-		column.setLength(null);
-		assertSourceDoesNotContain("@Column", cu);
-	}
-
-	public void testGetPrecision() throws Exception {
-		ICompilationUnit cu = this.createTestColumnWithIntElement("precision");
-		JavaResourcePersistentType typeResource = buildJavaTypeResource(cu); 
-		JavaResourcePersistentAttribute attributeResource = typeResource.fields().next();
-		ColumnAnnotation column = (ColumnAnnotation) attributeResource.getSupportingAnnotation(JPA.COLUMN);
-
-		assertEquals(Integer.valueOf(5), column.getPrecision());
-	}
-	
-	public void testSetPrecision() throws Exception {
-		ICompilationUnit cu = this.createTestColumn();
-		JavaResourcePersistentType typeResource = buildJavaTypeResource(cu); 
-		JavaResourcePersistentAttribute attributeResource = typeResource.fields().next();
-		ColumnAnnotation column = (ColumnAnnotation) attributeResource.getSupportingAnnotation(JPA.COLUMN);
-
-		assertNotNull(column);
-		assertEquals(null, column.getPrecision());
-
-		column.setPrecision(Integer.valueOf(5));
-		assertEquals(Integer.valueOf(5), column.getPrecision());
-		
-		assertSourceContains("@Column(precision = 5)", cu);
-		
-		column.setPrecision(null);
-		assertSourceDoesNotContain("@Column", cu);
-	}
-
-	public void testGetScale() throws Exception {
-		ICompilationUnit cu = this.createTestColumnWithIntElement("scale");
-		JavaResourcePersistentType typeResource = buildJavaTypeResource(cu); 
-		JavaResourcePersistentAttribute attributeResource = typeResource.fields().next();
-		ColumnAnnotation column = (ColumnAnnotation) attributeResource.getSupportingAnnotation(JPA.COLUMN);
-
-		assertEquals(Integer.valueOf(5), column.getScale());
-	}
-	
-	public void testSetScale() throws Exception {
-		ICompilationUnit cu = this.createTestColumn();
-		JavaResourcePersistentType typeResource = buildJavaTypeResource(cu); 
-		JavaResourcePersistentAttribute attributeResource = typeResource.fields().next();
-		ColumnAnnotation column = (ColumnAnnotation) attributeResource.getSupportingAnnotation(JPA.COLUMN);
-
-		assertNotNull(column);
-		assertNull(column.getScale());
-
-		column.setScale(Integer.valueOf(5));
-		assertEquals(Integer.valueOf(5), column.getScale());
-		
-		assertSourceContains("@Column(scale = 5)", cu);
-		
-		column.setScale(null);
-		assertSourceDoesNotContain("@Column", cu);
-	}
-}
diff --git a/jpa/tests/org.eclipse.jpt.core.tests/src/org/eclipse/jpt/core/tests/internal/resource/java/DiscriminatorColumnTests.java b/jpa/tests/org.eclipse.jpt.core.tests/src/org/eclipse/jpt/core/tests/internal/resource/java/DiscriminatorColumnTests.java
deleted file mode 100644
index 3ca4dee..0000000
--- a/jpa/tests/org.eclipse.jpt.core.tests/src/org/eclipse/jpt/core/tests/internal/resource/java/DiscriminatorColumnTests.java
+++ /dev/null
@@ -1,212 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.core.tests.internal.resource.java;
-
-import java.util.Iterator;
-import org.eclipse.jdt.core.ICompilationUnit;
-import org.eclipse.jpt.core.resource.java.DiscriminatorColumnAnnotation;
-import org.eclipse.jpt.core.resource.java.DiscriminatorType;
-import org.eclipse.jpt.core.resource.java.JPA;
-import org.eclipse.jpt.core.resource.java.JavaResourcePersistentType;
-import org.eclipse.jpt.utility.internal.iterators.ArrayIterator;
-
-@SuppressWarnings("nls")
-public class DiscriminatorColumnTests extends JavaResourceModelTestCase {
-	
-	private static final String COLUMN_NAME = "MY_COLUMN";
-	private static final String COLUMN_COLUMN_DEFINITION = "COLUMN_DEFINITION";
-	
-	public DiscriminatorColumnTests(String name) {
-		super(name);
-	}
-	
-	private ICompilationUnit createTestDiscriminatorColumn() throws Exception {
-		return this.createTestType(new DefaultAnnotationWriter() {
-			@Override
-			public Iterator<String> imports() {
-				return new ArrayIterator<String>(JPA.DISCRIMINATOR_COLUMN);
-			}
-			@Override
-			public void appendTypeAnnotationTo(StringBuilder sb) {
-				sb.append("@DiscriminatorColumn");
-			}
-		});
-	}
-	
-	private ICompilationUnit createTestDiscriminatorColumnWithName() throws Exception {
-		return this.createTestType(new DefaultAnnotationWriter() {
-			@Override
-			public Iterator<String> imports() {
-				return new ArrayIterator<String>(JPA.DISCRIMINATOR_COLUMN);
-			}
-			@Override
-			public void appendTypeAnnotationTo(StringBuilder sb) {
-				sb.append("@DiscriminatorColumn(name = \"" + COLUMN_NAME + "\")");
-			}
-		});
-	}
-	
-	private ICompilationUnit createTestDiscriminatorColumnWithColumnDefinition() throws Exception {
-		return this.createTestType(new DefaultAnnotationWriter() {
-			@Override
-			public Iterator<String> imports() {
-				return new ArrayIterator<String>(JPA.DISCRIMINATOR_COLUMN);
-			}
-			@Override
-			public void appendTypeAnnotationTo(StringBuilder sb) {
-				sb.append("@DiscriminatorColumn(columnDefinition = \"" + COLUMN_COLUMN_DEFINITION + "\")");
-			}
-		});
-	}
-	
-	private ICompilationUnit createTestDiscriminatorColumnWithDiscriminatorType() throws Exception {
-		return this.createTestType(new DefaultAnnotationWriter() {
-			@Override
-			public Iterator<String> imports() {
-				return new ArrayIterator<String>(JPA.DISCRIMINATOR_COLUMN, JPA.DISCRIMINATOR_TYPE);
-			}
-			@Override
-			public void appendTypeAnnotationTo(StringBuilder sb) {
-				sb.append("@DiscriminatorColumn(discriminatorType = DiscriminatorType.CHAR)");
-			}
-		});
-	}
-	
-	private ICompilationUnit createTestColumnWithIntElement(final String intElement) throws Exception {
-		return this.createTestType(new DefaultAnnotationWriter() {
-			@Override
-			public Iterator<String> imports() {
-				return new ArrayIterator<String>(JPA.DISCRIMINATOR_COLUMN);
-			}
-			@Override
-			public void appendTypeAnnotationTo(StringBuilder sb) {
-				sb.append("@DiscriminatorColumn(" + intElement + " = 5)");
-			}
-		});
-	}
-
-	public void testGetName() throws Exception {
-		ICompilationUnit cu = this.createTestDiscriminatorColumnWithName();
-		JavaResourcePersistentType typeResource = buildJavaTypeResource(cu); 
-		DiscriminatorColumnAnnotation column = (DiscriminatorColumnAnnotation) typeResource.getSupportingAnnotation(JPA.DISCRIMINATOR_COLUMN);
-		assertNotNull(column);
-		assertEquals(COLUMN_NAME, column.getName());
-	}
-
-	public void testGetNull() throws Exception {
-		ICompilationUnit cu = this.createTestDiscriminatorColumn();
-		JavaResourcePersistentType typeResource = buildJavaTypeResource(cu); 
-		DiscriminatorColumnAnnotation column = (DiscriminatorColumnAnnotation) typeResource.getSupportingAnnotation(JPA.DISCRIMINATOR_COLUMN);
-		assertNotNull(column);
-		assertNull(column.getName());
-		assertNull(column.getDiscriminatorType());
-		assertNull(column.getColumnDefinition());
-	}
-
-	public void testSetName() throws Exception {
-		ICompilationUnit cu = this.createTestDiscriminatorColumn();
-		JavaResourcePersistentType typeResource = buildJavaTypeResource(cu); 
-		DiscriminatorColumnAnnotation column = (DiscriminatorColumnAnnotation) typeResource.getSupportingAnnotation(JPA.DISCRIMINATOR_COLUMN);
-
-		assertNotNull(column);
-		assertNull(column.getName());
-
-		column.setName("Foo");
-		assertEquals("Foo", column.getName());
-		
-		assertSourceContains("@DiscriminatorColumn(name = \"Foo\")", cu);
-	}
-	
-	public void testSetNameNull() throws Exception {
-		ICompilationUnit cu = this.createTestDiscriminatorColumnWithName();
-		JavaResourcePersistentType typeResource = buildJavaTypeResource(cu); 
-		DiscriminatorColumnAnnotation column = (DiscriminatorColumnAnnotation) typeResource.getSupportingAnnotation(JPA.DISCRIMINATOR_COLUMN);
-
-		assertEquals(COLUMN_NAME, column.getName());
-		
-		column.setName(null);
-		assertNull(column.getName());
-		
-		assertSourceDoesNotContain("@DiscriminatorColumn", cu);
-	}
-
-	public void testGetColumnDefinition() throws Exception {
-		ICompilationUnit cu = this.createTestDiscriminatorColumnWithColumnDefinition();
-		JavaResourcePersistentType typeResource = buildJavaTypeResource(cu); 
-		DiscriminatorColumnAnnotation column = (DiscriminatorColumnAnnotation) typeResource.getSupportingAnnotation(JPA.DISCRIMINATOR_COLUMN);
-		assertEquals(COLUMN_COLUMN_DEFINITION, column.getColumnDefinition());
-	}
-
-	public void testSetColumnDefinition() throws Exception {
-		ICompilationUnit cu = this.createTestDiscriminatorColumn();
-		JavaResourcePersistentType typeResource = buildJavaTypeResource(cu); 
-		DiscriminatorColumnAnnotation column = (DiscriminatorColumnAnnotation) typeResource.getSupportingAnnotation(JPA.DISCRIMINATOR_COLUMN);
-
-		assertNotNull(column);
-		assertNull(column.getColumnDefinition());
-
-		column.setColumnDefinition("Foo");
-		assertEquals("Foo", column.getColumnDefinition());
-		
-		assertSourceContains("@DiscriminatorColumn(columnDefinition = \"Foo\")", cu);
-
-		
-		column.setColumnDefinition(null);
-		assertSourceDoesNotContain("@DiscriminatorColumn", cu);
-	}
-
-	public void testGetLength() throws Exception {
-		ICompilationUnit cu = this.createTestColumnWithIntElement("length");
-		JavaResourcePersistentType typeResource = buildJavaTypeResource(cu); 
-		DiscriminatorColumnAnnotation column = (DiscriminatorColumnAnnotation) typeResource.getSupportingAnnotation(JPA.DISCRIMINATOR_COLUMN);
-
-		assertEquals(Integer.valueOf(5), column.getLength());
-	}
-	
-	public void testSetLength() throws Exception {
-		ICompilationUnit cu = this.createTestDiscriminatorColumn();
-		JavaResourcePersistentType typeResource = buildJavaTypeResource(cu); 
-		DiscriminatorColumnAnnotation column = (DiscriminatorColumnAnnotation) typeResource.getSupportingAnnotation(JPA.DISCRIMINATOR_COLUMN);
-
-		assertNotNull(column);
-		assertNull(column.getLength());
-
-		column.setLength(Integer.valueOf(5));
-		assertEquals(Integer.valueOf(5), column.getLength());
-		
-		assertSourceContains("@DiscriminatorColumn(length = 5)", cu);
-		
-		column.setLength(null);
-		assertSourceDoesNotContain("@DiscriminatorColumn", cu);
-	}
-	
-	public void testGetDiscriminatorType() throws Exception {
-		ICompilationUnit cu = this.createTestDiscriminatorColumnWithDiscriminatorType();
-		JavaResourcePersistentType typeResource = buildJavaTypeResource(cu); 
-		DiscriminatorColumnAnnotation column = (DiscriminatorColumnAnnotation) typeResource.getSupportingAnnotation(JPA.DISCRIMINATOR_COLUMN);
-		assertEquals(DiscriminatorType.CHAR, column.getDiscriminatorType());
-	}
-	
-	public void testSetDiscriminatorType() throws Exception {
-		ICompilationUnit cu = this.createTestDiscriminatorColumn();
-		JavaResourcePersistentType typeResource = buildJavaTypeResource(cu); 
-		DiscriminatorColumnAnnotation column = (DiscriminatorColumnAnnotation) typeResource.getSupportingAnnotation(JPA.DISCRIMINATOR_COLUMN);
-
-		assertNull(column.getDiscriminatorType());
-
-		column.setDiscriminatorType(DiscriminatorType.INTEGER);
-		assertEquals(DiscriminatorType.INTEGER, column.getDiscriminatorType());
-		
-		assertSourceContains("@DiscriminatorColumn(discriminatorType = INTEGER)", cu);
-		
-		column.setDiscriminatorType(null);
-		assertSourceDoesNotContain("@DiscriminatorColumn", cu);
-	}
-}
diff --git a/jpa/tests/org.eclipse.jpt.core.tests/src/org/eclipse/jpt/core/tests/internal/resource/java/DiscriminatorValueTests.java b/jpa/tests/org.eclipse.jpt.core.tests/src/org/eclipse/jpt/core/tests/internal/resource/java/DiscriminatorValueTests.java
deleted file mode 100644
index c5beed4..0000000
--- a/jpa/tests/org.eclipse.jpt.core.tests/src/org/eclipse/jpt/core/tests/internal/resource/java/DiscriminatorValueTests.java
+++ /dev/null
@@ -1,83 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.core.tests.internal.resource.java;
-
-import java.util.Iterator;
-import org.eclipse.jdt.core.ICompilationUnit;
-import org.eclipse.jpt.core.resource.java.DiscriminatorValueAnnotation;
-import org.eclipse.jpt.core.resource.java.JPA;
-import org.eclipse.jpt.core.resource.java.JavaResourcePersistentType;
-import org.eclipse.jpt.utility.internal.iterators.ArrayIterator;
-
-@SuppressWarnings("nls")
-public class DiscriminatorValueTests extends JavaResourceModelTestCase {
-
-	public DiscriminatorValueTests(String name) {
-		super(name);
-	}
-
-	private ICompilationUnit createTestDiscriminatorValue() throws Exception {
-		return this.createTestType(new DefaultAnnotationWriter() {
-			@Override
-			public Iterator<String> imports() {
-				return new ArrayIterator<String>(JPA.DISCRIMINATOR_VALUE);
-			}
-			@Override
-			public void appendTypeAnnotationTo(StringBuilder sb) {
-				sb.append("@DiscriminatorValue");
-			}
-		});
-	}
-	
-	private ICompilationUnit createTestDiscriminatorValueWithValue() throws Exception {
-		return this.createTestType(new DefaultAnnotationWriter() {
-			@Override
-			public Iterator<String> imports() {
-				return new ArrayIterator<String>(JPA.DISCRIMINATOR_VALUE);
-			}
-			@Override
-			public void appendTypeAnnotationTo(StringBuilder sb) {
-				sb.append("@DiscriminatorValue(value = \"discriminator\")");
-			}
-		});
-	}
-
-	public void testDiscriminatorValue() throws Exception {
-		ICompilationUnit cu = this.createTestDiscriminatorValue();
-		JavaResourcePersistentType typeResource = buildJavaTypeResource(cu); 
-	
-		DiscriminatorValueAnnotation discriminatorValue = (DiscriminatorValueAnnotation) typeResource.getSupportingAnnotation(JPA.DISCRIMINATOR_VALUE);
-		assertNotNull(discriminatorValue);
-	}
-	
-	public void testGetValue() throws Exception {
-		ICompilationUnit cu = this.createTestDiscriminatorValueWithValue();
-		JavaResourcePersistentType typeResource = buildJavaTypeResource(cu); 
-		
-		DiscriminatorValueAnnotation discriminatorValue = (DiscriminatorValueAnnotation) typeResource.getSupportingAnnotation(JPA.DISCRIMINATOR_VALUE);
-		assertEquals("discriminator", discriminatorValue.getValue());
-	}
-	
-	public void testSetValue() throws Exception {
-		ICompilationUnit cu = this.createTestDiscriminatorValue();
-		JavaResourcePersistentType typeResource = buildJavaTypeResource(cu); 
-		
-		DiscriminatorValueAnnotation discriminatorValue = (DiscriminatorValueAnnotation) typeResource.getSupportingAnnotation(JPA.DISCRIMINATOR_VALUE);
-
-		discriminatorValue.setValue("foo");
-		
-		assertSourceContains("@DiscriminatorValue(\"foo\")", cu);
-		
-		discriminatorValue.setValue(null);
-		
-		assertSourceDoesNotContain("@DiscriminatorValue", cu);
-	}
-
-}
diff --git a/jpa/tests/org.eclipse.jpt.core.tests/src/org/eclipse/jpt/core/tests/internal/resource/java/EmbeddableTests.java b/jpa/tests/org.eclipse.jpt.core.tests/src/org/eclipse/jpt/core/tests/internal/resource/java/EmbeddableTests.java
deleted file mode 100644
index 6ad9f3b..0000000
--- a/jpa/tests/org.eclipse.jpt.core.tests/src/org/eclipse/jpt/core/tests/internal/resource/java/EmbeddableTests.java
+++ /dev/null
@@ -1,74 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.core.tests.internal.resource.java;
-
-import java.util.Iterator;
-import org.eclipse.jdt.core.ICompilationUnit;
-import org.eclipse.jpt.core.resource.java.EmbeddableAnnotation;
-import org.eclipse.jpt.core.resource.java.EntityAnnotation;
-import org.eclipse.jpt.core.resource.java.JPA;
-import org.eclipse.jpt.core.resource.java.JavaResourceNode;
-import org.eclipse.jpt.core.resource.java.JavaResourcePersistentType;
-import org.eclipse.jpt.utility.internal.iterators.ArrayIterator;
-
-@SuppressWarnings("nls")
-public class EmbeddableTests extends JavaResourceModelTestCase {
-
-	public EmbeddableTests(String name) {
-		super(name);
-	}
-
-	private ICompilationUnit createTestEmbeddable() throws Exception {
-		return this.createTestType(new DefaultAnnotationWriter() {
-			@Override
-			public Iterator<String> imports() {
-				return new ArrayIterator<String>(JPA.EMBEDDABLE);
-			}
-			@Override
-			public void appendTypeAnnotationTo(StringBuilder sb) {
-				sb.append("@Embeddable");
-			}
-		});
-	}
-	
-	private ICompilationUnit createTestEmbeddableAndEntity() throws Exception {
-		return this.createTestType(new DefaultAnnotationWriter() {
-			@Override
-			public Iterator<String> imports() {
-				return new ArrayIterator<String>(JPA.EMBEDDABLE, JPA.ENTITY);
-			}
-			@Override
-			public void appendTypeAnnotationTo(StringBuilder sb) {
-				sb.append("@Entity");
-				sb.append("@Embeddable");
-			}
-		});
-	}
-
-	public void testEmbeddable() throws Exception {
-		ICompilationUnit cu = this.createTestEmbeddable();
-		JavaResourcePersistentType typeResource = buildJavaTypeResource(cu); 
-		
-		JavaResourceNode mappingAnnotation = typeResource.getMappingAnnotation();
-		assertTrue(mappingAnnotation instanceof EmbeddableAnnotation);
-	}
-	
-	public void testEmbeddableAndEntity() throws Exception {
-		ICompilationUnit cu = this.createTestEmbeddableAndEntity();
-		JavaResourcePersistentType typeResource = buildJavaTypeResource(cu); 
-		
-		JavaResourceNode mappingAnnotation = typeResource.getMappingAnnotation();
-		assertTrue(mappingAnnotation instanceof EmbeddableAnnotation);
-		
-		EntityAnnotation entity = (EntityAnnotation) typeResource.getMappingAnnotation(JPA.ENTITY);
-		assertNotNull(entity);
-	}
-
-}
diff --git a/jpa/tests/org.eclipse.jpt.core.tests/src/org/eclipse/jpt/core/tests/internal/resource/java/EmbeddedIdTests.java b/jpa/tests/org.eclipse.jpt.core.tests/src/org/eclipse/jpt/core/tests/internal/resource/java/EmbeddedIdTests.java
deleted file mode 100644
index 42acc30..0000000
--- a/jpa/tests/org.eclipse.jpt.core.tests/src/org/eclipse/jpt/core/tests/internal/resource/java/EmbeddedIdTests.java
+++ /dev/null
@@ -1,50 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.core.tests.internal.resource.java;
-
-import java.util.Iterator;
-import org.eclipse.jdt.core.ICompilationUnit;
-import org.eclipse.jpt.core.resource.java.EmbeddedIdAnnotation;
-import org.eclipse.jpt.core.resource.java.JPA;
-import org.eclipse.jpt.core.resource.java.JavaResourceNode;
-import org.eclipse.jpt.core.resource.java.JavaResourcePersistentAttribute;
-import org.eclipse.jpt.core.resource.java.JavaResourcePersistentType;
-import org.eclipse.jpt.utility.internal.iterators.ArrayIterator;
-
-@SuppressWarnings("nls")
-public class EmbeddedIdTests extends JavaResourceModelTestCase {
-
-	public EmbeddedIdTests(String name) {
-		super(name);
-	}
-
-	private ICompilationUnit createTestEmbeddedId() throws Exception {
-		return this.createTestType(new DefaultAnnotationWriter() {
-			@Override
-			public Iterator<String> imports() {
-				return new ArrayIterator<String>(JPA.EMBEDDED_ID);
-			}
-			@Override
-			public void appendIdFieldAnnotationTo(StringBuilder sb) {
-				sb.append("@EmbeddedId");
-			}
-		});
-	}
-	
-	public void testEmbeddedId() throws Exception {
-		ICompilationUnit cu = this.createTestEmbeddedId();
-		JavaResourcePersistentType typeResource = buildJavaTypeResource(cu); 
-		JavaResourcePersistentAttribute attributeResource = typeResource.fields().next();
-		
-		JavaResourceNode mappingAnnotation = attributeResource.getMappingAnnotation();
-		assertTrue(mappingAnnotation instanceof EmbeddedIdAnnotation);
-	}
-
-}
diff --git a/jpa/tests/org.eclipse.jpt.core.tests/src/org/eclipse/jpt/core/tests/internal/resource/java/EmbeddedTests.java b/jpa/tests/org.eclipse.jpt.core.tests/src/org/eclipse/jpt/core/tests/internal/resource/java/EmbeddedTests.java
deleted file mode 100644
index f34354a..0000000
--- a/jpa/tests/org.eclipse.jpt.core.tests/src/org/eclipse/jpt/core/tests/internal/resource/java/EmbeddedTests.java
+++ /dev/null
@@ -1,50 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.core.tests.internal.resource.java;
-
-import java.util.Iterator;
-import org.eclipse.jdt.core.ICompilationUnit;
-import org.eclipse.jpt.core.resource.java.EmbeddedAnnotation;
-import org.eclipse.jpt.core.resource.java.JPA;
-import org.eclipse.jpt.core.resource.java.JavaResourceNode;
-import org.eclipse.jpt.core.resource.java.JavaResourcePersistentAttribute;
-import org.eclipse.jpt.core.resource.java.JavaResourcePersistentType;
-import org.eclipse.jpt.utility.internal.iterators.ArrayIterator;
-
-@SuppressWarnings("nls")
-public class EmbeddedTests extends JavaResourceModelTestCase {
-
-	public EmbeddedTests(String name) {
-		super(name);
-	}
-
-	private ICompilationUnit createTestEmbedded() throws Exception {
-		return this.createTestType(new DefaultAnnotationWriter() {
-			@Override
-			public Iterator<String> imports() {
-				return new ArrayIterator<String>(JPA.EMBEDDED);
-			}
-			@Override
-			public void appendIdFieldAnnotationTo(StringBuilder sb) {
-				sb.append("@Embedded");
-			}
-		});
-	}
-	
-	public void testEmbedded() throws Exception {
-		ICompilationUnit cu = this.createTestEmbedded();
-		JavaResourcePersistentType typeResource = buildJavaTypeResource(cu); 
-		JavaResourcePersistentAttribute attributeResource = typeResource.fields().next();
-		
-		JavaResourceNode mappingAnnotation = attributeResource.getMappingAnnotation();
-		assertTrue(mappingAnnotation instanceof EmbeddedAnnotation);
-	}
-
-}
diff --git a/jpa/tests/org.eclipse.jpt.core.tests/src/org/eclipse/jpt/core/tests/internal/resource/java/EntityTests.java b/jpa/tests/org.eclipse.jpt.core.tests/src/org/eclipse/jpt/core/tests/internal/resource/java/EntityTests.java
deleted file mode 100644
index 6297416..0000000
--- a/jpa/tests/org.eclipse.jpt.core.tests/src/org/eclipse/jpt/core/tests/internal/resource/java/EntityTests.java
+++ /dev/null
@@ -1,125 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.core.tests.internal.resource.java;
-
-import java.util.Iterator;
-import org.eclipse.jdt.core.ICompilationUnit;
-import org.eclipse.jpt.core.resource.java.EntityAnnotation;
-import org.eclipse.jpt.core.resource.java.JPA;
-import org.eclipse.jpt.core.resource.java.JavaResourceNode;
-import org.eclipse.jpt.core.resource.java.JavaResourcePersistentType;
-import org.eclipse.jpt.core.resource.java.MappedSuperclassAnnotation;
-import org.eclipse.jpt.utility.internal.iterators.ArrayIterator;
-
-@SuppressWarnings("nls")
-public class EntityTests extends JavaResourceModelTestCase {
-
-	private static final String ENTITY_NAME = "Foo";
-	
-	public EntityTests(String name) {
-		super(name);
-	}
-
-	private ICompilationUnit createTestEntity() throws Exception {
-		return this.createTestType(new DefaultAnnotationWriter() {
-			@Override
-			public Iterator<String> imports() {
-				return new ArrayIterator<String>(JPA.ENTITY);
-			}
-			@Override
-			public void appendTypeAnnotationTo(StringBuilder sb) {
-				sb.append("@Entity");
-			}
-		});
-	}
-	
-	private ICompilationUnit createTestEntityWithName() throws Exception {
-		return this.createTestType(new DefaultAnnotationWriter() {
-			@Override
-			public Iterator<String> imports() {
-				return new ArrayIterator<String>(JPA.ENTITY);
-			}
-			@Override
-			public void appendTypeAnnotationTo(StringBuilder sb) {
-				sb.append("@Entity(name = \"" + ENTITY_NAME + "\")");
-			}
-		});
-	}
-	
-	private ICompilationUnit createTestMappedSuperclassAndEntity() throws Exception {
-		return this.createTestType(new DefaultAnnotationWriter() {
-			@Override
-			public Iterator<String> imports() {
-				return new ArrayIterator<String>(JPA.MAPPED_SUPERCLASS, JPA.ENTITY);
-			}
-			@Override
-			public void appendTypeAnnotationTo(StringBuilder sb) {
-				sb.append("@MappedSuperclass");
-				sb.append("@Entity");
-			}
-		});
-	}
-
-	public void testGetName() throws Exception {
-		ICompilationUnit cu = this.createTestEntityWithName();
-		JavaResourcePersistentType typeResource = buildJavaTypeResource(cu); 
-		
-		EntityAnnotation entity = (EntityAnnotation) typeResource.getMappingAnnotation(JPA.ENTITY);
-		assertTrue(entity != null);
-		assertEquals(ENTITY_NAME, entity.getName());
-	}
-
-	public void testGetNameNull() throws Exception {
-		ICompilationUnit cu = this.createTestEntity();
-		JavaResourcePersistentType typeResource = buildJavaTypeResource(cu); 
-		
-		EntityAnnotation entity = (EntityAnnotation) typeResource.getMappingAnnotation(JPA.ENTITY);
-		assertTrue(entity != null);
-		assertNull(entity.getName());
-	}
-
-	public void testSetName() throws Exception {
-		ICompilationUnit cu = this.createTestEntity();
-		JavaResourcePersistentType typeResource = buildJavaTypeResource(cu); 
-		
-		EntityAnnotation entity = (EntityAnnotation) typeResource.getMappingAnnotation(JPA.ENTITY);
-		assertNull(entity.getName());
-		entity.setName("Foo");
-		assertEquals("Foo", entity.getName());
-		
-		assertSourceContains("@Entity(name = \"Foo\")", cu);
-	}
-	
-	public void testSetNameNull() throws Exception {
-		ICompilationUnit cu = this.createTestEntityWithName();
-		JavaResourcePersistentType typeResource = buildJavaTypeResource(cu); 
-		
-		EntityAnnotation entity = (EntityAnnotation) typeResource.getMappingAnnotation(JPA.ENTITY);
-		assertEquals(ENTITY_NAME, entity.getName());
-		
-		entity.setName(null);
-		assertNull(entity.getName());
-		
-		assertSourceContains("@Entity", cu);
-		assertSourceDoesNotContain("@Entity(name = \"Foo\")", cu);
-	}
-	
-	public void testMappedSuperclassAndEntity() throws Exception {
-		ICompilationUnit cu = this.createTestMappedSuperclassAndEntity();
-		JavaResourcePersistentType typeResource = buildJavaTypeResource(cu); 
-		
-		JavaResourceNode mappingAnnotation = typeResource.getMappingAnnotation();
-		assertTrue(mappingAnnotation instanceof EntityAnnotation);
-		
-		MappedSuperclassAnnotation mappedSuperclass = (MappedSuperclassAnnotation) typeResource.getMappingAnnotation(JPA.MAPPED_SUPERCLASS);
-		assertNotNull(mappedSuperclass);
-	}
-
-}
diff --git a/jpa/tests/org.eclipse.jpt.core.tests/src/org/eclipse/jpt/core/tests/internal/resource/java/EnumeratedTests.java b/jpa/tests/org.eclipse.jpt.core.tests/src/org/eclipse/jpt/core/tests/internal/resource/java/EnumeratedTests.java
deleted file mode 100644
index 919676c..0000000
--- a/jpa/tests/org.eclipse.jpt.core.tests/src/org/eclipse/jpt/core/tests/internal/resource/java/EnumeratedTests.java
+++ /dev/null
@@ -1,89 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.core.tests.internal.resource.java;
-
-import java.util.Iterator;
-import org.eclipse.jdt.core.ICompilationUnit;
-import org.eclipse.jpt.core.resource.java.EnumType;
-import org.eclipse.jpt.core.resource.java.EnumeratedAnnotation;
-import org.eclipse.jpt.core.resource.java.JPA;
-import org.eclipse.jpt.core.resource.java.JavaResourcePersistentAttribute;
-import org.eclipse.jpt.core.resource.java.JavaResourcePersistentType;
-import org.eclipse.jpt.utility.internal.iterators.ArrayIterator;
-
-@SuppressWarnings("nls")
-public class EnumeratedTests extends JavaResourceModelTestCase {
-
-	public EnumeratedTests(String name) {
-		super(name);
-	}
-
-	private ICompilationUnit createTestEnumerated() throws Exception {
-		return this.createTestType(new DefaultAnnotationWriter() {
-			@Override
-			public Iterator<String> imports() {
-				return new ArrayIterator<String>(JPA.ENUMERATED);
-			}
-			@Override
-			public void appendIdFieldAnnotationTo(StringBuilder sb) {
-				sb.append("@Enumerated");
-			}
-		});
-	}
-	
-	private ICompilationUnit createTestEnumeratedWithValue() throws Exception {
-		return this.createTestType(new DefaultAnnotationWriter() {
-			@Override
-			public Iterator<String> imports() {
-				return new ArrayIterator<String>(JPA.ENUMERATED, JPA.ENUM_TYPE);
-			}
-			@Override
-			public void appendIdFieldAnnotationTo(StringBuilder sb) {
-				sb.append("@Enumerated(EnumType.ORDINAL)");
-			}
-		});
-	}
-
-	public void testEnumerated() throws Exception {
-		ICompilationUnit cu = this.createTestEnumerated();
-		JavaResourcePersistentType typeResource = buildJavaTypeResource(cu); 
-		JavaResourcePersistentAttribute attributeResource = typeResource.fields().next();
-		
-		EnumeratedAnnotation enumerated = (EnumeratedAnnotation) attributeResource.getSupportingAnnotation(JPA.ENUMERATED);
-		assertNotNull(enumerated);
-	}
-	
-	public void testGetValue() throws Exception {
-		ICompilationUnit cu = this.createTestEnumeratedWithValue();
-		JavaResourcePersistentType typeResource = buildJavaTypeResource(cu); 
-		JavaResourcePersistentAttribute attributeResource = typeResource.fields().next();
-		
-		EnumeratedAnnotation enumerated = (EnumeratedAnnotation) attributeResource.getSupportingAnnotation(JPA.ENUMERATED);
-		assertEquals(EnumType.ORDINAL, enumerated.getValue());
-	}
-	
-	public void testSetValue() throws Exception {
-		ICompilationUnit cu = this.createTestEnumerated();
-		JavaResourcePersistentType typeResource = buildJavaTypeResource(cu); 
-		JavaResourcePersistentAttribute attributeResource = typeResource.fields().next();
-
-		EnumeratedAnnotation enumerated = (EnumeratedAnnotation) attributeResource.getSupportingAnnotation(JPA.ENUMERATED);
-
-		enumerated.setValue(EnumType.STRING);
-		
-		assertSourceContains("@Enumerated(STRING)", cu);
-		
-		enumerated.setValue(null);
-		
-		assertSourceDoesNotContain("@Enumerated(", cu);
-		assertSourceContains("@Enumerated", cu);
-	}
-
-}
diff --git a/jpa/tests/org.eclipse.jpt.core.tests/src/org/eclipse/jpt/core/tests/internal/resource/java/GeneratedValueTests.java b/jpa/tests/org.eclipse.jpt.core.tests/src/org/eclipse/jpt/core/tests/internal/resource/java/GeneratedValueTests.java
deleted file mode 100644
index e65a912..0000000
--- a/jpa/tests/org.eclipse.jpt.core.tests/src/org/eclipse/jpt/core/tests/internal/resource/java/GeneratedValueTests.java
+++ /dev/null
@@ -1,133 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.core.tests.internal.resource.java;
-
-import java.util.Iterator;
-import org.eclipse.jdt.core.ICompilationUnit;
-import org.eclipse.jpt.core.resource.java.GeneratedValueAnnotation;
-import org.eclipse.jpt.core.resource.java.GenerationType;
-import org.eclipse.jpt.core.resource.java.JPA;
-import org.eclipse.jpt.core.resource.java.JavaResourcePersistentAttribute;
-import org.eclipse.jpt.core.resource.java.JavaResourcePersistentType;
-import org.eclipse.jpt.utility.internal.iterators.ArrayIterator;
-
-@SuppressWarnings("nls")
-public class GeneratedValueTests extends JavaResourceModelTestCase {
-
-	private static final String GENERATOR = "MY_GENERATOR";
-	public GeneratedValueTests(String name) {
-		super(name);
-	}
-	
-	private ICompilationUnit createTestGeneratedValue() throws Exception {
-		return this.createTestType(new DefaultAnnotationWriter() {
-			@Override
-			public Iterator<String> imports() {
-				return new ArrayIterator<String>(JPA.GENERATED_VALUE, JPA.GENERATION_TYPE);
-			}
-			@Override
-			public void appendIdFieldAnnotationTo(StringBuilder sb) {
-				sb.append("@GeneratedValue");
-			}
-		});
-	}
-	
-	private ICompilationUnit createTestGeneratedValueWithGenerator() throws Exception {
-		return this.createTestType(new DefaultAnnotationWriter() {
-			@Override
-			public Iterator<String> imports() {
-				return new ArrayIterator<String>(JPA.GENERATED_VALUE, JPA.GENERATION_TYPE);
-			}
-			@Override
-			public void appendIdFieldAnnotationTo(StringBuilder sb) {
-				sb.append("@GeneratedValue(generator = \"" + GENERATOR + "\")");
-			}
-		});
-	}
-	
-	private ICompilationUnit createTestGeneratedValueWithStrategy() throws Exception {
-		return this.createTestType(new DefaultAnnotationWriter() {
-			@Override
-			public Iterator<String> imports() {
-				return new ArrayIterator<String>(JPA.GENERATED_VALUE, JPA.GENERATION_TYPE);
-			}
-			@Override
-			public void appendIdFieldAnnotationTo(StringBuilder sb) {
-				sb.append("@GeneratedValue(strategy = GenerationType.SEQUENCE)");
-			}
-		});
-	}
-
-	public void testGeneratedValue() throws Exception {
-		ICompilationUnit cu = this.createTestGeneratedValue();
-		JavaResourcePersistentType typeResource = buildJavaTypeResource(cu); 
-		JavaResourcePersistentAttribute attributeResource = typeResource.fields().next();
-		
-		GeneratedValueAnnotation generatedValue = (GeneratedValueAnnotation) attributeResource.getSupportingAnnotation(JPA.GENERATED_VALUE);
-		assertNotNull(generatedValue);
-	}
-
-	public void testGetGenerator() throws Exception {
-		ICompilationUnit cu = this.createTestGeneratedValueWithGenerator();
-		JavaResourcePersistentType typeResource = buildJavaTypeResource(cu);
-		JavaResourcePersistentAttribute attributeResource = typeResource.fields().next();
-		
-		GeneratedValueAnnotation generatedValue = (GeneratedValueAnnotation) attributeResource.getSupportingAnnotation(JPA.GENERATED_VALUE);
-		assertEquals(GENERATOR, generatedValue.getGenerator());
-	}
-
-	public void testSetGenerator() throws Exception {
-		ICompilationUnit cu = this.createTestGeneratedValueWithGenerator();
-		JavaResourcePersistentType typeResource = buildJavaTypeResource(cu);
-		JavaResourcePersistentAttribute attributeResource = typeResource.fields().next();
-		
-		GeneratedValueAnnotation generatedValue = (GeneratedValueAnnotation) attributeResource.getSupportingAnnotation(JPA.GENERATED_VALUE);
-		assertEquals(GENERATOR, generatedValue.getGenerator());
-		
-		generatedValue.setGenerator("foo");
-		assertEquals("foo", generatedValue.getGenerator());
-		
-		assertSourceContains("@GeneratedValue(generator = \"foo\")", cu);
-		
-		generatedValue.setGenerator(null);
-		assertNull(generatedValue.getGenerator());
-		
-		assertSourceDoesNotContain("generator", cu);
-		assertSourceContains("@GeneratedValue", cu);
-	}
-	
-	public void testGetStrategy() throws Exception {
-		ICompilationUnit cu = this.createTestGeneratedValueWithStrategy();
-		JavaResourcePersistentType typeResource = buildJavaTypeResource(cu);
-		JavaResourcePersistentAttribute attributeResource = typeResource.fields().next();
-		
-		GeneratedValueAnnotation generatedValue = (GeneratedValueAnnotation) attributeResource.getSupportingAnnotation(JPA.GENERATED_VALUE);
-		assertEquals(GenerationType.SEQUENCE, generatedValue.getStrategy());
-	}
-
-	public void testSetStrategy() throws Exception {
-		ICompilationUnit cu = this.createTestGeneratedValueWithStrategy();
-		JavaResourcePersistentType typeResource = buildJavaTypeResource(cu);
-		JavaResourcePersistentAttribute attributeResource = typeResource.fields().next();
-		
-		GeneratedValueAnnotation generatedValue = (GeneratedValueAnnotation) attributeResource.getSupportingAnnotation(JPA.GENERATED_VALUE);
-		assertEquals(GenerationType.SEQUENCE, generatedValue.getStrategy());
-		
-		generatedValue.setStrategy(GenerationType.TABLE);
-		assertEquals(GenerationType.TABLE, generatedValue.getStrategy());
-		
-		assertSourceContains("@GeneratedValue(strategy = TABLE)", cu);
-		
-		generatedValue.setStrategy(null);
-		assertNull(generatedValue.getStrategy());
-		assertSourceDoesNotContain("strategy", cu);
-		assertSourceContains("@GeneratedValue", cu);
-	}
-}
diff --git a/jpa/tests/org.eclipse.jpt.core.tests/src/org/eclipse/jpt/core/tests/internal/resource/java/IdClassTests.java b/jpa/tests/org.eclipse.jpt.core.tests/src/org/eclipse/jpt/core/tests/internal/resource/java/IdClassTests.java
deleted file mode 100644
index c6ce126..0000000
--- a/jpa/tests/org.eclipse.jpt.core.tests/src/org/eclipse/jpt/core/tests/internal/resource/java/IdClassTests.java
+++ /dev/null
@@ -1,106 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.core.tests.internal.resource.java;
-
-import java.util.Iterator;
-import org.eclipse.jdt.core.ICompilationUnit;
-import org.eclipse.jpt.core.resource.java.IdClassAnnotation;
-import org.eclipse.jpt.core.resource.java.JPA;
-import org.eclipse.jpt.core.resource.java.JavaResourcePersistentType;
-import org.eclipse.jpt.utility.internal.iterators.ArrayIterator;
-
-@SuppressWarnings("nls")
-public class IdClassTests extends JavaResourceModelTestCase {
-
-	private static final String ID_CLASS_VALUE = "MyClass";
-	
-	public IdClassTests(String name) {
-		super(name);
-	}
-	
-	private ICompilationUnit createTestIdClass() throws Exception {
-		return this.createTestType(new DefaultAnnotationWriter() {
-			@Override
-			public Iterator<String> imports() {
-				return new ArrayIterator<String>(JPA.ID_CLASS);
-			}
-			@Override
-			public void appendTypeAnnotationTo(StringBuilder sb) {
-				sb.append("@IdClass");
-			}
-		});
-	}
-	
-	private ICompilationUnit createTestIdClassWithValue() throws Exception {
-		return this.createTestType(new DefaultAnnotationWriter() {
-			@Override
-			public Iterator<String> imports() {
-				return new ArrayIterator<String>(JPA.ID_CLASS);
-			}
-			@Override
-			public void appendTypeAnnotationTo(StringBuilder sb) {
-				sb.append("@IdClass(" + ID_CLASS_VALUE + ".class)");
-			}
-		});
-	}
-
-	public void testIdClass() throws Exception {
-		ICompilationUnit cu = this.createTestIdClass();
-		JavaResourcePersistentType typeResource = buildJavaTypeResource(cu); 
-		
-		IdClassAnnotation idClass = (IdClassAnnotation) typeResource.getSupportingAnnotation(JPA.ID_CLASS);
-		assertNotNull(idClass);
-		assertNull(idClass.getValue());
-	}
-
-	public void testGetValue() throws Exception {
-		ICompilationUnit cu = this.createTestIdClassWithValue();
-		JavaResourcePersistentType typeResource = buildJavaTypeResource(cu);
-		
-		IdClassAnnotation idClass = (IdClassAnnotation) typeResource.getSupportingAnnotation(JPA.ID_CLASS);
-		assertEquals(ID_CLASS_VALUE, idClass.getValue());
-	}
-
-	public void testSetValue() throws Exception {
-		ICompilationUnit cu = this.createTestIdClassWithValue();
-		JavaResourcePersistentType typeResource = buildJavaTypeResource(cu);
-		
-		IdClassAnnotation idClass = (IdClassAnnotation) typeResource.getSupportingAnnotation(JPA.ID_CLASS);
-		assertEquals(ID_CLASS_VALUE, idClass.getValue());
-		
-		idClass.setValue("foo");
-		assertEquals("foo", idClass.getValue());
-		
-		assertSourceContains("@IdClass(foo.class)", cu);
-		
-		idClass.setValue(null);
-		
-		assertSourceDoesNotContain("@IdClass", cu);
-				
-		idClass = (IdClassAnnotation) typeResource.getSupportingAnnotation(JPA.ID_CLASS);
-		assertNull(idClass);
-	}
-	
-	public void testGetFullyQualifiedClass() throws Exception {
-		ICompilationUnit cu = this.createTestIdClassWithValue();
-		JavaResourcePersistentType typeResource = buildJavaTypeResource(cu);
-
-		IdClassAnnotation idClass = (IdClassAnnotation) typeResource.getSupportingAnnotation(JPA.ID_CLASS);
-		assertNotNull(idClass.getValue());
-		assertEquals("MyClass", idClass.getFullyQualifiedClassName()); //bug 196200 changed this
-
-
-		idClass.setValue(TYPE_NAME);
-				
-		assertEquals(FULLY_QUALIFIED_TYPE_NAME, idClass.getFullyQualifiedClassName());				
-		assertSourceContains("@IdClass(" + TYPE_NAME + ".class)", cu);
-	}
-
-}
diff --git a/jpa/tests/org.eclipse.jpt.core.tests/src/org/eclipse/jpt/core/tests/internal/resource/java/IdTests.java b/jpa/tests/org.eclipse.jpt.core.tests/src/org/eclipse/jpt/core/tests/internal/resource/java/IdTests.java
deleted file mode 100644
index 3574e4d..0000000
--- a/jpa/tests/org.eclipse.jpt.core.tests/src/org/eclipse/jpt/core/tests/internal/resource/java/IdTests.java
+++ /dev/null
@@ -1,50 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.core.tests.internal.resource.java;
-
-import java.util.Iterator;
-import org.eclipse.jdt.core.ICompilationUnit;
-import org.eclipse.jpt.core.resource.java.IdAnnotation;
-import org.eclipse.jpt.core.resource.java.JPA;
-import org.eclipse.jpt.core.resource.java.JavaResourceNode;
-import org.eclipse.jpt.core.resource.java.JavaResourcePersistentAttribute;
-import org.eclipse.jpt.core.resource.java.JavaResourcePersistentType;
-import org.eclipse.jpt.utility.internal.iterators.ArrayIterator;
-
-@SuppressWarnings("nls")
-public class IdTests extends JavaResourceModelTestCase {
-
-	public IdTests(String name) {
-		super(name);
-	}
-
-	private ICompilationUnit createTestId() throws Exception {
-		return this.createTestType(new DefaultAnnotationWriter() {
-			@Override
-			public Iterator<String> imports() {
-				return new ArrayIterator<String>(JPA.ID);
-			}
-			@Override
-			public void appendIdFieldAnnotationTo(StringBuilder sb) {
-				sb.append("@Id");
-			}
-		});
-	}
-
-	public void testId() throws Exception {
-		ICompilationUnit cu = this.createTestId();
-		JavaResourcePersistentType typeResource = buildJavaTypeResource(cu); 
-		JavaResourcePersistentAttribute attributeResource = typeResource.fields().next();
-		
-		JavaResourceNode mappingAnnotation = attributeResource.getMappingAnnotation();
-		assertTrue(mappingAnnotation instanceof IdAnnotation);
-	}
-
-}
diff --git a/jpa/tests/org.eclipse.jpt.core.tests/src/org/eclipse/jpt/core/tests/internal/resource/java/InheritanceTests.java b/jpa/tests/org.eclipse.jpt.core.tests/src/org/eclipse/jpt/core/tests/internal/resource/java/InheritanceTests.java
deleted file mode 100644
index d3901a3..0000000
--- a/jpa/tests/org.eclipse.jpt.core.tests/src/org/eclipse/jpt/core/tests/internal/resource/java/InheritanceTests.java
+++ /dev/null
@@ -1,83 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2008 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.core.tests.internal.resource.java;
-
-import java.util.Iterator;
-import org.eclipse.jdt.core.ICompilationUnit;
-import org.eclipse.jpt.core.resource.java.InheritanceAnnotation;
-import org.eclipse.jpt.core.resource.java.InheritanceType;
-import org.eclipse.jpt.core.resource.java.JPA;
-import org.eclipse.jpt.core.resource.java.JavaResourcePersistentType;
-import org.eclipse.jpt.utility.internal.iterators.ArrayIterator;
-
-@SuppressWarnings("nls")
-public class InheritanceTests extends JavaResourceModelTestCase {
-
-	public InheritanceTests(String name) {
-		super(name);
-	}
-
-	private ICompilationUnit createTestInheritance() throws Exception {
-		return this.createTestType(new DefaultAnnotationWriter() {
-			@Override
-			public Iterator<String> imports() {
-				return new ArrayIterator<String>(JPA.INHERITANCE);
-			}
-			@Override
-			public void appendTypeAnnotationTo(StringBuilder sb) {
-				sb.append("@Inheritance");
-			}
-		});
-	}
-	
-	private ICompilationUnit createTestInheritanceWithStrategy() throws Exception {
-		return this.createTestType(new DefaultAnnotationWriter() {
-			@Override
-			public Iterator<String> imports() {
-				return new ArrayIterator<String>(JPA.INHERITANCE, JPA.INHERITANCE_TYPE);
-			}
-			@Override
-			public void appendTypeAnnotationTo(StringBuilder sb) {
-				sb.append("@Inheritance(strategy = InheritanceType.JOINED)");
-			}
-		});
-	}
-
-	public void testInheritance() throws Exception {
-		ICompilationUnit cu = this.createTestInheritance();
-		JavaResourcePersistentType typeResource = buildJavaTypeResource(cu); 
-		
-		InheritanceAnnotation inheritance = (InheritanceAnnotation) typeResource.getSupportingAnnotation(JPA.INHERITANCE);
-		assertNotNull(inheritance);
-	}
-	
-	public void testGetStrategy() throws Exception {
-		ICompilationUnit cu = this.createTestInheritanceWithStrategy();
-		JavaResourcePersistentType typeResource = buildJavaTypeResource(cu); 
-		
-		InheritanceAnnotation inheritance = (InheritanceAnnotation) typeResource.getSupportingAnnotation(JPA.INHERITANCE);
-		assertEquals(InheritanceType.JOINED, inheritance.getStrategy());
-	}
-	
-	public void testSetStrategy() throws Exception {
-		ICompilationUnit cu = this.createTestInheritance();
-		JavaResourcePersistentType typeResource = buildJavaTypeResource(cu); 
-
-		InheritanceAnnotation inheritance = (InheritanceAnnotation) typeResource.getSupportingAnnotation(JPA.INHERITANCE);
-		inheritance.setStrategy(InheritanceType.TABLE_PER_CLASS);
-		
-		assertSourceContains("@Inheritance(strategy = TABLE_PER_CLASS)", cu);
-		
-		inheritance.setStrategy(null);
-		
-		assertSourceDoesNotContain("@Inheritance", cu);
-	}
-
-}
diff --git a/jpa/tests/org.eclipse.jpt.core.tests/src/org/eclipse/jpt/core/tests/internal/resource/java/JPTToolsTests.java b/jpa/tests/org.eclipse.jpt.core.tests/src/org/eclipse/jpt/core/tests/internal/resource/java/JPTToolsTests.java
deleted file mode 100644
index 2a1e786..0000000
--- a/jpa/tests/org.eclipse.jpt.core.tests/src/org/eclipse/jpt/core/tests/internal/resource/java/JPTToolsTests.java
+++ /dev/null
@@ -1,479 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.core.tests.internal.resource.java;
-
-import java.util.Iterator;
-
-import org.eclipse.jdt.core.ICompilationUnit;
-import org.eclipse.jdt.core.dom.CompilationUnit;
-import org.eclipse.jpt.core.utility.jdt.FieldAttribute;
-import org.eclipse.jpt.core.utility.jdt.MethodAttribute;
-import org.eclipse.jpt.core.utility.jdt.Type;
-import org.eclipse.jpt.utility.internal.iterators.ArrayIterator;
-
-@SuppressWarnings("nls")
-public class JPTToolsTests extends JavaResourceModelTestCase {
-
-	public JPTToolsTests(String name) {
-		super(name);
-	}
-
-	private ICompilationUnit createTestTypeFieldWithModifier(final String modifier) throws Exception {
-		return this.createTestType(new DefaultAnnotationWriter() {
-			
-			@Override
-			public void appendIdFieldAnnotationTo(StringBuilder sb) {
-				sb.append(CR);
-				sb.append("    " + modifier + " String foo;").append(CR);
-				sb.append(CR);
-			}
-		});
-	}
-	
-	protected FieldAttribute fooField(ICompilationUnit cu) {
-		return this.buildField("foo", cu);
-	}
-	
-	
-	private ICompilationUnit createTestTypeGetMethodWithModifier(final String modifier) throws Exception {
-		return this.createTestType(new DefaultAnnotationWriter() {
-			
-			@Override
-			public void appendGetIdMethodAnnotationTo(StringBuilder sb) {
-				sb.append(CR);
-				sb.append("    " + modifier + " int getFoo() {").append(CR);
-				sb.append("        return this.id;").append(CR);
-				sb.append("    }").append(CR);
-				sb.append(CR);
-				sb.append("    public void setFoo(int id) {").append(CR);
-				sb.append("        this.id = id;").append(CR);
-				sb.append("    }").append(CR);
-				sb.append(CR);
-			}
-		});
-	}
-	
-	private ICompilationUnit createTestTypeInvalidMethodName() throws Exception {
-		return this.createTestType(new DefaultAnnotationWriter() {
-			
-			@Override
-			public void appendGetIdMethodAnnotationTo(StringBuilder sb) {
-				sb.append(CR);
-				sb.append("    public int foo() {").append(CR);
-				sb.append("        return this.id;").append(CR);
-				sb.append("    }").append(CR);
-				sb.append(CR);
-				sb.append("    public void setFoo(int id) {").append(CR);
-				sb.append("        this.id = id;").append(CR);
-				sb.append("    }").append(CR);
-				sb.append(CR);
-			}
-		});
-	}
-	
-	private ICompilationUnit createTestTypeConstructor() throws Exception {
-		return this.createTestType(new DefaultAnnotationWriter() {
-			
-			@Override
-			public void appendGetIdMethodAnnotationTo(StringBuilder sb) {
-				sb.append(CR);
-				sb.append("    public " + TYPE_NAME + "() {").append(CR);
-				sb.append("        super();").append(CR);
-				sb.append("    }").append(CR);
-				sb.append(CR);
-			}
-		});
-	}
-	
-	private ICompilationUnit createTestTypeVoidMethodReturnType() throws Exception {
-		return this.createTestType(new DefaultAnnotationWriter() {
-			
-			@Override
-			public void appendGetIdMethodAnnotationTo(StringBuilder sb) {
-				sb.append(CR);
-				sb.append("    public void getFoo() {").append(CR);
-				sb.append("        return this.id;").append(CR);
-				sb.append("    }").append(CR);
-				sb.append(CR);
-				sb.append("    public void setFoo(int id) {").append(CR);
-				sb.append("        this.id = id;").append(CR);
-				sb.append("    }").append(CR);
-				sb.append(CR);
-			}
-		});
-	}
-	
-	private ICompilationUnit createTestTypeInvalidMethodReturnType() throws Exception {
-		return this.createTestType(new DefaultAnnotationWriter() {
-			
-			@Override
-			public Iterator<String> imports() {
-				return new ArrayIterator<String>("com.foo.Foo");
-			}
-			@Override
-			public void appendGetIdMethodAnnotationTo(StringBuilder sb) {
-				sb.append(CR);
-				sb.append("    public Foo getFoo() {").append(CR);
-				sb.append("        return null;").append(CR);
-				sb.append("    }").append(CR);
-				sb.append(CR);
-				sb.append("    public void setFoo(Foo id) {").append(CR);
-				sb.append("        this.id = id;").append(CR);
-				sb.append("    }").append(CR);
-				sb.append(CR);
-			}
-		});
-	}
-
-	private ICompilationUnit createTestTypeIsMethod() throws Exception {
-		return this.createTestType(new DefaultAnnotationWriter() {
-			
-			@Override
-			public void appendGetIdMethodAnnotationTo(StringBuilder sb) {
-				sb.append(CR);
-				sb.append("    public boolean isFoo() {").append(CR);
-				sb.append("        return this.id;").append(CR);
-				sb.append("    }").append(CR);
-				sb.append(CR);
-				sb.append("    public void setFoo(boolean id) {").append(CR);
-				sb.append("        this.id = id;").append(CR);
-				sb.append("    }").append(CR);
-				sb.append(CR);
-			}
-		});
-	}
-	
-	private ICompilationUnit createTestTypeIsMethodReturnInt() throws Exception {
-		return this.createTestType(new DefaultAnnotationWriter() {
-			
-			@Override
-			public void appendGetIdMethodAnnotationTo(StringBuilder sb) {
-				sb.append(CR);
-				sb.append("    public int isFoo() {").append(CR);
-				sb.append("        return this.id;").append(CR);
-				sb.append("    }").append(CR);
-				sb.append(CR);
-				sb.append("    public void setFoo(int id) {").append(CR);
-				sb.append("        this.id = id;").append(CR);
-				sb.append("    }").append(CR);
-				sb.append(CR);
-			}
-		});
-	}
-	
-	private ICompilationUnit createTestTypeIsAndGetMethodWithModifier(final String modifier) throws Exception {
-		return this.createTestType(new DefaultAnnotationWriter() {
-			
-			@Override
-			public void appendGetIdMethodAnnotationTo(StringBuilder sb) {
-				sb.append(CR);
-				sb.append("    " + modifier + " boolean isFoo() {").append(CR);
-				sb.append("        return this.id;").append(CR);
-				sb.append("    }").append(CR);
-				sb.append(CR);
-				sb.append("    " + modifier + " boolean getFoo() {").append(CR);
-				sb.append("        return this.id;").append(CR);
-				sb.append("    }").append(CR);
-				sb.append(CR);
-				sb.append("    public void setFoo(boolean id) {").append(CR);
-				sb.append("        this.id = id;").append(CR);
-				sb.append("    }").append(CR);
-				sb.append(CR);
-			}
-		});
-	}
-
-	private ICompilationUnit createTestTypeSetMethodWithModifier(final String modifier) throws Exception {
-		return this.createTestType(new DefaultAnnotationWriter() {
-			
-			@Override
-			public void appendGetIdMethodAnnotationTo(StringBuilder sb) {
-				sb.append(CR);
-				sb.append("    public int getFoo() {").append(CR);
-				sb.append("        return this.id;").append(CR);
-				sb.append("    }").append(CR);
-				sb.append(CR);
-				sb.append("    " + modifier + " void setFoo(int id) {").append(CR);
-				sb.append("        this.id = id;").append(CR);
-				sb.append("    }").append(CR);
-				sb.append(CR);
-			}
-		});
-	}
-
-	private ICompilationUnit createTestTypeWithMemberTypes() throws Exception {
-		return this.createTestType(new DefaultAnnotationWriter() {
-			@Override
-			public void appendMemberTypeTo(StringBuilder sb) {
-				sb.append("     public static class FooStatic {}").append(CR);
-				sb.append(CR);
-				sb.append("     public class FooNotStatic {}").append(CR);
-				sb.append(CR);
-				sb.append("     public @interface MyAnnotation {}").append(CR);
-				sb.append(CR);
-				sb.append("     public enum MyEnum {}").append(CR);
-			}
-		});
-	}
-
-	protected MethodAttribute fooMethod(ICompilationUnit cu) {
-		return this.buildMethod("getFoo", cu);
-	}
-
-	//private String foo; - persistable
-	public void testFieldIsPersistable1() throws Exception {
-		ICompilationUnit cu = createTestTypeFieldWithModifier("private");
-		FieldAttribute fieldAttribute = fooField(cu);
-		assertTrue(fieldAttribute.isPersistable(this.buildASTRoot(cu)));
-	}
-	
-	//private static String foo; - not persistable
-	public void testFieldIsPersistable2() throws Exception {
-		ICompilationUnit cu = createTestTypeFieldWithModifier("private static");
-		FieldAttribute fieldAttribute = fooField(cu);
-		assertFalse(fieldAttribute.isPersistable(this.buildASTRoot(cu)));
-	}
-	
-	//private transient String foo; - not persistable
-	public void testFieldIsPersistable3() throws Exception {
-		ICompilationUnit cu = createTestTypeFieldWithModifier("private transient");
-		FieldAttribute fieldAttribute = fooField(cu);
-		assertFalse(fieldAttribute.isPersistable(this.buildASTRoot(cu)));
-	}
-	
-	//private final String foo; - persistable
-	public void testFieldIsPersistable4() throws Exception {
-		ICompilationUnit cu = createTestTypeFieldWithModifier("private final");
-		FieldAttribute fieldAttribute = fooField(cu);
-		assertTrue(fieldAttribute.isPersistable(this.buildASTRoot(cu)));
-	}
-	
-	//public String foo; - persistable
-	public void testFieldIsPersistable5() throws Exception {
-		ICompilationUnit cu = createTestTypeFieldWithModifier("public");
-		FieldAttribute fieldAttribute = fooField(cu);
-		assertTrue(fieldAttribute.isPersistable(this.buildASTRoot(cu)));
-	}
-	
-
-	//public int getFoo() {} - persistable
-	public void testMethodIsPersistablePropertyGetter01() throws Exception {
-		ICompilationUnit cu = createTestTypeGetMethodWithModifier("public");
-		MethodAttribute methodAttribute = fooMethod(cu);
-		assertTrue(methodAttribute.isPersistable(this.buildASTRoot(cu)));
-	}
-	
-	//protected int getFoo() {} - persistable
-	public void testMethodIsPersistablePropertyGetter02() throws Exception {
-		ICompilationUnit cu = createTestTypeGetMethodWithModifier("protected");
-		MethodAttribute methodAttribute = fooMethod(cu);
-		assertTrue(methodAttribute.isPersistable(this.buildASTRoot(cu)));
-	}
-	
-	//int getFoo() {} - not persistable
-	public void testMethodIsPersistablePropertyGetter03() throws Exception {
-		ICompilationUnit cu = createTestTypeGetMethodWithModifier("");
-		MethodAttribute methodAttribute = fooMethod(cu);
-		assertFalse(methodAttribute.isPersistable(this.buildASTRoot(cu)));
-	}
-	
-	//private int getFoo() {} - not persistable
-	public void testMethodIsPersistablePropertyGetter04() throws Exception {
-		ICompilationUnit cu = createTestTypeGetMethodWithModifier("private");
-		MethodAttribute methodAttribute = fooMethod(cu);
-		assertFalse(methodAttribute.isPersistable(this.buildASTRoot(cu)));
-	}
-	
-	//public static int getFoo() {} - not persistable
-	public void testMethodIsPersistablePropertyGetter05() throws Exception {
-		ICompilationUnit cu = createTestTypeGetMethodWithModifier("public static");
-		MethodAttribute methodAttribute = fooMethod(cu);
-		assertFalse(methodAttribute.isPersistable(this.buildASTRoot(cu)));
-	}
-
-	//public final int getFoo() {} - not persistable
-	public void testMethodIsPersistablePropertyGetter06() throws Exception {
-		ICompilationUnit cu = createTestTypeGetMethodWithModifier("public final");
-		MethodAttribute methodAttribute = fooMethod(cu);
-		assertFalse(methodAttribute.isPersistable(this.buildASTRoot(cu)));
-	}
-
-	//public void setFoo(int foo) {} - persistable
-	public void testMethodIsPersistablePropertyGetter07() throws Exception {
-		ICompilationUnit cu = createTestTypeSetMethodWithModifier("public");
-		MethodAttribute methodAttribute = fooMethod(cu);
-		assertTrue(methodAttribute.isPersistable(this.buildASTRoot(cu)));
-	}
-	
-	//protected void setFoo(int foo) {} - persistable
-	public void testMethodIsPersistablePropertyGetter08() throws Exception {
-		ICompilationUnit cu = createTestTypeSetMethodWithModifier("protected");
-		MethodAttribute methodAttribute = fooMethod(cu);
-		assertTrue(methodAttribute.isPersistable(this.buildASTRoot(cu)));
-	}
-	
-	//void setFoo(int foo) {} - not persistable
-	public void testMethodIsPersistablePropertyGetter09() throws Exception {
-		ICompilationUnit cu = createTestTypeSetMethodWithModifier("");
-		MethodAttribute methodAttribute = fooMethod(cu);
-		assertFalse(methodAttribute.isPersistable(this.buildASTRoot(cu)));
-	}
-	
-	//private void setFoo(int foo) {} - not persistable
-	public void testMethodIsPersistablePropertyGetter10() throws Exception {
-		ICompilationUnit cu =  createTestTypeSetMethodWithModifier("private");
-		MethodAttribute methodAttribute = fooMethod(cu);
-		assertFalse(methodAttribute.isPersistable(this.buildASTRoot(cu)));
-	}
-	
-	//public static void setFoo(int foo) {} - not persistable
-	public void testMethodIsPersistablePropertyGetter11() throws Exception {
-		ICompilationUnit cu = createTestTypeSetMethodWithModifier("public static");
-		MethodAttribute methodAttribute = fooMethod(cu);
-		assertFalse(methodAttribute.isPersistable(this.buildASTRoot(cu)));
-	}
-
-	//public final void setFoo(int foo) {} - not persistable
-	public void testMethodIsPersistablePropertyGetter12() throws Exception {
-		ICompilationUnit cu = createTestTypeSetMethodWithModifier("public final");
-		MethodAttribute methodAttribute = fooMethod(cu);
-		assertFalse(methodAttribute.isPersistable(this.buildASTRoot(cu)));
-	}
-
-	//public boolean isFoo() {} - persistable
-	public void testMethodIsPersistablePropertyGetter13() throws Exception {
-		ICompilationUnit cu = createTestTypeIsMethod();
-		MethodAttribute methodAttribute =  this.buildMethod("isFoo", cu);
-		assertTrue(methodAttribute.isPersistable(this.buildASTRoot(cu)));
-	}
-	
-	//public int isFoo() {} - not persistable
-	public void testMethodIsPersistablePropertyGetter14() throws Exception {
-		ICompilationUnit cu = createTestTypeIsMethodReturnInt();
-		MethodAttribute methodAttribute =  this.buildMethod("isFoo", cu);
-		assertFalse(methodAttribute.isPersistable(this.buildASTRoot(cu)));
-	}
-	
-	//public int isFoo() {} - persistable
-	//public int getFoo() {} - not persistable
-	public void testMethodIsPersistablePropertyGetter15() throws Exception {
-		ICompilationUnit cu = createTestTypeIsAndGetMethodWithModifier("public");
-		MethodAttribute isFooMethod =  this.buildMethod("isFoo", cu);
-		MethodAttribute getFooMethod =  this.buildMethod("getFoo", cu);
-		
-		CompilationUnit astRoot = this.buildASTRoot(cu);
-		assertTrue(isFooMethod.isPersistable(astRoot));
-		assertFalse(getFooMethod.isPersistable(astRoot));
-	}
-	
-	//public int foo() {} - not persistable
-	public void testMethodIsPersistablePropertyGetter16() throws Exception {
-		ICompilationUnit cu = createTestTypeInvalidMethodName();
-		MethodAttribute fooMethod =  this.buildMethod("foo", cu);
-		assertFalse(fooMethod.isPersistable(this.buildASTRoot(cu)));
-	}
-
-	//public void getFoo() {} - not persistable - void return type
-	public void testMethodIsPersistablePropertyGetter17() throws Exception {
-		ICompilationUnit cu = createTestTypeVoidMethodReturnType();
-		MethodAttribute fooMethod =  this.buildMethod("getFoo", cu);
-		assertFalse(fooMethod.isPersistable(this.buildASTRoot(cu)));
-	}
-	
-	//public Foo getFoo() {} - persistable??? - Foo does not resolve
-	public void testMethodIsPersistablePropertyGetter18() throws Exception {
-		ICompilationUnit cu = createTestTypeInvalidMethodReturnType();
-		MethodAttribute getFooMethod =  this.buildMethod("getFoo", cu);
-		assertTrue(getFooMethod.isPersistable(this.buildASTRoot(cu)));
-	}
-	
-	//method with parameters - not persistable
-	public void testMethodIsPersistablePropertyGetter19() throws Exception {
-		ICompilationUnit cu = createTestType();
-		MethodAttribute setIdMethod =  idSetMethod(cu);
-		assertFalse(setIdMethod.isPersistable(this.buildASTRoot(cu)));
-	}
-	
-	//constructor - not persistable
-	public void testMethodIsPersistablePropertyGetter20() throws Exception {
-		ICompilationUnit cu = createTestTypeConstructor();
-		MethodAttribute constructor =  buildMethod(TYPE_NAME, cu);
-		assertFalse(constructor.isPersistable(this.buildASTRoot(cu)));
-	}
-	
-	//no corresponding set method - not persistable
-	public void testMethodIsPersistablePropertyGetter21() throws Exception {
-		ICompilationUnit cu = createTestType();
-		MethodAttribute getNameMethod =  nameGetMethod(cu);
-		assertFalse(getNameMethod.isPersistable(this.buildASTRoot(cu)));
-	}
-	
-	//public class AnnotationTestType
-	public void testTypeIsPersistable1() throws Exception {
-		ICompilationUnit cu = createTestType();
-		Type type = testType(cu);
-		CompilationUnit astRoot = this.buildASTRoot(cu);
-		assertTrue(type.isPersistable(astRoot));
-	}
-	
-	//public final class MyFinal
-	public void testTypeIsPersistable2() throws Exception {
-		ICompilationUnit cu = this.javaProject.createCompilationUnit("finals", "MyFinal.java", "public final class MyFinal { }");
-		Type type = buildType("MyFinal", cu);
-		CompilationUnit astRoot = this.buildASTRoot(cu);
-		assertFalse(type.isPersistable(astRoot));
-	}
-	
-	//public interface MyInterface
-	public void testTypeIsPersistable3() throws Exception {
-		ICompilationUnit cu = this.javaProject.createCompilationUnit("interfaces", "MyInterface.java", "public interface MyInterface { }");
-		Type type = buildType("MyInterface", cu);
-		CompilationUnit astRoot = this.buildASTRoot(cu);
-		assertFalse(type.isPersistable(astRoot));
-	}
-	
-	//enum not persistable
-	public void testTypeIsPersistable4() throws Exception {
-		ICompilationUnit cu = this.createEnumAndMembers("TestEnum", "FOO, BAR, BAZ");
-		Type type = buildType("TestEnum", cu);
-		CompilationUnit astRoot = this.buildASTRoot(cu);
-		assertFalse(type.isPersistable(astRoot));
-	}
-	
-	//annotation not persistable
-	public void testTypeIsPersistable5() throws Exception {
-		ICompilationUnit cu = this.createAnnotationAndMembers("TestAnnotation", "TestEnum foo();");
-		Type type = buildType("TestAnnotation", cu);
-		CompilationUnit astRoot = this.buildASTRoot(cu);
-		assertFalse(type.isPersistable(astRoot));
-	}
-	
-	//public static member type is persistable
-	public void testTypeIsPersistable6() throws Exception {
-		ICompilationUnit cu = this.createTestTypeWithMemberTypes();
-		Type testType = this.testType(cu);
-		Type memberType = this.buildType(testType, "FooStatic", 1, cu);
-		CompilationUnit astRoot = this.buildASTRoot(cu);
-		assertTrue(memberType.isPersistable(astRoot));
-	}
-	
-	//non-static member type is not persistable
-	public void testTypeIsPersistable7() throws Exception {
-		ICompilationUnit cu = this.createTestTypeWithMemberTypes();
-		Type testType = this.testType(cu);
-		Type memberType = this.buildType(testType, "FooNotStatic", 1, cu);
-		CompilationUnit astRoot = this.buildASTRoot(cu);
-		assertFalse(memberType.isPersistable(astRoot));
-	}
-	//TODO still need to test typeIsPersistable() returns false for local and anonymous classes
-
-	
-}
-
diff --git a/jpa/tests/org.eclipse.jpt.core.tests/src/org/eclipse/jpt/core/tests/internal/resource/java/JavaResourceModelTestCase.java b/jpa/tests/org.eclipse.jpt.core.tests/src/org/eclipse/jpt/core/tests/internal/resource/java/JavaResourceModelTestCase.java
deleted file mode 100644
index aa9f28d..0000000
--- a/jpa/tests/org.eclipse.jpt.core.tests/src/org/eclipse/jpt/core/tests/internal/resource/java/JavaResourceModelTestCase.java
+++ /dev/null
@@ -1,166 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.core.tests.internal.resource.java;
-
-import org.eclipse.jdt.core.ElementChangedEvent;
-import org.eclipse.jdt.core.ICompilationUnit;
-import org.eclipse.jdt.core.IElementChangedListener;
-import org.eclipse.jdt.core.IJavaElement;
-import org.eclipse.jdt.core.IJavaElementDelta;
-import org.eclipse.jdt.core.JavaCore;
-import org.eclipse.jpt.core.JpaAnnotationProvider;
-import org.eclipse.jpt.core.internal.platform.GenericJpaAnnotationDefinitionProvider;
-import org.eclipse.jpt.core.internal.platform.GenericJpaAnnotationProvider;
-import org.eclipse.jpt.core.internal.resource.java.source.SourceCompilationUnit;
-import org.eclipse.jpt.core.internal.utility.jdt.NullAnnotationEditFormatter;
-import org.eclipse.jpt.core.resource.java.JavaResourcePersistentType;
-import org.eclipse.jpt.core.resource.java.JavaResourceCompilationUnit;
-import org.eclipse.jpt.core.tests.internal.projects.TestJpaProject;
-import org.eclipse.jpt.core.tests.internal.utility.jdt.AnnotationTestCase;
-import org.eclipse.jpt.utility.CommandExecutor;
-import org.eclipse.jpt.utility.internal.BitTools;
-import org.eclipse.jpt.utility.internal.ClassTools;
-import org.eclipse.jpt.utility.internal.StringTools;
-
-@SuppressWarnings("nls")
-public class JavaResourceModelTestCase extends AnnotationTestCase
-{
-	public static final String JAVAX_PERSISTENCE_PACKAGE_NAME = "javax.persistence"; //$NON-NLS-1$
-
-	private JavaElementChangeListener javaElementChangeListener;
-	protected JavaResourceCompilationUnit javaResourceCompilationUnit;
-	
-
-	public JavaResourceModelTestCase(String name) {
-		super(name);
-	}
-	@Override
-	protected void setUp() throws Exception {
-		super.setUp();
-		this.javaProject.addJar(TestJpaProject.jpaJarName());
-		if (TestJpaProject.eclipseLinkJarName() != null) {
-			this.javaProject.addJar(TestJpaProject.eclipseLinkJarName());
-		}
-		this.javaElementChangeListener = new JavaElementChangeListener();
-		JavaCore.addElementChangedListener(this.javaElementChangeListener);
-	}
-
-	@Override
-	protected void tearDown() throws Exception {
-		super.tearDown();
-		JavaCore.removeElementChangedListener(this.javaElementChangeListener);
-		this.javaElementChangeListener = null;
-	}
-	
-	/**
-	 * Forward the Java element change event back to the JPA model manager.
-	 */
-	private class JavaElementChangeListener implements IElementChangedListener {
-		JavaElementChangeListener() {
-			super();
-		}
-		public void elementChanged(ElementChangedEvent event) {
-			JavaResourceModelTestCase.this.javaElementChanged(event);
-		}
-		@Override
-		public String toString() {
-			return StringTools.buildToStringFor(this);
-		}
-	}
-
-	void javaElementChanged(ElementChangedEvent event) {
-		if (this.javaResourceCompilationUnit == null) {
-			return;
-		}
-		this.synchWithJavaDelta(event.getDelta());
-	}
-
-	/**
-	 * NB: this is copied from GenericJpaProject, so it might need to be
-	 * kept in synch with that code if it changes... yech...
-	 */
-	protected void synchWithJavaDelta(IJavaElementDelta delta) {
-		switch (delta.getElement().getElementType()) {
-			case IJavaElement.JAVA_MODEL :
-			case IJavaElement.JAVA_PROJECT :
-			case IJavaElement.PACKAGE_FRAGMENT_ROOT :
-			case IJavaElement.PACKAGE_FRAGMENT :
-				this.synchWithJavaDeltaChildren(delta);
-				break;
-			case IJavaElement.COMPILATION_UNIT :
-				this.javaCompilationUnitChanged(delta);
-				break;
-			default :
-				break; // ignore the elements inside a compilation unit
-		}
-	}
-
-	protected void synchWithJavaDeltaChildren(IJavaElementDelta delta) {
-		for (IJavaElementDelta child : delta.getAffectedChildren()) {
-			this.synchWithJavaDelta(child); // recurse
-		}
-	}
-
-	protected void javaCompilationUnitChanged(IJavaElementDelta delta) {
-		if (this.deltaIsRelevant(delta)) {
-			this.javaResourceCompilationUnit.update();
-		}
-	}
-
-	protected boolean deltaIsRelevant(IJavaElementDelta delta) {
-		if (BitTools.onlyFlagIsSet(delta.getFlags(), IJavaElementDelta.F_PRIMARY_WORKING_COPY)) {
-			return false;
-		}
-		return delta.getKind() == IJavaElementDelta.CHANGED;
-	}
-
-	protected ICompilationUnit createAnnotationAndMembers(String annotationName, String annotationBody) throws Exception {
-		return createAnnotationAndMembers(JAVAX_PERSISTENCE_PACKAGE_NAME, annotationName, annotationBody);
-	}
-	
-	protected ICompilationUnit createAnnotationAndMembers(String packageName, String annotationName, String annotationBody) throws Exception {
-		return this.javaProject.createCompilationUnit(packageName, annotationName + ".java", "public @interface " + annotationName + " { " + annotationBody + " }");
-	}
-	
-	protected ICompilationUnit createEnumAndMembers(String enumName, String enumBody) throws Exception {
-		return createEnumAndMembers(JAVAX_PERSISTENCE_PACKAGE_NAME, enumName, enumBody);
-	}
-	
-	protected ICompilationUnit createEnumAndMembers(String packageName, String enumName, String enumBody) throws Exception {
-		return this.javaProject.createCompilationUnit(packageName, enumName + ".java", "public enum " + enumName + " { " + enumBody + " }");
-	}
-
-	protected JavaResourcePersistentType buildJavaTypeResource(ICompilationUnit cu) {
-		this.javaResourceCompilationUnit = this.buildJavaResourceCompilationUnit(cu);
-		this.javaResourceCompilationUnit.resolveTypes();
-		return this.hackJavaResourcePersistentType();
-	}
-
-	protected JavaResourcePersistentType hackJavaResourcePersistentType() {
-		return (JavaResourcePersistentType) ClassTools.fieldValue(this.javaResourceCompilationUnit, "persistentType");
-	}
-
-	protected JavaResourceCompilationUnit buildJavaResourceCompilationUnit(ICompilationUnit cu) {
-		if (this.javaResourceCompilationUnit != null) {
-			throw new IllegalStateException();
-		}
-		return new SourceCompilationUnit(
-			cu,
-			this.buildAnnotationProvider(),
-			NullAnnotationEditFormatter.instance(),
-			CommandExecutor.Default.instance()
-		);
-	}
-
-	protected JpaAnnotationProvider buildAnnotationProvider() {
-		return new GenericJpaAnnotationProvider(GenericJpaAnnotationDefinitionProvider.instance());
-	}
-
-}
diff --git a/jpa/tests/org.eclipse.jpt.core.tests/src/org/eclipse/jpt/core/tests/internal/resource/java/JavaResourcePersistentAttributeTests.java b/jpa/tests/org.eclipse.jpt.core.tests/src/org/eclipse/jpt/core/tests/internal/resource/java/JavaResourcePersistentAttributeTests.java
deleted file mode 100644
index 1a8cb78..0000000
--- a/jpa/tests/org.eclipse.jpt.core.tests/src/org/eclipse/jpt/core/tests/internal/resource/java/JavaResourcePersistentAttributeTests.java
+++ /dev/null
@@ -1,859 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.core.tests.internal.resource.java;
-
-import java.lang.reflect.Modifier;
-import java.util.Iterator;
-import java.util.List;
-import org.eclipse.core.runtime.NullProgressMonitor;
-import org.eclipse.jdt.core.ICompilationUnit;
-import org.eclipse.jpt.core.internal.resource.java.source.SourceIdAnnotation;
-import org.eclipse.jpt.core.internal.resource.java.source.SourceOneToOneAnnotation;
-import org.eclipse.jpt.core.resource.java.AttributeOverrideAnnotation;
-import org.eclipse.jpt.core.resource.java.BasicAnnotation;
-import org.eclipse.jpt.core.resource.java.ColumnAnnotation;
-import org.eclipse.jpt.core.resource.java.IdAnnotation;
-import org.eclipse.jpt.core.resource.java.JPA;
-import org.eclipse.jpt.core.resource.java.JavaResourceNode;
-import org.eclipse.jpt.core.resource.java.JavaResourcePersistentAttribute;
-import org.eclipse.jpt.core.resource.java.JavaResourcePersistentType;
-import org.eclipse.jpt.core.resource.java.NestableAnnotation;
-import org.eclipse.jpt.core.resource.java.OneToManyAnnotation;
-import org.eclipse.jpt.core.utility.jdt.ModifiedDeclaration;
-import org.eclipse.jpt.core.utility.jdt.Member.Editor;
-import org.eclipse.jpt.utility.internal.ClassTools;
-import org.eclipse.jpt.utility.internal.CollectionTools;
-import org.eclipse.jpt.utility.internal.iterators.ArrayIterator;
-
-@SuppressWarnings("nls")
-public class JavaResourcePersistentAttributeTests extends JavaResourceModelTestCase {
-	
-	public JavaResourcePersistentAttributeTests(String name) {
-		super(name);
-	}
-		
-	private ICompilationUnit createTestEntity() throws Exception {
-		return this.createTestType(new DefaultAnnotationWriter() {
-			@Override
-			public Iterator<String> imports() {
-				return new ArrayIterator<String>(JPA.ENTITY);
-			}
-			@Override
-			public void appendTypeAnnotationTo(StringBuilder sb) {
-				sb.append("@Entity");
-			}
-		});
-	}
-	
-	private ICompilationUnit createTestEntityWithNonResolvingField() throws Exception {
-		return this.createTestType(new DefaultAnnotationWriter() {
-			@Override
-			public Iterator<String> imports() {
-				return new ArrayIterator<String>(JPA.ENTITY);
-			}
-			@Override
-			public void appendTypeAnnotationTo(StringBuilder sb) {
-				sb.append("@Entity");
-			}
-			
-			@Override
-			public void appendIdFieldAnnotationTo(StringBuilder sb) {
-				sb.append("private Foo foo;").append(CR);
-				sb.append(CR);
-			}
-		});
-	}
-	private ICompilationUnit createTestEntityWithNonResolvingMethod() throws Exception {
-		return this.createTestType(new DefaultAnnotationWriter() {
-			@Override
-			public Iterator<String> imports() {
-				return new ArrayIterator<String>(JPA.ENTITY);
-			}
-			@Override
-			public void appendTypeAnnotationTo(StringBuilder sb) {
-				sb.append("@Entity");
-			}
-			
-			@Override
-			public void appendIdFieldAnnotationTo(StringBuilder sb) {
-				sb.append("private Foo foo;").append(CR);
-				sb.append(CR);
-				sb.append("    @Id");
-				sb.append(CR);
-				sb.append("    public Foo getFoo() {").append(CR);
-				sb.append("        return this.foo;").append(CR);
-				sb.append("    }").append(CR);
-				sb.append(CR);
-				sb.append("    ");
-				sb.append(CR);
-				sb.append("    public void setFoo(Foo foo) {").append(CR);
-				sb.append("        this.foo = foo;").append(CR);
-				sb.append("    }").append(CR);
-				sb.append(CR);
-				sb.append("    ");
-			}
-		});
-	}
-
-	private ICompilationUnit createTestEntityMultipleVariableDeclarationsPerLine() throws Exception {
-		return this.createTestType(new DefaultAnnotationWriter() {
-			@Override
-			public Iterator<String> imports() {
-				return new ArrayIterator<String>(JPA.ENTITY, JPA.ID, JPA.COLUMN);
-			}
-			@Override
-			public void appendTypeAnnotationTo(StringBuilder sb) {
-				sb.append("@Entity");
-			}
-			
-			@Override
-			public void appendIdFieldAnnotationTo(StringBuilder sb) {
-				sb.append(CR);
-				sb.append("    ");
-				sb.append("@Id");
-				sb.append(CR);
-				sb.append("    ");
-				sb.append("@Column(name = \"baz\")");
-				sb.append("    private String foo, bar;").append(CR);
-				sb.append(CR);
-			}
-		});
-	}
-
-	private ICompilationUnit createTestEntityWithIdAndBasic() throws Exception {
-		return this.createTestType(new DefaultAnnotationWriter() {
-			@Override
-			public Iterator<String> imports() {
-				return new ArrayIterator<String>(JPA.ENTITY, JPA.ID, JPA.BASIC);
-			}
-			@Override
-			public void appendTypeAnnotationTo(StringBuilder sb) {
-				sb.append("@Entity");
-			}
-			
-			@Override
-			public void appendIdFieldAnnotationTo(StringBuilder sb) {
-				sb.append("@Id");
-				sb.append(CR);
-				sb.append("@Basic");
-			}
-		});
-	}
-	
-	private ICompilationUnit createTestEntityAnnotatedField() throws Exception {
-		return this.createTestType(new DefaultAnnotationWriter() {
-			@Override
-			public Iterator<String> imports() {
-				return new ArrayIterator<String>(JPA.ENTITY, JPA.ID, JPA.COLUMN);
-			}
-			@Override
-			public void appendTypeAnnotationTo(StringBuilder sb) {
-				sb.append("@Entity");
-			}
-			
-			@Override
-			public void appendIdFieldAnnotationTo(StringBuilder sb) {
-				sb.append("@Id");
-				sb.append(CR);
-				sb.append("    ");
-				sb.append("@Column");
-			}
-		});
-	}	
-	
-	private ICompilationUnit createTestEntityWithColumn() throws Exception {
-		return this.createTestType(new DefaultAnnotationWriter() {
-			@Override
-			public Iterator<String> imports() {
-				return new ArrayIterator<String>(JPA.ENTITY, JPA.COLUMN);
-			}
-			@Override
-			public void appendTypeAnnotationTo(StringBuilder sb) {
-				sb.append("@Entity");
-			}
-			
-			@Override
-			public void appendIdFieldAnnotationTo(StringBuilder sb) {
-				sb.append("@Column(name = \"FOO\", table = \"MY_TABLE\")");
-			}
-		});
-	}
-	
-	private ICompilationUnit createTestEntityWithIdColumnGeneratedValue() throws Exception {
-		return this.createTestType(new DefaultAnnotationWriter() {
-			@Override
-			public Iterator<String> imports() {
-				return new ArrayIterator<String>(JPA.ENTITY, JPA.COLUMN, JPA.ID, JPA.GENERATED_VALUE);
-			}
-			@Override
-			public void appendTypeAnnotationTo(StringBuilder sb) {
-				sb.append("@Entity");
-			}
-			@Override
-			public void appendIdFieldAnnotationTo(StringBuilder sb) {
-				sb.append("@Id");
-				sb.append(CR);
-				sb.append("@Column");
-				sb.append(CR);
-				sb.append("@GeneratedValue");
-			}
-		});
-	}
-
-	
-	private ICompilationUnit createTestEntityMultipleColumns() throws Exception {
-		return this.createTestType(new DefaultAnnotationWriter() {
-			@Override
-			public Iterator<String> imports() {
-				return new ArrayIterator<String>(JPA.ENTITY, JPA.COLUMN);
-			}
-			@Override
-			public void appendTypeAnnotationTo(StringBuilder sb) {
-				sb.append("@Entity");
-			}
-			
-			@Override
-			public void appendIdFieldAnnotationTo(StringBuilder sb) {
-				sb.append("@Column(name = \"FOO\")");
-				sb.append(CR);
-				sb.append("@Column(name = \"BAR\")");
-			}
-		});
-	}
-
-	private ICompilationUnit createTestEmbeddedWithAttributeOverride() throws Exception {
-		return this.createTestType(new DefaultAnnotationWriter() {
-			@Override
-			public Iterator<String> imports() {
-				return new ArrayIterator<String>(JPA.EMBEDDED, JPA.ATTRIBUTE_OVERRIDE);
-			}
-			@Override
-			public void appendIdFieldAnnotationTo(StringBuilder sb) {
-				sb.append("@Embedded");
-				sb.append(CR);
-				sb.append("@AttributeOverride(name = \"FOO\")");
-			}
-		});
-	}
-	private ICompilationUnit createTestEmbeddedWithAttributeOverrides() throws Exception {
-		return this.createTestType(new DefaultAnnotationWriter() {
-			@Override
-			public Iterator<String> imports() {
-				return new ArrayIterator<String>(JPA.EMBEDDED, JPA.ATTRIBUTE_OVERRIDE, JPA.ATTRIBUTE_OVERRIDES);
-			}
-			@Override
-			public void appendIdFieldAnnotationTo(StringBuilder sb) {
-				sb.append("@Embedded");
-				sb.append(CR);
-				sb.append("@AttributeOverrides(@AttributeOverride(name = \"FOO\"))");
-			}
-		});
-	}
-	private ICompilationUnit createTestEmbeddedWithAttributeOverridesEmpty() throws Exception {
-		return this.createTestType(new DefaultAnnotationWriter() {
-			@Override
-			public Iterator<String> imports() {
-				return new ArrayIterator<String>(JPA.EMBEDDED, JPA.ATTRIBUTE_OVERRIDE, JPA.ATTRIBUTE_OVERRIDES);
-			}
-			@Override
-			public void appendIdFieldAnnotationTo(StringBuilder sb) {
-				sb.append("@Embedded");
-				sb.append(CR);
-				sb.append("@AttributeOverrides()");
-			}
-		});
-	}
-	
-	private ICompilationUnit createTestEmbeddedWith2AttributeOverrides() throws Exception {
-		return this.createTestType(new DefaultAnnotationWriter() {
-			@Override
-			public Iterator<String> imports() {
-				return new ArrayIterator<String>(JPA.EMBEDDED, JPA.ATTRIBUTE_OVERRIDE, JPA.ATTRIBUTE_OVERRIDES);
-			}
-			@Override
-			public void appendIdFieldAnnotationTo(StringBuilder sb) {
-				sb.append("@Embedded");
-				sb.append(CR);
-				sb.append("@AttributeOverrides({@AttributeOverride(name = \"FOO\"), @AttributeOverride(name = \"BAR\")})");
-			}
-		});
-	}
-	
-	private ICompilationUnit createTestEmbeddedWithAttributeOverrideAndAttributeOverrides() throws Exception {
-		return this.createTestType(new DefaultAnnotationWriter() {
-			@Override
-			public Iterator<String> imports() {
-				return new ArrayIterator<String>(JPA.EMBEDDED, JPA.ATTRIBUTE_OVERRIDE, JPA.ATTRIBUTE_OVERRIDES);
-			}
-			@Override
-			public void appendIdFieldAnnotationTo(StringBuilder sb) {
-				sb.append("@Embedded");
-				sb.append(CR);
-				sb.append("@AttributeOverride(name = \"FOO\")");
-				sb.append(CR);
-				sb.append("@AttributeOverrides({@AttributeOverride(name = \"BAR\"), @AttributeOverride(name = \"BAZ\")})");
-			}
-		});
-	}
-	
-	private ICompilationUnit createTestTypePublicAttribute() throws Exception {
-	
-		return this.createTestType(new DefaultAnnotationWriter() {
-			
-			@Override
-			public void appendIdFieldAnnotationTo(StringBuilder sb) {
-				sb.append(CR);
-				sb.append("   public String foo;");
-				sb.append(CR);
-			}
-		});
-	}
-	
-	private ICompilationUnit createTestTypePackageAttribute() throws Exception {
-		
-		return this.createTestType(new DefaultAnnotationWriter() {
-			
-			@Override
-			public void appendIdFieldAnnotationTo(StringBuilder sb) {
-				sb.append(CR);
-				sb.append("   String foo;");
-				sb.append(CR);
-			}
-		});
-	}
-	
-	private ICompilationUnit createTestTypeFinalAttribute() throws Exception {
-		
-		return this.createTestType(new DefaultAnnotationWriter() {
-			
-			@Override
-			public void appendIdFieldAnnotationTo(StringBuilder sb) {
-				sb.append(CR);
-				sb.append("   public final String foo;");
-				sb.append(CR);
-			}
-		});
-	}
-
-	public void testJavaAttributeAnnotations() throws Exception {
-		ICompilationUnit cu = this.createTestEntityWithColumn();
-		JavaResourcePersistentType typeResource = buildJavaTypeResource(cu);
-		JavaResourcePersistentAttribute attributeResource = typeResource.fields().next();
-		assertEquals(1, attributeResource.supportingAnnotationsSize());
-	}
-
-	public void testJavaAttributeAnnotation() throws Exception {
-		ICompilationUnit cu = this.createTestEntityWithColumn();
-		JavaResourcePersistentType typeResource = buildJavaTypeResource(cu); 
-		JavaResourcePersistentAttribute attributeResource = typeResource.fields().next();
-		assertNotNull(attributeResource.getSupportingAnnotation(JPA.COLUMN));
-	}
-
-	public void testJavaAttributeAnnotationNull() throws Exception {
-		ICompilationUnit cu = this.createTestEntity();
-		JavaResourcePersistentType typeResource = buildJavaTypeResource(cu); 
-		JavaResourcePersistentAttribute attributeResource = typeResource.fields().next();
-		assertNull(attributeResource.getSupportingAnnotation(JPA.TABLE));
-	}
-
-	//This will result in a compilation error, but we assume the first column found
-	public void testDuplicateAnnotations() throws Exception {
-		ICompilationUnit cu = this.createTestEntityMultipleColumns();
-		JavaResourcePersistentType typeResource = buildJavaTypeResource(cu); 
-		JavaResourcePersistentAttribute attributeResource = typeResource.fields().next();
-		ColumnAnnotation columnResource = (ColumnAnnotation) attributeResource.getSupportingAnnotation(JPA.COLUMN);
-		assertEquals("FOO", columnResource.getName());
-	}
-
-	public void testRemoveColumn() throws Exception {
-		ICompilationUnit cu = this.createTestEntityWithColumn();
-		JavaResourcePersistentType typeResource = buildJavaTypeResource(cu); 
-		JavaResourcePersistentAttribute attributeResource = typeResource.fields().next();
-		attributeResource.removeSupportingAnnotation(JPA.COLUMN);
-		
-		assertSourceDoesNotContain("@Column", cu);
-	}
-	
-	public void testRemoveColumnName() throws Exception {
-		ICompilationUnit cu = this.createTestEntityWithColumn();
-		JavaResourcePersistentType typeResource = buildJavaTypeResource(cu); 
-		JavaResourcePersistentAttribute attributeResource = typeResource.fields().next();
-
-		ColumnAnnotation columnResource = (ColumnAnnotation) attributeResource.getSupportingAnnotation(JPA.COLUMN);
-		columnResource.setTable(null);
-		assertSourceContains("@Column(name = \"FOO\")", cu);
-
-		columnResource.setName(null);
-		assertSourceDoesNotContain("@Column", cu);
-		
-		assertNull(typeResource.getSupportingAnnotation(JPA.TABLE));
-	}
-	
-	public void testMultipleAttributeMappings() throws Exception {
-		ICompilationUnit cu = this.createTestEntityWithIdAndBasic();
-		JavaResourcePersistentType typeResource = buildJavaTypeResource(cu); 
-		JavaResourcePersistentAttribute attributeResource = typeResource.fields().next();
-		
-		assertEquals(2, attributeResource.mappingAnnotationsSize());
-		assertEquals(0, attributeResource.supportingAnnotationsSize());
-		assertNotNull(attributeResource.getMappingAnnotation(JPA.BASIC));
-		assertNotNull(attributeResource.getMappingAnnotation(JPA.ID));
-		
-		JavaResourceNode javaAttributeMappingAnnotation = attributeResource.getMappingAnnotation();
-		assertTrue(javaAttributeMappingAnnotation instanceof BasicAnnotation);
-		assertSourceContains("@Basic", cu);
-		assertSourceContains("@Id", cu);
-		
-		attributeResource.setMappingAnnotation(JPA.ONE_TO_MANY);
-		assertEquals(1, attributeResource.mappingAnnotationsSize());
-		javaAttributeMappingAnnotation = attributeResource.getMappingAnnotation();
-		assertTrue(javaAttributeMappingAnnotation instanceof OneToManyAnnotation);
-		assertSourceDoesNotContain("@Id", cu);
-		assertSourceContains("@OneToMany", cu);
-		assertSourceDoesNotContain("@Basic", cu);
-	}
-	
-	public void testSetJavaAttributeMappingAnnotation() throws Exception {
-		ICompilationUnit cu = createTestType();
-		JavaResourcePersistentType typeResource = buildJavaTypeResource(cu); 
-		JavaResourcePersistentAttribute attributeResource = typeResource.fields().next();
-		assertEquals(0, attributeResource.mappingAnnotationsSize());
-		
-		attributeResource.setMappingAnnotation(JPA.ID);
-		assertTrue(attributeResource.getMappingAnnotation() instanceof IdAnnotation);
-		assertSourceContains("@Id", cu);
-	}
-
-	public void testSetJavaAttributeMappingAnnotation2() throws Exception {
-		ICompilationUnit cu = createTestEntityWithColumn();
-		JavaResourcePersistentType typeResource = buildJavaTypeResource(cu); 
-		JavaResourcePersistentAttribute attributeResource = typeResource.fields().next();
-		assertNull(attributeResource.getMappingAnnotation());
-		
-		attributeResource.setMappingAnnotation(JPA.ID);
-		assertTrue(attributeResource.getMappingAnnotation() instanceof IdAnnotation);
-		
-		assertSourceContains("@Id", cu);
-		assertSourceContains("@Column", cu);
-	}
-	
-	public void testSetJavaAttributeMappingAnnotation3() throws Exception {
-		ICompilationUnit cu = createTestEntityWithIdColumnGeneratedValue();
-		JavaResourcePersistentType typeResource = buildJavaTypeResource(cu); 
-		JavaResourcePersistentAttribute attributeResource = typeResource.fields().next();
-		assertTrue(attributeResource.getMappingAnnotation() instanceof IdAnnotation);
-		
-		attributeResource.setMappingAnnotation(JPA.BASIC);
-		assertTrue(attributeResource.getMappingAnnotation() instanceof BasicAnnotation);
-		
-		assertSourceDoesNotContain("@Id", cu);
-		assertSourceContains("@GeneratedValue", cu); //not supported by Basic
-		assertSourceContains("@Column", cu); //common between Id and Basic
-	}
-	
-	public void testSetJavaAttributeMappingAnnotationNull() throws Exception {
-		ICompilationUnit cu = createTestEntityWithIdColumnGeneratedValue();
-		JavaResourcePersistentType typeResource = buildJavaTypeResource(cu); 
-		JavaResourcePersistentAttribute attributeResource = typeResource.fields().next();
-		assertTrue(attributeResource.getMappingAnnotation() instanceof IdAnnotation);
-		
-		attributeResource.setMappingAnnotation(null);
-		assertNull(attributeResource.getMappingAnnotation());
-		
-		assertSourceDoesNotContain("@Id", cu);
-		assertSourceContains("@GeneratedValue", cu); //not supported by Basic
-		assertSourceContains("@Column", cu); //common between Id and Basic
-	}
-
-	public void testAddJavaAttributeAnnotation() throws Exception {
-		ICompilationUnit cu = createTestEntity();
-		JavaResourcePersistentType typeResource = buildJavaTypeResource(cu); 
-
-		JavaResourcePersistentAttribute attributeResource = typeResource.fields().next();
-		
-		assertSourceDoesNotContain("@Column", cu);
-		attributeResource.addSupportingAnnotation(JPA.COLUMN);
-		assertSourceContains("@Column", cu);
-	}
-	
-	public void testRemoveJavaAttributeAnnotation() throws Exception {
-		ICompilationUnit cu = createTestEntityAnnotatedField();
-		JavaResourcePersistentType typeResource = buildJavaTypeResource(cu); 
-		JavaResourcePersistentAttribute attributeResource = typeResource.fields().next();
-		assertSourceContains("@Column", cu);
-		attributeResource.removeSupportingAnnotation(JPA.COLUMN);
-		assertSourceDoesNotContain("@Column", cu);
-	}
-	
-	//update source code to change from @Id to @OneToOne and make sure @Column is not removed
-	public void testChangeAttributeMappingInSource() throws Exception {
-		ICompilationUnit cu = createTestEntityAnnotatedField();
-		JavaResourcePersistentType typeResource = buildJavaTypeResource(cu);
-		final JavaResourcePersistentAttribute attributeResource = typeResource.fields().next();
-	
-		idField(cu).edit(new Editor() {
-			public void edit(ModifiedDeclaration declaration) {
-				SourceIdAnnotation.DECLARATION_ANNOTATION_ADAPTER.removeAnnotation(declaration);
-			}
-		});		
-		
-		cu.createImport("javax.persistence.OneToOne", null, new NullProgressMonitor());
-		
-		idField(cu).edit(new Editor() {
-			public void edit(ModifiedDeclaration declaration) {
-				SourceOneToOneAnnotation.DECLARATION_ANNOTATION_ADAPTER.newMarkerAnnotation(declaration);
-			}
-		});		
-		
-		assertNotNull(attributeResource.getSupportingAnnotation(JPA.COLUMN));
-		assertNull(attributeResource.getMappingAnnotation(JPA.ID));
-		assertNotNull(attributeResource.getMappingAnnotation(JPA.ONE_TO_ONE));
-		assertSourceContains("@Column", cu);
-	}
-
-	public void testJavaAttributeAnnotationsNestable() throws Exception {
-		ICompilationUnit cu = createTestEmbeddedWithAttributeOverride();
-		JavaResourcePersistentType typeResource = buildJavaTypeResource(cu);
-		JavaResourcePersistentAttribute attributeResource = typeResource.fields().next();
-		
-		assertEquals(1, CollectionTools.size(attributeResource.supportingAnnotations(JPA.ATTRIBUTE_OVERRIDE, JPA.ATTRIBUTE_OVERRIDES)));
-		
-		AttributeOverrideAnnotation attributeOverride = (AttributeOverrideAnnotation) attributeResource.supportingAnnotations(JPA.ATTRIBUTE_OVERRIDE, JPA.ATTRIBUTE_OVERRIDES).next();
-		
-		assertEquals("FOO", attributeOverride.getName());
-	}
-	
-	public void testJavaAttributeAnnotationsNoNestable() throws Exception {
-		ICompilationUnit cu = createTestEntity();
-		JavaResourcePersistentType typeResource = buildJavaTypeResource(cu);
-		JavaResourcePersistentAttribute attributeResource = typeResource.fields().next();
-		
-		assertEquals(0, CollectionTools.size(attributeResource.supportingAnnotations(JPA.ATTRIBUTE_OVERRIDE, JPA.ATTRIBUTE_OVERRIDES)));
-	}
-	
-	public void testJavaAttributeAnnotationsContainerNoNestable() throws Exception {
-		ICompilationUnit cu = createTestEmbeddedWithAttributeOverridesEmpty();
-		JavaResourcePersistentType typeResource = buildJavaTypeResource(cu);
-		JavaResourcePersistentAttribute attributeResource = typeResource.fields().next();
-	
-		assertEquals(0, CollectionTools.size(attributeResource.supportingAnnotations(JPA.ATTRIBUTE_OVERRIDE, JPA.ATTRIBUTE_OVERRIDES)));
-	}
-
-	public void testJavaAttributeAnnotationsNestableAndContainer() throws Exception {
-		ICompilationUnit cu = createTestEmbeddedWithAttributeOverrideAndAttributeOverrides();
-		JavaResourcePersistentType typeResource = buildJavaTypeResource(cu);
-		JavaResourcePersistentAttribute attributeResource = typeResource.fields().next();
-		assertNotNull(attributeResource.getSupportingAnnotation(JPA.ATTRIBUTE_OVERRIDE));
-		assertNotNull(attributeResource.getSupportingAnnotation(JPA.ATTRIBUTE_OVERRIDES));
-		assertEquals(2, CollectionTools.size(attributeResource.supportingAnnotations(JPA.ATTRIBUTE_OVERRIDE, JPA.ATTRIBUTE_OVERRIDES)));
-
-		AttributeOverrideAnnotation attributeOverrideResource = (AttributeOverrideAnnotation) attributeResource.supportingAnnotations(JPA.ATTRIBUTE_OVERRIDE, JPA.ATTRIBUTE_OVERRIDES).next();	
-		assertEquals("BAR", attributeOverrideResource.getName());
-	}
-			        
-	//			-->>	@AttributeOverride(name="FOO")
-	public void testAddJavaAttributeAnnotationNestableContainer() throws Exception {
-		ICompilationUnit cu = createTestEntity();
-		JavaResourcePersistentType typeResource = buildJavaTypeResource(cu);
-		JavaResourcePersistentAttribute attributeResource = typeResource.fields().next();
-		AttributeOverrideAnnotation attributeOverride = (AttributeOverrideAnnotation) attributeResource.addSupportingAnnotation(0, JPA.ATTRIBUTE_OVERRIDE, JPA.ATTRIBUTE_OVERRIDES);
-		attributeOverride.setName("FOO");
-		assertSourceContains("@AttributeOverride(name = \"FOO\")", cu);
-	}
-	
-	//  @Embedded     				-->>    @Embedded
-	//	@AttributeOverride(name="FOO")		@AttributeOverrides({@AttributeOverride(name="FOO"), @AttributeOverride(name="BAR")})	
-	public void testAddJavaAttributeAnnotationNestableContainer2() throws Exception {
-		ICompilationUnit cu = createTestEmbeddedWithAttributeOverride();
-		JavaResourcePersistentType typeResource = buildJavaTypeResource(cu);
-		JavaResourcePersistentAttribute attributeResource = typeResource.fields().next();
-		
-		AttributeOverrideAnnotation attributeOverride = (AttributeOverrideAnnotation) attributeResource.addSupportingAnnotation(1, JPA.ATTRIBUTE_OVERRIDE, JPA.ATTRIBUTE_OVERRIDES);
-		attributeOverride.setName("BAR");
-		assertSourceContains("@AttributeOverrides({@AttributeOverride(name = \"FOO\"),@AttributeOverride(name = \"BAR\")})", cu);
-		
-		assertNull(attributeResource.getSupportingAnnotation(JPA.ATTRIBUTE_OVERRIDE));
-		assertNotNull(attributeResource.getSupportingAnnotation(JPA.ATTRIBUTE_OVERRIDES));
-		assertEquals(2, CollectionTools.size(attributeResource.supportingAnnotations(JPA.ATTRIBUTE_OVERRIDE, JPA.ATTRIBUTE_OVERRIDES)));
-	}
-	
-	//  @Embedded     				
-	//	@AttributeOverrides(@AttributeOverride(name="FOO"))
-	//           ||
-	//           \/
-	//  @Embedded     				
-	//	@AttributeOverrides({@AttributeOverride(name="FOO"), @AttributeOverride(name="BAR")})
-	public void testAddJavaAttributeAnnotationNestableContainer3() throws Exception {
-		ICompilationUnit cu = createTestEmbeddedWithAttributeOverrides();
-		JavaResourcePersistentType typeResource = buildJavaTypeResource(cu);
-		JavaResourcePersistentAttribute attributeResource = typeResource.fields().next();
-	
-		AttributeOverrideAnnotation attributeOverride = (AttributeOverrideAnnotation) attributeResource.addSupportingAnnotation(1, JPA.ATTRIBUTE_OVERRIDE, JPA.ATTRIBUTE_OVERRIDES);
-		attributeOverride.setName("BAR");
-		assertSourceContains("@AttributeOverrides({@AttributeOverride(name = \"FOO\"),@AttributeOverride(name = \"BAR\")})", cu);
-		
-		assertNull(attributeResource.getSupportingAnnotation(JPA.ATTRIBUTE_OVERRIDE));
-		assertNotNull(attributeResource.getSupportingAnnotation(JPA.ATTRIBUTE_OVERRIDES));
-		assertEquals(2, CollectionTools.size(attributeResource.supportingAnnotations(JPA.ATTRIBUTE_OVERRIDE, JPA.ATTRIBUTE_OVERRIDES)));
-	}
-	
-	public void testAddJavaAttributeAnnotationNestableContainer5() throws Exception {
-		ICompilationUnit cu = createTestEmbeddedWithAttributeOverrides();
-		JavaResourcePersistentType typeResource = buildJavaTypeResource(cu);
-		JavaResourcePersistentAttribute attributeResource = typeResource.fields().next();
-		
-		AttributeOverrideAnnotation attributeOverride = (AttributeOverrideAnnotation) attributeResource.addSupportingAnnotation(0, JPA.ATTRIBUTE_OVERRIDE, JPA.ATTRIBUTE_OVERRIDES);
-		attributeOverride.setName("BAR");
-		assertSourceContains("@AttributeOverrides({@AttributeOverride(name = \"BAR\"),@AttributeOverride(name = \"FOO\")})", cu);
-		
-		assertNull(attributeResource.getSupportingAnnotation(JPA.ATTRIBUTE_OVERRIDE));
-		assertNotNull(attributeResource.getSupportingAnnotation(JPA.ATTRIBUTE_OVERRIDES));
-		assertEquals(2, CollectionTools.size(attributeResource.supportingAnnotations(JPA.ATTRIBUTE_OVERRIDE, JPA.ATTRIBUTE_OVERRIDES)));
-	}
-	
-	//  @Embedded     				
-	//	@SecondaryTable(name=\"FOO\")
-	//  @AttributeOverrides({@AttributeOverride(name=\"BAR\"), @AttributeOverride(name=\"BAZ\")})
-	//			 ||
-	//           \/
-	//  @Embedded     				
-	//	@AttributeOverride(name=\"FOO\")
-	//  @AttributeOverrides({@AttributeOverride(name=\"BAR\"), @AttributeOverride(name=\"BAZ\"), @AttributeOverride(name=\"BOO\")})
-	public void testAddJavaAttributeAnnotationNestableContainer4() throws Exception {
-		ICompilationUnit cu = createTestEmbeddedWithAttributeOverrideAndAttributeOverrides();
-		JavaResourcePersistentType typeResource = buildJavaTypeResource(cu);
-		JavaResourcePersistentAttribute attributeResource = typeResource.fields().next();
-		
-		assertNotNull(attributeResource.getSupportingAnnotation(JPA.ATTRIBUTE_OVERRIDE));
-		assertNotNull(attributeResource.getSupportingAnnotation(JPA.ATTRIBUTE_OVERRIDES));
-		assertEquals(2, CollectionTools.size(attributeResource.supportingAnnotations(JPA.ATTRIBUTE_OVERRIDE, JPA.ATTRIBUTE_OVERRIDES)));
-
-		AttributeOverrideAnnotation attributeOverride = (AttributeOverrideAnnotation) attributeResource.addSupportingAnnotation(2, JPA.ATTRIBUTE_OVERRIDE, JPA.ATTRIBUTE_OVERRIDES);
-		assertSourceContains("@AttributeOverrides({@AttributeOverride(name = \"BAR\"), @AttributeOverride(name = \"BAZ\"),", cu);
-		assertSourceContains("@AttributeOverride})", cu);
-		attributeOverride.setName("BOO");
-		
-		assertNotNull(attributeResource.getSupportingAnnotation(JPA.ATTRIBUTE_OVERRIDE));
-		assertNotNull(attributeResource.getSupportingAnnotation(JPA.ATTRIBUTE_OVERRIDES));
-		assertEquals(3, CollectionTools.size(attributeResource.supportingAnnotations(JPA.ATTRIBUTE_OVERRIDE, JPA.ATTRIBUTE_OVERRIDES)));
-
-		Iterator<NestableAnnotation> attributeOverrideAnnotations = attributeResource.supportingAnnotations(JPA.ATTRIBUTE_OVERRIDE, JPA.ATTRIBUTE_OVERRIDES);
-		attributeOverride = (AttributeOverrideAnnotation) attributeOverrideAnnotations.next();	
-		assertEquals("BAR", attributeOverride.getName());
-		attributeOverride = (AttributeOverrideAnnotation) attributeOverrideAnnotations.next();	
-		assertEquals("BAZ", attributeOverride.getName());
-		attributeOverride = (AttributeOverrideAnnotation) attributeOverrideAnnotations.next();	
-		assertEquals("BOO", attributeOverride.getName());
-		
-		assertSourceContains("@AttributeOverrides({@AttributeOverride(name = \"BAR\"), @AttributeOverride(name = \"BAZ\"),", cu);
-		assertSourceContains("@AttributeOverride(name = \"BOO\")})", cu);
-	}
-
-	//@Entity
-	//@AttributeOverride(name="FOO")
-	public void testRemoveJavaAttributeAnnotationNestableContainer() throws Exception {
-		ICompilationUnit cu = createTestEmbeddedWithAttributeOverride();
-		JavaResourcePersistentType typeResource = buildJavaTypeResource(cu);
-		JavaResourcePersistentAttribute attributeResource = typeResource.fields().next();
-	
-		attributeResource.removeSupportingAnnotation(0, JPA.ATTRIBUTE_OVERRIDE, JPA.ATTRIBUTE_OVERRIDES);
-		
-		assertSourceDoesNotContain("@AttributeOverride", cu);
-	}
-	
-
-	//@Entity
-	//@SecondaryTables(@SecondaryTable(name="FOO"))
-	public void testRemoveJavaAttributeAnnotationNestableContainer2() throws Exception {
-		ICompilationUnit cu = createTestEmbeddedWithAttributeOverrides();
-		JavaResourcePersistentType typeResource = buildJavaTypeResource(cu);
-		JavaResourcePersistentAttribute attributeResource = typeResource.fields().next();
-	
-		attributeResource.removeSupportingAnnotation(0, JPA.ATTRIBUTE_OVERRIDE, JPA.ATTRIBUTE_OVERRIDES);
-		
-		assertSourceDoesNotContain("@AttributeOverride", cu);
-		assertSourceDoesNotContain("@AttributeOverrides", cu);
-	}
-	
-	public void testRemoveJavaAttributeAnnotationIndex() throws Exception {
-		ICompilationUnit cu = createTestEmbeddedWith2AttributeOverrides();
-		JavaResourcePersistentType typeResource = buildJavaTypeResource(cu);
-		JavaResourcePersistentAttribute attributeResource = typeResource.fields().next();
-	
-		attributeResource.removeSupportingAnnotation(0, JPA.ATTRIBUTE_OVERRIDE , JPA.ATTRIBUTE_OVERRIDES);
-		
-		assertSourceDoesNotContain("@AttributeOverride(name = \"FOO\"", cu);
-		assertSourceContains("@AttributeOverride(name = \"BAR\"", cu);
-		assertSourceDoesNotContain("@AttributeOverrides", cu);
-	}
-	
-	public void testRemoveJavaAttributeAnnotationIndex2() throws Exception {
-		ICompilationUnit cu = createTestEmbeddedWith2AttributeOverrides();
-		JavaResourcePersistentType typeResource = buildJavaTypeResource(cu);
-		JavaResourcePersistentAttribute attributeResource = typeResource.fields().next();
-
-		AttributeOverrideAnnotation newAnnotation = (AttributeOverrideAnnotation)attributeResource.addSupportingAnnotation(2, JPA.ATTRIBUTE_OVERRIDE, JPA.ATTRIBUTE_OVERRIDES);
-		newAnnotation.setName("BAZ");
-		assertSourceContains("@AttributeOverrides({@AttributeOverride(name = \"FOO\"), @AttributeOverride(name = \"BAR\"),", cu);
-		assertSourceContains("@AttributeOverride(name = \"BAZ\")})", cu);
-		
-		attributeResource.removeSupportingAnnotation(1, JPA.ATTRIBUTE_OVERRIDE, JPA.ATTRIBUTE_OVERRIDES);
-		assertSourceContains("@AttributeOverrides({@AttributeOverride(name = \"FOO\"), @AttributeOverride(name = \"BAZ\")})", cu);
-	}
-	
-	public void testMoveJavaTypeAnnotation() throws Exception {
-		ICompilationUnit cu = createTestEmbeddedWith2AttributeOverrides();
-		JavaResourcePersistentType typeResource = buildJavaTypeResource(cu);
-		JavaResourcePersistentAttribute attributeResource = typeResource.fields().next();
-	
-		AttributeOverrideAnnotation newAnnotation = (AttributeOverrideAnnotation)attributeResource.addSupportingAnnotation(2, JPA.ATTRIBUTE_OVERRIDE, JPA.ATTRIBUTE_OVERRIDES);
-		newAnnotation.setName("BAZ");
-		assertSourceContains("@AttributeOverrides({@AttributeOverride(name = \"FOO\"), @AttributeOverride(name = \"BAR\"),", cu);
-		assertSourceContains("@AttributeOverride(name = \"BAZ\")})", cu);
-		
-		
-		attributeResource.moveSupportingAnnotation(0, 2, JPA.ATTRIBUTE_OVERRIDES);
-		assertSourceContains("@AttributeOverrides({@AttributeOverride(name = \"BAZ\"), @AttributeOverride(name = \"FOO\"),", cu);
-		assertSourceContains("@AttributeOverride(name = \"BAR\")})", cu);
-	}
-	
-	public void testMoveJavaTypeAnnotation2() throws Exception {
-		ICompilationUnit cu = createTestEmbeddedWith2AttributeOverrides();
-		JavaResourcePersistentType typeResource = buildJavaTypeResource(cu);
-		JavaResourcePersistentAttribute attributeResource = typeResource.fields().next();
-	
-		AttributeOverrideAnnotation newAnnotation = (AttributeOverrideAnnotation) attributeResource.addSupportingAnnotation(2, JPA.ATTRIBUTE_OVERRIDE, JPA.ATTRIBUTE_OVERRIDES);
-		newAnnotation.setName("BAZ");
-		assertSourceContains("@AttributeOverrides({@AttributeOverride(name = \"FOO\"), @AttributeOverride(name = \"BAR\"),", cu);
-		assertSourceContains("@AttributeOverride(name = \"BAZ\")})", cu);
-		
-		attributeResource.moveSupportingAnnotation(1, 0, JPA.ATTRIBUTE_OVERRIDES);
-		assertSourceContains("@AttributeOverrides({@AttributeOverride(name = \"BAR\"), @AttributeOverride(name = \"FOO\"),", cu);
-		assertSourceContains("@AttributeOverride(name = \"BAZ\")})", cu);
-	}	
-
-	//more detailed tests in JPTToolsTests
-	public void testIsPersistableField() throws Exception {
-		ICompilationUnit cu = createTestEntity();
-		JavaResourcePersistentType typeResource = buildJavaTypeResource(cu);
-		JavaResourcePersistentAttribute attributeResource = typeResource.fields().next();
-		
-		assertTrue(attributeResource.isPersistable());
-	}
-	
-	public void testIsPersistableField2() throws Exception {
-		ICompilationUnit cu = createTestEntityWithNonResolvingField();
-		JavaResourcePersistentType typeResource = buildJavaTypeResource(cu);
-		@SuppressWarnings("unchecked")
-		List<JavaResourcePersistentAttribute> attributes = (List<JavaResourcePersistentAttribute>) ClassTools.fieldValue(typeResource, "fields");
-		JavaResourcePersistentAttribute attributeResource = attributes.get(0);
-		
-		assertEquals("foo", attributeResource.getName());
-		assertTrue(attributeResource.isField());
-		assertTrue(attributeResource.isPersistable()); //bug 196200 changed this
-
-		this.javaProject.createCompilationUnit("test", "Foo.java", "public class Foo {}");
-		
-		assertTrue(attributeResource.isPersistable());
-	}
-	
-	public void testGetTypeName() throws Exception {
-		ICompilationUnit cu = createTestEntityWithNonResolvingField();
-		JavaResourcePersistentType typeResource = buildJavaTypeResource(cu);
-		@SuppressWarnings("unchecked")
-		List<JavaResourcePersistentAttribute> attributes = (List<JavaResourcePersistentAttribute>) ClassTools.fieldValue(typeResource, "fields");
-		JavaResourcePersistentAttribute attributeResource = attributes.get(0);
-		
-		assertEquals("foo", attributeResource.getName());
-		assertEquals("test.Foo", attributeResource.getTypeName()); //bug 196200 changed this
-
-		this.javaProject.createCompilationUnit("test", "Foo.java", "public class Foo {}");
-		
-		assertEquals("test.Foo", attributeResource.getTypeName());
-	}
-	
-	
-	//more detailed tests in JPTToolsTests
-	public void testIsPersistableMethod() throws Exception {
-		ICompilationUnit cu = createTestEntity();
-		JavaResourcePersistentType typeResource = buildJavaTypeResource(cu);
-		JavaResourcePersistentAttribute attributeResource = typeResource.persistableProperties().next();
-		
-		assertTrue(attributeResource.isPersistable());		
-	}
-	
-	public void testIsPersistableMethod2() throws Exception {
-		ICompilationUnit cu = createTestEntityWithNonResolvingMethod();
-		JavaResourcePersistentType typeResource = buildJavaTypeResource(cu);
-		@SuppressWarnings("unchecked")
-		List<JavaResourcePersistentAttribute> attributes = (List<JavaResourcePersistentAttribute>) ClassTools.fieldValue(typeResource, "methods");
-		JavaResourcePersistentAttribute attributeResource = attributes.get(0);
-		
-		assertEquals("foo", attributeResource.getName());
-		assertTrue(attributeResource.isProperty());
-		assertTrue(attributeResource.isPersistable());//bug 196200 changed this
-
-		this.javaProject.createCompilationUnit("test", "Foo.java", "public class Foo {}");
-		
-		assertTrue(attributeResource.isPersistable());
-	}
-	
-	//this tests that we handle mutliple variable declarations in one line.
-	//The annotations should apply to all fields defined.  This is not really a useful
-	//thing to do with JPA beyond the most basic things that use default column names
-	public void testMultipleVariableDeclarationsPerLine() throws Exception {
-		ICompilationUnit cu = createTestEntityMultipleVariableDeclarationsPerLine();
-		JavaResourcePersistentType typeResource = buildJavaTypeResource(cu);
-		
-		assertEquals(4, CollectionTools.size(typeResource.fields()));
-		Iterator<JavaResourcePersistentAttribute> fields = typeResource.fields();
-		JavaResourcePersistentAttribute attributeResource = fields.next();
-		ColumnAnnotation column = (ColumnAnnotation) attributeResource.getSupportingAnnotation(JPA.COLUMN);
-		assertEquals("baz", column.getName());
-
-		attributeResource = fields.next();
-		column = (ColumnAnnotation) attributeResource.getSupportingAnnotation(JPA.COLUMN);
-		assertEquals("baz", column.getName());
-	}
-	
-	public void testIsPublic() throws Exception {
-		ICompilationUnit cu = createTestTypePublicAttribute();
-		JavaResourcePersistentType typeResource = buildJavaTypeResource(cu);
-		JavaResourcePersistentAttribute attribute = typeResource.persistableAttributes().next();
-		
-		assertTrue(Modifier.isPublic(attribute.getModifiers()));
-	}
-	
-	public void testIsPublicFalse() throws Exception {
-		ICompilationUnit cu = createTestTypePackageAttribute();
-		JavaResourcePersistentType typeResource = buildJavaTypeResource(cu);
-		JavaResourcePersistentAttribute attribute = typeResource.persistableAttributes().next();
-		
-		assertFalse(Modifier.isPublic(attribute.getModifiers()));
-	}
-
-	public void testIsFinal() throws Exception {
-		ICompilationUnit cu = createTestTypeFinalAttribute();
-		JavaResourcePersistentType typeResource = buildJavaTypeResource(cu);
-		JavaResourcePersistentAttribute attribute = typeResource.persistableAttributes().next();
-		
-		assertTrue(Modifier.isFinal(attribute.getModifiers()));
-	}
-	
-	public void testIsFinalFalse() throws Exception {
-		ICompilationUnit cu = createTestTypePackageAttribute();
-		JavaResourcePersistentType typeResource = buildJavaTypeResource(cu);
-		JavaResourcePersistentAttribute attribute = typeResource.persistableAttributes().next();
-		
-		assertFalse(Modifier.isFinal(attribute.getModifiers()));
-	}
-	
-	//TODO add tests for JPTTools static methods
-}
diff --git a/jpa/tests/org.eclipse.jpt.core.tests/src/org/eclipse/jpt/core/tests/internal/resource/java/JavaResourcePersistentTypeTests.java b/jpa/tests/org.eclipse.jpt.core.tests/src/org/eclipse/jpt/core/tests/internal/resource/java/JavaResourcePersistentTypeTests.java
deleted file mode 100644
index 1ff5585..0000000
--- a/jpa/tests/org.eclipse.jpt.core.tests/src/org/eclipse/jpt/core/tests/internal/resource/java/JavaResourcePersistentTypeTests.java
+++ /dev/null
@@ -1,921 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.core.tests.internal.resource.java;
-
-import java.util.Iterator;
-
-import org.eclipse.core.runtime.NullProgressMonitor;
-import org.eclipse.jdt.core.ICompilationUnit;
-import org.eclipse.jpt.core.internal.resource.java.source.SourceEmbeddableAnnotation;
-import org.eclipse.jpt.core.internal.resource.java.source.SourceEntityAnnotation;
-import org.eclipse.jpt.core.resource.java.AccessType;
-import org.eclipse.jpt.core.resource.java.EmbeddableAnnotation;
-import org.eclipse.jpt.core.resource.java.EntityAnnotation;
-import org.eclipse.jpt.core.resource.java.JPA;
-import org.eclipse.jpt.core.resource.java.JavaResourceNode;
-import org.eclipse.jpt.core.resource.java.JavaResourcePersistentAttribute;
-import org.eclipse.jpt.core.resource.java.JavaResourcePersistentType;
-import org.eclipse.jpt.core.resource.java.MappedSuperclassAnnotation;
-import org.eclipse.jpt.core.resource.java.NestableAnnotation;
-import org.eclipse.jpt.core.resource.java.SecondaryTableAnnotation;
-import org.eclipse.jpt.core.resource.java.TableAnnotation;
-import org.eclipse.jpt.core.utility.jdt.ModifiedDeclaration;
-import org.eclipse.jpt.core.utility.jdt.Member.Editor;
-import org.eclipse.jpt.utility.internal.CollectionTools;
-import org.eclipse.jpt.utility.internal.iterators.ArrayIterator;
-
-@SuppressWarnings("nls")
-public class JavaResourcePersistentTypeTests extends JavaResourceModelTestCase {
-	
-	public JavaResourcePersistentTypeTests(String name) {
-		super(name);
-	}
-	
-	private ICompilationUnit createTestEntity() throws Exception {
-		return this.createTestType(new DefaultAnnotationWriter() {
-			@Override
-			public Iterator<String> imports() {
-				return new ArrayIterator<String>(JPA.ENTITY);
-			}
-			@Override
-			public void appendTypeAnnotationTo(StringBuilder sb) {
-				sb.append("@Entity");
-			}
-		});
-	}
-	
-	private ICompilationUnit createTestInvalidAnnotations() throws Exception {
-		return this.createTestType(new DefaultAnnotationWriter() {
-			@Override
-			public Iterator<String> imports() {
-				return new ArrayIterator<String>("javax.persistence.Foo");
-			}
-			@Override
-			public void appendTypeAnnotationTo(StringBuilder sb) {
-				sb.append("@Foo");
-			}
-			
-			@Override
-			public void appendIdFieldAnnotationTo(StringBuilder sb) {
-				sb.append("@Foo");
-			}
-		});
-	}
-
-	private ICompilationUnit createTestEntityWithMemberEmbeddable() throws Exception {
-		return this.createTestType(new DefaultAnnotationWriter() {
-			@Override
-			public Iterator<String> imports() {
-				return new ArrayIterator<String>(JPA.ENTITY, JPA.EMBEDDABLE);
-			}
-			@Override
-			public void appendTypeAnnotationTo(StringBuilder sb) {
-				sb.append("@Entity");
-			}
-			
-			@Override
-			public void appendMemberTypeTo(StringBuilder sb) {
-				sb.append("     @Embeddable");
-				sb.append(CR);
-				sb.append("     public static class Foo { }").append(CR);
-
-			}
-		});
-	}
-
-	private ICompilationUnit createTestEntityDuplicates() throws Exception {
-		return this.createTestType(new DefaultAnnotationWriter() {
-			@Override
-			public Iterator<String> imports() {
-				return new ArrayIterator<String>(JPA.ENTITY);
-			}
-			@Override
-			public void appendTypeAnnotationTo(StringBuilder sb) {
-				sb.append("@Entity(name = \"FirstEntity\")").append(CR);
-				sb.append("@Entity(name = \"SecondEntity\")");
-			}
-		});
-	}
-
-	private ICompilationUnit createTestEntityWithEmbeddable() throws Exception {
-		return this.createTestType(new DefaultAnnotationWriter() {
-			@Override
-			public Iterator<String> imports() {
-				return new ArrayIterator<String>(JPA.ENTITY, JPA.EMBEDDABLE);
-			}
-			@Override
-			public void appendTypeAnnotationTo(StringBuilder sb) {
-				sb.append("@Entity");
-				sb.append(CR);
-				sb.append("@Embeddable");
-			}
-		});
-	}
-	
-	private ICompilationUnit createTestEntityAnnotatedField() throws Exception {
-		return this.createTestType(new DefaultAnnotationWriter() {
-			@Override
-			public Iterator<String> imports() {
-				return new ArrayIterator<String>(JPA.ENTITY, JPA.ID);
-			}
-			@Override
-			public void appendTypeAnnotationTo(StringBuilder sb) {
-				sb.append("@Entity");
-			}
-			
-			@Override
-			public void appendIdFieldAnnotationTo(StringBuilder sb) {
-				sb.append("@Id");
-			}
-		});
-	}
-
-	private ICompilationUnit createTestEntityAnnotatedMethod() throws Exception {
-		return this.createTestType(new DefaultAnnotationWriter() {
-			@Override
-			public Iterator<String> imports() {
-				return new ArrayIterator<String>(JPA.ENTITY, JPA.ID);
-			}
-			@Override
-			public void appendTypeAnnotationTo(StringBuilder sb) {
-				sb.append("@Entity");
-			}
-			
-			@Override
-			public void appendGetIdMethodAnnotationTo(StringBuilder sb) {
-				sb.append("@Id");
-			}
-		});
-	}
-
-	private ICompilationUnit createTestEntityAnnotatedFieldAndMethod() throws Exception {
-		return this.createTestType(new DefaultAnnotationWriter() {
-			@Override
-			public Iterator<String> imports() {
-				return new ArrayIterator<String>(JPA.ENTITY, JPA.ID);
-			}
-			@Override
-			public void appendTypeAnnotationTo(StringBuilder sb) {
-				sb.append("@Entity");
-			}
-			
-			@Override
-			public void appendGetIdMethodAnnotationTo(StringBuilder sb) {
-				sb.append("@Id");
-			}
-			
-			@Override
-			public void appendIdFieldAnnotationTo(StringBuilder sb) {
-				sb.append("@Id");
-			}
-		});
-	}
-	
-	private ICompilationUnit createTestEntityAnnotatedNonPersistableMethod() throws Exception {
-		return this.createTestType(new DefaultAnnotationWriter() {
-			@Override
-			public Iterator<String> imports() {
-				return new ArrayIterator<String>(JPA.ENTITY, JPA.ID);
-			}
-			@Override
-			public void appendTypeAnnotationTo(StringBuilder sb) {
-				sb.append("@Entity");
-			}
-			@Override
-			public void appendGetNameMethodAnnotationTo(StringBuilder sb) {
-				sb.append("@Id");
-			}
-		});
-	}
-	
-	private ICompilationUnit createTestEntityAnnotatedPersistableMethodNonPersistableField() throws Exception {
-		return this.createTestType(new DefaultAnnotationWriter() {
-			@Override
-			public Iterator<String> imports() {
-				return new ArrayIterator<String>(JPA.ENTITY, JPA.COLUMN);
-			}
-			@Override
-			public void appendTypeAnnotationTo(StringBuilder sb) {
-				sb.append("@Entity");
-			}
-			
-			@Override
-			public void appendIdFieldAnnotationTo(StringBuilder sb) {
-				sb.append("@Column");
-				sb.append("    private transient int notPersistable;").append(CR);
-				sb.append(CR);
-
-			}
-			@Override
-			public void appendGetIdMethodAnnotationTo(StringBuilder sb) {
-				sb.append("@Column");
-			}
-		});
-	}
-	private ICompilationUnit createTestEntityNoPersistableFields() throws Exception {
-		return this.createTestType(new DefaultAnnotationWriter() {
-			@Override
-			public Iterator<String> imports() {
-				return new ArrayIterator<String>(JPA.ENTITY);
-			}
-			@Override
-			public void appendTypeAnnotationTo(StringBuilder sb) {
-				sb.append("@Entity");
-			}
-			@Override
-			public void appendMemberTypeTo(StringBuilder sb) {
-				sb.delete(sb.indexOf("private int id;"), sb.indexOf("private int id;") + "private int id;".length());
-				sb.delete(sb.indexOf("private String name;"), sb.indexOf("private String name;") + "private String name;".length());
-			}
-		});
-	}
-
-//	private ICompilationUnit createTestEntityLarge(final int i) throws Exception {
-//		return this.createTestType(new DefaultAnnotationWriter() {
-//			@Override
-//			public Iterator<String> imports() {
-//				return new ArrayIterator<String>(JPA.ENTITY + i);
-//			}
-//			@Override
-//			public void appendTypeAnnotationTo(StringBuilder sb) {
-//				sb.append("@Entity" + i);
-//				sb.append(CR);
-//			}
-//			@Override
-//			public String typeName() {
-//				return TYPE_NAME + i;
-//			}
-//		});
-//	}
-//
-//	public void testLarge() throws Exception {
-//		for (int i = START; i <= END; i++) {
-//			this.createAnnotationAndMembers("Entity" +i, "String name();");
-//		}
-//
-//		List<ICompilationUnit> cus = new ArrayList<ICompilationUnit>();
-//		for (int i = START; i <= END; i++) {
-//			cus.add(createTestEntityLarge(i));
-//		}
-//		long start = System.currentTimeMillis();
-//		List<JavaPersistentTypeResource> typeResources = new ArrayList<JavaPersistentTypeResource>();
-//		for (int i = 0; i < END; i++) {
-//			typeResources.add(buildJavaTypeResource(cus.get(i))); 
-//		}
-//		long end = System.currentTimeMillis();
-//		
-//		System.out.println(end-start + "ms");
-//		for (int i = 0; i < END; i++) {
-//			assertEquals(1, CollectionTools.size(typeResources.get(i).javaTypeMappingAnnotations()));
-//			assertNotNull(typeResources.get(i).javaTypeMappingAnnotation(JPA.ENTITY + (i+1)));
-//		}
-//		
-//
-////		assertEquals(0, CollectionTools.size(typeResource.javaTypeAnnotations()));
-//	}
-
-	
-	
-	private ICompilationUnit createTestEntityWithTable() throws Exception {
-		return this.createTestType(new DefaultAnnotationWriter() {
-			@Override
-			public Iterator<String> imports() {
-				return new ArrayIterator<String>(JPA.ENTITY, JPA.TABLE);
-			}
-			@Override
-			public void appendTypeAnnotationTo(StringBuilder sb) {
-				sb.append("@Entity");
-				sb.append(CR);
-				sb.append("@Table(name = \"FOO\", schema = \"BAR\")");
-			}
-		});
-	}
-	
-//	private ICompilationUnit createTestEntityWithTableAndIdClass() throws Exception {
-//		createEntityAnnotation();
-//		this.createAnnotationAndMembers("Table", "String name(); String schema();");
-//		this.createAnnotationAndMembers("IdClass", "Class value();");
-//		return this.createTestType(new DefaultAnnotationWriter() {
-//			@Override
-//			public Iterator<String> imports() {
-//				return new ArrayIterator<String>(JPA.ENTITY, JPA.TABLE, JPA.ID_CLASS);
-//			}
-//			@Override
-//			public void appendTypeAnnotationTo(StringBuilder sb) {
-//				sb.append("@Entity");
-//				sb.append(CR);
-//				sb.append("@Table");
-//				sb.append(CR);
-//				sb.append("@IdClass");
-//			}
-//		});
-//	}
-//
-	
-	private ICompilationUnit createTestEntityMultipleTables() throws Exception {
-		return this.createTestType(new DefaultAnnotationWriter() {
-			@Override
-			public Iterator<String> imports() {
-				return new ArrayIterator<String>(JPA.ENTITY, JPA.TABLE);
-			}
-			@Override
-			public void appendTypeAnnotationTo(StringBuilder sb) {
-				sb.append("@Entity");
-				sb.append(CR);
-				sb.append("@Table(name = \"FOO\")");
-				sb.append(CR);
-				sb.append("@Table(name = \"BAR\")");
-			}
-		});
-	}
-
-	private ICompilationUnit createTestEntityWithSecondaryTable() throws Exception {
-		return this.createTestType(new DefaultAnnotationWriter() {
-			@Override
-			public Iterator<String> imports() {
-				return new ArrayIterator<String>(JPA.ENTITY, JPA.SECONDARY_TABLE);
-			}
-			@Override
-			public void appendTypeAnnotationTo(StringBuilder sb) {
-				sb.append("@Entity");
-				sb.append(CR);
-				sb.append("@SecondaryTable(name = \"FOO\")");
-			}
-		});
-	}
-	private ICompilationUnit createTestEntityWithEmptySecondaryTables() throws Exception {
-		return this.createTestType(new DefaultAnnotationWriter() {
-			@Override
-			public Iterator<String> imports() {
-				return new ArrayIterator<String>(JPA.ENTITY, JPA.SECONDARY_TABLE, JPA.SECONDARY_TABLES);
-			}
-			@Override
-			public void appendTypeAnnotationTo(StringBuilder sb) {
-				sb.append("@Entity");
-				sb.append(CR);
-				sb.append("@SecondaryTables()");
-			}
-		});
-	}
-
-	private ICompilationUnit createTestEntityWithSecondaryTables() throws Exception {
-		return this.createTestType(new DefaultAnnotationWriter() {
-			@Override
-			public Iterator<String> imports() {
-				return new ArrayIterator<String>(JPA.ENTITY, JPA.SECONDARY_TABLE, JPA.SECONDARY_TABLES);
-			}
-			@Override
-			public void appendTypeAnnotationTo(StringBuilder sb) {
-				sb.append("@Entity");
-				sb.append(CR);
-				sb.append("@SecondaryTables(@SecondaryTable(name = \"FOO\"))");
-			}
-		});
-	}
-	
-	private ICompilationUnit createTestEntityWith2SecondaryTables() throws Exception {
-		return this.createTestType(new DefaultAnnotationWriter() {
-			@Override
-			public Iterator<String> imports() {
-				return new ArrayIterator<String>(JPA.ENTITY, JPA.SECONDARY_TABLE, JPA.SECONDARY_TABLES);
-			}
-			@Override
-			public void appendTypeAnnotationTo(StringBuilder sb) {
-				sb.append("@Entity");
-				sb.append(CR);
-				sb.append("@SecondaryTables({@SecondaryTable(name = \"FOO\"), @SecondaryTable(name = \"BAR\")})");
-			}
-		});
-	}
-	
-	private ICompilationUnit createTestEntityWithSecondaryTableAndSecondaryTables() throws Exception {
-		return this.createTestType(new DefaultAnnotationWriter() {
-			@Override
-			public Iterator<String> imports() {
-				return new ArrayIterator<String>(JPA.ENTITY, JPA.SECONDARY_TABLE, JPA.SECONDARY_TABLES);
-			}
-			@Override
-			public void appendTypeAnnotationTo(StringBuilder sb) {
-				sb.append("@Entity");
-				sb.append(CR);
-				sb.append("@SecondaryTable(name = \"FOO\")");
-				sb.append(CR);
-				sb.append("@SecondaryTables({@SecondaryTable(name = \"BAR\"), @SecondaryTable(name = \"BAZ\")})");
-			}
-		});
-	}
-
-	private ICompilationUnit createTestEntityWithMemberTypes() throws Exception {
-		return this.createTestType(new DefaultAnnotationWriter() {
-			@Override
-			public Iterator<String> imports() {
-				return new ArrayIterator<String>(JPA.ENTITY);
-			}
-			@Override
-			public void appendTypeAnnotationTo(StringBuilder sb) {
-				sb.append("@Entity");
-			}
-			@Override
-			public void appendMemberTypeTo(StringBuilder sb) {
-				sb.append("     static class FooStatic {}").append(CR);
-				sb.append(CR);
-				sb.append("     class FooNotStatic {}").append(CR);
-				sb.append(CR);
-				sb.append("     @interface MyAnnotation {}").append(CR);
-				sb.append(CR);
-				sb.append("     enum MyEnum {}").append(CR);
-			}
-		});
-	}
-	
-	public void testJavaTypeAnnotations() throws Exception {
-		ICompilationUnit cu = this.createTestEntityWithTable();
-		JavaResourcePersistentType typeResource = buildJavaTypeResource(cu); 
-		assertEquals(1, typeResource.supportingAnnotationsSize());
-	}
-
-	public void testJavaTypeAnnotation() throws Exception {
-		ICompilationUnit cu = this.createTestEntityWithTable();
-		JavaResourcePersistentType typeResource = buildJavaTypeResource(cu); 
-		assertNotNull(typeResource.getSupportingAnnotation(JPA.TABLE));
-	}
-
-	public void testJavaTypeAnnotationNull() throws Exception {
-		ICompilationUnit cu = this.createTestEntity();
-		JavaResourcePersistentType typeResource = buildJavaTypeResource(cu); 
-		assertNull(typeResource.getSupportingAnnotation(JPA.TABLE));
-	}
-
-	//This will result in a compilation error, but we assume the first table found
-	public void testDuplicateAnnotations() throws Exception {
-		ICompilationUnit cu = this.createTestEntityMultipleTables();
-		JavaResourcePersistentType typeResource = buildJavaTypeResource(cu); 
-		TableAnnotation tableResource = (TableAnnotation) typeResource.getSupportingAnnotation(JPA.TABLE);
-		assertEquals("FOO", tableResource.getName());
-	}
-
-	public void testRemoveTable() throws Exception {
-		ICompilationUnit cu = this.createTestEntityWithTable();
-		JavaResourcePersistentType typeResource = buildJavaTypeResource(cu); 
-		typeResource.removeSupportingAnnotation(JPA.TABLE);
-		
-		assertSourceDoesNotContain("@Table", cu);
-	}
-	
-	public void testRemoveTableName() throws Exception {
-		ICompilationUnit cu = this.createTestEntityWithTable();
-		JavaResourcePersistentType jrpt = buildJavaTypeResource(cu); 
-
-		TableAnnotation tableAnnotation = (TableAnnotation) jrpt.getSupportingAnnotation(JPA.TABLE);
-		tableAnnotation.setSchema(null);
-		assertSourceContains("@Table(name = \"FOO\")", cu);
-
-		tableAnnotation.setName(null);
-		assertSourceDoesNotContain("@Table", cu);
-		
-		assertNull(jrpt.getSupportingAnnotation(JPA.TABLE));
-	}
-	
-	public void testMultipleTypeMappings() throws Exception {
-		ICompilationUnit cu = this.createTestEntityWithEmbeddable();
-
-		JavaResourcePersistentType typeResource = buildJavaTypeResource(cu); 
-		
-		assertEquals(2, typeResource.mappingAnnotationsSize());
-		assertEquals(0, typeResource.supportingAnnotationsSize());
-		assertNotNull(typeResource.getMappingAnnotation(JPA.EMBEDDABLE));
-		assertNotNull(typeResource.getMappingAnnotation(JPA.ENTITY));
-		
-		JavaResourceNode javaTypeMappingAnnotation = typeResource.getMappingAnnotation();
-		assertTrue(javaTypeMappingAnnotation instanceof EmbeddableAnnotation);
-		assertSourceContains("@Entity", cu);
-		assertSourceContains("@Embeddable", cu);
-		
-		typeResource.setMappingAnnotation(JPA.MAPPED_SUPERCLASS);
-		assertEquals(1, typeResource.mappingAnnotationsSize());
-		javaTypeMappingAnnotation = typeResource.getMappingAnnotation();
-		assertTrue(javaTypeMappingAnnotation instanceof MappedSuperclassAnnotation);
-		assertSourceDoesNotContain("@Entity", cu);
-		assertSourceContains("@MappedSuperclass", cu);
-		assertSourceDoesNotContain("@Embeddable", cu);
-	}
-	
-	public void testSetJavaTypeMappingAnnotation() throws Exception {
-		ICompilationUnit cu = createTestType();
-		JavaResourcePersistentType typeResource = buildJavaTypeResource(cu); 
-		assertEquals(0, typeResource.mappingAnnotationsSize());
-		
-		typeResource.setMappingAnnotation(JPA.ENTITY);
-		assertTrue(typeResource.getMappingAnnotation() instanceof EntityAnnotation);
-		assertSourceContains("@Entity", cu);
-	}
-
-	public void testSetJavaTypeMappingAnnotation2() throws Exception {
-		ICompilationUnit cu = createTestEntityWithTable();
-		JavaResourcePersistentType typeResource = buildJavaTypeResource(cu); 
-		assertTrue(typeResource.getMappingAnnotation() instanceof EntityAnnotation);
-		
-		typeResource.setMappingAnnotation(JPA.EMBEDDABLE);
-		assertTrue(typeResource.getMappingAnnotation() instanceof EmbeddableAnnotation);
-		
-		assertSourceDoesNotContain("@Entity", cu);
-		assertSourceContains("@Table", cu);
-	}
-
-	public void testAddJavaTypeAnnotation() throws Exception {
-		ICompilationUnit cu = createTestEntity();
-		JavaResourcePersistentType typeResource = buildJavaTypeResource(cu); 
-		
-		assertSourceDoesNotContain("@Table", cu);
-		typeResource.addSupportingAnnotation(JPA.TABLE);
-	
-		assertSourceContains("@Table", cu);
-	}
-	
-	public void testRemoveJavaTypeAnnotation() throws Exception {
-		ICompilationUnit cu = createTestEntityWithTable();
-		JavaResourcePersistentType typeResource = buildJavaTypeResource(cu); 
-		assertSourceContains("@Table", cu);
-		typeResource.removeSupportingAnnotation(JPA.TABLE);
-		assertSourceDoesNotContain("@Table", cu);
-	}
-	
-	//update source code to change from @Entity to @Embeddable and make sure @Table is not removed
-	public void testChangeTypeMappingInSource() throws Exception {
-		ICompilationUnit cu = createTestEntityWithTable();
-		final JavaResourcePersistentType typeResource = buildJavaTypeResource(cu);
-		
-		testType(cu).edit(new Editor() {
-			public void edit(ModifiedDeclaration declaration) {
-				SourceEntityAnnotation.DECLARATION_ANNOTATION_ADAPTER.removeAnnotation(declaration);
-			}
-		});	
-
-		cu.createImport("javax.persistence.Embeddable", null, new NullProgressMonitor());
-				
-		this.testType(cu).edit(new Editor() {
-			public void edit(ModifiedDeclaration declaration) {
-				SourceEmbeddableAnnotation.DECLARATION_ANNOTATION_ADAPTER.newMarkerAnnotation(declaration);
-			}
-		});		
-		
-		assertNotNull(typeResource.getSupportingAnnotation(JPA.TABLE));
-		assertNull(typeResource.getMappingAnnotation(JPA.ENTITY));
-		assertNotNull(typeResource.getMappingAnnotation(JPA.EMBEDDABLE));
-		assertSourceContains("@Table", cu);
-	}
-	
-	public void testJavaTypeAnnotationsNestable() throws Exception {
-		ICompilationUnit cu = createTestEntityWithSecondaryTable();
-		JavaResourcePersistentType typeResource = buildJavaTypeResource(cu);
-		
-		assertEquals(1, CollectionTools.size(typeResource.supportingAnnotations(JPA.SECONDARY_TABLE, JPA.SECONDARY_TABLES)));
-		
-		SecondaryTableAnnotation secondaryTableResource = (SecondaryTableAnnotation) typeResource.supportingAnnotations(JPA.SECONDARY_TABLE, JPA.SECONDARY_TABLES).next();
-		
-		assertEquals("FOO", secondaryTableResource.getName());
-	}
-	
-	public void testJavaTypeAnnotationsNoNestable() throws Exception {
-		ICompilationUnit cu = createTestEntity();
-		JavaResourcePersistentType typeResource = buildJavaTypeResource(cu);
-		
-		assertEquals(0, CollectionTools.size(typeResource.supportingAnnotations(JPA.SECONDARY_TABLE, JPA.SECONDARY_TABLES)));
-	}
-	
-	public void testJavaTypeAnnotationsContainerNoNestable() throws Exception {
-		ICompilationUnit cu = createTestEntityWithEmptySecondaryTables();
-		JavaResourcePersistentType typeResource = buildJavaTypeResource(cu);
-		
-		assertEquals(0, CollectionTools.size(typeResource.supportingAnnotations(JPA.SECONDARY_TABLE, JPA.SECONDARY_TABLES)));
-	}
-
-	public void testJavaTypeAnnotationsNestableAndContainer() throws Exception {
-		ICompilationUnit cu = createTestEntityWithSecondaryTableAndSecondaryTables();
-		JavaResourcePersistentType typeResource = buildJavaTypeResource(cu);
-		
-		assertNotNull(typeResource.getSupportingAnnotation(JPA.SECONDARY_TABLE));
-		assertNotNull(typeResource.getSupportingAnnotation(JPA.SECONDARY_TABLES));
-		assertEquals(2, CollectionTools.size(typeResource.supportingAnnotations(JPA.SECONDARY_TABLE, JPA.SECONDARY_TABLES)));
-
-		SecondaryTableAnnotation secondaryTableResource = (SecondaryTableAnnotation) typeResource.supportingAnnotations(JPA.SECONDARY_TABLE, JPA.SECONDARY_TABLES).next();	
-		assertEquals("BAR", secondaryTableResource.getName());
-	}
-	
-	//  @Entity     -->>    @Entity
-	//						@SecondaryTable(name="FOO")
-	public void testAddJavaTypeAnnotationNestableContainer() throws Exception {
-		ICompilationUnit cu = createTestEntity();
-		JavaResourcePersistentType typeResource = buildJavaTypeResource(cu);
-		SecondaryTableAnnotation secondaryTableResource = (SecondaryTableAnnotation) typeResource.addSupportingAnnotation(0, JPA.SECONDARY_TABLE, JPA.SECONDARY_TABLES);
-		secondaryTableResource.setName("FOO");
-		assertSourceContains("@SecondaryTable(name = \"FOO\")", cu);
-	}
-	
-	//  @Entity     				-->>    @Entity
-	//	@SecondaryTable(name="FOO")			@SecondaryTables({@SecondaryTable(name="FOO"), @SecondaryTable(name="BAR")})	
-	public void testAddJavaTypeAnnotationNestableContainer2() throws Exception {
-		ICompilationUnit cu = createTestEntityWithSecondaryTable();
-		JavaResourcePersistentType typeResource = buildJavaTypeResource(cu);
-		
-		SecondaryTableAnnotation secondaryTableResource = (SecondaryTableAnnotation) typeResource.addSupportingAnnotation(1, JPA.SECONDARY_TABLE, JPA.SECONDARY_TABLES);
-		secondaryTableResource.setName("BAR");
-		assertSourceContains("@SecondaryTables({@SecondaryTable(name = \"FOO\"),@SecondaryTable(name = \"BAR\")})", cu);
-		
-		assertNull(typeResource.getSupportingAnnotation(JPA.SECONDARY_TABLE));
-		assertNotNull(typeResource.getSupportingAnnotation(JPA.SECONDARY_TABLES));
-		assertEquals(2, CollectionTools.size(typeResource.supportingAnnotations(JPA.SECONDARY_TABLE, JPA.SECONDARY_TABLES)));
-	}
-	
-	//  @Entity     				
-	//	@SecondaryTables(@SecondaryTable(name="FOO"))
-	//           ||
-	//           \/
-	//  @Entity     				
-	//	@SecondaryTables({@SecondaryTable(name="FOO"), @SecondaryTable(name="BAR")})
-	public void testAddJavaTypeAnnotationNestableContainer3() throws Exception {
-		ICompilationUnit cu = createTestEntityWithSecondaryTables();
-		JavaResourcePersistentType typeResource = buildJavaTypeResource(cu);
-		
-		SecondaryTableAnnotation secondaryTableResource = (SecondaryTableAnnotation) typeResource.addSupportingAnnotation(1, JPA.SECONDARY_TABLE, JPA.SECONDARY_TABLES);
-		secondaryTableResource.setName("BAR");
-		assertSourceContains("@SecondaryTables({@SecondaryTable(name = \"FOO\"),@SecondaryTable(name = \"BAR\")})", cu);
-		
-		assertNull(typeResource.getSupportingAnnotation(JPA.SECONDARY_TABLE));
-		assertNotNull(typeResource.getSupportingAnnotation(JPA.SECONDARY_TABLES));
-		assertEquals(2, CollectionTools.size(typeResource.supportingAnnotations(JPA.SECONDARY_TABLE, JPA.SECONDARY_TABLES)));
-	}
-	
-	public void testAddJavaTypeAnnotationNestableContainer5() throws Exception {
-		ICompilationUnit cu = createTestEntityWithSecondaryTables();
-		JavaResourcePersistentType typeResource = buildJavaTypeResource(cu);
-		
-		SecondaryTableAnnotation secondaryTableResource = (SecondaryTableAnnotation) typeResource.addSupportingAnnotation(0, JPA.SECONDARY_TABLE, JPA.SECONDARY_TABLES);
-		secondaryTableResource.setName("BAR");
-		assertSourceContains("@SecondaryTables({@SecondaryTable(name = \"BAR\"),@SecondaryTable(name = \"FOO\")})", cu);
-		
-		assertNull(typeResource.getSupportingAnnotation(JPA.SECONDARY_TABLE));
-		assertNotNull(typeResource.getSupportingAnnotation(JPA.SECONDARY_TABLES));
-		assertEquals(2, CollectionTools.size(typeResource.supportingAnnotations(JPA.SECONDARY_TABLE, JPA.SECONDARY_TABLES)));
-	}
-
-	public void testAddJavaTypeAnnotationNestableContainer6() throws Exception {
-		ICompilationUnit cu = createTestEntityWithSecondaryTables();
-		JavaResourcePersistentType typeResource = buildJavaTypeResource(cu);
-		
-		SecondaryTableAnnotation secondaryTableResource = (SecondaryTableAnnotation) typeResource.addSupportingAnnotation(0, JPA.SECONDARY_TABLE, JPA.SECONDARY_TABLES);
-		secondaryTableResource.setName("BAR");
-		assertSourceContains("@SecondaryTables({@SecondaryTable(name = \"BAR\"),@SecondaryTable(name = \"FOO\")})", cu);
-		
-		assertNull(typeResource.getSupportingAnnotation(JPA.SECONDARY_TABLE));
-		assertNotNull(typeResource.getSupportingAnnotation(JPA.SECONDARY_TABLES));
-		assertEquals(2, CollectionTools.size(typeResource.supportingAnnotations(JPA.SECONDARY_TABLE, JPA.SECONDARY_TABLES)));
-
-		secondaryTableResource = (SecondaryTableAnnotation) typeResource.addSupportingAnnotation(0, JPA.SECONDARY_TABLE, JPA.SECONDARY_TABLES);
-		secondaryTableResource.setName("BAZ");
-		assertSourceContains("@SecondaryTables({@SecondaryTable(name = \"BAZ\"),@SecondaryTable(name = \"BAR\"), @SecondaryTable(name = \"FOO\")})", cu);
-
-		assertEquals(3, CollectionTools.size(typeResource.supportingAnnotations(JPA.SECONDARY_TABLE, JPA.SECONDARY_TABLES)));
-	}
-
-	//  @Entity     				
-	//	@SecondaryTable(name=\"FOO\")
-	//  @SecondaryTables({@SecondaryTable(name=\"BAR\"), @SecondaryTable(name=\"BAZ\")})
-	//			 ||
-	//           \/
-	//  @Entity     				
-	//	@SecondaryTable(name=\"FOO\")
-	//  @SecondaryTables({@SecondaryTable(name=\"BAR\"), @SecondaryTable(name=\"BAZ\"), @SecondaryTable(name=\"BOO\")})
-	public void testAddJavaTypeAnnotationNestableContainer4() throws Exception {
-		ICompilationUnit cu = createTestEntityWithSecondaryTableAndSecondaryTables();
-		JavaResourcePersistentType typeResource = buildJavaTypeResource(cu);
-		
-		assertNotNull(typeResource.getSupportingAnnotation(JPA.SECONDARY_TABLE));
-		assertNotNull(typeResource.getSupportingAnnotation(JPA.SECONDARY_TABLES));
-		assertEquals(2, CollectionTools.size(typeResource.supportingAnnotations(JPA.SECONDARY_TABLE, JPA.SECONDARY_TABLES)));
-
-		SecondaryTableAnnotation secondaryTableResource = (SecondaryTableAnnotation) typeResource.addSupportingAnnotation(2, JPA.SECONDARY_TABLE, JPA.SECONDARY_TABLES);
-		assertSourceContains("@SecondaryTables({@SecondaryTable(name = \"BAR\"), @SecondaryTable(name = \"BAZ\"), @SecondaryTable})", cu);
-		secondaryTableResource.setName("BOO");
-		
-		assertNotNull(typeResource.getSupportingAnnotation(JPA.SECONDARY_TABLE));
-		assertNotNull(typeResource.getSupportingAnnotation(JPA.SECONDARY_TABLES));
-		assertEquals(3, CollectionTools.size(typeResource.supportingAnnotations(JPA.SECONDARY_TABLE, JPA.SECONDARY_TABLES)));
-
-		Iterator<NestableAnnotation> secondaryTableAnnotations = typeResource.supportingAnnotations(JPA.SECONDARY_TABLE, JPA.SECONDARY_TABLES);
-		secondaryTableResource = (SecondaryTableAnnotation) secondaryTableAnnotations.next();	
-		assertEquals("BAR", secondaryTableResource.getName());
-		secondaryTableResource = (SecondaryTableAnnotation) secondaryTableAnnotations.next();	
-		assertEquals("BAZ", secondaryTableResource.getName());
-		secondaryTableResource = (SecondaryTableAnnotation) secondaryTableAnnotations.next();	
-		assertEquals("BOO", secondaryTableResource.getName());
-		
-		assertSourceContains("@SecondaryTables({@SecondaryTable(name = \"BAR\"), @SecondaryTable(name = \"BAZ\"), @SecondaryTable(name = \"BOO\")})", cu);
-	}
-
-	//@Entity
-	//@SecondaryTable(name="FOO")
-	public void testRemoveJavaTypeAnnotationNestableContainer() throws Exception {
-		ICompilationUnit cu = createTestEntityWithSecondaryTable();
-		JavaResourcePersistentType typeResource = buildJavaTypeResource(cu);
-	
-		typeResource.removeSupportingAnnotation(0, JPA.SECONDARY_TABLE, JPA.SECONDARY_TABLES);
-		
-		assertSourceDoesNotContain("@SecondaryTable", cu);
-	}
-	
-
-	//@Entity
-	//@SecondaryTables(@SecondaryTable(name="FOO"))
-	public void testRemoveJavaTypeAnnotationNestableContainer2() throws Exception {
-		ICompilationUnit cu = createTestEntityWithSecondaryTables();
-		JavaResourcePersistentType typeResource = buildJavaTypeResource(cu);
-	
-		typeResource.removeSupportingAnnotation(0, JPA.SECONDARY_TABLE, JPA.SECONDARY_TABLES);
-		
-		assertSourceDoesNotContain("@SecondaryTable", cu);
-		assertSourceDoesNotContain("@SecondaryTables", cu);
-	}
-	
-	public void testRemoveJavaTypeAnnotationIndex() throws Exception {
-		ICompilationUnit cu = createTestEntityWith2SecondaryTables();
-		JavaResourcePersistentType typeResource = buildJavaTypeResource(cu);
-	
-		typeResource.removeSupportingAnnotation(0, JPA.SECONDARY_TABLE, JPA.SECONDARY_TABLES);
-		
-		assertSourceDoesNotContain("@SecondaryTable(name = \"FOO\"", cu);
-		assertSourceContains("@SecondaryTable(name = \"BAR\"", cu);
-		assertSourceDoesNotContain("@SecondaryTables", cu);
-	}
-	
-	public void testRemoveJavaTypeAnnotationIndex2() throws Exception {
-		ICompilationUnit cu = createTestEntityWith2SecondaryTables();
-		JavaResourcePersistentType typeResource = buildJavaTypeResource(cu);
-	
-		SecondaryTableAnnotation newAnnotation = (SecondaryTableAnnotation)typeResource.addSupportingAnnotation(2, JPA.SECONDARY_TABLE, JPA.SECONDARY_TABLES);
-		newAnnotation.setName("BAZ");
-		assertSourceContains("@SecondaryTables({@SecondaryTable(name = \"FOO\"), @SecondaryTable(name = \"BAR\"), @SecondaryTable(name = \"BAZ", cu);
-		
-		typeResource.removeSupportingAnnotation(1, JPA.SECONDARY_TABLE, JPA.SECONDARY_TABLES);
-		assertSourceContains("@SecondaryTables({@SecondaryTable(name = \"FOO\"), @SecondaryTable(name = \"BAZ\")})", cu);
-	}
-	
-	public void testMoveJavaTypeAnnotation() throws Exception {
-		ICompilationUnit cu = createTestEntityWith2SecondaryTables();
-		JavaResourcePersistentType typeResource = buildJavaTypeResource(cu);
-	
-		SecondaryTableAnnotation newAnnotation = (SecondaryTableAnnotation)typeResource.addSupportingAnnotation(2, JPA.SECONDARY_TABLE, JPA.SECONDARY_TABLES);
-		newAnnotation.setName("BAZ");
-		assertSourceContains("@SecondaryTables({@SecondaryTable(name = \"FOO\"), @SecondaryTable(name = \"BAR\"), @SecondaryTable(name = \"BAZ\")})", cu);
-		
-		typeResource.moveSupportingAnnotation(0, 2, JPA.SECONDARY_TABLES);
-		assertSourceContains("@SecondaryTables({@SecondaryTable(name = \"BAZ\"), @SecondaryTable(name = \"FOO\"), @SecondaryTable(name = \"BAR\")})", cu);
-	}
-	
-	public void testMoveJavaTypeAnnotation2() throws Exception {
-		ICompilationUnit cu = createTestEntityWith2SecondaryTables();
-		JavaResourcePersistentType typeResource = buildJavaTypeResource(cu);
-	
-		SecondaryTableAnnotation newAnnotation = (SecondaryTableAnnotation)typeResource.addSupportingAnnotation(2, JPA.SECONDARY_TABLE, JPA.SECONDARY_TABLES);
-		newAnnotation.setName("BAZ");
-		assertSourceContains("@SecondaryTables({@SecondaryTable(name = \"FOO\"), @SecondaryTable(name = \"BAR\"), @SecondaryTable(name = \"BAZ\")})", cu);
-		
-		typeResource.moveSupportingAnnotation(2, 0, JPA.SECONDARY_TABLES);
-		assertSourceContains("@SecondaryTables({@SecondaryTable(name = \"BAR\"), @SecondaryTable(name = \"BAZ\"), @SecondaryTable(name = \"FOO\")})", cu);
-	}
-	
-	public void testNestedTypes() throws Exception {
-		ICompilationUnit cu = createTestEntityWithMemberTypes();
-		JavaResourcePersistentType persistentType = buildJavaTypeResource(cu);
-		
-		assertEquals("only persistable types should be returned by #persistableTypes()", 1, CollectionTools.size(persistentType.persistableTypes()));
-		assertEquals("enums and interfaces should be ignored", 2, CollectionTools.size(persistentType.types()));
-	}
-	
-	public void testDuplicateEntityAnnotations() throws Exception {
-		ICompilationUnit cu = createTestEntityDuplicates();
-		JavaResourcePersistentType persistentType = buildJavaTypeResource(cu);
-		
-		EntityAnnotation javaTypeMappingAnnotation = (EntityAnnotation) persistentType.getMappingAnnotation(JPA.ENTITY);
-		assertEquals("FirstEntity", javaTypeMappingAnnotation.getName());
-		
-		assertEquals(1, persistentType.mappingAnnotationsSize());
-		
-		javaTypeMappingAnnotation = (EntityAnnotation) persistentType.getMappingAnnotation();
-		assertEquals("FirstEntity", javaTypeMappingAnnotation.getName());
-		
-	}
-	
-	
-	public void testAttributes() throws Exception {
-		// TODO	
-	}
-	
-	public void testFields() throws Exception {
-		// TODO
-	}
-	
-	public void testProperties() throws Exception {
-		// TODO	
-	}
-	
-	public void testGetAccessNoAttributesAnnotated() throws Exception {
-		ICompilationUnit cu = createTestEntity();
-		JavaResourcePersistentType persistentType = buildJavaTypeResource(cu);
-		
-		assertNull(persistentType.getAccess());
-	}
-	
-	public void testGetAccessFieldsAnnotated() throws Exception {
-		ICompilationUnit cu = createTestEntityAnnotatedField();
-		JavaResourcePersistentType persistentType = buildJavaTypeResource(cu);
-		
-		assertEquals(AccessType.FIELD, persistentType.getAccess());
-	}
-	
-	public void testGetAccessMethodsAnnotated() throws Exception {
-		ICompilationUnit cu = createTestEntityAnnotatedMethod();
-		JavaResourcePersistentType persistentType = buildJavaTypeResource(cu);
-		
-		assertEquals(AccessType.PROPERTY, persistentType.getAccess());
-	}
-	
-	public void testGetAccessFieldsAndMethodsAnnotated() throws Exception {
-		ICompilationUnit cu = createTestEntityAnnotatedFieldAndMethod();
-		JavaResourcePersistentType persistentType = buildJavaTypeResource(cu);
-		
-		assertEquals(AccessType.FIELD, persistentType.getAccess());
-	}
-	
-	public void testGetAccessNonPersistableMethodAnnotated() throws Exception {
-		ICompilationUnit cu = createTestEntityAnnotatedNonPersistableMethod();
-		JavaResourcePersistentType persistentType = buildJavaTypeResource(cu);
-		
-		assertNull(persistentType.getAccess());
-	}
-	
-	public void testGetAccessPersistableMethodAndNonPersistableFieldAnnotated() throws Exception {
-		ICompilationUnit cu = createTestEntityAnnotatedPersistableMethodNonPersistableField();
-		JavaResourcePersistentType persistentType = buildJavaTypeResource(cu);
-		
-		assertEquals(AccessType.PROPERTY, persistentType.getAccess());
-	}
-	
-	public void testGetAccessNoPersistableFieldsAnnotated() throws Exception {
-		ICompilationUnit cu = createTestEntityNoPersistableFields();
-		JavaResourcePersistentType persistentType = buildJavaTypeResource(cu);
-		
-		assertEquals(AccessType.PROPERTY, persistentType.getAccess());
-	}
-	
-	//TODO more tests here with superclasses other than Object.
-	//1. Test where the superclass does not resolve
-	//2. Test a superclass that does resolve
-	//3. What about a superclass that is a class file in a jar??
-	//4.
-	public void testGetSuperclassQualifiedName() throws Exception {
-		ICompilationUnit cu = createTestEntity();
-		JavaResourcePersistentType persistentType = buildJavaTypeResource(cu);
-		
-		assertEquals("java.lang.Object", persistentType.getSuperclassQualifiedName());
-		
-	}
-	
-	//more detailed tests in JPTToolsTests
-	public void testIsPersistable() throws Exception {
-		ICompilationUnit cu = createTestEntity();
-		JavaResourcePersistentType persistentType = buildJavaTypeResource(cu);
-		
-		assertTrue(persistentType.isPersistable());
-	}
-	
-	public void testAnnotatedMemberType() throws Exception {
-		ICompilationUnit cu = this.createTestEntityWithMemberEmbeddable();
-		JavaResourcePersistentType typeResource = buildJavaTypeResource(cu); 
-		assertNotNull(typeResource.getMappingAnnotation(JPA.ENTITY));
-		assertNull(typeResource.getMappingAnnotation(JPA.EMBEDDABLE));
-		
-		JavaResourcePersistentType nestedType = typeResource.persistableTypes().next();
-		assertNull(nestedType.getMappingAnnotation(JPA.ENTITY));
-		assertNotNull(nestedType.getMappingAnnotation(JPA.EMBEDDABLE));	
-	}
-	
-	public void testInvalidAnnotations() throws Exception {
-		ICompilationUnit cu = this.createTestInvalidAnnotations();
-		JavaResourcePersistentType typeResource = buildJavaTypeResource(cu);
-		assertEquals(0, typeResource.mappingAnnotationsSize());
-		assertEquals(0, typeResource.supportingAnnotationsSize());
-		
-		JavaResourcePersistentAttribute attributeResource = typeResource.fields().next();
-		assertEquals(0, attributeResource.mappingAnnotationsSize());
-		assertEquals(0, attributeResource.supportingAnnotationsSize());
-	}
-
-}
diff --git a/jpa/tests/org.eclipse.jpt.core.tests/src/org/eclipse/jpt/core/tests/internal/resource/java/JoinColumnTests.java b/jpa/tests/org.eclipse.jpt.core.tests/src/org/eclipse/jpt/core/tests/internal/resource/java/JoinColumnTests.java
deleted file mode 100644
index 7b5953c..0000000
--- a/jpa/tests/org.eclipse.jpt.core.tests/src/org/eclipse/jpt/core/tests/internal/resource/java/JoinColumnTests.java
+++ /dev/null
@@ -1,352 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.core.tests.internal.resource.java;
-
-import java.util.Iterator;
-import org.eclipse.jdt.core.ICompilationUnit;
-import org.eclipse.jpt.core.resource.java.JPA;
-import org.eclipse.jpt.core.resource.java.JavaResourcePersistentAttribute;
-import org.eclipse.jpt.core.resource.java.JavaResourcePersistentType;
-import org.eclipse.jpt.core.resource.java.JoinColumnAnnotation;
-import org.eclipse.jpt.utility.internal.iterators.ArrayIterator;
-
-@SuppressWarnings("nls")
-public class JoinColumnTests extends JavaResourceModelTestCase {
-	
-	private static final String COLUMN_NAME = "MY_COLUMN";
-	private static final String COLUMN_TABLE = "MY_TABLE";
-	private static final String COLUMN_COLUMN_DEFINITION = "COLUMN_DEFINITION";
-	private static final String COLUMN_REFERENCED_COLUMN_NAME = "MY_REF_COLUMN_NAME";
-	
-	public JoinColumnTests(String name) {
-		super(name);
-	}
-
-	private ICompilationUnit createTestJoinColumn() throws Exception {
-		return this.createTestType(new DefaultAnnotationWriter() {
-			@Override
-			public Iterator<String> imports() {
-				return new ArrayIterator<String>(JPA.JOIN_COLUMN);
-			}
-			@Override
-			public void appendIdFieldAnnotationTo(StringBuilder sb) {
-				sb.append("@JoinColumn");
-			}
-		});
-	}
-	
-	private ICompilationUnit createTestJoinColumnWithName() throws Exception {
-		return this.createTestType(new DefaultAnnotationWriter() {
-			@Override
-			public Iterator<String> imports() {
-				return new ArrayIterator<String>(JPA.JOIN_COLUMN);
-			}
-			@Override
-			public void appendIdFieldAnnotationTo(StringBuilder sb) {
-				sb.append("@JoinColumn(name = \"" + COLUMN_NAME + "\")");
-			}
-		});
-	}
-	
-	private ICompilationUnit createTestJoinColumnWithTable() throws Exception {
-		return this.createTestType(new DefaultAnnotationWriter() {
-			@Override
-			public Iterator<String> imports() {
-				return new ArrayIterator<String>(JPA.JOIN_COLUMN);
-			}
-			@Override
-			public void appendIdFieldAnnotationTo(StringBuilder sb) {
-				sb.append("@JoinColumn(table = \"" + COLUMN_TABLE + "\")");
-			}
-		});
-	}
-	
-	private ICompilationUnit createTestJoinColumnWithReferencedColumnName() throws Exception {
-		return this.createTestType(new DefaultAnnotationWriter() {
-			@Override
-			public Iterator<String> imports() {
-				return new ArrayIterator<String>(JPA.JOIN_COLUMN);
-			}
-			@Override
-			public void appendIdFieldAnnotationTo(StringBuilder sb) {
-				sb.append("@JoinColumn(referencedColumnName = \"" + COLUMN_REFERENCED_COLUMN_NAME + "\")");
-			}
-		});
-	}
-	
-	private ICompilationUnit createTestJoinColumnWithColumnDefinition() throws Exception {
-		return this.createTestType(new DefaultAnnotationWriter() {
-			@Override
-			public Iterator<String> imports() {
-				return new ArrayIterator<String>(JPA.JOIN_COLUMN);
-			}
-			@Override
-			public void appendIdFieldAnnotationTo(StringBuilder sb) {
-				sb.append("@JoinColumn(columnDefinition = \"" + COLUMN_COLUMN_DEFINITION + "\")");
-			}
-		});
-	}
-	
-	private ICompilationUnit createTestJoinColumnWithBooleanElement(final String booleanElement) throws Exception {
-		return this.createTestType(new DefaultAnnotationWriter() {
-			@Override
-			public Iterator<String> imports() {
-				return new ArrayIterator<String>(JPA.JOIN_COLUMN);
-			}
-			@Override
-			public void appendIdFieldAnnotationTo(StringBuilder sb) {
-				sb.append("@JoinColumn(" + booleanElement + " = true)");
-			}
-		});
-	}
-
-	public void testGetName() throws Exception {
-		ICompilationUnit cu = this.createTestJoinColumnWithName();
-		JavaResourcePersistentType typeResource = buildJavaTypeResource(cu); 
-		JavaResourcePersistentAttribute attributeResource = typeResource.fields().next();
-		JoinColumnAnnotation column = (JoinColumnAnnotation) attributeResource.getSupportingAnnotation(JPA.JOIN_COLUMN);
-		assertNotNull(column);
-		assertEquals(COLUMN_NAME, column.getName());
-	}
-
-	public void testGetNull() throws Exception {
-		ICompilationUnit cu = this.createTestJoinColumn();
-		JavaResourcePersistentType typeResource = buildJavaTypeResource(cu); 
-		JavaResourcePersistentAttribute attributeResource = typeResource.fields().next();
-		JoinColumnAnnotation column = (JoinColumnAnnotation) attributeResource.getSupportingAnnotation(JPA.JOIN_COLUMN);
-		assertNotNull(column);
-		assertNull(column.getName());
-		assertNull(column.getNullable());
-		assertNull(column.getInsertable());
-		assertNull(column.getUnique());
-		assertNull(column.getUpdatable());
-		assertNull(column.getTable());
-		assertNull(column.getReferencedColumnName());
-		assertNull(column.getColumnDefinition());
-	}
-
-	public void testSetName() throws Exception {
-		ICompilationUnit cu = this.createTestJoinColumn();
-		JavaResourcePersistentType typeResource = buildJavaTypeResource(cu); 
-		JavaResourcePersistentAttribute attributeResource = typeResource.fields().next();
-		JoinColumnAnnotation column = (JoinColumnAnnotation) attributeResource.getSupportingAnnotation(JPA.JOIN_COLUMN);
-
-		assertNotNull(column);
-		assertNull(column.getName());
-
-		column.setName("Foo");
-		assertEquals("Foo", column.getName());
-		
-		assertSourceContains("@JoinColumn(name = \"Foo\")", cu);
-	}
-	
-	public void testSetNameNull() throws Exception {
-		ICompilationUnit cu = this.createTestJoinColumnWithName();
-		JavaResourcePersistentType typeResource = buildJavaTypeResource(cu); 
-		JavaResourcePersistentAttribute attributeResource = typeResource.fields().next();
-		JoinColumnAnnotation column = (JoinColumnAnnotation) attributeResource.getSupportingAnnotation(JPA.JOIN_COLUMN);
-
-		assertEquals(COLUMN_NAME, column.getName());
-		
-		column.setName(null);
-		assertNull(column.getName());
-		
-		assertSourceDoesNotContain("@JoinColumn", cu);
-	}
-	
-	public void testGetTable() throws Exception {
-		ICompilationUnit cu = this.createTestJoinColumnWithTable();
-		JavaResourcePersistentType typeResource = buildJavaTypeResource(cu); 
-		JavaResourcePersistentAttribute attributeResource = typeResource.fields().next();
-		JoinColumnAnnotation column = (JoinColumnAnnotation) attributeResource.getSupportingAnnotation(JPA.JOIN_COLUMN);
-		assertEquals(COLUMN_TABLE, column.getTable());
-	}
-
-	public void testSetTable() throws Exception {
-		ICompilationUnit cu = this.createTestJoinColumn();
-		JavaResourcePersistentType typeResource = buildJavaTypeResource(cu); 
-		JavaResourcePersistentAttribute attributeResource = typeResource.fields().next();
-		JoinColumnAnnotation column = (JoinColumnAnnotation) attributeResource.getSupportingAnnotation(JPA.JOIN_COLUMN);
-
-		assertNotNull(column);
-		assertNull(column.getTable());
-
-		column.setTable("Foo");
-		assertEquals("Foo", column.getTable());
-		
-		assertSourceContains("@JoinColumn(table = \"Foo\")", cu);
-
-		
-		column.setTable(null);
-		assertSourceDoesNotContain("@JoinColumn", cu);
-	}
-	
-	public void testGetReferencedColumnName() throws Exception {
-		ICompilationUnit cu = this.createTestJoinColumnWithReferencedColumnName();
-		JavaResourcePersistentType typeResource = buildJavaTypeResource(cu); 
-		JavaResourcePersistentAttribute attributeResource = typeResource.fields().next();
-		JoinColumnAnnotation column = (JoinColumnAnnotation) attributeResource.getSupportingAnnotation(JPA.JOIN_COLUMN);
-		assertEquals(COLUMN_REFERENCED_COLUMN_NAME, column.getReferencedColumnName());
-	}
-
-	public void testSetReferencedColumnName() throws Exception {
-		ICompilationUnit cu = this.createTestJoinColumn();
-		JavaResourcePersistentType typeResource = buildJavaTypeResource(cu); 
-		JavaResourcePersistentAttribute attributeResource = typeResource.fields().next();
-		JoinColumnAnnotation column = (JoinColumnAnnotation) attributeResource.getSupportingAnnotation(JPA.JOIN_COLUMN);
-
-		assertNotNull(column);
-		assertNull(column.getReferencedColumnName());
-
-		column.setReferencedColumnName("Foo");
-		assertEquals("Foo", column.getReferencedColumnName());
-		
-		assertSourceContains("@JoinColumn(referencedColumnName = \"Foo\")", cu);
-
-		
-		column.setReferencedColumnName(null);
-		assertSourceDoesNotContain("@JoinColumn", cu);
-	}
-
-	public void testGetColumnDefinition() throws Exception {
-		ICompilationUnit cu = this.createTestJoinColumnWithColumnDefinition();
-		JavaResourcePersistentType typeResource = buildJavaTypeResource(cu); 
-		JavaResourcePersistentAttribute attributeResource = typeResource.fields().next();
-		JoinColumnAnnotation column = (JoinColumnAnnotation) attributeResource.getSupportingAnnotation(JPA.JOIN_COLUMN);
-		assertEquals(COLUMN_COLUMN_DEFINITION, column.getColumnDefinition());
-	}
-
-	public void testSetColumnDefinition() throws Exception {
-		ICompilationUnit cu = this.createTestJoinColumn();
-		JavaResourcePersistentType typeResource = buildJavaTypeResource(cu); 
-		JavaResourcePersistentAttribute attributeResource = typeResource.fields().next();
-		JoinColumnAnnotation column = (JoinColumnAnnotation) attributeResource.getSupportingAnnotation(JPA.JOIN_COLUMN);
-
-		assertNotNull(column);
-		assertNull(column.getColumnDefinition());
-
-		column.setColumnDefinition("Foo");
-		assertEquals("Foo", column.getColumnDefinition());
-		
-		assertSourceContains("@JoinColumn(columnDefinition = \"Foo\")", cu);
-
-		
-		column.setColumnDefinition(null);
-		assertSourceDoesNotContain("@JoinColumn", cu);
-	}
-
-	public void testGetUnique() throws Exception {
-		ICompilationUnit cu = this.createTestJoinColumnWithBooleanElement("unique");
-		JavaResourcePersistentType typeResource = buildJavaTypeResource(cu); 
-		JavaResourcePersistentAttribute attributeResource = typeResource.fields().next();
-		JoinColumnAnnotation column = (JoinColumnAnnotation) attributeResource.getSupportingAnnotation(JPA.JOIN_COLUMN);
-
-		assertEquals(Boolean.TRUE, column.getUnique());
-	}
-	
-	public void testSetUnique() throws Exception {
-		ICompilationUnit cu = this.createTestJoinColumn();
-		JavaResourcePersistentType typeResource = buildJavaTypeResource(cu); 
-		JavaResourcePersistentAttribute attributeResource = typeResource.fields().next();
-		JoinColumnAnnotation column = (JoinColumnAnnotation) attributeResource.getSupportingAnnotation(JPA.JOIN_COLUMN);
-
-		assertNotNull(column);
-		assertNull(column.getUnique());
-
-		column.setUnique(Boolean.FALSE);
-		assertEquals(Boolean.FALSE, column.getUnique());
-		
-		assertSourceContains("@JoinColumn(unique = false)", cu);
-		
-		column.setUnique(null);
-		assertSourceDoesNotContain("@JoinColumn", cu);
-	}
-	
-	public void testGetNullable() throws Exception {
-		ICompilationUnit cu = this.createTestJoinColumnWithBooleanElement("nullable");
-		JavaResourcePersistentType typeResource = buildJavaTypeResource(cu); 
-		JavaResourcePersistentAttribute attributeResource = typeResource.fields().next();
-		JoinColumnAnnotation column = (JoinColumnAnnotation) attributeResource.getSupportingAnnotation(JPA.JOIN_COLUMN);
-
-		assertEquals(Boolean.TRUE, column.getNullable());
-	}
-	
-	public void testSetNullable() throws Exception {
-		ICompilationUnit cu = this.createTestJoinColumn();
-		JavaResourcePersistentType typeResource = buildJavaTypeResource(cu); 
-		JavaResourcePersistentAttribute attributeResource = typeResource.fields().next();
-		JoinColumnAnnotation column = (JoinColumnAnnotation) attributeResource.getSupportingAnnotation(JPA.JOIN_COLUMN);
-
-		assertNotNull(column);
-		assertNull(column.getNullable());
-
-		column.setNullable(Boolean.FALSE);
-		assertEquals(Boolean.FALSE, column.getNullable());
-		
-		assertSourceContains("@JoinColumn(nullable = false)", cu);
-		
-		column.setNullable(null);
-		assertSourceDoesNotContain("@JoinColumn", cu);
-	}
-
-	public void testGetInsertable() throws Exception {
-		ICompilationUnit cu = this.createTestJoinColumnWithBooleanElement("insertable");
-		JavaResourcePersistentType typeResource = buildJavaTypeResource(cu); 
-		JavaResourcePersistentAttribute attributeResource = typeResource.fields().next();
-		JoinColumnAnnotation column = (JoinColumnAnnotation) attributeResource.getSupportingAnnotation(JPA.JOIN_COLUMN);
-
-		assertEquals(Boolean.TRUE, column.getInsertable());
-	}
-	
-	public void testSetInsertable() throws Exception {
-		ICompilationUnit cu = this.createTestJoinColumn();
-		JavaResourcePersistentType typeResource = buildJavaTypeResource(cu); 
-		JavaResourcePersistentAttribute attributeResource = typeResource.fields().next();
-		JoinColumnAnnotation column = (JoinColumnAnnotation) attributeResource.getSupportingAnnotation(JPA.JOIN_COLUMN);
-
-		assertNotNull(column);
-		assertNull(column.getInsertable());
-
-		column.setInsertable(Boolean.FALSE);
-		assertEquals(Boolean.FALSE, column.getInsertable());
-		
-		assertSourceContains("@JoinColumn(insertable = false)", cu);
-		
-		column.setInsertable(null);
-		assertSourceDoesNotContain("@JoinColumn", cu);
-	}
-	
-	public void testGetUpdatable() throws Exception {
-		ICompilationUnit cu = this.createTestJoinColumnWithBooleanElement("updatable");
-		JavaResourcePersistentType typeResource = buildJavaTypeResource(cu); 
-		JavaResourcePersistentAttribute attributeResource = typeResource.fields().next();
-		JoinColumnAnnotation column = (JoinColumnAnnotation) attributeResource.getSupportingAnnotation(JPA.JOIN_COLUMN);
-
-		assertEquals(Boolean.TRUE, column.getUpdatable());
-	}
-	
-	public void testSetUpdatable() throws Exception {
-		ICompilationUnit cu = this.createTestJoinColumn();
-		JavaResourcePersistentType typeResource = buildJavaTypeResource(cu); 
-		JavaResourcePersistentAttribute attributeResource = typeResource.fields().next();
-		JoinColumnAnnotation column = (JoinColumnAnnotation) attributeResource.getSupportingAnnotation(JPA.JOIN_COLUMN);
-
-		assertNotNull(column);
-		assertNull(column.getUpdatable());
-
-		column.setUpdatable(Boolean.FALSE);
-		assertEquals(Boolean.FALSE, column.getUpdatable());
-		
-		assertSourceContains("@JoinColumn(updatable = false)", cu);
-		
-		column.setUpdatable(null);
-		assertSourceDoesNotContain("@JoinColumn", cu);
-	}
-}
diff --git a/jpa/tests/org.eclipse.jpt.core.tests/src/org/eclipse/jpt/core/tests/internal/resource/java/JoinColumnsTests.java b/jpa/tests/org.eclipse.jpt.core.tests/src/org/eclipse/jpt/core/tests/internal/resource/java/JoinColumnsTests.java
deleted file mode 100644
index 8be5c3e..0000000
--- a/jpa/tests/org.eclipse.jpt.core.tests/src/org/eclipse/jpt/core/tests/internal/resource/java/JoinColumnsTests.java
+++ /dev/null
@@ -1,421 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.core.tests.internal.resource.java;
-
-import java.util.Iterator;
-
-import org.eclipse.jdt.core.ICompilationUnit;
-import org.eclipse.jpt.core.resource.java.JPA;
-import org.eclipse.jpt.core.resource.java.JavaResourcePersistentAttribute;
-import org.eclipse.jpt.core.resource.java.JavaResourcePersistentType;
-import org.eclipse.jpt.core.resource.java.JoinColumnAnnotation;
-import org.eclipse.jpt.core.resource.java.NestableAnnotation;
-import org.eclipse.jpt.utility.internal.CollectionTools;
-import org.eclipse.jpt.utility.internal.iterators.ArrayIterator;
-
-@SuppressWarnings("nls")
-public class JoinColumnsTests extends JavaResourceModelTestCase {
-	
-	private static final String COLUMN_NAME = "MY_COLUMN";
-	private static final String COLUMN_TABLE = "MY_TABLE";
-	private static final String COLUMN_COLUMN_DEFINITION = "COLUMN_DEFINITION";
-	private static final String COLUMN_REFERENCED_COLUMN_NAME = "MY_REF_COLUMN_NAME";
-	
-	public JoinColumnsTests(String name) {
-		super(name);
-	}
-
-	private ICompilationUnit createTestJoinColumns() throws Exception {
-		return this.createTestType(new DefaultAnnotationWriter() {
-			@Override
-			public Iterator<String> imports() {
-				return new ArrayIterator<String>(JPA.JOIN_COLUMN, JPA.JOIN_COLUMNS);
-			}
-			@Override
-			public void appendIdFieldAnnotationTo(StringBuilder sb) {
-				sb.append("@JoinColumns(@JoinColumn)");
-			}
-		});
-	}
-	
-	private ICompilationUnit createTestJoinColumnWithName() throws Exception {
-		return this.createTestType(new DefaultAnnotationWriter() {
-			@Override
-			public Iterator<String> imports() {
-				return new ArrayIterator<String>(JPA.JOIN_COLUMN, JPA.JOIN_COLUMNS);
-			}
-			@Override
-			public void appendIdFieldAnnotationTo(StringBuilder sb) {
-				sb.append("@JoinColumns(@JoinColumn(name = \"" + COLUMN_NAME + "\"))");
-			}
-		});
-	}
-	
-	private ICompilationUnit createTestJoinColumnWithTable() throws Exception {
-		return this.createTestType(new DefaultAnnotationWriter() {
-			@Override
-			public Iterator<String> imports() {
-				return new ArrayIterator<String>(JPA.JOIN_COLUMN, JPA.JOIN_COLUMNS);
-			}
-			@Override
-			public void appendIdFieldAnnotationTo(StringBuilder sb) {
-				sb.append("@JoinColumns(@JoinColumn(table = \"" + COLUMN_TABLE + "\"))");
-			}
-		});
-	}
-	
-	private ICompilationUnit createTestJoinColumnWithReferencedColumnName() throws Exception {
-		return this.createTestType(new DefaultAnnotationWriter() {
-			@Override
-			public Iterator<String> imports() {
-				return new ArrayIterator<String>(JPA.JOIN_COLUMN, JPA.JOIN_COLUMNS);
-			}
-			@Override
-			public void appendIdFieldAnnotationTo(StringBuilder sb) {
-				sb.append("@JoinColumns(@JoinColumn(referencedColumnName = \"" + COLUMN_REFERENCED_COLUMN_NAME + "\"))");
-			}
-		});
-	}
-	
-	private ICompilationUnit createTestJoinColumnWithColumnDefinition() throws Exception {
-		return this.createTestType(new DefaultAnnotationWriter() {
-			@Override
-			public Iterator<String> imports() {
-				return new ArrayIterator<String>(JPA.JOIN_COLUMN, JPA.JOIN_COLUMNS);
-			}
-			@Override
-			public void appendIdFieldAnnotationTo(StringBuilder sb) {
-				sb.append("@JoinColumns(@JoinColumn(columnDefinition = \"" + COLUMN_COLUMN_DEFINITION + "\"))");
-			}
-		});
-	}
-	
-	private ICompilationUnit createTestJoinColumnWithBooleanElement(final String booleanElement) throws Exception {
-		return this.createTestType(new DefaultAnnotationWriter() {
-			@Override
-			public Iterator<String> imports() {
-				return new ArrayIterator<String>(JPA.JOIN_COLUMN, JPA.JOIN_COLUMNS);
-			}
-			@Override
-			public void appendIdFieldAnnotationTo(StringBuilder sb) {
-				sb.append("@JoinColumns(@JoinColumn(" + booleanElement + " = true))");
-			}
-		});
-	}
-
-	private ICompilationUnit createTestJoinColumn() throws Exception {
-		return this.createTestType(new DefaultAnnotationWriter() {
-			@Override
-			public Iterator<String> imports() {
-				return new ArrayIterator<String>(JPA.JOIN_COLUMN, JPA.JOIN_COLUMNS);
-			}
-			@Override
-			public void appendIdFieldAnnotationTo(StringBuilder sb) {
-				sb.append("@JoinColumn(name = \"BAR\", referencedColumnName = \"REF_NAME\", unique = false, nullable = false, insertable = false, updatable = false, columnDefinition = \"COLUMN_DEF\", table = \"TABLE\")");
-			}
-		});
-	}
-	
-	public void testGetName() throws Exception {
-		ICompilationUnit cu = this.createTestJoinColumnWithName();
-		JavaResourcePersistentType typeResource = buildJavaTypeResource(cu); 
-		JavaResourcePersistentAttribute attributeResource = typeResource.fields().next();
-		JoinColumnAnnotation column = (JoinColumnAnnotation) attributeResource.supportingAnnotations(JPA.JOIN_COLUMN, JPA.JOIN_COLUMNS).next();
-		assertNotNull(column);
-		assertEquals(COLUMN_NAME, column.getName());
-	}
-
-	public void testGetNull() throws Exception {
-		ICompilationUnit cu = this.createTestJoinColumns();
-		JavaResourcePersistentType typeResource = buildJavaTypeResource(cu); 
-		JavaResourcePersistentAttribute attributeResource = typeResource.fields().next();
-		JoinColumnAnnotation column = (JoinColumnAnnotation) attributeResource.supportingAnnotations(JPA.JOIN_COLUMN, JPA.JOIN_COLUMNS).next();
-		assertNotNull(column);
-		assertNull(column.getName());
-		assertNull(column.getNullable());
-		assertNull(column.getInsertable());
-		assertNull(column.getUnique());
-		assertNull(column.getUpdatable());
-		assertNull(column.getTable());
-		assertNull(column.getColumnDefinition());
-	}
-
-	public void testSetName() throws Exception {
-		ICompilationUnit cu = this.createTestJoinColumns();
-		JavaResourcePersistentType typeResource = buildJavaTypeResource(cu); 
-		JavaResourcePersistentAttribute attributeResource = typeResource.fields().next();
-		JoinColumnAnnotation column = (JoinColumnAnnotation) attributeResource.supportingAnnotations(JPA.JOIN_COLUMN, JPA.JOIN_COLUMNS).next();
-
-		assertNotNull(column);
-		assertNull(column.getName());
-
-		column.setName("Foo");
-		assertEquals("Foo", column.getName());
-		
-		assertSourceContains("@JoinColumns(@JoinColumn(name = \"Foo\"))", cu);
-	}
-	
-	public void testSetNameNull() throws Exception {
-		ICompilationUnit cu = this.createTestJoinColumnWithName();
-		JavaResourcePersistentType typeResource = buildJavaTypeResource(cu); 
-		JavaResourcePersistentAttribute attributeResource = typeResource.fields().next();
-		JoinColumnAnnotation column = (JoinColumnAnnotation) attributeResource.supportingAnnotations(JPA.JOIN_COLUMN, JPA.JOIN_COLUMNS).next();
-
-		assertEquals(COLUMN_NAME, column.getName());
-		
-		column.setName(null);
-		assertNull(column.getName());
-		
-		assertSourceDoesNotContain("@JoinColumn", cu);
-	}
-	
-	public void testGetTable() throws Exception {
-		ICompilationUnit cu = this.createTestJoinColumnWithTable();
-		JavaResourcePersistentType typeResource = buildJavaTypeResource(cu); 
-		JavaResourcePersistentAttribute attributeResource = typeResource.fields().next();
-		JoinColumnAnnotation column = (JoinColumnAnnotation) attributeResource.supportingAnnotations(JPA.JOIN_COLUMN, JPA.JOIN_COLUMNS).next();
-		assertEquals(COLUMN_TABLE, column.getTable());
-	}
-
-	public void testSetTable() throws Exception {
-		ICompilationUnit cu = this.createTestJoinColumns();
-		JavaResourcePersistentType typeResource = buildJavaTypeResource(cu); 
-		JavaResourcePersistentAttribute attributeResource = typeResource.fields().next();
-		JoinColumnAnnotation column = (JoinColumnAnnotation) attributeResource.supportingAnnotations(JPA.JOIN_COLUMN, JPA.JOIN_COLUMNS).next();
-
-		assertNotNull(column);
-		assertNull(column.getTable());
-
-		column.setTable("Foo");
-		assertEquals("Foo", column.getTable());
-		
-		assertSourceContains("@JoinColumns(@JoinColumn(table = \"Foo\"))", cu);
-
-		
-		column.setTable(null);
-		assertSourceDoesNotContain("@JoinColumn", cu);
-	}
-	
-	public void testGetReferencedColumnName() throws Exception {
-		ICompilationUnit cu = this.createTestJoinColumnWithReferencedColumnName();
-		JavaResourcePersistentType typeResource = buildJavaTypeResource(cu); 
-		JavaResourcePersistentAttribute attributeResource = typeResource.fields().next();
-		JoinColumnAnnotation column = (JoinColumnAnnotation) attributeResource.supportingAnnotations(JPA.JOIN_COLUMN, JPA.JOIN_COLUMNS).next();
-		assertEquals(COLUMN_REFERENCED_COLUMN_NAME, column.getReferencedColumnName());
-	}
-
-	public void testSetReferencedColumnName() throws Exception {
-		ICompilationUnit cu = this.createTestJoinColumns();
-		JavaResourcePersistentType typeResource = buildJavaTypeResource(cu); 
-		JavaResourcePersistentAttribute attributeResource = typeResource.fields().next();
-		JoinColumnAnnotation column = (JoinColumnAnnotation) attributeResource.supportingAnnotations(JPA.JOIN_COLUMN, JPA.JOIN_COLUMNS).next();
-
-		assertNotNull(column);
-		assertNull(column.getReferencedColumnName());
-
-		column.setReferencedColumnName("Foo");
-		assertEquals("Foo", column.getReferencedColumnName());
-		
-		assertSourceContains("@JoinColumns(@JoinColumn(referencedColumnName = \"Foo\"))", cu);
-
-		
-		column.setReferencedColumnName(null);
-		assertSourceDoesNotContain("@JoinColumn", cu);
-	}
-
-	public void testGetColumnDefinition() throws Exception {
-		ICompilationUnit cu = this.createTestJoinColumnWithColumnDefinition();
-		JavaResourcePersistentType typeResource = buildJavaTypeResource(cu); 
-		JavaResourcePersistentAttribute attributeResource = typeResource.fields().next();
-		JoinColumnAnnotation column = (JoinColumnAnnotation) attributeResource.supportingAnnotations(JPA.JOIN_COLUMN, JPA.JOIN_COLUMNS).next();
-		assertEquals(COLUMN_COLUMN_DEFINITION, column.getColumnDefinition());
-	}
-
-	public void testSetColumnDefinition() throws Exception {
-		ICompilationUnit cu = this.createTestJoinColumns();
-		JavaResourcePersistentType typeResource = buildJavaTypeResource(cu); 
-		JavaResourcePersistentAttribute attributeResource = typeResource.fields().next();
-		JoinColumnAnnotation column = (JoinColumnAnnotation) attributeResource.supportingAnnotations(JPA.JOIN_COLUMN, JPA.JOIN_COLUMNS).next();
-
-		assertNotNull(column);
-		assertNull(column.getColumnDefinition());
-
-		column.setColumnDefinition("Foo");
-		assertEquals("Foo", column.getColumnDefinition());
-		
-		assertSourceContains("@JoinColumns(@JoinColumn(columnDefinition = \"Foo\"))", cu);
-
-		
-		column.setColumnDefinition(null);
-		assertSourceDoesNotContain("@JoinColumn", cu);
-	}
-
-	public void testGetUnique() throws Exception {
-		ICompilationUnit cu = this.createTestJoinColumnWithBooleanElement("unique");
-		JavaResourcePersistentType typeResource = buildJavaTypeResource(cu); 
-		JavaResourcePersistentAttribute attributeResource = typeResource.fields().next();
-		JoinColumnAnnotation column = (JoinColumnAnnotation) attributeResource.supportingAnnotations(JPA.JOIN_COLUMN, JPA.JOIN_COLUMNS).next();
-
-		assertTrue(column.getUnique().booleanValue());
-	}
-	
-	public void testSetUnique() throws Exception {
-		ICompilationUnit cu = this.createTestJoinColumns();
-		JavaResourcePersistentType typeResource = buildJavaTypeResource(cu); 
-		JavaResourcePersistentAttribute attributeResource = typeResource.fields().next();
-		JoinColumnAnnotation column = (JoinColumnAnnotation) attributeResource.supportingAnnotations(JPA.JOIN_COLUMN, JPA.JOIN_COLUMNS).next();
-
-		assertNotNull(column);
-		assertNull(column.getUnique());
-
-		column.setUnique(Boolean.FALSE);
-		assertFalse(column.getUnique().booleanValue());
-		
-		assertSourceContains("@JoinColumns(@JoinColumn(unique = false))", cu);
-		
-		column.setUnique(null);
-		assertSourceDoesNotContain("@JoinColumn", cu);
-	}
-	
-	public void testGetNullable() throws Exception {
-		ICompilationUnit cu = this.createTestJoinColumnWithBooleanElement("nullable");
-		JavaResourcePersistentType typeResource = buildJavaTypeResource(cu); 
-		JavaResourcePersistentAttribute attributeResource = typeResource.fields().next();
-		JoinColumnAnnotation column = (JoinColumnAnnotation) attributeResource.supportingAnnotations(JPA.JOIN_COLUMN, JPA.JOIN_COLUMNS).next();
-
-		assertTrue(column.getNullable().booleanValue());
-	}
-	
-	public void testSetNullable() throws Exception {
-		ICompilationUnit cu = this.createTestJoinColumns();
-		JavaResourcePersistentType typeResource = buildJavaTypeResource(cu); 
-		JavaResourcePersistentAttribute attributeResource = typeResource.fields().next();
-		JoinColumnAnnotation column = (JoinColumnAnnotation) attributeResource.supportingAnnotations(JPA.JOIN_COLUMN, JPA.JOIN_COLUMNS).next();
-
-		assertNotNull(column);
-		assertNull(column.getNullable());
-
-		column.setNullable(Boolean.FALSE);
-		assertFalse(column.getNullable().booleanValue());
-		
-		assertSourceContains("@JoinColumns(@JoinColumn(nullable = false))", cu);
-		
-		column.setNullable(null);
-		assertSourceDoesNotContain("@JoinColumn", cu);
-	}
-
-	public void testGetInsertable() throws Exception {
-		ICompilationUnit cu = this.createTestJoinColumnWithBooleanElement("insertable");
-		JavaResourcePersistentType typeResource = buildJavaTypeResource(cu); 
-		JavaResourcePersistentAttribute attributeResource = typeResource.fields().next();
-		JoinColumnAnnotation column = (JoinColumnAnnotation) attributeResource.supportingAnnotations(JPA.JOIN_COLUMN, JPA.JOIN_COLUMNS).next();
-
-		assertTrue(column.getInsertable().booleanValue());
-	}
-	
-	public void testSetInsertable() throws Exception {
-		ICompilationUnit cu = this.createTestJoinColumns();
-		JavaResourcePersistentType typeResource = buildJavaTypeResource(cu); 
-		JavaResourcePersistentAttribute attributeResource = typeResource.fields().next();
-		JoinColumnAnnotation column = (JoinColumnAnnotation) attributeResource.supportingAnnotations(JPA.JOIN_COLUMN, JPA.JOIN_COLUMNS).next();
-
-		assertNotNull(column);
-		assertNull(column.getInsertable());
-
-		column.setInsertable(Boolean.FALSE);
-		assertFalse(column.getInsertable().booleanValue());
-		
-		assertSourceContains("@JoinColumns(@JoinColumn(insertable = false))", cu);
-		
-		column.setInsertable(null);
-		assertSourceDoesNotContain("@JoinColumn", cu);
-	}
-	
-	public void testGetUpdatable() throws Exception {
-		ICompilationUnit cu = this.createTestJoinColumnWithBooleanElement("updatable");
-		JavaResourcePersistentType typeResource = buildJavaTypeResource(cu); 
-		JavaResourcePersistentAttribute attributeResource = typeResource.fields().next();
-		JoinColumnAnnotation column = (JoinColumnAnnotation) attributeResource.supportingAnnotations(JPA.JOIN_COLUMN, JPA.JOIN_COLUMNS).next();
-
-		assertTrue(column.getUpdatable().booleanValue());
-	}
-	
-	public void testSetUpdatable() throws Exception {
-		ICompilationUnit cu = this.createTestJoinColumns();
-		JavaResourcePersistentType typeResource = buildJavaTypeResource(cu); 
-		JavaResourcePersistentAttribute attributeResource = typeResource.fields().next();
-		JoinColumnAnnotation column = (JoinColumnAnnotation) attributeResource.supportingAnnotations(JPA.JOIN_COLUMN, JPA.JOIN_COLUMNS).next();
-
-		assertNotNull(column);
-		assertNull(column.getUpdatable());
-
-		column.setUpdatable(Boolean.FALSE);
-		assertFalse(column.getUpdatable().booleanValue());
-		
-		assertSourceContains("@JoinColumns(@JoinColumn(updatable = false))", cu);
-		
-		column.setUpdatable(null);
-		assertSourceDoesNotContain("@JoinColumn", cu);
-		assertSourceDoesNotContain("@JoinColumns", cu);
-	}
-	
-	
-	public void testAddJoinColumnCopyExisting() throws Exception {
-		ICompilationUnit cu = createTestJoinColumn();
-		JavaResourcePersistentType typeResource = buildJavaTypeResource(cu);
-		JavaResourcePersistentAttribute attributeResource = typeResource.fields().next();
-		
-		JoinColumnAnnotation joinColumn = (JoinColumnAnnotation) attributeResource.addSupportingAnnotation(1, JPA.JOIN_COLUMN, JPA.JOIN_COLUMNS);
-		joinColumn.setName("FOO");
-		assertSourceContains("@JoinColumns({@JoinColumn(name = \"BAR\", columnDefinition = \"COLUMN_DEF\", table = \"TABLE\", unique = false, nullable = false, insertable = false, updatable = false, referencedColumnName = \"REF_NAME\"),@JoinColumn(name = \"FOO\")})", cu);
-		
-		assertNull(attributeResource.getSupportingAnnotation(JPA.JOIN_COLUMN));
-		assertNotNull(attributeResource.getSupportingAnnotation(JPA.JOIN_COLUMNS));
-		assertEquals(2, CollectionTools.size(attributeResource.supportingAnnotations(JPA.JOIN_COLUMN, JPA.JOIN_COLUMNS)));
-	}
-	
-	public void testAddJoinColumnToBeginningOfList() throws Exception {
-		ICompilationUnit cu = createTestJoinColumn();
-		JavaResourcePersistentType typeResource = buildJavaTypeResource(cu);
-		JavaResourcePersistentAttribute attributeResource = typeResource.fields().next();
-		
-		JoinColumnAnnotation joinColumn = (JoinColumnAnnotation) attributeResource.addSupportingAnnotation(1, JPA.JOIN_COLUMN, JPA.JOIN_COLUMNS);
-		joinColumn.setName("FOO");
-		assertSourceContains("@JoinColumns({@JoinColumn(name = \"BAR\", columnDefinition = \"COLUMN_DEF\", table = \"TABLE\", unique = false, nullable = false, insertable = false, updatable = false, referencedColumnName = \"REF_NAME\"),@JoinColumn(name = \"FOO\")})", cu);
-				
-		joinColumn = (JoinColumnAnnotation) attributeResource.addSupportingAnnotation(0, JPA.JOIN_COLUMN, JPA.JOIN_COLUMNS);
-		joinColumn.setName("BAZ");
-		assertSourceContains("@JoinColumns({@JoinColumn(name = \"BAZ\"),@JoinColumn(name = \"BAR\", columnDefinition = \"COLUMN_DEF\", table = \"TABLE\", unique = false, nullable = false, insertable = false, updatable = false, referencedColumnName = \"REF_NAME\"), @JoinColumn(name = \"FOO\")})", cu);
-
-		Iterator<NestableAnnotation> joinColumns = attributeResource.supportingAnnotations(JPA.JOIN_COLUMN, JPA.JOIN_COLUMNS);
-		assertEquals("BAZ", ((JoinColumnAnnotation) joinColumns.next()).getName());
-		assertEquals("BAR", ((JoinColumnAnnotation) joinColumns.next()).getName());
-		assertEquals("FOO", ((JoinColumnAnnotation) joinColumns.next()).getName());
-		
-		assertNull(attributeResource.getSupportingAnnotation(JPA.JOIN_COLUMN));
-		assertNotNull(attributeResource.getSupportingAnnotation(JPA.JOIN_COLUMNS));
-		assertEquals(3, CollectionTools.size(attributeResource.supportingAnnotations(JPA.JOIN_COLUMN, JPA.JOIN_COLUMNS)));
-	}
-
-
-	public void testRemoveJoinColumnCopyExisting() throws Exception {
-		ICompilationUnit cu = createTestJoinColumn();
-		JavaResourcePersistentType typeResource = buildJavaTypeResource(cu);
-		JavaResourcePersistentAttribute attributeResource = typeResource.fields().next();
-		
-		JoinColumnAnnotation joinColumn = (JoinColumnAnnotation) attributeResource.addSupportingAnnotation(1, JPA.JOIN_COLUMN, JPA.JOIN_COLUMNS);
-		joinColumn.setName("FOO");
-		assertSourceContains("@JoinColumns({@JoinColumn(name = \"BAR\", columnDefinition = \"COLUMN_DEF\", table = \"TABLE\", unique = false, nullable = false, insertable = false, updatable = false, referencedColumnName = \"REF_NAME\"),@JoinColumn(name = \"FOO\")})", cu);
-		
-		attributeResource.removeSupportingAnnotation(1, JPA.JOIN_COLUMN, JPA.JOIN_COLUMNS);
-		assertSourceContains("@JoinColumn(name = \"BAR\", columnDefinition = \"COLUMN_DEF\", table = \"TABLE\", unique = false, nullable = false, insertable = false, updatable = false, referencedColumnName = \"REF_NAME\")", cu);
-	}
-
-}
diff --git a/jpa/tests/org.eclipse.jpt.core.tests/src/org/eclipse/jpt/core/tests/internal/resource/java/JoinTableTests.java b/jpa/tests/org.eclipse.jpt.core.tests/src/org/eclipse/jpt/core/tests/internal/resource/java/JoinTableTests.java
deleted file mode 100644
index ef488c5..0000000
--- a/jpa/tests/org.eclipse.jpt.core.tests/src/org/eclipse/jpt/core/tests/internal/resource/java/JoinTableTests.java
+++ /dev/null
@@ -1,656 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.core.tests.internal.resource.java;
-
-import java.util.Iterator;
-import org.eclipse.jdt.core.ICompilationUnit;
-import org.eclipse.jpt.core.resource.java.JPA;
-import org.eclipse.jpt.core.resource.java.JavaResourcePersistentAttribute;
-import org.eclipse.jpt.core.resource.java.JavaResourcePersistentType;
-import org.eclipse.jpt.core.resource.java.JoinColumnAnnotation;
-import org.eclipse.jpt.core.resource.java.JoinTableAnnotation;
-import org.eclipse.jpt.utility.internal.iterators.ArrayIterator;
-
-@SuppressWarnings("nls")
-public class JoinTableTests extends JavaResourceModelTestCase {
-	
-	private static final String TABLE_NAME = "MY_TABLE";
-	private static final String SCHEMA_NAME = "MY_SCHEMA";
-	private static final String CATALOG_NAME = "MY_CATALOG";
-	
-	public JoinTableTests(String name) {
-		super(name);
-	}
-	
-	private ICompilationUnit createTestJoinTable() throws Exception {
-		return this.createTestType(new DefaultAnnotationWriter() {
-			@Override
-			public Iterator<String> imports() {
-				return new ArrayIterator<String>(JPA.JOIN_TABLE);
-			}
-			@Override
-			public void appendIdFieldAnnotationTo(StringBuilder sb) {
-				sb.append("@JoinTable");
-			}
-		});
-	}
-	
-	private ICompilationUnit createTestJoinTableWithName() throws Exception {
-		return this.createTestType(new DefaultAnnotationWriter() {
-			@Override
-			public Iterator<String> imports() {
-				return new ArrayIterator<String>(JPA.JOIN_TABLE);
-			}
-			@Override
-			public void appendIdFieldAnnotationTo(StringBuilder sb) {
-				sb.append("@JoinTable(name = \"" + TABLE_NAME + "\")");
-			}
-		});
-	}
-	
-	private ICompilationUnit createTestJoinTableWithSchema() throws Exception {
-		return this.createTestType(new DefaultAnnotationWriter() {
-			@Override
-			public Iterator<String> imports() {
-				return new ArrayIterator<String>(JPA.JOIN_TABLE);
-			}
-			
-			@Override
-			public void appendIdFieldAnnotationTo(StringBuilder sb) {
-				sb.append("@JoinTable(schema = \"" + SCHEMA_NAME + "\")");
-			}
-		});
-	}
-	
-	private ICompilationUnit createTestJoinTableWithCatalog() throws Exception {
-		return this.createTestType(new DefaultAnnotationWriter() {
-			@Override
-			public Iterator<String> imports() {
-				return new ArrayIterator<String>(JPA.JOIN_TABLE);
-			}
-			@Override
-			public void appendIdFieldAnnotationTo(StringBuilder sb) {
-				sb.append("@JoinTable(catalog = \"" + CATALOG_NAME + "\")");
-			}
-		});
-	}
-	
-	private ICompilationUnit createTestJoinTableWithUniqueConstraints() throws Exception {
-		return this.createTestType(new DefaultAnnotationWriter() {
-			@Override
-			public Iterator<String> imports() {
-				return new ArrayIterator<String>(JPA.JOIN_TABLE, JPA.UNIQUE_CONSTRAINT);
-			}
-			@Override
-			public void appendIdFieldAnnotationTo(StringBuilder sb) {
-				sb.append("@JoinTable(uniqueConstraints = {@UniqueConstraint(columnNames = {\"BAR\"}), @UniqueConstraint(columnNames = {\"FOO\"}), @UniqueConstraint(columnNames = {\"BAZ\"})})");
-			}
-		});
-	}
-	
-	private ICompilationUnit createTestJoinTableWithJoinColumns() throws Exception {
-		return this.createTestType(new DefaultAnnotationWriter() {
-			@Override
-			public Iterator<String> imports() {
-				return new ArrayIterator<String>(JPA.JOIN_TABLE, JPA.JOIN_COLUMN);
-			}
-			@Override
-			public void appendIdFieldAnnotationTo(StringBuilder sb) {
-				sb.append("@JoinTable(joinColumns = {@JoinColumn(name = \"BAR\"), @JoinColumn})");
-			}
-		});
-	}
-	
-	private ICompilationUnit createTestJoinTableWithInverseJoinColumns() throws Exception {
-		return this.createTestType(new DefaultAnnotationWriter() {
-			@Override
-			public Iterator<String> imports() {
-				return new ArrayIterator<String>(JPA.JOIN_TABLE, JPA.JOIN_COLUMN);
-			}
-			@Override
-			public void appendIdFieldAnnotationTo(StringBuilder sb) {
-				sb.append("@JoinTable(inverseJoinColumns = {@JoinColumn(name = \"BAR\"), @JoinColumn})");
-			}
-		});
-	}
-
-	public void testGetName() throws Exception {
-		ICompilationUnit cu = this.createTestJoinTableWithName();
-		JavaResourcePersistentType typeResource = buildJavaTypeResource(cu); 
-		JavaResourcePersistentAttribute attributeResource = typeResource.fields().next();
-		
-		JoinTableAnnotation table = (JoinTableAnnotation) attributeResource.getSupportingAnnotation(JPA.JOIN_TABLE);
-		assertNotNull(table);
-		assertEquals(TABLE_NAME, table.getName());
-	}
-
-	public void testGetNull() throws Exception {
-		ICompilationUnit cu = this.createTestJoinTable();
-		JavaResourcePersistentType typeResource = buildJavaTypeResource(cu); 
-		JavaResourcePersistentAttribute attributeResource = typeResource.fields().next();
-		
-		JoinTableAnnotation table = (JoinTableAnnotation) attributeResource.getSupportingAnnotation(JPA.JOIN_TABLE);
-		assertNotNull(table);
-		assertNull(table.getName());
-		assertNull(table.getCatalog());
-		assertNull(table.getSchema());
-	}
-
-	public void testSetName() throws Exception {
-		ICompilationUnit cu = this.createTestJoinTable();
-		JavaResourcePersistentType typeResource = buildJavaTypeResource(cu); 
-		JavaResourcePersistentAttribute attributeResource = typeResource.fields().next();
-		
-		JoinTableAnnotation table = (JoinTableAnnotation) attributeResource.getSupportingAnnotation(JPA.JOIN_TABLE);
-		assertNotNull(table);
-		assertNull(table.getName());
-
-		table.setName("Foo");
-		assertEquals("Foo", table.getName());
-		
-		assertSourceContains("@JoinTable(name = \"Foo\")", cu);
-	}
-	
-	public void testSetNameNull() throws Exception {
-		ICompilationUnit cu = this.createTestJoinTableWithName();
-		JavaResourcePersistentType typeResource = buildJavaTypeResource(cu); 
-		JavaResourcePersistentAttribute attributeResource = typeResource.fields().next();
-		
-		JoinTableAnnotation table = (JoinTableAnnotation) attributeResource.getSupportingAnnotation(JPA.JOIN_TABLE);
-		assertEquals(TABLE_NAME, table.getName());
-		
-		table.setName(null);
-		assertNull(table.getName());
-		
-		assertSourceDoesNotContain("@JoinTable", cu);
-	}
-
-	public void testGetCatalog() throws Exception {
-		ICompilationUnit cu = this.createTestJoinTableWithCatalog();
-		JavaResourcePersistentType typeResource = buildJavaTypeResource(cu); 
-		JavaResourcePersistentAttribute attributeResource = typeResource.fields().next();
-		
-		JoinTableAnnotation table = (JoinTableAnnotation) attributeResource.getSupportingAnnotation(JPA.JOIN_TABLE);
-		assertNotNull(table);
-		assertEquals(CATALOG_NAME, table.getCatalog());
-	}
-
-	public void testSetCatalog() throws Exception {
-		ICompilationUnit cu = this.createTestJoinTable();
-		JavaResourcePersistentType typeResource = buildJavaTypeResource(cu); 
-		JavaResourcePersistentAttribute attributeResource = typeResource.fields().next();
-		
-		JoinTableAnnotation table = (JoinTableAnnotation) attributeResource.getSupportingAnnotation(JPA.JOIN_TABLE);
-		assertNotNull(table);
-		assertNull(table.getCatalog());
-
-		table.setCatalog("Foo");
-		assertEquals("Foo", table.getCatalog());
-		
-		assertSourceContains("@JoinTable(catalog = \"Foo\")", cu);
-	}
-	
-	public void testSetCatalogNull() throws Exception {
-		ICompilationUnit cu = this.createTestJoinTableWithCatalog();
-		JavaResourcePersistentType typeResource = buildJavaTypeResource(cu); 
-		JavaResourcePersistentAttribute attributeResource = typeResource.fields().next();
-		
-		JoinTableAnnotation table = (JoinTableAnnotation) attributeResource.getSupportingAnnotation(JPA.JOIN_TABLE);
-		assertEquals(CATALOG_NAME, table.getCatalog());
-		
-		table.setCatalog(null);
-		assertNull(table.getCatalog());
-		
-		assertSourceDoesNotContain("@JoinTable", cu);
-	}
-	
-	public void testGetSchema() throws Exception {
-		ICompilationUnit cu = this.createTestJoinTableWithSchema();
-		JavaResourcePersistentType typeResource = buildJavaTypeResource(cu); 
-		JavaResourcePersistentAttribute attributeResource = typeResource.fields().next();
-		
-		JoinTableAnnotation table = (JoinTableAnnotation) attributeResource.getSupportingAnnotation(JPA.JOIN_TABLE);
-		assertNotNull(table);
-		assertEquals(SCHEMA_NAME, table.getSchema());
-	}
-
-	public void testSetSchema() throws Exception {
-		ICompilationUnit cu = this.createTestJoinTable();
-		JavaResourcePersistentType typeResource = buildJavaTypeResource(cu); 
-		JavaResourcePersistentAttribute attributeResource = typeResource.fields().next();
-		
-		JoinTableAnnotation table = (JoinTableAnnotation) attributeResource.getSupportingAnnotation(JPA.JOIN_TABLE);
-		assertNotNull(table);
-		assertNull(table.getSchema());
-
-		table.setSchema("Foo");
-		assertEquals("Foo", table.getSchema());
-		
-		assertSourceContains("@JoinTable(schema = \"Foo\")", cu);
-	}
-	
-	public void testSetSchemaNull() throws Exception {
-		ICompilationUnit cu = this.createTestJoinTableWithSchema();
-		JavaResourcePersistentType typeResource = buildJavaTypeResource(cu); 
-		JavaResourcePersistentAttribute attributeResource = typeResource.fields().next();
-		
-		JoinTableAnnotation table = (JoinTableAnnotation) attributeResource.getSupportingAnnotation(JPA.JOIN_TABLE);
-		assertEquals(SCHEMA_NAME, table.getSchema());
-		
-		table.setSchema(null);
-		assertNull(table.getSchema());
-		
-		assertSourceDoesNotContain("@JoinTable", cu);
-	}
-	
-	public void testUniqueConstraints() throws Exception {
-		ICompilationUnit cu = this.createTestJoinTable();
-		JavaResourcePersistentType typeResource = buildJavaTypeResource(cu); 
-		JavaResourcePersistentAttribute attributeResource = typeResource.fields().next();
-		
-		JoinTableAnnotation table = (JoinTableAnnotation) attributeResource.getSupportingAnnotation(JPA.JOIN_TABLE);
-		
-		assertEquals(0, table.uniqueConstraintsSize());
-	}
-	
-	public void testUniqueConstraints2() throws Exception {
-		ICompilationUnit cu = this.createTestJoinTable();
-		JavaResourcePersistentType typeResource = buildJavaTypeResource(cu); 
-		JavaResourcePersistentAttribute attributeResource = typeResource.fields().next();
-		
-		JoinTableAnnotation table = (JoinTableAnnotation) attributeResource.getSupportingAnnotation(JPA.JOIN_TABLE);
-
-		
-		table.addUniqueConstraint(0);
-		table.addUniqueConstraint(1);
-		
-		assertEquals(2, table.uniqueConstraintsSize());
-	}
-	
-	public void testUniqueConstraints3() throws Exception {
-		ICompilationUnit cu = this.createTestJoinTableWithUniqueConstraints();
-		JavaResourcePersistentType typeResource = buildJavaTypeResource(cu); 
-		JavaResourcePersistentAttribute attributeResource = typeResource.fields().next();
-		
-		JoinTableAnnotation table = (JoinTableAnnotation) attributeResource.getSupportingAnnotation(JPA.JOIN_TABLE);
-				
-		assertEquals(3, table.uniqueConstraintsSize());
-	}
-	
-	public void testAddUniqueConstraint() throws Exception {
-		ICompilationUnit cu = this.createTestJoinTable();
-		JavaResourcePersistentType typeResource = buildJavaTypeResource(cu); 
-		JavaResourcePersistentAttribute attributeResource = typeResource.fields().next();
-		
-		JoinTableAnnotation table = (JoinTableAnnotation) attributeResource.getSupportingAnnotation(JPA.JOIN_TABLE);
-		
-		table.addUniqueConstraint(0).addColumnName("FOO");
-		table.addUniqueConstraint(1);
-		table.addUniqueConstraint(0).addColumnName("BAR");
-
-		assertEquals("BAR", table.uniqueConstraintAt(0).columnNames().next());
-		assertEquals("FOO", table.uniqueConstraintAt(1).columnNames().next());
-		assertEquals(0, table.uniqueConstraintAt(2).columnNamesSize());
-
-		assertSourceContains("@JoinTable(uniqueConstraints = {@UniqueConstraint(columnNames = \"BAR\"),@UniqueConstraint(columnNames = \"FOO\"), @UniqueConstraint})", cu);
-	}
-	
-	public void testRemoveUniqueConstraint() throws Exception {
-		ICompilationUnit cu = this.createTestJoinTableWithUniqueConstraints();
-		JavaResourcePersistentType typeResource = buildJavaTypeResource(cu); 
-		JavaResourcePersistentAttribute attributeResource = typeResource.fields().next();
-		
-		JoinTableAnnotation table = (JoinTableAnnotation) attributeResource.getSupportingAnnotation(JPA.JOIN_TABLE);
-		assertEquals("BAR", table.uniqueConstraintAt(0).columnNames().next());
-		assertEquals("FOO", table.uniqueConstraintAt(1).columnNames().next());
-		assertEquals("BAZ", table.uniqueConstraintAt(2).columnNames().next());
-		assertEquals(3, table.uniqueConstraintsSize());
-		
-		table.removeUniqueConstraint(1);
-		assertEquals("BAR", table.uniqueConstraintAt(0).columnNames().next());
-		assertEquals("BAZ", table.uniqueConstraintAt(1).columnNames().next());
-		assertEquals(2, table.uniqueConstraintsSize());		
-		assertSourceContains("@JoinTable(uniqueConstraints = {@UniqueConstraint(columnNames = {\"BAR\"}), @UniqueConstraint(columnNames = {\"BAZ\"})})", cu);
-		
-		table.removeUniqueConstraint(0);
-		assertEquals("BAZ", table.uniqueConstraintAt(0).columnNames().next());
-		assertEquals(1, table.uniqueConstraintsSize());		
-		assertSourceContains("@JoinTable(uniqueConstraints = @UniqueConstraint(columnNames = {\"BAZ\"}))", cu);
-		
-		table.removeUniqueConstraint(0);
-		assertEquals(0, table.uniqueConstraintsSize());		
-		assertSourceDoesNotContain("@JoinTable", cu);
-	}
-	
-	public void testMoveUniqueConstraint() throws Exception {
-		ICompilationUnit cu = this.createTestJoinTableWithUniqueConstraints();
-		JavaResourcePersistentType typeResource = buildJavaTypeResource(cu); 
-		JavaResourcePersistentAttribute attributeResource = typeResource.fields().next();
-		
-		JoinTableAnnotation table = (JoinTableAnnotation) attributeResource.getSupportingAnnotation(JPA.JOIN_TABLE);
-		assertSourceContains("@JoinTable(uniqueConstraints = {@UniqueConstraint(columnNames = {\"BAR\"}), @UniqueConstraint(columnNames = {\"FOO\"}), @UniqueConstraint(columnNames = {\"BAZ\"})})", cu);
-		
-		table.moveUniqueConstraint(2, 0);
-		assertSourceContains("@JoinTable(uniqueConstraints = {@UniqueConstraint(columnNames = {\"FOO\"}), @UniqueConstraint(columnNames = {\"BAZ\"}), @UniqueConstraint(columnNames = {\"BAR\"})})", cu);
-	}
-	
-	public void testMoveUniqueConstraint2() throws Exception {
-		ICompilationUnit cu = this.createTestJoinTableWithUniqueConstraints();
-		JavaResourcePersistentType typeResource = buildJavaTypeResource(cu);
-		JavaResourcePersistentAttribute attributeResource = typeResource.fields().next();
-		
-		JoinTableAnnotation table = (JoinTableAnnotation) attributeResource.getSupportingAnnotation(JPA.JOIN_TABLE);
-		assertSourceContains("@JoinTable(uniqueConstraints = {@UniqueConstraint(columnNames = {\"BAR\"}), @UniqueConstraint(columnNames = {\"FOO\"}), @UniqueConstraint(columnNames = {\"BAZ\"})})", cu);
-		
-		table.moveUniqueConstraint(0, 2);
-		assertSourceContains("@JoinTable(uniqueConstraints = {@UniqueConstraint(columnNames = {\"BAZ\"}), @UniqueConstraint(columnNames = {\"BAR\"}), @UniqueConstraint(columnNames = {\"FOO\"})})", cu);
-	}
-	
-	public void testJoinColumns() throws Exception {
-		ICompilationUnit cu = this.createTestJoinTable();
-		JavaResourcePersistentType typeResource = buildJavaTypeResource(cu); 
-		JavaResourcePersistentAttribute attributeResource = typeResource.fields().next();
-		
-		JoinTableAnnotation table = (JoinTableAnnotation) attributeResource.getSupportingAnnotation(JPA.JOIN_TABLE);
-				
-		assertEquals(0, table.joinColumnsSize());
-	}
-	
-	public void testJoinColumns2() throws Exception {
-		ICompilationUnit cu = this.createTestJoinTable();
-		JavaResourcePersistentType typeResource = buildJavaTypeResource(cu); 
-		JavaResourcePersistentAttribute attributeResource = typeResource.fields().next();
-		
-		JoinTableAnnotation table = (JoinTableAnnotation) attributeResource.getSupportingAnnotation(JPA.JOIN_TABLE);
-
-		
-		table.addJoinColumn(0);
-		table.addJoinColumn(1);
-		
-		assertEquals(2, table.joinColumnsSize());
-	}
-	
-	public void testJoinColumns3() throws Exception {
-		ICompilationUnit cu = this.createTestJoinTableWithJoinColumns();
-		JavaResourcePersistentType typeResource = buildJavaTypeResource(cu); 
-		JavaResourcePersistentAttribute attributeResource = typeResource.fields().next();
-		
-		JoinTableAnnotation table = (JoinTableAnnotation) attributeResource.getSupportingAnnotation(JPA.JOIN_TABLE);
-				
-		assertEquals(2, table.joinColumnsSize());
-	}
-	
-	public void testAddJoinColumn() throws Exception {
-		ICompilationUnit cu = this.createTestJoinTable();
-		JavaResourcePersistentType typeResource = buildJavaTypeResource(cu); 
-		JavaResourcePersistentAttribute attributeResource = typeResource.fields().next();
-		
-		JoinTableAnnotation table = (JoinTableAnnotation) attributeResource.getSupportingAnnotation(JPA.JOIN_TABLE);
-		
-		table.addJoinColumn(0).setName("FOO");
-		table.addJoinColumn(1);
-		table.addJoinColumn(0).setName("BAR");
-
-		assertEquals("BAR", table.joinColumnAt(0).getName());
-		assertEquals("FOO", table.joinColumnAt(1).getName());
-		assertNull(table.joinColumnAt(2).getName());
-		assertSourceContains("@JoinTable(joinColumns = {@JoinColumn(name = \"BAR\"),@JoinColumn(name = \"FOO\"), @JoinColumn})", cu);
-	}
-	
-	public void testRemoveJoinColumn() throws Exception {
-		ICompilationUnit cu = this.createTestJoinTableWithJoinColumns();
-		JavaResourcePersistentType typeResource = buildJavaTypeResource(cu); 
-		JavaResourcePersistentAttribute attributeResource = typeResource.fields().next();
-		
-		JoinTableAnnotation table = (JoinTableAnnotation) attributeResource.getSupportingAnnotation(JPA.JOIN_TABLE);
-		table.addJoinColumn(0).setName("FOO");
-		
-		assertEquals("FOO", table.joinColumnAt(0).getName());
-		assertEquals("BAR", table.joinColumnAt(1).getName());
-		assertNull(table.joinColumnAt(2).getName());
-		assertEquals(3, table.joinColumnsSize());
-		
-		table.removeJoinColumn(1);
-		assertEquals("FOO", table.joinColumnAt(0).getName());
-		assertNull(table.joinColumnAt(1).getName());
-		assertEquals(2, table.joinColumnsSize());
-		assertSourceContains("@JoinTable(joinColumns = {@JoinColumn(name = \"FOO\"), @JoinColumn})", cu);
-
-		table.removeJoinColumn(0);
-		assertNull(table.joinColumnAt(0).getName());
-		assertEquals(1, table.joinColumnsSize());
-		assertSourceContains("@JoinTable(joinColumns = @JoinColumn)", cu);
-
-		
-		table.removeJoinColumn(0);
-		assertEquals(0, table.joinColumnsSize());
-		assertSourceDoesNotContain("@JoinTable", cu);
-	}
-	
-	public void testMoveJoinColumn() throws Exception {
-		ICompilationUnit cu = this.createTestJoinTableWithJoinColumns();
-		JavaResourcePersistentType typeResource = buildJavaTypeResource(cu); 
-		JavaResourcePersistentAttribute attributeResource = typeResource.fields().next();
-		
-		JoinTableAnnotation table = (JoinTableAnnotation) attributeResource.getSupportingAnnotation(JPA.JOIN_TABLE);
-		JoinColumnAnnotation joinColumn = table.joinColumnAt(0);
-		joinColumn.setReferencedColumnName("REF_NAME");
-		joinColumn.setUnique(Boolean.FALSE);
-		joinColumn.setNullable(Boolean.FALSE);
-		joinColumn.setInsertable(Boolean.FALSE);
-		joinColumn.setUpdatable(Boolean.FALSE);
-		joinColumn.setColumnDefinition("COLUMN_DEF");
-		joinColumn.setTable("TABLE");
-		table.addJoinColumn(0).setName("FOO");
-		
-		assertSourceContains("@JoinTable(joinColumns = {@JoinColumn(name = \"FOO\"), @JoinColumn(name = \"BAR\", referencedColumnName = \"REF_NAME\", unique = false, nullable = false, insertable = false, updatable = false, columnDefinition = \"COLUMN_DEF\", table = \"TABLE\"), @JoinColumn})", cu);
-
-		table.moveJoinColumn(2, 0);
-		assertEquals("BAR", table.joinColumnAt(0).getName());
-		assertNull(table.joinColumnAt(1).getName());
-		assertEquals("FOO", table.joinColumnAt(2).getName());
-		assertEquals(3, table.joinColumnsSize());
-		assertSourceContains("@JoinTable(joinColumns = {@JoinColumn(name = \"BAR\", referencedColumnName = \"REF_NAME\", unique = false, nullable = false, insertable = false, updatable = false, columnDefinition = \"COLUMN_DEF\", table = \"TABLE\"), @JoinColumn, @JoinColumn(name = \"FOO\")})", cu);
-	}
-	
-	public void testMoveJoinColumn2() throws Exception {
-		ICompilationUnit cu = this.createTestJoinTableWithJoinColumns();
-		JavaResourcePersistentType typeResource = buildJavaTypeResource(cu);
-		JavaResourcePersistentAttribute attributeResource = typeResource.fields().next();
-		
-		JoinTableAnnotation table = (JoinTableAnnotation) attributeResource.getSupportingAnnotation(JPA.JOIN_TABLE);
-		
-		JoinColumnAnnotation joinColumn = table.joinColumnAt(0);
-		joinColumn.setReferencedColumnName("REF_NAME");
-		joinColumn.setUnique(Boolean.FALSE);
-		joinColumn.setNullable(Boolean.FALSE);
-		joinColumn.setInsertable(Boolean.FALSE);
-		joinColumn.setUpdatable(Boolean.FALSE);
-		joinColumn.setColumnDefinition("COLUMN_DEF");
-		joinColumn.setTable("TABLE");
-		
-		table.addJoinColumn(0).setName("FOO");
-		
-		assertSourceContains("@JoinTable(joinColumns = {@JoinColumn(name = \"FOO\"), @JoinColumn(name = \"BAR\", referencedColumnName = \"REF_NAME\", unique = false, nullable = false, insertable = false, updatable = false, columnDefinition = \"COLUMN_DEF\", table = \"TABLE\"), @JoinColumn})", cu);
-
-
-		table.moveJoinColumn(0, 2);
-		assertNull(table.joinColumnAt(0).getName());
-		assertEquals("FOO", table.joinColumnAt(1).getName());
-		assertEquals("BAR", table.joinColumnAt(2).getName());
-		assertEquals(3, table.joinColumnsSize());
-		assertSourceContains("@JoinTable(joinColumns = {@JoinColumn, @JoinColumn(name = \"FOO\"), @JoinColumn(name = \"BAR\", referencedColumnName = \"REF_NAME\", unique = false, nullable = false, insertable = false, updatable = false, columnDefinition = \"COLUMN_DEF\", table = \"TABLE\")})", cu);
-	}
-	
-	public void testSetJoinColumnName() throws Exception {
-		ICompilationUnit cu = this.createTestJoinTableWithJoinColumns();
-		JavaResourcePersistentType typeResource = buildJavaTypeResource(cu); 
-		JavaResourcePersistentAttribute attributeResource = typeResource.fields().next();
-		
-		JoinTableAnnotation table = (JoinTableAnnotation) attributeResource.getSupportingAnnotation(JPA.JOIN_TABLE);
-				
-		assertEquals(2, table.joinColumnsSize());
-		
-		JoinColumnAnnotation joinColumn = table.joinColumns().next();
-		
-		assertEquals("BAR", joinColumn.getName());
-		
-		joinColumn.setName("foo");
-		assertEquals("foo", joinColumn.getName());
-		
-		assertSourceContains("@JoinTable(joinColumns = {@JoinColumn(name = \"foo\"), @JoinColumn})", cu);
-	}
-
-	public void testInverseJoinColumns() throws Exception {
-		ICompilationUnit cu = this.createTestJoinTable();
-		JavaResourcePersistentType typeResource = buildJavaTypeResource(cu); 
-		JavaResourcePersistentAttribute attributeResource = typeResource.fields().next();
-		
-		JoinTableAnnotation table = (JoinTableAnnotation) attributeResource.getSupportingAnnotation(JPA.JOIN_TABLE);
-		
-		assertEquals(0, table.inverseJoinColumnsSize());
-	}
-	
-	public void testInverseJoinColumns2() throws Exception {
-		ICompilationUnit cu = this.createTestJoinTable();
-		JavaResourcePersistentType typeResource = buildJavaTypeResource(cu); 
-		JavaResourcePersistentAttribute attributeResource = typeResource.fields().next();
-		
-		JoinTableAnnotation table = (JoinTableAnnotation) attributeResource.getSupportingAnnotation(JPA.JOIN_TABLE);
-
-		
-		table.addInverseJoinColumn(0);
-		table.addInverseJoinColumn(1);
-		
-		assertEquals(2, table.inverseJoinColumnsSize());
-	}
-	
-	public void testInverseJoinColumns3() throws Exception {
-		ICompilationUnit cu = this.createTestJoinTableWithInverseJoinColumns();
-		JavaResourcePersistentType typeResource = buildJavaTypeResource(cu); 
-		JavaResourcePersistentAttribute attributeResource = typeResource.fields().next();
-		
-		JoinTableAnnotation table = (JoinTableAnnotation) attributeResource.getSupportingAnnotation(JPA.JOIN_TABLE);
-				
-		assertEquals(2, table.inverseJoinColumnsSize());
-	}
-	
-	public void testAddInverseJoinColumn() throws Exception {
-		ICompilationUnit cu = this.createTestJoinTable();
-		JavaResourcePersistentType typeResource = buildJavaTypeResource(cu); 
-		JavaResourcePersistentAttribute attributeResource = typeResource.fields().next();
-		
-		JoinTableAnnotation table = (JoinTableAnnotation) attributeResource.getSupportingAnnotation(JPA.JOIN_TABLE);
-		
-		table.addInverseJoinColumn(0).setName("FOO");
-		table.addInverseJoinColumn(1);
-		table.addInverseJoinColumn(0).setName("BAR");
-
-		assertEquals("BAR", table.inverseJoinColumnAt(0).getName());
-		assertEquals("FOO", table.inverseJoinColumnAt(1).getName());
-		assertNull(table.inverseJoinColumnAt(2).getName());
-		assertSourceContains("@JoinTable(inverseJoinColumns = {@JoinColumn(name = \"BAR\"),@JoinColumn(name = \"FOO\"), @JoinColumn})", cu);
-	}
-	
-	public void testRemoveInverseJoinColumn() throws Exception {
-		ICompilationUnit cu = this.createTestJoinTableWithInverseJoinColumns();
-		JavaResourcePersistentType typeResource = buildJavaTypeResource(cu); 
-		JavaResourcePersistentAttribute attributeResource = typeResource.fields().next();
-		
-		JoinTableAnnotation table = (JoinTableAnnotation) attributeResource.getSupportingAnnotation(JPA.JOIN_TABLE);
-		table.addInverseJoinColumn(2).setName("FOO");
-		
-		Iterator<JoinColumnAnnotation> inverseJoinColumns = table.inverseJoinColumns();
-		assertEquals("BAR", inverseJoinColumns.next().getName());
-		assertNull(inverseJoinColumns.next().getName());
-		assertEquals("FOO", inverseJoinColumns.next().getName());
-		assertFalse(inverseJoinColumns.hasNext());
-		
-		table.removeInverseJoinColumn(1);
-		assertSourceContains("@JoinTable(inverseJoinColumns = {@JoinColumn(name = \"BAR\"), @JoinColumn(name = \"FOO\")})", cu);
-		inverseJoinColumns = table.inverseJoinColumns();
-		assertEquals("BAR", inverseJoinColumns.next().getName());
-		assertEquals("FOO", inverseJoinColumns.next().getName());
-		assertFalse(inverseJoinColumns.hasNext());
-
-		table.removeInverseJoinColumn(0);
-		assertSourceContains("@JoinTable(inverseJoinColumns = @JoinColumn(name = \"FOO\"))", cu);
-		inverseJoinColumns = table.inverseJoinColumns();
-		assertEquals("FOO", inverseJoinColumns.next().getName());
-		assertFalse(inverseJoinColumns.hasNext());
-		
-		table.removeInverseJoinColumn(0);
-		assertSourceDoesNotContain("@JoinTable", cu);
-	}
-	
-	public void testMoveInverseJoinColumn() throws Exception {
-		ICompilationUnit cu = this.createTestJoinTableWithInverseJoinColumns();
-		JavaResourcePersistentType typeResource = buildJavaTypeResource(cu); 
-		JavaResourcePersistentAttribute attributeResource = typeResource.fields().next();
-		
-		JoinTableAnnotation table = (JoinTableAnnotation) attributeResource.getSupportingAnnotation(JPA.JOIN_TABLE);
-		table.addInverseJoinColumn(0).setName("FOO");
-		
-		Iterator<JoinColumnAnnotation> inverseJoinColumns = table.inverseJoinColumns();
-		assertEquals("FOO", inverseJoinColumns.next().getName());
-		assertEquals("BAR", inverseJoinColumns.next().getName());
-		assertNull(inverseJoinColumns.next().getName());
-		
-		table.moveInverseJoinColumn(2, 0);
-		inverseJoinColumns = table.inverseJoinColumns();
-		assertEquals("BAR", inverseJoinColumns.next().getName());
-		assertNull(inverseJoinColumns.next().getName());
-		assertEquals("FOO", inverseJoinColumns.next().getName());
-		
-		assertSourceContains("@JoinTable(inverseJoinColumns = {@JoinColumn(name = \"BAR\"), @JoinColumn, @JoinColumn(name = \"FOO\")})", cu);
-	}
-	
-	public void testMoveInverseJoinColumn2() throws Exception {
-		ICompilationUnit cu = this.createTestJoinTableWithInverseJoinColumns();
-		JavaResourcePersistentType typeResource = buildJavaTypeResource(cu);
-		JavaResourcePersistentAttribute attributeResource = typeResource.fields().next();
-		
-		JoinTableAnnotation table = (JoinTableAnnotation) attributeResource.getSupportingAnnotation(JPA.JOIN_TABLE);
-		table.addInverseJoinColumn(1).setName("FOO");
-		
-		Iterator<JoinColumnAnnotation> inverseJoinColumns = table.inverseJoinColumns();
-		assertEquals("BAR", inverseJoinColumns.next().getName());
-		assertEquals("FOO", inverseJoinColumns.next().getName());
-		assertNull(inverseJoinColumns.next().getName());
-		
-		table.moveInverseJoinColumn(0, 2);
-		inverseJoinColumns = table.inverseJoinColumns();
-		assertNull(inverseJoinColumns.next().getName());
-		assertEquals("BAR", inverseJoinColumns.next().getName());
-		assertEquals("FOO", inverseJoinColumns.next().getName());
-
-		assertSourceContains("@JoinTable(inverseJoinColumns = {@JoinColumn, @JoinColumn(name = \"BAR\"), @JoinColumn(name = \"FOO\")})", cu);
-	}
-	
-	public void testSetInverseJoinColumnName() throws Exception {
-		ICompilationUnit cu = this.createTestJoinTableWithInverseJoinColumns();
-		JavaResourcePersistentType typeResource = buildJavaTypeResource(cu); 
-		JavaResourcePersistentAttribute attributeResource = typeResource.fields().next();
-		
-		JoinTableAnnotation table = (JoinTableAnnotation) attributeResource.getSupportingAnnotation(JPA.JOIN_TABLE);
-				
-		assertEquals(2, table.inverseJoinColumnsSize());
-		
-		JoinColumnAnnotation joinColumn = table.inverseJoinColumns().next();
-		
-		assertEquals("BAR", joinColumn.getName());
-		
-		joinColumn.setName("foo");
-		assertEquals("foo", joinColumn.getName());
-		
-		assertSourceContains("@JoinTable(inverseJoinColumns = {@JoinColumn(name = \"foo\"), @JoinColumn})", cu);
-	}
-
-}
diff --git a/jpa/tests/org.eclipse.jpt.core.tests/src/org/eclipse/jpt/core/tests/internal/resource/java/JptJavaResourceTests.java b/jpa/tests/org.eclipse.jpt.core.tests/src/org/eclipse/jpt/core/tests/internal/resource/java/JptJavaResourceTests.java
deleted file mode 100644
index 065c4ac..0000000
--- a/jpa/tests/org.eclipse.jpt.core.tests/src/org/eclipse/jpt/core/tests/internal/resource/java/JptJavaResourceTests.java
+++ /dev/null
@@ -1,75 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.core.tests.internal.resource.java;
-
-import junit.framework.Test;
-import junit.framework.TestSuite;
-
-public class JptJavaResourceTests {
-
-	public static Test suite() {
-		TestSuite suite = new TestSuite(JptJavaResourceTests.class.getName());
-		suite.addTestSuite(JavaResourcePersistentTypeTests.class);
-		suite.addTestSuite(JavaResourcePersistentAttributeTests.class);
-		suite.addTestSuite(JPTToolsTests.class);
-		
-		suite.addTestSuite(AssociationOverrideTests.class);
-		suite.addTestSuite(AssociationOverridesTests.class);
-		suite.addTestSuite(AttributeOverrideTests.class);
-		suite.addTestSuite(AttributeOverridesTests.class);
-		suite.addTestSuite(BasicTests.class);
-		suite.addTestSuite(ColumnTests.class);
-		suite.addTestSuite(DiscriminatorValueTests.class);
-		suite.addTestSuite(DiscriminatorColumnTests.class);
-		suite.addTestSuite(EmbeddableTests.class);
-		suite.addTestSuite(EmbeddedTests.class);
-		suite.addTestSuite(EmbeddedIdTests.class);
-		suite.addTestSuite(EntityTests.class);
-		suite.addTestSuite(EnumeratedTests.class);
-		suite.addTestSuite(GeneratedValueTests.class);
-		suite.addTestSuite(IdClassTests.class);
-		suite.addTestSuite(IdTests.class);
-		suite.addTestSuite(InheritanceTests.class);
-		suite.addTestSuite(JoinColumnTests.class);
-		suite.addTestSuite(JoinColumnsTests.class);
-		suite.addTestSuite(JoinTableTests.class);
-		suite.addTestSuite(LobTests.class);
-		suite.addTestSuite(ManyToManyTests.class);
-		suite.addTestSuite(ManyToOneTests.class);
-		suite.addTestSuite(MapKeyTests.class);
-		suite.addTestSuite(MappedSuperclassTests.class);
-		suite.addTestSuite(NamedNativeQueryTests.class);
-		suite.addTestSuite(NamedNativeQueriesTests.class);
-		suite.addTestSuite(NamedQueryTests.class);
-		suite.addTestSuite(NamedQueriesTests.class);
-		suite.addTestSuite(OneToManyTests.class);
-		suite.addTestSuite(OneToOneTests.class);
-		suite.addTestSuite(OrderByTests.class);
-		suite.addTestSuite(PrimaryKeyJoinColumnTests.class);
-		suite.addTestSuite(PrimaryKeyJoinColumnsTests.class);
-		suite.addTestSuite(QueryHintTests.class);
-		suite.addTestSuite(SecondaryTableTests.class);
-		suite.addTestSuite(SecondaryTablesTests.class);
-		suite.addTestSuite(SequenceGeneratorTests.class);
-		suite.addTestSuite(TableGeneratorTests.class);
-		suite.addTestSuite(TableTests.class);
-		suite.addTestSuite(TemporalTests.class);
-		suite.addTestSuite(TransientTests.class);
-		suite.addTestSuite(VersionTests.class);
-			
-		return suite;
-	}
-
-	private JptJavaResourceTests() {
-		super();
-		throw new UnsupportedOperationException();
-	}
-
-}
diff --git a/jpa/tests/org.eclipse.jpt.core.tests/src/org/eclipse/jpt/core/tests/internal/resource/java/LobTests.java b/jpa/tests/org.eclipse.jpt.core.tests/src/org/eclipse/jpt/core/tests/internal/resource/java/LobTests.java
deleted file mode 100644
index 908fd5a..0000000
--- a/jpa/tests/org.eclipse.jpt.core.tests/src/org/eclipse/jpt/core/tests/internal/resource/java/LobTests.java
+++ /dev/null
@@ -1,49 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.core.tests.internal.resource.java;
-
-import java.util.Iterator;
-import org.eclipse.jdt.core.ICompilationUnit;
-import org.eclipse.jpt.core.resource.java.JPA;
-import org.eclipse.jpt.core.resource.java.JavaResourcePersistentAttribute;
-import org.eclipse.jpt.core.resource.java.JavaResourcePersistentType;
-import org.eclipse.jpt.core.resource.java.LobAnnotation;
-import org.eclipse.jpt.utility.internal.iterators.ArrayIterator;
-
-@SuppressWarnings("nls")
-public class LobTests extends JavaResourceModelTestCase {
-
-	public LobTests(String name) {
-		super(name);
-	}
-
-	private ICompilationUnit createTestLob() throws Exception {
-		return this.createTestType(new DefaultAnnotationWriter() {
-			@Override
-			public Iterator<String> imports() {
-				return new ArrayIterator<String>(JPA.LOB);
-			}
-			@Override
-			public void appendIdFieldAnnotationTo(StringBuilder sb) {
-				sb.append("@Lob");
-			}
-		});
-	}
-	
-	public void testLob() throws Exception {
-		ICompilationUnit cu = this.createTestLob();
-		JavaResourcePersistentType typeResource = buildJavaTypeResource(cu); 
-		JavaResourcePersistentAttribute attributeResource = typeResource.fields().next();
-		
-		LobAnnotation lob = (LobAnnotation) attributeResource.getSupportingAnnotation(JPA.LOB);
-		assertNotNull(lob);
-	}
-
-}
diff --git a/jpa/tests/org.eclipse.jpt.core.tests/src/org/eclipse/jpt/core/tests/internal/resource/java/ManyToManyTests.java b/jpa/tests/org.eclipse.jpt.core.tests/src/org/eclipse/jpt/core/tests/internal/resource/java/ManyToManyTests.java
deleted file mode 100644
index 91e8b65..0000000
--- a/jpa/tests/org.eclipse.jpt.core.tests/src/org/eclipse/jpt/core/tests/internal/resource/java/ManyToManyTests.java
+++ /dev/null
@@ -1,394 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.core.tests.internal.resource.java;
-
-import java.util.Iterator;
-import org.eclipse.jdt.core.ICompilationUnit;
-import org.eclipse.jpt.core.resource.java.FetchType;
-import org.eclipse.jpt.core.resource.java.JPA;
-import org.eclipse.jpt.core.resource.java.JavaResourcePersistentAttribute;
-import org.eclipse.jpt.core.resource.java.JavaResourcePersistentType;
-import org.eclipse.jpt.core.resource.java.ManyToManyAnnotation;
-import org.eclipse.jpt.utility.internal.iterators.ArrayIterator;
-
-@SuppressWarnings("nls")
-public class ManyToManyTests extends JavaResourceModelTestCase {
-	
-	public ManyToManyTests(String name) {
-		super(name);
-	}
-
-	private ICompilationUnit createTestManyToMany() throws Exception {
-		return this.createTestType(new DefaultAnnotationWriter() {
-			@Override
-			public Iterator<String> imports() {
-				return new ArrayIterator<String>(JPA.MANY_TO_MANY);
-			}
-			@Override
-			public void appendIdFieldAnnotationTo(StringBuilder sb) {
-				sb.append("@ManyToMany");
-			}
-		});
-	}
-	
-	private ICompilationUnit createTestManyToManyWithFetch() throws Exception {
-		return this.createTestType(new DefaultAnnotationWriter() {
-			@Override
-			public Iterator<String> imports() {
-				return new ArrayIterator<String>(JPA.MANY_TO_MANY, JPA.FETCH_TYPE);
-			}
-			@Override
-			public void appendIdFieldAnnotationTo(StringBuilder sb) {
-				sb.append("@ManyToMany(fetch = FetchType.EAGER)");
-			}
-		});
-	}
-	
-	private ICompilationUnit createTestManyToManyWithTargetEntity() throws Exception {
-		return this.createTestType(new DefaultAnnotationWriter() {
-			@Override
-			public Iterator<String> imports() {
-				return new ArrayIterator<String>(JPA.MANY_TO_MANY);
-			}
-			@Override
-			public void appendIdFieldAnnotationTo(StringBuilder sb) {
-				sb.append("@ManyToMany(targetEntity = AnnotationTestType.class)");
-			}
-		});
-	}
-	
-	private ICompilationUnit createTestManyToManyWithMappedBy() throws Exception {
-		return this.createTestType(new DefaultAnnotationWriter() {
-			@Override
-			public Iterator<String> imports() {
-				return new ArrayIterator<String>(JPA.MANY_TO_MANY);
-			}
-			@Override
-			public void appendIdFieldAnnotationTo(StringBuilder sb) {
-				sb.append("@ManyToMany(mappedBy = \"foo\")");
-			}
-		});
-	}
-	
-	private ICompilationUnit createTestManyToManyWithCascade() throws Exception {
-		return this.createTestType(new DefaultAnnotationWriter() {
-			@Override
-			public Iterator<String> imports() {
-				return new ArrayIterator<String>(JPA.MANY_TO_MANY, JPA.CASCADE_TYPE);
-			}
-			@Override
-			public void appendIdFieldAnnotationTo(StringBuilder sb) {
-				sb.append("@ManyToMany(cascade = CascadeType.ALL)");
-			}
-		});
-	}
-	
-	private ICompilationUnit createTestManyToManyWithMultipleCascade() throws Exception {
-		return this.createTestType(new DefaultAnnotationWriter() {
-			@Override
-			public Iterator<String> imports() {
-				return new ArrayIterator<String>(JPA.MANY_TO_MANY, JPA.CASCADE_TYPE);
-			}
-			@Override
-			public void appendIdFieldAnnotationTo(StringBuilder sb) {
-				sb.append("@ManyToMany(cascade = {CascadeType.MERGE, CascadeType.REMOVE})");
-			}
-		});
-	}
-	
-	private ICompilationUnit createTestManyToManyWithDuplicateCascade() throws Exception {
-		return this.createTestType(new DefaultAnnotationWriter() {
-			@Override
-			public Iterator<String> imports() {
-				return new ArrayIterator<String>(JPA.MANY_TO_MANY, JPA.CASCADE_TYPE);
-			}
-			@Override
-			public void appendIdFieldAnnotationTo(StringBuilder sb) {
-				sb.append("@ManyToMany(cascade = {CascadeType.MERGE, CascadeType.MERGE})");
-			}
-		});
-	}
-
-	public void testManyToMany() throws Exception {
-		ICompilationUnit cu = this.createTestManyToMany();
-		JavaResourcePersistentType typeResource = buildJavaTypeResource(cu); 
-		JavaResourcePersistentAttribute attributeResource = typeResource.fields().next();
-		
-		ManyToManyAnnotation manyToMany = (ManyToManyAnnotation) attributeResource.getMappingAnnotation(JPA.MANY_TO_MANY);
-		assertNotNull(manyToMany);
-	}
-	
-	public void testGetFetch() throws Exception {
-		ICompilationUnit cu = this.createTestManyToManyWithFetch();
-		JavaResourcePersistentType typeResource = buildJavaTypeResource(cu);
-		JavaResourcePersistentAttribute attributeResource = typeResource.fields().next();
-		
-		ManyToManyAnnotation manyToMany = (ManyToManyAnnotation) attributeResource.getMappingAnnotation(JPA.MANY_TO_MANY);
-		assertEquals(FetchType.EAGER, manyToMany.getFetch());
-	}
-
-	public void testSetFetch() throws Exception {
-		ICompilationUnit cu = this.createTestManyToManyWithFetch();
-		JavaResourcePersistentType typeResource = buildJavaTypeResource(cu);
-		JavaResourcePersistentAttribute attributeResource = typeResource.fields().next();
-		
-		ManyToManyAnnotation manyToMany = (ManyToManyAnnotation) attributeResource.getMappingAnnotation(JPA.MANY_TO_MANY);
-		assertEquals(FetchType.EAGER, manyToMany.getFetch());
-		
-		manyToMany.setFetch(FetchType.LAZY);
-		assertEquals(FetchType.LAZY, manyToMany.getFetch());
-		
-		assertSourceContains("@ManyToMany(fetch = LAZY)", cu);
-	}
-	
-	public void testSetFetchNull() throws Exception {
-		ICompilationUnit cu = this.createTestManyToManyWithFetch();
-		JavaResourcePersistentType typeResource = buildJavaTypeResource(cu);
-		JavaResourcePersistentAttribute attributeResource = typeResource.fields().next();
-		
-		ManyToManyAnnotation manyToMany = (ManyToManyAnnotation) attributeResource.getMappingAnnotation(JPA.MANY_TO_MANY);
-		assertEquals(FetchType.EAGER, manyToMany.getFetch());
-		
-		manyToMany.setFetch(null);
-		assertNull(manyToMany.getFetch());
-		
-		assertSourceContains("@ManyToMany", cu);
-		assertSourceDoesNotContain("fetch", cu);
-	}
-	
-	public void testGetTargetEntity() throws Exception {
-		ICompilationUnit cu = this.createTestManyToManyWithTargetEntity();
-		JavaResourcePersistentType typeResource = buildJavaTypeResource(cu);
-		JavaResourcePersistentAttribute attributeResource = typeResource.fields().next();
-		
-		ManyToManyAnnotation manyToMany = (ManyToManyAnnotation) attributeResource.getMappingAnnotation(JPA.MANY_TO_MANY);
-		assertEquals(TYPE_NAME, manyToMany.getTargetEntity());
-	}
-	
-	public void testSetTargetEntity() throws Exception {
-		ICompilationUnit cu = this.createTestManyToManyWithTargetEntity();
-		JavaResourcePersistentType typeResource = buildJavaTypeResource(cu);
-		JavaResourcePersistentAttribute attributeResource = typeResource.fields().next();
-		
-		ManyToManyAnnotation manyToMany = (ManyToManyAnnotation) attributeResource.getMappingAnnotation(JPA.MANY_TO_MANY);
-		assertEquals(TYPE_NAME, manyToMany.getTargetEntity());
-		
-		manyToMany.setTargetEntity("Foo");
-		
-		assertSourceContains("@ManyToMany(targetEntity = Foo.class)", cu);
-	}
-	
-	public void testSetTargetEntityNull() throws Exception {
-		ICompilationUnit cu = this.createTestManyToManyWithTargetEntity();
-		JavaResourcePersistentType typeResource = buildJavaTypeResource(cu);
-		JavaResourcePersistentAttribute attributeResource = typeResource.fields().next();
-		
-		ManyToManyAnnotation manyToMany = (ManyToManyAnnotation) attributeResource.getMappingAnnotation(JPA.MANY_TO_MANY);
-		assertEquals(TYPE_NAME, manyToMany.getTargetEntity());
-		
-		manyToMany.setTargetEntity(null);
-		
-		assertSourceContains("@ManyToMany", cu);
-		assertSourceDoesNotContain("targetEntity", cu);
-	}
-	
-	
-	public void testGetFullyQualifiedTargetEntity() throws Exception {
-		ICompilationUnit cu = this.createTestManyToManyWithTargetEntity();
-		JavaResourcePersistentType typeResource = buildJavaTypeResource(cu);
-		JavaResourcePersistentAttribute attributeResource = typeResource.fields().next();
-		
-		ManyToManyAnnotation manyToMany = (ManyToManyAnnotation) attributeResource.getMappingAnnotation(JPA.MANY_TO_MANY);
-		assertEquals(FULLY_QUALIFIED_TYPE_NAME, manyToMany.getFullyQualifiedTargetEntityClassName());
-		
-		manyToMany.setTargetEntity("Foo");
-		
-		assertSourceContains("@ManyToMany(targetEntity = Foo.class)", cu);
-		
-		assertEquals("Foo", manyToMany.getTargetEntity());
-		
-		assertEquals("Foo", manyToMany.getFullyQualifiedTargetEntityClassName()); //bug 196200 changed this
-	}
-	
-	public void testGetMappedBy() throws Exception {
-		ICompilationUnit cu = this.createTestManyToManyWithMappedBy();
-		JavaResourcePersistentType typeResource = buildJavaTypeResource(cu); 
-		JavaResourcePersistentAttribute attributeResource = typeResource.fields().next();
-		
-		ManyToManyAnnotation manyToMany = (ManyToManyAnnotation) attributeResource.getMappingAnnotation(JPA.MANY_TO_MANY);
-		assertEquals("foo", manyToMany.getMappedBy());
-	}
-
-	public void testGetMappedByNull() throws Exception {
-		ICompilationUnit cu = this.createTestManyToMany();
-		JavaResourcePersistentType typeResource = buildJavaTypeResource(cu); 
-		JavaResourcePersistentAttribute attributeResource = typeResource.fields().next();
-		
-		ManyToManyAnnotation manyToMany = (ManyToManyAnnotation) attributeResource.getMappingAnnotation(JPA.MANY_TO_MANY);
-		assertEquals(null, manyToMany.getMappedBy());
-	}
-
-	public void testSetMappedBy() throws Exception {
-		ICompilationUnit cu = this.createTestManyToMany();
-		JavaResourcePersistentType typeResource = buildJavaTypeResource(cu); 
-		JavaResourcePersistentAttribute attributeResource = typeResource.fields().next();
-		
-		ManyToManyAnnotation manyToMany = (ManyToManyAnnotation) attributeResource.getMappingAnnotation(JPA.MANY_TO_MANY);
-		assertNull(manyToMany.getMappedBy());
-		manyToMany.setMappedBy("bar");
-		assertEquals("bar", manyToMany.getMappedBy());
-		
-		assertSourceContains("@ManyToMany(mappedBy = \"bar\")", cu);
-	}
-	
-	public void testSetMappedByNull() throws Exception {
-		ICompilationUnit cu = this.createTestManyToManyWithMappedBy();
-		JavaResourcePersistentType typeResource = buildJavaTypeResource(cu); 
-		JavaResourcePersistentAttribute attributeResource = typeResource.fields().next();
-		
-		ManyToManyAnnotation manyToMany = (ManyToManyAnnotation) attributeResource.getMappingAnnotation(JPA.MANY_TO_MANY);
-		assertEquals("foo", manyToMany.getMappedBy());
-		
-		manyToMany.setMappedBy(null);
-		assertNull(manyToMany.getMappedBy());
-		
-		assertSourceContains("@ManyToMany", cu);
-		assertSourceDoesNotContain("mappedBy", cu);
-	}
-	
-	public void testSetCascadeAll() throws Exception {
-		ICompilationUnit cu = this.createTestManyToMany();
-		JavaResourcePersistentType typeResource = buildJavaTypeResource(cu); 
-		JavaResourcePersistentAttribute attributeResource = typeResource.fields().next();
-		
-		ManyToManyAnnotation manyToMany = (ManyToManyAnnotation) attributeResource.getMappingAnnotation(JPA.MANY_TO_MANY);
-		assertFalse(manyToMany.isCascadeAll());
-	
-		manyToMany.setCascadeAll(true);
-		assertSourceContains("@ManyToMany(cascade = ALL)", cu);
-		
-		assertTrue(manyToMany.isCascadeAll());
-	}
-	
-	public void testSetCascadeMerge() throws Exception {
-		ICompilationUnit cu = this.createTestManyToMany();
-		JavaResourcePersistentType typeResource = buildJavaTypeResource(cu); 
-		JavaResourcePersistentAttribute attributeResource = typeResource.fields().next();
-		
-		ManyToManyAnnotation manyToMany = (ManyToManyAnnotation) attributeResource.getMappingAnnotation(JPA.MANY_TO_MANY);
-		assertFalse(manyToMany.isCascadeMerge());
-	
-		manyToMany.setCascadeMerge(true);
-		assertSourceContains("@ManyToMany(cascade = MERGE)", cu);
-		
-		assertTrue(manyToMany.isCascadeMerge());
-	}
-	
-	public void testSetCascadePersist() throws Exception {
-		ICompilationUnit cu = this.createTestManyToMany();
-		JavaResourcePersistentType typeResource = buildJavaTypeResource(cu); 
-		JavaResourcePersistentAttribute attributeResource = typeResource.fields().next();
-		
-		ManyToManyAnnotation manyToMany = (ManyToManyAnnotation) attributeResource.getMappingAnnotation(JPA.MANY_TO_MANY);
-		assertFalse(manyToMany.isCascadePersist());
-	
-		manyToMany.setCascadePersist(true);
-		assertSourceContains("@ManyToMany(cascade = PERSIST)", cu);
-		
-		assertTrue(manyToMany.isCascadePersist());
-	}
-	
-	public void testSetCascadeRemove() throws Exception {
-		ICompilationUnit cu = this.createTestManyToMany();
-		JavaResourcePersistentType typeResource = buildJavaTypeResource(cu); 
-		JavaResourcePersistentAttribute attributeResource = typeResource.fields().next();
-		
-		ManyToManyAnnotation manyToMany = (ManyToManyAnnotation) attributeResource.getMappingAnnotation(JPA.MANY_TO_MANY);
-		assertFalse(manyToMany.isCascadeRemove());
-	
-		manyToMany.setCascadeRemove(true);
-		assertSourceContains("@ManyToMany(cascade = REMOVE)", cu);
-		
-		assertTrue(manyToMany.isCascadeRemove());
-	}
-
-	public void testSetCascadeRefresh() throws Exception {
-		ICompilationUnit cu = this.createTestManyToMany();
-		JavaResourcePersistentType typeResource = buildJavaTypeResource(cu); 
-		JavaResourcePersistentAttribute attributeResource = typeResource.fields().next();
-		
-		ManyToManyAnnotation manyToMany = (ManyToManyAnnotation) attributeResource.getMappingAnnotation(JPA.MANY_TO_MANY);
-		assertFalse(manyToMany.isCascadeRefresh());
-	
-		manyToMany.setCascadeRefresh(true);
-		assertSourceContains("@ManyToMany(cascade = REFRESH)", cu);
-		
-		assertTrue(manyToMany.isCascadeRefresh());
-	}
-
-	public void testCascadeMoreThanOnce() throws Exception {
-		ICompilationUnit cu = this.createTestManyToManyWithCascade();
-		JavaResourcePersistentType typeResource = buildJavaTypeResource(cu); 
-		JavaResourcePersistentAttribute attributeResource = typeResource.fields().next();
-		
-		ManyToManyAnnotation manyToMany = (ManyToManyAnnotation) attributeResource.getMappingAnnotation(JPA.MANY_TO_MANY);
-		assertTrue(manyToMany.isCascadeAll());
-		
-		manyToMany.setCascadeAll(true);
-		assertTrue(manyToMany.isCascadeAll());
-		//a second CascadeType.All should not have been added
-		assertSourceContains("@ManyToMany(cascade = CascadeType.ALL)", cu);
-		
-		manyToMany.setCascadeAll(false);
-		assertFalse(manyToMany.isCascadeAll());
-		
-		assertSourceDoesNotContain("cascade", cu);
-		
-		//test setting cascadeAll to false again, should just do nothing
-		manyToMany.setCascadeAll(false);
-		assertFalse(manyToMany.isCascadeAll());
-		
-		assertSourceDoesNotContain("cascade", cu);
-	}
-	
-	public void testDuplicateCascade() throws Exception {
-		ICompilationUnit cu = this.createTestManyToManyWithDuplicateCascade();
-		JavaResourcePersistentType typeResource = buildJavaTypeResource(cu); 
-		JavaResourcePersistentAttribute attributeResource = typeResource.fields().next();
-		
-		ManyToManyAnnotation manyToMany = (ManyToManyAnnotation) attributeResource.getMappingAnnotation(JPA.MANY_TO_MANY);
-		assertTrue(manyToMany.isCascadeMerge());
-		
-		manyToMany.setCascadeMerge(false); //TODO should the resource model handle this and remove both MERGE 
-										  //settings instead of having to set it false twice?
-		assertTrue(manyToMany.isCascadeMerge());
-		
-		manyToMany.setCascadeMerge(false);
-		assertFalse(manyToMany.isCascadeMerge());
-		
-		assertSourceDoesNotContain("cascade", cu);
-	}
-	
-	public void testMultipleCascade() throws Exception {
-		ICompilationUnit cu = this.createTestManyToManyWithMultipleCascade();
-		JavaResourcePersistentType typeResource = buildJavaTypeResource(cu); 
-		JavaResourcePersistentAttribute attributeResource = typeResource.fields().next();
-		
-		ManyToManyAnnotation manyToMany = (ManyToManyAnnotation) attributeResource.getMappingAnnotation(JPA.MANY_TO_MANY);
-		assertTrue(manyToMany.isCascadeMerge());
-		assertTrue(manyToMany.isCascadeRemove());
-		
-		manyToMany.setCascadeMerge(false);
-		assertSourceContains("@ManyToMany(cascade = REMOVE)", cu);
-		
-		manyToMany.setCascadeRemove(false);		
-		assertSourceDoesNotContain("cascade", cu);
-	}
-}
diff --git a/jpa/tests/org.eclipse.jpt.core.tests/src/org/eclipse/jpt/core/tests/internal/resource/java/ManyToOneTests.java b/jpa/tests/org.eclipse.jpt.core.tests/src/org/eclipse/jpt/core/tests/internal/resource/java/ManyToOneTests.java
deleted file mode 100644
index d11ab14..0000000
--- a/jpa/tests/org.eclipse.jpt.core.tests/src/org/eclipse/jpt/core/tests/internal/resource/java/ManyToOneTests.java
+++ /dev/null
@@ -1,387 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.core.tests.internal.resource.java;
-
-import java.util.Iterator;
-import org.eclipse.jdt.core.ICompilationUnit;
-import org.eclipse.jpt.core.resource.java.FetchType;
-import org.eclipse.jpt.core.resource.java.JPA;
-import org.eclipse.jpt.core.resource.java.JavaResourcePersistentAttribute;
-import org.eclipse.jpt.core.resource.java.JavaResourcePersistentType;
-import org.eclipse.jpt.core.resource.java.ManyToOneAnnotation;
-import org.eclipse.jpt.utility.internal.iterators.ArrayIterator;
-
-@SuppressWarnings("nls")
-public class ManyToOneTests extends JavaResourceModelTestCase {
-	
-	public ManyToOneTests(String name) {
-		super(name);
-	}
-
-	private ICompilationUnit createTestManyToOne() throws Exception {
-		return this.createTestType(new DefaultAnnotationWriter() {
-			@Override
-			public Iterator<String> imports() {
-				return new ArrayIterator<String>(JPA.MANY_TO_ONE);
-			}
-			@Override
-			public void appendIdFieldAnnotationTo(StringBuilder sb) {
-				sb.append("@ManyToOne");
-			}
-		});
-	}
-	
-	private ICompilationUnit createTestManyToOneWithFetch() throws Exception {
-		return this.createTestType(new DefaultAnnotationWriter() {
-			@Override
-			public Iterator<String> imports() {
-				return new ArrayIterator<String>(JPA.MANY_TO_ONE, JPA.FETCH_TYPE);
-			}
-			@Override
-			public void appendIdFieldAnnotationTo(StringBuilder sb) {
-				sb.append("@ManyToOne(fetch = FetchType.EAGER)");
-			}
-		});
-	}
-
-	private ICompilationUnit createTestManyToOneWithTargetEntity() throws Exception {
-		return this.createTestType(new DefaultAnnotationWriter() {
-			@Override
-			public Iterator<String> imports() {
-				return new ArrayIterator<String>(JPA.MANY_TO_ONE);
-			}
-			@Override
-			public void appendIdFieldAnnotationTo(StringBuilder sb) {
-				sb.append("@ManyToOne(targetEntity = AnnotationTestType.class)");
-			}
-		});
-	}
-
-	private ICompilationUnit createTestManyToOneWithOptional() throws Exception {
-		return this.createTestType(new DefaultAnnotationWriter() {
-			@Override
-			public Iterator<String> imports() {
-				return new ArrayIterator<String>(JPA.MANY_TO_ONE);
-			}
-			@Override
-			public void appendIdFieldAnnotationTo(StringBuilder sb) {
-				sb.append("@ManyToOne(optional = true)");
-			}
-		});
-	}
-	
-	private ICompilationUnit createTestManyToOneWithCascade() throws Exception {
-		return this.createTestType(new DefaultAnnotationWriter() {
-			@Override
-			public Iterator<String> imports() {
-				return new ArrayIterator<String>(JPA.MANY_TO_ONE, JPA.CASCADE_TYPE);
-			}
-			@Override
-			public void appendIdFieldAnnotationTo(StringBuilder sb) {
-				sb.append("@ManyToOne(cascade = CascadeType.ALL)");
-			}
-		});
-	}
-	
-	private ICompilationUnit createTestManyToOneWithMultipleCascade() throws Exception {
-		return this.createTestType(new DefaultAnnotationWriter() {
-			@Override
-			public Iterator<String> imports() {
-				return new ArrayIterator<String>(JPA.MANY_TO_ONE, JPA.CASCADE_TYPE);
-			}
-			@Override
-			public void appendIdFieldAnnotationTo(StringBuilder sb) {
-				sb.append("@ManyToOne(cascade = {CascadeType.MERGE, CascadeType.REMOVE})");
-			}
-		});
-	}
-	
-	private ICompilationUnit createTestManyToOneWithDuplicateCascade() throws Exception {
-		return this.createTestType(new DefaultAnnotationWriter() {
-			@Override
-			public Iterator<String> imports() {
-				return new ArrayIterator<String>(JPA.MANY_TO_ONE, JPA.CASCADE_TYPE);
-			}
-			@Override
-			public void appendIdFieldAnnotationTo(StringBuilder sb) {
-				sb.append("@ManyToOne(cascade = {CascadeType.MERGE, CascadeType.MERGE})");
-			}
-		});
-	}
-
-	public void testManyToOne() throws Exception {
-		ICompilationUnit cu = this.createTestManyToOne();
-		JavaResourcePersistentType typeResource = buildJavaTypeResource(cu); 
-		JavaResourcePersistentAttribute attributeResource = typeResource.fields().next();
-		
-		ManyToOneAnnotation manyToOne = (ManyToOneAnnotation) attributeResource.getMappingAnnotation(JPA.MANY_TO_ONE);
-		assertNotNull(manyToOne);
-	}
-	
-	public void testGetFetch() throws Exception {
-		ICompilationUnit cu = this.createTestManyToOneWithFetch();
-		JavaResourcePersistentType typeResource = buildJavaTypeResource(cu);
-		JavaResourcePersistentAttribute attributeResource = typeResource.fields().next();
-		
-		ManyToOneAnnotation manyToOne = (ManyToOneAnnotation) attributeResource.getMappingAnnotation(JPA.MANY_TO_ONE);
-		assertEquals(FetchType.EAGER, manyToOne.getFetch());
-	}
-
-	public void testSetFetch() throws Exception {
-		ICompilationUnit cu = this.createTestManyToOneWithFetch();
-		JavaResourcePersistentType typeResource = buildJavaTypeResource(cu);
-		JavaResourcePersistentAttribute attributeResource = typeResource.fields().next();
-		
-		ManyToOneAnnotation manyToOne = (ManyToOneAnnotation) attributeResource.getMappingAnnotation(JPA.MANY_TO_ONE);
-		assertEquals(FetchType.EAGER, manyToOne.getFetch());
-		
-		manyToOne.setFetch(FetchType.LAZY);
-		assertEquals(FetchType.LAZY, manyToOne.getFetch());
-		
-		assertSourceContains("@ManyToOne(fetch = LAZY)", cu);
-	}
-	
-	public void testSetFetchNull() throws Exception {
-		ICompilationUnit cu = this.createTestManyToOneWithFetch();
-		JavaResourcePersistentType typeResource = buildJavaTypeResource(cu);
-		JavaResourcePersistentAttribute attributeResource = typeResource.fields().next();
-		
-		ManyToOneAnnotation manyToOne = (ManyToOneAnnotation) attributeResource.getMappingAnnotation(JPA.MANY_TO_ONE);
-		assertEquals(FetchType.EAGER, manyToOne.getFetch());
-		
-		manyToOne.setFetch(null);
-		assertNull(manyToOne.getFetch());
-		
-		assertSourceContains("@ManyToOne", cu);
-		assertSourceDoesNotContain("fetch", cu);
-	}
-	
-	
-	public void testGetTargetEntity() throws Exception {
-		ICompilationUnit cu = this.createTestManyToOneWithTargetEntity();
-		JavaResourcePersistentType typeResource = buildJavaTypeResource(cu);
-		JavaResourcePersistentAttribute attributeResource = typeResource.fields().next();
-		
-		ManyToOneAnnotation manyToOne = (ManyToOneAnnotation) attributeResource.getMappingAnnotation(JPA.MANY_TO_ONE);
-		assertEquals(TYPE_NAME, manyToOne.getTargetEntity());
-	}
-	
-	public void testSetTargetEntity() throws Exception {
-		ICompilationUnit cu = this.createTestManyToOneWithTargetEntity();
-		JavaResourcePersistentType typeResource = buildJavaTypeResource(cu);
-		JavaResourcePersistentAttribute attributeResource = typeResource.fields().next();
-		
-		ManyToOneAnnotation manyToOne = (ManyToOneAnnotation) attributeResource.getMappingAnnotation(JPA.MANY_TO_ONE);
-		assertEquals(TYPE_NAME, manyToOne.getTargetEntity());
-		
-		manyToOne.setTargetEntity("Foo");
-		
-		assertSourceContains("@ManyToOne(targetEntity = Foo.class)", cu);
-	}
-	
-	public void testSetTargetEntityNull() throws Exception {
-		ICompilationUnit cu = this.createTestManyToOneWithTargetEntity();
-		JavaResourcePersistentType typeResource = buildJavaTypeResource(cu);
-		JavaResourcePersistentAttribute attributeResource = typeResource.fields().next();
-		
-		ManyToOneAnnotation manyToOne = (ManyToOneAnnotation) attributeResource.getMappingAnnotation(JPA.MANY_TO_ONE);
-		assertEquals(TYPE_NAME, manyToOne.getTargetEntity());
-		
-		manyToOne.setTargetEntity(null);
-		
-		assertSourceContains("@ManyToOne", cu);
-		assertSourceDoesNotContain("targetEntity", cu);
-	}
-	
-	
-	public void testGetFullyQualifiedTargetEntity() throws Exception {
-		ICompilationUnit cu = this.createTestManyToOneWithTargetEntity();
-		JavaResourcePersistentType typeResource = buildJavaTypeResource(cu);
-		JavaResourcePersistentAttribute attributeResource = typeResource.fields().next();
-		
-		ManyToOneAnnotation manyToOne = (ManyToOneAnnotation) attributeResource.getMappingAnnotation(JPA.MANY_TO_ONE);
-		assertEquals(FULLY_QUALIFIED_TYPE_NAME, manyToOne.getFullyQualifiedTargetEntityClassName());
-		
-		manyToOne.setTargetEntity("Foo");
-		
-		assertSourceContains("@ManyToOne(targetEntity = Foo.class)", cu);
-		
-		assertEquals("Foo", manyToOne.getTargetEntity());
-		
-		assertEquals("Foo", manyToOne.getFullyQualifiedTargetEntityClassName());//bug 196200 changed this
-	}
-	
-	public void testGetOptional() throws Exception {
-		ICompilationUnit cu = this.createTestManyToOneWithOptional();
-		JavaResourcePersistentType typeResource = buildJavaTypeResource(cu);
-		JavaResourcePersistentAttribute attributeResource = typeResource.fields().next();
-		
-		ManyToOneAnnotation manyToOne = (ManyToOneAnnotation) attributeResource.getMappingAnnotation(JPA.MANY_TO_ONE);
-		assertEquals(Boolean.TRUE, manyToOne.getOptional());
-	}
-
-	public void testSetOptional() throws Exception {
-		ICompilationUnit cu = this.createTestManyToOneWithOptional();
-		JavaResourcePersistentType typeResource = buildJavaTypeResource(cu);
-		JavaResourcePersistentAttribute attributeResource = typeResource.fields().next();
-		
-		ManyToOneAnnotation manyToOne = (ManyToOneAnnotation) attributeResource.getMappingAnnotation(JPA.MANY_TO_ONE);
-		assertEquals(Boolean.TRUE, manyToOne.getOptional());
-		
-		manyToOne.setOptional(Boolean.FALSE);
-		assertEquals(Boolean.FALSE, manyToOne.getOptional());
-		
-		assertSourceContains("@ManyToOne(optional = false)", cu);
-	}
-	
-	public void testSetOptionalNull() throws Exception {
-		ICompilationUnit cu = this.createTestManyToOneWithOptional();
-		JavaResourcePersistentType typeResource = buildJavaTypeResource(cu);
-		JavaResourcePersistentAttribute attributeResource = typeResource.fields().next();
-		
-		ManyToOneAnnotation manyToOne = (ManyToOneAnnotation) attributeResource.getMappingAnnotation(JPA.MANY_TO_ONE);
-		assertEquals(Boolean.TRUE, manyToOne.getOptional());
-		
-		manyToOne.setOptional(null);
-		assertNull(manyToOne.getOptional());
-		
-		assertSourceContains("@ManyToOne", cu);
-		assertSourceDoesNotContain("optional", cu);
-	}
-
-	public void testSetCascadeAll() throws Exception {
-		ICompilationUnit cu = this.createTestManyToOne();
-		JavaResourcePersistentType typeResource = buildJavaTypeResource(cu); 
-		JavaResourcePersistentAttribute attributeResource = typeResource.fields().next();
-		
-		ManyToOneAnnotation manyToOne = (ManyToOneAnnotation) attributeResource.getMappingAnnotation(JPA.MANY_TO_ONE);
-		assertFalse(manyToOne.isCascadeAll());
-	
-		manyToOne.setCascadeAll(true);
-		assertSourceContains("@ManyToOne(cascade = ALL)", cu);
-		
-		assertTrue(manyToOne.isCascadeAll());
-	}
-	
-	public void testSetCascadeMerge() throws Exception {
-		ICompilationUnit cu = this.createTestManyToOne();
-		JavaResourcePersistentType typeResource = buildJavaTypeResource(cu); 
-		JavaResourcePersistentAttribute attributeResource = typeResource.fields().next();
-		
-		ManyToOneAnnotation manyToOne = (ManyToOneAnnotation) attributeResource.getMappingAnnotation(JPA.MANY_TO_ONE);
-		assertFalse(manyToOne.isCascadeMerge());
-	
-		manyToOne.setCascadeMerge(true);
-		assertSourceContains("@ManyToOne(cascade = MERGE)", cu);
-		
-		assertTrue(manyToOne.isCascadeMerge());
-	}
-	
-	public void testSetCascadePersist() throws Exception {
-		ICompilationUnit cu = this.createTestManyToOne();
-		JavaResourcePersistentType typeResource = buildJavaTypeResource(cu); 
-		JavaResourcePersistentAttribute attributeResource = typeResource.fields().next();
-		
-		ManyToOneAnnotation manyToOne = (ManyToOneAnnotation) attributeResource.getMappingAnnotation(JPA.MANY_TO_ONE);
-		assertFalse(manyToOne.isCascadePersist());
-	
-		manyToOne.setCascadePersist(true);
-		assertSourceContains("@ManyToOne(cascade = PERSIST)", cu);
-		
-		assertTrue(manyToOne.isCascadePersist());
-	}
-	
-	public void testSetCascadeRemove() throws Exception {
-		ICompilationUnit cu = this.createTestManyToOne();
-		JavaResourcePersistentType typeResource = buildJavaTypeResource(cu); 
-		JavaResourcePersistentAttribute attributeResource = typeResource.fields().next();
-		
-		ManyToOneAnnotation manyToOne = (ManyToOneAnnotation) attributeResource.getMappingAnnotation(JPA.MANY_TO_ONE);
-		assertFalse(manyToOne.isCascadeRemove());
-	
-		manyToOne.setCascadeRemove(true);
-		assertSourceContains("@ManyToOne(cascade = REMOVE)", cu);
-		
-		assertTrue(manyToOne.isCascadeRemove());
-	}
-
-	public void testSetCascadeRefresh() throws Exception {
-		ICompilationUnit cu = this.createTestManyToOne();
-		JavaResourcePersistentType typeResource = buildJavaTypeResource(cu); 
-		JavaResourcePersistentAttribute attributeResource = typeResource.fields().next();
-		
-		ManyToOneAnnotation manyToOne = (ManyToOneAnnotation) attributeResource.getMappingAnnotation(JPA.MANY_TO_ONE);
-		assertFalse(manyToOne.isCascadeRefresh());
-	
-		manyToOne.setCascadeRefresh(true);
-		assertSourceContains("@ManyToOne(cascade = REFRESH)", cu);
-		
-		assertTrue(manyToOne.isCascadeRefresh());
-	}
-
-	public void testCascadeMoreThanOnce() throws Exception {
-		ICompilationUnit cu = this.createTestManyToOneWithCascade();
-		JavaResourcePersistentType typeResource = buildJavaTypeResource(cu); 
-		JavaResourcePersistentAttribute attributeResource = typeResource.fields().next();
-		
-		ManyToOneAnnotation manyToOne = (ManyToOneAnnotation) attributeResource.getMappingAnnotation(JPA.MANY_TO_ONE);
-		assertTrue(manyToOne.isCascadeAll());
-		
-		manyToOne.setCascadeAll(true);
-		assertTrue(manyToOne.isCascadeAll());
-		//a second CascadeType.All should not have been added
-		assertSourceContains("@ManyToOne(cascade = CascadeType.ALL)", cu);
-		
-		manyToOne.setCascadeAll(false);
-		assertFalse(manyToOne.isCascadeAll());
-		
-		assertSourceDoesNotContain("cascade", cu);
-		
-		//test setting cascadeAll to false again, should just do nothing
-		manyToOne.setCascadeAll(false);
-		assertFalse(manyToOne.isCascadeAll());
-		
-		assertSourceDoesNotContain("cascade", cu);
-	}
-	
-	public void testDuplicateCascade() throws Exception {
-		ICompilationUnit cu = this.createTestManyToOneWithDuplicateCascade();
-		JavaResourcePersistentType typeResource = buildJavaTypeResource(cu); 
-		JavaResourcePersistentAttribute attributeResource = typeResource.fields().next();
-		
-		ManyToOneAnnotation manyToOne = (ManyToOneAnnotation) attributeResource.getMappingAnnotation(JPA.MANY_TO_ONE);
-		assertTrue(manyToOne.isCascadeMerge());
-		
-		manyToOne.setCascadeMerge(false);//TODO should the resource model handle this and remove both MERGE 
-										//settings instead of having to set it false twice?
-		assertTrue(manyToOne.isCascadeMerge());
-		
-		manyToOne.setCascadeMerge(false);
-		assertFalse(manyToOne.isCascadeMerge());
-		
-		assertSourceDoesNotContain("cascade", cu);
-	}
-	
-	public void testMultipleCascade() throws Exception {
-		ICompilationUnit cu = this.createTestManyToOneWithMultipleCascade();
-		JavaResourcePersistentType typeResource = buildJavaTypeResource(cu); 
-		JavaResourcePersistentAttribute attributeResource = typeResource.fields().next();
-		
-		ManyToOneAnnotation manyToOne = (ManyToOneAnnotation) attributeResource.getMappingAnnotation(JPA.MANY_TO_ONE);
-		assertTrue(manyToOne.isCascadeMerge());
-		assertTrue(manyToOne.isCascadeRemove());
-		
-		manyToOne.setCascadeMerge(false);
-		assertSourceContains("@ManyToOne(cascade = REMOVE)", cu);
-		
-		manyToOne.setCascadeRemove(false);		
-		assertSourceDoesNotContain("cascade", cu);
-	}
-}
diff --git a/jpa/tests/org.eclipse.jpt.core.tests/src/org/eclipse/jpt/core/tests/internal/resource/java/MapKeyTests.java b/jpa/tests/org.eclipse.jpt.core.tests/src/org/eclipse/jpt/core/tests/internal/resource/java/MapKeyTests.java
deleted file mode 100644
index 409de12..0000000
--- a/jpa/tests/org.eclipse.jpt.core.tests/src/org/eclipse/jpt/core/tests/internal/resource/java/MapKeyTests.java
+++ /dev/null
@@ -1,88 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.core.tests.internal.resource.java;
-
-import java.util.Iterator;
-import org.eclipse.jdt.core.ICompilationUnit;
-import org.eclipse.jpt.core.resource.java.JPA;
-import org.eclipse.jpt.core.resource.java.JavaResourcePersistentAttribute;
-import org.eclipse.jpt.core.resource.java.JavaResourcePersistentType;
-import org.eclipse.jpt.core.resource.java.MapKeyAnnotation;
-import org.eclipse.jpt.utility.internal.iterators.ArrayIterator;
-
-@SuppressWarnings("nls")
-public class MapKeyTests extends JavaResourceModelTestCase {
-
-	public MapKeyTests(String name) {
-		super(name);
-	}
-
-	private ICompilationUnit createTestMapKey() throws Exception {
-		return this.createTestType(new DefaultAnnotationWriter() {
-			@Override
-			public Iterator<String> imports() {
-				return new ArrayIterator<String>(JPA.MAP_KEY);
-			}
-			@Override
-			public void appendIdFieldAnnotationTo(StringBuilder sb) {
-				sb.append("@MapKey");
-			}
-		});
-	}
-	
-	private ICompilationUnit createTestMapKeyWithName() throws Exception {
-		return this.createTestType(new DefaultAnnotationWriter() {
-			@Override
-			public Iterator<String> imports() {
-				return new ArrayIterator<String>(JPA.MAP_KEY);
-			}
-			@Override
-			public void appendIdFieldAnnotationTo(StringBuilder sb) {
-				sb.append("@MapKey(name = \"key\")");
-			}
-		});
-	}
-
-	public void testMapKey() throws Exception {
-		ICompilationUnit cu = this.createTestMapKey();
-		JavaResourcePersistentType typeResource = buildJavaTypeResource(cu); 
-		JavaResourcePersistentAttribute attributeResource = typeResource.fields().next();
-		
-		MapKeyAnnotation mapKey = (MapKeyAnnotation) attributeResource.getSupportingAnnotation(JPA.MAP_KEY);
-		assertNotNull(mapKey);
-	}
-	
-	public void testGetName() throws Exception {
-		ICompilationUnit cu = this.createTestMapKeyWithName();
-		JavaResourcePersistentType typeResource = buildJavaTypeResource(cu); 
-		JavaResourcePersistentAttribute attributeResource = typeResource.fields().next();
-		
-		MapKeyAnnotation mapKey = (MapKeyAnnotation) attributeResource.getSupportingAnnotation(JPA.MAP_KEY);
-		assertEquals("key", mapKey.getName());
-	}
-	
-	public void testSetName() throws Exception {
-		ICompilationUnit cu = this.createTestMapKey();
-		JavaResourcePersistentType typeResource = buildJavaTypeResource(cu); 
-		JavaResourcePersistentAttribute attributeResource = typeResource.fields().next();
-
-		MapKeyAnnotation mapKey = (MapKeyAnnotation) attributeResource.getSupportingAnnotation(JPA.MAP_KEY);
-
-		mapKey.setName("foo");
-	
-		assertSourceContains("@MapKey(name = \"foo\")", cu);
-		
-		mapKey.setName(null);
-		
-		assertSourceContains("@MapKey", cu);
-		assertSourceDoesNotContain("@MapKey(name = \"foo\")", cu);
-	}
-
-}
diff --git a/jpa/tests/org.eclipse.jpt.core.tests/src/org/eclipse/jpt/core/tests/internal/resource/java/MappedSuperclassTests.java b/jpa/tests/org.eclipse.jpt.core.tests/src/org/eclipse/jpt/core/tests/internal/resource/java/MappedSuperclassTests.java
deleted file mode 100644
index 5f20d3d..0000000
--- a/jpa/tests/org.eclipse.jpt.core.tests/src/org/eclipse/jpt/core/tests/internal/resource/java/MappedSuperclassTests.java
+++ /dev/null
@@ -1,74 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.core.tests.internal.resource.java;
-
-import java.util.Iterator;
-import org.eclipse.jdt.core.ICompilationUnit;
-import org.eclipse.jpt.core.resource.java.EntityAnnotation;
-import org.eclipse.jpt.core.resource.java.JPA;
-import org.eclipse.jpt.core.resource.java.JavaResourceNode;
-import org.eclipse.jpt.core.resource.java.JavaResourcePersistentType;
-import org.eclipse.jpt.core.resource.java.MappedSuperclassAnnotation;
-import org.eclipse.jpt.utility.internal.iterators.ArrayIterator;
-
-@SuppressWarnings("nls")
-public class MappedSuperclassTests extends JavaResourceModelTestCase {
-
-	public MappedSuperclassTests(String name) {
-		super(name);
-	}
-
-	private ICompilationUnit createTestMappedSuperclass() throws Exception {
-		return this.createTestType(new DefaultAnnotationWriter() {
-			@Override
-			public Iterator<String> imports() {
-				return new ArrayIterator<String>(JPA.MAPPED_SUPERCLASS);
-			}
-			@Override
-			public void appendTypeAnnotationTo(StringBuilder sb) {
-				sb.append("@MappedSuperclass");
-			}
-		});
-	}
-	
-	private ICompilationUnit createTestMappedSuperclassAndEntity() throws Exception {
-		return this.createTestType(new DefaultAnnotationWriter() {
-			@Override
-			public Iterator<String> imports() {
-				return new ArrayIterator<String>(JPA.MAPPED_SUPERCLASS, JPA.ENTITY);
-			}
-			@Override
-			public void appendTypeAnnotationTo(StringBuilder sb) {
-				sb.append("@MappedSuperclass");
-				sb.append("@Entity");
-			}
-		});
-	}
-
-	public void testMappedSuperclass() throws Exception {
-		ICompilationUnit cu = this.createTestMappedSuperclass();
-		JavaResourcePersistentType typeResource = buildJavaTypeResource(cu); 
-		
-		JavaResourceNode mappingAnnotation = typeResource.getMappingAnnotation();
-		assertTrue(mappingAnnotation instanceof MappedSuperclassAnnotation);
-	}
-	
-	public void testMappedSuperclassAndEntity() throws Exception {
-		ICompilationUnit cu = this.createTestMappedSuperclassAndEntity();
-		JavaResourcePersistentType typeResource = buildJavaTypeResource(cu); 
-		
-		JavaResourceNode mappingAnnotation = typeResource.getMappingAnnotation();
-		assertTrue(mappingAnnotation instanceof EntityAnnotation);
-		
-		MappedSuperclassAnnotation mappedSuperclass = (MappedSuperclassAnnotation) typeResource.getMappingAnnotation(JPA.MAPPED_SUPERCLASS);
-		assertNotNull(mappedSuperclass);
-	}
-
-}
diff --git a/jpa/tests/org.eclipse.jpt.core.tests/src/org/eclipse/jpt/core/tests/internal/resource/java/NamedNativeQueriesTests.java b/jpa/tests/org.eclipse.jpt.core.tests/src/org/eclipse/jpt/core/tests/internal/resource/java/NamedNativeQueriesTests.java
deleted file mode 100644
index 274a1b6..0000000
--- a/jpa/tests/org.eclipse.jpt.core.tests/src/org/eclipse/jpt/core/tests/internal/resource/java/NamedNativeQueriesTests.java
+++ /dev/null
@@ -1,421 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.core.tests.internal.resource.java;
-
-import java.util.Iterator;
-
-import org.eclipse.jdt.core.ICompilationUnit;
-import org.eclipse.jpt.core.resource.java.JPA;
-import org.eclipse.jpt.core.resource.java.JavaResourcePersistentType;
-import org.eclipse.jpt.core.resource.java.NamedNativeQueriesAnnotation;
-import org.eclipse.jpt.core.resource.java.NamedNativeQueryAnnotation;
-import org.eclipse.jpt.core.resource.java.NestableAnnotation;
-import org.eclipse.jpt.utility.internal.CollectionTools;
-import org.eclipse.jpt.utility.internal.iterators.ArrayIterator;
-
-@SuppressWarnings("nls")
-public class NamedNativeQueriesTests extends JavaResourceModelTestCase {
-
-	private static final String QUERY_NAME = "myQuery";
-	private static final String QUERY_QUERY = "SELECT name FROM Employee";
-	private static final String QUERY_RESULT_CLASS = "Result";
-	private static final String QUERY_RESULT_SET_MAPPING = "resultSetMapping";
-	
-	public NamedNativeQueriesTests(String name) {
-		super(name);
-	}
-	
-	private ICompilationUnit createTestNamedNativeQueries() throws Exception {
-		return this.createTestType(new DefaultAnnotationWriter() {
-			@Override
-			public Iterator<String> imports() {
-				return new ArrayIterator<String>(JPA.NAMED_NATIVE_QUERIES, JPA.NAMED_NATIVE_QUERY);
-			}
-			@Override
-			public void appendTypeAnnotationTo(StringBuilder sb) {
-				sb.append("@NamedNativeQueries(@NamedNativeQuery)");
-			}
-		});
-	}
-	
-	private ICompilationUnit createTestNamedNativeQueryWithName() throws Exception {
-		return createTestNamedNativeQueryWithStringElement("name", QUERY_NAME);
-	}
-	
-	private ICompilationUnit createTestNamedNativeQueryWithQuery() throws Exception {
-		return createTestNamedNativeQueryWithStringElement("query", QUERY_QUERY);
-	}
-	
-	private ICompilationUnit createTestNamedNativeQueryWithResultSetMapping() throws Exception {
-		return createTestNamedNativeQueryWithStringElement("resultSetMapping", QUERY_RESULT_SET_MAPPING);
-	}
-	
-
-	private ICompilationUnit createTestNamedNativeQueryWithStringElement(final String elementName, final String value) throws Exception {
-		return this.createTestType(new DefaultAnnotationWriter() {
-			@Override
-			public Iterator<String> imports() {
-				return new ArrayIterator<String>(JPA.NAMED_NATIVE_QUERIES, JPA.NAMED_NATIVE_QUERY);
-			}
-			@Override
-			public void appendTypeAnnotationTo(StringBuilder sb) {
-				sb.append("@NamedNativeQueries(@NamedNativeQuery(" + elementName + " = \"" + value + "\"))");
-			}
-		});
-	}
-
-	private ICompilationUnit createTestNamedNativeQueryWithResultClass() throws Exception {
-		return this.createTestType(new DefaultAnnotationWriter() {
-			@Override
-			public Iterator<String> imports() {
-				return new ArrayIterator<String>(JPA.NAMED_NATIVE_QUERIES, JPA.NAMED_NATIVE_QUERY);
-			}
-			@Override
-			public void appendTypeAnnotationTo(StringBuilder sb) {
-				sb.append("@NamedNativeQueries(@NamedNativeQuery(resultClass = " + QUERY_RESULT_CLASS + ".class))");
-			}
-		});
-	}
-	
-	private ICompilationUnit createTestNamedNativeQueryWithQueryHints() throws Exception {
-		return this.createTestType(new DefaultAnnotationWriter() {
-			@Override
-			public Iterator<String> imports() {
-				return new ArrayIterator<String>(JPA.NAMED_NATIVE_QUERIES, JPA.NAMED_NATIVE_QUERY, JPA.QUERY_HINT);
-			}
-			@Override
-			public void appendTypeAnnotationTo(StringBuilder sb) {
-				sb.append("@NamedNativeQueries(@NamedNativeQuery(hints = {@QueryHint(name = \"BAR\", value = \"FOO\"), @QueryHint}))");
-			}
-		});
-	}
-
-	private ICompilationUnit createTestNamedNativeQuery() throws Exception {
-		return this.createTestType(new DefaultAnnotationWriter() {
-			@Override
-			public Iterator<String> imports() {
-				return new ArrayIterator<String>(JPA.NAMED_NATIVE_QUERY, JPA.QUERY_HINT);
-			}
-			@Override
-			public void appendTypeAnnotationTo(StringBuilder sb) {
-				sb.append("@NamedNativeQuery(name = \"foo\", query = \"bar\", hints = @QueryHint(name = \"BAR\", value = \"FOO\"), resultClass = Foo.class, resultSetMapping = \"mapping\")");
-			}
-		});
-	}
-
-	public void testNamedNativeQuery() throws Exception {
-		ICompilationUnit cu = this.createTestNamedNativeQueries();
-		JavaResourcePersistentType typeResource = buildJavaTypeResource(cu);
-		
-		NamedNativeQueriesAnnotation namedQueries = (NamedNativeQueriesAnnotation) typeResource.getSupportingAnnotation(JPA.NAMED_NATIVE_QUERIES);
-		NamedNativeQueryAnnotation namedQuery = namedQueries.nestedAnnotations().next();
-		assertNotNull(namedQuery);
-	}
-
-	public void testGetName() throws Exception {
-		ICompilationUnit cu = this.createTestNamedNativeQueryWithName();
-		JavaResourcePersistentType typeResource = buildJavaTypeResource(cu); 
-		
-		NamedNativeQueriesAnnotation namedQueries = (NamedNativeQueriesAnnotation) typeResource.getSupportingAnnotation(JPA.NAMED_NATIVE_QUERIES);
-		NamedNativeQueryAnnotation namedQuery = namedQueries.nestedAnnotations().next();
-		assertEquals(QUERY_NAME, namedQuery.getName());
-	}
-
-	public void testSetName() throws Exception {
-		ICompilationUnit cu = this.createTestNamedNativeQueryWithName();
-		JavaResourcePersistentType typeResource = buildJavaTypeResource(cu); 
-		
-		NamedNativeQueriesAnnotation namedQueries = (NamedNativeQueriesAnnotation) typeResource.getSupportingAnnotation(JPA.NAMED_NATIVE_QUERIES);
-		NamedNativeQueryAnnotation namedQuery = namedQueries.nestedAnnotations().next();
-		assertEquals(QUERY_NAME, namedQuery.getName());
-		
-		namedQuery.setName("foo");
-		assertEquals("foo", namedQuery.getName());
-		
-		assertSourceContains("@NamedNativeQuery(name = \"foo\")", cu);
-		
-		namedQuery.setName(null);
-		assertNull(namedQuery.getName());
-		
-		assertSourceDoesNotContain("@NamedNativeQuery", cu);
-	}
-
-	public void testGetQuery() throws Exception {
-		ICompilationUnit cu = this.createTestNamedNativeQueryWithQuery();
-		JavaResourcePersistentType typeResource = buildJavaTypeResource(cu); 
-		
-		NamedNativeQueriesAnnotation namedQueries = (NamedNativeQueriesAnnotation) typeResource.getSupportingAnnotation(JPA.NAMED_NATIVE_QUERIES);
-		NamedNativeQueryAnnotation namedQuery = namedQueries.nestedAnnotations().next();
-		assertEquals(QUERY_QUERY, namedQuery.getQuery());
-	}
-
-	public void testSetQuery() throws Exception {
-		ICompilationUnit cu = this.createTestNamedNativeQueryWithQuery();
-		JavaResourcePersistentType typeResource = buildJavaTypeResource(cu); 
-		
-		NamedNativeQueriesAnnotation namedQueries = (NamedNativeQueriesAnnotation) typeResource.getSupportingAnnotation(JPA.NAMED_NATIVE_QUERIES);
-		NamedNativeQueryAnnotation namedQuery = namedQueries.nestedAnnotations().next();
-		assertEquals(QUERY_QUERY, namedQuery.getQuery());
-		
-		namedQuery.setQuery("foo");
-		assertEquals("foo", namedQuery.getQuery());
-		
-		assertSourceContains("@NamedNativeQuery(query = \"foo\")", cu);
-		
-		namedQuery.setQuery(null);
-		assertNull(namedQuery.getQuery());
-		
-		assertSourceDoesNotContain("@NamedNativeQuery", cu);
-	}
-	
-	public void testGetResultClass() throws Exception {
-		ICompilationUnit cu = this.createTestNamedNativeQueryWithResultClass();
-		JavaResourcePersistentType typeResource = buildJavaTypeResource(cu); 
-		
-		NamedNativeQueriesAnnotation namedQueries = (NamedNativeQueriesAnnotation) typeResource.getSupportingAnnotation(JPA.NAMED_NATIVE_QUERIES);
-		NamedNativeQueryAnnotation namedQuery = namedQueries.nestedAnnotations().next();
-		assertEquals(QUERY_RESULT_CLASS, namedQuery.getResultClass());
-	}
-
-	public void testSetResultClass() throws Exception {
-		ICompilationUnit cu = this.createTestNamedNativeQueryWithResultClass();
-		JavaResourcePersistentType typeResource = buildJavaTypeResource(cu); 
-		
-		NamedNativeQueriesAnnotation namedQueries = (NamedNativeQueriesAnnotation) typeResource.getSupportingAnnotation(JPA.NAMED_NATIVE_QUERIES);
-		NamedNativeQueryAnnotation namedQuery = namedQueries.nestedAnnotations().next();
-		assertEquals(QUERY_RESULT_CLASS, namedQuery.getResultClass());
-		
-		namedQuery.setResultClass("foo");
-		assertEquals("foo", namedQuery.getResultClass());
-		
-		assertSourceContains("@NamedNativeQuery(resultClass = foo.class)", cu);
-		
-		namedQuery.setResultClass(null);
-		assertNull(namedQuery.getResultClass());
-		
-		assertSourceDoesNotContain("@NamedNativeQuery", cu);
-	}
-
-	public void testGetFullyQualifiedClass() throws Exception {
-		ICompilationUnit cu = this.createTestNamedNativeQueryWithResultClass();
-		JavaResourcePersistentType typeResource = buildJavaTypeResource(cu);
-
-		NamedNativeQueriesAnnotation namedQueries = (NamedNativeQueriesAnnotation) typeResource.getSupportingAnnotation(JPA.NAMED_NATIVE_QUERIES);
-		NamedNativeQueryAnnotation namedQuery = namedQueries.nestedAnnotations().next();
-		assertNotNull(namedQuery.getResultClass());
-		assertEquals("Result", namedQuery.getFullyQualifiedResultClassName());//bug 196200 changed this
-
-		namedQuery.setResultClass(TYPE_NAME);		
-		
-		assertEquals(FULLY_QUALIFIED_TYPE_NAME, namedQuery.getFullyQualifiedResultClassName());				
-		assertSourceContains("@NamedNativeQuery(resultClass = " + TYPE_NAME + ".class)", cu);
-	}
-	
-	public void testGetResultSetMapping() throws Exception {
-		ICompilationUnit cu = this.createTestNamedNativeQueryWithResultSetMapping();
-		JavaResourcePersistentType typeResource = buildJavaTypeResource(cu); 
-		
-		NamedNativeQueriesAnnotation namedQueries = (NamedNativeQueriesAnnotation) typeResource.getSupportingAnnotation(JPA.NAMED_NATIVE_QUERIES);
-		NamedNativeQueryAnnotation namedQuery = namedQueries.nestedAnnotations().next();
-		assertEquals(QUERY_RESULT_SET_MAPPING, namedQuery.getResultSetMapping());
-	}
-
-	public void testSetResultSetMapping() throws Exception {
-		ICompilationUnit cu = this.createTestNamedNativeQueryWithResultSetMapping();
-		JavaResourcePersistentType typeResource = buildJavaTypeResource(cu); 
-		
-		NamedNativeQueriesAnnotation namedQueries = (NamedNativeQueriesAnnotation) typeResource.getSupportingAnnotation(JPA.NAMED_NATIVE_QUERIES);
-		NamedNativeQueryAnnotation namedQuery = namedQueries.nestedAnnotations().next();
-		assertEquals(QUERY_RESULT_SET_MAPPING, namedQuery.getResultSetMapping());
-		
-		namedQuery.setResultSetMapping("foo");
-		assertEquals("foo", namedQuery.getResultSetMapping());
-		
-		assertSourceContains("@NamedNativeQuery(resultSetMapping = \"foo\")", cu);
-		
-		namedQuery.setResultSetMapping(null);
-		assertNull(namedQuery.getResultSetMapping());
-		
-		assertSourceDoesNotContain("@NamedNativeQuery", cu);
-	}
-
-	public void testHints() throws Exception {
-		ICompilationUnit cu = this.createTestNamedNativeQueries();
-		JavaResourcePersistentType typeResource = buildJavaTypeResource(cu); 
-		
-		NamedNativeQueriesAnnotation namedQueries = (NamedNativeQueriesAnnotation) typeResource.getSupportingAnnotation(JPA.NAMED_NATIVE_QUERIES);
-		NamedNativeQueryAnnotation namedQuery = namedQueries.nestedAnnotations().next();
-		
-		assertEquals(0, namedQuery.hintsSize());
-	}
-	
-	public void testHints2() throws Exception {
-		ICompilationUnit cu = this.createTestNamedNativeQueries();
-		JavaResourcePersistentType typeResource = buildJavaTypeResource(cu); 
-		
-		NamedNativeQueriesAnnotation namedQueries = (NamedNativeQueriesAnnotation) typeResource.getSupportingAnnotation(JPA.NAMED_NATIVE_QUERIES);
-		NamedNativeQueryAnnotation namedQuery = namedQueries.nestedAnnotations().next();
-		
-		namedQuery.addHint(0);
-		namedQuery.addHint(1);
-		
-		assertEquals(2, namedQuery.hintsSize());
-	}
-	
-	public void testHints3() throws Exception {
-		ICompilationUnit cu = this.createTestNamedNativeQueryWithQueryHints();
-		JavaResourcePersistentType typeResource = buildJavaTypeResource(cu); 
-		
-		NamedNativeQueriesAnnotation namedQueries = (NamedNativeQueriesAnnotation) typeResource.getSupportingAnnotation(JPA.NAMED_NATIVE_QUERIES);
-		NamedNativeQueryAnnotation namedQuery = namedQueries.nestedAnnotations().next();
-		
-		assertEquals(2, namedQuery.hintsSize());
-	}
-	
-	public void testAddHint() throws Exception {
-		ICompilationUnit cu = this.createTestNamedNativeQueries();
-		JavaResourcePersistentType typeResource = buildJavaTypeResource(cu); 
-		
-		NamedNativeQueriesAnnotation namedQueries = (NamedNativeQueriesAnnotation) typeResource.getSupportingAnnotation(JPA.NAMED_NATIVE_QUERIES);
-		NamedNativeQueryAnnotation namedQuery = namedQueries.nestedAnnotations().next();
-		
-		namedQuery.addHint(0).setName("FOO");
-		namedQuery.addHint(1);
-		namedQuery.addHint(0).setName("BAR");
-
-		assertEquals("BAR", namedQuery.hintAt(0).getName());
-		assertEquals("FOO", namedQuery.hintAt(1).getName());
-		assertNull(namedQuery.hintAt(2).getName());
-		assertSourceContains("@NamedNativeQuery(hints = {@QueryHint(name = \"BAR\"),@QueryHint(name = \"FOO\"), @QueryHint})", cu);
-	}
-	
-	public void testRemoveHint() throws Exception {
-		ICompilationUnit cu = this.createTestNamedNativeQueryWithQueryHints();
-		JavaResourcePersistentType typeResource = buildJavaTypeResource(cu); 
-		
-		NamedNativeQueriesAnnotation namedQueries = (NamedNativeQueriesAnnotation) typeResource.getSupportingAnnotation(JPA.NAMED_NATIVE_QUERIES);
-		NamedNativeQueryAnnotation namedQuery = namedQueries.nestedAnnotations().next();
-		namedQuery.addHint(0).setName("BAZ");
-		
-		assertEquals("BAZ", namedQuery.hintAt(0).getName());
-		assertEquals("BAR", namedQuery.hintAt(1).getName());
-		assertNull(namedQuery.hintAt(2).getName());
-		assertEquals(3, namedQuery.hintsSize());
-		
-		namedQuery.removeHint(2);
-		assertEquals("BAZ", namedQuery.hintAt(0).getName());
-		assertEquals("BAR", namedQuery.hintAt(1).getName());
-		assertEquals(2, namedQuery.hintsSize());
-		assertSourceContains("@NamedNativeQueries(@NamedNativeQuery(hints = {@QueryHint(name = \"BAZ\"), @QueryHint(name = \"BAR\", value = \"FOO\")}))", cu);
-		
-		namedQuery.removeHint(0);
-		assertEquals("BAR", namedQuery.hintAt(0).getName());
-		assertEquals(1, namedQuery.hintsSize());
-		assertSourceContains("@NamedNativeQueries(@NamedNativeQuery(hints = @QueryHint(name = \"BAR\", value = \"FOO\")))", cu);
-		
-	
-		namedQuery.removeHint(0);
-		assertEquals(0, namedQuery.hintsSize());
-		assertSourceDoesNotContain("@NamedNativeQuery", cu);
-	}
-	
-	public void testMoveHint() throws Exception {
-		ICompilationUnit cu = this.createTestNamedNativeQueryWithQueryHints();
-		JavaResourcePersistentType typeResource = buildJavaTypeResource(cu); 
-		
-		NamedNativeQueriesAnnotation namedQueries = (NamedNativeQueriesAnnotation) typeResource.getSupportingAnnotation(JPA.NAMED_NATIVE_QUERIES);
-		NamedNativeQueryAnnotation namedQuery = namedQueries.nestedAnnotations().next();
-		
-		namedQuery.addHint(0).setName("BAZ");
-		
-		assertEquals("BAZ", namedQuery.hintAt(0).getName());
-		assertEquals("BAR", namedQuery.hintAt(1).getName());
-		assertNull(namedQuery.hintAt(2).getName());
-		assertEquals(3, namedQuery.hintsSize());
-	
-		namedQuery.moveHint(2, 0);
-		
-		assertEquals("BAR", namedQuery.hintAt(0).getName());
-		assertNull(namedQuery.hintAt(1).getName());
-		assertEquals("BAZ", namedQuery.hintAt(2).getName());
-		assertEquals(3, namedQuery.hintsSize());
-		assertSourceContains("@NamedNativeQueries(@NamedNativeQuery(hints = {@QueryHint(name = \"BAR\", value = \"FOO\"), @QueryHint, @QueryHint(name = \"BAZ\")}))", cu);
-	}
-	
-	public void testMoveHint2() throws Exception {
-		ICompilationUnit cu = this.createTestNamedNativeQueryWithQueryHints();
-		JavaResourcePersistentType typeResource = buildJavaTypeResource(cu); 
-		
-		NamedNativeQueriesAnnotation namedQueries = (NamedNativeQueriesAnnotation) typeResource.getSupportingAnnotation(JPA.NAMED_NATIVE_QUERIES);
-		NamedNativeQueryAnnotation namedQuery = namedQueries.nestedAnnotations().next();
-		
-		namedQuery.addHint(0).setName("BAZ");
-		
-		assertEquals("BAZ", namedQuery.hintAt(0).getName());
-		assertEquals("BAR", namedQuery.hintAt(1).getName());
-		assertNull(namedQuery.hintAt(2).getName());
-		assertEquals(3, namedQuery.hintsSize());
-	
-		namedQuery.moveHint(0, 2);
-		
-		assertNull(namedQuery.hintAt(0).getName());
-		assertEquals("BAZ", namedQuery.hintAt(1).getName());
-		assertEquals("BAR", namedQuery.hintAt(2).getName());
-		assertEquals(3, namedQuery.hintsSize());
-		assertSourceContains("@NamedNativeQueries(@NamedNativeQuery(hints = {@QueryHint, @QueryHint(name = \"BAZ\"), @QueryHint(name = \"BAR\", value = \"FOO\")}))", cu);
-	}
-	
-	public void testAddNamedNativeQueryCopyExisting() throws Exception {
-		ICompilationUnit cu = createTestNamedNativeQuery();
-		JavaResourcePersistentType typeResource = buildJavaTypeResource(cu);
-		
-		NamedNativeQueryAnnotation namedQuery = (NamedNativeQueryAnnotation) typeResource.addSupportingAnnotation(1, JPA.NAMED_NATIVE_QUERY, JPA.NAMED_NATIVE_QUERIES);
-		namedQuery.setName("BAR");
-		assertSourceContains("@NamedNativeQueries({@NamedNativeQuery(name = \"foo\", query = \"bar\", hints = @QueryHint(name = \"BAR\", value = \"FOO\"), resultClass = Foo.class, resultSetMapping = \"mapping\"),@NamedNativeQuery(name = \"BAR\")})", cu);
-		
-		assertNull(typeResource.getSupportingAnnotation(JPA.NAMED_NATIVE_QUERY));
-		assertNotNull(typeResource.getSupportingAnnotation(JPA.NAMED_NATIVE_QUERIES));
-		assertEquals(2, CollectionTools.size(typeResource.supportingAnnotations(JPA.NAMED_NATIVE_QUERY, JPA.NAMED_NATIVE_QUERIES)));
-	}
-	
-	public void testAddNamedNativeQueryToBeginningOfList() throws Exception {
-		ICompilationUnit cu = createTestNamedNativeQuery();
-		JavaResourcePersistentType typeResource = buildJavaTypeResource(cu);
-		
-		NamedNativeQueryAnnotation namedQuery = (NamedNativeQueryAnnotation) typeResource.addSupportingAnnotation(1, JPA.NAMED_NATIVE_QUERY, JPA.NAMED_NATIVE_QUERIES);
-		namedQuery.setName("BAR");
-		assertSourceContains("@NamedNativeQueries({@NamedNativeQuery(name = \"foo\", query = \"bar\", hints = @QueryHint(name = \"BAR\", value = \"FOO\"), resultClass = Foo.class, resultSetMapping = \"mapping\"),@NamedNativeQuery(name = \"BAR\")})", cu);
-		
-		namedQuery = (NamedNativeQueryAnnotation) typeResource.addSupportingAnnotation(0, JPA.NAMED_NATIVE_QUERY, JPA.NAMED_NATIVE_QUERIES);
-		namedQuery.setName("BAZ");
-		assertSourceContains("@NamedNativeQueries({@NamedNativeQuery(name = \"BAZ\"),@NamedNativeQuery(name = \"foo\", query = \"bar\", hints = @QueryHint(name = \"BAR\", value = \"FOO\"), resultClass = Foo.class, resultSetMapping = \"mapping\"), @NamedNativeQuery(name = \"BAR\")})", cu);
-
-		Iterator<NestableAnnotation> namedQueries = typeResource.supportingAnnotations(JPA.NAMED_NATIVE_QUERY, JPA.NAMED_NATIVE_QUERIES);
-		assertEquals("BAZ", ((NamedNativeQueryAnnotation) namedQueries.next()).getName());
-		assertEquals("foo", ((NamedNativeQueryAnnotation) namedQueries.next()).getName());
-		assertEquals("BAR", ((NamedNativeQueryAnnotation) namedQueries.next()).getName());
-
-		assertNull(typeResource.getSupportingAnnotation(JPA.NAMED_NATIVE_QUERY));
-		assertNotNull(typeResource.getSupportingAnnotation(JPA.NAMED_NATIVE_QUERIES));
-		assertEquals(3, CollectionTools.size(typeResource.supportingAnnotations(JPA.NAMED_NATIVE_QUERY, JPA.NAMED_NATIVE_QUERIES)));
-	}
-	
-	public void testRemoveNamedNativeQueryCopyExisting() throws Exception {
-		ICompilationUnit cu = createTestNamedNativeQuery();
-		JavaResourcePersistentType typeResource = buildJavaTypeResource(cu);
-		
-		NamedNativeQueryAnnotation namedQuery = (NamedNativeQueryAnnotation) typeResource.addSupportingAnnotation(1, JPA.NAMED_NATIVE_QUERY, JPA.NAMED_NATIVE_QUERIES);
-		namedQuery.setName("BAR");
-		assertSourceContains("@NamedNativeQueries({@NamedNativeQuery(name = \"foo\", query = \"bar\", hints = @QueryHint(name = \"BAR\", value = \"FOO\"), resultClass = Foo.class, resultSetMapping = \"mapping\"),@NamedNativeQuery(name = \"BAR\")})", cu);
-		
-		typeResource.removeSupportingAnnotation(1, JPA.NAMED_NATIVE_QUERY, JPA.NAMED_NATIVE_QUERIES);
-		assertSourceContains("@NamedNativeQuery(name = \"foo\", query = \"bar\", hints = @QueryHint(name = \"BAR\", value = \"FOO\"), resultClass = Foo.class, resultSetMapping = \"mapping\")", cu);
-	}
-}
diff --git a/jpa/tests/org.eclipse.jpt.core.tests/src/org/eclipse/jpt/core/tests/internal/resource/java/NamedNativeQueryTests.java b/jpa/tests/org.eclipse.jpt.core.tests/src/org/eclipse/jpt/core/tests/internal/resource/java/NamedNativeQueryTests.java
deleted file mode 100644
index 79b0fe3..0000000
--- a/jpa/tests/org.eclipse.jpt.core.tests/src/org/eclipse/jpt/core/tests/internal/resource/java/NamedNativeQueryTests.java
+++ /dev/null
@@ -1,341 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.core.tests.internal.resource.java;
-
-import java.util.Iterator;
-import org.eclipse.jdt.core.ICompilationUnit;
-import org.eclipse.jpt.core.resource.java.JPA;
-import org.eclipse.jpt.core.resource.java.JavaResourcePersistentType;
-import org.eclipse.jpt.core.resource.java.NamedNativeQueryAnnotation;
-import org.eclipse.jpt.utility.internal.iterators.ArrayIterator;
-
-@SuppressWarnings("nls")
-public class NamedNativeQueryTests extends JavaResourceModelTestCase {
-
-	private static final String QUERY_NAME = "myQuery";
-	private static final String QUERY_QUERY = "SELECT name FROM Employee";
-	private static final String QUERY_RESULT_CLASS = "Result";
-	private static final String QUERY_RESULT_SET_MAPPING = "resultSetMapping";
-	
-	public NamedNativeQueryTests(String name) {
-		super(name);
-	}
-	
-	private ICompilationUnit createTestNamedNativeQuery() throws Exception {
-		return this.createTestType(new DefaultAnnotationWriter() {
-			@Override
-			public Iterator<String> imports() {
-				return new ArrayIterator<String>(JPA.NAMED_NATIVE_QUERY);
-			}
-			@Override
-			public void appendTypeAnnotationTo(StringBuilder sb) {
-				sb.append("@NamedNativeQuery");
-			}
-		});
-	}
-	
-	private ICompilationUnit createTestNamedNativeQueryWithName() throws Exception {
-		return createTestNamedNativeQueryWithStringElement("name", QUERY_NAME);
-	}
-	
-	private ICompilationUnit createTestNamedNativeQueryWithQuery() throws Exception {
-		return createTestNamedNativeQueryWithStringElement("query", QUERY_QUERY);
-	}
-	
-	private ICompilationUnit createTestNamedNativeQueryWithResultSetMapping() throws Exception {
-		return createTestNamedNativeQueryWithStringElement("resultSetMapping", QUERY_RESULT_SET_MAPPING);
-	}
-	
-
-	private ICompilationUnit createTestNamedNativeQueryWithStringElement(final String elementName, final String value) throws Exception {
-		return this.createTestType(new DefaultAnnotationWriter() {
-			@Override
-			public Iterator<String> imports() {
-				return new ArrayIterator<String>(JPA.NAMED_NATIVE_QUERY);
-			}
-			@Override
-			public void appendTypeAnnotationTo(StringBuilder sb) {
-				sb.append("@NamedNativeQuery(" + elementName + " = \"" + value + "\")");
-			}
-		});
-	}
-
-	private ICompilationUnit createTestNamedNativeQueryWithResultClass() throws Exception {
-		return this.createTestType(new DefaultAnnotationWriter() {
-			@Override
-			public Iterator<String> imports() {
-				return new ArrayIterator<String>(JPA.NAMED_NATIVE_QUERY);
-			}
-			@Override
-			public void appendTypeAnnotationTo(StringBuilder sb) {
-				sb.append("@NamedNativeQuery(resultClass = " + QUERY_RESULT_CLASS + ".class)");
-			}
-		});
-	}
-	
-	private ICompilationUnit createTestNamedNativeQueryWithQueryHints() throws Exception {
-		return this.createTestType(new DefaultAnnotationWriter() {
-			@Override
-			public Iterator<String> imports() {
-				return new ArrayIterator<String>(JPA.NAMED_NATIVE_QUERY, JPA.QUERY_HINT);
-			}
-			@Override
-			public void appendTypeAnnotationTo(StringBuilder sb) {
-				sb.append("@NamedNativeQuery(hints = {@QueryHint(name = \"BAR\", value = \"FOO\"), @QueryHint})");
-			}
-		});
-	}
-
-	public void testNamedNativeQuery() throws Exception {
-		ICompilationUnit cu = this.createTestNamedNativeQuery();
-		JavaResourcePersistentType typeResource = buildJavaTypeResource(cu);
-		
-		NamedNativeQueryAnnotation namedQuery = (NamedNativeQueryAnnotation) typeResource.getSupportingAnnotation(JPA.NAMED_NATIVE_QUERY);
-		assertNotNull(namedQuery);
-	}
-
-	public void testGetName() throws Exception {
-		ICompilationUnit cu = this.createTestNamedNativeQueryWithName();
-		JavaResourcePersistentType typeResource = buildJavaTypeResource(cu); 
-		
-		NamedNativeQueryAnnotation namedQuery = (NamedNativeQueryAnnotation) typeResource.getSupportingAnnotation(JPA.NAMED_NATIVE_QUERY);
-		assertEquals(QUERY_NAME, namedQuery.getName());
-	}
-
-	public void testSetName() throws Exception {
-		ICompilationUnit cu = this.createTestNamedNativeQueryWithName();
-		JavaResourcePersistentType typeResource = buildJavaTypeResource(cu); 
-		
-		NamedNativeQueryAnnotation namedQuery = (NamedNativeQueryAnnotation) typeResource.getSupportingAnnotation(JPA.NAMED_NATIVE_QUERY);
-		assertEquals(QUERY_NAME, namedQuery.getName());
-		
-		namedQuery.setName("foo");
-		assertEquals("foo", namedQuery.getName());
-		
-		assertSourceContains("@NamedNativeQuery(name = \"foo\")", cu);
-		
-		namedQuery.setName(null);
-		assertNull(namedQuery.getName());
-		
-		assertSourceDoesNotContain("@NamedNativeQuery", cu);
-	}
-
-	public void testGetQuery() throws Exception {
-		ICompilationUnit cu = this.createTestNamedNativeQueryWithQuery();
-		JavaResourcePersistentType typeResource = buildJavaTypeResource(cu); 
-		
-		NamedNativeQueryAnnotation namedQuery = (NamedNativeQueryAnnotation) typeResource.getSupportingAnnotation(JPA.NAMED_NATIVE_QUERY);
-		assertEquals(QUERY_QUERY, namedQuery.getQuery());
-	}
-
-	public void testSetQuery() throws Exception {
-		ICompilationUnit cu = this.createTestNamedNativeQueryWithQuery();
-		JavaResourcePersistentType typeResource = buildJavaTypeResource(cu); 
-		
-		NamedNativeQueryAnnotation namedQuery = (NamedNativeQueryAnnotation) typeResource.getSupportingAnnotation(JPA.NAMED_NATIVE_QUERY);
-		assertEquals(QUERY_QUERY, namedQuery.getQuery());
-		
-		namedQuery.setQuery("foo");
-		assertEquals("foo", namedQuery.getQuery());
-		
-		assertSourceContains("@NamedNativeQuery(query = \"foo\")", cu);
-		
-		namedQuery.setQuery(null);
-		assertNull(namedQuery.getQuery());
-		
-		assertSourceDoesNotContain("@NamedNativeQuery", cu);
-	}
-	
-	public void testGetResultClass() throws Exception {
-		ICompilationUnit cu = this.createTestNamedNativeQueryWithResultClass();
-		JavaResourcePersistentType typeResource = buildJavaTypeResource(cu); 
-		
-		NamedNativeQueryAnnotation namedQuery = (NamedNativeQueryAnnotation) typeResource.getSupportingAnnotation(JPA.NAMED_NATIVE_QUERY);
-		assertEquals(QUERY_RESULT_CLASS, namedQuery.getResultClass());
-	}
-
-	public void testSetResultClass() throws Exception {
-		ICompilationUnit cu = this.createTestNamedNativeQueryWithResultClass();
-		JavaResourcePersistentType typeResource = buildJavaTypeResource(cu); 
-		
-		NamedNativeQueryAnnotation namedQuery = (NamedNativeQueryAnnotation) typeResource.getSupportingAnnotation(JPA.NAMED_NATIVE_QUERY);
-		assertEquals(QUERY_RESULT_CLASS, namedQuery.getResultClass());
-		
-		namedQuery.setResultClass("foo");
-		assertEquals("foo", namedQuery.getResultClass());
-		
-		assertSourceContains("@NamedNativeQuery(resultClass = foo.class)", cu);
-		
-		namedQuery.setResultClass(null);
-		assertNull(namedQuery.getResultClass());
-		
-		assertSourceDoesNotContain("@NamedNativeQuery", cu);
-	}
-
-	public void testGetFullyQualifiedClass() throws Exception {
-		ICompilationUnit cu = this.createTestNamedNativeQueryWithResultClass();
-		JavaResourcePersistentType typeResource = buildJavaTypeResource(cu);
-
-		NamedNativeQueryAnnotation namedQuery = (NamedNativeQueryAnnotation) typeResource.getSupportingAnnotation(JPA.NAMED_NATIVE_QUERY);
-		assertNotNull(namedQuery.getResultClass());
-		assertEquals("Result", namedQuery.getFullyQualifiedResultClassName());//bug 196200 changed this
-
-		namedQuery.setResultClass(TYPE_NAME);		
-		
-		assertEquals(FULLY_QUALIFIED_TYPE_NAME, namedQuery.getFullyQualifiedResultClassName());				
-		assertSourceContains("@NamedNativeQuery(resultClass = " + TYPE_NAME + ".class)", cu);
-	}
-	
-	public void testGetResultSetMapping() throws Exception {
-		ICompilationUnit cu = this.createTestNamedNativeQueryWithResultSetMapping();
-		JavaResourcePersistentType typeResource = buildJavaTypeResource(cu); 
-		
-		NamedNativeQueryAnnotation namedQuery = (NamedNativeQueryAnnotation) typeResource.getSupportingAnnotation(JPA.NAMED_NATIVE_QUERY);
-		assertEquals(QUERY_RESULT_SET_MAPPING, namedQuery.getResultSetMapping());
-	}
-
-	public void testSetResultSetMapping() throws Exception {
-		ICompilationUnit cu = this.createTestNamedNativeQueryWithResultSetMapping();
-		JavaResourcePersistentType typeResource = buildJavaTypeResource(cu); 
-		
-		NamedNativeQueryAnnotation namedQuery = (NamedNativeQueryAnnotation) typeResource.getSupportingAnnotation(JPA.NAMED_NATIVE_QUERY);
-		assertEquals(QUERY_RESULT_SET_MAPPING, namedQuery.getResultSetMapping());
-		
-		namedQuery.setResultSetMapping("foo");
-		assertEquals("foo", namedQuery.getResultSetMapping());
-		
-		assertSourceContains("@NamedNativeQuery(resultSetMapping = \"foo\")", cu);
-		
-		namedQuery.setResultSetMapping(null);
-		assertNull(namedQuery.getResultSetMapping());
-		
-		assertSourceDoesNotContain("@NamedNativeQuery", cu);
-	}
-
-	public void testHints() throws Exception {
-		ICompilationUnit cu = this.createTestNamedNativeQuery();
-		JavaResourcePersistentType typeResource = buildJavaTypeResource(cu); 
-		
-		NamedNativeQueryAnnotation namedQuery = (NamedNativeQueryAnnotation) typeResource.getSupportingAnnotation(JPA.NAMED_NATIVE_QUERY);
-		
-		assertEquals(0, namedQuery.hintsSize());
-	}
-	
-	public void testHints2() throws Exception {
-		ICompilationUnit cu = this.createTestNamedNativeQuery();
-		JavaResourcePersistentType typeResource = buildJavaTypeResource(cu); 
-		
-		NamedNativeQueryAnnotation namedQuery = (NamedNativeQueryAnnotation) typeResource.getSupportingAnnotation(JPA.NAMED_NATIVE_QUERY);
-		
-		namedQuery.addHint(0);
-		namedQuery.addHint(1);
-		
-		assertEquals(2, namedQuery.hintsSize());
-	}
-	
-	public void testHints3() throws Exception {
-		ICompilationUnit cu = this.createTestNamedNativeQueryWithQueryHints();
-		JavaResourcePersistentType typeResource = buildJavaTypeResource(cu); 
-		
-		NamedNativeQueryAnnotation namedQuery = (NamedNativeQueryAnnotation) typeResource.getSupportingAnnotation(JPA.NAMED_NATIVE_QUERY);
-		
-		assertEquals(2, namedQuery.hintsSize());
-	}
-	
-	
-	public void testAddHint() throws Exception {
-		ICompilationUnit cu = this.createTestNamedNativeQuery();
-		JavaResourcePersistentType typeResource = buildJavaTypeResource(cu); 
-		
-		NamedNativeQueryAnnotation namedQuery = (NamedNativeQueryAnnotation) typeResource.getSupportingAnnotation(JPA.NAMED_NATIVE_QUERY);
-		
-		namedQuery.addHint(0).setName("FOO");
-		namedQuery.addHint(1);
-		namedQuery.addHint(0).setName("BAR");
-
-		assertEquals("BAR", namedQuery.hintAt(0).getName());
-		assertEquals("FOO", namedQuery.hintAt(1).getName());
-		assertNull(namedQuery.hintAt(2).getName());
-		assertSourceContains("@NamedNativeQuery(hints = {@QueryHint(name = \"BAR\"),@QueryHint(name = \"FOO\"), @QueryHint})", cu);
-	}
-	
-	public void testRemoveHint() throws Exception {
-		ICompilationUnit cu = this.createTestNamedNativeQueryWithQueryHints();
-		JavaResourcePersistentType typeResource = buildJavaTypeResource(cu); 
-		
-		NamedNativeQueryAnnotation namedQuery = (NamedNativeQueryAnnotation) typeResource.getSupportingAnnotation(JPA.NAMED_NATIVE_QUERY);
-		namedQuery.addHint(0).setName("BAZ");
-		
-		assertEquals("BAZ", namedQuery.hintAt(0).getName());
-		assertEquals("BAR", namedQuery.hintAt(1).getName());
-		assertNull(namedQuery.hintAt(2).getName());
-		assertEquals(3, namedQuery.hintsSize());
-		
-		namedQuery.removeHint(2);
-		assertEquals("BAZ", namedQuery.hintAt(0).getName());
-		assertEquals("BAR", namedQuery.hintAt(1).getName());
-		assertEquals(2, namedQuery.hintsSize());
-		assertSourceContains("@NamedNativeQuery(hints = {@QueryHint(name = \"BAZ\"), @QueryHint(name = \"BAR\", value = \"FOO\")})", cu);
-		
-		namedQuery.removeHint(0);
-		assertEquals("BAR", namedQuery.hintAt(0).getName());
-		assertEquals(1, namedQuery.hintsSize());
-		assertSourceContains("@NamedNativeQuery(hints = @QueryHint(name = \"BAR\", value = \"FOO\"))", cu);
-		
-	
-		namedQuery.removeHint(0);
-		assertEquals(0, namedQuery.hintsSize());
-		assertSourceDoesNotContain("@NamedNativeQuery", cu);
-	}
-	
-	public void testMoveHint() throws Exception {
-		ICompilationUnit cu = this.createTestNamedNativeQueryWithQueryHints();
-		JavaResourcePersistentType typeResource = buildJavaTypeResource(cu); 
-		
-		NamedNativeQueryAnnotation namedQuery = (NamedNativeQueryAnnotation) typeResource.getSupportingAnnotation(JPA.NAMED_NATIVE_QUERY);
-		
-		namedQuery.addHint(0).setName("BAZ");
-		
-		assertEquals("BAZ", namedQuery.hintAt(0).getName());
-		assertEquals("BAR", namedQuery.hintAt(1).getName());
-		assertNull(namedQuery.hintAt(2).getName());
-		assertEquals(3, namedQuery.hintsSize());
-	
-		namedQuery.moveHint(2, 0);
-		
-		assertEquals("BAR", namedQuery.hintAt(0).getName());
-		assertNull(namedQuery.hintAt(1).getName());
-		assertEquals("BAZ", namedQuery.hintAt(2).getName());
-		assertEquals(3, namedQuery.hintsSize());
-		assertSourceContains("@NamedNativeQuery(hints = {@QueryHint(name = \"BAR\", value = \"FOO\"), @QueryHint, @QueryHint(name = \"BAZ\")})", cu);
-	}
-	
-	public void testMoveHint2() throws Exception {
-		ICompilationUnit cu = this.createTestNamedNativeQueryWithQueryHints();
-		JavaResourcePersistentType typeResource = buildJavaTypeResource(cu); 
-		
-		NamedNativeQueryAnnotation namedQuery = (NamedNativeQueryAnnotation) typeResource.getSupportingAnnotation(JPA.NAMED_NATIVE_QUERY);
-		namedQuery.addHint(0).setName("BAZ");
-		
-		assertEquals("BAZ", namedQuery.hintAt(0).getName());
-		assertEquals("BAR", namedQuery.hintAt(1).getName());
-		assertNull(namedQuery.hintAt(2).getName());
-		assertEquals(3, namedQuery.hintsSize());
-	
-		namedQuery.moveHint(0, 2);
-		
-		assertNull(namedQuery.hintAt(0).getName());
-		assertEquals("BAZ", namedQuery.hintAt(1).getName());
-		assertEquals("BAR", namedQuery.hintAt(2).getName());
-		assertEquals(3, namedQuery.hintsSize());
-		assertSourceContains("@NamedNativeQuery(hints = {@QueryHint, @QueryHint(name = \"BAZ\"), @QueryHint(name = \"BAR\", value = \"FOO\")})", cu);
-	}
-	
-}
diff --git a/jpa/tests/org.eclipse.jpt.core.tests/src/org/eclipse/jpt/core/tests/internal/resource/java/NamedQueriesTests.java b/jpa/tests/org.eclipse.jpt.core.tests/src/org/eclipse/jpt/core/tests/internal/resource/java/NamedQueriesTests.java
deleted file mode 100644
index 2079624..0000000
--- a/jpa/tests/org.eclipse.jpt.core.tests/src/org/eclipse/jpt/core/tests/internal/resource/java/NamedQueriesTests.java
+++ /dev/null
@@ -1,331 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.core.tests.internal.resource.java;
-
-import java.util.Iterator;
-
-import org.eclipse.jdt.core.ICompilationUnit;
-import org.eclipse.jpt.core.resource.java.JPA;
-import org.eclipse.jpt.core.resource.java.JavaResourcePersistentType;
-import org.eclipse.jpt.core.resource.java.NamedQueriesAnnotation;
-import org.eclipse.jpt.core.resource.java.NamedQueryAnnotation;
-import org.eclipse.jpt.core.resource.java.NestableAnnotation;
-import org.eclipse.jpt.utility.internal.CollectionTools;
-import org.eclipse.jpt.utility.internal.iterators.ArrayIterator;
-
-@SuppressWarnings("nls")
-public class NamedQueriesTests extends JavaResourceModelTestCase {
-
-	private static final String QUERY_NAME = "myQuery";
-	private static final String QUERY_QUERY = "SELECT name FROM Employee";
-	
-	public NamedQueriesTests(String name) {
-		super(name);
-	}
-	
-	private ICompilationUnit createTestNamedQueries() throws Exception {
-		return this.createTestType(new DefaultAnnotationWriter() {
-			@Override
-			public Iterator<String> imports() {
-				return new ArrayIterator<String>(JPA.NAMED_QUERIES, JPA.NAMED_QUERY);
-			}
-			@Override
-			public void appendTypeAnnotationTo(StringBuilder sb) {
-				sb.append("@NamedQueries(@NamedQuery)");
-			}
-		});
-	}
-	
-	private ICompilationUnit createTestNamedQueryWithName() throws Exception {
-		return createTestNamedQueryWithStringElement("name", QUERY_NAME);
-	}
-	
-	private ICompilationUnit createTestNamedQueryWithQuery() throws Exception {
-		return createTestNamedQueryWithStringElement("query", QUERY_QUERY);
-	}
-	
-	private ICompilationUnit createTestNamedQueryWithStringElement(final String elementName, final String value) throws Exception {
-		return this.createTestType(new DefaultAnnotationWriter() {
-			@Override
-			public Iterator<String> imports() {
-				return new ArrayIterator<String>(JPA.NAMED_QUERIES, JPA.NAMED_QUERY);
-			}
-			@Override
-			public void appendTypeAnnotationTo(StringBuilder sb) {
-				sb.append("@NamedQueries(@NamedQuery(" + elementName + " = \"" + value + "\"))");
-			}
-		});
-	}
-
-	private ICompilationUnit createTestNamedQueryWithQueryHints() throws Exception {
-		return this.createTestType(new DefaultAnnotationWriter() {
-			@Override
-			public Iterator<String> imports() {
-				return new ArrayIterator<String>(JPA.NAMED_QUERIES, JPA.NAMED_QUERY, JPA.QUERY_HINT);
-			}
-			@Override
-			public void appendTypeAnnotationTo(StringBuilder sb) {
-				sb.append("@NamedQueries(@NamedQuery(hints = {@QueryHint(name = \"BAR\", value = \"FOO\"), @QueryHint}))");
-			}
-		});
-	}
-
-
-	private ICompilationUnit createTestNamedQuery() throws Exception {
-		return this.createTestType(new DefaultAnnotationWriter() {
-			@Override
-			public Iterator<String> imports() {
-				return new ArrayIterator<String>(JPA.NAMED_QUERY, JPA.QUERY_HINT);
-			}
-			@Override
-			public void appendTypeAnnotationTo(StringBuilder sb) {
-				sb.append("@NamedQuery(name = \"foo\", query = \"bar\", hints = @QueryHint(name = \"BAR\", value = \"FOO\"))");
-			}
-		});
-	}
-
-	public void testNamedQuery() throws Exception {
-		ICompilationUnit cu = this.createTestNamedQueries();
-		JavaResourcePersistentType typeResource = buildJavaTypeResource(cu);
-		
-		NamedQueriesAnnotation namedQueries = (NamedQueriesAnnotation) typeResource.getSupportingAnnotation(JPA.NAMED_QUERIES);
-		NamedQueryAnnotation namedQuery = namedQueries.nestedAnnotations().next();
-		assertNotNull(namedQuery);
-	}
-
-	public void testGetName() throws Exception {
-		ICompilationUnit cu = this.createTestNamedQueryWithName();
-		JavaResourcePersistentType typeResource = buildJavaTypeResource(cu); 
-		
-		NamedQueriesAnnotation namedQueries = (NamedQueriesAnnotation) typeResource.getSupportingAnnotation(JPA.NAMED_QUERIES);
-		NamedQueryAnnotation namedQuery = namedQueries.nestedAnnotations().next();
-		assertEquals(QUERY_NAME, namedQuery.getName());
-	}
-
-	public void testSetName() throws Exception {
-		ICompilationUnit cu = this.createTestNamedQueryWithName();
-		JavaResourcePersistentType typeResource = buildJavaTypeResource(cu); 
-		
-		NamedQueriesAnnotation namedQueries = (NamedQueriesAnnotation) typeResource.getSupportingAnnotation(JPA.NAMED_QUERIES);
-		NamedQueryAnnotation namedQuery = namedQueries.nestedAnnotations().next();
-		assertEquals(QUERY_NAME, namedQuery.getName());
-		
-		namedQuery.setName("foo");
-		assertEquals("foo", namedQuery.getName());
-		
-		assertSourceContains("@NamedQuery(name = \"foo\")", cu);
-		
-		namedQuery.setName(null);
-		assertNull(namedQuery.getName());
-		
-		assertSourceDoesNotContain("@NamedQuery", cu);
-	}
-
-	public void testGetQuery() throws Exception {
-		ICompilationUnit cu = this.createTestNamedQueryWithQuery();
-		JavaResourcePersistentType typeResource = buildJavaTypeResource(cu); 
-		
-		NamedQueriesAnnotation namedQueries = (NamedQueriesAnnotation) typeResource.getSupportingAnnotation(JPA.NAMED_QUERIES);
-		NamedQueryAnnotation namedQuery = namedQueries.nestedAnnotations().next();
-		assertEquals(QUERY_QUERY, namedQuery.getQuery());
-	}
-
-	public void testSetQuery() throws Exception {
-		ICompilationUnit cu = this.createTestNamedQueryWithQuery();
-		JavaResourcePersistentType typeResource = buildJavaTypeResource(cu); 
-		
-		NamedQueriesAnnotation namedQueries = (NamedQueriesAnnotation) typeResource.getSupportingAnnotation(JPA.NAMED_QUERIES);
-		NamedQueryAnnotation namedQuery = namedQueries.nestedAnnotations().next();
-		assertEquals(QUERY_QUERY, namedQuery.getQuery());
-		
-		namedQuery.setQuery("foo");
-		assertEquals("foo", namedQuery.getQuery());
-		
-		assertSourceContains("@NamedQuery(query = \"foo\")", cu);
-		
-		namedQuery.setQuery(null);
-		assertNull(namedQuery.getQuery());
-		
-		assertSourceDoesNotContain("@NamedQuery", cu);
-	}
-	
-	public void testHints() throws Exception {
-		ICompilationUnit cu = this.createTestNamedQueries();
-		JavaResourcePersistentType typeResource = buildJavaTypeResource(cu); 
-		
-		NamedQueriesAnnotation namedQueries = (NamedQueriesAnnotation) typeResource.getSupportingAnnotation(JPA.NAMED_QUERIES);
-		NamedQueryAnnotation namedQuery = namedQueries.nestedAnnotations().next();
-		
-		assertEquals(0, namedQuery.hintsSize());
-	}
-	
-	public void testHints2() throws Exception {
-		ICompilationUnit cu = this.createTestNamedQueries();
-		JavaResourcePersistentType typeResource = buildJavaTypeResource(cu); 
-		
-		NamedQueriesAnnotation namedQueries = (NamedQueriesAnnotation) typeResource.getSupportingAnnotation(JPA.NAMED_QUERIES);
-		NamedQueryAnnotation namedQuery = namedQueries.nestedAnnotations().next();
-		
-		namedQuery.addHint(0);
-		namedQuery.addHint(1);
-		
-		assertEquals(2, namedQuery.hintsSize());
-	}
-	
-	public void testHints3() throws Exception {
-		ICompilationUnit cu = this.createTestNamedQueryWithQueryHints();
-		JavaResourcePersistentType typeResource = buildJavaTypeResource(cu); 
-		
-		NamedQueriesAnnotation namedQueries = (NamedQueriesAnnotation) typeResource.getSupportingAnnotation(JPA.NAMED_QUERIES);
-		NamedQueryAnnotation namedQuery = namedQueries.nestedAnnotations().next();
-		
-		assertEquals(2, namedQuery.hintsSize());
-	}
-	
-	public void testAddHint() throws Exception {
-		ICompilationUnit cu = this.createTestNamedQueries();
-		JavaResourcePersistentType typeResource = buildJavaTypeResource(cu); 
-		
-		NamedQueriesAnnotation namedQueries = (NamedQueriesAnnotation) typeResource.getSupportingAnnotation(JPA.NAMED_QUERIES);
-		NamedQueryAnnotation namedQuery = namedQueries.nestedAnnotations().next();
-		
-		namedQuery.addHint(0).setName("FOO");
-		namedQuery.addHint(1);
-		namedQuery.addHint(0).setName("BAR");
-
-		assertEquals("BAR", namedQuery.hintAt(0).getName());
-		assertEquals("FOO", namedQuery.hintAt(1).getName());
-		assertNull(namedQuery.hintAt(2).getName());
-
-		assertSourceContains("@NamedQuery(hints = {@QueryHint(name = \"BAR\"),@QueryHint(name = \"FOO\"), @QueryHint})", cu);
-	}
-	
-	public void testRemoveHint() throws Exception {
-		ICompilationUnit cu = this.createTestNamedQueryWithQueryHints();
-		JavaResourcePersistentType typeResource = buildJavaTypeResource(cu); 
-		
-		NamedQueriesAnnotation namedQueries = (NamedQueriesAnnotation) typeResource.getSupportingAnnotation(JPA.NAMED_QUERIES);
-		NamedQueryAnnotation namedQuery = namedQueries.nestedAnnotations().next();
-		namedQuery.addHint(0).setName("BAZ");
-		
-		assertEquals("BAZ", namedQuery.hintAt(0).getName());
-		assertEquals("BAR", namedQuery.hintAt(1).getName());
-		assertNull(namedQuery.hintAt(2).getName());
-		assertEquals(3, namedQuery.hintsSize());
-		
-		namedQuery.removeHint(2);
-		assertEquals("BAZ", namedQuery.hintAt(0).getName());
-		assertEquals("BAR", namedQuery.hintAt(1).getName());
-		assertEquals(2, namedQuery.hintsSize());
-		assertSourceContains("@NamedQueries(@NamedQuery(hints = {@QueryHint(name = \"BAZ\"), @QueryHint(name = \"BAR\", value = \"FOO\")}))", cu);
-		
-		namedQuery.removeHint(0);
-		assertEquals("BAR", namedQuery.hintAt(0).getName());
-		assertEquals(1, namedQuery.hintsSize());
-		assertSourceContains("@NamedQueries(@NamedQuery(hints = @QueryHint(name = \"BAR\", value = \"FOO\")))", cu);
-		
-		namedQuery.removeHint(0);
-		assertEquals(0, namedQuery.hintsSize());
-		assertSourceDoesNotContain("@NamedQueries", cu);
-	}
-	
-	public void testMoveHint() throws Exception {
-		ICompilationUnit cu = this.createTestNamedQueryWithQueryHints();
-		JavaResourcePersistentType typeResource = buildJavaTypeResource(cu); 
-		
-		NamedQueriesAnnotation namedQueries = (NamedQueriesAnnotation) typeResource.getSupportingAnnotation(JPA.NAMED_QUERIES);
-		NamedQueryAnnotation namedQuery = namedQueries.nestedAnnotations().next();
-		namedQuery.addHint(0).setName("BAZ");
-		
-		assertEquals("BAZ", namedQuery.hintAt(0).getName());
-		assertEquals("BAR", namedQuery.hintAt(1).getName());
-		assertNull(namedQuery.hintAt(2).getName());
-		assertEquals(3, namedQuery.hintsSize());
-	
-		namedQuery.moveHint(2, 0);
-		
-		assertEquals("BAR", namedQuery.hintAt(0).getName());
-		assertNull(namedQuery.hintAt(1).getName());
-		assertEquals("BAZ", namedQuery.hintAt(2).getName());
-		assertEquals(3, namedQuery.hintsSize());
-		assertSourceContains("@NamedQueries(@NamedQuery(hints = {@QueryHint(name = \"BAR\", value = \"FOO\"), @QueryHint, @QueryHint(name = \"BAZ\")}))", cu);
-	}
-	
-	public void testMoveHint2() throws Exception {
-		ICompilationUnit cu = this.createTestNamedQueryWithQueryHints();
-		JavaResourcePersistentType typeResource = buildJavaTypeResource(cu); 
-		
-		NamedQueriesAnnotation namedQueries = (NamedQueriesAnnotation) typeResource.getSupportingAnnotation(JPA.NAMED_QUERIES);
-		NamedQueryAnnotation namedQuery = namedQueries.nestedAnnotations().next();
-		namedQuery.addHint(0).setName("BAZ");
-		
-		assertEquals("BAZ", namedQuery.hintAt(0).getName());
-		assertEquals("BAR", namedQuery.hintAt(1).getName());
-		assertNull(namedQuery.hintAt(2).getName());
-		assertEquals(3, namedQuery.hintsSize());
-	
-		namedQuery.moveHint(0, 2);
-		
-		assertNull(namedQuery.hintAt(0).getName());
-		assertEquals("BAZ", namedQuery.hintAt(1).getName());
-		assertEquals("BAR", namedQuery.hintAt(2).getName());
-		assertEquals(3, namedQuery.hintsSize());
-		assertSourceContains("@NamedQueries(@NamedQuery(hints = {@QueryHint, @QueryHint(name = \"BAZ\"), @QueryHint(name = \"BAR\", value = \"FOO\")}))", cu);
-	}
-	
-	public void testAddNamedQueryCopyExisting() throws Exception {
-		ICompilationUnit cu = createTestNamedQuery();
-		JavaResourcePersistentType typeResource = buildJavaTypeResource(cu);
-		
-		NamedQueryAnnotation namedQuery = (NamedQueryAnnotation) typeResource.addSupportingAnnotation(1, JPA.NAMED_QUERY, JPA.NAMED_QUERIES);
-		namedQuery.setName("BAR");
-		assertSourceContains("@NamedQueries({@NamedQuery(name = \"foo\", query = \"bar\", hints = @QueryHint(name = \"BAR\", value = \"FOO\")),@NamedQuery(name = \"BAR\")})", cu);
-		
-		assertNull(typeResource.getSupportingAnnotation(JPA.NAMED_QUERY));
-		assertNotNull(typeResource.getSupportingAnnotation(JPA.NAMED_QUERIES));
-		assertEquals(2, CollectionTools.size(typeResource.supportingAnnotations(JPA.NAMED_QUERY, JPA.NAMED_QUERIES)));
-	}
-	
-	public void testAddNamedQueryToBeginningOfList() throws Exception {
-		ICompilationUnit cu = createTestNamedQuery();
-		JavaResourcePersistentType typeResource = buildJavaTypeResource(cu);
-		
-		NamedQueryAnnotation namedQuery = (NamedQueryAnnotation) typeResource.addSupportingAnnotation(1, JPA.NAMED_QUERY, JPA.NAMED_QUERIES);
-		namedQuery.setName("BAR");
-		assertSourceContains("@NamedQueries({@NamedQuery(name = \"foo\", query = \"bar\", hints = @QueryHint(name = \"BAR\", value = \"FOO\")),@NamedQuery(name = \"BAR\")})", cu);
-		
-		
-		namedQuery = (NamedQueryAnnotation) typeResource.addSupportingAnnotation(0, JPA.NAMED_QUERY, JPA.NAMED_QUERIES);
-		namedQuery.setName("BAZ");
-		assertSourceContains("@NamedQueries({@NamedQuery(name = \"BAZ\"),@NamedQuery(name = \"foo\", query = \"bar\", hints = @QueryHint(name = \"BAR\", value = \"FOO\")), @NamedQuery(name = \"BAR\")})", cu);
-
-		Iterator<NestableAnnotation> namedQueries = typeResource.supportingAnnotations(JPA.NAMED_QUERY, JPA.NAMED_QUERIES);
-		assertEquals("BAZ", ((NamedQueryAnnotation) namedQueries.next()).getName());
-		assertEquals("foo", ((NamedQueryAnnotation) namedQueries.next()).getName());
-		assertEquals("BAR", ((NamedQueryAnnotation) namedQueries.next()).getName());
-
-		assertNull(typeResource.getSupportingAnnotation(JPA.NAMED_QUERY));
-		assertNotNull(typeResource.getSupportingAnnotation(JPA.NAMED_QUERIES));
-		assertEquals(3, CollectionTools.size(typeResource.supportingAnnotations(JPA.NAMED_QUERY, JPA.NAMED_QUERIES)));
-	}
-
-	public void testRemoveNamedQueryCopyExisting() throws Exception {
-		ICompilationUnit cu = createTestNamedQuery();
-		JavaResourcePersistentType typeResource = buildJavaTypeResource(cu);
-		
-		NamedQueryAnnotation namedQuery = (NamedQueryAnnotation) typeResource.addSupportingAnnotation(1, JPA.NAMED_QUERY, JPA.NAMED_QUERIES);
-		namedQuery.setName("BAR");
-		assertSourceContains("@NamedQueries({@NamedQuery(name = \"foo\", query = \"bar\", hints = @QueryHint(name = \"BAR\", value = \"FOO\")),@NamedQuery(name = \"BAR\")})", cu);
-		
-		typeResource.removeSupportingAnnotation(1, JPA.NAMED_QUERY, JPA.NAMED_QUERIES);
-		assertSourceContains("@NamedQuery(name = \"foo\", query = \"bar\", hints = @QueryHint(name = \"BAR\", value = \"FOO\"))", cu);
-	}
-	
-}
diff --git a/jpa/tests/org.eclipse.jpt.core.tests/src/org/eclipse/jpt/core/tests/internal/resource/java/NamedQueryTests.java b/jpa/tests/org.eclipse.jpt.core.tests/src/org/eclipse/jpt/core/tests/internal/resource/java/NamedQueryTests.java
deleted file mode 100644
index 520c3c6..0000000
--- a/jpa/tests/org.eclipse.jpt.core.tests/src/org/eclipse/jpt/core/tests/internal/resource/java/NamedQueryTests.java
+++ /dev/null
@@ -1,259 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.core.tests.internal.resource.java;
-
-import java.util.Iterator;
-import java.util.ListIterator;
-import org.eclipse.jdt.core.ICompilationUnit;
-import org.eclipse.jpt.core.resource.java.JPA;
-import org.eclipse.jpt.core.resource.java.JavaResourcePersistentType;
-import org.eclipse.jpt.core.resource.java.NamedQueryAnnotation;
-import org.eclipse.jpt.core.resource.java.QueryHintAnnotation;
-import org.eclipse.jpt.utility.internal.iterators.ArrayIterator;
-
-@SuppressWarnings("nls")
-public class NamedQueryTests extends JavaResourceModelTestCase {
-
-	private static final String QUERY_NAME = "myQuery";
-	private static final String QUERY_QUERY = "SELECT name FROM Employee";
-	
-	public NamedQueryTests(String name) {
-		super(name);
-	}
-	
-	private ICompilationUnit createTestNamedQuery() throws Exception {
-		return this.createTestType(new DefaultAnnotationWriter() {
-			@Override
-			public Iterator<String> imports() {
-				return new ArrayIterator<String>(JPA.NAMED_QUERY);
-			}
-			@Override
-			public void appendTypeAnnotationTo(StringBuilder sb) {
-				sb.append("@NamedQuery");
-			}
-		});
-	}
-	
-	private ICompilationUnit createTestNamedQueryWithName() throws Exception {
-		return createTestNamedQueryWithStringElement("name", QUERY_NAME);
-	}
-	
-	private ICompilationUnit createTestNamedQueryWithQuery() throws Exception {
-		return createTestNamedQueryWithStringElement("query", QUERY_QUERY);
-	}
-	
-	private ICompilationUnit createTestNamedQueryWithStringElement(final String elementName, final String value) throws Exception {
-		return this.createTestType(new DefaultAnnotationWriter() {
-			@Override
-			public Iterator<String> imports() {
-				return new ArrayIterator<String>(JPA.NAMED_QUERY);
-			}
-			@Override
-			public void appendTypeAnnotationTo(StringBuilder sb) {
-				sb.append("@NamedQuery(" + elementName + " = \"" + value + "\")");
-			}
-		});
-	}
-
-	private ICompilationUnit createTestNamedQueryWithQueryHints() throws Exception {
-		return this.createTestType(new DefaultAnnotationWriter() {
-			@Override
-			public Iterator<String> imports() {
-				return new ArrayIterator<String>(JPA.NAMED_QUERY, JPA.QUERY_HINT);
-			}
-			@Override
-			public void appendTypeAnnotationTo(StringBuilder sb) {
-				sb.append("@NamedQuery(hints = {@QueryHint(name = \"BAR\", value = \"FOO\"), @QueryHint})");
-			}
-		});
-	}
-
-	public void testNamedQuery() throws Exception {
-		ICompilationUnit cu = this.createTestNamedQuery();
-		JavaResourcePersistentType typeResource = buildJavaTypeResource(cu);
-		
-		NamedQueryAnnotation namedQuery = (NamedQueryAnnotation) typeResource.getSupportingAnnotation(JPA.NAMED_QUERY);
-		assertNotNull(namedQuery);
-	}
-
-	public void testGetName() throws Exception {
-		ICompilationUnit cu = this.createTestNamedQueryWithName();
-		JavaResourcePersistentType typeResource = buildJavaTypeResource(cu); 
-		
-		NamedQueryAnnotation namedQuery = (NamedQueryAnnotation) typeResource.getSupportingAnnotation(JPA.NAMED_QUERY);
-		assertEquals(QUERY_NAME, namedQuery.getName());
-	}
-
-	public void testSetName() throws Exception {
-		ICompilationUnit cu = this.createTestNamedQueryWithName();
-		JavaResourcePersistentType typeResource = buildJavaTypeResource(cu); 
-		
-		NamedQueryAnnotation namedQuery = (NamedQueryAnnotation) typeResource.getSupportingAnnotation(JPA.NAMED_QUERY);
-		assertEquals(QUERY_NAME, namedQuery.getName());
-		
-		namedQuery.setName("foo");
-		assertEquals("foo", namedQuery.getName());
-		
-		assertSourceContains("@NamedQuery(name = \"foo\")", cu);
-		
-		namedQuery.setName(null);
-		assertNull(namedQuery.getName());
-		
-		assertSourceDoesNotContain("@NamedQuery", cu);
-	}
-
-	public void testGetQuery() throws Exception {
-		ICompilationUnit cu = this.createTestNamedQueryWithQuery();
-		JavaResourcePersistentType typeResource = buildJavaTypeResource(cu); 
-		
-		NamedQueryAnnotation namedQuery = (NamedQueryAnnotation) typeResource.getSupportingAnnotation(JPA.NAMED_QUERY);
-		assertEquals(QUERY_QUERY, namedQuery.getQuery());
-	}
-
-	public void testSetQuery() throws Exception {
-		ICompilationUnit cu = this.createTestNamedQueryWithQuery();
-		JavaResourcePersistentType typeResource = buildJavaTypeResource(cu); 
-		
-		NamedQueryAnnotation namedQuery = (NamedQueryAnnotation) typeResource.getSupportingAnnotation(JPA.NAMED_QUERY);
-		assertEquals(QUERY_QUERY, namedQuery.getQuery());
-		
-		namedQuery.setQuery("foo");
-		assertEquals("foo", namedQuery.getQuery());
-		
-		assertSourceContains("@NamedQuery(query = \"foo\")", cu);
-		
-		namedQuery.setQuery(null);
-		assertNull(namedQuery.getQuery());
-		
-		assertSourceDoesNotContain("@NamedQuery", cu);
-	}
-	
-	public void testHints() throws Exception {
-		ICompilationUnit cu = this.createTestNamedQuery();
-		JavaResourcePersistentType typeResource = buildJavaTypeResource(cu); 
-		
-		NamedQueryAnnotation namedQuery = (NamedQueryAnnotation) typeResource.getSupportingAnnotation(JPA.NAMED_QUERY);
-		
-		assertEquals(0, namedQuery.hintsSize());
-	}
-	
-	public void testHints2() throws Exception {
-		ICompilationUnit cu = this.createTestNamedQuery();
-		JavaResourcePersistentType typeResource = buildJavaTypeResource(cu); 
-		
-		NamedQueryAnnotation namedQuery = (NamedQueryAnnotation) typeResource.getSupportingAnnotation(JPA.NAMED_QUERY);
-		
-		namedQuery.addHint(0);
-		namedQuery.addHint(1);
-		
-		assertEquals(2, namedQuery.hintsSize());
-	}
-	
-	public void testHints3() throws Exception {
-		ICompilationUnit cu = this.createTestNamedQueryWithQueryHints();
-		JavaResourcePersistentType typeResource = buildJavaTypeResource(cu); 
-		
-		NamedQueryAnnotation namedQuery = (NamedQueryAnnotation) typeResource.getSupportingAnnotation(JPA.NAMED_QUERY);
-		
-		assertEquals(2, namedQuery.hintsSize());
-		
-		ListIterator<QueryHintAnnotation> iterator = namedQuery.hints();
-		assertEquals("BAR", iterator.next().getName());
-		assertNull(iterator.next().getName());
-	}
-	
-	public void testAddHint() throws Exception {
-		ICompilationUnit cu = this.createTestNamedQuery();
-		JavaResourcePersistentType typeResource = buildJavaTypeResource(cu); 
-		
-		NamedQueryAnnotation namedQuery = (NamedQueryAnnotation) typeResource.getSupportingAnnotation(JPA.NAMED_QUERY);
-		
-		namedQuery.addHint(0).setName("FOO");
-		namedQuery.addHint(1);
-		QueryHintAnnotation queryHint = namedQuery.addHint(0);
-		queryHint.setName("BAR");
-
-		assertEquals("BAR", namedQuery.hintAt(0).getName());
-		assertEquals("FOO", namedQuery.hintAt(1).getName());
-		assertNull(namedQuery.hintAt(2).getName());
-		assertSourceContains("@NamedQuery(hints = {@QueryHint(name = \"BAR\"),@QueryHint(name = \"FOO\"), @QueryHint})", cu);
-	}
-	
-	public void testRemoveHint() throws Exception {
-		ICompilationUnit cu = this.createTestNamedQueryWithQueryHints();
-		JavaResourcePersistentType typeResource = buildJavaTypeResource(cu); 
-		
-		NamedQueryAnnotation namedQuery = (NamedQueryAnnotation) typeResource.getSupportingAnnotation(JPA.NAMED_QUERY);
-		namedQuery.addHint(0).setName("BAZ");
-		
-		assertEquals("BAZ", namedQuery.hintAt(0).getName());
-		assertEquals("BAR", namedQuery.hintAt(1).getName());
-		assertNull(namedQuery.hintAt(2).getName());
-		assertEquals(3, namedQuery.hintsSize());
-		
-		namedQuery.removeHint(2);
-		assertEquals("BAZ", namedQuery.hintAt(0).getName());
-		assertEquals("BAR", namedQuery.hintAt(1).getName());
-		assertEquals(2, namedQuery.hintsSize());
-		assertSourceContains("@NamedQuery(hints = {@QueryHint(name = \"BAZ\"), @QueryHint(name = \"BAR\", value = \"FOO\")})", cu);
-		
-		namedQuery.removeHint(0);
-		assertEquals("BAR", namedQuery.hintAt(0).getName());
-		assertEquals(1, namedQuery.hintsSize());
-		assertSourceContains("@NamedQuery(hints = @QueryHint(name = \"BAR\", value = \"FOO\"))", cu);
-		
-		namedQuery.removeHint(0);
-		assertEquals(0, namedQuery.hintsSize());
-		assertSourceDoesNotContain("@NamedQuery", cu);
-	}
-	
-	public void testMoveHint() throws Exception {
-		ICompilationUnit cu = this.createTestNamedQueryWithQueryHints();
-		JavaResourcePersistentType typeResource = buildJavaTypeResource(cu); 
-		
-		NamedQueryAnnotation namedQuery = (NamedQueryAnnotation) typeResource.getSupportingAnnotation(JPA.NAMED_QUERY);
-		namedQuery.addHint(0).setName("BAZ");
-		
-		assertEquals("BAZ", namedQuery.hintAt(0).getName());
-		assertEquals("BAR", namedQuery.hintAt(1).getName());
-		assertNull(namedQuery.hintAt(2).getName());
-		assertEquals(3, namedQuery.hintsSize());
-	
-		namedQuery.moveHint(2, 0);
-		
-		assertEquals("BAR", namedQuery.hintAt(0).getName());
-		assertNull(namedQuery.hintAt(1).getName());
-		assertEquals("BAZ", namedQuery.hintAt(2).getName());
-		assertEquals(3, namedQuery.hintsSize());
-		assertSourceContains("@NamedQuery(hints = {@QueryHint(name = \"BAR\", value = \"FOO\"), @QueryHint, @QueryHint(name = \"BAZ\")})", cu);
-	}
-	
-	public void testMoveHint2() throws Exception {
-		ICompilationUnit cu = this.createTestNamedQueryWithQueryHints();
-		JavaResourcePersistentType typeResource = buildJavaTypeResource(cu); 
-		
-		NamedQueryAnnotation namedQuery = (NamedQueryAnnotation) typeResource.getSupportingAnnotation(JPA.NAMED_QUERY);
-		namedQuery.addHint(0).setName("BAZ");
-		
-		assertEquals("BAZ", namedQuery.hintAt(0).getName());
-		assertEquals("BAR", namedQuery.hintAt(1).getName());
-		assertNull(namedQuery.hintAt(2).getName());
-		assertEquals(3, namedQuery.hintsSize());
-	
-		namedQuery.moveHint(0, 2);
-		
-		assertNull(namedQuery.hintAt(0).getName());
-		assertEquals("BAZ", namedQuery.hintAt(1).getName());
-		assertEquals("BAR", namedQuery.hintAt(2).getName());
-		assertEquals(3, namedQuery.hintsSize());
-		assertSourceContains("@NamedQuery(hints = {@QueryHint, @QueryHint(name = \"BAZ\"), @QueryHint(name = \"BAR\", value = \"FOO\")})", cu);
-	}
-	
-}
diff --git a/jpa/tests/org.eclipse.jpt.core.tests/src/org/eclipse/jpt/core/tests/internal/resource/java/OneToManyTests.java b/jpa/tests/org.eclipse.jpt.core.tests/src/org/eclipse/jpt/core/tests/internal/resource/java/OneToManyTests.java
deleted file mode 100644
index 3040f80..0000000
--- a/jpa/tests/org.eclipse.jpt.core.tests/src/org/eclipse/jpt/core/tests/internal/resource/java/OneToManyTests.java
+++ /dev/null
@@ -1,397 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.core.tests.internal.resource.java;
-
-import java.util.Iterator;
-import org.eclipse.jdt.core.ICompilationUnit;
-import org.eclipse.jpt.core.resource.java.FetchType;
-import org.eclipse.jpt.core.resource.java.JPA;
-import org.eclipse.jpt.core.resource.java.JavaResourcePersistentAttribute;
-import org.eclipse.jpt.core.resource.java.JavaResourcePersistentType;
-import org.eclipse.jpt.core.resource.java.OneToManyAnnotation;
-import org.eclipse.jpt.utility.internal.iterators.ArrayIterator;
-
-@SuppressWarnings("nls")
-public class OneToManyTests extends JavaResourceModelTestCase {
-	
-	public OneToManyTests(String name) {
-		super(name);
-	}
-
-	private ICompilationUnit createTestOneToMany() throws Exception {
-		return this.createTestType(new DefaultAnnotationWriter() {
-			@Override
-			public Iterator<String> imports() {
-				return new ArrayIterator<String>(JPA.ONE_TO_MANY);
-			}
-			@Override
-			public void appendIdFieldAnnotationTo(StringBuilder sb) {
-				sb.append("@OneToMany");
-			}
-		});
-	}
-	
-	private ICompilationUnit createTestOneToManyWithFetch() throws Exception {
-		return this.createTestType(new DefaultAnnotationWriter() {
-			@Override
-			public Iterator<String> imports() {
-				return new ArrayIterator<String>(JPA.ONE_TO_MANY, JPA.FETCH_TYPE);
-			}
-			@Override
-			public void appendIdFieldAnnotationTo(StringBuilder sb) {
-				sb.append("@OneToMany(fetch = FetchType.EAGER)");
-			}
-		});
-	}
-	
-	private ICompilationUnit createTestOneToManyWithTargetEntity() throws Exception {
-		return this.createTestType(new DefaultAnnotationWriter() {
-			@Override
-			public Iterator<String> imports() {
-				return new ArrayIterator<String>(JPA.ONE_TO_MANY);
-			}
-			@Override
-			public void appendIdFieldAnnotationTo(StringBuilder sb) {
-				sb.append("@OneToMany(targetEntity = AnnotationTestType.class)");
-			}
-		});
-	}
-	
-	private ICompilationUnit createTestOneToManyWithMappedBy() throws Exception {
-		return this.createTestType(new DefaultAnnotationWriter() {
-			@Override
-			public Iterator<String> imports() {
-				return new ArrayIterator<String>(JPA.ONE_TO_MANY);
-			}
-			@Override
-			public void appendIdFieldAnnotationTo(StringBuilder sb) {
-				sb.append("@OneToMany(mappedBy = \"foo\")");
-			}
-		});
-	}
-	
-	private ICompilationUnit createTestOneToManyWithCascade() throws Exception {
-		return this.createTestType(new DefaultAnnotationWriter() {
-			@Override
-			public Iterator<String> imports() {
-				return new ArrayIterator<String>(JPA.ONE_TO_MANY, JPA.CASCADE_TYPE);
-			}
-			@Override
-			public void appendIdFieldAnnotationTo(StringBuilder sb) {
-				sb.append("@OneToMany(cascade = CascadeType.ALL)");
-			}
-		});
-	}
-	
-	private ICompilationUnit createTestOneToManyWithMultipleCascade() throws Exception {
-		return this.createTestType(new DefaultAnnotationWriter() {
-			@Override
-			public Iterator<String> imports() {
-				return new ArrayIterator<String>(JPA.ONE_TO_MANY, JPA.CASCADE_TYPE);
-			}
-			@Override
-			public void appendIdFieldAnnotationTo(StringBuilder sb) {
-				sb.append("@OneToMany(cascade = {CascadeType.MERGE, CascadeType.REMOVE})");
-			}
-		});
-	}
-	
-	private ICompilationUnit createTestOneToManyWithDuplicateCascade() throws Exception {
-		return this.createTestType(new DefaultAnnotationWriter() {
-			@Override
-			public Iterator<String> imports() {
-				return new ArrayIterator<String>(JPA.ONE_TO_MANY, JPA.CASCADE_TYPE);
-			}
-			@Override
-			public void appendIdFieldAnnotationTo(StringBuilder sb) {
-				sb.append("@OneToMany(cascade = {CascadeType.MERGE, CascadeType.MERGE})");
-			}
-		});
-	}
-
-	public void testOneToMany() throws Exception {
-		ICompilationUnit cu = this.createTestOneToMany();
-		JavaResourcePersistentType typeResource = buildJavaTypeResource(cu); 
-		JavaResourcePersistentAttribute attributeResource = typeResource.fields().next();
-		
-		OneToManyAnnotation oneToMany = (OneToManyAnnotation) attributeResource.getMappingAnnotation(JPA.ONE_TO_MANY);
-		assertNotNull(oneToMany);
-	}
-	
-	public void testGetFetch() throws Exception {
-		ICompilationUnit cu = this.createTestOneToManyWithFetch();
-		JavaResourcePersistentType typeResource = buildJavaTypeResource(cu);
-		JavaResourcePersistentAttribute attributeResource = typeResource.fields().next();
-		
-		OneToManyAnnotation oneToMany = (OneToManyAnnotation) attributeResource.getMappingAnnotation(JPA.ONE_TO_MANY);
-		assertEquals(FetchType.EAGER, oneToMany.getFetch());
-	}
-
-	public void testSetFetch() throws Exception {
-		ICompilationUnit cu = this.createTestOneToManyWithFetch();
-		JavaResourcePersistentType typeResource = buildJavaTypeResource(cu);
-		JavaResourcePersistentAttribute attributeResource = typeResource.fields().next();
-		
-		OneToManyAnnotation oneToMany = (OneToManyAnnotation) attributeResource.getMappingAnnotation(JPA.ONE_TO_MANY);
-		assertEquals(FetchType.EAGER, oneToMany.getFetch());
-		
-		oneToMany.setFetch(FetchType.LAZY);
-		assertEquals(FetchType.LAZY, oneToMany.getFetch());
-		
-		assertSourceContains("@OneToMany(fetch = LAZY)", cu);
-	}
-	
-	public void testSetFetchNull() throws Exception {
-		ICompilationUnit cu = this.createTestOneToManyWithFetch();
-		JavaResourcePersistentType typeResource = buildJavaTypeResource(cu);
-		JavaResourcePersistentAttribute attributeResource = typeResource.fields().next();
-		
-		OneToManyAnnotation oneToMany = (OneToManyAnnotation) attributeResource.getMappingAnnotation(JPA.ONE_TO_MANY);
-		assertEquals(FetchType.EAGER, oneToMany.getFetch());
-		
-		oneToMany.setFetch(null);
-		assertNull(oneToMany.getFetch());
-		
-		assertSourceContains("@OneToMany", cu);
-		assertSourceDoesNotContain("fetch", cu);
-	}
-	
-	
-	public void testGetTargetEntity() throws Exception {
-		ICompilationUnit cu = this.createTestOneToManyWithTargetEntity();
-		JavaResourcePersistentType typeResource = buildJavaTypeResource(cu);
-		JavaResourcePersistentAttribute attributeResource = typeResource.fields().next();
-		
-		OneToManyAnnotation oneToMany = (OneToManyAnnotation) attributeResource.getMappingAnnotation(JPA.ONE_TO_MANY);
-		assertEquals(TYPE_NAME, oneToMany.getTargetEntity());
-	}
-	
-	public void testSetTargetEntity() throws Exception {
-		ICompilationUnit cu = this.createTestOneToManyWithTargetEntity();
-		JavaResourcePersistentType typeResource = buildJavaTypeResource(cu);
-		JavaResourcePersistentAttribute attributeResource = typeResource.fields().next();
-		
-		OneToManyAnnotation oneToMany = (OneToManyAnnotation) attributeResource.getMappingAnnotation(JPA.ONE_TO_MANY);
-		assertEquals(TYPE_NAME, oneToMany.getTargetEntity());
-		
-		oneToMany.setTargetEntity("Foo");
-		
-		assertSourceContains("@OneToMany(targetEntity = Foo.class)", cu);
-	}
-	
-	public void testSetTargetEntityNull() throws Exception {
-		ICompilationUnit cu = this.createTestOneToManyWithTargetEntity();
-		JavaResourcePersistentType typeResource = buildJavaTypeResource(cu);
-		JavaResourcePersistentAttribute attributeResource = typeResource.fields().next();
-		
-		OneToManyAnnotation oneToMany = (OneToManyAnnotation) attributeResource.getMappingAnnotation(JPA.ONE_TO_MANY);
-		assertEquals(TYPE_NAME, oneToMany.getTargetEntity());
-		
-		oneToMany.setTargetEntity(null);
-		
-		assertSourceContains("@OneToMany", cu);
-		assertSourceDoesNotContain("targetEntity", cu);
-	}
-	
-	
-	public void testGetFullyQualifiedTargetEntity() throws Exception {
-		ICompilationUnit cu = this.createTestOneToManyWithTargetEntity();
-		JavaResourcePersistentType typeResource = buildJavaTypeResource(cu);
-		JavaResourcePersistentAttribute attributeResource = typeResource.fields().next();
-		
-		OneToManyAnnotation oneToMany = (OneToManyAnnotation) attributeResource.getMappingAnnotation(JPA.ONE_TO_MANY);
-		assertEquals(FULLY_QUALIFIED_TYPE_NAME, oneToMany.getFullyQualifiedTargetEntityClassName());
-		
-		oneToMany.setTargetEntity("Foo");
-		
-		assertSourceContains("@OneToMany(targetEntity = Foo.class)", cu);
-		
-		assertEquals("Foo", oneToMany.getTargetEntity());
-		
-		assertEquals("Foo", oneToMany.getFullyQualifiedTargetEntityClassName()); //bug 196200 changed this
-	}
-	
-	public void testGetMappedBy() throws Exception {
-		ICompilationUnit cu = this.createTestOneToManyWithMappedBy();
-		JavaResourcePersistentType typeResource = buildJavaTypeResource(cu); 
-		JavaResourcePersistentAttribute attributeResource = typeResource.fields().next();
-		
-		OneToManyAnnotation oneToMany = (OneToManyAnnotation) attributeResource.getMappingAnnotation(JPA.ONE_TO_MANY);
-		assertEquals("foo", oneToMany.getMappedBy());
-	}
-
-
-	public void testGetMappedByNull() throws Exception {
-		ICompilationUnit cu = this.createTestOneToMany();
-		JavaResourcePersistentType typeResource = buildJavaTypeResource(cu); 
-		JavaResourcePersistentAttribute attributeResource = typeResource.fields().next();
-		
-		OneToManyAnnotation oneToMany = (OneToManyAnnotation) attributeResource.getMappingAnnotation(JPA.ONE_TO_MANY);
-		assertEquals(null, oneToMany.getMappedBy());
-	}
-
-	public void testSetMappedBy() throws Exception {
-		ICompilationUnit cu = this.createTestOneToMany();
-		JavaResourcePersistentType typeResource = buildJavaTypeResource(cu); 
-		JavaResourcePersistentAttribute attributeResource = typeResource.fields().next();
-		
-		OneToManyAnnotation oneToMany = (OneToManyAnnotation) attributeResource.getMappingAnnotation(JPA.ONE_TO_MANY);
-		assertNull(oneToMany.getMappedBy());
-		oneToMany.setMappedBy("bar");
-		assertEquals("bar", oneToMany.getMappedBy());
-		
-		assertSourceContains("@OneToMany(mappedBy = \"bar\")", cu);
-	}
-	
-	public void testSetMappedByNull() throws Exception {
-		ICompilationUnit cu = this.createTestOneToManyWithMappedBy();
-		JavaResourcePersistentType typeResource = buildJavaTypeResource(cu); 
-		JavaResourcePersistentAttribute attributeResource = typeResource.fields().next();
-		
-		OneToManyAnnotation oneToMany = (OneToManyAnnotation) attributeResource.getMappingAnnotation(JPA.ONE_TO_MANY);
-		assertEquals("foo", oneToMany.getMappedBy());
-		
-		oneToMany.setMappedBy(null);
-		assertNull(oneToMany.getMappedBy());
-		
-		assertSourceContains("@OneToMany", cu);
-		assertSourceDoesNotContain("mappedBy", cu);
-	}
-	
-	public void testSetCascadeAll() throws Exception {
-		ICompilationUnit cu = this.createTestOneToMany();
-		JavaResourcePersistentType typeResource = buildJavaTypeResource(cu); 
-		JavaResourcePersistentAttribute attributeResource = typeResource.fields().next();
-		
-		OneToManyAnnotation oneToMany = (OneToManyAnnotation) attributeResource.getMappingAnnotation(JPA.ONE_TO_MANY);
-		assertFalse(oneToMany.isCascadeAll());
-	
-		oneToMany.setCascadeAll(true);
-		assertSourceContains("@OneToMany(cascade = ALL)", cu);
-		
-		assertTrue(oneToMany.isCascadeAll());
-	}
-	
-	public void testSetCascadeMerge() throws Exception {
-		ICompilationUnit cu = this.createTestOneToMany();
-		JavaResourcePersistentType typeResource = buildJavaTypeResource(cu); 
-		JavaResourcePersistentAttribute attributeResource = typeResource.fields().next();
-		
-		OneToManyAnnotation oneToMany = (OneToManyAnnotation) attributeResource.getMappingAnnotation(JPA.ONE_TO_MANY);
-		assertFalse(oneToMany.isCascadeMerge());
-	
-		oneToMany.setCascadeMerge(true);
-		assertSourceContains("@OneToMany(cascade = MERGE)", cu);
-		
-		assertTrue(oneToMany.isCascadeMerge());
-	}
-	
-	public void testSetCascadePersist() throws Exception {
-		ICompilationUnit cu = this.createTestOneToMany();
-		JavaResourcePersistentType typeResource = buildJavaTypeResource(cu); 
-		JavaResourcePersistentAttribute attributeResource = typeResource.fields().next();
-		
-		OneToManyAnnotation oneToMany = (OneToManyAnnotation) attributeResource.getMappingAnnotation(JPA.ONE_TO_MANY);
-		assertFalse(oneToMany.isCascadePersist());
-	
-		oneToMany.setCascadePersist(true);
-		assertSourceContains("@OneToMany(cascade = PERSIST)", cu);
-		
-		assertTrue(oneToMany.isCascadePersist());
-	}
-	
-	public void testSetCascadeRemove() throws Exception {
-		ICompilationUnit cu = this.createTestOneToMany();
-		JavaResourcePersistentType typeResource = buildJavaTypeResource(cu); 
-		JavaResourcePersistentAttribute attributeResource = typeResource.fields().next();
-		
-		OneToManyAnnotation oneToMany = (OneToManyAnnotation) attributeResource.getMappingAnnotation(JPA.ONE_TO_MANY);
-		assertFalse(oneToMany.isCascadeRemove());
-	
-		oneToMany.setCascadeRemove(true);
-		assertSourceContains("@OneToMany(cascade = REMOVE)", cu);
-		
-		assertTrue(oneToMany.isCascadeRemove());
-	}
-
-	public void testSetCascadeRefresh() throws Exception {
-		ICompilationUnit cu = this.createTestOneToMany();
-		JavaResourcePersistentType typeResource = buildJavaTypeResource(cu); 
-		JavaResourcePersistentAttribute attributeResource = typeResource.fields().next();
-		
-		OneToManyAnnotation oneToMany = (OneToManyAnnotation) attributeResource.getMappingAnnotation(JPA.ONE_TO_MANY);
-		assertFalse(oneToMany.isCascadeRefresh());
-	
-		oneToMany.setCascadeRefresh(true);
-		assertSourceContains("@OneToMany(cascade = REFRESH)", cu);
-		
-		assertTrue(oneToMany.isCascadeRefresh());
-	}
-
-	public void testCascadeMoreThanOnce() throws Exception {
-		ICompilationUnit cu = this.createTestOneToManyWithCascade();
-		JavaResourcePersistentType typeResource = buildJavaTypeResource(cu); 
-		JavaResourcePersistentAttribute attributeResource = typeResource.fields().next();
-		
-		OneToManyAnnotation oneToMany = (OneToManyAnnotation) attributeResource.getMappingAnnotation(JPA.ONE_TO_MANY);
-		assertTrue(oneToMany.isCascadeAll());
-		
-		oneToMany.setCascadeAll(true);
-		assertTrue(oneToMany.isCascadeAll());
-		//a second CascadeType.All should not have been added
-		assertSourceContains("@OneToMany(cascade = CascadeType.ALL)", cu);
-		
-		oneToMany.setCascadeAll(false);
-		assertFalse(oneToMany.isCascadeAll());
-		
-		assertSourceDoesNotContain("cascade", cu);
-		
-		//test setting cascadeAll to false again, should just do nothing
-		oneToMany.setCascadeAll(false);
-		assertFalse(oneToMany.isCascadeAll());
-		
-		assertSourceDoesNotContain("cascade", cu);
-	}
-	
-	public void testDuplicateCascade() throws Exception {
-		ICompilationUnit cu = this.createTestOneToManyWithDuplicateCascade();
-		JavaResourcePersistentType typeResource = buildJavaTypeResource(cu); 
-		JavaResourcePersistentAttribute attributeResource = typeResource.fields().next();
-		
-		OneToManyAnnotation oneToMany = (OneToManyAnnotation) attributeResource.getMappingAnnotation(JPA.ONE_TO_MANY);
-		assertTrue(oneToMany.isCascadeMerge());
-		
-		oneToMany.setCascadeMerge(false);//TODO should the resource model handle this and remove both MERGE 
-										//settings instead of having to set it false twice?
-		assertTrue(oneToMany.isCascadeMerge());
-		
-		oneToMany.setCascadeMerge(false);
-		assertFalse(oneToMany.isCascadeMerge());
-		
-		assertSourceDoesNotContain("cascade", cu);
-	}
-	
-	public void testMultipleCascade() throws Exception {
-		ICompilationUnit cu = this.createTestOneToManyWithMultipleCascade();
-		JavaResourcePersistentType typeResource = buildJavaTypeResource(cu); 
-		JavaResourcePersistentAttribute attributeResource = typeResource.fields().next();
-		
-		OneToManyAnnotation oneToMany = (OneToManyAnnotation) attributeResource.getMappingAnnotation(JPA.ONE_TO_MANY);
-		assertTrue(oneToMany.isCascadeMerge());
-		assertTrue(oneToMany.isCascadeRemove());
-		
-		oneToMany.setCascadeMerge(false);
-		assertSourceContains("@OneToMany(cascade = REMOVE)", cu);
-		
-		oneToMany.setCascadeRemove(false);		
-		assertSourceDoesNotContain("cascade", cu);
-	}
-
-}
diff --git a/jpa/tests/org.eclipse.jpt.core.tests/src/org/eclipse/jpt/core/tests/internal/resource/java/OneToOneTests.java b/jpa/tests/org.eclipse.jpt.core.tests/src/org/eclipse/jpt/core/tests/internal/resource/java/OneToOneTests.java
deleted file mode 100644
index 681f494..0000000
--- a/jpa/tests/org.eclipse.jpt.core.tests/src/org/eclipse/jpt/core/tests/internal/resource/java/OneToOneTests.java
+++ /dev/null
@@ -1,447 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.core.tests.internal.resource.java;
-
-import java.util.Iterator;
-import org.eclipse.jdt.core.ICompilationUnit;
-import org.eclipse.jpt.core.resource.java.FetchType;
-import org.eclipse.jpt.core.resource.java.JPA;
-import org.eclipse.jpt.core.resource.java.JavaResourcePersistentAttribute;
-import org.eclipse.jpt.core.resource.java.JavaResourcePersistentType;
-import org.eclipse.jpt.core.resource.java.OneToOneAnnotation;
-import org.eclipse.jpt.utility.internal.iterators.ArrayIterator;
-
-@SuppressWarnings("nls")
-public class OneToOneTests extends JavaResourceModelTestCase {
-	
-	public OneToOneTests(String name) {
-		super(name);
-	}
-
-	private ICompilationUnit createTestOneToOne() throws Exception {
-		return this.createTestType(new DefaultAnnotationWriter() {
-			@Override
-			public Iterator<String> imports() {
-				return new ArrayIterator<String>(JPA.ONE_TO_ONE);
-			}
-			@Override
-			public void appendIdFieldAnnotationTo(StringBuilder sb) {
-				sb.append("@OneToOne");
-			}
-		});
-	}
-	
-	private ICompilationUnit createTestOneToOneWithFetch() throws Exception {
-		return this.createTestType(new DefaultAnnotationWriter() {
-			@Override
-			public Iterator<String> imports() {
-				return new ArrayIterator<String>(JPA.ONE_TO_ONE, JPA.FETCH_TYPE);
-			}
-			@Override
-			public void appendIdFieldAnnotationTo(StringBuilder sb) {
-				sb.append("@OneToOne(fetch = FetchType.EAGER)");
-			}
-		});
-	}
-
-	private ICompilationUnit createTestOneToOneWithTargetEntity() throws Exception {
-		return this.createTestType(new DefaultAnnotationWriter() {
-			@Override
-			public Iterator<String> imports() {
-				return new ArrayIterator<String>(JPA.ONE_TO_ONE);
-			}
-			@Override
-			public void appendIdFieldAnnotationTo(StringBuilder sb) {
-				sb.append("@OneToOne(targetEntity = AnnotationTestType.class)");
-			}
-		});
-	}
-
-	private ICompilationUnit createTestOneToOneWithOptional() throws Exception {
-		return this.createTestType(new DefaultAnnotationWriter() {
-			@Override
-			public Iterator<String> imports() {
-				return new ArrayIterator<String>(JPA.ONE_TO_ONE);
-			}
-			@Override
-			public void appendIdFieldAnnotationTo(StringBuilder sb) {
-				sb.append("@OneToOne(optional = true)");
-			}
-		});
-	}
-	
-	private ICompilationUnit createTestOneToOneWithMappedBy() throws Exception {
-		return this.createTestType(new DefaultAnnotationWriter() {
-			@Override
-			public Iterator<String> imports() {
-				return new ArrayIterator<String>(JPA.ONE_TO_ONE);
-			}
-			@Override
-			public void appendIdFieldAnnotationTo(StringBuilder sb) {
-				sb.append("@OneToOne(mappedBy = \"foo\")");
-			}
-		});
-	}
-	
-	private ICompilationUnit createTestOneToOneWithCascade() throws Exception {
-		return this.createTestType(new DefaultAnnotationWriter() {
-			@Override
-			public Iterator<String> imports() {
-				return new ArrayIterator<String>(JPA.ONE_TO_ONE, JPA.CASCADE_TYPE);
-			}
-			@Override
-			public void appendIdFieldAnnotationTo(StringBuilder sb) {
-				sb.append("@OneToOne(cascade = CascadeType.ALL)");
-			}
-		});
-	}
-	
-	private ICompilationUnit createTestOneToOneWithMultipleCascade() throws Exception {
-		return this.createTestType(new DefaultAnnotationWriter() {
-			@Override
-			public Iterator<String> imports() {
-				return new ArrayIterator<String>(JPA.ONE_TO_ONE, JPA.CASCADE_TYPE);
-			}
-			@Override
-			public void appendIdFieldAnnotationTo(StringBuilder sb) {
-				sb.append("@OneToOne(cascade = {CascadeType.MERGE, CascadeType.REMOVE})");
-			}
-		});
-	}
-	
-	private ICompilationUnit createTestOneToOneWithDuplicateCascade() throws Exception {
-		return this.createTestType(new DefaultAnnotationWriter() {
-			@Override
-			public Iterator<String> imports() {
-				return new ArrayIterator<String>(JPA.ONE_TO_ONE, JPA.CASCADE_TYPE);
-			}
-			@Override
-			public void appendIdFieldAnnotationTo(StringBuilder sb) {
-				sb.append("@OneToOne(cascade = {CascadeType.MERGE, CascadeType.MERGE})");
-			}
-		});
-	}
-
-	public void testOneToOne() throws Exception {
-		ICompilationUnit cu = this.createTestOneToOne();
-		JavaResourcePersistentType typeResource = buildJavaTypeResource(cu); 
-		JavaResourcePersistentAttribute attributeResource = typeResource.fields().next();
-		
-		OneToOneAnnotation oneToOne = (OneToOneAnnotation) attributeResource.getMappingAnnotation(JPA.ONE_TO_ONE);
-		assertNotNull(oneToOne);
-	}
-	
-	public void testGetFetch() throws Exception {
-		ICompilationUnit cu = this.createTestOneToOneWithFetch();
-		JavaResourcePersistentType typeResource = buildJavaTypeResource(cu);
-		JavaResourcePersistentAttribute attributeResource = typeResource.fields().next();
-		
-		OneToOneAnnotation oneToOne = (OneToOneAnnotation) attributeResource.getMappingAnnotation(JPA.ONE_TO_ONE);
-		assertEquals(FetchType.EAGER, oneToOne.getFetch());
-	}
-
-	public void testSetFetch() throws Exception {
-		ICompilationUnit cu = this.createTestOneToOneWithFetch();
-		JavaResourcePersistentType typeResource = buildJavaTypeResource(cu);
-		JavaResourcePersistentAttribute attributeResource = typeResource.fields().next();
-		
-		OneToOneAnnotation oneToOne = (OneToOneAnnotation) attributeResource.getMappingAnnotation(JPA.ONE_TO_ONE);
-		assertEquals(FetchType.EAGER, oneToOne.getFetch());
-		
-		oneToOne.setFetch(FetchType.LAZY);
-		assertEquals(FetchType.LAZY, oneToOne.getFetch());
-		
-		assertSourceContains("@OneToOne(fetch = LAZY)", cu);
-	}
-	
-	public void testSetFetchNull() throws Exception {
-		ICompilationUnit cu = this.createTestOneToOneWithFetch();
-		JavaResourcePersistentType typeResource = buildJavaTypeResource(cu);
-		JavaResourcePersistentAttribute attributeResource = typeResource.fields().next();
-		
-		OneToOneAnnotation oneToOne = (OneToOneAnnotation) attributeResource.getMappingAnnotation(JPA.ONE_TO_ONE);
-		assertEquals(FetchType.EAGER, oneToOne.getFetch());
-		
-		oneToOne.setFetch(null);
-		assertNull(oneToOne.getFetch());
-		
-		assertSourceContains("@OneToOne", cu);
-		assertSourceDoesNotContain("fetch", cu);
-	}
-	
-	
-	public void testGetTargetEntity() throws Exception {
-		ICompilationUnit cu = this.createTestOneToOneWithTargetEntity();
-		JavaResourcePersistentType typeResource = buildJavaTypeResource(cu);
-		JavaResourcePersistentAttribute attributeResource = typeResource.fields().next();
-		
-		OneToOneAnnotation oneToOne = (OneToOneAnnotation) attributeResource.getMappingAnnotation(JPA.ONE_TO_ONE);
-		assertEquals(TYPE_NAME, oneToOne.getTargetEntity());
-	}
-	
-	public void testSetTargetEntity() throws Exception {
-		ICompilationUnit cu = this.createTestOneToOneWithTargetEntity();
-		JavaResourcePersistentType typeResource = buildJavaTypeResource(cu);
-		JavaResourcePersistentAttribute attributeResource = typeResource.fields().next();
-		
-		OneToOneAnnotation oneToOne = (OneToOneAnnotation) attributeResource.getMappingAnnotation(JPA.ONE_TO_ONE);
-		assertEquals(TYPE_NAME, oneToOne.getTargetEntity());
-		
-		oneToOne.setTargetEntity("Foo");
-		
-		assertSourceContains("@OneToOne(targetEntity = Foo.class)", cu);
-	}
-	
-	public void testSetTargetEntityNull() throws Exception {
-		ICompilationUnit cu = this.createTestOneToOneWithTargetEntity();
-		JavaResourcePersistentType typeResource = buildJavaTypeResource(cu);
-		JavaResourcePersistentAttribute attributeResource = typeResource.fields().next();
-		
-		OneToOneAnnotation oneToOne = (OneToOneAnnotation) attributeResource.getMappingAnnotation(JPA.ONE_TO_ONE);
-		assertEquals(TYPE_NAME, oneToOne.getTargetEntity());
-		
-		oneToOne.setTargetEntity(null);
-		
-		assertSourceContains("@OneToOne", cu);
-		assertSourceDoesNotContain("targetEntity", cu);
-	}
-	
-	
-	public void testGetFullyQualifiedTargetEntity() throws Exception {
-		ICompilationUnit cu = this.createTestOneToOneWithTargetEntity();
-		JavaResourcePersistentType typeResource = buildJavaTypeResource(cu);
-		JavaResourcePersistentAttribute attributeResource = typeResource.fields().next();
-		
-		OneToOneAnnotation oneToOne = (OneToOneAnnotation) attributeResource.getMappingAnnotation(JPA.ONE_TO_ONE);
-		assertEquals(FULLY_QUALIFIED_TYPE_NAME, oneToOne.getFullyQualifiedTargetEntityClassName());
-		
-		oneToOne.setTargetEntity("Foo");
-		
-		assertSourceContains("@OneToOne(targetEntity = Foo.class)", cu);
-		
-		assertEquals("Foo", oneToOne.getTargetEntity());
-		
-		assertEquals("Foo", oneToOne.getFullyQualifiedTargetEntityClassName()); //bug 196200 changed this
-	}
-	
-	public void testGetOptional() throws Exception {
-		ICompilationUnit cu = this.createTestOneToOneWithOptional();
-		JavaResourcePersistentType typeResource = buildJavaTypeResource(cu);
-		JavaResourcePersistentAttribute attributeResource = typeResource.fields().next();
-		
-		OneToOneAnnotation oneToOne = (OneToOneAnnotation) attributeResource.getMappingAnnotation(JPA.ONE_TO_ONE);
-		assertEquals(Boolean.TRUE, oneToOne.getOptional());
-	}
-
-	public void testSetOptional() throws Exception {
-		ICompilationUnit cu = this.createTestOneToOneWithOptional();
-		JavaResourcePersistentType typeResource = buildJavaTypeResource(cu);
-		JavaResourcePersistentAttribute attributeResource = typeResource.fields().next();
-		
-		OneToOneAnnotation oneToOne = (OneToOneAnnotation) attributeResource.getMappingAnnotation(JPA.ONE_TO_ONE);
-		assertEquals(Boolean.TRUE, oneToOne.getOptional());
-		
-		oneToOne.setOptional(Boolean.FALSE);
-		assertEquals(Boolean.FALSE, oneToOne.getOptional());
-		
-		assertSourceContains("@OneToOne(optional = false)", cu);
-	}
-	
-	public void testSetOptionalNull() throws Exception {
-		ICompilationUnit cu = this.createTestOneToOneWithOptional();
-		JavaResourcePersistentType typeResource = buildJavaTypeResource(cu);
-		JavaResourcePersistentAttribute attributeResource = typeResource.fields().next();
-		
-		OneToOneAnnotation oneToOne = (OneToOneAnnotation) attributeResource.getMappingAnnotation(JPA.ONE_TO_ONE);
-		assertEquals(Boolean.TRUE, oneToOne.getOptional());
-		
-		oneToOne.setOptional(null);
-		assertNull(oneToOne.getOptional());
-		
-		assertSourceContains("@OneToOne", cu);
-		assertSourceDoesNotContain("optional", cu);
-	}
-	
-	public void testGetMappedBy() throws Exception {
-		ICompilationUnit cu = this.createTestOneToOneWithMappedBy();
-		JavaResourcePersistentType typeResource = buildJavaTypeResource(cu); 
-		JavaResourcePersistentAttribute attributeResource = typeResource.fields().next();
-		
-		OneToOneAnnotation oneToOne = (OneToOneAnnotation) attributeResource.getMappingAnnotation(JPA.ONE_TO_ONE);
-		assertEquals("foo", oneToOne.getMappedBy());
-	}
-
-	public void testGetMappedByNull() throws Exception {
-		ICompilationUnit cu = this.createTestOneToOne();
-		JavaResourcePersistentType typeResource = buildJavaTypeResource(cu); 
-		JavaResourcePersistentAttribute attributeResource = typeResource.fields().next();
-		
-		OneToOneAnnotation oneToOne = (OneToOneAnnotation) attributeResource.getMappingAnnotation(JPA.ONE_TO_ONE);
-		assertEquals(null, oneToOne.getMappedBy());
-	}
-
-	public void testSetMappedBy() throws Exception {
-		ICompilationUnit cu = this.createTestOneToOne();
-		JavaResourcePersistentType typeResource = buildJavaTypeResource(cu); 
-		JavaResourcePersistentAttribute attributeResource = typeResource.fields().next();
-		
-		OneToOneAnnotation oneToOne = (OneToOneAnnotation) attributeResource.getMappingAnnotation(JPA.ONE_TO_ONE);
-		assertNull(oneToOne.getMappedBy());
-		oneToOne.setMappedBy("bar");
-		assertEquals("bar", oneToOne.getMappedBy());
-		
-		assertSourceContains("@OneToOne(mappedBy = \"bar\")", cu);
-	}
-	
-	public void testSetMappedByNull() throws Exception {
-		ICompilationUnit cu = this.createTestOneToOneWithMappedBy();
-		JavaResourcePersistentType typeResource = buildJavaTypeResource(cu); 
-		JavaResourcePersistentAttribute attributeResource = typeResource.fields().next();
-		
-		OneToOneAnnotation oneToOne = (OneToOneAnnotation) attributeResource.getMappingAnnotation(JPA.ONE_TO_ONE);
-		assertEquals("foo", oneToOne.getMappedBy());
-		
-		oneToOne.setMappedBy(null);
-		assertNull(oneToOne.getMappedBy());
-		
-		assertSourceContains("@OneToOne", cu);
-		assertSourceDoesNotContain("mappedBy", cu);
-	}
-
-	public void testSetCascadeAll() throws Exception {
-		ICompilationUnit cu = this.createTestOneToOne();
-		JavaResourcePersistentType typeResource = buildJavaTypeResource(cu); 
-		JavaResourcePersistentAttribute attributeResource = typeResource.fields().next();
-		
-		OneToOneAnnotation oneToOne = (OneToOneAnnotation) attributeResource.getMappingAnnotation(JPA.ONE_TO_ONE);
-		assertFalse(oneToOne.isCascadeAll());
-	
-		oneToOne.setCascadeAll(true);
-		assertSourceContains("@OneToOne(cascade = ALL)", cu);
-		
-		assertTrue(oneToOne.isCascadeAll());
-	}
-	
-	public void testSetCascadeMerge() throws Exception {
-		ICompilationUnit cu = this.createTestOneToOne();
-		JavaResourcePersistentType typeResource = buildJavaTypeResource(cu); 
-		JavaResourcePersistentAttribute attributeResource = typeResource.fields().next();
-		
-		OneToOneAnnotation oneToOne = (OneToOneAnnotation) attributeResource.getMappingAnnotation(JPA.ONE_TO_ONE);
-		assertFalse(oneToOne.isCascadeMerge());
-	
-		oneToOne.setCascadeMerge(true);
-		assertSourceContains("@OneToOne(cascade = MERGE)", cu);
-		
-		assertTrue(oneToOne.isCascadeMerge());
-	}
-	
-	public void testSetCascadePersist() throws Exception {
-		ICompilationUnit cu = this.createTestOneToOne();
-		JavaResourcePersistentType typeResource = buildJavaTypeResource(cu); 
-		JavaResourcePersistentAttribute attributeResource = typeResource.fields().next();
-		
-		OneToOneAnnotation oneToOne = (OneToOneAnnotation) attributeResource.getMappingAnnotation(JPA.ONE_TO_ONE);
-		assertFalse(oneToOne.isCascadePersist());
-	
-		oneToOne.setCascadePersist(true);
-		assertSourceContains("@OneToOne(cascade = PERSIST)", cu);
-		
-		assertTrue(oneToOne.isCascadePersist());
-	}
-	
-	public void testSetCascadeRemove() throws Exception {
-		ICompilationUnit cu = this.createTestOneToOne();
-		JavaResourcePersistentType typeResource = buildJavaTypeResource(cu); 
-		JavaResourcePersistentAttribute attributeResource = typeResource.fields().next();
-		
-		OneToOneAnnotation oneToOne = (OneToOneAnnotation) attributeResource.getMappingAnnotation(JPA.ONE_TO_ONE);
-		assertFalse(oneToOne.isCascadeRemove());
-	
-		oneToOne.setCascadeRemove(true);
-		assertSourceContains("@OneToOne(cascade = REMOVE)", cu);
-		
-		assertTrue(oneToOne.isCascadeRemove());
-	}
-
-	public void testSetCascadeRefresh() throws Exception {
-		ICompilationUnit cu = this.createTestOneToOne();
-		JavaResourcePersistentType typeResource = buildJavaTypeResource(cu); 
-		JavaResourcePersistentAttribute attributeResource = typeResource.fields().next();
-		
-		OneToOneAnnotation oneToOne = (OneToOneAnnotation) attributeResource.getMappingAnnotation(JPA.ONE_TO_ONE);
-		assertFalse(oneToOne.isCascadeRefresh());
-	
-		oneToOne.setCascadeRefresh(true);
-		assertSourceContains("@OneToOne(cascade = REFRESH)", cu);
-		
-		assertTrue(oneToOne.isCascadeRefresh());
-	}
-
-	public void testCascadeMoreThanOnce() throws Exception {
-		ICompilationUnit cu = this.createTestOneToOneWithCascade();
-		JavaResourcePersistentType typeResource = buildJavaTypeResource(cu); 
-		JavaResourcePersistentAttribute attributeResource = typeResource.fields().next();
-		
-		OneToOneAnnotation oneToOne = (OneToOneAnnotation) attributeResource.getMappingAnnotation(JPA.ONE_TO_ONE);
-		assertTrue(oneToOne.isCascadeAll());
-		
-		oneToOne.setCascadeAll(true);
-		assertTrue(oneToOne.isCascadeAll());
-		//a second CascadeType.All should not have been added
-		assertSourceContains("@OneToOne(cascade = CascadeType.ALL)", cu);
-		
-		oneToOne.setCascadeAll(false);
-		assertFalse(oneToOne.isCascadeAll());
-		
-		assertSourceDoesNotContain("cascade", cu);
-		
-		//test setting cascadeAll to false again, should just do nothing
-		oneToOne.setCascadeAll(false);
-		assertFalse(oneToOne.isCascadeAll());
-		
-		assertSourceDoesNotContain("cascade", cu);
-	}
-	
-	public void testDuplicateCascade() throws Exception {
-		ICompilationUnit cu = this.createTestOneToOneWithDuplicateCascade();
-		JavaResourcePersistentType typeResource = buildJavaTypeResource(cu); 
-		JavaResourcePersistentAttribute attributeResource = typeResource.fields().next();
-		
-		OneToOneAnnotation oneToOne = (OneToOneAnnotation) attributeResource.getMappingAnnotation(JPA.ONE_TO_ONE);
-		assertTrue(oneToOne.isCascadeMerge());
-		
-		oneToOne.setCascadeMerge(false);//TODO should the resource model handle this and remove both MERGE 
-										//settings instead of having to set it false twice?
-		assertTrue(oneToOne.isCascadeMerge());
-		
-		oneToOne.setCascadeMerge(false);
-		assertFalse(oneToOne.isCascadeMerge());
-		
-		assertSourceDoesNotContain("cascade", cu);
-	}
-	
-	public void testMultipleCascade() throws Exception {
-		ICompilationUnit cu = this.createTestOneToOneWithMultipleCascade();
-		JavaResourcePersistentType typeResource = buildJavaTypeResource(cu); 
-		JavaResourcePersistentAttribute attributeResource = typeResource.fields().next();
-		
-		OneToOneAnnotation oneToOne = (OneToOneAnnotation) attributeResource.getMappingAnnotation(JPA.ONE_TO_ONE);
-		assertTrue(oneToOne.isCascadeMerge());
-		assertTrue(oneToOne.isCascadeRemove());
-		
-		oneToOne.setCascadeMerge(false);
-		assertSourceContains("@OneToOne(cascade = REMOVE)", cu);
-		
-		oneToOne.setCascadeRemove(false);		
-		assertSourceDoesNotContain("cascade", cu);
-	}
-	
-}
diff --git a/jpa/tests/org.eclipse.jpt.core.tests/src/org/eclipse/jpt/core/tests/internal/resource/java/OrderByTests.java b/jpa/tests/org.eclipse.jpt.core.tests/src/org/eclipse/jpt/core/tests/internal/resource/java/OrderByTests.java
deleted file mode 100644
index 55120e4..0000000
--- a/jpa/tests/org.eclipse.jpt.core.tests/src/org/eclipse/jpt/core/tests/internal/resource/java/OrderByTests.java
+++ /dev/null
@@ -1,87 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.core.tests.internal.resource.java;
-
-import java.util.Iterator;
-import org.eclipse.jdt.core.ICompilationUnit;
-import org.eclipse.jpt.core.resource.java.JPA;
-import org.eclipse.jpt.core.resource.java.JavaResourcePersistentAttribute;
-import org.eclipse.jpt.core.resource.java.JavaResourcePersistentType;
-import org.eclipse.jpt.core.resource.java.OrderByAnnotation;
-import org.eclipse.jpt.utility.internal.iterators.ArrayIterator;
-
-@SuppressWarnings("nls")
-public class OrderByTests extends JavaResourceModelTestCase {
-
-	public OrderByTests(String name) {
-		super(name);
-	}
-
-	private ICompilationUnit createTestOrderBy() throws Exception {
-		return this.createTestType(new DefaultAnnotationWriter() {
-			@Override
-			public Iterator<String> imports() {
-				return new ArrayIterator<String>(JPA.ORDER_BY);
-			}
-			@Override
-			public void appendIdFieldAnnotationTo(StringBuilder sb) {
-				sb.append("@OrderBy");
-			}
-		});
-	}
-	
-	private ICompilationUnit createTestOrderByWithValue() throws Exception {
-		return this.createTestType(new DefaultAnnotationWriter() {
-			@Override
-			public Iterator<String> imports() {
-				return new ArrayIterator<String>(JPA.ORDER_BY);
-			}
-			@Override
-			public void appendIdFieldAnnotationTo(StringBuilder sb) {
-				sb.append("@OrderBy(value = \"key\")");
-			}
-		});
-	}
-
-	public void testOrderBy() throws Exception {
-		ICompilationUnit cu = this.createTestOrderBy();
-		JavaResourcePersistentType typeResource = buildJavaTypeResource(cu); 
-		JavaResourcePersistentAttribute attributeResource = typeResource.fields().next();
-		
-		OrderByAnnotation orderBy = (OrderByAnnotation) attributeResource.getSupportingAnnotation(JPA.ORDER_BY);
-		assertNotNull(orderBy);
-	}
-	
-	public void testGetValue() throws Exception {
-		ICompilationUnit cu = this.createTestOrderByWithValue();
-		JavaResourcePersistentType typeResource = buildJavaTypeResource(cu); 
-		JavaResourcePersistentAttribute attributeResource = typeResource.fields().next();
-		
-		OrderByAnnotation orderBy = (OrderByAnnotation) attributeResource.getSupportingAnnotation(JPA.ORDER_BY);
-		assertEquals("key", orderBy.getValue());
-	}
-	
-	public void testSetValue() throws Exception {
-		ICompilationUnit cu = this.createTestOrderBy();
-		JavaResourcePersistentType typeResource = buildJavaTypeResource(cu); 
-		JavaResourcePersistentAttribute attributeResource = typeResource.fields().next();
-
-		OrderByAnnotation orderBy = (OrderByAnnotation) attributeResource.getSupportingAnnotation(JPA.ORDER_BY);
-
-		orderBy.setValue("foo");
-		
-		assertSourceContains("@OrderBy(\"foo\")", cu);
-		
-		orderBy.setValue(null);
-		
-		assertSourceContains("@OrderBy", cu);
-	}
-
-}
diff --git a/jpa/tests/org.eclipse.jpt.core.tests/src/org/eclipse/jpt/core/tests/internal/resource/java/PrimaryKeyJoinColumnTests.java b/jpa/tests/org.eclipse.jpt.core.tests/src/org/eclipse/jpt/core/tests/internal/resource/java/PrimaryKeyJoinColumnTests.java
deleted file mode 100644
index 025e347..0000000
--- a/jpa/tests/org.eclipse.jpt.core.tests/src/org/eclipse/jpt/core/tests/internal/resource/java/PrimaryKeyJoinColumnTests.java
+++ /dev/null
@@ -1,187 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.core.tests.internal.resource.java;
-
-import java.util.Iterator;
-import org.eclipse.jdt.core.ICompilationUnit;
-import org.eclipse.jpt.core.resource.java.JPA;
-import org.eclipse.jpt.core.resource.java.JavaResourcePersistentAttribute;
-import org.eclipse.jpt.core.resource.java.JavaResourcePersistentType;
-import org.eclipse.jpt.core.resource.java.PrimaryKeyJoinColumnAnnotation;
-import org.eclipse.jpt.utility.internal.iterators.ArrayIterator;
-
-@SuppressWarnings("nls")
-public class PrimaryKeyJoinColumnTests extends JavaResourceModelTestCase {
-	
-	private static final String COLUMN_NAME = "MY_COLUMN";
-	private static final String COLUMN_COLUMN_DEFINITION = "COLUMN_DEFINITION";
-	private static final String COLUMN_REFERENCED_COLUMN_NAME = "MY_REF_COLUMN_NAME";
-	
-	public PrimaryKeyJoinColumnTests(String name) {
-		super(name);
-	}
-
-	private ICompilationUnit createTestPrimaryKeyJoinColumn() throws Exception {
-		return this.createTestType(new DefaultAnnotationWriter() {
-			@Override
-			public Iterator<String> imports() {
-				return new ArrayIterator<String>(JPA.PRIMARY_KEY_JOIN_COLUMN);
-			}
-			@Override
-			public void appendIdFieldAnnotationTo(StringBuilder sb) {
-				sb.append("@PrimaryKeyJoinColumn");
-			}
-		});
-	}
-	
-	private ICompilationUnit createTestPrimaryKeyJoinColumnWithName() throws Exception {
-		return this.createTestType(new DefaultAnnotationWriter() {
-			@Override
-			public Iterator<String> imports() {
-				return new ArrayIterator<String>(JPA.PRIMARY_KEY_JOIN_COLUMN);
-			}
-			@Override
-			public void appendIdFieldAnnotationTo(StringBuilder sb) {
-				sb.append("@PrimaryKeyJoinColumn(name = \"" + COLUMN_NAME + "\")");
-			}
-		});
-	}
-	
-	private ICompilationUnit createTestPrimaryKeyJoinColumnWithReferencedColumnName() throws Exception {
-		return this.createTestType(new DefaultAnnotationWriter() {
-			@Override
-			public Iterator<String> imports() {
-				return new ArrayIterator<String>(JPA.PRIMARY_KEY_JOIN_COLUMN);
-			}
-			@Override
-			public void appendIdFieldAnnotationTo(StringBuilder sb) {
-				sb.append("@PrimaryKeyJoinColumn(referencedColumnName = \"" + COLUMN_REFERENCED_COLUMN_NAME + "\")");
-			}
-		});
-	}
-	
-	private ICompilationUnit createTestPrimaryKeyJoinColumnWithColumnDefinition() throws Exception {
-		return this.createTestType(new DefaultAnnotationWriter() {
-			@Override
-			public Iterator<String> imports() {
-				return new ArrayIterator<String>(JPA.PRIMARY_KEY_JOIN_COLUMN);
-			}
-			@Override
-			public void appendIdFieldAnnotationTo(StringBuilder sb) {
-				sb.append("@PrimaryKeyJoinColumn(columnDefinition = \"" + COLUMN_COLUMN_DEFINITION + "\")");
-			}
-		});
-	}
-
-	public void testGetName() throws Exception {
-		ICompilationUnit cu = this.createTestPrimaryKeyJoinColumnWithName();
-		JavaResourcePersistentType typeResource = buildJavaTypeResource(cu); 
-		JavaResourcePersistentAttribute attributeResource = typeResource.fields().next();
-		PrimaryKeyJoinColumnAnnotation column = (PrimaryKeyJoinColumnAnnotation) attributeResource.getSupportingAnnotation(JPA.PRIMARY_KEY_JOIN_COLUMN);
-		assertNotNull(column);
-		assertEquals(COLUMN_NAME, column.getName());
-	}
-
-	public void testGetNull() throws Exception {
-		ICompilationUnit cu = this.createTestPrimaryKeyJoinColumn();
-		JavaResourcePersistentType typeResource = buildJavaTypeResource(cu); 
-		JavaResourcePersistentAttribute attributeResource = typeResource.fields().next();
-		PrimaryKeyJoinColumnAnnotation column = (PrimaryKeyJoinColumnAnnotation) attributeResource.getSupportingAnnotation(JPA.PRIMARY_KEY_JOIN_COLUMN);
-		assertNotNull(column);
-		assertNull(column.getReferencedColumnName());
-		assertNull(column.getColumnDefinition());
-	}
-
-	public void testSetName() throws Exception {
-		ICompilationUnit cu = this.createTestPrimaryKeyJoinColumn();
-		JavaResourcePersistentType typeResource = buildJavaTypeResource(cu); 
-		JavaResourcePersistentAttribute attributeResource = typeResource.fields().next();
-		PrimaryKeyJoinColumnAnnotation column = (PrimaryKeyJoinColumnAnnotation) attributeResource.getSupportingAnnotation(JPA.PRIMARY_KEY_JOIN_COLUMN);
-
-		assertNotNull(column);
-		assertNull(column.getName());
-
-		column.setName("Foo");
-		assertEquals("Foo", column.getName());
-		
-		assertSourceContains("@PrimaryKeyJoinColumn(name = \"Foo\")", cu);
-	}
-	
-	public void testSetNameNull() throws Exception {
-		ICompilationUnit cu = this.createTestPrimaryKeyJoinColumnWithName();
-		JavaResourcePersistentType typeResource = buildJavaTypeResource(cu); 
-		JavaResourcePersistentAttribute attributeResource = typeResource.fields().next();
-		PrimaryKeyJoinColumnAnnotation column = (PrimaryKeyJoinColumnAnnotation) attributeResource.getSupportingAnnotation(JPA.PRIMARY_KEY_JOIN_COLUMN);
-
-		assertEquals(COLUMN_NAME, column.getName());
-		
-		column.setName(null);
-		assertNull(column.getName());
-		
-		assertSourceDoesNotContain("@PrimaryKeyJoinColumn", cu);
-	}
-
-
-	
-	public void testGetReferencedColumnName() throws Exception {
-		ICompilationUnit cu = this.createTestPrimaryKeyJoinColumnWithReferencedColumnName();
-		JavaResourcePersistentType typeResource = buildJavaTypeResource(cu); 
-		JavaResourcePersistentAttribute attributeResource = typeResource.fields().next();
-		PrimaryKeyJoinColumnAnnotation column = (PrimaryKeyJoinColumnAnnotation) attributeResource.getSupportingAnnotation(JPA.PRIMARY_KEY_JOIN_COLUMN);
-		assertEquals(COLUMN_REFERENCED_COLUMN_NAME, column.getReferencedColumnName());
-	}
-
-	public void testSetReferencedColumnName() throws Exception {
-		ICompilationUnit cu = this.createTestPrimaryKeyJoinColumn();
-		JavaResourcePersistentType typeResource = buildJavaTypeResource(cu); 
-		JavaResourcePersistentAttribute attributeResource = typeResource.fields().next();
-		PrimaryKeyJoinColumnAnnotation column = (PrimaryKeyJoinColumnAnnotation) attributeResource.getSupportingAnnotation(JPA.PRIMARY_KEY_JOIN_COLUMN);
-
-		assertNotNull(column);
-		assertNull(column.getReferencedColumnName());
-
-		column.setReferencedColumnName("Foo");
-		assertEquals("Foo", column.getReferencedColumnName());
-		
-		assertSourceContains("@PrimaryKeyJoinColumn(referencedColumnName = \"Foo\")", cu);
-
-		
-		column.setReferencedColumnName(null);
-		assertSourceDoesNotContain("@PrimaryKeyJoinColumn", cu);
-	}
-
-	public void testGetColumnDefinition() throws Exception {
-		ICompilationUnit cu = this.createTestPrimaryKeyJoinColumnWithColumnDefinition();
-		JavaResourcePersistentType typeResource = buildJavaTypeResource(cu); 
-		JavaResourcePersistentAttribute attributeResource = typeResource.fields().next();
-		PrimaryKeyJoinColumnAnnotation column = (PrimaryKeyJoinColumnAnnotation) attributeResource.getSupportingAnnotation(JPA.PRIMARY_KEY_JOIN_COLUMN);
-		assertEquals(COLUMN_COLUMN_DEFINITION, column.getColumnDefinition());
-	}
-
-	public void testSetColumnDefinition() throws Exception {
-		ICompilationUnit cu = this.createTestPrimaryKeyJoinColumn();
-		JavaResourcePersistentType typeResource = buildJavaTypeResource(cu); 
-		JavaResourcePersistentAttribute attributeResource = typeResource.fields().next();
-		PrimaryKeyJoinColumnAnnotation column = (PrimaryKeyJoinColumnAnnotation) attributeResource.getSupportingAnnotation(JPA.PRIMARY_KEY_JOIN_COLUMN);
-
-		assertNotNull(column);
-		assertNull(column.getColumnDefinition());
-
-		column.setColumnDefinition("Foo");
-		assertEquals("Foo", column.getColumnDefinition());
-		
-		assertSourceContains("@PrimaryKeyJoinColumn(columnDefinition = \"Foo\")", cu);
-
-		
-		column.setColumnDefinition(null);
-		assertSourceDoesNotContain("@PrimaryKeyJoinColumn", cu);
-	}
-
-}
diff --git a/jpa/tests/org.eclipse.jpt.core.tests/src/org/eclipse/jpt/core/tests/internal/resource/java/PrimaryKeyJoinColumnsTests.java b/jpa/tests/org.eclipse.jpt.core.tests/src/org/eclipse/jpt/core/tests/internal/resource/java/PrimaryKeyJoinColumnsTests.java
deleted file mode 100644
index 1e01f24..0000000
--- a/jpa/tests/org.eclipse.jpt.core.tests/src/org/eclipse/jpt/core/tests/internal/resource/java/PrimaryKeyJoinColumnsTests.java
+++ /dev/null
@@ -1,252 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.core.tests.internal.resource.java;
-
-import java.util.Iterator;
-
-import org.eclipse.jdt.core.ICompilationUnit;
-import org.eclipse.jpt.core.resource.java.JPA;
-import org.eclipse.jpt.core.resource.java.JavaResourcePersistentAttribute;
-import org.eclipse.jpt.core.resource.java.JavaResourcePersistentType;
-import org.eclipse.jpt.core.resource.java.NestableAnnotation;
-import org.eclipse.jpt.core.resource.java.PrimaryKeyJoinColumnAnnotation;
-import org.eclipse.jpt.utility.internal.CollectionTools;
-import org.eclipse.jpt.utility.internal.iterators.ArrayIterator;
-
-@SuppressWarnings("nls")
-public class PrimaryKeyJoinColumnsTests extends JavaResourceModelTestCase {
-	
-	private static final String COLUMN_NAME = "MY_COLUMN";
-	private static final String COLUMN_COLUMN_DEFINITION = "COLUMN_DEFINITION";
-	private static final String COLUMN_REFERENCED_COLUMN_NAME = "MY_REF_COLUMN_NAME";
-	
-	public PrimaryKeyJoinColumnsTests(String name) {
-		super(name);
-	}
-	
-	private ICompilationUnit createTestPrimaryKeyJoinColumns() throws Exception {
-		return this.createTestType(new DefaultAnnotationWriter() {
-			@Override
-			public Iterator<String> imports() {
-				return new ArrayIterator<String>(JPA.PRIMARY_KEY_JOIN_COLUMN, JPA.PRIMARY_KEY_JOIN_COLUMNS);
-			}
-			@Override
-			public void appendIdFieldAnnotationTo(StringBuilder sb) {
-				sb.append("@PrimaryKeyJoinColumns(@PrimaryKeyJoinColumn)");
-			}
-		});
-	}
-	
-	private ICompilationUnit createTestPrimaryKeyJoinColumnWithName() throws Exception {
-		return this.createTestType(new DefaultAnnotationWriter() {
-			@Override
-			public Iterator<String> imports() {
-				return new ArrayIterator<String>(JPA.PRIMARY_KEY_JOIN_COLUMN, JPA.PRIMARY_KEY_JOIN_COLUMNS);
-			}
-			@Override
-			public void appendIdFieldAnnotationTo(StringBuilder sb) {
-				sb.append("@PrimaryKeyJoinColumns(@PrimaryKeyJoinColumn(name = \"" + COLUMN_NAME + "\"))");
-			}
-		});
-	}
-	
-	private ICompilationUnit createTestPrimaryKeyJoinColumnWithReferencedColumnName() throws Exception {
-		return this.createTestType(new DefaultAnnotationWriter() {
-			@Override
-			public Iterator<String> imports() {
-				return new ArrayIterator<String>(JPA.PRIMARY_KEY_JOIN_COLUMN, JPA.PRIMARY_KEY_JOIN_COLUMNS);
-			}
-			@Override
-			public void appendIdFieldAnnotationTo(StringBuilder sb) {
-				sb.append("@PrimaryKeyJoinColumns(@PrimaryKeyJoinColumn(referencedColumnName = \"" + COLUMN_REFERENCED_COLUMN_NAME + "\"))");
-			}
-		});
-	}
-	
-	private ICompilationUnit createTestPrimaryKeyJoinColumnWithColumnDefinition() throws Exception {
-		return this.createTestType(new DefaultAnnotationWriter() {
-			@Override
-			public Iterator<String> imports() {
-				return new ArrayIterator<String>(JPA.PRIMARY_KEY_JOIN_COLUMN, JPA.PRIMARY_KEY_JOIN_COLUMNS);
-			}
-			@Override
-			public void appendIdFieldAnnotationTo(StringBuilder sb) {
-				sb.append("@PrimaryKeyJoinColumns(@PrimaryKeyJoinColumn(columnDefinition = \"" + COLUMN_COLUMN_DEFINITION + "\"))");
-			}
-		});
-	}
-
-	private ICompilationUnit createTestPrimaryKeyJoinColumn() throws Exception {
-		return this.createTestType(new DefaultAnnotationWriter() {
-			@Override
-			public Iterator<String> imports() {
-				return new ArrayIterator<String>(JPA.PRIMARY_KEY_JOIN_COLUMN, JPA.PRIMARY_KEY_JOIN_COLUMNS);
-			}
-			@Override
-			public void appendIdFieldAnnotationTo(StringBuilder sb) {
-				sb.append("@PrimaryKeyJoinColumn(name = \"BAR\", columnDefinition = \"COLUMN_DEF\", referencedColumnName = \"REF_NAME\")");
-			}
-		});
-	}
-
-	public void testGetName() throws Exception {
-		ICompilationUnit cu = this.createTestPrimaryKeyJoinColumnWithName();
-		JavaResourcePersistentType typeResource = buildJavaTypeResource(cu); 
-		JavaResourcePersistentAttribute attributeResource = typeResource.fields().next();
-		PrimaryKeyJoinColumnAnnotation column = (PrimaryKeyJoinColumnAnnotation) attributeResource.supportingAnnotations(JPA.PRIMARY_KEY_JOIN_COLUMN, JPA.PRIMARY_KEY_JOIN_COLUMNS).next();
-		assertNotNull(column);
-		assertEquals(COLUMN_NAME, column.getName());
-	}
-
-	public void testGetNull() throws Exception {
-		ICompilationUnit cu = this.createTestPrimaryKeyJoinColumns();
-		JavaResourcePersistentType typeResource = buildJavaTypeResource(cu); 
-		JavaResourcePersistentAttribute attributeResource = typeResource.fields().next();
-		PrimaryKeyJoinColumnAnnotation column = (PrimaryKeyJoinColumnAnnotation) attributeResource.supportingAnnotations(JPA.PRIMARY_KEY_JOIN_COLUMN, JPA.PRIMARY_KEY_JOIN_COLUMNS).next();
-		assertNotNull(column);
-		assertNull(column.getName());
-		assertNull(column.getReferencedColumnName());
-		assertNull(column.getColumnDefinition());
-	}
-
-	public void testSetName() throws Exception {
-		ICompilationUnit cu = this.createTestPrimaryKeyJoinColumns();
-		JavaResourcePersistentType typeResource = buildJavaTypeResource(cu); 
-		JavaResourcePersistentAttribute attributeResource = typeResource.fields().next();
-		PrimaryKeyJoinColumnAnnotation column = (PrimaryKeyJoinColumnAnnotation) attributeResource.supportingAnnotations(JPA.PRIMARY_KEY_JOIN_COLUMN, JPA.PRIMARY_KEY_JOIN_COLUMNS).next();
-
-		assertNotNull(column);
-		assertNull(column.getName());
-
-		column.setName("Foo");
-		assertEquals("Foo", column.getName());
-		
-		assertSourceContains("@PrimaryKeyJoinColumns(@PrimaryKeyJoinColumn(name = \"Foo\"))", cu);
-	}
-	
-	public void testSetNameNull() throws Exception {
-		ICompilationUnit cu = this.createTestPrimaryKeyJoinColumnWithName();
-		JavaResourcePersistentType typeResource = buildJavaTypeResource(cu); 
-		JavaResourcePersistentAttribute attributeResource = typeResource.fields().next();
-		PrimaryKeyJoinColumnAnnotation column = (PrimaryKeyJoinColumnAnnotation) attributeResource.supportingAnnotations(JPA.PRIMARY_KEY_JOIN_COLUMN, JPA.PRIMARY_KEY_JOIN_COLUMNS).next();
-
-		assertEquals(COLUMN_NAME, column.getName());
-		
-		column.setName(null);
-		assertNull(column.getName());
-		
-		assertSourceDoesNotContain("@PrimaryKeyJoinColumn", cu);
-	}
-
-	public void testGetReferencedColumnName() throws Exception {
-		ICompilationUnit cu = this.createTestPrimaryKeyJoinColumnWithReferencedColumnName();
-		JavaResourcePersistentType typeResource = buildJavaTypeResource(cu); 
-		JavaResourcePersistentAttribute attributeResource = typeResource.fields().next();
-		PrimaryKeyJoinColumnAnnotation column = (PrimaryKeyJoinColumnAnnotation) attributeResource.supportingAnnotations(JPA.PRIMARY_KEY_JOIN_COLUMN, JPA.PRIMARY_KEY_JOIN_COLUMNS).next();
-		assertEquals(COLUMN_REFERENCED_COLUMN_NAME, column.getReferencedColumnName());
-	}
-
-	public void testSetReferencedColumnName() throws Exception {
-		ICompilationUnit cu = this.createTestPrimaryKeyJoinColumns();
-		JavaResourcePersistentType typeResource = buildJavaTypeResource(cu); 
-		JavaResourcePersistentAttribute attributeResource = typeResource.fields().next();
-		PrimaryKeyJoinColumnAnnotation column = (PrimaryKeyJoinColumnAnnotation) attributeResource.supportingAnnotations(JPA.PRIMARY_KEY_JOIN_COLUMN, JPA.PRIMARY_KEY_JOIN_COLUMNS).next();
-
-		assertNotNull(column);
-		assertNull(column.getReferencedColumnName());
-
-		column.setReferencedColumnName("Foo");
-		assertEquals("Foo", column.getReferencedColumnName());
-		
-		assertSourceContains("@PrimaryKeyJoinColumns(@PrimaryKeyJoinColumn(referencedColumnName = \"Foo\"))", cu);
-
-		
-		column.setReferencedColumnName(null);
-		assertSourceDoesNotContain("@PrimaryKeyJoinColumn", cu);
-	}
-
-	public void testGetColumnDefinition() throws Exception {
-		ICompilationUnit cu = this.createTestPrimaryKeyJoinColumnWithColumnDefinition();
-		JavaResourcePersistentType typeResource = buildJavaTypeResource(cu); 
-		JavaResourcePersistentAttribute attributeResource = typeResource.fields().next();
-		PrimaryKeyJoinColumnAnnotation column = (PrimaryKeyJoinColumnAnnotation) attributeResource.supportingAnnotations(JPA.PRIMARY_KEY_JOIN_COLUMN, JPA.PRIMARY_KEY_JOIN_COLUMNS).next();
-		assertEquals(COLUMN_COLUMN_DEFINITION, column.getColumnDefinition());
-	}
-
-	public void testSetColumnDefinition() throws Exception {
-		ICompilationUnit cu = this.createTestPrimaryKeyJoinColumns();
-		JavaResourcePersistentType typeResource = buildJavaTypeResource(cu); 
-		JavaResourcePersistentAttribute attributeResource = typeResource.fields().next();
-		PrimaryKeyJoinColumnAnnotation column = (PrimaryKeyJoinColumnAnnotation) attributeResource.supportingAnnotations(JPA.PRIMARY_KEY_JOIN_COLUMN, JPA.PRIMARY_KEY_JOIN_COLUMNS).next();
-
-		assertNotNull(column);
-		assertNull(column.getColumnDefinition());
-
-		column.setColumnDefinition("Foo");
-		assertEquals("Foo", column.getColumnDefinition());
-		
-		assertSourceContains("@PrimaryKeyJoinColumns(@PrimaryKeyJoinColumn(columnDefinition = \"Foo\"))", cu);
-
-		
-		column.setColumnDefinition(null);
-		assertSourceDoesNotContain("@PrimaryKeyJoinColumn", cu);
-	}
-	
-	
-	public void testAddPrimaryKeyJoinColumnCopyExisting() throws Exception {
-		ICompilationUnit cu = createTestPrimaryKeyJoinColumn();
-		JavaResourcePersistentType typeResource = buildJavaTypeResource(cu);
-		JavaResourcePersistentAttribute attributeResource = typeResource.fields().next();
-		
-		PrimaryKeyJoinColumnAnnotation joinColumn = (PrimaryKeyJoinColumnAnnotation) attributeResource.addSupportingAnnotation(1, JPA.PRIMARY_KEY_JOIN_COLUMN, JPA.PRIMARY_KEY_JOIN_COLUMNS);
-		joinColumn.setName("FOO");
-		assertSourceContains("@PrimaryKeyJoinColumns({@PrimaryKeyJoinColumn(name = \"BAR\", columnDefinition = \"COLUMN_DEF\", referencedColumnName = \"REF_NAME\"),@PrimaryKeyJoinColumn(name = \"FOO\")})", cu);
-		
-		assertNull(attributeResource.getSupportingAnnotation(JPA.PRIMARY_KEY_JOIN_COLUMN));
-		assertNotNull(attributeResource.getSupportingAnnotation(JPA.PRIMARY_KEY_JOIN_COLUMNS));
-		assertEquals(2, CollectionTools.size(attributeResource.supportingAnnotations(JPA.PRIMARY_KEY_JOIN_COLUMN, JPA.PRIMARY_KEY_JOIN_COLUMNS)));
-	}
-	public void testAddPrimaryKeyJoinColumnToBeginningOfList() throws Exception {
-		ICompilationUnit cu = createTestPrimaryKeyJoinColumn();
-		JavaResourcePersistentType typeResource = buildJavaTypeResource(cu);
-		JavaResourcePersistentAttribute attributeResource = typeResource.fields().next();
-		
-		PrimaryKeyJoinColumnAnnotation joinColumn = (PrimaryKeyJoinColumnAnnotation) attributeResource.addSupportingAnnotation(1, JPA.PRIMARY_KEY_JOIN_COLUMN, JPA.PRIMARY_KEY_JOIN_COLUMNS);
-		joinColumn.setName("FOO");
-		assertSourceContains("@PrimaryKeyJoinColumns({@PrimaryKeyJoinColumn(name = \"BAR\", columnDefinition = \"COLUMN_DEF\", referencedColumnName = \"REF_NAME\"),@PrimaryKeyJoinColumn(name = \"FOO\")})", cu);
-		
-		joinColumn = (PrimaryKeyJoinColumnAnnotation) attributeResource.addSupportingAnnotation(0, JPA.PRIMARY_KEY_JOIN_COLUMN, JPA.PRIMARY_KEY_JOIN_COLUMNS);
-		joinColumn.setName("BAZ");
-		assertSourceContains("@PrimaryKeyJoinColumns({@PrimaryKeyJoinColumn(name = \"BAZ\"),@PrimaryKeyJoinColumn(name = \"BAR\", columnDefinition = \"COLUMN_DEF\", referencedColumnName = \"REF_NAME\"), @PrimaryKeyJoinColumn(name = \"FOO\")})", cu);
-
-		Iterator<NestableAnnotation> pkJoinColumns = attributeResource.supportingAnnotations(JPA.PRIMARY_KEY_JOIN_COLUMN, JPA.PRIMARY_KEY_JOIN_COLUMNS);
-		assertEquals("BAZ", ((PrimaryKeyJoinColumnAnnotation) pkJoinColumns.next()).getName());
-		assertEquals("BAR", ((PrimaryKeyJoinColumnAnnotation) pkJoinColumns.next()).getName());
-		assertEquals("FOO", ((PrimaryKeyJoinColumnAnnotation) pkJoinColumns.next()).getName());
-
-		assertNull(attributeResource.getSupportingAnnotation(JPA.PRIMARY_KEY_JOIN_COLUMN));
-		assertNotNull(attributeResource.getSupportingAnnotation(JPA.PRIMARY_KEY_JOIN_COLUMNS));
-		assertEquals(3, CollectionTools.size(attributeResource.supportingAnnotations(JPA.PRIMARY_KEY_JOIN_COLUMN, JPA.PRIMARY_KEY_JOIN_COLUMNS)));
-	}
-
-	public void testRemovePrimaryKeyJoinColumnCopyExisting() throws Exception {
-		ICompilationUnit cu = createTestPrimaryKeyJoinColumn();
-		JavaResourcePersistentType typeResource = buildJavaTypeResource(cu);
-		JavaResourcePersistentAttribute attributeResource = typeResource.fields().next();
-		
-		PrimaryKeyJoinColumnAnnotation joinColumn = (PrimaryKeyJoinColumnAnnotation) attributeResource.addSupportingAnnotation(1, JPA.PRIMARY_KEY_JOIN_COLUMN, JPA.PRIMARY_KEY_JOIN_COLUMNS);
-		joinColumn.setName("FOO");
-		assertSourceContains("@PrimaryKeyJoinColumns({@PrimaryKeyJoinColumn(name = \"BAR\", columnDefinition = \"COLUMN_DEF\", referencedColumnName = \"REF_NAME\"),@PrimaryKeyJoinColumn(name = \"FOO\")})", cu);
-		
-		attributeResource.removeSupportingAnnotation(1, JPA.PRIMARY_KEY_JOIN_COLUMN, JPA.PRIMARY_KEY_JOIN_COLUMNS);
-		assertSourceContains("@PrimaryKeyJoinColumn(name = \"BAR\", columnDefinition = \"COLUMN_DEF\", referencedColumnName = \"REF_NAME\")", cu);
-	}
-
-}
diff --git a/jpa/tests/org.eclipse.jpt.core.tests/src/org/eclipse/jpt/core/tests/internal/resource/java/QueryHintTests.java b/jpa/tests/org.eclipse.jpt.core.tests/src/org/eclipse/jpt/core/tests/internal/resource/java/QueryHintTests.java
deleted file mode 100644
index b522972..0000000
--- a/jpa/tests/org.eclipse.jpt.core.tests/src/org/eclipse/jpt/core/tests/internal/resource/java/QueryHintTests.java
+++ /dev/null
@@ -1,65 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.core.tests.internal.resource.java;
-
-import java.util.Iterator;
-import org.eclipse.jdt.core.ICompilationUnit;
-import org.eclipse.jpt.core.resource.java.JPA;
-import org.eclipse.jpt.core.resource.java.JavaResourcePersistentType;
-import org.eclipse.jpt.core.resource.java.NamedQueryAnnotation;
-import org.eclipse.jpt.core.resource.java.QueryHintAnnotation;
-import org.eclipse.jpt.utility.internal.iterators.ArrayIterator;
-
-@SuppressWarnings("nls")
-public class QueryHintTests extends JavaResourceModelTestCase {
-
-	private static final String QUERY_HINT_NAME = "myHint";
-	private static final String QUERY_HINT_VALUE = "myValue";
-	
-	public QueryHintTests(String name) {
-		super(name);
-	}
-	
-	private ICompilationUnit createTestNamedQueryWithQueryHints() throws Exception {
-		return this.createTestType(new DefaultAnnotationWriter() {
-			@Override
-			public Iterator<String> imports() {
-				return new ArrayIterator<String>(JPA.NAMED_QUERY, JPA.QUERY_HINT);
-			}
-			@Override
-			public void appendTypeAnnotationTo(StringBuilder sb) {
-				sb.append("@NamedQuery(hints = {@QueryHint(name = \"" + QUERY_HINT_NAME + "\", value = \"" + QUERY_HINT_VALUE + "\"), @QueryHint})");
-			}
-		});
-	}
-
-	public void testGetName() throws Exception {
-		ICompilationUnit cu = this.createTestNamedQueryWithQueryHints();
-		JavaResourcePersistentType typeResource = buildJavaTypeResource(cu); 
-		
-		NamedQueryAnnotation namedQuery = (NamedQueryAnnotation) typeResource.getSupportingAnnotation(JPA.NAMED_QUERY);
-		QueryHintAnnotation queryHint = namedQuery.hints().next();
-		assertEquals(QUERY_HINT_NAME, queryHint.getName());
-	}
-
-	public void testSetName() throws Exception {
-		ICompilationUnit cu = this.createTestNamedQueryWithQueryHints();
-		JavaResourcePersistentType typeResource = buildJavaTypeResource(cu); 
-		
-		NamedQueryAnnotation namedQuery = (NamedQueryAnnotation) typeResource.getSupportingAnnotation(JPA.NAMED_QUERY);
-		QueryHintAnnotation queryHint = namedQuery.hints().next();
-		assertEquals(QUERY_HINT_NAME, queryHint.getName());
-		
-		queryHint.setName("foo");
-		assertEquals("foo", queryHint.getName());
-		
-		assertSourceContains("@QueryHint(name = \"foo\", value = \"" + QUERY_HINT_VALUE + "\")", cu);
-	}
-}
diff --git a/jpa/tests/org.eclipse.jpt.core.tests/src/org/eclipse/jpt/core/tests/internal/resource/java/SecondaryTableTests.java b/jpa/tests/org.eclipse.jpt.core.tests/src/org/eclipse/jpt/core/tests/internal/resource/java/SecondaryTableTests.java
deleted file mode 100644
index 357596a..0000000
--- a/jpa/tests/org.eclipse.jpt.core.tests/src/org/eclipse/jpt/core/tests/internal/resource/java/SecondaryTableTests.java
+++ /dev/null
@@ -1,436 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.core.tests.internal.resource.java;
-
-import java.util.Iterator;
-import org.eclipse.jdt.core.ICompilationUnit;
-import org.eclipse.jpt.core.resource.java.JPA;
-import org.eclipse.jpt.core.resource.java.JavaResourcePersistentType;
-import org.eclipse.jpt.core.resource.java.PrimaryKeyJoinColumnAnnotation;
-import org.eclipse.jpt.core.resource.java.SecondaryTableAnnotation;
-import org.eclipse.jpt.core.resource.java.UniqueConstraintAnnotation;
-import org.eclipse.jpt.utility.internal.iterators.ArrayIterator;
-
-@SuppressWarnings("nls")
-public class SecondaryTableTests extends JavaResourceModelTestCase {
-	
-	private static final String TABLE_NAME = "MY_TABLE";
-	private static final String SCHEMA_NAME = "MY_SCHEMA";
-	private static final String CATALOG_NAME = "MY_CATALOG";
-	
-	public SecondaryTableTests(String name) {
-		super(name);
-	}
-	
-	private ICompilationUnit createTestSecondaryTable() throws Exception {
-		return this.createTestType(new DefaultAnnotationWriter() {
-			@Override
-			public Iterator<String> imports() {
-				return new ArrayIterator<String>(JPA.SECONDARY_TABLE);
-			}
-			@Override
-			public void appendTypeAnnotationTo(StringBuilder sb) {
-				sb.append("@SecondaryTable");
-			}
-		});
-	}
-	
-	private ICompilationUnit createTestSecondaryTableWithName() throws Exception {
-		return this.createTestType(new DefaultAnnotationWriter() {
-			@Override
-			public Iterator<String> imports() {
-				return new ArrayIterator<String>(JPA.SECONDARY_TABLE);
-			}
-			@Override
-			public void appendTypeAnnotationTo(StringBuilder sb) {
-				sb.append("@SecondaryTable(name = \"" + TABLE_NAME + "\")");
-			}
-		});
-	}
-	
-	private ICompilationUnit createTestSecondaryTableWithSchema() throws Exception {
-		return this.createTestType(new DefaultAnnotationWriter() {
-			@Override
-			public Iterator<String> imports() {
-				return new ArrayIterator<String>(JPA.SECONDARY_TABLE);
-			}
-			@Override
-			public void appendTypeAnnotationTo(StringBuilder sb) {
-				sb.append("@SecondaryTable(schema = \"" + SCHEMA_NAME + "\")");
-			}
-		});
-	}
-	
-	private ICompilationUnit createTestSecondaryTableWithCatalog() throws Exception {
-		return this.createTestType(new DefaultAnnotationWriter() {
-			@Override
-			public Iterator<String> imports() {
-				return new ArrayIterator<String>(JPA.SECONDARY_TABLE);
-			}
-			@Override
-			public void appendTypeAnnotationTo(StringBuilder sb) {
-				sb.append("@SecondaryTable(catalog = \"" + CATALOG_NAME + "\")");
-			}
-		});
-	}
-	
-	private ICompilationUnit createTestSecondaryTableWithUniqueConstraints() throws Exception {
-		return this.createTestType(new DefaultAnnotationWriter() {
-			@Override
-			public Iterator<String> imports() {
-				return new ArrayIterator<String>(JPA.SECONDARY_TABLE, JPA.UNIQUE_CONSTRAINT);
-			}
-			@Override
-			public void appendTypeAnnotationTo(StringBuilder sb) {
-				sb.append("@SecondaryTable(uniqueConstraints = {@UniqueConstraint(columnNames = {\"BAR\"}), @UniqueConstraint(columnNames = {\"FOO\"}), @UniqueConstraint(columnNames = {\"BAZ\"})})");
-			}
-		});
-	}
-	
-	private ICompilationUnit createTestSecondaryTableWithPkJoinColumns() throws Exception {
-		return this.createTestType(new DefaultAnnotationWriter() {
-			@Override
-			public Iterator<String> imports() {
-				return new ArrayIterator<String>(JPA.SECONDARY_TABLE, JPA.PRIMARY_KEY_JOIN_COLUMN);
-			}
-			@Override
-			public void appendTypeAnnotationTo(StringBuilder sb) {
-				sb.append("@SecondaryTable(pkJoinColumns = {@PrimaryKeyJoinColumn(name = \"BAR\"), @PrimaryKeyJoinColumn(name = \"FOO\"), @PrimaryKeyJoinColumn(name = \"BAZ\")})");
-			}
-		});
-	}
-
-	public void testGetName() throws Exception {
-		ICompilationUnit cu = this.createTestSecondaryTableWithName();
-		JavaResourcePersistentType typeResource = buildJavaTypeResource(cu); 
-		
-		SecondaryTableAnnotation table = (SecondaryTableAnnotation) typeResource.getSupportingAnnotation(JPA.SECONDARY_TABLE);
-		assertNotNull(table);
-		assertEquals(TABLE_NAME, table.getName());
-	}
-
-	public void testGetNull() throws Exception {
-		ICompilationUnit cu = this.createTestSecondaryTable();
-		JavaResourcePersistentType typeResource = buildJavaTypeResource(cu); 
-		
-		SecondaryTableAnnotation table = (SecondaryTableAnnotation) typeResource.getSupportingAnnotation(JPA.SECONDARY_TABLE);
-		assertNotNull(table);
-		assertNull(table.getName());
-		assertNull(table.getCatalog());
-		assertNull(table.getSchema());
-	}
-
-	public void testSetName() throws Exception {
-		ICompilationUnit cu = this.createTestSecondaryTable();
-		JavaResourcePersistentType typeResource = buildJavaTypeResource(cu); 
-		
-		SecondaryTableAnnotation table = (SecondaryTableAnnotation) typeResource.getSupportingAnnotation(JPA.SECONDARY_TABLE);
-		assertNotNull(table);
-		assertNull(table.getName());
-
-		table.setName("Foo");
-		assertEquals("Foo", table.getName());
-		
-		assertSourceContains("@SecondaryTable(name = \"Foo\")", cu);
-	}
-	
-	public void testSetNameNull() throws Exception {
-		ICompilationUnit cu = this.createTestSecondaryTableWithName();
-		JavaResourcePersistentType typeResource = buildJavaTypeResource(cu); 
-		
-		SecondaryTableAnnotation table = (SecondaryTableAnnotation) typeResource.getSupportingAnnotation(JPA.SECONDARY_TABLE);
-		assertEquals(TABLE_NAME, table.getName());
-		
-		table.setName(null);
-		assertNull(table.getName());
-		
-		assertSourceDoesNotContain("@SecondaryTable", cu);
-	}
-
-	public void testGetCatalog() throws Exception {
-		ICompilationUnit cu = this.createTestSecondaryTableWithCatalog();
-		JavaResourcePersistentType typeResource = buildJavaTypeResource(cu); 
-		
-		SecondaryTableAnnotation table = (SecondaryTableAnnotation) typeResource.getSupportingAnnotation(JPA.SECONDARY_TABLE);
-		assertNotNull(table);
-		assertEquals(CATALOG_NAME, table.getCatalog());
-	}
-
-	public void testSetCatalog() throws Exception {
-		ICompilationUnit cu = this.createTestSecondaryTable();
-		JavaResourcePersistentType typeResource = buildJavaTypeResource(cu); 
-		
-		SecondaryTableAnnotation table = (SecondaryTableAnnotation) typeResource.getSupportingAnnotation(JPA.SECONDARY_TABLE);
-		assertNotNull(table);
-		assertNull(table.getCatalog());
-
-		table.setCatalog("Foo");
-		assertEquals("Foo", table.getCatalog());
-		
-		assertSourceContains("@SecondaryTable(catalog = \"Foo\")", cu);
-	}
-	
-	public void testSetCatalogNull() throws Exception {
-		ICompilationUnit cu = this.createTestSecondaryTableWithCatalog();
-		JavaResourcePersistentType typeResource = buildJavaTypeResource(cu); 
-		
-		SecondaryTableAnnotation table = (SecondaryTableAnnotation) typeResource.getSupportingAnnotation(JPA.SECONDARY_TABLE);
-		assertEquals(CATALOG_NAME, table.getCatalog());
-		
-		table.setCatalog(null);
-		assertNull(table.getCatalog());
-		
-		assertSourceDoesNotContain("@SecondaryTable", cu);
-	}
-	
-	public void testGetSchema() throws Exception {
-		ICompilationUnit cu = this.createTestSecondaryTableWithSchema();
-		JavaResourcePersistentType typeResource = buildJavaTypeResource(cu); 
-		
-		SecondaryTableAnnotation table = (SecondaryTableAnnotation) typeResource.getSupportingAnnotation(JPA.SECONDARY_TABLE);
-		assertNotNull(table);
-		assertEquals(SCHEMA_NAME, table.getSchema());
-	}
-
-	public void testSetSchema() throws Exception {
-		ICompilationUnit cu = this.createTestSecondaryTable();
-		JavaResourcePersistentType typeResource = buildJavaTypeResource(cu); 
-		
-		SecondaryTableAnnotation table = (SecondaryTableAnnotation) typeResource.getSupportingAnnotation(JPA.SECONDARY_TABLE);
-		assertNotNull(table);
-		assertNull(table.getSchema());
-
-		table.setSchema("Foo");
-		assertEquals("Foo", table.getSchema());
-		
-		assertSourceContains("@SecondaryTable(schema = \"Foo\")", cu);
-	}
-	
-	public void testSetSchemaNull() throws Exception {
-		ICompilationUnit cu = this.createTestSecondaryTableWithSchema();
-		JavaResourcePersistentType typeResource = buildJavaTypeResource(cu); 
-		
-		SecondaryTableAnnotation table = (SecondaryTableAnnotation) typeResource.getSupportingAnnotation(JPA.SECONDARY_TABLE);
-		assertEquals(SCHEMA_NAME, table.getSchema());
-		
-		table.setSchema(null);
-		assertNull(table.getSchema());
-		
-		assertSourceDoesNotContain("@SecondaryTable", cu);
-	}
-
-
-	public void testUniqueConstraints() throws Exception {
-		ICompilationUnit cu = this.createTestSecondaryTable();
-		JavaResourcePersistentType typeResource = buildJavaTypeResource(cu); 
-		SecondaryTableAnnotation table = (SecondaryTableAnnotation) typeResource.getSupportingAnnotation(JPA.SECONDARY_TABLE);
-		
-		assertEquals(0, table.uniqueConstraintsSize());
-	}
-	
-	public void testUniqueConstraints2() throws Exception {
-		ICompilationUnit cu = this.createTestSecondaryTable();
-		JavaResourcePersistentType typeResource = buildJavaTypeResource(cu); 
-		SecondaryTableAnnotation table = (SecondaryTableAnnotation) typeResource.getSupportingAnnotation(JPA.SECONDARY_TABLE);
-		
-		table.addUniqueConstraint(0);
-		table.addUniqueConstraint(1);
-		
-		assertEquals(2, table.uniqueConstraintsSize());
-	}
-	
-	public void testUniqueConstraints3() throws Exception {
-		ICompilationUnit cu = this.createTestSecondaryTableWithUniqueConstraints();
-		JavaResourcePersistentType typeResource = buildJavaTypeResource(cu); 
-		SecondaryTableAnnotation table = (SecondaryTableAnnotation) typeResource.getSupportingAnnotation(JPA.SECONDARY_TABLE);
-				
-		assertEquals(3, table.uniqueConstraintsSize());
-	}
-	
-	public void testAddUniqueConstraint() throws Exception {
-		ICompilationUnit cu = this.createTestSecondaryTable();
-		JavaResourcePersistentType typeResource = buildJavaTypeResource(cu); 
-		SecondaryTableAnnotation table = (SecondaryTableAnnotation) typeResource.getSupportingAnnotation(JPA.SECONDARY_TABLE);
-		
-		table.addUniqueConstraint(0).addColumnName("FOO");
-		table.addUniqueConstraint(1);
-		table.addUniqueConstraint(0).addColumnName("BAR");
-
-		assertEquals("BAR", table.uniqueConstraintAt(0).columnNames().next());
-		assertEquals("FOO", table.uniqueConstraintAt(1).columnNames().next());
-		assertEquals(0, table.uniqueConstraintAt(2).columnNamesSize());
-
-		assertSourceContains("@SecondaryTable(uniqueConstraints = {@UniqueConstraint(columnNames = \"BAR\"),@UniqueConstraint(columnNames = \"FOO\"), @UniqueConstraint})", cu);
-	}
-	
-	public void testRemoveUniqueConstraint() throws Exception {
-		ICompilationUnit cu = this.createTestSecondaryTableWithUniqueConstraints();
-		JavaResourcePersistentType typeResource = buildJavaTypeResource(cu); 
-		SecondaryTableAnnotation table = (SecondaryTableAnnotation) typeResource.getSupportingAnnotation(JPA.SECONDARY_TABLE);
-		
-		table.removeUniqueConstraint(1);
-		Iterator<UniqueConstraintAnnotation> uniqueConstraints = table.uniqueConstraints();
-		assertEquals("BAR", uniqueConstraints.next().columnNames().next());
-		assertEquals("BAZ", uniqueConstraints.next().columnNames().next());
-		assertFalse(uniqueConstraints.hasNext());
-		assertSourceContains("@SecondaryTable(uniqueConstraints = {@UniqueConstraint(columnNames = {\"BAR\"}), @UniqueConstraint(columnNames = {\"BAZ\"})})", cu);
-		
-		table.removeUniqueConstraint(0);
-		uniqueConstraints = table.uniqueConstraints();
-		assertEquals("BAZ", uniqueConstraints.next().columnNames().next());
-		assertFalse(uniqueConstraints.hasNext());
-		assertSourceContains("@SecondaryTable(uniqueConstraints = @UniqueConstraint(columnNames = {\"BAZ\"}))", cu);
-		
-		table.removeUniqueConstraint(0);
-		uniqueConstraints = table.uniqueConstraints();
-		assertFalse(uniqueConstraints.hasNext());
-		assertSourceDoesNotContain("@SecondaryTable", cu);
-	}
-	
-	public void testMoveUniqueConstraint() throws Exception {
-		ICompilationUnit cu = this.createTestSecondaryTableWithUniqueConstraints();
-		JavaResourcePersistentType typeResource = buildJavaTypeResource(cu); 
-		SecondaryTableAnnotation secondaryTable = (SecondaryTableAnnotation) typeResource.getSupportingAnnotation(JPA.SECONDARY_TABLE);
-		
-		assertEquals("BAR", secondaryTable.uniqueConstraintAt(0).columnNames().next());
-		assertEquals("FOO", secondaryTable.uniqueConstraintAt(1).columnNames().next());
-		assertEquals("BAZ", secondaryTable.uniqueConstraintAt(2).columnNames().next());
-		assertEquals(3, secondaryTable.uniqueConstraintsSize());
-		
-		secondaryTable.moveUniqueConstraint(2, 0);
-		assertEquals("FOO", secondaryTable.uniqueConstraintAt(0).columnNames().next());
-		assertEquals("BAZ", secondaryTable.uniqueConstraintAt(1).columnNames().next());
-		assertEquals("BAR", secondaryTable.uniqueConstraintAt(2).columnNames().next());
-		assertEquals(3, secondaryTable.uniqueConstraintsSize());
-		assertSourceContains("@SecondaryTable(uniqueConstraints = {@UniqueConstraint(columnNames = {\"FOO\"}), @UniqueConstraint(columnNames = {\"BAZ\"}), @UniqueConstraint(columnNames = {\"BAR\"})})", cu);
-	}
-	
-	public void testMoveUniqueConstraint2() throws Exception {
-		ICompilationUnit cu = this.createTestSecondaryTableWithUniqueConstraints();
-		JavaResourcePersistentType typeResource = buildJavaTypeResource(cu); 
-		SecondaryTableAnnotation secondaryTable = (SecondaryTableAnnotation) typeResource.getSupportingAnnotation(JPA.SECONDARY_TABLE);
-		
-		assertEquals("BAR", secondaryTable.uniqueConstraintAt(0).columnNames().next());
-		assertEquals("FOO", secondaryTable.uniqueConstraintAt(1).columnNames().next());
-		assertEquals("BAZ", secondaryTable.uniqueConstraintAt(2).columnNames().next());
-		assertEquals(3, secondaryTable.uniqueConstraintsSize());
-		
-		secondaryTable.moveUniqueConstraint(0, 2);
-		assertEquals("BAZ", secondaryTable.uniqueConstraintAt(0).columnNames().next());
-		assertEquals("BAR", secondaryTable.uniqueConstraintAt(1).columnNames().next());
-		assertEquals("FOO", secondaryTable.uniqueConstraintAt(2).columnNames().next());
-		assertEquals(3, secondaryTable.uniqueConstraintsSize());
-		assertSourceContains("@SecondaryTable(uniqueConstraints = {@UniqueConstraint(columnNames = {\"BAZ\"}), @UniqueConstraint(columnNames = {\"BAR\"}), @UniqueConstraint(columnNames = {\"FOO\"})})", cu);
-	}
-	
-	
-	public void testPkJoinColumns() throws Exception {
-		ICompilationUnit cu = this.createTestSecondaryTable();
-		JavaResourcePersistentType typeResource = buildJavaTypeResource(cu); 
-		SecondaryTableAnnotation table = (SecondaryTableAnnotation) typeResource.getSupportingAnnotation(JPA.SECONDARY_TABLE);
-				
-		assertEquals(0, table.pkJoinColumnsSize());
-	}
-	
-	public void testPkJoinColumns2() throws Exception {
-		ICompilationUnit cu = this.createTestSecondaryTable();
-		JavaResourcePersistentType typeResource = buildJavaTypeResource(cu); 
-		SecondaryTableAnnotation table = (SecondaryTableAnnotation) typeResource.getSupportingAnnotation(JPA.SECONDARY_TABLE);
-		
-		table.addPkJoinColumn(0);
-		table.addPkJoinColumn(1);
-		
-		assertEquals(2, table.pkJoinColumnsSize());
-	}
-	
-	public void testPkJoinColumns3() throws Exception {
-		ICompilationUnit cu = this.createTestSecondaryTableWithPkJoinColumns();
-		JavaResourcePersistentType typeResource = buildJavaTypeResource(cu); 
-		SecondaryTableAnnotation table = (SecondaryTableAnnotation) typeResource.getSupportingAnnotation(JPA.SECONDARY_TABLE);
-				
-		assertEquals(3, table.pkJoinColumnsSize());
-	}
-	
-	public void testAddPkJoinColumn() throws Exception {
-		ICompilationUnit cu = this.createTestSecondaryTable();
-		JavaResourcePersistentType typeResource = buildJavaTypeResource(cu); 
-		SecondaryTableAnnotation table = (SecondaryTableAnnotation) typeResource.getSupportingAnnotation(JPA.SECONDARY_TABLE);
-
-		
-		table.addPkJoinColumn(0).setName("FOO");
-		table.addPkJoinColumn(0);
-		table.addPkJoinColumn(0).setName("BAR");//test adding a pkJoinColumn in front of 2 other joinColumns
-
-		assertEquals("BAR", table.pkJoinColumnAt(0).getName());
-		assertNull(table.pkJoinColumnAt(1).getName());
-		assertEquals("FOO", table.pkJoinColumnAt(2).getName());
-
-		assertEquals(3, table.pkJoinColumnsSize());
-		assertSourceContains("@SecondaryTable(pkJoinColumns = {@PrimaryKeyJoinColumn(name = \"BAR\"),@PrimaryKeyJoinColumn, @PrimaryKeyJoinColumn(name = \"FOO\")})", cu);
-	}
-	
-	public void testRemovePkJoinColumn() throws Exception {
-		ICompilationUnit cu = this.createTestSecondaryTableWithPkJoinColumns();
-		JavaResourcePersistentType typeResource = buildJavaTypeResource(cu); 
-		SecondaryTableAnnotation table = (SecondaryTableAnnotation) typeResource.getSupportingAnnotation(JPA.SECONDARY_TABLE);
-		
-		table.removePkJoinColumn(1);
-		assertSourceContains("@SecondaryTable(pkJoinColumns = {@PrimaryKeyJoinColumn(name = \"BAR\"), @PrimaryKeyJoinColumn(name = \"BAZ\")})", cu);
-
-		table.removePkJoinColumn(0);
-		assertSourceContains("@SecondaryTable(pkJoinColumns = @PrimaryKeyJoinColumn(name = \"BAZ\"))", cu);
-
-		
-		table.removePkJoinColumn(0);
-		assertSourceDoesNotContain("@SecondaryTable", cu);
-	}
-	
-	public void testMovePkJoinColumn() throws Exception {
-		ICompilationUnit cu = this.createTestSecondaryTableWithPkJoinColumns();
-		JavaResourcePersistentType typeResource = buildJavaTypeResource(cu); 
-		SecondaryTableAnnotation table = (SecondaryTableAnnotation) typeResource.getSupportingAnnotation(JPA.SECONDARY_TABLE);
-		PrimaryKeyJoinColumnAnnotation joinColumn = table.pkJoinColumnAt(0);
-		joinColumn.setReferencedColumnName("REF_NAME");
-		joinColumn.setColumnDefinition("COLUMN_DEF");
-		table.movePkJoinColumn(2, 0);
-		assertSourceContains("@SecondaryTable(pkJoinColumns = {@PrimaryKeyJoinColumn(name = \"FOO\"), @PrimaryKeyJoinColumn(name = \"BAZ\"), @PrimaryKeyJoinColumn(name = \"BAR\", referencedColumnName = \"REF_NAME\", columnDefinition = \"COLUMN_DEF\")})", cu);
-	}
-	
-	public void testMovePkJoinColumn2() throws Exception {
-		ICompilationUnit cu = this.createTestSecondaryTableWithPkJoinColumns();
-		JavaResourcePersistentType typeResource = buildJavaTypeResource(cu); 
-		SecondaryTableAnnotation table = (SecondaryTableAnnotation) typeResource.getSupportingAnnotation(JPA.SECONDARY_TABLE);
-
-		
-		PrimaryKeyJoinColumnAnnotation joinColumn = table.pkJoinColumnAt(0);
-		joinColumn.setReferencedColumnName("REF_NAME");
-		joinColumn.setColumnDefinition("COLUMN_DEF");
-		table.movePkJoinColumn(0, 2);
-		assertSourceContains("@SecondaryTable(pkJoinColumns = {@PrimaryKeyJoinColumn(name = \"BAZ\"), @PrimaryKeyJoinColumn(name = \"BAR\", referencedColumnName = \"REF_NAME\", columnDefinition = \"COLUMN_DEF\"), @PrimaryKeyJoinColumn(name = \"FOO\")})", cu);
-	}
-	
-	public void testSetPkJoinColumnName() throws Exception {
-		ICompilationUnit cu = this.createTestSecondaryTableWithPkJoinColumns();
-		JavaResourcePersistentType typeResource = buildJavaTypeResource(cu); 
-		SecondaryTableAnnotation table = (SecondaryTableAnnotation) typeResource.getSupportingAnnotation(JPA.SECONDARY_TABLE);
-				
-		assertEquals(3, table.pkJoinColumnsSize());
-		
-		PrimaryKeyJoinColumnAnnotation joinColumn = table.pkJoinColumns().next();
-		
-		assertEquals("BAR", joinColumn.getName());
-		
-		joinColumn.setName("foo");
-		assertEquals("foo", joinColumn.getName());
-		
-		assertSourceContains("@SecondaryTable(pkJoinColumns = {@PrimaryKeyJoinColumn(name = \"foo\"), @PrimaryKeyJoinColumn(name = \"FOO\"), @PrimaryKeyJoinColumn(name = \"BAZ\")})", cu);
-	}
-
-}
diff --git a/jpa/tests/org.eclipse.jpt.core.tests/src/org/eclipse/jpt/core/tests/internal/resource/java/SecondaryTablesTests.java b/jpa/tests/org.eclipse.jpt.core.tests/src/org/eclipse/jpt/core/tests/internal/resource/java/SecondaryTablesTests.java
deleted file mode 100644
index 278f0f0..0000000
--- a/jpa/tests/org.eclipse.jpt.core.tests/src/org/eclipse/jpt/core/tests/internal/resource/java/SecondaryTablesTests.java
+++ /dev/null
@@ -1,503 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.core.tests.internal.resource.java;
-
-import java.util.Iterator;
-
-import org.eclipse.jdt.core.ICompilationUnit;
-import org.eclipse.jpt.core.resource.java.JPA;
-import org.eclipse.jpt.core.resource.java.JavaResourcePersistentType;
-import org.eclipse.jpt.core.resource.java.NestableAnnotation;
-import org.eclipse.jpt.core.resource.java.PrimaryKeyJoinColumnAnnotation;
-import org.eclipse.jpt.core.resource.java.SecondaryTableAnnotation;
-import org.eclipse.jpt.core.resource.java.SecondaryTablesAnnotation;
-import org.eclipse.jpt.utility.internal.CollectionTools;
-import org.eclipse.jpt.utility.internal.iterators.ArrayIterator;
-
-@SuppressWarnings("nls")
-public class SecondaryTablesTests extends JavaResourceModelTestCase {
-	
-	private static final String TABLE_NAME = "MY_TABLE";
-	private static final String SCHEMA_NAME = "MY_SCHEMA";
-	private static final String CATALOG_NAME = "MY_CATALOG";
-	
-	public SecondaryTablesTests(String name) {
-		super(name);
-	}
-	
-	private ICompilationUnit createTestSecondaryTables() throws Exception {
-		return this.createTestType(new DefaultAnnotationWriter() {
-			@Override
-			public Iterator<String> imports() {
-				return new ArrayIterator<String>(JPA.SECONDARY_TABLE, JPA.SECONDARY_TABLES);
-			}
-			@Override
-			public void appendTypeAnnotationTo(StringBuilder sb) {
-				sb.append("@SecondaryTables(@SecondaryTable)");
-			}
-		});
-	}
-	
-	private ICompilationUnit createTestSecondaryTableWithName() throws Exception {
-		return this.createTestType(new DefaultAnnotationWriter() {
-			@Override
-			public Iterator<String> imports() {
-				return new ArrayIterator<String>(JPA.SECONDARY_TABLE, JPA.SECONDARY_TABLES);
-			}
-			@Override
-			public void appendTypeAnnotationTo(StringBuilder sb) {
-				sb.append("@SecondaryTables(@SecondaryTable(name = \"" + TABLE_NAME + "\"))");
-			}
-		});
-	}
-	
-	private ICompilationUnit createTestSecondaryTableWithSchema() throws Exception {
-		return this.createTestType(new DefaultAnnotationWriter() {
-			@Override
-			public Iterator<String> imports() {
-				return new ArrayIterator<String>(JPA.SECONDARY_TABLE, JPA.SECONDARY_TABLES);
-			}
-			@Override
-			public void appendTypeAnnotationTo(StringBuilder sb) {
-				sb.append("@SecondaryTables(@SecondaryTable(schema = \"" + SCHEMA_NAME + "\"))");
-			}
-		});
-	}
-	private ICompilationUnit createTestSecondaryTableWithCatalog() throws Exception {
-		return this.createTestType(new DefaultAnnotationWriter() {
-			@Override
-			public Iterator<String> imports() {
-				return new ArrayIterator<String>(JPA.SECONDARY_TABLE, JPA.SECONDARY_TABLES);
-			}
-			@Override
-			public void appendTypeAnnotationTo(StringBuilder sb) {
-				sb.append("@SecondaryTables(@SecondaryTable(catalog = \"" + CATALOG_NAME + "\"))");
-			}
-		});
-	}
-
-	
-	private ICompilationUnit createTestSecondaryTableWithUniqueConstraints() throws Exception {
-		return this.createTestType(new DefaultAnnotationWriter() {
-			@Override
-			public Iterator<String> imports() {
-				return new ArrayIterator<String>(JPA.SECONDARY_TABLE, JPA.SECONDARY_TABLES, JPA.UNIQUE_CONSTRAINT);
-			}
-			@Override
-			public void appendTypeAnnotationTo(StringBuilder sb) {
-				sb.append("@SecondaryTables(@SecondaryTable(uniqueConstraints = {@UniqueConstraint(columnNames = {\"BAR\"}), @UniqueConstraint}))");
-			}
-		});
-	}
-	
-	private ICompilationUnit createTestSecondaryTable() throws Exception {
-		return this.createTestType(new DefaultAnnotationWriter() {
-			@Override
-			public Iterator<String> imports() {
-				return new ArrayIterator<String>(JPA.ENTITY, JPA.SECONDARY_TABLE, JPA.UNIQUE_CONSTRAINT);
-			}
-			@Override
-			public void appendTypeAnnotationTo(StringBuilder sb) {
-				sb.append("@Entity");
-				sb.append(CR);
-				sb.append("@SecondaryTable(name = \"FOO\", catalog = \"BAR\", schema = \"BAZ\", uniqueConstraints = @UniqueConstraint(columnNames = {\"BAR\"}))");
-			}
-		});
-	}
-
-	private ICompilationUnit createTestSecondaryTablesWithPkJoinColumns() throws Exception {
-		return this.createTestType(new DefaultAnnotationWriter() {
-			@Override
-			public Iterator<String> imports() {
-				return new ArrayIterator<String>(JPA.SECONDARY_TABLES, JPA.SECONDARY_TABLE, JPA.PRIMARY_KEY_JOIN_COLUMN);
-			}
-			@Override
-			public void appendTypeAnnotationTo(StringBuilder sb) {
-				sb.append("@SecondaryTables(@SecondaryTable(pkJoinColumns = {@PrimaryKeyJoinColumn(name = \"BAR\"), @PrimaryKeyJoinColumn(name = \"FOO\"), @PrimaryKeyJoinColumn(name = \"BAZ\")}))");
-			}
-		});
-	}
-
-	public void testGetName() throws Exception {
-		ICompilationUnit cu = this.createTestSecondaryTableWithName();
-		JavaResourcePersistentType typeResource = buildJavaTypeResource(cu); 
-		
-		SecondaryTableAnnotation table = (SecondaryTableAnnotation) typeResource.getSupportingAnnotation(JPA.SECONDARY_TABLE);
-		assertNull(table);
-		SecondaryTablesAnnotation secondaryTables = (SecondaryTablesAnnotation) typeResource.getSupportingAnnotation(JPA.SECONDARY_TABLES);
-		assertNotNull(secondaryTables);
-		
-		SecondaryTableAnnotation secondaryTable = secondaryTables.nestedAnnotations().next();
-		assertEquals(TABLE_NAME, secondaryTable.getName());
-	}
-
-	public void testGetNull() throws Exception {
-		ICompilationUnit cu = this.createTestSecondaryTables();
-		JavaResourcePersistentType typeResource = buildJavaTypeResource(cu); 
-		
-		SecondaryTablesAnnotation secondaryTables = (SecondaryTablesAnnotation) typeResource.getSupportingAnnotation(JPA.SECONDARY_TABLES);
-		SecondaryTableAnnotation secondaryTable = secondaryTables.nestedAnnotations().next();
-		assertNull(secondaryTable.getName());
-		assertNull(secondaryTable.getCatalog());
-		assertNull(secondaryTable.getSchema());
-	}
-
-	public void testSetName() throws Exception {
-		ICompilationUnit cu = this.createTestSecondaryTables();
-		JavaResourcePersistentType typeResource = buildJavaTypeResource(cu); 
-		
-		SecondaryTablesAnnotation secondaryTables = (SecondaryTablesAnnotation) typeResource.getSupportingAnnotation(JPA.SECONDARY_TABLES);
-		SecondaryTableAnnotation secondaryTable = secondaryTables.nestedAnnotations().next();
-	
-		assertNull(secondaryTable.getName());
-
-		secondaryTable.setName("Foo");
-		assertEquals("Foo", secondaryTable.getName());
-		
-		assertSourceContains("@SecondaryTables(@SecondaryTable(name = \"Foo\"))", cu);
-	}
-	
-	public void testSetNameNull() throws Exception {
-		ICompilationUnit cu = this.createTestSecondaryTableWithName();
-		JavaResourcePersistentType typeResource = buildJavaTypeResource(cu); 
-		
-		SecondaryTablesAnnotation secondaryTables = (SecondaryTablesAnnotation) typeResource.getSupportingAnnotation(JPA.SECONDARY_TABLES);
-		SecondaryTableAnnotation secondaryTable = secondaryTables.nestedAnnotations().next();
-		assertEquals(TABLE_NAME, secondaryTable.getName());
-		
-		secondaryTable.setName(null);
-		assertNull(secondaryTable.getName());
-		
-		assertSourceDoesNotContain("@SecondaryTable", cu);
-	}
-
-	public void testGetCatalog() throws Exception {
-		ICompilationUnit cu = this.createTestSecondaryTableWithCatalog();
-		JavaResourcePersistentType typeResource = buildJavaTypeResource(cu); 
-		
-		SecondaryTablesAnnotation secondaryTables = (SecondaryTablesAnnotation) typeResource.getSupportingAnnotation(JPA.SECONDARY_TABLES);
-		SecondaryTableAnnotation secondaryTable = secondaryTables.nestedAnnotations().next();
-		assertEquals(CATALOG_NAME, secondaryTable.getCatalog());
-	}
-
-	public void testSetCatalog() throws Exception {
-		ICompilationUnit cu = this.createTestSecondaryTables();
-		JavaResourcePersistentType typeResource = buildJavaTypeResource(cu); 
-		
-		SecondaryTablesAnnotation secondaryTables = (SecondaryTablesAnnotation) typeResource.getSupportingAnnotation(JPA.SECONDARY_TABLES);
-		SecondaryTableAnnotation secondaryTable = secondaryTables.nestedAnnotations().next();
-		assertNull(secondaryTable.getCatalog());
-
-		secondaryTable.setCatalog("Foo");
-		assertEquals("Foo", secondaryTable.getCatalog());
-		
-		assertSourceContains("@SecondaryTables(@SecondaryTable(catalog = \"Foo\"))", cu);
-	}
-	
-	public void testSetCatalogNull() throws Exception {
-		ICompilationUnit cu = this.createTestSecondaryTableWithCatalog();
-		JavaResourcePersistentType typeResource = buildJavaTypeResource(cu); 
-		
-		SecondaryTablesAnnotation secondaryTables = (SecondaryTablesAnnotation) typeResource.getSupportingAnnotation(JPA.SECONDARY_TABLES);
-		SecondaryTableAnnotation secondaryTable = secondaryTables.nestedAnnotations().next();
-		assertEquals(CATALOG_NAME, secondaryTable.getCatalog());
-		
-		secondaryTable.setCatalog(null);
-		assertNull(secondaryTable.getCatalog());
-		
-		assertSourceDoesNotContain("@SecondaryTable", cu);
-	}
-	
-	public void testGetSchema() throws Exception {
-		ICompilationUnit cu = this.createTestSecondaryTableWithSchema();
-		JavaResourcePersistentType typeResource = buildJavaTypeResource(cu); 
-		
-		SecondaryTablesAnnotation secondaryTables = (SecondaryTablesAnnotation) typeResource.getSupportingAnnotation(JPA.SECONDARY_TABLES);
-		SecondaryTableAnnotation secondaryTable = secondaryTables.nestedAnnotations().next();
-		assertNotNull(secondaryTable);
-		assertEquals(SCHEMA_NAME, secondaryTable.getSchema());
-	}
-
-	public void testSetSchema() throws Exception {
-		ICompilationUnit cu = this.createTestSecondaryTables();
-		JavaResourcePersistentType typeResource = buildJavaTypeResource(cu); 
-		
-		SecondaryTablesAnnotation secondaryTables = (SecondaryTablesAnnotation) typeResource.getSupportingAnnotation(JPA.SECONDARY_TABLES);
-		SecondaryTableAnnotation secondaryTable = secondaryTables.nestedAnnotations().next();
-		assertNull(secondaryTable.getSchema());
-
-		secondaryTable.setSchema("Foo");
-		assertEquals("Foo", secondaryTable.getSchema());
-		
-		assertSourceContains("@SecondaryTables(@SecondaryTable(schema = \"Foo\"))", cu);
-	}
-	
-	public void testSetSchemaNull() throws Exception {
-		ICompilationUnit cu = this.createTestSecondaryTableWithSchema();
-		JavaResourcePersistentType typeResource = buildJavaTypeResource(cu); 
-		
-		SecondaryTablesAnnotation secondaryTables = (SecondaryTablesAnnotation) typeResource.getSupportingAnnotation(JPA.SECONDARY_TABLES);
-		SecondaryTableAnnotation secondaryTable = secondaryTables.nestedAnnotations().next();
-		assertEquals(SCHEMA_NAME, secondaryTable.getSchema());
-		
-		secondaryTable.setSchema(null);
-		assertNull(secondaryTable.getSchema());
-		
-		assertSourceDoesNotContain("@SecondaryTable", cu);
-	}
-
-
-	public void testUniqueConstraints() throws Exception {
-		ICompilationUnit cu = this.createTestSecondaryTables();
-		JavaResourcePersistentType typeResource = buildJavaTypeResource(cu); 
-		SecondaryTablesAnnotation secondaryTables = (SecondaryTablesAnnotation) typeResource.getSupportingAnnotation(JPA.SECONDARY_TABLES);
-		SecondaryTableAnnotation secondaryTable = secondaryTables.nestedAnnotations().next();
-		
-		assertEquals(0, secondaryTable.uniqueConstraintsSize());
-	}
-	
-	public void testUniqueConstraints2() throws Exception {
-		ICompilationUnit cu = this.createTestSecondaryTables();
-		JavaResourcePersistentType typeResource = buildJavaTypeResource(cu); 
-		SecondaryTablesAnnotation secondaryTables = (SecondaryTablesAnnotation) typeResource.getSupportingAnnotation(JPA.SECONDARY_TABLES);
-		SecondaryTableAnnotation secondaryTable = secondaryTables.nestedAnnotations().next();
-		
-		secondaryTable.addUniqueConstraint(0);
-		secondaryTable.addUniqueConstraint(1);
-		
-		assertEquals(2, secondaryTable.uniqueConstraintsSize());
-	}
-	
-	public void testUniqueConstraints3() throws Exception {
-		ICompilationUnit cu = this.createTestSecondaryTableWithUniqueConstraints();
-		JavaResourcePersistentType typeResource = buildJavaTypeResource(cu); 
-		SecondaryTablesAnnotation secondaryTables = (SecondaryTablesAnnotation) typeResource.getSupportingAnnotation(JPA.SECONDARY_TABLES);
-		SecondaryTableAnnotation secondaryTable = secondaryTables.nestedAnnotations().next();
-				
-		assertEquals(2, secondaryTable.uniqueConstraintsSize());
-	}
-	
-	public void testAddUniqueConstraint() throws Exception {
-		ICompilationUnit cu = this.createTestSecondaryTables();
-		JavaResourcePersistentType typeResource = buildJavaTypeResource(cu); 
-		SecondaryTablesAnnotation secondaryTables = (SecondaryTablesAnnotation) typeResource.getSupportingAnnotation(JPA.SECONDARY_TABLES);
-		SecondaryTableAnnotation secondaryTable = secondaryTables.nestedAnnotations().next();
-		
-		secondaryTable.addUniqueConstraint(0).addColumnName("FOO");
-		secondaryTable.addUniqueConstraint(1);
-		secondaryTable.addUniqueConstraint(0).addColumnName("BAR");
-
-		assertEquals("BAR", secondaryTable.uniqueConstraintAt(0).columnNames().next());
-		assertEquals("FOO", secondaryTable.uniqueConstraintAt(1).columnNames().next());
-		assertEquals(0, secondaryTable.uniqueConstraintAt(2).columnNamesSize());
-
-		assertSourceContains("@SecondaryTables(@SecondaryTable(uniqueConstraints = {@UniqueConstraint(columnNames = \"BAR\"),@UniqueConstraint(columnNames = \"FOO\"), @UniqueConstraint}))", cu);
-	}
-	
-	public void testRemoveUniqueConstraint() throws Exception {
-		ICompilationUnit cu = this.createTestSecondaryTableWithUniqueConstraints();
-		JavaResourcePersistentType typeResource = buildJavaTypeResource(cu); 
-		SecondaryTablesAnnotation secondaryTables = (SecondaryTablesAnnotation) typeResource.getSupportingAnnotation(JPA.SECONDARY_TABLES);
-		SecondaryTableAnnotation secondaryTable = secondaryTables.nestedAnnotations().next();
-		secondaryTable.addUniqueConstraint(0).addColumnName("FOO");
-		
-		secondaryTable.removeUniqueConstraint(2);
-		assertSourceContains("@SecondaryTables(@SecondaryTable(uniqueConstraints = {@UniqueConstraint(columnNames = \"FOO\"), @UniqueConstraint(columnNames = {\"BAR\"})})", cu);
-		
-		secondaryTable.removeUniqueConstraint(0);
-		assertSourceContains("@SecondaryTables(@SecondaryTable(uniqueConstraints = @UniqueConstraint(columnNames = {\"BAR\"}))", cu);
-		
-		secondaryTable.removeUniqueConstraint(0);
-		assertSourceDoesNotContain("@SecondaryTable", cu);
-	}
-	
-	public void testMoveUniqueConstraint() throws Exception {
-		ICompilationUnit cu = this.createTestSecondaryTableWithUniqueConstraints();
-		JavaResourcePersistentType typeResource = buildJavaTypeResource(cu); 
-		SecondaryTablesAnnotation secondaryTables = (SecondaryTablesAnnotation) typeResource.getSupportingAnnotation(JPA.SECONDARY_TABLES);
-		SecondaryTableAnnotation secondaryTable = secondaryTables.nestedAnnotations().next();
-		secondaryTable.addUniqueConstraint(0).addColumnName("FOO");
-	
-		assertEquals("FOO", secondaryTable.uniqueConstraintAt(0).columnNames().next());
-		assertEquals("BAR", secondaryTable.uniqueConstraintAt(1).columnNames().next());
-		assertFalse(secondaryTable.uniqueConstraintAt(2).columnNames().hasNext());
-		
-		secondaryTable.moveUniqueConstraint(2, 0);
-		assertEquals("BAR", secondaryTable.uniqueConstraintAt(0).columnNames().next());
-		assertFalse(secondaryTable.uniqueConstraintAt(1).columnNames().hasNext());
-		assertEquals("FOO", secondaryTable.uniqueConstraintAt(2).columnNames().next());
-		assertSourceContains("@SecondaryTables(@SecondaryTable(uniqueConstraints = {@UniqueConstraint(columnNames = {\"BAR\"}), @UniqueConstraint, @UniqueConstraint(columnNames = \"FOO\")}))", cu);
-	}
-	
-	public void testMoveUniqueConstraint2() throws Exception {
-		ICompilationUnit cu = this.createTestSecondaryTableWithUniqueConstraints();
-		JavaResourcePersistentType typeResource = buildJavaTypeResource(cu); 
-		SecondaryTablesAnnotation secondaryTables = (SecondaryTablesAnnotation) typeResource.getSupportingAnnotation(JPA.SECONDARY_TABLES);
-		SecondaryTableAnnotation secondaryTable = secondaryTables.nestedAnnotations().next();
-		secondaryTable.addUniqueConstraint(0).addColumnName("FOO");
-		
-		assertEquals("FOO", secondaryTable.uniqueConstraintAt(0).columnNames().next());
-		assertEquals("BAR", secondaryTable.uniqueConstraintAt(1).columnNames().next());
-		assertFalse(secondaryTable.uniqueConstraintAt(2).columnNames().hasNext());
-		
-		secondaryTable.moveUniqueConstraint(0, 2);
-		assertFalse(secondaryTable.uniqueConstraintAt(0).columnNames().hasNext());
-		assertEquals("FOO", secondaryTable.uniqueConstraintAt(1).columnNames().next());
-		assertEquals("BAR", secondaryTable.uniqueConstraintAt(2).columnNames().next());
-		assertSourceContains("@SecondaryTables(@SecondaryTable(uniqueConstraints = {@UniqueConstraint, @UniqueConstraint(columnNames = \"FOO\"), @UniqueConstraint(columnNames = {\"BAR\"})}))", cu);
-	}
-	
-	
-	//  @Entity     				-->>    @Entity
-	//	@SecondaryTable(name="FOO")			@SecondaryTables({@SecondaryTable(name="FOO"), @SecondaryTable(name="BAR")})	
-	public void testAddSecondaryTableCopyExisting() throws Exception {
-		ICompilationUnit cu = createTestSecondaryTable();
-		JavaResourcePersistentType typeResource = buildJavaTypeResource(cu);
-		
-		SecondaryTableAnnotation secondaryTable = (SecondaryTableAnnotation) typeResource.addSupportingAnnotation(1, JPA.SECONDARY_TABLE, JPA.SECONDARY_TABLES);
-		secondaryTable.setName("BAR");
-		assertSourceContains("@SecondaryTables({@SecondaryTable(name = \"FOO\", schema = \"BAZ\", catalog = \"BAR\", uniqueConstraints = @UniqueConstraint(columnNames = \"BAR\")),@SecondaryTable(name = \"BAR\")})", cu);
-		
-		assertNull(typeResource.getSupportingAnnotation(JPA.SECONDARY_TABLE));
-		assertNotNull(typeResource.getSupportingAnnotation(JPA.SECONDARY_TABLES));
-		assertEquals(2, CollectionTools.size(typeResource.supportingAnnotations(JPA.SECONDARY_TABLE, JPA.SECONDARY_TABLES)));
-	}
-	
-	public void testAddSecondaryTable() throws Exception {
-		ICompilationUnit cu = createTestSecondaryTable();
-		JavaResourcePersistentType typeResource = buildJavaTypeResource(cu);
-		
-		SecondaryTableAnnotation secondaryTable = (SecondaryTableAnnotation) typeResource.addSupportingAnnotation(1, JPA.SECONDARY_TABLE, JPA.SECONDARY_TABLES);
-		secondaryTable.setName("BAR");
-		assertSourceContains("@SecondaryTables({@SecondaryTable(name = \"FOO\", schema = \"BAZ\", catalog = \"BAR\", uniqueConstraints = @UniqueConstraint(columnNames = \"BAR\")),@SecondaryTable(name = \"BAR\")})", cu);
-		
-		secondaryTable = (SecondaryTableAnnotation) typeResource.addSupportingAnnotation(0, JPA.SECONDARY_TABLE, JPA.SECONDARY_TABLES);
-		secondaryTable.setName("BAZ");
-		assertSourceContains("@SecondaryTables({@SecondaryTable(name = \"BAZ\"),@SecondaryTable(name = \"FOO\", schema = \"BAZ\", catalog = \"BAR\", uniqueConstraints = @UniqueConstraint(columnNames = \"BAR\")), @SecondaryTable(name = \"BAR\")})", cu);
-
-		Iterator<NestableAnnotation> secondaryTables = typeResource.supportingAnnotations(JPA.SECONDARY_TABLE, JPA.SECONDARY_TABLES);
-		assertEquals("BAZ", ((SecondaryTableAnnotation) secondaryTables.next()).getName());
-		assertEquals("FOO", ((SecondaryTableAnnotation) secondaryTables.next()).getName());
-		assertEquals("BAR", ((SecondaryTableAnnotation) secondaryTables.next()).getName());
-
-		assertNull(typeResource.getSupportingAnnotation(JPA.SECONDARY_TABLE));
-		assertNotNull(typeResource.getSupportingAnnotation(JPA.SECONDARY_TABLES));
-		assertEquals(3, CollectionTools.size(typeResource.supportingAnnotations(JPA.SECONDARY_TABLE, JPA.SECONDARY_TABLES)));
-	}
-
-	public void testRemoveSecondaryTableCopyExisting() throws Exception {
-		ICompilationUnit cu = createTestSecondaryTable();
-		JavaResourcePersistentType typeResource = buildJavaTypeResource(cu);
-		
-		SecondaryTableAnnotation secondaryTable = (SecondaryTableAnnotation) typeResource.addSupportingAnnotation(1, JPA.SECONDARY_TABLE, JPA.SECONDARY_TABLES);
-		secondaryTable.setName("BAR");
-		assertSourceContains("@SecondaryTables({@SecondaryTable(name = \"FOO\", schema = \"BAZ\", catalog = \"BAR\", uniqueConstraints = @UniqueConstraint(columnNames = \"BAR\")),@SecondaryTable(name = \"BAR\")})", cu);
-		
-		typeResource.removeSupportingAnnotation(1, JPA.SECONDARY_TABLE, JPA.SECONDARY_TABLES);
-		assertSourceContains("@SecondaryTable(name = \"FOO\", schema = \"BAZ\", catalog = \"BAR\", uniqueConstraints = @UniqueConstraint(columnNames = \"BAR\"))", cu);
-	}
-
-	
-	public void testPkJoinColumns() throws Exception {
-		ICompilationUnit cu = this.createTestSecondaryTables();
-		JavaResourcePersistentType typeResource = buildJavaTypeResource(cu); 
-		SecondaryTableAnnotation table = (SecondaryTableAnnotation) typeResource.supportingAnnotations(JPA.SECONDARY_TABLE, JPA.SECONDARY_TABLES).next();
-		
-		assertEquals(0, table.pkJoinColumnsSize());
-	}
-	
-	public void testPkJoinColumns2() throws Exception {
-		ICompilationUnit cu = this.createTestSecondaryTables();
-		JavaResourcePersistentType typeResource = buildJavaTypeResource(cu); 
-		SecondaryTableAnnotation table = (SecondaryTableAnnotation) typeResource.supportingAnnotations(JPA.SECONDARY_TABLE, JPA.SECONDARY_TABLES).next();
-		
-		table.addPkJoinColumn(0);
-		table.addPkJoinColumn(1);
-		
-		assertEquals(2, table.pkJoinColumnsSize());
-	}
-	
-	public void testPkJoinColumns3() throws Exception {
-		ICompilationUnit cu = this.createTestSecondaryTablesWithPkJoinColumns();
-		JavaResourcePersistentType typeResource = buildJavaTypeResource(cu); 
-		SecondaryTableAnnotation table = (SecondaryTableAnnotation) typeResource.supportingAnnotations(JPA.SECONDARY_TABLE, JPA.SECONDARY_TABLES).next();
-				
-		assertEquals(3, table.pkJoinColumnsSize());
-	}
-	
-	public void testAddPkJoinColumn() throws Exception {
-		ICompilationUnit cu = this.createTestSecondaryTables();
-		JavaResourcePersistentType typeResource = buildJavaTypeResource(cu); 
-		SecondaryTableAnnotation table = (SecondaryTableAnnotation) typeResource.supportingAnnotations(JPA.SECONDARY_TABLE, JPA.SECONDARY_TABLES).next();
-		
-		table.addPkJoinColumn(0).setName("FOO");
-		table.addPkJoinColumn(1);
-		table.addPkJoinColumn(0).setName("BAR");
-
-		assertSourceContains("@SecondaryTables(@SecondaryTable(pkJoinColumns = {@PrimaryKeyJoinColumn(name = \"BAR\"),@PrimaryKeyJoinColumn(name = \"FOO\"), @PrimaryKeyJoinColumn}))", cu);
-	}
-	
-	public void testRemovePkJoinColumn() throws Exception {
-		ICompilationUnit cu = this.createTestSecondaryTablesWithPkJoinColumns();
-		JavaResourcePersistentType typeResource = buildJavaTypeResource(cu); 
-		SecondaryTableAnnotation table = (SecondaryTableAnnotation) typeResource.supportingAnnotations(JPA.SECONDARY_TABLE, JPA.SECONDARY_TABLES).next();
-		
-		table.removePkJoinColumn(1);
-		assertSourceContains("@SecondaryTables(@SecondaryTable(pkJoinColumns = {@PrimaryKeyJoinColumn(name = \"BAR\"), @PrimaryKeyJoinColumn(name = \"BAZ\")}))", cu);
-
-		table.removePkJoinColumn(0);
-		assertSourceContains("@SecondaryTables(@SecondaryTable(pkJoinColumns = @PrimaryKeyJoinColumn(name = \"BAZ\")))", cu);
-		
-		table.removePkJoinColumn(0);
-		assertSourceDoesNotContain("@SecondaryTable", cu);
-	}
-	
-	public void testMovePkJoinColumn() throws Exception {
-		ICompilationUnit cu = this.createTestSecondaryTablesWithPkJoinColumns();
-		JavaResourcePersistentType typeResource = buildJavaTypeResource(cu); 
-		SecondaryTableAnnotation table = (SecondaryTableAnnotation) typeResource.supportingAnnotations(JPA.SECONDARY_TABLE, JPA.SECONDARY_TABLES).next();
-		PrimaryKeyJoinColumnAnnotation joinColumn = table.pkJoinColumnAt(0);
-		joinColumn.setReferencedColumnName("REF_NAME");
-		joinColumn.setColumnDefinition("COLUMN_DEF");
-		table.movePkJoinColumn(2, 0);
-		assertSourceContains("@SecondaryTables(@SecondaryTable(pkJoinColumns = {@PrimaryKeyJoinColumn(name = \"FOO\"), @PrimaryKeyJoinColumn(name = \"BAZ\"), @PrimaryKeyJoinColumn(name = \"BAR\", referencedColumnName = \"REF_NAME\", columnDefinition = \"COLUMN_DEF\")}))", cu);
-	}
-	
-	public void testMovePkJoinColumn2() throws Exception {
-		ICompilationUnit cu = this.createTestSecondaryTablesWithPkJoinColumns();
-		JavaResourcePersistentType typeResource = buildJavaTypeResource(cu); 
-		SecondaryTableAnnotation table = (SecondaryTableAnnotation) typeResource.supportingAnnotations(JPA.SECONDARY_TABLE, JPA.SECONDARY_TABLES).next();
-
-		
-		PrimaryKeyJoinColumnAnnotation joinColumn = table.pkJoinColumnAt(0);
-		joinColumn.setReferencedColumnName("REF_NAME");
-		joinColumn.setColumnDefinition("COLUMN_DEF");
-		table.movePkJoinColumn(0, 2);
-		assertSourceContains("@SecondaryTables(@SecondaryTable(pkJoinColumns = {@PrimaryKeyJoinColumn(name = \"BAZ\"), @PrimaryKeyJoinColumn(name = \"BAR\", referencedColumnName = \"REF_NAME\", columnDefinition = \"COLUMN_DEF\"), @PrimaryKeyJoinColumn(name = \"FOO\")}))", cu);
-	}
-	
-	public void testSetPkJoinColumnName() throws Exception {
-		ICompilationUnit cu = this.createTestSecondaryTablesWithPkJoinColumns();
-		JavaResourcePersistentType typeResource = buildJavaTypeResource(cu); 
-		SecondaryTableAnnotation table = (SecondaryTableAnnotation) typeResource.supportingAnnotations(JPA.SECONDARY_TABLE, JPA.SECONDARY_TABLES).next();
-				
-		assertEquals(3, table.pkJoinColumnsSize());
-		
-		PrimaryKeyJoinColumnAnnotation joinColumn = table.pkJoinColumns().next();
-		
-		assertEquals("BAR", joinColumn.getName());
-		
-		joinColumn.setName("foo");
-		assertEquals("foo", joinColumn.getName());
-		
-		assertSourceContains("@SecondaryTables(@SecondaryTable(pkJoinColumns = {@PrimaryKeyJoinColumn(name = \"foo\"), @PrimaryKeyJoinColumn(name = \"FOO\"), @PrimaryKeyJoinColumn(name = \"BAZ\")}))", cu);
-	}
-
-}
diff --git a/jpa/tests/org.eclipse.jpt.core.tests/src/org/eclipse/jpt/core/tests/internal/resource/java/SequenceGeneratorTests.java b/jpa/tests/org.eclipse.jpt.core.tests/src/org/eclipse/jpt/core/tests/internal/resource/java/SequenceGeneratorTests.java
deleted file mode 100644
index 69287a9..0000000
--- a/jpa/tests/org.eclipse.jpt.core.tests/src/org/eclipse/jpt/core/tests/internal/resource/java/SequenceGeneratorTests.java
+++ /dev/null
@@ -1,231 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.core.tests.internal.resource.java;
-
-import java.util.Iterator;
-import org.eclipse.jdt.core.ICompilationUnit;
-import org.eclipse.jpt.core.resource.java.JPA;
-import org.eclipse.jpt.core.resource.java.JavaResourcePersistentAttribute;
-import org.eclipse.jpt.core.resource.java.JavaResourcePersistentType;
-import org.eclipse.jpt.core.resource.java.SequenceGeneratorAnnotation;
-import org.eclipse.jpt.utility.internal.iterators.ArrayIterator;
-
-@SuppressWarnings("nls")
-public class SequenceGeneratorTests extends JavaResourceModelTestCase {
-
-	private static final String GENERATOR_NAME = "MY_GENERATOR";
-	private static final String GENERATOR_SEQUENCE_NAME = "MY_SEQUENCE";
-	private static final Integer GENERATOR_ALLOCATION_SIZE = Integer.valueOf(5);
-	private static final Integer GENERATOR_INITIAL_VALUE = Integer.valueOf(5);
-	
-	public SequenceGeneratorTests(String name) {
-		super(name);
-	}
-	
-	private ICompilationUnit createTestSequenceGeneratorOnField() throws Exception {
-		return this.createTestType(new DefaultAnnotationWriter() {
-			@Override
-			public Iterator<String> imports() {
-				return new ArrayIterator<String>(JPA.SEQUENCE_GENERATOR);
-			}
-			@Override
-			public void appendIdFieldAnnotationTo(StringBuilder sb) {
-				sb.append("@SequenceGenerator");
-			}
-		});
-	}
-	
-	private ICompilationUnit createTestSequenceGeneratorOnType() throws Exception {
-		return this.createTestType(new DefaultAnnotationWriter() {
-			@Override
-			public Iterator<String> imports() {
-				return new ArrayIterator<String>(JPA.SEQUENCE_GENERATOR);
-			}
-			@Override
-			public void appendTypeAnnotationTo(StringBuilder sb) {
-				sb.append("@SequenceGenerator");
-			}
-		});
-	}
-	
-	private ICompilationUnit createTestSequenceGeneratorWithName() throws Exception {
-		return createTestSequenceGeneratorWithStringElement("name", GENERATOR_NAME);
-	}
-	
-	private ICompilationUnit createTestSequenceGeneratorWithSequenceName() throws Exception {
-		return createTestSequenceGeneratorWithStringElement("sequenceName", GENERATOR_SEQUENCE_NAME);
-	}
-		
-	private ICompilationUnit createTestSequenceGeneratorWithStringElement(final String elementName, final String value) throws Exception {		return this.createTestType(new DefaultAnnotationWriter() {
-			@Override
-			public Iterator<String> imports() {
-				return new ArrayIterator<String>(JPA.SEQUENCE_GENERATOR);
-			}
-			@Override
-			public void appendIdFieldAnnotationTo(StringBuilder sb) {
-				sb.append("@SequenceGenerator(" + elementName + " = \"" + value + "\")");
-			}
-		});
-	}
-	
-	private ICompilationUnit createTestSequenceGeneratorWithAllocationSize() throws Exception {
-		return createTestSequenceGeneratorWithIntElement("allocationSize", GENERATOR_ALLOCATION_SIZE.intValue());
-	}
-	
-	private ICompilationUnit createTestSequenceGeneratorWithInitialValue() throws Exception {
-		return createTestSequenceGeneratorWithIntElement("initialValue", GENERATOR_INITIAL_VALUE.intValue());
-	}
-	
-	private ICompilationUnit createTestSequenceGeneratorWithIntElement(final String elementName, final int value) throws Exception {
-		return this.createTestType(new DefaultAnnotationWriter() {
-			@Override
-			public Iterator<String> imports() {
-				return new ArrayIterator<String>(JPA.SEQUENCE_GENERATOR);
-			}
-			@Override
-			public void appendIdFieldAnnotationTo(StringBuilder sb) {
-				sb.append("@SequenceGenerator(" + elementName + " = " + value + ")");
-			}
-		});
-	}
-
-	public void testSequenceGeneratorOnField() throws Exception {
-		ICompilationUnit cu = this.createTestSequenceGeneratorOnField();
-		JavaResourcePersistentType typeResource = buildJavaTypeResource(cu); 
-		JavaResourcePersistentAttribute attributeResource = typeResource.fields().next();
-		
-		SequenceGeneratorAnnotation sequenceGenerator = (SequenceGeneratorAnnotation) attributeResource.getSupportingAnnotation(JPA.SEQUENCE_GENERATOR);
-		assertNotNull(sequenceGenerator);
-	}
-	
-	public void testSequenceGeneratorOnType() throws Exception {
-		ICompilationUnit cu = this.createTestSequenceGeneratorOnType();
-		JavaResourcePersistentType typeResource = buildJavaTypeResource(cu); 
-		
-		SequenceGeneratorAnnotation sequenceGenerator = (SequenceGeneratorAnnotation) typeResource.getSupportingAnnotation(JPA.SEQUENCE_GENERATOR);
-		assertNotNull(sequenceGenerator);
-	}
-
-	public void testGetName() throws Exception {
-		ICompilationUnit cu = this.createTestSequenceGeneratorWithName();
-		JavaResourcePersistentType typeResource = buildJavaTypeResource(cu);
-		JavaResourcePersistentAttribute attributeResource = typeResource.fields().next();
-		
-		SequenceGeneratorAnnotation sequenceGenerator = (SequenceGeneratorAnnotation) attributeResource.getSupportingAnnotation(JPA.SEQUENCE_GENERATOR);
-		assertEquals(GENERATOR_NAME, sequenceGenerator.getName());
-	}
-
-	public void testSetName() throws Exception {
-		ICompilationUnit cu = this.createTestSequenceGeneratorWithName();
-		JavaResourcePersistentType typeResource = buildJavaTypeResource(cu);
-		JavaResourcePersistentAttribute attributeResource = typeResource.fields().next();
-		
-		SequenceGeneratorAnnotation sequenceGenerator = (SequenceGeneratorAnnotation) attributeResource.getSupportingAnnotation(JPA.SEQUENCE_GENERATOR);
-		assertEquals(GENERATOR_NAME, sequenceGenerator.getName());
-		
-		sequenceGenerator.setName("foo");
-		assertEquals("foo", sequenceGenerator.getName());
-		
-		assertSourceContains("@SequenceGenerator(name = \"foo\")", cu);
-		
-		sequenceGenerator.setName(null);
-		assertNull(sequenceGenerator.getName());
-		
-		assertSourceDoesNotContain("@SequenceGenerator", cu);
-	}
-
-	public void testGetSequenceName() throws Exception {
-		ICompilationUnit cu = this.createTestSequenceGeneratorWithSequenceName();
-		JavaResourcePersistentType typeResource = buildJavaTypeResource(cu);
-		JavaResourcePersistentAttribute attributeResource = typeResource.fields().next();
-		
-		SequenceGeneratorAnnotation sequenceGenerator = (SequenceGeneratorAnnotation) attributeResource.getSupportingAnnotation(JPA.SEQUENCE_GENERATOR);
-		assertEquals(GENERATOR_SEQUENCE_NAME, sequenceGenerator.getSequenceName());
-	}
-
-	public void testSetSequenceName() throws Exception {
-		ICompilationUnit cu = this.createTestSequenceGeneratorWithSequenceName();
-		JavaResourcePersistentType typeResource = buildJavaTypeResource(cu);
-		JavaResourcePersistentAttribute attributeResource = typeResource.fields().next();
-		
-		SequenceGeneratorAnnotation sequenceGenerator = (SequenceGeneratorAnnotation) attributeResource.getSupportingAnnotation(JPA.SEQUENCE_GENERATOR);
-		assertEquals(GENERATOR_SEQUENCE_NAME, sequenceGenerator.getSequenceName());
-		
-		sequenceGenerator.setSequenceName("foo");
-		assertEquals("foo", sequenceGenerator.getSequenceName());
-		
-		assertSourceContains("@SequenceGenerator(sequenceName = \"foo\")", cu);
-		
-		sequenceGenerator.setSequenceName(null);
-		assertNull(sequenceGenerator.getSequenceName());
-		
-		assertSourceDoesNotContain("@SequenceGenerator", cu);
-	}
-
-	public void testGetAllocationSize() throws Exception {
-		ICompilationUnit cu = this.createTestSequenceGeneratorWithAllocationSize();
-		JavaResourcePersistentType typeResource = buildJavaTypeResource(cu);
-		JavaResourcePersistentAttribute attributeResource = typeResource.fields().next();
-		
-		SequenceGeneratorAnnotation sequenceGenerator = (SequenceGeneratorAnnotation) attributeResource.getSupportingAnnotation(JPA.SEQUENCE_GENERATOR);
-		assertEquals(GENERATOR_ALLOCATION_SIZE, sequenceGenerator.getAllocationSize());
-	}
-
-	public void testSetAllocationSize() throws Exception {
-		ICompilationUnit cu = this.createTestSequenceGeneratorWithAllocationSize();
-		JavaResourcePersistentType typeResource = buildJavaTypeResource(cu);
-		JavaResourcePersistentAttribute attributeResource = typeResource.fields().next();
-		
-		SequenceGeneratorAnnotation sequenceGenerator = (SequenceGeneratorAnnotation) attributeResource.getSupportingAnnotation(JPA.SEQUENCE_GENERATOR);
-		assertEquals(GENERATOR_ALLOCATION_SIZE, sequenceGenerator.getAllocationSize());
-		
-		sequenceGenerator.setAllocationSize(Integer.valueOf(500));
-		assertEquals(Integer.valueOf(500), sequenceGenerator.getAllocationSize());
-		
-		assertSourceContains("@SequenceGenerator(allocationSize = 500)", cu);
-		
-		sequenceGenerator.setAllocationSize(null);
-		
-		assertSourceDoesNotContain("@SequenceGenerator", cu);
-
-		sequenceGenerator.setAllocationSize(Integer.valueOf(0));
-		assertSourceContains("@SequenceGenerator(allocationSize = 0)", cu);
-	}
-	
-	public void testGetInitialValue() throws Exception {
-		ICompilationUnit cu = this.createTestSequenceGeneratorWithInitialValue();
-		JavaResourcePersistentType typeResource = buildJavaTypeResource(cu);
-		JavaResourcePersistentAttribute attributeResource = typeResource.fields().next();
-		
-		SequenceGeneratorAnnotation sequenceGenerator = (SequenceGeneratorAnnotation) attributeResource.getSupportingAnnotation(JPA.SEQUENCE_GENERATOR);
-		assertEquals(GENERATOR_INITIAL_VALUE, sequenceGenerator.getInitialValue());
-	}
-
-	public void testSetInitialValue() throws Exception {
-		ICompilationUnit cu = this.createTestSequenceGeneratorWithInitialValue();
-		JavaResourcePersistentType typeResource = buildJavaTypeResource(cu);
-		JavaResourcePersistentAttribute attributeResource = typeResource.fields().next();
-		
-		SequenceGeneratorAnnotation sequenceGenerator = (SequenceGeneratorAnnotation) attributeResource.getSupportingAnnotation(JPA.SEQUENCE_GENERATOR);
-		assertEquals(GENERATOR_INITIAL_VALUE, sequenceGenerator.getInitialValue());
-		
-		sequenceGenerator.setInitialValue(Integer.valueOf(500));
-		assertEquals(Integer.valueOf(500), sequenceGenerator.getInitialValue());
-		
-		assertSourceContains("@SequenceGenerator(initialValue = 500)", cu);
-		
-		sequenceGenerator.setInitialValue(null);
-		
-		assertSourceDoesNotContain("@SequenceGenerator", cu);
-
-		sequenceGenerator.setInitialValue(Integer.valueOf(0));
-		assertSourceContains("@SequenceGenerator(initialValue = 0)", cu);
-	}
-}
diff --git a/jpa/tests/org.eclipse.jpt.core.tests/src/org/eclipse/jpt/core/tests/internal/resource/java/TableGeneratorTests.java b/jpa/tests/org.eclipse.jpt.core.tests/src/org/eclipse/jpt/core/tests/internal/resource/java/TableGeneratorTests.java
deleted file mode 100644
index c4067de..0000000
--- a/jpa/tests/org.eclipse.jpt.core.tests/src/org/eclipse/jpt/core/tests/internal/resource/java/TableGeneratorTests.java
+++ /dev/null
@@ -1,501 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.core.tests.internal.resource.java;
-
-import java.util.Iterator;
-import org.eclipse.jdt.core.ICompilationUnit;
-import org.eclipse.jpt.core.resource.java.JPA;
-import org.eclipse.jpt.core.resource.java.JavaResourcePersistentAttribute;
-import org.eclipse.jpt.core.resource.java.JavaResourcePersistentType;
-import org.eclipse.jpt.core.resource.java.TableGeneratorAnnotation;
-import org.eclipse.jpt.utility.internal.iterators.ArrayIterator;
-
-@SuppressWarnings("nls")
-public class TableGeneratorTests extends JavaResourceModelTestCase {
-
-	private static final String GENERATOR_NAME = "MY_GENERATOR";
-	private static final String GENERATOR_TABLE = "MY_TABLE";
-	private static final String GENERATOR_CATALOG = "MY_CATALOG";
-	private static final String GENERATOR_SCHEMA = "MY_SCHEMA";
-	private static final String GENERATOR_PK_COLUMN_NAME = "MY_PK_COLUMN_NAME";
-	private static final String GENERATOR_VALUE_COLUMN_NAME = "MY_VALUE_COLUMN_NAME";
-	private static final String GENERATOR_PK_COLUMN_VALUE = "MY_PK_COLUMN_VALUE";
-	private static final Integer GENERATOR_ALLOCATION_SIZE = Integer.valueOf(5);
-	private static final Integer GENERATOR_INITIAL_VALUE = Integer.valueOf(5);
-	
-	public TableGeneratorTests(String name) {
-		super(name);
-	}
-	
-	private ICompilationUnit createTestTableGeneratorOnField() throws Exception {
-		return this.createTestType(new DefaultAnnotationWriter() {
-			@Override
-			public Iterator<String> imports() {
-				return new ArrayIterator<String>(JPA.TABLE_GENERATOR);
-			}
-			@Override
-			public void appendIdFieldAnnotationTo(StringBuilder sb) {
-				sb.append("@TableGenerator");
-			}
-		});
-	}
-	
-	private ICompilationUnit createTestTableGeneratorOnType() throws Exception {
-		return this.createTestType(new DefaultAnnotationWriter() {
-			@Override
-			public Iterator<String> imports() {
-				return new ArrayIterator<String>(JPA.TABLE_GENERATOR);
-			}
-			@Override
-			public void appendTypeAnnotationTo(StringBuilder sb) {
-				sb.append("@TableGenerator");
-			}
-		});
-	}
-	
-	private ICompilationUnit createTestTableGeneratorWithName() throws Exception {
-		return createTestTableGeneratorWithStringElement("name", GENERATOR_NAME);
-	}
-	
-	private ICompilationUnit createTestTableGeneratorWithTable() throws Exception {
-		return createTestTableGeneratorWithStringElement("table", GENERATOR_TABLE);
-	}
-	
-	private ICompilationUnit createTestTableGeneratorWithCatalog() throws Exception {
-		return createTestTableGeneratorWithStringElement("catalog", GENERATOR_CATALOG);
-	}
-	
-	private ICompilationUnit createTestTableGeneratorWithSchema() throws Exception {
-		return createTestTableGeneratorWithStringElement("schema", GENERATOR_SCHEMA);
-	}
-	private ICompilationUnit createTestTableGeneratorWithPkColumnName() throws Exception {
-		return createTestTableGeneratorWithStringElement("pkColumnName", GENERATOR_PK_COLUMN_NAME);
-	}
-	
-	private ICompilationUnit createTestTableGeneratorWithValueColumnName() throws Exception {
-		return createTestTableGeneratorWithStringElement("valueColumnName", GENERATOR_VALUE_COLUMN_NAME);
-	}
-	
-	private ICompilationUnit createTestTableGeneratorWithPkColumnValue() throws Exception {
-		return createTestTableGeneratorWithStringElement("pkColumnValue", GENERATOR_PK_COLUMN_VALUE);
-	}
-
-	private ICompilationUnit createTestTableGeneratorWithStringElement(final String elementName, final String value) throws Exception {
-		return this.createTestType(new DefaultAnnotationWriter() {
-			@Override
-			public Iterator<String> imports() {
-				return new ArrayIterator<String>(JPA.TABLE_GENERATOR);
-			}
-			@Override
-			public void appendIdFieldAnnotationTo(StringBuilder sb) {
-				sb.append("@TableGenerator(" + elementName + " = \"" + value + "\")");
-			}
-		});
-	}
-	
-	private ICompilationUnit createTestTableGeneratorWithAllocationSize() throws Exception {
-		return createTestTableGeneratorWithIntElement("allocationSize", GENERATOR_ALLOCATION_SIZE.intValue());
-	}
-	
-	private ICompilationUnit createTestTableGeneratorWithInitialValue() throws Exception {
-		return createTestTableGeneratorWithIntElement("initialValue", GENERATOR_INITIAL_VALUE.intValue());
-	}
-	
-	private ICompilationUnit createTestTableGeneratorWithIntElement(final String elementName, final int value) throws Exception {
-		return this.createTestType(new DefaultAnnotationWriter() {
-			@Override
-			public Iterator<String> imports() {
-				return new ArrayIterator<String>(JPA.TABLE_GENERATOR);
-			}
-			@Override
-			public void appendIdFieldAnnotationTo(StringBuilder sb) {
-				sb.append("@TableGenerator(" + elementName + " = " + value + ")");
-			}
-		});
-	}
-
-	private ICompilationUnit createTestTableGeneratorWithUniqueConstraints() throws Exception {
-		return this.createTestType(new DefaultAnnotationWriter() {
-			@Override
-			public Iterator<String> imports() {
-				return new ArrayIterator<String>(JPA.TABLE_GENERATOR, JPA.UNIQUE_CONSTRAINT);
-			}
-			@Override
-			public void appendIdFieldAnnotationTo(StringBuilder sb) {
-				sb.append("@TableGenerator(uniqueConstraints = {@UniqueConstraint(columnNames = {\"BAR\"}), @UniqueConstraint(columnNames = {\"FOO\"}), @UniqueConstraint(columnNames = {\"BAZ\"})})");
-			}
-		});
-	}
-
-	public void testTableGeneratorOnField() throws Exception {
-		ICompilationUnit cu = this.createTestTableGeneratorOnField();
-		JavaResourcePersistentType typeResource = buildJavaTypeResource(cu); 
-		JavaResourcePersistentAttribute attributeResource = typeResource.fields().next();
-		
-		TableGeneratorAnnotation tableGenerator = (TableGeneratorAnnotation) attributeResource.getSupportingAnnotation(JPA.TABLE_GENERATOR);
-		assertNotNull(tableGenerator);
-	}
-	
-	public void testTableGeneratorOnType() throws Exception {
-		ICompilationUnit cu = this.createTestTableGeneratorOnType();
-		JavaResourcePersistentType typeResource = buildJavaTypeResource(cu); 
-		
-		TableGeneratorAnnotation tableGenerator = (TableGeneratorAnnotation) typeResource.getSupportingAnnotation(JPA.TABLE_GENERATOR);
-		assertNotNull(tableGenerator);
-	}
-
-	public void testGetName() throws Exception {
-		ICompilationUnit cu = this.createTestTableGeneratorWithName();
-		JavaResourcePersistentType typeResource = buildJavaTypeResource(cu);
-		JavaResourcePersistentAttribute attributeResource = typeResource.fields().next();
-		
-		TableGeneratorAnnotation tableGenerator = (TableGeneratorAnnotation) attributeResource.getSupportingAnnotation(JPA.TABLE_GENERATOR);
-		assertEquals(GENERATOR_NAME, tableGenerator.getName());
-	}
-
-	public void testSetName() throws Exception {
-		ICompilationUnit cu = this.createTestTableGeneratorWithName();
-		JavaResourcePersistentType typeResource = buildJavaTypeResource(cu);
-		JavaResourcePersistentAttribute attributeResource = typeResource.fields().next();
-		
-		TableGeneratorAnnotation tableGenerator = (TableGeneratorAnnotation) attributeResource.getSupportingAnnotation(JPA.TABLE_GENERATOR);
-		assertEquals(GENERATOR_NAME, tableGenerator.getName());
-		
-		tableGenerator.setName("foo");
-		assertEquals("foo", tableGenerator.getName());
-		
-		assertSourceContains("@TableGenerator(name = \"foo\")", cu);
-		
-		tableGenerator.setName(null);
-		assertNull(tableGenerator.getName());
-		
-		assertSourceDoesNotContain("@TableGenerator", cu);
-	}
-
-	public void testGetTable() throws Exception {
-		ICompilationUnit cu = this.createTestTableGeneratorWithTable();
-		JavaResourcePersistentType typeResource = buildJavaTypeResource(cu);
-		JavaResourcePersistentAttribute attributeResource = typeResource.fields().next();
-		
-		TableGeneratorAnnotation tableGenerator = (TableGeneratorAnnotation) attributeResource.getSupportingAnnotation(JPA.TABLE_GENERATOR);
-		assertEquals(GENERATOR_TABLE, tableGenerator.getTable());
-	}
-
-	public void testSetTable() throws Exception {
-		ICompilationUnit cu = this.createTestTableGeneratorWithTable();
-		JavaResourcePersistentType typeResource = buildJavaTypeResource(cu);
-		JavaResourcePersistentAttribute attributeResource = typeResource.fields().next();
-		
-		TableGeneratorAnnotation tableGenerator = (TableGeneratorAnnotation) attributeResource.getSupportingAnnotation(JPA.TABLE_GENERATOR);
-		assertEquals(GENERATOR_TABLE, tableGenerator.getTable());
-		
-		tableGenerator.setTable("foo");
-		assertEquals("foo", tableGenerator.getTable());
-		
-		assertSourceContains("@TableGenerator(table = \"foo\")", cu);
-		
-		tableGenerator.setTable(null);
-		assertNull(tableGenerator.getTable());
-		
-		assertSourceDoesNotContain("@TableGenerator", cu);
-	}
-
-	public void testGetCatalog() throws Exception {
-		ICompilationUnit cu = this.createTestTableGeneratorWithCatalog();
-		JavaResourcePersistentType typeResource = buildJavaTypeResource(cu);
-		JavaResourcePersistentAttribute attributeResource = typeResource.fields().next();
-		
-		TableGeneratorAnnotation tableGenerator = (TableGeneratorAnnotation) attributeResource.getSupportingAnnotation(JPA.TABLE_GENERATOR);
-		assertEquals(GENERATOR_CATALOG, tableGenerator.getCatalog());
-	}
-
-	public void testSetCatalog() throws Exception {
-		ICompilationUnit cu = this.createTestTableGeneratorWithCatalog();
-		JavaResourcePersistentType typeResource = buildJavaTypeResource(cu);
-		JavaResourcePersistentAttribute attributeResource = typeResource.fields().next();
-		
-		TableGeneratorAnnotation tableGenerator = (TableGeneratorAnnotation) attributeResource.getSupportingAnnotation(JPA.TABLE_GENERATOR);
-		assertEquals(GENERATOR_CATALOG, tableGenerator.getCatalog());
-		
-		tableGenerator.setCatalog("foo");
-		assertEquals("foo", tableGenerator.getCatalog());
-		
-		assertSourceContains("@TableGenerator(catalog = \"foo\")", cu);
-		
-		tableGenerator.setCatalog(null);
-		assertNull(tableGenerator.getCatalog());
-		
-		assertSourceDoesNotContain("@TableGenerator", cu);
-	}
-
-	public void testGetSchema() throws Exception {
-		ICompilationUnit cu = this.createTestTableGeneratorWithSchema();
-		JavaResourcePersistentType typeResource = buildJavaTypeResource(cu);
-		JavaResourcePersistentAttribute attributeResource = typeResource.fields().next();
-		
-		TableGeneratorAnnotation tableGenerator = (TableGeneratorAnnotation) attributeResource.getSupportingAnnotation(JPA.TABLE_GENERATOR);
-		assertEquals(GENERATOR_SCHEMA, tableGenerator.getSchema());
-	}
-
-	public void testSetSchema() throws Exception {
-		ICompilationUnit cu = this.createTestTableGeneratorWithSchema();
-		JavaResourcePersistentType typeResource = buildJavaTypeResource(cu);
-		JavaResourcePersistentAttribute attributeResource = typeResource.fields().next();
-		
-		TableGeneratorAnnotation tableGenerator = (TableGeneratorAnnotation) attributeResource.getSupportingAnnotation(JPA.TABLE_GENERATOR);
-		assertEquals(GENERATOR_SCHEMA, tableGenerator.getSchema());
-		
-		tableGenerator.setSchema("foo");
-		assertEquals("foo", tableGenerator.getSchema());
-		
-		assertSourceContains("@TableGenerator(schema = \"foo\")", cu);
-		
-		tableGenerator.setSchema(null);
-		assertNull(tableGenerator.getSchema());
-		
-		assertSourceDoesNotContain("@TableGenerator", cu);
-	}
-
-	public void testGetPkColumnName() throws Exception {
-		ICompilationUnit cu = this.createTestTableGeneratorWithPkColumnName();
-		JavaResourcePersistentType typeResource = buildJavaTypeResource(cu);
-		JavaResourcePersistentAttribute attributeResource = typeResource.fields().next();
-		
-		TableGeneratorAnnotation tableGenerator = (TableGeneratorAnnotation) attributeResource.getSupportingAnnotation(JPA.TABLE_GENERATOR);
-		assertEquals(GENERATOR_PK_COLUMN_NAME, tableGenerator.getPkColumnName());
-	}
-
-	public void testSetPkColumnName() throws Exception {
-		ICompilationUnit cu = this.createTestTableGeneratorWithPkColumnName();
-		JavaResourcePersistentType typeResource = buildJavaTypeResource(cu);
-		JavaResourcePersistentAttribute attributeResource = typeResource.fields().next();
-		
-		TableGeneratorAnnotation tableGenerator = (TableGeneratorAnnotation) attributeResource.getSupportingAnnotation(JPA.TABLE_GENERATOR);
-		assertEquals(GENERATOR_PK_COLUMN_NAME, tableGenerator.getPkColumnName());
-		
-		tableGenerator.setPkColumnName("foo");
-		assertEquals("foo", tableGenerator.getPkColumnName());
-		
-		assertSourceContains("@TableGenerator(pkColumnName = \"foo\")", cu);
-		
-		tableGenerator.setPkColumnName(null);
-		assertNull(tableGenerator.getPkColumnName());
-		
-		assertSourceDoesNotContain("@TableGenerator", cu);
-	}
-	
-	public void testGetValueColumnName() throws Exception {
-		ICompilationUnit cu = this.createTestTableGeneratorWithValueColumnName();
-		JavaResourcePersistentType typeResource = buildJavaTypeResource(cu);
-		JavaResourcePersistentAttribute attributeResource = typeResource.fields().next();
-		
-		TableGeneratorAnnotation tableGenerator = (TableGeneratorAnnotation) attributeResource.getSupportingAnnotation(JPA.TABLE_GENERATOR);
-		assertEquals(GENERATOR_VALUE_COLUMN_NAME, tableGenerator.getValueColumnName());
-	}
-
-	public void testSetValueColumnName() throws Exception {
-		ICompilationUnit cu = this.createTestTableGeneratorWithValueColumnName();
-		JavaResourcePersistentType typeResource = buildJavaTypeResource(cu);
-		JavaResourcePersistentAttribute attributeResource = typeResource.fields().next();
-		
-		TableGeneratorAnnotation tableGenerator = (TableGeneratorAnnotation) attributeResource.getSupportingAnnotation(JPA.TABLE_GENERATOR);
-		assertEquals(GENERATOR_VALUE_COLUMN_NAME, tableGenerator.getValueColumnName());
-		
-		tableGenerator.setValueColumnName("foo");
-		assertEquals("foo", tableGenerator.getValueColumnName());
-		
-		assertSourceContains("@TableGenerator(valueColumnName = \"foo\")", cu);
-		
-		tableGenerator.setValueColumnName(null);
-		assertNull(tableGenerator.getValueColumnName());
-		
-		assertSourceDoesNotContain("@TableGenerator", cu);
-	}
-
-	public void testGetPkColumnValue() throws Exception {
-		ICompilationUnit cu = this.createTestTableGeneratorWithPkColumnValue();
-		JavaResourcePersistentType typeResource = buildJavaTypeResource(cu);
-		JavaResourcePersistentAttribute attributeResource = typeResource.fields().next();
-		
-		TableGeneratorAnnotation tableGenerator = (TableGeneratorAnnotation) attributeResource.getSupportingAnnotation(JPA.TABLE_GENERATOR);
-		assertEquals(GENERATOR_PK_COLUMN_VALUE, tableGenerator.getPkColumnValue());
-	}
-
-	public void testSetPkColumnValue() throws Exception {
-		ICompilationUnit cu = this.createTestTableGeneratorWithPkColumnValue();
-		JavaResourcePersistentType typeResource = buildJavaTypeResource(cu);
-		JavaResourcePersistentAttribute attributeResource = typeResource.fields().next();
-		
-		TableGeneratorAnnotation tableGenerator = (TableGeneratorAnnotation) attributeResource.getSupportingAnnotation(JPA.TABLE_GENERATOR);
-		assertEquals(GENERATOR_PK_COLUMN_VALUE, tableGenerator.getPkColumnValue());
-		
-		tableGenerator.setPkColumnValue("foo");
-		assertEquals("foo", tableGenerator.getPkColumnValue());
-		
-		assertSourceContains("@TableGenerator(pkColumnValue = \"foo\")", cu);
-		
-		tableGenerator.setPkColumnValue(null);
-		assertNull(tableGenerator.getPkColumnValue());
-		
-		assertSourceDoesNotContain("@TableGenerator", cu);
-	}
-
-	public void testGetAllocationSize() throws Exception {
-		ICompilationUnit cu = this.createTestTableGeneratorWithAllocationSize();
-		JavaResourcePersistentType typeResource = buildJavaTypeResource(cu);
-		JavaResourcePersistentAttribute attributeResource = typeResource.fields().next();
-		
-		TableGeneratorAnnotation tableGenerator = (TableGeneratorAnnotation) attributeResource.getSupportingAnnotation(JPA.TABLE_GENERATOR);
-		assertEquals(GENERATOR_ALLOCATION_SIZE, tableGenerator.getAllocationSize());
-	}
-
-	public void testSetAllocationSize() throws Exception {
-		ICompilationUnit cu = this.createTestTableGeneratorWithAllocationSize();
-		JavaResourcePersistentType typeResource = buildJavaTypeResource(cu);
-		JavaResourcePersistentAttribute attributeResource = typeResource.fields().next();
-		
-		TableGeneratorAnnotation tableGenerator = (TableGeneratorAnnotation) attributeResource.getSupportingAnnotation(JPA.TABLE_GENERATOR);
-		assertEquals(GENERATOR_ALLOCATION_SIZE, tableGenerator.getAllocationSize());
-		
-		tableGenerator.setAllocationSize(Integer.valueOf(500));
-		assertEquals(Integer.valueOf(500), tableGenerator.getAllocationSize());
-		
-		assertSourceContains("@TableGenerator(allocationSize = 500)", cu);
-		
-		tableGenerator.setAllocationSize(null);
-		
-		assertSourceDoesNotContain("@TableGenerator", cu);
-
-		tableGenerator.setAllocationSize(Integer.valueOf(0));
-		assertSourceContains("@TableGenerator(allocationSize = 0)", cu);
-	}
-	
-	public void testGetInitialValue() throws Exception {
-		ICompilationUnit cu = this.createTestTableGeneratorWithInitialValue();
-		JavaResourcePersistentType typeResource = buildJavaTypeResource(cu);
-		JavaResourcePersistentAttribute attributeResource = typeResource.fields().next();
-		
-		TableGeneratorAnnotation tableGenerator = (TableGeneratorAnnotation) attributeResource.getSupportingAnnotation(JPA.TABLE_GENERATOR);
-		assertEquals(GENERATOR_INITIAL_VALUE, tableGenerator.getInitialValue());
-	}
-
-	public void testSetInitialValue() throws Exception {
-		ICompilationUnit cu = this.createTestTableGeneratorWithInitialValue();
-		JavaResourcePersistentType typeResource = buildJavaTypeResource(cu);
-		JavaResourcePersistentAttribute attributeResource = typeResource.fields().next();
-		
-		TableGeneratorAnnotation tableGenerator = (TableGeneratorAnnotation) attributeResource.getSupportingAnnotation(JPA.TABLE_GENERATOR);
-		assertEquals(GENERATOR_INITIAL_VALUE, tableGenerator.getInitialValue());
-		
-		tableGenerator.setInitialValue(Integer.valueOf(500));
-		assertEquals(Integer.valueOf(500), tableGenerator.getInitialValue());
-		
-		assertSourceContains("@TableGenerator(initialValue = 500)", cu);
-		
-		tableGenerator.setInitialValue(null);
-		
-		assertSourceDoesNotContain("@TableGenerator", cu);
-
-		tableGenerator.setInitialValue(Integer.valueOf(0));
-		assertSourceContains("@TableGenerator(initialValue = 0)", cu);
-	}
-	
-	public void testUniqueConstraints() throws Exception {
-		ICompilationUnit cu = this.createTestTableGeneratorOnField();
-		JavaResourcePersistentType typeResource = buildJavaTypeResource(cu); 
-		JavaResourcePersistentAttribute attributeResource = typeResource.fields().next();
-		
-		TableGeneratorAnnotation tableGenerator = (TableGeneratorAnnotation) attributeResource.getSupportingAnnotation(JPA.TABLE_GENERATOR);
-		
-		assertEquals(0, tableGenerator.uniqueConstraintsSize());
-	}
-	
-	public void testUniqueConstraints2() throws Exception {
-		ICompilationUnit cu = this.createTestTableGeneratorOnField();
-		JavaResourcePersistentType typeResource = buildJavaTypeResource(cu); 
-		JavaResourcePersistentAttribute attributeResource = typeResource.fields().next();
-		
-		TableGeneratorAnnotation tableGenerator = (TableGeneratorAnnotation) attributeResource.getSupportingAnnotation(JPA.TABLE_GENERATOR);
-		
-		tableGenerator.addUniqueConstraint(0);
-		tableGenerator.addUniqueConstraint(1);
-		
-		assertEquals(2, tableGenerator.uniqueConstraintsSize());
-	}
-	
-	public void testUniqueConstraints3() throws Exception {
-		ICompilationUnit cu = this.createTestTableGeneratorWithUniqueConstraints();
-		JavaResourcePersistentType typeResource = buildJavaTypeResource(cu); 
-		JavaResourcePersistentAttribute attributeResource = typeResource.fields().next();
-		
-		TableGeneratorAnnotation tableGenerator = (TableGeneratorAnnotation) attributeResource.getSupportingAnnotation(JPA.TABLE_GENERATOR);
-				
-		assertEquals(3, tableGenerator.uniqueConstraintsSize());
-	}
-	
-	public void testAddUniqueConstraint() throws Exception {
-		ICompilationUnit cu = this.createTestTableGeneratorOnField();
-		JavaResourcePersistentType typeResource = buildJavaTypeResource(cu); 
-		JavaResourcePersistentAttribute attributeResource = typeResource.fields().next();
-		
-		TableGeneratorAnnotation tableGenerator = (TableGeneratorAnnotation) attributeResource.getSupportingAnnotation(JPA.TABLE_GENERATOR);
-		
-		tableGenerator.addUniqueConstraint(0).addColumnName("FOO");
-		tableGenerator.addUniqueConstraint(1);
-		tableGenerator.addUniqueConstraint(0).addColumnName("BAR");
-
-		assertEquals("BAR", tableGenerator.uniqueConstraintAt(0).columnNames().next());
-		assertEquals("FOO", tableGenerator.uniqueConstraintAt(1).columnNames().next());
-		assertEquals(0, tableGenerator.uniqueConstraintAt(2).columnNamesSize());
-
-		assertEquals(3, tableGenerator.uniqueConstraintsSize());
-		assertSourceContains("@TableGenerator(uniqueConstraints = {@UniqueConstraint(columnNames = \"BAR\"),@UniqueConstraint(columnNames = \"FOO\"), @UniqueConstraint})", cu);
-	}
-	
-	public void testRemoveUniqueConstraint() throws Exception {
-		ICompilationUnit cu = this.createTestTableGeneratorWithUniqueConstraints();
-		JavaResourcePersistentType typeResource = buildJavaTypeResource(cu); 
-		JavaResourcePersistentAttribute attributeResource = typeResource.fields().next();
-		
-		TableGeneratorAnnotation tableGenerator = (TableGeneratorAnnotation) attributeResource.getSupportingAnnotation(JPA.TABLE_GENERATOR);
-		
-		tableGenerator.removeUniqueConstraint(1);
-		assertSourceContains("@TableGenerator(uniqueConstraints = {@UniqueConstraint(columnNames = {\"BAR\"}), @UniqueConstraint(columnNames = {\"BAZ\"})})", cu);
-		
-		tableGenerator.removeUniqueConstraint(0);
-		assertSourceContains("@TableGenerator(uniqueConstraints = @UniqueConstraint(columnNames = {\"BAZ\"}))", cu);
-		
-		tableGenerator.removeUniqueConstraint(0);
-		assertSourceDoesNotContain("@TableGenerator", cu);
-	}
-	
-	public void testMoveUniqueConstraint() throws Exception {
-		ICompilationUnit cu = this.createTestTableGeneratorWithUniqueConstraints();
-		JavaResourcePersistentType typeResource = buildJavaTypeResource(cu); 
-		JavaResourcePersistentAttribute attributeResource = typeResource.fields().next();
-		
-		TableGeneratorAnnotation tableGenerator = (TableGeneratorAnnotation) attributeResource.getSupportingAnnotation(JPA.TABLE_GENERATOR);
-		
-		tableGenerator.moveUniqueConstraint(2, 0);
-		assertSourceContains("@TableGenerator(uniqueConstraints = {@UniqueConstraint(columnNames = {\"FOO\"}), @UniqueConstraint(columnNames = {\"BAZ\"}), @UniqueConstraint(columnNames = {\"BAR\"})})", cu);
-	}
-	
-	public void testMoveUniqueConstraint2() throws Exception {
-		ICompilationUnit cu = this.createTestTableGeneratorWithUniqueConstraints();
-		JavaResourcePersistentType typeResource = buildJavaTypeResource(cu); 
-		JavaResourcePersistentAttribute attributeResource = typeResource.fields().next();
-		
-		TableGeneratorAnnotation tableGenerator = (TableGeneratorAnnotation) attributeResource.getSupportingAnnotation(JPA.TABLE_GENERATOR);
-		
-		tableGenerator.moveUniqueConstraint(0, 2);
-		assertSourceContains("@TableGenerator(uniqueConstraints = {@UniqueConstraint(columnNames = {\"BAZ\"}), @UniqueConstraint(columnNames = {\"BAR\"}), @UniqueConstraint(columnNames = {\"FOO\"})})", cu);
-	}
-	
-}
diff --git a/jpa/tests/org.eclipse.jpt.core.tests/src/org/eclipse/jpt/core/tests/internal/resource/java/TableTests.java b/jpa/tests/org.eclipse.jpt.core.tests/src/org/eclipse/jpt/core/tests/internal/resource/java/TableTests.java
deleted file mode 100644
index a2cf4d9..0000000
--- a/jpa/tests/org.eclipse.jpt.core.tests/src/org/eclipse/jpt/core/tests/internal/resource/java/TableTests.java
+++ /dev/null
@@ -1,346 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.core.tests.internal.resource.java;
-
-import java.util.Iterator;
-import java.util.ListIterator;
-import org.eclipse.jdt.core.ICompilationUnit;
-import org.eclipse.jpt.core.resource.java.JPA;
-import org.eclipse.jpt.core.resource.java.JavaResourcePersistentType;
-import org.eclipse.jpt.core.resource.java.TableAnnotation;
-import org.eclipse.jpt.utility.internal.iterators.ArrayIterator;
-
-@SuppressWarnings("nls")
-public class TableTests extends JavaResourceModelTestCase {
-	
-	private static final String TABLE_NAME = "MY_TABLE";
-	private static final String SCHEMA_NAME = "MY_SCHEMA";
-	private static final String CATALOG_NAME = "MY_CATALOG";
-	
-	public TableTests(String name) {
-		super(name);
-	}
-	
-	private ICompilationUnit createTestTable() throws Exception {
-		return this.createTestType(new DefaultAnnotationWriter() {
-			@Override
-			public Iterator<String> imports() {
-				return new ArrayIterator<String>(JPA.TABLE);
-			}
-			@Override
-			public void appendTypeAnnotationTo(StringBuilder sb) {
-				sb.append("@Table");
-			}
-		});
-	}
-	
-	private ICompilationUnit createTestTableWithName() throws Exception {
-		return this.createTestType(new DefaultAnnotationWriter() {
-			@Override
-			public Iterator<String> imports() {
-				return new ArrayIterator<String>(JPA.TABLE);
-			}
-			@Override
-			public void appendTypeAnnotationTo(StringBuilder sb) {
-				sb.append("@Table(name = \"" + TABLE_NAME + "\")");
-			}
-		});
-	}
-	
-	private ICompilationUnit createTestTableWithSchema() throws Exception {
-		return this.createTestType(new DefaultAnnotationWriter() {
-			@Override
-			public Iterator<String> imports() {
-				return new ArrayIterator<String>(JPA.TABLE);
-			}
-			@Override
-			public void appendTypeAnnotationTo(StringBuilder sb) {
-				sb.append("@Table(schema = \"" + SCHEMA_NAME + "\")");
-			}
-		});
-	}
-	
-	private ICompilationUnit createTestTableWithCatalog() throws Exception {
-		return this.createTestType(new DefaultAnnotationWriter() {
-			@Override
-			public Iterator<String> imports() {
-				return new ArrayIterator<String>(JPA.TABLE);
-			}
-			@Override
-			public void appendTypeAnnotationTo(StringBuilder sb) {
-				sb.append("@Table(catalog = \"" + CATALOG_NAME + "\")");
-			}
-		});
-	}
-	
-	private ICompilationUnit createTestTableWithUniqueConstraints() throws Exception {
-		return this.createTestType(new DefaultAnnotationWriter() {
-			@Override
-			public Iterator<String> imports() {
-				return new ArrayIterator<String>(JPA.TABLE, JPA.UNIQUE_CONSTRAINT);
-			}
-			@Override
-			public void appendTypeAnnotationTo(StringBuilder sb) {
-				sb.append("@Table(uniqueConstraints = {@UniqueConstraint(columnNames = {\"BAR\"}), @UniqueConstraint(columnNames = {\"FOO\"}), @UniqueConstraint(columnNames = {\"BAZ\"})})");
-			}
-		});
-	}
-
-	public void testGetName() throws Exception {
-		ICompilationUnit cu = this.createTestTableWithName();
-		JavaResourcePersistentType typeResource = buildJavaTypeResource(cu); 
-		
-		TableAnnotation table = (TableAnnotation) typeResource.getSupportingAnnotation(JPA.TABLE);
-		assertNotNull(table);
-		assertEquals(TABLE_NAME, table.getName());
-	}
-
-	public void testGetNull() throws Exception {
-		ICompilationUnit cu = this.createTestTable();
-		JavaResourcePersistentType typeResource = buildJavaTypeResource(cu); 
-		
-		TableAnnotation table = (TableAnnotation) typeResource.getSupportingAnnotation(JPA.TABLE);
-		assertNotNull(table);
-		assertNull(table.getName());
-		assertNull(table.getCatalog());
-		assertNull(table.getSchema());
-	}
-
-	public void testSetName() throws Exception {
-		ICompilationUnit cu = this.createTestTable();
-		JavaResourcePersistentType typeResource = buildJavaTypeResource(cu); 
-		
-		TableAnnotation table = (TableAnnotation) typeResource.getSupportingAnnotation(JPA.TABLE);
-		assertNotNull(table);
-		assertNull(table.getName());
-
-		table.setName("Foo");
-		assertEquals("Foo", table.getName());
-		
-		assertSourceContains("@Table(name = \"Foo\")", cu);
-	}
-	
-	public void testSetNameNull() throws Exception {
-		ICompilationUnit cu = this.createTestTableWithName();
-		JavaResourcePersistentType typeResource = buildJavaTypeResource(cu); 
-		
-		TableAnnotation table = (TableAnnotation) typeResource.getSupportingAnnotation(JPA.TABLE);
-		assertEquals(TABLE_NAME, table.getName());
-		
-		table.setName(null);
-		assertNull(table.getName());
-		
-		assertSourceDoesNotContain("@Table", cu);
-	}
-
-	public void testGetCatalog() throws Exception {
-		ICompilationUnit cu = this.createTestTableWithCatalog();
-		JavaResourcePersistentType typeResource = buildJavaTypeResource(cu); 
-		
-		TableAnnotation table = (TableAnnotation) typeResource.getSupportingAnnotation(JPA.TABLE);
-		assertNotNull(table);
-		assertEquals(CATALOG_NAME, table.getCatalog());
-	}
-
-	public void testSetCatalog() throws Exception {
-		ICompilationUnit cu = this.createTestTable();
-		JavaResourcePersistentType typeResource = buildJavaTypeResource(cu); 
-		
-		TableAnnotation table = (TableAnnotation) typeResource.getSupportingAnnotation(JPA.TABLE);
-		assertNotNull(table);
-		assertNull(table.getCatalog());
-
-		table.setCatalog("Foo");
-		assertEquals("Foo", table.getCatalog());
-		
-		assertSourceContains("@Table(catalog = \"Foo\")", cu);
-	}
-	
-	public void testSetCatalogNull() throws Exception {
-		ICompilationUnit cu = this.createTestTableWithCatalog();
-		JavaResourcePersistentType typeResource = buildJavaTypeResource(cu); 
-		
-		TableAnnotation table = (TableAnnotation) typeResource.getSupportingAnnotation(JPA.TABLE);
-		assertEquals(CATALOG_NAME, table.getCatalog());
-		
-		table.setCatalog(null);
-		assertNull(table.getCatalog());
-		
-		assertSourceDoesNotContain("@Table", cu);
-	}
-	
-	public void testGetSchema() throws Exception {
-		ICompilationUnit cu = this.createTestTableWithSchema();
-		JavaResourcePersistentType typeResource = buildJavaTypeResource(cu); 
-		
-		TableAnnotation table = (TableAnnotation) typeResource.getSupportingAnnotation(JPA.TABLE);
-		assertNotNull(table);
-		assertEquals(SCHEMA_NAME, table.getSchema());
-	}
-
-	public void testSetSchema() throws Exception {
-		ICompilationUnit cu = this.createTestTable();
-		JavaResourcePersistentType typeResource = buildJavaTypeResource(cu); 
-		
-		TableAnnotation table = (TableAnnotation) typeResource.getSupportingAnnotation(JPA.TABLE);
-		assertNotNull(table);
-		assertNull(table.getSchema());
-
-		table.setSchema("Foo");
-		assertEquals("Foo", table.getSchema());
-		
-		assertSourceContains("@Table(schema = \"Foo\")", cu);
-	}
-	
-	public void testSetSchemaNull() throws Exception {
-		ICompilationUnit cu = this.createTestTableWithSchema();
-		JavaResourcePersistentType typeResource = buildJavaTypeResource(cu); 
-		
-		TableAnnotation table = (TableAnnotation) typeResource.getSupportingAnnotation(JPA.TABLE);
-		assertEquals(SCHEMA_NAME, table.getSchema());
-		
-		table.setSchema(null);
-		assertNull(table.getSchema());
-		
-		assertSourceDoesNotContain("@Table", cu);
-	}
-	
-	public void testUniqueConstraints() throws Exception {
-		ICompilationUnit cu = this.createTestTable();
-		JavaResourcePersistentType typeResource = buildJavaTypeResource(cu); 
-		TableAnnotation table = (TableAnnotation) typeResource.getSupportingAnnotation(JPA.TABLE);
-		
-		assertEquals(0, table.uniqueConstraintsSize());
-	}
-	
-	public void testUniqueConstraints2() throws Exception {
-		ICompilationUnit cu = this.createTestTable();
-		JavaResourcePersistentType typeResource = buildJavaTypeResource(cu); 
-		TableAnnotation table = (TableAnnotation) typeResource.getSupportingAnnotation(JPA.TABLE);
-		
-		table.addUniqueConstraint(0);
-		table.addUniqueConstraint(1);
-		
-		assertEquals(2, table.uniqueConstraintsSize());
-	}
-	
-	public void testUniqueConstraints3() throws Exception {
-		ICompilationUnit cu = this.createTestTableWithUniqueConstraints();
-		JavaResourcePersistentType typeResource = buildJavaTypeResource(cu); 
-		TableAnnotation table = (TableAnnotation) typeResource.getSupportingAnnotation(JPA.TABLE);
-				
-		assertEquals(3, table.uniqueConstraintsSize());
-	}
-	
-	public void testAddUniqueConstraint() throws Exception {
-		ICompilationUnit cu = this.createTestTable();
-		JavaResourcePersistentType typeResource = buildJavaTypeResource(cu); 
-		TableAnnotation table = (TableAnnotation) typeResource.getSupportingAnnotation(JPA.TABLE);
-		
-		table.addUniqueConstraint(0).addColumnName("FOO");
-		table.addUniqueConstraint(1);
-		table.addUniqueConstraint(0).addColumnName("BAR");
-		
-		assertEquals("BAR", table.uniqueConstraintAt(0).columnNames().next());
-		assertEquals("FOO", table.uniqueConstraintAt(1).columnNames().next());
-		assertEquals(0, table.uniqueConstraintAt(2).columnNamesSize());
-		
-		assertSourceContains("@Table(uniqueConstraints = {@UniqueConstraint(columnNames = \"BAR\"),@UniqueConstraint(columnNames = \"FOO\"), @UniqueConstraint})", cu);
-	}
-	
-	public void testAddUniqueConstraint2() throws Exception {
-		ICompilationUnit cu = this.createTestTable();
-		JavaResourcePersistentType typeResource = buildJavaTypeResource(cu); 
-		TableAnnotation table = (TableAnnotation) typeResource.getSupportingAnnotation(JPA.TABLE);
-		
-		table.addUniqueConstraint(0).addColumnName("FOO");
-		table.addUniqueConstraint(0);
-		table.addUniqueConstraint(1).addColumnName("BAR");
-		table.uniqueConstraintAt(1).addColumnName("BAZ");
-		
-		assertSourceContains("@Table(uniqueConstraints = {@UniqueConstraint,@UniqueConstraint(columnNames = { \"BAR\", \"BAZ\" }), @UniqueConstraint(columnNames = \"FOO\")})", cu);
-		
-		assertEquals("FOO", table.uniqueConstraintAt(2).columnNames().next());
-		ListIterator<String> columnNames = table.uniqueConstraintAt(1).columnNames();
-		assertEquals("BAR", columnNames.next());
-		assertEquals("BAZ", columnNames.next());
-	}	
-	public void testRemoveUniqueConstraint() throws Exception {
-		ICompilationUnit cu = this.createTestTableWithUniqueConstraints();
-		JavaResourcePersistentType typeResource = buildJavaTypeResource(cu); 
-		TableAnnotation table = (TableAnnotation) typeResource.getSupportingAnnotation(JPA.TABLE);
-		
-		table.removeUniqueConstraint(1);
-		assertSourceContains("@Table(uniqueConstraints = {@UniqueConstraint(columnNames = {\"BAR\"}), @UniqueConstraint(columnNames = {\"BAZ\"})})", cu);
-		
-		table.removeUniqueConstraint(0);
-		assertSourceContains("@Table(uniqueConstraints = @UniqueConstraint(columnNames = {\"BAZ\"}))", cu);
-		
-		table.removeUniqueConstraint(0);
-		assertSourceDoesNotContain("@Table", cu);
-	}
-	
-	public void testRemoveUniqueConstraint2() throws Exception {
-		ICompilationUnit cu = this.createTestTable();
-		JavaResourcePersistentType typeResource = buildJavaTypeResource(cu); 
-		TableAnnotation table = (TableAnnotation) typeResource.getSupportingAnnotation(JPA.TABLE);
-		table.addUniqueConstraint(0).addColumnName("FOO");
-		table.addUniqueConstraint(1).addColumnName("BAR");
-		table.addUniqueConstraint(2).addColumnName("BAZ");
-		assertSourceContains("@Table(uniqueConstraints = {@UniqueConstraint(columnNames = \"FOO\"),@UniqueConstraint(columnNames = \"BAR\"), @UniqueConstraint(columnNames = \"BAZ\")})", cu);
-		
-		table.removeUniqueConstraint(0);
-		assertSourceContains("@Table(uniqueConstraints = {@UniqueConstraint(columnNames = \"BAR\"),@UniqueConstraint(columnNames = \"BAZ\")})", cu);
-		
-		table.removeUniqueConstraint(0);
-		assertSourceContains("@Table(uniqueConstraints = @UniqueConstraint(columnNames = \"BAZ\"))", cu);
-		
-		table.removeUniqueConstraint(0);
-		assertSourceDoesNotContain("@Table", cu);
-	}
-	
-	public void testRemoveUniqueConstraint3() throws Exception {
-		ICompilationUnit cu = this.createTestTable();
-		JavaResourcePersistentType typeResource = buildJavaTypeResource(cu); 
-		TableAnnotation table = (TableAnnotation) typeResource.getSupportingAnnotation(JPA.TABLE);
-		table.addUniqueConstraint(0).addColumnName("FOO");
-		table.addUniqueConstraint(1).addColumnName("BAR");
-		table.addUniqueConstraint(2).addColumnName("BAZ");
-		assertSourceContains("@Table(uniqueConstraints = {@UniqueConstraint(columnNames = \"FOO\"),@UniqueConstraint(columnNames = \"BAR\"), @UniqueConstraint(columnNames = \"BAZ\")})", cu);
-		
-		table.removeUniqueConstraint(2);
-		assertSourceContains("@Table(uniqueConstraints = {@UniqueConstraint(columnNames = \"FOO\"),@UniqueConstraint(columnNames = \"BAR\")})", cu);
-		
-		table.removeUniqueConstraint(1);
-		assertSourceContains("@Table(uniqueConstraints = @UniqueConstraint(columnNames = \"FOO\"))", cu);
-		
-		table.removeUniqueConstraint(0);
-		assertSourceDoesNotContain("@Table", cu);
-	}
-	
-	public void testMoveUniqueConstraint() throws Exception {
-		ICompilationUnit cu = this.createTestTableWithUniqueConstraints();
-		JavaResourcePersistentType typeResource = buildJavaTypeResource(cu); 
-		TableAnnotation table = (TableAnnotation) typeResource.getSupportingAnnotation(JPA.TABLE);
-		
-		table.moveUniqueConstraint(2, 0);
-		assertSourceContains("@Table(uniqueConstraints = {@UniqueConstraint(columnNames = {\"FOO\"}), @UniqueConstraint(columnNames = {\"BAZ\"}), @UniqueConstraint(columnNames = {\"BAR\"})})", cu);
-	}
-	
-	public void testMoveUniqueConstraint2() throws Exception {
-		ICompilationUnit cu = this.createTestTableWithUniqueConstraints();
-		JavaResourcePersistentType typeResource = buildJavaTypeResource(cu); 
-		TableAnnotation table = (TableAnnotation) typeResource.getSupportingAnnotation(JPA.TABLE);
-		
-		table.moveUniqueConstraint(0, 2);
-		assertSourceContains("@Table(uniqueConstraints = {@UniqueConstraint(columnNames = {\"BAZ\"}), @UniqueConstraint(columnNames = {\"BAR\"}), @UniqueConstraint(columnNames = {\"FOO\"})})", cu);
-	}
-	
-}
diff --git a/jpa/tests/org.eclipse.jpt.core.tests/src/org/eclipse/jpt/core/tests/internal/resource/java/TemporalTests.java b/jpa/tests/org.eclipse.jpt.core.tests/src/org/eclipse/jpt/core/tests/internal/resource/java/TemporalTests.java
deleted file mode 100644
index 0769884..0000000
--- a/jpa/tests/org.eclipse.jpt.core.tests/src/org/eclipse/jpt/core/tests/internal/resource/java/TemporalTests.java
+++ /dev/null
@@ -1,88 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.core.tests.internal.resource.java;
-
-import java.util.Iterator;
-import org.eclipse.jdt.core.ICompilationUnit;
-import org.eclipse.jpt.core.resource.java.JPA;
-import org.eclipse.jpt.core.resource.java.JavaResourcePersistentAttribute;
-import org.eclipse.jpt.core.resource.java.JavaResourcePersistentType;
-import org.eclipse.jpt.core.resource.java.TemporalAnnotation;
-import org.eclipse.jpt.core.resource.java.TemporalType;
-import org.eclipse.jpt.utility.internal.iterators.ArrayIterator;
-
-@SuppressWarnings("nls")
-public class TemporalTests extends JavaResourceModelTestCase {
-
-	public TemporalTests(String name) {
-		super(name);
-	}
-
-	private ICompilationUnit createTestTemporal() throws Exception {
-		return this.createTestType(new DefaultAnnotationWriter() {
-			@Override
-			public Iterator<String> imports() {
-				return new ArrayIterator<String>(JPA.TEMPORAL);
-			}
-			@Override
-			public void appendIdFieldAnnotationTo(StringBuilder sb) {
-				sb.append("@Temporal");
-			}
-		});
-	}
-	
-	private ICompilationUnit createTestTemporalWithValue() throws Exception {
-		return this.createTestType(new DefaultAnnotationWriter() {
-			@Override
-			public Iterator<String> imports() {
-				return new ArrayIterator<String>(JPA.TEMPORAL, JPA.TEMPORAL_TYPE);
-			}
-			@Override
-			public void appendIdFieldAnnotationTo(StringBuilder sb) {
-				sb.append("@Temporal(TemporalType.DATE)");
-			}
-		});
-	}
-
-	public void testTemporal() throws Exception {
-		ICompilationUnit cu = this.createTestTemporal();
-		JavaResourcePersistentType typeResource = buildJavaTypeResource(cu); 
-		JavaResourcePersistentAttribute attributeResource = typeResource.fields().next();
-		
-		TemporalAnnotation temporal = (TemporalAnnotation) attributeResource.getSupportingAnnotation(JPA.TEMPORAL);
-		assertNotNull(temporal);
-	}
-	
-	public void testGetValue() throws Exception {
-		ICompilationUnit cu = this.createTestTemporalWithValue();
-		JavaResourcePersistentType typeResource = buildJavaTypeResource(cu); 
-		JavaResourcePersistentAttribute attributeResource = typeResource.fields().next();
-		
-		TemporalAnnotation temporal = (TemporalAnnotation) attributeResource.getSupportingAnnotation(JPA.TEMPORAL);
-		assertEquals(TemporalType.DATE, temporal.getValue());
-	}
-	
-	public void testSetValue() throws Exception {
-		ICompilationUnit cu = this.createTestTemporal();
-		JavaResourcePersistentType typeResource = buildJavaTypeResource(cu); 
-		JavaResourcePersistentAttribute attributeResource = typeResource.fields().next();
-
-		TemporalAnnotation temporal = (TemporalAnnotation) attributeResource.getSupportingAnnotation(JPA.TEMPORAL);
-
-		temporal.setValue(TemporalType.TIME);
-		
-		assertSourceContains("@Temporal(TIME)", cu);
-		
-		temporal.setValue(null);
-		
-		assertSourceDoesNotContain("@Temporal", cu);
-	}
-
-}
diff --git a/jpa/tests/org.eclipse.jpt.core.tests/src/org/eclipse/jpt/core/tests/internal/resource/java/TransientTests.java b/jpa/tests/org.eclipse.jpt.core.tests/src/org/eclipse/jpt/core/tests/internal/resource/java/TransientTests.java
deleted file mode 100644
index e268318..0000000
--- a/jpa/tests/org.eclipse.jpt.core.tests/src/org/eclipse/jpt/core/tests/internal/resource/java/TransientTests.java
+++ /dev/null
@@ -1,50 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.core.tests.internal.resource.java;
-
-import java.util.Iterator;
-import org.eclipse.jdt.core.ICompilationUnit;
-import org.eclipse.jpt.core.resource.java.JPA;
-import org.eclipse.jpt.core.resource.java.JavaResourceNode;
-import org.eclipse.jpt.core.resource.java.JavaResourcePersistentAttribute;
-import org.eclipse.jpt.core.resource.java.JavaResourcePersistentType;
-import org.eclipse.jpt.core.resource.java.TransientAnnotation;
-import org.eclipse.jpt.utility.internal.iterators.ArrayIterator;
-
-@SuppressWarnings("nls")
-public class TransientTests extends JavaResourceModelTestCase {
-
-	public TransientTests(String name) {
-		super(name);
-	}
-
-	private ICompilationUnit createTestTransient() throws Exception {
-		return this.createTestType(new DefaultAnnotationWriter() {
-			@Override
-			public Iterator<String> imports() {
-				return new ArrayIterator<String>(JPA.TRANSIENT);
-			}
-			@Override
-			public void appendIdFieldAnnotationTo(StringBuilder sb) {
-				sb.append("@Transient");
-			}
-		});
-	}
-
-	public void testTransient() throws Exception {
-		ICompilationUnit cu = this.createTestTransient();
-		JavaResourcePersistentType typeResource = buildJavaTypeResource(cu); 
-		JavaResourcePersistentAttribute attributeResource = typeResource.fields().next();
-		
-		JavaResourceNode mappingAnnotation = attributeResource.getMappingAnnotation();
-		assertTrue(mappingAnnotation instanceof TransientAnnotation);
-	}
-
-}
diff --git a/jpa/tests/org.eclipse.jpt.core.tests/src/org/eclipse/jpt/core/tests/internal/resource/java/VersionTests.java b/jpa/tests/org.eclipse.jpt.core.tests/src/org/eclipse/jpt/core/tests/internal/resource/java/VersionTests.java
deleted file mode 100644
index 5abf709..0000000
--- a/jpa/tests/org.eclipse.jpt.core.tests/src/org/eclipse/jpt/core/tests/internal/resource/java/VersionTests.java
+++ /dev/null
@@ -1,49 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.core.tests.internal.resource.java;
-
-import java.util.Iterator;
-import org.eclipse.jdt.core.ICompilationUnit;
-import org.eclipse.jpt.core.resource.java.JPA;
-import org.eclipse.jpt.core.resource.java.JavaResourceNode;
-import org.eclipse.jpt.core.resource.java.JavaResourcePersistentAttribute;
-import org.eclipse.jpt.core.resource.java.JavaResourcePersistentType;
-import org.eclipse.jpt.core.resource.java.VersionAnnotation;
-import org.eclipse.jpt.utility.internal.iterators.ArrayIterator;
-
-@SuppressWarnings("nls")
-public class VersionTests extends JavaResourceModelTestCase {
-
-	public VersionTests(String name) {
-		super(name);
-	}
-
-	private ICompilationUnit createTestVersion() throws Exception {
-		return this.createTestType(new DefaultAnnotationWriter() {
-			@Override
-			public Iterator<String> imports() {
-				return new ArrayIterator<String>(JPA.VERSION);
-			}
-			@Override
-			public void appendIdFieldAnnotationTo(StringBuilder sb) {
-				sb.append("@Version");
-			}
-		});
-	}
-	
-	public void testVersion() throws Exception {
-		ICompilationUnit cu = this.createTestVersion();
-		JavaResourcePersistentType typeResource = buildJavaTypeResource(cu); 
-		JavaResourcePersistentAttribute attributeResource = typeResource.fields().next();
-		
-		JavaResourceNode mappingAnnotation = attributeResource.getMappingAnnotation();
-		assertTrue(mappingAnnotation instanceof VersionAnnotation);
-	}
-}
diff --git a/jpa/tests/org.eclipse.jpt.core.tests/src/org/eclipse/jpt/core/tests/internal/utility/jdt/AnnotationTestCase.java b/jpa/tests/org.eclipse.jpt.core.tests/src/org/eclipse/jpt/core/tests/internal/utility/jdt/AnnotationTestCase.java
deleted file mode 100644
index 81c8d7f..0000000
--- a/jpa/tests/org.eclipse.jpt.core.tests/src/org/eclipse/jpt/core/tests/internal/utility/jdt/AnnotationTestCase.java
+++ /dev/null
@@ -1,512 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2008 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.core.tests.internal.utility.jdt;
-
-import java.io.File;
-import java.util.Iterator;
-import java.util.List;
-import junit.framework.TestCase;
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.IPath;
-import org.eclipse.core.runtime.Path;
-import org.eclipse.jdt.core.ICompilationUnit;
-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.CompilationUnit;
-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.utility.jdt.JDTFieldAttribute;
-import org.eclipse.jpt.core.internal.utility.jdt.JDTMethodAttribute;
-import org.eclipse.jpt.core.internal.utility.jdt.JDTTools;
-import org.eclipse.jpt.core.internal.utility.jdt.JDTType;
-import org.eclipse.jpt.core.tests.internal.projects.TestJavaProject;
-import org.eclipse.jpt.core.tests.internal.projects.TestJavaProject.SourceWriter;
-import org.eclipse.jpt.core.utility.jdt.Type;
-import org.eclipse.jpt.utility.internal.iterators.EmptyIterator;
-import org.eclipse.jpt.utility.internal.iterators.SingleElementIterator;
-import org.eclipse.jpt.utility.tests.internal.TestTools;
-
-/**
- * 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()).
- */
-@SuppressWarnings("nls")
-public abstract class AnnotationTestCase extends TestCase {
-	protected TestJavaProject javaProject;
-
-	public static final String CR = System.getProperty("line.separator");
-	public static final String SEP = File.separator;
-	public static final String PROJECT_NAME = "AnnotationTestProject";
-	public static final String PACKAGE_NAME = "test";
-	public static final String TYPE_NAME = "AnnotationTestType";
-	public static final String FULLY_QUALIFIED_TYPE_NAME = PACKAGE_NAME + "." + TYPE_NAME;
-	public static final String FILE_NAME = TYPE_NAME + ".java";
-	public static final IPath FILE_PATH = new Path("src" + SEP + PACKAGE_NAME + SEP + FILE_NAME);
-
-	public 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(false);  // false = no auto-build
-	}
-	
-	protected TestJavaProject buildJavaProject(boolean autoBuild) throws Exception {
-		return this.buildJavaProject(PROJECT_NAME, autoBuild);
-	}
-	
-	protected TestJavaProject buildJavaProject(String projectName, boolean autoBuild) throws Exception {
-		return new TestJavaProject(projectName, autoBuild);
-	}
-
-	@Override
-	protected void tearDown() throws Exception {
-//		this.dumpSource();
-		this.javaProject.getProject().delete(true, true, null);
-		TestTools.clear(this);
-		super.tearDown();
-	}
-
-	protected void dumpSource(ICompilationUnit cu) throws Exception {
-		System.out.println("*** " + this.getName() + " ****");
-		System.out.println(this.getSource(cu));
-		System.out.println();
-	}
-
-
-	// ********** type creation **********
-
-	/**
-	 * create an un-annotated type
-	 */
-	protected ICompilationUnit createTestType() throws CoreException {
-		return this.createTestType(new DefaultAnnotationWriter());
-	}
-
-	/**
-	 * shortcut for simply adding an annotation to the 'id' field
-	 */
-	protected ICompilationUnit 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(StringBuilder sb) {
-				sb.append(idFieldAnnotation);
-			}
-		});
-	}
-
-	/**
-	 * shortcut for simply adding a fully-qualified annotation to the 'id' field
-	 */
-	protected ICompilationUnit createTestType(final String idFieldAnnotation) throws CoreException {
-		return this.createTestType(null, idFieldAnnotation);
-	}
-
-	
-	protected ICompilationUnit createTestType(AnnotationWriter annotationWriter) throws CoreException {
-		return this.javaProject.createCompilationUnit(PACKAGE_NAME, FILE_NAME, this.createSourceWriter(annotationWriter));
-	}
-	
-	protected ICompilationUnit createTestType(String packageName, String fileName, String typeName, AnnotationWriter annotationWriter) throws CoreException {
-		return this.javaProject.createCompilationUnit(packageName, fileName, this.createSourceWriter(annotationWriter, typeName));
-	}
-
-	protected SourceWriter createSourceWriter(AnnotationWriter annotationWriter) {
-		return new AnnotatedSourceWriter(annotationWriter);
-	}
-	
-	protected SourceWriter createSourceWriter(AnnotationWriter annotationWriter, String typeName) {
-		return new AnnotatedSourceWriter(annotationWriter, typeName);
-	}
-
-	protected void appendSourceTo(StringBuilder sb, AnnotationWriter annotationWriter, String typeName) {
-		sb.append(CR);
-		for (Iterator<String> stream = annotationWriter.imports(); stream.hasNext(); ) {
-			sb.append("import ");
-			sb.append(stream.next());
-			sb.append(";");
-			sb.append(CR);
-		}
-		sb.append(CR);
-		annotationWriter.appendTypeAnnotationTo(sb);
-		sb.append(CR);
-		sb.append("public class ").append(typeName).append(" ");
-		annotationWriter.appendExtendsImplementsTo(sb);
-		sb.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);
-		annotationWriter.appendMemberTypeTo(sb);
-		sb.append(CR);		
-		sb.append("}").append(CR);
-		annotationWriter.appendTopLevelTypesTo(sb);
-		sb.append(CR);
-	}
-
-
-	// ********** queries **********
-
-	protected TestJavaProject getJavaProject() {
-		return this.javaProject;
-	}
-
-	protected JDTType testType(ICompilationUnit cu) {
-		return this.buildType(TYPE_NAME, cu);
-	}
-
-	protected JDTType buildType(String name, ICompilationUnit cu) {
-		return this.buildType(name, 1, cu);
-	}
-
-	protected JDTType buildType(String name, int occurrence, ICompilationUnit cu) {
-		return this.buildType(null, name, occurrence, cu);
-	}
-
-	protected JDTType buildType(Type declaringType, String name, int occurrence, ICompilationUnit cu) {
-		return new JDTType(declaringType, name, occurrence, cu);
-	}
-
-	protected JDTFieldAttribute idField(ICompilationUnit cu) {
-		return this.buildField("id", cu);
-	}
-
-	protected JDTFieldAttribute nameField(ICompilationUnit cu) {
-		return this.buildField("name", cu);
-	}
-
-	protected JDTFieldAttribute buildField(String name, ICompilationUnit cu) {
-		return this.buildField(name, 1, cu);
-	}
-
-	protected JDTFieldAttribute buildField(String name, int occurrence, ICompilationUnit cu) {
-		return this.buildField(this.testType(cu), name, occurrence, cu);
-	}
-
-	protected JDTFieldAttribute buildField(Type declaringType, String name, int occurrence, ICompilationUnit cu) {
-		return new JDTFieldAttribute(declaringType, name, occurrence, cu);
-	}
-
-	protected JDTMethodAttribute idGetMethod(ICompilationUnit cu) {
-		return this.buildMethod("getId", cu);
-	}
-	
-	protected JDTMethodAttribute idSetMethod(ICompilationUnit cu) {
-		return this.buildMethod("setId", new String[] {"int"}, cu);
-	}
-
-	protected JDTMethodAttribute nameGetMethod(ICompilationUnit cu) {
-		return this.buildMethod("getName", cu);
-	}
-
-	protected JDTMethodAttribute buildMethod(String name, ICompilationUnit cu) {
-		return this.buildMethod(name, EMPTY_STRING_ARRAY, cu);
-	}
-
-	protected JDTMethodAttribute buildMethod(String name, String[] parameterTypeNames, ICompilationUnit cu) {
-		return this.buildMethod(name, parameterTypeNames, 1, cu);
-	}
-
-	protected JDTMethodAttribute buildMethod(String name, String[] parameterTypeNames, int occurrence, ICompilationUnit cu) {
-		return new JDTMethodAttribute(this.testType(cu), name, parameterTypeNames, occurrence, cu);
-	}
-
-	protected JDTMethodAttribute buildMethod(Type declaringType, String name, String[] parameterTypeNames, int occurrence, ICompilationUnit cu) {
-		return new JDTMethodAttribute(declaringType, name, parameterTypeNames, occurrence, cu);
-	}
-
-	protected String getSource(ICompilationUnit cu) throws JavaModelException {
-		return cu.getBuffer().getContents();
-	}
-
-	protected CompilationUnit buildASTRoot(ICompilationUnit cu) {
-		return JDTTools.buildASTRoot(cu);
-	}
-
-
-	// ********** test validation **********
-
-	protected void assertSourceContains(String s, ICompilationUnit cu) throws JavaModelException {
-		String source = this.getSource(cu);
-		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, ICompilationUnit cu) throws JavaModelException {
-		String source = this.getSource(cu);
-		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;
-	}
-
-	/**
-	 * minimize the scope of the suppressed warnings
-	 */
-	@SuppressWarnings("unchecked")
-	protected List<MemberValuePair> values(NormalAnnotation na) {
-		return na.values();
-	}
-
-	/**
-	 * check for null member value pair
-	 */
-	protected Expression value_(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.value_(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(StringBuilder sb);
-		void appendExtendsImplementsTo(StringBuilder sb);
-		void appendIdFieldAnnotationTo(StringBuilder sb);
-		void appendNameFieldAnnotationTo(StringBuilder sb);
-		void appendGetIdMethodAnnotationTo(StringBuilder sb);
-		void appendSetIdMethodAnnotationTo(StringBuilder sb);
-		void appendGetNameMethodAnnotationTo(StringBuilder sb);
-		void appendSetNameMethodAnnotationTo(StringBuilder sb);
-		void appendMemberTypeTo(StringBuilder sb);
-		void appendTopLevelTypesTo(StringBuilder sb);
-	}
-
-	public static class DefaultAnnotationWriter implements AnnotationWriter {
-		public Iterator<String> imports() {return EmptyIterator.instance();}
-		public void appendTypeAnnotationTo(StringBuilder sb) {/* do nothing */}
-		public void appendExtendsImplementsTo(StringBuilder sb) {/* do nothing */}
-		public void appendIdFieldAnnotationTo(StringBuilder sb) {/* do nothing */}
-		public void appendNameFieldAnnotationTo(StringBuilder sb) {/* do nothing */}
-		public void appendGetIdMethodAnnotationTo(StringBuilder sb) {/* do nothing */}
-		public void appendSetIdMethodAnnotationTo(StringBuilder sb) {/* do nothing */}
-		public void appendGetNameMethodAnnotationTo(StringBuilder sb) {/* do nothing */}
-		public void appendSetNameMethodAnnotationTo(StringBuilder sb) {/* do nothing */}
-		public void appendMemberTypeTo(StringBuilder sb) {/* do nothing */}
-		public void appendTopLevelTypesTo(StringBuilder 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(StringBuilder sb) {aw.appendTypeAnnotationTo(sb);}
-		public void appendExtendsImplementsTo(StringBuilder sb) {aw.appendExtendsImplementsTo(sb);}
-		public void appendIdFieldAnnotationTo(StringBuilder sb) {aw.appendIdFieldAnnotationTo(sb);}
-		public void appendNameFieldAnnotationTo(StringBuilder sb) {aw.appendNameFieldAnnotationTo(sb);}
-		public void appendGetIdMethodAnnotationTo(StringBuilder sb) {aw.appendGetIdMethodAnnotationTo(sb);}
-		public void appendSetIdMethodAnnotationTo(StringBuilder sb) {aw.appendSetIdMethodAnnotationTo(sb);}
-		public void appendGetNameMethodAnnotationTo(StringBuilder sb) {aw.appendGetNameMethodAnnotationTo(sb);}
-		public void appendSetNameMethodAnnotationTo(StringBuilder sb) {aw.appendSetNameMethodAnnotationTo(sb);}
-		public void appendMemberTypeTo(StringBuilder sb) {aw.appendMemberTypeTo(sb);}
-		public void appendTopLevelTypesTo(StringBuilder sb) {aw.appendTopLevelTypesTo(sb);}
-	}
-
-	public class AnnotatedSourceWriter implements SourceWriter {
-		private AnnotationWriter annotationWriter;
-		private String typeName;
-		public AnnotatedSourceWriter(AnnotationWriter annotationWriter) {
-			this(annotationWriter, TYPE_NAME);
-		}
-		public AnnotatedSourceWriter(AnnotationWriter annotationWriter, String typeName) {
-			super();
-			this.annotationWriter = annotationWriter;
-			this.typeName = typeName;
-		}
-		public void appendSourceTo(StringBuilder sb) {
-			AnnotationTestCase.this.appendSourceTo(sb, this.annotationWriter, typeName);
-		}
-	}
-
-}
diff --git a/jpa/tests/org.eclipse.jpt.core.tests/src/org/eclipse/jpt/core/tests/internal/utility/jdt/CombinationIndexedDeclarationAnnotationAdapterTests.java b/jpa/tests/org.eclipse.jpt.core.tests/src/org/eclipse/jpt/core/tests/internal/utility/jdt/CombinationIndexedDeclarationAnnotationAdapterTests.java
deleted file mode 100644
index e5145d9..0000000
--- a/jpa/tests/org.eclipse.jpt.core.tests/src/org/eclipse/jpt/core/tests/internal/utility/jdt/CombinationIndexedDeclarationAnnotationAdapterTests.java
+++ /dev/null
@@ -1,733 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.core.tests.internal.utility.jdt;
-
-import org.eclipse.jdt.core.ICompilationUnit;
-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.utility.jdt.CombinationIndexedDeclarationAnnotationAdapter;
-import org.eclipse.jpt.core.internal.utility.jdt.MemberAnnotationAdapter;
-import org.eclipse.jpt.core.internal.utility.jdt.MemberIndexedAnnotationAdapter;
-import org.eclipse.jpt.core.utility.jdt.AnnotationAdapter;
-import org.eclipse.jpt.core.utility.jdt.DeclarationAnnotationAdapter;
-import org.eclipse.jpt.core.utility.jdt.IndexedAnnotationAdapter;
-import org.eclipse.jpt.core.utility.jdt.IndexedDeclarationAnnotationAdapter;
-
-@SuppressWarnings("nls")
-public class CombinationIndexedDeclarationAnnotationAdapterTests extends AnnotationTestCase {
-
-	public CombinationIndexedDeclarationAnnotationAdapterTests(String name) {
-		super(name);
-	}
-
-	private void createAnnotationAndMembers(String annotationName, String annotationBody) throws Exception {
-		this.javaProject.createCompilationUnit("annot", annotationName + ".java", "public @interface " + annotationName + " { " + annotationBody + " }");
-	}
-
-	public void testAnnotation1() throws Exception {
-		this.createAnnotationAndMembers("JoinColumn", "String name();");
-		this.createAnnotationAndMembers("JoinColumns", "JoinColumn[] value();");
-		ICompilationUnit cu = this.createTestType("@annot.JoinColumn(name=\"ADDRESS_ID\")");
-		DeclarationAnnotationAdapter daa = new CombinationIndexedDeclarationAnnotationAdapter(
-				"annot.JoinColumn", "annot.JoinColumns", 0);
-		AnnotationAdapter aa = new MemberAnnotationAdapter(this.idField(cu), daa);
-		Annotation annotation = aa.getAnnotation(this.buildASTRoot(cu));
-		assertNotNull(annotation);
-		assertEquals("annot.JoinColumn", annotation.getTypeName().getFullyQualifiedName());
-		assertTrue(annotation.isNormalAnnotation());
-	}
-
-	public void testAnnotation2() throws Exception {
-		this.createAnnotationAndMembers("JoinColumn", "String name();");
-		this.createAnnotationAndMembers("JoinColumns", "JoinColumn[] value();");
-		ICompilationUnit cu = this.createTestType("@annot.JoinColumn(name=\"ADDRESS_ID\")");
-		DeclarationAnnotationAdapter daa = new CombinationIndexedDeclarationAnnotationAdapter(
-				"annot.JoinColumn", "annot.JoinColumns", 1);
-		AnnotationAdapter aa = new MemberAnnotationAdapter(this.idField(cu), daa);
-		Annotation annotation = aa.getAnnotation(this.buildASTRoot(cu));
-		assertNull(annotation);
-	}
-
-	public void testAnnotation3() throws Exception {
-		this.createAnnotationAndMembers("JoinColumn", "String name();");
-		this.createAnnotationAndMembers("JoinColumns", "JoinColumn[] value();");
-		ICompilationUnit cu = this.createTestType("@annot.JoinColumns(@annot.JoinColumn(name=\"ADDRESS_ID\"))");
-		DeclarationAnnotationAdapter daa = new CombinationIndexedDeclarationAnnotationAdapter(
-				"annot.JoinColumn", "annot.JoinColumns", 0);
-		AnnotationAdapter aa = new MemberAnnotationAdapter(this.idField(cu), daa);
-		Annotation annotation = aa.getAnnotation(this.buildASTRoot(cu));
-		assertNotNull(annotation);
-		assertEquals("annot.JoinColumn", annotation.getTypeName().getFullyQualifiedName());
-		assertTrue(annotation.isNormalAnnotation());
-	}
-
-	public void testAnnotation4() throws Exception {
-		this.createAnnotationAndMembers("JoinColumn", "String name();");
-		this.createAnnotationAndMembers("JoinColumns", "JoinColumn[] value();");
-		ICompilationUnit cu = this.createTestType("@annot.JoinColumns(@annot.JoinColumn(name=\"ADDRESS_ID\"))");
-		DeclarationAnnotationAdapter daa = new CombinationIndexedDeclarationAnnotationAdapter(
-				"annot.JoinColumn", "annot.JoinColumns", 1);
-		AnnotationAdapter aa = new MemberAnnotationAdapter(this.idField(cu), daa);
-		Annotation annotation = aa.getAnnotation(this.buildASTRoot(cu));
-		assertNull(annotation);
-	}
-
-	public void testAnnotation5() throws Exception {
-		this.createAnnotationAndMembers("JoinColumn", "String name();");
-		this.createAnnotationAndMembers("JoinColumns", "JoinColumn[] value();");
-		ICompilationUnit cu = 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(cu), daa);
-		Annotation annotation = aa.getAnnotation(this.buildASTRoot(cu));
-		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 testAnnotation6() throws Exception {
-		this.createAnnotationAndMembers("JoinColumn", "String name();");
-		this.createAnnotationAndMembers("JoinColumns", "JoinColumn[] value();");
-		ICompilationUnit cu = 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(cu), daa);
-		Annotation annotation = aa.getAnnotation(this.buildASTRoot(cu));
-		assertNull(annotation);
-	}
-
-	public void testAnnotation7() throws Exception {
-		this.createAnnotationAndMembers("JoinColumn", "String name();");
-		this.createAnnotationAndMembers("JoinColumns", "JoinColumn[] columns();");
-		ICompilationUnit cu = 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(cu), daa);
-		Annotation annotation = aa.getAnnotation(this.buildASTRoot(cu));
-		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 testAnnotation8() throws Exception {
-		this.createAnnotationAndMembers("JoinColumn", "String name();");
-		this.createAnnotationAndMembers("JoinColumns", "JoinColumn[] columns();");
-		ICompilationUnit cu = 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(cu), daa);
-		Annotation annotation = aa.getAnnotation(this.buildASTRoot(cu));
-		assertNull(annotation);
-	}
-
-	public void testRemoveAnnotation1() throws Exception {
-		this.createAnnotationAndMembers("JoinColumn", "String name();");
-		this.createAnnotationAndMembers("JoinColumns", "JoinColumn[] value();");
-		ICompilationUnit cu = this.createTestType("@annot.JoinColumn(name=\"ADDRESS_ID\")");
-		DeclarationAnnotationAdapter daa = new CombinationIndexedDeclarationAnnotationAdapter(
-				"annot.JoinColumn", "annot.JoinColumns", 0);
-		AnnotationAdapter aa = new MemberAnnotationAdapter(this.idField(cu), daa);
-		aa.removeAnnotation();
-		this.assertSourceDoesNotContain("JoinColumn", cu);
-	}
-
-	public void testRemoveAnnotation2() throws Exception {
-		this.createAnnotationAndMembers("JoinColumn", "String name();");
-		this.createAnnotationAndMembers("JoinColumns", "JoinColumn[] value();");
-		ICompilationUnit cu = this.createTestType("@annot.JoinColumns(@annot.JoinColumn(name=\"ADDRESS_ID\"))");
-		DeclarationAnnotationAdapter daa = new CombinationIndexedDeclarationAnnotationAdapter(
-				"annot.JoinColumn", "annot.JoinColumns", 0);
-		AnnotationAdapter aa = new MemberAnnotationAdapter(this.idField(cu), daa);
-		aa.removeAnnotation();
-		this.assertSourceDoesNotContain("JoinColumns", cu);
-		this.assertSourceDoesNotContain("JoinColumn", cu);
-	}
-
-	public void testRemoveAnnotation3() throws Exception {
-		this.createAnnotationAndMembers("JoinColumn", "String name();");
-		this.createAnnotationAndMembers("JoinColumns", "JoinColumn[] value();");
-		ICompilationUnit cu = 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(cu), daa);
-		aa.removeAnnotation();
-		this.assertSourceDoesNotContain("JoinColumns", cu);
-		this.assertSourceDoesNotContain("ADDRESS_ID2", cu);
-		this.assertSourceContains("@JoinColumn(name=\"ADDRESS_ID1\")", cu);
-	}
-
-	public void testRemoveAnnotation4() throws Exception {
-		this.createAnnotationAndMembers("JoinColumn", "String name();");
-		this.createAnnotationAndMembers("JoinColumns", "JoinColumn[] columns();");
-		ICompilationUnit cu = 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(cu), daa);
-		aa.removeAnnotation();
-		this.assertSourceDoesNotContain("JoinColumns", cu);
-		this.assertSourceDoesNotContain("ADDRESS_ID2", cu);
-		this.assertSourceContains("@JoinColumn(name=\"ADDRESS_ID1\")", cu);
-	}
-
-	public void testRemoveAnnotation5() throws Exception {
-		this.createAnnotationAndMembers("JoinColumn", "String name();");
-		this.createAnnotationAndMembers("JoinColumns", "String comment(); JoinColumn[] columns();");
-		ICompilationUnit cu = 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(cu), daa);
-		aa.removeAnnotation();
-		this.assertSourceContains("@annot.JoinColumns(comment=\"test\",columns=@annot.JoinColumn(name=\"ADDRESS_ID1\"))", cu);
-	}
-
-	public void testRemoveAnnotation6() throws Exception {
-		this.createAnnotationAndMembers("JoinColumn", "String name();");
-		this.createAnnotationAndMembers("JoinColumns", "JoinColumn[] value();");
-		ICompilationUnit cu = this.createTestType("@annot.JoinColumns(null)");
-		DeclarationAnnotationAdapter daa = new CombinationIndexedDeclarationAnnotationAdapter(
-				"annot.JoinColumn", "annot.JoinColumns", 0);
-		AnnotationAdapter aa = new MemberAnnotationAdapter(this.idField(cu), daa);
-		aa.removeAnnotation();
-		this.assertSourceContains("@annot.JoinColumns(null)", cu);
-	}
-
-	public void testRemoveAnnotation12() throws Exception {
-		this.createAnnotationAndMembers("JoinColumn", "String name();");
-		this.createAnnotationAndMembers("JoinColumns", "JoinColumn[] value();");
-		ICompilationUnit cu = 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(cu), daa);
-		Annotation annotation = aa.getAnnotation(this.buildASTRoot(cu));
-		assertNotNull(annotation);
-
-		aa.removeAnnotation();
-		this.assertSourceContains(expected, cu);
-		this.assertSourceDoesNotContain("JoinColumns", cu);
-	}
-
-	public void testRemoveAnnotation13() throws Exception {
-		this.createAnnotationAndMembers("JoinColumn", "String name();");
-		this.createAnnotationAndMembers("JoinColumns", "JoinColumn[] value();");
-		ICompilationUnit cu = this.createTestType("@annot.JoinColumns({null, @annot.JoinColumn(name=\"ADDRESS_ID1\")})");
-		this.assertSourceContains("@annot.JoinColumn", cu);
-		DeclarationAnnotationAdapter daa = new CombinationIndexedDeclarationAnnotationAdapter(
-				"annot.JoinColumn", "annot.JoinColumns", "value", 1);
-		AnnotationAdapter aa = new MemberAnnotationAdapter(this.idField(cu), daa);
-		Annotation annotation = aa.getAnnotation(this.buildASTRoot(cu));
-		assertNotNull(annotation);
-
-		aa.removeAnnotation();
-		this.assertSourceDoesNotContain("JoinColumn", cu);
-	}
-
-	public void testRemoveAnnotation14() throws Exception {
-		this.createAnnotationAndMembers("JoinColumn", "String name();");
-		this.createAnnotationAndMembers("JoinColumns", "JoinColumn[] value();");
-		ICompilationUnit cu = 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(cu), daa);
-		Annotation annotation = aa.getAnnotation(this.buildASTRoot(cu));
-		assertNotNull(annotation);
-
-		aa.removeAnnotation();
-		this.assertSourceContains(expected, cu);
-	}
-
-	public void testRemoveAnnotation15() throws Exception {
-		this.createAnnotationAndMembers("JoinColumn", "String name();");
-		this.createAnnotationAndMembers("JoinColumns", "JoinColumn[] value();");
-		ICompilationUnit cu = 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(cu), daa);
-		Annotation annotation = aa.getAnnotation(this.buildASTRoot(cu));
-		assertNotNull(annotation);
-
-		aa.removeAnnotation();
-		this.assertSourceContains(expected, cu);
-	}
-
-	public void testRemoveAnnotation16() throws Exception {
-		this.createAnnotationAndMembers("JoinColumn", "String name();");
-		this.createAnnotationAndMembers("JoinColumns", "JoinColumn[] value();");
-		ICompilationUnit cu = 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(cu), daa);
-		Annotation annotation = aa.getAnnotation(this.buildASTRoot(cu));
-		assertNotNull(annotation);
-
-		aa.removeAnnotation();
-		this.assertSourceContains(expected, cu);
-	}
-
-	public void testRemoveAnnotation17() throws Exception {
-		this.createAnnotationAndMembers("JoinColumn", "String name();");
-		this.createAnnotationAndMembers("JoinColumns", "JoinColumn[] value();");
-		ICompilationUnit cu = this.createTestType("@annot.JoinColumns({null, null, @annot.JoinColumn(name=\"ADDRESS_ID2\")})");
-		this.assertSourceContains("@annot.JoinColumn", cu);
-		DeclarationAnnotationAdapter daa = new CombinationIndexedDeclarationAnnotationAdapter(
-				"annot.JoinColumn", "annot.JoinColumns", "value", 2);
-		AnnotationAdapter aa = new MemberAnnotationAdapter(this.idField(cu), daa);
-		Annotation annotation = aa.getAnnotation(this.buildASTRoot(cu));
-		assertNotNull(annotation);
-
-		aa.removeAnnotation();
-		this.assertSourceDoesNotContain("JoinColumn", cu);
-	}
-
-	public void testNewMarkerAnnotation1() throws Exception {
-		this.createAnnotationAndMembers("JoinColumn", "String name();");
-		this.createAnnotationAndMembers("JoinColumns", "JoinColumn[] columns();");
-		ICompilationUnit cu = this.createTestType();
-		this.assertSourceDoesNotContain("JoinColumn", cu);
-		DeclarationAnnotationAdapter daa = new CombinationIndexedDeclarationAnnotationAdapter(
-				"annot.JoinColumn", "annot.JoinColumns", "columns", 0);
-		AnnotationAdapter aa = new MemberAnnotationAdapter(this.idField(cu), daa);
-		Annotation annotation = aa.getAnnotation(this.buildASTRoot(cu));
-		assertNull(annotation);
-
-		aa.newMarkerAnnotation();
-		this.assertSourceContains("JoinColumn", cu);
-		this.assertSourceDoesNotContain("JoinColumns", cu);
-	}
-
-	public void testNewMarkerAnnotation2() throws Exception {
-		this.createAnnotationAndMembers("JoinColumn", "String name();");
-		this.createAnnotationAndMembers("JoinColumns", "JoinColumn[] columns();");
-		ICompilationUnit cu = this.createTestType("@annot.JoinColumn");
-		this.assertSourceDoesNotContain("JoinColumns", cu);
-		DeclarationAnnotationAdapter daa = new CombinationIndexedDeclarationAnnotationAdapter(
-				"annot.JoinColumn", "annot.JoinColumns", "columns", 1);
-		AnnotationAdapter aa = new MemberAnnotationAdapter(this.idField(cu), daa);
-		Annotation annotation = aa.getAnnotation(this.buildASTRoot(cu));
-		assertNull(annotation);
-
-		aa.newMarkerAnnotation();
-		this.assertSourceContains("@JoinColumns(columns = { @JoinColumn, @JoinColumn })", cu);
-	}
-
-	public void testNewMarkerAnnotation3() throws Exception {
-		this.createAnnotationAndMembers("JoinColumn", "String name();");
-		this.createAnnotationAndMembers("JoinColumns", "JoinColumn[] columns();");
-		ICompilationUnit cu = 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(cu), daa);
-		Annotation annotation = aa.getAnnotation(this.buildASTRoot(cu));
-		assertNull(annotation);
-
-		aa.newMarkerAnnotation();
-		this.assertSourceContains("@annot.JoinColumns(columns={@annot.JoinColumn, @annot.JoinColumn," + CR + "    @JoinColumn})", cu);
-	}
-
-	public void testNewMarkerAnnotation4() throws Exception {
-		this.createAnnotationAndMembers("JoinColumn", "String name();");
-		this.createAnnotationAndMembers("JoinColumns", "JoinColumn[] columns();");
-		ICompilationUnit cu = this.createTestType("@annot.JoinColumn(77)");
-		DeclarationAnnotationAdapter daa = new CombinationIndexedDeclarationAnnotationAdapter(
-				"annot.JoinColumn", "annot.JoinColumns", "columns", 0);
-		AnnotationAdapter aa = new MemberAnnotationAdapter(this.idField(cu), daa);
-		Annotation annotation = aa.getAnnotation(this.buildASTRoot(cu));
-		assertNotNull(annotation);
-
-		aa.newMarkerAnnotation();
-		this.assertSourceContains("JoinColumn", cu);
-		this.assertSourceDoesNotContain("JoinColumns", cu);
-		this.assertSourceDoesNotContain("77", cu);
-	}
-
-	public void testNewMarkerAnnotation5() throws Exception {
-		this.createAnnotationAndMembers("JoinColumn", "String name();");
-		this.createAnnotationAndMembers("JoinColumns", "JoinColumn[] columns();");
-		ICompilationUnit cu = this.createTestType("@annot.JoinColumns(columns=@annot.JoinColumn(77))");
-		DeclarationAnnotationAdapter daa = new CombinationIndexedDeclarationAnnotationAdapter(
-				"annot.JoinColumn", "annot.JoinColumns", "columns", 0);
-		AnnotationAdapter aa = new MemberAnnotationAdapter(this.idField(cu), daa);
-		Annotation annotation = aa.getAnnotation(this.buildASTRoot(cu));
-		assertNotNull(annotation);
-
-		aa.newMarkerAnnotation();
-		this.assertSourceContains("@annot.JoinColumns(columns=@JoinColumn)", cu);
-		this.assertSourceDoesNotContain("77", cu);
-	}
-
-	public void testNewMarkerAnnotation6() throws Exception {
-		this.createAnnotationAndMembers("JoinColumn", "String name();");
-		this.createAnnotationAndMembers("JoinColumns", "JoinColumn[] columns();");
-		ICompilationUnit cu = this.createTestType("@annot.JoinColumns(columns=@annot.JoinColumn(77))");
-		DeclarationAnnotationAdapter daa = new CombinationIndexedDeclarationAnnotationAdapter(
-				"annot.JoinColumn", "annot.JoinColumns", "columns", 1);
-		AnnotationAdapter aa = new MemberAnnotationAdapter(this.idField(cu), daa);
-		Annotation annotation = aa.getAnnotation(this.buildASTRoot(cu));
-		assertNull(annotation);
-
-		aa.newMarkerAnnotation();
-		this.assertSourceContains("@annot.JoinColumns(columns={@annot.JoinColumn(77),@JoinColumn})", cu);
-	}
-
-	public void testNewMarkerAnnotation7() throws Exception {
-		this.createAnnotationAndMembers("JoinColumn", "String name();");
-		this.createAnnotationAndMembers("JoinColumns", "JoinColumn[] columns();");
-		ICompilationUnit cu = this.createTestType("@annot.JoinColumn(77)");
-		DeclarationAnnotationAdapter daa = new CombinationIndexedDeclarationAnnotationAdapter(
-				"annot.JoinColumn", "annot.JoinColumns", "columns", 1);
-		AnnotationAdapter aa = new MemberAnnotationAdapter(this.idField(cu), daa);
-		Annotation annotation = aa.getAnnotation(this.buildASTRoot(cu));
-		assertNull(annotation);
-
-		aa.newMarkerAnnotation();
-		this.assertSourceContains("@JoinColumns(columns = { @JoinColumn(77), @JoinColumn })", cu);
-	}
-
-	public void testNewMarkerAnnotation8() throws Exception {
-		this.createAnnotationAndMembers("JoinColumn", "String name();");
-		this.createAnnotationAndMembers("JoinColumns", "JoinColumn[] columns();");
-		ICompilationUnit cu = 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(cu), daa);
-		Annotation annotation = aa.getAnnotation(this.buildASTRoot(cu));
-		assertNotNull(annotation);
-
-		aa.newMarkerAnnotation();
-		this.assertSourceContains("@annot.JoinColumns(columns={@annot.JoinColumn(77),@JoinColumn})", cu);
-	}
-
-	public void testNewMarkerAnnotation9() throws Exception {
-		this.createAnnotationAndMembers("JoinColumn", "String name(); String text(); int num();");
-		this.createAnnotationAndMembers("JoinColumns", "JoinColumn[] columns();");
-		ICompilationUnit cu = this.createTestType("@annot.JoinColumn(text=\"blah\",num=42)");
-		DeclarationAnnotationAdapter daa = new CombinationIndexedDeclarationAnnotationAdapter(
-				"annot.JoinColumn", "annot.JoinColumns", "columns", 1);
-		AnnotationAdapter aa = new MemberAnnotationAdapter(this.idField(cu), daa);
-		Annotation annotation = aa.getAnnotation(this.buildASTRoot(cu));
-		assertNull(annotation);
-
-		aa.newMarkerAnnotation();
-		this.assertSourceContains("@JoinColumns(columns = { @JoinColumn(text = \"blah\", num = 42), @JoinColumn })", cu);
-	}
-
-	public void testNewMarkerAnnotation23() throws Exception {
-		this.createAnnotationAndMembers("JoinColumn", "String name(); String text(); int num();");
-		this.createAnnotationAndMembers("JoinColumns", "JoinColumn[] columns();");
-		ICompilationUnit cu = this.createTestType("@annot.JoinColumn(text=\"b\",num=4)");
-		String expected1 = "@JoinColumns(columns = { @JoinColumn(text = \"b\", num = 4), null,";
-		String expected2 = "@JoinColumn })";
-		this.assertSourceDoesNotContain(expected1, cu);
-		this.assertSourceDoesNotContain(expected2, cu);
-		DeclarationAnnotationAdapter daa = new CombinationIndexedDeclarationAnnotationAdapter(
-				"annot.JoinColumn", "annot.JoinColumns", "columns", 2);
-		AnnotationAdapter aa = new MemberAnnotationAdapter(this.idField(cu), daa);
-		aa.newMarkerAnnotation();
-		this.assertSourceContains(expected1, cu);
-		this.assertSourceContains(expected2, cu);
-	}
-
-	public void testNewMarkerAnnotation24() throws Exception {
-		this.createAnnotationAndMembers("JoinColumn", "String name(); String text(); int num();");
-		this.createAnnotationAndMembers("JoinColumns", "JoinColumn[] value();");
-		ICompilationUnit cu = this.createTestType("@annot.JoinColumn(text=\"blah\",num=42)");
-		String expected1 = "@JoinColumns( {";
-		String expected2 = "@JoinColumn(text = \"blah\", num = 42), null,";
-		String expected3 = "@JoinColumn " + CR + "    })";
-		this.assertSourceDoesNotContain(expected1, cu);
-		this.assertSourceDoesNotContain(expected2, cu);
-		this.assertSourceDoesNotContain(expected3, cu);
-		DeclarationAnnotationAdapter daa = new CombinationIndexedDeclarationAnnotationAdapter(
-				"annot.JoinColumn", "annot.JoinColumns", "value", 2);
-		AnnotationAdapter aa = new MemberAnnotationAdapter(this.idField(cu), daa);
-		aa.newMarkerAnnotation();
-		this.assertSourceContains(expected1, cu);
-		this.assertSourceContains(expected2, cu);
-		this.assertSourceContains(expected3, cu);
-	}
-
-	public void testNewMarkerAnnotation25() throws Exception {
-		this.createAnnotationAndMembers("JoinColumn", "String name();");
-		this.createAnnotationAndMembers("JoinColumns", "JoinColumn[] columns();");
-		ICompilationUnit cu = 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, cu);
-		this.assertSourceDoesNotContain(expected2, cu);
-		DeclarationAnnotationAdapter daa = new CombinationIndexedDeclarationAnnotationAdapter(
-				"annot.JoinColumn", "annot.JoinColumns", "columns", 4);
-		AnnotationAdapter aa = new MemberAnnotationAdapter(this.idField(cu), daa);
-		aa.newMarkerAnnotation();
-		this.assertSourceContains(expected1, cu);
-		this.assertSourceContains(expected2, cu);
-	}
-
-	public void testNewMarkerAnnotation26() throws Exception {
-		this.createAnnotationAndMembers("JoinColumn", "String name();");
-		this.createAnnotationAndMembers("JoinColumns", "JoinColumn[] value();");
-		ICompilationUnit cu = 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, cu);
-		this.assertSourceDoesNotContain(expected2, cu);
-		DeclarationAnnotationAdapter daa = new CombinationIndexedDeclarationAnnotationAdapter(
-				"annot.JoinColumn", "annot.JoinColumns", "value", 4);
-		AnnotationAdapter aa = new MemberAnnotationAdapter(this.idField(cu), daa);
-		aa.newMarkerAnnotation();
-		this.assertSourceContains(expected1, cu);
-		this.assertSourceContains(expected2, cu);
-	}
-
-	public void testMoveAnnotation1() throws Exception {
-		this.createAnnotationAndMembers("JoinColumn", "String name();");
-		this.createAnnotationAndMembers("JoinColumns", "JoinColumn[] columns();");
-		ICompilationUnit cu = this.createTestType("@annot.JoinColumn(name=\"ADDRESS_ID0\")");
-		String expected = "@JoinColumns(columns = { null, @JoinColumn(name = \"ADDRESS_ID0\") })";
-		this.assertSourceDoesNotContain(expected, cu);
-		IndexedDeclarationAnnotationAdapter cidaa = new CombinationIndexedDeclarationAnnotationAdapter(
-				"annot.JoinColumn", "annot.JoinColumns", "columns", 0);
-		IndexedAnnotationAdapter iaa  = new MemberIndexedAnnotationAdapter(this.idField(cu), cidaa);
-		Annotation annotation = iaa.getAnnotation(this.buildASTRoot(cu));
-		assertNotNull(annotation);
-
-		iaa.moveAnnotation(1);
-		this.assertSourceContains(expected, cu);
-	}
-
-	public void testMoveAnnotation2() throws Exception {
-		this.createAnnotationAndMembers("JoinColumn", "String name();");
-		this.createAnnotationAndMembers("JoinColumns", "JoinColumn[] columns();");
-		ICompilationUnit cu = 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(cu), cidaa);
-		Annotation annotation = iaa.getAnnotation(this.buildASTRoot(cu));
-		assertNotNull(annotation);
-
-		iaa.moveAnnotation(0);
-		this.assertSourceContains(expected, cu);
-		this.assertSourceDoesNotContain("JoinColumns", cu);
-	}
-
-	public void testMoveAnnotation2a() throws Exception {
-		this.createAnnotationAndMembers("JoinColumn", "String name();");
-		this.createAnnotationAndMembers("JoinColumns", "JoinColumn[] value();");
-		ICompilationUnit cu = 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(cu), cidaa);
-		Annotation annotation = iaa.getAnnotation(this.buildASTRoot(cu));
-		assertNotNull(annotation);
-
-		iaa.moveAnnotation(0);
-		this.assertSourceContains(expected, cu);
-		this.assertSourceDoesNotContain("JoinColumns", cu);
-	}
-
-	public void testMoveAnnotation3() throws Exception {
-		this.createAnnotationAndMembers("JoinColumn", "String name();");
-		this.createAnnotationAndMembers("JoinColumns", "JoinColumn[] columns();");
-		ICompilationUnit cu = 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, cu);
-		IndexedDeclarationAnnotationAdapter cidaa = new CombinationIndexedDeclarationAnnotationAdapter(
-				"annot.JoinColumn", "annot.JoinColumns", "columns", 3);
-		IndexedAnnotationAdapter iaa  = new MemberIndexedAnnotationAdapter(this.idField(cu), cidaa);
-		Annotation annotation = iaa.getAnnotation(this.buildASTRoot(cu));
-		assertNotNull(annotation);
-
-		iaa.moveAnnotation(0);
-		this.assertSourceContains(expected, cu);
-	}
-
-	public void testMoveAnnotation4() throws Exception {
-		this.createAnnotationAndMembers("JoinColumn", "String name();");
-		this.createAnnotationAndMembers("JoinColumns", "JoinColumn[] columns();");
-		ICompilationUnit cu = 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, cu);
-		IndexedDeclarationAnnotationAdapter cidaa = new CombinationIndexedDeclarationAnnotationAdapter(
-				"annot.JoinColumn", "annot.JoinColumns", "columns", 3);
-		IndexedAnnotationAdapter iaa  = new MemberIndexedAnnotationAdapter(this.idField(cu), cidaa);
-		Annotation annotation = iaa.getAnnotation(this.buildASTRoot(cu));
-		assertNotNull(annotation);
-
-		iaa.moveAnnotation(0);
-		this.assertSourceContains(expected, cu);
-	}
-
-	public void testMoveAnnotation5() throws Exception {
-		this.createAnnotationAndMembers("JoinColumn", "String name();");
-		this.createAnnotationAndMembers("JoinColumns", "JoinColumn[] columns();");
-		ICompilationUnit cu = 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, cu);
-		IndexedDeclarationAnnotationAdapter cidaa = new CombinationIndexedDeclarationAnnotationAdapter(
-				"annot.JoinColumn", "annot.JoinColumns", "columns", 2);
-		IndexedAnnotationAdapter iaa  = new MemberIndexedAnnotationAdapter(this.idField(cu), cidaa);
-		Annotation annotation = iaa.getAnnotation(this.buildASTRoot(cu));
-		assertNotNull(annotation);
-
-		iaa.moveAnnotation(3);
-		this.assertSourceContains(expected, cu);
-	}
-
-	public void testMoveAnnotation6() throws Exception {
-		this.createAnnotationAndMembers("JoinColumn", "String name();");
-		this.createAnnotationAndMembers("JoinColumns", "JoinColumn[] columns();");
-		ICompilationUnit cu = 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, cu);
-		IndexedDeclarationAnnotationAdapter cidaa = new CombinationIndexedDeclarationAnnotationAdapter(
-				"annot.JoinColumn", "annot.JoinColumns", "columns", 0);
-		IndexedAnnotationAdapter iaa  = new MemberIndexedAnnotationAdapter(this.idField(cu), cidaa);
-		Annotation annotation = iaa.getAnnotation(this.buildASTRoot(cu));
-		assertNotNull(annotation);
-
-		iaa.moveAnnotation(3);
-		this.assertSourceContains(expected, cu);
-	}
-
-	public void testMoveAnnotation7() throws Exception {
-		this.createAnnotationAndMembers("JoinColumn", "String name();");
-		this.createAnnotationAndMembers("JoinColumns", "JoinColumn[] columns();");
-		ICompilationUnit cu = 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, cu);
-		IndexedDeclarationAnnotationAdapter cidaa = new CombinationIndexedDeclarationAnnotationAdapter(
-				"annot.JoinColumn", "annot.JoinColumns", "columns", 3);
-		IndexedAnnotationAdapter iaa  = new MemberIndexedAnnotationAdapter(this.idField(cu), cidaa);
-		Annotation annotation = iaa.getAnnotation(this.buildASTRoot(cu));
-		assertNull(annotation);
-
-		iaa.moveAnnotation(0);
-		this.assertSourceContains(expected, cu);
-	}
-
-	public void testMoveAnnotation8() throws Exception {
-		this.createAnnotationAndMembers("JoinColumn", "String name();");
-		this.createAnnotationAndMembers("JoinColumns", "JoinColumn[] columns();");
-		ICompilationUnit cu = 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, cu);
-		IndexedDeclarationAnnotationAdapter cidaa = new CombinationIndexedDeclarationAnnotationAdapter(
-				"annot.JoinColumn", "annot.JoinColumns", "columns", 3);
-		IndexedAnnotationAdapter iaa  = new MemberIndexedAnnotationAdapter(this.idField(cu), cidaa);
-		Annotation annotation = iaa.getAnnotation(this.buildASTRoot(cu));
-		assertNull(annotation);
-
-		iaa.moveAnnotation(0);
-		this.assertSourceContains(expected, cu);
-	}
-
-	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\")})";
-		ICompilationUnit cu = this.createTestType(expected);  // the source should be unchanged
-		IndexedDeclarationAnnotationAdapter cidaa = new CombinationIndexedDeclarationAnnotationAdapter(
-				"annot.JoinColumn", "annot.JoinColumns", "columns", 0);
-		IndexedAnnotationAdapter iaa  = new MemberIndexedAnnotationAdapter(this.idField(cu), cidaa);
-		Annotation annotation = iaa.getAnnotation(this.buildASTRoot(cu));
-		assertNull(annotation);
-
-		iaa.moveAnnotation(3);
-		this.assertSourceContains(expected, cu);
-	}
-
-	public void testMoveAnnotation10() throws Exception {
-		this.createAnnotationAndMembers("JoinColumn", "String name();");
-		this.createAnnotationAndMembers("JoinColumns", "JoinColumn[] columns();");
-		ICompilationUnit cu = 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(cu), cidaa);
-		Annotation annotation = iaa.getAnnotation(this.buildASTRoot(cu));
-		assertNull(annotation);
-
-		iaa.moveAnnotation(1);
-		this.assertSourceContains(expected, cu);
-		this.assertSourceDoesNotContain("@annot.JoinColumns", cu);
-	}
-
-	public void testMoveAnnotation10a() throws Exception {
-		this.createAnnotationAndMembers("JoinColumn", "String name();");
-		this.createAnnotationAndMembers("JoinColumns", "JoinColumn[] value();");
-		ICompilationUnit cu = 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(cu), cidaa);
-		Annotation annotation = iaa.getAnnotation(this.buildASTRoot(cu));
-		assertNull(annotation);
-
-		iaa.moveAnnotation(1);
-		this.assertSourceContains(expected, cu);
-		this.assertSourceDoesNotContain("@annot.JoinColumns", cu);
-	}
-
-	public void testMoveAnnotation11() throws Exception {
-		this.createAnnotationAndMembers("JoinColumn", "String name();");
-		this.createAnnotationAndMembers("JoinColumns", "JoinColumn[] columns();");
-		ICompilationUnit cu = this.createTestType("@annot.JoinColumn(name=\"ADDRESS_ID0\")");
-		IndexedDeclarationAnnotationAdapter cidaa = new CombinationIndexedDeclarationAnnotationAdapter(
-				"annot.JoinColumn", "annot.JoinColumns", "columns", 1);
-		IndexedAnnotationAdapter iaa  = new MemberIndexedAnnotationAdapter(this.idField(cu), cidaa);
-		Annotation annotation = iaa.getAnnotation(this.buildASTRoot(cu));
-		assertNull(annotation);
-
-		iaa.moveAnnotation(0);
-		this.assertSourceDoesNotContain("JoinColumn", cu);
-	}
-
-	public void testMoveAnnotation12() throws Exception {
-		this.createAnnotationAndMembers("JoinColumn", "String name();");
-		this.createAnnotationAndMembers("JoinColumns", "JoinColumn[] columns();");
-		ICompilationUnit cu = 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(cu), cidaa);
-		Annotation annotation = iaa.getAnnotation(this.buildASTRoot(cu));
-		assertNotNull(annotation);
-
-		iaa.moveAnnotation(0);
-		this.assertSourceContains(expected, cu);
-		this.assertSourceDoesNotContain("@annot.JoinColumns", cu);
-	}
-
-	public void testMoveAnnotation13() throws Exception {
-		this.createAnnotationAndMembers("JoinColumn", "String name();");
-		this.createAnnotationAndMembers("JoinColumns", "JoinColumn[] columns();");
-		ICompilationUnit cu = 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(cu), cidaa);
-		Annotation annotation = iaa.getAnnotation(this.buildASTRoot(cu));
-		assertNotNull(annotation);
-
-		iaa.moveAnnotation(0);
-		this.assertSourceContains(expected, cu);
-	}
-
-}
diff --git a/jpa/tests/org.eclipse.jpt.core.tests/src/org/eclipse/jpt/core/tests/internal/utility/jdt/DefaultAnnotationEditFormatterTests.java b/jpa/tests/org.eclipse.jpt.core.tests/src/org/eclipse/jpt/core/tests/internal/utility/jdt/DefaultAnnotationEditFormatterTests.java
deleted file mode 100644
index e3e9097..0000000
--- a/jpa/tests/org.eclipse.jpt.core.tests/src/org/eclipse/jpt/core/tests/internal/utility/jdt/DefaultAnnotationEditFormatterTests.java
+++ /dev/null
@@ -1,74 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2008 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.core.tests.internal.utility.jdt;
-
-import org.eclipse.jpt.core.internal.utility.jdt.DefaultAnnotationEditFormatter;
-import org.eclipse.jpt.utility.internal.ClassTools;
-
-public class DefaultAnnotationEditFormatterTests extends AnnotationTestCase {
-
-
-	// ********** TestCase behavior **********
-
-	public DefaultAnnotationEditFormatterTests(String name) {
-		super(name);
-	}
-
-
-	// ********** tests **********
-
-	public void testCommaLength() throws Exception {
-		assertEquals(1, this.commaLength(","));
-		assertEquals(1, this.commaLength(", "));
-		assertEquals(1, this.commaLength(",   "));
-
-		assertEquals(2, this.commaLength(" ,"));
-		assertEquals(2, this.commaLength(" , "));
-		assertEquals(2, this.commaLength(" ,   "));
-
-		assertEquals(3, this.commaLength("  ,"));
-		assertEquals(3, this.commaLength("  , "));
-		assertEquals(3, this.commaLength("  ,   "));
-
-		assertEquals(0, this.commaLength("  ,,,"));
-		assertEquals(0, this.commaLength("  ,,, "));
-		assertEquals(0, this.commaLength("  ,   ,"));
-
-		assertEquals(0, this.commaLength("  ,x"));
-		assertEquals(0, this.commaLength("  ,x "));
-		assertEquals(0, this.commaLength("  ,   x"));
-
-		assertEquals(0, this.commaLength("x  ,"));
-		assertEquals(0, this.commaLength("x  , "));
-		assertEquals(0, this.commaLength("x  ,   "));
-	}
-
-	private int commaLength(String s) {
-		Integer len = (Integer) ClassTools.executeMethod(DefaultAnnotationEditFormatter.instance(), "commaLength", String.class, s);
-		return len.intValue();
-	}
-
-	public void testStringIsAnnotation() throws Exception {
-		assertTrue(this.stringIsAnnotation("@F"));
-		assertTrue(this.stringIsAnnotation("@Foo"));
-		assertTrue(this.stringIsAnnotation("@org.bar.Foo"));
-
-		assertFalse(this.stringIsAnnotation(""));
-		assertFalse(this.stringIsAnnotation("@"));
-		assertFalse(this.stringIsAnnotation("Foo"));
-		assertFalse(this.stringIsAnnotation("Foo@"));
-	}
-
-	private boolean stringIsAnnotation(String s) {
-		Boolean b = (Boolean) ClassTools.executeMethod(DefaultAnnotationEditFormatter.instance(), "stringIsAnnotation", String.class, s);
-		return b.booleanValue();
-	}
-
-}
diff --git a/jpa/tests/org.eclipse.jpt.core.tests/src/org/eclipse/jpt/core/tests/internal/utility/jdt/JDTToolsTests.java b/jpa/tests/org.eclipse.jpt.core.tests/src/org/eclipse/jpt/core/tests/internal/utility/jdt/JDTToolsTests.java
deleted file mode 100644
index f644cab..0000000
--- a/jpa/tests/org.eclipse.jpt.core.tests/src/org/eclipse/jpt/core/tests/internal/utility/jdt/JDTToolsTests.java
+++ /dev/null
@@ -1,87 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2008 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.core.tests.internal.utility.jdt;
-
-import org.eclipse.jdt.core.ICompilationUnit;
-import org.eclipse.jdt.core.dom.Name;
-import org.eclipse.jpt.core.internal.utility.jdt.ConversionDeclarationAnnotationElementAdapter;
-import org.eclipse.jpt.core.internal.utility.jdt.JDTFieldAttribute;
-import org.eclipse.jpt.core.internal.utility.jdt.JDTTools;
-import org.eclipse.jpt.core.internal.utility.jdt.SimpleDeclarationAnnotationAdapter;
-import org.eclipse.jpt.core.utility.jdt.DeclarationAnnotationAdapter;
-import org.eclipse.jpt.core.utility.jdt.DeclarationAnnotationElementAdapter;
-
-public class JDTToolsTests extends AnnotationTestCase {
-
-	public JDTToolsTests(String name) {
-		super(name);
-	}
-
-	private void createEnumAndMembers(String enumName, String enumBody) throws Exception {
-		this.javaProject.createCompilationUnit("enums", enumName + ".java", "public enum " + enumName + " { " + enumBody + " }");
-	}
-
-	private void createAnnotationAndMembers(String annotationName, String annotationBody) throws Exception {
-		this.javaProject.createCompilationUnit("annot", annotationName + ".java", "public @interface " + annotationName + " { " + annotationBody + " }");
-	}
-
-	public void testResolveEnum1() throws Exception {
-		this.createEnumAndMembers("TestEnum", "FOO, BAR, BAZ");
-		this.createAnnotationAndMembers("TestAnnotation", "TestEnum foo();");
-
-		ICompilationUnit cu = this.createTestType("@annot.TestAnnotation(foo=enums.TestEnum.BAZ)");
-		DeclarationAnnotationAdapter daa = new SimpleDeclarationAnnotationAdapter("annot.TestAnnotation");
-		DeclarationAnnotationElementAdapter<String> daea = ConversionDeclarationAnnotationElementAdapter.forStrings(daa, "foo");
-		JDTFieldAttribute field = this.idField(cu);
-
-		String actual = JDTTools.resolveEnum((Name) daea.getExpression(field.getModifiedDeclaration(this.buildASTRoot(cu))));
-		assertEquals("enums.TestEnum.BAZ", actual);
-	}
-
-	public void testResolveEnum2() throws Exception {
-		this.createEnumAndMembers("TestEnum", "FOO, BAR, BAZ");
-		this.createAnnotationAndMembers("TestAnnotation", "TestEnum foo();");
-
-		ICompilationUnit cu = this.createTestType("static enums.TestEnum.BAZ", "@annot.TestAnnotation(foo=BAZ)");
-		DeclarationAnnotationAdapter daa = new SimpleDeclarationAnnotationAdapter("annot.TestAnnotation");
-		DeclarationAnnotationElementAdapter<String> daea = ConversionDeclarationAnnotationElementAdapter.forStrings(daa, "foo");
-		JDTFieldAttribute field = this.idField(cu);
-
-		String actual = JDTTools.resolveEnum((Name) daea.getExpression(field.getModifiedDeclaration(this.buildASTRoot(cu))));
-		assertEquals("enums.TestEnum.BAZ", actual);
-	}
-
-	public void testResolveEnum3() throws Exception {
-		this.createEnumAndMembers("TestEnum", "FOO, BAR, BAZ");
-		this.createAnnotationAndMembers("TestAnnotation", "TestEnum foo();");
-
-		ICompilationUnit cu = this.createTestType("static enums.TestEnum.*", "@annot.TestAnnotation(foo=BAZ)");
-		DeclarationAnnotationAdapter daa = new SimpleDeclarationAnnotationAdapter("annot.TestAnnotation");
-		DeclarationAnnotationElementAdapter<String> daea = ConversionDeclarationAnnotationElementAdapter.forStrings(daa, "foo");
-		JDTFieldAttribute field = this.idField(cu);
-
-		String actual = JDTTools.resolveEnum((Name)daea.getExpression(field.getModifiedDeclaration(this.buildASTRoot(cu))));
-		assertEquals("enums.TestEnum.BAZ", actual);
-	}
-
-	public void testResolveEnum4() throws Exception {
-		this.createEnumAndMembers("TestEnum", "FOO, BAR, BAZ");
-		this.createAnnotationAndMembers("TestAnnotation", "TestEnum foo();");
-
-		ICompilationUnit cu = this.createTestType("enums.TestEnum", "@annot.TestAnnotation(foo=TestEnum.BAZ)");
-		DeclarationAnnotationAdapter daa = new SimpleDeclarationAnnotationAdapter("annot.TestAnnotation");
-		DeclarationAnnotationElementAdapter<String> daea = ConversionDeclarationAnnotationElementAdapter.forStrings(daa, "foo");
-		JDTFieldAttribute field = this.idField(cu);
-
-		String actual = JDTTools.resolveEnum((Name) daea.getExpression(field.getModifiedDeclaration(this.buildASTRoot(cu))));
-		assertEquals("enums.TestEnum.BAZ", actual);
-	}
-
-}
diff --git a/jpa/tests/org.eclipse.jpt.core.tests/src/org/eclipse/jpt/core/tests/internal/utility/jdt/JptCoreUtilityJdtTests.java b/jpa/tests/org.eclipse.jpt.core.tests/src/org/eclipse/jpt/core/tests/internal/utility/jdt/JptCoreUtilityJdtTests.java
deleted file mode 100644
index 5810dc1..0000000
--- a/jpa/tests/org.eclipse.jpt.core.tests/src/org/eclipse/jpt/core/tests/internal/utility/jdt/JptCoreUtilityJdtTests.java
+++ /dev/null
@@ -1,35 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2008 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.core.tests.internal.utility.jdt;
-
-import junit.framework.Test;
-import junit.framework.TestSuite;
-
-public class JptCoreUtilityJdtTests {
-
-	public static Test suite() {
-		TestSuite suite = new TestSuite(JptCoreUtilityJdtTests.class.getPackage().getName());
-		suite.addTestSuite(CombinationIndexedDeclarationAnnotationAdapterTests.class);
-		suite.addTestSuite(DefaultAnnotationEditFormatterTests.class);
-		suite.addTestSuite(JDTToolsTests.class);
-		suite.addTestSuite(MemberAnnotationElementAdapterTests.class);
-		suite.addTestSuite(NestedDeclarationAnnotationAdapterTests.class);
-		suite.addTestSuite(NestedIndexedDeclarationAnnotationAdapterTests.class);
-		suite.addTestSuite(SimpleDeclarationAnnotationAdapterTests.class);
-		suite.addTestSuite(TypeTests.class);
-		return suite;
-	}
-
-	private JptCoreUtilityJdtTests() {
-		super();
-		throw new UnsupportedOperationException();
-	}
-
-}
diff --git a/jpa/tests/org.eclipse.jpt.core.tests/src/org/eclipse/jpt/core/tests/internal/utility/jdt/MemberAnnotationElementAdapterTests.java b/jpa/tests/org.eclipse.jpt.core.tests/src/org/eclipse/jpt/core/tests/internal/utility/jdt/MemberAnnotationElementAdapterTests.java
deleted file mode 100644
index 0f0f35e..0000000
--- a/jpa/tests/org.eclipse.jpt.core.tests/src/org/eclipse/jpt/core/tests/internal/utility/jdt/MemberAnnotationElementAdapterTests.java
+++ /dev/null
@@ -1,1297 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.core.tests.internal.utility.jdt;
-
-import java.util.Arrays;
-import org.eclipse.jdt.core.ICompilationUnit;
-import org.eclipse.jpt.core.internal.utility.jdt.ASTNodeTextRange;
-import org.eclipse.jpt.core.internal.utility.jdt.AnnotationStringArrayExpressionConverter;
-import org.eclipse.jpt.core.internal.utility.jdt.BooleanExpressionConverter;
-import org.eclipse.jpt.core.internal.utility.jdt.CharacterStringExpressionConverter;
-import org.eclipse.jpt.core.internal.utility.jdt.ConversionDeclarationAnnotationElementAdapter;
-import org.eclipse.jpt.core.internal.utility.jdt.EnumArrayDeclarationAnnotationElementAdapter;
-import org.eclipse.jpt.core.internal.utility.jdt.EnumDeclarationAnnotationElementAdapter;
-import org.eclipse.jpt.core.internal.utility.jdt.MemberAnnotationElementAdapter;
-import org.eclipse.jpt.core.internal.utility.jdt.NestedDeclarationAnnotationAdapter;
-import org.eclipse.jpt.core.internal.utility.jdt.NestedIndexedDeclarationAnnotationAdapter;
-import org.eclipse.jpt.core.internal.utility.jdt.NumberIntegerExpressionConverter;
-import org.eclipse.jpt.core.internal.utility.jdt.PrimitiveTypeStringExpressionConverter;
-import org.eclipse.jpt.core.internal.utility.jdt.SimpleDeclarationAnnotationAdapter;
-import org.eclipse.jpt.core.internal.utility.jdt.SimpleTypeStringExpressionConverter;
-import org.eclipse.jpt.core.internal.utility.jdt.StringExpressionConverter;
-import org.eclipse.jpt.core.internal.utility.jdt.TypeStringExpressionConverter;
-import org.eclipse.jpt.core.utility.TextRange;
-import org.eclipse.jpt.core.utility.jdt.AnnotationElementAdapter;
-import org.eclipse.jpt.core.utility.jdt.DeclarationAnnotationAdapter;
-import org.eclipse.jpt.core.utility.jdt.DeclarationAnnotationElementAdapter;
-import org.eclipse.jpt.core.utility.jdt.ExpressionConverter;
-
-@SuppressWarnings("nls")
-public class MemberAnnotationElementAdapterTests extends AnnotationTestCase {
-
-	public MemberAnnotationElementAdapterTests(String name) {
-		super(name);
-	}
-
-	private void createAnnotationAndMembers(String annotationName, String annotationBody) throws Exception {
-		this.javaProject.createCompilationUnit("annot", annotationName + ".java", "public @interface " + annotationName + " { " + annotationBody + " }");
-	}
-
-	private void createEnum(String enumName, String enumBody) throws Exception {
-		this.createEnum("enums", enumName, enumBody);
-	}
-
-	private void createEnum(String packageName, String enumName, String enumBody) throws Exception {
-		this.javaProject.createCompilationUnit(packageName, enumName + ".java", "public enum " + enumName + " { " + enumBody + " }");
-	}
-
-	public void testValue1() throws Exception {
-		this.createAnnotationAndMembers("Foo", "String bar();");
-		ICompilationUnit cu = 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(cu), daea);
-		assertEquals("xxx", aea.getValue());
-	}
-
-	public void testValue2() throws Exception {
-		this.createAnnotationAndMembers("Foo", "int bar();");
-		ICompilationUnit cu = this.createTestType("@annot.Foo(bar=48)");
-		DeclarationAnnotationAdapter daa = new SimpleDeclarationAnnotationAdapter("annot.Foo");
-		DeclarationAnnotationElementAdapter<Integer> daea = new ConversionDeclarationAnnotationElementAdapter<Integer>(daa, "bar", NumberIntegerExpressionConverter.instance());
-		AnnotationElementAdapter<Integer> aea = new MemberAnnotationElementAdapter<Integer>(this.idField(cu), daea);
-		assertEquals(Integer.valueOf(48), aea.getValue());
-	}
-
-	public void testValue3() throws Exception {
-		this.createAnnotationAndMembers("Foo", "char bar();");
-		ICompilationUnit cu = 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(cu), daea);
-		assertEquals("c", aea.getValue());
-	}
-
-	public void testValue4() throws Exception {
-		this.createAnnotationAndMembers("Foo", "boolean bar();");
-		ICompilationUnit cu = this.createTestType("@annot.Foo(bar=false)");
-		DeclarationAnnotationAdapter daa = new SimpleDeclarationAnnotationAdapter("annot.Foo");
-		DeclarationAnnotationElementAdapter<Boolean> daea = new ConversionDeclarationAnnotationElementAdapter<Boolean>(daa, "bar", BooleanExpressionConverter.instance());
-		AnnotationElementAdapter<Boolean> aea = new MemberAnnotationElementAdapter<Boolean>(this.idField(cu), daea);
-		assertEquals(Boolean.FALSE, aea.getValue());
-	}
-
-	public void testValue5() throws Exception {
-		this.createAnnotationAndMembers("Baz", "boolean fred();");
-		this.createAnnotationAndMembers("Bar", "annot.Baz jimmy();");
-		this.createAnnotationAndMembers("Foo", "annot.Bar value();");
-		ICompilationUnit cu = 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<Boolean> daea = new ConversionDeclarationAnnotationElementAdapter<Boolean>(daa3, "fred", BooleanExpressionConverter.instance());
-		AnnotationElementAdapter<Boolean> aea = new MemberAnnotationElementAdapter<Boolean>(this.idField(cu), daea);
-		assertEquals(Boolean.FALSE, aea.getValue());
-	}
-
-	public void testValue6() throws Exception {
-		this.createAnnotationAndMembers("Foo", "boolean value();");
-		ICompilationUnit cu = this.createTestType("@annot.Foo(false)");
-		DeclarationAnnotationAdapter daa = new SimpleDeclarationAnnotationAdapter("annot.Foo");
-		DeclarationAnnotationElementAdapter<Boolean> daea = new ConversionDeclarationAnnotationElementAdapter<Boolean>(daa, BooleanExpressionConverter.instance());
-		AnnotationElementAdapter<Boolean> aea = new MemberAnnotationElementAdapter<Boolean>(this.idField(cu), daea);
-		assertEquals(Boolean.FALSE, aea.getValue());
-	}
-
-	public void testValueNull1() throws Exception {
-		this.createAnnotationAndMembers("Foo", "String bar();");
-		ICompilationUnit cu = 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(cu), daea);
-		assertNull(aea.getValue());
-	}
-
-	public void testValueNull2() throws Exception {
-		this.createAnnotationAndMembers("Foo", "String bar();");
-		ICompilationUnit cu = this.createTestType();
-		DeclarationAnnotationAdapter daa = new SimpleDeclarationAnnotationAdapter("Foo");
-		DeclarationAnnotationElementAdapter<String> daea = ConversionDeclarationAnnotationElementAdapter.forStrings(daa, "bar");
-		AnnotationElementAdapter<String> aea = new MemberAnnotationElementAdapter<String>(this.idField(cu), daea);
-		assertNull(aea.getValue());
-	}
-
-	public void testValueNull3() throws Exception {
-		this.createAnnotationAndMembers("Baz", "String fred();");
-		this.createAnnotationAndMembers("Bar", "annot.Baz jimmy();");
-		this.createAnnotationAndMembers("Foo", "annot.Bar value();");
-		ICompilationUnit cu = 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(cu), daea);
-		assertNull(aea.getValue());
-	}
-
-	public void testValueStringConcatenation() throws Exception {
-		this.createAnnotationAndMembers("Foo", "String bar();");
-		ICompilationUnit cu = 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(cu), daea);
-		assertEquals("xxxyyyzzz", aea.getValue());
-	}
-
-	public void testValueStringConstant() throws Exception {
-		this.createAnnotationAndMembers("Foo", "String bar();");
-		// just a bit hacky:
-		ICompilationUnit cu = 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(cu), daea);
-		assertEquals("xxxyyyzzz", aea.getValue());
-	}
-
-	public void testValueNumberArithmetic() throws Exception {
-		this.createAnnotationAndMembers("Foo", "int bar();");
-		ICompilationUnit cu = this.createTestType("@annot.Foo(bar=47 - 7 + 2 * 1 / 1)");
-		DeclarationAnnotationAdapter daa = new SimpleDeclarationAnnotationAdapter("annot.Foo");
-		DeclarationAnnotationElementAdapter<Integer> daea = ConversionDeclarationAnnotationElementAdapter.forNumbers(daa, "bar");
-		AnnotationElementAdapter<Integer> aea = new MemberAnnotationElementAdapter<Integer>(this.idField(cu), daea);
-		assertEquals(Integer.valueOf(42), aea.getValue());
-	}
-
-	public void testValueNumberShift() throws Exception {
-		this.createAnnotationAndMembers("Foo", "int bar();");
-		ICompilationUnit cu = this.createTestType("@annot.Foo(bar=2 << 2)");
-		DeclarationAnnotationAdapter daa = new SimpleDeclarationAnnotationAdapter("annot.Foo");
-		DeclarationAnnotationElementAdapter<Integer> daea = ConversionDeclarationAnnotationElementAdapter.forNumbers(daa, "bar");
-		AnnotationElementAdapter<Integer> aea = new MemberAnnotationElementAdapter<Integer>(this.idField(cu), daea);
-		assertEquals(Integer.valueOf(8), aea.getValue());
-	}
-
-	public void testValueNumberConstant() throws Exception {
-		this.createAnnotationAndMembers("Foo", "int bar();");
-		// just a bit hacky:
-		ICompilationUnit cu = this.createTestType("private static final int FOO_BAR = 77; @annot.Foo(bar=FOO_BAR)");
-		DeclarationAnnotationAdapter daa = new SimpleDeclarationAnnotationAdapter("annot.Foo");
-		DeclarationAnnotationElementAdapter<Integer> daea = ConversionDeclarationAnnotationElementAdapter.forNumbers(daa, "bar");
-		AnnotationElementAdapter<Integer> aea = new MemberAnnotationElementAdapter<Integer>(this.idField(cu), daea);
-		assertEquals(Integer.valueOf(77), aea.getValue());
-	}
-
-	public void testValueCharacterConstant() throws Exception {
-		this.createAnnotationAndMembers("Foo", "char bar();");
-		// just a bit hacky:
-		ICompilationUnit cu = 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(cu), daea);
-		assertEquals("Q", aea.getValue());
-	}
-
-	public void testValueCharacterCast() throws Exception {
-		this.createAnnotationAndMembers("Foo", "char bar();");
-		ICompilationUnit cu = 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(cu), daea);
-		assertEquals("A", aea.getValue());
-	}
-
-	public void testValueBooleanOperator1() throws Exception {
-		this.createAnnotationAndMembers("Foo", "boolean bar();");
-		ICompilationUnit cu = this.createTestType("@annot.Foo(bar=7 > 2)");
-		DeclarationAnnotationAdapter daa = new SimpleDeclarationAnnotationAdapter("annot.Foo");
-		DeclarationAnnotationElementAdapter<Boolean> daea = ConversionDeclarationAnnotationElementAdapter.forBooleans(daa, "bar");
-		AnnotationElementAdapter<Boolean> aea = new MemberAnnotationElementAdapter<Boolean>(this.idField(cu), daea);
-		assertEquals(Boolean.TRUE, aea.getValue());
-	}
-
-	public void testValueBooleanOperator2() throws Exception {
-		this.createAnnotationAndMembers("Foo", "boolean bar();");
-		ICompilationUnit cu = this.createTestType("@annot.Foo(bar=7 == 2)");
-		DeclarationAnnotationAdapter daa = new SimpleDeclarationAnnotationAdapter("annot.Foo");
-		DeclarationAnnotationElementAdapter<Boolean> daea = ConversionDeclarationAnnotationElementAdapter.forBooleans(daa, "bar");
-		AnnotationElementAdapter<Boolean> aea = new MemberAnnotationElementAdapter<Boolean>(this.idField(cu), daea);
-		assertEquals(Boolean.FALSE, aea.getValue());
-	}
-
-	public void testValueBooleanOperator3() throws Exception {
-		this.createAnnotationAndMembers("Foo", "boolean bar();");
-		ICompilationUnit cu = this.createTestType("@annot.Foo(bar=(7 != 2) && false)");
-		DeclarationAnnotationAdapter daa = new SimpleDeclarationAnnotationAdapter("annot.Foo");
-		DeclarationAnnotationElementAdapter<Boolean> daea = ConversionDeclarationAnnotationElementAdapter.forBooleans(daa, "bar");
-		AnnotationElementAdapter<Boolean> aea = new MemberAnnotationElementAdapter<Boolean>(this.idField(cu), daea);
-		assertEquals(Boolean.FALSE, aea.getValue());
-	}
-
-	public void testValueBooleanOperator4() throws Exception {
-		this.createAnnotationAndMembers("Foo", "boolean bar();");
-		ICompilationUnit cu = this.createTestType("@annot.Foo(bar=(7 != 2) ? false : true)");
-		DeclarationAnnotationAdapter daa = new SimpleDeclarationAnnotationAdapter("annot.Foo");
-		DeclarationAnnotationElementAdapter<Boolean> daea = ConversionDeclarationAnnotationElementAdapter.forBooleans(daa, "bar");
-		AnnotationElementAdapter<Boolean> aea = new MemberAnnotationElementAdapter<Boolean>(this.idField(cu), daea);
-		assertEquals(Boolean.FALSE, aea.getValue());
-	}
-
-	public void testValueInvalidValue1() throws Exception {
-		this.createAnnotationAndMembers("Foo", "String bar();");
-		ICompilationUnit cu = 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(cu), daea);
-		assertNull(aea.getValue());
-	}
-
-	public void testValueInvalidValue2() throws Exception {
-		this.createAnnotationAndMembers("Foo", "String bar();");
-		ICompilationUnit cu = 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(cu), daea);
-		assertNull(aea.getValue());
-	}
-
-	public void testValueInvalidValue3() throws Exception {
-		this.createAnnotationAndMembers("Foo", "boolean bar();");
-		ICompilationUnit cu = this.createTestType("@annot.Foo(bar=bazzzz)");
-		DeclarationAnnotationAdapter daa = new SimpleDeclarationAnnotationAdapter("annot.Foo");
-		DeclarationAnnotationElementAdapter<Boolean> daea = ConversionDeclarationAnnotationElementAdapter.forBooleans(daa, "bar");
-		AnnotationElementAdapter<Boolean> aea = new MemberAnnotationElementAdapter<Boolean>(this.idField(cu), daea);
-		assertNull(aea.getValue());
-	}
-
-	public void testValueInvalidValue4() throws Exception {
-		this.createAnnotationAndMembers("Foo", "char bar();");
-		ICompilationUnit cu = 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(cu), daea);
-		assertNull(aea.getValue());
-	}
-
-	public void testValueInvalidValue5() throws Exception {
-		this.createAnnotationAndMembers("Foo", "Class bar();");
-		ICompilationUnit cu = 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(cu), daea);
-		assertNull(aea.getValue());
-	}
-
-	public void testValueInvalidValue6() throws Exception {
-		this.createEnum("TestEnum", "XXX, YYY, ZZZ");
-		this.createAnnotationAndMembers("Foo", "enums.TestEnum bar();");
-		ICompilationUnit cu = 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(cu), daea);
-		assertNull(aea.getValue());
-	}
-
-	public void testValueInvalidValue7() 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 + ")))";
-		ICompilationUnit cu = 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<Boolean> daea = new ConversionDeclarationAnnotationElementAdapter<Boolean>(daa3, "fred", BooleanExpressionConverter.instance());
-		AnnotationElementAdapter<Boolean> aea = new MemberAnnotationElementAdapter<Boolean>(this.idField(cu), daea);
-		assertNull(aea.getValue());
-	}
-
-	public void testValueInvalidValue8() throws Exception {
-		this.createAnnotationAndMembers("Foo", "String[] bar();");
-		ICompilationUnit cu = 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(cu), daea);
-		assertTrue(Arrays.equals(new String[] {null, null}, aea.getValue()));
-	}
-
-	public void testValueInvalidValue9() throws Exception {
-		this.createAnnotationAndMembers("Foo", "String[] bar();");
-		ICompilationUnit cu = 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(cu), 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 + ")";
-		ICompilationUnit cu = this.createTestType(annotation);
-		DeclarationAnnotationAdapter daa = new SimpleDeclarationAnnotationAdapter("annot.Foo");
-		DeclarationAnnotationElementAdapter<String> daea = ConversionDeclarationAnnotationElementAdapter.forStrings(daa, "bar");
-		AnnotationElementAdapter<String> aea = new MemberAnnotationElementAdapter<String>(this.idField(cu), daea);
-
-		TextRange textRange = new ASTNodeTextRange(aea.getAstNode(this.buildASTRoot(cu)));
-		assertEquals(this.getSource(cu).indexOf(value), textRange.getOffset());
-		assertEquals(value.length(), textRange.getLength());
-		assertEquals(8, 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 + ")))";
-		ICompilationUnit cu = 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<Boolean> daea = new ConversionDeclarationAnnotationElementAdapter<Boolean>(daa3, "fred", BooleanExpressionConverter.instance());
-		AnnotationElementAdapter<Boolean> aea = new MemberAnnotationElementAdapter<Boolean>(this.idField(cu), daea);
-		assertEquals(Boolean.FALSE, aea.getValue());
-		TextRange textRange = new ASTNodeTextRange(aea.getAstNode(this.buildASTRoot(cu)));
-		assertEquals(value.length(), textRange.getLength());
-	}
-
-	public void testASTNode3() throws Exception {
-		this.createAnnotationAndMembers("Foo", "String value();");
-		String element = "\"xxx\"";
-		String annotation = "@annot.Foo(" + element + ")";
-		ICompilationUnit cu = this.createTestType(annotation);
-		DeclarationAnnotationAdapter daa = new SimpleDeclarationAnnotationAdapter("annot.Foo");
-		DeclarationAnnotationElementAdapter<String> daea = ConversionDeclarationAnnotationElementAdapter.forStrings(daa);
-		AnnotationElementAdapter<String> aea = new MemberAnnotationElementAdapter<String>(this.idField(cu), daea);
-
-		TextRange textRange = new ASTNodeTextRange(aea.getAstNode(this.buildASTRoot(cu)));
-		assertEquals(this.getSource(cu).indexOf(element), textRange.getOffset());
-		assertEquals(element.length(), textRange.getLength());
-	}
-
-	public void testASTNode4() throws Exception {
-		this.createAnnotationAndMembers("Foo", "String value();");
-		String annotation = "@annot.Foo";
-		ICompilationUnit cu = this.createTestType(annotation);
-		DeclarationAnnotationAdapter daa = new SimpleDeclarationAnnotationAdapter("annot.Foo");
-		DeclarationAnnotationElementAdapter<String> daea = ConversionDeclarationAnnotationElementAdapter.forStrings(daa);
-		AnnotationElementAdapter<String> aea = new MemberAnnotationElementAdapter<String>(this.idField(cu), daea);
-
-		TextRange textRange = new ASTNodeTextRange(aea.getAstNode(this.buildASTRoot(cu)));
-		assertEquals(this.getSource(cu).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\")";
-		ICompilationUnit cu = this.createTestType(annotation);
-		this.assertSourceContains(annotation, cu);
-		DeclarationAnnotationAdapter daa = new SimpleDeclarationAnnotationAdapter("annot.Foo");
-		DeclarationAnnotationElementAdapter<String> daea = ConversionDeclarationAnnotationElementAdapter.forStrings(daa, "bar");
-		AnnotationElementAdapter<String> aea = new MemberAnnotationElementAdapter<String>(this.idField(cu), daea);
-
-		aea.setValue(null);
-		this.assertSourceDoesNotContain("Foo", cu);
-	}
-
-	public void testSetValue2() throws Exception {
-		this.createAnnotationAndMembers("Foo", "String bar();");
-		String annotation = "@annot.Foo(bar=\"xxx\")";
-		ICompilationUnit cu = this.createTestType(annotation);
-		this.assertSourceContains(annotation, cu);
-		DeclarationAnnotationAdapter daa = new SimpleDeclarationAnnotationAdapter("annot.Foo");
-		DeclarationAnnotationElementAdapter<String> daea = ConversionDeclarationAnnotationElementAdapter.forStrings(daa, "bar", false);
-		AnnotationElementAdapter<String> aea = new MemberAnnotationElementAdapter<String>(this.idField(cu), daea);
-
-		aea.setValue(null);
-		this.assertSourceDoesNotContain(annotation, cu);
-		this.assertSourceContains("@Foo", cu);
-	}
-
-	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)))";
-		ICompilationUnit cu = this.createTestType(annotation);
-		this.assertSourceContains(annotation, cu);
-		DeclarationAnnotationAdapter daa1 = new SimpleDeclarationAnnotationAdapter("annot.Foo");
-		DeclarationAnnotationAdapter daa2 = new NestedDeclarationAnnotationAdapter(daa1, "value", "annot.Bar");
-		DeclarationAnnotationAdapter daa3 = new NestedDeclarationAnnotationAdapter(daa2, "jimmy", "annot.Baz");
-		DeclarationAnnotationElementAdapter<Boolean> daea = new ConversionDeclarationAnnotationElementAdapter<Boolean>(daa3, "fred", BooleanExpressionConverter.instance());
-		AnnotationElementAdapter<Boolean> aea = new MemberAnnotationElementAdapter<Boolean>(this.idField(cu), daea);
-
-		aea.setValue(null);
-		this.assertSourceDoesNotContain(annotation, cu);
-		this.assertSourceDoesNotContain("Foo", cu);
-		this.assertSourceDoesNotContain("Bar", cu);
-	}
-
-	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)))";
-		ICompilationUnit cu = this.createTestType(annotation);
-		this.assertSourceContains(annotation, cu);
-		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<Boolean> daea = new ConversionDeclarationAnnotationElementAdapter<Boolean>(daa3, "fred", BooleanExpressionConverter.instance());
-		AnnotationElementAdapter<Boolean> aea = new MemberAnnotationElementAdapter<Boolean>(this.idField(cu), daea);
-
-		aea.setValue(null);
-		this.assertSourceDoesNotContain(annotation, cu);
-		this.assertSourceContains("@annot.Foo(@Bar)", cu);
-	}
-
-	public void testSetValue4() throws Exception {
-		this.createAnnotationAndMembers("Foo", "String bar();");
-		ICompilationUnit cu = this.createTestType();
-		DeclarationAnnotationAdapter daa = new SimpleDeclarationAnnotationAdapter("Foo");
-		DeclarationAnnotationElementAdapter<String> daea = ConversionDeclarationAnnotationElementAdapter.forStrings(daa, "bar");
-		AnnotationElementAdapter<String> aea = new MemberAnnotationElementAdapter<String>(this.idField(cu), daea);
-
-		aea.setValue("xxx");
-		this.assertSourceContains("@Foo(bar = \"xxx\")", cu);
-	}
-
-	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)))";
-		ICompilationUnit cu = this.createTestType(annotation);
-		this.assertSourceContains(annotation, cu);
-		DeclarationAnnotationAdapter daa1 = new SimpleDeclarationAnnotationAdapter("annot.Foo");
-		DeclarationAnnotationAdapter daa2 = new NestedDeclarationAnnotationAdapter(daa1, "value", "annot.Bar");
-		DeclarationAnnotationAdapter daa3 = new NestedDeclarationAnnotationAdapter(daa2, "jimmy", "annot.Baz");
-		DeclarationAnnotationElementAdapter<Boolean> daea = new ConversionDeclarationAnnotationElementAdapter<Boolean>(daa3, "fred", BooleanExpressionConverter.instance());
-		AnnotationElementAdapter<Boolean> aea = new MemberAnnotationElementAdapter<Boolean>(this.idField(cu), daea);
-
-		aea.setValue(Boolean.TRUE);
-		this.assertSourceDoesNotContain(annotation, cu);
-		this.assertSourceContains("@annot.Foo(@annot.Bar(jimmy=@annot.Baz(fred=true)))", cu);
-	}
-
-	public void testSetValue6() throws Exception {
-		this.createAnnotationAndMembers("Baz", "boolean fred();");
-		this.createAnnotationAndMembers("Bar", "annot.Baz jimmy();");
-		this.createAnnotationAndMembers("Foo", "annot.Bar value();");
-		ICompilationUnit cu = 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<Boolean> daea = new ConversionDeclarationAnnotationElementAdapter<Boolean>(daa3, "fred", BooleanExpressionConverter.instance());
-		AnnotationElementAdapter<Boolean> aea = new MemberAnnotationElementAdapter<Boolean>(this.idField(cu), daea);
-
-		aea.setValue(Boolean.TRUE);
-		this.assertSourceContains("@Foo(@Bar(jimmy = @Baz(fred = true)))", cu);
-	}
-
-	public void testSetValue7() throws Exception {
-		this.createAnnotationAndMembers("Foo", "String bar();");
-		String annotation = "@annot.Foo(bar=\"xxx\")";
-		ICompilationUnit cu = this.createTestType(annotation);
-		this.assertSourceContains(annotation, cu);
-		DeclarationAnnotationAdapter daa = new SimpleDeclarationAnnotationAdapter("annot.Foo");
-		DeclarationAnnotationElementAdapter<String> daea = ConversionDeclarationAnnotationElementAdapter.forStrings(daa, "bar");
-		AnnotationElementAdapter<String> aea = new MemberAnnotationElementAdapter<String>(this.idField(cu), daea);
-
-		aea.setValue("yyy");
-		this.assertSourceDoesNotContain(annotation, cu);
-		this.assertSourceContains("@annot.Foo(bar=\"yyy\")", cu);
-	}
-
-	public void testSetValue8() throws Exception {
-		this.createAnnotationAndMembers("Foo", "String bar();");
-		String annotation = "@annot.Foo";
-		ICompilationUnit cu = this.createTestType(annotation);
-		this.assertSourceContains(annotation, cu);
-		DeclarationAnnotationAdapter daa = new SimpleDeclarationAnnotationAdapter("annot.Foo");
-		DeclarationAnnotationElementAdapter<String> daea = ConversionDeclarationAnnotationElementAdapter.forStrings(daa, "bar");
-		AnnotationElementAdapter<String> aea = new MemberAnnotationElementAdapter<String>(this.idField(cu), daea);
-
-		aea.setValue("xxx");
-		this.assertSourceContains("@Foo(bar = \"xxx\")", cu);
-	}
-
-	public void testSetValue9() throws Exception {
-		this.createAnnotationAndMembers("Foo", "String value(); String bar();");
-		String annotation = "@annot.Foo(\"zzz\")";
-		ICompilationUnit cu = this.createTestType(annotation);
-		this.assertSourceContains(annotation, cu);
-		DeclarationAnnotationAdapter daa = new SimpleDeclarationAnnotationAdapter("annot.Foo");
-		DeclarationAnnotationElementAdapter<String> daea = ConversionDeclarationAnnotationElementAdapter.forStrings(daa, "bar");
-		AnnotationElementAdapter<String> aea = new MemberAnnotationElementAdapter<String>(this.idField(cu), daea);
-
-		aea.setValue("xxx");
-		this.assertSourceDoesNotContain(annotation, cu);
-		this.assertSourceContains("@Foo(value = \"zzz\", bar = \"xxx\")", cu);
-	}
-
-	public void testSetValue10() throws Exception {
-		this.createAnnotationAndMembers("Foo", "String bar(); String baz();");
-		String annotation = "@annot.Foo(bar=\"xxx\")";
-		ICompilationUnit cu = this.createTestType(annotation);
-		this.assertSourceContains(annotation, cu);
-		DeclarationAnnotationAdapter daa = new SimpleDeclarationAnnotationAdapter("annot.Foo");
-		DeclarationAnnotationElementAdapter<String> daea = ConversionDeclarationAnnotationElementAdapter.forStrings(daa, "baz");
-		AnnotationElementAdapter<String> aea = new MemberAnnotationElementAdapter<String>(this.idField(cu), daea);
-
-		aea.setValue("yyy");
-		this.assertSourceDoesNotContain(annotation, cu);
-		this.assertSourceContains("@annot.Foo(bar=\"xxx\", baz = \"yyy\")", cu);
-	}
-
-	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)}))";
-		ICompilationUnit cu = this.createTestType(annotation);
-		this.assertSourceContains(annotation, cu);
-		DeclarationAnnotationAdapter daa1 = new SimpleDeclarationAnnotationAdapter("annot.Foo");
-		DeclarationAnnotationAdapter daa2 = new NestedDeclarationAnnotationAdapter(daa1, "value", "annot.Bar");
-		DeclarationAnnotationAdapter daa3 = new NestedIndexedDeclarationAnnotationAdapter(daa2, "jimmy", 2, "annot.Baz");
-		DeclarationAnnotationElementAdapter<Integer> daea = new ConversionDeclarationAnnotationElementAdapter<Integer>(daa3, "fred", NumberIntegerExpressionConverter.instance());
-		AnnotationElementAdapter<Integer> aea = new MemberAnnotationElementAdapter<Integer>(this.idField(cu), daea);
-
-		assertEquals(Integer.valueOf(2), aea.getValue());
-		aea.setValue(Integer.valueOf(48));
-		this.assertSourceContains("@annot.Foo(@annot.Bar(jimmy={@annot.Baz(fred=0), @annot.Baz(fred=1), @annot.Baz(fred=48), @annot.Baz(fred=3)}))", cu);
-	}
-
-	public void testSetValue12() throws Exception {
-		this.createAnnotationAndMembers("Foo", "String value();");
-		String annotation = "@annot.Foo";
-		ICompilationUnit cu = this.createTestType(annotation);
-		this.assertSourceContains(annotation, cu);
-		DeclarationAnnotationAdapter daa = new SimpleDeclarationAnnotationAdapter("annot.Foo");
-		DeclarationAnnotationElementAdapter<String> daea = ConversionDeclarationAnnotationElementAdapter.forStrings(daa, "value");
-		AnnotationElementAdapter<String> aea = new MemberAnnotationElementAdapter<String>(this.idField(cu), daea);
-
-		aea.setValue("xxx");
-		this.assertSourceContains("@Foo(\"xxx\")", cu);
-	}
-
-	public void testSetValue13() throws Exception {
-		this.createAnnotationAndMembers("Foo", "String value();");
-		String annotation = "@annot.Foo(\"zzz\")";
-		ICompilationUnit cu = this.createTestType(annotation);
-		this.assertSourceContains(annotation, cu);
-		DeclarationAnnotationAdapter daa = new SimpleDeclarationAnnotationAdapter("annot.Foo");
-		DeclarationAnnotationElementAdapter<String> daea = ConversionDeclarationAnnotationElementAdapter.forStrings(daa, "value");
-		AnnotationElementAdapter<String> aea = new MemberAnnotationElementAdapter<String>(this.idField(cu), daea);
-
-		aea.setValue("xxx");
-		this.assertSourceDoesNotContain(annotation, cu);
-		this.assertSourceContains("@annot.Foo(\"xxx\")", cu);
-	}
-
-	public void testSimpleTypeLiteral1() throws Exception {
-		this.createAnnotationAndMembers("Foo", "Class bar();");
-		ICompilationUnit cu = 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(cu), daea);
-		assertEquals("java.lang.Object", aea.getValue());
-	}
-
-	public void testSimpleTypeLiteral2() throws Exception {
-		this.createAnnotationAndMembers("Foo", "Class bar();");
-		ICompilationUnit cu = 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(cu), daea);
-		aea.setValue("java.lang.Object");
-		this.assertSourceContains("@Foo(bar = java.lang.Object.class)", cu);
-	}
-
-	public void testSimpleTypeLiteral3() throws Exception {
-		this.createAnnotationAndMembers("Foo", "Class bar();");
-		ICompilationUnit cu = 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(cu), daea);
-		assertNull(aea.getValue());
-	}
-
-	public void testSimpleTypeLiteral4() throws Exception {
-		this.createAnnotationAndMembers("Foo", "Class bar();");
-		ICompilationUnit cu = 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(cu), daea);
-		assertEquals("java.util.Map.Entry", aea.getValue());
-	}
-
-	public void testPrimitiveTypeLiteral1() throws Exception {
-		this.createAnnotationAndMembers("Foo", "Class bar();");
-		ICompilationUnit cu = 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(cu), daea);
-		assertEquals("int", aea.getValue());
-	}
-
-	public void testPrimitiveTypeLiteral2() throws Exception {
-		this.createAnnotationAndMembers("Foo", "Class bar();");
-		ICompilationUnit cu = 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(cu), daea);
-		aea.setValue("int");
-		this.assertSourceContains("@Foo(bar = int.class)", cu);
-	}
-
-	public void testPrimitiveTypeLiteral3() throws Exception {
-		this.createAnnotationAndMembers("Foo", "Class bar();");
-		ICompilationUnit cu = 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(cu), daea);
-		assertNull(aea.getValue());
-	}
-
-	public void testPrimitiveTypeLiteral4() throws Exception {
-		this.createAnnotationAndMembers("Foo", "Class bar();");
-		ICompilationUnit cu = 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(cu), daea);
-		assertEquals("void", aea.getValue());
-	}
-
-	public void testTypeLiteral1() throws Exception {
-		this.createAnnotationAndMembers("Foo", "Class bar();");
-		ICompilationUnit cu = this.createTestType("@annot.Foo(bar=java.lang.Object.class)");
-		DeclarationAnnotationAdapter daa = new SimpleDeclarationAnnotationAdapter("annot.Foo");
-		DeclarationAnnotationElementAdapter<String> daea = new ConversionDeclarationAnnotationElementAdapter<String>(daa, "bar", TypeStringExpressionConverter.instance());
-		AnnotationElementAdapter<String> aea = new MemberAnnotationElementAdapter<String>(this.idField(cu), daea);
-		assertEquals("java.lang.Object", aea.getValue());
-	}
-
-	public void testTypeLiteral2() throws Exception {
-		this.createAnnotationAndMembers("Foo", "Class bar();");
-		ICompilationUnit cu = this.createTestType();
-		DeclarationAnnotationAdapter daa = new SimpleDeclarationAnnotationAdapter("annot.Foo");
-		DeclarationAnnotationElementAdapter<String> daea = new ConversionDeclarationAnnotationElementAdapter<String>(daa, "bar", TypeStringExpressionConverter.instance());
-		AnnotationElementAdapter<String> aea = new MemberAnnotationElementAdapter<String>(this.idField(cu), daea);
-		aea.setValue("java.lang.Object");
-		this.assertSourceContains("@Foo(bar = java.lang.Object.class)", cu);
-	}
-
-	public void testTypeLiteral3() throws Exception {
-		this.createAnnotationAndMembers("Foo", "Class bar();");
-		ICompilationUnit cu = this.createTestType("@annot.Foo(bar=java.util.Map.Entry.class)");
-		DeclarationAnnotationAdapter daa = new SimpleDeclarationAnnotationAdapter("annot.Foo");
-		DeclarationAnnotationElementAdapter<String> daea = new ConversionDeclarationAnnotationElementAdapter<String>(daa, "bar", TypeStringExpressionConverter.instance());
-		AnnotationElementAdapter<String> aea = new MemberAnnotationElementAdapter<String>(this.idField(cu), daea);
-		assertEquals("java.util.Map.Entry", aea.getValue());
-	}
-
-	public void testTypeLiteral14() throws Exception {
-		this.createAnnotationAndMembers("Foo", "Class bar();");
-		ICompilationUnit cu = this.createTestType("@annot.Foo(bar=int.class)");
-		DeclarationAnnotationAdapter daa = new SimpleDeclarationAnnotationAdapter("annot.Foo");
-		DeclarationAnnotationElementAdapter<String> daea = new ConversionDeclarationAnnotationElementAdapter<String>(daa, "bar", TypeStringExpressionConverter.instance());
-		AnnotationElementAdapter<String> aea = new MemberAnnotationElementAdapter<String>(this.idField(cu), daea);
-		assertEquals("int", aea.getValue());
-	}
-
-	public void testTypeLiteral5() throws Exception {
-		this.createAnnotationAndMembers("Foo", "Class bar();");
-		ICompilationUnit cu = this.createTestType();
-		DeclarationAnnotationAdapter daa = new SimpleDeclarationAnnotationAdapter("annot.Foo");
-		DeclarationAnnotationElementAdapter<String> daea = new ConversionDeclarationAnnotationElementAdapter<String>(daa, "bar", TypeStringExpressionConverter.instance());
-		AnnotationElementAdapter<String> aea = new MemberAnnotationElementAdapter<String>(this.idField(cu), daea);
-		aea.setValue("int");
-		this.assertSourceContains("@Foo(bar = int.class)", cu);
-	}
-
-	public void testTypeLiteral6() throws Exception {
-		this.createAnnotationAndMembers("Foo", "Class bar();");
-		ICompilationUnit cu = this.createTestType("@annot.Foo(bar=void.class)");
-		DeclarationAnnotationAdapter daa = new SimpleDeclarationAnnotationAdapter("annot.Foo");
-		DeclarationAnnotationElementAdapter<String> daea = new ConversionDeclarationAnnotationElementAdapter<String>(daa, "bar", TypeStringExpressionConverter.instance());
-		AnnotationElementAdapter<String> aea = new MemberAnnotationElementAdapter<String>(this.idField(cu), daea);
-		assertEquals("void", aea.getValue());
-	}
-
-	public void testValueEnum1() throws Exception {
-		this.createEnum("TestEnum", "XXX, YYY, ZZZ");
-		this.createAnnotationAndMembers("Foo", "enums.TestEnum bar();");
-		ICompilationUnit cu = 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(cu), daea);
-		assertEquals("enums.TestEnum.XXX", aea.getValue());
-	}
-
-	public void testValueEnum2() throws Exception {
-		this.createEnum("TestEnum", "XXX, YYY, ZZZ");
-		this.createAnnotationAndMembers("Foo", "enums.TestEnum bar();");
-		ICompilationUnit cu = 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(cu), daea);
-		assertEquals("enums.TestEnum.XXX", aea.getValue());
-	}
-
-	public void testValueEnum3() throws Exception {
-		this.createEnum("TestEnum", "XXX, YYY, ZZZ");
-		this.createAnnotationAndMembers("Foo", "enums.TestEnum bar();");
-		ICompilationUnit cu = 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(cu), daea);
-		assertNull(aea.getValue());
-	}
-
-	public void testValueEnum4() throws Exception {
-		this.createEnum("TestEnum", "XXX, YYY, ZZZ");
-		this.createAnnotationAndMembers("Foo", "enums.TestEnum bar();");
-		ICompilationUnit cu = 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(cu), 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 expected = "@annot.Foo(bar=XXX)";
-		ICompilationUnit cu = this.createTestType("static enums.TestEnum.XXX", expected);
-		this.assertSourceContains(expected, cu);
-		DeclarationAnnotationAdapter daa = new SimpleDeclarationAnnotationAdapter("annot.Foo");
-		DeclarationAnnotationElementAdapter<String> daea = new EnumDeclarationAnnotationElementAdapter(daa, "bar");
-		AnnotationElementAdapter<String> aea = new MemberAnnotationElementAdapter<String>(this.idField(cu), daea);
-		aea.setValue(null);
-		this.assertSourceDoesNotContain("Foo", cu);
-	}
-
-	public void testSetValueEnum2() throws Exception {
-		this.createEnum("TestEnum", "XXX, YYY, ZZZ");
-		this.createAnnotationAndMembers("Foo", "enums.TestEnum bar();");
-		String expected = "@Foo(bar = XXX)";
-		ICompilationUnit cu = this.createTestType();
-		this.assertSourceDoesNotContain(expected, cu);
-		DeclarationAnnotationAdapter daa = new SimpleDeclarationAnnotationAdapter("annot.Foo");
-		DeclarationAnnotationElementAdapter<String> daea = new EnumDeclarationAnnotationElementAdapter(daa, "bar");
-		AnnotationElementAdapter<String> aea = new MemberAnnotationElementAdapter<String>(this.idField(cu), daea);
-		aea.setValue("enums.TestEnum.XXX");
-		this.assertSourceContains("import static enums.TestEnum.XXX;", cu);
-		this.assertSourceContains(expected, cu);
-	}
-
-	public void testSetValueEnumImportCollision1() throws Exception {
-		this.createEnum("enums1", "TestEnum", "XXX, YYY, ZZZ");
-		this.createEnum("enums2", "TestEnum", "XXX, YYY, ZZZ");
-		this.createAnnotationAndMembers("Foo", "enums1.TestEnum bar1();  enums2.TestEnum bar2();");
-		String expected = "@Foo(bar1 = XXX, bar2 = TestEnum.XXX)";
-		ICompilationUnit cu = this.createTestType();
-		this.assertSourceDoesNotContain(expected, cu);
-
-		DeclarationAnnotationAdapter daa = new SimpleDeclarationAnnotationAdapter("annot.Foo");
-
-		DeclarationAnnotationElementAdapter<String> daea1 = new EnumDeclarationAnnotationElementAdapter(daa, "bar1");
-		AnnotationElementAdapter<String> aea1 = new MemberAnnotationElementAdapter<String>(this.idField(cu), daea1);
-		aea1.setValue("enums1.TestEnum.XXX");
-
-		DeclarationAnnotationElementAdapter<String> daea2 = new EnumDeclarationAnnotationElementAdapter(daa, "bar2");
-		AnnotationElementAdapter<String> aea2 = new MemberAnnotationElementAdapter<String>(this.idField(cu), daea2);
-		aea2.setValue("enums2.TestEnum.XXX");
-
-		this.assertSourceContains("import static enums1.TestEnum.XXX;", cu);
-		this.assertSourceDoesNotContain("import static enums2.TestEnum.XXX;", cu);
-		this.assertSourceContains("import enums2.TestEnum;", cu);
-		this.assertSourceContains(expected, cu);
-	}
-
-	public void testSetValueEnumImportCollision2() throws Exception {
-		this.createEnum("enums1", "TestEnum", "XXX, YYY, ZZZ");
-		this.createEnum("enums2", "TestEnum", "XXX, YYY, ZZZ");
-		this.createAnnotationAndMembers("Foo", "enums1.TestEnum bar1();  enums2.TestEnum bar2();");
-		String expected = "@annot.Foo(bar1=XXX, bar2 = TestEnum.XXX)";
-		ICompilationUnit cu = this.createTestType("static enums1.TestEnum.*", "@annot.Foo(bar1=XXX)");
-		this.assertSourceDoesNotContain(expected, cu);
-
-		DeclarationAnnotationAdapter daa = new SimpleDeclarationAnnotationAdapter("annot.Foo");
-
-		DeclarationAnnotationElementAdapter<String> daea1 = new EnumDeclarationAnnotationElementAdapter(daa, "bar1");
-		AnnotationElementAdapter<String> aea1 = new MemberAnnotationElementAdapter<String>(this.idField(cu), daea1);
-		assertNotNull(aea1.getValue());
-
-		DeclarationAnnotationElementAdapter<String> daea2 = new EnumDeclarationAnnotationElementAdapter(daa, "bar2");
-		AnnotationElementAdapter<String> aea2 = new MemberAnnotationElementAdapter<String>(this.idField(cu), daea2);
-		aea2.setValue("enums2.TestEnum.XXX");
-
-		this.assertSourceContains("import static enums1.TestEnum.*;", cu);
-		this.assertSourceDoesNotContain("import static enums2.TestEnum.XXX;", cu);
-		this.assertSourceContains("import enums2.TestEnum;", cu);
-		this.assertSourceContains(expected, cu);
-	}
-
-	public void testSetValueEnumImportCollision3() throws Exception {
-		this.createEnum("TestEnum1", "XXX, YYY, ZZZ");
-		this.createEnum("TestEnum2", "XXX, YYY, ZZZ");
-		this.createAnnotationAndMembers("Foo", "enums.TestEnum1 bar1();  enums.TestEnum2 bar2();");
-		String expected = "@Foo(bar1 = XXX, bar2 = TestEnum2.XXX)";
-		ICompilationUnit cu = this.createTestType();
-		this.assertSourceDoesNotContain(expected, cu);
-
-		DeclarationAnnotationAdapter daa = new SimpleDeclarationAnnotationAdapter("annot.Foo");
-
-		DeclarationAnnotationElementAdapter<String> daea1 = new EnumDeclarationAnnotationElementAdapter(daa, "bar1");
-		AnnotationElementAdapter<String> aea1 = new MemberAnnotationElementAdapter<String>(this.idField(cu), daea1);
-		aea1.setValue("enums.TestEnum1.XXX");
-
-		DeclarationAnnotationElementAdapter<String> daea2 = new EnumDeclarationAnnotationElementAdapter(daa, "bar2");
-		AnnotationElementAdapter<String> aea2 = new MemberAnnotationElementAdapter<String>(this.idField(cu), daea2);
-		aea2.setValue("enums.TestEnum2.XXX");
-
-		this.assertSourceContains("import static enums.TestEnum1.XXX;", cu);
-		this.assertSourceContains("import enums.TestEnum2;", cu);
-		this.assertSourceContains(expected, cu);
-	}
-
-	public void testSetValueEnumImportCollision4() throws Exception {
-		this.createEnum("TestEnum1", "XXX, YYY, ZZZ");
-		this.createEnum("TestEnum2", "XXX, YYY, ZZZ");
-		this.createAnnotationAndMembers("Foo", "enums.TestEnum1 bar1();  enums.TestEnum2 bar2();");
-		String expected = "@annot.Foo(bar1=XXX, bar2 = TestEnum2.XXX)";
-		ICompilationUnit cu = this.createTestType("static enums.TestEnum1.*", "@annot.Foo(bar1=XXX)");
-		this.assertSourceDoesNotContain(expected, cu);
-
-		DeclarationAnnotationAdapter daa = new SimpleDeclarationAnnotationAdapter("annot.Foo");
-
-		DeclarationAnnotationElementAdapter<String> daea1 = new EnumDeclarationAnnotationElementAdapter(daa, "bar1");
-		AnnotationElementAdapter<String> aea1 = new MemberAnnotationElementAdapter<String>(this.idField(cu), daea1);
-		assertNotNull(aea1.getValue());
-
-		DeclarationAnnotationElementAdapter<String> daea2 = new EnumDeclarationAnnotationElementAdapter(daa, "bar2");
-		AnnotationElementAdapter<String> aea2 = new MemberAnnotationElementAdapter<String>(this.idField(cu), daea2);
-		aea2.setValue("enums.TestEnum2.XXX");
-
-		this.assertSourceContains("import static enums.TestEnum1.*;", cu);
-		this.assertSourceContains("import enums.TestEnum2;", cu);
-		this.assertSourceContains(expected, cu);
-	}
-
-	/**
-	 * not sure this is exactly what we want...
-	 * it would be nice if we just skip the static import; but it's a matter of taste...
-	 */
-	public void testSetValueEnumImportCollision5() throws Exception {
-		this.createEnum("TestEnum1", "XXX, YYY, ZZZ");
-		this.createEnum("TestEnum2", "XXX, YYY, ZZZ");
-		this.createAnnotationAndMembers("Foo", "enums.TestEnum1 bar1();  enums.TestEnum2 bar2();");
-		String expected = "@Foo(bar1 = XXX, bar2 = TestEnum2.XXX)";
-		ICompilationUnit cu = this.createTestType("enums.*", "");
-		this.assertSourceDoesNotContain(expected, cu);
-
-		DeclarationAnnotationAdapter daa = new SimpleDeclarationAnnotationAdapter("annot.Foo");
-
-		DeclarationAnnotationElementAdapter<String> daea1 = new EnumDeclarationAnnotationElementAdapter(daa, "bar1");
-		AnnotationElementAdapter<String> aea1 = new MemberAnnotationElementAdapter<String>(this.idField(cu), daea1);
-		aea1.setValue("enums.TestEnum1.XXX");
-
-		DeclarationAnnotationElementAdapter<String> daea2 = new EnumDeclarationAnnotationElementAdapter(daa, "bar2");
-		AnnotationElementAdapter<String> aea2 = new MemberAnnotationElementAdapter<String>(this.idField(cu), daea2);
-		aea2.setValue("enums.TestEnum2.XXX");
-
-		this.assertSourceContains("import enums.*;", cu);
-		this.assertSourceContains("import static enums.TestEnum1.XXX;", cu);
-		this.assertSourceDoesNotContain("import enums.TestEnum2;", cu);
-		this.assertSourceContains(expected, cu);
-	}
-
-	public void testSetValueEnumImportCollision6() throws Exception {
-		this.createEnum("enums1", "TestEnum", "XXX, YYY, ZZZ");
-		this.createEnum("enums2", "TestEnum", "XXX, YYY, ZZZ");
-		this.createEnum("enums3", "TestEnum", "XXX, YYY, ZZZ");
-		this.createAnnotationAndMembers("Foo", "enums1.TestEnum bar1();  enums2.TestEnum bar2();  enums3.TestEnum bar3();");
-		String expected = "@Foo(bar1 = XXX, bar2 = TestEnum.XXX, bar3 = enums3.TestEnum.XXX)";
-		ICompilationUnit cu = this.createTestType();
-		this.assertSourceDoesNotContain(expected, cu);
-
-		DeclarationAnnotationAdapter daa = new SimpleDeclarationAnnotationAdapter("annot.Foo");
-
-		DeclarationAnnotationElementAdapter<String> daea1 = new EnumDeclarationAnnotationElementAdapter(daa, "bar1");
-		AnnotationElementAdapter<String> aea1 = new MemberAnnotationElementAdapter<String>(this.idField(cu), daea1);
-		aea1.setValue("enums1.TestEnum.XXX");
-
-		DeclarationAnnotationElementAdapter<String> daea2 = new EnumDeclarationAnnotationElementAdapter(daa, "bar2");
-		AnnotationElementAdapter<String> aea2 = new MemberAnnotationElementAdapter<String>(this.idField(cu), daea2);
-		aea2.setValue("enums2.TestEnum.XXX");
-
-		DeclarationAnnotationElementAdapter<String> daea3 = new EnumDeclarationAnnotationElementAdapter(daa, "bar3");
-		AnnotationElementAdapter<String> aea3 = new MemberAnnotationElementAdapter<String>(this.idField(cu), daea3);
-		aea3.setValue("enums3.TestEnum.XXX");
-
-		this.assertSourceContains("import static enums1.TestEnum.XXX;", cu);
-		this.assertSourceDoesNotContain("import static enums2.TestEnum.XXX;", cu);
-		this.assertSourceContains("import enums2.TestEnum;", cu);
-		this.assertSourceDoesNotContain("import static enums3", cu);
-		this.assertSourceDoesNotContain("import enums3", cu);
-		this.assertSourceContains(expected, cu);
-	}
-
-	public void testValueStringArray() throws Exception {
-		this.createAnnotationAndMembers("Foo", "String[] bar();");
-		ICompilationUnit cu = 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(cu), daea);
-		assertTrue(Arrays.equals(new String[] {"string0", "string1"}, aea.getValue()));
-	}
-
-	public void testValueStringArrayConcatenation() throws Exception {
-		this.createAnnotationAndMembers("Foo", "String[] bar();");
-		ICompilationUnit cu = 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(cu), daea);
-		assertTrue(Arrays.equals(new String[] {"string0", "string1"}, aea.getValue()));
-	}
-
-	public void testValueStringArrayEmpty() throws Exception {
-		this.createAnnotationAndMembers("Foo", "String[] bar();");
-		ICompilationUnit cu = 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(cu), daea);
-		assertTrue(Arrays.equals(new String[0], aea.getValue()));
-	}
-
-	public void testValueStringArraySingleElement() throws Exception {
-		this.createAnnotationAndMembers("Foo", "String[] bar();");
-		ICompilationUnit cu = 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(cu), daea);
-		assertTrue(Arrays.equals(new String[] {"string0"}, aea.getValue()));
-	}
-
-	public void testValueNullStringArray() throws Exception {
-		this.createAnnotationAndMembers("Foo", "String[] bar();");
-		ICompilationUnit cu = 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(cu), daea);
-		assertTrue(Arrays.equals(new String[0], aea.getValue()));
-	}
-
-	public void testSetValueStringArray() throws Exception {
-		this.createAnnotationAndMembers("Foo", "String[] bar();");
-		String expected = "@Foo(bar = { \"string0\", \"string1\" })";
-		ICompilationUnit cu = this.createTestType();
-		this.assertSourceDoesNotContain(expected, cu);
-		DeclarationAnnotationAdapter daa = new SimpleDeclarationAnnotationAdapter("annot.Foo");
-		DeclarationAnnotationElementAdapter<String[]> daea = new ConversionDeclarationAnnotationElementAdapter<String[]>(daa, "bar", AnnotationStringArrayExpressionConverter.forStrings());
-		AnnotationElementAdapter<String[]> aea = new MemberAnnotationElementAdapter<String[]>(this.idField(cu), daea);
-		aea.setValue(new String[] {"string0", "string1"});
-		this.assertSourceContains(expected, cu);
-	}
-
-	public void testSetValueStringArrayEmptyRemove() throws Exception {
-		this.createAnnotationAndMembers("Foo", "String[] bar();");
-		String expected = "@Foo";
-		ICompilationUnit cu = this.createTestType();
-		this.assertSourceDoesNotContain(expected, cu);
-		DeclarationAnnotationAdapter daa = new SimpleDeclarationAnnotationAdapter("annot.Foo");
-		DeclarationAnnotationElementAdapter<String[]> daea = new ConversionDeclarationAnnotationElementAdapter<String[]>(daa, "bar", AnnotationStringArrayExpressionConverter.forStrings());
-		AnnotationElementAdapter<String[]> aea = new MemberAnnotationElementAdapter<String[]>(this.idField(cu), daea);
-		aea.setValue(new String[0]);
-		this.assertSourceDoesNotContain(expected, cu);
-	}
-
-	public void testSetValueStringArrayEmpty() throws Exception {
-		this.createAnnotationAndMembers("Foo", "String[] bar();");
-		String expected = "@Foo(bar = {})";
-		ICompilationUnit cu = this.createTestType();
-		this.assertSourceDoesNotContain(expected, cu);
-		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(cu), daea);
-		aea.setValue(new String[0]);
-		this.assertSourceContains(expected, cu);
-	}
-
-	public void testSetValueStringArraySingleElement() throws Exception {
-		this.createAnnotationAndMembers("Foo", "String[] bar();");
-		String annotation = "@Foo(bar = \"string0\")";
-		ICompilationUnit cu = this.createTestType();
-		this.assertSourceDoesNotContain(annotation, cu);
-		DeclarationAnnotationAdapter daa = new SimpleDeclarationAnnotationAdapter("annot.Foo");
-		DeclarationAnnotationElementAdapter<String[]> daea = new ConversionDeclarationAnnotationElementAdapter<String[]>(daa, "bar", AnnotationStringArrayExpressionConverter.forStrings());
-		AnnotationElementAdapter<String[]> aea = new MemberAnnotationElementAdapter<String[]>(this.idField(cu), daea);
-		aea.setValue(new String[] {"string0"});
-		this.assertSourceContains(annotation, cu);
-	}
-
-	public void testValueEnumArray() throws Exception {
-		this.createEnum("TestEnum", "XXX, YYY, ZZZ");
-		this.createAnnotationAndMembers("Foo", "enums.TestEnum[] bar();");
-		ICompilationUnit cu = 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(cu), daea);
-		assertTrue(Arrays.equals(new String[] {"enums.TestEnum.XXX", "enums.TestEnum.YYY"}, aea.getValue()));
-	}
-
-	public void testValueEnumArrayInvalidEntry() throws Exception {
-		this.createEnum("TestEnum", "XXX, YYY, ZZZ");
-		this.createAnnotationAndMembers("Foo", "enums.TestEnum[] bar();");
-		ICompilationUnit cu = 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(cu), daea);
-		assertTrue(Arrays.equals(new String[] {"enums.TestEnum.XXX", null}, aea.getValue()));
-	}
-
-	public void testValueEnumArrayEmpty() throws Exception {
-		this.createEnum("TestEnum", "XXX, YYY, ZZZ");
-		this.createAnnotationAndMembers("Foo", "enums.TestEnum[] bar();");
-		ICompilationUnit cu = 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(cu), daea);
-		assertTrue(Arrays.equals(new String[0], aea.getValue()));
-	}
-
-	public void testValueEnumArraySingleElement() throws Exception {
-		this.createEnum("TestEnum", "XXX, YYY, ZZZ");
-		this.createAnnotationAndMembers("Foo", "enums.TestEnum[] bar();");
-		ICompilationUnit cu = 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(cu), daea);
-		assertTrue(Arrays.equals(new String[] {"enums.TestEnum.XXX"}, aea.getValue()));
-	}
-
-	public void testValueEnumArraySingleElementInvalid() throws Exception {
-		this.createEnum("TestEnum", "XXX, YYY, ZZZ");
-		this.createAnnotationAndMembers("Foo", "enums.TestEnum[] bar();");
-		ICompilationUnit cu = 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(cu), daea);
-		assertTrue(Arrays.equals(new String[] {null}, aea.getValue()));
-	}
-
-	public void testValueNullEnumArray() throws Exception {
-		this.createEnum("TestEnum", "XXX, YYY, ZZZ");
-		this.createAnnotationAndMembers("Foo", "enums.TestEnum[] bar();");
-		ICompilationUnit cu = 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(cu), 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 expected = "@Foo(bar = { XXX, YYY })";
-		ICompilationUnit cu = this.createTestType();
-		this.assertSourceDoesNotContain(expected, cu);
-		DeclarationAnnotationAdapter daa = new SimpleDeclarationAnnotationAdapter("annot.Foo");
-		DeclarationAnnotationElementAdapter<String[]> daea = new EnumArrayDeclarationAnnotationElementAdapter(daa, "bar");
-		AnnotationElementAdapter<String[]> aea = new MemberAnnotationElementAdapter<String[]>(this.idField(cu), daea);
-		aea.setValue(new String[] {"enums.TestEnum.XXX", "enums.TestEnum.YYY"});
-		this.assertSourceContains("import static enums.TestEnum.XXX;", cu);
-		this.assertSourceContains("import static enums.TestEnum.YYY;", cu);
-		this.assertSourceContains(expected, cu);
-	}
-
-	public void testSetValueEnumArrayEmptyRemove() throws Exception {
-		this.createEnum("TestEnum", "XXX, YYY, ZZZ");
-		this.createAnnotationAndMembers("Foo", "enums.TestEnum[] bar();");
-		String expected = "@Foo";
-		ICompilationUnit cu = this.createTestType();
-		this.assertSourceDoesNotContain(expected, cu);
-		DeclarationAnnotationAdapter daa = new SimpleDeclarationAnnotationAdapter("annot.Foo");
-		DeclarationAnnotationElementAdapter<String[]> daea = new EnumArrayDeclarationAnnotationElementAdapter(daa, "bar");
-		AnnotationElementAdapter<String[]> aea = new MemberAnnotationElementAdapter<String[]>(this.idField(cu), daea);
-		aea.setValue(new String[0]);
-		this.assertSourceDoesNotContain(expected, cu);
-	}
-
-	public void testSetValueEnumArrayEmpty() throws Exception {
-		this.createEnum("TestEnum", "XXX, YYY, ZZZ");
-		this.createAnnotationAndMembers("Foo", "enums.TestEnum[] bar();");
-		String expected = "@Foo(bar = {})";
-		ICompilationUnit cu = this.createTestType();
-		this.assertSourceDoesNotContain(expected, cu);
-		DeclarationAnnotationAdapter daa = new SimpleDeclarationAnnotationAdapter("annot.Foo");
-		DeclarationAnnotationElementAdapter<String[]> daea = new EnumArrayDeclarationAnnotationElementAdapter(daa, "bar", true, false);
-		AnnotationElementAdapter<String[]> aea = new MemberAnnotationElementAdapter<String[]>(this.idField(cu), daea);
-		aea.setValue(new String[0]);
-		this.assertSourceContains(expected, cu);
-	}
-
-	public void testSetValueEnumArraySingleElement() throws Exception {
-		this.createEnum("TestEnum", "XXX, YYY, ZZZ");
-		this.createAnnotationAndMembers("Foo", "enums.TestEnum[] bar();");
-		String expected = "@Foo(bar = XXX)";
-		ICompilationUnit cu = this.createTestType();
-		this.assertSourceDoesNotContain(expected, cu);
-		DeclarationAnnotationAdapter daa = new SimpleDeclarationAnnotationAdapter("annot.Foo");
-		DeclarationAnnotationElementAdapter<String[]> daea = new EnumArrayDeclarationAnnotationElementAdapter(daa, "bar");
-		AnnotationElementAdapter<String[]> aea = new MemberAnnotationElementAdapter<String[]>(this.idField(cu), daea);
-		aea.setValue(new String[] {"enums.TestEnum.XXX"});
-		this.assertSourceContains("import static enums.TestEnum.XXX;", cu);
-		this.assertSourceContains(expected, cu);
-	}
-
-	public void testSetValueEnumArrayImportCollision1() throws Exception {
-		this.createEnum("enums1", "TestEnum", "XXX, YYY, ZZZ");
-		this.createEnum("enums2", "TestEnum", "XXX, YYY, ZZZ");
-		this.createAnnotationAndMembers("Foo", "enums1.TestEnum[] bar1();  enums2.TestEnum[] bar2();");
-		String expected = "@Foo(bar1 = { XXX, YYY }, bar2 = { TestEnum.XXX, TestEnum.YYY })";
-		ICompilationUnit cu = this.createTestType();
-		this.assertSourceDoesNotContain(expected, cu);
-
-		DeclarationAnnotationAdapter daa = new SimpleDeclarationAnnotationAdapter("annot.Foo");
-
-		DeclarationAnnotationElementAdapter<String[]> daea1 = new EnumArrayDeclarationAnnotationElementAdapter(daa, "bar1");
-		AnnotationElementAdapter<String[]> aea1 = new MemberAnnotationElementAdapter<String[]>(this.idField(cu), daea1);
-		aea1.setValue(new String[] {"enums1.TestEnum.XXX", "enums1.TestEnum.YYY"});
-
-		DeclarationAnnotationElementAdapter<String[]> daea2 = new EnumArrayDeclarationAnnotationElementAdapter(daa, "bar2");
-		AnnotationElementAdapter<String[]> aea2 = new MemberAnnotationElementAdapter<String[]>(this.idField(cu), daea2);
-		aea2.setValue(new String[] {"enums2.TestEnum.XXX", "enums2.TestEnum.YYY"});
-
-		this.assertSourceContains("import static enums1.TestEnum.XXX;", cu);
-		this.assertSourceContains("import static enums1.TestEnum.YYY;", cu);
-		this.assertSourceDoesNotContain("import static enums2.TestEnum.XXX;", cu);
-		this.assertSourceDoesNotContain("import static enums2.TestEnum.YYY;", cu);
-		this.assertSourceContains("import enums2.TestEnum;", cu);
-		this.assertSourceContains(expected, cu);
-	}
-
-	public void testSetValueEnumArrayImportCollision2() throws Exception {
-		this.createEnum("enums1", "TestEnum", "XXX, YYY, ZZZ");
-		this.createEnum("enums2", "TestEnum", "XXX, YYY, ZZZ");
-		this.createAnnotationAndMembers("Foo", "enums1.TestEnum[] bar1();  enums2.TestEnum[] bar2();");
-		String expected = "@annot.Foo(bar1={XXX,YYY}, bar2 = { TestEnum.XXX, TestEnum.YYY })";
-		ICompilationUnit cu = this.createTestType("static enums1.TestEnum.*", "@annot.Foo(bar1={XXX,YYY})");
-		this.assertSourceDoesNotContain(expected, cu);
-
-		DeclarationAnnotationAdapter daa = new SimpleDeclarationAnnotationAdapter("annot.Foo");
-
-		DeclarationAnnotationElementAdapter<String[]> daea1 = new EnumArrayDeclarationAnnotationElementAdapter(daa, "bar1");
-		AnnotationElementAdapter<String[]> aea1 = new MemberAnnotationElementAdapter<String[]>(this.idField(cu), daea1);
-		assertNotNull(aea1.getValue());
-
-		DeclarationAnnotationElementAdapter<String[]> daea2 = new EnumArrayDeclarationAnnotationElementAdapter(daa, "bar2");
-		AnnotationElementAdapter<String[]> aea2 = new MemberAnnotationElementAdapter<String[]>(this.idField(cu), daea2);
-		aea2.setValue(new String[] {"enums2.TestEnum.XXX", "enums2.TestEnum.YYY"});
-
-		this.assertSourceContains("import static enums1.TestEnum.*;", cu);
-		this.assertSourceDoesNotContain("import static enums2.TestEnum.XXX;", cu);
-		this.assertSourceDoesNotContain("import static enums2.TestEnum.YYY;", cu);
-		this.assertSourceContains("import enums2.TestEnum;", cu);
-		this.assertSourceContains(expected, cu);
-	}
-
-	public void testSetValueEnumArrayImportCollision3() throws Exception {
-		this.createEnum("TestEnum1", "XXX, YYY, ZZZ");
-		this.createEnum("TestEnum2", "XXX, YYY, ZZZ");
-		this.createAnnotationAndMembers("Foo", "enums.TestEnum1[] bar1();  enums.TestEnum2[] bar2();");
-		String expected = "@Foo(bar1 = { XXX, YYY }, bar2 = { TestEnum2.XXX, TestEnum2.YYY })";
-		ICompilationUnit cu = this.createTestType();
-		this.assertSourceDoesNotContain(expected, cu);
-
-		DeclarationAnnotationAdapter daa = new SimpleDeclarationAnnotationAdapter("annot.Foo");
-
-		DeclarationAnnotationElementAdapter<String[]> daea1 = new EnumArrayDeclarationAnnotationElementAdapter(daa, "bar1");
-		AnnotationElementAdapter<String[]> aea1 = new MemberAnnotationElementAdapter<String[]>(this.idField(cu), daea1);
-		aea1.setValue(new String[] {"enums.TestEnum1.XXX", "enums.TestEnum1.YYY"});
-
-		DeclarationAnnotationElementAdapter<String[]> daea2 = new EnumArrayDeclarationAnnotationElementAdapter(daa, "bar2");
-		AnnotationElementAdapter<String[]> aea2 = new MemberAnnotationElementAdapter<String[]>(this.idField(cu), daea2);
-		aea2.setValue(new String[] {"enums.TestEnum2.XXX", "enums.TestEnum2.YYY"});
-
-		this.assertSourceContains("import static enums.TestEnum1.XXX;", cu);
-		this.assertSourceContains("import static enums.TestEnum1.YYY;", cu);
-		this.assertSourceDoesNotContain("import static enums.TestEnum2.XXX;", cu);
-		this.assertSourceDoesNotContain("import static enums.TestEnum2.YYY;", cu);
-		this.assertSourceContains("import enums.TestEnum2;", cu);
-		this.assertSourceContains(expected, cu);
-	}
-
-	public void testSetValueEnumArrayImportCollision4() throws Exception {
-		this.createEnum("TestEnum1", "XXX, YYY, ZZZ");
-		this.createEnum("TestEnum2", "XXX, YYY, ZZZ");
-		this.createAnnotationAndMembers("Foo", "enums.TestEnum1[] bar1();  enums.TestEnum2[] bar2();");
-		String expected = "@annot.Foo(bar1={XXX,YYY}, bar2 = { TestEnum2.XXX, TestEnum2.YYY })";
-		ICompilationUnit cu = this.createTestType("static enums.TestEnum1.*", "@annot.Foo(bar1={XXX,YYY})");
-		this.assertSourceDoesNotContain(expected, cu);
-
-		DeclarationAnnotationAdapter daa = new SimpleDeclarationAnnotationAdapter("annot.Foo");
-
-		DeclarationAnnotationElementAdapter<String[]> daea1 = new EnumArrayDeclarationAnnotationElementAdapter(daa, "bar1");
-		AnnotationElementAdapter<String[]> aea1 = new MemberAnnotationElementAdapter<String[]>(this.idField(cu), daea1);
-		assertNotNull(aea1.getValue());
-
-		DeclarationAnnotationElementAdapter<String[]> daea2 = new EnumArrayDeclarationAnnotationElementAdapter(daa, "bar2");
-		AnnotationElementAdapter<String[]> aea2 = new MemberAnnotationElementAdapter<String[]>(this.idField(cu), daea2);
-		aea2.setValue(new String[] {"enums.TestEnum2.XXX", "enums.TestEnum2.YYY"});
-
-		this.assertSourceContains("import static enums.TestEnum1.*;", cu);
-		this.assertSourceDoesNotContain("import static enums.TestEnum2.XXX;", cu);
-		this.assertSourceDoesNotContain("import static enums.TestEnum2.YYY;", cu);
-		this.assertSourceContains("import enums.TestEnum2;", cu);
-		this.assertSourceContains(expected, cu);
-	}
-
-	public void testSetValueEnumArrayImportCollision6() throws Exception {
-		this.createEnum("enums1", "TestEnum", "XXX, YYY, ZZZ");
-		this.createEnum("enums2", "TestEnum", "XXX, YYY, ZZZ");
-		this.createEnum("enums3", "TestEnum", "XXX, YYY, ZZZ");
-		this.createAnnotationAndMembers("Foo", "enums1.TestEnum[] bar1();  enums2.TestEnum[] bar2();  enums3.TestEnum[] bar3();");
-		String expected = "@Foo(bar1 = { XXX, YYY }, bar2 = { TestEnum.XXX, TestEnum.YYY }, bar3 = { enums3.TestEnum.XXX, enums3.TestEnum.YYY })";
-		ICompilationUnit cu = this.createTestType();
-		this.assertSourceDoesNotContain(expected, cu);
-
-		DeclarationAnnotationAdapter daa = new SimpleDeclarationAnnotationAdapter("annot.Foo");
-
-		DeclarationAnnotationElementAdapter<String[]> daea1 = new EnumArrayDeclarationAnnotationElementAdapter(daa, "bar1");
-		AnnotationElementAdapter<String[]> aea1 = new MemberAnnotationElementAdapter<String[]>(this.idField(cu), daea1);
-		aea1.setValue(new String[] {"enums1.TestEnum.XXX", "enums1.TestEnum.YYY"});
-
-		DeclarationAnnotationElementAdapter<String[]> daea2 = new EnumArrayDeclarationAnnotationElementAdapter(daa, "bar2");
-		AnnotationElementAdapter<String[]> aea2 = new MemberAnnotationElementAdapter<String[]>(this.idField(cu), daea2);
-		aea2.setValue(new String[] {"enums2.TestEnum.XXX", "enums2.TestEnum.YYY"});
-
-		DeclarationAnnotationElementAdapter<String[]> daea3 = new EnumArrayDeclarationAnnotationElementAdapter(daa, "bar3");
-		AnnotationElementAdapter<String[]> aea3 = new MemberAnnotationElementAdapter<String[]>(this.idField(cu), daea3);
-		aea3.setValue(new String[] {"enums3.TestEnum.XXX", "enums3.TestEnum.YYY"});
-
-		this.assertSourceContains("import static enums1.TestEnum.XXX;", cu);
-		this.assertSourceContains("import static enums1.TestEnum.YYY;", cu);
-		this.assertSourceDoesNotContain("import static enums2", cu);
-		this.assertSourceContains("import enums2.TestEnum;", cu);
-		this.assertSourceDoesNotContain("import static enums3", cu);
-		this.assertSourceDoesNotContain("import enums3", cu);
-		this.assertSourceContains(expected, cu);
-	}
-
-}
diff --git a/jpa/tests/org.eclipse.jpt.core.tests/src/org/eclipse/jpt/core/tests/internal/utility/jdt/NestedDeclarationAnnotationAdapterTests.java b/jpa/tests/org.eclipse.jpt.core.tests/src/org/eclipse/jpt/core/tests/internal/utility/jdt/NestedDeclarationAnnotationAdapterTests.java
deleted file mode 100644
index a6687e3..0000000
--- a/jpa/tests/org.eclipse.jpt.core.tests/src/org/eclipse/jpt/core/tests/internal/utility/jdt/NestedDeclarationAnnotationAdapterTests.java
+++ /dev/null
@@ -1,765 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.core.tests.internal.utility.jdt;
-
-import org.eclipse.jdt.core.ICompilationUnit;
-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.utility.jdt.MemberAnnotationAdapter;
-import org.eclipse.jpt.core.internal.utility.jdt.NestedDeclarationAnnotationAdapter;
-import org.eclipse.jpt.core.internal.utility.jdt.SimpleDeclarationAnnotationAdapter;
-import org.eclipse.jpt.core.utility.jdt.AnnotationAdapter;
-import org.eclipse.jpt.core.utility.jdt.DeclarationAnnotationAdapter;
-import org.eclipse.jpt.core.utility.jdt.Member;
-import org.eclipse.jpt.core.utility.jdt.ModifiedDeclaration;
-
-@SuppressWarnings("nls")
-public class NestedDeclarationAnnotationAdapterTests extends AnnotationTestCase {
-
-	public NestedDeclarationAnnotationAdapterTests(String name) {
-		super(name);
-	}
-
-	private void createAnnotationAndMembers(String annotationName, String annotationBody) throws Exception {
-		this.javaProject.createCompilationUnit("annot", annotationName + ".java", "public @interface " + annotationName + " { " + annotationBody + " }");
-	}
-
-	public void testAnnotation1() throws Exception {
-		this.createAnnotationAndMembers("Bar", "String value();");
-		this.createAnnotationAndMembers("Foo", "annot.Bar nestedAnnotation();");
-		ICompilationUnit cu = this.createTestType("@annot.Foo(nestedAnnotation=@annot.Bar)");
-
-		DeclarationAnnotationAdapter daa = new NestedDeclarationAnnotationAdapter(
-				new SimpleDeclarationAnnotationAdapter("annot.Foo"), "nestedAnnotation", "annot.Bar");
-		AnnotationAdapter aa = new MemberAnnotationAdapter(this.idField(cu), daa);
-		Annotation annotation = aa.getAnnotation(this.buildASTRoot(cu));
-		assertNotNull(annotation);
-		assertEquals("annot.Bar", annotation.getTypeName().getFullyQualifiedName());
-		assertTrue(annotation.isMarkerAnnotation());
-	}
-
-	public void testAnnotation2() throws Exception {
-		this.createAnnotationAndMembers("Baz", "String value();");
-		this.createAnnotationAndMembers("Bar", "annot.Baz yana();");
-		this.createAnnotationAndMembers("Foo", "annot.Bar nestedAnnotation();");
-		ICompilationUnit cu = 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(cu), daa3);
-		Annotation annotation = aa.getAnnotation(this.buildASTRoot(cu));
-		assertNotNull(annotation);
-		assertEquals("annot.Baz", annotation.getTypeName().getFullyQualifiedName());
-		assertTrue(annotation.isMarkerAnnotation());
-	}
-
-	public void testAnnotationNull1() throws Exception {
-		this.createAnnotationAndMembers("Bar", "String value();");
-		this.createAnnotationAndMembers("Foo", "annot.Bar nestedAnnotation();");
-		ICompilationUnit cu = this.createTestType("@annot.Foo()");
-
-		DeclarationAnnotationAdapter daa = new NestedDeclarationAnnotationAdapter(
-				new SimpleDeclarationAnnotationAdapter("annot.Foo"), "nestedAnnotation", "annot.Bar");
-		AnnotationAdapter aa = new MemberAnnotationAdapter(this.idField(cu), daa);
-		Annotation annotation = aa.getAnnotation(this.buildASTRoot(cu));
-		assertNull(annotation);
-	}
-
-	public void testAnnotationNull2() throws Exception {
-		this.createAnnotationAndMembers("Bar", "String value();");
-		this.createAnnotationAndMembers("Foo", "annot.Bar nestedAnnotation();");
-		ICompilationUnit cu = this.createTestType();
-
-		DeclarationAnnotationAdapter daa = new NestedDeclarationAnnotationAdapter(
-				new SimpleDeclarationAnnotationAdapter("annot.Foo"), "nestedAnnotation", "annot.Bar");
-		AnnotationAdapter aa = new MemberAnnotationAdapter(this.idField(cu), daa);
-		Annotation annotation = aa.getAnnotation(this.buildASTRoot(cu));
-		assertNull(annotation);
-	}
-
-	public void testAnnotationNull3() throws Exception {
-		this.createAnnotationAndMembers("Bar", "String value();");
-		this.createAnnotationAndMembers("Foo", "String nestedAnnotation();");
-		ICompilationUnit cu = this.createTestType("@annot.Foo(nestedAnnotation=\"annot.Bar\")");
-
-		DeclarationAnnotationAdapter daa = new NestedDeclarationAnnotationAdapter(
-				new SimpleDeclarationAnnotationAdapter("annot.Foo"), "nestedAnnotation", "annot.Bar");
-		AnnotationAdapter aa = new MemberAnnotationAdapter(this.idField(cu), daa);
-		Annotation annotation = aa.getAnnotation(this.buildASTRoot(cu));
-		assertNull(annotation);
-	}
-
-	public void testAnnotationNull4() throws Exception {
-		this.createAnnotationAndMembers("Bar", "String value();");
-		this.createAnnotationAndMembers("Bar2", "String value();");
-		this.createAnnotationAndMembers("Foo", "annot.Bar2 nestedAnnotation();");
-		ICompilationUnit cu = this.createTestType("@annot.Foo(nestedAnnotation=@annot.Bar2)");
-
-		DeclarationAnnotationAdapter daa = new NestedDeclarationAnnotationAdapter(
-				new SimpleDeclarationAnnotationAdapter("annot.Foo"), "nestedAnnotation", "annot.Bar");
-		AnnotationAdapter aa = new MemberAnnotationAdapter(this.idField(cu), daa);
-		Annotation annotation = aa.getAnnotation(this.buildASTRoot(cu));
-		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)";
-		ICompilationUnit cu = this.createTestType(na);
-		this.assertSourceContains(na, cu);
-
-		DeclarationAnnotationAdapter daa = new NestedDeclarationAnnotationAdapter(
-				new SimpleDeclarationAnnotationAdapter("annot.Foo"), "nestedAnnotation", "annot.Bar");
-		AnnotationAdapter aa = new MemberAnnotationAdapter(this.idField(cu), daa);
-		Annotation annotation = aa.getAnnotation(this.buildASTRoot(cu));
-		assertNotNull(annotation);
-
-		aa.removeAnnotation();
-		this.assertSourceDoesNotContain(na, cu);
-		this.assertSourceDoesNotContain("Foo", cu);
-	}
-
-	public void testRemoveAnnotation1a() throws Exception {
-		this.createAnnotationAndMembers("Bar", "String value();");
-		this.createAnnotationAndMembers("Foo", "annot.Bar nestedAnnotation();");
-		String na = "@annot.Foo(nestedAnnotation=@annot.Bar)";
-		ICompilationUnit cu = this.createTestType(na);
-		this.assertSourceContains(na, cu);
-
-		DeclarationAnnotationAdapter daa = new NestedDeclarationAnnotationAdapter(
-				new SimpleDeclarationAnnotationAdapter("annot.Foo"), "nestedAnnotation", "annot.Bar", false);
-		AnnotationAdapter aa = new MemberAnnotationAdapter(this.idField(cu), daa);
-		Annotation annotation = aa.getAnnotation(this.buildASTRoot(cu));
-		assertNotNull(annotation);
-
-		aa.removeAnnotation();
-		this.assertSourceDoesNotContain(na, cu);
-		this.assertSourceContains("Foo", cu);
-	}
-
-	public void testRemoveAnnotation2() throws Exception {
-		this.createAnnotationAndMembers("Bar", "String value();");
-		this.createAnnotationAndMembers("Foo", "annot.Bar nestedAnnotation();");
-		ICompilationUnit cu = this.createTestType();
-		this.assertSourceDoesNotContain("Foo", cu);
-
-		DeclarationAnnotationAdapter daa = new NestedDeclarationAnnotationAdapter(
-				new SimpleDeclarationAnnotationAdapter("annot.Foo"), "nestedAnnotation", "annot.Bar");
-		AnnotationAdapter aa = new MemberAnnotationAdapter(this.idField(cu), daa);
-		Annotation annotation = aa.getAnnotation(this.buildASTRoot(cu));
-		assertNull(annotation);
-
-		aa.removeAnnotation();
-		this.assertSourceDoesNotContain("Foo", cu);
-	}
-
-	public void testRemoveAnnotation3() throws Exception {
-		this.createAnnotationAndMembers("Bar", "String value();");
-		this.createAnnotationAndMembers("Foo", "String nestedAnnotation();");
-		String na = "@annot.Foo(nestedAnnotation=\"annot.Bar\")";
-		ICompilationUnit cu = this.createTestType(na);
-		this.assertSourceContains(na, cu);
-
-		DeclarationAnnotationAdapter daa = new NestedDeclarationAnnotationAdapter(
-				new SimpleDeclarationAnnotationAdapter("annot.Foo"), "nestedAnnotation", "annot.Bar");
-		AnnotationAdapter aa = new MemberAnnotationAdapter(this.idField(cu), daa);
-		Annotation annotation = aa.getAnnotation(this.buildASTRoot(cu));
-		assertNull(annotation);
-
-		aa.removeAnnotation();
-		this.assertSourceContains(na, cu);
-	}
-
-	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)";
-		ICompilationUnit cu = this.createTestType(na);
-		this.assertSourceContains(na, cu);
-
-		DeclarationAnnotationAdapter daa = new NestedDeclarationAnnotationAdapter(
-				new SimpleDeclarationAnnotationAdapter("annot.Foo"), "nestedAnnotation", "annot.Bar");
-		AnnotationAdapter aa = new MemberAnnotationAdapter(this.idField(cu), daa);
-		Annotation annotation = aa.getAnnotation(this.buildASTRoot(cu));
-		assertNull(annotation);
-
-		aa.removeAnnotation();
-		this.assertSourceContains(na, cu);
-	}
-
-	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))";
-		ICompilationUnit cu = this.createTestType(na);
-		this.assertSourceContains(na, cu);
-
-		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(cu), daa);
-		Annotation annotation = aa.getAnnotation(this.buildASTRoot(cu));
-		assertNotNull(annotation);
-
-		aa.removeAnnotation();
-		this.assertSourceDoesNotContain(na, cu);
-		this.assertSourceDoesNotContain("Foo", cu);
-		this.assertSourceDoesNotContain("Bar", cu);
-		this.assertSourceDoesNotContain("Baz", cu);
-	}
-
-	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))";
-		ICompilationUnit cu = this.createTestType(na);
-		this.assertSourceContains(na, cu);
-
-		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(cu), daa);
-		Annotation annotation = aa.getAnnotation(this.buildASTRoot(cu));
-		assertNotNull(annotation);
-
-		aa.removeAnnotation();
-		this.assertSourceDoesNotContain(na, cu);
-		this.assertSourceContains("@annot.Foo(nestedAnnotation1=@Bar)", cu);
-	}
-
-	public void testNewMarkerAnnotation1() throws Exception {
-		this.createAnnotationAndMembers("Bar", "String value();");
-		this.createAnnotationAndMembers("Foo", "annot.Bar nestedAnnotation();");
-		ICompilationUnit cu = this.createTestType();
-		this.assertSourceDoesNotContain("Foo", cu);
-
-		DeclarationAnnotationAdapter daa = new NestedDeclarationAnnotationAdapter(
-				new SimpleDeclarationAnnotationAdapter("annot.Foo"), "nestedAnnotation", "annot.Bar");
-		AnnotationAdapter aa = new MemberAnnotationAdapter(this.idField(cu), daa);
-		Annotation annotation = aa.getAnnotation(this.buildASTRoot(cu));
-		assertNull(annotation);
-
-		aa.newMarkerAnnotation();
-		this.assertSourceContains("@Foo(nestedAnnotation = @Bar)", cu);
-	}
-
-	public void testNewMarkerAnnotation2() throws Exception {
-		this.createAnnotationAndMembers("Bar", "String value();");
-		this.createAnnotationAndMembers("Foo", "annot.Bar value();");
-		ICompilationUnit cu = this.createTestType();
-		this.assertSourceDoesNotContain("Foo", cu);
-
-		DeclarationAnnotationAdapter daa = new NestedDeclarationAnnotationAdapter(
-				new SimpleDeclarationAnnotationAdapter("annot.Foo"), "value", "annot.Bar");
-		AnnotationAdapter aa = new MemberAnnotationAdapter(this.idField(cu), daa);
-		Annotation annotation = aa.getAnnotation(this.buildASTRoot(cu));
-		assertNull(annotation);
-
-		aa.newMarkerAnnotation();
-		this.assertSourceContains("@Foo(@Bar)", cu);
-	}
-
-	public void testNewMarkerAnnotation3() throws Exception {
-		this.createAnnotationAndMembers("Bar", "String value();");
-		this.createAnnotationAndMembers("Foo", "annot.Bar nestedAnnotation();");
-		ICompilationUnit cu = this.createTestType("@annot.Foo");
-		String expected = "@Foo(nestedAnnotation = @Bar)";
-		this.assertSourceDoesNotContain(expected, cu);
-
-		DeclarationAnnotationAdapter daa = new NestedDeclarationAnnotationAdapter(
-				new SimpleDeclarationAnnotationAdapter("annot.Foo"), "nestedAnnotation", "annot.Bar");
-		AnnotationAdapter aa = new MemberAnnotationAdapter(this.idField(cu), daa);
-		Annotation annotation = aa.getAnnotation(this.buildASTRoot(cu));
-		assertNull(annotation);
-
-		aa.newMarkerAnnotation();
-		this.assertSourceContains(expected, cu);
-	}
-
-	public void testNewMarkerAnnotation4() throws Exception {
-		this.createAnnotationAndMembers("Bar", "String value();");
-		this.createAnnotationAndMembers("Foo", "annot.Bar value();");
-		ICompilationUnit cu = this.createTestType("@annot.Foo");
-		String expected = "@Foo(@Bar)";
-		this.assertSourceDoesNotContain(expected, cu);
-
-		DeclarationAnnotationAdapter daa = new NestedDeclarationAnnotationAdapter(
-				new SimpleDeclarationAnnotationAdapter("annot.Foo"), "value", "annot.Bar");
-		AnnotationAdapter aa = new MemberAnnotationAdapter(this.idField(cu), daa);
-		Annotation annotation = aa.getAnnotation(this.buildASTRoot(cu));
-		assertNull(annotation);
-
-		aa.newMarkerAnnotation();
-		this.assertSourceContains(expected, cu);
-	}
-
-	public void testNewMarkerAnnotation5() throws Exception {
-		this.createAnnotationAndMembers("Bar", "String value();");
-		this.createAnnotationAndMembers("Foo", "annot.Bar nestedAnnotation(); String value();");
-		ICompilationUnit cu = this.createTestType("@annot.Foo(\"something\")");
-		String expected = "@Foo(value = \"something\", nestedAnnotation = @Bar)";
-		this.assertSourceDoesNotContain(expected, cu);
-
-		DeclarationAnnotationAdapter daa = new NestedDeclarationAnnotationAdapter(
-				new SimpleDeclarationAnnotationAdapter("annot.Foo"), "nestedAnnotation", "annot.Bar");
-		AnnotationAdapter aa = new MemberAnnotationAdapter(this.idField(cu), daa);
-		Annotation annotation = aa.getAnnotation(this.buildASTRoot(cu));
-		assertNull(annotation);
-
-		aa.newMarkerAnnotation();
-		this.assertSourceContains(expected, cu);
-	}
-
-	public void testNewMarkerAnnotation6() throws Exception {
-		this.createAnnotationAndMembers("Bar", "String value();");
-		this.createAnnotationAndMembers("Foo", "Object value();");
-		ICompilationUnit cu = this.createTestType("@annot.Foo(\"something\")");
-		String expected = "@annot.Foo(@Bar)";
-		this.assertSourceDoesNotContain(expected, cu);
-
-		DeclarationAnnotationAdapter daa = new NestedDeclarationAnnotationAdapter(
-				new SimpleDeclarationAnnotationAdapter("annot.Foo"), "value", "annot.Bar");
-		AnnotationAdapter aa = new MemberAnnotationAdapter(this.idField(cu), daa);
-		Annotation annotation = aa.getAnnotation(this.buildASTRoot(cu));
-		assertNull(annotation);
-
-		aa.newMarkerAnnotation();
-		this.assertSourceContains(expected, cu);
-	}
-
-	public void testNewMarkerAnnotation7() throws Exception {
-		this.createAnnotationAndMembers("Bar", "String value();");
-		this.createAnnotationAndMembers("Foo", "String xxx(); annot.Bar nestedAnnotation();");
-		ICompilationUnit cu = this.createTestType("@annot.Foo(xxx=\"something\")");
-		String expected = "@annot.Foo(xxx=\"something\", nestedAnnotation = @Bar)";
-		this.assertSourceDoesNotContain(expected, cu);
-
-		DeclarationAnnotationAdapter daa = new NestedDeclarationAnnotationAdapter(
-				new SimpleDeclarationAnnotationAdapter("annot.Foo"), "nestedAnnotation", "annot.Bar");
-		AnnotationAdapter aa = new MemberAnnotationAdapter(this.idField(cu), daa);
-		Annotation annotation = aa.getAnnotation(this.buildASTRoot(cu));
-		assertNull(annotation);
-
-		aa.newMarkerAnnotation();
-		this.assertSourceContains(expected, cu);
-	}
-
-	public void testNewMarkerAnnotation8() throws Exception {
-		this.createAnnotationAndMembers("Bar", "String value();");
-		this.createAnnotationAndMembers("Foo", "String xxx(); annot.Bar value();");
-		ICompilationUnit cu = this.createTestType("@annot.Foo(xxx=\"something\")");
-		String expected = "@annot.Foo(xxx=\"something\", value = @Bar)";
-		this.assertSourceDoesNotContain(expected, cu);
-
-		DeclarationAnnotationAdapter daa = new NestedDeclarationAnnotationAdapter(
-				new SimpleDeclarationAnnotationAdapter("annot.Foo"), "value", "annot.Bar");
-		AnnotationAdapter aa = new MemberAnnotationAdapter(this.idField(cu), daa);
-		Annotation annotation = aa.getAnnotation(this.buildASTRoot(cu));
-		assertNull(annotation);
-
-		aa.newMarkerAnnotation();
-		this.assertSourceContains(expected, cu);
-	}
-
-	public void testNewSingleMemberAnnotation1() throws Exception {
-		this.createAnnotationAndMembers("Bar", "String value();");
-		this.createAnnotationAndMembers("Foo", "annot.Bar nestedAnnotation();");
-		ICompilationUnit cu = this.createTestType();
-		this.assertSourceDoesNotContain("Foo", cu);
-		this.idField(cu).edit(new Member.Editor() {
-			public void edit(ModifiedDeclaration declaration) {
-				NestedDeclarationAnnotationAdapterTests.this.editNewSingleMemberAnnotation1(declaration);
-			}
-		});
-		this.assertSourceContains("@Foo(nestedAnnotation = @Bar(\"test string literal\"))", cu);
-	}
-
-	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();");
-		ICompilationUnit cu = this.createTestType();
-		this.assertSourceDoesNotContain("Foo", cu);
-
-		DeclarationAnnotationAdapter daa = new NestedDeclarationAnnotationAdapter(
-				new SimpleDeclarationAnnotationAdapter("annot.Foo"), "value", "annot.Bar");
-		AnnotationAdapter aa = new MemberAnnotationAdapter(this.idField(cu), daa);
-		SingleMemberAnnotation annotation = (SingleMemberAnnotation) aa.getAnnotation(this.buildASTRoot(cu));
-		assertNull(annotation);
-
-		this.idField(cu).edit(new Member.Editor() {
-			public void edit(ModifiedDeclaration declaration) {
-				NestedDeclarationAnnotationAdapterTests.this.editNewSingleMemberAnnotation2(declaration);
-			}
-		});
-		this.assertSourceContains("@Foo(@Bar(\"test string literal\"))", cu);
-	}
-
-	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();");
-		ICompilationUnit cu = this.createTestType("@annot.Foo");
-		String expected = "@Foo(nestedAnnotation = @Bar(\"test string literal\"))";
-		this.assertSourceDoesNotContain(expected, cu);
-		this.idField(cu).edit(new Member.Editor() {
-			public void edit(ModifiedDeclaration declaration) {
-				NestedDeclarationAnnotationAdapterTests.this.editNewSingleMemberAnnotation3(declaration);
-			}
-		});
-		this.assertSourceContains(expected, cu);
-	}
-
-	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();");
-		ICompilationUnit cu = this.createTestType("@annot.Foo");
-		String expected = "@Foo(@Bar(\"test string literal\"))";
-		this.assertSourceDoesNotContain(expected, cu);
-		this.idField(cu).edit(new Member.Editor() {
-			public void edit(ModifiedDeclaration declaration) {
-				NestedDeclarationAnnotationAdapterTests.this.editNewSingleMemberAnnotation4(declaration);
-			}
-		});
-		this.assertSourceContains(expected, cu);
-	}
-
-	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();");
-		ICompilationUnit cu = this.createTestType("@annot.Foo(\"something\")");
-		String expected = "@Foo(value = \"something\", nestedAnnotation = @Bar(\"test string literal\"))";
-		this.assertSourceDoesNotContain(expected, cu);
-		this.idField(cu).edit(new Member.Editor() {
-			public void edit(ModifiedDeclaration declaration) {
-				NestedDeclarationAnnotationAdapterTests.this.editNewSingleMemberAnnotation5(declaration);
-			}
-		});
-		this.assertSourceContains(expected, cu);
-	}
-
-	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();");
-		ICompilationUnit cu = this.createTestType("@annot.Foo(\"something\")");
-		String expected = "@annot.Foo(@Bar(\"test string literal\"))";
-		this.assertSourceDoesNotContain(expected, cu);
-		this.idField(cu).edit(new Member.Editor() {
-			public void edit(ModifiedDeclaration declaration) {
-				NestedDeclarationAnnotationAdapterTests.this.editNewSingleMemberAnnotation6(declaration);
-			}
-		});
-		this.assertSourceContains(expected, cu);
-	}
-
-	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();");
-		ICompilationUnit cu = this.createTestType("@annot.Foo(xxx=\"something\")");
-		String expected = "@annot.Foo(xxx=\"something\", nestedAnnotation = @Bar(\"test string literal\"))";
-		this.assertSourceDoesNotContain(expected, cu);
-		this.idField(cu).edit(new Member.Editor() {
-			public void edit(ModifiedDeclaration declaration) {
-				NestedDeclarationAnnotationAdapterTests.this.editNewSingleMemberAnnotation7(declaration);
-			}
-		});
-		this.assertSourceContains(expected, cu);
-	}
-
-	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();");
-		ICompilationUnit cu = this.createTestType("@annot.Foo(xxx=\"something\")");
-		String expected = "@annot.Foo(xxx=\"something\", value = @Bar(\"test string literal\"))";
-		this.assertSourceDoesNotContain(expected, cu);
-		this.idField(cu).edit(new Member.Editor() {
-			public void edit(ModifiedDeclaration declaration) {
-				NestedDeclarationAnnotationAdapterTests.this.editNewSingleMemberAnnotation8(declaration);
-			}
-		});
-		this.assertSourceContains(expected, cu);
-	}
-
-	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();");
-		ICompilationUnit cu = this.createTestType();
-		this.assertSourceDoesNotContain("Foo", cu);
-		this.idField(cu).edit(new Member.Editor() {
-			public void edit(ModifiedDeclaration declaration) {
-				NestedDeclarationAnnotationAdapterTests.this.editNewNormalAnnotation1(declaration);
-			}
-		});
-		this.assertSourceContains("@Foo(nestedAnnotation = @Bar(yyy = \"test string literal\"))", cu);
-	}
-
-	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();");
-		ICompilationUnit cu = this.createTestType();
-		this.assertSourceDoesNotContain("Foo", cu);
-		this.idField(cu).edit(new Member.Editor() {
-			public void edit(ModifiedDeclaration declaration) {
-				NestedDeclarationAnnotationAdapterTests.this.editNewNormalAnnotation2(declaration);
-			}
-		});
-		this.assertSourceContains("@Foo(@Bar(yyy = \"test string literal\"))", cu);
-	}
-
-	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();");
-		ICompilationUnit cu = this.createTestType("@annot.Foo");
-		String expected = "@Foo(nestedAnnotation = @Bar(yyy = \"test string literal\"))";
-		this.assertSourceDoesNotContain(expected, cu);
-		this.idField(cu).edit(new Member.Editor() {
-			public void edit(ModifiedDeclaration declaration) {
-				NestedDeclarationAnnotationAdapterTests.this.editNewNormalAnnotation3(declaration);
-			}
-		});
-		this.assertSourceContains(expected, cu);
-	}
-
-	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();");
-		ICompilationUnit cu = this.createTestType("@annot.Foo");
-		String expected = "@Foo(@Bar(yyy = \"test string literal\"))";
-		this.assertSourceDoesNotContain(expected, cu);
-		this.idField(cu).edit(new Member.Editor() {
-			public void edit(ModifiedDeclaration declaration) {
-				NestedDeclarationAnnotationAdapterTests.this.editNewNormalAnnotation4(declaration);
-			}
-		});
-		this.assertSourceContains(expected, cu);
-	}
-
-	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();");
-		ICompilationUnit cu = this.createTestType("@annot.Foo(\"something\")");
-		String expected = "@Foo(value = \"something\", nestedAnnotation = @Bar(yyy = \"test string literal\"))";
-		this.assertSourceDoesNotContain(expected, cu);
-		this.idField(cu).edit(new Member.Editor() {
-			public void edit(ModifiedDeclaration declaration) {
-				NestedDeclarationAnnotationAdapterTests.this.editNewNormalAnnotation5(declaration);
-			}
-		});
-		this.assertSourceContains(expected, cu);
-	}
-
-	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();");
-		ICompilationUnit cu = this.createTestType("@annot.Foo(\"something\")");
-		String expected = "@annot.Foo(@Bar(yyy = \"test string literal\"))";
-		this.assertSourceDoesNotContain(expected, cu);
-		this.idField(cu).edit(new Member.Editor() {
-			public void edit(ModifiedDeclaration declaration) {
-				NestedDeclarationAnnotationAdapterTests.this.editNewNormalAnnotation6(declaration);
-			}
-		});
-		this.assertSourceContains(expected, cu);
-	}
-
-	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();");
-		ICompilationUnit cu = this.createTestType("@annot.Foo(xxx=\"something\")");
-		String expected = "@annot.Foo(xxx=\"something\", nestedAnnotation = @Bar(yyy = \"test string literal\"))";
-		this.assertSourceDoesNotContain(expected, cu);
-		this.idField(cu).edit(new Member.Editor() {
-			public void edit(ModifiedDeclaration declaration) {
-				NestedDeclarationAnnotationAdapterTests.this.editNewNormalAnnotation7(declaration);
-			}
-		});
-		this.assertSourceContains(expected, cu);
-	}
-
-	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();");
-		ICompilationUnit cu = this.createTestType("@annot.Foo(xxx=\"something\")");
-		String expected = "@annot.Foo(xxx=\"something\", value = @Bar(yyy = \"test string literal\"))";
-		this.assertSourceDoesNotContain(expected, cu);
-		this.idField(cu).edit(new Member.Editor() {
-			public void edit(ModifiedDeclaration declaration) {
-				NestedDeclarationAnnotationAdapterTests.this.editNewNormalAnnotation8(declaration);
-			}
-		});
-		this.assertSourceContains(expected, cu);
-	}
-
-	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/utility/jdt/NestedIndexedDeclarationAnnotationAdapterTests.java b/jpa/tests/org.eclipse.jpt.core.tests/src/org/eclipse/jpt/core/tests/internal/utility/jdt/NestedIndexedDeclarationAnnotationAdapterTests.java
deleted file mode 100644
index 383ad73..0000000
--- a/jpa/tests/org.eclipse.jpt.core.tests/src/org/eclipse/jpt/core/tests/internal/utility/jdt/NestedIndexedDeclarationAnnotationAdapterTests.java
+++ /dev/null
@@ -1,2229 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.core.tests.internal.utility.jdt;
-
-import org.eclipse.jdt.core.ICompilationUnit;
-import org.eclipse.jdt.core.dom.ASTNode;
-import org.eclipse.jdt.core.dom.Annotation;
-import org.eclipse.jdt.core.dom.CompilationUnit;
-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.utility.jdt.MemberAnnotationAdapter;
-import org.eclipse.jpt.core.internal.utility.jdt.MemberIndexedAnnotationAdapter;
-import org.eclipse.jpt.core.internal.utility.jdt.NestedIndexedDeclarationAnnotationAdapter;
-import org.eclipse.jpt.core.internal.utility.jdt.SimpleDeclarationAnnotationAdapter;
-import org.eclipse.jpt.core.utility.jdt.AnnotationAdapter;
-import org.eclipse.jpt.core.utility.jdt.DeclarationAnnotationAdapter;
-import org.eclipse.jpt.core.utility.jdt.IndexedAnnotationAdapter;
-import org.eclipse.jpt.core.utility.jdt.IndexedDeclarationAnnotationAdapter;
-import org.eclipse.jpt.core.utility.jdt.Member;
-import org.eclipse.jpt.core.utility.jdt.ModifiedDeclaration;
-
-@SuppressWarnings("nls")
-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.createCompilationUnit("annot", annotationName + ".java", "public @interface " + annotationName + " { " + annotationBody + " }");
-	}
-
-	public void testAnnotation1() throws Exception {
-		this.createAnnotationAndMembers("Bar", "String value();");
-		this.createAnnotationAndMembers("Foo", "annot.Bar[] nestedAnnotations();");
-		ICompilationUnit cu = 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(cu), daa);
-		CompilationUnit astRoot = this.buildASTRoot(cu);
-		Annotation annotation = aa.getAnnotation(astRoot);
-		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(cu), daa);
-		annotation = aa.getAnnotation(astRoot);
-		assertNotNull(annotation);
-		assertEquals("annot.Bar", annotation.getTypeName().getFullyQualifiedName());
-		assertTrue(annotation.isSingleMemberAnnotation());
-	}
-
-	public void testAnnotation2() throws Exception {
-		this.createAnnotation("Baz");
-		this.createAnnotationAndMembers("Bar", "annot.Baz[] yana();");
-		this.createAnnotationAndMembers("Foo", "annot.Bar[] nestedAnnotations();");
-		ICompilationUnit cu = 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(cu), daa3);
-		Annotation annotation = aa.getAnnotation(this.buildASTRoot(cu));
-		assertNotNull(annotation);
-		assertEquals("annot.Baz", annotation.getTypeName().getFullyQualifiedName());
-		assertTrue(annotation.isMarkerAnnotation());
-	}
-
-	public void testAnnotation3() throws Exception {
-		this.createAnnotation("Baz");
-		this.createAnnotationAndMembers("Bar", "annot.Baz[] yana();");
-		this.createAnnotationAndMembers("Foo", "annot.Bar[] nestedAnnotations();");
-		ICompilationUnit cu = 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(cu), daa3);
-		CompilationUnit astRoot = this.buildASTRoot(cu);
-		Annotation annotation = aa.getAnnotation(astRoot);
-		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(cu), daa3);
-		annotation = aa.getAnnotation(astRoot);
-		assertNull(annotation);
-	}
-
-	public void testAnnotationNull1() throws Exception {
-		this.createAnnotation("Bar");
-		this.createAnnotationAndMembers("Foo", "annot.Bar[] nestedAnnotations();");
-		ICompilationUnit cu = this.createTestType("@annot.Foo()");
-		DeclarationAnnotationAdapter daa = new NestedIndexedDeclarationAnnotationAdapter(
-				new SimpleDeclarationAnnotationAdapter("annot.Foo"), "nestedAnnotations", 0, "annot.Bar");
-		AnnotationAdapter aa = new MemberAnnotationAdapter(this.idField(cu), daa);
-		Annotation annotation = aa.getAnnotation(this.buildASTRoot(cu));
-		assertNull(annotation);
-	}
-
-	public void testAnnotationNull2() throws Exception {
-		this.createAnnotation("Bar");
-		this.createAnnotationAndMembers("Foo", "annot.Bar[] nestedAnnotations();");
-		ICompilationUnit cu = this.createTestType();
-		DeclarationAnnotationAdapter daa = new NestedIndexedDeclarationAnnotationAdapter(
-				new SimpleDeclarationAnnotationAdapter("annot.Foo"), "nestedAnnotations", 0, "annot.Bar");
-		AnnotationAdapter aa = new MemberAnnotationAdapter(this.idField(cu), daa);
-		Annotation annotation = aa.getAnnotation(this.buildASTRoot(cu));
-		assertNull(annotation);
-	}
-
-	public void testAnnotationNull3() throws Exception {
-		this.createAnnotation("Bar");
-		this.createAnnotationAndMembers("Foo", "annot.Bar[] nestedAnnotations();");
-		ICompilationUnit cu = 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(cu), daa);
-		Annotation annotation = aa.getAnnotation(this.buildASTRoot(cu));
-		assertNull(annotation);
-	}
-
-	public void testAnnotationNull4() throws Exception {
-		this.createAnnotation("NotBar");
-		this.createAnnotation("Bar");
-		this.createAnnotationAndMembers("Foo", "annot.Bar[] nestedAnnotations();");
-		ICompilationUnit cu = 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(cu), daa);
-		Annotation annotation = aa.getAnnotation(this.buildASTRoot(cu));
-		assertNull(annotation);
-	}
-
-	public void testAnnotationNull5() throws Exception {
-		this.createAnnotationAndMembers("Bar", "String value();");
-		this.createAnnotationAndMembers("Foo", "annot.Bar[] nestedAnnotations();");
-		ICompilationUnit cu = 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(cu), daa);
-		Annotation annotation = aa.getAnnotation(this.buildASTRoot(cu));
-		assertNull(annotation);
-	}
-
-	public void testAnnotationNull6() throws Exception {
-		this.createAnnotation("Xyz");
-		this.createAnnotation("Baz");
-		this.createAnnotationAndMembers("Bar", "annot.Baz[] yana();");
-		this.createAnnotationAndMembers("Foo", "annot.Bar[] nestedAnnotations();");
-		ICompilationUnit cu = 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(cu), daa3);
-		Annotation annotation = aa.getAnnotation(this.buildASTRoot(cu));
-		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)})";
-		ICompilationUnit cu = this.createTestType(na);
-		this.assertSourceDoesNotContain(expected, cu);
-		this.assertSourceContains(na, cu);
-
-		DeclarationAnnotationAdapter daa1 = new SimpleDeclarationAnnotationAdapter("annot.Foo");
-		DeclarationAnnotationAdapter daa2 = new NestedIndexedDeclarationAnnotationAdapter(daa1, "nestedAnnotations", 0, "annot.Bar");
-		AnnotationAdapter aa = new MemberAnnotationAdapter(this.idField(cu), daa2);
-		Annotation annotation = aa.getAnnotation(this.buildASTRoot(cu));
-		assertNotNull(annotation);
-
-		aa.removeAnnotation();
-		this.assertSourceDoesNotContain(na, cu);
-		this.assertSourceContains(expected, cu);
-	}
-
-	public void testRemoveAnnotation2() throws Exception {
-		this.createAnnotationAndMembers("Bar", "int value();");
-		this.createAnnotationAndMembers("Foo", "annot.Bar[] nestedAnnotations();");
-		ICompilationUnit cu = this.createTestType();
-		this.assertSourceDoesNotContain("Foo", cu);
-
-		DeclarationAnnotationAdapter daa = new NestedIndexedDeclarationAnnotationAdapter(
-				new SimpleDeclarationAnnotationAdapter("annot.Foo"), "nestedAnnotations", 0, "annot.Bar");
-		AnnotationAdapter aa = new MemberAnnotationAdapter(this.idField(cu), daa);
-		Annotation annotation = aa.getAnnotation(this.buildASTRoot(cu));
-		assertNull(annotation);
-
-		aa.removeAnnotation();
-		this.assertSourceDoesNotContain("Foo", cu);
-	}
-
-	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\"})";
-		ICompilationUnit cu = this.createTestType(na);
-		this.assertSourceContains(na, cu);
-
-		DeclarationAnnotationAdapter daa = new NestedIndexedDeclarationAnnotationAdapter(
-				new SimpleDeclarationAnnotationAdapter("annot.Foo"), "nestedAnnotations", 0, "annot.Bar");
-		AnnotationAdapter aa = new MemberAnnotationAdapter(this.idField(cu), daa);
-		Annotation annotation = aa.getAnnotation(this.buildASTRoot(cu));
-		assertNull(annotation);
-
-		aa.removeAnnotation();
-		this.assertSourceContains(na, cu);
-	}
-
-	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)})";
-		ICompilationUnit cu = this.createTestType(na);
-		this.assertSourceContains(na, cu);
-
-		DeclarationAnnotationAdapter daa = new NestedIndexedDeclarationAnnotationAdapter(
-				new SimpleDeclarationAnnotationAdapter("annot.Foo"), "nestedAnnotations", 0, "annot.Bar");
-		AnnotationAdapter aa = new MemberAnnotationAdapter(this.idField(cu), daa);
-		Annotation annotation = aa.getAnnotation(this.buildASTRoot(cu));
-		assertNull(annotation);
-
-		aa.removeAnnotation();
-		this.assertSourceContains(na, cu);
-	}
-
-	public void testRemoveAnnotation5() throws Exception {
-		this.createAnnotationAndMembers("Bar", "int value();");
-		this.createAnnotationAndMembers("Foo", "annot.Bar[] nestedAnnotations();");
-		String na = "@annot.Foo(nestedAnnotations=@annot.Bar)";
-		ICompilationUnit cu = this.createTestType(na);
-		this.assertSourceContains(na, cu);
-
-		DeclarationAnnotationAdapter daa1 = new SimpleDeclarationAnnotationAdapter("annot.Foo");
-		DeclarationAnnotationAdapter daa2 = new NestedIndexedDeclarationAnnotationAdapter(daa1, "nestedAnnotations", 0, "annot.Bar");
-		AnnotationAdapter aa = new MemberAnnotationAdapter(this.idField(cu), daa2);
-		Annotation annotation = aa.getAnnotation(this.buildASTRoot(cu));
-		assertNotNull(annotation);
-
-		aa.removeAnnotation();
-		assertNull(aa.getAnnotation(this.buildASTRoot(cu)));
-		this.assertSourceDoesNotContain(na, cu);
-		this.assertSourceDoesNotContain("Foo", cu);
-	}
-
-	public void testRemoveAnnotation5a() throws Exception {
-		this.createAnnotationAndMembers("Bar", "int value();");
-		this.createAnnotationAndMembers("Foo", "annot.Bar[] nestedAnnotations();");
-		String na = "@annot.Foo(nestedAnnotations=@annot.Bar)";
-		ICompilationUnit cu = this.createTestType(na);
-		this.assertSourceContains(na, cu);
-
-		DeclarationAnnotationAdapter daa1 = new SimpleDeclarationAnnotationAdapter("annot.Foo");
-		AnnotationAdapter aa1 = new MemberAnnotationAdapter(this.idField(cu), daa1);
-		DeclarationAnnotationAdapter daa2 = new NestedIndexedDeclarationAnnotationAdapter(daa1, "nestedAnnotations", 0, "annot.Bar", false);
-		AnnotationAdapter aa2 = new MemberAnnotationAdapter(this.idField(cu), daa2);
-		Annotation annotation = aa2.getAnnotation(this.buildASTRoot(cu));
-		assertNotNull(annotation);
-
-		aa2.removeAnnotation();
-		assertTrue(aa1.getAnnotation(this.buildASTRoot(cu)).isMarkerAnnotation());
-		this.assertSourceDoesNotContain(na, cu);
-		this.assertSourceContains("import annot.Foo;", cu);
-		this.assertSourceContains("@Foo", cu);
-	}
-
-	public void testRemoveAnnotation6() throws Exception {
-		this.createAnnotationAndMembers("Bar", "int value();");
-		this.createAnnotationAndMembers("Foo", "String[] nestedAnnotations();");
-		String na = "@annot.Foo(nestedAnnotations=\"annot.Bar\")";
-		ICompilationUnit cu = this.createTestType(na);
-		this.assertSourceContains(na, cu);
-
-		DeclarationAnnotationAdapter daa = new NestedIndexedDeclarationAnnotationAdapter(
-				new SimpleDeclarationAnnotationAdapter("annot.Foo"), "nestedAnnotations", 0, "annot.Bar");
-		AnnotationAdapter aa = new MemberAnnotationAdapter(this.idField(cu), daa);
-		Annotation annotation = aa.getAnnotation(this.buildASTRoot(cu));
-		assertNull(annotation);
-
-		aa.removeAnnotation();
-		this.assertSourceContains(na, cu);
-	}
-
-	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)";
-		ICompilationUnit cu = this.createTestType(na);
-		this.assertSourceContains(na, cu);
-
-		DeclarationAnnotationAdapter daa = new NestedIndexedDeclarationAnnotationAdapter(
-				new SimpleDeclarationAnnotationAdapter("annot.Foo"), "nestedAnnotations", 0, "annot.Bar");
-		AnnotationAdapter aa = new MemberAnnotationAdapter(this.idField(cu), daa);
-		Annotation annotation = aa.getAnnotation(this.buildASTRoot(cu));
-		assertNull(annotation);
-
-		aa.removeAnnotation();
-		this.assertSourceContains(na, cu);
-	}
-
-	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)})";
-		ICompilationUnit cu = this.createTestType(na);
-		this.assertSourceContains(na, cu);
-
-		DeclarationAnnotationAdapter daa1 = new SimpleDeclarationAnnotationAdapter("annot.Foo");
-		AnnotationAdapter aa1 = new MemberAnnotationAdapter(this.idField(cu), daa1);
-		DeclarationAnnotationAdapter daa2 = new NestedIndexedDeclarationAnnotationAdapter(daa1, "nestedAnnotations", 2, "annot.Bar");
-		AnnotationAdapter aa2 = new MemberAnnotationAdapter(this.idField(cu), daa2);
-		CompilationUnit astRoot = this.buildASTRoot(cu);
-		Annotation annotation = aa2.getAnnotation(astRoot);
-		assertNotNull(annotation);
-
-		aa2.removeAnnotation();
-		assertTrue(aa1.getAnnotation(astRoot).isNormalAnnotation());
-		assertEquals(ASTNode.ARRAY_INITIALIZER, this.annotationElementValue(aa1.getAnnotation(astRoot), "nestedAnnotations").getNodeType());
-		this.assertSourceDoesNotContain(na, cu);
-		this.assertSourceContains("@annot.Foo(nestedAnnotations={@annot.Bar(0), @annot.Bar(1), null, @annot.Bar(3)})", cu);
-	}
-
-	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)})";
-		ICompilationUnit cu = this.createTestType(na);
-		this.assertSourceContains(na, cu);
-
-		DeclarationAnnotationAdapter daa1 = new SimpleDeclarationAnnotationAdapter("annot.Foo");
-		AnnotationAdapter aa1 = new MemberAnnotationAdapter(this.idField(cu), daa1);
-		DeclarationAnnotationAdapter daa2 = new NestedIndexedDeclarationAnnotationAdapter(daa1, "value", 2, "annot.Bar");
-		AnnotationAdapter aa2 = new MemberAnnotationAdapter(this.idField(cu), daa2);
-		CompilationUnit astRoot = this.buildASTRoot(cu);
-		Annotation annotation = aa2.getAnnotation(astRoot);
-		assertNotNull(annotation);
-
-		aa2.removeAnnotation();
-		assertTrue(aa1.getAnnotation(astRoot).isSingleMemberAnnotation());
-		assertEquals(ASTNode.ARRAY_INITIALIZER, this.annotationElementValue(aa1.getAnnotation(astRoot), "value").getNodeType());
-		this.assertSourceDoesNotContain(na, cu);
-		this.assertSourceContains("@annot.Foo({@annot.Bar(0), @annot.Bar(1), null, @annot.Bar(3)})", cu);
-	}
-
-	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)})";
-		ICompilationUnit cu = this.createTestType(na);
-		this.assertSourceDoesNotContain(expected, cu);
-		this.assertSourceContains(na, cu);
-
-		DeclarationAnnotationAdapter daa1 = new SimpleDeclarationAnnotationAdapter("annot.Foo");
-		DeclarationAnnotationAdapter daa2 = new NestedIndexedDeclarationAnnotationAdapter(daa1, "value", 0, "annot.Bar");
-		AnnotationAdapter aa2 = new MemberAnnotationAdapter(this.idField(cu), daa2);
-		Annotation annotation = aa2.getAnnotation(this.buildASTRoot(cu));
-		assertNotNull(annotation);
-
-		aa2.removeAnnotation();
-		this.assertSourceDoesNotContain(na, cu);
-		this.assertSourceContains(expected, cu);
-	}
-
-	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))";
-		ICompilationUnit cu = this.createTestType(na);
-		this.assertSourceDoesNotContain(expected, cu);
-		this.assertSourceContains(na, cu);
-
-		DeclarationAnnotationAdapter daa1 = new SimpleDeclarationAnnotationAdapter("annot.Foo");
-		AnnotationAdapter aa1 = new MemberAnnotationAdapter(this.idField(cu), daa1);
-		DeclarationAnnotationAdapter daa2 = new NestedIndexedDeclarationAnnotationAdapter(daa1, "value", 1, "annot.Bar");
-		AnnotationAdapter aa2 = new MemberAnnotationAdapter(this.idField(cu), daa2);
-		Annotation annotation = aa2.getAnnotation(this.buildASTRoot(cu));
-		assertNotNull(annotation);
-
-		aa2.removeAnnotation();
-		assertEquals(ASTNode.SINGLE_MEMBER_ANNOTATION, this.annotationElementValue(aa1.getAnnotation(this.buildASTRoot(cu)), "value").getNodeType());
-		this.assertSourceDoesNotContain(na, cu);
-		this.assertSourceContains(expected, cu);
-	}
-
-	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))";
-		ICompilationUnit cu = this.createTestType(na);
-		this.assertSourceDoesNotContain(expected, cu);
-		this.assertSourceContains(na, cu);
-
-		DeclarationAnnotationAdapter daa1 = new SimpleDeclarationAnnotationAdapter("annot.Foo");
-		AnnotationAdapter aa1 = new MemberAnnotationAdapter(this.idField(cu), daa1);
-		DeclarationAnnotationAdapter daa2 = new NestedIndexedDeclarationAnnotationAdapter(daa1, "value", 2, "annot.Bar");
-		AnnotationAdapter aa2 = new MemberAnnotationAdapter(this.idField(cu), daa2);
-		Annotation annotation = aa2.getAnnotation(this.buildASTRoot(cu));
-		assertNotNull(annotation);
-
-		aa2.removeAnnotation();
-		assertEquals(ASTNode.SINGLE_MEMBER_ANNOTATION, this.annotationElementValue(aa1.getAnnotation(this.buildASTRoot(cu)), "value").getNodeType());
-		this.assertSourceDoesNotContain(na, cu);
-		this.assertSourceContains(expected, cu);
-	}
-
-	public void testRemoveAnnotation13() throws Exception {
-		this.createAnnotationAndMembers("Bar", "int value();");
-		this.createAnnotationAndMembers("Foo", "annot.Bar[] value();");
-		String na = "@annot.Foo({null, @annot.Bar(1)})";
-		ICompilationUnit cu = this.createTestType(na);
-		this.assertSourceContains(na, cu);
-
-		DeclarationAnnotationAdapter daa1 = new SimpleDeclarationAnnotationAdapter("annot.Foo");
-		DeclarationAnnotationAdapter daa2 = new NestedIndexedDeclarationAnnotationAdapter(daa1, "value", 1, "annot.Bar");
-		AnnotationAdapter aa2 = new MemberAnnotationAdapter(this.idField(cu), daa2);
-		Annotation annotation = aa2.getAnnotation(this.buildASTRoot(cu));
-		assertNotNull(annotation);
-
-		aa2.removeAnnotation();
-		this.assertSourceDoesNotContain("Foo", cu);
-	}
-
-	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))";
-		ICompilationUnit cu = this.createTestType(na);
-		this.assertSourceDoesNotContain(expected, cu);
-		this.assertSourceContains(na, cu);
-
-		DeclarationAnnotationAdapter daa1 = new SimpleDeclarationAnnotationAdapter("annot.Foo");
-		AnnotationAdapter aa1 = new MemberAnnotationAdapter(this.idField(cu), daa1);
-		DeclarationAnnotationAdapter daa2 = new NestedIndexedDeclarationAnnotationAdapter(daa1, "value", 2, "annot.Bar");
-		AnnotationAdapter aa2 = new MemberAnnotationAdapter(this.idField(cu), daa2);
-		Annotation annotation = aa2.getAnnotation(this.buildASTRoot(cu));
-		assertNotNull(annotation);
-
-		aa2.removeAnnotation();
-		assertEquals(ASTNode.SINGLE_MEMBER_ANNOTATION, this.annotationElementValue(aa1.getAnnotation(this.buildASTRoot(cu)), "value").getNodeType());
-		this.assertSourceDoesNotContain(na, cu);
-		this.assertSourceContains(expected, cu);
-	}
-
-	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)})";
-		ICompilationUnit cu = this.createTestType(na);
-		this.assertSourceDoesNotContain(expected, cu);
-		this.assertSourceContains(na, cu);
-
-		DeclarationAnnotationAdapter daa1 = new SimpleDeclarationAnnotationAdapter("annot.Foo");
-		AnnotationAdapter aa1 = new MemberAnnotationAdapter(this.idField(cu), daa1);
-		DeclarationAnnotationAdapter daa2 = new NestedIndexedDeclarationAnnotationAdapter(daa1, "value", 2, "annot.Bar");
-		AnnotationAdapter aa2 = new MemberAnnotationAdapter(this.idField(cu), daa2);
-		CompilationUnit astRoot = this.buildASTRoot(cu);
-		Annotation annotation = aa2.getAnnotation(astRoot);
-		assertNotNull(annotation);
-
-		aa2.removeAnnotation();
-		assertEquals(ASTNode.ARRAY_INITIALIZER, this.annotationElementValue(aa1.getAnnotation(astRoot), "value").getNodeType());
-		this.assertSourceDoesNotContain(na, cu);
-		this.assertSourceContains(expected, cu);
-	}
-
-	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)})";
-		ICompilationUnit cu = this.createTestType(na);
-		this.assertSourceDoesNotContain(expected, cu);
-		this.assertSourceContains(na, cu);
-
-		DeclarationAnnotationAdapter daa1 = new SimpleDeclarationAnnotationAdapter("annot.Foo");
-		AnnotationAdapter aa1 = new MemberAnnotationAdapter(this.idField(cu), daa1);
-		DeclarationAnnotationAdapter daa2 = new NestedIndexedDeclarationAnnotationAdapter(daa1, "value", 3, "annot.Bar");
-		AnnotationAdapter aa2 = new MemberAnnotationAdapter(this.idField(cu), daa2);
-		CompilationUnit astRoot = this.buildASTRoot(cu);
-		Annotation annotation = aa2.getAnnotation(astRoot);
-		assertNotNull(annotation);
-
-		aa2.removeAnnotation();
-		assertEquals(ASTNode.ARRAY_INITIALIZER, this.annotationElementValue(aa1.getAnnotation(astRoot), "value").getNodeType());
-		this.assertSourceDoesNotContain(na, cu);
-		this.assertSourceContains(expected, cu);
-	}
-
-	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))";
-		ICompilationUnit cu = this.createTestType(na);
-		this.assertSourceDoesNotContain(expected, cu);
-		this.assertSourceContains(na, cu);
-
-		DeclarationAnnotationAdapter daa1 = new SimpleDeclarationAnnotationAdapter("annot.Foo");
-		AnnotationAdapter aa1 = new MemberAnnotationAdapter(this.idField(cu), daa1);
-		DeclarationAnnotationAdapter daa2 = new NestedIndexedDeclarationAnnotationAdapter(daa1, "nestedAnnotations", 2, "annot.Bar");
-		AnnotationAdapter aa2 = new MemberAnnotationAdapter(this.idField(cu), daa2);
-		Annotation annotation = aa2.getAnnotation(this.buildASTRoot(cu));
-		assertNotNull(annotation);
-
-		aa2.removeAnnotation();
-		assertEquals(ASTNode.SINGLE_MEMBER_ANNOTATION, this.annotationElementValue(aa1.getAnnotation(this.buildASTRoot(cu)), "nestedAnnotations").getNodeType());
-		this.assertSourceDoesNotContain(na, cu);
-		this.assertSourceContains(expected, cu);
-	}
-
-	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)})";
-		ICompilationUnit cu = this.createTestType(na);
-		this.assertSourceContains(na, cu);
-
-		DeclarationAnnotationAdapter daa1 = new SimpleDeclarationAnnotationAdapter("annot.Foo");
-		DeclarationAnnotationAdapter daa2 = new NestedIndexedDeclarationAnnotationAdapter(daa1, "nestedAnnotations", 1, "annot.Bar");
-		AnnotationAdapter aa2 = new MemberAnnotationAdapter(this.idField(cu), daa2);
-		Annotation annotation = aa2.getAnnotation(this.buildASTRoot(cu));
-		assertNotNull(annotation);
-
-		aa2.removeAnnotation();
-		this.assertSourceDoesNotContain("Foo", cu);
-	}
-
-	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))";
-		ICompilationUnit cu = this.createTestType(na);
-		this.assertSourceDoesNotContain(expected, cu);
-		this.assertSourceContains(na, cu);
-
-		DeclarationAnnotationAdapter daa1 = new SimpleDeclarationAnnotationAdapter("annot.Foo");
-		AnnotationAdapter aa1 = new MemberAnnotationAdapter(this.idField(cu), daa1);
-		DeclarationAnnotationAdapter daa2 = new NestedIndexedDeclarationAnnotationAdapter(daa1, "nestedAnnotations", 2, "annot.Bar");
-		AnnotationAdapter aa2 = new MemberAnnotationAdapter(this.idField(cu), daa2);
-		Annotation annotation = aa2.getAnnotation(this.buildASTRoot(cu));
-		assertNotNull(annotation);
-
-		aa2.removeAnnotation();
-		assertEquals(ASTNode.SINGLE_MEMBER_ANNOTATION, this.annotationElementValue(aa1.getAnnotation(this.buildASTRoot(cu)), "nestedAnnotations").getNodeType());
-		this.assertSourceDoesNotContain(na, cu);
-		this.assertSourceContains(expected, cu);
-	}
-
-	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)})";
-		ICompilationUnit cu = this.createTestType(na);
-		this.assertSourceDoesNotContain(expected, cu);
-		this.assertSourceContains(na, cu);
-
-		DeclarationAnnotationAdapter daa1 = new SimpleDeclarationAnnotationAdapter("annot.Foo");
-		AnnotationAdapter aa1 = new MemberAnnotationAdapter(this.idField(cu), daa1);
-		DeclarationAnnotationAdapter daa2 = new NestedIndexedDeclarationAnnotationAdapter(daa1, "nestedAnnotations", 2, "annot.Bar");
-		AnnotationAdapter aa2 = new MemberAnnotationAdapter(this.idField(cu), daa2);
-		CompilationUnit astRoot = this.buildASTRoot(cu);
-		Annotation annotation = aa2.getAnnotation(astRoot);
-		assertNotNull(annotation);
-
-		aa2.removeAnnotation();
-		assertEquals(ASTNode.ARRAY_INITIALIZER, this.annotationElementValue(aa1.getAnnotation(astRoot), "nestedAnnotations").getNodeType());
-		this.assertSourceDoesNotContain(na, cu);
-		this.assertSourceContains(expected, cu);
-	}
-
-	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)})";
-		ICompilationUnit cu = this.createTestType(na);
-		this.assertSourceDoesNotContain(expected, cu);
-		this.assertSourceContains(na, cu);
-
-		DeclarationAnnotationAdapter daa1 = new SimpleDeclarationAnnotationAdapter("annot.Foo");
-		AnnotationAdapter aa1 = new MemberAnnotationAdapter(this.idField(cu), daa1);
-		DeclarationAnnotationAdapter daa2 = new NestedIndexedDeclarationAnnotationAdapter(daa1, "nestedAnnotations", 3, "annot.Bar");
-		AnnotationAdapter aa2 = new MemberAnnotationAdapter(this.idField(cu), daa2);
-		CompilationUnit astRoot = this.buildASTRoot(cu);
-		Annotation annotation = aa2.getAnnotation(astRoot);
-		assertNotNull(annotation);
-
-		aa2.removeAnnotation();
-		assertEquals(ASTNode.ARRAY_INITIALIZER, this.annotationElementValue(aa1.getAnnotation(astRoot), "nestedAnnotations").getNodeType());
-		this.assertSourceDoesNotContain(na, cu);
-		this.assertSourceContains(expected, cu);
-	}
-
-	public void testNewMarkerAnnotation1() throws Exception {
-		this.createAnnotationAndMembers("Bar", "int value();");
-		this.createAnnotationAndMembers("Foo", "annot.Bar[] nestedAnnotations();");
-		ICompilationUnit cu = this.createTestType();
-		this.assertSourceDoesNotContain("Foo", cu);
-
-		DeclarationAnnotationAdapter daa = new NestedIndexedDeclarationAnnotationAdapter(
-				new SimpleDeclarationAnnotationAdapter("annot.Foo"), "nestedAnnotations", 0, "annot.Bar");
-		AnnotationAdapter aa = new MemberAnnotationAdapter(this.idField(cu), daa);
-		Annotation annotation = aa.getAnnotation(this.buildASTRoot(cu));
-		assertNull(annotation);
-
-		aa.newMarkerAnnotation();
-		this.assertSourceContains("@Foo(nestedAnnotations = @Bar)", cu);
-	}
-
-	public void testNewMarkerAnnotation2() throws Exception {
-		this.createAnnotationAndMembers("Bar", "int value();");
-		this.createAnnotationAndMembers("Foo", "annot.Bar[] value();");
-		ICompilationUnit cu = this.createTestType();
-		this.assertSourceDoesNotContain("Foo", cu);
-
-		DeclarationAnnotationAdapter daa = new NestedIndexedDeclarationAnnotationAdapter(
-				new SimpleDeclarationAnnotationAdapter("annot.Foo"), "value", 0, "annot.Bar");
-		AnnotationAdapter aa = new MemberAnnotationAdapter(this.idField(cu), daa);
-		Annotation annotation = aa.getAnnotation(this.buildASTRoot(cu));
-		assertNull(annotation);
-
-		aa.newMarkerAnnotation();
-		this.assertSourceContains("@Foo(@Bar)", cu);
-	}
-
-	public void testNewMarkerAnnotation3() throws Exception {
-		this.createAnnotationAndMembers("Bar", "int value();");
-		this.createAnnotationAndMembers("Foo", "annot.Bar[] nestedAnnotations();");
-		ICompilationUnit cu = this.createTestType("@annot.Foo");
-		String expected = "@Foo(nestedAnnotations = @Bar)";
-		this.assertSourceDoesNotContain(expected, cu);
-
-		DeclarationAnnotationAdapter daa = new NestedIndexedDeclarationAnnotationAdapter(
-				new SimpleDeclarationAnnotationAdapter("annot.Foo"), "nestedAnnotations", 0, "annot.Bar");
-		AnnotationAdapter aa = new MemberAnnotationAdapter(this.idField(cu), daa);
-		Annotation annotation = aa.getAnnotation(this.buildASTRoot(cu));
-		assertNull(annotation);
-
-		aa.newMarkerAnnotation();
-		this.assertSourceContains(expected, cu);
-	}
-
-	public void testNewMarkerAnnotation4() throws Exception {
-		this.createAnnotationAndMembers("Bar", "int value();");
-		this.createAnnotationAndMembers("Foo", "annot.Bar[] value();");
-		ICompilationUnit cu = this.createTestType("@annot.Foo");
-		String expected = "@Foo(@Bar)";
-		this.assertSourceDoesNotContain(expected, cu);
-
-		DeclarationAnnotationAdapter daa = new NestedIndexedDeclarationAnnotationAdapter(
-				new SimpleDeclarationAnnotationAdapter("annot.Foo"), "value", 0, "annot.Bar");
-		AnnotationAdapter aa = new MemberAnnotationAdapter(this.idField(cu), daa);
-		Annotation annotation = aa.getAnnotation(this.buildASTRoot(cu));
-		assertNull(annotation);
-
-		aa.newMarkerAnnotation();
-		this.assertSourceContains(expected, cu);
-	}
-
-	public void testNewMarkerAnnotation5() throws Exception {
-		this.createAnnotationAndMembers("Bar", "int value();");
-		this.createAnnotationAndMembers("Foo", "String value(); annot.Bar[] nestedAnnotations();");
-		ICompilationUnit cu = this.createTestType("@annot.Foo(\"something\")");
-		String expected = "@Foo(value = \"something\", nestedAnnotations = @Bar)";
-		this.assertSourceDoesNotContain(expected, cu);
-
-		DeclarationAnnotationAdapter daa = new NestedIndexedDeclarationAnnotationAdapter(
-				new SimpleDeclarationAnnotationAdapter("annot.Foo"), "nestedAnnotations", 0, "annot.Bar");
-		AnnotationAdapter aa = new MemberAnnotationAdapter(this.idField(cu), daa);
-		Annotation annotation = aa.getAnnotation(this.buildASTRoot(cu));
-		assertNull(annotation);
-
-		aa.newMarkerAnnotation();
-		this.assertSourceContains(expected, cu);
-	}
-
-	public void testNewMarkerAnnotation6() throws Exception {
-		this.createAnnotationAndMembers("Bar", "int value();");
-		this.createAnnotationAndMembers("Foo", "annot.Bar[] value();");
-		ICompilationUnit cu = this.createTestType("@annot.Foo(\"something\")");
-		String expected = "@annot.Foo(@Bar)";
-		this.assertSourceDoesNotContain(expected, cu);
-
-		DeclarationAnnotationAdapter daa = new NestedIndexedDeclarationAnnotationAdapter(
-				new SimpleDeclarationAnnotationAdapter("annot.Foo"), "value", 0, "annot.Bar");
-		AnnotationAdapter aa = new MemberAnnotationAdapter(this.idField(cu), daa);
-		Annotation annotation = aa.getAnnotation(this.buildASTRoot(cu));
-		assertNull(annotation);
-
-		aa.newMarkerAnnotation();
-		this.assertSourceContains(expected, cu);
-	}
-
-	public void testNewMarkerAnnotation7() throws Exception {
-		this.createAnnotationAndMembers("Bar", "int value();");
-		this.createAnnotationAndMembers("Foo", "String xxx(); annot.Bar[] nestedAnnotations();");
-		ICompilationUnit cu = this.createTestType("@annot.Foo(xxx=\"something\")");
-		String expected = "@annot.Foo(xxx=\"something\", nestedAnnotations = @Bar)";
-		this.assertSourceDoesNotContain(expected, cu);
-
-		DeclarationAnnotationAdapter daa = new NestedIndexedDeclarationAnnotationAdapter(
-				new SimpleDeclarationAnnotationAdapter("annot.Foo"), "nestedAnnotations", 0, "annot.Bar");
-		AnnotationAdapter aa = new MemberAnnotationAdapter(this.idField(cu), daa);
-		Annotation annotation = aa.getAnnotation(this.buildASTRoot(cu));
-		assertNull(annotation);
-
-		aa.newMarkerAnnotation();
-		this.assertSourceContains(expected, cu);
-	}
-
-	public void testNewMarkerAnnotation8() throws Exception {
-		this.createAnnotationAndMembers("Bar", "int value();");
-		this.createAnnotationAndMembers("Foo", "String xxx(); annot.Bar[] value();");
-		ICompilationUnit cu = this.createTestType("@annot.Foo(xxx=\"something\")");
-		String expected = "@annot.Foo(xxx=\"something\", value = @Bar)";
-		this.assertSourceDoesNotContain(expected, cu);
-
-		DeclarationAnnotationAdapter daa = new NestedIndexedDeclarationAnnotationAdapter(
-				new SimpleDeclarationAnnotationAdapter("annot.Foo"), "value", 0, "annot.Bar");
-		AnnotationAdapter aa = new MemberAnnotationAdapter(this.idField(cu), daa);
-		Annotation annotation = aa.getAnnotation(this.buildASTRoot(cu));
-		assertNull(annotation);
-
-		aa.newMarkerAnnotation();
-		this.assertSourceContains(expected, cu);
-	}
-
-	public void testNewMarkerAnnotation9() throws Exception {
-		this.createAnnotationAndMembers("Bar", "int value();");
-		this.createAnnotationAndMembers("Foo", "annot.Bar[] nestedAnnotations();");
-		ICompilationUnit cu = this.createTestType();
-
-		DeclarationAnnotationAdapter daa = new NestedIndexedDeclarationAnnotationAdapter(
-				new SimpleDeclarationAnnotationAdapter("annot.Foo"), "nestedAnnotations", 5, "annot.Bar");
-		AnnotationAdapter aa = new MemberAnnotationAdapter(this.idField(cu), daa);
-		assertNull(aa.getAnnotation(this.buildASTRoot(cu)));
-
-		aa.newMarkerAnnotation();
-		this.assertSourceContains("@Foo(nestedAnnotations = { null, null, null, null, null, @Bar })", cu);
-	}
-
-	public void testNewMarkerAnnotation10() throws Exception {
-		this.createAnnotationAndMembers("Bar", "int value();");
-		this.createAnnotationAndMembers("Foo", "String value(); annot.Bar[] nestedAnnotations();");
-		ICompilationUnit cu = this.createTestType("@annot.Foo(\"something\")");
-		String expected1 = "@Foo(value = \"something\", nestedAnnotations = { null, null, null, null,";
-		String expected2 = "null, @Bar })";
-		this.assertSourceDoesNotContain("Bar", cu);
-
-		DeclarationAnnotationAdapter daa = new NestedIndexedDeclarationAnnotationAdapter(
-				new SimpleDeclarationAnnotationAdapter("annot.Foo"), "nestedAnnotations", 5, "annot.Bar");
-		AnnotationAdapter aa = new MemberAnnotationAdapter(this.idField(cu), daa);
-		Annotation annotation = aa.getAnnotation(this.buildASTRoot(cu));
-		assertNull(annotation);
-
-		aa.newMarkerAnnotation();
-		this.assertSourceContains(expected1, cu);
-		this.assertSourceContains(expected2, cu);
-	}
-
-	public void testNewMarkerAnnotation11() throws Exception {
-		this.createAnnotationAndMembers("Bar", "int value();");
-		this.createAnnotationAndMembers("Foo", "Object[] value();");
-		ICompilationUnit cu = this.createTestType("@annot.Foo({\"one\", \"two\"})");
-		String expected = "@annot.Foo({@Bar, \"two\"})";
-		this.assertSourceDoesNotContain(expected, cu);
-
-		DeclarationAnnotationAdapter daa = new NestedIndexedDeclarationAnnotationAdapter(
-				new SimpleDeclarationAnnotationAdapter("annot.Foo"), "value", 0, "annot.Bar");
-		AnnotationAdapter aa = new MemberAnnotationAdapter(this.idField(cu), daa);
-		Annotation annotation = aa.getAnnotation(this.buildASTRoot(cu));
-		assertNull(annotation);
-
-		aa.newMarkerAnnotation();
-		this.assertSourceContains(expected, cu);
-	}
-
-	public void testNewMarkerAnnotation12() throws Exception {
-		this.createAnnotationAndMembers("Bar", "int value();");
-		this.createAnnotationAndMembers("Foo", "Object[] value();");
-		ICompilationUnit cu = this.createTestType("@annot.Foo({\"one\", \"two\"})");
-		this.assertSourceDoesNotContain("Bar", cu);
-
-		DeclarationAnnotationAdapter daa = new NestedIndexedDeclarationAnnotationAdapter(
-				new SimpleDeclarationAnnotationAdapter("annot.Foo"), "value", 5, "annot.Bar");
-		AnnotationAdapter aa = new MemberAnnotationAdapter(this.idField(cu), daa);
-		Annotation annotation = aa.getAnnotation(this.buildASTRoot(cu));
-		assertNull(annotation);
-
-		aa.newMarkerAnnotation();
-		this.assertSourceContains("Bar})", cu);  // split line
-	}
-
-	public void testNewMarkerAnnotation13() throws Exception {
-		this.createAnnotationAndMembers("Bar", "int value();");
-		this.createAnnotationAndMembers("Foo", "annot.Bar[] value();");
-		ICompilationUnit cu = this.createTestType("@annot.Foo(7)");
-		String expected = "@annot.Foo(@Bar)";
-		this.assertSourceDoesNotContain(expected, cu);
-
-		DeclarationAnnotationAdapter daa = new NestedIndexedDeclarationAnnotationAdapter(
-				new SimpleDeclarationAnnotationAdapter("annot.Foo"), "value", 0, "annot.Bar");
-		AnnotationAdapter aa = new MemberAnnotationAdapter(this.idField(cu), daa);
-		Annotation annotation = aa.getAnnotation(this.buildASTRoot(cu));
-		assertNull(annotation);
-
-		aa.newMarkerAnnotation();
-		this.assertSourceContains(expected, cu);
-	}
-
-	public void testNewMarkerAnnotation14() throws Exception {
-		this.createAnnotationAndMembers("Bar", "int value();");
-		this.createAnnotationAndMembers("Foo", "annot.Bar[] value();");
-		ICompilationUnit cu = this.createTestType("@annot.Foo(7)");
-		this.assertSourceDoesNotContain("Bar", cu);
-
-		DeclarationAnnotationAdapter daa = new NestedIndexedDeclarationAnnotationAdapter(
-				new SimpleDeclarationAnnotationAdapter("annot.Foo"), "value", 5, "annot.Bar");
-		AnnotationAdapter aa = new MemberAnnotationAdapter(this.idField(cu), daa);
-		Annotation annotation = aa.getAnnotation(this.buildASTRoot(cu));
-		assertNull(annotation);
-
-		aa.newMarkerAnnotation();
-		this.assertSourceContains("@annot.Foo({7,null,null,null,null,@Bar})", cu);
-	}
-
-	public void testNewMarkerAnnotation15() throws Exception {
-		this.createAnnotationAndMembers("NotBar", "int value();");
-		this.createAnnotationAndMembers("Bar", "int value();");
-		this.createAnnotationAndMembers("Foo", "annot.Bar[] value();");
-		ICompilationUnit cu = this.createTestType("@annot.Foo(@annot.NotBar)");
-		String expected = "@annot.Foo(@Bar)";
-		this.assertSourceDoesNotContain(expected, cu);
-
-		DeclarationAnnotationAdapter daa = new NestedIndexedDeclarationAnnotationAdapter(
-				new SimpleDeclarationAnnotationAdapter("annot.Foo"), "value", 0, "annot.Bar");
-		AnnotationAdapter aa = new MemberAnnotationAdapter(this.idField(cu), daa);
-		Annotation annotation = aa.getAnnotation(this.buildASTRoot(cu));
-		assertNull(annotation);
-
-		aa.newMarkerAnnotation();
-		this.assertSourceContains(expected, cu);
-	}
-
-	public void testNewMarkerAnnotation16() throws Exception {
-		this.createAnnotationAndMembers("Bar", "int value();");
-		this.createAnnotationAndMembers("Foo", "annot.Bar[] value();");
-		ICompilationUnit cu = this.createTestType("@annot.Foo(@annot.Bar(55))");
-		String expected = "@annot.Foo({@annot.Bar(55),@Bar})";
-		this.assertSourceDoesNotContain(expected, cu);
-
-		DeclarationAnnotationAdapter daa = new NestedIndexedDeclarationAnnotationAdapter(
-				new SimpleDeclarationAnnotationAdapter("annot.Foo"), "value", 1, "annot.Bar");
-		AnnotationAdapter aa = new MemberAnnotationAdapter(this.idField(cu), daa);
-		Annotation annotation = aa.getAnnotation(this.buildASTRoot(cu));
-		assertNull(annotation);
-
-		aa.newMarkerAnnotation();
-		this.assertSourceContains(expected, cu);
-	}
-
-	public void testNewMarkerAnnotation17() throws Exception {
-		this.createAnnotationAndMembers("Bar", "int value();");
-		this.createAnnotationAndMembers("Foo", "annot.Bar[] nestedAnnotations();");
-		ICompilationUnit cu = this.createTestType("@annot.Foo(nestedAnnotations={\"something\"})");
-		String expected = "@annot.Foo(nestedAnnotations={@Bar})";
-		this.assertSourceDoesNotContain(expected, cu);
-
-		DeclarationAnnotationAdapter daa = new NestedIndexedDeclarationAnnotationAdapter(
-				new SimpleDeclarationAnnotationAdapter("annot.Foo"), "nestedAnnotations", 0, "annot.Bar");
-		AnnotationAdapter aa = new MemberAnnotationAdapter(this.idField(cu), daa);
-		Annotation annotation = aa.getAnnotation(this.buildASTRoot(cu));
-		assertNull(annotation);
-
-		aa.newMarkerAnnotation();
-		this.assertSourceContains(expected, cu);
-	}
-
-	public void testNewMarkerAnnotation18() throws Exception {
-		this.createAnnotationAndMembers("Bar", "int value();");
-		this.createAnnotationAndMembers("Foo", "annot.Bar[] nestedAnnotations();");
-		ICompilationUnit cu = this.createTestType("@annot.Foo(nestedAnnotations={\"something\"})");
-		this.assertSourceDoesNotContain("Bar", cu);
-
-		DeclarationAnnotationAdapter daa = new NestedIndexedDeclarationAnnotationAdapter(
-				new SimpleDeclarationAnnotationAdapter("annot.Foo"), "nestedAnnotations", 5, "annot.Bar");
-		AnnotationAdapter aa = new MemberAnnotationAdapter(this.idField(cu), daa);
-		Annotation annotation = aa.getAnnotation(this.buildASTRoot(cu));
-		assertNull(annotation);
-
-		aa.newMarkerAnnotation();
-		this.assertSourceContains("Bar})", cu);  // split line
-	}
-
-	public void testNewMarkerAnnotation19() throws Exception {
-		this.createAnnotationAndMembers("Bar", "int value();");
-		this.createAnnotationAndMembers("Foo", "annot.Bar[] nestedAnnotations();");
-		ICompilationUnit cu = this.createTestType("@annot.Foo(nestedAnnotations=\"something\")");
-		String expected = "@annot.Foo(nestedAnnotations=@Bar)";
-		this.assertSourceDoesNotContain(expected, cu);
-
-		DeclarationAnnotationAdapter daa = new NestedIndexedDeclarationAnnotationAdapter(
-				new SimpleDeclarationAnnotationAdapter("annot.Foo"), "nestedAnnotations", 0, "annot.Bar");
-		AnnotationAdapter aa = new MemberAnnotationAdapter(this.idField(cu), daa);
-		Annotation annotation = aa.getAnnotation(this.buildASTRoot(cu));
-		assertNull(annotation);
-
-		aa.newMarkerAnnotation();
-		this.assertSourceContains(expected, cu);
-	}
-
-	public void testNewMarkerAnnotation20() throws Exception {
-		this.createAnnotationAndMembers("NotBar", "int value();");
-		this.createAnnotationAndMembers("Bar", "int value();");
-		this.createAnnotationAndMembers("Foo", "annot.Bar[] nestedAnnotations();");
-		ICompilationUnit cu = this.createTestType("@annot.Foo(nestedAnnotations=@annot.NotBar)");
-		String expected = "@annot.Foo(nestedAnnotations=@Bar)";
-		this.assertSourceDoesNotContain(expected, cu);
-
-		DeclarationAnnotationAdapter daa = new NestedIndexedDeclarationAnnotationAdapter(
-				new SimpleDeclarationAnnotationAdapter("annot.Foo"), "nestedAnnotations", 0, "annot.Bar");
-		AnnotationAdapter aa = new MemberAnnotationAdapter(this.idField(cu), daa);
-		Annotation annotation = aa.getAnnotation(this.buildASTRoot(cu));
-		assertNull(annotation);
-
-		aa.newMarkerAnnotation();
-		this.assertSourceContains(expected, cu);
-	}
-
-	public void testNewMarkerAnnotation21() throws Exception {
-		this.createAnnotationAndMembers("NotBar", "int value();");
-		this.createAnnotationAndMembers("Bar", "int value();");
-		this.createAnnotationAndMembers("Foo", "Object[] nestedAnnotations();");
-		ICompilationUnit cu = this.createTestType("@annot.Foo(nestedAnnotations=@annot.NotBar)");
-		this.assertSourceDoesNotContain("@Bar", cu);
-
-		DeclarationAnnotationAdapter daa = new NestedIndexedDeclarationAnnotationAdapter(
-				new SimpleDeclarationAnnotationAdapter("annot.Foo"), "nestedAnnotations", 5, "annot.Bar");
-		AnnotationAdapter aa = new MemberAnnotationAdapter(this.idField(cu), daa);
-		Annotation annotation = aa.getAnnotation(this.buildASTRoot(cu));
-		assertNull(annotation);
-
-		aa.newMarkerAnnotation();
-		this.assertSourceContains("@annot.Foo(nestedAnnotations={@annot.NotBar,null,null,null,null,@Bar})", cu);
-	}
-
-	public void testNewMarkerAnnotation22() throws Exception {
-		this.createAnnotationAndMembers("Bar", "int value();");
-		this.createAnnotationAndMembers("Foo", "Object[] nestedAnnotations();");
-		ICompilationUnit cu = this.createTestType("@annot.Foo(nestedAnnotations=@annot.Bar(88))");
-		String expected = "@annot.Foo(nestedAnnotations=@Bar)";
-		this.assertSourceDoesNotContain(expected, cu);
-
-		DeclarationAnnotationAdapter daa = new NestedIndexedDeclarationAnnotationAdapter(
-				new SimpleDeclarationAnnotationAdapter("annot.Foo"), "nestedAnnotations", 0, "annot.Bar");
-		AnnotationAdapter aa = new MemberAnnotationAdapter(this.idField(cu), daa);
-		aa.newMarkerAnnotation();
-		this.assertSourceContains(expected, cu);
-	}
-
-	public void testNewMarkerAnnotation23() throws Exception {
-		this.createAnnotationAndMembers("Bar", "int value();");
-		this.createAnnotationAndMembers("Foo", "Object[] nestedAnnotations();");
-		ICompilationUnit cu = this.createTestType("@annot.Foo(nestedAnnotations=@annot.Bar(88))");
-		String expected = "@annot.Foo(nestedAnnotations={@annot.Bar(88),null,@Bar})";
-		this.assertSourceDoesNotContain(expected, cu);
-
-		DeclarationAnnotationAdapter daa = new NestedIndexedDeclarationAnnotationAdapter(
-				new SimpleDeclarationAnnotationAdapter("annot.Foo"), "nestedAnnotations", 2, "annot.Bar");
-		AnnotationAdapter aa = new MemberAnnotationAdapter(this.idField(cu), daa);
-		aa.newMarkerAnnotation();
-		this.assertSourceContains(expected, cu);
-	}
-
-	public void testNewMarkerAnnotation24() throws Exception {
-		this.createAnnotationAndMembers("Bar", "int value();");
-		this.createAnnotationAndMembers("Foo", "Object[] value();");
-		ICompilationUnit cu = this.createTestType("@annot.Foo(@annot.Bar(88))");
-		String expected = "@annot.Foo({@annot.Bar(88),null,@Bar})";
-		this.assertSourceDoesNotContain(expected, cu);
-
-		DeclarationAnnotationAdapter daa = new NestedIndexedDeclarationAnnotationAdapter(
-				new SimpleDeclarationAnnotationAdapter("annot.Foo"), "value", 2, "annot.Bar");
-		AnnotationAdapter aa = new MemberAnnotationAdapter(this.idField(cu), daa);
-		aa.newMarkerAnnotation();
-		this.assertSourceContains(expected, cu);
-	}
-
-	public void testNewMarkerAnnotation25() throws Exception {
-		this.createAnnotationAndMembers("Bar", "int value();");
-		this.createAnnotationAndMembers("Foo", "Object[] nestedAnnotations();");
-		ICompilationUnit cu = 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, cu);
-		this.assertSourceDoesNotContain(expected2, cu);
-
-		DeclarationAnnotationAdapter daa = new NestedIndexedDeclarationAnnotationAdapter(
-				new SimpleDeclarationAnnotationAdapter("annot.Foo"), "nestedAnnotations", 4, "annot.Bar");
-		AnnotationAdapter aa = new MemberAnnotationAdapter(this.idField(cu), daa);
-		aa.newMarkerAnnotation();
-		this.assertSourceContains(expected1, cu);
-		this.assertSourceContains(expected2, cu);
-	}
-
-	public void testNewMarkerAnnotation26() throws Exception {
-		this.createAnnotationAndMembers("Bar", "int value();");
-		this.createAnnotationAndMembers("Foo", "Object[] value();");
-		ICompilationUnit cu = 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, cu);
-		this.assertSourceDoesNotContain(expected2, cu);
-
-		DeclarationAnnotationAdapter daa = new NestedIndexedDeclarationAnnotationAdapter(
-				new SimpleDeclarationAnnotationAdapter("annot.Foo"), "value", 4, "annot.Bar");
-		AnnotationAdapter aa = new MemberAnnotationAdapter(this.idField(cu), daa);
-		aa.newMarkerAnnotation();
-		this.assertSourceContains(expected1, cu);
-		this.assertSourceContains(expected2, cu);
-	}
-
-	public void testNewSingleMemberAnnotation1() throws Exception {
-		this.createAnnotationAndMembers("Bar", "int value();");
-		this.createAnnotationAndMembers("Foo", "annot.Bar[] nestedAnnotations();");
-		ICompilationUnit cu = this.createTestType();
-		this.assertSourceDoesNotContain("@Foo", cu);
-		this.idField(cu).edit(new Member.Editor() {
-			public void edit(ModifiedDeclaration declaration) {
-				NestedIndexedDeclarationAnnotationAdapterTests.this.editNewSingleMemberAnnotation1(declaration);
-			}
-		});
-		this.assertSourceContains("@Foo(nestedAnnotations = @Bar(88))", cu);
-	}
-
-	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();");
-		ICompilationUnit cu = this.createTestType();
-		this.assertSourceDoesNotContain("@Foo", cu);
-		this.idField(cu).edit(new Member.Editor() {
-			public void edit(ModifiedDeclaration declaration) {
-				NestedIndexedDeclarationAnnotationAdapterTests.this.editNewSingleMemberAnnotation2(declaration);
-			}
-		});
-		this.assertSourceContains("@Foo(@Bar(88))", cu);
-	}
-
-	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();");
-		ICompilationUnit cu = this.createTestType("@annot.Foo");
-		String expected = "@Foo(nestedAnnotations = @Bar(88))";
-		this.assertSourceDoesNotContain(expected, cu);
-		this.idField(cu).edit(new Member.Editor() {
-			public void edit(ModifiedDeclaration declaration) {
-				NestedIndexedDeclarationAnnotationAdapterTests.this.editNewSingleMemberAnnotation3(declaration);
-			}
-		});
-		this.assertSourceContains(expected, cu);
-	}
-
-	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();");
-		ICompilationUnit cu = this.createTestType("@annot.Foo");
-		String expected = "@Foo(@Bar(88))";
-		this.assertSourceDoesNotContain(expected, cu);
-		this.idField(cu).edit(new Member.Editor() {
-			public void edit(ModifiedDeclaration declaration) {
-				NestedIndexedDeclarationAnnotationAdapterTests.this.editNewSingleMemberAnnotation4(declaration);
-			}
-		});
-		this.assertSourceContains(expected, cu);
-	}
-
-	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();");
-		ICompilationUnit cu = this.createTestType("@annot.Foo(\"something\")");
-		String expected = "@Foo(value = \"something\", nestedAnnotations = @Bar(88))";
-		this.assertSourceDoesNotContain(expected, cu);
-		this.idField(cu).edit(new Member.Editor() {
-			public void edit(ModifiedDeclaration declaration) {
-				NestedIndexedDeclarationAnnotationAdapterTests.this.editNewSingleMemberAnnotation5(declaration);
-			}
-		});
-		this.assertSourceContains(expected, cu);
-	}
-
-	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();");
-		ICompilationUnit cu = this.createTestType("@annot.Foo(\"something\")");
-		String expected = "@annot.Foo(@Bar(88))";
-		this.assertSourceDoesNotContain(expected, cu);
-		this.idField(cu).edit(new Member.Editor() {
-			public void edit(ModifiedDeclaration declaration) {
-				NestedIndexedDeclarationAnnotationAdapterTests.this.editNewSingleMemberAnnotation6(declaration);
-			}
-		});
-		this.assertSourceContains(expected, cu);
-	}
-
-	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();");
-		ICompilationUnit cu = this.createTestType("@annot.Foo(xxx=\"something\")");
-		String expected = "@annot.Foo(xxx=\"something\", nestedAnnotations = @Bar(88))";
-		this.assertSourceDoesNotContain(expected, cu);
-		this.idField(cu).edit(new Member.Editor() {
-			public void edit(ModifiedDeclaration declaration) {
-				NestedIndexedDeclarationAnnotationAdapterTests.this.editNewSingleMemberAnnotation7(declaration);
-			}
-		});
-		this.assertSourceContains(expected, cu);
-	}
-
-	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();");
-		ICompilationUnit cu = this.createTestType("@annot.Foo(xxx=\"something\")");
-		String expected = "@annot.Foo(xxx=\"something\", value = @Bar(88))";
-		this.assertSourceDoesNotContain(expected, cu);
-		this.idField(cu).edit(new Member.Editor() {
-			public void edit(ModifiedDeclaration declaration) {
-				NestedIndexedDeclarationAnnotationAdapterTests.this.editNewSingleMemberAnnotation8(declaration);
-			}
-		});
-		this.assertSourceContains(expected, cu);
-	}
-
-	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();");
-		ICompilationUnit cu = this.createTestType();
-		this.assertSourceDoesNotContain("@Bar", cu);
-
-		DeclarationAnnotationAdapter daa = new NestedIndexedDeclarationAnnotationAdapter(
-				new SimpleDeclarationAnnotationAdapter("annot.Foo"), "nestedAnnotations", 5, "annot.Bar");
-		AnnotationAdapter aa = new MemberAnnotationAdapter(this.idField(cu), daa);
-		Annotation annotation = aa.getAnnotation(this.buildASTRoot(cu));
-		assertNull(annotation);
-
-		aa.newSingleMemberAnnotation();
-		this.assertSourceContains("@Foo(nestedAnnotations = { null, null, null, null, null, @Bar(MISSING) })", cu);  // ???
-	}
-
-	public void testNewSingleMemberAnnotation10() throws Exception {
-		this.createAnnotationAndMembers("Bar", "int value();");
-		this.createAnnotationAndMembers("Foo", "String value(); annot.Bar[] nestedAnnotations();");
-		ICompilationUnit cu = this.createTestType("@annot.Foo(\"something\")");
-		String expected1 = "@Foo(value = \"something\", nestedAnnotations = { null, null, null, null,";
-		String expected2 = "null, @Bar(MISSING) })";  // ???
-		this.assertSourceDoesNotContain("@Bar", cu);
-
-		DeclarationAnnotationAdapter daa = new NestedIndexedDeclarationAnnotationAdapter(
-				new SimpleDeclarationAnnotationAdapter("annot.Foo"), "nestedAnnotations", 5, "annot.Bar");
-		AnnotationAdapter aa = new MemberAnnotationAdapter(this.idField(cu), daa);
-		Annotation annotation = aa.getAnnotation(this.buildASTRoot(cu));
-		assertNull(annotation);
-
-		aa.newSingleMemberAnnotation();
-		this.assertSourceContains(expected1, cu);
-		this.assertSourceContains(expected2, cu);
-	}
-
-	public void testNewSingleMemberAnnotation11() throws Exception {
-		this.createAnnotationAndMembers("Bar", "int value();");
-		this.createAnnotationAndMembers("Foo", "Object[] value();");
-		ICompilationUnit cu = this.createTestType("@annot.Foo({\"one\", \"two\"})");
-		String expected = "@annot.Foo({@Bar(88), \"two\"})";
-		this.assertSourceDoesNotContain(expected, cu);
-		this.idField(cu).edit(new Member.Editor() {
-			public void edit(ModifiedDeclaration declaration) {
-				NestedIndexedDeclarationAnnotationAdapterTests.this.editNewSingleMemberAnnotation11(declaration);
-			}
-		});
-		this.assertSourceContains(expected, cu);
-	}
-
-	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();");
-		ICompilationUnit cu = this.createTestType("@annot.Foo({\"one\", \"two\"})");
-		this.assertSourceDoesNotContain("@Bar", cu);
-
-		DeclarationAnnotationAdapter daa = new NestedIndexedDeclarationAnnotationAdapter(
-				new SimpleDeclarationAnnotationAdapter("annot.Foo"), "value", 5, "annot.Bar");
-		AnnotationAdapter aa = new MemberAnnotationAdapter(this.idField(cu), daa);
-		Annotation annotation = aa.getAnnotation(this.buildASTRoot(cu));
-		assertNull(annotation);
-
-		aa.newSingleMemberAnnotation();
-		this.assertSourceContains("@Bar(MISSING)})", cu);  // split line
-	}
-
-	public void testNewSingleMemberAnnotation13() throws Exception {
-		this.createAnnotationAndMembers("Bar", "int value();");
-		this.createAnnotationAndMembers("Foo", "Object[] value();");
-		ICompilationUnit cu = this.createTestType("@annot.Foo(7)");
-		String expected = "@annot.Foo(@Bar(88))";
-		this.assertSourceDoesNotContain(expected, cu);
-		this.idField(cu).edit(new Member.Editor() {
-			public void edit(ModifiedDeclaration declaration) {
-				NestedIndexedDeclarationAnnotationAdapterTests.this.editNewSingleMemberAnnotation13(declaration);
-			}
-		});
-		this.assertSourceContains(expected, cu);
-	}
-
-	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();");
-		ICompilationUnit cu = this.createTestType("@annot.Foo(7)");
-		this.assertSourceDoesNotContain("@Bar", cu);
-
-		DeclarationAnnotationAdapter daa = new NestedIndexedDeclarationAnnotationAdapter(
-				new SimpleDeclarationAnnotationAdapter("annot.Foo"), "value", 5, "annot.Bar");
-		AnnotationAdapter aa = new MemberAnnotationAdapter(this.idField(cu), daa);
-		Annotation annotation = aa.getAnnotation(this.buildASTRoot(cu));
-		assertNull(annotation);
-
-		aa.newSingleMemberAnnotation();
-		this.assertSourceContains("@annot.Foo({7,null,null,null,null,@Bar(MISSING)})", cu);
-	}
-
-	public void testNewSingleMemberAnnotation15() throws Exception {
-		this.createAnnotationAndMembers("NotBar", "int value();");
-		this.createAnnotationAndMembers("Bar", "int value();");
-		this.createAnnotationAndMembers("Foo", "Object[] value();");
-		ICompilationUnit cu = this.createTestType("@annot.Foo(@annot.NotBar)");
-		String expected = "@annot.Foo(@Bar(88))";
-		this.assertSourceDoesNotContain(expected, cu);
-		this.idField(cu).edit(new Member.Editor() {
-			public void edit(ModifiedDeclaration declaration) {
-				NestedIndexedDeclarationAnnotationAdapterTests.this.editNewSingleMemberAnnotation15(declaration);
-			}
-		});
-		this.assertSourceContains(expected, cu);
-	}
-
-	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();");
-		ICompilationUnit cu = this.createTestType("@annot.Foo(@annot.Bar(55))");
-		String expected = "@annot.Foo({@annot.Bar(55),@Bar(88)})";
-		this.assertSourceDoesNotContain(expected, cu);
-		this.idField(cu).edit(new Member.Editor() {
-			public void edit(ModifiedDeclaration declaration) {
-				NestedIndexedDeclarationAnnotationAdapterTests.this.editNewSingleMemberAnnotation16(declaration);
-			}
-		});
-		this.assertSourceContains(expected, cu);
-	}
-
-	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();");
-		ICompilationUnit cu = this.createTestType("@annot.Foo(nestedAnnotations={\"something\"})");
-		String expected = "@annot.Foo(nestedAnnotations={@Bar(88)})";
-		this.assertSourceDoesNotContain(expected, cu);
-		this.idField(cu).edit(new Member.Editor() {
-			public void edit(ModifiedDeclaration declaration) {
-				NestedIndexedDeclarationAnnotationAdapterTests.this.editNewSingleMemberAnnotation17(declaration);
-			}
-		});
-		this.assertSourceContains(expected, cu);
-	}
-
-	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();");
-		ICompilationUnit cu = this.createTestType("@annot.Foo(nestedAnnotations={\"something\"})");
-		this.assertSourceDoesNotContain("@Bar", cu);
-
-		DeclarationAnnotationAdapter daa = new NestedIndexedDeclarationAnnotationAdapter(
-				new SimpleDeclarationAnnotationAdapter("annot.Foo"), "nestedAnnotations", 5, "annot.Bar");
-		AnnotationAdapter aa = new MemberAnnotationAdapter(this.idField(cu), daa);
-		Annotation annotation = aa.getAnnotation(this.buildASTRoot(cu));
-		assertNull(annotation);
-
-		aa.newSingleMemberAnnotation();
-		this.assertSourceContains("@Bar(MISSING)})", cu);  // ???
-	}
-
-	public void testNewSingleMemberAnnotation19() throws Exception {
-		this.createAnnotationAndMembers("Bar", "int value();");
-		this.createAnnotationAndMembers("Foo", "Object[] nestedAnnotations();");
-		ICompilationUnit cu = this.createTestType("@annot.Foo(nestedAnnotations=\"something\")");
-		String expected = "@annot.Foo(nestedAnnotations=@Bar(88))";
-		this.assertSourceDoesNotContain(expected, cu);
-		this.idField(cu).edit(new Member.Editor() {
-			public void edit(ModifiedDeclaration declaration) {
-				NestedIndexedDeclarationAnnotationAdapterTests.this.editNewSingleMemberAnnotation19(declaration);
-			}
-		});
-		this.assertSourceContains(expected, cu);
-	}
-
-	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();");
-		ICompilationUnit cu = this.createTestType("@annot.Foo(nestedAnnotations=@annot.NotBar)");
-		String expected = "@annot.Foo(nestedAnnotations=@Bar(88))";
-		this.assertSourceDoesNotContain(expected, cu);
-		this.idField(cu).edit(new Member.Editor() {
-			public void edit(ModifiedDeclaration declaration) {
-				NestedIndexedDeclarationAnnotationAdapterTests.this.editNewSingleMemberAnnotation20(declaration);
-			}
-		});
-		this.assertSourceContains(expected, cu);
-	}
-
-	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();");
-		ICompilationUnit cu = this.createTestType("@annot.Foo(nestedAnnotations=@annot.NotBar)");
-		this.assertSourceDoesNotContain("@Bar", cu);
-
-		DeclarationAnnotationAdapter daa = new NestedIndexedDeclarationAnnotationAdapter(
-				new SimpleDeclarationAnnotationAdapter("annot.Foo"), "nestedAnnotations", 5, "annot.Bar");
-		AnnotationAdapter aa = new MemberAnnotationAdapter(this.idField(cu), daa);
-		Annotation annotation = aa.getAnnotation(this.buildASTRoot(cu));
-		assertNull(annotation);
-
-		aa.newSingleMemberAnnotation();
-		this.assertSourceContains("@annot.Foo(nestedAnnotations={@annot.NotBar,null,null,null,null,@Bar(MISSING)})", cu);
-	}
-
-	public void testNewSingleMemberAnnotation22() throws Exception {
-		this.createAnnotationAndMembers("Bar", "int value();");
-		this.createAnnotationAndMembers("Foo", "annot.Bar[] nestedAnnotations();");
-		ICompilationUnit cu = this.createTestType("@annot.Foo(nestedAnnotations=@annot.Bar(77))");
-		String expected = "@annot.Foo(nestedAnnotations=@Bar(88))";
-		this.assertSourceDoesNotContain(expected, cu);
-		this.idField(cu).edit(new Member.Editor() {
-			public void edit(ModifiedDeclaration declaration) {
-				NestedIndexedDeclarationAnnotationAdapterTests.this.editNewSingleMemberAnnotation22(declaration);
-			}
-		});
-		this.assertSourceContains(expected, cu);
-	}
-
-	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();");
-		ICompilationUnit cu = this.createTestType();
-		this.assertSourceDoesNotContain("@Foo", cu);
-		this.idField(cu).edit(new Member.Editor() {
-			public void edit(ModifiedDeclaration declaration) {
-				NestedIndexedDeclarationAnnotationAdapterTests.this.editNewNormalAnnotation1(declaration);
-			}
-		});
-		this.assertSourceContains("@Foo(nestedAnnotations = @Bar(xxx = 88))", cu);
-	}
-
-	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();");
-		ICompilationUnit cu = this.createTestType();
-		this.assertSourceDoesNotContain("@Foo", cu);
-		this.idField(cu).edit(new Member.Editor() {
-			public void edit(ModifiedDeclaration declaration) {
-				NestedIndexedDeclarationAnnotationAdapterTests.this.editNewNormalAnnotation2(declaration);
-			}
-		});
-		this.assertSourceContains("@Foo(@Bar(xxx = 88))", cu);
-	}
-
-	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();");
-		ICompilationUnit cu = this.createTestType("@annot.Foo");
-		String expected = "@Foo(nestedAnnotations = @Bar(xxx = 88))";
-		this.assertSourceDoesNotContain(expected, cu);
-		this.idField(cu).edit(new Member.Editor() {
-			public void edit(ModifiedDeclaration declaration) {
-				NestedIndexedDeclarationAnnotationAdapterTests.this.editNewNormalAnnotation3(declaration);
-			}
-		});
-		this.assertSourceContains(expected, cu);
-	}
-
-	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();");
-		ICompilationUnit cu = this.createTestType("@annot.Foo");
-		String expected = "@Foo(@Bar(xxx = 88))";
-		this.assertSourceDoesNotContain(expected, cu);
-		this.idField(cu).edit(new Member.Editor() {
-			public void edit(ModifiedDeclaration declaration) {
-				NestedIndexedDeclarationAnnotationAdapterTests.this.editNewNormalAnnotation4(declaration);
-			}
-		});
-		this.assertSourceContains(expected, cu);
-	}
-
-	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();");
-		ICompilationUnit cu = this.createTestType("@annot.Foo(\"something\")");
-		String expected = "@Foo(value = \"something\", nestedAnnotations = @Bar(xxx = 88))";
-		this.assertSourceDoesNotContain(expected, cu);
-		this.idField(cu).edit(new Member.Editor() {
-			public void edit(ModifiedDeclaration declaration) {
-				NestedIndexedDeclarationAnnotationAdapterTests.this.editNewNormalAnnotation5(declaration);
-			}
-		});
-		this.assertSourceContains(expected, cu);
-	}
-
-	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();");
-		ICompilationUnit cu = this.createTestType("@annot.Foo(\"something\")");
-		String expected = "@annot.Foo(@Bar(xxx = 88))";
-		this.assertSourceDoesNotContain(expected, cu);
-		this.idField(cu).edit(new Member.Editor() {
-			public void edit(ModifiedDeclaration declaration) {
-				NestedIndexedDeclarationAnnotationAdapterTests.this.editNewNormalAnnotation6(declaration);
-			}
-		});
-		this.assertSourceContains(expected, cu);
-	}
-
-	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();");
-		ICompilationUnit cu = this.createTestType("@annot.Foo(xxx=\"something\")");
-		String expected = "@annot.Foo(xxx=\"something\", nestedAnnotations = @Bar(xxx = 88))";
-		this.assertSourceDoesNotContain(expected, cu);
-		this.idField(cu).edit(new Member.Editor() {
-			public void edit(ModifiedDeclaration declaration) {
-				NestedIndexedDeclarationAnnotationAdapterTests.this.editNewNormalAnnotation7(declaration);
-			}
-		});
-		this.assertSourceContains(expected, cu);
-	}
-
-	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();");
-		ICompilationUnit cu = this.createTestType("@annot.Foo(xxx=\"something\")");
-		String expected = "@annot.Foo(xxx=\"something\", value = @Bar(xxx = 88))";
-		this.assertSourceDoesNotContain(expected, cu);
-		this.idField(cu).edit(new Member.Editor() {
-			public void edit(ModifiedDeclaration declaration) {
-				NestedIndexedDeclarationAnnotationAdapterTests.this.editNewNormalAnnotation8(declaration);
-			}
-		});
-		this.assertSourceContains(expected, cu);
-	}
-
-	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();");
-		ICompilationUnit cu = this.createTestType();
-		this.assertSourceDoesNotContain("@Bar", cu);
-
-		DeclarationAnnotationAdapter daa = new NestedIndexedDeclarationAnnotationAdapter(
-				new SimpleDeclarationAnnotationAdapter("annot.Foo"), "nestedAnnotations", 5, "annot.Bar");
-		AnnotationAdapter aa = new MemberAnnotationAdapter(this.idField(cu), daa);
-		Annotation annotation = aa.getAnnotation(this.buildASTRoot(cu));
-		assertNull(annotation);
-
-		aa.newNormalAnnotation();
-		this.assertSourceContains("@Foo(nestedAnnotations = { null, null, null, null, null, @Bar() })", cu);
-	}
-
-	public void testNewNormalAnnotation10() throws Exception {
-		this.createAnnotationAndMembers("Bar", "int xxx();");
-		this.createAnnotationAndMembers("Foo", "annot.Bar[] nestedAnnotations(); String value();");
-		ICompilationUnit cu = this.createTestType("@annot.Foo(\"something\")");
-		String expected1 = "@Foo(value = \"something\", nestedAnnotations = { null, null, null, null,";
-		String expected2 = "null, @Bar() })";
-		this.assertSourceDoesNotContain("@Bar", cu);
-
-		DeclarationAnnotationAdapter daa = new NestedIndexedDeclarationAnnotationAdapter(
-				new SimpleDeclarationAnnotationAdapter("annot.Foo"), "nestedAnnotations", 5, "annot.Bar");
-		AnnotationAdapter aa = new MemberAnnotationAdapter(this.idField(cu), daa);
-		Annotation annotation = aa.getAnnotation(this.buildASTRoot(cu));
-		assertNull(annotation);
-
-		aa.newNormalAnnotation();
-		this.assertSourceContains(expected1, cu);
-		this.assertSourceContains(expected2, cu);
-	}
-
-	public void testNewNormalAnnotation11() throws Exception {
-		this.createAnnotationAndMembers("Bar", "int xxx();");
-		this.createAnnotationAndMembers("Foo", "Object[] value();");
-		ICompilationUnit cu = this.createTestType("@annot.Foo({ \"one\", \"two\" })");
-		String expected = "@annot.Foo({ @Bar(xxx = 88), \"two\" })";
-		this.assertSourceDoesNotContain(expected, cu);
-		this.idField(cu).edit(new Member.Editor() {
-			public void edit(ModifiedDeclaration declaration) {
-				NestedIndexedDeclarationAnnotationAdapterTests.this.editNewNormalAnnotation11(declaration);
-			}
-		});
-		this.assertSourceContains(expected, cu);
-	}
-
-	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();");
-		ICompilationUnit cu = this.createTestType("@annot.Foo({\"one\", \"two\"})");
-		this.assertSourceDoesNotContain("@Bar", cu);
-
-		DeclarationAnnotationAdapter daa = new NestedIndexedDeclarationAnnotationAdapter(
-				new SimpleDeclarationAnnotationAdapter("annot.Foo"), "value", 5, "annot.Bar");
-		AnnotationAdapter aa = new MemberAnnotationAdapter(this.idField(cu), daa);
-		Annotation annotation = aa.getAnnotation(this.buildASTRoot(cu));
-		assertNull(annotation);
-
-		aa.newNormalAnnotation();
-		this.assertSourceContains("@Bar()})", cu);  // split line
-	}
-
-	public void testNewNormalAnnotation13() throws Exception {
-		this.createAnnotationAndMembers("Bar", "int xxx();");
-		this.createAnnotationAndMembers("Foo", "Object[] value();");
-		ICompilationUnit cu = this.createTestType("@annot.Foo(7)");
-		String expected = "@annot.Foo(@Bar(xxx = 88))";
-		this.assertSourceDoesNotContain(expected, cu);
-		this.idField(cu).edit(new Member.Editor() {
-			public void edit(ModifiedDeclaration declaration) {
-				NestedIndexedDeclarationAnnotationAdapterTests.this.editNewNormalAnnotation13(declaration);
-			}
-		});
-		this.assertSourceContains(expected, cu);
-	}
-
-	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();");
-		ICompilationUnit cu = this.createTestType("@annot.Foo(7)");
-		this.assertSourceDoesNotContain("@Bar", cu);
-
-		DeclarationAnnotationAdapter daa = new NestedIndexedDeclarationAnnotationAdapter(
-				new SimpleDeclarationAnnotationAdapter("annot.Foo"), "value", 5, "annot.Bar");
-		AnnotationAdapter aa = new MemberAnnotationAdapter(this.idField(cu), daa);
-		Annotation annotation = aa.getAnnotation(this.buildASTRoot(cu));
-		assertNull(annotation);
-
-		aa.newNormalAnnotation();
-		this.assertSourceContains("@annot.Foo({7,null,null,null,null,@Bar()})", cu);
-	}
-
-	public void testNewNormalAnnotation15() throws Exception {
-		this.createAnnotationAndMembers("NotBar", "int xxx();");
-		this.createAnnotationAndMembers("Bar", "int xxx();");
-		this.createAnnotationAndMembers("Foo", "Object[] value();");
-		ICompilationUnit cu = this.createTestType("@annot.Foo(@annot.NotBar)");
-		String expected = "@annot.Foo(@Bar(xxx = 88))";
-		this.assertSourceDoesNotContain(expected, cu);
-		this.idField(cu).edit(new Member.Editor() {
-			public void edit(ModifiedDeclaration declaration) {
-				NestedIndexedDeclarationAnnotationAdapterTests.this.editNewNormalAnnotation15(declaration);
-			}
-		});
-		this.assertSourceContains(expected, cu);
-	}
-
-	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();");
-		ICompilationUnit cu = this.createTestType("@annot.Foo(@annot.Bar(55))");
-		String expected = "@annot.Foo({@annot.Bar(55),@Bar(xxx=88)})";
-		this.assertSourceDoesNotContain(expected, cu);
-		this.idField(cu).edit(new Member.Editor() {
-			public void edit(ModifiedDeclaration declaration) {
-				NestedIndexedDeclarationAnnotationAdapterTests.this.editNewNormalAnnotation16(declaration);
-			}
-		});
-		this.assertSourceContains(expected, cu);
-	}
-
-	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();");
-		ICompilationUnit cu = this.createTestType("@annot.Foo(nestedAnnotations = { \"something\" })");
-		String expected = "@annot.Foo(nestedAnnotations = { @Bar(xxx = 88) })";
-		this.assertSourceDoesNotContain(expected, cu);
-		this.idField(cu).edit(new Member.Editor() {
-			public void edit(ModifiedDeclaration declaration) {
-				NestedIndexedDeclarationAnnotationAdapterTests.this.editNewNormalAnnotation17(declaration);
-			}
-		});
-		this.assertSourceContains(expected, cu);
-	}
-
-	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();");
-		ICompilationUnit cu = this.createTestType("@annot.Foo(nestedAnnotations={\"something\"})");
-		this.assertSourceDoesNotContain("@Bar", cu);
-
-		DeclarationAnnotationAdapter daa = new NestedIndexedDeclarationAnnotationAdapter(
-				new SimpleDeclarationAnnotationAdapter("annot.Foo"), "nestedAnnotations", 5, "annot.Bar");
-		AnnotationAdapter aa = new MemberAnnotationAdapter(this.idField(cu), daa);
-		Annotation annotation = aa.getAnnotation(this.buildASTRoot(cu));
-		assertNull(annotation);
-
-		aa.newNormalAnnotation();
-		this.assertSourceContains("@Bar()})", cu);  // split line
-	}
-
-	public void testNewNormalAnnotation19() throws Exception {
-		this.createAnnotationAndMembers("Bar", "int xxx();");
-		this.createAnnotationAndMembers("Foo", "Object[] nestedAnnotations();");
-		ICompilationUnit cu = this.createTestType("@annot.Foo(nestedAnnotations = \"something\")");
-		String expected = "@annot.Foo(nestedAnnotations = @Bar(xxx = 88))";
-		this.assertSourceDoesNotContain(expected, cu);
-		this.idField(cu).edit(new Member.Editor() {
-			public void edit(ModifiedDeclaration declaration) {
-				NestedIndexedDeclarationAnnotationAdapterTests.this.editNewNormalAnnotation19(declaration);
-			}
-		});
-		this.assertSourceContains(expected, cu);
-	}
-
-	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();");
-		ICompilationUnit cu = this.createTestType("@annot.Foo(nestedAnnotations = @annot.NotBar)");
-		String expected = "@annot.Foo(nestedAnnotations = @Bar(xxx = 88))";
-		this.assertSourceDoesNotContain(expected, cu);
-		this.idField(cu).edit(new Member.Editor() {
-			public void edit(ModifiedDeclaration declaration) {
-				NestedIndexedDeclarationAnnotationAdapterTests.this.editNewNormalAnnotation20(declaration);
-			}
-		});
-		this.assertSourceContains(expected, cu);
-	}
-
-	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();");
-		ICompilationUnit cu = this.createTestType("@annot.Foo(nestedAnnotations=@annot.NotBar)");
-		this.assertSourceDoesNotContain("@Bar", cu);
-
-		DeclarationAnnotationAdapter daa = new NestedIndexedDeclarationAnnotationAdapter(
-				new SimpleDeclarationAnnotationAdapter("annot.Foo"), "nestedAnnotations", 5, "annot.Bar");
-		AnnotationAdapter aa = new MemberAnnotationAdapter(this.idField(cu), daa);
-		Annotation annotation = aa.getAnnotation(this.buildASTRoot(cu));
-		assertNull(annotation);
-
-		aa.newNormalAnnotation();
-		this.assertSourceContains("@annot.Foo(nestedAnnotations={@annot.NotBar,null,null,null,null,@Bar()})", cu);
-	}
-
-	public void testNewNormalAnnotation22() throws Exception {
-		this.createAnnotationAndMembers("Bar", "int xxx();");
-		this.createAnnotationAndMembers("Foo", "Object[] nestedAnnotations();");
-		ICompilationUnit cu = this.createTestType("@annot.Foo(nestedAnnotations = @annot.Bar(77))");
-		String expected = "@annot.Foo(nestedAnnotations = @Bar(xxx = 88))";
-		this.assertSourceDoesNotContain(expected, cu);
-		this.idField(cu).edit(new Member.Editor() {
-			public void edit(ModifiedDeclaration declaration) {
-				NestedIndexedDeclarationAnnotationAdapterTests.this.editNewNormalAnnotation22(declaration);
-			}
-		});
-		this.assertSourceContains(expected, cu);
-	}
-
-	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();");
-		ICompilationUnit cu = this.createTestType("@annot.Foo(@annot.Bar(00))");
-		String expected = "@annot.Foo({null,@annot.Bar(00)})";
-		this.assertSourceDoesNotContain(expected, cu);
-
-		IndexedDeclarationAnnotationAdapter idaa = new NestedIndexedDeclarationAnnotationAdapter(
-				new SimpleDeclarationAnnotationAdapter("annot.Foo"), "value", 0, "annot.Bar");
-		IndexedAnnotationAdapter iaa = new MemberIndexedAnnotationAdapter(this.idField(cu), idaa);
-		Annotation annotation = iaa.getAnnotation(this.buildASTRoot(cu));
-		assertNotNull(annotation);
-
-		iaa.moveAnnotation(1);
-		this.assertSourceContains(expected, cu);
-	}
-
-	public void testMoveAnnotation2() throws Exception {
-		this.createAnnotationAndMembers("Bar", "int value();");
-		this.createAnnotationAndMembers("Foo", "annot.Bar[] value();");
-		ICompilationUnit cu = this.createTestType("@annot.Foo({null, @annot.Bar(11)})");
-		String expected = "@annot.Foo(@annot.Bar(11))";
-		this.assertSourceDoesNotContain(expected, cu);
-
-		IndexedDeclarationAnnotationAdapter idaa = new NestedIndexedDeclarationAnnotationAdapter(
-				new SimpleDeclarationAnnotationAdapter("annot.Foo"), "value", 1, "annot.Bar");
-		IndexedAnnotationAdapter iaa = new MemberIndexedAnnotationAdapter(this.idField(cu), idaa);
-		Annotation annotation = iaa.getAnnotation(this.buildASTRoot(cu));
-		assertNotNull(annotation);
-
-		iaa.moveAnnotation(0);
-		this.assertSourceContains(expected, cu);
-	}
-
-	public void testMoveAnnotation3() throws Exception {
-		this.createAnnotationAndMembers("Bar", "int value();");
-		this.createAnnotationAndMembers("Foo", "annot.Bar[] value();");
-		ICompilationUnit cu = 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, cu);
-
-		IndexedDeclarationAnnotationAdapter idaa = new NestedIndexedDeclarationAnnotationAdapter(
-				new SimpleDeclarationAnnotationAdapter("annot.Foo"), "value", 3, "annot.Bar");
-		IndexedAnnotationAdapter iaa = new MemberIndexedAnnotationAdapter(this.idField(cu), idaa);
-		Annotation annotation = iaa.getAnnotation(this.buildASTRoot(cu));
-		assertNotNull(annotation);
-
-		iaa.moveAnnotation(0);
-		this.assertSourceContains(expected, cu);
-	}
-
-	public void testMoveAnnotation4() throws Exception {
-		this.createAnnotationAndMembers("Bar", "int value();");
-		this.createAnnotationAndMembers("Foo", "annot.Bar[] value();");
-		ICompilationUnit cu = 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, cu);
-
-		IndexedDeclarationAnnotationAdapter idaa = new NestedIndexedDeclarationAnnotationAdapter(
-				new SimpleDeclarationAnnotationAdapter("annot.Foo"), "value", 3, "annot.Bar");
-		IndexedAnnotationAdapter iaa = new MemberIndexedAnnotationAdapter(this.idField(cu), idaa);
-		Annotation annotation = iaa.getAnnotation(this.buildASTRoot(cu));
-		assertNotNull(annotation);
-
-		iaa.moveAnnotation(0);
-		this.assertSourceContains(expected, cu);
-	}
-
-	public void testMoveAnnotation5() throws Exception {
-		this.createAnnotationAndMembers("Bar", "int value();");
-		this.createAnnotationAndMembers("Foo", "annot.Bar[] value();");
-		ICompilationUnit cu = 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, cu);
-
-		IndexedDeclarationAnnotationAdapter idaa = new NestedIndexedDeclarationAnnotationAdapter(
-				new SimpleDeclarationAnnotationAdapter("annot.Foo"), "value", 2, "annot.Bar");
-		IndexedAnnotationAdapter iaa = new MemberIndexedAnnotationAdapter(this.idField(cu), idaa);
-		Annotation annotation = iaa.getAnnotation(this.buildASTRoot(cu));
-		assertNotNull(annotation);
-
-		iaa.moveAnnotation(3);
-		this.assertSourceContains(expected, cu);
-	}
-
-	public void testMoveAnnotation6() throws Exception {
-		this.createAnnotationAndMembers("Bar", "int value();");
-		this.createAnnotationAndMembers("Foo", "annot.Bar[] value();");
-		ICompilationUnit cu = 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, cu);
-
-		IndexedDeclarationAnnotationAdapter idaa = new NestedIndexedDeclarationAnnotationAdapter(
-				new SimpleDeclarationAnnotationAdapter("annot.Foo"), "value", 0, "annot.Bar");
-		IndexedAnnotationAdapter iaa = new MemberIndexedAnnotationAdapter(this.idField(cu), idaa);
-		Annotation annotation = iaa.getAnnotation(this.buildASTRoot(cu));
-		assertNotNull(annotation);
-
-		iaa.moveAnnotation(3);
-		this.assertSourceContains(expected, cu);
-	}
-
-	public void testMoveAnnotation7() throws Exception {
-		this.createAnnotationAndMembers("Bar", "int value();");
-		this.createAnnotationAndMembers("Foo", "annot.Bar[] value();");
-		ICompilationUnit cu = 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, cu);
-
-		IndexedDeclarationAnnotationAdapter idaa = new NestedIndexedDeclarationAnnotationAdapter(
-				new SimpleDeclarationAnnotationAdapter("annot.Foo"), "value", 3, "annot.Bar");
-		IndexedAnnotationAdapter iaa = new MemberIndexedAnnotationAdapter(this.idField(cu), idaa);
-		Annotation annotation = iaa.getAnnotation(this.buildASTRoot(cu));
-		assertNull(annotation);
-
-		iaa.moveAnnotation(0);
-		this.assertSourceContains(expected, cu);
-	}
-
-	public void testMoveAnnotation8() throws Exception {
-		this.createAnnotationAndMembers("Bar", "int value();");
-		this.createAnnotationAndMembers("Foo", "annot.Bar[] value();");
-		ICompilationUnit cu = 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, cu);
-
-		IndexedDeclarationAnnotationAdapter idaa = new NestedIndexedDeclarationAnnotationAdapter(
-				new SimpleDeclarationAnnotationAdapter("annot.Foo"), "value", 3, "annot.Bar");
-		IndexedAnnotationAdapter iaa = new MemberIndexedAnnotationAdapter(this.idField(cu), idaa);
-		Annotation annotation = iaa.getAnnotation(this.buildASTRoot(cu));
-		assertNull(annotation);
-
-		iaa.moveAnnotation(0);
-		this.assertSourceContains(expected, cu);
-	}
-
-	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)})";
-		ICompilationUnit cu = 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(cu), idaa);
-		Annotation annotation = iaa.getAnnotation(this.buildASTRoot(cu));
-		assertNull(annotation);
-
-		iaa.moveAnnotation(3);
-		this.assertSourceContains(expected, cu);
-	}
-
-	public void testMoveAnnotation10() throws Exception {
-		this.createAnnotationAndMembers("Bar", "int value();");
-		this.createAnnotationAndMembers("Foo", "annot.Bar[] value();");
-		ICompilationUnit cu = 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(cu), idaa);
-		Annotation annotation = iaa.getAnnotation(this.buildASTRoot(cu));
-		assertNull(annotation);
-		iaa.moveAnnotation(1);
-		this.assertSourceContains(expected, cu);
-	}
-
-	public void testMoveAnnotation11() throws Exception {
-		this.createAnnotationAndMembers("Bar", "int value();");
-		this.createAnnotationAndMembers("Foo", "annot.Bar[] value();");
-		ICompilationUnit cu = 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(cu), idaa);
-		Annotation annotation = iaa.getAnnotation(this.buildASTRoot(cu));
-		assertNull(annotation);
-
-		iaa.moveAnnotation(0);
-		this.assertSourceDoesNotContain("Foo", cu);
-	}
-
-	public void testMoveAnnotation12() throws Exception {
-		this.createAnnotationAndMembers("Bar", "int value();");
-		this.createAnnotationAndMembers("Foo", "annot.Bar[] value();");
-		ICompilationUnit cu = 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(cu), idaa);
-		Annotation annotation = iaa.getAnnotation(this.buildASTRoot(cu));
-		assertNotNull(annotation);
-
-		iaa.moveAnnotation(0);
-		this.assertSourceContains(expected, cu);
-	}
-
-	public void testMoveAnnotation13() throws Exception {
-		this.createAnnotationAndMembers("Bar", "int value();");
-		this.createAnnotationAndMembers("Foo", "annot.Bar[] value();");
-		ICompilationUnit cu = 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(cu), idaa);
-		Annotation annotation = iaa.getAnnotation(this.buildASTRoot(cu));
-		assertNotNull(annotation);
-
-		iaa.moveAnnotation(0);
-		this.assertSourceContains(expected, cu);
-	}
-
-}
diff --git a/jpa/tests/org.eclipse.jpt.core.tests/src/org/eclipse/jpt/core/tests/internal/utility/jdt/SimpleDeclarationAnnotationAdapterTests.java b/jpa/tests/org.eclipse.jpt.core.tests/src/org/eclipse/jpt/core/tests/internal/utility/jdt/SimpleDeclarationAnnotationAdapterTests.java
deleted file mode 100644
index 5884635..0000000
--- a/jpa/tests/org.eclipse.jpt.core.tests/src/org/eclipse/jpt/core/tests/internal/utility/jdt/SimpleDeclarationAnnotationAdapterTests.java
+++ /dev/null
@@ -1,274 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.core.tests.internal.utility.jdt;
-
-import org.eclipse.jdt.core.ICompilationUnit;
-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.utility.jdt.MemberAnnotationAdapter;
-import org.eclipse.jpt.core.internal.utility.jdt.SimpleDeclarationAnnotationAdapter;
-import org.eclipse.jpt.core.utility.jdt.AnnotationAdapter;
-import org.eclipse.jpt.core.utility.jdt.DeclarationAnnotationAdapter;
-import org.eclipse.jpt.core.utility.jdt.Member;
-import org.eclipse.jpt.core.utility.jdt.ModifiedDeclaration;
-
-@SuppressWarnings("nls")
-public class SimpleDeclarationAnnotationAdapterTests extends AnnotationTestCase {
-
-	public SimpleDeclarationAnnotationAdapterTests(String name) {
-		super(name);
-	}
-
-	private void createAnnotation(String annotationName) throws Exception {
-		this.createAnnotation("annot", annotationName);
-	}
-
-	private void createAnnotation(String packageName, String annotationName) throws Exception {
-		this.javaProject.createCompilationUnit(packageName, annotationName + ".java", "public @interface " + annotationName + " {}");
-	}
-
-	public void testAnnotation1() throws Exception {
-		this.createAnnotation("Foo");
-		ICompilationUnit cu = this.createTestType("@annot.Foo");
-		DeclarationAnnotationAdapter daa = new SimpleDeclarationAnnotationAdapter("annot.Foo");
-		AnnotationAdapter aa = new MemberAnnotationAdapter(this.idField(cu), daa);
-		Annotation annotation = aa.getAnnotation(this.buildASTRoot(cu));
-		assertNotNull(annotation);
-		assertEquals("annot.Foo", annotation.getTypeName().getFullyQualifiedName());
-		assertTrue(annotation.isMarkerAnnotation());
-	}
-
-	public void testAnnotation2() throws Exception {
-		this.createAnnotation("Foo");
-		ICompilationUnit cu = this.createTestType("@annot.Foo(1) @annot.Foo(2)");
-		DeclarationAnnotationAdapter daa = new SimpleDeclarationAnnotationAdapter("annot.Foo");
-		AnnotationAdapter aa = new MemberAnnotationAdapter(this.idField(cu), daa);
-		Annotation annotation = aa.getAnnotation(this.buildASTRoot(cu));
-		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 testAnnotation3() throws Exception {
-		this.createAnnotation("Foo");
-		ICompilationUnit cu = this.createTestType("annot.Foo", "@Foo");
-		DeclarationAnnotationAdapter daa = new SimpleDeclarationAnnotationAdapter("annot.Foo");
-		AnnotationAdapter aa = new MemberAnnotationAdapter(this.idField(cu), daa);
-		Annotation annotation = aa.getAnnotation(this.buildASTRoot(cu));
-		assertNotNull(annotation);
-		assertEquals("Foo", annotation.getTypeName().getFullyQualifiedName());
-		assertTrue(annotation.isMarkerAnnotation());
-	}
-
-	public void testAnnotationNull1() throws Exception {
-		this.createAnnotation("Foo");
-		ICompilationUnit cu = this.createTestType();
-		DeclarationAnnotationAdapter daa = new SimpleDeclarationAnnotationAdapter("annot.Foo");
-		AnnotationAdapter aa = new MemberAnnotationAdapter(this.idField(cu), daa);
-		Annotation annotation = aa.getAnnotation(this.buildASTRoot(cu));
-		assertNull(annotation);
-	}
-
-	public void testAnnotationNull2() throws Exception {
-		this.createAnnotation("Foo");
-		this.createAnnotation("Fop");
-		ICompilationUnit cu = this.createTestType("@annot.Fop");
-		DeclarationAnnotationAdapter daa = new SimpleDeclarationAnnotationAdapter("annot.Foo");
-		AnnotationAdapter aa = new MemberAnnotationAdapter(this.idField(cu), daa);
-		Annotation annotation = aa.getAnnotation(this.buildASTRoot(cu));
-		assertNull(annotation);
-		this.assertSourceContains("@annot.Fop", cu);
-	}
-
-	public void testAnnotationNull3() throws Exception {
-		this.createAnnotation("Foo");
-		ICompilationUnit cu = this.createTestType("@annot.Foo");
-		// un-qualified name
-		DeclarationAnnotationAdapter daa = new SimpleDeclarationAnnotationAdapter("Foo");
-		AnnotationAdapter aa = new MemberAnnotationAdapter(this.idField(cu), daa);
-		Annotation annotation = aa.getAnnotation(this.buildASTRoot(cu));
-		assertNull(annotation);
-		this.assertSourceContains("@annot.Foo", cu);
-	}
-
-	public void testRemoveAnnotation1() throws Exception {
-		this.createAnnotation("Foo");
-		ICompilationUnit cu = this.createTestType("@annot.Foo");
-		this.assertSourceContains("@annot.Foo", cu);
-		DeclarationAnnotationAdapter daa = new SimpleDeclarationAnnotationAdapter("annot.Foo");
-		AnnotationAdapter aa = new MemberAnnotationAdapter(this.idField(cu), daa);
-		Annotation annotation = aa.getAnnotation(this.buildASTRoot(cu));
-		assertNotNull(annotation);
-
-		aa.removeAnnotation();
-		this.assertSourceDoesNotContain("@annot.Foo", cu);
-	}
-
-	public void testRemoveAnnotation2() throws Exception {
-		this.createAnnotation("Foo");
-		ICompilationUnit cu = this.createTestType("@annot.Foo(1) @annot.Foo(2)");
-		this.assertSourceContains("@annot.Foo(1) @annot.Foo(2)", cu);
-		DeclarationAnnotationAdapter daa = new SimpleDeclarationAnnotationAdapter("annot.Foo");
-		AnnotationAdapter aa = new MemberAnnotationAdapter(this.idField(cu), daa);
-		Annotation annotation = aa.getAnnotation(this.buildASTRoot(cu));
-		assertNotNull(annotation);
-
-		aa.removeAnnotation();
-		this.assertSourceDoesNotContain("@annot.Foo(1)", cu);
-		this.assertSourceContains("@annot.Foo(2)", cu);
-	}
-
-	public void testNewMarkerAnnotation1() throws Exception {
-		this.createAnnotation("Foo");
-		ICompilationUnit cu = this.createTestType();
-		this.assertSourceDoesNotContain("import annot.Foo;", cu);
-		this.assertSourceDoesNotContain("@Foo", cu);
-		DeclarationAnnotationAdapter daa = new SimpleDeclarationAnnotationAdapter("annot.Foo");
-		AnnotationAdapter aa = new MemberAnnotationAdapter(this.idField(cu), daa);
-		Annotation annotation = aa.getAnnotation(this.buildASTRoot(cu));
-		assertNull(annotation);
-
-		aa.newMarkerAnnotation();
-		this.assertSourceContains("import annot.Foo;", cu);
-		this.assertSourceContains("@Foo", cu);
-	}
-
-	public void testNewMarkerAnnotation2() throws Exception {
-		this.createAnnotation("Foo");
-		ICompilationUnit cu = this.createTestType("@annot.Foo(88)");
-		DeclarationAnnotationAdapter daa = new SimpleDeclarationAnnotationAdapter("annot.Foo");
-		AnnotationAdapter aa = new MemberAnnotationAdapter(this.idField(cu), daa);
-		Annotation annotation = aa.getAnnotation(this.buildASTRoot(cu));
-		assertNotNull(annotation);
-
-		aa.newMarkerAnnotation();
-		this.assertSourceContains("import annot.Foo;", cu);
-		this.assertSourceContains("@Foo", cu);
-		this.assertSourceDoesNotContain("@annot.Foo(88)", cu);
-	}
-
-	public void testNewSingleMemberAnnotation() throws Exception {
-		this.createAnnotation("Foo");
-		ICompilationUnit cu = this.createTestType();
-		this.assertSourceDoesNotContain("@Foo", cu);
-		this.idField(cu).edit(new Member.Editor() {
-			public void edit(ModifiedDeclaration declaration) {
-				SimpleDeclarationAnnotationAdapterTests.this.editNewSingleMemberAnnotation(declaration);
-			}
-		});
-		this.assertSourceContains("import annot.Foo;", cu);
-		this.assertSourceContains("@Foo(\"test string literal\")", cu);
-	}
-
-	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");
-		ICompilationUnit cu = this.createTestType();
-		this.assertSourceDoesNotContain("@Foo", cu);
-		this.idField(cu).edit(new Member.Editor() {
-			public void edit(ModifiedDeclaration declaration) {
-				SimpleDeclarationAnnotationAdapterTests.this.editNewNormalAnnotation(declaration);
-			}
-		});
-		this.assertSourceContains("import annot.Foo;", cu);
-		this.assertSourceContains("@Foo(bar = \"test string literal\")", cu);
-	}
-
-	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);
-	}
-
-	public void testImportCollision1() throws Exception {
-		this.createAnnotation("annot1", "Foo");
-		this.createAnnotation("annot2", "Foo");
-		ICompilationUnit cu = this.createTestType();
-		this.assertSourceDoesNotContain("@Foo", cu);
-		DeclarationAnnotationAdapter daa1 = new SimpleDeclarationAnnotationAdapter("annot1.Foo");
-		DeclarationAnnotationAdapter daa2 = new SimpleDeclarationAnnotationAdapter("annot2.Foo");
-
-		AnnotationAdapter aa1 = new MemberAnnotationAdapter(this.idField(cu), daa1);
-		Annotation annotation1 = aa1.getAnnotation(this.buildASTRoot(cu));
-		assertNull(annotation1);
-
-		AnnotationAdapter aa2 = new MemberAnnotationAdapter(this.idField(cu), daa2);
-		Annotation annotation2 = aa2.getAnnotation(this.buildASTRoot(cu));
-		assertNull(annotation2);
-
-		aa1.newMarkerAnnotation();
-		this.assertSourceContains("import annot1.Foo;", cu);
-		this.assertSourceContains("@Foo", cu);
-
-		aa2.newMarkerAnnotation();
-		this.assertSourceDoesNotContain("import annot2.Foo;", cu);
-		this.assertSourceContains("@annot2.Foo", cu);
-	}
-
-	public void testImportCollision2() throws Exception {
-		this.createAnnotation("annot1", "Foo");
-		this.createAnnotation("annot2", "Foo");
-		ICompilationUnit cu = this.createTestType("annot1.*", "@Foo");
-		this.assertSourceContains("import annot1.*;", cu);
-		this.assertSourceContains("@Foo", cu);
-		DeclarationAnnotationAdapter daa1 = new SimpleDeclarationAnnotationAdapter("annot1.Foo");
-		DeclarationAnnotationAdapter daa2 = new SimpleDeclarationAnnotationAdapter("annot2.Foo");
-
-		AnnotationAdapter aa1 = new MemberAnnotationAdapter(this.idField(cu), daa1);
-		Annotation annotation1 = aa1.getAnnotation(this.buildASTRoot(cu));
-		assertNotNull(annotation1);
-
-		AnnotationAdapter aa2 = new MemberAnnotationAdapter(this.idField(cu), daa2);
-		Annotation annotation2 = aa2.getAnnotation(this.buildASTRoot(cu));
-		assertNull(annotation2);
-
-		aa2.newMarkerAnnotation();
-		this.assertSourceDoesNotContain("import annot2.Foo;", cu);
-		this.assertSourceContains("@annot2.Foo", cu);
-	}
-
-	public void testImportWildCard() throws Exception {
-		this.createAnnotation("Foo");
-		ICompilationUnit cu = this.createTestType("annot.*", "");
-		this.assertSourceContains("import annot.*;", cu);
-		this.assertSourceDoesNotContain("@Foo", cu);
-		DeclarationAnnotationAdapter daa1 = new SimpleDeclarationAnnotationAdapter("annot.Foo");
-
-		AnnotationAdapter aa1 = new MemberAnnotationAdapter(this.idField(cu), daa1);
-		Annotation annotation1 = aa1.getAnnotation(this.buildASTRoot(cu));
-		assertNull(annotation1);
-
-		aa1.newMarkerAnnotation();
-		this.assertSourceDoesNotContain("import annot.Foo;", cu);
-		this.assertSourceContains("@Foo", cu);
-	}
-
-}
diff --git a/jpa/tests/org.eclipse.jpt.core.tests/src/org/eclipse/jpt/core/tests/internal/utility/jdt/TypeTests.java b/jpa/tests/org.eclipse.jpt.core.tests/src/org/eclipse/jpt/core/tests/internal/utility/jdt/TypeTests.java
deleted file mode 100644
index 8efb3be..0000000
--- a/jpa/tests/org.eclipse.jpt.core.tests/src/org/eclipse/jpt/core/tests/internal/utility/jdt/TypeTests.java
+++ /dev/null
@@ -1,51 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2008 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.core.tests.internal.utility.jdt;
-
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.jdt.core.ICompilationUnit;
-
-public class TypeTests extends AnnotationTestCase {
-
-	public TypeTests(String name) {
-		super(name);
-	}
-
-	@Override
-	protected void setUp() throws Exception {
-		super.setUp();
-	}
-
-	protected ICompilationUnit createCompilationUnit(String source) throws CoreException {
-		return this.javaProject.createCompilationUnit(PACKAGE_NAME, FILE_NAME, source);
-	}
-
-	@Override
-	protected void tearDown() throws Exception {
-		super.tearDown();
-	}
-
-	public void test1() throws Exception {
-		ICompilationUnit jdtCompilationUnit = this.createCompilationUnit(this.buildTest1Source());
-		assertNotNull(jdtCompilationUnit);
-	}
-
-	private String buildTest1Source() {
-		StringBuilder sb = new StringBuilder();
-		sb.append("public class ").append(TYPE_NAME).append(" {").append(CR);
-		sb.append("    private int id;").append(CR);
-		sb.append("    public int getId() {").append(CR);
-		sb.append("        return this.id;").append(CR);
-		sb.append("    }").append(CR);
-		sb.append("}").append(CR);
-		return sb.toString();
-	}
-
-}
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 23648ba..0000000
--- a/jpa/tests/org.eclipse.jpt.core.tests/test.xml
+++ /dev/null
@@ -1,47 +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 -->
-	<property name="plugin-name" value="org.eclipse.jpt.core.tests"/>
-    <echo level="debug" message="testRoot: ${testRoot}" />
-    <fail message="testRoot must be set" unless="testRoot" />
-
-	<!-- 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">
-    	<property file="${testRoot}/testServer.properties"/>
-	    <property name="jpt-folder" value="${eclipse-home}/jpt_folder"/>
-	    <delete dir="${jpt-folder}" quiet="true"/>
-
-		<ant target="core-test" antfile="${library-file}" dir="${eclipse-home}">
-		    <property name="data-dir" value="${jpt-folder}"/>
-			<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}"/>
-			<property name="extraVMargs" value="-Dorg.eclipse.jpt.jpa.jar=${testDir}/${jpt-persistence10-jar}"/>
-		</ant>
-	</target>
-
-	<!-- This target holds code to cleanup the testing environment after -->
-	<!-- after all of the tests have been run. You can use this target to -->
-	<!-- delete temporary files that have been created. -->
-	<target name="cleanup">
-	</target>
-
-	<!-- This target runs the test suite. Any actions that need to happen -->
-	<!-- after all the tests have been run should go here. -->
-	<target name="run" depends="init, suite, cleanup">
-	</target>
-</project>
\ No newline at end of file
diff --git a/jpa/tests/org.eclipse.jpt.db.tests/.classpath b/jpa/tests/org.eclipse.jpt.db.tests/.classpath
deleted file mode 100644
index ef8d91c..0000000
--- a/jpa/tests/org.eclipse.jpt.db.tests/.classpath
+++ /dev/null
@@ -1,11 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<classpath>
-	<classpathentry kind="src" path="src"/>
-	<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/J2SE-1.5"/>
-	<classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins">
-		<accessrules>
-			<accessrule kind="accessible" pattern="org/eclipse/jpt/utility/**"/>
-		</accessrules>
-	</classpathentry>
-	<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/.settings/org.eclipse.core.resources.prefs b/jpa/tests/org.eclipse.jpt.db.tests/.settings/org.eclipse.core.resources.prefs
deleted file mode 100644
index b23d0c7..0000000
--- a/jpa/tests/org.eclipse.jpt.db.tests/.settings/org.eclipse.core.resources.prefs
+++ /dev/null
@@ -1,3 +0,0 @@
-#Tue Jan 15 11:11:11 EST 2008
-eclipse.preferences.version=1
-encoding/<project>=ISO-8859-1
diff --git a/jpa/tests/org.eclipse.jpt.db.tests/META-INF/MANIFEST.MF b/jpa/tests/org.eclipse.jpt.db.tests/META-INF/MANIFEST.MF
deleted file mode 100644
index 5bf2455..0000000
--- a/jpa/tests/org.eclipse.jpt.db.tests/META-INF/MANIFEST.MF
+++ /dev/null
@@ -1,20 +0,0 @@
-Manifest-Version: 1.0
-Bundle-ManifestVersion: 2
-Bundle-Name: %pluginName
-Bundle-Vendor: %providerName
-Bundle-SymbolicName: org.eclipse.jpt.db.tests
-Bundle-Version: 1.0.100.qualifier
-Bundle-Activator: org.eclipse.jpt.db.tests.internal.JptDbTestsPlugin
-Bundle-ActivationPolicy: lazy
-Bundle-Localization: plugin
-Bundle-RequiredExecutionEnvironment: J2SE-1.5
-Require-Bundle: org.eclipse.core.runtime;bundle-version="[3.4.0,4.0.0)",
- org.junit;bundle-version="[3.8.2,4.0.0)",
- org.eclipse.datatools.connectivity;bundle-version="[1.1.0,1.2.0)",
- org.eclipse.datatools.connectivity.db.generic;bundle-version="[1.0.0,1.2.0)",
- org.eclipse.datatools.connectivity.sqm.core;bundle-version="1.0.1",
- org.eclipse.datatools.modelbase.sql;bundle-version="1.0.0",
- org.eclipse.jpt.utility;bundle-version="[1.2.0,2.0.0)",
- org.eclipse.jpt.db;bundle-version="[1.2.0,2.0.0)"
-Export-Package: org.eclipse.jpt.db.tests.internal;x-internal:=true,
- org.eclipse.jpt.db.tests.internal.platforms;x-internal:=true
diff --git a/jpa/tests/org.eclipse.jpt.db.tests/about.html b/jpa/tests/org.eclipse.jpt.db.tests/about.html
deleted file mode 100644
index be534ba..0000000
--- a/jpa/tests/org.eclipse.jpt.db.tests/about.html
+++ /dev/null
@@ -1,34 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN">
-<HTML>
-
-<head>
-<title>About</title>
-<meta http-equiv=Content-Type content="text/html; charset=ISO-8859-1">
-</head>
-
-<BODY lang="EN-US">
-
-<H3>About This Content</H3>
-
-<P>May 02, 2008</P>
-
-<H3>License</H3>
-
-<P>The Eclipse Foundation makes available all content in this plug-in 
-("Content"). Unless otherwise indicated below, the Content is provided to you 
-under the terms and conditions of the Eclipse Public License Version 1.0 
-("EPL"). A copy of the EPL is available at
-<A href="http://www.eclipse.org/org/documents/epl-v10.php">http://www.eclipse.org/org/documents/epl-v10.php</A>. 
-For purposes of the EPL, "Program" will mean the Content.</P>
-
-<P>If you did not receive this Content directly from the Eclipse Foundation, the 
-Content is being redistributed by another party ("Redistributor") and different 
-terms and conditions may apply to your use of any object code in the Content. 
-Check the Redistributor's license that was provided with the Content. If no such 
-license exists, contact the Redistributor. Unless otherwise indicated below, the 
-terms and conditions of the EPL still apply to any source code in the Content 
-and such source code may be obtained at
-<A href="http://www.eclipse.org/">http://www.eclipse.org/</A>.</P>
-
-</BODY>
-</HTML>
diff --git a/jpa/tests/org.eclipse.jpt.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/derby.properties b/jpa/tests/org.eclipse.jpt.db.tests/config/derby.properties
deleted file mode 100644
index 242d156..0000000
--- a/jpa/tests/org.eclipse.jpt.db.tests/config/derby.properties
+++ /dev/null
@@ -1,24 +0,0 @@
-################################################################################
-# Copyright (c) 2007, 2008 Oracle. All rights reserved.
-# This program and the accompanying materials are made available under the
-# terms of the Eclipse Public License v1.0, which accompanies this distribution
-# and is available at http://www.eclipse.org/legal/epl-v10.html.
-# 
-# Contributors:
-#     Oracle - initial API and implementation
-################################################################################
-
-# Configure the workspace- and database server-specific settings here.
-
-# user and password are optional for Derby
-userID = 
-password = 
-
-# the JDBC driver JAR(s) must be specified;
-# if there are multiple JARs, separate the names with commas
-# jars = C:/derby/lib/derby.jar
-jars = 
-
-# the JDBC URL is required for Derby
-# url = jdbc:derby:C:/derby/data/testdb;create=true
-url = 
diff --git a/jpa/tests/org.eclipse.jpt.db.tests/config/mysql.properties b/jpa/tests/org.eclipse.jpt.db.tests/config/mysql.properties
deleted file mode 100644
index d6407de..0000000
--- a/jpa/tests/org.eclipse.jpt.db.tests/config/mysql.properties
+++ /dev/null
@@ -1,23 +0,0 @@
-################################################################################
-# Copyright (c) 2007, 2008 Oracle. All rights reserved.
-# This program and the accompanying materials are made available under the
-# terms of the Eclipse Public License v1.0, which accompanies this distribution
-# and is available at http://www.eclipse.org/legal/epl-v10.html.
-# 
-# Contributors:
-#     Oracle - initial API and implementation
-################################################################################
-
-# Configure the workspace- and database server-specific settings here.
-
-# user and password are optional, depending on the platform
-userID = 
-password = 
-
-# the JDBC driver JAR(s) must be specified;
-# if there are multiple JARs, separate the names with commas
-# jars = C:/mysql/mysql-connector-java-5.0.6-bin.jar
-jars = 
-
-# the JDBC URL is optional for MySQL
-# url = jdbc:mysql://localhost:3306
diff --git a/jpa/tests/org.eclipse.jpt.db.tests/config/oracle10g.properties b/jpa/tests/org.eclipse.jpt.db.tests/config/oracle10g.properties
deleted file mode 100644
index 4b911b4..0000000
--- a/jpa/tests/org.eclipse.jpt.db.tests/config/oracle10g.properties
+++ /dev/null
@@ -1,24 +0,0 @@
-################################################################################
-# Copyright (c) 2007, 2008 Oracle. All rights reserved.
-# This program and the accompanying materials are made available under the
-# terms of the Eclipse Public License v1.0, which accompanies this distribution
-# and is available at http://www.eclipse.org/legal/epl-v10.html.
-# 
-# Contributors:
-#     Oracle - initial API and implementation
-################################################################################
-
-# Configure the workspace- and database server-specific settings here.
-
-# user and password are optional, depending on the platform
-userID = scott
-password = tiger
-
-# the JDBC driver JAR(s) must be specified;
-# if there are multiple JARs, separate the names with commas
-# jars = C:/oracle/jdbc/lib/ojdbc5.jar
-jars = 
-
-# the JDBC URL is required
-# url = jdbc:oracle:thin:@localhost:1521:testdb
-url = 
diff --git a/jpa/tests/org.eclipse.jpt.db.tests/config/oracle10gXE.properties b/jpa/tests/org.eclipse.jpt.db.tests/config/oracle10gXE.properties
deleted file mode 100644
index e67c01a..0000000
--- a/jpa/tests/org.eclipse.jpt.db.tests/config/oracle10gXE.properties
+++ /dev/null
@@ -1,24 +0,0 @@
-################################################################################
-# Copyright (c) 2007, 2008 Oracle. All rights reserved.
-# This program and the accompanying materials are made available under the
-# terms of the Eclipse Public License v1.0, which accompanies this distribution
-# and is available at http://www.eclipse.org/legal/epl-v10.html.
-# 
-# Contributors:
-#     Oracle - initial API and implementation
-################################################################################
-
-# Configure the workspace- and database server-specific settings here.
-
-# user and password are optional, depending on the platform
-userID = scott
-password = tiger
-
-# the JDBC driver JAR(s) must be specified;
-# if there are multiple JARs, separate the names with commas
-# jars = C:/oracle/jdbc/lib/ojdbc5.jar
-jars = 
-
-# the JDBC URL is required
-# url = jdbc:oracle:thin:@localhost:1521:XE
-url = 
diff --git a/jpa/tests/org.eclipse.jpt.db.tests/config/oracle9i.properties b/jpa/tests/org.eclipse.jpt.db.tests/config/oracle9i.properties
deleted file mode 100644
index 4b911b4..0000000
--- a/jpa/tests/org.eclipse.jpt.db.tests/config/oracle9i.properties
+++ /dev/null
@@ -1,24 +0,0 @@
-################################################################################
-# Copyright (c) 2007, 2008 Oracle. All rights reserved.
-# This program and the accompanying materials are made available under the
-# terms of the Eclipse Public License v1.0, which accompanies this distribution
-# and is available at http://www.eclipse.org/legal/epl-v10.html.
-# 
-# Contributors:
-#     Oracle - initial API and implementation
-################################################################################
-
-# Configure the workspace- and database server-specific settings here.
-
-# user and password are optional, depending on the platform
-userID = scott
-password = tiger
-
-# the JDBC driver JAR(s) must be specified;
-# if there are multiple JARs, separate the names with commas
-# jars = C:/oracle/jdbc/lib/ojdbc5.jar
-jars = 
-
-# the JDBC URL is required
-# url = jdbc:oracle:thin:@localhost:1521:testdb
-url = 
diff --git a/jpa/tests/org.eclipse.jpt.db.tests/config/postgresql.properties b/jpa/tests/org.eclipse.jpt.db.tests/config/postgresql.properties
deleted file mode 100644
index 32fafe4..0000000
--- a/jpa/tests/org.eclipse.jpt.db.tests/config/postgresql.properties
+++ /dev/null
@@ -1,23 +0,0 @@
-################################################################################
-# Copyright (c) 2007, 2008 Oracle. All rights reserved.
-# This program and the accompanying materials are made available under the
-# terms of the Eclipse Public License v1.0, which accompanies this distribution
-# and is available at http://www.eclipse.org/legal/epl-v10.html.
-# 
-# Contributors:
-#     Oracle - initial API and implementation
-################################################################################
-
-# Configure the workspace- and database server-specific settings here.
-
-# user and password are optional, depending on the platform
-userID = 
-password = 
-
-# the JDBC driver JAR(s) must be specified;
-# if there are multiple JARs, separate the names with commas
-# jars = C:/postgresql/jdbc/postgresql-8.2-505.jdbc3.jar
-jars = 
-
-# the JDBC URL is optional for PostgreSQL
-# url = jdbc:postgresql
diff --git a/jpa/tests/org.eclipse.jpt.db.tests/config/sqlserver.properties b/jpa/tests/org.eclipse.jpt.db.tests/config/sqlserver.properties
deleted file mode 100644
index f72b645..0000000
--- a/jpa/tests/org.eclipse.jpt.db.tests/config/sqlserver.properties
+++ /dev/null
@@ -1,24 +0,0 @@
-################################################################################
-# Copyright (c) 2007, 2008 Oracle. All rights reserved.
-# This program and the accompanying materials are made available under the
-# terms of the Eclipse Public License v1.0, which accompanies this distribution
-# and is available at http://www.eclipse.org/legal/epl-v10.html.
-# 
-# Contributors:
-#     Oracle - initial API and implementation
-################################################################################
-
-# Configure the workspace- and database server-specific settings here.
-
-# user and password are optional, depending on the platform
-userID = 
-password = 
-
-# the JDBC driver JAR(s) must be specified;
-# if there are multiple JARs, separate the names with commas
-# jars = C:/sqlserver/lib/sqljdbc.jar
-jars = 
-
-# the JDBC URL is required
-# url = jdbc:sqlserver://localhost:1433
-url = 
diff --git a/jpa/tests/org.eclipse.jpt.db.tests/config/sybase.properties b/jpa/tests/org.eclipse.jpt.db.tests/config/sybase.properties
deleted file mode 100644
index 493d5d4..0000000
--- a/jpa/tests/org.eclipse.jpt.db.tests/config/sybase.properties
+++ /dev/null
@@ -1,24 +0,0 @@
-################################################################################
-# Copyright (c) 2007, 2008 Oracle. All rights reserved.
-# This program and the accompanying materials are made available under the
-# terms of the Eclipse Public License v1.0, which accompanies this distribution
-# and is available at http://www.eclipse.org/legal/epl-v10.html.
-# 
-# Contributors:
-#     Oracle - initial API and implementation
-################################################################################
-
-# Configure the workspace- and database server-specific settings here.
-
-# user and password are optional, depending on the platform
-userID = 
-password = 
-
-# the JDBC driver JAR(s) must be specified;
-# if there are multiple JARs, separate the names with commas
-# jars = C:/sybase/lib/jconn3.jar
-jars = 
-
-# the JDBC URL is required
-# url = jdbc:sybase:Tds:localhost:5000
-url = 
diff --git a/jpa/tests/org.eclipse.jpt.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/JDBCTests.java b/jpa/tests/org.eclipse.jpt.db.tests/src/org/eclipse/jpt/db/tests/internal/JDBCTests.java
deleted file mode 100644
index ce05d76..0000000
--- a/jpa/tests/org.eclipse.jpt.db.tests/src/org/eclipse/jpt/db/tests/internal/JDBCTests.java
+++ /dev/null
@@ -1,135 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.db.tests.internal;
-
-import java.sql.Connection;
-import java.sql.DriverManager;
-
-import junit.framework.TestCase;
-
-/**
- * These aren't tests. They are just an easy way to dump JDBC metadata to the
- * console.
- */
-@SuppressWarnings("nls")
-public class JDBCTests extends TestCase {
-
-	public JDBCTests(String name) {
-		super(name);
-	}
-
-	public void testDerby() throws Exception {
-		this.dumpMetaData(DERBY);
-	}
-
-	public void testMySQL() throws Exception {
-		this.dumpMetaData(MYSQL);
-	}
-
-	public void testOracle() throws Exception {
-		this.dumpMetaData(ORACLE);
-	}
-
-	public void testPostgreSQL() throws Exception {
-		this.dumpMetaData(POSTGRESQL);
-	}
-
-	public void testSybase() throws Exception {
-		this.dumpMetaData(SYBASE);
-	}
-
-	protected void dumpMetaData(ConnectionConfig config) throws Exception {
-		System.out.println("***** PLATFORM: " + config.platformName + " *****");
-		System.out.println();
-		Class.forName(config.driverClassName);
-		Connection connection = DriverManager.getConnection(this.buildURL(config), config.user, config.password);
-		System.out.println("CATALOGS:");
-		JDBCTools.dump(connection.getMetaData().getCatalogs());
-		System.out.println();
-		System.out.println("SCHEMATA:");
-		JDBCTools.dump(connection.getMetaData().getSchemas());
-		connection.close();
-		System.out.println();
-	}
-
-	protected String buildURL(ConnectionConfig config) {
-		return "jdbc:" + config.databaseURL;
-	}
-
-	protected static final ConnectionConfig DERBY =
-		new ConnectionConfig(
-			"Derby",
-			"org.apache.derby.jdbc.EmbeddedDriver",
-			"derby:C:/derby/data/test",
-			null,
-			null
-		);
-
-	protected static final ConnectionConfig MYSQL =
-		new ConnectionConfig(
-			"MySQL",
-			"com.mysql.jdbc.Driver",
-			"mysql://localhost:3306",
-			"root",
-			"oracle"
-		);
-
-	protected static final ConnectionConfig ORACLE =
-		new ConnectionConfig(
-			"Oracle",
-			"oracle.jdbc.OracleDriver",
-			"oracle:thin:@localhost:1521:orcl",
-			"scott",
-			"tiger"
-		);
-
-	protected static final ConnectionConfig POSTGRESQL =
-		new ConnectionConfig(
-			"PostgreSQL",
-			"org.postgresql.Driver",
-			"postgresql:postgres",
-			"postgres",
-			"oracle"
-		);
-
-	// the Sybase server must be configured explicitly to "localhost"
-	// in the config file [SYBASE]/ini/sql.ini
-	protected static final ConnectionConfig SYBASE =
-		new ConnectionConfig(
-			"Sybase",
-			"com.sybase.jdbc3.jdbc.SybDriver",
-			"sybase:Tds:localhost:5000",
-			"sa",
-			"oracle"
-		);
-
-	protected static class ConnectionConfig {
-		protected final String platformName;
-		protected final String driverClassName;
-		protected final String databaseURL;
-		protected final String user;
-		protected final String password;
-		protected ConnectionConfig(
-				String platformName,
-				String driverClassName,
-				String databaseURL,
-				String user,
-				String password
-		) {
-			super();
-			this.platformName = platformName;
-			this.driverClassName = driverClassName;
-			this.databaseURL = databaseURL;
-			this.user = user;
-			this.password = password;
-		}
-	}
-
-}
diff --git a/jpa/tests/org.eclipse.jpt.db.tests/src/org/eclipse/jpt/db/tests/internal/JDBCTools.java b/jpa/tests/org.eclipse.jpt.db.tests/src/org/eclipse/jpt/db/tests/internal/JDBCTools.java
deleted file mode 100644
index 57c98fe..0000000
--- a/jpa/tests/org.eclipse.jpt.db.tests/src/org/eclipse/jpt/db/tests/internal/JDBCTools.java
+++ /dev/null
@@ -1,105 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.db.tests.internal;
-
-import java.io.OutputStreamWriter;
-import java.io.PrintWriter;
-import java.sql.Connection;
-import java.sql.ResultSet;
-import java.sql.SQLException;
-import java.sql.Statement;
-import java.util.ArrayList;
-import java.util.HashMap;
-import java.util.Iterator;
-import java.util.Map;
-
-import org.eclipse.jpt.utility.internal.iterators.ResultSetIterator;
-
-@SuppressWarnings("nls")
-public class JDBCTools {
-
-	public static void dump(Connection connection, String sql) throws SQLException {
-		dump(execute(connection, sql));
-	}
-
-	public static void dump(ResultSet resultSet) throws SQLException {
-		PrintWriter pw = new PrintWriter(new OutputStreamWriter(System.out));
-		// synchronize the console so everything is contiguous
-		synchronized (System.out) {
-			dumpOn(resultSet, pw);
-		}
-		pw.flush();
-	}
-
-	public static void dumpOn(ResultSet resultSet, PrintWriter pw) throws SQLException {
-		ArrayList<HashMap<String, Object>> maps = convertToMaps(resultSet);
-		for (Iterator<HashMap<String, Object>> mapStream = maps.iterator(); mapStream.hasNext(); ) {
-			for (Iterator<Map.Entry<String, Object>> entryStream = mapStream.next().entrySet().iterator(); entryStream.hasNext(); ) {
-				Map.Entry<String, Object> entry = entryStream.next();
-				pw.print(entry.getKey());
-				pw.print(" = ");
-				pw.print(entry.getValue());
-				pw.println();
-			}
-			if (mapStream.hasNext()) {
-				pw.println();
-			}
-		}
-		pw.println("total rows: " + maps.size());
-	}
-
-	public static ArrayList<HashMap<String, Object>> convertToMaps(Connection connection, String sql) throws SQLException {
-		return convertToMaps(execute(connection, sql));
-	}
-
-	public static ResultSet execute(Connection connection, String sql) throws SQLException {
-		Statement statement = connection.createStatement();
-		statement.execute(sql);
-		ResultSet resultSet = statement.getResultSet();
-		statement.close();
-		return resultSet;
-	}
-
-	public static ArrayList<HashMap<String, Object>> convertToMaps(ResultSet resultSet) throws SQLException {
-		ArrayList<HashMap<String, Object>> rows = new ArrayList<HashMap<String, Object>>();
-		for (Iterator<HashMap<String, Object>> stream = buildMapIterator(resultSet); stream.hasNext(); ) {
-			rows.add(stream.next());
-		}
-		return rows;
-	}
-
-	public static Iterator<HashMap<String, Object>> buildMapIterator(ResultSet resultSet) throws SQLException {
-		return new ResultSetIterator<HashMap<String, Object>>(resultSet, new MapResultSetIteratorAdapter(buildColumnNames(resultSet)));
-	}
-
-	public static String[] buildColumnNames(ResultSet resultSet) throws SQLException {
-		String[] names = new String[resultSet.getMetaData().getColumnCount()];
-		for (int i = 0; i < names.length; i++) {
-			names[i] = resultSet.getMetaData().getColumnName(i + 1);  // NB: ResultSet index/subscript is 1-based
-		}
-		return names;
-	}
-
-	public static class MapResultSetIteratorAdapter implements ResultSetIterator.Adapter<HashMap<String, Object>> {
-		private final String[] columnNames;
-		public MapResultSetIteratorAdapter(String[] columnNames) {
-			super();
-			this.columnNames = columnNames;
-		}
-		public HashMap<String, Object> buildNext(ResultSet rs) throws SQLException {
-			HashMap<String, Object> map = new HashMap<String, Object>(this.columnNames.length);
-			for (int i = 0; i < this.columnNames.length; i++) {
-				map.put(this.columnNames[i], rs.getObject(i + 1));  // NB: ResultSet index/subscript is 1-based
-			}
-			return map;
-		}
-	}
-
-}
diff --git a/jpa/tests/org.eclipse.jpt.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 ea34d08..0000000
--- a/jpa/tests/org.eclipse.jpt.db.tests/src/org/eclipse/jpt/db/tests/internal/JptDbTests.java
+++ /dev/null
@@ -1,34 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2008 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.db.tests.internal;
-
-import junit.framework.Test;
-import junit.framework.TestSuite;
-import org.eclipse.jpt.db.tests.internal.platforms.AllPlatformTests;
-
-/**
- *  JPT DB Tests
- */
-public class JptDbTests {
-
-    public static Test suite() {
-		TestSuite suite = new TestSuite(JptDbTests.class.getPackage().getName());
-    
-        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 6d517b5..0000000
--- a/jpa/tests/org.eclipse.jpt.db.tests/src/org/eclipse/jpt/db/tests/internal/JptDbTestsPlugin.java
+++ /dev/null
@@ -1,56 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.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 INSTANCE;
-
-	public static final String BUNDLE_ID = "org.eclipse.jpt.db.tests"; //$NON-NLS-1$
-
-	/**
-	 * Returns the shared instance
-	 */
-	public static JptDbTestsPlugin instance() {
-		return INSTANCE;
-	}
-	
-	/**
-	 * The constructor
-	 */
-	public JptDbTestsPlugin() {
-		super();
-		INSTANCE = this;
-	}
-
-	/**
-	 * This method is called upon plug-in activation
-	 */
-	@Override
-	public void start(BundleContext context) throws Exception {
-		super.start(context);
-	}
-
-	/**
-	 * This method is called when the plug-in is stopped
-	 */
-	@Override
-	public void stop(BundleContext context) throws Exception {
-		INSTANCE = null;
-		super.stop(context);
-	}
-}
diff --git a/jpa/tests/org.eclipse.jpt.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 22ece7e..0000000
--- a/jpa/tests/org.eclipse.jpt.db.tests/src/org/eclipse/jpt/db/tests/internal/platforms/AllPlatformTests.java
+++ /dev/null
@@ -1,37 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2008 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.db.tests.internal.platforms;
-
-import junit.framework.Test;
-import junit.framework.TestSuite;
-
-public class AllPlatformTests {
-
-    public static Test suite() {
-		TestSuite suite = new TestSuite(AllPlatformTests.class.getPackage().getName());
-
-		suite.addTestSuite(DerbyTests.class);
-		suite.addTestSuite(MySQLTests.class);
-		suite.addTestSuite(Oracle10gTests.class);
-//		suite.addTestSuite(Oracle10gXETests.class);
-//		suite.addTestSuite(Oracle9iTests.class);
-		suite.addTestSuite(PostgreSQLTests.class);
-//		suite.addTestSuite(SQLServerTests.class);
-		suite.addTestSuite(SybaseTests.class);
-
-        return suite;
-    }
-
-    private AllPlatformTests() {
-        super();
-        throw new UnsupportedOperationException();
-    }
-
-}
diff --git a/jpa/tests/org.eclipse.jpt.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 7080bdb..0000000
--- a/jpa/tests/org.eclipse.jpt.db.tests/src/org/eclipse/jpt/db/tests/internal/platforms/DTPPlatformTests.java
+++ /dev/null
@@ -1,1020 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.db.tests.internal.platforms;
-
-import java.io.File;
-import java.io.IOException;
-import java.io.OutputStreamWriter;
-import java.net.URL;
-import java.sql.Connection;
-import java.sql.DatabaseMetaData;
-import java.sql.ResultSet;
-import java.sql.SQLException;
-import java.sql.Statement;
-import java.util.ArrayList;
-import java.util.Iterator;
-import java.util.List;
-import java.util.Properties;
-
-import junit.framework.TestCase;
-
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.IPath;
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.core.runtime.Platform;
-import org.eclipse.datatools.connectivity.ConnectionProfileException;
-import org.eclipse.datatools.connectivity.IConnectionProfile;
-import org.eclipse.datatools.connectivity.IManagedConnection;
-import org.eclipse.datatools.connectivity.ProfileManager;
-import org.eclipse.datatools.connectivity.drivers.IDriverMgmtConstants;
-import org.eclipse.datatools.connectivity.drivers.IPropertySet;
-import org.eclipse.datatools.connectivity.drivers.PropertySetImpl;
-import org.eclipse.datatools.connectivity.drivers.XMLFileManager;
-import org.eclipse.datatools.connectivity.drivers.jdbc.IJDBCDriverDefinitionConstants;
-import org.eclipse.datatools.connectivity.internal.ConnectivityPlugin;
-import org.eclipse.datatools.connectivity.sqm.core.connection.ConnectionInfo;
-import org.eclipse.datatools.connectivity.sqm.core.rte.ICatalogObject;
-import org.eclipse.jpt.db.Catalog;
-import org.eclipse.jpt.db.Column;
-import org.eclipse.jpt.db.ConnectionListener;
-import org.eclipse.jpt.db.ConnectionProfile;
-import org.eclipse.jpt.db.ConnectionProfileFactory;
-import org.eclipse.jpt.db.ConnectionProfileListener;
-import org.eclipse.jpt.db.Database;
-import org.eclipse.jpt.db.DatabaseFinder;
-import org.eclipse.jpt.db.ForeignKey;
-import org.eclipse.jpt.db.JptDbPlugin;
-import org.eclipse.jpt.db.Schema;
-import org.eclipse.jpt.db.SchemaContainer;
-import org.eclipse.jpt.db.Sequence;
-import org.eclipse.jpt.db.Table;
-import org.eclipse.jpt.db.ForeignKey.ColumnPair;
-import org.eclipse.jpt.db.tests.internal.JptDbTestsPlugin;
-import org.eclipse.jpt.utility.internal.ClassTools;
-import org.eclipse.jpt.utility.internal.IndentingPrintWriter;
-import org.eclipse.jpt.utility.internal.StringTools;
-import org.eclipse.jpt.utility.internal.iterators.ResultSetIterator;
-
-/**
- * Base class for testing DTP wrappers on various databases.
- */
-@SuppressWarnings("nls")
-public abstract class DTPPlatformTests extends TestCase {
-
-	/**
-	 * The platform properties are loaded from a Java properties file in the
-	 * 'org.eclipse.jpt.db.tests/config' directory. Each database platform has
-	 * its own properties file (e.g. 'derby.properties').
-	 */
-	private Properties platformProperties;
-
-	/**
-	 * This is the Dali connection profile wrapper.
-	 */
-	protected ConnectionProfile connectionProfile;
-
-
-	// ********** constants **********
-
-	private static final String PLATFORM_CONFIG_DIRECTORY = "config";
-
-	private static final String DB_USER_ID_PROPERTY = "userID";
-		private static final String DB_USER_ID_DEFAULT = "user";
-
-	private static final String DB_PASSWORD_PROPERTY = "password";
-		private static final String DB_PASSWORD_DEFAULT = "";
-
-	private static final String DB_DRIVER_JARS_PROPERTY = "jars";
-		// required - no default
-
-	private static final String DB_URL_PROPERTY = "url";
-		// required - no default
-
-
-
-	// ********** constructor **********
-
-	protected DTPPlatformTests(String name) {
-		super(name);
-	}
-
-
-	// ********** set-up/tear-down **********
-
-	@Override
-	protected void setUp() throws Exception {
-		super.setUp();
-
-		this.platformProperties = this.loadPlatformProperties();
-		this.buildDTPDriverDefinitionFile();
-		this.buildDTPConnectionProfile();
-		this.connectionProfile = this.getConnectionProfileFactory().buildConnectionProfile(this.getProfileName(), DatabaseFinder.Default.instance());
-	}
-
-	@Override
-	protected void tearDown() throws Exception {
-		this.connectionProfile = null;
-		this.platformProperties = null;
-
-		super.tearDown();
-	}
-
-	// ***** platform properties file
-	private Properties loadPlatformProperties() throws IOException {
-		Properties p = new Properties();
-		p.load(this.buildPlatformPropertiesFileURL().openStream());
-		return p;
-	}
-
-	private URL buildPlatformPropertiesFileURL() {
-		return Platform.getBundle(this.getTestPluginBundleID()).getEntry(this.getPlatformPropertiesFilePath());
-	}
-
-	private String getTestPluginBundleID() {
-		return JptDbTestsPlugin.BUNDLE_ID;
-	}
-
-	private String getPlatformPropertiesFilePath() {
-		return this.getPlatformPropertiesDirectoryName() + '/' + this.getPlatformPropertiesFileName();
-	}
-
-	private String getPlatformPropertiesDirectoryName() {
-		return PLATFORM_CONFIG_DIRECTORY;
-	}
-
-	/**
-	 * Each database platform has a separate properties file in the 'config'
-	 * directory that must be customized by whomever is executing the tests.
-	 */
-	protected abstract String getPlatformPropertiesFileName();
-
-	// ***** driver definition file
-	private void buildDTPDriverDefinitionFile() throws CoreException {
-		XMLFileManager.setStorageLocation(this.getDTPDriverDefinitionLocation());
-		XMLFileManager.setFileName(this.getDTPDriverFileName());
-
-		IPropertySet[] sets = XMLFileManager.loadPropertySets();
-		for (IPropertySet set : sets) {
-			if (set.getID().equals(this.getDriverDefinitionID())) {
-				return;  // property sets live across tests
-			}
-		}
-
-		XMLFileManager.saveNamedPropertySet(this.buildDTPDriverDefinitionPropertySets());
-
-		// verify the file was created:
-		File driverDefinitioneFile = this.getDTPDriverDefinitionLocation().append(this.getDTPDriverFileName()).toFile();
-		assertTrue(driverDefinitioneFile.exists());
-	}
-
-	private IPath getDTPDriverDefinitionLocation() {
-		return ConnectivityPlugin.getDefault().getStateLocation();
-	}
-
-	private String getDTPDriverFileName() {
-		return IDriverMgmtConstants.DRIVER_FILE;
-	}
-
-	private IPropertySet[] buildDTPDriverDefinitionPropertySets() {
-		IPropertySet[] propertySets = new IPropertySet[1];
-		PropertySetImpl propertySet = new PropertySetImpl(this.getDriverName(), this.getDriverDefinitionID());
-		propertySet.setProperties(this.getDriverDefinitionID(), this.buildDTPDriverDefinitionProperties());
-		propertySets[0] = propertySet;
-		return propertySets;
-	}
-
-	protected abstract String getDriverName();
-
-	protected abstract String getDriverDefinitionID();
-
-	private Properties buildDTPDriverDefinitionProperties() {
-		Properties p = new Properties();
-		p.setProperty(ConnectionProfile.DRIVER_DEFINITION_TYPE_PROP_ID, this.getDriverDefinitionType());
-		p.setProperty(ConnectionProfile.DRIVER_JAR_LIST_PROP_ID, this.getJDBCDriverJarList());
-		p.setProperty(IJDBCDriverDefinitionConstants.DATABASE_VENDOR_PROP_ID, this.getDatabaseVendor());
-		p.setProperty(IJDBCDriverDefinitionConstants.DATABASE_VERSION_PROP_ID, this.getDatabaseVersion());
-		p.setProperty(IJDBCDriverDefinitionConstants.DRIVER_CLASS_PROP_ID, this.getDriverClass());
-		p.setProperty(IJDBCDriverDefinitionConstants.URL_PROP_ID, this.getJDBCURL());
-		p.setProperty(IJDBCDriverDefinitionConstants.USERNAME_PROP_ID, this.getUserID());
-		p.setProperty(IJDBCDriverDefinitionConstants.PASSWORD_PROP_ID, this.getPassword());
-		return p;
-	}
-
-	protected abstract String getDriverDefinitionType();
-
-	/**
-	 * The JAR list is workspace-specific and is set in the properties file.
-	 */
-	private String getJDBCDriverJarList() {
-		return this.getRequiredPlatformProperty(DB_DRIVER_JARS_PROPERTY);
-	}
-
-	protected abstract String getDatabaseVendor();
-
-	protected abstract String getDatabaseVersion();
-
-	protected abstract String getDriverClass();
-
-	/**
-	 * The database URL is workspace-specific and is set in the properties file
-	 * for some databases.
-	 */
-	private String getJDBCURL() {
-		return this.platformProperties.getProperty(DB_URL_PROPERTY, this.getDefaultJDBCURL());
-	}
-
-	protected String getDefaultJDBCURL() {
-		return "";
-	}
-
-	/**
-	 * The user ID is optional and can be set in the properties file.
-	 */
-	protected String getUserID() {
-		return this.platformProperties.getProperty(DB_USER_ID_PROPERTY, DB_USER_ID_DEFAULT);
-	}
-
-	/**
-	 * The password is optional and can be set in the properties file.
-	 */
-	private String getPassword() {
-		return this.platformProperties.getProperty(DB_PASSWORD_PROPERTY, DB_PASSWORD_DEFAULT);
-	}
-
-	// ***** DTP connection profile
-	private void buildDTPConnectionProfile() throws ConnectionProfileException {
-		if (this.getDTPProfileManager().getProfileByName(this.getProfileName()) != null) {
-			return;  // profiles live across tests
-		}
-		this.createProfile(this.getProfileName());
-		assertNotNull(this.getDTPProfileManager().getProfileByName(this.getProfileName()));
-	}
-
-	protected void createProfile(String profileName) throws ConnectionProfileException {
-		this.getDTPProfileManager().createProfile(
-				profileName,
-				this.getProfileDescription(),
-				this.getProviderID(),
-				this.buildDTPConnectionProfileProperties()
-		);
-	}
-
-	protected abstract String getProfileName();
-
-	protected abstract String getProfileDescription();
-
-	protected String getProviderID() {
-		return ConnectionProfile.CONNECTION_PROFILE_TYPE;
-	}
-	 
-	protected Properties buildDTPConnectionProfileProperties() {
-		Properties p = new Properties();
-		p.setProperty(IJDBCDriverDefinitionConstants.USERNAME_PROP_ID, this.getUserID());
-		p.setProperty(IJDBCDriverDefinitionConstants.PASSWORD_PROP_ID, this.getPassword());
-		p.setProperty(ConnectionProfile.DRIVER_DEFINITION_PROP_ID, this.getDriverDefinitionID());
-
-		p.setProperty(IJDBCDriverDefinitionConstants.DRIVER_CLASS_PROP_ID, this.getDriverClass());
-		p.setProperty(IJDBCDriverDefinitionConstants.URL_PROP_ID, this.getJDBCURL());
-		p.setProperty(IJDBCDriverDefinitionConstants.DATABASE_VENDOR_PROP_ID, this.getDatabaseVendor());
-		p.setProperty(IJDBCDriverDefinitionConstants.DATABASE_VERSION_PROP_ID, this.getDatabaseVersion());
-
-		p.setProperty(ConnectionProfile.DATABASE_SAVE_PWD_PROP_ID, this.passwordIsSaved());
-		return p;
-	}
-
-	private String passwordIsSaved() {
-		return "true";
-	}
-
-
-	// ********** tests **********
-
-	public void testConnectionProfileListener() throws ConnectionProfileException {
-		TestConnectionProfileListener listener = new TestConnectionProfileListener();
-		this.getConnectionProfileFactory().addConnectionProfileListener(listener);
-
-		String cpName1 = this.getProfileName() + "1";
-		this.createProfile(cpName1);
-		IConnectionProfile dtpCP = this.getDTPProfileManager().getProfileByName(cpName1);
-		assertNotNull(dtpCP);
-
-		assertEquals(cpName1, listener.addedName);
-		listener.clear();
-
-		String cpName2 = this.getProfileName() + "2";
-		this.getDTPProfileManager().modifyProfile(dtpCP, cpName2, null);
-		assertEquals(cpName1, listener.renamedOldName);
-		assertEquals(cpName2, listener.renamedNewName);
-		listener.clear();
-
-		ConnectionProfile cp = this.getConnectionProfileFactory().buildConnectionProfile(cpName2);
-		assertNotNull(cp);
-
-		this.getDTPProfileManager().deleteProfile(dtpCP);
-		assertEquals(cpName2, listener.removedName);
-		listener.clear();
-
-		cp = this.getConnectionProfileFactory().buildConnectionProfile(cpName2);
-		assertNull(cp);
-
-		this.getConnectionProfileFactory().removeConnectionProfileListener(listener);
-	}
-
-	public void testName() {
-		assertEquals(this.getProfileName(), this.connectionProfile.getName());
-	}
-
-	public void testConnection() throws Exception {
-		assertTrue(this.connectionProfile.isInactive());
-		assertTrue(this.connectionProfile.isDisconnected());
-		this.connectionProfile.connect();
-		assertTrue(this.connectionProfile.isActive());
-		assertTrue(this.connectionProfile.isConnected());
-
-		this.verifyDatabaseVersionNumber();
-		this.verifyDatabaseVendor();
-		this.verifyDatabaseContent();
-
-		this.connectionProfile.disconnect();
-		assertTrue(this.connectionProfile.isInactive());
-		assertTrue(this.connectionProfile.isDisconnected());
-	}
-
-	private void verifyDatabaseVersionNumber() {
-		Database database = this.connectionProfile.getDatabase();
-		assertNotNull(database);
-
-		String actual = database.getVersion();
-		String expected = this.getDatabaseVersion();
-		String errorMessage = "expected: " + expected + " - actual: " + actual;
-		// partial match is good enough
-		assertTrue(errorMessage, actual.indexOf(expected) != -1);
-	}
-
-	private void verifyDatabaseVendor() {
-		Database database = this.connectionProfile.getDatabase();
-		String actual = database.getVendorName();
-		String expected = this.getDatabaseVendor();
-		assertEquals(expected, actual);
-	}
-
-	private void verifyDatabaseContent() {
-		Database database = this.connectionProfile.getDatabase();
-		assertTrue(database.schemataSize() >= 0);
-
-		Schema schema = database.getDefaultSchema();
-		if (schema != null) {
-			if (schema.tablesSize() > 0) {
-				Table table = schema.tables().next();
-				assertTrue(table.columnsSize() >= 0);
-				assertTrue(table.primaryKeyColumnsSize() >= 0);
-				assertTrue(table.foreignKeysSize() >= 0);
-			}
-		}
-	}
-
-	protected abstract boolean executeOfflineTests();
-
-	public final void testOffline() {
-		if ( ! this.executeOfflineTests()) {
-			return;
-		}
-		if ( ! this.connectionProfile.supportsWorkOfflineMode()) {
-			return;
-		}
-
-		this.prepareForOfflineWork();
-
-		IStatus status = this.connectionProfile.workOffline();
-		assertTrue(status.isOK());
-		assertTrue(this.connectionProfile.isActive());
-		assertTrue(this.connectionProfile.isWorkingOffline());
-
-		this.connectionProfile.disconnect();
-		assertTrue(this.connectionProfile.isInactive());
-		assertTrue(this.connectionProfile.isDisconnected());
-	}
-
-	protected void prepareForOfflineWork() {
-		if ( ! this.connectionProfile.canWorkOffline()) {
-			this.connectionProfile.connect();
-			IStatus status = this.connectionProfile.saveWorkOfflineData();
-			assertTrue(status.isOK());
-			this.connectionProfile.disconnect();
-			assertTrue(this.connectionProfile.canWorkOffline());
-		}
-	}
-
-	public void testConnectionListenerConnect() {
-		assertTrue(this.connectionProfileHasNoListeners());
-		TestConnectionListener listener = new TestConnectionListener();
-		this.connectionProfile.addConnectionListener(listener);
-		assertTrue(this.connectionProfileHasAnyListeners());
-
-		this.connectionProfile.connect();
-		assertSame(this.connectionProfile, listener.openedProfile);
-		listener.clear();
-
-		this.connectionProfile.disconnect();
-		assertSame(this.connectionProfile, listener.okToCloseProfile);
-		assertSame(this.connectionProfile, listener.aboutToCloseProfile);
-		assertSame(this.connectionProfile, listener.closedProfile);
-
-		this.connectionProfile.removeConnectionListener(listener);
-		assertTrue(this.connectionProfileHasNoListeners());
-	}
-
-	public final void testConnectionListenerOffline() {
-		if ( ! this.executeOfflineTests()) {
-			return;
-		}
-		TestConnectionListener listener = new TestConnectionListener();
-		this.connectionProfile.addConnectionListener(listener);
-
-		this.prepareForOfflineWork();
-		listener.clear();
-
-		this.connectionProfile.workOffline();
-		assertSame(this.connectionProfile, listener.openedProfile);
-		listener.clear();
-
-		this.connectionProfile.disconnect();
-		assertSame(this.connectionProfile, listener.okToCloseProfile);
-		assertSame(this.connectionProfile, listener.aboutToCloseProfile);
-		assertSame(this.connectionProfile, listener.closedProfile);
-		listener.clear();
-
-		this.connectionProfile.removeConnectionListener(listener);
-	}
-
-	public void testConnectionListenerDatabase() {
-		this.connectionProfile.connect();
-		TestConnectionListener listener = new TestConnectionListener();
-		this.connectionProfile.addConnectionListener(listener);
-
-		((ICatalogObject) this.getDTPDatabase()).refresh();
-		assertSame(this.connectionProfile.getDatabase(), listener.changedDatabase);
-
-		this.connectionProfile.removeConnectionListener(listener);
-		this.connectionProfile.disconnect();
-	}
-
-	public void testConnectionListenerCatalog() {
-		this.connectionProfile.connect();
-		if ( ! this.connectionProfile.getDatabase().supportsCatalogs()) {
-			this.connectionProfile.disconnect();
-			return;
-		}
-			
-		TestConnectionListener listener = new TestConnectionListener();
-		this.connectionProfile.addConnectionListener(listener);
-
-		// take the first catalog
-		org.eclipse.datatools.modelbase.sql.schema.Catalog dtpCatalog = this.getFirstDTPCatalog();
-		Catalog catalog = this.getCatalogNamed(dtpCatalog.getName());
-		((ICatalogObject) dtpCatalog).refresh();
-		assertSame(catalog, listener.changedCatalog);
-
-		this.connectionProfile.removeConnectionListener(listener);
-		this.connectionProfile.disconnect();
-	}
-
-	public void testConnectionListenerSchema() {
-		this.connectionProfile.connect();
-		TestConnectionListener listener = new TestConnectionListener();
-		this.connectionProfile.addConnectionListener(listener);
-
-		List<org.eclipse.datatools.modelbase.sql.schema.Catalog> dtpCatalogs = this.getDTPCatalogs();
-		org.eclipse.datatools.modelbase.sql.schema.Catalog dtpCatalog = null;
-		org.eclipse.datatools.modelbase.sql.schema.Schema dtpSchema = null;
-		Schema schema = null;
-		if (this.connectionProfile.getDatabase().supportsCatalogs()) {
-			dtpCatalog = dtpCatalogs.get(0);
-			dtpSchema = (org.eclipse.datatools.modelbase.sql.schema.Schema) dtpCatalog.getSchemas().get(0);
-			schema = this.getCatalogNamed(dtpCatalog.getName()).getSchemaNamed(dtpSchema.getName());
-		} else {
-			if (dtpCatalogs.isEmpty()) {
-				dtpSchema = (org.eclipse.datatools.modelbase.sql.schema.Schema) this.getDTPDatabase().getSchemas().get(0);
-				schema = this.connectionProfile.getDatabase().getSchemaNamed(dtpSchema.getName());
-			} else {
-				dtpCatalog = dtpCatalogs.get(0);  // should be the "virtual" catalog
-				assertEquals("", dtpCatalog.getName());
-				dtpSchema = (org.eclipse.datatools.modelbase.sql.schema.Schema) dtpCatalog.getSchemas().get(0);
-				// the schemata are held directly by the database in this situation
-				schema = this.getDatabase().getSchemaNamed(dtpSchema.getName());
-			}
-		}
-		assertTrue(schema.tablesSize() >= 0);  // force tables to be loaded
-		((ICatalogObject) dtpSchema).refresh();
-		assertSame(schema, listener.changedSchema);
-
-		this.connectionProfile.removeConnectionListener(listener);
-		this.connectionProfile.disconnect();
-	}
-
-	public void testSupportsCatalogs() {
-		this.connectionProfile.connect();
-		TestConnectionListener listener = new TestConnectionListener();
-		this.connectionProfile.addConnectionListener(listener);
-
-		boolean supportsCatalogs = this.supportsCatalogs();
-		assertEquals(supportsCatalogs, this.connectionProfile.getDatabase().supportsCatalogs());
-		if (supportsCatalogs) {
-			assertTrue(this.connectionProfile.getDatabase().catalogsSize() > 0);
-			assertEquals(0, this.connectionProfile.getDatabase().schemataSize());
-		} else {
-			assertEquals(0, this.connectionProfile.getDatabase().catalogsSize());
-			assertTrue(this.connectionProfile.getDatabase().schemataSize() > 0);
-		}
-
-		this.connectionProfile.removeConnectionListener(listener);
-		this.connectionProfile.disconnect();
-	}
-
-	protected abstract boolean supportsCatalogs();
-
-//	public void testDEBUG() throws Exception {
-//		this.connectionProfile.connect();
-//		this.dumpJDBCCatalogs();
-//		this.dumpJDBCSchemata();
-//		this.dumpDatabaseContainers();
-//		this.connectionProfile.disconnect();
-//	}
-
-
-	// ********** convenience methods **********
-
-	protected ConnectionProfileFactory getConnectionProfileFactory() {
-		return JptDbPlugin.instance().getConnectionProfileFactory();
-	}
-
-	protected ConnectionProfile getConnectionProfile() {
-		return this.connectionProfile;
-	}
-
-	protected Database getDatabase() {
-		return this.connectionProfile.getDatabase();
-	}
-
-	protected Catalog getDefaultCatalog() {
-		return this.getDatabase().getDefaultCatalog();
-	}
-
-	protected Catalog getCatalogNamed(String catalogName) {
-		return this.connectionProfile.getDatabase().getCatalogNamed(catalogName);
-	}
-
-	protected String getRequiredPlatformProperty(String propertyKey) {
-		String propertyValue = this.platformProperties.getProperty(propertyKey);
-		if (StringTools.stringIsEmpty(propertyValue)) {
-			throw new IllegalArgumentException("The database platform properties file '" + this.getPlatformPropertiesFilePath()
-					+ "' is missing a value for the property '" + propertyKey + "'.");
-		}
-		return propertyValue;
-	}
-
-	protected boolean connectionProfileHasAnyListeners() {
-		return connectionProfileHasAnyListeners(this.connectionProfile);
-	}
-
-	protected static boolean connectionProfileHasAnyListeners(ConnectionProfile cp) {
-		return ((Boolean) ClassTools.executeMethod(cp, "hasAnyListeners")).booleanValue();
-	}
-
-	protected boolean connectionProfileHasNoListeners() {
-		return connectionProfileHasNoListeners(this.connectionProfile);
-	}
-
-	protected static boolean connectionProfileHasNoListeners(ConnectionProfile cp) {
-		return ((Boolean) ClassTools.executeMethod(cp, "hasNoListeners")).booleanValue();
-	}
-
-
-	// ********** DTP model **********
-
-	protected ProfileManager getDTPProfileManager() {
-		return ProfileManager.getInstance();
-	}
-
-	protected IConnectionProfile getDTPConnectionProfile() {
-		return getDTPConnectionProfile(this.connectionProfile);
-	}
-
-	protected static IConnectionProfile getDTPConnectionProfile(ConnectionProfile cp) {
-		return (IConnectionProfile) ClassTools.fieldValue(cp, "dtpConnectionProfile");
-	}
-
-	protected IManagedConnection getDTPManagedConnection() {
-		return (IManagedConnection) ClassTools.fieldValue(this.connectionProfile, "dtpManagedConnection");
-	}
-
-	protected org.eclipse.datatools.modelbase.sql.schema.Database getDTPDatabase() {
-		return getDTPDatabase(this.connectionProfile.getDatabase());
-	}
-
-	protected static org.eclipse.datatools.modelbase.sql.schema.Database getDTPDatabase(Database database) {
-		return (org.eclipse.datatools.modelbase.sql.schema.Database) ClassTools.fieldValue(database, "dtpDatabase");
-	}
-
-	@SuppressWarnings("unchecked")
-	protected List<org.eclipse.datatools.modelbase.sql.schema.Catalog> getDTPCatalogs() {
-		return this.getDTPDatabase().getCatalogs();
-	}
-
-	protected org.eclipse.datatools.modelbase.sql.schema.Catalog getFirstDTPCatalog() {
-		return this.getDTPCatalogs().get(0);
-	}
-
-	protected org.eclipse.datatools.modelbase.sql.schema.Catalog getDTPCatalogNamed(String name) {
-		return getDTPCatalog(this.getDatabase().getCatalogNamed(name));
-	}
-
-	protected static org.eclipse.datatools.modelbase.sql.schema.Catalog getDTPCatalog(Catalog catalog) {
-		return (org.eclipse.datatools.modelbase.sql.schema.Catalog) ClassTools.fieldValue(catalog, "dtpCatalog");
-	}
-
-	protected org.eclipse.datatools.modelbase.sql.schema.Schema getDTPSchemaNamed(String name) {
-		return getDTPSchema(this.getDatabase().getSchemaNamed(name));
-	}
-
-	protected static org.eclipse.datatools.modelbase.sql.schema.Schema getDTPSchema(Schema schema) {
-		return (org.eclipse.datatools.modelbase.sql.schema.Schema) ClassTools.fieldValue(schema, "dtpSchema");
-	}
-
-
-	// ********** execute SQL **********
-
-	/**
-	 * ignore any errors (useful for dropping database objects that might
-	 * not be there)
-	 */
-	protected void executeUpdateIgnoreErrors(String sql) {
-		try {
-			this.executeUpdate(sql);
-		} catch (Exception ex) {
-//			System.err.println("SQL: " + sql);
-//			ex.printStackTrace();
-		}
-	}
-
-	protected void executeUpdate(String sql) throws SQLException {
-		Statement jdbcStatement = this.createJDBCStatement();
-		try {
-			jdbcStatement.executeUpdate(sql);
-		} finally {
-			jdbcStatement.close();
-		}
-	}
-
-	protected void dump(String sql) throws SQLException {
-		this.dump(sql, 20);
-	}
-
-	protected void dump(String sql, int columnWidth) throws SQLException {
-		IndentingPrintWriter pw = new IndentingPrintWriter(new OutputStreamWriter(System.out));
-		// synchronize the console so everything is contiguous
-		synchronized (System.out) {
-			this.dumpOn(sql, pw, columnWidth);
-		}
-		pw.flush();
-	}
-
-	protected void dumpOn(String sql, IndentingPrintWriter pw, int columnWidth) throws SQLException {
-		pw.println(sql);
-		for (ArrayList<Object> row : this.execute(sql)) {
-			for (Object columnValue : row) {
-				StringTools.padOrTruncateOn(String.valueOf(columnValue), columnWidth, pw);
-				pw.print(' ');
-			}
-			pw.println();
-		}
-	}
-
-	protected ArrayList<ArrayList<Object>> execute(String sql) throws SQLException {
-		Statement jdbcStatement = this.createJDBCStatement();
-		jdbcStatement.execute(sql);
-		ArrayList<ArrayList<Object>> rows = this.buildRows(jdbcStatement.getResultSet());
-		jdbcStatement.close();
-		return rows;
-	}
-
-	protected ArrayList<ArrayList<Object>> buildRows(ResultSet resultSet) throws SQLException {
-		ArrayList<ArrayList<Object>> rows = new ArrayList<ArrayList<Object>>();
-		for (Iterator<ArrayList<Object>> stream = this.buildArrayIterator(resultSet); stream.hasNext(); ) {
-			rows.add(stream.next());
-		}
-		return rows;
-	}
-
-	protected Iterator<ArrayList<Object>> buildArrayIterator(ResultSet resultSet) throws SQLException {
-		return new ResultSetIterator<ArrayList<Object>>(resultSet, new ListResultSetIteratorAdapter(resultSet.getMetaData().getColumnCount()));
-	}
-
-	public static class ListResultSetIteratorAdapter implements ResultSetIterator.Adapter<ArrayList<Object>> {
-		private final int columnCount;
-		public ListResultSetIteratorAdapter(int columnCount) {
-			super();
-			this.columnCount = columnCount;
-		}
-		public ArrayList<Object> buildNext(ResultSet rs) throws SQLException {
-			ArrayList<Object> list = new ArrayList<Object>(this.columnCount);
-			for (int i = 1; i <= this.columnCount; i++) {  // NB: ResultSet index/subscript is 1-based
-				list.add(rs.getObject(i));
-			}
-			return list;
-		}
-	}
-
-	protected Statement createJDBCStatement() throws SQLException {
-		return this.getJDBCConnection().createStatement();
-	}
-
-	protected Connection getJDBCConnection() {
-		return ((ConnectionInfo) this.getDTPManagedConnection().getConnection().getRawConnection()).getSharedConnection();
-	}
-
-	protected DatabaseMetaData getDatabaseMetaData() throws SQLException {
-		return this.getJDBCConnection().getMetaData();
-	}
-
-
-	// ********** dump DTP metadata **********
-
-	/**
-	 * dump all the database metadata to the console
-	 */
-	protected void dumpDatabase() {
-		this.dumpDatabase(true);
-	}
-
-	/**
-	 * dump the database catalogs and schemata to the console
-	 */
-	protected void dumpDatabaseContainers() {
-		this.dumpDatabase(false);
-	}
-
-	protected void dumpDatabase(boolean deep) {
-		IndentingPrintWriter pw = new IndentingPrintWriter(new OutputStreamWriter(System.out));
-		// synchronize the console so everything is contiguous
-		synchronized (System.out) {
-			this.dumpDatabaseOn(pw, deep);
-		}
-		pw.flush();
-	}
-
-	protected void dumpDatabaseOn(IndentingPrintWriter pw, boolean deep) {
-		Database database = this.connectionProfile.getDatabase();
-		pw.print("database: ");
-		pw.println(database.getName());
-		if (database.supportsCatalogs()) {
-			for (Iterator<Catalog> stream = database.catalogs(); stream.hasNext(); ) {
-				this.dumpCatalogOn(stream.next(), pw, deep);
-			}
-		} else {
-			this.dumpSchemaContainerOn(database, pw, deep);
-		}
-	}
-
-	protected void dumpCatalogOn(Catalog catalog, IndentingPrintWriter pw, boolean deep) {
-		pw.print("catalog: ");
-		pw.println(catalog.getName());
-		pw.indent();
-			this.dumpSchemaContainerOn(catalog, pw, deep);
-		pw.undent();
-	}
-
-	protected void dumpSchemaContainerOn(SchemaContainer schemaContainer, IndentingPrintWriter pw, boolean deep) {
-		for (Iterator<Schema> stream = schemaContainer.schemata(); stream.hasNext(); ) {
-			this.dumpSchemaOn(stream.next(), pw, deep);
-		}
-	}
-
-	protected void dumpSchema(Schema schema) {
-		this.dumpSchema(schema, true);
-	}
-
-	protected void dumpSchema(Schema schema, boolean deep) {
-		IndentingPrintWriter pw = new IndentingPrintWriter(new OutputStreamWriter(System.out));
-		// synchronize the console so everything is contiguous
-		synchronized (System.out) {
-			this.dumpSchemaOn(schema, pw, deep);
-		}
-		pw.flush();
-	}
-
-	protected void dumpSchemaOn(Schema schema, IndentingPrintWriter pw, boolean deep) {
-		pw.print("schema: ");
-		pw.println(schema.getName());
-		if (deep) {
-			pw.indent();
-				for (Iterator<Table> stream = schema.tables(); stream.hasNext(); ) {
-					this.dumpTableOn(stream.next(), pw);
-				}
-				for (Iterator<Sequence> stream = schema.sequences(); stream.hasNext(); ) {
-					this.dumpSequenceOn(stream.next(), pw);
-				}
-			pw.undent();
-		}
-	}
-
-	protected void dumpTableOn(Table table, IndentingPrintWriter pw) {
-		pw.print("table: ");
-		pw.println(table.getName());
-		pw.indent();
-			for (Iterator<Column> stream = table.columns(); stream.hasNext(); ) {
-				this.dumpColumnOn(stream.next(), pw);
-			}
-			for (Iterator<ForeignKey> stream = table.foreignKeys(); stream.hasNext(); ) {
-				this.dumpForeignKeyOn(stream.next(), pw);
-			}
-		pw.undent();
-	}
-
-	protected void dumpColumnOn(Column column, IndentingPrintWriter pw) {
-		pw.print("column: ");
-		pw.print(column.getName());
-		pw.print(" : ");
-		pw.print(column.getDataTypeName());
-		if (column.isPartOfPrimaryKey()) {
-			pw.print(" [primary key]");
-		}
-		pw.println();
-	}
-
-	protected void dumpForeignKeyOn(ForeignKey foreignKey, IndentingPrintWriter pw) {
-		pw.print("foreign key: ");
-		pw.print(foreignKey.getName());
-		pw.print("=>");
-		pw.print(foreignKey.getReferencedTable().getName());
-		pw.print(" (");
-		for (Iterator<ColumnPair> stream = foreignKey.columnPairs(); stream.hasNext(); ) {
-			ColumnPair cp = stream.next();
-			pw.print(cp.getBaseColumn().getName());
-			pw.print("=>");
-			pw.print(cp.getReferencedColumn().getName());
-			if (stream.hasNext()) {
-				pw.print(", ");
-			}
-		}
-		pw.print(')');
-		pw.println();
-	}
-
-	protected void dumpSequenceOn(Sequence sequence, IndentingPrintWriter pw) {
-		pw.print("sequence: ");
-		pw.println(sequence.getName());
-	}
-
-
-	// ********** dump JDBC metadata **********
-
-	protected void dumpJDBCCatalogs() throws SQLException {
-		IndentingPrintWriter pw = new IndentingPrintWriter(new OutputStreamWriter(System.out));
-		// synchronize the console so everything is contiguous
-		synchronized (System.out) {
-			this.dumpJDBCCatalogsOn(pw);
-		}
-		pw.flush();
-	}
-
-	protected void dumpJDBCCatalogsOn(IndentingPrintWriter pw) throws SQLException {
-		pw.println("JDBC catalogs: ");
-		pw.indent();
-			ArrayList<ArrayList<Object>> rows = this.buildRows(this.getDatabaseMetaData().getCatalogs());
-			for (Iterator<ArrayList<Object>> stream = rows.iterator(); stream.hasNext(); ) {
-				pw.println(stream.next().get(0));
-			}
-		pw.undent();
-	}
-
-	protected void dumpJDBCSchemata() throws SQLException {
-		IndentingPrintWriter pw = new IndentingPrintWriter(new OutputStreamWriter(System.out));
-		// synchronize the console so everything is contiguous
-		synchronized (System.out) {
-			this.dumpJDBCSchemataOn(pw);
-		}
-		pw.flush();
-	}
-
-	protected void dumpJDBCSchemataOn(IndentingPrintWriter pw) throws SQLException {
-		pw.println("JDBC schemata: ");
-		pw.indent();
-			ArrayList<ArrayList<Object>> rows = this.buildRows(this.getDatabaseMetaData().getSchemas());
-			for (ArrayList<Object> row : rows) {
-				if (row.size() == 2) {  // catalogs were added in jdk 1.4
-					Object catalog = row.get(1);
-					pw.print(catalog);
-					pw.print('.');
-				}
-				Object schema = row.get(0);
-				pw.println(schema);
-			}
-		pw.undent();
-	}
-
-
-	// ********** connection profile listener **********
-
-	protected static class TestConnectionProfileListener implements ConnectionProfileListener {
-		public String addedName;
-		public String removedName;
-		public String renamedOldName;
-		public String renamedNewName;
-
-		public void connectionProfileAdded(String name) {
-			this.addedName = name;
-		}
-		public void connectionProfileRemoved(String name) {
-			this.removedName = name;
-		}
-		public void connectionProfileRenamed(String oldName, String newName) {
-			this.renamedOldName = oldName;
-			this.renamedNewName = newName;
-		}
-		public void clear() {
-			this.addedName = null;
-			this.removedName = null;
-			this.renamedOldName = null;
-			this.renamedNewName = null;
-		}
-	}
-
-
-	// ********** connection listener **********
-
-	protected static class TestConnectionListener implements ConnectionListener {
-		public ConnectionProfile openedProfile;
-		public ConnectionProfile modifiedProfile;
-		public ConnectionProfile okToCloseProfile;
-		public ConnectionProfile aboutToCloseProfile;
-		public ConnectionProfile closedProfile;
-		public Database changedDatabase;
-		public Catalog changedCatalog;
-		public Schema changedSchema;
-		public Sequence changedSequence;
-		public Table changedTable;
-		public Column changedColumn;
-		public ForeignKey changedForeignKey;
-
-		public void opened(ConnectionProfile profile) {
-			this.openedProfile = profile;
-		}
-		public void modified(ConnectionProfile profile) {
-			this.modifiedProfile = profile;
-		}
-		public boolean okToClose(ConnectionProfile profile) {
-			this.okToCloseProfile = profile;
-			return true;
-		}
-		public void aboutToClose(ConnectionProfile profile) {
-			this.aboutToCloseProfile = profile;
-		}
-		public void closed(ConnectionProfile profile) {
-			this.closedProfile = profile;
-		}
-		public void databaseChanged(ConnectionProfile profile, Database database) {
-			this.changedDatabase = database;
-		}
-		public void catalogChanged(ConnectionProfile profile, Catalog catalog) {
-			this.changedCatalog = catalog;
-		}
-		public void schemaChanged(ConnectionProfile profile, Schema schema) {
-			this.changedSchema = schema;
-		}
-		public void sequenceChanged(ConnectionProfile profile, Sequence sequence) {
-			this.changedSequence = sequence;
-		}
-		public void tableChanged(ConnectionProfile profile, Table table) {
-			this.changedTable = table;
-		}
-		public void columnChanged(ConnectionProfile profile, Column column) {
-			this.changedColumn = column;
-		}
-		public void foreignKeyChanged(ConnectionProfile profile, ForeignKey foreignKey) {
-			this.changedForeignKey = foreignKey;
-		}
-		public void clear() {
-			this.openedProfile = null;
-			this.modifiedProfile = null;
-			this.okToCloseProfile = null;
-			this.aboutToCloseProfile = null;
-			this.closedProfile = null;
-			this.changedDatabase = null;
-			this.changedCatalog = null;
-			this.changedSchema = null;
-			this.changedSequence = null;
-			this.changedTable = null;
-			this.changedColumn = null;
-			this.changedForeignKey = null;
-		}
-	}
-
-}
diff --git a/jpa/tests/org.eclipse.jpt.db.tests/src/org/eclipse/jpt/db/tests/internal/platforms/DerbyTests.java b/jpa/tests/org.eclipse.jpt.db.tests/src/org/eclipse/jpt/db/tests/internal/platforms/DerbyTests.java
deleted file mode 100644
index e2aacd8..0000000
--- a/jpa/tests/org.eclipse.jpt.db.tests/src/org/eclipse/jpt/db/tests/internal/platforms/DerbyTests.java
+++ /dev/null
@@ -1,482 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2008 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.db.tests.internal.platforms;
-
-import org.eclipse.datatools.connectivity.sqm.core.rte.ICatalogObject;
-import org.eclipse.jpt.db.Column;
-import org.eclipse.jpt.db.ForeignKey;
-import org.eclipse.jpt.db.Schema;
-import org.eclipse.jpt.db.Table;
-
-@SuppressWarnings("nls")
-public class DerbyTests extends DTPPlatformTests {
-
-	public DerbyTests(String name) {
-		super(name);
-	}
-
-	@Override
-	protected void setUp() throws Exception {
-		super.setUp();
-	}
-
-	@Override
-	protected void tearDown() throws Exception {
-		super.tearDown();
-	}
-
-	@Override
-	protected String getPlatformPropertiesFileName() {
-		return "derby.properties";
-	}
-
-	@Override
-	protected String getDriverName() {
-		return "Derby Embedded JDBC Driver";
-	}
-
-	@Override
-	protected String getDriverDefinitionID() {
-		return "DriverDefn.Derby Embedded JDBC Driver";
-	}
-
-	@Override
-	protected String getDriverDefinitionType() {
-		return "org.eclipse.datatools.connectivity.db.derby101.genericDriverTemplate";
-	}
-
-	@Override
-	protected String getDatabaseVendor() {
-		return "Derby";
-	}
-
-	@Override
-	protected String getDatabaseVersion() {
-		return "10.1";
-	}
-
-	@Override
-	protected String getDriverClass() {
-		return "org.apache.derby.jdbc.EmbeddedDriver";
-	}
-
-	@Override
-	protected String getProfileName() {
-		return "Derby_10.1_Embedded";
-	}
-
-	@Override
-	protected String getProfileDescription() {
-		return "Derby 10.1 Embedded JDBC Profile [Test]";
-	}
-
-	@Override
-	protected String getProviderID() {
-		return "org.eclipse.datatools.connectivity.db.derby.embedded.connectionProfile";
-	}
-
-	@Override
-	protected boolean supportsCatalogs() {
-		return false;
-	}
-
-	@Override
-	protected boolean executeOfflineTests() {
-		return true;
-	}
-
-	public void testSchema() throws Exception {
-		this.connectionProfile.connect();
-		TestConnectionListener listener = new TestConnectionListener();
-		this.connectionProfile.addConnectionListener(listener);
-
-		this.dropSchema("TEST1");
-		this.dropSchema("TEST2");
-
-		this.executeUpdate("CREATE SCHEMA TEST1");
-		((ICatalogObject) this.getDTPDatabase()).refresh();
-
-		Schema schema1 = this.getDatabase().getSchemaNamed("TEST1");
-		assertNotNull(schema1);
-
-		this.executeUpdate("CREATE SCHEMA TEST2");
-		Schema schema2 = this.getDatabase().getSchemaNamed("TEST2");
-		assertNull(schema2);  // should be null until refresh
-
-		((ICatalogObject) this.getDTPDatabase()).refresh();
-		assertSame(this.getDatabase(), listener.changedDatabase);
-
-		schema2 = this.getDatabase().getSchemaNamed("TEST2");
-		assertNotNull(schema2);
-		assertNotSame(schema1, this.getDatabase().getSchemaNamed("TEST1"));  // we should have a new schema after the refresh
-
-		this.dropSchema("TEST2");
-		this.dropSchema("TEST1");
-		this.connectionProfile.removeConnectionListener(listener);
-		this.connectionProfile.disconnect();
-	}
-
-	public void testSchemaLookup() throws Exception {
-		this.connectionProfile.connect();
-		TestConnectionListener listener = new TestConnectionListener();
-		this.connectionProfile.addConnectionListener(listener);
-
-		this.dropSchema("LOOKUP_TEST");
-		this.dropSchema("\"lookup_TEST\"");
-		((ICatalogObject) this.getDTPDatabase()).refresh();
-
-		this.executeUpdate("CREATE SCHEMA LOOKUP_TEST");
-		((ICatalogObject) this.getDTPDatabase()).refresh();
-
-		assertNotNull(this.getDatabase().getSchemaNamed("LOOKUP_TEST"));
-		assertNotNull(this.getDatabase().getSchemaForIdentifier("LOOKUP_TEST"));
-
-		assertNull(this.getDatabase().getSchemaNamed("lookup_test"));
-		assertNotNull(this.getDatabase().getSchemaForIdentifier("lookup_test"));
-
-		assertNull(this.getDatabase().getSchemaNamed("lookup_TEST"));
-		assertNotNull(this.getDatabase().getSchemaForIdentifier("lookup_TEST"));
-
-		assertNotNull(this.getDatabase().getSchemaForIdentifier("\"LOOKUP_TEST\""));
-		assertNull(this.getDatabase().getSchemaForIdentifier("\"lookup_TEST\""));
-
-		this.dropSchema("LOOKUP_TEST");
-
-		this.executeUpdate("CREATE SCHEMA \"lookup_TEST\"");
-		((ICatalogObject) this.getDTPDatabase()).refresh();
-
-		assertNull(this.getDatabase().getSchemaNamed("LOOKUP_TEST"));
-		assertNull(this.getDatabase().getSchemaForIdentifier("LOOKUP_TEST"));
-
-		assertNull(this.getDatabase().getSchemaNamed("lookup_test"));
-		assertNull(this.getDatabase().getSchemaForIdentifier("lookup_test"));
-
-		assertNotNull(this.getDatabase().getSchemaNamed("lookup_TEST"));
-		assertNull(this.getDatabase().getSchemaForIdentifier("lookup_TEST"));
-
-		assertNull(this.getDatabase().getSchemaForIdentifier("\"LOOKUP_TEST\""));
-		assertNotNull(this.getDatabase().getSchemaForIdentifier("\"lookup_TEST\""));
-
-		this.dropSchema("\"lookup_TEST\"");
-
-		this.connectionProfile.removeConnectionListener(listener);
-		this.connectionProfile.disconnect();
-	}
-
-	public void testSchemaIdentifier() throws Exception {
-		this.connectionProfile.connect();
-		TestConnectionListener listener = new TestConnectionListener();
-		this.connectionProfile.addConnectionListener(listener);
-
-		this.dropSchema("LOOKUP_TEST");
-		this.dropSchema("\"lookup_TEST\"");
-
-		this.executeUpdate("CREATE SCHEMA lookup_test");  // this gets folded to uppercase
-		this.executeUpdate("CREATE SCHEMA \"lookup_TEST\"");
-		((ICatalogObject) this.getDTPDatabase()).refresh();
-
-		Schema schema = this.getDatabase().getSchemaForIdentifier("LOOKUP_TEST");
-		assertEquals("LOOKUP_TEST", schema.getIdentifier());
-		assertEquals("LOOKUP_TEST", schema.getIdentifier("LookupTest"));
-		assertNull(schema.getIdentifier("Lookup_Test"));
-
-		schema = this.getDatabase().getSchemaForIdentifier("lookup_test");
-		assertEquals("LOOKUP_TEST", schema.getIdentifier());
-
-		schema = this.getDatabase().getSchemaForIdentifier("\"lookup_TEST\"");
-		assertEquals("\"lookup_TEST\"", schema.getIdentifier());
-		assertEquals("\"lookup_TEST\"", schema.getIdentifier("lookup_TEST"));
-
-		this.dropSchema("\"lookup_TEST\"");
-		this.dropSchema("LOOKUP_TEST");
-
-		this.connectionProfile.removeConnectionListener(listener);
-		this.connectionProfile.disconnect();
-	}
-
-	public void testTable() throws Exception {
-		this.connectionProfile.connect();
-		TestConnectionListener listener = new TestConnectionListener();
-		this.connectionProfile.addConnectionListener(listener);
-
-		this.dropTable("TABLE_TEST", "FOO_BAZ");
-		this.dropTable("TABLE_TEST", "BAZ");
-		this.dropTable("TABLE_TEST", "FOO");
-		this.dropTable("TABLE_TEST", "BAR");
-		this.dropSchema("TABLE_TEST");
-
-		this.executeUpdate("CREATE SCHEMA TABLE_TEST");
-		this.executeUpdate("SET SCHEMA = TABLE_TEST");
-
-		this.executeUpdate(this.buildBarDDL());
-		this.executeUpdate(this.buildFooDDL());
-		this.executeUpdate(this.buildBazDDL());
-		this.executeUpdate(this.buildFooBazDDL());
-		((ICatalogObject) this.getDTPDatabase()).refresh();
-
-		Schema schema = this.getDatabase().getSchemaNamed("TABLE_TEST");
-
-		// FOO
-		Table fooTable = schema.getTableNamed("FOO");
-		assertEquals(4, fooTable.columnsSize());
-		assertEquals(1, fooTable.primaryKeyColumnsSize());
-		assertEquals(1, fooTable.foreignKeysSize());
-
-		Column pkColumn = fooTable.getPrimaryKeyColumn();
-		assertEquals("ID", pkColumn.getName());
-		Column idColumn = fooTable.getColumnNamed("ID");
-		assertSame(pkColumn, idColumn);
-		assertEquals("INTEGER", idColumn.getDataTypeName());
-		assertSame(fooTable, idColumn.getTable());
-		assertTrue(idColumn.isPartOfPrimaryKey());
-		assertFalse(idColumn.isPartOfForeignKey());
-		assertEquals("int", idColumn.getJavaTypeDeclaration());
-
-		Column nameColumn = fooTable.getColumnNamed("NAME");
-		assertEquals("VARCHAR", nameColumn.getDataTypeName());
-		assertEquals("java.lang.String", nameColumn.getJavaTypeDeclaration());
-		assertEquals(20, nameColumn.getLength());
-		assertFalse(nameColumn.isPartOfPrimaryKey());
-		assertFalse(nameColumn.isNumeric());
-		assertTrue(nameColumn.isNullable());
-
-		Column barColumn = fooTable.getColumnNamed("BAR_ID");
-		assertEquals("INTEGER", barColumn.getDataTypeName());
-		assertTrue(barColumn.isPartOfForeignKey());
-		assertFalse(barColumn.isPartOfPrimaryKey());
-
-		Column salaryColumn = fooTable.getColumnNamed("SALARY");
-		assertEquals("DECIMAL", salaryColumn.getDataTypeName());
-		assertTrue(salaryColumn.isNullable());
-		assertTrue(salaryColumn.isNumeric());
-		assertEquals(11, salaryColumn.getPrecision());
-		assertEquals(2, salaryColumn.getScale());
-		assertEquals(-1, salaryColumn.getLength());
-
-		ForeignKey barFK = fooTable.foreignKeys().next();  // there should only be 1 foreign key
-		assertEquals(1, barFK.columnPairsSize());
-		assertEquals("BAR", barFK.getAttributeName());
-		assertNull(barFK.getJoinColumnAnnotationIdentifier("bar"));
-		assertEquals("BAR_ID", barFK.getJoinColumnAnnotationIdentifier("primaryBar"));
-		assertSame(fooTable, barFK.getBaseTable());
-
-		assertFalse(fooTable.isPossibleJoinTable());
-		assertSame(schema, fooTable.getSchema());
-
-		// BAR
-		Table barTable = schema.getTableNamed("BAR");
-		assertEquals(3, barTable.columnsSize());
-		assertEquals(1, barTable.primaryKeyColumnsSize());
-		assertEquals(0, barTable.foreignKeysSize());
-		assertEquals("ID", barTable.getPrimaryKeyColumn().getName());
-		assertFalse(barTable.isPossibleJoinTable());
-
-		Column id2Column = barTable.getColumnNamed("ID2");
-		assertEquals("INTEGER", id2Column.getDataTypeName());
-//		assertTrue(id2Column.isPartOfUniqueConstraint());  // doesn't work(?)
-		assertFalse(id2Column.isNullable());
-		assertTrue(id2Column.isNumeric());
-		assertEquals(0, id2Column.getPrecision());  // not sure what to expect here...
-		assertEquals(0, id2Column.getScale());  // not sure what to expect here either...
-		assertEquals("BLOB", barTable.getColumnNamed("CHUNK").getDataTypeName());
-		assertEquals("byte[]", barTable.getColumnNamed("CHUNK").getJavaTypeDeclaration());
-		assertTrue(barTable.getColumnNamed("CHUNK").isLOB());
-		assertSame(barTable, barFK.getReferencedTable());
-
-		// BAZ
-		Table bazTable = schema.getTableNamed("BAZ");
-		Column nicknameColumn = bazTable.getColumnNamed("NICKNAME");
-		assertEquals(20, nicknameColumn.getLength());
-//		assertTrue(nicknameColumn.isPartOfUniqueConstraint());  // doesn't work(?)
-
-		// FOO_BAZ
-		Table foo_bazTable = schema.getTableNamed("FOO_BAZ");
-		assertEquals(2, foo_bazTable.columnsSize());
-		assertEquals(0, foo_bazTable.primaryKeyColumnsSize());
-		assertEquals(2, foo_bazTable.foreignKeysSize());
-		assertTrue(foo_bazTable.isPossibleJoinTable());
-		assertTrue(foo_bazTable.joinTableNameIsDefault());
-		assertTrue(foo_bazTable.getColumnNamed("FOO_ID").isPartOfForeignKey());
-
-		this.dropTable("TABLE_TEST", "FOO_BAZ");
-		this.dropTable("TABLE_TEST", "BAZ");
-		this.dropTable("TABLE_TEST", "FOO");
-		this.dropTable("TABLE_TEST", "BAR");
-		this.dropSchema("TABLE_TEST");
-
-		this.connectionProfile.removeConnectionListener(listener);
-		this.connectionProfile.disconnect();
-	}
-
-	private static final String CR = System.getProperty("line.separator");  //$NON-NLS-1$
-
-	private String buildBarDDL() {
-		StringBuilder sb = new StringBuilder(200);
-		sb.append("CREATE TABLE BAR (").append(CR);
-		sb.append("    ID INT PRIMARY KEY,").append(CR);
-		sb.append("    ID2 INT UNIQUE NOT NULL,").append(CR);
-		sb.append("    CHUNK BLOB(100K)").append(CR);
-		sb.append(")").append(CR);
-		return sb.toString();
-	}
-
-	private String buildFooDDL() {
-		StringBuilder sb = new StringBuilder(200);
-		sb.append("CREATE TABLE FOO (").append(CR);
-		sb.append("    ID INT PRIMARY KEY,").append(CR);
-		sb.append("    NAME VARCHAR(20),").append(CR);
-		sb.append("    SALARY DECIMAL(11, 2),").append(CR);
-		sb.append("    BAR_ID INT REFERENCES BAR(ID)").append(CR);
-		sb.append(")").append(CR);
-		return sb.toString();
-	}
-
-	private String buildBazDDL() {
-		StringBuilder sb = new StringBuilder(200);
-		sb.append("CREATE TABLE BAZ (").append(CR);
-		sb.append("    ID INT PRIMARY KEY,").append(CR);
-		sb.append("    NICKNAME VARCHAR(20) NOT NULL UNIQUE").append(CR);
-		sb.append(")").append(CR);
-		return sb.toString();
-	}
-
-	private String buildFooBazDDL() {
-		StringBuilder sb = new StringBuilder(200);
-		sb.append("CREATE TABLE FOO_BAZ (").append(CR);
-		sb.append("    FOO_ID INT REFERENCES FOO(ID),").append(CR);
-		sb.append("    BAZ_ID INT REFERENCES BAZ(ID)").append(CR);
-		sb.append(")").append(CR);
-		return sb.toString();
-	}
-
-	public void testColumnLookup() throws Exception {
-		this.connectionProfile.connect();
-		TestConnectionListener listener = new TestConnectionListener();
-		this.connectionProfile.addConnectionListener(listener);
-
-		this.dropTable("COLUMN_TEST", "test");
-		this.dropSchema("COLUMN_TEST");
-
-		this.executeUpdate("CREATE SCHEMA COLUMN_TEST");
-		this.executeUpdate("SET SCHEMA = COLUMN_TEST");
-
-		// lowercase
-		this.executeUpdate("CREATE TABLE test (id INTEGER, name VARCHAR(20))");
-		((ICatalogObject) this.getDTPDatabase()).refresh();
-
-		Table table = this.getDatabase().getSchemaNamed("COLUMN_TEST").getTableForIdentifier("test");
-		assertNotNull(table.getColumnForIdentifier("id"));
-		assertNotNull(table.getColumnForIdentifier("name"));
-
-		this.dropTable("COLUMN_TEST", "test");
-
-		// uppercase
-		this.executeUpdate("CREATE TABLE test (ID INTEGER, NAME VARCHAR(20))");
-		((ICatalogObject) this.getDTPDatabase()).refresh();
-
-		table = this.getDatabase().getSchemaNamed("COLUMN_TEST").getTableForIdentifier("test");
-		assertNotNull(table.getColumnForIdentifier("ID"));
-		assertNotNull(table.getColumnForIdentifier("NAME"));
-
-		this.dropTable("COLUMN_TEST", "test");
-
-		// mixed case
-		this.executeUpdate("CREATE TABLE test (Id INTEGER, Name VARCHAR(20))");
-		((ICatalogObject) this.getDTPDatabase()).refresh();
-
-		table = this.getDatabase().getSchemaNamed("COLUMN_TEST").getTableForIdentifier("test");
-		assertNotNull(table.getColumnForIdentifier("Id"));
-		assertNotNull(table.getColumnForIdentifier("Name"));
-
-		this.dropTable("COLUMN_TEST", "test");
-
-		// delimited
-		this.executeUpdate("CREATE TABLE test (\"Id\" INTEGER, \"Name\" VARCHAR(20))");
-		((ICatalogObject) this.getDTPDatabase()).refresh();
-
-		table = this.getDatabase().getSchemaNamed("COLUMN_TEST").getTableForIdentifier("test");
-		assertNotNull(table.getColumnForIdentifier("\"Id\""));
-		assertNotNull(table.getColumnForIdentifier("\"Name\""));
-
-		this.dropTable("COLUMN_TEST", "test");
-		this.dropSchema("COLUMN_TEST");
-
-		this.connectionProfile.removeConnectionListener(listener);
-		this.connectionProfile.disconnect();
-	}
-
-	public void testCrossSchemaReference() throws Exception {
-		this.connectionProfile.connect();
-		TestConnectionListener listener = new TestConnectionListener();
-		this.connectionProfile.addConnectionListener(listener);
-
-		this.dropTable("XREF_TEST2", "EMP");
-		this.dropSchema("XREF_TEST2");
-		this.dropTable("XREF_TEST1", "ORG");
-		this.dropSchema("XREF_TEST1");
-
-		this.executeUpdate("CREATE SCHEMA XREF_TEST1");
-		this.executeUpdate("SET SCHEMA = XREF_TEST1");
-		this.executeUpdate("CREATE TABLE ORG (ID INTEGER PRIMARY KEY, NAME VARCHAR(20))");
-
-		this.executeUpdate("CREATE SCHEMA XREF_TEST2");
-		this.executeUpdate("SET SCHEMA = XREF_TEST2");
-		this.executeUpdate("CREATE TABLE EMP (ID INTEGER PRIMARY KEY, NAME VARCHAR(20), " +
-				"ORG_ID INTEGER REFERENCES XREF_TEST1.ORG(ID))");
-
-		((ICatalogObject) this.getDTPDatabase()).refresh();
-		Schema schema1 = this.getDatabase().getSchemaNamed("XREF_TEST1");
-		assertNotNull(schema1);
-		Table orgTable = schema1.getTableNamed("ORG");
-		assertNotNull(orgTable);
-
-		Schema schema2 = this.getDatabase().getSchemaNamed("XREF_TEST2");
-		assertNotNull(schema2);
-		Table empTable = schema2.getTableNamed("EMP");
-		assertNotNull(empTable);
-		assertEquals(1, empTable.foreignKeysSize());
-		ForeignKey fk = empTable.foreignKeys().next();
-		Table refTable = fk.getReferencedTable();
-		assertNotNull(refTable);
-		assertEquals("ORG", refTable.getName());
-		assertEquals(1, fk.columnPairsSize());
-		ForeignKey.ColumnPair cp = fk.columnPairs().next();
-		Column baseColumn = cp.getBaseColumn();
-		assertEquals("ORG_ID", baseColumn.getName());
-		Column refColumn = cp.getReferencedColumn();
-		assertEquals("ID", refColumn.getName());
-
-		this.dropTable("XREF_TEST2", "EMP");
-		this.dropSchema("XREF_TEST2");
-		this.dropTable("XREF_TEST1", "ORG");
-		this.dropSchema("XREF_TEST1");
-		this.connectionProfile.removeConnectionListener(listener);
-		this.connectionProfile.disconnect();
-	}
-
-	private void dropTable(String schemaName, String tableName) throws Exception {
-		Schema schema= this.getDatabase().getSchemaForIdentifier(schemaName);
-		if (schema != null) {
-			if (schema.getTableForIdentifier(tableName) != null) {
-				this.executeUpdate("DROP TABLE " + schemaName + '.' + tableName);
-			}
-		}
-	}
-
-	/**
-	 * NB: A Derby schema must be empty before it can be dropped.
-	 */
-	private void dropSchema(String name) throws Exception {
-		if (this.getDatabase().getSchemaForIdentifier(name) != null) {
-			this.executeUpdate("DROP SCHEMA " + name + " RESTRICT");
-		}
-	}
-
-}
diff --git a/jpa/tests/org.eclipse.jpt.db.tests/src/org/eclipse/jpt/db/tests/internal/platforms/MySQLTests.java b/jpa/tests/org.eclipse.jpt.db.tests/src/org/eclipse/jpt/db/tests/internal/platforms/MySQLTests.java
deleted file mode 100644
index 4b65142..0000000
--- a/jpa/tests/org.eclipse.jpt.db.tests/src/org/eclipse/jpt/db/tests/internal/platforms/MySQLTests.java
+++ /dev/null
@@ -1,404 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2008 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.db.tests.internal.platforms;
-
-import java.util.Properties;
-
-import org.eclipse.datatools.connectivity.drivers.jdbc.IJDBCDriverDefinitionConstants;
-import org.eclipse.datatools.connectivity.sqm.core.rte.ICatalogObject;
-import org.eclipse.jpt.db.Column;
-import org.eclipse.jpt.db.ForeignKey;
-import org.eclipse.jpt.db.Schema;
-import org.eclipse.jpt.db.Table;
-
-/**
- * MySQL
- * 
- * Notes:
- * - We can only get database objects from the database associated with our
- *     connection profile.
- * - We can reference objects across multiple databases, so they are sorta like
- *     schemas....
- * - Foreign keys must be defined as table-level constraints; they cannot be
- *     defined as part of the column clause.
- * - Case-sensitivity and -folding is whacked on MySQL....
- */
-@SuppressWarnings("nls")
-public class MySQLTests extends DTPPlatformTests {
-
-	public MySQLTests( String name) {
-		super(name);
-	}
-
-	@Override
-	protected String getPlatformPropertiesFileName() {
-		return "mysql.properties";
-	}
-
-	@Override
-	protected String getDriverName() {
-		return "MySQL JDBC Driver";
-	}
-
-	@Override
-	protected String getDriverDefinitionID() {
-		return "DriverDefn.MySQL JDBC Driver";
-	}
-
-	@Override
-	protected String getDriverDefinitionType() {
-		return "org.eclipse.datatools.enablement.mysql.4_1.driverTemplate";
-	}
-
-	@Override
-	protected String getDatabaseVendor() {
-		return "MySql";
-	}
-
-	@Override
-	protected String getDatabaseVersion() {
-		return "4.1";
-	}
-
-	@Override
-	protected String getDriverClass() {
-		return "com.mysql.jdbc.Driver";
-	}
-
-	@Override
-	protected String getDefaultJDBCURL() {
-		return "jdbc:mysql://localhost:3306";
-	}
-
-	@Override
-	protected String getProfileName() {
-		return "MySQL_4.1";
-	}
-
-	@Override
-	protected String getProfileDescription() {
-		return "MySQL 4.1 JDBC Profile [Test]";
-	}
-
-	@Override
-	protected boolean supportsCatalogs() {
-		return false;
-	}
-
-	@Override
-	protected Properties buildDTPConnectionProfileProperties() {
-		Properties p = super.buildDTPConnectionProfileProperties();
-		p.setProperty(IJDBCDriverDefinitionConstants.DATABASE_NAME_PROP_ID, this.getDatabaseName());
-		return p;
-	}
-
-	private String getDatabaseName() {
-		return "dalitest";
-	}
-
-	@Override
-	protected boolean executeOfflineTests() {
-		return true;  // seems to work...
-	}
-
-	public void testDatabase() throws Exception {
-		this.connectionProfile.connect();
-		TestConnectionListener listener = new TestConnectionListener();
-		this.connectionProfile.addConnectionListener(listener);
-
-		// DTP: MySQL has a single schema with the same name as the database
-		Schema schema = this.getDatabase().getSchemaNamed(this.getDatabaseName());
-		assertNotNull(schema);
-		assertSame(this.getDatabase().getDefaultSchema(), schema);
-
-		this.connectionProfile.removeConnectionListener(listener);
-		this.connectionProfile.disconnect();
-	}
-
-	public void testTable() throws Exception {
-		this.connectionProfile.connect();
-		TestConnectionListener listener = new TestConnectionListener();
-		this.connectionProfile.addConnectionListener(listener);
-
-		this.dropDatabase(this.getDatabaseName());
-		this.executeUpdate("CREATE DATABASE " + this.getDatabaseName());
-		this.getJDBCConnection().setCatalog(this.getDatabaseName());
-
-		this.dropTable(this.getDatabaseName(), "foo_baz");
-		this.dropTable(this.getDatabaseName(), "baz");
-		this.dropTable(this.getDatabaseName(), "foo");
-		this.dropTable(this.getDatabaseName(), "bar");
-
-		this.executeUpdate(this.buildBarDDL());
-		this.executeUpdate(this.buildFooDDL());
-		this.executeUpdate(this.buildBazDDL());
-		this.executeUpdate(this.buildFooBazDDL());
-		((ICatalogObject) this.getDTPDatabase()).refresh();
-
-		Schema schema = this.getDatabase().getDefaultSchema();
-
-		// foo
-		Table fooTable = schema.getTableNamed("foo");
-		assertEquals(3, fooTable.columnsSize());
-		assertEquals(1, fooTable.primaryKeyColumnsSize());
-		assertEquals(1, fooTable.foreignKeysSize());
-
-		Column pkColumn = fooTable.getPrimaryKeyColumn();
-		assertEquals("id", pkColumn.getName());
-		Column idColumn = fooTable.getColumnNamed("id");
-		assertSame(pkColumn, idColumn);
-		assertEquals("INT", idColumn.getDataTypeName());
-		assertSame(fooTable, idColumn.getTable());
-		assertTrue(idColumn.isPartOfPrimaryKey());
-		assertFalse(idColumn.isPartOfForeignKey());
-		assertEquals("int", idColumn.getJavaTypeDeclaration());
-
-		Column nameColumn = fooTable.getColumnNamed("name");
-		assertEquals("VARCHAR", nameColumn.getDataTypeName());
-		assertEquals("java.lang.String", nameColumn.getJavaTypeDeclaration());
-		assertFalse(nameColumn.isPartOfPrimaryKey());
-
-		Column barColumn = fooTable.getColumnNamed("bar_id");
-		assertEquals("INT", barColumn.getDataTypeName());
-		assertTrue(barColumn.isPartOfForeignKey());
-		assertFalse(barColumn.isPartOfPrimaryKey());
-
-		ForeignKey barFK = fooTable.foreignKeys().next();  // there should only be 1 foreign key
-		assertEquals(1, barFK.columnPairsSize());
-		assertEquals("bar", barFK.getAttributeName());
-		assertNull(barFK.getJoinColumnAnnotationIdentifier("bar"));
-		assertEquals("bar_id", barFK.getJoinColumnAnnotationIdentifier("primaryBar"));
-		assertSame(fooTable, barFK.getBaseTable());
-
-		assertFalse(fooTable.isPossibleJoinTable());
-		assertSame(schema, fooTable.getSchema());
-
-		// BAR
-		Table barTable = schema.getTableNamed("bar");
-		assertEquals(2, barTable.columnsSize());
-		assertEquals(1, barTable.primaryKeyColumnsSize());
-		assertEquals(0, barTable.foreignKeysSize());
-		assertEquals("id", barTable.getPrimaryKeyColumn().getName());
-		assertFalse(barTable.isPossibleJoinTable());
-		assertEquals("BLOB", barTable.getColumnNamed("chunk").getDataTypeName());
-		assertEquals("byte[]", barTable.getColumnNamed("chunk").getJavaTypeDeclaration());
-		assertTrue(barTable.getColumnNamed("chunk").isLOB());
-		assertSame(barTable, barFK.getReferencedTable());
-
-		// FOO_BAZ
-		Table foo_bazTable = schema.getTableNamed("foo_baz");
-		assertEquals(2, foo_bazTable.columnsSize());
-		assertEquals(0, foo_bazTable.primaryKeyColumnsSize());
-		assertEquals(2, foo_bazTable.foreignKeysSize());
-		assertTrue(foo_bazTable.isPossibleJoinTable());
-		assertTrue(foo_bazTable.joinTableNameIsDefault());
-		assertTrue(foo_bazTable.getColumnNamed("foo_id").isPartOfForeignKey());
-
-		this.dropTable(this.getDatabaseName(), "foo_baz");
-		this.dropTable(this.getDatabaseName(), "baz");
-		this.dropTable(this.getDatabaseName(), "foo");
-		this.dropTable(this.getDatabaseName(), "bar");
-
-		this.dropDatabase(this.getDatabaseName());
-
-		this.connectionProfile.removeConnectionListener(listener);
-		this.connectionProfile.disconnect();
-	}
-
-	private static final String CR = System.getProperty("line.separator");  //$NON-NLS-1$
-
-	private String buildBarDDL() {
-		StringBuilder sb = new StringBuilder(200);
-		sb.append("CREATE TABLE bar (").append(CR);
-		sb.append("    id INTEGER PRIMARY KEY,").append(CR);
-		sb.append("    chunk BLOB").append(CR);
-		sb.append(")").append(CR);
-		return sb.toString();
-	}
-
-	private String buildFooDDL() {
-		StringBuilder sb = new StringBuilder(200);
-		sb.append("CREATE TABLE foo (").append(CR);
-		sb.append("    id INTEGER PRIMARY KEY,").append(CR);
-		sb.append("    name VARCHAR(20),").append(CR);
-		sb.append("    bar_id INTEGER,").append(CR);
-		sb.append("    FOREIGN KEY (bar_id) REFERENCES bar(id)").append(CR);
-		sb.append(")").append(CR);
-		return sb.toString();
-	}
-
-	private String buildBazDDL() {
-		StringBuilder sb = new StringBuilder(200);
-		sb.append("CREATE TABLE baz (").append(CR);
-		sb.append("    id INTEGER PRIMARY KEY,").append(CR);
-		sb.append("    name VARCHAR(20)").append(CR);
-		sb.append(")").append(CR);
-		return sb.toString();
-	}
-
-	private String buildFooBazDDL() {
-		StringBuilder sb = new StringBuilder(200);
-		sb.append("CREATE TABLE foo_baz (").append(CR);
-		sb.append("    foo_id INT,").append(CR);
-		sb.append("    baz_id INT,").append(CR);
-		sb.append("    FOREIGN KEY (foo_id) REFERENCES foo(id),").append(CR);
-		sb.append("    FOREIGN KEY (baz_id) REFERENCES baz(id)").append(CR);
-		sb.append(")").append(CR);
-		return sb.toString();
-	}
-
-	/**
-	 * On Windows, table names get folded to lowercase by default;
-	 * even if the name is delimited (apparently).
-	 */
-	public void testTableLookup() throws Exception {
-		this.connectionProfile.connect();
-		TestConnectionListener listener = new TestConnectionListener();
-		this.connectionProfile.addConnectionListener(listener);
-
-		this.dropDatabase(this.getDatabaseName());
-		this.executeUpdate("CREATE DATABASE " + this.getDatabaseName());
-		this.getJDBCConnection().setCatalog(this.getDatabaseName());
-
-		this.dropTable(this.getDatabaseName(), "test1");
-		this.dropTable(this.getDatabaseName(), "TEST2");
-		this.dropTable(this.getDatabaseName(), "`TEST3`");
-
-		this.executeUpdate("CREATE TABLE test1 (id INTEGER, name VARCHAR(20))");
-		this.executeUpdate("CREATE TABLE TEST2 (id INTEGER, name VARCHAR(20))");
-		this.executeUpdate("CREATE TABLE `TEST3` (id INTEGER, name VARCHAR(20))");
-		((ICatalogObject) this.getDTPDatabase()).refresh();
-
-		Schema schema = this.getDatabase().getDefaultSchema();
-
-		Table test1Table = schema.getTableForIdentifier("test1");
-		assertNotNull(test1Table);
-
-		// this probably only works on Windows
-		Table test2Table = schema.getTableForIdentifier("test2");
-		assertNotNull(test2Table);
-
-		// this probably only works on Windows
-		Table test3Table = schema.getTableForIdentifier("`test3`");
-		assertNotNull(test3Table);
-
-		this.dropTable(this.getDatabaseName(), "test1");
-		this.dropTable(this.getDatabaseName(), "TEST2");
-		this.dropTable(this.getDatabaseName(), "`TEST3`");
-
-		this.dropDatabase(this.getDatabaseName());
-
-		this.connectionProfile.removeConnectionListener(listener);
-		this.connectionProfile.disconnect();
-	}
-
-	public void testColumnLookup() throws Exception {
-		this.connectionProfile.connect();
-		TestConnectionListener listener = new TestConnectionListener();
-		this.connectionProfile.addConnectionListener(listener);
-
-		this.dropDatabase(this.getDatabaseName());
-		this.executeUpdate("CREATE DATABASE " + this.getDatabaseName());
-		this.getJDBCConnection().setCatalog(this.getDatabaseName());
-
-		this.dropTable(this.getDatabaseName(), "test");
-
-		// lowercase
-		this.executeUpdate("CREATE TABLE test (id INTEGER, name VARCHAR(20))");
-		((ICatalogObject) this.getDTPDatabase()).refresh();
-
-		Table table = this.getDatabase().getDefaultSchema().getTableNamed("test");
-		assertNotNull(table.getColumnNamed("id"));
-		assertNotNull(table.getColumnNamed("name"));
-
-		this.dropTable(this.getDatabaseName(), "test");
-
-		// uppercase
-		this.executeUpdate("CREATE TABLE test (ID INTEGER, NAME VARCHAR(20))");
-		((ICatalogObject) this.getDTPDatabase()).refresh();
-
-		table = this.getDatabase().getDefaultSchema().getTableNamed("test");
-		assertNotNull(table.getColumnNamed("ID"));
-		assertNotNull(table.getColumnNamed("NAME"));
-
-		this.dropTable(this.getDatabaseName(), "test");
-
-		// mixed case
-		this.executeUpdate("CREATE TABLE test (Id INTEGER, Name VARCHAR(20))");
-		((ICatalogObject) this.getDTPDatabase()).refresh();
-
-		table = this.getDatabase().getDefaultSchema().getTableNamed("test");
-		assertNotNull(table.getColumnNamed("Id"));
-		assertNotNull(table.getColumnNamed("Name"));
-
-		this.dropTable(this.getDatabaseName(), "test");
-
-		// delimited
-		this.executeUpdate("CREATE TABLE test (`Id` INTEGER, `Name` VARCHAR(20))");
-		((ICatalogObject) this.getDTPDatabase()).refresh();
-
-		table = this.getDatabase().getDefaultSchema().getTableNamed("test");
-		assertNotNull(table.getColumnForIdentifier("`Id`"));
-		assertNotNull(table.getColumnForIdentifier("`Name`"));
-
-		this.dropTable(this.getDatabaseName(), "test");
-
-		this.dropDatabase(this.getDatabaseName());
-
-		this.connectionProfile.removeConnectionListener(listener);
-		this.connectionProfile.disconnect();
-	}
-
-	/**
-	 * We can only get a single "schema" per connection via DTP,
-	 * so cross-schema references are not visible.
-	 */
-	public void testCrossSchemaReference() throws Exception {
-		this.connectionProfile.connect();
-		TestConnectionListener listener = new TestConnectionListener();
-		this.connectionProfile.addConnectionListener(listener);
-
-		this.dropDatabase("xref_test2");
-		this.dropDatabase("xref_test1");
-
-		this.executeUpdate("CREATE DATABASE xref_test1");
-		this.getJDBCConnection().setCatalog("xref_test1");
-		this.executeUpdate("CREATE TABLE org (id INTEGER PRIMARY KEY, name VARCHAR(20))");
-
-		this.executeUpdate("CREATE DATABASE xref_test2");
-		this.getJDBCConnection().setCatalog("xref_test2");
-		this.executeUpdate("CREATE TABLE emp (id INTEGER PRIMARY KEY, name VARCHAR(20), " +
-				"org_id INTEGER, FOREIGN KEY (org_id) REFERENCES xref_test1.org(id))");
-
-		this.getJDBCConnection().setCatalog("xref_test2");
-		((ICatalogObject) this.getDTPDatabase()).refresh();
-		Schema schema2 = this.getDatabase().getDefaultSchema();
-		assertNotNull(schema2);
-		Table empTable = schema2.getTableNamed("emp");
-		assertNotNull(empTable);
-		// no foreign keys
-		assertEquals(0, empTable.foreignKeysSize());
-
-		this.dropDatabase("xref_test2");
-		this.dropDatabase("xref_test1");
-
-		this.connectionProfile.removeConnectionListener(listener);
-		this.connectionProfile.disconnect();
-	}
-
-	private void dropTable(String dbName, String tableName) throws Exception {
-		this.executeUpdate("DROP TABLE IF EXISTS " + dbName + '.' + tableName);
-	}
-
-	private void dropDatabase(String name) throws Exception {
-		this.executeUpdate("DROP DATABASE IF EXISTS " + name);
-	}
-
-}
diff --git a/jpa/tests/org.eclipse.jpt.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 bd70825..0000000
--- a/jpa/tests/org.eclipse.jpt.db.tests/src/org/eclipse/jpt/db/tests/internal/platforms/Oracle10gTests.java
+++ /dev/null
@@ -1,397 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2008 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.db.tests.internal.platforms;
-
-import java.sql.SQLException;
-
-import org.eclipse.datatools.connectivity.sqm.core.rte.ICatalogObject;
-import org.eclipse.jpt.db.Column;
-import org.eclipse.jpt.db.ForeignKey;
-import org.eclipse.jpt.db.Schema;
-import org.eclipse.jpt.db.Table;
-
-@SuppressWarnings("nls")
-public class Oracle10gTests extends DTPPlatformTests {
-
-	public Oracle10gTests( String name) {
-		super( name);
-	}
-
-	@Override
-	protected String getPlatformPropertiesFileName() {
-		return "oracle10g.properties";
-	}
-
-	@Override
-	protected String getDriverName() {
-		return "Oracle 10g Thin Driver";
-	}
-
-	@Override
-	protected String getDriverDefinitionID() {
-		return "DriverDefn.Oracle Thin Driver";
-	}
-
-	@Override
-	protected String getDriverDefinitionType() {
-		return "org.eclipse.datatools.enablement.oracle.10.driverTemplate";
-	}
-
-	@Override
-	protected String getDatabaseVendor() {
-		return "Oracle";
-	}
-
-	@Override
-	protected String getDatabaseVersion() {
-		return "10";
-	}
-
-	@Override
-	protected String getDriverClass() {
-		return "oracle.jdbc.OracleDriver";
-	}
-
-	@Override
-	protected String getProfileName() {
-		return "Oracle10g_10.1.0.4";
-	}
-
-	@Override
-	protected String getProfileDescription() {
-		return "Oracle10g (10.1.0.4) JDBC Profile [Test]";
-	}
-
-	@Override
-	protected boolean supportsCatalogs() {
-		return false;
-	}
-
-	@Override
-	protected boolean executeOfflineTests() {
-		// working offline is pretty ugly
-		return false;
-	}
-
-	public void testDatabase() throws Exception {
-		if (this.connectionProfile.getUserName().toUpperCase().equals("SYS")) {
-			System.out.println("skipped test: " + this.getClass() + '.' + this.getName());
-			return;  // SYS does not have a schema
-		}
-		this.connectionProfile.connect();
-		TestConnectionListener listener = new TestConnectionListener();
-		this.connectionProfile.addConnectionListener(listener);
-
-		// Oracle should have a schema with the same name as the user
-		Schema schema = this.getDatabase().getSchemaForIdentifier(this.getUserID());
-		assertNotNull(schema);
-		assertSame(this.getDatabase().getDefaultSchema(), schema);
-
-		this.connectionProfile.removeConnectionListener(listener);
-		this.connectionProfile.disconnect();
-	}
-
-	public void testTable() throws Exception {
-		this.connectionProfile.connect();
-		TestConnectionListener listener = new TestConnectionListener();
-		this.connectionProfile.addConnectionListener(listener);
-
-		this.dropTable("foo_baz");
-		this.dropTable("baz");
-		this.dropTable("foo");
-		this.dropTable("bar");
-
-		this.executeUpdate(this.buildBarDDL());
-		this.executeUpdate(this.buildFooDDL());
-		this.executeUpdate(this.buildBazDDL());
-		this.executeUpdate(this.buildFooBazDDL());
-		((ICatalogObject) this.getDTPDatabase()).refresh();
-
-		Schema schema = this.getDatabase().getDefaultSchema();
-
-		// foo
-		Table fooTable = schema.getTableForIdentifier("foo");
-		assertEquals(3, fooTable.columnsSize());
-		assertEquals(1, fooTable.primaryKeyColumnsSize());
-		assertEquals(1, fooTable.foreignKeysSize());
-
-		Column pkColumn = fooTable.getPrimaryKeyColumn();
-		assertEquals("ID", pkColumn.getName());
-		Column idColumn = fooTable.getColumnForIdentifier("id");
-		assertSame(pkColumn, idColumn);
-		assertEquals("NUMBER", idColumn.getDataTypeName());
-		assertSame(fooTable, idColumn.getTable());
-		assertTrue(idColumn.isPartOfPrimaryKey());
-		assertFalse(idColumn.isPartOfForeignKey());
-		assertEquals("java.math.BigDecimal", idColumn.getJavaTypeDeclaration());
-
-		Column nameColumn = fooTable.getColumnForIdentifier("name");
-		assertEquals("VARCHAR2", nameColumn.getDataTypeName());
-		assertEquals("java.lang.String", nameColumn.getJavaTypeDeclaration());
-		assertFalse(nameColumn.isPartOfPrimaryKey());
-
-		Column barColumn = fooTable.getColumnForIdentifier("bar_id");
-		assertEquals("NUMBER", barColumn.getDataTypeName());
-		assertTrue(barColumn.isPartOfForeignKey());
-		assertFalse(barColumn.isPartOfPrimaryKey());
-
-		ForeignKey barFK = fooTable.foreignKeys().next();  // there should only be 1 foreign key
-		assertEquals(1, barFK.columnPairsSize());
-		assertEquals("BAR", barFK.getAttributeName());
-		assertNull(barFK.getJoinColumnAnnotationIdentifier("bar"));
-		assertEquals("BAR_ID", barFK.getJoinColumnAnnotationIdentifier("primaryBar"));
-		assertSame(fooTable, barFK.getBaseTable());
-
-		assertFalse(fooTable.isPossibleJoinTable());
-		assertSame(schema, fooTable.getSchema());
-
-		// BAR
-		Table barTable = schema.getTableForIdentifier("bar");
-		assertEquals(2, barTable.columnsSize());
-		assertEquals(1, barTable.primaryKeyColumnsSize());
-		assertEquals(0, barTable.foreignKeysSize());
-		assertEquals("ID", barTable.getPrimaryKeyColumn().getName());
-		assertFalse(barTable.isPossibleJoinTable());
-		assertEquals("BLOB", barTable.getColumnForIdentifier("chunk").getDataTypeName());
-		assertEquals("byte[]", barTable.getColumnForIdentifier("chunk").getJavaTypeDeclaration());
-		assertTrue(barTable.getColumnForIdentifier("chunk").isLOB());
-		assertSame(barTable, barFK.getReferencedTable());
-
-		// FOO_BAZ
-		Table foo_bazTable = schema.getTableForIdentifier("foo_baz");
-		assertEquals(2, foo_bazTable.columnsSize());
-		assertEquals(0, foo_bazTable.primaryKeyColumnsSize());
-		assertEquals(2, foo_bazTable.foreignKeysSize());
-		assertTrue(foo_bazTable.isPossibleJoinTable());
-		assertTrue(foo_bazTable.joinTableNameIsDefault());
-		assertTrue(foo_bazTable.getColumnForIdentifier("foo_id").isPartOfForeignKey());
-
-		this.dropTable("foo_baz");
-		this.dropTable("baz");
-		this.dropTable("foo");
-		this.dropTable("bar");
-
-		this.connectionProfile.removeConnectionListener(listener);
-		this.connectionProfile.disconnect();
-	}
-
-	private static final String CR = System.getProperty("line.separator");  //$NON-NLS-1$
-
-	private String buildBarDDL() {
-		StringBuilder sb = new StringBuilder(200);
-		sb.append("CREATE TABLE bar (").append(CR);
-		sb.append("    id NUMBER(10) PRIMARY KEY,").append(CR);
-		sb.append("    chunk BLOB").append(CR);
-		sb.append(")").append(CR);
-		return sb.toString();
-	}
-
-	private String buildFooDDL() {
-		StringBuilder sb = new StringBuilder(200);
-		sb.append("CREATE TABLE foo (").append(CR);
-		sb.append("    id NUMBER(10) PRIMARY KEY,").append(CR);
-		sb.append("    name VARCHAR2(20),").append(CR);
-		sb.append("    bar_id REFERENCES bar(id)").append(CR);
-		sb.append(")").append(CR);
-		return sb.toString();
-	}
-
-	private String buildBazDDL() {
-		StringBuilder sb = new StringBuilder(200);
-		sb.append("CREATE TABLE baz (").append(CR);
-		sb.append("    id NUMBER(10) PRIMARY KEY,").append(CR);
-		sb.append("    name VARCHAR2(20)").append(CR);
-		sb.append(")").append(CR);
-		return sb.toString();
-	}
-
-	private String buildFooBazDDL() {
-		StringBuilder sb = new StringBuilder(200);
-		sb.append("CREATE TABLE foo_baz (").append(CR);
-		sb.append("    foo_id NUMBER(10) REFERENCES foo(id),").append(CR);
-		sb.append("    baz_id NUMBER(10) REFERENCES baz(id)").append(CR);
-		sb.append(")").append(CR);
-		return sb.toString();
-	}
-
-	public void testTableLookup() throws Exception {
-		this.connectionProfile.connect();
-		TestConnectionListener listener = new TestConnectionListener();
-		this.connectionProfile.addConnectionListener(listener);
-
-		this.dropTable("test1");
-		this.dropTable("TEST2");
-		this.dropTable("\"test3\"");
-
-		this.executeUpdate("CREATE TABLE test1 (id NUMBER(10), name VARCHAR2(20))");
-		this.executeUpdate("CREATE TABLE TEST2 (id NUMBER(10), name VARCHAR2(20))");
-		this.executeUpdate("CREATE TABLE \"test3\" (id NUMBER(10), name VARCHAR2(20))");
-		((ICatalogObject) this.getDTPDatabase()).refresh();
-
-		Schema schema = this.getDatabase().getDefaultSchema();
-
-		Table test1Table = schema.getTableForIdentifier("test1");
-		assertNotNull(test1Table);
-		test1Table = schema.getTableForIdentifier("TEST1");
-		assertNotNull(test1Table);
-
-		Table test2Table = schema.getTableForIdentifier("test2");
-		assertNotNull(test2Table);
-		test2Table = schema.getTableForIdentifier("TEST2");
-		assertNotNull(test2Table);
-
-		Table test3Table = schema.getTableForIdentifier("\"test3\"");
-		assertNotNull(test3Table);
-		test3Table = schema.getTableForIdentifier("test3");
-		assertNull(test3Table);
-
-		this.dropTable("test1");
-		this.dropTable("TEST2");
-		this.dropTable("\"test3\"");
-
-		this.connectionProfile.removeConnectionListener(listener);
-		this.connectionProfile.disconnect();
-	}
-
-	public void testColumnLookup() throws Exception {
-		this.connectionProfile.connect();
-		TestConnectionListener listener = new TestConnectionListener();
-		this.connectionProfile.addConnectionListener(listener);
-
-		this.dropTable("test");
-
-		// lowercase
-		this.executeUpdate("CREATE TABLE test (id NUMBER(10), name VARCHAR2(20))");
-		((ICatalogObject) this.getDTPDatabase()).refresh();
-
-		Table table = this.getDatabase().getDefaultSchema().getTableForIdentifier("test");
-		assertNotNull(table.getColumnForIdentifier("id"));
-		assertNotNull(table.getColumnForIdentifier("name"));
-
-		this.dropTable("test");
-
-		// uppercase
-		this.executeUpdate("CREATE TABLE test (ID NUMBER(10), NAME VARCHAR2(20))");
-		((ICatalogObject) this.getDTPDatabase()).refresh();
-
-		table = this.getDatabase().getDefaultSchema().getTableForIdentifier("test");
-		assertNotNull(table.getColumnForIdentifier("ID"));
-		assertNotNull(table.getColumnForIdentifier("NAME"));
-
-		this.dropTable("test");
-
-		// mixed case
-		this.executeUpdate("CREATE TABLE test (Id NUMBER(10), Name VARCHAR2(20))");
-		((ICatalogObject) this.getDTPDatabase()).refresh();
-
-		table = this.getDatabase().getDefaultSchema().getTableForIdentifier("test");
-		assertNotNull(table.getColumnForIdentifier("Id"));
-		assertNotNull(table.getColumnForIdentifier("Name"));
-
-		this.dropTable("test");
-
-		// delimited
-		this.executeUpdate("CREATE TABLE test (\"Id\" NUMBER(10), \"Name\" VARCHAR2(20))");
-		((ICatalogObject) this.getDTPDatabase()).refresh();
-
-		table = this.getDatabase().getDefaultSchema().getTableForIdentifier("test");
-		assertNotNull(table.getColumnForIdentifier("\"Id\""));
-		assertNotNull(table.getColumnForIdentifier("\"Name\""));
-
-		this.dropTable("test");
-
-		this.connectionProfile.removeConnectionListener(listener);
-		this.connectionProfile.disconnect();
-	}
-
-	public void testCrossSchemaReference() throws Exception {
-		if ( ! this.connectionProfile.getUserName().toUpperCase().equals("SYS")) {
-			System.out.println("skipped test: " + this.getClass() + '.' + this.getName());
-			return;  // SYS does not have a schema
-		}
-		this.connectionProfile.connect();
-		TestConnectionListener listener = new TestConnectionListener();
-		this.connectionProfile.addConnectionListener(listener);
-
-		this.executeUpdateIgnoreErrors("DROP USER XREF_TEST2 CASCADE");
-		this.executeUpdateIgnoreErrors("DROP USER XREF_TEST1 CASCADE");
-
-		this.executeUpdate("CREATE USER XREF_TEST1 IDENTIFIED BY foo");
-		this.executeUpdate("ALTER USER XREF_TEST1 QUOTA UNLIMITED ON USERS");
-		this.executeUpdate("CREATE TABLE XREF_TEST1.ORG (ID NUMBER(10) PRIMARY KEY, NAME VARCHAR2(20))");
-
-		this.executeUpdate("CREATE USER XREF_TEST2 IDENTIFIED BY foo");
-		this.executeUpdate("ALTER USER XREF_TEST2 QUOTA UNLIMITED ON USERS");
-		this.executeUpdate("GRANT ALL ON XREF_TEST1.ORG TO XREF_TEST2");
-		this.executeUpdate("CREATE TABLE XREF_TEST2.EMP (ID NUMBER(10) PRIMARY KEY, NAME VARCHAR2(20), " +
-				"ORG_ID NUMBER(10) REFERENCES XREF_TEST1.ORG(ID))");
-
-		((ICatalogObject) this.getDTPDatabase()).refresh();
-		Schema schema1 = this.getDatabase().getSchemaNamed("XREF_TEST1");
-		assertNotNull(schema1);
-		Table orgTable = schema1.getTableNamed("ORG");
-		assertNotNull(orgTable);
-
-		Schema schema2 = this.getDatabase().getSchemaNamed("XREF_TEST2");
-		assertNotNull(schema2);
-		Table empTable = schema2.getTableNamed("EMP");
-		assertNotNull(empTable);
-		assertEquals(1, empTable.foreignKeysSize());
-		ForeignKey fk = empTable.foreignKeys().next();
-		Table refTable = fk.getReferencedTable();
-		assertNotNull(refTable);
-		assertEquals("ORG", refTable.getName());
-		assertEquals(1, fk.columnPairsSize());
-		ForeignKey.ColumnPair cp = fk.columnPairs().next();
-		Column baseColumn = cp.getBaseColumn();
-		assertEquals("ORG_ID", baseColumn.getName());
-		Column refColumn = cp.getReferencedColumn();
-		assertEquals("ID", refColumn.getName());
-
-		this.executeUpdate("DROP USER XREF_TEST2 CASCADE");
-		this.executeUpdate("DROP USER XREF_TEST1 CASCADE");
-		this.connectionProfile.removeConnectionListener(listener);
-		this.connectionProfile.disconnect();
-	}
-
-	private void dropTable(String tableName) throws Exception {
-		this.executeUpdateIgnoreErrors("DROP TABLE " + tableName + " CASCADE CONSTRAINTS");
-	}
-
-// need Oracle enablement plug-in
-//	public void testSequence() throws Exception {
-//		this.connectionProfile.connect();
-//		TestConnectionListener listener = new TestConnectionListener();
-//		this.connectionProfile.addConnectionListener(listener);
-//
-//		this.dropSequence("FOO_SEQ");
-//
-//		this.executeUpdate("CREATE SEQUENCE FOO_SEQ");
-//		((ICatalogObject) this.getDTPDatabase()).refresh();
-//
-//		Sequence sequence = this.getDatabase().getDefaultSchema().getSequenceForIdentifier("FOO");
-//		assertNotNull(sequence);
-//		assertEquals("FOO_SEQ", sequence.getName());
-//
-//		this.dropSequence("FOO_SEQ");
-//
-//		this.connectionProfile.removeConnectionListener(listener);
-//		this.connectionProfile.disconnect();
-//	}
-//
-//	private void dropSequence(String sequenceName) throws Exception {
-//		this.executeUpdateIgnoreErrors("DROP SEQUENCE " + sequenceName);
-//	}
-//
-	protected void dumpUserObjects() throws SQLException {
-		this.dump("select * from user_objects");
-	}
-
-}
diff --git a/jpa/tests/org.eclipse.jpt.db.tests/src/org/eclipse/jpt/db/tests/internal/platforms/Oracle10gXETests.java b/jpa/tests/org.eclipse.jpt.db.tests/src/org/eclipse/jpt/db/tests/internal/platforms/Oracle10gXETests.java
deleted file mode 100644
index 7f309f8..0000000
--- a/jpa/tests/org.eclipse.jpt.db.tests/src/org/eclipse/jpt/db/tests/internal/platforms/Oracle10gXETests.java
+++ /dev/null
@@ -1,79 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2008 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.db.tests.internal.platforms;
-
-
-/**
- *  Oracle 10g Thin Driver Test
- */
-@SuppressWarnings("nls")
-public class Oracle10gXETests extends DTPPlatformTests {
-
-	public Oracle10gXETests( String name) {
-		super( name);
-	}
-
-	@Override
-	protected String getPlatformPropertiesFileName() {
-		return "oracle10gXE.properties";
-	}
-
-	@Override
-	protected String getDriverName() {
-		return "Oracle 10g Thin Driver";
-	}
-
-	@Override
-	protected String getDriverDefinitionID() {
-		return "DriverDefn.Oracle Thin Driver";
-	}
-
-	@Override
-	protected String getDriverDefinitionType() {
-		return "org.eclipse.datatools.enablement.oracle.10.driverTemplate";
-	}
-
-	@Override
-	protected String getDatabaseVendor() {
-		return "Oracle";
-	}
-
-	@Override
-	protected String getDatabaseVersion() {
-		return "10";
-	}
-
-	@Override
-	protected String getDriverClass() {
-		return "oracle.jdbc.OracleDriver";
-	}
-
-	@Override
-	protected String getProfileName() {
-		return "Oracle10g_XE";
-	}
-
-	@Override
-	protected String getProfileDescription() {
-		return "Oracle10g XE Release 2 (10.2) JDBC Profile [Test]";
-	}
-
-	@Override
-	protected boolean supportsCatalogs() {
-		return false;
-	}
-
-	@Override
-	protected boolean executeOfflineTests() {
-		// working offline is pretty ugly
-		return false;
-	}
-
-}
diff --git a/jpa/tests/org.eclipse.jpt.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 9d1c474..0000000
--- a/jpa/tests/org.eclipse.jpt.db.tests/src/org/eclipse/jpt/db/tests/internal/platforms/Oracle9iTests.java
+++ /dev/null
@@ -1,79 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2008 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.db.tests.internal.platforms;
-
-
-/**
- *  Oracle 9i Thin Driver Test
- */
-@SuppressWarnings("nls")
-public class Oracle9iTests extends DTPPlatformTests {
-
-	public Oracle9iTests( String name) {
-		super( name);
-	}
-
-	@Override
-	protected String getPlatformPropertiesFileName() {
-		return "oracle9i.properties";
-	}
-
-	@Override
-	protected String getDriverName() {
-		return "Oracle 9i Thin Driver";
-	}
-
-	@Override
-	protected String getDriverDefinitionID() {
-		return "DriverDefn.Oracle Thin Driver";
-	}
-
-	@Override
-	protected String getDriverDefinitionType() {
-		return "org.eclipse.datatools.enablement.oracle.9.driverTemplate";
-	}
-
-	@Override
-	protected String getDatabaseVendor() {
-		return "Oracle";
-	}
-
-	@Override
-	protected String getDatabaseVersion() {
-		return "9";
-	}
-
-	@Override
-	protected String getDriverClass() {
-		return "oracle.jdbc.OracleDriver";
-	}
-
-	@Override
-	protected String getProfileName() {
-		return "Oracle9i";
-	}
-
-	@Override
-	protected String getProfileDescription() {
-		return "Oracle9i JDBC Profile [Test]";
-	}
-
-	@Override
-	protected boolean supportsCatalogs() {
-		return false;
-	}
-
-	@Override
-	protected boolean executeOfflineTests() {
-		// working offline is pretty ugly
-		return false;
-	}
-
-}
diff --git a/jpa/tests/org.eclipse.jpt.db.tests/src/org/eclipse/jpt/db/tests/internal/platforms/PostgreSQLTests.java b/jpa/tests/org.eclipse.jpt.db.tests/src/org/eclipse/jpt/db/tests/internal/platforms/PostgreSQLTests.java
deleted file mode 100644
index 7066141..0000000
--- a/jpa/tests/org.eclipse.jpt.db.tests/src/org/eclipse/jpt/db/tests/internal/platforms/PostgreSQLTests.java
+++ /dev/null
@@ -1,486 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.db.tests.internal.platforms;
-
-import org.eclipse.datatools.connectivity.sqm.core.rte.ICatalogObject;
-import org.eclipse.jpt.db.Column;
-import org.eclipse.jpt.db.ForeignKey;
-import org.eclipse.jpt.db.Schema;
-import org.eclipse.jpt.db.Table;
-
-@SuppressWarnings("nls")
-public class PostgreSQLTests extends DTPPlatformTests {
-
-	public PostgreSQLTests( String name) {
-		super( name);
-	}
-
-	@Override
-	protected String getPlatformPropertiesFileName() {
-		return "postgresql.properties";
-	}
-
-	@Override
-	protected String getDriverName() {
-		return "PostgreSQL JDBC Driver";
-	}
-
-	@Override
-	protected String getDriverDefinitionID() {
-		return "DriverDefn.PostgreSQL JDBC Driver";
-	}
-
-	@Override
-	protected String getDriverDefinitionType() {
-		return "org.eclipse.datatools.enablement.postgresql.postgresqlDriverTemplate";
-	}
-
-	@Override
-	protected String getDatabaseVendor() {
-		return "postgres";
-	}
-
-	@Override
-	protected String getDatabaseVersion() {
-		return "8.x";
-	}
-
-	@Override
-	protected String getDriverClass() {
-		return "org.postgresql.Driver";
-	}
-
-	@Override
-	protected String getDefaultJDBCURL() {
-		// using this URL will result in the DTP database containing a single
-		// catalog named "" - which, unfortunately, resembles the pseudo-catalog
-		// generated by DTP for databases that do not return any catalogs via
-		// JDBC metadata calls...
-		return "jdbc:postgresql";
-	}
-
-	@Override
-	protected String getProfileName() {
-		return "PostgreSQL";
-	}
-
-	@Override
-	protected String getProfileDescription() {
-		return "PostgreSQL 8.2 JDBC Profile [Test]";
-	}
-
-	@Override
-	protected boolean supportsCatalogs() {
-		return true;
-	}
-
-	@Override
-	protected boolean executeOfflineTests() {
-		// DTP does not support PostgreSQL off-line - see 226704/241558
-		return false;
-	}
-
-	public void testSchema() throws Exception {
-		this.connectionProfile.connect();
-		TestConnectionListener listener = new TestConnectionListener();
-		this.connectionProfile.addConnectionListener(listener);
-
-		this.dropSchema("TEST1");
-		this.dropSchema("TEST2");
-
-		this.executeUpdate("CREATE SCHEMA TEST1");
-		((ICatalogObject) this.getDTPDatabase()).refresh();
-
-		Schema schema1 = this.getDefaultCatalog().getSchemaForIdentifier("TEST1");
-		assertNotNull(schema1);
-
-		this.executeUpdate("CREATE SCHEMA TEST2");
-		Schema schema2 = this.getDefaultCatalog().getSchemaForIdentifier("TEST2");
-		assertNull(schema2);  // should be null until refresh
-
-		((ICatalogObject) this.getDTPDatabase()).refresh();
-		assertSame(this.getDatabase(), listener.changedDatabase);
-
-		schema2 = this.getDefaultCatalog().getSchemaForIdentifier("TEST2");
-		assertNotNull(schema2);
-		assertNotSame(schema1, this.getDefaultCatalog().getSchemaForIdentifier("TEST1"));  // we should have a new schema after the refresh
-
-		this.dropSchema("TEST2");
-		this.dropSchema("TEST1");
-		this.connectionProfile.removeConnectionListener(listener);
-		this.connectionProfile.disconnect();
-	}
-
-	public void testSchemaLookup() throws Exception {
-		this.connectionProfile.connect();
-		TestConnectionListener listener = new TestConnectionListener();
-		this.connectionProfile.addConnectionListener(listener);
-
-		this.dropSchema("LOOKUP_TEST");
-		this.dropSchema("\"lookup_TEST\"");
-
-		this.executeUpdate("CREATE SCHEMA LOOKUP_TEST");
-		((ICatalogObject) this.getDTPDatabase()).refresh();
-
-		assertNull(this.getDefaultCatalog().getSchemaNamed("LOOKUP_TEST"));
-		assertNotNull(this.getDefaultCatalog().getSchemaForIdentifier("LOOKUP_TEST"));
-
-		assertNotNull(this.getDefaultCatalog().getSchemaNamed("lookup_test"));
-		assertNotNull(this.getDefaultCatalog().getSchemaForIdentifier("lookup_test"));
-
-		assertNull(this.getDefaultCatalog().getSchemaNamed("lookup_TEST"));
-		assertNotNull(this.getDefaultCatalog().getSchemaForIdentifier("lookup_TEST"));
-
-		assertNotNull(this.getDefaultCatalog().getSchemaForIdentifier("\"lookup_test\""));
-		assertNull(this.getDefaultCatalog().getSchemaForIdentifier("\"lookup_TEST\""));
-		assertNull(this.getDefaultCatalog().getSchemaForIdentifier("\"LOOKUP_TEST\""));
-
-		this.dropSchema("LOOKUP_TEST");
-
-		this.executeUpdate("CREATE SCHEMA \"lookup_TEST\"");
-		((ICatalogObject) this.getDTPDatabase()).refresh();
-
-		assertNull(this.getDefaultCatalog().getSchemaNamed("LOOKUP_TEST"));
-		assertNull(this.getDefaultCatalog().getSchemaForIdentifier("LOOKUP_TEST"));
-
-		assertNull(this.getDefaultCatalog().getSchemaNamed("lookup_test"));
-		assertNull(this.getDefaultCatalog().getSchemaForIdentifier("lookup_test"));
-
-		assertNotNull(this.getDefaultCatalog().getSchemaNamed("lookup_TEST"));
-		assertNull(this.getDefaultCatalog().getSchemaForIdentifier("lookup_TEST"));
-
-		assertNull(this.getDefaultCatalog().getSchemaForIdentifier("\"LOOKUP_TEST\""));
-		assertNotNull(this.getDefaultCatalog().getSchemaForIdentifier("\"lookup_TEST\""));
-
-		this.dropSchema("\"lookup_TEST\"");
-
-		this.connectionProfile.removeConnectionListener(listener);
-		this.connectionProfile.disconnect();
-	}
-
-	public void testSchemaIdentifier() throws Exception {
-		this.connectionProfile.connect();
-		TestConnectionListener listener = new TestConnectionListener();
-		this.connectionProfile.addConnectionListener(listener);
-
-		this.dropSchema("LOOKUP_TEST");
-		this.dropSchema("\"lookup_TEST\"");
-
-		this.executeUpdate("CREATE SCHEMA lookup_test");  // this gets folded to lowercase
-		this.executeUpdate("CREATE SCHEMA \"lookup_TEST\"");
-		((ICatalogObject) this.getDTPDatabase()).refresh();
-
-		Schema schema = this.getDefaultCatalog().getSchemaForIdentifier("LOOKUP_TEST");
-		assertEquals("lookup_test", schema.getIdentifier());
-		assertEquals("lookup_test", schema.getIdentifier("LookupTest"));
-		assertNull(schema.getIdentifier("Lookup_Test"));
-
-		schema = this.getDefaultCatalog().getSchemaNamed("lookup_test");
-		assertEquals("lookup_test", schema.getIdentifier());
-
-		schema = this.getDefaultCatalog().getSchemaForIdentifier("\"lookup_TEST\"");
-		assertEquals("\"lookup_TEST\"", schema.getIdentifier());
-		assertEquals("\"lookup_TEST\"", schema.getIdentifier("lookup_TEST"));
-
-		this.dropSchema("\"lookup_TEST\"");
-		this.dropSchema("LOOKUP_TEST");
-
-		this.connectionProfile.removeConnectionListener(listener);
-		this.connectionProfile.disconnect();
-	}
-
-	public void testTable() throws Exception {
-		this.connectionProfile.connect();
-		TestConnectionListener listener = new TestConnectionListener();
-		this.connectionProfile.addConnectionListener(listener);
-
-		this.dropTable("TABLE_TEST", "FOO_BAZ");
-		this.dropTable("TABLE_TEST", "BAZ");
-		this.dropTable("TABLE_TEST", "FOO");
-		this.dropTable("TABLE_TEST", "BAR");
-		this.dropSchema("TABLE_TEST");
-
-		this.executeUpdate("CREATE SCHEMA TABLE_TEST");
-		this.executeUpdate("SET search_path TO TABLE_TEST");
-
-		this.executeUpdate(this.buildBarDDL());
-		this.executeUpdate(this.buildFooDDL());
-		this.executeUpdate(this.buildBazDDL());
-		this.executeUpdate(this.buildFooBazDDL());
-		((ICatalogObject) this.getDTPDatabase()).refresh();
-
-		Schema schema = this.getDefaultCatalog().getSchemaForIdentifier("TABLE_TEST");
-
-		// FOO
-		Table fooTable = schema.getTableForIdentifier("FOO");
-		assertEquals(3, fooTable.columnsSize());
-		assertEquals(1, fooTable.primaryKeyColumnsSize());
-		assertEquals(1, fooTable.foreignKeysSize());
-
-		Column pkColumn = fooTable.getPrimaryKeyColumn();
-		assertEquals("id", pkColumn.getName());
-		Column idColumn = fooTable.getColumnForIdentifier("ID");
-		assertSame(pkColumn, idColumn);
-		assertEquals("INT4", idColumn.getDataTypeName());
-		assertSame(fooTable, idColumn.getTable());
-		assertTrue(idColumn.isPartOfPrimaryKey());
-		assertFalse(idColumn.isPartOfForeignKey());
-		assertEquals("java.lang.Integer", idColumn.getJavaTypeDeclaration());
-
-		Column nameColumn = fooTable.getColumnForIdentifier("NAME");
-		assertEquals("VARCHAR", nameColumn.getDataTypeName());
-		assertEquals("java.lang.String", nameColumn.getJavaTypeDeclaration());
-		assertFalse(nameColumn.isPartOfPrimaryKey());
-
-		Column barColumn = fooTable.getColumnForIdentifier("BAR_ID");
-		assertEquals("INT4", barColumn.getDataTypeName());
-		assertTrue(barColumn.isPartOfForeignKey());
-		assertFalse(barColumn.isPartOfPrimaryKey());
-
-		ForeignKey barFK = fooTable.foreignKeys().next();  // there should only be 1 foreign key
-		assertEquals(1, barFK.columnPairsSize());
-		assertEquals("bar", barFK.getAttributeName());
-		assertNull(barFK.getJoinColumnAnnotationIdentifier("bar"));
-		assertEquals("bar_id", barFK.getJoinColumnAnnotationIdentifier("primaryBar"));
-		assertSame(fooTable, barFK.getBaseTable());
-
-		assertFalse(fooTable.isPossibleJoinTable());
-		assertSame(schema, fooTable.getSchema());
-
-		// BAR
-		Table barTable = schema.getTableForIdentifier("BAR");
-		assertEquals(2, barTable.columnsSize());
-		assertEquals(1, barTable.primaryKeyColumnsSize());
-		assertEquals(0, barTable.foreignKeysSize());
-		assertEquals("id", barTable.getPrimaryKeyColumn().getName());
-		assertFalse(barTable.isPossibleJoinTable());
-		assertEquals("BYTEA", barTable.getColumnForIdentifier("CHUNK").getDataTypeName());
-		assertEquals("byte[]", barTable.getColumnForIdentifier("CHUNK").getJavaTypeDeclaration());
-		// assertTrue(barTable.getColumnForIdentifier("CHUNK").dataTypeIsLOB());
-		assertSame(barTable, barFK.getReferencedTable());
-
-		// FOO_BAZ
-		Table foo_bazTable = schema.getTableForIdentifier("FOO_BAZ");
-		assertEquals(2, foo_bazTable.columnsSize());
-		assertEquals(0, foo_bazTable.primaryKeyColumnsSize());
-		assertEquals(2, foo_bazTable.foreignKeysSize());
-		assertTrue(foo_bazTable.isPossibleJoinTable());
-		assertTrue(foo_bazTable.joinTableNameIsDefault());
-		assertTrue(foo_bazTable.getColumnForIdentifier("FOO_ID").isPartOfForeignKey());
-
-		this.dropTable("TABLE_TEST", "FOO_BAZ");
-		this.dropTable("TABLE_TEST", "BAZ");
-		this.dropTable("TABLE_TEST", "FOO");
-		this.dropTable("TABLE_TEST", "BAR");
-		this.dropSchema("TABLE_TEST");
-
-		this.connectionProfile.removeConnectionListener(listener);
-		this.connectionProfile.disconnect();
-	}
-
-	private static final String CR = System.getProperty("line.separator");  //$NON-NLS-1$
-
-	private String buildBarDDL() {
-		StringBuilder sb = new StringBuilder(200);
-		sb.append("CREATE TABLE BAR (").append(CR);
-		sb.append("    ID integer PRIMARY KEY,").append(CR);
-		sb.append("    CHUNK bytea").append(CR);
-		sb.append(")").append(CR);
-		return sb.toString();
-	}
-
-	private String buildFooDDL() {
-		StringBuilder sb = new StringBuilder(200);
-		sb.append("CREATE TABLE FOO (").append(CR);
-		sb.append("    ID integer PRIMARY KEY,").append(CR);
-		sb.append("    NAME varchar(20),").append(CR);
-		sb.append("    BAR_ID integer REFERENCES BAR(ID)").append(CR);
-		sb.append(")").append(CR);
-		return sb.toString();
-	}
-
-	private String buildBazDDL() {
-		StringBuilder sb = new StringBuilder(200);
-		sb.append("CREATE TABLE BAZ (").append(CR);
-		sb.append("    ID integer PRIMARY KEY,").append(CR);
-		sb.append("    NAME varchar(20)").append(CR);
-		sb.append(")").append(CR);
-		return sb.toString();
-	}
-
-	private String buildFooBazDDL() {
-		StringBuilder sb = new StringBuilder(200);
-		sb.append("CREATE TABLE FOO_BAZ (").append(CR);
-		sb.append("    FOO_ID int REFERENCES FOO(ID),").append(CR);
-		sb.append("    BAZ_ID int REFERENCES BAZ(ID)").append(CR);
-		sb.append(")").append(CR);
-		return sb.toString();
-	}
-
-	public void testColumnLookup() throws Exception {
-		this.connectionProfile.connect();
-		TestConnectionListener listener = new TestConnectionListener();
-		this.connectionProfile.addConnectionListener(listener);
-
-		this.dropTable("TABLE_TEST", "test");
-		this.dropSchema("TABLE_TEST");
-
-		this.executeUpdate("CREATE SCHEMA TABLE_TEST");
-		this.executeUpdate("SET search_path TO TABLE_TEST");
-
-		// lowercase
-		this.executeUpdate("CREATE TABLE test (id int, name varchar(20))");
-		((ICatalogObject) this.getDTPDatabase()).refresh();
-
-		Table table = this.getDefaultCatalog().getSchemaForIdentifier("TABLE_TEST").getTableForIdentifier("test");
-		assertNotNull(table.getColumnForIdentifier("id"));
-		assertNotNull(table.getColumnForIdentifier("name"));
-
-		this.dropTable("TABLE_TEST", "test");
-
-		// uppercase
-		this.executeUpdate("CREATE TABLE test (ID int, NAME varchar(20))");
-		((ICatalogObject) this.getDTPDatabase()).refresh();
-
-		table = this.getDefaultCatalog().getSchemaForIdentifier("TABLE_TEST").getTableForIdentifier("test");
-		assertNotNull(table.getColumnForIdentifier("ID"));
-		assertNotNull(table.getColumnForIdentifier("NAME"));
-
-		this.dropTable("TABLE_TEST", "test");
-
-		// mixed case
-		this.executeUpdate("CREATE TABLE test (Id int, Name varchar(20))");
-		((ICatalogObject) this.getDTPDatabase()).refresh();
-
-		table = this.getDefaultCatalog().getSchemaForIdentifier("TABLE_TEST").getTableForIdentifier("test");
-		assertNotNull(table.getColumnForIdentifier("Id"));
-		assertNotNull(table.getColumnForIdentifier("Name"));
-
-		this.dropTable("TABLE_TEST", "test");
-
-		// delimited
-		this.executeUpdate("CREATE TABLE test (\"Id\" int, \"Name\" varchar(20))");
-		((ICatalogObject) this.getDTPDatabase()).refresh();
-
-		table = this.getDefaultCatalog().getSchemaForIdentifier("TABLE_TEST").getTableForIdentifier("test");
-		assertNotNull(table.getColumnForIdentifier("\"Id\""));
-		assertNotNull(table.getColumnForIdentifier("\"Name\""));
-
-		this.dropTable("TABLE_TEST", "test");
-		this.dropSchema("TABLE_TEST");
-
-		this.connectionProfile.removeConnectionListener(listener);
-		this.connectionProfile.disconnect();
-	}
-
-	public void testCrossSchemaReference() throws Exception {
-		this.connectionProfile.connect();
-		TestConnectionListener listener = new TestConnectionListener();
-		this.connectionProfile.addConnectionListener(listener);
-
-		this.dropTable("XREF_TEST2", "EMP");
-		this.dropSchema("XREF_TEST2");
-		this.dropTable("XREF_TEST1", "ORG");
-		this.dropSchema("XREF_TEST1");
-
-		this.executeUpdate("CREATE SCHEMA XREF_TEST1");
-		this.executeUpdate("SET search_path TO XREF_TEST1");
-		this.executeUpdate("CREATE TABLE ORG (ID integer PRIMARY KEY, NAME varchar(20))");
-
-		this.executeUpdate("CREATE SCHEMA XREF_TEST2");
-		this.executeUpdate("SET search_path TO XREF_TEST2");
-		this.executeUpdate("CREATE TABLE EMP (ID integer PRIMARY KEY, NAME varchar(20), " +
-				"ORG_ID integer REFERENCES XREF_TEST1.ORG(ID))");
-
-		((ICatalogObject) this.getDTPDatabase()).refresh();
-		Schema schema1 = this.getDatabase().getDefaultCatalog().getSchemaNamed("xref_test1");
-		assertNotNull(schema1);
-		Table orgTable = schema1.getTableNamed("org");
-		assertNotNull(orgTable);
-
-		Schema schema2 = this.getDatabase().getDefaultCatalog().getSchemaNamed("xref_test2");
-		assertNotNull(schema2);
-		Table empTable = schema2.getTableNamed("emp");
-		assertNotNull(empTable);
-		assertEquals(1, empTable.foreignKeysSize());
-		ForeignKey fk = empTable.foreignKeys().next();
-		Table refTable = fk.getReferencedTable();
-		assertNotNull(refTable);
-		assertEquals("org", refTable.getName());
-		assertEquals(1, fk.columnPairsSize());
-		ForeignKey.ColumnPair cp = fk.columnPairs().next();
-		Column baseColumn = cp.getBaseColumn();
-		assertEquals("org_id", baseColumn.getName());
-		Column refColumn = cp.getReferencedColumn();
-		assertEquals("id", refColumn.getName());
-
-		this.dropTable("XREF_TEST2", "EMP");
-		this.dropSchema("XREF_TEST2");
-		this.dropTable("XREF_TEST1", "ORG");
-		this.dropSchema("XREF_TEST1");
-		this.connectionProfile.removeConnectionListener(listener);
-		this.connectionProfile.disconnect();
-	}
-
-	private void dropTable(String schemaName, String tableName) throws Exception {
-		Schema schema= this.getDefaultCatalog().getSchemaForIdentifier(schemaName);
-		if (schema != null) {
-			if (schema.getTableForIdentifier(tableName) != null) {
-				this.executeUpdate("DROP TABLE " + schemaName + '.' + tableName);
-			}
-		}
-	}
-
-	private void dropSchema(String name) throws Exception {
-		if (this.getDefaultCatalog().getSchemaForIdentifier(name) != null) {
-			this.executeUpdate("DROP SCHEMA " + name + " CASCADE");
-		}
-	}
-
-// see 241578/241557
-//	public void testSequence() throws Exception {
-//		this.connectionProfile.connect();
-//		TestConnectionListener listener = new TestConnectionListener();
-//		this.connectionProfile.addConnectionListener(listener);
-//
-//		this.dropSequence("SEQUENCE_TEST", "FOO");
-//		this.dropSchema("SEQUENCE_TEST");
-//
-//		this.executeUpdate("CREATE SCHEMA SEQUENCE_TEST");
-//		this.executeUpdate("SET search_path TO SEQUENCE_TEST");
-//
-//		this.executeUpdate(this.buildBarDDL());
-//		this.executeUpdate("CREATE SEQUENCE FOO START 1");
-////		List<Object[]> list = this.execute("SELECT nextval('foo')");
-////		System.out.println(list);
-//		((ICatalogObject) this.getDTPDatabase()).refresh();
-//
-//		Schema schema = this.getDefaultCatalog().getSchemaNamed("SEQUENCE_TEST");
-//		Sequence sequence = schema.getSequenceNamed("FOO");
-//		assertNotNull(sequence);
-//		assertEquals("foo_seq", sequence.getName());
-//
-//		this.dropSequence("SEQUENCE_TEST", "FOO");
-//		this.dropSchema("SEQUENCE_TEST");
-//
-//		this.connectionProfile.removeConnectionListener(listener);
-//		this.connectionProfile.disconnect();
-//	}
-//
-//	private void dropSequence(String schemaName, String sequenceName) throws Exception {
-//		Schema schema= this.getDefaultCatalog().getSchemaNamed(schemaName);
-//		if (schema != null) {
-//			if (schema.getSequenceNamed(sequenceName) != null) {
-//				this.executeUpdate("DROP SEQUENCE " + schemaName + '.' + sequenceName);
-//			}
-//		}
-//	}
-//
-}
diff --git a/jpa/tests/org.eclipse.jpt.db.tests/src/org/eclipse/jpt/db/tests/internal/platforms/SQLServerTests.java b/jpa/tests/org.eclipse.jpt.db.tests/src/org/eclipse/jpt/db/tests/internal/platforms/SQLServerTests.java
deleted file mode 100644
index cedde5d..0000000
--- a/jpa/tests/org.eclipse.jpt.db.tests/src/org/eclipse/jpt/db/tests/internal/platforms/SQLServerTests.java
+++ /dev/null
@@ -1,83 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2008 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.db.tests.internal.platforms;
-
-
-/**
- *  SQL Server 2005 Driver Test
- */
-@SuppressWarnings("nls")
-public class SQLServerTests extends DTPPlatformTests {
-
-	public SQLServerTests( String name) {
-		super( name);
-	}
-
-	@Override
-	protected String getPlatformPropertiesFileName() {
-		return "sqlserver.properties";
-	}
-
-	@Override
-	protected String getDriverName() {
-		return "Microsoft SQL Server 2005 JDBC Driver";
-	}
-
-	@Override
-	protected String getDriverDefinitionID() {
-		return "DriverDefn.Microsoft SQL Server 2005 JDBC Driver";
-	}
-
-	@Override
-	protected String getDriverDefinitionType() {
-		return "org.eclipse.datatools.enablement.msft.sqlserver.2005.driverTemplate";
-	}
-
-	@Override
-	protected String getDatabaseVendor() {
-		return "SQLServer";
-	}
-
-	@Override
-	protected String getDatabaseVersion() {
-		return "2005";
-	}
-
-	@Override
-	protected String getDriverClass() {
-		return "com.microsoft.sqlserver.jdbc.SQLServerDriver";
-	}
-
-	@Override
-	protected String getProfileName() {
-		return "SQLServer_2005";
-	}
-
-	@Override
-	protected String getProfileDescription() {
-		return "Microsoft SQL Server 2005 JDBC Profile [Test]";
-	}
-
-	@Override
-	protected String getProviderID() {
-		return "org.eclipse.datatools.connectivity.db.generic.connectionProfile";
-	}
-
-	@Override
-	protected boolean supportsCatalogs() {
-		return true;
-	}
-
-	@Override
-	protected boolean executeOfflineTests() {
-		return true;  // haven't actually tried this yet...
-	}
-
-}
diff --git a/jpa/tests/org.eclipse.jpt.db.tests/src/org/eclipse/jpt/db/tests/internal/platforms/SybaseTests.java b/jpa/tests/org.eclipse.jpt.db.tests/src/org/eclipse/jpt/db/tests/internal/platforms/SybaseTests.java
deleted file mode 100644
index d822e51..0000000
--- a/jpa/tests/org.eclipse.jpt.db.tests/src/org/eclipse/jpt/db/tests/internal/platforms/SybaseTests.java
+++ /dev/null
@@ -1,444 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.db.tests.internal.platforms;
-
-import org.eclipse.datatools.connectivity.sqm.core.rte.ICatalogObject;
-import org.eclipse.jpt.db.Catalog;
-import org.eclipse.jpt.db.Column;
-import org.eclipse.jpt.db.ForeignKey;
-import org.eclipse.jpt.db.Schema;
-import org.eclipse.jpt.db.Table;
-import org.eclipse.jpt.db.tests.internal.platforms.DTPPlatformTests.TestConnectionListener;
-
-@SuppressWarnings("nls")
-public class SybaseTests extends DTPPlatformTests {
-
-	public SybaseTests( String name) {
-		super( name);
-	}
-
-	@Override
-	protected String getPlatformPropertiesFileName() {
-		return "sybase.properties";
-	}
-
-	@Override
-	protected String getDriverName() {
-		return "Sybase JDBC Driver for Sybase ASE 15.x";
-	}
-
-	@Override
-	protected String getDriverDefinitionID() {
-		return "DriverDefn.Sybase JDBC Driver for Sybase ASE 15.x";
-	}
-
-	@Override
-	protected String getDriverDefinitionType() {
-		return "org.eclipse.datatools.connectivity.db.sybase.ase.genericDriverTemplate_15";
-	}
-
-	@Override
-	protected String getDatabaseVendor() {
-		return "Sybase_ASE";
-	}
-
-	@Override
-	protected String getDatabaseVersion() {
-		return "15.x";
-	}
-
-	@Override
-	protected String getDriverClass() {
-		return "com.sybase.jdbc3.jdbc.SybDriver";
-	}
-
-	@Override
-	protected String getProfileName() {
-		return "Sybase_15";
-	}
-
-	@Override
-	protected String getProfileDescription() {
-		return "Sybase ASE 15 jConnect JDBC Profile [Test]";
-	}
-
-	@Override
-	protected boolean supportsCatalogs() {
-		return true;
-	}
-
-	@Override
-	protected boolean executeOfflineTests() {
-		// working offline is pretty ugly
-		return false;
-	}
-
-	/**
-	 * Sybase "databases" become DTP "catalogs"
-	 */
-	public void testCatalog() throws Exception {
-		this.connectionProfile.connect();
-		TestConnectionListener listener = new TestConnectionListener();
-		this.connectionProfile.addConnectionListener(listener);
-
-		this.getJDBCConnection().setCatalog("master");
-		this.executeUpdateIgnoreErrors("drop database test1");
-		this.executeUpdateIgnoreErrors("drop database test2");
-
-		this.executeUpdate("create database test1");
-		((ICatalogObject) this.getDTPDatabase()).refresh();
-
-		Catalog catalog1 = this.getDatabase().getCatalogNamed("test1");
-		assertNotNull(catalog1);
-		Schema schema1 = catalog1.getSchemaNamed("dbo");
-		assertNotNull(schema1);
-		assertSame(schema1, catalog1.getDefaultSchema());
-
-		this.executeUpdate("create database test2");
-		Catalog catalog2 = this.getDatabase().getCatalogNamed("test2");
-		assertNull(catalog2);  // should be null until refresh
-
-		((ICatalogObject) this.getDTPDatabase()).refresh();
-		assertSame(this.getDatabase(), listener.changedDatabase);
-
-		catalog2 = this.getDatabase().getCatalogNamed("test2");
-		assertNotNull(catalog2);
-		Schema schema2 = catalog2.getDefaultSchema();
-		assertNotNull(schema2);
-
-		assertNotSame(catalog1, this.getDatabase().getCatalogNamed("test1"));  // we should have a new catalog after the refresh
-		assertNotSame(schema1, this.getDatabase().getCatalogNamed("test1").getDefaultSchema());  // we should have a new schema after the refresh
-
-		this.executeUpdate("drop database test2");
-		this.executeUpdate("drop database test1");
-		this.connectionProfile.removeConnectionListener(listener);
-		this.connectionProfile.disconnect();
-	}
-
-	public void testTable() throws Exception {
-		this.connectionProfile.connect();
-		TestConnectionListener listener = new TestConnectionListener();
-		this.connectionProfile.addConnectionListener(listener);
-
-		this.getJDBCConnection().setCatalog("master");
-		this.executeUpdateIgnoreErrors("drop database table_test");
-		this.executeUpdate("create database table_test");
-		this.getJDBCConnection().setCatalog("table_test");
-
-		this.executeUpdate(this.buildBarDDL());
-		this.executeUpdate(this.buildFooDDL());
-		this.executeUpdate(this.buildBazDDL());
-		this.executeUpdate(this.buildFooBazDDL());
-		((ICatalogObject) this.getDTPDatabase()).refresh();
-
-		Schema schema = this.getDatabase().getCatalogNamed("table_test").getDefaultSchema();
-
-		// foo
-		Table fooTable = schema.getTableNamed("foo");
-		assertEquals(3, fooTable.columnsSize());
-		assertEquals(1, fooTable.primaryKeyColumnsSize());
-		assertEquals(1, fooTable.foreignKeysSize());
-
-		Column pkColumn = fooTable.getPrimaryKeyColumn();
-		assertEquals("id", pkColumn.getName());
-		Column idColumn = fooTable.getColumnNamed("id");
-		assertSame(fooTable, idColumn.getTable());
-		assertSame(pkColumn, idColumn);
-		assertTrue(idColumn.isPartOfPrimaryKey());
-		assertFalse(idColumn.isPartOfForeignKey());
-		assertTrue(idColumn.isPartOfUniqueConstraint());
-		assertFalse(idColumn.isNullable());
-
-		assertEquals("INT", idColumn.getDataTypeName());
-		assertTrue(idColumn.isNumeric());
-		assertEquals(0, idColumn.getPrecision());
-		assertEquals(0, idColumn.getScale());
-		assertEquals(-1, idColumn.getLength());
-		assertFalse(idColumn.isLOB());
-		assertEquals("int", idColumn.getJavaTypeDeclaration());
-
-		Column nameColumn = fooTable.getColumnNamed("name");
-		assertFalse(nameColumn.isPartOfPrimaryKey());
-		assertFalse(nameColumn.isPartOfForeignKey());
-		assertTrue(nameColumn.isPartOfUniqueConstraint());
-		assertFalse(nameColumn.isNullable());  // implied "NOT NULL" ?
-
-		assertEquals("VARCHAR", nameColumn.getDataTypeName());
-		assertFalse(nameColumn.isNumeric());
-		assertEquals(-1, nameColumn.getPrecision());
-		assertEquals(-1, nameColumn.getScale());
-		assertEquals(20, nameColumn.getLength());
-		assertFalse(nameColumn.isLOB());
-		assertEquals("java.lang.String", nameColumn.getJavaTypeDeclaration());
-
-		Column barColumn = fooTable.getColumnNamed("bar_id");
-		assertEquals("INT", barColumn.getDataTypeName());
-		assertTrue(barColumn.isPartOfForeignKey());
-		assertFalse(barColumn.isPartOfPrimaryKey());
-
-		ForeignKey barFK = fooTable.foreignKeys().next();  // there should only be 1 foreign key
-		assertEquals(1, barFK.columnPairsSize());
-		assertEquals("bar", barFK.getAttributeName());
-		assertNull(barFK.getJoinColumnAnnotationIdentifier("bar"));
-		assertEquals("bar_id", barFK.getJoinColumnAnnotationIdentifier("primaryBar"));
-		assertSame(fooTable, barFK.getBaseTable());
-
-		assertFalse(fooTable.isPossibleJoinTable());
-		assertSame(schema, fooTable.getSchema());
-
-		// BAR
-		Table barTable = schema.getTableNamed("bar");
-		assertEquals(2, barTable.columnsSize());
-		assertEquals(1, barTable.primaryKeyColumnsSize());
-		assertEquals(0, barTable.foreignKeysSize());
-		assertEquals("id", barTable.getPrimaryKeyColumn().getName());
-		assertFalse(barTable.isPossibleJoinTable());
-		Column chunkColumn = barTable.getColumnNamed("chunk");
-		assertEquals("IMAGE", chunkColumn.getDataTypeName());
-		assertFalse(chunkColumn.isNumeric());
-		assertTrue(chunkColumn.isLOB());
-		assertEquals("byte[]", chunkColumn.getJavaTypeDeclaration());
-		assertSame(barTable, barFK.getReferencedTable());
-
-		// BAZ
-		Table bazTable = schema.getTableNamed("baz");
-		assertEquals(4, bazTable.columnsSize());
-		assertEquals(1, bazTable.primaryKeyColumnsSize());
-		assertEquals(0, bazTable.foreignKeysSize());
-
-		Column nicknameColumn = bazTable.getColumnNamed("nickname");
-		assertTrue(nicknameColumn.isNullable());
-
-		Column songColumn = bazTable.getColumnNamed("song");
-		assertFalse(songColumn.isNullable());
-
-		Column salaryColumn = bazTable.getColumnNamed("salary");
-		assertFalse(salaryColumn.isPartOfUniqueConstraint());
-		assertEquals("DECIMAL", salaryColumn.getDataTypeName());
-		assertTrue(salaryColumn.isNumeric());
-		assertEquals(10, salaryColumn.getPrecision());
-		assertEquals(2, salaryColumn.getScale());
-		assertEquals(-1, salaryColumn.getLength());
-		assertFalse(salaryColumn.isLOB());
-
-		// FOO_BAZ
-		Table foo_bazTable = schema.getTableNamed("foo_baz");
-		assertEquals(2, foo_bazTable.columnsSize());
-		assertEquals(0, foo_bazTable.primaryKeyColumnsSize());
-		assertEquals(2, foo_bazTable.foreignKeysSize());
-		assertTrue(foo_bazTable.isPossibleJoinTable());
-		assertTrue(foo_bazTable.joinTableNameIsDefault());
-		assertTrue(foo_bazTable.getColumnNamed("foo_id").isPartOfForeignKey());
-
-		this.executeUpdate("drop table foo_baz");
-		this.executeUpdate("drop table baz");
-		this.executeUpdate("drop table foo");
-		this.executeUpdate("drop table bar");
-
-		this.getJDBCConnection().setCatalog("master");
-		this.executeUpdate("drop database table_test");
-
-		this.connectionProfile.removeConnectionListener(listener);
-		this.connectionProfile.disconnect();
-	}
-
-	private static final String CR = System.getProperty("line.separator");  //$NON-NLS-1$
-
-	private String buildBarDDL() {
-		StringBuilder sb = new StringBuilder(200);
-		sb.append("create table bar (").append(CR);
-		sb.append("    id integer primary key,").append(CR);
-		sb.append("    chunk image").append(CR);
-		sb.append(")").append(CR);
-		return sb.toString();
-	}
-
-	private String buildFooDDL() {
-		StringBuilder sb = new StringBuilder(200);
-		sb.append("create table foo (").append(CR);
-		sb.append("    id integer primary key,").append(CR);
-		sb.append("    name varchar(20) unique,").append(CR);
-		sb.append("    bar_id integer references bar(id)").append(CR);
-		sb.append(")").append(CR);
-		return sb.toString();
-	}
-
-	private String buildBazDDL() {
-		StringBuilder sb = new StringBuilder(200);
-		sb.append("create table baz (").append(CR);
-		sb.append("    id integer primary key,").append(CR);
-		sb.append("    nickname varchar(20) null,").append(CR);
-		sb.append("    song varchar(20) not null,").append(CR);
-		sb.append("    salary decimal(10, 2)").append(CR);
-		sb.append(")").append(CR);
-		return sb.toString();
-	}
-
-	private String buildFooBazDDL() {
-		StringBuilder sb = new StringBuilder(200);
-		sb.append("create table foo_baz (").append(CR);
-		sb.append("    foo_id integer references foo(id),").append(CR);
-		sb.append("    baz_id integer references baz(id)").append(CR);
-		sb.append(")").append(CR);
-		return sb.toString();
-	}
-
-	public void testTableLookup() throws Exception {
-		this.connectionProfile.connect();
-		TestConnectionListener listener = new TestConnectionListener();
-		this.connectionProfile.addConnectionListener(listener);
-
-		this.getJDBCConnection().setCatalog("master");
-		this.executeUpdateIgnoreErrors("drop database table_lookup_test");
-		this.executeUpdate("create database table_lookup_test");
-		this.getJDBCConnection().setCatalog("table_lookup_test");
-
-		this.executeUpdate("create table test1 (id integer, name varchar(20))");
-		this.executeUpdate("create table TEST2 (id integer, name varchar(20))");
-		this.executeUpdate("create table [Test3] (id integer, name varchar(20))");
-		((ICatalogObject) this.getDTPDatabase()).refresh();
-
-		Schema schema = this.getDatabase().getCatalogNamed("table_lookup_test").getDefaultSchema();
-
-		assertNotNull(schema.getTableNamed("test1"));
-		assertNotNull(schema.getTableForIdentifier("test1"));
-
-		assertNotNull(schema.getTableNamed("TEST2"));
-		assertNotNull(schema.getTableForIdentifier("TEST2"));
-
-		assertNotNull(schema.getTableForIdentifier("[Test3]"));
-
-		this.executeUpdate("drop table [Test3]");
-		this.executeUpdate("drop table TEST2");
-		this.executeUpdate("drop table test1");
-
-		this.getJDBCConnection().setCatalog("master");
-		this.executeUpdate("drop database table_lookup_test");
-
-		this.connectionProfile.removeConnectionListener(listener);
-		this.connectionProfile.disconnect();
-	}
-
-	public void testColumnLookup() throws Exception {
-		this.connectionProfile.connect();
-		TestConnectionListener listener = new TestConnectionListener();
-		this.connectionProfile.addConnectionListener(listener);
-
-		this.getJDBCConnection().setCatalog("master");
-		this.executeUpdateIgnoreErrors("drop database column_lookup_test");
-		this.executeUpdate("create database column_lookup_test");
-		this.getJDBCConnection().setCatalog("column_lookup_test");
-
-		// lowercase
-		this.executeUpdate("create table test (id integer, name varchar(20))");
-		((ICatalogObject) this.getDTPDatabase()).refresh();
-
-		Table table = this.getDatabase().getCatalogNamed("column_lookup_test").getDefaultSchema().getTableNamed("test");
-		assertNotNull(table.getColumnNamed("id"));
-		assertNotNull(table.getColumnNamed("name"));
-
-		this.executeUpdate("drop table test");
-
-		// uppercase
-		this.executeUpdate("create table test (ID integer, NAME varchar(20))");
-		((ICatalogObject) this.getDTPDatabase()).refresh();
-
-		table = this.getDatabase().getCatalogNamed("column_lookup_test").getDefaultSchema().getTableNamed("test");
-		assertNotNull(table.getColumnForIdentifier("ID"));
-		assertNotNull(table.getColumnForIdentifier("NAME"));
-
-		this.executeUpdate("drop table test");
-
-		// mixed case
-		this.executeUpdate("create table test (Id integer, Name varchar(20))");
-		((ICatalogObject) this.getDTPDatabase()).refresh();
-
-		table = this.getDatabase().getCatalogNamed("column_lookup_test").getDefaultSchema().getTableNamed("test");
-		assertNotNull(table.getColumnForIdentifier("Id"));
-		assertNotNull(table.getColumnForIdentifier("Name"));
-
-		this.executeUpdate("drop table test");
-
-		// delimited
-		this.executeUpdate("create table test ([Id] integer, [Name] varchar(20))");
-		((ICatalogObject) this.getDTPDatabase()).refresh();
-
-		table = this.getDatabase().getCatalogNamed("column_lookup_test").getDefaultSchema().getTableNamed("test");
-		assertNotNull(table.getColumnForIdentifier("[Id]"));
-		assertNotNull(table.getColumnForIdentifier("[Name]"));
-
-		this.executeUpdate("drop table test");
-
-		this.getJDBCConnection().setCatalog("master");
-		this.executeUpdate("drop database column_lookup_test");
-
-		this.connectionProfile.removeConnectionListener(listener);
-		this.connectionProfile.disconnect();
-	}
-
-	public void testCrossSchemaReference() throws Exception {
-		this.connectionProfile.connect();
-		TestConnectionListener listener = new TestConnectionListener();
-		this.connectionProfile.addConnectionListener(listener);
-
-		this.getJDBCConnection().setCatalog("master");
-		this.executeUpdateIgnoreErrors("drop database xref_test2");
-		this.executeUpdateIgnoreErrors("drop database xref_test1");
-
-		this.getJDBCConnection().setCatalog("master");
-		this.executeUpdate("create database xref_test1");
-		this.getJDBCConnection().setCatalog("xref_test1");
-		this.executeUpdate("create table org (id integer primary key, name varchar(20))");
-
-		this.getJDBCConnection().setCatalog("master");
-		this.executeUpdate("create database xref_test2");
-		this.getJDBCConnection().setCatalog("xref_test2");
-		this.executeUpdate("create table emp (id integer primary key, name varchar(20), " +
-				"org_id integer references xref_test1..org(id))");
-
-		((ICatalogObject) this.getDTPDatabase()).refresh();
-		Catalog catalog1 = this.getDatabase().getCatalogNamed("xref_test1");
-		assertNotNull(catalog1);
-		Schema schema1 = catalog1.getSchemaNamed("dbo");
-		assertNotNull(schema1);
-		Table orgTable = schema1.getTableNamed("org");
-		assertNotNull(orgTable);
-
-		Catalog catalog2 = this.getDatabase().getCatalogNamed("xref_test2");
-		assertNotNull(catalog2);
-		Schema schema2 = catalog2.getSchemaNamed("dbo");
-		assertNotNull(schema2);
-		Table empTable = schema2.getTableNamed("emp");
-		assertNotNull(empTable);
-		assertEquals(1, empTable.foreignKeysSize());
-		ForeignKey fk = empTable.foreignKeys().next();
-		Table refTable = fk.getReferencedTable();
-		assertNotNull(refTable);
-		assertEquals("org", refTable.getName());
-		assertEquals(1, fk.columnPairsSize());
-		ForeignKey.ColumnPair cp = fk.columnPairs().next();
-		Column baseColumn = cp.getBaseColumn();
-		assertEquals("org_id", baseColumn.getName());
-		Column refColumn = cp.getReferencedColumn();
-		assertEquals("id", refColumn.getName());
-
-		this.getJDBCConnection().setCatalog("xref_test2");
-		this.executeUpdate("drop table emp");
-		this.getJDBCConnection().setCatalog("xref_test1");
-		this.executeUpdate("drop table org");
-		this.getJDBCConnection().setCatalog("master");
-		this.executeUpdate("drop database xref_test2");
-		this.executeUpdate("drop database xref_test1");
-
-		this.connectionProfile.removeConnectionListener(listener);
-		this.connectionProfile.disconnect();
-	}
-
-}
diff --git a/jpa/tests/org.eclipse.jpt.eclipselink.core.tests/.classpath b/jpa/tests/org.eclipse.jpt.eclipselink.core.tests/.classpath
deleted file mode 100644
index db34e47..0000000
--- a/jpa/tests/org.eclipse.jpt.eclipselink.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.eclipselink.core.tests/.cvsignore b/jpa/tests/org.eclipse.jpt.eclipselink.core.tests/.cvsignore
deleted file mode 100644
index c4ba612..0000000
--- a/jpa/tests/org.eclipse.jpt.eclipselink.core.tests/.cvsignore
+++ /dev/null
@@ -1,5 +0,0 @@
-bin
-@dot
-temp.folder
-build.xml
-javaCompiler...args
\ No newline at end of file
diff --git a/jpa/tests/org.eclipse.jpt.eclipselink.core.tests/.project b/jpa/tests/org.eclipse.jpt.eclipselink.core.tests/.project
deleted file mode 100644
index 26141a5..0000000
--- a/jpa/tests/org.eclipse.jpt.eclipselink.core.tests/.project
+++ /dev/null
@@ -1,28 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<projectDescription>
-	<name>org.eclipse.jpt.eclipselink.core.tests</name>
-	<comment></comment>
-	<projects>
-	</projects>
-	<buildSpec>
-		<buildCommand>
-			<name>org.eclipse.jdt.core.javabuilder</name>
-			<arguments>
-			</arguments>
-		</buildCommand>
-		<buildCommand>
-			<name>org.eclipse.pde.ManifestBuilder</name>
-			<arguments>
-			</arguments>
-		</buildCommand>
-		<buildCommand>
-			<name>org.eclipse.pde.SchemaBuilder</name>
-			<arguments>
-			</arguments>
-		</buildCommand>
-	</buildSpec>
-	<natures>
-		<nature>org.eclipse.pde.PluginNature</nature>
-		<nature>org.eclipse.jdt.core.javanature</nature>
-	</natures>
-</projectDescription>
diff --git a/jpa/tests/org.eclipse.jpt.eclipselink.core.tests/.settings/org.eclipse.core.resources.prefs b/jpa/tests/org.eclipse.jpt.eclipselink.core.tests/.settings/org.eclipse.core.resources.prefs
deleted file mode 100644
index 11155f4..0000000
--- a/jpa/tests/org.eclipse.jpt.eclipselink.core.tests/.settings/org.eclipse.core.resources.prefs
+++ /dev/null
@@ -1,3 +0,0 @@
-#Mon Apr 07 14:26:54 EDT 2008
-eclipse.preferences.version=1
-encoding/<project>=ISO-8859-1
diff --git a/jpa/tests/org.eclipse.jpt.eclipselink.core.tests/META-INF/MANIFEST.MF b/jpa/tests/org.eclipse.jpt.eclipselink.core.tests/META-INF/MANIFEST.MF
deleted file mode 100644
index db70c87..0000000
--- a/jpa/tests/org.eclipse.jpt.eclipselink.core.tests/META-INF/MANIFEST.MF
+++ /dev/null
@@ -1,39 +0,0 @@
-Manifest-Version: 1.0
-Bundle-ManifestVersion: 2
-Bundle-Name: %pluginName
-Bundle-Vendor: %providerName
-Bundle-SymbolicName: org.eclipse.jpt.eclipselink.core.tests
-Bundle-Version: 1.2.0
-Bundle-Localization: plugin
-Require-Bundle: org.eclipse.core.commands;bundle-version="[3.4.0,4.0.0)",
- org.eclipse.core.resources;bundle-version="[3.4.0,4.0.0)",
- org.eclipse.core.runtime;bundle-version="[3.4.0,4.0.0)",
- org.eclipse.emf.ecore.xmi;bundle-version="2.4.0",
- org.eclipse.jdt.core;bundle-version="[3.4.0,4.0.0)",
- org.eclipse.jem;bundle-version="[2.0.200,3.0.0)",
- org.eclipse.jpt.core;bundle-version="[2.0.0,3.0.0)",
- org.eclipse.jpt.core.tests;bundle-version="[2.0.0,3.0.0)",
- org.eclipse.jpt.eclipselink.core;bundle-version="[1.0.0,2.0.0)",
- org.eclipse.jpt.utility;bundle-version="[1.2.0,2.0.0)",
- org.eclipse.wst.common.emf;bundle-version="[1.1.201,2.0.0)",
- org.eclipse.wst.common.emfworkbench.integration;bundle-version="1.1.201",
- org.eclipse.wst.common.frameworks;bundle-version="[1.1.200,1.2.0)",
- org.eclipse.wst.common.modulecore;bundle-version="[1.1.200,2.0.0)",
- org.eclipse.wst.common.project.facet.core;bundle-version="[1.3.0,2.0.0)",
- org.junit;bundle-version="[3.8.2,4.0.0)"
-Bundle-RequiredExecutionEnvironment: J2SE-1.5
-Import-Package: org.eclipse.jpt.utility.tests.internal
-Export-Package: org.eclipse.jpt.eclipselink.core.tests.internal;x-internal:=true,
- org.eclipse.jpt.eclipselink.core.tests.internal.context;x-internal:=true,
- org.eclipse.jpt.eclipselink.core.tests.internal.context.java;x-internal:=true,
- org.eclipse.jpt.eclipselink.core.tests.internal.context.orm;x-internal:=true,
- org.eclipse.jpt.eclipselink.core.tests.internal.context.persistence;x-internal:=true,
- org.eclipse.jpt.eclipselink.core.tests.internal.context.persistence.caching;x-internal:=true,
- org.eclipse.jpt.eclipselink.core.tests.internal.context.persistence.connection;x-internal:=true,
- org.eclipse.jpt.eclipselink.core.tests.internal.context.persistence.customization;x-internal:=true,
- org.eclipse.jpt.eclipselink.core.tests.internal.context.persistence.general;x-internal:=true,
- org.eclipse.jpt.eclipselink.core.tests.internal.context.persistence.logging;x-internal:=true,
- org.eclipse.jpt.eclipselink.core.tests.internal.context.persistence.options;x-internal:=true,
- org.eclipse.jpt.eclipselink.core.tests.internal.context.persistence.schema.generation;x-internal:=true,
- org.eclipse.jpt.eclipselink.core.tests.internal.resource;x-internal:=true,
- org.eclipse.jpt.eclipselink.core.tests.internal.resource.java;x-internal:=true
diff --git a/jpa/tests/org.eclipse.jpt.eclipselink.core.tests/about.html b/jpa/tests/org.eclipse.jpt.eclipselink.core.tests/about.html
deleted file mode 100644
index be534ba..0000000
--- a/jpa/tests/org.eclipse.jpt.eclipselink.core.tests/about.html
+++ /dev/null
@@ -1,34 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN">
-<HTML>
-
-<head>
-<title>About</title>
-<meta http-equiv=Content-Type content="text/html; charset=ISO-8859-1">
-</head>
-
-<BODY lang="EN-US">
-
-<H3>About This Content</H3>
-
-<P>May 02, 2008</P>
-
-<H3>License</H3>
-
-<P>The Eclipse Foundation makes available all content in this plug-in 
-("Content"). Unless otherwise indicated below, the Content is provided to you 
-under the terms and conditions of the Eclipse Public License Version 1.0 
-("EPL"). A copy of the EPL is available at
-<A href="http://www.eclipse.org/org/documents/epl-v10.php">http://www.eclipse.org/org/documents/epl-v10.php</A>. 
-For purposes of the EPL, "Program" will mean the Content.</P>
-
-<P>If you did not receive this Content directly from the Eclipse Foundation, the 
-Content is being redistributed by another party ("Redistributor") and different 
-terms and conditions may apply to your use of any object code in the Content. 
-Check the Redistributor's license that was provided with the Content. If no such 
-license exists, contact the Redistributor. Unless otherwise indicated below, the 
-terms and conditions of the EPL still apply to any source code in the Content 
-and such source code may be obtained at
-<A href="http://www.eclipse.org/">http://www.eclipse.org/</A>.</P>
-
-</BODY>
-</HTML>
diff --git a/jpa/tests/org.eclipse.jpt.eclipselink.core.tests/build.properties b/jpa/tests/org.eclipse.jpt.eclipselink.core.tests/build.properties
deleted file mode 100644
index 9bf11f7..0000000
--- a/jpa/tests/org.eclipse.jpt.eclipselink.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.eclipselink.core.tests/plugin.properties b/jpa/tests/org.eclipse.jpt.eclipselink.core.tests/plugin.properties
deleted file mode 100644
index 8fdd1d3..0000000
--- a/jpa/tests/org.eclipse.jpt.eclipselink.core.tests/plugin.properties
+++ /dev/null
@@ -1,22 +0,0 @@
-###############################################################################
-#  Copyright (c) 2006, 2008 Oracle. All rights reserved. This
-#  program and the accompanying materials are made available under the terms of
-#  the Eclipse Public License v1.0 which accompanies this distribution, and is
-#  available at http://www.eclipse.org/legal/epl-v10.html
-#  
-#  Contributors: Oracle. - initial API and implementation
-###############################################################################
-# ====================================================================
-# To code developer:
-#   Do NOT change the properties between this line and the
-#   "%%% END OF TRANSLATED PROPERTIES %%%" line.
-#   Make a new property name, append to the end of the file and change
-#   the code to use the new property.
-# ====================================================================
-
-# ====================================================================
-# %%% END OF TRANSLATED PROPERTIES %%%
-# ====================================================================
-
-pluginName=Dali Java Persistence Tools - EclipseLink Support - Core Tests
-providerName=Eclipse Web Tools Platform
diff --git a/jpa/tests/org.eclipse.jpt.eclipselink.core.tests/src/org/eclipse/jpt/eclipselink/core/tests/internal/JptEclipseLinkCoreTests.java b/jpa/tests/org.eclipse.jpt.eclipselink.core.tests/src/org/eclipse/jpt/eclipselink/core/tests/internal/JptEclipseLinkCoreTests.java
deleted file mode 100644
index 64f957e..0000000
--- a/jpa/tests/org.eclipse.jpt.eclipselink.core.tests/src/org/eclipse/jpt/eclipselink/core/tests/internal/JptEclipseLinkCoreTests.java
+++ /dev/null
@@ -1,99 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.eclipselink.core.tests.internal;
-
-import java.io.File;
-import junit.framework.Test;
-import junit.framework.TestSuite;
-import org.eclipse.jpt.core.tests.internal.projects.TestJpaProject;
-import org.eclipse.jpt.eclipselink.core.tests.internal.context.JptEclipseLinkCoreContextModelTests;
-import org.eclipse.jpt.eclipselink.core.tests.internal.resource.JptEclipselinkCoreResourceModelTests;
-
-/**
- * decentralize test creation code
- * 
- * Required Java system property:
- *    -Dorg.eclipse.jpt.jpa.jar=<jpa.jar path>
- *    -Dorg.eclipse.jpt.eclipselink.jar=<eclipselink.jar path>
- */
-@SuppressWarnings("nls")
-public class JptEclipseLinkCoreTests
-{
-	private static final String JPA_JAR_PROPERTY = TestJpaProject.JPA_JAR_NAME_SYSTEM_PROPERTY;
-	private static final String ECLIPSELINK_JAR_PROPERTY = TestJpaProject.ECLIPSELINK_JAR_NAME_SYSTEM_PROPERTY;
-
-	public static Test suite() {
-		TestSuite suite = new TestSuite(JptEclipseLinkCoreTests.class.getPackage().getName());
-		
-		if(requiredJarsExists()) {
-			suite.addTest(JptEclipselinkCoreResourceModelTests.suite());
-			suite.addTest(JptEclipseLinkCoreContextModelTests.suite());
-		}
-		else {
-			suite.addTest(TestSuite.warning(buildMissingJarErrorMessage()));
-		}
-		return suite;
-	}
-
-	public static boolean requiredJarsExists() {
-		return jpaJarPropertyExists()
-			&& jpaJarFileExists()
-			&& eclipselinkJarPropertyExists()
-			&& eclipselinkJarFileExists();
-	}
-	
-	public static boolean jpaJarPropertyExists() {
-		return getSystemProperty(JPA_JAR_PROPERTY) != null;
-	}
-	
-	public static boolean jpaJarFileExists() {
-		return (new File(getSystemProperty(JPA_JAR_PROPERTY))).exists();
-	}
-	
-	public static boolean eclipselinkJarPropertyExists() {
-		return getSystemProperty(ECLIPSELINK_JAR_PROPERTY) != null;
-	}
-	
-	public static boolean eclipselinkJarFileExists() {
-		return (new File(getSystemProperty(ECLIPSELINK_JAR_PROPERTY))).exists();
-	}
-
-	/*********** private **********/
-	private static String buildMissingJarErrorMessage() {
-
-		if( ! jpaJarPropertyExists()) {
-			return errorMissingProperty(JPA_JAR_PROPERTY);
-		}
-		else if( ! jpaJarFileExists()) {
-			return errorJarFileDoesNotExist(getSystemProperty(JPA_JAR_PROPERTY));
-		}
-		else if( ! eclipselinkJarPropertyExists()) {
-			return errorMissingProperty(ECLIPSELINK_JAR_PROPERTY);
-		}
-		return errorJarFileDoesNotExist(getSystemProperty(ECLIPSELINK_JAR_PROPERTY));
-	}
-
-	private static String errorMissingProperty(String propertyName) {
-		return "missing Java system property: \"" + propertyName + "\"";
-	}
-
-	private static String errorJarFileDoesNotExist(String propertyValue) {
-		return "JAR file doesn't exist: \"" + propertyValue + "\"";
-	}
-
-	private static String getSystemProperty(String propertyName) {
-		return System.getProperty(propertyName);
-	}
-	
-	private JptEclipseLinkCoreTests() {
-		super();
-		throw new UnsupportedOperationException();
-	}
-}
diff --git a/jpa/tests/org.eclipse.jpt.eclipselink.core.tests/src/org/eclipse/jpt/eclipselink/core/tests/internal/context/EclipseLink1_1ContextModelTestCase.java b/jpa/tests/org.eclipse.jpt.eclipselink.core.tests/src/org/eclipse/jpt/eclipselink/core/tests/internal/context/EclipseLink1_1ContextModelTestCase.java
deleted file mode 100644
index d999276..0000000
--- a/jpa/tests/org.eclipse.jpt.eclipselink.core.tests/src/org/eclipse/jpt/eclipselink/core/tests/internal/context/EclipseLink1_1ContextModelTestCase.java
+++ /dev/null
@@ -1,34 +0,0 @@
-/*******************************************************************************
- *  Copyright (c) 2009  Oracle. 
- *  All rights reserved.  This program and the accompanying materials are 
- *  made available under the terms of the Eclipse Public License v1.0 which 
- *  accompanies this distribution, and is available at 
- *  http://www.eclipse.org/legal/epl-v10.html
- *  
- *  Contributors: 
- *  	Oracle - initial API and implementation
- *******************************************************************************/
-package org.eclipse.jpt.eclipselink.core.tests.internal.context;
-
-import org.eclipse.jpt.core.internal.facet.JpaFacetDataModelProperties;
-import org.eclipse.jpt.core.internal.facet.JpaFacetDataModelProvider;
-import org.eclipse.jpt.eclipselink.core.internal.EclipseLink1_1JpaPlatformProvider;
-import org.eclipse.wst.common.frameworks.datamodel.DataModelFactory;
-import org.eclipse.wst.common.frameworks.datamodel.IDataModel;
-
-public abstract class EclipseLink1_1ContextModelTestCase extends EclipseLinkContextModelTestCase
-{
-	public static final String JPA_ANNOTATIONS_PACKAGE_NAME = "javax.persistence"; //$NON-NLS-1$
-
-	protected EclipseLink1_1ContextModelTestCase(String name) {
-		super(name);
-	}
-	
-	@Override
-	protected IDataModel buildJpaConfigDataModel() {
-		IDataModel dataModel = DataModelFactory.createDataModel(new JpaFacetDataModelProvider());		
-		dataModel.setProperty(JpaFacetDataModelProperties.PLATFORM_ID, EclipseLink1_1JpaPlatformProvider.ID);
-		dataModel.setProperty(JpaFacetDataModelProperties.CREATE_ORM_XML, Boolean.TRUE);
-		return dataModel;
-	}	
-}
diff --git a/jpa/tests/org.eclipse.jpt.eclipselink.core.tests/src/org/eclipse/jpt/eclipselink/core/tests/internal/context/EclipseLink1_1JpaProjectTests.java b/jpa/tests/org.eclipse.jpt.eclipselink.core.tests/src/org/eclipse/jpt/eclipselink/core/tests/internal/context/EclipseLink1_1JpaProjectTests.java
deleted file mode 100644
index 70dfe00..0000000
--- a/jpa/tests/org.eclipse.jpt.eclipselink.core.tests/src/org/eclipse/jpt/eclipselink/core/tests/internal/context/EclipseLink1_1JpaProjectTests.java
+++ /dev/null
@@ -1,164 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.eclipselink.core.tests.internal.context;
-
-import org.eclipse.jpt.core.JptCorePlugin;
-import org.eclipse.jpt.core.internal.resource.orm.OrmXmlResourceProvider;
-import org.eclipse.jpt.core.resource.xml.JpaXmlResource;
-import org.eclipse.jpt.eclipselink.core.internal.JptEclipseLinkCorePlugin;
-import org.eclipse.jpt.eclipselink.core.internal.resource.orm.EclipseLink1_1OrmXmlResourceProvider;
-import org.eclipse.jpt.eclipselink.core.internal.resource.orm.EclipseLinkOrmXmlResourceProvider;
-
-@SuppressWarnings("nls")
-public class EclipseLink1_1JpaProjectTests extends EclipseLink1_1ContextModelTestCase
-{
-	
-	public EclipseLink1_1JpaProjectTests(String name) {
-		super(name);
-	}
-	
-	public void testGetDefaultOrmXmlResource() throws Exception {
-		JpaXmlResource resource = this.getJpaProject().getDefaultOrmXmlResource();
-		assertNotNull(resource);
-		assertEquals(JptCorePlugin.ORM_XML_CONTENT_TYPE, resource.getContentType());
-		assertEquals("src/META-INF/orm.xml", resource.getFile().getProjectRelativePath().toString());	
-		
-		
-		//delete the orm.xml file and verify it is not returned from getDefaultOrmXmlResource()
-		resource.delete(null);
-		resource = this.getJpaProject().getDefaultOrmXmlResource();
-		assertNull(resource);
-		
-		
-		//add the orm.xml file with eclipselink 1.1 orm content type
-		createDefaultOrmXmlFileWithEclipseLink1_1ContentType();
-		resource = this.getJpaProject().getDefaultOrmXmlResource();
-		assertNotNull(resource);
-		assertEquals(JptEclipseLinkCorePlugin.ECLIPSELINK1_1_ORM_XML_CONTENT_TYPE, resource.getContentType());
-		assertEquals("src/META-INF/orm.xml", resource.getFile().getProjectRelativePath().toString());
-		
-		
-		//delete the orm.xml file and verify it is not returned from getDefaultOrmXmlResource()
-		resource.delete(null);
-		resource = this.getJpaProject().getDefaultOrmXmlResource();
-		assertNull(resource);
-		
-		
-		//add the orm.xml file with eclipselink orm content type
-		createDefaultOrmXmlFileWithEclipseLinkContentType();
-		resource = this.getJpaProject().getDefaultOrmXmlResource();
-		assertNotNull(resource);
-		assertEquals(JptEclipseLinkCorePlugin.ECLIPSELINK_ORM_XML_CONTENT_TYPE, resource.getContentType());
-		assertEquals("src/META-INF/orm.xml", resource.getFile().getProjectRelativePath().toString());
-		
-		
-		//delete the orm.xml file and verify it is not returned from getDefaultOrmXmlResource()
-		resource.delete(null);
-		resource = this.getJpaProject().getDefaultOrmXmlResource();
-		assertNull(resource);
-		
-		
-		//add the orm.xml file this time with orm content type
-		createDefaultOrmXmlFile();
-		resource = this.getJpaProject().getDefaultOrmXmlResource();
-		assertNotNull(resource);
-		assertEquals(JptCorePlugin.ORM_XML_CONTENT_TYPE, resource.getContentType());
-		assertEquals("src/META-INF/orm.xml", resource.getFile().getProjectRelativePath().toString());
-	}
-	
-	public void testGetDefaultEclipseLinkOrmXmlResource() throws Exception {
-		JpaXmlResource resource = this.getJpaProject().getDefaultEclipseLinkOrmXmlResource();
-		assertNull(resource);
-		
-		//add the eclipselink-orm.xml 1.1 file
-		createDefaultEclipseLink1_1OrmXmlFile();
-		resource = this.getJpaProject().getDefaultEclipseLinkOrmXmlResource();
-		assertNotNull(resource);
-		assertEquals(JptEclipseLinkCorePlugin.ECLIPSELINK1_1_ORM_XML_CONTENT_TYPE, resource.getContentType());
-		assertEquals("src/META-INF/eclipselink-orm.xml", resource.getFile().getProjectRelativePath().toString());
-		
-		
-		//delete the eclipselink-orm.xml file and verify it is not returned from getDefaultOrmXmlResource()
-		resource.delete(null);
-		resource = this.getJpaProject().getDefaultEclipseLinkOrmXmlResource();
-		assertNull(resource);
-	}
-	
-	private void createDefaultOrmXmlFileWithEclipseLinkContentType() throws Exception {
-		EclipseLinkOrmXmlResourceProvider resourceProvider = 
-			EclipseLinkOrmXmlResourceProvider.getXmlResourceProvider(this.getJavaProject().getProject(), JptCorePlugin.DEFAULT_ORM_XML_FILE_PATH);
-		resourceProvider.createFileAndResource();
-	}
-	
-	private void createDefaultOrmXmlFileWithEclipseLink1_1ContentType() throws Exception {
-		EclipseLink1_1OrmXmlResourceProvider resourceProvider = 
-			EclipseLink1_1OrmXmlResourceProvider.getXmlResourceProvider(this.getJavaProject().getProject(), JptCorePlugin.DEFAULT_ORM_XML_FILE_PATH);
-		resourceProvider.createFileAndResource();
-	}
-
-	private void createDefaultOrmXmlFile() throws Exception {
-		OrmXmlResourceProvider resourceProvider = 
-			OrmXmlResourceProvider.getDefaultXmlResourceProvider(this.getJavaProject().getProject());
-		resourceProvider.createFileAndResource();
-	}
-	
-	private void createDefaultEclipseLink1_1OrmXmlFile() throws Exception {
-		EclipseLink1_1OrmXmlResourceProvider resourceProvider = 
-			EclipseLink1_1OrmXmlResourceProvider.getDefaultXmlResourceProvider(this.getJavaProject().getProject());
-		resourceProvider.createFileAndResource();
-	}
-	
-	private void createEclipseLink1_1OrmXmlFile(String filePath) throws Exception {
-		EclipseLink1_1OrmXmlResourceProvider resourceProvider = 
-			EclipseLink1_1OrmXmlResourceProvider.getXmlResourceProvider(this.getJavaProject().getProject(), filePath);
-		resourceProvider.createFileAndResource();
-	}
-
-	public void testGetMappingFileResource() throws Exception {
-		JpaXmlResource resource = this.getJpaProject().getMappingFileXmlResource(JptEclipseLinkCorePlugin.DEFAULT_ECLIPSELINK_ORM_XML_FILE_PATH);
-		assertNull(resource);
-		
-		//add the eclipselink-orm.xml 1.1 file
-		createDefaultEclipseLink1_1OrmXmlFile();
-		resource = this.getJpaProject().getMappingFileXmlResource(JptEclipseLinkCorePlugin.DEFAULT_ECLIPSELINK_ORM_XML_FILE_PATH);
-		assertNotNull(resource);
-		assertEquals(JptEclipseLinkCorePlugin.ECLIPSELINK1_1_ORM_XML_CONTENT_TYPE, resource.getContentType());
-		assertEquals("src/META-INF/eclipselink-orm.xml", resource.getFile().getProjectRelativePath().toString());
-		
-		//delete the eclipselink-orm.xml file and verify it is not returned from getMappingFileResource()
-		resource.delete(null);
-		resource = this.getJpaProject().getMappingFileXmlResource(JptEclipseLinkCorePlugin.DEFAULT_ECLIPSELINK_ORM_XML_FILE_PATH);
-		assertNull(resource);
-	}
-	
-	public void testGetDifferentlyNamedMappingFileResource() throws Exception {
-		JpaXmlResource resource = this.getJpaProject().getMappingFileXmlResource("META-INF/orm2.xml");
-		assertNull(resource);
-
-		//create the orm2.xml file
-		createEclipseLink1_1OrmXmlFile("META-INF/orm2.xml");
-		resource = this.getJpaProject().getMappingFileXmlResource("META-INF/orm2.xml");
-		assertNotNull(resource);
-		assertEquals(JptEclipseLinkCorePlugin.ECLIPSELINK1_1_ORM_XML_CONTENT_TYPE, resource.getContentType());
-		assertEquals("src/META-INF/orm2.xml", resource.getFile().getProjectRelativePath().toString());
-		
-		//delete the orm2.xml file and verify it is not returned from getMappingFileResource()
-		resource.delete(null);
-		resource = this.getJpaProject().getMappingFileXmlResource("META-INF/orm2.xml");
-		assertNull(resource);
-		
-		//add the orm2.xml file back
-		createEclipseLink1_1OrmXmlFile("META-INF/orm2.xml");
-		resource = this.getJpaProject().getMappingFileXmlResource("META-INF/orm2.xml");
-		assertNotNull(resource);
-		assertEquals(JptEclipseLinkCorePlugin.ECLIPSELINK1_1_ORM_XML_CONTENT_TYPE, resource.getContentType());
-		assertEquals("src/META-INF/orm2.xml", resource.getFile().getProjectRelativePath().toString());
-	}
-}
diff --git a/jpa/tests/org.eclipse.jpt.eclipselink.core.tests/src/org/eclipse/jpt/eclipselink/core/tests/internal/context/EclipseLinkContextModelTestCase.java b/jpa/tests/org.eclipse.jpt.eclipselink.core.tests/src/org/eclipse/jpt/eclipselink/core/tests/internal/context/EclipseLinkContextModelTestCase.java
deleted file mode 100644
index 88e14d8..0000000
--- a/jpa/tests/org.eclipse.jpt.eclipselink.core.tests/src/org/eclipse/jpt/eclipselink/core/tests/internal/context/EclipseLinkContextModelTestCase.java
+++ /dev/null
@@ -1,52 +0,0 @@
-/*******************************************************************************
- *  Copyright (c) 2008, 2009 Oracle. 
- *  All rights reserved.  This program and the accompanying materials are 
- *  made available under the terms of the Eclipse Public License v1.0 which 
- *  accompanies this distribution, and is available at 
- *  http://www.eclipse.org/legal/epl-v10.html
- *  
- *  Contributors: 
- *  	Oracle - initial API and implementation
- *******************************************************************************/
-package org.eclipse.jpt.eclipselink.core.tests.internal.context;
-
-import org.eclipse.jpt.core.internal.facet.JpaFacetDataModelProperties;
-import org.eclipse.jpt.core.internal.facet.JpaFacetDataModelProvider;
-import org.eclipse.jpt.core.tests.internal.context.ContextModelTestCase;
-import org.eclipse.jpt.eclipselink.core.EclipseLinkJpaProject;
-import org.eclipse.jpt.eclipselink.core.context.java.EclipseLinkJavaEntity;
-import org.eclipse.jpt.eclipselink.core.internal.EclipseLinkJpaPlatformProvider;
-import org.eclipse.jpt.eclipselink.core.internal.context.persistence.EclipseLinkPersistenceUnit;
-import org.eclipse.wst.common.frameworks.datamodel.DataModelFactory;
-import org.eclipse.wst.common.frameworks.datamodel.IDataModel;
-
-public abstract class EclipseLinkContextModelTestCase extends ContextModelTestCase
-{
-	protected EclipseLinkContextModelTestCase(String name) {
-		super(name);
-	}
-	
-	
-	@Override
-	protected IDataModel buildJpaConfigDataModel() {
-		IDataModel dataModel = DataModelFactory.createDataModel(new JpaFacetDataModelProvider());		
-		dataModel.setProperty(JpaFacetDataModelProperties.PLATFORM_ID, EclipseLinkJpaPlatformProvider.ID);
-		dataModel.setProperty(JpaFacetDataModelProperties.CREATE_ORM_XML, Boolean.FALSE);
-		return dataModel;
-	}
-	
-	@Override
-	protected EclipseLinkJpaProject getJpaProject() {
-		return (EclipseLinkJpaProject) super.getJpaProject();
-	}
-	
-	@Override
-	protected EclipseLinkPersistenceUnit getPersistenceUnit() {
-		return (EclipseLinkPersistenceUnit) super.getPersistenceUnit();
-	}
-	
-	@Override
-	protected EclipseLinkJavaEntity getJavaEntity() {
-		return (EclipseLinkJavaEntity) getJavaPersistentType().getMapping();
-	}
-}
diff --git a/jpa/tests/org.eclipse.jpt.eclipselink.core.tests/src/org/eclipse/jpt/eclipselink/core/tests/internal/context/EclipseLinkJpaProjectTests.java b/jpa/tests/org.eclipse.jpt.eclipselink.core.tests/src/org/eclipse/jpt/eclipselink/core/tests/internal/context/EclipseLinkJpaProjectTests.java
deleted file mode 100644
index 6ae3501..0000000
--- a/jpa/tests/org.eclipse.jpt.eclipselink.core.tests/src/org/eclipse/jpt/eclipselink/core/tests/internal/context/EclipseLinkJpaProjectTests.java
+++ /dev/null
@@ -1,134 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.eclipselink.core.tests.internal.context;
-
-import org.eclipse.jpt.core.JptCorePlugin;
-import org.eclipse.jpt.core.internal.resource.orm.OrmXmlResourceProvider;
-import org.eclipse.jpt.core.resource.xml.JpaXmlResource;
-import org.eclipse.jpt.eclipselink.core.internal.JptEclipseLinkCorePlugin;
-import org.eclipse.jpt.eclipselink.core.internal.resource.orm.EclipseLinkOrmXmlResourceProvider;
-
-@SuppressWarnings("nls")
-public class EclipseLinkJpaProjectTests extends EclipseLinkContextModelTestCase
-{
-	
-	public EclipseLinkJpaProjectTests(String name) {
-		super(name);
-	}
-	
-	public void testGetDefaultOrmXmlResource() throws Exception {
-		JpaXmlResource resource = this.getJpaProject().getDefaultOrmXmlResource();
-		assertNull(resource);
-		
-		//add the orm.xml file with eclipselink orm content type
-		createDefaultOrmXmlFileWithEclipseLinkContentType();
-		resource = this.getJpaProject().getDefaultOrmXmlResource();
-		assertNotNull(resource);
-		assertEquals(JptEclipseLinkCorePlugin.ECLIPSELINK_ORM_XML_CONTENT_TYPE, resource.getContentType());
-		assertEquals("src/META-INF/orm.xml", resource.getFile().getProjectRelativePath().toString());
-		
-		
-		//delete the orm.xml file and verify it is not returned from getDefaultOrmXmlResource()
-		resource.delete(null);
-		resource = this.getJpaProject().getDefaultOrmXmlResource();
-		assertNull(resource);
-		
-		
-		//add the orm.xml file this time with orm content type
-		createDefaultOrmXmlFile();
-		resource = this.getJpaProject().getDefaultOrmXmlResource();
-		assertNotNull(resource);
-		assertEquals(JptCorePlugin.ORM_XML_CONTENT_TYPE, resource.getContentType());
-		assertEquals("src/META-INF/orm.xml", resource.getFile().getProjectRelativePath().toString());
-	}
-	
-	public void testGetDefaultEclipseLinkOrmXmlResource() throws Exception {
-		JpaXmlResource resource = this.getJpaProject().getDefaultEclipseLinkOrmXmlResource();
-		assertNull(resource);
-		
-		//add the eclipselink-orm.xml file
-		createDefaultEclipseLinkOrmXmlFile();
-		resource = this.getJpaProject().getDefaultEclipseLinkOrmXmlResource();
-		assertNotNull(resource);
-		assertEquals(JptEclipseLinkCorePlugin.ECLIPSELINK_ORM_XML_CONTENT_TYPE, resource.getContentType());
-		assertEquals("src/META-INF/eclipselink-orm.xml", resource.getFile().getProjectRelativePath().toString());
-		
-		
-		//delete the eclipselink-orm.xml file and verify it is not returned from getDefaultOrmXmlResource()
-		resource.delete(null);
-		resource = this.getJpaProject().getDefaultEclipseLinkOrmXmlResource();
-		assertNull(resource);
-	}
-	
-	private void createDefaultOrmXmlFileWithEclipseLinkContentType() throws Exception {
-		EclipseLinkOrmXmlResourceProvider resourceProvider = 
-			EclipseLinkOrmXmlResourceProvider.getXmlResourceProvider(this.getJavaProject().getProject(), JptCorePlugin.DEFAULT_ORM_XML_FILE_PATH);
-		resourceProvider.createFileAndResource();
-	}
-	
-	private void createDefaultOrmXmlFile() throws Exception {
-		OrmXmlResourceProvider resourceProvider = 
-			OrmXmlResourceProvider.getDefaultXmlResourceProvider(this.getJavaProject().getProject());
-		resourceProvider.createFileAndResource();
-	}
-	
-	private void createDefaultEclipseLinkOrmXmlFile() throws Exception {
-		EclipseLinkOrmXmlResourceProvider resourceProvider = 
-			EclipseLinkOrmXmlResourceProvider.getDefaultXmlResourceProvider(this.getJavaProject().getProject());
-		resourceProvider.createFileAndResource();
-	}
-	
-	private void createEclipseLinkOrmXmlFile(String filePath) throws Exception {
-		EclipseLinkOrmXmlResourceProvider resourceProvider = 
-			EclipseLinkOrmXmlResourceProvider.getXmlResourceProvider(this.getJavaProject().getProject(), filePath);
-		resourceProvider.createFileAndResource();
-	}
-
-	public void testGetMappingFileResource() throws Exception {
-		JpaXmlResource resource = this.getJpaProject().getMappingFileXmlResource(JptEclipseLinkCorePlugin.DEFAULT_ECLIPSELINK_ORM_XML_FILE_PATH);
-		assertNull(resource);
-		
-		//add the eclipselink-orm.xml file
-		createDefaultEclipseLinkOrmXmlFile();
-		resource = this.getJpaProject().getMappingFileXmlResource(JptEclipseLinkCorePlugin.DEFAULT_ECLIPSELINK_ORM_XML_FILE_PATH);
-		assertNotNull(resource);
-		assertEquals(JptEclipseLinkCorePlugin.ECLIPSELINK_ORM_XML_CONTENT_TYPE, resource.getContentType());
-		assertEquals("src/META-INF/eclipselink-orm.xml", resource.getFile().getProjectRelativePath().toString());
-		
-		//delete the eclipselink-orm.xml file and verify it is not returned from getMappingFileResource()
-		resource.delete(null);
-		resource = this.getJpaProject().getMappingFileXmlResource(JptEclipseLinkCorePlugin.DEFAULT_ECLIPSELINK_ORM_XML_FILE_PATH);
-		assertNull(resource);
-	}
-	
-	public void testGetDifferentlyNamedMappingFileResource() throws Exception {
-		JpaXmlResource resource = this.getJpaProject().getMappingFileXmlResource("META-INF/orm2.xml");
-		assertNull(resource);
-
-		//create the orm2.xml file
-		createEclipseLinkOrmXmlFile("META-INF/orm2.xml");
-		resource = this.getJpaProject().getMappingFileXmlResource("META-INF/orm2.xml");
-		assertNotNull(resource);
-		assertEquals(JptEclipseLinkCorePlugin.ECLIPSELINK_ORM_XML_CONTENT_TYPE, resource.getContentType());
-		assertEquals("src/META-INF/orm2.xml", resource.getFile().getProjectRelativePath().toString());
-		
-		//delete the orm2.xml file and verify it is not returned from getMappingFileResource()
-		resource.delete(null);
-		resource = this.getJpaProject().getMappingFileXmlResource("META-INF/orm2.xml");
-		assertNull(resource);
-		
-		//add the orm2.xml file back
-		createEclipseLinkOrmXmlFile("META-INF/orm2.xml");
-		resource = this.getJpaProject().getMappingFileXmlResource("META-INF/orm2.xml");
-		assertNotNull(resource);
-		assertEquals(JptEclipseLinkCorePlugin.ECLIPSELINK_ORM_XML_CONTENT_TYPE, resource.getContentType());
-		assertEquals("src/META-INF/orm2.xml", resource.getFile().getProjectRelativePath().toString());
-	}
-}
diff --git a/jpa/tests/org.eclipse.jpt.eclipselink.core.tests/src/org/eclipse/jpt/eclipselink/core/tests/internal/context/JptEclipseLinkCoreContextModelTests.java b/jpa/tests/org.eclipse.jpt.eclipselink.core.tests/src/org/eclipse/jpt/eclipselink/core/tests/internal/context/JptEclipseLinkCoreContextModelTests.java
deleted file mode 100644
index e087e67..0000000
--- a/jpa/tests/org.eclipse.jpt.eclipselink.core.tests/src/org/eclipse/jpt/eclipselink/core/tests/internal/context/JptEclipseLinkCoreContextModelTests.java
+++ /dev/null
@@ -1,40 +0,0 @@
-/*******************************************************************************
- *  Copyright (c) 2007, 2009 Oracle. 
- *  All rights reserved.  This program and the accompanying materials 
- *  are made available under the terms of the Eclipse Public License v1.0 
- *  which accompanies this distribution, and is available at 
- *  http://www.eclipse.org/legal/epl-v10.html
- *  
- *  Contributors: 
- *  	Oracle - initial API and implementation
- *******************************************************************************/
-package org.eclipse.jpt.eclipselink.core.tests.internal.context;
-
-import junit.framework.Test;
-import junit.framework.TestCase;
-import junit.framework.TestSuite;
-import org.eclipse.jpt.eclipselink.core.tests.internal.context.java.JptEclipseLinkCoreJavaContextModelTests;
-import org.eclipse.jpt.eclipselink.core.tests.internal.context.orm.JptEclipseLinkCoreOrmContextModelTests;
-import org.eclipse.jpt.eclipselink.core.tests.internal.context.persistence.JptEclipseLinkCorePersistenceContextModelTests;
-
-public class JptEclipseLinkCoreContextModelTests extends TestCase
-{
-	public static Test suite() {
-		return suite(true);
-	}
-	
-	public static Test suite(boolean all) {
-		TestSuite suite = new TestSuite(JptEclipseLinkCoreContextModelTests.class.getName());
-		suite.addTestSuite(EclipseLinkJpaProjectTests.class);
-		suite.addTestSuite(EclipseLink1_1JpaProjectTests.class);
-		suite.addTest(JptEclipseLinkCorePersistenceContextModelTests.suite(all));
-		suite.addTest(JptEclipseLinkCoreJavaContextModelTests.suite(all));
-		suite.addTest(JptEclipseLinkCoreOrmContextModelTests.suite(all));
-		return suite;
-	}
-
-	private JptEclipseLinkCoreContextModelTests() {
-		super();
-		throw new UnsupportedOperationException();
-	}
-}
diff --git a/jpa/tests/org.eclipse.jpt.eclipselink.core.tests/src/org/eclipse/jpt/eclipselink/core/tests/internal/context/java/EclipseLink1_1JavaPersistentAttributeTests.java b/jpa/tests/org.eclipse.jpt.eclipselink.core.tests/src/org/eclipse/jpt/eclipselink/core/tests/internal/context/java/EclipseLink1_1JavaPersistentAttributeTests.java
deleted file mode 100644
index 61ddcec..0000000
--- a/jpa/tests/org.eclipse.jpt.eclipselink.core.tests/src/org/eclipse/jpt/eclipselink/core/tests/internal/context/java/EclipseLink1_1JavaPersistentAttributeTests.java
+++ /dev/null
@@ -1,111 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.eclipselink.core.tests.internal.context.java;
-
-import java.util.Iterator;
-import org.eclipse.jdt.core.ICompilationUnit;
-import org.eclipse.jpt.core.MappingKeys;
-import org.eclipse.jpt.core.context.AccessType;
-import org.eclipse.jpt.core.context.PersistentAttribute;
-import org.eclipse.jpt.core.resource.java.JPA;
-import org.eclipse.jpt.eclipselink.core.tests.internal.context.EclipseLink1_1ContextModelTestCase;
-import org.eclipse.jpt.utility.internal.iterators.ArrayIterator;
-
-@SuppressWarnings("nls")
-public class EclipseLink1_1JavaPersistentAttributeTests extends EclipseLink1_1ContextModelTestCase
-{
-
-	private ICompilationUnit createTestEntitySpecifiedAccessField() throws Exception {
-		return this.createTestType(new DefaultAnnotationWriter() {
-			@Override
-			public Iterator<String> imports() {
-				return new ArrayIterator<String>(JPA.ENTITY, JPA.ID, JPA.BASIC, JPA.TRANSIENT, JPA.ACCESS, JPA.ACCESS_TYPE);
-			}
-			@Override
-			public void appendTypeAnnotationTo(StringBuilder sb) {
-				sb.append("@Entity");
-				sb.append("@Access(AccessType.FIELD)");
-			}
-			@Override
-			public void appendNameFieldAnnotationTo(StringBuilder sb) {
-				sb.append("@Basic");
-			}
-			@Override
-			public void appendIdFieldAnnotationTo(StringBuilder sb) {
-				sb.append("transient");
-			}
-			@Override
-			public void appendGetIdMethodAnnotationTo(StringBuilder sb) {
-				sb.append("@Id");
-				sb.append("@Access(AccessType.PROPERTY)");
-			}
-		});
-	}
-
-	private ICompilationUnit createTestEntitySpecifiedAccessProperty() throws Exception {
-		return this.createTestType(new DefaultAnnotationWriter() {
-			@Override
-			public Iterator<String> imports() {
-				return new ArrayIterator<String>(JPA.ENTITY, JPA.ID, JPA.BASIC, JPA.ACCESS, JPA.ACCESS_TYPE);
-			}
-			@Override
-			public void appendTypeAnnotationTo(StringBuilder sb) {
-				sb.append("@Entity");
-				sb.append("@Access(AccessType.PROPERTY)");
-			}
-			@Override
-			public void appendNameFieldAnnotationTo(StringBuilder sb) {
-				sb.append("@Basic");
-				sb.append("@Access(AccessType.FIELD)");
-			}
-			@Override
-			public void appendGetIdMethodAnnotationTo(StringBuilder sb) {
-				sb.append("@Id");
-			}
-		});
-	}
-
-		
-	public EclipseLink1_1JavaPersistentAttributeTests(String name) {
-		super(name);
-	}
-	
-	public void testGetAccessField() throws Exception {
-		createTestEntitySpecifiedAccessField();
-		addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
-		
-		PersistentAttribute namePersistentAttribute = getJavaPersistentType().getAttributeNamed("name");
-		assertEquals(AccessType.FIELD, namePersistentAttribute.getAccess());
-		assertEquals(AccessType.FIELD, namePersistentAttribute.getDefaultAccess());
-		assertEquals(null, namePersistentAttribute.getSpecifiedAccess());
-		
-		PersistentAttribute idPersistentAttribute = getJavaPersistentType().getAttributeNamed("id");
-		assertEquals(MappingKeys.ID_ATTRIBUTE_MAPPING_KEY, idPersistentAttribute.getMappingKey());
-		assertEquals(AccessType.PROPERTY, idPersistentAttribute.getAccess());
-		assertEquals(AccessType.PROPERTY, idPersistentAttribute.getDefaultAccess());
-		assertEquals(AccessType.PROPERTY, idPersistentAttribute.getSpecifiedAccess());
-	}
-	
-	public void testGetAccessProperty() throws Exception {
-		createTestEntitySpecifiedAccessProperty();
-		addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
-		
-		PersistentAttribute namePersistentAttribute = getJavaPersistentType().getAttributeNamed("name");
-		assertEquals(AccessType.FIELD, namePersistentAttribute.getAccess());
-		assertEquals(AccessType.FIELD, namePersistentAttribute.getDefaultAccess());
-		assertEquals(AccessType.FIELD, namePersistentAttribute.getSpecifiedAccess());
-		
-		PersistentAttribute idPersistentAttribute = getJavaPersistentType().getAttributeNamed("id");
-		assertEquals(MappingKeys.ID_ATTRIBUTE_MAPPING_KEY, idPersistentAttribute.getMappingKey());
-		assertEquals(AccessType.PROPERTY, idPersistentAttribute.getAccess());
-		assertEquals(AccessType.PROPERTY, idPersistentAttribute.getDefaultAccess());
-		assertEquals(null, idPersistentAttribute.getSpecifiedAccess());
-	}
-}
diff --git a/jpa/tests/org.eclipse.jpt.eclipselink.core.tests/src/org/eclipse/jpt/eclipselink/core/tests/internal/context/java/EclipseLink1_1JavaPersistentTypeTests.java b/jpa/tests/org.eclipse.jpt.eclipselink.core.tests/src/org/eclipse/jpt/eclipselink/core/tests/internal/context/java/EclipseLink1_1JavaPersistentTypeTests.java
deleted file mode 100644
index 2594a56..0000000
--- a/jpa/tests/org.eclipse.jpt.eclipselink.core.tests/src/org/eclipse/jpt/eclipselink/core/tests/internal/context/java/EclipseLink1_1JavaPersistentTypeTests.java
+++ /dev/null
@@ -1,854 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.eclipselink.core.tests.internal.context.java;
-
-import java.util.Iterator;
-import java.util.ListIterator;
-import org.eclipse.jdt.core.ICompilationUnit;
-import org.eclipse.jdt.core.IField;
-import org.eclipse.jpt.core.MappingKeys;
-import org.eclipse.jpt.core.context.AccessType;
-import org.eclipse.jpt.core.context.PersistentAttribute;
-import org.eclipse.jpt.core.context.PersistentType;
-import org.eclipse.jpt.core.context.java.JavaPersistentAttribute;
-import org.eclipse.jpt.core.context.java.JavaPersistentType;
-import org.eclipse.jpt.core.context.orm.OrmPersistentType;
-import org.eclipse.jpt.core.context.persistence.ClassRef;
-import org.eclipse.jpt.core.resource.java.EmbeddableAnnotation;
-import org.eclipse.jpt.core.resource.java.EntityAnnotation;
-import org.eclipse.jpt.core.resource.java.JPA;
-import org.eclipse.jpt.core.resource.java.JavaResourcePersistentType;
-import org.eclipse.jpt.core.resource.java.TransientAnnotation;
-import org.eclipse.jpt.core.tests.internal.projects.TestJavaProject.SourceWriter;
-import org.eclipse.jpt.eclipselink.core.tests.internal.context.EclipseLink1_1ContextModelTestCase;
-import org.eclipse.jpt.utility.internal.iterators.ArrayIterator;
-
-@SuppressWarnings("nls")
-public class EclipseLink1_1JavaPersistentTypeTests extends EclipseLink1_1ContextModelTestCase
-{
-		
-	private ICompilationUnit createTestEntity() throws Exception {
-		return this.createTestType(new DefaultAnnotationWriter() {
-			@Override
-			public Iterator<String> imports() {
-				return new ArrayIterator<String>(JPA.ENTITY);
-			}
-			@Override
-			public void appendTypeAnnotationTo(StringBuilder sb) {
-				sb.append("@Entity");
-			}
-		});
-	}
-
-	private ICompilationUnit createTestEntityAnnotatedField() throws Exception {	
-		return this.createTestType(new DefaultAnnotationWriter() {
-			@Override
-			public Iterator<String> imports() {
-				return new ArrayIterator<String>(JPA.ENTITY, JPA.ID);
-			}
-			@Override
-			public void appendTypeAnnotationTo(StringBuilder sb) {
-				sb.append("@Entity");
-			}
-			
-			@Override
-			public void appendIdFieldAnnotationTo(StringBuilder sb) {
-				sb.append("@Id");
-			}
-		});
-	}
-
-	private ICompilationUnit createTestEntityAnnotatedMethod() throws Exception {	
-		return this.createTestType(new DefaultAnnotationWriter() {
-			@Override
-			public Iterator<String> imports() {
-				return new ArrayIterator<String>(JPA.ENTITY, JPA.ID);
-			}
-			@Override
-			public void appendTypeAnnotationTo(StringBuilder sb) {
-				sb.append("@Entity");
-			}
-			
-			@Override
-			public void appendGetIdMethodAnnotationTo(StringBuilder sb) {
-				sb.append("@Id");
-			}
-		});
-	}
-	
-	private ICompilationUnit createTestEntityAnnotatedFieldAndMethod() throws Exception {
-		return this.createTestType(new DefaultAnnotationWriter() {
-			@Override
-			public Iterator<String> imports() {
-				return new ArrayIterator<String>(JPA.ENTITY, JPA.ID);
-			}
-			@Override
-			public void appendTypeAnnotationTo(StringBuilder sb) {
-				sb.append("@Entity");
-			}
-			
-			@Override
-			public void appendGetIdMethodAnnotationTo(StringBuilder sb) {
-				sb.append("@Id");
-			}
-			
-			@Override
-			public void appendIdFieldAnnotationTo(StringBuilder sb) {
-				sb.append("@Id");
-			}
-		});
-	}
-	
-	private ICompilationUnit createTestEntityAnnotatedFieldPropertySpecified() throws Exception {
-		return this.createTestType(new DefaultAnnotationWriter() {
-			@Override
-			public Iterator<String> imports() {
-				return new ArrayIterator<String>(JPA.ENTITY, JPA.BASIC, JPA.ID, JPA.ACCESS, JPA.ACCESS_TYPE);
-			}
-			@Override
-			public void appendTypeAnnotationTo(StringBuilder sb) {
-				sb.append("@Entity");
-				sb.append("@Access(AccessType.PROPERTY)");
-			}
-	
-			@Override
-			public void appendNameFieldAnnotationTo(StringBuilder sb) {
-				sb.append("@Basic");
-				sb.append("@Access(AccessType.FIELD)");
-			}
-			
-			@Override
-			public void appendGetIdMethodAnnotationTo(StringBuilder sb) {
-				sb.append("@Id");
-			}
-		});
-	}
-	
-	private ICompilationUnit createTestEntityAnnotatedPropertyFieldSpecified() throws Exception {
-		return this.createTestType(new DefaultAnnotationWriter() {
-			@Override
-			public Iterator<String> imports() {
-				return new ArrayIterator<String>(JPA.ENTITY, JPA.ID, JPA.ACCESS, JPA.ACCESS_TYPE);
-			}
-			@Override
-			public void appendTypeAnnotationTo(StringBuilder sb) {
-				sb.append("@Entity");
-				sb.append("@Access(AccessType.FIELD)");
-			}
-	
-			@Override
-			public void appendGetIdMethodAnnotationTo(StringBuilder sb) {
-				sb.append("@Id");
-				sb.append("@Access(AccessType.PROPERTY)");
-			}
-		});
-	}
-	
-	private ICompilationUnit createTestSubType() throws Exception {
-		return this.createTestType(PACKAGE_NAME, "AnnotationTestTypeChild.java", "AnnotationTestTypeChild", new DefaultAnnotationWriter() {
-			@Override
-			public Iterator<String> imports() {
-				return new ArrayIterator<String>(JPA.ENTITY);
-			}
-			@Override
-			public void appendExtendsImplementsTo(StringBuilder sb) {
-				sb.append("extends " + TYPE_NAME + " ");
-			}
-			@Override
-			public void appendTypeAnnotationTo(StringBuilder sb) {
-				sb.append("@Entity");
-			}
-
-		});
-	}
-
-	private ICompilationUnit createTestSubTypeWithFieldAnnotation() throws Exception {
-		return this.createTestType(PACKAGE_NAME, "AnnotationTestTypeChild.java", "AnnotationTestTypeChild", new DefaultAnnotationWriter() {
-			@Override
-			public Iterator<String> imports() {
-				return new ArrayIterator<String>(JPA.ENTITY, JPA.ID);
-			}
-			@Override
-			public void appendExtendsImplementsTo(StringBuilder sb) {
-				sb.append("extends " + TYPE_NAME + " ");
-			}
-			@Override
-			public void appendTypeAnnotationTo(StringBuilder sb) {
-				sb.append("@Entity");
-			}
-
-			@Override
-			public void appendIdFieldAnnotationTo(StringBuilder sb) {
-				sb.append("@Id");
-			}
-		});
-	}
-	
-	private ICompilationUnit createTestSubTypeWithMethodAnnotation() throws Exception {
-		return this.createTestType(PACKAGE_NAME, "AnnotationTestTypeChild.java", "AnnotationTestTypeChild", new DefaultAnnotationWriter() {
-			@Override
-			public Iterator<String> imports() {
-				return new ArrayIterator<String>(JPA.ENTITY, JPA.ID);
-			}
-			@Override
-			public void appendExtendsImplementsTo(StringBuilder sb) {
-				sb.append("extends " + TYPE_NAME + " ");
-			}
-			@Override
-			public void appendTypeAnnotationTo(StringBuilder sb) {
-				sb.append("@Entity");
-			}
-
-			@Override
-			public void appendGetIdMethodAnnotationTo(StringBuilder sb) {
-				sb.append("@Id");
-			}
-		});
-	}
-	
-	private ICompilationUnit createTestSubTypeNonPersistent() throws Exception {
-		return this.createTestType(PACKAGE_NAME, "AnnotationTestTypeChild.java", "AnnotationTestTypeChild", new DefaultAnnotationWriter() {
-			@Override
-			public void appendExtendsImplementsTo(StringBuilder sb) {
-				sb.append("extends " + TYPE_NAME + " ");
-			}
-		});
-	}
-
-	private ICompilationUnit createTestSubTypePersistentExtendsNonPersistent() throws Exception {
-		return this.createTestType(PACKAGE_NAME, "AnnotationTestTypeChild2.java", "AnnotationTestTypeChild2", new DefaultAnnotationWriter() {
-			@Override
-			public Iterator<String> imports() {
-				return new ArrayIterator<String>(JPA.ENTITY, JPA.ID);
-			}
-			@Override
-			public void appendExtendsImplementsTo(StringBuilder sb) {
-				sb.append("extends AnnotationTestTypeChild ");
-			}
-			@Override
-			public void appendTypeAnnotationTo(StringBuilder sb) {
-				sb.append("@Entity");
-			}
-
-			@Override
-			public void appendGetIdMethodAnnotationTo(StringBuilder sb) {
-				sb.append("@Id");
-			}
-		});
-	}
-		
-	public EclipseLink1_1JavaPersistentTypeTests(String name) {
-		super(name);
-	}
-	
-	public void testGetName() throws Exception {
-		createTestType();
-		addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
-		
-		assertEquals(FULLY_QUALIFIED_TYPE_NAME, getJavaPersistentType().getName());
-	}
-	
-	public void testGetAccessNothingAnnotated() throws Exception {
-		createTestType();
-		addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
-
-		assertEquals(AccessType.FIELD, getJavaPersistentType().getAccess());
-	}
-
-	public void testAccessField() throws Exception {
-		createTestEntityAnnotatedField();
-		addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
-
-		assertEquals(AccessType.FIELD, getJavaPersistentType().getAccess());
-	}
-	
-	public void testAccessProperty() throws Exception {
-		createTestEntityAnnotatedMethod();
-		addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
-
-		assertEquals(AccessType.PROPERTY, getJavaPersistentType().getAccess());
-	}
-	
-	public void testAccessFieldAndMethodAnnotated() throws Exception {
-		createTestEntityAnnotatedFieldAndMethod();
-		addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
-
-		assertEquals(AccessType.FIELD, getJavaPersistentType().getAccess());
-	}
-	
-	public void testAccessFieldAnnotatedPropertySpecified() throws Exception {
-		createTestEntityAnnotatedFieldPropertySpecified();
-		addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
-		
-		assertEquals(AccessType.PROPERTY, getJavaPersistentType().getAccess());
-		
-		ListIterator<JavaPersistentAttribute> attributes = getJavaPersistentType().attributes();
-		JavaPersistentAttribute javaPersistentAttribute = attributes.next();
-		assertEquals("id", javaPersistentAttribute.getName());
-		assertEquals(AccessType.PROPERTY, javaPersistentAttribute.getAccess());
-		assertEquals(MappingKeys.ID_ATTRIBUTE_MAPPING_KEY, javaPersistentAttribute.getMappingKey());
-
-		javaPersistentAttribute = attributes.next();
-		assertEquals("name", javaPersistentAttribute.getName());
-		assertEquals(AccessType.FIELD, javaPersistentAttribute.getAccess());
-		assertEquals(MappingKeys.BASIC_ATTRIBUTE_MAPPING_KEY, javaPersistentAttribute.getSpecifiedMapping().getKey());
-		
-		assertFalse(attributes.hasNext());
-	}
-	
-	public void testAccessPropertyAnnotatedFieldSpecified() throws Exception {
-		createTestEntityAnnotatedPropertyFieldSpecified();
-		addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
-		
-		assertEquals(AccessType.FIELD, getJavaPersistentType().getAccess());
-		
-		ListIterator<JavaPersistentAttribute> attributes = getJavaPersistentType().attributes();
-		JavaPersistentAttribute javaPersistentAttribute = attributes.next();
-		assertEquals("id", javaPersistentAttribute.getName());
-		assertEquals(AccessType.FIELD, javaPersistentAttribute.getAccess());
-		assertEquals(MappingKeys.BASIC_ATTRIBUTE_MAPPING_KEY, javaPersistentAttribute.getMappingKey());
-
-		javaPersistentAttribute = attributes.next();
-		assertEquals("name", javaPersistentAttribute.getName());
-		assertEquals(AccessType.FIELD, javaPersistentAttribute.getAccess());
-		assertEquals(MappingKeys.BASIC_ATTRIBUTE_MAPPING_KEY, javaPersistentAttribute.getMappingKey());
-
-		javaPersistentAttribute = attributes.next();
-		assertEquals("id", javaPersistentAttribute.getName());
-		assertEquals(AccessType.PROPERTY, javaPersistentAttribute.getAccess());
-		assertEquals(MappingKeys.ID_ATTRIBUTE_MAPPING_KEY, javaPersistentAttribute.getMappingKey());
-		
-		assertFalse(attributes.hasNext());
-		
-		
-		getJavaPersistentType().attributes().next().getResourcePersistentAttribute().setMappingAnnotation(TransientAnnotation.ANNOTATION_NAME);
-		attributes = getJavaPersistentType().attributes();
-		javaPersistentAttribute = attributes.next();
-
-		javaPersistentAttribute = attributes.next();
-		assertEquals("name", javaPersistentAttribute.getName());
-		assertEquals(AccessType.FIELD, javaPersistentAttribute.getAccess());
-		assertEquals(MappingKeys.BASIC_ATTRIBUTE_MAPPING_KEY, javaPersistentAttribute.getMappingKey());
-
-		javaPersistentAttribute = attributes.next();
-		assertEquals("id", javaPersistentAttribute.getName());
-		assertEquals(AccessType.PROPERTY, javaPersistentAttribute.getAccess());
-		assertEquals(MappingKeys.ID_ATTRIBUTE_MAPPING_KEY, javaPersistentAttribute.getMappingKey());
-		assertFalse(attributes.hasNext());
-	}
-
-	public void testAccessInheritance() throws Exception {
-		createTestEntityAnnotatedMethod();
-		createTestSubType();
-		
-		addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
-		addXmlClassRef(PACKAGE_NAME + ".AnnotationTestTypeChild");
-		
-		ListIterator<ClassRef> classRefs = getPersistenceUnit().specifiedClassRefs();
-		classRefs.next();
-		ClassRef classRef = classRefs.next();
-		
-		JavaPersistentType javaPersistentType = classRef.getJavaPersistentType();
-		assertEquals(PACKAGE_NAME + ".AnnotationTestTypeChild", javaPersistentType.getName());
-		
-		assertEquals(AccessType.PROPERTY, javaPersistentType.getAccess());
-	}
-		
-	public void testAccessInheritance2() throws Exception {
-		createTestEntityAnnotatedField();
-		createTestSubType();
-		
-		addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
-		addXmlClassRef(PACKAGE_NAME + ".AnnotationTestTypeChild");
-		
-		ListIterator<ClassRef> classRefs = getPersistenceUnit().specifiedClassRefs();
-		classRefs.next();
-		ClassRef classRef = classRefs.next();
-		
-		JavaPersistentType javaPersistentType = classRef.getJavaPersistentType();
-		assertEquals(PACKAGE_NAME + ".AnnotationTestTypeChild", javaPersistentType.getName());
-		
-		assertEquals(AccessType.FIELD, javaPersistentType.getAccess());
-	}	
-		
-	public void testAccessInheritance3() throws Exception {
-		createTestEntityAnnotatedField();
-		createTestSubTypeWithMethodAnnotation();
-		
-		addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
-		addXmlClassRef(PACKAGE_NAME + ".AnnotationTestTypeChild");
-		
-		ListIterator<ClassRef> classRefs = getPersistenceUnit().specifiedClassRefs();
-		classRefs.next();
-		ClassRef classRef = classRefs.next();
-		
-		JavaPersistentType javaPersistentType = classRef.getJavaPersistentType();
-		assertEquals(PACKAGE_NAME + ".AnnotationTestTypeChild", javaPersistentType.getName());
-		
-		assertEquals(AccessType.PROPERTY, javaPersistentType.getAccess());
-	}	
-		
-	public void testAccessInheritance4() throws Exception {
-		createTestEntityAnnotatedMethod();
-		createTestSubTypeWithFieldAnnotation();
-		
-		addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
-		addXmlClassRef(PACKAGE_NAME + ".AnnotationTestTypeChild");
-		
-		ListIterator<ClassRef> classRefs = getPersistenceUnit().specifiedClassRefs();
-		classRefs.next();
-		ClassRef classRef = classRefs.next();
-		JavaPersistentType javaPersistentType = classRef.getJavaPersistentType();
-		
-		assertEquals(PACKAGE_NAME + ".AnnotationTestTypeChild", javaPersistentType.getName());
-		
-		assertEquals(AccessType.FIELD, javaPersistentType.getAccess());
-	}
-	
-	//inherited class having annotations set wins over the default access set on persistence-unit-defaults
-	public void testAccessInheritancePersistenceUnitDefaultAccess() throws Exception {
-		createTestEntityAnnotatedMethod();
-		createTestSubType();
-		
-		addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
-		addXmlClassRef(PACKAGE_NAME + ".AnnotationTestTypeChild");
-		getEntityMappings().getPersistenceUnitMetadata().getPersistenceUnitDefaults().setAccess(AccessType.FIELD);
-
-		ListIterator<ClassRef> classRefs = getPersistenceUnit().specifiedClassRefs();
-		classRefs.next();
-		ClassRef classRef = classRefs.next();
-		JavaPersistentType javaPersistentType = classRef.getJavaPersistentType();
-		
-		assertEquals(PACKAGE_NAME + ".AnnotationTestTypeChild", javaPersistentType.getName());
-		
-		assertEquals(AccessType.PROPERTY, javaPersistentType.getAccess());
-	}
-
-	public void testAccessXmlNoAccessNoAnnotations() throws Exception {
-		OrmPersistentType entityPersistentType = getEntityMappings().addPersistentType(MappingKeys.ENTITY_TYPE_MAPPING_KEY, FULLY_QUALIFIED_TYPE_NAME);
-		createTestEntity();
-
-		JavaPersistentType javaPersistentType = entityPersistentType.getJavaPersistentType(); 
-		assertEquals(AccessType.FIELD, javaPersistentType.getAccess());
-	}
-	
-	public void testAccessXmlEntityAccessNoAnnotations() throws Exception {
-		OrmPersistentType entityPersistentType = getEntityMappings().addPersistentType(MappingKeys.ENTITY_TYPE_MAPPING_KEY, FULLY_QUALIFIED_TYPE_NAME);
-		createTestEntity();
-		JavaPersistentType javaPersistentType = entityPersistentType.getJavaPersistentType(); 
-
-		entityPersistentType.setSpecifiedAccess(AccessType.FIELD);
-		assertEquals(AccessType.FIELD, javaPersistentType.getAccess());
-
-		entityPersistentType.setSpecifiedAccess(AccessType.PROPERTY);
-		assertEquals(AccessType.PROPERTY, javaPersistentType.getAccess());
-	}
-	
-	public void testAccessXmlPersistenceUnitDefaultsAccessNoAnnotations()  throws Exception {
-		OrmPersistentType entityPersistentType = getEntityMappings().addPersistentType(MappingKeys.ENTITY_TYPE_MAPPING_KEY, FULLY_QUALIFIED_TYPE_NAME);
-		createTestEntity();
-		JavaPersistentType javaPersistentType = entityPersistentType.getJavaPersistentType(); 
-
-		getEntityMappings().getPersistenceUnitMetadata().getPersistenceUnitDefaults().setAccess(AccessType.FIELD);
-		assertEquals(AccessType.FIELD, javaPersistentType.getAccess());
-
-		getEntityMappings().getPersistenceUnitMetadata().getPersistenceUnitDefaults().setAccess(AccessType.PROPERTY);
-		assertEquals(AccessType.PROPERTY, javaPersistentType.getAccess());
-	}
-	
-	public void testAccessXmlEntityPropertyAccessAndFieldAnnotations() throws Exception {
-		//xml access set to property, field annotations, JavaPersistentType access is field
-		OrmPersistentType entityPersistentType = getEntityMappings().addPersistentType(MappingKeys.ENTITY_TYPE_MAPPING_KEY, FULLY_QUALIFIED_TYPE_NAME);
-		createTestEntityAnnotatedField();
-		JavaPersistentType javaPersistentType = entityPersistentType.getJavaPersistentType(); 
-
-		entityPersistentType.setSpecifiedAccess(AccessType.PROPERTY);
-		assertEquals(AccessType.FIELD, javaPersistentType.getAccess());
-	}
-	
-	public void testAccessXmlEntityFieldAccessAndPropertyAnnotations() throws Exception {
-		//xml access set to field, property annotations, JavaPersistentType access is property
-		OrmPersistentType entityPersistentType = getEntityMappings().addPersistentType(MappingKeys.ENTITY_TYPE_MAPPING_KEY, FULLY_QUALIFIED_TYPE_NAME);
-		createTestEntityAnnotatedMethod();
-		JavaPersistentType javaPersistentType = entityPersistentType.getJavaPersistentType(); 
-
-		entityPersistentType.setSpecifiedAccess(AccessType.FIELD);
-		assertEquals(AccessType.PROPERTY, javaPersistentType.getAccess());
-	}
-	
-	public void testAccessXmlPersistenceUnitDefaultsAccessFieldAnnotations() throws Exception {
-		OrmPersistentType entityPersistentType = getEntityMappings().addPersistentType(MappingKeys.ENTITY_TYPE_MAPPING_KEY, FULLY_QUALIFIED_TYPE_NAME);
-		createTestEntityAnnotatedField();
-		JavaPersistentType javaPersistentType = entityPersistentType.getJavaPersistentType(); 
-
-		getEntityMappings().getPersistenceUnitMetadata().getPersistenceUnitDefaults().setAccess(AccessType.PROPERTY);
-		assertEquals(AccessType.FIELD, javaPersistentType.getAccess());
-	}
-
-	//inheritance wins over entity-mappings specified access
-	public void testAccessXmlEntityMappingsAccessWithInheritance() throws Exception {
-		OrmPersistentType entityPersistentType = getEntityMappings().addPersistentType(MappingKeys.ENTITY_TYPE_MAPPING_KEY, FULLY_QUALIFIED_TYPE_NAME);
-		OrmPersistentType childEntityPersistentType = getEntityMappings().addPersistentType(MappingKeys.ENTITY_TYPE_MAPPING_KEY, PACKAGE_NAME + ".AnnotationTestTypeChild");
-		
-		createTestEntityAnnotatedMethod();
-		createTestSubType();
-		JavaPersistentType childJavaPersistentType = childEntityPersistentType.getJavaPersistentType(); 
-
-		getEntityMappings().setSpecifiedAccess(AccessType.FIELD);
-		assertEquals(AccessType.PROPERTY, entityPersistentType.getJavaPersistentType().getAccess());
-		assertEquals(AccessType.PROPERTY, childJavaPersistentType.getAccess());
-	}
-
-	public void testAccessXmlMetadataCompleteFieldAnnotations() throws Exception {
-		//xml access set to property, java has field annotations so the access should be field
-		OrmPersistentType entityPersistentType = getEntityMappings().addPersistentType(MappingKeys.ENTITY_TYPE_MAPPING_KEY, FULLY_QUALIFIED_TYPE_NAME);
-		createTestEntityAnnotatedField();
-		JavaPersistentType javaPersistentType = entityPersistentType.getJavaPersistentType(); 
-
-		getEntityMappings().getPersistenceUnitMetadata().getPersistenceUnitDefaults().setAccess(AccessType.PROPERTY);
-		getEntityMappings().getPersistenceUnitMetadata().setXmlMappingMetadataComplete(true);
-		assertEquals(AccessType.FIELD, javaPersistentType.getAccess());
-		
-	}
-	
-	public void testAccessNoXmlAccessXmlMetdataCompletePropertyAnnotations() throws Exception {
-		//xml access not set, metadata complete set.  JavaPersistentType access is property because properties are annotated
-		OrmPersistentType entityPersistentType = getEntityMappings().addPersistentType(MappingKeys.ENTITY_TYPE_MAPPING_KEY, FULLY_QUALIFIED_TYPE_NAME);
-		createTestEntityAnnotatedMethod();
-		JavaPersistentType javaPersistentType = entityPersistentType.getJavaPersistentType(); 
-
-		getEntityMappings().getPersistenceUnitMetadata().setXmlMappingMetadataComplete(true);
-		assertEquals(AccessType.PROPERTY, javaPersistentType.getAccess());
-	}
-	
-	public void testParentPersistentType() throws Exception {
-		createTestEntityAnnotatedMethod();
-		createTestSubTypeWithFieldAnnotation();
-		
-		addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
-		addXmlClassRef(PACKAGE_NAME + ".AnnotationTestTypeChild");
-		
-		ListIterator<ClassRef> classRefs = getPersistenceUnit().specifiedClassRefs();
-		ClassRef classRef = classRefs.next();
-		JavaPersistentType rootJavaPersistentType = classRef.getJavaPersistentType();
-		
-		classRef = classRefs.next();
-		JavaPersistentType childJavaPersistentType = classRef.getJavaPersistentType();
-		
-		assertEquals(rootJavaPersistentType, childJavaPersistentType.getParentPersistentType());
-		assertNull(rootJavaPersistentType.getParentPersistentType());
-	}
-	
-	public void testParentPersistentType2() throws Exception {
-		createTestEntityAnnotatedMethod();
-		createTestSubTypeWithFieldAnnotation();
-		
-		//parent is not added to the getPersistenceUnit, but it should still be found
-		//as the parentPersistentType because of impliedClassRefs and changes for bug 190317
-		addXmlClassRef(PACKAGE_NAME + ".AnnotationTestTypeChild");
-		
-		ListIterator<ClassRef> classRefs = getPersistenceUnit().specifiedClassRefs();
-		JavaPersistentType javaPersistentType = classRefs.next().getJavaPersistentType();
-		
-		assertNotNull(javaPersistentType.getParentPersistentType());
-	}	
-	
-	//Entity extends Non-Entity extends Entity 
-	public void testParentPersistentType3() throws Exception {
-		createTestEntityAnnotatedMethod();
-		createTestSubTypeNonPersistent();
-		createTestSubTypePersistentExtendsNonPersistent();
-		
-		addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
-		addXmlClassRef(PACKAGE_NAME + ".AnnotationTestTypeChild2");
-		
-		ListIterator<ClassRef> classRefs = getPersistenceUnit().specifiedClassRefs();
-		ClassRef classRef = classRefs.next();
-		JavaPersistentType rootJavaPersistentType = classRef.getJavaPersistentType();
-		
-		classRef = classRefs.next();
-		JavaPersistentType childJavaPersistentType = classRef.getJavaPersistentType();
-		
-		assertEquals(rootJavaPersistentType, childJavaPersistentType.getParentPersistentType());
-		assertNull(rootJavaPersistentType.getParentPersistentType());
-	}
-	
-	public void testInheritanceHierarchy() throws Exception {
-		createTestEntityAnnotatedMethod();
-		createTestSubTypeNonPersistent();
-		createTestSubTypePersistentExtendsNonPersistent();
-		
-		addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
-		addXmlClassRef(PACKAGE_NAME + ".AnnotationTestTypeChild2");
-		
-		ListIterator<ClassRef> classRefs = getPersistenceUnit().specifiedClassRefs();
-		JavaPersistentType rootJavaPersistentType = classRefs.next().getJavaPersistentType();
-		JavaPersistentType childJavaPersistentType = classRefs.next().getJavaPersistentType();
-		
-		Iterator<PersistentType> inheritanceHierarchy = childJavaPersistentType.inheritanceHierarchy();	
-		
-		assertEquals(childJavaPersistentType, inheritanceHierarchy.next());
-		assertEquals(rootJavaPersistentType, inheritanceHierarchy.next());
-	}
-	
-	public void testInheritanceHierarchy2() throws Exception {
-		createTestEntityAnnotatedMethod();
-		createTestSubTypeNonPersistent();
-		createTestSubTypePersistentExtendsNonPersistent();
-		
-		addXmlClassRef(PACKAGE_NAME + ".AnnotationTestTypeChild2");
-		addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
-		
-		ListIterator<ClassRef> classRefs = getPersistenceUnit().specifiedClassRefs();
-		JavaPersistentType childJavaPersistentType = classRefs.next().getJavaPersistentType();
-		JavaPersistentType rootJavaPersistentType = classRefs.next().getJavaPersistentType();
-		
-		Iterator<PersistentType> inheritanceHierarchy = childJavaPersistentType.inheritanceHierarchy();	
-		
-		assertEquals(childJavaPersistentType, inheritanceHierarchy.next());
-		assertEquals(rootJavaPersistentType, inheritanceHierarchy.next());
-	}
-	
-	public void testGetMapping() throws Exception {
-		createTestEntityAnnotatedMethod();
-		addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
-
-		assertEquals(MappingKeys.ENTITY_TYPE_MAPPING_KEY, getJavaPersistentType().getMapping().getKey());
-	}
-	
-	public void testGetMappingNull() throws Exception {
-		createTestType();
-		addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
-
-		assertEquals(MappingKeys.NULL_TYPE_MAPPING_KEY, getJavaPersistentType().getMapping().getKey());
-	}
-	
-	public void testMappingKey() throws Exception {
-		createTestEntityAnnotatedMethod();
-		addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
-
-		assertEquals(MappingKeys.ENTITY_TYPE_MAPPING_KEY, getJavaPersistentType().getMappingKey());
-	}
-	
-	public void testMappingKeyNull() throws Exception {
-		createTestType();
-		addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
-
-		assertEquals(MappingKeys.NULL_TYPE_MAPPING_KEY, getJavaPersistentType().getMappingKey());
-	}
-	
-	public void testSetMappingKey() throws Exception {
-		createTestType();
-		addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
-		
-		assertEquals(MappingKeys.NULL_TYPE_MAPPING_KEY, getJavaPersistentType().getMappingKey());
-
-		getJavaPersistentType().setMappingKey(MappingKeys.ENTITY_TYPE_MAPPING_KEY);
-		
-		JavaResourcePersistentType typeResource = getJpaProject().getJavaResourcePersistentType(FULLY_QUALIFIED_TYPE_NAME);
-		assertNotNull(typeResource.getMappingAnnotation());
-		assertTrue(typeResource.getMappingAnnotation() instanceof EntityAnnotation);
-		
-		assertEquals(MappingKeys.ENTITY_TYPE_MAPPING_KEY, getJavaPersistentType().getMappingKey());
-	}
-	
-	public void testSetMappingKey2() throws Exception {
-		createTestEntityAnnotatedField();
-		addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
-		
-		assertEquals(MappingKeys.ENTITY_TYPE_MAPPING_KEY, getJavaPersistentType().getMappingKey());
-
-		getJavaPersistentType().setMappingKey(MappingKeys.EMBEDDABLE_TYPE_MAPPING_KEY);
-		
-		JavaResourcePersistentType typeResource = getJpaProject().getJavaResourcePersistentType(FULLY_QUALIFIED_TYPE_NAME);
-		assertNotNull(typeResource.getMappingAnnotation());
-		assertTrue(typeResource.getMappingAnnotation() instanceof EmbeddableAnnotation);
-		
-		assertEquals(MappingKeys.EMBEDDABLE_TYPE_MAPPING_KEY, getJavaPersistentType().getMappingKey());
-	}
-
-	public void testSetMappingKeyNull() throws Exception {
-		createTestEntityAnnotatedMethod();
-		addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
-		
-		assertEquals(MappingKeys.ENTITY_TYPE_MAPPING_KEY, getJavaPersistentType().getMappingKey());
-
-		getJavaPersistentType().setMappingKey(MappingKeys.NULL_TYPE_MAPPING_KEY);
-		
-		JavaResourcePersistentType typeResource = getJpaProject().getJavaResourcePersistentType(FULLY_QUALIFIED_TYPE_NAME);
-		assertNull(typeResource.getMappingAnnotation());
-		assertNull(typeResource.getMappingAnnotation(EntityAnnotation.ANNOTATION_NAME));
-		
-		assertEquals(MappingKeys.NULL_TYPE_MAPPING_KEY, getJavaPersistentType().getMappingKey());
-	}
-	
-	public void testGetMappingKeyMappingChangeInResourceModel() throws Exception {
-		createTestEntityAnnotatedField();
-		addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
-		
-		assertEquals(MappingKeys.ENTITY_TYPE_MAPPING_KEY, getJavaPersistentType().getMappingKey());
-		
-		JavaResourcePersistentType typeResource = getJpaProject().getJavaResourcePersistentType(FULLY_QUALIFIED_TYPE_NAME);
-		typeResource.setMappingAnnotation(EmbeddableAnnotation.ANNOTATION_NAME);
-				
-		assertEquals(MappingKeys.EMBEDDABLE_TYPE_MAPPING_KEY, getJavaPersistentType().getMappingKey());
-	}
-	
-	public void testGetMappingKeyMappingChangeInResourceModel2() throws Exception {
-		createTestType();
-		addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
-		
-		assertEquals(MappingKeys.NULL_TYPE_MAPPING_KEY, getJavaPersistentType().getMappingKey());
-		
-		JavaResourcePersistentType typeResource = getJpaProject().getJavaResourcePersistentType(FULLY_QUALIFIED_TYPE_NAME);
-		typeResource.setMappingAnnotation(EntityAnnotation.ANNOTATION_NAME);
-				
-		assertEquals(MappingKeys.ENTITY_TYPE_MAPPING_KEY, getJavaPersistentType().getMappingKey());
-	}
-
-	public void testIsMapped() throws Exception {
-		createTestEntityAnnotatedMethod();
-		addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
-
-		assertTrue(getJavaPersistentType().isMapped());
-		
-		getJavaPersistentType().setMappingKey(MappingKeys.NULL_TYPE_MAPPING_KEY);	
-		assertFalse(getJavaPersistentType().isMapped());	
-	}
-	
-	public void testAttributes() throws Exception {
-		createTestEntityAnnotatedMethod();
-		addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
-		ListIterator<JavaPersistentAttribute> attributes = getJavaPersistentType().attributes();
-		
-		assertEquals("id", attributes.next().getName());
-		assertFalse(attributes.hasNext());
-	}
-	
-	public void testAttributes2() throws Exception {
-		createTestEntityAnnotatedFieldAndMethod();
-		addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
-
-		ListIterator<JavaPersistentAttribute> attributes = getJavaPersistentType().attributes();
-		
-		assertEquals("id", attributes.next().getName());
-		assertEquals("name", attributes.next().getName());
-		assertFalse(attributes.hasNext());
-	}
-	
-	public void testAttributesSize() throws Exception {
-		createTestEntityAnnotatedMethod();
-		addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
-
-		assertEquals(1, getJavaPersistentType().attributesSize());
-	}
-	
-	public void testAttributesSize2() throws Exception {
-		createTestEntityAnnotatedFieldAndMethod();
-		addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
-
-		assertEquals(2, getJavaPersistentType().attributesSize());
-	}
-	
-	public void testAttributeNamed() throws Exception {
-		createTestEntityAnnotatedMethod();
-		addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
-
-		PersistentAttribute attribute = getJavaPersistentType().getAttributeNamed("id");
-		
-		assertEquals("id", attribute.getName());
-		assertNull(getJavaPersistentType().getAttributeNamed("name"));
-		assertNull(getJavaPersistentType().getAttributeNamed("foo"));
-	}
-	
-	public void testAttributeNamed2() throws Exception {
-		createTestEntityAnnotatedField();
-		addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
-
-		PersistentAttribute attribute = getJavaPersistentType().getAttributeNamed("name");
-		
-		assertEquals("name", attribute.getName());
-		
-		assertNull(getJavaPersistentType().getAttributeNamed("foo"));
-	}
-	
-	public void testRenameAttribute() throws Exception {
-		ICompilationUnit testType = createTestEntityAnnotatedField();
-		addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
-		
-		ListIterator<JavaPersistentAttribute> attributes = getJavaPersistentType().attributes();
-		JavaPersistentAttribute idAttribute = attributes.next();
-		JavaPersistentAttribute nameAttribute = attributes.next();
-		
-		
-		assertEquals("id", idAttribute.getName());
-		assertEquals("name", nameAttribute.getName());
-		
-		IField idField = testType.findPrimaryType().getField("id");
-		idField.rename("id2", false, null);
-		
-		attributes = getJavaPersistentType().attributes();
-		JavaPersistentAttribute nameAttribute2 = attributes.next();
-		JavaPersistentAttribute id2Attribute = attributes.next();
-
-		assertNotSame(idAttribute, id2Attribute);
-		assertEquals("id2", id2Attribute.getName());
-		assertEquals(nameAttribute, nameAttribute2);
-		assertEquals("name", nameAttribute2.getName());
-		assertFalse(attributes.hasNext());
-	}
-
-	public void testParentPersistentTypeGeneric() throws Exception {
-		createTestGenericEntity();
-		createTestGenericMappedSuperclass();
-		
-		addXmlClassRef(PACKAGE_NAME + ".Entity1");
-		addXmlClassRef(PACKAGE_NAME + ".Entity2");
-		
-		JavaPersistentType javaPersistentType = getJavaPersistentType();
-		assertEquals("test.Entity1", javaPersistentType.getName());
-		assertNotNull(javaPersistentType.getParentPersistentType());
-		
-		assertEquals("test.Entity2", javaPersistentType.getParentPersistentType().getName());
-	}
-
-	private void createTestGenericEntity() throws Exception {
-		SourceWriter sourceWriter = new SourceWriter() {
-			public void appendSourceTo(StringBuilder sb) {
-				sb.append(CR);
-					sb.append("import ");
-					sb.append(JPA.ENTITY);
-					sb.append(";");
-					sb.append(CR);
-				sb.append("@Entity");
-				sb.append(CR);
-				sb.append("public class Entity1 ");
-				sb.append("extends Entity2<Integer> {}").append(CR);
-			}
-		};
-		this.javaProject.createCompilationUnit(PACKAGE_NAME, "Entity1.java", sourceWriter);
-	}
-	
-	private void createTestGenericMappedSuperclass() throws Exception {
-		SourceWriter sourceWriter = new SourceWriter() {
-			public void appendSourceTo(StringBuilder sb) {
-				sb.append(CR);
-					sb.append("import ");
-					sb.append(JPA.MAPPED_SUPERCLASS);
-					sb.append(";");
-					sb.append(CR);
-				sb.append("@MappedSuperclass");
-				sb.append(CR);
-				sb.append("public class Entity2<K> {}").append(CR);
-			}
-		};
-		this.javaProject.createCompilationUnit(PACKAGE_NAME, "Entity2.java", sourceWriter);
-	}
-}
diff --git a/jpa/tests/org.eclipse.jpt.eclipselink.core.tests/src/org/eclipse/jpt/eclipselink/core/tests/internal/context/java/EclipseLinkJavaBasicMappingTests.java b/jpa/tests/org.eclipse.jpt.eclipselink.core.tests/src/org/eclipse/jpt/eclipselink/core/tests/internal/context/java/EclipseLinkJavaBasicMappingTests.java
deleted file mode 100644
index 0a6e7e5..0000000
--- a/jpa/tests/org.eclipse.jpt.eclipselink.core.tests/src/org/eclipse/jpt/eclipselink/core/tests/internal/context/java/EclipseLinkJavaBasicMappingTests.java
+++ /dev/null
@@ -1,315 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.eclipselink.core.tests.internal.context.java;
-
-import java.util.Iterator;
-import org.eclipse.jdt.core.ICompilationUnit;
-import org.eclipse.jpt.core.context.BasicMapping;
-import org.eclipse.jpt.core.context.Converter;
-import org.eclipse.jpt.core.context.PersistentAttribute;
-import org.eclipse.jpt.core.context.TemporalConverter;
-import org.eclipse.jpt.core.context.TemporalType;
-import org.eclipse.jpt.core.resource.java.JPA;
-import org.eclipse.jpt.core.resource.java.JavaResourcePersistentAttribute;
-import org.eclipse.jpt.core.resource.java.JavaResourcePersistentType;
-import org.eclipse.jpt.core.resource.java.TemporalAnnotation;
-import org.eclipse.jpt.eclipselink.core.context.Convert;
-import org.eclipse.jpt.eclipselink.core.context.EclipseLinkBasicMapping;
-import org.eclipse.jpt.eclipselink.core.context.Mutable;
-import org.eclipse.jpt.eclipselink.core.resource.java.ConvertAnnotation;
-import org.eclipse.jpt.eclipselink.core.resource.java.EclipseLinkJPA;
-import org.eclipse.jpt.eclipselink.core.resource.java.MutableAnnotation;
-import org.eclipse.jpt.eclipselink.core.tests.internal.context.EclipseLinkContextModelTestCase;
-import org.eclipse.jpt.utility.internal.iterators.ArrayIterator;
-
-@SuppressWarnings("nls")
-public class EclipseLinkJavaBasicMappingTests extends EclipseLinkContextModelTestCase
-{	
-	
-	private ICompilationUnit createTestEntityWithBasicMapping() throws Exception {
-		return this.createTestType(new DefaultAnnotationWriter() {
-			@Override
-			public Iterator<String> imports() {
-				return new ArrayIterator<String>(JPA.ENTITY, JPA.BASIC);
-			}
-			@Override
-			public void appendTypeAnnotationTo(StringBuilder sb) {
-				sb.append("@Entity").append(CR);
-			}
-			
-			@Override
-			public void appendIdFieldAnnotationTo(StringBuilder sb) {
-				sb.append("@Basic").append(CR);
-			}
-		});
-	}
-
-	
-	private ICompilationUnit createTestEntityWithConvert() throws Exception {
-		return this.createTestType(new DefaultAnnotationWriter() {
-			@Override
-			public Iterator<String> imports() {
-				return new ArrayIterator<String>(JPA.ENTITY, EclipseLinkJPA.CONVERT);
-			}
-			@Override
-			public void appendTypeAnnotationTo(StringBuilder sb) {
-				sb.append("@Entity").append(CR);
-			}
-			
-			@Override
-			public void appendIdFieldAnnotationTo(StringBuilder sb) {
-				sb.append("@Convert(\"class-instance\")").append(CR);
-			}
-		});
-	}
-	
-	private ICompilationUnit createTestEntityWithMutableBasic() throws Exception {
-		return this.createTestType(new DefaultAnnotationWriter() {
-			@Override
-			public Iterator<String> imports() {
-				return new ArrayIterator<String>(JPA.ENTITY, JPA.BASIC, EclipseLinkJPA.MUTABLE);
-			}
-			@Override
-			public void appendTypeAnnotationTo(StringBuilder sb) {
-				sb.append("@Entity").append(CR);
-			}
-			
-			@Override
-			public void appendIdFieldAnnotationTo(StringBuilder sb) {
-				sb.append("@Basic").append(CR);
-				sb.append("@Mutable").append(CR);
-			}
-		});
-	}
-	
-	private ICompilationUnit createTestEntityWithMutableBasicDate() throws Exception {
-		return this.createTestType(new DefaultAnnotationWriter() {
-			@Override
-			public Iterator<String> imports() {
-				return new ArrayIterator<String>(JPA.ENTITY, JPA.BASIC, EclipseLinkJPA.MUTABLE, "java.util.Date");
-			}
-			@Override
-			public void appendTypeAnnotationTo(StringBuilder sb) {
-				sb.append("@Entity").append(CR);
-			}
-			
-			@Override
-			public void appendIdFieldAnnotationTo(StringBuilder sb) {
-				sb.append("@Basic").append(CR);
-				sb.append("    @Mutable").append(CR);
-				sb.append("    private Date myDate;").append(CR);
-				sb.append(CR);
-				sb.append("    ");
-			}
-		});
-	}
-
-	public EclipseLinkJavaBasicMappingTests(String name) {
-		super(name);
-	}
-
-
-	public void testGetConvert() throws Exception {
-		createTestEntityWithBasicMapping();
-		addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
-		
-		JavaResourcePersistentType typeResource = getJpaProject().getJavaResourcePersistentType(FULLY_QUALIFIED_TYPE_NAME);
-		JavaResourcePersistentAttribute attributeResource = typeResource.persistableAttributes().next();
-		attributeResource.addSupportingAnnotation(ConvertAnnotation.ANNOTATION_NAME);
-		
-		PersistentAttribute persistentAttribute = getJavaPersistentType().attributes().next();
-		BasicMapping basicMapping = (BasicMapping) persistentAttribute.getSpecifiedMapping();
-
-		assertEquals(Convert.ECLIPSE_LINK_CONVERTER, basicMapping.getConverter().getType());
-	}
-	
-	public void testGetConvert2() throws Exception {
-		createTestEntityWithConvert();
-		addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
-		
-		PersistentAttribute persistentAttribute = getJavaPersistentType().attributes().next();
-		BasicMapping basicMapping = (BasicMapping) persistentAttribute.getMapping();
-
-		assertEquals(Convert.ECLIPSE_LINK_CONVERTER, basicMapping.getConverter().getType());
-		assertEquals(Convert.CLASS_INSTANCE_CONVERTER, ((Convert) basicMapping.getConverter()).getConverterName());
-	}
-
-	public void testSetConvert() throws Exception {
-		createTestEntityWithBasicMapping();
-		addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
-		
-		PersistentAttribute persistentAttribute = getJavaPersistentType().attributes().next();
-		BasicMapping basicMapping = (BasicMapping) persistentAttribute.getSpecifiedMapping();
-		assertEquals(Converter.NO_CONVERTER, basicMapping.getConverter().getType());
-		
-		basicMapping.setSpecifiedConverter(Converter.TEMPORAL_CONVERTER);
-		((TemporalConverter) basicMapping.getSpecifiedConverter()).setTemporalType(TemporalType.TIME);
-		
-		JavaResourcePersistentType typeResource = getJpaProject().getJavaResourcePersistentType(FULLY_QUALIFIED_TYPE_NAME);
-		JavaResourcePersistentAttribute attributeResource = typeResource.persistableAttributes().next();
-		TemporalAnnotation temporal = (TemporalAnnotation) attributeResource.getSupportingAnnotation(TemporalAnnotation.ANNOTATION_NAME);
-		
-		assertEquals(org.eclipse.jpt.core.resource.java.TemporalType.TIME, temporal.getValue());
-		
-		basicMapping.setSpecifiedConverter(null);
-		assertNull(attributeResource.getSupportingAnnotation(TemporalAnnotation.ANNOTATION_NAME));
-	}
-	
-	public void testGetConvertUpdatesFromResourceModelChange() throws Exception {
-		createTestEntityWithBasicMapping();
-		addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
-		
-		PersistentAttribute persistentAttribute = getJavaPersistentType().attributes().next();
-		BasicMapping basicMapping = (BasicMapping) persistentAttribute.getSpecifiedMapping();
-
-		assertEquals(Converter.NO_CONVERTER, basicMapping.getConverter().getType());
-		
-		
-		JavaResourcePersistentType typeResource = getJpaProject().getJavaResourcePersistentType(FULLY_QUALIFIED_TYPE_NAME);
-		JavaResourcePersistentAttribute attributeResource = typeResource.persistableAttributes().next();
-		ConvertAnnotation convert = (ConvertAnnotation) attributeResource.addSupportingAnnotation(ConvertAnnotation.ANNOTATION_NAME);
-		convert.setValue("foo");
-		
-		assertEquals(Convert.ECLIPSE_LINK_CONVERTER, basicMapping.getConverter().getType());
-		assertEquals("foo", ((Convert) basicMapping.getConverter()).getConverterName());
-		
-		attributeResource.removeSupportingAnnotation(ConvertAnnotation.ANNOTATION_NAME);
-		
-		assertEquals(Converter.NO_CONVERTER, basicMapping.getConverter().getType());
-		assertFalse(basicMapping.isDefault());
-		assertSame(basicMapping, persistentAttribute.getSpecifiedMapping());
-	}
-	
-	public void testGetSpecifiedMutable() throws Exception {
-		createTestEntityWithMutableBasic();
-		addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
-		
-		PersistentAttribute persistentAttribute = getJavaPersistentType().attributes().next();
-		EclipseLinkBasicMapping basicMapping = (EclipseLinkBasicMapping) persistentAttribute.getSpecifiedMapping();
-		Mutable mutable = basicMapping.getMutable();
-		assertEquals(Boolean.TRUE, mutable.getSpecifiedMutable());
-		
-		JavaResourcePersistentType typeResource = getJpaProject().getJavaResourcePersistentType(FULLY_QUALIFIED_TYPE_NAME);
-		JavaResourcePersistentAttribute attributeResource = typeResource.persistableAttributes().next();
-		MutableAnnotation mutableAnnotation = (MutableAnnotation) attributeResource.getSupportingAnnotation(MutableAnnotation.ANNOTATION_NAME);
-		mutableAnnotation.setValue(Boolean.TRUE);
-		
-		assertEquals(Boolean.TRUE, mutable.getSpecifiedMutable());
-
-		mutableAnnotation.setValue(null);
-		assertEquals(Boolean.TRUE, mutable.getSpecifiedMutable());
-
-		mutableAnnotation.setValue(Boolean.FALSE);
-		assertEquals(Boolean.FALSE, mutable.getSpecifiedMutable());
-		
-		attributeResource.removeSupportingAnnotation(MutableAnnotation.ANNOTATION_NAME);
-		assertEquals(null, mutable.getSpecifiedMutable());
-		
-		attributeResource.addSupportingAnnotation(MutableAnnotation.ANNOTATION_NAME);
-		assertEquals(Boolean.TRUE, mutable.getSpecifiedMutable());
-	}
-	
-	public void testSetSpecifiedMutable() throws Exception {
-		createTestEntityWithMutableBasic();
-		addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
-		
-		PersistentAttribute persistentAttribute = getJavaPersistentType().attributes().next();
-		EclipseLinkBasicMapping basicMapping = (EclipseLinkBasicMapping) persistentAttribute.getSpecifiedMapping();
-		Mutable mutable = basicMapping.getMutable();
-		assertEquals(Boolean.TRUE, mutable.getSpecifiedMutable());
-		
-		JavaResourcePersistentType typeResource = getJpaProject().getJavaResourcePersistentType(FULLY_QUALIFIED_TYPE_NAME);
-		JavaResourcePersistentAttribute attributeResource = typeResource.persistableAttributes().next();
-		MutableAnnotation mutableAnnotation = (MutableAnnotation) attributeResource.getSupportingAnnotation(MutableAnnotation.ANNOTATION_NAME);
-		assertEquals(null, mutableAnnotation.getValue());
-		
-		mutable.setSpecifiedMutable(Boolean.TRUE);	
-		assertEquals(null, mutableAnnotation.getValue());
-
-		mutable.setSpecifiedMutable(null);
-		mutableAnnotation = (MutableAnnotation) attributeResource.getSupportingAnnotation(MutableAnnotation.ANNOTATION_NAME);
-		assertEquals(null, mutableAnnotation);
-		
-		mutable.setSpecifiedMutable(Boolean.FALSE);	
-		mutableAnnotation = (MutableAnnotation) attributeResource.getSupportingAnnotation(MutableAnnotation.ANNOTATION_NAME);
-		assertEquals(Boolean.FALSE, mutableAnnotation.getValue());
-		
-		mutable.setSpecifiedMutable(Boolean.TRUE);	
-		assertEquals(null, mutableAnnotation.getValue());
-	}
-	
-	public void testIsDefaultMutable() throws Exception {
-		createTestEntityWithMutableBasic();
-		addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
-		
-		PersistentAttribute persistentAttribute = getJavaPersistentType().attributes().next();
-		EclipseLinkBasicMapping basicMapping = (EclipseLinkBasicMapping) persistentAttribute.getSpecifiedMapping();
-		Mutable mutable = basicMapping.getMutable();
-		assertTrue(mutable.isDefaultMutable());
-		
-		JavaResourcePersistentType typeResource = getJpaProject().getJavaResourcePersistentType(FULLY_QUALIFIED_TYPE_NAME);
-		JavaResourcePersistentAttribute attributeResource = typeResource.persistableAttributes().next();
-		attributeResource.removeSupportingAnnotation(MutableAnnotation.ANNOTATION_NAME);
-		assertTrue(mutable.isDefaultMutable());
-		
-		mutable.setSpecifiedMutable(Boolean.FALSE);	
-		assertTrue(mutable.isDefaultMutable());
-		
-		//set mutable default to false in the persistence unit properties, verify default in java still true since this is not a Date/Calendar
-		getPersistenceUnit().getOptions().setTemporalMutable(Boolean.FALSE);
-		assertTrue(mutable.isDefaultMutable());
-	}
-	
-	public void testIsDefaultMutableForDate() throws Exception {
-		createTestEntityWithMutableBasicDate();
-		addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
-		
-		PersistentAttribute persistentAttribute = getJavaPersistentType().attributes().next();
-		EclipseLinkBasicMapping basicMapping = (EclipseLinkBasicMapping) persistentAttribute.getSpecifiedMapping();
-		Mutable mutable = basicMapping.getMutable();
-		assertFalse(mutable.isDefaultMutable());
-		
-		JavaResourcePersistentType typeResource = getJpaProject().getJavaResourcePersistentType(FULLY_QUALIFIED_TYPE_NAME);
-		JavaResourcePersistentAttribute attributeResource = typeResource.persistableAttributes().next();
-		attributeResource.removeSupportingAnnotation(MutableAnnotation.ANNOTATION_NAME);
-		assertFalse(mutable.isDefaultMutable());
-		
-		mutable.setSpecifiedMutable(Boolean.TRUE);	
-		assertFalse(mutable.isDefaultMutable());
-		
-		//set mutable default to false in the persistence unit properties, verify default in java still true since this is not a Date/Calendar
-		getPersistenceUnit().getOptions().setTemporalMutable(Boolean.TRUE);
-		assertTrue(mutable.isDefaultMutable());
-		
-		getPersistenceUnit().getOptions().setTemporalMutable(Boolean.FALSE);
-		assertFalse(mutable.isDefaultMutable());
-		
-		getPersistenceUnit().getOptions().setTemporalMutable(null);
-		assertFalse(mutable.isDefaultMutable());
-	}
-	
-	public void testIsMutable() throws Exception {
-		createTestEntityWithMutableBasic();
-		addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
-		
-		PersistentAttribute persistentAttribute = getJavaPersistentType().attributes().next();
-		EclipseLinkBasicMapping basicMapping = (EclipseLinkBasicMapping) persistentAttribute.getSpecifiedMapping();
-		Mutable mutable = basicMapping.getMutable();
-		assertTrue(mutable.isMutable());
-		
-		JavaResourcePersistentType typeResource = getJpaProject().getJavaResourcePersistentType(FULLY_QUALIFIED_TYPE_NAME);
-		JavaResourcePersistentAttribute attributeResource = typeResource.persistableAttributes().next();
-		attributeResource.removeSupportingAnnotation(MutableAnnotation.ANNOTATION_NAME);
-		assertTrue(mutable.isMutable());
-		
-		mutable.setSpecifiedMutable(Boolean.TRUE);	
-		assertTrue(mutable.isMutable());
-	}
-}
diff --git a/jpa/tests/org.eclipse.jpt.eclipselink.core.tests/src/org/eclipse/jpt/eclipselink/core/tests/internal/context/java/EclipseLinkJavaCachingTests.java b/jpa/tests/org.eclipse.jpt.eclipselink.core.tests/src/org/eclipse/jpt/eclipselink/core/tests/internal/context/java/EclipseLinkJavaCachingTests.java
deleted file mode 100644
index 5c8c304..0000000
--- a/jpa/tests/org.eclipse.jpt.eclipselink.core.tests/src/org/eclipse/jpt/eclipselink/core/tests/internal/context/java/EclipseLinkJavaCachingTests.java
+++ /dev/null
@@ -1,632 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.eclipselink.core.tests.internal.context.java;
-
-import java.util.Iterator;
-import org.eclipse.jdt.core.ICompilationUnit;
-import org.eclipse.jpt.core.resource.java.JPA;
-import org.eclipse.jpt.core.resource.java.JavaResourcePersistentType;
-import org.eclipse.jpt.eclipselink.core.context.CacheCoordinationType;
-import org.eclipse.jpt.eclipselink.core.context.CacheType;
-import org.eclipse.jpt.eclipselink.core.context.ExpiryTimeOfDay;
-import org.eclipse.jpt.eclipselink.core.context.ExistenceType;
-import org.eclipse.jpt.eclipselink.core.context.java.JavaCaching;
-import org.eclipse.jpt.eclipselink.core.context.java.EclipseLinkJavaEntity;
-import org.eclipse.jpt.eclipselink.core.resource.java.CacheAnnotation;
-import org.eclipse.jpt.eclipselink.core.resource.java.EclipseLinkJPA;
-import org.eclipse.jpt.eclipselink.core.resource.java.ExistenceCheckingAnnotation;
-import org.eclipse.jpt.eclipselink.core.tests.internal.context.EclipseLinkContextModelTestCase;
-import org.eclipse.jpt.utility.internal.iterators.ArrayIterator;
-
-@SuppressWarnings("nls")
-public class EclipseLinkJavaCachingTests extends EclipseLinkContextModelTestCase
-{	
-	public EclipseLinkJavaCachingTests(String name) {
-		super(name);
-	}
-
-	private ICompilationUnit createTestEntity() throws Exception {
-		return this.createTestType(new DefaultAnnotationWriter() {
-			@Override
-			public Iterator<String> imports() {
-				return new ArrayIterator<String>(JPA.ENTITY, JPA.ID);
-			}
-			@Override
-			public void appendTypeAnnotationTo(StringBuilder sb) {
-				sb.append("@Entity");
-			}
-		});
-	}
-	
-	public void testSetSpecifiedShared() throws Exception {
-		createTestEntity();
-		addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
-		
-		EclipseLinkJavaEntity entity = (EclipseLinkJavaEntity) getJavaPersistentType().getMapping();
-		JavaCaching caching = entity.getCaching();
-		
-		assertEquals(true, caching.isShared());
-		
-		caching.setSpecifiedShared(Boolean.FALSE);
-		
-		
-		assertEquals(Boolean.FALSE, entity.getCaching().getSpecifiedShared());
-		assertEquals(false, entity.getCaching().isShared());
-		
-		JavaResourcePersistentType typeResource = getJpaProject().getJavaResourcePersistentType(FULLY_QUALIFIED_TYPE_NAME);
-		
-		CacheAnnotation cacheAnnotation = (CacheAnnotation) typeResource.getSupportingAnnotation(EclipseLinkJPA.CACHE);
-		
-		assertEquals(Boolean.FALSE, cacheAnnotation.getShared());		
-	}
-	
-	public void testSetSpecifiedSharedFalseUnsetsOtherCacheSettings() throws Exception {
-		createTestEntity();
-		addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
-		
-		EclipseLinkJavaEntity entity = (EclipseLinkJavaEntity) getJavaPersistentType().getMapping();
-		JavaCaching caching = entity.getCaching();
-		
-		caching.setSpecifiedType(CacheType.HARD_WEAK);
-		caching.setSpecifiedSize(Integer.valueOf(500));
-		caching.setSpecifiedAlwaysRefresh(Boolean.FALSE);
-		caching.setSpecifiedRefreshOnlyIfNewer(Boolean.FALSE);
-		caching.setSpecifiedDisableHits(Boolean.FALSE);
-		caching.setSpecifiedCoordinationType(CacheCoordinationType.INVALIDATE_CHANGED_OBJECTS);
-		caching.setExistenceChecking(true);
-		caching.setSpecifiedExistenceType(ExistenceType.CHECK_CACHE);
-		caching.setExpiry(Integer.valueOf(8000));
-		
-		caching.setSpecifiedShared(Boolean.FALSE);
-		
-		assertEquals(null, caching.getSpecifiedType());
-		assertEquals(null, caching.getSpecifiedSize());
-		assertEquals(null, caching.getSpecifiedAlwaysRefresh());
-		assertEquals(null, caching.getSpecifiedRefreshOnlyIfNewer());
-		assertEquals(null, caching.getSpecifiedDisableHits());
-		assertEquals(null, caching.getSpecifiedCoordinationType());
-		assertEquals(null, caching.getExpiry());
-		
-		
-		//existence checking is the only thing that isn't unset when shared is set to false
-		assertTrue(caching.hasExistenceChecking());
-		assertEquals(ExistenceType.CHECK_CACHE, caching.getSpecifiedExistenceType());
-		
-		caching.setSpecifiedShared(null);
-		ExpiryTimeOfDay timeOfDayExpiry = caching.addExpiryTimeOfDay();
-		timeOfDayExpiry.setHour(Integer.valueOf(5));
-		
-		caching.setSpecifiedShared(Boolean.FALSE);
-		assertNull(caching.getExpiryTimeOfDay());
-		
-		
-		JavaResourcePersistentType typeResource = getJpaProject().getJavaResourcePersistentType(FULLY_QUALIFIED_TYPE_NAME);
-		CacheAnnotation cacheAnnotation = (CacheAnnotation) typeResource.getSupportingAnnotation(EclipseLinkJPA.CACHE);
-		
-		assertEquals(Boolean.FALSE, cacheAnnotation.getShared());
-		assertNull(cacheAnnotation.getExpiryTimeOfDay());
-	}
-	
-	public void testGetSpecifiedShared() throws Exception {
-		createTestEntity();
-		addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
-		
-		EclipseLinkJavaEntity entity = (EclipseLinkJavaEntity) getJavaPersistentType().getMapping();
-		JavaCaching caching = entity.getCaching();
-		
-		assertEquals(true, caching.isShared());
-		
-		JavaResourcePersistentType typeResource = getJpaProject().getJavaResourcePersistentType(FULLY_QUALIFIED_TYPE_NAME);
-		CacheAnnotation cacheAnnotation = (CacheAnnotation) typeResource.addSupportingAnnotation(EclipseLinkJPA.CACHE);
-		cacheAnnotation.setShared(Boolean.FALSE);
-		
-		assertEquals(Boolean.FALSE, cacheAnnotation.getShared());				
-		assertEquals(Boolean.FALSE, entity.getCaching().getSpecifiedShared());
-		assertEquals(false, entity.getCaching().isShared());
-	}
-	
-	public void testSetSpecifiedType() throws Exception {
-		createTestEntity();
-		addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
-		
-		EclipseLinkJavaEntity entity = (EclipseLinkJavaEntity) getJavaPersistentType().getMapping();
-		JavaCaching caching = entity.getCaching();
-		
-		assertEquals(CacheType.SOFT_WEAK, caching.getType());
-		
-		caching.setSpecifiedType(CacheType.HARD_WEAK);
-		
-		
-		assertEquals(CacheType.HARD_WEAK, entity.getCaching().getSpecifiedType());
-		assertEquals(CacheType.HARD_WEAK, entity.getCaching().getType());
-		
-		JavaResourcePersistentType typeResource = getJpaProject().getJavaResourcePersistentType(FULLY_QUALIFIED_TYPE_NAME);
-		
-		CacheAnnotation cacheAnnotation = (CacheAnnotation) typeResource.getSupportingAnnotation(EclipseLinkJPA.CACHE);
-		
-		assertEquals(org.eclipse.jpt.eclipselink.core.resource.java.CacheType.HARD_WEAK, cacheAnnotation.getType());		
-
-	
-		//set specified type to the same as the default, verify it is not set to default
-		caching.setSpecifiedType(CacheType.SOFT_WEAK);
-		assertEquals(CacheType.SOFT_WEAK, caching.getSpecifiedType());
-		assertEquals(org.eclipse.jpt.eclipselink.core.resource.java.CacheType.SOFT_WEAK, cacheAnnotation.getType());		
-		
-		caching.setSpecifiedType(null);
-		assertNull(caching.getSpecifiedType());
-		assertEquals(CacheType.SOFT_WEAK, caching.getType());
-	}
-	
-	public void testGetSpecifiedType() throws Exception {
-		createTestEntity();
-		addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
-		
-		EclipseLinkJavaEntity entity = (EclipseLinkJavaEntity) getJavaPersistentType().getMapping();
-		JavaCaching caching = entity.getCaching();
-		
-		assertEquals(CacheType.SOFT_WEAK, caching.getType());
-		
-		JavaResourcePersistentType typeResource = getJpaProject().getJavaResourcePersistentType(FULLY_QUALIFIED_TYPE_NAME);
-		CacheAnnotation cacheAnnotation = (CacheAnnotation) typeResource.addSupportingAnnotation(EclipseLinkJPA.CACHE);
-		cacheAnnotation.setType(org.eclipse.jpt.eclipselink.core.resource.java.CacheType.HARD_WEAK);
-		
-		assertEquals(org.eclipse.jpt.eclipselink.core.resource.java.CacheType.HARD_WEAK, cacheAnnotation.getType());				
-		assertEquals(CacheType.HARD_WEAK, entity.getCaching().getSpecifiedType());
-		assertEquals(CacheType.HARD_WEAK, entity.getCaching().getType());
-	}
-
-	public void testSetSpecifiedAlwaysRefresh() throws Exception {
-		createTestEntity();
-		addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
-		
-		EclipseLinkJavaEntity entity = (EclipseLinkJavaEntity) getJavaPersistentType().getMapping();
-		JavaCaching caching = entity.getCaching();
-		
-		assertEquals(false, caching.isAlwaysRefresh());
-		
-		caching.setSpecifiedAlwaysRefresh(Boolean.FALSE);
-		
-		
-		assertEquals(Boolean.FALSE, entity.getCaching().getSpecifiedAlwaysRefresh());
-		assertEquals(false, entity.getCaching().isAlwaysRefresh());
-		
-		JavaResourcePersistentType typeResource = getJpaProject().getJavaResourcePersistentType(FULLY_QUALIFIED_TYPE_NAME);
-		
-		CacheAnnotation cacheAnnotation = (CacheAnnotation) typeResource.getSupportingAnnotation(EclipseLinkJPA.CACHE);
-		
-		assertEquals(Boolean.FALSE, cacheAnnotation.getAlwaysRefresh());		
-	}
-	
-	public void testGetSpecifiedAlwaysRefresh() throws Exception {
-		createTestEntity();
-		addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
-		
-		EclipseLinkJavaEntity entity = (EclipseLinkJavaEntity) getJavaPersistentType().getMapping();
-		JavaCaching caching = entity.getCaching();
-		
-		assertEquals(false, caching.isAlwaysRefresh());
-		
-		JavaResourcePersistentType typeResource = getJpaProject().getJavaResourcePersistentType(FULLY_QUALIFIED_TYPE_NAME);
-		CacheAnnotation cacheAnnotation = (CacheAnnotation) typeResource.addSupportingAnnotation(EclipseLinkJPA.CACHE);
-		cacheAnnotation.setAlwaysRefresh(Boolean.TRUE);
-		
-		assertEquals(Boolean.TRUE, cacheAnnotation.getAlwaysRefresh());				
-		assertEquals(Boolean.TRUE, entity.getCaching().getSpecifiedAlwaysRefresh());
-		assertEquals(true, entity.getCaching().isAlwaysRefresh());
-	}
-	
-	public void testSetSpecifiedRefreshOnlyIfNewer() throws Exception {
-		createTestEntity();
-		addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
-		
-		EclipseLinkJavaEntity entity = (EclipseLinkJavaEntity) getJavaPersistentType().getMapping();
-		JavaCaching caching = entity.getCaching();
-		
-		assertEquals(false, caching.isRefreshOnlyIfNewer());
-		
-		caching.setSpecifiedRefreshOnlyIfNewer(Boolean.TRUE);
-		
-		
-		assertEquals(Boolean.TRUE, entity.getCaching().getSpecifiedRefreshOnlyIfNewer());
-		assertEquals(true, entity.getCaching().isRefreshOnlyIfNewer());
-		
-		JavaResourcePersistentType typeResource = getJpaProject().getJavaResourcePersistentType(FULLY_QUALIFIED_TYPE_NAME);
-		
-		CacheAnnotation cacheAnnotation = (CacheAnnotation) typeResource.getSupportingAnnotation(EclipseLinkJPA.CACHE);
-		
-		assertEquals(Boolean.TRUE, cacheAnnotation.getRefreshOnlyIfNewer());		
-	}
-	
-	public void testGetSpecifiedRefreshOnlyIfNewer() throws Exception {
-		createTestEntity();
-		addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
-		
-		EclipseLinkJavaEntity entity = (EclipseLinkJavaEntity) getJavaPersistentType().getMapping();
-		JavaCaching caching = entity.getCaching();
-		
-		assertEquals(false, caching.isRefreshOnlyIfNewer());
-		
-		JavaResourcePersistentType typeResource = getJpaProject().getJavaResourcePersistentType(FULLY_QUALIFIED_TYPE_NAME);
-		CacheAnnotation cacheAnnotation = (CacheAnnotation) typeResource.addSupportingAnnotation(EclipseLinkJPA.CACHE);
-		cacheAnnotation.setRefreshOnlyIfNewer(Boolean.TRUE);
-		
-		assertEquals(Boolean.TRUE, cacheAnnotation.getRefreshOnlyIfNewer());				
-		assertEquals(Boolean.TRUE, entity.getCaching().getSpecifiedRefreshOnlyIfNewer());
-		assertEquals(true, entity.getCaching().isRefreshOnlyIfNewer());
-	}
-
-	public void testSetSpecifiedDisableHits() throws Exception {
-		createTestEntity();
-		addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
-		
-		EclipseLinkJavaEntity entity = (EclipseLinkJavaEntity) getJavaPersistentType().getMapping();
-		JavaCaching caching = entity.getCaching();
-		
-		assertEquals(false, caching.isDisableHits());
-		
-		caching.setSpecifiedDisableHits(Boolean.TRUE);
-		
-		
-		assertEquals(Boolean.TRUE, entity.getCaching().getSpecifiedDisableHits());
-		assertEquals(true, entity.getCaching().isDisableHits());
-		
-		JavaResourcePersistentType typeResource = getJpaProject().getJavaResourcePersistentType(FULLY_QUALIFIED_TYPE_NAME);
-		
-		CacheAnnotation cacheAnnotation = (CacheAnnotation) typeResource.getSupportingAnnotation(EclipseLinkJPA.CACHE);
-		
-		assertEquals(Boolean.TRUE, cacheAnnotation.getDisableHits());		
-	}
-	
-	public void testGetSpecifiedDisableHits() throws Exception {
-		createTestEntity();
-		addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
-		
-		EclipseLinkJavaEntity entity = (EclipseLinkJavaEntity) getJavaPersistentType().getMapping();
-		JavaCaching caching = entity.getCaching();
-		
-		assertEquals(false, caching.isDisableHits());
-		
-		JavaResourcePersistentType typeResource = getJpaProject().getJavaResourcePersistentType(FULLY_QUALIFIED_TYPE_NAME);
-		CacheAnnotation cacheAnnotation = (CacheAnnotation) typeResource.addSupportingAnnotation(EclipseLinkJPA.CACHE);
-		cacheAnnotation.setDisableHits(Boolean.TRUE);
-		
-		assertEquals(Boolean.TRUE, cacheAnnotation.getDisableHits());				
-		assertEquals(Boolean.TRUE, entity.getCaching().getSpecifiedDisableHits());
-		assertEquals(true, entity.getCaching().isDisableHits());
-	}
-
-	public void testSetSpecifiedCoordinationType() throws Exception {
-		createTestEntity();
-		addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
-		
-		EclipseLinkJavaEntity entity = (EclipseLinkJavaEntity) getJavaPersistentType().getMapping();
-		JavaCaching caching = entity.getCaching();
-		
-		assertEquals(CacheCoordinationType.SEND_OBJECT_CHANGES, caching.getCoordinationType());
-		
-		caching.setSpecifiedCoordinationType(CacheCoordinationType.INVALIDATE_CHANGED_OBJECTS);
-		
-		
-		assertEquals(CacheCoordinationType.INVALIDATE_CHANGED_OBJECTS, entity.getCaching().getSpecifiedCoordinationType());
-		assertEquals(CacheCoordinationType.INVALIDATE_CHANGED_OBJECTS, entity.getCaching().getCoordinationType());
-		
-		JavaResourcePersistentType typeResource = getJpaProject().getJavaResourcePersistentType(FULLY_QUALIFIED_TYPE_NAME);
-		
-		CacheAnnotation cacheAnnotation = (CacheAnnotation) typeResource.getSupportingAnnotation(EclipseLinkJPA.CACHE);
-		
-		assertEquals(org.eclipse.jpt.eclipselink.core.resource.java.CacheCoordinationType.INVALIDATE_CHANGED_OBJECTS, cacheAnnotation.getCoordinationType());		
-
-	
-		//set specified coordination type to the same as the default, verify it is not set to default
-		caching.setSpecifiedCoordinationType(CacheCoordinationType.SEND_OBJECT_CHANGES);
-		assertEquals(CacheCoordinationType.SEND_OBJECT_CHANGES, caching.getSpecifiedCoordinationType());
-		assertEquals(org.eclipse.jpt.eclipselink.core.resource.java.CacheCoordinationType.SEND_OBJECT_CHANGES, cacheAnnotation.getCoordinationType());		
-		
-		caching.setSpecifiedCoordinationType(null);
-		assertNull(caching.getSpecifiedCoordinationType());
-		assertEquals(CacheCoordinationType.SEND_OBJECT_CHANGES, caching.getCoordinationType());
-	}
-	
-	public void testGetSpecifiedCoordinationType() throws Exception {
-		createTestEntity();
-		addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
-		
-		EclipseLinkJavaEntity entity = (EclipseLinkJavaEntity) getJavaPersistentType().getMapping();
-		JavaCaching caching = entity.getCaching();
-		
-		assertEquals(CacheCoordinationType.SEND_OBJECT_CHANGES, caching.getCoordinationType());
-		
-		JavaResourcePersistentType typeResource = getJpaProject().getJavaResourcePersistentType(FULLY_QUALIFIED_TYPE_NAME);
-		CacheAnnotation cacheAnnotation = (CacheAnnotation) typeResource.addSupportingAnnotation(EclipseLinkJPA.CACHE);
-		cacheAnnotation.setCoordinationType(org.eclipse.jpt.eclipselink.core.resource.java.CacheCoordinationType.INVALIDATE_CHANGED_OBJECTS);
-		
-		assertEquals(org.eclipse.jpt.eclipselink.core.resource.java.CacheCoordinationType.INVALIDATE_CHANGED_OBJECTS, cacheAnnotation.getCoordinationType());				
-		assertEquals(CacheCoordinationType.INVALIDATE_CHANGED_OBJECTS, entity.getCaching().getSpecifiedCoordinationType());
-		assertEquals(CacheCoordinationType.INVALIDATE_CHANGED_OBJECTS, entity.getCaching().getCoordinationType());
-	}
-	
-	public void testHasExistenceChecking() throws Exception {
-		createTestEntity();
-		addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
-		
-		EclipseLinkJavaEntity entity = (EclipseLinkJavaEntity) getJavaPersistentType().getMapping();
-		JavaCaching caching = entity.getCaching();
-		
-		assertEquals(false, caching.hasExistenceChecking());
-		
-		JavaResourcePersistentType typeResource = getJpaProject().getJavaResourcePersistentType(FULLY_QUALIFIED_TYPE_NAME);
-		typeResource.addSupportingAnnotation(EclipseLinkJPA.EXISTENCE_CHECKING);	
-		assertEquals(true, caching.hasExistenceChecking());
-	
-		typeResource.removeSupportingAnnotation(EclipseLinkJPA.EXISTENCE_CHECKING);
-		assertEquals(false, caching.hasExistenceChecking());
-	}
-	
-	public void testSetExistenceChecking() throws Exception {
-		createTestEntity();
-		addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
-		
-		EclipseLinkJavaEntity entity = (EclipseLinkJavaEntity) getJavaPersistentType().getMapping();
-		JavaCaching caching = entity.getCaching();
-		JavaResourcePersistentType typeResource = getJpaProject().getJavaResourcePersistentType(FULLY_QUALIFIED_TYPE_NAME);
-		
-		assertEquals(false, caching.hasExistenceChecking());
-		assertNull(typeResource.getSupportingAnnotation(EclipseLinkJPA.EXISTENCE_CHECKING));
-		
-		caching.setExistenceChecking(true);
-		
-		assertEquals(true, caching.hasExistenceChecking());
-		assertNotNull(typeResource.getSupportingAnnotation(EclipseLinkJPA.EXISTENCE_CHECKING));
-	}
-	
-	public void testGetDefaultExistenceType() throws Exception {
-		createTestEntity();
-		addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
-		
-		EclipseLinkJavaEntity entity = (EclipseLinkJavaEntity) getJavaPersistentType().getMapping();
-		JavaCaching caching = entity.getCaching();
-		
-		assertEquals(ExistenceType.CHECK_DATABASE, caching.getDefaultExistenceType());
-
-		caching.setExistenceChecking(true);
-		assertEquals(ExistenceType.CHECK_CACHE, caching.getDefaultExistenceType());
-	}
-	
-	public void testGetSpecifiedExistenceType() throws Exception {
-		createTestEntity();
-		addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
-		
-		EclipseLinkJavaEntity entity = (EclipseLinkJavaEntity) getJavaPersistentType().getMapping();
-		JavaCaching caching = entity.getCaching();
-		
-		assertEquals(ExistenceType.CHECK_DATABASE, caching.getExistenceType());
-		
-		JavaResourcePersistentType typeResource = getJpaProject().getJavaResourcePersistentType(FULLY_QUALIFIED_TYPE_NAME);
-		ExistenceCheckingAnnotation existenceCheckingAnnotation = (ExistenceCheckingAnnotation) typeResource.addSupportingAnnotation(EclipseLinkJPA.EXISTENCE_CHECKING);
-		existenceCheckingAnnotation.setValue(org.eclipse.jpt.eclipselink.core.resource.java.ExistenceType.ASSUME_NON_EXISTENCE);
-		
-		assertEquals(org.eclipse.jpt.eclipselink.core.resource.java.ExistenceType.ASSUME_NON_EXISTENCE, existenceCheckingAnnotation.getValue());				
-		assertEquals(ExistenceType.ASSUME_NON_EXISTENCE, entity.getCaching().getSpecifiedExistenceType());
-		assertEquals(ExistenceType.ASSUME_NON_EXISTENCE, entity.getCaching().getExistenceType());
-	}
-	
-	public void testSetSpecifiedExistenceType() throws Exception {
-		createTestEntity();
-		addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
-		
-		EclipseLinkJavaEntity entity = (EclipseLinkJavaEntity) getJavaPersistentType().getMapping();
-		JavaCaching caching = entity.getCaching();
-		
-		assertEquals(ExistenceType.CHECK_DATABASE, caching.getExistenceType());
-		
-		caching.setExistenceChecking(true);
-		caching.setSpecifiedExistenceType(ExistenceType.ASSUME_NON_EXISTENCE);
-		
-		
-		assertEquals(ExistenceType.ASSUME_NON_EXISTENCE, entity.getCaching().getSpecifiedExistenceType());
-		assertEquals(ExistenceType.ASSUME_NON_EXISTENCE, entity.getCaching().getExistenceType());
-		
-		JavaResourcePersistentType typeResource = getJpaProject().getJavaResourcePersistentType(FULLY_QUALIFIED_TYPE_NAME);
-		
-		ExistenceCheckingAnnotation existenceCheckingAnnotation = (ExistenceCheckingAnnotation) typeResource.getSupportingAnnotation(EclipseLinkJPA.EXISTENCE_CHECKING);
-		
-		assertEquals(org.eclipse.jpt.eclipselink.core.resource.java.ExistenceType.ASSUME_NON_EXISTENCE, existenceCheckingAnnotation.getValue());		
-
-	
-		//set specified coordination type to the same as the default, verify it is not set to default
-		caching.setSpecifiedExistenceType(ExistenceType.CHECK_DATABASE);
-		assertEquals(ExistenceType.CHECK_DATABASE, caching.getSpecifiedExistenceType());
-		assertEquals(org.eclipse.jpt.eclipselink.core.resource.java.ExistenceType.CHECK_DATABASE, existenceCheckingAnnotation.getValue());		
-		
-		caching.setSpecifiedExistenceType(null);
-		assertNull(caching.getSpecifiedExistenceType());
-		assertEquals(ExistenceType.CHECK_CACHE, caching.getExistenceType());
-	}
-
-	public void testGetExpiry() throws Exception {
-		createTestEntity();
-		addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
-		
-		EclipseLinkJavaEntity entity = (EclipseLinkJavaEntity) getJavaPersistentType().getMapping();
-		
-		assertNull(entity.getCaching().getExpiry());
-		
-		JavaResourcePersistentType typeResource = getJpaProject().getJavaResourcePersistentType(FULLY_QUALIFIED_TYPE_NAME);
-		CacheAnnotation cacheAnnotation = (CacheAnnotation) typeResource.addSupportingAnnotation(EclipseLinkJPA.CACHE);
-		assertNull(entity.getCaching().getExpiry());
-		
-		cacheAnnotation.setExpiry(Integer.valueOf(57));
-		
-		assertEquals(Integer.valueOf(57), entity.getCaching().getExpiry());
-		
-		typeResource.removeSupportingAnnotation(EclipseLinkJPA.CACHE);
-		assertNull(entity.getCaching().getExpiry());	
-	}
-	
-	public void testSetExpiry() throws Exception {
-		createTestEntity();
-		addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
-		
-		EclipseLinkJavaEntity entity = (EclipseLinkJavaEntity) getJavaPersistentType().getMapping();
-		JavaCaching caching = entity.getCaching();
-		
-		JavaResourcePersistentType typeResource = getJpaProject().getJavaResourcePersistentType(FULLY_QUALIFIED_TYPE_NAME);
-		
-		caching.setExpiry(Integer.valueOf(58));
-		CacheAnnotation cacheAnnotation = (CacheAnnotation) typeResource.getSupportingAnnotation(EclipseLinkJPA.CACHE);
-		assertEquals(Integer.valueOf(58), cacheAnnotation.getExpiry());
-		
-		
-		caching.setExpiry(null);
-		cacheAnnotation = (CacheAnnotation) typeResource.getSupportingAnnotation(EclipseLinkJPA.CACHE);
-		assertNull(cacheAnnotation);
-	}
-	
-	public void testSetExpiryUnsetsExpiryTimeOfDay() throws Exception {
-		createTestEntity();
-		addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
-		
-		EclipseLinkJavaEntity entity = (EclipseLinkJavaEntity) getJavaPersistentType().getMapping();
-		JavaCaching caching = entity.getCaching();
-		
-		JavaResourcePersistentType typeResource = getJpaProject().getJavaResourcePersistentType(FULLY_QUALIFIED_TYPE_NAME);
-		
-		caching.addExpiryTimeOfDay();
-		caching.getExpiryTimeOfDay().setHour(Integer.valueOf(5));
-		CacheAnnotation cacheAnnotation = (CacheAnnotation) typeResource.getSupportingAnnotation(EclipseLinkJPA.CACHE);
-		assertEquals(Integer.valueOf(5), cacheAnnotation.getExpiryTimeOfDay().getHour());
-		
-		caching.setExpiry(Integer.valueOf(900));
-		
-		assertNull(caching.getExpiryTimeOfDay());
-		assertNull(cacheAnnotation.getExpiryTimeOfDay());
-		assertEquals(Integer.valueOf(900), cacheAnnotation.getExpiry());	
-		assertEquals(Integer.valueOf(900), caching.getExpiry());	
-	}
-	
-	public void testGetTimeOfDayExpiry() throws Exception {
-		createTestEntity();
-		addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
-		
-		EclipseLinkJavaEntity entity = (EclipseLinkJavaEntity) getJavaPersistentType().getMapping();
-		JavaCaching caching = entity.getCaching();
-		
-		assertNull(caching.getExpiryTimeOfDay());
-		
-		JavaResourcePersistentType typeResource = getJpaProject().getJavaResourcePersistentType(FULLY_QUALIFIED_TYPE_NAME);
-		CacheAnnotation cacheAnnotation = (CacheAnnotation) typeResource.addSupportingAnnotation(EclipseLinkJPA.CACHE);
-
-		cacheAnnotation.addExpiryTimeOfDay();
-		
-		assertNotNull(caching.getExpiryTimeOfDay());
-	}
-	
-	public void testAddTimeOfDayExpiry() throws Exception {
-		createTestEntity();
-		addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
-		
-		EclipseLinkJavaEntity entity = (EclipseLinkJavaEntity) getJavaPersistentType().getMapping();
-		JavaCaching caching = entity.getCaching();
-		
-		assertNull(caching.getExpiryTimeOfDay());
-		
-		JavaResourcePersistentType typeResource = getJpaProject().getJavaResourcePersistentType(FULLY_QUALIFIED_TYPE_NAME);
-
-		ExpiryTimeOfDay timeOfDayExpiry = caching.addExpiryTimeOfDay();
-		
-		CacheAnnotation cacheAnnotation = (CacheAnnotation) typeResource.getSupportingAnnotation(EclipseLinkJPA.CACHE);
-		assertNotNull(cacheAnnotation.getExpiryTimeOfDay());
-		assertNotNull(caching.getExpiryTimeOfDay());
-		assertEquals(timeOfDayExpiry, caching.getExpiryTimeOfDay());
-	}
-	
-	public void testRemoveTimeOfDayExpiry() throws Exception {
-		createTestEntity();
-		addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
-		
-		EclipseLinkJavaEntity entity = (EclipseLinkJavaEntity) getJavaPersistentType().getMapping();
-		JavaCaching caching = entity.getCaching();
-		
-		assertNull(caching.getExpiryTimeOfDay());
-		
-		JavaResourcePersistentType typeResource = getJpaProject().getJavaResourcePersistentType(FULLY_QUALIFIED_TYPE_NAME);
-		CacheAnnotation cacheAnnotation = (CacheAnnotation) typeResource.addSupportingAnnotation(EclipseLinkJPA.CACHE);
-		cacheAnnotation.addExpiryTimeOfDay();
-
-		assertNotNull(caching.getExpiryTimeOfDay());
-		
-		caching.removeExpiryTimeOfDay();
-		assertNull(caching.getExpiryTimeOfDay());
-		assertNull(typeResource.getSupportingAnnotation(EclipseLinkJPA.CACHE));
-	}
-	
-	public void testAddTimeOfDayExpiryUnsetsExpiry() throws Exception {
-		createTestEntity();
-		addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
-		
-		EclipseLinkJavaEntity entity = (EclipseLinkJavaEntity) getJavaPersistentType().getMapping();
-		JavaCaching caching = entity.getCaching();
-		
-		JavaResourcePersistentType typeResource = getJpaProject().getJavaResourcePersistentType(FULLY_QUALIFIED_TYPE_NAME);
-		caching.setExpiry(Integer.valueOf(800));
-		CacheAnnotation cacheAnnotation = (CacheAnnotation) typeResource.getSupportingAnnotation(EclipseLinkJPA.CACHE);
-		assertEquals(Integer.valueOf(800), cacheAnnotation.getExpiry());	
-		
-		
-		caching.addExpiryTimeOfDay();
-
-		
-		assertNull(caching.getExpiry());
-		assertNull(cacheAnnotation.getExpiry());
-		assertNotNull(cacheAnnotation.getExpiryTimeOfDay());
-	}
-
-	
-	public void testSetSpecifiedSize() throws Exception {
-		createTestEntity();
-		addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
-		
-		EclipseLinkJavaEntity entity = (EclipseLinkJavaEntity) getJavaPersistentType().getMapping();
-		JavaCaching caching = entity.getCaching();
-		
-		assertEquals(100, caching.getSize());
-		
-		caching.setSpecifiedSize(new Integer(50));
-		
-		
-		assertEquals(new Integer(50), entity.getCaching().getSpecifiedSize());
-		assertEquals(50, entity.getCaching().getSize());
-		
-		JavaResourcePersistentType typeResource = getJpaProject().getJavaResourcePersistentType(FULLY_QUALIFIED_TYPE_NAME);
-		
-		CacheAnnotation cacheAnnotation = (CacheAnnotation) typeResource.getSupportingAnnotation(EclipseLinkJPA.CACHE);
-		
-		assertEquals(new Integer(50), cacheAnnotation.getSize());		
-	}
-	
-	public void testGetSpecifiedSize() throws Exception {
-		createTestEntity();
-		addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
-		
-		EclipseLinkJavaEntity entity = (EclipseLinkJavaEntity) getJavaPersistentType().getMapping();
-		JavaCaching caching = entity.getCaching();
-		
-		assertEquals(100, caching.getSize());
-		
-		JavaResourcePersistentType typeResource = getJpaProject().getJavaResourcePersistentType(FULLY_QUALIFIED_TYPE_NAME);
-		CacheAnnotation cacheAnnotation = (CacheAnnotation) typeResource.addSupportingAnnotation(EclipseLinkJPA.CACHE);
-		cacheAnnotation.setSize(new Integer(50));
-		
-		assertEquals(new Integer(50), cacheAnnotation.getSize());				
-		assertEquals(new Integer(50), entity.getCaching().getSpecifiedSize());
-		assertEquals(50, entity.getCaching().getSize());
-	}
-
-}
diff --git a/jpa/tests/org.eclipse.jpt.eclipselink.core.tests/src/org/eclipse/jpt/eclipselink/core/tests/internal/context/java/EclipseLinkJavaConvertTests.java b/jpa/tests/org.eclipse.jpt.eclipselink.core.tests/src/org/eclipse/jpt/eclipselink/core/tests/internal/context/java/EclipseLinkJavaConvertTests.java
deleted file mode 100644
index 736274b..0000000
--- a/jpa/tests/org.eclipse.jpt.eclipselink.core.tests/src/org/eclipse/jpt/eclipselink/core/tests/internal/context/java/EclipseLinkJavaConvertTests.java
+++ /dev/null
@@ -1,221 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.eclipselink.core.tests.internal.context.java;
-
-import java.util.Iterator;
-import org.eclipse.jdt.core.ICompilationUnit;
-import org.eclipse.jpt.core.context.BasicMapping;
-import org.eclipse.jpt.core.context.Converter;
-import org.eclipse.jpt.core.context.PersistentAttribute;
-import org.eclipse.jpt.core.resource.java.JPA;
-import org.eclipse.jpt.core.resource.java.JavaResourcePersistentAttribute;
-import org.eclipse.jpt.core.resource.java.JavaResourcePersistentType;
-import org.eclipse.jpt.eclipselink.core.context.Convert;
-import org.eclipse.jpt.eclipselink.core.context.EclipseLinkConverter;
-import org.eclipse.jpt.eclipselink.core.resource.java.ConvertAnnotation;
-import org.eclipse.jpt.eclipselink.core.resource.java.EclipseLinkJPA;
-import org.eclipse.jpt.eclipselink.core.resource.java.StructConverterAnnotation;
-import org.eclipse.jpt.eclipselink.core.resource.java.TypeConverterAnnotation;
-import org.eclipse.jpt.eclipselink.core.tests.internal.context.EclipseLinkContextModelTestCase;
-import org.eclipse.jpt.utility.internal.iterators.ArrayIterator;
-
-@SuppressWarnings("nls")
-public class EclipseLinkJavaConvertTests extends EclipseLinkContextModelTestCase
-{
-
-	private ICompilationUnit createTestEntityWithBasicMapping() throws Exception {
-		return this.createTestType(new DefaultAnnotationWriter() {
-			@Override
-			public Iterator<String> imports() {
-				return new ArrayIterator<String>(JPA.ENTITY, JPA.BASIC);
-			}
-			@Override
-			public void appendTypeAnnotationTo(StringBuilder sb) {
-				sb.append("@Entity").append(CR);
-			}
-			
-			@Override
-			public void appendIdFieldAnnotationTo(StringBuilder sb) {
-				sb.append("@Basic").append(CR);
-			}
-		});
-	}
-
-	
-	private ICompilationUnit createTestEntityWithConvert() throws Exception {
-		return this.createTestType(new DefaultAnnotationWriter() {
-			@Override
-			public Iterator<String> imports() {
-				return new ArrayIterator<String>(JPA.ENTITY, EclipseLinkJPA.CONVERT);
-			}
-			@Override
-			public void appendTypeAnnotationTo(StringBuilder sb) {
-				sb.append("@Entity").append(CR);
-			}
-			
-			@Override
-			public void appendIdFieldAnnotationTo(StringBuilder sb) {
-				sb.append("@Convert(\"class-instance\")").append(CR);
-			}
-		});
-	}
-	
-	private ICompilationUnit createTestEntityWithConvertAndTypeConverter() throws Exception {
-		return this.createTestType(new DefaultAnnotationWriter() {
-			@Override
-			public Iterator<String> imports() {
-				return new ArrayIterator<String>(JPA.ENTITY, EclipseLinkJPA.CONVERT, EclipseLinkJPA.TYPE_CONVERTER);
-			}
-			@Override
-			public void appendTypeAnnotationTo(StringBuilder sb) {
-				sb.append("@Entity");
-			}
-			
-			@Override
-			public void appendIdFieldAnnotationTo(StringBuilder sb) {
-				sb.append("@Convert(\"class-instance\")").append(CR);
-				sb.append("    @TypeConverter");
-			}
-		});
-	}
-	
-	public EclipseLinkJavaConvertTests(String name) {
-		super(name);
-	}
-
-
-	public void testGetConverterName() throws Exception {
-		createTestEntityWithBasicMapping();
-		addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
-		
-		JavaResourcePersistentType typeResource = getJpaProject().getJavaResourcePersistentType(FULLY_QUALIFIED_TYPE_NAME);
-		JavaResourcePersistentAttribute attributeResource = typeResource.persistableAttributes().next();
-		attributeResource.addSupportingAnnotation(ConvertAnnotation.ANNOTATION_NAME);
-		
-		PersistentAttribute persistentAttribute = getJavaPersistentType().attributes().next();
-		BasicMapping basicMapping = (BasicMapping) persistentAttribute.getSpecifiedMapping();
-		Convert eclipseLinkConvert = (Convert) basicMapping.getConverter();
-		
-		assertEquals(Convert.NO_CONVERTER, eclipseLinkConvert.getConverterName());
-		assertEquals(Convert.NO_CONVERTER, eclipseLinkConvert.getDefaultConverterName());
-		assertEquals(null, eclipseLinkConvert.getSpecifiedConverterName());
-	}
-	
-	public void testGetConvertName2() throws Exception {
-		createTestEntityWithConvert();
-		addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
-		
-		PersistentAttribute persistentAttribute = getJavaPersistentType().attributes().next();
-		BasicMapping basicMapping = (BasicMapping) persistentAttribute.getMapping();
-		Convert eclipseLinkConvert = (Convert) basicMapping.getConverter();
-
-		assertEquals(Convert.CLASS_INSTANCE_CONVERTER, eclipseLinkConvert.getConverterName());
-	}
-
-	public void testSetSpecifiedConverterName() throws Exception {
-		createTestEntityWithBasicMapping();
-		addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
-		
-		PersistentAttribute persistentAttribute = getJavaPersistentType().attributes().next();
-		BasicMapping basicMapping = (BasicMapping) persistentAttribute.getSpecifiedMapping();
-		basicMapping.setSpecifiedConverter(Convert.ECLIPSE_LINK_CONVERTER);
-		Convert eclipseLinkConvert = (Convert) basicMapping.getConverter();
-		assertEquals(null, eclipseLinkConvert.getSpecifiedConverterName());
-		
-		eclipseLinkConvert.setSpecifiedConverterName("foo");
-		
-		JavaResourcePersistentType typeResource = getJpaProject().getJavaResourcePersistentType(FULLY_QUALIFIED_TYPE_NAME);
-		JavaResourcePersistentAttribute attributeResource = typeResource.persistableAttributes().next();
-		ConvertAnnotation convertAnnotation = (ConvertAnnotation) attributeResource.getSupportingAnnotation(ConvertAnnotation.ANNOTATION_NAME);
-		
-		assertEquals("foo", convertAnnotation.getValue());
-		
-		eclipseLinkConvert.setSpecifiedConverterName(null);
-		convertAnnotation = (ConvertAnnotation) attributeResource.getSupportingAnnotation(ConvertAnnotation.ANNOTATION_NAME);
-		assertNotNull(convertAnnotation);
-		assertEquals(null, convertAnnotation.getValue());
-	}
-	
-	public void testGetConverterNameUpdatesFromResourceModelChange() throws Exception {
-		createTestEntityWithBasicMapping();
-		addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
-		
-		PersistentAttribute persistentAttribute = getJavaPersistentType().attributes().next();
-		BasicMapping basicMapping = (BasicMapping) persistentAttribute.getSpecifiedMapping();
-
-		assertEquals(Converter.NO_CONVERTER, basicMapping.getConverter().getType());
-		
-		
-		JavaResourcePersistentType typeResource = getJpaProject().getJavaResourcePersistentType(FULLY_QUALIFIED_TYPE_NAME);
-		JavaResourcePersistentAttribute attributeResource = typeResource.persistableAttributes().next();
-		ConvertAnnotation convert = (ConvertAnnotation) attributeResource.addSupportingAnnotation(ConvertAnnotation.ANNOTATION_NAME);
-		convert.setValue("foo");
-		
-		assertEquals(Convert.ECLIPSE_LINK_CONVERTER, basicMapping.getConverter().getType());
-		assertEquals("foo", ((Convert) basicMapping.getConverter()).getConverterName());
-		
-		attributeResource.removeSupportingAnnotation(ConvertAnnotation.ANNOTATION_NAME);
-		
-		assertEquals(Converter.NO_CONVERTER, basicMapping.getConverter().getType());
-		assertFalse(basicMapping.isDefault());
-		assertSame(basicMapping, persistentAttribute.getSpecifiedMapping());
-	}
-	
-
-	public void testGetConverter() throws Exception {
-		createTestEntityWithConvertAndTypeConverter();
-		addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
-		
-		PersistentAttribute persistentAttribute = getJavaPersistentType().attributes().next();
-		BasicMapping basicMapping = (BasicMapping) persistentAttribute.getMapping();
-		Convert eclipseLinkConvert = (Convert) basicMapping.getConverter();
-		
-		assertEquals(EclipseLinkConverter.TYPE_CONVERTER, eclipseLinkConvert.getConverter().getType());
-	}
-	
-	public void testSetConverter() throws Exception {
-		createTestEntityWithConvert();
-		addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
-		
-		PersistentAttribute persistentAttribute = getJavaPersistentType().attributes().next();
-		BasicMapping basicMapping = (BasicMapping) persistentAttribute.getMapping();
-		Convert eclipseLinkConvert = (Convert) basicMapping.getConverter();
-		
-		assertEquals(null, eclipseLinkConvert.getConverter());
-		
-		eclipseLinkConvert.setConverter(EclipseLinkConverter.TYPE_CONVERTER);	
-		assertEquals(EclipseLinkConverter.TYPE_CONVERTER, eclipseLinkConvert.getConverter().getType());
-	
-		JavaResourcePersistentType typeResource = getJpaProject().getJavaResourcePersistentType(FULLY_QUALIFIED_TYPE_NAME);
-		JavaResourcePersistentAttribute attributeResource = typeResource.persistableAttributes().next();
-		assertNotNull(attributeResource.getSupportingAnnotation(TypeConverterAnnotation.ANNOTATION_NAME));
-		
-		eclipseLinkConvert.setConverter(EclipseLinkConverter.STRUCT_CONVERTER);
-		assertEquals(EclipseLinkConverter.STRUCT_CONVERTER, eclipseLinkConvert.getConverter().getType());
-		assertNotNull(attributeResource.getSupportingAnnotation(StructConverterAnnotation.ANNOTATION_NAME));
-		assertNull(attributeResource.getSupportingAnnotation(TypeConverterAnnotation.ANNOTATION_NAME));
-
-		eclipseLinkConvert.setConverter(EclipseLinkConverter.NO_CONVERTER);
-		assertEquals(null, eclipseLinkConvert.getConverter());
-		assertNull(attributeResource.getSupportingAnnotation(StructConverterAnnotation.ANNOTATION_NAME));
-		assertNull(attributeResource.getSupportingAnnotation(TypeConverterAnnotation.ANNOTATION_NAME));
-		
-		eclipseLinkConvert.setConverter(EclipseLinkConverter.STRUCT_CONVERTER);
-		assertEquals(EclipseLinkConverter.STRUCT_CONVERTER, eclipseLinkConvert.getConverter().getType());
-		assertNotNull(attributeResource.getSupportingAnnotation(StructConverterAnnotation.ANNOTATION_NAME));
-
-		
-		basicMapping.setSpecifiedConverter(null);
-		assertNull(attributeResource.getSupportingAnnotation(StructConverterAnnotation.ANNOTATION_NAME));
-		assertNull(attributeResource.getSupportingAnnotation(ConvertAnnotation.ANNOTATION_NAME));
-		
-	}
-
-}
diff --git a/jpa/tests/org.eclipse.jpt.eclipselink.core.tests/src/org/eclipse/jpt/eclipselink/core/tests/internal/context/java/EclipseLinkJavaConverterTests.java b/jpa/tests/org.eclipse.jpt.eclipselink.core.tests/src/org/eclipse/jpt/eclipselink/core/tests/internal/context/java/EclipseLinkJavaConverterTests.java
deleted file mode 100644
index 2628328..0000000
--- a/jpa/tests/org.eclipse.jpt.eclipselink.core.tests/src/org/eclipse/jpt/eclipselink/core/tests/internal/context/java/EclipseLinkJavaConverterTests.java
+++ /dev/null
@@ -1,214 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.eclipselink.core.tests.internal.context.java;
-
-import java.util.Iterator;
-import org.eclipse.jdt.core.ICompilationUnit;
-import org.eclipse.jpt.core.context.BasicMapping;
-import org.eclipse.jpt.core.context.PersistentAttribute;
-import org.eclipse.jpt.core.resource.java.JPA;
-import org.eclipse.jpt.core.resource.java.JavaResourcePersistentAttribute;
-import org.eclipse.jpt.core.resource.java.JavaResourcePersistentType;
-import org.eclipse.jpt.eclipselink.core.context.Convert;
-import org.eclipse.jpt.eclipselink.core.context.CustomConverter;
-import org.eclipse.jpt.eclipselink.core.resource.java.ConverterAnnotation;
-import org.eclipse.jpt.eclipselink.core.resource.java.EclipseLinkJPA;
-import org.eclipse.jpt.eclipselink.core.tests.internal.context.EclipseLinkContextModelTestCase;
-import org.eclipse.jpt.utility.internal.iterators.ArrayIterator;
-
-@SuppressWarnings("nls")
-public class EclipseLinkJavaConverterTests extends EclipseLinkContextModelTestCase
-{
-
-	
-	private ICompilationUnit createTestEntityWithConvertAndConverter() throws Exception {
-		return this.createTestType(new DefaultAnnotationWriter() {
-			@Override
-			public Iterator<String> imports() {
-				return new ArrayIterator<String>(JPA.ENTITY, EclipseLinkJPA.CONVERT, EclipseLinkJPA.CONVERTER);
-			}
-			@Override
-			public void appendTypeAnnotationTo(StringBuilder sb) {
-				sb.append("@Entity");
-			}
-			
-			@Override
-			public void appendIdFieldAnnotationTo(StringBuilder sb) {
-				sb.append("@Convert(\"foo\")").append(CR);
-				sb.append("    @Converter(name=\"foo\"");
-			}
-		});
-	}
-	
-	private ICompilationUnit createTestEntityWithConvertAndConverterClass() throws Exception {
-		return this.createTestType(new DefaultAnnotationWriter() {
-			@Override
-			public Iterator<String> imports() {
-				return new ArrayIterator<String>(JPA.ENTITY, EclipseLinkJPA.CONVERT, EclipseLinkJPA.CONVERTER);
-			}
-			@Override
-			public void appendTypeAnnotationTo(StringBuilder sb) {
-				sb.append("@Entity");
-			}
-			
-			@Override
-			public void appendIdFieldAnnotationTo(StringBuilder sb) {
-				sb.append("@Convert(\"foo\")").append(CR);
-				sb.append("    @Converter(converterClass=Foo.class");
-			}
-		});
-	}
-	
-	public EclipseLinkJavaConverterTests(String name) {
-		super(name);
-	}
-
-
-	public void testGetName() throws Exception {
-		createTestEntityWithConvertAndConverter();
-		addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
-		
-		PersistentAttribute persistentAttribute = getJavaPersistentType().attributes().next();
-		BasicMapping basicMapping = (BasicMapping) persistentAttribute.getMapping();
-		Convert eclipseLinkConvert = (Convert) basicMapping.getConverter();
-		CustomConverter converter = (CustomConverter) eclipseLinkConvert.getConverter();
-		
-		assertEquals("foo", converter.getName());
-	}
-
-	public void testSetName() throws Exception {
-		createTestEntityWithConvertAndConverter();
-		addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
-		
-		PersistentAttribute persistentAttribute = getJavaPersistentType().attributes().next();
-		BasicMapping basicMapping = (BasicMapping) persistentAttribute.getMapping();
-		Convert eclipseLinkConvert = (Convert) basicMapping.getConverter();
-		CustomConverter converter = (CustomConverter) eclipseLinkConvert.getConverter();
-		assertEquals("foo", converter.getName());
-		
-		converter.setName("bar");
-		assertEquals("bar", converter.getName());
-			
-		JavaResourcePersistentType typeResource = getJpaProject().getJavaResourcePersistentType(FULLY_QUALIFIED_TYPE_NAME);
-		JavaResourcePersistentAttribute attributeResource = typeResource.persistableAttributes().next();
-		ConverterAnnotation converterAnnotation = (ConverterAnnotation) attributeResource.getSupportingAnnotation(ConverterAnnotation.ANNOTATION_NAME);		
-		assertEquals("bar", converterAnnotation.getName());
-
-		
-		converter.setName(null);
-		assertEquals(null, converter.getName());
-		converterAnnotation = (ConverterAnnotation) attributeResource.getSupportingAnnotation(ConverterAnnotation.ANNOTATION_NAME);		
-		assertEquals(null, converterAnnotation.getName());
-
-
-		converter.setName("bar");
-		assertEquals("bar", converter.getName());
-		converterAnnotation = (ConverterAnnotation) attributeResource.getSupportingAnnotation(ConverterAnnotation.ANNOTATION_NAME);		
-		assertEquals("bar", converterAnnotation.getName());
-	}
-	
-	public void testGetNameUpdatesFromResourceModelChange() throws Exception {
-		createTestEntityWithConvertAndConverter();
-		addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
-				
-		PersistentAttribute persistentAttribute = getJavaPersistentType().attributes().next();
-		BasicMapping basicMapping = (BasicMapping) persistentAttribute.getMapping();
-		Convert eclipseLinkConvert = (Convert) basicMapping.getConverter();
-		CustomConverter converter = (CustomConverter) eclipseLinkConvert.getConverter();
-
-		assertEquals("foo", converter.getName());
-		
-		JavaResourcePersistentType typeResource = getJpaProject().getJavaResourcePersistentType(FULLY_QUALIFIED_TYPE_NAME);
-		JavaResourcePersistentAttribute attributeResource = typeResource.persistableAttributes().next();
-		ConverterAnnotation converterAnnotation = (ConverterAnnotation) attributeResource.getSupportingAnnotation(ConverterAnnotation.ANNOTATION_NAME);
-		converterAnnotation.setName("bar");
-		assertEquals("bar", converter.getName());
-		
-		attributeResource.removeSupportingAnnotation(ConverterAnnotation.ANNOTATION_NAME);
-		assertEquals(null, eclipseLinkConvert.getConverter());
-		
-		converterAnnotation = (ConverterAnnotation) attributeResource.addSupportingAnnotation(ConverterAnnotation.ANNOTATION_NAME);		
-		assertNotNull(eclipseLinkConvert.getConverter());
-		
-		converterAnnotation.setName("FOO");
-		assertEquals("FOO", eclipseLinkConvert.getConverter().getName());	
-	}
-	
-
-	public void testGetConverterClass() throws Exception {
-		createTestEntityWithConvertAndConverterClass();
-		addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
-		
-		PersistentAttribute persistentAttribute = getJavaPersistentType().attributes().next();
-		BasicMapping basicMapping = (BasicMapping) persistentAttribute.getMapping();
-		Convert eclipseLinkConvert = (Convert) basicMapping.getConverter();
-		CustomConverter converter = (CustomConverter) eclipseLinkConvert.getConverter();
-		
-		assertEquals("Foo", converter.getConverterClass());
-	}
-
-	public void testSetConverterClass() throws Exception {
-		createTestEntityWithConvertAndConverterClass();
-		addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
-		
-		PersistentAttribute persistentAttribute = getJavaPersistentType().attributes().next();
-		BasicMapping basicMapping = (BasicMapping) persistentAttribute.getMapping();
-		Convert eclipseLinkConvert = (Convert) basicMapping.getConverter();
-		CustomConverter converter = (CustomConverter) eclipseLinkConvert.getConverter();
-		assertEquals("Foo", converter.getConverterClass());
-		
-		converter.setConverterClass("Bar");
-		assertEquals("Bar", converter.getConverterClass());
-			
-		JavaResourcePersistentType typeResource = getJpaProject().getJavaResourcePersistentType(FULLY_QUALIFIED_TYPE_NAME);
-		JavaResourcePersistentAttribute attributeResource = typeResource.persistableAttributes().next();
-		ConverterAnnotation converterAnnotation = (ConverterAnnotation) attributeResource.getSupportingAnnotation(ConverterAnnotation.ANNOTATION_NAME);		
-		assertEquals("Bar", converterAnnotation.getConverterClass());
-
-		
-		converter.setConverterClass(null);
-		assertEquals(null, converter.getConverterClass());
-		converterAnnotation = (ConverterAnnotation) attributeResource.getSupportingAnnotation(ConverterAnnotation.ANNOTATION_NAME);		
-		assertEquals(null, converterAnnotation.getConverterClass());
-
-
-		converter.setConverterClass("Bar");
-		assertEquals("Bar", converter.getConverterClass());
-		converterAnnotation = (ConverterAnnotation) attributeResource.getSupportingAnnotation(ConverterAnnotation.ANNOTATION_NAME);		
-		assertEquals("Bar", converterAnnotation.getConverterClass());
-	}
-	
-	public void testGetConverterClassUpdatesFromResourceModelChange() throws Exception {
-		createTestEntityWithConvertAndConverterClass();
-		addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
-				
-		PersistentAttribute persistentAttribute = getJavaPersistentType().attributes().next();
-		BasicMapping basicMapping = (BasicMapping) persistentAttribute.getMapping();
-		Convert eclipseLinkConvert = (Convert) basicMapping.getConverter();
-		CustomConverter converter = (CustomConverter) eclipseLinkConvert.getConverter();
-
-		assertEquals("Foo", converter.getConverterClass());
-		
-		JavaResourcePersistentType typeResource = getJpaProject().getJavaResourcePersistentType(FULLY_QUALIFIED_TYPE_NAME);
-		JavaResourcePersistentAttribute attributeResource = typeResource.persistableAttributes().next();
-		ConverterAnnotation converterAnnotation = (ConverterAnnotation) attributeResource.getSupportingAnnotation(ConverterAnnotation.ANNOTATION_NAME);
-		converterAnnotation.setConverterClass("Bar");
-		assertEquals("Bar", converter.getConverterClass());
-		
-		attributeResource.removeSupportingAnnotation(ConverterAnnotation.ANNOTATION_NAME);
-		assertEquals(null, eclipseLinkConvert.getConverter());
-		
-		converterAnnotation = (ConverterAnnotation) attributeResource.addSupportingAnnotation(ConverterAnnotation.ANNOTATION_NAME);		
-		assertNotNull(eclipseLinkConvert.getConverter());
-		
-		converterAnnotation.setConverterClass("FooBar");
-		assertEquals("FooBar", ((CustomConverter) eclipseLinkConvert.getConverter()).getConverterClass());	
-	}
-}
diff --git a/jpa/tests/org.eclipse.jpt.eclipselink.core.tests/src/org/eclipse/jpt/eclipselink/core/tests/internal/context/java/EclipseLinkJavaEmbeddableTests.java b/jpa/tests/org.eclipse.jpt.eclipselink.core.tests/src/org/eclipse/jpt/eclipselink/core/tests/internal/context/java/EclipseLinkJavaEmbeddableTests.java
deleted file mode 100644
index 321bf34..0000000
--- a/jpa/tests/org.eclipse.jpt.eclipselink.core.tests/src/org/eclipse/jpt/eclipselink/core/tests/internal/context/java/EclipseLinkJavaEmbeddableTests.java
+++ /dev/null
@@ -1,251 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008, 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.eclipselink.core.tests.internal.context.java;
-
-import java.util.Iterator;
-
-import org.eclipse.jdt.core.ICompilationUnit;
-import org.eclipse.jpt.core.resource.java.JPA;
-import org.eclipse.jpt.core.resource.java.JavaResourcePersistentType;
-import org.eclipse.jpt.eclipselink.core.context.ChangeTracking;
-import org.eclipse.jpt.eclipselink.core.context.ChangeTrackingType;
-import org.eclipse.jpt.eclipselink.core.context.Customizer;
-import org.eclipse.jpt.eclipselink.core.context.EclipseLinkEmbeddable;
-import org.eclipse.jpt.eclipselink.core.resource.java.ChangeTrackingAnnotation;
-import org.eclipse.jpt.eclipselink.core.resource.java.CustomizerAnnotation;
-import org.eclipse.jpt.eclipselink.core.resource.java.EclipseLinkJPA;
-import org.eclipse.jpt.eclipselink.core.tests.internal.context.EclipseLinkContextModelTestCase;
-import org.eclipse.jpt.utility.internal.iterators.ArrayIterator;
-
-@SuppressWarnings("nls")
-public class EclipseLinkJavaEmbeddableTests extends EclipseLinkContextModelTestCase
-{
-	
-	private ICompilationUnit createTestEmbeddableWithConvertAndCustomizerClass() throws Exception {
-		return this.createTestType(new DefaultAnnotationWriter() {
-			@Override
-			public Iterator<String> imports() {
-				return new ArrayIterator<String>(JPA.EMBEDDABLE, EclipseLinkJPA.CUSTOMIZER);
-			}
-			@Override
-			public void appendTypeAnnotationTo(StringBuilder sb) {
-				sb.append("@Embeddable").append(CR);
-				sb.append("    @Customizer(Foo.class");
-			}
-		});
-	}
-	
-	private ICompilationUnit createTestEmbeddableWithChangeTracking() throws Exception {
-		return this.createTestType(new DefaultAnnotationWriter() {
-			@Override
-			public Iterator<String> imports() {
-				return new ArrayIterator<String>(JPA.EMBEDDABLE, EclipseLinkJPA.CHANGE_TRACKING);
-			}
-			@Override
-			public void appendTypeAnnotationTo(StringBuilder sb) {
-				sb.append("@Embeddable").append(CR);
-				sb.append("    @ChangeTracking").append(CR);
-			}
-		});
-	}
-
-	public EclipseLinkJavaEmbeddableTests(String name) {
-		super(name);
-	}
-
-
-	public void testGetCustomizerClass() throws Exception {
-		createTestEmbeddableWithConvertAndCustomizerClass();
-		addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
-		
-		Customizer customizer = ((EclipseLinkEmbeddable) getJavaPersistentType().getMapping()).getCustomizer();
-		
-		assertEquals("Foo", customizer.getSpecifiedCustomizerClass());
-	}
-
-	public void testSetCustomizerClass() throws Exception {
-		createTestEmbeddableWithConvertAndCustomizerClass();
-		addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
-		
-		Customizer customizer = ((EclipseLinkEmbeddable) getJavaPersistentType().getMapping()).getCustomizer();
-		assertEquals("Foo", customizer.getSpecifiedCustomizerClass());
-		
-		customizer.setSpecifiedCustomizerClass("Bar");
-		assertEquals("Bar", customizer.getSpecifiedCustomizerClass());
-			
-		JavaResourcePersistentType typeResource = getJpaProject().getJavaResourcePersistentType(FULLY_QUALIFIED_TYPE_NAME);
-		CustomizerAnnotation customizerAnnotation = (CustomizerAnnotation) typeResource.getSupportingAnnotation(CustomizerAnnotation.ANNOTATION_NAME);		
-		assertEquals("Bar", customizerAnnotation.getValue());
-
-		
-		customizer.setSpecifiedCustomizerClass(null);
-		assertEquals(null, customizer.getSpecifiedCustomizerClass());
-		customizerAnnotation = (CustomizerAnnotation) typeResource.getSupportingAnnotation(CustomizerAnnotation.ANNOTATION_NAME);		
-		assertEquals(null, customizerAnnotation);
-
-
-		customizer.setSpecifiedCustomizerClass("Bar");
-		assertEquals("Bar", customizer.getSpecifiedCustomizerClass());
-		customizerAnnotation = (CustomizerAnnotation) typeResource.getSupportingAnnotation(CustomizerAnnotation.ANNOTATION_NAME);		
-		assertEquals("Bar", customizerAnnotation.getValue());
-	}
-	
-	public void testGetCustomizerClassUpdatesFromResourceModelChange() throws Exception {
-		createTestEmbeddableWithConvertAndCustomizerClass();
-		addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
-		EclipseLinkEmbeddable embeddable = (EclipseLinkEmbeddable) getJavaPersistentType().getMapping();
-		Customizer customizer = embeddable.getCustomizer();
-
-		assertEquals("Foo", customizer.getSpecifiedCustomizerClass());
-		
-		JavaResourcePersistentType typeResource = getJpaProject().getJavaResourcePersistentType(FULLY_QUALIFIED_TYPE_NAME);
-		CustomizerAnnotation customizerAnnotation = (CustomizerAnnotation) typeResource.getSupportingAnnotation(CustomizerAnnotation.ANNOTATION_NAME);
-		customizerAnnotation.setValue("Bar");
-		assertEquals("Bar", customizer.getSpecifiedCustomizerClass());
-		
-		typeResource.removeSupportingAnnotation(CustomizerAnnotation.ANNOTATION_NAME);
-		assertEquals(null, customizer.getSpecifiedCustomizerClass());
-		
-		customizerAnnotation = (CustomizerAnnotation) typeResource.addSupportingAnnotation(CustomizerAnnotation.ANNOTATION_NAME);		
-		assertEquals(null, customizer.getSpecifiedCustomizerClass());
-		
-		customizerAnnotation.setValue("FooBar");
-		assertEquals("FooBar", customizer.getSpecifiedCustomizerClass());	
-	}
-	
-	public void testGetChangeTracking() throws Exception {
-		createTestEmbeddableWithChangeTracking();
-		addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
-		
-		EclipseLinkEmbeddable embeddable = (EclipseLinkEmbeddable) getJavaPersistentType().getMapping();
-		ChangeTracking contextChangeTracking = embeddable.getChangeTracking();
-		JavaResourcePersistentType typeResource = getJpaProject().getJavaResourcePersistentType(FULLY_QUALIFIED_TYPE_NAME);
-		ChangeTrackingAnnotation resourceChangeTracking = (ChangeTrackingAnnotation) typeResource.getSupportingAnnotation(ChangeTrackingAnnotation.ANNOTATION_NAME);
-		
-		// base annotated, test context value
-		
-		assertNull(resourceChangeTracking.getValue());
-		assertEquals(ChangeTrackingType.AUTO, contextChangeTracking.getType());
-		assertEquals(ChangeTrackingType.AUTO, contextChangeTracking.getDefaultType());
-		assertEquals(ChangeTrackingType.AUTO, contextChangeTracking.getSpecifiedType());
-		
-		// change resource to ATTRIBUTE specifically, test context
-		
-		resourceChangeTracking.setValue(org.eclipse.jpt.eclipselink.core.resource.java.ChangeTrackingType.ATTRIBUTE);
-		
-		assertEquals(org.eclipse.jpt.eclipselink.core.resource.java.ChangeTrackingType.ATTRIBUTE, resourceChangeTracking.getValue());
-		assertEquals(ChangeTrackingType.ATTRIBUTE, contextChangeTracking.getType());
-		assertEquals(ChangeTrackingType.AUTO, contextChangeTracking.getDefaultType());
-		assertEquals(ChangeTrackingType.ATTRIBUTE, contextChangeTracking.getSpecifiedType());
-		
-		// change resource to OBJECT specifically, test context
-		
-		resourceChangeTracking.setValue(org.eclipse.jpt.eclipselink.core.resource.java.ChangeTrackingType.OBJECT);
-		
-		assertEquals(org.eclipse.jpt.eclipselink.core.resource.java.ChangeTrackingType.OBJECT, resourceChangeTracking.getValue());
-		assertEquals(ChangeTrackingType.OBJECT, contextChangeTracking.getType());
-		assertEquals(ChangeTrackingType.AUTO, contextChangeTracking.getDefaultType());
-		assertEquals(ChangeTrackingType.OBJECT, contextChangeTracking.getSpecifiedType());
-		
-		// change resource to DEFERRED specifically, test context
-		
-		resourceChangeTracking.setValue(org.eclipse.jpt.eclipselink.core.resource.java.ChangeTrackingType.DEFERRED);
-		
-		assertEquals(org.eclipse.jpt.eclipselink.core.resource.java.ChangeTrackingType.DEFERRED, resourceChangeTracking.getValue());
-		assertEquals(ChangeTrackingType.DEFERRED, contextChangeTracking.getType());
-		assertEquals(ChangeTrackingType.AUTO, contextChangeTracking.getDefaultType());
-		assertEquals(ChangeTrackingType.DEFERRED, contextChangeTracking.getSpecifiedType());
-		
-		// change resource to AUTO specifically, test context
-		
-		resourceChangeTracking.setValue(org.eclipse.jpt.eclipselink.core.resource.java.ChangeTrackingType.AUTO);
-		
-		assertEquals(org.eclipse.jpt.eclipselink.core.resource.java.ChangeTrackingType.AUTO, resourceChangeTracking.getValue());
-		assertEquals(ChangeTrackingType.AUTO, contextChangeTracking.getType());
-		assertEquals(ChangeTrackingType.AUTO, contextChangeTracking.getDefaultType());
-		assertEquals(ChangeTrackingType.AUTO, contextChangeTracking.getSpecifiedType());
-		
-		// remove value from resource, test context
-		
-		resourceChangeTracking.setValue(null);
-		
-		assertNull(resourceChangeTracking.getValue());
-		assertEquals(ChangeTrackingType.AUTO, contextChangeTracking.getType());
-		assertEquals(ChangeTrackingType.AUTO, contextChangeTracking.getDefaultType());
-		assertEquals(ChangeTrackingType.AUTO, contextChangeTracking.getSpecifiedType());
-		
-		// remove annotation, text context
-		
-		typeResource.removeSupportingAnnotation(ChangeTrackingAnnotation.ANNOTATION_NAME);
-		
-		assertNull(resourceChangeTracking.getValue());
-		assertEquals(ChangeTrackingType.AUTO, contextChangeTracking.getType());
-		assertEquals(ChangeTrackingType.AUTO, contextChangeTracking.getDefaultType());
-		assertNull(contextChangeTracking.getSpecifiedType());
-	}
-	
-	public void testSetChangeTracking() throws Exception {
-		createTestEmbeddableWithChangeTracking();
-		addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
-		
-		EclipseLinkEmbeddable embeddable = (EclipseLinkEmbeddable) getJavaPersistentType().getMapping();
-		ChangeTracking contextChangeTracking = embeddable.getChangeTracking();
-		JavaResourcePersistentType typeResource = getJpaProject().getJavaResourcePersistentType(FULLY_QUALIFIED_TYPE_NAME);
-		ChangeTrackingAnnotation resourceChangeTracking = (ChangeTrackingAnnotation) typeResource.getSupportingAnnotation(ChangeTrackingAnnotation.ANNOTATION_NAME);
-		
-		// base annotated, test resource value
-		
-		assertNull(resourceChangeTracking.getValue());
-		assertEquals(ChangeTrackingType.AUTO, contextChangeTracking.getSpecifiedType());
-		
-		// change context to AUTO specifically, test resource
-		
-		contextChangeTracking.setSpecifiedType(ChangeTrackingType.AUTO);
-		
-		assertNull(resourceChangeTracking.getValue());
-		assertEquals(ChangeTrackingType.AUTO, contextChangeTracking.getSpecifiedType());
-		
-		// change context to ATTRIBUTE specifically, test resource
-		
-		contextChangeTracking.setSpecifiedType(ChangeTrackingType.ATTRIBUTE);
-		
-		assertEquals(org.eclipse.jpt.eclipselink.core.resource.java.ChangeTrackingType.ATTRIBUTE, resourceChangeTracking.getValue());
-		assertEquals(ChangeTrackingType.ATTRIBUTE, contextChangeTracking.getSpecifiedType());
-		
-		// change context to OBJECT specifically, test resource
-		
-		contextChangeTracking.setSpecifiedType(ChangeTrackingType.OBJECT);
-		
-		assertEquals(org.eclipse.jpt.eclipselink.core.resource.java.ChangeTrackingType.OBJECT, resourceChangeTracking.getValue());
-		assertEquals(ChangeTrackingType.OBJECT, contextChangeTracking.getSpecifiedType());
-		
-		// change context to DEFERRED specifically, test resource
-		
-		contextChangeTracking.setSpecifiedType(ChangeTrackingType.DEFERRED);
-		
-		assertEquals(org.eclipse.jpt.eclipselink.core.resource.java.ChangeTrackingType.DEFERRED, resourceChangeTracking.getValue());
-		assertEquals(ChangeTrackingType.DEFERRED, contextChangeTracking.getSpecifiedType());
-		
-		// change context to null, test resource
-		
-		contextChangeTracking.setSpecifiedType(null);
-		
-		assertNull(typeResource.getSupportingAnnotation(ChangeTrackingAnnotation.ANNOTATION_NAME));
-		assertNull(contextChangeTracking.getSpecifiedType());
-		
-		// change context to AUTO specifically (this time from no annotation), test resource
-		
-		contextChangeTracking.setSpecifiedType(ChangeTrackingType.AUTO);
-		resourceChangeTracking = (ChangeTrackingAnnotation) typeResource.getSupportingAnnotation(ChangeTrackingAnnotation.ANNOTATION_NAME);
-		
-		assertEquals(org.eclipse.jpt.eclipselink.core.resource.java.ChangeTrackingType.AUTO, resourceChangeTracking.getValue());
-		assertEquals(ChangeTrackingType.AUTO, contextChangeTracking.getSpecifiedType());
-	}
-}
\ No newline at end of file
diff --git a/jpa/tests/org.eclipse.jpt.eclipselink.core.tests/src/org/eclipse/jpt/eclipselink/core/tests/internal/context/java/EclipseLinkJavaEntityTests.java b/jpa/tests/org.eclipse.jpt.eclipselink.core.tests/src/org/eclipse/jpt/eclipselink/core/tests/internal/context/java/EclipseLinkJavaEntityTests.java
deleted file mode 100644
index c5d70ec..0000000
--- a/jpa/tests/org.eclipse.jpt.eclipselink.core.tests/src/org/eclipse/jpt/eclipselink/core/tests/internal/context/java/EclipseLinkJavaEntityTests.java
+++ /dev/null
@@ -1,338 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008, 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.eclipselink.core.tests.internal.context.java;
-
-import java.util.Iterator;
-import org.eclipse.jdt.core.ICompilationUnit;
-import org.eclipse.jpt.core.resource.java.JPA;
-import org.eclipse.jpt.core.resource.java.JavaResourcePersistentType;
-import org.eclipse.jpt.eclipselink.core.context.ChangeTracking;
-import org.eclipse.jpt.eclipselink.core.context.ChangeTrackingType;
-import org.eclipse.jpt.eclipselink.core.context.Customizer;
-import org.eclipse.jpt.eclipselink.core.context.EclipseLinkEntity;
-import org.eclipse.jpt.eclipselink.core.context.ReadOnly;
-import org.eclipse.jpt.eclipselink.core.resource.java.ChangeTrackingAnnotation;
-import org.eclipse.jpt.eclipselink.core.resource.java.CustomizerAnnotation;
-import org.eclipse.jpt.eclipselink.core.resource.java.EclipseLinkJPA;
-import org.eclipse.jpt.eclipselink.core.resource.java.ReadOnlyAnnotation;
-import org.eclipse.jpt.eclipselink.core.tests.internal.context.EclipseLinkContextModelTestCase;
-import org.eclipse.jpt.utility.internal.iterators.ArrayIterator;
-
-@SuppressWarnings("nls")
-public class EclipseLinkJavaEntityTests extends EclipseLinkContextModelTestCase
-{
-	
-	private ICompilationUnit createTestEntityWithConvertAndCustomizerClass() throws Exception {
-		return this.createTestType(new DefaultAnnotationWriter() {
-			@Override
-			public Iterator<String> imports() {
-				return new ArrayIterator<String>(JPA.ENTITY, EclipseLinkJPA.CUSTOMIZER);
-			}
-			@Override
-			public void appendTypeAnnotationTo(StringBuilder sb) {
-				sb.append("@Entity").append(CR);
-				sb.append("    @Customizer(Foo.class");
-			}
-		});
-	}
-	
-	private ICompilationUnit createTestEntityWithChangeTracking() throws Exception {		
-		return this.createTestType(new DefaultAnnotationWriter() {
-			@Override
-			public Iterator<String> imports() {
-				return new ArrayIterator<String>(JPA.ENTITY, EclipseLinkJPA.CHANGE_TRACKING);
-			}
-			@Override
-			public void appendTypeAnnotationTo(StringBuilder sb) {
-				sb.append("@Entity").append(CR);
-				sb.append("    @ChangeTracking").append(CR);
-			}
-		});
-	}
-
-	private ICompilationUnit createTestEntityWithReadOnly() throws Exception {
-		return this.createTestType(new DefaultAnnotationWriter() {
-			@Override
-			public Iterator<String> imports() {
-				return new ArrayIterator<String>(JPA.ENTITY, EclipseLinkJPA.READ_ONLY);
-			}
-			@Override
-			public void appendTypeAnnotationTo(StringBuilder sb) {
-				sb.append("@Entity").append(CR);
-				sb.append("@ReadOnly").append(CR);
-			}
-		});
-	}
-
-	public EclipseLinkJavaEntityTests(String name) {
-		super(name);
-	}
-
-
-	public void testGetCustomizerClass() throws Exception {
-		createTestEntityWithConvertAndCustomizerClass();
-		addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
-		
-		Customizer customizer = ((EclipseLinkEntity) getJavaPersistentType().getMapping()).getCustomizer();
-		
-		assertEquals("Foo", customizer.getSpecifiedCustomizerClass());
-	}
-
-	public void testSetCustomizerClass() throws Exception {
-		createTestEntityWithConvertAndCustomizerClass();
-		addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
-		
-		Customizer customizer = ((EclipseLinkEntity) getJavaPersistentType().getMapping()).getCustomizer();
-		assertEquals("Foo", customizer.getSpecifiedCustomizerClass());
-		
-		customizer.setSpecifiedCustomizerClass("Bar");
-		assertEquals("Bar", customizer.getSpecifiedCustomizerClass());
-			
-		JavaResourcePersistentType typeResource = getJpaProject().getJavaResourcePersistentType(FULLY_QUALIFIED_TYPE_NAME);
-		CustomizerAnnotation customizerAnnotation = (CustomizerAnnotation) typeResource.getSupportingAnnotation(CustomizerAnnotation.ANNOTATION_NAME);		
-		assertEquals("Bar", customizerAnnotation.getValue());
-
-		
-		customizer.setSpecifiedCustomizerClass(null);
-		assertEquals(null, customizer.getSpecifiedCustomizerClass());
-		customizerAnnotation = (CustomizerAnnotation) typeResource.getSupportingAnnotation(CustomizerAnnotation.ANNOTATION_NAME);		
-		assertEquals(null, customizerAnnotation);
-
-
-		customizer.setSpecifiedCustomizerClass("Bar");
-		assertEquals("Bar", customizer.getSpecifiedCustomizerClass());
-		customizerAnnotation = (CustomizerAnnotation) typeResource.getSupportingAnnotation(CustomizerAnnotation.ANNOTATION_NAME);		
-		assertEquals("Bar", customizerAnnotation.getValue());
-	}
-	
-	public void testGetCustomizerClassUpdatesFromResourceModelChange() throws Exception {
-		createTestEntityWithConvertAndCustomizerClass();
-		addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
-		EclipseLinkEntity entity = (EclipseLinkEntity) getJavaPersistentType().getMapping();
-		Customizer customizer = entity.getCustomizer();
-
-		assertEquals("Foo", customizer.getSpecifiedCustomizerClass());
-		
-		JavaResourcePersistentType typeResource = getJpaProject().getJavaResourcePersistentType(FULLY_QUALIFIED_TYPE_NAME);
-		CustomizerAnnotation customizerAnnotation = (CustomizerAnnotation) typeResource.getSupportingAnnotation(CustomizerAnnotation.ANNOTATION_NAME);
-		customizerAnnotation.setValue("Bar");
-		assertEquals("Bar", customizer.getSpecifiedCustomizerClass());
-		
-		typeResource.removeSupportingAnnotation(CustomizerAnnotation.ANNOTATION_NAME);
-		assertEquals(null, customizer.getSpecifiedCustomizerClass());
-		
-		customizerAnnotation = (CustomizerAnnotation) typeResource.addSupportingAnnotation(CustomizerAnnotation.ANNOTATION_NAME);		
-		assertEquals(null, customizer.getSpecifiedCustomizerClass());
-		
-		customizerAnnotation.setValue("FooBar");
-		assertEquals("FooBar", customizer.getSpecifiedCustomizerClass());	
-	}
-	
-	public void testGetChangeTracking() throws Exception {
-		createTestEntityWithChangeTracking();
-		addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
-		
-		EclipseLinkEntity entity = (EclipseLinkEntity) getJavaPersistentType().getMapping();
-		ChangeTracking contextChangeTracking = entity.getChangeTracking();
-		JavaResourcePersistentType typeResource = getJpaProject().getJavaResourcePersistentType(FULLY_QUALIFIED_TYPE_NAME);
-		ChangeTrackingAnnotation resourceChangeTracking = (ChangeTrackingAnnotation) typeResource.getSupportingAnnotation(ChangeTrackingAnnotation.ANNOTATION_NAME);
-		
-		// base annotated, test context value
-		
-		assertNull(resourceChangeTracking.getValue());
-		assertEquals(ChangeTrackingType.AUTO, contextChangeTracking.getType());
-		assertEquals(ChangeTrackingType.AUTO, contextChangeTracking.getDefaultType());
-		assertEquals(ChangeTrackingType.AUTO, contextChangeTracking.getSpecifiedType());
-		
-		// change resource to ATTRIBUTE specifically, test context
-		
-		resourceChangeTracking.setValue(org.eclipse.jpt.eclipselink.core.resource.java.ChangeTrackingType.ATTRIBUTE);
-		
-		assertEquals(org.eclipse.jpt.eclipselink.core.resource.java.ChangeTrackingType.ATTRIBUTE, resourceChangeTracking.getValue());
-		assertEquals(ChangeTrackingType.ATTRIBUTE, contextChangeTracking.getType());
-		assertEquals(ChangeTrackingType.AUTO, contextChangeTracking.getDefaultType());
-		assertEquals(ChangeTrackingType.ATTRIBUTE, contextChangeTracking.getSpecifiedType());
-		
-		// change resource to OBJECT specifically, test context
-		
-		resourceChangeTracking.setValue(org.eclipse.jpt.eclipselink.core.resource.java.ChangeTrackingType.OBJECT);
-		
-		assertEquals(org.eclipse.jpt.eclipselink.core.resource.java.ChangeTrackingType.OBJECT, resourceChangeTracking.getValue());
-		assertEquals(ChangeTrackingType.OBJECT, contextChangeTracking.getType());
-		assertEquals(ChangeTrackingType.AUTO, contextChangeTracking.getDefaultType());
-		assertEquals(ChangeTrackingType.OBJECT, contextChangeTracking.getSpecifiedType());
-		
-		// change resource to DEFERRED specifically, test context
-		
-		resourceChangeTracking.setValue(org.eclipse.jpt.eclipselink.core.resource.java.ChangeTrackingType.DEFERRED);
-		
-		assertEquals(org.eclipse.jpt.eclipselink.core.resource.java.ChangeTrackingType.DEFERRED, resourceChangeTracking.getValue());
-		assertEquals(ChangeTrackingType.DEFERRED, contextChangeTracking.getType());
-		assertEquals(ChangeTrackingType.AUTO, contextChangeTracking.getDefaultType());
-		assertEquals(ChangeTrackingType.DEFERRED, contextChangeTracking.getSpecifiedType());
-		
-		// change resource to AUTO specifically, test context
-		
-		resourceChangeTracking.setValue(org.eclipse.jpt.eclipselink.core.resource.java.ChangeTrackingType.AUTO);
-		
-		assertEquals(org.eclipse.jpt.eclipselink.core.resource.java.ChangeTrackingType.AUTO, resourceChangeTracking.getValue());
-		assertEquals(ChangeTrackingType.AUTO, contextChangeTracking.getType());
-		assertEquals(ChangeTrackingType.AUTO, contextChangeTracking.getDefaultType());
-		assertEquals(ChangeTrackingType.AUTO, contextChangeTracking.getSpecifiedType());
-		
-		// remove value from resource, test context
-		
-		resourceChangeTracking.setValue(null);
-		
-		assertNull(resourceChangeTracking.getValue());
-		assertEquals(ChangeTrackingType.AUTO, contextChangeTracking.getType());
-		assertEquals(ChangeTrackingType.AUTO, contextChangeTracking.getDefaultType());
-		assertEquals(ChangeTrackingType.AUTO, contextChangeTracking.getSpecifiedType());
-		
-		// remove annotation, text context
-		
-		typeResource.removeSupportingAnnotation(ChangeTrackingAnnotation.ANNOTATION_NAME);
-		
-		assertNull(resourceChangeTracking.getValue());
-		assertEquals(ChangeTrackingType.AUTO, contextChangeTracking.getType());
-		assertEquals(ChangeTrackingType.AUTO, contextChangeTracking.getDefaultType());
-		assertNull(contextChangeTracking.getSpecifiedType());
-	}
-	
-	public void testSetChangeTracking() throws Exception {
-		createTestEntityWithChangeTracking();
-		addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
-		
-		EclipseLinkEntity entity = (EclipseLinkEntity) getJavaPersistentType().getMapping();
-		ChangeTracking contextChangeTracking = entity.getChangeTracking();
-		JavaResourcePersistentType typeResource = getJpaProject().getJavaResourcePersistentType(FULLY_QUALIFIED_TYPE_NAME);
-		ChangeTrackingAnnotation resourceChangeTracking = (ChangeTrackingAnnotation) typeResource.getSupportingAnnotation(ChangeTrackingAnnotation.ANNOTATION_NAME);
-		
-		// base annotated, test resource value
-		
-		assertNull(resourceChangeTracking.getValue());
-		assertEquals(ChangeTrackingType.AUTO, contextChangeTracking.getSpecifiedType());
-		
-		// change context to AUTO specifically, test resource
-		
-		contextChangeTracking.setSpecifiedType(ChangeTrackingType.AUTO);
-		
-		assertNull(resourceChangeTracking.getValue());
-		assertEquals(ChangeTrackingType.AUTO, contextChangeTracking.getSpecifiedType());
-		
-		// change context to ATTRIBUTE specifically, test resource
-		
-		contextChangeTracking.setSpecifiedType(ChangeTrackingType.ATTRIBUTE);
-		
-		assertEquals(org.eclipse.jpt.eclipselink.core.resource.java.ChangeTrackingType.ATTRIBUTE, resourceChangeTracking.getValue());
-		assertEquals(ChangeTrackingType.ATTRIBUTE, contextChangeTracking.getSpecifiedType());
-		
-		// change context to OBJECT specifically, test resource
-		
-		contextChangeTracking.setSpecifiedType(ChangeTrackingType.OBJECT);
-		
-		assertEquals(org.eclipse.jpt.eclipselink.core.resource.java.ChangeTrackingType.OBJECT, resourceChangeTracking.getValue());
-		assertEquals(ChangeTrackingType.OBJECT, contextChangeTracking.getSpecifiedType());
-		
-		// change context to DEFERRED specifically, test resource
-		
-		contextChangeTracking.setSpecifiedType(ChangeTrackingType.DEFERRED);
-		
-		assertEquals(org.eclipse.jpt.eclipselink.core.resource.java.ChangeTrackingType.DEFERRED, resourceChangeTracking.getValue());
-		assertEquals(ChangeTrackingType.DEFERRED, contextChangeTracking.getSpecifiedType());
-		
-		// change context to null, test resource
-		
-		contextChangeTracking.setSpecifiedType(null);
-		
-		assertNull(typeResource.getSupportingAnnotation(ChangeTrackingAnnotation.ANNOTATION_NAME));
-		assertNull(contextChangeTracking.getSpecifiedType());
-		
-		// change context to AUTO specifically (this time from no annotation), test resource
-		
-		contextChangeTracking.setSpecifiedType(ChangeTrackingType.AUTO);
-		resourceChangeTracking = (ChangeTrackingAnnotation) typeResource.getSupportingAnnotation(ChangeTrackingAnnotation.ANNOTATION_NAME);
-		
-		assertEquals(org.eclipse.jpt.eclipselink.core.resource.java.ChangeTrackingType.AUTO, resourceChangeTracking.getValue());
-		assertEquals(ChangeTrackingType.AUTO, contextChangeTracking.getSpecifiedType());
-	}
-	
-	public void testGetReadOnly() throws Exception {
-		createTestEntityWithReadOnly();
-		addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
-		
-		EclipseLinkEntity mappedSuperclass = (EclipseLinkEntity) getJavaPersistentType().getMapping();
-		ReadOnly readOnly = mappedSuperclass.getReadOnly();
-		assertEquals(true, readOnly.isReadOnly());
-	}
-
-	public void testGetSpecifiedReadOnly() throws Exception {
-		createTestEntityWithReadOnly();
-		addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
-		
-		EclipseLinkEntity mappedSuperclass = (EclipseLinkEntity) getJavaPersistentType().getMapping();
-		ReadOnly readOnly = mappedSuperclass.getReadOnly();
-		assertEquals(Boolean.TRUE, readOnly.getSpecifiedReadOnly());
-	}
-
-	//TODO test inheriting a default readonly from you superclass
-	public void testGetDefaultReadOnly() throws Exception {
-		createTestEntityWithReadOnly();
-		addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
-		
-		EclipseLinkEntity mappedSuperclass = (EclipseLinkEntity) getJavaPersistentType().getMapping();
-		ReadOnly readOnly = mappedSuperclass.getReadOnly();
-		assertEquals(false, readOnly.isDefaultReadOnly());
-	}
-
-	public void testSetSpecifiedReadOnly() throws Exception {
-		createTestEntityWithReadOnly();
-		addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
-		
-		EclipseLinkEntity mappedSuperclass = (EclipseLinkEntity) getJavaPersistentType().getMapping();
-		ReadOnly readOnly = mappedSuperclass.getReadOnly();
-		assertEquals(true, readOnly.isReadOnly());
-		
-		readOnly.setSpecifiedReadOnly(Boolean.FALSE);
-		
-		JavaResourcePersistentType typeResource = getJpaProject().getJavaResourcePersistentType(FULLY_QUALIFIED_TYPE_NAME);
-		assertNull(typeResource.getSupportingAnnotation(ReadOnlyAnnotation.ANNOTATION_NAME));
-		assertEquals(null, readOnly.getSpecifiedReadOnly());//Boolean.FALSE and null really mean the same thing since there are only 2 states in the java resource model
-
-		readOnly.setSpecifiedReadOnly(Boolean.TRUE);
-		assertNotNull(typeResource.getSupportingAnnotation(ReadOnlyAnnotation.ANNOTATION_NAME));
-		assertEquals(Boolean.TRUE, readOnly.getSpecifiedReadOnly());
-
-		readOnly.setSpecifiedReadOnly(null);
-		assertNull(typeResource.getSupportingAnnotation(ReadOnlyAnnotation.ANNOTATION_NAME));
-		assertEquals(null, readOnly.getSpecifiedReadOnly());//Boolean.FALSE and null really mean the same thing since there are only 2 states in the java resource model
-	}
-	
-	public void testSpecifiedReadOnlyUpdatesFromResourceModelChange() throws Exception {
-		createTestEntityWithReadOnly();
-		addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
-		
-		EclipseLinkEntity mappedSuperclass = (EclipseLinkEntity) getJavaPersistentType().getMapping();
-		ReadOnly readOnly = mappedSuperclass.getReadOnly();
-		assertEquals(Boolean.TRUE, readOnly.getSpecifiedReadOnly());
-		
-		
-		JavaResourcePersistentType typeResource = getJpaProject().getJavaResourcePersistentType(FULLY_QUALIFIED_TYPE_NAME);
-		typeResource.removeSupportingAnnotation(ReadOnlyAnnotation.ANNOTATION_NAME);
-		
-		assertEquals(null, readOnly.getSpecifiedReadOnly());
-		assertEquals(false, readOnly.isDefaultReadOnly());
-		
-		typeResource.addSupportingAnnotation(ReadOnlyAnnotation.ANNOTATION_NAME);
-		assertEquals(Boolean.TRUE, readOnly.getSpecifiedReadOnly());
-	}
-
-
-}
diff --git a/jpa/tests/org.eclipse.jpt.eclipselink.core.tests/src/org/eclipse/jpt/eclipselink/core/tests/internal/context/java/EclipseLinkJavaIdMappingTests.java b/jpa/tests/org.eclipse.jpt.eclipselink.core.tests/src/org/eclipse/jpt/eclipselink/core/tests/internal/context/java/EclipseLinkJavaIdMappingTests.java
deleted file mode 100644
index b5a8be7..0000000
--- a/jpa/tests/org.eclipse.jpt.eclipselink.core.tests/src/org/eclipse/jpt/eclipselink/core/tests/internal/context/java/EclipseLinkJavaIdMappingTests.java
+++ /dev/null
@@ -1,316 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.eclipselink.core.tests.internal.context.java;
-
-import java.util.Iterator;
-import org.eclipse.jdt.core.ICompilationUnit;
-import org.eclipse.jpt.core.context.Converter;
-import org.eclipse.jpt.core.context.IdMapping;
-import org.eclipse.jpt.core.context.PersistentAttribute;
-import org.eclipse.jpt.core.context.TemporalConverter;
-import org.eclipse.jpt.core.context.TemporalType;
-import org.eclipse.jpt.core.resource.java.JPA;
-import org.eclipse.jpt.core.resource.java.JavaResourcePersistentAttribute;
-import org.eclipse.jpt.core.resource.java.JavaResourcePersistentType;
-import org.eclipse.jpt.core.resource.java.TemporalAnnotation;
-import org.eclipse.jpt.eclipselink.core.context.Convert;
-import org.eclipse.jpt.eclipselink.core.context.EclipseLinkIdMapping;
-import org.eclipse.jpt.eclipselink.core.context.Mutable;
-import org.eclipse.jpt.eclipselink.core.resource.java.ConvertAnnotation;
-import org.eclipse.jpt.eclipselink.core.resource.java.EclipseLinkJPA;
-import org.eclipse.jpt.eclipselink.core.resource.java.MutableAnnotation;
-import org.eclipse.jpt.eclipselink.core.tests.internal.context.EclipseLinkContextModelTestCase;
-import org.eclipse.jpt.utility.internal.iterators.ArrayIterator;
-
-@SuppressWarnings("nls")
-public class EclipseLinkJavaIdMappingTests extends EclipseLinkContextModelTestCase
-{
-	
-	private ICompilationUnit createTestEntityWithIdMapping() throws Exception {		
-		return this.createTestType(new DefaultAnnotationWriter() {
-			@Override
-			public Iterator<String> imports() {
-				return new ArrayIterator<String>(JPA.ENTITY, JPA.ID);
-			}
-			@Override
-			public void appendTypeAnnotationTo(StringBuilder sb) {
-				sb.append("@Entity").append(CR);
-			}
-			
-			@Override
-			public void appendIdFieldAnnotationTo(StringBuilder sb) {
-				sb.append("@Id").append(CR);
-			}
-		});
-	}
-
-	
-	private ICompilationUnit createTestEntityWithConvert() throws Exception {
-		return this.createTestType(new DefaultAnnotationWriter() {
-			@Override
-			public Iterator<String> imports() {
-				return new ArrayIterator<String>(JPA.ENTITY, JPA.ID, EclipseLinkJPA.CONVERT);
-			}
-			@Override
-			public void appendTypeAnnotationTo(StringBuilder sb) {
-				sb.append("@Entity").append(CR);
-			}
-			
-			@Override
-			public void appendIdFieldAnnotationTo(StringBuilder sb) {
-				sb.append("@Id").append(CR);
-				sb.append("@Convert(\"class-instance\")").append(CR);
-			}
-		});
-	}
-	
-	private ICompilationUnit createTestEntityWithMutableId() throws Exception {
-		return this.createTestType(new DefaultAnnotationWriter() {
-			@Override
-			public Iterator<String> imports() {
-				return new ArrayIterator<String>(JPA.ENTITY, JPA.ID, EclipseLinkJPA.MUTABLE);
-			}
-			@Override
-			public void appendTypeAnnotationTo(StringBuilder sb) {
-				sb.append("@Entity").append(CR);
-			}
-			
-			@Override
-			public void appendIdFieldAnnotationTo(StringBuilder sb) {
-				sb.append("@Id").append(CR);
-				sb.append("@Mutable").append(CR);
-			}
-		});
-	}
-	
-	private ICompilationUnit createTestEntityWithMutableIdDate() throws Exception {
-		return this.createTestType(new DefaultAnnotationWriter() {
-			@Override
-			public Iterator<String> imports() {
-				return new ArrayIterator<String>(JPA.ENTITY, JPA.ID, EclipseLinkJPA.MUTABLE, "java.util.Date");
-			}
-			@Override
-			public void appendTypeAnnotationTo(StringBuilder sb) {
-				sb.append("@Entity").append(CR);
-			}
-			
-			@Override
-			public void appendIdFieldAnnotationTo(StringBuilder sb) {
-				sb.append("@Id").append(CR);
-				sb.append("    @Mutable").append(CR);
-				sb.append("    private Date myDate;").append(CR);
-				sb.append(CR);
-				sb.append("    ");
-			}
-		});
-	}
-		
-	public EclipseLinkJavaIdMappingTests(String name) {
-		super(name);
-	}
-
-
-	public void testGetConvert() throws Exception {
-		createTestEntityWithIdMapping();
-		addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
-		
-		JavaResourcePersistentType typeResource = getJpaProject().getJavaResourcePersistentType(FULLY_QUALIFIED_TYPE_NAME);
-		JavaResourcePersistentAttribute attributeResource = typeResource.persistableAttributes().next();
-		attributeResource.addSupportingAnnotation(ConvertAnnotation.ANNOTATION_NAME);
-		
-		PersistentAttribute persistentAttribute = getJavaPersistentType().attributes().next();
-		IdMapping idMapping = (IdMapping) persistentAttribute.getSpecifiedMapping();
-
-		assertEquals(Convert.ECLIPSE_LINK_CONVERTER, idMapping.getConverter().getType());
-	}
-	
-	public void testGetConvert2() throws Exception {
-		createTestEntityWithConvert();
-		addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
-		
-		PersistentAttribute persistentAttribute = getJavaPersistentType().attributes().next();
-		IdMapping idMapping = (IdMapping) persistentAttribute.getMapping();
-
-		assertEquals(Convert.ECLIPSE_LINK_CONVERTER, idMapping.getConverter().getType());
-		assertEquals(Convert.CLASS_INSTANCE_CONVERTER, ((Convert) idMapping.getConverter()).getConverterName());
-	}
-
-	public void testSetConvert() throws Exception {
-		createTestEntityWithIdMapping();
-		addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
-		
-		PersistentAttribute persistentAttribute = getJavaPersistentType().attributes().next();
-		IdMapping idMapping = (IdMapping) persistentAttribute.getSpecifiedMapping();
-		assertEquals(Converter.NO_CONVERTER, idMapping.getConverter().getType());
-		
-		idMapping.setSpecifiedConverter(Converter.TEMPORAL_CONVERTER);
-		((TemporalConverter) idMapping.getSpecifiedConverter()).setTemporalType(TemporalType.TIME);
-		
-		JavaResourcePersistentType typeResource = getJpaProject().getJavaResourcePersistentType(FULLY_QUALIFIED_TYPE_NAME);
-		JavaResourcePersistentAttribute attributeResource = typeResource.persistableAttributes().next();
-		TemporalAnnotation temporal = (TemporalAnnotation) attributeResource.getSupportingAnnotation(TemporalAnnotation.ANNOTATION_NAME);
-		
-		assertEquals(org.eclipse.jpt.core.resource.java.TemporalType.TIME, temporal.getValue());
-		
-		idMapping.setSpecifiedConverter(null);
-		assertNull(attributeResource.getSupportingAnnotation(TemporalAnnotation.ANNOTATION_NAME));
-	}
-	
-	public void testGetConvertUpdatesFromResourceModelChange() throws Exception {
-		createTestEntityWithIdMapping();
-		addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
-		
-		PersistentAttribute persistentAttribute = getJavaPersistentType().attributes().next();
-		IdMapping idMapping = (IdMapping) persistentAttribute.getSpecifiedMapping();
-
-		assertEquals(Converter.NO_CONVERTER, idMapping.getConverter().getType());
-		
-		
-		JavaResourcePersistentType typeResource = getJpaProject().getJavaResourcePersistentType(FULLY_QUALIFIED_TYPE_NAME);
-		JavaResourcePersistentAttribute attributeResource = typeResource.persistableAttributes().next();
-		ConvertAnnotation convert = (ConvertAnnotation) attributeResource.addSupportingAnnotation(ConvertAnnotation.ANNOTATION_NAME);
-		convert.setValue("foo");
-		
-		assertEquals(Convert.ECLIPSE_LINK_CONVERTER, idMapping.getConverter().getType());
-		assertEquals("foo", ((Convert) idMapping.getConverter()).getConverterName());
-		
-		attributeResource.removeSupportingAnnotation(ConvertAnnotation.ANNOTATION_NAME);
-		
-		assertEquals(Converter.NO_CONVERTER, idMapping.getConverter().getType());
-		assertFalse(idMapping.isDefault());
-		assertSame(idMapping, persistentAttribute.getSpecifiedMapping());
-	}
-	
-	public void testGetSpecifiedMutable() throws Exception {
-		createTestEntityWithMutableId();
-		addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
-		
-		PersistentAttribute persistentAttribute = getJavaPersistentType().attributes().next();
-		EclipseLinkIdMapping idMapping = (EclipseLinkIdMapping) persistentAttribute.getSpecifiedMapping();
-		Mutable mutable = idMapping.getMutable();
-		assertEquals(Boolean.TRUE, mutable.getSpecifiedMutable());
-		
-		JavaResourcePersistentType typeResource = getJpaProject().getJavaResourcePersistentType(FULLY_QUALIFIED_TYPE_NAME);
-		JavaResourcePersistentAttribute attributeResource = typeResource.persistableAttributes().next();
-		MutableAnnotation mutableAnnotation = (MutableAnnotation) attributeResource.getSupportingAnnotation(MutableAnnotation.ANNOTATION_NAME);
-		mutableAnnotation.setValue(Boolean.TRUE);
-		
-		assertEquals(Boolean.TRUE, mutable.getSpecifiedMutable());
-
-		mutableAnnotation.setValue(null);
-		assertEquals(Boolean.TRUE, mutable.getSpecifiedMutable());
-
-		mutableAnnotation.setValue(Boolean.FALSE);
-		assertEquals(Boolean.FALSE, mutable.getSpecifiedMutable());
-		
-		attributeResource.removeSupportingAnnotation(MutableAnnotation.ANNOTATION_NAME);
-		assertEquals(null, mutable.getSpecifiedMutable());
-		
-		attributeResource.addSupportingAnnotation(MutableAnnotation.ANNOTATION_NAME);
-		assertEquals(Boolean.TRUE, mutable.getSpecifiedMutable());
-	}
-	
-	public void testSetSpecifiedMutable() throws Exception {
-		createTestEntityWithMutableId();
-		addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
-		
-		PersistentAttribute persistentAttribute = getJavaPersistentType().attributes().next();
-		EclipseLinkIdMapping idMapping = (EclipseLinkIdMapping) persistentAttribute.getSpecifiedMapping();
-		Mutable mutable = idMapping.getMutable();
-		assertEquals(Boolean.TRUE, mutable.getSpecifiedMutable());
-		
-		JavaResourcePersistentType typeResource = getJpaProject().getJavaResourcePersistentType(FULLY_QUALIFIED_TYPE_NAME);
-		JavaResourcePersistentAttribute attributeResource = typeResource.persistableAttributes().next();
-		MutableAnnotation mutableAnnotation = (MutableAnnotation) attributeResource.getSupportingAnnotation(MutableAnnotation.ANNOTATION_NAME);
-		assertEquals(null, mutableAnnotation.getValue());
-		
-		mutable.setSpecifiedMutable(Boolean.TRUE);	
-		assertEquals(null, mutableAnnotation.getValue());
-
-		mutable.setSpecifiedMutable(null);
-		mutableAnnotation = (MutableAnnotation) attributeResource.getSupportingAnnotation(MutableAnnotation.ANNOTATION_NAME);
-		assertEquals(null, mutableAnnotation);
-		
-		mutable.setSpecifiedMutable(Boolean.FALSE);	
-		mutableAnnotation = (MutableAnnotation) attributeResource.getSupportingAnnotation(MutableAnnotation.ANNOTATION_NAME);
-		assertEquals(Boolean.FALSE, mutableAnnotation.getValue());
-		
-		mutable.setSpecifiedMutable(Boolean.TRUE);	
-		assertEquals(null, mutableAnnotation.getValue());
-	}
-	
-	public void testIsDefaultMutable() throws Exception {
-		createTestEntityWithMutableId();
-		addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
-		
-		PersistentAttribute persistentAttribute = getJavaPersistentType().attributes().next();
-		EclipseLinkIdMapping idMapping = (EclipseLinkIdMapping) persistentAttribute.getSpecifiedMapping();
-		Mutable mutable = idMapping.getMutable();
-		assertTrue(mutable.isDefaultMutable());
-		
-		JavaResourcePersistentType typeResource = getJpaProject().getJavaResourcePersistentType(FULLY_QUALIFIED_TYPE_NAME);
-		JavaResourcePersistentAttribute attributeResource = typeResource.persistableAttributes().next();
-		attributeResource.removeSupportingAnnotation(MutableAnnotation.ANNOTATION_NAME);
-		assertTrue(mutable.isDefaultMutable());
-		
-		mutable.setSpecifiedMutable(Boolean.FALSE);	
-		assertTrue(mutable.isDefaultMutable());
-		
-		//set mutable default to false in the persistence unit properties, verify default in java still true since this is not a Date/Calendar
-		(getPersistenceUnit()).getOptions().setTemporalMutable(Boolean.FALSE);
-		assertTrue(mutable.isDefaultMutable());
-	}
-	
-	public void testIsDefaultMutableForDate() throws Exception {
-		createTestEntityWithMutableIdDate();
-		addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
-		
-		PersistentAttribute persistentAttribute = getJavaPersistentType().attributes().next();
-		EclipseLinkIdMapping idMapping = (EclipseLinkIdMapping) persistentAttribute.getSpecifiedMapping();
-		Mutable mutable = idMapping.getMutable();
-		assertFalse(mutable.isDefaultMutable());
-		
-		JavaResourcePersistentType typeResource = getJpaProject().getJavaResourcePersistentType(FULLY_QUALIFIED_TYPE_NAME);
-		JavaResourcePersistentAttribute attributeResource = typeResource.persistableAttributes().next();
-		attributeResource.removeSupportingAnnotation(MutableAnnotation.ANNOTATION_NAME);
-		assertFalse(mutable.isDefaultMutable());
-		
-		mutable.setSpecifiedMutable(Boolean.TRUE);	
-		assertFalse(mutable.isDefaultMutable());
-		
-		//set mutable default to false in the persistence unit properties, verify default in java still true since this is not a Date/Calendar
-		(getPersistenceUnit()).getOptions().setTemporalMutable(Boolean.TRUE);
-		assertTrue(mutable.isDefaultMutable());
-		
-		(getPersistenceUnit()).getOptions().setTemporalMutable(Boolean.FALSE);
-		assertFalse(mutable.isDefaultMutable());
-		
-		(getPersistenceUnit()).getOptions().setTemporalMutable(null);
-		assertFalse(mutable.isDefaultMutable());
-	}
-	
-	public void testIsMutable() throws Exception {
-		createTestEntityWithMutableId();
-		addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
-		
-		PersistentAttribute persistentAttribute = getJavaPersistentType().attributes().next();
-		EclipseLinkIdMapping idMapping = (EclipseLinkIdMapping) persistentAttribute.getSpecifiedMapping();
-		Mutable mutable = idMapping.getMutable();
-		assertTrue(mutable.isMutable());
-		
-		JavaResourcePersistentType typeResource = getJpaProject().getJavaResourcePersistentType(FULLY_QUALIFIED_TYPE_NAME);
-		JavaResourcePersistentAttribute attributeResource = typeResource.persistableAttributes().next();
-		attributeResource.removeSupportingAnnotation(MutableAnnotation.ANNOTATION_NAME);
-		assertTrue(mutable.isMutable());
-		
-		mutable.setSpecifiedMutable(Boolean.TRUE);	
-		assertTrue(mutable.isMutable());
-	}
-}
diff --git a/jpa/tests/org.eclipse.jpt.eclipselink.core.tests/src/org/eclipse/jpt/eclipselink/core/tests/internal/context/java/EclipseLinkJavaManyToManyMappingTests.java b/jpa/tests/org.eclipse.jpt.eclipselink.core.tests/src/org/eclipse/jpt/eclipselink/core/tests/internal/context/java/EclipseLinkJavaManyToManyMappingTests.java
deleted file mode 100644
index 3f828f4..0000000
--- a/jpa/tests/org.eclipse.jpt.eclipselink.core.tests/src/org/eclipse/jpt/eclipselink/core/tests/internal/context/java/EclipseLinkJavaManyToManyMappingTests.java
+++ /dev/null
@@ -1,145 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.eclipselink.core.tests.internal.context.java;
-
-import java.util.Iterator;
-import org.eclipse.jdt.core.ICompilationUnit;
-import org.eclipse.jpt.core.context.PersistentAttribute;
-import org.eclipse.jpt.core.resource.java.JPA;
-import org.eclipse.jpt.core.resource.java.JavaResourcePersistentAttribute;
-import org.eclipse.jpt.core.resource.java.JavaResourcePersistentType;
-import org.eclipse.jpt.eclipselink.core.context.EclipseLinkRelationshipMapping;
-import org.eclipse.jpt.eclipselink.core.context.JoinFetch;
-import org.eclipse.jpt.eclipselink.core.context.JoinFetchType;
-import org.eclipse.jpt.eclipselink.core.resource.java.EclipseLinkJPA;
-import org.eclipse.jpt.eclipselink.core.resource.java.JoinFetchAnnotation;
-import org.eclipse.jpt.eclipselink.core.tests.internal.context.EclipseLinkContextModelTestCase;
-import org.eclipse.jpt.utility.internal.iterators.ArrayIterator;
-
-
-@SuppressWarnings("nls")
-public class EclipseLinkJavaManyToManyMappingTests extends EclipseLinkContextModelTestCase
-{
-		
-	private ICompilationUnit createTestEntityWithJoinFetchManyToMany() throws Exception {
-		return this.createTestType(new DefaultAnnotationWriter() {
-			@Override
-			public Iterator<String> imports() {
-				return new ArrayIterator<String>(JPA.ENTITY, JPA.MANY_TO_MANY, EclipseLinkJPA.JOIN_FETCH);
-			}
-			@Override
-			public void appendTypeAnnotationTo(StringBuilder sb) {
-				sb.append("@Entity").append(CR);
-			}
-			
-			@Override
-			public void appendIdFieldAnnotationTo(StringBuilder sb) {
-				sb.append("@ManyToMany").append(CR);
-				sb.append("@JoinFetch").append(CR);
-			}
-		});
-	}
-
-	public EclipseLinkJavaManyToManyMappingTests(String name) {
-		super(name);
-	}
-	
-	
-	public void testGetJoinFetchValue() throws Exception {
-		createTestEntityWithJoinFetchManyToMany();
-		addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
-		
-		PersistentAttribute persistentAttribute = getJavaPersistentType().attributes().next();
-		EclipseLinkRelationshipMapping manyToManyMapping = (EclipseLinkRelationshipMapping) persistentAttribute.getSpecifiedMapping();
-		JoinFetch contextJoinFetch = manyToManyMapping.getJoinFetch();
-		JavaResourcePersistentType typeResource = getJpaProject().getJavaResourcePersistentType(FULLY_QUALIFIED_TYPE_NAME);
-		JavaResourcePersistentAttribute attributeResource = typeResource.persistableAttributes().next();
-		JoinFetchAnnotation joinFetchAnnotation = (JoinFetchAnnotation) attributeResource.getSupportingAnnotation(JoinFetchAnnotation.ANNOTATION_NAME);
-		
-		// base annotated, test context value
-		
-		assertNull(joinFetchAnnotation.getValue());
-		assertEquals(JoinFetchType.INNER, contextJoinFetch.getValue());
-		
-		// change resource to INNER specifically, test context
-		
-		joinFetchAnnotation.setValue(org.eclipse.jpt.eclipselink.core.resource.java.JoinFetchType.INNER);
-		
-		assertEquals(org.eclipse.jpt.eclipselink.core.resource.java.JoinFetchType.INNER, joinFetchAnnotation.getValue());
-		assertEquals(JoinFetchType.INNER, contextJoinFetch.getValue());
-		
-		// change resource to OUTER, test context
-		
-		joinFetchAnnotation.setValue(org.eclipse.jpt.eclipselink.core.resource.java.JoinFetchType.OUTER);
-		
-		assertEquals(org.eclipse.jpt.eclipselink.core.resource.java.JoinFetchType.OUTER, joinFetchAnnotation.getValue());
-		assertEquals(JoinFetchType.OUTER, contextJoinFetch.getValue());
-		
-		// remove value from resource, test context
-		
-		joinFetchAnnotation.setValue(null);
-		
-		assertNull(joinFetchAnnotation.getValue());
-		assertEquals(JoinFetchType.INNER, contextJoinFetch.getValue());
-		
-		// remove annotation, text context
-		
-		attributeResource.removeSupportingAnnotation(JoinFetchAnnotation.ANNOTATION_NAME);
-		
-		assertNull(joinFetchAnnotation.getValue());
-		assertNull(contextJoinFetch.getValue());
-	}
-	
-	public void testSetJoinFetchValue() throws Exception {
-		createTestEntityWithJoinFetchManyToMany();
-		addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
-		
-		PersistentAttribute persistentAttribute = getJavaPersistentType().attributes().next();
-		EclipseLinkRelationshipMapping manyToManyMapping = (EclipseLinkRelationshipMapping) persistentAttribute.getSpecifiedMapping();
-		JoinFetch contextJoinFetch = manyToManyMapping.getJoinFetch();
-		JavaResourcePersistentType typeResource = getJpaProject().getJavaResourcePersistentType(FULLY_QUALIFIED_TYPE_NAME);
-		JavaResourcePersistentAttribute attributeResource = typeResource.persistableAttributes().next();
-		JoinFetchAnnotation joinFetchAnnotation = (JoinFetchAnnotation) attributeResource.getSupportingAnnotation(JoinFetchAnnotation.ANNOTATION_NAME);
-		
-		// base annotated, test resource value
-		
-		assertNull(joinFetchAnnotation.getValue());
-		assertEquals(JoinFetchType.INNER, contextJoinFetch.getValue());
-		
-		// change context to INNER specifically, test resource
-		
-		contextJoinFetch.setValue(JoinFetchType.INNER);
-		
-		assertNull(joinFetchAnnotation.getValue());
-		assertEquals(JoinFetchType.INNER, contextJoinFetch.getValue());
-		
-		// change context to OUTER, test resource
-		
-		contextJoinFetch.setValue(JoinFetchType.OUTER);
-		
-		assertEquals(org.eclipse.jpt.eclipselink.core.resource.java.JoinFetchType.OUTER, joinFetchAnnotation.getValue());
-		assertEquals(JoinFetchType.OUTER, contextJoinFetch.getValue());
-		
-		// set context to null, test resource
-		
-		contextJoinFetch.setValue(null);
-		
-		assertNull(attributeResource.getSupportingAnnotation(JoinFetchAnnotation.ANNOTATION_NAME));
-		assertNull(contextJoinFetch.getValue());
-		
-		// change context to INNER specifically (this time from no annotation), test resource
-		
-		contextJoinFetch.setValue(JoinFetchType.INNER);
-		joinFetchAnnotation = (JoinFetchAnnotation) attributeResource.getSupportingAnnotation(JoinFetchAnnotation.ANNOTATION_NAME);
-		
-		assertEquals(org.eclipse.jpt.eclipselink.core.resource.java.JoinFetchType.INNER, joinFetchAnnotation.getValue());
-		assertEquals(JoinFetchType.INNER, contextJoinFetch.getValue());
-	}
-}
diff --git a/jpa/tests/org.eclipse.jpt.eclipselink.core.tests/src/org/eclipse/jpt/eclipselink/core/tests/internal/context/java/EclipseLinkJavaManyToOneMappingTests.java b/jpa/tests/org.eclipse.jpt.eclipselink.core.tests/src/org/eclipse/jpt/eclipselink/core/tests/internal/context/java/EclipseLinkJavaManyToOneMappingTests.java
deleted file mode 100644
index e2d5149..0000000
--- a/jpa/tests/org.eclipse.jpt.eclipselink.core.tests/src/org/eclipse/jpt/eclipselink/core/tests/internal/context/java/EclipseLinkJavaManyToOneMappingTests.java
+++ /dev/null
@@ -1,144 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.eclipselink.core.tests.internal.context.java;
-
-import java.util.Iterator;
-import org.eclipse.jdt.core.ICompilationUnit;
-import org.eclipse.jpt.core.context.PersistentAttribute;
-import org.eclipse.jpt.core.resource.java.JPA;
-import org.eclipse.jpt.core.resource.java.JavaResourcePersistentAttribute;
-import org.eclipse.jpt.core.resource.java.JavaResourcePersistentType;
-import org.eclipse.jpt.eclipselink.core.context.EclipseLinkRelationshipMapping;
-import org.eclipse.jpt.eclipselink.core.context.JoinFetch;
-import org.eclipse.jpt.eclipselink.core.context.JoinFetchType;
-import org.eclipse.jpt.eclipselink.core.resource.java.EclipseLinkJPA;
-import org.eclipse.jpt.eclipselink.core.resource.java.JoinFetchAnnotation;
-import org.eclipse.jpt.eclipselink.core.tests.internal.context.EclipseLinkContextModelTestCase;
-import org.eclipse.jpt.utility.internal.iterators.ArrayIterator;
-
-@SuppressWarnings("nls")
-public class EclipseLinkJavaManyToOneMappingTests extends EclipseLinkContextModelTestCase
-{
-		
-	private ICompilationUnit createTestEntityWithJoinFetchManyToOne() throws Exception {
-		return this.createTestType(new DefaultAnnotationWriter() {
-			@Override
-			public Iterator<String> imports() {
-				return new ArrayIterator<String>(JPA.ENTITY, JPA.MANY_TO_ONE, EclipseLinkJPA.JOIN_FETCH);
-			}
-			@Override
-			public void appendTypeAnnotationTo(StringBuilder sb) {
-				sb.append("@Entity").append(CR);
-			}
-			
-			@Override
-			public void appendIdFieldAnnotationTo(StringBuilder sb) {
-				sb.append("@ManyToOne").append(CR);
-				sb.append("@JoinFetch").append(CR);
-			}
-		});
-	}
-
-	public EclipseLinkJavaManyToOneMappingTests(String name) {
-		super(name);
-	}
-
-	
-	public void testGetJoinFetchValue() throws Exception {
-		createTestEntityWithJoinFetchManyToOne();
-		addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
-		
-		PersistentAttribute persistentAttribute = getJavaPersistentType().attributes().next();
-		EclipseLinkRelationshipMapping manyToManyMapping = (EclipseLinkRelationshipMapping) persistentAttribute.getSpecifiedMapping();
-		JoinFetch contextJoinFetch = manyToManyMapping.getJoinFetch();
-		JavaResourcePersistentType typeResource = getJpaProject().getJavaResourcePersistentType(FULLY_QUALIFIED_TYPE_NAME);
-		JavaResourcePersistentAttribute attributeResource = typeResource.persistableAttributes().next();
-		JoinFetchAnnotation joinFetchAnnotation = (JoinFetchAnnotation) attributeResource.getSupportingAnnotation(JoinFetchAnnotation.ANNOTATION_NAME);
-		
-		// base annotated, test context value
-		
-		assertNull(joinFetchAnnotation.getValue());
-		assertEquals(JoinFetchType.INNER, contextJoinFetch.getValue());
-		
-		// change resource to INNER specifically, test context
-		
-		joinFetchAnnotation.setValue(org.eclipse.jpt.eclipselink.core.resource.java.JoinFetchType.INNER);
-		
-		assertEquals(org.eclipse.jpt.eclipselink.core.resource.java.JoinFetchType.INNER, joinFetchAnnotation.getValue());
-		assertEquals(JoinFetchType.INNER, contextJoinFetch.getValue());
-		
-		// change resource to OUTER, test context
-		
-		joinFetchAnnotation.setValue(org.eclipse.jpt.eclipselink.core.resource.java.JoinFetchType.OUTER);
-		
-		assertEquals(org.eclipse.jpt.eclipselink.core.resource.java.JoinFetchType.OUTER, joinFetchAnnotation.getValue());
-		assertEquals(JoinFetchType.OUTER, contextJoinFetch.getValue());
-		
-		// remove value from resource, test context
-		
-		joinFetchAnnotation.setValue(null);
-		
-		assertNull(joinFetchAnnotation.getValue());
-		assertEquals(JoinFetchType.INNER, contextJoinFetch.getValue());
-		
-		// remove annotation, text context
-		
-		attributeResource.removeSupportingAnnotation(JoinFetchAnnotation.ANNOTATION_NAME);
-		
-		assertNull(joinFetchAnnotation.getValue());
-		assertNull(contextJoinFetch.getValue());
-	}
-	
-	public void testSetJoinFetchValue() throws Exception {
-		createTestEntityWithJoinFetchManyToOne();
-		addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
-		
-		PersistentAttribute persistentAttribute = getJavaPersistentType().attributes().next();
-		EclipseLinkRelationshipMapping manyToManyMapping = (EclipseLinkRelationshipMapping) persistentAttribute.getSpecifiedMapping();
-		JoinFetch contextJoinFetch = manyToManyMapping.getJoinFetch();
-		JavaResourcePersistentType typeResource = getJpaProject().getJavaResourcePersistentType(FULLY_QUALIFIED_TYPE_NAME);
-		JavaResourcePersistentAttribute attributeResource = typeResource.persistableAttributes().next();
-		JoinFetchAnnotation joinFetchAnnotation = (JoinFetchAnnotation) attributeResource.getSupportingAnnotation(JoinFetchAnnotation.ANNOTATION_NAME);
-		
-		// base annotated, test resource value
-		
-		assertNull(joinFetchAnnotation.getValue());
-		assertEquals(JoinFetchType.INNER, contextJoinFetch.getValue());
-		
-		// change context to INNER specifically, test resource
-		
-		contextJoinFetch.setValue(JoinFetchType.INNER);
-		
-		assertNull(joinFetchAnnotation.getValue());
-		assertEquals(JoinFetchType.INNER, contextJoinFetch.getValue());
-		
-		// change context to OUTER, test resource
-		
-		contextJoinFetch.setValue(JoinFetchType.OUTER);
-		
-		assertEquals(org.eclipse.jpt.eclipselink.core.resource.java.JoinFetchType.OUTER, joinFetchAnnotation.getValue());
-		assertEquals(JoinFetchType.OUTER, contextJoinFetch.getValue());
-		
-		// set context to null, test resource
-		
-		contextJoinFetch.setValue(null);
-		
-		assertNull(attributeResource.getSupportingAnnotation(JoinFetchAnnotation.ANNOTATION_NAME));
-		assertNull(contextJoinFetch.getValue());
-		
-		// change context to INNER specifically (this time from no annotation), test resource
-		
-		contextJoinFetch.setValue(JoinFetchType.INNER);
-		joinFetchAnnotation = (JoinFetchAnnotation) attributeResource.getSupportingAnnotation(JoinFetchAnnotation.ANNOTATION_NAME);
-		
-		assertEquals(org.eclipse.jpt.eclipselink.core.resource.java.JoinFetchType.INNER, joinFetchAnnotation.getValue());
-		assertEquals(JoinFetchType.INNER, contextJoinFetch.getValue());
-	}
-}
diff --git a/jpa/tests/org.eclipse.jpt.eclipselink.core.tests/src/org/eclipse/jpt/eclipselink/core/tests/internal/context/java/EclipseLinkJavaMappedSuperclassTests.java b/jpa/tests/org.eclipse.jpt.eclipselink.core.tests/src/org/eclipse/jpt/eclipselink/core/tests/internal/context/java/EclipseLinkJavaMappedSuperclassTests.java
deleted file mode 100644
index 1c56294..0000000
--- a/jpa/tests/org.eclipse.jpt.eclipselink.core.tests/src/org/eclipse/jpt/eclipselink/core/tests/internal/context/java/EclipseLinkJavaMappedSuperclassTests.java
+++ /dev/null
@@ -1,336 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008, 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.eclipselink.core.tests.internal.context.java;
-
-import java.util.Iterator;
-import org.eclipse.jdt.core.ICompilationUnit;
-import org.eclipse.jpt.core.resource.java.JPA;
-import org.eclipse.jpt.core.resource.java.JavaResourcePersistentType;
-import org.eclipse.jpt.eclipselink.core.context.ChangeTracking;
-import org.eclipse.jpt.eclipselink.core.context.ChangeTrackingType;
-import org.eclipse.jpt.eclipselink.core.context.Customizer;
-import org.eclipse.jpt.eclipselink.core.context.EclipseLinkMappedSuperclass;
-import org.eclipse.jpt.eclipselink.core.context.ReadOnly;
-import org.eclipse.jpt.eclipselink.core.resource.java.ChangeTrackingAnnotation;
-import org.eclipse.jpt.eclipselink.core.resource.java.CustomizerAnnotation;
-import org.eclipse.jpt.eclipselink.core.resource.java.EclipseLinkJPA;
-import org.eclipse.jpt.eclipselink.core.resource.java.ReadOnlyAnnotation;
-import org.eclipse.jpt.eclipselink.core.tests.internal.context.EclipseLinkContextModelTestCase;
-import org.eclipse.jpt.utility.internal.iterators.ArrayIterator;
-
-@SuppressWarnings("nls")
-public class EclipseLinkJavaMappedSuperclassTests extends EclipseLinkContextModelTestCase
-{
-
-	private ICompilationUnit createTestMappedSuperclassWithReadOnly() throws Exception {
-		return this.createTestType(new DefaultAnnotationWriter() {
-			@Override
-			public Iterator<String> imports() {
-				return new ArrayIterator<String>(JPA.MAPPED_SUPERCLASS, EclipseLinkJPA.READ_ONLY);
-			}
-			@Override
-			public void appendTypeAnnotationTo(StringBuilder sb) {
-				sb.append("@MappedSuperclass").append(CR);
-				sb.append("@ReadOnly").append(CR);
-			}
-		});
-	}
-	
-	private ICompilationUnit createTestMappedSuperclassWithConvertAndCustomizerClass() throws Exception {
-		return this.createTestType(new DefaultAnnotationWriter() {
-			@Override
-			public Iterator<String> imports() {
-				return new ArrayIterator<String>(JPA.MAPPED_SUPERCLASS, EclipseLinkJPA.CUSTOMIZER);
-			}
-			@Override
-			public void appendTypeAnnotationTo(StringBuilder sb) {
-				sb.append("@MappedSuperclass").append(CR);
-				sb.append("    @Customizer(Foo.class");
-			}
-		});
-	}
-	
-	private ICompilationUnit createTestMappedSuperclassWithChangeTracking() throws Exception {
-		return this.createTestType(new DefaultAnnotationWriter() {
-			@Override
-			public Iterator<String> imports() {
-				return new ArrayIterator<String>(JPA.MAPPED_SUPERCLASS, EclipseLinkJPA.CHANGE_TRACKING);
-			}
-			@Override
-			public void appendTypeAnnotationTo(StringBuilder sb) {
-				sb.append("@MappedSuperclass").append(CR);
-				sb.append("    @ChangeTracking").append(CR);
-			}
-		});
-	}
-
-	public EclipseLinkJavaMappedSuperclassTests(String name) {
-		super(name);
-	}
-
-
-	public void testGetReadOnly() throws Exception {
-		createTestMappedSuperclassWithReadOnly();
-		addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
-		
-		EclipseLinkMappedSuperclass mappedSuperclass = (EclipseLinkMappedSuperclass) getJavaPersistentType().getMapping();
-		ReadOnly readOnly = mappedSuperclass.getReadOnly();
-		assertEquals(true, readOnly.isReadOnly());
-	}
-
-	public void testGetSpecifiedReadOnly() throws Exception {
-		createTestMappedSuperclassWithReadOnly();
-		addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
-		
-		EclipseLinkMappedSuperclass mappedSuperclass = (EclipseLinkMappedSuperclass) getJavaPersistentType().getMapping();
-		ReadOnly readOnly = mappedSuperclass.getReadOnly();
-		assertEquals(Boolean.TRUE, readOnly.getSpecifiedReadOnly());
-	}
-
-	//TODO test inheriting a default readonly from you superclass
-	public void testGetDefaultReadOnly() throws Exception {
-		createTestMappedSuperclassWithReadOnly();
-		addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
-		
-		EclipseLinkMappedSuperclass mappedSuperclass = (EclipseLinkMappedSuperclass) getJavaPersistentType().getMapping();
-		ReadOnly readOnly = mappedSuperclass.getReadOnly();
-		assertEquals(false, readOnly.isDefaultReadOnly());
-	}
-
-	public void testSetSpecifiedReadOnly() throws Exception {
-		createTestMappedSuperclassWithReadOnly();
-		addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
-		
-		EclipseLinkMappedSuperclass mappedSuperclass = (EclipseLinkMappedSuperclass) getJavaPersistentType().getMapping();
-		ReadOnly readOnly = mappedSuperclass.getReadOnly();
-		assertEquals(true, readOnly.isReadOnly());
-		
-		readOnly.setSpecifiedReadOnly(Boolean.FALSE);
-		
-		JavaResourcePersistentType typeResource = getJpaProject().getJavaResourcePersistentType(FULLY_QUALIFIED_TYPE_NAME);
-		assertNull(typeResource.getSupportingAnnotation(ReadOnlyAnnotation.ANNOTATION_NAME));
-		assertEquals(null, readOnly.getSpecifiedReadOnly());//Boolean.FALSE and null really mean the same thing since there are only 2 states in the java resource model
-
-		readOnly.setSpecifiedReadOnly(Boolean.TRUE);
-		assertNotNull(typeResource.getSupportingAnnotation(ReadOnlyAnnotation.ANNOTATION_NAME));
-		assertEquals(Boolean.TRUE, readOnly.getSpecifiedReadOnly());
-
-		readOnly.setSpecifiedReadOnly(null);
-		assertNull(typeResource.getSupportingAnnotation(ReadOnlyAnnotation.ANNOTATION_NAME));
-		assertEquals(null, readOnly.getSpecifiedReadOnly());//Boolean.FALSE and null really mean the same thing since there are only 2 states in the java resource model
-	}
-	
-	public void testSpecifiedReadOnlyUpdatesFromResourceModelChange() throws Exception {
-		createTestMappedSuperclassWithReadOnly();
-		addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
-		
-		EclipseLinkMappedSuperclass mappedSuperclass = (EclipseLinkMappedSuperclass) getJavaPersistentType().getMapping();
-		ReadOnly readOnly = mappedSuperclass.getReadOnly();
-		assertEquals(Boolean.TRUE, readOnly.getSpecifiedReadOnly());
-		
-		
-		JavaResourcePersistentType typeResource = getJpaProject().getJavaResourcePersistentType(FULLY_QUALIFIED_TYPE_NAME);
-		typeResource.removeSupportingAnnotation(ReadOnlyAnnotation.ANNOTATION_NAME);
-		
-		assertEquals(null, readOnly.getSpecifiedReadOnly());
-		assertEquals(false, readOnly.isDefaultReadOnly());
-		
-		typeResource.addSupportingAnnotation(ReadOnlyAnnotation.ANNOTATION_NAME);
-		assertEquals(Boolean.TRUE, readOnly.getSpecifiedReadOnly());
-	}
-
-	public void testGetCustomizerClass() throws Exception {
-		createTestMappedSuperclassWithConvertAndCustomizerClass();
-		addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
-		
-		Customizer customizer = ((EclipseLinkMappedSuperclass) getJavaPersistentType().getMapping()).getCustomizer();
-		
-		assertEquals("Foo", customizer.getSpecifiedCustomizerClass());
-	}
-
-	public void testSetCustomizerClass() throws Exception {
-		createTestMappedSuperclassWithConvertAndCustomizerClass();
-		addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
-		
-		Customizer customizer = ((EclipseLinkMappedSuperclass) getJavaPersistentType().getMapping()).getCustomizer();
-		assertEquals("Foo", customizer.getSpecifiedCustomizerClass());
-		
-		customizer.setSpecifiedCustomizerClass("Bar");
-		assertEquals("Bar", customizer.getSpecifiedCustomizerClass());
-			
-		JavaResourcePersistentType typeResource = getJpaProject().getJavaResourcePersistentType(FULLY_QUALIFIED_TYPE_NAME);
-		CustomizerAnnotation customizerAnnotation = (CustomizerAnnotation) typeResource.getSupportingAnnotation(CustomizerAnnotation.ANNOTATION_NAME);		
-		assertEquals("Bar", customizerAnnotation.getValue());
-
-		
-		customizer.setSpecifiedCustomizerClass(null);
-		assertEquals(null, customizer.getSpecifiedCustomizerClass());
-		customizerAnnotation = (CustomizerAnnotation) typeResource.getSupportingAnnotation(CustomizerAnnotation.ANNOTATION_NAME);		
-		assertEquals(null, customizerAnnotation);
-
-
-		customizer.setSpecifiedCustomizerClass("Bar");
-		assertEquals("Bar", customizer.getSpecifiedCustomizerClass());
-		customizerAnnotation = (CustomizerAnnotation) typeResource.getSupportingAnnotation(CustomizerAnnotation.ANNOTATION_NAME);		
-		assertEquals("Bar", customizerAnnotation.getValue());
-	}
-	
-	public void testGetCustomizerClassUpdatesFromResourceModelChange() throws Exception {
-		createTestMappedSuperclassWithConvertAndCustomizerClass();
-		addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
-		EclipseLinkMappedSuperclass mappedSuperclass = (EclipseLinkMappedSuperclass) getJavaPersistentType().getMapping();
-		Customizer customizer = mappedSuperclass.getCustomizer();
-
-		assertEquals("Foo", customizer.getSpecifiedCustomizerClass());
-		
-		JavaResourcePersistentType typeResource = getJpaProject().getJavaResourcePersistentType(FULLY_QUALIFIED_TYPE_NAME);
-		CustomizerAnnotation customizerAnnotation = (CustomizerAnnotation) typeResource.getSupportingAnnotation(CustomizerAnnotation.ANNOTATION_NAME);
-		customizerAnnotation.setValue("Bar");
-		assertEquals("Bar", customizer.getSpecifiedCustomizerClass());
-		
-		typeResource.removeSupportingAnnotation(CustomizerAnnotation.ANNOTATION_NAME);
-		assertEquals(null, customizer.getSpecifiedCustomizerClass());
-		
-		customizerAnnotation = (CustomizerAnnotation) typeResource.addSupportingAnnotation(CustomizerAnnotation.ANNOTATION_NAME);		
-		assertEquals(null, customizer.getSpecifiedCustomizerClass());
-		
-		customizerAnnotation.setValue("FooBar");
-		assertEquals("FooBar", customizer.getSpecifiedCustomizerClass());	
-	}
-	
-	public void testGetChangeTracking() throws Exception {
-		createTestMappedSuperclassWithChangeTracking();
-		addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
-		
-		EclipseLinkMappedSuperclass mappedSuperclass = (EclipseLinkMappedSuperclass) getJavaPersistentType().getMapping();
-		ChangeTracking contextChangeTracking = mappedSuperclass.getChangeTracking();
-		JavaResourcePersistentType typeResource = getJpaProject().getJavaResourcePersistentType(FULLY_QUALIFIED_TYPE_NAME);
-		ChangeTrackingAnnotation resourceChangeTracking = (ChangeTrackingAnnotation) typeResource.getSupportingAnnotation(ChangeTrackingAnnotation.ANNOTATION_NAME);
-		
-		// base annotated, test context value
-		
-		assertNull(resourceChangeTracking.getValue());
-		assertEquals(ChangeTrackingType.AUTO, contextChangeTracking.getType());
-		assertEquals(ChangeTrackingType.AUTO, contextChangeTracking.getDefaultType());
-		assertEquals(ChangeTrackingType.AUTO, contextChangeTracking.getSpecifiedType());
-		
-		// change resource to ATTRIBUTE specifically, test context
-		
-		resourceChangeTracking.setValue(org.eclipse.jpt.eclipselink.core.resource.java.ChangeTrackingType.ATTRIBUTE);
-		
-		assertEquals(org.eclipse.jpt.eclipselink.core.resource.java.ChangeTrackingType.ATTRIBUTE, resourceChangeTracking.getValue());
-		assertEquals(ChangeTrackingType.ATTRIBUTE, contextChangeTracking.getType());
-		assertEquals(ChangeTrackingType.AUTO, contextChangeTracking.getDefaultType());
-		assertEquals(ChangeTrackingType.ATTRIBUTE, contextChangeTracking.getSpecifiedType());
-		
-		// change resource to OBJECT specifically, test context
-		
-		resourceChangeTracking.setValue(org.eclipse.jpt.eclipselink.core.resource.java.ChangeTrackingType.OBJECT);
-		
-		assertEquals(org.eclipse.jpt.eclipselink.core.resource.java.ChangeTrackingType.OBJECT, resourceChangeTracking.getValue());
-		assertEquals(ChangeTrackingType.OBJECT, contextChangeTracking.getType());
-		assertEquals(ChangeTrackingType.AUTO, contextChangeTracking.getDefaultType());
-		assertEquals(ChangeTrackingType.OBJECT, contextChangeTracking.getSpecifiedType());
-		
-		// change resource to DEFERRED specifically, test context
-		
-		resourceChangeTracking.setValue(org.eclipse.jpt.eclipselink.core.resource.java.ChangeTrackingType.DEFERRED);
-		
-		assertEquals(org.eclipse.jpt.eclipselink.core.resource.java.ChangeTrackingType.DEFERRED, resourceChangeTracking.getValue());
-		assertEquals(ChangeTrackingType.DEFERRED, contextChangeTracking.getType());
-		assertEquals(ChangeTrackingType.AUTO, contextChangeTracking.getDefaultType());
-		assertEquals(ChangeTrackingType.DEFERRED, contextChangeTracking.getSpecifiedType());
-		
-		// change resource to AUTO specifically, test context
-		
-		resourceChangeTracking.setValue(org.eclipse.jpt.eclipselink.core.resource.java.ChangeTrackingType.AUTO);
-		
-		assertEquals(org.eclipse.jpt.eclipselink.core.resource.java.ChangeTrackingType.AUTO, resourceChangeTracking.getValue());
-		assertEquals(ChangeTrackingType.AUTO, contextChangeTracking.getType());
-		assertEquals(ChangeTrackingType.AUTO, contextChangeTracking.getDefaultType());
-		assertEquals(ChangeTrackingType.AUTO, contextChangeTracking.getSpecifiedType());
-		
-		// remove value from resource, test context
-		
-		resourceChangeTracking.setValue(null);
-		
-		assertNull(resourceChangeTracking.getValue());
-		assertEquals(ChangeTrackingType.AUTO, contextChangeTracking.getType());
-		assertEquals(ChangeTrackingType.AUTO, contextChangeTracking.getDefaultType());
-		assertEquals(ChangeTrackingType.AUTO, contextChangeTracking.getSpecifiedType());
-		
-		// remove annotation, text context
-		
-		typeResource.removeSupportingAnnotation(ChangeTrackingAnnotation.ANNOTATION_NAME);
-		
-		assertNull(resourceChangeTracking.getValue());
-		assertEquals(ChangeTrackingType.AUTO, contextChangeTracking.getType());
-		assertEquals(ChangeTrackingType.AUTO, contextChangeTracking.getDefaultType());
-		assertNull(contextChangeTracking.getSpecifiedType());
-	}
-	
-	public void testSetChangeTracking() throws Exception {
-		createTestMappedSuperclassWithChangeTracking();
-		addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
-		
-		EclipseLinkMappedSuperclass mappedSuperclass = (EclipseLinkMappedSuperclass) getJavaPersistentType().getMapping();
-		ChangeTracking contextChangeTracking = mappedSuperclass.getChangeTracking();
-		JavaResourcePersistentType typeResource = getJpaProject().getJavaResourcePersistentType(FULLY_QUALIFIED_TYPE_NAME);
-		ChangeTrackingAnnotation resourceChangeTracking = (ChangeTrackingAnnotation) typeResource.getSupportingAnnotation(ChangeTrackingAnnotation.ANNOTATION_NAME);
-		
-		// base annotated, test resource value
-		
-		assertNull(resourceChangeTracking.getValue());
-		assertEquals(ChangeTrackingType.AUTO, contextChangeTracking.getSpecifiedType());
-		
-		// change context to AUTO specifically, test resource
-		
-		contextChangeTracking.setSpecifiedType(ChangeTrackingType.AUTO);
-		
-		assertNull(resourceChangeTracking.getValue());
-		assertEquals(ChangeTrackingType.AUTO, contextChangeTracking.getSpecifiedType());
-		
-		// change context to ATTRIBUTE specifically, test resource
-		
-		contextChangeTracking.setSpecifiedType(ChangeTrackingType.ATTRIBUTE);
-		
-		assertEquals(org.eclipse.jpt.eclipselink.core.resource.java.ChangeTrackingType.ATTRIBUTE, resourceChangeTracking.getValue());
-		assertEquals(ChangeTrackingType.ATTRIBUTE, contextChangeTracking.getSpecifiedType());
-		
-		// change context to OBJECT specifically, test resource
-		
-		contextChangeTracking.setSpecifiedType(ChangeTrackingType.OBJECT);
-		
-		assertEquals(org.eclipse.jpt.eclipselink.core.resource.java.ChangeTrackingType.OBJECT, resourceChangeTracking.getValue());
-		assertEquals(ChangeTrackingType.OBJECT, contextChangeTracking.getSpecifiedType());
-		
-		// change context to DEFERRED specifically, test resource
-		
-		contextChangeTracking.setSpecifiedType(ChangeTrackingType.DEFERRED);
-		
-		assertEquals(org.eclipse.jpt.eclipselink.core.resource.java.ChangeTrackingType.DEFERRED, resourceChangeTracking.getValue());
-		assertEquals(ChangeTrackingType.DEFERRED, contextChangeTracking.getSpecifiedType());
-		
-		// change context to null, test resource
-		
-		contextChangeTracking.setSpecifiedType(null);
-		
-		assertNull(typeResource.getSupportingAnnotation(ChangeTrackingAnnotation.ANNOTATION_NAME));
-		assertNull(contextChangeTracking.getSpecifiedType());
-		
-		// change context to AUTO specifically (this time from no annotation), test resource
-		
-		contextChangeTracking.setSpecifiedType(ChangeTrackingType.AUTO);
-		resourceChangeTracking = (ChangeTrackingAnnotation) typeResource.getSupportingAnnotation(ChangeTrackingAnnotation.ANNOTATION_NAME);
-		
-		assertEquals(org.eclipse.jpt.eclipselink.core.resource.java.ChangeTrackingType.AUTO, resourceChangeTracking.getValue());
-		assertEquals(ChangeTrackingType.AUTO, contextChangeTracking.getSpecifiedType());
-	}
-}
diff --git a/jpa/tests/org.eclipse.jpt.eclipselink.core.tests/src/org/eclipse/jpt/eclipselink/core/tests/internal/context/java/EclipseLinkJavaObjectTypeConverterTests.java b/jpa/tests/org.eclipse.jpt.eclipselink.core.tests/src/org/eclipse/jpt/eclipselink/core/tests/internal/context/java/EclipseLinkJavaObjectTypeConverterTests.java
deleted file mode 100644
index ce132dc..0000000
--- a/jpa/tests/org.eclipse.jpt.eclipselink.core.tests/src/org/eclipse/jpt/eclipselink/core/tests/internal/context/java/EclipseLinkJavaObjectTypeConverterTests.java
+++ /dev/null
@@ -1,621 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.eclipselink.core.tests.internal.context.java;
-
-import java.util.Iterator;
-import java.util.ListIterator;
-import org.eclipse.jdt.core.ICompilationUnit;
-import org.eclipse.jpt.core.context.BasicMapping;
-import org.eclipse.jpt.core.context.PersistentAttribute;
-import org.eclipse.jpt.core.resource.java.JPA;
-import org.eclipse.jpt.core.resource.java.JavaResourcePersistentAttribute;
-import org.eclipse.jpt.core.resource.java.JavaResourcePersistentType;
-import org.eclipse.jpt.eclipselink.core.context.ConversionValue;
-import org.eclipse.jpt.eclipselink.core.context.Convert;
-import org.eclipse.jpt.eclipselink.core.context.ObjectTypeConverter;
-import org.eclipse.jpt.eclipselink.core.resource.java.ConversionValueAnnotation;
-import org.eclipse.jpt.eclipselink.core.resource.java.EclipseLinkJPA;
-import org.eclipse.jpt.eclipselink.core.resource.java.ObjectTypeConverterAnnotation;
-import org.eclipse.jpt.eclipselink.core.tests.internal.context.EclipseLinkContextModelTestCase;
-import org.eclipse.jpt.utility.internal.CollectionTools;
-import org.eclipse.jpt.utility.internal.iterators.ArrayIterator;
-
-@SuppressWarnings("nls")
-public class EclipseLinkJavaObjectTypeConverterTests extends EclipseLinkContextModelTestCase
-{
-	
-	private ICompilationUnit createTestEntityWithConvertAndObjectTypeConverter() throws Exception {
-		return this.createTestType(new DefaultAnnotationWriter() {
-			@Override
-			public Iterator<String> imports() {
-				return new ArrayIterator<String>(JPA.ENTITY, EclipseLinkJPA.CONVERT, EclipseLinkJPA.OBJECT_TYPE_CONVERTER, EclipseLinkJPA.CONVERSION_VALUE);
-			}
-			@Override
-			public void appendTypeAnnotationTo(StringBuilder sb) {
-				sb.append("@Entity");
-			}
-			
-			@Override
-			public void appendIdFieldAnnotationTo(StringBuilder sb) {
-				sb.append("@Convert(\"foo\")").append(CR);
-				sb.append("    @ObjectTypeConverter(name=\"foo\", defaultObjectValue=\"bar\")");
-			}
-		});
-	}
-	
-	private ICompilationUnit createTestEntityWithConvertAndDataType() throws Exception {
-		return this.createTestType(new DefaultAnnotationWriter() {
-			@Override
-			public Iterator<String> imports() {
-				return new ArrayIterator<String>(JPA.ENTITY, EclipseLinkJPA.CONVERT, EclipseLinkJPA.OBJECT_TYPE_CONVERTER);
-			}
-			@Override
-			public void appendTypeAnnotationTo(StringBuilder sb) {
-				sb.append("@Entity");
-			}
-			
-			@Override
-			public void appendIdFieldAnnotationTo(StringBuilder sb) {
-				sb.append("@Convert(\"foo\")").append(CR);
-				sb.append("    @ObjectTypeConverter(dataType=Foo.class)");
-			}
-		});
-	}
-	
-	private ICompilationUnit createTestEntityWithConvertAndObjectType() throws Exception {
-		return this.createTestType(new DefaultAnnotationWriter() {
-			@Override
-			public Iterator<String> imports() {
-				return new ArrayIterator<String>(JPA.ENTITY, EclipseLinkJPA.CONVERT, EclipseLinkJPA.OBJECT_TYPE_CONVERTER);
-			}
-			@Override
-			public void appendTypeAnnotationTo(StringBuilder sb) {
-				sb.append("@Entity");
-			}
-			
-			@Override
-			public void appendIdFieldAnnotationTo(StringBuilder sb) {
-				sb.append("@Convert(\"foo\")").append(CR);
-				sb.append("    @ObjectTypeConverter(objectType=Foo.class)");
-			}
-		});
-	}
-	
-	private ICompilationUnit createTestEntityWithConvertAndObjectTypeConverterConversionValue() throws Exception {
-		return this.createTestType(new DefaultAnnotationWriter() {
-			@Override
-			public Iterator<String> imports() {
-				return new ArrayIterator<String>(JPA.ENTITY, EclipseLinkJPA.CONVERT, EclipseLinkJPA.OBJECT_TYPE_CONVERTER, EclipseLinkJPA.CONVERSION_VALUE);
-			}
-			@Override
-			public void appendTypeAnnotationTo(StringBuilder sb) {
-				sb.append("@Entity");
-			}
-			
-			@Override
-			public void appendIdFieldAnnotationTo(StringBuilder sb) {
-				sb.append("@Convert(\"foo\")").append(CR);
-				sb.append("    @ObjectTypeConverter(name=\"foo\", defaultObjectValue=\"bar\", conversionValues = @ConversionValue(dataValue=\"f\", objectValue=\"female\"))");
-			}
-		});
-	}
-
-	public EclipseLinkJavaObjectTypeConverterTests(String name) {
-		super(name);
-	}
-
-
-	public void testGetName() throws Exception {
-		createTestEntityWithConvertAndObjectTypeConverter();
-		addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
-		
-		PersistentAttribute persistentAttribute = getJavaPersistentType().attributes().next();
-		BasicMapping basicMapping = (BasicMapping) persistentAttribute.getMapping();
-		Convert eclipseLinkConvert = (Convert) basicMapping.getConverter();
-		ObjectTypeConverter converter = (ObjectTypeConverter) eclipseLinkConvert.getConverter();
-		
-		assertEquals("foo", converter.getName());
-	}
-
-	public void testSetName() throws Exception {
-		createTestEntityWithConvertAndObjectTypeConverter();
-		addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
-		
-		PersistentAttribute persistentAttribute = getJavaPersistentType().attributes().next();
-		BasicMapping basicMapping = (BasicMapping) persistentAttribute.getMapping();
-		Convert eclipseLinkConvert = (Convert) basicMapping.getConverter();
-		ObjectTypeConverter converter = (ObjectTypeConverter) eclipseLinkConvert.getConverter();
-		assertEquals("foo", converter.getName());
-		
-		converter.setName("bar");
-		assertEquals("bar", converter.getName());
-			
-		JavaResourcePersistentType typeResource = getJpaProject().getJavaResourcePersistentType(FULLY_QUALIFIED_TYPE_NAME);
-		JavaResourcePersistentAttribute attributeResource = typeResource.persistableAttributes().next();
-		ObjectTypeConverterAnnotation converterAnnotation = (ObjectTypeConverterAnnotation) attributeResource.getSupportingAnnotation(ObjectTypeConverterAnnotation.ANNOTATION_NAME);		
-		assertEquals("bar", converterAnnotation.getName());
-
-		
-		converter.setName(null);
-		assertEquals(null, converter.getName());
-		converterAnnotation = (ObjectTypeConverterAnnotation) attributeResource.getSupportingAnnotation(ObjectTypeConverterAnnotation.ANNOTATION_NAME);		
-		assertEquals(null, converterAnnotation.getName());
-
-
-		converter.setName("bar");
-		assertEquals("bar", converter.getName());
-		converterAnnotation = (ObjectTypeConverterAnnotation) attributeResource.getSupportingAnnotation(ObjectTypeConverterAnnotation.ANNOTATION_NAME);		
-		assertEquals("bar", converterAnnotation.getName());
-	}
-	
-	public void testGetNameUpdatesFromResourceModelChange() throws Exception {
-		createTestEntityWithConvertAndObjectTypeConverter();
-		addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
-				
-		PersistentAttribute persistentAttribute = getJavaPersistentType().attributes().next();
-		BasicMapping basicMapping = (BasicMapping) persistentAttribute.getMapping();
-		Convert eclipseLinkConvert = (Convert) basicMapping.getConverter();
-		ObjectTypeConverter converter = (ObjectTypeConverter) eclipseLinkConvert.getConverter();
-
-		assertEquals("foo", converter.getName());
-		
-		JavaResourcePersistentType typeResource = getJpaProject().getJavaResourcePersistentType(FULLY_QUALIFIED_TYPE_NAME);
-		JavaResourcePersistentAttribute attributeResource = typeResource.persistableAttributes().next();
-		ObjectTypeConverterAnnotation converterAnnotation = (ObjectTypeConverterAnnotation) attributeResource.getSupportingAnnotation(ObjectTypeConverterAnnotation.ANNOTATION_NAME);
-		converterAnnotation.setName("bar");
-		assertEquals("bar", converter.getName());
-		
-		attributeResource.removeSupportingAnnotation(ObjectTypeConverterAnnotation.ANNOTATION_NAME);
-		assertEquals(null, eclipseLinkConvert.getConverter());
-		
-		converterAnnotation = (ObjectTypeConverterAnnotation) attributeResource.addSupportingAnnotation(ObjectTypeConverterAnnotation.ANNOTATION_NAME);		
-		assertNotNull(eclipseLinkConvert.getConverter());
-		
-		converterAnnotation.setName("FOO");
-		assertEquals("FOO", eclipseLinkConvert.getConverter().getName());	
-	}
-
-	public void testGetDataType() throws Exception {
-		createTestEntityWithConvertAndDataType();
-		addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
-		
-		PersistentAttribute persistentAttribute = getJavaPersistentType().attributes().next();
-		BasicMapping basicMapping = (BasicMapping) persistentAttribute.getMapping();
-		Convert eclipseLinkConvert = (Convert) basicMapping.getConverter();
-		ObjectTypeConverter converter = (ObjectTypeConverter) eclipseLinkConvert.getConverter();
-		
-		assertEquals("Foo", converter.getDataType());
-	}
-
-	public void testSetDataType() throws Exception {
-		createTestEntityWithConvertAndDataType();
-		addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
-		
-		PersistentAttribute persistentAttribute = getJavaPersistentType().attributes().next();
-		BasicMapping basicMapping = (BasicMapping) persistentAttribute.getMapping();
-		Convert eclipseLinkConvert = (Convert) basicMapping.getConverter();
-		ObjectTypeConverter converter = (ObjectTypeConverter) eclipseLinkConvert.getConverter();
-		assertEquals("Foo", converter.getDataType());
-		
-		converter.setDataType("Bar");
-		assertEquals("Bar", converter.getDataType());
-			
-		JavaResourcePersistentType typeResource = getJpaProject().getJavaResourcePersistentType(FULLY_QUALIFIED_TYPE_NAME);
-		JavaResourcePersistentAttribute attributeResource = typeResource.persistableAttributes().next();
-		ObjectTypeConverterAnnotation converterAnnotation = (ObjectTypeConverterAnnotation) attributeResource.getSupportingAnnotation(ObjectTypeConverterAnnotation.ANNOTATION_NAME);		
-		assertEquals("Bar", converterAnnotation.getDataType());
-
-		
-		converter.setDataType(null);
-		assertEquals(null, converter.getDataType());
-		converterAnnotation = (ObjectTypeConverterAnnotation) attributeResource.getSupportingAnnotation(ObjectTypeConverterAnnotation.ANNOTATION_NAME);		
-		assertEquals(null, converterAnnotation.getDataType());
-
-
-		converter.setDataType("Bar");
-		assertEquals("Bar", converter.getDataType());
-		converterAnnotation = (ObjectTypeConverterAnnotation) attributeResource.getSupportingAnnotation(ObjectTypeConverterAnnotation.ANNOTATION_NAME);		
-		assertEquals("Bar", converterAnnotation.getDataType());
-	}
-	
-	public void testGetDataTypeUpdatesFromResourceModelChange() throws Exception {
-		createTestEntityWithConvertAndDataType();
-		addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
-				
-		PersistentAttribute persistentAttribute = getJavaPersistentType().attributes().next();
-		BasicMapping basicMapping = (BasicMapping) persistentAttribute.getMapping();
-		Convert eclipseLinkConvert = (Convert) basicMapping.getConverter();
-		ObjectTypeConverter converter = (ObjectTypeConverter) eclipseLinkConvert.getConverter();
-
-		assertEquals("Foo", converter.getDataType());
-		
-		JavaResourcePersistentType typeResource = getJpaProject().getJavaResourcePersistentType(FULLY_QUALIFIED_TYPE_NAME);
-		JavaResourcePersistentAttribute attributeResource = typeResource.persistableAttributes().next();
-		ObjectTypeConverterAnnotation converterAnnotation = (ObjectTypeConverterAnnotation) attributeResource.getSupportingAnnotation(ObjectTypeConverterAnnotation.ANNOTATION_NAME);
-		converterAnnotation.setDataType("Bar");
-		assertEquals("Bar", converter.getDataType());
-		
-		attributeResource.removeSupportingAnnotation(ObjectTypeConverterAnnotation.ANNOTATION_NAME);
-		assertEquals(null, eclipseLinkConvert.getConverter());
-		
-		converterAnnotation = (ObjectTypeConverterAnnotation) attributeResource.addSupportingAnnotation(ObjectTypeConverterAnnotation.ANNOTATION_NAME);		
-		assertNotNull(eclipseLinkConvert.getConverter());
-		
-		converterAnnotation.setDataType("FooBar");
-		assertEquals("FooBar", ((ObjectTypeConverter) eclipseLinkConvert.getConverter()).getDataType());	
-	}
-	
-	public void testGetObjectType() throws Exception {
-		createTestEntityWithConvertAndObjectType();
-		addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
-		
-		PersistentAttribute persistentAttribute = getJavaPersistentType().attributes().next();
-		BasicMapping basicMapping = (BasicMapping) persistentAttribute.getMapping();
-		Convert eclipseLinkConvert = (Convert) basicMapping.getConverter();
-		ObjectTypeConverter converter = (ObjectTypeConverter) eclipseLinkConvert.getConverter();
-		
-		assertEquals("Foo", converter.getObjectType());
-	}
-
-	public void testSetObjectType() throws Exception {
-		createTestEntityWithConvertAndObjectType();
-		addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
-		
-		PersistentAttribute persistentAttribute = getJavaPersistentType().attributes().next();
-		BasicMapping basicMapping = (BasicMapping) persistentAttribute.getMapping();
-		Convert eclipseLinkConvert = (Convert) basicMapping.getConverter();
-		ObjectTypeConverter converter = (ObjectTypeConverter) eclipseLinkConvert.getConverter();
-		assertEquals("Foo", converter.getObjectType());
-		
-		converter.setObjectType("Bar");
-		assertEquals("Bar", converter.getObjectType());
-			
-		JavaResourcePersistentType typeResource = getJpaProject().getJavaResourcePersistentType(FULLY_QUALIFIED_TYPE_NAME);
-		JavaResourcePersistentAttribute attributeResource = typeResource.persistableAttributes().next();
-		ObjectTypeConverterAnnotation converterAnnotation = (ObjectTypeConverterAnnotation) attributeResource.getSupportingAnnotation(ObjectTypeConverterAnnotation.ANNOTATION_NAME);		
-		assertEquals("Bar", converterAnnotation.getObjectType());
-
-		
-		converter.setObjectType(null);
-		assertEquals(null, converter.getObjectType());
-		converterAnnotation = (ObjectTypeConverterAnnotation) attributeResource.getSupportingAnnotation(ObjectTypeConverterAnnotation.ANNOTATION_NAME);		
-		assertEquals(null, converterAnnotation.getObjectType());
-
-
-		converter.setObjectType("Bar");
-		assertEquals("Bar", converter.getObjectType());
-		converterAnnotation = (ObjectTypeConverterAnnotation) attributeResource.getSupportingAnnotation(ObjectTypeConverterAnnotation.ANNOTATION_NAME);		
-		assertEquals("Bar", converterAnnotation.getObjectType());
-	}
-	
-	public void testGetObjectTypeUpdatesFromResourceModelChange() throws Exception {
-		createTestEntityWithConvertAndObjectType();
-		addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
-				
-		PersistentAttribute persistentAttribute = getJavaPersistentType().attributes().next();
-		BasicMapping basicMapping = (BasicMapping) persistentAttribute.getMapping();
-		Convert eclipseLinkConvert = (Convert) basicMapping.getConverter();
-		ObjectTypeConverter converter = (ObjectTypeConverter) eclipseLinkConvert.getConverter();
-
-		assertEquals("Foo", converter.getObjectType());
-		
-		JavaResourcePersistentType typeResource = getJpaProject().getJavaResourcePersistentType(FULLY_QUALIFIED_TYPE_NAME);
-		JavaResourcePersistentAttribute attributeResource = typeResource.persistableAttributes().next();
-		ObjectTypeConverterAnnotation converterAnnotation = (ObjectTypeConverterAnnotation) attributeResource.getSupportingAnnotation(ObjectTypeConverterAnnotation.ANNOTATION_NAME);
-		converterAnnotation.setObjectType("Bar");
-		assertEquals("Bar", converter.getObjectType());
-		
-		attributeResource.removeSupportingAnnotation(ObjectTypeConverterAnnotation.ANNOTATION_NAME);
-		assertEquals(null, eclipseLinkConvert.getConverter());
-		
-		converterAnnotation = (ObjectTypeConverterAnnotation) attributeResource.addSupportingAnnotation(ObjectTypeConverterAnnotation.ANNOTATION_NAME);		
-		assertNotNull(eclipseLinkConvert.getConverter());
-		
-		converterAnnotation.setObjectType("FooBar");
-		assertEquals("FooBar", ((ObjectTypeConverter) eclipseLinkConvert.getConverter()).getObjectType());	
-	}
-	
-	
-	public void testAddConversionValue() throws Exception {
-		createTestEntityWithConvertAndObjectTypeConverter();
-		addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
-		
-		PersistentAttribute persistentAttribute = getJavaPersistentType().attributes().next();
-		BasicMapping basicMapping = (BasicMapping) persistentAttribute.getMapping();
-		Convert eclipseLinkConvert = (Convert) basicMapping.getConverter();
-		ObjectTypeConverter converter = (ObjectTypeConverter) eclipseLinkConvert.getConverter();
-		
-		JavaResourcePersistentType typeResource = getJpaProject().getJavaResourcePersistentType(FULLY_QUALIFIED_TYPE_NAME);
-		JavaResourcePersistentAttribute attributeResource = typeResource.persistableAttributes().next();
-		ObjectTypeConverterAnnotation converterAnnotation = (ObjectTypeConverterAnnotation) attributeResource.getSupportingAnnotation(ObjectTypeConverterAnnotation.ANNOTATION_NAME);
-		
-		ConversionValue conversionValue = converter.addConversionValue(0);
-		conversionValue.setDataValue("F");
-		conversionValue.setObjectValue("female");
-		
-		ListIterator<ConversionValueAnnotation> resourceConversionValues = converterAnnotation.conversionValues();
-		ConversionValueAnnotation resourceConversionValue = resourceConversionValues.next();
-		assertEquals("F", resourceConversionValue.getDataValue());
-		assertEquals("female", resourceConversionValue.getObjectValue());
-		
-		ConversionValue conversionValue2 = converter.addConversionValue(0);
-		conversionValue2.setDataValue("M");
-		conversionValue2.setObjectValue("male");
-		
-		resourceConversionValues = converterAnnotation.conversionValues();
-		resourceConversionValue = resourceConversionValues.next();
-		assertEquals("M", resourceConversionValue.getDataValue());
-		assertEquals("male", resourceConversionValue.getObjectValue());
-		resourceConversionValue = resourceConversionValues.next();
-		assertEquals("F", resourceConversionValue.getDataValue());
-		assertEquals("female", resourceConversionValue.getObjectValue());
-		
-		ConversionValue conversionValue3 = converter.addConversionValue(1);
-		conversionValue3.setDataValue("O");
-		conversionValue3.setObjectValue("male");
-		
-		resourceConversionValues = converterAnnotation.conversionValues();
-		resourceConversionValue = resourceConversionValues.next();
-		assertEquals("M", resourceConversionValue.getDataValue());
-		assertEquals("male", resourceConversionValue.getObjectValue());
-		resourceConversionValue = resourceConversionValues.next();
-		assertEquals("O", resourceConversionValue.getDataValue());
-		assertEquals("male", resourceConversionValue.getObjectValue());
-		resourceConversionValue = resourceConversionValues.next();
-		assertEquals("F", resourceConversionValue.getDataValue());
-		assertEquals("female", resourceConversionValue.getObjectValue());
-		
-		ListIterator<ConversionValue> conversionValues = converter.conversionValues();
-		assertEquals(conversionValue2, conversionValues.next());
-		assertEquals(conversionValue3, conversionValues.next());
-		assertEquals(conversionValue, conversionValues.next());
-		
-		conversionValues = converter.conversionValues();
-		assertEquals("M", conversionValues.next().getDataValue());
-		assertEquals("O", conversionValues.next().getDataValue());
-		assertEquals("F", conversionValues.next().getDataValue());
-	}
-	
-	public void testRemoveConversionValue() throws Exception {
-		createTestEntityWithConvertAndObjectTypeConverter();
-		addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
-
-		PersistentAttribute persistentAttribute = getJavaPersistentType().attributes().next();
-		BasicMapping basicMapping = (BasicMapping) persistentAttribute.getMapping();
-		Convert eclipseLinkConvert = (Convert) basicMapping.getConverter();
-		ObjectTypeConverter converter = (ObjectTypeConverter) eclipseLinkConvert.getConverter();
-		
-		JavaResourcePersistentType typeResource = getJpaProject().getJavaResourcePersistentType(FULLY_QUALIFIED_TYPE_NAME);
-		JavaResourcePersistentAttribute attributeResource = typeResource.persistableAttributes().next();
-		ObjectTypeConverterAnnotation converterAnnotation = (ObjectTypeConverterAnnotation) attributeResource.getSupportingAnnotation(ObjectTypeConverterAnnotation.ANNOTATION_NAME);
-		
-		converter.addConversionValue(0).setDataValue("F");
-		converter.addConversionValue(1).setDataValue("M");
-		converter.addConversionValue(2).setDataValue("O");
-		
-		ListIterator<ConversionValueAnnotation> resourceConversionValues = converterAnnotation.conversionValues();
-		assertEquals(3, CollectionTools.size(resourceConversionValues));
-		
-		converter.removeConversionValue(0);
-		resourceConversionValues = converterAnnotation.conversionValues();
-		assertEquals(2, CollectionTools.size(resourceConversionValues));
-		resourceConversionValues = converterAnnotation.conversionValues();
-		assertEquals("M", resourceConversionValues.next().getDataValue());
-		assertEquals("O", resourceConversionValues.next().getDataValue());
-
-		converter.removeConversionValue(0);
-		resourceConversionValues = converterAnnotation.conversionValues();
-		assertEquals(1, CollectionTools.size(resourceConversionValues));
-		resourceConversionValues = converterAnnotation.conversionValues();
-		assertEquals("O", resourceConversionValues.next().getDataValue());
-		
-		converter.removeConversionValue(0);
-		resourceConversionValues = converterAnnotation.conversionValues();
-		assertEquals(0, CollectionTools.size(resourceConversionValues));
-	}
-
-	public void testMoveConversionValue() throws Exception {
-		createTestEntityWithConvertAndObjectTypeConverter();
-		addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
-
-		PersistentAttribute persistentAttribute = getJavaPersistentType().attributes().next();
-		BasicMapping basicMapping = (BasicMapping) persistentAttribute.getMapping();
-		Convert eclipseLinkConvert = (Convert) basicMapping.getConverter();
-		ObjectTypeConverter converter = (ObjectTypeConverter) eclipseLinkConvert.getConverter();
-		
-		JavaResourcePersistentType typeResource = getJpaProject().getJavaResourcePersistentType(FULLY_QUALIFIED_TYPE_NAME);
-		JavaResourcePersistentAttribute attributeResource = typeResource.persistableAttributes().next();
-		ObjectTypeConverterAnnotation converterAnnotation = (ObjectTypeConverterAnnotation) attributeResource.getSupportingAnnotation(ObjectTypeConverterAnnotation.ANNOTATION_NAME);
-
-		converter.addConversionValue(0).setDataValue("F");
-		converter.addConversionValue(1).setDataValue("M");
-		converter.addConversionValue(2).setDataValue("O");
-		
-		ListIterator<ConversionValueAnnotation> resourceConversionValues = converterAnnotation.conversionValues();
-		assertEquals(3, CollectionTools.size(resourceConversionValues));
-		
-		converter.moveConversionValue(2,0);
-		resourceConversionValues = converterAnnotation.conversionValues();
-		assertEquals(3, CollectionTools.size(resourceConversionValues));
-		resourceConversionValues = converterAnnotation.conversionValues();
-		assertEquals("M", resourceConversionValues.next().getDataValue());
-		assertEquals("O", resourceConversionValues.next().getDataValue());
-		assertEquals("F", resourceConversionValues.next().getDataValue());
-		
-		converter.moveConversionValue(0,1);
-		resourceConversionValues = converterAnnotation.conversionValues();
-		assertEquals(3, CollectionTools.size(resourceConversionValues));
-		resourceConversionValues = converterAnnotation.conversionValues();
-		assertEquals("O", resourceConversionValues.next().getDataValue());
-		assertEquals("M", resourceConversionValues.next().getDataValue());
-		assertEquals("F", resourceConversionValues.next().getDataValue());
-	}
-	
-	public void testUpdateConversionValues() throws Exception {
-		createTestEntityWithConvertAndObjectTypeConverter();
-		addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
-
-		PersistentAttribute persistentAttribute = getJavaPersistentType().attributes().next();
-		BasicMapping basicMapping = (BasicMapping) persistentAttribute.getMapping();
-		Convert eclipseLinkConvert = (Convert) basicMapping.getConverter();
-		ObjectTypeConverter converter = (ObjectTypeConverter) eclipseLinkConvert.getConverter();
-		
-		JavaResourcePersistentType typeResource = getJpaProject().getJavaResourcePersistentType(FULLY_QUALIFIED_TYPE_NAME);
-		JavaResourcePersistentAttribute attributeResource = typeResource.persistableAttributes().next();
-		ObjectTypeConverterAnnotation converterAnnotation = (ObjectTypeConverterAnnotation) attributeResource.getSupportingAnnotation(ObjectTypeConverterAnnotation.ANNOTATION_NAME);
-		
-		converterAnnotation.addConversionValue(0).setDataValue("F");
-		converterAnnotation.addConversionValue(1).setDataValue("M");
-		converterAnnotation.addConversionValue(2).setDataValue("O");
-
-		ListIterator<ConversionValue> conversionValues = converter.conversionValues();
-		assertEquals("F", conversionValues.next().getDataValue());
-		assertEquals("M", conversionValues.next().getDataValue());
-		assertEquals("O", conversionValues.next().getDataValue());
-		assertFalse(conversionValues.hasNext());
-		
-		converterAnnotation.moveConversionValue(2, 0);
-		conversionValues = converter.conversionValues();
-		assertEquals("M", conversionValues.next().getDataValue());
-		assertEquals("O", conversionValues.next().getDataValue());
-		assertEquals("F", conversionValues.next().getDataValue());
-		assertFalse(conversionValues.hasNext());
-		
-		converterAnnotation.moveConversionValue(0, 1);
-		conversionValues = converter.conversionValues();
-		assertEquals("O", conversionValues.next().getDataValue());
-		assertEquals("M", conversionValues.next().getDataValue());
-		assertEquals("F", conversionValues.next().getDataValue());
-		assertFalse(conversionValues.hasNext());
-		
-		converterAnnotation.removeConversionValue(1);
-		conversionValues = converter.conversionValues();
-		assertEquals("O", conversionValues.next().getDataValue());
-		assertEquals("F", conversionValues.next().getDataValue());
-		assertFalse(conversionValues.hasNext());
-		
-		converterAnnotation.removeConversionValue(1);
-		conversionValues = converter.conversionValues();
-		assertEquals("O", conversionValues.next().getDataValue());
-		assertFalse(conversionValues.hasNext());
-		
-		converterAnnotation.removeConversionValue(0);
-		conversionValues = converter.conversionValues();
-		assertFalse(conversionValues.hasNext());
-	}
-	
-	public void testConversionValuesSize() throws Exception {
-		createTestEntityWithConvertAndObjectTypeConverter();
-		addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
-
-
-		PersistentAttribute persistentAttribute = getJavaPersistentType().attributes().next();
-		BasicMapping basicMapping = (BasicMapping) persistentAttribute.getMapping();
-		Convert eclipseLinkConvert = (Convert) basicMapping.getConverter();
-		ObjectTypeConverter converter = (ObjectTypeConverter) eclipseLinkConvert.getConverter();
-		
-		JavaResourcePersistentType typeResource = getJpaProject().getJavaResourcePersistentType(FULLY_QUALIFIED_TYPE_NAME);
-		JavaResourcePersistentAttribute attributeResource = typeResource.persistableAttributes().next();
-		ObjectTypeConverterAnnotation converterAnnotation = (ObjectTypeConverterAnnotation) attributeResource.getSupportingAnnotation(ObjectTypeConverterAnnotation.ANNOTATION_NAME);
-	
-		assertEquals(0, converter.conversionValuesSize());
-		
-		converterAnnotation.addConversionValue(0).setDataValue("F");
-		converterAnnotation.addConversionValue(1).setDataValue("M");
-		converterAnnotation.addConversionValue(2).setDataValue("O");
-		
-		assertEquals(3, converter.conversionValuesSize());
-	}
-
-
-	public void testGetDefaultObjectValue() throws Exception {
-		createTestEntityWithConvertAndObjectTypeConverter();
-		addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
-		
-		PersistentAttribute persistentAttribute = getJavaPersistentType().attributes().next();
-		BasicMapping basicMapping = (BasicMapping) persistentAttribute.getMapping();
-		Convert eclipseLinkConvert = (Convert) basicMapping.getConverter();
-		ObjectTypeConverter converter = (ObjectTypeConverter) eclipseLinkConvert.getConverter();
-		
-		assertEquals("bar", converter.getDefaultObjectValue());
-	}
-
-	public void testSetDefaultObjectValue() throws Exception {
-		createTestEntityWithConvertAndObjectTypeConverter();
-		addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
-		
-		PersistentAttribute persistentAttribute = getJavaPersistentType().attributes().next();
-		BasicMapping basicMapping = (BasicMapping) persistentAttribute.getMapping();
-		Convert eclipseLinkConvert = (Convert) basicMapping.getConverter();
-		ObjectTypeConverter converter = (ObjectTypeConverter) eclipseLinkConvert.getConverter();
-		assertEquals("bar", converter.getDefaultObjectValue());
-		
-		converter.setDefaultObjectValue("baz");
-		assertEquals("baz", converter.getDefaultObjectValue());
-			
-		JavaResourcePersistentType typeResource = getJpaProject().getJavaResourcePersistentType(FULLY_QUALIFIED_TYPE_NAME);
-		JavaResourcePersistentAttribute attributeResource = typeResource.persistableAttributes().next();
-		ObjectTypeConverterAnnotation converterAnnotation = (ObjectTypeConverterAnnotation) attributeResource.getSupportingAnnotation(ObjectTypeConverterAnnotation.ANNOTATION_NAME);		
-		assertEquals("baz", converterAnnotation.getDefaultObjectValue());
-
-		
-		converter.setDefaultObjectValue(null);
-		assertEquals(null, converter.getDefaultObjectValue());
-		converterAnnotation = (ObjectTypeConverterAnnotation) attributeResource.getSupportingAnnotation(ObjectTypeConverterAnnotation.ANNOTATION_NAME);		
-		assertEquals(null, converterAnnotation.getDefaultObjectValue());
-
-
-		converter.setDefaultObjectValue("bar");
-		assertEquals("bar", converter.getDefaultObjectValue());
-		converterAnnotation = (ObjectTypeConverterAnnotation) attributeResource.getSupportingAnnotation(ObjectTypeConverterAnnotation.ANNOTATION_NAME);		
-		assertEquals("bar", converterAnnotation.getDefaultObjectValue());
-	}
-	
-	public void testGetDefaultObjectValueUpdatesFromResourceModelChange() throws Exception {
-		createTestEntityWithConvertAndObjectTypeConverter();
-		addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
-				
-		PersistentAttribute persistentAttribute = getJavaPersistentType().attributes().next();
-		BasicMapping basicMapping = (BasicMapping) persistentAttribute.getMapping();
-		Convert eclipseLinkConvert = (Convert) basicMapping.getConverter();
-		ObjectTypeConverter converter = (ObjectTypeConverter) eclipseLinkConvert.getConverter();
-
-		assertEquals("bar", converter.getDefaultObjectValue());
-		
-		JavaResourcePersistentType typeResource = getJpaProject().getJavaResourcePersistentType(FULLY_QUALIFIED_TYPE_NAME);
-		JavaResourcePersistentAttribute attributeResource = typeResource.persistableAttributes().next();
-		ObjectTypeConverterAnnotation converterAnnotation = (ObjectTypeConverterAnnotation) attributeResource.getSupportingAnnotation(ObjectTypeConverterAnnotation.ANNOTATION_NAME);
-		converterAnnotation.setDefaultObjectValue("baz");
-		assertEquals("baz", converter.getDefaultObjectValue());
-		
-		attributeResource.removeSupportingAnnotation(ObjectTypeConverterAnnotation.ANNOTATION_NAME);
-		assertEquals(null, eclipseLinkConvert.getConverter());
-		
-		converterAnnotation = (ObjectTypeConverterAnnotation) attributeResource.addSupportingAnnotation(ObjectTypeConverterAnnotation.ANNOTATION_NAME);		
-		assertNotNull(eclipseLinkConvert.getConverter());
-		
-		converterAnnotation.setDefaultObjectValue("FOO");
-		assertEquals("FOO", ((ObjectTypeConverter) eclipseLinkConvert.getConverter()).getDefaultObjectValue());	
-	}
-	
-	public void testInitializeConversionValues() throws Exception {
-		createTestEntityWithConvertAndObjectTypeConverterConversionValue();
-		addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
-				
-		PersistentAttribute persistentAttribute = getJavaPersistentType().attributes().next();
-		BasicMapping basicMapping = (BasicMapping) persistentAttribute.getMapping();
-		Convert eclipseLinkConvert = (Convert) basicMapping.getConverter();
-		ObjectTypeConverter converter = (ObjectTypeConverter) eclipseLinkConvert.getConverter();
-
-		assertEquals(1, converter.conversionValuesSize());
-		assertEquals("f", converter.conversionValues().next().getDataValue());
-		assertEquals("female", converter.conversionValues().next().getObjectValue());
-	}
-}
diff --git a/jpa/tests/org.eclipse.jpt.eclipselink.core.tests/src/org/eclipse/jpt/eclipselink/core/tests/internal/context/java/EclipseLinkJavaOneToManyMappingTests.java b/jpa/tests/org.eclipse.jpt.eclipselink.core.tests/src/org/eclipse/jpt/eclipselink/core/tests/internal/context/java/EclipseLinkJavaOneToManyMappingTests.java
deleted file mode 100644
index 041b9b2..0000000
--- a/jpa/tests/org.eclipse.jpt.eclipselink.core.tests/src/org/eclipse/jpt/eclipselink/core/tests/internal/context/java/EclipseLinkJavaOneToManyMappingTests.java
+++ /dev/null
@@ -1,436 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008, 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.eclipselink.core.tests.internal.context.java;
-
-import java.util.Iterator;
-import java.util.ListIterator;
-import org.eclipse.jdt.core.ICompilationUnit;
-import org.eclipse.jpt.core.MappingKeys;
-import org.eclipse.jpt.core.context.FetchType;
-import org.eclipse.jpt.core.context.PersistentAttribute;
-import org.eclipse.jpt.core.context.java.JavaPersistentAttribute;
-import org.eclipse.jpt.core.resource.java.JPA;
-import org.eclipse.jpt.core.resource.java.JavaResourcePersistentAttribute;
-import org.eclipse.jpt.core.resource.java.JavaResourcePersistentType;
-import org.eclipse.jpt.core.resource.java.OneToManyAnnotation;
-import org.eclipse.jpt.eclipselink.core.context.EclipseLinkOneToManyMapping;
-import org.eclipse.jpt.eclipselink.core.context.EclipseLinkRelationshipMapping;
-import org.eclipse.jpt.eclipselink.core.context.JoinFetch;
-import org.eclipse.jpt.eclipselink.core.context.JoinFetchType;
-import org.eclipse.jpt.eclipselink.core.context.PrivateOwned;
-import org.eclipse.jpt.eclipselink.core.resource.java.EclipseLinkJPA;
-import org.eclipse.jpt.eclipselink.core.resource.java.JoinFetchAnnotation;
-import org.eclipse.jpt.eclipselink.core.resource.java.PrivateOwnedAnnotation;
-import org.eclipse.jpt.eclipselink.core.tests.internal.context.EclipseLinkContextModelTestCase;
-import org.eclipse.jpt.utility.internal.iterators.ArrayIterator;
-
-@SuppressWarnings("nls")
-public class EclipseLinkJavaOneToManyMappingTests extends EclipseLinkContextModelTestCase
-{
-	
-	private ICompilationUnit createTestEntityWithPrivateOwnedOneToMany() throws Exception {
-		return this.createTestType(new DefaultAnnotationWriter() {
-			@Override
-			public Iterator<String> imports() {
-				return new ArrayIterator<String>(JPA.ENTITY, JPA.ONE_TO_MANY, EclipseLinkJPA.PRIVATE_OWNED);
-			}
-			@Override
-			public void appendTypeAnnotationTo(StringBuilder sb) {
-				sb.append("@Entity").append(CR);
-			}
-			
-			@Override
-			public void appendIdFieldAnnotationTo(StringBuilder sb) {
-				sb.append("@OneToMany").append(CR);
-				sb.append("@PrivateOwned").append(CR);
-			}
-		});
-	}
-	
-	private ICompilationUnit createTestEntityWithJoinFetchOneToMany() throws Exception {
-		return this.createTestType(new DefaultAnnotationWriter() {
-			@Override
-			public Iterator<String> imports() {
-				return new ArrayIterator<String>(JPA.ENTITY, JPA.ONE_TO_MANY, EclipseLinkJPA.JOIN_FETCH);
-			}
-			@Override
-			public void appendTypeAnnotationTo(StringBuilder sb) {
-				sb.append("@Entity").append(CR);
-			}
-			
-			@Override
-			public void appendIdFieldAnnotationTo(StringBuilder sb) {
-				sb.append("@OneToMany").append(CR);
-				sb.append("@JoinFetch").append(CR);
-			}
-		});
-	}
-	
-	private ICompilationUnit createTestEntityWithDefaultOneToMany() throws Exception {
-		return this.createTestType(new DefaultAnnotationWriter() {
-			@Override
-			public Iterator<String> imports() {
-				return new ArrayIterator<String>(JPA.ENTITY);
-			}
-			
-			@Override
-			public void appendExtendsImplementsTo(StringBuilder sb) {
-				sb.append("implements java.io.Serializable");
-			}
-
-			@Override
-			public void appendTypeAnnotationTo(StringBuilder sb) {
-				sb.append("@Entity").append(CR);
-			}
-			
-			@Override
-			public void appendIdFieldAnnotationTo(StringBuilder sb) {
-				sb.append("private java.util.Collection<" + TYPE_NAME + "> myTypes;").append(CR);
-				sb.append(CR);
-			}
-		});
-	}
-
-	public EclipseLinkJavaOneToManyMappingTests(String name) {
-		super(name);
-	}
-
-
-	public void testGetPrivateOwned() throws Exception {
-		createTestEntityWithPrivateOwnedOneToMany();
-		addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
-		
-		PersistentAttribute persistentAttribute = getJavaPersistentType().attributes().next();
-		EclipseLinkOneToManyMapping oneToManyMapping = (EclipseLinkOneToManyMapping) persistentAttribute.getSpecifiedMapping();
-		PrivateOwned privateOwnable = oneToManyMapping.getPrivateOwned();
-		assertEquals(true, privateOwnable.isPrivateOwned());
-	}
-
-	public void testSetPrivateOwned() throws Exception {
-		createTestEntityWithPrivateOwnedOneToMany();
-		addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
-		
-		PersistentAttribute persistentAttribute = getJavaPersistentType().attributes().next();
-		EclipseLinkOneToManyMapping oneToManyMapping = (EclipseLinkOneToManyMapping) persistentAttribute.getSpecifiedMapping();
-		PrivateOwned privateOwnable = oneToManyMapping.getPrivateOwned();
-		assertEquals(true, privateOwnable.isPrivateOwned());
-		
-		privateOwnable.setPrivateOwned(false);
-		
-		JavaResourcePersistentType typeResource = getJpaProject().getJavaResourcePersistentType(FULLY_QUALIFIED_TYPE_NAME);
-		JavaResourcePersistentAttribute attributeResource = typeResource.persistableAttributes().next();
-		assertNull(attributeResource.getSupportingAnnotation(PrivateOwnedAnnotation.ANNOTATION_NAME));
-		assertEquals(false, privateOwnable.isPrivateOwned());
-
-		privateOwnable.setPrivateOwned(true);
-		assertNotNull(attributeResource.getSupportingAnnotation(PrivateOwnedAnnotation.ANNOTATION_NAME));
-		assertEquals(true, privateOwnable.isPrivateOwned());
-	}
-	
-	public void testPrivateOwnedUpdatesFromResourceModelChange() throws Exception {
-		createTestEntityWithPrivateOwnedOneToMany();
-		addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
-		
-		PersistentAttribute persistentAttribute = getJavaPersistentType().attributes().next();
-		EclipseLinkOneToManyMapping oneToManyMapping = (EclipseLinkOneToManyMapping) persistentAttribute.getSpecifiedMapping();
-		PrivateOwned privateOwnable = oneToManyMapping.getPrivateOwned();
-		assertEquals(true, privateOwnable.isPrivateOwned());
-		
-		
-		JavaResourcePersistentType typeResource = getJpaProject().getJavaResourcePersistentType(FULLY_QUALIFIED_TYPE_NAME);
-		JavaResourcePersistentAttribute attributeResource = typeResource.persistableAttributes().next();
-		attributeResource.removeSupportingAnnotation(PrivateOwnedAnnotation.ANNOTATION_NAME);
-		
-		assertEquals(false, privateOwnable.isPrivateOwned());
-		
-		attributeResource.addSupportingAnnotation(PrivateOwnedAnnotation.ANNOTATION_NAME);
-		assertEquals(true, privateOwnable.isPrivateOwned());
-	}
-	
-	public void testGetJoinFetchValue() throws Exception {
-		createTestEntityWithJoinFetchOneToMany();
-		addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
-		
-		PersistentAttribute persistentAttribute = getJavaPersistentType().attributes().next();
-		EclipseLinkRelationshipMapping manyToManyMapping = (EclipseLinkRelationshipMapping) persistentAttribute.getSpecifiedMapping();
-		JoinFetch contextJoinFetch = manyToManyMapping.getJoinFetch();
-		JavaResourcePersistentType typeResource = getJpaProject().getJavaResourcePersistentType(FULLY_QUALIFIED_TYPE_NAME);
-		JavaResourcePersistentAttribute attributeResource = typeResource.persistableAttributes().next();
-		JoinFetchAnnotation joinFetchAnnotation = (JoinFetchAnnotation) attributeResource.getSupportingAnnotation(JoinFetchAnnotation.ANNOTATION_NAME);
-		
-		// base annotated, test context value
-		
-		assertNull(joinFetchAnnotation.getValue());
-		assertEquals(JoinFetchType.INNER, contextJoinFetch.getValue());
-		
-		// change resource to INNER specifically, test context
-		
-		joinFetchAnnotation.setValue(org.eclipse.jpt.eclipselink.core.resource.java.JoinFetchType.INNER);
-		
-		assertEquals(org.eclipse.jpt.eclipselink.core.resource.java.JoinFetchType.INNER, joinFetchAnnotation.getValue());
-		assertEquals(JoinFetchType.INNER, contextJoinFetch.getValue());
-		
-		// change resource to OUTER, test context
-		
-		joinFetchAnnotation.setValue(org.eclipse.jpt.eclipselink.core.resource.java.JoinFetchType.OUTER);
-		
-		assertEquals(org.eclipse.jpt.eclipselink.core.resource.java.JoinFetchType.OUTER, joinFetchAnnotation.getValue());
-		assertEquals(JoinFetchType.OUTER, contextJoinFetch.getValue());
-		
-		// remove value from resource, test context
-		
-		joinFetchAnnotation.setValue(null);
-		
-		assertNull(joinFetchAnnotation.getValue());
-		assertEquals(JoinFetchType.INNER, contextJoinFetch.getValue());
-		
-		// remove annotation, text context
-		
-		attributeResource.removeSupportingAnnotation(JoinFetchAnnotation.ANNOTATION_NAME);
-		
-		assertNull(joinFetchAnnotation.getValue());
-		assertNull(contextJoinFetch.getValue());
-	}
-	
-	public void testSetJoinFetchValue() throws Exception {
-		createTestEntityWithJoinFetchOneToMany();
-		addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
-		
-		PersistentAttribute persistentAttribute = getJavaPersistentType().attributes().next();
-		EclipseLinkRelationshipMapping manyToManyMapping = (EclipseLinkRelationshipMapping) persistentAttribute.getSpecifiedMapping();
-		JoinFetch contextJoinFetch = manyToManyMapping.getJoinFetch();
-		JavaResourcePersistentType typeResource = getJpaProject().getJavaResourcePersistentType(FULLY_QUALIFIED_TYPE_NAME);
-		JavaResourcePersistentAttribute attributeResource = typeResource.persistableAttributes().next();
-		JoinFetchAnnotation joinFetchAnnotation = (JoinFetchAnnotation) attributeResource.getSupportingAnnotation(JoinFetchAnnotation.ANNOTATION_NAME);
-		
-		// base annotated, test resource value
-		
-		assertNull(joinFetchAnnotation.getValue());
-		assertEquals(JoinFetchType.INNER, contextJoinFetch.getValue());
-		
-		// change context to INNER specifically, test resource
-		
-		contextJoinFetch.setValue(JoinFetchType.INNER);
-		
-		assertNull(joinFetchAnnotation.getValue());
-		assertEquals(JoinFetchType.INNER, contextJoinFetch.getValue());
-		
-		// change context to OUTER, test resource
-		
-		contextJoinFetch.setValue(JoinFetchType.OUTER);
-		
-		assertEquals(org.eclipse.jpt.eclipselink.core.resource.java.JoinFetchType.OUTER, joinFetchAnnotation.getValue());
-		assertEquals(JoinFetchType.OUTER, contextJoinFetch.getValue());
-		
-		// set context to null, test resource
-		
-		contextJoinFetch.setValue(null);
-		
-		assertNull(attributeResource.getSupportingAnnotation(JoinFetchAnnotation.ANNOTATION_NAME));
-		assertNull(contextJoinFetch.getValue());
-		
-		// change context to INNER specifically (this time from no annotation), test resource
-		
-		contextJoinFetch.setValue(JoinFetchType.INNER);
-		joinFetchAnnotation = (JoinFetchAnnotation) attributeResource.getSupportingAnnotation(JoinFetchAnnotation.ANNOTATION_NAME);
-		
-		assertEquals(org.eclipse.jpt.eclipselink.core.resource.java.JoinFetchType.INNER, joinFetchAnnotation.getValue());
-		assertEquals(JoinFetchType.INNER, contextJoinFetch.getValue());
-	}
-	
-	
-	public void testDefaultOneToMany() throws Exception {
-		createTestEntityWithDefaultOneToMany();
-		addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
-
-		ListIterator<JavaPersistentAttribute> attributes = getJavaPersistentType().attributes();
-		JavaPersistentAttribute persistentAttribute = attributes.next();
-		assertNull(persistentAttribute.getSpecifiedMapping());
-		assertEquals(MappingKeys.ONE_TO_MANY_ATTRIBUTE_MAPPING_KEY, persistentAttribute.getDefaultMappingKey());
-		
-		assertEquals(MappingKeys.BASIC_ATTRIBUTE_MAPPING_KEY, attributes.next().getDefaultMappingKey());
-	}
-	
-	public void testDefaultOneToManySetFetch() throws Exception {
-		createTestEntityWithDefaultOneToMany();
-		addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
-
-		ListIterator<JavaPersistentAttribute> attributes = getJavaPersistentType().attributes();
-		JavaPersistentAttribute persistentAttribute = attributes.next();
-		assertNull(persistentAttribute.getSpecifiedMapping());
-		assertEquals(MappingKeys.ONE_TO_MANY_ATTRIBUTE_MAPPING_KEY, persistentAttribute.getDefaultMappingKey());
-		
-		EclipseLinkOneToManyMapping oneToManyMapping = (EclipseLinkOneToManyMapping) persistentAttribute.getMapping();
-		oneToManyMapping.setSpecifiedFetch(FetchType.LAZY);
-		
-		EclipseLinkOneToManyMapping specifiedOneToManyMapping = (EclipseLinkOneToManyMapping) getJavaPersistentType().attributes().next().getSpecifiedMapping();
-		assertEquals(FetchType.LAZY, specifiedOneToManyMapping.getFetch());
-
-		JavaResourcePersistentType typeResource = getJpaProject().getJavaResourcePersistentType(FULLY_QUALIFIED_TYPE_NAME);
-		JavaResourcePersistentAttribute attributeResource = typeResource.persistableAttributes().next();
-		assertNotNull(attributeResource.getMappingAnnotation());
-		assertTrue(attributeResource.getMappingAnnotation() instanceof OneToManyAnnotation);
-		assertEquals(org.eclipse.jpt.core.resource.java.FetchType.LAZY, ((OneToManyAnnotation) attributeResource.getMappingAnnotation()).getFetch());
-	}
-	
-	public void testDefaultOneToManySetTargetEntity() throws Exception {
-		createTestEntityWithDefaultOneToMany();
-		addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
-
-		ListIterator<JavaPersistentAttribute> attributes = getJavaPersistentType().attributes();
-		JavaPersistentAttribute persistentAttribute = attributes.next();
-		assertNull(persistentAttribute.getSpecifiedMapping());
-		assertEquals(MappingKeys.ONE_TO_MANY_ATTRIBUTE_MAPPING_KEY, persistentAttribute.getDefaultMappingKey());
-		
-		EclipseLinkOneToManyMapping oneToManyMapping = (EclipseLinkOneToManyMapping) persistentAttribute.getMapping();
-		oneToManyMapping.setSpecifiedTargetEntity("Foo");
-		
-		EclipseLinkOneToManyMapping specifiedOneToManyMapping = (EclipseLinkOneToManyMapping) getJavaPersistentType().attributes().next().getSpecifiedMapping();
-		assertEquals("Foo", specifiedOneToManyMapping.getSpecifiedTargetEntity());
-
-		JavaResourcePersistentType typeResource = getJpaProject().getJavaResourcePersistentType(FULLY_QUALIFIED_TYPE_NAME);
-		JavaResourcePersistentAttribute attributeResource = typeResource.persistableAttributes().next();
-		assertNotNull(attributeResource.getMappingAnnotation());
-		assertTrue(attributeResource.getMappingAnnotation() instanceof OneToManyAnnotation);
-		assertEquals("Foo", ((OneToManyAnnotation) attributeResource.getMappingAnnotation()).getTargetEntity());
-	}
-	
-	public void testDefaultOneToManySetMappedBy() throws Exception {
-		createTestEntityWithDefaultOneToMany();
-		addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
-
-		ListIterator<JavaPersistentAttribute> attributes = getJavaPersistentType().attributes();
-		JavaPersistentAttribute persistentAttribute = attributes.next();
-		assertNull(persistentAttribute.getSpecifiedMapping());
-		assertEquals(MappingKeys.ONE_TO_MANY_ATTRIBUTE_MAPPING_KEY, persistentAttribute.getDefaultMappingKey());
-		
-		EclipseLinkOneToManyMapping oneToManyMapping = (EclipseLinkOneToManyMapping) persistentAttribute.getMapping();
-		oneToManyMapping.getRelationshipReference().getMappedByJoiningStrategy().setMappedByAttribute("Foo");
-		
-		EclipseLinkOneToManyMapping specifiedOneToManyMapping = (EclipseLinkOneToManyMapping) getJavaPersistentType().attributes().next().getSpecifiedMapping();
-		assertEquals("Foo", specifiedOneToManyMapping.getRelationshipReference().getMappedByJoiningStrategy().getMappedByAttribute());
-
-		JavaResourcePersistentType typeResource = getJpaProject().getJavaResourcePersistentType(FULLY_QUALIFIED_TYPE_NAME);
-		JavaResourcePersistentAttribute attributeResource = typeResource.persistableAttributes().next();
-		assertNotNull(attributeResource.getMappingAnnotation());
-		assertTrue(attributeResource.getMappingAnnotation() instanceof OneToManyAnnotation);
-		assertEquals("Foo", ((OneToManyAnnotation) attributeResource.getMappingAnnotation()).getMappedBy());
-	}
-	
-	public void testDefaultOneToManySetCascadeAll() throws Exception {
-		createTestEntityWithDefaultOneToMany();
-		addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
-
-		ListIterator<JavaPersistentAttribute> attributes = getJavaPersistentType().attributes();
-		JavaPersistentAttribute persistentAttribute = attributes.next();
-		assertNull(persistentAttribute.getSpecifiedMapping());
-		assertEquals(MappingKeys.ONE_TO_MANY_ATTRIBUTE_MAPPING_KEY, persistentAttribute.getDefaultMappingKey());
-		
-		EclipseLinkOneToManyMapping oneToManyMapping = (EclipseLinkOneToManyMapping) persistentAttribute.getMapping();
-		oneToManyMapping.getCascade().setAll(true);
-		
-		EclipseLinkOneToManyMapping specifiedOneToManyMapping = (EclipseLinkOneToManyMapping) getJavaPersistentType().attributes().next().getSpecifiedMapping();
-		assertEquals(true, specifiedOneToManyMapping.getCascade().isAll());
-
-		JavaResourcePersistentType typeResource = getJpaProject().getJavaResourcePersistentType(FULLY_QUALIFIED_TYPE_NAME);
-		JavaResourcePersistentAttribute attributeResource = typeResource.persistableAttributes().next();
-		assertNotNull(attributeResource.getMappingAnnotation());
-		assertTrue(attributeResource.getMappingAnnotation() instanceof OneToManyAnnotation);
-		assertEquals(true, ((OneToManyAnnotation) attributeResource.getMappingAnnotation()).isCascadeAll());
-	}
-	
-	public void testDefaultOneToManySetCascadeMerge() throws Exception {
-		createTestEntityWithDefaultOneToMany();
-		addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
-
-		ListIterator<JavaPersistentAttribute> attributes = getJavaPersistentType().attributes();
-		JavaPersistentAttribute persistentAttribute = attributes.next();
-		assertNull(persistentAttribute.getSpecifiedMapping());
-		assertEquals(MappingKeys.ONE_TO_MANY_ATTRIBUTE_MAPPING_KEY, persistentAttribute.getDefaultMappingKey());
-		
-		EclipseLinkOneToManyMapping oneToManyMapping = (EclipseLinkOneToManyMapping) persistentAttribute.getMapping();
-		oneToManyMapping.getCascade().setMerge(true);
-		
-		EclipseLinkOneToManyMapping specifiedOneToManyMapping = (EclipseLinkOneToManyMapping) getJavaPersistentType().attributes().next().getSpecifiedMapping();
-		assertEquals(true, specifiedOneToManyMapping.getCascade().isMerge());
-
-		JavaResourcePersistentType typeResource = getJpaProject().getJavaResourcePersistentType(FULLY_QUALIFIED_TYPE_NAME);
-		JavaResourcePersistentAttribute attributeResource = typeResource.persistableAttributes().next();
-		assertNotNull(attributeResource.getMappingAnnotation());
-		assertTrue(attributeResource.getMappingAnnotation() instanceof OneToManyAnnotation);
-		assertEquals(true, ((OneToManyAnnotation) attributeResource.getMappingAnnotation()).isCascadeMerge());
-	}
-	
-	public void testDefaultOneToManySetCascadePersist() throws Exception {
-		createTestEntityWithDefaultOneToMany();
-		addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
-
-		ListIterator<JavaPersistentAttribute> attributes = getJavaPersistentType().attributes();
-		JavaPersistentAttribute persistentAttribute = attributes.next();
-		assertNull(persistentAttribute.getSpecifiedMapping());
-		assertEquals(MappingKeys.ONE_TO_MANY_ATTRIBUTE_MAPPING_KEY, persistentAttribute.getDefaultMappingKey());
-		
-		EclipseLinkOneToManyMapping oneToManyMapping = (EclipseLinkOneToManyMapping) persistentAttribute.getMapping();
-		oneToManyMapping.getCascade().setPersist(true);
-		
-		EclipseLinkOneToManyMapping specifiedOneToManyMapping = (EclipseLinkOneToManyMapping) getJavaPersistentType().attributes().next().getSpecifiedMapping();
-		assertEquals(true, specifiedOneToManyMapping.getCascade().isPersist());
-
-		JavaResourcePersistentType typeResource = getJpaProject().getJavaResourcePersistentType(FULLY_QUALIFIED_TYPE_NAME);
-		JavaResourcePersistentAttribute attributeResource = typeResource.persistableAttributes().next();
-		assertNotNull(attributeResource.getMappingAnnotation());
-		assertTrue(attributeResource.getMappingAnnotation() instanceof OneToManyAnnotation);
-		assertEquals(true, ((OneToManyAnnotation) attributeResource.getMappingAnnotation()).isCascadePersist());
-	}
-	
-	public void testDefaultOneToManySetCascadeRefresh() throws Exception {
-		createTestEntityWithDefaultOneToMany();
-		addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
-
-		ListIterator<JavaPersistentAttribute> attributes = getJavaPersistentType().attributes();
-		JavaPersistentAttribute persistentAttribute = attributes.next();
-		assertNull(persistentAttribute.getSpecifiedMapping());
-		assertEquals(MappingKeys.ONE_TO_MANY_ATTRIBUTE_MAPPING_KEY, persistentAttribute.getDefaultMappingKey());
-		
-		EclipseLinkOneToManyMapping oneToManyMapping = (EclipseLinkOneToManyMapping) persistentAttribute.getMapping();
-		oneToManyMapping.getCascade().setRefresh(true);
-		
-		EclipseLinkOneToManyMapping specifiedOneToManyMapping = (EclipseLinkOneToManyMapping) getJavaPersistentType().attributes().next().getSpecifiedMapping();
-		assertEquals(true, specifiedOneToManyMapping.getCascade().isRefresh());
-
-		JavaResourcePersistentType typeResource = getJpaProject().getJavaResourcePersistentType(FULLY_QUALIFIED_TYPE_NAME);
-		JavaResourcePersistentAttribute attributeResource = typeResource.persistableAttributes().next();
-		assertNotNull(attributeResource.getMappingAnnotation());
-		assertTrue(attributeResource.getMappingAnnotation() instanceof OneToManyAnnotation);
-		assertEquals(true, ((OneToManyAnnotation) attributeResource.getMappingAnnotation()).isCascadeRefresh());
-	}
-	
-	public void testDefaultOneToManySetCascadeRemove() throws Exception {
-		createTestEntityWithDefaultOneToMany();
-		addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
-
-		ListIterator<JavaPersistentAttribute> attributes = getJavaPersistentType().attributes();
-		JavaPersistentAttribute persistentAttribute = attributes.next();
-		assertNull(persistentAttribute.getSpecifiedMapping());
-		assertEquals(MappingKeys.ONE_TO_MANY_ATTRIBUTE_MAPPING_KEY, persistentAttribute.getDefaultMappingKey());
-		
-		EclipseLinkOneToManyMapping oneToManyMapping = (EclipseLinkOneToManyMapping) persistentAttribute.getMapping();
-		oneToManyMapping.getCascade().setRemove(true);
-		
-		EclipseLinkOneToManyMapping specifiedOneToManyMapping = (EclipseLinkOneToManyMapping) getJavaPersistentType().attributes().next().getSpecifiedMapping();
-		assertEquals(true, specifiedOneToManyMapping.getCascade().isRemove());
-
-		JavaResourcePersistentType typeResource = getJpaProject().getJavaResourcePersistentType(FULLY_QUALIFIED_TYPE_NAME);
-		JavaResourcePersistentAttribute attributeResource = typeResource.persistableAttributes().next();
-		assertNotNull(attributeResource.getMappingAnnotation());
-		assertTrue(attributeResource.getMappingAnnotation() instanceof OneToManyAnnotation);
-		assertEquals(true, ((OneToManyAnnotation) attributeResource.getMappingAnnotation()).isCascadeRemove());
-	}
-}
diff --git a/jpa/tests/org.eclipse.jpt.eclipselink.core.tests/src/org/eclipse/jpt/eclipselink/core/tests/internal/context/java/EclipseLinkJavaOneToOneMappingTests.java b/jpa/tests/org.eclipse.jpt.eclipselink.core.tests/src/org/eclipse/jpt/eclipselink/core/tests/internal/context/java/EclipseLinkJavaOneToOneMappingTests.java
deleted file mode 100644
index 3747ae3..0000000
--- a/jpa/tests/org.eclipse.jpt.eclipselink.core.tests/src/org/eclipse/jpt/eclipselink/core/tests/internal/context/java/EclipseLinkJavaOneToOneMappingTests.java
+++ /dev/null
@@ -1,435 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008, 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.eclipselink.core.tests.internal.context.java;
-
-import java.util.Iterator;
-import java.util.ListIterator;
-import org.eclipse.jdt.core.ICompilationUnit;
-import org.eclipse.jpt.core.MappingKeys;
-import org.eclipse.jpt.core.context.FetchType;
-import org.eclipse.jpt.core.context.PersistentAttribute;
-import org.eclipse.jpt.core.context.java.JavaPersistentAttribute;
-import org.eclipse.jpt.core.resource.java.JPA;
-import org.eclipse.jpt.core.resource.java.JavaResourcePersistentAttribute;
-import org.eclipse.jpt.core.resource.java.JavaResourcePersistentType;
-import org.eclipse.jpt.core.resource.java.OneToOneAnnotation;
-import org.eclipse.jpt.eclipselink.core.context.EclipseLinkOneToOneMapping;
-import org.eclipse.jpt.eclipselink.core.context.EclipseLinkRelationshipMapping;
-import org.eclipse.jpt.eclipselink.core.context.JoinFetch;
-import org.eclipse.jpt.eclipselink.core.context.JoinFetchType;
-import org.eclipse.jpt.eclipselink.core.context.PrivateOwned;
-import org.eclipse.jpt.eclipselink.core.resource.java.EclipseLinkJPA;
-import org.eclipse.jpt.eclipselink.core.resource.java.JoinFetchAnnotation;
-import org.eclipse.jpt.eclipselink.core.resource.java.PrivateOwnedAnnotation;
-import org.eclipse.jpt.eclipselink.core.tests.internal.context.EclipseLinkContextModelTestCase;
-import org.eclipse.jpt.utility.internal.iterators.ArrayIterator;
-
-@SuppressWarnings("nls")
-public class EclipseLinkJavaOneToOneMappingTests extends EclipseLinkContextModelTestCase
-{	
-
-	private ICompilationUnit createTestEntityWithPrivateOwnedOneToOne() throws Exception {
-		return this.createTestType(new DefaultAnnotationWriter() {
-			@Override
-			public Iterator<String> imports() {
-				return new ArrayIterator<String>(JPA.ENTITY, JPA.ONE_TO_ONE, EclipseLinkJPA.PRIVATE_OWNED);
-			}
-			@Override
-			public void appendTypeAnnotationTo(StringBuilder sb) {
-				sb.append("@Entity").append(CR);
-			}
-			
-			@Override
-			public void appendIdFieldAnnotationTo(StringBuilder sb) {
-				sb.append("@OneToOne").append(CR);
-				sb.append("@PrivateOwned").append(CR);
-			}
-		});
-	}
-	
-	private ICompilationUnit createTestEntityWithJoinFetchOneToOne() throws Exception {
-		return this.createTestType(new DefaultAnnotationWriter() {
-			@Override
-			public Iterator<String> imports() {
-				return new ArrayIterator<String>(JPA.ENTITY, JPA.ONE_TO_ONE, EclipseLinkJPA.JOIN_FETCH);
-			}
-			@Override
-			public void appendTypeAnnotationTo(StringBuilder sb) {
-				sb.append("@Entity").append(CR);
-			}
-			
-			@Override
-			public void appendIdFieldAnnotationTo(StringBuilder sb) {
-				sb.append("@OneToOne").append(CR);
-				sb.append("@JoinFetch").append(CR);
-			}
-		});
-	}
-	
-	private ICompilationUnit createTestEntityWithDefaultOneToOne() throws Exception {
-		return this.createTestType(new DefaultAnnotationWriter() {
-			@Override
-			public Iterator<String> imports() {
-				return new ArrayIterator<String>(JPA.ENTITY);
-			}
-			
-			@Override
-			public void appendExtendsImplementsTo(StringBuilder sb) {
-				sb.append("implements java.io.Serializable");
-			}
-			
-			@Override
-			public void appendTypeAnnotationTo(StringBuilder sb) {
-				sb.append("@Entity").append(CR);
-			}
-			
-			@Override
-			public void appendIdFieldAnnotationTo(StringBuilder sb) {
-				sb.append("private " + TYPE_NAME + " myType;").append(CR);
-				sb.append(CR);
-			}
-		});
-	}
-
-	public EclipseLinkJavaOneToOneMappingTests(String name) {
-		super(name);
-	}
-
-
-	public void testGetPrivateOwned() throws Exception {
-		createTestEntityWithPrivateOwnedOneToOne();
-		addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
-		
-		PersistentAttribute persistentAttribute = getJavaPersistentType().attributes().next();
-		EclipseLinkOneToOneMapping oneToOneMapping = (EclipseLinkOneToOneMapping) persistentAttribute.getSpecifiedMapping();
-		PrivateOwned privateOwnable = oneToOneMapping.getPrivateOwned();
-		assertEquals(true, privateOwnable.isPrivateOwned());
-	}
-
-	public void testSetPrivateOwned() throws Exception {
-		createTestEntityWithPrivateOwnedOneToOne();
-		addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
-		
-		PersistentAttribute persistentAttribute = getJavaPersistentType().attributes().next();
-		EclipseLinkOneToOneMapping oneToOneMapping = (EclipseLinkOneToOneMapping) persistentAttribute.getSpecifiedMapping();
-		PrivateOwned privateOwnable = oneToOneMapping.getPrivateOwned();
-		assertEquals(true, privateOwnable.isPrivateOwned());
-		
-		privateOwnable.setPrivateOwned(false);
-		
-		JavaResourcePersistentType typeResource = getJpaProject().getJavaResourcePersistentType(FULLY_QUALIFIED_TYPE_NAME);
-		JavaResourcePersistentAttribute attributeResource = typeResource.persistableAttributes().next();
-		assertNull(attributeResource.getSupportingAnnotation(PrivateOwnedAnnotation.ANNOTATION_NAME));
-		assertEquals(false, privateOwnable.isPrivateOwned());
-
-		privateOwnable.setPrivateOwned(true);
-		assertNotNull(attributeResource.getSupportingAnnotation(PrivateOwnedAnnotation.ANNOTATION_NAME));
-		assertEquals(true, privateOwnable.isPrivateOwned());
-	}
-	
-	public void testPrivateOwnedUpdatesFromResourceModelChange() throws Exception {
-		createTestEntityWithPrivateOwnedOneToOne();
-		addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
-		
-		PersistentAttribute persistentAttribute = getJavaPersistentType().attributes().next();
-		EclipseLinkOneToOneMapping oneToOneMapping = (EclipseLinkOneToOneMapping) persistentAttribute.getSpecifiedMapping();
-		PrivateOwned privateOwnable = oneToOneMapping.getPrivateOwned();
-		assertEquals(true, privateOwnable.isPrivateOwned());
-		
-		
-		JavaResourcePersistentType typeResource = getJpaProject().getJavaResourcePersistentType(FULLY_QUALIFIED_TYPE_NAME);
-		JavaResourcePersistentAttribute attributeResource = typeResource.persistableAttributes().next();
-		attributeResource.removeSupportingAnnotation(PrivateOwnedAnnotation.ANNOTATION_NAME);
-		
-		assertEquals(false, privateOwnable.isPrivateOwned());
-		
-		attributeResource.addSupportingAnnotation(PrivateOwnedAnnotation.ANNOTATION_NAME);
-		assertEquals(true, privateOwnable.isPrivateOwned());
-	}
-	
-	public void testGetJoinFetchValue() throws Exception {
-		createTestEntityWithJoinFetchOneToOne();
-		addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
-		
-		PersistentAttribute persistentAttribute = getJavaPersistentType().attributes().next();
-		EclipseLinkRelationshipMapping manyToManyMapping = (EclipseLinkRelationshipMapping) persistentAttribute.getSpecifiedMapping();
-		JoinFetch contextJoinFetch = manyToManyMapping.getJoinFetch();
-		JavaResourcePersistentType typeResource = getJpaProject().getJavaResourcePersistentType(FULLY_QUALIFIED_TYPE_NAME);
-		JavaResourcePersistentAttribute attributeResource = typeResource.persistableAttributes().next();
-		JoinFetchAnnotation joinFetchAnnotation = (JoinFetchAnnotation) attributeResource.getSupportingAnnotation(JoinFetchAnnotation.ANNOTATION_NAME);
-		
-		// base annotated, test context value
-		
-		assertNull(joinFetchAnnotation.getValue());
-		assertEquals(JoinFetchType.INNER, contextJoinFetch.getValue());
-		
-		// change resource to INNER specifically, test context
-		
-		joinFetchAnnotation.setValue(org.eclipse.jpt.eclipselink.core.resource.java.JoinFetchType.INNER);
-		
-		assertEquals(org.eclipse.jpt.eclipselink.core.resource.java.JoinFetchType.INNER, joinFetchAnnotation.getValue());
-		assertEquals(JoinFetchType.INNER, contextJoinFetch.getValue());
-		
-		// change resource to OUTER, test context
-		
-		joinFetchAnnotation.setValue(org.eclipse.jpt.eclipselink.core.resource.java.JoinFetchType.OUTER);
-		
-		assertEquals(org.eclipse.jpt.eclipselink.core.resource.java.JoinFetchType.OUTER, joinFetchAnnotation.getValue());
-		assertEquals(JoinFetchType.OUTER, contextJoinFetch.getValue());
-		
-		// remove value from resource, test context
-		
-		joinFetchAnnotation.setValue(null);
-		
-		assertNull(joinFetchAnnotation.getValue());
-		assertEquals(JoinFetchType.INNER, contextJoinFetch.getValue());
-		
-		// remove annotation, text context
-		
-		attributeResource.removeSupportingAnnotation(JoinFetchAnnotation.ANNOTATION_NAME);
-		
-		assertNull(joinFetchAnnotation.getValue());
-		assertNull(contextJoinFetch.getValue());
-	}
-	
-	public void testSetJoinFetchValue() throws Exception {
-		createTestEntityWithJoinFetchOneToOne();
-		addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
-		
-		PersistentAttribute persistentAttribute = getJavaPersistentType().attributes().next();
-		EclipseLinkRelationshipMapping manyToManyMapping = (EclipseLinkRelationshipMapping) persistentAttribute.getSpecifiedMapping();
-		JoinFetch contextJoinFetch = manyToManyMapping.getJoinFetch();
-		JavaResourcePersistentType typeResource = getJpaProject().getJavaResourcePersistentType(FULLY_QUALIFIED_TYPE_NAME);
-		JavaResourcePersistentAttribute attributeResource = typeResource.persistableAttributes().next();
-		JoinFetchAnnotation joinFetchAnnotation = (JoinFetchAnnotation) attributeResource.getSupportingAnnotation(JoinFetchAnnotation.ANNOTATION_NAME);
-		
-		// base annotated, test resource value
-		
-		assertNull(joinFetchAnnotation.getValue());
-		assertEquals(JoinFetchType.INNER, contextJoinFetch.getValue());
-		
-		// change context to INNER specifically, test resource
-		
-		contextJoinFetch.setValue(JoinFetchType.INNER);
-		
-		assertNull(joinFetchAnnotation.getValue());
-		assertEquals(JoinFetchType.INNER, contextJoinFetch.getValue());
-		
-		// change context to OUTER, test resource
-		
-		contextJoinFetch.setValue(JoinFetchType.OUTER);
-		
-		assertEquals(org.eclipse.jpt.eclipselink.core.resource.java.JoinFetchType.OUTER, joinFetchAnnotation.getValue());
-		assertEquals(JoinFetchType.OUTER, contextJoinFetch.getValue());
-		
-		// set context to null, test resource
-		
-		contextJoinFetch.setValue(null);
-		
-		assertNull(attributeResource.getSupportingAnnotation(JoinFetchAnnotation.ANNOTATION_NAME));
-		assertNull(contextJoinFetch.getValue());
-		
-		// change context to INNER specifically (this time from no annotation), test resource
-		
-		contextJoinFetch.setValue(JoinFetchType.INNER);
-		joinFetchAnnotation = (JoinFetchAnnotation) attributeResource.getSupportingAnnotation(JoinFetchAnnotation.ANNOTATION_NAME);
-		
-		assertEquals(org.eclipse.jpt.eclipselink.core.resource.java.JoinFetchType.INNER, joinFetchAnnotation.getValue());
-		assertEquals(JoinFetchType.INNER, contextJoinFetch.getValue());
-	}
-	
-	public void testDefaultOneToOne() throws Exception {
-		createTestEntityWithDefaultOneToOne();
-		addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
-		
-		ListIterator<JavaPersistentAttribute> attributes = getJavaPersistentType().attributes();
-		JavaPersistentAttribute persistentAttribute = attributes.next();
-		assertNull(persistentAttribute.getSpecifiedMapping());
-		assertEquals(MappingKeys.ONE_TO_ONE_ATTRIBUTE_MAPPING_KEY, persistentAttribute.getDefaultMappingKey());	
-		
-		assertEquals(MappingKeys.BASIC_ATTRIBUTE_MAPPING_KEY, attributes.next().getDefaultMappingKey());
-	}
-	
-	public void testDefaultOneToOneSetFetch() throws Exception {
-		createTestEntityWithDefaultOneToOne();
-		addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
-
-		ListIterator<JavaPersistentAttribute> attributes = getJavaPersistentType().attributes();
-		JavaPersistentAttribute persistentAttribute = attributes.next();
-		assertNull(persistentAttribute.getSpecifiedMapping());
-		assertEquals(MappingKeys.ONE_TO_ONE_ATTRIBUTE_MAPPING_KEY, persistentAttribute.getDefaultMappingKey());
-		
-		EclipseLinkOneToOneMapping oneToOneMapping = (EclipseLinkOneToOneMapping) persistentAttribute.getMapping();
-		oneToOneMapping.setSpecifiedFetch(FetchType.LAZY);
-		
-		EclipseLinkOneToOneMapping specifiedOneToOneMapping = (EclipseLinkOneToOneMapping) getJavaPersistentType().attributes().next().getSpecifiedMapping();
-		assertEquals(FetchType.LAZY, specifiedOneToOneMapping.getFetch());
-
-		JavaResourcePersistentType typeResource = getJpaProject().getJavaResourcePersistentType(FULLY_QUALIFIED_TYPE_NAME);
-		JavaResourcePersistentAttribute attributeResource = typeResource.persistableAttributes().next();
-		assertNotNull(attributeResource.getMappingAnnotation());
-		assertTrue(attributeResource.getMappingAnnotation() instanceof OneToOneAnnotation);
-		assertEquals(org.eclipse.jpt.core.resource.java.FetchType.LAZY, ((OneToOneAnnotation) attributeResource.getMappingAnnotation()).getFetch());
-	}
-	
-	public void testDefaultOneToOneSetTargetEntity() throws Exception {
-		createTestEntityWithDefaultOneToOne();
-		addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
-
-		ListIterator<JavaPersistentAttribute> attributes = getJavaPersistentType().attributes();
-		JavaPersistentAttribute persistentAttribute = attributes.next();
-		assertNull(persistentAttribute.getSpecifiedMapping());
-		assertEquals(MappingKeys.ONE_TO_ONE_ATTRIBUTE_MAPPING_KEY, persistentAttribute.getDefaultMappingKey());
-		
-		EclipseLinkOneToOneMapping oneToOneMapping = (EclipseLinkOneToOneMapping) persistentAttribute.getMapping();
-		oneToOneMapping.setSpecifiedTargetEntity("Foo");
-		
-		EclipseLinkOneToOneMapping specifiedOneToOneMapping = (EclipseLinkOneToOneMapping) getJavaPersistentType().attributes().next().getSpecifiedMapping();
-		assertEquals("Foo", specifiedOneToOneMapping.getSpecifiedTargetEntity());
-
-		JavaResourcePersistentType typeResource = getJpaProject().getJavaResourcePersistentType(FULLY_QUALIFIED_TYPE_NAME);
-		JavaResourcePersistentAttribute attributeResource = typeResource.persistableAttributes().next();
-		assertNotNull(attributeResource.getMappingAnnotation());
-		assertTrue(attributeResource.getMappingAnnotation() instanceof OneToOneAnnotation);
-		assertEquals("Foo", ((OneToOneAnnotation) attributeResource.getMappingAnnotation()).getTargetEntity());
-	}
-	
-	public void testDefaultOneToOneSetMappedBy() throws Exception {
-		createTestEntityWithDefaultOneToOne();
-		addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
-
-		ListIterator<JavaPersistentAttribute> attributes = getJavaPersistentType().attributes();
-		JavaPersistentAttribute persistentAttribute = attributes.next();
-		assertNull(persistentAttribute.getSpecifiedMapping());
-		assertEquals(MappingKeys.ONE_TO_ONE_ATTRIBUTE_MAPPING_KEY, persistentAttribute.getDefaultMappingKey());
-		
-		EclipseLinkOneToOneMapping oneToOneMapping = (EclipseLinkOneToOneMapping) persistentAttribute.getMapping();
-		oneToOneMapping.getRelationshipReference().getMappedByJoiningStrategy().setMappedByAttribute("Foo");
-		
-		EclipseLinkOneToOneMapping specifiedOneToOneMapping = (EclipseLinkOneToOneMapping) getJavaPersistentType().attributes().next().getSpecifiedMapping();
-		assertEquals("Foo", specifiedOneToOneMapping.getRelationshipReference().getMappedByJoiningStrategy().getMappedByAttribute());
-		
-		JavaResourcePersistentType typeResource = getJpaProject().getJavaResourcePersistentType(FULLY_QUALIFIED_TYPE_NAME);
-		JavaResourcePersistentAttribute attributeResource = typeResource.persistableAttributes().next();
-		assertNotNull(attributeResource.getMappingAnnotation());
-		assertTrue(attributeResource.getMappingAnnotation() instanceof OneToOneAnnotation);
-		assertEquals("Foo", ((OneToOneAnnotation) attributeResource.getMappingAnnotation()).getMappedBy());
-	}
-	
-	public void testDefaultOneToOneSetCascadeAll() throws Exception {
-		createTestEntityWithDefaultOneToOne();
-		addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
-
-		ListIterator<JavaPersistentAttribute> attributes = getJavaPersistentType().attributes();
-		JavaPersistentAttribute persistentAttribute = attributes.next();
-		assertNull(persistentAttribute.getSpecifiedMapping());
-		assertEquals(MappingKeys.ONE_TO_ONE_ATTRIBUTE_MAPPING_KEY, persistentAttribute.getDefaultMappingKey());
-		
-		EclipseLinkOneToOneMapping oneToOneMapping = (EclipseLinkOneToOneMapping) persistentAttribute.getMapping();
-		oneToOneMapping.getCascade().setAll(true);
-		
-		EclipseLinkOneToOneMapping specifiedOneToOneMapping = (EclipseLinkOneToOneMapping) getJavaPersistentType().attributes().next().getSpecifiedMapping();
-		assertEquals(true, specifiedOneToOneMapping.getCascade().isAll());
-
-		JavaResourcePersistentType typeResource = getJpaProject().getJavaResourcePersistentType(FULLY_QUALIFIED_TYPE_NAME);
-		JavaResourcePersistentAttribute attributeResource = typeResource.persistableAttributes().next();
-		assertNotNull(attributeResource.getMappingAnnotation());
-		assertTrue(attributeResource.getMappingAnnotation() instanceof OneToOneAnnotation);
-		assertEquals(true, ((OneToOneAnnotation) attributeResource.getMappingAnnotation()).isCascadeAll());
-	}
-	
-	public void testDefaultOneToOneSetCascadeMerge() throws Exception {
-		createTestEntityWithDefaultOneToOne();
-		addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
-
-		ListIterator<JavaPersistentAttribute> attributes = getJavaPersistentType().attributes();
-		JavaPersistentAttribute persistentAttribute = attributes.next();
-		assertNull(persistentAttribute.getSpecifiedMapping());
-		assertEquals(MappingKeys.ONE_TO_ONE_ATTRIBUTE_MAPPING_KEY, persistentAttribute.getDefaultMappingKey());
-		
-		EclipseLinkOneToOneMapping oneToOneMapping = (EclipseLinkOneToOneMapping) persistentAttribute.getMapping();
-		oneToOneMapping.getCascade().setMerge(true);
-		
-		EclipseLinkOneToOneMapping specifiedOneToOneMapping = (EclipseLinkOneToOneMapping) getJavaPersistentType().attributes().next().getSpecifiedMapping();
-		assertEquals(true, specifiedOneToOneMapping.getCascade().isMerge());
-
-		JavaResourcePersistentType typeResource = getJpaProject().getJavaResourcePersistentType(FULLY_QUALIFIED_TYPE_NAME);
-		JavaResourcePersistentAttribute attributeResource = typeResource.persistableAttributes().next();
-		assertNotNull(attributeResource.getMappingAnnotation());
-		assertTrue(attributeResource.getMappingAnnotation() instanceof OneToOneAnnotation);
-		assertEquals(true, ((OneToOneAnnotation) attributeResource.getMappingAnnotation()).isCascadeMerge());
-	}
-	
-	public void testDefaultOneToOneSetCascadePersist() throws Exception {
-		createTestEntityWithDefaultOneToOne();
-		addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
-
-		ListIterator<JavaPersistentAttribute> attributes = getJavaPersistentType().attributes();
-		JavaPersistentAttribute persistentAttribute = attributes.next();
-		assertNull(persistentAttribute.getSpecifiedMapping());
-		assertEquals(MappingKeys.ONE_TO_ONE_ATTRIBUTE_MAPPING_KEY, persistentAttribute.getDefaultMappingKey());
-		
-		EclipseLinkOneToOneMapping oneToOneMapping = (EclipseLinkOneToOneMapping) persistentAttribute.getMapping();
-		oneToOneMapping.getCascade().setPersist(true);
-		
-		EclipseLinkOneToOneMapping specifiedOneToOneMapping = (EclipseLinkOneToOneMapping) getJavaPersistentType().attributes().next().getSpecifiedMapping();
-		assertEquals(true, specifiedOneToOneMapping.getCascade().isPersist());
-
-		JavaResourcePersistentType typeResource = getJpaProject().getJavaResourcePersistentType(FULLY_QUALIFIED_TYPE_NAME);
-		JavaResourcePersistentAttribute attributeResource = typeResource.persistableAttributes().next();
-		assertNotNull(attributeResource.getMappingAnnotation());
-		assertTrue(attributeResource.getMappingAnnotation() instanceof OneToOneAnnotation);
-		assertEquals(true, ((OneToOneAnnotation) attributeResource.getMappingAnnotation()).isCascadePersist());
-	}
-	
-	public void testDefaultOneToOneSetCascadeRefresh() throws Exception {
-		createTestEntityWithDefaultOneToOne();
-		addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
-
-		ListIterator<JavaPersistentAttribute> attributes = getJavaPersistentType().attributes();
-		JavaPersistentAttribute persistentAttribute = attributes.next();
-		assertNull(persistentAttribute.getSpecifiedMapping());
-		assertEquals(MappingKeys.ONE_TO_ONE_ATTRIBUTE_MAPPING_KEY, persistentAttribute.getDefaultMappingKey());
-		
-		EclipseLinkOneToOneMapping oneToOneMapping = (EclipseLinkOneToOneMapping) persistentAttribute.getMapping();
-		oneToOneMapping.getCascade().setRefresh(true);
-		
-		EclipseLinkOneToOneMapping specifiedOneToOneMapping = (EclipseLinkOneToOneMapping) getJavaPersistentType().attributes().next().getSpecifiedMapping();
-		assertEquals(true, specifiedOneToOneMapping.getCascade().isRefresh());
-
-		JavaResourcePersistentType typeResource = getJpaProject().getJavaResourcePersistentType(FULLY_QUALIFIED_TYPE_NAME);
-		JavaResourcePersistentAttribute attributeResource = typeResource.persistableAttributes().next();
-		assertNotNull(attributeResource.getMappingAnnotation());
-		assertTrue(attributeResource.getMappingAnnotation() instanceof OneToOneAnnotation);
-		assertEquals(true, ((OneToOneAnnotation) attributeResource.getMappingAnnotation()).isCascadeRefresh());
-	}
-	
-	public void testDefaultOneToOneSetCascadeRemove() throws Exception {
-		createTestEntityWithDefaultOneToOne();
-		addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
-
-		ListIterator<JavaPersistentAttribute> attributes = getJavaPersistentType().attributes();
-		JavaPersistentAttribute persistentAttribute = attributes.next();
-		assertNull(persistentAttribute.getSpecifiedMapping());
-		assertEquals(MappingKeys.ONE_TO_ONE_ATTRIBUTE_MAPPING_KEY, persistentAttribute.getDefaultMappingKey());
-		
-		EclipseLinkOneToOneMapping oneToOneMapping = (EclipseLinkOneToOneMapping) persistentAttribute.getMapping();
-		oneToOneMapping.getCascade().setRemove(true);
-		
-		EclipseLinkOneToOneMapping specifiedOneToOneMapping = (EclipseLinkOneToOneMapping) getJavaPersistentType().attributes().next().getSpecifiedMapping();
-		assertEquals(true, specifiedOneToOneMapping.getCascade().isRemove());
-
-		JavaResourcePersistentType typeResource = getJpaProject().getJavaResourcePersistentType(FULLY_QUALIFIED_TYPE_NAME);
-		JavaResourcePersistentAttribute attributeResource = typeResource.persistableAttributes().next();
-		assertNotNull(attributeResource.getMappingAnnotation());
-		assertTrue(attributeResource.getMappingAnnotation() instanceof OneToOneAnnotation);
-		assertEquals(true, ((OneToOneAnnotation) attributeResource.getMappingAnnotation()).isCascadeRemove());
-	}
-}
diff --git a/jpa/tests/org.eclipse.jpt.eclipselink.core.tests/src/org/eclipse/jpt/eclipselink/core/tests/internal/context/java/EclipseLinkJavaStructConverterTests.java b/jpa/tests/org.eclipse.jpt.eclipselink.core.tests/src/org/eclipse/jpt/eclipselink/core/tests/internal/context/java/EclipseLinkJavaStructConverterTests.java
deleted file mode 100644
index 8eb7318..0000000
--- a/jpa/tests/org.eclipse.jpt.eclipselink.core.tests/src/org/eclipse/jpt/eclipselink/core/tests/internal/context/java/EclipseLinkJavaStructConverterTests.java
+++ /dev/null
@@ -1,213 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.eclipselink.core.tests.internal.context.java;
-
-import java.util.Iterator;
-import org.eclipse.jdt.core.ICompilationUnit;
-import org.eclipse.jpt.core.context.BasicMapping;
-import org.eclipse.jpt.core.context.PersistentAttribute;
-import org.eclipse.jpt.core.resource.java.JPA;
-import org.eclipse.jpt.core.resource.java.JavaResourcePersistentAttribute;
-import org.eclipse.jpt.core.resource.java.JavaResourcePersistentType;
-import org.eclipse.jpt.eclipselink.core.context.Convert;
-import org.eclipse.jpt.eclipselink.core.context.StructConverter;
-import org.eclipse.jpt.eclipselink.core.resource.java.EclipseLinkJPA;
-import org.eclipse.jpt.eclipselink.core.resource.java.StructConverterAnnotation;
-import org.eclipse.jpt.eclipselink.core.tests.internal.context.EclipseLinkContextModelTestCase;
-import org.eclipse.jpt.utility.internal.iterators.ArrayIterator;
-
-@SuppressWarnings("nls")
-public class EclipseLinkJavaStructConverterTests extends EclipseLinkContextModelTestCase
-{
-	
-	private ICompilationUnit createTestEntityWithConvertAndStructConverter() throws Exception {
-		return this.createTestType(new DefaultAnnotationWriter() {
-			@Override
-			public Iterator<String> imports() {
-				return new ArrayIterator<String>(JPA.ENTITY, EclipseLinkJPA.CONVERT, EclipseLinkJPA.STRUCT_CONVERTER);
-			}
-			@Override
-			public void appendTypeAnnotationTo(StringBuilder sb) {
-				sb.append("@Entity");
-			}
-			
-			@Override
-			public void appendIdFieldAnnotationTo(StringBuilder sb) {
-				sb.append("@Convert(\"foo\")").append(CR);
-				sb.append("    @StructConverter(name=\"foo\"");
-			}
-		});
-	}
-	
-	private ICompilationUnit createTestEntityWithConvertAndStructConverterClass() throws Exception {
-		return this.createTestType(new DefaultAnnotationWriter() {
-			@Override
-			public Iterator<String> imports() {
-				return new ArrayIterator<String>(JPA.ENTITY, EclipseLinkJPA.CONVERT, EclipseLinkJPA.STRUCT_CONVERTER);
-			}
-			@Override
-			public void appendTypeAnnotationTo(StringBuilder sb) {
-				sb.append("@Entity");
-			}
-			
-			@Override
-			public void appendIdFieldAnnotationTo(StringBuilder sb) {
-				sb.append("@Convert(\"foo\")").append(CR);
-				sb.append("    @StructConverter(converter=\"Foo\"");
-			}
-		});
-	}
-	
-	public EclipseLinkJavaStructConverterTests(String name) {
-		super(name);
-	}
-
-
-	public void testGetName() throws Exception {
-		createTestEntityWithConvertAndStructConverter();
-		addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
-		
-		PersistentAttribute persistentAttribute = getJavaPersistentType().attributes().next();
-		BasicMapping basicMapping = (BasicMapping) persistentAttribute.getMapping();
-		Convert eclipseLinkConvert = (Convert) basicMapping.getConverter();
-		StructConverter converter = (StructConverter) eclipseLinkConvert.getConverter();
-		
-		assertEquals("foo", converter.getName());
-	}
-
-	public void testSetName() throws Exception {
-		createTestEntityWithConvertAndStructConverter();
-		addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
-		
-		PersistentAttribute persistentAttribute = getJavaPersistentType().attributes().next();
-		BasicMapping basicMapping = (BasicMapping) persistentAttribute.getMapping();
-		Convert eclipseLinkConvert = (Convert) basicMapping.getConverter();
-		StructConverter converter = (StructConverter) eclipseLinkConvert.getConverter();
-		assertEquals("foo", converter.getName());
-		
-		converter.setName("bar");
-		assertEquals("bar", converter.getName());
-			
-		JavaResourcePersistentType typeResource = getJpaProject().getJavaResourcePersistentType(FULLY_QUALIFIED_TYPE_NAME);
-		JavaResourcePersistentAttribute attributeResource = typeResource.persistableAttributes().next();
-		StructConverterAnnotation converterAnnotation = (StructConverterAnnotation) attributeResource.getSupportingAnnotation(StructConverterAnnotation.ANNOTATION_NAME);		
-		assertEquals("bar", converterAnnotation.getName());
-
-		
-		converter.setName(null);
-		assertEquals(null, converter.getName());
-		converterAnnotation = (StructConverterAnnotation) attributeResource.getSupportingAnnotation(StructConverterAnnotation.ANNOTATION_NAME);		
-		assertEquals(null, converterAnnotation.getName());
-
-
-		converter.setName("bar");
-		assertEquals("bar", converter.getName());
-		converterAnnotation = (StructConverterAnnotation) attributeResource.getSupportingAnnotation(StructConverterAnnotation.ANNOTATION_NAME);		
-		assertEquals("bar", converterAnnotation.getName());
-	}
-	
-	public void testGetNameUpdatesFromResourceModelChange() throws Exception {
-		createTestEntityWithConvertAndStructConverter();
-		addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
-				
-		PersistentAttribute persistentAttribute = getJavaPersistentType().attributes().next();
-		BasicMapping basicMapping = (BasicMapping) persistentAttribute.getMapping();
-		Convert eclipseLinkConvert = (Convert) basicMapping.getConverter();
-		StructConverter converter = (StructConverter) eclipseLinkConvert.getConverter();
-
-		assertEquals("foo", converter.getName());
-		
-		JavaResourcePersistentType typeResource = getJpaProject().getJavaResourcePersistentType(FULLY_QUALIFIED_TYPE_NAME);
-		JavaResourcePersistentAttribute attributeResource = typeResource.persistableAttributes().next();
-		StructConverterAnnotation converterAnnotation = (StructConverterAnnotation) attributeResource.getSupportingAnnotation(StructConverterAnnotation.ANNOTATION_NAME);
-		converterAnnotation.setName("bar");
-		assertEquals("bar", converter.getName());
-		
-		attributeResource.removeSupportingAnnotation(StructConverterAnnotation.ANNOTATION_NAME);
-		assertEquals(null, eclipseLinkConvert.getConverter());
-		
-		converterAnnotation = (StructConverterAnnotation) attributeResource.addSupportingAnnotation(StructConverterAnnotation.ANNOTATION_NAME);		
-		assertNotNull(eclipseLinkConvert.getConverter());
-		
-		converterAnnotation.setName("FOO");
-		assertEquals("FOO", eclipseLinkConvert.getConverter().getName());	
-	}
-	
-
-	public void testGetConverterClass() throws Exception {
-		createTestEntityWithConvertAndStructConverterClass();
-		addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
-		
-		PersistentAttribute persistentAttribute = getJavaPersistentType().attributes().next();
-		BasicMapping basicMapping = (BasicMapping) persistentAttribute.getMapping();
-		Convert eclipseLinkConvert = (Convert) basicMapping.getConverter();
-		StructConverter converter = (StructConverter) eclipseLinkConvert.getConverter();
-		
-		assertEquals("Foo", converter.getConverterClass());
-	}
-
-	public void testSetConverterClass() throws Exception {
-		createTestEntityWithConvertAndStructConverterClass();
-		addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
-		
-		PersistentAttribute persistentAttribute = getJavaPersistentType().attributes().next();
-		BasicMapping basicMapping = (BasicMapping) persistentAttribute.getMapping();
-		Convert eclipseLinkConvert = (Convert) basicMapping.getConverter();
-		StructConverter converter = (StructConverter) eclipseLinkConvert.getConverter();
-		assertEquals("Foo", converter.getConverterClass());
-		
-		converter.setConverterClass("Bar");
-		assertEquals("Bar", converter.getConverterClass());
-			
-		JavaResourcePersistentType typeResource = getJpaProject().getJavaResourcePersistentType(FULLY_QUALIFIED_TYPE_NAME);
-		JavaResourcePersistentAttribute attributeResource = typeResource.persistableAttributes().next();
-		StructConverterAnnotation converterAnnotation = (StructConverterAnnotation) attributeResource.getSupportingAnnotation(StructConverterAnnotation.ANNOTATION_NAME);		
-		assertEquals("Bar", converterAnnotation.getConverter());
-
-		
-		converter.setConverterClass(null);
-		assertEquals(null, converter.getConverterClass());
-		converterAnnotation = (StructConverterAnnotation) attributeResource.getSupportingAnnotation(StructConverterAnnotation.ANNOTATION_NAME);		
-		assertEquals(null, converterAnnotation.getConverter());
-
-
-		converter.setConverterClass("Bar");
-		assertEquals("Bar", converter.getConverterClass());
-		converterAnnotation = (StructConverterAnnotation) attributeResource.getSupportingAnnotation(StructConverterAnnotation.ANNOTATION_NAME);		
-		assertEquals("Bar", converterAnnotation.getConverter());
-	}
-	
-	public void testGetConverterClassUpdatesFromResourceModelChange() throws Exception {
-		createTestEntityWithConvertAndStructConverterClass();
-		addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
-				
-		PersistentAttribute persistentAttribute = getJavaPersistentType().attributes().next();
-		BasicMapping basicMapping = (BasicMapping) persistentAttribute.getMapping();
-		Convert eclipseLinkConvert = (Convert) basicMapping.getConverter();
-		StructConverter converter = (StructConverter) eclipseLinkConvert.getConverter();
-
-		assertEquals("Foo", converter.getConverterClass());
-		
-		JavaResourcePersistentType typeResource = getJpaProject().getJavaResourcePersistentType(FULLY_QUALIFIED_TYPE_NAME);
-		JavaResourcePersistentAttribute attributeResource = typeResource.persistableAttributes().next();
-		StructConverterAnnotation converterAnnotation = (StructConverterAnnotation) attributeResource.getSupportingAnnotation(StructConverterAnnotation.ANNOTATION_NAME);
-		converterAnnotation.setConverter("Bar");
-		assertEquals("Bar", converter.getConverterClass());
-		
-		attributeResource.removeSupportingAnnotation(StructConverterAnnotation.ANNOTATION_NAME);
-		assertEquals(null, eclipseLinkConvert.getConverter());
-		
-		converterAnnotation = (StructConverterAnnotation) attributeResource.addSupportingAnnotation(StructConverterAnnotation.ANNOTATION_NAME);		
-		assertNotNull(eclipseLinkConvert.getConverter());
-		
-		converterAnnotation.setConverter("FooBar");
-		assertEquals("FooBar", ((StructConverter) eclipseLinkConvert.getConverter()).getConverterClass());	
-	}
-}
diff --git a/jpa/tests/org.eclipse.jpt.eclipselink.core.tests/src/org/eclipse/jpt/eclipselink/core/tests/internal/context/java/EclipseLinkJavaTypeConverterTests.java b/jpa/tests/org.eclipse.jpt.eclipselink.core.tests/src/org/eclipse/jpt/eclipselink/core/tests/internal/context/java/EclipseLinkJavaTypeConverterTests.java
deleted file mode 100644
index d424705..0000000
--- a/jpa/tests/org.eclipse.jpt.eclipselink.core.tests/src/org/eclipse/jpt/eclipselink/core/tests/internal/context/java/EclipseLinkJavaTypeConverterTests.java
+++ /dev/null
@@ -1,301 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.eclipselink.core.tests.internal.context.java;
-
-import java.util.Iterator;
-import org.eclipse.jdt.core.ICompilationUnit;
-import org.eclipse.jpt.core.context.BasicMapping;
-import org.eclipse.jpt.core.context.PersistentAttribute;
-import org.eclipse.jpt.core.resource.java.JPA;
-import org.eclipse.jpt.core.resource.java.JavaResourcePersistentAttribute;
-import org.eclipse.jpt.core.resource.java.JavaResourcePersistentType;
-import org.eclipse.jpt.eclipselink.core.context.Convert;
-import org.eclipse.jpt.eclipselink.core.context.TypeConverter;
-import org.eclipse.jpt.eclipselink.core.resource.java.EclipseLinkJPA;
-import org.eclipse.jpt.eclipselink.core.resource.java.TypeConverterAnnotation;
-import org.eclipse.jpt.eclipselink.core.tests.internal.context.EclipseLinkContextModelTestCase;
-import org.eclipse.jpt.utility.internal.iterators.ArrayIterator;
-
-@SuppressWarnings("nls")
-public class EclipseLinkJavaTypeConverterTests extends EclipseLinkContextModelTestCase
-{
-	
-	private ICompilationUnit createTestEntityWithConvertAndTypeConverter() throws Exception {
-		return this.createTestType(new DefaultAnnotationWriter() {
-			@Override
-			public Iterator<String> imports() {
-				return new ArrayIterator<String>(JPA.ENTITY, EclipseLinkJPA.CONVERT, EclipseLinkJPA.TYPE_CONVERTER);
-			}
-			@Override
-			public void appendTypeAnnotationTo(StringBuilder sb) {
-				sb.append("@Entity");
-			}
-			
-			@Override
-			public void appendIdFieldAnnotationTo(StringBuilder sb) {
-				sb.append("@Convert(\"foo\")").append(CR);
-				sb.append("    @TypeConverter(name=\"foo\"");
-			}
-		});
-	}
-	
-	private ICompilationUnit createTestEntityWithConvertAndDataType() throws Exception {
-		return this.createTestType(new DefaultAnnotationWriter() {
-			@Override
-			public Iterator<String> imports() {
-				return new ArrayIterator<String>(JPA.ENTITY, EclipseLinkJPA.CONVERT, EclipseLinkJPA.TYPE_CONVERTER);
-			}
-			@Override
-			public void appendTypeAnnotationTo(StringBuilder sb) {
-				sb.append("@Entity");
-			}
-			
-			@Override
-			public void appendIdFieldAnnotationTo(StringBuilder sb) {
-				sb.append("@Convert(\"foo\")").append(CR);
-				sb.append("    @TypeConverter(dataType=Foo.class");
-			}
-		});
-	}
-	
-	private ICompilationUnit createTestEntityWithConvertAndObjectType() throws Exception {
-		return this.createTestType(new DefaultAnnotationWriter() {
-			@Override
-			public Iterator<String> imports() {
-				return new ArrayIterator<String>(JPA.ENTITY, EclipseLinkJPA.CONVERT, EclipseLinkJPA.TYPE_CONVERTER);
-			}
-			@Override
-			public void appendTypeAnnotationTo(StringBuilder sb) {
-				sb.append("@Entity");
-			}
-			
-			@Override
-			public void appendIdFieldAnnotationTo(StringBuilder sb) {
-				sb.append("@Convert(\"foo\")").append(CR);
-				sb.append("    @TypeConverter(objectType=Foo.class");
-			}
-		});
-	}
-	
-	public EclipseLinkJavaTypeConverterTests(String name) {
-		super(name);
-	}
-
-
-	public void testGetName() throws Exception {
-		createTestEntityWithConvertAndTypeConverter();
-		addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
-		
-		PersistentAttribute persistentAttribute = getJavaPersistentType().attributes().next();
-		BasicMapping basicMapping = (BasicMapping) persistentAttribute.getMapping();
-		Convert eclipseLinkConvert = (Convert) basicMapping.getConverter();
-		TypeConverter converter = (TypeConverter) eclipseLinkConvert.getConverter();
-		
-		assertEquals("foo", converter.getName());
-	}
-
-	public void testSetName() throws Exception {
-		createTestEntityWithConvertAndTypeConverter();
-		addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
-		
-		PersistentAttribute persistentAttribute = getJavaPersistentType().attributes().next();
-		BasicMapping basicMapping = (BasicMapping) persistentAttribute.getMapping();
-		Convert eclipseLinkConvert = (Convert) basicMapping.getConverter();
-		TypeConverter converter = (TypeConverter) eclipseLinkConvert.getConverter();
-		assertEquals("foo", converter.getName());
-		
-		converter.setName("bar");
-		assertEquals("bar", converter.getName());
-			
-		JavaResourcePersistentType typeResource = getJpaProject().getJavaResourcePersistentType(FULLY_QUALIFIED_TYPE_NAME);
-		JavaResourcePersistentAttribute attributeResource = typeResource.persistableAttributes().next();
-		TypeConverterAnnotation converterAnnotation = (TypeConverterAnnotation) attributeResource.getSupportingAnnotation(TypeConverterAnnotation.ANNOTATION_NAME);		
-		assertEquals("bar", converterAnnotation.getName());
-
-		
-		converter.setName(null);
-		assertEquals(null, converter.getName());
-		converterAnnotation = (TypeConverterAnnotation) attributeResource.getSupportingAnnotation(TypeConverterAnnotation.ANNOTATION_NAME);		
-		assertEquals(null, converterAnnotation.getName());
-
-
-		converter.setName("bar");
-		assertEquals("bar", converter.getName());
-		converterAnnotation = (TypeConverterAnnotation) attributeResource.getSupportingAnnotation(TypeConverterAnnotation.ANNOTATION_NAME);		
-		assertEquals("bar", converterAnnotation.getName());
-	}
-	
-	public void testGetNameUpdatesFromResourceModelChange() throws Exception {
-		createTestEntityWithConvertAndTypeConverter();
-		addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
-				
-		PersistentAttribute persistentAttribute = getJavaPersistentType().attributes().next();
-		BasicMapping basicMapping = (BasicMapping) persistentAttribute.getMapping();
-		Convert eclipseLinkConvert = (Convert) basicMapping.getConverter();
-		TypeConverter converter = (TypeConverter) eclipseLinkConvert.getConverter();
-
-		assertEquals("foo", converter.getName());
-		
-		JavaResourcePersistentType typeResource = getJpaProject().getJavaResourcePersistentType(FULLY_QUALIFIED_TYPE_NAME);
-		JavaResourcePersistentAttribute attributeResource = typeResource.persistableAttributes().next();
-		TypeConverterAnnotation converterAnnotation = (TypeConverterAnnotation) attributeResource.getSupportingAnnotation(TypeConverterAnnotation.ANNOTATION_NAME);
-		converterAnnotation.setName("bar");
-		assertEquals("bar", converter.getName());
-		
-		attributeResource.removeSupportingAnnotation(TypeConverterAnnotation.ANNOTATION_NAME);
-		assertEquals(null, eclipseLinkConvert.getConverter());
-		
-		converterAnnotation = (TypeConverterAnnotation) attributeResource.addSupportingAnnotation(TypeConverterAnnotation.ANNOTATION_NAME);		
-		assertNotNull(eclipseLinkConvert.getConverter());
-		
-		converterAnnotation.setName("FOO");
-		assertEquals("FOO", eclipseLinkConvert.getConverter().getName());	
-	}
-
-	public void testGetDataType() throws Exception {
-		createTestEntityWithConvertAndDataType();
-		addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
-		
-		PersistentAttribute persistentAttribute = getJavaPersistentType().attributes().next();
-		BasicMapping basicMapping = (BasicMapping) persistentAttribute.getMapping();
-		Convert eclipseLinkConvert = (Convert) basicMapping.getConverter();
-		TypeConverter converter = (TypeConverter) eclipseLinkConvert.getConverter();
-		
-		assertEquals("Foo", converter.getDataType());
-	}
-
-	public void testSetDataType() throws Exception {
-		createTestEntityWithConvertAndDataType();
-		addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
-		
-		PersistentAttribute persistentAttribute = getJavaPersistentType().attributes().next();
-		BasicMapping basicMapping = (BasicMapping) persistentAttribute.getMapping();
-		Convert eclipseLinkConvert = (Convert) basicMapping.getConverter();
-		TypeConverter converter = (TypeConverter) eclipseLinkConvert.getConverter();
-		assertEquals("Foo", converter.getDataType());
-		
-		converter.setDataType("Bar");
-		assertEquals("Bar", converter.getDataType());
-			
-		JavaResourcePersistentType typeResource = getJpaProject().getJavaResourcePersistentType(FULLY_QUALIFIED_TYPE_NAME);
-		JavaResourcePersistentAttribute attributeResource = typeResource.persistableAttributes().next();
-		TypeConverterAnnotation converterAnnotation = (TypeConverterAnnotation) attributeResource.getSupportingAnnotation(TypeConverterAnnotation.ANNOTATION_NAME);		
-		assertEquals("Bar", converterAnnotation.getDataType());
-
-		
-		converter.setDataType(null);
-		assertEquals(null, converter.getDataType());
-		converterAnnotation = (TypeConverterAnnotation) attributeResource.getSupportingAnnotation(TypeConverterAnnotation.ANNOTATION_NAME);		
-		assertEquals(null, converterAnnotation.getDataType());
-
-
-		converter.setDataType("Bar");
-		assertEquals("Bar", converter.getDataType());
-		converterAnnotation = (TypeConverterAnnotation) attributeResource.getSupportingAnnotation(TypeConverterAnnotation.ANNOTATION_NAME);		
-		assertEquals("Bar", converterAnnotation.getDataType());
-	}
-	
-	public void testGetDataTypeUpdatesFromResourceModelChange() throws Exception {
-		createTestEntityWithConvertAndDataType();
-		addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
-				
-		PersistentAttribute persistentAttribute = getJavaPersistentType().attributes().next();
-		BasicMapping basicMapping = (BasicMapping) persistentAttribute.getMapping();
-		Convert eclipseLinkConvert = (Convert) basicMapping.getConverter();
-		TypeConverter converter = (TypeConverter) eclipseLinkConvert.getConverter();
-
-		assertEquals("Foo", converter.getDataType());
-		
-		JavaResourcePersistentType typeResource = getJpaProject().getJavaResourcePersistentType(FULLY_QUALIFIED_TYPE_NAME);
-		JavaResourcePersistentAttribute attributeResource = typeResource.persistableAttributes().next();
-		TypeConverterAnnotation converterAnnotation = (TypeConverterAnnotation) attributeResource.getSupportingAnnotation(TypeConverterAnnotation.ANNOTATION_NAME);
-		converterAnnotation.setDataType("Bar");
-		assertEquals("Bar", converter.getDataType());
-		
-		attributeResource.removeSupportingAnnotation(TypeConverterAnnotation.ANNOTATION_NAME);
-		assertEquals(null, eclipseLinkConvert.getConverter());
-		
-		converterAnnotation = (TypeConverterAnnotation) attributeResource.addSupportingAnnotation(TypeConverterAnnotation.ANNOTATION_NAME);		
-		assertNotNull(eclipseLinkConvert.getConverter());
-		
-		converterAnnotation.setDataType("FooBar");
-		assertEquals("FooBar", ((TypeConverter) eclipseLinkConvert.getConverter()).getDataType());	
-	}
-	
-	public void testGetObjectType() throws Exception {
-		createTestEntityWithConvertAndObjectType();
-		addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
-		
-		PersistentAttribute persistentAttribute = getJavaPersistentType().attributes().next();
-		BasicMapping basicMapping = (BasicMapping) persistentAttribute.getMapping();
-		Convert eclipseLinkConvert = (Convert) basicMapping.getConverter();
-		TypeConverter converter = (TypeConverter) eclipseLinkConvert.getConverter();
-		
-		assertEquals("Foo", converter.getObjectType());
-	}
-
-	public void testSetObjectType() throws Exception {
-		createTestEntityWithConvertAndObjectType();
-		addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
-		
-		PersistentAttribute persistentAttribute = getJavaPersistentType().attributes().next();
-		BasicMapping basicMapping = (BasicMapping) persistentAttribute.getMapping();
-		Convert eclipseLinkConvert = (Convert) basicMapping.getConverter();
-		TypeConverter converter = (TypeConverter) eclipseLinkConvert.getConverter();
-		assertEquals("Foo", converter.getObjectType());
-		
-		converter.setObjectType("Bar");
-		assertEquals("Bar", converter.getObjectType());
-			
-		JavaResourcePersistentType typeResource = getJpaProject().getJavaResourcePersistentType(FULLY_QUALIFIED_TYPE_NAME);
-		JavaResourcePersistentAttribute attributeResource = typeResource.persistableAttributes().next();
-		TypeConverterAnnotation converterAnnotation = (TypeConverterAnnotation) attributeResource.getSupportingAnnotation(TypeConverterAnnotation.ANNOTATION_NAME);		
-		assertEquals("Bar", converterAnnotation.getObjectType());
-
-		
-		converter.setObjectType(null);
-		assertEquals(null, converter.getObjectType());
-		converterAnnotation = (TypeConverterAnnotation) attributeResource.getSupportingAnnotation(TypeConverterAnnotation.ANNOTATION_NAME);		
-		assertEquals(null, converterAnnotation.getObjectType());
-
-
-		converter.setObjectType("Bar");
-		assertEquals("Bar", converter.getObjectType());
-		converterAnnotation = (TypeConverterAnnotation) attributeResource.getSupportingAnnotation(TypeConverterAnnotation.ANNOTATION_NAME);		
-		assertEquals("Bar", converterAnnotation.getObjectType());
-	}
-	
-	public void testGetObjectTypeUpdatesFromResourceModelChange() throws Exception {
-		createTestEntityWithConvertAndObjectType();
-		addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
-				
-		PersistentAttribute persistentAttribute = getJavaPersistentType().attributes().next();
-		BasicMapping basicMapping = (BasicMapping) persistentAttribute.getMapping();
-		Convert eclipseLinkConvert = (Convert) basicMapping.getConverter();
-		TypeConverter converter = (TypeConverter) eclipseLinkConvert.getConverter();
-
-		assertEquals("Foo", converter.getObjectType());
-		
-		JavaResourcePersistentType typeResource = getJpaProject().getJavaResourcePersistentType(FULLY_QUALIFIED_TYPE_NAME);
-		JavaResourcePersistentAttribute attributeResource = typeResource.persistableAttributes().next();
-		TypeConverterAnnotation converterAnnotation = (TypeConverterAnnotation) attributeResource.getSupportingAnnotation(TypeConverterAnnotation.ANNOTATION_NAME);
-		converterAnnotation.setObjectType("Bar");
-		assertEquals("Bar", converter.getObjectType());
-		
-		attributeResource.removeSupportingAnnotation(TypeConverterAnnotation.ANNOTATION_NAME);
-		assertEquals(null, eclipseLinkConvert.getConverter());
-		
-		converterAnnotation = (TypeConverterAnnotation) attributeResource.addSupportingAnnotation(TypeConverterAnnotation.ANNOTATION_NAME);		
-		assertNotNull(eclipseLinkConvert.getConverter());
-		
-		converterAnnotation.setObjectType("FooBar");
-		assertEquals("FooBar", ((TypeConverter) eclipseLinkConvert.getConverter()).getObjectType());	
-	}
-}
diff --git a/jpa/tests/org.eclipse.jpt.eclipselink.core.tests/src/org/eclipse/jpt/eclipselink/core/tests/internal/context/java/EclipseLinkJavaVersionMappingTests.java b/jpa/tests/org.eclipse.jpt.eclipselink.core.tests/src/org/eclipse/jpt/eclipselink/core/tests/internal/context/java/EclipseLinkJavaVersionMappingTests.java
deleted file mode 100644
index f801050..0000000
--- a/jpa/tests/org.eclipse.jpt.eclipselink.core.tests/src/org/eclipse/jpt/eclipselink/core/tests/internal/context/java/EclipseLinkJavaVersionMappingTests.java
+++ /dev/null
@@ -1,315 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.eclipselink.core.tests.internal.context.java;
-
-import java.util.Iterator;
-import org.eclipse.jdt.core.ICompilationUnit;
-import org.eclipse.jpt.core.context.Converter;
-import org.eclipse.jpt.core.context.PersistentAttribute;
-import org.eclipse.jpt.core.context.TemporalConverter;
-import org.eclipse.jpt.core.context.TemporalType;
-import org.eclipse.jpt.core.context.VersionMapping;
-import org.eclipse.jpt.core.resource.java.JPA;
-import org.eclipse.jpt.core.resource.java.JavaResourcePersistentAttribute;
-import org.eclipse.jpt.core.resource.java.JavaResourcePersistentType;
-import org.eclipse.jpt.core.resource.java.TemporalAnnotation;
-import org.eclipse.jpt.eclipselink.core.context.Convert;
-import org.eclipse.jpt.eclipselink.core.context.EclipseLinkVersionMapping;
-import org.eclipse.jpt.eclipselink.core.context.Mutable;
-import org.eclipse.jpt.eclipselink.core.resource.java.ConvertAnnotation;
-import org.eclipse.jpt.eclipselink.core.resource.java.EclipseLinkJPA;
-import org.eclipse.jpt.eclipselink.core.resource.java.MutableAnnotation;
-import org.eclipse.jpt.eclipselink.core.tests.internal.context.EclipseLinkContextModelTestCase;
-import org.eclipse.jpt.utility.internal.iterators.ArrayIterator;
-
-@SuppressWarnings("nls")
-public class EclipseLinkJavaVersionMappingTests extends EclipseLinkContextModelTestCase
-{
-	
-	private ICompilationUnit createTestEntityWithVersionMapping() throws Exception {
-		return this.createTestType(new DefaultAnnotationWriter() {
-			@Override
-			public Iterator<String> imports() {
-				return new ArrayIterator<String>(JPA.ENTITY, JPA.VERSION);
-			}
-			@Override
-			public void appendTypeAnnotationTo(StringBuilder sb) {
-				sb.append("@Entity").append(CR);
-			}
-			
-			@Override
-			public void appendIdFieldAnnotationTo(StringBuilder sb) {
-				sb.append("@Version").append(CR);
-			}
-		});
-	}
-
-	
-	private ICompilationUnit createTestEntityWithConvert() throws Exception {
-		return this.createTestType(new DefaultAnnotationWriter() {
-			@Override
-			public Iterator<String> imports() {
-				return new ArrayIterator<String>(JPA.ENTITY, JPA.VERSION, EclipseLinkJPA.CONVERT);
-			}
-			@Override
-			public void appendTypeAnnotationTo(StringBuilder sb) {
-				sb.append("@Entity").append(CR);
-			}
-			
-			@Override
-			public void appendIdFieldAnnotationTo(StringBuilder sb) {
-				sb.append("@Version").append(CR);
-				sb.append("@Convert(\"class-instance\")").append(CR);
-			}
-		});
-	}
-	
-	private ICompilationUnit createTestEntityWithMutableVersion() throws Exception {
-		return this.createTestType(new DefaultAnnotationWriter() {
-			@Override
-			public Iterator<String> imports() {
-				return new ArrayIterator<String>(JPA.ENTITY, JPA.VERSION, EclipseLinkJPA.MUTABLE);
-			}
-			@Override
-			public void appendTypeAnnotationTo(StringBuilder sb) {
-				sb.append("@Entity").append(CR);
-			}
-			
-			@Override
-			public void appendIdFieldAnnotationTo(StringBuilder sb) {
-				sb.append("@Version").append(CR);
-				sb.append("@Mutable").append(CR);
-			}
-		});
-	}
-	
-	private ICompilationUnit createTestEntityWithMutableVersionDate() throws Exception {
-		return this.createTestType(new DefaultAnnotationWriter() {
-			@Override
-			public Iterator<String> imports() {
-				return new ArrayIterator<String>(JPA.ENTITY, JPA.VERSION, EclipseLinkJPA.MUTABLE, "java.util.Date");
-			}
-			@Override
-			public void appendTypeAnnotationTo(StringBuilder sb) {
-				sb.append("@Entity").append(CR);
-			}
-			
-			@Override
-			public void appendIdFieldAnnotationTo(StringBuilder sb) {
-				sb.append("@Version").append(CR);
-				sb.append("    @Mutable").append(CR);
-				sb.append("    private Date myDate;").append(CR);
-				sb.append(CR);
-				sb.append("    ");
-			}
-		});
-	}
-	
-	public EclipseLinkJavaVersionMappingTests(String name) {
-		super(name);
-	}
-
-	public void testGetConvert() throws Exception {
-		createTestEntityWithVersionMapping();
-		addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
-		
-		JavaResourcePersistentType typeResource = getJpaProject().getJavaResourcePersistentType(FULLY_QUALIFIED_TYPE_NAME);
-		JavaResourcePersistentAttribute attributeResource = typeResource.persistableAttributes().next();
-		attributeResource.addSupportingAnnotation(ConvertAnnotation.ANNOTATION_NAME);
-		
-		PersistentAttribute persistentAttribute = getJavaPersistentType().attributes().next();
-		VersionMapping versionMapping = (VersionMapping) persistentAttribute.getSpecifiedMapping();
-
-		assertEquals(Convert.ECLIPSE_LINK_CONVERTER, versionMapping.getConverter().getType());
-	}
-	
-	public void testGetConvert2() throws Exception {
-		createTestEntityWithConvert();
-		addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
-		
-		PersistentAttribute persistentAttribute = getJavaPersistentType().attributes().next();
-		VersionMapping versionMapping = (VersionMapping) persistentAttribute.getMapping();
-
-		assertEquals(Convert.ECLIPSE_LINK_CONVERTER, versionMapping.getConverter().getType());
-		assertEquals(Convert.CLASS_INSTANCE_CONVERTER, ((Convert) versionMapping.getConverter()).getConverterName());
-	}
-
-	public void testSetConvert() throws Exception {
-		createTestEntityWithVersionMapping();
-		addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
-		
-		PersistentAttribute persistentAttribute = getJavaPersistentType().attributes().next();
-		VersionMapping versionMapping = (VersionMapping) persistentAttribute.getSpecifiedMapping();
-		assertEquals(Converter.NO_CONVERTER, versionMapping.getConverter().getType());
-		
-		versionMapping.setSpecifiedConverter(Converter.TEMPORAL_CONVERTER);
-		((TemporalConverter) versionMapping.getSpecifiedConverter()).setTemporalType(TemporalType.TIME);
-		
-		JavaResourcePersistentType typeResource = getJpaProject().getJavaResourcePersistentType(FULLY_QUALIFIED_TYPE_NAME);
-		JavaResourcePersistentAttribute attributeResource = typeResource.persistableAttributes().next();
-		TemporalAnnotation temporal = (TemporalAnnotation) attributeResource.getSupportingAnnotation(TemporalAnnotation.ANNOTATION_NAME);
-		
-		assertEquals(org.eclipse.jpt.core.resource.java.TemporalType.TIME, temporal.getValue());
-		
-		versionMapping.setSpecifiedConverter(null);
-		assertNull(attributeResource.getSupportingAnnotation(TemporalAnnotation.ANNOTATION_NAME));
-	}
-	
-	public void testGetConvertUpdatesFromResourceModelChange() throws Exception {
-		createTestEntityWithVersionMapping();
-		addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
-		
-		PersistentAttribute persistentAttribute = getJavaPersistentType().attributes().next();
-		VersionMapping versionMapping = (VersionMapping) persistentAttribute.getSpecifiedMapping();
-
-		assertEquals(Converter.NO_CONVERTER, versionMapping.getConverter().getType());
-		
-		
-		JavaResourcePersistentType typeResource = getJpaProject().getJavaResourcePersistentType(FULLY_QUALIFIED_TYPE_NAME);
-		JavaResourcePersistentAttribute attributeResource = typeResource.persistableAttributes().next();
-		ConvertAnnotation convert = (ConvertAnnotation) attributeResource.addSupportingAnnotation(ConvertAnnotation.ANNOTATION_NAME);
-		convert.setValue("foo");
-		
-		assertEquals(Convert.ECLIPSE_LINK_CONVERTER, versionMapping.getConverter().getType());
-		assertEquals("foo", ((Convert) versionMapping.getConverter()).getConverterName());
-		
-		attributeResource.removeSupportingAnnotation(ConvertAnnotation.ANNOTATION_NAME);
-		
-		assertEquals(Converter.NO_CONVERTER, versionMapping.getConverter().getType());
-		assertFalse(versionMapping.isDefault());
-		assertSame(versionMapping, persistentAttribute.getSpecifiedMapping());
-	}
-	
-	public void testGetSpecifiedMutable() throws Exception {
-		createTestEntityWithMutableVersion();
-		addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
-		
-		PersistentAttribute persistentAttribute = getJavaPersistentType().attributes().next();
-		EclipseLinkVersionMapping versionMapping = (EclipseLinkVersionMapping) persistentAttribute.getSpecifiedMapping();
-		Mutable mutable = versionMapping.getMutable();
-		assertEquals(Boolean.TRUE, mutable.getSpecifiedMutable());
-		
-		JavaResourcePersistentType typeResource = getJpaProject().getJavaResourcePersistentType(FULLY_QUALIFIED_TYPE_NAME);
-		JavaResourcePersistentAttribute attributeResource = typeResource.persistableAttributes().next();
-		MutableAnnotation mutableAnnotation = (MutableAnnotation) attributeResource.getSupportingAnnotation(MutableAnnotation.ANNOTATION_NAME);
-		mutableAnnotation.setValue(Boolean.TRUE);
-		
-		assertEquals(Boolean.TRUE, mutable.getSpecifiedMutable());
-
-		mutableAnnotation.setValue(null);
-		assertEquals(Boolean.TRUE, mutable.getSpecifiedMutable());
-
-		mutableAnnotation.setValue(Boolean.FALSE);
-		assertEquals(Boolean.FALSE, mutable.getSpecifiedMutable());
-		
-		attributeResource.removeSupportingAnnotation(MutableAnnotation.ANNOTATION_NAME);
-		assertEquals(null, mutable.getSpecifiedMutable());
-		
-		attributeResource.addSupportingAnnotation(MutableAnnotation.ANNOTATION_NAME);
-		assertEquals(Boolean.TRUE, mutable.getSpecifiedMutable());
-	}
-	
-	public void testSetSpecifiedMutable() throws Exception {
-		createTestEntityWithMutableVersion();
-		addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
-		
-		PersistentAttribute persistentAttribute = getJavaPersistentType().attributes().next();
-		EclipseLinkVersionMapping versionMapping = (EclipseLinkVersionMapping) persistentAttribute.getSpecifiedMapping();
-		Mutable mutable = versionMapping.getMutable();
-		assertEquals(Boolean.TRUE, mutable.getSpecifiedMutable());
-		
-		JavaResourcePersistentType typeResource = getJpaProject().getJavaResourcePersistentType(FULLY_QUALIFIED_TYPE_NAME);
-		JavaResourcePersistentAttribute attributeResource = typeResource.persistableAttributes().next();
-		MutableAnnotation mutableAnnotation = (MutableAnnotation) attributeResource.getSupportingAnnotation(MutableAnnotation.ANNOTATION_NAME);
-		assertEquals(null, mutableAnnotation.getValue());
-		
-		mutable.setSpecifiedMutable(Boolean.TRUE);	
-		assertEquals(null, mutableAnnotation.getValue());
-
-		mutable.setSpecifiedMutable(null);
-		mutableAnnotation = (MutableAnnotation) attributeResource.getSupportingAnnotation(MutableAnnotation.ANNOTATION_NAME);
-		assertEquals(null, mutableAnnotation);
-		
-		mutable.setSpecifiedMutable(Boolean.FALSE);	
-		mutableAnnotation = (MutableAnnotation) attributeResource.getSupportingAnnotation(MutableAnnotation.ANNOTATION_NAME);
-		assertEquals(Boolean.FALSE, mutableAnnotation.getValue());
-		
-		mutable.setSpecifiedMutable(Boolean.TRUE);	
-		assertEquals(null, mutableAnnotation.getValue());
-	}
-	
-	public void testIsDefaultMutable() throws Exception {
-		createTestEntityWithMutableVersion();
-		addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
-		
-		PersistentAttribute persistentAttribute = getJavaPersistentType().attributes().next();
-		EclipseLinkVersionMapping versionMapping = (EclipseLinkVersionMapping) persistentAttribute.getSpecifiedMapping();
-		Mutable mutable = versionMapping.getMutable();
-		assertTrue(mutable.isDefaultMutable());
-		
-		JavaResourcePersistentType typeResource = getJpaProject().getJavaResourcePersistentType(FULLY_QUALIFIED_TYPE_NAME);
-		JavaResourcePersistentAttribute attributeResource = typeResource.persistableAttributes().next();
-		attributeResource.removeSupportingAnnotation(MutableAnnotation.ANNOTATION_NAME);
-		assertTrue(mutable.isDefaultMutable());
-		
-		mutable.setSpecifiedMutable(Boolean.FALSE);	
-		assertTrue(mutable.isDefaultMutable());
-		
-		//set mutable default to false in the persistence unit properties, verify default in java still true since this is not a Date/Calendar
-		(getPersistenceUnit()).getOptions().setTemporalMutable(Boolean.FALSE);
-		assertTrue(mutable.isDefaultMutable());
-	}
-	
-	public void testIsDefaultMutableForDate() throws Exception {
-		createTestEntityWithMutableVersionDate();
-		addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
-		
-		PersistentAttribute persistentAttribute = getJavaPersistentType().attributes().next();
-		EclipseLinkVersionMapping versionMapping = (EclipseLinkVersionMapping) persistentAttribute.getSpecifiedMapping();
-		Mutable mutable = versionMapping.getMutable();
-		assertFalse(mutable.isDefaultMutable());
-		
-		JavaResourcePersistentType typeResource = getJpaProject().getJavaResourcePersistentType(FULLY_QUALIFIED_TYPE_NAME);
-		JavaResourcePersistentAttribute attributeResource = typeResource.persistableAttributes().next();
-		attributeResource.removeSupportingAnnotation(MutableAnnotation.ANNOTATION_NAME);
-		assertFalse(mutable.isDefaultMutable());
-		
-		mutable.setSpecifiedMutable(Boolean.TRUE);	
-		assertFalse(mutable.isDefaultMutable());
-		
-		//set mutable default to false in the persistence unit properties, verify default in java still true since this is not a Date/Calendar
-		(getPersistenceUnit()).getOptions().setTemporalMutable(Boolean.TRUE);
-		assertTrue(mutable.isDefaultMutable());
-		
-		(getPersistenceUnit()).getOptions().setTemporalMutable(Boolean.FALSE);
-		assertFalse(mutable.isDefaultMutable());
-		
-		(getPersistenceUnit()).getOptions().setTemporalMutable(null);
-		assertFalse(mutable.isDefaultMutable());
-	}
-	
-	public void testIsMutable() throws Exception {
-		createTestEntityWithMutableVersion();
-		addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
-		
-		PersistentAttribute persistentAttribute = getJavaPersistentType().attributes().next();
-		EclipseLinkVersionMapping versionMapping = (EclipseLinkVersionMapping) persistentAttribute.getSpecifiedMapping();
-		Mutable mutable = versionMapping.getMutable();
-		assertTrue(mutable.isMutable());
-		
-		JavaResourcePersistentType typeResource = getJpaProject().getJavaResourcePersistentType(FULLY_QUALIFIED_TYPE_NAME);
-		JavaResourcePersistentAttribute attributeResource = typeResource.persistableAttributes().next();
-		attributeResource.removeSupportingAnnotation(MutableAnnotation.ANNOTATION_NAME);
-		assertTrue(mutable.isMutable());
-		
-		mutable.setSpecifiedMutable(Boolean.TRUE);	
-		assertTrue(mutable.isMutable());
-	}
-}
diff --git a/jpa/tests/org.eclipse.jpt.eclipselink.core.tests/src/org/eclipse/jpt/eclipselink/core/tests/internal/context/java/JptEclipseLinkCoreJavaContextModelTests.java b/jpa/tests/org.eclipse.jpt.eclipselink.core.tests/src/org/eclipse/jpt/eclipselink/core/tests/internal/context/java/JptEclipseLinkCoreJavaContextModelTests.java
deleted file mode 100644
index 95171f3..0000000
--- a/jpa/tests/org.eclipse.jpt.eclipselink.core.tests/src/org/eclipse/jpt/eclipselink/core/tests/internal/context/java/JptEclipseLinkCoreJavaContextModelTests.java
+++ /dev/null
@@ -1,53 +0,0 @@
-/*******************************************************************************
- *  Copyright (c) 2008, 2009 Oracle. 
- *  All rights reserved.  This program and the accompanying materials 
- *  are made available under the terms of the Eclipse Public License v1.0 
- *  which accompanies this distribution, and is available at 
- *  http://www.eclipse.org/legal/epl-v10.html
- *  
- *  Contributors: 
- *  	Oracle - initial API and implementation
- *******************************************************************************/
-package org.eclipse.jpt.eclipselink.core.tests.internal.context.java;
-
-import junit.framework.Test;
-import junit.framework.TestCase;
-import junit.framework.TestSuite;
-
-public class JptEclipseLinkCoreJavaContextModelTests extends TestCase
-{
-	public static Test suite() {
-		return suite(true);
-	}
-
-	public static Test suite(boolean all) {
-		TestSuite suite = new TestSuite(JptEclipseLinkCoreJavaContextModelTests.class.getName());
-		//TODO commented out these tests for now, we don't want the java Access annotation work to be exposed yet.
-		//EclipseLink has backed out its JPA 2.0 annotation support until it is released or licensing issues are cleared up.
-//		suite.addTestSuite(EclipseLink1_1JavaPersistentTypeTests.class);
-//		suite.addTestSuite(EclipseLink1_1JavaPersistentAttributeTests.class);
-		
-		suite.addTestSuite(EclipseLinkJavaBasicMappingTests.class);
-		suite.addTestSuite(EclipseLinkJavaCachingTests.class);
-		suite.addTestSuite(EclipseLinkJavaConvertTests.class);
-		suite.addTestSuite(EclipseLinkJavaConverterTests.class);
-		suite.addTestSuite(EclipseLinkJavaEmbeddableTests.class);
-		suite.addTestSuite(EclipseLinkJavaEntityTests.class);
-		suite.addTestSuite(EclipseLinkJavaIdMappingTests.class);
-		suite.addTestSuite(EclipseLinkJavaMappedSuperclassTests.class);
-		suite.addTestSuite(EclipseLinkJavaObjectTypeConverterTests.class);
-		suite.addTestSuite(EclipseLinkJavaOneToManyMappingTests.class);
-		suite.addTestSuite(EclipseLinkJavaOneToOneMappingTests.class);		
-		suite.addTestSuite(EclipseLinkJavaManyToManyMappingTests.class);		
-		suite.addTestSuite(EclipseLinkJavaManyToOneMappingTests.class);		
-		suite.addTestSuite(EclipseLinkJavaStructConverterTests.class);
-		suite.addTestSuite(EclipseLinkJavaTypeConverterTests.class);
-		suite.addTestSuite(EclipseLinkJavaVersionMappingTests.class);
-		return suite;
-	}
-
-	private JptEclipseLinkCoreJavaContextModelTests() {
-		super();
-		throw new UnsupportedOperationException();
-	}
-}
diff --git a/jpa/tests/org.eclipse.jpt.eclipselink.core.tests/src/org/eclipse/jpt/eclipselink/core/tests/internal/context/orm/EclipseLink1_1OrmContextModelTestCase.java b/jpa/tests/org.eclipse.jpt.eclipselink.core.tests/src/org/eclipse/jpt/eclipselink/core/tests/internal/context/orm/EclipseLink1_1OrmContextModelTestCase.java
deleted file mode 100644
index 8a29fd6..0000000
--- a/jpa/tests/org.eclipse.jpt.eclipselink.core.tests/src/org/eclipse/jpt/eclipselink/core/tests/internal/context/orm/EclipseLink1_1OrmContextModelTestCase.java
+++ /dev/null
@@ -1,88 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- *******************************************************************************/
-package org.eclipse.jpt.eclipselink.core.tests.internal.context.orm;
-
-import org.eclipse.jpt.core.internal.facet.JpaFacetDataModelProperties;
-import org.eclipse.jpt.core.internal.facet.JpaFacetDataModelProvider;
-import org.eclipse.jpt.core.internal.operations.OrmFileCreationDataModelProperties;
-import org.eclipse.jpt.core.resource.xml.JpaXmlResource;
-import org.eclipse.jpt.core.tests.internal.projects.TestJpaProject;
-import org.eclipse.jpt.eclipselink.core.internal.EclipseLink1_1JpaPlatformProvider;
-import org.eclipse.jpt.eclipselink.core.internal.context.orm.EclipseLinkEntityMappings;
-import org.eclipse.jpt.eclipselink.core.internal.operations.EclipseLink1_1OrmFileCreationDataModelProvider;
-import org.eclipse.jpt.eclipselink.core.internal.operations.EclipseLink1_1OrmFileCreationOperation;
-import org.eclipse.jpt.eclipselink.core.resource.orm.XmlEntityMappings;
-import org.eclipse.jpt.eclipselink.core.tests.internal.context.EclipseLink1_1ContextModelTestCase;
-import org.eclipse.wst.common.frameworks.datamodel.DataModelFactory;
-import org.eclipse.wst.common.frameworks.datamodel.IDataModel;
-
-public abstract class EclipseLink1_1OrmContextModelTestCase
-	extends EclipseLink1_1ContextModelTestCase
-{
-	protected JpaXmlResource eclipseLink1_1OrmXmlResource;
-	
-	
-	protected EclipseLink1_1OrmContextModelTestCase(String name) {
-		super(name);
-	}
-	
-	@Override
-	protected void setUp() throws Exception {
-		super.setUp();
-		this.eclipseLink1_1OrmXmlResource = getJpaProject().getDefaultEclipseLinkOrmXmlResource();
-	}
-	@Override
-	protected IDataModel buildJpaConfigDataModel() {
-		IDataModel dataModel = DataModelFactory.createDataModel(new JpaFacetDataModelProvider());		
-		dataModel.setProperty(JpaFacetDataModelProperties.PLATFORM_ID, EclipseLink1_1JpaPlatformProvider.ID);
-		dataModel.setProperty(JpaFacetDataModelProperties.CREATE_ORM_XML, Boolean.FALSE);
-		return dataModel;
-	}
-	
-	@Override
-	protected TestJpaProject buildJpaProject(String projectName, boolean autoBuild, IDataModel jpaConfig) throws Exception {
-		TestJpaProject testJpaProject = super.buildJpaProject(projectName, autoBuild, jpaConfig);
-		
-		EclipseLink1_1OrmFileCreationOperation operation = 
-			new EclipseLink1_1OrmFileCreationOperation(buildEclipseLinkOrmConfig(testJpaProject));
-		operation.execute(null, null);
-		
-		return testJpaProject;
-	}
-	
-	protected IDataModel buildEclipseLinkOrmConfig(TestJpaProject testJpaProject) {
-		IDataModel dataModel = 
-			DataModelFactory.createDataModel(new EclipseLink1_1OrmFileCreationDataModelProvider());		
-		dataModel.setProperty(OrmFileCreationDataModelProperties.PROJECT_NAME, testJpaProject.getProject().getName());
-		dataModel.setProperty(OrmFileCreationDataModelProperties.ADD_TO_PERSISTENCE_UNIT, Boolean.TRUE);
-		return dataModel;
-	}
-	
-	@Override
-	protected void tearDown() throws Exception {
-		this.eclipseLink1_1OrmXmlResource = null;
-		super.tearDown();
-	}
-	
-	@Override
-	protected JpaXmlResource getOrmXmlResource() {
-		return this.eclipseLink1_1OrmXmlResource;
-	}
-	
-	@Override
-	protected XmlEntityMappings getXmlEntityMappings() {
-		return (XmlEntityMappings) super.getXmlEntityMappings();
-	}
-	
-	@Override
-	protected EclipseLinkEntityMappings getEntityMappings() {
-		return (EclipseLinkEntityMappings) super.getEntityMappings();
-	}
-}
diff --git a/jpa/tests/org.eclipse.jpt.eclipselink.core.tests/src/org/eclipse/jpt/eclipselink/core/tests/internal/context/orm/EclipseLink1_1OrmPersistentAttributeTests.java b/jpa/tests/org.eclipse.jpt.eclipselink.core.tests/src/org/eclipse/jpt/eclipselink/core/tests/internal/context/orm/EclipseLink1_1OrmPersistentAttributeTests.java
deleted file mode 100644
index 59457e4..0000000
--- a/jpa/tests/org.eclipse.jpt.eclipselink.core.tests/src/org/eclipse/jpt/eclipselink/core/tests/internal/context/orm/EclipseLink1_1OrmPersistentAttributeTests.java
+++ /dev/null
@@ -1,574 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- *******************************************************************************/
-package org.eclipse.jpt.eclipselink.core.tests.internal.context.orm;
-
-import java.util.Iterator;
-import java.util.ListIterator;
-import org.eclipse.jdt.core.ICompilationUnit;
-import org.eclipse.jpt.core.MappingKeys;
-import org.eclipse.jpt.core.context.AccessType;
-import org.eclipse.jpt.core.context.BasicMapping;
-import org.eclipse.jpt.core.context.IdMapping;
-import org.eclipse.jpt.core.context.java.JavaPersistentAttribute;
-import org.eclipse.jpt.core.context.java.JavaPersistentType;
-import org.eclipse.jpt.core.context.orm.OrmPersistentAttribute;
-import org.eclipse.jpt.core.context.orm.OrmPersistentType;
-import org.eclipse.jpt.core.internal.context.orm.GenericOrmIdMapping;
-import org.eclipse.jpt.core.internal.context.orm.GenericOrmNullAttributeMapping;
-import org.eclipse.jpt.core.internal.context.orm.GenericOrmOneToOneMapping;
-import org.eclipse.jpt.core.internal.facet.JpaFacetDataModelProperties;
-import org.eclipse.jpt.core.internal.facet.JpaFacetDataModelProvider;
-import org.eclipse.jpt.core.resource.java.JPA;
-import org.eclipse.jpt.core.resource.java.JavaResourcePersistentAttribute;
-import org.eclipse.jpt.eclipselink.core.internal.EclipseLink1_1JpaPlatformProvider;
-import org.eclipse.jpt.utility.internal.iterators.ArrayIterator;
-import org.eclipse.wst.common.frameworks.datamodel.DataModelFactory;
-import org.eclipse.wst.common.frameworks.datamodel.IDataModel;
-
-@SuppressWarnings("nls")
-public class EclipseLink1_1OrmPersistentAttributeTests extends EclipseLink1_1OrmContextModelTestCase
-{
-
-	@Override
-	protected IDataModel buildJpaConfigDataModel() {
-		IDataModel dataModel = DataModelFactory.createDataModel(new JpaFacetDataModelProvider());		
-		dataModel.setProperty(JpaFacetDataModelProperties.PLATFORM_ID, EclipseLink1_1JpaPlatformProvider.ID);
-		dataModel.setProperty(JpaFacetDataModelProperties.CREATE_ORM_XML, Boolean.TRUE);
-		return dataModel;
-	}	
-	
-
-	public EclipseLink1_1OrmPersistentAttributeTests(String name) {
-		super(name);
-	}
-
-	
-	private ICompilationUnit createTestTypeNullAttributeMapping() throws Exception {
-	
-		return this.createTestType(new DefaultAnnotationWriter() {			
-			@Override
-			public void appendIdFieldAnnotationTo(StringBuilder sb) {
-				sb.append(CR);			
-				sb.append("    private Address address;").append(CR);
-				sb.append(CR);
-			}
-		});
-	}
-	
-	private ICompilationUnit createTestEntityIdMapping() throws Exception {
-		return this.createTestType(new DefaultAnnotationWriter() {
-			@Override
-			public Iterator<String> imports() {
-				return new ArrayIterator<String>(JPA.ENTITY, JPA.ID, JPA.COLUMN);
-			}
-			@Override
-			public void appendTypeAnnotationTo(StringBuilder sb) {
-				sb.append("@Entity");
-			}
-			@Override
-			public void appendIdFieldAnnotationTo(StringBuilder sb) {
-				sb.append("@Id");
-				sb.append("@Column(name=\"FOO\")");
-			}
-		});
-	}
-	
-	private ICompilationUnit createTestEntityIdMappingPropertyAccess() throws Exception {
-		return this.createTestType(new DefaultAnnotationWriter() {
-			@Override
-			public Iterator<String> imports() {
-				return new ArrayIterator<String>(JPA.ENTITY, JPA.ID, JPA.COLUMN);
-			}
-			@Override
-			public void appendTypeAnnotationTo(StringBuilder sb) {
-				sb.append("@Entity");
-			}
-			@Override
-			public void appendGetIdMethodAnnotationTo(StringBuilder sb) {
-				sb.append("@Id");
-				sb.append("@Column(name=\"FOO\")");
-			}
-		});
-	}
-	
-	private ICompilationUnit createTestEntityOneToOneMapping() throws Exception {
-		return this.createTestType(new DefaultAnnotationWriter() {
-			@Override
-			public Iterator<String> imports() {
-				return new ArrayIterator<String>(JPA.ENTITY, JPA.ONE_TO_ONE);
-			}
-			@Override
-			public void appendTypeAnnotationTo(StringBuilder sb) {
-				sb.append("@Entity");
-			}
-			@Override
-			public void appendIdFieldAnnotationTo(StringBuilder sb) {
-				sb.append("@OneToOne");
-				sb.append("    private Address address;");
-			}
-		});
-	}
-//	
-//	private void createAccessTypeEnum() throws Exception {
-//		this.createEnumAndMembers(JPA_ANNOTATIONS_PACKAGE_NAME, "AccessType", "FIELD, PROPERTY;");	
-//	}
-//	
-//	private void createAccessAnnotation() throws Exception {
-//		this.createAnnotationAndMembers(JPA_ANNOTATIONS_PACKAGE_NAME, "Access", "AccessType value();");
-//		createAccessTypeEnum();
-//	}
-//	
-//	private ICompilationUnit createTestEntityAnnotatedFieldPropertySpecified() throws Exception {
-//		createAccessAnnotation();
-//		return this.createTestType(new DefaultAnnotationWriter() {
-//			@Override
-//			public Iterator<String> imports() {
-//				return new ArrayIterator<String>(JPA.ENTITY, JPA.BASIC, JPA.ID, JPA.ACCESS, JPA.ACCESS_TYPE);
-//			}
-//			@Override
-//			public void appendTypeAnnotationTo(StringBuilder sb) {
-//				sb.append("@Entity");
-//				sb.append("@Access(AccessType.PROPERTY)");
-//			}
-//	
-//			@Override
-//			public void appendNameFieldAnnotationTo(StringBuilder sb) {
-//				sb.append("@Basic");
-//				sb.append("@Access(AccessType.FIELD)");
-//			}
-//			
-//			@Override
-//			public void appendGetIdMethodAnnotationTo(StringBuilder sb) {
-//				sb.append("@Id");
-//			}
-//		});
-//	}
-	
-	public void testMakeSpecified() throws Exception {
-		createTestType();
-		OrmPersistentType ormPersistentType = getEntityMappings().addPersistentType(MappingKeys.ENTITY_TYPE_MAPPING_KEY, FULLY_QUALIFIED_TYPE_NAME);
-		
-		assertEquals(2, ormPersistentType.virtualAttributesSize());
-		
-		OrmPersistentAttribute ormPersistentAttribute = ormPersistentType.virtualAttributes().next();
-		assertEquals("id", ormPersistentAttribute.getName());
-		assertTrue(ormPersistentAttribute.isVirtual());
-		ormPersistentAttribute.makeSpecified();
-		
-		assertEquals(1, ormPersistentType.virtualAttributesSize());
-		assertEquals(1, ormPersistentType.specifiedAttributesSize());
-		OrmPersistentAttribute specifiedOrmPersistentAttribute = ormPersistentType.specifiedAttributes().next();
-		assertEquals("id", specifiedOrmPersistentAttribute.getName());
-		assertFalse(specifiedOrmPersistentAttribute.isVirtual());
-		
-		ormPersistentAttribute = ormPersistentType.virtualAttributes().next();
-		ormPersistentAttribute.makeSpecified();
-		
-		assertEquals(0, ormPersistentType.virtualAttributesSize());
-		assertEquals(2, ormPersistentType.specifiedAttributesSize());
-		ListIterator<OrmPersistentAttribute> specifiedAttributes = ormPersistentType.specifiedAttributes();
-		specifiedOrmPersistentAttribute = specifiedAttributes.next();
-		assertEquals("id", specifiedOrmPersistentAttribute.getName());
-		assertFalse(specifiedOrmPersistentAttribute.isVirtual());
-		
-		specifiedOrmPersistentAttribute = specifiedAttributes.next();
-		assertEquals("name", specifiedOrmPersistentAttribute.getName());
-		assertFalse(specifiedOrmPersistentAttribute.isVirtual());
-	}
-//TODO Access annotation tests	
-//	public void testMakeSpecifiedWithAccess() throws Exception {
-//		createTestEntityAnnotatedFieldPropertySpecified();
-//		OrmPersistentType ormPersistentType = getEntityMappings().addPersistentType(MappingKeys.ENTITY_TYPE_MAPPING_KEY, FULLY_QUALIFIED_TYPE_NAME);
-//		
-//		assertEquals(2, ormPersistentType.virtualAttributesSize());
-//		
-//		OrmPersistentAttribute ormPersistentAttribute = ormPersistentType.virtualAttributes().next();
-//		assertEquals("id", ormPersistentAttribute.getName());
-//		assertTrue(ormPersistentAttribute.isVirtual());
-//		assertEquals(AccessType.PROPERTY, ormPersistentAttribute.getAccess());
-//		assertEquals(AccessType.PROPERTY, ormPersistentAttribute.getSpecifiedAccess());
-//		assertEquals(null, ormPersistentAttribute.getJavaPersistentAttribute().getSpecifiedAccess());
-//		ormPersistentAttribute.makeSpecified();
-//		
-//		assertEquals(1, ormPersistentType.virtualAttributesSize());
-//		assertEquals(1, ormPersistentType.specifiedAttributesSize());
-//		OrmPersistentAttribute specifiedOrmPersistentAttribute = ormPersistentType.specifiedAttributes().next();
-//		assertEquals("id", specifiedOrmPersistentAttribute.getName());
-//		assertEquals(null, specifiedOrmPersistentAttribute.getSpecifiedAccess());
-//		assertEquals(AccessType.PROPERTY, specifiedOrmPersistentAttribute.getAccess());
-//		assertFalse(specifiedOrmPersistentAttribute.isVirtual());
-//		
-//		ormPersistentAttribute = ormPersistentType.virtualAttributes().next();
-//		assertEquals("name", ormPersistentAttribute.getName());
-//		assertTrue(ormPersistentAttribute.isVirtual());
-//		assertEquals(AccessType.FIELD, ormPersistentAttribute.getSpecifiedAccess());
-//		ormPersistentAttribute.makeSpecified();
-//		
-//		assertEquals(0, ormPersistentType.virtualAttributesSize());
-//		assertEquals(2, ormPersistentType.specifiedAttributesSize());
-//		ListIterator<OrmPersistentAttribute> specifiedAttributes = ormPersistentType.specifiedAttributes();
-//		specifiedOrmPersistentAttribute = specifiedAttributes.next();
-//		assertEquals("id", specifiedOrmPersistentAttribute.getName());
-//		assertFalse(specifiedOrmPersistentAttribute.isVirtual());
-//		assertEquals(AccessType.PROPERTY, specifiedOrmPersistentAttribute.getAccess());
-//		assertEquals(null, specifiedOrmPersistentAttribute.getSpecifiedAccess());
-//		
-//		specifiedOrmPersistentAttribute = specifiedAttributes.next();
-//		assertEquals("name", specifiedOrmPersistentAttribute.getName());
-//		assertFalse(specifiedOrmPersistentAttribute.isVirtual());
-//		assertEquals(AccessType.FIELD, specifiedOrmPersistentAttribute.getSpecifiedAccess());
-//	}
-
-	public void testMakeSpecifiedMappingKey() throws Exception {
-		createTestTypeNullAttributeMapping();
-		OrmPersistentType ormPersistentType = getEntityMappings().addPersistentType(MappingKeys.ENTITY_TYPE_MAPPING_KEY, FULLY_QUALIFIED_TYPE_NAME);
-		
-		assertEquals(3, ormPersistentType.virtualAttributesSize());
-		
-		//take a virtual mapping with a mapping type and make it specified
-		OrmPersistentAttribute ormPersistentAttribute = ormPersistentType.virtualAttributes().next();
-		assertEquals("address", ormPersistentAttribute.getName());
-		assertTrue(ormPersistentAttribute.isVirtual());
-		assertTrue(ormPersistentAttribute.getMapping() instanceof GenericOrmNullAttributeMapping);
-		ormPersistentAttribute.makeSpecified(MappingKeys.ONE_TO_ONE_ATTRIBUTE_MAPPING_KEY);
-		
-		assertEquals(2, ormPersistentType.virtualAttributesSize());
-		assertEquals(1, ormPersistentType.specifiedAttributesSize());
-		OrmPersistentAttribute specifiedOrmPersistentAttribute = ormPersistentType.specifiedAttributes().next();
-		assertEquals("address", specifiedOrmPersistentAttribute.getName());
-		assertFalse(specifiedOrmPersistentAttribute.isVirtual());
-		assertTrue(specifiedOrmPersistentAttribute.getMapping() instanceof GenericOrmOneToOneMapping);
-		
-		
-		ormPersistentAttribute = ormPersistentType.virtualAttributes().next();
-		ormPersistentAttribute.makeSpecified(MappingKeys.ID_ATTRIBUTE_MAPPING_KEY);
-		
-		assertEquals(1, ormPersistentType.virtualAttributesSize());
-		assertEquals(2, ormPersistentType.specifiedAttributesSize());
-		ListIterator<OrmPersistentAttribute> specifiedAttributes = ormPersistentType.specifiedAttributes();
-		
-		specifiedOrmPersistentAttribute = specifiedAttributes.next();
-		assertEquals("id", specifiedOrmPersistentAttribute.getName());
-		assertFalse(specifiedOrmPersistentAttribute.isVirtual());
-		assertTrue(specifiedOrmPersistentAttribute.getMapping() instanceof GenericOrmIdMapping);
-		
-		specifiedOrmPersistentAttribute = specifiedAttributes.next();
-		assertEquals("address", specifiedOrmPersistentAttribute.getName());
-		assertFalse(specifiedOrmPersistentAttribute.isVirtual());
-	}
-	
-	public void testMakeVirtual() throws Exception {
-		createTestType();
-		OrmPersistentType ormPersistentType = getEntityMappings().addPersistentType(MappingKeys.ENTITY_TYPE_MAPPING_KEY, FULLY_QUALIFIED_TYPE_NAME);
-		
-		assertEquals(2, ormPersistentType.virtualAttributesSize());
-		
-		ormPersistentType.virtualAttributes().next().makeSpecified();
-		ormPersistentType.virtualAttributes().next().makeSpecified();
-
-		assertEquals(0, ormPersistentType.virtualAttributesSize());
-		assertEquals(2, ormPersistentType.specifiedAttributesSize());
-		OrmPersistentAttribute specifiedOrmPersistentAttribute = ormPersistentType.specifiedAttributes().next();
-		assertEquals("id", specifiedOrmPersistentAttribute.getName());
-		assertFalse(specifiedOrmPersistentAttribute.isVirtual());
-		
-		specifiedOrmPersistentAttribute.makeVirtual();
-		assertEquals(1, ormPersistentType.virtualAttributesSize());
-		assertEquals(1, ormPersistentType.specifiedAttributesSize());
-		
-		specifiedOrmPersistentAttribute = ormPersistentType.specifiedAttributes().next();
-		specifiedOrmPersistentAttribute.makeVirtual();
-		assertEquals(2, ormPersistentType.virtualAttributesSize());
-		assertEquals(0, ormPersistentType.specifiedAttributesSize());
-		
-		ListIterator<OrmPersistentAttribute> virtualAttributes = ormPersistentType.virtualAttributes();
-		OrmPersistentAttribute virtualAttribute = virtualAttributes.next();		
-		assertEquals("id", virtualAttribute.getName());
-		virtualAttribute = virtualAttributes.next();		
-		assertEquals("name", virtualAttribute.getName());
-	}
-	
-	public void testMakeVirtualNoUnderlyingJavaAttribute() throws Exception {
-		createTestType();
-		OrmPersistentType ormPersistentType = getEntityMappings().addPersistentType(MappingKeys.ENTITY_TYPE_MAPPING_KEY, FULLY_QUALIFIED_TYPE_NAME);
-		
-		assertEquals(2, ormPersistentType.virtualAttributesSize());
-		
-		ormPersistentType.virtualAttributes().next().makeSpecified();
-		ormPersistentType.virtualAttributes().next().makeSpecified();
-
-		
-		ormPersistentType.specifiedAttributes().next().getMapping().setName("noJavaAttribute");
-		assertEquals(1, ormPersistentType.virtualAttributesSize());
-		assertEquals(2, ormPersistentType.specifiedAttributesSize());
-		
-		
-		OrmPersistentAttribute specifiedOrmPersistentAttribute = ormPersistentType.specifiedAttributes().next();
-		specifiedOrmPersistentAttribute.makeVirtual();
-		assertEquals(1, ormPersistentType.virtualAttributesSize());
-		assertEquals(1, ormPersistentType.specifiedAttributesSize());
-		
-		assertEquals("id", ormPersistentType.virtualAttributes().next().getName());
-		assertEquals("name", ormPersistentType.specifiedAttributes().next().getName());
-	}
-	
-	public void testVirtualMappingTypeWhenMetadataComplete()  throws Exception {
-		createTestEntityIdMapping();
-		OrmPersistentType ormPersistentType = getEntityMappings().addPersistentType(MappingKeys.ENTITY_TYPE_MAPPING_KEY, FULLY_QUALIFIED_TYPE_NAME);
-		
-		OrmPersistentAttribute ormPersistentAttribute = ormPersistentType.virtualAttributes().next();
-		assertEquals("id", ormPersistentAttribute.getName());
-		assertEquals(MappingKeys.ID_ATTRIBUTE_MAPPING_KEY, ormPersistentAttribute.getMappingKey());
-		assertEquals("FOO", ((IdMapping) ormPersistentAttribute.getMapping()).getColumn().getName());
-		
-		
-		ormPersistentType.getMapping().setSpecifiedMetadataComplete(Boolean.TRUE);
-
-		ormPersistentAttribute = ormPersistentType.virtualAttributes().next();
-		assertEquals("id", ormPersistentAttribute.getName());
-		assertEquals(MappingKeys.BASIC_ATTRIBUTE_MAPPING_KEY, ormPersistentAttribute.getMappingKey());
-		assertEquals("id", ((BasicMapping) ormPersistentAttribute.getMapping()).getColumn().getName());
-	}
-	
-	public void testVirtualMappingTypeWhenMetadataComplete2()  throws Exception {
-		createTestEntityOneToOneMapping();
-		OrmPersistentType ormPersistentType = getEntityMappings().addPersistentType(MappingKeys.ENTITY_TYPE_MAPPING_KEY, FULLY_QUALIFIED_TYPE_NAME);
-		
-		OrmPersistentAttribute ormPersistentAttribute = ormPersistentType.virtualAttributes().next();
-		assertEquals("address", ormPersistentAttribute.getName());
-		assertEquals(MappingKeys.ONE_TO_ONE_ATTRIBUTE_MAPPING_KEY, ormPersistentAttribute.getMappingKey());
-		
-		
-		ormPersistentType.getMapping().setSpecifiedMetadataComplete(Boolean.TRUE);
-
-		ormPersistentAttribute = ormPersistentType.virtualAttributes().next();
-		assertEquals("address", ormPersistentAttribute.getName());
-		assertEquals(MappingKeys.NULL_ATTRIBUTE_MAPPING_KEY, ormPersistentAttribute.getMappingKey());
-	}
-	
-	public void testGetJavaPersistentAttribute() throws Exception {
-		createTestEntityIdMapping();
-		OrmPersistentType ormPersistentType = getEntityMappings().addPersistentType(MappingKeys.ENTITY_TYPE_MAPPING_KEY, FULLY_QUALIFIED_TYPE_NAME);
-		JavaPersistentType javaPersistentType = ormPersistentType.getJavaPersistentType();
-		
-		OrmPersistentAttribute ormPersistentAttribute = ormPersistentType.getAttributeNamed("id");
-		JavaPersistentAttribute javaPersistentAttribute = javaPersistentType.getAttributeNamed("id");
-			
-		//virtual orm attribute, access type matches java : FIELD, name matches java
-		assertTrue(ormPersistentAttribute.isVirtual());
-		assertNotSame(javaPersistentAttribute, ormPersistentAttribute.getJavaPersistentAttribute());
-		JavaResourcePersistentAttribute javaResourcePersistentAttribute = ormPersistentAttribute.getJavaPersistentAttribute().getResourcePersistentAttribute();
-		assertTrue(javaResourcePersistentAttribute.isField());
-		assertEquals("id", javaResourcePersistentAttribute.getName());
-		assertEquals(javaPersistentType.getResourcePersistentType().persistableFields().next(), javaResourcePersistentAttribute);
-		
-		
-		//specified orm attribute, access type matches java : FIELD, name matches java
-		//javaPersistentAttribute should be == to java context model object
-		ormPersistentAttribute.makeSpecified();
-		ormPersistentAttribute = ormPersistentType.getAttributeNamed("id");
-		assertFalse(ormPersistentAttribute.isVirtual());
-		assertEquals(javaPersistentAttribute, ormPersistentAttribute.getJavaPersistentAttribute());
-	
-		
-		//virtual orm attribute, java access type FIELD, orm access type PROPERTY, name matches java
-		//verify the property java resource persistent attribute is used in orm.
-		ormPersistentAttribute.makeVirtual();
-		ormPersistentAttribute = ormPersistentType.getAttributeNamed("id");		
-		ormPersistentType.setSpecifiedAccess(AccessType.PROPERTY);
-		assertNotSame(ormPersistentAttribute, ormPersistentType.getAttributeNamed("id"));
-		ormPersistentAttribute = ormPersistentType.getAttributeNamed("id");
-		assertNotSame(javaPersistentAttribute, ormPersistentAttribute.getJavaPersistentAttribute());
-		javaResourcePersistentAttribute = ormPersistentAttribute.getJavaPersistentAttribute().getResourcePersistentAttribute();
-		assertTrue(javaResourcePersistentAttribute.isProperty());
-		assertEquals("id", javaResourcePersistentAttribute.getName());
-		assertEquals(javaPersistentType.getResourcePersistentType().persistableProperties().next(), javaResourcePersistentAttribute);
-		
-		
-		ormPersistentType.setSpecifiedAccess(null);//default access will be field
-		ormPersistentAttribute = ormPersistentType.getAttributeNamed("id");		
-		ormPersistentAttribute.makeSpecified();
-		ormPersistentAttribute = ormPersistentType.getAttributeNamed("id");		
-		ormPersistentAttribute.getMapping().setName("id2");
-		assertEquals(null, ormPersistentAttribute.getJavaPersistentAttribute());
-		
-		ormPersistentAttribute.getMapping().setName(null);
-		assertEquals(null, ormPersistentAttribute.getJavaPersistentAttribute());
-
-		ormPersistentAttribute.getMapping().setName("id");
-		assertEquals(javaPersistentAttribute, ormPersistentAttribute.getJavaPersistentAttribute());
-
-		
-		ormPersistentType.getMapping().setSpecifiedMetadataComplete(Boolean.TRUE);
-		assertEquals(javaPersistentAttribute, ormPersistentAttribute.getJavaPersistentAttribute());
-	}
-	
-	public void testGetJavaPersistentAttributeMixedAccess() throws Exception {
-		createTestEntityIdMapping();
-		OrmPersistentType ormPersistentType = getEntityMappings().addPersistentType(MappingKeys.ENTITY_TYPE_MAPPING_KEY, FULLY_QUALIFIED_TYPE_NAME);
-		ormPersistentType.setSpecifiedAccess(AccessType.PROPERTY);
-		JavaPersistentType javaPersistentType = ormPersistentType.getJavaPersistentType();
-		
-		OrmPersistentAttribute ormPersistentAttribute = ormPersistentType.getAttributeNamed("id");
-		JavaPersistentAttribute javaPersistentAttribute = javaPersistentType.getAttributeNamed("id");
-		
-		assertEquals(AccessType.PROPERTY, ormPersistentAttribute.getAccess());
-		assertEquals(AccessType.FIELD, javaPersistentAttribute.getPersistentType().getAccess());
-		assertTrue(ormPersistentAttribute.isVirtual());
-		assertNotSame(javaPersistentAttribute, ormPersistentAttribute.getJavaPersistentAttribute());
-		assertEquals(MappingKeys.BASIC_ATTRIBUTE_MAPPING_KEY, ormPersistentAttribute.getMappingKey());
-		assertEquals(MappingKeys.ID_ATTRIBUTE_MAPPING_KEY, javaPersistentAttribute.getMappingKey());
-		
-		
-		ormPersistentAttribute.makeSpecified();
-		ormPersistentAttribute = ormPersistentType.getAttributeNamed("id");
-		assertFalse(ormPersistentAttribute.isVirtual());
-		assertEquals(AccessType.PROPERTY, ormPersistentAttribute.getAccess());
-		assertNotSame(javaPersistentAttribute, ormPersistentAttribute.getJavaPersistentAttribute());
-		assertTrue(ormPersistentAttribute.getJavaPersistentAttribute().getResourcePersistentAttribute().isProperty());
-		assertTrue(javaPersistentAttribute.getResourcePersistentAttribute().isField());
-		
-		ormPersistentAttribute.setSpecifiedAccess(AccessType.FIELD);
-		ormPersistentAttribute = ormPersistentType.getAttributeNamed("id");
-		assertFalse(ormPersistentAttribute.isVirtual());
-		assertEquals(AccessType.FIELD, ormPersistentAttribute.getAccess());
-		assertEquals(javaPersistentAttribute, ormPersistentAttribute.getJavaPersistentAttribute());
-		assertTrue(ormPersistentAttribute.getJavaPersistentAttribute().getResourcePersistentAttribute().isField());
-		assertTrue(javaPersistentAttribute.getResourcePersistentAttribute().isField());
-	}
-	
-	public void testGetAccess() throws Exception {
-		createTestEntityIdMapping();
-		OrmPersistentType ormPersistentType = getEntityMappings().addPersistentType(MappingKeys.ENTITY_TYPE_MAPPING_KEY, FULLY_QUALIFIED_TYPE_NAME);
-		JavaPersistentType javaPersistentType = ormPersistentType.getJavaPersistentType();
-		
-		OrmPersistentAttribute ormPersistentAttribute = ormPersistentType.getAttributeNamed("id");
-		JavaPersistentAttribute javaPersistentAttribute = javaPersistentType.getAttributeNamed("id");
-		
-		assertTrue(ormPersistentAttribute.isVirtual());
-		assertEquals(AccessType.FIELD, ormPersistentAttribute.getAccess());
-		assertTrue(ormPersistentAttribute.getJavaPersistentAttribute().getResourcePersistentAttribute().isField());
-		assertEquals(AccessType.FIELD, javaPersistentAttribute.getAccess());
-		assertTrue(javaPersistentAttribute.getResourcePersistentAttribute().isField());
-		
-		
-		ormPersistentAttribute.makeSpecified();
-		ormPersistentAttribute = ormPersistentType.getAttributeNamed("id");
-		assertFalse(ormPersistentAttribute.isVirtual());
-		assertEquals(AccessType.FIELD, ormPersistentAttribute.getAccess());
-		assertTrue(ormPersistentAttribute.getJavaPersistentAttribute().getResourcePersistentAttribute().isField());
-		assertEquals(AccessType.FIELD, javaPersistentAttribute.getAccess());
-		assertTrue(javaPersistentAttribute.getResourcePersistentAttribute().isField());
-		
-		
-		ormPersistentType.getMapping().setSpecifiedMetadataComplete(Boolean.TRUE);
-		assertFalse(ormPersistentAttribute.isVirtual());
-		assertEquals(AccessType.FIELD, ormPersistentAttribute.getAccess());
-		assertEquals(javaPersistentAttribute, ormPersistentAttribute.getJavaPersistentAttribute());
-		assertEquals(AccessType.FIELD, ormPersistentAttribute.getJavaPersistentAttribute().getAccess());
-		assertEquals(AccessType.FIELD, javaPersistentAttribute.getAccess());
-		assertTrue(javaPersistentAttribute.getResourcePersistentAttribute().isField());
-	}
-	
-	public void testGetAccessPropertyInJava() throws Exception {
-		createTestEntityIdMappingPropertyAccess();
-		OrmPersistentType ormPersistentType = getEntityMappings().addPersistentType(MappingKeys.ENTITY_TYPE_MAPPING_KEY, FULLY_QUALIFIED_TYPE_NAME);
-		JavaPersistentType javaPersistentType = ormPersistentType.getJavaPersistentType();
-		
-		OrmPersistentAttribute ormPersistentAttribute = ormPersistentType.getAttributeNamed("id");
-		JavaPersistentAttribute javaPersistentAttribute = javaPersistentType.getAttributeNamed("id");
-		
-		assertTrue(ormPersistentAttribute.isVirtual());
-		assertEquals(AccessType.PROPERTY, ormPersistentAttribute.getAccess());
-		assertTrue(ormPersistentAttribute.getJavaPersistentAttribute().getResourcePersistentAttribute().isProperty());
-		assertEquals(AccessType.PROPERTY, javaPersistentAttribute.getAccess());
-		assertTrue(javaPersistentAttribute.getResourcePersistentAttribute().isProperty());
-		
-		
-		ormPersistentAttribute.makeSpecified();
-		ormPersistentAttribute = ormPersistentType.getAttributeNamed("id");
-		assertFalse(ormPersistentAttribute.isVirtual());
-		assertEquals(AccessType.PROPERTY, ormPersistentAttribute.getAccess());
-		assertTrue(ormPersistentAttribute.getJavaPersistentAttribute().getResourcePersistentAttribute().isProperty());
-		assertEquals(AccessType.PROPERTY, javaPersistentAttribute.getAccess());
-		assertTrue(javaPersistentAttribute.getResourcePersistentAttribute().isProperty());
-		
-		
-		ormPersistentType.getMapping().setSpecifiedMetadataComplete(Boolean.TRUE);
-		assertFalse(ormPersistentAttribute.isVirtual());
-		assertEquals(AccessType.FIELD, ormPersistentAttribute.getAccess());
-		assertNotSame(javaPersistentAttribute, ormPersistentAttribute.getJavaPersistentAttribute());
-		assertEquals(AccessType.FIELD, ormPersistentAttribute.getJavaPersistentAttribute().getAccess());
-		assertEquals(AccessType.PROPERTY, javaPersistentAttribute.getAccess());
-		assertTrue(javaPersistentAttribute.getResourcePersistentAttribute().isProperty());
-	}
-
-//TODO Access annotation tests		
-//	public void testGetAccessPropertyInJava2() throws Exception {
-//		createTestEntityAnnotatedFieldPropertySpecified();
-//		OrmPersistentType ormPersistentType = getEntityMappings().addPersistentType(MappingKeys.ENTITY_TYPE_MAPPING_KEY, FULLY_QUALIFIED_TYPE_NAME);
-//		JavaPersistentType javaPersistentType = ormPersistentType.getJavaPersistentType();
-//		
-//		OrmPersistentAttribute ormPersistentAttribute = ormPersistentType.getAttributeNamed("id");
-//		JavaPersistentAttribute javaPersistentAttribute = javaPersistentType.getAttributeNamed("id");
-//		
-//		assertTrue(ormPersistentAttribute.isVirtual());
-//		assertEquals(AccessType.PROPERTY, ormPersistentAttribute.getAccess());
-//		assertTrue(ormPersistentAttribute.getJavaPersistentAttribute().getResourcePersistentAttribute().isProperty());
-//		assertEquals(AccessType.PROPERTY, javaPersistentAttribute.getAccess());
-//		assertTrue(javaPersistentAttribute.getResourcePersistentAttribute().isProperty());
-//
-//		
-//		OrmPersistentAttribute nameOrmPersistentAttribute = ormPersistentType.getAttributeNamed("name");
-//		JavaPersistentAttribute nameJavaPersistentAttribute = javaPersistentType.getAttributeNamed("name");
-//		
-//		assertTrue(nameOrmPersistentAttribute.isVirtual());
-//		assertEquals(AccessType.FIELD, nameOrmPersistentAttribute.getAccess());
-//		assertTrue(nameOrmPersistentAttribute.getJavaPersistentAttribute().getResourcePersistentAttribute().isField());
-//		assertEquals(AccessType.FIELD, nameJavaPersistentAttribute.getAccess());
-//		assertTrue(nameJavaPersistentAttribute.getResourcePersistentAttribute().isField());
-//
-//			
-//		ormPersistentAttribute.makeSpecified();
-//		ormPersistentAttribute = ormPersistentType.getAttributeNamed("id");
-//		assertFalse(ormPersistentAttribute.isVirtual());
-//		assertEquals(AccessType.PROPERTY, ormPersistentAttribute.getAccess());
-//		assertTrue(ormPersistentAttribute.getJavaPersistentAttribute().getResourcePersistentAttribute().isProperty());
-//		assertEquals(AccessType.PROPERTY, javaPersistentAttribute.getAccess());
-//		assertTrue(javaPersistentAttribute.getResourcePersistentAttribute().isProperty());
-//		
-//		nameOrmPersistentAttribute.makeSpecified();
-//		nameOrmPersistentAttribute = ormPersistentType.getAttributeNamed("name");
-//		assertFalse(nameOrmPersistentAttribute.isVirtual());
-//		assertEquals(AccessType.FIELD, nameOrmPersistentAttribute.getAccess());
-//		assertEquals(AccessType.FIELD, nameOrmPersistentAttribute.getJavaPersistentAttribute().getAccess());
-//		assertTrue(nameOrmPersistentAttribute.getJavaPersistentAttribute().getResourcePersistentAttribute().isField());
-//		assertEquals(AccessType.FIELD, nameJavaPersistentAttribute.getAccess());
-//		assertTrue(nameJavaPersistentAttribute.getResourcePersistentAttribute().isField());
-//		assertEquals(nameJavaPersistentAttribute, nameOrmPersistentAttribute.getJavaPersistentAttribute());
-//		
-//		ormPersistentType.getMapping().setSpecifiedMetadataComplete(Boolean.TRUE);
-//		assertFalse(ormPersistentAttribute.isVirtual());
-//		assertEquals(AccessType.FIELD, ormPersistentAttribute.getAccess());
-//		assertNotSame(javaPersistentAttribute, ormPersistentAttribute.getJavaPersistentAttribute());
-//		assertEquals(AccessType.FIELD, ormPersistentAttribute.getJavaPersistentAttribute().getAccess());
-//		assertEquals(AccessType.PROPERTY, javaPersistentAttribute.getAccess());
-//		assertTrue(javaPersistentAttribute.getResourcePersistentAttribute().isProperty());
-//
-//		assertFalse(nameOrmPersistentAttribute.isVirtual());
-//		assertEquals(AccessType.FIELD, nameOrmPersistentAttribute.getAccess());
-//		assertNotSame(javaPersistentAttribute, nameOrmPersistentAttribute.getJavaPersistentAttribute());
-//		assertEquals(AccessType.FIELD, nameOrmPersistentAttribute.getJavaPersistentAttribute().getAccess());
-//		assertEquals(AccessType.FIELD, nameJavaPersistentAttribute.getAccess());
-//		assertTrue(nameJavaPersistentAttribute.getResourcePersistentAttribute().isField());
-//
-//	}
-
-}
\ No newline at end of file
diff --git a/jpa/tests/org.eclipse.jpt.eclipselink.core.tests/src/org/eclipse/jpt/eclipselink/core/tests/internal/context/orm/EclipseLink1_1OrmPersistentTypeTests.java b/jpa/tests/org.eclipse.jpt.eclipselink.core.tests/src/org/eclipse/jpt/eclipselink/core/tests/internal/context/orm/EclipseLink1_1OrmPersistentTypeTests.java
deleted file mode 100644
index b7573ec..0000000
--- a/jpa/tests/org.eclipse.jpt.eclipselink.core.tests/src/org/eclipse/jpt/eclipselink/core/tests/internal/context/orm/EclipseLink1_1OrmPersistentTypeTests.java
+++ /dev/null
@@ -1,306 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- *******************************************************************************/
-package org.eclipse.jpt.eclipselink.core.tests.internal.context.orm;
-
-import java.util.Iterator;
-import org.eclipse.jdt.core.ICompilationUnit;
-import org.eclipse.jpt.core.MappingKeys;
-import org.eclipse.jpt.core.context.AccessType;
-import org.eclipse.jpt.core.context.java.JavaPersistentType;
-import org.eclipse.jpt.core.context.orm.OrmPersistentAttribute;
-import org.eclipse.jpt.core.context.orm.OrmPersistentType;
-import org.eclipse.jpt.core.internal.facet.JpaFacetDataModelProperties;
-import org.eclipse.jpt.core.internal.facet.JpaFacetDataModelProvider;
-import org.eclipse.jpt.core.resource.java.JPA;
-import org.eclipse.jpt.eclipselink.core.internal.EclipseLink1_1JpaPlatformProvider;
-import org.eclipse.jpt.utility.internal.iterators.ArrayIterator;
-import org.eclipse.wst.common.frameworks.datamodel.DataModelFactory;
-import org.eclipse.wst.common.frameworks.datamodel.IDataModel;
-
-@SuppressWarnings("nls")
-public class EclipseLink1_1OrmPersistentTypeTests extends EclipseLink1_1OrmContextModelTestCase
-{
-
-	@Override
-	protected IDataModel buildJpaConfigDataModel() {
-		IDataModel dataModel = DataModelFactory.createDataModel(new JpaFacetDataModelProvider());		
-		dataModel.setProperty(JpaFacetDataModelProperties.PLATFORM_ID, EclipseLink1_1JpaPlatformProvider.ID);
-		dataModel.setProperty(JpaFacetDataModelProperties.CREATE_ORM_XML, Boolean.TRUE);
-		return dataModel;
-	}	
-	
-
-	public EclipseLink1_1OrmPersistentTypeTests(String name) {
-		super(name);
-	}
-
-	
-	private ICompilationUnit createTestEntityIdMapping() throws Exception {
-		return this.createTestType(new DefaultAnnotationWriter() {
-			@Override
-			public Iterator<String> imports() {
-				return new ArrayIterator<String>(JPA.ENTITY, JPA.ID, JPA.COLUMN);
-			}
-			@Override
-			public void appendTypeAnnotationTo(StringBuilder sb) {
-				sb.append("@Entity");
-			}
-			@Override
-			public void appendIdFieldAnnotationTo(StringBuilder sb) {
-				sb.append("@Id");
-				sb.append("@Column(name=\"FOO\")");
-			}
-		});
-	}
-//	
-//	private void createAccessTypeEnum() throws Exception {
-//		this.createEnumAndMembers(JPA_ANNOTATIONS_PACKAGE_NAME, "AccessType", "FIELD, PROPERTY;");	
-//	}
-//	
-//	private void createAccessAnnotation() throws Exception {
-//		this.createAnnotationAndMembers(JPA_ANNOTATIONS_PACKAGE_NAME, "Access", "AccessType value();");
-//		createAccessTypeEnum();
-//	}
-//	
-//	private ICompilationUnit createTestEntityAnnotatedFieldPropertySpecified() throws Exception {
-//		createAccessAnnotation();
-//		return this.createTestType(new DefaultAnnotationWriter() {
-//			@Override
-//			public Iterator<String> imports() {
-//				return new ArrayIterator<String>(JPA.ENTITY, JPA.BASIC, JPA.ID, JPA.ACCESS, JPA.ACCESS_TYPE);
-//			}
-//			@Override
-//			public void appendTypeAnnotationTo(StringBuilder sb) {
-//				sb.append("@Entity");
-//				sb.append("@Access(AccessType.PROPERTY)");
-//			}
-//	
-//			@Override
-//			public void appendNameFieldAnnotationTo(StringBuilder sb) {
-//				sb.append("@Basic");
-//				sb.append("@Access(AccessType.FIELD)");
-//			}
-//			
-//			@Override
-//			public void appendGetIdMethodAnnotationTo(StringBuilder sb) {
-//				sb.append("@Id");
-//			}
-//		});
-//	}
-//	
-//	private ICompilationUnit createTestEntityFieldSpecifiedPropertyAnnotated() throws Exception {
-//		createAccessAnnotation();
-//		return this.createTestType(new DefaultAnnotationWriter() {
-//			@Override
-//			public Iterator<String> imports() {
-//				return new ArrayIterator<String>(JPA.ENTITY, JPA.BASIC, JPA.ID, JPA.ACCESS, JPA.ACCESS_TYPE);
-//			}
-//			@Override
-//			public void appendTypeAnnotationTo(StringBuilder sb) {
-//				sb.append("@Entity");
-//				sb.append("@Access(AccessType.FIELD)");
-//			}
-//			
-//			@Override
-//			public void appendGetIdMethodAnnotationTo(StringBuilder sb) {
-//				sb.append("@Id");
-//				sb.append("@Access(AccessType.PROPERTY)");
-//			}
-//		});
-//	}
-//
-//	private ICompilationUnit createTestEntityPropertySpecified() throws Exception {
-//		createAccessAnnotation();
-//		return this.createTestType(new DefaultAnnotationWriter() {
-//			@Override
-//			public Iterator<String> imports() {
-//				return new ArrayIterator<String>(JPA.ENTITY, JPA.ACCESS, JPA.ACCESS_TYPE);
-//			}
-//			@Override
-//			public void appendTypeAnnotationTo(StringBuilder sb) {
-//				sb.append("@Entity");
-//				sb.append("@Access(AccessType.PROPERTY)");
-//			}
-//		});
-//	}
-
-	public void testGetAccessWithJavaAnnotations() throws Exception {
-		createTestEntityIdMapping();
-		OrmPersistentType ormPersistentType = getEntityMappings().addPersistentType(MappingKeys.ENTITY_TYPE_MAPPING_KEY, FULLY_QUALIFIED_TYPE_NAME);
-		JavaPersistentType javaPersistentType = ormPersistentType.getJavaPersistentType();
-		
-		assertEquals(AccessType.FIELD, ormPersistentType.getAccess());
-		assertEquals(AccessType.FIELD, javaPersistentType.getAccess());
-		assertEquals(null, javaPersistentType.getSpecifiedAccess());
-		
-		
-		OrmPersistentAttribute ormPersistentAttribute = ormPersistentType.getAttributeNamed("id");
-		ormPersistentAttribute.makeSpecified();
-		assertEquals(AccessType.FIELD, ormPersistentType.getAccess());
-		assertEquals(AccessType.FIELD, javaPersistentType.getAccess());
-		assertEquals(null, javaPersistentType.getSpecifiedAccess());
-		
-		ormPersistentType.getMapping().setSpecifiedMetadataComplete(Boolean.TRUE);
-		assertEquals(AccessType.FIELD, ormPersistentType.getAccess());
-		assertEquals(AccessType.FIELD, javaPersistentType.getAccess());
-	}
-
-//TODO Access annotation test	
-//	public void testGetAccessWithJavaAnnotationsProperty() throws Exception {
-//		createTestEntityAnnotatedFieldPropertySpecified();
-//		OrmPersistentType ormPersistentType = getEntityMappings().addPersistentType(MappingKeys.ENTITY_TYPE_MAPPING_KEY, FULLY_QUALIFIED_TYPE_NAME);
-//		JavaPersistentType javaPersistentType = ormPersistentType.getJavaPersistentType();
-//		
-//		assertEquals(AccessType.PROPERTY, ormPersistentType.getAccess());
-//		assertEquals(AccessType.PROPERTY, javaPersistentType.getAccess());
-//		assertEquals(AccessType.PROPERTY, javaPersistentType.getSpecifiedAccess());
-//		
-//		
-//		OrmPersistentAttribute ormPersistentAttribute = ormPersistentType.getAttributeNamed("id");
-//		ormPersistentAttribute.makeSpecified();
-//		assertEquals(AccessType.PROPERTY, ormPersistentType.getAccess());
-//		assertEquals(AccessType.PROPERTY, javaPersistentType.getAccess());
-//		assertEquals(AccessType.PROPERTY, javaPersistentType.getSpecifiedAccess());
-//		
-//		ormPersistentType.getMapping().setSpecifiedMetadataComplete(Boolean.TRUE);
-//		assertEquals(AccessType.FIELD, ormPersistentType.getAccess());
-//		assertEquals(AccessType.PROPERTY, javaPersistentType.getAccess());
-//	}
-//	
-//	public void testVirtualAttributes() throws Exception {
-//		createTestEntityAnnotatedFieldPropertySpecified();
-//		OrmPersistentType ormPersistentType = getEntityMappings().addPersistentType(MappingKeys.ENTITY_TYPE_MAPPING_KEY, FULLY_QUALIFIED_TYPE_NAME);
-//		
-//		ListIterator<OrmPersistentAttribute> virtualAttributes = ormPersistentType.virtualAttributes();
-//		OrmPersistentAttribute ormPersistentAttribute = virtualAttributes.next();
-//		assertEquals("id", ormPersistentAttribute.getName());
-//		assertEquals(AccessType.PROPERTY, ormPersistentAttribute.getAccess());
-//		
-//		
-//		ormPersistentAttribute = virtualAttributes.next();
-//		assertEquals("name", ormPersistentAttribute.getName());
-//		assertEquals(AccessType.FIELD, ormPersistentAttribute.getAccess());
-//		
-//		assertFalse(virtualAttributes.hasNext());
-//		
-//		ormPersistentType.getMapping().setSpecifiedMetadataComplete(Boolean.TRUE);
-//		virtualAttributes = ormPersistentType.virtualAttributes();
-//		ormPersistentAttribute = virtualAttributes.next();
-//		assertEquals("id", ormPersistentAttribute.getName());
-//		assertEquals(AccessType.FIELD, ormPersistentAttribute.getAccess());
-//		
-//		
-//		ormPersistentAttribute = virtualAttributes.next();
-//		assertEquals("name", ormPersistentAttribute.getName());
-//		assertEquals(AccessType.FIELD, ormPersistentAttribute.getAccess());
-//		
-//		assertFalse(virtualAttributes.hasNext());
-//	}
-//	
-//	public void testVirtualAttributes2() throws Exception {
-//		createTestEntityPropertySpecified();
-//		OrmPersistentType ormPersistentType = getEntityMappings().addPersistentType(MappingKeys.ENTITY_TYPE_MAPPING_KEY, FULLY_QUALIFIED_TYPE_NAME);
-//		
-//		ListIterator<OrmPersistentAttribute> virtualAttributes = ormPersistentType.virtualAttributes();
-//		OrmPersistentAttribute ormPersistentAttribute = virtualAttributes.next();
-//		assertEquals("id", ormPersistentAttribute.getName());
-//		assertEquals(AccessType.PROPERTY, ormPersistentAttribute.getAccess());
-//		
-//		assertFalse(virtualAttributes.hasNext());
-//		
-//		ormPersistentType.getMapping().setSpecifiedMetadataComplete(Boolean.TRUE);
-//		virtualAttributes = ormPersistentType.virtualAttributes();
-//		ormPersistentAttribute = virtualAttributes.next();
-//		assertEquals("id", ormPersistentAttribute.getName());
-//		assertEquals(AccessType.FIELD, ormPersistentAttribute.getAccess());
-//		
-//		
-//		ormPersistentAttribute = virtualAttributes.next();
-//		assertEquals("name", ormPersistentAttribute.getName());
-//		assertEquals(AccessType.FIELD, ormPersistentAttribute.getAccess());
-//		
-//		assertFalse(virtualAttributes.hasNext());
-//		
-//		ormPersistentType.getMapping().setSpecifiedMetadataComplete(Boolean.FALSE);
-//		virtualAttributes = ormPersistentType.virtualAttributes();
-//		ormPersistentAttribute = virtualAttributes.next();
-//		assertEquals("id", ormPersistentAttribute.getName());
-//		assertEquals(AccessType.PROPERTY, ormPersistentAttribute.getAccess());
-//		
-//		assertFalse(virtualAttributes.hasNext());
-//	}
-//	
-//	public void testVirtualAttributes3() throws Exception {
-//		createTestEntityFieldSpecifiedPropertyAnnotated();
-//		OrmPersistentType ormPersistentType = getEntityMappings().addPersistentType(MappingKeys.ENTITY_TYPE_MAPPING_KEY, FULLY_QUALIFIED_TYPE_NAME);
-//		
-//		ListIterator<OrmPersistentAttribute> virtualAttributes = ormPersistentType.virtualAttributes();
-//		OrmPersistentAttribute ormPersistentAttribute = virtualAttributes.next();
-//		assertEquals("id", ormPersistentAttribute.getName());
-//		assertEquals(AccessType.FIELD, ormPersistentAttribute.getAccess());
-//		
-//		ormPersistentAttribute = virtualAttributes.next();
-//		assertEquals("name", ormPersistentAttribute.getName());
-//		assertEquals(AccessType.FIELD, ormPersistentAttribute.getAccess());
-//
-//		ormPersistentAttribute = virtualAttributes.next();
-//		assertEquals("id", ormPersistentAttribute.getName());
-//		assertEquals(AccessType.PROPERTY, ormPersistentAttribute.getAccess());
-//
-//		assertFalse(virtualAttributes.hasNext());
-//		
-//		
-//		ormPersistentAttribute.makeSpecified();
-//		
-//		virtualAttributes = ormPersistentType.virtualAttributes();
-//		ormPersistentAttribute = virtualAttributes.next();
-//		assertEquals("id", ormPersistentAttribute.getName());
-//		assertEquals(AccessType.FIELD, ormPersistentAttribute.getAccess());
-//		
-//		ormPersistentAttribute = virtualAttributes.next();
-//		assertEquals("name", ormPersistentAttribute.getName());
-//		assertEquals(AccessType.FIELD, ormPersistentAttribute.getAccess());
-//
-//		assertFalse(virtualAttributes.hasNext());
-//		
-//		
-//		OrmPersistentAttribute specifiedPersistentAttribute = ormPersistentType.specifiedAttributes().next();
-//		assertEquals("id", specifiedPersistentAttribute.getName());
-//		assertEquals(AccessType.PROPERTY, specifiedPersistentAttribute.getSpecifiedAccess());
-//		
-//		
-//		ormPersistentType.virtualAttributes().next().makeSpecified();
-//		virtualAttributes = ormPersistentType.virtualAttributes();
-//		ormPersistentAttribute = virtualAttributes.next();
-//		assertEquals("name", ormPersistentAttribute.getName());
-//		assertEquals(AccessType.FIELD, ormPersistentAttribute.getAccess());
-//
-//		assertFalse(virtualAttributes.hasNext());
-//	}
-//
-//	public void testGetDefaultAccess() throws Exception {
-//		createTestEntityPropertySpecified();
-//		OrmPersistentType ormPersistentType = getEntityMappings().addPersistentType(MappingKeys.ENTITY_TYPE_MAPPING_KEY, FULLY_QUALIFIED_TYPE_NAME);
-//		JavaPersistentType javaPersistentType = ormPersistentType.getJavaPersistentType();
-//		
-//		assertEquals(AccessType.PROPERTY, ormPersistentType.getDefaultAccess());
-//		
-//		javaPersistentType.setSpecifiedAccess(AccessType.FIELD);
-//		assertEquals(AccessType.FIELD, ormPersistentType.getDefaultAccess());
-//		
-//		javaPersistentType.setSpecifiedAccess(AccessType.PROPERTY);
-//		assertEquals(AccessType.PROPERTY, ormPersistentType.getDefaultAccess());
-//
-//		
-//		ormPersistentType.getMapping().setSpecifiedMetadataComplete(Boolean.TRUE);
-//		assertEquals(AccessType.FIELD, ormPersistentType.getDefaultAccess());
-//	}
-
-}
\ No newline at end of file
diff --git a/jpa/tests/org.eclipse.jpt.eclipselink.core.tests/src/org/eclipse/jpt/eclipselink/core/tests/internal/context/orm/EclipseLinkEntityMappingsTests.java b/jpa/tests/org.eclipse.jpt.eclipselink.core.tests/src/org/eclipse/jpt/eclipselink/core/tests/internal/context/orm/EclipseLinkEntityMappingsTests.java
deleted file mode 100644
index f3570ae..0000000
--- a/jpa/tests/org.eclipse.jpt.eclipselink.core.tests/src/org/eclipse/jpt/eclipselink/core/tests/internal/context/orm/EclipseLinkEntityMappingsTests.java
+++ /dev/null
@@ -1,675 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008, 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- *******************************************************************************/
-package org.eclipse.jpt.eclipselink.core.tests.internal.context.orm;
-
-import java.util.ListIterator;
-import org.eclipse.jpt.eclipselink.core.context.CustomConverter;
-import org.eclipse.jpt.eclipselink.core.context.ObjectTypeConverter;
-import org.eclipse.jpt.eclipselink.core.context.StructConverter;
-import org.eclipse.jpt.eclipselink.core.context.TypeConverter;
-import org.eclipse.jpt.eclipselink.core.internal.context.orm.ConverterHolder;
-import org.eclipse.jpt.eclipselink.core.internal.context.orm.EclipseLinkEntityMappings;
-import org.eclipse.jpt.eclipselink.core.internal.context.persistence.EclipseLinkPersistenceUnit;
-import org.eclipse.jpt.eclipselink.core.resource.orm.EclipseLinkOrmFactory;
-import org.eclipse.jpt.eclipselink.core.resource.orm.XmlConverter;
-import org.eclipse.jpt.eclipselink.core.resource.orm.XmlEntityMappings;
-import org.eclipse.jpt.eclipselink.core.resource.orm.XmlObjectTypeConverter;
-import org.eclipse.jpt.eclipselink.core.resource.orm.XmlStructConverter;
-import org.eclipse.jpt.eclipselink.core.resource.orm.XmlTypeConverter;
-import org.eclipse.jpt.utility.internal.CollectionTools;
-
-@SuppressWarnings("nls")
-public class EclipseLinkEntityMappingsTests extends EclipseLinkOrmContextModelTestCase
-{
-	public EclipseLinkEntityMappingsTests(String name) {
-		super(name);
-	}
-
-	
-	public void testUpdateCustomConverters() throws Exception {
-		XmlEntityMappings resourceEntityMappings = getXmlEntityMappings();
-		EclipseLinkPersistenceUnit persistenceUnit = getPersistenceUnit();
-		EclipseLinkEntityMappings contextEntityMappings = getEntityMappings();
-		ConverterHolder ormContextConverterHolder = contextEntityMappings.getConverterHolder();
-		
-		assertEquals(0, ormContextConverterHolder.customConvertersSize());
-		assertEquals(0, resourceEntityMappings.getConverters().size());
-		assertEquals(0, CollectionTools.size(persistenceUnit.allConverters()));		
-		
-		//add a converter to the resource model, check context model
-		XmlConverter resourceConverter = EclipseLinkOrmFactory.eINSTANCE.createXmlConverterImpl();
-		resourceEntityMappings.getConverters().add(resourceConverter);
-		resourceConverter.setClassName("Foo");
-		resourceConverter.setName("myConverter");
-		
-		assertEquals(1, ormContextConverterHolder.customConvertersSize());
-		ListIterator<CustomConverter> ormContextConverters = ormContextConverterHolder.customConverters();
-		CustomConverter ormContextConverter = ormContextConverters.next();
-		assertEquals("Foo", ormContextConverter.getConverterClass());
-		assertEquals("myConverter", ormContextConverter.getName());
-		assertEquals(1, resourceEntityMappings.getConverters().size());
-		assertEquals(1, CollectionTools.size(persistenceUnit.allConverters()));		
-		
-		//add another converter to the resource model, check context model
-		XmlConverter resourceConverter2 = EclipseLinkOrmFactory.eINSTANCE.createXmlConverterImpl();
-		resourceEntityMappings.getConverters().add(0, resourceConverter2);
-		resourceConverter2.setClassName("Foo2");
-		resourceConverter2.setName("myConverter2");
-		
-		assertEquals(2, ormContextConverterHolder.customConvertersSize());
-		ormContextConverters = ormContextConverterHolder.customConverters();
-		ormContextConverter = ormContextConverters.next();
-		assertEquals("Foo2", ormContextConverter.getConverterClass());
-		assertEquals("myConverter2", ormContextConverter.getName());
-		ormContextConverter = ormContextConverters.next();
-		assertEquals("Foo", ormContextConverter.getConverterClass());
-		assertEquals("myConverter", ormContextConverter.getName());
-		assertEquals(2, resourceEntityMappings.getConverters().size());
-		assertEquals(2, CollectionTools.size(persistenceUnit.allConverters()));		
-		
-		//move a converter in the resource model, check context model
-		resourceEntityMappings.getConverters().move(0, 1);
-		
-		assertEquals(2, ormContextConverterHolder.customConvertersSize());
-		ormContextConverters = ormContextConverterHolder.customConverters();
-		ormContextConverter = ormContextConverters.next();
-		assertEquals("Foo", ormContextConverter.getConverterClass());
-		assertEquals("myConverter", ormContextConverter.getName());
-		ormContextConverter = ormContextConverters.next();
-		assertEquals("Foo2", ormContextConverter.getConverterClass());
-		assertEquals("myConverter2", ormContextConverter.getName());
-		assertEquals(2, resourceEntityMappings.getConverters().size());
-		assertEquals(2, CollectionTools.size(persistenceUnit.allConverters()));		
-		
-		//remove a converter from the resource model, check context model
-		resourceEntityMappings.getConverters().remove(0);
-		
-		assertEquals(1, ormContextConverterHolder.customConvertersSize());
-		ormContextConverters = ormContextConverterHolder.customConverters();
-		ormContextConverter = ormContextConverters.next();
-		assertEquals("Foo2", ormContextConverter.getConverterClass());
-		assertEquals("myConverter2", ormContextConverter.getName());
-		assertEquals(1, resourceEntityMappings.getConverters().size());
-		assertEquals(1, CollectionTools.size(persistenceUnit.allConverters()));		
-		
-		//remove a converter from the resource model, check context model
-		resourceEntityMappings.getConverters().remove(resourceConverter2);
-		
-		assertEquals(0, ormContextConverterHolder.customConvertersSize());
-		assertFalse(ormContextConverterHolder.customConverters().hasNext());
-		assertEquals(0, resourceEntityMappings.getConverters().size());
-		assertEquals(0, CollectionTools.size(persistenceUnit.allConverters()));
-	}
-
-	public void testModifyCustomConverters() throws Exception {
-		XmlEntityMappings resourceEntityMappings = getXmlEntityMappings();
-		EclipseLinkPersistenceUnit persistenceUnit = getPersistenceUnit();
-		EclipseLinkEntityMappings contextEntityMappings = getEntityMappings();
-		ConverterHolder ormContextConverterHolder = contextEntityMappings.getConverterHolder();
-		
-		assertEquals(0, ormContextConverterHolder.customConvertersSize());
-		assertEquals(0, resourceEntityMappings.getConverters().size());
-		assertEquals(0, CollectionTools.size(persistenceUnit.allConverters()));		
-		
-		//add a converter to the context model, check resource model
-		CustomConverter contextConverter = ormContextConverterHolder.addCustomConverter(0);
-		contextConverter.setConverterClass("Foo");
-		contextConverter.setName("myConverter");
-		
-		assertEquals(1, resourceEntityMappings.getConverters().size());
-		assertEquals("Foo", resourceEntityMappings.getConverters().get(0).getClassName());
-		assertEquals("myConverter", resourceEntityMappings.getConverters().get(0).getName());
-		assertEquals(1, ormContextConverterHolder.customConvertersSize());
-		ListIterator<CustomConverter> ormContextConverters = ormContextConverterHolder.customConverters();
-		CustomConverter ormContextConverter = ormContextConverters.next();
-		assertEquals("Foo", ormContextConverter.getConverterClass());
-		assertEquals("myConverter", ormContextConverter.getName());
-		assertEquals(1, CollectionTools.size(persistenceUnit.allConverters()));		
-		
-		//add another converter to the context model, check resource model
-		CustomConverter contextConverter2 = ormContextConverterHolder.addCustomConverter(0);
-		contextConverter2.setConverterClass("Foo2");
-		contextConverter2.setName("myConverter2");
-		
-		assertEquals(2, resourceEntityMappings.getConverters().size());
-		assertEquals("Foo2", resourceEntityMappings.getConverters().get(0).getClassName());
-		assertEquals("myConverter2", resourceEntityMappings.getConverters().get(0).getName());
-		assertEquals("Foo", resourceEntityMappings.getConverters().get(1).getClassName());
-		assertEquals("myConverter", resourceEntityMappings.getConverters().get(1).getName());
-		assertEquals(2, ormContextConverterHolder.customConvertersSize());
-		ormContextConverters = ormContextConverterHolder.customConverters();
-		ormContextConverter = ormContextConverters.next();
-		assertEquals("Foo2", ormContextConverter.getConverterClass());
-		assertEquals("myConverter2", ormContextConverter.getName());
-		ormContextConverter = ormContextConverters.next();
-		assertEquals("Foo", ormContextConverter.getConverterClass());
-		assertEquals("myConverter", ormContextConverter.getName());
-		assertEquals(2, CollectionTools.size(persistenceUnit.allConverters()));		
-		
-		//move a converter in the context model, check resource model
-		ormContextConverterHolder.moveCustomConverter(0, 1);
-		
-		assertEquals(2, resourceEntityMappings.getConverters().size());
-		assertEquals("Foo", resourceEntityMappings.getConverters().get(0).getClassName());
-		assertEquals("myConverter", resourceEntityMappings.getConverters().get(0).getName());
-		assertEquals("Foo2", resourceEntityMappings.getConverters().get(1).getClassName());
-		assertEquals("myConverter2", resourceEntityMappings.getConverters().get(1).getName());
-		assertEquals(2, ormContextConverterHolder.customConvertersSize());
-		ormContextConverters = ormContextConverterHolder.customConverters();
-		ormContextConverter = ormContextConverters.next();
-		assertEquals("Foo", ormContextConverter.getConverterClass());
-		assertEquals("myConverter", ormContextConverter.getName());
-		ormContextConverter = ormContextConverters.next();
-		assertEquals("Foo2", ormContextConverter.getConverterClass());
-		assertEquals("myConverter2", ormContextConverter.getName());
-		assertEquals(2, CollectionTools.size(persistenceUnit.allConverters()));		
-		
-		//remove a converter from the context model, check resource model
-		ormContextConverterHolder.removeCustomConverter(0);
-		
-		assertEquals(1, resourceEntityMappings.getConverters().size());
-		assertEquals("Foo2", resourceEntityMappings.getConverters().get(0).getClassName());
-		assertEquals("myConverter2", resourceEntityMappings.getConverters().get(0).getName());
-		assertEquals(1, ormContextConverterHolder.customConvertersSize());
-		ormContextConverters = ormContextConverterHolder.customConverters();
-		ormContextConverter = ormContextConverters.next();
-		assertEquals("Foo2", ormContextConverter.getConverterClass());
-		assertEquals("myConverter2", ormContextConverter.getName());
-		assertEquals(1, CollectionTools.size(persistenceUnit.allConverters()));		
-		
-		//remove a converter from the context model, check resource model
-		ormContextConverterHolder.removeCustomConverter(contextConverter2);
-		
-		assertEquals(0, ormContextConverterHolder.customConvertersSize());
-		assertFalse(ormContextConverterHolder.customConverters().hasNext());
-		assertEquals(0, resourceEntityMappings.getConverters().size());
-		assertEquals(0, CollectionTools.size(persistenceUnit.allConverters()));
-	}
-	
-	public void testUpdateTypeConverters() throws Exception {
-		XmlEntityMappings resourceEntityMappings = getXmlEntityMappings();
-		EclipseLinkPersistenceUnit persistenceUnit = getPersistenceUnit();
-		EclipseLinkEntityMappings contextEntityMappings = getEntityMappings();
-		ConverterHolder ormContextConverterHolder = contextEntityMappings.getConverterHolder();
-		
-		assertEquals(0, ormContextConverterHolder.typeConvertersSize());
-		assertEquals(0, resourceEntityMappings.getTypeConverters().size());
-		assertEquals(0, CollectionTools.size(persistenceUnit.allConverters()));	
-		
-		//add a converter to the resource model, check context model
-		XmlTypeConverter resourceTypeConverter = EclipseLinkOrmFactory.eINSTANCE.createXmlTypeConverterImpl();
-		resourceEntityMappings.getTypeConverters().add(resourceTypeConverter);
-		resourceTypeConverter.setDataType("Foo");
-		resourceTypeConverter.setName("myTypeConverter");
-		
-		assertEquals(1, ormContextConverterHolder.typeConvertersSize());
-		ListIterator<TypeConverter> ormContextTypeConverters = ormContextConverterHolder.typeConverters();
-		TypeConverter ormContextTypeConverter = ormContextTypeConverters.next();
-		assertEquals("Foo", ormContextTypeConverter.getDataType());
-		assertEquals("myTypeConverter", ormContextTypeConverter.getName());
-		assertEquals(1, resourceEntityMappings.getTypeConverters().size());
-		assertEquals(1, CollectionTools.size(persistenceUnit.allConverters()));	
-	
-		//add another converter to the resource model, check context model
-		XmlTypeConverter resourceTypeConverter2 = EclipseLinkOrmFactory.eINSTANCE.createXmlTypeConverterImpl();
-		resourceEntityMappings.getTypeConverters().add(0, resourceTypeConverter2);
-		resourceTypeConverter2.setDataType("Foo2");
-		resourceTypeConverter2.setName("myTypeConverter2");
-		
-		assertEquals(2, ormContextConverterHolder.typeConvertersSize());
-		ormContextTypeConverters = ormContextConverterHolder.typeConverters();
-		ormContextTypeConverter = ormContextTypeConverters.next();
-		assertEquals("Foo2", ormContextTypeConverter.getDataType());
-		assertEquals("myTypeConverter2", ormContextTypeConverter.getName());
-		ormContextTypeConverter = ormContextTypeConverters.next();
-		assertEquals("Foo", ormContextTypeConverter.getDataType());
-		assertEquals("myTypeConverter", ormContextTypeConverter.getName());
-		assertEquals(2, resourceEntityMappings.getTypeConverters().size());
-		assertEquals(2, CollectionTools.size(persistenceUnit.allConverters()));	
-		
-		//move a converter in the resource model, check context model
-		resourceEntityMappings.getTypeConverters().move(0, 1);
-		
-		assertEquals(2, ormContextConverterHolder.typeConvertersSize());
-		ormContextTypeConverters = ormContextConverterHolder.typeConverters();
-		ormContextTypeConverter = ormContextTypeConverters.next();
-		assertEquals("Foo", ormContextTypeConverter.getDataType());
-		assertEquals("myTypeConverter", ormContextTypeConverter.getName());
-		ormContextTypeConverter = ormContextTypeConverters.next();
-		assertEquals("Foo2", ormContextTypeConverter.getDataType());
-		assertEquals("myTypeConverter2", ormContextTypeConverter.getName());
-		assertEquals(2, resourceEntityMappings.getTypeConverters().size());
-		assertEquals(2, CollectionTools.size(persistenceUnit.allConverters()));	
-		
-		//remove a converter from the resource model, check context model
-		resourceEntityMappings.getTypeConverters().remove(0);
-		
-		assertEquals(1, ormContextConverterHolder.typeConvertersSize());
-		ormContextTypeConverters = ormContextConverterHolder.typeConverters();
-		ormContextTypeConverter = ormContextTypeConverters.next();
-		assertEquals("Foo2", ormContextTypeConverter.getDataType());
-		assertEquals("myTypeConverter2", ormContextTypeConverter.getName());
-		assertEquals(1, resourceEntityMappings.getTypeConverters().size());
-		assertEquals(1, CollectionTools.size(persistenceUnit.allConverters()));	
-		
-		//remove a converter from the resource model, check context model
-		resourceEntityMappings.getTypeConverters().remove(resourceTypeConverter2);
-		
-		assertEquals(0, ormContextConverterHolder.typeConvertersSize());
-		assertFalse(ormContextConverterHolder.typeConverters().hasNext());
-		assertEquals(0, resourceEntityMappings.getTypeConverters().size());
-		assertEquals(0, CollectionTools.size(persistenceUnit.allConverters()));	
-	}
-
-	public void testModifyTypeConverters() throws Exception {
-		XmlEntityMappings resourceEntityMappings = getXmlEntityMappings();
-		EclipseLinkPersistenceUnit persistenceUnit = getPersistenceUnit();
-		EclipseLinkEntityMappings contextEntityMappings = getEntityMappings();
-		ConverterHolder ormContextConverterHolder = contextEntityMappings.getConverterHolder();
-		
-		assertEquals(0, ormContextConverterHolder.typeConvertersSize());
-		assertEquals(0, resourceEntityMappings.getTypeConverters().size());
-		assertEquals(0, CollectionTools.size(persistenceUnit.allConverters()));
-		
-		//add a converter to the context model, check resource model
-		TypeConverter contextTypeConverter = ormContextConverterHolder.addTypeConverter(0);
-		contextTypeConverter.setDataType("Foo");
-		contextTypeConverter.setName("myTypeConverter");
-		
-		assertEquals(1, resourceEntityMappings.getTypeConverters().size());
-		assertEquals("Foo", resourceEntityMappings.getTypeConverters().get(0).getDataType());
-		assertEquals("myTypeConverter", resourceEntityMappings.getTypeConverters().get(0).getName());
-		assertEquals(1, ormContextConverterHolder.typeConvertersSize());
-		ListIterator<TypeConverter> ormContextTypeConverters = ormContextConverterHolder.typeConverters();
-		TypeConverter ormContextTypeConverter = ormContextTypeConverters.next();
-		assertEquals("Foo", ormContextTypeConverter.getDataType());
-		assertEquals("myTypeConverter", ormContextTypeConverter.getName());
-		assertEquals(1, CollectionTools.size(persistenceUnit.allConverters()));
-		
-		//add another converter to the context model, check resource model
-		TypeConverter contextTypeConverter2 = ormContextConverterHolder.addTypeConverter(0);
-		contextTypeConverter2.setDataType("Foo2");
-		contextTypeConverter2.setName("myTypeConverter2");
-		
-		assertEquals(2, resourceEntityMappings.getTypeConverters().size());
-		assertEquals("Foo2", resourceEntityMappings.getTypeConverters().get(0).getDataType());
-		assertEquals("myTypeConverter2", resourceEntityMappings.getTypeConverters().get(0).getName());
-		assertEquals("Foo", resourceEntityMappings.getTypeConverters().get(1).getDataType());
-		assertEquals("myTypeConverter", resourceEntityMappings.getTypeConverters().get(1).getName());
-		assertEquals(2, ormContextConverterHolder.typeConvertersSize());
-		ormContextTypeConverters = ormContextConverterHolder.typeConverters();
-		ormContextTypeConverter = ormContextTypeConverters.next();
-		assertEquals("Foo2", ormContextTypeConverter.getDataType());
-		assertEquals("myTypeConverter2", ormContextTypeConverter.getName());
-		ormContextTypeConverter = ormContextTypeConverters.next();
-		assertEquals("Foo", ormContextTypeConverter.getDataType());
-		assertEquals("myTypeConverter", ormContextTypeConverter.getName());
-		assertEquals(2, CollectionTools.size(persistenceUnit.allConverters()));
-		
-		//move a converter in the context model, check resource model
-		ormContextConverterHolder.moveTypeConverter(0, 1);
-		
-		assertEquals(2, resourceEntityMappings.getTypeConverters().size());
-		assertEquals("Foo", resourceEntityMappings.getTypeConverters().get(0).getDataType());
-		assertEquals("myTypeConverter", resourceEntityMappings.getTypeConverters().get(0).getName());
-		assertEquals("Foo2", resourceEntityMappings.getTypeConverters().get(1).getDataType());
-		assertEquals("myTypeConverter2", resourceEntityMappings.getTypeConverters().get(1).getName());
-		assertEquals(2, ormContextConverterHolder.typeConvertersSize());
-		ormContextTypeConverters = ormContextConverterHolder.typeConverters();
-		ormContextTypeConverter = ormContextTypeConverters.next();
-		assertEquals("Foo", ormContextTypeConverter.getDataType());
-		assertEquals("myTypeConverter", ormContextTypeConverter.getName());
-		ormContextTypeConverter = ormContextTypeConverters.next();
-		assertEquals("Foo2", ormContextTypeConverter.getDataType());
-		assertEquals("myTypeConverter2", ormContextTypeConverter.getName());
-		assertEquals(2, CollectionTools.size(persistenceUnit.allConverters()));
-		
-		//remove a converter from the context model, check resource model
-		ormContextConverterHolder.removeTypeConverter(0);
-		
-		assertEquals(1, resourceEntityMappings.getTypeConverters().size());
-		assertEquals("Foo2", resourceEntityMappings.getTypeConverters().get(0).getDataType());
-		assertEquals("myTypeConverter2", resourceEntityMappings.getTypeConverters().get(0).getName());
-		assertEquals(1, ormContextConverterHolder.typeConvertersSize());
-		ormContextTypeConverters = ormContextConverterHolder.typeConverters();
-		ormContextTypeConverter = ormContextTypeConverters.next();
-		assertEquals("Foo2", ormContextTypeConverter.getDataType());
-		assertEquals("myTypeConverter2", ormContextTypeConverter.getName());
-		assertEquals(1, CollectionTools.size(persistenceUnit.allConverters()));
-		
-		//remove a converter from the context model, check resource model
-		ormContextConverterHolder.removeTypeConverter(contextTypeConverter2);
-		
-		assertEquals(0, ormContextConverterHolder.typeConvertersSize());
-		assertFalse(ormContextConverterHolder.typeConverters().hasNext());
-		assertEquals(0, resourceEntityMappings.getTypeConverters().size());
-		assertEquals(0, CollectionTools.size(persistenceUnit.allConverters()));
-	}
-	
-	public void testUpdateObjectTypeConverters() throws Exception {
-		XmlEntityMappings resourceEntityMappings = getXmlEntityMappings();
-		EclipseLinkPersistenceUnit persistenceUnit = getPersistenceUnit();
-		EclipseLinkEntityMappings contextEntityMappings = getEntityMappings();
-		ConverterHolder ormContextConverterHolder = contextEntityMappings.getConverterHolder();
-		
-		assertEquals(0, ormContextConverterHolder.objectTypeConvertersSize());
-		assertEquals(0, resourceEntityMappings.getObjectTypeConverters().size());
-		assertEquals(0, CollectionTools.size(persistenceUnit.allConverters()));		
-		
-		//add a converter to the resource model, check context model
-		XmlObjectTypeConverter resourceObjectTypeConverter = EclipseLinkOrmFactory.eINSTANCE.createXmlObjectTypeConverterImpl();
-		resourceEntityMappings.getObjectTypeConverters().add(resourceObjectTypeConverter);
-		resourceObjectTypeConverter.setDataType("Foo");
-		resourceObjectTypeConverter.setName("myObjectTypeConverter");
-		
-		assertEquals(1, ormContextConverterHolder.objectTypeConvertersSize());
-		ListIterator<ObjectTypeConverter> ormContextObjectTypeConverters = ormContextConverterHolder.objectTypeConverters();
-		ObjectTypeConverter ormContextObjectTypeConverter = ormContextObjectTypeConverters.next();
-		assertEquals("Foo", ormContextObjectTypeConverter.getDataType());
-		assertEquals("myObjectTypeConverter", ormContextObjectTypeConverter.getName());
-		assertEquals(1, resourceEntityMappings.getObjectTypeConverters().size());
-		assertEquals(1, CollectionTools.size(persistenceUnit.allConverters()));		
-		
-		//add another converter to the resource model, check context model
-		XmlObjectTypeConverter resourceObjectTypeConverter2 = EclipseLinkOrmFactory.eINSTANCE.createXmlObjectTypeConverterImpl();
-		resourceEntityMappings.getObjectTypeConverters().add(0, resourceObjectTypeConverter2);
-		resourceObjectTypeConverter2.setDataType("Foo2");
-		resourceObjectTypeConverter2.setName("myObjectTypeConverter2");
-		
-		assertEquals(2, ormContextConverterHolder.objectTypeConvertersSize());
-		ormContextObjectTypeConverters = ormContextConverterHolder.objectTypeConverters();
-		ormContextObjectTypeConverter = ormContextObjectTypeConverters.next();
-		assertEquals("Foo2", ormContextObjectTypeConverter.getDataType());
-		assertEquals("myObjectTypeConverter2", ormContextObjectTypeConverter.getName());
-		ormContextObjectTypeConverter = ormContextObjectTypeConverters.next();
-		assertEquals("Foo", ormContextObjectTypeConverter.getDataType());
-		assertEquals("myObjectTypeConverter", ormContextObjectTypeConverter.getName());
-		assertEquals(2, resourceEntityMappings.getObjectTypeConverters().size());
-		assertEquals(2, CollectionTools.size(persistenceUnit.allConverters()));		
-		
-		//move a converter in the resource model, check context model
-		resourceEntityMappings.getObjectTypeConverters().move(0, 1);
-		
-		assertEquals(2, ormContextConverterHolder.objectTypeConvertersSize());
-		ormContextObjectTypeConverters = ormContextConverterHolder.objectTypeConverters();
-		ormContextObjectTypeConverter = ormContextObjectTypeConverters.next();
-		assertEquals("Foo", ormContextObjectTypeConverter.getDataType());
-		assertEquals("myObjectTypeConverter", ormContextObjectTypeConverter.getName());
-		ormContextObjectTypeConverter = ormContextObjectTypeConverters.next();
-		assertEquals("Foo2", ormContextObjectTypeConverter.getDataType());
-		assertEquals("myObjectTypeConverter2", ormContextObjectTypeConverter.getName());
-		assertEquals(2, resourceEntityMappings.getObjectTypeConverters().size());
-		assertEquals(2, CollectionTools.size(persistenceUnit.allConverters()));		
-		
-		//remove a converter from the resource model, check context model
-		resourceEntityMappings.getObjectTypeConverters().remove(0);
-		
-		assertEquals(1, ormContextConverterHolder.objectTypeConvertersSize());
-		ormContextObjectTypeConverters = ormContextConverterHolder.objectTypeConverters();
-		ormContextObjectTypeConverter = ormContextObjectTypeConverters.next();
-		assertEquals("Foo2", ormContextObjectTypeConverter.getDataType());
-		assertEquals("myObjectTypeConverter2", ormContextObjectTypeConverter.getName());
-		assertEquals(1, resourceEntityMappings.getObjectTypeConverters().size());
-		assertEquals(1, CollectionTools.size(persistenceUnit.allConverters()));		
-		
-		//remove a converter from the resource model, check context model
-		resourceEntityMappings.getObjectTypeConverters().remove(resourceObjectTypeConverter2);
-		
-		assertEquals(0, ormContextConverterHolder.objectTypeConvertersSize());
-		assertFalse(ormContextConverterHolder.objectTypeConverters().hasNext());
-		assertEquals(0, resourceEntityMappings.getObjectTypeConverters().size());
-		assertEquals(0, CollectionTools.size(persistenceUnit.allConverters()));	
-	}
-
-	public void testModifyObjectTypeConverters() throws Exception {
-		XmlEntityMappings resourceEntityMappings = getXmlEntityMappings();
-		EclipseLinkPersistenceUnit persistenceUnit = getPersistenceUnit();
-		EclipseLinkEntityMappings contextEntityMappings = getEntityMappings();
-		ConverterHolder ormContextConverterHolder = contextEntityMappings.getConverterHolder();
-		
-		assertEquals(0, ormContextConverterHolder.objectTypeConvertersSize());
-		assertEquals(0, resourceEntityMappings.getObjectTypeConverters().size());
-		assertEquals(0, CollectionTools.size(persistenceUnit.allConverters()));
-		
-		//add a converter to the context model, check resource model
-		ObjectTypeConverter contextObjectTypeConverter = ormContextConverterHolder.addObjectTypeConverter(0);
-		contextObjectTypeConverter.setDataType("Foo");
-		contextObjectTypeConverter.setName("myObjectTypeConverter");
-		
-		assertEquals(1, resourceEntityMappings.getObjectTypeConverters().size());
-		assertEquals("Foo", resourceEntityMappings.getObjectTypeConverters().get(0).getDataType());
-		assertEquals("myObjectTypeConverter", resourceEntityMappings.getObjectTypeConverters().get(0).getName());
-		assertEquals(1, ormContextConverterHolder.objectTypeConvertersSize());
-		ListIterator<ObjectTypeConverter> ormContextObjectTypeConverters = ormContextConverterHolder.objectTypeConverters();
-		ObjectTypeConverter ormContextObjectTypeConverter = ormContextObjectTypeConverters.next();
-		assertEquals("Foo", ormContextObjectTypeConverter.getDataType());
-		assertEquals("myObjectTypeConverter", ormContextObjectTypeConverter.getName());
-		assertEquals(1, CollectionTools.size(persistenceUnit.allConverters()));
-		
-		//add another converter to the context model, check resource model
-		ObjectTypeConverter contextObjectTypeConverter2 = ormContextConverterHolder.addObjectTypeConverter(0);
-		contextObjectTypeConverter2.setDataType("Foo2");
-		contextObjectTypeConverter2.setName("myObjectTypeConverter2");
-		
-		assertEquals(2, resourceEntityMappings.getObjectTypeConverters().size());
-		assertEquals("Foo2", resourceEntityMappings.getObjectTypeConverters().get(0).getDataType());
-		assertEquals("myObjectTypeConverter2", resourceEntityMappings.getObjectTypeConverters().get(0).getName());
-		assertEquals("Foo", resourceEntityMappings.getObjectTypeConverters().get(1).getDataType());
-		assertEquals("myObjectTypeConverter", resourceEntityMappings.getObjectTypeConverters().get(1).getName());
-		assertEquals(2, ormContextConverterHolder.objectTypeConvertersSize());
-		ormContextObjectTypeConverters = ormContextConverterHolder.objectTypeConverters();
-		ormContextObjectTypeConverter = ormContextObjectTypeConverters.next();
-		assertEquals("Foo2", ormContextObjectTypeConverter.getDataType());
-		assertEquals("myObjectTypeConverter2", ormContextObjectTypeConverter.getName());
-		ormContextObjectTypeConverter = ormContextObjectTypeConverters.next();
-		assertEquals("Foo", ormContextObjectTypeConverter.getDataType());
-		assertEquals("myObjectTypeConverter", ormContextObjectTypeConverter.getName());
-		assertEquals(2, CollectionTools.size(persistenceUnit.allConverters()));
-		
-		//move a converter in the context model, check resource model
-		ormContextConverterHolder.moveObjectTypeConverter(0, 1);
-		
-		assertEquals(2, resourceEntityMappings.getObjectTypeConverters().size());
-		assertEquals("Foo", resourceEntityMappings.getObjectTypeConverters().get(0).getDataType());
-		assertEquals("myObjectTypeConverter", resourceEntityMappings.getObjectTypeConverters().get(0).getName());
-		assertEquals("Foo2", resourceEntityMappings.getObjectTypeConverters().get(1).getDataType());
-		assertEquals("myObjectTypeConverter2", resourceEntityMappings.getObjectTypeConverters().get(1).getName());
-		assertEquals(2, ormContextConverterHolder.objectTypeConvertersSize());
-		ormContextObjectTypeConverters = ormContextConverterHolder.objectTypeConverters();
-		ormContextObjectTypeConverter = ormContextObjectTypeConverters.next();
-		assertEquals("Foo", ormContextObjectTypeConverter.getDataType());
-		assertEquals("myObjectTypeConverter", ormContextObjectTypeConverter.getName());
-		ormContextObjectTypeConverter = ormContextObjectTypeConverters.next();
-		assertEquals("Foo2", ormContextObjectTypeConverter.getDataType());
-		assertEquals("myObjectTypeConverter2", ormContextObjectTypeConverter.getName());
-		assertEquals(2, CollectionTools.size(persistenceUnit.allConverters()));
-		
-		//remove a converter from the context model, check resource model
-		ormContextConverterHolder.removeObjectTypeConverter(0);
-		
-		assertEquals(1, resourceEntityMappings.getObjectTypeConverters().size());
-		assertEquals("Foo2", resourceEntityMappings.getObjectTypeConverters().get(0).getDataType());
-		assertEquals("myObjectTypeConverter2", resourceEntityMappings.getObjectTypeConverters().get(0).getName());
-		assertEquals(1, ormContextConverterHolder.objectTypeConvertersSize());
-		ormContextObjectTypeConverters = ormContextConverterHolder.objectTypeConverters();
-		ormContextObjectTypeConverter = ormContextObjectTypeConverters.next();
-		assertEquals("Foo2", ormContextObjectTypeConverter.getDataType());
-		assertEquals("myObjectTypeConverter2", ormContextObjectTypeConverter.getName());
-		assertEquals(1, CollectionTools.size(persistenceUnit.allConverters()));
-		
-		//remove a converter from the context model, check resource model
-		ormContextConverterHolder.removeObjectTypeConverter(contextObjectTypeConverter2);
-		
-		assertEquals(0, ormContextConverterHolder.objectTypeConvertersSize());
-		assertFalse(ormContextConverterHolder.objectTypeConverters().hasNext());
-		assertEquals(0, resourceEntityMappings.getObjectTypeConverters().size());
-		assertEquals(0, CollectionTools.size(persistenceUnit.allConverters()));
-	}
-	
-	public void testUpdateStructConverters() throws Exception {
-		XmlEntityMappings resourceEntityMappings = getXmlEntityMappings();
-		EclipseLinkPersistenceUnit persistenceUnit = getPersistenceUnit();
-		EclipseLinkEntityMappings contextEntityMappings = getEntityMappings();
-		ConverterHolder ormContextConverterHolder = contextEntityMappings.getConverterHolder();
-		
-		assertEquals(0, ormContextConverterHolder.structConvertersSize());
-		assertEquals(0, resourceEntityMappings.getStructConverters().size());
-		assertEquals(0, CollectionTools.size(persistenceUnit.allConverters()));	
-		
-		//add a converter to the resource model, check context model
-		XmlStructConverter resourceStructConverter = EclipseLinkOrmFactory.eINSTANCE.createXmlStructConverterImpl();
-		resourceEntityMappings.getStructConverters().add(resourceStructConverter);
-		resourceStructConverter.setConverter("Foo");
-		resourceStructConverter.setName("myStructConverter");
-		
-		assertEquals(1, ormContextConverterHolder.structConvertersSize());
-		ListIterator<StructConverter> ormContextStructConverters = ormContextConverterHolder.structConverters();
-		StructConverter ormContextStructConverter = ormContextStructConverters.next();
-		assertEquals("Foo", ormContextStructConverter.getConverterClass());
-		assertEquals("myStructConverter", ormContextStructConverter.getName());
-		assertEquals(1, resourceEntityMappings.getStructConverters().size());
-		assertEquals(1, CollectionTools.size(persistenceUnit.allConverters()));	
-		
-		//add another converter to the resource model, check context model
-		XmlStructConverter resourceStructConverter2 = EclipseLinkOrmFactory.eINSTANCE.createXmlStructConverterImpl();
-		resourceEntityMappings.getStructConverters().add(0, resourceStructConverter2);
-		resourceStructConverter2.setConverter("Foo2");
-		resourceStructConverter2.setName("myStructConverter2");
-		
-		assertEquals(2, ormContextConverterHolder.structConvertersSize());
-		ormContextStructConverters = ormContextConverterHolder.structConverters();
-		ormContextStructConverter = ormContextStructConverters.next();
-		assertEquals("Foo2", ormContextStructConverter.getConverterClass());
-		assertEquals("myStructConverter2", ormContextStructConverter.getName());
-		ormContextStructConverter = ormContextStructConverters.next();
-		assertEquals("Foo", ormContextStructConverter.getConverterClass());
-		assertEquals("myStructConverter", ormContextStructConverter.getName());
-		assertEquals(2, resourceEntityMappings.getStructConverters().size());
-		assertEquals(2, CollectionTools.size(persistenceUnit.allConverters()));	
-		
-		//move a converter in the resource model, check context model
-		resourceEntityMappings.getStructConverters().move(0, 1);
-		
-		assertEquals(2, ormContextConverterHolder.structConvertersSize());
-		ormContextStructConverters = ormContextConverterHolder.structConverters();
-		ormContextStructConverter = ormContextStructConverters.next();
-		assertEquals("Foo", ormContextStructConverter.getConverterClass());
-		assertEquals("myStructConverter", ormContextStructConverter.getName());
-		ormContextStructConverter = ormContextStructConverters.next();
-		assertEquals("Foo2", ormContextStructConverter.getConverterClass());
-		assertEquals("myStructConverter2", ormContextStructConverter.getName());
-		assertEquals(2, resourceEntityMappings.getStructConverters().size());
-		assertEquals(2, CollectionTools.size(persistenceUnit.allConverters()));	
-		
-		//remove a converter from the resource model, check context model
-		resourceEntityMappings.getStructConverters().remove(0);
-		
-		assertEquals(1, ormContextConverterHolder.structConvertersSize());
-		ormContextStructConverters = ormContextConverterHolder.structConverters();
-		ormContextStructConverter = ormContextStructConverters.next();
-		assertEquals("Foo2", ormContextStructConverter.getConverterClass());
-		assertEquals("myStructConverter2", ormContextStructConverter.getName());
-		assertEquals(1, resourceEntityMappings.getStructConverters().size());
-		assertEquals(1, CollectionTools.size(persistenceUnit.allConverters()));	
-		
-		//remove a converter from the resource model, check context model
-		resourceEntityMappings.getStructConverters().remove(resourceStructConverter2);
-		
-		assertEquals(0, ormContextConverterHolder.structConvertersSize());
-		assertFalse(ormContextConverterHolder.structConverters().hasNext());
-		assertEquals(0, resourceEntityMappings.getStructConverters().size());
-		assertEquals(0, CollectionTools.size(persistenceUnit.allConverters()));	
-	}
-
-	public void testModifyStructConverters() throws Exception {
-		XmlEntityMappings resourceEntityMappings = getXmlEntityMappings();
-		EclipseLinkPersistenceUnit persistenceUnit = getPersistenceUnit();
-		EclipseLinkEntityMappings contextEntityMappings = getEntityMappings();
-		ConverterHolder ormContextConverterHolder = contextEntityMappings.getConverterHolder();
-		
-		assertEquals(0, ormContextConverterHolder.structConvertersSize());
-		assertEquals(0, resourceEntityMappings.getStructConverters().size());
-		assertEquals(0, CollectionTools.size(persistenceUnit.allConverters()));
-		
-		//add a converter to the context model, check resource model
-		StructConverter contextStructConverter = ormContextConverterHolder.addStructConverter(0);
-		contextStructConverter.setConverterClass("Foo");
-		contextStructConverter.setName("myStructConverter");
-		
-		assertEquals(1, resourceEntityMappings.getStructConverters().size());
-		assertEquals("Foo", resourceEntityMappings.getStructConverters().get(0).getConverter());
-		assertEquals("myStructConverter", resourceEntityMappings.getStructConverters().get(0).getName());
-		assertEquals(1, ormContextConverterHolder.structConvertersSize());
-		ListIterator<StructConverter> ormContextStructConverters = ormContextConverterHolder.structConverters();
-		StructConverter ormContextStructConverter = ormContextStructConverters.next();
-		assertEquals("Foo", ormContextStructConverter.getConverterClass());
-		assertEquals("myStructConverter", ormContextStructConverter.getName());
-		assertEquals(1, CollectionTools.size(persistenceUnit.allConverters()));
-		
-		//add another converter to the context model, check resource model
-		StructConverter contextStructConverter2 = ormContextConverterHolder.addStructConverter(0);
-		contextStructConverter2.setConverterClass("Foo2");
-		contextStructConverter2.setName("myStructConverter2");
-		
-		assertEquals(2, resourceEntityMappings.getStructConverters().size());
-		assertEquals("Foo2", resourceEntityMappings.getStructConverters().get(0).getConverter());
-		assertEquals("myStructConverter2", resourceEntityMappings.getStructConverters().get(0).getName());
-		assertEquals("Foo", resourceEntityMappings.getStructConverters().get(1).getConverter());
-		assertEquals("myStructConverter", resourceEntityMappings.getStructConverters().get(1).getName());
-		assertEquals(2, ormContextConverterHolder.structConvertersSize());
-		ormContextStructConverters = ormContextConverterHolder.structConverters();
-		ormContextStructConverter = ormContextStructConverters.next();
-		assertEquals("Foo2", ormContextStructConverter.getConverterClass());
-		assertEquals("myStructConverter2", ormContextStructConverter.getName());
-		ormContextStructConverter = ormContextStructConverters.next();
-		assertEquals("Foo", ormContextStructConverter.getConverterClass());
-		assertEquals("myStructConverter", ormContextStructConverter.getName());
-		assertEquals(2, CollectionTools.size(persistenceUnit.allConverters()));
-		
-		//move a converter in the context model, check resource model
-		ormContextConverterHolder.moveStructConverter(0, 1);
-		
-		assertEquals(2, resourceEntityMappings.getStructConverters().size());
-		assertEquals("Foo", resourceEntityMappings.getStructConverters().get(0).getConverter());
-		assertEquals("myStructConverter", resourceEntityMappings.getStructConverters().get(0).getName());
-		assertEquals("Foo2", resourceEntityMappings.getStructConverters().get(1).getConverter());
-		assertEquals("myStructConverter2", resourceEntityMappings.getStructConverters().get(1).getName());
-		assertEquals(2, ormContextConverterHolder.structConvertersSize());
-		ormContextStructConverters = ormContextConverterHolder.structConverters();
-		ormContextStructConverter = ormContextStructConverters.next();
-		assertEquals("Foo", ormContextStructConverter.getConverterClass());
-		assertEquals("myStructConverter", ormContextStructConverter.getName());
-		ormContextStructConverter = ormContextStructConverters.next();
-		assertEquals("Foo2", ormContextStructConverter.getConverterClass());
-		assertEquals("myStructConverter2", ormContextStructConverter.getName());
-		assertEquals(2, CollectionTools.size(persistenceUnit.allConverters()));
-		
-		//remove a converter from the context model, check resource model
-		ormContextConverterHolder.removeStructConverter(0);
-		
-		assertEquals(1, resourceEntityMappings.getStructConverters().size());
-		assertEquals("Foo2", resourceEntityMappings.getStructConverters().get(0).getConverter());
-		assertEquals("myStructConverter2", resourceEntityMappings.getStructConverters().get(0).getName());
-		assertEquals(1, ormContextConverterHolder.structConvertersSize());
-		ormContextStructConverters = ormContextConverterHolder.structConverters();
-		ormContextStructConverter = ormContextStructConverters.next();
-		assertEquals("Foo2", ormContextStructConverter.getConverterClass());
-		assertEquals("myStructConverter2", ormContextStructConverter.getName());
-		assertEquals(1, CollectionTools.size(persistenceUnit.allConverters()));
-		
-		//remove a converter from the context model, check resource model
-		ormContextConverterHolder.removeStructConverter(contextStructConverter2);
-		
-		assertEquals(0, ormContextConverterHolder.structConvertersSize());
-		assertFalse(ormContextConverterHolder.structConverters().hasNext());
-		assertEquals(0, resourceEntityMappings.getStructConverters().size());
-		assertEquals(0, CollectionTools.size(persistenceUnit.allConverters()));
-	}
-}
\ No newline at end of file
diff --git a/jpa/tests/org.eclipse.jpt.eclipselink.core.tests/src/org/eclipse/jpt/eclipselink/core/tests/internal/context/orm/EclipseLinkOrmBasicMappingTests.java b/jpa/tests/org.eclipse.jpt.eclipselink.core.tests/src/org/eclipse/jpt/eclipselink/core/tests/internal/context/orm/EclipseLinkOrmBasicMappingTests.java
deleted file mode 100644
index 792a24f..0000000
--- a/jpa/tests/org.eclipse.jpt.eclipselink.core.tests/src/org/eclipse/jpt/eclipselink/core/tests/internal/context/orm/EclipseLinkOrmBasicMappingTests.java
+++ /dev/null
@@ -1,389 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008, 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- *******************************************************************************/
-package org.eclipse.jpt.eclipselink.core.tests.internal.context.orm;
-
-import java.util.Iterator;
-import org.eclipse.jdt.core.ICompilationUnit;
-import org.eclipse.jpt.core.MappingKeys;
-import org.eclipse.jpt.core.context.Converter;
-import org.eclipse.jpt.core.context.java.JavaBasicMapping;
-import org.eclipse.jpt.core.context.orm.OrmBasicMapping;
-import org.eclipse.jpt.core.context.orm.OrmPersistentAttribute;
-import org.eclipse.jpt.core.context.orm.OrmPersistentType;
-import org.eclipse.jpt.core.resource.java.JPA;
-import org.eclipse.jpt.eclipselink.core.context.Convert;
-import org.eclipse.jpt.eclipselink.core.context.EclipseLinkBasicMapping;
-import org.eclipse.jpt.eclipselink.core.internal.context.orm.EclipseLinkOrmBasicMapping;
-import org.eclipse.jpt.eclipselink.core.resource.java.EclipseLinkJPA;
-import org.eclipse.jpt.eclipselink.core.resource.orm.XmlBasic;
-import org.eclipse.jpt.eclipselink.core.resource.orm.XmlEntity;
-import org.eclipse.jpt.utility.internal.iterators.ArrayIterator;
-
-@SuppressWarnings("nls")
-public class EclipseLinkOrmBasicMappingTests
-	extends EclipseLinkOrmContextModelTestCase
-{
-	
-	private ICompilationUnit createTestEntityWithBasicMapping() throws Exception {
-		return this.createTestType(new DefaultAnnotationWriter() {
-			@Override
-			public Iterator<String> imports() {
-				return new ArrayIterator<String>(JPA.ENTITY, JPA.BASIC);
-			}
-			@Override
-			public void appendTypeAnnotationTo(StringBuilder sb) {
-				sb.append("@Entity").append(CR);
-			}
-			
-			@Override
-			public void appendIdFieldAnnotationTo(StringBuilder sb) {
-				sb.append("@Basic").append(CR);
-			}
-		});
-	}
-	
-	private ICompilationUnit createTestEntityWithMutableBasicDate() throws Exception {
-		return this.createTestType(new DefaultAnnotationWriter() {
-			@Override
-			public Iterator<String> imports() {
-				return new ArrayIterator<String>(JPA.ENTITY, JPA.BASIC, EclipseLinkJPA.MUTABLE, "java.util.Date");
-			}
-			@Override
-			public void appendTypeAnnotationTo(StringBuilder sb) {
-				sb.append("@Entity").append(CR);
-			}
-			
-			@Override
-			public void appendIdFieldAnnotationTo(StringBuilder sb) {
-				sb.append("@Basic").append(CR);
-				sb.append("    @Mutable").append(CR);
-				sb.append("    private Date myDate;").append(CR);
-				sb.append(CR);
-				sb.append("    ");
-			}
-		});
-	}
-	
-	public EclipseLinkOrmBasicMappingTests(String name) {
-		super(name);
-	}
-	
-	
-	public void testUpdateMutable() throws Exception {
-		createTestEntityWithBasicMapping();
-		OrmPersistentType ormPersistentType = 
-			getEntityMappings().addPersistentType(MappingKeys.ENTITY_TYPE_MAPPING_KEY, FULLY_QUALIFIED_TYPE_NAME);
-		OrmPersistentAttribute ormPersistentAttribute =
-			ormPersistentType.addSpecifiedPersistentAttribute(MappingKeys.BASIC_ATTRIBUTE_MAPPING_KEY, "id");
-		EclipseLinkOrmBasicMapping contextBasic = 
-			(EclipseLinkOrmBasicMapping) ormPersistentAttribute.getMapping();
-		XmlEntity resourceEntity = 
-			(XmlEntity)getXmlEntityMappings().getEntities().get(0);
-		XmlBasic resourceBasic = 
-			(XmlBasic) resourceEntity.getAttributes().getBasics().get(0);
-		EclipseLinkBasicMapping javaBasicMapping = (EclipseLinkBasicMapping) ormPersistentType.getJavaPersistentType().getAttributeNamed("id").getMapping();
-		
-		// check defaults
-		
-		assertNull(resourceBasic.getMutable());
-		assertTrue(contextBasic.getMutable().isDefaultMutable());
-		assertNull(contextBasic.getMutable().getSpecifiedMutable());
-		assertTrue(contextBasic.getMutable().isMutable());
-		
-		// set xml mutable to false, check context
-		
-		resourceBasic.setMutable(Boolean.FALSE);
-		
-		assertEquals(Boolean.FALSE, resourceBasic.getMutable());
-		assertTrue(contextBasic.getMutable().isDefaultMutable());
-		assertEquals(Boolean.FALSE, contextBasic.getMutable().getSpecifiedMutable());
-		assertFalse(contextBasic.getMutable().isMutable());
-		
-		// set xml mutable to true, check context
-		
-		resourceBasic.setMutable(Boolean.TRUE);
-		
-		assertEquals(Boolean.TRUE, resourceBasic.getMutable());
-		assertTrue(contextBasic.getMutable().isDefaultMutable());
-		assertEquals(Boolean.TRUE, contextBasic.getMutable().getSpecifiedMutable());
-		assertTrue(contextBasic.getMutable().isMutable());
-		
-		// clear xml mutable, check context
-		
-		resourceBasic.setMutable(null);
-		
-		assertNull(resourceBasic.getMutable());
-		assertTrue(contextBasic.getMutable().isDefaultMutable());
-		assertNull(contextBasic.getMutable().getSpecifiedMutable());
-		assertTrue(contextBasic.getMutable().isMutable());
-		
-		// TODO - test defaults for java serializable and date/time types, 
-		// with and without persistence property
-		
-		// set mutable on java basic mapping
-		
-		javaBasicMapping.getMutable().setSpecifiedMutable(Boolean.FALSE);
-		assertNull(resourceBasic.getMutable());
-		assertTrue(contextBasic.getMutable().isDefaultMutable());
-		assertNull(contextBasic.getMutable().getSpecifiedMutable());
-		assertTrue(contextBasic.getMutable().isMutable());
-		assertFalse(javaBasicMapping.getMutable().isMutable());
-		
-		// remove attribute from xml, test default mutable from java
-		
-		ormPersistentType.removeSpecifiedPersistentAttribute(ormPersistentAttribute);
-		ormPersistentAttribute = ormPersistentType.virtualAttributes().next();
-		contextBasic = (EclipseLinkOrmBasicMapping) ormPersistentAttribute.getMapping();
-		
-		assertNull(resourceBasic.getMutable());
-		assertTrue(contextBasic.getMutable().isDefaultMutable());
-		assertEquals(Boolean.FALSE, contextBasic.getMutable().getSpecifiedMutable());
-		assertFalse(contextBasic.getMutable().isMutable());
-		assertFalse(javaBasicMapping.getMutable().isMutable());
-		
-		// set metadata complete
-		ormPersistentType.getMapping().setSpecifiedMetadataComplete(Boolean.TRUE);
-		ormPersistentAttribute = ormPersistentType.virtualAttributes().next();
-		contextBasic = (EclipseLinkOrmBasicMapping) ormPersistentAttribute.getMapping();
-		assertNull(resourceBasic.getMutable());
-		assertTrue(contextBasic.getMutable().isDefaultMutable());
-		assertEquals(Boolean.TRUE, contextBasic.getMutable().getSpecifiedMutable());
-		assertTrue(contextBasic.getMutable().isMutable());
-		assertFalse(javaBasicMapping.getMutable().isMutable());
-	}
-	
-	public void testUpdateMutableDate() throws Exception {
-		createTestEntityWithMutableBasicDate();
-		OrmPersistentType ormPersistentType = 
-			getEntityMappings().addPersistentType(MappingKeys.ENTITY_TYPE_MAPPING_KEY, FULLY_QUALIFIED_TYPE_NAME);
-		OrmPersistentAttribute ormPersistentAttribute =
-			ormPersistentType.addSpecifiedPersistentAttribute(MappingKeys.BASIC_ATTRIBUTE_MAPPING_KEY, "myDate");
-		EclipseLinkOrmBasicMapping contextBasic = 
-			(EclipseLinkOrmBasicMapping) ormPersistentAttribute.getMapping();
-		XmlEntity resourceEntity = 
-			(XmlEntity)getXmlEntityMappings().getEntities().get(0);
-		XmlBasic resourceBasic = 
-			(XmlBasic) resourceEntity.getAttributes().getBasics().get(0);
-		EclipseLinkBasicMapping javaBasicMapping = (EclipseLinkBasicMapping) ormPersistentType.getJavaPersistentType().getAttributeNamed("myDate").getMapping();
-		
-		// check defaults
-		
-		assertNull(resourceBasic.getMutable());
-		assertFalse(contextBasic.getMutable().isDefaultMutable());
-		assertNull(contextBasic.getMutable().getSpecifiedMutable());
-		assertFalse(contextBasic.getMutable().isMutable());
-		
-		// set xml mutable to false, check context
-		
-		resourceBasic.setMutable(Boolean.FALSE);
-		
-		assertEquals(Boolean.FALSE, resourceBasic.getMutable());
-		assertFalse(contextBasic.getMutable().isDefaultMutable());
-		assertEquals(Boolean.FALSE, contextBasic.getMutable().getSpecifiedMutable());
-		assertFalse(contextBasic.getMutable().isMutable());
-		
-		// set xml mutable to true, check context
-		
-		resourceBasic.setMutable(Boolean.TRUE);
-		
-		assertEquals(Boolean.TRUE, resourceBasic.getMutable());
-		assertFalse(contextBasic.getMutable().isDefaultMutable());
-		assertEquals(Boolean.TRUE, contextBasic.getMutable().getSpecifiedMutable());
-		assertTrue(contextBasic.getMutable().isMutable());
-		
-		// clear xml mutable, check context
-		
-		resourceBasic.setMutable(null);
-		
-		assertNull(resourceBasic.getMutable());
-		assertFalse(contextBasic.getMutable().isDefaultMutable());
-		assertNull(contextBasic.getMutable().getSpecifiedMutable());
-		assertFalse(contextBasic.getMutable().isMutable());
-		
-		
-		getPersistenceUnit().getOptions().setTemporalMutable(Boolean.TRUE);
-		assertNull(resourceBasic.getMutable());
-		assertTrue(contextBasic.getMutable().isDefaultMutable());
-		assertNull(contextBasic.getMutable().getSpecifiedMutable());
-		assertTrue(contextBasic.getMutable().isMutable());
-		
-		getPersistenceUnit().getOptions().setTemporalMutable(Boolean.FALSE);
-		assertNull(resourceBasic.getMutable());
-		assertFalse(contextBasic.getMutable().isDefaultMutable());
-		assertNull(contextBasic.getMutable().getSpecifiedMutable());
-		assertFalse(contextBasic.getMutable().isMutable());
-		
-		getPersistenceUnit().getOptions().setTemporalMutable(null);
-		assertNull(resourceBasic.getMutable());
-		assertFalse(contextBasic.getMutable().isDefaultMutable());
-		assertNull(contextBasic.getMutable().getSpecifiedMutable());
-		assertFalse(contextBasic.getMutable().isMutable());
-		
-		// set mutable on java basic mapping
-		
-		javaBasicMapping.getMutable().setSpecifiedMutable(Boolean.TRUE);
-		assertNull(resourceBasic.getMutable());
-		assertFalse(contextBasic.getMutable().isDefaultMutable());
-		assertNull(contextBasic.getMutable().getSpecifiedMutable());
-		assertFalse(contextBasic.getMutable().isMutable());
-		assertTrue(javaBasicMapping.getMutable().isMutable());
-		
-		// remove attribute from xml, test default mutable from java
-		
-		ormPersistentType.removeSpecifiedPersistentAttribute(ormPersistentAttribute);
-		ormPersistentAttribute = ormPersistentType.virtualAttributes().next();
-		contextBasic = (EclipseLinkOrmBasicMapping) ormPersistentAttribute.getMapping();
-		
-		assertNull(resourceBasic.getMutable());
-		assertFalse(contextBasic.getMutable().isDefaultMutable());
-		assertEquals(Boolean.TRUE, contextBasic.getMutable().getSpecifiedMutable());
-		assertTrue(contextBasic.getMutable().isMutable());
-		assertTrue(javaBasicMapping.getMutable().isMutable());
-		
-		// set metadata complete
-		ormPersistentType.getMapping().setSpecifiedMetadataComplete(Boolean.TRUE);
-		ormPersistentAttribute = ormPersistentType.virtualAttributes().next();
-		contextBasic = (EclipseLinkOrmBasicMapping) ormPersistentAttribute.getMapping();
-		assertNull(resourceBasic.getMutable());
-		assertFalse(contextBasic.getMutable().isDefaultMutable());
-		assertEquals(Boolean.FALSE, contextBasic.getMutable().getSpecifiedMutable());
-		assertFalse(contextBasic.getMutable().isMutable());
-		assertTrue(javaBasicMapping.getMutable().isMutable());
-	}
-
-	public void testModifyMutable() throws Exception {
-		OrmPersistentType ormPersistentType = 
-			getEntityMappings().addPersistentType(MappingKeys.ENTITY_TYPE_MAPPING_KEY, FULLY_QUALIFIED_TYPE_NAME);
-		OrmPersistentAttribute ormPersistentAttribute =
-			ormPersistentType.addSpecifiedPersistentAttribute(MappingKeys.BASIC_ATTRIBUTE_MAPPING_KEY, "basic");
-		EclipseLinkOrmBasicMapping contextBasic = 
-			(EclipseLinkOrmBasicMapping) ormPersistentAttribute.getMapping();
-		XmlEntity resourceEntity = 
-			(XmlEntity)getXmlEntityMappings().getEntities().get(0);
-		XmlBasic resourceBasic = 
-			(XmlBasic) resourceEntity.getAttributes().getBasics().get(0);
-		
-		// check defaults
-		
-		assertNull(resourceBasic.getMutable());
-		assertFalse(contextBasic.getMutable().isDefaultMutable());
-		assertNull(contextBasic.getMutable().getSpecifiedMutable());
-		assertFalse(contextBasic.getMutable().isMutable());
-		
-		// set context mutable to true, check resource
-		
-		contextBasic.getMutable().setSpecifiedMutable(Boolean.TRUE);
-		
-		assertEquals(Boolean.TRUE, resourceBasic.getMutable());
-		assertFalse(contextBasic.getMutable().isDefaultMutable());
-		assertEquals(Boolean.TRUE, contextBasic.getMutable().getSpecifiedMutable());
-		assertTrue(contextBasic.getMutable().isMutable());
-		
-		// set context mutable to false, check resource
-		
-		contextBasic.getMutable().setSpecifiedMutable(Boolean.FALSE);
-		
-		assertEquals(Boolean.FALSE, resourceBasic.getMutable());
-		assertFalse(contextBasic.getMutable().isDefaultMutable());
-		assertEquals(Boolean.FALSE, contextBasic.getMutable().getSpecifiedMutable());
-		assertFalse(contextBasic.getMutable().isMutable());
-		
-		// set context mutable to null, check resource
-		
-		contextBasic.getMutable().setSpecifiedMutable(null);
-		
-		assertNull(resourceBasic.getMutable());
-		assertFalse(contextBasic.getMutable().isDefaultMutable());
-		assertNull(contextBasic.getMutable().getSpecifiedMutable());
-		assertFalse(contextBasic.getMutable().isMutable());
-	}
-	
-	public void testUpdateConvert() throws Exception {
-		createTestEntityWithBasicMapping();
-		
-		OrmPersistentType ormPersistentType = getEntityMappings().addPersistentType(MappingKeys.ENTITY_TYPE_MAPPING_KEY, FULLY_QUALIFIED_TYPE_NAME);
-		OrmPersistentAttribute ormPersistentAttribute = ormPersistentType.addSpecifiedPersistentAttribute(MappingKeys.BASIC_ATTRIBUTE_MAPPING_KEY, "id");
-		OrmBasicMapping ormBasicMapping = (OrmBasicMapping) ormPersistentAttribute.getMapping();
-		XmlBasic basicResource = (XmlBasic) getXmlEntityMappings().getEntities().get(0).getAttributes().getBasics().get(0);
-		JavaBasicMapping javaBasicMapping = (JavaBasicMapping) ormPersistentType.getJavaPersistentType().getAttributeNamed("id").getMapping();
-		
-		assertEquals(null, ormBasicMapping.getSpecifiedConverter());
-		assertEquals(null, basicResource.getConvert());
-				
-		//set lob in the resource model, verify context model updated
-		basicResource.setConvert("myConvert");
-		assertEquals(Convert.ECLIPSE_LINK_CONVERTER, ormBasicMapping.getConverter().getType());
-		assertEquals("myConvert", basicResource.getConvert());
-
-		//set lob to null in the resource model
-		basicResource.setConvert(null);
-		assertEquals(null, ormBasicMapping.getSpecifiedConverter());
-		assertEquals(null, basicResource.getConvert());
-		
-		
-		javaBasicMapping.setSpecifiedConverter(Convert.ECLIPSE_LINK_CONVERTER);
-		((Convert) javaBasicMapping.getSpecifiedConverter()).setSpecifiedConverterName("foo");
-		
-		assertEquals(null, ormBasicMapping.getSpecifiedConverter());
-		assertEquals(null, basicResource.getConvert());
-		assertEquals("foo", ((Convert) javaBasicMapping.getSpecifiedConverter()).getSpecifiedConverterName());
-		
-		
-		ormPersistentType.removeSpecifiedPersistentAttribute(ormPersistentAttribute);
-		ormPersistentAttribute = ormPersistentType.virtualAttributes().next();
-		ormBasicMapping = (OrmBasicMapping) ormPersistentAttribute.getMapping();
-		
-		assertEquals(Convert.ECLIPSE_LINK_CONVERTER, ormBasicMapping.getSpecifiedConverter().getType());
-		assertEquals("foo", ((Convert) ormBasicMapping.getSpecifiedConverter()).getSpecifiedConverterName());
-		assertEquals(null, basicResource.getConvert());
-		assertEquals("foo", ((Convert) javaBasicMapping.getSpecifiedConverter()).getSpecifiedConverterName());
-		
-		((Convert) javaBasicMapping.getSpecifiedConverter()).setSpecifiedConverterName("bar");
-		assertEquals(Convert.ECLIPSE_LINK_CONVERTER, ormBasicMapping.getSpecifiedConverter().getType());
-		assertEquals("bar", ((Convert) ormBasicMapping.getSpecifiedConverter()).getSpecifiedConverterName());
-		assertEquals(null, basicResource.getConvert());
-		assertEquals("bar", ((Convert) javaBasicMapping.getSpecifiedConverter()).getSpecifiedConverterName());
-
-		javaBasicMapping.setSpecifiedConverter(Converter.NO_CONVERTER);
-		assertEquals(null, ormBasicMapping.getSpecifiedConverter());
-		assertEquals(null, basicResource.getConvert());
-		assertEquals(null, javaBasicMapping.getSpecifiedConverter());
-	}
-	
-	public void testModifyConvert() throws Exception {
-		OrmPersistentType ormPersistentType = getEntityMappings().addPersistentType(MappingKeys.ENTITY_TYPE_MAPPING_KEY, "model.Foo");
-		OrmPersistentAttribute ormPersistentAttribute = ormPersistentType.addSpecifiedPersistentAttribute(MappingKeys.BASIC_ATTRIBUTE_MAPPING_KEY, "basicMapping");
-		OrmBasicMapping ormBasicMapping = (OrmBasicMapping) ormPersistentAttribute.getMapping();
-		XmlBasic basicResource = (XmlBasic) getXmlEntityMappings().getEntities().get(0).getAttributes().getBasics().get(0);
-	
-		assertEquals(null, ormBasicMapping.getSpecifiedConverter());
-		assertEquals(null, basicResource.getConvert());
-				
-		//set lob in the context model, verify resource model updated
-		ormBasicMapping.setSpecifiedConverter(Convert.ECLIPSE_LINK_CONVERTER);
-		assertEquals("", basicResource.getConvert());
-		assertEquals(Convert.ECLIPSE_LINK_CONVERTER, ormBasicMapping.getConverter().getType());
-	
-		((Convert) ormBasicMapping.getSpecifiedConverter()).setSpecifiedConverterName("bar");
-		assertEquals("bar", basicResource.getConvert());
-		assertEquals(Convert.ECLIPSE_LINK_CONVERTER, ormBasicMapping.getConverter().getType());
-		assertEquals("bar", ((Convert) ormBasicMapping.getConverter()).getSpecifiedConverterName());
-
-		((Convert) ormBasicMapping.getSpecifiedConverter()).setSpecifiedConverterName(null);
-
-		assertEquals(null, ormBasicMapping.getSpecifiedConverter());
-		assertEquals(null, basicResource.getConvert());
-
-		//set lob to false in the context model
-		ormBasicMapping.setSpecifiedConverter(null);
-		assertEquals(null, ormBasicMapping.getSpecifiedConverter());
-		assertEquals(null, basicResource.getConvert());
-	}
-}
diff --git a/jpa/tests/org.eclipse.jpt.eclipselink.core.tests/src/org/eclipse/jpt/eclipselink/core/tests/internal/context/orm/EclipseLinkOrmContextModelTestCase.java b/jpa/tests/org.eclipse.jpt.eclipselink.core.tests/src/org/eclipse/jpt/eclipselink/core/tests/internal/context/orm/EclipseLinkOrmContextModelTestCase.java
deleted file mode 100644
index fcc1187..0000000
--- a/jpa/tests/org.eclipse.jpt.eclipselink.core.tests/src/org/eclipse/jpt/eclipselink/core/tests/internal/context/orm/EclipseLinkOrmContextModelTestCase.java
+++ /dev/null
@@ -1,84 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008, 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- *******************************************************************************/
-package org.eclipse.jpt.eclipselink.core.tests.internal.context.orm;
-
-import org.eclipse.jpt.core.internal.operations.OrmFileCreationDataModelProperties;
-import org.eclipse.jpt.core.resource.xml.JpaXmlResource;
-import org.eclipse.jpt.core.tests.internal.projects.TestJpaProject;
-import org.eclipse.jpt.eclipselink.core.EclipseLinkJpaProject;
-import org.eclipse.jpt.eclipselink.core.internal.context.orm.EclipseLinkEntityMappings;
-import org.eclipse.jpt.eclipselink.core.internal.operations.EclipseLinkOrmFileCreationDataModelProvider;
-import org.eclipse.jpt.eclipselink.core.internal.operations.EclipseLinkOrmFileCreationOperation;
-import org.eclipse.jpt.eclipselink.core.resource.orm.XmlEntityMappings;
-import org.eclipse.jpt.eclipselink.core.tests.internal.context.EclipseLinkContextModelTestCase;
-import org.eclipse.wst.common.frameworks.datamodel.DataModelFactory;
-import org.eclipse.wst.common.frameworks.datamodel.IDataModel;
-
-public abstract class EclipseLinkOrmContextModelTestCase
-	extends EclipseLinkContextModelTestCase
-{
-	protected JpaXmlResource eclipseLinkOrmXmlResource;
-	
-	
-	protected EclipseLinkOrmContextModelTestCase(String name) {
-		super(name);
-	}
-	
-	@Override
-	protected EclipseLinkJpaProject getJpaProject() {
-		return (EclipseLinkJpaProject) super.getJpaProject();
-	}
-	
-	@Override
-	protected void setUp() throws Exception {
-		super.setUp();
-		this.eclipseLinkOrmXmlResource = getJpaProject().getDefaultEclipseLinkOrmXmlResource();
-	}
-	
-	@Override
-	protected TestJpaProject buildJpaProject(String projectName, boolean autoBuild, IDataModel jpaConfig) throws Exception {
-		TestJpaProject testJpaProject = super.buildJpaProject(projectName, autoBuild, jpaConfig);
-		
-		EclipseLinkOrmFileCreationOperation operation = 
-			new EclipseLinkOrmFileCreationOperation(buildEclipseLinkOrmConfig(testJpaProject));
-		operation.execute(null, null);
-		
-		return testJpaProject;
-	}
-	
-	protected IDataModel buildEclipseLinkOrmConfig(TestJpaProject testJpaProject) {
-		IDataModel dataModel = 
-			DataModelFactory.createDataModel(new EclipseLinkOrmFileCreationDataModelProvider());		
-		dataModel.setProperty(OrmFileCreationDataModelProperties.PROJECT_NAME, testJpaProject.getProject().getName());
-		dataModel.setProperty(OrmFileCreationDataModelProperties.ADD_TO_PERSISTENCE_UNIT, Boolean.TRUE);
-		return dataModel;
-	}
-	
-	@Override
-	protected void tearDown() throws Exception {
-		this.eclipseLinkOrmXmlResource = null;
-		super.tearDown();
-	}
-	
-	@Override
-	protected JpaXmlResource getOrmXmlResource() {
-		return this.eclipseLinkOrmXmlResource;
-	}
-	
-	@Override
-	protected XmlEntityMappings getXmlEntityMappings() {
-		return (XmlEntityMappings) super.getXmlEntityMappings();
-	}
-	
-	@Override
-	protected EclipseLinkEntityMappings getEntityMappings() {
-		return (EclipseLinkEntityMappings) super.getEntityMappings();
-	}
-}
diff --git a/jpa/tests/org.eclipse.jpt.eclipselink.core.tests/src/org/eclipse/jpt/eclipselink/core/tests/internal/context/orm/EclipseLinkOrmConverterTests.java b/jpa/tests/org.eclipse.jpt.eclipselink.core.tests/src/org/eclipse/jpt/eclipselink/core/tests/internal/context/orm/EclipseLinkOrmConverterTests.java
deleted file mode 100644
index 633eb13..0000000
--- a/jpa/tests/org.eclipse.jpt.eclipselink.core.tests/src/org/eclipse/jpt/eclipselink/core/tests/internal/context/orm/EclipseLinkOrmConverterTests.java
+++ /dev/null
@@ -1,195 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008, 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- *******************************************************************************/
-package org.eclipse.jpt.eclipselink.core.tests.internal.context.orm;
-
-import java.util.Iterator;
-import org.eclipse.jdt.core.ICompilationUnit;
-import org.eclipse.jpt.core.MappingKeys;
-import org.eclipse.jpt.core.context.java.JavaBasicMapping;
-import org.eclipse.jpt.core.context.orm.OrmBasicMapping;
-import org.eclipse.jpt.core.context.orm.OrmPersistentAttribute;
-import org.eclipse.jpt.core.context.orm.OrmPersistentType;
-import org.eclipse.jpt.core.resource.java.JPA;
-import org.eclipse.jpt.eclipselink.core.context.Convert;
-import org.eclipse.jpt.eclipselink.core.context.CustomConverter;
-import org.eclipse.jpt.eclipselink.core.context.EclipseLinkConverter;
-import org.eclipse.jpt.eclipselink.core.internal.context.orm.EclipseLinkOrmCustomConverter;
-import org.eclipse.jpt.eclipselink.core.resource.java.EclipseLinkJPA;
-import org.eclipse.jpt.eclipselink.core.resource.orm.XmlBasic;
-import org.eclipse.jpt.eclipselink.core.resource.orm.XmlConverter;
-import org.eclipse.jpt.utility.internal.iterators.ArrayIterator;
-
-@SuppressWarnings("nls")
-public class EclipseLinkOrmConverterTests
-	extends EclipseLinkOrmContextModelTestCase
-{
-	
-	private ICompilationUnit createTestEntityWithBasicMapping() throws Exception {
-		return this.createTestType(new DefaultAnnotationWriter() {
-			@Override
-			public Iterator<String> imports() {
-				return new ArrayIterator<String>(JPA.ENTITY, JPA.BASIC, EclipseLinkJPA.CONVERT, EclipseLinkJPA.CONVERTER);
-			}
-			@Override
-			public void appendTypeAnnotationTo(StringBuilder sb) {
-				sb.append("@Entity").append(CR);
-			}
-			
-			@Override
-			public void appendIdFieldAnnotationTo(StringBuilder sb) {
-				sb.append("@Basic").append(CR);
-				sb.append("    @Convert(name=\"foo\")").append(CR);
-				sb.append("    @Converter");
-			}
-		});
-	}
-
-	
-	public EclipseLinkOrmConverterTests(String name) {
-		super(name);
-	}
-	
-	
-	public void testUpdateConverterClass() throws Exception {
-		createTestEntityWithBasicMapping();
-		
-		OrmPersistentType ormPersistentType = getEntityMappings().addPersistentType(MappingKeys.ENTITY_TYPE_MAPPING_KEY, FULLY_QUALIFIED_TYPE_NAME);
-		OrmPersistentAttribute ormPersistentAttribute = ormPersistentType.addSpecifiedPersistentAttribute(MappingKeys.BASIC_ATTRIBUTE_MAPPING_KEY, "id");
-		OrmBasicMapping ormBasicMapping = (OrmBasicMapping) ormPersistentAttribute.getMapping(); 
-		ormBasicMapping.setSpecifiedConverter(Convert.ECLIPSE_LINK_CONVERTER);
-		((Convert) ormBasicMapping.getConverter()).setConverter(EclipseLinkConverter.CUSTOM_CONVERTER);
-		EclipseLinkOrmCustomConverter ormConverter = (EclipseLinkOrmCustomConverter) ((Convert) ormBasicMapping.getConverter()).getConverter();
-		XmlConverter converterResource = ((XmlBasic) getXmlEntityMappings().getEntities().get(0).getAttributes().getBasics().get(0)).getConverter();
-		JavaBasicMapping javaBasicMapping = (JavaBasicMapping) ormPersistentType.getJavaPersistentType().getAttributeNamed("id").getMapping();
-		
-		assertEquals(null, ormConverter.getConverterClass());
-		assertEquals(null, converterResource.getClassName());
-				
-		//set converter class name in the resource model, verify context model updated
-		converterResource.setClassName("myConvert");
-		assertEquals("myConvert", ormConverter.getConverterClass());
-		assertEquals("myConvert", converterResource.getClassName());
-
-		//set converter class name to null in the resource model
-		converterResource.setClassName(null);
-		assertEquals(null, ormConverter.getConverterClass());
-		assertEquals(null, converterResource.getClassName());
-		
-		//remove the specified persistent attribute, test virtual mapping	
-		ormPersistentType.removeSpecifiedPersistentAttribute(ormPersistentAttribute);
-		
-		ormPersistentAttribute = ormPersistentType.virtualAttributes().next();
-		ormBasicMapping = (OrmBasicMapping) ormPersistentAttribute.getMapping();
-		ormConverter = (EclipseLinkOrmCustomConverter) ((Convert) ormBasicMapping.getSpecifiedConverter()).getConverter();
-		
-		CustomConverter javaConverter = ((CustomConverter) ((Convert) javaBasicMapping.getSpecifiedConverter()).getConverter());
-		javaConverter.setConverterClass("bar");
-		assertEquals("bar", ormConverter.getConverterClass());
-		assertEquals("bar", javaConverter.getConverterClass());
-		
-		//set metadata-complete, test virtual mapping	
-		ormPersistentType.getMapping().setSpecifiedMetadataComplete(Boolean.TRUE);
-		ormPersistentAttribute = ormPersistentType.virtualAttributes().next();
-		ormBasicMapping = (OrmBasicMapping) ormPersistentAttribute.getMapping();
-		assertEquals(null,  ormBasicMapping.getSpecifiedConverter());
-		assertEquals(org.eclipse.jpt.core.context.Converter.NO_CONVERTER, ormBasicMapping.getConverter().getType());
-		assertEquals("bar", javaConverter.getConverterClass());
-	}
-	
-	public void testModifyConverterClass() throws Exception {
-		OrmPersistentType ormPersistentType = getEntityMappings().addPersistentType(MappingKeys.ENTITY_TYPE_MAPPING_KEY, "model.Foo");
-		OrmPersistentAttribute ormPersistentAttribute = ormPersistentType.addSpecifiedPersistentAttribute(MappingKeys.BASIC_ATTRIBUTE_MAPPING_KEY, "basicMapping");
-		OrmBasicMapping ormBasicMapping = ((OrmBasicMapping) ormPersistentAttribute.getMapping()); 
-		ormBasicMapping.setSpecifiedConverter(Convert.ECLIPSE_LINK_CONVERTER);
-		((Convert) ormBasicMapping.getConverter()).setConverter(EclipseLinkConverter.CUSTOM_CONVERTER);
-		EclipseLinkOrmCustomConverter ormConverter = (EclipseLinkOrmCustomConverter) ((Convert) ormBasicMapping.getConverter()).getConverter();
-		XmlConverter converterResource = ((XmlBasic) getXmlEntityMappings().getEntities().get(0).getAttributes().getBasics().get(0)).getConverter();
-	
-		assertEquals(null, ormConverter.getConverterClass());
-		assertEquals(null, converterResource.getClassName());
-				
-		//set converter class in the context model, verify resource model updated
-		ormConverter.setConverterClass("foo");
-		assertEquals("foo", ormConverter.getConverterClass());
-		assertEquals("foo", converterResource.getClassName());
-	
-		ormConverter.setConverterClass(null);
-		assertEquals(null, ormConverter.getConverterClass());
-		assertEquals(null, converterResource.getClassName());
-	}
-	
-	public void testUpdateName() throws Exception {
-		createTestEntityWithBasicMapping();
-		
-		OrmPersistentType ormPersistentType = getEntityMappings().addPersistentType(MappingKeys.ENTITY_TYPE_MAPPING_KEY, FULLY_QUALIFIED_TYPE_NAME);
-		OrmPersistentAttribute ormPersistentAttribute = ormPersistentType.addSpecifiedPersistentAttribute(MappingKeys.BASIC_ATTRIBUTE_MAPPING_KEY, "id");
-		OrmBasicMapping ormBasicMapping = ((OrmBasicMapping) ormPersistentAttribute.getMapping()); 
-		ormBasicMapping.setSpecifiedConverter(Convert.ECLIPSE_LINK_CONVERTER);
-		((Convert) ormBasicMapping.getConverter()).setConverter(EclipseLinkConverter.CUSTOM_CONVERTER);
-		EclipseLinkOrmCustomConverter ormConverter = (EclipseLinkOrmCustomConverter) ((Convert) ormBasicMapping.getConverter()).getConverter();
-		XmlConverter converterResource = ((XmlBasic) getXmlEntityMappings().getEntities().get(0).getAttributes().getBasics().get(0)).getConverter();
-		JavaBasicMapping javaBasicMapping = (JavaBasicMapping) ormPersistentType.getJavaPersistentType().getAttributeNamed("id").getMapping();
-		
-		assertEquals(null, ormConverter.getName());
-		assertEquals(null, converterResource.getName());
-				
-		//set converter class name in the resource model, verify context model updated
-		converterResource.setName("myConvert");
-		assertEquals("myConvert", ormConverter.getName());
-		assertEquals("myConvert", converterResource.getName());
-
-		//set converter class name to null in the resource model
-		converterResource.setName(null);
-		assertEquals(null, ormConverter.getName());
-		assertEquals(null, converterResource.getName());
-		
-		//remove the specified persistent attribute, test virtual mapping	
-		ormPersistentType.removeSpecifiedPersistentAttribute(ormPersistentAttribute);
-		
-		ormPersistentAttribute = ormPersistentType.virtualAttributes().next();
-		ormBasicMapping = (OrmBasicMapping) ormPersistentAttribute.getMapping();
-		ormConverter = (EclipseLinkOrmCustomConverter) ((Convert) ormBasicMapping.getSpecifiedConverter()).getConverter();
-		
-		CustomConverter javaConverter = ((CustomConverter) ((Convert) javaBasicMapping.getSpecifiedConverter()).getConverter());
-		javaConverter.setName("bar");
-		assertEquals("bar", ormConverter.getName());
-		assertEquals("bar", javaConverter.getName());
-		
-		//set metadata-complete, test virtual mapping	
-		ormPersistentType.getMapping().setSpecifiedMetadataComplete(Boolean.TRUE);
-		ormPersistentAttribute = ormPersistentType.virtualAttributes().next();
-		ormBasicMapping = (OrmBasicMapping) ormPersistentAttribute.getMapping();
-		assertEquals(null,  ormBasicMapping.getSpecifiedConverter());
-		assertEquals(org.eclipse.jpt.core.context.Converter.NO_CONVERTER, ormBasicMapping.getConverter().getType());
-		assertEquals("bar", javaConverter.getName());
-	}
-	
-	public void testModifyName() throws Exception {
-		OrmPersistentType ormPersistentType = getEntityMappings().addPersistentType(MappingKeys.ENTITY_TYPE_MAPPING_KEY, "model.Foo");
-		OrmPersistentAttribute ormPersistentAttribute = ormPersistentType.addSpecifiedPersistentAttribute(MappingKeys.BASIC_ATTRIBUTE_MAPPING_KEY, "basicMapping");
-		OrmBasicMapping ormBasicMapping = ((OrmBasicMapping) ormPersistentAttribute.getMapping()); 
-		ormBasicMapping.setSpecifiedConverter(Convert.ECLIPSE_LINK_CONVERTER);
-		((Convert) ormBasicMapping.getConverter()).setConverter(EclipseLinkConverter.CUSTOM_CONVERTER);
-		EclipseLinkOrmCustomConverter ormConverter = (EclipseLinkOrmCustomConverter) ((Convert) ormBasicMapping.getConverter()).getConverter();
-		XmlConverter converterResource = ((XmlBasic) getXmlEntityMappings().getEntities().get(0).getAttributes().getBasics().get(0)).getConverter();
-	
-		assertEquals(null, ormConverter.getName());
-		assertEquals(null, converterResource.getName());
-				
-		//set converter class in the context model, verify resource model updated
-		ormConverter.setName("foo");
-		assertEquals("foo", ormConverter.getName());
-		assertEquals("foo", converterResource.getName());
-	
-		ormConverter.setName(null);
-		assertEquals(null, ormConverter.getName());
-		assertEquals(null, converterResource.getName());
-	}
-}
diff --git a/jpa/tests/org.eclipse.jpt.eclipselink.core.tests/src/org/eclipse/jpt/eclipselink/core/tests/internal/context/orm/EclipseLinkOrmEmbeddableTests.java b/jpa/tests/org.eclipse.jpt.eclipselink.core.tests/src/org/eclipse/jpt/eclipselink/core/tests/internal/context/orm/EclipseLinkOrmEmbeddableTests.java
deleted file mode 100644
index be344df..0000000
--- a/jpa/tests/org.eclipse.jpt.eclipselink.core.tests/src/org/eclipse/jpt/eclipselink/core/tests/internal/context/orm/EclipseLinkOrmEmbeddableTests.java
+++ /dev/null
@@ -1,1034 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008, 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- *******************************************************************************/
-package org.eclipse.jpt.eclipselink.core.tests.internal.context.orm;
-
-import java.util.Iterator;
-import java.util.ListIterator;
-import org.eclipse.jdt.core.ICompilationUnit;
-import org.eclipse.jpt.core.MappingKeys;
-import org.eclipse.jpt.core.context.orm.OrmPersistentType;
-import org.eclipse.jpt.core.resource.java.JPA;
-import org.eclipse.jpt.eclipselink.core.context.ChangeTrackingType;
-import org.eclipse.jpt.eclipselink.core.context.CustomConverter;
-import org.eclipse.jpt.eclipselink.core.context.ObjectTypeConverter;
-import org.eclipse.jpt.eclipselink.core.context.StructConverter;
-import org.eclipse.jpt.eclipselink.core.context.TypeConverter;
-import org.eclipse.jpt.eclipselink.core.context.java.EclipseLinkJavaEmbeddable;
-import org.eclipse.jpt.eclipselink.core.internal.context.orm.ConverterHolder;
-import org.eclipse.jpt.eclipselink.core.internal.context.orm.EclipseLinkOrmEmbeddable;
-import org.eclipse.jpt.eclipselink.core.internal.context.persistence.EclipseLinkPersistenceUnit;
-import org.eclipse.jpt.eclipselink.core.resource.java.EclipseLinkJPA;
-import org.eclipse.jpt.eclipselink.core.resource.orm.EclipseLinkOrmFactory;
-import org.eclipse.jpt.eclipselink.core.resource.orm.XmlChangeTrackingType;
-import org.eclipse.jpt.eclipselink.core.resource.orm.XmlConverter;
-import org.eclipse.jpt.eclipselink.core.resource.orm.XmlEmbeddable;
-import org.eclipse.jpt.eclipselink.core.resource.orm.XmlObjectTypeConverter;
-import org.eclipse.jpt.eclipselink.core.resource.orm.XmlStructConverter;
-import org.eclipse.jpt.eclipselink.core.resource.orm.XmlTypeConverter;
-import org.eclipse.jpt.utility.internal.CollectionTools;
-import org.eclipse.jpt.utility.internal.iterators.ArrayIterator;
-
-@SuppressWarnings("nls")
-public class EclipseLinkOrmEmbeddableTests extends EclipseLinkOrmContextModelTestCase
-{
-	public EclipseLinkOrmEmbeddableTests(String name) {
-		super(name);
-	}
-
-	private ICompilationUnit createTestEmbeddableForCustomizer() throws Exception {
-		return this.createTestType(new DefaultAnnotationWriter() {
-			@Override
-			public Iterator<String> imports() {
-				return new ArrayIterator<String>(JPA.EMBEDDABLE, EclipseLinkJPA.CUSTOMIZER);
-			}
-			
-			@Override
-			public void appendTypeAnnotationTo(StringBuilder sb) {
-				sb.append("@Embeddable").append(CR);
-			}
-		});
-	}
-		
-	private ICompilationUnit createTestEmbeddableForChangeTracking() throws Exception {
-		return this.createTestType(new DefaultAnnotationWriter() {
-			@Override
-			public Iterator<String> imports() {
-				return new ArrayIterator<String>(JPA.EMBEDDABLE, EclipseLinkJPA.CHANGE_TRACKING);
-			}
-			
-			@Override
-			public void appendTypeAnnotationTo(StringBuilder sb) {
-				sb.append("@Embeddable").append(CR);
-			}
-		});
-	}	
-	
-	private ICompilationUnit createTestEmbeddableForCustomConverters() throws Exception {
-		return this.createTestType(new DefaultAnnotationWriter() {
-			@Override
-			public Iterator<String> imports() {
-				return new ArrayIterator<String>(JPA.EMBEDDABLE);
-			}
-			@Override
-			public void appendTypeAnnotationTo(StringBuilder sb) {
-				sb.append("@Embeddable").append(CR);
-			}
-		});
-	}
-
-	private ICompilationUnit createTestEmbeddableForTypeConverters() throws Exception {
-		return this.createTestType(new DefaultAnnotationWriter() {
-			@Override
-			public Iterator<String> imports() {
-				return new ArrayIterator<String>(JPA.EMBEDDABLE);
-			}
-			@Override
-			public void appendTypeAnnotationTo(StringBuilder sb) {
-				sb.append("@Embeddable").append(CR);
-			}
-		});
-	}
-
-	private ICompilationUnit createTestEmbeddableForObjectTypeConverters() throws Exception {
-		return this.createTestType(new DefaultAnnotationWriter() {
-			@Override
-			public Iterator<String> imports() {
-				return new ArrayIterator<String>(JPA.EMBEDDABLE);
-			}
-			@Override
-			public void appendTypeAnnotationTo(StringBuilder sb) {
-				sb.append("@Embeddable").append(CR);
-			}
-		});
-	}
-
-	private ICompilationUnit createTestEmbeddableForStructConverters() throws Exception {
-		return this.createTestType(new DefaultAnnotationWriter() {
-			@Override
-			public Iterator<String> imports() {
-				return new ArrayIterator<String>(JPA.EMBEDDABLE);
-			}
-			@Override
-			public void appendTypeAnnotationTo(StringBuilder sb) {
-				sb.append("@Embeddable").append(CR);
-			}
-		});
-	}
-	
-	public void testUpdateCustomizerClass() throws Exception {
-		createTestEmbeddableForCustomizer();
-		OrmPersistentType ormPersistentType = getEntityMappings().addPersistentType(MappingKeys.EMBEDDABLE_TYPE_MAPPING_KEY, FULLY_QUALIFIED_TYPE_NAME);
-		EclipseLinkJavaEmbeddable javaContextEmbeddable = (EclipseLinkJavaEmbeddable) ormPersistentType.getJavaPersistentType().getMapping();
-		EclipseLinkOrmEmbeddable ormContextEmbeddable = (EclipseLinkOrmEmbeddable) ormPersistentType.getMapping();
-		XmlEmbeddable resourceEmbeddable = (XmlEmbeddable) getXmlEntityMappings().getEmbeddables().get(0);
-
-
-		// check defaults
-		
-		assertNull(resourceEmbeddable.getCustomizer());
-		assertNull(javaContextEmbeddable.getCustomizer().getCustomizerClass());
-		assertNull(ormContextEmbeddable.getCustomizer().getCustomizerClass());
-		assertNull(ormContextEmbeddable.getCustomizer().getDefaultCustomizerClass());
-		assertNull(ormContextEmbeddable.getCustomizer().getSpecifiedCustomizerClass());
-		
-		// set xml customizer, check defaults
-		resourceEmbeddable.setCustomizer(EclipseLinkOrmFactory.eINSTANCE.createXmlCustomizer());
-		assertNull(resourceEmbeddable.getCustomizer().getCustomizerClassName());
-		assertNull(javaContextEmbeddable.getCustomizer().getCustomizerClass());
-		assertNull(ormContextEmbeddable.getCustomizer().getCustomizerClass());
-		assertNull(ormContextEmbeddable.getCustomizer().getDefaultCustomizerClass());
-		assertNull(ormContextEmbeddable.getCustomizer().getSpecifiedCustomizerClass());
-
-		
-		// set xml customizer class, check override
-		
-		resourceEmbeddable.getCustomizer().setCustomizerClassName("foo");
-		
-		assertEquals("foo", resourceEmbeddable.getCustomizer().getCustomizerClassName());
-		assertNull(javaContextEmbeddable.getCustomizer().getCustomizerClass());
-		assertEquals("foo", ormContextEmbeddable.getCustomizer().getCustomizerClass());
-		assertNull(ormContextEmbeddable.getCustomizer().getDefaultCustomizerClass());
-		assertEquals("foo", ormContextEmbeddable.getCustomizer().getSpecifiedCustomizerClass());
-		
-		// clear xml customizer class, set java customizer class, check defaults
-		
-		resourceEmbeddable.getCustomizer().setCustomizerClassName(null);
-		javaContextEmbeddable.getCustomizer().setSpecifiedCustomizerClass("bar");
-		
-		assertNull(resourceEmbeddable.getCustomizer().getCustomizerClassName());
-		assertEquals("bar", javaContextEmbeddable.getCustomizer().getCustomizerClass());
-		assertEquals("bar", ormContextEmbeddable.getCustomizer().getCustomizerClass());
-		assertEquals("bar", ormContextEmbeddable.getCustomizer().getDefaultCustomizerClass());
-		assertNull(ormContextEmbeddable.getCustomizer().getSpecifiedCustomizerClass());
-
-		// set metadataComplete to True, check defaults not from java
-
-		ormContextEmbeddable.setSpecifiedMetadataComplete(Boolean.TRUE);
-		
-		assertNull(resourceEmbeddable.getCustomizer().getCustomizerClassName());
-		assertEquals("bar", javaContextEmbeddable.getCustomizer().getCustomizerClass());
-		assertNull(ormContextEmbeddable.getCustomizer().getCustomizerClass());
-		assertNull(ormContextEmbeddable.getCustomizer().getDefaultCustomizerClass());
-		assertNull(ormContextEmbeddable.getCustomizer().getSpecifiedCustomizerClass());
-
-		ormContextEmbeddable.setSpecifiedMetadataComplete(null);
-		
-		// set xml customizer class, check override
-		
-		resourceEmbeddable.getCustomizer().setCustomizerClassName("foo");
-		
-		assertEquals("foo", resourceEmbeddable.getCustomizer().getCustomizerClassName());
-		assertEquals("bar", javaContextEmbeddable.getCustomizer().getCustomizerClass());
-		assertEquals("foo", ormContextEmbeddable.getCustomizer().getCustomizerClass());
-		assertEquals("bar", ormContextEmbeddable.getCustomizer().getDefaultCustomizerClass());
-		assertEquals("foo", ormContextEmbeddable.getCustomizer().getSpecifiedCustomizerClass());
-
-		//set xml customizer null
-		javaContextEmbeddable.getCustomizer().setSpecifiedCustomizerClass(null);
-		resourceEmbeddable.setCustomizer(null);
-		assertNull(resourceEmbeddable.getCustomizer());
-		assertNull(javaContextEmbeddable.getCustomizer().getCustomizerClass());
-		assertNull(ormContextEmbeddable.getCustomizer().getCustomizerClass());
-		assertNull(ormContextEmbeddable.getCustomizer().getDefaultCustomizerClass());
-		assertNull(ormContextEmbeddable.getCustomizer().getSpecifiedCustomizerClass());
-
-	}
-	
-	public void testModifyCustomizerClass() throws Exception {
-		createTestEmbeddableForCustomizer();
-		OrmPersistentType ormPersistentType = getEntityMappings().addPersistentType(MappingKeys.EMBEDDABLE_TYPE_MAPPING_KEY, FULLY_QUALIFIED_TYPE_NAME);
-		EclipseLinkOrmEmbeddable ormContextEmbeddable = (EclipseLinkOrmEmbeddable) ormPersistentType.getMapping();
-		XmlEmbeddable resourceEmbeddable = (XmlEmbeddable) getXmlEntityMappings().getEmbeddables().get(0);
-		
-		// check defaults
-		
-		assertNull(resourceEmbeddable.getCustomizer());
-		assertNull(ormContextEmbeddable.getCustomizer().getCustomizerClass());
-		assertNull(ormContextEmbeddable.getCustomizer().getDefaultCustomizerClass());
-		assertNull(ormContextEmbeddable.getCustomizer().getSpecifiedCustomizerClass());
-		
-		// set context customizer, check resource
-		
-		ormContextEmbeddable.getCustomizer().setSpecifiedCustomizerClass("foo");
-		
-		assertEquals("foo", resourceEmbeddable.getCustomizer().getCustomizerClassName());
-		assertEquals("foo", ormContextEmbeddable.getCustomizer().getCustomizerClass());
-		assertNull(ormContextEmbeddable.getCustomizer().getDefaultCustomizerClass());
-		assertEquals("foo", ormContextEmbeddable.getCustomizer().getSpecifiedCustomizerClass());
-				
-		// set context customizer to null, check resource
-		
-		ormContextEmbeddable.getCustomizer().setSpecifiedCustomizerClass(null);
-		
-		assertNull(resourceEmbeddable.getCustomizer());
-		assertNull(ormContextEmbeddable.getCustomizer().getCustomizerClass());
-		assertNull(ormContextEmbeddable.getCustomizer().getDefaultCustomizerClass());
-		assertNull(ormContextEmbeddable.getCustomizer().getSpecifiedCustomizerClass());
-	}
-	
-	public void testUpdateChangeTracking() throws Exception {
-		createTestEmbeddableForChangeTracking();
-		OrmPersistentType ormPersistentType = getEntityMappings().addPersistentType(MappingKeys.EMBEDDABLE_TYPE_MAPPING_KEY, FULLY_QUALIFIED_TYPE_NAME);
-		EclipseLinkJavaEmbeddable javaContextEmbeddable = (EclipseLinkJavaEmbeddable) ormPersistentType.getJavaPersistentType().getMapping();
-		EclipseLinkOrmEmbeddable ormContextEmbeddable = (EclipseLinkOrmEmbeddable) ormPersistentType.getMapping();
-		XmlEmbeddable resourceEmbeddable = (XmlEmbeddable) getXmlEntityMappings().getEmbeddables().get(0);
-		
-		// check defaults
-		
-		assertNull(resourceEmbeddable.getChangeTracking());
-		assertEquals(ChangeTrackingType.AUTO, javaContextEmbeddable.getChangeTracking().getType());
-		assertEquals(ChangeTrackingType.AUTO, ormContextEmbeddable.getChangeTracking().getType());
-		assertEquals(ChangeTrackingType.AUTO, ormContextEmbeddable.getChangeTracking().getDefaultType());
-		assertNull(ormContextEmbeddable.getChangeTracking().getSpecifiedType());
-		
-		// set xml type to ATTRIBUTE, check context
-		
-		resourceEmbeddable.setChangeTracking(EclipseLinkOrmFactory.eINSTANCE.createXmlChangeTracking());
-		resourceEmbeddable.getChangeTracking().setType(XmlChangeTrackingType.ATTRIBUTE);
-		
-		assertEquals(XmlChangeTrackingType.ATTRIBUTE, resourceEmbeddable.getChangeTracking().getType());
-		assertEquals(ChangeTrackingType.AUTO, javaContextEmbeddable.getChangeTracking().getType());
-		assertEquals(ChangeTrackingType.ATTRIBUTE, ormContextEmbeddable.getChangeTracking().getType());
-		assertEquals(ChangeTrackingType.AUTO, ormContextEmbeddable.getChangeTracking().getDefaultType());
-		assertEquals(ChangeTrackingType.ATTRIBUTE, ormContextEmbeddable.getChangeTracking().getSpecifiedType());
-		
-		// set xml type to OBJECT, check context
-		
-		resourceEmbeddable.getChangeTracking().setType(XmlChangeTrackingType.OBJECT);
-		
-		assertEquals(XmlChangeTrackingType.OBJECT, resourceEmbeddable.getChangeTracking().getType());
-		assertEquals(ChangeTrackingType.AUTO, javaContextEmbeddable.getChangeTracking().getType());
-		assertEquals(ChangeTrackingType.OBJECT, ormContextEmbeddable.getChangeTracking().getType());
-		assertEquals(ChangeTrackingType.AUTO, ormContextEmbeddable.getChangeTracking().getDefaultType());
-		assertEquals(ChangeTrackingType.OBJECT, ormContextEmbeddable.getChangeTracking().getSpecifiedType());
-		
-		// set xml type to DEFERRED, check context
-		
-		resourceEmbeddable.getChangeTracking().setType(XmlChangeTrackingType.DEFERRED);
-		
-		assertEquals(XmlChangeTrackingType.DEFERRED, resourceEmbeddable.getChangeTracking().getType());
-		assertEquals(ChangeTrackingType.AUTO, javaContextEmbeddable.getChangeTracking().getType());
-		assertEquals(ChangeTrackingType.DEFERRED, ormContextEmbeddable.getChangeTracking().getType());
-		assertEquals(ChangeTrackingType.AUTO, ormContextEmbeddable.getChangeTracking().getDefaultType());
-		assertEquals(ChangeTrackingType.DEFERRED, ormContextEmbeddable.getChangeTracking().getSpecifiedType());
-		
-		// set xml type to AUTO, check context
-		
-		resourceEmbeddable.getChangeTracking().setType(XmlChangeTrackingType.AUTO);
-		
-		assertEquals(XmlChangeTrackingType.AUTO, resourceEmbeddable.getChangeTracking().getType());
-		assertEquals(ChangeTrackingType.AUTO, javaContextEmbeddable.getChangeTracking().getType());
-		assertEquals(ChangeTrackingType.AUTO, ormContextEmbeddable.getChangeTracking().getType());
-		assertEquals(ChangeTrackingType.AUTO, ormContextEmbeddable.getChangeTracking().getDefaultType());
-		assertEquals(ChangeTrackingType.AUTO, ormContextEmbeddable.getChangeTracking().getSpecifiedType());
-		
-		// clear xml change tracking, set java change tracking, check defaults
-		
-		resourceEmbeddable.setChangeTracking(null);
-		javaContextEmbeddable.getChangeTracking().setSpecifiedType(ChangeTrackingType.ATTRIBUTE);
-		
-		assertNull(resourceEmbeddable.getChangeTracking());
-		assertEquals(ChangeTrackingType.ATTRIBUTE, javaContextEmbeddable.getChangeTracking().getType());
-		assertEquals(ChangeTrackingType.ATTRIBUTE, ormContextEmbeddable.getChangeTracking().getType());
-		assertEquals(ChangeTrackingType.ATTRIBUTE, ormContextEmbeddable.getChangeTracking().getDefaultType());
-		assertNull(ormContextEmbeddable.getChangeTracking().getSpecifiedType());
-		
-		// set metadataComplete to True, check defaults not from java
-
-		ormContextEmbeddable.setSpecifiedMetadataComplete(Boolean.TRUE);
-		
-		assertNull(resourceEmbeddable.getChangeTracking());
-		assertEquals(ChangeTrackingType.ATTRIBUTE, javaContextEmbeddable.getChangeTracking().getType());
-		assertEquals(ChangeTrackingType.AUTO, ormContextEmbeddable.getChangeTracking().getType());
-		assertEquals(ChangeTrackingType.AUTO, ormContextEmbeddable.getChangeTracking().getDefaultType());
-		assertNull(ormContextEmbeddable.getChangeTracking().getSpecifiedType());
-		
-		// unset metadataComplete, set xml change tracking to OBJECT, check context
-		
-		ormContextEmbeddable.setSpecifiedMetadataComplete(null);
-		resourceEmbeddable.setChangeTracking(EclipseLinkOrmFactory.eINSTANCE.createXmlChangeTracking());
-		resourceEmbeddable.getChangeTracking().setType(XmlChangeTrackingType.OBJECT);
-		
-		assertEquals(XmlChangeTrackingType.OBJECT, resourceEmbeddable.getChangeTracking().getType());
-		assertEquals(ChangeTrackingType.ATTRIBUTE, javaContextEmbeddable.getChangeTracking().getType());
-		assertEquals(ChangeTrackingType.OBJECT, ormContextEmbeddable.getChangeTracking().getType());
-		assertEquals(ChangeTrackingType.ATTRIBUTE, ormContextEmbeddable.getChangeTracking().getDefaultType());
-		assertEquals(ChangeTrackingType.OBJECT, ormContextEmbeddable.getChangeTracking().getSpecifiedType());
-	}
-	
-	public void testModifyChangeTracking() throws Exception  {
-		createTestEmbeddableForChangeTracking();
-		OrmPersistentType ormPersistentType = getEntityMappings().addPersistentType(MappingKeys.EMBEDDABLE_TYPE_MAPPING_KEY, FULLY_QUALIFIED_TYPE_NAME);
-		EclipseLinkOrmEmbeddable ormContextEmbeddable = (EclipseLinkOrmEmbeddable) ormPersistentType.getMapping();
-		XmlEmbeddable resourceEmbeddable = (XmlEmbeddable) getXmlEntityMappings().getEmbeddables().get(0);
-		
-		// check defaults
-		
-		assertNull(resourceEmbeddable.getChangeTracking());
-		assertEquals(ChangeTrackingType.AUTO, ormContextEmbeddable.getChangeTracking().getType());
-		assertEquals(ChangeTrackingType.AUTO, ormContextEmbeddable.getChangeTracking().getDefaultType());
-		assertNull(ormContextEmbeddable.getChangeTracking().getSpecifiedType());
-		
-		// set context change tracking to ATTRIBUTE, check resource
-		
-		ormContextEmbeddable.getChangeTracking().setSpecifiedType(ChangeTrackingType.ATTRIBUTE);
-		
-		assertEquals(XmlChangeTrackingType.ATTRIBUTE, resourceEmbeddable.getChangeTracking().getType());
-		assertEquals(ChangeTrackingType.ATTRIBUTE, ormContextEmbeddable.getChangeTracking().getType());
-		assertEquals(ChangeTrackingType.AUTO, ormContextEmbeddable.getChangeTracking().getDefaultType());
-		assertEquals(ChangeTrackingType.ATTRIBUTE, ormContextEmbeddable.getChangeTracking().getSpecifiedType());
-				
-		// set context change tracking to OBJECT, check resource
-		
-		ormContextEmbeddable.getChangeTracking().setSpecifiedType(ChangeTrackingType.OBJECT);
-		
-		assertEquals(XmlChangeTrackingType.OBJECT, resourceEmbeddable.getChangeTracking().getType());
-		assertEquals(ChangeTrackingType.OBJECT, ormContextEmbeddable.getChangeTracking().getType());
-		assertEquals(ChangeTrackingType.AUTO, ormContextEmbeddable.getChangeTracking().getDefaultType());
-		assertEquals(ChangeTrackingType.OBJECT, ormContextEmbeddable.getChangeTracking().getSpecifiedType());
-				
-		// set context change tracking to DEFERRED, check resource
-		
-		ormContextEmbeddable.getChangeTracking().setSpecifiedType(ChangeTrackingType.DEFERRED);
-		
-		assertEquals(XmlChangeTrackingType.DEFERRED, resourceEmbeddable.getChangeTracking().getType());
-		assertEquals(ChangeTrackingType.DEFERRED, ormContextEmbeddable.getChangeTracking().getType());
-		assertEquals(ChangeTrackingType.AUTO, ormContextEmbeddable.getChangeTracking().getDefaultType());
-		assertEquals(ChangeTrackingType.DEFERRED, ormContextEmbeddable.getChangeTracking().getSpecifiedType());
-				
-		// set context change tracking to AUTO, check resource
-		
-		ormContextEmbeddable.getChangeTracking().setSpecifiedType(ChangeTrackingType.AUTO);
-		
-		assertEquals(XmlChangeTrackingType.AUTO, resourceEmbeddable.getChangeTracking().getType());
-		assertEquals(ChangeTrackingType.AUTO, ormContextEmbeddable.getChangeTracking().getType());
-		assertEquals(ChangeTrackingType.AUTO, ormContextEmbeddable.getChangeTracking().getDefaultType());
-		assertEquals(ChangeTrackingType.AUTO, ormContextEmbeddable.getChangeTracking().getSpecifiedType());
-				
-		// set context change tracking to null, check resource
-		
-		ormContextEmbeddable.getChangeTracking().setSpecifiedType(null);
-		
-		assertNull(resourceEmbeddable.getChangeTracking());
-		assertEquals(ChangeTrackingType.AUTO, ormContextEmbeddable.getChangeTracking().getType());
-		assertEquals(ChangeTrackingType.AUTO, ormContextEmbeddable.getChangeTracking().getDefaultType());
-		assertNull(ormContextEmbeddable.getChangeTracking().getSpecifiedType());
-	}
-	
-	public void testUpdateCustomConverters() throws Exception {
-		createTestEmbeddableForCustomConverters();
-		EclipseLinkPersistenceUnit persistenceUnit = getPersistenceUnit();
-		OrmPersistentType ormPersistentType = getEntityMappings().addPersistentType(MappingKeys.EMBEDDABLE_TYPE_MAPPING_KEY, FULLY_QUALIFIED_TYPE_NAME);
-		EclipseLinkOrmEmbeddable ormContextEmbeddable = (EclipseLinkOrmEmbeddable) ormPersistentType.getMapping();
-		ConverterHolder ormContextConverterHolder = ormContextEmbeddable.getConverterHolder();
-		XmlEmbeddable resourceEmbeddable = (XmlEmbeddable) getXmlEntityMappings().getEmbeddables().get(0);
-		
-		assertEquals(0, ormContextConverterHolder.customConvertersSize());
-		assertEquals(0, resourceEmbeddable.getConverters().size());
-		assertEquals(0, CollectionTools.size(persistenceUnit.allConverters()));
-		
-		//add a converter to the resource model, check context model
-		XmlConverter resourceConverter = EclipseLinkOrmFactory.eINSTANCE.createXmlConverterImpl();
-		resourceEmbeddable.getConverters().add(resourceConverter);
-		resourceConverter.setClassName("Foo");
-		resourceConverter.setName("myConverter");
-		
-		assertEquals(1, ormContextConverterHolder.customConvertersSize());
-		ListIterator<CustomConverter> ormContextConverters = ormContextConverterHolder.customConverters();
-		CustomConverter ormContextConverter = ormContextConverters.next();
-		assertEquals("Foo", ormContextConverter.getConverterClass());
-		assertEquals("myConverter", ormContextConverter.getName());
-		assertEquals(1, resourceEmbeddable.getConverters().size());
-		assertEquals(1, CollectionTools.size(persistenceUnit.allConverters()));
-		
-		//add another converter to the resource model, check context model
-		XmlConverter resourceConverter2 = EclipseLinkOrmFactory.eINSTANCE.createXmlConverterImpl();
-		resourceEmbeddable.getConverters().add(0, resourceConverter2);
-		resourceConverter2.setClassName("Foo2");
-		resourceConverter2.setName("myConverter2");
-		
-		assertEquals(2, ormContextConverterHolder.customConvertersSize());
-		ormContextConverters = ormContextConverterHolder.customConverters();
-		ormContextConverter = ormContextConverters.next();
-		assertEquals("Foo2", ormContextConverter.getConverterClass());
-		assertEquals("myConverter2", ormContextConverter.getName());
-		ormContextConverter = ormContextConverters.next();
-		assertEquals("Foo", ormContextConverter.getConverterClass());
-		assertEquals("myConverter", ormContextConverter.getName());
-		assertEquals(2, resourceEmbeddable.getConverters().size());
-		assertEquals(2, CollectionTools.size(persistenceUnit.allConverters()));
-		
-		//move a converter in the resource model, check context model
-		resourceEmbeddable.getConverters().move(0, 1);
-		
-		assertEquals(2, ormContextConverterHolder.customConvertersSize());
-		ormContextConverters = ormContextConverterHolder.customConverters();
-		ormContextConverter = ormContextConverters.next();
-		assertEquals("Foo", ormContextConverter.getConverterClass());
-		assertEquals("myConverter", ormContextConverter.getName());
-		ormContextConverter = ormContextConverters.next();
-		assertEquals("Foo2", ormContextConverter.getConverterClass());
-		assertEquals("myConverter2", ormContextConverter.getName());
-		assertEquals(2, resourceEmbeddable.getConverters().size());
-		assertEquals(2, CollectionTools.size(persistenceUnit.allConverters()));
-		
-		//remove a converter from the resource model, check context model
-		resourceEmbeddable.getConverters().remove(0);
-		
-		assertEquals(1, ormContextConverterHolder.customConvertersSize());
-		ormContextConverters = ormContextConverterHolder.customConverters();
-		ormContextConverter = ormContextConverters.next();
-		assertEquals("Foo2", ormContextConverter.getConverterClass());
-		assertEquals("myConverter2", ormContextConverter.getName());
-		assertEquals(1, resourceEmbeddable.getConverters().size());
-		assertEquals(1, CollectionTools.size(persistenceUnit.allConverters()));
-		
-		//remove a converter from the resource model, check context model
-		resourceEmbeddable.getConverters().remove(resourceConverter2);
-		
-		assertEquals(0, ormContextConverterHolder.customConvertersSize());
-		assertFalse(ormContextConverterHolder.customConverters().hasNext());
-		assertEquals(0, resourceEmbeddable.getConverters().size());
-		assertEquals(0, CollectionTools.size(persistenceUnit.allConverters()));
-	}
-
-	public void testModifyCustomConverters() throws Exception {
-		createTestEmbeddableForCustomConverters();
-		OrmPersistentType ormPersistentType = getEntityMappings().addPersistentType(MappingKeys.EMBEDDABLE_TYPE_MAPPING_KEY, FULLY_QUALIFIED_TYPE_NAME);
-		EclipseLinkOrmEmbeddable ormContextEmbeddable = (EclipseLinkOrmEmbeddable) ormPersistentType.getMapping();
-		ConverterHolder ormContextConverterHolder = ormContextEmbeddable.getConverterHolder();
-		XmlEmbeddable resourceEmbeddable = (XmlEmbeddable) getXmlEntityMappings().getEmbeddables().get(0);
-		
-		assertEquals(0, ormContextConverterHolder.customConvertersSize());
-		assertEquals(0, resourceEmbeddable.getConverters().size());
-		
-		//add a converter to the context model, check resource model
-		CustomConverter contextConverter = ormContextConverterHolder.addCustomConverter(0);
-		contextConverter.setConverterClass("Foo");
-		contextConverter.setName("myConverter");
-		
-		assertEquals(1, resourceEmbeddable.getConverters().size());
-		assertEquals("Foo", resourceEmbeddable.getConverters().get(0).getClassName());
-		assertEquals("myConverter", resourceEmbeddable.getConverters().get(0).getName());
-		assertEquals(1, ormContextConverterHolder.customConvertersSize());
-		ListIterator<CustomConverter> ormContextConverters = ormContextConverterHolder.customConverters();
-		CustomConverter ormContextConverter = ormContextConverters.next();
-		assertEquals("Foo", ormContextConverter.getConverterClass());
-		assertEquals("myConverter", ormContextConverter.getName());
-	
-		//add another converter to the context model, check resource model
-		CustomConverter contextConverter2 = ormContextConverterHolder.addCustomConverter(0);
-		contextConverter2.setConverterClass("Foo2");
-		contextConverter2.setName("myConverter2");
-		
-		assertEquals(2, resourceEmbeddable.getConverters().size());
-		assertEquals("Foo2", resourceEmbeddable.getConverters().get(0).getClassName());
-		assertEquals("myConverter2", resourceEmbeddable.getConverters().get(0).getName());
-		assertEquals("Foo", resourceEmbeddable.getConverters().get(1).getClassName());
-		assertEquals("myConverter", resourceEmbeddable.getConverters().get(1).getName());
-		assertEquals(2, ormContextConverterHolder.customConvertersSize());
-		ormContextConverters = ormContextConverterHolder.customConverters();
-		ormContextConverter = ormContextConverters.next();
-		assertEquals("Foo2", ormContextConverter.getConverterClass());
-		assertEquals("myConverter2", ormContextConverter.getName());
-		ormContextConverter = ormContextConverters.next();
-		assertEquals("Foo", ormContextConverter.getConverterClass());
-		assertEquals("myConverter", ormContextConverter.getName());
-	
-		//move a converter in the context model, check resource model
-		ormContextConverterHolder.moveCustomConverter(0, 1);
-		
-		assertEquals(2, resourceEmbeddable.getConverters().size());
-		assertEquals("Foo", resourceEmbeddable.getConverters().get(0).getClassName());
-		assertEquals("myConverter", resourceEmbeddable.getConverters().get(0).getName());
-		assertEquals("Foo2", resourceEmbeddable.getConverters().get(1).getClassName());
-		assertEquals("myConverter2", resourceEmbeddable.getConverters().get(1).getName());
-		assertEquals(2, ormContextConverterHolder.customConvertersSize());
-		ormContextConverters = ormContextConverterHolder.customConverters();
-		ormContextConverter = ormContextConverters.next();
-		assertEquals("Foo", ormContextConverter.getConverterClass());
-		assertEquals("myConverter", ormContextConverter.getName());
-		ormContextConverter = ormContextConverters.next();
-		assertEquals("Foo2", ormContextConverter.getConverterClass());
-		assertEquals("myConverter2", ormContextConverter.getName());
-		
-		//remove a converter from the context model, check resource model
-		ormContextConverterHolder.removeCustomConverter(0);
-		
-		assertEquals(1, resourceEmbeddable.getConverters().size());
-		assertEquals("Foo2", resourceEmbeddable.getConverters().get(0).getClassName());
-		assertEquals("myConverter2", resourceEmbeddable.getConverters().get(0).getName());
-		assertEquals(1, ormContextConverterHolder.customConvertersSize());
-		ormContextConverters = ormContextConverterHolder.customConverters();
-		ormContextConverter = ormContextConverters.next();
-		assertEquals("Foo2", ormContextConverter.getConverterClass());
-		assertEquals("myConverter2", ormContextConverter.getName());
-		
-		
-		//remove a converter from the context model, check resource model
-		ormContextConverterHolder.removeCustomConverter(contextConverter2);
-		
-		assertEquals(0, ormContextConverterHolder.customConvertersSize());
-		assertFalse(ormContextConverterHolder.customConverters().hasNext());
-		assertEquals(0, resourceEmbeddable.getConverters().size());
-	}
-	
-	public void testUpdateTypeConverters() throws Exception {
-		createTestEmbeddableForTypeConverters();
-		EclipseLinkPersistenceUnit persistenceUnit = getPersistenceUnit();
-		OrmPersistentType ormPersistentType = getEntityMappings().addPersistentType(MappingKeys.EMBEDDABLE_TYPE_MAPPING_KEY, FULLY_QUALIFIED_TYPE_NAME);
-		EclipseLinkOrmEmbeddable ormContextEmbeddable = (EclipseLinkOrmEmbeddable) ormPersistentType.getMapping();
-		ConverterHolder ormContextConverterHolder = ormContextEmbeddable.getConverterHolder();
-		XmlEmbeddable resourceEmbeddable = (XmlEmbeddable) getXmlEntityMappings().getEmbeddables().get(0);
-		
-		assertEquals(0, ormContextConverterHolder.typeConvertersSize());
-		assertEquals(0, resourceEmbeddable.getTypeConverters().size());
-		assertEquals(0, CollectionTools.size(persistenceUnit.allConverters()));
-		
-		//add a converter to the resource model, check context model
-		XmlTypeConverter resourceTypeConverter = EclipseLinkOrmFactory.eINSTANCE.createXmlTypeConverterImpl();
-		resourceEmbeddable.getTypeConverters().add(resourceTypeConverter);
-		resourceTypeConverter.setDataType("Foo");
-		resourceTypeConverter.setName("myTypeConverter");
-		
-		assertEquals(1, ormContextConverterHolder.typeConvertersSize());
-		ListIterator<TypeConverter> ormContextTypeConverters = ormContextConverterHolder.typeConverters();
-		TypeConverter ormContextTypeConverter = ormContextTypeConverters.next();
-		assertEquals("Foo", ormContextTypeConverter.getDataType());
-		assertEquals("myTypeConverter", ormContextTypeConverter.getName());
-		assertEquals(1, resourceEmbeddable.getTypeConverters().size());
-		assertEquals(1, CollectionTools.size(persistenceUnit.allConverters()));
-		
-		//add another converter to the resource model, check context model
-		XmlTypeConverter resourceTypeConverter2 = EclipseLinkOrmFactory.eINSTANCE.createXmlTypeConverterImpl();
-		resourceEmbeddable.getTypeConverters().add(0, resourceTypeConverter2);
-		resourceTypeConverter2.setDataType("Foo2");
-		resourceTypeConverter2.setName("myTypeConverter2");
-		
-		assertEquals(2, ormContextConverterHolder.typeConvertersSize());
-		ormContextTypeConverters = ormContextConverterHolder.typeConverters();
-		ormContextTypeConverter = ormContextTypeConverters.next();
-		assertEquals("Foo2", ormContextTypeConverter.getDataType());
-		assertEquals("myTypeConverter2", ormContextTypeConverter.getName());
-		ormContextTypeConverter = ormContextTypeConverters.next();
-		assertEquals("Foo", ormContextTypeConverter.getDataType());
-		assertEquals("myTypeConverter", ormContextTypeConverter.getName());
-		assertEquals(2, resourceEmbeddable.getTypeConverters().size());
-		assertEquals(2, CollectionTools.size(persistenceUnit.allConverters()));
-		
-		//move a converter in the resource model, check context model
-		resourceEmbeddable.getTypeConverters().move(0, 1);
-		
-		assertEquals(2, ormContextConverterHolder.typeConvertersSize());
-		ormContextTypeConverters = ormContextConverterHolder.typeConverters();
-		ormContextTypeConverter = ormContextTypeConverters.next();
-		assertEquals("Foo", ormContextTypeConverter.getDataType());
-		assertEquals("myTypeConverter", ormContextTypeConverter.getName());
-		ormContextTypeConverter = ormContextTypeConverters.next();
-		assertEquals("Foo2", ormContextTypeConverter.getDataType());
-		assertEquals("myTypeConverter2", ormContextTypeConverter.getName());
-		assertEquals(2, resourceEmbeddable.getTypeConverters().size());
-		assertEquals(2, CollectionTools.size(persistenceUnit.allConverters()));
-		
-		//remove a converter from the resource model, check context model
-		resourceEmbeddable.getTypeConverters().remove(0);
-		
-		assertEquals(1, ormContextConverterHolder.typeConvertersSize());
-		ormContextTypeConverters = ormContextConverterHolder.typeConverters();
-		ormContextTypeConverter = ormContextTypeConverters.next();
-		assertEquals("Foo2", ormContextTypeConverter.getDataType());
-		assertEquals("myTypeConverter2", ormContextTypeConverter.getName());
-		assertEquals(1, resourceEmbeddable.getTypeConverters().size());
-		assertEquals(1, CollectionTools.size(persistenceUnit.allConverters()));
-		
-		//remove a converter from the resource model, check context model
-		resourceEmbeddable.getTypeConverters().remove(resourceTypeConverter2);
-		
-		assertEquals(0, ormContextConverterHolder.typeConvertersSize());
-		assertFalse(ormContextConverterHolder.typeConverters().hasNext());
-		assertEquals(0, resourceEmbeddable.getTypeConverters().size());
-		assertEquals(0, CollectionTools.size(persistenceUnit.allConverters()));	
-	}
-
-	public void testModifyTypeConverters() throws Exception {
-		createTestEmbeddableForTypeConverters();
-		EclipseLinkPersistenceUnit persistenceUnit = getPersistenceUnit();
-		OrmPersistentType ormPersistentType = getEntityMappings().addPersistentType(MappingKeys.EMBEDDABLE_TYPE_MAPPING_KEY, FULLY_QUALIFIED_TYPE_NAME);
-		EclipseLinkOrmEmbeddable ormContextEmbeddable = (EclipseLinkOrmEmbeddable) ormPersistentType.getMapping();
-		ConverterHolder ormContextConverterHolder = ormContextEmbeddable.getConverterHolder();
-		XmlEmbeddable resourceEmbeddable = (XmlEmbeddable) getXmlEntityMappings().getEmbeddables().get(0);
-		
-		assertEquals(0, ormContextConverterHolder.typeConvertersSize());
-		assertEquals(0, resourceEmbeddable.getTypeConverters().size());
-		assertEquals(0, CollectionTools.size(persistenceUnit.allConverters()));
-		
-		//add a converter to the context model, check resource model
-		TypeConverter contextTypeConverter = ormContextConverterHolder.addTypeConverter(0);
-		contextTypeConverter.setDataType("Foo");
-		contextTypeConverter.setName("myTypeConverter");
-		
-		assertEquals(1, resourceEmbeddable.getTypeConverters().size());
-		assertEquals("Foo", resourceEmbeddable.getTypeConverters().get(0).getDataType());
-		assertEquals("myTypeConverter", resourceEmbeddable.getTypeConverters().get(0).getName());
-		assertEquals(1, ormContextConverterHolder.typeConvertersSize());
-		ListIterator<TypeConverter> ormContextTypeConverters = ormContextConverterHolder.typeConverters();
-		TypeConverter ormContextTypeConverter = ormContextTypeConverters.next();
-		assertEquals("Foo", ormContextTypeConverter.getDataType());
-		assertEquals("myTypeConverter", ormContextTypeConverter.getName());
-		assertEquals(1, CollectionTools.size(persistenceUnit.allConverters()));
-		
-		//add another converter to the context model, check resource model
-		TypeConverter contextTypeConverter2 = ormContextConverterHolder.addTypeConverter(0);
-		contextTypeConverter2.setDataType("Foo2");
-		contextTypeConverter2.setName("myTypeConverter2");
-		
-		assertEquals(2, resourceEmbeddable.getTypeConverters().size());
-		assertEquals("Foo2", resourceEmbeddable.getTypeConverters().get(0).getDataType());
-		assertEquals("myTypeConverter2", resourceEmbeddable.getTypeConverters().get(0).getName());
-		assertEquals("Foo", resourceEmbeddable.getTypeConverters().get(1).getDataType());
-		assertEquals("myTypeConverter", resourceEmbeddable.getTypeConverters().get(1).getName());
-		assertEquals(2, ormContextConverterHolder.typeConvertersSize());
-		ormContextTypeConverters = ormContextConverterHolder.typeConverters();
-		ormContextTypeConverter = ormContextTypeConverters.next();
-		assertEquals("Foo2", ormContextTypeConverter.getDataType());
-		assertEquals("myTypeConverter2", ormContextTypeConverter.getName());
-		ormContextTypeConverter = ormContextTypeConverters.next();
-		assertEquals("Foo", ormContextTypeConverter.getDataType());
-		assertEquals("myTypeConverter", ormContextTypeConverter.getName());
-		assertEquals(2, CollectionTools.size(persistenceUnit.allConverters()));
-		
-		//move a converter in the context model, check resource model
-		ormContextConverterHolder.moveTypeConverter(0, 1);
-		
-		assertEquals(2, resourceEmbeddable.getTypeConverters().size());
-		assertEquals("Foo", resourceEmbeddable.getTypeConverters().get(0).getDataType());
-		assertEquals("myTypeConverter", resourceEmbeddable.getTypeConverters().get(0).getName());
-		assertEquals("Foo2", resourceEmbeddable.getTypeConverters().get(1).getDataType());
-		assertEquals("myTypeConverter2", resourceEmbeddable.getTypeConverters().get(1).getName());
-		assertEquals(2, ormContextConverterHolder.typeConvertersSize());
-		ormContextTypeConverters = ormContextConverterHolder.typeConverters();
-		ormContextTypeConverter = ormContextTypeConverters.next();
-		assertEquals("Foo", ormContextTypeConverter.getDataType());
-		assertEquals("myTypeConverter", ormContextTypeConverter.getName());
-		ormContextTypeConverter = ormContextTypeConverters.next();
-		assertEquals("Foo2", ormContextTypeConverter.getDataType());
-		assertEquals("myTypeConverter2", ormContextTypeConverter.getName());
-		assertEquals(2, CollectionTools.size(persistenceUnit.allConverters()));
-		
-		//remove a converter from the context model, check resource model
-		ormContextConverterHolder.removeTypeConverter(0);
-		
-		assertEquals(1, resourceEmbeddable.getTypeConverters().size());
-		assertEquals("Foo2", resourceEmbeddable.getTypeConverters().get(0).getDataType());
-		assertEquals("myTypeConverter2", resourceEmbeddable.getTypeConverters().get(0).getName());
-		assertEquals(1, ormContextConverterHolder.typeConvertersSize());
-		ormContextTypeConverters = ormContextConverterHolder.typeConverters();
-		ormContextTypeConverter = ormContextTypeConverters.next();
-		assertEquals("Foo2", ormContextTypeConverter.getDataType());
-		assertEquals("myTypeConverter2", ormContextTypeConverter.getName());
-		assertEquals(1, CollectionTools.size(persistenceUnit.allConverters()));
-		
-		//remove a converter from the context model, check resource model
-		ormContextConverterHolder.removeTypeConverter(contextTypeConverter2);
-		
-		assertEquals(0, ormContextConverterHolder.typeConvertersSize());
-		assertFalse(ormContextConverterHolder.typeConverters().hasNext());
-		assertEquals(0, resourceEmbeddable.getTypeConverters().size());
-		assertEquals(0, CollectionTools.size(persistenceUnit.allConverters()));
-	}
-	
-	public void testUpdateObjectTypeConverters() throws Exception {
-		createTestEmbeddableForObjectTypeConverters();
-		EclipseLinkPersistenceUnit persistenceUnit = getPersistenceUnit();
-		OrmPersistentType ormPersistentType = getEntityMappings().addPersistentType(MappingKeys.EMBEDDABLE_TYPE_MAPPING_KEY, FULLY_QUALIFIED_TYPE_NAME);
-		EclipseLinkOrmEmbeddable ormContextEmbeddable = (EclipseLinkOrmEmbeddable) ormPersistentType.getMapping();
-		ConverterHolder ormContextConverterHolder = ormContextEmbeddable.getConverterHolder();
-		XmlEmbeddable resourceEmbeddable = (XmlEmbeddable) getXmlEntityMappings().getEmbeddables().get(0);
-		
-		assertEquals(0, ormContextConverterHolder.objectTypeConvertersSize());
-		assertEquals(0, resourceEmbeddable.getObjectTypeConverters().size());
-		assertEquals(0, CollectionTools.size(persistenceUnit.allConverters()));
-		
-		//add a converter to the resource model, check context model
-		XmlObjectTypeConverter resourceObjectTypeConverter = EclipseLinkOrmFactory.eINSTANCE.createXmlObjectTypeConverterImpl();
-		resourceEmbeddable.getObjectTypeConverters().add(resourceObjectTypeConverter);
-		resourceObjectTypeConverter.setDataType("Foo");
-		resourceObjectTypeConverter.setName("myObjectTypeConverter");
-		
-		assertEquals(1, ormContextConverterHolder.objectTypeConvertersSize());
-		ListIterator<ObjectTypeConverter> ormContextObjectTypeConverters = ormContextConverterHolder.objectTypeConverters();
-		ObjectTypeConverter ormContextObjectTypeConverter = ormContextObjectTypeConverters.next();
-		assertEquals("Foo", ormContextObjectTypeConverter.getDataType());
-		assertEquals("myObjectTypeConverter", ormContextObjectTypeConverter.getName());
-		assertEquals(1, resourceEmbeddable.getObjectTypeConverters().size());
-		assertEquals(1, CollectionTools.size(persistenceUnit.allConverters()));
-		
-		//add another converter to the resource model, check context model
-		XmlObjectTypeConverter resourceObjectTypeConverter2 = EclipseLinkOrmFactory.eINSTANCE.createXmlObjectTypeConverterImpl();
-		resourceEmbeddable.getObjectTypeConverters().add(0, resourceObjectTypeConverter2);
-		resourceObjectTypeConverter2.setDataType("Foo2");
-		resourceObjectTypeConverter2.setName("myObjectTypeConverter2");
-		
-		assertEquals(2, ormContextConverterHolder.objectTypeConvertersSize());
-		ormContextObjectTypeConverters = ormContextConverterHolder.objectTypeConverters();
-		ormContextObjectTypeConverter = ormContextObjectTypeConverters.next();
-		assertEquals("Foo2", ormContextObjectTypeConverter.getDataType());
-		assertEquals("myObjectTypeConverter2", ormContextObjectTypeConverter.getName());
-		ormContextObjectTypeConverter = ormContextObjectTypeConverters.next();
-		assertEquals("Foo", ormContextObjectTypeConverter.getDataType());
-		assertEquals("myObjectTypeConverter", ormContextObjectTypeConverter.getName());
-		assertEquals(2, resourceEmbeddable.getObjectTypeConverters().size());
-		assertEquals(2, CollectionTools.size(persistenceUnit.allConverters()));
-		
-		//move a converter in the resource model, check context model
-		resourceEmbeddable.getObjectTypeConverters().move(0, 1);
-		
-		assertEquals(2, ormContextConverterHolder.objectTypeConvertersSize());
-		ormContextObjectTypeConverters = ormContextConverterHolder.objectTypeConverters();
-		ormContextObjectTypeConverter = ormContextObjectTypeConverters.next();
-		assertEquals("Foo", ormContextObjectTypeConverter.getDataType());
-		assertEquals("myObjectTypeConverter", ormContextObjectTypeConverter.getName());
-		ormContextObjectTypeConverter = ormContextObjectTypeConverters.next();
-		assertEquals("Foo2", ormContextObjectTypeConverter.getDataType());
-		assertEquals("myObjectTypeConverter2", ormContextObjectTypeConverter.getName());
-		assertEquals(2, resourceEmbeddable.getObjectTypeConverters().size());
-		assertEquals(2, CollectionTools.size(persistenceUnit.allConverters()));
-		
-		//remove a converter from the resource model, check context model
-		resourceEmbeddable.getObjectTypeConverters().remove(0);
-		
-		assertEquals(1, ormContextConverterHolder.objectTypeConvertersSize());
-		ormContextObjectTypeConverters = ormContextConverterHolder.objectTypeConverters();
-		ormContextObjectTypeConverter = ormContextObjectTypeConverters.next();
-		assertEquals("Foo2", ormContextObjectTypeConverter.getDataType());
-		assertEquals("myObjectTypeConverter2", ormContextObjectTypeConverter.getName());
-		assertEquals(1, resourceEmbeddable.getObjectTypeConverters().size());
-		assertEquals(1, CollectionTools.size(persistenceUnit.allConverters()));
-		
-		//remove a converter from the resource model, check context model
-		resourceEmbeddable.getObjectTypeConverters().remove(resourceObjectTypeConverter2);
-		
-		assertEquals(0, ormContextConverterHolder.objectTypeConvertersSize());
-		assertFalse(ormContextConverterHolder.objectTypeConverters().hasNext());
-		assertEquals(0, resourceEmbeddable.getObjectTypeConverters().size());
-		assertEquals(0, CollectionTools.size(persistenceUnit.allConverters()));
-	}
-
-	public void testModifyObjectTypeConverters() throws Exception {
-		createTestEmbeddableForObjectTypeConverters();
-		EclipseLinkPersistenceUnit persistenceUnit = getPersistenceUnit();
-		OrmPersistentType ormPersistentType = getEntityMappings().addPersistentType(MappingKeys.EMBEDDABLE_TYPE_MAPPING_KEY, FULLY_QUALIFIED_TYPE_NAME);
-		EclipseLinkOrmEmbeddable ormContextEmbeddable = (EclipseLinkOrmEmbeddable) ormPersistentType.getMapping();
-		ConverterHolder ormContextConverterHolder = ormContextEmbeddable.getConverterHolder();
-		XmlEmbeddable resourceEmbeddable = (XmlEmbeddable) getXmlEntityMappings().getEmbeddables().get(0);
-		
-		assertEquals(0, ormContextConverterHolder.objectTypeConvertersSize());
-		assertEquals(0, resourceEmbeddable.getObjectTypeConverters().size());
-		assertEquals(0, CollectionTools.size(persistenceUnit.allConverters()));
-		
-		//add a converter to the context model, check resource model
-		ObjectTypeConverter contextObjectTypeConverter = ormContextConverterHolder.addObjectTypeConverter(0);
-		contextObjectTypeConverter.setDataType("Foo");
-		contextObjectTypeConverter.setName("myObjectTypeConverter");
-		
-		assertEquals(1, resourceEmbeddable.getObjectTypeConverters().size());
-		assertEquals("Foo", resourceEmbeddable.getObjectTypeConverters().get(0).getDataType());
-		assertEquals("myObjectTypeConverter", resourceEmbeddable.getObjectTypeConverters().get(0).getName());
-		assertEquals(1, ormContextConverterHolder.objectTypeConvertersSize());
-		ListIterator<ObjectTypeConverter> ormContextObjectTypeConverters = ormContextConverterHolder.objectTypeConverters();
-		ObjectTypeConverter ormContextObjectTypeConverter = ormContextObjectTypeConverters.next();
-		assertEquals("Foo", ormContextObjectTypeConverter.getDataType());
-		assertEquals("myObjectTypeConverter", ormContextObjectTypeConverter.getName());
-		assertEquals(1, CollectionTools.size(persistenceUnit.allConverters()));
-		
-		//add another converter to the context model, check resource model
-		ObjectTypeConverter contextObjectTypeConverter2 = ormContextConverterHolder.addObjectTypeConverter(0);
-		contextObjectTypeConverter2.setDataType("Foo2");
-		contextObjectTypeConverter2.setName("myObjectTypeConverter2");
-		
-		assertEquals(2, resourceEmbeddable.getObjectTypeConverters().size());
-		assertEquals("Foo2", resourceEmbeddable.getObjectTypeConverters().get(0).getDataType());
-		assertEquals("myObjectTypeConverter2", resourceEmbeddable.getObjectTypeConverters().get(0).getName());
-		assertEquals("Foo", resourceEmbeddable.getObjectTypeConverters().get(1).getDataType());
-		assertEquals("myObjectTypeConverter", resourceEmbeddable.getObjectTypeConverters().get(1).getName());
-		assertEquals(2, ormContextConverterHolder.objectTypeConvertersSize());
-		ormContextObjectTypeConverters = ormContextConverterHolder.objectTypeConverters();
-		ormContextObjectTypeConverter = ormContextObjectTypeConverters.next();
-		assertEquals("Foo2", ormContextObjectTypeConverter.getDataType());
-		assertEquals("myObjectTypeConverter2", ormContextObjectTypeConverter.getName());
-		ormContextObjectTypeConverter = ormContextObjectTypeConverters.next();
-		assertEquals("Foo", ormContextObjectTypeConverter.getDataType());
-		assertEquals("myObjectTypeConverter", ormContextObjectTypeConverter.getName());
-		assertEquals(2, CollectionTools.size(persistenceUnit.allConverters()));
-		
-		//move a converter in the context model, check resource model
-		ormContextConverterHolder.moveObjectTypeConverter(0, 1);
-		
-		assertEquals(2, resourceEmbeddable.getObjectTypeConverters().size());
-		assertEquals("Foo", resourceEmbeddable.getObjectTypeConverters().get(0).getDataType());
-		assertEquals("myObjectTypeConverter", resourceEmbeddable.getObjectTypeConverters().get(0).getName());
-		assertEquals("Foo2", resourceEmbeddable.getObjectTypeConverters().get(1).getDataType());
-		assertEquals("myObjectTypeConverter2", resourceEmbeddable.getObjectTypeConverters().get(1).getName());
-		assertEquals(2, ormContextConverterHolder.objectTypeConvertersSize());
-		ormContextObjectTypeConverters = ormContextConverterHolder.objectTypeConverters();
-		ormContextObjectTypeConverter = ormContextObjectTypeConverters.next();
-		assertEquals("Foo", ormContextObjectTypeConverter.getDataType());
-		assertEquals("myObjectTypeConverter", ormContextObjectTypeConverter.getName());
-		ormContextObjectTypeConverter = ormContextObjectTypeConverters.next();
-		assertEquals("Foo2", ormContextObjectTypeConverter.getDataType());
-		assertEquals("myObjectTypeConverter2", ormContextObjectTypeConverter.getName());
-		assertEquals(2, CollectionTools.size(persistenceUnit.allConverters()));
-		
-		//remove a converter from the context model, check resource model
-		ormContextConverterHolder.removeObjectTypeConverter(0);
-		
-		assertEquals(1, resourceEmbeddable.getObjectTypeConverters().size());
-		assertEquals("Foo2", resourceEmbeddable.getObjectTypeConverters().get(0).getDataType());
-		assertEquals("myObjectTypeConverter2", resourceEmbeddable.getObjectTypeConverters().get(0).getName());
-		assertEquals(1, ormContextConverterHolder.objectTypeConvertersSize());
-		ormContextObjectTypeConverters = ormContextConverterHolder.objectTypeConverters();
-		ormContextObjectTypeConverter = ormContextObjectTypeConverters.next();
-		assertEquals("Foo2", ormContextObjectTypeConverter.getDataType());
-		assertEquals("myObjectTypeConverter2", ormContextObjectTypeConverter.getName());
-		assertEquals(1, CollectionTools.size(persistenceUnit.allConverters()));
-		
-		//remove a converter from the context model, check resource model
-		ormContextConverterHolder.removeObjectTypeConverter(contextObjectTypeConverter2);
-		
-		assertEquals(0, ormContextConverterHolder.objectTypeConvertersSize());
-		assertFalse(ormContextConverterHolder.objectTypeConverters().hasNext());
-		assertEquals(0, resourceEmbeddable.getObjectTypeConverters().size());
-		assertEquals(0, CollectionTools.size(persistenceUnit.allConverters()));
-	}
-	
-	public void testUpdateStructConverters() throws Exception {
-		createTestEmbeddableForStructConverters();
-		EclipseLinkPersistenceUnit persistenceUnit = getPersistenceUnit();
-		OrmPersistentType ormPersistentType = getEntityMappings().addPersistentType(MappingKeys.EMBEDDABLE_TYPE_MAPPING_KEY, FULLY_QUALIFIED_TYPE_NAME);
-		EclipseLinkOrmEmbeddable ormContextEmbeddable = (EclipseLinkOrmEmbeddable) ormPersistentType.getMapping();
-		ConverterHolder ormContextConverterHolder = ormContextEmbeddable.getConverterHolder();
-		XmlEmbeddable resourceEmbeddable = (XmlEmbeddable) getXmlEntityMappings().getEmbeddables().get(0);
-		
-		assertEquals(0, ormContextConverterHolder.structConvertersSize());
-		assertEquals(0, resourceEmbeddable.getStructConverters().size());
-		assertEquals(0, CollectionTools.size(persistenceUnit.allConverters()));
-		
-		//add a converter to the resource model, check context model
-		XmlStructConverter resourceStructConverter = EclipseLinkOrmFactory.eINSTANCE.createXmlStructConverterImpl();
-		resourceEmbeddable.getStructConverters().add(resourceStructConverter);
-		resourceStructConverter.setConverter("Foo");
-		resourceStructConverter.setName("myStructConverter");
-		
-		assertEquals(1, ormContextConverterHolder.structConvertersSize());
-		ListIterator<StructConverter> ormContextStructConverters = ormContextConverterHolder.structConverters();
-		StructConverter ormContextStructConverter = ormContextStructConverters.next();
-		assertEquals("Foo", ormContextStructConverter.getConverterClass());
-		assertEquals("myStructConverter", ormContextStructConverter.getName());
-		assertEquals(1, resourceEmbeddable.getStructConverters().size());
-		assertEquals(1, CollectionTools.size(persistenceUnit.allConverters()));
-		
-		//add another converter to the resource model, check context model
-		XmlStructConverter resourceStructConverter2 = EclipseLinkOrmFactory.eINSTANCE.createXmlStructConverterImpl();
-		resourceEmbeddable.getStructConverters().add(0, resourceStructConverter2);
-		resourceStructConverter2.setConverter("Foo2");
-		resourceStructConverter2.setName("myStructConverter2");
-		
-		assertEquals(2, ormContextConverterHolder.structConvertersSize());
-		ormContextStructConverters = ormContextConverterHolder.structConverters();
-		ormContextStructConverter = ormContextStructConverters.next();
-		assertEquals("Foo2", ormContextStructConverter.getConverterClass());
-		assertEquals("myStructConverter2", ormContextStructConverter.getName());
-		ormContextStructConverter = ormContextStructConverters.next();
-		assertEquals("Foo", ormContextStructConverter.getConverterClass());
-		assertEquals("myStructConverter", ormContextStructConverter.getName());
-		assertEquals(2, resourceEmbeddable.getStructConverters().size());
-		assertEquals(2, CollectionTools.size(persistenceUnit.allConverters()));
-		
-		//move a converter in the resource model, check context model
-		resourceEmbeddable.getStructConverters().move(0, 1);
-		
-		assertEquals(2, ormContextConverterHolder.structConvertersSize());
-		ormContextStructConverters = ormContextConverterHolder.structConverters();
-		ormContextStructConverter = ormContextStructConverters.next();
-		assertEquals("Foo", ormContextStructConverter.getConverterClass());
-		assertEquals("myStructConverter", ormContextStructConverter.getName());
-		ormContextStructConverter = ormContextStructConverters.next();
-		assertEquals("Foo2", ormContextStructConverter.getConverterClass());
-		assertEquals("myStructConverter2", ormContextStructConverter.getName());
-		assertEquals(2, resourceEmbeddable.getStructConverters().size());
-		assertEquals(2, CollectionTools.size(persistenceUnit.allConverters()));
-		
-		//remove a converter from the resource model, check context model
-		resourceEmbeddable.getStructConverters().remove(0);
-		
-		assertEquals(1, ormContextConverterHolder.structConvertersSize());
-		ormContextStructConverters = ormContextConverterHolder.structConverters();
-		ormContextStructConverter = ormContextStructConverters.next();
-		assertEquals("Foo2", ormContextStructConverter.getConverterClass());
-		assertEquals("myStructConverter2", ormContextStructConverter.getName());
-		assertEquals(1, resourceEmbeddable.getStructConverters().size());
-		assertEquals(1, CollectionTools.size(persistenceUnit.allConverters()));
-		
-		//remove a converter from the resource model, check context model
-		resourceEmbeddable.getStructConverters().remove(resourceStructConverter2);
-		
-		assertEquals(0, ormContextConverterHolder.structConvertersSize());
-		assertFalse(ormContextConverterHolder.structConverters().hasNext());
-		assertEquals(0, resourceEmbeddable.getStructConverters().size());
-		assertEquals(0, CollectionTools.size(persistenceUnit.allConverters()));
-	}
-
-	public void testModifyStructConverters() throws Exception {
-		createTestEmbeddableForStructConverters();
-		EclipseLinkPersistenceUnit persistenceUnit = getPersistenceUnit();
-		OrmPersistentType ormPersistentType = getEntityMappings().addPersistentType(MappingKeys.EMBEDDABLE_TYPE_MAPPING_KEY, FULLY_QUALIFIED_TYPE_NAME);
-		EclipseLinkOrmEmbeddable ormContextEmbeddable = (EclipseLinkOrmEmbeddable) ormPersistentType.getMapping();
-		ConverterHolder ormContextConverterHolder = ormContextEmbeddable.getConverterHolder();
-		XmlEmbeddable resourceEmbeddable = (XmlEmbeddable) getXmlEntityMappings().getEmbeddables().get(0);
-		
-		assertEquals(0, ormContextConverterHolder.structConvertersSize());
-		assertEquals(0, resourceEmbeddable.getStructConverters().size());
-		assertEquals(0, CollectionTools.size(persistenceUnit.allConverters()));
-		
-		//add a converter to the context model, check resource model
-		StructConverter contextStructConverter = ormContextConverterHolder.addStructConverter(0);
-		contextStructConverter.setConverterClass("Foo");
-		contextStructConverter.setName("myStructConverter");
-		
-		assertEquals(1, resourceEmbeddable.getStructConverters().size());
-		assertEquals("Foo", resourceEmbeddable.getStructConverters().get(0).getConverter());
-		assertEquals("myStructConverter", resourceEmbeddable.getStructConverters().get(0).getName());
-		assertEquals(1, ormContextConverterHolder.structConvertersSize());
-		ListIterator<StructConverter> ormContextStructConverters = ormContextConverterHolder.structConverters();
-		StructConverter ormContextStructConverter = ormContextStructConverters.next();
-		assertEquals("Foo", ormContextStructConverter.getConverterClass());
-		assertEquals("myStructConverter", ormContextStructConverter.getName());
-		assertEquals(1, CollectionTools.size(persistenceUnit.allConverters()));
-		
-		//add another converter to the context model, check resource model
-		StructConverter contextStructConverter2 = ormContextConverterHolder.addStructConverter(0);
-		contextStructConverter2.setConverterClass("Foo2");
-		contextStructConverter2.setName("myStructConverter2");
-		
-		assertEquals(2, resourceEmbeddable.getStructConverters().size());
-		assertEquals("Foo2", resourceEmbeddable.getStructConverters().get(0).getConverter());
-		assertEquals("myStructConverter2", resourceEmbeddable.getStructConverters().get(0).getName());
-		assertEquals("Foo", resourceEmbeddable.getStructConverters().get(1).getConverter());
-		assertEquals("myStructConverter", resourceEmbeddable.getStructConverters().get(1).getName());
-		assertEquals(2, ormContextConverterHolder.structConvertersSize());
-		ormContextStructConverters = ormContextConverterHolder.structConverters();
-		ormContextStructConverter = ormContextStructConverters.next();
-		assertEquals("Foo2", ormContextStructConverter.getConverterClass());
-		assertEquals("myStructConverter2", ormContextStructConverter.getName());
-		ormContextStructConverter = ormContextStructConverters.next();
-		assertEquals("Foo", ormContextStructConverter.getConverterClass());
-		assertEquals("myStructConverter", ormContextStructConverter.getName());
-		assertEquals(2, CollectionTools.size(persistenceUnit.allConverters()));
-		
-		//move a converter in the context model, check resource model
-		ormContextConverterHolder.moveStructConverter(0, 1);
-		
-		assertEquals(2, resourceEmbeddable.getStructConverters().size());
-		assertEquals("Foo", resourceEmbeddable.getStructConverters().get(0).getConverter());
-		assertEquals("myStructConverter", resourceEmbeddable.getStructConverters().get(0).getName());
-		assertEquals("Foo2", resourceEmbeddable.getStructConverters().get(1).getConverter());
-		assertEquals("myStructConverter2", resourceEmbeddable.getStructConverters().get(1).getName());
-		assertEquals(2, ormContextConverterHolder.structConvertersSize());
-		ormContextStructConverters = ormContextConverterHolder.structConverters();
-		ormContextStructConverter = ormContextStructConverters.next();
-		assertEquals("Foo", ormContextStructConverter.getConverterClass());
-		assertEquals("myStructConverter", ormContextStructConverter.getName());
-		ormContextStructConverter = ormContextStructConverters.next();
-		assertEquals("Foo2", ormContextStructConverter.getConverterClass());
-		assertEquals("myStructConverter2", ormContextStructConverter.getName());
-		assertEquals(2, CollectionTools.size(persistenceUnit.allConverters()));
-		
-		//remove a converter from the context model, check resource model
-		ormContextConverterHolder.removeStructConverter(0);
-		
-		assertEquals(1, resourceEmbeddable.getStructConverters().size());
-		assertEquals("Foo2", resourceEmbeddable.getStructConverters().get(0).getConverter());
-		assertEquals("myStructConverter2", resourceEmbeddable.getStructConverters().get(0).getName());
-		assertEquals(1, ormContextConverterHolder.structConvertersSize());
-		ormContextStructConverters = ormContextConverterHolder.structConverters();
-		ormContextStructConverter = ormContextStructConverters.next();
-		assertEquals("Foo2", ormContextStructConverter.getConverterClass());
-		assertEquals("myStructConverter2", ormContextStructConverter.getName());
-		assertEquals(1, CollectionTools.size(persistenceUnit.allConverters()));
-		
-		//remove a converter from the context model, check resource model
-		ormContextConverterHolder.removeStructConverter(contextStructConverter2);
-		
-		assertEquals(0, ormContextConverterHolder.structConvertersSize());
-		assertFalse(ormContextConverterHolder.structConverters().hasNext());
-		assertEquals(0, resourceEmbeddable.getStructConverters().size());
-		assertEquals(0, CollectionTools.size(persistenceUnit.allConverters()));
-	}
-}
\ No newline at end of file
diff --git a/jpa/tests/org.eclipse.jpt.eclipselink.core.tests/src/org/eclipse/jpt/eclipselink/core/tests/internal/context/orm/EclipseLinkOrmEntityTests.java b/jpa/tests/org.eclipse.jpt.eclipselink.core.tests/src/org/eclipse/jpt/eclipselink/core/tests/internal/context/orm/EclipseLinkOrmEntityTests.java
deleted file mode 100644
index 0576543..0000000
--- a/jpa/tests/org.eclipse.jpt.eclipselink.core.tests/src/org/eclipse/jpt/eclipselink/core/tests/internal/context/orm/EclipseLinkOrmEntityTests.java
+++ /dev/null
@@ -1,2393 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008, 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- *******************************************************************************/
-package org.eclipse.jpt.eclipselink.core.tests.internal.context.orm;
-
-import java.util.Iterator;
-import java.util.ListIterator;
-import org.eclipse.jdt.core.ICompilationUnit;
-import org.eclipse.jpt.core.MappingKeys;
-import org.eclipse.jpt.core.context.orm.OrmPersistentType;
-import org.eclipse.jpt.core.resource.java.JPA;
-import org.eclipse.jpt.eclipselink.core.context.CacheCoordinationType;
-import org.eclipse.jpt.eclipselink.core.context.CacheType;
-import org.eclipse.jpt.eclipselink.core.context.Caching;
-import org.eclipse.jpt.eclipselink.core.context.ChangeTrackingType;
-import org.eclipse.jpt.eclipselink.core.context.CustomConverter;
-import org.eclipse.jpt.eclipselink.core.context.ExistenceType;
-import org.eclipse.jpt.eclipselink.core.context.ExpiryTimeOfDay;
-import org.eclipse.jpt.eclipselink.core.context.ObjectTypeConverter;
-import org.eclipse.jpt.eclipselink.core.context.StructConverter;
-import org.eclipse.jpt.eclipselink.core.context.TypeConverter;
-import org.eclipse.jpt.eclipselink.core.context.java.EclipseLinkJavaEntity;
-import org.eclipse.jpt.eclipselink.core.context.java.JavaCaching;
-import org.eclipse.jpt.eclipselink.core.internal.context.orm.ConverterHolder;
-import org.eclipse.jpt.eclipselink.core.internal.context.orm.EclipseLinkOrmEntity;
-import org.eclipse.jpt.eclipselink.core.internal.context.persistence.EclipseLinkPersistenceUnit;
-import org.eclipse.jpt.eclipselink.core.resource.java.EclipseLinkJPA;
-import org.eclipse.jpt.eclipselink.core.resource.orm.EclipseLinkOrmFactory;
-import org.eclipse.jpt.eclipselink.core.resource.orm.XmlChangeTrackingType;
-import org.eclipse.jpt.eclipselink.core.resource.orm.XmlConverter;
-import org.eclipse.jpt.eclipselink.core.resource.orm.XmlEntity;
-import org.eclipse.jpt.eclipselink.core.resource.orm.XmlObjectTypeConverter;
-import org.eclipse.jpt.eclipselink.core.resource.orm.XmlStructConverter;
-import org.eclipse.jpt.eclipselink.core.resource.orm.XmlTypeConverter;
-import org.eclipse.jpt.utility.internal.CollectionTools;
-import org.eclipse.jpt.utility.internal.iterators.ArrayIterator;
-
-@SuppressWarnings("nls")
-public class EclipseLinkOrmEntityTests extends EclipseLinkOrmContextModelTestCase
-{
-
-	
-	public EclipseLinkOrmEntityTests(String name) {
-		super(name);
-	}
-	
-	private ICompilationUnit createTestEntityForReadOnly() throws Exception {
-		return this.createTestType(new DefaultAnnotationWriter() {
-			@Override
-			public Iterator<String> imports() {
-				return new ArrayIterator<String>(JPA.ENTITY, EclipseLinkJPA.READ_ONLY);
-			}
-			@Override
-			public void appendTypeAnnotationTo(StringBuilder sb) {
-				sb.append("@Entity").append(CR);
-			}
-		});
-	}
-	
-	private ICompilationUnit createTestEntityForCustomizer() throws Exception {
-		return this.createTestType(new DefaultAnnotationWriter() {
-			@Override
-			public Iterator<String> imports() {
-				return new ArrayIterator<String>(JPA.ENTITY, EclipseLinkJPA.CUSTOMIZER);
-			}
-			@Override
-			public void appendTypeAnnotationTo(StringBuilder sb) {
-				sb.append("@Entity").append(CR);
-			}
-		});
-	}
-
-	private ICompilationUnit createTestEntityForChangeTracking() throws Exception {
-		return this.createTestType(new DefaultAnnotationWriter() {
-			@Override
-			public Iterator<String> imports() {
-				return new ArrayIterator<String>(JPA.ENTITY, EclipseLinkJPA.CHANGE_TRACKING);
-			}
-			
-			@Override
-			public void appendTypeAnnotationTo(StringBuilder sb) {
-				sb.append("@Entity").append(CR);
-			}
-		});
-	}
-
-	private ICompilationUnit createTestEntityForCaching() throws Exception {
-		return this.createTestType(new DefaultAnnotationWriter() {
-			@Override
-			public Iterator<String> imports() {
-				return new ArrayIterator<String>(JPA.ENTITY);
-			}
-			@Override
-			public void appendTypeAnnotationTo(StringBuilder sb) {
-				sb.append("@Entity").append(CR);
-			}
-		});
-	}
-
-	private ICompilationUnit createTestEntityForConverters() throws Exception {
-		return this.createTestType(new DefaultAnnotationWriter() {
-			@Override
-			public Iterator<String> imports() {
-				return new ArrayIterator<String>(JPA.ENTITY);
-			}
-			@Override
-			public void appendTypeAnnotationTo(StringBuilder sb) {
-				sb.append("@Entity").append(CR);
-			}
-		});
-	}
-
-	private ICompilationUnit createTestEntityForTypeConverters() throws Exception {
-		return this.createTestType(new DefaultAnnotationWriter() {
-			@Override
-			public Iterator<String> imports() {
-				return new ArrayIterator<String>(JPA.ENTITY);
-			}
-			@Override
-			public void appendTypeAnnotationTo(StringBuilder sb) {
-				sb.append("@Entity").append(CR);
-			}
-		});
-	}
-
-	private ICompilationUnit createTestEntityForObjectTypeConverters() throws Exception {
-		return this.createTestType(new DefaultAnnotationWriter() {
-			@Override
-			public Iterator<String> imports() {
-				return new ArrayIterator<String>(JPA.ENTITY);
-			}
-			@Override
-			public void appendTypeAnnotationTo(StringBuilder sb) {
-				sb.append("@Entity").append(CR);
-			}
-		});
-	}
-
-	private ICompilationUnit createTestEntityForStructConverters() throws Exception {
-		return this.createTestType(new DefaultAnnotationWriter() {
-			@Override
-			public Iterator<String> imports() {
-				return new ArrayIterator<String>(JPA.ENTITY);
-			}
-			@Override
-			public void appendTypeAnnotationTo(StringBuilder sb) {
-				sb.append("@Entity").append(CR);
-			}
-		});
-	}
-	
-	public void testUpdateReadOnly() throws Exception {
-		createTestEntityForReadOnly();
-		OrmPersistentType ormPersistentType = getEntityMappings().addPersistentType(MappingKeys.ENTITY_TYPE_MAPPING_KEY, FULLY_QUALIFIED_TYPE_NAME);
-		EclipseLinkJavaEntity javaContextEntity = (EclipseLinkJavaEntity) ormPersistentType.getJavaPersistentType().getMapping();
-		EclipseLinkOrmEntity ormContextEntity = (EclipseLinkOrmEntity) ormPersistentType.getMapping();
-		XmlEntity resourceEntity = (XmlEntity) getXmlEntityMappings().getEntities().get(0);
-		
-		// check defaults
-		
-		assertNull(resourceEntity.getReadOnly());
-		assertFalse(javaContextEntity.getReadOnly().isReadOnly());
-		assertFalse(ormContextEntity.getReadOnly().isReadOnly());
-		assertFalse(ormContextEntity.getReadOnly().isDefaultReadOnly());
-		assertNull(ormContextEntity.getReadOnly().getSpecifiedReadOnly());
-		
-		// set xml read only to false, check override
-		
-		resourceEntity.setReadOnly(Boolean.FALSE);
-		
-		assertEquals(Boolean.FALSE, resourceEntity.getReadOnly());
-		assertFalse(javaContextEntity.getReadOnly().isReadOnly());
-		assertFalse(ormContextEntity.getReadOnly().isReadOnly());
-		assertFalse(ormContextEntity.getReadOnly().isDefaultReadOnly());
-		assertEquals(Boolean.FALSE, ormContextEntity.getReadOnly().getSpecifiedReadOnly());
-		
-		// set xml read only to true, check override
-		
-		resourceEntity.setReadOnly(Boolean.TRUE);
-		
-		assertEquals(Boolean.TRUE, resourceEntity.getReadOnly());
-		assertFalse(javaContextEntity.getReadOnly().isReadOnly());
-		assertTrue(ormContextEntity.getReadOnly().isReadOnly());
-		assertFalse(ormContextEntity.getReadOnly().isDefaultReadOnly());
-		assertEquals(Boolean.TRUE, ormContextEntity.getReadOnly().getSpecifiedReadOnly());
-		
-		// clear xml read only, set java read only to true, check defaults
-		
-		resourceEntity.setReadOnly(null);
-		javaContextEntity.getReadOnly().setSpecifiedReadOnly(Boolean.TRUE);
-		
-		assertNull(resourceEntity.getReadOnly());
-		assertTrue(javaContextEntity.getReadOnly().isReadOnly());
-		assertTrue(ormContextEntity.getReadOnly().isReadOnly());
-		assertTrue(ormContextEntity.getReadOnly().isDefaultReadOnly());
-		assertNull(ormContextEntity.getReadOnly().getSpecifiedReadOnly());
-
-		// set metadataComplete to True, check defaults not from java
-
-		ormContextEntity.setSpecifiedMetadataComplete(Boolean.TRUE);
-		
-		assertNull(resourceEntity.getReadOnly());
-		assertTrue(javaContextEntity.getReadOnly().isReadOnly());
-		assertFalse(ormContextEntity.getReadOnly().isReadOnly());
-		assertFalse(ormContextEntity.getReadOnly().isDefaultReadOnly());
-		assertNull(ormContextEntity.getReadOnly().getSpecifiedReadOnly());
-
-		ormContextEntity.setSpecifiedMetadataComplete(null);
-		
-		// set xml read only to false, check override
-		
-		resourceEntity.setReadOnly(Boolean.FALSE);
-		
-		assertEquals(Boolean.FALSE, resourceEntity.getReadOnly());
-		assertTrue(javaContextEntity.getReadOnly().isReadOnly());
-		assertFalse(ormContextEntity.getReadOnly().isReadOnly());
-		assertTrue(ormContextEntity.getReadOnly().isDefaultReadOnly());
-		assertEquals(Boolean.FALSE, ormContextEntity.getReadOnly().getSpecifiedReadOnly());
-		
-		// set xml read only to true, check override
-		
-		resourceEntity.setReadOnly(Boolean.TRUE);
-		
-		assertEquals(Boolean.TRUE, resourceEntity.getReadOnly());
-		assertTrue(javaContextEntity.getReadOnly().isReadOnly());
-		assertTrue(ormContextEntity.getReadOnly().isReadOnly());
-		assertTrue(ormContextEntity.getReadOnly().isDefaultReadOnly());
-		assertEquals(Boolean.TRUE, ormContextEntity.getReadOnly().getSpecifiedReadOnly());
-				
-		// clear xml read only, set java read only to false, check defaults
-		
-		resourceEntity.setReadOnly(null);
-		javaContextEntity.getReadOnly().setSpecifiedReadOnly(Boolean.FALSE);
-		
-		assertNull(resourceEntity.getReadOnly());
-		assertFalse(javaContextEntity.getReadOnly().isReadOnly());
-		assertFalse(ormContextEntity.getReadOnly().isReadOnly());
-		assertFalse(ormContextEntity.getReadOnly().isDefaultReadOnly());
-		assertNull(ormContextEntity.getReadOnly().getSpecifiedReadOnly());
-		
-		
-		
-		// set xml read only to false, check override
-		
-		resourceEntity.setReadOnly(Boolean.FALSE);
-		
-		assertEquals(Boolean.FALSE, resourceEntity.getReadOnly());
-		assertFalse(javaContextEntity.getReadOnly().isReadOnly());
-		assertFalse(ormContextEntity.getReadOnly().isReadOnly());
-		assertFalse(ormContextEntity.getReadOnly().isDefaultReadOnly());
-		assertEquals(Boolean.FALSE, ormContextEntity.getReadOnly().getSpecifiedReadOnly());
-		
-		// set xml read only to true, check override
-		
-		resourceEntity.setReadOnly(Boolean.TRUE);
-		
-		assertEquals(Boolean.TRUE, resourceEntity.getReadOnly());
-		assertFalse(javaContextEntity.getReadOnly().isReadOnly());
-		assertTrue(ormContextEntity.getReadOnly().isReadOnly());
-		assertFalse(ormContextEntity.getReadOnly().isDefaultReadOnly());
-		assertEquals(Boolean.TRUE, ormContextEntity.getReadOnly().getSpecifiedReadOnly());
-	}
-	
-	public void testModifyReadOnly() throws Exception {
-		createTestEntityForReadOnly();
-		OrmPersistentType ormPersistentType = getEntityMappings().addPersistentType(MappingKeys.ENTITY_TYPE_MAPPING_KEY, FULLY_QUALIFIED_TYPE_NAME);
-		EclipseLinkOrmEntity ormContextEntity = (EclipseLinkOrmEntity) ormPersistentType.getMapping();
-		XmlEntity resourceEntity = (XmlEntity) getXmlEntityMappings().getEntities().get(0);
-		
-		// check defaults
-		
-		assertNull(resourceEntity.getReadOnly());
-		assertFalse(ormContextEntity.getReadOnly().isReadOnly());
-		assertFalse(ormContextEntity.getReadOnly().isDefaultReadOnly());
-		assertNull(ormContextEntity.getReadOnly().getSpecifiedReadOnly());
-		
-		// set context read only to true, check resource
-		
-		ormContextEntity.getReadOnly().setSpecifiedReadOnly(Boolean.TRUE);
-		
-		assertEquals(Boolean.TRUE, resourceEntity.getReadOnly());
-		assertTrue(ormContextEntity.getReadOnly().isReadOnly());
-		assertFalse(ormContextEntity.getReadOnly().isDefaultReadOnly());
-		assertEquals(Boolean.TRUE, ormContextEntity.getReadOnly().getSpecifiedReadOnly());
-		
-		// set context read only to false, check resource
-		
-		ormContextEntity.getReadOnly().setSpecifiedReadOnly(Boolean.FALSE);
-		
-		assertEquals(Boolean.FALSE, resourceEntity.getReadOnly());
-		assertFalse(ormContextEntity.getReadOnly().isReadOnly());
-		assertFalse(ormContextEntity.getReadOnly().isDefaultReadOnly());
-		assertEquals(Boolean.FALSE, ormContextEntity.getReadOnly().getSpecifiedReadOnly());
-		
-		// set context read only to null, check resource
-		
-		ormContextEntity.getReadOnly().setSpecifiedReadOnly(null);
-		
-		assertNull(resourceEntity.getReadOnly());
-		assertFalse(ormContextEntity.getReadOnly().isReadOnly());
-		assertFalse(ormContextEntity.getReadOnly().isDefaultReadOnly());
-		assertNull(ormContextEntity.getReadOnly().getSpecifiedReadOnly());	
-	}
-	
-	
-	public void testUpdateCustomizerClass() throws Exception {
-		createTestEntityForCustomizer();
-		OrmPersistentType ormPersistentType = getEntityMappings().addPersistentType(MappingKeys.ENTITY_TYPE_MAPPING_KEY, FULLY_QUALIFIED_TYPE_NAME);
-		EclipseLinkJavaEntity javaContextEntity = (EclipseLinkJavaEntity) ormPersistentType.getJavaPersistentType().getMapping();
-		EclipseLinkOrmEntity ormContextEntity = (EclipseLinkOrmEntity) ormPersistentType.getMapping();
-		XmlEntity resourceEntity = (XmlEntity) getXmlEntityMappings().getEntities().get(0);
-
-
-		// check defaults
-		
-		assertNull(resourceEntity.getCustomizer());
-		assertNull(javaContextEntity.getCustomizer().getCustomizerClass());
-		assertNull(ormContextEntity.getCustomizer().getCustomizerClass());
-		assertNull(ormContextEntity.getCustomizer().getDefaultCustomizerClass());
-		assertNull(ormContextEntity.getCustomizer().getSpecifiedCustomizerClass());
-		
-		// set xml customizer, check defaults
-		resourceEntity.setCustomizer(EclipseLinkOrmFactory.eINSTANCE.createXmlCustomizer());
-		assertNull(resourceEntity.getCustomizer().getCustomizerClassName());
-		assertNull(javaContextEntity.getCustomizer().getCustomizerClass());
-		assertNull(ormContextEntity.getCustomizer().getCustomizerClass());
-		assertNull(ormContextEntity.getCustomizer().getDefaultCustomizerClass());
-		assertNull(ormContextEntity.getCustomizer().getSpecifiedCustomizerClass());
-
-		
-		// set xml customizer class, check override
-		
-		resourceEntity.getCustomizer().setCustomizerClassName("foo");
-		
-		assertEquals("foo", resourceEntity.getCustomizer().getCustomizerClassName());
-		assertNull(javaContextEntity.getCustomizer().getCustomizerClass());
-		assertEquals("foo", ormContextEntity.getCustomizer().getCustomizerClass());
-		assertNull(ormContextEntity.getCustomizer().getDefaultCustomizerClass());
-		assertEquals("foo", ormContextEntity.getCustomizer().getSpecifiedCustomizerClass());
-		
-		// clear xml customizer class, set java customizer class, check defaults
-		
-		resourceEntity.getCustomizer().setCustomizerClassName(null);
-		javaContextEntity.getCustomizer().setSpecifiedCustomizerClass("bar");
-		
-		assertNull(resourceEntity.getCustomizer().getCustomizerClassName());
-		assertEquals("bar", javaContextEntity.getCustomizer().getCustomizerClass());
-		assertEquals("bar", ormContextEntity.getCustomizer().getCustomizerClass());
-		assertEquals("bar", ormContextEntity.getCustomizer().getDefaultCustomizerClass());
-		assertNull(ormContextEntity.getCustomizer().getSpecifiedCustomizerClass());
-
-		// set metadataComplete to True, check defaults not from java
-
-		ormContextEntity.setSpecifiedMetadataComplete(Boolean.TRUE);
-		
-		assertNull(resourceEntity.getCustomizer().getCustomizerClassName());
-		assertEquals("bar", javaContextEntity.getCustomizer().getCustomizerClass());
-		assertNull(ormContextEntity.getCustomizer().getCustomizerClass());
-		assertNull(ormContextEntity.getCustomizer().getDefaultCustomizerClass());
-		assertNull(ormContextEntity.getCustomizer().getSpecifiedCustomizerClass());
-
-		ormContextEntity.setSpecifiedMetadataComplete(null);
-		
-		// set xml customizer class, check override
-		
-		resourceEntity.getCustomizer().setCustomizerClassName("foo");
-		
-		assertEquals("foo", resourceEntity.getCustomizer().getCustomizerClassName());
-		assertEquals("bar", javaContextEntity.getCustomizer().getCustomizerClass());
-		assertEquals("foo", ormContextEntity.getCustomizer().getCustomizerClass());
-		assertEquals("bar", ormContextEntity.getCustomizer().getDefaultCustomizerClass());
-		assertEquals("foo", ormContextEntity.getCustomizer().getSpecifiedCustomizerClass());
-
-		//set xml customizer null
-		javaContextEntity.getCustomizer().setSpecifiedCustomizerClass(null);
-		resourceEntity.setCustomizer(null);
-		assertNull(resourceEntity.getCustomizer());
-		assertNull(javaContextEntity.getCustomizer().getCustomizerClass());
-		assertNull(ormContextEntity.getCustomizer().getCustomizerClass());
-		assertNull(ormContextEntity.getCustomizer().getDefaultCustomizerClass());
-		assertNull(ormContextEntity.getCustomizer().getSpecifiedCustomizerClass());
-
-	}
-	
-	public void testModifyCustomizerClass() throws Exception {
-		createTestEntityForCustomizer();
-		OrmPersistentType ormPersistentType = getEntityMappings().addPersistentType(MappingKeys.ENTITY_TYPE_MAPPING_KEY, FULLY_QUALIFIED_TYPE_NAME);
-		EclipseLinkOrmEntity ormContextEntity = (EclipseLinkOrmEntity) ormPersistentType.getMapping();
-		XmlEntity resourceEntity = (XmlEntity) getXmlEntityMappings().getEntities().get(0);
-		
-		// check defaults
-		
-		assertNull(resourceEntity.getCustomizer());
-		assertNull(ormContextEntity.getCustomizer().getCustomizerClass());
-		assertNull(ormContextEntity.getCustomizer().getDefaultCustomizerClass());
-		assertNull(ormContextEntity.getCustomizer().getSpecifiedCustomizerClass());
-		
-		// set context customizer, check resource
-		
-		ormContextEntity.getCustomizer().setSpecifiedCustomizerClass("foo");
-		
-		assertEquals("foo", resourceEntity.getCustomizer().getCustomizerClassName());
-		assertEquals("foo", ormContextEntity.getCustomizer().getCustomizerClass());
-		assertNull(ormContextEntity.getCustomizer().getDefaultCustomizerClass());
-		assertEquals("foo", ormContextEntity.getCustomizer().getSpecifiedCustomizerClass());
-				
-		// set context customizer to null, check resource
-		
-		ormContextEntity.getCustomizer().setSpecifiedCustomizerClass(null);
-		
-		assertNull(resourceEntity.getCustomizer());
-		assertNull(ormContextEntity.getCustomizer().getCustomizerClass());
-		assertNull(ormContextEntity.getCustomizer().getDefaultCustomizerClass());
-		assertNull(ormContextEntity.getCustomizer().getSpecifiedCustomizerClass());
-	}
-	
-	public void testUpdateChangeTracking() throws Exception {
-		createTestEntityForChangeTracking();
-		OrmPersistentType ormPersistentType = getEntityMappings().addPersistentType(MappingKeys.ENTITY_TYPE_MAPPING_KEY, FULLY_QUALIFIED_TYPE_NAME);
-		EclipseLinkJavaEntity javaContextEntity = (EclipseLinkJavaEntity) ormPersistentType.getJavaPersistentType().getMapping();
-		EclipseLinkOrmEntity ormContextEntity = (EclipseLinkOrmEntity) ormPersistentType.getMapping();
-		XmlEntity resourceEntity = (XmlEntity) getXmlEntityMappings().getEntities().get(0);
-		
-		// check defaults
-		
-		assertNull(resourceEntity.getChangeTracking());
-		assertEquals(ChangeTrackingType.AUTO, javaContextEntity.getChangeTracking().getType());
-		assertEquals(ChangeTrackingType.AUTO, ormContextEntity.getChangeTracking().getType());
-		assertEquals(ChangeTrackingType.AUTO, ormContextEntity.getChangeTracking().getDefaultType());
-		assertNull(ormContextEntity.getChangeTracking().getSpecifiedType());
-		
-		// set xml type to ATTRIBUTE, check context
-		
-		resourceEntity.setChangeTracking(EclipseLinkOrmFactory.eINSTANCE.createXmlChangeTracking());
-		resourceEntity.getChangeTracking().setType(XmlChangeTrackingType.ATTRIBUTE);
-		
-		assertEquals(XmlChangeTrackingType.ATTRIBUTE, resourceEntity.getChangeTracking().getType());
-		assertEquals(ChangeTrackingType.AUTO, javaContextEntity.getChangeTracking().getType());
-		assertEquals(ChangeTrackingType.ATTRIBUTE, ormContextEntity.getChangeTracking().getType());
-		assertEquals(ChangeTrackingType.AUTO, ormContextEntity.getChangeTracking().getDefaultType());
-		assertEquals(ChangeTrackingType.ATTRIBUTE, ormContextEntity.getChangeTracking().getSpecifiedType());
-		
-		// set xml type to OBJECT, check context
-		
-		resourceEntity.getChangeTracking().setType(XmlChangeTrackingType.OBJECT);
-		
-		assertEquals(XmlChangeTrackingType.OBJECT, resourceEntity.getChangeTracking().getType());
-		assertEquals(ChangeTrackingType.AUTO, javaContextEntity.getChangeTracking().getType());
-		assertEquals(ChangeTrackingType.OBJECT, ormContextEntity.getChangeTracking().getType());
-		assertEquals(ChangeTrackingType.AUTO, ormContextEntity.getChangeTracking().getDefaultType());
-		assertEquals(ChangeTrackingType.OBJECT, ormContextEntity.getChangeTracking().getSpecifiedType());
-		
-		// set xml type to DEFERRED, check context
-		
-		resourceEntity.getChangeTracking().setType(XmlChangeTrackingType.DEFERRED);
-		
-		assertEquals(XmlChangeTrackingType.DEFERRED, resourceEntity.getChangeTracking().getType());
-		assertEquals(ChangeTrackingType.AUTO, javaContextEntity.getChangeTracking().getType());
-		assertEquals(ChangeTrackingType.DEFERRED, ormContextEntity.getChangeTracking().getType());
-		assertEquals(ChangeTrackingType.AUTO, ormContextEntity.getChangeTracking().getDefaultType());
-		assertEquals(ChangeTrackingType.DEFERRED, ormContextEntity.getChangeTracking().getSpecifiedType());
-		
-		// set xml type to AUTO, check context
-		
-		resourceEntity.getChangeTracking().setType(XmlChangeTrackingType.AUTO);
-		
-		assertEquals(XmlChangeTrackingType.AUTO, resourceEntity.getChangeTracking().getType());
-		assertEquals(ChangeTrackingType.AUTO, javaContextEntity.getChangeTracking().getType());
-		assertEquals(ChangeTrackingType.AUTO, ormContextEntity.getChangeTracking().getType());
-		assertEquals(ChangeTrackingType.AUTO, ormContextEntity.getChangeTracking().getDefaultType());
-		assertEquals(ChangeTrackingType.AUTO, ormContextEntity.getChangeTracking().getSpecifiedType());
-		
-		// clear xml change tracking, set java change tracking, check defaults
-		
-		resourceEntity.setChangeTracking(null);
-		javaContextEntity.getChangeTracking().setSpecifiedType(ChangeTrackingType.ATTRIBUTE);
-		
-		assertNull(resourceEntity.getChangeTracking());
-		assertEquals(ChangeTrackingType.ATTRIBUTE, javaContextEntity.getChangeTracking().getType());
-		assertEquals(ChangeTrackingType.ATTRIBUTE, ormContextEntity.getChangeTracking().getType());
-		assertEquals(ChangeTrackingType.ATTRIBUTE, ormContextEntity.getChangeTracking().getDefaultType());
-		assertNull(ormContextEntity.getChangeTracking().getSpecifiedType());
-		
-		// set metadataComplete to True, check defaults not from java
-
-		ormContextEntity.setSpecifiedMetadataComplete(Boolean.TRUE);
-		
-		assertNull(resourceEntity.getChangeTracking());
-		assertEquals(ChangeTrackingType.ATTRIBUTE, javaContextEntity.getChangeTracking().getType());
-		assertEquals(ChangeTrackingType.AUTO, ormContextEntity.getChangeTracking().getType());
-		assertEquals(ChangeTrackingType.AUTO, ormContextEntity.getChangeTracking().getDefaultType());
-		assertNull(ormContextEntity.getChangeTracking().getSpecifiedType());
-		
-		// unset metadataComplete, set xml change tracking to OBJECT, check context
-		
-		ormContextEntity.setSpecifiedMetadataComplete(null);
-		resourceEntity.setChangeTracking(EclipseLinkOrmFactory.eINSTANCE.createXmlChangeTracking());
-		resourceEntity.getChangeTracking().setType(XmlChangeTrackingType.OBJECT);
-		
-		assertEquals(XmlChangeTrackingType.OBJECT, resourceEntity.getChangeTracking().getType());
-		assertEquals(ChangeTrackingType.ATTRIBUTE, javaContextEntity.getChangeTracking().getType());
-		assertEquals(ChangeTrackingType.OBJECT, ormContextEntity.getChangeTracking().getType());
-		assertEquals(ChangeTrackingType.ATTRIBUTE, ormContextEntity.getChangeTracking().getDefaultType());
-		assertEquals(ChangeTrackingType.OBJECT, ormContextEntity.getChangeTracking().getSpecifiedType());
-	}
-	
-	public void testModifyChangeTracking() throws Exception  {
-		createTestEntityForChangeTracking();
-		OrmPersistentType ormPersistentType = getEntityMappings().addPersistentType(MappingKeys.ENTITY_TYPE_MAPPING_KEY, FULLY_QUALIFIED_TYPE_NAME);
-		EclipseLinkOrmEntity ormContextEntity = (EclipseLinkOrmEntity) ormPersistentType.getMapping();
-		XmlEntity resourceEntity = (XmlEntity) getXmlEntityMappings().getEntities().get(0);
-		
-		// check defaults
-		
-		assertNull(resourceEntity.getChangeTracking());
-		assertEquals(ChangeTrackingType.AUTO, ormContextEntity.getChangeTracking().getType());
-		assertEquals(ChangeTrackingType.AUTO, ormContextEntity.getChangeTracking().getDefaultType());
-		assertNull(ormContextEntity.getChangeTracking().getSpecifiedType());
-		
-		// set context change tracking to ATTRIBUTE, check resource
-		
-		ormContextEntity.getChangeTracking().setSpecifiedType(ChangeTrackingType.ATTRIBUTE);
-		
-		assertEquals(XmlChangeTrackingType.ATTRIBUTE, resourceEntity.getChangeTracking().getType());
-		assertEquals(ChangeTrackingType.ATTRIBUTE, ormContextEntity.getChangeTracking().getType());
-		assertEquals(ChangeTrackingType.AUTO, ormContextEntity.getChangeTracking().getDefaultType());
-		assertEquals(ChangeTrackingType.ATTRIBUTE, ormContextEntity.getChangeTracking().getSpecifiedType());
-				
-		// set context change tracking to OBJECT, check resource
-		
-		ormContextEntity.getChangeTracking().setSpecifiedType(ChangeTrackingType.OBJECT);
-		
-		assertEquals(XmlChangeTrackingType.OBJECT, resourceEntity.getChangeTracking().getType());
-		assertEquals(ChangeTrackingType.OBJECT, ormContextEntity.getChangeTracking().getType());
-		assertEquals(ChangeTrackingType.AUTO, ormContextEntity.getChangeTracking().getDefaultType());
-		assertEquals(ChangeTrackingType.OBJECT, ormContextEntity.getChangeTracking().getSpecifiedType());
-				
-		// set context change tracking to DEFERRED, check resource
-		
-		ormContextEntity.getChangeTracking().setSpecifiedType(ChangeTrackingType.DEFERRED);
-		
-		assertEquals(XmlChangeTrackingType.DEFERRED, resourceEntity.getChangeTracking().getType());
-		assertEquals(ChangeTrackingType.DEFERRED, ormContextEntity.getChangeTracking().getType());
-		assertEquals(ChangeTrackingType.AUTO, ormContextEntity.getChangeTracking().getDefaultType());
-		assertEquals(ChangeTrackingType.DEFERRED, ormContextEntity.getChangeTracking().getSpecifiedType());
-				
-		// set context change tracking to AUTO, check resource
-		
-		ormContextEntity.getChangeTracking().setSpecifiedType(ChangeTrackingType.AUTO);
-		
-		assertEquals(XmlChangeTrackingType.AUTO, resourceEntity.getChangeTracking().getType());
-		assertEquals(ChangeTrackingType.AUTO, ormContextEntity.getChangeTracking().getType());
-		assertEquals(ChangeTrackingType.AUTO, ormContextEntity.getChangeTracking().getDefaultType());
-		assertEquals(ChangeTrackingType.AUTO, ormContextEntity.getChangeTracking().getSpecifiedType());
-				
-		// set context change tracking to null, check resource
-		
-		ormContextEntity.getChangeTracking().setSpecifiedType(null);
-		
-		assertNull(resourceEntity.getChangeTracking());
-		assertEquals(ChangeTrackingType.AUTO, ormContextEntity.getChangeTracking().getType());
-		assertEquals(ChangeTrackingType.AUTO, ormContextEntity.getChangeTracking().getDefaultType());
-		assertNull(ormContextEntity.getChangeTracking().getSpecifiedType());
-	}
-	
-	public void testUpdateCacheType() throws Exception {
-		createTestEntityForCaching();
-		OrmPersistentType ormPersistentType = getEntityMappings().addPersistentType(MappingKeys.ENTITY_TYPE_MAPPING_KEY, FULLY_QUALIFIED_TYPE_NAME);
-		JavaCaching javaContextCaching = ((EclipseLinkJavaEntity) ormPersistentType.getJavaPersistentType().getMapping()).getCaching();
-		EclipseLinkOrmEntity ormContextEntity = (EclipseLinkOrmEntity) ormPersistentType.getMapping();
-		Caching ormContextCaching = ormContextEntity.getCaching();
-		XmlEntity resourceEntity = (XmlEntity) getXmlEntityMappings().getEntities().get(0);
-
-
-		// check defaults
-		
-		assertEquals(null, resourceEntity.getCache());
-		assertEquals(CacheType.SOFT_WEAK, javaContextCaching.getType());
-		assertEquals(CacheType.SOFT_WEAK, ormContextCaching.getType());
-		assertEquals(CacheType.SOFT_WEAK, ormContextCaching.getDefaultType());
-		assertEquals(null, ormContextCaching.getSpecifiedType());
-		
-		// set xml cache, check defaults
-		resourceEntity.setCache(EclipseLinkOrmFactory.eINSTANCE.createXmlCache());
-		assertEquals(null, resourceEntity.getCache().getType());
-		assertEquals(CacheType.SOFT_WEAK, javaContextCaching.getType());
-		assertEquals(CacheType.SOFT_WEAK, ormContextCaching.getType());
-		assertEquals(CacheType.SOFT_WEAK, ormContextCaching.getDefaultType());
-		assertEquals(null, ormContextCaching.getSpecifiedType());
-
-		
-		// set xml cache type, check settings
-		resourceEntity.getCache().setType(org.eclipse.jpt.eclipselink.core.resource.orm.CacheType.FULL);
-		assertEquals(org.eclipse.jpt.eclipselink.core.resource.orm.CacheType.FULL, resourceEntity.getCache().getType());
-		assertEquals(CacheType.SOFT_WEAK, javaContextCaching.getType());
-		assertEquals(CacheType.FULL, ormContextCaching.getType());
-		assertEquals(CacheType.SOFT_WEAK, ormContextCaching.getDefaultType());
-		assertEquals(CacheType.FULL, ormContextCaching.getSpecifiedType());
-
-			
-		// set java cache type, check defaults
-		
-		javaContextCaching.setSpecifiedType(CacheType.WEAK);
-		
-		assertEquals(org.eclipse.jpt.eclipselink.core.resource.orm.CacheType.FULL, resourceEntity.getCache().getType());
-		assertEquals(CacheType.WEAK, javaContextCaching.getType());
-		assertEquals(CacheType.FULL, ormContextCaching.getType());
-		assertEquals(CacheType.SOFT_WEAK, ormContextCaching.getDefaultType());
-		assertEquals(CacheType.FULL, ormContextCaching.getSpecifiedType());
-
-		// clear xml cache type, check defaults
-		resourceEntity.getCache().setType(null);
-
-		assertEquals(null, resourceEntity.getCache().getType());
-		assertEquals(CacheType.WEAK, javaContextCaching.getType());
-		assertEquals(CacheType.SOFT_WEAK, ormContextCaching.getType());
-		assertEquals(CacheType.SOFT_WEAK, ormContextCaching.getDefaultType());
-		assertEquals(null, ormContextCaching.getSpecifiedType());
-	
-		
-		// clear xml cache, check defaults
-		resourceEntity.setCache(null);
-
-		assertEquals(null, resourceEntity.getCache());
-		assertEquals(CacheType.WEAK, javaContextCaching.getType());
-		assertEquals(CacheType.WEAK, ormContextCaching.getType());
-		assertEquals(CacheType.WEAK, ormContextCaching.getDefaultType());
-		assertEquals(null, ormContextCaching.getSpecifiedType());
-	
-		
-		// set metadataComplete to True, check defaults not from java
-
-		ormContextEntity.setSpecifiedMetadataComplete(Boolean.TRUE);
-		
-		assertEquals(null, resourceEntity.getCache());
-		assertEquals(CacheType.WEAK, javaContextCaching.getType());
-		assertEquals(CacheType.SOFT_WEAK, ormContextCaching.getType());
-		assertEquals(CacheType.SOFT_WEAK, ormContextCaching.getDefaultType());
-		assertEquals(null, ormContextCaching.getSpecifiedType());
-
-		ormContextEntity.setSpecifiedMetadataComplete(null);
-	}
-	
-	public void testModifyCacheType() throws Exception {
-		createTestEntityForCaching();
-		OrmPersistentType ormPersistentType = getEntityMappings().addPersistentType(MappingKeys.ENTITY_TYPE_MAPPING_KEY, FULLY_QUALIFIED_TYPE_NAME);
-		EclipseLinkOrmEntity ormContextEntity = (EclipseLinkOrmEntity) ormPersistentType.getMapping();
-		Caching ormContextCaching = ormContextEntity.getCaching();
-		XmlEntity resourceEntity = (XmlEntity) getXmlEntityMappings().getEntities().get(0);
-		
-		// check defaults
-		
-		assertEquals(null, resourceEntity.getCache());
-		assertEquals(CacheType.SOFT_WEAK, ormContextCaching.getType());
-		assertEquals(CacheType.SOFT_WEAK, ormContextCaching.getDefaultType());
-		assertEquals(null, ormContextCaching.getSpecifiedType());
-		
-		// set context cache type, check resource
-		
-		ormContextEntity.getCaching().setSpecifiedType(CacheType.HARD_WEAK);
-		assertEquals(org.eclipse.jpt.eclipselink.core.resource.orm.CacheType.HARD_WEAK, resourceEntity.getCache().getType());
-		assertEquals(CacheType.HARD_WEAK, ormContextCaching.getType());
-		assertEquals(CacheType.SOFT_WEAK, ormContextCaching.getDefaultType());
-		assertEquals(CacheType.HARD_WEAK, ormContextCaching.getSpecifiedType());
-				
-		// set context customizer to null, check resource
-		
-		ormContextEntity.getCaching().setSpecifiedType(null);
-		
-		assertEquals(null, resourceEntity.getCache());
-		assertEquals(CacheType.SOFT_WEAK, ormContextCaching.getType());
-		assertEquals(CacheType.SOFT_WEAK, ormContextCaching.getDefaultType());
-		assertEquals(null, ormContextCaching.getSpecifiedType());
-	}
-
-	public void testUpdateCacheCoordinationType() throws Exception {
-		createTestEntityForCaching();
-		OrmPersistentType ormPersistentType = getEntityMappings().addPersistentType(MappingKeys.ENTITY_TYPE_MAPPING_KEY, FULLY_QUALIFIED_TYPE_NAME);
-		JavaCaching javaContextCaching = ((EclipseLinkJavaEntity) ormPersistentType.getJavaPersistentType().getMapping()).getCaching();
-		EclipseLinkOrmEntity ormContextEntity = (EclipseLinkOrmEntity) ormPersistentType.getMapping();
-		Caching ormContextCaching = ormContextEntity.getCaching();
-		XmlEntity resourceEntity = (XmlEntity) getXmlEntityMappings().getEntities().get(0);
-
-
-		// check defaults
-		
-		assertEquals(null, resourceEntity.getCache());
-		assertEquals(CacheCoordinationType.SEND_OBJECT_CHANGES, javaContextCaching.getCoordinationType());
-		assertEquals(CacheCoordinationType.SEND_OBJECT_CHANGES, ormContextCaching.getCoordinationType());
-		assertEquals(CacheCoordinationType.SEND_OBJECT_CHANGES, ormContextCaching.getDefaultCoordinationType());
-		assertEquals(null, ormContextCaching.getSpecifiedCoordinationType());
-		
-		// set xml cache, check defaults
-		resourceEntity.setCache(EclipseLinkOrmFactory.eINSTANCE.createXmlCache());
-		assertEquals(null, resourceEntity.getCache().getCoordinationType());
-		assertEquals(CacheCoordinationType.SEND_OBJECT_CHANGES, javaContextCaching.getCoordinationType());
-		assertEquals(CacheCoordinationType.SEND_OBJECT_CHANGES, ormContextCaching.getCoordinationType());
-		assertEquals(CacheCoordinationType.SEND_OBJECT_CHANGES, ormContextCaching.getDefaultCoordinationType());
-		assertEquals(null, ormContextCaching.getSpecifiedCoordinationType());
-
-		
-		// set xml cache type, check settings
-		resourceEntity.getCache().setCoordinationType(org.eclipse.jpt.eclipselink.core.resource.orm.CacheCoordinationType.INVALIDATE_CHANGED_OBJECTS);
-		assertEquals(org.eclipse.jpt.eclipselink.core.resource.orm.CacheCoordinationType.INVALIDATE_CHANGED_OBJECTS, resourceEntity.getCache().getCoordinationType());
-		assertEquals(CacheCoordinationType.SEND_OBJECT_CHANGES, javaContextCaching.getCoordinationType());
-		assertEquals(CacheCoordinationType.INVALIDATE_CHANGED_OBJECTS, ormContextCaching.getCoordinationType());
-		assertEquals(CacheCoordinationType.SEND_OBJECT_CHANGES, ormContextCaching.getDefaultCoordinationType());
-		assertEquals(CacheCoordinationType.INVALIDATE_CHANGED_OBJECTS, ormContextCaching.getSpecifiedCoordinationType());
-
-			
-		// set java cache type, check defaults
-		
-		javaContextCaching.setSpecifiedCoordinationType(CacheCoordinationType.SEND_NEW_OBJECTS_WITH_CHANGES);
-		
-		assertEquals(org.eclipse.jpt.eclipselink.core.resource.orm.CacheCoordinationType.INVALIDATE_CHANGED_OBJECTS, resourceEntity.getCache().getCoordinationType());
-		assertEquals(CacheCoordinationType.SEND_NEW_OBJECTS_WITH_CHANGES, javaContextCaching.getCoordinationType());
-		assertEquals(CacheCoordinationType.INVALIDATE_CHANGED_OBJECTS, ormContextCaching.getCoordinationType());
-		assertEquals(CacheCoordinationType.SEND_OBJECT_CHANGES, ormContextCaching.getDefaultCoordinationType());
-		assertEquals(CacheCoordinationType.INVALIDATE_CHANGED_OBJECTS, ormContextCaching.getSpecifiedCoordinationType());
-
-		// clear xml cache type, check defaults
-		resourceEntity.getCache().setCoordinationType(null);
-
-		assertEquals(null, resourceEntity.getCache().getCoordinationType());
-		assertEquals(CacheCoordinationType.SEND_NEW_OBJECTS_WITH_CHANGES, javaContextCaching.getCoordinationType());
-		assertEquals(CacheCoordinationType.SEND_OBJECT_CHANGES, ormContextCaching.getCoordinationType());
-		assertEquals(CacheCoordinationType.SEND_OBJECT_CHANGES, ormContextCaching.getDefaultCoordinationType());
-		assertEquals(null, ormContextCaching.getSpecifiedCoordinationType());
-	
-		
-		// clear xml cache, check defaults
-		resourceEntity.setCache(null);
-
-		assertEquals(null, resourceEntity.getCache());
-		assertEquals(CacheCoordinationType.SEND_NEW_OBJECTS_WITH_CHANGES, javaContextCaching.getCoordinationType());
-		assertEquals(CacheCoordinationType.SEND_NEW_OBJECTS_WITH_CHANGES, ormContextCaching.getCoordinationType());
-		assertEquals(CacheCoordinationType.SEND_NEW_OBJECTS_WITH_CHANGES, ormContextCaching.getDefaultCoordinationType());
-		assertEquals(null, ormContextCaching.getSpecifiedCoordinationType());
-	
-		
-		// set metadataComplete to True, check defaults not from java
-
-		ormContextEntity.setSpecifiedMetadataComplete(Boolean.TRUE);
-		
-		assertEquals(null, resourceEntity.getCache());
-		assertEquals(CacheCoordinationType.SEND_NEW_OBJECTS_WITH_CHANGES, javaContextCaching.getCoordinationType());
-		assertEquals(CacheCoordinationType.SEND_OBJECT_CHANGES, ormContextCaching.getCoordinationType());
-		assertEquals(CacheCoordinationType.SEND_OBJECT_CHANGES, ormContextCaching.getDefaultCoordinationType());
-		assertEquals(null, ormContextCaching.getSpecifiedCoordinationType());
-
-		ormContextEntity.setSpecifiedMetadataComplete(null);
-	}
-	
-	public void testModifyCacheCoordinationType() throws Exception {
-		createTestEntityForCaching();
-		OrmPersistentType ormPersistentType = getEntityMappings().addPersistentType(MappingKeys.ENTITY_TYPE_MAPPING_KEY, FULLY_QUALIFIED_TYPE_NAME);
-		EclipseLinkOrmEntity ormContextEntity = (EclipseLinkOrmEntity) ormPersistentType.getMapping();
-		Caching ormContextCaching = ormContextEntity.getCaching();
-		XmlEntity resourceEntity = (XmlEntity) getXmlEntityMappings().getEntities().get(0);
-		
-		// check defaults
-		
-		assertEquals(null, resourceEntity.getCache());
-		assertEquals(CacheCoordinationType.SEND_OBJECT_CHANGES, ormContextCaching.getCoordinationType());
-		assertEquals(CacheCoordinationType.SEND_OBJECT_CHANGES, ormContextCaching.getDefaultCoordinationType());
-		assertEquals(null, ormContextCaching.getSpecifiedCoordinationType());
-		
-		// set context cache coordination type, check resource
-		
-		ormContextEntity.getCaching().setSpecifiedCoordinationType(CacheCoordinationType.SEND_NEW_OBJECTS_WITH_CHANGES);
-		assertEquals(org.eclipse.jpt.eclipselink.core.resource.orm.CacheCoordinationType.SEND_NEW_OBJECTS_WITH_CHANGES, resourceEntity.getCache().getCoordinationType());
-		assertEquals(CacheCoordinationType.SEND_NEW_OBJECTS_WITH_CHANGES, ormContextCaching.getCoordinationType());
-		assertEquals(CacheCoordinationType.SEND_OBJECT_CHANGES, ormContextCaching.getDefaultCoordinationType());
-		assertEquals(CacheCoordinationType.SEND_NEW_OBJECTS_WITH_CHANGES, ormContextCaching.getSpecifiedCoordinationType());
-				
-		// set context coordination type to null, check resource
-		
-		ormContextEntity.getCaching().setSpecifiedCoordinationType(null);
-		
-		assertEquals(null, resourceEntity.getCache());
-		assertEquals(CacheCoordinationType.SEND_OBJECT_CHANGES, ormContextCaching.getCoordinationType());
-		assertEquals(CacheCoordinationType.SEND_OBJECT_CHANGES, ormContextCaching.getDefaultCoordinationType());
-		assertEquals(null, ormContextCaching.getSpecifiedCoordinationType());
-	}
-
-	
-	public void testUpdateCacheSize() throws Exception {
-		createTestEntityForCaching();
-		OrmPersistentType ormPersistentType = getEntityMappings().addPersistentType(MappingKeys.ENTITY_TYPE_MAPPING_KEY, FULLY_QUALIFIED_TYPE_NAME);
-		JavaCaching javaContextCaching = ((EclipseLinkJavaEntity) ormPersistentType.getJavaPersistentType().getMapping()).getCaching();
-		EclipseLinkOrmEntity ormContextEntity = (EclipseLinkOrmEntity) ormPersistentType.getMapping();
-		Caching ormContextCaching = ormContextEntity.getCaching();
-		XmlEntity resourceEntity = (XmlEntity) getXmlEntityMappings().getEntities().get(0);
-
-
-		// check defaults
-		
-		assertEquals(null, resourceEntity.getCache());
-		assertEquals(100, javaContextCaching.getSize());
-		assertEquals(100, ormContextCaching.getSize());
-		assertEquals(100, ormContextCaching.getDefaultSize());
-		assertEquals(null, ormContextCaching.getSpecifiedSize());
-		
-		// set xml cache, check defaults
-		resourceEntity.setCache(EclipseLinkOrmFactory.eINSTANCE.createXmlCache());
-		assertEquals(null, resourceEntity.getCache().getSize());
-		assertEquals(100, javaContextCaching.getSize());
-		assertEquals(100, ormContextCaching.getSize());
-		assertEquals(100, ormContextCaching.getDefaultSize());
-		assertEquals(null, ormContextCaching.getSpecifiedSize());
-
-		
-		// set xml cache size, check settings
-		resourceEntity.getCache().setSize(new Integer(105));
-		assertEquals(new Integer(105), resourceEntity.getCache().getSize());
-		assertEquals(100, javaContextCaching.getSize());
-		assertEquals(105, ormContextCaching.getSize());
-		assertEquals(100, ormContextCaching.getDefaultSize());
-		assertEquals(new Integer(105), ormContextCaching.getSpecifiedSize());
-
-			
-		// set java cache size, check defaults
-		
-		javaContextCaching.setSpecifiedSize(new Integer(50));
-		
-		assertEquals(new Integer(105), resourceEntity.getCache().getSize());
-		assertEquals(50, javaContextCaching.getSize());
-		assertEquals(105, ormContextCaching.getSize());
-		assertEquals(50, ormContextCaching.getDefaultSize());
-		assertEquals(new Integer(105), ormContextCaching.getSpecifiedSize());
-
-		// clear xml cache size, check defaults
-		resourceEntity.getCache().setSize(null);
-
-		assertEquals(null, resourceEntity.getCache().getSize());
-		assertEquals(50, javaContextCaching.getSize());
-		assertEquals(50, ormContextCaching.getSize());
-		assertEquals(50, ormContextCaching.getDefaultSize());
-		assertEquals(null, ormContextCaching.getSpecifiedSize());
-	
-		
-		// clear xml cache, check defaults
-		resourceEntity.setCache(null);
-
-		assertEquals(null, resourceEntity.getCache());
-		assertEquals(50, javaContextCaching.getSize());
-		assertEquals(50, ormContextCaching.getSize());
-		assertEquals(50, ormContextCaching.getDefaultSize());
-		assertEquals(null, ormContextCaching.getSpecifiedSize());
-	
-		
-		// set metadataComplete to True, check defaults not from java
-
-		ormContextEntity.setSpecifiedMetadataComplete(Boolean.TRUE);
-		
-		assertEquals(null, resourceEntity.getCache());
-		assertEquals(50, javaContextCaching.getSize());
-		assertEquals(100, ormContextCaching.getSize());
-		assertEquals(100, ormContextCaching.getDefaultSize());
-		assertEquals(null, ormContextCaching.getSpecifiedSize());
-
-		ormContextEntity.setSpecifiedMetadataComplete(null);
-	}
-	
-	public void testModifyCacheSize() throws Exception {
-		createTestEntityForCaching();
-		OrmPersistentType ormPersistentType = getEntityMappings().addPersistentType(MappingKeys.ENTITY_TYPE_MAPPING_KEY, FULLY_QUALIFIED_TYPE_NAME);
-		EclipseLinkOrmEntity ormContextEntity = (EclipseLinkOrmEntity) ormPersistentType.getMapping();
-		Caching ormContextCaching = ormContextEntity.getCaching();
-		XmlEntity resourceEntity = (XmlEntity) getXmlEntityMappings().getEntities().get(0);
-		
-		// check defaults
-		
-		assertEquals(null, resourceEntity.getCache());
-		assertEquals(100, ormContextCaching.getSize());
-		assertEquals(100, ormContextCaching.getDefaultSize());
-		assertEquals(null, ormContextCaching.getSpecifiedSize());
-		
-		// set context cache size, check resource
-		
-		ormContextEntity.getCaching().setSpecifiedSize(new Integer(50));
-		assertEquals(new Integer(50), resourceEntity.getCache().getSize());
-		assertEquals(50, ormContextCaching.getSize());
-		assertEquals(100, ormContextCaching.getDefaultSize());
-		assertEquals(new Integer(50), ormContextCaching.getSpecifiedSize());
-				
-		// set context cache size to null, check resource
-		
-		ormContextEntity.getCaching().setSpecifiedSize(null);
-		
-		assertEquals(null, resourceEntity.getCache());
-		assertEquals(100, ormContextCaching.getSize());
-		assertEquals(100, ormContextCaching.getDefaultSize());
-		assertEquals(null, ormContextCaching.getSpecifiedSize());
-	}
-
-	public void testUpdateCacheAlwaysRefresh() throws Exception {
-		createTestEntityForCaching();
-		OrmPersistentType ormPersistentType = getEntityMappings().addPersistentType(MappingKeys.ENTITY_TYPE_MAPPING_KEY, FULLY_QUALIFIED_TYPE_NAME);
-		JavaCaching javaContextCaching = ((EclipseLinkJavaEntity) ormPersistentType.getJavaPersistentType().getMapping()).getCaching();
-		EclipseLinkOrmEntity ormContextEntity = (EclipseLinkOrmEntity) ormPersistentType.getMapping();
-		Caching ormContextCaching = ormContextEntity.getCaching();
-		XmlEntity resourceEntity = (XmlEntity) getXmlEntityMappings().getEntities().get(0);
-
-
-		// check defaults
-		
-		assertEquals(null, resourceEntity.getCache());
-		assertEquals(false, javaContextCaching.isAlwaysRefresh());
-		assertEquals(false, ormContextCaching.isAlwaysRefresh());
-		assertEquals(false, ormContextCaching.isDefaultAlwaysRefresh());
-		assertEquals(null, ormContextCaching.getSpecifiedAlwaysRefresh());
-		
-		// set xml cache, check defaults
-		resourceEntity.setCache(EclipseLinkOrmFactory.eINSTANCE.createXmlCache());
-		assertEquals(null, resourceEntity.getCache().getAlwaysRefresh());
-		assertEquals(false, javaContextCaching.isAlwaysRefresh());
-		assertEquals(false, ormContextCaching.isAlwaysRefresh());
-		assertEquals(false, ormContextCaching.isDefaultAlwaysRefresh());
-		assertEquals(null, ormContextCaching.getSpecifiedAlwaysRefresh());
-
-		
-		// set xml cache always refresh, check settings
-		resourceEntity.getCache().setAlwaysRefresh(Boolean.TRUE);
-		assertEquals(Boolean.TRUE, resourceEntity.getCache().getAlwaysRefresh());
-		assertEquals(false, javaContextCaching.isAlwaysRefresh());
-		assertEquals(true, ormContextCaching.isAlwaysRefresh());
-		assertEquals(false, ormContextCaching.isDefaultAlwaysRefresh());
-		assertEquals(Boolean.TRUE, ormContextCaching.getSpecifiedAlwaysRefresh());
-
-			
-		// set java cache always refresh, check defaults
-		
-		javaContextCaching.setSpecifiedAlwaysRefresh(Boolean.TRUE);
-		
-		assertEquals(Boolean.TRUE, resourceEntity.getCache().getAlwaysRefresh());
-		assertEquals(true, javaContextCaching.isAlwaysRefresh());
-		assertEquals(true, ormContextCaching.isAlwaysRefresh());
-		assertEquals(false, ormContextCaching.isDefaultAlwaysRefresh());
-		assertEquals(Boolean.TRUE, ormContextCaching.getSpecifiedAlwaysRefresh());
-
-		// set xml cache always refresh to false
-		resourceEntity.getCache().setAlwaysRefresh(Boolean.FALSE);
-		assertEquals(Boolean.FALSE, resourceEntity.getCache().getAlwaysRefresh());
-		assertEquals(true, javaContextCaching.isAlwaysRefresh());
-		assertEquals(false, ormContextCaching.isAlwaysRefresh());
-		assertEquals(false, ormContextCaching.isDefaultAlwaysRefresh());
-		assertEquals(Boolean.FALSE, ormContextCaching.getSpecifiedAlwaysRefresh());
-
-		// clear xml cache always refresh, check defaults
-		resourceEntity.getCache().setAlwaysRefresh(null);
-
-		assertEquals(null, resourceEntity.getCache().getAlwaysRefresh());
-		assertEquals(true, javaContextCaching.isAlwaysRefresh());
-		assertEquals(false, ormContextCaching.isAlwaysRefresh());
-		assertEquals(false, ormContextCaching.isDefaultAlwaysRefresh());
-		assertEquals(null, ormContextCaching.getSpecifiedAlwaysRefresh());
-	
-		
-		// clear xml cache, check defaults
-		resourceEntity.setCache(null);
-
-		assertEquals(null, resourceEntity.getCache());
-		assertEquals(true, javaContextCaching.isAlwaysRefresh());
-		assertEquals(true, ormContextCaching.isAlwaysRefresh());
-		assertEquals(true, ormContextCaching.isDefaultAlwaysRefresh());
-		assertEquals(null, ormContextCaching.getSpecifiedAlwaysRefresh());
-	
-		
-		// set metadataComplete to True, check defaults not from java
-
-		ormContextEntity.setSpecifiedMetadataComplete(Boolean.TRUE);
-		
-		assertEquals(null, resourceEntity.getCache());
-		assertEquals(true, javaContextCaching.isAlwaysRefresh());
-		assertEquals(false, ormContextCaching.isAlwaysRefresh());
-		assertEquals(false, ormContextCaching.isDefaultAlwaysRefresh());
-		assertEquals(null, ormContextCaching.getSpecifiedAlwaysRefresh());
-
-		
-		// set metadataComplete back to null, check defaults from java
-		ormContextEntity.setSpecifiedMetadataComplete(null);
-		
-		assertEquals(null, resourceEntity.getCache());
-		assertEquals(true, javaContextCaching.isAlwaysRefresh());
-		assertEquals(true, ormContextCaching.isAlwaysRefresh());
-		assertEquals(true, ormContextCaching.isDefaultAlwaysRefresh());
-		assertEquals(null, ormContextCaching.getSpecifiedAlwaysRefresh());
-	}
-	
-	public void testModifyCacheAlwaysRefresh() throws Exception {
-		createTestEntityForCaching();
-		OrmPersistentType ormPersistentType = getEntityMappings().addPersistentType(MappingKeys.ENTITY_TYPE_MAPPING_KEY, FULLY_QUALIFIED_TYPE_NAME);
-		EclipseLinkOrmEntity ormContextEntity = (EclipseLinkOrmEntity) ormPersistentType.getMapping();
-		Caching ormContextCaching = ormContextEntity.getCaching();
-		XmlEntity resourceEntity = (XmlEntity) getXmlEntityMappings().getEntities().get(0);
-		
-		// check defaults
-		
-		assertEquals(null, resourceEntity.getCache());
-		assertEquals(false, ormContextCaching.isAlwaysRefresh());
-		assertEquals(false, ormContextCaching.isDefaultAlwaysRefresh());
-		assertEquals(null, ormContextCaching.getSpecifiedAlwaysRefresh());
-		
-		// set context cache size, check resource
-		
-		ormContextEntity.getCaching().setSpecifiedAlwaysRefresh(Boolean.TRUE);
-		assertEquals(Boolean.TRUE, resourceEntity.getCache().getAlwaysRefresh());
-		assertEquals(true, ormContextCaching.isAlwaysRefresh());
-		assertEquals(false, ormContextCaching.isDefaultAlwaysRefresh());
-		assertEquals(Boolean.TRUE, ormContextCaching.getSpecifiedAlwaysRefresh());
-				
-		// set context cache size to null, check resource
-		
-		ormContextEntity.getCaching().setSpecifiedAlwaysRefresh(null);
-		
-		assertEquals(null, resourceEntity.getCache());
-		assertEquals(false, ormContextCaching.isAlwaysRefresh());
-		assertEquals(false, ormContextCaching.isDefaultAlwaysRefresh());
-		assertEquals(null, ormContextCaching.getSpecifiedAlwaysRefresh());
-	}
-	
-	public void testUpdateCacheRefreshOnlyIfNewer() throws Exception {
-		createTestEntityForCaching();
-		OrmPersistentType ormPersistentType = getEntityMappings().addPersistentType(MappingKeys.ENTITY_TYPE_MAPPING_KEY, FULLY_QUALIFIED_TYPE_NAME);
-		JavaCaching javaContextCaching = ((EclipseLinkJavaEntity) ormPersistentType.getJavaPersistentType().getMapping()).getCaching();
-		EclipseLinkOrmEntity ormContextEntity = (EclipseLinkOrmEntity) ormPersistentType.getMapping();
-		Caching ormContextCaching = ormContextEntity.getCaching();
-		XmlEntity resourceEntity = (XmlEntity) getXmlEntityMappings().getEntities().get(0);
-
-
-		// check defaults
-		
-		assertEquals(null, resourceEntity.getCache());
-		assertEquals(false, javaContextCaching.isRefreshOnlyIfNewer());
-		assertEquals(false, ormContextCaching.isRefreshOnlyIfNewer());
-		assertEquals(false, ormContextCaching.isDefaultRefreshOnlyIfNewer());
-		assertEquals(null, ormContextCaching.getSpecifiedRefreshOnlyIfNewer());
-		
-		// set xml cache, check defaults
-		resourceEntity.setCache(EclipseLinkOrmFactory.eINSTANCE.createXmlCache());
-		assertEquals(null, resourceEntity.getCache().getRefreshOnlyIfNewer());
-		assertEquals(false, javaContextCaching.isRefreshOnlyIfNewer());
-		assertEquals(false, ormContextCaching.isRefreshOnlyIfNewer());
-		assertEquals(false, ormContextCaching.isDefaultRefreshOnlyIfNewer());
-		assertEquals(null, ormContextCaching.getSpecifiedRefreshOnlyIfNewer());
-
-		
-		// set xml cache size, check settings
-		resourceEntity.getCache().setRefreshOnlyIfNewer(Boolean.TRUE);
-		assertEquals(Boolean.TRUE, resourceEntity.getCache().getRefreshOnlyIfNewer());
-		assertEquals(false, javaContextCaching.isRefreshOnlyIfNewer());
-		assertEquals(true, ormContextCaching.isRefreshOnlyIfNewer());
-		assertEquals(false, ormContextCaching.isDefaultRefreshOnlyIfNewer());
-		assertEquals(Boolean.TRUE, ormContextCaching.getSpecifiedRefreshOnlyIfNewer());
-
-			
-		// set java cache size, check defaults
-		
-		javaContextCaching.setSpecifiedRefreshOnlyIfNewer(Boolean.TRUE);
-		
-		assertEquals(Boolean.TRUE, resourceEntity.getCache().getRefreshOnlyIfNewer());
-		assertEquals(true, javaContextCaching.isRefreshOnlyIfNewer());
-		assertEquals(true, ormContextCaching.isRefreshOnlyIfNewer());
-		assertEquals(false, ormContextCaching.isDefaultRefreshOnlyIfNewer());
-		assertEquals(Boolean.TRUE, ormContextCaching.getSpecifiedRefreshOnlyIfNewer());
-
-		// set xml cache always refresh to false
-		resourceEntity.getCache().setRefreshOnlyIfNewer(Boolean.FALSE);
-		assertEquals(Boolean.FALSE, resourceEntity.getCache().getRefreshOnlyIfNewer());
-		assertEquals(true, javaContextCaching.isRefreshOnlyIfNewer());
-		assertEquals(false, ormContextCaching.isRefreshOnlyIfNewer());
-		assertEquals(false, ormContextCaching.isDefaultRefreshOnlyIfNewer());
-		assertEquals(Boolean.FALSE, ormContextCaching.getSpecifiedRefreshOnlyIfNewer());
-
-		// clear xml cache always refresh, check defaults
-		resourceEntity.getCache().setRefreshOnlyIfNewer(null);
-
-		assertEquals(null, resourceEntity.getCache().getRefreshOnlyIfNewer());
-		assertEquals(true, javaContextCaching.isRefreshOnlyIfNewer());
-		assertEquals(false, ormContextCaching.isRefreshOnlyIfNewer());
-		assertEquals(false, ormContextCaching.isDefaultRefreshOnlyIfNewer());
-		assertEquals(null, ormContextCaching.getSpecifiedRefreshOnlyIfNewer());
-	
-		
-		// clear xml cache, check defaults
-		resourceEntity.setCache(null);
-
-		assertEquals(null, resourceEntity.getCache());
-		assertEquals(true, javaContextCaching.isRefreshOnlyIfNewer());
-		assertEquals(true, ormContextCaching.isRefreshOnlyIfNewer());
-		assertEquals(true, ormContextCaching.isDefaultRefreshOnlyIfNewer());
-		assertEquals(null, ormContextCaching.getSpecifiedRefreshOnlyIfNewer());
-	
-		
-		// set metadataComplete to True, check defaults not from java
-
-		ormContextEntity.setSpecifiedMetadataComplete(Boolean.TRUE);
-		
-		assertEquals(null, resourceEntity.getCache());
-		assertEquals(true, javaContextCaching.isRefreshOnlyIfNewer());
-		assertEquals(false, ormContextCaching.isRefreshOnlyIfNewer());
-		assertEquals(false, ormContextCaching.isDefaultRefreshOnlyIfNewer());
-		assertEquals(null, ormContextCaching.getSpecifiedRefreshOnlyIfNewer());
-
-		
-		// set metadataComplete back to null, check defaults from java
-		ormContextEntity.setSpecifiedMetadataComplete(null);
-		
-		assertEquals(null, resourceEntity.getCache());
-		assertEquals(true, javaContextCaching.isRefreshOnlyIfNewer());
-		assertEquals(true, ormContextCaching.isRefreshOnlyIfNewer());
-		assertEquals(true, ormContextCaching.isDefaultRefreshOnlyIfNewer());
-		assertEquals(null, ormContextCaching.getSpecifiedRefreshOnlyIfNewer());
-	}
-	
-	public void testModifyCacheRefreshOnlyIfNewer() throws Exception {
-		createTestEntityForCaching();
-		OrmPersistentType ormPersistentType = getEntityMappings().addPersistentType(MappingKeys.ENTITY_TYPE_MAPPING_KEY, FULLY_QUALIFIED_TYPE_NAME);
-		EclipseLinkOrmEntity ormContextEntity = (EclipseLinkOrmEntity) ormPersistentType.getMapping();
-		Caching ormContextCaching = ormContextEntity.getCaching();
-		XmlEntity resourceEntity = (XmlEntity) getXmlEntityMappings().getEntities().get(0);
-		
-		// check defaults
-		
-		assertEquals(null, resourceEntity.getCache());
-		assertEquals(false, ormContextCaching.isRefreshOnlyIfNewer());
-		assertEquals(false, ormContextCaching.isDefaultRefreshOnlyIfNewer());
-		assertEquals(null, ormContextCaching.getSpecifiedRefreshOnlyIfNewer());
-		
-		// set context cache size, check resource
-		
-		ormContextEntity.getCaching().setSpecifiedRefreshOnlyIfNewer(Boolean.TRUE);
-		assertEquals(Boolean.TRUE, resourceEntity.getCache().getRefreshOnlyIfNewer());
-		assertEquals(true, ormContextCaching.isRefreshOnlyIfNewer());
-		assertEquals(false, ormContextCaching.isDefaultRefreshOnlyIfNewer());
-		assertEquals(Boolean.TRUE, ormContextCaching.getSpecifiedRefreshOnlyIfNewer());
-				
-		// set context cache size to null, check resource
-		
-		ormContextEntity.getCaching().setSpecifiedRefreshOnlyIfNewer(null);
-		
-		assertEquals(null, resourceEntity.getCache());
-		assertEquals(false, ormContextCaching.isRefreshOnlyIfNewer());
-		assertEquals(false, ormContextCaching.isDefaultRefreshOnlyIfNewer());
-		assertEquals(null, ormContextCaching.getSpecifiedRefreshOnlyIfNewer());
-	}
-	
-	public void testUpdateCacheDisableHits() throws Exception {
-		createTestEntityForCaching();
-		OrmPersistentType ormPersistentType = getEntityMappings().addPersistentType(MappingKeys.ENTITY_TYPE_MAPPING_KEY, FULLY_QUALIFIED_TYPE_NAME);
-		JavaCaching javaContextCaching = ((EclipseLinkJavaEntity) ormPersistentType.getJavaPersistentType().getMapping()).getCaching();
-		EclipseLinkOrmEntity ormContextEntity = (EclipseLinkOrmEntity) ormPersistentType.getMapping();
-		Caching ormContextCaching = ormContextEntity.getCaching();
-		XmlEntity resourceEntity = (XmlEntity) getXmlEntityMappings().getEntities().get(0);
-
-
-		// check defaults
-		
-		assertEquals(null, resourceEntity.getCache());
-		assertEquals(false, javaContextCaching.isDisableHits());
-		assertEquals(false, ormContextCaching.isDisableHits());
-		assertEquals(false, ormContextCaching.isDefaultDisableHits());
-		assertEquals(null, ormContextCaching.getSpecifiedDisableHits());
-		
-		// set xml cache, check defaults
-		resourceEntity.setCache(EclipseLinkOrmFactory.eINSTANCE.createXmlCache());
-		assertEquals(null, resourceEntity.getCache().getDisableHits());
-		assertEquals(false, javaContextCaching.isDisableHits());
-		assertEquals(false, ormContextCaching.isDisableHits());
-		assertEquals(false, ormContextCaching.isDefaultDisableHits());
-		assertEquals(null, ormContextCaching.getSpecifiedDisableHits());
-
-		
-		// set xml cache size, check settings
-		resourceEntity.getCache().setDisableHits(Boolean.TRUE);
-		assertEquals(Boolean.TRUE, resourceEntity.getCache().getDisableHits());
-		assertEquals(false, javaContextCaching.isDisableHits());
-		assertEquals(true, ormContextCaching.isDisableHits());
-		assertEquals(false, ormContextCaching.isDefaultDisableHits());
-		assertEquals(Boolean.TRUE, ormContextCaching.getSpecifiedDisableHits());
-
-			
-		// set java cache size, check defaults
-		
-		javaContextCaching.setSpecifiedDisableHits(Boolean.TRUE);
-		
-		assertEquals(Boolean.TRUE, resourceEntity.getCache().getDisableHits());
-		assertEquals(true, javaContextCaching.isDisableHits());
-		assertEquals(true, ormContextCaching.isDisableHits());
-		assertEquals(false, ormContextCaching.isDefaultDisableHits());
-		assertEquals(Boolean.TRUE, ormContextCaching.getSpecifiedDisableHits());
-
-		// set xml cache always refresh to false
-		resourceEntity.getCache().setDisableHits(Boolean.FALSE);
-		assertEquals(Boolean.FALSE, resourceEntity.getCache().getDisableHits());
-		assertEquals(true, javaContextCaching.isDisableHits());
-		assertEquals(false, ormContextCaching.isDisableHits());
-		assertEquals(false, ormContextCaching.isDefaultDisableHits());
-		assertEquals(Boolean.FALSE, ormContextCaching.getSpecifiedDisableHits());
-
-		// clear xml cache always refresh, check defaults
-		resourceEntity.getCache().setDisableHits(null);
-
-		assertEquals(null, resourceEntity.getCache().getDisableHits());
-		assertEquals(true, javaContextCaching.isDisableHits());
-		assertEquals(false, ormContextCaching.isDisableHits());
-		assertEquals(false, ormContextCaching.isDefaultDisableHits());
-		assertEquals(null, ormContextCaching.getSpecifiedDisableHits());
-	
-		
-		// clear xml cache, check defaults
-		resourceEntity.setCache(null);
-
-		assertEquals(null, resourceEntity.getCache());
-		assertEquals(true, javaContextCaching.isDisableHits());
-		assertEquals(true, ormContextCaching.isDisableHits());
-		assertEquals(true, ormContextCaching.isDefaultDisableHits());
-		assertEquals(null, ormContextCaching.getSpecifiedDisableHits());
-	
-		
-		// set metadataComplete to True, check defaults not from java
-
-		ormContextEntity.setSpecifiedMetadataComplete(Boolean.TRUE);
-		
-		assertEquals(null, resourceEntity.getCache());
-		assertEquals(true, javaContextCaching.isDisableHits());
-		assertEquals(false, ormContextCaching.isDisableHits());
-		assertEquals(false, ormContextCaching.isDefaultDisableHits());
-		assertEquals(null, ormContextCaching.getSpecifiedDisableHits());
-
-		
-		// set metadataComplete back to null, check defaults from java
-		ormContextEntity.setSpecifiedMetadataComplete(null);
-		
-		assertEquals(null, resourceEntity.getCache());
-		assertEquals(true, javaContextCaching.isDisableHits());
-		assertEquals(true, ormContextCaching.isDisableHits());
-		assertEquals(true, ormContextCaching.isDefaultDisableHits());
-		assertEquals(null, ormContextCaching.getSpecifiedDisableHits());
-	}
-	
-	public void testModifyCacheDisableHits() throws Exception {
-		createTestEntityForCaching();
-		OrmPersistentType ormPersistentType = getEntityMappings().addPersistentType(MappingKeys.ENTITY_TYPE_MAPPING_KEY, FULLY_QUALIFIED_TYPE_NAME);
-		EclipseLinkOrmEntity ormContextEntity = (EclipseLinkOrmEntity) ormPersistentType.getMapping();
-		Caching ormContextCaching = ormContextEntity.getCaching();
-		XmlEntity resourceEntity = (XmlEntity) getXmlEntityMappings().getEntities().get(0);
-		
-		// check defaults
-		
-		assertEquals(null, resourceEntity.getCache());
-		assertEquals(false, ormContextCaching.isDisableHits());
-		assertEquals(false, ormContextCaching.isDefaultDisableHits());
-		assertEquals(null, ormContextCaching.getSpecifiedDisableHits());
-		
-		// set context cache size, check resource
-		
-		ormContextEntity.getCaching().setSpecifiedDisableHits(Boolean.TRUE);
-		assertEquals(Boolean.TRUE, resourceEntity.getCache().getDisableHits());
-		assertEquals(true, ormContextCaching.isDisableHits());
-		assertEquals(false, ormContextCaching.isDefaultDisableHits());
-		assertEquals(Boolean.TRUE, ormContextCaching.getSpecifiedDisableHits());
-				
-		// set context cache size to null, check resource
-		
-		ormContextEntity.getCaching().setSpecifiedDisableHits(null);
-		
-		assertEquals(null, resourceEntity.getCache());
-		assertEquals(false, ormContextCaching.isDisableHits());
-		assertEquals(false, ormContextCaching.isDefaultDisableHits());
-		assertEquals(null, ormContextCaching.getSpecifiedDisableHits());
-	}
-	
-	public void testUpdateCacheShared() throws Exception {
-		createTestEntityForCaching();
-		OrmPersistentType ormPersistentType = getEntityMappings().addPersistentType(MappingKeys.ENTITY_TYPE_MAPPING_KEY, FULLY_QUALIFIED_TYPE_NAME);
-		JavaCaching javaContextCaching = ((EclipseLinkJavaEntity) ormPersistentType.getJavaPersistentType().getMapping()).getCaching();
-		EclipseLinkOrmEntity ormContextEntity = (EclipseLinkOrmEntity) ormPersistentType.getMapping();
-		Caching ormContextCaching = ormContextEntity.getCaching();
-		XmlEntity resourceEntity = (XmlEntity) getXmlEntityMappings().getEntities().get(0);
-
-
-		// check defaults
-		
-		assertEquals(null, resourceEntity.getCache());
-		assertEquals(true, javaContextCaching.isShared());
-		assertEquals(true, ormContextCaching.isShared());
-		assertEquals(true, ormContextCaching.isDefaultShared());
-		assertEquals(null, ormContextCaching.getSpecifiedShared());
-		
-		// set xml cache, check defaults
-		resourceEntity.setCache(EclipseLinkOrmFactory.eINSTANCE.createXmlCache());
-		assertEquals(null, resourceEntity.getCache().getShared());
-		assertEquals(true, javaContextCaching.isShared());
-		assertEquals(true, ormContextCaching.isShared());
-		assertEquals(true, ormContextCaching.isDefaultShared());
-		assertEquals(null, ormContextCaching.getSpecifiedShared());
-
-		
-		// set xml cache size, check settings
-		resourceEntity.getCache().setShared(Boolean.FALSE);
-		assertEquals(Boolean.FALSE, resourceEntity.getCache().getShared());
-		assertEquals(true, javaContextCaching.isShared());
-		assertEquals(false, ormContextCaching.isShared());
-		assertEquals(true, ormContextCaching.isDefaultShared());
-		assertEquals(Boolean.FALSE, ormContextCaching.getSpecifiedShared());
-
-			
-		// set java cache size, check defaults
-		
-		javaContextCaching.setSpecifiedShared(Boolean.FALSE);
-		
-		assertEquals(Boolean.FALSE, resourceEntity.getCache().getShared());
-		assertEquals(false, javaContextCaching.isShared());
-		assertEquals(false, ormContextCaching.isShared());
-		assertEquals(true, ormContextCaching.isDefaultShared());
-		assertEquals(Boolean.FALSE, ormContextCaching.getSpecifiedShared());
-
-		// set xml cache always refresh to false
-		resourceEntity.getCache().setShared(Boolean.TRUE);
-		assertEquals(Boolean.TRUE, resourceEntity.getCache().getShared());
-		assertEquals(false, javaContextCaching.isShared());
-		assertEquals(true, ormContextCaching.isShared());
-		assertEquals(true, ormContextCaching.isDefaultShared());
-		assertEquals(Boolean.TRUE, ormContextCaching.getSpecifiedShared());
-
-		// clear xml cache always refresh, check defaults
-		resourceEntity.getCache().setShared(null);
-
-		assertEquals(null, resourceEntity.getCache().getShared());
-		assertEquals(false, javaContextCaching.isShared());
-		assertEquals(true, ormContextCaching.isShared());
-		assertEquals(true, ormContextCaching.isDefaultShared());
-		assertEquals(null, ormContextCaching.getSpecifiedShared());
-	
-		
-		// clear xml cache, check defaults
-		resourceEntity.setCache(null);
-
-		assertEquals(null, resourceEntity.getCache());
-		assertEquals(false, javaContextCaching.isShared());
-		assertEquals(false, ormContextCaching.isShared());
-		assertEquals(false, ormContextCaching.isDefaultShared());
-		assertEquals(null, ormContextCaching.getSpecifiedShared());
-	
-		
-		// set metadataComplete to True, check defaults not from java
-
-		ormContextEntity.setSpecifiedMetadataComplete(Boolean.TRUE);
-		
-		assertEquals(null, resourceEntity.getCache());
-		assertEquals(false, javaContextCaching.isShared());
-		assertEquals(true, ormContextCaching.isShared());
-		assertEquals(true, ormContextCaching.isDefaultShared());
-		assertEquals(null, ormContextCaching.getSpecifiedShared());
-
-		
-		// set metadataComplete back to null, check defaults from java
-		ormContextEntity.setSpecifiedMetadataComplete(null);
-		
-		assertEquals(null, resourceEntity.getCache());
-		assertEquals(false, javaContextCaching.isShared());
-		assertEquals(false, ormContextCaching.isShared());
-		assertEquals(false, ormContextCaching.isDefaultShared());
-		assertEquals(null, ormContextCaching.getSpecifiedShared());
-	}
-	
-	public void testModifyCacheShared() throws Exception {
-		createTestEntityForCaching();
-		OrmPersistentType ormPersistentType = getEntityMappings().addPersistentType(MappingKeys.ENTITY_TYPE_MAPPING_KEY, FULLY_QUALIFIED_TYPE_NAME);
-		EclipseLinkOrmEntity ormContextEntity = (EclipseLinkOrmEntity) ormPersistentType.getMapping();
-		Caching ormContextCaching = ormContextEntity.getCaching();
-		XmlEntity resourceEntity = (XmlEntity) getXmlEntityMappings().getEntities().get(0);
-		
-		// check defaults
-		
-		assertEquals(null, resourceEntity.getCache());
-		assertEquals(true, ormContextCaching.isShared());
-		assertEquals(true, ormContextCaching.isDefaultShared());
-		assertEquals(null, ormContextCaching.getSpecifiedShared());
-		
-		// set context cache size, check resource
-		
-		ormContextEntity.getCaching().setSpecifiedShared(Boolean.FALSE);
-		assertEquals(Boolean.FALSE, resourceEntity.getCache().getShared());
-		assertEquals(false, ormContextCaching.isShared());
-		assertEquals(true, ormContextCaching.isDefaultShared());
-		assertEquals(Boolean.FALSE, ormContextCaching.getSpecifiedShared());
-				
-		// set context cache size to null, check resource
-		
-		ormContextEntity.getCaching().setSpecifiedShared(null);
-		
-		assertEquals(null, resourceEntity.getCache());
-		assertEquals(true, ormContextCaching.isShared());
-		assertEquals(true, ormContextCaching.isDefaultShared());
-		assertEquals(null, ormContextCaching.getSpecifiedShared());
-	}
-	public void testSetSpecifiedSharedFalseUnsetsOtherCacheSettings() throws Exception {
-		createTestEntityForCaching();
-		OrmPersistentType ormPersistentType = getEntityMappings().addPersistentType(MappingKeys.ENTITY_TYPE_MAPPING_KEY, FULLY_QUALIFIED_TYPE_NAME);
-		EclipseLinkOrmEntity ormContextEntity = (EclipseLinkOrmEntity) ormPersistentType.getMapping();
-		Caching ormContextCaching = ormContextEntity.getCaching();
-		XmlEntity resourceEntity = (XmlEntity) getXmlEntityMappings().getEntities().get(0);
-		
-		ormContextCaching.setSpecifiedType(CacheType.HARD_WEAK);
-		ormContextCaching.setSpecifiedSize(Integer.valueOf(500));
-		ormContextCaching.setSpecifiedAlwaysRefresh(Boolean.FALSE);
-		ormContextCaching.setSpecifiedRefreshOnlyIfNewer(Boolean.FALSE);
-		ormContextCaching.setSpecifiedDisableHits(Boolean.FALSE);
-		ormContextCaching.setSpecifiedCoordinationType(CacheCoordinationType.INVALIDATE_CHANGED_OBJECTS);
-		ormContextCaching.setSpecifiedExistenceType(ExistenceType.ASSUME_NON_EXISTENCE);
-		ormContextCaching.setExpiry(Integer.valueOf(8000));
-		
-		ormContextCaching.setSpecifiedShared(Boolean.FALSE);
-		
-		assertEquals(null, ormContextCaching.getSpecifiedType());
-		assertEquals(null, ormContextCaching.getSpecifiedSize());
-		assertEquals(null, ormContextCaching.getSpecifiedAlwaysRefresh());
-		assertEquals(null, ormContextCaching.getSpecifiedRefreshOnlyIfNewer());
-		assertEquals(null, ormContextCaching.getSpecifiedDisableHits());
-		assertEquals(null, ormContextCaching.getSpecifiedCoordinationType());
-		assertEquals(null, ormContextCaching.getExpiry());
-		
-		
-		//existence checking is the only thing that isn't unset when shared is set to false
-		assertEquals(ExistenceType.ASSUME_NON_EXISTENCE, ormContextCaching.getSpecifiedExistenceType());
-		
-		ormContextCaching.setSpecifiedShared(null);
-		ExpiryTimeOfDay timeOfDayExpiry = ormContextCaching.addExpiryTimeOfDay();
-		timeOfDayExpiry.setHour(Integer.valueOf(5));
-		
-		ormContextCaching.setSpecifiedShared(Boolean.FALSE);
-		assertNull(ormContextCaching.getExpiryTimeOfDay());		
-		assertEquals(Boolean.FALSE, resourceEntity.getCache().getShared());
-		assertNull(resourceEntity.getCache().getExpiryTimeOfDay());
-	}
-
-	public void testUpdateExistenceChecking() throws Exception {
-		createTestEntityForCaching();
-		OrmPersistentType ormPersistentType = getEntityMappings().addPersistentType(MappingKeys.ENTITY_TYPE_MAPPING_KEY, FULLY_QUALIFIED_TYPE_NAME);
-		JavaCaching javaContextCaching = ((EclipseLinkJavaEntity) ormPersistentType.getJavaPersistentType().getMapping()).getCaching();
-		EclipseLinkOrmEntity ormContextEntity = (EclipseLinkOrmEntity) ormPersistentType.getMapping();
-		Caching ormContextCaching = ormContextEntity.getCaching();
-		XmlEntity resourceEntity = (XmlEntity) getXmlEntityMappings().getEntities().get(0);
-
-
-		// check defaults
-		
-		assertEquals(null, resourceEntity.getExistenceChecking());
-		assertEquals(ExistenceType.CHECK_DATABASE, javaContextCaching.getExistenceType());
-		assertEquals(ExistenceType.CHECK_DATABASE, ormContextCaching.getExistenceType());
-		assertEquals(ExistenceType.CHECK_DATABASE, ormContextCaching.getDefaultExistenceType());
-		assertEquals(null, ormContextCaching.getSpecifiedExistenceType());
-		
-		// set xml existence checking, check settings
-		resourceEntity.setExistenceChecking(org.eclipse.jpt.eclipselink.core.resource.orm.ExistenceType.ASSUME_EXISTENCE);
-		assertEquals(org.eclipse.jpt.eclipselink.core.resource.orm.ExistenceType.ASSUME_EXISTENCE, resourceEntity.getExistenceChecking());
-		assertEquals(ExistenceType.CHECK_DATABASE, javaContextCaching.getExistenceType());
-		assertEquals(ExistenceType.ASSUME_EXISTENCE, ormContextCaching.getExistenceType());
-		assertEquals(ExistenceType.CHECK_DATABASE, ormContextCaching.getDefaultExistenceType());
-		assertEquals(ExistenceType.ASSUME_EXISTENCE, ormContextCaching.getSpecifiedExistenceType());
-
-			
-		// set java cache existence checking, check defaults
-		
-		javaContextCaching.setSpecifiedExistenceType(ExistenceType.ASSUME_NON_EXISTENCE);
-		
-		assertEquals(org.eclipse.jpt.eclipselink.core.resource.orm.ExistenceType.ASSUME_EXISTENCE, resourceEntity.getExistenceChecking());
-		assertEquals(ExistenceType.ASSUME_NON_EXISTENCE, javaContextCaching.getExistenceType());
-		assertEquals(ExistenceType.ASSUME_EXISTENCE, ormContextCaching.getExistenceType());
-		assertEquals(ExistenceType.ASSUME_NON_EXISTENCE, ormContextCaching.getDefaultExistenceType());
-		assertEquals(ExistenceType.ASSUME_EXISTENCE, ormContextCaching.getSpecifiedExistenceType());
-
-		// clear xml existence checking, check defaults
-		resourceEntity.setExistenceChecking(null);
-
-		assertEquals(null, resourceEntity.getExistenceChecking());
-		assertEquals(ExistenceType.ASSUME_NON_EXISTENCE, javaContextCaching.getExistenceType());
-		assertEquals(ExistenceType.ASSUME_NON_EXISTENCE, ormContextCaching.getExistenceType());
-		assertEquals(ExistenceType.ASSUME_NON_EXISTENCE, ormContextCaching.getDefaultExistenceType());
-		assertEquals(null, ormContextCaching.getSpecifiedExistenceType());	
-		
-		// set metadataComplete to True, check defaults not from java
-
-		ormContextEntity.setSpecifiedMetadataComplete(Boolean.TRUE);
-		
-		assertEquals(null, resourceEntity.getExistenceChecking());
-		assertEquals(ExistenceType.ASSUME_NON_EXISTENCE, javaContextCaching.getExistenceType());
-		assertEquals(ExistenceType.CHECK_DATABASE, ormContextCaching.getExistenceType());
-		assertEquals(ExistenceType.CHECK_DATABASE, ormContextCaching.getDefaultExistenceType());
-		assertEquals(null, ormContextCaching.getSpecifiedExistenceType());
-
-		ormContextEntity.setSpecifiedMetadataComplete(null);
-	}
-	
-	public void testModifyExistenceChecking() throws Exception {
-		createTestEntityForCaching();
-		OrmPersistentType ormPersistentType = getEntityMappings().addPersistentType(MappingKeys.ENTITY_TYPE_MAPPING_KEY, FULLY_QUALIFIED_TYPE_NAME);
-		EclipseLinkOrmEntity ormContextEntity = (EclipseLinkOrmEntity) ormPersistentType.getMapping();
-		Caching ormContextCaching = ormContextEntity.getCaching();
-		XmlEntity resourceEntity = (XmlEntity) getXmlEntityMappings().getEntities().get(0);
-		
-		// check defaults
-		
-		assertEquals(null, resourceEntity.getExistenceChecking());
-		assertEquals(ExistenceType.CHECK_DATABASE, ormContextCaching.getExistenceType());
-		assertEquals(ExistenceType.CHECK_DATABASE, ormContextCaching.getDefaultExistenceType());
-		assertEquals(null, ormContextCaching.getSpecifiedExistenceType());
-		
-		// set context cache existence checking, check resource
-		
-		ormContextEntity.getCaching().setSpecifiedExistenceType(ExistenceType.ASSUME_EXISTENCE);
-		assertEquals(org.eclipse.jpt.eclipselink.core.resource.orm.ExistenceType.ASSUME_EXISTENCE, resourceEntity.getExistenceChecking());
-		assertEquals(ExistenceType.ASSUME_EXISTENCE, ormContextCaching.getExistenceType());
-		assertEquals(ExistenceType.CHECK_DATABASE, ormContextCaching.getDefaultExistenceType());
-		assertEquals(ExistenceType.ASSUME_EXISTENCE, ormContextCaching.getSpecifiedExistenceType());
-				
-		// set context existence checking to null, check resource
-		
-		ormContextEntity.getCaching().setSpecifiedExistenceType(null);
-		
-		assertEquals(null, resourceEntity.getExistenceChecking());
-		assertEquals(ExistenceType.CHECK_DATABASE, ormContextCaching.getExistenceType());
-		assertEquals(ExistenceType.CHECK_DATABASE, ormContextCaching.getDefaultExistenceType());
-		assertEquals(null, ormContextCaching.getSpecifiedExistenceType());
-	}
-	
-	public void testUpdateCacheExpiry() throws Exception {
-		createTestEntityForCaching();
-		OrmPersistentType ormPersistentType = getEntityMappings().addPersistentType(MappingKeys.ENTITY_TYPE_MAPPING_KEY, FULLY_QUALIFIED_TYPE_NAME);
-		JavaCaching javaContextCaching = ((EclipseLinkJavaEntity) ormPersistentType.getJavaPersistentType().getMapping()).getCaching();
-		EclipseLinkOrmEntity ormContextEntity = (EclipseLinkOrmEntity) ormPersistentType.getMapping();
-		Caching ormContextCaching = ormContextEntity.getCaching();
-		XmlEntity resourceEntity = (XmlEntity) getXmlEntityMappings().getEntities().get(0);
-
-
-		// check defaults
-		
-		assertEquals(null, resourceEntity.getCache());
-		assertEquals(null, javaContextCaching.getExpiry());
-		assertEquals(null, ormContextCaching.getExpiry());
-		
-		// set xml cache, check defaults
-		resourceEntity.setCache(EclipseLinkOrmFactory.eINSTANCE.createXmlCache());
-		assertEquals(null, resourceEntity.getCache().getExpiry());
-		assertEquals(null, javaContextCaching.getExpiry());
-		assertEquals(null, ormContextCaching.getExpiry());
-
-		
-		// set xml cache expiry, check settings
-		resourceEntity.getCache().setExpiry(new Integer(45));
-		assertEquals(new Integer(45), resourceEntity.getCache().getExpiry());
-		assertEquals(null, javaContextCaching.getExpiry());
-		assertEquals(new Integer(45), ormContextCaching.getExpiry());
-
-			
-		// set java cache expiry, check defaults
-		
-		javaContextCaching.setExpiry(new Integer(55));
-		
-		assertEquals(new Integer(45), resourceEntity.getCache().getExpiry());
-		assertEquals(new Integer(55), javaContextCaching.getExpiry());
-		assertEquals(new Integer(45), ormContextCaching.getExpiry());
-
-		// clear xml cache expiry to null, check defaults
-		resourceEntity.getCache().setExpiry(null);
-
-		assertEquals(null, resourceEntity.getCache().getExpiry());
-		assertEquals(new Integer(55), javaContextCaching.getExpiry());
-		assertEquals(null, ormContextCaching.getExpiry());
-	
-		
-		// clear xml cache, check defaults
-		resourceEntity.setCache(null);
-
-		assertEquals(null, resourceEntity.getCache());
-		assertEquals(new Integer(55), javaContextCaching.getExpiry());
-		assertEquals(null, ormContextCaching.getExpiry());
-	
-		
-		// set metadataComplete to True, check defaults not from java
-
-		ormContextEntity.setSpecifiedMetadataComplete(Boolean.TRUE);
-		
-		assertEquals(null, resourceEntity.getCache());
-		assertEquals(new Integer(55), javaContextCaching.getExpiry());
-		assertEquals(null, ormContextCaching.getExpiry());
-
-		
-		// set metadataComplete back to null, check defaults from java
-		ormContextEntity.setSpecifiedMetadataComplete(null);
-		
-		assertEquals(null, resourceEntity.getCache());
-		assertEquals(new Integer(55), javaContextCaching.getExpiry());
-		assertEquals(null, ormContextCaching.getExpiry());
-	}
-	
-	public void testModifyCacheExpiry() throws Exception {
-		createTestEntityForCaching();
-		OrmPersistentType ormPersistentType = getEntityMappings().addPersistentType(MappingKeys.ENTITY_TYPE_MAPPING_KEY, FULLY_QUALIFIED_TYPE_NAME);
-		EclipseLinkOrmEntity ormContextEntity = (EclipseLinkOrmEntity) ormPersistentType.getMapping();
-		Caching ormContextCaching = ormContextEntity.getCaching();
-		XmlEntity resourceEntity = (XmlEntity) getXmlEntityMappings().getEntities().get(0);
-		
-		// check defaults
-		
-		assertEquals(null, resourceEntity.getCache());
-		assertEquals(null, ormContextCaching.getExpiry());
-		
-		// set context cache expiry, check resource
-		
-		ormContextEntity.getCaching().setExpiry(new Integer(60));
-		assertEquals(new Integer(60), resourceEntity.getCache().getExpiry());
-		assertEquals(new Integer(60), ormContextCaching.getExpiry());
-				
-		// set context cache size to null, check resource
-		
-		ormContextEntity.getCaching().setExpiry(null);
-		
-		assertEquals(null, resourceEntity.getCache());
-		assertEquals(null, ormContextCaching.getExpiry());
-	}
-	
-	public void testUpdateCacheExpiryTimeOfDay() throws Exception {
-		createTestEntityForCaching();
-		OrmPersistentType ormPersistentType = getEntityMappings().addPersistentType(MappingKeys.ENTITY_TYPE_MAPPING_KEY, FULLY_QUALIFIED_TYPE_NAME);
-		JavaCaching javaContextCaching = ((EclipseLinkJavaEntity) ormPersistentType.getJavaPersistentType().getMapping()).getCaching();
-		EclipseLinkOrmEntity ormContextEntity = (EclipseLinkOrmEntity) ormPersistentType.getMapping();
-		Caching ormContextCaching = ormContextEntity.getCaching();
-		XmlEntity resourceEntity = (XmlEntity) getXmlEntityMappings().getEntities().get(0);
-
-
-		// check defaults
-		
-		assertEquals(null, resourceEntity.getCache());
-		assertEquals(null, javaContextCaching.getExpiryTimeOfDay());
-		assertEquals(null, ormContextCaching.getExpiryTimeOfDay());
-		
-		// set xml cache, check defaults
-		resourceEntity.setCache(EclipseLinkOrmFactory.eINSTANCE.createXmlCache());
-		assertEquals(null, resourceEntity.getCache().getExpiryTimeOfDay());
-		assertEquals(null, javaContextCaching.getExpiryTimeOfDay());
-		assertEquals(null, ormContextCaching.getExpiryTimeOfDay());
-
-		
-		// set xml cache expiry, check settings
-		resourceEntity.getCache().setExpiryTimeOfDay(EclipseLinkOrmFactory.eINSTANCE.createXmlTimeOfDay());
-		resourceEntity.getCache().getExpiryTimeOfDay().setHour(new Integer(10));
-		assertEquals(new Integer(10), resourceEntity.getCache().getExpiryTimeOfDay().getHour());
-		assertEquals(null, javaContextCaching.getExpiryTimeOfDay());
-		assertEquals(new Integer(10), ormContextCaching.getExpiryTimeOfDay().getHour());
-
-			
-		// set java cache expiry, check defaults
-		
-		javaContextCaching.addExpiryTimeOfDay();
-		javaContextCaching.getExpiryTimeOfDay().setHour(new Integer(12));
-		
-		assertEquals(new Integer(10), resourceEntity.getCache().getExpiryTimeOfDay().getHour());
-		assertEquals(new Integer(12), javaContextCaching.getExpiryTimeOfDay().getHour());
-		assertEquals(new Integer(10), ormContextCaching.getExpiryTimeOfDay().getHour());
-
-		// clear xml cache expiry to null, check defaults
-		resourceEntity.getCache().setExpiryTimeOfDay(null);
-
-		assertEquals(null, resourceEntity.getCache().getExpiryTimeOfDay());
-		assertEquals(new Integer(12), javaContextCaching.getExpiryTimeOfDay().getHour());
-		assertEquals(null, ormContextCaching.getExpiryTimeOfDay());
-	
-		
-		// clear xml cache, check defaults
-		resourceEntity.setCache(null);
-
-		assertEquals(null, resourceEntity.getCache());
-		assertEquals(new Integer(12), javaContextCaching.getExpiryTimeOfDay().getHour());
-		assertEquals(null, ormContextCaching.getExpiryTimeOfDay());
-	
-		
-		// set metadataComplete to True, check defaults not from java
-
-		ormContextEntity.setSpecifiedMetadataComplete(Boolean.TRUE);
-		
-		assertEquals(null, resourceEntity.getCache());
-		assertEquals(new Integer(12), javaContextCaching.getExpiryTimeOfDay().getHour());
-		assertEquals(null, ormContextCaching.getExpiryTimeOfDay());
-
-		
-		// set metadataComplete back to null, check defaults from java
-		ormContextEntity.setSpecifiedMetadataComplete(null);
-		
-		assertEquals(null, resourceEntity.getCache());
-		assertEquals(new Integer(12), javaContextCaching.getExpiryTimeOfDay().getHour());
-		assertEquals(null, ormContextCaching.getExpiryTimeOfDay());
-	}
-	
-	public void testModifyCacheExpiryTimeOfDay() throws Exception {
-		createTestEntityForCaching();
-		OrmPersistentType ormPersistentType = getEntityMappings().addPersistentType(MappingKeys.ENTITY_TYPE_MAPPING_KEY, FULLY_QUALIFIED_TYPE_NAME);
-		EclipseLinkOrmEntity ormContextEntity = (EclipseLinkOrmEntity) ormPersistentType.getMapping();
-		Caching ormContextCaching = ormContextEntity.getCaching();
-		XmlEntity resourceEntity = (XmlEntity) getXmlEntityMappings().getEntities().get(0);
-		
-		// check defaults
-		
-		assertEquals(null, resourceEntity.getCache());
-		assertEquals(null, ormContextCaching.getExpiryTimeOfDay());
-		
-		// set context cache expiry, check resource
-		
-		ormContextEntity.getCaching().addExpiryTimeOfDay().setHour(new Integer(12));
-		assertEquals(new Integer(12), resourceEntity.getCache().getExpiryTimeOfDay().getHour());
-		assertEquals(new Integer(12), ormContextCaching.getExpiryTimeOfDay().getHour());
-				
-		// set context expiry time of day minute, check resource
-		
-		ormContextEntity.getCaching().getExpiryTimeOfDay().setMinute(new Integer(35));
-		
-		assertEquals(new Integer(12), resourceEntity.getCache().getExpiryTimeOfDay().getHour());
-		assertEquals(new Integer(12), ormContextCaching.getExpiryTimeOfDay().getHour());
-		assertEquals(new Integer(35), resourceEntity.getCache().getExpiryTimeOfDay().getMinute());
-		assertEquals(new Integer(35), ormContextCaching.getExpiryTimeOfDay().getMinute());
-		
-		// set context expiry time of day null, check resource
-		
-		ormContextEntity.getCaching().removeExpiryTimeOfDay();
-		assertEquals(null, resourceEntity.getCache());
-		assertEquals(null, ormContextCaching.getExpiryTimeOfDay());
-	}
-
-	public void testUpdateCustomConverters() throws Exception {
-		createTestEntityForConverters();
-		EclipseLinkPersistenceUnit persistenceUnit = getPersistenceUnit();
-		OrmPersistentType ormPersistentType = getEntityMappings().addPersistentType(MappingKeys.ENTITY_TYPE_MAPPING_KEY, FULLY_QUALIFIED_TYPE_NAME);
-		EclipseLinkOrmEntity ormContextEntity = (EclipseLinkOrmEntity) ormPersistentType.getMapping();
-		ConverterHolder ormContextConverterHolder = ormContextEntity.getConverterHolder();
-		XmlEntity resourceEntity = (XmlEntity) getXmlEntityMappings().getEntities().get(0);
-		
-		assertEquals(0, ormContextConverterHolder.customConvertersSize());
-		assertEquals(0, resourceEntity.getConverters().size());
-		assertEquals(0, CollectionTools.size(persistenceUnit.allConverters()));
-		
-		//add a converter to the resource model, check context model
-		XmlConverter resourceConverter = EclipseLinkOrmFactory.eINSTANCE.createXmlConverterImpl();
-		resourceEntity.getConverters().add(resourceConverter);
-		resourceConverter.setClassName("Foo");
-		resourceConverter.setName("myConverter");
-		
-		assertEquals(1, ormContextConverterHolder.customConvertersSize());
-		ListIterator<CustomConverter> ormContextConverters = ormContextConverterHolder.customConverters();
-		CustomConverter ormContextConverter = ormContextConverters.next();
-		assertEquals("Foo", ormContextConverter.getConverterClass());
-		assertEquals("myConverter", ormContextConverter.getName());
-		assertEquals(1, resourceEntity.getConverters().size());
-		assertEquals(1, CollectionTools.size(persistenceUnit.allConverters()));
-		
-		//add another converter to the resource model, check context model
-		XmlConverter resourceConverter2 = EclipseLinkOrmFactory.eINSTANCE.createXmlConverterImpl();
-		resourceEntity.getConverters().add(0, resourceConverter2);
-		resourceConverter2.setClassName("Foo2");
-		resourceConverter2.setName("myConverter2");
-		
-		assertEquals(2, ormContextConverterHolder.customConvertersSize());
-		ormContextConverters = ormContextConverterHolder.customConverters();
-		ormContextConverter = ormContextConverters.next();
-		assertEquals("Foo2", ormContextConverter.getConverterClass());
-		assertEquals("myConverter2", ormContextConverter.getName());
-		ormContextConverter = ormContextConverters.next();
-		assertEquals("Foo", ormContextConverter.getConverterClass());
-		assertEquals("myConverter", ormContextConverter.getName());
-		assertEquals(2, resourceEntity.getConverters().size());
-		assertEquals(2, CollectionTools.size(persistenceUnit.allConverters()));
-		
-		//move a converter in the resource model, check context model
-		resourceEntity.getConverters().move(0, 1);
-		
-		assertEquals(2, ormContextConverterHolder.customConvertersSize());
-		ormContextConverters = ormContextConverterHolder.customConverters();
-		ormContextConverter = ormContextConverters.next();
-		assertEquals("Foo", ormContextConverter.getConverterClass());
-		assertEquals("myConverter", ormContextConverter.getName());
-		ormContextConverter = ormContextConverters.next();
-		assertEquals("Foo2", ormContextConverter.getConverterClass());
-		assertEquals("myConverter2", ormContextConverter.getName());
-		assertEquals(2, resourceEntity.getConverters().size());
-		assertEquals(2, CollectionTools.size(persistenceUnit.allConverters()));
-		
-		//remove a converter from the resource model, check context model
-		resourceEntity.getConverters().remove(0);
-		
-		assertEquals(1, ormContextConverterHolder.customConvertersSize());
-		ormContextConverters = ormContextConverterHolder.customConverters();
-		ormContextConverter = ormContextConverters.next();
-		assertEquals("Foo2", ormContextConverter.getConverterClass());
-		assertEquals("myConverter2", ormContextConverter.getName());
-		assertEquals(1, resourceEntity.getConverters().size());
-		assertEquals(1, CollectionTools.size(persistenceUnit.allConverters()));
-		
-		//remove a converter from the resource model, check context model
-		resourceEntity.getConverters().remove(resourceConverter2);
-		
-		assertEquals(0, ormContextConverterHolder.customConvertersSize());
-		assertFalse(ormContextConverterHolder.customConverters().hasNext());
-		assertEquals(0, resourceEntity.getConverters().size());
-		assertEquals(0, CollectionTools.size(persistenceUnit.allConverters()));
-	}
-
-	public void testModifyCustomConverters() throws Exception {
-		createTestEntityForConverters();
-		EclipseLinkPersistenceUnit persistenceUnit = getPersistenceUnit();
-		OrmPersistentType ormPersistentType = getEntityMappings().addPersistentType(MappingKeys.ENTITY_TYPE_MAPPING_KEY, FULLY_QUALIFIED_TYPE_NAME);
-		EclipseLinkOrmEntity ormContextEntity = (EclipseLinkOrmEntity) ormPersistentType.getMapping();
-		ConverterHolder ormContextConverterHolder = ormContextEntity.getConverterHolder();
-		XmlEntity resourceEntity = (XmlEntity) getXmlEntityMappings().getEntities().get(0);
-		
-		assertEquals(0, ormContextConverterHolder.customConvertersSize());
-		assertEquals(0, resourceEntity.getConverters().size());
-		assertEquals(0, CollectionTools.size(persistenceUnit.allConverters()));
-		
-		//add a converter to the context model, check resource model
-		CustomConverter contextConverter = ormContextConverterHolder.addCustomConverter(0);
-		contextConverter.setConverterClass("Foo");
-		contextConverter.setName("myConverter");
-		
-		assertEquals(1, resourceEntity.getConverters().size());
-		assertEquals("Foo", resourceEntity.getConverters().get(0).getClassName());
-		assertEquals("myConverter", resourceEntity.getConverters().get(0).getName());
-		assertEquals(1, ormContextConverterHolder.customConvertersSize());
-		ListIterator<CustomConverter> ormContextConverters = ormContextConverterHolder.customConverters();
-		CustomConverter ormContextConverter = ormContextConverters.next();
-		assertEquals("Foo", ormContextConverter.getConverterClass());
-		assertEquals("myConverter", ormContextConverter.getName());
-		assertEquals(1, CollectionTools.size(persistenceUnit.allConverters()));
-		
-		//add another converter to the context model, check resource model
-		CustomConverter contextConverter2 = ormContextConverterHolder.addCustomConverter(0);
-		contextConverter2.setConverterClass("Foo2");
-		contextConverter2.setName("myConverter2");
-		
-		assertEquals(2, resourceEntity.getConverters().size());
-		assertEquals("Foo2", resourceEntity.getConverters().get(0).getClassName());
-		assertEquals("myConverter2", resourceEntity.getConverters().get(0).getName());
-		assertEquals("Foo", resourceEntity.getConverters().get(1).getClassName());
-		assertEquals("myConverter", resourceEntity.getConverters().get(1).getName());
-		assertEquals(2, ormContextConverterHolder.customConvertersSize());
-		ormContextConverters = ormContextConverterHolder.customConverters();
-		ormContextConverter = ormContextConverters.next();
-		assertEquals("Foo2", ormContextConverter.getConverterClass());
-		assertEquals("myConverter2", ormContextConverter.getName());
-		ormContextConverter = ormContextConverters.next();
-		assertEquals("Foo", ormContextConverter.getConverterClass());
-		assertEquals("myConverter", ormContextConverter.getName());
-		assertEquals(2, CollectionTools.size(persistenceUnit.allConverters()));
-		
-		//move a converter in the context model, check resource model
-		ormContextConverterHolder.moveCustomConverter(0, 1);
-		
-		assertEquals(2, resourceEntity.getConverters().size());
-		assertEquals("Foo", resourceEntity.getConverters().get(0).getClassName());
-		assertEquals("myConverter", resourceEntity.getConverters().get(0).getName());
-		assertEquals("Foo2", resourceEntity.getConverters().get(1).getClassName());
-		assertEquals("myConverter2", resourceEntity.getConverters().get(1).getName());
-		assertEquals(2, ormContextConverterHolder.customConvertersSize());
-		ormContextConverters = ormContextConverterHolder.customConverters();
-		ormContextConverter = ormContextConverters.next();
-		assertEquals("Foo", ormContextConverter.getConverterClass());
-		assertEquals("myConverter", ormContextConverter.getName());
-		ormContextConverter = ormContextConverters.next();
-		assertEquals("Foo2", ormContextConverter.getConverterClass());
-		assertEquals("myConverter2", ormContextConverter.getName());
-		assertEquals(2, CollectionTools.size(persistenceUnit.allConverters()));
-		
-		//remove a converter from the context model, check resource model
-		ormContextConverterHolder.removeCustomConverter(0);
-		
-		assertEquals(1, resourceEntity.getConverters().size());
-		assertEquals("Foo2", resourceEntity.getConverters().get(0).getClassName());
-		assertEquals("myConverter2", resourceEntity.getConverters().get(0).getName());
-		assertEquals(1, ormContextConverterHolder.customConvertersSize());
-		ormContextConverters = ormContextConverterHolder.customConverters();
-		ormContextConverter = ormContextConverters.next();
-		assertEquals("Foo2", ormContextConverter.getConverterClass());
-		assertEquals("myConverter2", ormContextConverter.getName());
-		assertEquals(1, CollectionTools.size(persistenceUnit.allConverters()));
-		
-		//remove a converter from the context model, check resource model
-		ormContextConverterHolder.removeCustomConverter(contextConverter2);
-		
-		assertEquals(0, ormContextConverterHolder.customConvertersSize());
-		assertFalse(ormContextConverterHolder.customConverters().hasNext());
-		assertEquals(0, resourceEntity.getConverters().size());
-		assertEquals(0, CollectionTools.size(persistenceUnit.allConverters()));
-	}
-	
-	public void testUpdateTypeConverters() throws Exception {
-		createTestEntityForTypeConverters();
-		EclipseLinkPersistenceUnit persistenceUnit = getPersistenceUnit();
-		OrmPersistentType ormPersistentType = getEntityMappings().addPersistentType(MappingKeys.ENTITY_TYPE_MAPPING_KEY, FULLY_QUALIFIED_TYPE_NAME);
-		EclipseLinkOrmEntity ormContextEntity = (EclipseLinkOrmEntity) ormPersistentType.getMapping();
-		ConverterHolder ormContextConverterHolder = ormContextEntity.getConverterHolder();
-		XmlEntity resourceEntity = (XmlEntity) getXmlEntityMappings().getEntities().get(0);
-		
-		assertEquals(0, ormContextConverterHolder.typeConvertersSize());
-		assertEquals(0, resourceEntity.getTypeConverters().size());
-		assertEquals(0, CollectionTools.size(persistenceUnit.allConverters()));
-		
-		//add a converter to the resource model, check context model
-		XmlTypeConverter resourceTypeConverter = EclipseLinkOrmFactory.eINSTANCE.createXmlTypeConverterImpl();
-		resourceEntity.getTypeConverters().add(resourceTypeConverter);
-		resourceTypeConverter.setDataType("Foo");
-		resourceTypeConverter.setName("myTypeConverter");
-		
-		assertEquals(1, ormContextConverterHolder.typeConvertersSize());
-		ListIterator<TypeConverter> ormContextTypeConverters = ormContextConverterHolder.typeConverters();
-		TypeConverter ormContextTypeConverter = ormContextTypeConverters.next();
-		assertEquals("Foo", ormContextTypeConverter.getDataType());
-		assertEquals("myTypeConverter", ormContextTypeConverter.getName());
-		assertEquals(1, resourceEntity.getTypeConverters().size());
-		assertEquals(1, CollectionTools.size(persistenceUnit.allConverters()));
-		
-		//add another converter to the resource model, check context model
-		XmlTypeConverter resourceTypeConverter2 = EclipseLinkOrmFactory.eINSTANCE.createXmlTypeConverterImpl();
-		resourceEntity.getTypeConverters().add(0, resourceTypeConverter2);
-		resourceTypeConverter2.setDataType("Foo2");
-		resourceTypeConverter2.setName("myTypeConverter2");
-		
-		assertEquals(2, ormContextConverterHolder.typeConvertersSize());
-		ormContextTypeConverters = ormContextConverterHolder.typeConverters();
-		ormContextTypeConverter = ormContextTypeConverters.next();
-		assertEquals("Foo2", ormContextTypeConverter.getDataType());
-		assertEquals("myTypeConverter2", ormContextTypeConverter.getName());
-		ormContextTypeConverter = ormContextTypeConverters.next();
-		assertEquals("Foo", ormContextTypeConverter.getDataType());
-		assertEquals("myTypeConverter", ormContextTypeConverter.getName());
-		assertEquals(2, resourceEntity.getTypeConverters().size());
-		assertEquals(2, CollectionTools.size(persistenceUnit.allConverters()));
-		
-		//move a converter in the resource model, check context model
-		resourceEntity.getTypeConverters().move(0, 1);
-		
-		assertEquals(2, ormContextConverterHolder.typeConvertersSize());
-		ormContextTypeConverters = ormContextConverterHolder.typeConverters();
-		ormContextTypeConverter = ormContextTypeConverters.next();
-		assertEquals("Foo", ormContextTypeConverter.getDataType());
-		assertEquals("myTypeConverter", ormContextTypeConverter.getName());
-		ormContextTypeConverter = ormContextTypeConverters.next();
-		assertEquals("Foo2", ormContextTypeConverter.getDataType());
-		assertEquals("myTypeConverter2", ormContextTypeConverter.getName());
-		assertEquals(2, resourceEntity.getTypeConverters().size());
-		assertEquals(2, CollectionTools.size(persistenceUnit.allConverters()));
-		
-		//remove a converter from the resource model, check context model
-		resourceEntity.getTypeConverters().remove(0);
-		
-		assertEquals(1, ormContextConverterHolder.typeConvertersSize());
-		ormContextTypeConverters = ormContextConverterHolder.typeConverters();
-		ormContextTypeConverter = ormContextTypeConverters.next();
-		assertEquals("Foo2", ormContextTypeConverter.getDataType());
-		assertEquals("myTypeConverter2", ormContextTypeConverter.getName());
-		assertEquals(1, resourceEntity.getTypeConverters().size());
-		assertEquals(1, CollectionTools.size(persistenceUnit.allConverters()));
-		
-		//remove a converter from the resource model, check context model
-		resourceEntity.getTypeConverters().remove(resourceTypeConverter2);
-		
-		assertEquals(0, ormContextConverterHolder.typeConvertersSize());
-		assertFalse(ormContextConverterHolder.typeConverters().hasNext());
-		assertEquals(0, resourceEntity.getTypeConverters().size());
-		assertEquals(0, CollectionTools.size(persistenceUnit.allConverters()));
-	}
-
-	public void testModifyTypeConverters() throws Exception {
-		createTestEntityForTypeConverters();
-		EclipseLinkPersistenceUnit persistenceUnit = getPersistenceUnit();
-		OrmPersistentType ormPersistentType = getEntityMappings().addPersistentType(MappingKeys.ENTITY_TYPE_MAPPING_KEY, FULLY_QUALIFIED_TYPE_NAME);
-		EclipseLinkOrmEntity ormContextEntity = (EclipseLinkOrmEntity) ormPersistentType.getMapping();
-		ConverterHolder ormContextConverterHolder = ormContextEntity.getConverterHolder();
-		XmlEntity resourceEntity = (XmlEntity) getXmlEntityMappings().getEntities().get(0);
-		
-		assertEquals(0, ormContextConverterHolder.typeConvertersSize());
-		assertEquals(0, resourceEntity.getTypeConverters().size());
-		assertEquals(0, CollectionTools.size(persistenceUnit.allConverters()));
-		
-		//add a converter to the context model, check resource model
-		TypeConverter contextTypeConverter = ormContextConverterHolder.addTypeConverter(0);
-		contextTypeConverter.setDataType("Foo");
-		contextTypeConverter.setName("myTypeConverter");
-		
-		assertEquals(1, resourceEntity.getTypeConverters().size());
-		assertEquals("Foo", resourceEntity.getTypeConverters().get(0).getDataType());
-		assertEquals("myTypeConverter", resourceEntity.getTypeConverters().get(0).getName());
-		assertEquals(1, ormContextConverterHolder.typeConvertersSize());
-		ListIterator<TypeConverter> ormContextTypeConverters = ormContextConverterHolder.typeConverters();
-		TypeConverter ormContextTypeConverter = ormContextTypeConverters.next();
-		assertEquals("Foo", ormContextTypeConverter.getDataType());
-		assertEquals("myTypeConverter", ormContextTypeConverter.getName());
-		assertEquals(1, CollectionTools.size(persistenceUnit.allConverters()));
-		
-		//add another converter to the context model, check resource model
-		TypeConverter contextTypeConverter2 = ormContextConverterHolder.addTypeConverter(0);
-		contextTypeConverter2.setDataType("Foo2");
-		contextTypeConverter2.setName("myTypeConverter2");
-		
-		assertEquals(2, resourceEntity.getTypeConverters().size());
-		assertEquals("Foo2", resourceEntity.getTypeConverters().get(0).getDataType());
-		assertEquals("myTypeConverter2", resourceEntity.getTypeConverters().get(0).getName());
-		assertEquals("Foo", resourceEntity.getTypeConverters().get(1).getDataType());
-		assertEquals("myTypeConverter", resourceEntity.getTypeConverters().get(1).getName());
-		assertEquals(2, ormContextConverterHolder.typeConvertersSize());
-		ormContextTypeConverters = ormContextConverterHolder.typeConverters();
-		ormContextTypeConverter = ormContextTypeConverters.next();
-		assertEquals("Foo2", ormContextTypeConverter.getDataType());
-		assertEquals("myTypeConverter2", ormContextTypeConverter.getName());
-		ormContextTypeConverter = ormContextTypeConverters.next();
-		assertEquals("Foo", ormContextTypeConverter.getDataType());
-		assertEquals("myTypeConverter", ormContextTypeConverter.getName());
-		assertEquals(2, CollectionTools.size(persistenceUnit.allConverters()));
-		
-		//move a converter in the context model, check resource model
-		ormContextConverterHolder.moveTypeConverter(0, 1);
-		
-		assertEquals(2, resourceEntity.getTypeConverters().size());
-		assertEquals("Foo", resourceEntity.getTypeConverters().get(0).getDataType());
-		assertEquals("myTypeConverter", resourceEntity.getTypeConverters().get(0).getName());
-		assertEquals("Foo2", resourceEntity.getTypeConverters().get(1).getDataType());
-		assertEquals("myTypeConverter2", resourceEntity.getTypeConverters().get(1).getName());
-		assertEquals(2, ormContextConverterHolder.typeConvertersSize());
-		ormContextTypeConverters = ormContextConverterHolder.typeConverters();
-		ormContextTypeConverter = ormContextTypeConverters.next();
-		assertEquals("Foo", ormContextTypeConverter.getDataType());
-		assertEquals("myTypeConverter", ormContextTypeConverter.getName());
-		ormContextTypeConverter = ormContextTypeConverters.next();
-		assertEquals("Foo2", ormContextTypeConverter.getDataType());
-		assertEquals("myTypeConverter2", ormContextTypeConverter.getName());
-		assertEquals(2, CollectionTools.size(persistenceUnit.allConverters()));
-		
-		//remove a converter from the context model, check resource model
-		ormContextConverterHolder.removeTypeConverter(0);
-		
-		assertEquals(1, resourceEntity.getTypeConverters().size());
-		assertEquals("Foo2", resourceEntity.getTypeConverters().get(0).getDataType());
-		assertEquals("myTypeConverter2", resourceEntity.getTypeConverters().get(0).getName());
-		assertEquals(1, ormContextConverterHolder.typeConvertersSize());
-		ormContextTypeConverters = ormContextConverterHolder.typeConverters();
-		ormContextTypeConverter = ormContextTypeConverters.next();
-		assertEquals("Foo2", ormContextTypeConverter.getDataType());
-		assertEquals("myTypeConverter2", ormContextTypeConverter.getName());
-		assertEquals(1, CollectionTools.size(persistenceUnit.allConverters()));
-		
-		//remove a converter from the context model, check resource model
-		ormContextConverterHolder.removeTypeConverter(contextTypeConverter2);
-		
-		assertEquals(0, ormContextConverterHolder.typeConvertersSize());
-		assertFalse(ormContextConverterHolder.typeConverters().hasNext());
-		assertEquals(0, resourceEntity.getTypeConverters().size());
-		assertEquals(0, CollectionTools.size(persistenceUnit.allConverters()));
-	}
-	
-	public void testUpdateObjectTypeConverters() throws Exception {
-		createTestEntityForObjectTypeConverters();
-		EclipseLinkPersistenceUnit persistenceUnit = getPersistenceUnit();
-		OrmPersistentType ormPersistentType = getEntityMappings().addPersistentType(MappingKeys.ENTITY_TYPE_MAPPING_KEY, FULLY_QUALIFIED_TYPE_NAME);
-		EclipseLinkOrmEntity ormContextEntity = (EclipseLinkOrmEntity) ormPersistentType.getMapping();
-		ConverterHolder ormContextConverterHolder = ormContextEntity.getConverterHolder();
-		XmlEntity resourceEntity = (XmlEntity) getXmlEntityMappings().getEntities().get(0);
-		
-		assertEquals(0, ormContextConverterHolder.objectTypeConvertersSize());
-		assertEquals(0, resourceEntity.getObjectTypeConverters().size());
-		assertEquals(0, CollectionTools.size(persistenceUnit.allConverters()));
-		
-		//add a converter to the resource model, check context model
-		XmlObjectTypeConverter resourceObjectTypeConverter = EclipseLinkOrmFactory.eINSTANCE.createXmlObjectTypeConverterImpl();
-		resourceEntity.getObjectTypeConverters().add(resourceObjectTypeConverter);
-		resourceObjectTypeConverter.setDataType("Foo");
-		resourceObjectTypeConverter.setName("myObjectTypeConverter");
-		
-		assertEquals(1, ormContextConverterHolder.objectTypeConvertersSize());
-		ListIterator<ObjectTypeConverter> ormContextObjectTypeConverters = ormContextConverterHolder.objectTypeConverters();
-		ObjectTypeConverter ormContextObjectTypeConverter = ormContextObjectTypeConverters.next();
-		assertEquals("Foo", ormContextObjectTypeConverter.getDataType());
-		assertEquals("myObjectTypeConverter", ormContextObjectTypeConverter.getName());
-		assertEquals(1, resourceEntity.getObjectTypeConverters().size());
-		assertEquals(1, CollectionTools.size(persistenceUnit.allConverters()));
-		
-		//add another converter to the resource model, check context model
-		XmlObjectTypeConverter resourceObjectTypeConverter2 = EclipseLinkOrmFactory.eINSTANCE.createXmlObjectTypeConverterImpl();
-		resourceEntity.getObjectTypeConverters().add(0, resourceObjectTypeConverter2);
-		resourceObjectTypeConverter2.setDataType("Foo2");
-		resourceObjectTypeConverter2.setName("myObjectTypeConverter2");
-		
-		assertEquals(2, ormContextConverterHolder.objectTypeConvertersSize());
-		ormContextObjectTypeConverters = ormContextConverterHolder.objectTypeConverters();
-		ormContextObjectTypeConverter = ormContextObjectTypeConverters.next();
-		assertEquals("Foo2", ormContextObjectTypeConverter.getDataType());
-		assertEquals("myObjectTypeConverter2", ormContextObjectTypeConverter.getName());
-		ormContextObjectTypeConverter = ormContextObjectTypeConverters.next();
-		assertEquals("Foo", ormContextObjectTypeConverter.getDataType());
-		assertEquals("myObjectTypeConverter", ormContextObjectTypeConverter.getName());
-		assertEquals(2, resourceEntity.getObjectTypeConverters().size());
-		assertEquals(2, CollectionTools.size(persistenceUnit.allConverters()));
-		
-		//move a converter in the resource model, check context model
-		resourceEntity.getObjectTypeConverters().move(0, 1);
-		
-		assertEquals(2, ormContextConverterHolder.objectTypeConvertersSize());
-		ormContextObjectTypeConverters = ormContextConverterHolder.objectTypeConverters();
-		ormContextObjectTypeConverter = ormContextObjectTypeConverters.next();
-		assertEquals("Foo", ormContextObjectTypeConverter.getDataType());
-		assertEquals("myObjectTypeConverter", ormContextObjectTypeConverter.getName());
-		ormContextObjectTypeConverter = ormContextObjectTypeConverters.next();
-		assertEquals("Foo2", ormContextObjectTypeConverter.getDataType());
-		assertEquals("myObjectTypeConverter2", ormContextObjectTypeConverter.getName());
-		assertEquals(2, resourceEntity.getObjectTypeConverters().size());
-		assertEquals(2, CollectionTools.size(persistenceUnit.allConverters()));
-		
-		//remove a converter from the resource model, check context model
-		resourceEntity.getObjectTypeConverters().remove(0);
-		
-		assertEquals(1, ormContextConverterHolder.objectTypeConvertersSize());
-		ormContextObjectTypeConverters = ormContextConverterHolder.objectTypeConverters();
-		ormContextObjectTypeConverter = ormContextObjectTypeConverters.next();
-		assertEquals("Foo2", ormContextObjectTypeConverter.getDataType());
-		assertEquals("myObjectTypeConverter2", ormContextObjectTypeConverter.getName());
-		assertEquals(1, resourceEntity.getObjectTypeConverters().size());
-		assertEquals(1, CollectionTools.size(persistenceUnit.allConverters()));
-		
-		//remove a converter from the resource model, check context model
-		resourceEntity.getObjectTypeConverters().remove(resourceObjectTypeConverter2);
-		
-		assertEquals(0, ormContextConverterHolder.objectTypeConvertersSize());
-		assertFalse(ormContextConverterHolder.objectTypeConverters().hasNext());
-		assertEquals(0, resourceEntity.getObjectTypeConverters().size());
-		assertEquals(0, CollectionTools.size(persistenceUnit.allConverters()));
-	}
-
-	public void testModifyObjectTypeConverters() throws Exception {
-		createTestEntityForObjectTypeConverters();
-		EclipseLinkPersistenceUnit persistenceUnit = getPersistenceUnit();
-		OrmPersistentType ormPersistentType = getEntityMappings().addPersistentType(MappingKeys.ENTITY_TYPE_MAPPING_KEY, FULLY_QUALIFIED_TYPE_NAME);
-		EclipseLinkOrmEntity ormContextEntity = (EclipseLinkOrmEntity) ormPersistentType.getMapping();
-		ConverterHolder ormContextConverterHolder = ormContextEntity.getConverterHolder();
-		XmlEntity resourceEntity = (XmlEntity) getXmlEntityMappings().getEntities().get(0);
-		
-		assertEquals(0, ormContextConverterHolder.objectTypeConvertersSize());
-		assertEquals(0, resourceEntity.getObjectTypeConverters().size());
-		assertEquals(0, CollectionTools.size(persistenceUnit.allConverters()));
-		
-		//add a converter to the context model, check resource model
-		ObjectTypeConverter contextObjectTypeConverter = ormContextConverterHolder.addObjectTypeConverter(0);
-		contextObjectTypeConverter.setDataType("Foo");
-		contextObjectTypeConverter.setName("myObjectTypeConverter");
-		
-		assertEquals(1, resourceEntity.getObjectTypeConverters().size());
-		assertEquals("Foo", resourceEntity.getObjectTypeConverters().get(0).getDataType());
-		assertEquals("myObjectTypeConverter", resourceEntity.getObjectTypeConverters().get(0).getName());
-		assertEquals(1, ormContextConverterHolder.objectTypeConvertersSize());
-		ListIterator<ObjectTypeConverter> ormContextObjectTypeConverters = ormContextConverterHolder.objectTypeConverters();
-		ObjectTypeConverter ormContextObjectTypeConverter = ormContextObjectTypeConverters.next();
-		assertEquals("Foo", ormContextObjectTypeConverter.getDataType());
-		assertEquals("myObjectTypeConverter", ormContextObjectTypeConverter.getName());
-		assertEquals(1, CollectionTools.size(persistenceUnit.allConverters()));
-		
-		//add another converter to the context model, check resource model
-		ObjectTypeConverter contextObjectTypeConverter2 = ormContextConverterHolder.addObjectTypeConverter(0);
-		contextObjectTypeConverter2.setDataType("Foo2");
-		contextObjectTypeConverter2.setName("myObjectTypeConverter2");
-		
-		assertEquals(2, resourceEntity.getObjectTypeConverters().size());
-		assertEquals("Foo2", resourceEntity.getObjectTypeConverters().get(0).getDataType());
-		assertEquals("myObjectTypeConverter2", resourceEntity.getObjectTypeConverters().get(0).getName());
-		assertEquals("Foo", resourceEntity.getObjectTypeConverters().get(1).getDataType());
-		assertEquals("myObjectTypeConverter", resourceEntity.getObjectTypeConverters().get(1).getName());
-		assertEquals(2, ormContextConverterHolder.objectTypeConvertersSize());
-		ormContextObjectTypeConverters = ormContextConverterHolder.objectTypeConverters();
-		ormContextObjectTypeConverter = ormContextObjectTypeConverters.next();
-		assertEquals("Foo2", ormContextObjectTypeConverter.getDataType());
-		assertEquals("myObjectTypeConverter2", ormContextObjectTypeConverter.getName());
-		ormContextObjectTypeConverter = ormContextObjectTypeConverters.next();
-		assertEquals("Foo", ormContextObjectTypeConverter.getDataType());
-		assertEquals("myObjectTypeConverter", ormContextObjectTypeConverter.getName());
-		assertEquals(2, CollectionTools.size(persistenceUnit.allConverters()));
-		
-		//move a converter in the context model, check resource model
-		ormContextConverterHolder.moveObjectTypeConverter(0, 1);
-		
-		assertEquals(2, resourceEntity.getObjectTypeConverters().size());
-		assertEquals("Foo", resourceEntity.getObjectTypeConverters().get(0).getDataType());
-		assertEquals("myObjectTypeConverter", resourceEntity.getObjectTypeConverters().get(0).getName());
-		assertEquals("Foo2", resourceEntity.getObjectTypeConverters().get(1).getDataType());
-		assertEquals("myObjectTypeConverter2", resourceEntity.getObjectTypeConverters().get(1).getName());
-		assertEquals(2, ormContextConverterHolder.objectTypeConvertersSize());
-		ormContextObjectTypeConverters = ormContextConverterHolder.objectTypeConverters();
-		ormContextObjectTypeConverter = ormContextObjectTypeConverters.next();
-		assertEquals("Foo", ormContextObjectTypeConverter.getDataType());
-		assertEquals("myObjectTypeConverter", ormContextObjectTypeConverter.getName());
-		ormContextObjectTypeConverter = ormContextObjectTypeConverters.next();
-		assertEquals("Foo2", ormContextObjectTypeConverter.getDataType());
-		assertEquals("myObjectTypeConverter2", ormContextObjectTypeConverter.getName());
-		assertEquals(2, CollectionTools.size(persistenceUnit.allConverters()));
-		
-		//remove a converter from the context model, check resource model
-		ormContextConverterHolder.removeObjectTypeConverter(0);
-		
-		assertEquals(1, resourceEntity.getObjectTypeConverters().size());
-		assertEquals("Foo2", resourceEntity.getObjectTypeConverters().get(0).getDataType());
-		assertEquals("myObjectTypeConverter2", resourceEntity.getObjectTypeConverters().get(0).getName());
-		assertEquals(1, ormContextConverterHolder.objectTypeConvertersSize());
-		ormContextObjectTypeConverters = ormContextConverterHolder.objectTypeConverters();
-		ormContextObjectTypeConverter = ormContextObjectTypeConverters.next();
-		assertEquals("Foo2", ormContextObjectTypeConverter.getDataType());
-		assertEquals("myObjectTypeConverter2", ormContextObjectTypeConverter.getName());
-		assertEquals(1, CollectionTools.size(persistenceUnit.allConverters()));
-		
-		//remove a converter from the context model, check resource model
-		ormContextConverterHolder.removeObjectTypeConverter(contextObjectTypeConverter2);
-		
-		assertEquals(0, ormContextConverterHolder.objectTypeConvertersSize());
-		assertFalse(ormContextConverterHolder.objectTypeConverters().hasNext());
-		assertEquals(0, resourceEntity.getObjectTypeConverters().size());
-		assertEquals(0, CollectionTools.size(persistenceUnit.allConverters()));
-	}
-	
-	public void testUpdateStructConverters() throws Exception {
-		createTestEntityForStructConverters();
-		EclipseLinkPersistenceUnit persistenceUnit = getPersistenceUnit();
-		OrmPersistentType ormPersistentType = getEntityMappings().addPersistentType(MappingKeys.ENTITY_TYPE_MAPPING_KEY, FULLY_QUALIFIED_TYPE_NAME);
-		EclipseLinkOrmEntity ormContextEntity = (EclipseLinkOrmEntity) ormPersistentType.getMapping();
-		ConverterHolder ormContextConverterHolder = ormContextEntity.getConverterHolder();
-		XmlEntity resourceEntity = (XmlEntity) getXmlEntityMappings().getEntities().get(0);
-		
-		assertEquals(0, ormContextConverterHolder.structConvertersSize());
-		assertEquals(0, resourceEntity.getStructConverters().size());
-		assertEquals(0, CollectionTools.size(persistenceUnit.allConverters()));
-		
-		//add a converter to the resource model, check context model
-		XmlStructConverter resourceStructConverter = EclipseLinkOrmFactory.eINSTANCE.createXmlStructConverterImpl();
-		resourceEntity.getStructConverters().add(resourceStructConverter);
-		resourceStructConverter.setConverter("Foo");
-		resourceStructConverter.setName("myStructConverter");
-		
-		assertEquals(1, ormContextConverterHolder.structConvertersSize());
-		ListIterator<StructConverter> ormContextStructConverters = ormContextConverterHolder.structConverters();
-		StructConverter ormContextStructConverter = ormContextStructConverters.next();
-		assertEquals("Foo", ormContextStructConverter.getConverterClass());
-		assertEquals("myStructConverter", ormContextStructConverter.getName());
-		assertEquals(1, resourceEntity.getStructConverters().size());
-		assertEquals(1, CollectionTools.size(persistenceUnit.allConverters()));
-		
-		//add another converter to the resource model, check context model
-		XmlStructConverter resourceStructConverter2 = EclipseLinkOrmFactory.eINSTANCE.createXmlStructConverterImpl();
-		resourceEntity.getStructConverters().add(0, resourceStructConverter2);
-		resourceStructConverter2.setConverter("Foo2");
-		resourceStructConverter2.setName("myStructConverter2");
-		
-		assertEquals(2, ormContextConverterHolder.structConvertersSize());
-		ormContextStructConverters = ormContextConverterHolder.structConverters();
-		ormContextStructConverter = ormContextStructConverters.next();
-		assertEquals("Foo2", ormContextStructConverter.getConverterClass());
-		assertEquals("myStructConverter2", ormContextStructConverter.getName());
-		ormContextStructConverter = ormContextStructConverters.next();
-		assertEquals("Foo", ormContextStructConverter.getConverterClass());
-		assertEquals("myStructConverter", ormContextStructConverter.getName());
-		assertEquals(2, resourceEntity.getStructConverters().size());
-		assertEquals(2, CollectionTools.size(persistenceUnit.allConverters()));
-		
-		//move a converter in the resource model, check context model
-		resourceEntity.getStructConverters().move(0, 1);
-		
-		assertEquals(2, ormContextConverterHolder.structConvertersSize());
-		ormContextStructConverters = ormContextConverterHolder.structConverters();
-		ormContextStructConverter = ormContextStructConverters.next();
-		assertEquals("Foo", ormContextStructConverter.getConverterClass());
-		assertEquals("myStructConverter", ormContextStructConverter.getName());
-		ormContextStructConverter = ormContextStructConverters.next();
-		assertEquals("Foo2", ormContextStructConverter.getConverterClass());
-		assertEquals("myStructConverter2", ormContextStructConverter.getName());
-		assertEquals(2, resourceEntity.getStructConverters().size());
-		assertEquals(2, CollectionTools.size(persistenceUnit.allConverters()));
-		
-		//remove a converter from the resource model, check context model
-		resourceEntity.getStructConverters().remove(0);
-		
-		assertEquals(1, ormContextConverterHolder.structConvertersSize());
-		ormContextStructConverters = ormContextConverterHolder.structConverters();
-		ormContextStructConverter = ormContextStructConverters.next();
-		assertEquals("Foo2", ormContextStructConverter.getConverterClass());
-		assertEquals("myStructConverter2", ormContextStructConverter.getName());
-		assertEquals(1, resourceEntity.getStructConverters().size());
-		assertEquals(1, CollectionTools.size(persistenceUnit.allConverters()));
-		
-		//remove a converter from the resource model, check context model
-		resourceEntity.getStructConverters().remove(resourceStructConverter2);
-		
-		assertEquals(0, ormContextConverterHolder.structConvertersSize());
-		assertFalse(ormContextConverterHolder.structConverters().hasNext());
-		assertEquals(0, resourceEntity.getStructConverters().size());
-		assertEquals(0, CollectionTools.size(persistenceUnit.allConverters()));
-	}
-
-	public void testModifyStructConverters() throws Exception {
-		createTestEntityForStructConverters();
-		EclipseLinkPersistenceUnit persistenceUnit = getPersistenceUnit();
-		OrmPersistentType ormPersistentType = getEntityMappings().addPersistentType(MappingKeys.ENTITY_TYPE_MAPPING_KEY, FULLY_QUALIFIED_TYPE_NAME);
-		EclipseLinkOrmEntity ormContextEntity = (EclipseLinkOrmEntity) ormPersistentType.getMapping();
-		ConverterHolder ormContextConverterHolder = ormContextEntity.getConverterHolder();
-		XmlEntity resourceEntity = (XmlEntity) getXmlEntityMappings().getEntities().get(0);
-		
-		assertEquals(0, ormContextConverterHolder.structConvertersSize());
-		assertEquals(0, resourceEntity.getStructConverters().size());
-		assertEquals(0, CollectionTools.size(persistenceUnit.allConverters()));
-		
-		//add a converter to the context model, check resource model
-		StructConverter contextStructConverter = ormContextConverterHolder.addStructConverter(0);
-		contextStructConverter.setConverterClass("Foo");
-		contextStructConverter.setName("myStructConverter");
-		
-		assertEquals(1, resourceEntity.getStructConverters().size());
-		assertEquals("Foo", resourceEntity.getStructConverters().get(0).getConverter());
-		assertEquals("myStructConverter", resourceEntity.getStructConverters().get(0).getName());
-		assertEquals(1, ormContextConverterHolder.structConvertersSize());
-		ListIterator<StructConverter> ormContextStructConverters = ormContextConverterHolder.structConverters();
-		StructConverter ormContextStructConverter = ormContextStructConverters.next();
-		assertEquals("Foo", ormContextStructConverter.getConverterClass());
-		assertEquals("myStructConverter", ormContextStructConverter.getName());
-		assertEquals(1, CollectionTools.size(persistenceUnit.allConverters()));
-		
-		//add another converter to the context model, check resource model
-		StructConverter contextStructConverter2 = ormContextConverterHolder.addStructConverter(0);
-		contextStructConverter2.setConverterClass("Foo2");
-		contextStructConverter2.setName("myStructConverter2");
-		
-		assertEquals(2, resourceEntity.getStructConverters().size());
-		assertEquals("Foo2", resourceEntity.getStructConverters().get(0).getConverter());
-		assertEquals("myStructConverter2", resourceEntity.getStructConverters().get(0).getName());
-		assertEquals("Foo", resourceEntity.getStructConverters().get(1).getConverter());
-		assertEquals("myStructConverter", resourceEntity.getStructConverters().get(1).getName());
-		assertEquals(2, ormContextConverterHolder.structConvertersSize());
-		ormContextStructConverters = ormContextConverterHolder.structConverters();
-		ormContextStructConverter = ormContextStructConverters.next();
-		assertEquals("Foo2", ormContextStructConverter.getConverterClass());
-		assertEquals("myStructConverter2", ormContextStructConverter.getName());
-		ormContextStructConverter = ormContextStructConverters.next();
-		assertEquals("Foo", ormContextStructConverter.getConverterClass());
-		assertEquals("myStructConverter", ormContextStructConverter.getName());
-		assertEquals(2, CollectionTools.size(persistenceUnit.allConverters()));
-		
-		//move a converter in the context model, check resource model
-		ormContextConverterHolder.moveStructConverter(0, 1);
-		
-		assertEquals(2, resourceEntity.getStructConverters().size());
-		assertEquals("Foo", resourceEntity.getStructConverters().get(0).getConverter());
-		assertEquals("myStructConverter", resourceEntity.getStructConverters().get(0).getName());
-		assertEquals("Foo2", resourceEntity.getStructConverters().get(1).getConverter());
-		assertEquals("myStructConverter2", resourceEntity.getStructConverters().get(1).getName());
-		assertEquals(2, ormContextConverterHolder.structConvertersSize());
-		ormContextStructConverters = ormContextConverterHolder.structConverters();
-		ormContextStructConverter = ormContextStructConverters.next();
-		assertEquals("Foo", ormContextStructConverter.getConverterClass());
-		assertEquals("myStructConverter", ormContextStructConverter.getName());
-		ormContextStructConverter = ormContextStructConverters.next();
-		assertEquals("Foo2", ormContextStructConverter.getConverterClass());
-		assertEquals("myStructConverter2", ormContextStructConverter.getName());
-		assertEquals(2, CollectionTools.size(persistenceUnit.allConverters()));
-		
-		//remove a converter from the context model, check resource model
-		ormContextConverterHolder.removeStructConverter(0);
-		
-		assertEquals(1, resourceEntity.getStructConverters().size());
-		assertEquals("Foo2", resourceEntity.getStructConverters().get(0).getConverter());
-		assertEquals("myStructConverter2", resourceEntity.getStructConverters().get(0).getName());
-		assertEquals(1, ormContextConverterHolder.structConvertersSize());
-		ormContextStructConverters = ormContextConverterHolder.structConverters();
-		ormContextStructConverter = ormContextStructConverters.next();
-		assertEquals("Foo2", ormContextStructConverter.getConverterClass());
-		assertEquals("myStructConverter2", ormContextStructConverter.getName());
-		assertEquals(1, CollectionTools.size(persistenceUnit.allConverters()));
-		
-		//remove a converter from the context model, check resource model
-		ormContextConverterHolder.removeStructConverter(contextStructConverter2);
-		
-		assertEquals(0, ormContextConverterHolder.structConvertersSize());
-		assertFalse(ormContextConverterHolder.structConverters().hasNext());
-		assertEquals(0, resourceEntity.getStructConverters().size());
-		assertEquals(0, CollectionTools.size(persistenceUnit.allConverters()));	
-	}
-}
diff --git a/jpa/tests/org.eclipse.jpt.eclipselink.core.tests/src/org/eclipse/jpt/eclipselink/core/tests/internal/context/orm/EclipseLinkOrmIdMappingTests.java b/jpa/tests/org.eclipse.jpt.eclipselink.core.tests/src/org/eclipse/jpt/eclipselink/core/tests/internal/context/orm/EclipseLinkOrmIdMappingTests.java
deleted file mode 100644
index 0c6cf5b..0000000
--- a/jpa/tests/org.eclipse.jpt.eclipselink.core.tests/src/org/eclipse/jpt/eclipselink/core/tests/internal/context/orm/EclipseLinkOrmIdMappingTests.java
+++ /dev/null
@@ -1,388 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008, 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- *******************************************************************************/
-package org.eclipse.jpt.eclipselink.core.tests.internal.context.orm;
-
-import java.util.Iterator;
-import org.eclipse.jdt.core.ICompilationUnit;
-import org.eclipse.jpt.core.MappingKeys;
-import org.eclipse.jpt.core.context.Converter;
-import org.eclipse.jpt.core.context.java.JavaIdMapping;
-import org.eclipse.jpt.core.context.orm.OrmIdMapping;
-import org.eclipse.jpt.core.context.orm.OrmPersistentAttribute;
-import org.eclipse.jpt.core.context.orm.OrmPersistentType;
-import org.eclipse.jpt.core.resource.java.JPA;
-import org.eclipse.jpt.eclipselink.core.context.Convert;
-import org.eclipse.jpt.eclipselink.core.context.EclipseLinkIdMapping;
-import org.eclipse.jpt.eclipselink.core.internal.context.orm.EclipseLinkOrmBasicMapping;
-import org.eclipse.jpt.eclipselink.core.internal.context.orm.EclipseLinkOrmIdMapping;
-import org.eclipse.jpt.eclipselink.core.resource.java.EclipseLinkJPA;
-import org.eclipse.jpt.eclipselink.core.resource.orm.XmlEntity;
-import org.eclipse.jpt.eclipselink.core.resource.orm.XmlId;
-import org.eclipse.jpt.utility.internal.iterators.ArrayIterator;
-
-@SuppressWarnings("nls")
-public class EclipseLinkOrmIdMappingTests
-	extends EclipseLinkOrmContextModelTestCase
-{
-	public EclipseLinkOrmIdMappingTests(String name) {
-		super(name);
-	}
-	
-	private ICompilationUnit createTestEntityWithIdMapping() throws Exception {
-		return this.createTestType(new DefaultAnnotationWriter() {
-			@Override
-			public Iterator<String> imports() {
-				return new ArrayIterator<String>(JPA.ENTITY, JPA.ID);
-			}
-			@Override
-			public void appendTypeAnnotationTo(StringBuilder sb) {
-				sb.append("@Entity").append(CR);
-			}
-			
-			@Override
-			public void appendIdFieldAnnotationTo(StringBuilder sb) {
-				sb.append("@Id").append(CR);
-			}
-		});
-	}
-	
-	private ICompilationUnit createTestEntityWithMutableIdDate() throws Exception {
-		return this.createTestType(new DefaultAnnotationWriter() {
-			@Override
-			public Iterator<String> imports() {
-				return new ArrayIterator<String>(JPA.ENTITY, JPA.ID, EclipseLinkJPA.MUTABLE, "java.util.Date");
-			}
-			@Override
-			public void appendTypeAnnotationTo(StringBuilder sb) {
-				sb.append("@Entity").append(CR);
-			}
-			
-			@Override
-			public void appendIdFieldAnnotationTo(StringBuilder sb) {
-				sb.append("@Id").append(CR);
-				sb.append("    @Mutable").append(CR);
-				sb.append("    private Date myDate;").append(CR);
-				sb.append(CR);
-				sb.append("    ");
-			}
-		});
-	}
-
-	public void testUpdateMutable() throws Exception {
-		createTestEntityWithIdMapping();
-		OrmPersistentType ormPersistentType = 
-			getEntityMappings().addPersistentType(MappingKeys.ENTITY_TYPE_MAPPING_KEY, FULLY_QUALIFIED_TYPE_NAME);
-		OrmPersistentAttribute ormPersistentAttribute =
-			ormPersistentType.addSpecifiedPersistentAttribute(MappingKeys.ID_ATTRIBUTE_MAPPING_KEY, "id");
-		EclipseLinkOrmIdMapping contextId = 
-			(EclipseLinkOrmIdMapping) ormPersistentAttribute.getMapping();
-		XmlEntity resourceEntity = 
-			(XmlEntity)getXmlEntityMappings().getEntities().get(0);
-		XmlId resourceId = 
-			(XmlId) resourceEntity.getAttributes().getIds().get(0);
-		EclipseLinkIdMapping javaIdMapping = (EclipseLinkIdMapping) ormPersistentType.getJavaPersistentType().getAttributeNamed("id").getMapping();
-		
-		// check defaults
-		
-		assertNull(resourceId.getMutable());
-		assertTrue(contextId.getMutable().isDefaultMutable());
-		assertNull(contextId.getMutable().getSpecifiedMutable());
-		assertTrue(contextId.getMutable().isMutable());
-		
-		// set xml mutable to false, check context
-		
-		resourceId.setMutable(Boolean.FALSE);
-		
-		assertEquals(Boolean.FALSE, resourceId.getMutable());
-		assertTrue(contextId.getMutable().isDefaultMutable());
-		assertEquals(Boolean.FALSE, contextId.getMutable().getSpecifiedMutable());
-		assertFalse(contextId.getMutable().isMutable());
-		
-		// set xml mutable to true, check context
-		
-		resourceId.setMutable(Boolean.TRUE);
-		
-		assertEquals(Boolean.TRUE, resourceId.getMutable());
-		assertTrue(contextId.getMutable().isDefaultMutable());
-		assertEquals(Boolean.TRUE, contextId.getMutable().getSpecifiedMutable());
-		assertTrue(contextId.getMutable().isMutable());
-		
-		// clear xml mutable, check context
-		
-		resourceId.setMutable(null);
-		
-		assertNull(resourceId.getMutable());
-		assertTrue(contextId.getMutable().isDefaultMutable());
-		assertNull(contextId.getMutable().getSpecifiedMutable());
-		assertTrue(contextId.getMutable().isMutable());
-		
-		// TODO - test defaults for java serializable and date/time types, 
-		// with and without persistence property
-		
-		// set mutable on java basic mapping
-		
-		javaIdMapping.getMutable().setSpecifiedMutable(Boolean.FALSE);
-		assertNull(resourceId.getMutable());
-		assertTrue(contextId.getMutable().isDefaultMutable());
-		assertNull(contextId.getMutable().getSpecifiedMutable());
-		assertTrue(contextId.getMutable().isMutable());
-		assertFalse(javaIdMapping.getMutable().isMutable());
-		
-		// remove attribute from xml, test default mutable from java
-		
-		ormPersistentType.removeSpecifiedPersistentAttribute(ormPersistentAttribute);
-		ormPersistentAttribute = ormPersistentType.virtualAttributes().next();
-		contextId = (EclipseLinkOrmIdMapping) ormPersistentAttribute.getMapping();
-		
-		assertNull(resourceId.getMutable());
-		assertTrue(contextId.getMutable().isDefaultMutable());
-		assertEquals(Boolean.FALSE, contextId.getMutable().getSpecifiedMutable());
-		assertFalse(contextId.getMutable().isMutable());
-		assertFalse(javaIdMapping.getMutable().isMutable());
-		
-		// set metadata complete
-		ormPersistentType.getMapping().setSpecifiedMetadataComplete(Boolean.TRUE);
-		ormPersistentAttribute = ormPersistentType.virtualAttributes().next();
-		EclipseLinkOrmBasicMapping contextBasic = (EclipseLinkOrmBasicMapping) ormPersistentAttribute.getMapping();
-		assertNull(resourceId.getMutable());
-		assertTrue(contextBasic.getMutable().isDefaultMutable());
-		assertEquals(Boolean.TRUE, contextBasic.getMutable().getSpecifiedMutable());
-		assertTrue(contextBasic.getMutable().isMutable());
-		assertFalse(javaIdMapping.getMutable().isMutable());
-	}
-	
-	public void testUpdateMutableDate() throws Exception {
-		createTestEntityWithMutableIdDate();
-		OrmPersistentType ormPersistentType = 
-			getEntityMappings().addPersistentType(MappingKeys.ENTITY_TYPE_MAPPING_KEY, FULLY_QUALIFIED_TYPE_NAME);
-		OrmPersistentAttribute ormPersistentAttribute =
-			ormPersistentType.addSpecifiedPersistentAttribute(MappingKeys.ID_ATTRIBUTE_MAPPING_KEY, "myDate");
-		EclipseLinkOrmIdMapping contextId = 
-			(EclipseLinkOrmIdMapping) ormPersistentAttribute.getMapping();
-		XmlEntity resourceEntity = 
-			(XmlEntity)getXmlEntityMappings().getEntities().get(0);
-		XmlId resourceId = 
-			(XmlId) resourceEntity.getAttributes().getIds().get(0);
-		EclipseLinkIdMapping javaIdMapping = (EclipseLinkIdMapping) ormPersistentType.getJavaPersistentType().getAttributeNamed("myDate").getMapping();
-		
-		// check defaults
-		
-		assertNull(resourceId.getMutable());
-		assertFalse(contextId.getMutable().isDefaultMutable());
-		assertNull(contextId.getMutable().getSpecifiedMutable());
-		assertFalse(contextId.getMutable().isMutable());
-		
-		// set xml mutable to false, check context
-		
-		resourceId.setMutable(Boolean.FALSE);
-		
-		assertEquals(Boolean.FALSE, resourceId.getMutable());
-		assertFalse(contextId.getMutable().isDefaultMutable());
-		assertEquals(Boolean.FALSE, contextId.getMutable().getSpecifiedMutable());
-		assertFalse(contextId.getMutable().isMutable());
-		
-		// set xml mutable to true, check context
-		
-		resourceId.setMutable(Boolean.TRUE);
-		
-		assertEquals(Boolean.TRUE, resourceId.getMutable());
-		assertFalse(contextId.getMutable().isDefaultMutable());
-		assertEquals(Boolean.TRUE, contextId.getMutable().getSpecifiedMutable());
-		assertTrue(contextId.getMutable().isMutable());
-		
-		// clear xml mutable, check context
-		
-		resourceId.setMutable(null);
-		
-		assertNull(resourceId.getMutable());
-		assertFalse(contextId.getMutable().isDefaultMutable());
-		assertNull(contextId.getMutable().getSpecifiedMutable());
-		assertFalse(contextId.getMutable().isMutable());
-		
-		
-		getPersistenceUnit().getOptions().setTemporalMutable(Boolean.TRUE);
-		assertNull(resourceId.getMutable());
-		assertTrue(contextId.getMutable().isDefaultMutable());
-		assertNull(contextId.getMutable().getSpecifiedMutable());
-		assertTrue(contextId.getMutable().isMutable());
-		
-		getPersistenceUnit().getOptions().setTemporalMutable(Boolean.FALSE);
-		assertNull(resourceId.getMutable());
-		assertFalse(contextId.getMutable().isDefaultMutable());
-		assertNull(contextId.getMutable().getSpecifiedMutable());
-		assertFalse(contextId.getMutable().isMutable());
-		
-		getPersistenceUnit().getOptions().setTemporalMutable(null);
-		assertNull(resourceId.getMutable());
-		assertFalse(contextId.getMutable().isDefaultMutable());
-		assertNull(contextId.getMutable().getSpecifiedMutable());
-		assertFalse(contextId.getMutable().isMutable());
-		
-		// set mutable on java id mapping
-		
-		javaIdMapping.getMutable().setSpecifiedMutable(Boolean.TRUE);
-		assertNull(resourceId.getMutable());
-		assertFalse(contextId.getMutable().isDefaultMutable());
-		assertNull(contextId.getMutable().getSpecifiedMutable());
-		assertFalse(contextId.getMutable().isMutable());
-		assertTrue(javaIdMapping.getMutable().isMutable());
-		
-		// remove attribute from xml, test default mutable from java
-		
-		ormPersistentType.removeSpecifiedPersistentAttribute(ormPersistentAttribute);
-		ormPersistentAttribute = ormPersistentType.virtualAttributes().next();
-		contextId = (EclipseLinkOrmIdMapping) ormPersistentAttribute.getMapping();
-		
-		assertNull(resourceId.getMutable());
-		assertFalse(contextId.getMutable().isDefaultMutable());
-		assertEquals(Boolean.TRUE, contextId.getMutable().getSpecifiedMutable());
-		assertTrue(contextId.getMutable().isMutable());
-		assertTrue(javaIdMapping.getMutable().isMutable());
-		
-		// set metadata complete
-		ormPersistentType.getMapping().setSpecifiedMetadataComplete(Boolean.TRUE);
-		ormPersistentAttribute = ormPersistentType.virtualAttributes().next();
-		EclipseLinkOrmBasicMapping contextBasic = (EclipseLinkOrmBasicMapping) ormPersistentAttribute.getMapping();
-		assertNull(resourceId.getMutable());
-		assertFalse(contextBasic.getMutable().isDefaultMutable());
-		assertEquals(Boolean.FALSE, contextBasic.getMutable().getSpecifiedMutable());
-		assertFalse(contextBasic.getMutable().isMutable());
-		assertTrue(javaIdMapping.getMutable().isMutable());
-	}
-
-	public void testModifyMutable() throws Exception {
-		OrmPersistentType ormPersistentType = 
-			getEntityMappings().addPersistentType(MappingKeys.ENTITY_TYPE_MAPPING_KEY, FULLY_QUALIFIED_TYPE_NAME);
-		OrmPersistentAttribute ormPersistentAttribute =
-			ormPersistentType.addSpecifiedPersistentAttribute(MappingKeys.ID_ATTRIBUTE_MAPPING_KEY, "basic");
-		EclipseLinkOrmIdMapping contextId = 
-			(EclipseLinkOrmIdMapping) ormPersistentAttribute.getMapping();
-		XmlEntity resourceEntity = 
-			(XmlEntity)getXmlEntityMappings().getEntities().get(0);
-		XmlId resourceId = 
-			(XmlId) resourceEntity.getAttributes().getIds().get(0);
-		
-		// check defaults
-		
-		assertNull(resourceId.getMutable());
-		assertFalse(contextId.getMutable().isDefaultMutable());
-		assertNull(contextId.getMutable().getSpecifiedMutable());
-		assertFalse(contextId.getMutable().isMutable());
-		
-		// set context mutable to true, check resource
-		
-		contextId.getMutable().setSpecifiedMutable(Boolean.TRUE);
-		
-		assertEquals(Boolean.TRUE, resourceId.getMutable());
-		assertFalse(contextId.getMutable().isDefaultMutable());
-		assertEquals(Boolean.TRUE, contextId.getMutable().getSpecifiedMutable());
-		assertTrue(contextId.getMutable().isMutable());
-		
-		// set context mutable to false, check resource
-		
-		contextId.getMutable().setSpecifiedMutable(Boolean.FALSE);
-		
-		assertEquals(Boolean.FALSE, resourceId.getMutable());
-		assertFalse(contextId.getMutable().isDefaultMutable());
-		assertEquals(Boolean.FALSE, contextId.getMutable().getSpecifiedMutable());
-		assertFalse(contextId.getMutable().isMutable());
-		
-		// set context read only to null, check resource
-		
-		contextId.getMutable().setSpecifiedMutable(null);
-		
-		assertNull(resourceId.getMutable());
-		assertFalse(contextId.getMutable().isDefaultMutable());
-		assertNull(contextId.getMutable().getSpecifiedMutable());
-		assertFalse(contextId.getMutable().isMutable());
-	}
-	
-	public void testUpdateConvert() throws Exception {
-		createTestEntityWithIdMapping();
-		
-		OrmPersistentType ormPersistentType = getEntityMappings().addPersistentType(MappingKeys.ENTITY_TYPE_MAPPING_KEY, FULLY_QUALIFIED_TYPE_NAME);
-		OrmPersistentAttribute ormPersistentAttribute = ormPersistentType.addSpecifiedPersistentAttribute(MappingKeys.ID_ATTRIBUTE_MAPPING_KEY, "id");
-		OrmIdMapping ormIdMapping = (OrmIdMapping) ormPersistentAttribute.getMapping();
-		XmlId basicResource = (XmlId) getXmlEntityMappings().getEntities().get(0).getAttributes().getIds().get(0);
-		JavaIdMapping javaIdMapping = (JavaIdMapping) ormPersistentType.getJavaPersistentType().getAttributeNamed("id").getMapping();
-		
-		assertEquals(null, ormIdMapping.getSpecifiedConverter());
-		assertEquals(null, basicResource.getConvert());
-				
-		//set lob in the resource model, verify context model updated
-		basicResource.setConvert("myConvert");
-		assertEquals(Convert.ECLIPSE_LINK_CONVERTER, ormIdMapping.getConverter().getType());
-		assertEquals("myConvert", basicResource.getConvert());
-
-		//set lob to null in the resource model
-		basicResource.setConvert(null);
-		assertEquals(null, ormIdMapping.getSpecifiedConverter());
-		assertEquals(null, basicResource.getConvert());
-		
-		
-		javaIdMapping.setSpecifiedConverter(Convert.ECLIPSE_LINK_CONVERTER);
-		((Convert) javaIdMapping.getSpecifiedConverter()).setSpecifiedConverterName("foo");
-		
-		assertEquals(null, ormIdMapping.getSpecifiedConverter());
-		assertEquals(null, basicResource.getConvert());
-		assertEquals("foo", ((Convert) javaIdMapping.getSpecifiedConverter()).getSpecifiedConverterName());
-		
-		
-		ormPersistentType.removeSpecifiedPersistentAttribute(ormPersistentAttribute);
-		ormPersistentAttribute = ormPersistentType.virtualAttributes().next();
-		ormIdMapping = (OrmIdMapping) ormPersistentAttribute.getMapping();
-		
-		assertEquals(Convert.ECLIPSE_LINK_CONVERTER, ormIdMapping.getSpecifiedConverter().getType());
-		assertEquals("foo", ((Convert) ormIdMapping.getSpecifiedConverter()).getSpecifiedConverterName());
-		assertEquals(null, basicResource.getConvert());
-		assertEquals("foo", ((Convert) javaIdMapping.getSpecifiedConverter()).getSpecifiedConverterName());
-		
-		((Convert) javaIdMapping.getSpecifiedConverter()).setSpecifiedConverterName("bar");
-		assertEquals(Convert.ECLIPSE_LINK_CONVERTER, ormIdMapping.getSpecifiedConverter().getType());
-		assertEquals("bar", ((Convert) ormIdMapping.getSpecifiedConverter()).getSpecifiedConverterName());
-		assertEquals(null, basicResource.getConvert());
-		assertEquals("bar", ((Convert) javaIdMapping.getSpecifiedConverter()).getSpecifiedConverterName());
-
-		javaIdMapping.setSpecifiedConverter(Converter.NO_CONVERTER);
-		assertEquals(null, ormIdMapping.getSpecifiedConverter());
-		assertEquals(null, basicResource.getConvert());
-		assertEquals(null, javaIdMapping.getSpecifiedConverter());
-	}
-	
-	public void testModifyConvert() throws Exception {
-		OrmPersistentType ormPersistentType = getEntityMappings().addPersistentType(MappingKeys.ENTITY_TYPE_MAPPING_KEY, "model.Foo");
-		OrmPersistentAttribute ormPersistentAttribute = ormPersistentType.addSpecifiedPersistentAttribute(MappingKeys.ID_ATTRIBUTE_MAPPING_KEY, "basicMapping");
-		OrmIdMapping ormIdMapping = (OrmIdMapping) ormPersistentAttribute.getMapping();
-		XmlId basicResource = (XmlId) getXmlEntityMappings().getEntities().get(0).getAttributes().getIds().get(0);
-	
-		assertEquals(null, ormIdMapping.getSpecifiedConverter());
-		assertEquals(null, basicResource.getConvert());
-				
-		//set lob in the context model, verify resource model updated
-		ormIdMapping.setSpecifiedConverter(Convert.ECLIPSE_LINK_CONVERTER);
-		assertEquals("", basicResource.getConvert());
-		assertEquals(Convert.ECLIPSE_LINK_CONVERTER, ormIdMapping.getConverter().getType());
-	
-		((Convert) ormIdMapping.getSpecifiedConverter()).setSpecifiedConverterName("bar");
-		assertEquals("bar", basicResource.getConvert());
-		assertEquals(Convert.ECLIPSE_LINK_CONVERTER, ormIdMapping.getConverter().getType());
-		assertEquals("bar", ((Convert) ormIdMapping.getConverter()).getSpecifiedConverterName());
-
-		((Convert) ormIdMapping.getSpecifiedConverter()).setSpecifiedConverterName(null);
-
-		assertEquals(null, ormIdMapping.getSpecifiedConverter());
-		assertEquals(null, basicResource.getConvert());
-
-		//set lob to false in the context model
-		ormIdMapping.setSpecifiedConverter(null);
-		assertEquals(null, ormIdMapping.getSpecifiedConverter());
-		assertEquals(null, basicResource.getConvert());
-	}
-}
diff --git a/jpa/tests/org.eclipse.jpt.eclipselink.core.tests/src/org/eclipse/jpt/eclipselink/core/tests/internal/context/orm/EclipseLinkOrmManyToManyMappingTests.java b/jpa/tests/org.eclipse.jpt.eclipselink.core.tests/src/org/eclipse/jpt/eclipselink/core/tests/internal/context/orm/EclipseLinkOrmManyToManyMappingTests.java
deleted file mode 100644
index b6a62f5..0000000
--- a/jpa/tests/org.eclipse.jpt.eclipselink.core.tests/src/org/eclipse/jpt/eclipselink/core/tests/internal/context/orm/EclipseLinkOrmManyToManyMappingTests.java
+++ /dev/null
@@ -1,248 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008, 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- *******************************************************************************/
-package org.eclipse.jpt.eclipselink.core.tests.internal.context.orm;
-
-import org.eclipse.jpt.core.MappingKeys;
-import org.eclipse.jpt.core.context.orm.OrmJoinTable;
-import org.eclipse.jpt.core.context.orm.OrmManyToManyMapping;
-import org.eclipse.jpt.core.context.orm.OrmOneToManyMapping;
-import org.eclipse.jpt.core.context.orm.OrmPersistentAttribute;
-import org.eclipse.jpt.core.context.orm.OrmPersistentType;
-import org.eclipse.jpt.core.resource.java.JPA;
-import org.eclipse.jpt.core.tests.internal.projects.TestJavaProject.SourceWriter;
-import org.eclipse.jpt.eclipselink.core.context.EclipseLinkRelationshipMapping;
-import org.eclipse.jpt.eclipselink.core.context.JoinFetchType;
-import org.eclipse.jpt.eclipselink.core.internal.context.orm.EclipseLinkOrmManyToManyMapping;
-import org.eclipse.jpt.eclipselink.core.internal.context.orm.EclipseLinkOrmOneToManyMapping;
-import org.eclipse.jpt.eclipselink.core.resource.orm.XmlEntity;
-import org.eclipse.jpt.eclipselink.core.resource.orm.XmlJoinFetchType;
-import org.eclipse.jpt.eclipselink.core.resource.orm.XmlManyToMany;
-
-@SuppressWarnings("nls")
-public class EclipseLinkOrmManyToManyMappingTests
-	extends EclipseLinkOrmContextModelTestCase
-{
-	public EclipseLinkOrmManyToManyMappingTests(String name) {
-		super(name);
-	}
-	
-	private void createTestDepartment() throws Exception {
-		SourceWriter sourceWriter = new SourceWriter() {
-			public void appendSourceTo(StringBuilder sb) {
-				sb.append(CR);
-					sb.append("import ").append(JPA.ENTITY).append(";");
-					sb.append(CR);
-					sb.append("import ").append(JPA.ID).append(";");
-					sb.append(CR);
-					sb.append("import java.util.Collection;");
-					sb.append(CR);
-					sb.append("import ").append(JPA.MANY_TO_MANY).append(";");
-					sb.append(CR);
-					sb.append("import ").append(JPA.JOIN_TABLE).append(";");
-					sb.append(CR);
-					sb.append("import ").append(JPA.JOIN_COLUMN).append(";");
-				sb.append("@Entity");
-				sb.append(CR);
-				sb.append("public class ").append("Department").append(" ");
-				sb.append("{").append(CR);
-				sb.append(CR);
-				sb.append("    @Id").append(CR);
-				sb.append("    private int id;").append(CR);
-				sb.append(CR);
-				sb.append("    @ManyToMany").append(CR);
-				sb.append("    @JoinTable(name=\"DEP_EMP\", joinColumns=@JoinColumn(name=\"DEPT_ID\"), inverseJoinColumns=@JoinColumn(name=\"EMP_ID\"))").append(CR);
-				sb.append("    private Collection<Employee> employees;").append(CR);
-				sb.append(CR);
-				sb.append("}").append(CR);
-		}
-		};
-		this.javaProject.createCompilationUnit(PACKAGE_NAME, "Department.java", sourceWriter);
-	}
-
-	private void createTestEmployee() throws Exception {
-		SourceWriter sourceWriter = new SourceWriter() {
-			public void appendSourceTo(StringBuilder sb) {
-				sb.append(CR);
-					sb.append("import ").append(JPA.ENTITY).append(";");
-					sb.append(CR);
-					sb.append("import ").append(JPA.ID).append(";");
-					sb.append(CR);
-			sb.append("@Entity");
-				sb.append(CR);
-				sb.append("public class ").append("Employee").append(" ");
-				sb.append("{").append(CR);
-				sb.append(CR);
-				sb.append("    @Id").append(CR);
-				sb.append("    private int empId;").append(CR);
-				sb.append(CR);
-				sb.append("}").append(CR);
-		}
-		};
-		this.javaProject.createCompilationUnit(PACKAGE_NAME, "Employee.java", sourceWriter);
-	}	
-	public void testUpdateJoinFetch() throws Exception {
-		OrmPersistentType ormPersistentType = 
-			getEntityMappings().addPersistentType(MappingKeys.ENTITY_TYPE_MAPPING_KEY, FULLY_QUALIFIED_TYPE_NAME);
-		OrmPersistentAttribute ormPersistentAttribute =
-			ormPersistentType.addSpecifiedPersistentAttribute(MappingKeys.MANY_TO_MANY_ATTRIBUTE_MAPPING_KEY, "manyToMany");
-		EclipseLinkRelationshipMapping contextManyToMany = 
-			(EclipseLinkRelationshipMapping) ormPersistentAttribute.getMapping();
-		XmlEntity resourceEntity = 
-			(XmlEntity) getXmlEntityMappings().getEntities().get(0);
-		XmlManyToMany resourceManyToMany = 
-			(XmlManyToMany) resourceEntity.getAttributes().getManyToManys().get(0);
-		
-		// check defaults
-		
-		assertNull(resourceManyToMany.getJoinFetch());
-		assertNull(contextManyToMany.getJoinFetch().getValue());
-		
-		// set xml join fetch to INNER, check context
-		
-		resourceManyToMany.setJoinFetch(XmlJoinFetchType.INNER);
-		
-		assertEquals(XmlJoinFetchType.INNER, resourceManyToMany.getJoinFetch());
-		assertEquals(JoinFetchType.INNER, contextManyToMany.getJoinFetch().getValue());
-		
-		// set xml join fetch to OUTER, check context
-		
-		resourceManyToMany.setJoinFetch(XmlJoinFetchType.OUTER);
-		
-		assertEquals(XmlJoinFetchType.OUTER, resourceManyToMany.getJoinFetch());
-		assertEquals(JoinFetchType.OUTER, contextManyToMany.getJoinFetch().getValue());
-		
-		// set xml join fetch to null, check context
-		
-		resourceManyToMany.setJoinFetch(null);
-		
-		assertNull(resourceManyToMany.getJoinFetch());
-		assertNull(contextManyToMany.getJoinFetch().getValue());
-	}
-	
-	public void testModifyJoinFetch() throws Exception {
-		OrmPersistentType ormPersistentType = 
-			getEntityMappings().addPersistentType(MappingKeys.ENTITY_TYPE_MAPPING_KEY, FULLY_QUALIFIED_TYPE_NAME);
-		OrmPersistentAttribute ormPersistentAttribute =
-			ormPersistentType.addSpecifiedPersistentAttribute(MappingKeys.MANY_TO_MANY_ATTRIBUTE_MAPPING_KEY, "manyToMany");
-		EclipseLinkRelationshipMapping contextManyToMany = 
-			(EclipseLinkRelationshipMapping) ormPersistentAttribute.getMapping();
-		XmlEntity resourceEntity = 
-			(XmlEntity)getXmlEntityMappings().getEntities().get(0);
-		XmlManyToMany resourceManyToMany = 
-			(XmlManyToMany) resourceEntity.getAttributes().getManyToManys().get(0);
-		
-		// check defaults
-		
-		assertNull(resourceManyToMany.getJoinFetch());
-		assertNull(contextManyToMany.getJoinFetch().getValue());
-		
-		// set context join fetch to INNER, check resource
-		
-		contextManyToMany.getJoinFetch().setValue(JoinFetchType.INNER);
-		
-		assertEquals(XmlJoinFetchType.INNER, resourceManyToMany.getJoinFetch());
-		assertEquals(JoinFetchType.INNER, contextManyToMany.getJoinFetch().getValue());
-		
-		// set context join fetch to OUTER, check resource
-		
-		contextManyToMany.getJoinFetch().setValue(JoinFetchType.OUTER);
-		
-		assertEquals(XmlJoinFetchType.OUTER, resourceManyToMany.getJoinFetch());
-		assertEquals(JoinFetchType.OUTER, contextManyToMany.getJoinFetch().getValue());
-		
-		// set context join fetch to null, check resource
-		
-		contextManyToMany.getJoinFetch().setValue(null);
-		
-		assertNull(resourceManyToMany.getJoinFetch());
-		assertNull(contextManyToMany.getJoinFetch().getValue());
-	}
-	
-	public void testJoinFetchDefault() throws Exception {
-		createTestEmployee();
-		createTestDepartment();
-		getEntityMappings().addPersistentType(MappingKeys.ENTITY_TYPE_MAPPING_KEY, PACKAGE_NAME + ".Department");
-		getEntityMappings().addPersistentType(MappingKeys.ENTITY_TYPE_MAPPING_KEY, PACKAGE_NAME + ".Employee");
-		
-		OrmPersistentType departmentPersistentType = getEntityMappings().persistentTypes().next();
-		EclipseLinkOrmManyToManyMapping<?> manyToMany = (EclipseLinkOrmManyToManyMapping<?>) departmentPersistentType.getAttributeNamed("employees").getMapping();
-
-		assertNull(manyToMany.getJoinFetch().getValue());
-		
-		getEntityMappings().getPersistenceUnitMetadata().setXmlMappingMetadataComplete(true);
-		EclipseLinkOrmOneToManyMapping<?> oneToMany = (EclipseLinkOrmOneToManyMapping<?>) departmentPersistentType.getAttributeNamed("employees").getMapping();
-		assertNull(oneToMany.getJoinFetch().getValue());
-		
-		
-		EclipseLinkRelationshipMapping javaRelationshipMapping = (EclipseLinkRelationshipMapping) departmentPersistentType.getJavaPersistentType().getAttributeNamed("employees").getMapping();
-		javaRelationshipMapping.getJoinFetch().setValue(JoinFetchType.OUTER);
-		assertNull(oneToMany.getJoinFetch().getValue());
-		
-		getEntityMappings().getPersistenceUnitMetadata().setXmlMappingMetadataComplete(false);
-		manyToMany = (EclipseLinkOrmManyToManyMapping<?>) departmentPersistentType.getAttributeNamed("employees").getMapping();
-		assertEquals(JoinFetchType.OUTER, manyToMany.getJoinFetch().getValue());
-	}
-	
-	public void testDefaultJoinTable() throws Exception {
-		createTestEmployee();
-		createTestDepartment();
-		getEntityMappings().addPersistentType(MappingKeys.ENTITY_TYPE_MAPPING_KEY, PACKAGE_NAME + ".Department");
-		getEntityMappings().addPersistentType(MappingKeys.ENTITY_TYPE_MAPPING_KEY, PACKAGE_NAME + ".Employee");
-		
-		OrmPersistentType departmentPersistentType = getEntityMappings().persistentTypes().next();
-		OrmManyToManyMapping manyToMany = (OrmManyToManyMapping) departmentPersistentType.getAttributeNamed("employees").getMapping();
-		
-		assertEquals(true, manyToMany.getPersistentAttribute().isVirtual());
-		OrmJoinTable ormJoinTable = manyToMany.getRelationshipReference().getJoinTableJoiningStrategy().getJoinTable();
-		assertEquals("DEP_EMP", ormJoinTable.getName());
-		assertEquals("DEPT_ID", ormJoinTable.specifiedJoinColumns().next().getName());
-		assertEquals("id", ormJoinTable.specifiedJoinColumns().next().getReferencedColumnName());
-		assertEquals("EMP_ID", ormJoinTable.specifiedInverseJoinColumns().next().getName());
-		assertEquals("empId", ormJoinTable.specifiedInverseJoinColumns().next().getReferencedColumnName());
-
-		//set metadata-complete and verify JoinTable info is not taken from the java
-		departmentPersistentType.getMapping().setSpecifiedMetadataComplete(Boolean.TRUE);
-		departmentPersistentType.addSpecifiedPersistentAttribute(MappingKeys.ID_ATTRIBUTE_MAPPING_KEY, "id");
-		OrmOneToManyMapping oneToMany = (OrmOneToManyMapping) departmentPersistentType.getAttributeNamed("employees").getMapping();
-		
-		assertEquals(true, oneToMany.getPersistentAttribute().isVirtual());
-		ormJoinTable = oneToMany.getRelationshipReference().getJoinTableJoiningStrategy().getJoinTable();
-		assertEquals("Department_Employee", ormJoinTable.getName());
-		assertEquals("Department_id", ormJoinTable.specifiedJoinColumns().next().getName());
-		assertEquals("id", ormJoinTable.specifiedJoinColumns().next().getReferencedColumnName());
-		assertEquals("employees_empId", ormJoinTable.specifiedInverseJoinColumns().next().getName());
-		assertEquals("empId", ormJoinTable.specifiedInverseJoinColumns().next().getReferencedColumnName());
-		
-		//set metadata-complete to false, add mapping to orm.xml verify JoinTable info is not taken from the java
-		departmentPersistentType.getMapping().setSpecifiedMetadataComplete(Boolean.FALSE);
-		manyToMany = (OrmManyToManyMapping) departmentPersistentType.getAttributeNamed("employees").getMapping();
-		assertEquals(true, manyToMany.getPersistentAttribute().isVirtual());
-		ormJoinTable = manyToMany.getRelationshipReference().getJoinTableJoiningStrategy().getJoinTable();
-		assertEquals("DEP_EMP", ormJoinTable.getName());
-		assertEquals("DEPT_ID", ormJoinTable.specifiedJoinColumns().next().getName());
-		assertEquals("id", ormJoinTable.specifiedJoinColumns().next().getReferencedColumnName());
-		assertEquals("EMP_ID", ormJoinTable.specifiedInverseJoinColumns().next().getName());
-		assertEquals("empId", ormJoinTable.specifiedInverseJoinColumns().next().getReferencedColumnName());
-
-		
-		departmentPersistentType.addSpecifiedPersistentAttribute(MappingKeys.MANY_TO_MANY_ATTRIBUTE_MAPPING_KEY, "employees");
-		manyToMany = (OrmManyToManyMapping) departmentPersistentType.getAttributeNamed("employees").getMapping();
-		assertEquals(false, manyToMany.getPersistentAttribute().isVirtual());
-		ormJoinTable = manyToMany.getRelationshipReference().getJoinTableJoiningStrategy().getJoinTable();
-		assertEquals("Department_Employee", ormJoinTable.getName());
-		assertEquals(0, ormJoinTable.specifiedJoinColumnsSize());
-		assertEquals("Department_id", ormJoinTable.getDefaultJoinColumn().getName());
-		assertEquals("id", ormJoinTable.getDefaultJoinColumn().getReferencedColumnName());
-		assertEquals(0, ormJoinTable.specifiedInverseJoinColumnsSize());
-		assertEquals("employees_empId", ormJoinTable.getDefaultInverseJoinColumn().getName());
-		assertEquals("empId", ormJoinTable.getDefaultInverseJoinColumn().getReferencedColumnName());
-	
-	}
-}
diff --git a/jpa/tests/org.eclipse.jpt.eclipselink.core.tests/src/org/eclipse/jpt/eclipselink/core/tests/internal/context/orm/EclipseLinkOrmManyToOneMappingTests.java b/jpa/tests/org.eclipse.jpt.eclipselink.core.tests/src/org/eclipse/jpt/eclipselink/core/tests/internal/context/orm/EclipseLinkOrmManyToOneMappingTests.java
deleted file mode 100644
index 3b2465f..0000000
--- a/jpa/tests/org.eclipse.jpt.eclipselink.core.tests/src/org/eclipse/jpt/eclipselink/core/tests/internal/context/orm/EclipseLinkOrmManyToOneMappingTests.java
+++ /dev/null
@@ -1,185 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008, 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- *******************************************************************************/
-package org.eclipse.jpt.eclipselink.core.tests.internal.context.orm;
-
-import org.eclipse.jpt.core.MappingKeys;
-import org.eclipse.jpt.core.context.orm.OrmPersistentAttribute;
-import org.eclipse.jpt.core.context.orm.OrmPersistentType;
-import org.eclipse.jpt.core.resource.java.JPA;
-import org.eclipse.jpt.core.tests.internal.projects.TestJavaProject.SourceWriter;
-import org.eclipse.jpt.eclipselink.core.context.EclipseLinkRelationshipMapping;
-import org.eclipse.jpt.eclipselink.core.context.JoinFetchType;
-import org.eclipse.jpt.eclipselink.core.internal.context.orm.EclipseLinkOrmManyToOneMapping;
-import org.eclipse.jpt.eclipselink.core.internal.context.orm.EclipseLinkOrmOneToOneMapping;
-import org.eclipse.jpt.eclipselink.core.resource.orm.XmlEntity;
-import org.eclipse.jpt.eclipselink.core.resource.orm.XmlJoinFetchType;
-import org.eclipse.jpt.eclipselink.core.resource.orm.XmlManyToOne;
-
-@SuppressWarnings("nls")
-public class EclipseLinkOrmManyToOneMappingTests
-	extends EclipseLinkOrmContextModelTestCase
-{
-	public EclipseLinkOrmManyToOneMappingTests(String name) {
-		super(name);
-	}
-	
-	private void createTestDepartment() throws Exception {
-		SourceWriter sourceWriter = new SourceWriter() {
-			public void appendSourceTo(StringBuilder sb) {
-				sb.append(CR);
-					sb.append("import ").append(JPA.ENTITY).append(";");
-					sb.append(CR);
-					sb.append("import ").append(JPA.ID).append(";");
-					sb.append(CR);
-					sb.append(CR);
-					sb.append("import ").append(JPA.MANY_TO_ONE).append(";");
-				sb.append("@Entity");
-				sb.append(CR);
-				sb.append("public class ").append("Department").append(" ");
-				sb.append("{").append(CR);
-				sb.append(CR);
-				sb.append("    @Id").append(CR);
-				sb.append("    private int id;").append(CR);
-				sb.append(CR);
-				sb.append("    @ManyToOne").append(CR);
-				sb.append("    private Employee employee;").append(CR);
-				sb.append(CR);
-				sb.append("}").append(CR);
-		}
-		};
-		this.javaProject.createCompilationUnit(PACKAGE_NAME, "Department.java", sourceWriter);
-	}
-
-	private void createTestEmployee() throws Exception {
-		SourceWriter sourceWriter = new SourceWriter() {
-			public void appendSourceTo(StringBuilder sb) {
-				sb.append(CR);
-					sb.append("import ").append(JPA.ENTITY).append(";");
-					sb.append(CR);
-					sb.append("import ").append(JPA.ID).append(";");
-					sb.append(CR);
-			sb.append("@Entity");
-				sb.append(CR);
-				sb.append("public class ").append("Employee").append(" ");
-				sb.append("{").append(CR);
-				sb.append(CR);
-				sb.append("    @Id").append(CR);
-				sb.append("    private int empId;").append(CR);
-				sb.append(CR);
-				sb.append("}").append(CR);
-		}
-		};
-		this.javaProject.createCompilationUnit(PACKAGE_NAME, "Employee.java", sourceWriter);
-	}
-	
-	public void testUpdateJoinFetch() throws Exception {
-		OrmPersistentType ormPersistentType = 
-			getEntityMappings().addPersistentType(MappingKeys.ENTITY_TYPE_MAPPING_KEY, FULLY_QUALIFIED_TYPE_NAME);
-		OrmPersistentAttribute ormPersistentAttribute =
-			ormPersistentType.addSpecifiedPersistentAttribute(MappingKeys.MANY_TO_ONE_ATTRIBUTE_MAPPING_KEY, "manyToOne");
-		EclipseLinkRelationshipMapping contextManyToOne = 
-			(EclipseLinkRelationshipMapping) ormPersistentAttribute.getMapping();
-		XmlEntity resourceEntity = 
-			(XmlEntity) getXmlEntityMappings().getEntities().get(0);
-		XmlManyToOne resourceManyToOne = 
-			(XmlManyToOne) resourceEntity.getAttributes().getManyToOnes().get(0);
-		
-		// check defaults
-		
-		assertNull(resourceManyToOne.getJoinFetch());
-		assertNull(contextManyToOne.getJoinFetch().getValue());
-		
-		// set xml join fetch to INNER, check context
-		
-		resourceManyToOne.setJoinFetch(XmlJoinFetchType.INNER);
-		
-		assertEquals(XmlJoinFetchType.INNER, resourceManyToOne.getJoinFetch());
-		assertEquals(JoinFetchType.INNER, contextManyToOne.getJoinFetch().getValue());
-		
-		// set xml join fetch to OUTER, check context
-		
-		resourceManyToOne.setJoinFetch(XmlJoinFetchType.OUTER);
-		
-		assertEquals(XmlJoinFetchType.OUTER, resourceManyToOne.getJoinFetch());
-		assertEquals(JoinFetchType.OUTER, contextManyToOne.getJoinFetch().getValue());
-		
-		// set xml join fetch to null, check context
-		
-		resourceManyToOne.setJoinFetch(null);
-		
-		assertNull(resourceManyToOne.getJoinFetch());
-		assertNull(contextManyToOne.getJoinFetch().getValue());
-	}
-	
-	public void testModifyJoinFetch() throws Exception {
-		OrmPersistentType ormPersistentType = 
-			getEntityMappings().addPersistentType(MappingKeys.ENTITY_TYPE_MAPPING_KEY, FULLY_QUALIFIED_TYPE_NAME);
-		OrmPersistentAttribute ormPersistentAttribute =
-			ormPersistentType.addSpecifiedPersistentAttribute(MappingKeys.MANY_TO_ONE_ATTRIBUTE_MAPPING_KEY, "manyToOne");
-		EclipseLinkRelationshipMapping contextManyToOne = 
-			(EclipseLinkRelationshipMapping) ormPersistentAttribute.getMapping();
-		XmlEntity resourceEntity = 
-			(XmlEntity)getXmlEntityMappings().getEntities().get(0);
-		XmlManyToOne resourceManyToOne = 
-			(XmlManyToOne) resourceEntity.getAttributes().getManyToOnes().get(0);
-		
-		// check defaults
-		
-		assertNull(resourceManyToOne.getJoinFetch());
-		assertNull(contextManyToOne.getJoinFetch().getValue());
-		
-		// set context join fetch to INNER, check resource
-		
-		contextManyToOne.getJoinFetch().setValue(JoinFetchType.INNER);
-		
-		assertEquals(XmlJoinFetchType.INNER, resourceManyToOne.getJoinFetch());
-		assertEquals(JoinFetchType.INNER, contextManyToOne.getJoinFetch().getValue());
-		
-		// set context join fetch to OUTER, check resource
-		
-		contextManyToOne.getJoinFetch().setValue(JoinFetchType.OUTER);
-		
-		assertEquals(XmlJoinFetchType.OUTER, resourceManyToOne.getJoinFetch());
-		assertEquals(JoinFetchType.OUTER, contextManyToOne.getJoinFetch().getValue());
-		
-		// set context join fetch to null, check resource
-		
-		contextManyToOne.getJoinFetch().setValue(null);
-		
-		assertNull(resourceManyToOne.getJoinFetch());
-		assertNull(contextManyToOne.getJoinFetch().getValue());
-	}
-	
-	public void testJoinFetchDefaultFromJava() throws Exception {
-		createTestEmployee();
-		createTestDepartment();
-		getEntityMappings().addPersistentType(MappingKeys.ENTITY_TYPE_MAPPING_KEY, PACKAGE_NAME + ".Department");
-		getEntityMappings().addPersistentType(MappingKeys.ENTITY_TYPE_MAPPING_KEY, PACKAGE_NAME + ".Employee");
-		
-		OrmPersistentType departmentPersistentType = getEntityMappings().persistentTypes().next();
-		EclipseLinkOrmManyToOneMapping<?> manyToOne = (EclipseLinkOrmManyToOneMapping<?>) departmentPersistentType.getAttributeNamed("employee").getMapping();
-
-		assertNull(manyToOne.getJoinFetch().getValue());
-		
-		getEntityMappings().getPersistenceUnitMetadata().setXmlMappingMetadataComplete(true);
-		EclipseLinkOrmOneToOneMapping<?> oneToOne = (EclipseLinkOrmOneToOneMapping<?>) departmentPersistentType.getAttributeNamed("employee").getMapping();
-		assertNull(manyToOne.getJoinFetch().getValue());
-		
-		
-		EclipseLinkRelationshipMapping javaRelationshipMapping = (EclipseLinkRelationshipMapping) departmentPersistentType.getJavaPersistentType().getAttributeNamed("employee").getMapping();
-		javaRelationshipMapping.getJoinFetch().setValue(JoinFetchType.OUTER);
-		assertNull(manyToOne.getJoinFetch().getValue());
-		
-		getEntityMappings().getPersistenceUnitMetadata().setXmlMappingMetadataComplete(false);
-		manyToOne = (EclipseLinkOrmManyToOneMapping<?>) departmentPersistentType.getAttributeNamed("employee").getMapping();
-		assertEquals(JoinFetchType.OUTER, manyToOne.getJoinFetch().getValue());
-	}
-
-}
diff --git a/jpa/tests/org.eclipse.jpt.eclipselink.core.tests/src/org/eclipse/jpt/eclipselink/core/tests/internal/context/orm/EclipseLinkOrmMappedSuperclassTests.java b/jpa/tests/org.eclipse.jpt.eclipselink.core.tests/src/org/eclipse/jpt/eclipselink/core/tests/internal/context/orm/EclipseLinkOrmMappedSuperclassTests.java
deleted file mode 100644
index c7363e4..0000000
--- a/jpa/tests/org.eclipse.jpt.eclipselink.core.tests/src/org/eclipse/jpt/eclipselink/core/tests/internal/context/orm/EclipseLinkOrmMappedSuperclassTests.java
+++ /dev/null
@@ -1,2146 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008, 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- *******************************************************************************/
-package org.eclipse.jpt.eclipselink.core.tests.internal.context.orm;
-
-import java.util.Iterator;
-import java.util.ListIterator;
-import org.eclipse.jdt.core.ICompilationUnit;
-import org.eclipse.jpt.core.MappingKeys;
-import org.eclipse.jpt.core.context.orm.OrmPersistentType;
-import org.eclipse.jpt.core.resource.java.JPA;
-import org.eclipse.jpt.eclipselink.core.context.CacheCoordinationType;
-import org.eclipse.jpt.eclipselink.core.context.CacheType;
-import org.eclipse.jpt.eclipselink.core.context.Caching;
-import org.eclipse.jpt.eclipselink.core.context.ChangeTrackingType;
-import org.eclipse.jpt.eclipselink.core.context.CustomConverter;
-import org.eclipse.jpt.eclipselink.core.context.ExistenceType;
-import org.eclipse.jpt.eclipselink.core.context.ObjectTypeConverter;
-import org.eclipse.jpt.eclipselink.core.context.StructConverter;
-import org.eclipse.jpt.eclipselink.core.context.TypeConverter;
-import org.eclipse.jpt.eclipselink.core.context.java.EclipseLinkJavaMappedSuperclass;
-import org.eclipse.jpt.eclipselink.core.context.java.JavaCaching;
-import org.eclipse.jpt.eclipselink.core.internal.context.orm.ConverterHolder;
-import org.eclipse.jpt.eclipselink.core.internal.context.orm.EclipseLinkOrmMappedSuperclass;
-import org.eclipse.jpt.eclipselink.core.internal.context.persistence.EclipseLinkPersistenceUnit;
-import org.eclipse.jpt.eclipselink.core.resource.java.EclipseLinkJPA;
-import org.eclipse.jpt.eclipselink.core.resource.orm.EclipseLinkOrmFactory;
-import org.eclipse.jpt.eclipselink.core.resource.orm.XmlChangeTrackingType;
-import org.eclipse.jpt.eclipselink.core.resource.orm.XmlConverter;
-import org.eclipse.jpt.eclipselink.core.resource.orm.XmlMappedSuperclass;
-import org.eclipse.jpt.eclipselink.core.resource.orm.XmlObjectTypeConverter;
-import org.eclipse.jpt.eclipselink.core.resource.orm.XmlStructConverter;
-import org.eclipse.jpt.eclipselink.core.resource.orm.XmlTypeConverter;
-import org.eclipse.jpt.utility.internal.CollectionTools;
-import org.eclipse.jpt.utility.internal.iterators.ArrayIterator;
-
-@SuppressWarnings("nls")
-public class EclipseLinkOrmMappedSuperclassTests extends EclipseLinkOrmContextModelTestCase
-{
-	public EclipseLinkOrmMappedSuperclassTests(String name) {
-		super(name);
-	}
-	
-	
-	private ICompilationUnit createTestMappedSuperclassForReadOnly() throws Exception {
-		return this.createTestType(new DefaultAnnotationWriter() {
-			@Override
-			public Iterator<String> imports() {
-				return new ArrayIterator<String>(JPA.MAPPED_SUPERCLASS, EclipseLinkJPA.READ_ONLY);
-			}
-			@Override
-			public void appendTypeAnnotationTo(StringBuilder sb) {
-				sb.append("@MappedSuperclass").append(CR);
-			}
-		});
-	}
-	
-	private ICompilationUnit createTestMappedSuperclassForCustomizer() throws Exception {
-		return this.createTestType(new DefaultAnnotationWriter() {
-			@Override
-			public Iterator<String> imports() {
-				return new ArrayIterator<String>(JPA.MAPPED_SUPERCLASS, EclipseLinkJPA.CUSTOMIZER);
-			}
-			@Override
-			public void appendTypeAnnotationTo(StringBuilder sb) {
-				sb.append("@MappedSuperclass").append(CR);
-			}
-		});
-	}
-	
-	private ICompilationUnit createTestMappedSuperclassForChangeTracking() throws Exception {
-		return this.createTestType(new DefaultAnnotationWriter() {
-			@Override
-			public Iterator<String> imports() {
-				return new ArrayIterator<String>(JPA.MAPPED_SUPERCLASS, EclipseLinkJPA.CHANGE_TRACKING);
-			}
-			
-			@Override
-			public void appendTypeAnnotationTo(StringBuilder sb) {
-				sb.append("@MappedSuperclass").append(CR);
-			}
-		});
-	}
-	
-	private ICompilationUnit createTestMappedSuperclassForCaching() throws Exception {
-		return this.createTestType(new DefaultAnnotationWriter() {
-			@Override
-			public Iterator<String> imports() {
-				return new ArrayIterator<String>(JPA.MAPPED_SUPERCLASS);
-			}
-			@Override
-			public void appendTypeAnnotationTo(StringBuilder sb) {
-				sb.append("@MappedSuperclass").append(CR);
-			}
-		});
-	}
-
-	private ICompilationUnit createTestMappedSuperclassForConverters() throws Exception {
-		return this.createTestType(new DefaultAnnotationWriter() {
-			@Override
-			public Iterator<String> imports() {
-				return new ArrayIterator<String>(JPA.MAPPED_SUPERCLASS);
-			}
-			@Override
-			public void appendTypeAnnotationTo(StringBuilder sb) {
-				sb.append("@MappedSuperclass").append(CR);
-			}
-		});
-	}
-
-	private ICompilationUnit createTestMappedSuperclassForTypeConverters() throws Exception {
-		return this.createTestType(new DefaultAnnotationWriter() {
-			@Override
-			public Iterator<String> imports() {
-				return new ArrayIterator<String>(JPA.MAPPED_SUPERCLASS);
-			}
-			@Override
-			public void appendTypeAnnotationTo(StringBuilder sb) {
-				sb.append("@MappedSuperclass").append(CR);
-			}
-		});
-	}
-
-	private ICompilationUnit createTestMappedSuperclassForObjectTypeConverters() throws Exception {
-		return this.createTestType(new DefaultAnnotationWriter() {
-			@Override
-			public Iterator<String> imports() {
-				return new ArrayIterator<String>(JPA.MAPPED_SUPERCLASS);
-			}
-			@Override
-			public void appendTypeAnnotationTo(StringBuilder sb) {
-				sb.append("@MappedSuperclass").append(CR);
-			}
-		});
-	}
-
-	private ICompilationUnit createTestMappedSuperclassForStructConverters() throws Exception {
-		return this.createTestType(new DefaultAnnotationWriter() {
-			@Override
-			public Iterator<String> imports() {
-				return new ArrayIterator<String>(JPA.MAPPED_SUPERCLASS);
-			}
-			@Override
-			public void appendTypeAnnotationTo(StringBuilder sb) {
-				sb.append("@MappedSuperclass").append(CR);
-			}
-		});
-	}
-	
-	public void testUpdateReadOnly() throws Exception {
-		createTestMappedSuperclassForReadOnly();
-		OrmPersistentType ormPersistentType = getEntityMappings().addPersistentType(MappingKeys.MAPPED_SUPERCLASS_TYPE_MAPPING_KEY, FULLY_QUALIFIED_TYPE_NAME);
-		EclipseLinkJavaMappedSuperclass javaContextMappedSuperclass = (EclipseLinkJavaMappedSuperclass) ormPersistentType.getJavaPersistentType().getMapping();
-		EclipseLinkOrmMappedSuperclass ormContextMappedSuperclass = (EclipseLinkOrmMappedSuperclass) ormPersistentType.getMapping();
-		XmlMappedSuperclass resourceMappedSuperclass = (XmlMappedSuperclass) getXmlEntityMappings().getMappedSuperclasses().get(0);
-		
-		// check defaults
-		
-		assertNull(resourceMappedSuperclass.getReadOnly());
-		assertFalse(javaContextMappedSuperclass.getReadOnly().isReadOnly());
-		assertFalse(ormContextMappedSuperclass.getReadOnly().isReadOnly());
-		assertFalse(ormContextMappedSuperclass.getReadOnly().isDefaultReadOnly());
-		assertNull(ormContextMappedSuperclass.getReadOnly().getSpecifiedReadOnly());
-		
-		// set xml read only to false, check override
-		
-		resourceMappedSuperclass.setReadOnly(Boolean.FALSE);
-		
-		assertEquals(Boolean.FALSE, resourceMappedSuperclass.getReadOnly());
-		assertFalse(javaContextMappedSuperclass.getReadOnly().isReadOnly());
-		assertFalse(ormContextMappedSuperclass.getReadOnly().isReadOnly());
-		assertFalse(ormContextMappedSuperclass.getReadOnly().isDefaultReadOnly());
-		assertEquals(Boolean.FALSE, ormContextMappedSuperclass.getReadOnly().getSpecifiedReadOnly());
-		
-		// set xml read only to true, check override
-		
-		resourceMappedSuperclass.setReadOnly(Boolean.TRUE);
-		
-		assertEquals(Boolean.TRUE, resourceMappedSuperclass.getReadOnly());
-		assertFalse(javaContextMappedSuperclass.getReadOnly().isReadOnly());
-		assertTrue(ormContextMappedSuperclass.getReadOnly().isReadOnly());
-		assertFalse(ormContextMappedSuperclass.getReadOnly().isDefaultReadOnly());
-		assertEquals(Boolean.TRUE, ormContextMappedSuperclass.getReadOnly().getSpecifiedReadOnly());
-		
-		// clear xml read only, set java read only to true, check defaults
-		
-		resourceMappedSuperclass.setReadOnly(null);
-		javaContextMappedSuperclass.getReadOnly().setSpecifiedReadOnly(Boolean.TRUE);
-		
-		assertNull(resourceMappedSuperclass.getReadOnly());
-		assertTrue(javaContextMappedSuperclass.getReadOnly().isReadOnly());
-		assertTrue(ormContextMappedSuperclass.getReadOnly().isReadOnly());
-		assertTrue(ormContextMappedSuperclass.getReadOnly().isDefaultReadOnly());
-		assertNull(ormContextMappedSuperclass.getReadOnly().getSpecifiedReadOnly());
-		
-		// set metadataComplete to True, check defaults not from java
-
-		ormContextMappedSuperclass.setSpecifiedMetadataComplete(Boolean.TRUE);
-		
-		assertNull(resourceMappedSuperclass.getReadOnly());
-		assertTrue(javaContextMappedSuperclass.getReadOnly().isReadOnly());
-		assertFalse(ormContextMappedSuperclass.getReadOnly().isReadOnly());
-		assertFalse(ormContextMappedSuperclass.getReadOnly().isDefaultReadOnly());
-		assertNull(ormContextMappedSuperclass.getReadOnly().getSpecifiedReadOnly());
-
-		ormContextMappedSuperclass.setSpecifiedMetadataComplete(null);
-
-		// set xml read only to false, check override
-		
-		resourceMappedSuperclass.setReadOnly(Boolean.FALSE);
-		
-		assertEquals(Boolean.FALSE, resourceMappedSuperclass.getReadOnly());
-		assertTrue(javaContextMappedSuperclass.getReadOnly().isReadOnly());
-		assertFalse(ormContextMappedSuperclass.getReadOnly().isReadOnly());
-		assertTrue(ormContextMappedSuperclass.getReadOnly().isDefaultReadOnly());
-		assertEquals(Boolean.FALSE, ormContextMappedSuperclass.getReadOnly().getSpecifiedReadOnly());
-		
-		// set xml read only to true, check override
-		
-		resourceMappedSuperclass.setReadOnly(Boolean.TRUE);
-		
-		assertEquals(Boolean.TRUE, resourceMappedSuperclass.getReadOnly());
-		assertTrue(javaContextMappedSuperclass.getReadOnly().isReadOnly());
-		assertTrue(ormContextMappedSuperclass.getReadOnly().isReadOnly());
-		assertTrue(ormContextMappedSuperclass.getReadOnly().isDefaultReadOnly());
-		assertEquals(Boolean.TRUE, ormContextMappedSuperclass.getReadOnly().getSpecifiedReadOnly());
-		
-		// clear xml read only, set java read only to false, check defaults
-		
-		resourceMappedSuperclass.setReadOnly(null);
-		javaContextMappedSuperclass.getReadOnly().setSpecifiedReadOnly(Boolean.FALSE);
-		
-		assertNull(resourceMappedSuperclass.getReadOnly());
-		assertFalse(javaContextMappedSuperclass.getReadOnly().isReadOnly());
-		assertFalse(ormContextMappedSuperclass.getReadOnly().isReadOnly());
-		assertFalse(ormContextMappedSuperclass.getReadOnly().isDefaultReadOnly());
-		assertNull(ormContextMappedSuperclass.getReadOnly().getSpecifiedReadOnly());
-		
-		// set xml read only to false, check override
-		
-		resourceMappedSuperclass.setReadOnly(Boolean.FALSE);
-		
-		assertEquals(Boolean.FALSE, resourceMappedSuperclass.getReadOnly());
-		assertFalse(javaContextMappedSuperclass.getReadOnly().isReadOnly());
-		assertFalse(ormContextMappedSuperclass.getReadOnly().isReadOnly());
-		assertFalse(ormContextMappedSuperclass.getReadOnly().isDefaultReadOnly());
-		assertEquals(Boolean.FALSE, ormContextMappedSuperclass.getReadOnly().getSpecifiedReadOnly());
-		
-		// set xml read only to true, check override
-		
-		resourceMappedSuperclass.setReadOnly(Boolean.TRUE);
-		
-		assertEquals(Boolean.TRUE, resourceMappedSuperclass.getReadOnly());
-		assertFalse(javaContextMappedSuperclass.getReadOnly().isReadOnly());
-		assertTrue(ormContextMappedSuperclass.getReadOnly().isReadOnly());
-		assertFalse(ormContextMappedSuperclass.getReadOnly().isDefaultReadOnly());
-		assertEquals(Boolean.TRUE, ormContextMappedSuperclass.getReadOnly().getSpecifiedReadOnly());
-	}
-	
-	public void testModifyReadOnly() throws Exception {
-		createTestMappedSuperclassForReadOnly();
-		OrmPersistentType ormPersistentType = getEntityMappings().addPersistentType(MappingKeys.MAPPED_SUPERCLASS_TYPE_MAPPING_KEY, FULLY_QUALIFIED_TYPE_NAME);
-		EclipseLinkOrmMappedSuperclass ormContextMappedSuperclass = (EclipseLinkOrmMappedSuperclass) ormPersistentType.getMapping();
-		XmlMappedSuperclass resourceMappedSuperclass = (XmlMappedSuperclass) getXmlEntityMappings().getMappedSuperclasses().get(0);
-		
-		// check defaults
-		
-		assertNull(resourceMappedSuperclass.getReadOnly());
-		assertFalse(ormContextMappedSuperclass.getReadOnly().isReadOnly());
-		assertFalse(ormContextMappedSuperclass.getReadOnly().isDefaultReadOnly());
-		assertNull(ormContextMappedSuperclass.getReadOnly().getSpecifiedReadOnly());
-		
-		// set context read only to true, check resource
-		
-		ormContextMappedSuperclass.getReadOnly().setSpecifiedReadOnly(Boolean.TRUE);
-		
-		assertEquals(Boolean.TRUE, resourceMappedSuperclass.getReadOnly());
-		assertTrue(ormContextMappedSuperclass.getReadOnly().isReadOnly());
-		assertFalse(ormContextMappedSuperclass.getReadOnly().isDefaultReadOnly());
-		assertEquals(Boolean.TRUE, ormContextMappedSuperclass.getReadOnly().getSpecifiedReadOnly());
-		
-		// set context read only to false, check resource
-		
-		ormContextMappedSuperclass.getReadOnly().setSpecifiedReadOnly(Boolean.FALSE);
-		
-		assertEquals(Boolean.FALSE, resourceMappedSuperclass.getReadOnly());
-		assertFalse(ormContextMappedSuperclass.getReadOnly().isReadOnly());
-		assertFalse(ormContextMappedSuperclass.getReadOnly().isDefaultReadOnly());
-		assertEquals(Boolean.FALSE, ormContextMappedSuperclass.getReadOnly().getSpecifiedReadOnly());
-		
-		// set context read only to null, check resource
-		
-		ormContextMappedSuperclass.getReadOnly().setSpecifiedReadOnly(null);
-		
-		assertNull(resourceMappedSuperclass.getReadOnly());
-		assertFalse(ormContextMappedSuperclass.getReadOnly().isReadOnly());
-		assertFalse(ormContextMappedSuperclass.getReadOnly().isDefaultReadOnly());
-		assertNull(ormContextMappedSuperclass.getReadOnly().getSpecifiedReadOnly());	
-	}
-	
-	public void testUpdateCustomizerClass() throws Exception {
-		createTestMappedSuperclassForCustomizer();
-		OrmPersistentType ormPersistentType = getEntityMappings().addPersistentType(MappingKeys.MAPPED_SUPERCLASS_TYPE_MAPPING_KEY, FULLY_QUALIFIED_TYPE_NAME);
-		EclipseLinkJavaMappedSuperclass javaContextMappedSuperclass = (EclipseLinkJavaMappedSuperclass) ormPersistentType.getJavaPersistentType().getMapping();
-		EclipseLinkOrmMappedSuperclass ormContextMappedSuperclass = (EclipseLinkOrmMappedSuperclass) ormPersistentType.getMapping();
-		XmlMappedSuperclass resourceMappedSuperclass = (XmlMappedSuperclass) getXmlEntityMappings().getMappedSuperclasses().get(0);
-
-
-		// check defaults
-		
-		assertNull(resourceMappedSuperclass.getCustomizer());
-		assertNull(javaContextMappedSuperclass.getCustomizer().getCustomizerClass());
-		assertNull(ormContextMappedSuperclass.getCustomizer().getCustomizerClass());
-		assertNull(ormContextMappedSuperclass.getCustomizer().getDefaultCustomizerClass());
-		assertNull(ormContextMappedSuperclass.getCustomizer().getSpecifiedCustomizerClass());
-		
-		// set xml customizer, check defaults
-		resourceMappedSuperclass.setCustomizer(EclipseLinkOrmFactory.eINSTANCE.createXmlCustomizer());
-		assertNull(resourceMappedSuperclass.getCustomizer().getCustomizerClassName());
-		assertNull(javaContextMappedSuperclass.getCustomizer().getCustomizerClass());
-		assertNull(ormContextMappedSuperclass.getCustomizer().getCustomizerClass());
-		assertNull(ormContextMappedSuperclass.getCustomizer().getDefaultCustomizerClass());
-		assertNull(ormContextMappedSuperclass.getCustomizer().getSpecifiedCustomizerClass());
-
-		
-		// set xml customizer class, check override
-		
-		resourceMappedSuperclass.getCustomizer().setCustomizerClassName("foo");
-		
-		assertEquals("foo", resourceMappedSuperclass.getCustomizer().getCustomizerClassName());
-		assertNull(javaContextMappedSuperclass.getCustomizer().getCustomizerClass());
-		assertEquals("foo", ormContextMappedSuperclass.getCustomizer().getCustomizerClass());
-		assertNull(ormContextMappedSuperclass.getCustomizer().getDefaultCustomizerClass());
-		assertEquals("foo", ormContextMappedSuperclass.getCustomizer().getSpecifiedCustomizerClass());
-		
-		// clear xml customizer class, set java customizer class, check defaults
-		
-		resourceMappedSuperclass.getCustomizer().setCustomizerClassName(null);
-		javaContextMappedSuperclass.getCustomizer().setSpecifiedCustomizerClass("bar");
-		
-		assertNull(resourceMappedSuperclass.getCustomizer().getCustomizerClassName());
-		assertEquals("bar", javaContextMappedSuperclass.getCustomizer().getCustomizerClass());
-		assertEquals("bar", ormContextMappedSuperclass.getCustomizer().getCustomizerClass());
-		assertEquals("bar", ormContextMappedSuperclass.getCustomizer().getDefaultCustomizerClass());
-		assertNull(ormContextMappedSuperclass.getCustomizer().getSpecifiedCustomizerClass());
-
-		// set metadataComplete to True, check defaults not from java
-
-		ormContextMappedSuperclass.setSpecifiedMetadataComplete(Boolean.TRUE);
-		
-		assertNull(resourceMappedSuperclass.getCustomizer().getCustomizerClassName());
-		assertEquals("bar", javaContextMappedSuperclass.getCustomizer().getCustomizerClass());
-		assertNull(ormContextMappedSuperclass.getCustomizer().getCustomizerClass());
-		assertNull(ormContextMappedSuperclass.getCustomizer().getDefaultCustomizerClass());
-		assertNull(ormContextMappedSuperclass.getCustomizer().getSpecifiedCustomizerClass());
-
-		ormContextMappedSuperclass.setSpecifiedMetadataComplete(null);
-		
-		// set xml customizer class, check override
-		
-		resourceMappedSuperclass.getCustomizer().setCustomizerClassName("foo");
-		
-		assertEquals("foo", resourceMappedSuperclass.getCustomizer().getCustomizerClassName());
-		assertEquals("bar", javaContextMappedSuperclass.getCustomizer().getCustomizerClass());
-		assertEquals("foo", ormContextMappedSuperclass.getCustomizer().getCustomizerClass());
-		assertEquals("bar", ormContextMappedSuperclass.getCustomizer().getDefaultCustomizerClass());
-		assertEquals("foo", ormContextMappedSuperclass.getCustomizer().getSpecifiedCustomizerClass());
-
-		//set xml customizer null
-		javaContextMappedSuperclass.getCustomizer().setSpecifiedCustomizerClass(null);
-		resourceMappedSuperclass.setCustomizer(null);
-		assertNull(resourceMappedSuperclass.getCustomizer());
-		assertNull(javaContextMappedSuperclass.getCustomizer().getCustomizerClass());
-		assertNull(ormContextMappedSuperclass.getCustomizer().getCustomizerClass());
-		assertNull(ormContextMappedSuperclass.getCustomizer().getDefaultCustomizerClass());
-		assertNull(ormContextMappedSuperclass.getCustomizer().getSpecifiedCustomizerClass());
-
-	}
-	
-	public void testModifyCustomizerClass() throws Exception {
-		createTestMappedSuperclassForCustomizer();
-		OrmPersistentType ormPersistentType = getEntityMappings().addPersistentType(MappingKeys.MAPPED_SUPERCLASS_TYPE_MAPPING_KEY, FULLY_QUALIFIED_TYPE_NAME);
-		EclipseLinkOrmMappedSuperclass ormContextMappedSuperclass = (EclipseLinkOrmMappedSuperclass) ormPersistentType.getMapping();
-		XmlMappedSuperclass resourceMappedSuperclass = (XmlMappedSuperclass) getXmlEntityMappings().getMappedSuperclasses().get(0);
-		
-		// check defaults
-		
-		assertNull(resourceMappedSuperclass.getCustomizer());
-		assertNull(ormContextMappedSuperclass.getCustomizer().getCustomizerClass());
-		assertNull(ormContextMappedSuperclass.getCustomizer().getDefaultCustomizerClass());
-		assertNull(ormContextMappedSuperclass.getCustomizer().getSpecifiedCustomizerClass());
-		
-		// set context customizer, check resource
-		
-		ormContextMappedSuperclass.getCustomizer().setSpecifiedCustomizerClass("foo");
-		
-		assertEquals("foo", resourceMappedSuperclass.getCustomizer().getCustomizerClassName());
-		assertEquals("foo", ormContextMappedSuperclass.getCustomizer().getCustomizerClass());
-		assertNull(ormContextMappedSuperclass.getCustomizer().getDefaultCustomizerClass());
-		assertEquals("foo", ormContextMappedSuperclass.getCustomizer().getSpecifiedCustomizerClass());
-				
-		// set context customizer to null, check resource
-		
-		ormContextMappedSuperclass.getCustomizer().setSpecifiedCustomizerClass(null);
-		
-		assertNull(resourceMappedSuperclass.getCustomizer());
-		assertNull(ormContextMappedSuperclass.getCustomizer().getCustomizerClass());
-		assertNull(ormContextMappedSuperclass.getCustomizer().getDefaultCustomizerClass());
-		assertNull(ormContextMappedSuperclass.getCustomizer().getSpecifiedCustomizerClass());
-	}
-	
-	public void testUpdateChangeTracking() throws Exception {
-		createTestMappedSuperclassForChangeTracking();
-		OrmPersistentType ormPersistentType = getEntityMappings().addPersistentType(MappingKeys.MAPPED_SUPERCLASS_TYPE_MAPPING_KEY, FULLY_QUALIFIED_TYPE_NAME);
-		EclipseLinkJavaMappedSuperclass javaContextMappedSuperclass = (EclipseLinkJavaMappedSuperclass) ormPersistentType.getJavaPersistentType().getMapping();
-		EclipseLinkOrmMappedSuperclass ormContextMappedSuperclass = (EclipseLinkOrmMappedSuperclass) ormPersistentType.getMapping();
-		XmlMappedSuperclass resourceMappedSuperclass = (XmlMappedSuperclass) getXmlEntityMappings().getMappedSuperclasses().get(0);
-		
-		// check defaults
-		
-		assertNull(resourceMappedSuperclass.getChangeTracking());
-		assertEquals(ChangeTrackingType.AUTO, javaContextMappedSuperclass.getChangeTracking().getType());
-		assertEquals(ChangeTrackingType.AUTO, ormContextMappedSuperclass.getChangeTracking().getType());
-		assertEquals(ChangeTrackingType.AUTO, ormContextMappedSuperclass.getChangeTracking().getDefaultType());
-		assertNull(ormContextMappedSuperclass.getChangeTracking().getSpecifiedType());
-		
-		// set xml type to ATTRIBUTE, check context
-		
-		resourceMappedSuperclass.setChangeTracking(EclipseLinkOrmFactory.eINSTANCE.createXmlChangeTracking());
-		resourceMappedSuperclass.getChangeTracking().setType(XmlChangeTrackingType.ATTRIBUTE);
-		
-		assertEquals(XmlChangeTrackingType.ATTRIBUTE, resourceMappedSuperclass.getChangeTracking().getType());
-		assertEquals(ChangeTrackingType.AUTO, javaContextMappedSuperclass.getChangeTracking().getType());
-		assertEquals(ChangeTrackingType.ATTRIBUTE, ormContextMappedSuperclass.getChangeTracking().getType());
-		assertEquals(ChangeTrackingType.AUTO, ormContextMappedSuperclass.getChangeTracking().getDefaultType());
-		assertEquals(ChangeTrackingType.ATTRIBUTE, ormContextMappedSuperclass.getChangeTracking().getSpecifiedType());
-		
-		// set xml type to OBJECT, check context
-		
-		resourceMappedSuperclass.getChangeTracking().setType(XmlChangeTrackingType.OBJECT);
-		
-		assertEquals(XmlChangeTrackingType.OBJECT, resourceMappedSuperclass.getChangeTracking().getType());
-		assertEquals(ChangeTrackingType.AUTO, javaContextMappedSuperclass.getChangeTracking().getType());
-		assertEquals(ChangeTrackingType.OBJECT, ormContextMappedSuperclass.getChangeTracking().getType());
-		assertEquals(ChangeTrackingType.AUTO, ormContextMappedSuperclass.getChangeTracking().getDefaultType());
-		assertEquals(ChangeTrackingType.OBJECT, ormContextMappedSuperclass.getChangeTracking().getSpecifiedType());
-		
-		// set xml type to DEFERRED, check context
-		
-		resourceMappedSuperclass.getChangeTracking().setType(XmlChangeTrackingType.DEFERRED);
-		
-		assertEquals(XmlChangeTrackingType.DEFERRED, resourceMappedSuperclass.getChangeTracking().getType());
-		assertEquals(ChangeTrackingType.AUTO, javaContextMappedSuperclass.getChangeTracking().getType());
-		assertEquals(ChangeTrackingType.DEFERRED, ormContextMappedSuperclass.getChangeTracking().getType());
-		assertEquals(ChangeTrackingType.AUTO, ormContextMappedSuperclass.getChangeTracking().getDefaultType());
-		assertEquals(ChangeTrackingType.DEFERRED, ormContextMappedSuperclass.getChangeTracking().getSpecifiedType());
-		
-		// set xml type to AUTO, check context
-		
-		resourceMappedSuperclass.getChangeTracking().setType(XmlChangeTrackingType.AUTO);
-		
-		assertEquals(XmlChangeTrackingType.AUTO, resourceMappedSuperclass.getChangeTracking().getType());
-		assertEquals(ChangeTrackingType.AUTO, javaContextMappedSuperclass.getChangeTracking().getType());
-		assertEquals(ChangeTrackingType.AUTO, ormContextMappedSuperclass.getChangeTracking().getType());
-		assertEquals(ChangeTrackingType.AUTO, ormContextMappedSuperclass.getChangeTracking().getDefaultType());
-		assertEquals(ChangeTrackingType.AUTO, ormContextMappedSuperclass.getChangeTracking().getSpecifiedType());
-		
-		// clear xml change tracking, set java change tracking, check defaults
-		
-		resourceMappedSuperclass.setChangeTracking(null);
-		javaContextMappedSuperclass.getChangeTracking().setSpecifiedType(ChangeTrackingType.ATTRIBUTE);
-		
-		assertNull(resourceMappedSuperclass.getChangeTracking());
-		assertEquals(ChangeTrackingType.ATTRIBUTE, javaContextMappedSuperclass.getChangeTracking().getType());
-		assertEquals(ChangeTrackingType.ATTRIBUTE, ormContextMappedSuperclass.getChangeTracking().getType());
-		assertEquals(ChangeTrackingType.ATTRIBUTE, ormContextMappedSuperclass.getChangeTracking().getDefaultType());
-		assertNull(ormContextMappedSuperclass.getChangeTracking().getSpecifiedType());
-		
-		// set metadataComplete to True, check defaults not from java
-
-		ormContextMappedSuperclass.setSpecifiedMetadataComplete(Boolean.TRUE);
-		
-		assertNull(resourceMappedSuperclass.getChangeTracking());
-		assertEquals(ChangeTrackingType.ATTRIBUTE, javaContextMappedSuperclass.getChangeTracking().getType());
-		assertEquals(ChangeTrackingType.AUTO, ormContextMappedSuperclass.getChangeTracking().getType());
-		assertEquals(ChangeTrackingType.AUTO, ormContextMappedSuperclass.getChangeTracking().getDefaultType());
-		assertNull(ormContextMappedSuperclass.getChangeTracking().getSpecifiedType());
-		
-		// unset metadataComplete, set xml change tracking to OBJECT, check context
-		
-		ormContextMappedSuperclass.setSpecifiedMetadataComplete(null);
-		resourceMappedSuperclass.setChangeTracking(EclipseLinkOrmFactory.eINSTANCE.createXmlChangeTracking());
-		resourceMappedSuperclass.getChangeTracking().setType(XmlChangeTrackingType.OBJECT);
-		
-		assertEquals(XmlChangeTrackingType.OBJECT, resourceMappedSuperclass.getChangeTracking().getType());
-		assertEquals(ChangeTrackingType.ATTRIBUTE, javaContextMappedSuperclass.getChangeTracking().getType());
-		assertEquals(ChangeTrackingType.OBJECT, ormContextMappedSuperclass.getChangeTracking().getType());
-		assertEquals(ChangeTrackingType.ATTRIBUTE, ormContextMappedSuperclass.getChangeTracking().getDefaultType());
-		assertEquals(ChangeTrackingType.OBJECT, ormContextMappedSuperclass.getChangeTracking().getSpecifiedType());
-	}
-	
-	public void testModifyChangeTracking() throws Exception  {
-		createTestMappedSuperclassForChangeTracking();
-		OrmPersistentType ormPersistentType = getEntityMappings().addPersistentType(MappingKeys.MAPPED_SUPERCLASS_TYPE_MAPPING_KEY, FULLY_QUALIFIED_TYPE_NAME);
-		EclipseLinkOrmMappedSuperclass ormContextMappedSuperclass = (EclipseLinkOrmMappedSuperclass) ormPersistentType.getMapping();
-		XmlMappedSuperclass resourceMappedSuperclass = (XmlMappedSuperclass) getXmlEntityMappings().getMappedSuperclasses().get(0);
-		
-		// check defaults
-		
-		assertNull(resourceMappedSuperclass.getChangeTracking());
-		assertEquals(ChangeTrackingType.AUTO, ormContextMappedSuperclass.getChangeTracking().getType());
-		assertEquals(ChangeTrackingType.AUTO, ormContextMappedSuperclass.getChangeTracking().getDefaultType());
-		assertNull(ormContextMappedSuperclass.getChangeTracking().getSpecifiedType());
-		
-		// set context change tracking to ATTRIBUTE, check resource
-		
-		ormContextMappedSuperclass.getChangeTracking().setSpecifiedType(ChangeTrackingType.ATTRIBUTE);
-		
-		assertEquals(XmlChangeTrackingType.ATTRIBUTE, resourceMappedSuperclass.getChangeTracking().getType());
-		assertEquals(ChangeTrackingType.ATTRIBUTE, ormContextMappedSuperclass.getChangeTracking().getType());
-		assertEquals(ChangeTrackingType.AUTO, ormContextMappedSuperclass.getChangeTracking().getDefaultType());
-		assertEquals(ChangeTrackingType.ATTRIBUTE, ormContextMappedSuperclass.getChangeTracking().getSpecifiedType());
-				
-		// set context change tracking to OBJECT, check resource
-		
-		ormContextMappedSuperclass.getChangeTracking().setSpecifiedType(ChangeTrackingType.OBJECT);
-		
-		assertEquals(XmlChangeTrackingType.OBJECT, resourceMappedSuperclass.getChangeTracking().getType());
-		assertEquals(ChangeTrackingType.OBJECT, ormContextMappedSuperclass.getChangeTracking().getType());
-		assertEquals(ChangeTrackingType.AUTO, ormContextMappedSuperclass.getChangeTracking().getDefaultType());
-		assertEquals(ChangeTrackingType.OBJECT, ormContextMappedSuperclass.getChangeTracking().getSpecifiedType());
-				
-		// set context change tracking to DEFERRED, check resource
-		
-		ormContextMappedSuperclass.getChangeTracking().setSpecifiedType(ChangeTrackingType.DEFERRED);
-		
-		assertEquals(XmlChangeTrackingType.DEFERRED, resourceMappedSuperclass.getChangeTracking().getType());
-		assertEquals(ChangeTrackingType.DEFERRED, ormContextMappedSuperclass.getChangeTracking().getType());
-		assertEquals(ChangeTrackingType.AUTO, ormContextMappedSuperclass.getChangeTracking().getDefaultType());
-		assertEquals(ChangeTrackingType.DEFERRED, ormContextMappedSuperclass.getChangeTracking().getSpecifiedType());
-				
-		// set context change tracking to AUTO, check resource
-		
-		ormContextMappedSuperclass.getChangeTracking().setSpecifiedType(ChangeTrackingType.AUTO);
-		
-		assertEquals(XmlChangeTrackingType.AUTO, resourceMappedSuperclass.getChangeTracking().getType());
-		assertEquals(ChangeTrackingType.AUTO, ormContextMappedSuperclass.getChangeTracking().getType());
-		assertEquals(ChangeTrackingType.AUTO, ormContextMappedSuperclass.getChangeTracking().getDefaultType());
-		assertEquals(ChangeTrackingType.AUTO, ormContextMappedSuperclass.getChangeTracking().getSpecifiedType());
-				
-		// set context change tracking to null, check resource
-		
-		ormContextMappedSuperclass.getChangeTracking().setSpecifiedType(null);
-		
-		assertNull(resourceMappedSuperclass.getChangeTracking());
-		assertEquals(ChangeTrackingType.AUTO, ormContextMappedSuperclass.getChangeTracking().getType());
-		assertEquals(ChangeTrackingType.AUTO, ormContextMappedSuperclass.getChangeTracking().getDefaultType());
-		assertNull(ormContextMappedSuperclass.getChangeTracking().getSpecifiedType());
-	}
-	
-	public void testUpdateCacheType() throws Exception {
-		createTestMappedSuperclassForCaching();
-		OrmPersistentType ormPersistentType = getEntityMappings().addPersistentType(MappingKeys.MAPPED_SUPERCLASS_TYPE_MAPPING_KEY, FULLY_QUALIFIED_TYPE_NAME);
-		JavaCaching javaContextCaching = ((EclipseLinkJavaMappedSuperclass) ormPersistentType.getJavaPersistentType().getMapping()).getCaching();
-		EclipseLinkOrmMappedSuperclass ormContextMappedSuperclass = (EclipseLinkOrmMappedSuperclass) ormPersistentType.getMapping();
-		Caching ormContextCaching = ormContextMappedSuperclass.getCaching();
-		XmlMappedSuperclass resourceMappedSuperclass = (XmlMappedSuperclass) getXmlEntityMappings().getMappedSuperclasses().get(0);
-
-
-		// check defaults
-		
-		assertEquals(null, resourceMappedSuperclass.getCache());
-		assertEquals(CacheType.SOFT_WEAK, javaContextCaching.getType());
-		assertEquals(CacheType.SOFT_WEAK, ormContextCaching.getType());
-		assertEquals(CacheType.SOFT_WEAK, ormContextCaching.getDefaultType());
-		assertEquals(null, ormContextCaching.getSpecifiedType());
-		
-		// set xml cache, check defaults
-		resourceMappedSuperclass.setCache(EclipseLinkOrmFactory.eINSTANCE.createXmlCache());
-		assertEquals(null, resourceMappedSuperclass.getCache().getType());
-		assertEquals(CacheType.SOFT_WEAK, javaContextCaching.getType());
-		assertEquals(CacheType.SOFT_WEAK, ormContextCaching.getType());
-		assertEquals(CacheType.SOFT_WEAK, ormContextCaching.getDefaultType());
-		assertEquals(null, ormContextCaching.getSpecifiedType());
-
-		
-		// set xml cache type, check settings
-		resourceMappedSuperclass.getCache().setType(org.eclipse.jpt.eclipselink.core.resource.orm.CacheType.FULL);
-		assertEquals(org.eclipse.jpt.eclipselink.core.resource.orm.CacheType.FULL, resourceMappedSuperclass.getCache().getType());
-		assertEquals(CacheType.SOFT_WEAK, javaContextCaching.getType());
-		assertEquals(CacheType.FULL, ormContextCaching.getType());
-		assertEquals(CacheType.SOFT_WEAK, ormContextCaching.getDefaultType());
-		assertEquals(CacheType.FULL, ormContextCaching.getSpecifiedType());
-
-			
-		// set java cache type, check defaults
-		
-		javaContextCaching.setSpecifiedType(CacheType.WEAK);
-		
-		assertEquals(org.eclipse.jpt.eclipselink.core.resource.orm.CacheType.FULL, resourceMappedSuperclass.getCache().getType());
-		assertEquals(CacheType.WEAK, javaContextCaching.getType());
-		assertEquals(CacheType.FULL, ormContextCaching.getType());
-		assertEquals(CacheType.SOFT_WEAK, ormContextCaching.getDefaultType());
-		assertEquals(CacheType.FULL, ormContextCaching.getSpecifiedType());
-
-		// clear xml cache type, check defaults
-		resourceMappedSuperclass.getCache().setType(null);
-
-		assertEquals(null, resourceMappedSuperclass.getCache().getType());
-		assertEquals(CacheType.WEAK, javaContextCaching.getType());
-		assertEquals(CacheType.SOFT_WEAK, ormContextCaching.getType());
-		assertEquals(CacheType.SOFT_WEAK, ormContextCaching.getDefaultType());
-		assertEquals(null, ormContextCaching.getSpecifiedType());
-	
-		
-		// clear xml cache, check defaults
-		resourceMappedSuperclass.setCache(null);
-
-		assertEquals(null, resourceMappedSuperclass.getCache());
-		assertEquals(CacheType.WEAK, javaContextCaching.getType());
-		assertEquals(CacheType.WEAK, ormContextCaching.getType());
-		assertEquals(CacheType.WEAK, ormContextCaching.getDefaultType());
-		assertEquals(null, ormContextCaching.getSpecifiedType());
-	
-		
-		// set metadataComplete to True, check defaults not from java
-
-		ormContextMappedSuperclass.setSpecifiedMetadataComplete(Boolean.TRUE);
-		
-		assertEquals(null, resourceMappedSuperclass.getCache());
-		assertEquals(CacheType.WEAK, javaContextCaching.getType());
-		assertEquals(CacheType.SOFT_WEAK, ormContextCaching.getType());
-		assertEquals(CacheType.SOFT_WEAK, ormContextCaching.getDefaultType());
-		assertEquals(null, ormContextCaching.getSpecifiedType());
-
-		ormContextMappedSuperclass.setSpecifiedMetadataComplete(null);
-	}
-	
-	public void testModifyCacheType() throws Exception {
-		createTestMappedSuperclassForCaching();
-		OrmPersistentType ormPersistentType = getEntityMappings().addPersistentType(MappingKeys.MAPPED_SUPERCLASS_TYPE_MAPPING_KEY, FULLY_QUALIFIED_TYPE_NAME);
-		EclipseLinkOrmMappedSuperclass ormContextMappedSuperclass = (EclipseLinkOrmMappedSuperclass) ormPersistentType.getMapping();
-		Caching ormContextCaching = ormContextMappedSuperclass.getCaching();
-		XmlMappedSuperclass resourceMappedSuperclass = (XmlMappedSuperclass) getXmlEntityMappings().getMappedSuperclasses().get(0);
-		
-		// check defaults
-		
-		assertEquals(null, resourceMappedSuperclass.getCache());
-		assertEquals(CacheType.SOFT_WEAK, ormContextCaching.getType());
-		assertEquals(CacheType.SOFT_WEAK, ormContextCaching.getDefaultType());
-		assertEquals(null, ormContextCaching.getSpecifiedType());
-		
-		// set context cache type, check resource
-		
-		ormContextMappedSuperclass.getCaching().setSpecifiedType(CacheType.HARD_WEAK);
-		assertEquals(org.eclipse.jpt.eclipselink.core.resource.orm.CacheType.HARD_WEAK, resourceMappedSuperclass.getCache().getType());
-		assertEquals(CacheType.HARD_WEAK, ormContextCaching.getType());
-		assertEquals(CacheType.SOFT_WEAK, ormContextCaching.getDefaultType());
-		assertEquals(CacheType.HARD_WEAK, ormContextCaching.getSpecifiedType());
-				
-		// set context customizer to null, check resource
-		
-		ormContextMappedSuperclass.getCaching().setSpecifiedType(null);
-		
-		assertEquals(null, resourceMappedSuperclass.getCache());
-		assertEquals(CacheType.SOFT_WEAK, ormContextCaching.getType());
-		assertEquals(CacheType.SOFT_WEAK, ormContextCaching.getDefaultType());
-		assertEquals(null, ormContextCaching.getSpecifiedType());
-	}
-
-	public void testUpdateCacheCoordinationType() throws Exception {
-		createTestMappedSuperclassForCaching();
-		OrmPersistentType ormPersistentType = getEntityMappings().addPersistentType(MappingKeys.MAPPED_SUPERCLASS_TYPE_MAPPING_KEY, FULLY_QUALIFIED_TYPE_NAME);
-		JavaCaching javaContextCaching = ((EclipseLinkJavaMappedSuperclass) ormPersistentType.getJavaPersistentType().getMapping()).getCaching();
-		EclipseLinkOrmMappedSuperclass ormContextMappedSuperclass = (EclipseLinkOrmMappedSuperclass) ormPersistentType.getMapping();
-		Caching ormContextCaching = ormContextMappedSuperclass.getCaching();
-		XmlMappedSuperclass resourceMappedSuperclass = (XmlMappedSuperclass) getXmlEntityMappings().getMappedSuperclasses().get(0);
-
-
-		// check defaults
-		
-		assertEquals(null, resourceMappedSuperclass.getCache());
-		assertEquals(CacheCoordinationType.SEND_OBJECT_CHANGES, javaContextCaching.getCoordinationType());
-		assertEquals(CacheCoordinationType.SEND_OBJECT_CHANGES, ormContextCaching.getCoordinationType());
-		assertEquals(CacheCoordinationType.SEND_OBJECT_CHANGES, ormContextCaching.getDefaultCoordinationType());
-		assertEquals(null, ormContextCaching.getSpecifiedCoordinationType());
-		
-		// set xml cache, check defaults
-		resourceMappedSuperclass.setCache(EclipseLinkOrmFactory.eINSTANCE.createXmlCache());
-		assertEquals(null, resourceMappedSuperclass.getCache().getCoordinationType());
-		assertEquals(CacheCoordinationType.SEND_OBJECT_CHANGES, javaContextCaching.getCoordinationType());
-		assertEquals(CacheCoordinationType.SEND_OBJECT_CHANGES, ormContextCaching.getCoordinationType());
-		assertEquals(CacheCoordinationType.SEND_OBJECT_CHANGES, ormContextCaching.getDefaultCoordinationType());
-		assertEquals(null, ormContextCaching.getSpecifiedCoordinationType());
-
-		
-		// set xml cache type, check settings
-		resourceMappedSuperclass.getCache().setCoordinationType(org.eclipse.jpt.eclipselink.core.resource.orm.CacheCoordinationType.INVALIDATE_CHANGED_OBJECTS);
-		assertEquals(org.eclipse.jpt.eclipselink.core.resource.orm.CacheCoordinationType.INVALIDATE_CHANGED_OBJECTS, resourceMappedSuperclass.getCache().getCoordinationType());
-		assertEquals(CacheCoordinationType.SEND_OBJECT_CHANGES, javaContextCaching.getCoordinationType());
-		assertEquals(CacheCoordinationType.INVALIDATE_CHANGED_OBJECTS, ormContextCaching.getCoordinationType());
-		assertEquals(CacheCoordinationType.SEND_OBJECT_CHANGES, ormContextCaching.getDefaultCoordinationType());
-		assertEquals(CacheCoordinationType.INVALIDATE_CHANGED_OBJECTS, ormContextCaching.getSpecifiedCoordinationType());
-
-			
-		// set java cache type, check defaults
-		
-		javaContextCaching.setSpecifiedCoordinationType(CacheCoordinationType.SEND_NEW_OBJECTS_WITH_CHANGES);
-		
-		assertEquals(org.eclipse.jpt.eclipselink.core.resource.orm.CacheCoordinationType.INVALIDATE_CHANGED_OBJECTS, resourceMappedSuperclass.getCache().getCoordinationType());
-		assertEquals(CacheCoordinationType.SEND_NEW_OBJECTS_WITH_CHANGES, javaContextCaching.getCoordinationType());
-		assertEquals(CacheCoordinationType.INVALIDATE_CHANGED_OBJECTS, ormContextCaching.getCoordinationType());
-		assertEquals(CacheCoordinationType.SEND_OBJECT_CHANGES, ormContextCaching.getDefaultCoordinationType());
-		assertEquals(CacheCoordinationType.INVALIDATE_CHANGED_OBJECTS, ormContextCaching.getSpecifiedCoordinationType());
-
-		// clear xml cache type, check defaults
-		resourceMappedSuperclass.getCache().setCoordinationType(null);
-
-		assertEquals(null, resourceMappedSuperclass.getCache().getCoordinationType());
-		assertEquals(CacheCoordinationType.SEND_NEW_OBJECTS_WITH_CHANGES, javaContextCaching.getCoordinationType());
-		assertEquals(CacheCoordinationType.SEND_OBJECT_CHANGES, ormContextCaching.getCoordinationType());
-		assertEquals(CacheCoordinationType.SEND_OBJECT_CHANGES, ormContextCaching.getDefaultCoordinationType());
-		assertEquals(null, ormContextCaching.getSpecifiedCoordinationType());
-	
-		
-		// clear xml cache, check defaults
-		resourceMappedSuperclass.setCache(null);
-
-		assertEquals(null, resourceMappedSuperclass.getCache());
-		assertEquals(CacheCoordinationType.SEND_NEW_OBJECTS_WITH_CHANGES, javaContextCaching.getCoordinationType());
-		assertEquals(CacheCoordinationType.SEND_NEW_OBJECTS_WITH_CHANGES, ormContextCaching.getCoordinationType());
-		assertEquals(CacheCoordinationType.SEND_NEW_OBJECTS_WITH_CHANGES, ormContextCaching.getDefaultCoordinationType());
-		assertEquals(null, ormContextCaching.getSpecifiedCoordinationType());
-	
-		
-		// set metadataComplete to True, check defaults not from java
-
-		ormContextMappedSuperclass.setSpecifiedMetadataComplete(Boolean.TRUE);
-		
-		assertEquals(null, resourceMappedSuperclass.getCache());
-		assertEquals(CacheCoordinationType.SEND_NEW_OBJECTS_WITH_CHANGES, javaContextCaching.getCoordinationType());
-		assertEquals(CacheCoordinationType.SEND_OBJECT_CHANGES, ormContextCaching.getCoordinationType());
-		assertEquals(CacheCoordinationType.SEND_OBJECT_CHANGES, ormContextCaching.getDefaultCoordinationType());
-		assertEquals(null, ormContextCaching.getSpecifiedCoordinationType());
-
-		ormContextMappedSuperclass.setSpecifiedMetadataComplete(null);
-	}
-	
-	public void testModifyCacheCoordinationType() throws Exception {
-		createTestMappedSuperclassForCaching();
-		OrmPersistentType ormPersistentType = getEntityMappings().addPersistentType(MappingKeys.MAPPED_SUPERCLASS_TYPE_MAPPING_KEY, FULLY_QUALIFIED_TYPE_NAME);
-		EclipseLinkOrmMappedSuperclass ormContextMappedSuperclass = (EclipseLinkOrmMappedSuperclass) ormPersistentType.getMapping();
-		Caching ormContextCaching = ormContextMappedSuperclass.getCaching();
-		XmlMappedSuperclass resourceMappedSuperclass = (XmlMappedSuperclass) getXmlEntityMappings().getMappedSuperclasses().get(0);
-		
-		// check defaults
-		
-		assertEquals(null, resourceMappedSuperclass.getCache());
-		assertEquals(CacheCoordinationType.SEND_OBJECT_CHANGES, ormContextCaching.getCoordinationType());
-		assertEquals(CacheCoordinationType.SEND_OBJECT_CHANGES, ormContextCaching.getDefaultCoordinationType());
-		assertEquals(null, ormContextCaching.getSpecifiedCoordinationType());
-		
-		// set context cache coordination type, check resource
-		
-		ormContextMappedSuperclass.getCaching().setSpecifiedCoordinationType(CacheCoordinationType.SEND_NEW_OBJECTS_WITH_CHANGES);
-		assertEquals(org.eclipse.jpt.eclipselink.core.resource.orm.CacheCoordinationType.SEND_NEW_OBJECTS_WITH_CHANGES, resourceMappedSuperclass.getCache().getCoordinationType());
-		assertEquals(CacheCoordinationType.SEND_NEW_OBJECTS_WITH_CHANGES, ormContextCaching.getCoordinationType());
-		assertEquals(CacheCoordinationType.SEND_OBJECT_CHANGES, ormContextCaching.getDefaultCoordinationType());
-		assertEquals(CacheCoordinationType.SEND_NEW_OBJECTS_WITH_CHANGES, ormContextCaching.getSpecifiedCoordinationType());
-				
-		// set context coordination type to null, check resource
-		
-		ormContextMappedSuperclass.getCaching().setSpecifiedCoordinationType(null);
-		
-		assertEquals(null, resourceMappedSuperclass.getCache());
-		assertEquals(CacheCoordinationType.SEND_OBJECT_CHANGES, ormContextCaching.getCoordinationType());
-		assertEquals(CacheCoordinationType.SEND_OBJECT_CHANGES, ormContextCaching.getDefaultCoordinationType());
-		assertEquals(null, ormContextCaching.getSpecifiedCoordinationType());
-	}
-
-	
-	public void testUpdateCacheSize() throws Exception {
-		createTestMappedSuperclassForCaching();
-		OrmPersistentType ormPersistentType = getEntityMappings().addPersistentType(MappingKeys.MAPPED_SUPERCLASS_TYPE_MAPPING_KEY, FULLY_QUALIFIED_TYPE_NAME);
-		JavaCaching javaContextCaching = ((EclipseLinkJavaMappedSuperclass) ormPersistentType.getJavaPersistentType().getMapping()).getCaching();
-		EclipseLinkOrmMappedSuperclass ormContextMappedSuperclass = (EclipseLinkOrmMappedSuperclass) ormPersistentType.getMapping();
-		Caching ormContextCaching = ormContextMappedSuperclass.getCaching();
-		XmlMappedSuperclass resourceMappedSuperclass = (XmlMappedSuperclass) getXmlEntityMappings().getMappedSuperclasses().get(0);
-
-
-		// check defaults
-		
-		assertEquals(null, resourceMappedSuperclass.getCache());
-		assertEquals(100, javaContextCaching.getSize());
-		assertEquals(100, ormContextCaching.getSize());
-		assertEquals(100, ormContextCaching.getDefaultSize());
-		assertEquals(null, ormContextCaching.getSpecifiedSize());
-		
-		// set xml cache, check defaults
-		resourceMappedSuperclass.setCache(EclipseLinkOrmFactory.eINSTANCE.createXmlCache());
-		assertEquals(null, resourceMappedSuperclass.getCache().getSize());
-		assertEquals(100, javaContextCaching.getSize());
-		assertEquals(100, ormContextCaching.getSize());
-		assertEquals(100, ormContextCaching.getDefaultSize());
-		assertEquals(null, ormContextCaching.getSpecifiedSize());
-
-		
-		// set xml cache size, check settings
-		resourceMappedSuperclass.getCache().setSize(new Integer(105));
-		assertEquals(new Integer(105), resourceMappedSuperclass.getCache().getSize());
-		assertEquals(100, javaContextCaching.getSize());
-		assertEquals(105, ormContextCaching.getSize());
-		assertEquals(100, ormContextCaching.getDefaultSize());
-		assertEquals(new Integer(105), ormContextCaching.getSpecifiedSize());
-
-			
-		// set java cache size, check defaults
-		
-		javaContextCaching.setSpecifiedSize(new Integer(50));
-		
-		assertEquals(new Integer(105), resourceMappedSuperclass.getCache().getSize());
-		assertEquals(50, javaContextCaching.getSize());
-		assertEquals(105, ormContextCaching.getSize());
-		assertEquals(50, ormContextCaching.getDefaultSize());
-		assertEquals(new Integer(105), ormContextCaching.getSpecifiedSize());
-
-		// clear xml cache size, check defaults
-		resourceMappedSuperclass.getCache().setSize(null);
-
-		assertEquals(null, resourceMappedSuperclass.getCache().getSize());
-		assertEquals(50, javaContextCaching.getSize());
-		assertEquals(50, ormContextCaching.getSize());
-		assertEquals(50, ormContextCaching.getDefaultSize());
-		assertEquals(null, ormContextCaching.getSpecifiedSize());
-	
-		
-		// clear xml cache, check defaults
-		resourceMappedSuperclass.setCache(null);
-
-		assertEquals(null, resourceMappedSuperclass.getCache());
-		assertEquals(50, javaContextCaching.getSize());
-		assertEquals(50, ormContextCaching.getSize());
-		assertEquals(50, ormContextCaching.getDefaultSize());
-		assertEquals(null, ormContextCaching.getSpecifiedSize());
-	
-		
-		// set metadataComplete to True, check defaults not from java
-
-		ormContextMappedSuperclass.setSpecifiedMetadataComplete(Boolean.TRUE);
-		
-		assertEquals(null, resourceMappedSuperclass.getCache());
-		assertEquals(50, javaContextCaching.getSize());
-		assertEquals(100, ormContextCaching.getSize());
-		assertEquals(100, ormContextCaching.getDefaultSize());
-		assertEquals(null, ormContextCaching.getSpecifiedSize());
-
-		ormContextMappedSuperclass.setSpecifiedMetadataComplete(null);
-	}
-	
-	public void testModifyCacheSize() throws Exception {
-		createTestMappedSuperclassForCaching();
-		OrmPersistentType ormPersistentType = getEntityMappings().addPersistentType(MappingKeys.MAPPED_SUPERCLASS_TYPE_MAPPING_KEY, FULLY_QUALIFIED_TYPE_NAME);
-		EclipseLinkOrmMappedSuperclass ormContextMappedSuperclass = (EclipseLinkOrmMappedSuperclass) ormPersistentType.getMapping();
-		Caching ormContextCaching = ormContextMappedSuperclass.getCaching();
-		XmlMappedSuperclass resourceMappedSuperclass = (XmlMappedSuperclass) getXmlEntityMappings().getMappedSuperclasses().get(0);
-		
-		// check defaults
-		
-		assertEquals(null, resourceMappedSuperclass.getCache());
-		assertEquals(100, ormContextCaching.getSize());
-		assertEquals(100, ormContextCaching.getDefaultSize());
-		assertEquals(null, ormContextCaching.getSpecifiedSize());
-		
-		// set context cache size, check resource
-		
-		ormContextMappedSuperclass.getCaching().setSpecifiedSize(new Integer(50));
-		assertEquals(new Integer(50), resourceMappedSuperclass.getCache().getSize());
-		assertEquals(50, ormContextCaching.getSize());
-		assertEquals(100, ormContextCaching.getDefaultSize());
-		assertEquals(new Integer(50), ormContextCaching.getSpecifiedSize());
-				
-		// set context cache size to null, check resource
-		
-		ormContextMappedSuperclass.getCaching().setSpecifiedSize(null);
-		
-		assertEquals(null, resourceMappedSuperclass.getCache());
-		assertEquals(100, ormContextCaching.getSize());
-		assertEquals(100, ormContextCaching.getDefaultSize());
-		assertEquals(null, ormContextCaching.getSpecifiedSize());
-	}
-
-	public void testUpdateCacheAlwaysRefresh() throws Exception {
-		createTestMappedSuperclassForCaching();
-		OrmPersistentType ormPersistentType = getEntityMappings().addPersistentType(MappingKeys.MAPPED_SUPERCLASS_TYPE_MAPPING_KEY, FULLY_QUALIFIED_TYPE_NAME);
-		JavaCaching javaContextCaching = ((EclipseLinkJavaMappedSuperclass) ormPersistentType.getJavaPersistentType().getMapping()).getCaching();
-		EclipseLinkOrmMappedSuperclass ormContextMappedSuperclass = (EclipseLinkOrmMappedSuperclass) ormPersistentType.getMapping();
-		Caching ormContextCaching = ormContextMappedSuperclass.getCaching();
-		XmlMappedSuperclass resourceMappedSuperclass = (XmlMappedSuperclass) getXmlEntityMappings().getMappedSuperclasses().get(0);
-
-
-		// check defaults
-		
-		assertEquals(null, resourceMappedSuperclass.getCache());
-		assertEquals(false, javaContextCaching.isAlwaysRefresh());
-		assertEquals(false, ormContextCaching.isAlwaysRefresh());
-		assertEquals(false, ormContextCaching.isDefaultAlwaysRefresh());
-		assertEquals(null, ormContextCaching.getSpecifiedAlwaysRefresh());
-		
-		// set xml cache, check defaults
-		resourceMappedSuperclass.setCache(EclipseLinkOrmFactory.eINSTANCE.createXmlCache());
-		assertEquals(null, resourceMappedSuperclass.getCache().getAlwaysRefresh());
-		assertEquals(false, javaContextCaching.isAlwaysRefresh());
-		assertEquals(false, ormContextCaching.isAlwaysRefresh());
-		assertEquals(false, ormContextCaching.isDefaultAlwaysRefresh());
-		assertEquals(null, ormContextCaching.getSpecifiedAlwaysRefresh());
-
-		
-		// set xml cache always refresh, check settings
-		resourceMappedSuperclass.getCache().setAlwaysRefresh(Boolean.TRUE);
-		assertEquals(Boolean.TRUE, resourceMappedSuperclass.getCache().getAlwaysRefresh());
-		assertEquals(false, javaContextCaching.isAlwaysRefresh());
-		assertEquals(true, ormContextCaching.isAlwaysRefresh());
-		assertEquals(false, ormContextCaching.isDefaultAlwaysRefresh());
-		assertEquals(Boolean.TRUE, ormContextCaching.getSpecifiedAlwaysRefresh());
-
-			
-		// set java cache always refresh, check defaults
-		
-		javaContextCaching.setSpecifiedAlwaysRefresh(Boolean.TRUE);
-		
-		assertEquals(Boolean.TRUE, resourceMappedSuperclass.getCache().getAlwaysRefresh());
-		assertEquals(true, javaContextCaching.isAlwaysRefresh());
-		assertEquals(true, ormContextCaching.isAlwaysRefresh());
-		assertEquals(false, ormContextCaching.isDefaultAlwaysRefresh());
-		assertEquals(Boolean.TRUE, ormContextCaching.getSpecifiedAlwaysRefresh());
-
-		// set xml cache always refresh to false
-		resourceMappedSuperclass.getCache().setAlwaysRefresh(Boolean.FALSE);
-		assertEquals(Boolean.FALSE, resourceMappedSuperclass.getCache().getAlwaysRefresh());
-		assertEquals(true, javaContextCaching.isAlwaysRefresh());
-		assertEquals(false, ormContextCaching.isAlwaysRefresh());
-		assertEquals(false, ormContextCaching.isDefaultAlwaysRefresh());
-		assertEquals(Boolean.FALSE, ormContextCaching.getSpecifiedAlwaysRefresh());
-
-		// clear xml cache always refresh, check defaults
-		resourceMappedSuperclass.getCache().setAlwaysRefresh(null);
-
-		assertEquals(null, resourceMappedSuperclass.getCache().getAlwaysRefresh());
-		assertEquals(true, javaContextCaching.isAlwaysRefresh());
-		assertEquals(false, ormContextCaching.isAlwaysRefresh());
-		assertEquals(false, ormContextCaching.isDefaultAlwaysRefresh());
-		assertEquals(null, ormContextCaching.getSpecifiedAlwaysRefresh());
-	
-		
-		// clear xml cache, check defaults
-		resourceMappedSuperclass.setCache(null);
-
-		assertEquals(null, resourceMappedSuperclass.getCache());
-		assertEquals(true, javaContextCaching.isAlwaysRefresh());
-		assertEquals(true, ormContextCaching.isAlwaysRefresh());
-		assertEquals(true, ormContextCaching.isDefaultAlwaysRefresh());
-		assertEquals(null, ormContextCaching.getSpecifiedAlwaysRefresh());
-	
-		
-		// set metadataComplete to True, check defaults not from java
-
-		ormContextMappedSuperclass.setSpecifiedMetadataComplete(Boolean.TRUE);
-		
-		assertEquals(null, resourceMappedSuperclass.getCache());
-		assertEquals(true, javaContextCaching.isAlwaysRefresh());
-		assertEquals(false, ormContextCaching.isAlwaysRefresh());
-		assertEquals(false, ormContextCaching.isDefaultAlwaysRefresh());
-		assertEquals(null, ormContextCaching.getSpecifiedAlwaysRefresh());
-
-		
-		// set metadataComplete back to null, check defaults from java
-		ormContextMappedSuperclass.setSpecifiedMetadataComplete(null);
-		
-		assertEquals(null, resourceMappedSuperclass.getCache());
-		assertEquals(true, javaContextCaching.isAlwaysRefresh());
-		assertEquals(true, ormContextCaching.isAlwaysRefresh());
-		assertEquals(true, ormContextCaching.isDefaultAlwaysRefresh());
-		assertEquals(null, ormContextCaching.getSpecifiedAlwaysRefresh());
-	}
-	
-	public void testModifyCacheAlwaysRefresh() throws Exception {
-		createTestMappedSuperclassForCaching();
-		OrmPersistentType ormPersistentType = getEntityMappings().addPersistentType(MappingKeys.MAPPED_SUPERCLASS_TYPE_MAPPING_KEY, FULLY_QUALIFIED_TYPE_NAME);
-		EclipseLinkOrmMappedSuperclass ormContextMappedSuperclass = (EclipseLinkOrmMappedSuperclass) ormPersistentType.getMapping();
-		Caching ormContextCaching = ormContextMappedSuperclass.getCaching();
-		XmlMappedSuperclass resourceMappedSuperclass = (XmlMappedSuperclass) getXmlEntityMappings().getMappedSuperclasses().get(0);
-		
-		// check defaults
-		
-		assertEquals(null, resourceMappedSuperclass.getCache());
-		assertEquals(false, ormContextCaching.isAlwaysRefresh());
-		assertEquals(false, ormContextCaching.isDefaultAlwaysRefresh());
-		assertEquals(null, ormContextCaching.getSpecifiedAlwaysRefresh());
-		
-		// set context cache size, check resource
-		
-		ormContextMappedSuperclass.getCaching().setSpecifiedAlwaysRefresh(Boolean.TRUE);
-		assertEquals(Boolean.TRUE, resourceMappedSuperclass.getCache().getAlwaysRefresh());
-		assertEquals(true, ormContextCaching.isAlwaysRefresh());
-		assertEquals(false, ormContextCaching.isDefaultAlwaysRefresh());
-		assertEquals(Boolean.TRUE, ormContextCaching.getSpecifiedAlwaysRefresh());
-				
-		// set context cache size to null, check resource
-		
-		ormContextMappedSuperclass.getCaching().setSpecifiedAlwaysRefresh(null);
-		
-		assertEquals(null, resourceMappedSuperclass.getCache());
-		assertEquals(false, ormContextCaching.isAlwaysRefresh());
-		assertEquals(false, ormContextCaching.isDefaultAlwaysRefresh());
-		assertEquals(null, ormContextCaching.getSpecifiedAlwaysRefresh());
-	}
-	
-	public void testUpdateCacheRefreshOnlyIfNewer() throws Exception {
-		createTestMappedSuperclassForCaching();
-		OrmPersistentType ormPersistentType = getEntityMappings().addPersistentType(MappingKeys.MAPPED_SUPERCLASS_TYPE_MAPPING_KEY, FULLY_QUALIFIED_TYPE_NAME);
-		JavaCaching javaContextCaching = ((EclipseLinkJavaMappedSuperclass) ormPersistentType.getJavaPersistentType().getMapping()).getCaching();
-		EclipseLinkOrmMappedSuperclass ormContextMappedSuperclass = (EclipseLinkOrmMappedSuperclass) ormPersistentType.getMapping();
-		Caching ormContextCaching = ormContextMappedSuperclass.getCaching();
-		XmlMappedSuperclass resourceMappedSuperclass = (XmlMappedSuperclass) getXmlEntityMappings().getMappedSuperclasses().get(0);
-
-
-		// check defaults
-		
-		assertEquals(null, resourceMappedSuperclass.getCache());
-		assertEquals(false, javaContextCaching.isRefreshOnlyIfNewer());
-		assertEquals(false, ormContextCaching.isRefreshOnlyIfNewer());
-		assertEquals(false, ormContextCaching.isDefaultRefreshOnlyIfNewer());
-		assertEquals(null, ormContextCaching.getSpecifiedRefreshOnlyIfNewer());
-		
-		// set xml cache, check defaults
-		resourceMappedSuperclass.setCache(EclipseLinkOrmFactory.eINSTANCE.createXmlCache());
-		assertEquals(null, resourceMappedSuperclass.getCache().getRefreshOnlyIfNewer());
-		assertEquals(false, javaContextCaching.isRefreshOnlyIfNewer());
-		assertEquals(false, ormContextCaching.isRefreshOnlyIfNewer());
-		assertEquals(false, ormContextCaching.isDefaultRefreshOnlyIfNewer());
-		assertEquals(null, ormContextCaching.getSpecifiedRefreshOnlyIfNewer());
-
-		
-		// set xml cache size, check settings
-		resourceMappedSuperclass.getCache().setRefreshOnlyIfNewer(Boolean.TRUE);
-		assertEquals(Boolean.TRUE, resourceMappedSuperclass.getCache().getRefreshOnlyIfNewer());
-		assertEquals(false, javaContextCaching.isRefreshOnlyIfNewer());
-		assertEquals(true, ormContextCaching.isRefreshOnlyIfNewer());
-		assertEquals(false, ormContextCaching.isDefaultRefreshOnlyIfNewer());
-		assertEquals(Boolean.TRUE, ormContextCaching.getSpecifiedRefreshOnlyIfNewer());
-
-			
-		// set java cache size, check defaults
-		
-		javaContextCaching.setSpecifiedRefreshOnlyIfNewer(Boolean.TRUE);
-		
-		assertEquals(Boolean.TRUE, resourceMappedSuperclass.getCache().getRefreshOnlyIfNewer());
-		assertEquals(true, javaContextCaching.isRefreshOnlyIfNewer());
-		assertEquals(true, ormContextCaching.isRefreshOnlyIfNewer());
-		assertEquals(false, ormContextCaching.isDefaultRefreshOnlyIfNewer());
-		assertEquals(Boolean.TRUE, ormContextCaching.getSpecifiedRefreshOnlyIfNewer());
-
-		// set xml cache always refresh to false
-		resourceMappedSuperclass.getCache().setRefreshOnlyIfNewer(Boolean.FALSE);
-		assertEquals(Boolean.FALSE, resourceMappedSuperclass.getCache().getRefreshOnlyIfNewer());
-		assertEquals(true, javaContextCaching.isRefreshOnlyIfNewer());
-		assertEquals(false, ormContextCaching.isRefreshOnlyIfNewer());
-		assertEquals(false, ormContextCaching.isDefaultRefreshOnlyIfNewer());
-		assertEquals(Boolean.FALSE, ormContextCaching.getSpecifiedRefreshOnlyIfNewer());
-
-		// clear xml cache always refresh, check defaults
-		resourceMappedSuperclass.getCache().setRefreshOnlyIfNewer(null);
-
-		assertEquals(null, resourceMappedSuperclass.getCache().getRefreshOnlyIfNewer());
-		assertEquals(true, javaContextCaching.isRefreshOnlyIfNewer());
-		assertEquals(false, ormContextCaching.isRefreshOnlyIfNewer());
-		assertEquals(false, ormContextCaching.isDefaultRefreshOnlyIfNewer());
-		assertEquals(null, ormContextCaching.getSpecifiedRefreshOnlyIfNewer());
-	
-		
-		// clear xml cache, check defaults
-		resourceMappedSuperclass.setCache(null);
-
-		assertEquals(null, resourceMappedSuperclass.getCache());
-		assertEquals(true, javaContextCaching.isRefreshOnlyIfNewer());
-		assertEquals(true, ormContextCaching.isRefreshOnlyIfNewer());
-		assertEquals(true, ormContextCaching.isDefaultRefreshOnlyIfNewer());
-		assertEquals(null, ormContextCaching.getSpecifiedRefreshOnlyIfNewer());
-	
-		
-		// set metadataComplete to True, check defaults not from java
-
-		ormContextMappedSuperclass.setSpecifiedMetadataComplete(Boolean.TRUE);
-		
-		assertEquals(null, resourceMappedSuperclass.getCache());
-		assertEquals(true, javaContextCaching.isRefreshOnlyIfNewer());
-		assertEquals(false, ormContextCaching.isRefreshOnlyIfNewer());
-		assertEquals(false, ormContextCaching.isDefaultRefreshOnlyIfNewer());
-		assertEquals(null, ormContextCaching.getSpecifiedRefreshOnlyIfNewer());
-
-		
-		// set metadataComplete back to null, check defaults from java
-		ormContextMappedSuperclass.setSpecifiedMetadataComplete(null);
-		
-		assertEquals(null, resourceMappedSuperclass.getCache());
-		assertEquals(true, javaContextCaching.isRefreshOnlyIfNewer());
-		assertEquals(true, ormContextCaching.isRefreshOnlyIfNewer());
-		assertEquals(true, ormContextCaching.isDefaultRefreshOnlyIfNewer());
-		assertEquals(null, ormContextCaching.getSpecifiedRefreshOnlyIfNewer());
-	}
-	
-	public void testModifyCacheRefreshOnlyIfNewer() throws Exception {
-		createTestMappedSuperclassForCaching();
-		OrmPersistentType ormPersistentType = getEntityMappings().addPersistentType(MappingKeys.MAPPED_SUPERCLASS_TYPE_MAPPING_KEY, FULLY_QUALIFIED_TYPE_NAME);
-		EclipseLinkOrmMappedSuperclass ormContextMappedSuperclass = (EclipseLinkOrmMappedSuperclass) ormPersistentType.getMapping();
-		Caching ormContextCaching = ormContextMappedSuperclass.getCaching();
-		XmlMappedSuperclass resourceMappedSuperclass = (XmlMappedSuperclass) getXmlEntityMappings().getMappedSuperclasses().get(0);
-		
-		// check defaults
-		
-		assertEquals(null, resourceMappedSuperclass.getCache());
-		assertEquals(false, ormContextCaching.isRefreshOnlyIfNewer());
-		assertEquals(false, ormContextCaching.isDefaultRefreshOnlyIfNewer());
-		assertEquals(null, ormContextCaching.getSpecifiedRefreshOnlyIfNewer());
-		
-		// set context cache size, check resource
-		
-		ormContextMappedSuperclass.getCaching().setSpecifiedRefreshOnlyIfNewer(Boolean.TRUE);
-		assertEquals(Boolean.TRUE, resourceMappedSuperclass.getCache().getRefreshOnlyIfNewer());
-		assertEquals(true, ormContextCaching.isRefreshOnlyIfNewer());
-		assertEquals(false, ormContextCaching.isDefaultRefreshOnlyIfNewer());
-		assertEquals(Boolean.TRUE, ormContextCaching.getSpecifiedRefreshOnlyIfNewer());
-				
-		// set context cache size to null, check resource
-		
-		ormContextMappedSuperclass.getCaching().setSpecifiedRefreshOnlyIfNewer(null);
-		
-		assertEquals(null, resourceMappedSuperclass.getCache());
-		assertEquals(false, ormContextCaching.isRefreshOnlyIfNewer());
-		assertEquals(false, ormContextCaching.isDefaultRefreshOnlyIfNewer());
-		assertEquals(null, ormContextCaching.getSpecifiedRefreshOnlyIfNewer());
-	}
-	
-	public void testUpdateCacheDisableHits() throws Exception {
-		createTestMappedSuperclassForCaching();
-		OrmPersistentType ormPersistentType = getEntityMappings().addPersistentType(MappingKeys.MAPPED_SUPERCLASS_TYPE_MAPPING_KEY, FULLY_QUALIFIED_TYPE_NAME);
-		JavaCaching javaContextCaching = ((EclipseLinkJavaMappedSuperclass) ormPersistentType.getJavaPersistentType().getMapping()).getCaching();
-		EclipseLinkOrmMappedSuperclass ormContextMappedSuperclass = (EclipseLinkOrmMappedSuperclass) ormPersistentType.getMapping();
-		Caching ormContextCaching = ormContextMappedSuperclass.getCaching();
-		XmlMappedSuperclass resourceMappedSuperclass = (XmlMappedSuperclass) getXmlEntityMappings().getMappedSuperclasses().get(0);
-
-
-		// check defaults
-		
-		assertEquals(null, resourceMappedSuperclass.getCache());
-		assertEquals(false, javaContextCaching.isDisableHits());
-		assertEquals(false, ormContextCaching.isDisableHits());
-		assertEquals(false, ormContextCaching.isDefaultDisableHits());
-		assertEquals(null, ormContextCaching.getSpecifiedDisableHits());
-		
-		// set xml cache, check defaults
-		resourceMappedSuperclass.setCache(EclipseLinkOrmFactory.eINSTANCE.createXmlCache());
-		assertEquals(null, resourceMappedSuperclass.getCache().getDisableHits());
-		assertEquals(false, javaContextCaching.isDisableHits());
-		assertEquals(false, ormContextCaching.isDisableHits());
-		assertEquals(false, ormContextCaching.isDefaultDisableHits());
-		assertEquals(null, ormContextCaching.getSpecifiedDisableHits());
-
-		
-		// set xml cache size, check settings
-		resourceMappedSuperclass.getCache().setDisableHits(Boolean.TRUE);
-		assertEquals(Boolean.TRUE, resourceMappedSuperclass.getCache().getDisableHits());
-		assertEquals(false, javaContextCaching.isDisableHits());
-		assertEquals(true, ormContextCaching.isDisableHits());
-		assertEquals(false, ormContextCaching.isDefaultDisableHits());
-		assertEquals(Boolean.TRUE, ormContextCaching.getSpecifiedDisableHits());
-
-			
-		// set java cache size, check defaults
-		
-		javaContextCaching.setSpecifiedDisableHits(Boolean.TRUE);
-		
-		assertEquals(Boolean.TRUE, resourceMappedSuperclass.getCache().getDisableHits());
-		assertEquals(true, javaContextCaching.isDisableHits());
-		assertEquals(true, ormContextCaching.isDisableHits());
-		assertEquals(false, ormContextCaching.isDefaultDisableHits());
-		assertEquals(Boolean.TRUE, ormContextCaching.getSpecifiedDisableHits());
-
-		// set xml cache always refresh to false
-		resourceMappedSuperclass.getCache().setDisableHits(Boolean.FALSE);
-		assertEquals(Boolean.FALSE, resourceMappedSuperclass.getCache().getDisableHits());
-		assertEquals(true, javaContextCaching.isDisableHits());
-		assertEquals(false, ormContextCaching.isDisableHits());
-		assertEquals(false, ormContextCaching.isDefaultDisableHits());
-		assertEquals(Boolean.FALSE, ormContextCaching.getSpecifiedDisableHits());
-
-		// clear xml cache always refresh, check defaults
-		resourceMappedSuperclass.getCache().setDisableHits(null);
-
-		assertEquals(null, resourceMappedSuperclass.getCache().getDisableHits());
-		assertEquals(true, javaContextCaching.isDisableHits());
-		assertEquals(false, ormContextCaching.isDisableHits());
-		assertEquals(false, ormContextCaching.isDefaultDisableHits());
-		assertEquals(null, ormContextCaching.getSpecifiedDisableHits());
-	
-		
-		// clear xml cache, check defaults
-		resourceMappedSuperclass.setCache(null);
-
-		assertEquals(null, resourceMappedSuperclass.getCache());
-		assertEquals(true, javaContextCaching.isDisableHits());
-		assertEquals(true, ormContextCaching.isDisableHits());
-		assertEquals(true, ormContextCaching.isDefaultDisableHits());
-		assertEquals(null, ormContextCaching.getSpecifiedDisableHits());
-	
-		
-		// set metadataComplete to True, check defaults not from java
-
-		ormContextMappedSuperclass.setSpecifiedMetadataComplete(Boolean.TRUE);
-		
-		assertEquals(null, resourceMappedSuperclass.getCache());
-		assertEquals(true, javaContextCaching.isDisableHits());
-		assertEquals(false, ormContextCaching.isDisableHits());
-		assertEquals(false, ormContextCaching.isDefaultDisableHits());
-		assertEquals(null, ormContextCaching.getSpecifiedDisableHits());
-
-		
-		// set metadataComplete back to null, check defaults from java
-		ormContextMappedSuperclass.setSpecifiedMetadataComplete(null);
-		
-		assertEquals(null, resourceMappedSuperclass.getCache());
-		assertEquals(true, javaContextCaching.isDisableHits());
-		assertEquals(true, ormContextCaching.isDisableHits());
-		assertEquals(true, ormContextCaching.isDefaultDisableHits());
-		assertEquals(null, ormContextCaching.getSpecifiedDisableHits());
-	}
-	
-	public void testModifyCacheDisableHits() throws Exception {
-		createTestMappedSuperclassForCaching();
-		OrmPersistentType ormPersistentType = getEntityMappings().addPersistentType(MappingKeys.MAPPED_SUPERCLASS_TYPE_MAPPING_KEY, FULLY_QUALIFIED_TYPE_NAME);
-		EclipseLinkOrmMappedSuperclass ormContextMappedSuperclass = (EclipseLinkOrmMappedSuperclass) ormPersistentType.getMapping();
-		Caching ormContextCaching = ormContextMappedSuperclass.getCaching();
-		XmlMappedSuperclass resourceMappedSuperclass = (XmlMappedSuperclass) getXmlEntityMappings().getMappedSuperclasses().get(0);
-		
-		// check defaults
-		
-		assertEquals(null, resourceMappedSuperclass.getCache());
-		assertEquals(false, ormContextCaching.isDisableHits());
-		assertEquals(false, ormContextCaching.isDefaultDisableHits());
-		assertEquals(null, ormContextCaching.getSpecifiedDisableHits());
-		
-		// set context cache size, check resource
-		
-		ormContextMappedSuperclass.getCaching().setSpecifiedDisableHits(Boolean.TRUE);
-		assertEquals(Boolean.TRUE, resourceMappedSuperclass.getCache().getDisableHits());
-		assertEquals(true, ormContextCaching.isDisableHits());
-		assertEquals(false, ormContextCaching.isDefaultDisableHits());
-		assertEquals(Boolean.TRUE, ormContextCaching.getSpecifiedDisableHits());
-				
-		// set context cache size to null, check resource
-		
-		ormContextMappedSuperclass.getCaching().setSpecifiedDisableHits(null);
-		
-		assertEquals(null, resourceMappedSuperclass.getCache());
-		assertEquals(false, ormContextCaching.isDisableHits());
-		assertEquals(false, ormContextCaching.isDefaultDisableHits());
-		assertEquals(null, ormContextCaching.getSpecifiedDisableHits());
-	}
-	
-	public void testUpdateCacheShared() throws Exception {
-		createTestMappedSuperclassForCaching();
-		OrmPersistentType ormPersistentType = getEntityMappings().addPersistentType(MappingKeys.MAPPED_SUPERCLASS_TYPE_MAPPING_KEY, FULLY_QUALIFIED_TYPE_NAME);
-		JavaCaching javaContextCaching = ((EclipseLinkJavaMappedSuperclass) ormPersistentType.getJavaPersistentType().getMapping()).getCaching();
-		EclipseLinkOrmMappedSuperclass ormContextMappedSuperclass = (EclipseLinkOrmMappedSuperclass) ormPersistentType.getMapping();
-		Caching ormContextCaching = ormContextMappedSuperclass.getCaching();
-		XmlMappedSuperclass resourceMappedSuperclass = (XmlMappedSuperclass) getXmlEntityMappings().getMappedSuperclasses().get(0);
-
-
-		// check defaults
-		
-		assertEquals(null, resourceMappedSuperclass.getCache());
-		assertEquals(true, javaContextCaching.isShared());
-		assertEquals(true, ormContextCaching.isShared());
-		assertEquals(true, ormContextCaching.isDefaultShared());
-		assertEquals(null, ormContextCaching.getSpecifiedShared());
-		
-		// set xml cache, check defaults
-		resourceMappedSuperclass.setCache(EclipseLinkOrmFactory.eINSTANCE.createXmlCache());
-		assertEquals(null, resourceMappedSuperclass.getCache().getShared());
-		assertEquals(true, javaContextCaching.isShared());
-		assertEquals(true, ormContextCaching.isShared());
-		assertEquals(true, ormContextCaching.isDefaultShared());
-		assertEquals(null, ormContextCaching.getSpecifiedShared());
-
-		
-		// set xml cache size, check settings
-		resourceMappedSuperclass.getCache().setShared(Boolean.FALSE);
-		assertEquals(Boolean.FALSE, resourceMappedSuperclass.getCache().getShared());
-		assertEquals(true, javaContextCaching.isShared());
-		assertEquals(false, ormContextCaching.isShared());
-		assertEquals(true, ormContextCaching.isDefaultShared());
-		assertEquals(Boolean.FALSE, ormContextCaching.getSpecifiedShared());
-
-			
-		// set java cache size, check defaults
-		
-		javaContextCaching.setSpecifiedShared(Boolean.FALSE);
-		
-		assertEquals(Boolean.FALSE, resourceMappedSuperclass.getCache().getShared());
-		assertEquals(false, javaContextCaching.isShared());
-		assertEquals(false, ormContextCaching.isShared());
-		assertEquals(true, ormContextCaching.isDefaultShared());
-		assertEquals(Boolean.FALSE, ormContextCaching.getSpecifiedShared());
-
-		// set xml cache always refresh to false
-		resourceMappedSuperclass.getCache().setShared(Boolean.TRUE);
-		assertEquals(Boolean.TRUE, resourceMappedSuperclass.getCache().getShared());
-		assertEquals(false, javaContextCaching.isShared());
-		assertEquals(true, ormContextCaching.isShared());
-		assertEquals(true, ormContextCaching.isDefaultShared());
-		assertEquals(Boolean.TRUE, ormContextCaching.getSpecifiedShared());
-
-		// clear xml cache always refresh, check defaults
-		resourceMappedSuperclass.getCache().setShared(null);
-
-		assertEquals(null, resourceMappedSuperclass.getCache().getShared());
-		assertEquals(false, javaContextCaching.isShared());
-		assertEquals(true, ormContextCaching.isShared());
-		assertEquals(true, ormContextCaching.isDefaultShared());
-		assertEquals(null, ormContextCaching.getSpecifiedShared());
-	
-		
-		// clear xml cache, check defaults
-		resourceMappedSuperclass.setCache(null);
-
-		assertEquals(null, resourceMappedSuperclass.getCache());
-		assertEquals(false, javaContextCaching.isShared());
-		assertEquals(false, ormContextCaching.isShared());
-		assertEquals(false, ormContextCaching.isDefaultShared());
-		assertEquals(null, ormContextCaching.getSpecifiedShared());
-	
-		
-		// set metadataComplete to True, check defaults not from java
-
-		ormContextMappedSuperclass.setSpecifiedMetadataComplete(Boolean.TRUE);
-		
-		assertEquals(null, resourceMappedSuperclass.getCache());
-		assertEquals(false, javaContextCaching.isShared());
-		assertEquals(true, ormContextCaching.isShared());
-		assertEquals(true, ormContextCaching.isDefaultShared());
-		assertEquals(null, ormContextCaching.getSpecifiedShared());
-
-		
-		// set metadataComplete back to null, check defaults from java
-		ormContextMappedSuperclass.setSpecifiedMetadataComplete(null);
-		
-		assertEquals(null, resourceMappedSuperclass.getCache());
-		assertEquals(false, javaContextCaching.isShared());
-		assertEquals(false, ormContextCaching.isShared());
-		assertEquals(false, ormContextCaching.isDefaultShared());
-		assertEquals(null, ormContextCaching.getSpecifiedShared());
-	}
-	
-	public void testModifyCacheShared() throws Exception {
-		createTestMappedSuperclassForCaching();
-		OrmPersistentType ormPersistentType = getEntityMappings().addPersistentType(MappingKeys.MAPPED_SUPERCLASS_TYPE_MAPPING_KEY, FULLY_QUALIFIED_TYPE_NAME);
-		EclipseLinkOrmMappedSuperclass ormContextMappedSuperclass = (EclipseLinkOrmMappedSuperclass) ormPersistentType.getMapping();
-		Caching ormContextCaching = ormContextMappedSuperclass.getCaching();
-		XmlMappedSuperclass resourceMappedSuperclass = (XmlMappedSuperclass) getXmlEntityMappings().getMappedSuperclasses().get(0);
-		
-		// check defaults
-		
-		assertEquals(null, resourceMappedSuperclass.getCache());
-		assertEquals(true, ormContextCaching.isShared());
-		assertEquals(true, ormContextCaching.isDefaultShared());
-		assertEquals(null, ormContextCaching.getSpecifiedShared());
-		
-		// set context cache size, check resource
-		
-		ormContextMappedSuperclass.getCaching().setSpecifiedShared(Boolean.FALSE);
-		assertEquals(Boolean.FALSE, resourceMappedSuperclass.getCache().getShared());
-		assertEquals(false, ormContextCaching.isShared());
-		assertEquals(true, ormContextCaching.isDefaultShared());
-		assertEquals(Boolean.FALSE, ormContextCaching.getSpecifiedShared());
-				
-		// set context cache size to null, check resource
-		
-		ormContextMappedSuperclass.getCaching().setSpecifiedShared(null);
-		
-		assertEquals(null, resourceMappedSuperclass.getCache());
-		assertEquals(true, ormContextCaching.isShared());
-		assertEquals(true, ormContextCaching.isDefaultShared());
-		assertEquals(null, ormContextCaching.getSpecifiedShared());
-	}
-	
-	public void testUpdateExistenceChecking() throws Exception {
-		createTestMappedSuperclassForCaching();
-		OrmPersistentType ormPersistentType = getEntityMappings().addPersistentType(MappingKeys.MAPPED_SUPERCLASS_TYPE_MAPPING_KEY, FULLY_QUALIFIED_TYPE_NAME);
-		JavaCaching javaContextCaching = ((EclipseLinkJavaMappedSuperclass) ormPersistentType.getJavaPersistentType().getMapping()).getCaching();
-		EclipseLinkOrmMappedSuperclass ormContextMappedSuperclass = (EclipseLinkOrmMappedSuperclass) ormPersistentType.getMapping();
-		Caching ormContextCaching = ormContextMappedSuperclass.getCaching();
-		XmlMappedSuperclass resourceMappedSuperclass = (XmlMappedSuperclass) getXmlEntityMappings().getMappedSuperclasses().get(0);
-
-
-		// check defaults
-		
-		assertEquals(null, resourceMappedSuperclass.getExistenceChecking());
-		assertEquals(ExistenceType.CHECK_DATABASE, javaContextCaching.getExistenceType());
-		assertEquals(ExistenceType.CHECK_DATABASE, ormContextCaching.getExistenceType());
-		assertEquals(ExistenceType.CHECK_DATABASE, ormContextCaching.getDefaultExistenceType());
-		assertEquals(null, ormContextCaching.getSpecifiedExistenceType());
-		
-		// set xml existence checking, check settings
-		resourceMappedSuperclass.setExistenceChecking(org.eclipse.jpt.eclipselink.core.resource.orm.ExistenceType.ASSUME_EXISTENCE);
-		assertEquals(org.eclipse.jpt.eclipselink.core.resource.orm.ExistenceType.ASSUME_EXISTENCE, resourceMappedSuperclass.getExistenceChecking());
-		assertEquals(ExistenceType.CHECK_DATABASE, javaContextCaching.getExistenceType());
-		assertEquals(ExistenceType.ASSUME_EXISTENCE, ormContextCaching.getExistenceType());
-		assertEquals(ExistenceType.CHECK_DATABASE, ormContextCaching.getDefaultExistenceType());
-		assertEquals(ExistenceType.ASSUME_EXISTENCE, ormContextCaching.getSpecifiedExistenceType());
-
-			
-		// set java cache existence checking, check defaults
-		
-		javaContextCaching.setSpecifiedExistenceType(ExistenceType.ASSUME_NON_EXISTENCE);
-		
-		assertEquals(org.eclipse.jpt.eclipselink.core.resource.orm.ExistenceType.ASSUME_EXISTENCE, resourceMappedSuperclass.getExistenceChecking());
-		assertEquals(ExistenceType.ASSUME_NON_EXISTENCE, javaContextCaching.getExistenceType());
-		assertEquals(ExistenceType.ASSUME_EXISTENCE, ormContextCaching.getExistenceType());
-		assertEquals(ExistenceType.ASSUME_NON_EXISTENCE, ormContextCaching.getDefaultExistenceType());
-		assertEquals(ExistenceType.ASSUME_EXISTENCE, ormContextCaching.getSpecifiedExistenceType());
-
-		// clear xml existence checking, check defaults
-		resourceMappedSuperclass.setExistenceChecking(null);
-
-		assertEquals(null, resourceMappedSuperclass.getExistenceChecking());
-		assertEquals(ExistenceType.ASSUME_NON_EXISTENCE, javaContextCaching.getExistenceType());
-		assertEquals(ExistenceType.ASSUME_NON_EXISTENCE, ormContextCaching.getExistenceType());
-		assertEquals(ExistenceType.ASSUME_NON_EXISTENCE, ormContextCaching.getDefaultExistenceType());
-		assertEquals(null, ormContextCaching.getSpecifiedExistenceType());	
-		
-		// set metadataComplete to True, check defaults not from java
-
-		ormContextMappedSuperclass.setSpecifiedMetadataComplete(Boolean.TRUE);
-		
-		assertEquals(null, resourceMappedSuperclass.getExistenceChecking());
-		assertEquals(ExistenceType.ASSUME_NON_EXISTENCE, javaContextCaching.getExistenceType());
-		assertEquals(ExistenceType.CHECK_DATABASE, ormContextCaching.getExistenceType());
-		assertEquals(ExistenceType.CHECK_DATABASE, ormContextCaching.getDefaultExistenceType());
-		assertEquals(null, ormContextCaching.getSpecifiedExistenceType());
-
-		ormContextMappedSuperclass.setSpecifiedMetadataComplete(null);
-	}
-	
-	public void testModifyExistenceChecking() throws Exception {
-		createTestMappedSuperclassForCaching();
-		OrmPersistentType ormPersistentType = getEntityMappings().addPersistentType(MappingKeys.MAPPED_SUPERCLASS_TYPE_MAPPING_KEY, FULLY_QUALIFIED_TYPE_NAME);
-		EclipseLinkOrmMappedSuperclass ormContextMappedSuperclass = (EclipseLinkOrmMappedSuperclass) ormPersistentType.getMapping();
-		Caching ormContextCaching = ormContextMappedSuperclass.getCaching();
-		XmlMappedSuperclass resourceMappedSuperclass = (XmlMappedSuperclass) getXmlEntityMappings().getMappedSuperclasses().get(0);
-		
-		// check defaults
-		
-		assertEquals(null, resourceMappedSuperclass.getExistenceChecking());
-		assertEquals(ExistenceType.CHECK_DATABASE, ormContextCaching.getExistenceType());
-		assertEquals(ExistenceType.CHECK_DATABASE, ormContextCaching.getDefaultExistenceType());
-		assertEquals(null, ormContextCaching.getSpecifiedExistenceType());
-		
-		// set context cache existence checking, check resource
-		
-		ormContextMappedSuperclass.getCaching().setSpecifiedExistenceType(ExistenceType.ASSUME_EXISTENCE);
-		assertEquals(org.eclipse.jpt.eclipselink.core.resource.orm.ExistenceType.ASSUME_EXISTENCE, resourceMappedSuperclass.getExistenceChecking());
-		assertEquals(ExistenceType.ASSUME_EXISTENCE, ormContextCaching.getExistenceType());
-		assertEquals(ExistenceType.CHECK_DATABASE, ormContextCaching.getDefaultExistenceType());
-		assertEquals(ExistenceType.ASSUME_EXISTENCE, ormContextCaching.getSpecifiedExistenceType());
-				
-		// set context existence checking to null, check resource
-		
-		ormContextMappedSuperclass.getCaching().setSpecifiedExistenceType(null);
-		
-		assertEquals(null, resourceMappedSuperclass.getExistenceChecking());
-		assertEquals(ExistenceType.CHECK_DATABASE, ormContextCaching.getExistenceType());
-		assertEquals(ExistenceType.CHECK_DATABASE, ormContextCaching.getDefaultExistenceType());
-		assertEquals(null, ormContextCaching.getSpecifiedExistenceType());
-	}
-	public void testUpdateCustomConverters() throws Exception {
-		createTestMappedSuperclassForConverters();
-		EclipseLinkPersistenceUnit persistenceUnit = getPersistenceUnit();
-		OrmPersistentType ormPersistentType = getEntityMappings().addPersistentType(MappingKeys.MAPPED_SUPERCLASS_TYPE_MAPPING_KEY, FULLY_QUALIFIED_TYPE_NAME);
-		EclipseLinkOrmMappedSuperclass ormContextMappedSuperclass = (EclipseLinkOrmMappedSuperclass) ormPersistentType.getMapping();
-		ConverterHolder ormContextConverterHolder = ormContextMappedSuperclass.getConverterHolder();
-		XmlMappedSuperclass resourceMappedSuperclass = (XmlMappedSuperclass) getXmlEntityMappings().getMappedSuperclasses().get(0);
-		
-		assertEquals(0, ormContextConverterHolder.customConvertersSize());
-		assertEquals(0, resourceMappedSuperclass.getConverters().size());
-		assertEquals(0, CollectionTools.size(persistenceUnit.allConverters()));
-		
-		//add a converter to the resource model, check context model
-		XmlConverter resourceConverter = EclipseLinkOrmFactory.eINSTANCE.createXmlConverterImpl();
-		resourceMappedSuperclass.getConverters().add(resourceConverter);
-		resourceConverter.setClassName("Foo");
-		resourceConverter.setName("myConverter");
-		
-		assertEquals(1, ormContextConverterHolder.customConvertersSize());
-		ListIterator<CustomConverter> ormContextConverters = ormContextConverterHolder.customConverters();
-		CustomConverter ormContextConverter = ormContextConverters.next();
-		assertEquals("Foo", ormContextConverter.getConverterClass());
-		assertEquals("myConverter", ormContextConverter.getName());
-		assertEquals(1, resourceMappedSuperclass.getConverters().size());
-		assertEquals(1, CollectionTools.size(persistenceUnit.allConverters()));
-		
-		//add another converter to the resource model, check context model
-		XmlConverter resourceConverter2 = EclipseLinkOrmFactory.eINSTANCE.createXmlConverterImpl();
-		resourceMappedSuperclass.getConverters().add(0, resourceConverter2);
-		resourceConverter2.setClassName("Foo2");
-		resourceConverter2.setName("myConverter2");
-		
-		assertEquals(2, ormContextConverterHolder.customConvertersSize());
-		ormContextConverters = ormContextConverterHolder.customConverters();
-		ormContextConverter = ormContextConverters.next();
-		assertEquals("Foo2", ormContextConverter.getConverterClass());
-		assertEquals("myConverter2", ormContextConverter.getName());
-		ormContextConverter = ormContextConverters.next();
-		assertEquals("Foo", ormContextConverter.getConverterClass());
-		assertEquals("myConverter", ormContextConverter.getName());
-		assertEquals(2, resourceMappedSuperclass.getConverters().size());
-		assertEquals(2, CollectionTools.size(persistenceUnit.allConverters()));
-		
-		//move a converter in the resource model, check context model
-		resourceMappedSuperclass.getConverters().move(0, 1);
-		
-		assertEquals(2, ormContextConverterHolder.customConvertersSize());
-		ormContextConverters = ormContextConverterHolder.customConverters();
-		ormContextConverter = ormContextConverters.next();
-		assertEquals("Foo", ormContextConverter.getConverterClass());
-		assertEquals("myConverter", ormContextConverter.getName());
-		ormContextConverter = ormContextConverters.next();
-		assertEquals("Foo2", ormContextConverter.getConverterClass());
-		assertEquals("myConverter2", ormContextConverter.getName());
-		assertEquals(2, resourceMappedSuperclass.getConverters().size());
-		assertEquals(2, CollectionTools.size(persistenceUnit.allConverters()));
-		
-		//remove a converter from the resource model, check context model
-		resourceMappedSuperclass.getConverters().remove(0);
-		
-		assertEquals(1, ormContextConverterHolder.customConvertersSize());
-		ormContextConverters = ormContextConverterHolder.customConverters();
-		ormContextConverter = ormContextConverters.next();
-		assertEquals("Foo2", ormContextConverter.getConverterClass());
-		assertEquals("myConverter2", ormContextConverter.getName());
-		assertEquals(1, resourceMappedSuperclass.getConverters().size());
-		assertEquals(1, CollectionTools.size(persistenceUnit.allConverters()));
-		
-		//remove a converter from the resource model, check context model
-		resourceMappedSuperclass.getConverters().remove(resourceConverter2);
-		
-		assertEquals(0, ormContextConverterHolder.customConvertersSize());
-		assertFalse(ormContextConverterHolder.customConverters().hasNext());
-		assertEquals(0, resourceMappedSuperclass.getConverters().size());
-		assertEquals(0, CollectionTools.size(persistenceUnit.allConverters()));
-	}
-
-	public void testModifyCustomConverters() throws Exception {
-		createTestMappedSuperclassForConverters();
-		EclipseLinkPersistenceUnit persistenceUnit = getPersistenceUnit();
-		OrmPersistentType ormPersistentType = getEntityMappings().addPersistentType(MappingKeys.MAPPED_SUPERCLASS_TYPE_MAPPING_KEY, FULLY_QUALIFIED_TYPE_NAME);
-		EclipseLinkOrmMappedSuperclass ormContextMappedSuperclass = (EclipseLinkOrmMappedSuperclass) ormPersistentType.getMapping();
-		ConverterHolder ormContextConverterHolder = ormContextMappedSuperclass.getConverterHolder();
-		XmlMappedSuperclass resourceMappedSuperclass = (XmlMappedSuperclass) getXmlEntityMappings().getMappedSuperclasses().get(0);
-		
-		assertEquals(0, ormContextConverterHolder.customConvertersSize());
-		assertEquals(0, resourceMappedSuperclass.getConverters().size());
-		assertEquals(0, CollectionTools.size(persistenceUnit.allConverters()));
-		
-		//add a converter to the context model, check resource model
-		CustomConverter contextConverter = ormContextConverterHolder.addCustomConverter(0);
-		contextConverter.setConverterClass("Foo");
-		contextConverter.setName("myConverter");
-		
-		assertEquals(1, resourceMappedSuperclass.getConverters().size());
-		assertEquals("Foo", resourceMappedSuperclass.getConverters().get(0).getClassName());
-		assertEquals("myConverter", resourceMappedSuperclass.getConverters().get(0).getName());
-		assertEquals(1, ormContextConverterHolder.customConvertersSize());
-		ListIterator<CustomConverter> ormContextConverters = ormContextConverterHolder.customConverters();
-		CustomConverter ormContextConverter = ormContextConverters.next();
-		assertEquals("Foo", ormContextConverter.getConverterClass());
-		assertEquals("myConverter", ormContextConverter.getName());
-		assertEquals(1, CollectionTools.size(persistenceUnit.allConverters()));
-		
-		//add another converter to the context model, check resource model
-		CustomConverter contextConverter2 = ormContextConverterHolder.addCustomConverter(0);
-		contextConverter2.setConverterClass("Foo2");
-		contextConverter2.setName("myConverter2");
-		
-		assertEquals(2, resourceMappedSuperclass.getConverters().size());
-		assertEquals("Foo2", resourceMappedSuperclass.getConverters().get(0).getClassName());
-		assertEquals("myConverter2", resourceMappedSuperclass.getConverters().get(0).getName());
-		assertEquals("Foo", resourceMappedSuperclass.getConverters().get(1).getClassName());
-		assertEquals("myConverter", resourceMappedSuperclass.getConverters().get(1).getName());
-		assertEquals(2, ormContextConverterHolder.customConvertersSize());
-		ormContextConverters = ormContextConverterHolder.customConverters();
-		ormContextConverter = ormContextConverters.next();
-		assertEquals("Foo2", ormContextConverter.getConverterClass());
-		assertEquals("myConverter2", ormContextConverter.getName());
-		ormContextConverter = ormContextConverters.next();
-		assertEquals("Foo", ormContextConverter.getConverterClass());
-		assertEquals("myConverter", ormContextConverter.getName());
-		assertEquals(2, CollectionTools.size(persistenceUnit.allConverters()));
-		
-		//move a converter in the context model, check resource model
-		ormContextConverterHolder.moveCustomConverter(0, 1);
-		
-		assertEquals(2, resourceMappedSuperclass.getConverters().size());
-		assertEquals("Foo", resourceMappedSuperclass.getConverters().get(0).getClassName());
-		assertEquals("myConverter", resourceMappedSuperclass.getConverters().get(0).getName());
-		assertEquals("Foo2", resourceMappedSuperclass.getConverters().get(1).getClassName());
-		assertEquals("myConverter2", resourceMappedSuperclass.getConverters().get(1).getName());
-		assertEquals(2, ormContextConverterHolder.customConvertersSize());
-		ormContextConverters = ormContextConverterHolder.customConverters();
-		ormContextConverter = ormContextConverters.next();
-		assertEquals("Foo", ormContextConverter.getConverterClass());
-		assertEquals("myConverter", ormContextConverter.getName());
-		ormContextConverter = ormContextConverters.next();
-		assertEquals("Foo2", ormContextConverter.getConverterClass());
-		assertEquals("myConverter2", ormContextConverter.getName());
-		assertEquals(2, CollectionTools.size(persistenceUnit.allConverters()));
-		
-		//remove a converter from the context model, check resource model
-		ormContextConverterHolder.removeCustomConverter(0);
-		
-		assertEquals(1, resourceMappedSuperclass.getConverters().size());
-		assertEquals("Foo2", resourceMappedSuperclass.getConverters().get(0).getClassName());
-		assertEquals("myConverter2", resourceMappedSuperclass.getConverters().get(0).getName());
-		assertEquals(1, ormContextConverterHolder.customConvertersSize());
-		ormContextConverters = ormContextConverterHolder.customConverters();
-		ormContextConverter = ormContextConverters.next();
-		assertEquals("Foo2", ormContextConverter.getConverterClass());
-		assertEquals("myConverter2", ormContextConverter.getName());
-		assertEquals(1, CollectionTools.size(persistenceUnit.allConverters()));
-		
-		//remove a converter from the context model, check resource model
-		ormContextConverterHolder.removeCustomConverter(contextConverter2);
-		
-		assertEquals(0, ormContextConverterHolder.customConvertersSize());
-		assertFalse(ormContextConverterHolder.customConverters().hasNext());
-		assertEquals(0, resourceMappedSuperclass.getConverters().size());
-		assertEquals(0, CollectionTools.size(persistenceUnit.allConverters()));
-	}
-	
-	public void testUpdateTypeConverters() throws Exception {
-		createTestMappedSuperclassForTypeConverters();
-		EclipseLinkPersistenceUnit persistenceUnit = getPersistenceUnit();
-		OrmPersistentType ormPersistentType = getEntityMappings().addPersistentType(MappingKeys.MAPPED_SUPERCLASS_TYPE_MAPPING_KEY, FULLY_QUALIFIED_TYPE_NAME);
-		EclipseLinkOrmMappedSuperclass ormContextMappedSuperclass = (EclipseLinkOrmMappedSuperclass) ormPersistentType.getMapping();
-		ConverterHolder ormContextConverterHolder = ormContextMappedSuperclass.getConverterHolder();
-		XmlMappedSuperclass resourceMappedSuperclass = (XmlMappedSuperclass) getXmlEntityMappings().getMappedSuperclasses().get(0);
-		
-		assertEquals(0, ormContextConverterHolder.typeConvertersSize());
-		assertEquals(0, resourceMappedSuperclass.getTypeConverters().size());
-		assertEquals(0, CollectionTools.size(persistenceUnit.allConverters()));
-		
-		//add a converter to the resource model, check context model
-		XmlTypeConverter resourceTypeConverter = EclipseLinkOrmFactory.eINSTANCE.createXmlTypeConverterImpl();
-		resourceMappedSuperclass.getTypeConverters().add(resourceTypeConverter);
-		resourceTypeConverter.setDataType("Foo");
-		resourceTypeConverter.setName("myTypeConverter");
-		
-		assertEquals(1, ormContextConverterHolder.typeConvertersSize());
-		ListIterator<TypeConverter> ormContextTypeConverters = ormContextConverterHolder.typeConverters();
-		TypeConverter ormContextTypeConverter = ormContextTypeConverters.next();
-		assertEquals("Foo", ormContextTypeConverter.getDataType());
-		assertEquals("myTypeConverter", ormContextTypeConverter.getName());
-		assertEquals(1, resourceMappedSuperclass.getTypeConverters().size());
-		assertEquals(1, CollectionTools.size(persistenceUnit.allConverters()));
-		
-		//add another converter to the resource model, check context model
-		XmlTypeConverter resourceTypeConverter2 = EclipseLinkOrmFactory.eINSTANCE.createXmlTypeConverterImpl();
-		resourceMappedSuperclass.getTypeConverters().add(0, resourceTypeConverter2);
-		resourceTypeConverter2.setDataType("Foo2");
-		resourceTypeConverter2.setName("myTypeConverter2");
-		
-		assertEquals(2, ormContextConverterHolder.typeConvertersSize());
-		ormContextTypeConverters = ormContextConverterHolder.typeConverters();
-		ormContextTypeConverter = ormContextTypeConverters.next();
-		assertEquals("Foo2", ormContextTypeConverter.getDataType());
-		assertEquals("myTypeConverter2", ormContextTypeConverter.getName());
-		ormContextTypeConverter = ormContextTypeConverters.next();
-		assertEquals("Foo", ormContextTypeConverter.getDataType());
-		assertEquals("myTypeConverter", ormContextTypeConverter.getName());
-		assertEquals(2, resourceMappedSuperclass.getTypeConverters().size());
-		assertEquals(2, CollectionTools.size(persistenceUnit.allConverters()));
-		
-		//move a converter in the resource model, check context model
-		resourceMappedSuperclass.getTypeConverters().move(0, 1);
-		
-		assertEquals(2, ormContextConverterHolder.typeConvertersSize());
-		ormContextTypeConverters = ormContextConverterHolder.typeConverters();
-		ormContextTypeConverter = ormContextTypeConverters.next();
-		assertEquals("Foo", ormContextTypeConverter.getDataType());
-		assertEquals("myTypeConverter", ormContextTypeConverter.getName());
-		ormContextTypeConverter = ormContextTypeConverters.next();
-		assertEquals("Foo2", ormContextTypeConverter.getDataType());
-		assertEquals("myTypeConverter2", ormContextTypeConverter.getName());
-		assertEquals(2, resourceMappedSuperclass.getTypeConverters().size());
-		assertEquals(2, CollectionTools.size(persistenceUnit.allConverters()));
-		
-		//remove a converter from the resource model, check context model
-		resourceMappedSuperclass.getTypeConverters().remove(0);
-		
-		assertEquals(1, ormContextConverterHolder.typeConvertersSize());
-		ormContextTypeConverters = ormContextConverterHolder.typeConverters();
-		ormContextTypeConverter = ormContextTypeConverters.next();
-		assertEquals("Foo2", ormContextTypeConverter.getDataType());
-		assertEquals("myTypeConverter2", ormContextTypeConverter.getName());
-		assertEquals(1, resourceMappedSuperclass.getTypeConverters().size());
-		assertEquals(1, CollectionTools.size(persistenceUnit.allConverters()));
-		
-		//remove a converter from the resource model, check context model
-		resourceMappedSuperclass.getTypeConverters().remove(resourceTypeConverter2);
-		
-		assertEquals(0, ormContextConverterHolder.typeConvertersSize());
-		assertFalse(ormContextConverterHolder.typeConverters().hasNext());
-		assertEquals(0, resourceMappedSuperclass.getTypeConverters().size());
-		assertEquals(0, CollectionTools.size(persistenceUnit.allConverters()));
-	}
-
-	public void testModifyTypeConverters() throws Exception {
-		createTestMappedSuperclassForTypeConverters();
-		EclipseLinkPersistenceUnit persistenceUnit = getPersistenceUnit();
-		OrmPersistentType ormPersistentType = getEntityMappings().addPersistentType(MappingKeys.MAPPED_SUPERCLASS_TYPE_MAPPING_KEY, FULLY_QUALIFIED_TYPE_NAME);
-		EclipseLinkOrmMappedSuperclass ormContextMappedSuperclass = (EclipseLinkOrmMappedSuperclass) ormPersistentType.getMapping();
-		ConverterHolder ormContextConverterHolder = ormContextMappedSuperclass.getConverterHolder();
-		XmlMappedSuperclass resourceMappedSuperclass = (XmlMappedSuperclass) getXmlEntityMappings().getMappedSuperclasses().get(0);
-		
-		assertEquals(0, ormContextConverterHolder.typeConvertersSize());
-		assertEquals(0, resourceMappedSuperclass.getTypeConverters().size());
-		assertEquals(0, CollectionTools.size(persistenceUnit.allConverters()));
-		
-		//add a converter to the context model, check resource model
-		TypeConverter contextTypeConverter = ormContextConverterHolder.addTypeConverter(0);
-		contextTypeConverter.setDataType("Foo");
-		contextTypeConverter.setName("myTypeConverter");
-		
-		assertEquals(1, resourceMappedSuperclass.getTypeConverters().size());
-		assertEquals("Foo", resourceMappedSuperclass.getTypeConverters().get(0).getDataType());
-		assertEquals("myTypeConverter", resourceMappedSuperclass.getTypeConverters().get(0).getName());
-		assertEquals(1, ormContextConverterHolder.typeConvertersSize());
-		ListIterator<TypeConverter> ormContextTypeConverters = ormContextConverterHolder.typeConverters();
-		TypeConverter ormContextTypeConverter = ormContextTypeConverters.next();
-		assertEquals("Foo", ormContextTypeConverter.getDataType());
-		assertEquals("myTypeConverter", ormContextTypeConverter.getName());
-		assertEquals(1, CollectionTools.size(persistenceUnit.allConverters()));
-		
-		//add another converter to the context model, check resource model
-		TypeConverter contextTypeConverter2 = ormContextConverterHolder.addTypeConverter(0);
-		contextTypeConverter2.setDataType("Foo2");
-		contextTypeConverter2.setName("myTypeConverter2");
-		
-		assertEquals(2, resourceMappedSuperclass.getTypeConverters().size());
-		assertEquals("Foo2", resourceMappedSuperclass.getTypeConverters().get(0).getDataType());
-		assertEquals("myTypeConverter2", resourceMappedSuperclass.getTypeConverters().get(0).getName());
-		assertEquals("Foo", resourceMappedSuperclass.getTypeConverters().get(1).getDataType());
-		assertEquals("myTypeConverter", resourceMappedSuperclass.getTypeConverters().get(1).getName());
-		assertEquals(2, ormContextConverterHolder.typeConvertersSize());
-		ormContextTypeConverters = ormContextConverterHolder.typeConverters();
-		ormContextTypeConverter = ormContextTypeConverters.next();
-		assertEquals("Foo2", ormContextTypeConverter.getDataType());
-		assertEquals("myTypeConverter2", ormContextTypeConverter.getName());
-		ormContextTypeConverter = ormContextTypeConverters.next();
-		assertEquals("Foo", ormContextTypeConverter.getDataType());
-		assertEquals("myTypeConverter", ormContextTypeConverter.getName());
-		assertEquals(2, CollectionTools.size(persistenceUnit.allConverters()));
-		
-		//move a converter in the context model, check resource model
-		ormContextConverterHolder.moveTypeConverter(0, 1);
-		
-		assertEquals(2, resourceMappedSuperclass.getTypeConverters().size());
-		assertEquals("Foo", resourceMappedSuperclass.getTypeConverters().get(0).getDataType());
-		assertEquals("myTypeConverter", resourceMappedSuperclass.getTypeConverters().get(0).getName());
-		assertEquals("Foo2", resourceMappedSuperclass.getTypeConverters().get(1).getDataType());
-		assertEquals("myTypeConverter2", resourceMappedSuperclass.getTypeConverters().get(1).getName());
-		assertEquals(2, ormContextConverterHolder.typeConvertersSize());
-		ormContextTypeConverters = ormContextConverterHolder.typeConverters();
-		ormContextTypeConverter = ormContextTypeConverters.next();
-		assertEquals("Foo", ormContextTypeConverter.getDataType());
-		assertEquals("myTypeConverter", ormContextTypeConverter.getName());
-		ormContextTypeConverter = ormContextTypeConverters.next();
-		assertEquals("Foo2", ormContextTypeConverter.getDataType());
-		assertEquals("myTypeConverter2", ormContextTypeConverter.getName());
-		assertEquals(2, CollectionTools.size(persistenceUnit.allConverters()));
-		
-		//remove a converter from the context model, check resource model
-		ormContextConverterHolder.removeTypeConverter(0);
-		
-		assertEquals(1, resourceMappedSuperclass.getTypeConverters().size());
-		assertEquals("Foo2", resourceMappedSuperclass.getTypeConverters().get(0).getDataType());
-		assertEquals("myTypeConverter2", resourceMappedSuperclass.getTypeConverters().get(0).getName());
-		assertEquals(1, ormContextConverterHolder.typeConvertersSize());
-		ormContextTypeConverters = ormContextConverterHolder.typeConverters();
-		ormContextTypeConverter = ormContextTypeConverters.next();
-		assertEquals("Foo2", ormContextTypeConverter.getDataType());
-		assertEquals("myTypeConverter2", ormContextTypeConverter.getName());
-		assertEquals(1, CollectionTools.size(persistenceUnit.allConverters()));
-		
-		//remove a converter from the context model, check resource model
-		ormContextConverterHolder.removeTypeConverter(contextTypeConverter2);
-		
-		assertEquals(0, ormContextConverterHolder.typeConvertersSize());
-		assertFalse(ormContextConverterHolder.typeConverters().hasNext());
-		assertEquals(0, resourceMappedSuperclass.getTypeConverters().size());
-		assertEquals(0, CollectionTools.size(persistenceUnit.allConverters()));
-	}
-	
-	public void testUpdateObjectTypeConverters() throws Exception {
-		createTestMappedSuperclassForObjectTypeConverters();
-		EclipseLinkPersistenceUnit persistenceUnit = getPersistenceUnit();
-		OrmPersistentType ormPersistentType = getEntityMappings().addPersistentType(MappingKeys.MAPPED_SUPERCLASS_TYPE_MAPPING_KEY, FULLY_QUALIFIED_TYPE_NAME);
-		EclipseLinkOrmMappedSuperclass ormContextMappedSuperclass = (EclipseLinkOrmMappedSuperclass) ormPersistentType.getMapping();
-		ConverterHolder ormContextConverterHolder = ormContextMappedSuperclass.getConverterHolder();
-		XmlMappedSuperclass resourceMappedSuperclass = (XmlMappedSuperclass) getXmlEntityMappings().getMappedSuperclasses().get(0);
-		
-		assertEquals(0, ormContextConverterHolder.objectTypeConvertersSize());
-		assertEquals(0, resourceMappedSuperclass.getObjectTypeConverters().size());
-		assertEquals(0, CollectionTools.size(persistenceUnit.allConverters()));
-		
-		//add a converter to the resource model, check context model
-		XmlObjectTypeConverter resourceObjectTypeConverter = EclipseLinkOrmFactory.eINSTANCE.createXmlObjectTypeConverterImpl();
-		resourceMappedSuperclass.getObjectTypeConverters().add(resourceObjectTypeConverter);
-		resourceObjectTypeConverter.setDataType("Foo");
-		resourceObjectTypeConverter.setName("myObjectTypeConverter");
-		
-		assertEquals(1, ormContextConverterHolder.objectTypeConvertersSize());
-		ListIterator<ObjectTypeConverter> ormContextObjectTypeConverters = ormContextConverterHolder.objectTypeConverters();
-		ObjectTypeConverter ormContextObjectTypeConverter = ormContextObjectTypeConverters.next();
-		assertEquals("Foo", ormContextObjectTypeConverter.getDataType());
-		assertEquals("myObjectTypeConverter", ormContextObjectTypeConverter.getName());
-		assertEquals(1, resourceMappedSuperclass.getObjectTypeConverters().size());
-		assertEquals(1, CollectionTools.size(persistenceUnit.allConverters()));
-		
-		//add another converter to the resource model, check context model
-		XmlObjectTypeConverter resourceObjectTypeConverter2 = EclipseLinkOrmFactory.eINSTANCE.createXmlObjectTypeConverterImpl();
-		resourceMappedSuperclass.getObjectTypeConverters().add(0, resourceObjectTypeConverter2);
-		resourceObjectTypeConverter2.setDataType("Foo2");
-		resourceObjectTypeConverter2.setName("myObjectTypeConverter2");
-		
-		assertEquals(2, ormContextConverterHolder.objectTypeConvertersSize());
-		ormContextObjectTypeConverters = ormContextConverterHolder.objectTypeConverters();
-		ormContextObjectTypeConverter = ormContextObjectTypeConverters.next();
-		assertEquals("Foo2", ormContextObjectTypeConverter.getDataType());
-		assertEquals("myObjectTypeConverter2", ormContextObjectTypeConverter.getName());
-		ormContextObjectTypeConverter = ormContextObjectTypeConverters.next();
-		assertEquals("Foo", ormContextObjectTypeConverter.getDataType());
-		assertEquals("myObjectTypeConverter", ormContextObjectTypeConverter.getName());
-		assertEquals(2, resourceMappedSuperclass.getObjectTypeConverters().size());
-		assertEquals(2, CollectionTools.size(persistenceUnit.allConverters()));
-		
-		//move a converter in the resource model, check context model
-		resourceMappedSuperclass.getObjectTypeConverters().move(0, 1);
-		
-		assertEquals(2, ormContextConverterHolder.objectTypeConvertersSize());
-		ormContextObjectTypeConverters = ormContextConverterHolder.objectTypeConverters();
-		ormContextObjectTypeConverter = ormContextObjectTypeConverters.next();
-		assertEquals("Foo", ormContextObjectTypeConverter.getDataType());
-		assertEquals("myObjectTypeConverter", ormContextObjectTypeConverter.getName());
-		ormContextObjectTypeConverter = ormContextObjectTypeConverters.next();
-		assertEquals("Foo2", ormContextObjectTypeConverter.getDataType());
-		assertEquals("myObjectTypeConverter2", ormContextObjectTypeConverter.getName());
-		assertEquals(2, resourceMappedSuperclass.getObjectTypeConverters().size());
-		assertEquals(2, CollectionTools.size(persistenceUnit.allConverters()));
-		
-		//remove a converter from the resource model, check context model
-		resourceMappedSuperclass.getObjectTypeConverters().remove(0);
-		
-		assertEquals(1, ormContextConverterHolder.objectTypeConvertersSize());
-		ormContextObjectTypeConverters = ormContextConverterHolder.objectTypeConverters();
-		ormContextObjectTypeConverter = ormContextObjectTypeConverters.next();
-		assertEquals("Foo2", ormContextObjectTypeConverter.getDataType());
-		assertEquals("myObjectTypeConverter2", ormContextObjectTypeConverter.getName());
-		assertEquals(1, resourceMappedSuperclass.getObjectTypeConverters().size());
-		assertEquals(1, CollectionTools.size(persistenceUnit.allConverters()));
-		
-		//remove a converter from the resource model, check context model
-		resourceMappedSuperclass.getObjectTypeConverters().remove(resourceObjectTypeConverter2);
-		
-		assertEquals(0, ormContextConverterHolder.objectTypeConvertersSize());
-		assertFalse(ormContextConverterHolder.objectTypeConverters().hasNext());
-		assertEquals(0, resourceMappedSuperclass.getObjectTypeConverters().size());
-		assertEquals(0, CollectionTools.size(persistenceUnit.allConverters()));
-	}
-
-	public void testModifyObjectTypeConverters() throws Exception {
-		createTestMappedSuperclassForObjectTypeConverters();
-		EclipseLinkPersistenceUnit persistenceUnit = getPersistenceUnit();
-		OrmPersistentType ormPersistentType = getEntityMappings().addPersistentType(MappingKeys.MAPPED_SUPERCLASS_TYPE_MAPPING_KEY, FULLY_QUALIFIED_TYPE_NAME);
-		EclipseLinkOrmMappedSuperclass ormContextMappedSuperclass = (EclipseLinkOrmMappedSuperclass) ormPersistentType.getMapping();
-		ConverterHolder ormContextConverterHolder = ormContextMappedSuperclass.getConverterHolder();
-		XmlMappedSuperclass resourceMappedSuperclass = (XmlMappedSuperclass) getXmlEntityMappings().getMappedSuperclasses().get(0);
-		
-		assertEquals(0, ormContextConverterHolder.objectTypeConvertersSize());
-		assertEquals(0, resourceMappedSuperclass.getObjectTypeConverters().size());
-		assertEquals(0, CollectionTools.size(persistenceUnit.allConverters()));
-		
-		//add a converter to the context model, check resource model
-		ObjectTypeConverter contextObjectTypeConverter = ormContextConverterHolder.addObjectTypeConverter(0);
-		contextObjectTypeConverter.setDataType("Foo");
-		contextObjectTypeConverter.setName("myObjectTypeConverter");
-		
-		assertEquals(1, resourceMappedSuperclass.getObjectTypeConverters().size());
-		assertEquals("Foo", resourceMappedSuperclass.getObjectTypeConverters().get(0).getDataType());
-		assertEquals("myObjectTypeConverter", resourceMappedSuperclass.getObjectTypeConverters().get(0).getName());
-		assertEquals(1, ormContextConverterHolder.objectTypeConvertersSize());
-		ListIterator<ObjectTypeConverter> ormContextObjectTypeConverters = ormContextConverterHolder.objectTypeConverters();
-		ObjectTypeConverter ormContextObjectTypeConverter = ormContextObjectTypeConverters.next();
-		assertEquals("Foo", ormContextObjectTypeConverter.getDataType());
-		assertEquals("myObjectTypeConverter", ormContextObjectTypeConverter.getName());
-		assertEquals(1, CollectionTools.size(persistenceUnit.allConverters()));
-		
-		//add another converter to the context model, check resource model
-		ObjectTypeConverter contextObjectTypeConverter2 = ormContextConverterHolder.addObjectTypeConverter(0);
-		contextObjectTypeConverter2.setDataType("Foo2");
-		contextObjectTypeConverter2.setName("myObjectTypeConverter2");
-		
-		assertEquals(2, resourceMappedSuperclass.getObjectTypeConverters().size());
-		assertEquals("Foo2", resourceMappedSuperclass.getObjectTypeConverters().get(0).getDataType());
-		assertEquals("myObjectTypeConverter2", resourceMappedSuperclass.getObjectTypeConverters().get(0).getName());
-		assertEquals("Foo", resourceMappedSuperclass.getObjectTypeConverters().get(1).getDataType());
-		assertEquals("myObjectTypeConverter", resourceMappedSuperclass.getObjectTypeConverters().get(1).getName());
-		assertEquals(2, ormContextConverterHolder.objectTypeConvertersSize());
-		ormContextObjectTypeConverters = ormContextConverterHolder.objectTypeConverters();
-		ormContextObjectTypeConverter = ormContextObjectTypeConverters.next();
-		assertEquals("Foo2", ormContextObjectTypeConverter.getDataType());
-		assertEquals("myObjectTypeConverter2", ormContextObjectTypeConverter.getName());
-		ormContextObjectTypeConverter = ormContextObjectTypeConverters.next();
-		assertEquals("Foo", ormContextObjectTypeConverter.getDataType());
-		assertEquals("myObjectTypeConverter", ormContextObjectTypeConverter.getName());
-		assertEquals(2, CollectionTools.size(persistenceUnit.allConverters()));
-		
-		//move a converter in the context model, check resource model
-		ormContextConverterHolder.moveObjectTypeConverter(0, 1);
-		
-		assertEquals(2, resourceMappedSuperclass.getObjectTypeConverters().size());
-		assertEquals("Foo", resourceMappedSuperclass.getObjectTypeConverters().get(0).getDataType());
-		assertEquals("myObjectTypeConverter", resourceMappedSuperclass.getObjectTypeConverters().get(0).getName());
-		assertEquals("Foo2", resourceMappedSuperclass.getObjectTypeConverters().get(1).getDataType());
-		assertEquals("myObjectTypeConverter2", resourceMappedSuperclass.getObjectTypeConverters().get(1).getName());
-		assertEquals(2, ormContextConverterHolder.objectTypeConvertersSize());
-		ormContextObjectTypeConverters = ormContextConverterHolder.objectTypeConverters();
-		ormContextObjectTypeConverter = ormContextObjectTypeConverters.next();
-		assertEquals("Foo", ormContextObjectTypeConverter.getDataType());
-		assertEquals("myObjectTypeConverter", ormContextObjectTypeConverter.getName());
-		ormContextObjectTypeConverter = ormContextObjectTypeConverters.next();
-		assertEquals("Foo2", ormContextObjectTypeConverter.getDataType());
-		assertEquals("myObjectTypeConverter2", ormContextObjectTypeConverter.getName());
-		assertEquals(2, CollectionTools.size(persistenceUnit.allConverters()));
-		
-		//remove a converter from the context model, check resource model
-		ormContextConverterHolder.removeObjectTypeConverter(0);
-		
-		assertEquals(1, resourceMappedSuperclass.getObjectTypeConverters().size());
-		assertEquals("Foo2", resourceMappedSuperclass.getObjectTypeConverters().get(0).getDataType());
-		assertEquals("myObjectTypeConverter2", resourceMappedSuperclass.getObjectTypeConverters().get(0).getName());
-		assertEquals(1, ormContextConverterHolder.objectTypeConvertersSize());
-		ormContextObjectTypeConverters = ormContextConverterHolder.objectTypeConverters();
-		ormContextObjectTypeConverter = ormContextObjectTypeConverters.next();
-		assertEquals("Foo2", ormContextObjectTypeConverter.getDataType());
-		assertEquals("myObjectTypeConverter2", ormContextObjectTypeConverter.getName());
-		assertEquals(1, CollectionTools.size(persistenceUnit.allConverters()));
-		
-		//remove a converter from the context model, check resource model
-		ormContextConverterHolder.removeObjectTypeConverter(contextObjectTypeConverter2);
-		
-		assertEquals(0, ormContextConverterHolder.objectTypeConvertersSize());
-		assertFalse(ormContextConverterHolder.objectTypeConverters().hasNext());
-		assertEquals(0, resourceMappedSuperclass.getObjectTypeConverters().size());
-		assertEquals(0, CollectionTools.size(persistenceUnit.allConverters()));
-	}
-	
-	public void testUpdateStructConverters() throws Exception {
-		createTestMappedSuperclassForStructConverters();
-		EclipseLinkPersistenceUnit persistenceUnit = getPersistenceUnit();
-		OrmPersistentType ormPersistentType = getEntityMappings().addPersistentType(MappingKeys.MAPPED_SUPERCLASS_TYPE_MAPPING_KEY, FULLY_QUALIFIED_TYPE_NAME);
-		EclipseLinkOrmMappedSuperclass ormContextMappedSuperclass = (EclipseLinkOrmMappedSuperclass) ormPersistentType.getMapping();
-		ConverterHolder ormContextConverterHolder = ormContextMappedSuperclass.getConverterHolder();
-		XmlMappedSuperclass resourceMappedSuperclass = (XmlMappedSuperclass) getXmlEntityMappings().getMappedSuperclasses().get(0);
-		
-		assertEquals(0, ormContextConverterHolder.structConvertersSize());
-		assertEquals(0, resourceMappedSuperclass.getStructConverters().size());
-		assertEquals(0, CollectionTools.size(persistenceUnit.allConverters()));
-		
-		//add a converter to the resource model, check context model
-		XmlStructConverter resourceStructConverter = EclipseLinkOrmFactory.eINSTANCE.createXmlStructConverterImpl();
-		resourceMappedSuperclass.getStructConverters().add(resourceStructConverter);
-		resourceStructConverter.setConverter("Foo");
-		resourceStructConverter.setName("myStructConverter");
-		
-		assertEquals(1, ormContextConverterHolder.structConvertersSize());
-		ListIterator<StructConverter> ormContextStructConverters = ormContextConverterHolder.structConverters();
-		StructConverter ormContextStructConverter = ormContextStructConverters.next();
-		assertEquals("Foo", ormContextStructConverter.getConverterClass());
-		assertEquals("myStructConverter", ormContextStructConverter.getName());
-		assertEquals(1, resourceMappedSuperclass.getStructConverters().size());
-		assertEquals(1, CollectionTools.size(persistenceUnit.allConverters()));
-		
-		//add another converter to the resource model, check context model
-		XmlStructConverter resourceStructConverter2 = EclipseLinkOrmFactory.eINSTANCE.createXmlStructConverterImpl();
-		resourceMappedSuperclass.getStructConverters().add(0, resourceStructConverter2);
-		resourceStructConverter2.setConverter("Foo2");
-		resourceStructConverter2.setName("myStructConverter2");
-		
-		assertEquals(2, ormContextConverterHolder.structConvertersSize());
-		ormContextStructConverters = ormContextConverterHolder.structConverters();
-		ormContextStructConverter = ormContextStructConverters.next();
-		assertEquals("Foo2", ormContextStructConverter.getConverterClass());
-		assertEquals("myStructConverter2", ormContextStructConverter.getName());
-		ormContextStructConverter = ormContextStructConverters.next();
-		assertEquals("Foo", ormContextStructConverter.getConverterClass());
-		assertEquals("myStructConverter", ormContextStructConverter.getName());
-		assertEquals(2, resourceMappedSuperclass.getStructConverters().size());
-		assertEquals(2, CollectionTools.size(persistenceUnit.allConverters()));
-		
-		//move a converter in the resource model, check context model
-		resourceMappedSuperclass.getStructConverters().move(0, 1);
-		
-		assertEquals(2, ormContextConverterHolder.structConvertersSize());
-		ormContextStructConverters = ormContextConverterHolder.structConverters();
-		ormContextStructConverter = ormContextStructConverters.next();
-		assertEquals("Foo", ormContextStructConverter.getConverterClass());
-		assertEquals("myStructConverter", ormContextStructConverter.getName());
-		ormContextStructConverter = ormContextStructConverters.next();
-		assertEquals("Foo2", ormContextStructConverter.getConverterClass());
-		assertEquals("myStructConverter2", ormContextStructConverter.getName());
-		assertEquals(2, resourceMappedSuperclass.getStructConverters().size());
-		assertEquals(2, CollectionTools.size(persistenceUnit.allConverters()));
-		
-		//remove a converter from the resource model, check context model
-		resourceMappedSuperclass.getStructConverters().remove(0);
-		
-		assertEquals(1, ormContextConverterHolder.structConvertersSize());
-		ormContextStructConverters = ormContextConverterHolder.structConverters();
-		ormContextStructConverter = ormContextStructConverters.next();
-		assertEquals("Foo2", ormContextStructConverter.getConverterClass());
-		assertEquals("myStructConverter2", ormContextStructConverter.getName());
-		assertEquals(1, resourceMappedSuperclass.getStructConverters().size());
-		assertEquals(1, CollectionTools.size(persistenceUnit.allConverters()));
-		
-		//remove a converter from the resource model, check context model
-		resourceMappedSuperclass.getStructConverters().remove(resourceStructConverter2);
-		
-		assertEquals(0, ormContextConverterHolder.structConvertersSize());
-		assertFalse(ormContextConverterHolder.structConverters().hasNext());
-		assertEquals(0, resourceMappedSuperclass.getStructConverters().size());
-		assertEquals(0, CollectionTools.size(persistenceUnit.allConverters()));
-	}
-
-	public void testModifyStructConverters() throws Exception {
-		createTestMappedSuperclassForStructConverters();
-		EclipseLinkPersistenceUnit persistenceUnit = getPersistenceUnit();
-		OrmPersistentType ormPersistentType = getEntityMappings().addPersistentType(MappingKeys.MAPPED_SUPERCLASS_TYPE_MAPPING_KEY, FULLY_QUALIFIED_TYPE_NAME);
-		EclipseLinkOrmMappedSuperclass ormContextMappedSuperclass = (EclipseLinkOrmMappedSuperclass) ormPersistentType.getMapping();
-		ConverterHolder ormContextConverterHolder = ormContextMappedSuperclass.getConverterHolder();
-		XmlMappedSuperclass resourceMappedSuperclass = (XmlMappedSuperclass) getXmlEntityMappings().getMappedSuperclasses().get(0);
-		
-		assertEquals(0, ormContextConverterHolder.structConvertersSize());
-		assertEquals(0, resourceMappedSuperclass.getStructConverters().size());
-		assertEquals(0, CollectionTools.size(persistenceUnit.allConverters()));
-		
-		//add a converter to the context model, check resource model
-		StructConverter contextStructConverter = ormContextConverterHolder.addStructConverter(0);
-		contextStructConverter.setConverterClass("Foo");
-		contextStructConverter.setName("myStructConverter");
-		
-		assertEquals(1, resourceMappedSuperclass.getStructConverters().size());
-		assertEquals("Foo", resourceMappedSuperclass.getStructConverters().get(0).getConverter());
-		assertEquals("myStructConverter", resourceMappedSuperclass.getStructConverters().get(0).getName());
-		assertEquals(1, ormContextConverterHolder.structConvertersSize());
-		ListIterator<StructConverter> ormContextStructConverters = ormContextConverterHolder.structConverters();
-		StructConverter ormContextStructConverter = ormContextStructConverters.next();
-		assertEquals("Foo", ormContextStructConverter.getConverterClass());
-		assertEquals("myStructConverter", ormContextStructConverter.getName());
-		assertEquals(1, CollectionTools.size(persistenceUnit.allConverters()));
-		
-		//add another converter to the context model, check resource model
-		StructConverter contextStructConverter2 = ormContextConverterHolder.addStructConverter(0);
-		contextStructConverter2.setConverterClass("Foo2");
-		contextStructConverter2.setName("myStructConverter2");
-		
-		assertEquals(2, resourceMappedSuperclass.getStructConverters().size());
-		assertEquals("Foo2", resourceMappedSuperclass.getStructConverters().get(0).getConverter());
-		assertEquals("myStructConverter2", resourceMappedSuperclass.getStructConverters().get(0).getName());
-		assertEquals("Foo", resourceMappedSuperclass.getStructConverters().get(1).getConverter());
-		assertEquals("myStructConverter", resourceMappedSuperclass.getStructConverters().get(1).getName());
-		assertEquals(2, ormContextConverterHolder.structConvertersSize());
-		ormContextStructConverters = ormContextConverterHolder.structConverters();
-		ormContextStructConverter = ormContextStructConverters.next();
-		assertEquals("Foo2", ormContextStructConverter.getConverterClass());
-		assertEquals("myStructConverter2", ormContextStructConverter.getName());
-		ormContextStructConverter = ormContextStructConverters.next();
-		assertEquals("Foo", ormContextStructConverter.getConverterClass());
-		assertEquals("myStructConverter", ormContextStructConverter.getName());
-		assertEquals(2, CollectionTools.size(persistenceUnit.allConverters()));
-		
-		//move a converter in the context model, check resource model
-		ormContextConverterHolder.moveStructConverter(0, 1);
-		
-		assertEquals(2, resourceMappedSuperclass.getStructConverters().size());
-		assertEquals("Foo", resourceMappedSuperclass.getStructConverters().get(0).getConverter());
-		assertEquals("myStructConverter", resourceMappedSuperclass.getStructConverters().get(0).getName());
-		assertEquals("Foo2", resourceMappedSuperclass.getStructConverters().get(1).getConverter());
-		assertEquals("myStructConverter2", resourceMappedSuperclass.getStructConverters().get(1).getName());
-		assertEquals(2, ormContextConverterHolder.structConvertersSize());
-		ormContextStructConverters = ormContextConverterHolder.structConverters();
-		ormContextStructConverter = ormContextStructConverters.next();
-		assertEquals("Foo", ormContextStructConverter.getConverterClass());
-		assertEquals("myStructConverter", ormContextStructConverter.getName());
-		ormContextStructConverter = ormContextStructConverters.next();
-		assertEquals("Foo2", ormContextStructConverter.getConverterClass());
-		assertEquals("myStructConverter2", ormContextStructConverter.getName());
-		assertEquals(2, CollectionTools.size(persistenceUnit.allConverters()));
-		
-		//remove a converter from the context model, check resource model
-		ormContextConverterHolder.removeStructConverter(0);
-		
-		assertEquals(1, resourceMappedSuperclass.getStructConverters().size());
-		assertEquals("Foo2", resourceMappedSuperclass.getStructConverters().get(0).getConverter());
-		assertEquals("myStructConverter2", resourceMappedSuperclass.getStructConverters().get(0).getName());
-		assertEquals(1, ormContextConverterHolder.structConvertersSize());
-		ormContextStructConverters = ormContextConverterHolder.structConverters();
-		ormContextStructConverter = ormContextStructConverters.next();
-		assertEquals("Foo2", ormContextStructConverter.getConverterClass());
-		assertEquals("myStructConverter2", ormContextStructConverter.getName());
-		assertEquals(1, CollectionTools.size(persistenceUnit.allConverters()));
-		
-		//remove a converter from the context model, check resource model
-		ormContextConverterHolder.removeStructConverter(contextStructConverter2);
-		
-		assertEquals(0, ormContextConverterHolder.structConvertersSize());
-		assertFalse(ormContextConverterHolder.structConverters().hasNext());
-		assertEquals(0, resourceMappedSuperclass.getStructConverters().size());
-		assertEquals(0, CollectionTools.size(persistenceUnit.allConverters()));
-	}
-}
diff --git a/jpa/tests/org.eclipse.jpt.eclipselink.core.tests/src/org/eclipse/jpt/eclipselink/core/tests/internal/context/orm/EclipseLinkOrmObjectTypeConverterTests.java b/jpa/tests/org.eclipse.jpt.eclipselink.core.tests/src/org/eclipse/jpt/eclipselink/core/tests/internal/context/orm/EclipseLinkOrmObjectTypeConverterTests.java
deleted file mode 100644
index 7abaa42..0000000
--- a/jpa/tests/org.eclipse.jpt.eclipselink.core.tests/src/org/eclipse/jpt/eclipselink/core/tests/internal/context/orm/EclipseLinkOrmObjectTypeConverterTests.java
+++ /dev/null
@@ -1,572 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008, 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- *******************************************************************************/
-package org.eclipse.jpt.eclipselink.core.tests.internal.context.orm;
-
-import java.util.Iterator;
-import java.util.ListIterator;
-import org.eclipse.jdt.core.ICompilationUnit;
-import org.eclipse.jpt.core.MappingKeys;
-import org.eclipse.jpt.core.context.java.JavaBasicMapping;
-import org.eclipse.jpt.core.context.orm.OrmBasicMapping;
-import org.eclipse.jpt.core.context.orm.OrmPersistentAttribute;
-import org.eclipse.jpt.core.context.orm.OrmPersistentType;
-import org.eclipse.jpt.core.resource.java.JPA;
-import org.eclipse.jpt.eclipselink.core.context.ConversionValue;
-import org.eclipse.jpt.eclipselink.core.context.Convert;
-import org.eclipse.jpt.eclipselink.core.context.EclipseLinkConverter;
-import org.eclipse.jpt.eclipselink.core.context.ObjectTypeConverter;
-import org.eclipse.jpt.eclipselink.core.internal.context.java.EclipseLinkJavaConvert;
-import org.eclipse.jpt.eclipselink.core.internal.context.orm.EclipseLinkOrmObjectTypeConverter;
-import org.eclipse.jpt.eclipselink.core.resource.java.EclipseLinkJPA;
-import org.eclipse.jpt.eclipselink.core.resource.orm.EclipseLinkOrmFactory;
-import org.eclipse.jpt.eclipselink.core.resource.orm.XmlBasic;
-import org.eclipse.jpt.eclipselink.core.resource.orm.XmlConversionValue;
-import org.eclipse.jpt.eclipselink.core.resource.orm.XmlObjectTypeConverter;
-import org.eclipse.jpt.utility.internal.iterators.ArrayIterator;
-
-@SuppressWarnings("nls")
-public class EclipseLinkOrmObjectTypeConverterTests
-	extends EclipseLinkOrmContextModelTestCase
-{
-	
-	private ICompilationUnit createTestEntityWithBasicMapping() throws Exception {
-		return this.createTestType(new DefaultAnnotationWriter() {
-			@Override
-			public Iterator<String> imports() {
-				return new ArrayIterator<String>(JPA.ENTITY, JPA.BASIC, EclipseLinkJPA.CONVERT, EclipseLinkJPA.OBJECT_TYPE_CONVERTER);
-			}
-			@Override
-			public void appendTypeAnnotationTo(StringBuilder sb) {
-				sb.append("@Entity").append(CR);
-			}
-			
-			@Override
-			public void appendIdFieldAnnotationTo(StringBuilder sb) {
-				sb.append("@Basic").append(CR);
-				sb.append("    @Convert(name=\"foo\")").append(CR);
-				sb.append("    @ObjectTypeConverter");
-			}
-		});
-	}
-
-	
-	private ICompilationUnit createTestEntityWithConvertAndObjectTypeConverterConversionValue() throws Exception {
-		return this.createTestType(new DefaultAnnotationWriter() {
-			@Override
-			public Iterator<String> imports() {
-				return new ArrayIterator<String>(JPA.ENTITY, EclipseLinkJPA.CONVERT, EclipseLinkJPA.OBJECT_TYPE_CONVERTER, EclipseLinkJPA.CONVERSION_VALUE);
-			}
-			@Override
-			public void appendTypeAnnotationTo(StringBuilder sb) {
-				sb.append("@Entity");
-			}
-			
-			@Override
-			public void appendIdFieldAnnotationTo(StringBuilder sb) {
-				sb.append("@Convert(\"foo\")").append(CR);
-				sb.append("    @ObjectTypeConverter(name=\"foo\", defaultObjectValue=\"bar\", conversionValues = @ConversionValue(dataValue=\"f\", objectValue=\"female\"))");
-			}
-		});
-	}
-
-	public EclipseLinkOrmObjectTypeConverterTests(String name) {
-		super(name);
-	}
-	
-	
-	public void testUpdateDataType() throws Exception {
-		createTestEntityWithBasicMapping();
-		
-		OrmPersistentType ormPersistentType = getEntityMappings().addPersistentType(MappingKeys.ENTITY_TYPE_MAPPING_KEY, FULLY_QUALIFIED_TYPE_NAME);
-		OrmPersistentAttribute ormPersistentAttribute = ormPersistentType.addSpecifiedPersistentAttribute(MappingKeys.BASIC_ATTRIBUTE_MAPPING_KEY, "id");
-		OrmBasicMapping ormBasicMapping = (OrmBasicMapping) ormPersistentAttribute.getMapping(); 
-		ormBasicMapping.setSpecifiedConverter(Convert.ECLIPSE_LINK_CONVERTER);
-		((Convert) ormBasicMapping.getConverter()).setConverter(EclipseLinkConverter.OBJECT_TYPE_CONVERTER);
-		ObjectTypeConverter ormConverter = (ObjectTypeConverter) ((Convert) ormBasicMapping.getConverter()).getConverter();
-		XmlObjectTypeConverter converterResource = ((XmlBasic) getXmlEntityMappings().getEntities().get(0).getAttributes().getBasics().get(0)).getObjectTypeConverter();
-		JavaBasicMapping javaBasicMapping = (JavaBasicMapping) ormPersistentType.getJavaPersistentType().getAttributeNamed("id").getMapping();
-		
-		assertEquals(null, ormConverter.getDataType());
-		assertEquals(null, converterResource.getDataType());
-				
-		//set converter class name in the resource model, verify context model updated
-		converterResource.setDataType("myConvert");
-		assertEquals("myConvert", ormConverter.getDataType());
-		assertEquals("myConvert", converterResource.getDataType());
-
-		//set converter class name to null in the resource model
-		converterResource.setDataType(null);
-		assertEquals(null, ormConverter.getDataType());
-		assertEquals(null, converterResource.getDataType());
-		
-				
-		//remove the specified persistent attribute, test virtual mapping	
-		ormPersistentType.removeSpecifiedPersistentAttribute(ormPersistentAttribute);
-		
-		ormPersistentAttribute = ormPersistentType.virtualAttributes().next();
-		ormBasicMapping = (OrmBasicMapping) ormPersistentAttribute.getMapping();
-		ormConverter = (ObjectTypeConverter) ((Convert) ormBasicMapping.getSpecifiedConverter()).getConverter();
-		
-		ObjectTypeConverter javaConverter = ((ObjectTypeConverter) ((Convert) javaBasicMapping.getSpecifiedConverter()).getConverter());
-		javaConverter.setDataType("bar");
-		assertEquals("bar", ormConverter.getDataType());
-		assertEquals("bar", javaConverter.getDataType());
-		
-		//set metadata-complete, test virtual mapping	
-		ormPersistentType.getMapping().setSpecifiedMetadataComplete(Boolean.TRUE);
-		ormPersistentAttribute = ormPersistentType.virtualAttributes().next();
-		ormBasicMapping = (OrmBasicMapping) ormPersistentAttribute.getMapping();
-		assertEquals(null,  ormBasicMapping.getSpecifiedConverter());
-		assertEquals(org.eclipse.jpt.core.context.Converter.NO_CONVERTER, ormBasicMapping.getConverter().getType());
-		assertEquals("bar", javaConverter.getDataType());
-	}
-	
-	public void testModifyDataType() throws Exception {
-		OrmPersistentType ormPersistentType = getEntityMappings().addPersistentType(MappingKeys.ENTITY_TYPE_MAPPING_KEY, "model.Foo");
-		OrmPersistentAttribute ormPersistentAttribute = ormPersistentType.addSpecifiedPersistentAttribute(MappingKeys.BASIC_ATTRIBUTE_MAPPING_KEY, "basicMapping");
-		OrmBasicMapping ormBasicMapping = ((OrmBasicMapping) ormPersistentAttribute.getMapping()); 
-		ormBasicMapping.setSpecifiedConverter(Convert.ECLIPSE_LINK_CONVERTER);
-		((Convert) ormBasicMapping.getConverter()).setConverter(EclipseLinkConverter.OBJECT_TYPE_CONVERTER);
-		ObjectTypeConverter ormConverter = (ObjectTypeConverter) ((Convert) ormBasicMapping.getConverter()).getConverter();
-		XmlObjectTypeConverter converterResource = ((XmlBasic) getXmlEntityMappings().getEntities().get(0).getAttributes().getBasics().get(0)).getObjectTypeConverter();
-	
-		assertEquals(null, ormConverter.getDataType());
-		assertEquals(null, converterResource.getDataType());
-				
-		//set converter class in the context model, verify resource model updated
-		ormConverter.setDataType("foo");
-		assertEquals("foo", ormConverter.getDataType());
-		assertEquals("foo", converterResource.getDataType());
-	
-		ormConverter.setDataType(null);
-		assertEquals(null, ormConverter.getDataType());
-		assertEquals(null, converterResource.getDataType());
-	}
-	
-	public void testUpdateObjectType() throws Exception {
-		createTestEntityWithBasicMapping();
-		
-		OrmPersistentType ormPersistentType = getEntityMappings().addPersistentType(MappingKeys.ENTITY_TYPE_MAPPING_KEY, FULLY_QUALIFIED_TYPE_NAME);
-		OrmPersistentAttribute ormPersistentAttribute = ormPersistentType.addSpecifiedPersistentAttribute(MappingKeys.BASIC_ATTRIBUTE_MAPPING_KEY, "id");
-		OrmBasicMapping ormBasicMapping = (OrmBasicMapping) ormPersistentAttribute.getMapping(); 
-		ormBasicMapping.setSpecifiedConverter(Convert.ECLIPSE_LINK_CONVERTER);
-		((Convert) ormBasicMapping.getConverter()).setConverter(EclipseLinkConverter.OBJECT_TYPE_CONVERTER);
-		ObjectTypeConverter ormConverter = (ObjectTypeConverter) ((Convert) ormBasicMapping.getConverter()).getConverter();
-		XmlObjectTypeConverter converterResource = ((XmlBasic) getXmlEntityMappings().getEntities().get(0).getAttributes().getBasics().get(0)).getObjectTypeConverter();
-		JavaBasicMapping javaBasicMapping = (JavaBasicMapping) ormPersistentType.getJavaPersistentType().getAttributeNamed("id").getMapping();
-		
-		assertEquals(null, ormConverter.getObjectType());
-		assertEquals(null, converterResource.getObjectType());
-				
-		//set converter class name in the resource model, verify context model updated
-		converterResource.setObjectType("myConvert");
-		assertEquals("myConvert", ormConverter.getObjectType());
-		assertEquals("myConvert", converterResource.getObjectType());
-
-		//set converter class name to null in the resource model
-		converterResource.setObjectType(null);
-		assertEquals(null, ormConverter.getObjectType());
-		assertEquals(null, converterResource.getObjectType());
-		
-				
-		//remove the specified persistent attribute, test virtual mapping	
-		ormPersistentType.removeSpecifiedPersistentAttribute(ormPersistentAttribute);
-		
-		ormPersistentAttribute = ormPersistentType.virtualAttributes().next();
-		ormBasicMapping = (OrmBasicMapping) ormPersistentAttribute.getMapping();
-		ormConverter = (ObjectTypeConverter) ((Convert) ormBasicMapping.getSpecifiedConverter()).getConverter();
-		
-		ObjectTypeConverter javaConverter = ((ObjectTypeConverter) ((Convert) javaBasicMapping.getSpecifiedConverter()).getConverter());
-		javaConverter.setObjectType("bar");
-		assertEquals("bar", ormConverter.getObjectType());
-		assertEquals("bar", javaConverter.getObjectType());
-		
-		//set metadata-complete, test virtual mapping	
-		ormPersistentType.getMapping().setSpecifiedMetadataComplete(Boolean.TRUE);
-		ormPersistentAttribute = ormPersistentType.virtualAttributes().next();
-		ormBasicMapping = (OrmBasicMapping) ormPersistentAttribute.getMapping();
-		assertEquals(null,  ormBasicMapping.getSpecifiedConverter());
-		assertEquals(org.eclipse.jpt.core.context.Converter.NO_CONVERTER, ormBasicMapping.getConverter().getType());
-		assertEquals("bar", javaConverter.getObjectType());
-	}
-	
-	public void testModifyObjectType() throws Exception {
-		OrmPersistentType ormPersistentType = getEntityMappings().addPersistentType(MappingKeys.ENTITY_TYPE_MAPPING_KEY, "model.Foo");
-		OrmPersistentAttribute ormPersistentAttribute = ormPersistentType.addSpecifiedPersistentAttribute(MappingKeys.BASIC_ATTRIBUTE_MAPPING_KEY, "basicMapping");
-		OrmBasicMapping ormBasicMapping = ((OrmBasicMapping) ormPersistentAttribute.getMapping()); 
-		ormBasicMapping.setSpecifiedConverter(Convert.ECLIPSE_LINK_CONVERTER);
-		((Convert) ormBasicMapping.getConverter()).setConverter(EclipseLinkConverter.OBJECT_TYPE_CONVERTER);
-		ObjectTypeConverter ormConverter = (ObjectTypeConverter) ((Convert) ormBasicMapping.getConverter()).getConverter();
-		XmlObjectTypeConverter converterResource = ((XmlBasic) getXmlEntityMappings().getEntities().get(0).getAttributes().getBasics().get(0)).getObjectTypeConverter();
-	
-		assertEquals(null, ormConverter.getObjectType());
-		assertEquals(null, converterResource.getObjectType());
-				
-		//set converter class in the context model, verify resource model updated
-		ormConverter.setObjectType("foo");
-		assertEquals("foo", ormConverter.getObjectType());
-		assertEquals("foo", converterResource.getObjectType());
-	
-		ormConverter.setObjectType(null);
-		assertEquals(null, ormConverter.getObjectType());
-		assertEquals(null, converterResource.getObjectType());
-	}
-	
-	public void testUpdateName() throws Exception {
-		createTestEntityWithBasicMapping();
-		
-		OrmPersistentType ormPersistentType = getEntityMappings().addPersistentType(MappingKeys.ENTITY_TYPE_MAPPING_KEY, FULLY_QUALIFIED_TYPE_NAME);
-		OrmPersistentAttribute ormPersistentAttribute = ormPersistentType.addSpecifiedPersistentAttribute(MappingKeys.BASIC_ATTRIBUTE_MAPPING_KEY, "id");
-		OrmBasicMapping ormBasicMapping = ((OrmBasicMapping) ormPersistentAttribute.getMapping()); 
-		ormBasicMapping.setSpecifiedConverter(Convert.ECLIPSE_LINK_CONVERTER);
-		((Convert) ormBasicMapping.getConverter()).setConverter(EclipseLinkConverter.OBJECT_TYPE_CONVERTER);
-		EclipseLinkOrmObjectTypeConverter ormConverter = (EclipseLinkOrmObjectTypeConverter) ((Convert) ormBasicMapping.getConverter()).getConverter();
-		XmlObjectTypeConverter converterResource = ((XmlBasic) getXmlEntityMappings().getEntities().get(0).getAttributes().getBasics().get(0)).getObjectTypeConverter();
-		JavaBasicMapping javaBasicMapping = (JavaBasicMapping) ormPersistentType.getJavaPersistentType().getAttributeNamed("id").getMapping();
-		
-		assertEquals(null, ormConverter.getName());
-		assertEquals(null, converterResource.getName());
-				
-		//set converter class name in the resource model, verify context model updated
-		converterResource.setName("myConvert");
-		assertEquals("myConvert", ormConverter.getName());
-		assertEquals("myConvert", converterResource.getName());
-
-		//set converter class name to null in the resource model
-		converterResource.setName(null);
-		assertEquals(null, ormConverter.getName());
-		assertEquals(null, converterResource.getName());
-		
-
-		//remove the specified persistent attribute, test virtual mapping	
-				
-		ormPersistentType.removeSpecifiedPersistentAttribute(ormPersistentAttribute);
-		
-		ormPersistentAttribute = ormPersistentType.virtualAttributes().next();
-		ormBasicMapping = (OrmBasicMapping) ormPersistentAttribute.getMapping();
-		ormConverter = (EclipseLinkOrmObjectTypeConverter) ((Convert) ormBasicMapping.getSpecifiedConverter()).getConverter();
-		
-		ObjectTypeConverter javaConverter = ((ObjectTypeConverter) ((Convert) javaBasicMapping.getSpecifiedConverter()).getConverter());
-		javaConverter.setName("bar");
-		assertEquals("bar", ormConverter.getName());
-		assertEquals("bar", javaConverter.getName());
-		
-		
-		//set metadata-complete, test virtual mapping
-		
-		ormPersistentType.getMapping().setSpecifiedMetadataComplete(Boolean.TRUE);
-		ormPersistentAttribute = ormPersistentType.virtualAttributes().next();
-		ormBasicMapping = (OrmBasicMapping) ormPersistentAttribute.getMapping();
-		assertEquals(null,  ormBasicMapping.getSpecifiedConverter());
-		assertEquals(org.eclipse.jpt.core.context.Converter.NO_CONVERTER, ormBasicMapping.getConverter().getType());
-		assertEquals("bar", javaConverter.getName());
-	}
-	
-	public void testModifyName() throws Exception {
-		OrmPersistentType ormPersistentType = getEntityMappings().addPersistentType(MappingKeys.ENTITY_TYPE_MAPPING_KEY, "model.Foo");
-		OrmPersistentAttribute ormPersistentAttribute = ormPersistentType.addSpecifiedPersistentAttribute(MappingKeys.BASIC_ATTRIBUTE_MAPPING_KEY, "basicMapping");
-		OrmBasicMapping ormBasicMapping = ((OrmBasicMapping) ormPersistentAttribute.getMapping()); 
-		ormBasicMapping.setSpecifiedConverter(Convert.ECLIPSE_LINK_CONVERTER);
-		((Convert) ormBasicMapping.getConverter()).setConverter(EclipseLinkConverter.OBJECT_TYPE_CONVERTER);
-		EclipseLinkOrmObjectTypeConverter ormConverter = (EclipseLinkOrmObjectTypeConverter) ((Convert) ormBasicMapping.getConverter()).getConverter();
-		XmlObjectTypeConverter converterResource = ((XmlBasic) getXmlEntityMappings().getEntities().get(0).getAttributes().getBasics().get(0)).getObjectTypeConverter();
-	
-		assertEquals(null, ormConverter.getName());
-		assertEquals(null, converterResource.getName());
-				
-		//set converter class in the context model, verify resource model updated
-		ormConverter.setName("foo");
-		assertEquals("foo", ormConverter.getName());
-		assertEquals("foo", converterResource.getName());
-	
-		ormConverter.setName(null);
-		assertEquals(null, ormConverter.getName());
-		assertEquals(null, converterResource.getName());
-	}
-	
-	public void testUpdateDefaultObjectValue() throws Exception {
-		createTestEntityWithBasicMapping();
-		
-		OrmPersistentType ormPersistentType = getEntityMappings().addPersistentType(MappingKeys.ENTITY_TYPE_MAPPING_KEY, FULLY_QUALIFIED_TYPE_NAME);
-		OrmPersistentAttribute ormPersistentAttribute = ormPersistentType.addSpecifiedPersistentAttribute(MappingKeys.BASIC_ATTRIBUTE_MAPPING_KEY, "id");
-		OrmBasicMapping ormBasicMapping = (OrmBasicMapping) ormPersistentAttribute.getMapping(); 
-		ormBasicMapping.setSpecifiedConverter(Convert.ECLIPSE_LINK_CONVERTER);
-		((Convert) ormBasicMapping.getConverter()).setConverter(EclipseLinkConverter.OBJECT_TYPE_CONVERTER);
-		ObjectTypeConverter ormConverter = (ObjectTypeConverter) ((Convert) ormBasicMapping.getConverter()).getConverter();
-		XmlObjectTypeConverter converterResource = ((XmlBasic) getXmlEntityMappings().getEntities().get(0).getAttributes().getBasics().get(0)).getObjectTypeConverter();
-		JavaBasicMapping javaBasicMapping = (JavaBasicMapping) ormPersistentType.getJavaPersistentType().getAttributeNamed("id").getMapping();
-		
-		assertEquals(null, ormConverter.getDefaultObjectValue());
-		assertEquals(null, converterResource.getDefaultObjectValue());
-				
-		//set converter class name in the resource model, verify context model updated
-		converterResource.setDefaultObjectValue("myConvert");
-		assertEquals("myConvert", ormConverter.getDefaultObjectValue());
-		assertEquals("myConvert", converterResource.getDefaultObjectValue());
-
-		//set converter class name to null in the resource model
-		converterResource.setDefaultObjectValue(null);
-		assertEquals(null, ormConverter.getDefaultObjectValue());
-		assertEquals(null, converterResource.getDefaultObjectValue());
-		
-				
-		//remove the specified persistent attribute, test virtual mapping	
-		ormPersistentType.removeSpecifiedPersistentAttribute(ormPersistentAttribute);
-		
-		ormPersistentAttribute = ormPersistentType.virtualAttributes().next();
-		ormBasicMapping = (OrmBasicMapping) ormPersistentAttribute.getMapping();
-		ormConverter = (ObjectTypeConverter) ((Convert) ormBasicMapping.getSpecifiedConverter()).getConverter();
-		
-		ObjectTypeConverter javaConverter = ((ObjectTypeConverter) ((Convert) javaBasicMapping.getSpecifiedConverter()).getConverter());
-		javaConverter.setDefaultObjectValue("bar");
-		assertEquals("bar", ormConverter.getDefaultObjectValue());
-		assertEquals("bar", javaConverter.getDefaultObjectValue());
-		
-		//set metadata-complete, test virtual mapping	
-		ormPersistentType.getMapping().setSpecifiedMetadataComplete(Boolean.TRUE);
-		ormPersistentAttribute = ormPersistentType.virtualAttributes().next();
-		ormBasicMapping = (OrmBasicMapping) ormPersistentAttribute.getMapping();
-		assertEquals(null,  ormBasicMapping.getSpecifiedConverter());
-		assertEquals(org.eclipse.jpt.core.context.Converter.NO_CONVERTER, ormBasicMapping.getConverter().getType());
-		assertEquals("bar", javaConverter.getDefaultObjectValue());
-	}
-	
-	public void testModifyDefaultObjectValue() throws Exception {
-		OrmPersistentType ormPersistentType = getEntityMappings().addPersistentType(MappingKeys.ENTITY_TYPE_MAPPING_KEY, "model.Foo");
-		OrmPersistentAttribute ormPersistentAttribute = ormPersistentType.addSpecifiedPersistentAttribute(MappingKeys.BASIC_ATTRIBUTE_MAPPING_KEY, "basicMapping");
-		OrmBasicMapping ormBasicMapping = ((OrmBasicMapping) ormPersistentAttribute.getMapping()); 
-		ormBasicMapping.setSpecifiedConverter(Convert.ECLIPSE_LINK_CONVERTER);
-		((Convert) ormBasicMapping.getConverter()).setConverter(EclipseLinkConverter.OBJECT_TYPE_CONVERTER);
-		ObjectTypeConverter ormConverter = (ObjectTypeConverter) ((Convert) ormBasicMapping.getConverter()).getConverter();
-		XmlObjectTypeConverter converterResource = ((XmlBasic) getXmlEntityMappings().getEntities().get(0).getAttributes().getBasics().get(0)).getObjectTypeConverter();
-	
-		assertEquals(null, ormConverter.getDefaultObjectValue());
-		assertEquals(null, converterResource.getDefaultObjectValue());
-				
-		//set converter class in the context model, verify resource model updated
-		ormConverter.setDefaultObjectValue("foo");
-		assertEquals("foo", ormConverter.getDefaultObjectValue());
-		assertEquals("foo", converterResource.getDefaultObjectValue());
-	
-		ormConverter.setDefaultObjectValue(null);
-		assertEquals(null, ormConverter.getDefaultObjectValue());
-		assertEquals(null, converterResource.getDefaultObjectValue());
-	}
-
-	
-	public void testUpdateConversionValues() throws Exception {
-		createTestEntityWithBasicMapping();
-		
-		OrmPersistentType ormPersistentType = getEntityMappings().addPersistentType(MappingKeys.ENTITY_TYPE_MAPPING_KEY, FULLY_QUALIFIED_TYPE_NAME);
-		OrmPersistentAttribute ormPersistentAttribute = ormPersistentType.addSpecifiedPersistentAttribute(MappingKeys.BASIC_ATTRIBUTE_MAPPING_KEY, "id");
-		OrmBasicMapping ormBasicMapping = (OrmBasicMapping) ormPersistentAttribute.getMapping(); 
-		ormBasicMapping.setSpecifiedConverter(Convert.ECLIPSE_LINK_CONVERTER);
-		((Convert) ormBasicMapping.getConverter()).setConverter(EclipseLinkConverter.OBJECT_TYPE_CONVERTER);
-		ObjectTypeConverter ormConverter = (ObjectTypeConverter) ((Convert) ormBasicMapping.getConverter()).getConverter();
-		XmlObjectTypeConverter converterResource = ((XmlBasic) getXmlEntityMappings().getEntities().get(0).getAttributes().getBasics().get(0)).getObjectTypeConverter();
-		JavaBasicMapping javaBasicMapping = (JavaBasicMapping) ormPersistentType.getJavaPersistentType().getAttributeNamed("id").getMapping();
-
-		assertEquals(0, ormConverter.conversionValuesSize());
-		assertEquals(0, converterResource.getConversionValues().size());
-		
-		//add conversion value to resource model, check context model
-		XmlConversionValue resourceConversionValue = EclipseLinkOrmFactory.eINSTANCE.createXmlConversionValueImpl();
-		converterResource.getConversionValues().add(resourceConversionValue);
-		resourceConversionValue.setDataValue("foo");
-		resourceConversionValue.setObjectValue("bar");
-		
-		assertEquals(1, ormConverter.conversionValuesSize());
-		ListIterator<ConversionValue> contextConversionValues = ormConverter.conversionValues();
-		ConversionValue contextConversionValue = contextConversionValues.next();
-		assertEquals("foo", contextConversionValue.getDataValue());
-		assertEquals("bar", contextConversionValue.getObjectValue());
-		assertEquals(1, converterResource.getConversionValues().size());
-		assertEquals("foo", converterResource.getConversionValues().get(0).getDataValue());
-		assertEquals("bar", converterResource.getConversionValues().get(0).getObjectValue());
-		
-		//add a conversion to the beginning of the resource model list
-		XmlConversionValue xmlConversionValue2 = EclipseLinkOrmFactory.eINSTANCE.createXmlConversionValueImpl();
-		converterResource.getConversionValues().add(0, xmlConversionValue2);
-		xmlConversionValue2.setDataValue("foo2");
-		xmlConversionValue2.setObjectValue("bar2");
-
-		assertEquals(2, ormConverter.conversionValuesSize());
-		contextConversionValues = ormConverter.conversionValues();
-		contextConversionValue = contextConversionValues.next();
-		assertEquals("foo2", contextConversionValue.getDataValue());
-		assertEquals("bar2", contextConversionValue.getObjectValue());
-		contextConversionValue = contextConversionValues.next();
-		assertEquals("foo", contextConversionValue.getDataValue());
-		assertEquals("bar", contextConversionValue.getObjectValue());
-		assertEquals(2, converterResource.getConversionValues().size());
-		assertEquals("foo2", converterResource.getConversionValues().get(0).getDataValue());
-		assertEquals("bar2", converterResource.getConversionValues().get(0).getObjectValue());
-		assertEquals("foo", converterResource.getConversionValues().get(1).getDataValue());
-		assertEquals("bar", converterResource.getConversionValues().get(1).getObjectValue());
-
-		//move a conversion value in the resource model list
-		
-		converterResource.getConversionValues().move(0, 1);
-		assertEquals(2, ormConverter.conversionValuesSize());
-		contextConversionValues = ormConverter.conversionValues();
-		contextConversionValue = contextConversionValues.next();
-		assertEquals("foo", contextConversionValue.getDataValue());
-		assertEquals("bar", contextConversionValue.getObjectValue());
-		contextConversionValue = contextConversionValues.next();
-		assertEquals("foo2", contextConversionValue.getDataValue());
-		assertEquals("bar2", contextConversionValue.getObjectValue());
-		assertEquals(2, converterResource.getConversionValues().size());
-		assertEquals("foo", converterResource.getConversionValues().get(0).getDataValue());
-		assertEquals("bar", converterResource.getConversionValues().get(0).getObjectValue());
-		assertEquals("foo2", converterResource.getConversionValues().get(1).getDataValue());
-		assertEquals("bar2", converterResource.getConversionValues().get(1).getObjectValue());
-
-		//remove a conversion value from the resource model list
-
-		converterResource.getConversionValues().remove(0);
-		assertEquals(1, ormConverter.conversionValuesSize());
-		contextConversionValues = ormConverter.conversionValues();
-		contextConversionValue = contextConversionValues.next();
-		assertEquals("foo2", contextConversionValue.getDataValue());
-		assertEquals("bar2", contextConversionValue.getObjectValue());
-		assertEquals(1, converterResource.getConversionValues().size());
-		assertEquals("foo2", converterResource.getConversionValues().get(0).getDataValue());
-		assertEquals("bar2", converterResource.getConversionValues().get(0).getObjectValue());
-
-		//clear the conversion value resource model list
-		converterResource.getConversionValues().clear();
-		assertEquals(0, ormConverter.conversionValuesSize());
-		assertEquals(0, converterResource.getConversionValues().size());
-		
-		//add conversion value to java context model, verify does not affect orm context model
-	
-		ObjectTypeConverter javaConverter = (ObjectTypeConverter) ((EclipseLinkJavaConvert) javaBasicMapping.getConverter()).getConverter();
-		ConversionValue javaConversionValue = javaConverter.addConversionValue();
-		javaConversionValue.setDataValue("baz");
-		
-		assertEquals(0, ormConverter.conversionValuesSize());
-		assertEquals(0, converterResource.getConversionValues().size());
-		assertEquals(1, javaConverter.conversionValuesSize());
-		
-		//remove orm attribute mapping, verify virtual mapping has conversion values from java
-		
-		ormPersistentType.removeSpecifiedPersistentAttribute(ormPersistentAttribute);
-		ormPersistentAttribute = ormPersistentType.virtualAttributes().next();
-		ormBasicMapping = (OrmBasicMapping) ormPersistentAttribute.getMapping();
-		ormConverter = (ObjectTypeConverter) ((Convert) ormBasicMapping.getConverter()).getConverter();
-		
-		assertEquals(1, ormConverter.conversionValuesSize());
-		contextConversionValues = ormConverter.conversionValues();
-		contextConversionValue = contextConversionValues.next();
-		assertEquals("baz", contextConversionValue.getDataValue());
-		assertEquals(0, converterResource.getConversionValues().size());
-		assertEquals(1, javaConverter.conversionValuesSize());
-		
-		//set metadata-complete to true, verify virtual mapping ignores the conversion values from java
-		
-		ormPersistentType.getMapping().setSpecifiedMetadataComplete(Boolean.TRUE);
-		ormPersistentAttribute = ormPersistentType.virtualAttributes().next();
-		ormBasicMapping = (OrmBasicMapping) ormPersistentAttribute.getMapping();
-		assertEquals(EclipseLinkConverter.NO_CONVERTER, ormBasicMapping.getConverter().getType());
-	}
-	
-	public void testModifyConversionValues() throws Exception {
-		OrmPersistentType ormPersistentType = getEntityMappings().addPersistentType(MappingKeys.ENTITY_TYPE_MAPPING_KEY, FULLY_QUALIFIED_TYPE_NAME);
-		OrmPersistentAttribute ormPersistentAttribute = ormPersistentType.addSpecifiedPersistentAttribute(MappingKeys.BASIC_ATTRIBUTE_MAPPING_KEY, "id");
-		OrmBasicMapping ormBasicMapping = (OrmBasicMapping) ormPersistentAttribute.getMapping(); 
-		ormBasicMapping.setSpecifiedConverter(Convert.ECLIPSE_LINK_CONVERTER);
-		((Convert) ormBasicMapping.getConverter()).setConverter(EclipseLinkConverter.OBJECT_TYPE_CONVERTER);
-		ObjectTypeConverter ormConverter = (ObjectTypeConverter) ((Convert) ormBasicMapping.getConverter()).getConverter();
-		XmlObjectTypeConverter converterResource = ((XmlBasic) getXmlEntityMappings().getEntities().get(0).getAttributes().getBasics().get(0)).getObjectTypeConverter();
-		
-		assertEquals(0, ormConverter.conversionValuesSize());
-		assertEquals(0, converterResource.getConversionValues().size());
-		
-		//add conversion value to context model, check resource model
-		ConversionValue contextConversionValue = ormConverter.addConversionValue();
-		contextConversionValue.setDataValue("foo");
-		contextConversionValue.setObjectValue("bar");
-
-		assertEquals(1, ormConverter.conversionValuesSize());
-		ListIterator<ConversionValue> contextConversionValues = ormConverter.conversionValues();
-		contextConversionValue = contextConversionValues.next();
-		assertEquals("foo", contextConversionValue.getDataValue());
-		assertEquals("bar", contextConversionValue.getObjectValue());
-		assertEquals(1, converterResource.getConversionValues().size());
-		assertEquals("foo", converterResource.getConversionValues().get(0).getDataValue());
-		assertEquals("bar", converterResource.getConversionValues().get(0).getObjectValue());
-
-		//add a conversion to the beginning of the context model list
-		ConversionValue contextConversionValue2 = ormConverter.addConversionValue(0);
-		contextConversionValue2.setDataValue("foo2");
-		contextConversionValue2.setObjectValue("bar2");
-
-		assertEquals(2, ormConverter.conversionValuesSize());
-		contextConversionValues = ormConverter.conversionValues();
-		contextConversionValue = contextConversionValues.next();
-		assertEquals("foo2", contextConversionValue.getDataValue());
-		assertEquals("bar2", contextConversionValue.getObjectValue());
-		contextConversionValue = contextConversionValues.next();
-		assertEquals("foo", contextConversionValue.getDataValue());
-		assertEquals("bar", contextConversionValue.getObjectValue());
-		assertEquals(2, converterResource.getConversionValues().size());
-		assertEquals("foo2", converterResource.getConversionValues().get(0).getDataValue());
-		assertEquals("bar2", converterResource.getConversionValues().get(0).getObjectValue());
-		assertEquals("foo", converterResource.getConversionValues().get(1).getDataValue());
-		assertEquals("bar", converterResource.getConversionValues().get(1).getObjectValue());
-
-		//move a conversion value in the context model list
-		
-		ormConverter.moveConversionValue(0, 1);
-		assertEquals(2, ormConverter.conversionValuesSize());
-		contextConversionValues = ormConverter.conversionValues();
-		contextConversionValue = contextConversionValues.next();
-		assertEquals("foo", contextConversionValue.getDataValue());
-		assertEquals("bar", contextConversionValue.getObjectValue());
-		contextConversionValue = contextConversionValues.next();
-		assertEquals("foo2", contextConversionValue.getDataValue());
-		assertEquals("bar2", contextConversionValue.getObjectValue());
-		assertEquals(2, converterResource.getConversionValues().size());
-		assertEquals("foo", converterResource.getConversionValues().get(0).getDataValue());
-		assertEquals("bar", converterResource.getConversionValues().get(0).getObjectValue());
-		assertEquals("foo2", converterResource.getConversionValues().get(1).getDataValue());
-		assertEquals("bar2", converterResource.getConversionValues().get(1).getObjectValue());
-
-		//remove a conversion value from the context model list
-
-		ormConverter.removeConversionValue(0);
-		assertEquals(1, ormConverter.conversionValuesSize());
-		contextConversionValues = ormConverter.conversionValues();
-		contextConversionValue = contextConversionValues.next();
-		assertEquals("foo2", contextConversionValue.getDataValue());
-		assertEquals("bar2", contextConversionValue.getObjectValue());
-		assertEquals(1, converterResource.getConversionValues().size());
-		assertEquals("foo2", converterResource.getConversionValues().get(0).getDataValue());
-		assertEquals("bar2", converterResource.getConversionValues().get(0).getObjectValue());
-
-		//clear the conversion value resource model list
-		ormConverter.removeConversionValue(0);
-		assertEquals(0, ormConverter.conversionValuesSize());
-		assertEquals(0, converterResource.getConversionValues().size());
-	}
-
-	public void testInitializeConversionValues() throws Exception {
-		createTestEntityWithConvertAndObjectTypeConverterConversionValue();
-		OrmPersistentType ormPersistentType = getEntityMappings().addPersistentType(MappingKeys.ENTITY_TYPE_MAPPING_KEY, FULLY_QUALIFIED_TYPE_NAME);
-		OrmPersistentAttribute ormPersistentAttribute = ormPersistentType.getAttributeNamed("id");
-		OrmBasicMapping ormBasicMapping = (OrmBasicMapping) ormPersistentAttribute.getMapping(); 
-		Convert eclipseLinkConvert = (Convert) ormBasicMapping.getConverter();
-		ObjectTypeConverter converter = (ObjectTypeConverter) eclipseLinkConvert.getConverter();
-
-		assertEquals(1, converter.conversionValuesSize());
-		assertEquals("f", converter.conversionValues().next().getDataValue());
-		assertEquals("female", converter.conversionValues().next().getObjectValue());
-	}
-}
diff --git a/jpa/tests/org.eclipse.jpt.eclipselink.core.tests/src/org/eclipse/jpt/eclipselink/core/tests/internal/context/orm/EclipseLinkOrmOneToManyMappingTests.java b/jpa/tests/org.eclipse.jpt.eclipselink.core.tests/src/org/eclipse/jpt/eclipselink/core/tests/internal/context/orm/EclipseLinkOrmOneToManyMappingTests.java
deleted file mode 100644
index 2f729d7..0000000
--- a/jpa/tests/org.eclipse.jpt.eclipselink.core.tests/src/org/eclipse/jpt/eclipselink/core/tests/internal/context/orm/EclipseLinkOrmOneToManyMappingTests.java
+++ /dev/null
@@ -1,308 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008, 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- *******************************************************************************/
-package org.eclipse.jpt.eclipselink.core.tests.internal.context.orm;
-
-import org.eclipse.jpt.core.MappingKeys;
-import org.eclipse.jpt.core.context.orm.OrmJoinTable;
-import org.eclipse.jpt.core.context.orm.OrmOneToManyMapping;
-import org.eclipse.jpt.core.context.orm.OrmPersistentAttribute;
-import org.eclipse.jpt.core.context.orm.OrmPersistentType;
-import org.eclipse.jpt.core.resource.java.JPA;
-import org.eclipse.jpt.core.tests.internal.projects.TestJavaProject.SourceWriter;
-import org.eclipse.jpt.eclipselink.core.context.EclipseLinkOneToManyMapping;
-import org.eclipse.jpt.eclipselink.core.context.EclipseLinkRelationshipMapping;
-import org.eclipse.jpt.eclipselink.core.context.JoinFetchType;
-import org.eclipse.jpt.eclipselink.core.internal.context.orm.EclipseLinkOrmOneToManyMapping;
-import org.eclipse.jpt.eclipselink.core.resource.orm.XmlEntity;
-import org.eclipse.jpt.eclipselink.core.resource.orm.XmlJoinFetchType;
-import org.eclipse.jpt.eclipselink.core.resource.orm.XmlOneToMany;
-
-@SuppressWarnings("nls")
-public class EclipseLinkOrmOneToManyMappingTests
-	extends EclipseLinkOrmContextModelTestCase
-{
-	public EclipseLinkOrmOneToManyMappingTests(String name) {
-		super(name);
-	}
-	
-	private void createTestDepartment() throws Exception {
-		SourceWriter sourceWriter = new SourceWriter() {
-			public void appendSourceTo(StringBuilder sb) {
-				sb.append(CR);
-					sb.append("import ").append(JPA.ENTITY).append(";");
-					sb.append(CR);
-					sb.append("import ").append(JPA.ID).append(";");
-					sb.append(CR);
-					sb.append("import java.util.Collection;");
-					sb.append(CR);
-					sb.append("import ").append(JPA.JOIN_TABLE).append(";");
-					sb.append(CR);
-					sb.append("import ").append(JPA.JOIN_COLUMN).append(";");
-				sb.append("@Entity");
-				sb.append(CR);
-				sb.append("public class ").append("Department").append(" ");
-				sb.append("{").append(CR);
-				sb.append(CR);
-				sb.append("    @Id").append(CR);
-				sb.append("    private int id;").append(CR);
-				sb.append(CR);
-				sb.append("    @JoinTable(name=\"DEP_EMP\", joinColumns=@JoinColumn(name=\"DEPT_ID\"), inverseJoinColumns=@JoinColumn(name=\"EMP_ID\"))").append(CR);
-				sb.append("    private Collection<Employee> employees;").append(CR);
-				sb.append(CR);
-				sb.append("}").append(CR);
-		}
-		};
-		this.javaProject.createCompilationUnit(PACKAGE_NAME, "Department.java", sourceWriter);
-	}
-
-	private void createTestEmployee() throws Exception {
-		SourceWriter sourceWriter = new SourceWriter() {
-			public void appendSourceTo(StringBuilder sb) {
-				sb.append(CR);
-					sb.append("import ").append(JPA.ENTITY).append(";");
-					sb.append(CR);
-					sb.append("import ").append(JPA.ID).append(";");
-					sb.append(CR);
-			sb.append("@Entity");
-				sb.append(CR);
-				sb.append("public class ").append("Employee").append(" ");
-				sb.append("{").append(CR);
-				sb.append(CR);
-				sb.append("    @Id").append(CR);
-				sb.append("    private int empId;").append(CR);
-				sb.append(CR);
-				sb.append("}").append(CR);
-		}
-		};
-		this.javaProject.createCompilationUnit(PACKAGE_NAME, "Employee.java", sourceWriter);
-	}
-	
-	
-	public void testUpdatePrivateOwned() throws Exception {
-		OrmPersistentType ormPersistentType = 
-			getEntityMappings().addPersistentType(MappingKeys.ENTITY_TYPE_MAPPING_KEY, FULLY_QUALIFIED_TYPE_NAME);
-		OrmPersistentAttribute ormPersistentAttribute =
-			ormPersistentType.addSpecifiedPersistentAttribute(MappingKeys.ONE_TO_MANY_ATTRIBUTE_MAPPING_KEY, "oneToMany");
-		EclipseLinkOneToManyMapping contextOneToMany = 
-			(EclipseLinkOneToManyMapping) ormPersistentAttribute.getMapping();
-		XmlEntity resourceEntity = 
-			(XmlEntity) getXmlEntityMappings().getEntities().get(0);
-		XmlOneToMany resourceOneToMany = 
-			(XmlOneToMany) resourceEntity.getAttributes().getOneToManys().get(0);
-		
-		// check defaults
-		
-		assertFalse(resourceOneToMany.isPrivateOwned());
-		assertFalse(contextOneToMany.getPrivateOwned().isPrivateOwned());
-		
-		// set xml private owned to true, check context
-		
-		resourceOneToMany.setPrivateOwned(true);
-		
-		assertTrue(resourceOneToMany.isPrivateOwned());
-		assertTrue(contextOneToMany.getPrivateOwned().isPrivateOwned());
-		
-		// set xml private owned back to false, check context
-		
-		resourceOneToMany.setPrivateOwned(false);
-		
-		assertFalse(resourceOneToMany.isPrivateOwned());
-		assertFalse(contextOneToMany.getPrivateOwned().isPrivateOwned());
-	}
-	
-	public void testModifyPrivateOwned() throws Exception {
-		OrmPersistentType ormPersistentType = 
-			getEntityMappings().addPersistentType(MappingKeys.ENTITY_TYPE_MAPPING_KEY, FULLY_QUALIFIED_TYPE_NAME);
-		OrmPersistentAttribute ormPersistentAttribute =
-			ormPersistentType.addSpecifiedPersistentAttribute(MappingKeys.ONE_TO_MANY_ATTRIBUTE_MAPPING_KEY, "oneToMany");
-		EclipseLinkOneToManyMapping contextOneToMany = 
-			(EclipseLinkOneToManyMapping) ormPersistentAttribute.getMapping();
-		XmlEntity resourceEntity = 
-			(XmlEntity)getXmlEntityMappings().getEntities().get(0);
-		XmlOneToMany resourceOneToMany = 
-			(XmlOneToMany) resourceEntity.getAttributes().getOneToManys().get(0);
-		
-		// check defaults
-		
-		assertFalse(resourceOneToMany.isPrivateOwned());
-		assertFalse(contextOneToMany.getPrivateOwned().isPrivateOwned());
-		
-		// set context private owned  to true, check resource
-		
-		contextOneToMany.getPrivateOwned().setPrivateOwned(true);
-		
-		assertTrue(resourceOneToMany.isPrivateOwned());
-		assertTrue(contextOneToMany.getPrivateOwned().isPrivateOwned());
-		
-		// set context private owned back to false, check resource
-		
-		contextOneToMany.getPrivateOwned().setPrivateOwned(false);
-		
-		assertFalse(resourceOneToMany.isPrivateOwned());
-		assertFalse(contextOneToMany.getPrivateOwned().isPrivateOwned());
-	}
-	
-	public void testUpdateJoinFetch() throws Exception {
-		OrmPersistentType ormPersistentType = 
-			getEntityMappings().addPersistentType(MappingKeys.ENTITY_TYPE_MAPPING_KEY, FULLY_QUALIFIED_TYPE_NAME);
-		OrmPersistentAttribute ormPersistentAttribute =
-			ormPersistentType.addSpecifiedPersistentAttribute(MappingKeys.ONE_TO_MANY_ATTRIBUTE_MAPPING_KEY, "oneToMany");
-		EclipseLinkOneToManyMapping contextOneToMany = 
-			(EclipseLinkOneToManyMapping) ormPersistentAttribute.getMapping();
-		XmlEntity resourceEntity = 
-			(XmlEntity) getXmlEntityMappings().getEntities().get(0);
-		XmlOneToMany resourceOneToMany = 
-			(XmlOneToMany) resourceEntity.getAttributes().getOneToManys().get(0);
-		
-		// check defaults
-		
-		assertNull(resourceOneToMany.getJoinFetch());
-		assertNull(contextOneToMany.getJoinFetch().getValue());
-		
-		// set xml join fetch to INNER, check context
-		
-		resourceOneToMany.setJoinFetch(XmlJoinFetchType.INNER);
-		
-		assertEquals(XmlJoinFetchType.INNER, resourceOneToMany.getJoinFetch());
-		assertEquals(JoinFetchType.INNER, contextOneToMany.getJoinFetch().getValue());
-		
-		// set xml join fetch to OUTER, check context
-		
-		resourceOneToMany.setJoinFetch(XmlJoinFetchType.OUTER);
-		
-		assertEquals(XmlJoinFetchType.OUTER, resourceOneToMany.getJoinFetch());
-		assertEquals(JoinFetchType.OUTER, contextOneToMany.getJoinFetch().getValue());
-		
-		// set xml join fetch to null, check context
-		
-		resourceOneToMany.setJoinFetch(null);
-		
-		assertNull(resourceOneToMany.getJoinFetch());
-		assertNull(contextOneToMany.getJoinFetch().getValue());
-	}
-	
-	public void testModifyJoinFetch() throws Exception {
-		OrmPersistentType ormPersistentType = 
-			getEntityMappings().addPersistentType(MappingKeys.ENTITY_TYPE_MAPPING_KEY, FULLY_QUALIFIED_TYPE_NAME);
-		OrmPersistentAttribute ormPersistentAttribute =
-			ormPersistentType.addSpecifiedPersistentAttribute(MappingKeys.ONE_TO_MANY_ATTRIBUTE_MAPPING_KEY, "oneToMany");
-		EclipseLinkOneToManyMapping contextOneToMany = 
-			(EclipseLinkOneToManyMapping) ormPersistentAttribute.getMapping();
-		XmlEntity resourceEntity = 
-			(XmlEntity)getXmlEntityMappings().getEntities().get(0);
-		XmlOneToMany resourceOneToMany = 
-			(XmlOneToMany) resourceEntity.getAttributes().getOneToManys().get(0);
-		
-		// check defaults
-		
-		assertNull(resourceOneToMany.getJoinFetch());
-		assertNull(contextOneToMany.getJoinFetch().getValue());
-		
-		// set context join fetch to INNER, check resource
-		
-		contextOneToMany.getJoinFetch().setValue(JoinFetchType.INNER);
-		
-		assertEquals(XmlJoinFetchType.INNER, resourceOneToMany.getJoinFetch());
-		assertEquals(JoinFetchType.INNER, contextOneToMany.getJoinFetch().getValue());
-		
-		// set context join fetch to OUTER, check resource
-		
-		contextOneToMany.getJoinFetch().setValue(JoinFetchType.OUTER);
-		
-		assertEquals(XmlJoinFetchType.OUTER, resourceOneToMany.getJoinFetch());
-		assertEquals(JoinFetchType.OUTER, contextOneToMany.getJoinFetch().getValue());
-		
-		// set context join fetch to null, check resource
-		
-		contextOneToMany.getJoinFetch().setValue(null);
-		
-		assertNull(resourceOneToMany.getJoinFetch());
-		assertNull(contextOneToMany.getJoinFetch().getValue());
-	}
-	
-	public void testJoinFetchDefault() throws Exception {
-		createTestEmployee();
-		createTestDepartment();
-		getEntityMappings().addPersistentType(MappingKeys.ENTITY_TYPE_MAPPING_KEY, PACKAGE_NAME + ".Department");
-		getEntityMappings().addPersistentType(MappingKeys.ENTITY_TYPE_MAPPING_KEY, PACKAGE_NAME + ".Employee");
-		
-		OrmPersistentType departmentPersistentType = getEntityMappings().persistentTypes().next();
-		EclipseLinkOrmOneToManyMapping<?> oneToMany = (EclipseLinkOrmOneToManyMapping<?>) departmentPersistentType.getAttributeNamed("employees").getMapping();
-
-		assertNull(oneToMany.getJoinFetch().getValue());
-		
-		getEntityMappings().getPersistenceUnitMetadata().setXmlMappingMetadataComplete(true);
-		oneToMany = (EclipseLinkOrmOneToManyMapping<?>) departmentPersistentType.getAttributeNamed("employees").getMapping();
-		assertNull(oneToMany.getJoinFetch().getValue());		
-		
-		EclipseLinkRelationshipMapping javaRelationshipMapping = (EclipseLinkRelationshipMapping) departmentPersistentType.getJavaPersistentType().getAttributeNamed("employees").getMapping();
-		javaRelationshipMapping.getJoinFetch().setValue(JoinFetchType.OUTER);
-		assertNull(oneToMany.getJoinFetch().getValue());
-		
-		getEntityMappings().getPersistenceUnitMetadata().setXmlMappingMetadataComplete(false);
-		oneToMany = (EclipseLinkOrmOneToManyMapping<?>) departmentPersistentType.getAttributeNamed("employees").getMapping();
-		assertEquals(JoinFetchType.OUTER, oneToMany.getJoinFetch().getValue());
-	}
-	
-	public void testDefaultJoinTable() throws Exception {
-		createTestEmployee();
-		createTestDepartment();
-		getEntityMappings().addPersistentType(MappingKeys.ENTITY_TYPE_MAPPING_KEY, PACKAGE_NAME + ".Department");
-		getEntityMappings().addPersistentType(MappingKeys.ENTITY_TYPE_MAPPING_KEY, PACKAGE_NAME + ".Employee");
-		
-		OrmPersistentType departmentPersistentType = getEntityMappings().persistentTypes().next();
-		OrmOneToManyMapping oneToMany = (OrmOneToManyMapping) departmentPersistentType.getAttributeNamed("employees").getMapping();
-		
-		assertEquals(true, oneToMany.getPersistentAttribute().isVirtual());
-		OrmJoinTable ormJoinTable = oneToMany.getRelationshipReference().getJoinTableJoiningStrategy().getJoinTable();
-		assertEquals("DEP_EMP", ormJoinTable.getName());
-		assertEquals("DEPT_ID", ormJoinTable.specifiedJoinColumns().next().getName());
-		assertEquals("id", ormJoinTable.specifiedJoinColumns().next().getReferencedColumnName());
-		assertEquals("EMP_ID", ormJoinTable.specifiedInverseJoinColumns().next().getName());
-		assertEquals("empId", ormJoinTable.specifiedInverseJoinColumns().next().getReferencedColumnName());
-
-		//set metadata-complete and verify JoinTable info is not taken from the java
-		departmentPersistentType.getMapping().setSpecifiedMetadataComplete(Boolean.TRUE);
-		departmentPersistentType.addSpecifiedPersistentAttribute(MappingKeys.ID_ATTRIBUTE_MAPPING_KEY, "id");	
-		oneToMany = (OrmOneToManyMapping) departmentPersistentType.getAttributeNamed("employees").getMapping();
-		
-		assertEquals(true, oneToMany.getPersistentAttribute().isVirtual());
-		ormJoinTable = oneToMany.getRelationshipReference().getJoinTableJoiningStrategy().getJoinTable();
-		assertEquals("Department_Employee", ormJoinTable.getName());
-		assertEquals("Department_id", ormJoinTable.specifiedJoinColumns().next().getName());
-		assertEquals("id", ormJoinTable.specifiedJoinColumns().next().getReferencedColumnName());
-		assertEquals("employees_empId", ormJoinTable.specifiedInverseJoinColumns().next().getName());
-		assertEquals("empId", ormJoinTable.specifiedInverseJoinColumns().next().getReferencedColumnName());
-		
-		//set metadata-complete to false, add mapping to orm.xml verify JoinTable info is not taken from the java
-		departmentPersistentType.getMapping().setSpecifiedMetadataComplete(Boolean.FALSE);
-		oneToMany = (OrmOneToManyMapping) departmentPersistentType.getAttributeNamed("employees").getMapping();
-		assertEquals(true, oneToMany.getPersistentAttribute().isVirtual());
-		ormJoinTable = oneToMany.getRelationshipReference().getJoinTableJoiningStrategy().getJoinTable();
-		assertEquals("DEP_EMP", ormJoinTable.getName());
-		assertEquals("DEPT_ID", ormJoinTable.specifiedJoinColumns().next().getName());
-		assertEquals("id", ormJoinTable.specifiedJoinColumns().next().getReferencedColumnName());
-		assertEquals("EMP_ID", ormJoinTable.specifiedInverseJoinColumns().next().getName());
-		assertEquals("empId", ormJoinTable.specifiedInverseJoinColumns().next().getReferencedColumnName());
-
-		
-		departmentPersistentType.addSpecifiedPersistentAttribute(MappingKeys.ONE_TO_MANY_ATTRIBUTE_MAPPING_KEY, "employees");
-		oneToMany = (OrmOneToManyMapping) departmentPersistentType.getAttributeNamed("employees").getMapping();
-		assertEquals(false, oneToMany.getPersistentAttribute().isVirtual());
-		ormJoinTable = oneToMany.getRelationshipReference().getJoinTableJoiningStrategy().getJoinTable();
-		assertEquals("Department_Employee", ormJoinTable.getName());
-		assertEquals(0, ormJoinTable.specifiedJoinColumnsSize());
-		assertEquals("Department_id", ormJoinTable.getDefaultJoinColumn().getName());
-		assertEquals("id", ormJoinTable.getDefaultJoinColumn().getReferencedColumnName());
-		assertEquals(0, ormJoinTable.specifiedInverseJoinColumnsSize());
-		assertEquals("employees_empId", ormJoinTable.getDefaultInverseJoinColumn().getName());
-		assertEquals("empId", ormJoinTable.getDefaultInverseJoinColumn().getReferencedColumnName());
-	}
-}
diff --git a/jpa/tests/org.eclipse.jpt.eclipselink.core.tests/src/org/eclipse/jpt/eclipselink/core/tests/internal/context/orm/EclipseLinkOrmOneToOneMappingTests.java b/jpa/tests/org.eclipse.jpt.eclipselink.core.tests/src/org/eclipse/jpt/eclipselink/core/tests/internal/context/orm/EclipseLinkOrmOneToOneMappingTests.java
deleted file mode 100644
index 5beae5a..0000000
--- a/jpa/tests/org.eclipse.jpt.eclipselink.core.tests/src/org/eclipse/jpt/eclipselink/core/tests/internal/context/orm/EclipseLinkOrmOneToOneMappingTests.java
+++ /dev/null
@@ -1,244 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008, 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- *******************************************************************************/
-package org.eclipse.jpt.eclipselink.core.tests.internal.context.orm;
-
-import org.eclipse.jpt.core.MappingKeys;
-import org.eclipse.jpt.core.context.orm.OrmPersistentAttribute;
-import org.eclipse.jpt.core.context.orm.OrmPersistentType;
-import org.eclipse.jpt.core.resource.java.JPA;
-import org.eclipse.jpt.core.tests.internal.projects.TestJavaProject.SourceWriter;
-import org.eclipse.jpt.eclipselink.core.context.EclipseLinkOneToOneMapping;
-import org.eclipse.jpt.eclipselink.core.context.EclipseLinkRelationshipMapping;
-import org.eclipse.jpt.eclipselink.core.context.JoinFetchType;
-import org.eclipse.jpt.eclipselink.core.internal.context.orm.EclipseLinkOrmOneToOneMapping;
-import org.eclipse.jpt.eclipselink.core.resource.orm.XmlEntity;
-import org.eclipse.jpt.eclipselink.core.resource.orm.XmlJoinFetchType;
-import org.eclipse.jpt.eclipselink.core.resource.orm.XmlOneToOne;
-
-@SuppressWarnings("nls")
-public class EclipseLinkOrmOneToOneMappingTests
-	extends EclipseLinkOrmContextModelTestCase
-{
-	public EclipseLinkOrmOneToOneMappingTests(String name) {
-		super(name);
-	}
-	
-	private void createTestDepartment() throws Exception {
-		SourceWriter sourceWriter = new SourceWriter() {
-			public void appendSourceTo(StringBuilder sb) {
-				sb.append(CR);
-					sb.append("import ").append(JPA.ENTITY).append(";");
-					sb.append(CR);
-					sb.append("import ").append(JPA.ID).append(";");
-					sb.append(CR);
-					sb.append(CR);
-					sb.append("import ").append(JPA.ONE_TO_ONE).append(";");
-				sb.append("@Entity");
-				sb.append(CR);
-				sb.append("public class ").append("Department").append(" ");
-				sb.append("{").append(CR);
-				sb.append(CR);
-				sb.append("    @Id").append(CR);
-				sb.append("    private int id;").append(CR);
-				sb.append(CR);
-				sb.append("    @OneToOne").append(CR);
-				sb.append("    private Employee employee;").append(CR);
-				sb.append(CR);
-				sb.append("}").append(CR);
-		}
-		};
-		this.javaProject.createCompilationUnit(PACKAGE_NAME, "Department.java", sourceWriter);
-	}
-
-	private void createTestEmployee() throws Exception {
-		SourceWriter sourceWriter = new SourceWriter() {
-			public void appendSourceTo(StringBuilder sb) {
-				sb.append(CR);
-					sb.append("import ").append(JPA.ENTITY).append(";");
-					sb.append(CR);
-					sb.append("import ").append(JPA.ID).append(";");
-					sb.append(CR);
-			sb.append("@Entity");
-				sb.append(CR);
-				sb.append("public class ").append("Employee").append(" ");
-				sb.append("{").append(CR);
-				sb.append(CR);
-				sb.append("    @Id").append(CR);
-				sb.append("    private int empId;").append(CR);
-				sb.append(CR);
-				sb.append("}").append(CR);
-		}
-		};
-		this.javaProject.createCompilationUnit(PACKAGE_NAME, "Employee.java", sourceWriter);
-	}	
-	
-	public void testUpdatePrivateOwned() throws Exception {
-		OrmPersistentType ormPersistentType = 
-			getEntityMappings().addPersistentType(MappingKeys.ENTITY_TYPE_MAPPING_KEY, FULLY_QUALIFIED_TYPE_NAME);
-		OrmPersistentAttribute ormPersistentAttribute =
-			ormPersistentType.addSpecifiedPersistentAttribute(MappingKeys.ONE_TO_ONE_ATTRIBUTE_MAPPING_KEY, "oneToOne");
-		EclipseLinkOneToOneMapping contextOneToOne = 
-			(EclipseLinkOneToOneMapping) ormPersistentAttribute.getMapping();
-		XmlEntity resourceEntity = 
-			(XmlEntity)getXmlEntityMappings().getEntities().get(0);
-		XmlOneToOne resourceOneToOne = 
-			(XmlOneToOne) resourceEntity.getAttributes().getOneToOnes().get(0);
-		
-		// check defaults
-		
-		assertFalse(resourceOneToOne.isPrivateOwned());
-		assertFalse(contextOneToOne.getPrivateOwned().isPrivateOwned());
-		
-		// set xml private owned to true, check context
-		
-		resourceOneToOne.setPrivateOwned(true);
-		
-		assertTrue(resourceOneToOne.isPrivateOwned());
-		assertTrue(contextOneToOne.getPrivateOwned().isPrivateOwned());
-		
-		// set xml private owned back to false, check context
-		
-		resourceOneToOne.setPrivateOwned(false);
-		
-		assertFalse(resourceOneToOne.isPrivateOwned());
-		assertFalse(contextOneToOne.getPrivateOwned().isPrivateOwned());
-	}
-	
-	public void testModifyPrivateOwned() throws Exception {
-		OrmPersistentType ormPersistentType = 
-			getEntityMappings().addPersistentType(MappingKeys.ENTITY_TYPE_MAPPING_KEY, FULLY_QUALIFIED_TYPE_NAME);
-		OrmPersistentAttribute ormPersistentAttribute =
-			ormPersistentType.addSpecifiedPersistentAttribute(MappingKeys.ONE_TO_ONE_ATTRIBUTE_MAPPING_KEY, "oneToOne");
-		EclipseLinkOneToOneMapping contextOneToOne = 
-			(EclipseLinkOneToOneMapping) ormPersistentAttribute.getMapping();
-		XmlEntity resourceEntity = 
-			(XmlEntity)getXmlEntityMappings().getEntities().get(0);
-		XmlOneToOne resourceOneToOne = 
-			(XmlOneToOne) resourceEntity.getAttributes().getOneToOnes().get(0);
-		
-		// check defaults
-		
-		assertFalse(resourceOneToOne.isPrivateOwned());
-		assertFalse(contextOneToOne.getPrivateOwned().isPrivateOwned());
-		
-		// set context private owned  to true, check resource
-		
-		contextOneToOne.getPrivateOwned().setPrivateOwned(true);
-		
-		assertTrue(resourceOneToOne.isPrivateOwned());
-		assertTrue(contextOneToOne.getPrivateOwned().isPrivateOwned());
-		
-		// set context private owned back to false, check resource
-		
-		contextOneToOne.getPrivateOwned().setPrivateOwned(false);
-	}
-	
-	public void testUpdateJoinFetch() throws Exception {
-		OrmPersistentType ormPersistentType = 
-			getEntityMappings().addPersistentType(MappingKeys.ENTITY_TYPE_MAPPING_KEY, FULLY_QUALIFIED_TYPE_NAME);
-		OrmPersistentAttribute ormPersistentAttribute =
-			ormPersistentType.addSpecifiedPersistentAttribute(MappingKeys.ONE_TO_ONE_ATTRIBUTE_MAPPING_KEY, "oneToOne");
-		EclipseLinkOneToOneMapping contextOneToOne = 
-			(EclipseLinkOneToOneMapping) ormPersistentAttribute.getMapping();
-		XmlEntity resourceEntity = 
-			(XmlEntity) getXmlEntityMappings().getEntities().get(0);
-		XmlOneToOne resourceOneToOne = 
-			(XmlOneToOne) resourceEntity.getAttributes().getOneToOnes().get(0);
-		
-		// check defaults
-		
-		assertNull(resourceOneToOne.getJoinFetch());
-		assertNull(contextOneToOne.getJoinFetch().getValue());
-		
-		// set xml join fetch to INNER, check context
-		
-		resourceOneToOne.setJoinFetch(XmlJoinFetchType.INNER);
-		
-		assertEquals(XmlJoinFetchType.INNER, resourceOneToOne.getJoinFetch());
-		assertEquals(JoinFetchType.INNER, contextOneToOne.getJoinFetch().getValue());
-		
-		// set xml join fetch to OUTER, check context
-		
-		resourceOneToOne.setJoinFetch(XmlJoinFetchType.OUTER);
-		
-		assertEquals(XmlJoinFetchType.OUTER, resourceOneToOne.getJoinFetch());
-		assertEquals(JoinFetchType.OUTER, contextOneToOne.getJoinFetch().getValue());
-		
-		// set xml join fetch to null, check context
-		
-		resourceOneToOne.setJoinFetch(null);
-		
-		assertNull(resourceOneToOne.getJoinFetch());
-		assertNull(contextOneToOne.getJoinFetch().getValue());
-	}
-	
-	public void testModifyJoinFetch() throws Exception {
-		OrmPersistentType ormPersistentType = 
-			getEntityMappings().addPersistentType(MappingKeys.ENTITY_TYPE_MAPPING_KEY, FULLY_QUALIFIED_TYPE_NAME);
-		OrmPersistentAttribute ormPersistentAttribute =
-			ormPersistentType.addSpecifiedPersistentAttribute(MappingKeys.ONE_TO_ONE_ATTRIBUTE_MAPPING_KEY, "oneToOne");
-		EclipseLinkOneToOneMapping contextOneToOne = 
-			(EclipseLinkOneToOneMapping) ormPersistentAttribute.getMapping();
-		XmlEntity resourceEntity = 
-			(XmlEntity)getXmlEntityMappings().getEntities().get(0);
-		XmlOneToOne resourceOneToOne = 
-			(XmlOneToOne) resourceEntity.getAttributes().getOneToOnes().get(0);
-		
-		// check defaults
-		
-		assertNull(resourceOneToOne.getJoinFetch());
-		assertNull(contextOneToOne.getJoinFetch().getValue());
-		
-		// set context join fetch to INNER, check resource
-		
-		contextOneToOne.getJoinFetch().setValue(JoinFetchType.INNER);
-		
-		assertEquals(XmlJoinFetchType.INNER, resourceOneToOne.getJoinFetch());
-		assertEquals(JoinFetchType.INNER, contextOneToOne.getJoinFetch().getValue());
-		
-		// set context join fetch to OUTER, check resource
-		
-		contextOneToOne.getJoinFetch().setValue(JoinFetchType.OUTER);
-		
-		assertEquals(XmlJoinFetchType.OUTER, resourceOneToOne.getJoinFetch());
-		assertEquals(JoinFetchType.OUTER, contextOneToOne.getJoinFetch().getValue());
-		
-		// set context join fetch to null, check resource
-		
-		contextOneToOne.getJoinFetch().setValue(null);
-		
-		assertNull(resourceOneToOne.getJoinFetch());
-		assertNull(contextOneToOne.getJoinFetch().getValue());
-	}
-	
-	public void testJoinFetchDefaultFromJava() throws Exception {
-		createTestEmployee();
-		createTestDepartment();
-		getEntityMappings().addPersistentType(MappingKeys.ENTITY_TYPE_MAPPING_KEY, PACKAGE_NAME + ".Department");
-		getEntityMappings().addPersistentType(MappingKeys.ENTITY_TYPE_MAPPING_KEY, PACKAGE_NAME + ".Employee");
-		
-		OrmPersistentType departmentPersistentType = getEntityMappings().persistentTypes().next();
-		EclipseLinkOrmOneToOneMapping<?> oneToOne = (EclipseLinkOrmOneToOneMapping<?>) departmentPersistentType.getAttributeNamed("employee").getMapping();
-
-		assertNull(oneToOne.getJoinFetch().getValue());
-		
-		getEntityMappings().getPersistenceUnitMetadata().setXmlMappingMetadataComplete(true);
-		oneToOne = (EclipseLinkOrmOneToOneMapping<?>) departmentPersistentType.getAttributeNamed("employee").getMapping();
-		assertNull(oneToOne.getJoinFetch().getValue());		
-		
-		EclipseLinkRelationshipMapping javaRelationshipMapping = (EclipseLinkRelationshipMapping) departmentPersistentType.getJavaPersistentType().getAttributeNamed("employee").getMapping();
-		javaRelationshipMapping.getJoinFetch().setValue(JoinFetchType.OUTER);
-		assertNull(oneToOne.getJoinFetch().getValue());
-		
-		getEntityMappings().getPersistenceUnitMetadata().setXmlMappingMetadataComplete(false);
-		oneToOne = (EclipseLinkOrmOneToOneMapping<?>) departmentPersistentType.getAttributeNamed("employee").getMapping();
-		assertEquals(JoinFetchType.OUTER, oneToOne.getJoinFetch().getValue());
-	}
-}
\ No newline at end of file
diff --git a/jpa/tests/org.eclipse.jpt.eclipselink.core.tests/src/org/eclipse/jpt/eclipselink/core/tests/internal/context/orm/EclipseLinkOrmPersistentAttributeTests.java b/jpa/tests/org.eclipse.jpt.eclipselink.core.tests/src/org/eclipse/jpt/eclipselink/core/tests/internal/context/orm/EclipseLinkOrmPersistentAttributeTests.java
deleted file mode 100644
index 6f8c498..0000000
--- a/jpa/tests/org.eclipse.jpt.eclipselink.core.tests/src/org/eclipse/jpt/eclipselink/core/tests/internal/context/orm/EclipseLinkOrmPersistentAttributeTests.java
+++ /dev/null
@@ -1,314 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008, 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- *******************************************************************************/
-package org.eclipse.jpt.eclipselink.core.tests.internal.context.orm;
-
-import java.util.Iterator;
-import java.util.ListIterator;
-import org.eclipse.jdt.core.ICompilationUnit;
-import org.eclipse.jpt.core.JptCorePlugin;
-import org.eclipse.jpt.core.MappingKeys;
-import org.eclipse.jpt.core.context.AccessType;
-import org.eclipse.jpt.core.context.BasicMapping;
-import org.eclipse.jpt.core.context.IdMapping;
-import org.eclipse.jpt.core.context.java.JavaPersistentAttribute;
-import org.eclipse.jpt.core.context.java.JavaPersistentType;
-import org.eclipse.jpt.core.context.orm.OrmPersistentAttribute;
-import org.eclipse.jpt.core.context.orm.OrmPersistentType;
-import org.eclipse.jpt.core.internal.context.orm.GenericOrmIdMapping;
-import org.eclipse.jpt.core.internal.context.orm.GenericOrmNullAttributeMapping;
-import org.eclipse.jpt.core.internal.context.orm.GenericOrmOneToOneMapping;
-import org.eclipse.jpt.core.resource.java.JPA;
-import org.eclipse.jpt.core.resource.java.JavaResourcePersistentAttribute;
-import org.eclipse.jpt.core.resource.persistence.PersistenceFactory;
-import org.eclipse.jpt.core.resource.persistence.XmlMappingFileRef;
-import org.eclipse.jpt.core.tests.internal.context.ContextModelTestCase;
-import org.eclipse.jpt.utility.internal.iterators.ArrayIterator;
-
-@SuppressWarnings("nls")
-public class EclipseLinkOrmPersistentAttributeTests extends ContextModelTestCase
-{
-	public EclipseLinkOrmPersistentAttributeTests(String name) {
-		super(name);
-	}
-	
-	@Override
-	protected void setUp() throws Exception {
-		super.setUp();
-		XmlMappingFileRef mappingFileRef = PersistenceFactory.eINSTANCE.createXmlMappingFileRef();
-		mappingFileRef.setFileName(JptCorePlugin.DEFAULT_ORM_XML_FILE_PATH);
-		getXmlPersistenceUnit().getMappingFiles().add(mappingFileRef);
-		getPersistenceXmlResource().save(null);
-	}
-	
-	private ICompilationUnit createTestTypeNullAttributeMapping() throws Exception {
-	
-		return this.createTestType(new DefaultAnnotationWriter() {			
-			@Override
-			public void appendIdFieldAnnotationTo(StringBuilder sb) {
-				sb.append(CR);			
-				sb.append("    private Address address;").append(CR);
-				sb.append(CR);
-			}
-		});
-	}
-	
-	private ICompilationUnit createTestEntityIdMapping() throws Exception {
-		return this.createTestType(new DefaultAnnotationWriter() {
-			@Override
-			public Iterator<String> imports() {
-				return new ArrayIterator<String>(JPA.ENTITY, JPA.ID, JPA.COLUMN);
-			}
-			@Override
-			public void appendTypeAnnotationTo(StringBuilder sb) {
-				sb.append("@Entity");
-			}
-			@Override
-			public void appendIdFieldAnnotationTo(StringBuilder sb) {
-				sb.append("@Id");
-				sb.append("@Column(name=\"FOO\")");
-			}
-		});
-	}
-	
-	private ICompilationUnit createTestEntityOneToOneMapping() throws Exception {
-		return this.createTestType(new DefaultAnnotationWriter() {
-			@Override
-			public Iterator<String> imports() {
-				return new ArrayIterator<String>(JPA.ENTITY, JPA.ONE_TO_ONE);
-			}
-			@Override
-			public void appendTypeAnnotationTo(StringBuilder sb) {
-				sb.append("@Entity");
-			}
-			@Override
-			public void appendIdFieldAnnotationTo(StringBuilder sb) {
-				sb.append("@OneToOne");
-				sb.append("    private Address address;");
-			}
-		});
-	}
-	
-	public void testMakeSpecified() throws Exception {
-		createTestType();
-		OrmPersistentType ormPersistentType = getEntityMappings().addPersistentType(MappingKeys.ENTITY_TYPE_MAPPING_KEY, FULLY_QUALIFIED_TYPE_NAME);
-		
-		assertEquals(2, ormPersistentType.virtualAttributesSize());
-		
-		OrmPersistentAttribute ormPersistentAttribute = ormPersistentType.virtualAttributes().next();
-		assertEquals("id", ormPersistentAttribute.getName());
-		assertTrue(ormPersistentAttribute.isVirtual());
-		ormPersistentAttribute.makeSpecified();
-		
-		assertEquals(1, ormPersistentType.virtualAttributesSize());
-		assertEquals(1, ormPersistentType.specifiedAttributesSize());
-		OrmPersistentAttribute specifiedOrmPersistentAttribute = ormPersistentType.specifiedAttributes().next();
-		assertEquals("id", specifiedOrmPersistentAttribute.getName());
-		assertFalse(specifiedOrmPersistentAttribute.isVirtual());
-		
-		ormPersistentAttribute = ormPersistentType.virtualAttributes().next();
-		ormPersistentAttribute.makeSpecified();
-		
-		assertEquals(0, ormPersistentType.virtualAttributesSize());
-		assertEquals(2, ormPersistentType.specifiedAttributesSize());
-		ListIterator<OrmPersistentAttribute> specifiedAttributes = ormPersistentType.specifiedAttributes();
-		specifiedOrmPersistentAttribute = specifiedAttributes.next();
-		assertEquals("id", specifiedOrmPersistentAttribute.getName());
-		assertFalse(specifiedOrmPersistentAttribute.isVirtual());
-		
-		specifiedOrmPersistentAttribute = specifiedAttributes.next();
-		assertEquals("name", specifiedOrmPersistentAttribute.getName());
-		assertFalse(specifiedOrmPersistentAttribute.isVirtual());
-	}
-	
-	public void testMakeSpecifiedMappingKey() throws Exception {
-		createTestTypeNullAttributeMapping();
-		OrmPersistentType ormPersistentType = getEntityMappings().addPersistentType(MappingKeys.ENTITY_TYPE_MAPPING_KEY, FULLY_QUALIFIED_TYPE_NAME);
-		
-		assertEquals(3, ormPersistentType.virtualAttributesSize());
-		
-		//take a virtual mapping with a mapping type and make it specified
-		OrmPersistentAttribute ormPersistentAttribute = ormPersistentType.virtualAttributes().next();
-		assertEquals("address", ormPersistentAttribute.getName());
-		assertTrue(ormPersistentAttribute.isVirtual());
-		assertTrue(ormPersistentAttribute.getMapping() instanceof GenericOrmNullAttributeMapping);
-		ormPersistentAttribute.makeSpecified(MappingKeys.ONE_TO_ONE_ATTRIBUTE_MAPPING_KEY);
-		
-		assertEquals(2, ormPersistentType.virtualAttributesSize());
-		assertEquals(1, ormPersistentType.specifiedAttributesSize());
-		OrmPersistentAttribute specifiedOrmPersistentAttribute = ormPersistentType.specifiedAttributes().next();
-		assertEquals("address", specifiedOrmPersistentAttribute.getName());
-		assertFalse(specifiedOrmPersistentAttribute.isVirtual());
-		assertTrue(specifiedOrmPersistentAttribute.getMapping() instanceof GenericOrmOneToOneMapping);
-		
-		
-		ormPersistentAttribute = ormPersistentType.virtualAttributes().next();
-		ormPersistentAttribute.makeSpecified(MappingKeys.ID_ATTRIBUTE_MAPPING_KEY);
-		
-		assertEquals(1, ormPersistentType.virtualAttributesSize());
-		assertEquals(2, ormPersistentType.specifiedAttributesSize());
-		ListIterator<OrmPersistentAttribute> specifiedAttributes = ormPersistentType.specifiedAttributes();
-		
-		specifiedOrmPersistentAttribute = specifiedAttributes.next();
-		assertEquals("id", specifiedOrmPersistentAttribute.getName());
-		assertFalse(specifiedOrmPersistentAttribute.isVirtual());
-		assertTrue(specifiedOrmPersistentAttribute.getMapping() instanceof GenericOrmIdMapping);
-		
-		specifiedOrmPersistentAttribute = specifiedAttributes.next();
-		assertEquals("address", specifiedOrmPersistentAttribute.getName());
-		assertFalse(specifiedOrmPersistentAttribute.isVirtual());
-	}
-	
-	public void testMakeVirtual() throws Exception {
-		createTestType();
-		OrmPersistentType ormPersistentType = getEntityMappings().addPersistentType(MappingKeys.ENTITY_TYPE_MAPPING_KEY, FULLY_QUALIFIED_TYPE_NAME);
-		
-		assertEquals(2, ormPersistentType.virtualAttributesSize());
-		
-		ormPersistentType.virtualAttributes().next().makeSpecified();
-		ormPersistentType.virtualAttributes().next().makeSpecified();
-
-		assertEquals(0, ormPersistentType.virtualAttributesSize());
-		assertEquals(2, ormPersistentType.specifiedAttributesSize());
-		OrmPersistentAttribute specifiedOrmPersistentAttribute = ormPersistentType.specifiedAttributes().next();
-		assertEquals("id", specifiedOrmPersistentAttribute.getName());
-		assertFalse(specifiedOrmPersistentAttribute.isVirtual());
-		
-		specifiedOrmPersistentAttribute.makeVirtual();
-		assertEquals(1, ormPersistentType.virtualAttributesSize());
-		assertEquals(1, ormPersistentType.specifiedAttributesSize());
-		
-		specifiedOrmPersistentAttribute = ormPersistentType.specifiedAttributes().next();
-		specifiedOrmPersistentAttribute.makeVirtual();
-		assertEquals(2, ormPersistentType.virtualAttributesSize());
-		assertEquals(0, ormPersistentType.specifiedAttributesSize());
-		
-		ListIterator<OrmPersistentAttribute> virtualAttributes = ormPersistentType.virtualAttributes();
-		OrmPersistentAttribute virtualAttribute = virtualAttributes.next();		
-		assertEquals("id", virtualAttribute.getName());
-		virtualAttribute = virtualAttributes.next();		
-		assertEquals("name", virtualAttribute.getName());
-	}
-	
-	public void testMakeVirtualNoUnderlyingJavaAttribute() throws Exception {
-		createTestType();
-		OrmPersistentType ormPersistentType = getEntityMappings().addPersistentType(MappingKeys.ENTITY_TYPE_MAPPING_KEY, FULLY_QUALIFIED_TYPE_NAME);
-		
-		assertEquals(2, ormPersistentType.virtualAttributesSize());
-		
-		ormPersistentType.virtualAttributes().next().makeSpecified();
-		ormPersistentType.virtualAttributes().next().makeSpecified();
-
-		
-		ormPersistentType.specifiedAttributes().next().getMapping().setName("noJavaAttribute");
-		assertEquals(1, ormPersistentType.virtualAttributesSize());
-		assertEquals(2, ormPersistentType.specifiedAttributesSize());
-		
-		
-		OrmPersistentAttribute specifiedOrmPersistentAttribute = ormPersistentType.specifiedAttributes().next();
-		specifiedOrmPersistentAttribute.makeVirtual();
-		assertEquals(1, ormPersistentType.virtualAttributesSize());
-		assertEquals(1, ormPersistentType.specifiedAttributesSize());
-		
-		assertEquals("id", ormPersistentType.virtualAttributes().next().getName());
-		assertEquals("name", ormPersistentType.specifiedAttributes().next().getName());
-	}
-	
-	public void testVirtualMappingTypeWhenMetadataComplete()  throws Exception {
-		createTestEntityIdMapping();
-		OrmPersistentType ormPersistentType = getEntityMappings().addPersistentType(MappingKeys.ENTITY_TYPE_MAPPING_KEY, FULLY_QUALIFIED_TYPE_NAME);
-		
-		OrmPersistentAttribute ormPersistentAttribute = ormPersistentType.virtualAttributes().next();
-		assertEquals("id", ormPersistentAttribute.getName());
-		assertEquals(MappingKeys.ID_ATTRIBUTE_MAPPING_KEY, ormPersistentAttribute.getMappingKey());
-		assertEquals("FOO", ((IdMapping) ormPersistentAttribute.getMapping()).getColumn().getName());
-		
-		
-		ormPersistentType.getMapping().setSpecifiedMetadataComplete(Boolean.TRUE);
-
-		ormPersistentAttribute = ormPersistentType.virtualAttributes().next();
-		assertEquals("id", ormPersistentAttribute.getName());
-		assertEquals(MappingKeys.BASIC_ATTRIBUTE_MAPPING_KEY, ormPersistentAttribute.getMappingKey());
-		assertEquals("id", ((BasicMapping) ormPersistentAttribute.getMapping()).getColumn().getName());
-	}
-	
-	public void testVirtualMappingTypeWhenMetadataComplete2()  throws Exception {
-		createTestEntityOneToOneMapping();
-		OrmPersistentType ormPersistentType = getEntityMappings().addPersistentType(MappingKeys.ENTITY_TYPE_MAPPING_KEY, FULLY_QUALIFIED_TYPE_NAME);
-		
-		OrmPersistentAttribute ormPersistentAttribute = ormPersistentType.virtualAttributes().next();
-		assertEquals("address", ormPersistentAttribute.getName());
-		assertEquals(MappingKeys.ONE_TO_ONE_ATTRIBUTE_MAPPING_KEY, ormPersistentAttribute.getMappingKey());
-		
-		
-		ormPersistentType.getMapping().setSpecifiedMetadataComplete(Boolean.TRUE);
-
-		ormPersistentAttribute = ormPersistentType.virtualAttributes().next();
-		assertEquals("address", ormPersistentAttribute.getName());
-		assertEquals(MappingKeys.NULL_ATTRIBUTE_MAPPING_KEY, ormPersistentAttribute.getMappingKey());
-	}
-	
-	public void testGetJavaPersistentAttribute() throws Exception {
-		createTestEntityIdMapping();
-		OrmPersistentType ormPersistentType = getEntityMappings().addPersistentType(MappingKeys.ENTITY_TYPE_MAPPING_KEY, FULLY_QUALIFIED_TYPE_NAME);
-		JavaPersistentType javaPersistentType = ormPersistentType.getJavaPersistentType();
-		
-		OrmPersistentAttribute ormPersistentAttribute = ormPersistentType.getAttributeNamed("id");
-		JavaPersistentAttribute javaPersistentAttribute = javaPersistentType.getAttributeNamed("id");
-			
-		//virtual orm attribute, access type matches java : FIELD, name matches java
-		assertTrue(ormPersistentAttribute.isVirtual());
-		assertNotSame(javaPersistentAttribute, ormPersistentAttribute.getJavaPersistentAttribute());
-		JavaResourcePersistentAttribute javaResourcePersistentAttribute = ormPersistentAttribute.getJavaPersistentAttribute().getResourcePersistentAttribute();
-		assertTrue(javaResourcePersistentAttribute.isField());
-		assertEquals("id", javaResourcePersistentAttribute.getName());
-		assertEquals(javaPersistentType.getResourcePersistentType().persistableFields().next(), javaResourcePersistentAttribute);
-		
-		
-		//specified orm attribute, access type matches java : FIELD, name matches java
-		//javaPersistentAttribute should be == to java context model object
-		ormPersistentAttribute.makeSpecified();
-		ormPersistentAttribute = ormPersistentType.getAttributeNamed("id");
-		assertFalse(ormPersistentAttribute.isVirtual());
-		assertEquals(javaPersistentAttribute, ormPersistentAttribute.getJavaPersistentAttribute());
-	
-		
-		//virtual orm attribute, java access type FIELD, orm access type PROPERTY, name matches java
-		//verify the property java resource persistent attribute is used in orm.
-		ormPersistentAttribute.makeVirtual();
-		ormPersistentAttribute = ormPersistentType.getAttributeNamed("id");		
-		ormPersistentType.setSpecifiedAccess(AccessType.PROPERTY);
-		assertNotSame(ormPersistentAttribute, ormPersistentType.getAttributeNamed("id"));
-		ormPersistentAttribute = ormPersistentType.getAttributeNamed("id");
-		assertNotSame(javaPersistentAttribute, ormPersistentAttribute.getJavaPersistentAttribute());
-		javaResourcePersistentAttribute = ormPersistentAttribute.getJavaPersistentAttribute().getResourcePersistentAttribute();
-		assertTrue(javaResourcePersistentAttribute.isProperty());
-		assertEquals("id", javaResourcePersistentAttribute.getName());
-		assertEquals(javaPersistentType.getResourcePersistentType().persistableProperties().next(), javaResourcePersistentAttribute);
-		
-		
-		ormPersistentType.setSpecifiedAccess(null);//default access will be field
-		ormPersistentAttribute = ormPersistentType.getAttributeNamed("id");		
-		ormPersistentAttribute.makeSpecified();
-		ormPersistentAttribute = ormPersistentType.getAttributeNamed("id");		
-		ormPersistentAttribute.getMapping().setName("id2");
-		assertEquals(null, ormPersistentAttribute.getJavaPersistentAttribute());
-		
-		ormPersistentAttribute.getMapping().setName(null);
-		assertEquals(null, ormPersistentAttribute.getJavaPersistentAttribute());
-
-		ormPersistentAttribute.getMapping().setName("id");
-		assertEquals(javaPersistentAttribute, ormPersistentAttribute.getJavaPersistentAttribute());
-
-		
-		ormPersistentType.getMapping().setSpecifiedMetadataComplete(Boolean.TRUE);
-		assertEquals(javaPersistentAttribute, ormPersistentAttribute.getJavaPersistentAttribute());
-	}
-
-}
\ No newline at end of file
diff --git a/jpa/tests/org.eclipse.jpt.eclipselink.core.tests/src/org/eclipse/jpt/eclipselink/core/tests/internal/context/orm/EclipseLinkOrmStructConverterTests.java b/jpa/tests/org.eclipse.jpt.eclipselink.core.tests/src/org/eclipse/jpt/eclipselink/core/tests/internal/context/orm/EclipseLinkOrmStructConverterTests.java
deleted file mode 100644
index 2c9379e..0000000
--- a/jpa/tests/org.eclipse.jpt.eclipselink.core.tests/src/org/eclipse/jpt/eclipselink/core/tests/internal/context/orm/EclipseLinkOrmStructConverterTests.java
+++ /dev/null
@@ -1,200 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008, 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- *******************************************************************************/
-package org.eclipse.jpt.eclipselink.core.tests.internal.context.orm;
-
-import java.util.Iterator;
-import org.eclipse.jdt.core.ICompilationUnit;
-import org.eclipse.jpt.core.MappingKeys;
-import org.eclipse.jpt.core.context.java.JavaBasicMapping;
-import org.eclipse.jpt.core.context.orm.OrmBasicMapping;
-import org.eclipse.jpt.core.context.orm.OrmPersistentAttribute;
-import org.eclipse.jpt.core.context.orm.OrmPersistentType;
-import org.eclipse.jpt.core.resource.java.JPA;
-import org.eclipse.jpt.eclipselink.core.context.Convert;
-import org.eclipse.jpt.eclipselink.core.context.EclipseLinkConverter;
-import org.eclipse.jpt.eclipselink.core.context.StructConverter;
-import org.eclipse.jpt.eclipselink.core.internal.context.orm.EclipseLinkOrmStructConverter;
-import org.eclipse.jpt.eclipselink.core.resource.java.EclipseLinkJPA;
-import org.eclipse.jpt.eclipselink.core.resource.orm.XmlBasic;
-import org.eclipse.jpt.eclipselink.core.resource.orm.XmlStructConverter;
-import org.eclipse.jpt.utility.internal.iterators.ArrayIterator;
-
-@SuppressWarnings("nls")
-public class EclipseLinkOrmStructConverterTests
-	extends EclipseLinkOrmContextModelTestCase
-{
-	
-	private ICompilationUnit createTestEntityWithBasicMapping() throws Exception {
-		return this.createTestType(new DefaultAnnotationWriter() {
-			@Override
-			public Iterator<String> imports() {
-				return new ArrayIterator<String>(JPA.ENTITY, JPA.BASIC, EclipseLinkJPA.CONVERT, EclipseLinkJPA.STRUCT_CONVERTER);
-			}
-			@Override
-			public void appendTypeAnnotationTo(StringBuilder sb) {
-				sb.append("@Entity").append(CR);
-			}
-			
-			@Override
-			public void appendIdFieldAnnotationTo(StringBuilder sb) {
-				sb.append("@Basic").append(CR);
-				sb.append("    @Convert(name=\"foo\")").append(CR);
-				sb.append("    @StructConverter");
-			}
-		});
-	}
-
-	
-	public EclipseLinkOrmStructConverterTests(String name) {
-		super(name);
-	}
-	
-	
-	public void testUpdateConverter() throws Exception {
-		createTestEntityWithBasicMapping();
-		
-		OrmPersistentType ormPersistentType = getEntityMappings().addPersistentType(MappingKeys.ENTITY_TYPE_MAPPING_KEY, FULLY_QUALIFIED_TYPE_NAME);
-		OrmPersistentAttribute ormPersistentAttribute = ormPersistentType.addSpecifiedPersistentAttribute(MappingKeys.BASIC_ATTRIBUTE_MAPPING_KEY, "id");
-		OrmBasicMapping ormBasicMapping = (OrmBasicMapping) ormPersistentAttribute.getMapping(); 
-		ormBasicMapping.setSpecifiedConverter(Convert.ECLIPSE_LINK_CONVERTER);
-		((Convert) ormBasicMapping.getConverter()).setConverter(EclipseLinkConverter.STRUCT_CONVERTER);
-		StructConverter ormConverter = (StructConverter) ((Convert) ormBasicMapping.getConverter()).getConverter();
-		XmlStructConverter converterResource = ((XmlBasic) getXmlEntityMappings().getEntities().get(0).getAttributes().getBasics().get(0)).getStructConverter();
-		JavaBasicMapping javaBasicMapping = (JavaBasicMapping) ormPersistentType.getJavaPersistentType().getAttributeNamed("id").getMapping();
-		
-		assertEquals(null, ormConverter.getConverterClass());
-		assertEquals(null, converterResource.getConverter());
-				
-		//set converter class name in the resource model, verify context model updated
-		converterResource.setConverter("myConvert");
-		assertEquals("myConvert", ormConverter.getConverterClass());
-		assertEquals("myConvert", converterResource.getConverter());
-
-		//set converter class name to null in the resource model
-		converterResource.setConverter(null);
-		assertEquals(null, ormConverter.getConverterClass());
-		assertEquals(null, converterResource.getConverter());
-		
-				
-		//remove the specified persistent attribute, test virtual mapping	
-		ormPersistentType.removeSpecifiedPersistentAttribute(ormPersistentAttribute);
-		
-		ormPersistentAttribute = ormPersistentType.virtualAttributes().next();
-		ormBasicMapping = (OrmBasicMapping) ormPersistentAttribute.getMapping();
-		ormConverter = (StructConverter) ((Convert) ormBasicMapping.getSpecifiedConverter()).getConverter();
-		
-		StructConverter javaConverter = ((StructConverter) ((Convert) javaBasicMapping.getSpecifiedConverter()).getConverter());
-		javaConverter.setConverterClass("bar");
-		assertEquals("bar", ormConverter.getConverterClass());
-		assertEquals("bar", javaConverter.getConverterClass());
-		
-		//set metadata-complete, test virtual mapping	
-		ormPersistentType.getMapping().setSpecifiedMetadataComplete(Boolean.TRUE);
-		ormPersistentAttribute = ormPersistentType.virtualAttributes().next();
-		ormBasicMapping = (OrmBasicMapping) ormPersistentAttribute.getMapping();
-		assertEquals(null,  ormBasicMapping.getSpecifiedConverter());
-		assertEquals(org.eclipse.jpt.core.context.Converter.NO_CONVERTER, ormBasicMapping.getConverter().getType());
-		assertEquals("bar", javaConverter.getConverterClass());
-	}
-	
-	public void testModifyConverter() throws Exception {
-		OrmPersistentType ormPersistentType = getEntityMappings().addPersistentType(MappingKeys.ENTITY_TYPE_MAPPING_KEY, "model.Foo");
-		OrmPersistentAttribute ormPersistentAttribute = ormPersistentType.addSpecifiedPersistentAttribute(MappingKeys.BASIC_ATTRIBUTE_MAPPING_KEY, "basicMapping");
-		OrmBasicMapping ormBasicMapping = ((OrmBasicMapping) ormPersistentAttribute.getMapping()); 
-		ormBasicMapping.setSpecifiedConverter(Convert.ECLIPSE_LINK_CONVERTER);
-		((Convert) ormBasicMapping.getConverter()).setConverter(EclipseLinkConverter.STRUCT_CONVERTER);
-		StructConverter ormConverter = (StructConverter) ((Convert) ormBasicMapping.getConverter()).getConverter();
-		XmlStructConverter converterResource = ((XmlBasic) getXmlEntityMappings().getEntities().get(0).getAttributes().getBasics().get(0)).getStructConverter();
-	
-		assertEquals(null, ormConverter.getConverterClass());
-		assertEquals(null, converterResource.getConverter());
-				
-		//set converter class in the context model, verify resource model updated
-		ormConverter.setConverterClass("foo");
-		assertEquals("foo", ormConverter.getConverterClass());
-		assertEquals("foo", converterResource.getConverter());
-	
-		ormConverter.setConverterClass(null);
-		assertEquals(null, ormConverter.getConverterClass());
-		assertEquals(null, converterResource.getConverter());
-	}
-	
-	public void testUpdateName() throws Exception {
-		createTestEntityWithBasicMapping();
-		
-		OrmPersistentType ormPersistentType = getEntityMappings().addPersistentType(MappingKeys.ENTITY_TYPE_MAPPING_KEY, FULLY_QUALIFIED_TYPE_NAME);
-		OrmPersistentAttribute ormPersistentAttribute = ormPersistentType.addSpecifiedPersistentAttribute(MappingKeys.BASIC_ATTRIBUTE_MAPPING_KEY, "id");
-		OrmBasicMapping ormBasicMapping = ((OrmBasicMapping) ormPersistentAttribute.getMapping()); 
-		ormBasicMapping.setSpecifiedConverter(Convert.ECLIPSE_LINK_CONVERTER);
-		((Convert) ormBasicMapping.getConverter()).setConverter(EclipseLinkConverter.STRUCT_CONVERTER);
-		EclipseLinkOrmStructConverter ormConverter = (EclipseLinkOrmStructConverter) ((Convert) ormBasicMapping.getConverter()).getConverter();
-		XmlStructConverter converterResource = ((XmlBasic) getXmlEntityMappings().getEntities().get(0).getAttributes().getBasics().get(0)).getStructConverter();
-		JavaBasicMapping javaBasicMapping = (JavaBasicMapping) ormPersistentType.getJavaPersistentType().getAttributeNamed("id").getMapping();
-		
-		assertEquals(null, ormConverter.getName());
-		assertEquals(null, converterResource.getName());
-				
-		//set converter class name in the resource model, verify context model updated
-		converterResource.setName("myConvert");
-		assertEquals("myConvert", ormConverter.getName());
-		assertEquals("myConvert", converterResource.getName());
-
-		//set converter class name to null in the resource model
-		converterResource.setName(null);
-		assertEquals(null, ormConverter.getName());
-		assertEquals(null, converterResource.getName());
-		
-
-		//remove the specified persistent attribute, test virtual mapping	
-				
-		ormPersistentType.removeSpecifiedPersistentAttribute(ormPersistentAttribute);
-		
-		ormPersistentAttribute = ormPersistentType.virtualAttributes().next();
-		ormBasicMapping = (OrmBasicMapping) ormPersistentAttribute.getMapping();
-		ormConverter = (EclipseLinkOrmStructConverter) ((Convert) ormBasicMapping.getSpecifiedConverter()).getConverter();
-		
-		StructConverter javaConverter = ((StructConverter) ((Convert) javaBasicMapping.getSpecifiedConverter()).getConverter());
-		javaConverter.setName("bar");
-		assertEquals("bar", ormConverter.getName());
-		assertEquals("bar", javaConverter.getName());
-		
-		
-		//set metadata-complete, test virtual mapping
-		
-		ormPersistentType.getMapping().setSpecifiedMetadataComplete(Boolean.TRUE);
-		ormPersistentAttribute = ormPersistentType.virtualAttributes().next();
-		ormBasicMapping = (OrmBasicMapping) ormPersistentAttribute.getMapping();
-		assertEquals(null,  ormBasicMapping.getSpecifiedConverter());
-		assertEquals(org.eclipse.jpt.core.context.Converter.NO_CONVERTER, ormBasicMapping.getConverter().getType());
-		assertEquals("bar", javaConverter.getName());
-	}
-	
-	public void testModifyName() throws Exception {
-		OrmPersistentType ormPersistentType = getEntityMappings().addPersistentType(MappingKeys.ENTITY_TYPE_MAPPING_KEY, "model.Foo");
-		OrmPersistentAttribute ormPersistentAttribute = ormPersistentType.addSpecifiedPersistentAttribute(MappingKeys.BASIC_ATTRIBUTE_MAPPING_KEY, "basicMapping");
-		OrmBasicMapping ormBasicMapping = ((OrmBasicMapping) ormPersistentAttribute.getMapping()); 
-		ormBasicMapping.setSpecifiedConverter(Convert.ECLIPSE_LINK_CONVERTER);
-		((Convert) ormBasicMapping.getConverter()).setConverter(EclipseLinkConverter.STRUCT_CONVERTER);
-		EclipseLinkOrmStructConverter ormConverter = (EclipseLinkOrmStructConverter) ((Convert) ormBasicMapping.getConverter()).getConverter();
-		XmlStructConverter converterResource = ((XmlBasic) getXmlEntityMappings().getEntities().get(0).getAttributes().getBasics().get(0)).getStructConverter();
-	
-		assertEquals(null, ormConverter.getName());
-		assertEquals(null, converterResource.getName());
-				
-		//set converter class in the context model, verify resource model updated
-		ormConverter.setName("foo");
-		assertEquals("foo", ormConverter.getName());
-		assertEquals("foo", converterResource.getName());
-	
-		ormConverter.setName(null);
-		assertEquals(null, ormConverter.getName());
-		assertEquals(null, converterResource.getName());
-	}
-}
diff --git a/jpa/tests/org.eclipse.jpt.eclipselink.core.tests/src/org/eclipse/jpt/eclipselink/core/tests/internal/context/orm/EclipseLinkOrmTypeConverterTests.java b/jpa/tests/org.eclipse.jpt.eclipselink.core.tests/src/org/eclipse/jpt/eclipselink/core/tests/internal/context/orm/EclipseLinkOrmTypeConverterTests.java
deleted file mode 100644
index 0d7560f..0000000
--- a/jpa/tests/org.eclipse.jpt.eclipselink.core.tests/src/org/eclipse/jpt/eclipselink/core/tests/internal/context/orm/EclipseLinkOrmTypeConverterTests.java
+++ /dev/null
@@ -1,269 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008, 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- *******************************************************************************/
-package org.eclipse.jpt.eclipselink.core.tests.internal.context.orm;
-
-import java.util.Iterator;
-import org.eclipse.jdt.core.ICompilationUnit;
-import org.eclipse.jpt.core.MappingKeys;
-import org.eclipse.jpt.core.context.java.JavaBasicMapping;
-import org.eclipse.jpt.core.context.orm.OrmBasicMapping;
-import org.eclipse.jpt.core.context.orm.OrmPersistentAttribute;
-import org.eclipse.jpt.core.context.orm.OrmPersistentType;
-import org.eclipse.jpt.core.resource.java.JPA;
-import org.eclipse.jpt.eclipselink.core.context.Convert;
-import org.eclipse.jpt.eclipselink.core.context.EclipseLinkConverter;
-import org.eclipse.jpt.eclipselink.core.context.TypeConverter;
-import org.eclipse.jpt.eclipselink.core.internal.context.orm.EclipseLinkOrmTypeConverter;
-import org.eclipse.jpt.eclipselink.core.resource.java.EclipseLinkJPA;
-import org.eclipse.jpt.eclipselink.core.resource.orm.XmlBasic;
-import org.eclipse.jpt.eclipselink.core.resource.orm.XmlTypeConverter;
-import org.eclipse.jpt.utility.internal.iterators.ArrayIterator;
-
-@SuppressWarnings("nls")
-public class EclipseLinkOrmTypeConverterTests
-	extends EclipseLinkOrmContextModelTestCase
-{
-	
-	private ICompilationUnit createTestEntityWithBasicMapping() throws Exception {
-		return this.createTestType(new DefaultAnnotationWriter() {
-			@Override
-			public Iterator<String> imports() {
-				return new ArrayIterator<String>(JPA.ENTITY, JPA.BASIC, EclipseLinkJPA.CONVERT, EclipseLinkJPA.TYPE_CONVERTER);
-			}
-			@Override
-			public void appendTypeAnnotationTo(StringBuilder sb) {
-				sb.append("@Entity").append(CR);
-			}
-			
-			@Override
-			public void appendIdFieldAnnotationTo(StringBuilder sb) {
-				sb.append("@Basic").append(CR);
-				sb.append("    @Convert(name=\"foo\")").append(CR);
-				sb.append("    @TypeConverter");
-			}
-		});
-	}
-
-	
-	public EclipseLinkOrmTypeConverterTests(String name) {
-		super(name);
-	}
-	
-	
-	public void testUpdateDataType() throws Exception {
-		createTestEntityWithBasicMapping();
-		
-		OrmPersistentType ormPersistentType = getEntityMappings().addPersistentType(MappingKeys.ENTITY_TYPE_MAPPING_KEY, FULLY_QUALIFIED_TYPE_NAME);
-		OrmPersistentAttribute ormPersistentAttribute = ormPersistentType.addSpecifiedPersistentAttribute(MappingKeys.BASIC_ATTRIBUTE_MAPPING_KEY, "id");
-		OrmBasicMapping ormBasicMapping = (OrmBasicMapping) ormPersistentAttribute.getMapping(); 
-		ormBasicMapping.setSpecifiedConverter(Convert.ECLIPSE_LINK_CONVERTER);
-		((Convert) ormBasicMapping.getConverter()).setConverter(EclipseLinkConverter.TYPE_CONVERTER);
-		TypeConverter ormConverter = (TypeConverter) ((Convert) ormBasicMapping.getConverter()).getConverter();
-		XmlTypeConverter converterResource = ((XmlBasic) getXmlEntityMappings().getEntities().get(0).getAttributes().getBasics().get(0)).getTypeConverter();
-		JavaBasicMapping javaBasicMapping = (JavaBasicMapping) ormPersistentType.getJavaPersistentType().getAttributeNamed("id").getMapping();
-		
-		assertEquals(null, ormConverter.getDataType());
-		assertEquals(null, converterResource.getDataType());
-				
-		//set converter class name in the resource model, verify context model updated
-		converterResource.setDataType("myConvert");
-		assertEquals("myConvert", ormConverter.getDataType());
-		assertEquals("myConvert", converterResource.getDataType());
-
-		//set converter class name to null in the resource model
-		converterResource.setDataType(null);
-		assertEquals(null, ormConverter.getDataType());
-		assertEquals(null, converterResource.getDataType());
-		
-				
-		//remove the specified persistent attribute, test virtual mapping	
-		ormPersistentType.removeSpecifiedPersistentAttribute(ormPersistentAttribute);
-		
-		ormPersistentAttribute = ormPersistentType.virtualAttributes().next();
-		ormBasicMapping = (OrmBasicMapping) ormPersistentAttribute.getMapping();
-		ormConverter = (TypeConverter) ((Convert) ormBasicMapping.getSpecifiedConverter()).getConverter();
-		
-		TypeConverter javaConverter = ((TypeConverter) ((Convert) javaBasicMapping.getSpecifiedConverter()).getConverter());
-		javaConverter.setDataType("bar");
-		assertEquals("bar", ormConverter.getDataType());
-		assertEquals("bar", javaConverter.getDataType());
-		
-		//set metadata-complete, test virtual mapping	
-		ormPersistentType.getMapping().setSpecifiedMetadataComplete(Boolean.TRUE);
-		ormPersistentAttribute = ormPersistentType.virtualAttributes().next();
-		ormBasicMapping = (OrmBasicMapping) ormPersistentAttribute.getMapping();
-		assertEquals(null,  ormBasicMapping.getSpecifiedConverter());
-		assertEquals(org.eclipse.jpt.core.context.Converter.NO_CONVERTER, ormBasicMapping.getConverter().getType());
-		assertEquals("bar", javaConverter.getDataType());
-	}
-	
-	public void testModifyDataType() throws Exception {
-		OrmPersistentType ormPersistentType = getEntityMappings().addPersistentType(MappingKeys.ENTITY_TYPE_MAPPING_KEY, "model.Foo");
-		OrmPersistentAttribute ormPersistentAttribute = ormPersistentType.addSpecifiedPersistentAttribute(MappingKeys.BASIC_ATTRIBUTE_MAPPING_KEY, "basicMapping");
-		OrmBasicMapping ormBasicMapping = ((OrmBasicMapping) ormPersistentAttribute.getMapping()); 
-		ormBasicMapping.setSpecifiedConverter(Convert.ECLIPSE_LINK_CONVERTER);
-		((Convert) ormBasicMapping.getConverter()).setConverter(EclipseLinkConverter.TYPE_CONVERTER);
-		TypeConverter ormConverter = (TypeConverter) ((Convert) ormBasicMapping.getConverter()).getConverter();
-		XmlTypeConverter converterResource = ((XmlBasic) getXmlEntityMappings().getEntities().get(0).getAttributes().getBasics().get(0)).getTypeConverter();
-	
-		assertEquals(null, ormConverter.getDataType());
-		assertEquals(null, converterResource.getDataType());
-				
-		//set converter class in the context model, verify resource model updated
-		ormConverter.setDataType("foo");
-		assertEquals("foo", ormConverter.getDataType());
-		assertEquals("foo", converterResource.getDataType());
-	
-		ormConverter.setDataType(null);
-		assertEquals(null, ormConverter.getDataType());
-		assertEquals(null, converterResource.getDataType());
-	}
-	
-	public void testUpdateObjectType() throws Exception {
-		createTestEntityWithBasicMapping();
-		
-		OrmPersistentType ormPersistentType = getEntityMappings().addPersistentType(MappingKeys.ENTITY_TYPE_MAPPING_KEY, FULLY_QUALIFIED_TYPE_NAME);
-		OrmPersistentAttribute ormPersistentAttribute = ormPersistentType.addSpecifiedPersistentAttribute(MappingKeys.BASIC_ATTRIBUTE_MAPPING_KEY, "id");
-		OrmBasicMapping ormBasicMapping = (OrmBasicMapping) ormPersistentAttribute.getMapping(); 
-		ormBasicMapping.setSpecifiedConverter(Convert.ECLIPSE_LINK_CONVERTER);
-		((Convert) ormBasicMapping.getConverter()).setConverter(EclipseLinkConverter.TYPE_CONVERTER);
-		TypeConverter ormConverter = (TypeConverter) ((Convert) ormBasicMapping.getConverter()).getConverter();
-		XmlTypeConverter converterResource = ((XmlBasic) getXmlEntityMappings().getEntities().get(0).getAttributes().getBasics().get(0)).getTypeConverter();
-		JavaBasicMapping javaBasicMapping = (JavaBasicMapping) ormPersistentType.getJavaPersistentType().getAttributeNamed("id").getMapping();
-		
-		assertEquals(null, ormConverter.getObjectType());
-		assertEquals(null, converterResource.getObjectType());
-				
-		//set converter class name in the resource model, verify context model updated
-		converterResource.setObjectType("myConvert");
-		assertEquals("myConvert", ormConverter.getObjectType());
-		assertEquals("myConvert", converterResource.getObjectType());
-
-		//set converter class name to null in the resource model
-		converterResource.setObjectType(null);
-		assertEquals(null, ormConverter.getObjectType());
-		assertEquals(null, converterResource.getObjectType());
-		
-				
-		//remove the specified persistent attribute, test virtual mapping	
-		ormPersistentType.removeSpecifiedPersistentAttribute(ormPersistentAttribute);
-		
-		ormPersistentAttribute = ormPersistentType.virtualAttributes().next();
-		ormBasicMapping = (OrmBasicMapping) ormPersistentAttribute.getMapping();
-		ormConverter = (TypeConverter) ((Convert) ormBasicMapping.getSpecifiedConverter()).getConverter();
-		
-		TypeConverter javaConverter = ((TypeConverter) ((Convert) javaBasicMapping.getSpecifiedConverter()).getConverter());
-		javaConverter.setObjectType("bar");
-		assertEquals("bar", ormConverter.getObjectType());
-		assertEquals("bar", javaConverter.getObjectType());
-		
-		//set metadata-complete, test virtual mapping	
-		ormPersistentType.getMapping().setSpecifiedMetadataComplete(Boolean.TRUE);
-		ormPersistentAttribute = ormPersistentType.virtualAttributes().next();
-		ormBasicMapping = (OrmBasicMapping) ormPersistentAttribute.getMapping();
-		assertEquals(null,  ormBasicMapping.getSpecifiedConverter());
-		assertEquals(org.eclipse.jpt.core.context.Converter.NO_CONVERTER, ormBasicMapping.getConverter().getType());
-		assertEquals("bar", javaConverter.getObjectType());
-	}
-	
-	public void testModifyObjectType() throws Exception {
-		OrmPersistentType ormPersistentType = getEntityMappings().addPersistentType(MappingKeys.ENTITY_TYPE_MAPPING_KEY, "model.Foo");
-		OrmPersistentAttribute ormPersistentAttribute = ormPersistentType.addSpecifiedPersistentAttribute(MappingKeys.BASIC_ATTRIBUTE_MAPPING_KEY, "basicMapping");
-		OrmBasicMapping ormBasicMapping = ((OrmBasicMapping) ormPersistentAttribute.getMapping()); 
-		ormBasicMapping.setSpecifiedConverter(Convert.ECLIPSE_LINK_CONVERTER);
-		((Convert) ormBasicMapping.getConverter()).setConverter(EclipseLinkConverter.TYPE_CONVERTER);
-		TypeConverter ormConverter = (TypeConverter) ((Convert) ormBasicMapping.getConverter()).getConverter();
-		XmlTypeConverter converterResource = ((XmlBasic) getXmlEntityMappings().getEntities().get(0).getAttributes().getBasics().get(0)).getTypeConverter();
-	
-		assertEquals(null, ormConverter.getObjectType());
-		assertEquals(null, converterResource.getObjectType());
-				
-		//set converter class in the context model, verify resource model updated
-		ormConverter.setObjectType("foo");
-		assertEquals("foo", ormConverter.getObjectType());
-		assertEquals("foo", converterResource.getObjectType());
-	
-		ormConverter.setObjectType(null);
-		assertEquals(null, ormConverter.getObjectType());
-		assertEquals(null, converterResource.getObjectType());
-	}
-	
-	public void testUpdateName() throws Exception {
-		createTestEntityWithBasicMapping();
-		
-		OrmPersistentType ormPersistentType = getEntityMappings().addPersistentType(MappingKeys.ENTITY_TYPE_MAPPING_KEY, FULLY_QUALIFIED_TYPE_NAME);
-		OrmPersistentAttribute ormPersistentAttribute = ormPersistentType.addSpecifiedPersistentAttribute(MappingKeys.BASIC_ATTRIBUTE_MAPPING_KEY, "id");
-		OrmBasicMapping ormBasicMapping = ((OrmBasicMapping) ormPersistentAttribute.getMapping()); 
-		ormBasicMapping.setSpecifiedConverter(Convert.ECLIPSE_LINK_CONVERTER);
-		((Convert) ormBasicMapping.getConverter()).setConverter(EclipseLinkConverter.TYPE_CONVERTER);
-		EclipseLinkOrmTypeConverter ormConverter = (EclipseLinkOrmTypeConverter) ((Convert) ormBasicMapping.getConverter()).getConverter();
-		XmlTypeConverter converterResource = ((XmlBasic) getXmlEntityMappings().getEntities().get(0).getAttributes().getBasics().get(0)).getTypeConverter();
-		JavaBasicMapping javaBasicMapping = (JavaBasicMapping) ormPersistentType.getJavaPersistentType().getAttributeNamed("id").getMapping();
-		
-		assertEquals(null, ormConverter.getName());
-		assertEquals(null, converterResource.getName());
-				
-		//set converter class name in the resource model, verify context model updated
-		converterResource.setName("myConvert");
-		assertEquals("myConvert", ormConverter.getName());
-		assertEquals("myConvert", converterResource.getName());
-
-		//set converter class name to null in the resource model
-		converterResource.setName(null);
-		assertEquals(null, ormConverter.getName());
-		assertEquals(null, converterResource.getName());
-		
-
-		//remove the specified persistent attribute, test virtual mapping	
-				
-		ormPersistentType.removeSpecifiedPersistentAttribute(ormPersistentAttribute);
-		
-		ormPersistentAttribute = ormPersistentType.virtualAttributes().next();
-		ormBasicMapping = (OrmBasicMapping) ormPersistentAttribute.getMapping();
-		ormConverter = (EclipseLinkOrmTypeConverter) ((Convert) ormBasicMapping.getSpecifiedConverter()).getConverter();
-		
-		TypeConverter javaConverter = ((TypeConverter) ((Convert) javaBasicMapping.getSpecifiedConverter()).getConverter());
-		javaConverter.setName("bar");
-		assertEquals("bar", ormConverter.getName());
-		assertEquals("bar", javaConverter.getName());
-		
-		
-		//set metadata-complete, test virtual mapping
-		
-		ormPersistentType.getMapping().setSpecifiedMetadataComplete(Boolean.TRUE);
-		ormPersistentAttribute = ormPersistentType.virtualAttributes().next();
-		ormBasicMapping = (OrmBasicMapping) ormPersistentAttribute.getMapping();
-		assertEquals(null,  ormBasicMapping.getSpecifiedConverter());
-		assertEquals(org.eclipse.jpt.core.context.Converter.NO_CONVERTER, ormBasicMapping.getConverter().getType());
-		assertEquals("bar", javaConverter.getName());
-	}
-	
-	public void testModifyName() throws Exception {
-		OrmPersistentType ormPersistentType = getEntityMappings().addPersistentType(MappingKeys.ENTITY_TYPE_MAPPING_KEY, "model.Foo");
-		OrmPersistentAttribute ormPersistentAttribute = ormPersistentType.addSpecifiedPersistentAttribute(MappingKeys.BASIC_ATTRIBUTE_MAPPING_KEY, "basicMapping");
-		OrmBasicMapping ormBasicMapping = ((OrmBasicMapping) ormPersistentAttribute.getMapping()); 
-		ormBasicMapping.setSpecifiedConverter(Convert.ECLIPSE_LINK_CONVERTER);
-		((Convert) ormBasicMapping.getConverter()).setConverter(EclipseLinkConverter.TYPE_CONVERTER);
-		EclipseLinkOrmTypeConverter ormConverter = (EclipseLinkOrmTypeConverter) ((Convert) ormBasicMapping.getConverter()).getConverter();
-		XmlTypeConverter converterResource = ((XmlBasic) getXmlEntityMappings().getEntities().get(0).getAttributes().getBasics().get(0)).getTypeConverter();
-	
-		assertEquals(null, ormConverter.getName());
-		assertEquals(null, converterResource.getName());
-				
-		//set converter class in the context model, verify resource model updated
-		ormConverter.setName("foo");
-		assertEquals("foo", ormConverter.getName());
-		assertEquals("foo", converterResource.getName());
-	
-		ormConverter.setName(null);
-		assertEquals(null, ormConverter.getName());
-		assertEquals(null, converterResource.getName());
-	}
-}
diff --git a/jpa/tests/org.eclipse.jpt.eclipselink.core.tests/src/org/eclipse/jpt/eclipselink/core/tests/internal/context/orm/EclipseLinkOrmVersionMappingTests.java b/jpa/tests/org.eclipse.jpt.eclipselink.core.tests/src/org/eclipse/jpt/eclipselink/core/tests/internal/context/orm/EclipseLinkOrmVersionMappingTests.java
deleted file mode 100644
index f21ca8c..0000000
--- a/jpa/tests/org.eclipse.jpt.eclipselink.core.tests/src/org/eclipse/jpt/eclipselink/core/tests/internal/context/orm/EclipseLinkOrmVersionMappingTests.java
+++ /dev/null
@@ -1,388 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008, 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- *******************************************************************************/
-package org.eclipse.jpt.eclipselink.core.tests.internal.context.orm;
-
-import java.util.Iterator;
-import org.eclipse.jdt.core.ICompilationUnit;
-import org.eclipse.jpt.core.MappingKeys;
-import org.eclipse.jpt.core.context.Converter;
-import org.eclipse.jpt.core.context.java.JavaVersionMapping;
-import org.eclipse.jpt.core.context.orm.OrmPersistentAttribute;
-import org.eclipse.jpt.core.context.orm.OrmPersistentType;
-import org.eclipse.jpt.core.context.orm.OrmVersionMapping;
-import org.eclipse.jpt.core.resource.java.JPA;
-import org.eclipse.jpt.eclipselink.core.context.Convert;
-import org.eclipse.jpt.eclipselink.core.context.EclipseLinkVersionMapping;
-import org.eclipse.jpt.eclipselink.core.internal.context.orm.EclipseLinkOrmBasicMapping;
-import org.eclipse.jpt.eclipselink.core.internal.context.orm.EclipseLinkOrmVersionMapping;
-import org.eclipse.jpt.eclipselink.core.resource.java.EclipseLinkJPA;
-import org.eclipse.jpt.eclipselink.core.resource.orm.XmlEntity;
-import org.eclipse.jpt.eclipselink.core.resource.orm.XmlVersion;
-import org.eclipse.jpt.utility.internal.iterators.ArrayIterator;
-
-@SuppressWarnings("nls")
-public class EclipseLinkOrmVersionMappingTests
-	extends EclipseLinkOrmContextModelTestCase
-{
-	public EclipseLinkOrmVersionMappingTests(String name) {
-		super(name);
-	}
-	
-	private ICompilationUnit createTestEntityWithVersionMapping() throws Exception {
-		return this.createTestType(new DefaultAnnotationWriter() {
-			@Override
-			public Iterator<String> imports() {
-				return new ArrayIterator<String>(JPA.ENTITY, JPA.VERSION);
-			}
-			@Override
-			public void appendTypeAnnotationTo(StringBuilder sb) {
-				sb.append("@Entity").append(CR);
-			}
-			
-			@Override
-			public void appendIdFieldAnnotationTo(StringBuilder sb) {
-				sb.append("@Version").append(CR);
-			}
-		});
-	}
-	
-	private ICompilationUnit createTestEntityWithMutableVersionDate() throws Exception {
-		return this.createTestType(new DefaultAnnotationWriter() {
-			@Override
-			public Iterator<String> imports() {
-				return new ArrayIterator<String>(JPA.ENTITY, JPA.VERSION, EclipseLinkJPA.MUTABLE, "java.util.Date");
-			}
-			@Override
-			public void appendTypeAnnotationTo(StringBuilder sb) {
-				sb.append("@Entity").append(CR);
-			}
-			
-			@Override
-			public void appendIdFieldAnnotationTo(StringBuilder sb) {
-				sb.append("@Version").append(CR);
-				sb.append("    @Mutable").append(CR);
-				sb.append("    private Date myDate;").append(CR);
-				sb.append(CR);
-				sb.append("    ");
-			}
-		});
-	}
-	
-	public void testUpdateMutable() throws Exception {
-		createTestEntityWithVersionMapping();
-		OrmPersistentType ormPersistentType = 
-			getEntityMappings().addPersistentType(MappingKeys.ENTITY_TYPE_MAPPING_KEY, FULLY_QUALIFIED_TYPE_NAME);
-		OrmPersistentAttribute ormPersistentAttribute =
-			ormPersistentType.addSpecifiedPersistentAttribute(MappingKeys.VERSION_ATTRIBUTE_MAPPING_KEY, "id");
-		EclipseLinkOrmVersionMapping contextVersion = 
-			(EclipseLinkOrmVersionMapping) ormPersistentAttribute.getMapping();
-		XmlEntity resourceEntity = 
-			(XmlEntity)getXmlEntityMappings().getEntities().get(0);
-		XmlVersion resourceVersion = 
-			(XmlVersion) resourceEntity.getAttributes().getVersions().get(0);
-		EclipseLinkVersionMapping javaVersionMapping = (EclipseLinkVersionMapping) ormPersistentType.getJavaPersistentType().getAttributeNamed("id").getMapping();
-		
-		// check defaults
-		
-		assertNull(resourceVersion.getMutable());
-		assertTrue(contextVersion.getMutable().isDefaultMutable());
-		assertNull(contextVersion.getMutable().getSpecifiedMutable());
-		assertTrue(contextVersion.getMutable().isMutable());
-		
-		// set xml mutable to false, check context
-		
-		resourceVersion.setMutable(Boolean.FALSE);
-		
-		assertEquals(Boolean.FALSE, resourceVersion.getMutable());
-		assertTrue(contextVersion.getMutable().isDefaultMutable());
-		assertEquals(Boolean.FALSE, contextVersion.getMutable().getSpecifiedMutable());
-		assertFalse(contextVersion.getMutable().isMutable());
-		
-		// set xml mutable to true, check context
-		
-		resourceVersion.setMutable(Boolean.TRUE);
-		
-		assertEquals(Boolean.TRUE, resourceVersion.getMutable());
-		assertTrue(contextVersion.getMutable().isDefaultMutable());
-		assertEquals(Boolean.TRUE, contextVersion.getMutable().getSpecifiedMutable());
-		assertTrue(contextVersion.getMutable().isMutable());
-		
-		// clear xml mutable, check context
-		
-		resourceVersion.setMutable(null);
-		
-		assertNull(resourceVersion.getMutable());
-		assertTrue(contextVersion.getMutable().isDefaultMutable());
-		assertNull(contextVersion.getMutable().getSpecifiedMutable());
-		assertTrue(contextVersion.getMutable().isMutable());
-		
-		// TODO - test defaults for java serializable and date/time types, 
-		// with and without persistence property
-		
-		// set mutable on java basic mapping
-		
-		javaVersionMapping.getMutable().setSpecifiedMutable(Boolean.FALSE);
-		assertNull(resourceVersion.getMutable());
-		assertTrue(contextVersion.getMutable().isDefaultMutable());
-		assertNull(contextVersion.getMutable().getSpecifiedMutable());
-		assertTrue(contextVersion.getMutable().isMutable());
-		assertFalse(javaVersionMapping.getMutable().isMutable());
-		
-		// remove attribute from xml, test default mutable from java
-		
-		ormPersistentType.removeSpecifiedPersistentAttribute(ormPersistentAttribute);
-		ormPersistentAttribute = ormPersistentType.virtualAttributes().next();
-		contextVersion = (EclipseLinkOrmVersionMapping) ormPersistentAttribute.getMapping();
-		
-		assertNull(resourceVersion.getMutable());
-		assertTrue(contextVersion.getMutable().isDefaultMutable());
-		assertEquals(Boolean.FALSE, contextVersion.getMutable().getSpecifiedMutable());
-		assertFalse(contextVersion.getMutable().isMutable());
-		assertFalse(javaVersionMapping.getMutable().isMutable());
-		
-		// set metadata complete
-		ormPersistentType.getMapping().setSpecifiedMetadataComplete(Boolean.TRUE);
-		ormPersistentAttribute = ormPersistentType.virtualAttributes().next();
-		EclipseLinkOrmBasicMapping contextBasic = (EclipseLinkOrmBasicMapping) ormPersistentAttribute.getMapping();
-		assertNull(resourceVersion.getMutable());
-		assertTrue(contextBasic.getMutable().isDefaultMutable());
-		assertEquals(Boolean.TRUE, contextBasic.getMutable().getSpecifiedMutable());
-		assertTrue(contextBasic.getMutable().isMutable());
-		assertFalse(javaVersionMapping.getMutable().isMutable());
-	}
-	
-	public void testUpdateMutableDate() throws Exception {
-		createTestEntityWithMutableVersionDate();
-		OrmPersistentType ormPersistentType = 
-			getEntityMappings().addPersistentType(MappingKeys.ENTITY_TYPE_MAPPING_KEY, FULLY_QUALIFIED_TYPE_NAME);
-		OrmPersistentAttribute ormPersistentAttribute =
-			ormPersistentType.addSpecifiedPersistentAttribute(MappingKeys.VERSION_ATTRIBUTE_MAPPING_KEY, "myDate");
-		EclipseLinkOrmVersionMapping contextVersion = 
-			(EclipseLinkOrmVersionMapping) ormPersistentAttribute.getMapping();
-		XmlEntity resourceEntity = 
-			(XmlEntity)getXmlEntityMappings().getEntities().get(0);
-		XmlVersion resourceVersion = 
-			(XmlVersion) resourceEntity.getAttributes().getVersions().get(0);
-		EclipseLinkVersionMapping javaVersionMapping = (EclipseLinkVersionMapping) ormPersistentType.getJavaPersistentType().getAttributeNamed("myDate").getMapping();
-		
-		// check defaults
-		
-		assertNull(resourceVersion.getMutable());
-		assertFalse(contextVersion.getMutable().isDefaultMutable());
-		assertNull(contextVersion.getMutable().getSpecifiedMutable());
-		assertFalse(contextVersion.getMutable().isMutable());
-		
-		// set xml mutable to false, check context
-		
-		resourceVersion.setMutable(Boolean.FALSE);
-		
-		assertEquals(Boolean.FALSE, resourceVersion.getMutable());
-		assertFalse(contextVersion.getMutable().isDefaultMutable());
-		assertEquals(Boolean.FALSE, contextVersion.getMutable().getSpecifiedMutable());
-		assertFalse(contextVersion.getMutable().isMutable());
-		
-		// set xml mutable to true, check context
-		
-		resourceVersion.setMutable(Boolean.TRUE);
-		
-		assertEquals(Boolean.TRUE, resourceVersion.getMutable());
-		assertFalse(contextVersion.getMutable().isDefaultMutable());
-		assertEquals(Boolean.TRUE, contextVersion.getMutable().getSpecifiedMutable());
-		assertTrue(contextVersion.getMutable().isMutable());
-		
-		// clear xml mutable, check context
-		
-		resourceVersion.setMutable(null);
-		
-		assertNull(resourceVersion.getMutable());
-		assertFalse(contextVersion.getMutable().isDefaultMutable());
-		assertNull(contextVersion.getMutable().getSpecifiedMutable());
-		assertFalse(contextVersion.getMutable().isMutable());
-		
-		
-		getPersistenceUnit().getOptions().setTemporalMutable(Boolean.TRUE);
-		assertNull(resourceVersion.getMutable());
-		assertTrue(contextVersion.getMutable().isDefaultMutable());
-		assertNull(contextVersion.getMutable().getSpecifiedMutable());
-		assertTrue(contextVersion.getMutable().isMutable());
-		
-		getPersistenceUnit().getOptions().setTemporalMutable(Boolean.FALSE);
-		assertNull(resourceVersion.getMutable());
-		assertFalse(contextVersion.getMutable().isDefaultMutable());
-		assertNull(contextVersion.getMutable().getSpecifiedMutable());
-		assertFalse(contextVersion.getMutable().isMutable());
-		
-		getPersistenceUnit().getOptions().setTemporalMutable(null);
-		assertNull(resourceVersion.getMutable());
-		assertFalse(contextVersion.getMutable().isDefaultMutable());
-		assertNull(contextVersion.getMutable().getSpecifiedMutable());
-		assertFalse(contextVersion.getMutable().isMutable());
-		
-		// set mutable on java version mapping
-		
-		javaVersionMapping.getMutable().setSpecifiedMutable(Boolean.TRUE);
-		assertNull(resourceVersion.getMutable());
-		assertFalse(contextVersion.getMutable().isDefaultMutable());
-		assertNull(contextVersion.getMutable().getSpecifiedMutable());
-		assertFalse(contextVersion.getMutable().isMutable());
-		assertTrue(javaVersionMapping.getMutable().isMutable());
-		
-		// remove attribute from xml, test default mutable from java
-		
-		ormPersistentType.removeSpecifiedPersistentAttribute(ormPersistentAttribute);
-		ormPersistentAttribute = ormPersistentType.virtualAttributes().next();
-		contextVersion = (EclipseLinkOrmVersionMapping) ormPersistentAttribute.getMapping();
-		
-		assertNull(resourceVersion.getMutable());
-		assertFalse(contextVersion.getMutable().isDefaultMutable());
-		assertEquals(Boolean.TRUE, contextVersion.getMutable().getSpecifiedMutable());
-		assertTrue(contextVersion.getMutable().isMutable());
-		assertTrue(javaVersionMapping.getMutable().isMutable());
-		
-		// set metadata complete
-		ormPersistentType.getMapping().setSpecifiedMetadataComplete(Boolean.TRUE);
-		ormPersistentAttribute = ormPersistentType.virtualAttributes().next();
-		EclipseLinkOrmBasicMapping contextBasic = (EclipseLinkOrmBasicMapping) ormPersistentAttribute.getMapping();
-		assertNull(resourceVersion.getMutable());
-		assertFalse(contextBasic.getMutable().isDefaultMutable());
-		assertEquals(Boolean.FALSE, contextBasic.getMutable().getSpecifiedMutable());
-		assertFalse(contextBasic.getMutable().isMutable());
-		assertTrue(javaVersionMapping.getMutable().isMutable());
-	}
-	
-	public void testModifyMutable() throws Exception {
-		OrmPersistentType ormPersistentType = 
-			getEntityMappings().addPersistentType(MappingKeys.ENTITY_TYPE_MAPPING_KEY, FULLY_QUALIFIED_TYPE_NAME);
-		OrmPersistentAttribute ormPersistentAttribute =
-			ormPersistentType.addSpecifiedPersistentAttribute(MappingKeys.VERSION_ATTRIBUTE_MAPPING_KEY, "basic");
-		EclipseLinkOrmVersionMapping contextVersion = 
-			(EclipseLinkOrmVersionMapping) ormPersistentAttribute.getMapping();
-		XmlEntity resourceEntity = 
-			(XmlEntity)getXmlEntityMappings().getEntities().get(0);
-		XmlVersion resourceVersion = 
-			(XmlVersion) resourceEntity.getAttributes().getVersions().get(0);
-		
-		// check defaults
-		
-		assertNull(resourceVersion.getMutable());
-		assertFalse(contextVersion.getMutable().isDefaultMutable());
-		assertNull(contextVersion.getMutable().getSpecifiedMutable());
-		assertFalse(contextVersion.getMutable().isMutable());
-		
-		// set context mutable to true, check resource
-		
-		contextVersion.getMutable().setSpecifiedMutable(Boolean.TRUE);
-		
-		assertEquals(Boolean.TRUE, resourceVersion.getMutable());
-		assertFalse(contextVersion.getMutable().isDefaultMutable());
-		assertEquals(Boolean.TRUE, contextVersion.getMutable().getSpecifiedMutable());
-		assertTrue(contextVersion.getMutable().isMutable());
-		
-		// set context mutable to false, check resource
-		
-		contextVersion.getMutable().setSpecifiedMutable(Boolean.FALSE);
-		
-		assertEquals(Boolean.FALSE, resourceVersion.getMutable());
-		assertFalse(contextVersion.getMutable().isDefaultMutable());
-		assertEquals(Boolean.FALSE, contextVersion.getMutable().getSpecifiedMutable());
-		assertFalse(contextVersion.getMutable().isMutable());
-		
-		// set context read only to null, check resource
-		
-		contextVersion.getMutable().setSpecifiedMutable(null);
-		
-		assertNull(resourceVersion.getMutable());
-		assertFalse(contextVersion.getMutable().isDefaultMutable());
-		assertNull(contextVersion.getMutable().getSpecifiedMutable());
-		assertFalse(contextVersion.getMutable().isMutable());
-	}
-	
-	public void testUpdateConvert() throws Exception {
-		createTestEntityWithVersionMapping();
-		
-		OrmPersistentType ormPersistentType = getEntityMappings().addPersistentType(MappingKeys.ENTITY_TYPE_MAPPING_KEY, FULLY_QUALIFIED_TYPE_NAME);
-		OrmPersistentAttribute ormPersistentAttribute = ormPersistentType.addSpecifiedPersistentAttribute(MappingKeys.VERSION_ATTRIBUTE_MAPPING_KEY, "id");
-		OrmVersionMapping ormVersionMapping = (OrmVersionMapping) ormPersistentAttribute.getMapping();
-		XmlVersion basicResource = (XmlVersion) getXmlEntityMappings().getEntities().get(0).getAttributes().getVersions().get(0);
-		JavaVersionMapping javaVersionMapping = (JavaVersionMapping) ormPersistentType.getJavaPersistentType().getAttributeNamed("id").getMapping();
-		
-		assertEquals(null, ormVersionMapping.getSpecifiedConverter());
-		assertEquals(null, basicResource.getConvert());
-				
-		//set lob in the resource model, verify context model updated
-		basicResource.setConvert("myConvert");
-		assertEquals(Convert.ECLIPSE_LINK_CONVERTER, ormVersionMapping.getConverter().getType());
-		assertEquals("myConvert", basicResource.getConvert());
-
-		//set lob to null in the resource model
-		basicResource.setConvert(null);
-		assertEquals(null, ormVersionMapping.getSpecifiedConverter());
-		assertEquals(null, basicResource.getConvert());
-		
-		
-		javaVersionMapping.setSpecifiedConverter(Convert.ECLIPSE_LINK_CONVERTER);
-		((Convert) javaVersionMapping.getSpecifiedConverter()).setSpecifiedConverterName("foo");
-		
-		assertEquals(null, ormVersionMapping.getSpecifiedConverter());
-		assertEquals(null, basicResource.getConvert());
-		assertEquals("foo", ((Convert) javaVersionMapping.getSpecifiedConverter()).getSpecifiedConverterName());
-		
-		
-		ormPersistentType.removeSpecifiedPersistentAttribute(ormPersistentAttribute);
-		ormPersistentAttribute = ormPersistentType.virtualAttributes().next();
-		ormVersionMapping = (OrmVersionMapping) ormPersistentAttribute.getMapping();
-		
-		assertEquals(Convert.ECLIPSE_LINK_CONVERTER, ormVersionMapping.getSpecifiedConverter().getType());
-		assertEquals("foo", ((Convert) ormVersionMapping.getSpecifiedConverter()).getSpecifiedConverterName());
-		assertEquals(null, basicResource.getConvert());
-		assertEquals("foo", ((Convert) javaVersionMapping.getSpecifiedConverter()).getSpecifiedConverterName());
-		
-		((Convert) javaVersionMapping.getSpecifiedConverter()).setSpecifiedConverterName("bar");
-		assertEquals(Convert.ECLIPSE_LINK_CONVERTER, ormVersionMapping.getSpecifiedConverter().getType());
-		assertEquals("bar", ((Convert) ormVersionMapping.getSpecifiedConverter()).getSpecifiedConverterName());
-		assertEquals(null, basicResource.getConvert());
-		assertEquals("bar", ((Convert) javaVersionMapping.getSpecifiedConverter()).getSpecifiedConverterName());
-
-		javaVersionMapping.setSpecifiedConverter(Converter.NO_CONVERTER);
-		assertEquals(null, ormVersionMapping.getSpecifiedConverter());
-		assertEquals(null, basicResource.getConvert());
-		assertEquals(null, javaVersionMapping.getSpecifiedConverter());
-	}
-	
-	public void testModifyConvert() throws Exception {
-		OrmPersistentType ormPersistentType = getEntityMappings().addPersistentType(MappingKeys.ENTITY_TYPE_MAPPING_KEY, "model.Foo");
-		OrmPersistentAttribute ormPersistentAttribute = ormPersistentType.addSpecifiedPersistentAttribute(MappingKeys.VERSION_ATTRIBUTE_MAPPING_KEY, "basicMapping");
-		OrmVersionMapping ormVersionMapping = (OrmVersionMapping) ormPersistentAttribute.getMapping();
-		XmlVersion basicResource = (XmlVersion) getXmlEntityMappings().getEntities().get(0).getAttributes().getVersions().get(0);
-	
-		assertEquals(null, ormVersionMapping.getSpecifiedConverter());
-		assertEquals(null, basicResource.getConvert());
-				
-		//set lob in the context model, verify resource model updated
-		ormVersionMapping.setSpecifiedConverter(Convert.ECLIPSE_LINK_CONVERTER);
-		assertEquals("", basicResource.getConvert());
-		assertEquals(Convert.ECLIPSE_LINK_CONVERTER, ormVersionMapping.getConverter().getType());
-	
-		((Convert) ormVersionMapping.getSpecifiedConverter()).setSpecifiedConverterName("bar");
-		assertEquals("bar", basicResource.getConvert());
-		assertEquals(Convert.ECLIPSE_LINK_CONVERTER, ormVersionMapping.getConverter().getType());
-		assertEquals("bar", ((Convert) ormVersionMapping.getConverter()).getSpecifiedConverterName());
-
-		((Convert) ormVersionMapping.getSpecifiedConverter()).setSpecifiedConverterName(null);
-
-		assertEquals(null, ormVersionMapping.getSpecifiedConverter());
-		assertEquals(null, basicResource.getConvert());
-
-		//set lob to false in the context model
-		ormVersionMapping.setSpecifiedConverter(null);
-		assertEquals(null, ormVersionMapping.getSpecifiedConverter());
-		assertEquals(null, basicResource.getConvert());
-	}
-}
diff --git a/jpa/tests/org.eclipse.jpt.eclipselink.core.tests/src/org/eclipse/jpt/eclipselink/core/tests/internal/context/orm/EclipseLinkPersistenceUnitDefaultsTests.java b/jpa/tests/org.eclipse.jpt.eclipselink.core.tests/src/org/eclipse/jpt/eclipselink/core/tests/internal/context/orm/EclipseLinkPersistenceUnitDefaultsTests.java
deleted file mode 100644
index a867a06..0000000
--- a/jpa/tests/org.eclipse.jpt.eclipselink.core.tests/src/org/eclipse/jpt/eclipselink/core/tests/internal/context/orm/EclipseLinkPersistenceUnitDefaultsTests.java
+++ /dev/null
@@ -1,369 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.eclipselink.core.tests.internal.context.orm;
-
-import org.eclipse.jpt.core.context.AccessType;
-import org.eclipse.jpt.core.context.orm.OrmPersistenceUnitDefaults;
-import org.eclipse.jpt.core.resource.orm.OrmFactory;
-import org.eclipse.jpt.core.resource.orm.XmlPersistenceUnitMetadata;
-import org.eclipse.jpt.core.resource.persistence.PersistenceFactory;
-import org.eclipse.jpt.core.resource.persistence.XmlMappingFileRef;
-import org.eclipse.jpt.eclipselink.core.internal.JptEclipseLinkCorePlugin;
-import org.eclipse.jpt.eclipselink.core.resource.orm.EclipseLinkOrmFactory;
-
-@SuppressWarnings("nls")
-public class EclipseLinkPersistenceUnitDefaultsTests extends EclipseLinkOrmContextModelTestCase
-{
-	public EclipseLinkPersistenceUnitDefaultsTests(String name) {
-		super(name);
-	}
-	
-	
-	@Override
-	protected void setUp() throws Exception {
-		super.setUp();
-		XmlMappingFileRef mappingFileRef = PersistenceFactory.eINSTANCE.createXmlMappingFileRef();
-		mappingFileRef.setFileName(JptEclipseLinkCorePlugin.DEFAULT_ECLIPSELINK_ORM_XML_FILE_PATH);
-		getXmlPersistenceUnit().getMappingFiles().add(mappingFileRef);
-		getPersistenceXmlResource().save(null);
-	}
-	
-	protected OrmPersistenceUnitDefaults persistenceUnitDefaults() {
-		return getEntityMappings().getPersistenceUnitMetadata().getPersistenceUnitDefaults();
-	}
-	
-	public void testIsAllFeaturesUnset() throws Exception {
-		OrmPersistenceUnitDefaults persistenceUnitDefaults = persistenceUnitDefaults();
-		assertNull(persistenceUnitDefaults.getAccess());
-		assertNull(getXmlEntityMappings().getPersistenceUnitMetadata());
-		
-		XmlPersistenceUnitMetadata persistenceUnitMetadata = EclipseLinkOrmFactory.eINSTANCE.createXmlPersistenceUnitMetadata();
-		getXmlEntityMappings().setPersistenceUnitMetadata(persistenceUnitMetadata);
-		assertTrue(persistenceUnitMetadata.isUnset());
-		
-		org.eclipse.jpt.core.resource.orm.XmlPersistenceUnitDefaults persistenceUnitDefaultsResource = OrmFactory.eINSTANCE.createXmlPersistenceUnitDefaults();
-		persistenceUnitMetadata.setPersistenceUnitDefaults(persistenceUnitDefaultsResource);
-		assertTrue(persistenceUnitDefaultsResource.isUnset());
-		
-		persistenceUnitDefaultsResource.setCascadePersist(true);
-		assertFalse(persistenceUnitDefaultsResource.isUnset());
-		
-		persistenceUnitDefaultsResource.setCascadePersist(false);
-		assertTrue(persistenceUnitDefaultsResource.isUnset());
-		
-		persistenceUnitDefaultsResource.setSchema("asdf");
-		assertFalse(persistenceUnitDefaultsResource.isUnset());
-		
-		persistenceUnitDefaultsResource.setSchema(null);
-		assertTrue(persistenceUnitDefaultsResource.isUnset());
-		
-		persistenceUnitDefaultsResource.setCatalog("asdf");
-		assertFalse(persistenceUnitDefaultsResource.isUnset());
-		
-		persistenceUnitDefaultsResource.setCatalog(null);
-		assertTrue(persistenceUnitDefaultsResource.isUnset());
-		
-		
-		persistenceUnitDefaultsResource.setAccess(org.eclipse.jpt.core.resource.orm.AccessType.PROPERTY);
-		assertFalse(persistenceUnitDefaultsResource.isUnset());
-		
-		persistenceUnitDefaultsResource.setAccess(org.eclipse.jpt.core.resource.orm.AccessType.FIELD);
-		assertFalse(persistenceUnitDefaultsResource.isUnset());
-		
-		persistenceUnitDefaultsResource.setAccess(null);
-		assertTrue(persistenceUnitDefaultsResource.isUnset());
-	}
-
-	public void testUpdateSchema() throws Exception {
-		OrmPersistenceUnitDefaults persistenceUnitDefaults = persistenceUnitDefaults();
-		assertNull(persistenceUnitDefaults.getSchema());
-		assertNull(getXmlEntityMappings().getPersistenceUnitMetadata());
-		
-		//set schema in the resource model, verify context model updated
-		getXmlEntityMappings().setPersistenceUnitMetadata(EclipseLinkOrmFactory.eINSTANCE.createXmlPersistenceUnitMetadata());
-		getXmlEntityMappings().getPersistenceUnitMetadata().setPersistenceUnitDefaults(OrmFactory.eINSTANCE.createXmlPersistenceUnitDefaults());
-		getXmlEntityMappings().getPersistenceUnitMetadata().getPersistenceUnitDefaults().setSchema("MY_SCHEMA");
-		assertEquals("MY_SCHEMA", persistenceUnitDefaults.getSchema());
-		assertEquals("MY_SCHEMA", getXmlEntityMappings().getPersistenceUnitMetadata().getPersistenceUnitDefaults().getSchema());
-	
-		//set schema to null in the resource model
-		getXmlEntityMappings().getPersistenceUnitMetadata().getPersistenceUnitDefaults().setSchema(null);
-		assertNull(persistenceUnitDefaults.getSchema());
-		assertNull(getXmlEntityMappings().getPersistenceUnitMetadata().getPersistenceUnitDefaults().getSchema());
-	}
-	
-	public void testModifySchema() throws Exception {		
-		OrmPersistenceUnitDefaults persistenceUnitDefaults = persistenceUnitDefaults();
-		assertNull(persistenceUnitDefaults.getSchema());
-		assertNull(getXmlEntityMappings().getPersistenceUnitMetadata());
-		
-		//set schema in the context model, verify resource model modified
-		persistenceUnitDefaults.setSpecifiedSchema("MY_SCHEMA");
-		assertEquals("MY_SCHEMA", persistenceUnitDefaults.getSchema());
-		assertEquals("MY_SCHEMA", getXmlEntityMappings().getPersistenceUnitMetadata().getPersistenceUnitDefaults().getSchema());
-		
-		//set schema to null in the context model
-		persistenceUnitDefaults.setSpecifiedSchema(null);
-		assertNull(persistenceUnitDefaults.getSchema());
-		assertNull(getXmlEntityMappings().getPersistenceUnitMetadata());
-	}
-	
-	public void testModifySchema2() throws Exception {
-		OrmPersistenceUnitDefaults persistenceUnitDefaults = persistenceUnitDefaults();
-		assertNull(persistenceUnitDefaults.getSchema());
-		assertNull(getXmlEntityMappings().getPersistenceUnitMetadata());
-		
-		//set schema in the context model, verify resource model modified
-		persistenceUnitDefaults.setSpecifiedSchema("MY_SCHEMA");
-		assertEquals("MY_SCHEMA", persistenceUnitDefaults.getSchema());
-		assertEquals("MY_SCHEMA", getXmlEntityMappings().getPersistenceUnitMetadata().getPersistenceUnitDefaults().getSchema());
-		
-		//set another element on the persistence-unit-defaults element so it doesn't get removed
-		getXmlEntityMappings().getPersistenceUnitMetadata().getPersistenceUnitDefaults().setCatalog("MY_CATALOG");
-		//set schema to null in the context model
-		persistenceUnitDefaults.setSpecifiedSchema(null);
-		assertNull(persistenceUnitDefaults.getSchema());
-		assertNull(getXmlEntityMappings().getPersistenceUnitMetadata().getPersistenceUnitDefaults().getSchema());
-	}
-	
-	public void testModifySchema3() throws Exception {
-		OrmPersistenceUnitDefaults persistenceUnitDefaults = persistenceUnitDefaults();
-		assertNull(persistenceUnitDefaults.getSchema());
-		assertNull(getXmlEntityMappings().getPersistenceUnitMetadata());
-		//set another element on the persistence-unit-metadata element so only persistence-unit-defaults element gets removed
-		getXmlEntityMappings().setPersistenceUnitMetadata(EclipseLinkOrmFactory.eINSTANCE.createXmlPersistenceUnitMetadata());
-		getXmlEntityMappings().getPersistenceUnitMetadata().setXmlMappingMetadataComplete(true);
-		
-		//set schema in the context model, verify resource model modified
-		persistenceUnitDefaults.setSpecifiedSchema("MY_SCHEMA");
-		assertEquals("MY_SCHEMA", persistenceUnitDefaults.getSchema());
-		assertEquals("MY_SCHEMA", getXmlEntityMappings().getPersistenceUnitMetadata().getPersistenceUnitDefaults().getSchema());
-		
-		//set schema to null in the context model
-		persistenceUnitDefaults.setSpecifiedSchema(null);
-		assertNull(persistenceUnitDefaults.getSchema());
-		assertNull(getXmlEntityMappings().getPersistenceUnitMetadata().getPersistenceUnitDefaults());
-	}
-	
-	public void testUpdateCatalog() throws Exception {
-		OrmPersistenceUnitDefaults persistenceUnitDefaults = persistenceUnitDefaults();
-		assertNull(persistenceUnitDefaults.getCatalog());
-		assertNull(getXmlEntityMappings().getPersistenceUnitMetadata());
-		
-		//set catalog in the resource model, verify context model updated
-		getXmlEntityMappings().setPersistenceUnitMetadata(EclipseLinkOrmFactory.eINSTANCE.createXmlPersistenceUnitMetadata());
-		getXmlEntityMappings().getPersistenceUnitMetadata().setPersistenceUnitDefaults(OrmFactory.eINSTANCE.createXmlPersistenceUnitDefaults());
-		getXmlEntityMappings().getPersistenceUnitMetadata().getPersistenceUnitDefaults().setCatalog("MY_CATALOG");
-		assertEquals("MY_CATALOG", persistenceUnitDefaults.getCatalog());
-		assertEquals("MY_CATALOG", getXmlEntityMappings().getPersistenceUnitMetadata().getPersistenceUnitDefaults().getCatalog());
-	
-		//set catalog to null in the resource model
-		getXmlEntityMappings().getPersistenceUnitMetadata().getPersistenceUnitDefaults().setCatalog(null);
-		assertNull(persistenceUnitDefaults.getCatalog());
-		assertNull(getXmlEntityMappings().getPersistenceUnitMetadata().getPersistenceUnitDefaults().getCatalog());
-	}
-	
-	public void testModifyCatalog() throws Exception {		
-		OrmPersistenceUnitDefaults persistenceUnitDefaults = persistenceUnitDefaults();
-		assertNull(persistenceUnitDefaults.getCatalog());
-		assertNull(getXmlEntityMappings().getPersistenceUnitMetadata());
-		
-		//set catalog in the context model, verify resource model modified
-		persistenceUnitDefaults.setSpecifiedCatalog("MY_CATALOG");
-		assertEquals("MY_CATALOG", persistenceUnitDefaults.getCatalog());
-		assertEquals("MY_CATALOG", getXmlEntityMappings().getPersistenceUnitMetadata().getPersistenceUnitDefaults().getCatalog());
-		
-		//set catalog to null in the context model
-		persistenceUnitDefaults.setSpecifiedCatalog(null);
-		assertNull(persistenceUnitDefaults.getCatalog());
-		assertNull(getXmlEntityMappings().getPersistenceUnitMetadata());
-	}
-	
-	public void testModifyCatalog2() throws Exception {
-		OrmPersistenceUnitDefaults persistenceUnitDefaults = persistenceUnitDefaults();
-		assertNull(persistenceUnitDefaults.getCatalog());
-		assertNull(getXmlEntityMappings().getPersistenceUnitMetadata());
-		
-		//set catalog in the context model, verify resource model modified
-		persistenceUnitDefaults.setSpecifiedCatalog("MY_CATALOG");
-		assertEquals("MY_CATALOG", persistenceUnitDefaults.getCatalog());
-		assertEquals("MY_CATALOG", getXmlEntityMappings().getPersistenceUnitMetadata().getPersistenceUnitDefaults().getCatalog());
-		
-		//set another element on the persistence-unit-defaults element so it doesn't get removed
-		getXmlEntityMappings().getPersistenceUnitMetadata().getPersistenceUnitDefaults().setSchema("MY_SCHEMA");
-		//set catalog to null in the context model
-		persistenceUnitDefaults.setSpecifiedCatalog(null);
-		assertNull(persistenceUnitDefaults.getCatalog());
-		assertNull(getXmlEntityMappings().getPersistenceUnitMetadata().getPersistenceUnitDefaults().getCatalog());
-	}
-	
-	public void testModifyCatalog3() throws Exception {
-		OrmPersistenceUnitDefaults persistenceUnitDefaults = persistenceUnitDefaults();
-		assertNull(persistenceUnitDefaults.getCatalog());
-		assertNull(getXmlEntityMappings().getPersistenceUnitMetadata());
-		//set another element on the persistence-unit-metadata element so only persistence-unit-defaults element gets removed
-		getXmlEntityMappings().setPersistenceUnitMetadata(EclipseLinkOrmFactory.eINSTANCE.createXmlPersistenceUnitMetadata());
-		getXmlEntityMappings().getPersistenceUnitMetadata().setXmlMappingMetadataComplete(true);
-		
-		//set catalog in the context model, verify resource model modified
-		persistenceUnitDefaults.setSpecifiedCatalog("MY_CATALOG");
-		assertEquals("MY_CATALOG", persistenceUnitDefaults.getCatalog());
-		assertEquals("MY_CATALOG", getXmlEntityMappings().getPersistenceUnitMetadata().getPersistenceUnitDefaults().getCatalog());
-		
-		//set catalog to null in the context model
-		persistenceUnitDefaults.setSpecifiedCatalog(null);
-		assertNull(persistenceUnitDefaults.getCatalog());
-		assertNull(getXmlEntityMappings().getPersistenceUnitMetadata().getPersistenceUnitDefaults());
-	}
-	
-	public void testUpdateCascadePersist() throws Exception {
-		OrmPersistenceUnitDefaults persistenceUnitDefaults = persistenceUnitDefaults();
-		assertFalse(persistenceUnitDefaults.isCascadePersist());
-		assertNull(getXmlEntityMappings().getPersistenceUnitMetadata());
-		
-		//set cascadePersist in the resource model, verify context model updated
-		getXmlEntityMappings().setPersistenceUnitMetadata(EclipseLinkOrmFactory.eINSTANCE.createXmlPersistenceUnitMetadata());
-		getXmlEntityMappings().getPersistenceUnitMetadata().setPersistenceUnitDefaults(OrmFactory.eINSTANCE.createXmlPersistenceUnitDefaults());
-		getXmlEntityMappings().getPersistenceUnitMetadata().getPersistenceUnitDefaults().setCascadePersist(true);
-		assertTrue(persistenceUnitDefaults.isCascadePersist());
-		assertTrue(getXmlEntityMappings().getPersistenceUnitMetadata().getPersistenceUnitDefaults().isCascadePersist());
-	
-		//set cascadePersist to null in the resource model, persistence-unit-defaults tag not removed
-		getXmlEntityMappings().getPersistenceUnitMetadata().getPersistenceUnitDefaults().setCascadePersist(false);
-		assertFalse(persistenceUnitDefaults.isCascadePersist());
-		assertFalse(getXmlEntityMappings().getPersistenceUnitMetadata().getPersistenceUnitDefaults().isCascadePersist());
-	}
-	
-	public void testModifyCascadePersist() throws Exception {		
-		OrmPersistenceUnitDefaults persistenceUnitDefaults = persistenceUnitDefaults();
-		assertFalse(persistenceUnitDefaults.isCascadePersist());
-		assertNull(getXmlEntityMappings().getPersistenceUnitMetadata());
-		
-		//set cascadePersist in the context model, verify resource model modified
-		persistenceUnitDefaults.setCascadePersist(true);
-		assertTrue(persistenceUnitDefaults.isCascadePersist());
-		assertTrue(getXmlEntityMappings().getPersistenceUnitMetadata().getPersistenceUnitDefaults().isCascadePersist());
-		
-		//set cascadePersist to null in the context model
-		persistenceUnitDefaults.setCascadePersist(false);
-		assertFalse(persistenceUnitDefaults.isCascadePersist());
-		assertNull(getXmlEntityMappings().getPersistenceUnitMetadata());
-	}
-	
-	public void testModifyCascadePersist2() throws Exception {
-		OrmPersistenceUnitDefaults persistenceUnitDefaults = persistenceUnitDefaults();
-		assertFalse(persistenceUnitDefaults.isCascadePersist());
-		assertNull(getXmlEntityMappings().getPersistenceUnitMetadata());
-		
-		//set cascadePersist in the context model, verify resource model modified
-		persistenceUnitDefaults.setCascadePersist(true);
-		assertTrue(persistenceUnitDefaults.isCascadePersist());
-		assertTrue(getXmlEntityMappings().getPersistenceUnitMetadata().getPersistenceUnitDefaults().isCascadePersist());
-		
-		//set another element on the persistence-unit-defaults element so it doesn't get removed
-		getXmlEntityMappings().getPersistenceUnitMetadata().getPersistenceUnitDefaults().setCatalog("MY_CATALOG");
-		//set cascadePersist to null in the context model
-		persistenceUnitDefaults.setCascadePersist(false);
-		assertFalse(persistenceUnitDefaults.isCascadePersist());
-		assertFalse(getXmlEntityMappings().getPersistenceUnitMetadata().getPersistenceUnitDefaults().isCascadePersist());
-	}
-	
-	public void testModifyCascadePersist3() throws Exception {
-		OrmPersistenceUnitDefaults persistenceUnitDefaults = persistenceUnitDefaults();
-		assertFalse(persistenceUnitDefaults.isCascadePersist());
-		assertNull(getXmlEntityMappings().getPersistenceUnitMetadata());
-		//set another element on the persistence-unit-metadata element so only persistence-unit-defaults element gets removed
-		getXmlEntityMappings().setPersistenceUnitMetadata(EclipseLinkOrmFactory.eINSTANCE.createXmlPersistenceUnitMetadata());
-		getXmlEntityMappings().getPersistenceUnitMetadata().setXmlMappingMetadataComplete(true);
-		
-		//set cascadePersist in the context model, verify resource model modified
-		persistenceUnitDefaults.setCascadePersist(true);
-		assertTrue(persistenceUnitDefaults.isCascadePersist());
-		assertTrue(getXmlEntityMappings().getPersistenceUnitMetadata().getPersistenceUnitDefaults().isCascadePersist());
-		
-		//set cascadePersist to null in the context model
-		persistenceUnitDefaults.setCascadePersist(false);
-		assertFalse(persistenceUnitDefaults.isCascadePersist());
-		assertNull(getXmlEntityMappings().getPersistenceUnitMetadata().getPersistenceUnitDefaults());
-	}
-	
-	
-	public void testUpdateAccess() throws Exception {
-		OrmPersistenceUnitDefaults persistenceUnitDefaults = persistenceUnitDefaults();
-		assertNull(persistenceUnitDefaults.getAccess());
-		assertNull(getXmlEntityMappings().getPersistenceUnitMetadata());
-		
-		//set access in the resource model, verify context model updated
-		getXmlEntityMappings().setPersistenceUnitMetadata(EclipseLinkOrmFactory.eINSTANCE.createXmlPersistenceUnitMetadata());
-		getXmlEntityMappings().getPersistenceUnitMetadata().setPersistenceUnitDefaults(OrmFactory.eINSTANCE.createXmlPersistenceUnitDefaults());
-		getXmlEntityMappings().getPersistenceUnitMetadata().getPersistenceUnitDefaults().setAccess(org.eclipse.jpt.core.resource.orm.AccessType.FIELD);
-		assertEquals(AccessType.FIELD, persistenceUnitDefaults.getAccess());
-		assertEquals(org.eclipse.jpt.core.resource.orm.AccessType.FIELD, getXmlEntityMappings().getPersistenceUnitMetadata().getPersistenceUnitDefaults().getAccess());
-	
-		//set access to null in the resource model
-		getXmlEntityMappings().getPersistenceUnitMetadata().getPersistenceUnitDefaults().setAccess(null);
-		assertNull(persistenceUnitDefaults.getAccess());
-		assertNull(getXmlEntityMappings().getPersistenceUnitMetadata().getPersistenceUnitDefaults().getAccess());
-	}
-	
-	public void testModifyAccess() throws Exception {		
-		OrmPersistenceUnitDefaults persistenceUnitDefaults = persistenceUnitDefaults();
-		assertNull(persistenceUnitDefaults.getAccess());
-		assertNull(getXmlEntityMappings().getPersistenceUnitMetadata());
-		
-		//set access in the context model, verify resource model modified
-		persistenceUnitDefaults.setAccess(AccessType.PROPERTY);
-		assertEquals(AccessType.PROPERTY, persistenceUnitDefaults.getAccess());
-		assertEquals(org.eclipse.jpt.core.resource.orm.AccessType.PROPERTY, getXmlEntityMappings().getPersistenceUnitMetadata().getPersistenceUnitDefaults().getAccess());
-		
-		//set access to null in the context model
-		persistenceUnitDefaults.setAccess(null);
-		assertNull(persistenceUnitDefaults.getAccess());
-		assertNull(getXmlEntityMappings().getPersistenceUnitMetadata());
-	}
-	
-	public void testModifyAccess2() throws Exception {
-		OrmPersistenceUnitDefaults persistenceUnitDefaults = persistenceUnitDefaults();
-		assertNull(persistenceUnitDefaults.getAccess());
-		assertNull(getXmlEntityMappings().getPersistenceUnitMetadata());
-		
-		//set access in the context model, verify resource model modified
-		persistenceUnitDefaults.setAccess(AccessType.FIELD);
-		assertEquals(AccessType.FIELD, persistenceUnitDefaults.getAccess());
-		assertEquals(org.eclipse.jpt.core.resource.orm.AccessType.FIELD, getXmlEntityMappings().getPersistenceUnitMetadata().getPersistenceUnitDefaults().getAccess());
-		
-		//set another element on the persistence-unit-defaults element so it doesn't get removed
-		getXmlEntityMappings().getPersistenceUnitMetadata().getPersistenceUnitDefaults().setCascadePersist(true);
-		//set access to null in the context model
-		persistenceUnitDefaults.setAccess(null);
-		assertNull(persistenceUnitDefaults.getAccess());
-		assertNull(getXmlEntityMappings().getPersistenceUnitMetadata().getPersistenceUnitDefaults().getAccess());
-	}
-	
-	public void testModifyAccess3() throws Exception {
-		OrmPersistenceUnitDefaults persistenceUnitDefaults = persistenceUnitDefaults();
-		assertNull(persistenceUnitDefaults.getAccess());
-		assertNull(getXmlEntityMappings().getPersistenceUnitMetadata());
-		//set another element on the persistence-unit-metadata element so only persistence-unit-defaults element gets removed
-		getXmlEntityMappings().setPersistenceUnitMetadata(EclipseLinkOrmFactory.eINSTANCE.createXmlPersistenceUnitMetadata());
-		getXmlEntityMappings().getPersistenceUnitMetadata().setXmlMappingMetadataComplete(true);
-		
-		//set access in the context model, verify resource model modified
-		persistenceUnitDefaults.setAccess(AccessType.FIELD);
-		assertEquals(AccessType.FIELD, persistenceUnitDefaults.getAccess());
-		assertEquals(org.eclipse.jpt.core.resource.orm.AccessType.FIELD, getXmlEntityMappings().getPersistenceUnitMetadata().getPersistenceUnitDefaults().getAccess());
-		
-		//set access to null in the context model
-		persistenceUnitDefaults.setAccess(null);
-		assertNull(persistenceUnitDefaults.getAccess());
-		assertNull(getXmlEntityMappings().getPersistenceUnitMetadata().getPersistenceUnitDefaults());
-	}
-
-}
\ No newline at end of file
diff --git a/jpa/tests/org.eclipse.jpt.eclipselink.core.tests/src/org/eclipse/jpt/eclipselink/core/tests/internal/context/orm/EclipseLinkPersistenceUnitMetadataTests.java b/jpa/tests/org.eclipse.jpt.eclipselink.core.tests/src/org/eclipse/jpt/eclipselink/core/tests/internal/context/orm/EclipseLinkPersistenceUnitMetadataTests.java
deleted file mode 100644
index 9a75e37..0000000
--- a/jpa/tests/org.eclipse.jpt.eclipselink.core.tests/src/org/eclipse/jpt/eclipselink/core/tests/internal/context/orm/EclipseLinkPersistenceUnitMetadataTests.java
+++ /dev/null
@@ -1,105 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.eclipselink.core.tests.internal.context.orm;
-
-import org.eclipse.jpt.core.context.orm.PersistenceUnitMetadata;
-import org.eclipse.jpt.core.resource.orm.OrmFactory;
-import org.eclipse.jpt.core.resource.persistence.PersistenceFactory;
-import org.eclipse.jpt.core.resource.persistence.XmlMappingFileRef;
-import org.eclipse.jpt.eclipselink.core.internal.JptEclipseLinkCorePlugin;
-import org.eclipse.jpt.eclipselink.core.resource.orm.EclipseLinkOrmFactory;
-import org.eclipse.jpt.eclipselink.core.resource.orm.XmlPersistenceUnitMetadata;
-
-public class EclipseLinkPersistenceUnitMetadataTests extends EclipseLinkOrmContextModelTestCase
-{
-	public EclipseLinkPersistenceUnitMetadataTests(String name) {
-		super(name);
-	}
-	
-	
-	@Override
-	protected void setUp() throws Exception {
-		super.setUp();
-		XmlMappingFileRef mappingFileRef = PersistenceFactory.eINSTANCE.createXmlMappingFileRef();
-		mappingFileRef.setFileName(JptEclipseLinkCorePlugin.DEFAULT_ECLIPSELINK_ORM_XML_FILE_PATH);
-		getXmlPersistenceUnit().getMappingFiles().add(mappingFileRef);
-		getPersistenceXmlResource().save(null);
-	}
-
-	protected PersistenceUnitMetadata persistenceUnitMetadata() {
-		return getEntityMappings().getPersistenceUnitMetadata();
-	}
-	
-	public void testIsAllFeaturesUnset() throws Exception {
-		XmlPersistenceUnitMetadata persistenceUnitMetadata = EclipseLinkOrmFactory.eINSTANCE.createXmlPersistenceUnitMetadata();
-		getXmlEntityMappings().setPersistenceUnitMetadata(persistenceUnitMetadata);
-		assertTrue(persistenceUnitMetadata.isUnset());
-		
-		persistenceUnitMetadata.setXmlMappingMetadataComplete(true);
-		assertFalse(persistenceUnitMetadata.isUnset());
-		
-		persistenceUnitMetadata.setXmlMappingMetadataComplete(false);
-		assertTrue(persistenceUnitMetadata.isUnset());
-		
-		persistenceUnitMetadata.setPersistenceUnitDefaults(OrmFactory.eINSTANCE.createXmlPersistenceUnitDefaults());
-		assertFalse(persistenceUnitMetadata.isUnset());		
-	}
-	
-	public void testUpdateXmlMappingMetadataComplete() throws Exception {
-		PersistenceUnitMetadata persistenceUnitMetadata = getEntityMappings().getPersistenceUnitMetadata();
-		assertFalse(persistenceUnitMetadata.isXmlMappingMetadataComplete());
-		assertNull(getXmlEntityMappings().getPersistenceUnitMetadata());
-		
-		//set xmlMappingMetadataComplete in the resource model, verify context model updated
-		getXmlEntityMappings().setPersistenceUnitMetadata(EclipseLinkOrmFactory.eINSTANCE.createXmlPersistenceUnitMetadata());
-		getXmlEntityMappings().getPersistenceUnitMetadata().setXmlMappingMetadataComplete(true);		
-		assertTrue(persistenceUnitMetadata.isXmlMappingMetadataComplete());
-		assertTrue(getXmlEntityMappings().getPersistenceUnitMetadata().isXmlMappingMetadataComplete());
-
-		//set xmlMappingMetadataComplete to null in the resource model
-		getXmlEntityMappings().getPersistenceUnitMetadata().setXmlMappingMetadataComplete(false);
-		assertFalse(persistenceUnitMetadata.isXmlMappingMetadataComplete());
-		assertFalse(getXmlEntityMappings().getPersistenceUnitMetadata().isXmlMappingMetadataComplete());
-	}
-	
-	public void testModifyXmlMappingMetadataComplete() throws Exception {		
-		PersistenceUnitMetadata persistenceUnitMetadata = getEntityMappings().getPersistenceUnitMetadata();
-		assertFalse(persistenceUnitMetadata.isXmlMappingMetadataComplete());
-		assertNull(getXmlEntityMappings().getPersistenceUnitMetadata());
-		
-		//set xmlMappingMetadataComplete in the context model, verify resource model modified
-		persistenceUnitMetadata.setXmlMappingMetadataComplete(true);
-		assertTrue(persistenceUnitMetadata.isXmlMappingMetadataComplete());
-		assertTrue(getXmlEntityMappings().getPersistenceUnitMetadata().isXmlMappingMetadataComplete());
-		
-		//set xmlMappingMetadataComplete to null in the context model
-		persistenceUnitMetadata.setXmlMappingMetadataComplete(false);
-		assertFalse(persistenceUnitMetadata.isXmlMappingMetadataComplete());
-		assertNull(getXmlEntityMappings().getPersistenceUnitMetadata());
-	}
-	
-	public void testModifyXmlMappingMetadataComplete2() throws Exception {
-		PersistenceUnitMetadata persistenceUnitMetadata = getEntityMappings().getPersistenceUnitMetadata();
-		assertFalse(persistenceUnitMetadata.isXmlMappingMetadataComplete());
-		assertNull(getXmlEntityMappings().getPersistenceUnitMetadata());
-		
-		//set xmlMappingMetadataComplete in the context model, verify resource model modified
-		persistenceUnitMetadata.setXmlMappingMetadataComplete(true);
-		assertTrue(persistenceUnitMetadata.isXmlMappingMetadataComplete());
-		assertTrue(getXmlEntityMappings().getPersistenceUnitMetadata().isXmlMappingMetadataComplete());
-		
-		//set xmlMappingMetadataComplete to null in the context model
-		//set another element on the persistence-unit-metadata element so it doesn't get removed
-		getXmlEntityMappings().getPersistenceUnitMetadata().setPersistenceUnitDefaults(OrmFactory.eINSTANCE.createXmlPersistenceUnitDefaults());
-		persistenceUnitMetadata.setXmlMappingMetadataComplete(false);
-		assertFalse(persistenceUnitMetadata.isXmlMappingMetadataComplete());
-		assertFalse(getXmlEntityMappings().getPersistenceUnitMetadata().isXmlMappingMetadataComplete());
-	}
-}
\ No newline at end of file
diff --git a/jpa/tests/org.eclipse.jpt.eclipselink.core.tests/src/org/eclipse/jpt/eclipselink/core/tests/internal/context/orm/JptEclipseLinkCoreOrmContextModelTests.java b/jpa/tests/org.eclipse.jpt.eclipselink.core.tests/src/org/eclipse/jpt/eclipselink/core/tests/internal/context/orm/JptEclipseLinkCoreOrmContextModelTests.java
deleted file mode 100644
index 75a20dd..0000000
--- a/jpa/tests/org.eclipse.jpt.eclipselink.core.tests/src/org/eclipse/jpt/eclipselink/core/tests/internal/context/orm/JptEclipseLinkCoreOrmContextModelTests.java
+++ /dev/null
@@ -1,52 +0,0 @@
-/*******************************************************************************
- *  Copyright (c) 2007, 2009 Oracle. 
- *  All rights reserved.  This program and the accompanying materials 
- *  are made available under the terms of the Eclipse Public License v1.0 
- *  which accompanies this distribution, and is available at 
- *  http://www.eclipse.org/legal/epl-v10.html
- *  
- *  Contributors: 
- *  	Oracle - initial API and implementation
- *******************************************************************************/
-package org.eclipse.jpt.eclipselink.core.tests.internal.context.orm;
-
-import junit.framework.Test;
-import junit.framework.TestCase;
-import junit.framework.TestSuite;
-
-public class JptEclipseLinkCoreOrmContextModelTests extends TestCase
-{
-	public static Test suite() {
-		return suite(true);
-	}
-	
-	public static Test suite(boolean all) {
-		TestSuite suite = new TestSuite(JptEclipseLinkCoreOrmContextModelTests.class.getName());
-		suite.addTestSuite(EclipseLinkEntityMappingsTests.class);
-		suite.addTestSuite(EclipseLinkPersistenceUnitMetadataTests.class);
-		suite.addTestSuite(EclipseLinkPersistenceUnitDefaultsTests.class);
-		suite.addTestSuite(EclipseLinkOrmEmbeddableTests.class);
-		suite.addTestSuite(EclipseLinkOrmEntityTests.class);
-		suite.addTestSuite(EclipseLinkOrmMappedSuperclassTests.class);
-		suite.addTestSuite(EclipseLinkOrmBasicMappingTests.class);
-		suite.addTestSuite(EclipseLinkOrmIdMappingTests.class);
-		suite.addTestSuite(EclipseLinkOrmManyToManyMappingTests.class);
-		suite.addTestSuite(EclipseLinkOrmManyToOneMappingTests.class);
-		suite.addTestSuite(EclipseLinkOrmOneToManyMappingTests.class);
-		suite.addTestSuite(EclipseLinkOrmOneToOneMappingTests.class);
-		suite.addTestSuite(EclipseLinkOrmPersistentAttributeTests.class);		
-		suite.addTestSuite(EclipseLink1_1OrmPersistentAttributeTests.class);		
-		suite.addTestSuite(EclipseLink1_1OrmPersistentTypeTests.class);		
-		suite.addTestSuite(EclipseLinkOrmVersionMappingTests.class);
-		suite.addTestSuite(EclipseLinkOrmConverterTests.class);
-		suite.addTestSuite(EclipseLinkOrmObjectTypeConverterTests.class);
-		suite.addTestSuite(EclipseLinkOrmStructConverterTests.class);
-		suite.addTestSuite(EclipseLinkOrmTypeConverterTests.class);
-		return suite;
-	}
-	
-	
-	private JptEclipseLinkCoreOrmContextModelTests() {
-		throw new UnsupportedOperationException();
-	}
-}
diff --git a/jpa/tests/org.eclipse.jpt.eclipselink.core.tests/src/org/eclipse/jpt/eclipselink/core/tests/internal/context/persistence/EclipseLinkPersistenceUnitTests.java b/jpa/tests/org.eclipse.jpt.eclipselink.core.tests/src/org/eclipse/jpt/eclipselink/core/tests/internal/context/persistence/EclipseLinkPersistenceUnitTests.java
deleted file mode 100644
index f61c85b..0000000
--- a/jpa/tests/org.eclipse.jpt.eclipselink.core.tests/src/org/eclipse/jpt/eclipselink/core/tests/internal/context/persistence/EclipseLinkPersistenceUnitTests.java
+++ /dev/null
@@ -1,109 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008, 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- *******************************************************************************/
-package org.eclipse.jpt.eclipselink.core.tests.internal.context.persistence;
-
-import org.eclipse.jpt.core.internal.facet.JpaFacetDataModelProperties;
-import org.eclipse.jpt.core.internal.facet.JpaFacetDataModelProvider;
-import org.eclipse.jpt.core.internal.operations.OrmFileCreationDataModelProperties;
-import org.eclipse.jpt.core.resource.persistence.PersistenceFactory;
-import org.eclipse.jpt.core.resource.persistence.XmlMappingFileRef;
-import org.eclipse.jpt.core.resource.persistence.XmlPersistenceUnit;
-import org.eclipse.jpt.core.resource.xml.JpaXmlResource;
-import org.eclipse.jpt.core.tests.internal.projects.TestJpaProject;
-import org.eclipse.jpt.eclipselink.core.internal.EclipseLinkJpaPlatformProvider;
-import org.eclipse.jpt.eclipselink.core.internal.context.persistence.EclipseLinkPersistenceUnit;
-import org.eclipse.jpt.eclipselink.core.internal.operations.EclipseLinkOrmFileCreationDataModelProvider;
-import org.eclipse.jpt.eclipselink.core.tests.internal.context.orm.EclipseLinkOrmContextModelTestCase;
-import org.eclipse.jpt.utility.internal.CollectionTools;
-import org.eclipse.wst.common.frameworks.datamodel.DataModelFactory;
-import org.eclipse.wst.common.frameworks.datamodel.IDataModel;
-
-public class EclipseLinkPersistenceUnitTests
-	extends EclipseLinkOrmContextModelTestCase
-{
-	public EclipseLinkPersistenceUnitTests(String name) {
-		super(name);
-	}
-	
-	
-	@Override
-	protected IDataModel buildJpaConfigDataModel() {
-		IDataModel dataModel = DataModelFactory.createDataModel(new JpaFacetDataModelProvider());		
-		dataModel.setProperty(JpaFacetDataModelProperties.PLATFORM_ID, EclipseLinkJpaPlatformProvider.ID);
-		dataModel.setProperty(JpaFacetDataModelProperties.CREATE_ORM_XML, Boolean.TRUE);
-		return dataModel;
-	}
-	
-	@Override
-	protected IDataModel buildEclipseLinkOrmConfig(TestJpaProject testJpaProject) {
-		IDataModel dataModel = 
-			DataModelFactory.createDataModel(new EclipseLinkOrmFileCreationDataModelProvider());		
-		dataModel.setProperty(OrmFileCreationDataModelProperties.PROJECT_NAME, testJpaProject.getProject().getName());
-		dataModel.setProperty(OrmFileCreationDataModelProperties.ADD_TO_PERSISTENCE_UNIT, Boolean.FALSE);
-		return dataModel;
-	}
-	
-	
-	public void testUpdateEclipseLinkImpliedMappingFileRef1() throws Exception {
-		EclipseLinkPersistenceUnit persistenceUnit = getPersistenceUnit();
-		
-		// test that there is one initially
-		JpaXmlResource eclipseLinkOrmResource = getOrmXmlResource();
-		assertTrue(eclipseLinkOrmResource.fileExists());
-		assertNotNull(persistenceUnit.getImpliedMappingFileRef());
-		assertNotNull(persistenceUnit.getImpliedEclipseLinkMappingFileRef());
-		
-		// remove eclipselink-orm.xml
-		deleteResource(eclipseLinkOrmResource);
-		
-		assertFalse(eclipseLinkOrmResource.fileExists());
-		assertNotNull(persistenceUnit.getImpliedMappingFileRef());
-		assertNull(persistenceUnit.getImpliedEclipseLinkMappingFileRef());
-	}
-	
-	public void testUpdateEclipseLinkImpliedMappingFileRef2() {
-		XmlPersistenceUnit xmlPersistenceUnit = getXmlPersistenceUnit();
-		EclipseLinkPersistenceUnit persistenceUnit = getPersistenceUnit();
-		
-		// test that there is one initially
-		JpaXmlResource eclipseLinkOrmResource = getOrmXmlResource();
-		assertTrue(eclipseLinkOrmResource.fileExists());
-		assertNotNull(persistenceUnit.getImpliedMappingFileRef());
-		assertNotNull(persistenceUnit.getImpliedEclipseLinkMappingFileRef());
-		
-		// add specified eclipselink-orm.xml
-		XmlMappingFileRef xmlMappingFileRef = PersistenceFactory.eINSTANCE.createXmlMappingFileRef();
-		xmlMappingFileRef.setFileName("META-INF/eclipselink-orm.xml");
-		xmlPersistenceUnit.getMappingFiles().add(xmlMappingFileRef);
-		
-		assertEquals(1, CollectionTools.size(persistenceUnit.specifiedMappingFileRefs()));
-		
-		assertTrue(eclipseLinkOrmResource.fileExists());
-		assertNotNull(persistenceUnit.getImpliedMappingFileRef());
-		assertNull(persistenceUnit.getImpliedEclipseLinkMappingFileRef());
-	}
-	
-	public void testUpdateEclipseLinkImpliedMappingFileRef3() {
-		EclipseLinkPersistenceUnit persistenceUnit = getPersistenceUnit();
-		
-		// test that there is one initially
-		JpaXmlResource eclipseLinkOrmResource = getOrmXmlResource();
-		assertTrue(eclipseLinkOrmResource.fileExists());
-		assertNotNull(persistenceUnit.getImpliedMappingFileRef());
-		assertNotNull(persistenceUnit.getImpliedEclipseLinkMappingFileRef());
-		
-		// ignore in persistence unit
-		persistenceUnit.getGeneralProperties().setExcludeEclipselinkOrm(Boolean.TRUE);
-		
-		assertTrue(eclipseLinkOrmResource.fileExists());
-		assertNotNull(persistenceUnit.getImpliedMappingFileRef());
-		assertNull(persistenceUnit.getImpliedEclipseLinkMappingFileRef());
-	}
-}
diff --git a/jpa/tests/org.eclipse.jpt.eclipselink.core.tests/src/org/eclipse/jpt/eclipselink/core/tests/internal/context/persistence/JptEclipseLinkCorePersistenceContextModelTests.java b/jpa/tests/org.eclipse.jpt.eclipselink.core.tests/src/org/eclipse/jpt/eclipselink/core/tests/internal/context/persistence/JptEclipseLinkCorePersistenceContextModelTests.java
deleted file mode 100644
index 59bb0a6..0000000
--- a/jpa/tests/org.eclipse.jpt.eclipselink.core.tests/src/org/eclipse/jpt/eclipselink/core/tests/internal/context/persistence/JptEclipseLinkCorePersistenceContextModelTests.java
+++ /dev/null
@@ -1,37 +0,0 @@
-package org.eclipse.jpt.eclipselink.core.tests.internal.context.persistence;
-
-import junit.framework.Test;
-import junit.framework.TestCase;
-import junit.framework.TestSuite;
-import org.eclipse.jpt.eclipselink.core.tests.internal.context.persistence.caching.JptEclipseLinkPersistenceCachingTests;
-import org.eclipse.jpt.eclipselink.core.tests.internal.context.persistence.connection.JptEclipseLinkPersistenceConnectionTests;
-import org.eclipse.jpt.eclipselink.core.tests.internal.context.persistence.customization.JptEclipseLinkPersistenceCustomizationTests;
-import org.eclipse.jpt.eclipselink.core.tests.internal.context.persistence.general.JptEclipseLinkPersistenceGeneralTests;
-import org.eclipse.jpt.eclipselink.core.tests.internal.context.persistence.logging.JptEclipseLinkPersistenceLoggingTests;
-import org.eclipse.jpt.eclipselink.core.tests.internal.context.persistence.options.JptEclipseLinkPersistenceOptionsTests;
-import org.eclipse.jpt.eclipselink.core.tests.internal.context.persistence.schema.generation.JptEclipseLinkPersistenceSchemaGenerationTests;
-
-public class JptEclipseLinkCorePersistenceContextModelTests extends TestCase
-{
-	public static Test suite() {
-		return suite(true);
-	}
-
-	public static Test suite(boolean all) {
-		TestSuite suite = new TestSuite(JptEclipseLinkCorePersistenceContextModelTests.class.getName());
-		suite.addTestSuite(EclipseLinkPersistenceUnitTests.class);
-		suite.addTest(JptEclipseLinkPersistenceGeneralTests.suite());
-		suite.addTest(JptEclipseLinkPersistenceConnectionTests.suite());
-		suite.addTest(JptEclipseLinkPersistenceCustomizationTests.suite());
-		suite.addTest(JptEclipseLinkPersistenceCachingTests.suite());
-		suite.addTest(JptEclipseLinkPersistenceLoggingTests.suite());
-		suite.addTest(JptEclipseLinkPersistenceOptionsTests.suite());
-		suite.addTest(JptEclipseLinkPersistenceSchemaGenerationTests.suite());
-		return suite;
-	}
-
-	private JptEclipseLinkCorePersistenceContextModelTests() {
-		super();
-		throw new UnsupportedOperationException();
-	}
-}
diff --git a/jpa/tests/org.eclipse.jpt.eclipselink.core.tests/src/org/eclipse/jpt/eclipselink/core/tests/internal/context/persistence/PersistenceUnitTestCase.java b/jpa/tests/org.eclipse.jpt.eclipselink.core.tests/src/org/eclipse/jpt/eclipselink/core/tests/internal/context/persistence/PersistenceUnitTestCase.java
deleted file mode 100644
index 9e9f177..0000000
--- a/jpa/tests/org.eclipse.jpt.eclipselink.core.tests/src/org/eclipse/jpt/eclipselink/core/tests/internal/context/persistence/PersistenceUnitTestCase.java
+++ /dev/null
@@ -1,372 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008, 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- *******************************************************************************/
-package org.eclipse.jpt.eclipselink.core.tests.internal.context.persistence;
-
-import org.eclipse.jpt.core.context.persistence.PersistenceUnit;
-import org.eclipse.jpt.core.internal.facet.JpaFacetDataModelProperties;
-import org.eclipse.jpt.core.internal.facet.JpaFacetDataModelProvider;
-import org.eclipse.jpt.core.tests.internal.context.ContextModelTestCase;
-import org.eclipse.jpt.eclipselink.core.internal.EclipseLinkJpaPlatformProvider;
-import org.eclipse.jpt.eclipselink.core.internal.context.persistence.EclipseLinkPersistenceUnit;
-import org.eclipse.jpt.eclipselink.core.internal.context.persistence.EclipseLinkPersistenceUnitProperties;
-import org.eclipse.jpt.eclipselink.core.internal.context.persistence.PersistenceUnitProperties;
-import org.eclipse.jpt.utility.internal.model.AbstractModel;
-import org.eclipse.jpt.utility.internal.model.value.SimplePropertyValueModel;
-import org.eclipse.jpt.utility.model.event.ListChangeEvent;
-import org.eclipse.jpt.utility.model.event.PropertyChangeEvent;
-import org.eclipse.jpt.utility.model.listener.PropertyChangeListener;
-import org.eclipse.jpt.utility.model.value.ListValueModel;
-import org.eclipse.jpt.utility.model.value.PropertyValueModel;
-import org.eclipse.wst.common.frameworks.datamodel.DataModelFactory;
-import org.eclipse.wst.common.frameworks.datamodel.IDataModel;
-
-/**
- * PersistenceUnitTestCase
- */
-@SuppressWarnings("nls")
-public abstract class PersistenceUnitTestCase extends ContextModelTestCase
-{
-	protected EclipseLinkPersistenceUnit subject;
-
-	protected PropertyValueModel<EclipseLinkPersistenceUnit> subjectHolder;
-
-	protected PropertyChangeEvent propertyChangedEvent;
-
-	protected int propertyChangedEventCount;
-
-	protected int propertiesTotal;
-
-	protected int modelPropertiesSizeOriginal;
-
-	protected int modelPropertiesSize;
-
-	protected PersistenceUnitTestCase(String name) {
-		super(name);
-	}
-
-	@Override
-	protected void setUp() throws Exception {
-		super.setUp();
-		this.subject = this.getPersistenceUnit();
-		this.subjectHolder = new SimplePropertyValueModel<EclipseLinkPersistenceUnit>(this.subject);
-		this.populatePu();
-	}
-
-	@Override
-	protected IDataModel buildJpaConfigDataModel() {
-		IDataModel dataModel = DataModelFactory.createDataModel(new JpaFacetDataModelProvider());		
-		dataModel.setProperty(JpaFacetDataModelProperties.PLATFORM_ID, EclipseLinkJpaPlatformProvider.ID);
-		dataModel.setProperty(JpaFacetDataModelProperties.CREATE_ORM_XML, Boolean.FALSE);
-		return dataModel;
-	}
-	
-	@Override
-	protected EclipseLinkPersistenceUnit getPersistenceUnit() {
-		return (EclipseLinkPersistenceUnit) super.getPersistenceUnit();
-	}
-	
-	// ****** abstract methods *******
-	protected abstract PersistenceUnitProperties getModel();
-
-	/**
-	 * Initializes directly the PU properties before testing. Cannot use
-	 * Property Holder to initialize because it is not created yet
-	 */
-	protected abstract void populatePu();
-
-	/**
-	 * Gets the model's property identified by the given propertyName.
-	 * 
-	 * @param propertyName
-	 *            name of property to get
-	 * @throws Exception
-	 */
-	protected abstract Object getProperty(String propertyName) throws Exception;
-
-
-	/**
-	 * Sets the model's property identified by the given propertyName.
-	 * Used in verifySetProperty()
-	 * 
-	 * @param propertyName
-	 *            name of property to be set
-	 * @param newValue
-	 *            value of property
-	 * @throws Exception
-	 */
-	protected abstract void setProperty(String propertyName, Object newValue) throws Exception;
-
-	
-	// ****** convenience test methods *******
-
-	protected String getEclipseLinkStringValueOf(Object value) {
-		return EclipseLinkPersistenceUnitProperties.getEclipseLinkStringValueOf(value);
-	}
-
-	/**
-	 * Put into persistenceUnit properties. Do not allows to put duplicate entry.
-	 * 
-	 * @param key -
-	 *            EclipseLink Key
-	 * @param value -
-	 *            property value
-	 */
-	protected void persistenceUnitSetProperty(String key, Object value) {
-		
-		this.persistenceUnitSetProperty( key, value, false);
-	}
-	
-	protected void persistenceUnitSetProperty(String key, Object value, boolean allowDuplicates) {
-		if (key == null) {
-			throw new IllegalArgumentException("EclipseLink Key cannot be null");
-		}
-		if (value == null)
-			this.setNullProperty(key);
-		else
-			this.putProperty_(key, value, allowDuplicates);
-	}
-
-	private void putProperty_(String elKey, Object value, boolean allowDuplicates) {
-		this.clearEvent();
-		this.getPersistenceUnit().setProperty(elKey, this.getEclipseLinkStringValueOf(value), allowDuplicates);
-	}
-
-	protected void setNullProperty(String elKey) {
-		this.clearEvent();
-		this.getPersistenceUnit().setProperty(elKey, null, false);
-	}
-
-	protected void clearEvent() {
-		this.propertyChangedEvent = null;
-		this.propertyChangedEventCount = 0;
-	}
-	
-	protected void throwMissingDefinition(String methodName, String propertyName) throws NoSuchFieldException {
-		throw new NoSuchFieldException("Missing Definition for: " + methodName + "( " + propertyName + ")");
-	}
-
-	protected void throwUnsupportedOperationException(ListChangeEvent e) {
-		throw new UnsupportedOperationException(e.getAspectName());
-	}
-
-	protected PropertyChangeListener buildPropertyChangeListener() {
-		return new PropertyChangeListener() {
-			public void propertyChanged(PropertyChangeEvent event) {
-				PersistenceUnitTestCase.this.propertyChangedEvent = event;
-				PersistenceUnitTestCase.this.propertyChangedEventCount++;
-			}
-	
-			@Override
-			public String toString() {
-				return "PersistenceUnit listener";
-			}
-		};
-	}
-	
-	// ****** verify EclipseLink properties *******
-	/**
-	 * Performs three value tests:<br>
-	 * 1. subject value<br>
-	 * 2. aspect adapter value<br>
-	 * 3. persistenceUnit property value<br>
-	 */
-	protected void verifyAAValue(Boolean expectedValue, Boolean subjectValue, PropertyValueModel<Boolean> aa, String persistenceXmlKey) {
-		assertEquals(expectedValue, subjectValue);
-		assertEquals(expectedValue, aa.getValue());
-		if (expectedValue != null) {
-			assertEquals(expectedValue.toString(), this.getPersistenceUnit().getProperty(persistenceXmlKey).getValue());
-		}
-	}
-
-	/**
-	 * Performs three value tests:<br>
-	 * 1. subject value<br>
-	 * 2. aspect adapter value<br>
-	 * 3. persistenceUnit property value<br>
-	 */
-	protected <T extends Enum<T>> void verifyAAValue(T expectedValue, T subjectValue, PropertyValueModel<? extends Enum<T>> aa, String elKey) {
-		assertEquals(expectedValue, subjectValue);
-		assertEquals(expectedValue, aa.getValue());
-		if (expectedValue != null) {
-			assertEquals(this.getEclipseLinkStringValueOf(expectedValue), this.getPersistenceUnit().getProperty(elKey).getValue());
-		}
-	}
-
-	/**
-	 * Performs the following tests:<br>
-	 * 1. verify total number of EclipseLink properties<br>
-	 * 2. verify PU has the given propertyName<br>
-	 * 3. verify listening to propertyListAdapter<br>
-	 * 4. verify that the model can identify propertyName<br>
-	 */
-	protected void verifyInitialState(String propertyName, String elKey, ListValueModel<PersistenceUnit.Property> propertyListAdapter) throws Exception {
-		assertEquals("Total not updated in populatePu(): ", propertyListAdapter.size(), this.propertiesTotal);
-		this.verifyPuHasProperty(elKey, "Property not added to populatePu()");
-		this.verifyHasListeners(propertyListAdapter);
-		this.verifyHasListeners(this.getModel(), propertyName);
-		
-		PersistenceUnit.Property property = this.getPersistenceUnit().getProperty(elKey);
-		assertTrue("model.itemIsProperty() is false: ", getModel().itemIsProperty(property));
-		assertEquals("propertyIdFor() not updated: ", propertyName, getModel().propertyIdFor(property));
-	}
-
-	/**
-	 * Verifies that the persistence unit is populated, and that the model for
-	 * the tested Property is initialized with the value from the persistence
-	 * unit.
-	 * @throws Exception 
-	 */
-	protected void verifyModelInitialized(String elKey, Object expectedValue) throws Exception {
-		PersistenceUnit.Property property = this.getPersistenceUnit().getProperty(elKey);
-		assertTrue("model.itemIsProperty() is false: ", getModel().itemIsProperty(property));
-
-		assertEquals("PersistenceUnit not populated - populatedPu()", this.getEclipseLinkStringValueOf(expectedValue), property.getValue());
-		String propertyName = this.getModel().propertyIdFor(property);
-		Object modelValue = this.getProperty(propertyName);
-		assertEquals(
-			"Model not initialized - model.initializeProperties() - modelValue = " + modelValue, 
-			expectedValue, 
-			modelValue);
-	}
-
-	/**
-	 * Performs the following operations with the property:<br>
-	 * 1. verifies the initial state<br>
-	 * 2. persistenceUnit putProperty<br>
-	 * 3. adapter setProperty<br>
-	 */
-	protected void verifySetProperty(String elKey, Object testValue1, Object testValue2) throws Exception {
-		PersistenceUnit.Property property = this.getPersistenceUnit().getProperty(elKey);
-		String propertyName = this.getModel().propertyIdFor(property);
-
-		// Replace
-		this.persistenceUnitSetProperty(elKey, testValue2);
-		this.verifyPutProperty(propertyName, testValue2);
-		
-		// Replace by setting model object
-		this.clearEvent();
-		this.setProperty(propertyName, testValue1);
-		this.verifyPutProperty(propertyName, testValue1);
-	}
-
-	/**
-	 * Performs the following operations with the property:<br>
-	 * 1. performs a remove on the PU<br>
-	 * 2. performs a add with putProperty<br>
-	 * 3. performs a replace with putProperty<br>
-	 */
-	protected void verifyAddRemoveProperty(String elKey, Object testValue1, Object testValue2) throws Exception {
-		PersistenceUnit.Property property = this.getPersistenceUnit().getProperty(elKey);
-		String propertyName = this.getModel().propertyIdFor(property);
-
-		// Remove
-		this.clearEvent();
-		--this.propertiesTotal;
-		--this.modelPropertiesSize;
-		assertNotNull("persistenceUnit.properties doesn't contains: " + elKey, this.getPersistenceUnit().getProperty(elKey));
-		this.getPersistenceUnit().removeProperty(elKey);
-		assertNull(this.getPersistenceUnit().getProperty(elKey));
-		assertEquals(this.modelPropertiesSize, this.modelPropertiesSizeOriginal - 1);
-		this.verifyPutProperty(propertyName, null);
-		
-		// Add original CacheTypeDefault
-		++this.propertiesTotal;
-		++this.modelPropertiesSize;
-		this.persistenceUnitSetProperty(elKey, testValue1);
-		this.verifyPutProperty(propertyName, testValue1);
-		
-		// Replace
-		this.persistenceUnitSetProperty(elKey, testValue2);
-		this.verifyPutProperty(propertyName, testValue2);
-	}
-	
-	/**
-	 * Verifies the model's property identified by the given propertyName
-	 * Used in verifySetProperty() and verifyAddRemoveProperty
-	 * 
-	 * @param propertyName
-	 *            name of property to be verified
-	 * @param expectedValue
-	 * @throws Exception
-	 */
-	protected void verifyPutProperty(String propertyName, Object expectedValue) throws Exception {
-
-		this.verifyPutEvent(propertyName, this.getProperty(propertyName), expectedValue);
-	}
-
-	/**
-	 * Verifies the event of the put() action.
-	 * 
-	 * @param propertyName
-	 *            name of property to be verified
-	 * @param propertyValue
-	 *            value of property
-	 * @param expectedValue
-	 * @throws Exception
-	 */
-	protected void verifyPutEvent(String propertyName, Object propertyValue, Object expectedValue) {
-		
-		this.verifyEvent(propertyName);
-		this.verifyEventValue(propertyValue, expectedValue);
-	}
-
-	/**
-	 * Performs the following tests:<br>
-	 * 1. verifies the new value of this.propertyChangedEvent<br>
-	 * 2. verifies the given value<br>
-	 */
-	protected void verifyEventValue(Object value, Object expectedValue) {
-		// verify event value
-		assertEquals(expectedValue, this.propertyChangedEvent.getNewValue());
-		assertEquals(expectedValue, value);
-	}
-
-	/**
-	 * Performs the following tests:<br>
-	 * 1. verifies that an event is fired<br>
-	 * 2. verifies that it is the correct event<br>
-	 * 3. verifies that a single event is fired<br>
-	 */
-	protected void verifyEvent(String propertyName) {
-		// verify event received
-		assertNotNull("No Event Fired.", this.propertyChangedEvent);
-		// verify event for the expected property
-		assertEquals("Wrong Event.", this.propertyChangedEvent.getAspectName(), propertyName);
-		// verify event occurrence
-		assertTrue("No Event Received.", this.propertyChangedEventCount > 0);
-		assertTrue("Multiple Event Received (" +  this.propertyChangedEventCount + ")",
-			this.propertyChangedEventCount < 2);
-	}
-
-	protected void verifyHasNoListeners(ListValueModel<?> listValueModel) throws Exception {
-		assertTrue(((AbstractModel) listValueModel).hasNoListChangeListeners(ListValueModel.LIST_VALUES));
-	}
-
-	protected void verifyHasListeners(ListValueModel<?> listValueModel) throws Exception {
-		assertTrue(((AbstractModel) listValueModel).hasAnyListChangeListeners(ListValueModel.LIST_VALUES));
-	}
-
-	protected void verifyHasListeners(PersistenceUnitProperties model, String propertyName) throws Exception {
-		assertTrue("Listener not added in setUp() - " + propertyName, ((AbstractModel) model).hasAnyPropertyChangeListeners(propertyName));
-	}
-
-	protected void verifyHasListeners(PropertyValueModel<?> pvm, String propertyName) throws Exception {
-		assertTrue(((AbstractModel) pvm).hasAnyPropertyChangeListeners(propertyName));
-	}
-
-	protected void verifyPuHasProperty(String eclipseLinkPropertyName, String msg) {
-		assertNotNull(msg + " - " + eclipseLinkPropertyName, this.getPersistenceUnit().getProperty(eclipseLinkPropertyName));
-	}
-
-	protected void verifyPuHasNotProperty(String eclipseLinkPropertyName, String msg) {
-		assertNull(msg + " - " + eclipseLinkPropertyName, this.getPersistenceUnit().getProperty(eclipseLinkPropertyName));
-	}
-
-}
diff --git a/jpa/tests/org.eclipse.jpt.eclipselink.core.tests/src/org/eclipse/jpt/eclipselink/core/tests/internal/context/persistence/caching/CachingAdapterTests.java b/jpa/tests/org.eclipse.jpt.eclipselink.core.tests/src/org/eclipse/jpt/eclipselink/core/tests/internal/context/persistence/caching/CachingAdapterTests.java
deleted file mode 100644
index b086122..0000000
--- a/jpa/tests/org.eclipse.jpt.eclipselink.core.tests/src/org/eclipse/jpt/eclipselink/core/tests/internal/context/persistence/caching/CachingAdapterTests.java
+++ /dev/null
@@ -1,430 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.eclipselink.core.tests.internal.context.persistence.caching;
-
-import org.eclipse.jpt.eclipselink.core.internal.context.persistence.PersistenceUnitProperties;
-import org.eclipse.jpt.eclipselink.core.internal.context.persistence.caching.CacheProperties;
-import org.eclipse.jpt.eclipselink.core.internal.context.persistence.caching.CacheType;
-import org.eclipse.jpt.eclipselink.core.internal.context.persistence.caching.Caching;
-import org.eclipse.jpt.eclipselink.core.internal.context.persistence.caching.FlushClearCache;
-import org.eclipse.jpt.eclipselink.core.tests.internal.context.persistence.PersistenceUnitTestCase;
-import org.eclipse.jpt.utility.model.event.ListChangeEvent;
-import org.eclipse.jpt.utility.model.listener.ListChangeListener;
-import org.eclipse.jpt.utility.model.listener.PropertyChangeListener;
-
-/**
- * Tests the update of model objects by the Caching adapter when the
- * PersistenceUnit changes.
- */
-@SuppressWarnings("nls")
-public class CachingAdapterTests extends PersistenceUnitTestCase
-{
-	private Caching caching;
-	private ListChangeEvent entitiesEvent;
-
-	public static final String ENTITY_TEST = "Employee";
-	public static final String ENTITY_TEST_2 = "Address";
-
-	public static final String CACHE_TYPE_DEFAULT_KEY = Caching.ECLIPSELINK_CACHE_TYPE_DEFAULT;
-	public static final CacheType CACHE_TYPE_DEFAULT_TEST_VALUE = CacheType.soft_weak;
-	public static final CacheType CACHE_TYPE_DEFAULT_TEST_VALUE_2 = CacheType.full;
-
-	public static final String CACHE_SIZE_DEFAULT_KEY = Caching.ECLIPSELINK_CACHE_SIZE_DEFAULT;
-	public static final Integer CACHE_SIZE_DEFAULT_TEST_VALUE = 12345;
-	public static final Integer CACHE_SIZE_DEFAULT_TEST_VALUE_2 = 67890;
-
-	public static final String SHARED_CACHE_DEFAULT_KEY = Caching.ECLIPSELINK_CACHE_SHARED_DEFAULT;
-	public static final Boolean SHARED_CACHE_DEFAULT_TEST_VALUE = false;
-	public static final Boolean SHARED_CACHE_DEFAULT_TEST_VALUE_2 = true;
-
-	public static final String CACHE_TYPE_KEY = Caching.ECLIPSELINK_CACHE_TYPE + ENTITY_TEST;
-	public static final CacheType CACHE_TYPE_TEST_VALUE = CacheType.soft_weak;
-	public static final CacheType CACHE_TYPE_TEST_VALUE_2 = CacheType.full;
-
-	public static final String SHARED_CACHE_KEY = Caching.ECLIPSELINK_SHARED_CACHE + ENTITY_TEST;
-	public static final Boolean SHARED_CACHE_TEST_VALUE = false;
-	public static final Boolean SHARED_CACHE_TEST_VALUE_2 = true;
-
-	public static final String CACHE_SIZE_KEY = Caching.ECLIPSELINK_CACHE_SIZE + ENTITY_TEST;
-	public static final Integer CACHE_SIZE_TEST_VALUE = 12345;
-	public static final Integer CACHE_SIZE_TEST_VALUE_2 = 67890;
-	
-	public static final String FLUSH_CLEAR_CACHE_KEY = Caching.ECLIPSELINK_FLUSH_CLEAR_CACHE;
-	public static final FlushClearCache FLUSH_CLEAR_CACHE_TEST_VALUE = FlushClearCache.drop;
-	public static final FlushClearCache FLUSH_CLEAR_CACHE_TEST_VALUE_2 = FlushClearCache.merge;
-
-	public CachingAdapterTests(String name) {
-		super(name);
-	}
-
-	@Override
-	protected void setUp() throws Exception {
-		super.setUp();
-		this.caching = this.getPersistenceUnit().getCaching();
-		PropertyChangeListener propertyChangeListener = this.buildPropertyChangeListener();
-		
-		this.caching.addPropertyChangeListener(Caching.CACHE_TYPE_DEFAULT_PROPERTY, propertyChangeListener);
-		this.caching.addPropertyChangeListener(Caching.CACHE_SIZE_DEFAULT_PROPERTY, propertyChangeListener);
-		this.caching.addPropertyChangeListener(Caching.SHARED_CACHE_DEFAULT_PROPERTY, propertyChangeListener);
-		this.caching.addPropertyChangeListener(Caching.CACHE_TYPE_PROPERTY, propertyChangeListener);
-		this.caching.addPropertyChangeListener(Caching.CACHE_SIZE_PROPERTY, propertyChangeListener);
-		this.caching.addPropertyChangeListener(Caching.SHARED_CACHE_PROPERTY, propertyChangeListener);
-		this.caching.addPropertyChangeListener(Caching.FLUSH_CLEAR_CACHE_PROPERTY, propertyChangeListener);
-		
-		ListChangeListener entitiesChangeListener = this.buildEntitiesChangeListener();
-		this.caching.addListChangeListener(Caching.ENTITIES_LIST_PROPERTY, entitiesChangeListener);
-		this.clearEvent();
-	}
-
-	/**
-	 * Initializes directly the PU properties before testing. 
-	 */
-	@Override
-	protected void populatePu() {
-		this.modelPropertiesSizeOriginal = 7;
-		this.propertiesTotal = this.modelPropertiesSizeOriginal + 4; // 4 misc properties
-		this.modelPropertiesSize = this.modelPropertiesSizeOriginal;
-		
-		this.persistenceUnitSetProperty("misc.property.1", "value.1");
-		this.persistenceUnitSetProperty(CACHE_TYPE_DEFAULT_KEY, CACHE_TYPE_DEFAULT_TEST_VALUE);
-		this.persistenceUnitSetProperty("misc.property.2", "value.2");
-		this.persistenceUnitSetProperty(CACHE_SIZE_DEFAULT_KEY, CACHE_SIZE_DEFAULT_TEST_VALUE);
-		this.persistenceUnitSetProperty(SHARED_CACHE_DEFAULT_KEY, SHARED_CACHE_DEFAULT_TEST_VALUE);
-		this.persistenceUnitSetProperty("misc.property.3", "value.3");
-		this.persistenceUnitSetProperty("misc.property.4", "value.4");
-		this.persistenceUnitSetProperty(CACHE_SIZE_KEY, CACHE_SIZE_TEST_VALUE);
-		this.persistenceUnitSetProperty(CACHE_TYPE_KEY, CACHE_TYPE_TEST_VALUE);
-		this.persistenceUnitSetProperty(SHARED_CACHE_KEY, SHARED_CACHE_TEST_VALUE);
-		this.persistenceUnitSetProperty(FLUSH_CLEAR_CACHE_KEY, FLUSH_CLEAR_CACHE_TEST_VALUE);
-		return;
-	}
-
-	// ********** Listeners **********
-	private ListChangeListener buildEntitiesChangeListener() {
-		return new ListChangeListener() {
-			public void itemsAdded(ListChangeEvent e) {
-				CachingAdapterTests.this.throwUnsupportedOperationException(e);
-			}
-
-			public void itemsRemoved(ListChangeEvent e) {
-				CachingAdapterTests.this.throwUnsupportedOperationException(e);
-			}
-
-			public void itemsReplaced(ListChangeEvent e) {
-				CachingAdapterTests.this.throwUnsupportedOperationException(e);
-			}
-
-			public void itemsMoved(ListChangeEvent e) {
-				CachingAdapterTests.this.throwUnsupportedOperationException(e);
-			}
-
-			public void listCleared(ListChangeEvent e) {
-				CachingAdapterTests.this.throwUnsupportedOperationException(e);
-			}
-
-			public void listChanged(ListChangeEvent e) {
-				CachingAdapterTests.this.entityChanged(e);
-			}
-		};
-	}
-
-	@Override
-	protected void clearEvent() {
-		super.clearEvent();
-		this.entitiesEvent = null;
-	}
-
-	void entityChanged(ListChangeEvent e) {
-		this.entitiesEvent = e;
-	}
-
-	// ********** entities list **********
-	public void testEntitiesList() throws Exception {
-		// add
-		this.clearEvent();
-		this.caching.addEntity(ENTITY_TEST_2);
-		
-		// verify event received
-		assertNotNull("No Event Fired.", this.entitiesEvent);
-		// verify event for the expected property
-		assertEquals("Wrong Event.", this.entitiesEvent.getAspectName(), Caching.ENTITIES_LIST_PROPERTY);
-
-		// remove
-		this.clearEvent();
-		this.caching.removeEntity(ENTITY_TEST_2);
-		// verify event received
-		assertNotNull("No Event Fired.", this.entitiesEvent);
-		// verify event for the expected property
-		assertEquals("Wrong Event.", this.entitiesEvent.getAspectName(), Caching.ENTITIES_LIST_PROPERTY);
-	}
-
-	// ********** CacheTypeDefault **********
-	/**
-	 * Tests the update of CacheTypeDefault property by the Caching adapter when
-	 * the PU or the model changes.
-	 */
-	public void testSetCacheTypeDefault() throws Exception {
-		this.verifyModelInitialized(
-			CACHE_TYPE_DEFAULT_KEY,
-			CACHE_TYPE_DEFAULT_TEST_VALUE);
-		this.verifySetProperty(
-			CACHE_TYPE_DEFAULT_KEY,
-			CACHE_TYPE_DEFAULT_TEST_VALUE,
-			CACHE_TYPE_DEFAULT_TEST_VALUE_2);
-	}
-
-	public void testAddRemoveCacheTypeDefault() throws Exception {
-		this.verifyAddRemoveProperty(
-			CACHE_TYPE_DEFAULT_KEY,
-			CACHE_TYPE_DEFAULT_TEST_VALUE,
-			CACHE_TYPE_DEFAULT_TEST_VALUE_2);
-	}
-
-	// ********** CacheSizeDefault **********
-	/**
-	 * Tests the update of CacheSizeDefault property by the Caching adapter when
-	 * the PU or the model changes.
-	 */
-	public void testSetCacheSizeDefault() throws Exception {
-		this.verifyModelInitialized(
-			CACHE_SIZE_DEFAULT_KEY,
-			CACHE_SIZE_DEFAULT_TEST_VALUE);
-		this.verifySetProperty(
-			CACHE_SIZE_DEFAULT_KEY,
-			CACHE_SIZE_DEFAULT_TEST_VALUE,
-			CACHE_SIZE_DEFAULT_TEST_VALUE_2);
-	}
-
-	public void testAddRemoveCacheSizeDefault() throws Exception {
-		this.verifyAddRemoveProperty(
-			CACHE_SIZE_DEFAULT_KEY,
-			CACHE_SIZE_DEFAULT_TEST_VALUE,
-			CACHE_SIZE_DEFAULT_TEST_VALUE_2);
-	}
-
-	// ********** SharedCacheDefault **********
-	public void testSetSharedCacheDefault() throws Exception {
-		this.verifyModelInitialized(
-			SHARED_CACHE_DEFAULT_KEY,
-			SHARED_CACHE_DEFAULT_TEST_VALUE);
-		this.verifySetProperty(
-			SHARED_CACHE_DEFAULT_KEY,
-			SHARED_CACHE_DEFAULT_TEST_VALUE,
-			SHARED_CACHE_DEFAULT_TEST_VALUE_2);
-	}
-
-	public void testAddRemoveSharedCacheDefault() throws Exception {
-		this.verifyAddRemoveProperty(
-			SHARED_CACHE_DEFAULT_KEY,
-			SHARED_CACHE_DEFAULT_TEST_VALUE,
-			SHARED_CACHE_DEFAULT_TEST_VALUE_2);
-	}
-
-	// ********** CacheType **********
-	/**
-	 * Tests the update of CacheType property by the Caching adapter when the PU
-	 * or the model changes.
-	 */
-	public void testSetCacheType() throws Exception {
-		this.verifyModelInitialized(
-			CACHE_TYPE_KEY,
-			CACHE_TYPE_TEST_VALUE);
-		this.verifySetCachingProperty(
-			Caching.CACHE_TYPE_PROPERTY,
-			CACHE_TYPE_KEY,
-			CACHE_TYPE_TEST_VALUE,
-			CACHE_TYPE_TEST_VALUE_2);
-	}
-
-	public void testAddRemoveCacheType() throws Exception {
-		this.verifyAddRemoveCachingProperty(
-			Caching.CACHE_TYPE_PROPERTY,
-			CACHE_TYPE_KEY,
-			CACHE_TYPE_TEST_VALUE,
-			CACHE_TYPE_TEST_VALUE_2);
-	}
-
-	// ********** CacheSize **********
-	/**
-	 * Tests the update of CacheSize property by the Caching adapter when the PU
-	 * or the model changes.
-	 */
-	public void testSetCacheSize() throws Exception {
-		this.verifyModelInitialized(
-			CACHE_SIZE_KEY,
-			CACHE_SIZE_TEST_VALUE);
-		this.verifySetCachingProperty(
-			Caching.CACHE_SIZE_PROPERTY,
-			CACHE_SIZE_KEY,
-			CACHE_SIZE_TEST_VALUE,
-			CACHE_SIZE_TEST_VALUE_2);
-	}
-
-	public void testAddRemoveCacheSize() throws Exception {
-		this.verifyAddRemoveCachingProperty(
-			Caching.CACHE_SIZE_PROPERTY,
-			CACHE_SIZE_KEY,
-			CACHE_SIZE_TEST_VALUE,
-			CACHE_SIZE_TEST_VALUE_2);
-	}
-
-	// ********** SharedCache **********
-	/**
-	 * Tests the update of SharedCache property by the Caching adapter when the
-	 * PU or the model changes.
-	 */
-	public void testSetSharedCache() throws Exception {
-		this.verifyModelInitialized(
-			SHARED_CACHE_KEY,
-			SHARED_CACHE_TEST_VALUE);
-		this.verifySetCachingProperty(
-			Caching.SHARED_CACHE_PROPERTY,
-			SHARED_CACHE_KEY,
-			SHARED_CACHE_TEST_VALUE,
-			SHARED_CACHE_TEST_VALUE_2);
-	}
-
-	public void testAddRemoveSharedCache() throws Exception {
-		this.verifyAddRemoveCachingProperty(
-			Caching.SHARED_CACHE_PROPERTY,
-			SHARED_CACHE_KEY,
-			SHARED_CACHE_TEST_VALUE,
-			SHARED_CACHE_TEST_VALUE_2);
-	}
-
-	// ********** FlushClearCache tests **********
-	public void testSetFlushClearCache() throws Exception {
-		this.verifyModelInitialized(
-			FLUSH_CLEAR_CACHE_KEY,
-			FLUSH_CLEAR_CACHE_TEST_VALUE);
-		this.verifySetProperty(
-			FLUSH_CLEAR_CACHE_KEY,
-			FLUSH_CLEAR_CACHE_TEST_VALUE,
-			FLUSH_CLEAR_CACHE_TEST_VALUE_2);
-	}
-
-	public void testAddRemoveFlushClearCache() throws Exception {
-		this.verifyAddRemoveProperty(
-			FLUSH_CLEAR_CACHE_KEY,
-			FLUSH_CLEAR_CACHE_TEST_VALUE,
-			FLUSH_CLEAR_CACHE_TEST_VALUE_2);
-	}
-
-	// ****** convenience methods *******
-	@Override
-	protected PersistenceUnitProperties getModel() {
-		return this.caching;
-	}
-
-	protected void verifySetCachingProperty(String propertyName, String key, Object testValue1, Object testValue2) throws Exception {
-		// Replace
-		this.persistenceUnitSetProperty(key, testValue2);
-		this.verifyPutCachingProperty(propertyName, ENTITY_TEST, testValue2);
-		
-		// Replace by setting model object
-		this.clearEvent();
-		this.setCachingProperty(propertyName, ENTITY_TEST, testValue1);
-		this.verifyPutCachingProperty(propertyName, ENTITY_TEST, testValue1);
-	}
-
-	protected void verifyAddRemoveCachingProperty(String propertyName, String key, Object testValue1, Object testValue2) throws Exception {
-		// Remove
-		this.clearEvent();
-		--this.propertiesTotal;
-		--this.modelPropertiesSize;
-		this.getPersistenceUnit().removeProperty(key);
-		assertNull(this.getPersistenceUnit().getProperty(key));
-		assertEquals(this.modelPropertiesSize, this.modelPropertiesSizeOriginal - 1);
-		this.verifyPutCachingProperty(propertyName, ENTITY_TEST, null);
-		
-		// Add original Property
-		++this.propertiesTotal;
-		++this.modelPropertiesSize;
-		this.persistenceUnitSetProperty(key, testValue1);
-		this.verifyPutCachingProperty(propertyName, ENTITY_TEST, testValue1);
-		
-		// Replace
-		this.persistenceUnitSetProperty(key, testValue2);
-		this.verifyPutCachingProperty(propertyName, ENTITY_TEST, testValue2);
-	}
-
-	protected void verifyPutCachingProperty(String propertyName, String entityName, Object expectedValue) throws Exception {
-		this.verifyEvent(propertyName);
-		this.verifyCachingEvent(propertyName, entityName, expectedValue);
-	}
-
-	protected void verifyCachingEvent(String propertyName, String entityName, Object expectedValue) throws Exception {
-		// verify event value
-		CacheProperties cache = (CacheProperties) this.propertyChangedEvent.getNewValue();
-		if (propertyName.equals(Caching.CACHE_TYPE_PROPERTY)) {
-			assertEquals(expectedValue, cache.getType());
-			assertEquals(expectedValue, this.caching.getCacheType(entityName));
-		}
-		else if (propertyName.equals(Caching.CACHE_SIZE_PROPERTY)) {
-			assertEquals(expectedValue, cache.getSize());
-			assertEquals(expectedValue, this.caching.getCacheSize(entityName));
-		}
-		else if (propertyName.equals(Caching.SHARED_CACHE_PROPERTY)) {
-			assertEquals(expectedValue, cache.isShared());
-			assertEquals(expectedValue, this.caching.getSharedCache(entityName));
-		}
-		else {
-			this.throwMissingDefinition("verifyCachingEvent", propertyName);
-		}
-	}
-
-	// ********** get/set property **********
-	@Override
-	protected void setProperty(String propertyName, Object newValue) throws Exception {
-		if (propertyName.equals(Caching.CACHE_TYPE_DEFAULT_PROPERTY))
-			this.caching.setCacheTypeDefault((CacheType) newValue);
-		else if (propertyName.equals(Caching.CACHE_SIZE_DEFAULT_PROPERTY))
-			this.caching.setCacheSizeDefault((Integer) newValue);
-		else if (propertyName.equals(Caching.SHARED_CACHE_DEFAULT_PROPERTY))
-			this.caching.setSharedCacheDefault((Boolean) newValue);
-		else if (propertyName.equals(Caching.FLUSH_CLEAR_CACHE_PROPERTY))
-			this.caching.setFlushClearCache((FlushClearCache) newValue);
-		else
-			this.throwMissingDefinition("setProperty", propertyName);
-	}
-
-	protected void setCachingProperty(String propertyName, String entityName, Object newValue) throws NoSuchFieldException {
-		if (propertyName.equals(Caching.CACHE_TYPE_PROPERTY))
-			this.caching.setCacheType((CacheType) newValue, entityName);
-		else if (propertyName.equals(Caching.CACHE_SIZE_PROPERTY))
-			this.caching.setCacheSize((Integer) newValue, entityName);
-		else if (propertyName.equals(Caching.SHARED_CACHE_PROPERTY))
-			this.caching.setSharedCache((Boolean) newValue, entityName);
-		else
-			this.throwMissingDefinition("setCachingProperty", propertyName);
-	}
-
-	@Override
-	protected Object getProperty(String propertyName) throws NoSuchFieldException {
-		Object modelValue = null;
-		if (propertyName.equals(Caching.CACHE_TYPE_DEFAULT_PROPERTY))
-			modelValue = this.caching.getCacheTypeDefault();
-		else if (propertyName.equals(Caching.CACHE_SIZE_DEFAULT_PROPERTY))
-			modelValue = this.caching.getCacheSizeDefault();
-		else if (propertyName.equals(Caching.SHARED_CACHE_DEFAULT_PROPERTY))
-			modelValue = this.caching.getSharedCacheDefault();
-		else if (propertyName.equals(Caching.CACHE_SIZE_PROPERTY))
-			modelValue = this.caching.getCacheSize(ENTITY_TEST);
-		else if (propertyName.equals(Caching.CACHE_TYPE_PROPERTY))
-			modelValue = this.caching.getCacheType(ENTITY_TEST);
-		else if (propertyName.equals(Caching.SHARED_CACHE_PROPERTY))
-			modelValue = this.caching.getSharedCache(ENTITY_TEST);
-		else if (propertyName.equals(Caching.FLUSH_CLEAR_CACHE_PROPERTY))
-			modelValue = this.caching.getFlushClearCache();
-		else
-			this.throwMissingDefinition("getProperty", propertyName);
-		return modelValue;
-	}
-}
diff --git a/jpa/tests/org.eclipse.jpt.eclipselink.core.tests/src/org/eclipse/jpt/eclipselink/core/tests/internal/context/persistence/caching/CachingValueModelTests.java b/jpa/tests/org.eclipse.jpt.eclipselink.core.tests/src/org/eclipse/jpt/eclipselink/core/tests/internal/context/persistence/caching/CachingValueModelTests.java
deleted file mode 100644
index fbfab0f..0000000
--- a/jpa/tests/org.eclipse.jpt.eclipselink.core.tests/src/org/eclipse/jpt/eclipselink/core/tests/internal/context/persistence/caching/CachingValueModelTests.java
+++ /dev/null
@@ -1,401 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008, 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- *******************************************************************************/
-package org.eclipse.jpt.eclipselink.core.tests.internal.context.persistence.caching;
-
-import org.eclipse.jpt.eclipselink.core.internal.context.persistence.PersistenceUnitProperties;
-import org.eclipse.jpt.eclipselink.core.internal.context.persistence.caching.CacheType;
-import org.eclipse.jpt.eclipselink.core.internal.context.persistence.caching.Caching;
-import org.eclipse.jpt.eclipselink.core.tests.internal.context.persistence.PersistenceUnitTestCase;
-import org.eclipse.jpt.utility.internal.model.AbstractModel;
-import org.eclipse.jpt.utility.internal.model.value.PropertyAspectAdapter;
-import org.eclipse.jpt.utility.internal.model.value.SimplePropertyValueModel;
-import org.eclipse.jpt.utility.model.event.PropertyChangeEvent;
-import org.eclipse.jpt.utility.model.listener.PropertyChangeListener;
-import org.eclipse.jpt.utility.model.value.PropertyValueModel;
-import org.eclipse.jpt.utility.model.value.WritablePropertyValueModel;
-
-/**
- * CachingValueModelTests
- */
-@SuppressWarnings("nls")
-public class CachingValueModelTests extends PersistenceUnitTestCase
-{
-	private Caching caching;
-	private PropertyValueModel<Caching> cachingHolder;
-	
-	private WritablePropertyValueModel<CacheType> cacheTypeHolder;
-	private PropertyChangeListener cacheTypeListener;
-	private PropertyChangeEvent cacheTypeEvent;
-
-	private WritablePropertyValueModel<Boolean> sharedCacheHolder;
-	private PropertyChangeListener sharedCacheListener;
-	private PropertyChangeEvent sharedCacheEvent;
-
-	private WritablePropertyValueModel<CacheType> cacheTypeDefaultHolder;
-	private PropertyChangeListener cacheTypeDefaultListener;
-	private PropertyChangeEvent cacheTypeDefaultEvent;
-
-	private WritablePropertyValueModel<Boolean> sharedCacheDefaultHolder;
-	private PropertyChangeListener sharedCacheDefaultListener;
-	private PropertyChangeEvent sharedCacheDefaultEvent;
-
-	public static final String ENTITY_NAME_TEST_VALUE = "Employee";
-	public static final CacheType CACHE_TYPE_TEST_VALUE = CacheType.hard_weak;
-	public static final Boolean SHARED_CACHE_TEST_VALUE = Boolean.FALSE;
-	public static final CacheType CACHE_TYPE_DEFAULT_TEST_VALUE = CacheType.weak;
-	public static final Boolean SHARED_CACHE_DEFAULT_TEST_VALUE = Boolean.FALSE;
-
-	public CachingValueModelTests(String name) {
-		super(name);
-	}
-
-	@Override
-	protected void setUp() throws Exception {
-		super.setUp();
-		this.caching = this.subject.getCaching(); // Subject
-		this.cachingHolder = new SimplePropertyValueModel<Caching>(this.caching);
-		
-		this.cacheTypeHolder = this.buildCacheTypeAA(this.cachingHolder);
-		this.cacheTypeListener = this.buildCacheTypeChangeListener();
-		this.cacheTypeHolder.addPropertyChangeListener(PropertyValueModel.VALUE, this.cacheTypeListener);
-		this.cacheTypeEvent = null;
-		
-		this.sharedCacheHolder = this.buildSharedCacheAA(this.cachingHolder);
-		this.sharedCacheListener = this.buildSharedCacheChangeListener();
-		this.sharedCacheHolder.addPropertyChangeListener(PropertyValueModel.VALUE, this.sharedCacheListener);
-		this.sharedCacheEvent = null;
-		
-		this.cacheTypeDefaultHolder = this.buildCacheTypeDefaultAA(this.cachingHolder);
-		this.cacheTypeDefaultListener = this.buildCacheTypeDefaultChangeListener();
-		this.cacheTypeDefaultHolder.addPropertyChangeListener(PropertyValueModel.VALUE, this.cacheTypeDefaultListener);
-		this.cacheTypeDefaultEvent = null;
-		
-		this.sharedCacheDefaultHolder = this.buildSharedCacheDefaultAA(this.cachingHolder);
-		this.sharedCacheDefaultListener = this.buildSharedCacheDefaultChangeListener();
-		this.sharedCacheDefaultHolder.addPropertyChangeListener(PropertyValueModel.VALUE, this.sharedCacheDefaultListener);
-		this.sharedCacheDefaultEvent = null;
-	}
-
-	public void testHasListeners() {
-		AbstractModel subjectCaching = (AbstractModel) this.caching; // Subject
-		PropertyAspectAdapter<Caching, CacheType> cacheTypeAA = 
-			(PropertyAspectAdapter<Caching, CacheType>) this.cacheTypeHolder;
-		assertTrue(cacheTypeAA.hasAnyPropertyChangeListeners(PropertyValueModel.VALUE));
-		assertTrue(subjectCaching.hasAnyPropertyChangeListeners(Caching.CACHE_TYPE_PROPERTY));
-		
-		cacheTypeAA.removePropertyChangeListener(PropertyValueModel.VALUE, this.cacheTypeListener);
-		assertFalse(subjectCaching.hasAnyPropertyChangeListeners(Caching.CACHE_TYPE_PROPERTY));
-		assertFalse(cacheTypeAA.hasAnyPropertyChangeListeners(PropertyValueModel.VALUE));
-		
-		PropertyAspectAdapter<Caching, Boolean> sharedCacheAA = 
-			(PropertyAspectAdapter<Caching, Boolean>) this.sharedCacheHolder;
-		assertTrue(sharedCacheAA.hasAnyPropertyChangeListeners(PropertyValueModel.VALUE));
-		assertTrue(subjectCaching.hasAnyPropertyChangeListeners(Caching.SHARED_CACHE_PROPERTY));
-		
-		sharedCacheAA.removePropertyChangeListener(PropertyValueModel.VALUE, this.sharedCacheListener);
-		assertFalse(subjectCaching.hasAnyPropertyChangeListeners(Caching.SHARED_CACHE_PROPERTY));
-		assertFalse(sharedCacheAA.hasAnyPropertyChangeListeners(PropertyValueModel.VALUE));
-		
-		PropertyAspectAdapter<Caching, CacheType> cacheTypeDefaultAA = 
-			(PropertyAspectAdapter<Caching, CacheType>) this.cacheTypeDefaultHolder;
-		assertTrue(cacheTypeDefaultAA.hasAnyPropertyChangeListeners(PropertyValueModel.VALUE));
-		assertTrue(subjectCaching.hasAnyPropertyChangeListeners(Caching.CACHE_TYPE_DEFAULT_PROPERTY));
-		
-		cacheTypeDefaultAA.removePropertyChangeListener(PropertyValueModel.VALUE, this.cacheTypeDefaultListener);
-		assertFalse(subjectCaching.hasAnyPropertyChangeListeners(Caching.CACHE_TYPE_DEFAULT_PROPERTY));
-		assertFalse(cacheTypeDefaultAA.hasAnyPropertyChangeListeners(PropertyValueModel.VALUE));
-		
-		PropertyAspectAdapter<Caching, Boolean> sharedCacheDefaultAA = 
-			(PropertyAspectAdapter<Caching, Boolean>) this.sharedCacheDefaultHolder;
-		assertTrue(sharedCacheDefaultAA.hasAnyPropertyChangeListeners(PropertyValueModel.VALUE));
-		assertTrue(subjectCaching.hasAnyPropertyChangeListeners(Caching.SHARED_CACHE_DEFAULT_PROPERTY));
-		
-		sharedCacheDefaultAA.removePropertyChangeListener(PropertyValueModel.VALUE, this.sharedCacheDefaultListener);
-		assertFalse(subjectCaching.hasAnyPropertyChangeListeners(Caching.SHARED_CACHE_DEFAULT_PROPERTY));
-		assertFalse(sharedCacheDefaultAA.hasAnyPropertyChangeListeners(PropertyValueModel.VALUE));
-	}
-
-	/**
-	 * Initializes directly the PU properties before testing.
-	 */
-	@Override
-	protected void populatePu() {
-		this.persistenceUnitSetProperty(
-			Caching.ECLIPSELINK_CACHE_TYPE + ENTITY_NAME_TEST_VALUE, 
-			CACHE_TYPE_TEST_VALUE);
-		this.persistenceUnitSetProperty(
-			Caching.ECLIPSELINK_SHARED_CACHE + ENTITY_NAME_TEST_VALUE, 
-			SHARED_CACHE_TEST_VALUE);
-		this.persistenceUnitSetProperty(
-			Caching.ECLIPSELINK_CACHE_TYPE_DEFAULT, 
-			CACHE_TYPE_DEFAULT_TEST_VALUE);
-		this.persistenceUnitSetProperty(
-			Caching.ECLIPSELINK_CACHE_SHARED_DEFAULT, 
-			SHARED_CACHE_DEFAULT_TEST_VALUE);
-		return;
-	}
-
-	@Override
-	protected PersistenceUnitProperties getModel() {
-		return this.caching;
-	}
-
-	/** ****** CacheType ******* */
-	private WritablePropertyValueModel<CacheType> buildCacheTypeAA(PropertyValueModel<Caching> subjectHolder) {
-		return new PropertyAspectAdapter<Caching, CacheType>(subjectHolder, Caching.CACHE_TYPE_PROPERTY) {
-			@Override
-			protected CacheType buildValue_() {
-				return this.subject.getCacheType(ENTITY_NAME_TEST_VALUE);
-			}
-
-			@Override
-			protected void setValue_(CacheType enumValue) {
-				this.subject.setCacheType(enumValue, ENTITY_NAME_TEST_VALUE);
-			}
-		};
-	}
-
-	private PropertyChangeListener buildCacheTypeChangeListener() {
-		return new PropertyChangeListener() {
-			public void propertyChanged(PropertyChangeEvent e) {
-				CachingValueModelTests.this.cacheTypeEvent = e;
-			}
-		};
-	}
-
-	/** ****** SharedCache ******* */
-	private WritablePropertyValueModel<Boolean> buildSharedCacheAA(PropertyValueModel<Caching> subjectHolder) {
-		return new PropertyAspectAdapter<Caching, Boolean>(subjectHolder, Caching.SHARED_CACHE_PROPERTY) {
-			@Override
-			protected Boolean buildValue_() {
-				return this.subject.getSharedCache(ENTITY_NAME_TEST_VALUE);
-			}
-
-			@Override
-			protected void setValue_(Boolean enumValue) {
-				this.subject.setSharedCache(enumValue, ENTITY_NAME_TEST_VALUE);
-			}
-		};
-	}
-
-	private PropertyChangeListener buildSharedCacheChangeListener() {
-		return new PropertyChangeListener() {
-			public void propertyChanged(PropertyChangeEvent e) {
-				CachingValueModelTests.this.sharedCacheEvent = e;
-			}
-		};
-	}
-
-	/** ****** CacheTypeDefault ******* */
-	private WritablePropertyValueModel<CacheType> buildCacheTypeDefaultAA(PropertyValueModel<Caching> subjectHolder) {
-		return new PropertyAspectAdapter<Caching, CacheType>(subjectHolder, Caching.CACHE_TYPE_DEFAULT_PROPERTY) {
-			@Override
-			protected CacheType buildValue_() {
-				return this.subject.getCacheTypeDefault();
-			}
-
-			@Override
-			protected void setValue_(CacheType enumValue) {
-				this.subject.setCacheTypeDefault(enumValue);
-			}
-		};
-	}
-
-	private PropertyChangeListener buildCacheTypeDefaultChangeListener() {
-		return new PropertyChangeListener() {
-			public void propertyChanged(PropertyChangeEvent e) {
-				CachingValueModelTests.this.cacheTypeDefaultEvent = e;
-			}
-		};
-	}
-
-	/** ****** SharedCacheDefault ******* */
-	private WritablePropertyValueModel<Boolean> buildSharedCacheDefaultAA(PropertyValueModel<Caching> subjectHolder) {
-		return new PropertyAspectAdapter<Caching, Boolean>(subjectHolder, Caching.SHARED_CACHE_DEFAULT_PROPERTY) {
-			@Override
-			protected Boolean buildValue_() {
-				return this.subject.getSharedCacheDefault();
-			}
-
-			@Override
-			protected void setValue_(Boolean enumValue) {
-				this.subject.setSharedCacheDefault(enumValue);
-			}
-		};
-	}
-
-	private PropertyChangeListener buildSharedCacheDefaultChangeListener() {
-		return new PropertyChangeListener() {
-			public void propertyChanged(PropertyChangeEvent e) {
-				CachingValueModelTests.this.sharedCacheDefaultEvent = e;
-			}
-		};
-	}
-
-	/** ****** Tests ******* */
-	public void testValue() {
-		/** ****** CacheType - defaults for entity level caching are equal to the persistence unit settings ******* */
-		this.verifyCacheTypeAAValue(CACHE_TYPE_TEST_VALUE);
-		assertEquals(this.caching.getCacheTypeDefault(), this.caching.getDefaultCacheType());
-		/** ****** SharedCache - defaults for entity level caching are equal to the persistence unit settings ******* */
-		this.verifySharedCacheAAValue(SHARED_CACHE_TEST_VALUE);
-		assertEquals(this.caching.getSharedCacheDefault(), this.caching.getDefaultSharedCache());
-		/** ****** CacheTypeDefault ******* */
-		this.verifyCacheTypeDefaultAAValue(CACHE_TYPE_DEFAULT_TEST_VALUE);
-		assertEquals(Caching.DEFAULT_CACHE_TYPE_DEFAULT, this.caching.getDefaultCacheTypeDefault());
-		/** ****** SharedCacheDefault ******* */
-		this.verifySharedCacheDefaultAAValue(SHARED_CACHE_DEFAULT_TEST_VALUE);
-		assertEquals(Caching.DEFAULT_SHARED_CACHE_DEFAULT, this.caching.getDefaultSharedCacheDefault());
-	}
-
-	public void testSetValue() throws Exception {
-		/** ****** CacheType ******* */
-		this.cacheTypeEvent = null;
-		this.verifyHasListeners(this.cacheTypeHolder, PropertyValueModel.VALUE);
-		CacheType newCacheType = CacheType.full;
-		// Modify the property holder
-		this.cacheTypeHolder.setValue(newCacheType);
-		this.verifyCacheTypeAAValue(newCacheType);
-		assertNotNull(this.cacheTypeEvent);
-		/** ****** SharedCache ******* */
-		this.sharedCacheEvent = null;
-		this.verifyHasListeners(this.sharedCacheHolder, PropertyValueModel.VALUE);
-		Boolean newSharedCache = !SHARED_CACHE_TEST_VALUE;
-		// Modify the property holder
-		this.sharedCacheHolder.setValue(newSharedCache);
-		this.verifySharedCacheAAValue(newSharedCache);
-		assertNotNull(this.sharedCacheEvent);
-		/** ****** CacheTypeDefault ******* */
-		this.cacheTypeDefaultEvent = null;
-		this.verifyHasListeners(this.cacheTypeDefaultHolder, PropertyValueModel.VALUE);
-		CacheType newCacheTypeDefault = CacheType.none;
-		// Modify the property holder
-		this.cacheTypeDefaultHolder.setValue(newCacheTypeDefault);
-		this.verifyCacheTypeDefaultAAValue(newCacheTypeDefault);
-		assertNotNull(this.cacheTypeDefaultEvent);
-		/** ****** SharedCacheDefault ******* */
-		this.sharedCacheDefaultEvent = null;
-		this.verifyHasListeners(this.sharedCacheDefaultHolder, PropertyValueModel.VALUE);
-		Boolean newSharedCacheDefault = !SHARED_CACHE_DEFAULT_TEST_VALUE;
-		// Modify the property holder
-		this.sharedCacheDefaultHolder.setValue(newSharedCacheDefault);
-		this.verifySharedCacheDefaultAAValue(newSharedCacheDefault);
-		assertNotNull(this.sharedCacheDefaultEvent);
-	}
-
-	public void testSetNullValue() {
-		String notDeleted = "Property not deleted";
-		/** ****** CacheType ******* */
-		this.cacheTypeEvent = null;
-		// Setting the property holder
-		this.cacheTypeHolder.setValue(null);
-		// testing Holder
-		this.verifyCacheTypeAAValue(null);
-		assertNotNull(this.cacheTypeEvent);
-		// testing PU properties
-		this.verifyPuHasNotProperty(Caching.ECLIPSELINK_CACHE_TYPE + ENTITY_NAME_TEST_VALUE, notDeleted);
-		/** ****** SharedCache ******* */
-		this.sharedCacheEvent = null;
-		// Setting the property holder
-		this.sharedCacheHolder.setValue(null);
-		// testing Holder
-		this.verifySharedCacheAAValue(null);
-		assertNotNull(this.sharedCacheEvent);
-		// testing PU properties
-		this.verifyPuHasNotProperty(Caching.ECLIPSELINK_SHARED_CACHE + ENTITY_NAME_TEST_VALUE, notDeleted);
-		/** ****** CacheTypeDefault ******* */
-		this.cacheTypeDefaultEvent = null;
-		// Setting the property holder
-		this.cacheTypeDefaultHolder.setValue(null);
-		// testing Holder
-		this.verifyCacheTypeDefaultAAValue(null);
-		assertNotNull(this.cacheTypeDefaultEvent);
-		// testing PU properties
-		this.verifyPuHasNotProperty(Caching.ECLIPSELINK_CACHE_TYPE_DEFAULT, notDeleted);
-		/** ****** SharedCacheDefault ******* */
-		this.sharedCacheDefaultEvent = null;
-		// Setting the property holder
-		this.sharedCacheDefaultHolder.setValue(null);
-		// testing Holder
-		this.verifySharedCacheDefaultAAValue(null);
-		assertNotNull(this.sharedCacheDefaultEvent);
-		// testing PU properties
-		this.verifyPuHasNotProperty(Caching.ECLIPSELINK_CACHE_SHARED_DEFAULT, notDeleted);
-	}
-
-	/** ****** convenience methods ******* */
-	/**
-	 * Performs three value tests:<br>
-	 * 1. subject value<br>
-	 * 2. aspect adapter value<br>
-	 * 3. persistenceUnit property value<br>
-	 */
-	protected void verifyCacheTypeAAValue(CacheType testValue) {
-		this.verifyAAValue(
-			testValue, 
-			this.caching.getCacheType(ENTITY_NAME_TEST_VALUE), 
-			this.cacheTypeHolder, 
-			Caching.ECLIPSELINK_CACHE_TYPE + ENTITY_NAME_TEST_VALUE);
-	}
-
-	/**
-	 * Performs three value tests:<br>
-	 * 1. subject value<br>
-	 * 2. aspect adapter value<br>
-	 * 3. persistenceUnit property value<br>
-	 */
-	protected void verifySharedCacheAAValue(Boolean testValue) {
-		this.verifyAAValue(
-			testValue, 
-			this.caching.getSharedCache(ENTITY_NAME_TEST_VALUE), 
-			this.sharedCacheHolder, 
-			Caching.ECLIPSELINK_SHARED_CACHE + ENTITY_NAME_TEST_VALUE);
-	}
-
-	/**
-	 * Performs three value tests:<br>
-	 * 1. subject value<br>
-	 * 2. aspect adapter value<br>
-	 * 3. persistenceUnit property value<br>
-	 */
-	protected void verifyCacheTypeDefaultAAValue(CacheType testValue) {
-		this.verifyAAValue(
-			testValue, 
-			this.caching.getCacheTypeDefault(), 
-			this.cacheTypeDefaultHolder, 
-			Caching.ECLIPSELINK_CACHE_TYPE_DEFAULT);
-	}
-
-	/**
-	 * Performs three value tests:<br>
-	 * 1. subject value<br>
-	 * 2. aspect adapter value<br>
-	 * 3. persistenceUnit property value<br>
-	 */
-	protected void verifySharedCacheDefaultAAValue(Boolean testValue) {
-		this.verifyAAValue(
-			testValue, 
-			this.caching.getSharedCacheDefault(), 
-			this.sharedCacheDefaultHolder, 
-			Caching.ECLIPSELINK_CACHE_SHARED_DEFAULT);
-	}
-
-
-	// ********** get/set property **********
-	@Override
-	protected void setProperty(String propertyName, Object newValue) throws Exception {
-		throw new UnsupportedOperationException();
-	}
-
-	@Override
-	protected Object getProperty(String propertyName) throws NoSuchFieldException {
-		throw new UnsupportedOperationException();
-	}
-}
diff --git a/jpa/tests/org.eclipse.jpt.eclipselink.core.tests/src/org/eclipse/jpt/eclipselink/core/tests/internal/context/persistence/caching/JptEclipseLinkPersistenceCachingTests.java b/jpa/tests/org.eclipse.jpt.eclipselink.core.tests/src/org/eclipse/jpt/eclipselink/core/tests/internal/context/persistence/caching/JptEclipseLinkPersistenceCachingTests.java
deleted file mode 100644
index 42da1ba..0000000
--- a/jpa/tests/org.eclipse.jpt.eclipselink.core.tests/src/org/eclipse/jpt/eclipselink/core/tests/internal/context/persistence/caching/JptEclipseLinkPersistenceCachingTests.java
+++ /dev/null
@@ -1,33 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.eclipselink.core.tests.internal.context.persistence.caching;
-
-import junit.framework.Test;
-import junit.framework.TestSuite;
-
-/**
- * decentralize test creation code
- */
-public class JptEclipseLinkPersistenceCachingTests
-{
-	public static Test suite() {
-		TestSuite suite = new TestSuite(JptEclipseLinkPersistenceCachingTests.class.getPackage().getName());
-		
-		suite.addTestSuite(CachingValueModelTests.class);
-		suite.addTestSuite(CachingAdapterTests.class);
-		
-		return suite;
-	}
-
-	private JptEclipseLinkPersistenceCachingTests() {
-		super();
-		throw new UnsupportedOperationException();
-	}
-}
diff --git a/jpa/tests/org.eclipse.jpt.eclipselink.core.tests/src/org/eclipse/jpt/eclipselink/core/tests/internal/context/persistence/connection/ConnectionAdapterTests.java b/jpa/tests/org.eclipse.jpt.eclipselink.core.tests/src/org/eclipse/jpt/eclipselink/core/tests/internal/context/persistence/connection/ConnectionAdapterTests.java
deleted file mode 100644
index 2cc33c5..0000000
--- a/jpa/tests/org.eclipse.jpt.eclipselink.core.tests/src/org/eclipse/jpt/eclipselink/core/tests/internal/context/persistence/connection/ConnectionAdapterTests.java
+++ /dev/null
@@ -1,485 +0,0 @@
-/*******************************************************************************
-* Copyright (c) 2008, 2009 Oracle. All rights reserved.
-* This program and the accompanying materials are made available under the
-* terms of the Eclipse Public License v1.0, which accompanies this distribution
-* and is available at http://www.eclipse.org/legal/epl-v10.html.
-* 
-* Contributors:
-*     Oracle - initial API and implementation
-*******************************************************************************/
-package org.eclipse.jpt.eclipselink.core.tests.internal.context.persistence.connection;
-
-import org.eclipse.jpt.core.context.persistence.PersistenceUnitTransactionType;
-import org.eclipse.jpt.eclipselink.core.internal.context.persistence.PersistenceUnitProperties;
-import org.eclipse.jpt.eclipselink.core.internal.context.persistence.connection.BatchWriting;
-import org.eclipse.jpt.eclipselink.core.internal.context.persistence.connection.Connection;
-import org.eclipse.jpt.eclipselink.core.tests.internal.context.persistence.PersistenceUnitTestCase;
-import org.eclipse.jpt.utility.model.listener.PropertyChangeListener;
-
-/**
- *  ConnectionAdapterTests
- */
-@SuppressWarnings("nls")
-public class ConnectionAdapterTests extends PersistenceUnitTestCase
-{
-	private Connection connection;
-
-	public static final PersistenceUnitTransactionType TRANSACTION_TYPE_TEST_VALUE = PersistenceUnitTransactionType.RESOURCE_LOCAL;
-	public static final PersistenceUnitTransactionType TRANSACTION_TYPE_TEST_VALUE_2 = PersistenceUnitTransactionType.JTA;
-
-	public static final String JTA_DATA_SOURCE_TEST_VALUE = "Test_JTA";
-	public static final String JTA_DATA_SOURCE_TEST_VALUE_2 = "Test_JTA_2";
-
-	public static final String NON_JTA_DATA_SOURCE_TEST_VALUE = "Test_Non_JTA";
-	public static final String NON_JTA_DATA_SOURCE_TEST_VALUE_2 = "Test_Non_JTA_2";
-	
-	public static final String NATIVE_SQL_KEY = Connection.ECLIPSELINK_NATIVE_SQL;
-	public static final Boolean NATIVE_SQL_TEST_VALUE = false;
-	public static final Boolean NATIVE_SQL_TEST_VALUE_2 = ! NATIVE_SQL_TEST_VALUE;
-
-	public static final String BATCH_WRITING_KEY = Connection.ECLIPSELINK_BATCH_WRITING;
-	public static final BatchWriting BATCH_WRITING_TEST_VALUE = BatchWriting.oracle_jdbc;
-	public static final BatchWriting BATCH_WRITING_TEST_VALUE_2 = BatchWriting.buffered;
-	
-	public static final String CACHE_STATEMENTS_KEY = Connection.ECLIPSELINK_CACHE_STATEMENTS;
-	public static final Boolean CACHE_STATEMENTS_TEST_VALUE = false;
-	public static final Boolean CACHE_STATEMENTS_TEST_VALUE_2 = ! CACHE_STATEMENTS_TEST_VALUE;
-	
-	public static final String CACHE_STATEMENTS_SIZE_KEY = Connection.ECLIPSELINK_CACHE_STATEMENTS_SIZE;
-	public static final Integer CACHE_STATEMENTS_SIZE_TEST_VALUE = 100;
-	public static final Integer CACHE_STATEMENTS_SIZE_TEST_VALUE_2 = 200;
-	
-	public static final String DRIVER_KEY = Connection.ECLIPSELINK_DRIVER;
-	public static final String DRIVER_TEST_VALUE = "test";
-	public static final String DRIVER_TEST_VALUE_2 = "test_2";
-	
-	public static final String URL_KEY = Connection.ECLIPSELINK_URL;
-	public static final String URL_TEST_VALUE = "test";
-	public static final String URL_TEST_VALUE_2 = "test_2";
-
-	public static final String USER_KEY = Connection.ECLIPSELINK_USER;
-	public static final String USER_TEST_VALUE = "test";
-	public static final String USER_TEST_VALUE_2 = "test_2";
-
-	public static final String PASSWORD_KEY = Connection.ECLIPSELINK_PASSWORD;
-	public static final String PASSWORD_TEST_VALUE = "test";
-	public static final String PASSWORD_TEST_VALUE_2 = "test_2";
-	
-	public static final String BIND_PARAMETERS_KEY = Connection.ECLIPSELINK_BIND_PARAMETERS;
-	public static final Boolean BIND_PARAMETERS_TEST_VALUE = false;
-	public static final Boolean BIND_PARAMETERS_TEST_VALUE_2 = ! BIND_PARAMETERS_TEST_VALUE;
-	
-	public static final String READ_CONNECTIONS_SHARED_KEY = Connection.ECLIPSELINK_READ_CONNECTIONS_SHARED;
-	public static final Boolean READ_CONNECTIONS_SHARED_TEST_VALUE = false;
-	public static final Boolean READ_CONNECTIONS_SHARED_TEST_VALUE_2 = ! READ_CONNECTIONS_SHARED_TEST_VALUE;
-	
-	public static final String READ_CONNECTIONS_MIN_KEY = Connection.ECLIPSELINK_READ_CONNECTIONS_MIN;
-	public static final Integer READ_CONNECTIONS_MIN_TEST_VALUE = 100;
-	public static final Integer READ_CONNECTIONS_MIN_TEST_VALUE_2 = 200;
-	
-	public static final String READ_CONNECTIONS_MAX_KEY = Connection.ECLIPSELINK_READ_CONNECTIONS_MAX;
-	public static final Integer READ_CONNECTIONS_MAX_TEST_VALUE = 100;
-	public static final Integer READ_CONNECTIONS_MAX_TEST_VALUE_2 = 200;
-	
-	public static final String WRITE_CONNECTIONS_MIN_KEY = Connection.ECLIPSELINK_WRITE_CONNECTIONS_MIN;
-	public static final Integer WRITE_CONNECTIONS_MIN_TEST_VALUE = 100;
-	public static final Integer WRITE_CONNECTIONS_MIN_TEST_VALUE_2 = 200;
-	
-	public static final String WRITE_CONNECTIONS_MAX_KEY = Connection.ECLIPSELINK_WRITE_CONNECTIONS_MAX;
-	public static final Integer WRITE_CONNECTIONS_MAX_TEST_VALUE = 100;
-	public static final Integer WRITE_CONNECTIONS_MAX_TEST_VALUE_2 = 200;
-
-	public ConnectionAdapterTests(String name) {
-		super(name);
-	}
-
-	@Override
-	protected void setUp() throws Exception {
-		super.setUp();
-		this.connection = this.subject.getConnection();
-		PropertyChangeListener propertyChangeListener = this.buildPropertyChangeListener();
-		
-		this.connection.addPropertyChangeListener(Connection.NATIVE_SQL_PROPERTY, propertyChangeListener);
-		this.connection.addPropertyChangeListener(Connection.BATCH_WRITING_PROPERTY, propertyChangeListener);
-		this.connection.addPropertyChangeListener(Connection.CACHE_STATEMENTS_PROPERTY, propertyChangeListener);
-		this.connection.addPropertyChangeListener(Connection.CACHE_STATEMENTS_SIZE_PROPERTY, propertyChangeListener);
-		this.connection.addPropertyChangeListener(Connection.DRIVER_PROPERTY, propertyChangeListener);
-		this.connection.addPropertyChangeListener(Connection.URL_PROPERTY, propertyChangeListener);
-		this.connection.addPropertyChangeListener(Connection.USER_PROPERTY, propertyChangeListener);
-		this.connection.addPropertyChangeListener(Connection.PASSWORD_PROPERTY, propertyChangeListener);
-		this.connection.addPropertyChangeListener(Connection.BIND_PARAMETERS_PROPERTY, propertyChangeListener);
-		this.connection.addPropertyChangeListener(Connection.READ_CONNECTIONS_SHARED_PROPERTY, propertyChangeListener);
-		this.connection.addPropertyChangeListener(Connection.READ_CONNECTIONS_MIN_PROPERTY, propertyChangeListener);
-		this.connection.addPropertyChangeListener(Connection.READ_CONNECTIONS_MAX_PROPERTY, propertyChangeListener);
-		this.connection.addPropertyChangeListener(Connection.WRITE_CONNECTIONS_MIN_PROPERTY, propertyChangeListener);
-		this.connection.addPropertyChangeListener(Connection.WRITE_CONNECTIONS_MAX_PROPERTY, propertyChangeListener);
-		
-		this.clearEvent();
-	}
-
-	/**
-	 * Initializes directly the PU properties before testing.
-	 */
-	@Override
-	protected void populatePu() {
-		this.modelPropertiesSizeOriginal = 14; // EclipseLink properties
-		this.propertiesTotal = this.modelPropertiesSizeOriginal + 4; // 4 misc properties
-		this.modelPropertiesSize = this.modelPropertiesSizeOriginal;
-		
-		// Initializes EclipseLink properties
-		this.persistenceUnitSetProperty("misc.property.1", "value.1");
-		this.persistenceUnitSetProperty(NATIVE_SQL_KEY, NATIVE_SQL_TEST_VALUE.toString());
-		this.persistenceUnitSetProperty(BATCH_WRITING_KEY, BATCH_WRITING_TEST_VALUE);
-		this.persistenceUnitSetProperty(CACHE_STATEMENTS_KEY, CACHE_STATEMENTS_TEST_VALUE.toString());
-		this.persistenceUnitSetProperty(CACHE_STATEMENTS_SIZE_KEY, CACHE_STATEMENTS_SIZE_TEST_VALUE.toString());
-		this.persistenceUnitSetProperty(DRIVER_KEY, DRIVER_TEST_VALUE.toString());
-		this.persistenceUnitSetProperty(URL_KEY, URL_TEST_VALUE.toString());
-		this.persistenceUnitSetProperty(USER_KEY, USER_TEST_VALUE.toString());
-		this.persistenceUnitSetProperty(PASSWORD_KEY, PASSWORD_TEST_VALUE.toString());
-		this.persistenceUnitSetProperty(BIND_PARAMETERS_KEY, BIND_PARAMETERS_TEST_VALUE.toString());
-		this.persistenceUnitSetProperty("misc.property.2", "value.2");
-		this.persistenceUnitSetProperty("misc.property.3", "value.3");
-		this.persistenceUnitSetProperty(READ_CONNECTIONS_SHARED_KEY, READ_CONNECTIONS_SHARED_TEST_VALUE.toString());
-		this.persistenceUnitSetProperty(READ_CONNECTIONS_MIN_KEY, READ_CONNECTIONS_MIN_TEST_VALUE.toString());
-		this.persistenceUnitSetProperty(READ_CONNECTIONS_MAX_KEY, READ_CONNECTIONS_MAX_TEST_VALUE.toString());
-		this.persistenceUnitSetProperty(WRITE_CONNECTIONS_MIN_KEY, WRITE_CONNECTIONS_MIN_TEST_VALUE.toString());
-		this.persistenceUnitSetProperty(WRITE_CONNECTIONS_MAX_KEY, WRITE_CONNECTIONS_MAX_TEST_VALUE.toString());
-		this.persistenceUnitSetProperty("misc.property.4", "value.4");
-		
-		// Initializes PU property TransactionType
-		this.getPersistenceUnit().setSpecifiedTransactionType(TRANSACTION_TYPE_TEST_VALUE);
-		this.getPersistenceUnit().setJtaDataSource(JTA_DATA_SOURCE_TEST_VALUE);
-		this.getPersistenceUnit().setNonJtaDataSource(NON_JTA_DATA_SOURCE_TEST_VALUE);
-		return;
-	}
-	
-
-	// ********** NativeSql tests **********
-	public void testSetNativeSql() throws Exception {
-		this.verifyModelInitialized(
-			NATIVE_SQL_KEY,
-			NATIVE_SQL_TEST_VALUE);
-		this.verifySetProperty(
-			NATIVE_SQL_KEY,
-			NATIVE_SQL_TEST_VALUE,
-			NATIVE_SQL_TEST_VALUE_2);
-	}
-
-	public void testAddRemoveNativeSql() throws Exception {
-		this.verifyAddRemoveProperty(
-			NATIVE_SQL_KEY,
-			NATIVE_SQL_TEST_VALUE,
-			NATIVE_SQL_TEST_VALUE_2);
-	}
-
-	// ********** BatchWriting tests **********
-	public void testSetBatchWriting() throws Exception {
-		this.verifyModelInitialized(
-			BATCH_WRITING_KEY,
-			BATCH_WRITING_TEST_VALUE);
-		this.verifySetProperty(
-			BATCH_WRITING_KEY,
-			BATCH_WRITING_TEST_VALUE,
-			BATCH_WRITING_TEST_VALUE_2);
-	}
-
-	public void testAddRemoveBatchWriting() throws Exception {
-		this.verifyAddRemoveProperty(
-			BATCH_WRITING_KEY,
-			BATCH_WRITING_TEST_VALUE,
-			BATCH_WRITING_TEST_VALUE_2);
-	}
-
-	// ********** CacheStatements tests **********
-	public void testSetCacheStatements() throws Exception {
-		this.verifyModelInitialized(
-			CACHE_STATEMENTS_KEY,
-			CACHE_STATEMENTS_TEST_VALUE);
-		this.verifySetProperty(
-			CACHE_STATEMENTS_KEY,
-			CACHE_STATEMENTS_TEST_VALUE,
-			CACHE_STATEMENTS_TEST_VALUE_2);
-	}
-
-	public void testAddRemoveCacheStatements() throws Exception {
-		this.verifyAddRemoveProperty(
-			CACHE_STATEMENTS_KEY,
-			CACHE_STATEMENTS_TEST_VALUE,
-			CACHE_STATEMENTS_TEST_VALUE_2);
-	}
-	
-	// ********** CacheStatementsSize tests **********
-	public void testSetCacheStatementsSize() throws Exception {
-		this.verifyModelInitialized(
-			CACHE_STATEMENTS_SIZE_KEY,
-			CACHE_STATEMENTS_SIZE_TEST_VALUE);
-		this.verifySetProperty(
-			CACHE_STATEMENTS_SIZE_KEY,
-			CACHE_STATEMENTS_SIZE_TEST_VALUE,
-			CACHE_STATEMENTS_SIZE_TEST_VALUE_2);
-	}
-
-	public void testAddRemoveCacheStatementsSize() throws Exception {
-		this.verifyAddRemoveProperty(
-			CACHE_STATEMENTS_SIZE_KEY,
-			CACHE_STATEMENTS_SIZE_TEST_VALUE,
-			CACHE_STATEMENTS_SIZE_TEST_VALUE_2);
-	}
-
-	// ********** Driver tests **********
-	public void testSetDriver() throws Exception {
-		this.verifyModelInitialized(
-			DRIVER_KEY,
-			DRIVER_TEST_VALUE);
-		this.verifySetProperty(
-			DRIVER_KEY,
-			DRIVER_TEST_VALUE,
-			DRIVER_TEST_VALUE_2);
-	}
-
-	public void testAddRemoveDriver() throws Exception {
-		this.verifyAddRemoveProperty(
-			DRIVER_KEY,
-			DRIVER_TEST_VALUE,
-			DRIVER_TEST_VALUE_2);
-	}
-
-	// ********** Url tests **********
-	public void testSetUrl() throws Exception {
-		this.verifyModelInitialized(
-			URL_KEY,
-			URL_TEST_VALUE);
-		this.verifySetProperty(
-			URL_KEY,
-			URL_TEST_VALUE,
-			URL_TEST_VALUE_2);
-	}
-
-	public void testAddRemoveUrl() throws Exception {
-		this.verifyAddRemoveProperty(
-			URL_KEY,
-			URL_TEST_VALUE,
-			URL_TEST_VALUE_2);
-	}
-
-	// ********** User tests **********
-	public void testSetUser() throws Exception {
-		this.verifyModelInitialized(
-			USER_KEY,
-			USER_TEST_VALUE);
-		this.verifySetProperty(
-			USER_KEY,
-			USER_TEST_VALUE,
-			USER_TEST_VALUE_2);
-	}
-
-	public void testAddRemoveUser() throws Exception {
-		this.verifyAddRemoveProperty(
-			USER_KEY,
-			USER_TEST_VALUE,
-			USER_TEST_VALUE_2);
-	}
-
-	// ********** Password tests **********
-	public void testSetPassword() throws Exception {
-		this.verifyModelInitialized(
-			PASSWORD_KEY,
-			PASSWORD_TEST_VALUE);
-		this.verifySetProperty(
-			PASSWORD_KEY,
-			PASSWORD_TEST_VALUE,
-			PASSWORD_TEST_VALUE_2);
-	}
-
-	public void testAddRemovePassword() throws Exception {
-		this.verifyAddRemoveProperty(
-			PASSWORD_KEY,
-			PASSWORD_TEST_VALUE,
-			PASSWORD_TEST_VALUE_2);
-	}
-
-	// ********** BindParameters tests **********
-	public void testSetBindParameters() throws Exception {
-		this.verifyModelInitialized(
-			BIND_PARAMETERS_KEY,
-			BIND_PARAMETERS_TEST_VALUE);
-		this.verifySetProperty(
-			BIND_PARAMETERS_KEY,
-			BIND_PARAMETERS_TEST_VALUE,
-			BIND_PARAMETERS_TEST_VALUE_2);
-	}
-
-	public void testAddRemoveBindParameters() throws Exception {
-		this.verifyAddRemoveProperty(
-			BIND_PARAMETERS_KEY,
-			BIND_PARAMETERS_TEST_VALUE,
-			BIND_PARAMETERS_TEST_VALUE_2);
-	}
-
-	// ********** ReadConnectionsShared tests **********
-	public void testSetReadConnectionsShared() throws Exception {
-		this.verifyModelInitialized(
-			READ_CONNECTIONS_SHARED_KEY,
-			READ_CONNECTIONS_SHARED_TEST_VALUE);
-		this.verifySetProperty(
-			READ_CONNECTIONS_SHARED_KEY,
-			READ_CONNECTIONS_SHARED_TEST_VALUE,
-			READ_CONNECTIONS_SHARED_TEST_VALUE_2);
-	}
-
-	public void testAddRemoveReadConnectionsShared() throws Exception {
-		this.verifyAddRemoveProperty(
-			READ_CONNECTIONS_SHARED_KEY,
-			READ_CONNECTIONS_SHARED_TEST_VALUE,
-			READ_CONNECTIONS_SHARED_TEST_VALUE_2);
-	}
-	
-	// ********** ReadConnectionsMin tests **********
-	public void testSetReadConnectionsMin() throws Exception {
-		this.verifyModelInitialized(
-			READ_CONNECTIONS_MIN_KEY,
-			READ_CONNECTIONS_MIN_TEST_VALUE);
-		this.verifySetProperty(
-			READ_CONNECTIONS_MIN_KEY,
-			READ_CONNECTIONS_MIN_TEST_VALUE,
-			READ_CONNECTIONS_MIN_TEST_VALUE_2);
-	}
-
-	public void testAddRemoveReadConnectionsMin() throws Exception {
-		this.verifyAddRemoveProperty(
-			READ_CONNECTIONS_MIN_KEY,
-			READ_CONNECTIONS_MIN_TEST_VALUE,
-			READ_CONNECTIONS_MIN_TEST_VALUE_2);
-	}
-	
-	// ********** ReadConnectionsMax tests **********
-	public void testSetReadConnectionsMax() throws Exception {
-		this.verifyModelInitialized(
-			READ_CONNECTIONS_MAX_KEY,
-			READ_CONNECTIONS_MAX_TEST_VALUE);
-		this.verifySetProperty(
-			READ_CONNECTIONS_MAX_KEY,
-			READ_CONNECTIONS_MAX_TEST_VALUE,
-			READ_CONNECTIONS_MAX_TEST_VALUE_2);
-	}
-
-	public void testAddRemoveReadConnectionsMax() throws Exception {
-		this.verifyAddRemoveProperty(
-			READ_CONNECTIONS_MAX_KEY,
-			READ_CONNECTIONS_MAX_TEST_VALUE,
-			READ_CONNECTIONS_MAX_TEST_VALUE_2);
-	}
-	
-	// ********** WriteConnectionsMin tests **********
-	public void testSetWriteConnectionsMin() throws Exception {
-		this.verifyModelInitialized(
-			WRITE_CONNECTIONS_MIN_KEY,
-			WRITE_CONNECTIONS_MIN_TEST_VALUE);
-		this.verifySetProperty(
-			WRITE_CONNECTIONS_MIN_KEY,
-			WRITE_CONNECTIONS_MIN_TEST_VALUE,
-			WRITE_CONNECTIONS_MIN_TEST_VALUE_2);
-	}
-
-	public void testAddRemoveWriteConnectionsMin() throws Exception {
-		this.verifyAddRemoveProperty(
-			WRITE_CONNECTIONS_MIN_KEY,
-			WRITE_CONNECTIONS_MIN_TEST_VALUE,
-			WRITE_CONNECTIONS_MIN_TEST_VALUE_2);
-	}
-	
-	// ********** WriteConnectionsMax tests **********
-	public void testSetWriteConnectionsMax() throws Exception {
-		this.verifyModelInitialized(
-			WRITE_CONNECTIONS_MAX_KEY,
-			WRITE_CONNECTIONS_MAX_TEST_VALUE);
-		this.verifySetProperty(
-			WRITE_CONNECTIONS_MAX_KEY,
-			WRITE_CONNECTIONS_MAX_TEST_VALUE,
-			WRITE_CONNECTIONS_MAX_TEST_VALUE_2);
-	}
-
-	public void testAddRemoveWriteConnectionsMax() throws Exception {
-		this.verifyAddRemoveProperty(
-			WRITE_CONNECTIONS_MAX_KEY,
-			WRITE_CONNECTIONS_MAX_TEST_VALUE,
-			WRITE_CONNECTIONS_MAX_TEST_VALUE_2);
-	}
-
-	// ********** get/set property **********
-	@Override
-	protected void setProperty(String propertyName, Object newValue) throws Exception {
-		if (propertyName.equals(Connection.NATIVE_SQL_PROPERTY))
-			this.connection.setNativeSql((Boolean) newValue);
-		else if (propertyName.equals(Connection.BATCH_WRITING_PROPERTY))
-			this.connection.setBatchWriting((BatchWriting) newValue);
-		else if (propertyName.equals(Connection.CACHE_STATEMENTS_PROPERTY))
-			this.connection.setCacheStatements((Boolean) newValue);
-		else if (propertyName.equals(Connection.CACHE_STATEMENTS_SIZE_PROPERTY))
-			this.connection.setCacheStatementsSize((Integer) newValue);
-		else if (propertyName.equals(Connection.DRIVER_PROPERTY))
-			this.connection.setDriver((String) newValue);
-		else if (propertyName.equals(Connection.URL_PROPERTY))
-			this.connection.setUrl((String) newValue);
-		else if (propertyName.equals(Connection.USER_PROPERTY))
-			this.connection.setUser((String) newValue);
-		else if (propertyName.equals(Connection.PASSWORD_PROPERTY))
-			this.connection.setPassword((String) newValue);
-		else if (propertyName.equals(Connection.BIND_PARAMETERS_PROPERTY))
-			this.connection.setBindParameters((Boolean) newValue);
-		else if (propertyName.equals(Connection.READ_CONNECTIONS_SHARED_PROPERTY))
-			this.connection.setReadConnectionsShared((Boolean) newValue);
-		else if (propertyName.equals(Connection.READ_CONNECTIONS_MIN_PROPERTY))
-			this.connection.setReadConnectionsMin((Integer) newValue);
-		else if (propertyName.equals(Connection.READ_CONNECTIONS_MAX_PROPERTY))
-			this.connection.setReadConnectionsMax((Integer) newValue);
-		else if (propertyName.equals(Connection.WRITE_CONNECTIONS_MIN_PROPERTY))
-			this.connection.setWriteConnectionsMin((Integer) newValue);
-		else if (propertyName.equals(Connection.WRITE_CONNECTIONS_MAX_PROPERTY))
-			this.connection.setWriteConnectionsMax((Integer) newValue);
-		else
-			this.throwMissingDefinition("setProperty", propertyName);
-	}
-	
-	@Override
-	protected Object getProperty(String propertyName) throws NoSuchFieldException {
-		Object modelValue = null;
-		if (propertyName.equals(Connection.NATIVE_SQL_PROPERTY))
-			modelValue = this.connection.getNativeSql();
-		else if (propertyName.equals(Connection.BATCH_WRITING_PROPERTY))
-			modelValue = this.connection.getBatchWriting();
-		else if (propertyName.equals(Connection.CACHE_STATEMENTS_PROPERTY))
-			modelValue = this.connection.getCacheStatements();
-		else if (propertyName.equals(Connection.CACHE_STATEMENTS_SIZE_PROPERTY))
-			modelValue = this.connection.getCacheStatementsSize();
-		else if (propertyName.equals(Connection.DRIVER_PROPERTY))
-			modelValue = this.connection.getDriver();
-		else if (propertyName.equals(Connection.URL_PROPERTY))
-			modelValue = this.connection.getUrl();
-		else if (propertyName.equals(Connection.USER_PROPERTY))
-			modelValue = this.connection.getUser();
-		else if (propertyName.equals(Connection.PASSWORD_PROPERTY))
-			modelValue = this.connection.getPassword();
-		else if (propertyName.equals(Connection.BIND_PARAMETERS_PROPERTY))
-			modelValue = this.connection.getBindParameters();
-		else if (propertyName.equals(Connection.READ_CONNECTIONS_SHARED_PROPERTY))
-			modelValue = this.connection.getReadConnectionsShared();
-		else if (propertyName.equals(Connection.READ_CONNECTIONS_MIN_PROPERTY))
-			modelValue = this.connection.getReadConnectionsMin();
-		else if (propertyName.equals(Connection.READ_CONNECTIONS_MAX_PROPERTY))
-			modelValue = this.connection.getReadConnectionsMax();
-		else if (propertyName.equals(Connection.WRITE_CONNECTIONS_MIN_PROPERTY))
-			modelValue = this.connection.getWriteConnectionsMin();
-		else if (propertyName.equals(Connection.WRITE_CONNECTIONS_MAX_PROPERTY))
-			modelValue = this.connection.getWriteConnectionsMax();
-		else
-			this.throwMissingDefinition("getProperty", propertyName);
-		return modelValue;
-	}
-
-	
-	@Override
-	protected PersistenceUnitProperties getModel() {
-		return this.connection;
-	}
-}
diff --git a/jpa/tests/org.eclipse.jpt.eclipselink.core.tests/src/org/eclipse/jpt/eclipselink/core/tests/internal/context/persistence/connection/JptEclipseLinkPersistenceConnectionTests.java b/jpa/tests/org.eclipse.jpt.eclipselink.core.tests/src/org/eclipse/jpt/eclipselink/core/tests/internal/context/persistence/connection/JptEclipseLinkPersistenceConnectionTests.java
deleted file mode 100644
index 1829a23..0000000
--- a/jpa/tests/org.eclipse.jpt.eclipselink.core.tests/src/org/eclipse/jpt/eclipselink/core/tests/internal/context/persistence/connection/JptEclipseLinkPersistenceConnectionTests.java
+++ /dev/null
@@ -1,33 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.eclipselink.core.tests.internal.context.persistence.connection;
-
-import junit.framework.Test;
-import junit.framework.TestSuite;
-
-/**
- * decentralize test creation code
- */
-public class JptEclipseLinkPersistenceConnectionTests
-{
-	public static Test suite() {
-		TestSuite suite = new TestSuite(JptEclipseLinkPersistenceConnectionTests.class.getPackage().getName());
-		
-//		suite.addTestSuite(ConnectionValueModelTests.class);
-		suite.addTestSuite(ConnectionAdapterTests.class);
-		
-		return suite;
-	}
-
-	private JptEclipseLinkPersistenceConnectionTests() {
-		super();
-		throw new UnsupportedOperationException();
-	}
-}
diff --git a/jpa/tests/org.eclipse.jpt.eclipselink.core.tests/src/org/eclipse/jpt/eclipselink/core/tests/internal/context/persistence/customization/CustomizationAdapterTests.java b/jpa/tests/org.eclipse.jpt.eclipselink.core.tests/src/org/eclipse/jpt/eclipselink/core/tests/internal/context/persistence/customization/CustomizationAdapterTests.java
deleted file mode 100644
index db0b81e..0000000
--- a/jpa/tests/org.eclipse.jpt.eclipselink.core.tests/src/org/eclipse/jpt/eclipselink/core/tests/internal/context/persistence/customization/CustomizationAdapterTests.java
+++ /dev/null
@@ -1,707 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.eclipselink.core.tests.internal.context.persistence.customization;
-
-import java.util.ListIterator;
-
-import org.eclipse.jpt.core.context.persistence.PersistenceUnit;
-import org.eclipse.jpt.eclipselink.core.internal.context.persistence.PersistenceUnitProperties;
-import org.eclipse.jpt.eclipselink.core.internal.context.persistence.customization.Customization;
-import org.eclipse.jpt.eclipselink.core.internal.context.persistence.customization.CustomizerProperties;
-import org.eclipse.jpt.eclipselink.core.internal.context.persistence.customization.EclipseLinkCustomization;
-import org.eclipse.jpt.eclipselink.core.internal.context.persistence.customization.Profiler;
-import org.eclipse.jpt.eclipselink.core.internal.context.persistence.customization.Weaving;
-import org.eclipse.jpt.eclipselink.core.tests.internal.context.persistence.PersistenceUnitTestCase;
-import org.eclipse.jpt.utility.model.event.ListChangeEvent;
-import org.eclipse.jpt.utility.model.listener.ListChangeListener;
-import org.eclipse.jpt.utility.model.listener.PropertyChangeListener;
-
-/**
- * Tests the update of model objects by the Customization adapter when the
- * PersistenceUnit changes.
- */
-@SuppressWarnings("nls")
-public class CustomizationAdapterTests extends PersistenceUnitTestCase
-{
-	private Customization customization;
-	private ListChangeEvent entitiesEvent;
-	private ListChangeEvent sessionCustomizersEvent;
-
-	public static final String ENTITY_TEST = "Employee";
-	public static final String ENTITY_TEST_2 = "Address";
-
-	public static final String THROW_EXCEPTIONS_KEY = Customization.ECLIPSELINK_THROW_EXCEPTIONS;
-	public static final Boolean THROW_EXCEPTIONS_TEST_VALUE = false;
-	public static final Boolean THROW_EXCEPTIONS_TEST_VALUE_2 = ! THROW_EXCEPTIONS_TEST_VALUE;
-
-	public static final String WEAVING_LAZY_KEY = Customization.ECLIPSELINK_WEAVING_LAZY;
-	public static final Boolean WEAVING_LAZY_TEST_VALUE = false;
-	public static final Boolean WEAVING_LAZY_TEST_VALUE_2 = ! WEAVING_LAZY_TEST_VALUE;
-
-	public static final String WEAVING_CHANGE_TRACKING_KEY = Customization.ECLIPSELINK_WEAVING_CHANGE_TRACKING;
-	public static final Boolean WEAVING_CHANGE_TRACKING_TEST_VALUE = false;
-	public static final Boolean WEAVING_CHANGE_TRACKING_TEST_VALUE_2 = ! WEAVING_CHANGE_TRACKING_TEST_VALUE;
-
-	public static final String WEAVING_FETCH_GROUPS_KEY = Customization.ECLIPSELINK_WEAVING_FETCH_GROUPS;
-	public static final Boolean WEAVING_FETCH_GROUPS_TEST_VALUE = false;
-	public static final Boolean WEAVING_FETCH_GROUPS_TEST_VALUE_2 = ! WEAVING_FETCH_GROUPS_TEST_VALUE;
-
-	public static final String WEAVING_INTERNAL_KEY = Customization.ECLIPSELINK_WEAVING_INTERNAL;
-	public static final Boolean WEAVING_INTERNAL_TEST_VALUE = false;
-	public static final Boolean WEAVING_INTERNAL_TEST_VALUE_2 = ! WEAVING_INTERNAL_TEST_VALUE;
-
-	public static final String WEAVING_EAGER_KEY = Customization.ECLIPSELINK_WEAVING_EAGER;
-	public static final Boolean WEAVING_EAGER_TEST_VALUE = true;
-	public static final Boolean WEAVING_EAGER_TEST_VALUE_2 = ! WEAVING_EAGER_TEST_VALUE;
-
-	public static final String VALIDATION_ONLY_KEY = Customization.ECLIPSELINK_VALIDATION_ONLY;
-	public static final Boolean VALIDATION_ONLY_TEST_VALUE = false;
-	public static final Boolean VALIDATION_ONLY_TEST_VALUE_2 = ! VALIDATION_ONLY_TEST_VALUE;
-
-	private static final String SESSION_CUSTOMIZER_KEY = Customization.ECLIPSELINK_SESSION_CUSTOMIZER;
-	private static final String SESSION_CUSTOMIZER_TEST_VALUE = "java.lang.String";
-	private static final String SESSION_CUSTOMIZER_TEST_VALUE_2 = "java.lang.Boolean";
-
-	public static final String WEAVING_KEY = Customization.ECLIPSELINK_WEAVING;
-	public static final Weaving WEAVING_TEST_VALUE = Weaving.false_;
-	public static final Weaving WEAVING_TEST_VALUE_2 = Weaving.static_;
-
-	public static final String CUSTOMIZER_KEY = Customization.ECLIPSELINK_DESCRIPTOR_CUSTOMIZER + ENTITY_TEST;
-	public static final String CUSTOMIZER_TEST_VALUE = "acme.sessions.DescriptorCustomizer";
-	public static final String CUSTOMIZER_TEST_VALUE_2 = "acme.sessions.Customizer";
-
-	private static final String PROFILER_KEY = Customization.ECLIPSELINK_PROFILER;
-	private static final Profiler PROFILER_TEST_VALUE = Profiler.query_monitor;
-	private static final String PROFILER_TEST_VALUE_2 = "custom.profiler.test";
-	
-	public static final String EXCEPTION_HANDLER_KEY = Customization.ECLIPSELINK_EXCEPTION_HANDLER;
-	public static final String EXCEPTION_HANDLER_TEST_VALUE = "acme.CustomSessionEventListener";
-	public static final String EXCEPTION_HANDLER_TEST_VALUE_2 = "oracle.sessions.CustomSessionEventListener";
-	
-	public CustomizationAdapterTests(String name) {
-		super(name);
-	}
-
-	@Override
-	protected void setUp() throws Exception {
-		super.setUp();
-		this.customization = this.subject.getCustomization();
-		PropertyChangeListener propertyChangeListener = this.buildPropertyChangeListener();
-		
-		this.customization.addPropertyChangeListener(Customization.THROW_EXCEPTIONS_PROPERTY, propertyChangeListener);
-		this.customization.addPropertyChangeListener(Customization.WEAVING_LAZY_PROPERTY, propertyChangeListener);
-		this.customization.addPropertyChangeListener(Customization.WEAVING_CHANGE_TRACKING_PROPERTY, propertyChangeListener);
-		this.customization.addPropertyChangeListener(Customization.WEAVING_FETCH_GROUPS_PROPERTY, propertyChangeListener);
-		this.customization.addPropertyChangeListener(Customization.WEAVING_INTERNAL_PROPERTY, propertyChangeListener);
-		this.customization.addPropertyChangeListener(Customization.WEAVING_EAGER_PROPERTY, propertyChangeListener);
-		this.customization.addPropertyChangeListener(Customization.WEAVING_PROPERTY, propertyChangeListener);
-		this.customization.addPropertyChangeListener(Customization.VALIDATION_ONLY_PROPERTY, propertyChangeListener);
-		this.customization.addPropertyChangeListener(Customization.DESCRIPTOR_CUSTOMIZER_PROPERTY, propertyChangeListener);
-		this.customization.addPropertyChangeListener(Customization.SESSION_CUSTOMIZER_PROPERTY, propertyChangeListener);
-		this.customization.addPropertyChangeListener(Customization.PROFILER_PROPERTY, propertyChangeListener);
-		this.customization.addPropertyChangeListener(customization.EXCEPTION_HANDLER_PROPERTY, propertyChangeListener);
-
-		ListChangeListener sessionCustomizersChangeListener = this.buildSessionCustomizersChangeListener();
-		this.customization.addListChangeListener(Customization.SESSION_CUSTOMIZER_LIST_PROPERTY, sessionCustomizersChangeListener);
-		
-		ListChangeListener entitiesChangeListener = this.buildEntitiesChangeListener();
-		this.customization.addListChangeListener(Customization.ENTITIES_LIST_PROPERTY, entitiesChangeListener);
-		this.clearEvent();
-	}
-
-	/**
-	 * Initializes directly the PU properties before testing.
-	 */
-	@Override
-	protected void populatePu() {
-		this.modelPropertiesSizeOriginal = 12;
-		this.propertiesTotal = this.modelPropertiesSizeOriginal + 4; // 4 misc properties
-		this.modelPropertiesSize = this.modelPropertiesSizeOriginal;
-		
-		this.persistenceUnitSetProperty("misc.property.1", "value.1");
-		this.persistenceUnitSetProperty(THROW_EXCEPTIONS_KEY, THROW_EXCEPTIONS_TEST_VALUE.toString());
-		this.persistenceUnitSetProperty(WEAVING_LAZY_KEY, WEAVING_LAZY_TEST_VALUE.toString());
-		this.persistenceUnitSetProperty(WEAVING_CHANGE_TRACKING_KEY, WEAVING_CHANGE_TRACKING_TEST_VALUE.toString());
-		this.persistenceUnitSetProperty(WEAVING_FETCH_GROUPS_KEY, WEAVING_FETCH_GROUPS_TEST_VALUE.toString());
-		this.persistenceUnitSetProperty(WEAVING_INTERNAL_KEY, WEAVING_INTERNAL_TEST_VALUE.toString());
-		this.persistenceUnitSetProperty(WEAVING_EAGER_KEY, WEAVING_EAGER_TEST_VALUE.toString());
-		this.persistenceUnitSetProperty(VALIDATION_ONLY_KEY, VALIDATION_ONLY_TEST_VALUE.toString());
-		this.persistenceUnitSetProperty("misc.property.2", "value.2");
-		this.persistenceUnitSetProperty(SESSION_CUSTOMIZER_KEY, SESSION_CUSTOMIZER_TEST_VALUE.toString());
-		this.persistenceUnitSetProperty(WEAVING_KEY, WEAVING_TEST_VALUE);
-		this.persistenceUnitSetProperty("misc.property.3", "value.3");
-		this.persistenceUnitSetProperty("misc.property.4", "value.4");
-		this.persistenceUnitSetProperty(CUSTOMIZER_KEY, CUSTOMIZER_TEST_VALUE);
-		this.persistenceUnitSetProperty(PROFILER_KEY, PROFILER_TEST_VALUE);
-		this.persistenceUnitSetProperty(EXCEPTION_HANDLER_KEY, EXCEPTION_HANDLER_TEST_VALUE);
-		return;
-	}
-
-	// ********** Listeners **********
-	private ListChangeListener buildEntitiesChangeListener() {
-		return new ListChangeListener() {
-			public void itemsAdded(ListChangeEvent e) {
-				CustomizationAdapterTests.this.throwUnsupportedOperationException(e);
-			}
-
-			public void itemsRemoved(ListChangeEvent e) {
-				CustomizationAdapterTests.this.throwUnsupportedOperationException(e);
-			}
-
-			public void itemsReplaced(ListChangeEvent e) {
-				CustomizationAdapterTests.this.throwUnsupportedOperationException(e);
-			}
-
-			public void itemsMoved(ListChangeEvent e) {
-				CustomizationAdapterTests.this.throwUnsupportedOperationException(e);
-			}
-
-			public void listCleared(ListChangeEvent e) {
-				CustomizationAdapterTests.this.throwUnsupportedOperationException(e);
-			}
-
-			public void listChanged(ListChangeEvent e) {
-				CustomizationAdapterTests.this.entityChanged(e);
-			}
-		};
-	}
-	
-	private ListChangeListener buildSessionCustomizersChangeListener() {
-		return new ListChangeListener() {
-			public void itemsAdded(ListChangeEvent e) {
-				CustomizationAdapterTests.this.throwUnsupportedOperationException(e);
-			}
-
-			public void itemsRemoved(ListChangeEvent e) {
-				CustomizationAdapterTests.this.throwUnsupportedOperationException(e);
-			}
-
-			public void itemsReplaced(ListChangeEvent e) {
-				CustomizationAdapterTests.this.throwUnsupportedOperationException(e);
-			}
-
-			public void itemsMoved(ListChangeEvent e) {
-				CustomizationAdapterTests.this.throwUnsupportedOperationException(e);
-			}
-
-			public void listCleared(ListChangeEvent e) {
-				CustomizationAdapterTests.this.throwUnsupportedOperationException(e);
-			}
-
-			public void listChanged(ListChangeEvent e) {
-				CustomizationAdapterTests.this.sessionCustomizerChanged(e);
-			}
-		};
-	}
-
-	@Override
-	protected void clearEvent() {
-		super.clearEvent();
-		this.entitiesEvent = null;
-		this.sessionCustomizersEvent = null;
-	}
-
-	void entityChanged(ListChangeEvent e) {
-		this.entitiesEvent = e;
-	}
-
-	void sessionCustomizerChanged(ListChangeEvent e) {
-		this.sessionCustomizersEvent = e;
-	}
-
-	// ********** entities list **********
-	public void testEntitiesList() throws Exception {
-		// add
-		this.clearEvent();
-		this.customization.addEntity(ENTITY_TEST_2);
-		
-		// verify event received
-		assertNotNull("No Event Fired.", this.entitiesEvent);
-		// verify event for the expected property
-		assertEquals("Wrong Event.", this.entitiesEvent.getAspectName(), Customization.ENTITIES_LIST_PROPERTY);
-		
-		// remove
-		this.clearEvent();
-		this.customization.removeEntity(ENTITY_TEST_2);
-		// verify event received
-		assertNotNull("No Event Fired.", this.entitiesEvent);
-		// verify event for the expected property
-		assertEquals("Wrong Event.", this.entitiesEvent.getAspectName(), Customization.ENTITIES_LIST_PROPERTY);
-	}
-
-	// ********** sessionCustomizers list **********
-	public void testSessionCustomizersList() throws Exception {
-		// add
-		this.clearEvent();
-		String className = this.customization.addSessionCustomizer(SESSION_CUSTOMIZER_TEST_VALUE_2);
-		
-		// verify event received
-		assertNotNull("No Event Fired.", this.sessionCustomizersEvent);
-		// verify event for the expected property
-		assertEquals("Wrong Event.", this.sessionCustomizersEvent.getAspectName(), Customization.SESSION_CUSTOMIZER_LIST_PROPERTY);
-		
-		// remove
-		this.clearEvent();
-		
-		this.customization.removeSessionCustomizer(className);
-		// verify event received
-		assertNotNull("No Event Fired.", this.sessionCustomizersEvent);
-		// verify event for the expected property
-		assertEquals("Wrong Event.", this.sessionCustomizersEvent.getAspectName(), Customization.SESSION_CUSTOMIZER_LIST_PROPERTY);
-	}
-
-	// ********** ThrowExceptions tests **********
-	public void testSetThrowExceptions() throws Exception {
-		this.verifyModelInitialized(
-			THROW_EXCEPTIONS_KEY,
-			THROW_EXCEPTIONS_TEST_VALUE);
-		this.verifySetProperty(
-			THROW_EXCEPTIONS_KEY,
-			THROW_EXCEPTIONS_TEST_VALUE,
-			THROW_EXCEPTIONS_TEST_VALUE_2);
-	}
-
-	public void testAddRemoveThrowExceptions() throws Exception {
-		this.verifyAddRemoveProperty(
-			THROW_EXCEPTIONS_KEY,
-			THROW_EXCEPTIONS_TEST_VALUE,
-			THROW_EXCEPTIONS_TEST_VALUE_2);
-	}
-
-	// ********** WeavingLazy tests **********
-	public void testSetWeavingLazy() throws Exception {
-		this.verifyModelInitialized(
-			WEAVING_LAZY_KEY,
-			WEAVING_LAZY_TEST_VALUE);
-		this.verifySetProperty(
-			WEAVING_LAZY_KEY,
-			WEAVING_LAZY_TEST_VALUE,
-			WEAVING_LAZY_TEST_VALUE_2);
-	}
-
-	public void testAddRemoveWeavingLazy() throws Exception {
-		this.verifyAddRemoveProperty(
-			WEAVING_LAZY_KEY,
-			WEAVING_LAZY_TEST_VALUE,
-			WEAVING_LAZY_TEST_VALUE_2);
-	}
-
-	// ********** WeavingChangeTracking tests **********
-	public void testSetWeavingChangeTracking() throws Exception {
-		this.verifyModelInitialized(
-			WEAVING_CHANGE_TRACKING_KEY,
-			WEAVING_CHANGE_TRACKING_TEST_VALUE);
-		this.verifySetProperty(
-			WEAVING_CHANGE_TRACKING_KEY,
-			WEAVING_CHANGE_TRACKING_TEST_VALUE,
-			WEAVING_CHANGE_TRACKING_TEST_VALUE_2);
-	}
-
-	public void testAddRemoveWeavingChangeTracking() throws Exception {
-		this.verifyAddRemoveProperty(
-			WEAVING_CHANGE_TRACKING_KEY,
-			WEAVING_CHANGE_TRACKING_TEST_VALUE,
-			WEAVING_CHANGE_TRACKING_TEST_VALUE_2);
-	}
-
-	// ********** WeavingFetchGroups tests **********
-	public void testSetWeavingFetchGroups() throws Exception {
-		this.verifyModelInitialized(
-			WEAVING_FETCH_GROUPS_KEY,
-			WEAVING_FETCH_GROUPS_TEST_VALUE);
-		this.verifySetProperty(
-			WEAVING_FETCH_GROUPS_KEY,
-			WEAVING_FETCH_GROUPS_TEST_VALUE,
-			WEAVING_FETCH_GROUPS_TEST_VALUE_2);
-	}
-
-	public void testAddRemoveWeavingFetchGroups() throws Exception {
-		this.verifyAddRemoveProperty(
-			WEAVING_FETCH_GROUPS_KEY,
-			WEAVING_FETCH_GROUPS_TEST_VALUE,
-			WEAVING_FETCH_GROUPS_TEST_VALUE_2);
-	}
-
-	// ********** WeavingInternal tests **********
-	public void testSetWeavingInternal() throws Exception {
-		this.verifyModelInitialized(
-			WEAVING_INTERNAL_KEY,
-			WEAVING_INTERNAL_TEST_VALUE);
-		this.verifySetProperty(
-			WEAVING_INTERNAL_KEY,
-			WEAVING_INTERNAL_TEST_VALUE,
-			WEAVING_INTERNAL_TEST_VALUE_2);
-	}
-
-	public void testAddRemoveWeavingInternal() throws Exception {
-		this.verifyAddRemoveProperty(
-			WEAVING_INTERNAL_KEY,
-			WEAVING_INTERNAL_TEST_VALUE,
-			WEAVING_INTERNAL_TEST_VALUE_2);
-	}
-
-	// ********** WeavingEager tests **********
-	public void testSetWeavingEager() throws Exception {
-		this.verifyModelInitialized(
-			WEAVING_EAGER_KEY,
-			WEAVING_EAGER_TEST_VALUE);
-		this.verifySetProperty(
-			WEAVING_EAGER_KEY,
-			WEAVING_EAGER_TEST_VALUE,
-			WEAVING_EAGER_TEST_VALUE_2);
-	}
-
-	public void testAddRemoveWeavingEager() throws Exception {
-		this.verifyAddRemoveProperty(
-			WEAVING_EAGER_KEY,
-			WEAVING_EAGER_TEST_VALUE,
-			WEAVING_EAGER_TEST_VALUE_2);
-	}
-
-	// ********** SessionCustomizer tests **********
-	public void testSetSessionCustomizer() throws Exception {
-		this.verifyModelInitialized(
-			SESSION_CUSTOMIZER_KEY,
-			SESSION_CUSTOMIZER_TEST_VALUE);
-		this.verifySetSessionCustomizationProperty(
-			Customization.SESSION_CUSTOMIZER_PROPERTY,
-			SESSION_CUSTOMIZER_KEY,
-			SESSION_CUSTOMIZER_TEST_VALUE,
-			SESSION_CUSTOMIZER_TEST_VALUE_2);
-	}
-
-	public void testAddRemoveSessionCustomizer() throws Exception {
-		this.verifyAddRemoveSessionCustomizationProperty(
-			Customization.SESSION_CUSTOMIZER_PROPERTY,
-			SESSION_CUSTOMIZER_KEY,
-			SESSION_CUSTOMIZER_TEST_VALUE,
-			SESSION_CUSTOMIZER_TEST_VALUE_2);
-	}
-
-	// ********** Weaving tests **********
-	/**
-	 * Tests the update of Weaving property by the Customization adapter when
-	 * the PU or the model changes.
-	 */
-	public void testSetWeaving() throws Exception {
-		this.verifyModelInitialized(
-			WEAVING_KEY,
-			WEAVING_TEST_VALUE);
-		this.verifySetProperty(
-			WEAVING_KEY,
-			WEAVING_TEST_VALUE,
-			WEAVING_TEST_VALUE_2);
-	}
-
-	public void testAddRemoveWeaving() throws Exception {
-		this.verifyAddRemoveProperty(
-			WEAVING_KEY,
-			WEAVING_TEST_VALUE,
-			WEAVING_TEST_VALUE_2);
-	}
-
-	// ********** ValidationOnly tests **********
-	public void testSetValidationOnly() throws Exception {
-		this.verifyModelInitialized(
-			VALIDATION_ONLY_KEY,
-			VALIDATION_ONLY_TEST_VALUE);
-		this.verifySetProperty(
-			VALIDATION_ONLY_KEY,
-			VALIDATION_ONLY_TEST_VALUE,
-			VALIDATION_ONLY_TEST_VALUE_2);
-	}
-
-	public void testAddRemoveValidationOnly() throws Exception {
-		this.verifyAddRemoveProperty(
-			VALIDATION_ONLY_KEY,
-			VALIDATION_ONLY_TEST_VALUE,
-			VALIDATION_ONLY_TEST_VALUE_2);
-	}
-
-	// ********** ExceptionHandler tests **********
-	public void testSetExceptionHandler() throws Exception {
-		this.verifyModelInitialized(
-			EXCEPTION_HANDLER_KEY,
-			EXCEPTION_HANDLER_TEST_VALUE);
-		this.verifySetProperty(
-			EXCEPTION_HANDLER_KEY,
-			EXCEPTION_HANDLER_TEST_VALUE,
-			EXCEPTION_HANDLER_TEST_VALUE_2);
-	}
-
-	public void testAddRemoveExceptionHandler() throws Exception {
-		this.verifyAddRemoveProperty(
-			EXCEPTION_HANDLER_KEY,
-			EXCEPTION_HANDLER_TEST_VALUE,
-			EXCEPTION_HANDLER_TEST_VALUE_2);
-	}
-
-	// ********** Customization class **********
-	/**
-	 * Tests the update of Customization property by the Customization adapter when the
-	 * PU or the model changes.
-	 */
-	public void testSetCustomization() throws Exception {
-		this.verifyModelInitialized(
-			CUSTOMIZER_KEY,
-			CUSTOMIZER_TEST_VALUE);
-		this.verifySetCustomizationProperty(
-			Customization.DESCRIPTOR_CUSTOMIZER_PROPERTY,
-			CUSTOMIZER_KEY,
-			CUSTOMIZER_TEST_VALUE,
-			CUSTOMIZER_TEST_VALUE_2);
-	}
-
-	public void testAddRemoveCustomization() throws Exception {
-		this.verifyAddRemoveCustomizationProperty(
-			Customization.DESCRIPTOR_CUSTOMIZER_PROPERTY,
-			CUSTOMIZER_KEY,
-			CUSTOMIZER_TEST_VALUE,
-			CUSTOMIZER_TEST_VALUE_2);
-	}
-	
-	// ********** Profiler tests **********
-	public void testSetProfiler() throws Exception {
-		this.verifyModelInitialized(
-			PROFILER_KEY,
-			this.getEclipseLinkStringValueOf(PROFILER_TEST_VALUE)); // model is storing EclipseLinkStringValue
-		// verify set enum value
-		this.verifySetProperty(
-			PROFILER_KEY,
-			PROFILER_TEST_VALUE,
-			PROFILER_TEST_VALUE_2);
-		// verify set custom and literal value
-		this.verifySetProfiler(
-			PROFILER_KEY,
-			PROFILER_TEST_VALUE,
-			PROFILER_TEST_VALUE_2);
-	}
-
-	public void testAddRemoveProfiler() throws Exception {
-		this.verifyAddRemoveProperty(
-			PROFILER_KEY,
-			PROFILER_TEST_VALUE,
-			PROFILER_TEST_VALUE_2);
-	}
-	
-	/**
-	 * Verifies setting custom profiler and literals.
-	 */
-	protected void verifySetProfiler(String elKey, Object testValue1, Object testValue2) throws Exception {
-		PersistenceUnit.Property property = this.getPersistenceUnit().getProperty(elKey);
-		String propertyName = this.getModel().propertyIdFor(property);
-		// test set custom profiler.
-		this.clearEvent();
-		this.setProperty(propertyName, testValue2);
-		this.verifyPutProperty(propertyName, testValue2);
-
-		// test set (Profiler) null
-		this.clearEvent();
-		this.customization.setProfiler((Profiler) null);
-		assertNull(this.getPersistenceUnit().getProperty(elKey));
-		this.verifyPutProperty(propertyName, null);
-		
-		// test set enum literal
-		this.clearEvent();
-		this.setProperty(propertyName, testValue1.toString());
-		assertNotNull(this.getPersistenceUnit().getProperty(elKey));
-		this.verifyPutProperty(propertyName, this.getEclipseLinkStringValueOf(testValue1));
-
-		// test set (String) null
-		this.clearEvent();
-		this.customization.setProfiler((String) null);
-		assertNull(this.getPersistenceUnit().getProperty(elKey));
-		this.verifyPutProperty(propertyName, null);
-	}
-
-
-
-	// ****** convenience methods *******
-
-	// ********** verify SessionCustomizer property **********
-	protected void verifySetSessionCustomizationProperty(String propertyName, String key, Object testValue1, Object testValue2) throws Exception {
-		// Replace
-		this.persistenceUnitSetProperty(key, testValue2, true); 
-		this.propertiesTotal++;
-		this.verifyPutSessionCustomizerProperty(propertyName, testValue1);
-	}
-	
-	protected void verifyAddRemoveSessionCustomizationProperty(String propertyName, String key, Object testValue1, Object testValue2) throws Exception {
-		// Remove
-		this.clearEvent();
-		--this.propertiesTotal;
-		--this.modelPropertiesSize;
-		this.getPersistenceUnit().removeProperty(key, (String) testValue1);
-		assertFalse(this.customization.sessionCustomizerExists(key));
-		assertEquals(this.modelPropertiesSize, this.modelPropertiesSizeOriginal - 1);
-		
-		// Add original Property
-		++this.propertiesTotal;
-		++this.modelPropertiesSize;
-		this.persistenceUnitSetProperty(key, testValue1, true); 
-		this.verifyPutSessionCustomizerProperty(propertyName, testValue1);
-	}
-
-	protected void verifyPutSessionCustomizerProperty(String propertyName, Object expectedValue) throws Exception {
-		// verify event received
-		assertNotNull("No Event Fired.", this.sessionCustomizersEvent);
-		this.verifySessionCustomizerEvent(propertyName, expectedValue);
-	}
-
-	protected void verifySessionCustomizerEvent(String propertyName, Object expectedValue) throws Exception {
-		// verify event value
-		EclipseLinkCustomization customization = (EclipseLinkCustomization) this.sessionCustomizersEvent.getSource();
-		assertTrue(customization.sessionCustomizerExists((String) expectedValue));
-		 return;
-	}
-	
-	// ********** verify entity property **********
-	protected void verifySetCustomizationProperty(String propertyName, String key, Object testValue1, Object testValue2) throws Exception {
-		// Replace
-		this.persistenceUnitSetProperty(key, testValue2);
-		this.verifyPutCustomizationProperty(propertyName, ENTITY_TEST, testValue2);
-		
-		// Replace by setting model object
-		this.clearEvent();
-		this.setCustomizationProperty(propertyName, ENTITY_TEST, testValue1);
-		this.verifyPutCustomizationProperty(propertyName, ENTITY_TEST, testValue1);
-	}
-
-	protected void verifyAddRemoveCustomizationProperty(String propertyName, String key, Object testValue1, Object testValue2) throws Exception {
-		// Remove
-		this.clearEvent();
-		--this.propertiesTotal;
-		--this.modelPropertiesSize;
-		this.getPersistenceUnit().removeProperty(key);
-		assertNull(this.getPersistenceUnit().getProperty(key));
-		assertEquals(this.modelPropertiesSize, this.modelPropertiesSizeOriginal - 1);
-		this.verifyPutCustomizationProperty(propertyName, ENTITY_TEST, null);
-		
-		// Add original Property
-		++this.propertiesTotal;
-		++this.modelPropertiesSize;
-		this.persistenceUnitSetProperty(key, testValue1);
-		this.verifyPutCustomizationProperty(propertyName, ENTITY_TEST, testValue1);
-		
-		// Replace
-		this.persistenceUnitSetProperty(key, testValue2);
-		this.verifyPutCustomizationProperty(propertyName, ENTITY_TEST, testValue2);
-	}
-
-	protected void verifyPutCustomizationProperty(String propertyName, String entityName, Object expectedValue) throws Exception {
-		this.verifyEvent(propertyName);
-		this.verifyCustomizationEvent(propertyName, entityName, expectedValue);
-	}
-
-	protected void verifyCustomizationEvent(String propertyName, String entityName, Object expectedValue) throws Exception {
-		// verify event value
-		CustomizerProperties customizer = (CustomizerProperties) this.propertyChangedEvent.getNewValue();
-		if (propertyName.equals(Customization.DESCRIPTOR_CUSTOMIZER_PROPERTY)) {
-			assertEquals(expectedValue, customizer.getClassName());
-			assertEquals(expectedValue, this.customization.getDescriptorCustomizer(entityName));
-		}
-		else {
-			this.throwMissingDefinition("verifyCustomizationEvent", propertyName);
-		}
-	}
-
-	protected void setCustomizationProperty(String propertyName, String entityName, Object newValue) throws NoSuchFieldException {
-		if (propertyName.equals(Customization.DESCRIPTOR_CUSTOMIZER_PROPERTY))
-			this.customization.setDescriptorCustomizer((String) newValue, entityName);
-		else
-			this.throwMissingDefinition("setCustomizationProperty", propertyName);
-	}
-
-	// ********** get/set property **********
-	@Override
-	protected void setProperty(String propertyName, Object newValue) throws Exception {
-		if (propertyName.equals(Customization.THROW_EXCEPTIONS_PROPERTY))
-			this.customization.setThrowExceptions((Boolean) newValue);
-		else if (propertyName.equals(Customization.WEAVING_LAZY_PROPERTY))
-			this.customization.setWeavingLazy((Boolean) newValue);
-		else if (propertyName.equals(Customization.WEAVING_CHANGE_TRACKING_PROPERTY))
-			this.customization.setWeavingChangeTracking((Boolean) newValue);
-		else if (propertyName.equals(Customization.WEAVING_FETCH_GROUPS_PROPERTY))
-			this.customization.setWeavingFetchGroups((Boolean) newValue);
-		else if (propertyName.equals(Customization.WEAVING_INTERNAL_PROPERTY))
-			this.customization.setWeavingInternal((Boolean) newValue);
-		else if (propertyName.equals(Customization.WEAVING_EAGER_PROPERTY))
-			this.customization.setWeavingEager((Boolean) newValue);
-		else if (propertyName.equals(Customization.VALIDATION_ONLY_PROPERTY))
-			this.customization.setValidationOnly((Boolean) newValue);
-		else if (propertyName.equals(Customization.EXCEPTION_HANDLER_PROPERTY))
-			this.customization.setExceptionHandler((String) newValue);
-		else if (propertyName.equals(Customization.SESSION_CUSTOMIZER_PROPERTY))
-			this.customization.addSessionCustomizer((String) newValue);
-		else if (propertyName.equals(Customization.WEAVING_PROPERTY))
-			this.customization.setWeaving((Weaving) newValue);
-		else if (propertyName.equals(Customization.PROFILER_PROPERTY)) {
-			if (newValue.getClass().isEnum())
-				this.customization.setProfiler((Profiler) newValue);
-			else
-				this.customization.setProfiler((String) newValue);
-		}
-		else
-			this.throwMissingDefinition("setProperty", propertyName);
-	}
-
-	@Override
-	protected Object getProperty(String propertyName) throws NoSuchFieldException {
-		Object modelValue = null;
-		if (propertyName.equals(Customization.THROW_EXCEPTIONS_PROPERTY))
-			modelValue = this.customization.getThrowExceptions();
-		else if (propertyName.equals(Customization.WEAVING_PROPERTY))
-			modelValue = this.customization.getWeaving();
-		else if (propertyName.equals(Customization.WEAVING_LAZY_PROPERTY))
-			modelValue = this.customization.getWeavingLazy();
-		else if (propertyName.equals(Customization.WEAVING_CHANGE_TRACKING_PROPERTY))
-			modelValue = this.customization.getWeavingChangeTracking();
-		else if (propertyName.equals(Customization.WEAVING_FETCH_GROUPS_PROPERTY))
-			modelValue = this.customization.getWeavingFetchGroups();
-		else if (propertyName.equals(Customization.WEAVING_INTERNAL_PROPERTY))
-			modelValue = this.customization.getWeavingInternal();
-		else if (propertyName.equals(Customization.WEAVING_EAGER_PROPERTY))
-			modelValue = this.customization.getWeavingEager();
-		else if (propertyName.equals(Customization.VALIDATION_ONLY_PROPERTY))
-			modelValue = this.customization.getValidationOnly();
-		else if (propertyName.equals(Customization.EXCEPTION_HANDLER_PROPERTY))
-			modelValue = this.customization.getExceptionHandler();
-		else if (propertyName.equals(Customization.PROFILER_PROPERTY))
-			modelValue = this.customization.getProfiler();
-		else if (propertyName.equals(Customization.SESSION_CUSTOMIZER_PROPERTY)) {
-			ListIterator<String> iterator = this.customization.sessionCustomizers();
-			if(iterator.hasNext()) {
-				modelValue = iterator.next();
-			}
-		}
-		else if (propertyName.equals(Customization.DESCRIPTOR_CUSTOMIZER_PROPERTY))
-			modelValue = this.customization.getDescriptorCustomizer(ENTITY_TEST);
-		else
-			this.throwMissingDefinition("getProperty", propertyName);
-		return modelValue;
-	}
-	
-	@Override
-	protected void verifyPutProperty(String propertyName, Object expectedValue) throws Exception {
-		Object expectedValue_ = expectedValue;
-		if (propertyName.equals(Customization.PROFILER_PROPERTY)) {
-			
-			expectedValue_ = (expectedValue != null && expectedValue.getClass().isEnum()) ?
-				this.getEclipseLinkStringValueOf(PROFILER_TEST_VALUE) : // model is storing EclipseLinkStringValue
-				expectedValue;
-		}
-		super.verifyPutProperty(propertyName, expectedValue_);
-	}
-
-	@Override
-	protected PersistenceUnitProperties getModel() {
-		return this.customization;
-	}
-}
diff --git a/jpa/tests/org.eclipse.jpt.eclipselink.core.tests/src/org/eclipse/jpt/eclipselink/core/tests/internal/context/persistence/customization/CustomizationValueModelTests.java b/jpa/tests/org.eclipse.jpt.eclipselink.core.tests/src/org/eclipse/jpt/eclipselink/core/tests/internal/context/persistence/customization/CustomizationValueModelTests.java
deleted file mode 100644
index 60baf3d..0000000
--- a/jpa/tests/org.eclipse.jpt.eclipselink.core.tests/src/org/eclipse/jpt/eclipselink/core/tests/internal/context/persistence/customization/CustomizationValueModelTests.java
+++ /dev/null
@@ -1,162 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008, 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- *******************************************************************************/
-package org.eclipse.jpt.eclipselink.core.tests.internal.context.persistence.customization;
-
-import org.eclipse.jpt.eclipselink.core.internal.context.persistence.PersistenceUnitProperties;
-import org.eclipse.jpt.eclipselink.core.internal.context.persistence.customization.Customization;
-import org.eclipse.jpt.eclipselink.core.tests.internal.context.persistence.PersistenceUnitTestCase;
-import org.eclipse.jpt.utility.internal.model.AbstractModel;
-import org.eclipse.jpt.utility.internal.model.value.PropertyAspectAdapter;
-import org.eclipse.jpt.utility.internal.model.value.SimplePropertyValueModel;
-import org.eclipse.jpt.utility.model.event.PropertyChangeEvent;
-import org.eclipse.jpt.utility.model.listener.PropertyChangeListener;
-import org.eclipse.jpt.utility.model.value.PropertyValueModel;
-import org.eclipse.jpt.utility.model.value.WritablePropertyValueModel;
-
-/**
- * CustomizationValueModelTests
- */
-public class CustomizationValueModelTests extends PersistenceUnitTestCase
-{
-	private Customization customization;
-
-	private WritablePropertyValueModel<Boolean> throwExceptionsHolder;
-	private PropertyChangeListener throwExceptionsListener;
-	private PropertyChangeEvent throwExceptionsEvent;
-
-	public static final String ENTITY_NAME_TEST_VALUE = "Employee";
-	public static final Boolean THROW_EXCEPTIONS_TEST_VALUE = Boolean.FALSE;
-
-	public CustomizationValueModelTests(String name) {
-		super(name);
-	}
-
-	@Override
-	protected void setUp() throws Exception {
-		super.setUp();
-		this.customization = this.subject.getCustomization(); // Subject
-		PropertyValueModel<Customization> customizationHolder = new SimplePropertyValueModel<Customization>(this.customization);
-		
-		this.throwExceptionsHolder = this.buildThrowExceptionsAA(customizationHolder);
-		this.throwExceptionsListener = this.buildThrowExceptionsChangeListener();
-		this.throwExceptionsHolder.addPropertyChangeListener(PropertyValueModel.VALUE, this.throwExceptionsListener);
-		this.throwExceptionsEvent = null;
-	}
-
-	public void testHasListeners() {
-		AbstractModel subjectCustomization = (AbstractModel) this.customization; // Subject
-		
-		PropertyAspectAdapter<Customization, Boolean> throwExceptionsAA = 
-			(PropertyAspectAdapter<Customization, Boolean>) this.throwExceptionsHolder;
-		assertTrue(throwExceptionsAA.hasAnyPropertyChangeListeners(PropertyValueModel.VALUE));
-		assertTrue(subjectCustomization.hasAnyPropertyChangeListeners(Customization.THROW_EXCEPTIONS_PROPERTY));
-		
-		throwExceptionsAA.removePropertyChangeListener(PropertyValueModel.VALUE, this.throwExceptionsListener);
-		assertFalse(subjectCustomization.hasAnyPropertyChangeListeners(Customization.THROW_EXCEPTIONS_PROPERTY));
-		assertFalse(throwExceptionsAA.hasAnyPropertyChangeListeners(PropertyValueModel.VALUE));
-	}
-
-	/**
-	 * Initializes directly the PU properties before testing. 
-	 */
-	@Override
-	protected void populatePu() {
-		this.persistenceUnitSetProperty(
-			Customization.ECLIPSELINK_THROW_EXCEPTIONS, 
-			THROW_EXCEPTIONS_TEST_VALUE);
-		return;
-	}
-
-	@Override
-	protected PersistenceUnitProperties getModel() {
-		return this.customization;
-	}
-
-	// ****** ThrowExceptions *******
-	private WritablePropertyValueModel<Boolean> buildThrowExceptionsAA(PropertyValueModel<Customization> subjectHolder) {
-		return new PropertyAspectAdapter<Customization, Boolean>(subjectHolder, Customization.THROW_EXCEPTIONS_PROPERTY) {
-			@Override
-			protected Boolean buildValue_() {
-				return this.subject.getThrowExceptions();
-			}
-
-			@Override
-			protected void setValue_(Boolean enumValue) {
-				this.subject.setThrowExceptions(enumValue);
-			}
-		};
-	}
-
-	private PropertyChangeListener buildThrowExceptionsChangeListener() {
-		return new PropertyChangeListener() {
-			public void propertyChanged(PropertyChangeEvent e) {
-				CustomizationValueModelTests.this.throwExceptionsEvent = e;
-			}
-		};
-	}
-
-	// ****** Tests ******* 
-	public void testValue() {
-		// ****** ThrowExceptions ******* 
-		this.verifyThrowExceptionsAAValue(THROW_EXCEPTIONS_TEST_VALUE);
-		assertEquals(Customization.DEFAULT_THROW_EXCEPTIONS, this.customization.getDefaultThrowExceptions());
-	}
-
-	public void testSetValue() throws Exception {
-		// ****** ThrowExceptions ******* 
-		this.throwExceptionsEvent = null;
-		this.verifyHasListeners(this.throwExceptionsHolder, PropertyValueModel.VALUE);
-		Boolean newThrowExceptions = !THROW_EXCEPTIONS_TEST_VALUE;
-		// Modify the property holder
-		this.throwExceptionsHolder.setValue(newThrowExceptions);
-		this.verifyThrowExceptionsAAValue(newThrowExceptions);
-		assertNotNull(this.throwExceptionsEvent);
-	}
-
-	public void testSetNullValue() {
-		String notDeleted = "Property not deleted";
-		// ****** ThrowExceptions *******
-		this.throwExceptionsEvent = null;
-		// Setting the property holder
-		this.throwExceptionsHolder.setValue(null);
-		// testing Holder
-		this.verifyThrowExceptionsAAValue(null);
-		assertNotNull(this.throwExceptionsEvent);
-		// testing PU properties
-		this.verifyPuHasNotProperty(Customization.ECLIPSELINK_THROW_EXCEPTIONS, notDeleted);
-	}
-
-	// ****** convenience methods *******
-
-	/**
-	 * Performs three value tests:<br>
-	 * 1. subject value<br>
-	 * 2. aspect adapter value<br>
-	 * 3. persistenceUnit property value<br>
-	 */
-	protected void verifyThrowExceptionsAAValue(Boolean testValue) {
-		this.verifyAAValue(
-			testValue, 
-			this.customization.getThrowExceptions(), 
-			this.throwExceptionsHolder, 
-			Customization.ECLIPSELINK_THROW_EXCEPTIONS);
-	}
-
-	// ********** get/set property **********
-	@Override
-	protected void setProperty(String propertyName, Object newValue) throws Exception {
-		throw new UnsupportedOperationException();
-	}
-
-	@Override
-	protected Object getProperty(String propertyName) throws NoSuchFieldException {
-		throw new UnsupportedOperationException();
-	}
-}
diff --git a/jpa/tests/org.eclipse.jpt.eclipselink.core.tests/src/org/eclipse/jpt/eclipselink/core/tests/internal/context/persistence/customization/JptEclipseLinkPersistenceCustomizationTests.java b/jpa/tests/org.eclipse.jpt.eclipselink.core.tests/src/org/eclipse/jpt/eclipselink/core/tests/internal/context/persistence/customization/JptEclipseLinkPersistenceCustomizationTests.java
deleted file mode 100644
index 9e64cf3..0000000
--- a/jpa/tests/org.eclipse.jpt.eclipselink.core.tests/src/org/eclipse/jpt/eclipselink/core/tests/internal/context/persistence/customization/JptEclipseLinkPersistenceCustomizationTests.java
+++ /dev/null
@@ -1,33 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.eclipselink.core.tests.internal.context.persistence.customization;
-
-import junit.framework.Test;
-import junit.framework.TestSuite;
-
-/**
- * decentralize test creation code
- */
-public class JptEclipseLinkPersistenceCustomizationTests
-{
-	public static Test suite() {
-		TestSuite suite = new TestSuite(JptEclipseLinkPersistenceCustomizationTests.class.getPackage().getName());
-		
-		suite.addTestSuite(CustomizationValueModelTests.class);
-		suite.addTestSuite(CustomizationAdapterTests.class);
-		
-		return suite;
-	}
-
-	private JptEclipseLinkPersistenceCustomizationTests() {
-		super();
-		throw new UnsupportedOperationException();
-	}
-}
diff --git a/jpa/tests/org.eclipse.jpt.eclipselink.core.tests/src/org/eclipse/jpt/eclipselink/core/tests/internal/context/persistence/general/GeneralPropertiesAdapterTests.java b/jpa/tests/org.eclipse.jpt.eclipselink.core.tests/src/org/eclipse/jpt/eclipselink/core/tests/internal/context/persistence/general/GeneralPropertiesAdapterTests.java
deleted file mode 100644
index 38dfea7..0000000
--- a/jpa/tests/org.eclipse.jpt.eclipselink.core.tests/src/org/eclipse/jpt/eclipselink/core/tests/internal/context/persistence/general/GeneralPropertiesAdapterTests.java
+++ /dev/null
@@ -1,105 +0,0 @@
-/*******************************************************************************
-* Copyright (c) 2008, 2009 Oracle. All rights reserved.
-* This program and the accompanying materials are made available under the
-* terms of the Eclipse Public License v1.0, which accompanies this distribution
-* and is available at http://www.eclipse.org/legal/epl-v10.html.
-* 
-* Contributors:
-*     Oracle - initial API and implementation
-*******************************************************************************/
-package org.eclipse.jpt.eclipselink.core.tests.internal.context.persistence.general;
-
-import org.eclipse.jpt.eclipselink.core.internal.context.persistence.PersistenceUnitProperties;
-import org.eclipse.jpt.eclipselink.core.internal.context.persistence.general.GeneralProperties;
-import org.eclipse.jpt.eclipselink.core.tests.internal.context.persistence.PersistenceUnitTestCase;
-import org.eclipse.jpt.utility.model.listener.PropertyChangeListener;
-
-/**
- *  GeneralAdapterTests
- */
-@SuppressWarnings("nls")
-public class GeneralPropertiesAdapterTests extends PersistenceUnitTestCase
-{
-	private GeneralProperties generalProperties;
-
-	public static final String EXCLUDE_ECLIPSELINK_ORM_KEY = GeneralProperties.ECLIPSELINK_EXCLUDE_ECLIPSELINK_ORM;
-	public static final Boolean EXCLUDE_ECLIPSELINK_ORM_TEST_VALUE = false;
-	public static final Boolean EXCLUDE_ECLIPSELINK_ORM_TEST_VALUE_2 = ! EXCLUDE_ECLIPSELINK_ORM_TEST_VALUE;
-
-	
-	public GeneralPropertiesAdapterTests(String name) {
-		super(name);
-	}
-
-	@Override
-	protected void setUp() throws Exception {
-		super.setUp();
-		this.generalProperties = this.subject.getGeneralProperties();
-		PropertyChangeListener propertyChangeListener = this.buildPropertyChangeListener();
-		
-		this.generalProperties.addPropertyChangeListener(GeneralProperties.EXCLUDE_ECLIPSELINK_ORM_PROPERTY, propertyChangeListener);
-
-		this.clearEvent();
-	}
-
-	/**
-	 * Initializes directly the PU properties before testing.
-	 */
-	@Override
-	protected void populatePu() {
-		this.modelPropertiesSizeOriginal = 1;
-		this.propertiesTotal = this.modelPropertiesSizeOriginal + 2; // misc properties
-		this.modelPropertiesSize = this.modelPropertiesSizeOriginal;
-		
-		this.persistenceUnitSetProperty("misc.property.1", "value.1");
-		this.persistenceUnitSetProperty(EXCLUDE_ECLIPSELINK_ORM_KEY, EXCLUDE_ECLIPSELINK_ORM_TEST_VALUE.toString());
-		this.persistenceUnitSetProperty("misc.property.2", "value.2");
-
-		return;
-	}
-
-	
-	// ********** ExcludeEclipselinkOrm tests **********
-	public void testSetExcludeEclipselinkOrm() throws Exception {
-		this.verifyModelInitialized(
-			EXCLUDE_ECLIPSELINK_ORM_KEY,
-			EXCLUDE_ECLIPSELINK_ORM_TEST_VALUE);
-		this.verifySetProperty(
-			EXCLUDE_ECLIPSELINK_ORM_KEY,
-			EXCLUDE_ECLIPSELINK_ORM_TEST_VALUE,
-			EXCLUDE_ECLIPSELINK_ORM_TEST_VALUE_2);
-	}
-
-	public void testAddRemoveExcludeEclipselinkOrm() throws Exception {
-		this.verifyAddRemoveProperty(
-			EXCLUDE_ECLIPSELINK_ORM_KEY,
-			EXCLUDE_ECLIPSELINK_ORM_TEST_VALUE,
-			EXCLUDE_ECLIPSELINK_ORM_TEST_VALUE_2);
-	}
-
-
-
-	// ********** get/set property **********
-	@Override
-	protected Object getProperty(String propertyName) throws NoSuchFieldException {
-		Object modelValue = null;
-		if (propertyName.equals(GeneralProperties.EXCLUDE_ECLIPSELINK_ORM_PROPERTY))
-			modelValue = this.generalProperties.getExcludeEclipselinkOrm();
-		else
-			this.throwMissingDefinition("getProperty", propertyName);
-		return modelValue;
-	}
-
-	@Override
-	protected void setProperty(String propertyName, Object newValue) throws Exception {
-		if (propertyName.equals(GeneralProperties.EXCLUDE_ECLIPSELINK_ORM_PROPERTY))
-			this.generalProperties.setExcludeEclipselinkOrm((Boolean) newValue);
-		else
-			this.throwMissingDefinition("setProperty", propertyName);
-	}
-	
-	@Override
-	protected PersistenceUnitProperties getModel() {
-		return this.generalProperties;
-	}
-}
diff --git a/jpa/tests/org.eclipse.jpt.eclipselink.core.tests/src/org/eclipse/jpt/eclipselink/core/tests/internal/context/persistence/general/GeneralPropertiesValueModelTests.java b/jpa/tests/org.eclipse.jpt.eclipselink.core.tests/src/org/eclipse/jpt/eclipselink/core/tests/internal/context/persistence/general/GeneralPropertiesValueModelTests.java
deleted file mode 100644
index 7b0cd06..0000000
--- a/jpa/tests/org.eclipse.jpt.eclipselink.core.tests/src/org/eclipse/jpt/eclipselink/core/tests/internal/context/persistence/general/GeneralPropertiesValueModelTests.java
+++ /dev/null
@@ -1,162 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008, 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- *******************************************************************************/
-package org.eclipse.jpt.eclipselink.core.tests.internal.context.persistence.general;
-
-import org.eclipse.jpt.eclipselink.core.internal.context.persistence.PersistenceUnitProperties;
-import org.eclipse.jpt.eclipselink.core.internal.context.persistence.general.GeneralProperties;
-import org.eclipse.jpt.eclipselink.core.tests.internal.context.persistence.PersistenceUnitTestCase;
-import org.eclipse.jpt.utility.internal.model.AbstractModel;
-import org.eclipse.jpt.utility.internal.model.value.PropertyAspectAdapter;
-import org.eclipse.jpt.utility.internal.model.value.SimplePropertyValueModel;
-import org.eclipse.jpt.utility.model.event.PropertyChangeEvent;
-import org.eclipse.jpt.utility.model.listener.PropertyChangeListener;
-import org.eclipse.jpt.utility.model.value.PropertyValueModel;
-import org.eclipse.jpt.utility.model.value.WritablePropertyValueModel;
-
-/**
- * GeneralPropertyValueModelTests
- */
-@SuppressWarnings("nls")
-public class GeneralPropertiesValueModelTests extends PersistenceUnitTestCase
-{
-	private GeneralProperties generalProperty;
-
-	private WritablePropertyValueModel<Boolean> excludeEclipselinkOrmHolder;
-	private PropertyChangeListener excludeEclipselinkOrmListener;
-	private PropertyChangeEvent excludeEclipselinkOrmEvent;
-
-	public static final Boolean EXCLUDE_ECLIPSELINK_ORM_TEST_VALUE = Boolean.FALSE;
-
-	public GeneralPropertiesValueModelTests(String name) {
-		super(name);
-	}
-
-	@Override
-	protected void setUp() throws Exception {
-		super.setUp();
-		this.generalProperty = this.subject.getGeneralProperties(); // Subject
-		PropertyValueModel<GeneralProperties> generalPropertyHolder = new SimplePropertyValueModel<GeneralProperties>(this.generalProperty);
-		
-		this.excludeEclipselinkOrmHolder = this.buildExcludeEclipselinkOrmAA(generalPropertyHolder);
-		this.excludeEclipselinkOrmListener = this.buildExcludeEclipselinkOrmChangeListener();
-		this.excludeEclipselinkOrmHolder.addPropertyChangeListener(PropertyValueModel.VALUE, this.excludeEclipselinkOrmListener);
-		this.excludeEclipselinkOrmEvent = null;
-	}
-
-	public void testHasListeners() {
-		AbstractModel subjectGeneralProperty = (AbstractModel) this.generalProperty; // Subject
-		
-		PropertyAspectAdapter<GeneralProperties, Boolean> excludeEclipselinkOrmAA = 
-			(PropertyAspectAdapter<GeneralProperties, Boolean>) this.excludeEclipselinkOrmHolder;
-		assertTrue(excludeEclipselinkOrmAA.hasAnyPropertyChangeListeners(PropertyValueModel.VALUE));
-		assertTrue(subjectGeneralProperty.hasAnyPropertyChangeListeners(GeneralProperties.EXCLUDE_ECLIPSELINK_ORM_PROPERTY));
-		
-		excludeEclipselinkOrmAA.removePropertyChangeListener(PropertyValueModel.VALUE, this.excludeEclipselinkOrmListener);
-		assertFalse(subjectGeneralProperty.hasAnyPropertyChangeListeners(GeneralProperties.EXCLUDE_ECLIPSELINK_ORM_PROPERTY));
-		assertFalse(excludeEclipselinkOrmAA.hasAnyPropertyChangeListeners(PropertyValueModel.VALUE));
-	}
-
-	/**
-	 * Initializes directly the PU properties before testing. 
-	 */
-	@Override
-	protected void populatePu() {
-		this.persistenceUnitSetProperty(
-			GeneralProperties.ECLIPSELINK_EXCLUDE_ECLIPSELINK_ORM, 
-			EXCLUDE_ECLIPSELINK_ORM_TEST_VALUE);
-		return;
-	}
-
-	@Override
-	protected PersistenceUnitProperties getModel() {
-		return this.generalProperty;
-	}
-
-	// ****** ExcludeEclipselinkOrm *******
-	private WritablePropertyValueModel<Boolean> buildExcludeEclipselinkOrmAA(PropertyValueModel<GeneralProperties> subjectHolder) {
-		return new PropertyAspectAdapter<GeneralProperties, Boolean>(subjectHolder, GeneralProperties.EXCLUDE_ECLIPSELINK_ORM_PROPERTY) {
-			@Override
-			protected Boolean buildValue_() {
-				return this.subject.getExcludeEclipselinkOrm();
-			}
-
-			@Override
-			protected void setValue_(Boolean enumValue) {
-				this.subject.setExcludeEclipselinkOrm(enumValue);
-			}
-		};
-	}
-
-	private PropertyChangeListener buildExcludeEclipselinkOrmChangeListener() {
-		return new PropertyChangeListener() {
-			public void propertyChanged(PropertyChangeEvent e) {
-				GeneralPropertiesValueModelTests.this.excludeEclipselinkOrmEvent = e;
-			}
-		};
-	}
-
-	// ****** Tests ******* 
-	public void testValue() {
-		// ****** ExcludeEclipselinkOrm ******* 
-		this.verifyExcludeEclipselinkOrmAAValue(EXCLUDE_ECLIPSELINK_ORM_TEST_VALUE);
-		assertEquals(GeneralProperties.DEFAULT_EXCLUDE_ECLIPSELINK_ORM, this.generalProperty.getDefaultExcludeEclipselinkOrm());
-	}
-
-	public void testSetValue() throws Exception {
-		// ****** ExcludeEclipselinkOrm ******* 
-		this.excludeEclipselinkOrmEvent = null;
-		this.verifyHasListeners(this.excludeEclipselinkOrmHolder, PropertyValueModel.VALUE);
-		Boolean newExcludeEclipselinkOrm = !EXCLUDE_ECLIPSELINK_ORM_TEST_VALUE;
-		// Modify the property holder
-		this.excludeEclipselinkOrmHolder.setValue(newExcludeEclipselinkOrm);
-		this.verifyExcludeEclipselinkOrmAAValue(newExcludeEclipselinkOrm);
-		assertNotNull(this.excludeEclipselinkOrmEvent);
-	}
-
-	public void testSetNullValue() {
-		String notDeleted = "Property not deleted";
-		// ****** ExcludeEclipselinkOrm *******
-		this.excludeEclipselinkOrmEvent = null;
-		// Setting the property holder
-		this.excludeEclipselinkOrmHolder.setValue(null);
-		// testing Holder
-		this.verifyExcludeEclipselinkOrmAAValue(null);
-		assertNotNull(this.excludeEclipselinkOrmEvent);
-		// testing PU properties
-		this.verifyPuHasNotProperty(GeneralProperties.ECLIPSELINK_EXCLUDE_ECLIPSELINK_ORM, notDeleted);
-	}
-
-	// ****** convenience methods *******
-
-	/**
-	 * Performs three value tests:<br>
-	 * 1. subject value<br>
-	 * 2. aspect adapter value<br>
-	 * 3. persistenceUnit property value<br>
-	 */
-	protected void verifyExcludeEclipselinkOrmAAValue(Boolean testValue) {
-		this.verifyAAValue(
-			testValue, 
-			this.generalProperty.getExcludeEclipselinkOrm(), 
-			this.excludeEclipselinkOrmHolder, 
-			GeneralProperties.ECLIPSELINK_EXCLUDE_ECLIPSELINK_ORM);
-	}
-
-	// ********** get/set property **********
-	@Override
-	protected void setProperty(String propertyName, Object newValue) throws Exception {
-		throw new UnsupportedOperationException();
-	}
-
-	@Override
-	protected Object getProperty(String propertyName) throws NoSuchFieldException {
-		throw new UnsupportedOperationException();
-	}
-}
diff --git a/jpa/tests/org.eclipse.jpt.eclipselink.core.tests/src/org/eclipse/jpt/eclipselink/core/tests/internal/context/persistence/general/JptEclipseLinkPersistenceGeneralTests.java b/jpa/tests/org.eclipse.jpt.eclipselink.core.tests/src/org/eclipse/jpt/eclipselink/core/tests/internal/context/persistence/general/JptEclipseLinkPersistenceGeneralTests.java
deleted file mode 100644
index 2ba8483..0000000
--- a/jpa/tests/org.eclipse.jpt.eclipselink.core.tests/src/org/eclipse/jpt/eclipselink/core/tests/internal/context/persistence/general/JptEclipseLinkPersistenceGeneralTests.java
+++ /dev/null
@@ -1,33 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.eclipselink.core.tests.internal.context.persistence.general;
-
-import junit.framework.Test;
-import junit.framework.TestSuite;
-
-/**
- * decentralize test creation code
- */
-public class JptEclipseLinkPersistenceGeneralTests
-{
-	public static Test suite() {
-		TestSuite suite = new TestSuite(JptEclipseLinkPersistenceGeneralTests.class.getPackage().getName());
-		
-		suite.addTestSuite(GeneralPropertiesValueModelTests.class);
-		suite.addTestSuite(GeneralPropertiesAdapterTests.class);
-		
-		return suite;
-	}
-
-	private JptEclipseLinkPersistenceGeneralTests() {
-		super();
-		throw new UnsupportedOperationException();
-	}
-}
diff --git a/jpa/tests/org.eclipse.jpt.eclipselink.core.tests/src/org/eclipse/jpt/eclipselink/core/tests/internal/context/persistence/logging/JptEclipseLinkPersistenceLoggingTests.java b/jpa/tests/org.eclipse.jpt.eclipselink.core.tests/src/org/eclipse/jpt/eclipselink/core/tests/internal/context/persistence/logging/JptEclipseLinkPersistenceLoggingTests.java
deleted file mode 100644
index 51dc7e4..0000000
--- a/jpa/tests/org.eclipse.jpt.eclipselink.core.tests/src/org/eclipse/jpt/eclipselink/core/tests/internal/context/persistence/logging/JptEclipseLinkPersistenceLoggingTests.java
+++ /dev/null
@@ -1,33 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.eclipselink.core.tests.internal.context.persistence.logging;
-
-import junit.framework.Test;
-import junit.framework.TestSuite;
-
-/**
- * decentralize test creation code
- */
-public class JptEclipseLinkPersistenceLoggingTests
-{
-	public static Test suite() {
-		TestSuite suite = new TestSuite(JptEclipseLinkPersistenceLoggingTests.class.getPackage().getName());
-		
-		suite.addTestSuite(LoggingValueModelTests.class);
-		suite.addTestSuite(LoggingAdapterTests.class);
-		
-		return suite;
-	}
-
-	private JptEclipseLinkPersistenceLoggingTests() {
-		super();
-		throw new UnsupportedOperationException();
-	}
-}
diff --git a/jpa/tests/org.eclipse.jpt.eclipselink.core.tests/src/org/eclipse/jpt/eclipselink/core/tests/internal/context/persistence/logging/LoggingAdapterTests.java b/jpa/tests/org.eclipse.jpt.eclipselink.core.tests/src/org/eclipse/jpt/eclipselink/core/tests/internal/context/persistence/logging/LoggingAdapterTests.java
deleted file mode 100644
index 941c42e..0000000
--- a/jpa/tests/org.eclipse.jpt.eclipselink.core.tests/src/org/eclipse/jpt/eclipselink/core/tests/internal/context/persistence/logging/LoggingAdapterTests.java
+++ /dev/null
@@ -1,325 +0,0 @@
-/*******************************************************************************
-* Copyright (c) 2008, 2009 Oracle. All rights reserved.
-* This program and the accompanying materials are made available under the
-* terms of the Eclipse Public License v1.0, which accompanies this distribution
-* and is available at http://www.eclipse.org/legal/epl-v10.html.
-* 
-* Contributors:
-*     Oracle - initial API and implementation
-*******************************************************************************/
-package org.eclipse.jpt.eclipselink.core.tests.internal.context.persistence.logging;
-
-import org.eclipse.jpt.core.context.persistence.PersistenceUnit;
-import org.eclipse.jpt.eclipselink.core.internal.context.persistence.PersistenceUnitProperties;
-import org.eclipse.jpt.eclipselink.core.internal.context.persistence.logging.Logger;
-import org.eclipse.jpt.eclipselink.core.internal.context.persistence.logging.Logging;
-import org.eclipse.jpt.eclipselink.core.internal.context.persistence.logging.LoggingLevel;
-import org.eclipse.jpt.eclipselink.core.tests.internal.context.persistence.PersistenceUnitTestCase;
-import org.eclipse.jpt.utility.model.listener.PropertyChangeListener;
-
-/**
- * Tests the update of model objects by the Logging adapter when the
- * PersistenceUnit changes.
- */
-public class LoggingAdapterTests extends PersistenceUnitTestCase
-{
-	private Logging logging;
-
-	public static final String LEVEL_KEY = Logging.ECLIPSELINK_LEVEL;
-	public static final LoggingLevel LEVEL_TEST_VALUE = LoggingLevel.fine;
-	public static final LoggingLevel LEVEL_TEST_VALUE_2 = LoggingLevel.finest;
-
-	public static final String TIMESTAMP_KEY = Logging.ECLIPSELINK_TIMESTAMP;
-	public static final Boolean TIMESTAMP_TEST_VALUE = false;
-	public static final Boolean TIMESTAMP_TEST_VALUE_2 = ! TIMESTAMP_TEST_VALUE;
-
-	public static final String THREAD_KEY = Logging.ECLIPSELINK_THREAD;
-	public static final Boolean THREAD_TEST_VALUE = false;
-	public static final Boolean THREAD_TEST_VALUE_2 = ! THREAD_TEST_VALUE;
-
-	public static final String SESSION_KEY = Logging.ECLIPSELINK_SESSION;
-	public static final Boolean SESSION_TEST_VALUE = false;
-	public static final Boolean SESSION_TEST_VALUE_2 = ! SESSION_TEST_VALUE;
-
-	public static final String EXCEPTIONS_KEY = Logging.ECLIPSELINK_EXCEPTIONS;
-	public static final Boolean EXCEPTIONS_TEST_VALUE = false;
-	public static final Boolean EXCEPTIONS_TEST_VALUE_2 = ! EXCEPTIONS_TEST_VALUE;
-
-	private static final String LOG_FILE_LOCATION_KEY = Logging.ECLIPSELINK_LOG_FILE_LOCATION;
-	private static final String LOG_FILE_LOCATION_TEST_VALUE = "C:/temp";
-	private static final String LOG_FILE_LOCATION_TEST_VALUE_2 = "C:/tmp";
-
-	private static final String LOGGER_KEY = Logging.ECLIPSELINK_LOGGER;
-	private static final Logger LOGGER_TEST_VALUE = Logger.java_logger;
-	private static final String LOGGER_TEST_VALUE_2 = "custom.logger.test";
-	
-	public LoggingAdapterTests(String name) {
-		super(name);
-	}
-
-	@Override
-	protected void setUp() throws Exception {
-		super.setUp();
-		this.logging = this.subject.getLogging();
-		PropertyChangeListener propertyChangeListener = this.buildPropertyChangeListener();
-		
-		this.logging.addPropertyChangeListener(Logging.LEVEL_PROPERTY, propertyChangeListener);
-		this.logging.addPropertyChangeListener(Logging.TIMESTAMP_PROPERTY, propertyChangeListener);
-		this.logging.addPropertyChangeListener(Logging.THREAD_PROPERTY, propertyChangeListener);
-		this.logging.addPropertyChangeListener(Logging.SESSION_PROPERTY, propertyChangeListener);
-		this.logging.addPropertyChangeListener(Logging.EXCEPTIONS_PROPERTY, propertyChangeListener);
-		this.logging.addPropertyChangeListener(Logging.LOG_FILE_LOCATION_PROPERTY, propertyChangeListener);
-		this.logging.addPropertyChangeListener(Logging.LOGGER_PROPERTY, propertyChangeListener);
-
-		this.clearEvent();
-	}
-
-	/**
-	 * Initializes directly the PU properties before testing.
-	 */
-	@Override
-	protected void populatePu() {
-		this.modelPropertiesSizeOriginal = 7;
-		this.propertiesTotal = this.modelPropertiesSizeOriginal + 4; // 4 misc properties
-		this.modelPropertiesSize = this.modelPropertiesSizeOriginal;
-		
-		this.persistenceUnitSetProperty("misc.property.1", "value.1");
-		this.persistenceUnitSetProperty(TIMESTAMP_KEY, TIMESTAMP_TEST_VALUE.toString());
-		this.persistenceUnitSetProperty("misc.property.2", "value.2");
-		this.persistenceUnitSetProperty(LEVEL_KEY, LEVEL_TEST_VALUE);
-		this.persistenceUnitSetProperty("misc.property.3", "value.3");
-		this.persistenceUnitSetProperty(THREAD_KEY, THREAD_TEST_VALUE.toString());
-		this.persistenceUnitSetProperty(SESSION_KEY, SESSION_TEST_VALUE.toString());
-		this.persistenceUnitSetProperty(EXCEPTIONS_KEY, EXCEPTIONS_TEST_VALUE.toString());
-		this.persistenceUnitSetProperty("misc.property.4", "value.4");
-		this.persistenceUnitSetProperty(LOG_FILE_LOCATION_KEY, LOG_FILE_LOCATION_TEST_VALUE);
-		this.persistenceUnitSetProperty(LOGGER_KEY, LOGGER_TEST_VALUE);
-		return;
-	}
-	
-	// ********** Level tests **********
-	public void testSetLevel() throws Exception {
-		this.verifyModelInitialized(
-			LEVEL_KEY,
-			LEVEL_TEST_VALUE);
-		this.verifySetProperty(
-			LEVEL_KEY,
-			LEVEL_TEST_VALUE,
-			LEVEL_TEST_VALUE_2);
-	}
-
-	public void testAddRemoveLevel() throws Exception {
-		this.verifyAddRemoveProperty(
-			LEVEL_KEY,
-			LEVEL_TEST_VALUE,
-			LEVEL_TEST_VALUE_2);
-	}
-
-	// ********** Timestamp tests **********
-	public void testSetTimestamp() throws Exception {
-		this.verifyModelInitialized(
-			TIMESTAMP_KEY,
-			TIMESTAMP_TEST_VALUE);
-		this.verifySetProperty(
-			TIMESTAMP_KEY,
-			TIMESTAMP_TEST_VALUE,
-			TIMESTAMP_TEST_VALUE_2);
-	}
-
-	public void testAddRemoveTimestamp() throws Exception {
-		this.verifyAddRemoveProperty(
-			TIMESTAMP_KEY,
-			TIMESTAMP_TEST_VALUE,
-			TIMESTAMP_TEST_VALUE_2);
-	}
-
-	// ********** Thread tests **********
-	public void testSetThread() throws Exception {
-		this.verifyModelInitialized(
-			THREAD_KEY,
-			THREAD_TEST_VALUE);
-		this.verifySetProperty(
-			THREAD_KEY,
-			THREAD_TEST_VALUE,
-			THREAD_TEST_VALUE_2);
-	}
-
-	public void testAddRemoveThread() throws Exception {
-		this.verifyAddRemoveProperty(
-			THREAD_KEY,
-			THREAD_TEST_VALUE,
-			THREAD_TEST_VALUE_2);
-	}
-
-	// ********** Session tests **********
-	public void testSetSession() throws Exception {
-		this.verifyModelInitialized(
-			SESSION_KEY,
-			SESSION_TEST_VALUE);
-		this.verifySetProperty(
-			SESSION_KEY,
-			SESSION_TEST_VALUE,
-			SESSION_TEST_VALUE_2);
-	}
-
-	public void testAddRemoveSession() throws Exception {
-		this.verifyAddRemoveProperty(
-			SESSION_KEY,
-			SESSION_TEST_VALUE,
-			SESSION_TEST_VALUE_2);
-	}
-
-	// ********** Exceptions tests **********
-	public void testSetExceptions() throws Exception {
-		this.verifyModelInitialized(
-			EXCEPTIONS_KEY,
-			EXCEPTIONS_TEST_VALUE);
-		this.verifySetProperty(
-			EXCEPTIONS_KEY,
-			EXCEPTIONS_TEST_VALUE,
-			EXCEPTIONS_TEST_VALUE_2);
-	}
-	
-	public void testAddRemoveExceptions() throws Exception {
-		this.verifyAddRemoveProperty(
-			EXCEPTIONS_KEY,
-			EXCEPTIONS_TEST_VALUE,
-			EXCEPTIONS_TEST_VALUE_2);
-	}
-
-	// ********** LogFileLocation **********
-	public void testSetLogFileLocation() throws Exception {
-		this.verifyModelInitialized(
-			LOG_FILE_LOCATION_KEY,
-			LOG_FILE_LOCATION_TEST_VALUE);
-		this.verifySetProperty(
-			LOG_FILE_LOCATION_KEY,
-			LOG_FILE_LOCATION_TEST_VALUE,
-			LOG_FILE_LOCATION_TEST_VALUE_2);
-	}
-
-	public void testAddRemoveLogFileLocation() throws Exception {
-		this.verifyAddRemoveProperty(
-			LOG_FILE_LOCATION_KEY,
-			LOG_FILE_LOCATION_TEST_VALUE,
-			LOG_FILE_LOCATION_TEST_VALUE_2);
-	}
-	
-	// ********** Logger tests **********
-	public void testSetLogger() throws Exception {
-		this.verifyModelInitialized(
-			LOGGER_KEY,
-			this.getEclipseLinkStringValueOf(LOGGER_TEST_VALUE)); // model is storing EclipseLinkStringValue
-		// verify set enum value
-		this.verifySetProperty(
-			LOGGER_KEY,
-			LOGGER_TEST_VALUE,
-			LOGGER_TEST_VALUE_2);
-		// verify set custom and literal value
-		this.verifySetLogger(
-			LOGGER_KEY,
-			LOGGER_TEST_VALUE,
-			LOGGER_TEST_VALUE_2);
-	}
-
-	public void testAddRemoveLogger() throws Exception {
-		this.verifyAddRemoveProperty(
-			LOGGER_KEY,
-			LOGGER_TEST_VALUE,
-			LOGGER_TEST_VALUE_2);
-	}
-	
-	/**
-	 * Verifies setting custom logger and literals.
-	 */
-	protected void verifySetLogger(String elKey, Object testValue1, Object testValue2) throws Exception {
-		PersistenceUnit.Property property = this.getPersistenceUnit().getProperty(elKey);
-		String propertyName = this.getModel().propertyIdFor(property);
-		// test set custom logger.
-		this.clearEvent();
-		this.setProperty(propertyName, testValue2);
-		this.verifyPutProperty(propertyName, testValue2);
-
-		// test set (Logger) null
-		this.clearEvent();
-		this.logging.setLogger((Logger) null);
-		assertNull(this.getPersistenceUnit().getProperty(elKey));
-		this.verifyPutProperty(propertyName, null);
-		
-		// test set enum literal
-		this.clearEvent();
-		this.setProperty(propertyName, testValue1.toString());
-		assertNotNull(this.getPersistenceUnit().getProperty(elKey));
-		this.verifyPutProperty(propertyName, this.getEclipseLinkStringValueOf(testValue1));
-
-		// test set (String) null
-		this.clearEvent();
-		this.logging.setLogger((String) null);
-		assertNull(this.getPersistenceUnit().getProperty(elKey));
-		this.verifyPutProperty(propertyName, null);
-	}
-
-	// ********** get/set property **********
-	@Override
-	protected void setProperty(String propertyName, Object newValue) throws Exception {
-		if (propertyName.equals(Logging.LEVEL_PROPERTY))
-			this.logging.setLevel((LoggingLevel) newValue);
-		else if (propertyName.equals(Logging.TIMESTAMP_PROPERTY))
-			this.logging.setTimestamp((Boolean) newValue);
-		else if (propertyName.equals(Logging.THREAD_PROPERTY))
-			this.logging.setThread((Boolean) newValue);
-		else if (propertyName.equals(Logging.SESSION_PROPERTY))
-			this.logging.setSession((Boolean) newValue);
-		else if (propertyName.equals(Logging.EXCEPTIONS_PROPERTY))
-			this.logging.setExceptions((Boolean) newValue);
-		else if (propertyName.equals(Logging.LOG_FILE_LOCATION_PROPERTY))
-			this.logging.setLogFileLocation((String) newValue);
-		else if (propertyName.equals(Logging.LOGGER_PROPERTY)) {
-			if (newValue.getClass().isEnum())
-				this.logging.setLogger((Logger) newValue);
-			else
-				this.logging.setLogger((String) newValue);
-		}
-		else
-			this.throwMissingDefinition("setProperty", propertyName);
-	}
-
-	@Override
-	protected Object getProperty(String propertyName) throws NoSuchFieldException {
-		Object modelValue = null;
-		if (propertyName.equals(Logging.LEVEL_PROPERTY))
-			modelValue = this.logging.getLevel();
-		else if (propertyName.equals(Logging.TIMESTAMP_PROPERTY))
-			modelValue = this.logging.getTimestamp();
-		else if (propertyName.equals(Logging.THREAD_PROPERTY))
-			modelValue = this.logging.getThread();
-		else if (propertyName.equals(Logging.SESSION_PROPERTY))
-			modelValue = this.logging.getSession();
-		else if (propertyName.equals(Logging.EXCEPTIONS_PROPERTY))
-			modelValue = this.logging.getExceptions();
-		else if (propertyName.equals(Logging.LOG_FILE_LOCATION_PROPERTY))
-			modelValue = this.logging.getLogFileLocation();
-		else if (propertyName.equals(Logging.LOGGER_PROPERTY))
-			modelValue = this.logging.getLogger();
-		else
-			this.throwMissingDefinition("getProperty", propertyName);
-		return modelValue;
-	}
-	
-	@Override
-	protected void verifyPutProperty(String propertyName, Object expectedValue) throws Exception {
-		Object expectedValue_ = expectedValue;
-		if (propertyName.equals(Logging.LOGGER_PROPERTY)) {
-			
-			expectedValue_ = (expectedValue != null && expectedValue.getClass().isEnum()) ?
-				this.getEclipseLinkStringValueOf(LOGGER_TEST_VALUE) : // model is storing EclipseLinkStringValue
-				expectedValue;
-		}
-		super.verifyPutProperty(propertyName, expectedValue_);
-	}
-	
-	@Override
-	protected PersistenceUnitProperties getModel() {
-		return this.logging;
-	}
-}
diff --git a/jpa/tests/org.eclipse.jpt.eclipselink.core.tests/src/org/eclipse/jpt/eclipselink/core/tests/internal/context/persistence/logging/LoggingValueModelTests.java b/jpa/tests/org.eclipse.jpt.eclipselink.core.tests/src/org/eclipse/jpt/eclipselink/core/tests/internal/context/persistence/logging/LoggingValueModelTests.java
deleted file mode 100644
index 4a9c8b9..0000000
--- a/jpa/tests/org.eclipse.jpt.eclipselink.core.tests/src/org/eclipse/jpt/eclipselink/core/tests/internal/context/persistence/logging/LoggingValueModelTests.java
+++ /dev/null
@@ -1,162 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008, 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- *******************************************************************************/
-package org.eclipse.jpt.eclipselink.core.tests.internal.context.persistence.logging;
-
-import org.eclipse.jpt.eclipselink.core.internal.context.persistence.PersistenceUnitProperties;
-import org.eclipse.jpt.eclipselink.core.internal.context.persistence.logging.Logging;
-import org.eclipse.jpt.eclipselink.core.tests.internal.context.persistence.PersistenceUnitTestCase;
-import org.eclipse.jpt.utility.internal.model.AbstractModel;
-import org.eclipse.jpt.utility.internal.model.value.PropertyAspectAdapter;
-import org.eclipse.jpt.utility.internal.model.value.SimplePropertyValueModel;
-import org.eclipse.jpt.utility.model.event.PropertyChangeEvent;
-import org.eclipse.jpt.utility.model.listener.PropertyChangeListener;
-import org.eclipse.jpt.utility.model.value.PropertyValueModel;
-import org.eclipse.jpt.utility.model.value.WritablePropertyValueModel;
-
-/**
- * LoggingValueModelTests
- */
-@SuppressWarnings("nls")
-public class LoggingValueModelTests extends PersistenceUnitTestCase
-{
-	private Logging logging;
-
-	private WritablePropertyValueModel<Boolean> timestampHolder;
-	private PropertyChangeListener timestampListener;
-	private PropertyChangeEvent timestampEvent;
-
-	public static final Boolean TIMESTAMP_TEST_VALUE = Boolean.FALSE;
-
-	public LoggingValueModelTests(String name) {
-		super(name);
-	}
-
-	@Override
-	protected void setUp() throws Exception {
-		super.setUp();
-		this.logging = this.subject.getLogging(); // Subject
-		PropertyValueModel<Logging> loggingHolder = new SimplePropertyValueModel<Logging>(this.logging);
-		
-		this.timestampHolder = this.buildTimestampAA(loggingHolder);
-		this.timestampListener = this.buildTimestampChangeListener();
-		this.timestampHolder.addPropertyChangeListener(PropertyValueModel.VALUE, this.timestampListener);
-		this.timestampEvent = null;
-	}
-
-	public void testHasListeners() {
-		AbstractModel subjectLogging = (AbstractModel) this.logging; // Subject
-		
-		PropertyAspectAdapter<Logging, Boolean> timestampAA = 
-			(PropertyAspectAdapter<Logging, Boolean>) this.timestampHolder;
-		assertTrue(timestampAA.hasAnyPropertyChangeListeners(PropertyValueModel.VALUE));
-		assertTrue(subjectLogging.hasAnyPropertyChangeListeners(Logging.TIMESTAMP_PROPERTY));
-		
-		timestampAA.removePropertyChangeListener(PropertyValueModel.VALUE, this.timestampListener);
-		assertFalse(subjectLogging.hasAnyPropertyChangeListeners(Logging.TIMESTAMP_PROPERTY));
-		assertFalse(timestampAA.hasAnyPropertyChangeListeners(PropertyValueModel.VALUE));
-	}
-
-	/**
-	 * Initializes directly the PU properties before testing. 
-	 */
-	@Override
-	protected void populatePu() {
-		this.persistenceUnitSetProperty(
-			Logging.ECLIPSELINK_TIMESTAMP, 
-			TIMESTAMP_TEST_VALUE);
-		return;
-	}
-
-	@Override
-	protected PersistenceUnitProperties getModel() {
-		return this.logging;
-	}
-
-	// ****** Timestamp *******
-	private WritablePropertyValueModel<Boolean> buildTimestampAA(PropertyValueModel<Logging> subjectHolder) {
-		return new PropertyAspectAdapter<Logging, Boolean>(subjectHolder, Logging.TIMESTAMP_PROPERTY) {
-			@Override
-			protected Boolean buildValue_() {
-				return this.subject.getTimestamp();
-			}
-
-			@Override
-			protected void setValue_(Boolean enumValue) {
-				this.subject.setTimestamp(enumValue);
-			}
-		};
-	}
-
-	private PropertyChangeListener buildTimestampChangeListener() {
-		return new PropertyChangeListener() {
-			public void propertyChanged(PropertyChangeEvent e) {
-				LoggingValueModelTests.this.timestampEvent = e;
-			}
-		};
-	}
-
-	// ****** Tests ******* 
-	public void testValue() {
-		// ****** Timestamp ******* 
-		this.verifyTimestampAAValue(TIMESTAMP_TEST_VALUE);
-		assertEquals(Logging.DEFAULT_TIMESTAMP, this.logging.getDefaultTimestamp());
-	}
-
-	public void testSetValue() throws Exception {
-		// ****** Timestamp ******* 
-		this.timestampEvent = null;
-		this.verifyHasListeners(this.timestampHolder, PropertyValueModel.VALUE);
-		Boolean newTimestamp = !TIMESTAMP_TEST_VALUE;
-		// Modify the property holder
-		this.timestampHolder.setValue(newTimestamp);
-		this.verifyTimestampAAValue(newTimestamp);
-		assertNotNull(this.timestampEvent);
-	}
-
-	public void testSetNullValue() {
-		String notDeleted = "Property not deleted";
-		// ****** Timestamp *******
-		this.timestampEvent = null;
-		// Setting the property holder
-		this.timestampHolder.setValue(null);
-		// testing Holder
-		this.verifyTimestampAAValue(null);
-		assertNotNull(this.timestampEvent);
-		// testing PU properties
-		this.verifyPuHasNotProperty(Logging.ECLIPSELINK_TIMESTAMP, notDeleted);
-	}
-
-	// ****** convenience methods *******
-
-	/**
-	 * Performs three value tests:<br>
-	 * 1. subject value<br>
-	 * 2. aspect adapter value<br>
-	 * 3. persistenceUnit property value<br>
-	 */
-	protected void verifyTimestampAAValue(Boolean testValue) {
-		this.verifyAAValue(
-			testValue, 
-			this.logging.getTimestamp(), 
-			this.timestampHolder, 
-			Logging.ECLIPSELINK_TIMESTAMP);
-	}
-
-	// ********** get/set property **********
-	@Override
-	protected void setProperty(String propertyName, Object newValue) throws Exception {
-		throw new UnsupportedOperationException();
-	}
-
-	@Override
-	protected Object getProperty(String propertyName) throws NoSuchFieldException {
-		throw new UnsupportedOperationException();
-	}
-}
diff --git a/jpa/tests/org.eclipse.jpt.eclipselink.core.tests/src/org/eclipse/jpt/eclipselink/core/tests/internal/context/persistence/options/JptEclipseLinkPersistenceOptionsTests.java b/jpa/tests/org.eclipse.jpt.eclipselink.core.tests/src/org/eclipse/jpt/eclipselink/core/tests/internal/context/persistence/options/JptEclipseLinkPersistenceOptionsTests.java
deleted file mode 100644
index 5ce21de..0000000
--- a/jpa/tests/org.eclipse.jpt.eclipselink.core.tests/src/org/eclipse/jpt/eclipselink/core/tests/internal/context/persistence/options/JptEclipseLinkPersistenceOptionsTests.java
+++ /dev/null
@@ -1,33 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.eclipselink.core.tests.internal.context.persistence.options;
-
-import junit.framework.Test;
-import junit.framework.TestSuite;
-
-/**
- * decentralize test creation code
- */
-public class JptEclipseLinkPersistenceOptionsTests
-{
-	public static Test suite() {
-		TestSuite suite = new TestSuite(JptEclipseLinkPersistenceOptionsTests.class.getPackage().getName());
-		
-		suite.addTestSuite(OptionsValueModelTests.class);
-		suite.addTestSuite(OptionsAdapterTests.class);
-		
-		return suite;
-	}
-
-	private JptEclipseLinkPersistenceOptionsTests() {
-		super();
-		throw new UnsupportedOperationException();
-	}
-}
diff --git a/jpa/tests/org.eclipse.jpt.eclipselink.core.tests/src/org/eclipse/jpt/eclipselink/core/tests/internal/context/persistence/options/OptionsAdapterTests.java b/jpa/tests/org.eclipse.jpt.eclipselink.core.tests/src/org/eclipse/jpt/eclipselink/core/tests/internal/context/persistence/options/OptionsAdapterTests.java
deleted file mode 100644
index 13332ef..0000000
--- a/jpa/tests/org.eclipse.jpt.eclipselink.core.tests/src/org/eclipse/jpt/eclipselink/core/tests/internal/context/persistence/options/OptionsAdapterTests.java
+++ /dev/null
@@ -1,379 +0,0 @@
-/*******************************************************************************
-* Copyright (c) 2008, 2009 Oracle. All rights reserved.
-* This program and the accompanying materials are made available under the
-* terms of the Eclipse Public License v1.0, which accompanies this distribution
-* and is available at http://www.eclipse.org/legal/epl-v10.html.
-* 
-* Contributors:
-*     Oracle - initial API and implementation
-*******************************************************************************/
-package org.eclipse.jpt.eclipselink.core.tests.internal.context.persistence.options;
-
-import org.eclipse.jpt.core.context.persistence.PersistenceUnit;
-import org.eclipse.jpt.eclipselink.core.internal.context.persistence.PersistenceUnitProperties;
-import org.eclipse.jpt.eclipselink.core.internal.context.persistence.options.Options;
-import org.eclipse.jpt.eclipselink.core.internal.context.persistence.options.TargetDatabase;
-import org.eclipse.jpt.eclipselink.core.internal.context.persistence.options.TargetServer;
-import org.eclipse.jpt.eclipselink.core.tests.internal.context.persistence.PersistenceUnitTestCase;
-import org.eclipse.jpt.utility.model.listener.PropertyChangeListener;
-
-/**
- * Tests the update of model objects by the Option adapter when the
- * PersistenceUnit changes.
- */
-public class OptionsAdapterTests extends PersistenceUnitTestCase
-{
-	private Options options;
-
-	private static final String SESSION_NAME_KEY = Options.ECLIPSELINK_SESSION_NAME;
-	private static final String SESSION_NAME_TEST_VALUE = "session-name.test";
-	private static final String SESSION_NAME_TEST_VALUE_2 = "session-name-2.test";
-
-	private static final String SESSIONS_XML_KEY = Options.ECLIPSELINK_SESSIONS_XML;
-	private static final String SESSIONS_XML_TEST_VALUE = "sessions-xml.test";
-	private static final String SESSIONS_XML_TEST_VALUE_2 = "sessions-xml-2.test";
-
-	public static final String TARGET_DATABASE_KEY = Options.ECLIPSELINK_TARGET_DATABASE;
-	public static final TargetDatabase TARGET_DATABASE_TEST_VALUE = TargetDatabase.cloudscape;
-	public static final String TARGET_DATABASE_TEST_VALUE_2 = "custom.targetDatabase.test";
-
-	private static final String TARGET_SERVER_KEY = Options.ECLIPSELINK_TARGET_SERVER;
-	private static final TargetServer TARGET_SERVER_TEST_VALUE = TargetServer.weblogic_9;
-	private static final String TARGET_SERVER_TEST_VALUE_2 = "custom.targetServer.test";
-
-	public static final String INCLUDE_DESCRIPTOR_QUERIES_KEY = Options.ECLIPSELINK_SESSION_INCLUDE_DESCRIPTOR_QUERIES;
-	public static final Boolean INCLUDE_DESCRIPTOR_QUERIES_TEST_VALUE = false;
-	public static final Boolean INCLUDE_DESCRIPTOR_QUERIES_TEST_VALUE_2 = ! INCLUDE_DESCRIPTOR_QUERIES_TEST_VALUE;
-
-	public static final String SESSION_EVENT_LISTENER_KEY = Options.ECLIPSELINK_SESSION_EVENT_LISTENER;
-	public static final String SESSION_EVENT_LISTENER_TEST_VALUE = "acme.CustomSessionEventListener";
-	public static final String SESSION_EVENT_LISTENER_TEST_VALUE_2 = "oracle.sessions.CustomSessionEventListener";
-
-	public static final String TEMPORAL_MUTABLE_KEY = Options.ECLIPSELINK_TEMPORAL_MUTABLE;
-	public static final Boolean TEMPORAL_MUTABLE_TEST_VALUE = true;
-	public static final Boolean TEMPORAL_MUTABLE_TEST_VALUE_2 = ! TEMPORAL_MUTABLE_TEST_VALUE;
-
-	public OptionsAdapterTests(String name) {
-		super(name);
-	}
-
-	@Override
-	protected void setUp() throws Exception {
-		super.setUp();
-		this.options = this.subject.getOptions();
-		PropertyChangeListener propertyChangeListener = this.buildPropertyChangeListener();
-
-		this.options.addPropertyChangeListener(Options.SESSION_NAME_PROPERTY, propertyChangeListener);
-		this.options.addPropertyChangeListener(Options.SESSIONS_XML_PROPERTY, propertyChangeListener);
-		this.options.addPropertyChangeListener(Options.TARGET_DATABASE_PROPERTY, propertyChangeListener);
-		this.options.addPropertyChangeListener(Options.TARGET_SERVER_PROPERTY, propertyChangeListener);
-		this.options.addPropertyChangeListener(Options.SESSION_EVENT_LISTENER_PROPERTY, propertyChangeListener);
-		this.options.addPropertyChangeListener(
-			Options.SESSION_INCLUDE_DESCRIPTOR_QUERIES_PROPERTY, propertyChangeListener);
-		this.options.addPropertyChangeListener(Options.TEMPORAL_MUTABLE_PROPERTY, propertyChangeListener);
-
-		this.clearEvent();
-	}
-
-	/**
-	 * Initializes directly the PU properties before testing.
-	 */
-	@Override
-	protected void populatePu() {
-		this.modelPropertiesSizeOriginal = 7;
-		this.propertiesTotal = this.modelPropertiesSizeOriginal + 4; // 4 misc properties
-		this.modelPropertiesSize = this.modelPropertiesSizeOriginal;
-		
-		this.persistenceUnitSetProperty(SESSION_NAME_KEY, SESSION_NAME_TEST_VALUE);
-		this.persistenceUnitSetProperty(SESSIONS_XML_KEY, SESSIONS_XML_TEST_VALUE);
-		this.persistenceUnitSetProperty("misc.property.1", "value.1");
-		this.persistenceUnitSetProperty(INCLUDE_DESCRIPTOR_QUERIES_KEY, INCLUDE_DESCRIPTOR_QUERIES_TEST_VALUE.toString());
-		this.persistenceUnitSetProperty("misc.property.2", "value.2");
-		this.persistenceUnitSetProperty("misc.property.3", "value.3");
-		this.persistenceUnitSetProperty(TARGET_DATABASE_KEY, TARGET_DATABASE_TEST_VALUE);
-		this.persistenceUnitSetProperty(TARGET_SERVER_KEY, TARGET_SERVER_TEST_VALUE);
-		this.persistenceUnitSetProperty(SESSION_EVENT_LISTENER_KEY, SESSION_EVENT_LISTENER_TEST_VALUE);
-		this.persistenceUnitSetProperty("misc.property.4", "value.4");
-		this.persistenceUnitSetProperty(TEMPORAL_MUTABLE_KEY, TEMPORAL_MUTABLE_TEST_VALUE.toString());
-		return;
-	}
-	
-	// ********** Listeners **********
-
-	// ********** SessionName tests **********
-	public void testSetSessionName() throws Exception {
-		this.verifyModelInitialized(
-			SESSION_NAME_KEY,
-			SESSION_NAME_TEST_VALUE);
-		this.verifySetProperty(
-			SESSION_NAME_KEY,
-			SESSION_NAME_TEST_VALUE,
-			SESSION_NAME_TEST_VALUE_2);
-	}
-
-	public void testAddRemoveSessionName() throws Exception {
-		this.verifyAddRemoveProperty(
-			SESSION_NAME_KEY,
-			SESSION_NAME_TEST_VALUE,
-			SESSION_NAME_TEST_VALUE_2);
-	}
-
-	// ********** SessionsXml tests **********
-	public void testSetSessionsXml() throws Exception {
-		this.verifyModelInitialized(
-			SESSIONS_XML_KEY,
-			SESSIONS_XML_TEST_VALUE);
-		this.verifySetProperty(
-			SESSIONS_XML_KEY,
-			SESSIONS_XML_TEST_VALUE,
-			SESSIONS_XML_TEST_VALUE_2);
-	}
-
-	public void testAddRemoveSessionsXml() throws Exception {
-		this.verifyAddRemoveProperty(
-			SESSIONS_XML_KEY,
-			SESSIONS_XML_TEST_VALUE,
-			SESSIONS_XML_TEST_VALUE_2);
-	}
-
-	// ********** IncludeDescriptorQueries tests **********
-	public void testSetIncludeDescriptorQueries() throws Exception {
-		this.verifyModelInitialized(
-			INCLUDE_DESCRIPTOR_QUERIES_KEY,
-			INCLUDE_DESCRIPTOR_QUERIES_TEST_VALUE);
-		this.verifySetProperty(
-			INCLUDE_DESCRIPTOR_QUERIES_KEY,
-			INCLUDE_DESCRIPTOR_QUERIES_TEST_VALUE,
-			INCLUDE_DESCRIPTOR_QUERIES_TEST_VALUE_2);
-	}
-
-	public void testAddRemoveIncludeDescriptorQueries() throws Exception {
-		this.verifyAddRemoveProperty(
-			INCLUDE_DESCRIPTOR_QUERIES_KEY,
-			INCLUDE_DESCRIPTOR_QUERIES_TEST_VALUE,
-			INCLUDE_DESCRIPTOR_QUERIES_TEST_VALUE_2);
-	}
-
-	// ********** TargetDatabase tests **********
-	public void testSetTargetDatabase() throws Exception {
-		this.verifyModelInitialized(
-			TARGET_DATABASE_KEY,
-			this.getEclipseLinkStringValueOf(TARGET_DATABASE_TEST_VALUE)); // model is storing EclipseLinkStringValue
-		this.verifySetProperty(
-			TARGET_DATABASE_KEY,
-			TARGET_DATABASE_TEST_VALUE,
-			TARGET_DATABASE_TEST_VALUE_2);
-		// verify set custom and literal value
-		this.verifySetTargetDatabase(
-			TARGET_DATABASE_KEY,
-			TARGET_DATABASE_TEST_VALUE,
-			TARGET_DATABASE_TEST_VALUE_2);
-	}
-
-	public void testAddRemoveTargetDatabase() throws Exception {
-		this.verifyAddRemoveProperty(
-			TARGET_DATABASE_KEY,
-			TARGET_DATABASE_TEST_VALUE,
-			TARGET_DATABASE_TEST_VALUE_2);
-	}
-	
-	/**
-	 * Verifies setting custom targetDatabase and literals.
-	 */
-	protected void verifySetTargetDatabase(String elKey, Object testValue1, Object testValue2) throws Exception {
-		PersistenceUnit.Property property = this.getPersistenceUnit().getProperty(elKey);
-		String propertyName = this.getModel().propertyIdFor(property);
-		// test set custom targetDatabase.
-		this.clearEvent();
-		this.setProperty(propertyName, testValue2);
-		this.verifyPutProperty(propertyName, testValue2);
-
-		// test set (TargetDatabase) null
-		this.clearEvent();
-		this.options.setTargetDatabase((TargetDatabase) null);
-		assertNull(this.getPersistenceUnit().getProperty(elKey));
-		this.verifyPutProperty(propertyName, null);
-		
-		// test set enum literal
-		this.clearEvent();
-		this.setProperty(propertyName, testValue1.toString());
-		assertNotNull(this.getPersistenceUnit().getProperty(elKey));
-		this.verifyPutProperty(propertyName, this.getEclipseLinkStringValueOf(testValue1));
-
-		// test set (String) null
-		this.clearEvent();
-		this.options.setTargetDatabase((String) null);
-		assertNull(this.getPersistenceUnit().getProperty(elKey));
-		this.verifyPutProperty(propertyName, null);
-	}
-	
-	// ********** TargetServer tests **********
-	public void testSetTargetServer() throws Exception {
-		this.verifyModelInitialized(
-			TARGET_SERVER_KEY,
-			this.getEclipseLinkStringValueOf(TARGET_SERVER_TEST_VALUE)); // model is storing EclipseLinkStringValue
-		// verify set enum value
-		this.verifySetProperty(
-			TARGET_SERVER_KEY,
-			TARGET_SERVER_TEST_VALUE,
-			TARGET_SERVER_TEST_VALUE_2);
-		// verify set custom and literal value
-		this.verifySetTargetServer(
-			TARGET_SERVER_KEY,
-			TARGET_SERVER_TEST_VALUE,
-			TARGET_SERVER_TEST_VALUE_2);
-	}
-
-	public void testAddRemoveTargetServer() throws Exception {
-		this.verifyAddRemoveProperty(
-			TARGET_SERVER_KEY,
-			TARGET_SERVER_TEST_VALUE,
-			TARGET_SERVER_TEST_VALUE_2);
-	}
-	
-	/**
-	 * Verifies setting custom targetServer and literals.
-	 */
-	protected void verifySetTargetServer(String elKey, Object testValue1, Object testValue2) throws Exception {
-		PersistenceUnit.Property property = this.getPersistenceUnit().getProperty(elKey);
-		String propertyName = this.getModel().propertyIdFor(property);
-		// test set custom targetServer.
-		this.clearEvent();
-		this.setProperty(propertyName, testValue2);
-		this.verifyPutProperty(propertyName, testValue2);
-
-		// test set (TargetServer) null
-		this.clearEvent();
-		this.options.setTargetServer((TargetServer) null);
-		assertNull(this.getPersistenceUnit().getProperty(elKey));
-		this.verifyPutProperty(propertyName, null);
-		
-		// test set enum literal
-		this.clearEvent();
-		this.setProperty(propertyName, testValue1.toString());
-		assertNotNull(this.getPersistenceUnit().getProperty(elKey));
-		this.verifyPutProperty(propertyName, this.getEclipseLinkStringValueOf(testValue1));
-
-		// test set (String) null
-		this.clearEvent();
-		this.options.setTargetServer((String) null);
-		assertNull(this.getPersistenceUnit().getProperty(elKey));
-		this.verifyPutProperty(propertyName, null);
-	}
-
-	// ********** EventListener tests **********
-	public void testSetEventListener() throws Exception {
-		this.verifyModelInitialized(
-			SESSION_EVENT_LISTENER_KEY,
-			SESSION_EVENT_LISTENER_TEST_VALUE);
-		this.verifySetProperty(
-			SESSION_EVENT_LISTENER_KEY,
-			SESSION_EVENT_LISTENER_TEST_VALUE,
-			SESSION_EVENT_LISTENER_TEST_VALUE_2);
-	}
-
-	public void testAddRemoveEventListener() throws Exception {
-		this.verifyAddRemoveProperty(
-			SESSION_EVENT_LISTENER_KEY,
-			SESSION_EVENT_LISTENER_TEST_VALUE,
-			SESSION_EVENT_LISTENER_TEST_VALUE_2);
-	}
-
-	// ********** TemporalMutable tests **********
-	public void testSetTemporalMutable() throws Exception {
-		this.verifyModelInitialized(
-			TEMPORAL_MUTABLE_KEY,
-			TEMPORAL_MUTABLE_TEST_VALUE);
-		this.verifySetProperty(
-			TEMPORAL_MUTABLE_KEY,
-			TEMPORAL_MUTABLE_TEST_VALUE,
-			TEMPORAL_MUTABLE_TEST_VALUE_2);
-	}
-
-	public void testAddRemoveTemporalMutable() throws Exception {
-		this.verifyAddRemoveProperty(
-			TEMPORAL_MUTABLE_KEY,
-			TEMPORAL_MUTABLE_TEST_VALUE,
-			TEMPORAL_MUTABLE_TEST_VALUE_2);
-	}
-
-	// ********** get/set property **********
-	@Override
-	protected void setProperty(String propertyName, Object newValue) throws Exception {
-		if (propertyName.equals(Options.SESSION_NAME_PROPERTY))
-			this.options.setSessionName((String) newValue);
-		else if (propertyName.equals(Options.SESSIONS_XML_PROPERTY))
-			this.options.setSessionsXml((String) newValue);
-		else if (propertyName.equals(Options.SESSION_INCLUDE_DESCRIPTOR_QUERIES_PROPERTY))
-			this.options.setIncludeDescriptorQueries((Boolean) newValue);
-		else if (propertyName.equals(Options.TARGET_DATABASE_PROPERTY))
-			this.setTargetDatabaseProperty(newValue);
-		else if (propertyName.equals(Options.TARGET_SERVER_PROPERTY))
-			this.setTargetServerProperty(newValue);
-		else if (propertyName.equals(Options.SESSION_EVENT_LISTENER_PROPERTY))
-			this.options.setEventListener((String) newValue);
-		else if (propertyName.equals(Options.TEMPORAL_MUTABLE_PROPERTY))
-			this.options.setTemporalMutable((Boolean) newValue);
-		else
-			this.throwMissingDefinition("setProperty", propertyName);
-	}
-
-	private void setTargetDatabaseProperty(Object newValue) {
-		if (newValue.getClass().isEnum())
-			this.options.setTargetDatabase((TargetDatabase) newValue);
-		else
-			this.options.setTargetDatabase((String) newValue);
-	}
-
-	private void setTargetServerProperty(Object newValue) {
-		if (newValue.getClass().isEnum())
-			this.options.setTargetServer((TargetServer) newValue);
-		else
-			this.options.setTargetServer((String) newValue);
-	}
-
-	@Override
-	protected Object getProperty(String propertyName) throws NoSuchFieldException {
-		Object modelValue = null;
-		if (propertyName.equals(Options.SESSION_NAME_PROPERTY))
-			modelValue = this.options.getSessionName();
-		else if (propertyName.equals(Options.SESSIONS_XML_PROPERTY))
-			modelValue = this.options.getSessionsXml();
-		else if (propertyName.equals(Options.SESSION_INCLUDE_DESCRIPTOR_QUERIES_PROPERTY))
-			modelValue = this.options.getIncludeDescriptorQueries();
-		else if (propertyName.equals(Options.TARGET_DATABASE_PROPERTY))
-			modelValue = this.options.getTargetDatabase();
-		else if (propertyName.equals(Options.TARGET_SERVER_PROPERTY))
-			modelValue = this.options.getTargetServer();
-		else if (propertyName.equals(Options.SESSION_EVENT_LISTENER_PROPERTY))
-			modelValue = this.options.getEventListener();
-		else if (propertyName.equals(Options.TEMPORAL_MUTABLE_PROPERTY))
-			modelValue = this.options.getTemporalMutable();
-		else
-			this.throwMissingDefinition("getProperty", propertyName);
-		return modelValue;
-	}
-	
-	@Override
-	protected void verifyPutProperty(String propertyName, Object expectedValue) throws Exception {
-		Object expectedValue_ = expectedValue;
-		if (propertyName.equals(Options.TARGET_DATABASE_PROPERTY) ||
-			propertyName.equals(Options.TARGET_SERVER_PROPERTY)) {
-			
-			expectedValue_ = this.convertToEclipseLinkStringValue(expectedValue);
-		}
-		
-		super.verifyPutProperty(propertyName, expectedValue_);
-	}
-	
-	private String convertToEclipseLinkStringValue(Object expectedValue) {
-		return (String) ((expectedValue != null && expectedValue.getClass().isEnum()) ?
-				this.getEclipseLinkStringValueOf(expectedValue) : // model is storing EclipseLinkStringValue
-				expectedValue); // already a EclipseLinkStringValue
-	}
-	
-	@Override
-	protected PersistenceUnitProperties getModel() {
-		return this.options;
-	}
-}
diff --git a/jpa/tests/org.eclipse.jpt.eclipselink.core.tests/src/org/eclipse/jpt/eclipselink/core/tests/internal/context/persistence/options/OptionsValueModelTests.java b/jpa/tests/org.eclipse.jpt.eclipselink.core.tests/src/org/eclipse/jpt/eclipselink/core/tests/internal/context/persistence/options/OptionsValueModelTests.java
deleted file mode 100644
index ce33a48..0000000
--- a/jpa/tests/org.eclipse.jpt.eclipselink.core.tests/src/org/eclipse/jpt/eclipselink/core/tests/internal/context/persistence/options/OptionsValueModelTests.java
+++ /dev/null
@@ -1,161 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008, 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- *******************************************************************************/
-package org.eclipse.jpt.eclipselink.core.tests.internal.context.persistence.options;
-
-import org.eclipse.jpt.eclipselink.core.internal.context.persistence.PersistenceUnitProperties;
-import org.eclipse.jpt.eclipselink.core.internal.context.persistence.options.Options;
-import org.eclipse.jpt.eclipselink.core.tests.internal.context.persistence.PersistenceUnitTestCase;
-import org.eclipse.jpt.utility.internal.model.AbstractModel;
-import org.eclipse.jpt.utility.internal.model.value.PropertyAspectAdapter;
-import org.eclipse.jpt.utility.internal.model.value.SimplePropertyValueModel;
-import org.eclipse.jpt.utility.model.event.PropertyChangeEvent;
-import org.eclipse.jpt.utility.model.listener.PropertyChangeListener;
-import org.eclipse.jpt.utility.model.value.PropertyValueModel;
-import org.eclipse.jpt.utility.model.value.WritablePropertyValueModel;
-
-/**
- * OptionsValueModelTests
- */
-public class OptionsValueModelTests extends PersistenceUnitTestCase
-{
-	private Options options;
-
-	private WritablePropertyValueModel<Boolean> includeDescriptorQueriesHolder;
-	private PropertyChangeListener includeDescriptorQueriesListener;
-	private PropertyChangeEvent includeDescriptorQueriesEvent;
-
-	public static final Boolean INCLUDE_DESCRIPTOR_QUERIES_TEST_VALUE = Boolean.FALSE;
-
-	public OptionsValueModelTests(String name) {
-		super(name);
-	}
-
-	@Override
-	protected void setUp() throws Exception {
-		super.setUp();
-		this.options = this.subject.getOptions(); // Subject
-		PropertyValueModel<Options> optionsHolder = new SimplePropertyValueModel<Options>(this.options);
-		
-		this.includeDescriptorQueriesHolder = this.buildIncludeDescriptorQueriesAA(optionsHolder);
-		this.includeDescriptorQueriesListener = this.buildIncludeDescriptorQueriesChangeListener();
-		this.includeDescriptorQueriesHolder.addPropertyChangeListener(PropertyValueModel.VALUE, this.includeDescriptorQueriesListener);
-		this.includeDescriptorQueriesEvent = null;
-	}
-
-	public void testHasListeners() {
-		AbstractModel subjectOptions = (AbstractModel) this.options; // Subject
-		
-		PropertyAspectAdapter<Options, Boolean> includeDescriptorQueriesAA = 
-			(PropertyAspectAdapter<Options, Boolean>) this.includeDescriptorQueriesHolder;
-		assertTrue(includeDescriptorQueriesAA.hasAnyPropertyChangeListeners(PropertyValueModel.VALUE));
-		assertTrue(subjectOptions.hasAnyPropertyChangeListeners(Options.SESSION_INCLUDE_DESCRIPTOR_QUERIES_PROPERTY));
-		
-		includeDescriptorQueriesAA.removePropertyChangeListener(PropertyValueModel.VALUE, this.includeDescriptorQueriesListener);
-		assertFalse(subjectOptions.hasAnyPropertyChangeListeners(Options.SESSION_INCLUDE_DESCRIPTOR_QUERIES_PROPERTY));
-		assertFalse(includeDescriptorQueriesAA.hasAnyPropertyChangeListeners(PropertyValueModel.VALUE));
-	}
-
-	/**
-	 * Initializes directly the PU properties before testing. 
-	 */
-	@Override
-	protected void populatePu() {
-		this.persistenceUnitSetProperty(
-			Options.ECLIPSELINK_SESSION_INCLUDE_DESCRIPTOR_QUERIES, 
-			INCLUDE_DESCRIPTOR_QUERIES_TEST_VALUE);
-		return;
-	}
-
-	@Override
-	protected PersistenceUnitProperties getModel() {
-		return this.options;
-	}
-
-	// ****** IncludeDescriptorQueries *******
-	private WritablePropertyValueModel<Boolean> buildIncludeDescriptorQueriesAA(PropertyValueModel<Options> subjectHolder) {
-		return new PropertyAspectAdapter<Options, Boolean>(subjectHolder, Options.SESSION_INCLUDE_DESCRIPTOR_QUERIES_PROPERTY) {
-			@Override
-			protected Boolean buildValue_() {
-				return this.subject.getIncludeDescriptorQueries();
-			}
-
-			@Override
-			protected void setValue_(Boolean enumValue) {
-				this.subject.setIncludeDescriptorQueries(enumValue);
-			}
-		};
-	}
-
-	private PropertyChangeListener buildIncludeDescriptorQueriesChangeListener() {
-		return new PropertyChangeListener() {
-			public void propertyChanged(PropertyChangeEvent e) {
-				OptionsValueModelTests.this.includeDescriptorQueriesEvent = e;
-			}
-		};
-	}
-
-	// ****** Tests ******* 
-	public void testValue() {
-		// ****** IncludeDescriptorQueries ******* 
-		this.verifyIncludeDescriptorQueriesAAValue(INCLUDE_DESCRIPTOR_QUERIES_TEST_VALUE);
-		assertEquals(Options.DEFAULT_SESSION_INCLUDE_DESCRIPTOR_QUERIES, this.options.getDefaultIncludeDescriptorQueries());
-	}
-
-	public void testSetValue() throws Exception {
-		// ****** IncludeDescriptorQueries ******* 
-		this.includeDescriptorQueriesEvent = null;
-		this.verifyHasListeners(this.includeDescriptorQueriesHolder, PropertyValueModel.VALUE);
-		Boolean newIncludeDescriptorQueries = !INCLUDE_DESCRIPTOR_QUERIES_TEST_VALUE;
-		// Modify the property holder
-		this.includeDescriptorQueriesHolder.setValue(newIncludeDescriptorQueries);
-		this.verifyIncludeDescriptorQueriesAAValue(newIncludeDescriptorQueries);
-		assertNotNull(this.includeDescriptorQueriesEvent);
-	}
-
-	public void testSetNullValue() {
-		String notDeleted = "Property not deleted";
-		// ****** IncludeDescriptorQueries *******
-		this.includeDescriptorQueriesEvent = null;
-		// Setting the property holder
-		this.includeDescriptorQueriesHolder.setValue(null);
-		// testing Holder
-		this.verifyIncludeDescriptorQueriesAAValue(null);
-		assertNotNull(this.includeDescriptorQueriesEvent);
-		// testing PU properties
-		this.verifyPuHasNotProperty(Options.ECLIPSELINK_SESSION_INCLUDE_DESCRIPTOR_QUERIES, notDeleted);
-	}
-
-	// ****** convenience methods *******
-
-	/**
-	 * Performs three value tests:<br>
-	 * 1. subject value<br>
-	 * 2. aspect adapter value<br>
-	 * 3. persistenceUnit property value<br>
-	 */
-	protected void verifyIncludeDescriptorQueriesAAValue(Boolean testValue) {
-		this.verifyAAValue(
-			testValue, 
-			this.options.getIncludeDescriptorQueries(), 
-			this.includeDescriptorQueriesHolder, 
-			Options.ECLIPSELINK_SESSION_INCLUDE_DESCRIPTOR_QUERIES);
-	}
-
-	// ********** get/set property **********
-	@Override
-	protected void setProperty(String propertyName, Object newValue) throws Exception {
-		throw new UnsupportedOperationException();
-	}
-
-	@Override
-	protected Object getProperty(String propertyName) throws NoSuchFieldException {
-		throw new UnsupportedOperationException();
-	}
-}
diff --git a/jpa/tests/org.eclipse.jpt.eclipselink.core.tests/src/org/eclipse/jpt/eclipselink/core/tests/internal/context/persistence/schema/generation/JptEclipseLinkPersistenceSchemaGenerationTests.java b/jpa/tests/org.eclipse.jpt.eclipselink.core.tests/src/org/eclipse/jpt/eclipselink/core/tests/internal/context/persistence/schema/generation/JptEclipseLinkPersistenceSchemaGenerationTests.java
deleted file mode 100644
index 8ae6c55..0000000
--- a/jpa/tests/org.eclipse.jpt.eclipselink.core.tests/src/org/eclipse/jpt/eclipselink/core/tests/internal/context/persistence/schema/generation/JptEclipseLinkPersistenceSchemaGenerationTests.java
+++ /dev/null
@@ -1,35 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.eclipselink.core.tests.internal.context.persistence.schema.generation;
-
-import junit.framework.Test;
-import junit.framework.TestSuite;
-
-/**
- * decentralize test creation code
- */
-public class JptEclipseLinkPersistenceSchemaGenerationTests {
-
-	public static Test suite() {
-		TestSuite suite = new TestSuite(JptEclipseLinkPersistenceSchemaGenerationTests.class.getPackage().getName());
-
-		suite.addTestSuite(SchemaGenerationValueModelTests.class);
-		suite.addTestSuite(SchemaGenerationBasicAdapterTests.class);
-		suite.addTestSuite(SchemaGenerationAdapterTests.class);
-
-		return suite;
-	}
-
-	private JptEclipseLinkPersistenceSchemaGenerationTests() {
-		super();
-		throw new UnsupportedOperationException();
-	}
-
-}
diff --git a/jpa/tests/org.eclipse.jpt.eclipselink.core.tests/src/org/eclipse/jpt/eclipselink/core/tests/internal/context/persistence/schema/generation/SchemaGenerationAdapterTests.java b/jpa/tests/org.eclipse.jpt.eclipselink.core.tests/src/org/eclipse/jpt/eclipselink/core/tests/internal/context/persistence/schema/generation/SchemaGenerationAdapterTests.java
deleted file mode 100644
index 97c05c2..0000000
--- a/jpa/tests/org.eclipse.jpt.eclipselink.core.tests/src/org/eclipse/jpt/eclipselink/core/tests/internal/context/persistence/schema/generation/SchemaGenerationAdapterTests.java
+++ /dev/null
@@ -1,239 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008, 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.eclipselink.core.tests.internal.context.persistence.schema.generation;
-
-import org.eclipse.jpt.eclipselink.core.internal.context.persistence.PersistenceUnitProperties;
-import org.eclipse.jpt.eclipselink.core.internal.context.persistence.schema.generation.DdlGenerationType;
-import org.eclipse.jpt.eclipselink.core.internal.context.persistence.schema.generation.OutputMode;
-import org.eclipse.jpt.eclipselink.core.internal.context.persistence.schema.generation.SchemaGeneration;
-import org.eclipse.jpt.eclipselink.core.tests.internal.context.persistence.PersistenceUnitTestCase;
-import org.eclipse.jpt.utility.model.listener.PropertyChangeListener;
-
-/**
- * Tests the update of OutputMode model object by the SchemaGeneration adapter
- * when the PersistenceUnit changes.
- */
-@SuppressWarnings("nls")
-public class SchemaGenerationAdapterTests extends PersistenceUnitTestCase
-{
-	private SchemaGeneration schemaGeneration;
-
-	public static final String DDL_GENERATION_TYPE_KEY = SchemaGeneration.ECLIPSELINK_DDL_GENERATION_TYPE;
-	public static final DdlGenerationType DDL_GENERATION_TYPE_TEST_VALUE = DdlGenerationType.drop_and_create_tables;
-	public static final DdlGenerationType DDL_GENERATION_TYPE_TEST_VALUE_2 = DdlGenerationType.none;
-
-	public static final String OUTPUT_MODE_KEY = SchemaGeneration.ECLIPSELINK_DDL_GENERATION_OUTPUT_MODE;
-	public static final OutputMode OUTPUT_MODE_TEST_VALUE = OutputMode.sql_script;
-	public static final OutputMode OUTPUT_MODE_TEST_VALUE_2 = OutputMode.database;
-
-	private static final String CREATE_FILE_NAME_KEY = SchemaGeneration.ECLIPSELINK_CREATE_FILE_NAME;
-	private static final String CREATE_FILE_NAME_TEST_VALUE = "create-file-name.test";
-	private static final String CREATE_FILE_NAME_TEST_VALUE_2 = "create-file-name-2.test";
-
-	private static final String DROP_FILE_NAME_KEY = SchemaGeneration.ECLIPSELINK_DROP_FILE_NAME;
-	private static final String DROP_FILE_NAME_TEST_VALUE = "drop-file-name.test";
-	private static final String DROP_FILE_NAME_TEST_VALUE_2 = "drop-file-name-2.test";
-
-	private static final String APPLICATION_LOCATION_KEY = SchemaGeneration.ECLIPSELINK_APPLICATION_LOCATION;
-	private static final String APPLICATION_LOCATION_TEST_VALUE = "C:/temp";
-	private static final String APPLICATION_LOCATION_TEST_VALUE_2 = "C:/tmp";
-
-	public SchemaGenerationAdapterTests(String name) {
-		super(name);
-	}
-
-	@Override
-	protected void setUp() throws Exception {
-		super.setUp();
-		this.schemaGeneration = this.subject.getSchemaGeneration();
-		
-		PropertyChangeListener propertyChangeListener = this.buildPropertyChangeListener();
-		this.schemaGeneration.addPropertyChangeListener(SchemaGeneration.OUTPUT_MODE_PROPERTY, propertyChangeListener);
-		this.schemaGeneration.addPropertyChangeListener(SchemaGeneration.DDL_GENERATION_TYPE_PROPERTY, propertyChangeListener);
-		this.schemaGeneration.addPropertyChangeListener(SchemaGeneration.CREATE_FILE_NAME_PROPERTY, propertyChangeListener);
-		this.schemaGeneration.addPropertyChangeListener(SchemaGeneration.DROP_FILE_NAME_PROPERTY, propertyChangeListener);
-		this.schemaGeneration.addPropertyChangeListener(SchemaGeneration.APPLICATION_LOCATION_PROPERTY, propertyChangeListener);
-		this.clearEvent();
-	}
-
-	/**
-	 * Initializes directly the PU properties before testing. Cannot use
-	 * Property Holder to initialize because it is not created yet
-	 */
-	@Override
-	protected void populatePu() {
-		this.propertiesTotal = 9;
-		this.modelPropertiesSizeOriginal = 5;
-		this.modelPropertiesSize = this.modelPropertiesSizeOriginal;
-		
-		this.persistenceUnitSetProperty("property.0", "value.0");
-		this.persistenceUnitSetProperty(OUTPUT_MODE_KEY, this.getEclipseLinkStringValueOf(OUTPUT_MODE_TEST_VALUE));
-		this.persistenceUnitSetProperty("property.2", "value.2");
-		this.persistenceUnitSetProperty("property.3", "value.3");
-		this.persistenceUnitSetProperty("property.4", "value.4");
-		this.persistenceUnitSetProperty(DDL_GENERATION_TYPE_KEY, this.getEclipseLinkStringValueOf(DDL_GENERATION_TYPE_TEST_VALUE));
-		this.persistenceUnitSetProperty(CREATE_FILE_NAME_KEY, CREATE_FILE_NAME_TEST_VALUE);
-		this.persistenceUnitSetProperty(DROP_FILE_NAME_KEY, DROP_FILE_NAME_TEST_VALUE);
-		this.persistenceUnitSetProperty(APPLICATION_LOCATION_KEY, APPLICATION_LOCATION_TEST_VALUE);
-		return;
-	}
-
-	// ********** CreateFileName **********
-	/**
-	 * Tests the update of CreateFileName property by the SchemaGeneration
-	 * adapter when the PU or the model changes.
-	 */
-	public void testSetCreateFileName() throws Exception {
-		this.verifyModelInitialized(
-			CREATE_FILE_NAME_KEY,
-			CREATE_FILE_NAME_TEST_VALUE);
-		this.verifySetProperty(
-			CREATE_FILE_NAME_KEY,
-			CREATE_FILE_NAME_TEST_VALUE,
-			CREATE_FILE_NAME_TEST_VALUE_2);
-	}
-
-	public void testAddRemoveCreateFileName() throws Exception {
-		this.verifyAddRemoveProperty(
-			CREATE_FILE_NAME_KEY,
-			CREATE_FILE_NAME_TEST_VALUE,
-			CREATE_FILE_NAME_TEST_VALUE_2);
-	}
-	
-	// ********** DropFileName **********
-	/**
-	 * Tests the update of DropFileName property by the SchemaGeneration adapter
-	 * when the PU or the model changes.
-	 */
-	public void testSetDropFileName() throws Exception {
-		this.verifyModelInitialized(
-			DROP_FILE_NAME_KEY,
-			DROP_FILE_NAME_TEST_VALUE);
-		this.verifySetProperty(
-			DROP_FILE_NAME_KEY,
-			DROP_FILE_NAME_TEST_VALUE,
-			DROP_FILE_NAME_TEST_VALUE_2);
-	}
-
-	public void testAddRemoveDropFileName() throws Exception {
-		this.verifyAddRemoveProperty(
-			DROP_FILE_NAME_KEY, 
-			DROP_FILE_NAME_TEST_VALUE, 
-			DROP_FILE_NAME_TEST_VALUE_2);
-	}
-
-	// ********** ApplicationLocation **********
-	/**
-	 * Tests the update of ApplicationLocation property by the SchemaGeneration
-	 * adapter when the PU or the model changes.
-	 */
-	public void testSetApplicationLocation() throws Exception {
-		this.verifyModelInitialized(
-			APPLICATION_LOCATION_KEY,
-			APPLICATION_LOCATION_TEST_VALUE);
-		this.verifySetProperty(
-			APPLICATION_LOCATION_KEY,
-			APPLICATION_LOCATION_TEST_VALUE,
-			APPLICATION_LOCATION_TEST_VALUE_2);
-	}
-
-	public void testAddRemoveApplicationLocation() throws Exception {
-		this.verifyAddRemoveProperty(
-			APPLICATION_LOCATION_KEY,
-			APPLICATION_LOCATION_TEST_VALUE,
-			APPLICATION_LOCATION_TEST_VALUE_2);
-	}
-
-	// ********** OutputMode **********
-	/**
-	 * Tests the update of OutputMode property by the SchemaGeneration adapter
-	 * when the PU or the model changes.
-	 */
-	public void testSetOutputMode() throws Exception {
-		this.verifyModelInitialized(
-			OUTPUT_MODE_KEY,
-			OUTPUT_MODE_TEST_VALUE);
-		this.verifySetProperty(
-			OUTPUT_MODE_KEY,
-			OUTPUT_MODE_TEST_VALUE,
-			OUTPUT_MODE_TEST_VALUE_2);
-	}
-
-	public void testAddRemoveOutputMode() throws Exception {
-		this.verifyAddRemoveProperty(
-			OUTPUT_MODE_KEY, 
-			OUTPUT_MODE_TEST_VALUE, 
-			OUTPUT_MODE_TEST_VALUE_2);
-	}
-
-	// ********** DdlGenerationType **********
-	/**
-	 * Tests the update of DdlGenerationType property by the SchemaGeneration
-	 * adapter when the PU or the model changes.
-	 */
-	public void testSetDdlGenerationType() throws Exception {
-		this.verifyModelInitialized(
-			DDL_GENERATION_TYPE_KEY,
-			DDL_GENERATION_TYPE_TEST_VALUE);
-		this.verifySetProperty(
-			DDL_GENERATION_TYPE_KEY,
-			DDL_GENERATION_TYPE_TEST_VALUE,
-			DDL_GENERATION_TYPE_TEST_VALUE_2);
-	}
-
-	public void testAddRemoveDdlGenerationType() throws Exception {
-		this.verifyAddRemoveProperty(
-			DDL_GENERATION_TYPE_KEY, 
-			DDL_GENERATION_TYPE_TEST_VALUE, 
-			DDL_GENERATION_TYPE_TEST_VALUE_2);
-	}
-
-	// ********** get/set property **********
-	@Override
-	protected void setProperty(String propertyName, Object newValue) throws NoSuchFieldException {
-		if (propertyName.equals(SchemaGeneration.OUTPUT_MODE_PROPERTY))
-			this.schemaGeneration.setOutputMode((OutputMode) newValue);
-		// else if( propertyName.equals( Caching.CACHE_SIZE_PROPERTY))
-		// TODO
-		else if (propertyName.equals(SchemaGeneration.DDL_GENERATION_TYPE_PROPERTY))
-			this.schemaGeneration.setDdlGenerationType((DdlGenerationType) newValue);
-		else if (propertyName.equals(SchemaGeneration.APPLICATION_LOCATION_PROPERTY))
-			this.schemaGeneration.setApplicationLocation((String) newValue);
-		else if (propertyName.equals(SchemaGeneration.CREATE_FILE_NAME_PROPERTY))
-			this.schemaGeneration.setCreateFileName((String) newValue);
-		else if (propertyName.equals(SchemaGeneration.DROP_FILE_NAME_PROPERTY))
-			this.schemaGeneration.setDropFileName((String) newValue);
-		else
-			this.throwMissingDefinition("setProperty", propertyName);
-	}
-
-	@Override
-	protected Object getProperty(String propertyName) throws NoSuchFieldException {
-		Object modelValue = null;
-		if (propertyName.equals(SchemaGeneration.OUTPUT_MODE_PROPERTY))
-			modelValue = this.schemaGeneration.getOutputMode();
-		else if (propertyName.equals(SchemaGeneration.DDL_GENERATION_TYPE_PROPERTY))
-			modelValue = this.schemaGeneration.getDdlGenerationType();
-		else if (propertyName.equals(SchemaGeneration.APPLICATION_LOCATION_PROPERTY))
-			modelValue = this.schemaGeneration.getApplicationLocation();
-		else if (propertyName.equals(SchemaGeneration.CREATE_FILE_NAME_PROPERTY))
-			modelValue = this.schemaGeneration.getCreateFileName();
-		else if (propertyName.equals(SchemaGeneration.DROP_FILE_NAME_PROPERTY))
-			modelValue = this.schemaGeneration.getDropFileName();
-		else
-			this.throwMissingDefinition("getProperty", propertyName);
-		return modelValue;
-	}
-
-	@Override
-	protected PersistenceUnitProperties getModel() {
-		return this.schemaGeneration;
-	}
-}
diff --git a/jpa/tests/org.eclipse.jpt.eclipselink.core.tests/src/org/eclipse/jpt/eclipselink/core/tests/internal/context/persistence/schema/generation/SchemaGenerationBasicAdapterTests.java b/jpa/tests/org.eclipse.jpt.eclipselink.core.tests/src/org/eclipse/jpt/eclipselink/core/tests/internal/context/persistence/schema/generation/SchemaGenerationBasicAdapterTests.java
deleted file mode 100644
index 9557750..0000000
--- a/jpa/tests/org.eclipse.jpt.eclipselink.core.tests/src/org/eclipse/jpt/eclipselink/core/tests/internal/context/persistence/schema/generation/SchemaGenerationBasicAdapterTests.java
+++ /dev/null
@@ -1,153 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008, 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.eclipselink.core.tests.internal.context.persistence.schema.generation;
-
-import java.util.ListIterator;
-import org.eclipse.jpt.core.context.persistence.PersistenceUnit;
-import org.eclipse.jpt.eclipselink.core.internal.context.persistence.EclipseLinkPersistenceUnit;
-import org.eclipse.jpt.eclipselink.core.internal.context.persistence.PersistenceUnitProperties;
-import org.eclipse.jpt.eclipselink.core.internal.context.persistence.schema.generation.DdlGenerationType;
-import org.eclipse.jpt.eclipselink.core.internal.context.persistence.schema.generation.OutputMode;
-import org.eclipse.jpt.eclipselink.core.internal.context.persistence.schema.generation.SchemaGeneration;
-import org.eclipse.jpt.eclipselink.core.tests.internal.context.persistence.PersistenceUnitTestCase;
-import org.eclipse.jpt.utility.internal.model.value.ItemPropertyListValueModelAdapter;
-import org.eclipse.jpt.utility.internal.model.value.ListAspectAdapter;
-import org.eclipse.jpt.utility.model.listener.PropertyChangeListener;
-import org.eclipse.jpt.utility.model.value.ListValueModel;
-import org.eclipse.jpt.utility.model.value.PropertyValueModel;
-
-/**
- * Tests the update of OutputMode model object by the SchemaGeneration adapter
- * when the PersistenceUnit changes.
- */
-public class SchemaGenerationBasicAdapterTests extends PersistenceUnitTestCase
-{
-	private SchemaGeneration schemaGeneration;
-
-	public static final String outputModeKey = SchemaGeneration.ECLIPSELINK_DDL_GENERATION_OUTPUT_MODE;
-	public static final String ddlGenTypeKey = SchemaGeneration.ECLIPSELINK_DDL_GENERATION_TYPE;
-
-	public static final OutputMode OUTPUT_MODE_TEST_VALUE = OutputMode.sql_script;
-	public static final OutputMode OUTPUT_MODE_TEST_VALUE_2 = OutputMode.database;
-	
-	public static final DdlGenerationType DDL_GENERATION_TYPE_TEST_VALUE = DdlGenerationType.drop_and_create_tables;
-	public static final DdlGenerationType DDL_GENERATION_TYPE_TEST_VALUE_2 = DdlGenerationType.none;
-
-	public SchemaGenerationBasicAdapterTests(String name) {
-		super(name);
-	}
-
-	@Override
-	protected void setUp() throws Exception {
-		super.setUp();
-		
-		this.schemaGeneration = this.subject.getSchemaGeneration();
-		PropertyChangeListener propertyChangeListener = this.buildPropertyChangeListener();
-		this.schemaGeneration.addPropertyChangeListener(SchemaGeneration.OUTPUT_MODE_PROPERTY, propertyChangeListener);
-		this.schemaGeneration.addPropertyChangeListener(SchemaGeneration.DDL_GENERATION_TYPE_PROPERTY, propertyChangeListener);
-		this.clearEvent();
-	}
-
-	/**
-	 * Initializes directly the PU properties before testing. Cannot use
-	 * Property Holder to initialize because it is not created yet
-	 */
-	@Override
-	protected void populatePu() {
-		this.propertiesTotal = 6;
-		this.modelPropertiesSizeOriginal = 2;
-		this.modelPropertiesSize = this.modelPropertiesSizeOriginal;
-		
-		this.persistenceUnitSetProperty("property.0", "value.0");
-		this.persistenceUnitSetProperty(outputModeKey, this.getEclipseLinkStringValueOf(OUTPUT_MODE_TEST_VALUE));
-		this.persistenceUnitSetProperty("property.2", "value.2");
-		this.persistenceUnitSetProperty("property.3", "value.3");
-		this.persistenceUnitSetProperty("property.4", "value.4");
-		this.persistenceUnitSetProperty(ddlGenTypeKey, this.getEclipseLinkStringValueOf(DDL_GENERATION_TYPE_TEST_VALUE));
-		return;
-	}
-
-	/** ****** test methods ******* */
-
-	/**
-	 * Tests the update of OutputMode property by the SchemaGeneration adapter
-	 * when the PU changes.
-	 */
-	public void testOutputModeUpdate() throws Exception {
-		ListValueModel<PersistenceUnit.Property> propertiesAdapter = this.buildPropertiesAdapter(this.subjectHolder);
-		ListValueModel<PersistenceUnit.Property> propertyListAdapter = new ItemPropertyListValueModelAdapter<PersistenceUnit.Property>(propertiesAdapter, PersistenceUnit.Property.VALUE_PROPERTY);
-		
-		this.verifyHasListeners(this.schemaGeneration, SchemaGeneration.OUTPUT_MODE_PROPERTY);
-		
-		// Basic
-		assertTrue(schemaGeneration.itemIsProperty(this.getPersistenceUnit().getProperty(outputModeKey)));
-		assertEquals(OUTPUT_MODE_TEST_VALUE, this.schemaGeneration.getOutputMode());
-		
-		// Replace
-		this.persistenceUnitSetProperty(outputModeKey, OUTPUT_MODE_TEST_VALUE_2);
-		this.verifyPutEvent(SchemaGeneration.OUTPUT_MODE_PROPERTY, OUTPUT_MODE_TEST_VALUE_2, this.schemaGeneration.getOutputMode());
-		
-		// Remove
-		this.clearEvent();
-		--this.propertiesTotal;
-		--this.modelPropertiesSize;
-		this.getPersistenceUnit().removeProperty(outputModeKey);
-		assertNull(this.getPersistenceUnit().getProperty(outputModeKey));
-		assertEquals(this.modelPropertiesSize, this.modelPropertiesSizeOriginal - 1);
-		assertNotNull(this.propertyChangedEvent);
-		assertNull(this.propertyChangedEvent.getNewValue());
-		
-		// Add original OutputMode
-		++this.propertiesTotal;
-		++this.modelPropertiesSize;
-		this.persistenceUnitSetProperty(outputModeKey, OUTPUT_MODE_TEST_VALUE);
-		this.verifyPutEvent(SchemaGeneration.OUTPUT_MODE_PROPERTY, OUTPUT_MODE_TEST_VALUE, this.schemaGeneration.getOutputMode());
-		
-		// Replace again
-		this.persistenceUnitSetProperty(outputModeKey, OUTPUT_MODE_TEST_VALUE_2);
-		this.verifyPutEvent(SchemaGeneration.OUTPUT_MODE_PROPERTY, OUTPUT_MODE_TEST_VALUE_2, this.schemaGeneration.getOutputMode());
-		
-		// Replace by setting model object
-		this.clearEvent();
-		this.schemaGeneration.setOutputMode(OUTPUT_MODE_TEST_VALUE);
-		this.verifyPutEvent(SchemaGeneration.OUTPUT_MODE_PROPERTY, OUTPUT_MODE_TEST_VALUE, this.schemaGeneration.getOutputMode());
-	}
-
-	// ****** convenience methods *******
-	@Override
-	protected PersistenceUnitProperties getModel() {
-		return this.schemaGeneration;
-	}
-
-	private ListValueModel<PersistenceUnit.Property> buildPropertiesAdapter(PropertyValueModel<EclipseLinkPersistenceUnit> subjectHolder) {
-		return new ListAspectAdapter<EclipseLinkPersistenceUnit, PersistenceUnit.Property>(subjectHolder, PersistenceUnit.PROPERTIES_LIST) {
-			@Override
-			protected ListIterator<PersistenceUnit.Property> listIterator_() {
-				return this.subject.properties();
-			}
-
-			@Override
-			protected int size_() {
-				return this.subject.propertiesSize();
-			}
-		};
-	}
-
-	// ********** get/set property **********
-	@Override
-	protected void setProperty(String propertyName, Object newValue) throws Exception {
-		throw new UnsupportedOperationException();
-	}
-
-	@Override
-	protected Object getProperty(String propertyName) throws NoSuchFieldException {
-		throw new UnsupportedOperationException();
-	}
-}
diff --git a/jpa/tests/org.eclipse.jpt.eclipselink.core.tests/src/org/eclipse/jpt/eclipselink/core/tests/internal/context/persistence/schema/generation/SchemaGenerationValueModelTests.java b/jpa/tests/org.eclipse.jpt.eclipselink.core.tests/src/org/eclipse/jpt/eclipselink/core/tests/internal/context/persistence/schema/generation/SchemaGenerationValueModelTests.java
deleted file mode 100644
index ec96d8e..0000000
--- a/jpa/tests/org.eclipse.jpt.eclipselink.core.tests/src/org/eclipse/jpt/eclipselink/core/tests/internal/context/persistence/schema/generation/SchemaGenerationValueModelTests.java
+++ /dev/null
@@ -1,232 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008, 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- *******************************************************************************/
-package org.eclipse.jpt.eclipselink.core.tests.internal.context.persistence.schema.generation;
-
-import org.eclipse.jpt.core.context.persistence.PersistenceUnit;
-import org.eclipse.jpt.eclipselink.core.internal.context.persistence.PersistenceUnitProperties;
-import org.eclipse.jpt.eclipselink.core.internal.context.persistence.schema.generation.DdlGenerationType;
-import org.eclipse.jpt.eclipselink.core.internal.context.persistence.schema.generation.OutputMode;
-import org.eclipse.jpt.eclipselink.core.internal.context.persistence.schema.generation.SchemaGeneration;
-import org.eclipse.jpt.eclipselink.core.tests.internal.context.persistence.PersistenceUnitTestCase;
-import org.eclipse.jpt.utility.internal.model.value.PropertyAspectAdapter;
-import org.eclipse.jpt.utility.internal.model.value.SimplePropertyValueModel;
-import org.eclipse.jpt.utility.model.event.PropertyChangeEvent;
-import org.eclipse.jpt.utility.model.listener.PropertyChangeListener;
-import org.eclipse.jpt.utility.model.value.PropertyValueModel;
-import org.eclipse.jpt.utility.model.value.WritablePropertyValueModel;
-
-/**
- * SchemaGenerationValueModelTests
- * 
- * Tests the PropertyValueModel of SchemaGeneration model and the update of the
- * PersistenceUnit.
- */
-public class SchemaGenerationValueModelTests extends PersistenceUnitTestCase
-{
-	private SchemaGeneration schemaGen;
-	private PropertyValueModel<SchemaGeneration> schemaGenHolder;
-
-	private WritablePropertyValueModel<DdlGenerationType> ddlGenerationTypeHolder;
-	private PropertyChangeEvent ddlGenerationTypeEvent;
-
-	private WritablePropertyValueModel<OutputMode> outputModeHolder;
-	private PropertyChangeEvent outputModeEvent;
-
-	public static final DdlGenerationType DDL_GENERATION_TYPE_TEST_VALUE = DdlGenerationType.drop_and_create_tables;
-	public static final OutputMode OUTPUT_MODE_TEST_VALUE = OutputMode.sql_script;
-
-	public SchemaGenerationValueModelTests(String name) {
-		super(name);
-	}
-
-	@Override
-	protected void setUp() throws Exception {
-		super.setUp();
-		this.schemaGen = this.subject.getSchemaGeneration(); // Subject
-		this.schemaGenHolder = new SimplePropertyValueModel<SchemaGeneration>(this.schemaGen);
-		
-		this.ddlGenerationTypeHolder = this.buildDdlGenerationTypeAA(this.schemaGenHolder);
-		PropertyChangeListener ddlGenerationTypeListener = this.buildDdlGenerationTypeChangeListener();
-		this.ddlGenerationTypeHolder.addPropertyChangeListener(PropertyValueModel.VALUE, ddlGenerationTypeListener);
-		this.ddlGenerationTypeEvent = null;
-		
-		this.outputModeHolder = this.buildOutputModeAA(this.schemaGenHolder);
-		PropertyChangeListener outputModeListener = this.buildOutputModeChangeListener();
-		this.outputModeHolder.addPropertyChangeListener(PropertyValueModel.VALUE, outputModeListener);
-		this.outputModeEvent = null;
-	}
-
-	/**
-	 * Initializes directly the PU properties before testing. Cannot use
-	 * Property Holder to initialize because it is not created yet
-	 */
-	@Override
-	protected void populatePu() {
-		this.persistenceUnitSetProperty(
-			SchemaGeneration.ECLIPSELINK_DDL_GENERATION_TYPE,
-			DDL_GENERATION_TYPE_TEST_VALUE);
-		this.persistenceUnitSetProperty(
-			SchemaGeneration.ECLIPSELINK_DDL_GENERATION_OUTPUT_MODE,
-			OUTPUT_MODE_TEST_VALUE);
-		return;
-	}
-
-	@Override
-	protected PersistenceUnitProperties getModel() {
-		return this.schemaGen;
-	}
-
-	/** ****** DdlGenerationType ******* */
-	private WritablePropertyValueModel<DdlGenerationType> buildDdlGenerationTypeAA(PropertyValueModel<SchemaGeneration> subjectHolder) {
-		return new PropertyAspectAdapter<SchemaGeneration, DdlGenerationType>(subjectHolder, SchemaGeneration.DDL_GENERATION_TYPE_PROPERTY) {
-			@Override
-			protected DdlGenerationType buildValue_() {
-				return this.subject.getDdlGenerationType();
-			}
-
-			@Override
-			protected void setValue_(DdlGenerationType enumValue) {
-				this.subject.setDdlGenerationType(enumValue);
-			}
-		};
-	}
-
-	private PropertyChangeListener buildDdlGenerationTypeChangeListener() {
-		return new PropertyChangeListener() {
-			public void propertyChanged(PropertyChangeEvent e) {
-				SchemaGenerationValueModelTests.this.ddlGenerationTypeEvent = e;
-			}
-		};
-	}
-
-	/** ****** OutputMode ******* */
-	private WritablePropertyValueModel<OutputMode> buildOutputModeAA(PropertyValueModel<SchemaGeneration> subjectHolder) {
-		return new PropertyAspectAdapter<SchemaGeneration, OutputMode>(subjectHolder, SchemaGeneration.OUTPUT_MODE_PROPERTY) {
-			@Override
-			protected OutputMode buildValue_() {
-				return this.subject.getOutputMode();
-			}
-
-			@Override
-			protected void setValue_(OutputMode enumValue) {
-				this.subject.setOutputMode(enumValue);
-			}
-		};
-	}
-
-	private PropertyChangeListener buildOutputModeChangeListener() {
-		return new PropertyChangeListener() {
-			public void propertyChanged(PropertyChangeEvent e) {
-				SchemaGenerationValueModelTests.this.outputModeEvent = e;
-			}
-		};
-	}
-
-	public void testValue() {
-		/** ****** DdlGenerationType ******* */
-		this.verifyDdlGenerationTypeAAValue(DDL_GENERATION_TYPE_TEST_VALUE);
-		assertEquals(
-			SchemaGeneration.DEFAULT_SCHEMA_GENERATION_DDL_GENERATION_TYPE,
-			this.schemaGen.getDefaultDdlGenerationType());
-		/** ****** OutputMode ******* */
-		this.verifyOutputModeAAValue(OUTPUT_MODE_TEST_VALUE);
-		assertEquals(
-			SchemaGeneration.DEFAULT_SCHEMA_GENERATION_OUTPUT_MODE,
-			this.schemaGen.getDefaultOutputMode());
-	}
-
-	public void testSetValue() throws Exception {
-		/** ****** DdlGenerationType ******* */
-		this.ddlGenerationTypeEvent = null;
-		this.verifyHasListeners(this.ddlGenerationTypeHolder, PropertyValueModel.VALUE);
-		DdlGenerationType newDdlGenerationType = DdlGenerationType.create_tables;
-		// Modify the persistenceUnit directly
-		this.subject.setProperty(
-			SchemaGeneration.ECLIPSELINK_DDL_GENERATION_TYPE,
-			this.getEclipseLinkStringValueOf(newDdlGenerationType),
-			false);
-		this.verifyDdlGenerationTypeAAValue(newDdlGenerationType);
-		assertNotNull(this.ddlGenerationTypeEvent);
-		
-		/** ****** OutputMode ******* */
-		this.outputModeEvent = null;
-		this.verifyHasListeners(this.outputModeHolder, PropertyValueModel.VALUE);
-		OutputMode newOutputMode = OutputMode.database;
-		// Modify the property holder
-		this.outputModeHolder.setValue(newOutputMode);
-		this.verifyOutputModeAAValue(newOutputMode);
-		assertNotNull(this.outputModeEvent);
-	}
-
-	public void testSetNullValue() {
-		/** ****** DdlGenerationType ******* */
-		this.ddlGenerationTypeEvent = null;
-		// Setting the persistenceUnit directly
-		this.subject.setProperty(SchemaGeneration.ECLIPSELINK_DDL_GENERATION_TYPE, null, false);
-		this.ddlGenerationTypeHolder.setValue(null);
-		// testing Holder
-		this.verifyDdlGenerationTypeAAValue(null);
-		assertNotNull(this.ddlGenerationTypeEvent);
-		// testing PU properties
-		PersistenceUnit.Property property = this.getPersistenceUnit().getProperty(SchemaGeneration.ECLIPSELINK_DDL_GENERATION_TYPE);
-		assertNull(property);
-		
-		/** ****** OutputMode ******* */
-		this.outputModeEvent = null;
-		// Setting the property holder
-		this.outputModeHolder.setValue(null);
-		// testing Holder
-		this.verifyOutputModeAAValue(null);
-		assertNotNull(this.outputModeEvent);
-		// testing PU properties
-		property = this.getPersistenceUnit().getProperty(SchemaGeneration.ECLIPSELINK_DDL_GENERATION_OUTPUT_MODE);
-		assertNull(property);
-	}
-
-	/** ****** convenience methods ******* */
-	/**
-	 * Performs three value tests:<br>
-	 * 1. subject value<br>
-	 * 2. aspect adapter value<br>
-	 * 3. persistenceUnit property value<br>
-	 */
-	protected void verifyDdlGenerationTypeAAValue(DdlGenerationType testValue) {
-		this.verifyAAValue(
-			testValue,
-			this.schemaGen.getDdlGenerationType(),
-			this.ddlGenerationTypeHolder,
-			SchemaGeneration.ECLIPSELINK_DDL_GENERATION_TYPE);
-	}
-
-	/**
-	 * Performs three value tests:<br>
-	 * 1. subject value<br>
-	 * 2. aspect adapter value<br>
-	 * 3. persistenceUnit property value<br>
-	 */
-	protected void verifyOutputModeAAValue(OutputMode testValue) {
-		this.verifyAAValue(
-			testValue,
-			this.schemaGen.getOutputMode(),
-			this.outputModeHolder,
-			SchemaGeneration.ECLIPSELINK_DDL_GENERATION_OUTPUT_MODE);
-	}
-
-	// ********** get/set property **********
-	@Override
-	protected void setProperty(String propertyName, Object newValue) throws Exception {
-		throw new UnsupportedOperationException();
-	}
-
-	@Override
-	protected Object getProperty(String propertyName) throws NoSuchFieldException {
-		throw new UnsupportedOperationException();
-	}
-}
diff --git a/jpa/tests/org.eclipse.jpt.eclipselink.core.tests/src/org/eclipse/jpt/eclipselink/core/tests/internal/resource/JptEclipselinkCoreResourceModelTests.java b/jpa/tests/org.eclipse.jpt.eclipselink.core.tests/src/org/eclipse/jpt/eclipselink/core/tests/internal/resource/JptEclipselinkCoreResourceModelTests.java
deleted file mode 100644
index 9003ccf..0000000
--- a/jpa/tests/org.eclipse.jpt.eclipselink.core.tests/src/org/eclipse/jpt/eclipselink/core/tests/internal/resource/JptEclipselinkCoreResourceModelTests.java
+++ /dev/null
@@ -1,34 +0,0 @@
-/*******************************************************************************
- *  Copyright (c) 2007, 2009 Oracle. 
- *  All rights reserved.  This program and the accompanying materials 
- *  are made available under the terms of the Eclipse Public License v1.0 
- *  which accompanies this distribution, and is available at 
- *  http://www.eclipse.org/legal/epl-v10.html
- *  
- *  Contributors: 
- *  	Oracle - initial API and implementation
- *******************************************************************************/
-package org.eclipse.jpt.eclipselink.core.tests.internal.resource;
-
-import junit.framework.Test;
-import junit.framework.TestCase;
-import junit.framework.TestSuite;
-import org.eclipse.jpt.eclipselink.core.tests.internal.resource.java.JptEclipseLinkCoreJavaResourceModelTests;
-
-public class JptEclipselinkCoreResourceModelTests extends TestCase
-{
-	public static Test suite() {
-		return suite(true);
-	}
-	
-	public static Test suite(boolean all) {
-		TestSuite suite = new TestSuite(JptEclipselinkCoreResourceModelTests.class.getName());
-		suite.addTest(JptEclipseLinkCoreJavaResourceModelTests.suite(all));
-		return suite;
-	}
-
-	private JptEclipselinkCoreResourceModelTests() {
-		super();
-		throw new UnsupportedOperationException();
-	}
-}
diff --git a/jpa/tests/org.eclipse.jpt.eclipselink.core.tests/src/org/eclipse/jpt/eclipselink/core/tests/internal/resource/java/AccessAnnotationTests.java b/jpa/tests/org.eclipse.jpt.eclipselink.core.tests/src/org/eclipse/jpt/eclipselink/core/tests/internal/resource/java/AccessAnnotationTests.java
deleted file mode 100644
index 66679de..0000000
--- a/jpa/tests/org.eclipse.jpt.eclipselink.core.tests/src/org/eclipse/jpt/eclipselink/core/tests/internal/resource/java/AccessAnnotationTests.java
+++ /dev/null
@@ -1,178 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.eclipselink.core.tests.internal.resource.java;
-
-import java.util.Iterator;
-import org.eclipse.jdt.core.ICompilationUnit;
-import org.eclipse.jpt.core.resource.java.AccessAnnotation;
-import org.eclipse.jpt.core.resource.java.AccessType;
-import org.eclipse.jpt.core.resource.java.JPA;
-import org.eclipse.jpt.core.resource.java.JavaResourcePersistentAttribute;
-import org.eclipse.jpt.core.resource.java.JavaResourcePersistentType;
-import org.eclipse.jpt.utility.internal.iterators.ArrayIterator;
-
-@SuppressWarnings("nls")
-public class AccessAnnotationTests extends EclipseLink1_1JavaResourceModelTestCase {
-	
-	public AccessAnnotationTests(String name) {
-		super(name);
-	}
-
-	private ICompilationUnit createTestAccessOnType() throws Exception {
-		return this.createTestType(new DefaultAnnotationWriter() {
-			@Override
-			public Iterator<String> imports() {
-				return new ArrayIterator<String>(JPA.ACCESS, JPA.ACCESS_TYPE);
-			}
-			
-			@Override
-			public void appendTypeAnnotationTo(StringBuilder sb) {
-				sb.append("@Access(AccessType.PROPERTY)");
-			}
-		});
-	}
-
-	private ICompilationUnit createTestAccessOnField() throws Exception {
-		return this.createTestType(new DefaultAnnotationWriter() {
-			@Override
-			public Iterator<String> imports() {
-				return new ArrayIterator<String>(JPA.ACCESS, JPA.ACCESS_TYPE);
-			}
-		
-			@Override
-			public void appendIdFieldAnnotationTo(StringBuilder sb) {
-				sb.append("@Access(AccessType.FIELD)");
-			}
-		});
-	}
-
-	private ICompilationUnit createTestAccessOnProperty() throws Exception {
-		return this.createTestType(new DefaultAnnotationWriter() {
-			@Override
-			public Iterator<String> imports() {
-				return new ArrayIterator<String>(JPA.ACCESS, JPA.ACCESS_TYPE);
-			}
-			
-			@Override
-			public void appendGetIdMethodAnnotationTo(StringBuilder sb) {
-				sb.append("@Access(AccessType.PROPERTY)");
-			}
-		});
-	}
-
-	public void testGetAccessOnType() throws Exception {
-		ICompilationUnit cu = this.createTestAccessOnType();
-		JavaResourcePersistentType typeResource = buildJavaTypeResource(cu); 
-		
-		AccessAnnotation access = (AccessAnnotation) typeResource.getSupportingAnnotation(JPA.ACCESS);
-		assertNotNull(access);
-		assertEquals(AccessType.PROPERTY, access.getValue());
-	}
-
-	public void testSetAccessOnType() throws Exception {
-		ICompilationUnit cu = this.createTestType();
-		JavaResourcePersistentType typeResource = buildJavaTypeResource(cu);
-		
-		AccessAnnotation access = (AccessAnnotation) typeResource.getSupportingAnnotation(JPA.ACCESS);
-		assertNull(access);
-		
-		typeResource.addSupportingAnnotation(JPA.ACCESS);
-		assertSourceContains("@Access", cu);
-
-		access = (AccessAnnotation) typeResource.getSupportingAnnotation(JPA.ACCESS);
-		assertNotNull(access);
-		
-		access.setValue(AccessType.FIELD);
-		assertEquals(AccessType.FIELD, access.getValue());		
-		assertSourceContains("@Access(FIELD)", cu);
-		
-		access.setValue(AccessType.PROPERTY);
-		assertEquals(AccessType.PROPERTY, access.getValue());
-		assertSourceContains("@Access(PROPERTY)", cu);
-		
-		access.setValue(null);
-		assertNull(typeResource.getSupportingAnnotation(JPA.ACCESS));
-		assertSourceDoesNotContain("@Access", cu);
-	}
-	
-	public void testGetAccessOnField() throws Exception {
-		ICompilationUnit cu = this.createTestAccessOnField();
-		JavaResourcePersistentType typeResource = buildJavaTypeResource(cu); 
-		JavaResourcePersistentAttribute attributeResource = typeResource.persistableFields().next();
-		
-		AccessAnnotation access = (AccessAnnotation) attributeResource.getSupportingAnnotation(JPA.ACCESS);
-		assertNotNull(access);
-		assertEquals(AccessType.FIELD, access.getValue());
-	}
-
-	public void testSetAccessOnField() throws Exception {
-		ICompilationUnit cu = this.createTestType();
-		JavaResourcePersistentType typeResource = buildJavaTypeResource(cu);
-		JavaResourcePersistentAttribute attributeResource = typeResource.persistableFields().next();
-		
-		AccessAnnotation access = (AccessAnnotation) attributeResource.getSupportingAnnotation(JPA.ACCESS);
-		assertNull(access);
-		
-		attributeResource.addSupportingAnnotation(JPA.ACCESS);
-		assertSourceContains("@Access", cu);
-
-		access = (AccessAnnotation) attributeResource.getSupportingAnnotation(JPA.ACCESS);
-		assertNotNull(access);
-		
-		access.setValue(AccessType.FIELD);
-		assertEquals(AccessType.FIELD, access.getValue());		
-		assertSourceContains("@Access(FIELD)", cu);
-		
-		access.setValue(AccessType.PROPERTY);
-		assertEquals(AccessType.PROPERTY, access.getValue());
-		assertSourceContains("@Access(PROPERTY)", cu);
-		
-		access.setValue(null);
-		assertNull(attributeResource.getSupportingAnnotation(JPA.ACCESS));
-		assertSourceDoesNotContain("@Access", cu);
-	}
-	
-	public void testGetAccessOnProperty() throws Exception {
-		ICompilationUnit cu = this.createTestAccessOnProperty();
-		JavaResourcePersistentType typeResource = buildJavaTypeResource(cu); 
-		JavaResourcePersistentAttribute attributeResource = typeResource.persistableProperties().next();
-		
-		AccessAnnotation access = (AccessAnnotation) attributeResource.getSupportingAnnotation(JPA.ACCESS);
-		assertNotNull(access);
-		assertEquals(AccessType.PROPERTY, access.getValue());
-	}
-
-	public void testSetAccessOnProperty() throws Exception {
-		ICompilationUnit cu = this.createTestType();
-		JavaResourcePersistentType typeResource = buildJavaTypeResource(cu);
-		JavaResourcePersistentAttribute attributeResource = typeResource.persistableProperties().next();
-		
-		AccessAnnotation access = (AccessAnnotation) attributeResource.getSupportingAnnotation(JPA.ACCESS);
-		assertNull(access);
-		
-		attributeResource.addSupportingAnnotation(JPA.ACCESS);
-		assertSourceContains("@Access", cu);
-
-		access = (AccessAnnotation) attributeResource.getSupportingAnnotation(JPA.ACCESS);
-		assertNotNull(access);
-		
-		access.setValue(AccessType.FIELD);
-		assertEquals(AccessType.FIELD, access.getValue());		
-		assertSourceContains("@Access(FIELD)", cu);
-		
-		access.setValue(AccessType.PROPERTY);
-		assertEquals(AccessType.PROPERTY, access.getValue());
-		assertSourceContains("@Access(PROPERTY)", cu);
-		
-		access.setValue(null);
-		assertNull(attributeResource.getSupportingAnnotation(JPA.ACCESS));
-		assertSourceDoesNotContain("@Access", cu);
-	}
-}
diff --git a/jpa/tests/org.eclipse.jpt.eclipselink.core.tests/src/org/eclipse/jpt/eclipselink/core/tests/internal/resource/java/CacheTests.java b/jpa/tests/org.eclipse.jpt.eclipselink.core.tests/src/org/eclipse/jpt/eclipselink/core/tests/internal/resource/java/CacheTests.java
deleted file mode 100644
index c657a0d..0000000
--- a/jpa/tests/org.eclipse.jpt.eclipselink.core.tests/src/org/eclipse/jpt/eclipselink/core/tests/internal/resource/java/CacheTests.java
+++ /dev/null
@@ -1,447 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.eclipselink.core.tests.internal.resource.java;
-
-import java.util.Iterator;
-import org.eclipse.jdt.core.ICompilationUnit;
-import org.eclipse.jpt.core.resource.java.JavaResourcePersistentType;
-import org.eclipse.jpt.eclipselink.core.resource.java.CacheAnnotation;
-import org.eclipse.jpt.eclipselink.core.resource.java.CacheCoordinationType;
-import org.eclipse.jpt.eclipselink.core.resource.java.CacheType;
-import org.eclipse.jpt.eclipselink.core.resource.java.EclipseLinkJPA;
-import org.eclipse.jpt.eclipselink.core.resource.java.TimeOfDayAnnotation;
-import org.eclipse.jpt.utility.internal.iterators.ArrayIterator;
-
-@SuppressWarnings("nls")
-public class CacheTests extends EclipseLinkJavaResourceModelTestCase {
-
-	public CacheTests(String name) {
-		super(name);
-	}
-	
-	private ICompilationUnit createTestCache() throws Exception {
-		return this.createTestType(new DefaultAnnotationWriter() {
-			@Override
-			public Iterator<String> imports() {
-				return new ArrayIterator<String>(EclipseLinkJPA.CACHE, EclipseLinkJPA.CACHE_TYPE);
-			}
-			@Override
-			public void appendTypeAnnotationTo(StringBuilder sb) {
-				sb.append("@Cache");
-			}
-		});
-	}
-	
-	private ICompilationUnit createTestCacheWithCacheType() throws Exception {
-		return this.createTestType(new DefaultAnnotationWriter() {
-			@Override
-			public Iterator<String> imports() {
-				return new ArrayIterator<String>(EclipseLinkJPA.CACHE, EclipseLinkJPA.CACHE_TYPE);
-			}
-			@Override
-			public void appendTypeAnnotationTo(StringBuilder sb) {
-				sb.append("@Cache(type = CacheType.SOFT)");
-			}
-		});
-	}
-	
-	private ICompilationUnit createTestCacheWithSize() throws Exception {
-		return this.createTestType(new DefaultAnnotationWriter() {
-			@Override
-			public Iterator<String> imports() {
-				return new ArrayIterator<String>(EclipseLinkJPA.CACHE);
-			}
-			@Override
-			public void appendTypeAnnotationTo(StringBuilder sb) {
-				sb.append("@Cache(size = 50)");
-			}
-		});
-	}
-	
-	private ICompilationUnit createTestCacheWithExpiry() throws Exception {
-		return this.createTestType(new DefaultAnnotationWriter() {
-			@Override
-			public Iterator<String> imports() {
-				return new ArrayIterator<String>(EclipseLinkJPA.CACHE);
-			}
-			@Override
-			public void appendTypeAnnotationTo(StringBuilder sb) {
-				sb.append("@Cache(expiry = 50)");
-			}
-		});
-	}
-	
-	private ICompilationUnit createTestCacheWithExpiryTimeOfDay() throws Exception {
-		return this.createTestType(new DefaultAnnotationWriter() {
-			@Override
-			public Iterator<String> imports() {
-				return new ArrayIterator<String>(EclipseLinkJPA.CACHE, EclipseLinkJPA.TIME_OF_DAY);
-			}
-			@Override
-			public void appendTypeAnnotationTo(StringBuilder sb) {
-				sb.append("@Cache(expiryTimeOfDay = @TimeOfDay)");
-			}
-		});
-	}
-
-	private ICompilationUnit createTestCacheWithShared() throws Exception {
-		return this.createTestType(new DefaultAnnotationWriter() {
-			@Override
-			public Iterator<String> imports() {
-				return new ArrayIterator<String>(EclipseLinkJPA.CACHE);
-			}
-			@Override
-			public void appendTypeAnnotationTo(StringBuilder sb) {
-				sb.append("@Cache(shared=true)");
-			}
-		});
-	}
-
-	private ICompilationUnit createTestCacheWithAlwaysRefresh() throws Exception {
-		return this.createTestType(new DefaultAnnotationWriter() {
-			@Override
-			public Iterator<String> imports() {
-				return new ArrayIterator<String>(EclipseLinkJPA.CACHE);
-			}
-			@Override
-			public void appendTypeAnnotationTo(StringBuilder sb) {
-				sb.append("@Cache(alwaysRefresh=true)");
-			}
-		});
-	}
-	
-	private ICompilationUnit createTestCacheWithRefreshOnlyIfNewer() throws Exception {
-		return this.createTestType(new DefaultAnnotationWriter() {
-			@Override
-			public Iterator<String> imports() {
-				return new ArrayIterator<String>(EclipseLinkJPA.CACHE);
-			}
-			@Override
-			public void appendTypeAnnotationTo(StringBuilder sb) {
-				sb.append("@Cache(refreshOnlyIfNewer=true)");
-			}
-		});
-	}
-	
-	private ICompilationUnit createTestCacheWithDisableHits() throws Exception {
-		return this.createTestType(new DefaultAnnotationWriter() {
-			@Override
-			public Iterator<String> imports() {
-				return new ArrayIterator<String>(EclipseLinkJPA.CACHE);
-			}
-			@Override
-			public void appendTypeAnnotationTo(StringBuilder sb) {
-				sb.append("@Cache(disableHits=true)");
-			}
-		});
-	}
-	
-	private ICompilationUnit createTestExistenceCheckingWithCoordinationType() throws Exception {
-		return this.createTestType(new DefaultAnnotationWriter() {
-			@Override
-			public Iterator<String> imports() {
-				return new ArrayIterator<String>(EclipseLinkJPA.CACHE, EclipseLinkJPA.CACHE_COORDINATION_TYPE);
-			}
-			@Override
-			public void appendTypeAnnotationTo(StringBuilder sb) {
-				sb.append("@Cache(coordinationType = CacheCoordinationType.INVALIDATE_CHANGED_OBJECTS)");
-			}
-		});
-	}
-	
-	public void testCache() throws Exception {
-		ICompilationUnit cu = this.createTestCache();
-		JavaResourcePersistentType typeResource = buildJavaTypeResource(cu); 
-		
-		CacheAnnotation cache = (CacheAnnotation) typeResource.getSupportingAnnotation(EclipseLinkJPA.CACHE);
-		assertNotNull(cache);
-	}
-
-	public void testGetType() throws Exception {
-		ICompilationUnit cu = this.createTestCacheWithCacheType();
-		JavaResourcePersistentType typeResource = buildJavaTypeResource(cu);
-		
-		CacheAnnotation cache = (CacheAnnotation) typeResource.getSupportingAnnotation(EclipseLinkJPA.CACHE);
-		assertEquals(CacheType.SOFT, cache.getType());
-	}
-
-	public void testSetType() throws Exception {
-		ICompilationUnit cu = this.createTestCacheWithCacheType();
-		JavaResourcePersistentType typeResource = buildJavaTypeResource(cu);
-		
-		CacheAnnotation cache = (CacheAnnotation) typeResource.getSupportingAnnotation(EclipseLinkJPA.CACHE);
-		assertEquals(CacheType.SOFT, cache.getType());
-		
-		cache.setType(CacheType.WEAK);
-		assertEquals(CacheType.WEAK, cache.getType());
-		
-		assertSourceContains("@Cache(type = WEAK)", cu);
-		
-		cache.setType(null);
-		assertNull(cache.getType());
-		
-		assertSourceDoesNotContain("(type = WEAK)", cu);
-		assertSourceDoesNotContain("@Cache", cu);
-	}
-	
-	public void testGetSize() throws Exception {
-		ICompilationUnit cu = this.createTestCacheWithSize();
-		JavaResourcePersistentType typeResource = buildJavaTypeResource(cu);
-		
-		CacheAnnotation cache = (CacheAnnotation) typeResource.getSupportingAnnotation(EclipseLinkJPA.CACHE);
-		assertEquals(Integer.valueOf(50), cache.getSize());
-	}
-
-	public void testSetSize() throws Exception {
-		ICompilationUnit cu = this.createTestCacheWithSize();
-		JavaResourcePersistentType typeResource = buildJavaTypeResource(cu);
-		
-		CacheAnnotation cache = (CacheAnnotation) typeResource.getSupportingAnnotation(EclipseLinkJPA.CACHE);
-		assertEquals(Integer.valueOf(50), cache.getSize());
-		
-		cache.setSize(Integer.valueOf(80));
-		assertEquals(Integer.valueOf(80), cache.getSize());
-		
-		assertSourceContains("@Cache(size = 80)", cu);
-		
-		cache.setSize(null);
-		assertNull(cache.getSize());
-		
-		assertSourceDoesNotContain("(size = 80)", cu);
-		assertSourceDoesNotContain("@Cache", cu);
-	}
-	
-	public void testGetShared() throws Exception {
-		ICompilationUnit cu = this.createTestCacheWithShared();
-		JavaResourcePersistentType typeResource = buildJavaTypeResource(cu);
-		
-		CacheAnnotation cache = (CacheAnnotation) typeResource.getSupportingAnnotation(EclipseLinkJPA.CACHE);
-		assertEquals(Boolean.TRUE, cache.getShared());
-	}
-
-	public void testSetShared() throws Exception {
-		ICompilationUnit cu = this.createTestCacheWithShared();
-		JavaResourcePersistentType typeResource = buildJavaTypeResource(cu);
-		
-		CacheAnnotation cache = (CacheAnnotation) typeResource.getSupportingAnnotation(EclipseLinkJPA.CACHE);
-		assertEquals(Boolean.TRUE, cache.getShared());
-		
-		cache.setShared(Boolean.FALSE);
-		assertEquals(Boolean.FALSE, cache.getShared());
-		
-		assertSourceContains("@Cache(shared=false)", cu);
-	}
-	
-	public void testSetSharedNull() throws Exception {
-		ICompilationUnit cu = this.createTestCacheWithShared();
-		JavaResourcePersistentType typeResource = buildJavaTypeResource(cu);
-		
-		CacheAnnotation cache = (CacheAnnotation) typeResource.getSupportingAnnotation(EclipseLinkJPA.CACHE);
-		assertEquals(Boolean.TRUE, cache.getShared());
-		
-		cache.setShared(null);
-		assertNull(typeResource.getSupportingAnnotation(EclipseLinkJPA.CACHE));
-		
-		assertSourceDoesNotContain("@Cache", cu);
-	}
-	
-	public void testGetExpiry() throws Exception {
-		ICompilationUnit cu = this.createTestCacheWithExpiry();
-		JavaResourcePersistentType typeResource = buildJavaTypeResource(cu);
-		
-		CacheAnnotation cache = (CacheAnnotation) typeResource.getSupportingAnnotation(EclipseLinkJPA.CACHE);
-		assertEquals(Integer.valueOf(50), cache.getExpiry());
-	}
-
-	public void testSetExpiry() throws Exception {
-		ICompilationUnit cu = this.createTestCacheWithExpiry();
-		JavaResourcePersistentType typeResource = buildJavaTypeResource(cu);
-		
-		CacheAnnotation cache = (CacheAnnotation) typeResource.getSupportingAnnotation(EclipseLinkJPA.CACHE);
-		assertEquals(Integer.valueOf(50), cache.getExpiry());
-		
-		cache.setExpiry(Integer.valueOf(80));
-		assertEquals(Integer.valueOf(80), cache.getExpiry());
-		
-		assertSourceContains("@Cache(expiry = 80)", cu);
-		
-		cache.setExpiry(null);
-		assertNull(cache.getExpiry());
-		
-		assertSourceDoesNotContain("(expiry = 80)", cu);
-		assertSourceDoesNotContain("@Cache", cu);
-	}
-	
-	public void testGetExpiryTimeOfDay() throws Exception {
-		ICompilationUnit cu = this.createTestCacheWithExpiryTimeOfDay();
-		JavaResourcePersistentType typeResource = buildJavaTypeResource(cu);
-		
-		CacheAnnotation cache = (CacheAnnotation) typeResource.getSupportingAnnotation(EclipseLinkJPA.CACHE);
-		TimeOfDayAnnotation timeOfDay = cache.getExpiryTimeOfDay();
-		assertNotNull(timeOfDay);
-	}
-
-	public void testAddExpiryTimeOfDay() throws Exception {
-		ICompilationUnit cu = this.createTestCache();
-		JavaResourcePersistentType typeResource = buildJavaTypeResource(cu);
-		
-		CacheAnnotation cache = (CacheAnnotation) typeResource.getSupportingAnnotation(EclipseLinkJPA.CACHE);
-		cache.addExpiryTimeOfDay();
-		
-		assertNotNull(cache.getExpiryTimeOfDay());
-		
-		assertSourceContains("@Cache(expiryTimeOfDay = @TimeOfDay)", cu);
-	}
-	
-	public void testRemoveExpiryTimeOfDay() throws Exception {
-		ICompilationUnit cu = this.createTestCacheWithExpiryTimeOfDay();
-		JavaResourcePersistentType typeResource = buildJavaTypeResource(cu);
-		
-		CacheAnnotation cache = (CacheAnnotation) typeResource.getSupportingAnnotation(EclipseLinkJPA.CACHE);
-		
-		assertNotNull(cache.getExpiryTimeOfDay());
-
-		cache.removeExpiryTimeOfDay();
-		assertNull(cache.getExpiryTimeOfDay());
-		assertSourceDoesNotContain("@Cache(expiryTimeOfDay = @TimeOfDay)", cu);
-	}
-	
-	public void testGetAlwaysRefresh() throws Exception {
-		ICompilationUnit cu = this.createTestCacheWithAlwaysRefresh();
-		JavaResourcePersistentType typeResource = buildJavaTypeResource(cu);
-		
-		CacheAnnotation cache = (CacheAnnotation) typeResource.getSupportingAnnotation(EclipseLinkJPA.CACHE);
-		assertEquals(Boolean.TRUE, cache.getAlwaysRefresh());
-	}
-	
-	public void testSetAlwaysRefresh() throws Exception {
-		ICompilationUnit cu = this.createTestCacheWithAlwaysRefresh();
-		JavaResourcePersistentType typeResource = buildJavaTypeResource(cu);
-		
-		CacheAnnotation cache = (CacheAnnotation) typeResource.getSupportingAnnotation(EclipseLinkJPA.CACHE);
-		assertEquals(Boolean.TRUE, cache.getAlwaysRefresh());
-		
-		cache.setAlwaysRefresh(Boolean.FALSE);
-		assertEquals(Boolean.FALSE, cache.getAlwaysRefresh());
-		
-		assertSourceContains("@Cache(alwaysRefresh=false)", cu);		
-	}
-	
-	public void testSetAlwaysRefreshNull() throws Exception {
-		ICompilationUnit cu = this.createTestCacheWithAlwaysRefresh();
-		JavaResourcePersistentType typeResource = buildJavaTypeResource(cu);
-		
-		CacheAnnotation cache = (CacheAnnotation) typeResource.getSupportingAnnotation(EclipseLinkJPA.CACHE);
-		assertEquals(Boolean.TRUE, cache.getAlwaysRefresh());
-		
-		cache.setAlwaysRefresh(null);
-		assertNull(typeResource.getSupportingAnnotation(EclipseLinkJPA.CACHE));
-		
-		assertSourceDoesNotContain("@Cache", cu);
-	}
-
-	public void testGetRefreshOnlyIfNewer() throws Exception {
-		ICompilationUnit cu = this.createTestCacheWithRefreshOnlyIfNewer();
-		JavaResourcePersistentType typeResource = buildJavaTypeResource(cu);
-		
-		CacheAnnotation cache = (CacheAnnotation) typeResource.getSupportingAnnotation(EclipseLinkJPA.CACHE);
-		assertEquals(Boolean.TRUE, cache.getRefreshOnlyIfNewer());		
-	}
-	
-	public void testSetRefreshOnlyIfNewer() throws Exception {
-		ICompilationUnit cu = this.createTestCacheWithRefreshOnlyIfNewer();
-		JavaResourcePersistentType typeResource = buildJavaTypeResource(cu);
-		
-		CacheAnnotation cache = (CacheAnnotation) typeResource.getSupportingAnnotation(EclipseLinkJPA.CACHE);
-		assertEquals(Boolean.TRUE, cache.getRefreshOnlyIfNewer());
-		
-		cache.setRefreshOnlyIfNewer(Boolean.FALSE);
-		assertEquals(Boolean.FALSE, cache.getRefreshOnlyIfNewer());
-		
-		assertSourceContains("@Cache(refreshOnlyIfNewer=false)", cu);			
-	}
-	
-	public void testSetRefreshOnlyIfNewerNull() throws Exception {
-		ICompilationUnit cu = this.createTestCacheWithRefreshOnlyIfNewer();
-		JavaResourcePersistentType typeResource = buildJavaTypeResource(cu);
-		
-		CacheAnnotation cache = (CacheAnnotation) typeResource.getSupportingAnnotation(EclipseLinkJPA.CACHE);
-		assertEquals(Boolean.TRUE, cache.getRefreshOnlyIfNewer());
-		
-		cache.setRefreshOnlyIfNewer(null);
-		assertNull(typeResource.getSupportingAnnotation(EclipseLinkJPA.CACHE));
-		
-		assertSourceDoesNotContain("@Cache", cu);
-	}
-
-	public void testGetDisableHits() throws Exception {
-		ICompilationUnit cu = this.createTestCacheWithDisableHits();
-		JavaResourcePersistentType typeResource = buildJavaTypeResource(cu);
-		
-		CacheAnnotation cache = (CacheAnnotation) typeResource.getSupportingAnnotation(EclipseLinkJPA.CACHE);
-		assertEquals(Boolean.TRUE, cache.getDisableHits());				
-	}
-	
-	public void testSetDisableHits() throws Exception {
-		ICompilationUnit cu = this.createTestCacheWithDisableHits();
-		JavaResourcePersistentType typeResource = buildJavaTypeResource(cu);
-		
-		CacheAnnotation cache = (CacheAnnotation) typeResource.getSupportingAnnotation(EclipseLinkJPA.CACHE);
-		assertEquals(Boolean.TRUE, cache.getDisableHits());
-		
-		cache.setDisableHits(Boolean.FALSE);
-		assertEquals(Boolean.FALSE, cache.getDisableHits());
-		
-		assertSourceContains("@Cache(disableHits=false)", cu);			
-	}
-	
-	public void testSetDisableHitsNull() throws Exception {
-		ICompilationUnit cu = this.createTestCacheWithDisableHits();
-		JavaResourcePersistentType typeResource = buildJavaTypeResource(cu);
-		
-		CacheAnnotation cache = (CacheAnnotation) typeResource.getSupportingAnnotation(EclipseLinkJPA.CACHE);
-		assertEquals(Boolean.TRUE, cache.getDisableHits());
-		
-		cache.setDisableHits(null);
-		assertNull(typeResource.getSupportingAnnotation(EclipseLinkJPA.CACHE));
-		
-		assertSourceDoesNotContain("@Cache", cu);
-	}
-
-	
-	public void testGetCoordinationType() throws Exception {
-		ICompilationUnit cu = this.createTestExistenceCheckingWithCoordinationType();
-		JavaResourcePersistentType typeResource = buildJavaTypeResource(cu);
-		
-		CacheAnnotation cache = (CacheAnnotation) typeResource.getSupportingAnnotation(EclipseLinkJPA.CACHE);
-		assertEquals(CacheCoordinationType.INVALIDATE_CHANGED_OBJECTS, cache.getCoordinationType());
-	}
-
-	public void testSetCoordinationType() throws Exception {
-		ICompilationUnit cu = this.createTestExistenceCheckingWithCoordinationType();
-		JavaResourcePersistentType typeResource = buildJavaTypeResource(cu);
-		
-		CacheAnnotation cache = (CacheAnnotation) typeResource.getSupportingAnnotation(EclipseLinkJPA.CACHE);
-		assertEquals(CacheCoordinationType.INVALIDATE_CHANGED_OBJECTS, cache.getCoordinationType());
-		
-		cache.setCoordinationType(CacheCoordinationType.SEND_NEW_OBJECTS_WITH_CHANGES);
-		assertEquals(CacheCoordinationType.SEND_NEW_OBJECTS_WITH_CHANGES, cache.getCoordinationType());
-		
-		assertSourceContains("@Cache(coordinationType = SEND_NEW_OBJECTS_WITH_CHANGES)", cu);
-		
-		cache.setCoordinationType(null);
-		assertNull(cache.getCoordinationType());
-		
-		assertSourceDoesNotContain("(coordinationType = SEND_NEW_OBJECTS_WITH_CHANGES)", cu);
-		assertSourceDoesNotContain("@Cache", cu);
-	}
-	
-
-}
diff --git a/jpa/tests/org.eclipse.jpt.eclipselink.core.tests/src/org/eclipse/jpt/eclipselink/core/tests/internal/resource/java/ChangeTrackingTests.java b/jpa/tests/org.eclipse.jpt.eclipselink.core.tests/src/org/eclipse/jpt/eclipselink/core/tests/internal/resource/java/ChangeTrackingTests.java
deleted file mode 100644
index e4b660c..0000000
--- a/jpa/tests/org.eclipse.jpt.eclipselink.core.tests/src/org/eclipse/jpt/eclipselink/core/tests/internal/resource/java/ChangeTrackingTests.java
+++ /dev/null
@@ -1,88 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2008 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.eclipselink.core.tests.internal.resource.java;
-
-import java.util.Iterator;
-import org.eclipse.jdt.core.ICompilationUnit;
-import org.eclipse.jpt.core.resource.java.JavaResourcePersistentType;
-import org.eclipse.jpt.eclipselink.core.resource.java.ChangeTrackingAnnotation;
-import org.eclipse.jpt.eclipselink.core.resource.java.ChangeTrackingType;
-import org.eclipse.jpt.eclipselink.core.resource.java.EclipseLinkJPA;
-import org.eclipse.jpt.utility.internal.iterators.ArrayIterator;
-
-@SuppressWarnings("nls")
-public class ChangeTrackingTests extends EclipseLinkJavaResourceModelTestCase {
-
-	public ChangeTrackingTests(String name) {
-		super(name);
-	}
-	
-	private ICompilationUnit createTestChangeTracking() throws Exception {
-		return this.createTestType(new DefaultAnnotationWriter() {
-			@Override
-			public Iterator<String> imports() {
-				return new ArrayIterator<String>(EclipseLinkJPA.CHANGE_TRACKING, EclipseLinkJPA.CHANGE_TRACKING_TYPE);
-			}
-			@Override
-			public void appendTypeAnnotationTo(StringBuilder sb) {
-				sb.append("@ChangeTracking");
-			}
-		});
-	}
-	
-	private ICompilationUnit createTestChangeTrackingWithValue() throws Exception {
-		return this.createTestType(new DefaultAnnotationWriter() {
-			@Override
-			public Iterator<String> imports() {
-				return new ArrayIterator<String>(EclipseLinkJPA.CHANGE_TRACKING, EclipseLinkJPA.CHANGE_TRACKING_TYPE);
-			}
-			@Override
-			public void appendTypeAnnotationTo(StringBuilder sb) {
-				sb.append("@ChangeTracking(ChangeTrackingType.DEFERRED)");
-			}
-		});
-	}
-
-	public void testChangeTracking() throws Exception {
-		ICompilationUnit cu = this.createTestChangeTracking();
-		JavaResourcePersistentType typeResource = buildJavaTypeResource(cu); 
-		
-		ChangeTrackingAnnotation existenceChecking = (ChangeTrackingAnnotation) typeResource.getSupportingAnnotation(EclipseLinkJPA.CHANGE_TRACKING);
-		assertNotNull(existenceChecking);
-	}
-
-	public void testGetValue() throws Exception {
-		ICompilationUnit cu = this.createTestChangeTrackingWithValue();
-		JavaResourcePersistentType typeResource = buildJavaTypeResource(cu);
-		
-		ChangeTrackingAnnotation existenceChecking = (ChangeTrackingAnnotation) typeResource.getSupportingAnnotation(EclipseLinkJPA.CHANGE_TRACKING);
-		assertEquals(ChangeTrackingType.DEFERRED, existenceChecking.getValue());
-	}
-
-	public void testSetValue() throws Exception {
-		ICompilationUnit cu = this.createTestChangeTrackingWithValue();
-		JavaResourcePersistentType typeResource = buildJavaTypeResource(cu);
-		
-		ChangeTrackingAnnotation existenceChecking = (ChangeTrackingAnnotation) typeResource.getSupportingAnnotation(EclipseLinkJPA.CHANGE_TRACKING);
-		assertEquals(ChangeTrackingType.DEFERRED, existenceChecking.getValue());
-		
-		existenceChecking.setValue(ChangeTrackingType.ATTRIBUTE);
-		assertEquals(ChangeTrackingType.ATTRIBUTE, existenceChecking.getValue());
-		
-		assertSourceContains("@ChangeTracking(ATTRIBUTE)", cu);
-		
-		existenceChecking.setValue(null);
-		assertNull(existenceChecking.getValue());
-		
-		assertSourceDoesNotContain("(ATTRIBUTE)", cu);
-		assertSourceContains("@ChangeTracking", cu);
-		assertSourceDoesNotContain("@ChangeTracking(", cu);
-	}
-}
diff --git a/jpa/tests/org.eclipse.jpt.eclipselink.core.tests/src/org/eclipse/jpt/eclipselink/core/tests/internal/resource/java/ConversionValueAnnotationTests.java b/jpa/tests/org.eclipse.jpt.eclipselink.core.tests/src/org/eclipse/jpt/eclipselink/core/tests/internal/resource/java/ConversionValueAnnotationTests.java
deleted file mode 100644
index d97b64e..0000000
--- a/jpa/tests/org.eclipse.jpt.eclipselink.core.tests/src/org/eclipse/jpt/eclipselink/core/tests/internal/resource/java/ConversionValueAnnotationTests.java
+++ /dev/null
@@ -1,131 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008, 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.eclipselink.core.tests.internal.resource.java;
-
-import java.util.Iterator;
-import org.eclipse.jdt.core.ICompilationUnit;
-import org.eclipse.jpt.core.resource.java.JavaResourcePersistentAttribute;
-import org.eclipse.jpt.core.resource.java.JavaResourcePersistentType;
-import org.eclipse.jpt.eclipselink.core.resource.java.EclipseLinkJPA;
-import org.eclipse.jpt.eclipselink.core.resource.java.ObjectTypeConverterAnnotation;
-import org.eclipse.jpt.utility.internal.iterators.ArrayIterator;
-
-@SuppressWarnings("nls")
-public class ConversionValueAnnotationTests extends EclipseLinkJavaResourceModelTestCase {
-	
-	public ConversionValueAnnotationTests(String name) {
-		super(name);
-	}
-	
-	private ICompilationUnit createTestObjectTypeConverter() throws Exception {
-		return this.createTestType(new DefaultAnnotationWriter() {
-			@Override
-			public Iterator<String> imports() {
-				return new ArrayIterator<String>(EclipseLinkJPA.OBJECT_TYPE_CONVERTER);
-			}
-			@Override
-			public void appendIdFieldAnnotationTo(StringBuilder sb) {
-				sb.append("@ObjectTypeConverter");
-			}
-		});
-	}	
-	
-	private ICompilationUnit createTestObjectTypeConverterWithConversionValues() throws Exception {
-		return this.createTestType(new DefaultAnnotationWriter() {
-			@Override
-			public Iterator<String> imports() {
-				return new ArrayIterator<String>(EclipseLinkJPA.OBJECT_TYPE_CONVERTER, EclipseLinkJPA.CONVERSION_VALUE);
-			}
-			@Override
-			public void appendIdFieldAnnotationTo(StringBuilder sb) {
-				sb.append("@ObjectTypeConverter(conversionValues = {@ConversionValue(dataValue = \"F\", objectValue = \"Female\"), @ConversionValue(dataValue = \"M\", objectValue = \"Male\")})");
-			}
-		});
-	}
-
-
-	public void testGetDataValue() throws Exception {
-		ICompilationUnit cu = this.createTestObjectTypeConverterWithConversionValues();
-		JavaResourcePersistentType typeResource = buildJavaTypeResource(cu);
-		JavaResourcePersistentAttribute attributeResource = typeResource.fields().next();
-		
-		ObjectTypeConverterAnnotation converter = (ObjectTypeConverterAnnotation) attributeResource.getSupportingAnnotation(EclipseLinkJPA.OBJECT_TYPE_CONVERTER);
-		assertEquals("F", converter.conversionValueAt(0).getDataValue());
-	}
-
-	public void testSetDataValue() throws Exception {
-		ICompilationUnit cu = this.createTestObjectTypeConverterWithConversionValues();
-		JavaResourcePersistentType typeResource = buildJavaTypeResource(cu);
-		JavaResourcePersistentAttribute attributeResource = typeResource.fields().next();
-		
-		ObjectTypeConverterAnnotation converter = (ObjectTypeConverterAnnotation) attributeResource.getSupportingAnnotation(EclipseLinkJPA.OBJECT_TYPE_CONVERTER);
-		assertEquals("F", converter.conversionValueAt(0).getDataValue());
-		
-		converter.conversionValueAt(0).setDataValue("FOO");
-		assertEquals("FOO", converter.conversionValueAt(0).getDataValue());
-		
-		assertSourceContains("@ObjectTypeConverter(conversionValues = {@ConversionValue(dataValue = \"FOO\", objectValue = \"Female\"), @ConversionValue(dataValue = \"M\", objectValue = \"Male\")})", cu);
-	}
-	
-	public void testSetDataValueNull() throws Exception {
-		ICompilationUnit cu = this.createTestObjectTypeConverter();
-		JavaResourcePersistentType typeResource = buildJavaTypeResource(cu);
-		JavaResourcePersistentAttribute attributeResource = typeResource.fields().next();
-		
-		ObjectTypeConverterAnnotation converter = (ObjectTypeConverterAnnotation) attributeResource.getSupportingAnnotation(EclipseLinkJPA.OBJECT_TYPE_CONVERTER);
-		assertEquals(0, converter.conversionValuesSize());
-		
-		converter.addConversionValue(0).setDataValue("FOO");
-		assertSourceContains("@ObjectTypeConverter(conversionValues = @ConversionValue(dataValue = \"FOO\"))", cu);
-		
-		converter.conversionValueAt(0).setDataValue(null);
-		assertSourceContains("@ObjectTypeConverter(conversionValues = @ConversionValue)", cu);
-		assertEquals(1, converter.conversionValuesSize());
-	}
-	
-	public void testGetObjectValue() throws Exception {
-		ICompilationUnit cu = this.createTestObjectTypeConverterWithConversionValues();
-		JavaResourcePersistentType typeResource = buildJavaTypeResource(cu);
-		JavaResourcePersistentAttribute attributeResource = typeResource.fields().next();
-		
-		ObjectTypeConverterAnnotation converter = (ObjectTypeConverterAnnotation) attributeResource.getSupportingAnnotation(EclipseLinkJPA.OBJECT_TYPE_CONVERTER);
-		assertEquals("Female", converter.conversionValueAt(0).getObjectValue());
-	}
-
-	public void testSetObjectValue() throws Exception {
-		ICompilationUnit cu = this.createTestObjectTypeConverterWithConversionValues();
-		JavaResourcePersistentType typeResource = buildJavaTypeResource(cu);
-		JavaResourcePersistentAttribute attributeResource = typeResource.fields().next();
-		
-		ObjectTypeConverterAnnotation converter = (ObjectTypeConverterAnnotation) attributeResource.getSupportingAnnotation(EclipseLinkJPA.OBJECT_TYPE_CONVERTER);
-		assertEquals("Female", converter.conversionValueAt(0).getObjectValue());
-		
-		converter.conversionValueAt(0).setObjectValue("FOO");
-		assertEquals("FOO", converter.conversionValueAt(0).getObjectValue());
-		
-		assertSourceContains("@ObjectTypeConverter(conversionValues = {@ConversionValue(dataValue = \"F\", objectValue = \"FOO\"), @ConversionValue(dataValue = \"M\", objectValue = \"Male\")})", cu);
-	}
-	
-	public void testSetObjectValueNull() throws Exception {
-		ICompilationUnit cu = this.createTestObjectTypeConverter();
-		JavaResourcePersistentType typeResource = buildJavaTypeResource(cu);
-		JavaResourcePersistentAttribute attributeResource = typeResource.fields().next();
-		
-		ObjectTypeConverterAnnotation converter = (ObjectTypeConverterAnnotation) attributeResource.getSupportingAnnotation(EclipseLinkJPA.OBJECT_TYPE_CONVERTER);
-		assertEquals(0, converter.conversionValuesSize());
-		
-		converter.addConversionValue(0).setObjectValue("FOO");
-		assertSourceContains("@ObjectTypeConverter(conversionValues = @ConversionValue(objectValue = \"FOO\"))", cu);
-		
-		converter.conversionValueAt(0).setObjectValue(null);
-		assertSourceContains("@ObjectTypeConverter(conversionValues = @ConversionValue)", cu);
-		assertEquals(1, converter.conversionValuesSize());
-	}
-}
diff --git a/jpa/tests/org.eclipse.jpt.eclipselink.core.tests/src/org/eclipse/jpt/eclipselink/core/tests/internal/resource/java/ConvertAnnotationTests.java b/jpa/tests/org.eclipse.jpt.eclipselink.core.tests/src/org/eclipse/jpt/eclipselink/core/tests/internal/resource/java/ConvertAnnotationTests.java
deleted file mode 100644
index 3018587..0000000
--- a/jpa/tests/org.eclipse.jpt.eclipselink.core.tests/src/org/eclipse/jpt/eclipselink/core/tests/internal/resource/java/ConvertAnnotationTests.java
+++ /dev/null
@@ -1,105 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.eclipselink.core.tests.internal.resource.java;
-
-import java.util.Iterator;
-import org.eclipse.jdt.core.ICompilationUnit;
-import org.eclipse.jpt.core.resource.java.JavaResourcePersistentAttribute;
-import org.eclipse.jpt.core.resource.java.JavaResourcePersistentType;
-import org.eclipse.jpt.eclipselink.core.resource.java.ConvertAnnotation;
-import org.eclipse.jpt.eclipselink.core.resource.java.EclipseLinkJPA;
-import org.eclipse.jpt.utility.internal.iterators.ArrayIterator;
-
-@SuppressWarnings("nls")
-public class ConvertAnnotationTests extends EclipseLinkJavaResourceModelTestCase {
-	
-	public ConvertAnnotationTests(String name) {
-		super(name);
-	}
-
-	private ICompilationUnit createTestConvert() throws Exception {
-		return this.createTestType(new DefaultAnnotationWriter() {
-			@Override
-			public Iterator<String> imports() {
-				return new ArrayIterator<String>(EclipseLinkJPA.CONVERT);
-			}
-			@Override
-			public void appendIdFieldAnnotationTo(StringBuilder sb) {
-				sb.append("@Convert");
-			}
-		});
-	}
-	
-	private ICompilationUnit createTestConverterWithValue() throws Exception {
-		return this.createTestType(new DefaultAnnotationWriter() {
-			@Override
-			public Iterator<String> imports() {
-				return new ArrayIterator<String>(EclipseLinkJPA.CONVERT);
-			}
-			@Override
-			public void appendIdFieldAnnotationTo(StringBuilder sb) {
-				sb.append("@Convert(value=\"myConverter\")");
-			}
-		});
-	}
-
-	public void testConvertAnnotation() throws Exception {
-		ICompilationUnit cu = this.createTestConvert();
-		JavaResourcePersistentType typeResource = buildJavaTypeResource(cu); 
-		JavaResourcePersistentAttribute attributeResource = typeResource.fields().next();
-		
-		assertNotNull(attributeResource.getSupportingAnnotation(EclipseLinkJPA.CONVERT));
-		
-		attributeResource.removeSupportingAnnotation(EclipseLinkJPA.CONVERT);
-		assertNull(attributeResource.getSupportingAnnotation(EclipseLinkJPA.CONVERT));
-		
-		attributeResource.addSupportingAnnotation(EclipseLinkJPA.CONVERT);
-		assertNotNull(attributeResource.getSupportingAnnotation(EclipseLinkJPA.CONVERT));
-	}
-
-	public void testGetValue() throws Exception {
-		ICompilationUnit cu = this.createTestConverterWithValue();
-		JavaResourcePersistentType typeResource = buildJavaTypeResource(cu);
-		JavaResourcePersistentAttribute attributeResource = typeResource.fields().next();
-		
-		ConvertAnnotation convert = (ConvertAnnotation) attributeResource.getSupportingAnnotation(EclipseLinkJPA.CONVERT);
-		assertEquals("myConverter", convert.getValue());
-	}
-
-	public void testSetValue() throws Exception {
-		ICompilationUnit cu = this.createTestConverterWithValue();
-		JavaResourcePersistentType typeResource = buildJavaTypeResource(cu);
-		JavaResourcePersistentAttribute attributeResource = typeResource.fields().next();
-		
-		ConvertAnnotation convert = (ConvertAnnotation) attributeResource.getSupportingAnnotation(EclipseLinkJPA.CONVERT);
-		assertEquals("myConverter", convert.getValue());
-		
-		convert.setValue("Bar");
-		assertEquals("Bar", convert.getValue());
-		
-		assertSourceContains("@Convert(value=\"Bar\")", cu);
-	}
-	
-	public void testSetValueNull() throws Exception {
-		ICompilationUnit cu = this.createTestConverterWithValue();
-		JavaResourcePersistentType typeResource = buildJavaTypeResource(cu);
-		JavaResourcePersistentAttribute attributeResource = typeResource.fields().next();
-		
-		ConvertAnnotation convert = (ConvertAnnotation) attributeResource.getSupportingAnnotation(EclipseLinkJPA.CONVERT);
-		assertEquals("myConverter", convert.getValue());
-		
-		convert.setValue(null);
-		assertNull(convert.getValue());
-		
-		assertSourceContains("@Convert", cu);
-		assertSourceDoesNotContain("value", cu);
-	}
-
-}
diff --git a/jpa/tests/org.eclipse.jpt.eclipselink.core.tests/src/org/eclipse/jpt/eclipselink/core/tests/internal/resource/java/ConverterAnnotationTests.java b/jpa/tests/org.eclipse.jpt.eclipselink.core.tests/src/org/eclipse/jpt/eclipselink/core/tests/internal/resource/java/ConverterAnnotationTests.java
deleted file mode 100644
index 4231243..0000000
--- a/jpa/tests/org.eclipse.jpt.eclipselink.core.tests/src/org/eclipse/jpt/eclipselink/core/tests/internal/resource/java/ConverterAnnotationTests.java
+++ /dev/null
@@ -1,155 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.eclipselink.core.tests.internal.resource.java;
-
-import java.util.Iterator;
-import org.eclipse.jdt.core.ICompilationUnit;
-import org.eclipse.jpt.core.resource.java.JavaResourcePersistentAttribute;
-import org.eclipse.jpt.core.resource.java.JavaResourcePersistentType;
-import org.eclipse.jpt.eclipselink.core.resource.java.ConverterAnnotation;
-import org.eclipse.jpt.eclipselink.core.resource.java.EclipseLinkJPA;
-import org.eclipse.jpt.utility.internal.iterators.ArrayIterator;
-
-@SuppressWarnings("nls")
-public class ConverterAnnotationTests extends EclipseLinkJavaResourceModelTestCase {
-	
-	public ConverterAnnotationTests(String name) {
-		super(name);
-	}
-
-	private ICompilationUnit createTestConverter() throws Exception {
-		return this.createTestType(new DefaultAnnotationWriter() {
-			@Override
-			public Iterator<String> imports() {
-				return new ArrayIterator<String>(EclipseLinkJPA.CONVERTER);
-			}
-			@Override
-			public void appendIdFieldAnnotationTo(StringBuilder sb) {
-				sb.append("@Converter");
-			}
-		});
-	}
-	
-	private ICompilationUnit createTestConverterWithConverterClass() throws Exception {
-		return this.createTestType(new DefaultAnnotationWriter() {
-			@Override
-			public Iterator<String> imports() {
-				return new ArrayIterator<String>(EclipseLinkJPA.CONVERTER);
-			}
-			@Override
-			public void appendIdFieldAnnotationTo(StringBuilder sb) {
-				sb.append("@Converter(converterClass=Foo.class)");
-			}
-		});
-	}
-	
-	private ICompilationUnit createTestConverterWithName() throws Exception {
-		return this.createTestType(new DefaultAnnotationWriter() {
-			@Override
-			public Iterator<String> imports() {
-				return new ArrayIterator<String>(EclipseLinkJPA.CONVERTER);
-			}
-			@Override
-			public void appendIdFieldAnnotationTo(StringBuilder sb) {
-				sb.append("@Converter(name=\"bar\")");
-			}
-		});
-	}
-
-	public void testConverterAnnotation() throws Exception {
-		ICompilationUnit cu = this.createTestConverter();
-		JavaResourcePersistentType typeResource = buildJavaTypeResource(cu); 
-		JavaResourcePersistentAttribute attributeResource = typeResource.fields().next();
-		
-		assertNotNull(attributeResource.getSupportingAnnotation(EclipseLinkJPA.CONVERTER));
-		
-		attributeResource.removeSupportingAnnotation(EclipseLinkJPA.CONVERTER);
-		assertNull(attributeResource.getSupportingAnnotation(EclipseLinkJPA.CONVERTER));
-		
-		attributeResource.addSupportingAnnotation(EclipseLinkJPA.CONVERTER);
-		assertNotNull(attributeResource.getSupportingAnnotation(EclipseLinkJPA.CONVERTER));
-	}
-
-	public void testGetConverterClass() throws Exception {
-		ICompilationUnit cu = this.createTestConverterWithConverterClass();
-		JavaResourcePersistentType typeResource = buildJavaTypeResource(cu);
-		JavaResourcePersistentAttribute attributeResource = typeResource.fields().next();
-		
-		ConverterAnnotation converter = (ConverterAnnotation) attributeResource.getSupportingAnnotation(EclipseLinkJPA.CONVERTER);
-		assertEquals("Foo", converter.getConverterClass());
-	}
-
-	public void testSetConverterClass() throws Exception {
-		ICompilationUnit cu = this.createTestConverterWithConverterClass();
-		JavaResourcePersistentType typeResource = buildJavaTypeResource(cu);
-		JavaResourcePersistentAttribute attributeResource = typeResource.fields().next();
-		
-		ConverterAnnotation converter = (ConverterAnnotation) attributeResource.getSupportingAnnotation(EclipseLinkJPA.CONVERTER);
-		assertEquals("Foo", converter.getConverterClass());
-		
-		converter.setConverterClass("Bar");
-		assertEquals("Bar", converter.getConverterClass());
-		
-		assertSourceContains("@Converter(converterClass=Bar.class)", cu);
-	}
-	
-	public void testSetConverterClassNull() throws Exception {
-		ICompilationUnit cu = this.createTestConverterWithConverterClass();
-		JavaResourcePersistentType typeResource = buildJavaTypeResource(cu);
-		JavaResourcePersistentAttribute attributeResource = typeResource.fields().next();
-		
-		ConverterAnnotation converter = (ConverterAnnotation) attributeResource.getSupportingAnnotation(EclipseLinkJPA.CONVERTER);
-		assertEquals("Foo", converter.getConverterClass());
-		
-		converter.setConverterClass(null);
-		assertNull(converter.getConverterClass());
-		
-		assertSourceContains("@Converter", cu);
-		assertSourceDoesNotContain("converterClass", cu);
-	}
-	
-	public void testGetName() throws Exception {
-		ICompilationUnit cu = this.createTestConverterWithName();
-		JavaResourcePersistentType typeResource = buildJavaTypeResource(cu);
-		JavaResourcePersistentAttribute attributeResource = typeResource.fields().next();
-		
-		ConverterAnnotation converter = (ConverterAnnotation) attributeResource.getSupportingAnnotation(EclipseLinkJPA.CONVERTER);
-		assertEquals("bar", converter.getName());
-	}
-
-	public void testSetName() throws Exception {
-		ICompilationUnit cu = this.createTestConverterWithName();
-		JavaResourcePersistentType typeResource = buildJavaTypeResource(cu);
-		JavaResourcePersistentAttribute attributeResource = typeResource.fields().next();
-		
-		ConverterAnnotation converter = (ConverterAnnotation) attributeResource.getSupportingAnnotation(EclipseLinkJPA.CONVERTER);
-		assertEquals("bar", converter.getName());
-		
-		converter.setName("foo");
-		assertEquals("foo", converter.getName());
-		
-		assertSourceContains("@Converter(name=\"foo\")", cu);
-	}
-	
-	public void testSetNameNull() throws Exception {
-		ICompilationUnit cu = this.createTestConverterWithName();
-		JavaResourcePersistentType typeResource = buildJavaTypeResource(cu);
-		JavaResourcePersistentAttribute attributeResource = typeResource.fields().next();
-		
-		ConverterAnnotation converter = (ConverterAnnotation) attributeResource.getSupportingAnnotation(EclipseLinkJPA.CONVERTER);
-		assertEquals("bar", converter.getName());
-		
-		converter.setName(null);
-		assertNull(converter.getName());
-		
-		assertSourceContains("@Converter", cu);
-		assertSourceDoesNotContain("name=", cu);
-	}
-}
diff --git a/jpa/tests/org.eclipse.jpt.eclipselink.core.tests/src/org/eclipse/jpt/eclipselink/core/tests/internal/resource/java/CustomizerAnnotationTests.java b/jpa/tests/org.eclipse.jpt.eclipselink.core.tests/src/org/eclipse/jpt/eclipselink/core/tests/internal/resource/java/CustomizerAnnotationTests.java
deleted file mode 100644
index 82d4eeb..0000000
--- a/jpa/tests/org.eclipse.jpt.eclipselink.core.tests/src/org/eclipse/jpt/eclipselink/core/tests/internal/resource/java/CustomizerAnnotationTests.java
+++ /dev/null
@@ -1,99 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.eclipselink.core.tests.internal.resource.java;
-
-import java.util.Iterator;
-import org.eclipse.jdt.core.ICompilationUnit;
-import org.eclipse.jpt.core.resource.java.JavaResourcePersistentType;
-import org.eclipse.jpt.eclipselink.core.resource.java.CustomizerAnnotation;
-import org.eclipse.jpt.eclipselink.core.resource.java.EclipseLinkJPA;
-import org.eclipse.jpt.utility.internal.iterators.ArrayIterator;
-
-@SuppressWarnings("nls")
-public class CustomizerAnnotationTests extends EclipseLinkJavaResourceModelTestCase {
-	
-	public CustomizerAnnotationTests(String name) {
-		super(name);
-	}
-
-	private ICompilationUnit createTestCustomizer() throws Exception {
-		return this.createTestType(new DefaultAnnotationWriter() {
-			@Override
-			public Iterator<String> imports() {
-				return new ArrayIterator<String>(EclipseLinkJPA.CUSTOMIZER);
-			}
-			@Override
-			public void appendTypeAnnotationTo(StringBuilder sb) {
-				sb.append("@Customizer");
-			}
-		});
-	}
-	
-	private ICompilationUnit createTestCustomizerWithValue() throws Exception {
-		return this.createTestType(new DefaultAnnotationWriter() {
-			@Override
-			public Iterator<String> imports() {
-				return new ArrayIterator<String>(EclipseLinkJPA.CUSTOMIZER);
-			}
-			@Override
-			public void appendTypeAnnotationTo(StringBuilder sb) {
-				sb.append("@Customizer(Foo.class)");
-			}
-		});
-	}
-
-	public void testCustomizerAnnotation() throws Exception {
-		ICompilationUnit cu = this.createTestCustomizer();
-		JavaResourcePersistentType typeResource = buildJavaTypeResource(cu); 
-		
-		assertNotNull(typeResource.getSupportingAnnotation(EclipseLinkJPA.CUSTOMIZER));
-		
-		typeResource.removeSupportingAnnotation(EclipseLinkJPA.CUSTOMIZER);
-		assertNull(typeResource.getSupportingAnnotation(EclipseLinkJPA.CUSTOMIZER));
-		
-		typeResource.addSupportingAnnotation(EclipseLinkJPA.CUSTOMIZER);
-		assertNotNull(typeResource.getSupportingAnnotation(EclipseLinkJPA.CUSTOMIZER));
-	}
-
-	public void testGetConverterClass() throws Exception {
-		ICompilationUnit cu = this.createTestCustomizerWithValue();
-		JavaResourcePersistentType typeResource = buildJavaTypeResource(cu);
-		
-		CustomizerAnnotation converter = (CustomizerAnnotation) typeResource.getSupportingAnnotation(EclipseLinkJPA.CUSTOMIZER);
-		assertEquals("Foo", converter.getValue());
-	}
-
-	public void testSetConverterClass() throws Exception {
-		ICompilationUnit cu = this.createTestCustomizerWithValue();
-		JavaResourcePersistentType typeResource = buildJavaTypeResource(cu);
-		
-		CustomizerAnnotation converter = (CustomizerAnnotation) typeResource.getSupportingAnnotation(EclipseLinkJPA.CUSTOMIZER);
-		assertEquals("Foo", converter.getValue());
-		
-		converter.setValue("Bar");
-		assertEquals("Bar", converter.getValue());
-		
-		assertSourceContains("@Customizer(Bar.class)", cu);
-	}
-	
-	public void testSetConverterClassNull() throws Exception {
-		ICompilationUnit cu = this.createTestCustomizerWithValue();
-		JavaResourcePersistentType typeResource = buildJavaTypeResource(cu);
-		
-		CustomizerAnnotation converter = (CustomizerAnnotation) typeResource.getSupportingAnnotation(EclipseLinkJPA.CUSTOMIZER);
-		assertEquals("Foo", converter.getValue());
-		
-		converter.setValue(null);
-		assertNull(converter.getValue());
-		
-		assertSourceContains("@Customizer", cu);
-		assertSourceDoesNotContain("Foo.class", cu);
-	}
-}
diff --git a/jpa/tests/org.eclipse.jpt.eclipselink.core.tests/src/org/eclipse/jpt/eclipselink/core/tests/internal/resource/java/EclipseLink1_1JavaResourceModelTestCase.java b/jpa/tests/org.eclipse.jpt.eclipselink.core.tests/src/org/eclipse/jpt/eclipselink/core/tests/internal/resource/java/EclipseLink1_1JavaResourceModelTestCase.java
deleted file mode 100644
index 79c5991..0000000
--- a/jpa/tests/org.eclipse.jpt.eclipselink.core.tests/src/org/eclipse/jpt/eclipselink/core/tests/internal/resource/java/EclipseLink1_1JavaResourceModelTestCase.java
+++ /dev/null
@@ -1,32 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.eclipselink.core.tests.internal.resource.java;
-
-import org.eclipse.jpt.core.JpaAnnotationProvider;
-import org.eclipse.jpt.core.internal.platform.GenericJpaAnnotationDefinitionProvider;
-import org.eclipse.jpt.core.internal.platform.GenericJpaAnnotationProvider;
-import org.eclipse.jpt.eclipselink.core.internal.EclipseLink1_1JpaAnnotationDefinitionProvider;
-import org.eclipse.jpt.eclipselink.core.internal.EclipseLinkJpaAnnotationDefinitionProvider;
-
-public class EclipseLink1_1JavaResourceModelTestCase extends EclipseLinkJavaResourceModelTestCase
-{	
-	
-	public EclipseLink1_1JavaResourceModelTestCase(String name) {
-		super(name);
-	}
-
-	@Override
-	protected JpaAnnotationProvider buildAnnotationProvider() {
-		return new GenericJpaAnnotationProvider(
-			GenericJpaAnnotationDefinitionProvider.instance(),
-			EclipseLinkJpaAnnotationDefinitionProvider.instance(),
-			EclipseLink1_1JpaAnnotationDefinitionProvider.instance());
-	}
-}
diff --git a/jpa/tests/org.eclipse.jpt.eclipselink.core.tests/src/org/eclipse/jpt/eclipselink/core/tests/internal/resource/java/EclipseLinkJavaResourceModelTestCase.java b/jpa/tests/org.eclipse.jpt.eclipselink.core.tests/src/org/eclipse/jpt/eclipselink/core/tests/internal/resource/java/EclipseLinkJavaResourceModelTestCase.java
deleted file mode 100644
index 2f7a9d0..0000000
--- a/jpa/tests/org.eclipse.jpt.eclipselink.core.tests/src/org/eclipse/jpt/eclipselink/core/tests/internal/resource/java/EclipseLinkJavaResourceModelTestCase.java
+++ /dev/null
@@ -1,34 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.eclipselink.core.tests.internal.resource.java;
-
-import org.eclipse.jpt.core.JpaAnnotationProvider;
-import org.eclipse.jpt.core.internal.platform.GenericJpaAnnotationDefinitionProvider;
-import org.eclipse.jpt.core.internal.platform.GenericJpaAnnotationProvider;
-import org.eclipse.jpt.core.tests.internal.resource.java.JavaResourceModelTestCase;
-import org.eclipse.jpt.eclipselink.core.internal.EclipseLinkJpaAnnotationDefinitionProvider;
-
-public class EclipseLinkJavaResourceModelTestCase extends JavaResourceModelTestCase
-{	
-
-	public static final String ECLIPSELINK_ANNOTATIONS_PACKAGE_NAME = "org.eclipse.persistence.annotations"; //$NON-NLS-1$
-	
-	public EclipseLinkJavaResourceModelTestCase(String name) {
-		super(name);
-	}
-
-	@Override
-	protected JpaAnnotationProvider buildAnnotationProvider() {
-		return new GenericJpaAnnotationProvider(
-			GenericJpaAnnotationDefinitionProvider.instance(),
-			EclipseLinkJpaAnnotationDefinitionProvider.instance());
-	}
-
-}
diff --git a/jpa/tests/org.eclipse.jpt.eclipselink.core.tests/src/org/eclipse/jpt/eclipselink/core/tests/internal/resource/java/ExistenceCheckingTests.java b/jpa/tests/org.eclipse.jpt.eclipselink.core.tests/src/org/eclipse/jpt/eclipselink/core/tests/internal/resource/java/ExistenceCheckingTests.java
deleted file mode 100644
index 0cb2260..0000000
--- a/jpa/tests/org.eclipse.jpt.eclipselink.core.tests/src/org/eclipse/jpt/eclipselink/core/tests/internal/resource/java/ExistenceCheckingTests.java
+++ /dev/null
@@ -1,88 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2008 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.eclipselink.core.tests.internal.resource.java;
-
-import java.util.Iterator;
-import org.eclipse.jdt.core.ICompilationUnit;
-import org.eclipse.jpt.core.resource.java.JavaResourcePersistentType;
-import org.eclipse.jpt.eclipselink.core.resource.java.EclipseLinkJPA;
-import org.eclipse.jpt.eclipselink.core.resource.java.ExistenceCheckingAnnotation;
-import org.eclipse.jpt.eclipselink.core.resource.java.ExistenceType;
-import org.eclipse.jpt.utility.internal.iterators.ArrayIterator;
-
-@SuppressWarnings("nls")
-public class ExistenceCheckingTests extends EclipseLinkJavaResourceModelTestCase {
-
-	public ExistenceCheckingTests(String name) {
-		super(name);
-	}
-	
-	private ICompilationUnit createTestExistenceChecking() throws Exception {
-		return this.createTestType(new DefaultAnnotationWriter() {
-			@Override
-			public Iterator<String> imports() {
-				return new ArrayIterator<String>(EclipseLinkJPA.EXISTENCE_CHECKING, EclipseLinkJPA.EXISTENCE_TYPE);
-			}
-			@Override
-			public void appendTypeAnnotationTo(StringBuilder sb) {
-				sb.append("@ExistenceChecking");
-			}
-		});
-	}
-	
-	private ICompilationUnit createTestExistenceCheckingWithValue() throws Exception {
-		return this.createTestType(new DefaultAnnotationWriter() {
-			@Override
-			public Iterator<String> imports() {
-				return new ArrayIterator<String>(EclipseLinkJPA.EXISTENCE_CHECKING, EclipseLinkJPA.EXISTENCE_TYPE);
-			}
-			@Override
-			public void appendTypeAnnotationTo(StringBuilder sb) {
-				sb.append("@ExistenceChecking(ExistenceType.ASSUME_EXISTENCE)");
-			}
-		});
-	}
-
-	public void testExistenceChecking() throws Exception {
-		ICompilationUnit cu = this.createTestExistenceChecking();
-		JavaResourcePersistentType typeResource = buildJavaTypeResource(cu); 
-		
-		ExistenceCheckingAnnotation existenceChecking = (ExistenceCheckingAnnotation) typeResource.getSupportingAnnotation(EclipseLinkJPA.EXISTENCE_CHECKING);
-		assertNotNull(existenceChecking);
-	}
-
-	public void testGetValue() throws Exception {
-		ICompilationUnit cu = this.createTestExistenceCheckingWithValue();
-		JavaResourcePersistentType typeResource = buildJavaTypeResource(cu);
-		
-		ExistenceCheckingAnnotation existenceChecking = (ExistenceCheckingAnnotation) typeResource.getSupportingAnnotation(EclipseLinkJPA.EXISTENCE_CHECKING);
-		assertEquals(ExistenceType.ASSUME_EXISTENCE, existenceChecking.getValue());
-	}
-
-	public void testSetValue() throws Exception {
-		ICompilationUnit cu = this.createTestExistenceCheckingWithValue();
-		JavaResourcePersistentType typeResource = buildJavaTypeResource(cu);
-		
-		ExistenceCheckingAnnotation existenceChecking = (ExistenceCheckingAnnotation) typeResource.getSupportingAnnotation(EclipseLinkJPA.EXISTENCE_CHECKING);
-		assertEquals(ExistenceType.ASSUME_EXISTENCE, existenceChecking.getValue());
-		
-		existenceChecking.setValue(ExistenceType.ASSUME_NON_EXISTENCE);
-		assertEquals(ExistenceType.ASSUME_NON_EXISTENCE, existenceChecking.getValue());
-		
-		assertSourceContains("@ExistenceChecking(ASSUME_NON_EXISTENCE)", cu);
-		
-		existenceChecking.setValue(null);
-		assertNull(existenceChecking.getValue());
-		
-		assertSourceDoesNotContain("(ASSUME_NON_EXISTENCE)", cu);
-		assertSourceContains("@ExistenceChecking", cu);
-		assertSourceDoesNotContain("@ExistenceChecking(", cu);
-	}
-}
diff --git a/jpa/tests/org.eclipse.jpt.eclipselink.core.tests/src/org/eclipse/jpt/eclipselink/core/tests/internal/resource/java/JoinFetchTests.java b/jpa/tests/org.eclipse.jpt.eclipselink.core.tests/src/org/eclipse/jpt/eclipselink/core/tests/internal/resource/java/JoinFetchTests.java
deleted file mode 100644
index 68ab2bc..0000000
--- a/jpa/tests/org.eclipse.jpt.eclipselink.core.tests/src/org/eclipse/jpt/eclipselink/core/tests/internal/resource/java/JoinFetchTests.java
+++ /dev/null
@@ -1,92 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.eclipselink.core.tests.internal.resource.java;
-
-import java.util.Iterator;
-import org.eclipse.jdt.core.ICompilationUnit;
-import org.eclipse.jpt.core.resource.java.JavaResourcePersistentAttribute;
-import org.eclipse.jpt.core.resource.java.JavaResourcePersistentType;
-import org.eclipse.jpt.eclipselink.core.resource.java.EclipseLinkJPA;
-import org.eclipse.jpt.eclipselink.core.resource.java.JoinFetchAnnotation;
-import org.eclipse.jpt.eclipselink.core.resource.java.JoinFetchType;
-import org.eclipse.jpt.utility.internal.iterators.ArrayIterator;
-
-@SuppressWarnings("nls")
-public class JoinFetchTests extends EclipseLinkJavaResourceModelTestCase {
-
-	public JoinFetchTests(String name) {
-		super(name);
-	}
-	
-	private ICompilationUnit createTestJoinFetch() throws Exception {
-		return this.createTestType(new DefaultAnnotationWriter() {
-			@Override
-			public Iterator<String> imports() {
-				return new ArrayIterator<String>(EclipseLinkJPA.JOIN_FETCH, EclipseLinkJPA.JOIN_FETCH_TYPE);
-			}
-			@Override
-			public void appendIdFieldAnnotationTo(StringBuilder sb) {
-				sb.append("@JoinFetch");
-			}
-		});
-	}
-	
-	private ICompilationUnit createTestJoinFetchWithValue() throws Exception {
-		return this.createTestType(new DefaultAnnotationWriter() {
-			@Override
-			public Iterator<String> imports() {
-				return new ArrayIterator<String>(EclipseLinkJPA.JOIN_FETCH, EclipseLinkJPA.JOIN_FETCH_TYPE);
-			}
-			@Override
-			public void appendIdFieldAnnotationTo(StringBuilder sb) {
-				sb.append("@JoinFetch(JoinFetchType.OUTER)");
-			}
-		});
-	}
-
-	public void testJoinFetch() throws Exception {
-		ICompilationUnit cu = this.createTestJoinFetch();
-		JavaResourcePersistentType typeResource = buildJavaTypeResource(cu); 
-		JavaResourcePersistentAttribute attributeResource = typeResource.fields().next();
-
-		JoinFetchAnnotation joinFetch = (JoinFetchAnnotation) attributeResource.getSupportingAnnotation(EclipseLinkJPA.JOIN_FETCH);
-		assertNotNull(joinFetch);
-	}
-
-	public void testGetValue() throws Exception {
-		ICompilationUnit cu = this.createTestJoinFetchWithValue();
-		JavaResourcePersistentType typeResource = buildJavaTypeResource(cu);
-		JavaResourcePersistentAttribute attributeResource = typeResource.fields().next();
-		
-		JoinFetchAnnotation joinFetch = (JoinFetchAnnotation) attributeResource.getSupportingAnnotation(EclipseLinkJPA.JOIN_FETCH);
-		assertEquals(JoinFetchType.OUTER, joinFetch.getValue());
-	}
-
-	public void testSetValue() throws Exception {
-		ICompilationUnit cu = this.createTestJoinFetchWithValue();
-		JavaResourcePersistentType typeResource = buildJavaTypeResource(cu);
-		JavaResourcePersistentAttribute attributeResource = typeResource.fields().next();
-		
-		JoinFetchAnnotation joinFetch = (JoinFetchAnnotation) attributeResource.getSupportingAnnotation(EclipseLinkJPA.JOIN_FETCH);
-		assertEquals(JoinFetchType.OUTER, joinFetch.getValue());
-		
-		joinFetch.setValue(JoinFetchType.INNER);
-		assertEquals(JoinFetchType.INNER, joinFetch.getValue());
-		
-		assertSourceContains("@JoinFetch(INNER)", cu);
-		
-		joinFetch.setValue(null);
-		assertNull(joinFetch.getValue());
-		
-		assertSourceDoesNotContain("(INNER)", cu);
-		assertSourceContains("@JoinFetch", cu);
-		assertSourceDoesNotContain("@JoinFetch(", cu);
-	}
-}
diff --git a/jpa/tests/org.eclipse.jpt.eclipselink.core.tests/src/org/eclipse/jpt/eclipselink/core/tests/internal/resource/java/JptEclipseLinkCoreJavaResourceModelTests.java b/jpa/tests/org.eclipse.jpt.eclipselink.core.tests/src/org/eclipse/jpt/eclipselink/core/tests/internal/resource/java/JptEclipseLinkCoreJavaResourceModelTests.java
deleted file mode 100644
index b782127..0000000
--- a/jpa/tests/org.eclipse.jpt.eclipselink.core.tests/src/org/eclipse/jpt/eclipselink/core/tests/internal/resource/java/JptEclipseLinkCoreJavaResourceModelTests.java
+++ /dev/null
@@ -1,54 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.eclipselink.core.tests.internal.resource.java;
-
-import junit.framework.Test;
-import junit.framework.TestSuite;
-
-public class JptEclipseLinkCoreJavaResourceModelTests {
-
-	public static Test suite() {
-		return suite(true);
-	}
-	
-	public static Test suite(boolean all) {
-		TestSuite suite = new TestSuite(JptEclipseLinkCoreJavaResourceModelTests.class.getName());
-		//TODO commented out this test for now, we don't want the java Access annotation work to be exposed yet.
-		//EclipseLink has backed out its JPA 2.0 annotation support until it is released or licensing issues are cleared up.
-		
-//		suite.addTestSuite(AccessAnnotationTests.class);
-		suite.addTestSuite(CacheTests.class);
-		suite.addTestSuite(ChangeTrackingTests.class);
-		suite.addTestSuite(ConversionValueAnnotationTests.class);
-		suite.addTestSuite(ConvertAnnotationTests.class);
-		suite.addTestSuite(ConverterAnnotationTests.class);
-		suite.addTestSuite(CustomizerAnnotationTests.class);
-		suite.addTestSuite(ExistenceCheckingTests.class);
-		suite.addTestSuite(JoinFetchTests.class);
-		suite.addTestSuite(MutableAnnotationTests.class);
-		suite.addTestSuite(ObjectTypeConverterAnnotationTests.class);
-		suite.addTestSuite(PrivateOwnedTests.class);
-		suite.addTestSuite(ReadOnlyTests.class);
-		suite.addTestSuite(ReadTransformerAnnotationTests.class);
-		suite.addTestSuite(StructConverterAnnotationTests.class);
-		suite.addTestSuite(TimeOfDayTests.class);
-		suite.addTestSuite(TransformationAnnotationTests.class);
-		suite.addTestSuite(TypeConverterAnnotationTests.class);
-		suite.addTestSuite(WriteTransformerAnnotationTests.class);
-		
-		return suite;
-	}
-
-	private JptEclipseLinkCoreJavaResourceModelTests() {
-		super();
-		throw new UnsupportedOperationException();
-	}
-
-}
diff --git a/jpa/tests/org.eclipse.jpt.eclipselink.core.tests/src/org/eclipse/jpt/eclipselink/core/tests/internal/resource/java/MutableAnnotationTests.java b/jpa/tests/org.eclipse.jpt.eclipselink.core.tests/src/org/eclipse/jpt/eclipselink/core/tests/internal/resource/java/MutableAnnotationTests.java
deleted file mode 100644
index eca6710..0000000
--- a/jpa/tests/org.eclipse.jpt.eclipselink.core.tests/src/org/eclipse/jpt/eclipselink/core/tests/internal/resource/java/MutableAnnotationTests.java
+++ /dev/null
@@ -1,111 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.eclipselink.core.tests.internal.resource.java;
-
-import java.util.Iterator;
-import org.eclipse.jdt.core.ICompilationUnit;
-import org.eclipse.jpt.core.resource.java.JavaResourcePersistentAttribute;
-import org.eclipse.jpt.core.resource.java.JavaResourcePersistentType;
-import org.eclipse.jpt.eclipselink.core.resource.java.EclipseLinkJPA;
-import org.eclipse.jpt.eclipselink.core.resource.java.MutableAnnotation;
-import org.eclipse.jpt.utility.internal.iterators.ArrayIterator;
-
-@SuppressWarnings("nls")
-public class MutableAnnotationTests extends EclipseLinkJavaResourceModelTestCase {
-	
-	public MutableAnnotationTests(String name) {
-		super(name);
-	}
-
-	private ICompilationUnit createTestMutable() throws Exception {
-		return this.createTestType(new DefaultAnnotationWriter() {
-			@Override
-			public Iterator<String> imports() {
-				return new ArrayIterator<String>(EclipseLinkJPA.MUTABLE);
-			}
-			@Override
-			public void appendIdFieldAnnotationTo(StringBuilder sb) {
-				sb.append("@Mutable");
-			}
-		});
-	}
-	
-	private ICompilationUnit createTestMutableWithValue() throws Exception {
-		return this.createTestType(new DefaultAnnotationWriter() {
-			@Override
-			public Iterator<String> imports() {
-				return new ArrayIterator<String>(EclipseLinkJPA.MUTABLE);
-			}
-			@Override
-			public void appendIdFieldAnnotationTo(StringBuilder sb) {
-				sb.append("@Mutable(value=true)");
-			}
-		});
-	}
-	
-
-	
-	public void testMutableAnnotation() throws Exception {
-		ICompilationUnit cu = this.createTestMutable();
-		JavaResourcePersistentType typeResource = buildJavaTypeResource(cu); 
-		JavaResourcePersistentAttribute attributeResource = typeResource.fields().next();
-		
-		assertNotNull(attributeResource.getSupportingAnnotation(EclipseLinkJPA.MUTABLE));
-		
-		attributeResource.removeSupportingAnnotation(EclipseLinkJPA.MUTABLE);		
-		assertNull(attributeResource.getSupportingAnnotation(EclipseLinkJPA.MUTABLE));
-		
-		attributeResource.addSupportingAnnotation(EclipseLinkJPA.MUTABLE);
-		assertNotNull(attributeResource.getSupportingAnnotation(EclipseLinkJPA.MUTABLE));
-	}
-
-	public void testGetValue() throws Exception {
-		ICompilationUnit cu = this.createTestMutableWithValue();
-		JavaResourcePersistentType typeResource = buildJavaTypeResource(cu);
-		JavaResourcePersistentAttribute attributeResource = typeResource.fields().next();
-		
-		MutableAnnotation mutableAnnotation = (MutableAnnotation) attributeResource.getSupportingAnnotation(EclipseLinkJPA.MUTABLE);
-		assertEquals(Boolean.TRUE, mutableAnnotation.getValue());
-	}
-
-	public void testSetValue() throws Exception {
-		ICompilationUnit cu = this.createTestMutableWithValue();
-		JavaResourcePersistentType typeResource = buildJavaTypeResource(cu);
-		JavaResourcePersistentAttribute attributeResource = typeResource.fields().next();
-		
-		MutableAnnotation mutableAnnotation = (MutableAnnotation) attributeResource.getSupportingAnnotation(EclipseLinkJPA.MUTABLE);
-		assertEquals(Boolean.TRUE, mutableAnnotation.getValue());
-		
-		mutableAnnotation.setValue(Boolean.FALSE);
-		assertEquals(Boolean.FALSE, mutableAnnotation.getValue());
-		
-		assertSourceContains("@Mutable(value=false)", cu);
-		
-		mutableAnnotation.setValue(null);
-		mutableAnnotation.setValue(Boolean.FALSE);
-		assertSourceContains("@Mutable(false)", cu);
-	}
-	
-	public void testSetValueNull() throws Exception {
-		ICompilationUnit cu = this.createTestMutableWithValue();
-		JavaResourcePersistentType typeResource = buildJavaTypeResource(cu);
-		JavaResourcePersistentAttribute attributeResource = typeResource.fields().next();
-		
-		MutableAnnotation mutableAnnotation = (MutableAnnotation) attributeResource.getSupportingAnnotation(EclipseLinkJPA.MUTABLE);
-		assertEquals(Boolean.TRUE, mutableAnnotation.getValue());
-		
-		mutableAnnotation.setValue(null);
-		assertNull(mutableAnnotation.getValue());
-		
-		assertSourceContains("@Mutable", cu);
-		assertSourceDoesNotContain("value", cu);
-	}
-
-}
diff --git a/jpa/tests/org.eclipse.jpt.eclipselink.core.tests/src/org/eclipse/jpt/eclipselink/core/tests/internal/resource/java/ObjectTypeConverterAnnotationTests.java b/jpa/tests/org.eclipse.jpt.eclipselink.core.tests/src/org/eclipse/jpt/eclipselink/core/tests/internal/resource/java/ObjectTypeConverterAnnotationTests.java
deleted file mode 100644
index 1bed450..0000000
--- a/jpa/tests/org.eclipse.jpt.eclipselink.core.tests/src/org/eclipse/jpt/eclipselink/core/tests/internal/resource/java/ObjectTypeConverterAnnotationTests.java
+++ /dev/null
@@ -1,426 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008, 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.eclipselink.core.tests.internal.resource.java;
-
-import java.util.Iterator;
-import java.util.ListIterator;
-import org.eclipse.jdt.core.ICompilationUnit;
-import org.eclipse.jpt.core.resource.java.JavaResourcePersistentAttribute;
-import org.eclipse.jpt.core.resource.java.JavaResourcePersistentType;
-import org.eclipse.jpt.eclipselink.core.resource.java.ConversionValueAnnotation;
-import org.eclipse.jpt.eclipselink.core.resource.java.EclipseLinkJPA;
-import org.eclipse.jpt.eclipselink.core.resource.java.ObjectTypeConverterAnnotation;
-import org.eclipse.jpt.utility.internal.iterators.ArrayIterator;
-
-@SuppressWarnings("nls")
-public class ObjectTypeConverterAnnotationTests extends EclipseLinkJavaResourceModelTestCase {
-	
-	public ObjectTypeConverterAnnotationTests(String name) {
-		super(name);
-	}
-	
-	private ICompilationUnit createTestObjectTypeConverter() throws Exception {
-		return this.createTestType(new DefaultAnnotationWriter() {
-			@Override
-			public Iterator<String> imports() {
-				return new ArrayIterator<String>(EclipseLinkJPA.OBJECT_TYPE_CONVERTER);
-			}
-			@Override
-			public void appendIdFieldAnnotationTo(StringBuilder sb) {
-				sb.append("@ObjectTypeConverter");
-			}
-		});
-	}
-	
-	private ICompilationUnit createTestObjectTypeConverterWithDataType() throws Exception {
-		return this.createTestType(new DefaultAnnotationWriter() {
-			@Override
-			public Iterator<String> imports() {
-				return new ArrayIterator<String>(EclipseLinkJPA.OBJECT_TYPE_CONVERTER);
-			}
-			@Override
-			public void appendIdFieldAnnotationTo(StringBuilder sb) {
-				sb.append("@ObjectTypeConverter(dataType=Foo.class)");
-			}
-		});
-	}
-	
-	private ICompilationUnit createTestObjectTypeConverterWithObjectType() throws Exception {
-		return this.createTestType(new DefaultAnnotationWriter() {
-			@Override
-			public Iterator<String> imports() {
-				return new ArrayIterator<String>(EclipseLinkJPA.OBJECT_TYPE_CONVERTER);
-			}
-			@Override
-			public void appendIdFieldAnnotationTo(StringBuilder sb) {
-				sb.append("@ObjectTypeConverter(objectType=Foo.class)");
-			}
-		});
-	}
-	
-	private ICompilationUnit createTestObjectTypeConverterWithName() throws Exception {
-		return this.createTestType(new DefaultAnnotationWriter() {
-			@Override
-			public Iterator<String> imports() {
-				return new ArrayIterator<String>(EclipseLinkJPA.OBJECT_TYPE_CONVERTER);
-			}
-			@Override
-			public void appendIdFieldAnnotationTo(StringBuilder sb) {
-				sb.append("@ObjectTypeConverter(name = \"bar\")");
-			}
-		});
-	}
-	
-	private ICompilationUnit createTestObjectTypeConverterWithDefaultObjectValue() throws Exception {
-		return this.createTestType(new DefaultAnnotationWriter() {
-			@Override
-			public Iterator<String> imports() {
-				return new ArrayIterator<String>(EclipseLinkJPA.OBJECT_TYPE_CONVERTER);
-			}
-			@Override
-			public void appendIdFieldAnnotationTo(StringBuilder sb) {
-				sb.append("@ObjectTypeConverter(defaultObjectValue = \"f\")");
-			}
-		});
-	}
-	
-	private ICompilationUnit createTestObjectTypeConverterWithConversionValues() throws Exception {
-		return this.createTestType(new DefaultAnnotationWriter() {
-			@Override
-			public Iterator<String> imports() {
-				return new ArrayIterator<String>(EclipseLinkJPA.OBJECT_TYPE_CONVERTER, EclipseLinkJPA.CONVERSION_VALUE);
-			}
-			@Override
-			public void appendIdFieldAnnotationTo(StringBuilder sb) {
-				sb.append("@ObjectTypeConverter(conversionValues = {@ConversionValue(dataValue = \"F\", objectValue = \"Female\"), @ConversionValue(dataValue = \"M\", objectValue = \"Male\")})");
-			}
-		});
-	}
-
-	public void testObjectTypeConverterAnnotation() throws Exception {
-		ICompilationUnit cu = this.createTestObjectTypeConverter();
-		JavaResourcePersistentType typeResource = buildJavaTypeResource(cu); 
-		JavaResourcePersistentAttribute attributeResource = typeResource.fields().next();
-		
-		assertNotNull(attributeResource.getSupportingAnnotation(EclipseLinkJPA.OBJECT_TYPE_CONVERTER));
-		
-		attributeResource.removeSupportingAnnotation(EclipseLinkJPA.OBJECT_TYPE_CONVERTER);
-		assertNull(attributeResource.getSupportingAnnotation(EclipseLinkJPA.OBJECT_TYPE_CONVERTER));
-		
-		attributeResource.addSupportingAnnotation(EclipseLinkJPA.OBJECT_TYPE_CONVERTER);
-		assertNotNull(attributeResource.getSupportingAnnotation(EclipseLinkJPA.OBJECT_TYPE_CONVERTER));
-	}
-
-	public void testGetDataType() throws Exception {
-		ICompilationUnit cu = this.createTestObjectTypeConverterWithDataType();
-		JavaResourcePersistentType typeResource = buildJavaTypeResource(cu);
-		JavaResourcePersistentAttribute attributeResource = typeResource.fields().next();
-		
-		ObjectTypeConverterAnnotation converter = (ObjectTypeConverterAnnotation) attributeResource.getSupportingAnnotation(EclipseLinkJPA.OBJECT_TYPE_CONVERTER);
-		assertEquals("Foo", converter.getDataType());
-	}
-
-	public void testSetDataType() throws Exception {
-		ICompilationUnit cu = this.createTestObjectTypeConverterWithDataType();
-		JavaResourcePersistentType typeResource = buildJavaTypeResource(cu);
-		JavaResourcePersistentAttribute attributeResource = typeResource.fields().next();
-		
-		ObjectTypeConverterAnnotation converter = (ObjectTypeConverterAnnotation) attributeResource.getSupportingAnnotation(EclipseLinkJPA.OBJECT_TYPE_CONVERTER);
-		assertEquals("Foo", converter.getDataType());
-		
-		converter.setDataType("Bar");
-		assertEquals("Bar", converter.getDataType());
-		
-		assertSourceContains("@ObjectTypeConverter(dataType=Bar.class)", cu);
-		
-		converter.setDataType("int");
-		assertEquals("int", converter.getDataType());
-		assertSourceContains("@ObjectTypeConverter(dataType=int.class)", cu);
-	}
-	
-	public void testSetDataTypeNull() throws Exception {
-		ICompilationUnit cu = this.createTestObjectTypeConverterWithDataType();
-		JavaResourcePersistentType typeResource = buildJavaTypeResource(cu);
-		JavaResourcePersistentAttribute attributeResource = typeResource.fields().next();
-		
-		ObjectTypeConverterAnnotation converter = (ObjectTypeConverterAnnotation) attributeResource.getSupportingAnnotation(EclipseLinkJPA.OBJECT_TYPE_CONVERTER);
-		assertEquals("Foo", converter.getDataType());
-		
-		converter.setDataType(null);
-		assertNull(converter.getDataType());
-		
-		assertSourceContains("@ObjectTypeConverter", cu);
-		assertSourceDoesNotContain("dataType", cu);
-	}
-
-	public void testGetObjectType() throws Exception {
-		ICompilationUnit cu = this.createTestObjectTypeConverterWithObjectType();
-		JavaResourcePersistentType typeResource = buildJavaTypeResource(cu);
-		JavaResourcePersistentAttribute attributeResource = typeResource.fields().next();
-		
-		ObjectTypeConverterAnnotation converter = (ObjectTypeConverterAnnotation) attributeResource.getSupportingAnnotation(EclipseLinkJPA.OBJECT_TYPE_CONVERTER);
-		assertEquals("Foo", converter.getObjectType());
-	}
-
-	public void testSetObjectType() throws Exception {
-		ICompilationUnit cu = this.createTestObjectTypeConverterWithObjectType();
-		JavaResourcePersistentType typeResource = buildJavaTypeResource(cu);
-		JavaResourcePersistentAttribute attributeResource = typeResource.fields().next();
-		
-		ObjectTypeConverterAnnotation converter = (ObjectTypeConverterAnnotation) attributeResource.getSupportingAnnotation(EclipseLinkJPA.OBJECT_TYPE_CONVERTER);
-		assertEquals("Foo", converter.getObjectType());
-		
-		converter.setObjectType("Bar");
-		assertEquals("Bar", converter.getObjectType());
-		
-		assertSourceContains("@ObjectTypeConverter(objectType=Bar.class)", cu);
-		
-		converter.setObjectType("int");
-		assertEquals("int", converter.getObjectType());
-		assertSourceContains("@ObjectTypeConverter(objectType=int.class)", cu);
-	}
-	
-	public void testSetObjectTypeNull() throws Exception {
-		ICompilationUnit cu = this.createTestObjectTypeConverterWithObjectType();
-		JavaResourcePersistentType typeResource = buildJavaTypeResource(cu);
-		JavaResourcePersistentAttribute attributeResource = typeResource.fields().next();
-		
-		ObjectTypeConverterAnnotation converter = (ObjectTypeConverterAnnotation) attributeResource.getSupportingAnnotation(EclipseLinkJPA.OBJECT_TYPE_CONVERTER);
-		assertEquals("Foo", converter.getObjectType());
-		
-		converter.setObjectType(null);
-		assertNull(converter.getObjectType());
-		
-		assertSourceContains("@ObjectTypeConverter", cu);
-		assertSourceDoesNotContain("objectType", cu);
-	}
-
-	public void testGetName() throws Exception {
-		ICompilationUnit cu = this.createTestObjectTypeConverterWithName();
-		JavaResourcePersistentType typeResource = buildJavaTypeResource(cu);
-		JavaResourcePersistentAttribute attributeResource = typeResource.fields().next();
-		
-		ObjectTypeConverterAnnotation converter = (ObjectTypeConverterAnnotation) attributeResource.getSupportingAnnotation(EclipseLinkJPA.OBJECT_TYPE_CONVERTER);
-		assertEquals("bar", converter.getName());
-	}
-
-	public void testSetName() throws Exception {
-		ICompilationUnit cu = this.createTestObjectTypeConverterWithName();
-		JavaResourcePersistentType typeResource = buildJavaTypeResource(cu);
-		JavaResourcePersistentAttribute attributeResource = typeResource.fields().next();
-		
-		ObjectTypeConverterAnnotation converter = (ObjectTypeConverterAnnotation) attributeResource.getSupportingAnnotation(EclipseLinkJPA.OBJECT_TYPE_CONVERTER);
-		assertEquals("bar", converter.getName());
-		
-		converter.setName("foo");
-		assertEquals("foo", converter.getName());
-		
-		assertSourceContains("@ObjectTypeConverter(name = \"foo\")", cu);
-	}
-	
-	public void testSetNameNull() throws Exception {
-		ICompilationUnit cu = this.createTestObjectTypeConverterWithName();
-		JavaResourcePersistentType typeResource = buildJavaTypeResource(cu);
-		JavaResourcePersistentAttribute attributeResource = typeResource.fields().next();
-		
-		ObjectTypeConverterAnnotation converter = (ObjectTypeConverterAnnotation) attributeResource.getSupportingAnnotation(EclipseLinkJPA.OBJECT_TYPE_CONVERTER);
-		assertEquals("bar", converter.getName());
-		
-		converter.setName(null);
-		assertNull(converter.getName());
-		
-		assertSourceContains("@ObjectTypeConverter", cu);
-		assertSourceDoesNotContain("name=", cu);
-	}
-	
-
-	public void testGetDefaultObjectValue() throws Exception {
-		ICompilationUnit cu = this.createTestObjectTypeConverterWithDefaultObjectValue();
-		JavaResourcePersistentType typeResource = buildJavaTypeResource(cu);
-		JavaResourcePersistentAttribute attributeResource = typeResource.fields().next();
-		
-		ObjectTypeConverterAnnotation converter = (ObjectTypeConverterAnnotation) attributeResource.getSupportingAnnotation(EclipseLinkJPA.OBJECT_TYPE_CONVERTER);
-		assertEquals("f", converter.getDefaultObjectValue());
-	}
-
-	public void testSetDefaultObjectValue() throws Exception {
-		ICompilationUnit cu = this.createTestObjectTypeConverterWithDefaultObjectValue();
-		JavaResourcePersistentType typeResource = buildJavaTypeResource(cu);
-		JavaResourcePersistentAttribute attributeResource = typeResource.fields().next();
-		
-		ObjectTypeConverterAnnotation converter = (ObjectTypeConverterAnnotation) attributeResource.getSupportingAnnotation(EclipseLinkJPA.OBJECT_TYPE_CONVERTER);
-		assertEquals("f", converter.getDefaultObjectValue());
-		
-		converter.setDefaultObjectValue("foo");
-		assertEquals("foo", converter.getDefaultObjectValue());
-		
-		assertSourceContains("@ObjectTypeConverter(defaultObjectValue = \"foo\")", cu);
-	}
-	
-	public void testSetDefaultObjectValueNull() throws Exception {
-		ICompilationUnit cu = this.createTestObjectTypeConverterWithDefaultObjectValue();
-		JavaResourcePersistentType typeResource = buildJavaTypeResource(cu);
-		JavaResourcePersistentAttribute attributeResource = typeResource.fields().next();
-		
-		ObjectTypeConverterAnnotation converter = (ObjectTypeConverterAnnotation) attributeResource.getSupportingAnnotation(EclipseLinkJPA.OBJECT_TYPE_CONVERTER);
-		assertEquals("f", converter.getDefaultObjectValue());
-		
-		converter.setDefaultObjectValue(null);
-		assertNull(converter.getDefaultObjectValue());
-		
-		assertSourceContains("@ObjectTypeConverter", cu);
-		assertSourceDoesNotContain("defaultObjectValue", cu);
-	}
-	
-	public void testConversionValues() throws Exception {
-		ICompilationUnit cu = this.createTestObjectTypeConverterWithName();
-		JavaResourcePersistentType typeResource = buildJavaTypeResource(cu); 
-		JavaResourcePersistentAttribute attributeResource = typeResource.fields().next();
-		
-		ObjectTypeConverterAnnotation converter = (ObjectTypeConverterAnnotation) attributeResource.getSupportingAnnotation(EclipseLinkJPA.OBJECT_TYPE_CONVERTER);
-		
-		assertEquals(0, converter.conversionValuesSize());
-		assertFalse(converter.conversionValues().hasNext());
-	}
-	
-	public void testConversionValues2() throws Exception {
-		ICompilationUnit cu = this.createTestObjectTypeConverterWithName();
-		JavaResourcePersistentType typeResource = buildJavaTypeResource(cu); 
-		JavaResourcePersistentAttribute attributeResource = typeResource.fields().next();
-		
-		ObjectTypeConverterAnnotation converter = (ObjectTypeConverterAnnotation) attributeResource.getSupportingAnnotation(EclipseLinkJPA.OBJECT_TYPE_CONVERTER);
-
-		
-		converter.addConversionValue(0);
-		converter.addConversionValue(1);
-				
-		assertEquals(2, converter.conversionValuesSize());
-		ListIterator<ConversionValueAnnotation> conversionValues = converter.conversionValues();
-		assertTrue(conversionValues.hasNext());
-		assertNotNull(conversionValues.next());
-		assertNotNull(conversionValues.next());
-		assertFalse(conversionValues.hasNext());
-	}
-	
-	public void testConversionValues3() throws Exception {
-		ICompilationUnit cu = this.createTestObjectTypeConverterWithConversionValues();
-		JavaResourcePersistentType typeResource = buildJavaTypeResource(cu); 
-		JavaResourcePersistentAttribute attributeResource = typeResource.fields().next();
-		
-		ObjectTypeConverterAnnotation converter = (ObjectTypeConverterAnnotation) attributeResource.getSupportingAnnotation(EclipseLinkJPA.OBJECT_TYPE_CONVERTER);
-				
-		assertEquals(2, converter.conversionValuesSize());
-		ListIterator<ConversionValueAnnotation> conversionValues = converter.conversionValues();
-		ConversionValueAnnotation conversionValue = conversionValues.next();
-		assertEquals("F", conversionValue.getDataValue());
-		assertEquals("Female", conversionValue.getObjectValue());
-		conversionValue = conversionValues.next();
-		assertEquals("M", conversionValue.getDataValue());
-		assertEquals("Male", conversionValue.getObjectValue());
-		assertFalse(conversionValues.hasNext());
-	}
-	
-	public void testAddConversionValue() throws Exception {
-		ICompilationUnit cu = this.createTestObjectTypeConverterWithName();
-		JavaResourcePersistentType typeResource = buildJavaTypeResource(cu); 
-		JavaResourcePersistentAttribute attributeResource = typeResource.fields().next();
-		
-		ObjectTypeConverterAnnotation converter = (ObjectTypeConverterAnnotation) attributeResource.getSupportingAnnotation(EclipseLinkJPA.OBJECT_TYPE_CONVERTER);
-		
-		converter.addConversionValue(0).setObjectValue("FOO");
-		converter.addConversionValue(1);
-		converter.addConversionValue(0).setDataValue("BAR");
-
-		assertEquals("BAR", converter.conversionValueAt(0).getDataValue());
-		assertNull(converter.conversionValueAt(0).getObjectValue());
-		assertEquals("FOO", converter.conversionValueAt(1).getObjectValue());
-		assertNull(converter.conversionValueAt(1).getDataValue());
-		assertNull(converter.conversionValueAt(2).getDataValue());
-		assertNull(converter.conversionValueAt(2).getObjectValue());
-
-		assertSourceContains("@ObjectTypeConverter(name = \"bar\", conversionValues = {@ConversionValue(dataValue = \"BAR\"),@ConversionValue(objectValue = \"FOO\"), @ConversionValue})", cu);
-	}
-	
-	public void testRemoveConversionValue() throws Exception {
-		ICompilationUnit cu = this.createTestObjectTypeConverterWithConversionValues();
-		JavaResourcePersistentType typeResource = buildJavaTypeResource(cu); 
-		JavaResourcePersistentAttribute attributeResource = typeResource.fields().next();
-		
-		ObjectTypeConverterAnnotation converter = (ObjectTypeConverterAnnotation) attributeResource.getSupportingAnnotation(EclipseLinkJPA.OBJECT_TYPE_CONVERTER);
-		converter.addConversionValue(0).setObjectValue("FOO");
-		
-		Iterator<ConversionValueAnnotation> conversionValues = converter.conversionValues();
-		assertEquals("FOO", conversionValues.next().getObjectValue());
-		assertEquals("Female", conversionValues.next().getObjectValue());
-		assertEquals("Male", conversionValues.next().getObjectValue());
-		assertFalse(conversionValues.hasNext());
-		assertSourceContains("@ObjectTypeConverter(conversionValues = {@ConversionValue(objectValue = \"FOO\"), @ConversionValue(dataValue = \"F\", objectValue = \"Female\"), @ConversionValue(dataValue = \"M\", objectValue = \"Male\")})", cu);
-		
-		converter.removeConversionValue(1);
-		conversionValues = converter.conversionValues();
-		assertEquals("FOO", conversionValues.next().getObjectValue());
-		assertEquals("Male", conversionValues.next().getObjectValue());
-		assertFalse(conversionValues.hasNext());
-		assertSourceContains("@ObjectTypeConverter(conversionValues = {@ConversionValue(objectValue = \"FOO\"), @ConversionValue(dataValue = \"M\", objectValue = \"Male\")})", cu);
-
-		converter.removeConversionValue(0);
-		conversionValues = converter.conversionValues();
-		assertEquals("Male", conversionValues.next().getObjectValue());
-		assertFalse(conversionValues.hasNext());
-		assertSourceContains("@ObjectTypeConverter(conversionValues = @ConversionValue(dataValue = \"M\", objectValue = \"Male\"))", cu);
-
-		
-		converter.removeConversionValue(0);
-		assertSourceDoesNotContain("@conversionValues", cu);
-		assertSourceContains("@ObjectTypeConverter", cu);
-	}
-	
-	public void testMoveConversionValue() throws Exception {
-		ICompilationUnit cu = this.createTestObjectTypeConverterWithConversionValues();
-		JavaResourcePersistentType typeResource = buildJavaTypeResource(cu); 
-		JavaResourcePersistentAttribute attributeResource = typeResource.fields().next();
-		
-		ObjectTypeConverterAnnotation converter = (ObjectTypeConverterAnnotation) attributeResource.getSupportingAnnotation(EclipseLinkJPA.OBJECT_TYPE_CONVERTER);
-		converter.addConversionValue(0).setObjectValue("FOO");
-		
-		assertSourceContains("@ObjectTypeConverter(conversionValues = {@ConversionValue(objectValue = \"FOO\"), @ConversionValue(dataValue = \"F\", objectValue = \"Female\"), @ConversionValue(dataValue = \"M\", objectValue = \"Male\")})", cu);
-
-		converter.moveConversionValue(2, 0);
-		assertEquals("Female", converter.conversionValueAt(0).getObjectValue());
-		assertEquals("F", converter.conversionValueAt(0).getDataValue());
-		assertEquals("Male", converter.conversionValueAt(1).getObjectValue());
-		assertEquals("M", converter.conversionValueAt(1).getDataValue());
-		assertEquals("FOO", converter.conversionValueAt(2).getObjectValue());
-		assertEquals(null, converter.conversionValueAt(2).getDataValue());
-		assertEquals(3, converter.conversionValuesSize());
-		assertSourceContains("@ObjectTypeConverter(conversionValues = {@ConversionValue(dataValue = \"F\", objectValue = \"Female\"), @ConversionValue(dataValue = \"M\", objectValue = \"Male\"), @ConversionValue(objectValue = \"FOO\")})", cu);
-	}
-	
-	public void testMoveConversionValue2() throws Exception {
-		ICompilationUnit cu = this.createTestObjectTypeConverterWithConversionValues();
-		JavaResourcePersistentType typeResource = buildJavaTypeResource(cu);
-		JavaResourcePersistentAttribute attributeResource = typeResource.fields().next();
-		
-		ObjectTypeConverterAnnotation converter = (ObjectTypeConverterAnnotation) attributeResource.getSupportingAnnotation(EclipseLinkJPA.OBJECT_TYPE_CONVERTER);
-		converter.addConversionValue(0).setObjectValue("FOO");
-		
-		assertSourceContains("@ObjectTypeConverter(conversionValues = {@ConversionValue(objectValue = \"FOO\"), @ConversionValue(dataValue = \"F\", objectValue = \"Female\"), @ConversionValue(dataValue = \"M\", objectValue = \"Male\")})", cu);
-
-		converter.moveConversionValue(0, 2);
-		assertEquals("Male", converter.conversionValueAt(0).getObjectValue());
-		assertEquals("M", converter.conversionValueAt(0).getDataValue());
-		assertEquals("FOO", converter.conversionValueAt(1).getObjectValue());
-		assertEquals(null, converter.conversionValueAt(1).getDataValue());
-		assertEquals("Female", converter.conversionValueAt(2).getObjectValue());
-		assertEquals("F", converter.conversionValueAt(2).getDataValue());
-		assertEquals(3, converter.conversionValuesSize());
-		assertSourceContains("@ObjectTypeConverter(conversionValues = {@ConversionValue(dataValue = \"M\", objectValue = \"Male\"), @ConversionValue(objectValue = \"FOO\"), @ConversionValue(dataValue = \"F\", objectValue = \"Female\")})", cu);
-	}
-}
diff --git a/jpa/tests/org.eclipse.jpt.eclipselink.core.tests/src/org/eclipse/jpt/eclipselink/core/tests/internal/resource/java/PrivateOwnedTests.java b/jpa/tests/org.eclipse.jpt.eclipselink.core.tests/src/org/eclipse/jpt/eclipselink/core/tests/internal/resource/java/PrivateOwnedTests.java
deleted file mode 100644
index 15f9ec6..0000000
--- a/jpa/tests/org.eclipse.jpt.eclipselink.core.tests/src/org/eclipse/jpt/eclipselink/core/tests/internal/resource/java/PrivateOwnedTests.java
+++ /dev/null
@@ -1,49 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.eclipselink.core.tests.internal.resource.java;
-
-import java.util.Iterator;
-import org.eclipse.jdt.core.ICompilationUnit;
-import org.eclipse.jpt.core.resource.java.JavaResourcePersistentAttribute;
-import org.eclipse.jpt.core.resource.java.JavaResourcePersistentType;
-import org.eclipse.jpt.eclipselink.core.resource.java.EclipseLinkJPA;
-import org.eclipse.jpt.eclipselink.core.resource.java.PrivateOwnedAnnotation;
-import org.eclipse.jpt.utility.internal.iterators.ArrayIterator;
-
-@SuppressWarnings("nls")
-public class PrivateOwnedTests extends EclipseLinkJavaResourceModelTestCase {
-
-	public PrivateOwnedTests(String name) {
-		super(name);
-	}
-
-	private ICompilationUnit createTestPrivateOwned() throws Exception {
-		return this.createTestType(new DefaultAnnotationWriter() {
-			@Override
-			public Iterator<String> imports() {
-				return new ArrayIterator<String>(EclipseLinkJPA.PRIVATE_OWNED);
-			}
-			@Override
-			public void appendIdFieldAnnotationTo(StringBuilder sb) {
-				sb.append("@PrivateOwned");
-			}
-		});
-	}
-	
-	public void testPrivateOwned() throws Exception {
-		ICompilationUnit cu = this.createTestPrivateOwned();
-		JavaResourcePersistentType typeResource = buildJavaTypeResource(cu); 
-		JavaResourcePersistentAttribute attributeResource = typeResource.fields().next();
-		
-		PrivateOwnedAnnotation privateOwned = (PrivateOwnedAnnotation) attributeResource.getSupportingAnnotation(EclipseLinkJPA.PRIVATE_OWNED);
-		assertNotNull(privateOwned);
-	}
-
-}
diff --git a/jpa/tests/org.eclipse.jpt.eclipselink.core.tests/src/org/eclipse/jpt/eclipselink/core/tests/internal/resource/java/ReadOnlyTests.java b/jpa/tests/org.eclipse.jpt.eclipselink.core.tests/src/org/eclipse/jpt/eclipselink/core/tests/internal/resource/java/ReadOnlyTests.java
deleted file mode 100644
index 7aca02e..0000000
--- a/jpa/tests/org.eclipse.jpt.eclipselink.core.tests/src/org/eclipse/jpt/eclipselink/core/tests/internal/resource/java/ReadOnlyTests.java
+++ /dev/null
@@ -1,47 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.eclipselink.core.tests.internal.resource.java;
-
-import java.util.Iterator;
-import org.eclipse.jdt.core.ICompilationUnit;
-import org.eclipse.jpt.core.resource.java.JavaResourcePersistentType;
-import org.eclipse.jpt.eclipselink.core.resource.java.EclipseLinkJPA;
-import org.eclipse.jpt.eclipselink.core.resource.java.ReadOnlyAnnotation;
-import org.eclipse.jpt.utility.internal.iterators.ArrayIterator;
-
-@SuppressWarnings("nls")
-public class ReadOnlyTests extends EclipseLinkJavaResourceModelTestCase {
-
-	public ReadOnlyTests(String name) {
-		super(name);
-	}
-	
-	private ICompilationUnit createTestReadOnly() throws Exception {
-		return this.createTestType(new DefaultAnnotationWriter() {
-			@Override
-			public Iterator<String> imports() {
-				return new ArrayIterator<String>(EclipseLinkJPA.READ_ONLY);
-			}
-			@Override
-			public void appendTypeAnnotationTo(StringBuilder sb) {
-				sb.append("@ReadOnly");
-			}
-		});
-	}
-	
-	public void testReadOnly() throws Exception {
-		ICompilationUnit cu = this.createTestReadOnly();
-		JavaResourcePersistentType typeResource = buildJavaTypeResource(cu); 
-		
-		ReadOnlyAnnotation readOnly = (ReadOnlyAnnotation) typeResource.getSupportingAnnotation(EclipseLinkJPA.READ_ONLY);
-		assertNotNull(readOnly);
-	}
-
-}
diff --git a/jpa/tests/org.eclipse.jpt.eclipselink.core.tests/src/org/eclipse/jpt/eclipselink/core/tests/internal/resource/java/ReadTransformerAnnotationTests.java b/jpa/tests/org.eclipse.jpt.eclipselink.core.tests/src/org/eclipse/jpt/eclipselink/core/tests/internal/resource/java/ReadTransformerAnnotationTests.java
deleted file mode 100644
index 4e04513..0000000
--- a/jpa/tests/org.eclipse.jpt.eclipselink.core.tests/src/org/eclipse/jpt/eclipselink/core/tests/internal/resource/java/ReadTransformerAnnotationTests.java
+++ /dev/null
@@ -1,155 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.eclipselink.core.tests.internal.resource.java;
-
-import java.util.Iterator;
-import org.eclipse.jdt.core.ICompilationUnit;
-import org.eclipse.jpt.core.resource.java.JavaResourcePersistentAttribute;
-import org.eclipse.jpt.core.resource.java.JavaResourcePersistentType;
-import org.eclipse.jpt.eclipselink.core.resource.java.EclipseLinkJPA;
-import org.eclipse.jpt.eclipselink.core.resource.java.ReadTransformerAnnotation;
-import org.eclipse.jpt.utility.internal.iterators.ArrayIterator;
-
-@SuppressWarnings("nls")
-public class ReadTransformerAnnotationTests extends EclipseLinkJavaResourceModelTestCase {
-	
-	public ReadTransformerAnnotationTests(String name) {
-		super(name);
-	}
-
-	private ICompilationUnit createTestReadTransformer() throws Exception {
-		return this.createTestType(new DefaultAnnotationWriter() {
-			@Override
-			public Iterator<String> imports() {
-				return new ArrayIterator<String>(EclipseLinkJPA.READ_TRANSFORMER);
-			}
-			@Override
-			public void appendIdFieldAnnotationTo(StringBuilder sb) {
-				sb.append("@ReadTransformer");
-			}
-		});
-	}
-	
-	private ICompilationUnit createTestReadTransformerWithTransformerClass() throws Exception {
-		return this.createTestType(new DefaultAnnotationWriter() {
-			@Override
-			public Iterator<String> imports() {
-				return new ArrayIterator<String>(EclipseLinkJPA.READ_TRANSFORMER);
-			}
-			@Override
-			public void appendIdFieldAnnotationTo(StringBuilder sb) {
-				sb.append("@ReadTransformer(transformerClass=Foo.class)");
-			}
-		});
-	}
-	
-	private ICompilationUnit createTestReadTransformerWithMethod() throws Exception {
-		return this.createTestType(new DefaultAnnotationWriter() {
-			@Override
-			public Iterator<String> imports() {
-				return new ArrayIterator<String>(EclipseLinkJPA.READ_TRANSFORMER);
-			}
-			@Override
-			public void appendIdFieldAnnotationTo(StringBuilder sb) {
-				sb.append("@ReadTransformer(method=\"transformerMethod\")");
-			}
-		});
-	}
-
-	public void testReadTransformerAnnotation() throws Exception {
-		ICompilationUnit cu = this.createTestReadTransformer();
-		JavaResourcePersistentType typeResource = buildJavaTypeResource(cu); 
-		JavaResourcePersistentAttribute attributeResource = typeResource.fields().next();
-		
-		assertNotNull(attributeResource.getSupportingAnnotation(EclipseLinkJPA.READ_TRANSFORMER));
-		
-		attributeResource.removeSupportingAnnotation(EclipseLinkJPA.READ_TRANSFORMER)	;
-		assertNull(attributeResource.getSupportingAnnotation(EclipseLinkJPA.READ_TRANSFORMER));
-		
-		attributeResource.addSupportingAnnotation(EclipseLinkJPA.READ_TRANSFORMER);
-		assertNotNull(attributeResource.getSupportingAnnotation(EclipseLinkJPA.READ_TRANSFORMER));
-	}
-
-	public void testGetTransformerClass() throws Exception {
-		ICompilationUnit cu = this.createTestReadTransformerWithTransformerClass();
-		JavaResourcePersistentType typeResource = buildJavaTypeResource(cu);
-		JavaResourcePersistentAttribute attributeResource = typeResource.fields().next();
-		
-		ReadTransformerAnnotation readTransformer = (ReadTransformerAnnotation) attributeResource.getSupportingAnnotation(EclipseLinkJPA.READ_TRANSFORMER);
-		assertEquals("Foo", readTransformer.getTransformerClass());
-	}
-
-	public void testSetTransformerClass() throws Exception {
-		ICompilationUnit cu = this.createTestReadTransformerWithTransformerClass();
-		JavaResourcePersistentType typeResource = buildJavaTypeResource(cu);
-		JavaResourcePersistentAttribute attributeResource = typeResource.fields().next();
-		
-		ReadTransformerAnnotation readTransformer = (ReadTransformerAnnotation) attributeResource.getSupportingAnnotation(EclipseLinkJPA.READ_TRANSFORMER);
-		assertEquals("Foo", readTransformer.getTransformerClass());
-		
-		readTransformer.setTransformerClass("Bar");
-		assertEquals("Bar", readTransformer.getTransformerClass());
-		
-		assertSourceContains("@ReadTransformer(transformerClass=Bar.class)", cu);
-	}
-	
-	public void testSetTransformerClassNull() throws Exception {
-		ICompilationUnit cu = this.createTestReadTransformerWithTransformerClass();
-		JavaResourcePersistentType typeResource = buildJavaTypeResource(cu);
-		JavaResourcePersistentAttribute attributeResource = typeResource.fields().next();
-		
-		ReadTransformerAnnotation readTransformer = (ReadTransformerAnnotation) attributeResource.getSupportingAnnotation(EclipseLinkJPA.READ_TRANSFORMER);
-		assertEquals("Foo", readTransformer.getTransformerClass());
-		
-		readTransformer.setTransformerClass(null);
-		assertNull(readTransformer.getTransformerClass());
-		
-		assertSourceContains("@ReadTransformer", cu);
-		assertSourceDoesNotContain("transformerClass", cu);
-	}
-	
-	public void testGetMethod() throws Exception {
-		ICompilationUnit cu = this.createTestReadTransformerWithMethod();
-		JavaResourcePersistentType typeResource = buildJavaTypeResource(cu);
-		JavaResourcePersistentAttribute attributeResource = typeResource.fields().next();
-		
-		ReadTransformerAnnotation readTransformer = (ReadTransformerAnnotation) attributeResource.getSupportingAnnotation(EclipseLinkJPA.READ_TRANSFORMER);
-		assertEquals("transformerMethod", readTransformer.getMethod());
-	}
-
-	public void testSetMethod() throws Exception {
-		ICompilationUnit cu = this.createTestReadTransformerWithMethod();
-		JavaResourcePersistentType typeResource = buildJavaTypeResource(cu);
-		JavaResourcePersistentAttribute attributeResource = typeResource.fields().next();
-		
-		ReadTransformerAnnotation readTransformer = (ReadTransformerAnnotation) attributeResource.getSupportingAnnotation(EclipseLinkJPA.READ_TRANSFORMER);
-		assertEquals("transformerMethod", readTransformer.getMethod());
-		
-		readTransformer.setMethod("foo");
-		assertEquals("foo", readTransformer.getMethod());
-		
-		assertSourceContains("@ReadTransformer(method=\"foo\")", cu);
-	}
-	
-	public void testSetMethodNull() throws Exception {
-		ICompilationUnit cu = this.createTestReadTransformerWithMethod();
-		JavaResourcePersistentType typeResource = buildJavaTypeResource(cu);
-		JavaResourcePersistentAttribute attributeResource = typeResource.fields().next();
-		
-		ReadTransformerAnnotation readTransformer = (ReadTransformerAnnotation) attributeResource.getSupportingAnnotation(EclipseLinkJPA.READ_TRANSFORMER);
-		assertEquals("transformerMethod", readTransformer.getMethod());
-		
-		readTransformer.setMethod(null);
-		assertNull(readTransformer.getMethod());
-		
-		assertSourceContains("@ReadTransformer", cu);
-		assertSourceDoesNotContain("method", cu);
-	}
-}
diff --git a/jpa/tests/org.eclipse.jpt.eclipselink.core.tests/src/org/eclipse/jpt/eclipselink/core/tests/internal/resource/java/StructConverterAnnotationTests.java b/jpa/tests/org.eclipse.jpt.eclipselink.core.tests/src/org/eclipse/jpt/eclipselink/core/tests/internal/resource/java/StructConverterAnnotationTests.java
deleted file mode 100644
index 7cdb2ee..0000000
--- a/jpa/tests/org.eclipse.jpt.eclipselink.core.tests/src/org/eclipse/jpt/eclipselink/core/tests/internal/resource/java/StructConverterAnnotationTests.java
+++ /dev/null
@@ -1,155 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.eclipselink.core.tests.internal.resource.java;
-
-import java.util.Iterator;
-import org.eclipse.jdt.core.ICompilationUnit;
-import org.eclipse.jpt.core.resource.java.JavaResourcePersistentAttribute;
-import org.eclipse.jpt.core.resource.java.JavaResourcePersistentType;
-import org.eclipse.jpt.eclipselink.core.resource.java.EclipseLinkJPA;
-import org.eclipse.jpt.eclipselink.core.resource.java.StructConverterAnnotation;
-import org.eclipse.jpt.utility.internal.iterators.ArrayIterator;
-
-@SuppressWarnings("nls")
-public class StructConverterAnnotationTests extends EclipseLinkJavaResourceModelTestCase {
-	
-	public StructConverterAnnotationTests(String name) {
-		super(name);
-	}
-
-	private ICompilationUnit createTestStructConverter() throws Exception {
-		return this.createTestType(new DefaultAnnotationWriter() {
-			@Override
-			public Iterator<String> imports() {
-				return new ArrayIterator<String>(EclipseLinkJPA.STRUCT_CONVERTER);
-			}
-			@Override
-			public void appendIdFieldAnnotationTo(StringBuilder sb) {
-				sb.append("@StructConverter");
-			}
-		});
-	}
-	
-	private ICompilationUnit createTestStructConverterWithConverter() throws Exception {
-		return this.createTestType(new DefaultAnnotationWriter() {
-			@Override
-			public Iterator<String> imports() {
-				return new ArrayIterator<String>(EclipseLinkJPA.STRUCT_CONVERTER);
-			}
-			@Override
-			public void appendIdFieldAnnotationTo(StringBuilder sb) {
-				sb.append("@StructConverter(converter=\"Foo\")");
-			}
-		});
-	}
-	
-	private ICompilationUnit createTestStructConverterWithName() throws Exception {
-		return this.createTestType(new DefaultAnnotationWriter() {
-			@Override
-			public Iterator<String> imports() {
-				return new ArrayIterator<String>(EclipseLinkJPA.STRUCT_CONVERTER);
-			}
-			@Override
-			public void appendIdFieldAnnotationTo(StringBuilder sb) {
-				sb.append("@StructConverter(name=\"bar\")");
-			}
-		});
-	}
-
-	public void testStructConverterAnnotation() throws Exception {
-		ICompilationUnit cu = this.createTestStructConverter();
-		JavaResourcePersistentType typeResource = buildJavaTypeResource(cu); 
-		JavaResourcePersistentAttribute attributeResource = typeResource.fields().next();
-		
-		assertNotNull(attributeResource.getSupportingAnnotation(EclipseLinkJPA.STRUCT_CONVERTER));
-		
-		attributeResource.removeSupportingAnnotation(EclipseLinkJPA.STRUCT_CONVERTER);
-		assertNull(attributeResource.getSupportingAnnotation(EclipseLinkJPA.STRUCT_CONVERTER));
-		
-		attributeResource.addSupportingAnnotation(EclipseLinkJPA.STRUCT_CONVERTER);
-		assertNotNull(attributeResource.getSupportingAnnotation(EclipseLinkJPA.STRUCT_CONVERTER));
-	}
-
-	public void testGetConverter() throws Exception {
-		ICompilationUnit cu = this.createTestStructConverterWithConverter();
-		JavaResourcePersistentType typeResource = buildJavaTypeResource(cu);
-		JavaResourcePersistentAttribute attributeResource = typeResource.fields().next();
-		
-		StructConverterAnnotation converter = (StructConverterAnnotation) attributeResource.getSupportingAnnotation(EclipseLinkJPA.STRUCT_CONVERTER);
-		assertEquals("Foo", converter.getConverter());
-	}
-
-	public void testSetConverter() throws Exception {
-		ICompilationUnit cu = this.createTestStructConverterWithConverter();
-		JavaResourcePersistentType typeResource = buildJavaTypeResource(cu);
-		JavaResourcePersistentAttribute attributeResource = typeResource.fields().next();
-		
-		StructConverterAnnotation converter = (StructConverterAnnotation) attributeResource.getSupportingAnnotation(EclipseLinkJPA.STRUCT_CONVERTER);
-		assertEquals("Foo", converter.getConverter());
-		
-		converter.setConverter("Bar");
-		assertEquals("Bar", converter.getConverter());
-		
-		assertSourceContains("@StructConverter(converter=\"Bar\")", cu);
-	}
-	
-	public void testSetConverterNull() throws Exception {
-		ICompilationUnit cu = this.createTestStructConverterWithConverter();
-		JavaResourcePersistentType typeResource = buildJavaTypeResource(cu);
-		JavaResourcePersistentAttribute attributeResource = typeResource.fields().next();
-		
-		StructConverterAnnotation converter = (StructConverterAnnotation) attributeResource.getSupportingAnnotation(EclipseLinkJPA.STRUCT_CONVERTER);
-		assertEquals("Foo", converter.getConverter());
-		
-		converter.setConverter(null);
-		assertNull(converter.getConverter());
-		
-		assertSourceContains("@StructConverter", cu);
-		assertSourceDoesNotContain("converter", cu);
-	}
-	
-	public void testGetName() throws Exception {
-		ICompilationUnit cu = this.createTestStructConverterWithName();
-		JavaResourcePersistentType typeResource = buildJavaTypeResource(cu);
-		JavaResourcePersistentAttribute attributeResource = typeResource.fields().next();
-		
-		StructConverterAnnotation converter = (StructConverterAnnotation) attributeResource.getSupportingAnnotation(EclipseLinkJPA.STRUCT_CONVERTER);
-		assertEquals("bar", converter.getName());
-	}
-
-	public void testSetName() throws Exception {
-		ICompilationUnit cu = this.createTestStructConverterWithName();
-		JavaResourcePersistentType typeResource = buildJavaTypeResource(cu);
-		JavaResourcePersistentAttribute attributeResource = typeResource.fields().next();
-		
-		StructConverterAnnotation converter = (StructConverterAnnotation) attributeResource.getSupportingAnnotation(EclipseLinkJPA.STRUCT_CONVERTER);
-		assertEquals("bar", converter.getName());
-		
-		converter.setName("foo");
-		assertEquals("foo", converter.getName());
-		
-		assertSourceContains("@StructConverter(name=\"foo\")", cu);
-	}
-	
-	public void testSetNameNull() throws Exception {
-		ICompilationUnit cu = this.createTestStructConverterWithName();
-		JavaResourcePersistentType typeResource = buildJavaTypeResource(cu);
-		JavaResourcePersistentAttribute attributeResource = typeResource.fields().next();
-		
-		StructConverterAnnotation converter = (StructConverterAnnotation) attributeResource.getSupportingAnnotation(EclipseLinkJPA.STRUCT_CONVERTER);
-		assertEquals("bar", converter.getName());
-		
-		converter.setName(null);
-		assertNull(converter.getName());
-		
-		assertSourceContains("@StructConverter", cu);
-		assertSourceDoesNotContain("name=", cu);
-	}
-}
diff --git a/jpa/tests/org.eclipse.jpt.eclipselink.core.tests/src/org/eclipse/jpt/eclipselink/core/tests/internal/resource/java/TimeOfDayTests.java b/jpa/tests/org.eclipse.jpt.eclipselink.core.tests/src/org/eclipse/jpt/eclipselink/core/tests/internal/resource/java/TimeOfDayTests.java
deleted file mode 100644
index 1c5697d..0000000
--- a/jpa/tests/org.eclipse.jpt.eclipselink.core.tests/src/org/eclipse/jpt/eclipselink/core/tests/internal/resource/java/TimeOfDayTests.java
+++ /dev/null
@@ -1,220 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2008 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.eclipselink.core.tests.internal.resource.java;
-
-import java.util.Iterator;
-import org.eclipse.jdt.core.ICompilationUnit;
-import org.eclipse.jpt.core.resource.java.JavaResourcePersistentType;
-import org.eclipse.jpt.eclipselink.core.resource.java.CacheAnnotation;
-import org.eclipse.jpt.eclipselink.core.resource.java.EclipseLinkJPA;
-import org.eclipse.jpt.eclipselink.core.resource.java.TimeOfDayAnnotation;
-import org.eclipse.jpt.utility.internal.iterators.ArrayIterator;
-
-@SuppressWarnings("nls")
-public class TimeOfDayTests extends EclipseLinkJavaResourceModelTestCase {
-
-	public TimeOfDayTests(String name) {
-		super(name);
-	}
-	
-	private ICompilationUnit createTestTimeOfDay() throws Exception {
-		return this.createTestType(new DefaultAnnotationWriter() {
-			@Override
-			public Iterator<String> imports() {
-				return new ArrayIterator<String>(EclipseLinkJPA.CACHE, EclipseLinkJPA.TIME_OF_DAY);
-			}
-			@Override
-			public void appendTypeAnnotationTo(StringBuilder sb) {
-				sb.append("@Cache(expiryTimeOfDay = @TimeOfDay)");
-			}
-		});
-	}
-
-	private ICompilationUnit createTestTimeOfDayWithHour() throws Exception {
-		return this.createTestType(new DefaultAnnotationWriter() {
-			@Override
-			public Iterator<String> imports() {
-				return new ArrayIterator<String>(EclipseLinkJPA.CACHE, EclipseLinkJPA.TIME_OF_DAY);
-			}
-			@Override
-			public void appendTypeAnnotationTo(StringBuilder sb) {
-				sb.append("@Cache(expiryTimeOfDay = @TimeOfDay(hour=5))");
-			}
-		});
-	}
-	
-	private ICompilationUnit createTestTimeOfDayWithMinute() throws Exception {
-		return this.createTestType(new DefaultAnnotationWriter() {
-			@Override
-			public Iterator<String> imports() {
-				return new ArrayIterator<String>(EclipseLinkJPA.CACHE, EclipseLinkJPA.TIME_OF_DAY);
-			}
-			@Override
-			public void appendTypeAnnotationTo(StringBuilder sb) {
-				sb.append("@Cache(expiryTimeOfDay = @TimeOfDay(minute=5))");
-			}
-		});
-	}
-	
-	private ICompilationUnit createTestTimeOfDayWithSecond() throws Exception {
-		return this.createTestType(new DefaultAnnotationWriter() {
-			@Override
-			public Iterator<String> imports() {
-				return new ArrayIterator<String>(EclipseLinkJPA.CACHE, EclipseLinkJPA.TIME_OF_DAY);
-			}
-			@Override
-			public void appendTypeAnnotationTo(StringBuilder sb) {
-				sb.append("@Cache(expiryTimeOfDay = @TimeOfDay(second=5))");
-			}
-		});
-	}
-	
-	private ICompilationUnit createTestTimeOfDayWithMillisecond() throws Exception {
-		return this.createTestType(new DefaultAnnotationWriter() {
-			@Override
-			public Iterator<String> imports() {
-				return new ArrayIterator<String>(EclipseLinkJPA.CACHE, EclipseLinkJPA.TIME_OF_DAY);
-			}
-			@Override
-			public void appendTypeAnnotationTo(StringBuilder sb) {
-				sb.append("@Cache(expiryTimeOfDay = @TimeOfDay(millisecond=5))");
-			}
-		});
-	}
-	
-	public void testExpiryTimeOfDay() throws Exception {
-		ICompilationUnit cu = this.createTestTimeOfDay();
-		JavaResourcePersistentType typeResource = buildJavaTypeResource(cu); 
-		
-		CacheAnnotation cache = (CacheAnnotation) typeResource.getSupportingAnnotation(EclipseLinkJPA.CACHE);
-		
-		TimeOfDayAnnotation timeOfDay = cache.getExpiryTimeOfDay();
-		
-		assertNotNull(timeOfDay);
-	}
-	
-	public void testGetHour() throws Exception {
-		ICompilationUnit cu = this.createTestTimeOfDayWithHour();
-		JavaResourcePersistentType typeResource = buildJavaTypeResource(cu);
-		
-		CacheAnnotation cache = (CacheAnnotation) typeResource.getSupportingAnnotation(EclipseLinkJPA.CACHE);
-		TimeOfDayAnnotation timeOfDay = cache.getExpiryTimeOfDay();
-		assertEquals(Integer.valueOf(5), timeOfDay.getHour());
-	}
-
-	public void testSetHour() throws Exception {
-		ICompilationUnit cu = this.createTestTimeOfDayWithHour();
-		JavaResourcePersistentType typeResource = buildJavaTypeResource(cu);
-		
-		CacheAnnotation cache = (CacheAnnotation) typeResource.getSupportingAnnotation(EclipseLinkJPA.CACHE);
-		TimeOfDayAnnotation timeOfDay = cache.getExpiryTimeOfDay();
-		assertEquals(Integer.valueOf(5), timeOfDay.getHour());
-		
-		timeOfDay.setHour(Integer.valueOf(80));
-		assertEquals(Integer.valueOf(80), timeOfDay.getHour());
-		
-		assertSourceContains("@TimeOfDay(hour=80)", cu);
-		
-		timeOfDay.setHour(null);
-		assertNull(timeOfDay.getHour());
-		
-		assertSourceDoesNotContain("(hour=80)", cu);
-		assertSourceContains("@TimeOfDay", cu);
-	}
-	
-	public void testGetMinute() throws Exception {
-		ICompilationUnit cu = this.createTestTimeOfDayWithMinute();
-		JavaResourcePersistentType typeResource = buildJavaTypeResource(cu);
-		
-		CacheAnnotation cache = (CacheAnnotation) typeResource.getSupportingAnnotation(EclipseLinkJPA.CACHE);
-		TimeOfDayAnnotation timeOfDay = cache.getExpiryTimeOfDay();
-		assertEquals(Integer.valueOf(5), timeOfDay.getMinute());
-	}
-
-	public void testSetMinute() throws Exception {
-		ICompilationUnit cu = this.createTestTimeOfDayWithMinute();
-		JavaResourcePersistentType typeResource = buildJavaTypeResource(cu);
-		
-		CacheAnnotation cache = (CacheAnnotation) typeResource.getSupportingAnnotation(EclipseLinkJPA.CACHE);
-		TimeOfDayAnnotation timeOfDay = cache.getExpiryTimeOfDay();
-		assertEquals(Integer.valueOf(5), timeOfDay.getMinute());
-		
-		timeOfDay.setMinute(Integer.valueOf(80));
-		assertEquals(Integer.valueOf(80), timeOfDay.getMinute());
-		
-		assertSourceContains("@TimeOfDay(minute=80)", cu);
-		
-		timeOfDay.setMinute(null);
-		assertNull(timeOfDay.getMinute());
-		
-		assertSourceDoesNotContain("(minute=80)", cu);
-		assertSourceContains("@TimeOfDay", cu);
-	}
-
-	public void testGetSecond() throws Exception {
-		ICompilationUnit cu = this.createTestTimeOfDayWithSecond();
-		JavaResourcePersistentType typeResource = buildJavaTypeResource(cu);
-		
-		CacheAnnotation cache = (CacheAnnotation) typeResource.getSupportingAnnotation(EclipseLinkJPA.CACHE);
-		TimeOfDayAnnotation timeOfDay = cache.getExpiryTimeOfDay();
-		assertEquals(Integer.valueOf(5), timeOfDay.getSecond());
-	}
-
-	public void testSetSecond() throws Exception {
-		ICompilationUnit cu = this.createTestTimeOfDayWithSecond();
-		JavaResourcePersistentType typeResource = buildJavaTypeResource(cu);
-		
-		CacheAnnotation cache = (CacheAnnotation) typeResource.getSupportingAnnotation(EclipseLinkJPA.CACHE);
-		TimeOfDayAnnotation timeOfDay = cache.getExpiryTimeOfDay();
-		assertEquals(Integer.valueOf(5), timeOfDay.getSecond());
-		
-		timeOfDay.setSecond(Integer.valueOf(80));
-		assertEquals(Integer.valueOf(80), timeOfDay.getSecond());
-		
-		assertSourceContains("@TimeOfDay(second=80)", cu);
-		
-		timeOfDay.setSecond(null);
-		assertNull(timeOfDay.getSecond());
-		
-		assertSourceDoesNotContain("(second=80)", cu);
-		assertSourceContains("@TimeOfDay", cu);
-	}
-	
-	public void testGetMillisecond() throws Exception {
-		ICompilationUnit cu = this.createTestTimeOfDayWithMillisecond();
-		JavaResourcePersistentType typeResource = buildJavaTypeResource(cu);
-		
-		CacheAnnotation cache = (CacheAnnotation) typeResource.getSupportingAnnotation(EclipseLinkJPA.CACHE);
-		TimeOfDayAnnotation timeOfDay = cache.getExpiryTimeOfDay();
-		assertEquals(Integer.valueOf(5), timeOfDay.getMillisecond());
-	}
-
-	public void testSetMillisecond() throws Exception {
-		ICompilationUnit cu = this.createTestTimeOfDayWithMillisecond();
-		JavaResourcePersistentType typeResource = buildJavaTypeResource(cu);
-		
-		CacheAnnotation cache = (CacheAnnotation) typeResource.getSupportingAnnotation(EclipseLinkJPA.CACHE);
-		TimeOfDayAnnotation timeOfDay = cache.getExpiryTimeOfDay();
-		assertEquals(Integer.valueOf(5), timeOfDay.getMillisecond());
-		
-		timeOfDay.setMillisecond(Integer.valueOf(80));
-		assertEquals(Integer.valueOf(80), timeOfDay.getMillisecond());
-		
-		assertSourceContains("@TimeOfDay(millisecond=80)", cu);
-		
-		timeOfDay.setMillisecond(null);
-		assertNull(timeOfDay.getMillisecond());
-		
-		assertSourceDoesNotContain("(millisecond=80)", cu);
-		assertSourceContains("@TimeOfDay", cu);
-	}
-
-
-}
diff --git a/jpa/tests/org.eclipse.jpt.eclipselink.core.tests/src/org/eclipse/jpt/eclipselink/core/tests/internal/resource/java/TransformationAnnotationTests.java b/jpa/tests/org.eclipse.jpt.eclipselink.core.tests/src/org/eclipse/jpt/eclipselink/core/tests/internal/resource/java/TransformationAnnotationTests.java
deleted file mode 100644
index 9f19dd3..0000000
--- a/jpa/tests/org.eclipse.jpt.eclipselink.core.tests/src/org/eclipse/jpt/eclipselink/core/tests/internal/resource/java/TransformationAnnotationTests.java
+++ /dev/null
@@ -1,157 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008, 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.eclipselink.core.tests.internal.resource.java;
-
-import java.util.Iterator;
-import org.eclipse.jdt.core.ICompilationUnit;
-import org.eclipse.jpt.core.resource.java.FetchType;
-import org.eclipse.jpt.core.resource.java.JPA;
-import org.eclipse.jpt.core.resource.java.JavaResourcePersistentAttribute;
-import org.eclipse.jpt.core.resource.java.JavaResourcePersistentType;
-import org.eclipse.jpt.eclipselink.core.resource.java.EclipseLinkJPA;
-import org.eclipse.jpt.eclipselink.core.resource.java.TransformationAnnotation;
-import org.eclipse.jpt.utility.internal.iterators.ArrayIterator;
-
-@SuppressWarnings("nls")
-public class TransformationAnnotationTests extends EclipseLinkJavaResourceModelTestCase {
-	
-	public TransformationAnnotationTests(String name) {
-		super(name);
-	}
-
-	private ICompilationUnit createTestTransformation() throws Exception {
-		return this.createTestType(new DefaultAnnotationWriter() {
-			@Override
-			public Iterator<String> imports() {
-				return new ArrayIterator<String>(EclipseLinkJPA.TRANSFORMATION);
-			}
-			@Override
-			public void appendIdFieldAnnotationTo(StringBuilder sb) {
-				sb.append("@Transformation");
-			}
-		});
-	}
-	
-	private ICompilationUnit createTestTransformationWithOptional() throws Exception {
-		return this.createTestType(new DefaultAnnotationWriter() {
-			@Override
-			public Iterator<String> imports() {
-				return new ArrayIterator<String>(EclipseLinkJPA.TRANSFORMATION);
-			}
-			@Override
-			public void appendIdFieldAnnotationTo(StringBuilder sb) {
-				sb.append("@Transformation(optional = true)");
-			}
-		});
-	}
-	
-	private ICompilationUnit createTestTransformationWithFetch() throws Exception {
-		return this.createTestType(new DefaultAnnotationWriter() {
-			@Override
-			public Iterator<String> imports() {
-				return new ArrayIterator<String>(EclipseLinkJPA.TRANSFORMATION, JPA.FETCH_TYPE);
-			}
-			@Override
-			public void appendIdFieldAnnotationTo(StringBuilder sb) {
-				sb.append("@Transformation(fetch = FetchType.EAGER)");
-			}
-		});
-	}
-
-	public void testTransformationAnnotation() throws Exception {
-		ICompilationUnit cu = this.createTestTransformation();
-		JavaResourcePersistentType typeResource = buildJavaTypeResource(cu); 
-		JavaResourcePersistentAttribute attributeResource = typeResource.fields().next();
-		
-		assertNotNull(attributeResource.getMappingAnnotation(EclipseLinkJPA.TRANSFORMATION));
-		
-		attributeResource.setMappingAnnotation(null);		
-		assertNull(attributeResource.getMappingAnnotation(EclipseLinkJPA.TRANSFORMATION));
-		
-		attributeResource.setMappingAnnotation(EclipseLinkJPA.TRANSFORMATION);
-		assertNotNull(attributeResource.getMappingAnnotation(EclipseLinkJPA.TRANSFORMATION));
-	}
-
-	public void testGetOptional() throws Exception {
-		ICompilationUnit cu = this.createTestTransformationWithOptional();
-		JavaResourcePersistentType typeResource = buildJavaTypeResource(cu);
-		JavaResourcePersistentAttribute attributeResource = typeResource.fields().next();
-		
-		TransformationAnnotation transformation = (TransformationAnnotation) attributeResource.getMappingAnnotation(EclipseLinkJPA.TRANSFORMATION);
-		assertEquals(Boolean.TRUE, transformation.getOptional());
-	}
-
-	public void testSetOptional() throws Exception {
-		ICompilationUnit cu = this.createTestTransformationWithOptional();
-		JavaResourcePersistentType typeResource = buildJavaTypeResource(cu);
-		JavaResourcePersistentAttribute attributeResource = typeResource.fields().next();
-		
-		TransformationAnnotation transformation = (TransformationAnnotation) attributeResource.getMappingAnnotation(EclipseLinkJPA.TRANSFORMATION);
-		assertEquals(Boolean.TRUE, transformation.getOptional());
-		
-		transformation.setOptional(Boolean.FALSE);
-		assertEquals(Boolean.FALSE, transformation.getOptional());
-		
-		assertSourceContains("@Transformation(optional = false)", cu);
-	}
-	
-	public void testSetOptionalNull() throws Exception {
-		ICompilationUnit cu = this.createTestTransformationWithOptional();
-		JavaResourcePersistentType typeResource = buildJavaTypeResource(cu);
-		JavaResourcePersistentAttribute attributeResource = typeResource.fields().next();
-		
-		TransformationAnnotation transformation = (TransformationAnnotation) attributeResource.getMappingAnnotation(EclipseLinkJPA.TRANSFORMATION);
-		assertEquals(Boolean.TRUE, transformation.getOptional());
-		
-		transformation.setOptional(null);
-		assertNull(transformation.getOptional());
-		
-		assertSourceContains("@Transformation", cu);
-		assertSourceDoesNotContain("optional", cu);
-	}
-	
-	public void testGetFetch() throws Exception {
-		ICompilationUnit cu = this.createTestTransformationWithFetch();
-		JavaResourcePersistentType typeResource = buildJavaTypeResource(cu);
-		JavaResourcePersistentAttribute attributeResource = typeResource.fields().next();
-		
-		TransformationAnnotation transformation = (TransformationAnnotation) attributeResource.getMappingAnnotation(EclipseLinkJPA.TRANSFORMATION);
-		assertEquals(FetchType.EAGER, transformation.getFetch());
-	}
-
-	public void testSetFetch() throws Exception {
-		ICompilationUnit cu = this.createTestTransformationWithFetch();
-		JavaResourcePersistentType typeResource = buildJavaTypeResource(cu);
-		JavaResourcePersistentAttribute attributeResource = typeResource.fields().next();
-		
-		TransformationAnnotation transformation = (TransformationAnnotation) attributeResource.getMappingAnnotation(EclipseLinkJPA.TRANSFORMATION);
-		assertEquals(FetchType.EAGER, transformation.getFetch());
-		
-		transformation.setFetch(FetchType.LAZY);
-		assertEquals(FetchType.LAZY, transformation.getFetch());
-		
-		assertSourceContains("@Transformation(fetch = LAZY)", cu);
-	}
-	
-	public void testSetFetchNull() throws Exception {
-		ICompilationUnit cu = this.createTestTransformationWithFetch();
-		JavaResourcePersistentType typeResource = buildJavaTypeResource(cu);
-		JavaResourcePersistentAttribute attributeResource = typeResource.fields().next();
-		
-		TransformationAnnotation transformation = (TransformationAnnotation) attributeResource.getMappingAnnotation(EclipseLinkJPA.TRANSFORMATION);
-		assertEquals(FetchType.EAGER, transformation.getFetch());
-		
-		transformation.setFetch(null);
-		assertNull(transformation.getFetch());
-		
-		assertSourceContains("@Transformation", cu);
-		assertSourceDoesNotContain("fetch", cu);
-	}
-}
diff --git a/jpa/tests/org.eclipse.jpt.eclipselink.core.tests/src/org/eclipse/jpt/eclipselink/core/tests/internal/resource/java/TypeConverterAnnotationTests.java b/jpa/tests/org.eclipse.jpt.eclipselink.core.tests/src/org/eclipse/jpt/eclipselink/core/tests/internal/resource/java/TypeConverterAnnotationTests.java
deleted file mode 100644
index 7bcff4f..0000000
--- a/jpa/tests/org.eclipse.jpt.eclipselink.core.tests/src/org/eclipse/jpt/eclipselink/core/tests/internal/resource/java/TypeConverterAnnotationTests.java
+++ /dev/null
@@ -1,214 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008, 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.eclipselink.core.tests.internal.resource.java;
-
-import java.util.Iterator;
-import org.eclipse.jdt.core.ICompilationUnit;
-import org.eclipse.jpt.core.resource.java.JavaResourcePersistentAttribute;
-import org.eclipse.jpt.core.resource.java.JavaResourcePersistentType;
-import org.eclipse.jpt.eclipselink.core.resource.java.EclipseLinkJPA;
-import org.eclipse.jpt.eclipselink.core.resource.java.TypeConverterAnnotation;
-import org.eclipse.jpt.utility.internal.iterators.ArrayIterator;
-
-@SuppressWarnings("nls")
-public class TypeConverterAnnotationTests extends EclipseLinkJavaResourceModelTestCase {
-	
-	public TypeConverterAnnotationTests(String name) {
-		super(name);
-	}
-
-	private ICompilationUnit createTestTypeConverter() throws Exception {
-		return this.createTestType(new DefaultAnnotationWriter() {
-			@Override
-			public Iterator<String> imports() {
-				return new ArrayIterator<String>(EclipseLinkJPA.TYPE_CONVERTER);
-			}
-			@Override
-			public void appendIdFieldAnnotationTo(StringBuilder sb) {
-				sb.append("@TypeConverter");
-			}
-		});
-	}
-	
-	private ICompilationUnit createTestTypeConverterWithDataType() throws Exception {
-		return this.createTestType(new DefaultAnnotationWriter() {
-			@Override
-			public Iterator<String> imports() {
-				return new ArrayIterator<String>(EclipseLinkJPA.TYPE_CONVERTER);
-			}
-			@Override
-			public void appendIdFieldAnnotationTo(StringBuilder sb) {
-				sb.append("@TypeConverter(dataType = Foo.class)");
-			}
-		});
-	}
-	
-	private ICompilationUnit createTestTypeConverterWithObjectType() throws Exception {
-		return this.createTestType(new DefaultAnnotationWriter() {
-			@Override
-			public Iterator<String> imports() {
-				return new ArrayIterator<String>(EclipseLinkJPA.TYPE_CONVERTER);
-			}
-			@Override
-			public void appendIdFieldAnnotationTo(StringBuilder sb) {
-				sb.append("@TypeConverter(objectType = Foo.class)");
-			}
-		});
-	}
-	
-	private ICompilationUnit createTestTypeConverterWithName() throws Exception {
-		return this.createTestType(new DefaultAnnotationWriter() {
-			@Override
-			public Iterator<String> imports() {
-				return new ArrayIterator<String>(EclipseLinkJPA.TYPE_CONVERTER);
-			}
-			@Override
-			public void appendIdFieldAnnotationTo(StringBuilder sb) {
-				sb.append("@TypeConverter(name = \"bar\")");
-			}
-		});
-	}
-
-	public void testTypeConverterAnnotation() throws Exception {
-		ICompilationUnit cu = this.createTestTypeConverter();
-		JavaResourcePersistentType typeResource = buildJavaTypeResource(cu); 
-		JavaResourcePersistentAttribute attributeResource = typeResource.fields().next();
-		
-		assertNotNull(attributeResource.getSupportingAnnotation(EclipseLinkJPA.TYPE_CONVERTER));
-		
-		attributeResource.removeSupportingAnnotation(EclipseLinkJPA.TYPE_CONVERTER);
-		assertNull(attributeResource.getSupportingAnnotation(EclipseLinkJPA.TYPE_CONVERTER));
-		
-		attributeResource.addSupportingAnnotation(EclipseLinkJPA.TYPE_CONVERTER);
-		assertNotNull(attributeResource.getSupportingAnnotation(EclipseLinkJPA.TYPE_CONVERTER));
-	}
-
-	public void testGetTypeDataType() throws Exception {
-		ICompilationUnit cu = this.createTestTypeConverterWithDataType();
-		JavaResourcePersistentType typeResource = buildJavaTypeResource(cu);
-		JavaResourcePersistentAttribute attributeResource = typeResource.fields().next();
-		
-		TypeConverterAnnotation converter = (TypeConverterAnnotation) attributeResource.getSupportingAnnotation(EclipseLinkJPA.TYPE_CONVERTER);
-		assertEquals("Foo", converter.getDataType());
-	}
-
-	public void testSetDataType() throws Exception {
-		ICompilationUnit cu = this.createTestTypeConverterWithDataType();
-		JavaResourcePersistentType typeResource = buildJavaTypeResource(cu);
-		JavaResourcePersistentAttribute attributeResource = typeResource.fields().next();
-		
-		TypeConverterAnnotation converter = (TypeConverterAnnotation) attributeResource.getSupportingAnnotation(EclipseLinkJPA.TYPE_CONVERTER);
-		assertEquals("Foo", converter.getDataType());
-		
-		converter.setDataType("Bar");
-		assertEquals("Bar", converter.getDataType());
-		
-		assertSourceContains("@TypeConverter(dataType = Bar.class)", cu);
-		
-		converter.setDataType("int");
-		assertEquals("int", converter.getDataType());
-		assertSourceContains("@TypeConverter(dataType = int.class)", cu);
-	}
-	
-	public void testSetDataTypeNull() throws Exception {
-		ICompilationUnit cu = this.createTestTypeConverterWithDataType();
-		JavaResourcePersistentType typeResource = buildJavaTypeResource(cu);
-		JavaResourcePersistentAttribute attributeResource = typeResource.fields().next();
-		
-		TypeConverterAnnotation converter = (TypeConverterAnnotation) attributeResource.getSupportingAnnotation(EclipseLinkJPA.TYPE_CONVERTER);
-		assertEquals("Foo", converter.getDataType());
-		
-		converter.setDataType(null);
-		assertNull(converter.getDataType());
-		
-		assertSourceContains("@TypeConverter", cu);
-		assertSourceDoesNotContain("dataType", cu);
-	}
-
-	public void testGetTypeObjectType() throws Exception {
-		ICompilationUnit cu = this.createTestTypeConverterWithObjectType();
-		JavaResourcePersistentType typeResource = buildJavaTypeResource(cu);
-		JavaResourcePersistentAttribute attributeResource = typeResource.fields().next();
-		
-		TypeConverterAnnotation converter = (TypeConverterAnnotation) attributeResource.getSupportingAnnotation(EclipseLinkJPA.TYPE_CONVERTER);
-		assertEquals("Foo", converter.getObjectType());
-	}
-
-	public void testSetObjectType() throws Exception {
-		ICompilationUnit cu = this.createTestTypeConverterWithObjectType();
-		JavaResourcePersistentType typeResource = buildJavaTypeResource(cu);
-		JavaResourcePersistentAttribute attributeResource = typeResource.fields().next();
-		
-		TypeConverterAnnotation converter = (TypeConverterAnnotation) attributeResource.getSupportingAnnotation(EclipseLinkJPA.TYPE_CONVERTER);
-		assertEquals("Foo", converter.getObjectType());
-		
-		converter.setObjectType("Bar");
-		assertEquals("Bar", converter.getObjectType());
-		
-		assertSourceContains("@TypeConverter(objectType = Bar.class)", cu);
-		
-		converter.setObjectType("int");
-		assertEquals("int", converter.getObjectType());
-		assertSourceContains("@TypeConverter(objectType = int.class)", cu);
-	}
-	
-	public void testSetObjectTypeNull() throws Exception {
-		ICompilationUnit cu = this.createTestTypeConverterWithObjectType();
-		JavaResourcePersistentType typeResource = buildJavaTypeResource(cu);
-		JavaResourcePersistentAttribute attributeResource = typeResource.fields().next();
-		
-		TypeConverterAnnotation converter = (TypeConverterAnnotation) attributeResource.getSupportingAnnotation(EclipseLinkJPA.TYPE_CONVERTER);
-		assertEquals("Foo", converter.getObjectType());
-		
-		converter.setObjectType(null);
-		assertNull(converter.getObjectType());
-		
-		assertSourceContains("@TypeConverter", cu);
-		assertSourceDoesNotContain("objectType", cu);
-	}
-
-	public void testGetName() throws Exception {
-		ICompilationUnit cu = this.createTestTypeConverterWithName();
-		JavaResourcePersistentType typeResource = buildJavaTypeResource(cu);
-		JavaResourcePersistentAttribute attributeResource = typeResource.fields().next();
-		
-		TypeConverterAnnotation converter = (TypeConverterAnnotation) attributeResource.getSupportingAnnotation(EclipseLinkJPA.TYPE_CONVERTER);
-		assertEquals("bar", converter.getName());
-	}
-
-	public void testSetName() throws Exception {
-		ICompilationUnit cu = this.createTestTypeConverterWithName();
-		JavaResourcePersistentType typeResource = buildJavaTypeResource(cu);
-		JavaResourcePersistentAttribute attributeResource = typeResource.fields().next();
-		
-		TypeConverterAnnotation converter = (TypeConverterAnnotation) attributeResource.getSupportingAnnotation(EclipseLinkJPA.TYPE_CONVERTER);
-		assertEquals("bar", converter.getName());
-		
-		converter.setName("foo");
-		assertEquals("foo", converter.getName());
-		
-		assertSourceContains("@TypeConverter(name = \"foo\")", cu);
-	}
-	
-	public void testSetNameNull() throws Exception {
-		ICompilationUnit cu = this.createTestTypeConverterWithName();
-		JavaResourcePersistentType typeResource = buildJavaTypeResource(cu);
-		JavaResourcePersistentAttribute attributeResource = typeResource.fields().next();
-		
-		TypeConverterAnnotation converter = (TypeConverterAnnotation) attributeResource.getSupportingAnnotation(EclipseLinkJPA.TYPE_CONVERTER);
-		assertEquals("bar", converter.getName());
-		
-		converter.setName(null);
-		assertNull(converter.getName());
-		
-		assertSourceContains("@TypeConverter", cu);
-		assertSourceDoesNotContain("name=", cu);
-	}
-}
diff --git a/jpa/tests/org.eclipse.jpt.eclipselink.core.tests/src/org/eclipse/jpt/eclipselink/core/tests/internal/resource/java/WriteTransformerAnnotationTests.java b/jpa/tests/org.eclipse.jpt.eclipselink.core.tests/src/org/eclipse/jpt/eclipselink/core/tests/internal/resource/java/WriteTransformerAnnotationTests.java
deleted file mode 100644
index a349cb7..0000000
--- a/jpa/tests/org.eclipse.jpt.eclipselink.core.tests/src/org/eclipse/jpt/eclipselink/core/tests/internal/resource/java/WriteTransformerAnnotationTests.java
+++ /dev/null
@@ -1,219 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008, 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.eclipselink.core.tests.internal.resource.java;
-
-import java.util.Iterator;
-import org.eclipse.jdt.core.ICompilationUnit;
-import org.eclipse.jpt.core.resource.java.JPA;
-import org.eclipse.jpt.core.resource.java.JavaResourcePersistentAttribute;
-import org.eclipse.jpt.core.resource.java.JavaResourcePersistentType;
-import org.eclipse.jpt.eclipselink.core.resource.java.EclipseLinkJPA;
-import org.eclipse.jpt.eclipselink.core.resource.java.WriteTransformerAnnotation;
-import org.eclipse.jpt.utility.internal.iterators.ArrayIterator;
-
-@SuppressWarnings("nls")
-public class WriteTransformerAnnotationTests extends EclipseLinkJavaResourceModelTestCase {
-	
-	public WriteTransformerAnnotationTests(String name) {
-		super(name);
-	}
-
-	private ICompilationUnit createTestWriteTransformer() throws Exception {
-		return this.createTestType(new DefaultAnnotationWriter() {
-			@Override
-			public Iterator<String> imports() {
-				return new ArrayIterator<String>(EclipseLinkJPA.WRITE_TRANSFORMER);
-			}
-			@Override
-			public void appendIdFieldAnnotationTo(StringBuilder sb) {
-				sb.append("@WriteTransformer");
-			}
-		});
-	}
-	
-	private ICompilationUnit createTestWriteTransformerWithTransformerClass() throws Exception {
-		return this.createTestType(new DefaultAnnotationWriter() {
-			@Override
-			public Iterator<String> imports() {
-				return new ArrayIterator<String>(EclipseLinkJPA.WRITE_TRANSFORMER);
-			}
-			@Override
-			public void appendIdFieldAnnotationTo(StringBuilder sb) {
-				sb.append("@WriteTransformer(transformerClass = Foo.class)");
-			}
-		});
-	}
-	
-	private ICompilationUnit createTestWriteTransformerWithMethod() throws Exception {
-		return this.createTestType(new DefaultAnnotationWriter() {
-			@Override
-			public Iterator<String> imports() {
-				return new ArrayIterator<String>(EclipseLinkJPA.WRITE_TRANSFORMER);
-			}
-			@Override
-			public void appendIdFieldAnnotationTo(StringBuilder sb) {
-				sb.append("@WriteTransformer(method = \"transformerMethod\")");
-			}
-		});
-	}
-	
-	private ICompilationUnit createTestWriteTransformerWithColumn() throws Exception {
-		return this.createTestType(new DefaultAnnotationWriter() {
-			@Override
-			public Iterator<String> imports() {
-				return new ArrayIterator<String>(EclipseLinkJPA.WRITE_TRANSFORMER, JPA.COLUMN);
-			}
-			@Override
-			public void appendIdFieldAnnotationTo(StringBuilder sb) {
-				sb.append("@WriteTransformer(column = @Column(name = \"FOO\"))");
-			}
-		});
-	}
-
-
-	public void testWriteTransformerAnnotation() throws Exception {
-		ICompilationUnit cu = this.createTestWriteTransformer();
-		JavaResourcePersistentType typeResource = buildJavaTypeResource(cu); 
-		JavaResourcePersistentAttribute attributeResource = typeResource.fields().next();
-		
-		assertNotNull(attributeResource.getSupportingAnnotation(EclipseLinkJPA.WRITE_TRANSFORMER));
-		
-		attributeResource.removeSupportingAnnotation(EclipseLinkJPA.WRITE_TRANSFORMER)	;
-		assertNull(attributeResource.getSupportingAnnotation(EclipseLinkJPA.WRITE_TRANSFORMER));
-		
-		attributeResource.addSupportingAnnotation(EclipseLinkJPA.WRITE_TRANSFORMER);
-		assertNotNull(attributeResource.getSupportingAnnotation(EclipseLinkJPA.WRITE_TRANSFORMER));
-	}
-
-	public void testGetTransformerClass() throws Exception {
-		ICompilationUnit cu = this.createTestWriteTransformerWithTransformerClass();
-		JavaResourcePersistentType typeResource = buildJavaTypeResource(cu);
-		JavaResourcePersistentAttribute attributeResource = typeResource.fields().next();
-		
-		WriteTransformerAnnotation writeTransformer = (WriteTransformerAnnotation) attributeResource.getSupportingAnnotation(EclipseLinkJPA.WRITE_TRANSFORMER);
-		assertEquals("Foo", writeTransformer.getTransformerClass());
-	}
-
-	public void testSetTransformerClass() throws Exception {
-		ICompilationUnit cu = this.createTestWriteTransformerWithTransformerClass();
-		JavaResourcePersistentType typeResource = buildJavaTypeResource(cu);
-		JavaResourcePersistentAttribute attributeResource = typeResource.fields().next();
-		
-		WriteTransformerAnnotation writeTransformer = (WriteTransformerAnnotation) attributeResource.getSupportingAnnotation(EclipseLinkJPA.WRITE_TRANSFORMER);
-		assertEquals("Foo", writeTransformer.getTransformerClass());
-		
-		writeTransformer.setTransformerClass("Bar");
-		assertEquals("Bar", writeTransformer.getTransformerClass());
-		
-		assertSourceContains("@WriteTransformer(transformerClass = Bar.class)", cu);
-	}
-	
-	public void testSetTransformerClassNull() throws Exception {
-		ICompilationUnit cu = this.createTestWriteTransformerWithTransformerClass();
-		JavaResourcePersistentType typeResource = buildJavaTypeResource(cu);
-		JavaResourcePersistentAttribute attributeResource = typeResource.fields().next();
-		
-		WriteTransformerAnnotation writeTransformer = (WriteTransformerAnnotation) attributeResource.getSupportingAnnotation(EclipseLinkJPA.WRITE_TRANSFORMER);
-		assertEquals("Foo", writeTransformer.getTransformerClass());
-		
-		writeTransformer.setTransformerClass(null);
-		assertNull(writeTransformer.getTransformerClass());
-		
-		assertSourceContains("@WriteTransformer", cu);
-		assertSourceDoesNotContain("transformerClass", cu);
-	}
-	
-	public void testGetMethod() throws Exception {
-		ICompilationUnit cu = this.createTestWriteTransformerWithMethod();
-		JavaResourcePersistentType typeResource = buildJavaTypeResource(cu);
-		JavaResourcePersistentAttribute attributeResource = typeResource.fields().next();
-		
-		WriteTransformerAnnotation writeTransformer = (WriteTransformerAnnotation) attributeResource.getSupportingAnnotation(EclipseLinkJPA.WRITE_TRANSFORMER);
-		assertEquals("transformerMethod", writeTransformer.getMethod());
-	}
-
-	public void testSetMethod() throws Exception {
-		ICompilationUnit cu = this.createTestWriteTransformerWithMethod();
-		JavaResourcePersistentType typeResource = buildJavaTypeResource(cu);
-		JavaResourcePersistentAttribute attributeResource = typeResource.fields().next();
-		
-		WriteTransformerAnnotation writeTransformer = (WriteTransformerAnnotation) attributeResource.getSupportingAnnotation(EclipseLinkJPA.WRITE_TRANSFORMER);
-		assertEquals("transformerMethod", writeTransformer.getMethod());
-		
-		writeTransformer.setMethod("foo");
-		assertEquals("foo", writeTransformer.getMethod());
-		
-		assertSourceContains("@WriteTransformer(method = \"foo\")", cu);
-	}
-	
-	public void testSetMethodNull() throws Exception {
-		ICompilationUnit cu = this.createTestWriteTransformerWithMethod();
-		JavaResourcePersistentType typeResource = buildJavaTypeResource(cu);
-		JavaResourcePersistentAttribute attributeResource = typeResource.fields().next();
-		
-		WriteTransformerAnnotation writeTransformer = (WriteTransformerAnnotation) attributeResource.getSupportingAnnotation(EclipseLinkJPA.WRITE_TRANSFORMER);
-		assertEquals("transformerMethod", writeTransformer.getMethod());
-		
-		writeTransformer.setMethod(null);
-		assertNull(writeTransformer.getMethod());
-		
-		assertSourceContains("@WriteTransformer", cu);
-		assertSourceDoesNotContain("method", cu);
-	}
-	
-	
-	public void testGetColumn() throws Exception {
-		ICompilationUnit cu = this.createTestWriteTransformerWithColumn();
-		JavaResourcePersistentType typeResource = buildJavaTypeResource(cu);
-		JavaResourcePersistentAttribute attributeResource = typeResource.fields().next();
-		
-		WriteTransformerAnnotation writeTransformer = (WriteTransformerAnnotation) attributeResource.getSupportingAnnotation(EclipseLinkJPA.WRITE_TRANSFORMER);
-		assertNotNull(writeTransformer.getColumn());
-		assertEquals("FOO", writeTransformer.getColumn().getName());
-	}
-
-	public void testAddColumn() throws Exception {
-		ICompilationUnit cu = this.createTestWriteTransformerWithMethod();
-		JavaResourcePersistentType typeResource = buildJavaTypeResource(cu);
-		JavaResourcePersistentAttribute attributeResource = typeResource.fields().next();
-		
-		WriteTransformerAnnotation writeTransformer = (WriteTransformerAnnotation) attributeResource.getSupportingAnnotation(EclipseLinkJPA.WRITE_TRANSFORMER);
-		assertNull(writeTransformer.getColumn());
-		
-		writeTransformer.addColumn();
-		
-		assertNotNull(writeTransformer.getColumn());		
-		assertSourceContains("@WriteTransformer(method = \"transformerMethod\", column = @Column)", cu);
-		
-		writeTransformer.getColumn().setName("BAR");
-		assertSourceContains("@WriteTransformer(method = \"transformerMethod\", column = @Column(name = \"BAR\"))", cu);
-		
-	}
-	
-	public void testRemoveColumn() throws Exception {
-		ICompilationUnit cu = this.createTestWriteTransformerWithColumn();
-		JavaResourcePersistentType typeResource = buildJavaTypeResource(cu);
-		JavaResourcePersistentAttribute attributeResource = typeResource.fields().next();
-		
-		WriteTransformerAnnotation writeTransformer = (WriteTransformerAnnotation) attributeResource.getSupportingAnnotation(EclipseLinkJPA.WRITE_TRANSFORMER);
-		assertNotNull(writeTransformer.getColumn());
-		assertEquals("FOO", writeTransformer.getColumn().getName());
-		
-		writeTransformer.removeColumn();
-		assertNull(writeTransformer.getColumn());
-		
-		assertSourceContains("@WriteTransformer", cu);
-		assertSourceDoesNotContain("column", cu);
-	}
-	
-	public void getNonNullColumn() throws Exception {
-
-	}
-}
diff --git a/jpa/tests/org.eclipse.jpt.eclipselink.core.tests/test.xml b/jpa/tests/org.eclipse.jpt.eclipselink.core.tests/test.xml
deleted file mode 100644
index 04e513d..0000000
--- a/jpa/tests/org.eclipse.jpt.eclipselink.core.tests/test.xml
+++ /dev/null
@@ -1,47 +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 -->
-	<property name="plugin-name" value="org.eclipse.jpt.eclipselink.core.tests"/>
-    <echo level="debug" message="testRoot: ${testRoot}" />
-    <fail message="testRoot must be set" unless="testRoot" />
-
-	<!-- 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">
-    	<property file="${testRoot}/testServer.properties"/>
-	    <property name="jpt-folder" value="${eclipse-home}/jpt_folder"/>
-	    <delete dir="${jpt-folder}" quiet="true"/>
-		
-		<ant target="core-test" antfile="${library-file}" dir="${eclipse-home}">
-		    <property name="data-dir" value="${jpt-folder}"/>
-			<property name="plugin-name" value="${plugin-name}"/>
-			<property name="classname" value="org.eclipse.jpt.eclipselink.core.tests.internal.JptEclipseLinkCoreTests" />
-			<property name="plugin-path" value="${eclipse-home}/plugins/${plugin-name}"/>
-			<property name="extraVMargs" value="-Dorg.eclipse.jpt.jpa.jar=${testDir}/${jpt-persistence10-jar} -Dorg.eclipse.jpt.eclipselink.jar=${testDir}/${jpt-eclipselink110-jar}"/>
-		</ant>
-	</target>
-
-	<!-- This target holds code to cleanup the testing environment after -->
-	<!-- after all of the tests have been run. You can use this target to -->
-	<!-- delete temporary files that have been created. -->
-	<target name="cleanup">
-	</target>
-
-	<!-- This target runs the test suite. Any actions that need to happen -->
-	<!-- after all the tests have been run should go here. -->
-	<target name="run" depends="init, suite, cleanup">
-	</target>
-</project>
\ No newline at end of file
diff --git a/jpa/tests/org.eclipse.jpt.gen.tests/.classpath b/jpa/tests/org.eclipse.jpt.gen.tests/.classpath
deleted file mode 100644
index 84744e7..0000000
--- a/jpa/tests/org.eclipse.jpt.gen.tests/.classpath
+++ /dev/null
@@ -1,11 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<classpath>
-	<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/J2SE-1.5"/>
-	<classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins">
-		<accessrules>
-			<accessrule kind="accessible" pattern="org/eclipse/jpt/gen/**"/>
-		</accessrules>
-	</classpathentry>
-	<classpathentry kind="src" path="src"/>
-	<classpathentry kind="output" path="bin"/>
-</classpath>
diff --git a/jpa/tests/org.eclipse.jpt.gen.tests/.project b/jpa/tests/org.eclipse.jpt.gen.tests/.project
deleted file mode 100644
index 2159feb..0000000
--- a/jpa/tests/org.eclipse.jpt.gen.tests/.project
+++ /dev/null
@@ -1,28 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<projectDescription>
-	<name>org.eclipse.jpt.gen.tests</name>
-	<comment></comment>
-	<projects>
-	</projects>
-	<buildSpec>
-		<buildCommand>
-			<name>org.eclipse.jdt.core.javabuilder</name>
-			<arguments>
-			</arguments>
-		</buildCommand>
-		<buildCommand>
-			<name>org.eclipse.pde.ManifestBuilder</name>
-			<arguments>
-			</arguments>
-		</buildCommand>
-		<buildCommand>
-			<name>org.eclipse.pde.SchemaBuilder</name>
-			<arguments>
-			</arguments>
-		</buildCommand>
-	</buildSpec>
-	<natures>
-		<nature>org.eclipse.pde.PluginNature</nature>
-		<nature>org.eclipse.jdt.core.javanature</nature>
-	</natures>
-</projectDescription>
diff --git a/jpa/tests/org.eclipse.jpt.gen.tests/.settings/org.eclipse.jdt.core.prefs b/jpa/tests/org.eclipse.jpt.gen.tests/.settings/org.eclipse.jdt.core.prefs
deleted file mode 100644
index 8bab913..0000000
--- a/jpa/tests/org.eclipse.jpt.gen.tests/.settings/org.eclipse.jdt.core.prefs
+++ /dev/null
@@ -1,7 +0,0 @@
-#Mon Jul 07 20:13:24 EDT 2008
-eclipse.preferences.version=1
-org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.5
-org.eclipse.jdt.core.compiler.compliance=1.5
-org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
-org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
-org.eclipse.jdt.core.compiler.source=1.5
diff --git a/jpa/tests/org.eclipse.jpt.gen.tests/META-INF/MANIFEST.MF b/jpa/tests/org.eclipse.jpt.gen.tests/META-INF/MANIFEST.MF
deleted file mode 100644
index 5fe445a..0000000
--- a/jpa/tests/org.eclipse.jpt.gen.tests/META-INF/MANIFEST.MF
+++ /dev/null
@@ -1,14 +0,0 @@
-Manifest-Version: 1.0
-Bundle-ManifestVersion: 2
-Bundle-Name: %pluginName
-Bundle-SymbolicName: org.eclipse.jpt.gen.tests
-Bundle-Version: 2.0.0
-Bundle-RequiredExecutionEnvironment: J2SE-1.5
-Bundle-Vendor: %providerName
-Require-Bundle: org.eclipse.core.runtime;bundle-version="3.4.0",
- org.eclipse.jdt.core;bundle-version="3.4.0",
- org.eclipse.jpt.utility;bundle-version="1.2.0",
- org.eclipse.jpt.db;bundle-version="1.1.1",
- org.eclipse.jpt.gen;bundle-version="1.1.0",
- org.junit;bundle-version="3.8.2"
-Export-Package: org.eclipse.jpt.gen.tests.internal;x-internal:=true
diff --git a/jpa/tests/org.eclipse.jpt.gen.tests/about.html b/jpa/tests/org.eclipse.jpt.gen.tests/about.html
deleted file mode 100644
index be534ba..0000000
--- a/jpa/tests/org.eclipse.jpt.gen.tests/about.html
+++ /dev/null
@@ -1,34 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN">
-<HTML>
-
-<head>
-<title>About</title>
-<meta http-equiv=Content-Type content="text/html; charset=ISO-8859-1">
-</head>
-
-<BODY lang="EN-US">
-
-<H3>About This Content</H3>
-
-<P>May 02, 2008</P>
-
-<H3>License</H3>
-
-<P>The Eclipse Foundation makes available all content in this plug-in 
-("Content"). Unless otherwise indicated below, the Content is provided to you 
-under the terms and conditions of the Eclipse Public License Version 1.0 
-("EPL"). A copy of the EPL is available at
-<A href="http://www.eclipse.org/org/documents/epl-v10.php">http://www.eclipse.org/org/documents/epl-v10.php</A>. 
-For purposes of the EPL, "Program" will mean the Content.</P>
-
-<P>If you did not receive this Content directly from the Eclipse Foundation, the 
-Content is being redistributed by another party ("Redistributor") and different 
-terms and conditions may apply to your use of any object code in the Content. 
-Check the Redistributor's license that was provided with the Content. If no such 
-license exists, contact the Redistributor. Unless otherwise indicated below, the 
-terms and conditions of the EPL still apply to any source code in the Content 
-and such source code may be obtained at
-<A href="http://www.eclipse.org/">http://www.eclipse.org/</A>.</P>
-
-</BODY>
-</HTML>
diff --git a/jpa/tests/org.eclipse.jpt.gen.tests/build.properties b/jpa/tests/org.eclipse.jpt.gen.tests/build.properties
deleted file mode 100644
index e68d4bf..0000000
--- a/jpa/tests/org.eclipse.jpt.gen.tests/build.properties
+++ /dev/null
@@ -1,18 +0,0 @@
-################################################################################
-# Copyright (c) 2008 Oracle. All rights reserved.
-# This program and the accompanying materials are made available under the
-# terms of the Eclipse Public License v1.0, which accompanies this distribution
-# and is available at http://www.eclipse.org/legal/epl-v10.html.
-# 
-# Contributors:
-#     Oracle - initial API and implementation
-################################################################################
-javacSource = 1.5
-javacTarget = 1.5
-bin.includes = .,\
-               META-INF/,\
-               about.html,\
-               test.xml,\
-               plugin.properties
-source.. = src/
-output.. = bin/
diff --git a/jpa/tests/org.eclipse.jpt.gen.tests/plugin.properties b/jpa/tests/org.eclipse.jpt.gen.tests/plugin.properties
deleted file mode 100644
index 269a5dc..0000000
--- a/jpa/tests/org.eclipse.jpt.gen.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 Tools Entity Generation Tests
-providerName=Eclipse.org
diff --git a/jpa/tests/org.eclipse.jpt.gen.tests/src/org/eclipse/jpt/gen/tests/internal/EntityGenToolsTests.java b/jpa/tests/org.eclipse.jpt.gen.tests/src/org/eclipse/jpt/gen/tests/internal/EntityGenToolsTests.java
deleted file mode 100644
index 9ff221c..0000000
--- a/jpa/tests/org.eclipse.jpt.gen.tests/src/org/eclipse/jpt/gen/tests/internal/EntityGenToolsTests.java
+++ /dev/null
@@ -1,144 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.gen.tests.internal;
-
-import java.util.HashSet;
-
-import org.eclipse.jpt.gen.internal.EntityGenTools;
-
-import junit.framework.TestCase;
-
-/**
- * 
- */
-@SuppressWarnings("nls")
-public class EntityGenToolsTests extends TestCase {
-
-	public EntityGenToolsTests(String name) {
-		super(name);
-	}
-
-	public void testConvertToUniqueJavaStyleClassName1() {
-		HashSet<String> names = new HashSet<String>();
-		assertEquals("Foo", EntityGenTools.convertToUniqueJavaStyleClassName("Foo", names));
-		assertEquals("Foo", EntityGenTools.convertToUniqueJavaStyleClassName("foo", names));
-		assertEquals("Foo", EntityGenTools.convertToUniqueJavaStyleClassName("FOO", names));
-		assertEquals("Foo", EntityGenTools.convertToUniqueJavaStyleClassName("FOO_", names));
-		assertEquals("Foo", EntityGenTools.convertToUniqueJavaStyleClassName("_FOO", names));
-		assertEquals("Foo_", EntityGenTools.convertToUniqueJavaStyleClassName("FOO*", names));
-		assertEquals("_oo", EntityGenTools.convertToUniqueJavaStyleClassName("5oo", names));
-	}
-
-	public void testConvertToUniqueJavaStyleClassName2() {
-		HashSet<String> names = new HashSet<String>();
-		names.add("Foo");
-		assertEquals("Foo2", EntityGenTools.convertToUniqueJavaStyleClassName("Foo", names));
-		assertEquals("Foo2", EntityGenTools.convertToUniqueJavaStyleClassName("foo", names));
-		assertEquals("Foo2", EntityGenTools.convertToUniqueJavaStyleClassName("FOO", names));
-		assertEquals("Foo2", EntityGenTools.convertToUniqueJavaStyleClassName("FOO_", names));
-		assertEquals("Foo2", EntityGenTools.convertToUniqueJavaStyleClassName("_FOO", names));
-		assertEquals("Foo_", EntityGenTools.convertToUniqueJavaStyleClassName("FOO*", names));
-		assertEquals("_oo", EntityGenTools.convertToUniqueJavaStyleClassName("5OO", names));
-	}
-
-	public void testConvertToUniqueJavaStyleClassName3() {
-		HashSet<String> names = new HashSet<String>();
-		names.add("foo");
-		assertEquals("Foo2", EntityGenTools.convertToUniqueJavaStyleClassName("Foo", names));
-		assertEquals("Foo2", EntityGenTools.convertToUniqueJavaStyleClassName("foo", names));
-		assertEquals("Foo2", EntityGenTools.convertToUniqueJavaStyleClassName("FOO", names));
-		assertEquals("Foo2", EntityGenTools.convertToUniqueJavaStyleClassName("FOO_", names));
-		assertEquals("Foo2", EntityGenTools.convertToUniqueJavaStyleClassName("_FOO", names));
-		assertEquals("Foo_", EntityGenTools.convertToUniqueJavaStyleClassName("FOO*", names));
-		assertEquals("_oo", EntityGenTools.convertToUniqueJavaStyleClassName("5OO", names));
-	}
-
-	public void testConvertToUniqueJavaStyleClassName4() {
-		HashSet<String> names = new HashSet<String>();
-		assertEquals("FooBar", EntityGenTools.convertToUniqueJavaStyleClassName("FooBar", names));
-		assertEquals("Foo_bar", EntityGenTools.convertToUniqueJavaStyleClassName("foo_bar", names));
-		assertEquals("FooBar", EntityGenTools.convertToUniqueJavaStyleClassName("FOO_BAR", names));
-		assertEquals("FooBar", EntityGenTools.convertToUniqueJavaStyleClassName("_FOO_BAR", names));
-		assertEquals("FooBar", EntityGenTools.convertToUniqueJavaStyleClassName("FOO_BAR_", names));
-		assertEquals("FooBar_", EntityGenTools.convertToUniqueJavaStyleClassName("FOO_BAR_*", names));
-		assertEquals("_fooBar", EntityGenTools.convertToUniqueJavaStyleClassName("4FOO_BAR", names));
-	}
-
-	public void testConvertToUniqueJavaStyleClassName5() {
-		HashSet<String> names = new HashSet<String>();
-		names.add("FooBar");
-		assertEquals("FooBar2", EntityGenTools.convertToUniqueJavaStyleClassName("FooBar", names));
-		assertEquals("Foo_bar", EntityGenTools.convertToUniqueJavaStyleClassName("foo_bar", names));
-		assertEquals("FooBar2", EntityGenTools.convertToUniqueJavaStyleClassName("FOO_BAR", names));
-		assertEquals("FooBar2", EntityGenTools.convertToUniqueJavaStyleClassName("_FOO_BAR", names));
-		assertEquals("FooBar2", EntityGenTools.convertToUniqueJavaStyleClassName("FOO_BAR_", names));
-		assertEquals("FooBar_", EntityGenTools.convertToUniqueJavaStyleClassName("FOO_BAR_*", names));
-		assertEquals("_fooBar", EntityGenTools.convertToUniqueJavaStyleClassName("4FOO_BAR", names));
-	}
-
-	public void testConvertToUniqueJavaStyleAttributeName1() {
-		HashSet<String> names = new HashSet<String>();
-		assertEquals("foo", EntityGenTools.convertToUniqueJavaStyleAttributeName("Foo", names));
-		assertEquals("foo", EntityGenTools.convertToUniqueJavaStyleAttributeName("foo", names));
-		assertEquals("foo", EntityGenTools.convertToUniqueJavaStyleAttributeName("FOO", names));
-		assertEquals("foo", EntityGenTools.convertToUniqueJavaStyleAttributeName("FOO_", names));
-		assertEquals("foo", EntityGenTools.convertToUniqueJavaStyleAttributeName("_FOO", names));
-		assertEquals("foo_", EntityGenTools.convertToUniqueJavaStyleAttributeName("FOO*", names));
-		assertEquals("_oo", EntityGenTools.convertToUniqueJavaStyleAttributeName("5oo", names));
-	}
-
-	public void testConvertToUniqueJavaStyleAttributeName2() {
-		HashSet<String> names = new HashSet<String>();
-		names.add("Foo");
-		assertEquals("foo2", EntityGenTools.convertToUniqueJavaStyleAttributeName("Foo", names));
-		assertEquals("foo2", EntityGenTools.convertToUniqueJavaStyleAttributeName("foo", names));
-		assertEquals("foo2", EntityGenTools.convertToUniqueJavaStyleAttributeName("FOO", names));
-		assertEquals("foo2", EntityGenTools.convertToUniqueJavaStyleAttributeName("FOO_", names));
-		assertEquals("foo2", EntityGenTools.convertToUniqueJavaStyleAttributeName("_FOO", names));
-		assertEquals("foo_", EntityGenTools.convertToUniqueJavaStyleAttributeName("FOO*", names));
-		assertEquals("_oo", EntityGenTools.convertToUniqueJavaStyleAttributeName("5OO", names));
-	}
-
-	public void testConvertToUniqueJavaStyleAttributeName3() {
-		HashSet<String> names = new HashSet<String>();
-		names.add("foo");
-		assertEquals("foo2", EntityGenTools.convertToUniqueJavaStyleAttributeName("Foo", names));
-		assertEquals("foo2", EntityGenTools.convertToUniqueJavaStyleAttributeName("foo", names));
-		assertEquals("foo2", EntityGenTools.convertToUniqueJavaStyleAttributeName("FOO", names));
-		assertEquals("foo2", EntityGenTools.convertToUniqueJavaStyleAttributeName("FOO_", names));
-		assertEquals("foo2", EntityGenTools.convertToUniqueJavaStyleAttributeName("_FOO", names));
-		assertEquals("foo_", EntityGenTools.convertToUniqueJavaStyleAttributeName("FOO*", names));
-		assertEquals("_oo", EntityGenTools.convertToUniqueJavaStyleAttributeName("5OO", names));
-	}
-
-	public void testConvertToUniqueJavaStyleAttributeName4() {
-		HashSet<String> names = new HashSet<String>();
-		assertEquals("fooBar", EntityGenTools.convertToUniqueJavaStyleAttributeName("FooBar", names));
-		assertEquals("foo_bar", EntityGenTools.convertToUniqueJavaStyleAttributeName("foo_bar", names));
-		assertEquals("fooBar", EntityGenTools.convertToUniqueJavaStyleAttributeName("FOO_BAR", names));
-		assertEquals("fooBar", EntityGenTools.convertToUniqueJavaStyleAttributeName("_FOO_BAR", names));
-		assertEquals("fooBar", EntityGenTools.convertToUniqueJavaStyleAttributeName("FOO_BAR_", names));
-		assertEquals("fooBar_", EntityGenTools.convertToUniqueJavaStyleAttributeName("FOO_BAR_*", names));
-		assertEquals("_fooBar", EntityGenTools.convertToUniqueJavaStyleAttributeName("4FOO_BAR", names));
-	}
-
-	public void testConvertToUniqueJavaStyleAttributeName5() {
-		HashSet<String> names = new HashSet<String>();
-		names.add("FooBar");
-		assertEquals("fooBar2", EntityGenTools.convertToUniqueJavaStyleAttributeName("FooBar", names));
-		assertEquals("foo_bar", EntityGenTools.convertToUniqueJavaStyleAttributeName("foo_bar", names));
-		assertEquals("fooBar2", EntityGenTools.convertToUniqueJavaStyleAttributeName("FOO_BAR", names));
-		assertEquals("fooBar2", EntityGenTools.convertToUniqueJavaStyleAttributeName("_FOO_BAR", names));
-		assertEquals("fooBar2", EntityGenTools.convertToUniqueJavaStyleAttributeName("FOO_BAR_", names));
-		assertEquals("fooBar_", EntityGenTools.convertToUniqueJavaStyleAttributeName("FOO_BAR_*", names));
-		assertEquals("_fooBar", EntityGenTools.convertToUniqueJavaStyleAttributeName("4FOO_BAR", names));
-	}
-
-}
diff --git a/jpa/tests/org.eclipse.jpt.gen.tests/src/org/eclipse/jpt/gen/tests/internal/JptGenTests.java b/jpa/tests/org.eclipse.jpt.gen.tests/src/org/eclipse/jpt/gen/tests/internal/JptGenTests.java
deleted file mode 100644
index 1e79d7d..0000000
--- a/jpa/tests/org.eclipse.jpt.gen.tests/src/org/eclipse/jpt/gen/tests/internal/JptGenTests.java
+++ /dev/null
@@ -1,32 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.gen.tests.internal;
-
-import junit.framework.Test;
-import junit.framework.TestSuite;
-import org.eclipse.jpt.gen.tests.internal.EntityGenToolsTests;
-
-/**
- * 
- */
-public class JptGenTests {
-
-	public static Test suite() {
-		TestSuite suite = new TestSuite("JPT Entity Generation Tests"); //$NON-NLS-1$
-		suite.addTestSuite(EntityGenToolsTests.class);
-		return suite;
-	}
-
-	private JptGenTests() {
-		super();
-		throw new UnsupportedOperationException();
-	}
-
-}
diff --git a/jpa/tests/org.eclipse.jpt.gen.tests/test.xml b/jpa/tests/org.eclipse.jpt.gen.tests/test.xml
deleted file mode 100644
index 11d311a..0000000
--- a/jpa/tests/org.eclipse.jpt.gen.tests/test.xml
+++ /dev/null
@@ -1,40 +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 -->
-	<property name="plugin-name" value="org.eclipse.jpt.gen.tests"/>
-
-	<!-- This target holds all initialization code that needs to be done for -->
-	<!-- all tests that are to be run. Initialization for individual tests -->
-	<!-- should be done within the body of the suite target. -->
-	<target name="init">
-		<tstamp/>
-		<delete>
-			<fileset dir="${eclipse-home}" includes="org*.xml"/>
-		</delete>
-	</target>
-
-	<!-- This target defines the tests that need to be run. -->
-	<target name="suite">
-		<ant target="gen-test" antfile="${library-file}" dir="${eclipse-home}">
-			<property name="plugin-name" value="${plugin-name}"/>
-			<property name="classname" value="org.eclipse.jpt.gen.tests.internal.JptGenTests" />
-			<property name="plugin-path" value="${eclipse-home}/plugins/${plugin-name}"/>
-			<property name="extraVMargs" value=""/>
-		</ant>
-	</target>
-
-	<!-- This target holds code to cleanup the testing environment after -->
-	<!-- after all of the tests have been run. You can use this target to -->
-	<!-- delete temporary files that have been created. -->
-	<target name="cleanup">
-	</target>
-
-	<!-- This target runs the test suite. Any actions that need to happen -->
-	<!-- after all the tests have been run should go here. -->
-	<target name="run" depends="init, suite, cleanup">
-	</target>
-</project>
\ No newline at end of file
diff --git a/jpa/tests/org.eclipse.jpt.ui.tests/.classpath b/jpa/tests/org.eclipse.jpt.ui.tests/.classpath
deleted file mode 100644
index 370877b..0000000
--- a/jpa/tests/org.eclipse.jpt.ui.tests/.classpath
+++ /dev/null
@@ -1,13 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<classpath>
-	<classpathentry kind="src" path="src"/>
-	<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER"/>
-	<classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins">
-		<accessrules>
-			<accessrule kind="accessible" pattern="org/eclipse/jpt/ui/**"/>
-			<accessrule kind="accessible" pattern="org/eclipse/jpt/core/**"/>
-			<accessrule kind="accessible" pattern="org/eclipse/jpt/utility/**"/>
-		</accessrules>
-	</classpathentry>
-	<classpathentry kind="output" path="bin"/>
-</classpath>
diff --git a/jpa/tests/org.eclipse.jpt.ui.tests/.cvsignore b/jpa/tests/org.eclipse.jpt.ui.tests/.cvsignore
deleted file mode 100644
index c4ba612..0000000
--- a/jpa/tests/org.eclipse.jpt.ui.tests/.cvsignore
+++ /dev/null
@@ -1,5 +0,0 @@
-bin
-@dot
-temp.folder
-build.xml
-javaCompiler...args
\ No newline at end of file
diff --git a/jpa/tests/org.eclipse.jpt.ui.tests/.project b/jpa/tests/org.eclipse.jpt.ui.tests/.project
deleted file mode 100644
index 0240774..0000000
--- a/jpa/tests/org.eclipse.jpt.ui.tests/.project
+++ /dev/null
@@ -1,28 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<projectDescription>
-	<name>org.eclipse.jpt.ui.tests</name>
-	<comment></comment>
-	<projects>
-	</projects>
-	<buildSpec>
-		<buildCommand>
-			<name>org.eclipse.jdt.core.javabuilder</name>
-			<arguments>
-			</arguments>
-		</buildCommand>
-		<buildCommand>
-			<name>org.eclipse.pde.ManifestBuilder</name>
-			<arguments>
-			</arguments>
-		</buildCommand>
-		<buildCommand>
-			<name>org.eclipse.pde.SchemaBuilder</name>
-			<arguments>
-			</arguments>
-		</buildCommand>
-	</buildSpec>
-	<natures>
-		<nature>org.eclipse.pde.PluginNature</nature>
-		<nature>org.eclipse.jdt.core.javanature</nature>
-	</natures>
-</projectDescription>
diff --git a/jpa/tests/org.eclipse.jpt.ui.tests/.settings/org.eclipse.core.resources.prefs b/jpa/tests/org.eclipse.jpt.ui.tests/.settings/org.eclipse.core.resources.prefs
deleted file mode 100644
index d364a0f..0000000
--- a/jpa/tests/org.eclipse.jpt.ui.tests/.settings/org.eclipse.core.resources.prefs
+++ /dev/null
@@ -1,3 +0,0 @@
-#Mon Apr 07 14:27:16 EDT 2008
-eclipse.preferences.version=1
-encoding/<project>=ISO-8859-1
diff --git a/jpa/tests/org.eclipse.jpt.ui.tests/META-INF/MANIFEST.MF b/jpa/tests/org.eclipse.jpt.ui.tests/META-INF/MANIFEST.MF
deleted file mode 100644
index efef310..0000000
--- a/jpa/tests/org.eclipse.jpt.ui.tests/META-INF/MANIFEST.MF
+++ /dev/null
@@ -1,24 +0,0 @@
-Manifest-Version: 1.0
-Bundle-ManifestVersion: 2
-Bundle-Name: %pluginName
-Bundle-Vendor: %providerName
-Bundle-SymbolicName: org.eclipse.jpt.ui.tests
-Bundle-Version: 1.0.1
-Require-Bundle: 
- org.junit4;bundle-version="4.3.1",
- org.eclipse.core.resources,
- org.eclipse.core.runtime,
- org.eclipse.jface,
- org.eclipse.jpt.core.tests,
- org.eclipse.jpt.core.tests.extension.resource,
- org.eclipse.jpt.utility,
- org.eclipse.jpt.core,
- org.eclipse.jpt.ui,
- org.eclipse.ui.navigator;bundle-version="3.4.0",
- org.eclipse.ui.forms;bundle-version="3.3.100",
- org.eclipse.ui.workbench;bundle-version="3.4.0"
-Export-Package: org.eclipse.jpt.ui.tests;x-internal:=true,
- org.eclipse.jpt.ui.tests.internal.jface;x-internal:=true,
- org.eclipse.jpt.ui.tests.internal.platform;x-internal:=true,
- org.eclipse.jpt.ui.tests.internal.swt;x-internal:=true,
- org.eclipse.jpt.ui.tests.internal.util;x-internal:=true
diff --git a/jpa/tests/org.eclipse.jpt.ui.tests/build.properties b/jpa/tests/org.eclipse.jpt.ui.tests/build.properties
deleted file mode 100644
index 34d2e4d..0000000
--- a/jpa/tests/org.eclipse.jpt.ui.tests/build.properties
+++ /dev/null
@@ -1,4 +0,0 @@
-source.. = src/
-output.. = bin/
-bin.includes = META-INF/,\
-               .
diff --git a/jpa/tests/org.eclipse.jpt.ui.tests/plugin.properties b/jpa/tests/org.eclipse.jpt.ui.tests/plugin.properties
deleted file mode 100644
index ca8ab87..0000000
--- a/jpa/tests/org.eclipse.jpt.ui.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 UI Tests
-providerName=Eclipse.org
diff --git a/jpa/tests/org.eclipse.jpt.ui.tests/src/org/eclipse/jpt/ui/tests/JptUiTests.java b/jpa/tests/org.eclipse.jpt.ui.tests/src/org/eclipse/jpt/ui/tests/JptUiTests.java
deleted file mode 100644
index 310abb7..0000000
--- a/jpa/tests/org.eclipse.jpt.ui.tests/src/org/eclipse/jpt/ui/tests/JptUiTests.java
+++ /dev/null
@@ -1,36 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2008 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- *
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.ui.tests;
-
-import junit.framework.Test;
-import junit.framework.TestSuite;
-import org.eclipse.jpt.ui.tests.internal.platform.JptUiPlatformTests;
-import org.eclipse.jpt.ui.tests.internal.swt.JptUiSWTTests;
-import org.eclipse.jpt.ui.tests.internal.util.JptUiUtilTests;
-
-/**
- * Runs all JPT UI Tests
- */
-public class JptUiTests {
-
-	public static Test suite() {
-		TestSuite suite = new TestSuite(JptUiTests.class.getPackage().getName());
-		suite.addTest(JptUiPlatformTests.suite());
-		suite.addTest(JptUiSWTTests.suite());
-		suite.addTest(JptUiUtilTests.suite());
-		return suite;
-	}
-
-	private JptUiTests() {
-		super();
-		throw new UnsupportedOperationException();
-	}
-
-}
diff --git a/jpa/tests/org.eclipse.jpt.ui.tests/src/org/eclipse/jpt/ui/tests/internal/jface/DelegatingLabelProviderUiTest.java b/jpa/tests/org.eclipse.jpt.ui.tests/src/org/eclipse/jpt/ui/tests/internal/jface/DelegatingLabelProviderUiTest.java
deleted file mode 100644
index d0ace3e..0000000
--- a/jpa/tests/org.eclipse.jpt.ui.tests/src/org/eclipse/jpt/ui/tests/internal/jface/DelegatingLabelProviderUiTest.java
+++ /dev/null
@@ -1,603 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008, 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.ui.tests.internal.jface;
-
-import org.eclipse.jface.action.Action;
-import org.eclipse.jface.action.ActionContributionItem;
-import org.eclipse.jface.action.IAction;
-import org.eclipse.jface.viewers.ArrayContentProvider;
-import org.eclipse.jface.viewers.BaseLabelProvider;
-import org.eclipse.jface.viewers.ComboViewer;
-import org.eclipse.jface.viewers.ILabelProvider;
-import org.eclipse.jface.viewers.ISelectionChangedListener;
-import org.eclipse.jface.viewers.IStructuredSelection;
-import org.eclipse.jface.viewers.SelectionChangedEvent;
-import org.eclipse.jface.viewers.StructuredSelection;
-import org.eclipse.jface.viewers.TreeViewer;
-import org.eclipse.jface.window.ApplicationWindow;
-import org.eclipse.jface.window.Window;
-import org.eclipse.jpt.ui.internal.jface.AbstractItemLabelProvider;
-import org.eclipse.jpt.ui.internal.jface.AbstractTreeItemContentProvider;
-import org.eclipse.jpt.ui.internal.jface.DelegatingTreeContentAndLabelProvider;
-import org.eclipse.jpt.ui.jface.DelegatingContentAndLabelProvider;
-import org.eclipse.jpt.ui.jface.ItemLabelProvider;
-import org.eclipse.jpt.ui.jface.ItemLabelProviderFactory;
-import org.eclipse.jpt.ui.jface.TreeItemContentProvider;
-import org.eclipse.jpt.ui.jface.TreeItemContentProviderFactory;
-import org.eclipse.jpt.utility.internal.ClassTools;
-import org.eclipse.jpt.utility.internal.model.AbstractModel;
-import org.eclipse.jpt.utility.internal.model.value.NullCollectionValueModel;
-import org.eclipse.jpt.utility.internal.model.value.PropertyAspectAdapter;
-import org.eclipse.jpt.utility.internal.model.value.SimplePropertyValueModel;
-import org.eclipse.jpt.utility.internal.model.value.StaticCollectionValueModel;
-import org.eclipse.jpt.utility.internal.model.value.StaticPropertyValueModel;
-import org.eclipse.jpt.utility.model.event.PropertyChangeEvent;
-import org.eclipse.jpt.utility.model.listener.PropertyChangeListener;
-import org.eclipse.jpt.utility.model.value.CollectionValueModel;
-import org.eclipse.jpt.utility.model.value.PropertyValueModel;
-import org.eclipse.jpt.utility.model.value.WritablePropertyValueModel;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.events.SelectionAdapter;
-import org.eclipse.swt.events.SelectionEvent;
-import org.eclipse.swt.graphics.Image;
-import org.eclipse.swt.graphics.ImageData;
-import org.eclipse.swt.graphics.PaletteData;
-import org.eclipse.swt.graphics.RGB;
-import org.eclipse.swt.layout.GridData;
-import org.eclipse.swt.layout.GridLayout;
-import org.eclipse.swt.widgets.Button;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Control;
-import org.eclipse.swt.widgets.Display;
-import org.eclipse.swt.widgets.Label;
-import org.eclipse.swt.widgets.Shell;
-
-public class DelegatingLabelProviderUiTest extends ApplicationWindow
-{
-	private TreeViewer tree;
-	
-	private WritablePropertyValueModel<Vehicle> selectedVehicle;
-	
-	
-	public static void main(String[] args) {
-		Window window = new DelegatingLabelProviderUiTest(args);
-		window.setBlockOnOpen(true);
-		window.open();
-		Display.getCurrent().dispose();
-		System.exit(0);
-	}
-	
-	
-	private DelegatingLabelProviderUiTest(String[] args) {
-		super(null);
-		this.selectedVehicle = new SimplePropertyValueModel<Vehicle>();
-	}
-	
-	
-	@Override
-	protected Control createContents(Composite parent) {
-		((Shell) parent).setText(ClassTools.shortClassNameForObject(this));
-		parent.setSize(400, 400);
-		parent.setLayout(new GridLayout());
-		Composite mainPanel = new Composite(parent, SWT.NONE);
-		mainPanel.setLayoutData(new GridData(GridData.FILL_BOTH));
-		mainPanel.setLayout(new GridLayout());
-		buildTreePanel(mainPanel);
-		buildControlPanel(mainPanel);
-		return mainPanel;
-	}
-	
-	private void buildTreePanel(Composite parent) {
-		Composite panel = new Composite(parent, SWT.NONE);
-		panel.setLayoutData(new GridData(GridData.FILL_BOTH));
-		panel.setLayout(new GridLayout());
-		
-		Label label = new Label(panel, SWT.NONE);
-		label.setLayoutData(new GridData(GridData.BEGINNING, GridData.CENTER, false, false));
-		label.setText("My Vehicles");
-		
-		tree = new TreeViewer(panel, SWT.SINGLE | SWT.H_SCROLL | SWT.V_SCROLL | SWT.BORDER);
-		tree.getTree().setLayoutData(new GridData(GridData.FILL, GridData.FILL, true, true));
-		DelegatingContentAndLabelProvider contentAndLabelProvider = 
-			new DelegatingTreeContentAndLabelProvider(
-				new VehicleContentProviderFactory(),
-				new VehicleLabelProviderFactory());
-		tree.setContentProvider(contentAndLabelProvider);
-		tree.setLabelProvider(contentAndLabelProvider);
-		tree.setInput(new Root());
-		tree.addSelectionChangedListener(buildTreeSelectionChangedListener());
-	}
-	
-	private ISelectionChangedListener buildTreeSelectionChangedListener() {
-		return new ISelectionChangedListener() {
-			public void selectionChanged(SelectionChangedEvent event) {
-				selectedVehicle.setValue((Vehicle) ((IStructuredSelection) event.getSelection()).getFirstElement());
-			}
-		};
-	}
-	
-	private void buildControlPanel(Composite parent) {
-		Composite panel = new Composite(parent, SWT.NONE);
-		panel.setLayoutData(new GridData(GridData.FILL, GridData.CENTER, true, false));
-		panel.setLayout(new GridLayout());
-		buildUpperControlPanel(panel);
-		buildLowerControlPanel(panel);
-	}
-	
-	private void buildUpperControlPanel(Composite parent) {
-		Composite panel = new Composite(parent, SWT.NONE);
-		panel.setLayoutData(new GridData(GridData.FILL, GridData.CENTER, true, false));
-		panel.setLayout(new GridLayout(2, true));
-		buildVehicleCombo(panel);
-		buildColorCombo(panel);
-	}
-	
-	private void buildVehicleCombo(Composite parent) {
-		final ComboViewer combo = new ComboViewer(parent, SWT.READ_ONLY);
-		combo.getCombo().setLayoutData(new GridData(GridData.FILL, GridData.CENTER, true, false));
-		combo.setContentProvider(new ArrayContentProvider());
-		combo.setLabelProvider(new VehicleTypeLabelProvider());
-		combo.setInput(
-			new VehicleType[] {
-				VehicleType.BICYCLE, VehicleType.CAR, 
-				VehicleType.TRUCK, VehicleType.BOAT
-			});
-		combo.getCombo().setEnabled(false);
-		combo.addSelectionChangedListener(
-			new ISelectionChangedListener() {
-				public void selectionChanged(SelectionChangedEvent event) {
-					selectedVehicle().setVehicleType((VehicleType) ((StructuredSelection) event.getSelection()).getFirstElement()); 
-				}
-			});
-		selectedVehicle.addPropertyChangeListener(
-			PropertyValueModel.VALUE, 
-			new PropertyChangeListener() {
-				public void propertyChanged(PropertyChangeEvent event) {
-					Vehicle vehicle = selectedVehicle();
-					combo.getCombo().setEnabled(vehicle != null);
-					combo.setSelection(new StructuredSelection((vehicle == null) ? null : vehicle.vehicleType()));
-				}
-			});
-	}
-	
-	private void buildColorCombo(Composite parent) {
-		final ComboViewer combo = new ComboViewer(parent, SWT.READ_ONLY);
-		combo.getCombo().setLayoutData(new GridData(GridData.FILL, GridData.CENTER, true, false));
-		combo.setContentProvider(new ArrayContentProvider());
-		combo.setLabelProvider(new ColorLabelProvider());
-		combo.setInput(new Color[] {Color.RED, Color.BLUE, Color.YELLOW, Color.GREEN});
-		combo.addSelectionChangedListener(
-			new ISelectionChangedListener() {
-				public void selectionChanged(SelectionChangedEvent event) {
-					selectedVehicle().setColor((Color) ((StructuredSelection) event.getSelection()).getFirstElement()); 
-				}
-			});
-		selectedVehicle.addPropertyChangeListener(
-			PropertyValueModel.VALUE, 
-			new PropertyChangeListener() {
-				public void propertyChanged(PropertyChangeEvent event) {
-					Vehicle vehicle = selectedVehicle();
-					combo.getCombo().setEnabled(vehicle != null);
-					combo.setSelection(new StructuredSelection((vehicle == null) ? null : vehicle.color()));
-				}
-			});
-	}
-	
-	private void buildLowerControlPanel(Composite parent) {
-		Composite panel = new Composite(parent, SWT.NONE);
-		panel.setLayoutData(new GridData(GridData.FILL, GridData.CENTER, true, false));
-		panel.setLayout(new GridLayout(3, false));
-		buildEffectsLabel(panel);
-		buildGreyedCheckBox(panel);
-		buildTranslucentCheckBox(panel);
-		buildActionPanel(panel);
-	}
-	
-	private void buildEffectsLabel(Composite parent) {
-		Label label = new Label(parent, SWT.LEFT);
-		label.setText("Color effects: ");
-		label.setLayoutData(new GridData(GridData.BEGINNING, GridData.CENTER, false, false, 3, 1));
-	}
-	
-	private void buildGreyedCheckBox(Composite parent) {
-		final Button button = new Button(parent, SWT.CHECK);
-		button.setLayoutData(new GridData(GridData.BEGINNING, GridData.CENTER, false, false));
-		button.setText("greyed");
-		button.setEnabled(false);
-		button.addSelectionListener(
-			new SelectionAdapter() {
-				@Override
-				public void widgetSelected(SelectionEvent e) {
-					selectedVehicle().setGreyed(button.getSelection());
-				}
-			});
-		selectedVehicle.addPropertyChangeListener(
-			PropertyValueModel.VALUE, 
-			new PropertyChangeListener() {
-				public void propertyChanged(PropertyChangeEvent event) {
-					Vehicle vehicle = selectedVehicle();
-					button.setEnabled(vehicle != null);
-					button.setSelection(vehicle != null && vehicle.isGreyed());
-				}
-			});
-	}
-	
-	private void buildTranslucentCheckBox(Composite parent) {
-		final Button button = new Button(parent, SWT.CHECK);
-		button.setLayoutData(new GridData(GridData.BEGINNING, GridData.CENTER, true, false));
-		button.setText("translucent");
-		button.setEnabled(false);
-		button.addSelectionListener(
-			new SelectionAdapter() {
-				@Override
-				public void widgetSelected(SelectionEvent e) {
-					selectedVehicle().setTranslucent(button.getSelection());
-				}
-			});
-		selectedVehicle.addPropertyChangeListener(
-			PropertyValueModel.VALUE, 
-			new PropertyChangeListener() {
-				public void propertyChanged(PropertyChangeEvent event) {
-					Vehicle vehicle = selectedVehicle();
-					button.setEnabled(vehicle != null);
-					button.setSelection(vehicle != null && vehicle.isTranslucent());
-				}
-			});
-	}
-	
-	private void buildActionPanel(Composite parent) {
-		Composite panel = new Composite(parent, SWT.NONE);
-		panel.setLayoutData(new GridData(GridData.END, GridData.FILL, false, false));
-		panel.setLayout(new GridLayout());
-		buildRefreshTreeACI().fill(panel);
-	}
-	
-	private ActionContributionItem buildRefreshTreeACI() {
-		Action action = new Action("Refresh tree", IAction.AS_PUSH_BUTTON) {
-			@Override
-			public void run() {
-				refreshTree();
-			}
-		};
-		action.setToolTipText("Refresh the tree's labels");
-		return new ActionContributionItem(action);
-	}
-	
-	void refreshTree() {
-		tree.refresh();
-	}
-	
-	private Vehicle selectedVehicle() {
-		return selectedVehicle.getValue();
-	}
-	
-	
-	private static class VehicleTypeLabelProvider extends BaseLabelProvider
-		implements ILabelProvider
-	{
-		public Image getImage(Object element) {
-			return null;
-		}
-		
-		public String getText(Object element) {
-			return ((VehicleType) element).description();
-		}
-	}
-	
-	
-	private static class ColorLabelProvider extends BaseLabelProvider
-		implements ILabelProvider
-	{
-		public Image getImage(Object element) {
-			return null;
-		}
-		
-		public String getText(Object element) {
-			return ((Color) element).description();
-		}
-	}
-	
-	
-	private static class VehicleContentProviderFactory
-		implements TreeItemContentProviderFactory
-	{
-		public TreeItemContentProvider buildItemContentProvider(Object item, DelegatingContentAndLabelProvider contentAndLabelProvider) {
-			if (item instanceof Root) {
-				return new RootContentProvider(
-					(Root) item, (DelegatingTreeContentAndLabelProvider) contentAndLabelProvider);
-			}
-			return new VehicleContentProvider(
-				(Vehicle) item, (DelegatingTreeContentAndLabelProvider) contentAndLabelProvider);
-		}
-	}
-	
-	
-	private static class RootContentProvider extends AbstractTreeItemContentProvider<Vehicle>
-	{
-		public RootContentProvider(Root item, DelegatingTreeContentAndLabelProvider contentAndLabelProvider) {
-			super(item, contentAndLabelProvider);
-		}
-		
-		@Override
-		public Root getModel() {
-			return (Root) super.getModel();
-		}
-		
-		@Override
-		public Object getParent() {
-			return null;
-		}
-		
-		@Override
-		protected CollectionValueModel<Vehicle> buildChildrenModel() {
-			return new StaticCollectionValueModel<Vehicle>(this.getModel().vehicles());
-		}
-	}
-	
-	@SuppressWarnings("unchecked")
-	private static class VehicleContentProvider extends AbstractTreeItemContentProvider
-	{
-		public VehicleContentProvider(Vehicle item, DelegatingTreeContentAndLabelProvider contentAndLabelProvider) {
-			super(item, contentAndLabelProvider);
-		}
-		
-		@Override
-		public Vehicle getModel() {
-			return (Vehicle) super.getModel();
-		}
-		
-		@Override
-		public Object getParent() {
-			return getModel().parent();
-		}
-		
-		@Override
-		protected CollectionValueModel buildChildrenModel() {
-			return new NullCollectionValueModel();
-		}
-	}
-	
-	
-	private static class VehicleLabelProviderFactory
-		implements ItemLabelProviderFactory
-	{
-		public ItemLabelProvider buildItemLabelProvider(Object element, DelegatingContentAndLabelProvider labelProvider) {
-			return new VehicleLabelProvider((Vehicle) element, labelProvider);
-		}
-	}
-	
-	
-	private static class VehicleLabelProvider extends AbstractItemLabelProvider
-	{
-		public VehicleLabelProvider(Vehicle vehicle, DelegatingContentAndLabelProvider labelProvider) {
-			super(vehicle, labelProvider);
-		}
-		
-		@Override
-		protected PropertyValueModel<Image> buildImageModel() {
-			return new PropertyAspectAdapter<Vehicle, Image>(
-					new StaticPropertyValueModel<Vehicle>((Vehicle) model()), 
-					Vehicle.COLOR_PROPERTY, Vehicle.GREYED_PROPERTY, Vehicle.TRANSLUCENT_PROPERTY) {
-				@Override
-				protected Image buildValue_() {
-					return subject.image();
-				}
-			};
-		}
-		
-		@Override
-		protected PropertyValueModel<String> buildTextModel() {
-			return new PropertyAspectAdapter<Vehicle, String>(
-					new StaticPropertyValueModel<Vehicle>((Vehicle) model()), 
-					Vehicle.VEHICLE_TYPE_PROPERTY, Vehicle.COLOR_PROPERTY) {
-				@Override
-				protected String buildValue_() {
-					return subject.color().description() + ' ' + subject.vehicleType().description();
-				}
-			};
-		}
-		
-		@Override
-		protected PropertyValueModel<String> buildDescriptionModel() {
-			return buildTextModel();
-		}
-	}
-	
-	
-	private static abstract class TreeNode extends AbstractModel
-	{
-		private TreeNode parent;
-		
-		
-		public TreeNode(TreeNode parent) {
-			this.parent = parent;
-		}
-		
-		
-		public TreeNode parent() {
-			return parent;
-		}
-	}
-	
-	
-	private static class Root extends TreeNode
-	{
-		protected final Vehicle[] vehicles;
-		
-		
-		public Root() {
-			super(null);
-			vehicles = new Vehicle[] {
-				new Vehicle(this, VehicleType.BICYCLE, Color.BLUE),
-				new Vehicle(this, VehicleType.CAR, Color.YELLOW),
-				new Vehicle(this, VehicleType.TRUCK, Color.RED),
-				new Vehicle(this, VehicleType.BOAT, Color.GREEN)};
-		}
-		
-		public Vehicle[] vehicles() {
-			return vehicles;
-		}
-	}
-	
-	
-	private static class Vehicle extends TreeNode
-	{
-		private VehicleType vehicleType;
-		public final static String VEHICLE_TYPE_PROPERTY = "vehicleType";
-		
-		private Color color;
-		public final static String COLOR_PROPERTY = "color";
-		
-		private boolean greyed = false;
-		public final static String GREYED_PROPERTY = "greyed";
-		
-		private boolean translucent = false;
-		public final static String TRANSLUCENT_PROPERTY = "translucent";
-		
-		private Image image;
-		
-			
-		public Vehicle(TreeNode parent, VehicleType vehicleType, Color color) {
-			super(parent);
-			this.vehicleType = vehicleType;
-			this.color = color;
-		}
-		
-		public VehicleType vehicleType() {
-			return vehicleType;
-		}
-		
-		public void setVehicleType(VehicleType newVehicleType) {
-			VehicleType oldVehicleType = vehicleType;
-			vehicleType = newVehicleType;
-			firePropertyChanged(VEHICLE_TYPE_PROPERTY, oldVehicleType, newVehicleType);
-		}
-		
-		public Color color() {
-			return color;
-		}
-		
-		public void setColor(Color newColor) {
-			Color oldColor = color;
-			color = newColor;
-			firePropertyChanged(COLOR_PROPERTY, oldColor, newColor);
-		}
-		
-		public boolean isGreyed() {
-			return greyed;
-		}
-		
-		public void setGreyed(boolean newGreyed) {
-			boolean oldGreyed = greyed;
-			greyed = newGreyed;
-			firePropertyChanged(GREYED_PROPERTY, oldGreyed, newGreyed);
-		}
-		
-		public boolean isTranslucent() {
-			return translucent;
-		}
-		
-		public void setTranslucent(boolean newTranslucent) {
-			boolean oldTranslucent = translucent;
-			translucent = newTranslucent;
-			firePropertyChanged(TRANSLUCENT_PROPERTY, oldTranslucent, newTranslucent);
-		}
-		
-		public Image image() {
-			if (image != null) {
-				image.dispose();
-			}
-			
-			return ImageFactory.image(color(), greyed, translucent);
-		}
-	}
-	
-	
-	private static enum VehicleType
-	{
-		BICYCLE("bicycle"),
-		CAR("car"),
-		TRUCK("truck"),
-		BOAT("boat");
-		
-		private final String description;
-		
-		private VehicleType(String description) {
-			this.description = description;
-		}
-		
-		public String description() {
-			return description;
-		}
-		
-		@Override
-		public String toString() {
-			return description();
-		}
-	}
-	
-	
-	private static enum Color
-	{
-		RED("red", new RGB(255, 0, 0)),
-		BLUE("blue", new RGB(0, 0, 255)),
-		YELLOW("yellow", new RGB(255, 255, 0)),
-		GREEN("green", new RGB(0, 255, 0));
-		
-		private final String description;
-		
-		private final RGB rgb;
-		
-		private Color(String description, RGB rgb) {
-			this.description = description;
-			this.rgb = rgb;
-		}
-		
-		public String description() {
-			return description;
-		}
-		
-		public RGB rgb() {
-			return rgb;
-		}
-		
-		@Override
-		public String toString() {
-			return description();
-		}
-	}
-	
-	
-	private static class ImageFactory
-	{
-		private static RGB rgb(Color color, boolean greyed, boolean translucent) {
-			RGB rgb = (greyed) ? new RGB(127, 127, 127) : color.rgb();
-			if (translucent) {
-				rgb = new RGB(translucify(rgb.red), translucify(rgb.green), translucify(rgb.blue));
-			}
-			return rgb;
-		}
-		
-		private static int translucify(int color) {
-			return 255 - (int) ((255 - color) * 0.3);
-		}
-		
-		public static Image image(Color color, boolean greyed, boolean translucent) {
-			PaletteData pd = new PaletteData(new RGB[] {rgb(color, greyed, translucent)});
-			ImageData id = new ImageData(20, 20, 1, pd);
-			for (int x = 0; x < 20; x ++) {
-				for (int y = 0; y < 20; y ++) {
-					id.setPixel(x, y, 0);
-				}
-			}
-			return new Image(Display.getCurrent(), id);
-		}
-	}
-}
diff --git a/jpa/tests/org.eclipse.jpt.ui.tests/src/org/eclipse/jpt/ui/tests/internal/jface/DelegatingTreeContentProviderUiTest.java b/jpa/tests/org.eclipse.jpt.ui.tests/src/org/eclipse/jpt/ui/tests/internal/jface/DelegatingTreeContentProviderUiTest.java
deleted file mode 100644
index 19ac671..0000000
--- a/jpa/tests/org.eclipse.jpt.ui.tests/src/org/eclipse/jpt/ui/tests/internal/jface/DelegatingTreeContentProviderUiTest.java
+++ /dev/null
@@ -1,566 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008, 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.ui.tests.internal.jface;
-
-import java.util.ArrayList;
-import java.util.Iterator;
-import java.util.List;
-import java.util.ListIterator;
-import org.eclipse.jface.action.Action;
-import org.eclipse.jface.action.ActionContributionItem;
-import org.eclipse.jface.action.IAction;
-import org.eclipse.jface.viewers.BaseLabelProvider;
-import org.eclipse.jface.viewers.ILabelProvider;
-import org.eclipse.jface.viewers.ISelectionChangedListener;
-import org.eclipse.jface.viewers.IStructuredSelection;
-import org.eclipse.jface.viewers.ITreeContentProvider;
-import org.eclipse.jface.viewers.SelectionChangedEvent;
-import org.eclipse.jface.viewers.StructuredSelection;
-import org.eclipse.jface.viewers.TreeViewer;
-import org.eclipse.jface.window.ApplicationWindow;
-import org.eclipse.jface.window.Window;
-import org.eclipse.jpt.ui.internal.jface.AbstractTreeItemContentProvider;
-import org.eclipse.jpt.ui.internal.jface.DelegatingTreeContentAndLabelProvider;
-import org.eclipse.jpt.ui.jface.DelegatingContentAndLabelProvider;
-import org.eclipse.jpt.ui.jface.TreeItemContentProvider;
-import org.eclipse.jpt.ui.jface.TreeItemContentProviderFactory;
-import org.eclipse.jpt.utility.internal.ClassTools;
-import org.eclipse.jpt.utility.internal.CollectionTools;
-import org.eclipse.jpt.utility.internal.iterators.FilteringIterator;
-import org.eclipse.jpt.utility.internal.iterators.ReadOnlyListIterator;
-import org.eclipse.jpt.utility.internal.iterators.TransformationIterator;
-import org.eclipse.jpt.utility.internal.model.AbstractModel;
-import org.eclipse.jpt.utility.internal.model.value.CompositeCollectionValueModel;
-import org.eclipse.jpt.utility.internal.model.value.ListAspectAdapter;
-import org.eclipse.jpt.utility.internal.model.value.ListCollectionValueModelAdapter;
-import org.eclipse.jpt.utility.internal.model.value.SimplePropertyValueModel;
-import org.eclipse.jpt.utility.internal.model.value.StaticCollectionValueModel;
-import org.eclipse.jpt.utility.model.event.PropertyChangeEvent;
-import org.eclipse.jpt.utility.model.listener.PropertyChangeListener;
-import org.eclipse.jpt.utility.model.value.CollectionValueModel;
-import org.eclipse.jpt.utility.model.value.ListValueModel;
-import org.eclipse.jpt.utility.model.value.PropertyValueModel;
-import org.eclipse.jpt.utility.model.value.WritablePropertyValueModel;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.graphics.Image;
-import org.eclipse.swt.layout.GridData;
-import org.eclipse.swt.layout.GridLayout;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Control;
-import org.eclipse.swt.widgets.Display;
-import org.eclipse.swt.widgets.Label;
-import org.eclipse.swt.widgets.Shell;
-import org.eclipse.swt.widgets.Text;
-
-public class DelegatingTreeContentProviderUiTest extends ApplicationWindow
-{
-	private final Root root;
-
-	private WritablePropertyValueModel<TreeNode> selectedNode;
-
-	private TreeViewer controlTree;
-
-	private TreeViewer viewTree;
-
-	private Text nodeNameText;
-
-
-	public static void main(String[] args) {
-		Window window = new DelegatingTreeContentProviderUiTest(args);
-		window.setBlockOnOpen(true);
-		window.open();
-		Display.getCurrent().dispose();
-		System.exit(0);
-	}
-
-	private DelegatingTreeContentProviderUiTest(String[] args) {
-		super(null);
-		this.root = new Root();
-		this.root.addChild("Parent_1");
-		this.selectedNode = new SimplePropertyValueModel<TreeNode>(this.root);
-	}
-
-	@Override
-	protected Control createContents(Composite parent) {
-		((Shell) parent).setText(ClassTools.shortClassNameForObject(this));
-		parent.setSize(800, 400);
-		parent.setLayout(new GridLayout());
-		Composite mainPanel = new Composite(parent, SWT.NONE);
-		mainPanel.setLayoutData(new GridData(GridData.FILL_BOTH));
-		mainPanel.setLayout(new GridLayout());
-		buildTreePanel(mainPanel);
-		buildControlPanel(mainPanel);
-		return mainPanel;
-	}
-
-	private void buildTreePanel(Composite parent) {
-		Composite panel = new Composite(parent, SWT.NONE);
-		panel.setLayoutData(new GridData(GridData.FILL_BOTH));
-		panel.setLayout(new GridLayout(2, true));
-		buildControlTreePanel(panel);
-		buildViewTreePanel(panel);
-	}
-
-	private void buildControlTreePanel(Composite parent) {
-		controlTree = buildTreePanel(
-				parent, "Control tree",
-				new DelegatingTreeContentAndLabelProvider(new ControlTreeItemContentProviderFactory()),
-				new LabelProvider());
-		controlTree.addSelectionChangedListener(buildTreeSelectionChangedListener());
-		selectedNode.addPropertyChangeListener(
-				PropertyValueModel.VALUE,
-				new PropertyChangeListener() {
-					public void propertyChanged(PropertyChangeEvent event) {
-						controlTree.setSelection(new StructuredSelection(event.getNewValue()));
-					}
-				}
-			);
-	}
-
-	private void buildViewTreePanel(Composite parent) {
-		viewTree = buildTreePanel(
-				parent, "View tree",
-				new DelegatingTreeContentAndLabelProvider(new ViewTreeItemContentProviderFactory()),
-				new LabelProvider());
-	}
-
-	private TreeViewer buildTreePanel(Composite parent, String labelText, ITreeContentProvider contentProvider, ILabelProvider labelProvider) {
-		Composite panel = new Composite(parent, SWT.NONE);
-		panel.setLayoutData(new GridData(GridData.FILL_BOTH));
-		panel.setLayout(new GridLayout());
-
-		Label label = new Label(panel, SWT.LEFT);
-		label.setLayoutData(new GridData(GridData.BEGINNING, GridData.CENTER, false, false));
-		label.setText(labelText);
-
-		final TreeViewer tree = new TreeViewer(panel, SWT.SINGLE | SWT.H_SCROLL | SWT.V_SCROLL | SWT.BORDER);
-		tree.getTree().setLayoutData(new GridData(GridData.FILL, GridData.FILL, true, true));
-		tree.setContentProvider(contentProvider);
-		tree.setLabelProvider(labelProvider);
-		tree.setInput(root);
-
-		return tree;
-	}
-
-	private ISelectionChangedListener buildTreeSelectionChangedListener() {
-		return new ISelectionChangedListener() {
-			public void selectionChanged(SelectionChangedEvent event) {
-				TreeNode selection = (TreeNode) ((IStructuredSelection) event.getSelection()).getFirstElement();
-				selectedNode.setValue((selection == null) ? root : selection);
-			}
-		};
-	}
-
-	private void buildControlPanel(Composite parent) {
-		Composite panel = new Composite(parent, SWT.NONE);
-		panel.setLayoutData(new GridData(GridData.FILL, GridData.FILL, true, false));
-		panel.setLayout(new GridLayout(6, false));
-		buildNodeNameText(panel);
-		buildAddChildACI().fill(panel);
-		buildAddNestedChildACI().fill(panel);
-		buildRemoveACI().fill(panel);
-		buildClearModelACI().fill(panel);
-		buildRestoreModelACI().fill(panel);
-	}
-
-	private void buildNodeNameText(Composite parent) {
-		nodeNameText = new Text(parent, SWT.SINGLE | SWT.BORDER);
-		nodeNameText.setLayoutData(new GridData(GridData.FILL, GridData.CENTER, true, false));
-	}
-
-	private ActionContributionItem buildAddChildACI() {
-		final Action action = new Action("Add child", IAction.AS_PUSH_BUTTON) {
-			@Override
-			public void run() {
-				addChild();
-			}
-		};
-		action.setToolTipText("Add a child with the given name");
-		selectedNode.addPropertyChangeListener(
-				PropertyValueModel.VALUE,
-				new PropertyChangeListener() {
-					public void propertyChanged(PropertyChangeEvent event) {
-						action.setEnabled(((TreeNode) event.getNewValue()).canHaveChildren());
-					}
-				}
-			);
-		return new ActionContributionItem(action);
-	}
-
-	private ActionContributionItem buildAddNestedChildACI() {
-		final Action action = new Action("Add nested child", IAction.AS_PUSH_BUTTON) {
-			@Override
-			public void run() {
-				addNestedChild();
-			}
-		};
-		action.setToolTipText("Add a nested child with the given name");
-		action.setEnabled(false);
-		selectedNode.addPropertyChangeListener(
-				PropertyValueModel.VALUE,
-				new PropertyChangeListener() {
-					public void propertyChanged(PropertyChangeEvent event) {
-						action.setEnabled(((TreeNode) event.getNewValue()).canHaveNestedChildren());
-					}
-				}
-			);
-		return new ActionContributionItem(action);
-	}
-
-	private ActionContributionItem buildRemoveACI() {
-		final Action action = new Action("Remove", IAction.AS_PUSH_BUTTON) {
-			@Override
-			public void run() {
-				remove();
-			}
-		};
-		action.setToolTipText("Remove the selected node");
-		action.setEnabled(false);
-		selectedNode.addPropertyChangeListener(
-				PropertyValueModel.VALUE,
-				new PropertyChangeListener() {
-					public void propertyChanged(PropertyChangeEvent event) {
-						action.setEnabled(event.getNewValue() != root);
-					}
-				}
-			);
-		return new ActionContributionItem(action);
-	}
-
-	private ActionContributionItem buildClearModelACI() {
-		Action action = new Action("Clear model", IAction.AS_PUSH_BUTTON) {
-			@Override
-			public void run() {
-				clearModel();
-			}
-		};
-		action.setToolTipText("Clear the model");
-		return new ActionContributionItem(action);
-	}
-
-	private ActionContributionItem buildRestoreModelACI() {
-		Action action = new Action("Restore model", IAction.AS_PUSH_BUTTON) {
-			@Override
-			public void run() {
-				restoreModel();
-			}
-		};
-		action.setToolTipText("Restore the model");
-		return new ActionContributionItem(action);
-	}
-
-	void addChild() {
-		String nodeName = nodeNameText.getText();
-		if (nodeName.length() != 0) {
-			selectedNode.getValue().addChild(nodeName);
-		}
-	}
-
-	void addNestedChild() {
-		String nodeName = nodeNameText.getText();
-		if (nodeName.length() != 0) {
-			selectedNode.getValue().addNestedChild(nodeName);
-		}
-	}
-
-	void remove() {
-		TreeNode node = selectedNode.getValue();
-		node.parent().removeChild(node);
-	}
-
-	void clearModel() {
-		controlTree.setInput(null);
-		viewTree.setInput(null);
-	}
-
-	void restoreModel() {
-		controlTree.setInput(root);
-		viewTree.setInput(root);
-	}
-
-
-	private static abstract class AbstractTreeItemContentProviderFactory
-		implements TreeItemContentProviderFactory
-	{
-		public TreeItemContentProvider buildItemContentProvider(
-			Object item, DelegatingContentAndLabelProvider contentAndLabelProvider) {
-			return new GenericTreeItemContentProvider(
-				(TreeNode) item, (DelegatingTreeContentAndLabelProvider) contentAndLabelProvider);
-		}
-	}
-
-
-	private static class ControlTreeItemContentProviderFactory extends AbstractTreeItemContentProviderFactory
-	{
-
-	}
-
-
-	private static class ViewTreeItemContentProviderFactory
-		extends AbstractTreeItemContentProviderFactory
-	{
-		@Override
-		public TreeItemContentProvider buildItemContentProvider(
-				Object item, DelegatingContentAndLabelProvider contentAndLabelProvider) {
-			if (item instanceof Parent) {
-				return new ViewTreeParentItemContentProvider(
-						(Parent) item, (DelegatingTreeContentAndLabelProvider) contentAndLabelProvider);
-			}
-			return super.buildItemContentProvider(item, contentAndLabelProvider);
-		}
-	}
-
-
-	private static class GenericTreeItemContentProvider extends AbstractTreeItemContentProvider<TreeNode>
-	{
-		public GenericTreeItemContentProvider(
-				TreeNode treeNode, DelegatingTreeContentAndLabelProvider treeContentAndLabelProvider) {
-			super(treeNode, treeContentAndLabelProvider);
-		}
-
-		protected TreeNode treeNode() {
-			return (TreeNode) getModel();
-		}
-
-		@Override
-		public TreeNode getParent() {
-			return treeNode().parent();
-		}
-
-		@Override
-		protected CollectionValueModel<TreeNode> buildChildrenModel() {
-			return new ListCollectionValueModelAdapter<TreeNode>(
-			new ListAspectAdapter<TreeNode, TreeNode>(TreeNode.CHILDREN_LIST, treeNode()) {
-				@Override
-				protected ListIterator<TreeNode> listIterator_() {
-					return treeNode().children();
-				}
-			});
-		}
-	}
-
-	private static class ViewTreeParentItemContentProvider extends GenericTreeItemContentProvider
-	{
-		public ViewTreeParentItemContentProvider(
-				TreeNode treeNode, DelegatingTreeContentAndLabelProvider treeContentAndLabelProvider) {
-			super(treeNode, treeContentAndLabelProvider);
-		}
-
-		@Override
-		public TreeNode getParent() {
-			TreeNode parent = super.getParent();
-			if (parent instanceof Nest) {
-				parent = parent.parent();
-			}
-			return parent;
-		}
-
-		@Override
-		protected CollectionValueModel<TreeNode> buildChildrenModel() {
-				return new CompositeCollectionValueModel<TreeNode, TreeNode>(super.buildChildrenModel()) {
-						@Override
-						protected CollectionValueModel<TreeNode> transform(TreeNode value) {
-							if (value instanceof Nest) {
-								final Nest nest = (Nest) value;
-								return new ListCollectionValueModelAdapter<TreeNode>(
-										new ListAspectAdapter<TreeNode, TreeNode>(TreeNode.CHILDREN_LIST, nest) {
-											@Override
-											protected ListIterator<TreeNode> listIterator_() {
-												return nest.children();
-											}
-										}
-									);
-							}
-							return new StaticCollectionValueModel<TreeNode>(CollectionTools.collection(value));
-						}
-					};
-		}
-	}
-
-
-	private static class LabelProvider extends BaseLabelProvider
-		implements ILabelProvider
-	{
-		public Image getImage(Object element) {
-			return null;
-		}
-
-		public String getText(Object element) {
-			return ((TreeNode) element).getName();
-		}
-	}
-
-
-	private static abstract class TreeNode extends AbstractModel
-	{
-		private TreeNode parent;
-
-		protected final List<TreeNode> children;
-		public final static String CHILDREN_LIST = "children";
-
-		protected String name;
-		public final static String NAME_PROPERTY = "name";
-
-
-		public TreeNode(TreeNode parent, String name) {
-			this.parent = parent;
-			this.children = new ArrayList<TreeNode>();
-			this.name = name;
-		}
-
-		public TreeNode parent() {
-			return parent;
-		}
-
-		public ListIterator<TreeNode> children() {
-			return new ReadOnlyListIterator<TreeNode>(children);
-		}
-
-		protected void addChild(TreeNode child) {
-			addItemToList(child, children, CHILDREN_LIST);
-		}
-
-		public void removeChild(TreeNode child) {
-			removeItemFromList(child, children, CHILDREN_LIST);
-		}
-
-		public void removeChild(int index) {
-			removeItemFromList(index, children, CHILDREN_LIST);
-		}
-
-		public String getName() {
-			return name;
-		}
-
-		public void setName(String newName) {
-			String oldName = name;
-			name = newName;
-			firePropertyChanged(NAME_PROPERTY, oldName, newName);
-		}
-
-		public boolean canHaveChildren() {
-			return false;
-		}
-
-		public void addChild(String name) {
-			throw new UnsupportedOperationException();
-		}
-
-		public boolean canHaveNestedChildren() {
-			return false;
-		}
-
-		public void addNestedChild(String name) {
-			throw new UnsupportedOperationException();
-		}
-
-		@Override
-		public void toString(StringBuilder sb) {
-			sb.append(getName());
-		}
-	}
-
-
-	private static class Root extends TreeNode
-	{
-		public Root() {
-			super(null, null);
-		}
-
-		@Override
-		public boolean canHaveChildren() {
-			return true;
-		}
-
-		@Override
-		public void addChild(String name) {
-			addChild(new Parent(this, name));
-		}
-	}
-
-
-	private static class Parent extends TreeNode
-	{
-		public Parent(TreeNode parent, String name) {
-			super(parent, name);
-		}
-
-		@Override
-		public boolean canHaveChildren() {
-			return true;
-		}
-
-		@Override
-		public void addChild(String name) {
-			addChild(new Child(this, name));
-		}
-
-		@Override
-		public boolean canHaveNestedChildren() {
-			return true;
-		}
-
-		@Override
-		public void addNestedChild(String name) {
-			TreeNode nest = new Nest(this);
-			addChild(nest);
-			nest.addChild(name);
-		}
-
-		public Iterator<Child> nestlessChildren() {
-			return new FilteringIterator<Child, Child>(
-					new TransformationIterator<TreeNode, Child>(children()) {
-						@Override
-						protected Child transform(TreeNode next) {
-							if (next instanceof Nest) {
-								return ((Nest) next).child();
-							}
-							return (Child) next;
-						}
-					}) {
-				@Override
-				protected boolean accept(Child c) {
-					return c != null;
-				}
-			};
-		}
-	}
-
-
-	private static class Nest extends TreeNode
-	{
-		public Nest(TreeNode parent) {
-			super(parent, "nest");
-		}
-
-		@Override
-		public boolean canHaveChildren() {
-			return children.size() == 0;
-		}
-
-		@Override
-		public void addChild(String name) {
-			addChild(new Child(this, name));
-		}
-
-		/* can only have one child */
-		public Child child() {
-			return (children.isEmpty()) ? null : (Child) children.get(0);
-		}
-	}
-
-
-	private static class Child extends TreeNode
-	{
-		public Child(TreeNode parent, String name) {
-			super(parent, name);
-		}
-	}
-}
diff --git a/jpa/tests/org.eclipse.jpt.ui.tests/src/org/eclipse/jpt/ui/tests/internal/platform/JpaPlatformUiExtensionTests.java b/jpa/tests/org.eclipse.jpt.ui.tests/src/org/eclipse/jpt/ui/tests/internal/platform/JpaPlatformUiExtensionTests.java
deleted file mode 100644
index 7071c53..0000000
--- a/jpa/tests/org.eclipse.jpt.ui.tests/src/org/eclipse/jpt/ui/tests/internal/platform/JpaPlatformUiExtensionTests.java
+++ /dev/null
@@ -1,56 +0,0 @@
-package org.eclipse.jpt.ui.tests.internal.platform;
-
-import junit.framework.TestCase;
-import org.eclipse.jpt.core.JpaProject;
-import org.eclipse.jpt.core.internal.platform.JpaPlatformRegistry;
-import org.eclipse.jpt.core.tests.extension.resource.ExtensionTestPlugin;
-import org.eclipse.jpt.core.tests.extension.resource.TestJpaPlatformProvider;
-import org.eclipse.jpt.core.tests.internal.projects.TestJpaProject;
-
-@SuppressWarnings("nls")
-public class JpaPlatformUiExtensionTests extends TestCase
-{
-	protected TestJpaProject testProject;
-
-	protected static final String PROJECT_NAME = "ExtensionTestProject";
-	protected static final String PACKAGE_NAME = "extension.test";
-
-	public static final String TEST_PLUGIN_CLASS = ExtensionTestPlugin.class.getName();
-	public static final String TEST_PLUGIN_ID = ExtensionTestPlugin.PLUGIN_ID;
-
-	public static final String TEST_PLATFORM_ID = TestJpaPlatformProvider.ID;
-	public static final String TEST_PLATFORM_CLASS = TestJpaPlatformProvider.class.getName();
-	public static final String TEST_PLATFORM_LABEL = "Test Jpa Platform";
-
-	public static final String TEST_UI_PLATFORM_ID = TEST_PLATFORM_ID;
-
-	public JpaPlatformUiExtensionTests(String name) {
-		super(name);
-	}
-
-	@Override
-	protected void setUp() throws Exception {
-		super.setUp();
-		this.testProject = this.buildJpaProject(PROJECT_NAME, false);  // false = no auto-build
-	}
-
-	protected TestJpaProject buildJpaProject(String projectName, boolean autoBuild) throws Exception {
-		return new TestJpaProject(projectName, autoBuild);  // false = no auto-build
-	}
-
-	@Override
-	protected void tearDown() throws Exception {
-		this.testProject.getProject().delete(true, true, null);
-		this.testProject = null;
-		super.tearDown();
-	}
-
-	protected JpaProject jpaProject() {
-		return this.testProject.getJpaProject();
-	}
-
-	public void testJpaPlatform() {
-		assertNotNull(JpaPlatformRegistry.instance().getJpaPlatform(this.testProject.getProject()));
-	}
-
-}
diff --git a/jpa/tests/org.eclipse.jpt.ui.tests/src/org/eclipse/jpt/ui/tests/internal/platform/JptUiPlatformTests.java b/jpa/tests/org.eclipse.jpt.ui.tests/src/org/eclipse/jpt/ui/tests/internal/platform/JptUiPlatformTests.java
deleted file mode 100644
index 50bcc99..0000000
--- a/jpa/tests/org.eclipse.jpt.ui.tests/src/org/eclipse/jpt/ui/tests/internal/platform/JptUiPlatformTests.java
+++ /dev/null
@@ -1,27 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.ui.tests.internal.platform;
-
-import junit.framework.Test;
-import junit.framework.TestSuite;
-
-public class JptUiPlatformTests
-{
-	public static Test suite() {
-		TestSuite suite = new TestSuite(JptUiPlatformTests.class.getPackage().getName());
-		suite.addTestSuite(JpaPlatformUiExtensionTests.class);
-		return suite;
-	}
-
-	private JptUiPlatformTests() {
-		super();
-		throw new UnsupportedOperationException();
-	}
-}
diff --git a/jpa/tests/org.eclipse.jpt.ui.tests/src/org/eclipse/jpt/ui/tests/internal/swt/AbstractComboModelAdapterTest.java b/jpa/tests/org.eclipse.jpt.ui.tests/src/org/eclipse/jpt/ui/tests/internal/swt/AbstractComboModelAdapterTest.java
deleted file mode 100644
index d6d12ea..0000000
--- a/jpa/tests/org.eclipse.jpt.ui.tests/src/org/eclipse/jpt/ui/tests/internal/swt/AbstractComboModelAdapterTest.java
+++ /dev/null
@@ -1,773 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- *
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.ui.tests.internal.swt;
-
-import static org.junit.Assert.*;
-import java.util.ArrayList;
-import java.util.Collection;
-import java.util.Iterator;
-import java.util.List;
-import java.util.ListIterator;
-import org.eclipse.jpt.ui.internal.swt.AbstractComboModelAdapter;
-import org.eclipse.jpt.ui.internal.swt.AbstractComboModelAdapter.SelectionChangeEvent;
-import org.eclipse.jpt.ui.internal.swt.AbstractComboModelAdapter.SelectionChangeListener;
-import org.eclipse.jpt.utility.internal.StringConverter;
-import org.eclipse.jpt.utility.internal.model.AbstractModel;
-import org.eclipse.jpt.utility.internal.model.value.ListAspectAdapter;
-import org.eclipse.jpt.utility.internal.model.value.PropertyAspectAdapter;
-import org.eclipse.jpt.utility.internal.model.value.SimpleListValueModel;
-import org.eclipse.jpt.utility.internal.model.value.SimplePropertyValueModel;
-import org.eclipse.jpt.utility.internal.swing.SimpleDisplayable;
-import org.eclipse.jpt.utility.model.value.ListValueModel;
-import org.eclipse.jpt.utility.model.value.WritablePropertyValueModel;
-import org.eclipse.swt.widgets.Display;
-import org.eclipse.swt.widgets.Shell;
-import org.junit.After;
-import org.junit.Before;
-import org.junit.Test;
-
-@SuppressWarnings("nls")
-public abstract class AbstractComboModelAdapterTest {
-
-	private Model model;
-	private WritablePropertyValueModel<SimpleDisplayable> selectedItemHolder;
-	private Shell shell;
-	private WritablePropertyValueModel<Model> subjectHolder;
-
-	protected abstract AbstractComboModelAdapter<SimpleDisplayable> buildEditableComboModelAdapter();
-
-	protected final ListValueModel<SimpleDisplayable> buildEmptyListHolder() {
-		return new SimpleListValueModel<SimpleDisplayable>();
-	}
-
-	private List<SimpleDisplayable> buildList() {
-		List<SimpleDisplayable> list = new ArrayList<SimpleDisplayable>();
-		populateCollection(list);
-		return list;
-	}
-
-	protected final ListValueModel<SimpleDisplayable> buildListHolder() {
-		return new ListAspectAdapter<Model, SimpleDisplayable>(subjectHolder, Model.ITEMS_LIST) {
-			@Override
-			protected ListIterator<SimpleDisplayable> listIterator_() {
-				return subject.items();
-			}
-
-			@Override
-			protected int size_() {
-				return subject.itemsSize();
-			}
-		};
-	}
-
-	protected abstract AbstractComboModelAdapter<SimpleDisplayable> buildReadOnlyComboModelAdapter();
-
-	private SimpleDisplayable buildSelectedItem() {
-		return new SimpleDisplayable("baz");
-	}
-
-	private WritablePropertyValueModel<SimpleDisplayable> buildSelectedItemHolder() {
-		return new PropertyAspectAdapter<Model, SimpleDisplayable>(subjectHolder, Model.ITEM_PROPERTY) {
-			@Override
-			protected SimpleDisplayable buildValue_() {
-				return subject.getItem();
-			}
-
-			@Override
-			protected void setValue_(SimpleDisplayable value) {
-				subject.setItem(value);
-			}
-		};
-	}
-
-	protected final StringConverter<SimpleDisplayable> buildStringConverter() {
-		return new StringConverter<SimpleDisplayable>() {
-			public String convertToString(SimpleDisplayable value) {
-				return (value == null) ? "" : value.displayString();
-			}
-		};
-	}
-
-	private WritablePropertyValueModel<Model> buildSubjectHolder() {
-		return new SimplePropertyValueModel<Model>();
-	}
-
-	public abstract String comboSelectedItem();
-
-	protected abstract boolean emptyComboCanHaveSelectedValue();
-
-	protected abstract String itemAt(int index);
-
-	protected abstract int itemCounts();
-
-	private void populateCollection(Collection<SimpleDisplayable> c) {
-		c.add(new SimpleDisplayable("foo"));
-		c.add(new SimpleDisplayable("bar"));
-		c.add(new SimpleDisplayable("baz"));
-		c.add(new SimpleDisplayable("joo"));
-		c.add(new SimpleDisplayable("jar"));
-		c.add(new SimpleDisplayable("jaz"));
-	}
-
-	protected final WritablePropertyValueModel<SimpleDisplayable> selectedItemHolder() {
-		return selectedItemHolder;
-	}
-
-	@Before
-	public void setUp() throws Exception {
-
-		shell              = new Shell(Display.getCurrent());
-		model              = new Model();
-		subjectHolder      = buildSubjectHolder();
-		selectedItemHolder = buildSelectedItemHolder();
-	}
-
-	protected final Shell shell() {
-		return shell;
-	}
-
-	protected final WritablePropertyValueModel<Model> subjectHolder() {
-		return subjectHolder;
-	}
-
-	@After
-	public void tearDown() throws Exception {
-
-		if (!shell.isDisposed()) {
-			shell.dispose();
-		}
-
-		shell              = null;
-		subjectHolder      = null;
-		selectedItemHolder = null;
-	}
-
-	private void testItems() {
-
-		assertEquals(
-			"The count of items is not in sync with the model",
-			model.itemsSize(),
-			itemCounts()
-		);
-
-		for (int index = 0; index < model.itemsSize(); index++) {
-			assertEquals(
-				"The item at index " + index + " is not the same between the model and the combo",
-				model.itemAt(index).displayString(),
-				itemAt(index)
-			);
-		}
-	}
-
-	@Test
-	public void testNonNullSubjectAfter_AddedAfter_ReadOnly() throws Exception {
-
-		buildReadOnlyComboModelAdapter();
-		testRemoveItems_AddedAfter();
-	}
-
-	@Test
-	public void testNonNullSubjectAfter_AddedAfter_RemoveItems_Editable() throws Exception {
-
-		buildEditableComboModelAdapter();
-		testRemoveItems_AddedAfter();
-	}
-
-	@Test
-	public void testNonNullSubjectAfter_AddedBefore_RemoveItems_Editable() throws Exception {
-
-		subjectHolder.setValue(model);
-		model.addItems(buildList());
-
-		buildEditableComboModelAdapter();
-		testSelectedItem(null);
-		testItems();
-
-		ArrayList<SimpleDisplayable> items = new ArrayList<SimpleDisplayable>();
-		items.add(model.itemAt(0));
-		items.add(model.itemAt(3));
-		model.removeItems(items.iterator());
-		testItems();
-	}
-
-	@Test
-	public void testNonNullSubjectAfter_AddedBefore_RemoveItems_ReadOnly() throws Exception {
-
-		subjectHolder.setValue(model);
-		model.addItems(buildList());
-
-		buildReadOnlyComboModelAdapter();
-		testSelectedItem(null);
-		testItems();
-
-		ArrayList<SimpleDisplayable> items = new ArrayList<SimpleDisplayable>();
-		items.add(model.itemAt(0));
-		items.add(model.itemAt(3));
-		model.removeItems(items.iterator());
-		testItems();
-	}
-
-	@Test
-	public void testNonNullSubjectAfter_NullSelectedItem_ItemsAfterAfter_Editable() throws Exception {
-
-		buildEditableComboModelAdapter();
-
-		subjectHolder.setValue(model);
-		model.addItems(buildList());
-
-		testSelectedItem(null);
-		testItems();
-	}
-
-	@Test
-	public void testNonNullSubjectAfter_NullSelectedItem_ItemsAfterAfter_ReadOnly() throws Exception {
-
-		buildReadOnlyComboModelAdapter();
-
-		subjectHolder.setValue(model);
-		model.addItems(buildList());
-
-		testSelectedItem(null);
-		testItems();
-	}
-
-	@Test
-	public void testNonNullSubjectAfter_NullSelectedItem_ItemsAfterBefore_Editable() throws Exception {
-
-		buildEditableComboModelAdapter();
-
-		model.addItems(buildList());
-		subjectHolder.setValue(model);
-
-		testSelectedItem(null);
-		testItems();
-	}
-
-	@Test
-	public void testNonNullSubjectAfter_NullSelectedItem_ItemsAfterBefore_ReadOnly() throws Exception {
-
-		buildReadOnlyComboModelAdapter();
-
-		model.addItems(buildList());
-		subjectHolder.setValue(model);
-
-		testSelectedItem(null);
-		testItems();
-	}
-
-	@Test
-	public void testNonNullSubjectAfter_NullSelectedItem_ItemsBefore_Editable() throws Exception {
-
-		model.addItems(buildList());
-		buildEditableComboModelAdapter();
-
-		subjectHolder.setValue(model);
-		testSelectedItem(null);
-		testItems();
-	}
-
-	@Test
-	public void testNonNullSubjectAfter_NullSelectedItem_ItemsBefore_ReadOnly() throws Exception {
-
-		model.addItems(buildList());
-		buildReadOnlyComboModelAdapter();
-
-		subjectHolder.setValue(model);
-		testSelectedItem(null);
-		testItems();
-	}
-
-	@Test
-	public void testNonNullSubjectAfter_NullSelectedItem_NoItems_Editable() throws Exception {
-
-		buildEditableComboModelAdapter();
-
-		subjectHolder.setValue(model);
-		testSelectedItem(null);
-		testItems();
-	}
-
-	@Test
-	public void testNonNullSubjectAfter_NullSelectedItem_NoItems_ReadOnly() throws Exception {
-
-		buildReadOnlyComboModelAdapter();
-
-		subjectHolder.setValue(model);
-		testSelectedItem(null);
-		testItems();
-	}
-
-	@Test
-	public void testNonNullSubjectAfter_SelectedItemChanged_ReadOnly() throws Exception {
-
-		subjectHolder.setValue(model);
-		model.addItems(buildList());
-
-		SimpleDisplayable selectedItem = model.itemAt(0);
-
-		AbstractComboModelAdapter<SimpleDisplayable> adapter = buildEditableComboModelAdapter();
-		SelectionListener selectionListener = new SelectionListener();
-		adapter.addSelectionChangeListener(selectionListener);
-
-		assertFalse("The selected item wasn't supposed to be modified", model.isSetItemCalled());
-		testSelectedItem(null);
-
-		testSelectedItemChanged(selectedItem, selectionListener);
-	}
-
-	@Test
-	public void testNonNullSubjectBefore_NonNullSelectedItemAfter_Editable() throws Exception {
-
-		SimpleDisplayable selectedItem = buildSelectedItem();
-		subjectHolder.setValue(model);
-
-		buildEditableComboModelAdapter();
-		assertFalse("The selected item wasn't supposed to be modified", model.isSetItemCalled());
-
-		model.setItem(selectedItem);
-		assertTrue("The selected item was supposed to be modified", model.isSetItemCalled());
-		assertSame("The selected item wasn't set properly", selectedItem, model.getItem());
-
-		testSelectedItem(selectedItem);
-		testItems();
-	}
-
-	@Test
-	public void testNonNullSubjectBefore_NonNullSelectedItemAfter_Items_Editable() throws Exception {
-
-		SimpleDisplayable selectedItem = buildSelectedItem();
-		subjectHolder.setValue(model);
-
-		buildEditableComboModelAdapter();
-		assertFalse("The selected item wasn't supposed to be modified", model.isSetItemCalled());
-
-		model.setItem(selectedItem);
-		assertTrue("The selected item was supposed to be modified", model.isSetItemCalled());
-		assertSame("The selected item wasn't set properly", selectedItem, model.getItem());
-
-		testSelectedItem(selectedItem);
-		testItems();
-	}
-
-	@Test
-	public void testNonNullSubjectBefore_NonNullSelectedItemAfter_Items_ReadOnly() throws Exception {
-
-		List<SimpleDisplayable> list = buildList();
-		SimpleDisplayable selectedItem = list.get(0);
-		subjectHolder.setValue(model);
-
-		buildReadOnlyComboModelAdapter();
-		assertFalse("The selected item wasn't supposed to be modified", model.isSetItemCalled());
-
-		model.setItem(selectedItem);
-		assertTrue("The selected item was supposed to be modified", model.isSetItemCalled());
-		assertSame("The selected item wasn't set properly", selectedItem, model.getItem());
-
-		testSelectedItem(selectedItem);
-		testItems();
-	}
-
-	@Test
-	public void testNonNullSubjectBefore_NonNullSelectedItemAfter_ReadOnly() throws Exception {
-
-		List<SimpleDisplayable> list = buildList();
-		SimpleDisplayable selectedItem = list.get(0);
-		subjectHolder.setValue(model);
-
-		buildReadOnlyComboModelAdapter();
-		assertFalse("The selected item wasn't supposed to be modified", model.isSetItemCalled());
-
-		model.setItem(selectedItem);
-		assertTrue("The selected item was supposed to be modified", model.isSetItemCalled());
-		assertSame("The selected item wasn't set properly", selectedItem, model.getItem());
-
-		testSelectedItem(selectedItem);
-		testItems();
-	}
-
-	@Test
-	public void testNonNullSubjectBefore_NonNullSelectedItemBefore_Editable() throws Exception {
-
-		model.addItems(buildList());
-		SimpleDisplayable selectedItem = model.itemAt(0);
-		subjectHolder.setValue(model);
-
-		model.setItem(selectedItem);
-		assertTrue("The selected item was supposed to be modified", model.isSetItemCalled());
-		assertSame("The selected item wasn't set properly", selectedItem, model.getItem());
-
-		model.clearItemCalledFlag();
-		buildEditableComboModelAdapter();
-		assertFalse("The selected item wasn't supposed to be modified", model.isSetItemCalled());
-
-		testSelectedItem(selectedItem);
-		testItems();
-	}
-
-	@Test
-	public void testNonNullSubjectBefore_NonNullSelectedItemBefore_Items_Editable() throws Exception {
-
-		model.addItems(buildList());
-		SimpleDisplayable selectedItem = model.itemAt(0);
-		subjectHolder.setValue(model);
-
-		model.setItem(selectedItem);
-		assertTrue("The selected item was supposed to be modified", model.isSetItemCalled());
-		assertSame("The selected item wasn't set properly", selectedItem, model.getItem());
-
-		model.clearItemCalledFlag();
-		buildEditableComboModelAdapter();
-		assertFalse("The selected item wasn't supposed to be modified", model.isSetItemCalled());
-
-		testSelectedItem(selectedItem);
-		testItems();
-	}
-
-	@Test
-	public void testNonNullSubjectBefore_NonNullSelectedItemBefore_Items_ReadOnly() throws Exception {
-
-		List<SimpleDisplayable> list = buildList();
-		SimpleDisplayable selectedItem = list.get(0);
-		subjectHolder.setValue(model);
-
-		model.setItem(selectedItem);
-		assertTrue("The selected item was supposed to be modified", model.isSetItemCalled());
-		assertSame("The selected item wasn't set properly", selectedItem, model.getItem());
-
-		model.clearItemCalledFlag();
-		buildReadOnlyComboModelAdapter();
-		assertFalse("The selected item wasn't supposed to be modified", model.isSetItemCalled());
-
-		testSelectedItem(selectedItem);
-		testItems();
-	}
-
-	@Test
-	public void testNonNullSubjectBefore_NonNullSelectedItemBefore_ReadOnly() throws Exception {
-
-		List<SimpleDisplayable> list = buildList();
-		SimpleDisplayable selectedItem = list.get(0);
-		subjectHolder.setValue(model);
-
-		model.setItem(selectedItem);
-		assertTrue("The selected item was supposed to be modified", model.isSetItemCalled());
-		assertSame("The selected item wasn't set properly", selectedItem, model.getItem());
-
-		model.clearItemCalledFlag();
-		buildReadOnlyComboModelAdapter();
-		assertFalse("The selected item wasn't supposed to be modified", model.isSetItemCalled());
-
-		testSelectedItem(selectedItem);
-		testItems();
-	}
-
-	@Test
-	public void testNonNullSubjectBefore_NullSelectedItem_Items_Editable() throws Exception {
-
-		subjectHolder.setValue(model);
-
-		buildEditableComboModelAdapter();
-
-		assertFalse("The item wasn't supposed to be modified", model.isSetItemCalled());
-		assertNull("The selected item is supposed to remain null", model.getItem());
-		testSelectedItem(null);
-		testItems();
-	}
-
-	@Test
-	public void testNonNullSubjectBefore_NullSelectedItem_Items_ReadOnly() throws Exception {
-
-		subjectHolder.setValue(model);
-
-		buildEditableComboModelAdapter();
-
-		assertFalse("The item wasn't supposed to be modified", model.isSetItemCalled());
-		assertNull("The selected item is supposed to remain null", model.getItem());
-		testSelectedItem(null);
-		testItems();
-	}
-
-	@Test
-	public void testNonNullSubjectBefore_NullSelectedItem_NoItems_Editable() throws Exception {
-
-		subjectHolder.setValue(model);
-
-		buildEditableComboModelAdapter();
-
-		assertFalse("The item wasn't supposed to be modified", model.isSetItemCalled());
-		assertNull("The selected item is supposed to remain null", model.getItem());
-		testSelectedItem(null);
-		testItems();
-	}
-
-	@Test
-	public void testNonNullSubjectBefore_NullSelectedItem_NoItems_ReadOnly() throws Exception {
-
-		subjectHolder.setValue(model);
-
-		buildEditableComboModelAdapter();
-
-		assertFalse("The item wasn't supposed to be modified", model.isSetItemCalled());
-		assertNull("The selected item is supposed to remain null", model.getItem());
-		testSelectedItem(null);
-		testItems();
-	}
-
-	@Test
-	public void testNonNullSubjectBefore_SelectedItemChanged_Editable() throws Exception {
-
-		model.addItems(buildList());
-
-		SimpleDisplayable selectedItem = model.itemAt(3);
-		subjectHolder.setValue(model);
-
-		AbstractComboModelAdapter<SimpleDisplayable> adapter = buildEditableComboModelAdapter();
-		SelectionListener selectionListener = new SelectionListener();
-		adapter.addSelectionChangeListener(selectionListener);
-
-		assertFalse("The selected item wasn't supposed to be modified", model.isSetItemCalled());
-		testSelectedItem(null);
-
-		testSelectedItemChanged(selectedItem, selectionListener);
-	}
-
-	private void testNullSubject() throws Exception {
-
-		assertNull("The selected item should be null", selectedItemHolder.getValue());
-
-		selectedItemHolder.setValue(buildSelectedItem());
-		assertFalse("The item wasn't supposed to be modified", model.isSetItemCalled());
-
-		// Null because the subject holder doesn't have the subject set
-		testSelectedItem(null);
-		testItems();
-	}
-
-	@Test
-	public void testNullSubject_NullSelectedItem_Items_Editable() throws Exception {
-		buildEditableComboModelAdapter();
-		testNullSubject();
-		testItems();
-		testSelectedItem(null);
-	}
-
-	@Test
-	public void testNullSubject_NullSelectedItem_Items_ReadOnly() throws Exception {
-		buildReadOnlyComboModelAdapter();
-		testNullSubject();
-		testItems();
-		testSelectedItem(null);
-	}
-
-	@Test
-	public void testNullSubject_NullSelectedItem_NoItems_Editable() throws Exception {
-		buildEditableComboModelAdapter();
-		testNullSubject();
-		testItems();
-		testSelectedItem(null);
-	}
-
-	@Test
-	public void testNullSubject_NullSelectedItem_NoItems_ReadOnly() throws Exception {
-		buildReadOnlyComboModelAdapter();
-		testNullSubject();
-		testItems();
-		testSelectedItem(null);
-	}
-
-	private void testRemoveItems_AddedAfter() {
-
-		subjectHolder.setValue(model);
-		model.addItems(buildList());
-
-		testSelectedItem(null);
-		testItems();
-		testSelectedItem(null);
-
-		ArrayList<SimpleDisplayable> items = new ArrayList<SimpleDisplayable>();
-		items.add(model.itemAt(0));
-		items.add(model.itemAt(3));
-		model.removeItems(items.iterator());
-
-		testItems();
-		testSelectedItem(null);
-	}
-
-	private void testSelectedItem(SimpleDisplayable selectedItem) {
-
-		if (selectedItem == null) {
-
-			assertNull(
-				"The selected item is supposed to be null",
-				model.getItem()
-			);
-
-			assertEquals(
-				"The combo's selected item should be null",
-				"",
-				comboSelectedItem()
-			);
-		}
-		else if (!emptyComboCanHaveSelectedValue()) {
-
-			assertEquals(
-				"The selected item wasn't set correctly",
-				selectedItem,
-				model.getItem()
-			);
-
-			assertEquals(
-				"The combo's selected item should be null",
-				"",
-				comboSelectedItem()
-			);
-		}
-		else {
-
-			assertEquals(
-				"The selected item wasn't set correctly",
-				selectedItem,
-				model.getItem()
-			);
-
-			assertEquals(
-				"The selected item wasn't set correctly",
-				selectedItem.displayString(),
-				comboSelectedItem()
-			);
-		}
-	}
-
-	private void testSelectedItemChanged(SimpleDisplayable selectedItem,
-	                                     SelectionListener selectionListener) {
-
-		// Test 1
-		model.setItem(selectedItem);
-		assertTrue("The selected item was supposed to be modified", model.isSetItemCalled());
-		assertSame("The selected item wasn't set properly", selectedItem, model.getItem());
-		assertTrue("The SelectionListener was supposed to be notified", selectionListener.isListenerNotified());
-		assertSame("The SelectionListener was supposed to be notified", selectedItem, selectionListener.getItem());
-		testSelectedItem(selectedItem);
-
-		// Test 2
-		selectedItem = model.itemAt(1);
-		model.clearItemCalledFlag();
-		selectionListener.clearInfo();
-
-		model.setItem(selectedItem);
-		assertTrue("The selected item was supposed to be modified", model.isSetItemCalled());
-		assertSame("The selected item wasn't set properly", selectedItem, model.getItem());
-		assertTrue("The SelectionListener was supposed to be notified", selectionListener.isListenerNotified());
-		assertSame("The SelectionListener was supposed to be notified", selectedItem, selectionListener.getItem());
-		testSelectedItem(selectedItem);
-
-		// Test 3
-		selectedItem = null;
-		model.clearItemCalledFlag();
-		selectionListener.clearInfo();
-
-		model.setItem(selectedItem);
-		assertTrue("The selected item was supposed to be modified", model.isSetItemCalled());
-		assertNull("The selected item wasn't set properly", model.getItem());
-		assertTrue("The SelectionListener was supposed to be notified", selectionListener.isListenerNotified());
-		assertSame("The SelectionListener was supposed to be notified", selectedItem, selectionListener.getItem());
-		testSelectedItem(selectedItem);
-
-		// Test 3
-		selectedItem = model.itemAt(2);
-		model.clearItemCalledFlag();
-		selectionListener.clearInfo();
-
-		model.setItem(selectedItem);
-		assertTrue("The selected item was supposed to be modified", model.isSetItemCalled());
-		assertSame("The selected item wasn't set properly", selectedItem, model.getItem());
-		assertTrue("The SelectionListener was supposed to be notified", selectionListener.isListenerNotified());
-		assertSame("The SelectionListener was supposed to be notified", selectedItem, selectionListener.getItem());
-		testSelectedItem(selectedItem);
-	}
-
-	private static class Model extends AbstractModel {
-
-		private SimpleDisplayable item;
-		private List<SimpleDisplayable> items = new ArrayList<SimpleDisplayable>();
-		private boolean setItemCalled;
-
-		static final String ITEM_PROPERTY = "item";
-		static final String ITEMS_LIST = "items";
-
-		void addItems(Iterator<SimpleDisplayable> items) {
-			addItemsToList(items, this.items, ITEMS_LIST);
-		}
-
-		void addItems(List<SimpleDisplayable> items) {
-			addItemsToList(items, this.items, ITEMS_LIST);
-		}
-
-		void clearItemCalledFlag() {
-			setItemCalled = false;
-		}
-
-		SimpleDisplayable getItem() {
-			return item;
-		}
-
-		boolean isSetItemCalled() {
-			return setItemCalled;
-		}
-
-		SimpleDisplayable itemAt(int index) {
-			return this.items.get(index);
-		}
-
-		ListIterator<SimpleDisplayable> items() {
-			return items.listIterator();
-		}
-
-		int itemsSize() {
-			return items.size();
-		}
-
-		void removeItems(Iterator<SimpleDisplayable> items) {
-			removeItemsFromList(items, this.items, ITEMS_LIST);
-		}
-
-		void setItem(SimpleDisplayable item) {
-			setItemCalled = true;
-
-			SimpleDisplayable oldItem = this.item;
-			this.item = item;
-			firePropertyChanged(ITEM_PROPERTY, oldItem, item);
-		}
-	}
-
-	private class SelectionListener implements SelectionChangeListener<SimpleDisplayable> {
-
-		private SimpleDisplayable item;
-		private boolean listenerNotified;
-
-		void clearInfo() {
-			this.listenerNotified = false;
-			this.item = null;
-		}
-
-		SimpleDisplayable getItem() {
-			return item;
-		}
-
-		public boolean isListenerNotified() {
-			return listenerNotified;
-		}
-
-		public void selectionChanged(SelectionChangeEvent<SimpleDisplayable> e) {
-			listenerNotified = true;
-			item = e.selectedItem();
-		}
-	}
-}
diff --git a/jpa/tests/org.eclipse.jpt.ui.tests/src/org/eclipse/jpt/ui/tests/internal/swt/CComboModelAdapterTest.java b/jpa/tests/org.eclipse.jpt.ui.tests/src/org/eclipse/jpt/ui/tests/internal/swt/CComboModelAdapterTest.java
deleted file mode 100644
index 4cf143e..0000000
--- a/jpa/tests/org.eclipse.jpt.ui.tests/src/org/eclipse/jpt/ui/tests/internal/swt/CComboModelAdapterTest.java
+++ /dev/null
@@ -1,75 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- *
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.ui.tests.internal.swt;
-
-import org.eclipse.jpt.ui.internal.swt.AbstractComboModelAdapter;
-import org.eclipse.jpt.ui.internal.swt.CComboModelAdapter;
-import org.eclipse.jpt.utility.internal.swing.SimpleDisplayable;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.custom.CCombo;
-import org.junit.After;
-
-public class CComboModelAdapterTest extends AbstractComboModelAdapterTest {
-
-	private CCombo combo;
-
-	@Override
-	protected AbstractComboModelAdapter<SimpleDisplayable> buildEditableComboModelAdapter() {
-
-		combo = new CCombo(shell(), SWT.NULL);
-
-		return CComboModelAdapter.adapt(
-			buildListHolder(),
-			selectedItemHolder(),
-			combo,
-			buildStringConverter()
-		);
-	}
-
-	@Override
-	protected AbstractComboModelAdapter<SimpleDisplayable> buildReadOnlyComboModelAdapter() {
-
-		combo = new CCombo(shell(), SWT.READ_ONLY);
-
-		return CComboModelAdapter.adapt(
-			buildListHolder(),
-			selectedItemHolder(),
-			combo,
-			buildStringConverter()
-		);
-	}
-
-	@Override
-	public String comboSelectedItem() {
-		return combo.getText();
-	}
-
-	@Override
-	protected boolean emptyComboCanHaveSelectedValue() {
-		return true;
-	}
-
-	@Override
-	protected String itemAt(int index) {
-		return this.combo.getItem(index);
-	}
-
-	@Override
-	protected int itemCounts() {
-		return combo.getItemCount();
-	}
-
-	@After
-	@Override
-	public void tearDown() throws Exception {
-		super.tearDown();
-		combo = null;
-	}
-}
diff --git a/jpa/tests/org.eclipse.jpt.ui.tests/src/org/eclipse/jpt/ui/tests/internal/swt/CheckBoxModelAdapterUITest.java b/jpa/tests/org.eclipse.jpt.ui.tests/src/org/eclipse/jpt/ui/tests/internal/swt/CheckBoxModelAdapterUITest.java
deleted file mode 100644
index d2cf139..0000000
--- a/jpa/tests/org.eclipse.jpt.ui.tests/src/org/eclipse/jpt/ui/tests/internal/swt/CheckBoxModelAdapterUITest.java
+++ /dev/null
@@ -1,318 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2008 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.ui.tests.internal.swt;
-
-import org.eclipse.jface.action.Action;
-import org.eclipse.jface.action.ActionContributionItem;
-import org.eclipse.jface.action.IAction;
-import org.eclipse.jface.window.ApplicationWindow;
-import org.eclipse.jface.window.Window;
-import org.eclipse.jpt.ui.internal.swt.BooleanButtonModelAdapter;
-import org.eclipse.jpt.utility.internal.ClassTools;
-import org.eclipse.jpt.utility.internal.model.AbstractModel;
-import org.eclipse.jpt.utility.internal.model.value.PropertyAspectAdapter;
-import org.eclipse.jpt.utility.internal.model.value.SimplePropertyValueModel;
-import org.eclipse.jpt.utility.model.value.PropertyValueModel;
-import org.eclipse.jpt.utility.model.value.WritablePropertyValueModel;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.events.SelectionEvent;
-import org.eclipse.swt.events.SelectionListener;
-import org.eclipse.swt.layout.FillLayout;
-import org.eclipse.swt.layout.FormAttachment;
-import org.eclipse.swt.layout.FormData;
-import org.eclipse.swt.layout.FormLayout;
-import org.eclipse.swt.widgets.Button;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Control;
-import org.eclipse.swt.widgets.Display;
-import org.eclipse.swt.widgets.Shell;
-
-/**
- * Play around with a set of check boxes.
- */
-public class CheckBoxModelAdapterUITest
-	extends ApplicationWindow
-{
-	private final TestModel testModel;
-	private final WritablePropertyValueModel<TestModel> testModelHolder;
-	private final WritablePropertyValueModel<Boolean> flag1Holder;
-	private final WritablePropertyValueModel<Boolean> flag2Holder;
-	private final WritablePropertyValueModel<Boolean> notFlag2Holder;
-
-	public static void main(String[] args) throws Exception {
-		Window window = new CheckBoxModelAdapterUITest(args);
-		window.setBlockOnOpen(true);
-		window.open();
-		Display.getCurrent().dispose();
-		System.exit(0);
-	}
-
-	private CheckBoxModelAdapterUITest(String[] args) {
-		super(null);
-		this.testModel = new TestModel(true, true);
-		this.testModelHolder = new SimplePropertyValueModel<TestModel>(this.testModel);
-		this.flag1Holder = this.buildFlag1Holder(this.testModelHolder);
-		this.flag2Holder = this.buildFlag2Holder(this.testModelHolder);
-		this.notFlag2Holder = this.buildNotFlag2Holder(this.testModelHolder);
-	}
-
-	private WritablePropertyValueModel<Boolean> buildFlag1Holder(PropertyValueModel<TestModel> subjectHolder) {
-		return new PropertyAspectAdapter<TestModel, Boolean>(subjectHolder, TestModel.FLAG1_PROPERTY) {
-			@Override
-			protected Boolean buildValue_() {
-				return Boolean.valueOf(this.subject.isFlag1());
-			}
-			@Override
-			protected void setValue_(Boolean value) {
-				this.subject.setFlag1(value.booleanValue());
-			}
-		};
-	}
-
-	private WritablePropertyValueModel<Boolean> buildFlag2Holder(PropertyValueModel<TestModel> subjectHolder) {
-		return new PropertyAspectAdapter<TestModel, Boolean>(subjectHolder, TestModel.FLAG2_PROPERTY) {
-			@Override
-			protected Boolean buildValue_() {
-				return Boolean.valueOf(this.subject.isFlag2());
-			}
-			@Override
-			protected void setValue_(Boolean value) {
-				this.subject.setFlag2(value.booleanValue());
-			}
-		};
-	}
-
-	private WritablePropertyValueModel<Boolean> buildNotFlag2Holder(PropertyValueModel<TestModel> subjectHolder) {
-		return new PropertyAspectAdapter<TestModel, Boolean>(subjectHolder, TestModel.NOT_FLAG2_PROPERTY) {
-			@Override
-			protected Boolean buildValue_() {
-				return Boolean.valueOf(this.subject.isNotFlag2());
-			}
-			@Override
-			protected void setValue_(Boolean value) {
-				this.subject.setNotFlag2(value.booleanValue());
-			}
-		};
-	}
-
-	@Override
-	protected Control createContents(Composite parent) {
-		((Shell) parent).setText(ClassTools.shortClassNameForObject(this));
-		parent.setSize(400, 100);
-		Composite mainPanel = new Composite(parent, SWT.NONE);
-		mainPanel.setLayout(new FormLayout());
-		Control checkBoxPanel = this.buildCheckBoxPanel(mainPanel);
-		this.buildControlPanel(mainPanel, checkBoxPanel);
-		return mainPanel;
-	}
-
-	private Control buildCheckBoxPanel(Composite parent) {
-		Composite panel = new Composite(parent, SWT.NONE);
-
-		FormData fd = new FormData();
-			fd.top = new FormAttachment(0);
-			fd.bottom = new FormAttachment(100, -35);
-			fd.left = new FormAttachment(0);
-			fd.right = new FormAttachment(100);
-		panel.setLayoutData(fd);
-
-		panel.setLayout(new FillLayout());
-		this.buildFlag1CheckBox(panel);
-		this.buildFlag2CheckBox(panel);
-		this.buildNotFlag2CheckBox(panel);
-		this.buildUnattachedCheckBox(panel);
-
-		return panel;
-	}
-
-	private void buildFlag1CheckBox(Composite parent) {
-		Button checkBox = new Button(parent, SWT.CHECK);
-		checkBox.setText("flag 1");
-		BooleanButtonModelAdapter.adapt(this.flag1Holder, checkBox);
-	}
-
-	private void buildFlag2CheckBox(Composite parent) {
-		Button checkBox = new Button(parent, SWT.CHECK);
-		checkBox.setText("flag 2");
-		BooleanButtonModelAdapter.adapt(this.flag2Holder, checkBox);
-	}
-
-	private void buildNotFlag2CheckBox(Composite parent) {
-		Button checkBox = new Button(parent, SWT.CHECK);
-		checkBox.setText("not flag 2");
-		BooleanButtonModelAdapter.adapt(this.notFlag2Holder, checkBox);
-	}
-
-	private void buildUnattachedCheckBox(Composite parent) {
-		Button checkBox = new Button(parent, SWT.CHECK);
-		checkBox.setText("unattached");
-		checkBox.addSelectionListener(this.buildUnattachedSelectionListener());
-	}
-
-	private SelectionListener buildUnattachedSelectionListener() {
-		return new SelectionListener() {
-			public void widgetDefaultSelected(SelectionEvent e) {
-				System.out.println("unattached default selected: " + e);
-			}
-			public void widgetSelected(SelectionEvent e) {
-				System.out.println("unattached selected: " + e);
-			}
-		};
-	}
-
-	private void buildControlPanel(Composite parent, Control checkBoxPanel) {
-		Composite panel = new Composite(parent, SWT.NONE);
-		FormData fd = new FormData();
-			fd.top = new FormAttachment(checkBoxPanel);
-			fd.bottom = new FormAttachment(100);
-			fd.left = new FormAttachment(0);
-			fd.right = new FormAttachment(100);
-		panel.setLayoutData(fd);
-
-		panel.setLayout(new FillLayout());
-		this.buildFlipFlag1Button(panel);
-		this.buildNotFlag2ToggleButton(panel);
-		this.buildClearModelButton(panel);
-		this.buildRestoreModelButton(panel);
-		this.buildPrintModelButton(panel);
-	}
-
-	private void buildFlipFlag1Button(Composite parent) {
-		this.buildFlipFlag1ACI().fill(parent);
-	}
-
-	private ActionContributionItem buildFlipFlag1ACI() {
-		Action action = new Action("flip flag 1", IAction.AS_PUSH_BUTTON) {
-			@Override
-			public void run() {
-				CheckBoxModelAdapterUITest.this.flipFlag1();
-			}
-		};
-		action.setToolTipText("flip flag 1");
-		return new ActionContributionItem(action);
-	}
-
-	void flipFlag1() {
-		this.testModel.setFlag1( ! this.testModel.isFlag1());
-	}
-
-	private void buildNotFlag2ToggleButton(Composite parent) {
-		Button checkBox = new Button(parent, SWT.TOGGLE);
-		checkBox.setText("not flag 2");
-		BooleanButtonModelAdapter.adapt(this.notFlag2Holder, checkBox);
-	}
-
-	private void buildClearModelButton(Composite parent) {
-		this.buildClearModelACI().fill(parent);
-	}
-
-	private ActionContributionItem buildClearModelACI() {
-		Action action = new Action("clear model", IAction.AS_PUSH_BUTTON) {
-			@Override
-			public void run() {
-				CheckBoxModelAdapterUITest.this.clearModel();
-			}
-		};
-		action.setToolTipText("clear model");
-		return new ActionContributionItem(action);
-	}
-
-	void clearModel() {
-		this.testModelHolder.setValue(null);
-	}
-
-	private void buildRestoreModelButton(Composite parent) {
-		this.buildRestoreModelACI().fill(parent);
-	}
-
-	private ActionContributionItem buildRestoreModelACI() {
-		Action action = new Action("restore model", IAction.AS_PUSH_BUTTON) {
-			@Override
-			public void run() {
-				CheckBoxModelAdapterUITest.this.restoreModel();
-			}
-		};
-		action.setToolTipText("restore model");
-		return new ActionContributionItem(action);
-	}
-
-	void restoreModel() {
-		this.testModelHolder.setValue(this.testModel);
-	}
-
-	private void buildPrintModelButton(Composite parent) {
-		this.buildPrintModelACI().fill(parent);
-	}
-
-	private ActionContributionItem buildPrintModelACI() {
-		Action action = new Action("print model", IAction.AS_PUSH_BUTTON) {
-			@Override
-			public void run() {
-				CheckBoxModelAdapterUITest.this.printModel();
-			}
-		};
-		action.setToolTipText("print model");
-		return new ActionContributionItem(action);
-	}
-
-	void printModel() {
-		System.out.println("flag 1: " + this.testModel.isFlag1());
-		System.out.println("flag 2: " + this.testModel.isFlag2());
-		System.out.println("not flag 2: " + this.testModel.isNotFlag2());
-		System.out.println("***");
-	}
-
-
-	private class TestModel extends AbstractModel {
-		private boolean flag1;
-			public static final String FLAG1_PROPERTY = "flag1";
-		private boolean flag2;
-			public static final String FLAG2_PROPERTY = "flag2";
-		private boolean notFlag2;
-			public static final String NOT_FLAG2_PROPERTY = "notFlag2";
-	
-		public TestModel(boolean flag1, boolean flag2) {
-			this.flag1 = flag1;
-			this.flag2 = flag2;
-			this.notFlag2 = ! flag2;
-		}
-		public boolean isFlag1() {
-			return this.flag1;
-		}
-		public void setFlag1(boolean flag1) {
-			boolean old = this.flag1;
-			this.flag1 = flag1;
-			this.firePropertyChanged(FLAG1_PROPERTY, old, flag1);
-		}
-		public boolean isFlag2() {
-			return this.flag2;
-		}
-		public void setFlag2(boolean flag2) {
-			boolean old = this.flag2;
-			this.flag2 = flag2;
-			this.firePropertyChanged(FLAG2_PROPERTY, old, flag2);
-	
-			old = this.notFlag2;
-			this.notFlag2 = ! flag2;
-			this.firePropertyChanged(NOT_FLAG2_PROPERTY, old, this.notFlag2);
-		}
-		public boolean isNotFlag2() {
-			return this.notFlag2;
-		}
-		public void setNotFlag2(boolean notFlag2) {
-			this.setFlag2( ! notFlag2);
-		}
-		@Override
-		public String toString() {
-			return "TestModel(" + this.isFlag1() + " - " + this.isFlag2() + ")";
-		}
-	}
-
-}
diff --git a/jpa/tests/org.eclipse.jpt.ui.tests/src/org/eclipse/jpt/ui/tests/internal/swt/ComboModelAdapterTest.java b/jpa/tests/org.eclipse.jpt.ui.tests/src/org/eclipse/jpt/ui/tests/internal/swt/ComboModelAdapterTest.java
deleted file mode 100644
index 0fb152a..0000000
--- a/jpa/tests/org.eclipse.jpt.ui.tests/src/org/eclipse/jpt/ui/tests/internal/swt/ComboModelAdapterTest.java
+++ /dev/null
@@ -1,78 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- *
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.ui.tests.internal.swt;
-
-import org.eclipse.jpt.ui.internal.swt.AbstractComboModelAdapter;
-import org.eclipse.jpt.ui.internal.swt.ComboModelAdapter;
-import org.eclipse.jpt.utility.internal.swing.SimpleDisplayable;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.widgets.Combo;
-import org.junit.After;
-
-public class ComboModelAdapterTest extends AbstractComboModelAdapterTest {
-
-	private Combo combo;
-	private boolean editable;
-
-	@Override
-	protected AbstractComboModelAdapter<SimpleDisplayable> buildEditableComboModelAdapter() {
-
-		combo = new Combo(shell(), SWT.NULL);
-		editable = true;
-
-		return ComboModelAdapter.adapt(
-			buildListHolder(),
-			selectedItemHolder(),
-			combo,
-			buildStringConverter()
-		);
-	}
-
-	@Override
-	protected AbstractComboModelAdapter<SimpleDisplayable> buildReadOnlyComboModelAdapter() {
-
-		combo = new Combo(shell(), SWT.READ_ONLY);
-		editable = false;
-
-		return ComboModelAdapter.adapt(
-			buildListHolder(),
-			selectedItemHolder(),
-			combo,
-			buildStringConverter()
-		);
-	}
-
-	@Override
-	public String comboSelectedItem() {
-		return combo.getText();
-	}
-
-	@Override
-	protected boolean emptyComboCanHaveSelectedValue() {
-		return editable;
-	}
-
-	@Override
-	protected String itemAt(int index) {
-		return this.combo.getItem(index);
-	}
-
-	@Override
-	protected int itemCounts() {
-		return combo.getItemCount();
-	}
-
-	@After
-	@Override
-	public void tearDown() throws Exception {
-		super.tearDown();
-		combo = null;
-	}
-}
diff --git a/jpa/tests/org.eclipse.jpt.ui.tests/src/org/eclipse/jpt/ui/tests/internal/swt/JptUiSWTTests.java b/jpa/tests/org.eclipse.jpt.ui.tests/src/org/eclipse/jpt/ui/tests/internal/swt/JptUiSWTTests.java
deleted file mode 100644
index 12a8c2f..0000000
--- a/jpa/tests/org.eclipse.jpt.ui.tests/src/org/eclipse/jpt/ui/tests/internal/swt/JptUiSWTTests.java
+++ /dev/null
@@ -1,39 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- *
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.ui.tests.internal.swt;
-
-import junit.framework.JUnit4TestAdapter;
-import junit.framework.Test;
-import junit.framework.TestSuite;
-import org.junit.runner.RunWith;
-import org.junit.runners.Suite;
-import org.junit.runners.Suite.SuiteClasses;
-
-@SuiteClasses
-({
-	CComboModelAdapterTest.class,
-	ComboModelAdapterTest.class,
-	SpinnerModelAdapterTest.class,
-	TableModelAdapterTest.class
-})
-@RunWith(Suite.class)
-public final class JptUiSWTTests {
-
-	private JptUiSWTTests() {
-		super();
-		throw new UnsupportedOperationException();
-	}
-
-	public static Test suite() {
-		TestSuite suite = new TestSuite();
-		suite.addTest(new JUnit4TestAdapter(JptUiSWTTests.class));
-		return suite;
-	}
-}
diff --git a/jpa/tests/org.eclipse.jpt.ui.tests/src/org/eclipse/jpt/ui/tests/internal/swt/ListBoxModelAdapterUITest.java b/jpa/tests/org.eclipse.jpt.ui.tests/src/org/eclipse/jpt/ui/tests/internal/swt/ListBoxModelAdapterUITest.java
deleted file mode 100644
index 0f2dafe..0000000
--- a/jpa/tests/org.eclipse.jpt.ui.tests/src/org/eclipse/jpt/ui/tests/internal/swt/ListBoxModelAdapterUITest.java
+++ /dev/null
@@ -1,640 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2008 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.ui.tests.internal.swt;
-
-import java.text.Collator;
-import java.util.ArrayList;
-import java.util.Collection;
-import java.util.Comparator;
-import java.util.Date;
-import java.util.HashSet;
-import java.util.Iterator;
-import java.util.List;
-import java.util.ListIterator;
-import org.eclipse.jface.action.Action;
-import org.eclipse.jface.action.ActionContributionItem;
-import org.eclipse.jface.action.IAction;
-import org.eclipse.jface.window.ApplicationWindow;
-import org.eclipse.jface.window.Window;
-import org.eclipse.jpt.ui.internal.swt.ListBoxModelAdapter;
-import org.eclipse.jpt.ui.internal.swt.ListBoxModelAdapter.SelectionChangeEvent;
-import org.eclipse.jpt.utility.internal.ClassTools;
-import org.eclipse.jpt.utility.internal.model.AbstractModel;
-import org.eclipse.jpt.utility.internal.model.value.CollectionAspectAdapter;
-import org.eclipse.jpt.utility.internal.model.value.ListAspectAdapter;
-import org.eclipse.jpt.utility.internal.model.value.SimpleCollectionValueModel;
-import org.eclipse.jpt.utility.internal.model.value.SimplePropertyValueModel;
-import org.eclipse.jpt.utility.internal.model.value.SortedListValueModelAdapter;
-import org.eclipse.jpt.utility.model.Model;
-import org.eclipse.jpt.utility.model.value.CollectionValueModel;
-import org.eclipse.jpt.utility.model.value.ListValueModel;
-import org.eclipse.jpt.utility.model.value.WritablePropertyValueModel;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.layout.FillLayout;
-import org.eclipse.swt.layout.FormAttachment;
-import org.eclipse.swt.layout.FormData;
-import org.eclipse.swt.layout.FormLayout;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Control;
-import org.eclipse.swt.widgets.Display;
-import org.eclipse.swt.widgets.Label;
-import org.eclipse.swt.widgets.Shell;
-import org.eclipse.swt.widgets.Text;
-
-/**
- * an example UI for testing various permutations of the
- * StructuredContentProviderAdapter
- */
-public class ListBoxModelAdapterUITest
-	extends ApplicationWindow
-{
-	final TaskList taskList;
-	private final WritablePropertyValueModel<TaskList> taskListHolder;
-	private Text taskTextField;
-
-	public static void main(String[] args) throws Exception {
-		Window window = new ListBoxModelAdapterUITest(args);
-		window.setBlockOnOpen(true);
-		window.open();
-		Display.getCurrent().dispose();
-		System.exit(0);
-	}
-
-	private ListBoxModelAdapterUITest(String[] args) {
-		super(null);
-		this.taskList = new TaskList();
-		this.taskListHolder = new SimplePropertyValueModel<TaskList>(this.taskList);
-		this.taskList.addTask("swim");
-		this.taskList.addTask("bike");
-		this.taskList.addTask("run");
-		Task rest = this.taskList.addTask("rest");
-		this.taskList.addPriorityTask(rest);
-		Task repeat = this.taskList.addTask("repeat");
-		this.taskList.addPriorityTask(repeat);
-	}
-
-	@Override
-	protected Control createContents(Composite parent) {
-		((Shell) parent).setText(ClassTools.shortClassNameForObject(this));
-		parent.setSize(800, 400);
-		Composite mainPanel = new Composite(parent, SWT.NONE);
-		mainPanel.setLayout(new FormLayout());
-		Control taskListPanel = this.buildTaskListPanel(mainPanel);
-		this.buildControlPanel(mainPanel, taskListPanel);
-		return mainPanel;
-	}
-
-	private Control buildTaskListPanel(Composite parent) {
-		Composite panel = new Composite(parent, SWT.NONE);
-
-		FormData fd = new FormData();
-			fd.top = new FormAttachment(0);
-			fd.bottom = new FormAttachment(100, -30);
-			fd.left = new FormAttachment(0);
-			fd.right = new FormAttachment(100);
-		panel.setLayoutData(fd);
-
-		panel.setLayout(new FormLayout());
-		this.buildPrimitiveTaskListPanel(panel);
-		this.buildObjectTaskListPanel(panel);
-
-		return panel;
-	}
-
-	private void buildPrimitiveTaskListPanel(Composite parent) {
-		Composite panel = new Composite(parent, SWT.NONE);
-
-		FormData fd = new FormData();
-			fd.top = new FormAttachment(0);
-			fd.bottom = new FormAttachment(50);
-			fd.left = new FormAttachment(0);
-			fd.right = new FormAttachment(100);
-		panel.setLayoutData(fd);
-
-		panel.setLayout(new FillLayout());
-		this.buildUnsortedPrimitiveListPanel(panel);
-		this.buildStandardSortedPrimitiveListPanel(panel);
-		this.buildCustomSortedPrimitiveListPanel(panel);
-	}
-
-	private void buildObjectTaskListPanel(Composite parent) {
-		Composite panel = new Composite(parent, SWT.NONE);
-
-		FormData fd = new FormData();
-			fd.top = new FormAttachment(50);
-			fd.bottom = new FormAttachment(100);
-			fd.left = new FormAttachment(0);
-			fd.right = new FormAttachment(100);
-		panel.setLayoutData(fd);
-
-		panel.setLayout(new FillLayout());
-		this.buildUnsortedObjectListPanel(panel);
-		this.buildStandardSortedObjectListPanel(panel);
-		this.buildCustomSortedObjectListPanel(panel);
-	}
-
-	private void buildUnsortedPrimitiveListPanel(Composite parent) {
-		this.buildListPanel(parent, "primitive unsorted", this.buildUnsortedPrimitiveListModel(), new SimpleCollectionValueModel<String>());
-	}
-
-	private void buildStandardSortedPrimitiveListPanel(Composite parent) {
-		this.buildListPanel(parent, "primitive sorted", this.buildStandardSortedPrimitiveListModel(), new SimpleCollectionValueModel<String>());
-	}
-
-	private void buildCustomSortedPrimitiveListPanel(Composite parent) {
-		this.buildListPanel(parent, "primitive reverse sorted", this.buildCustomSortedPrimitiveListModel(), new SimpleCollectionValueModel<String>());
-	}
-
-	private void buildUnsortedObjectListPanel(Composite parent) {
-		this.buildListPanel2(parent, "object unsorted", this.buildUnsortedObjectListModel(), this.buildPriorityTaskListAdapter());
-	}
-
-	private void buildStandardSortedObjectListPanel(Composite parent) {
-		this.buildListPanel2(parent, "object sorted", this.buildStandardSortedObjectListModel(), this.buildPriorityTaskListAdapter());
-	}
-
-	private void buildCustomSortedObjectListPanel(Composite parent) {
-		this.buildListPanel2(parent, "object reverse sorted", this.buildCustomSortedObjectListModel(), this.buildPriorityTaskListAdapter());
-	}
-
-	private ListValueModel<String> buildUnsortedPrimitiveListModel() {
-		return this.buildPrimitiveTaskListAdapter();
-	}
-
-	private ListValueModel<String> buildStandardSortedPrimitiveListModel() {
-		return new SortedListValueModelAdapter<String>(this.buildPrimitiveTaskListAdapter());
-	}
-
-	private ListValueModel<String> buildCustomSortedPrimitiveListModel() {
-		return new SortedListValueModelAdapter<String>(this.buildPrimitiveTaskListAdapter(), this.buildCustomStringComparator());
-	}
-
-	private ListValueModel<Task> buildUnsortedObjectListModel() {
-		return this.buildObjectTaskListAdapter();
-	}
-
-	private ListValueModel<Task> buildStandardSortedObjectListModel() {
-		return new SortedListValueModelAdapter<Task>(this.buildObjectTaskListAdapter());
-	}
-
-	private ListValueModel<Task> buildCustomSortedObjectListModel() {
-		return new SortedListValueModelAdapter<Task>(this.buildObjectTaskListAdapter(), this.buildCustomTaskComparator());
-	}
-
-	private <E> ListBoxModelAdapter<E> buildListPanel(Composite parent, String label, ListValueModel<E> model, CollectionValueModel<E> selectedItemsModel) {
-		Composite panel = new Composite(parent, SWT.NONE);
-		panel.setLayout(new FormLayout());
-
-		Label listLabel = new Label(panel, SWT.LEFT | SWT.VERTICAL);
-		listLabel.setText(label);
-		FormData fd = new FormData();
-			fd.top = new FormAttachment(0, 3);
-			fd.bottom = new FormAttachment(0, 20);
-			fd.left = new FormAttachment(0, 5);
-			fd.right = new FormAttachment(100);
-		listLabel.setLayoutData(fd);
-
-		org.eclipse.swt.widgets.List listBox = new org.eclipse.swt.widgets.List(panel, SWT.MULTI | SWT.BORDER);
-		fd = new FormData();
-			fd.top = new FormAttachment(listLabel);
-			fd.bottom = new FormAttachment(100);
-			fd.left = new FormAttachment(0);
-			fd.right = new FormAttachment(100);
-		listBox.setLayoutData(fd);
-		return ListBoxModelAdapter.adapt(model, selectedItemsModel, listBox);  // use #toString()
-	}
-
-	private void buildListPanel2(Composite parent, String label, ListValueModel<Task> model, CollectionValueModel<Task> selectedItemsModel) {
-		ListBoxModelAdapter<Task> adapter = this.buildListPanel(parent, label, model, selectedItemsModel);
-		adapter.addDoubleClickListener(this.buildDoubleClickListener());
-		adapter.addSelectionChangeListener(this.buildSelectionChangeListener());
-	}
-
-	private ListBoxModelAdapter.DoubleClickListener<Task> buildDoubleClickListener() {
-		return new ListBoxModelAdapter.DoubleClickListener<Task>() {
-			public void doubleClick(ListBoxModelAdapter.DoubleClickEvent<Task> event) {
-				System.out.println("double-click: " + event.selection());
-			}
-		};
-	}
-
-	private ListBoxModelAdapter.SelectionChangeListener<Task> buildSelectionChangeListener() {
-		return new ListBoxModelAdapter.SelectionChangeListener<Task>() {
-			public void selectionChanged(SelectionChangeEvent<Task> event) {
-				ListBoxModelAdapterUITest.this.taskList.setPriorityTasks(event.selection());
-			}
-		};
-	}
-
-	private Comparator<String> buildCustomStringComparator() {
-		return new Comparator<String>() {
-			public int compare(String s1, String s2) {
-				return s2.compareTo(s1);
-			}
-		};
-	}
-
-	private Comparator<Task> buildCustomTaskComparator() {
-		return new Comparator<Task>() {
-			public int compare(Task to1, Task to2) {
-				return to2.compareTo(to1);
-			}
-		};
-	}
-
-	private ListValueModel<String> buildPrimitiveTaskListAdapter() {
-		return new ListAspectAdapter<TaskList, String>(this.taskListHolder, TaskList.TASK_NAMES_LIST) {
-			@Override
-			protected ListIterator<String> listIterator_() {
-				return this.subject.taskNames();
-			}
-		};
-	}
-
-	private ListValueModel<Task> buildObjectTaskListAdapter() {
-		return new ListAspectAdapter<TaskList, Task>(this.taskListHolder, TaskList.TASKS_LIST) {
-			@Override
-			protected ListIterator<Task> listIterator_() {
-				return this.subject.tasks();
-			}
-		};
-	}
-
-	private CollectionValueModel<Task> buildPriorityTaskListAdapter() {
-		return new CollectionAspectAdapter<TaskList, Task>(this.taskListHolder, TaskList.PRIORITY_TASKS_COLLECTION) {
-			@Override
-			protected Iterator<Task> iterator_() {
-				return this.subject.priorityTasks();
-			}
-		};
-	}
-
-	private void buildControlPanel(Composite parent, Control taskListPanel) {
-		Composite panel = new Composite(parent, SWT.NONE);
-		FormData fd = new FormData();
-			fd.top = new FormAttachment(taskListPanel);
-			fd.bottom = new FormAttachment(100);
-			fd.left = new FormAttachment(0);
-			fd.right = new FormAttachment(100);
-		panel.setLayoutData(fd);
-
-		panel.setLayout(new FormLayout());
-		Control misc = this.buildMiscTaskPanel(panel);
-		this.buildAddRemoveTaskPanel(panel, misc);
-	}
-
-	// is there a better way to associate an ACI with form data?
-	private Control buildMiscTaskPanel(Composite parent) {
-		Composite panel = new Composite(parent, SWT.NONE);
-		FormData fd = new FormData();
-			fd.top = new FormAttachment(0);
-			fd.bottom = new FormAttachment(100);
-			fd.left = new FormAttachment(100, -400);
-			fd.right = new FormAttachment(100);
-		panel.setLayoutData(fd);
-
-		panel.setLayout(new FillLayout());
-		this.buildClearListACI().fill(panel);
-		this.buildClearModelACI().fill(panel);
-		this.buildRestoreModelACI().fill(panel);
-		this.buildAddPriorityTaskACI().fill(panel);
-		this.buildRemovePriorityTaskACI().fill(panel);
-		this.buildClearPriorityTasksACI().fill(panel);
-		return panel;
-	}
-
-	private ActionContributionItem buildClearListACI() {
-		Action action = new Action("clear list", IAction.AS_PUSH_BUTTON) {
-			@Override
-			public void run() {
-				ListBoxModelAdapterUITest.this.clearTasks();
-			}
-		};
-		action.setToolTipText("clear all the tasks");
-		return new ActionContributionItem(action);
-	}
-
-	private ActionContributionItem buildClearModelACI() {
-		Action action = new Action("clear model", IAction.AS_PUSH_BUTTON) {
-			@Override
-			public void run() {
-				ListBoxModelAdapterUITest.this.clearModel();
-			}
-		};
-		action.setToolTipText("clear the task list model");
-		return new ActionContributionItem(action);
-	}
-
-	private ActionContributionItem buildRestoreModelACI() {
-		Action action = new Action("restore model", IAction.AS_PUSH_BUTTON) {
-			@Override
-			public void run() {
-				ListBoxModelAdapterUITest.this.restoreModel();
-			}
-		};
-		action.setToolTipText("restore the task list model");
-		return new ActionContributionItem(action);
-	}
-
-	private ActionContributionItem buildAddPriorityTaskACI() {
-		Action action = new Action("add priority", IAction.AS_PUSH_BUTTON) {
-			@Override
-			public void run() {
-				ListBoxModelAdapterUITest.this.addPriorityTask();
-			}
-		};
-		action.setToolTipText("add a task to the priority tasks");
-		return new ActionContributionItem(action);
-	}
-
-	private ActionContributionItem buildRemovePriorityTaskACI() {
-		Action action = new Action("remove priority", IAction.AS_PUSH_BUTTON) {
-			@Override
-			public void run() {
-				ListBoxModelAdapterUITest.this.removePriorityTask();
-			}
-		};
-		action.setToolTipText("remove a task from the priority tasks");
-		return new ActionContributionItem(action);
-	}
-
-	private ActionContributionItem buildClearPriorityTasksACI() {
-		Action action = new Action("clear priority", IAction.AS_PUSH_BUTTON) {
-			@Override
-			public void run() {
-				ListBoxModelAdapterUITest.this.clearPriorityTasks();
-			}
-		};
-		action.setToolTipText("clear the priority tasks");
-		return new ActionContributionItem(action);
-	}
-
-	private void buildAddRemoveTaskPanel(Composite parent, Control clearButton) {
-		Composite panel = new Composite(parent, SWT.NONE);
-		FormData fd = new FormData();
-			fd.top = new FormAttachment(0);
-			fd.bottom = new FormAttachment(100);
-			fd.left = new FormAttachment(0);
-			fd.right = new FormAttachment(clearButton);
-		panel.setLayoutData(fd);
-
-		panel.setLayout(new FormLayout());
-		Control addButton = this.buildAddButton(panel);
-		Control removeButton = this.buildRemoveButton(panel);
-		this.buildTaskTextField(panel, addButton, removeButton);
-	}
-
-	// is there a better way to associate an ACI with form data?
-	private Control buildAddButton(Composite parent) {
-		Composite panel = new Composite(parent, SWT.NONE);
-		FormData fd = new FormData();
-			fd.top = new FormAttachment(0);
-			fd.bottom = new FormAttachment(100);
-			fd.left = new FormAttachment(0);
-			fd.right = new FormAttachment(0, 50);
-		panel.setLayoutData(fd);
-
-		panel.setLayout(new FillLayout());
-		this.buildAddACI().fill(panel);
-		return panel;
-	}
-
-	private ActionContributionItem buildAddACI() {
-		Action action = new Action("add", IAction.AS_PUSH_BUTTON) {
-			@Override
-			public void run() {
-				ListBoxModelAdapterUITest.this.addTask();
-			}
-		};
-		action.setToolTipText("add a task with the name in the entry field");
-		return new ActionContributionItem(action);
-	}
-
-	// is there a better way to associate an ACI with form data?
-	private Control buildRemoveButton(Composite parent) {
-		Composite panel = new Composite(parent, SWT.NONE);
-		FormData fd = new FormData();
-			fd.top = new FormAttachment(0);
-			fd.bottom = new FormAttachment(100);
-			fd.left = new FormAttachment(100, -50);
-			fd.right = new FormAttachment(100);
-		panel.setLayoutData(fd);
-
-		panel.setLayout(new FillLayout());
-		this.buildRemoveACI().fill(panel);
-		return panel;
-	}
-
-	private ActionContributionItem buildRemoveACI() {
-		Action action = new Action("remove", IAction.AS_PUSH_BUTTON) {
-			@Override
-			public void run() {
-				ListBoxModelAdapterUITest.this.removeTask();
-			}
-		};
-		action.setToolTipText("remove the task with the name in the entry field");
-		return new ActionContributionItem(action);
-	}
-
-	private void buildTaskTextField(Composite parent, Control addButton, Control removeButton) {
-		this.taskTextField = new Text(parent, SWT.SINGLE | SWT.BORDER);
-		FormData fd = new FormData();
-			fd.top = new FormAttachment(0);
-			fd.bottom = new FormAttachment(100);
-			fd.left = new FormAttachment(addButton);
-			fd.right = new FormAttachment(removeButton);
-		this.taskTextField.setLayoutData(fd);
-	}
-
-	private String taskTextFieldText() {
-		return this.taskTextField.getText();
-	}
-
-	void addTask() {
-		String taskText = this.taskTextFieldText();
-		if (taskText.length() != 0) {
-			this.taskList.addTask(taskText);
-		}
-	}
-
-	void removeTask() {
-		String task = this.taskTextFieldText();
-		if (task.length() != 0) {
-			this.taskList.removeTask(task);
-		}
-	}
-
-	void clearTasks() {
-		this.taskList.clearTasks();
-	}
-
-	void clearModel() {
-		this.taskListHolder.setValue(null);
-	}
-
-	void restoreModel() {
-		this.taskListHolder.setValue(this.taskList);
-	}
-
-	void addPriorityTask() {
-		Iterator<Task> tasks = this.taskList.tasks();
-		while (tasks.hasNext()) {
-			if (this.taskList.addPriorityTask(tasks.next())) {
-				return;
-			}
-		}
-	}
-
-	void removePriorityTask() {
-		Iterator<Task> pTasks = this.taskList.priorityTasks();
-		if (pTasks.hasNext()) {
-			this.taskList.removePriorityTask(pTasks.next());
-		}
-	}
-
-	void clearPriorityTasks() {
-		this.taskList.clearPriorityTasks();
-	}
-
-
-	// ********** TaskList **********
-
-	// note absence of validation...
-	private class TaskList extends AbstractModel {
-		private final List<String> taskNames = new ArrayList<String>();
-			public static final String TASK_NAMES_LIST = "taskNames";
-		private final List<Task> tasks = new ArrayList<Task>();
-			public static final String TASKS_LIST = "tasks";
-		private final Collection<Task> priorityTasks = new HashSet<Task>();
-			public static final String PRIORITY_TASKS_COLLECTION = "priorityTasks";
-		TaskList() {
-			super();
-		}
-		public ListIterator<String> taskNames() {
-			return this.taskNames.listIterator();
-		}
-		public ListIterator<Task> tasks() {
-			return this.tasks.listIterator();
-		}
-		public Iterator<Task> priorityTasks() {
-			return this.priorityTasks.iterator();
-		}
-		public Task addTask(String taskName) {
-			this.addItemToList(taskName, this.taskNames, TASK_NAMES_LIST);
-			Task task = new Task(taskName);
-			this.addItemToList(task, this.tasks, TASKS_LIST);
-			return task;
-		}		
-		public void removeTask(String taskName) {
-			int index = this.taskNames.indexOf(taskName);
-			if (index != -1) {
-				this.removeItemFromList(index, this.taskNames, TASK_NAMES_LIST);
-				// assume the indexes match...
-				Task removedTask = this.removeItemFromList(index, this.tasks, TASKS_LIST);
-				this.removeItemFromCollection(removedTask, this.priorityTasks, PRIORITY_TASKS_COLLECTION);
-			}
-		}
-		public void clearTasks() {
-			this.taskNames.clear();
-			this.fireListCleared(TASK_NAMES_LIST);
-			this.tasks.clear();
-			this.fireListCleared(TASKS_LIST);
-		}
-		public boolean addPriorityTask(Task task) {
-			return this.addItemToCollection(task, this.priorityTasks, PRIORITY_TASKS_COLLECTION);
-		}		
-		public void removePriorityTask(Task task) {
-			this.removeItemFromCollection(task, this.priorityTasks, PRIORITY_TASKS_COLLECTION);
-		}
-		public void clearPriorityTasks() {
-			this.clearCollection(this.priorityTasks, PRIORITY_TASKS_COLLECTION);
-		}
-		public void setPriorityTasks(Iterator<Task> tasks) {
-			this.priorityTasks.clear();
-			while (tasks.hasNext()) {
-				this.priorityTasks.add(tasks.next());
-			}
-			this.fireCollectionChanged(PRIORITY_TASKS_COLLECTION);
-		}
-	}
-
-
-	// ********** Task **********
-
-	private class Task extends AbstractModel implements Displayable {
-		private String name;
-		private Date creationTimeStamp;
-		public Task(String name) {
-			this.name = name;
-			this.creationTimeStamp = new Date();
-		}
-		public String displayString() {
-			return this.name + ": " + this.creationTimeStamp.getTime();
-		}
-		public int compareTo(Displayable o) {
-			return DEFAULT_COMPARATOR.compare(this, o);
-		}
-		public String getName() {
-			return this.name;
-		}
-		public void setName(String name) {
-			Object old = this.name;
-			this.name = name;
-			this.firePropertyChanged(DISPLAY_STRING_PROPERTY, old, name);
-		}
-		@Override
-		public String toString() {
-			return this.displayString();
-		}
-	}
-
-	public interface Displayable extends Model, Comparable<Displayable> {
-	
-		String displayString();
-			String DISPLAY_STRING_PROPERTY = "displayString";
-	
-	
-		// ********** helper implementations **********
-	
-		Collator DEFAULT_COLLATOR = Collator.getInstance();
-	
-		Comparator<Displayable> DEFAULT_COMPARATOR =
-			new Comparator<Displayable>() {
-				public int compare(Displayable d1, Displayable d2) {
-					// disallow duplicates based on object identity
-					if (d1 == d2) {
-						return 0;
-					}
-	
-					// first compare display strings using the default collator
-					int result = DEFAULT_COLLATOR.compare(d1.displayString(), d2.displayString());
-					if (result != 0) {
-						return result;
-					}
-	
-					// then compare using object-id
-					result = System.identityHashCode(d1) - System.identityHashCode(d2);
-					if (result != 0) {
-						return result;
-					}
-	
-					// It's unlikely that we get to this point; but, just in case, we will return -1.
-					// Unfortunately, this introduces some mild unpredictability to the sort order
-					// (unless the objects are always passed into this method in the same order).
-					return -1;		// if all else fails, indicate that o1 < o2
-				}
-				@Override
-				public String toString() {
-					return "Displayable.DEFAULT_COMPARATOR";
-				}
-			};
-	
-	}
-}
diff --git a/jpa/tests/org.eclipse.jpt.ui.tests/src/org/eclipse/jpt/ui/tests/internal/swt/SpinnerModelAdapterTest.java b/jpa/tests/org.eclipse.jpt.ui.tests/src/org/eclipse/jpt/ui/tests/internal/swt/SpinnerModelAdapterTest.java
deleted file mode 100644
index cf1629f..0000000
--- a/jpa/tests/org.eclipse.jpt.ui.tests/src/org/eclipse/jpt/ui/tests/internal/swt/SpinnerModelAdapterTest.java
+++ /dev/null
@@ -1,340 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- *
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.ui.tests.internal.swt;
-
-import static org.junit.Assert.*;
-import org.eclipse.jpt.ui.internal.swt.SpinnerModelAdapter;
-import org.eclipse.jpt.utility.internal.model.AbstractModel;
-import org.eclipse.jpt.utility.internal.model.value.PropertyAspectAdapter;
-import org.eclipse.jpt.utility.internal.model.value.SimplePropertyValueModel;
-import org.eclipse.jpt.utility.model.value.WritablePropertyValueModel;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.widgets.Display;
-import org.eclipse.swt.widgets.Shell;
-import org.eclipse.swt.widgets.Spinner;
-import org.junit.After;
-import org.junit.Before;
-import org.junit.Test;
-
-@SuppressWarnings("nls")
-public class SpinnerModelAdapterTest {
-
-	private Model model;
-	private Shell shell;
-	private WritablePropertyValueModel<Model> subjectHolder;
-
-	private WritablePropertyValueModel<Model> buildSubjectHolder() {
-		return new SimplePropertyValueModel<Model>();
-	}
-
-	private WritablePropertyValueModel<Integer> buildValueHolder() {
-		return new PropertyAspectAdapter<Model, Integer>(subjectHolder, Model.VALUE_PROPERTY) {
-			@Override
-			protected Integer buildValue_() {
-				return subject.getValue();
-			}
-
-			@Override
-			protected void setValue_(Integer value) {
-				subject.setValue(value);
-			}
-		};
-	}
-
-	@Before
-	public void setUp() throws Exception {
-
-		shell              = new Shell(Display.getCurrent());
-		model              = new Model();
-		subjectHolder      = buildSubjectHolder();
-	}
-
-	@After
-	public void tearDown() throws Exception {
-
-		if (!shell.isDisposed()) {
-			shell.dispose();
-		}
-
-		shell         = null;
-		subjectHolder = null;
-	}
-
-	@Test
-	public void testDisposed() {
-
-		int value = 2;
-		model.setValue(value);
-		model.clearSetValueCalledFlag();
-		subjectHolder.setValue(model);
-
-		Spinner spinner = new Spinner(shell, SWT.NULL);
-		WritablePropertyValueModel<Integer> numberHolder = buildValueHolder();
-		int defaultValue = 1;
-
-		SpinnerModelAdapter.adapt(
-			numberHolder,
-			spinner,
-			defaultValue
-		);
-
-		assertEquals(
-			"The spinner's value should be coming from the model",
-			value,
-			spinner.getSelection()
-		);
-
-		assertEquals(
-			"The number holder's value should be the model's value",
-			model.getValue(),
-			numberHolder.getValue()
-		);
-
-		assertFalse(
-			"The model should not have received the value during initialization",
-			model.isSetValueCalled()
-		);
-
-		// Change the value in the model
-		spinner.dispose();
-
-		value = 4;
-		model.setValue(value);
-
-		assertEquals(
-			"The model's value was somehow changed",
-			Integer.valueOf(value),
-			model.getValue()
-		);
-	}
-
-	@Test
-	public void testInitialization_1() {
-
-		Spinner spinner = new Spinner(shell, SWT.NULL);
-		WritablePropertyValueModel<Integer> numberHolder = new SimplePropertyValueModel<Integer>();
-		int defaultValue = 1;
-
-		SpinnerModelAdapter.adapt(
-			numberHolder,
-			spinner,
-			defaultValue
-		);
-
-		assertEquals(
-			"The spinner's value should be the default value",
-			defaultValue,
-			spinner.getSelection()
-		);
-
-		assertNull(
-			"The number holder's value should be null",
-			numberHolder.getValue()
-		);
-	}
-
-	@Test
-	public void testInitialization_2() {
-
-		Spinner spinner = new Spinner(shell, SWT.NULL);
-		WritablePropertyValueModel<Integer> numberHolder = buildValueHolder();
-		int defaultValue = 1;
-
-		SpinnerModelAdapter.adapt(
-			numberHolder,
-			spinner,
-			defaultValue
-		);
-
-		assertEquals(
-			"The spinner's value should be the default value",
-			defaultValue,
-			spinner.getSelection()
-		);
-
-		assertNull(
-			"The number holder's value should be null",
-			numberHolder.getValue()
-		);
-	}
-
-	@Test
-	public void testInitialization_3() {
-
-		subjectHolder.setValue(model);
-
-		Spinner spinner = new Spinner(shell, SWT.NULL);
-		WritablePropertyValueModel<Integer> numberHolder = buildValueHolder();
-		int defaultValue = 1;
-
-		SpinnerModelAdapter.adapt(
-			numberHolder,
-			spinner,
-			defaultValue
-		);
-
-		assertEquals(
-			"The spinner's value should be the default value",
-			defaultValue,
-			spinner.getSelection()
-		);
-
-		assertNull(
-			"The number holder's value should be null",
-			numberHolder.getValue()
-		);
-
-		assertFalse(
-			"The model should not have received the value during initialization",
-			model.isSetValueCalled()
-		);
-	}
-
-	@Test
-	public void testInitialization_4() {
-
-		int value = 2;
-		model.setValue(value);
-		model.clearSetValueCalledFlag();
-		subjectHolder.setValue(model);
-
-		Spinner spinner = new Spinner(shell, SWT.NULL);
-		WritablePropertyValueModel<Integer> numberHolder = buildValueHolder();
-		int defaultValue = 1;
-
-		SpinnerModelAdapter.adapt(
-			numberHolder,
-			spinner,
-			defaultValue
-		);
-
-		assertEquals(
-			"The spinner's value should be the value coming from the model",
-			value,
-			spinner.getSelection()
-		);
-
-		assertEquals(
-			"The number holder's value should be " + value,
-			Integer.valueOf(value),
-			numberHolder.getValue()
-		);
-
-		assertFalse(
-			"The model should not have received the value during initialization",
-			model.isSetValueCalled()
-		);
-	}
-
-	@Test
-	public void testValueChanged() {
-
-		int value = 2;
-		model.setValue(value);
-		model.clearSetValueCalledFlag();
-		subjectHolder.setValue(model);
-
-		Spinner spinner = new Spinner(shell, SWT.NULL);
-		WritablePropertyValueModel<Integer> numberHolder = buildValueHolder();
-		int defaultValue = 1;
-
-		SpinnerModelAdapter.adapt(
-			numberHolder,
-			spinner,
-			defaultValue
-		);
-
-		assertEquals(
-			"The spinner's value should be coming from the model",
-			value,
-			spinner.getSelection()
-		);
-
-		assertEquals(
-			"The number holder's value should be the model's value",
-			model.getValue(),
-			numberHolder.getValue()
-		);
-
-		assertFalse(
-			"The model should not have received the value during initialization",
-			model.isSetValueCalled()
-		);
-
-		// Change the value in the model
-		value = 4;
-		model.setValue(value);
-
-		assertEquals(
-			"The spinner's value should be coming from the model",
-			value,
-			spinner.getSelection()
-		);
-
-		assertEquals(
-			"The model's value was somehow changed",
-			Integer.valueOf(value),
-			model.getValue()
-		);
-
-		// Change the value from the spinner
-		value = 6;
-		spinner.setSelection(value);
-
-		assertEquals(
-			"The spinner's value should be the new value set",
-			value,
-			spinner.getSelection()
-		);
-
-		assertEquals(
-			"The model's value was supposed to be updated",
-			Integer.valueOf(value),
-			model.getValue()
-		);
-
-		// Disconnect from model
-		subjectHolder.setValue(null);
-
-		assertEquals(
-			"The spinner's value should be the default value",
-			defaultValue,
-			spinner.getSelection()
-		);
-	}
-
-	private static class Model extends AbstractModel {
-
-		private boolean setValueCalled;
-		private Integer value;
-
-		static final String VALUE_PROPERTY = "value";
-
-		void clearSetValueCalledFlag() {
-			setValueCalled = false;
-		}
-
-		Integer getValue() {
-			return value;
-		}
-
-		boolean isSetValueCalled() {
-			return setValueCalled;
-		}
-
-		void setValue(Integer value) {
-			setValueCalled = true;
-
-			Integer oldValue = this.value;
-			this.value = value;
-			firePropertyChanged(VALUE_PROPERTY, oldValue, value);
-		}
-	}
-}
diff --git a/jpa/tests/org.eclipse.jpt.ui.tests/src/org/eclipse/jpt/ui/tests/internal/swt/TableModelAdapterTest.java b/jpa/tests/org.eclipse.jpt.ui.tests/src/org/eclipse/jpt/ui/tests/internal/swt/TableModelAdapterTest.java
deleted file mode 100644
index 94da990..0000000
--- a/jpa/tests/org.eclipse.jpt.ui.tests/src/org/eclipse/jpt/ui/tests/internal/swt/TableModelAdapterTest.java
+++ /dev/null
@@ -1,1203 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- *
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.ui.tests.internal.swt;
-
-import java.util.ArrayList;
-import java.util.Collection;
-import java.util.List;
-import java.util.ListIterator;
-import org.eclipse.jface.viewers.ITableLabelProvider;
-import org.eclipse.jface.viewers.LabelProvider;
-import org.eclipse.jpt.ui.internal.swt.ColumnAdapter;
-import org.eclipse.jpt.ui.internal.swt.TableModelAdapter;
-import org.eclipse.jpt.ui.internal.swt.TableModelAdapter.SelectionChangeEvent;
-import org.eclipse.jpt.ui.internal.swt.TableModelAdapter.SelectionChangeListener;
-import org.eclipse.jpt.utility.internal.CollectionTools;
-import org.eclipse.jpt.utility.internal.iterators.CloneListIterator;
-import org.eclipse.jpt.utility.internal.model.AbstractModel;
-import org.eclipse.jpt.utility.internal.model.value.ListAspectAdapter;
-import org.eclipse.jpt.utility.internal.model.value.PropertyAspectAdapter;
-import org.eclipse.jpt.utility.internal.model.value.PropertyCollectionValueModelAdapter;
-import org.eclipse.jpt.utility.internal.model.value.SimpleCollectionValueModel;
-import org.eclipse.jpt.utility.internal.model.value.SimplePropertyValueModel;
-import org.eclipse.jpt.utility.model.value.CollectionValueModel;
-import org.eclipse.jpt.utility.model.value.ListValueModel;
-import org.eclipse.jpt.utility.model.value.WritablePropertyValueModel;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.events.SelectionEvent;
-import org.eclipse.swt.graphics.Image;
-import org.eclipse.swt.widgets.Display;
-import org.eclipse.swt.widgets.Shell;
-import org.eclipse.swt.widgets.Table;
-import org.eclipse.swt.widgets.TableItem;
-import org.junit.After;
-import org.junit.Assert;
-import org.junit.Before;
-import org.junit.Test;
-
-@SuppressWarnings("nls")
-public class TableModelAdapterTest {
-
-	private Shell shell;
-	private WritablePropertyValueModel<Manager> subjectHolder;
-
-	private ColumnAdapter<Employee> buildColumnAdapter() {
-		return new TableColumnAdapter();
-	}
-
-	private WritablePropertyValueModel<Employee> buildEmployeeHolder() {
-		return new SimplePropertyValueModel<Employee>();
-	}
-
-	private SimpleCollectionValueModel<Employee> buildEmployeeHolders() {
-		return new SimpleCollectionValueModel<Employee>();
-	}
-
-	private ListValueModel<Employee> buildEmployeeListHolder() {
-		return new ListAspectAdapter<Manager, Employee>(subjectHolder, Manager.EMPLOYEES_LIST) {
-			@Override
-			protected ListIterator<Employee> listIterator_() {
-				return subject.employees();
-			}
-
-			@Override
-			protected int size_() {
-				return subject.employeesSize();
-			}
-		};
-	}
-
-	private ITableLabelProvider buildLabelProvider() {
-		return new TableLabelProvider();
-	}
-
-	private SelectionChangeListener<Employee> buildSelectionChangeListener(final Collection<Employee> employees) {
-		return new SelectionChangeListener<Employee>() {
-			public void selectionChanged(SelectionChangeEvent<Employee> e) {
-				employees.clear();
-				CollectionTools.addAll(employees, e.selection());
-			}
-		};
-	}
-
-	private WritablePropertyValueModel<Manager> buildSubjectHolder() {
-		return new SimplePropertyValueModel<Manager>();
-	}
-
-	@Before
-	public void setUp() throws Exception {
-
-		shell         = new Shell(Display.getCurrent());
-		subjectHolder = buildSubjectHolder();
-	}
-
-	@After
-	public void tearDown() throws Exception {
-
-		if (!shell.isDisposed()) {
-			shell.dispose();
-		}
-
-		shell         = null;
-		subjectHolder = null;
-	}
-
-	@Test
-	public void testChanged() {
-
-		Table table = new Table(shell, SWT.V_SCROLL | SWT.H_SCROLL | SWT.FULL_SELECTION | SWT.MULTI);
-
-		ListValueModel<Employee> listHolder = buildEmployeeListHolder();
-		WritablePropertyValueModel<Employee> selectedItemHolder = buildEmployeeHolder();
-
-		Manager manager = new Manager();
-		subjectHolder.setValue(manager);
-
-		new TableModel(
-			listHolder,
-			selectedItemHolder,
-			table,
-			buildColumnAdapter(),
-			buildLabelProvider()
-		);
-
-		// Create Employees
-		String expectedName1    = "Dali_1";
-		String expectedManager1 = "WTP_1";
-		String expectedTitle1   = "plug-in_1";
-
-		String expectedName2    = "Dali_2";
-		String expectedManager2 = "WTP_2";
-		String expectedTitle2   = "plug-in_2";
-
-		String expectedName3    = "Dali_3";
-		String expectedManager3 = "WTP_3";
-		String expectedTitle3   = "plug-in_3";
-
-		Employee employee1 = new Employee(expectedName1, expectedTitle1, expectedManager1);
-		Employee employee2 = new Employee(expectedName2, expectedTitle2, expectedManager2);
-		Employee employee3 = new Employee(expectedName3, expectedTitle3, expectedManager3);
-
-		manager.addEmployee(employee1);
-		manager.addEmployee(employee2);
-		manager.addEmployee(employee3);
-
-		// Make sure the Table was populated
-		Assert.assertEquals("The number of TableItems should be 3", 3, table.getItemCount());
-
-		// Change the list of Employees
-		ArrayList<Employee> employees = new ArrayList<Employee>(3);
-		employees.add(employee3);
-		employees.add(employee2);
-		employees.add(employee1);
-		manager.changeEmployees(employees);
-
-		Assert.assertEquals("The number of TableItems should be 3", 3, table.getItemCount());
-
-		testTableItemProperties(table, 0, expectedName3, expectedManager3, expectedTitle3);
-		testTableItemProperties(table, 1, expectedName2, expectedManager2, expectedTitle2);
-		testTableItemProperties(table, 2, expectedName1, expectedManager1, expectedTitle1);
-	}
-
-	@Test
-	public void testCleared() {
-
-		Table table = new Table(shell, SWT.V_SCROLL | SWT.H_SCROLL | SWT.FULL_SELECTION | SWT.MULTI);
-
-		ListValueModel<Employee> listHolder = buildEmployeeListHolder();
-		WritablePropertyValueModel<Employee> selectedItemHolder = buildEmployeeHolder();
-
-		Manager manager = new Manager();
-		subjectHolder.setValue(manager);
-
-		new TableModel(
-			listHolder,
-			selectedItemHolder,
-			table,
-			buildColumnAdapter(),
-			buildLabelProvider()
-		);
-
-		// Create Employees
-		String expectedName1    = "Dali_1";
-		String expectedManager1 = "WTP_1";
-		String expectedTitle1   = "plug-in_1";
-
-		String expectedName2    = "Dali_2";
-		String expectedManager2 = "WTP_2";
-		String expectedTitle2   = "plug-in_2";
-
-		String expectedName3    = "Dali_3";
-		String expectedManager3 = "WTP_3";
-		String expectedTitle3   = "plug-in_3";
-
-		Employee employee1 = new Employee(expectedName1, expectedTitle1, expectedManager1);
-		Employee employee2 = new Employee(expectedName2, expectedTitle2, expectedManager2);
-		Employee employee3 = new Employee(expectedName3, expectedTitle3, expectedManager3);
-
-		manager.addEmployee(employee1);
-		manager.addEmployee(employee2);
-		manager.addEmployee(employee3);
-
-		// Make sure the Table was populated
-		Assert.assertEquals("The number of TableItems should be 3", 3, table.getItemCount());
-
-		// Test removing them all
-		manager.removeAllEmployees();
-
-		Assert.assertEquals("The list holder should have been cleared", 0, listHolder.size());
-		Assert.assertEquals("The Table should have been cleared", 0, table.getItemCount());
-	}
-
-	@Test
-	public void testItemAdded() {
-
-		Table table = new Table(shell, SWT.V_SCROLL | SWT.H_SCROLL | SWT.FULL_SELECTION | SWT.MULTI);
-
-		ListValueModel<Employee> listHolder = buildEmployeeListHolder();
-		WritablePropertyValueModel<Employee> selectedItemHolder = buildEmployeeHolder();
-
-		Manager manager = new Manager();
-		subjectHolder.setValue(manager);
-
-		TableModel tableModel = new TableModel(
-			listHolder,
-			selectedItemHolder,
-			table,
-			buildColumnAdapter(),
-			buildLabelProvider()
-		);
-
-		// Create a new Employee
-		String expectedName    = "Dali";
-		String expectedManager = "WTP";
-		String expectedTitle   = "plug-in";
-
-		Employee employee = manager.addEmployee(expectedName, expectedTitle, expectedManager);
-		Assert.assertNotNull("The new Employee was not created", employee);
-
-		// Retrieve the TableItem representing the new Employee
-		int index = tableModel.indexOf(employee);
-		Assert.assertEquals("The new Employee was not added to the table model", 0, index);
-		Assert.assertEquals("The number of TableItem should be 1", 1, table.getItemCount());
-
-		testTableItemProperties(table, index, expectedName, expectedManager, expectedTitle);
-	}
-
-	@Test
-	public void testItemMoved() {
-
-		Table table = new Table(shell, SWT.V_SCROLL | SWT.H_SCROLL | SWT.FULL_SELECTION | SWT.MULTI);
-
-		ListValueModel<Employee> listHolder = buildEmployeeListHolder();
-		WritablePropertyValueModel<Employee> selectedItemHolder = buildEmployeeHolder();
-
-		Manager manager = new Manager();
-		subjectHolder.setValue(manager);
-
-		TableModel tableModel = new TableModel(
-			listHolder,
-			selectedItemHolder,
-			table,
-			buildColumnAdapter(),
-			buildLabelProvider()
-		);
-
-		// Create Employees
-		String expectedName1    = "Dali_1";
-		String expectedManager1 = "WTP_1";
-		String expectedTitle1   = "plug-in_1";
-
-		String expectedName2    = "Dali_2";
-		String expectedManager2 = "WTP_2";
-		String expectedTitle2   = "plug-in_2";
-
-		String expectedName3    = "Dali_3";
-		String expectedManager3 = "WTP_3";
-		String expectedTitle3   = "plug-in_3";
-
-		Employee employee1 = new Employee(expectedName1, expectedTitle1, expectedManager1);
-		Employee employee2 = new Employee(expectedName2, expectedTitle2, expectedManager2);
-		Employee employee3 = new Employee(expectedName3, expectedTitle3, expectedManager3);
-
-		manager.addEmployee(employee1);
-		manager.addEmployee(employee2);
-		manager.addEmployee(employee3);
-
-		// Make sure the Employees were added to the Table
-		Assert.assertEquals("The number of TableItem should be 3", 3, table.getItemCount());
-
-		// Move an Employee up the list
-		manager.moveEmployeeUp(employee2);
-
-		int index1 = tableModel.indexOf(employee1);
-		Assert.assertEquals("The Employee 1 was not moved in the table model", 1, index1);
-
-		int index2 = tableModel.indexOf(employee2);
-		Assert.assertEquals("The Employee 2 was not moved in the table model", 0, index2);
-
-		int index3 = tableModel.indexOf(employee3);
-		Assert.assertEquals("The Employee 3 should not have been moved in the table model", 2, index3);
-
-		testTableItemProperties(table, index1, expectedName1, expectedManager1, expectedTitle1);
-		testTableItemProperties(table, index2, expectedName2, expectedManager2, expectedTitle2);
-		testTableItemProperties(table, index3, expectedName3, expectedManager3, expectedTitle3);
-
-		// Move an Employee down the list
-		manager.moveEmployeeDown(employee1);
-
-		index1 = tableModel.indexOf(employee1);
-		Assert.assertEquals("The Employee 1 should not have been moved in the table model", 2, index1);
-
-		index2 = tableModel.indexOf(employee2);
-		Assert.assertEquals("The Employee 2 was not moved in the table model", 0, index2);
-
-		index3 = tableModel.indexOf(employee3);
-		Assert.assertEquals("The Employee 3 was not moved in the table model", 1, index3);
-
-		testTableItemProperties(table, index1, expectedName1, expectedManager1, expectedTitle1);
-		testTableItemProperties(table, index2, expectedName2, expectedManager2, expectedTitle2);
-		testTableItemProperties(table, index3, expectedName3, expectedManager3, expectedTitle3);
-	}
-
-	@Test
-	public void testItemRemoved() {
-
-		Table table = new Table(shell, SWT.V_SCROLL | SWT.H_SCROLL | SWT.FULL_SELECTION | SWT.MULTI);
-
-		ListValueModel<Employee> listHolder = buildEmployeeListHolder();
-		WritablePropertyValueModel<Employee> selectedItemHolder = buildEmployeeHolder();
-
-		Manager manager = new Manager();
-		subjectHolder.setValue(manager);
-
-		TableModel tableModel = new TableModel(
-			listHolder,
-			selectedItemHolder,
-			table,
-			buildColumnAdapter(),
-			buildLabelProvider()
-		);
-
-		// Create a new Employee
-		String expectedName    = "Dali";
-		String expectedManager = "WTP";
-		String expectedTitle   = "plug-in";
-
-		Employee employee = manager.addEmployee(expectedName, expectedTitle, expectedManager);
-		Assert.assertNotNull("The new Employee was not created", employee);
-		Assert.assertEquals("The number of TableItem should be 1", 1, table.getItemCount());
-
-		// Make sure it was added to the model
-		int index = tableModel.indexOf(employee);
-		Assert.assertEquals("The new Employee was not added to the table model", 0, index);
-		testTableItemProperties(table, index, expectedName, expectedManager, expectedTitle);
-
-		// Retrieve the TableItem representing the new Employee
-		TableItem tableItem = table.getItem(index);
-		Assert.assertNotNull("No TableItem was found for the new Employee", tableItem);
-
-		// Now test the item being removed
-		manager.removeEmployee(employee);
-		index = tableModel.indexOf(employee);
-		Assert.assertEquals("The Employee was not removed from the table model", -1, index);
-		Assert.assertEquals("The number of TableItem should be 0", 0, table.getItemCount());
-	}
-
-	@Test
-	public void testItemReplaced() {
-
-		Table table = new Table(shell, SWT.V_SCROLL | SWT.H_SCROLL | SWT.FULL_SELECTION | SWT.MULTI);
-
-		ListValueModel<Employee> listHolder = buildEmployeeListHolder();
-		WritablePropertyValueModel<Employee> selectedItemHolder = buildEmployeeHolder();
-
-		Manager manager = new Manager();
-		subjectHolder.setValue(manager);
-
-		TableModel tableModel = new TableModel(
-			listHolder,
-			selectedItemHolder,
-			table,
-			buildColumnAdapter(),
-			buildLabelProvider()
-		);
-
-		// Create a new Employee
-		String expectedName1    = "Dali_1";
-		String expectedManager1 = "WTP_1";
-		String expectedTitle1   = "plug-in_1";
-
-		Employee employee1 = manager.addEmployee(expectedName1, expectedTitle1, expectedManager1);
-		Assert.assertNotNull("The new Employee was not created", employee1);
-
-		// Make sure it was added to the model
-		int index1 = tableModel.indexOf(employee1);
-		Assert.assertEquals("The new Employee was not added to the table model", 0, index1);
-		Assert.assertEquals("The number of TableItem should be 1", 1, table.getItemCount());
-
-		// Retrieve the TableItem representing the new Employee
-		TableItem tableItem = table.getItem(index1);
-		Assert.assertNotNull("No TableItem was found for the new Employee", tableItem);
-
-		testTableItemProperties(table, index1, expectedName1, expectedManager1, expectedTitle1);
-
-		// Replace the Employee
-		String expectedName2    = "Dali_2";
-		String expectedManager2 = "WTP_2";
-		String expectedTitle2   = "plug-in_2";
-
-		Employee employee2 = new Employee(expectedName2, expectedTitle2, expectedManager2);
-		manager.replace(employee1, employee2);
-
-		int index2 = tableModel.indexOf(employee2);
-		Assert.assertSame("The Employee that got replaced should be at index " + index1, index1, index2);
-		Assert.assertEquals("The number of TableItem should be 1", 1, table.getItemCount());
-
-		testTableItemProperties(table, index2, expectedName2, expectedManager2, expectedTitle2);
-	}
-
-	@Test
-	public void testItemsAdded() {
-
-		Table table = new Table(shell, SWT.V_SCROLL | SWT.H_SCROLL | SWT.FULL_SELECTION | SWT.MULTI);
-
-		ListValueModel<Employee> listHolder = buildEmployeeListHolder();
-		WritablePropertyValueModel<Employee> selectedItemHolder = buildEmployeeHolder();
-
-		Manager manager = new Manager();
-		subjectHolder.setValue(manager);
-
-		TableModel tableModel = new TableModel(
-			listHolder,
-			selectedItemHolder,
-			table,
-			buildColumnAdapter(),
-			buildLabelProvider()
-		);
-
-		// Create Employees
-		String expectedName1    = "Dali_1";
-		String expectedManager1 = "WTP_1";
-		String expectedTitle1   = "plug-in_1";
-
-		String expectedName2    = "Dali_2";
-		String expectedManager2 = "WTP_2";
-		String expectedTitle2   = "plug-in_2";
-
-		String expectedName3    = "Dali_3";
-		String expectedManager3 = "WTP_3";
-		String expectedTitle3   = "plug-in_3";
-
-		Employee employee1 = new Employee(expectedName1, expectedTitle1, expectedManager1);
-		Employee employee2 = new Employee(expectedName2, expectedTitle2, expectedManager2);
-		Employee employee3 = new Employee(expectedName3, expectedTitle3, expectedManager3);
-
-		manager.addEmployee(employee1);
-		manager.addEmployee(employee2);
-		manager.addEmployee(employee3);
-
-		// Retrieve the TableItems representing the employees
-		Assert.assertEquals("The number of TableItem should be 3", 3, table.getItemCount());
-
-		int index = tableModel.indexOf(employee1);
-		Assert.assertEquals("The Employee 1 was not added to the table model", 0, index);
-
-		index = tableModel.indexOf(employee2);
-		Assert.assertEquals("The Employee 2 was not added to the table model", 1, index);
-
-		index = tableModel.indexOf(employee3);
-		Assert.assertEquals("The Employee 3 was not added to the table model", 2, index);
-
-		// Make sure the TableItem was correctly populated
-		testTableItemProperties(table, 0, expectedName1, expectedManager1, expectedTitle1);
-		testTableItemProperties(table, 1, expectedName2, expectedManager2, expectedTitle2);
-		testTableItemProperties(table, 2, expectedName3, expectedManager3, expectedTitle3);
-	}
-
-	@Test
-	public void testItemsMoved() {
-
-		Table table = new Table(shell, SWT.V_SCROLL | SWT.H_SCROLL | SWT.FULL_SELECTION | SWT.MULTI);
-
-		ListValueModel<Employee> listHolder = buildEmployeeListHolder();
-		WritablePropertyValueModel<Employee> selectedItemHolder = buildEmployeeHolder();
-
-		Manager manager = new Manager();
-		subjectHolder.setValue(manager);
-
-		TableModel tableModel = new TableModel(
-			listHolder,
-			selectedItemHolder,
-			table,
-			buildColumnAdapter(),
-			buildLabelProvider()
-		);
-
-		// Create Employees
-		String expectedName1    = "Dali_1";
-		String expectedManager1 = "WTP_1";
-		String expectedTitle1   = "plug-in_1";
-
-		String expectedName2    = "Dali_2";
-		String expectedManager2 = "WTP_2";
-		String expectedTitle2   = "plug-in_2";
-
-		String expectedName3    = "Dali_3";
-		String expectedManager3 = "WTP_3";
-		String expectedTitle3   = "plug-in_3";
-
-		String expectedName4    = "Dali_4";
-		String expectedManager4 = "WTP_4";
-		String expectedTitle4   = "plug-in_4";
-
-		String expectedName5    = "Dali_5";
-		String expectedManager5 = "WTP_5";
-		String expectedTitle5   = "plug-in_5";
-
-		String expectedName6    = "Dali_6";
-		String expectedManager6 = "WTP_6";
-		String expectedTitle6   = "plug-in_6";
-
-		Employee employee1 = new Employee(expectedName1, expectedTitle1, expectedManager1);
-		Employee employee2 = new Employee(expectedName2, expectedTitle2, expectedManager2);
-		Employee employee3 = new Employee(expectedName3, expectedTitle3, expectedManager3);
-		Employee employee4 = new Employee(expectedName4, expectedTitle4, expectedManager4);
-		Employee employee5 = new Employee(expectedName5, expectedTitle5, expectedManager5);
-		Employee employee6 = new Employee(expectedName6, expectedTitle6, expectedManager6);
-
-		manager.addEmployee(employee1);
-		manager.addEmployee(employee2);
-		manager.addEmployee(employee3);
-		manager.addEmployee(employee4);
-		manager.addEmployee(employee5);
-		manager.addEmployee(employee6);
-
-		// Make sure the Employees were added to the Table
-		Assert.assertEquals("The number of TableItem should be 6", 6, table.getItemCount());
-
-		// Move an Employee up the list
-		ArrayList<Employee> employees = new ArrayList<Employee>(3);
-		employees.add(employee3);
-		employees.add(employee4);
-		employees.add(employee5);
-		manager.moveEmployees(employees, 0);
-
-		int index1 = tableModel.indexOf(employee1);
-		int index2 = tableModel.indexOf(employee2);
-		int index3 = tableModel.indexOf(employee3);
-		int index4 = tableModel.indexOf(employee4);
-		int index5 = tableModel.indexOf(employee5);
-		int index6 = tableModel.indexOf(employee6);
-
-		Assert.assertEquals("The Employee 1 is not at the right index", 3, index1);
-		Assert.assertEquals("The Employee 2 is not at the right index", 4, index2);
-		Assert.assertEquals("The Employee 3 is not at the right index", 0, index3);
-		Assert.assertEquals("The Employee 4 is not at the right index", 1, index4);
-		Assert.assertEquals("The Employee 5 is not at the right index", 2, index5);
-		Assert.assertEquals("The Employee 6 is not at the right index", 5, index6);
-
-		testTableItemProperties(table, index1, expectedName1, expectedManager1, expectedTitle1);
-		testTableItemProperties(table, index2, expectedName2, expectedManager2, expectedTitle2);
-		testTableItemProperties(table, index3, expectedName3, expectedManager3, expectedTitle3);
-		testTableItemProperties(table, index4, expectedName4, expectedManager4, expectedTitle4);
-		testTableItemProperties(table, index5, expectedName5, expectedManager5, expectedTitle5);
-		testTableItemProperties(table, index6, expectedName6, expectedManager6, expectedTitle6);
-
-		// Move an Employee down the list
-		employees = new ArrayList<Employee>(2);
-		employees.add(employee1);
-		employees.add(employee2);
-		manager.moveEmployees(employees, 4);
-
-		index1 = tableModel.indexOf(employee1);
-		index2 = tableModel.indexOf(employee2);
-		index3 = tableModel.indexOf(employee3);
-		index4 = tableModel.indexOf(employee4);
-		index5 = tableModel.indexOf(employee5);
-		index6 = tableModel.indexOf(employee6);
-
-		Assert.assertEquals("The Employee 1 is not at the right index", 4, index1);
-		Assert.assertEquals("The Employee 2 is not at the right index", 5, index2);
-		Assert.assertEquals("The Employee 3 is not at the right index", 0, index3);
-		Assert.assertEquals("The Employee 4 is not at the right index", 1, index4);
-		Assert.assertEquals("The Employee 5 is not at the right index", 2, index5);
-		Assert.assertEquals("The Employee 6 is not at the right index", 3, index6);
-
-		testTableItemProperties(table, index1, expectedName1, expectedManager1, expectedTitle1);
-		testTableItemProperties(table, index2, expectedName2, expectedManager2, expectedTitle2);
-		testTableItemProperties(table, index3, expectedName3, expectedManager3, expectedTitle3);
-		testTableItemProperties(table, index4, expectedName4, expectedManager4, expectedTitle4);
-		testTableItemProperties(table, index5, expectedName5, expectedManager5, expectedTitle5);
-		testTableItemProperties(table, index6, expectedName6, expectedManager6, expectedTitle6);
-	}
-
-	@Test
-	public void testItemsRemoved() {
-
-		Table table = new Table(shell, SWT.V_SCROLL | SWT.H_SCROLL | SWT.FULL_SELECTION | SWT.MULTI);
-
-		ListValueModel<Employee> listHolder = buildEmployeeListHolder();
-		WritablePropertyValueModel<Employee> selectedItemHolder = buildEmployeeHolder();
-
-		Manager manager = new Manager();
-		subjectHolder.setValue(manager);
-
-		TableModel tableModel = new TableModel(
-			listHolder,
-			selectedItemHolder,
-			table,
-			buildColumnAdapter(),
-			buildLabelProvider()
-		);
-
-		// Create Employees
-		String expectedName1    = "Dali_1";
-		String expectedManager1 = "WTP_1";
-		String expectedTitle1   = "plug-in_1";
-
-		String expectedName2    = "Dali_2";
-		String expectedManager2 = "WTP_2";
-		String expectedTitle2   = "plug-in_2";
-
-		String expectedName3    = "Dali_3";
-		String expectedManager3 = "WTP_3";
-		String expectedTitle3   = "plug-in_3";
-
-		Employee employee1 = new Employee(expectedName1, expectedTitle1, expectedManager1);
-		Employee employee2 = new Employee(expectedName2, expectedTitle2, expectedManager2);
-		Employee employee3 = new Employee(expectedName3, expectedTitle3, expectedManager3);
-
-		manager.addEmployee(employee1);
-		manager.addEmployee(employee2);
-		manager.addEmployee(employee3);
-
-		// Retrieve the TableItems representing the employees
-		Assert.assertEquals("The number of TableItem should be 3", 3, table.getItemCount());
-
-		int index = tableModel.indexOf(employee1);
-		Assert.assertEquals("The Employee 1 was not added to the table model", 0, index);
-
-		index = tableModel.indexOf(employee2);
-		Assert.assertEquals("The Employee 2 was not added to the table model", 1, index);
-
-		index = tableModel.indexOf(employee3);
-		Assert.assertEquals("The Employee 3 was not added to the table model", 2, index);
-
-		// Remove 2 items
-		ArrayList<Employee> employees = new ArrayList<Employee>(2);
-		employees.add(employee1);
-		employees.add(employee3);
-		manager.removeEmployees(employees);
-
-		Assert.assertEquals("The number of TableItem should be 1", 1, table.getItemCount());
-	}
-
-	@Test
-	public void testPropertyChanged() {
-
-		Table table = new Table(shell, SWT.V_SCROLL | SWT.H_SCROLL | SWT.FULL_SELECTION | SWT.MULTI);
-
-		ListValueModel<Employee> listHolder = buildEmployeeListHolder();
-		WritablePropertyValueModel<Employee> selectedItemHolder = buildEmployeeHolder();
-
-		Manager manager = new Manager();
-		subjectHolder.setValue(manager);
-
-		TableModel tableModel = new TableModel(
-			listHolder,
-			selectedItemHolder,
-			table,
-			buildColumnAdapter(),
-			buildLabelProvider()
-		);
-
-		// Create a new Employee
-		String expectedName    = "Dali";
-		String expectedManager = "WTP";
-		String expectedTitle   = "plug-in";
-
-		Employee employee = manager.addEmployee(expectedName, expectedTitle, expectedManager);
-		Assert.assertNotNull("The new Employee was not created", employee);
-
-		// Make sure it was added to the model
-		int index = tableModel.indexOf(employee);
-		Assert.assertEquals("The new Employee was not added to the table model", 0, index);
-		Assert.assertEquals("The number of TableItem should be 1", 1, table.getItemCount());
-
-		// Retrieve the TableItem representing the new Employee
-		TableItem tableItem = table.getItem(index);
-		Assert.assertNotNull("No TableItem was found for the new Employee", tableItem);
-
-		// Name property
-		String actualName = tableItem.getText(TableColumnAdapter.NAME_COLUMN);
-		Assert.assertEquals("TableItem[NAME_COLUMN] was not set correctly", expectedName, actualName);
-
-		expectedName = "Jpt";
-		employee.setName(expectedName);
-
-		actualName = tableItem.getText(TableColumnAdapter.NAME_COLUMN);
-		Assert.assertEquals("TableItem[NAME_COLUMN] was not set correctly", expectedName, actualName);
-
-		// Manager property
-		String actualManager = tableItem.getText(TableColumnAdapter.MANAGER_COLUMN);
-		Assert.assertEquals("TableItem[MANAGER_COLUMN] was not set correctly", expectedManager, actualManager);
-
-		expectedManager = "boss";
-		employee.setManager(expectedManager);
-
-		actualManager = tableItem.getText(TableColumnAdapter.MANAGER_COLUMN);
-		Assert.assertEquals("TableItem[MANAGER_COLUMN] was not set correctly", expectedManager, actualManager);
-
-		// Title property
-		String actualTitle = tableItem.getText(TableColumnAdapter.TITLE_COLUMN);
-		Assert.assertEquals("TableItem[TITLE_COLUMN] was not set correctly", expectedTitle, actualTitle);
-
-		expectedTitle = "EclipseLink";
-		employee.setTitle(expectedTitle);
-
-		actualTitle = tableItem.getText(TableColumnAdapter.TITLE_COLUMN);
-		Assert.assertEquals("TableItem[TITLE_COLUMN] was not set correctly", expectedTitle, actualTitle);
-	}
-
-	@Test
-	public void testSelectedItemsAddedRemoved() {
-
-		Table table = new Table(shell, SWT.V_SCROLL | SWT.H_SCROLL | SWT.FULL_SELECTION | SWT.MULTI);
-
-		ListValueModel<Employee> listHolder = buildEmployeeListHolder();
-		SimpleCollectionValueModel<Employee> selectedItemsHolder = buildEmployeeHolders();
-
-		Manager manager = new Manager();
-		subjectHolder.setValue(manager);
-
-		TableModel tableModel = new TableModel(
-			listHolder,
-			selectedItemsHolder,
-			table,
-			buildColumnAdapter(),
-			buildLabelProvider()
-		);
-
-		// Create Employees
-		String expectedName1    = "Dali_1";
-		String expectedManager1 = "WTP_1";
-		String expectedTitle1   = "plug-in_1";
-
-		String expectedName2    = "Dali_2";
-		String expectedManager2 = "WTP_2";
-		String expectedTitle2   = "plug-in_2";
-
-		String expectedName3    = "Dali_3";
-		String expectedManager3 = "WTP_3";
-		String expectedTitle3   = "plug-in_3";
-
-		Employee employee1 = new Employee(expectedName1, expectedTitle1, expectedManager1);
-		Employee employee2 = new Employee(expectedName2, expectedTitle2, expectedManager2);
-		Employee employee3 = new Employee(expectedName3, expectedTitle3, expectedManager3);
-
-		manager.addEmployee(employee1);
-		manager.addEmployee(employee2);
-		manager.addEmployee(employee3);
-
-		// Test adding selected items
-		ArrayList<Employee> employees = new ArrayList<Employee>(2);
-		employees.add(employee1);
-		employees.add(employee3);
-		selectedItemsHolder.addAll(employees);
-
-		Collection<Employee> actualEmployees = tableModel.selectedItems();
-		Assert.assertNotNull("The collection of selected items can't be null", actualEmployees);
-		Assert.assertEquals("The count of selected items should be 2", 2, actualEmployees.size());
-
-		actualEmployees.remove(employee1);
-		actualEmployees.remove(employee3);
-
-		Assert.assertTrue("The selected items was not retrieved correctly", actualEmployees.isEmpty());
-
-		// Test removing selected items
-		selectedItemsHolder.remove(employee1);
-
-		actualEmployees = tableModel.selectedItems();
-		Assert.assertNotNull("The collection of selected items can't be null", actualEmployees);
-		Assert.assertEquals("The count of selected items should be 1", 1, actualEmployees.size());
-
-		actualEmployees.remove(employee3);
-
-		Assert.assertTrue("The selected items was not retrieved correctly", actualEmployees.isEmpty());
-	}
-
-	@Test
-	public void testSelectedItemsCleared() {
-
-		Table table = new Table(shell, SWT.V_SCROLL | SWT.H_SCROLL | SWT.FULL_SELECTION | SWT.MULTI);
-
-		ListValueModel<Employee> listHolder = buildEmployeeListHolder();
-		SimpleCollectionValueModel<Employee> selectedItemsHolder = buildEmployeeHolders();
-
-		Manager manager = new Manager();
-		subjectHolder.setValue(manager);
-
-		TableModel tableModel = new TableModel(
-			listHolder,
-			selectedItemsHolder,
-			table,
-			buildColumnAdapter(),
-			buildLabelProvider()
-		);
-
-		// Create Employees
-		String expectedName1    = "Dali_1";
-		String expectedManager1 = "WTP_1";
-		String expectedTitle1   = "plug-in_1";
-
-		String expectedName2    = "Dali_2";
-		String expectedManager2 = "WTP_2";
-		String expectedTitle2   = "plug-in_2";
-
-		String expectedName3    = "Dali_3";
-		String expectedManager3 = "WTP_3";
-		String expectedTitle3   = "plug-in_3";
-
-		Employee employee1 = new Employee(expectedName1, expectedTitle1, expectedManager1);
-		Employee employee2 = new Employee(expectedName2, expectedTitle2, expectedManager2);
-		Employee employee3 = new Employee(expectedName3, expectedTitle3, expectedManager3);
-
-		manager.addEmployee(employee1);
-		manager.addEmployee(employee2);
-		manager.addEmployee(employee3);
-
-		// Test adding selected items
-		ArrayList<Employee> employees = new ArrayList<Employee>(2);
-		employees.add(employee1);
-		employees.add(employee3);
-		selectedItemsHolder.addAll(employees);
-
-		Collection<Employee> actualEmployees = tableModel.selectedItems();
-		Assert.assertNotNull("The collection of selected items can't be null", actualEmployees);
-		Assert.assertEquals("The count of selected items should be 2", 2, actualEmployees.size());
-
-		actualEmployees.remove(employee1);
-		actualEmployees.remove(employee3);
-		Assert.assertTrue("The selected items was not retrieved correctly", actualEmployees.isEmpty());
-
-		// Test removing selected items
-		selectedItemsHolder.clear();
-
-		actualEmployees = tableModel.selectedItems();
-		Assert.assertNotNull("The collection of selected items can't be null", actualEmployees);
-		Assert.assertEquals("The count of selected items should be ", 0, actualEmployees.size());
-	}
-
-	@Test
-	public void testSelectionChangeListener() {
-
-		Table table = new Table(shell, SWT.V_SCROLL | SWT.H_SCROLL | SWT.FULL_SELECTION | SWT.MULTI);
-
-		Manager manager = new Manager();
-		subjectHolder.setValue(manager);
-
-		TableModel tableModel = new TableModel(
-			buildEmployeeListHolder(),
-			buildEmployeeHolder(),
-			table,
-			buildColumnAdapter(),
-			buildLabelProvider()
-		);
-
-		Collection<Employee> employees = new ArrayList<Employee>();
-		tableModel.addSelectionChangeListener(buildSelectionChangeListener(employees));
-
-		// Create Employees
-		String expectedName1    = "Dali_1";
-		String expectedManager1 = "WTP_1";
-		String expectedTitle1   = "plug-in_1";
-
-		String expectedName2    = "Dali_2";
-		String expectedManager2 = "WTP_2";
-		String expectedTitle2   = "plug-in_2";
-
-		String expectedName3    = "Dali_3";
-		String expectedManager3 = "WTP_3";
-		String expectedTitle3   = "plug-in_3";
-
-		Employee employee1 = new Employee(expectedName1, expectedTitle1, expectedManager1);
-		Employee employee2 = new Employee(expectedName2, expectedTitle2, expectedManager2);
-		Employee employee3 = new Employee(expectedName3, expectedTitle3, expectedManager3);
-
-		manager.addEmployee(employee1);
-		manager.addEmployee(employee2);
-		manager.addEmployee(employee3);
-
-		// Test adding selected items
-		table.setSelection(new int[] { 0, 2 });
-
-		// It seems a manual selection doesn't send any selection event
-		tableModel.tableSelectionChanged(null);
-
-		Assert.assertNotNull("The collection of selected items can't be null", employees);
-		Assert.assertEquals("The count of selected items should be 2", 2, employees.size());
-
-		employees.remove(employee1);
-		employees.remove(employee3);
-		Assert.assertTrue("The selected items was not retrieved correctly", employees.isEmpty());
-
-		// Test adding selected items
-		employees.add(employee1);
-		employees.add(employee3);
-		table.deselectAll();
-
-		// It seems a manual selection doesn't send any selection event
-		tableModel.tableSelectionChanged(null);
-
-		Assert.assertNotNull("The collection of selected items can't be null", employees);
-		Assert.assertEquals("The count of selected items should be 0", 0, employees.size());
-	}
-
-	private void testTableItemProperties(Table table,
-	                                     int index,
-	                                     String expectedName,
-	                                     String expectedManager,
-	                                     String expectedTitle)
-	{
-		TableItem tableItem = table.getItem(index);
-		Assert.assertNotNull("No TableItem was found for the Employee", tableItem);
-
-		String actualName = tableItem.getText(TableColumnAdapter.NAME_COLUMN);
-		Assert.assertEquals("TableItem[NAME_COLUMN] was not set correctly", expectedName, actualName);
-
-		String actualTitle = tableItem.getText(TableColumnAdapter.TITLE_COLUMN);
-		Assert.assertEquals("TableItem[TITLE_COLUMN] was not set correctly", expectedTitle, actualTitle);
-
-		String actualManager = tableItem.getText(TableColumnAdapter.MANAGER_COLUMN);
-		Assert.assertEquals("TableItem[MANAGER_COLUMN] was not set correctly", expectedManager, actualManager);
-	}
-
-	private class Employee extends AbstractModel {
-
-		private String manager;
-		private String name;
-		private String title;
-
-		static final String MANAGER_PROPERTY = "manager";
-		static final String NAME_PROPERTY = "name";
-		static final String TITLE_PROPERTY = "title";
-
-		Employee(String name, String title, String manager) {
-			super();
-
-			this.name    = name;
-			this.title   = title;
-			this.manager = manager;
-		}
-
-		String getManager() {
-			return manager;
-		}
-
-		String getName() {
-			return name;
-		}
-
-		String getTitle() {
-			return title;
-		}
-
-		void setManager(String manager) {
-			String oldManager = this.manager;
-			this.manager = manager;
-			firePropertyChanged(MANAGER_PROPERTY, oldManager, manager);
-		}
-
-		void setName(String name) {
-			String oldName = this.name;
-			this.name = name;
-			firePropertyChanged(NAME_PROPERTY, oldName, name);
-		}
-
-		void setTitle(String title) {
-			String oldTitle = this.title;
-			this.title = title;
-			firePropertyChanged(TITLE_PROPERTY, oldTitle, title);
-		}
-	}
-
-	private class Manager extends AbstractModel {
-
-		private List<Employee> employees;
-
-		static final String EMPLOYEES_LIST = "employees";
-
-		Manager() {
-			super();
-			employees = new ArrayList<Employee>();
-		}
-
-		Employee addEmployee(Employee employee) {
-			addItemToList(employee, employees, EMPLOYEES_LIST);
-			return employee;
-		}
-
-		Employee addEmployee(String name, String title, String manager) {
-			Employee employee = new Employee(name, title, manager);
-			return addEmployee(employee);
-		}
-
-		void changeEmployees(List<Employee> employees) {
-			this.employees.clear();
-			this.employees.addAll(employees);
-			fireListChanged(EMPLOYEES_LIST);
-		}
-
-		ListIterator<Employee> employees() {
-			return new CloneListIterator<Employee>(employees);
-		}
-
-		int employeesSize() {
-			return employees.size();
-		}
-
-		void moveEmployeeDown(Employee employee) {
-			int index = employees.indexOf(employee);
-			moveItemInList(index + 1, index, employees, EMPLOYEES_LIST);
-		}
-
-		void moveEmployees(Collection<Employee> employees, int targetIndex) {
-
-			int sourceIndex = Integer.MAX_VALUE;
-
-			for (Employee employee : employees) {
-				sourceIndex = Math.min(sourceIndex, this.employees.indexOf(employee));
-			}
-
-			moveItemsInList(
-				targetIndex,
-				sourceIndex,
-				employees.size(),
-				this.employees,
-				EMPLOYEES_LIST
-			);
-		}
-
-		void moveEmployeeUp(Employee employee) {
-			int index = employees.indexOf(employee);
-			moveItemInList(index - 1, index, employees, EMPLOYEES_LIST);
-		}
-
-		void removeAllEmployees() {
-			clearList(employees, EMPLOYEES_LIST);
-		}
-
-		void removeEmployee(Employee employee) {
-			removeItemFromList(employee, employees, EMPLOYEES_LIST);
-		}
-
-		void removeEmployees(Collection<Employee> employees) {
-			removeItemsFromList(employees.iterator(), this.employees, EMPLOYEES_LIST);
-		}
-
-		void replace(Employee oldEmployee, Employee newEmployee) {
-			replaceItemInList(oldEmployee, newEmployee, employees, EMPLOYEES_LIST);
-		}
-	}
-
-	private class TableColumnAdapter implements ColumnAdapter<Employee> {
-
-		static final int COLUMN_COUNT = 3;
-		static final int MANAGER_COLUMN = 2;
-		static final int NAME_COLUMN = 0;
-		static final int TITLE_COLUMN = 1;
-
-		private WritablePropertyValueModel<String> buildManagerHolder(Employee subject) {
-			return new PropertyAspectAdapter<Employee, String>(Employee.MANAGER_PROPERTY, subject) {
-				@Override
-				protected String buildValue_() {
-					return subject.getManager();
-				}
-
-				@Override
-				protected void setValue_(String value) {
-					subject.setManager(value);
-				}
-			};
-		}
-
-		private WritablePropertyValueModel<String> buildNameHolder(Employee subject) {
-			return new PropertyAspectAdapter<Employee, String>(Employee.NAME_PROPERTY, subject) {
-				@Override
-				protected String buildValue_() {
-					return subject.getName();
-				}
-
-				@Override
-				protected void setValue_(String value) {
-					subject.setName(value);
-				}
-			};
-		}
-
-		private WritablePropertyValueModel<String> buildTitleHolder(Employee subject) {
-			return new PropertyAspectAdapter<Employee, String>(Employee.TITLE_PROPERTY, subject) {
-				@Override
-				protected String buildValue_() {
-					return subject.getTitle();
-				}
-
-				@Override
-				protected void setValue_(String value) {
-					subject.setTitle(value);
-				}
-			};
-		}
-
-		public WritablePropertyValueModel<?>[] cellModels(Employee subject) {
-			WritablePropertyValueModel<?>[] holders = new WritablePropertyValueModel<?>[3];
-			holders[NAME_COLUMN] = buildNameHolder(subject);
-			holders[TITLE_COLUMN] = buildTitleHolder(subject);
-			holders[MANAGER_COLUMN] = buildManagerHolder(subject);
-			return holders;
-		}
-
-		public int columnCount() {
-			return COLUMN_COUNT;
-		}
-
-		public String columnName(int columnIndex) {
-			return String.valueOf(columnIndex);
-		}
-	}
-
-	private class TableLabelProvider extends LabelProvider
-	                                 implements ITableLabelProvider {
-
-
-		public Image getColumnImage(Object element, int columnIndex) {
-			return null;
-		}
-
-		public String getColumnText(Object element, int columnIndex) {
-			Employee employee = (Employee) element;
-
-			if (columnIndex == TableColumnAdapter.NAME_COLUMN) {
-				return employee.getName();
-			}
-
-			if (columnIndex == TableColumnAdapter.TITLE_COLUMN) {
-				return employee.getTitle();
-			}
-
-			return employee.getManager();
-		}
-	}
-
-	private class TableModel extends TableModelAdapter<Employee> {
-
-		TableModel(ListValueModel<Employee> listHolder,
-		           CollectionValueModel<Employee> selectedItemsHolder,
-		           Table table,
-		           ColumnAdapter<Employee> columnAdapter,
-		           ITableLabelProvider labelProvider) {
-
-			super(listHolder,
-			      selectedItemsHolder,
-			      table,
-			      columnAdapter,
-			      labelProvider);
-		}
-
-		TableModel(ListValueModel<Employee> listHolder,
-		           WritablePropertyValueModel<Employee> selectedItemHolder,
-		           Table table,
-		           ColumnAdapter<Employee> columnAdapter,
-		           ITableLabelProvider labelProvider) {
-
-			super(listHolder,
-					new PropertyCollectionValueModelAdapter<Employee>(selectedItemHolder),
-			      table,
-			      columnAdapter,
-			      labelProvider);
-		}
-
-		@Override
-		protected int indexOf(Employee item) {
-			return super.indexOf(item);
-		}
-
-		@Override
-		protected Collection<Employee> selectedItems() {
-			return super.selectedItems();
-		}
-
-		@Override
-		protected void tableSelectionChanged(SelectionEvent event) {
-			super.tableSelectionChanged(event);
-		}
-	}
-}
diff --git a/jpa/tests/org.eclipse.jpt.ui.tests/src/org/eclipse/jpt/ui/tests/internal/swt/TextFieldModelAdapterUITest.java b/jpa/tests/org.eclipse.jpt.ui.tests/src/org/eclipse/jpt/ui/tests/internal/swt/TextFieldModelAdapterUITest.java
deleted file mode 100644
index 6f81280..0000000
--- a/jpa/tests/org.eclipse.jpt.ui.tests/src/org/eclipse/jpt/ui/tests/internal/swt/TextFieldModelAdapterUITest.java
+++ /dev/null
@@ -1,252 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.ui.tests.internal.swt;
-
-import org.eclipse.jface.action.Action;
-import org.eclipse.jface.action.ActionContributionItem;
-import org.eclipse.jface.action.IAction;
-import org.eclipse.jface.window.ApplicationWindow;
-import org.eclipse.jface.window.Window;
-import org.eclipse.jpt.ui.internal.swt.TextFieldModelAdapter;
-import org.eclipse.jpt.utility.internal.ClassTools;
-import org.eclipse.jpt.utility.internal.model.AbstractModel;
-import org.eclipse.jpt.utility.internal.model.value.PropertyAspectAdapter;
-import org.eclipse.jpt.utility.internal.model.value.SimplePropertyValueModel;
-import org.eclipse.jpt.utility.model.value.PropertyValueModel;
-import org.eclipse.jpt.utility.model.value.WritablePropertyValueModel;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.layout.FillLayout;
-import org.eclipse.swt.layout.FormAttachment;
-import org.eclipse.swt.layout.FormData;
-import org.eclipse.swt.layout.FormLayout;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Control;
-import org.eclipse.swt.widgets.Display;
-import org.eclipse.swt.widgets.Shell;
-import org.eclipse.swt.widgets.Text;
-
-/**
- * Play around with a set of entry fields.
- */
-public class TextFieldModelAdapterUITest
-	extends ApplicationWindow
-{
-	private final TestModel testModel;
-		private static final String DEFAULT_NAME = "Scooby Doo";
-	private final WritablePropertyValueModel<TestModel> testModelHolder;
-	private final WritablePropertyValueModel<String> nameHolder;
-	private final WritablePropertyValueModel<String> allCapsNameHolder;
-
-
-	public static void main(String[] args) throws Exception {
-		Window window = new TextFieldModelAdapterUITest(args);
-		window.setBlockOnOpen(true);
-		window.open();
-		Display.getCurrent().dispose();
-		System.exit(0);
-	}
-
-	private TextFieldModelAdapterUITest(String[] args) {
-		super(null);
-		this.testModel = new TestModel(DEFAULT_NAME);
-		this.testModelHolder = new SimplePropertyValueModel<TestModel>(this.testModel);
-		this.nameHolder = this.buildNameHolder(this.testModelHolder);
-		this.allCapsNameHolder = this.buildAllCapsNameHolder(this.testModelHolder);
-	}
-
-	private WritablePropertyValueModel<String> buildNameHolder(PropertyValueModel<TestModel> vm) {
-		return new PropertyAspectAdapter<TestModel, String>(vm, TestModel.NAME_PROPERTY) {
-			@Override
-			protected String buildValue_() {
-				return this.subject.name();
-			}
-			@Override
-			protected void setValue_(String value) {
-				this.subject.setName(value);
-			}
-		};
-	}
-
-	private WritablePropertyValueModel<String> buildAllCapsNameHolder(PropertyValueModel<TestModel> vm) {
-		return new PropertyAspectAdapter<TestModel, String>(vm, TestModel.NAME_PROPERTY) {
-			@Override
-			protected String buildValue_() {
-				return this.subject.name().toUpperCase();
-			}
-			@Override
-			protected void setValue_(String value) {
-				// do nothing
-			}
-		};
-	}
-
-	@Override
-	protected Control createContents(Composite parent) {
-		((Shell) parent).setText(ClassTools.shortClassNameForObject(this));
-		parent.setSize(400, 100);
-		Composite mainPanel = new Composite(parent, SWT.NONE);
-		mainPanel.setLayout(new FormLayout());
-		Control textFieldPanel = this.buildTextFieldPanel(mainPanel);
-		this.buildControlPanel(mainPanel, textFieldPanel);
-		return mainPanel;
-	}
-
-	private Control buildTextFieldPanel(Composite parent) {
-		Composite panel = new Composite(parent, SWT.NONE);
-
-		FormData fd = new FormData();
-			fd.top = new FormAttachment(0);
-			fd.bottom = new FormAttachment(100, -35);
-			fd.left = new FormAttachment(0);
-			fd.right = new FormAttachment(100);
-		panel.setLayoutData(fd);
-
-		panel.setLayout(new FillLayout());
-		this.buildNameTextField(panel);
-		this.buildReadOnlyNameTextField(panel);
-		this.buildAllCapsNameTextField(panel);
-
-		return panel;
-	}
-
-	private void buildNameTextField(Composite parent) {
-		Text textField = new Text(parent, SWT.SINGLE);
-		TextFieldModelAdapter.adapt(this.nameHolder, textField);
-	}
-
-	private void buildReadOnlyNameTextField(Composite parent) {
-		Text textField = new Text(parent, SWT.SINGLE);
-		textField.setEnabled(false);
-		TextFieldModelAdapter.adapt(this.nameHolder, textField);
-	}
-
-	private void buildAllCapsNameTextField(Composite parent) {
-		Text textField = new Text(parent, SWT.SINGLE);
-		textField.setEnabled(false);
-		TextFieldModelAdapter.adapt(this.allCapsNameHolder, textField);
-	}
-
-	private void buildControlPanel(Composite parent, Control checkBoxPanel) {
-		Composite panel = new Composite(parent, SWT.NONE);
-		FormData fd = new FormData();
-			fd.top = new FormAttachment(checkBoxPanel);
-			fd.bottom = new FormAttachment(100);
-			fd.left = new FormAttachment(0);
-			fd.right = new FormAttachment(100);
-		panel.setLayoutData(fd);
-
-		panel.setLayout(new FillLayout());
-		this.buildResetNameButton(panel);
-		this.buildClearModelButton(panel);
-		this.buildRestoreModelButton(panel);
-		this.buildPrintModelButton(panel);
-	}
-
-	private void buildResetNameButton(Composite parent) {
-		this.buildResetNameACI().fill(parent);
-	}
-
-	private ActionContributionItem buildResetNameACI() {
-		Action action = new Action("reset name", IAction.AS_PUSH_BUTTON) {
-			@Override
-			public void run() {
-				TextFieldModelAdapterUITest.this.resetName();
-			}
-		};
-		action.setToolTipText("reset name");
-		return new ActionContributionItem(action);
-	}
-
-	void resetName() {
-		this.testModel.setName(DEFAULT_NAME);
-	}
-
-	private void buildClearModelButton(Composite parent) {
-		this.buildClearModelACI().fill(parent);
-	}
-
-	private ActionContributionItem buildClearModelACI() {
-		Action action = new Action("clear model", IAction.AS_PUSH_BUTTON) {
-			@Override
-			public void run() {
-				TextFieldModelAdapterUITest.this.clearModel();
-			}
-		};
-		action.setToolTipText("clear model");
-		return new ActionContributionItem(action);
-	}
-
-	void clearModel() {
-		this.testModelHolder.setValue(null);
-	}
-
-	private void buildRestoreModelButton(Composite parent) {
-		this.buildRestoreModelACI().fill(parent);
-	}
-
-	private ActionContributionItem buildRestoreModelACI() {
-		Action action = new Action("restore model", IAction.AS_PUSH_BUTTON) {
-			@Override
-			public void run() {
-				TextFieldModelAdapterUITest.this.restoreModel();
-			}
-		};
-		action.setToolTipText("restore model");
-		return new ActionContributionItem(action);
-	}
-
-	void restoreModel() {
-		this.testModelHolder.setValue(this.testModel);
-	}
-
-	private void buildPrintModelButton(Composite parent) {
-		this.buildPrintModelACI().fill(parent);
-	}
-
-	private ActionContributionItem buildPrintModelACI() {
-		Action action = new Action("print model", IAction.AS_PUSH_BUTTON) {
-			@Override
-			public void run() {
-				TextFieldModelAdapterUITest.this.printModel();
-			}
-		};
-		action.setToolTipText("print model");
-		return new ActionContributionItem(action);
-	}
-
-	void printModel() {
-		System.out.println("name: " + this.testModel.name());
-	}
-
-
-	// ********** model class **********
-
-	class TestModel extends AbstractModel {
-		private String name;
-			public static final String NAME_PROPERTY = "name";
-
-		public TestModel(String name) {
-			this.name = name;
-		}
-		public String name() {
-			return this.name;
-		}
-		public void setName(String name) {
-			Object old = this.name;
-			this.name = name;
-			this.firePropertyChanged(NAME_PROPERTY, old, name);
-		}
-		@Override
-		public String toString() {
-			return "TestModel(" + this.name + ")";
-		}
-	}
-
-}
diff --git a/jpa/tests/org.eclipse.jpt.ui.tests/src/org/eclipse/jpt/ui/tests/internal/swt/TriStateCheckBoxModelAdapterUITest.java b/jpa/tests/org.eclipse.jpt.ui.tests/src/org/eclipse/jpt/ui/tests/internal/swt/TriStateCheckBoxModelAdapterUITest.java
deleted file mode 100644
index 80b8840..0000000
--- a/jpa/tests/org.eclipse.jpt.ui.tests/src/org/eclipse/jpt/ui/tests/internal/swt/TriStateCheckBoxModelAdapterUITest.java
+++ /dev/null
@@ -1,320 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.ui.tests.internal.swt;
-
-import org.eclipse.jface.action.Action;
-import org.eclipse.jface.action.ActionContributionItem;
-import org.eclipse.jface.action.IAction;
-import org.eclipse.jface.window.ApplicationWindow;
-import org.eclipse.jface.window.Window;
-import org.eclipse.jpt.ui.internal.swt.TriStateCheckBoxModelAdapter;
-import org.eclipse.jpt.ui.internal.widgets.DefaultWidgetFactory;
-import org.eclipse.jpt.ui.internal.widgets.TriStateCheckBox;
-import org.eclipse.jpt.utility.internal.ClassTools;
-import org.eclipse.jpt.utility.internal.model.AbstractModel;
-import org.eclipse.jpt.utility.internal.model.value.PropertyAspectAdapter;
-import org.eclipse.jpt.utility.internal.model.value.SimplePropertyValueModel;
-import org.eclipse.jpt.utility.model.value.PropertyValueModel;
-import org.eclipse.jpt.utility.model.value.WritablePropertyValueModel;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.events.SelectionEvent;
-import org.eclipse.swt.events.SelectionListener;
-import org.eclipse.swt.layout.FillLayout;
-import org.eclipse.swt.layout.FormAttachment;
-import org.eclipse.swt.layout.FormData;
-import org.eclipse.swt.layout.FormLayout;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Control;
-import org.eclipse.swt.widgets.Display;
-import org.eclipse.swt.widgets.Shell;
-
-/**
- * Play around with a set of tri-state check boxes.
- */
-public class TriStateCheckBoxModelAdapterUITest
-	extends ApplicationWindow
-{
-	private final TestModel testModel;
-	private final WritablePropertyValueModel<TestModel> testModelHolder;
-	private final WritablePropertyValueModel<Boolean> flag1Holder;
-	private final WritablePropertyValueModel<Boolean> flag2Holder;
-	private final WritablePropertyValueModel<Boolean> notFlag2Holder;
-
-	public static void main(String[] args) throws Exception {
-		Window window = new TriStateCheckBoxModelAdapterUITest(args);
-		window.setBlockOnOpen(true);
-		window.open();
-		Display.getCurrent().dispose();
-		System.exit(0);
-	}
-
-	private TriStateCheckBoxModelAdapterUITest(String[] args) {
-		super(null);
-		this.testModel = new TestModel(Boolean.TRUE, Boolean.FALSE);
-		this.testModelHolder = new SimplePropertyValueModel<TestModel>(this.testModel);
-		this.flag1Holder = this.buildFlag1Holder(this.testModelHolder);
-		this.flag2Holder = this.buildFlag2Holder(this.testModelHolder);
-		this.notFlag2Holder = this.buildNotFlag2Holder(this.testModelHolder);
-	}
-
-	private WritablePropertyValueModel<Boolean> buildFlag1Holder(PropertyValueModel<TestModel> subjectHolder) {
-		return new PropertyAspectAdapter<TestModel, Boolean>(subjectHolder, TestModel.FLAG1_PROPERTY) {
-			@Override
-			protected Boolean buildValue_() {
-				return this.subject.isFlag1();
-			}
-			@Override
-			protected void setValue_(Boolean value) {
-				this.subject.setFlag1(value);
-			}
-		};
-	}
-
-	private WritablePropertyValueModel<Boolean> buildFlag2Holder(PropertyValueModel<TestModel> subjectHolder) {
-		return new PropertyAspectAdapter<TestModel, Boolean>(subjectHolder, TestModel.FLAG2_PROPERTY) {
-			@Override
-			protected Boolean buildValue_() {
-				return this.subject.isFlag2();
-			}
-			@Override
-			protected void setValue_(Boolean value) {
-				this.subject.setFlag2(value);
-			}
-		};
-	}
-
-	private WritablePropertyValueModel<Boolean> buildNotFlag2Holder(PropertyValueModel<TestModel> subjectHolder) {
-		return new PropertyAspectAdapter<TestModel, Boolean>(subjectHolder, TestModel.NOT_FLAG2_PROPERTY) {
-			@Override
-			protected Boolean buildValue_() {
-				return this.subject.isNotFlag2();
-			}
-			@Override
-			protected void setValue_(Boolean value) {
-				this.subject.setNotFlag2(value);
-			}
-		};
-	}
-
-	@Override
-	protected Control createContents(Composite parent) {
-		((Shell) parent).setText(ClassTools.shortClassNameForObject(this));
-		parent.setSize(400, 100);
-		Composite mainPanel = new Composite(parent, SWT.NONE);
-		mainPanel.setLayout(new FormLayout());
-		Control checkBoxPanel = this.buildCheckBoxPanel(mainPanel);
-		this.buildControlPanel(mainPanel, checkBoxPanel);
-		return mainPanel;
-	}
-
-	private Control buildCheckBoxPanel(Composite parent) {
-		Composite panel = new Composite(parent, SWT.NONE);
-
-		FormData fd = new FormData();
-			fd.top = new FormAttachment(0);
-			fd.bottom = new FormAttachment(100, -35);
-			fd.left = new FormAttachment(0);
-			fd.right = new FormAttachment(100);
-		panel.setLayoutData(fd);
-
-		panel.setLayout(new FillLayout());
-		this.buildFlag1CheckBox(panel);
-		this.buildFlag2CheckBox(panel);
-		this.buildNotFlag2CheckBox(panel);
-		this.buildUnattachedCheckBox(panel);
-
-		return panel;
-	}
-
-	private void buildFlag1CheckBox(Composite parent) {
-		TriStateCheckBox checkBox = new TriStateCheckBox(parent, "flag 1", DefaultWidgetFactory.instance());
-		TriStateCheckBoxModelAdapter.adapt(this.flag1Holder, checkBox);
-	}
-
-	private void buildFlag2CheckBox(Composite parent) {
-		TriStateCheckBox checkBox = new TriStateCheckBox(parent, "flag 2", DefaultWidgetFactory.instance());
-		TriStateCheckBoxModelAdapter.adapt(this.flag2Holder, checkBox);
-	}
-
-	private void buildNotFlag2CheckBox(Composite parent) {
-		TriStateCheckBox checkBox = new TriStateCheckBox(parent, "next flag 2", DefaultWidgetFactory.instance());
-		TriStateCheckBoxModelAdapter.adapt(this.notFlag2Holder, checkBox);
-	}
-
-	private void buildUnattachedCheckBox(Composite parent) {
-		TriStateCheckBox checkBox = new TriStateCheckBox(parent, "unattached", DefaultWidgetFactory.instance());
-		checkBox.addSelectionListener(this.buildUnattachedSelectionListener());
-	}
-
-	private SelectionListener buildUnattachedSelectionListener() {
-		return new SelectionListener() {
-			public void widgetDefaultSelected(SelectionEvent e) {
-				System.out.println("unattached default selected: " + e);
-			}
-			public void widgetSelected(SelectionEvent e) {
-				System.out.println("unattached selected: " + e);
-			}
-		};
-	}
-
-	private void buildControlPanel(Composite parent, Control checkBoxPanel) {
-		Composite panel = new Composite(parent, SWT.NONE);
-		FormData fd = new FormData();
-			fd.top = new FormAttachment(checkBoxPanel);
-			fd.bottom = new FormAttachment(100);
-			fd.left = new FormAttachment(0);
-			fd.right = new FormAttachment(100);
-		panel.setLayoutData(fd);
-
-		panel.setLayout(new FillLayout());
-		this.buildFlipFlag1Button(panel);
-		this.buildClearModelButton(panel);
-		this.buildRestoreModelButton(panel);
-		this.buildPrintModelButton(panel);
-	}
-
-	private void buildFlipFlag1Button(Composite parent) {
-		this.buildFlipFlag1ACI().fill(parent);
-	}
-
-	private ActionContributionItem buildFlipFlag1ACI() {
-		Action action = new Action("next flag 1", IAction.AS_PUSH_BUTTON) {
-			@Override
-			public void run() {
-				TriStateCheckBoxModelAdapterUITest.this.nextFlag1();
-			}
-		};
-		action.setToolTipText("next flag 1");
-		return new ActionContributionItem(action);
-	}
-
-	void nextFlag1() {
-		this.testModel.nextFlag1();
-	}
-
-	private void buildClearModelButton(Composite parent) {
-		this.buildClearModelACI().fill(parent);
-	}
-
-	private ActionContributionItem buildClearModelACI() {
-		Action action = new Action("clear model", IAction.AS_PUSH_BUTTON) {
-			@Override
-			public void run() {
-				TriStateCheckBoxModelAdapterUITest.this.clearModel();
-			}
-		};
-		action.setToolTipText("clear model");
-		return new ActionContributionItem(action);
-	}
-
-	void clearModel() {
-		this.testModelHolder.setValue(null);
-	}
-
-	private void buildRestoreModelButton(Composite parent) {
-		this.buildRestoreModelACI().fill(parent);
-	}
-
-	private ActionContributionItem buildRestoreModelACI() {
-		Action action = new Action("restore model", IAction.AS_PUSH_BUTTON) {
-			@Override
-			public void run() {
-				TriStateCheckBoxModelAdapterUITest.this.restoreModel();
-			}
-		};
-		action.setToolTipText("restore model");
-		return new ActionContributionItem(action);
-	}
-
-	void restoreModel() {
-		this.testModelHolder.setValue(this.testModel);
-	}
-
-	private void buildPrintModelButton(Composite parent) {
-		this.buildPrintModelACI().fill(parent);
-	}
-
-	private ActionContributionItem buildPrintModelACI() {
-		Action action = new Action("print model", IAction.AS_PUSH_BUTTON) {
-			@Override
-			public void run() {
-				TriStateCheckBoxModelAdapterUITest.this.printModel();
-			}
-		};
-		action.setToolTipText("print model");
-		return new ActionContributionItem(action);
-	}
-
-	void printModel() {
-		System.out.println("flag 1: " + this.testModel.isFlag1());
-		System.out.println("flag 2: " + this.testModel.isFlag2());
-		System.out.println("not flag 2: " + this.testModel.isNotFlag2());
-		System.out.println("***");
-	}
-
-
-	private class TestModel extends AbstractModel {
-		private Boolean flag1;
-			public static final String FLAG1_PROPERTY = "flag1";
-		private Boolean flag2;
-			public static final String FLAG2_PROPERTY = "flag2";
-		private Boolean notFlag2;
-			public static final String NOT_FLAG2_PROPERTY = "notFlag2";
-	
-		public TestModel(Boolean flag1, Boolean flag2) {
-			this.flag1 = flag1;
-			this.flag2 = flag2;
-			this.notFlag2 = this.next(flag2);
-		}
-		private Boolean next(Boolean b) {
-			return (b == null) ? Boolean.TRUE : b.booleanValue() ? Boolean.FALSE : null;
-		}
-		public Boolean isFlag1() {
-			return this.flag1;
-		}
-		public void setFlag1(Boolean flag1) {
-			Boolean old = this.flag1;
-			this.flag1 = flag1;
-			this.firePropertyChanged(FLAG1_PROPERTY, old, flag1);
-		}
-		public void nextFlag1() {
-			this.setFlag1(this.next(this.flag1));
-		}
-		public Boolean isFlag2() {
-			return this.flag2;
-		}
-		public void setFlag2(Boolean flag2) {
-			Boolean old = this.flag2;
-			this.flag2 = flag2;
-			this.firePropertyChanged(FLAG2_PROPERTY, old, flag2);
-
-			old = this.notFlag2;
-			this.notFlag2 = this.next(flag2);
-			this.firePropertyChanged(NOT_FLAG2_PROPERTY, old, this.notFlag2);
-		}
-		public void nextFlag2() {
-			this.setFlag2(this.next(this.flag2));
-		}
-		public Boolean isNotFlag2() {
-			return this.notFlag2;
-		}
-		public void setNotFlag2(Boolean notFlag2) {
-			this.setFlag2(this.next(flag2));
-		}
-		public void nextNotFlag2() {
-			this.setNotFlag2(this.next(this.notFlag2));
-		}
-		@Override
-		public String toString() {
-			return "TestModel(" + this.isFlag1() + " - " + this.isFlag2() + ")";
-		}
-	}
-
-}
diff --git a/jpa/tests/org.eclipse.jpt.ui.tests/src/org/eclipse/jpt/ui/tests/internal/util/ControlAlignerTest.java b/jpa/tests/org.eclipse.jpt.ui.tests/src/org/eclipse/jpt/ui/tests/internal/util/ControlAlignerTest.java
deleted file mode 100644
index eccd44e..0000000
--- a/jpa/tests/org.eclipse.jpt.ui.tests/src/org/eclipse/jpt/ui/tests/internal/util/ControlAlignerTest.java
+++ /dev/null
@@ -1,800 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- *
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.ui.tests.internal.util;
-
-import static org.junit.Assert.*;
-import org.eclipse.jface.dialogs.TitleAreaDialog;
-import org.eclipse.jpt.ui.internal.util.ControlAligner;
-import org.eclipse.jpt.ui.internal.util.SWTUtil;
-import org.eclipse.jpt.utility.internal.ClassTools;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.graphics.Point;
-import org.eclipse.swt.layout.GridData;
-import org.eclipse.swt.layout.GridLayout;
-import org.eclipse.swt.widgets.Button;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Control;
-import org.eclipse.swt.widgets.Display;
-import org.eclipse.swt.widgets.Event;
-import org.eclipse.swt.widgets.Label;
-import org.eclipse.swt.widgets.Layout;
-import org.eclipse.swt.widgets.Shell;
-import org.junit.After;
-import org.junit.Before;
-import org.junit.Test;
-
-@SuppressWarnings("nls")
-public final class ControlAlignerTest {
-
-	private ControlAligner controlAligner;
-	private Composite parent;
-	private Shell shell;
-
-	private Layout buildSpacerLayout() {
-		return new Layout() {
-			@Override
-			protected Point computeSize(Composite composite,
-			                            int widthHint,
-			                            int heightHint,
-			                            boolean flushCache) {
-
-				return new Point(widthHint, heightHint);
-			}
-
-			@Override
-			protected void layout(Composite composite, boolean flushCache) {
-				GridData data = (GridData) composite.getLayoutData();
-				composite.setBounds(0, 0, data.widthHint, data.heightHint);
-			}
-		};
-	}
-
-	@Before
-	public void setUp() {
-
-		controlAligner = new ControlAligner();
-
-		shell  = new Shell(Display.getCurrent());
-		shell.setLayout(new GridLayout(1, false));
-
-		parent = new Composite(shell, SWT.NONE);
-		parent.setLayout(new GridLayout(1, false));
-		parent.setLayoutData(new GridData(GridData.HORIZONTAL_ALIGN_BEGINNING));
-	}
-
-	@After
-	public void tearDown() {
-
-		if (controlAligner != null) {
-			controlAligner.dispose();
-			controlAligner = null;
-		}
-
-		if (shell != null) {
-			shell.dispose();
-			shell = null;
-		}
-	}
-
-	@Test
-	public void testAddControl1() throws Exception {
-
-		Composite pane = new Composite(parent, SWT.NULL);
-		pane.setLayout(new GridLayout(3, false));
-		pane.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));
-
-		Label label = new Label(pane, SWT.NULL);
-		updateGridData(label);
-
-		controlAligner.add(label);
-
-		assertEquals(
-			"The maximum width should be 0,",
-			0,
-			controlAligner.getMaximumWidth()
-		);
-
-		label.setText("This is a ControlAligner");
-//		parent.layout(true, true);
-
-		Point size = label.getSize();
-
-		assertEquals(
-			"The width should be " + size.x + ",",
-			size.x,
-			controlAligner.getMaximumWidth()
-		);
-	}
-
-	@Test
-	public void testAddControl2() throws Exception {
-
-		Composite pane = new Composite(parent, SWT.NULL);
-		pane.setLayout(new GridLayout(3, false));
-		pane.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));
-
-		Button button = new Button(pane, SWT.NULL);
-		button.setText("This is a ControlAligner");
-		updateGridData(button);
-
-		controlAligner.add(button);
-		parent.layout(true, true);
-
-		Point size = button.getSize();
-
-		assertEquals(
-			"The width should be " + size.x + ",",
-			size.x,
-			controlAligner.getMaximumWidth()
-		);
-	}
-
-	@Test
-	public void testAddControl3() throws Exception {
-
-		Composite pane = new Composite(parent, SWT.NULL);
-		pane.setLayout(new GridLayout(3, false));
-		pane.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));
-
-		Label label = new Label(pane, SWT.NULL);
-		label.setText("This is very long text");
-		updateGridData(label);
-
-		Button button = new Button(pane, SWT.NULL);
-		button.setText("Short text");
-		updateGridData(button);
-
-//		parent.layout(true, true);
-
-		controlAligner.add(label);
-		controlAligner.add(button);
-
-		Point labelSize  = label.getSize();
-		Point buttonSize = button.getSize();
-		int max = Math.max(labelSize.x, buttonSize.x);
-
-		assertEquals(
-			"The width should be " + max + ",",
-			max,
-			controlAligner.getMaximumWidth()
-		);
-	}
-
-	@Test
-	public void testAddControlAligner1() throws Exception {
-
-		Label label1 = new Label(parent, SWT.NULL);
-		Label label2 = new Label(parent, SWT.NULL);
-
-		updateGridData(label1);
-		updateGridData(label2);
-
-		controlAligner.add(label1);
-
-		ControlAligner controlAligner2 = new ControlAligner();
-		controlAligner.add(controlAligner2);
-		controlAligner2.add(label2);
-
-		label1.setText("This is a ControlAligner");
-		label2.setText("This is a very long ControlAligner");
-//		parent.layout(true, true);
-
-		Point size1 = label1.getSize();
-		Point size2 = label2.getSize();
-		int width = Math.max(size1.x, size2.x);
-
-		assertEquals(
-			"The width should be " + width + ",",
-			width,
-			controlAligner.getMaximumWidth()
-		);
-
-		assertEquals(
-			"The width should be " + width + ",",
-			width,
-			controlAligner2.getMaximumWidth()
-		);
-	}
-
-	@Test
-	public void testAddControlAligner2() throws Exception {
-
-		Label label1 = new Label(parent, SWT.NULL);
-		Label label2 = new Label(parent, SWT.NULL);
-
-		updateGridData(label1);
-		updateGridData(label2);
-
-		controlAligner.add(label1);
-
-		ControlAligner controlAligner2 = new ControlAligner();
-		controlAligner2.add(label2);
-
-		label1.setText("This is a ControlAligner");
-		label2.setText("This is a very long ControlAligner");
-
-		controlAligner.add(controlAligner2);
-//		parent.layout(true, true);
-
-		Point size1 = label1.getSize();
-		Point size2 = label2.getSize();
-		int width = Math.max(size1.x, size2.x);
-
-		assertEquals(
-			"The width should be " + width + ",",
-			width,
-			controlAligner.getMaximumWidth()
-		);
-
-		assertEquals(
-			"The width should be " + width + ",",
-			width,
-			controlAligner2.getMaximumWidth()
-		);
-	}
-
-	@Test(expected=IllegalArgumentException.class)
-	public void testAddControlAlignerToItself() throws Exception {
-		controlAligner.add(controlAligner);
-		fail("A ControlAligner can't be added to itself");
-	}
-
-	@Test
-	public void testDialog_AddControl1() throws Exception {
-
-		final int[] maximumWidth = new int[1];
-		final int[] size = new int[1];
-
-		TitleAreaDialog dialog = new TitleAreaDialog(SWTUtil.getShell()) {
-
-			private Label label;
-
-			@Override
-			protected Control createDialogArea(Composite parent) {
-
-				Composite pane = new Composite(parent, SWT.NULL);
-				pane.setLayout(new GridLayout(3, false));
-				pane.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));
-
-				label = new Label(pane, SWT.LEFT);
-				label.setText("This is a ControlAligner");
-				updateGridData(label);
-
-				controlAligner.add(label);
-
-				return parent;
-			}
-
-			@Override
-			protected void initializeBounds() {
-				super.initializeBounds();
-				size[0] = label.getSize().x;
-				maximumWidth[0] = controlAligner.getMaximumWidth();
-			}
-		};
-
-		dialog.create();
-		dialog.close();
-
-		assertEquals(
-			"The width should be " + size[0] + ",",
-			size[0],
-			maximumWidth[0]
-		);
-	}
-
-	@Test
-	public void testDialog_AddControl2() throws Exception {
-
-		final int[] maximumWidth = new int[1];
-		final int[] sizes = new int[2];
-
-		TitleAreaDialog dialog = new TitleAreaDialog(SWTUtil.getShell()) {
-
-			private Button button;
-			private Label label;
-
-			@Override
-			protected Control createDialogArea(Composite parent) {
-
-				Composite pane = new Composite(parent, SWT.NULL);
-				pane.setLayout(new GridLayout(3, false));
-				pane.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));
-
-				label = new Label(pane, SWT.NULL);
-				label.setText("This is a ControlAligner");
-				updateGridData(label);
-
-				controlAligner.add(label);
-
-				button = new Button(pane, SWT.NULL);
-				button.setText("Short text");
-				updateGridData(button);
-
-				controlAligner.add(button);
-
-				return parent;
-			}
-
-			@Override
-			protected void initializeBounds() {
-				super.initializeBounds();
-				sizes[0] = label.getSize().x;
-				sizes[1] = button.getSize().x;
-				maximumWidth[0] = controlAligner.getMaximumWidth();
-			}
-		};
-
-		dialog.create();
-		dialog.close();
-
-		int labelSize  = sizes[0];
-		int buttonSize = sizes[1];
-		int max = Math.max(labelSize, buttonSize);
-
-		assertEquals(
-			"The width should be " + max + ",",
-			max,
-			maximumWidth[0]
-		);
-	}
-
-	@Test
-	public void testDispose() throws Exception {
-
-		Composite pane = new Composite(parent, SWT.NULL);
-		pane.setLayout(new GridLayout(3, false));
-		pane.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));
-
-		Label label = new Label(pane, SWT.NULL);
-		label.setText("This is very long text");
-		updateGridData(label);
-
-		Button button = new Button(pane, SWT.NULL);
-		button.setText("Short text");
-		updateGridData(button);
-
-		controlAligner.add(label);
-		controlAligner.add(button);
-
-		Point labelSize  = label.getSize();
-		Point buttonSize = button.getSize();
-		int max = Math.max(labelSize.x, buttonSize.x);
-
-		assertEquals(
-			"The width should be " + max + ",",
-			max,
-			controlAligner.getMaximumWidth()
-		);
-
-		label.dispose();
-
-		Point newButtonSize = button.getSize();
-
-		assertNotSame(
-			"The old max and new max should not be the same",
-			max,
-			newButtonSize.x
-		);
-
-		assertEquals(
-			"The ControlAligner doesn't have the right maximum width",
-			newButtonSize.x,
-			controlAligner.getMaximumWidth()
-		);
-	}
-
-	@Test
-	public void testHierarchyOfControlAligners() throws Exception {
-
-		// Aligner1
-		//  ^
-		//  |-Aligner2
-		//     ^
-		//     |-Aligner3
-		ControlAligner controlAligner2 = new ControlAligner();
-		controlAligner.add(controlAligner2);
-
-		ControlAligner controlAligner3 = new ControlAligner();
-		controlAligner2.add(controlAligner3);
-
-		// Test 1
-		Label label1 = new Label(parent, SWT.NULL);
-		label1.setText("This is a label widget");
-		parent.layout(true, true);
-
-		int labelWidth1 = label1.getSize().x;
-		controlAligner3.add(label1);
-
-		assertEquals(controlAligner3.getMaximumWidth(), labelWidth1);
-		assertEquals(controlAligner2.getMaximumWidth(), labelWidth1);
-		assertEquals(controlAligner.getMaximumWidth(), labelWidth1);
-
-		// Test 2
-		Label label2 = new Label(parent, SWT.NULL);
-		label2.setText("ShortLabel");
-		controlAligner2.add(label2);
-		parent.layout(true);
-
-		int newLabelWidth1 = label1.getSize().x;
-		int newLabelWidth2 = label2.getSize().x;
-
-		assertEquals(controlAligner3.getMaximumWidth(), controlAligner2.getMaximumWidth());
-		assertEquals(controlAligner2.getMaximumWidth(), controlAligner.getMaximumWidth());
-		assertEquals(newLabelWidth1, newLabelWidth2);
-		assertEquals(newLabelWidth1, controlAligner.getMaximumWidth());
-
-		// Test 3
-		Label label3 = new Label(parent, SWT.NULL);
-		label3.setText("A very long label that takes a lot of horizontal space");
-//		parent.layout(true);
-		controlAligner.add(label3);
-
-		newLabelWidth1 = label1.getSize().x;
-		newLabelWidth2 = label2.getSize().x;
-		int newLabelWidth3 = label3.getSize().x;
-
-		assertEquals(controlAligner3.getMaximumWidth(), controlAligner2.getMaximumWidth());
-		assertEquals(controlAligner2.getMaximumWidth(), controlAligner.getMaximumWidth());
-		assertEquals(newLabelWidth1, newLabelWidth2);
-		assertEquals(newLabelWidth2, newLabelWidth3);
-		assertEquals(newLabelWidth1, controlAligner.getMaximumWidth());
-
-		// Make sure all the locked are removed
-		assertEquals(ClassTools.attemptToGetFieldValue(controlAligner, "locked"), Boolean.FALSE);
-		assertEquals(ClassTools.attemptToGetFieldValue(controlAligner2, "locked"), Boolean.FALSE);
-		assertEquals(ClassTools.attemptToGetFieldValue(controlAligner3, "locked"), Boolean.FALSE);
-
-		// Change the text of label2
-		label2.setText("mm");
-//		parent.layout(true);
-
-		newLabelWidth1 = label1.getSize().x;
-		newLabelWidth2 = label2.getSize().x;
-		newLabelWidth3 = label3.getSize().x;
-
-		assertEquals(controlAligner3.getMaximumWidth(), controlAligner2.getMaximumWidth());
-		assertEquals(controlAligner2.getMaximumWidth(), controlAligner.getMaximumWidth());
-		assertEquals(newLabelWidth1, newLabelWidth2);
-		assertEquals(newLabelWidth2, newLabelWidth3);
-		assertEquals(newLabelWidth1, controlAligner.getMaximumWidth());
-
-		assertEquals(ClassTools.attemptToGetFieldValue(controlAligner, "locked"), Boolean.FALSE);
-		assertEquals(ClassTools.attemptToGetFieldValue(controlAligner2, "locked"), Boolean.FALSE);
-		assertEquals(ClassTools.attemptToGetFieldValue(controlAligner3, "locked"), Boolean.FALSE);
-
-		// Change the text of label1
-		label1.setText("a");
-//		parent.layout(true);
-
-		Composite parent1 = new Composite(SWTUtil.getShell(), SWT.NULL);
-		parent1.setLayout(new GridLayout());
-
-		Label tempLabel = new Label(parent1, SWT.NULL);
-		tempLabel.setText("a");
-//		parent1.layout(true);
-
-		int realWidth = tempLabel.getSize().x;
-
-		newLabelWidth1 = label1.getSize().x;
-		newLabelWidth2 = label2.getSize().x;
-		newLabelWidth3 = label3.getSize().x;
-
-		assertEquals(controlAligner3.getMaximumWidth(), controlAligner2.getMaximumWidth());
-		assertEquals(controlAligner2.getMaximumWidth(), controlAligner.getMaximumWidth());
-		assertEquals(newLabelWidth1, newLabelWidth2);
-		assertEquals(newLabelWidth2, newLabelWidth3);
-		assertEquals(newLabelWidth1, controlAligner.getMaximumWidth());
-		assertFalse(newLabelWidth1 == realWidth);
-
-		assertEquals(ClassTools.attemptToGetFieldValue(controlAligner, "locked"), Boolean.FALSE);
-		assertEquals(ClassTools.attemptToGetFieldValue(controlAligner2, "locked"), Boolean.FALSE);
-		assertEquals(ClassTools.attemptToGetFieldValue(controlAligner3, "locked"), Boolean.FALSE);
-
-		// Change the text of label1
-		label1.setText("Yes another big long long text so that all the labels will have to take the size of this label to make sure ControlAligner works correctly");
-//		parent.layout(true);
-
-		// Weird: It seems no notification is sent, fire one manually
-		Event event  = new Event();
-		event.widget = label1;
-		event.type   = SWT.Resize;
-		label1.notifyListeners(SWT.Resize, event);
-
-		Composite parent2 = new Composite(SWTUtil.getShell(), SWT.NULL);
-		parent2.setLayout(new GridLayout());
-
-		tempLabel = new Label(parent2, SWT.NULL);
-		tempLabel.setText(label1.getText());
-		parent2.layout(true);
-
-		realWidth = tempLabel.getSize().x;
-
-		newLabelWidth1 = label1.getSize().x;
-		newLabelWidth2 = label2.getSize().x;
-		newLabelWidth3 = label3.getSize().x;
-
-		assertEquals(controlAligner3.getMaximumWidth(), controlAligner2.getMaximumWidth());
-		assertEquals(controlAligner2.getMaximumWidth(), controlAligner.getMaximumWidth());
-		assertEquals(newLabelWidth1, newLabelWidth2);
-		assertEquals(newLabelWidth2, newLabelWidth3);
-		assertEquals(controlAligner.getMaximumWidth(), newLabelWidth1);
-		assertEquals(realWidth, newLabelWidth1);
-
-		assertEquals(ClassTools.attemptToGetFieldValue(controlAligner, "locked"), Boolean.FALSE);
-		assertEquals(ClassTools.attemptToGetFieldValue(controlAligner2, "locked"), Boolean.FALSE);
-		assertEquals(ClassTools.attemptToGetFieldValue(controlAligner3, "locked"), Boolean.FALSE);
-	}
-
-	@Test
-	public void testRemoveControl1() throws Exception {
-
-		Composite pane = new Composite(parent, SWT.NULL);
-		pane.setLayout(new GridLayout(3, false));
-		pane.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));
-
-		Button button = new Button(pane, SWT.NULL);
-		button.setText("This is a ControlAligner");
-		updateGridData(button);
-
-		controlAligner.add(button);
-		parent.layout(true, true);
-
-		Point size = button.getSize();
-
-		assertEquals(
-			"The width should be " + size.x + ",",
-			size.x,
-			controlAligner.getMaximumWidth()
-		);
-
-		controlAligner.remove(button);
-
-		assertEquals(
-			"The width should be 0, ",
-			0,
-			controlAligner.getMaximumWidth()
-		);
-	}
-
-	@Test
-	public void testRemoveControl2() throws Exception {
-
-		Composite pane = new Composite(parent, SWT.NULL);
-		pane.setLayout(new GridLayout(3, false));
-		pane.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));
-
-		Label label = new Label(pane, SWT.NULL);
-		label.setText("This is very long text");
-		updateGridData(label);
-
-		Button button = new Button(pane, SWT.NULL);
-		button.setText("Short text");
-		updateGridData(button);
-//		parent.layout(true, true);
-
-		controlAligner.add(label);
-		controlAligner.add(button);
-
-		Point labelSize  = label.getSize();
-		Point buttonSize = button.getSize();
-		int max = Math.max(labelSize.x, buttonSize.x);
-
-		assertEquals(
-			"The width should be " + max + ",",
-			max,
-			controlAligner.getMaximumWidth()
-		);
-
-		controlAligner.remove(label);
-
-		Point newButtonSize = button.getSize();
-
-		assertNotSame(
-			"The old max and new max should not be the same",
-			max,
-			newButtonSize.x
-		);
-
-		assertEquals(
-			"The ControlAligner doesn't have the right maximum width",
-			newButtonSize.x,
-			controlAligner.getMaximumWidth()
-		);
-	}
-
-	@Test
-	public void testRemoveControl4() throws Exception {
-
-		Composite pane = new Composite(parent, SWT.NULL);
-		pane.setLayout(new GridLayout(3, false));
-		pane.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));
-
-		// Widget 1
-		Label label = new Label(pane, SWT.NULL);
-		label.setText("This is very long text");
-		updateGridData(label);
-		controlAligner.add(label);
-
-		// Widget 2
-		Composite spacer = new Composite(pane, SWT.NULL);
-		spacer.setLayout(buildSpacerLayout());
-		updateGridData(spacer);
-		controlAligner.add(spacer);
-
-		// Widget 3
-		Button button = new Button(pane, SWT.NULL);
-		button.setText("Short text");
-		updateGridData(button);
-		controlAligner.add(button);
-
-//		parent.layout(true, true);
-
-		// Make sure the 3 widgets have the same width
-		Point labelSize  = label.getSize();
-		Point spacerSize = spacer.getSize();
-		Point buttonSize = button.getSize();
-		int max = Math.max(labelSize.x, buttonSize.x);
-		max = Math.max(max, spacerSize.x);
-
-		assertEquals(
-			"The width should be " + max + ",",
-			max,
-			controlAligner.getMaximumWidth()
-		);
-
-		assertEquals(
-			"The spacer's width should be " + max + ",",
-			max,
-			spacerSize.x
-		);
-
-		// Remove the label (the widest widget) and make sure the width was
-		// correctly calculated
-		controlAligner.remove(label);
-
-		spacerSize = spacer.getSize();
-		buttonSize = button.getSize();
-		int max2 = Math.max(spacerSize.x, buttonSize.x);
-
-		assertNotSame(
-			"The old max and new max should not be the same",
-			max,
-			max2
-		);
-
-		assertEquals(
-			"The ControlAligner doesn't have the right maximum width",
-			max2,
-			controlAligner.getMaximumWidth()
-		);
-
-		assertEquals(
-			"The spacer's width should have been adjusted",
-			max2,
-			spacerSize.x
-		);
-	}
-
-	@Test
-	public void testRemoveControlAligner1() throws Exception {
-
-		Label label1 = new Label(parent, SWT.NULL);
-		Label label2 = new Label(parent, SWT.NULL);
-
-		updateGridData(label1);
-		updateGridData(label2);
-
-		controlAligner.add(label1);
-
-		ControlAligner controlAligner2 = new ControlAligner();
-		controlAligner.add(controlAligner2);
-		controlAligner2.add(label2);
-
-		label1.setText("This is a ControlAligner");
-		label2.setText("This is a very long ControlAligner");
-//		parent.layout(true, true);
-
-		Point size1 = label1.getSize();
-		Point size2 = label2.getSize();
-		int width = Math.max(size1.x, size2.x);
-
-		// Test 1
-		assertEquals(
-			"The width should be " + width + ",",
-			width,
-			controlAligner.getMaximumWidth()
-		);
-
-		assertEquals(
-			"The width should be " + width + ",",
-			width,
-			controlAligner2.getMaximumWidth()
-		);
-
-		// Test 2
-		controlAligner.remove(label1);
-
-		width = label2.getSize().x;
-
-		assertEquals(
-			"The width should be " + width + ",",
-			width,
-			controlAligner.getMaximumWidth()
-		);
-
-		assertEquals(
-			"The width should be " + width + ",",
-			width,
-			controlAligner2.getMaximumWidth()
-		);
-	}
-
-	@Test
-	public void testRemoveControlAligner2() throws Exception {
-
-		Label label1 = new Label(parent, SWT.NULL);
-		Label label2 = new Label(parent, SWT.NULL);
-
-		updateGridData(label1);
-		updateGridData(label2);
-
-		controlAligner.add(label1);
-
-		ControlAligner controlAligner2 = new ControlAligner();
-		controlAligner.add(controlAligner2);
-		controlAligner2.add(label2);
-
-		label1.setText("This is a ControlAligner");
-		label2.setText("This is a very long ControlAligner");
-//		parent.layout(true, true);
-
-		Point size1 = label1.getSize();
-		Point size2 = label2.getSize();
-		int width = Math.max(size1.x, size2.x);
-
-		// Test 1
-		assertEquals(
-			"The width should be " + width + ",",
-			width,
-			controlAligner.getMaximumWidth()
-		);
-
-		assertEquals(
-			"The width should be " + width + ",",
-			width,
-			controlAligner2.getMaximumWidth()
-		);
-
-		// Test 2
-		controlAligner2.remove(label2);
-
-		width = label1.getSize().x;
-
-		assertEquals(
-			"The width should be " + width + ",",
-			width,
-			controlAligner.getMaximumWidth()
-		);
-
-		assertEquals(
-			"The width should be " + width + ",",
-			width,
-			controlAligner2.getMaximumWidth()
-		);
-	}
-
-	private void updateGridData(Control control) {
-		GridData data = new GridData();
-		data.horizontalAlignment       = GridData.FILL;
-		data.grabExcessHorizontalSpace = false;
-		control.setLayoutData(data);
-	}
-}
\ No newline at end of file
diff --git a/jpa/tests/org.eclipse.jpt.ui.tests/src/org/eclipse/jpt/ui/tests/internal/util/ControlEnablerTest.java b/jpa/tests/org.eclipse.jpt.ui.tests/src/org/eclipse/jpt/ui/tests/internal/util/ControlEnablerTest.java
deleted file mode 100644
index 58e8e67..0000000
--- a/jpa/tests/org.eclipse.jpt.ui.tests/src/org/eclipse/jpt/ui/tests/internal/util/ControlEnablerTest.java
+++ /dev/null
@@ -1,84 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- *
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.ui.tests.internal.util;
-
-import static org.junit.Assert.*;
-import org.eclipse.jpt.ui.internal.util.ControlEnabler;
-import org.eclipse.jpt.ui.internal.util.SWTUtil;
-import org.eclipse.jpt.utility.internal.model.value.SimplePropertyValueModel;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.layout.GridLayout;
-import org.eclipse.swt.widgets.Combo;
-import org.eclipse.swt.widgets.Composite;
-import org.junit.After;
-import org.junit.Before;
-import org.junit.Test;
-
-@SuppressWarnings("nls")
-public final class ControlEnablerTest {
-	private Composite parent;
-
-	@Before
-	public void setUp() {
-		parent = new Composite(SWTUtil.getShell(), SWT.NONE);
-		parent.setLayout(new GridLayout());
-	}
-
-	@After
-	public void tearDown() {
-		if (parent != null) {
-			parent.dispose();
-		}
-	}
-
-	@Test
-	public void testSwitchState() {
-
-		SimplePropertyValueModel<Boolean> booleanHolder =
-			new SimplePropertyValueModel<Boolean>(true);
-
-		Combo combo = new Combo(parent, SWT.BORDER);
-
-		new ControlEnabler(booleanHolder, combo);
-
-		assertTrue(
-			"The Combo should be enabled",
-			combo.isEnabled()
-		);
-
-		// Change state (null)
-		booleanHolder.setValue(null);
-
-		assertFalse(
-			"The Combo should not be enabled",
-			combo.isEnabled()
-		);
-
-		// Change state (true)
-		booleanHolder.setValue(true);
-
-		assertTrue(
-			"The Combo should be enabled",
-			combo.isEnabled()
-		);
-
-		// Change state (false)
-		booleanHolder.setValue(false);
-
-		assertFalse(
-			"The Combo should not be enabled",
-			combo.isEnabled()
-		);
-
-		// Dispose
-		combo.dispose();
-		booleanHolder.setValue(true);
-	}
-}
diff --git a/jpa/tests/org.eclipse.jpt.ui.tests/src/org/eclipse/jpt/ui/tests/internal/util/ControlSwitcherTest.java b/jpa/tests/org.eclipse.jpt.ui.tests/src/org/eclipse/jpt/ui/tests/internal/util/ControlSwitcherTest.java
deleted file mode 100644
index 658ce0b..0000000
--- a/jpa/tests/org.eclipse.jpt.ui.tests/src/org/eclipse/jpt/ui/tests/internal/util/ControlSwitcherTest.java
+++ /dev/null
@@ -1,187 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- *
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.ui.tests.internal.util;
-
-import static org.junit.Assert.*;
-import org.eclipse.jpt.ui.internal.util.ControlSwitcher;
-import org.eclipse.jpt.ui.internal.util.SWTUtil;
-import org.eclipse.jpt.utility.internal.ClassTools;
-import org.eclipse.jpt.utility.internal.Transformer;
-import org.eclipse.jpt.utility.internal.model.value.SimplePropertyValueModel;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.graphics.Point;
-import org.eclipse.swt.layout.GridData;
-import org.eclipse.swt.layout.GridLayout;
-import org.eclipse.swt.widgets.Combo;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Control;
-import org.eclipse.swt.widgets.Label;
-import org.eclipse.swt.widgets.Text;
-import org.eclipse.ui.part.PageBook;
-import org.junit.After;
-import org.junit.Before;
-import org.junit.Test;
-
-@SuppressWarnings("nls")
-public final class ControlSwitcherTest {
-
-	private PageBook pageBook;
-	private Composite pane1;
-	private Composite pane2;
-	private Composite parent;
-
-	private Composite buildPane1() {
-
-		if (pane1 == null) {
-
-			pane1 = new Composite(pageBook, SWT.NULL);
-			pane1.setLayout(new GridLayout(2, false));
-
-			Label label = new Label(pane1, SWT.NULL);
-			label.setText("&Test2:");
-
-			Text text = new Text(pane1, SWT.BORDER);
-			text.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));
-
-			Combo combo = new Combo(pane1, SWT.BORDER);
-
-			GridData data = new GridData(GridData.FILL_HORIZONTAL);
-			data.horizontalSpan = 2;
-			combo.setLayoutData(data);
-		}
-
-		return pane1;
-	}
-
-	private Composite buildPane2() {
-
-		if (pane2 == null) {
-
-			pane2 = new Composite(pageBook, SWT.NULL);
-			pane2.setLayout(new GridLayout(2, false));
-
-			Label label = new Label(pane2, SWT.NULL);
-			label.setText("&Test1:");
-
-			Text text = new Text(pane2, SWT.BORDER);
-			text.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));
-		}
-
-		return pane2;
-	}
-
-	private Transformer<Boolean, Control> buildTransformer() {
-		return new Transformer<Boolean, Control>() {
-			public Control transform(Boolean value) {
-				return (value == null) ? null : (value ? pane1 : pane2);
-			}
-		};
-	}
-
-	@Before
-	public void setUp() {
-		parent = new Composite(SWTUtil.getShell(), SWT.NONE);
-		parent.setLayout(new GridLayout());
-
-		pageBook = new PageBook(parent, SWT.NULL);
-		pageBook.setLayoutData(new GridData());
-	}
-
-	@After
-	public void tearDown() {
-
-		if (parent != null) {
-
-			parent.dispose();
-
-			parent   = null;
-			pageBook = null;
-		}
-	}
-
-	@Test
-	public void testSwitch() {
-
-		SimplePropertyValueModel<Boolean> switchHolder = new SimplePropertyValueModel<Boolean>();
-		Transformer<Boolean, Control> transformer = buildTransformer();
-
-		pane1 = buildPane1();
-		pane1.setVisible(false);
-
-		pane2 = buildPane2();
-		pane2.setVisible(false);
-
-		new ControlSwitcher(
-			switchHolder,
-			transformer,
-			pageBook
-		);
-
-		// Test 1
-		switchHolder.setValue(true);
-		Control control = (Control) ClassTools.fieldValue(pageBook, "currentPage");
-
-		assertNotNull(
-			"The page book's page shouldn't be null",
-			control
-		);
-
-		assertSame(
-			"The current pane should be pane1",
-			pane1,
-			control
-		);
-
-		Point pane1Size = pane1.computeSize(SWT.DEFAULT, SWT.DEFAULT);
-		Point pageBookSize = pageBook.computeSize(SWT.DEFAULT, SWT.DEFAULT);
-
-		assertEquals(
-			"The width of the PageBook should be the same as the width of pane1",
-			pane1Size.x,
-			pageBookSize.x
-		);
-
-		assertEquals(
-			"The height of the PageBook should be the same as the height of pane1",
-			pane1Size.y,
-			pageBookSize.y
-		);
-
-		// Test 2
-		switchHolder.setValue(false);
-		control = (Control) ClassTools.fieldValue(pageBook, "currentPage");
-
-		assertNotNull(
-			"The page book's page shouldn't be null",
-			control
-		);
-
-		assertSame(
-			"The current pane should be pane2",
-			pane2,
-			control
-		);
-
-		Point pane2Size = pane2.computeSize(SWT.DEFAULT, SWT.DEFAULT);
-		pageBookSize = pageBook.computeSize(SWT.DEFAULT, SWT.DEFAULT);
-
-		assertEquals(
-			"The width of the PageBook should be the same as the width of pane2",
-			pane2Size.x,
-			pageBookSize.x
-		);
-
-		assertEquals(
-			"The height of the PageBook should be the same as the height of pane2",
-			pane2Size.y,
-			pageBookSize.y
-		);
-	}
-}
diff --git a/jpa/tests/org.eclipse.jpt.ui.tests/src/org/eclipse/jpt/ui/tests/internal/util/ControlVisibilityEnablerTest.java b/jpa/tests/org.eclipse.jpt.ui.tests/src/org/eclipse/jpt/ui/tests/internal/util/ControlVisibilityEnablerTest.java
deleted file mode 100644
index c0cd39c..0000000
--- a/jpa/tests/org.eclipse.jpt.ui.tests/src/org/eclipse/jpt/ui/tests/internal/util/ControlVisibilityEnablerTest.java
+++ /dev/null
@@ -1,84 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- *
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.ui.tests.internal.util;
-
-import static org.junit.Assert.*;
-import org.eclipse.jpt.ui.internal.util.ControlVisibilityEnabler;
-import org.eclipse.jpt.ui.internal.util.SWTUtil;
-import org.eclipse.jpt.utility.internal.model.value.SimplePropertyValueModel;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.layout.GridLayout;
-import org.eclipse.swt.widgets.Combo;
-import org.eclipse.swt.widgets.Composite;
-import org.junit.After;
-import org.junit.Before;
-import org.junit.Test;
-
-@SuppressWarnings("nls")
-public final class ControlVisibilityEnablerTest {
-	private Composite parent;
-
-	@Before
-	public void setUp() {
-		parent = new Composite(SWTUtil.getShell(), SWT.NONE);
-		parent.setLayout(new GridLayout());
-	}
-
-	@After
-	public void tearDown() {
-		if (parent != null) {
-			parent.dispose();
-		}
-	}
-
-	@Test
-	public void testSwitchState() {
-
-		SimplePropertyValueModel<Boolean> booleanHolder =
-			new SimplePropertyValueModel<Boolean>(true);
-
-		Combo combo = new Combo(parent, SWT.BORDER);
-
-		new ControlVisibilityEnabler(booleanHolder, combo);
-
-		assertTrue(
-			"The Combo should be visible",
-			combo.isVisible()
-		);
-
-		// Change state (null)
-		booleanHolder.setValue(null);
-
-		assertFalse(
-			"The Combo should not be visible",
-			combo.isVisible()
-		);
-
-		// Change state (true)
-		booleanHolder.setValue(true);
-
-		assertTrue(
-			"The Combo should be visible",
-			combo.isVisible()
-		);
-
-		// Change state (false)
-		booleanHolder.setValue(false);
-
-		assertFalse(
-			"The Combo should not be visible",
-			combo.isVisible()
-		);
-
-		// Dispose
-		combo.dispose();
-		booleanHolder.setValue(true);
-	}
-}
diff --git a/jpa/tests/org.eclipse.jpt.ui.tests/src/org/eclipse/jpt/ui/tests/internal/util/JptUiUtilTests.java b/jpa/tests/org.eclipse.jpt.ui.tests/src/org/eclipse/jpt/ui/tests/internal/util/JptUiUtilTests.java
deleted file mode 100644
index 81cfb08..0000000
--- a/jpa/tests/org.eclipse.jpt.ui.tests/src/org/eclipse/jpt/ui/tests/internal/util/JptUiUtilTests.java
+++ /dev/null
@@ -1,44 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- *
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.ui.tests.internal.util;
-
-import junit.framework.JUnit4TestAdapter;
-import junit.framework.Test;
-import junit.framework.TestSuite;
-import org.junit.runner.RunWith;
-import org.junit.runners.Suite;
-import org.junit.runners.Suite.SuiteClasses;
-
-@SuiteClasses
-({
-	ControlAlignerTest.class,
-	ControlSwitcherTest.class,
-	ControlEnablerTest.class,
-	ControlVisibilityEnablerTest.class,
-	LabeledButtonTest.class,
-	LabeledLabelTest.class,
-	LabeledControlUpdaterTest.class,
-	PaneEnablerTest.class,
-	PaneVisibilityEnablerTest.class,
-})
-@RunWith(Suite.class)
-public final class JptUiUtilTests {
-
-	private JptUiUtilTests() {
-		super();
-		throw new UnsupportedOperationException();
-	}
-
-	public static Test suite() {
-		TestSuite suite = new TestSuite();
-		suite.addTest(new JUnit4TestAdapter(JptUiUtilTests.class));
-		return suite;
-	}
-}
diff --git a/jpa/tests/org.eclipse.jpt.ui.tests/src/org/eclipse/jpt/ui/tests/internal/util/LabeledButtonTest.java b/jpa/tests/org.eclipse.jpt.ui.tests/src/org/eclipse/jpt/ui/tests/internal/util/LabeledButtonTest.java
deleted file mode 100644
index dde3031..0000000
--- a/jpa/tests/org.eclipse.jpt.ui.tests/src/org/eclipse/jpt/ui/tests/internal/util/LabeledButtonTest.java
+++ /dev/null
@@ -1,122 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- *
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.ui.tests.internal.util;
-
-import static org.junit.Assert.assertEquals;
-import org.eclipse.core.runtime.AssertionFailedException;
-import org.eclipse.jpt.ui.internal.util.LabeledButton;
-import org.eclipse.jpt.ui.internal.util.SWTUtil;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.graphics.Image;
-import org.eclipse.swt.layout.GridLayout;
-import org.eclipse.swt.widgets.Button;
-import org.eclipse.swt.widgets.Composite;
-import org.junit.After;
-import org.junit.Before;
-import org.junit.Test;
-
-@SuppressWarnings("nls")
-public final class LabeledButtonTest {
-
-	private Composite parent;
-
-	@Before
-	public void setUp() {
-		parent = new Composite(SWTUtil.getShell(), SWT.NONE);
-		parent.setLayout(new GridLayout());
-	}
-
-	@After
-	public void tearDown() {
-		if (parent != null) {
-			parent.dispose();
-			parent = null;
-		}
-	}
-
-	@Test
-	public void testLabeledButton1() {
-		Button button = new Button(parent, SWT.NULL);
-		new LabeledButton(button);
-	}
-
-	@Test(expected=AssertionFailedException.class)
-	public void testLabeledButton2() {
-		new LabeledButton(null);
-	}
-
-	@Test
-	public void testSetImage() {
-
-		Image expected = new Image(parent.getDisplay(), 16, 16);
-
-		try {
-			Button button = new Button(parent, SWT.NULL);
-			LabeledButton labeledButton = new LabeledButton(button);
-
-			labeledButton.setImage(expected);
-
-			assertEquals(
-				"The Button didn't receive the Image",
-				expected,
-				button.getImage()
-			);
-		}
-		finally {
-			expected.dispose();
-		}
-	}
-
-	@Test
-	public void testSetImageDispose() {
-
-		Image expected = new Image(parent.getDisplay(), 16, 16);
-
-		try {
-			Button button = new Button(parent, SWT.NULL);
-			LabeledButton labeledButton = new LabeledButton(button);
-
-			button.dispose();
-
-			// This should not fail but simply do nothing
-			labeledButton.setImage(expected);
-		}
-		finally {
-			expected.dispose();
-		}
-	}
-
-	@Test
-	public void testSetText() {
-		Button button = new Button(parent, SWT.NULL);
-		LabeledButton labeledButton = new LabeledButton(button);
-
-		String expected = "This is a test";
-		labeledButton.setText(expected);
-
-		assertEquals(
-			"The Button didn't receive the text",
-			expected,
-			button.getText()
-		);
-	}
-
-	@Test
-	public void testSetTextDispose() {
-		Button button = new Button(parent, SWT.NULL);
-		LabeledButton labeledButton = new LabeledButton(button);
-
-		button.dispose();
-
-		// This should not fail but simply do nothing
-		String expected = "This is a test";
-		labeledButton.setText(expected);
-	}
-}
diff --git a/jpa/tests/org.eclipse.jpt.ui.tests/src/org/eclipse/jpt/ui/tests/internal/util/LabeledControlUpdaterTest.java b/jpa/tests/org.eclipse.jpt.ui.tests/src/org/eclipse/jpt/ui/tests/internal/util/LabeledControlUpdaterTest.java
deleted file mode 100644
index bd2ce50..0000000
--- a/jpa/tests/org.eclipse.jpt.ui.tests/src/org/eclipse/jpt/ui/tests/internal/util/LabeledControlUpdaterTest.java
+++ /dev/null
@@ -1,124 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- *
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.ui.tests.internal.util;
-
-import static org.junit.Assert.assertEquals;
-import org.eclipse.jpt.ui.internal.util.LabeledControlUpdater;
-import org.eclipse.jpt.ui.internal.util.LabeledLabel;
-import org.eclipse.jpt.ui.internal.util.SWTUtil;
-import org.eclipse.jpt.utility.internal.model.value.SimplePropertyValueModel;
-import org.eclipse.jpt.utility.model.value.WritablePropertyValueModel;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.graphics.Image;
-import org.eclipse.swt.layout.GridLayout;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Label;
-import org.junit.After;
-import org.junit.Before;
-import org.junit.Test;
-
-@SuppressWarnings("nls")
-public final class LabeledControlUpdaterTest {
-
-	private Composite parent;
-
-	@Before
-	public void setUp() {
-		parent = new Composite(SWTUtil.getShell(), SWT.NONE);
-		parent.setLayout(new GridLayout());
-	}
-
-	@After
-	public void tearDown() {
-		if (parent != null) {
-			parent.dispose();
-			parent = null;
-		}
-	}
-
-	@Test
-	public void testSetImage() {
-
-		Image expected = new Image(parent.getDisplay(), 16, 16);
-
-		try {
-			Label label = new Label(parent, SWT.NULL);
-			LabeledLabel labeledLabel = new LabeledLabel(label);
-
-			WritablePropertyValueModel<Image> imageHolder = new SimplePropertyValueModel<Image>();
-			new LabeledControlUpdater(labeledLabel, null, imageHolder);
-
-			labeledLabel.setImage(expected);
-
-			assertEquals(
-				"The Label didn't receive the Image",
-				expected,
-				label.getImage()
-			);
-		}
-		finally {
-			expected.dispose();
-		}
-	}
-
-	@Test
-	public void testSetImageDispose() {
-
-		Image expected = new Image(parent.getDisplay(), 16, 16);
-
-		try {
-			Label label = new Label(parent, SWT.NULL);
-			LabeledLabel labeledLabel = new LabeledLabel(label);
-
-			WritablePropertyValueModel<Image> imageHolder = new SimplePropertyValueModel<Image>();
-			new LabeledControlUpdater(labeledLabel, null, imageHolder);
-
-			label.dispose();
-			labeledLabel.setImage(expected);
-		}
-		finally {
-			expected.dispose();
-		}
-	}
-
-	@Test
-	public void testSetText() {
-
-		Label label = new Label(parent, SWT.NULL);
-		LabeledLabel labeledLabel = new LabeledLabel(label);
-
-		WritablePropertyValueModel<String> textHolder = new SimplePropertyValueModel<String>();
-		new LabeledControlUpdater(labeledLabel, textHolder);
-
-		String expected = "This is a test";
-		textHolder.setValue(expected);
-
-		assertEquals(
-			"The Label didn't receive the text",
-			expected,
-			label.getText()
-		);
-	}
-
-	@Test
-	public void testSetTextDispose() {
-
-		Label label = new Label(parent, SWT.NULL);
-		LabeledLabel labeledLabel = new LabeledLabel(label);
-
-		WritablePropertyValueModel<String> textHolder = new SimplePropertyValueModel<String>();
-		new LabeledControlUpdater(labeledLabel, textHolder);
-
-		label.dispose();
-
-		String expected = "This is a test";
-		textHolder.setValue(expected);
-	}
-}
diff --git a/jpa/tests/org.eclipse.jpt.ui.tests/src/org/eclipse/jpt/ui/tests/internal/util/LabeledLabelTest.java b/jpa/tests/org.eclipse.jpt.ui.tests/src/org/eclipse/jpt/ui/tests/internal/util/LabeledLabelTest.java
deleted file mode 100644
index f962284..0000000
--- a/jpa/tests/org.eclipse.jpt.ui.tests/src/org/eclipse/jpt/ui/tests/internal/util/LabeledLabelTest.java
+++ /dev/null
@@ -1,122 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- *
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.ui.tests.internal.util;
-
-import static org.junit.Assert.assertEquals;
-import org.eclipse.core.runtime.AssertionFailedException;
-import org.eclipse.jpt.ui.internal.util.LabeledLabel;
-import org.eclipse.jpt.ui.internal.util.SWTUtil;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.graphics.Image;
-import org.eclipse.swt.layout.GridLayout;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Label;
-import org.junit.After;
-import org.junit.Before;
-import org.junit.Test;
-
-@SuppressWarnings("nls")
-public final class LabeledLabelTest {
-
-	private Composite parent;
-
-	@Before
-	public void setUp() {
-		parent = new Composite(SWTUtil.getShell(), SWT.NONE);
-		parent.setLayout(new GridLayout());
-	}
-
-	@After
-	public void tearDown() {
-		if (parent != null) {
-			parent.dispose();
-			parent = null;
-		}
-	}
-
-	@Test
-	public void testLabeledButton1() {
-		Label label = new Label(parent, SWT.NULL);
-		new LabeledLabel(label);
-	}
-
-	@Test(expected=AssertionFailedException.class)
-	public void testLabeledButton2() {
-		new LabeledLabel(null);
-	}
-
-	@Test
-	public void testSetImage() {
-
-		Image expected = new Image(parent.getDisplay(), 16, 16);
-
-		try {
-			Label label = new Label(parent, SWT.NULL);
-			LabeledLabel labeledLabel = new LabeledLabel(label);
-
-			labeledLabel.setImage(expected);
-
-			assertEquals(
-				"The Label didn't receive the Image",
-				expected,
-				label.getImage()
-			);
-		}
-		finally {
-			expected.dispose();
-		}
-	}
-
-	@Test
-	public void testSetImageDispose() {
-
-		Image expected = new Image(parent.getDisplay(), 16, 16);
-
-		try {
-			Label label = new Label(parent, SWT.NULL);
-			LabeledLabel labeledLabel = new LabeledLabel(label);
-
-			label.dispose();
-
-			// This should not fail but simply do nothing
-			labeledLabel.setImage(expected);
-		}
-		finally {
-			expected.dispose();
-		}
-	}
-
-	@Test
-	public void testSetText() {
-		Label label = new Label(parent, SWT.NULL);
-		LabeledLabel labeledLabel = new LabeledLabel(label);
-
-		String expected = "This is a test";
-		labeledLabel.setText(expected);
-
-		assertEquals(
-			"The Label didn't receive the text",
-			expected,
-			label.getText()
-		);
-	}
-
-	@Test
-	public void testSetTextDispose() {
-		Label label = new Label(parent, SWT.NULL);
-		LabeledLabel labeledLabel = new LabeledLabel(label);
-
-		label.dispose();
-
-		// This should not fail but simply do nothing
-		String expected = "This is a test";
-		labeledLabel.setText(expected);
-	}
-}
diff --git a/jpa/tests/org.eclipse.jpt.ui.tests/src/org/eclipse/jpt/ui/tests/internal/util/PaneEnablerTest.java b/jpa/tests/org.eclipse.jpt.ui.tests/src/org/eclipse/jpt/ui/tests/internal/util/PaneEnablerTest.java
deleted file mode 100644
index 072686a..0000000
--- a/jpa/tests/org.eclipse.jpt.ui.tests/src/org/eclipse/jpt/ui/tests/internal/util/PaneEnablerTest.java
+++ /dev/null
@@ -1,93 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- *
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.ui.tests.internal.util;
-
-import static org.junit.Assert.*;
-import org.eclipse.jpt.ui.internal.util.PaneEnabler;
-import org.eclipse.jpt.ui.internal.util.SWTUtil;
-import org.eclipse.jpt.ui.internal.widgets.DialogPane;
-import org.eclipse.jpt.utility.internal.model.value.SimplePropertyValueModel;
-import org.eclipse.jpt.utility.internal.node.Node;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.layout.GridLayout;
-import org.eclipse.swt.widgets.Composite;
-import org.junit.After;
-import org.junit.Before;
-import org.junit.Test;
-
-@SuppressWarnings("nls")
-public final class PaneEnablerTest {
-	private Composite parent;
-
-	@Before
-	public void setUp() {
-		parent = new Composite(SWTUtil.getShell(), SWT.NONE);
-		parent.setLayout(new GridLayout());
-	}
-
-	@After
-	public void tearDown() {
-		if (parent != null) {
-			parent.dispose();
-		}
-	}
-
-	@Test
-	public void testSwitchState() {
-
-		SimplePropertyValueModel<Boolean> booleanHolder =
-			new SimplePropertyValueModel<Boolean>(true);
-
-		DialogPane<Node> pane = new DialogPane<Node>(
-			new SimplePropertyValueModel<Node>(),
-			parent)
-		{
-			@Override
-			protected void initializeLayout(Composite container) {
-			}
-		};
-
-		pane.populate();
-		new PaneEnabler(booleanHolder, pane);
-
-		assertTrue(
-			"The pane should be enabled",
-			pane.getControl().isEnabled()
-		);
-
-		// Change state (null)
-		booleanHolder.setValue(null);
-
-		assertFalse(
-			"The pane should not be enabled",
-			pane.getControl().isEnabled()
-		);
-
-		// Change state (true)
-		booleanHolder.setValue(true);
-
-		assertTrue(
-			"The pane should be enabled",
-			pane.getControl().isEnabled()
-		);
-
-		// Change state (false)
-		booleanHolder.setValue(false);
-
-		assertFalse(
-			"The pane should not be enabled",
-			pane.getControl().isEnabled()
-		);
-
-		// Dispose
-		pane.dispose();
-		booleanHolder.setValue(true);
-	}
-}
diff --git a/jpa/tests/org.eclipse.jpt.ui.tests/src/org/eclipse/jpt/ui/tests/internal/util/PaneVisibilityEnablerTest.java b/jpa/tests/org.eclipse.jpt.ui.tests/src/org/eclipse/jpt/ui/tests/internal/util/PaneVisibilityEnablerTest.java
deleted file mode 100644
index 644acfc..0000000
--- a/jpa/tests/org.eclipse.jpt.ui.tests/src/org/eclipse/jpt/ui/tests/internal/util/PaneVisibilityEnablerTest.java
+++ /dev/null
@@ -1,93 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- *
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.ui.tests.internal.util;
-
-import static org.junit.Assert.*;
-import org.eclipse.jpt.ui.internal.util.PaneVisibilityEnabler;
-import org.eclipse.jpt.ui.internal.util.SWTUtil;
-import org.eclipse.jpt.ui.internal.widgets.DialogPane;
-import org.eclipse.jpt.utility.internal.model.value.SimplePropertyValueModel;
-import org.eclipse.jpt.utility.internal.node.Node;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.layout.GridLayout;
-import org.eclipse.swt.widgets.Composite;
-import org.junit.After;
-import org.junit.Before;
-import org.junit.Test;
-
-@SuppressWarnings("nls")
-public final class PaneVisibilityEnablerTest {
-	private Composite parent;
-
-	@Before
-	public void setUp() {
-		parent = new Composite(SWTUtil.getShell(), SWT.NONE);
-		parent.setLayout(new GridLayout());
-	}
-
-	@After
-	public void tearDown() {
-		if (parent != null) {
-			parent.dispose();
-		}
-	}
-
-	@Test
-	public void testSwitchState() {
-
-		SimplePropertyValueModel<Boolean> booleanHolder =
-			new SimplePropertyValueModel<Boolean>(true);
-
-		DialogPane<Node> pane = new DialogPane<Node>(
-			new SimplePropertyValueModel<Node>(),
-			parent)
-		{
-			@Override
-			protected void initializeLayout(Composite container) {
-			}
-		};
-
-		pane.populate();
-		new PaneVisibilityEnabler(booleanHolder, pane);
-
-		assertTrue(
-			"The pane should be visible",
-			pane.getControl().isVisible()
-		);
-
-		// Change state (null)
-		booleanHolder.setValue(null);
-
-		assertFalse(
-			"The pane should not be visible",
-			pane.getControl().isVisible()
-		);
-
-		// Change state (true)
-		booleanHolder.setValue(true);
-
-		assertTrue(
-			"The pane should be visible",
-			pane.getControl().isVisible()
-		);
-
-		// Change state (false)
-		booleanHolder.setValue(false);
-
-		assertFalse(
-			"The pane should not be visible",
-			pane.getControl().isVisible()
-		);
-
-		// Dispose
-		pane.dispose();
-		booleanHolder.setValue(true);
-	}
-}
diff --git a/jpa/tests/org.eclipse.jpt.utility.tests/.classpath b/jpa/tests/org.eclipse.jpt.utility.tests/.classpath
deleted file mode 100644
index ef8d91c..0000000
--- a/jpa/tests/org.eclipse.jpt.utility.tests/.classpath
+++ /dev/null
@@ -1,11 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<classpath>
-	<classpathentry kind="src" path="src"/>
-	<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/J2SE-1.5"/>
-	<classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins">
-		<accessrules>
-			<accessrule kind="accessible" pattern="org/eclipse/jpt/utility/**"/>
-		</accessrules>
-	</classpathentry>
-	<classpathentry kind="output" path="bin"/>
-</classpath>
diff --git a/jpa/tests/org.eclipse.jpt.utility.tests/.cvsignore b/jpa/tests/org.eclipse.jpt.utility.tests/.cvsignore
deleted file mode 100644
index c4ba612..0000000
--- a/jpa/tests/org.eclipse.jpt.utility.tests/.cvsignore
+++ /dev/null
@@ -1,5 +0,0 @@
-bin
-@dot
-temp.folder
-build.xml
-javaCompiler...args
\ No newline at end of file
diff --git a/jpa/tests/org.eclipse.jpt.utility.tests/.project b/jpa/tests/org.eclipse.jpt.utility.tests/.project
deleted file mode 100644
index aa5271e..0000000
--- a/jpa/tests/org.eclipse.jpt.utility.tests/.project
+++ /dev/null
@@ -1,28 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<projectDescription>
-	<name>org.eclipse.jpt.utility.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.utility.tests/.settings/org.eclipse.core.resources.prefs b/jpa/tests/org.eclipse.jpt.utility.tests/.settings/org.eclipse.core.resources.prefs
deleted file mode 100644
index f68f9c2..0000000
--- a/jpa/tests/org.eclipse.jpt.utility.tests/.settings/org.eclipse.core.resources.prefs
+++ /dev/null
@@ -1,3 +0,0 @@
-#Tue Jan 15 11:12:26 EST 2008
-eclipse.preferences.version=1
-encoding/<project>=ISO-8859-1
diff --git a/jpa/tests/org.eclipse.jpt.utility.tests/.settings/org.eclipse.jdt.core.prefs b/jpa/tests/org.eclipse.jpt.utility.tests/.settings/org.eclipse.jdt.core.prefs
deleted file mode 100644
index 84b5c4c..0000000
--- a/jpa/tests/org.eclipse.jpt.utility.tests/.settings/org.eclipse.jdt.core.prefs
+++ /dev/null
@@ -1,7 +0,0 @@
-#Sun May 27 14:55:58 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.utility.tests/META-INF/MANIFEST.MF b/jpa/tests/org.eclipse.jpt.utility.tests/META-INF/MANIFEST.MF
deleted file mode 100644
index 8277bef..0000000
--- a/jpa/tests/org.eclipse.jpt.utility.tests/META-INF/MANIFEST.MF
+++ /dev/null
@@ -1,18 +0,0 @@
-Manifest-Version: 1.0
-Bundle-ManifestVersion: 2
-Bundle-Name: %pluginName
-Bundle-Vendor: %providerName
-Bundle-SymbolicName: org.eclipse.jpt.utility.tests
-Bundle-Version: 1.4.0
-Bundle-Localization: plugin
-Require-Bundle: org.eclipse.jpt.utility;bundle-version="[1.2.0,2.0.0)",
- org.junit;bundle-version="[3.0.0,4.0.0)"
-Bundle-RequiredExecutionEnvironment: J2SE-1.5
-Export-Package: org.eclipse.jpt.utility.tests.internal;x-internal:=true,
- org.eclipse.jpt.utility.tests.internal.iterators;x-internal:=true,
- org.eclipse.jpt.utility.tests.internal.model;x-internal:=true,
- org.eclipse.jpt.utility.tests.internal.model.listener;x-internal:=true,
- org.eclipse.jpt.utility.tests.internal.model.value;x-internal:=true,
- org.eclipse.jpt.utility.tests.internal.model.value.prefs;x-internal:=true,
- org.eclipse.jpt.utility.tests.internal.model.value.swing;x-internal:=true,
- org.eclipse.jpt.utility.tests.internal.node;x-internal:=true
diff --git a/jpa/tests/org.eclipse.jpt.utility.tests/about.html b/jpa/tests/org.eclipse.jpt.utility.tests/about.html
deleted file mode 100644
index be534ba..0000000
--- a/jpa/tests/org.eclipse.jpt.utility.tests/about.html
+++ /dev/null
@@ -1,34 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN">
-<HTML>
-
-<head>
-<title>About</title>
-<meta http-equiv=Content-Type content="text/html; charset=ISO-8859-1">
-</head>
-
-<BODY lang="EN-US">
-
-<H3>About This Content</H3>
-
-<P>May 02, 2008</P>
-
-<H3>License</H3>
-
-<P>The Eclipse Foundation makes available all content in this plug-in 
-("Content"). Unless otherwise indicated below, the Content is provided to you 
-under the terms and conditions of the Eclipse Public License Version 1.0 
-("EPL"). A copy of the EPL is available at
-<A href="http://www.eclipse.org/org/documents/epl-v10.php">http://www.eclipse.org/org/documents/epl-v10.php</A>. 
-For purposes of the EPL, "Program" will mean the Content.</P>
-
-<P>If you did not receive this Content directly from the Eclipse Foundation, the 
-Content is being redistributed by another party ("Redistributor") and different 
-terms and conditions may apply to your use of any object code in the Content. 
-Check the Redistributor's license that was provided with the Content. If no such 
-license exists, contact the Redistributor. Unless otherwise indicated below, the 
-terms and conditions of the EPL still apply to any source code in the Content 
-and such source code may be obtained at
-<A href="http://www.eclipse.org/">http://www.eclipse.org/</A>.</P>
-
-</BODY>
-</HTML>
diff --git a/jpa/tests/org.eclipse.jpt.utility.tests/build.properties b/jpa/tests/org.eclipse.jpt.utility.tests/build.properties
deleted file mode 100644
index ebe9c08..0000000
--- a/jpa/tests/org.eclipse.jpt.utility.tests/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,\
-               test.xml,\
-               plugin.properties
diff --git a/jpa/tests/org.eclipse.jpt.utility.tests/plugin.properties b/jpa/tests/org.eclipse.jpt.utility.tests/plugin.properties
deleted file mode 100644
index 41b3cda..0000000
--- a/jpa/tests/org.eclipse.jpt.utility.tests/plugin.properties
+++ /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
-################################################################################
-# ====================================================================
-# To code developer:
-#   Do NOT change the properties between this line and the
-#   "%%% END OF TRANSLATED PROPERTIES %%%" line.
-#   Make a new property name, append to the end of the file and change
-#   the code to use the new property.
-# ====================================================================
-
-# ====================================================================
-# %%% END OF TRANSLATED PROPERTIES %%%
-# ====================================================================
-
-pluginName = Dali Java Persistence Tools - Utility Tests
-providerName = Eclipse Web Tools Platform
-
diff --git a/jpa/tests/org.eclipse.jpt.utility.tests/resource/ClassTools.java b/jpa/tests/org.eclipse.jpt.utility.tests/resource/ClassTools.java
deleted file mode 100644
index aac17b6..0000000
--- a/jpa/tests/org.eclipse.jpt.utility.tests/resource/ClassTools.java
+++ /dev/null
@@ -1,1680 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005, 2008 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package test;
-
-import java.lang.reflect.Constructor;
-import java.lang.reflect.Field;
-import java.lang.reflect.InvocationTargetException;
-import java.lang.reflect.Method;
-import java.lang.reflect.Modifier;
-import java.util.Collections;
-import java.util.Stack;
-
-/**
- * Convenience methods related to the java.lang.reflect package.
- * These methods provide shortcuts for manipulating objects via
- * reflection; particularly when dealing with fields and/or methods that
- * are not publicly accessible or are inherited.
- * 
- * In most cases, all the exceptions are handled and
- * wrapped in java.lang.RuntimeExceptions; so these methods should
- * be used when you are confident that you will not having any problems
- * using reflection.
- * 
- * There are also a number of methods whose names
- * begin with "attempt". These methods will throw a NoSuchMethodException
- * or NoSuchFieldException when appropriate, allowing you to probe
- * for methods that should be present but might not.
- */
-public final class ClassTools {
-
-	public static final Class<?>[] ZERO_PARAMETER_TYPES = new Class[0];
-	public static final Object[] ZERO_PARAMETERS = new Object[0];
-	private static final String CR = StringTools.CR;
-
-	public static final char NESTED_CLASS_NAME_SEPARATOR = '$';
-
-	public static final char ARRAY_INDICATOR = '[';
-	public static final char TYPE_DECLARATION_ARRAY_OPEN = '[';
-	public static final char TYPE_DECLARATION_ARRAY_CLOSE = ']';
-
-	public static final char REFERENCE_CLASS_CODE = 'L';
-	public static final char REFERENCE_CLASS_NAME_DELIMITER = ';';
-	
-	private static Primitive[] PRIMITIVES;  // pseudo-'final' - lazy-initialized
-	public static final char BYTE_CODE = 'B';
-	public static final char CHAR_CODE = 'C';
-	public static final char DOUBLE_CODE = 'D';
-	public static final char FLOAT_CODE = 'F';
-	public static final char INT_CODE = 'I';
-	public static final char LONG_CODE = 'J';
-	public static final char SHORT_CODE = 'S';
-	public static final char BOOLEAN_CODE = 'Z';
-	public static final char VOID_CODE = 'V';
-	private static int MAX_PRIMITIVE_CLASS_NAME_LENGTH = -1;  // pseudo-'final' - lazy-initialized
-	private static int MAX_PRIMITIVE_WRAPPER_CLASS_NAME_LENGTH = -1;  // pseudo-'final' - lazy-initialized
-
-	public static final String VOID_CLASS_NAME = void.class.getName();
-	public static final String VOID_WRAPPER_CLASS_NAME = java.lang.Void.class.getName();
-
-
-	/**
-	 * Return all the fields for the
-	 * specified class, including inherited fields.
-	 * Class#allFields()
-	 */
-	@Deprecated
-	public static Field[] allFields(Class<?> javaClass) {
-		Stack<Field> stack = new Stack<Field>();
-		for (Class<?> tempClass = javaClass; tempClass != null; tempClass = tempClass.getSuperclass()) {
-			pushDeclaredFields(tempClass, stack);
-		}
-		Collections.reverse(stack);
-		return stack.toArray(new Field[stack.size()]);
-	}
-	
-	/**
-	 * Return all the methods for the
-	 * specified class, including inherited methods.
-	 * Class#allMethods()
-	 */
-	public static Method[] allMethods(Class<?> javaClass) {
-		Stack<Method> stack = new Stack<Method>();
-		for (Class<?> tempClass = javaClass; tempClass != null; tempClass = tempClass.getSuperclass()) {
-			pushDeclaredMethods(tempClass, stack);
-		}
-		Collections.reverse(stack);
-		return stack.toArray(new Method[stack.size()]);
-	}
-	
-	/**
-	 * Convenience method.
-	 * Return a new instance of the specified class,
-	 * using the class's default (zero-argument) constructor.
-	 * Throw an exception if the default constructor is not defined.
-	 * Class#newInstance() throws NoSuchMethodException
-	 */
-	@Deprecated
-	public static <T> T attemptNewInstance(Class<T> javaClass) throws NoSuchMethodException {
-		return attemptNewInstance(javaClass, ZERO_PARAMETER_TYPES, ZERO_PARAMETERS);
-	}
-	
-	/**
-	 * Return a new instance of the specified class,
-	 * given the constructor parameter types and parameters.
-	 * Throw an exception if the constructor is not defined.
-	 * Class#newInstance(Class<?>[] parameterTypes, Object[] parameters) throws NoSuchMethodException
-	 */
-	public static <T> T attemptNewInstance(Class<T> javaClass, Class<?>[] parameterTypes, Object[] parameters) throws NoSuchMethodException {
-		try {
-			return constructor(javaClass, parameterTypes).newInstance(parameters);
-		} catch (InstantiationException ie) {
-			throw new RuntimeException(ie + CR + fullyQualifiedConstructorSignature(javaClass, parameterTypes), ie);
-		} catch (IllegalAccessException iae) {
-			throw new RuntimeException(iae + CR + fullyQualifiedConstructorSignature(javaClass, parameterTypes), iae);
-		} catch (InvocationTargetException ite) {
-			throw new RuntimeException(fullyQualifiedConstructorSignature(javaClass, parameterTypes) + CR + ite.getTargetException(), ite);
-		}
-	}
-	
-	/**
-	 * Convenience method.
-	 * Return a new instance of the specified class,
-	 * given the constructor parameter type and parameter.
-	 * Throw an exception if the constructor is not defined.
-	 * Class#newInstance(Class<?> parameterType, Object parameter) throws NoSuchMethodException
-	 */
-	public static <T> T attemptNewInstance(Class<T> javaClass, Class<?> parameterType, Object parameter) throws NoSuchMethodException {
-		return attemptNewInstance(javaClass, new Class[] {parameterType}, new Object[] {parameter});
-	}
-	
-	/**
-	 * Attempt to get a field value, given the containing object and field name.
-	 * Return its result.
-	 * Useful for accessing private, package, or protected fields.
-	 * Throw an exception if the field is not defined.
-	 * Object#getFieldValue(String fieldName) throws NoSuchFieldException
-	 */
-	public static Object attemptToGetFieldValue(Object object, String fieldName) throws NoSuchFieldException {
-		try {
-			return field(object, fieldName).get(object);
-		} catch (IllegalAccessException iae) {
-			throw new RuntimeException(iae + CR + fullyQualifiedFieldName(object, fieldName), iae);
-		}
-	}
-	
-	/**
-	 * Attempt to get a static field value, given the containing object and field name.
-	 * Return its result.
-	 * Useful for accessing private, package, or protected fields.
-	 * Throw an exception if the field is not defined.
-	 * Class#getStaticFieldValue(String fieldName) throws NoSuchFieldException
-	 */
-	public static Object attemptToGetStaticFieldValue(Class<?> javaClass, String fieldName) throws NoSuchFieldException {
-		try {
-			return field(javaClass, fieldName).get(null);
-		} catch (IllegalAccessException iae) {
-			throw new RuntimeException(iae + CR + fullyQualifiedFieldName(javaClass, fieldName), iae);
-		}
-	}
-	
-	/**
-	 * Convenience method.
-	 * Attempt to execute a zero-argument method,
-	 * given the receiver and method name.
-	 * Return its result.
-	 * Throw an exception if the method is not found.
-	 * Useful for invoking private, package, or protected methods.
-	 * Object#execute(String methodName) throws NoSuchMethodException
-	 */
-	public static Object attemptToExecuteMethod(Object receiver, String methodName) throws NoSuchMethodException {
-		return attemptToExecuteMethod(receiver, methodName, ZERO_PARAMETER_TYPES, ZERO_PARAMETERS);
-	}
-	
-	/**
-	 * Convenience method.
-	 * Attempt to execute a method, given the receiver,
-	 * method name, parameter type, and parameter.
-	 * Return its result.
-	 * Throw an exception if the method is not found.
-	 * Useful for invoking private, package, or protected methods.
-	 * Object#execute(String methodName, Class<?> parameterType, Object parameter) throws NoSuchMethodException
-	 */
-	public static Object attemptToExecuteMethod(Object receiver, String methodName, Class<?> parameterType, Object parameter) throws NoSuchMethodException {
-		return attemptToExecuteMethod(receiver, methodName, new Class[] {parameterType}, new Object[] {parameter});
-	}
-	
-	/**
-	 * Attempt to execute a method, given the receiver,
-	 * method name, parameter types, and parameters.
-	 * Return its result.
-	 * Throw an exception if the method is not found.
-	 * Useful for invoking private, package, or protected methods.
-	 * Object#execute(String methodName, Class<?>[] parameterTypes, Object[] parameters) throws NoSuchMethodException
-	 */
-	public static Object attemptToExecuteMethod(Object receiver, String methodName, Class<?>[] parameterTypes, Object[] parameters) throws NoSuchMethodException {
-		return executeMethod(method(receiver, methodName, parameterTypes), receiver, parameters);
-	}
-	
-	/**
-	 * Attempt to execute a method, given the receiver,
-	 * method name, parameter types, and parameters.
-	 * Return its result.
-	 * Throw an exception if the method is not found.
-	 * If the executed method throws an exception, rethrow that exception.
-	 * Useful for invoking private, package, or protected methods.
-	 * Object#execute(String methodName, Class<?>[] parameterTypes, Object[] parameters) throws NoSuchMethodException
-	 */
-	public static Object attemptToExecuteMethodWithException(Object receiver, String methodName, Class<?>[] parameterTypes, Object[] parameters) 
-		throws Throwable, NoSuchMethodException 
-	{
-		return executeMethodWithException(method(receiver, methodName, parameterTypes), receiver, parameters);
-	}
-	
-	/**
-	 * Convenience method.
-	 * Attempt to execute a zero-argument static method,
-	 * given the class and method name.
-	 * Return its result.
-	 * Throw an exception if the method is not found.
-	 * Useful for invoking private, package, or protected methods.
-	 * Class#executeStaticMethod(String methodName) throws NoSuchMethodException
-	 */
-	public static Object attemptToExecuteStaticMethod(Class<?> javaClass, String methodName) throws NoSuchMethodException {
-		return attemptToExecuteStaticMethod(javaClass, methodName, ZERO_PARAMETER_TYPES, ZERO_PARAMETERS);
-	}
-	
-	/**
-	 * Attempt to execute a static method, given the class,
-	 * method name, parameter types, and parameters.
-	 * Return its result.
-	 * Throw an exception if the method is not found.
-	 * Useful for invoking private, package, or protected methods.
-	 * Class#executeStaticMethod(String methodName, Class<?>[] parameterTypes, Object[] parameters) throws NoSuchMethodException
-	 */
-	public static Object attemptToExecuteStaticMethod(Class<?> javaClass, String methodName, Class<?>[] parameterTypes, Object[] parameters) throws NoSuchMethodException {
-		return executeStaticMethod(staticMethod(javaClass, methodName, parameterTypes), parameters);
-	}
-	
-	/**
-	 * Convenience method.
-	 * Attempt to execute a static method, given the class,
-	 * method name, parameter type, and parameter.
-	 * Return its result.
-	 * Throw an exception if the method is not found.
-	 * Useful for invoking private, package, or protected methods.
-	 * Class#executeStaticMethod(String methodName, Class<?> parameterType, Object parameter) throws NoSuchMethodException
-	 */
-	public static Object attemptToExecuteStaticMethod(Class<?> javaClass, String methodName, Class<?> parameterType, Object parameter) throws NoSuchMethodException {
-		return attemptToExecuteStaticMethod(javaClass, methodName, new Class[] {parameterType}, new Object[] {parameter});
-	}
-	
-	/**
-	 * Attempt to set a field value, given the
-	 * containing object, field name, and new field value.
-	 * Useful for accessing private, package, or protected fields.
-	 * Throw an exception if the field is not defined.
-	 * Object#setFieldValue(String fieldName, Object fieldValue) throws NoSuchFieldException
-	 */
-	public static void attemptToSetFieldValue(Object object, String fieldName, Object fieldValue) throws NoSuchFieldException {
-		try {
-			field(object, fieldName).set(object, fieldValue);
-		} catch (IllegalAccessException iae) {
-			throw new RuntimeException(iae + CR + fullyQualifiedFieldName(object, fieldName), iae);
-		}
-	}
-	
-	/**
-	 * Attempt to set a static field value, given the
-	 * containing class, field name, and new field value.
-	 * Useful for accessing private, package, or protected fields.
-	 * Throw an exception if the field is not defined.
-	 * Class#setStaticFieldValue(String fieldName, Object fieldValue) throws NoSuchFieldException
-	 */
-	public static void attemptToSetStaticFieldValue(Class<?> javaClass, String fieldName, Object fieldValue) throws NoSuchFieldException {
-		try {
-			field(javaClass, fieldName).set(null, fieldValue);
-		} catch (IllegalAccessException iae) {
-			throw new RuntimeException(iae + CR + fullyQualifiedFieldName(javaClass, fieldName), iae);
-		}
-	}
-	
-	/**
-	 * Convenience method.
-	 * Return the default (zero-argument) constructor
-	 * for the specified class.
-	 * Set accessible to true, so we can access
-	 * private/package/protected constructors.
-	 * Class#constructor() throws NoSuchMethodException
-	 */
-	public static <T> Constructor<T> constructor(Class<T> javaClass) throws NoSuchMethodException {
-		return constructor(javaClass, ZERO_PARAMETER_TYPES);
-	}
-	
-	/**
-	 * Return the constructor for the specified class
-	 * and formal parameter types.
-	 * Set accessible to true, so we can access
-	 * private/package/protected constructors.
-	 * Class#constructor(Class<?>[] parameterTypes) throws NoSuchMethodException
-	 */
-	public static <T> Constructor<T> constructor(Class<T> javaClass, Class<?>[] parameterTypes) throws NoSuchMethodException {
-		Constructor<T> constructor = javaClass.getDeclaredConstructor(parameterTypes);
-		constructor.setAccessible(true);
-		return constructor;
-	}
-	
-	/**
-	 * Convenience method.
-	 * Return the constructor for the specified class
-	 * and formal parameter type.
-	 * Set accessible to true, so we can access
-	 * private/package/protected constructors.
-	 * Class#constructor(Class<?> parameterType) throws NoSuchMethodException
-	 */
-	public static <T> Constructor<T> constructor(Class<T> javaClass, Class<?> parameterType) throws NoSuchMethodException {
-		return constructor(javaClass, new Class[] {parameterType});
-	}
-	
-	/**
-	 * Return the declared fields for the specified class.
-	 * Set accessible to true, so we can access
-	 * private/package/protected fields.
-	 * Class#accessibleDeclaredFields()
-	 */
-	public static Field[] declaredFields(Class<?> javaClass) {
-		Field[] fields = javaClass.getDeclaredFields();
-		for (Field field : fields) {
-			field.setAccessible(true);
-		}
-		return fields;
-	}
-	
-	/**
-	 * Return the declared methods for the
-	 * specified class.
-	 * Set accessible to true, so we can access
-	 * private/package/protected methods.
-	 * Class#accessibleDeclaredMethods()
-	 */
-	public static Method[] declaredMethods(Class<?> javaClass) {
-		Method[] methods = javaClass.getDeclaredMethods();
-		for (Method method : methods) {
-			method.setAccessible(true);
-		}
-		return methods;
-	}
-	
-	/**
-	 * Return the default (zero-argument) constructor
-	 * for the specified class.
-	 * Set accessible to true, so we can access
-	 * private/package/protected constructors.
-	 * Class#defaultConstructor()
-	 */
-	public static <T> Constructor<T> defaultConstructor(Class<T> javaClass) throws NoSuchMethodException {
-		return constructor(javaClass);
-	}
-	
-	/**
-	 * Return a field for the specified class and field name.
-	 * If the class does not directly
-	 * define the field, look for it in the class's superclasses.
-	 * Set accessible to true, so we can access
-	 * private/package/protected fields.
-	 */
-	public static Field field(Class<?> javaClass, String fieldName) throws NoSuchFieldException {
-		Field field = null;
-		try {
-			field = javaClass.getDeclaredField(fieldName);
-		} catch (NoSuchFieldException ex) {
-			Class<?> superclass = javaClass.getSuperclass();
-			if (superclass == null) {
-				throw ex;
-			}
-			// recurse
-			return field(superclass, fieldName);
-		}
-		field.setAccessible(true);
-		return field;
-	}
-	
-	/**
-	 * Convenience method.
-	 * Return a field for the specified object and field name.
-	 * If the object's class does not directly
-	 * define the field, look for it in the class's superclasses.
-	 * Set accessible to true, so we can access
-	 * private/package/protected fields.
-	 */
-	public static Field field(Object object, String fieldName) throws NoSuchFieldException {
-		return field(object.getClass(), fieldName);
-	}
-	
-	/*
-	 * Return a string representation of the specified constructor.
-	 */
-	private static String fullyQualifiedConstructorSignature(Class<?> javaClass, Class<?>[] parameterTypes) {
-		return fullyQualifiedMethodSignature(javaClass, null, parameterTypes);
-	}
-	
-	/*
-	 * Return a string representation of the specified field.
-	 */
-	private static String fullyQualifiedFieldName(Class<?> javaClass, String fieldName) {
-		StringBuilder sb = new StringBuilder(200);
-		sb.append(javaClass.getName());
-		sb.append('.');
-		sb.append(fieldName);
-		return sb.toString();
-	}
-	
-	/*
-	 * Return a string representation of the specified field.
-	 */
-	private static String fullyQualifiedFieldName(Object object, String fieldName) {
-		return fullyQualifiedFieldName(object.getClass(), fieldName);
-	}
-	
-	/*
-	 * Return a string representation of the specified method.
-	 */
-	private static String fullyQualifiedMethodSignature(Class<?> javaClass, String methodName, Class<?>[] parameterTypes) {
-		StringBuilder sb = new StringBuilder(200);
-		sb.append(javaClass.getName());
-		// this check allows us to use this code for constructors, where the methodName is null
-		if (methodName != null) {
-			sb.append('.');
-			sb.append(methodName);
-		}
-		sb.append('(');
-		int max = parameterTypes.length - 1;
-		if (max != -1) {
-			// stop one short of the end of the array
-			for (int i = 0; i < max; i++) {
-				sb.append(parameterTypes[i].getName());
-				sb.append(", ");
-			}
-			sb.append(parameterTypes[max].getName());
-		}
-		sb.append(')');
-		return sb.toString();
-	}
-	
-	/*
-	 * Return a string representation of the specified method.
-	 */
-	private static String fullyQualifiedMethodSignature(Object receiver, String methodName, Class<?>[] parameterTypes) {
-		return fullyQualifiedMethodSignature(receiver.getClass(), methodName, parameterTypes);
-	}
-	
-	/**
-	 * Get a field value, given the containing object and field name.
-	 * Return its result.
-	 * Useful for accessing private, package, or protected fields.
-	 * Object#getFieldValue(String fieldName)
-	 */
-	public static Object fieldValue(Object object, String fieldName) {
-		try {
-			return attemptToGetFieldValue(object, fieldName);
-		} catch (NoSuchFieldException nsfe) {
-			throw new RuntimeException(nsfe + CR + fullyQualifiedFieldName(object, fieldName), nsfe);
-		}
-	}
-	
-	/**
-	 * Get a static field value, given the containing class and field name.
-	 * Return its result.
-	 * Useful for accessing private, package, or protected fields.
-	 * Class#getStaticFieldValue(String fieldName)
-	 */
-	public static Object staticFieldValue(Class<?> javaClass, String fieldName) {
-		try {
-			return attemptToGetStaticFieldValue(javaClass, fieldName);
-		} catch (NoSuchFieldException nsfe) {
-			throw new RuntimeException(nsfe + CR + fullyQualifiedFieldName(javaClass, fieldName), nsfe);
-		}
-	}
-	
-	/**
-	 * Convenience method.
-	 * Execute a zero-argument method, given the receiver and method name.
-	 * Return its result.
-	 * Useful for invoking private, package, or protected methods.
-	 * Object#execute(String methodName)
-	 */
-	public static Object executeMethod(Object receiver, String methodName) {
-		return executeMethod(receiver, methodName, ZERO_PARAMETER_TYPES, ZERO_PARAMETERS);
-	}
-	
-	/**
-	 * Execute a method, given the receiver,
-	 * method name, parameter types, and parameters.
-	 * Return its result.
-	 * Useful for invoking private, package, or protected methods.
-	 * Object#execute(String methodName, Class<?>[] parameterTypes, Object[] parameters)
-	 */
-	public static Object executeMethod(Object receiver, String methodName, Class<?>[] parameterTypes, Object[] parameters) {
-		try {
-			return attemptToExecuteMethod(receiver, methodName, parameterTypes, parameters);
-		} catch (NoSuchMethodException nsme) {
-			throw new RuntimeException(nsme + CR + fullyQualifiedMethodSignature(receiver, methodName, parameterTypes), nsme);
-		}
-	}
-	
-	/**
-	 * Convenience method.
-	 * Execute a one-argument method, given the receiver,
-	 * method name, parameter type, and parameter.
-	 * Return its result.
-	 * Useful for invoking private, package, or protected methods.
-	 * Object#execute(String methodName, Class<?> parameterType, Object parameter)
-	 */
-	public static Object executeMethod(Object receiver, String methodName, Class<?> parameterType, Object parameter) {
-		return executeMethod(receiver, methodName, new Class[] {parameterType}, new Object[] {parameter});
-	}
-	
-	/**
-	 * Convenience method.
-	 * Execute a zero-argument method, given the receiver and method name.
-	 * Return its result.
-	 * If the method throws an exception, rethrow that exception.
-	 * Useful for invoking private, package, or protected methods.
-	 * Object#execute(String methodName)
-	 */
-	public static Object executeMethodWithException(Object receiver, String methodName) 
-		throws Throwable
-	{
-		return executeMethodWithException(receiver, methodName, ZERO_PARAMETER_TYPES, ZERO_PARAMETERS);
-	}
-	
-	/**
-	 * Convenience method.
-	 * Execute a one-argument method, given the receiver,
-	 * method name, parameter type, and parameter.
-	 * Return its result.
-	 * If the method throws an exception, rethrow that exception.
-	 * Useful for invoking private, package, or protected methods.
-	 * Object#execute(String methodName, Class<?> parameterType, Object parameter)
-	 */
-	public static Object executeMethodWithException(Object receiver, String methodName, Class<?> parameterType, Object parameter) 
-		throws Throwable
-	{
-		return executeMethodWithException(receiver, methodName, new Class[] {parameterType}, new Object[] {parameter});
-	}
-	
-	/**
-	 * Execute a method, given the receiver,
-	 * method name, parameter types, and parameters.
-	 * Return its result.
-	 * If the method throws an exception, rethrow that exception.
-	 * Useful for invoking private, package, or protected methods.
-	 * Object#execute(String methodName, Class<?>[] parameterTypes, Object[] parameters)
-	 */
-	public static Object executeMethodWithException(Object receiver, String methodName, Class<?>[] parameterTypes, Object[] parameters) 
-		throws Throwable
-	{
-		try {
-			return attemptToExecuteMethodWithException(receiver, methodName, parameterTypes, parameters);
-		} catch (NoSuchMethodException nsme) {
-			throw new RuntimeException(nsme + CR + fullyQualifiedMethodSignature(receiver, methodName, parameterTypes), nsme);
-		}
-	}
-	
-	/**
-	 * Execute the specified method with the specified parameters.
-	 * Return its result.
-	 * Convert exceptions to RuntimeExceptions.
-	 */
-	public static Object executeMethod(Method method, Object receiver, Object[] parameters) {
-		try {
-			return method.invoke(receiver, parameters);
-		} catch (IllegalAccessException iae) {
-			throw new RuntimeException(iae + CR + method, iae);
-		} catch (InvocationTargetException ite) {
-			throw new RuntimeException(method + CR + ite.getTargetException(), ite);
-		}
-	}
-	
-	/**
-	 * Execute the specified method with the specified parameters.
-	 * Return its result.
-	 * If the method throws an exception, rethrow that exception.
-	 * Convert all other exceptions to RuntimeExceptions.
-	 */
-	public static Object executeMethodWithException(Method method, Object receiver, Object[] parameters)
-		throws Throwable
-	{
-		try {
-			return method.invoke(receiver, parameters);
-		} catch (IllegalAccessException iae) {
-			throw new RuntimeException(iae + CR + method, iae);
-		} catch (InvocationTargetException ite) {
-			Throwable cause = ite.getCause();
-			if (cause == null) {
-				throw new RuntimeException(method.toString(), ite);
-			}
-			throw cause;
-		}
-	}
-	
-	/**
-	 * Convenience method.
-	 * Execute a zero-argument static method,
-	 * given the class and method name.
-	 * Return its result.
-	 * Useful for invoking private, package, or protected methods.
-	 * Class#executeStaticMethod(String methodName)
-	 */
-	public static Object executeStaticMethod(Class<?> javaClass, String methodName) {
-		return executeStaticMethod(javaClass, methodName, ZERO_PARAMETER_TYPES, ZERO_PARAMETERS);
-	}
-	
-	/**
-	 * Execute a static method, given the class,
-	 * method name, parameter types, and parameters.
-	 * Return its result.
-	 * Useful for invoking private, package, or protected methods.
-	 * Class#executeStaticMethod(String methodName, Class<?>[] parameterTypes, Object[] parameters)
-	 */
-	public static Object executeStaticMethod(Class<?> javaClass, String methodName, Class<?>[] parameterTypes, Object[] parameters) {
-		try {
-			return attemptToExecuteStaticMethod(javaClass, methodName, parameterTypes, parameters);
-		} catch (NoSuchMethodException nsme) {
-			throw new RuntimeException(nsme + CR + fullyQualifiedMethodSignature(javaClass, methodName, parameterTypes), nsme);
-		}
-	}
-	
-	/**
-	 * Convenience method.
-	 * Execute a static method, given the class,
-	 * method name, parameter type, and parameter.
-	 * Return its result.
-	 * Useful for invoking private, package, or protected methods.
-	 * Class#executeStaticMethod(String methodName, Class<?> parameterType, Object parameter)
-	 */
-	public static Object executeStaticMethod(Class<?> javaClass, String methodName, Class<?> parameterType, Object parameter) {
-		return executeStaticMethod(javaClass, methodName, new Class[] {parameterType}, new Object[] {parameter});
-	}
-	
-	/**
-	 * Execute the specified static method with the specified parameters.
-	 * Return its result.
-	 * Convert exceptions to RuntimeExceptions.
-	 */
-	public static Object executeStaticMethod(Method method, Object[] parameters) {
-		return executeMethod(method, null, parameters);
-	}
-	
-	/**
-	 * Convenience method.
-	 * Return a zero-argument method for the specified class
-	 * and method name. If the class does not directly
-	 * implement the method, look for it in the class's superclasses.
-	 * Set accessible to true, so we can access
-	 * private/package/protected methods.
-	 */
-	public static Method method(Class<?> javaClass, String methodName) throws NoSuchMethodException {
-		return method(javaClass, methodName, ZERO_PARAMETER_TYPES);
-	}
-	
-	/**
-	 * Return a method for the specified class, method name,
-	 * and formal parameter types. If the class does not directly
-	 * implement the method, look for it in the class's superclasses.
-	 * Set accessible to true, so we can access
-	 * private/package/protected methods.
-	 */
-	public static Method method(Class<?> javaClass, String methodName, Class<?>[] parameterTypes) throws NoSuchMethodException {
-		Method method = null;
-		try {
-			method = javaClass.getDeclaredMethod(methodName, parameterTypes);
-		} catch (NoSuchMethodException ex) {
-			Class<?> superclass = javaClass.getSuperclass();
-			if (superclass == null) {
-				throw ex;
-			}
-			// recurse
-			return method(superclass, methodName, parameterTypes);
-		}
-		method.setAccessible(true);
-		return method;
-	}
-	
-	/**
-	 * Convenience method.
-	 * Return a method for the specified class, method name,
-	 * and formal parameter type. If the class does not directly
-	 * implement the method, look for it in the class's superclasses.
-	 * Set accessible to true, so we can access
-	 * private/package/protected methods.
-	 */
-	public static Method method(Class<?> javaClass, String methodName, Class<?> parameterType) throws NoSuchMethodException {
-		return method(javaClass, methodName, new Class[] {parameterType});
-	}
-	
-	/**
-	 * Convenience method.
-	 * Return a zero-argument method for the specified object
-	 * and method name. If the object's class does not directly
-	 * implement the method, look for it in the class's superclasses.
-	 * Set accessible to true, so we can access
-	 * private/package/protected methods.
-	 */
-	public static Method method(Object object, String methodName) throws NoSuchMethodException {
-		return method(object.getClass(), methodName);
-	}
-	
-	/**
-	 * Convenience method.
-	 * Return a method for the specified object, method name,
-	 * and formal parameter types. If the object's class does not directly
-	 * implement the method, look for it in the class's superclasses.
-	 * Set accessible to true, so we can access
-	 * private/package/protected methods.
-	 */
-	public static Method method(Object object, String methodName, Class<?>[] parameterTypes) throws NoSuchMethodException {
-		return method(object.getClass(), methodName, parameterTypes);
-	}
-	
-	/**
-	 * Convenience method.
-	 * Return a method for the specified object, method name,
-	 * and formal parameter type. If the object's class does not directly
-	 * implement the method, look for it in the class's superclasses.
-	 * Set accessible to true, so we can access
-	 * private/package/protected methods.
-	 */
-	public static Method method(Object object, String methodName, Class<?> parameterType) throws NoSuchMethodException {
-		return method(object.getClass(), methodName, parameterType);
-	}
-	
-	/**
-	 * Convenience method.
-	 * Return the specified class (without the checked exception).
-	 */
-	public static Class<?> classForName(String className) {
-		try {
-			return Class.forName(className);
-		} catch (ClassNotFoundException ex) {
-			throw new RuntimeException(className, ex);
-		}
-	}
-	
-	/**
-	 * Convenience method.
-	 * Return a new instance of the specified class,
-	 * using the class's default (zero-argument) constructor.
-	 * Class#newInstance()
-	 */
-	public static <T> T newInstance(Class<T> javaClass) {
-		return newInstance(javaClass, ZERO_PARAMETER_TYPES, ZERO_PARAMETERS);
-	}
-	
-	/**
-	 * Convenience method.
-	 * Return a new instance of the specified class,
-	 * using the class's default (zero-argument) constructor.
-	 * Class#newInstance()
-	 */
-	public static Object newInstance(String className) throws ClassNotFoundException {
-		return newInstance(className, null);
-	}
-	
-	/**
-	 * Convenience method.
-	 * Return a new instance of the specified class,
-	 * using the class's default (zero-argument) constructor.
-	 * Class#newInstance()
-	 */
-	public static Object newInstance(String className, ClassLoader classLoader) throws ClassNotFoundException {
-		return newInstance(Class.forName(className, true, classLoader));
-	}
-	
-	/**
-	 * Return a new instance of the specified class,
-	 * given the constructor parameter types and parameters.
-	 * Class#newInstance(Class<?>[] parameterTypes, Object[] parameters)
-	 */
-	public static <T> T newInstance(Class<T> javaClass, Class<?>[] parameterTypes, Object[] parameters) {
-		try {
-			return attemptNewInstance(javaClass, parameterTypes, parameters);
-		} catch (NoSuchMethodException nsme) {
-			throw new RuntimeException(nsme + CR + fullyQualifiedConstructorSignature(javaClass, parameterTypes), nsme);
-		}
-	}
-	
-	/**
-	 * Return a new instance of the specified class,
-	 * given the constructor parameter types and parameters.
-	 * Class#newInstance(Class<?>[] parameterTypes, Object[] parameters)
-	 */
-	public static Object newInstance(String className, Class<?>[] parameterTypes, Object[] parameters) throws ClassNotFoundException {
-		return newInstance(className, parameterTypes, parameters, null);
-	}
-	
-	/**
-	 * Return a new instance of the specified class,
-	 * given the constructor parameter types and parameters.
-	 * Class#newInstance(Class<?>[] parameterTypes, Object[] parameters)
-	 */
-	public static Object newInstance(String className, Class<?>[] parameterTypes, Object[] parameters, ClassLoader classLoader) throws ClassNotFoundException {
-		return newInstance(Class.forName(className, true, classLoader), parameterTypes, parameters);
-	}
-	
-	/**
-	 * Convenience method.
-	 * Return a new instance of the specified class,
-	 * given the constructor parameter type and parameter.
-	 * Class#newInstance(Class<?> parameterType, Object parameter)
-	 */
-	public static <T> T newInstance(Class<T> javaClass, Class<?> parameterType, Object parameter) {
-		return newInstance(javaClass, new Class[] {parameterType}, new Object[] {parameter});
-	}
-	
-	/**
-	 * Return a new instance of the specified class,
-	 * given the constructor parameter type and parameter.
-	 * Class#newInstance(Class<?> parameterType, Object parameter)
-	 */
-	public static Object newInstance(String className, Class<?> parameterType, Object parameter) throws ClassNotFoundException {
-		return newInstance(className, parameterType, parameter, null);
-	}
-	
-	/**
-	 * Return a new instance of the specified class,
-	 * given the constructor parameter type and parameter.
-	 * Class#newInstance(Class<?> parameterType, Object parameter)
-	 */
-	public static Object newInstance(String className, Class<?> parameterType, Object parameter, ClassLoader classLoader) throws ClassNotFoundException {
-		return newInstance(Class.forName(className, false, classLoader), parameterType, parameter);
-	}
-	
-	/*
-	 * Push the declared fields for the specified class
-	 * onto the top of the stack.
-	 */
-	private static void pushDeclaredFields(Class<?> javaClass, Stack<Field> stack) {
-		Field[] fields = declaredFields(javaClass);
-		for (int i = fields.length; i-- > 0; ) {
-			stack.push(fields[i]);
-		}
-	}
-	
-	/*
-	 * Push the declared methods for the specified class
-	 * onto the top of the stack.
-	 */
-	private static void pushDeclaredMethods(Class<?> javaClass, Stack<Method> stack) {
-		Method[] methods = declaredMethods(javaClass);
-		for (int i = methods.length; i-- > 0; ) {
-			stack.push(methods[i]);
-		}
-	}
-	
-	/**
-	 * Set a field value, given the containing object, field name, and new field value.
-	 * Useful for accessing private, package, or protected fields.
-	 * Object#setFieldValue(String fieldName, Object fieldValue)
-	 */
-	public static void setFieldValue(Object object, String fieldName, Object fieldValue) {
-		try {
-			attemptToSetFieldValue(object, fieldName, fieldValue);
-		} catch (NoSuchFieldException nsfe) {
-			throw new RuntimeException(nsfe + CR + fullyQualifiedFieldName(object, fieldName), nsfe);
-		}
-	}
-	
-	/**
-	 * Set a static field value, given the containing class, field name, and new field value.
-	 * Useful for accessing private, package, or protected fields.
-	 * Class#setStaticFieldValue(String fieldName, Object fieldValue)
-	 */
-	public static void setStaticFieldValue(Class<?> javaClass, String fieldName, Object fieldValue) {
-		try {
-			attemptToSetStaticFieldValue(javaClass, fieldName, fieldValue);
-		} catch (NoSuchFieldException nsfe) {
-			throw new RuntimeException(nsfe + CR + fullyQualifiedFieldName(javaClass, fieldName), nsfe);
-		}
-	}
-	
-	/**
-	 * Return the short name of the object's class.
-	 * Class#getShortName()
-	 */
-	public static String shortClassNameForObject(Object object) {
-		return shortNameFor(object.getClass());
-	}
-	
-	/**
-	 * Return the short name of the class (e.g. "Object").
-	 * Class#getShortName()
-	 */
-	public static String shortNameForClassNamed(String className) {
-		return className.substring(className.lastIndexOf('.') + 1);
-	}
-	
-	/**
-	 * Return the short name of the class (e.g. "Object").
-	 * Class#getShortName()
-	 */
-	public static String shortNameFor(Class<?> javaClass) {
-		return shortNameForClassNamed(javaClass.getName());
-	}
-	
-	/**
-	 * Return the nested name of the object's class.
-	 * Class#getNestedName()
-	 */
-	public static String nestedClassNameForObject(Object object) {
-		return nestedNameFor(object.getClass());
-	}
-	
-	/**
-	 * Return the nested name of the class (e.g. "Entry").
-	 * Class#getNestedName()
-	 */
-	public static String nestedNameForClassNamed(String className) {
-		return className.substring(className.lastIndexOf(NESTED_CLASS_NAME_SEPARATOR) + 1);
-	}
-	
-	/**
-	 * Return the nested name of the class (e.g. "Entry").
-	 * Class#getNestedName()
-	 */
-	public static String nestedNameFor(Class<?> javaClass) {
-		return nestedNameForClassNamed(javaClass.getName());
-	}
-	
-	/**
-	 * Return the "toString()" name of the object's class.
-	 */
-	public static String toStringClassNameForObject(Object object) {
-		return toStringNameFor(object.getClass());
-	}
-	
-	/**
-	 * Return the "toString()" name of the class.
-	 * "Member" classes will return only the final name:
-	 *     "com.foo.bar.TopLevelClass$MemberClass$NestedMemberClass"
-	 *         => "NestedMemberClass"
-	 * "Local" and "anonymous" classes will still return the embedded '$'s:
-	 *     "com.foo.bar.TopLevelClass$1LocalClass"
-	 *         => "TopLevelClass$1LocalClass"
-	 *     "com.foo.bar.TopLevelClass$1"
-	 *         => "TopLevelClass$1"
-	 */
-	public static String toStringNameForClassNamed(String className) {
-		return classNamedIsMember(className) ?
-			className.substring(className.lastIndexOf(NESTED_CLASS_NAME_SEPARATOR) + 1)
-		:
-			className.substring(className.lastIndexOf('.') + 1);
-	}
-	
-	/**
-	 * Return the "toString()" name of the class.
-	 */
-	public static String toStringNameFor(Class<?> javaClass) {
-		return toStringNameForClassNamed(javaClass.getName());
-	}
-	
-	/**
-	 * Return the package name of the class (e.g. "java.lang").
-	 * Class#getPackageName()
-	 */
-	public static String packageNameFor(Class<?> javaClass) {
-		return packageNameForClassNamed(javaClass.getName());
-	}
-	
-	/**
-	 * Return the package name of the class (e.g. "java.lang").
-	 * Class#getPackageName()
-	 */
-	public static String packageNameForClassNamed(String className) {
-		int lastPeriod = className.lastIndexOf('.');
-		if (lastPeriod == -1) {
-			return "";
-		}
-		return className.substring(0, lastPeriod);
-	}
-	
-	/**
-	 * Return the short name of the class,
-	 * followed by its package name (e.g. "Object (java.lang)").
-	 * Class#getShortNameWithPackage()
-	 */
-	public static String shortNameWithPackage(Class<?> javaClass) {
-		StringBuilder sb = new StringBuilder(200);
-		sb.append(shortNameFor(javaClass));
-		if ( ! javaClass.isPrimitive()) {
-			sb.append(" (");
-			sb.append(packageNameFor(javaClass));
-			sb.append(')');
-		}
-		return sb.toString();
-	}
-	
-	/**
-	 * Convenience method.
-	 * Return a zero-argument, static method for the specified class
-	 * and method name. If the class does not directly
-	 * implement the method, look for it in the class's superclasses.
-	 * Set accessible to true, so we can access
-	 * private/package/protected methods.
-	 */
-	public static Method staticMethod(Class<?> javaClass, String methodName) throws NoSuchMethodException {
-		return staticMethod(javaClass, methodName, ZERO_PARAMETER_TYPES);
-	}
-	
-	/**
-	 * Return a static method for the specified class, method name,
-	 * and formal parameter types. If the class does not directly
-	 * implement the method, look for it in the class's superclasses.
-	 * Set accessible to true, so we can access
-	 * private/package/protected methods.
-	 */
-	public static Method staticMethod(Class<?> javaClass, String methodName, Class<?>[] parameterTypes) throws NoSuchMethodException {
-		Method method = method(javaClass, methodName, parameterTypes);
-		if (Modifier.isStatic(method.getModifiers())) {
-			return method;
-		}
-		throw new NoSuchMethodException(fullyQualifiedMethodSignature(javaClass, methodName, parameterTypes));
-	}
-	
-	/**
-	 * Convenience method.
-	 * Return a static method for the specified class, method name,
-	 * and formal parameter type. If the class does not directly
-	 * implement the method, look for it in the class's superclasses.
-	 * Set accessible to true, so we can access
-	 * private/package/protected methods.
-	 */
-	public static Method staticMethod(Class<?> javaClass, String methodName, Class<?> parameterTypes) throws NoSuchMethodException {
-		return staticMethod(javaClass, methodName, new Class[] {parameterTypes});
-	}
-
-	/**
-	 * Return whether the specified class can be "declared" in code;
-	 * i.e. it is either a "top-level" class or a "member" class, but it
-	 * is not an "array" class. This method rolls together all the checks
-	 * from the other methods for a bit of a performance tweak.
-	 * Class#isDeclarable()
-	 */
-	public static boolean classNamedIsDeclarable(String className) {
-		if (className.charAt(0) == ARRAY_INDICATOR) {
-			return false;		// it is an "array" class
-		}
-		int index = className.indexOf(NESTED_CLASS_NAME_SEPARATOR);
-		if (index == -1) {
-			return true;		// it is a "top-level" class
-		}
-		do {
-			// the character immediately after each dollar sign cannot be a digit
-			index++;
-			if (Character.isDigit(className.charAt(index))) {
-				return false;
-			}
-			index = className.indexOf(NESTED_CLASS_NAME_SEPARATOR, index);
-		} while (index != -1);
-		return true;
-	}
-	
-	/**
-	 * Return whether the specified class is a "top-level" class,
-	 * as opposed to a "member", "local", or "anonymous" class,
-	 * using the standard jdk naming conventions (i.e. the class
-	 * name does NOT contain a '$': "TopLevelClass").
-	 * Class#isTopLevel()
-	 */
-	public static boolean classNamedIsTopLevel(String className) {
-		if (classNamedIsArray(className)) {
-			return false;
-		}
-		return className.indexOf(NESTED_CLASS_NAME_SEPARATOR) == -1;
-	}
-
-	/**
-	 * Return whether the specified class is a "member" class,
-	 * as opposed to a "top-level", "local", or "anonymous" class,
-	 * using the standard jdk naming conventions (i.e. the class
-	 * name contains at least one '$' and all the names between
-	 * each '$' are legal class names:
-	 * "TopLevelClass$MemberClass$NestedMemberClass").
-	 * Class#isMember()
-	 */
-	public static boolean classNamedIsMember(String className) {
-		if (classNamedIsArray(className)) {
-			return false;
-		}
-		int index = className.indexOf(NESTED_CLASS_NAME_SEPARATOR);
-		if (index == -1) {
-			return false;	// it is a "top-level" class
-		}
-		do {
-			// the character immediately after each dollar sign cannot be a digit
-			index++;
-			if (Character.isDigit(className.charAt(index))) {
-				return false;
-			}
-			index = className.indexOf(NESTED_CLASS_NAME_SEPARATOR, index);
-		} while (index != -1);
-		return true;
-	}
-
-	/**
-	 * Return whether the specified class is a "local" class,
-	 * as opposed to a "top-level", "member", or "anonymous" class,
-	 * using the standard jdk (or Eclipse) naming conventions.
-	 * In the jdk, the class name ends with '$nnnXXX' where the '$' is
-	 * followed by a series of numeric digits which are followed by the
-	 * local class name: "TopLevelClass$1LocalClass".
-	 * In Eclipse, the class name ends with '$nnn$XXX' where the '$' is
-	 * followed by a series of numeric digits which are separated from
-	 * the local class name by another '$': "TopLevelClass$1$LocalClass".
-	 * Class#isLocal()
-	 */
-	public static boolean classNamedIsLocal(String className) {
-		if (classNamedIsArray(className)) {
-			return false;
-		}
-		int dollar = className.indexOf(NESTED_CLASS_NAME_SEPARATOR);
-		if (dollar == -1) {
-			return false;
-		}
-		if ( ! Character.isDigit(className.charAt(dollar + 1))) {
-			return false;
-		}
-		int len = className.length();
-		for (int i = dollar + 2; i < len; i++) {
-			if (Character.isJavaIdentifierStart(className.charAt(i))) {
-				return true;
-			}
-		}
-		// all the characters past the $ are digits (anonymous)
-		return false;
-	}
-
-	/**
-	 * Return whether the specified class is an "anonymous" class,
-	 * as opposed to a "top-level", "member", or "local" class,
-	 * using the standard jdk naming conventions (i.e. the class
-	 * name ends with '$nnn' where all the characters past the
-	 * last '$' are numeric digits: "TopLevelClass$1").
-	 * Class#isAnonymous()
-	 */
-	public static boolean classNamedIsAnonymous(String className) {
-		if (classNamedIsArray(className)) {
-			return false;
-		}
-		int dollar = className.indexOf(NESTED_CLASS_NAME_SEPARATOR);
-		if (dollar == -1) {
-			return false;
-		}
-		int start = dollar + 1;
-		for (int i = className.length(); i-- > start; ) {
-			if ( ! Character.isDigit(className.charAt(i))) {
-				return false;
-			}
-		}
-		// all the characters past the $ are digits
-		return true;
-	}
-
-	/**
-	 * Return the "array depth" of the specified class.
-	 * The depth is the number of dimensions for an array type.
-	 * Non-array types have a depth of zero.
-	 * Class#getArrayDepth()
-	 */
-	public static int arrayDepthFor(Class<?> javaClass) {
-		int depth = 0;
-		while (javaClass.isArray()) {
-			depth++;
-			javaClass = javaClass.getComponentType();
-		}
-		return depth;
-	}
-	
-	/**
-	 * Return the "array depth" of the specified object.
-	 * The depth is the number of dimensions for an array.
-	 * Non-arrays have a depth of zero.
-	 */
-	public static int arrayDepthForObject(Object object) {
-		return arrayDepthFor(object.getClass());
-	}
-	
-	/**
-	 * Return the "array depth" of the specified class.
-	 * The depth is the number of dimensions for an array type.
-	 * Non-array types have a depth of zero.
-	 * @see java.lang.Class#getName()
-	 * Class#getArrayDepth()
-	 */
-	public static int arrayDepthForClassNamed(String className) {
-		int depth = 0;
-		while (className.charAt(depth) == ARRAY_INDICATOR) {
-			depth++;
-		}
-		return depth;
-	}
-
-	/**
-	 * Return whether the specified class is an array type.
-	 * @see java.lang.Class#getName()
-	 */
-	public static boolean classNamedIsArray(String className) {
-		return className.charAt(0) == ARRAY_INDICATOR;
-	}
-
-	/**
-	 * Return the "element type" of the specified class.
-	 * The element type is the base type held by an array type.
-	 * A non-array type simply returns itself.
-	 * Class#getElementType()
-	 */
-	public static Class<?> elementTypeFor(Class<?> javaClass) {
-		while (javaClass.isArray()) {
-			javaClass = javaClass.getComponentType();
-		}
-		return javaClass;
-	}
-
-	/**
-	 * Return the "element type" of the specified object.
-	 * The element type is the base type held by an array.
-	 * A non-array simply returns its class.
-	 */
-	public static Class<?> elementTypeForObject(Object object) {
-		return elementTypeFor(object.getClass());
-	}
-
-	/**
-	 * Return the "element type" of the specified class.
-	 * The element type is the base type held by an array type.
-	 * Non-array types simply return themselves.
-	 * Class#getElementType()
-	 */
-	public static String elementTypeNameFor(Class<?> javaClass) {
-		return elementTypeFor(javaClass).getName();
-	}
-
-	/**
-	 * Return the "element type" of the specified class.
-	 * The element type is the base type held by an array type.
-	 * Non-array types simply return themselves.
-	 * @see java.lang.Class#getName()
-	 * Class#getElementType()
-	 */
-	public static String elementTypeNameForClassNamed(String className) {
-		int depth = arrayDepthForClassNamed(className);
-		if (depth == 0) {
-			// the name is in the form: "java.lang.Object" or "int"
-			return className;
-		}
-		int last = className.length() - 1;
-		if (className.charAt(depth) == REFERENCE_CLASS_CODE) {
-			// the name is in the form: "[[[Ljava.lang.Object;"
-			return className.substring(depth + 1, last);	// drop the trailing ';'
-		}
-		// the name is in the form: "[[[I"
-		return classNameForCode(className.charAt(last));
-	}
-	
-	/**
-	 * Return whether the specified class is a "reference"
-	 * class (i.e. neither 'void' nor one of the primitive variable classes,
-	 * ['boolean', 'int', 'float', etc.]).
-	 * NB: void.class.isPrimitive() == true
-	 */
-	public static boolean classNamedIsReference(String className) {
-		return ! classNamedIsPrimitive(className);
-	}
-
-	/**
-	 * Return whether the specified class is a primitive
-	 * class (i.e. 'void' or one of the primitive variable classes,
-	 * ['boolean', 'int', 'float', etc.]).
-	 * NB: void.class.isPrimitive() == true
-	 */
-	public static boolean classNamedIsPrimitive(String className) {
-		if (classNamedIsArray(className) || (className.length() > maxPrimitiveClassNameLength())) {
-			return false;  // performance tweak
-		}
-		Primitive[] codes = primitives();
-		for (int i = codes.length; i-- > 0; ) {
-			if (codes[i].javaClass.getName().equals(className)) {
-				return true;
-			}
-		}
-		return false;
-	}
-
-	/**
-	 * Return whether the specified class is a "variable" primitive
-	 * class (i.e. 'boolean', 'int', 'float', etc., but not 'void').
-	 * NB: void.class.isPrimitive() == true
-	 */
-	public static boolean classNamedIsVariablePrimitive(String className) {
-		return classNamedIsPrimitive(className)
-			&& ( ! className.equals(VOID_CLASS_NAME));
-	}
-
-	/**
-	 * Return whether the specified class is a primitive wrapper
-	 * class (i.e. 'java.lang.Void' or one of the primitive variable wrapper classes,
-	 * ['java.lang.Boolean', 'java.lang.Integer', 'java.lang.Float', etc.]).
-	 * NB: void.class.isPrimitive() == true
-	 */
-	public static boolean classNamedIsPrimitiveWrapperClass(String className) {
-		if (classNamedIsArray(className) || (className.length() > maxPrimitiveWrapperClassNameLength())) {
-			return false;  // performance tweak
-		}
-		Primitive[] codes = primitives();
-		for (int i = codes.length; i-- > 0; ) {
-			if (codes[i].wrapperClass.getName().equals(className)) {
-				return true;
-			}
-		}
-		return false;
-	}
-
-	/**
-	 * Return whether the specified class is a "variable" primitive
-	 * class (i.e. 'boolean', 'int', 'float', etc., but not 'void').
-	 * NB: void.class.isPrimitive() == true
-	 */
-	public static boolean classNamedIsVariablePrimitiveWrapperClass(String className) {
-		return classNamedIsPrimitiveWrapperClass(className)
-			&& ( ! className.equals(VOID_WRAPPER_CLASS_NAME));
-	}
-
-	/**
-	 * Return whether the specified class is a primitive wrapper
-	 * class (i.e. 'java.lang.Void' or one of the primitive variable wrapper classes,
-	 * ['java.lang.Boolean', 'java.lang.Integer', 'java.lang.Float', etc.]).
-	 * NB: void.class.isPrimitive() == true
-	 */
-	public static boolean classIsPrimitiveWrapperClass(Class<?> javaClass) {
-		if (javaClass.isArray() || (javaClass.getName().length() > maxPrimitiveWrapperClassNameLength())) {
-			return false;  // performance tweak
-		}
-		Primitive[] codes = primitives();
-		for (int i = codes.length; i-- > 0; ) {
-			if (codes[i].wrapperClass == javaClass) {
-				return true;
-			}
-		}
-		return false;
-	}
-
-	/**
-	 * Return whether the specified class is a "variable" primitive
-	 * class (i.e. 'boolean', 'int', 'float', etc., but not 'void').
-	 * NB: void.class.isPrimitive() == true
-	 */
-	public static boolean classIsVariablePrimitiveWrapperClass(Class<?> javaClass) {
-		return classIsPrimitiveWrapperClass(javaClass)
-			&& (javaClass != java.lang.Void.class);
-	}
-
-	/**
-	 * Return the class name for the specified class code.
-	 * @see java.lang.Class#getName()
-	 */
-	public static String classNameForCode(char classCode) {
-		return classForCode(classCode).getName();
-	}
-	
-	/**
-	 * Return the class name for the specified class code.
-	 * @see java.lang.Class#getName()
-	 */
-	public static String classNameForCode(int classCode) {
-		return classNameForCode((char) classCode);
-	}
-	
-	/**
-	 * Return the class for the specified class code.
-	 * @see java.lang.Class#getName()
-	 */
-	public static Class<?> classForCode(char classCode) {
-		Primitive[] codes = primitives();
-		for (int i = codes.length; i-- > 0; ) {
-			if (codes[i].code == classCode) {
-				return codes[i].javaClass;
-			}
-		}
-		throw new IllegalArgumentException(String.valueOf(classCode));
-	}
-
-	/**
-	 * Return the class for the specified class code.
-	 * @see java.lang.Class#getName()
-	 */
-	public static Class<?> classForCode(int classCode) {
-		return classForCode((char) classCode);
-	}
-	
-	/**
-	 * Return the class code for the specified class.
-	 * @see java.lang.Class#getName()
-	 */
-	public static char codeForClass(Class<?> javaClass) {
-		if (( ! javaClass.isArray()) && (javaClass.getName().length() <= maxPrimitiveClassNameLength())) {
-			Primitive[] codes = primitives();
-			for (int i = codes.length; i-- > 0; ) {
-				if (codes[i].javaClass == javaClass) {
-					return codes[i].code;
-				}
-			}
-		}
-		throw new IllegalArgumentException(javaClass.getName());		
-	}
-	
-	/**
-	 * Return the class code for the specified class.
-	 * @see java.lang.Class#getName()
-	 */
-	public static char codeForClassNamed(String className) {
-		if (( ! classNamedIsArray(className)) && (className.length() <= maxPrimitiveClassNameLength())) {
-			Primitive[] codes = primitives();
-			for (int i = codes.length; i-- > 0; ) {
-				if (codes[i].javaClass.getName().equals(className)) {
-					return codes[i].code;
-				}
-			}
-		}
-		throw new IllegalArgumentException(className);		
-	}
-
-	/**
-	 * Return the class for the specified "type declaration".
-	 */
-	public static Class<?> classForTypeDeclaration(String typeDeclaration) throws ClassNotFoundException {
-		return classForTypeDeclaration(typeDeclaration, ClassTools.class.getClassLoader());
-	}
-	
-	/**
-	 * Return the class for the specified "type declaration",
-	 * using the specified class loader.
-	 */
-	public static Class<?> classForTypeDeclaration(String typeDeclaration, ClassLoader classLoader) throws ClassNotFoundException {
-		TypeDeclaration td = typeDeclaration(typeDeclaration);
-		return classForTypeDeclaration(td.elementTypeName, td.arrayDepth);
-	}
-
-	private static TypeDeclaration typeDeclaration(String typeDeclaration) {
-		typeDeclaration = StringTools.removeAllWhitespace(typeDeclaration);
-		int arrayDepth = arrayDepthForTypeDeclaration_(typeDeclaration);
-		String elementTypeName = typeDeclaration.substring(0, typeDeclaration.length() - (arrayDepth * 2));
-		return new TypeDeclaration(elementTypeName, arrayDepth);
-	}
-
-	/**
-	 * Return the class for the specified "type declaration".
-	 */
-	public static Class<?> classForTypeDeclaration(String elementTypeName, int arrayDepth) throws ClassNotFoundException {
-		return classForTypeDeclaration(elementTypeName, arrayDepth, null);
-	}
-	
-	/**
-	 * Return the class for the specified "type declaration",
-	 * using the specified class loader.
-	 */
-	// see the "Evaluation" of jdk bug 6446627 for a discussion of loading classes
-	public static Class<?> classForTypeDeclaration(String elementTypeName, int arrayDepth, ClassLoader classLoader) throws ClassNotFoundException {
-		// primitives cannot be loaded via Class#forName(),
-		// so check for a primitive class name first
-		Primitive pcc = null;
-		if (elementTypeName.length() <= maxPrimitiveClassNameLength()) {  // performance tweak
-			Primitive[] codes = primitives();
-			for (int i = codes.length; i-- > 0; ) {
-				if (codes[i].javaClass.getName().equals(elementTypeName)) {
-					pcc = codes[i];
-					break;
-				}
-			}
-		}
-
-		// non-array
-		if (arrayDepth == 0) {
-			return (pcc == null) ? Class.forName(elementTypeName, false, classLoader) : pcc.javaClass;
-		}
-
-		// array
-		StringBuilder sb = new StringBuilder(100);
-		for (int i = arrayDepth; i-- > 0; ) {
-			sb.append(ARRAY_INDICATOR);
-		}
-		if (pcc == null) {
-			sb.append(REFERENCE_CLASS_CODE);
-			sb.append(elementTypeName);
-			sb.append(REFERENCE_CLASS_NAME_DELIMITER);
-		} else {
-			sb.append(pcc.code);
-		}
-		return Class.forName(sb.toString(), false, classLoader);
-	}
-	
-	/**
-	 * Return the class name for the specified "type declaration"; e.g.
-	 *     "int[]" -> "[I"
-	 * @see java.lang.Class#getName()
-	 */
-	public static String classNameForTypeDeclaration(String typeDeclaration) {
-		TypeDeclaration td = typeDeclaration(typeDeclaration);
-		return classNameForTypeDeclaration(td.elementTypeName, td.arrayDepth);
-	}
-
-	/**
-	 * Return the array depth for the specified "type declaration"; e.g.
-	 *     "int[]" -> 1
-	 */
-	public static int arrayDepthForTypeDeclaration(String typeDeclaration) {
-		return arrayDepthForTypeDeclaration_(StringTools.removeAllWhitespace(typeDeclaration));
-	}
-
-	/*
-	 * Assume no whitespace in the type declaration.
-	 */
-	private static int arrayDepthForTypeDeclaration_(String typeDeclaration) {
-		int last = typeDeclaration.length() - 1;
-		int depth = 0;
-		int close = last;
-		while (typeDeclaration.charAt(close) == TYPE_DECLARATION_ARRAY_CLOSE) {
-			if (typeDeclaration.charAt(close - 1) == TYPE_DECLARATION_ARRAY_OPEN) {
-				depth++;
-			} else {
-				throw new IllegalArgumentException("invalid type declaration: " + typeDeclaration);
-			}
-			close = last - (depth * 2);
-		}
-		return depth;
-	}
-	
-	/**
-	 * Return the class name for the specified "type declaration".
-	 * @see java.lang.Class#getName()
-	 */
-	public static String classNameForTypeDeclaration(String elementTypeName, int arrayDepth) {
-		// non-array
-		if (arrayDepth == 0) {
-			return elementTypeName;
-		}
-
-		if (elementTypeName.equals(VOID_CLASS_NAME)) {
-			throw new IllegalArgumentException("'" + VOID_CLASS_NAME + "' must have an array depth of zero: " + arrayDepth + '.');
-		}
-		// array
-		StringBuilder sb = new StringBuilder(100);
-		for (int i = arrayDepth; i-- > 0; ) {
-			sb.append(ARRAY_INDICATOR);
-		}
-
-		// look for a primitive first
-		Primitive pcc = null;
-		if (elementTypeName.length() <= maxPrimitiveClassNameLength()) {  // performance tweak
-			Primitive[] codes = primitives();
-			for (int i = codes.length; i-- > 0; ) {
-				if (codes[i].javaClass.getName().equals(elementTypeName)) {
-					pcc = codes[i];
-					break;
-				}
-			}
-		}
-
-		if (pcc == null) {
-			sb.append(REFERENCE_CLASS_CODE);
-			sb.append(elementTypeName);
-			sb.append(REFERENCE_CLASS_NAME_DELIMITER);
-		} else {
-			sb.append(pcc.code);
-		}
-
-		return sb.toString();
-	}
-
-	private static int maxPrimitiveClassNameLength() {
-		if (MAX_PRIMITIVE_CLASS_NAME_LENGTH == -1) {
-			MAX_PRIMITIVE_CLASS_NAME_LENGTH = calculateMaxPrimitiveClassNameLength();
-		}
-		return MAX_PRIMITIVE_CLASS_NAME_LENGTH;
-	}
-
-	private static int calculateMaxPrimitiveClassNameLength() {
-		int max = -1;
-		Primitive[] codes = primitives();
-		for (int i = codes.length; i-- > 0; ) {
-			int len = codes[i].javaClass.getName().length();
-			if (len > max) {
-				max = len;
-			}
-		}
-		return max;
-	}
-
-	private static int maxPrimitiveWrapperClassNameLength() {
-		if (MAX_PRIMITIVE_WRAPPER_CLASS_NAME_LENGTH == -1) {
-			MAX_PRIMITIVE_WRAPPER_CLASS_NAME_LENGTH = calculateMaxPrimitiveWrapperClassNameLength();
-		}
-		return MAX_PRIMITIVE_WRAPPER_CLASS_NAME_LENGTH;
-	}
-
-	private static int calculateMaxPrimitiveWrapperClassNameLength() {
-		int max = -1;
-		Primitive[] codes = primitives();
-		for (int i = codes.length; i-- > 0; ) {
-			int len = codes[i].wrapperClass.getName().length();
-			if (len > max) {
-				max = len;
-			}
-		}
-		return max;
-	}
-
-	private static Primitive[] primitives() {
-		if (PRIMITIVES == null) {
-			PRIMITIVES = buildPrimitives();
-		}
-		return PRIMITIVES;
-	}
-	
-	/**
-	 * NB: void.class.isPrimitive() == true
-	 */
-	private static Primitive[] buildPrimitives() {
-		Primitive[] result = new Primitive[9];
-		result[0] = new Primitive(BYTE_CODE, java.lang.Byte.class);
-		result[1] = new Primitive(CHAR_CODE, java.lang.Character.class);
-		result[2] = new Primitive(DOUBLE_CODE, java.lang.Double.class);
-		result[3] = new Primitive(FLOAT_CODE, java.lang.Float.class);
-		result[4] = new Primitive(INT_CODE, java.lang.Integer.class);
-		result[5] = new Primitive(LONG_CODE, java.lang.Long.class);
-		result[6] = new Primitive(SHORT_CODE, java.lang.Short.class);
-		result[7] = new Primitive(BOOLEAN_CODE, java.lang.Boolean.class);
-		result[8] = new Primitive(VOID_CODE, java.lang.Void.class);
-		return result;
-	}
-
-	/**
-	 * Suppress default constructor, ensuring non-instantiability.
-	 */
-	private ClassTools() {
-		super();
-		throw new UnsupportedOperationException();
-	}
-
-
-	// ********** member classes **********
-
-	private static class Primitive {
-		final char code;
-		final Class<?> javaClass;
-		final Class<?> wrapperClass;
-		private static final String WRAPPER_CLASS_TYPE_FIELD_NAME = "TYPE";
-		// e.g. java.lang.Boolean.TYPE => boolean.class
-		Primitive(char code, Class<?> wrapperClass) {
-			this.code = code;
-			this.wrapperClass = wrapperClass;
-			this.javaClass = (Class<?>) staticFieldValue(wrapperClass, WRAPPER_CLASS_TYPE_FIELD_NAME);
-		}
-	}
-
-	private static class TypeDeclaration {
-		final String elementTypeName;
-		final int arrayDepth;
-		TypeDeclaration(String elementTypeName, int arrayDepth) {
-			this.elementTypeName = elementTypeName;
-			this.arrayDepth = arrayDepth;
-		}
-	}
-
-}
diff --git a/jpa/tests/org.eclipse.jpt.utility.tests/src/org/eclipse/jpt/utility/tests/internal/BitToolsTests.java b/jpa/tests/org.eclipse.jpt.utility.tests/src/org/eclipse/jpt/utility/tests/internal/BitToolsTests.java
deleted file mode 100644
index 8f2e9b8..0000000
--- a/jpa/tests/org.eclipse.jpt.utility.tests/src/org/eclipse/jpt/utility/tests/internal/BitToolsTests.java
+++ /dev/null
@@ -1,243 +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.utility.tests.internal;
-
-import junit.framework.TestCase;
-import org.eclipse.jpt.utility.internal.BitTools;
-
-public class BitToolsTests extends TestCase {
-
-	public BitToolsTests(String name) {
-		super(name);
-	}
-
-	public void testFlagIsSetIntInt() {
-		assertTrue(BitTools.flagIsSet(0x0003, 0x0001));
-		assertTrue(BitTools.flagIsSet(0x0303, 0x0001));
-		assertTrue(BitTools.flagIsSet(0x0303, 0x0101));
-		assertTrue(BitTools.flagIsSet(0x0303, 0x0103));
-
-		assertFalse(BitTools.flagIsSet(0x0303, 0x1103));
-		assertFalse(BitTools.flagIsSet(0x0000, 0x1103));
-	}
-
-	public void testFlagIsOffIntInt() {
-		assertFalse(BitTools.flagIsOff(0x0003, 0x0001));
-		assertFalse(BitTools.flagIsOff(0x0303, 0x0001));
-		assertFalse(BitTools.flagIsOff(0x0303, 0x0101));
-		assertFalse(BitTools.flagIsOff(0x0303, 0x0103));
-
-		assertTrue(BitTools.flagIsOff(0x2204, 0x1103));
-		assertTrue(BitTools.flagIsOff(0x0000, 0x1103));
-	}
-
-	public void testOnlyFlagIsSetIntInt() {
-		assertFalse(BitTools.onlyFlagIsSet(0x0003, 0x0001));
-		assertTrue(BitTools.onlyFlagIsSet(0x0001, 0x0001));
-
-		assertFalse(BitTools.onlyFlagIsSet(0x0303, 0x0001));
-		assertTrue(BitTools.onlyFlagIsSet(0x0001, 0x0001));
-
-		assertFalse(BitTools.onlyFlagIsSet(0x0303, 0x0101));
-		assertTrue(BitTools.onlyFlagIsSet(0x0101, 0x0101));
-
-		assertFalse(BitTools.onlyFlagIsSet(0x0303, 0x0103));
-		assertTrue(BitTools.onlyFlagIsSet(0x0103, 0x0103));
-
-		assertFalse(BitTools.onlyFlagIsSet(0x0303, 0x1103));
-		assertTrue(BitTools.onlyFlagIsSet(0x1103, 0x1103));
-
-		assertFalse(BitTools.onlyFlagIsSet(0x0000, 0x1103));
-		assertTrue(BitTools.onlyFlagIsSet(0x0103, 0x0103));
-	}
-
-	public void testOnlyFlagIsOffIntInt() {
-		assertFalse(BitTools.onlyFlagIsOff(0x0003, 0x0001));
-		assertFalse(BitTools.onlyFlagIsOff(0x0303, 0x0001));
-		assertTrue(BitTools.onlyFlagIsOff(0xFFFFFFFE, 0x0001));
-
-		assertFalse(BitTools.onlyFlagIsOff(0x0303, 0x0101));
-		assertTrue(BitTools.onlyFlagIsOff(0xFFFFFEFE, 0x0101));
-
-		assertFalse(BitTools.onlyFlagIsOff(0x0303, 0x0103));
-		assertTrue(BitTools.onlyFlagIsOff(0xFFFFFEFC, 0x0103));
-
-		assertFalse(BitTools.onlyFlagIsOff(0x0303, 0x1103));
-		assertTrue(BitTools.onlyFlagIsOff(0xFFFFEEFC, 0x1103));
-	}
-
-	public void testAllFlagsAreSetIntInt() {
-		assertTrue(BitTools.allFlagsAreSet(0x0003, 0x0001));
-		assertTrue(BitTools.allFlagsAreSet(0x0303, 0x0001));
-		assertTrue(BitTools.allFlagsAreSet(0x0303, 0x0101));
-		assertTrue(BitTools.allFlagsAreSet(0x0303, 0x0103));
-
-		assertFalse(BitTools.allFlagsAreSet(0x0303, 0x1103));
-		assertFalse(BitTools.allFlagsAreSet(0x0000, 0x1103));
-	}
-
-	public void testAllFlagsAreOffIntInt() {
-		assertFalse(BitTools.allFlagsAreOff(0x0003, 0x0001));
-		assertFalse(BitTools.allFlagsAreOff(0x0303, 0x0001));
-		assertFalse(BitTools.allFlagsAreOff(0x0303, 0x0101));
-		assertFalse(BitTools.allFlagsAreOff(0x0303, 0x0103));
-
-		assertTrue(BitTools.allFlagsAreOff(0x2204, 0x1103));
-		assertTrue(BitTools.allFlagsAreOff(0x0000, 0x1103));
-	}
-
-	public void testOnlyFlagsAreSetIntInt() {
-		assertFalse(BitTools.onlyFlagsAreSet(0x0003, 0x0001));
-		assertTrue(BitTools.onlyFlagsAreSet(0x0001, 0x0001));
-
-		assertFalse(BitTools.onlyFlagsAreSet(0x0303, 0x0001));
-		assertTrue(BitTools.onlyFlagsAreSet(0x0001, 0x0001));
-
-		assertFalse(BitTools.onlyFlagsAreSet(0x0303, 0x0101));
-		assertTrue(BitTools.onlyFlagsAreSet(0x0101, 0x0101));
-
-		assertFalse(BitTools.onlyFlagsAreSet(0x0303, 0x0103));
-		assertTrue(BitTools.onlyFlagsAreSet(0x0103, 0x0103));
-
-		assertFalse(BitTools.onlyFlagsAreSet(0x0303, 0x1103));
-		assertTrue(BitTools.onlyFlagsAreSet(0x1103, 0x1103));
-
-		assertFalse(BitTools.onlyFlagsAreSet(0x0000, 0x1103));
-		assertTrue(BitTools.onlyFlagsAreSet(0x0103, 0x0103));
-	}
-
-	public void testOnlyFlagsAreOffIntInt() {
-		assertFalse(BitTools.onlyFlagsAreOff(0x0003, 0x0001));
-		assertFalse(BitTools.onlyFlagsAreOff(0x0303, 0x0001));
-		assertTrue(BitTools.onlyFlagsAreOff(0xFFFFFFFE, 0x0001));
-
-		assertFalse(BitTools.onlyFlagsAreOff(0x0303, 0x0101));
-		assertTrue(BitTools.onlyFlagsAreOff(0xFFFFFEFE, 0x0101));
-
-		assertFalse(BitTools.onlyFlagsAreOff(0x0303, 0x0103));
-		assertTrue(BitTools.onlyFlagsAreOff(0xFFFFFEFC, 0x0103));
-
-		assertFalse(BitTools.onlyFlagsAreOff(0x0303, 0x1103));
-		assertTrue(BitTools.onlyFlagsAreOff(0xFFFFEEFC, 0x1103));
-	}
-
-	public void testAnyFlagsAreSetIntInt() {
-		assertTrue(BitTools.anyFlagsAreSet(0x0003, 0x0001));
-		assertTrue(BitTools.anyFlagsAreSet(0xFFFF, 0x0001));
-		assertTrue(BitTools.anyFlagsAreSet(0x0003, 0xFFFF));
-
-		assertFalse(BitTools.anyFlagsAreSet(0x0303, 0x1010));
-		assertFalse(BitTools.anyFlagsAreSet(0x0000, 0xFFFF));
-	}
-
-	public void testAnyFlagsAreOffIntInt() {
-		assertTrue(BitTools.anyFlagsAreOff(0x333E, 0x0001));
-		assertTrue(BitTools.anyFlagsAreOff(0xFFFE, 0x0001));
-		assertTrue(BitTools.anyFlagsAreOff(0x0003, 0xFFFF));
-
-		assertFalse(BitTools.anyFlagsAreOff(0x7373, 0x1010));
-		assertFalse(BitTools.anyFlagsAreOff(0xFFFF, 0xFFFF));
-	}
-
-	public void testAllFlagsAreSetIntIntArray() {
-		assertTrue(BitTools.allFlagsAreSet(0x0003, new int[] { 0x0001 }));
-		assertTrue(BitTools.allFlagsAreSet(0x0303, new int[] { 0x0001 }));
-		assertTrue(BitTools.allFlagsAreSet(0x0303, new int[] { 0x0100, 0x0001 }));
-		assertTrue(BitTools.allFlagsAreSet(0x0303, new int[] { 0x0100, 0x0002, 0x0001 }));
-
-		assertFalse(BitTools.allFlagsAreSet(0x0303, new int[] { 0x1000, 0x0100, 0x0002, 0x0001 }));
-		assertFalse(BitTools.allFlagsAreSet(0x0000, new int[] { 0x1000, 0x0100, 0x0002, 0x0001 }));
-	}
-
-	public void testAllFlagsAreOffIntIntArray() {
-		assertFalse(BitTools.allFlagsAreOff(0x0003, new int[] { 0x0001 }));
-		assertFalse(BitTools.allFlagsAreOff(0x0303, new int[] { 0x0001 }));
-		assertFalse(BitTools.allFlagsAreOff(0x0303, new int[] { 0x0100, 0x0001 }));
-		assertFalse(BitTools.allFlagsAreOff(0x0303, new int[] { 0x0100, 0x0002, 0x0001 }));
-
-		assertTrue(BitTools.allFlagsAreOff(0x0303, new int[] { 0x1000, 0x0400, 0x0020, 0x0000 }));
-		assertTrue(BitTools.allFlagsAreOff(0x0000, new int[] { 0x1000, 0x0100, 0x0002, 0x0001 }));
-	}
-
-	public void testOnlyFlagsAreSetIntIntArray() {
-		assertFalse(BitTools.onlyFlagsAreSet(0x0003, new int[] { 0x001, 0x0000, 0x0000, 0x0001 }));
-		assertTrue(BitTools.onlyFlagsAreSet(0x0001, new int[] { 0x001, 0x0000, 0x0000, 0x0001 }));
-
-		assertFalse(BitTools.onlyFlagsAreSet(0x0303, new int[] { 0x001, 0x0000, 0x0000, 0x0001 }));
-		assertTrue(BitTools.onlyFlagsAreSet(0x0001, new int[] { 0x001, 0x0000, 0x0000, 0x0001 }));
-
-		assertFalse(BitTools.onlyFlagsAreSet(0x0303, new int[] { 0x001, 0x0100, 0x0000, 0x0001 }));
-		assertTrue(BitTools.onlyFlagsAreSet(0x0101, new int[] { 0x001, 0x0100, 0x0000, 0x0001 }));
-
-		assertFalse(BitTools.onlyFlagsAreSet(0x0303, new int[] { 0x001, 0x0100, 0x0002, 0x0001 }));
-		assertTrue(BitTools.onlyFlagsAreSet(0x0103, new int[] { 0x001, 0x0100, 0x0002, 0x0001 }));
-
-		assertFalse(BitTools.onlyFlagsAreSet(0x0303, new int[] { 0x011, 0x0100, 0x0002, 0x0001 }));
-		assertTrue(BitTools.onlyFlagsAreSet(0x1103, new int[] { 0x1100, 0x0100, 0x0002, 0x0001 }));
-
-		assertFalse(BitTools.onlyFlagsAreSet(0x0000, new int[] { 0x011, 0x0100, 0x0002, 0x0001 }));
-		assertTrue(BitTools.onlyFlagsAreSet(0x0103, new int[] { 0x0101, 0x0100, 0x0002, 0x0001 }));
-	}
-
-	public void testOnlyFlagsAreOffIntIntArray() {
-		assertFalse(BitTools.onlyFlagsAreOff(0x0003, new int[] { 0x001, 0x0000, 0x0000, 0x0001 }));
-		assertFalse(BitTools.onlyFlagsAreOff(0x0303, new int[] { 0x001, 0x0000, 0x0000, 0x0001 }));
-		assertTrue(BitTools.onlyFlagsAreOff(0xFFFFFFFE, new int[] { 0x001, 0x0000, 0x0000, 0x0001 }));
-
-		assertFalse(BitTools.onlyFlagsAreOff(0x0303, new int[] { 0x001, 0x0100, 0x0000, 0x0001 }));
-		assertTrue(BitTools.onlyFlagsAreOff(0xFFFFFEFE, new int[] { 0x001, 0x0100, 0x0000, 0x0001 }));
-
-		assertFalse(BitTools.onlyFlagsAreOff(0x0303, new int[] { 0x001, 0x0100, 0x0002, 0x0001 }));
-		assertTrue(BitTools.onlyFlagsAreOff(0xFFFFFEFC, new int[] { 0x001, 0x0100, 0x0002, 0x0001 }));
-
-		assertFalse(BitTools.onlyFlagsAreOff(0x0303, new int[] { 0x1100, 0x0100, 0x0002, 0x0001 }));
-		assertTrue(BitTools.onlyFlagsAreOff(0xFFFFEEFC, new int[] { 0x1100, 0x0100, 0x0002, 0x0001 }));
-	}
-
-	public void testAnyFlagsAreSetIntIntArray() {
-		assertTrue(BitTools.anyFlagsAreSet(0x0003, new int[] { 0x0001 }));
-		assertTrue(BitTools.anyFlagsAreSet(0xFFFF, new int[] { 0x0001 }));
-		assertTrue(BitTools.anyFlagsAreSet(0x0303, new int[] { 0xF000, 0x0F00, 0x00F0, 0x000F }));
-
-		assertFalse(BitTools.anyFlagsAreSet(0x0303, new int[] { 0x1000, 0x0010 }));
-		assertFalse(BitTools.anyFlagsAreSet(0x0000, new int[] { 0xF000, 0x0F00, 0x00F0, 0x000F }));
-	}
-
-	public void testAnyFlagsAreOffIntIntArray() {
-		assertFalse(BitTools.anyFlagsAreOff(0x0003, new int[] { 0x0001 }));
-		assertFalse(BitTools.anyFlagsAreOff(0xFFFF, new int[] { 0x0001 }));
-		assertFalse(BitTools.anyFlagsAreOff(0x0303, new int[] { 0x0100, 0x0200, 0x0003, 0x0002 }));
-
-		assertTrue(BitTools.anyFlagsAreOff(0x0303, new int[] { 0x0100, 0x0010 }));
-		assertTrue(BitTools.anyFlagsAreOff(0x0000, new int[] { 0xF000, 0x0F00, 0x00F0, 0x000F }));
-	}
-
-	public void testOrFlags() {
-		assertEquals(0x0001, BitTools.orFlags(new int[] { 0x0001, 0x0000 }));
-		assertEquals(0x0011, BitTools.orFlags(new int[] { 0x0001, 0x0011 }));
-		assertEquals(0xF011, BitTools.orFlags(new int[] { 0x0001, 0x0011, 0xF000 }));
-	}
-
-	public void testAndFlags() {
-		assertEquals(0x0001, BitTools.andFlags(new int[] { 0x0001, 0x0001 }));
-		assertEquals(0x0001, BitTools.andFlags(new int[] { 0x0001, 0x0011 }));
-		assertEquals(0x0000, BitTools.andFlags(new int[] { 0x0001, 0x0011, 0xF000 }));
-		assertEquals(0x0001, BitTools.andFlags(new int[] { 0x0001, 0x0011, 0xF001 }));
-	}
-
-	public void testXorFlags() {
-		assertEquals(0x0001, BitTools.xorFlags(new int[] { 0x0001, 0x0000 }));
-		assertEquals(0x0010, BitTools.xorFlags(new int[] { 0x0001, 0x0011 }));
-		assertEquals(0xF010, BitTools.xorFlags(new int[] { 0x0001, 0x0011, 0xF000 }));
-		assertEquals(0xFF11, BitTools.xorFlags(new int[] { 0x0001, 0x0011, 0xF000, 0x0F01 }));
-		assertEquals(0xF010, BitTools.xorFlags(new int[] { 0x0001, 0x0011, 0xF000, 0x0F01, 0x0F01 }));
-	}
-
-}
diff --git a/jpa/tests/org.eclipse.jpt.utility.tests/src/org/eclipse/jpt/utility/tests/internal/BooleanHolderTests.java b/jpa/tests/org.eclipse.jpt.utility.tests/src/org/eclipse/jpt/utility/tests/internal/BooleanHolderTests.java
deleted file mode 100644
index 106eae1..0000000
--- a/jpa/tests/org.eclipse.jpt.utility.tests/src/org/eclipse/jpt/utility/tests/internal/BooleanHolderTests.java
+++ /dev/null
@@ -1,80 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.utility.tests.internal;
-
-import junit.framework.TestCase;
-import org.eclipse.jpt.utility.internal.BooleanHolder;
-
-public class BooleanHolderTests extends TestCase {
-
-	public BooleanHolderTests(String name) {
-		super(name);
-	}
-
-	public void testGetValue() {
-		BooleanHolder bh = new BooleanHolder(true);
-		assertTrue(bh.getValue());
-	}
-
-	public void testIsTrue() {
-		BooleanHolder bh = new BooleanHolder(true);
-		assertTrue(bh.isTrue());
-	}
-
-	public void testIsFalse() {
-		BooleanHolder bh = new BooleanHolder(true);
-		assertFalse(bh.isFalse());
-	}
-
-	public void testIs() {
-		BooleanHolder bh = new BooleanHolder(true);
-		assertTrue(bh.is(true));
-		assertFalse(bh.is(false));
-	}
-
-	public void testSetValue() {
-		BooleanHolder bh = new BooleanHolder(true);
-		assertTrue(bh.getValue());
-		bh.setValue(false);
-		assertFalse(bh.getValue());
-	}
-
-	public void testSetTrue() {
-		BooleanHolder bh = new BooleanHolder(false);
-		assertFalse(bh.getValue());
-		bh.setTrue();
-		assertTrue(bh.getValue());
-	}
-
-
-	public void testSetFalse() {
-		BooleanHolder bh = new BooleanHolder(true);
-		assertTrue(bh.getValue());
-		bh.setFalse();
-		assertFalse(bh.getValue());
-	}
-
-	public void testClone() {
-		BooleanHolder bh = new BooleanHolder(true);
-		BooleanHolder clone = (BooleanHolder) bh.clone();
-		assertTrue(clone.getValue());
-		assertEquals(bh, clone);
-	}
-
-	public void testEquals() {
-		BooleanHolder bh1 = new BooleanHolder(true);
-		BooleanHolder bh2 = new BooleanHolder(true);
-		assertEquals(bh1, bh2);
-
-		BooleanHolder bh3 = new BooleanHolder(false);
-		assertFalse(bh1.equals(bh3));
-	}
-
-}
diff --git a/jpa/tests/org.eclipse.jpt.utility.tests/src/org/eclipse/jpt/utility/tests/internal/ClassToolsTests.java b/jpa/tests/org.eclipse.jpt.utility.tests/src/org/eclipse/jpt/utility/tests/internal/ClassToolsTests.java
deleted file mode 100644
index a5be8e3..0000000
--- a/jpa/tests/org.eclipse.jpt.utility.tests/src/org/eclipse/jpt/utility/tests/internal/ClassToolsTests.java
+++ /dev/null
@@ -1,648 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005, 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.utility.tests.internal;
-
-import java.lang.reflect.Array;
-import java.lang.reflect.Field;
-import java.lang.reflect.Method;
-import java.util.HashMap;
-import java.util.Iterator;
-import java.util.Map;
-import java.util.Vector;
-import java.util.Map.Entry;
-import junit.framework.TestCase;
-import org.eclipse.jpt.utility.internal.ClassTools;
-import org.eclipse.jpt.utility.internal.CollectionTools;
-import org.eclipse.jpt.utility.internal.iterators.TransformationIterator;
-
-@SuppressWarnings("nls")
-public class ClassToolsTests extends TestCase {
-
-	private static String testStaticField;
-
-	public ClassToolsTests(String name) {
-		super(name);
-	}
-
-	/**
-	 * Return the compiler-generated class name. The Eclipse compiler generates
-	 * "local" classes with names in the form "com.foo.Outer$1$Local"; while the
-	 * JDK compiler generates "com.foo.Outer$1Local". There might be other
-	 * differences.... ~bjv
-	 */
-	public static String compilerDependentClassNameFor(String className) {
-		int index = className.indexOf("$1$");
-		if (index == -1) {
-			return className;
-		}
-		try {
-			Class.forName(className);
-		} catch (ClassNotFoundException ex) {
-			return className.substring(0, index + 2) + className.substring(index + 3);
-		}
-		return className;
-	}
-
-	private static String munge(String className) {
-		return compilerDependentClassNameFor(className);
-	}
-
-	public void testAllFields() {
-		int fieldCount = 0;
-		fieldCount += java.util.Vector.class.getDeclaredFields().length;
-		fieldCount += java.util.AbstractList.class.getDeclaredFields().length;
-		fieldCount += java.util.AbstractCollection.class.getDeclaredFields().length;
-		fieldCount += java.lang.Object.class.getDeclaredFields().length;
-		Field[] fields = ClassTools.allFields(java.util.Vector.class);
-		assertEquals(fieldCount, fields.length);
-		assertTrue(CollectionTools.contains(this.names(fields), "modCount"));
-		assertTrue(CollectionTools.contains(this.names(fields), "serialVersionUID"));
-		assertTrue(CollectionTools.contains(this.names(fields), "capacityIncrement"));
-		assertTrue(CollectionTools.contains(this.names(fields), "elementCount"));
-		assertTrue(CollectionTools.contains(this.names(fields), "elementData"));
-		assertTrue(fields[0].isAccessible());
-	}
-
-	public void testAllMethods() {
-		int methodCount = 0;
-		methodCount += java.util.Vector.class.getDeclaredMethods().length;
-		methodCount += java.util.AbstractList.class.getDeclaredMethods().length;
-		methodCount += java.util.AbstractCollection.class.getDeclaredMethods().length;
-		methodCount += java.lang.Object.class.getDeclaredMethods().length;
-		Method[] methods = ClassTools.allMethods(java.util.Vector.class);
-		assertEquals(methodCount, methods.length);
-		assertTrue(CollectionTools.contains(this.names(methods), "wait"));
-		assertTrue(CollectionTools.contains(this.names(methods), "addElement"));
-		assertTrue(methods[0].isAccessible());
-	}
-
-	public void testNewInstanceClass() {
-		Vector<?> v = ClassTools.newInstance(java.util.Vector.class);
-		assertNotNull(v);
-		assertEquals(0, v.size());
-	}
-
-	public void testNewInstanceClassClassObject() {
-		int initialCapacity = 200;
-		Vector<?> v = ClassTools.newInstance(java.util.Vector.class, int.class, new Integer(initialCapacity));
-		assertNotNull(v);
-		assertEquals(0, v.size());
-		Object[] elementData = (Object[]) ClassTools.fieldValue(v, "elementData");
-		assertEquals(initialCapacity, elementData.length);
-	}
-
-	public void testNewInstanceClassClassArrayObjectArray() {
-		int initialCapacity = 200;
-		Class<?>[] parmTypes = new Class[1];
-		parmTypes[0] = int.class;
-		Object[] parms = new Object[1];
-		parms[0] = new Integer(initialCapacity);
-		Vector<?> v = ClassTools.newInstance(java.util.Vector.class, parmTypes, parms);
-		assertNotNull(v);
-		assertEquals(0, v.size());
-		Object[] elementData = (Object[]) ClassTools.fieldValue(v, "elementData");
-		assertEquals(initialCapacity, elementData.length);
-
-		parms[0] = new Integer(-1);
-		boolean exCaught = false;
-		try {
-			v = ClassTools.newInstance(java.util.Vector.class, parmTypes, parms);
-		} catch (RuntimeException ex) {
-			exCaught = true;
-		}
-		assertTrue("RuntimeException not thrown", exCaught);
-
-		parmTypes[0] = java.lang.String.class;
-		parms[0] = "foo";
-		exCaught = false;
-		try {
-			v = ClassTools.attemptNewInstance(java.util.Vector.class, parmTypes, parms);
-		} catch (NoSuchMethodException ex) {
-			exCaught = true;
-		}
-		assertTrue("NoSuchMethodException not thrown", exCaught);
-	}
-
-	public void testFieldValue() {
-		int initialCapacity = 200;
-		Vector<?> v = new Vector<Object>(initialCapacity);
-		Object[] elementData = (Object[]) ClassTools.fieldValue(v, "elementData");
-		assertEquals(initialCapacity, elementData.length);
-
-		// test inherited field
-		Integer modCountInteger = (Integer) ClassTools.fieldValue(v, "modCount");
-		int modCount = modCountInteger.intValue();
-		assertEquals(0, modCount);
-
-		boolean exCaught = false;
-		Object bogusFieldValue = null;
-		try {
-			bogusFieldValue = ClassTools.attemptToGetFieldValue(v, "bogusField");
-		} catch (NoSuchFieldException ex) {
-			exCaught = true;
-		}
-		assertTrue("NoSuchFieldException not thrown: " + bogusFieldValue, exCaught);
-	}
-
-	public void testExecuteMethodObjectString() {
-		Vector<String> v = new Vector<String>();
-		int size = ((Integer) ClassTools.executeMethod(v, "size")).intValue();
-		assertEquals(0, size);
-
-		v.addElement("foo");
-		size = ((Integer) ClassTools.executeMethod(v, "size")).intValue();
-		assertEquals(1, size);
-	}
-
-	public void testExecuteMethodObjectStringClassObject() {
-		Vector<String> v = new Vector<String>();
-		boolean booleanResult = ((Boolean) ClassTools.executeMethod(v, "add", Object.class, "foo")).booleanValue();
-		assertTrue(booleanResult);
-		assertTrue(v.contains("foo"));
-		Object voidResult = ClassTools.executeMethod(v, "addElement", Object.class, "bar");
-		assertNull(voidResult);
-	}
-
-	public void testExecuteMethodObjectStringClassArrayObjectArray() {
-		Vector<String> v = new Vector<String>();
-		Class<?>[] parmTypes = new Class[1];
-		parmTypes[0] = java.lang.Object.class;
-		Object[] parms = new Object[1];
-		parms[0] = "foo";
-		boolean booleanResult = ((Boolean) ClassTools.executeMethod(v, "add", parmTypes, parms)).booleanValue();
-		assertTrue(booleanResult);
-		assertTrue(v.contains("foo"));
-
-		boolean exCaught = false;
-		Object bogusMethodReturnValue = null;
-		try {
-			bogusMethodReturnValue = ClassTools.attemptToExecuteMethod(v, "bogusMethod", parmTypes, parms);
-		} catch (NoSuchMethodException ex) {
-			exCaught = true;
-		}
-		assertTrue("NoSuchMethodException not thrown: " + bogusMethodReturnValue, exCaught);
-	}
-
-	public void testExecuteStaticMethodClassString() {
-		Double randomObject = (Double) ClassTools.executeStaticMethod(java.lang.Math.class, "random");
-		assertNotNull(randomObject);
-		double random = randomObject.doubleValue();
-		assertTrue(random >= 0);
-		assertTrue(random < 1);
-	}
-
-	public void testExecuteStaticMethodClassStringClassObject() {
-		String s = (String) ClassTools.executeStaticMethod(java.lang.String.class, "valueOf", boolean.class, Boolean.TRUE);
-		assertNotNull(s);
-		assertEquals("true", s);
-	}
-
-	public void testExecuteStaticMethodClassStringClassArrayObjectArray() {
-		Class<?>[] parmTypes = new Class[1];
-		parmTypes[0] = boolean.class;
-		Object[] parms = new Object[1];
-		parms[0] = Boolean.TRUE;
-		String s = (String) ClassTools.executeStaticMethod(java.lang.String.class, "valueOf", parmTypes, parms);
-		assertNotNull(s);
-		assertEquals("true", s);
-
-		boolean exCaught = false;
-		Object bogusStaticMethodReturnValue = null;
-		try {
-			bogusStaticMethodReturnValue = ClassTools.attemptToExecuteStaticMethod(java.lang.String.class, "bogusStaticMethod", parmTypes, parms);
-		} catch (NoSuchMethodException ex) {
-			exCaught = true;
-		}
-		assertTrue("NoSuchMethodException not thrown: " + bogusStaticMethodReturnValue, exCaught);
-
-		// test non-static method
-		exCaught = false;
-		try {
-			bogusStaticMethodReturnValue = ClassTools.attemptToExecuteStaticMethod(java.lang.String.class, "toString");
-		} catch (NoSuchMethodException ex) {
-			exCaught = true;
-		}
-		assertTrue("NoSuchMethodException not thrown: " + bogusStaticMethodReturnValue, exCaught);
-	}
-
-	public void testSetFieldValue() {
-		Vector<String> v = new Vector<String>();
-		Object[] newElementData = new Object[5];
-		newElementData[0] = "foo";
-		ClassTools.setFieldValue(v, "elementData", newElementData);
-		ClassTools.setFieldValue(v, "elementCount", new Integer(1));
-		// test inherited field
-		ClassTools.setFieldValue(v, "modCount", new Integer(1));
-		assertTrue(v.contains("foo"));
-
-		boolean exCaught = false;
-		try {
-			ClassTools.attemptToSetFieldValue(v, "bogusField", "foo");
-		} catch (NoSuchFieldException ex) {
-			exCaught = true;
-		}
-		assertTrue("NoSuchFieldException not thrown", exCaught);
-	}
-
-	public void testSetStaticFieldValue() {
-		ClassTools.setStaticFieldValue(this.getClass(), "testStaticField", "new value");
-		assertEquals(testStaticField, "new value");
-
-		boolean exCaught = false;
-		try {
-			ClassTools.attemptToSetStaticFieldValue(this.getClass(), "bogusStaticField", "new value");
-		} catch (NoSuchFieldException ex) {
-			exCaught = true;
-		}
-		assertTrue("NoSuchFieldException not thrown", exCaught);
-	}
-
-	public void testShortName() {
-		assertEquals("Vector", ClassTools.shortClassNameForObject(new java.util.Vector<Object>()));
-		assertEquals("Vector", ClassTools.shortNameFor(java.util.Vector.class));
-	}
-
-	public void testNestedName() {
-		Map<String, String> map = new HashMap<String, String>();
-		map.put("foo", "bar");
-		Entry<String, String> entry = map.entrySet().iterator().next();
-		assertEquals("Entry", ClassTools.nestedClassNameForObject(entry));
-		assertEquals("Entry", ClassTools.nestedNameFor(java.util.Map.Entry.class));
-	}
-
-	public void testPackageName() {
-		assertEquals("java.util", ClassTools.packageNameFor(java.util.Vector.class));
-		assertEquals("java.util", ClassTools.packageNameFor(java.util.Map.Entry.class));
-	}
-
-	public void testArrayDepthFor() {
-		assertEquals(0, ClassTools.arrayDepthFor(java.util.Vector.class));
-		assertEquals(0, ClassTools.arrayDepthFor(int.class));
-		assertEquals(0, ClassTools.arrayDepthFor(void.class));
-		assertEquals(1, ClassTools.arrayDepthFor(java.util.Vector[].class));
-		assertEquals(1, ClassTools.arrayDepthFor(int[].class));
-		assertEquals(3, ClassTools.arrayDepthFor(java.util.Vector[][][].class));
-		assertEquals(3, ClassTools.arrayDepthFor(int[][][].class));
-	}
-
-	public void testArrayDepthForObject() {
-		assertEquals(0, ClassTools.arrayDepthForObject(new java.util.Vector<Object>()));
-		assertEquals(1, ClassTools.arrayDepthForObject(new java.util.Vector[0]));
-		assertEquals(1, ClassTools.arrayDepthForObject(new int[0]));
-		assertEquals(3, ClassTools.arrayDepthForObject(new java.util.Vector[0][0][0]));
-		assertEquals(3, ClassTools.arrayDepthForObject(new int[0][0][0]));
-	}
-
-	public void testArrayDepthForClassNamed() {
-		assertEquals(0, ClassTools.arrayDepthForClassNamed(java.util.Vector.class.getName()));
-		assertEquals(0, ClassTools.arrayDepthForClassNamed(int.class.getName()));
-		assertEquals(0, ClassTools.arrayDepthForClassNamed(void.class.getName()));
-		assertEquals(1, ClassTools.arrayDepthForClassNamed(java.util.Vector[].class.getName()));
-		assertEquals(1, ClassTools.arrayDepthForClassNamed(int[].class.getName()));
-		assertEquals(3, ClassTools.arrayDepthForClassNamed(java.util.Vector[][][].class.getName()));
-		assertEquals(3, ClassTools.arrayDepthForClassNamed(int[][][].class.getName()));
-	}
-
-	public void testElementTypeFor() {
-		assertEquals(java.util.Vector.class, ClassTools.elementTypeFor(java.util.Vector.class));
-		assertEquals(int.class, ClassTools.elementTypeFor(int.class));
-		assertEquals(void.class, ClassTools.elementTypeFor(void.class));
-		assertEquals(java.util.Vector.class, ClassTools.elementTypeFor(java.util.Vector[].class));
-		assertEquals(int.class, ClassTools.elementTypeFor(int[].class));
-		assertEquals(java.util.Vector.class, ClassTools.elementTypeFor(java.util.Vector[][][].class));
-		assertEquals(int.class, ClassTools.elementTypeFor(int[][][].class));
-	}
-
-	public void testElementTypeForObject() {
-		assertEquals(java.util.Vector.class, ClassTools.elementTypeForObject(new java.util.Vector<Object>()));
-		assertEquals(java.util.Vector.class, ClassTools.elementTypeForObject(new java.util.Vector[0]));
-		assertEquals(int.class, ClassTools.elementTypeForObject(new int[0]));
-		assertEquals(java.util.Vector.class, ClassTools.elementTypeForObject(new java.util.Vector[0][0][0]));
-		assertEquals(int.class, ClassTools.elementTypeForObject(new int[0][0][0]));
-	}
-
-	public void testElementTypeNameFor() {
-		assertEquals(java.util.Vector.class.getName(), ClassTools.elementTypeNameFor(java.util.Vector.class));
-		assertEquals(int.class.getName(), ClassTools.elementTypeNameFor(int.class));
-		assertEquals(void.class.getName(), ClassTools.elementTypeNameFor(void.class));
-		assertEquals(java.util.Vector.class.getName(), ClassTools.elementTypeNameFor(java.util.Vector[].class));
-		assertEquals(int.class.getName(), ClassTools.elementTypeNameFor(int[].class));
-		assertEquals(java.util.Vector.class.getName(), ClassTools.elementTypeNameFor(java.util.Vector[][][].class));
-		assertEquals(int.class.getName(), ClassTools.elementTypeNameFor(int[][][].class));
-	}
-
-	public void testElementTypeNameForClassNamed() {
-		assertEquals(java.util.Vector.class.getName(), ClassTools.elementTypeNameForClassNamed(java.util.Vector.class.getName()));
-		assertEquals(int.class.getName(), ClassTools.elementTypeNameForClassNamed(int.class.getName()));
-		assertEquals(void.class.getName(), ClassTools.elementTypeNameForClassNamed(void.class.getName()));
-		assertEquals(java.util.Vector.class.getName(), ClassTools.elementTypeNameForClassNamed(java.util.Vector[].class.getName()));
-		assertEquals(int.class.getName(), ClassTools.elementTypeNameForClassNamed(int[].class.getName()));
-		assertEquals(java.util.Vector.class.getName(), ClassTools.elementTypeNameForClassNamed(java.util.Vector[][][].class.getName()));
-		assertEquals(int.class.getName(), ClassTools.elementTypeNameForClassNamed(int[][][].class.getName()));
-	}
-
-	public void testClassCodes() {
-		assertEquals("byte", ClassTools.classNameForCode('B'));
-		assertEquals("char", ClassTools.classNameForCode('C'));
-		assertEquals("double", ClassTools.classNameForCode('D'));
-		assertEquals("float", ClassTools.classNameForCode('F'));
-		assertEquals("int", ClassTools.classNameForCode('I'));
-		assertEquals("long", ClassTools.classNameForCode('J'));
-		assertEquals("short", ClassTools.classNameForCode('S'));
-		assertEquals("boolean", ClassTools.classNameForCode('Z'));
-		assertEquals("void", ClassTools.classNameForCode('V'));
-
-		boolean exCaught = false;
-		try {
-			ClassTools.classNameForCode('X');
-		} catch (IllegalArgumentException ex) {
-			exCaught = true;
-		}
-		assertTrue("IllegalArgumentException not thrown", exCaught);
-	}
-
-	public void testClassNamedIsTopLevel() throws Exception {
-		assertTrue(ClassTools.classNamedIsTopLevel(java.util.Map.class.getName())); // top-level
-		assertFalse(ClassTools.classNamedIsTopLevel(java.util.Map.Entry.class.getName())); // member
-		assertFalse(ClassTools.classNamedIsTopLevel(Class.forName(munge(this.getClass().getName() + "$1$LocalClass")).getName())); // local
-		assertFalse(ClassTools.classNamedIsTopLevel(Class.forName("java.util.Vector$1").getName())); // anonymous
-
-		Object[] array = new java.util.Map[0]; // top-level
-		assertFalse(ClassTools.classNamedIsTopLevel(array.getClass().getName()));
-		array = new java.util.Map.Entry[0]; // member
-		assertFalse(ClassTools.classNamedIsTopLevel(array.getClass().getName()));
-		Class<?> localClass = Class.forName(munge(this.getClass().getName() + "$1$LocalClass")); // local
-		array = (Object[]) Array.newInstance(localClass, 0);
-		assertFalse(ClassTools.classNamedIsTopLevel(array.getClass().getName()));
-		Class<?> anonClass = Class.forName("java.util.Vector$1"); // local
-		array = (Object[]) Array.newInstance(anonClass, 0);
-		assertFalse(ClassTools.classNamedIsTopLevel(array.getClass().getName()));
-	}
-
-	public void testClassNamedIsMember() throws Exception {
-		assertFalse(ClassTools.classNamedIsMember(java.util.Map.class.getName())); // top-level
-		assertTrue(ClassTools.classNamedIsMember(java.util.Map.Entry.class.getName())); // member
-		assertFalse(ClassTools.classNamedIsMember(Class.forName(munge(this.getClass().getName() + "$1$LocalClass")).getName())); // local
-		assertFalse(ClassTools.classNamedIsMember(Class.forName("java.util.Vector$1").getName())); // anonymous
-
-		Object[] array = new java.util.Map[0]; // top-level
-		assertFalse(ClassTools.classNamedIsMember(array.getClass().getName()));
-		array = new java.util.Map.Entry[0]; // member
-		assertFalse(ClassTools.classNamedIsMember(array.getClass().getName()));
-		Class<?> localClass = Class.forName(munge(this.getClass().getName() + "$1$LocalClass")); // local
-		array = (Object[]) Array.newInstance(localClass, 0);
-		assertFalse(ClassTools.classNamedIsMember(array.getClass().getName()));
-		Class<?> anonClass = Class.forName("java.util.Vector$1"); // local
-		array = (Object[]) Array.newInstance(anonClass, 0);
-		assertFalse(ClassTools.classNamedIsMember(array.getClass().getName()));
-
-		// test a few edge cases
-		assertTrue(ClassTools.classNamedIsMember("java.util.Map$a1"));
-		assertTrue(ClassTools.classNamedIsMember("java.util.Map$a1$aaa$bbb"));
-		assertFalse(ClassTools.classNamedIsMember("java.util.Map$1a1$aaa"));
-		assertFalse(ClassTools.classNamedIsMember("java.util.Map$1a"));
-		assertTrue(ClassTools.classNamedIsMember("java.util.Map$a12345$b12345"));
-		assertFalse(ClassTools.classNamedIsMember("java.util.Map$12345a"));
-		assertFalse(ClassTools.classNamedIsMember("java.util.Map$333"));
-		assertFalse(ClassTools.classNamedIsMember("java.util.Map3$333"));
-	}
-
-	public void testClassNamedIsLocal() throws Exception {
-		class LocalClass {
-			void foo() {
-				System.getProperty("foo");
-			}
-		}
-		new LocalClass().foo();
-		assertFalse(ClassTools.classNamedIsLocal(java.util.Map.class.getName())); // top-level
-		assertFalse(ClassTools.classNamedIsLocal(java.util.Map.Entry.class.getName())); // member
-		assertTrue(ClassTools.classNamedIsLocal(Class.forName(munge(this.getClass().getName() + "$1$LocalClass")).getName())); // local
-		assertFalse(ClassTools.classNamedIsLocal(Class.forName("java.util.Vector$1").getName())); // anonymous
-
-		Object[] array = new java.util.Map[0]; // top-level
-		assertFalse(ClassTools.classNamedIsLocal(array.getClass().getName()));
-		array = new java.util.Map.Entry[0]; // member
-		assertFalse(ClassTools.classNamedIsLocal(array.getClass().getName()));
-		Class<?> localClass = Class.forName(munge(this.getClass().getName() + "$1$LocalClass")); // local
-		array = (Object[]) Array.newInstance(localClass, 0);
-		assertFalse(ClassTools.classNamedIsLocal(array.getClass().getName()));
-		Class<?> anonClass = Class.forName("java.util.Vector$1"); // local
-		array = (Object[]) Array.newInstance(anonClass, 0);
-		assertFalse(ClassTools.classNamedIsLocal(array.getClass().getName()));
-
-		// test a few edge cases
-		assertFalse(ClassTools.classNamedIsLocal("java.util.Map$a1"));
-		assertFalse(ClassTools.classNamedIsLocal("java.util.Map$a1$aaa$bbb"));
-		assertTrue(ClassTools.classNamedIsLocal("java.util.Map$11$aaa"));
-		assertTrue(ClassTools.classNamedIsLocal("java.util.Map$1$a")); // eclipse naming convention
-		assertTrue(ClassTools.classNamedIsLocal("java.util.Map$2$abc")); // eclipse naming convention
-		assertTrue(ClassTools.classNamedIsLocal("java.util.Map$2$abc1")); // eclipse naming convention
-		assertTrue(ClassTools.classNamedIsLocal("java.util.Map$1a")); // jdk naming convention
-		assertTrue(ClassTools.classNamedIsLocal("java.util.Map$2abc")); // jdk naming convention
-		assertTrue(ClassTools.classNamedIsLocal("java.util.Map$2abc1")); // jdk naming convention
-		assertFalse(ClassTools.classNamedIsLocal("java.util.Map$a12345$b12345"));
-		assertTrue(ClassTools.classNamedIsLocal("java.util.Map$12345$a1234"));
-		assertFalse(ClassTools.classNamedIsLocal("java.util.Map$333"));
-		assertFalse(ClassTools.classNamedIsLocal("java.util.Map3$333"));
-	}
-
-	public void testClassNamedIsAnonymous() throws Exception {
-		assertFalse(ClassTools.classNamedIsAnonymous(java.util.Map.class.getName())); // top-level
-		assertFalse(ClassTools.classNamedIsAnonymous(java.util.Map.Entry.class.getName())); // member
-		assertFalse(ClassTools.classNamedIsAnonymous(Class.forName(munge(this.getClass().getName() + "$1$LocalClass")).getName())); // local
-		assertTrue(ClassTools.classNamedIsAnonymous(Class.forName("java.util.Vector$1").getName())); // anonymous
-
-		Object[] array = new java.util.Map[0]; // top-level
-		assertFalse(ClassTools.classNamedIsAnonymous(array.getClass().getName()));
-		array = new java.util.Map.Entry[0]; // member
-		assertFalse(ClassTools.classNamedIsAnonymous(array.getClass().getName()));
-		Class<?> localClass = Class.forName(munge(this.getClass().getName() + "$1$LocalClass")); // local
-		array = (Object[]) Array.newInstance(localClass, 0);
-		assertFalse(ClassTools.classNamedIsAnonymous(array.getClass().getName()));
-		Class<?> anonClass = Class.forName("java.util.Vector$1"); // local
-		array = (Object[]) Array.newInstance(anonClass, 0);
-		assertFalse(ClassTools.classNamedIsAnonymous(array.getClass().getName()));
-
-		// test a few edge cases
-		assertFalse(ClassTools.classNamedIsAnonymous("java.util.Map$a1"));
-		assertFalse(ClassTools.classNamedIsAnonymous("java.util.Map$a1$aaa$bbb"));
-		assertFalse(ClassTools.classNamedIsAnonymous("java.util.Map$1a1$aaa"));
-		assertFalse(ClassTools.classNamedIsAnonymous("java.util.Map$1$a"));
-		assertFalse(ClassTools.classNamedIsAnonymous("java.util.Map$1a"));
-		assertFalse(ClassTools.classNamedIsAnonymous("java.util.Map$a12345$b12345"));
-		assertFalse(ClassTools.classNamedIsAnonymous("java.util.Map$12345$a1234"));
-		assertTrue(ClassTools.classNamedIsAnonymous("java.util.Map$333"));
-		assertTrue(ClassTools.classNamedIsAnonymous("java.util.Map3$333"));
-	}
-
-	public void testCodeForClass() {
-		assertEquals('I', ClassTools.codeForClass(int.class));
-		assertEquals('B', ClassTools.codeForClass(byte.class));
-	}
-
-	public void testCodeForClassNamed() {
-		assertEquals('I', ClassTools.codeForClassNamed(int.class.getName()));
-		assertEquals('I', ClassTools.codeForClassNamed("int"));
-		assertEquals('B', ClassTools.codeForClassNamed(byte.class.getName()));
-		assertEquals('B', ClassTools.codeForClassNamed("byte"));
-	}
-
-	public void testClassIsPrimitiveWrapperClass() {
-		assertTrue(ClassTools.classIsPrimitiveWrapperClass(java.lang.Void.class));
-		assertTrue(ClassTools.classIsPrimitiveWrapperClass(java.lang.Boolean.class));
-		assertTrue(ClassTools.classIsPrimitiveWrapperClass(java.lang.Integer.class));
-		assertTrue(ClassTools.classIsPrimitiveWrapperClass(java.lang.Float.class));
-
-		assertFalse(ClassTools.classIsPrimitiveWrapperClass(java.lang.String.class));
-		assertFalse(ClassTools.classIsPrimitiveWrapperClass(void.class));
-		assertFalse(ClassTools.classIsPrimitiveWrapperClass(int.class));
-	}
-
-	public void testClassIsVariablePrimitiveWrapperClass() {
-		assertFalse(ClassTools.classIsVariablePrimitiveWrapperClass(java.lang.Void.class));
-
-		assertTrue(ClassTools.classIsVariablePrimitiveWrapperClass(java.lang.Boolean.class));
-		assertTrue(ClassTools.classIsVariablePrimitiveWrapperClass(java.lang.Integer.class));
-		assertTrue(ClassTools.classIsVariablePrimitiveWrapperClass(java.lang.Float.class));
-
-		assertFalse(ClassTools.classIsVariablePrimitiveWrapperClass(java.lang.String.class));
-		assertFalse(ClassTools.classIsVariablePrimitiveWrapperClass(void.class));
-		assertFalse(ClassTools.classIsVariablePrimitiveWrapperClass(int.class));
-	}
-
-	public void testClassNamedIsPrimitive() {
-		assertTrue(void.class.isPrimitive());
-
-		assertTrue(ClassTools.classNamedIsPrimitive(void.class.getName()));
-		assertTrue(ClassTools.classNamedIsPrimitive(int.class.getName()));
-		assertTrue(ClassTools.classNamedIsPrimitive(float.class.getName()));
-		assertTrue(ClassTools.classNamedIsPrimitive(boolean.class.getName()));
-
-		assertFalse(ClassTools.classNamedIsPrimitive(java.lang.Number.class.getName()));
-		assertFalse(ClassTools.classNamedIsPrimitive(java.lang.String.class.getName()));
-		assertFalse(ClassTools.classNamedIsPrimitive(java.lang.Boolean.class.getName()));
-		assertFalse(ClassTools.classNamedIsPrimitive(java.lang.Integer.class.getName()));
-	}
-
-	public void testClassNamedIsVariablePrimitive() {
-		assertFalse(ClassTools.classNamedIsVariablePrimitive(void.class.getName()));
-
-		assertTrue(ClassTools.classNamedIsVariablePrimitive(int.class.getName()));
-		assertTrue(ClassTools.classNamedIsVariablePrimitive(float.class.getName()));
-		assertTrue(ClassTools.classNamedIsVariablePrimitive(boolean.class.getName()));
-
-		assertFalse(ClassTools.classNamedIsVariablePrimitive(java.lang.Number.class.getName()));
-		assertFalse(ClassTools.classNamedIsVariablePrimitive(java.lang.String.class.getName()));
-		assertFalse(ClassTools.classNamedIsVariablePrimitive(java.lang.Boolean.class.getName()));
-	}
-
-	public void testClassNamedIsVariablePrimitiveWrapperClass() {
-		assertFalse(ClassTools.classNamedIsVariablePrimitiveWrapperClass(java.lang.Void.class.getName()));
-
-		assertTrue(ClassTools.classNamedIsVariablePrimitiveWrapperClass(java.lang.Integer.class.getName()));
-		assertTrue(ClassTools.classNamedIsVariablePrimitiveWrapperClass(java.lang.Float.class.getName()));
-		assertTrue(ClassTools.classNamedIsVariablePrimitiveWrapperClass(java.lang.Boolean.class.getName()));
-
-		assertFalse(ClassTools.classNamedIsVariablePrimitiveWrapperClass(java.lang.Number.class.getName()));
-		assertFalse(ClassTools.classNamedIsVariablePrimitiveWrapperClass(java.lang.String.class.getName()));
-		assertFalse(ClassTools.classNamedIsVariablePrimitiveWrapperClass(java.lang.Object.class.getName()));
-	}
-
-	public void testClassForTypeDeclarationStringInt() throws Exception {
-		assertEquals(int.class, ClassTools.classForTypeDeclaration("int", 0));
-		assertEquals(int[].class, ClassTools.classForTypeDeclaration("int", 1));
-		assertEquals(int[][][].class, ClassTools.classForTypeDeclaration("int", 3));
-
-		assertEquals(Object.class, ClassTools.classForTypeDeclaration("java.lang.Object", 0));
-		assertEquals(Object[][][].class, ClassTools.classForTypeDeclaration("java.lang.Object", 3));
-
-		assertEquals(void.class, ClassTools.classForTypeDeclaration("void", 0));
-		try {
-			ClassTools.classForTypeDeclaration(void.class.getName(), 1);
-			fail("should not get here...");
-		} catch (ClassNotFoundException ex) {
-			// expected
-		}
-	}
-
-	public void testClassNameForTypeDeclarationString() throws Exception {
-		assertEquals("int", ClassTools.classNameForTypeDeclaration("int"));
-		assertEquals("[I", ClassTools.classNameForTypeDeclaration("int[]"));
-		assertEquals("[[I", ClassTools.classNameForTypeDeclaration("int [ ] [ ]"));
-
-		assertEquals("java.lang.Object", ClassTools.classNameForTypeDeclaration("java.lang.Object"));
-		assertEquals("[Ljava.lang.Object;", ClassTools.classNameForTypeDeclaration("java.lang.Object\t[]"));
-		assertEquals("[[Ljava.lang.Object;", ClassTools.classNameForTypeDeclaration("java.lang.Object\t[]\t[]"));
-	}
-
-	public void testArrayDepthForTypeDeclarationString() throws Exception {
-		assertEquals(0, ClassTools.arrayDepthForTypeDeclaration("java.lang.Object"));
-		assertEquals(1, ClassTools.arrayDepthForTypeDeclaration("java.lang.Object[]"));
-		assertEquals(3, ClassTools.arrayDepthForTypeDeclaration("java.lang.Object[][][]"));
-
-		assertEquals(0, ClassTools.arrayDepthForTypeDeclaration("int"));
-		assertEquals(1, ClassTools.arrayDepthForTypeDeclaration("int[]"));
-		assertEquals(3, ClassTools.arrayDepthForTypeDeclaration("int[][][]"));
-
-		assertEquals(0, ClassTools.arrayDepthForTypeDeclaration("float"));
-		assertEquals(1, ClassTools.arrayDepthForTypeDeclaration("float [ ]"));
-		assertEquals(3, ClassTools.arrayDepthForTypeDeclaration("float[] [] []"));
-	}
-
-	public void testElementTypeNameForTypeDeclarationString() throws Exception {
-		assertEquals("java.lang.Object", ClassTools.elementTypeNameForTypeDeclaration("java.lang.Object"));
-		assertEquals("java.lang.Object", ClassTools.elementTypeNameForTypeDeclaration("java.lang.Object[]"));
-		assertEquals("java.lang.Object", ClassTools.elementTypeNameForTypeDeclaration("java.lang.Object[][][]"));
-
-		assertEquals("int", ClassTools.elementTypeNameForTypeDeclaration("int"));
-		assertEquals("int", ClassTools.elementTypeNameForTypeDeclaration("int[]"));
-		assertEquals("int", ClassTools.elementTypeNameForTypeDeclaration("int[][][]"));
-
-		assertEquals("float", ClassTools.elementTypeNameForTypeDeclaration("float"));
-		assertEquals("float", ClassTools.elementTypeNameForTypeDeclaration("float [ ]"));
-		assertEquals("float", ClassTools.elementTypeNameForTypeDeclaration("float[] [] []"));
-	}
-
-	public void testClassNameForTypeDeclarationStringInt() throws Exception {
-		assertEquals(int.class.getName(), ClassTools.classNameForTypeDeclaration("int", 0));
-		assertEquals(int[].class.getName(), ClassTools.classNameForTypeDeclaration("int", 1));
-		assertEquals(int[][][].class.getName(), ClassTools.classNameForTypeDeclaration("int", 3));
-
-		assertEquals(Object.class.getName(), ClassTools.classNameForTypeDeclaration("java.lang.Object", 0));
-		assertEquals(Object[][][].class.getName(), ClassTools.classNameForTypeDeclaration("java.lang.Object", 3));
-
-		assertEquals(void.class.getName(), ClassTools.classNameForTypeDeclaration("void", 0));
-		try {
-			ClassTools.classNameForTypeDeclaration(void.class.getName(), 1);
-			fail("should not get here...");
-		} catch (IllegalArgumentException ex) {
-			// expected
-		}
-	}
-
-	private Iterator<String> names(Field[] fields) {
-		return new TransformationIterator<Field, String>(CollectionTools.iterator(fields)) {
-			@Override
-			protected String transform(Field field) {
-				return field.getName();
-			}
-		};
-	}
-
-	private Iterator<String> names(Method[] methods) {
-		return new TransformationIterator<Method, String>(CollectionTools.iterator(methods)) {
-			@Override
-			protected String transform(Method method) {
-				return method.getName();
-			}
-		};
-	}
-
-}
diff --git a/jpa/tests/org.eclipse.jpt.utility.tests/src/org/eclipse/jpt/utility/tests/internal/ClasspathTests.java b/jpa/tests/org.eclipse.jpt.utility.tests/src/org/eclipse/jpt/utility/tests/internal/ClasspathTests.java
deleted file mode 100644
index 4e19dac..0000000
--- a/jpa/tests/org.eclipse.jpt.utility.tests/src/org/eclipse/jpt/utility/tests/internal/ClasspathTests.java
+++ /dev/null
@@ -1,289 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005, 2008 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.utility.tests.internal;
-
-import java.io.File;
-import java.io.IOException;
-import java.net.URL;
-import java.util.jar.JarEntry;
-import java.util.jar.JarFile;
-import junit.framework.TestCase;
-import org.eclipse.jpt.utility.internal.Classpath;
-import org.eclipse.jpt.utility.internal.CollectionTools;
-
-public class ClasspathTests extends TestCase {
-	private static final String JAVA_HOME = System.getProperty("java.home");
-
-	public ClasspathTests(String name) {
-		super(name);
-	}
-
-	public void testCompressed() {
-		String path = "";
-
-		// no changes
-		path = new Classpath(this.morph("C:\\jdk\\i18n.jar;C:\\jdk\\rt.jar;C:\\jdk\\jaws.jar")).compressed().path();
-		assertEquals(this.morph("C:\\jdk\\i18n.jar;C:\\jdk\\rt.jar;C:\\jdk\\jaws.jar"), path);
-
-		path = new Classpath(this.morph("C:\\jdk\\i18n.jar;C:\\jdk\\rt.jar;C:\\jdk\\jaws.jar;C:\\jdk\\rt.jar;C:\\jdk\\jaws.jar")).compressed().path();
-		assertEquals(this.morph("C:\\jdk\\i18n.jar;C:\\jdk\\rt.jar;C:\\jdk\\jaws.jar"), path);
-
-		path = new Classpath(this.morph("C:\\jdk\\i18n.jar;C:\\jdk\\rt.jar;C:\\jdk\\i18n.jar;C:\\jdk\\jaws.jar")).compressed().path();
-		assertEquals(this.morph("C:\\jdk\\i18n.jar;C:\\jdk\\rt.jar;C:\\jdk\\jaws.jar"), path);
-
-		path = new Classpath(this.morph("C:\\jdk\\i18n.jar;C:\\jdk\\rt.jar;C:\\jdk\\jaws.jar;C:\\jdk\\i18n.jar;C:\\jdk\\rt.jar;C:\\jdk\\jaws.jar")).compressed().path();
-		assertEquals(this.morph("C:\\jdk\\i18n.jar;C:\\jdk\\rt.jar;C:\\jdk\\jaws.jar"), path);
-
-		path = new Classpath(this.morph("C:\\jdk\\i18n.jar;C:\\jdk\\i18n.jar;C:\\jdk\\i18n.jar;C:\\jdk\\i18n.jar;C:\\jdk\\rt.jar;C:\\jdk\\jaws.jar;C:\\jdk\\rt.jar;C:\\jdk\\jaws.jar")).compressed().path();
-		assertEquals(this.morph("C:\\jdk\\i18n.jar;C:\\jdk\\rt.jar;C:\\jdk\\jaws.jar"), path);
-
-		path = new Classpath(this.morph("C:\\jdk\\i18n.jar;C:\\jdk\\rt.jar;C:\\jdk\\jaws.jar;C:\\jdk\\rt.jar;;;;C:\\jdk\\jaws.jar;C:\\jdk\\jaws.jar;C:\\jdk\\rt.jar;;;")).compressed().path();
-		assertEquals(this.morph("C:\\jdk\\i18n.jar;C:\\jdk\\rt.jar;C:\\jdk\\jaws.jar"), path);
-
-		// no changes
-		path = new Classpath(this.morph("C:\\jdk\\i18n.jar;C:\\jdk\\rt.jar;C:\\jdk\\jaws.jar")).compressed().path();
-		assertEquals(this.morph("C:\\jdk\\i18n.jar;C:\\jdk\\rt.jar;C:\\jdk\\jaws.jar"), path);
-
-		path = new Classpath(this.morph("C:\\jdk\\i18n.jar;C:\\jdk\\rt.jar;C:\\jdk\\jaws.jar;C:\\jdk\\rt.jar;C:\\jdk\\jaws.jar")).compressed().path();
-		assertEquals(this.morph("C:\\jdk\\i18n.jar;C:\\jdk\\rt.jar;C:\\jdk\\jaws.jar"), path);
-
-		path = new Classpath(this.morph("C:\\jdk\\i18n.jar;C:\\jdk\\rt.jar;C:\\jdk\\..\\jdk\\i18n.jar;C:\\jdk\\jaws.jar")).compressed().path();
-		assertEquals(this.morph("C:\\jdk\\i18n.jar;C:\\jdk\\rt.jar;C:\\jdk\\jaws.jar"), path);
-
-		path = new Classpath(this.morph("C:\\jdk1\\jdk2\\jdk3\\i18n.jar;C:\\jdk\\rt.jar;C:\\jdk1\\jdk2\\jdk3\\..\\..\\..\\jdk1\\jdk2\\jdk3\\i18n.jar;C:\\jdk\\jaws.jar")).compressed().path();
-		assertEquals(this.morph("C:\\jdk1\\jdk2\\jdk3\\i18n.jar;C:\\jdk\\rt.jar;C:\\jdk\\jaws.jar"), path);
-
-	}
-
-	public void testConvertToClassName() {
-		String fileName = "java/lang/String.class";
-		File file = new File(fileName);
-		String className = Classpath.convertToClassName(file);
-		assertEquals(java.lang.String.class.getName(), className);
-	}
-
-	public void testConvertToClass() throws ClassNotFoundException {
-		String fileName = "java/lang/String.class";
-		File file = new File(fileName);
-		Class<?> javaClass = Classpath.convertToClass(file);
-		assertEquals(java.lang.String.class, javaClass);
-	}
-
-	public void testConvertToArchiveClassFileEntryName() {
-		String fileName = Classpath.convertToArchiveClassFileEntryName(java.lang.String.class);
-		assertEquals("java/lang/String.class", fileName);
-	}
-
-	public void testConvertToClassFileName() {
-		char sc = File.separatorChar;
-		String fileName = Classpath.convertToClassFileName(java.lang.String.class);
-		assertEquals("java" + sc + "lang" + sc + "String.class", fileName);
-	}
-
-	public void testConvertToJavaFileName() {
-		char sc = File.separatorChar;
-		String fileName = Classpath.convertToJavaFileName(java.lang.String.class.getName());
-		assertEquals("java" + sc + "lang" + sc + "String.java", fileName);
-	}
-
-	public void testConvertToURLs() {
-		URL[] entries = new Classpath(this.morph("C:\\jdk\\rt.jar;C:\\jdk\\i18n.jar;C:\\jdk\\jaws.jar;C:\\foo\\classes;C:\\bar\\bar.jar")).urls();
-		int i = 0;
-		assertEquals(this.morphURL("/C:/jdk/rt.jar"), entries[i++].getPath());
-		assertEquals(this.morphURL("/C:/jdk/i18n.jar"), entries[i++].getPath());
-		assertEquals(this.morphURL("/C:/jdk/jaws.jar"), entries[i++].getPath());
-		assertEquals(this.morphURL("/C:/foo/classes"), entries[i++].getPath());
-		assertEquals(this.morphURL("/C:/bar/bar.jar"), entries[i++].getPath());
-		assertEquals(i, entries.length);
-	}
-
-	public void testEntries() {
-		Classpath cp = new Classpath(this.morph("C:\\jdk\\rt.jar;;.;C:\\jdk\\i18n.jar;;;C:\\jdk\\jaws.jar;;C:\\foo\\classes;C:\\bar\\bar.jar;C:\\bar\\bar.jar;"));
-		Classpath.Entry[] entries = cp.entries();
-		int i = 0;
-		assertEquals(this.morph("C:\\jdk\\rt.jar"), entries[i++].fileName());
-		assertEquals(this.morph("."), entries[i++].fileName());
-		assertEquals(this.morph("C:\\jdk\\i18n.jar"), entries[i++].fileName());
-		assertEquals(this.morph("C:\\jdk\\jaws.jar"), entries[i++].fileName());
-		assertEquals(this.morph("C:\\foo\\classes"), entries[i++].fileName());
-		assertEquals(this.morph("C:\\bar\\bar.jar"), entries[i++].fileName());
-		assertEquals(this.morph("C:\\bar\\bar.jar"), entries[i++].fileName());
-		assertEquals(i, entries.length);
-
-		cp = cp.compressed();
-		entries = cp.entries();
-		i = 0;
-		assertEquals(this.morph("C:\\jdk\\rt.jar"), entries[i++].fileName());
-		assertEquals(this.morph("."), entries[i++].fileName());
-		assertEquals(this.morph("C:\\jdk\\i18n.jar"), entries[i++].fileName());
-		assertEquals(this.morph("C:\\jdk\\jaws.jar"), entries[i++].fileName());
-		assertEquals(this.morph("C:\\foo\\classes"), entries[i++].fileName());
-		assertEquals(this.morph("C:\\bar\\bar.jar"), entries[i++].fileName());
-		assertEquals(i, entries.length);
-	}
-
-	public void testEntryForFileNamed() {
-		Classpath.Entry entry = null;
-
-		// in the middle - qualified
-		entry = new Classpath(this.morph("C:\\jdk\\i18n.jar;C:\\jdk\\rt.jar;C:\\jdk\\jaws.jar;C:\\foo\\classes;C:\\bar\\bar.jar")).entryForFileNamed("rt.jar");
-		assertEquals(this.morph("C:\\jdk\\rt.jar"), entry.fileName());
-
-		// in the middle - unqualified
-		entry = new Classpath(this.morph("C:\\jdk\\i18n.jar;C:\\jdk\\jaws.jar;rt.jar;C:\\foo\\classes;C:\\bar\\bar.jar")).entryForFileNamed("rt.jar");
-		assertEquals("rt.jar", entry.fileName());
-
-		// at the beginning - qualified
-		entry = new Classpath(this.morph("C:\\jdk\\rt.jar;C:\\jdk\\i18n.jar;C:\\jdk\\jaws.jar;C:\\foo\\classes;C:\\bar\\bar.jar")).entryForFileNamed("rt.jar");
-		assertEquals(this.morph("C:\\jdk\\rt.jar"), entry.fileName());
-
-		// at the beginning - unqualified
-		entry = new Classpath(this.morph("rt.jar;C:\\jdk\\i18n.jar;C:\\jdk\\jaws.jar;C:\\foo\\classes;C:\\bar\\bar.jar")).entryForFileNamed("rt.jar");
-		assertEquals("rt.jar", entry.fileName());
-
-		// at the end - qualified
-		entry = new Classpath(this.morph("C:\\jdk\\i18n.jar;C:\\jdk\\jaws.jar;C:\\foo\\classes;C:\\bar\\bar.jar;C:\\jdk\\rt.jar")).entryForFileNamed("rt.jar");
-		assertEquals(this.morph("C:\\jdk\\rt.jar"), entry.fileName());
-
-		// at the end - unqualified
-		entry = new Classpath(this.morph("C:\\jdk\\i18n.jar;C:\\jdk\\jaws.jar;C:\\foo\\classes;C:\\bar\\bar.jar;rt.jar")).entryForFileNamed("rt.jar");
-		assertEquals("rt.jar", entry.fileName());
-
-		// alone - qualified
-		entry = new Classpath(this.morph("C:\\jdk\\rt.jar")).entryForFileNamed("rt.jar");
-		assertEquals(this.morph("C:\\jdk\\rt.jar"), entry.fileName());
-
-		// alone - unqualified
-		entry = new Classpath("rt.jar").entryForFileNamed("rt.jar");
-		assertEquals("rt.jar", entry.fileName());
-
-		// trick entry at the beginning
-		entry = new Classpath(this.morph("rt.jar.new;C:\\jdk\\rt.jar;C:\\jdk\\i18n.jar;C:\\jdk\\jaws.jar;C:\\foo\\classes;C:\\bar\\bar.jar")).entryForFileNamed("rt.jar");
-		assertEquals(this.morph("C:\\jdk\\rt.jar"), entry.fileName());
-
-		// trick entry in the middle
-		entry = new Classpath(this.morph("rt.jar.new;C:\\jdk\\rtrtrt.jar;C:\\jdk\\rt.jar;C:\\jdk\\i18n.jar;C:\\jdk\\jaws.jar;C:\\foo\\classes;C:\\bar\\bar.jar")).entryForFileNamed("rt.jar");
-		assertEquals(this.morph("C:\\jdk\\rt.jar"), entry.fileName());
-
-		// trick entry at the end
-		entry = new Classpath(this.morph("rt.jar.new;C:\\jdk\\rtrtrt.jar;C:\\jdk\\rt.jar;C:\\jdk\\i18n.jar;C:\\jdk\\jaws.jar;C:\\foo\\classes;C:\\bar\\bar.jar;C:\\jdk\\rtrtrt.jar")).entryForFileNamed("rt.jar");
-		assertEquals(this.morph("C:\\jdk\\rt.jar"), entry.fileName());
-
-		// missing
-		entry = new Classpath(this.morph("rt.jar.new;C:\\jdk\\rtrtrt.jar;C:\\jdk\\i18n.jar;C:\\jdk\\jaws.jar;C:\\foo\\classes;C:\\bar\\bar.jar;C:\\jdk\\rtrtrt.jar")).entryForFileNamed("rt.jar");
-		assertEquals("path entry should not be found", null, entry);
-
-	}
-
-	public void testLocationForClass() {
-		Class<?> javaClass = Classpath.class;
-		File entry = new File(Classpath.locationFor(javaClass));
-		if (entry.isFile() || entry.isDirectory()) {
-			assertTrue(entry.exists());
-		}
-		if (entry.isDirectory()) {
-			assertTrue(new File(entry, Classpath.convertToClassFileName(javaClass)).exists());
-		}
-	}
-
-	public void testRtJarName() throws IOException {
-		File rtFile = new File(Classpath.rtJarName());
-		assertTrue("rt.jar does not exist", rtFile.exists());
-
-		JarFile rtJarFile = new JarFile(rtFile);
-		JarEntry entry = rtJarFile.getJarEntry("java/lang/Object.class");
-		rtJarFile.close();
-		assertTrue("bogus rt.jar", entry != null);
-	}
-
-	public void testJREClassNames() {
-		assertTrue("Vector is missing from JRE class names", CollectionTools.contains(Classpath.bootClasspath().classNames(), java.util.Vector.class.getName()));
-		assertTrue("File is missing from JRE class names", CollectionTools.contains(Classpath.bootClasspath().classNames(), java.io.File.class.getName()));
-	}
-
-	public void testJavaExtensionDirectoryNames() {
-		char sep = File.separatorChar;
-		String stdExtDirName = JAVA_HOME + sep + "lib" + sep + "ext";
-		assertTrue("standard extension dir name missing: " + stdExtDirName, CollectionTools.contains(Classpath.javaExtensionDirectoryNames(), stdExtDirName));
-	}
-
-	public void testJavaExtensionDirectories() {
-		char sep = File.separatorChar;
-		File stdExtDir = new File(JAVA_HOME + sep + "lib" + sep + "ext");
-		assertTrue("standard extension dir missing: " + stdExtDir.getParent(), CollectionTools.contains(Classpath.javaExtensionDirectories(), stdExtDir));
-	}
-
-	//Commented out due to incompatibility with IBM JDK (used in Eclipse WTP Build)
-	//TODO Test should be revised to be compatible with IBM JDK
-	//	public void testJavaExtensionClasspathEntries() {
-	//		char sep = File.separatorChar;
-	//		String jdk = System.getProperty("java.version");
-	//		if (jdk.startsWith("1.4") || jdk.startsWith("1.5")) {
-	//			Collection jarNames = new ArrayList();
-	//			Classpath.Entry[] entries = Classpath.javaExtensionClasspath().getEntries();
-	//			for (int i = 0; i < entries.length; i++) {
-	//				jarNames.add(entries[i].fileName());
-	//			}
-	//			String stdExtJarName = JAVA_HOME + sep + "lib" + sep + "ext" + sep + "dnsns.jar";
-	//			assertTrue("jdk 1.4.x standard extension jar missing: " + stdExtJarName, jarNames.contains(stdExtJarName));
-	//		} else {
-	//			fail("we need to update this test for the current jdk");
-	//		}
-	//	}
-
-	//Commented out due to incompatibility with IBM JDK (used in Eclipse WTP Build)
-	//TODO Test should be revised to be compatible with IBM JDK
-	//	public void testJavaExtensionClassNames() {
-	//		String jdk = System.getProperty("java.version");
-	//		if (jdk.startsWith("1.4") || jdk.startsWith("1.5")) {
-	//			String className = "sun.net.spi.nameservice.dns.DNSNameService";
-	//			assertTrue("jdk 1.4.x standard extension class missing: " + className,
-	//					CollectionTools.contains(Classpath.javaExtensionClasspath().classNames(), className));
-	//		} else {
-	//			fail("we need to update this test for the current jdk");
-	//		}
-	//	}
-
-	public void testJavaClasspathClassNames() {
-		String className = this.getClass().getName();
-		ClassLoader cl = this.getClass().getClassLoader();
-		// make sure we are running under the "normal" class loader;
-		// when the tests are executed as an ANT task, they are run under
-		// an ANT class loader and the "Java" classpath does not include this class
-		if (cl.getClass().getName().startsWith("sun.misc")) {
-			assertTrue("class missing: " + className, CollectionTools.contains(Classpath.javaClasspath().classNames(), className));
-		}
-	}
-
-	/**
-	 * morph the specified path to a platform-independent path
-	 */
-	private String morph(String path) {
-		String result = path;
-		result = result.replace('\\', File.separatorChar);
-		result = result.replace(';', File.pathSeparatorChar);
-		if (!CollectionTools.contains(File.listRoots(), new File("C:\\"))) {
-			result = result.replaceAll("C:", "");
-		}
-		return result;
-	}
-
-	/**
-	 * morph the specified URL to a platform-independent path
-	 */
-	private String morphURL(String url) {
-		String result = url;
-		if (!CollectionTools.contains(File.listRoots(), new File("C:\\"))) {
-			result = result.replaceAll("/C:", "");
-		}
-		return result;
-	}
-
-}
diff --git a/jpa/tests/org.eclipse.jpt.utility.tests/src/org/eclipse/jpt/utility/tests/internal/CollectionToolsTests.java b/jpa/tests/org.eclipse.jpt.utility.tests/src/org/eclipse/jpt/utility/tests/internal/CollectionToolsTests.java
deleted file mode 100644
index 7075264..0000000
--- a/jpa/tests/org.eclipse.jpt.utility.tests/src/org/eclipse/jpt/utility/tests/internal/CollectionToolsTests.java
+++ /dev/null
@@ -1,3936 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005, 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.utility.tests.internal;
-
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.Collection;
-import java.util.Collections;
-import java.util.Comparator;
-import java.util.HashSet;
-import java.util.Iterator;
-import java.util.LinkedList;
-import java.util.List;
-import java.util.ListIterator;
-import java.util.Set;
-import java.util.SortedSet;
-import java.util.TreeSet;
-import java.util.Vector;
-import junit.framework.TestCase;
-import org.eclipse.jpt.utility.internal.Bag;
-import org.eclipse.jpt.utility.internal.CollectionTools;
-import org.eclipse.jpt.utility.internal.EmptyIterable;
-import org.eclipse.jpt.utility.internal.HashBag;
-import org.eclipse.jpt.utility.internal.Range;
-import org.eclipse.jpt.utility.internal.ReverseComparator;
-import org.eclipse.jpt.utility.internal.enumerations.EmptyEnumeration;
-import org.eclipse.jpt.utility.internal.iterators.ArrayIterator;
-import org.eclipse.jpt.utility.internal.iterators.EmptyIterator;
-
-@SuppressWarnings("nls")
-public class CollectionToolsTests extends TestCase {
-
-	public CollectionToolsTests(String name) {
-		super(name);
-	}
-
-	public void testAddObjectArrayObject_Object() {
-		Object[] a = CollectionTools.add(this.buildObjectArray1(), "twenty");
-		assertEquals(4, a.length);
-		assertTrue(CollectionTools.contains(a, "twenty"));
-		assertEquals("twenty", a[a.length-1]);
-	}
-
-	public void testAddObjectArrayObject_String() {
-		String[] a = CollectionTools.add(this.buildStringArray1(), "twenty");
-		assertEquals(4, a.length);
-		assertTrue(CollectionTools.contains(a, "twenty"));
-		assertEquals("twenty", a[a.length-1]);
-	}
-
-	public void testAddObjectArrayObject_EmptyArray() {
-		String[] a = new String[0];
-		a = CollectionTools.add(a, "twenty");
-		assertEquals(1, a.length);
-		assertTrue(CollectionTools.contains(a, "twenty"));
-		assertEquals("twenty", a[0]);
-	}
-
-	public void testAddObjectArrayIntObject_Object() {
-		Object[] a = new Object[] { "a", "b", "c", "d" };
-		a = CollectionTools.add(a, 2, "X");
-		assertEquals(5, a.length);
-		assertTrue(CollectionTools.contains(a, "X"));
-		assertTrue(Arrays.equals(new Object[] { "a", "b", "X", "c", "d" }, a));
-	}
-
-	public void testAddObjectArrayIntObject_String() {
-		String[] a = new String[] { "a", "b", "c", "d" };
-		a = CollectionTools.add(a, 2, "X");
-		assertEquals(5, a.length);
-		assertTrue(CollectionTools.contains(a, "X"));
-		assertTrue(Arrays.equals(new String[] { "a", "b", "X", "c", "d" }, a));
-	}
-
-	public void testAddObjectArrayIntObject_End() {
-		String[] a = new String[] { "a", "b", "c", "d" };
-		a = CollectionTools.add(a, 4, "X");
-		assertEquals(5, a.length);
-		assertTrue(CollectionTools.contains(a, "X"));
-		assertTrue(Arrays.equals(new String[] { "a", "b", "c", "d", "X" }, a));
-	}
-
-	public void testAddObjectArrayIntObject_Zero() {
-		String[] a = new String[] { "a", "b", "c", "d" };
-		a = CollectionTools.add(a, 0, "X");
-		assertEquals(5, a.length);
-		assertTrue(CollectionTools.contains(a, "X"));
-		assertTrue(Arrays.equals(new String[] { "X", "a", "b", "c", "d" }, a));
-	}
-
-	public void testAddObjectArrayIntObject_Exception() {
-		Object[] a = new Object[] { "a", "b", "c", "d" };
-		boolean exCaught = false;
-		try {
-			a = CollectionTools.add(a, 33, "X");
-		} catch (IndexOutOfBoundsException ex) {
-			exCaught = true;
-		}
-		assertTrue(exCaught);
-	}
-
-	public void testConcatenateObjectArrayArray() {
-		String[] aArray = new String[] { "a", "b", "c", "d" };
-		String[] eArray = new String[] { "e", "f", "g", "h" };
-		String[] iArray = new String[] { "i", "j", "k", "l" };
-
-		String[] expected = new String[] { "a", "b", "c", "d", "e", "f", "g", "h", "i", "j", "k", "l" };
-		String[] actual = CollectionTools.concatenate(aArray, eArray, iArray);
-		assertTrue(Arrays.equals(expected, actual));
-	}
-
-	public void testAddCharArrayChar() {
-		char[] a = CollectionTools.add(this.buildCharArray(), 'd');
-		assertEquals(4, a.length);
-		assertTrue(CollectionTools.contains(a, 'd'));
-	}
-
-	public void testAddCharArrayChar_Empty() {
-		char[] a = new char[0];
-		a = CollectionTools.add(a, 'd');
-		assertEquals(1, a.length);
-		assertTrue(CollectionTools.contains(a, 'd'));
-		assertTrue(Arrays.equals(new char[] { 'd' }, a));
-	}
-
-	public void testAddCharArrayIntChar() {
-		char[] a = new char[] { 'a', 'b', 'c', 'd' };
-		a = CollectionTools.add(a, 2, 'X');
-		assertEquals(5, a.length);
-		assertTrue(CollectionTools.contains(a, 'X'));
-		assertTrue(Arrays.equals(new char[] { 'a', 'b', 'X', 'c', 'd' }, a));
-	}
-
-	public void testAddCharArrayIntChar_Zero() {
-		char[] a = new char[] { 'a', 'b', 'c', 'd' };
-		a = CollectionTools.add(a, 0, 'X');
-		assertEquals(5, a.length);
-		assertTrue(CollectionTools.contains(a, 'X'));
-		assertTrue(Arrays.equals(new char[] { 'X', 'a', 'b', 'c', 'd' }, a));
-	}
-
-	public void testAddCharArrayIntChar_End() {
-		char[] a = new char[] { 'a', 'b', 'c', 'd' };
-		a = CollectionTools.add(a, 4, 'X');
-		assertEquals(5, a.length);
-		assertTrue(CollectionTools.contains(a, 'X'));
-		assertTrue(Arrays.equals(new char[] { 'a', 'b', 'c', 'd', 'X' }, a));
-	}
-
-	public void testConcatenateCharArrayArray() {
-		char[] aArray = new char[] { 'a', 'b', 'c', 'd' };
-		char[] eArray = new char[] { 'e', 'f', 'g', 'h' };
-		char[] iArray = new char[] { 'i', 'j', 'k', 'l' };
-
-		char[] expected = new char[] { 'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l' };
-		char[] actual = CollectionTools.concatenate(aArray, eArray, iArray);
-		assertTrue(Arrays.equals(expected, actual));
-	}
-
-	public void testAddIntArrayInt() {
-		int[] a = CollectionTools.add(this.buildIntArray(), 30);
-		assertEquals(4, a.length);
-		assertTrue(CollectionTools.contains(a, 30));
-	}
-
-	public void testAddIntArrayInt_Empty() {
-		int[] a = new int[0];
-		a = CollectionTools.add(a, 30);
-		assertEquals(1, a.length);
-		assertTrue(CollectionTools.contains(a, 30));
-		assertTrue(Arrays.equals(new int[] { 30 }, a));
-	}
-
-	public void testAddIntArrayIntInt() {
-		int[] a = new int[] { 1, 2, 3, 4 };
-		a = CollectionTools.add(a, 2, 99);
-		assertEquals(5, a.length);
-		assertTrue(CollectionTools.contains(a, 99));
-		assertTrue(Arrays.equals(new int[] { 1, 2, 99, 3, 4 }, a));
-	}
-
-	public void testAddIntArrayIntInt_Zero() {
-		int[] a = new int[] { 1, 2, 3, 4 };
-		a = CollectionTools.add(a, 0, 99);
-		assertEquals(5, a.length);
-		assertTrue(CollectionTools.contains(a, 99));
-		assertTrue(Arrays.equals(new int[] { 99, 1, 2, 3, 4 }, a));
-	}
-
-	public void testAddIntArrayIntInt_End() {
-		int[] a = new int[] { 1, 2, 3, 4 };
-		a = CollectionTools.add(a, 4, 99);
-		assertEquals(5, a.length);
-		assertTrue(CollectionTools.contains(a, 99));
-		assertTrue(Arrays.equals(new int[] { 1, 2, 3, 4, 99 }, a));
-	}
-
-	public void testConcatenateIntArrayArray() {
-		int[] aArray = new int[] { 'a', 'b', 'c', 'd' };
-		int[] eArray = new int[] { 'e', 'f', 'g', 'h' };
-		int[] iArray = new int[] { 'i', 'j', 'k', 'l' };
-
-		int[] expected = new int[] { 'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l' };
-		int[] actual = CollectionTools.concatenate(aArray, eArray, iArray);
-		assertTrue(Arrays.equals(expected, actual));
-	}
-
-	public void testAddAllCollectionIterable_StringModified() {
-		List<String> list1 = this.buildStringList1();
-		Iterable<String> iterable2 = this.buildStringList2();
-		assertTrue(CollectionTools.addAll(list1, iterable2.iterator()));
-		assertEquals(6, list1.size());
-		assertTrue(list1.containsAll(this.buildStringList2()));
-	}
-
-	public void testAddAllCollectionIterable_StringUnmodified() {
-		Set<String> set1 = this.buildStringSet1();
-		Iterable<String> iterable3 = this.buildStringList1(); // same elements as set1
-		assertFalse(CollectionTools.addAll(set1, iterable3.iterator()));
-		assertEquals(3, set1.size());
-		assertTrue(set1.containsAll(this.buildStringList1()));
-	}
-
-	public void testAddAllCollectionIterable_ObjectModified() {
-		List<Object> list1 = this.buildObjectList1();
-		Iterable<String> iterable2 = this.buildStringList2();
-		assertTrue(CollectionTools.addAll(list1, iterable2));
-		assertEquals(6, list1.size());
-		assertTrue(list1.containsAll((List<String>) iterable2));
-	}
-
-	public void testAddAllCollectionIterable_ObjectUnmodified() {
-		Set<Object> set1 = this.buildObjectSet1();
-		Iterable<String> iterable3 = this.buildStringList1(); // same elements as set1
-		assertFalse(CollectionTools.addAll(set1, iterable3));
-		assertEquals(3, set1.size());
-		assertTrue(set1.containsAll((List<String>) iterable3));
-	}
-
-	public void testAddAllCollectionIterable_EmptyIterable() {
-		Set<Object> set1 = this.buildObjectSet1();
-		assertFalse(CollectionTools.addAll(set1, EmptyIterable.instance()));
-		assertEquals(3, set1.size());
-	}
-
-	public void testAddAllCollectionIterableInt_Modified() {
-		List<String> list1 = this.buildStringList1();
-		List<String> list2 = this.buildStringList2();
-		Iterable<String> iterable2 = list2;
-		assertTrue(CollectionTools.addAll(list1, iterable2.iterator(), list2.size()));
-		assertEquals(6, list1.size());
-		assertTrue(list1.containsAll(this.buildStringList2()));
-	}
-
-	public void testAddAllCollectionIterableInt_Unmodified() {
-		Set<String> set1 = this.buildStringSet1();
-		List<String> list1 = this.buildStringList1(); // same elements as set1
-		Iterable<String> iterable3 = list1;
-		assertFalse(CollectionTools.addAll(set1, iterable3.iterator(), list1.size()));
-		assertEquals(3, set1.size());
-		assertTrue(set1.containsAll(this.buildStringList1()));
-	}
-
-	public void testAddAllCollectionIterator_StringModified() {
-		List<String> list1 = this.buildStringList1();
-		List<String> list2 = this.buildStringList2();
-		assertTrue(CollectionTools.addAll(list1, list2.iterator()));
-		assertEquals(6, list1.size());
-		assertTrue(list1.containsAll(list2));
-	}
-
-	public void testAddAllCollectionIterator_StringUnmodified() {
-		Set<String> set1 = this.buildStringSet1();
-		List<String> list3 = this.buildStringList1(); // same elements as s1
-		assertFalse(CollectionTools.addAll(set1, list3.iterator()));
-		assertEquals(3, set1.size());
-		assertTrue(set1.containsAll(list3));
-	}
-
-	public void testAddAllCollectionIterator_ObjectModified() {
-		List<Object> list1 = this.buildObjectList1();
-		List<String> list2 = this.buildStringList2();
-		assertTrue(CollectionTools.addAll(list1, list2.iterator()));
-		assertEquals(6, list1.size());
-		assertTrue(list1.containsAll(list2));
-	}
-
-	public void testAddAllCollectionIterator_ObjectUnmodified() {
-		Set<Object> set1 = this.buildObjectSet1();
-		List<String> list3 = this.buildStringList1(); // same elements as s1
-		assertFalse(CollectionTools.addAll(set1, list3.iterator()));
-		assertEquals(3, set1.size());
-		assertTrue(set1.containsAll(list3));
-	}
-
-	public void testAddAllCollectionIterator_EmptyIterator() {
-		List<String> list1 = this.buildStringList1();
-		assertFalse(CollectionTools.addAll(list1, EmptyIterator.<String>instance()));
-		assertEquals(3, list1.size());
-	}
-
-	public void testAddAllCollectionIteratorInt_Modified() {
-		List<String> list1 = this.buildStringList1();
-		List<String> list2 = this.buildStringList2();
-		assertTrue(CollectionTools.addAll(list1, list2.iterator(), 3));
-		assertEquals(6, list1.size());
-		assertTrue(list1.containsAll(list2));
-	}
-
-	public void testAddAllCollectionIteratorInt_Unmodified() {
-		Set<String> set1 = this.buildStringSet1();
-		List<String> list3 = this.buildStringList1(); // same elements as s1
-		assertFalse(CollectionTools.addAll(set1, list3.iterator(), 3));
-		assertEquals(3, set1.size());
-		assertTrue(set1.containsAll(list3));
-	}
-
-	public void testAddAllCollectionIteratorInt_EmptyIterator() {
-		List<String> list1 = this.buildStringList1();
-		assertFalse(CollectionTools.addAll(list1, EmptyIterator.<String>instance(), 0));
-		assertEquals(3, list1.size());
-	}
-
-	public void testAddAllCollectionObjectArray_StringModified() {
-		List<String> list = this.buildStringList1();
-		String[] a = this.buildStringArray1();
-		assertTrue(CollectionTools.addAll(list, a));
-		assertEquals(6, list.size());
-		assertTrue(list.containsAll(CollectionTools.collection(a)));
-	}
-
-	public void testAddAllCollectionObjectArray_StringListEmptyArray() {
-		List<String> list = this.buildStringList1();
-		assertFalse(CollectionTools.addAll(list, new String[0]));
-	}
-
-	public void testAddAllCollectionObjectArray_StringUnmodified() {
-		Set<String> set = this.buildStringSet1();
-		String[] a = this.buildStringArray1();
-		assertFalse(CollectionTools.addAll(set, a));
-		assertEquals(3, set.size());
-		assertTrue(set.containsAll(CollectionTools.collection(a)));
-
-		assertFalse(CollectionTools.addAll(set, new String[0]));
-	}
-
-	public void testAddAllCollectionObjectArray_StringSetEmptyArray() {
-		Set<String> set = this.buildStringSet1();
-		assertFalse(CollectionTools.addAll(set, new String[0]));
-	}
-
-	public void testAddAllCollectionObjectArray_ObjectModified() {
-		List<Object> list = this.buildObjectList1();
-		String[] a = this.buildStringArray1();
-
-		assertTrue(CollectionTools.addAll(list, a));
-		assertEquals(6, list.size());
-		assertTrue(list.containsAll(CollectionTools.collection(a)));
-	}
-
-	public void testAddAllCollectionObjectArray_ObjectUnmodified() {
-		String[] a = this.buildStringArray1();
-		Set<Object> set = this.buildObjectSet1();
-		assertFalse(CollectionTools.addAll(set, a));
-		assertEquals(3, set.size());
-		assertTrue(set.containsAll(CollectionTools.collection(a)));
-	}
-
-	public void testAddAllListIntObjectArray() {
-		List<String> list = this.buildStringList1();
-		CollectionTools.addAll(list, 2, new String[] { "X", "X", "X" });
-		assertEquals(6, list.size());
-		assertTrue(list.contains("X"));
-		assertTrue(Arrays.equals(new Object[] { "zero", "one", "X", "X", "X", "two" }, list.toArray()));
-	}
-
-	public void testAddAllListIntObjectArray_Zero() {
-		List<String> list = new ArrayList<String>();
-		CollectionTools.addAll(list, 0, new String[] { "X", "X", "X" });
-		assertEquals(3, list.size());
-		assertTrue(list.contains("X"));
-		assertTrue(Arrays.equals(new Object[] { "X", "X", "X" }, list.toArray()));
-	}
-
-	public void testAddAllListIntObjectArray_EmptyArray() {
-		List<String> list = this.buildStringList1();
-		CollectionTools.addAll(list, 2, new String[0]);
-		assertEquals(3, list.size());
-		assertTrue(Arrays.equals(new Object[] { "zero", "one", "two" }, list.toArray()));
-	}
-
-	public void testAddAllListIntIterable() {
-		List<String> list = this.buildStringList1();
-		Iterable<String> iterable = Arrays.asList(new String[] { "X", "X", "X" });
-		CollectionTools.addAll(list, 2, iterable);
-		assertEquals(6, list.size());
-		assertTrue(list.contains("X"));
-		assertTrue(Arrays.equals(new Object[] { "zero", "one", "X", "X", "X", "two" }, list.toArray()));
-	}
-
-	public void testAddAllListIntIterable_Zero() {
-		List<String> list = new ArrayList<String>();
-		Iterable<String> iterable = Arrays.asList(new String[] { "X", "X", "X" });
-		CollectionTools.addAll(list, 0, iterable);
-		assertEquals(3, list.size());
-		assertTrue(list.contains("X"));
-		assertTrue(Arrays.equals(new Object[] { "X", "X", "X" }, list.toArray()));
-	}
-
-	public void testAddAllListIntIterable_EmptyIterable() {
-		List<String> list = this.buildStringList1();
-		Iterable<String> iterable = EmptyIterable.instance();
-		CollectionTools.addAll(list, 2, iterable);
-		assertEquals(3, list.size());
-		assertTrue(Arrays.equals(new Object[] { "zero", "one", "two" }, list.toArray()));
-	}
-
-	public void testAddAllListIntIterableInt() {
-		List<String> list = this.buildStringList1();
-		Iterable<String> iterable = Arrays.asList(new String[] { "X", "X", "X" });
-		CollectionTools.addAll(list, 2, iterable, 3);
-		assertEquals(6, list.size());
-		assertTrue(list.contains("X"));
-		assertTrue(Arrays.equals(new Object[] { "zero", "one", "X", "X", "X", "two" }, list.toArray()));
-	}
-
-	public void testAddAllListIntIterableInt_Zero() {
-		List<String> list = new ArrayList<String>();
-		Iterable<String> iterable = Arrays.asList(new String[] { "X", "X", "X" });
-		CollectionTools.addAll(list, 0, iterable, 3);
-		assertEquals(3, list.size());
-		assertTrue(list.contains("X"));
-		assertTrue(Arrays.equals(new Object[] { "X", "X", "X" }, list.toArray()));
-	}
-
-	public void testAddAllListIntIterableInt_EmptyIterable() {
-		List<String> list = this.buildStringList1();
-		Iterable<String> iterable = EmptyIterable.instance();
-		CollectionTools.addAll(list, 2, iterable, 0);
-		assertEquals(3, list.size());
-		assertTrue(Arrays.equals(new Object[] { "zero", "one", "two" }, list.toArray()));
-	}
-
-	public void testAddAllListIntIterator() {
-		List<String> list = this.buildStringList1();
-		Iterator<String> iterator = Arrays.asList(new String[] { "X", "X", "X" }).iterator();
-		CollectionTools.addAll(list, 2, iterator);
-		assertEquals(6, list.size());
-		assertTrue(list.contains("X"));
-		assertTrue(Arrays.equals(new Object[] { "zero", "one", "X", "X", "X", "two" }, list.toArray()));
-	}
-
-	public void testAddAllListIntIterator_Zero() {
-		List<String> list = new ArrayList<String>();
-		Iterator<String> iterator = Arrays.asList(new String[] { "X", "X", "X" }).iterator();
-		CollectionTools.addAll(list, 0, iterator);
-		assertEquals(3, list.size());
-		assertTrue(list.contains("X"));
-		assertTrue(Arrays.equals(new Object[] { "X", "X", "X" }, list.toArray()));
-	}
-
-	public void testAddAllListIntIterator_EmptyIterator() {
-		List<String> list = this.buildStringList1();
-		Iterator<String> iterator = EmptyIterator.instance();
-		CollectionTools.addAll(list, 2, iterator);
-		assertEquals(3, list.size());
-		assertTrue(Arrays.equals(new Object[] { "zero", "one", "two" }, list.toArray()));
-	}
-
-	public void testAddAllListIntIteratorInt() {
-		List<String> list = this.buildStringList1();
-		Iterator<String> iterator = Arrays.asList(new String[] { "X", "X", "X" }).iterator();
-		CollectionTools.addAll(list, 2, iterator, 3);
-		assertEquals(6, list.size());
-		assertTrue(list.contains("X"));
-		assertTrue(Arrays.equals(new Object[] { "zero", "one", "X", "X", "X", "two" }, list.toArray()));
-	}
-
-	public void testAddAllListIntIteratorInt_Zero() {
-		List<String> list = new ArrayList<String>();
-		Iterator<String> iterator = Arrays.asList(new String[] { "X", "X", "X" }).iterator();
-		CollectionTools.addAll(list, 0, iterator, 3);
-		assertEquals(3, list.size());
-		assertTrue(list.contains("X"));
-		assertTrue(Arrays.equals(new Object[] { "X", "X", "X" }, list.toArray()));
-	}
-
-	public void testAddAllListIntIteratorInt_EmptyIterator() {
-		List<String> list = this.buildStringList1();
-		Iterator<String> iterator = EmptyIterator.instance();
-		CollectionTools.addAll(list, 2, iterator, 0);
-		assertEquals(3, list.size());
-		assertTrue(Arrays.equals(new Object[] { "zero", "one", "two" }, list.toArray()));
-	}
-
-	public void testAddAllObjectArrayCollection_String() {
-		String[] a = this.buildStringArray1();
-		Collection<String> c = this.buildStringList2();
-		String[] newArray = CollectionTools.addAll(a, c);
-
-		assertEquals(6, newArray.length);
-		assertTrue(CollectionTools.containsAll(newArray, c));
-	}
-
-	public void testAddAllObjectArrayCollection_Object() {
-		Object[] a = this.buildObjectArray1();
-		Collection<String> c = this.buildStringList2();
-		Object[] newArray = CollectionTools.addAll(a, c);
-
-		assertEquals(6, newArray.length);
-		assertTrue(CollectionTools.containsAll(newArray, c));
-	}
-
-	public void testAddAllObjectArrayCollection_EmptyArray() {
-		String[] a = new String[0];
-		Collection<String> c = this.buildStringList2();
-		String[] newArray = CollectionTools.addAll(a, c);
-
-		assertEquals(3, newArray.length);
-		assertTrue(CollectionTools.containsAll(newArray, c));
-	}
-
-	public void testAddAllObjectArrayCollection_EmptyCollection() {
-		String[] a = this.buildStringArray1();
-		Collection<String> c = new ArrayList<String>();
-		String[] newArray = CollectionTools.addAll(a, c);
-
-		assertEquals(3, newArray.length);
-	}
-
-	public void testAddAllObjectArrayIntCollection_String() {
-		String[] a = this.buildStringArray1();
-		Collection<String> c = this.buildStringList2();
-		String[] newArray = CollectionTools.addAll(a, 1, c);
-
-		assertEquals(6, newArray.length);
-		assertTrue(CollectionTools.containsAll(newArray, c));
-	}
-
-	public void testAddAllObjectArrayIntCollection_EmptyArray() {
-		String[] a = new String[0];
-		Collection<String> c = this.buildStringList2();
-		String[] newArray = CollectionTools.addAll(a, 0, c);
-
-		assertEquals(3, newArray.length);
-		assertTrue(CollectionTools.containsAll(newArray, c));
-	}
-
-	public void testAddAllObjectArrayIntCollection_EmptyCollection() {
-		String[] a = this.buildStringArray1();
-		Collection<String> c = new ArrayList<String>();
-		String[] newArray = CollectionTools.addAll(a, 1, c);
-
-		assertEquals(3, newArray.length);
-	}
-
-	public void testAddAllObjectArrayIntIterable_String() {
-		String[] a = this.buildStringArray1();
-		Iterable<String> iterable = this.buildStringList2();
-		String[] newArray = CollectionTools.addAll(a, 1, iterable);
-
-		assertEquals(6, newArray.length);
-		assertTrue(CollectionTools.containsAll(newArray, iterable));
-	}
-
-	public void testAddAllObjectArrayIntIterable_EmptyArray() {
-		String[] a = new String[0];
-		Iterable<String> iterable = this.buildStringList2();
-		String[] newArray = CollectionTools.addAll(a, 0, iterable);
-
-		assertEquals(3, newArray.length);
-		assertTrue(CollectionTools.containsAll(newArray, iterable));
-	}
-
-	public void testAddAllObjectArrayIntIterable_EmptyIterable() {
-		String[] a = this.buildStringArray1();
-		Iterable<String> iterable = new ArrayList<String>();
-		String[] newArray = CollectionTools.addAll(a, 1, iterable);
-
-		assertEquals(3, newArray.length);
-	}
-
-	public void testAddAllObjectArrayIntIterableInt_String() {
-		String[] a = this.buildStringArray1();
-		Iterable<String> iterable = this.buildStringList2();
-		String[] newArray = CollectionTools.addAll(a, 1, iterable, 3);
-
-		assertEquals(6, newArray.length);
-		assertTrue(CollectionTools.containsAll(newArray, iterable));
-	}
-
-	public void testAddAllObjectArrayIntIterableInt_EmptyArray() {
-		String[] a = new String[0];
-		Iterable<String> iterable = this.buildStringList2();
-		String[] newArray = CollectionTools.addAll(a, 0, iterable, 3);
-
-		assertEquals(3, newArray.length);
-		assertTrue(CollectionTools.containsAll(newArray, iterable));
-	}
-
-	public void testAddAllObjectArrayIntIterableInt_EmptyIterable() {
-		String[] a = this.buildStringArray1();
-		Iterable<String> iterable = new ArrayList<String>();
-		String[] newArray = CollectionTools.addAll(a, 1, iterable, 0);
-
-		assertEquals(3, newArray.length);
-	}
-
-	public void testAddAllObjectArrayIntIterator_String() {
-		String[] a = this.buildStringArray1();
-		Iterator<String> iterator = this.buildStringList2().iterator();
-		String[] newArray = CollectionTools.addAll(a, 1, iterator);
-
-		assertEquals(6, newArray.length);
-		assertTrue(CollectionTools.containsAll(newArray, this.buildStringList2()));
-	}
-
-	public void testAddAllObjectArrayIntIterator_EmptyArray() {
-		String[] a = new String[0];
-		Iterator<String> iterator = this.buildStringList2().iterator();
-		String[] newArray = CollectionTools.addAll(a, 0, iterator);
-
-		assertEquals(3, newArray.length);
-		assertTrue(CollectionTools.containsAll(newArray, this.buildStringList2()));
-	}
-
-	public void testAddAllObjectArrayIntIterator_EmptyIterable() {
-		String[] a = this.buildStringArray1();
-		Iterator<String> iterator = EmptyIterator.instance();
-		String[] newArray = CollectionTools.addAll(a, 1, iterator);
-
-		assertEquals(3, newArray.length);
-	}
-
-	public void testAddAllObjectArrayIntIteratorInt_String() {
-		String[] a = this.buildStringArray1();
-		Iterator<String> iterator = this.buildStringList2().iterator();
-		String[] newArray = CollectionTools.addAll(a, 1, iterator, 3);
-
-		assertEquals(6, newArray.length);
-		assertTrue(CollectionTools.containsAll(newArray, this.buildStringList2()));
-	}
-
-	public void testAddAllObjectArrayIntIteratorInt_EmptyArray() {
-		String[] a = new String[0];
-		Iterator<String> iterator = this.buildStringList2().iterator();
-		String[] newArray = CollectionTools.addAll(a, 0, iterator, 3);
-
-		assertEquals(3, newArray.length);
-		assertTrue(CollectionTools.containsAll(newArray, this.buildStringList2()));
-	}
-
-	public void testAddAllObjectArrayIntIteratorInt_EmptyIterator() {
-		String[] a = this.buildStringArray1();
-		Iterator<String> iterator = EmptyIterator.instance();
-		String[] newArray = CollectionTools.addAll(a, 1, iterator, 0);
-
-		assertEquals(3, newArray.length);
-	}
-
-	public void testAddAllObjectArrayIterable() {
-		String[] a = this.buildStringArray1();
-		Iterable<String> iterable = this.buildStringList1();
-		String[] newArray = CollectionTools.addAll(a, iterable);
-
-		assertEquals(6, newArray.length);
-		assertTrue(CollectionTools.containsAll(newArray, this.buildStringList1()));
-	}
-
-	public void testAddAllObjectArrayIterableInt() {
-		String[] a = this.buildStringArray1();
-		Iterable<String> iterable = this.buildStringList1();
-		String[] newArray = CollectionTools.addAll(a, iterable, 33);
-
-		assertEquals(6, newArray.length);
-		assertTrue(CollectionTools.containsAll(newArray, this.buildStringList1()));
-	}
-
-	public void testAddAllObjectArrayIterator_String() {
-		String[] a = this.buildStringArray1();
-		Iterator<String> iterator = this.buildStringList1().iterator();
-		String[] newArray = CollectionTools.addAll(a, iterator);
-
-		assertEquals(6, newArray.length);
-		assertTrue(CollectionTools.containsAll(newArray, this.buildStringList1()));
-	}
-
-	public void testAddAllObjectArrayIterator_Object() {
-		String[] a = this.buildStringArray1();
-		Iterator<Object> iterator = this.buildObjectList1().iterator();
-		Object[] newArray = CollectionTools.addAll(a, iterator);
-
-		assertEquals(6, newArray.length);
-		assertTrue(CollectionTools.containsAll(newArray, this.buildObjectList1()));
-	}
-
-	public void testAddAllObjectArrayIterator_EmptyIterator() {
-		String[] a = this.buildStringArray1();
-		Iterator<String> iterator = EmptyIterator.instance();
-		String[] newArray = CollectionTools.addAll(a, iterator);
-
-		assertEquals(3, newArray.length);
-		assertTrue(CollectionTools.containsAll(newArray, this.buildStringList1()));
-	}
-
-	public void testAddAllObjectArrayIteratorInt() {
-		String[] a = this.buildStringArray1();
-		Iterator<Object> iterator = this.buildObjectList1().iterator();
-		Object[] newArray = CollectionTools.addAll(a, iterator, 3);
-
-		assertEquals(6, newArray.length);
-		assertTrue(CollectionTools.containsAll(newArray, this.buildObjectList1()));
-	}
-
-	public void testAddAllObjectArrayIteratorInt_EmptyIterator() {
-		String[] a = this.buildStringArray1();
-		Iterator<String> iterator = EmptyIterator.instance();
-		String[] newArray = CollectionTools.addAll(a, iterator, 0);
-
-		assertEquals(3, newArray.length);
-		assertTrue(CollectionTools.containsAll(newArray, this.buildStringList1()));
-	}
-
-	public void testAddAllObjectArrayObjectArray_Object() {
-		Object[] a1 = this.buildObjectArray1();
-		Object[] a2 = this.buildObjectArray2();
-		Object[] newArray = CollectionTools.addAll(a1, a2);
-
-		assertEquals(6, newArray.length);
-		assertTrue(CollectionTools.containsAll(newArray, a1));
-		assertTrue(CollectionTools.containsAll(newArray, a2));
-	}
-
-	public void testAddAllObjectArrayObjectArray_String() {
-		String[] a1 = this.buildStringArray1();
-		String[] a2 = this.buildStringArray2();
-		String[] newArray = CollectionTools.addAll(a1, a2);
-
-		assertEquals(6, newArray.length);
-		assertTrue(CollectionTools.containsAll(newArray, a1));
-		assertTrue(CollectionTools.containsAll(newArray, a2));
-	}
-
-	public void testAddAllObjectArrayObjectArray_ObjectString() {
-		Object[] a1 = this.buildObjectArray1();
-		String[] a2 = this.buildStringArray2();
-		Object[] newArray = CollectionTools.addAll(a1, a2);
-
-		assertEquals(6, newArray.length);
-		assertTrue(CollectionTools.containsAll(newArray, a1));
-		assertTrue(CollectionTools.containsAll(newArray, a2));
-	}
-
-	public void testAddAllObjectArrayObjectArray_EmptyArray1() {
-		Object[] a1 = new Object[0];
-		Object[] a2 = this.buildObjectArray2();
-		Object[] newArray = CollectionTools.addAll(a1, a2);
-
-		assertEquals(3, newArray.length);
-		assertTrue(CollectionTools.containsAll(newArray, a2));
-	}
-
-	public void testAddAllObjectArrayObjectArray_EmptyArray2() {
-		Object[] a1 = this.buildObjectArray1();
-		Object[] a2 = new Object[0];
-		Object[] newArray = CollectionTools.addAll(a1, a2);
-
-		assertEquals(3, newArray.length);
-		assertTrue(CollectionTools.containsAll(newArray, a1));
-	}
-
-	public void testAddAllObjectArrayIntObjectArray_Object() {
-		Object[] a = new Object[] { "a", "b", "c", "d" };
-		a = CollectionTools.addAll(a, 2, new Object[] { "X", "X", "X" });
-		assertEquals(7, a.length);
-		assertTrue(CollectionTools.contains(a, "X"));
-		assertTrue(Arrays.equals(new Object[] { "a", "b", "X", "X", "X", "c", "d" }, a));
-	}
-
-	public void testAddAllObjectArrayIntObjectArray_String() {
-		String[] a = new String[] { "a", "b", "c", "d" };
-		a = CollectionTools.addAll(a, 2, new String[] { "X", "X", "X" });
-		assertEquals(7, a.length);
-		assertTrue(CollectionTools.contains(a, "X"));
-		assertTrue(Arrays.equals(new String[] { "a", "b", "X", "X", "X", "c", "d" }, a));
-	}
-
-	public void testAddAllObjectArrayIntObjectArray_ObjectString() {
-		Object[] a = new Object[] { "a", "b", "c", "d" };
-		a = CollectionTools.addAll(a, 2, new String[] { "X", "X", "X" });
-		assertEquals(7, a.length);
-		assertTrue(CollectionTools.contains(a, "X"));
-		assertTrue(Arrays.equals(new Object[] { "a", "b", "X", "X", "X", "c", "d" }, a));
-	}
-
-	public void testAddAllObjectArrayIntObjectArray_End() {
-		Object[] a = new Object[] { "a", "b", "c", "d" };
-		a = CollectionTools.addAll(a, 4, new String[] { "X", "X", "X" });
-		assertEquals(7, a.length);
-		assertTrue(CollectionTools.contains(a, "X"));
-		assertTrue(Arrays.equals(new Object[] { "a", "b", "c", "d", "X", "X", "X" }, a));
-	}
-
-	public void testAddAllObjectArrayIntObjectArray_Zero() {
-		Object[] a = new Object[0];
-		a = CollectionTools.addAll(a, 0, new String[] { "X", "X", "X" });
-		assertEquals(3, a.length);
-		assertTrue(CollectionTools.contains(a, "X"));
-		assertTrue(Arrays.equals(new Object[] { "X", "X", "X" }, a));
-	}
-
-	public void testAddAllObjectArrayIntObjectArray_EmptyArray2() {
-		Object[] a = new Object[] { "a", "b", "c", "d" };
-		a = CollectionTools.addAll(a, 4, new String[0]);
-		assertEquals(4, a.length);
-		assertTrue(Arrays.equals(new Object[] { "a", "b", "c", "d" }, a));
-	}
-
-	public void testAddAllObjectArrayIntObjectArray_EmptyArray1() {
-		Object[] a = new String[0];
-		a = CollectionTools.addAll(a, 0, new Object[] { "a", "b", "c", "d" });
-		assertEquals(4, a.length);
-		assertTrue(Arrays.equals(new Object[] { "a", "b", "c", "d" }, a));
-	}
-
-	public void testAddAllCharArrayCharArray() {
-		char[] a = CollectionTools.addAll(this.buildCharArray(), new char[] { 'd', 'e' });
-		assertEquals(5, a.length);
-		assertTrue(CollectionTools.contains(a, 'd'));
-		assertTrue(CollectionTools.contains(a, 'e'));
-	}
-
-	public void testAddAllCharArrayCharArray_EmptyArray2() {
-		char[] a = CollectionTools.addAll(this.buildCharArray(), new char[0]);
-		assertEquals(3, a.length);
-	}
-
-	public void testAddAllCharArrayCharArrayEmptyArray1() {
-		char[] a = CollectionTools.addAll(new char[0], new char[] { 'd', 'e' });
-		assertEquals(2, a.length);
-		assertTrue(CollectionTools.contains(a, 'd'));
-		assertTrue(CollectionTools.contains(a, 'e'));
-	}
-
-	public void testAddAllCharArrayIntCharArray() {
-		char[] a = new char[] { 'a', 'b', 'c', 'd' };
-		a = CollectionTools.addAll(a, 2, new char[] { 'X', 'X', 'X' });
-		assertEquals(7, a.length);
-		assertTrue(CollectionTools.contains(a, 'X'));
-		assertTrue(Arrays.equals(new char[] { 'a', 'b', 'X', 'X', 'X', 'c', 'd' }, a));
-	}
-
-	public void testAddAllCharArrayIntCharArray_End() {
-		char[] a = new char[] { 'a', 'b', 'c', 'd' };
-		a = CollectionTools.addAll(a, 4, new char[] { 'X', 'X', 'X' });
-		assertEquals(7, a.length);
-		assertTrue(CollectionTools.contains(a, 'X'));
-		assertTrue(Arrays.equals(new char[] { 'a', 'b', 'c', 'd', 'X', 'X', 'X' }, a));
-	}
-
-	public void testAddAllCharArrayIntCharArray_EmptyArray1() {
-		char[] a = new char[0];
-		a = CollectionTools.addAll(a, 0, new char[] { 'X', 'X', 'X' });
-		assertEquals(3, a.length);
-		assertTrue(CollectionTools.contains(a, 'X'));
-		assertTrue(Arrays.equals(new char[] { 'X', 'X', 'X' }, a));
-	}
-
-	public void testAddAllCharArrayIntCharArray_EmptyArray2() {
-		char[] a = new char[] { 'a', 'b', 'c', 'd' };
-		a = CollectionTools.addAll(a, 2, new char[0]);
-		assertEquals(4, a.length);
-		assertTrue(Arrays.equals(new char[] { 'a', 'b', 'c', 'd' }, a));
-	}
-
-	public void testAddAllIntArrayIntArray() {
-		int[] a = CollectionTools.addAll(this.buildIntArray(), new int[] { 30, 40 });
-		assertEquals(5, a.length);
-		assertTrue(CollectionTools.contains(a, 30));
-		assertTrue(CollectionTools.contains(a, 40));
-	}
-
-	public void testAddAllIntArrayIntArray_EmptyArray2() {
-		int[] a = CollectionTools.addAll(this.buildIntArray(), new int[0]);
-		assertEquals(3, a.length);
-	}
-
-	public void testAddAllIntArrayIntArray_EmptyArray1() {
-		int[] a = CollectionTools.addAll(new int[0], new int[] { 30, 40 });
-		assertEquals(2, a.length);
-		assertTrue(CollectionTools.contains(a, 30));
-		assertTrue(CollectionTools.contains(a, 40));
-	}
-
-	public void testAddAllIntArrayIntIntArray() {
-		int[] a = new int[] { 1, 2, 3, 4 };
-		a = CollectionTools.addAll(a, 2, new int[] { 99, 99, 99 });
-		assertEquals(7, a.length);
-		assertTrue(CollectionTools.contains(a, 99));
-		assertTrue(Arrays.equals(new int[] { 1, 2, 99, 99, 99, 3, 4 }, a));
-	}
-
-	public void testAddAllIntArrayIntIntArray_End() {
-		int[] a = new int[] { 1, 2, 3, 4 };
-		a = CollectionTools.addAll(a, 4, new int[] { 99, 99, 99 });
-		assertEquals(7, a.length);
-		assertTrue(CollectionTools.contains(a, 99));
-		assertTrue(Arrays.equals(new int[] { 1, 2, 3, 4, 99, 99, 99 }, a));
-	}
-
-	public void testAddAllIntArrayIntIntArray_EmptyArray2() {
-		int[] a = new int[] { 1, 2, 3, 4 };
-		a = CollectionTools.addAll(a, 2, new int[0]);
-		assertEquals(4, a.length);
-		assertTrue(Arrays.equals(new int[] { 1, 2, 3, 4 }, a));
-	}
-
-	public void testAddAllIntArrayIntIntArray_EmptyArray1() {
-		int[] a = new int[0];
-		a = CollectionTools.addAll(a, 0, new int[] { 99, 99, 99 });
-		assertEquals(3, a.length);
-		assertTrue(CollectionTools.contains(a, 99));
-		assertTrue(Arrays.equals(new int[] { 99, 99, 99 }, a));
-	}
-
-	public void testArrayIterable() {
-		Iterable<String> iterable = this.buildStringList1();
-		Object[] a = CollectionTools.array(iterable);
-		assertEquals(3, a.length);
-		assertTrue(CollectionTools.containsAll(a, this.buildStringList1().iterator()));
-	}
-
-	public void testArrayIterableInt() {
-		Iterable<String> iterable = this.buildStringList1();
-		Object[] a = CollectionTools.array(iterable, 3);
-		assertEquals(3, a.length);
-		assertTrue(CollectionTools.containsAll(a, this.buildStringList1().iterator()));
-	}
-
-	public void testArrayIterableObjectArray_String() {
-		Iterable<String> iterable = this.buildStringList1();
-		String[] a = CollectionTools.array(iterable, new String[0]);
-		assertEquals(3, a.length);
-		assertTrue(CollectionTools.containsAll(a, this.buildStringList1().iterator()));
-	}
-
-	public void testArrayIterableObjectArray_Object() {
-		Iterable<String> iterable = this.buildStringList1();
-		Object[] a = CollectionTools.array(iterable, new Object[0]);
-		assertEquals(3, a.length);
-		assertTrue(CollectionTools.containsAll(a, this.buildStringList1().iterator()));
-	}
-
-	public void testArrayIterableIntObjectArray() {
-		Iterable<String> iterable = this.buildStringList1();
-		String[] a = CollectionTools.array(iterable, 3, new String[0]);
-		assertEquals(3, a.length);
-		assertTrue(CollectionTools.containsAll(a, this.buildStringList1().iterator()));
-	}
-
-	public void testArrayIterator() {
-		Object[] a = CollectionTools.array(this.buildStringList1().iterator());
-		assertEquals(3, a.length);
-		assertTrue(CollectionTools.containsAll(a, this.buildStringList1().iterator()));
-	}
-
-	public void testArrayIterator_Empty() {
-		Object[] a = CollectionTools.array(EmptyIterator.instance());
-		assertEquals(0, a.length);
-	}
-
-	public void testArrayIteratorInt() {
-		Object[] a = CollectionTools.array(this.buildStringList1().iterator(), 3);
-		assertEquals(3, a.length);
-		assertTrue(CollectionTools.containsAll(a, this.buildStringList1().iterator()));
-	}
-
-	public void testArrayIteratorInt_Empty() {
-		Object[] a = CollectionTools.array(EmptyIterator.instance(), 3);
-		assertEquals(0, a.length);
-	}
-
-	public void testArrayIteratorObjectArray_String() {
-		String[] a = CollectionTools.array(this.buildStringList1().iterator(), new String[0]);
-		assertEquals(3, a.length);
-		assertTrue(CollectionTools.containsAll(a, this.buildStringList1().iterator()));
-	}
-
-	public void testArrayIteratorObjectArray_Empty() {
-		String[] a = CollectionTools.array(EmptyIterator.<String>instance(), new String[0]);
-		assertEquals(0, a.length);
-	}
-
-	public void testArrayIteratorObjectArray_Object() {
-		Object[] a = CollectionTools.array(this.buildStringList1().iterator(), new Object[0]);
-		assertEquals(3, a.length);
-		assertTrue(CollectionTools.containsAll(a, this.buildStringList1().iterator()));
-	}
-
-	public void testArrayIteratorIntObjectArray() {
-		String[] a = CollectionTools.array(this.buildStringList1().iterator(), 3, new String[0]);
-		assertEquals(3, a.length);
-		assertTrue(CollectionTools.containsAll(a, this.buildStringList1().iterator()));
-	}
-
-	public void testArrayIteratorIntObjectArray_Empty() {
-		String[] a = CollectionTools.array(EmptyIterator.<String>instance(), 3, new String[0]);
-		assertEquals(0, a.length);
-	}
-
-	public void testBagEnumeration_String() {
-		Bag<String> b = CollectionTools.bag(this.buildStringVector1().elements());
-		assertEquals(3, b.size());
-		assertTrue(b.containsAll(this.buildStringVector1()));
-	}
-
-	public void testBagEnumeration_Object() {
-		Bag<Object> b = CollectionTools.<Object>bag(this.buildStringVector1().elements());
-		assertEquals(3, b.size());
-		assertTrue(b.containsAll(this.buildStringVector1()));
-	}
-
-	public void testBagEnumeration_Empty() {
-		Bag<Object> b = CollectionTools.<Object>bag(EmptyEnumeration.instance());
-		assertEquals(0, b.size());
-	}
-
-	public void testBagEnumerationInt() {
-		Bag<String> b = CollectionTools.bag(this.buildStringVector1().elements(), 3);
-		assertEquals(3, b.size());
-		assertTrue(b.containsAll(this.buildStringVector1()));
-	}
-
-	public void testBagEnumerationInt_Empty() {
-		Bag<String> b = CollectionTools.bag(EmptyEnumeration.<String>instance(), 3);
-		assertEquals(0, b.size());
-	}
-
-	public void testBagIterable() {
-		Iterable<String> iterable = this.buildStringList1();
-		Bag<String> b = CollectionTools.bag(iterable);
-		assertEquals(3, b.size());
-		assertTrue(b.containsAll(this.buildStringList1()));
-	}
-
-	public void testBagIterableInt() {
-		Iterable<String> iterable = this.buildStringList1();
-		Bag<String> b = CollectionTools.bag(iterable, 3);
-		assertEquals(3, b.size());
-		assertTrue(b.containsAll(this.buildStringList1()));
-	}
-
-	public void testBagIterator_String() {
-		Bag<String> b = CollectionTools.bag(this.buildStringList1().iterator());
-		assertEquals(3, b.size());
-		assertTrue(b.containsAll(this.buildStringList1()));
-	}
-
-	public void testBagIterator_StringObject() {
-		Collection<String> c = new ArrayList<String>();
-		c.add("zero");
-		c.add("one");
-		c.add("two");
-		c.add("three");
-		Bag<Object> b = CollectionTools.<Object>bag(c.iterator());
-		assertEquals(4, b.size());
-		assertTrue(b.containsAll(c));
-	}
-
-	public void testBagIterator_Empty() {
-		Bag<String> b = CollectionTools.bag(EmptyIterator.<String>instance());
-		assertEquals(0, b.size());
-	}
-
-	public void testBagIteratorInt() {
-		Bag<String> b = CollectionTools.bag(this.buildStringList1().iterator(), 3);
-		assertEquals(3, b.size());
-		assertTrue(b.containsAll(this.buildStringList1()));
-	}
-
-	public void testBagIteratorInt_Empty() {
-		Bag<String> b = CollectionTools.bag(EmptyIterator.<String>instance(), 3);
-		assertEquals(0, b.size());
-	}
-
-	public void testBagObjectArray() {
-		Bag<String> b = CollectionTools.bag(this.buildStringArray1());
-		assertEquals(3, b.size());
-		assertTrue(CollectionTools.containsAll(b, this.buildStringArray1()));
-	}
-
-	public void testBagObjectArray_Vararg() {
-		Bag<String> b = CollectionTools.bag("foo", "bar", "baz");
-		assertEquals(3, b.size());
-		assertTrue(CollectionTools.containsAll(b, new Object[]{"foo", "bar", "baz"}));
-	}
-
-	public void testBagObjectArray_Empty() {
-		Bag<String> b = CollectionTools.bag(Bag.Empty.<String>instance());
-		assertEquals(0, b.size());
-	}
-
-	public void testClearObjectArray() {
-		String[] a = this.buildStringArray1();
-		assertEquals(3, a.length);
-		a = CollectionTools.clear(a);
-		assertEquals(0, a.length);
-	}
-
-	public void testClearObjectArray_Empty() {
-		String[] a = new String[0];
-		assertEquals(0, a.length);
-		a = CollectionTools.clear(a);
-		assertEquals(0, a.length);
-	}
-
-	public void testCollectionEnumeration() {
-		Collection<String> c = CollectionTools.collection(this.buildStringVector1().elements());
-		assertEquals(3, c.size());
-		assertTrue(c.containsAll(this.buildStringVector1()));
-	}
-
-	public void testCollectionEnumeration_ObjectString() {
-		Collection<Object> c = CollectionTools.<Object>collection(this.buildStringVector1().elements());
-		assertEquals(3, c.size());
-		assertTrue(c.containsAll(this.buildStringVector1()));
-	}
-
-	public void testCollectionEnumerationInt() {
-		Collection<String> c = CollectionTools.collection(this.buildStringVector1().elements(), 3);
-		assertEquals(3, c.size());
-		assertTrue(c.containsAll(this.buildStringVector1()));
-	}
-
-	public void testCollectionIterable() {
-		Iterable<String> iterable = this.buildStringList1();
-		Collection<String> c = CollectionTools.collection(iterable);
-		assertEquals(3, c.size());
-		assertTrue(c.containsAll(this.buildStringList1()));
-	}
-
-	public void testCollectionIterableInt() {
-		Iterable<String> iterable = this.buildStringList1();
-		Collection<String> c = CollectionTools.collection(iterable, 3);
-		assertEquals(3, c.size());
-		assertTrue(c.containsAll(this.buildStringList1()));
-	}
-
-	public void testCollectionIterator() {
-		Collection<String> c = CollectionTools.collection(this.buildStringList1().iterator());
-		assertEquals(3, c.size());
-		assertTrue(c.containsAll(this.buildStringList1()));
-	}
-
-	public void testCollectionIterator_ObjectString() {
-		Collection<Object> c = CollectionTools.<Object>collection(this.buildStringList1().iterator());
-		assertEquals(3, c.size());
-		assertTrue(c.containsAll(this.buildStringList1()));
-	}
-
-	public void testCollectionIteratorInt() {
-		Collection<String> c = CollectionTools.collection(this.buildStringList1().iterator(), 3);
-		assertEquals(3, c.size());
-		assertTrue(c.containsAll(this.buildStringList1()));
-	}
-
-	public void testCollectionObjectArray() {
-		Collection<String> c = CollectionTools.collection(this.buildStringArray1());
-		assertEquals(3, c.size());
-		assertTrue(CollectionTools.containsAll(c, this.buildStringArray1()));
-	}
-
-	public void testContainsEnumerationObject_String() {
-		Vector<String> v = this.buildStringVector1();
-		assertTrue(CollectionTools.contains(v.elements(), "one"));
-		assertFalse(CollectionTools.contains(v.elements(), null));
-		v.add(null);
-		assertTrue(CollectionTools.contains(v.elements(), null));
-	}
-
-	public void testContainsEnumerationObject_Object() {
-		Vector<Object> c = new Vector<Object>();
-		c.add("zero");
-		c.add("one");
-		c.add("two");
-		c.add("three");
-		String one = "one";
-		assertTrue(CollectionTools.contains(c.elements(), one));
-		assertFalse(CollectionTools.contains(c.elements(), null));
-		c.add(null);
-		assertTrue(CollectionTools.contains(c.elements(), null));
-	}
-
-	public void testContainsIterableObject() {
-		Collection<String> c = this.buildStringList1();
-		Iterable<String> iterable = c;
-		assertTrue(CollectionTools.contains(iterable, "one"));
-		assertFalse(CollectionTools.contains(iterable, null));
-		c.add(null);
-		assertTrue(CollectionTools.contains(iterable, null));
-	}
-
-	public void testContainsIteratorObject_String() {
-		Collection<String> c = this.buildStringList1();
-		assertTrue(CollectionTools.contains(c.iterator(), "one"));
-		assertFalse(CollectionTools.contains(c.iterator(), null));
-		c.add(null);
-		assertTrue(CollectionTools.contains(c.iterator(), null));
-	}
-
-	public void testContainsIteratorObject_Object() {
-		Collection<Object> c = new HashBag<Object>();
-		c.add("zero");
-		c.add("one");
-		c.add("two");
-		c.add("three");
-		String one = "one";
-		assertTrue(CollectionTools.contains(c.iterator(), one));
-		assertFalse(CollectionTools.contains(c.iterator(), null));
-		c.add(null);
-		assertTrue(CollectionTools.contains(c.iterator(), null));
-	}
-
-	public void testContainsObjectArrayObject() {
-		Object[] a = this.buildObjectArray1();
-		assertTrue(CollectionTools.contains(a, "one"));
-		assertFalse(CollectionTools.contains(a, null));
-		Object[] a2 = CollectionTools.add(a, null);
-		assertTrue(CollectionTools.contains(a2, null));
-	}
-
-	public void testContainsCharArrayChar() {
-		char[] a = this.buildCharArray();
-		assertTrue(CollectionTools.contains(a, 'a'));
-		assertFalse(CollectionTools.contains(a, 'z'));
-		char[] a2 = CollectionTools.add(a, 'z');
-		assertTrue(CollectionTools.contains(a2, 'z'));
-	}
-
-	public void testContainsIntArrayInt() {
-		int[] a = this.buildIntArray();
-		assertTrue(CollectionTools.contains(a, 10));
-		assertFalse(CollectionTools.contains(a, 55));
-		int[] a2 = CollectionTools.add(a, 55);
-		assertTrue(CollectionTools.contains(a2, 55));
-	}
-
-	public void testContainsAllCollectionIterable() {
-		Iterable<String> iterable = this.buildStringList1();
-		assertTrue(CollectionTools.containsAll(this.buildStringList1(), iterable));
-	}
-
-	public void testContainsAllCollectionIterator_String() {
-		assertTrue(CollectionTools.containsAll(this.buildStringList1(), this.buildStringList1().iterator()));
-	}
-
-	public void testContainsAllCollectionIterator_Object() {
-		Collection<Object> c1 = new ArrayList<Object>();
-		c1.add("zero");
-		c1.add("one");
-		c1.add("two");
-		Collection<String> c2 = new ArrayList<String>();
-		c2.add("two");
-		c2.add("zero");
-		c2.add("one");
-		assertTrue(CollectionTools.containsAll(c1, c2.iterator()));
-	}
-
-	public void testContainsAllCollectionObjectArray_StringObject() {
-		assertTrue(CollectionTools.containsAll(this.buildStringList1(), this.buildObjectArray1()));
-	}
-
-	public void testContainsAllCollectionObjectArray() {
-		Object[] a = new Object[] { "zero", "one", "two" };
-		assertTrue(CollectionTools.containsAll(this.buildStringList1(), a));
-	}
-
-	public void testContainsAllIterableCollection() {
-		Iterable<String> iterable = this.buildStringList1();
-		assertTrue(CollectionTools.containsAll(iterable, this.buildStringList1()));
-	}
-
-	public void testContainsAllIterableIntCollection() {
-		Iterable<String> iterable = this.buildStringList1();
-		assertTrue(CollectionTools.containsAll(iterable, 3, this.buildStringList1()));
-	}
-
-	public void testContainsAllIterableIterable() {
-		Iterable<String> iterable1 = this.buildStringList1();
-		Iterable<String> iterable2 = this.buildStringList1();
-		assertTrue(CollectionTools.containsAll(iterable1, iterable2));
-	}
-
-	public void testContainsAllIterableIntIterable() {
-		Iterable<String> iterable1 = this.buildStringList1();
-		Iterable<String> iterable2 = this.buildStringList1();
-		assertTrue(CollectionTools.containsAll(iterable1, 3, iterable2));
-	}
-
-	public void testContainsAllIterableIterator() {
-		Iterable<String> iterable = this.buildStringList1();
-		assertTrue(CollectionTools.containsAll(iterable, this.buildStringList1().iterator()));
-	}
-
-	public void testContainsAllIterableIntIterator() {
-		Iterable<String> iterable = this.buildStringList1();
-		assertTrue(CollectionTools.containsAll(iterable, 3, this.buildStringList1().iterator()));
-	}
-
-	public void testContainsAllIterableObjectArray() {
-		Iterable<String> iterable = this.buildStringList1();
-		assertTrue(CollectionTools.containsAll(iterable, this.buildObjectArray1()));
-		iterable = this.buildStringList2();
-		assertFalse(CollectionTools.containsAll(iterable, this.buildObjectArray1()));
-	}
-
-	public void testContainsAllIterableIntObjectArray() {
-		Iterable<String> iterable = this.buildStringList1();
-		assertTrue(CollectionTools.containsAll(iterable, 3, this.buildObjectArray1()));
-		iterable = this.buildStringList2();
-		assertFalse(CollectionTools.containsAll(iterable, 3, this.buildObjectArray1()));
-	}
-
-	public void testContainsAllIteratorCollection_StringString() {
-		assertTrue(CollectionTools.containsAll(this.buildStringList1().iterator(), this.buildStringList1()));
-		assertFalse(CollectionTools.containsAll(this.buildStringList1().iterator(), this.buildStringList2()));
-	}
-
-	public void testContainsAllIteratorCollection_ObjectString() {
-		Collection<Object> c1 = new ArrayList<Object>();
-		c1.add("zero");
-		c1.add("one");
-		c1.add("two");
-		Collection<String> c2 = new ArrayList<String>();
-		c2.add("zero");
-		c2.add("one");
-		c2.add("two");
-		assertTrue(CollectionTools.containsAll(c1.iterator(), c2));
-	}
-
-	public void testContainsAllIteratorIntCollection() {
-		assertTrue(CollectionTools.containsAll(this.buildStringList1().iterator(), 5, this.buildStringList1()));
-		assertFalse(CollectionTools.containsAll(this.buildStringList1().iterator(), 5, this.buildStringList2()));
-	}
-
-	public void testContainsAllIteratorIterable() {
-		Iterable<String> iterable = this.buildStringList1();
-		assertTrue(CollectionTools.containsAll(this.buildStringList1().iterator(), iterable));
-		iterable = this.buildStringList2();
-		assertFalse(CollectionTools.containsAll(this.buildStringList1().iterator(), iterable));
-	}
-
-	public void testContainsAllIteratorIntIterable() {
-		Iterable<String> iterable = this.buildStringList1();
-		assertTrue(CollectionTools.containsAll(this.buildStringList1().iterator(), 3, iterable));
-		iterable = this.buildStringList2();
-		assertFalse(CollectionTools.containsAll(this.buildStringList1().iterator(), 3, iterable));
-	}
-
-	public void testContainsAllIteratorIterator_StringString() {
-		assertTrue(CollectionTools.containsAll(this.buildStringList1().iterator(), this.buildStringList1().iterator()));
-		assertFalse(CollectionTools.containsAll(this.buildStringList1().iterator(), this.buildStringList2().iterator()));
-	}
-
-	public void testContainsAllIteratorIterator_ObjectString() {
-		Collection<Object> c1 = new ArrayList<Object>();
-		c1.add("zero");
-		c1.add("one");
-		c1.add("two");
-		Collection<String> c2 = new ArrayList<String>();
-		c2.add("zero");
-		c2.add("one");
-		c2.add("two");
-		assertTrue(CollectionTools.containsAll(c1.iterator(), c2.iterator()));
-	}
-
-	public void testContainsAllIteratorIntIterator() {
-		assertTrue(CollectionTools.containsAll(this.buildStringList1().iterator(), 3, this.buildStringList1().iterator()));
-		assertFalse(CollectionTools.containsAll(this.buildStringList1().iterator(), 3, this.buildStringList2().iterator()));
-	}
-
-	public void testContainsAllIteratorObjectArray() {
-		assertTrue(CollectionTools.containsAll(this.buildStringList1().iterator(), this.buildObjectArray1()));
-		assertFalse(CollectionTools.containsAll(this.buildStringList1().iterator(), this.buildObjectArray2()));
-	}
-
-	public void testContainsAllIteratorIntObjectArray() {
-		assertTrue(CollectionTools.containsAll(this.buildStringList1().iterator(), 3, this.buildObjectArray1()));
-		assertFalse(CollectionTools.containsAll(this.buildStringList1().iterator(), 3, this.buildObjectArray2()));
-	}
-
-	public void testContainsAllObjectArrayCollection() {
-		assertTrue(CollectionTools.containsAll(this.buildObjectArray1(), this.buildStringList1()));
-		assertFalse(CollectionTools.containsAll(this.buildObjectArray1(), this.buildStringList2()));
-	}
-
-	public void testContainsAllObjectArrayIterable() {
-		Iterable<String> iterable = this.buildStringList1();
-		assertTrue(CollectionTools.containsAll(this.buildObjectArray1(), iterable));
-		iterable = this.buildStringList2();
-		assertFalse(CollectionTools.containsAll(this.buildObjectArray1(), iterable));
-	}
-
-	public void testContainsAllObjectArrayIterator() {
-		assertTrue(CollectionTools.containsAll(this.buildObjectArray1(), this.buildStringList1().iterator()));
-		assertFalse(CollectionTools.containsAll(this.buildObjectArray1(), this.buildStringList2().iterator()));
-	}
-
-	public void testContainsAllObjectArrayIterator_Empty() {
-		assertTrue(CollectionTools.containsAll(this.buildObjectArray1(), EmptyIterator.instance()));
-	}
-
-	public void testContainsAllObjectArrayObjectArray() {
-		assertTrue(CollectionTools.containsAll(this.buildObjectArray1(), this.buildObjectArray1()));
-		assertFalse(CollectionTools.containsAll(this.buildObjectArray1(), this.buildObjectArray2()));
-	}
-
-	public void testContainsAllCharArrayCharArray() {
-		assertTrue(CollectionTools.containsAll(this.buildCharArray(), this.buildCharArray()));
-		assertFalse(CollectionTools.containsAll(this.buildCharArray(), new char[] { 'x', 'y' }));
-	}
-
-	public void testContainsAllIntArrayIntArray() {
-		assertTrue(CollectionTools.containsAll(this.buildIntArray(), this.buildIntArray()));
-		assertFalse(CollectionTools.containsAll(this.buildIntArray(), new int[] { 444, 888 }));
-	}
-
-	public void testDiffEnd() {
-		String a = "a";
-		String b = "b";
-		String c = "c";
-		String d = "d";
-		String e = "e";
-		String a_ = new String("a");
-		String b_ = new String("b");
-		String c_ = new String("c");
-		String d_ = new String("d");
-		String e_ = new String("e");
-		assertTrue((a != a_) && a.equals(a_));
-		assertTrue((b != b_) && b.equals(b_));
-		assertTrue((c != c_) && c.equals(c_));
-		assertTrue((d != d_) && d.equals(d_));
-		assertTrue((e != e_) && e.equals(e_));
-		String[] array1;
-		String[] array2;
-
-		array1 = new String[] { a, b, c, d, e };
-		array2 = new String[] { a_, b_, c_, d_, e_ };
-		assertEquals(-1, CollectionTools.diffEnd(array1, array2));
-
-		array1 = new String[] { a };
-		array2 = new String[] { a_ };
-		assertEquals(-1, CollectionTools.diffEnd(array1, array2));
-
-		array1 = new String[] { b, c, d, e };
-		array2 = new String[] { a_, b_, c_, d_, e_ };
-		assertEquals(4, CollectionTools.diffEnd(array1, array2));
-
-		array1 = new String[] { a, b, c, d, e };
-		array2 = new String[] { b_, c_, d_, e_ };
-		assertEquals(4, CollectionTools.diffEnd(array1, array2));
-
-		array1 = new String[0];
-		array2 = new String[] { a_, b_, c_, d_, e_ };
-		assertEquals(4, CollectionTools.diffEnd(array1, array2));
-
-		array1 = new String[] { a, b, c, d, e };
-		array2 = new String[0];
-		assertEquals(4, CollectionTools.diffEnd(array1, array2));
-
-		array1 = new String[0];
-		array2 = new String[0];
-		assertEquals(-1, CollectionTools.diffEnd(array1, array2));
-
-		array1 = new String[] { a, b, c, d, e };
-		array2 = new String[] { b_, c_, a_, d_, e_ };
-		assertEquals(2, CollectionTools.diffEnd(array1, array2));
-
-		array1 = new String[] { b, c, d, e };
-		array2 = new String[] { a_, c_, d_, e_ };
-		assertEquals(0, CollectionTools.diffEnd(array1, array2));
-
-		array1 = new String[] { a, b, c, e };
-		array2 = new String[] { a_, b_, c_, d_ };
-		assertEquals(3, CollectionTools.diffEnd(array1, array2));
-
-		String c__ = new String(c);
-		assertTrue((c != c__) && c.equals(c_));
-		array1 = new String[] { a, b, c, d, e };
-		array2 = new String[] { a_, b_, c__, d_, e_ };
-		assertEquals(-1, CollectionTools.diffEnd(array1, array2));
-
-		array1 = new String[] { a, b, null, d, e };
-		array2 = new String[] { a_, b_, c_, d_, e_ };
-		assertEquals(2, CollectionTools.diffEnd(array1, array2));
-
-		array1 = new String[] { a, b, null, d, e };
-		array2 = new String[] { a_, b_, null, d_, e_ };
-		assertEquals(-1, CollectionTools.diffEnd(array1, array2));
-	}
-
-	public void testDiffRange() {
-		String a = "a";
-		String b = "b";
-		String c = "c";
-		String d = "d";
-		String e = "e";
-		String a_ = a;
-		String b_ = b;
-		String c_ = c;
-		String d_ = d;
-		String e_ = e;
-		assertTrue((a == a_) && a.equals(a_));
-		assertTrue((b == b_) && b.equals(b_));
-		assertTrue((c == c_) && c.equals(c_));
-		assertTrue((d == d_) && d.equals(d_));
-		assertTrue((e == e_) && e.equals(e_));
-		String[] array1;
-		String[] array2;
-
-		array1 = new String[] { a, b, c, d, e };
-		array2 = new String[] { a_, b_, c_, d_, e_ };
-		assertEquals(new Range(5, -1), CollectionTools.diffRange(array1, array2));
-
-		array1 = new String[] { a };
-		array2 = new String[] { a_ };
-		assertEquals(new Range(1, -1), CollectionTools.diffRange(array1, array2));
-
-		array1 = new String[] { b, c, d, e };
-		array2 = new String[] { a_, b_, c_, d_, e_ };
-		assertEquals(new Range(0, 4), CollectionTools.diffRange(array1, array2));
-
-		array1 = new String[] { a, b, c, d, e };
-		array2 = new String[] { b_, c_, d_, e_ };
-		assertEquals(new Range(0, 4), CollectionTools.diffRange(array1, array2));
-
-		array1 = new String[0];
-		array2 = new String[] { a_, b_, c_, d_, e_ };
-		assertEquals(new Range(0, 4), CollectionTools.diffRange(array1, array2));
-
-		array1 = new String[] { a, b, c, d, e };
-		array2 = new String[0];
-		assertEquals(new Range(0, 4), CollectionTools.diffRange(array1, array2));
-
-		array1 = new String[0];
-		array2 = new String[0];
-		assertEquals(new Range(0, -1), CollectionTools.diffRange(array1, array2));
-
-		array1 = new String[] { a, b, c, d, e };
-		array2 = new String[] { b_, c_, a_, d_, e_ };
-		assertEquals(new Range(0, 2), CollectionTools.diffRange(array1, array2));
-
-		array1 = new String[] { b, c, d, e };
-		array2 = new String[] { a_, c_, d_, e_ };
-		assertEquals(new Range(0, 0), CollectionTools.diffRange(array1, array2));
-
-		array1 = new String[] { a, b, c, e };
-		array2 = new String[] { a_, b_, c_, d_ };
-		assertEquals(new Range(3, 3), CollectionTools.diffRange(array1, array2));
-
-		String c__ = new String(c);
-		assertTrue((c != c__) && c.equals(c_));
-		array1 = new String[] { a, b, c, d, e };
-		array2 = new String[] { a_, b_, c__, d_, e_ };
-		assertEquals(new Range(5, -1), CollectionTools.diffRange(array1, array2));
-
-		array1 = new String[] { a, b, null, d, e };
-		array2 = new String[] { a_, b_, c_, d_, e_ };
-		assertEquals(new Range(2, 2), CollectionTools.diffRange(array1, array2));
-
-		array1 = new String[] { a, b, null, d, e };
-		array2 = new String[] { a_, b_, null, d_, e_ };
-		assertEquals(new Range(5, -1), CollectionTools.diffRange(array1, array2));
-	}
-
-	public void testDiffStart() {
-		String a = "a";
-		String b = "b";
-		String c = "c";
-		String d = "d";
-		String e = "e";
-		String a_ = new String("a");
-		String b_ = new String("b");
-		String c_ = new String("c");
-		String d_ = new String("d");
-		String e_ = new String("e");
-		assertTrue((a != a_) && a.equals(a_));
-		assertTrue((b != b_) && b.equals(b_));
-		assertTrue((c != c_) && c.equals(c_));
-		assertTrue((d != d_) && d.equals(d_));
-		assertTrue((e != e_) && e.equals(e_));
-		String[] array1;
-		String[] array2;
-
-		array1 = new String[] { a, b, c, d, e };
-		array2 = new String[] { a_, b_, c_, d_, e_ };
-		assertEquals(5, CollectionTools.diffStart(array1, array2));
-
-		array1 = new String[] { a };
-		array2 = new String[] { a_ };
-		assertEquals(1, CollectionTools.diffStart(array1, array2));
-
-		array1 = new String[] { a, b, c, d };
-		array2 = new String[] { a_, b_, c_, d_, e_ };
-		assertEquals(4, CollectionTools.diffStart(array1, array2));
-
-		array1 = new String[] { a, b, c, d, e };
-		array2 = new String[] { a_, b_, c_, d_ };
-		assertEquals(4, CollectionTools.diffStart(array1, array2));
-
-		array1 = new String[0];
-		array2 = new String[] { a_, b_, c_, d_, e_ };
-		assertEquals(0, CollectionTools.diffStart(array1, array2));
-
-		array1 = new String[] { a, b, c, d, e };
-		array2 = new String[0];
-		assertEquals(0, CollectionTools.diffStart(array1, array2));
-
-		array1 = new String[0];
-		array2 = new String[0];
-		assertEquals(0, CollectionTools.diffStart(array1, array2));
-
-		array1 = new String[] { a, b, c, d, e };
-		array2 = new String[] { a_, b_, e_, c_, d_ };
-		assertEquals(2, CollectionTools.diffStart(array1, array2));
-
-		array1 = new String[] { a, b, c, e };
-		array2 = new String[] { a_, b_, c_, d_ };
-		assertEquals(3, CollectionTools.diffStart(array1, array2));
-
-		array1 = new String[] { b, c, d, e };
-		array2 = new String[] { a_, c_, d_, e_ };
-		assertEquals(0, CollectionTools.diffStart(array1, array2));
-
-		String c__ = new String(c);
-		assertTrue((c != c__) && c.equals(c__));
-		array1 = new String[] { a, b, c, d, e };
-		array2 = new String[] { a_, b_, c__, d_, e_ };
-		assertEquals(5, CollectionTools.diffStart(array1, array2));
-
-		array1 = new String[] { a, b, null, d, e };
-		array2 = new String[] { a_, b_, c_, d_, e_ };
-		assertEquals(2, CollectionTools.diffStart(array1, array2));
-
-		array1 = new String[] { a, b, null, d, e };
-		array2 = new String[] { a_, b_, null, d_, e_ };
-		assertEquals(5, CollectionTools.diffStart(array1, array2));
-	}
-
-	public void testEqualsIteratorIterator() {
-		List<String> list1 = new ArrayList<String>();
-		list1.add("1000");
-		list1.add("2000");
-		list1.add("3000");
-		list1.add("4000");
-
-		List<String> list2 = new ArrayList<String>();
-		for (int i = 0; i < list1.size(); i++) {
-			list2.add(String.valueOf((i + 1) * 1000));
-		}
-		assertFalse(CollectionTools.identical(list1.listIterator(), list2.listIterator()));
-		assertTrue(CollectionTools.equals(list1.listIterator(), list2.listIterator()));
-	}
-
-	public void testGetListIteratorInt() {
-		List<String> list = this.buildStringList1();
-		String o = CollectionTools.get(list.listIterator(), 1);
-		assertEquals("one", o);
-		list.add(null);
-		o = CollectionTools.get(list.listIterator(), list.size() - 1);
-		assertNull(o);
-
-		boolean exCaught = false;
-		try {
-			CollectionTools.get(list.listIterator(), list.size());
-		} catch (IndexOutOfBoundsException ex) {
-			exCaught = true;
-		}
-		assertTrue(exCaught);
-	}
-
-	public void testIdenticalObjectArrayObjectArray() {
-		Object[] a1 = new Object[4];
-		for (int i = 0; i < a1.length; i++) {
-			a1[i] = String.valueOf(i * 1000);
-		}
-
-		Object[] a2 = new Object[a1.length];
-		for (int i = 0; i < a2.length; i++) {
-			a2[i] = a1[i];
-		}
-
-		assertTrue(CollectionTools.identical(a1, a2));
-		a2[2] = "2000";
-		assertFalse(CollectionTools.identical(a1, a2));
-		assertTrue(Arrays.equals(a1, a2));
-	}
-
-	public void testIdenticalObjectArrayObjectArray_BothNull() {
-		Object[] a1 = null;
-		Object[] a2 = null;
-		assertTrue(CollectionTools.identical(a1, a2));
-	}
-
-	public void testIdenticalObjectArrayObjectArray_OneNull() {
-		Object[] a1 = null;
-		Object[] a2 = new Object[0];
-		assertFalse(CollectionTools.identical(a1, a2));
-	}
-
-	public void testIdenticalObjectArrayObjectArray_DifferentLengths() {
-		Object[] a1 = new String[] {"foo", "bar"};
-		Object[] a2 = new String[] {"foo", "bar", "baz"};
-		assertFalse(CollectionTools.identical(a1, a2));
-	}
-
-	public void testIdenticalListIteratorListIterator() {
-		List<String> list1 = new ArrayList<String>();
-		list1.add("0");
-		list1.add("1");
-		list1.add("2");
-		list1.add("3");
-
-		List<String> list2 = new ArrayList<String>();
-		for (String s : list1) {
-			list2.add(s);
-		}
-		assertTrue(CollectionTools.identical(list1.listIterator(), list2.listIterator()));
-		assertTrue(CollectionTools.equals(list1.listIterator(), list2.listIterator()));
-	}
-
-	public void testIdenticalListIteratorListIterator_Not() {
-		List<String> list1 = new ArrayList<String>();
-		list1.add("0");
-		list1.add("1");
-		list1.add("2");
-		list1.add("3");
-
-		List<String> list2 = new ArrayList<String>();
-		for (String s : list1) {
-			list2.add(s);
-		}
-		list2.remove(0);
-		assertFalse(CollectionTools.identical(list1.listIterator(), list2.listIterator()));
-		assertFalse(CollectionTools.equals(list1.listIterator(), list2.listIterator()));
-	}
-
-	public void testIdenticalListIteratorListIterator_DifferentSizes() {
-		List<String> list1 = new ArrayList<String>();
-		list1.add("0");
-		list1.add("1");
-		list1.add("2");
-		list1.add("3");
-
-		List<String> list2 = new ArrayList<String>();
-		for (String s : list1) {
-			list2.add(s);
-		}
-		list2.remove(3);
-		assertFalse(CollectionTools.identical(list1.listIterator(), list2.listIterator()));
-		assertFalse(CollectionTools.equals(list1.listIterator(), list2.listIterator()));
-	}
-
-	public void testIdentityDiffEnd() {
-		String a = "a";
-		String b = "b";
-		String c = "c";
-		String d = "d";
-		String e = "e";
-		String a_ = a;
-		String b_ = b;
-		String c_ = c;
-		String d_ = d;
-		String e_ = e;
-		assertTrue((a == a_) && a.equals(a_));
-		assertTrue((b == b_) && b.equals(b_));
-		assertTrue((c == c_) && c.equals(c_));
-		assertTrue((d == d_) && d.equals(d_));
-		assertTrue((e == e_) && e.equals(e_));
-		String[] array1;
-		String[] array2;
-
-		array1 = new String[] { a, b, c, d, e };
-		array2 = new String[] { a_, b_, c_, d_, e_ };
-		assertEquals(-1, CollectionTools.identityDiffEnd(array1, array2));
-
-		array1 = new String[] { a };
-		array2 = new String[] { a_ };
-		assertEquals(-1, CollectionTools.identityDiffEnd(array1, array2));
-
-		array1 = new String[] { b, c, d, e };
-		array2 = new String[] { a_, b_, c_, d_, e_ };
-		assertEquals(4, CollectionTools.identityDiffEnd(array1, array2));
-
-		array1 = new String[] { a, b, c, d, e };
-		array2 = new String[] { b_, c_, d_, e_ };
-		assertEquals(4, CollectionTools.identityDiffEnd(array1, array2));
-
-		array1 = new String[0];
-		array2 = new String[] { a_, b_, c_, d_, e_ };
-		assertEquals(4, CollectionTools.identityDiffEnd(array1, array2));
-
-		array1 = new String[] { a, b, c, d, e };
-		array2 = new String[0];
-		assertEquals(4, CollectionTools.identityDiffEnd(array1, array2));
-
-		array1 = new String[0];
-		array2 = new String[0];
-		assertEquals(-1, CollectionTools.identityDiffEnd(array1, array2));
-
-		array1 = new String[] { a, b, c, d, e };
-		array2 = new String[] { b_, c_, a_, d_, e_ };
-		assertEquals(2, CollectionTools.identityDiffEnd(array1, array2));
-
-		array1 = new String[] { b, c, d, e };
-		array2 = new String[] { a_, c_, d_, e_ };
-		assertEquals(0, CollectionTools.identityDiffEnd(array1, array2));
-
-		array1 = new String[] { a, b, c, e };
-		array2 = new String[] { a_, b_, c_, d_ };
-		assertEquals(3, CollectionTools.identityDiffEnd(array1, array2));
-
-		String c__ = new String(c);
-		assertTrue((c != c__) && c.equals(c_));
-		array1 = new String[] { a, b, c, d, e };
-		array2 = new String[] { a_, b_, c__, d_, e_ };
-		assertEquals(2, CollectionTools.identityDiffEnd(array1, array2));
-
-		array1 = new String[] { a, b, null, d, e };
-		array2 = new String[] { a_, b_, c_, d_, e_ };
-		assertEquals(2, CollectionTools.identityDiffEnd(array1, array2));
-
-		array1 = new String[] { a, b, null, d, e };
-		array2 = new String[] { a_, b_, null, d_, e_ };
-		assertEquals(-1, CollectionTools.identityDiffEnd(array1, array2));
-	}
-
-	public void testIdentityDiffRange() {
-		String a = "a";
-		String b = "b";
-		String c = "c";
-		String d = "d";
-		String e = "e";
-		String a_ = a;
-		String b_ = b;
-		String c_ = c;
-		String d_ = d;
-		String e_ = e;
-		assertTrue((a == a_) && a.equals(a_));
-		assertTrue((b == b_) && b.equals(b_));
-		assertTrue((c == c_) && c.equals(c_));
-		assertTrue((d == d_) && d.equals(d_));
-		assertTrue((e == e_) && e.equals(e_));
-		String[] array1;
-		String[] array2;
-
-		array1 = new String[] { a, b, c, d, e };
-		array2 = new String[] { a_, b_, c_, d_, e_ };
-		assertEquals(new Range(5, -1), CollectionTools.identityDiffRange(array1, array2));
-
-		array1 = new String[] { a };
-		array2 = new String[] { a_ };
-		assertEquals(new Range(1, -1), CollectionTools.identityDiffRange(array1, array2));
-
-		array1 = new String[] { b, c, d, e };
-		array2 = new String[] { a_, b_, c_, d_, e_ };
-		assertEquals(new Range(0, 4), CollectionTools.identityDiffRange(array1, array2));
-
-		array1 = new String[] { a, b, c, d, e };
-		array2 = new String[] { b_, c_, d_, e_ };
-		assertEquals(new Range(0, 4), CollectionTools.identityDiffRange(array1, array2));
-
-		array1 = new String[0];
-		array2 = new String[] { a_, b_, c_, d_, e_ };
-		assertEquals(new Range(0, 4), CollectionTools.identityDiffRange(array1, array2));
-
-		array1 = new String[] { a, b, c, d, e };
-		array2 = new String[0];
-		assertEquals(new Range(0, 4), CollectionTools.identityDiffRange(array1, array2));
-
-		array1 = new String[0];
-		array2 = new String[0];
-		assertEquals(new Range(0, -1), CollectionTools.identityDiffRange(array1, array2));
-
-		array1 = new String[] { a, b, c, d, e };
-		array2 = new String[] { b_, c_, a_, d_, e_ };
-		assertEquals(new Range(0, 2), CollectionTools.identityDiffRange(array1, array2));
-
-		array1 = new String[] { b, c, d, e };
-		array2 = new String[] { a_, c_, d_, e_ };
-		assertEquals(new Range(0, 0), CollectionTools.identityDiffRange(array1, array2));
-
-		array1 = new String[] { a, b, c, e };
-		array2 = new String[] { a_, b_, c_, d_ };
-		assertEquals(new Range(3, 3), CollectionTools.identityDiffRange(array1, array2));
-
-		String c__ = new String(c);
-		assertTrue((c != c__) && c.equals(c_));
-		array1 = new String[] { a, b, c, d, e };
-		array2 = new String[] { a_, b_, c__, d_, e_ };
-		assertEquals(new Range(2, 2), CollectionTools.identityDiffRange(array1, array2));
-
-		array1 = new String[] { a, b, null, d, e };
-		array2 = new String[] { a_, b_, c_, d_, e_ };
-		assertEquals(new Range(2, 2), CollectionTools.identityDiffRange(array1, array2));
-
-		array1 = new String[] { a, b, null, d, e };
-		array2 = new String[] { a_, b_, null, d_, e_ };
-		assertEquals(new Range(5, -1), CollectionTools.identityDiffRange(array1, array2));
-	}
-
-	public void testIdentityDiffStart() {
-		String a = "a";
-		String b = "b";
-		String c = "c";
-		String d = "d";
-		String e = "e";
-		String a_ = a;
-		String b_ = b;
-		String c_ = c;
-		String d_ = d;
-		String e_ = e;
-		assertTrue((a == a_) && a.equals(a_));
-		assertTrue((b == b_) && b.equals(b_));
-		assertTrue((c == c_) && c.equals(c_));
-		assertTrue((d == d_) && d.equals(d_));
-		assertTrue((e == e_) && e.equals(e_));
-		String[] array1;
-		String[] array2;
-
-		array1 = new String[] { a, b, c, d, e };
-		array2 = new String[] { a_, b_, c_, d_, e_ };
-		assertEquals(5, CollectionTools.identityDiffStart(array1, array2));
-
-		array1 = new String[] { a };
-		array2 = new String[] { a_ };
-		assertEquals(1, CollectionTools.identityDiffStart(array1, array2));
-
-		array1 = new String[] { a, b, c, d };
-		array2 = new String[] { a_, b_, c_, d_, e_ };
-		assertEquals(4, CollectionTools.identityDiffStart(array1, array2));
-
-		array1 = new String[] { a, b, c, d, e };
-		array2 = new String[] { a_, b_, c_, d_ };
-		assertEquals(4, CollectionTools.identityDiffStart(array1, array2));
-
-		array1 = new String[0];
-		array2 = new String[] { a_, b_, c_, d_, e_ };
-		assertEquals(0, CollectionTools.identityDiffStart(array1, array2));
-
-		array1 = new String[] { a, b, c, d, e };
-		array2 = new String[0];
-		assertEquals(0, CollectionTools.identityDiffStart(array1, array2));
-
-		array1 = new String[0];
-		array2 = new String[0];
-		assertEquals(0, CollectionTools.identityDiffStart(array1, array2));
-
-		array1 = new String[] { a, b, c, d, e };
-		array2 = new String[] { a_, b_, e_, c_, d_ };
-		assertEquals(2, CollectionTools.identityDiffStart(array1, array2));
-
-		array1 = new String[] { a, b, c, e };
-		array2 = new String[] { a_, b_, c_, d_ };
-		assertEquals(3, CollectionTools.identityDiffStart(array1, array2));
-
-		array1 = new String[] { b, c, d, e };
-		array2 = new String[] { a_, c_, d_, e_ };
-		assertEquals(0, CollectionTools.identityDiffStart(array1, array2));
-
-		String c__ = new String(c);
-		assertTrue((c != c__) && c.equals(c_));
-		array1 = new String[] { a, b, c, d, e };
-		array2 = new String[] { a_, b_, c__, d_, e_ };
-		assertEquals(2, CollectionTools.identityDiffStart(array1, array2));
-
-		array1 = new String[] { a, b, null, d, e };
-		array2 = new String[] { a_, b_, c_, d_, e_ };
-		assertEquals(2, CollectionTools.identityDiffStart(array1, array2));
-
-		array1 = new String[] { a, b, null, d, e };
-		array2 = new String[] { a_, b_, null, d_, e_ };
-		assertEquals(5, CollectionTools.identityDiffStart(array1, array2));
-	}
-
-	public void testIndexOfListIteratorObject_String() {
-		List<String> list = this.buildStringList1();
-		assertEquals(1, CollectionTools.indexOf(list.listIterator(), "one"));
-	}
-
-	public void testIndexOfListIteratorObject_Null() {
-		List<String> list = this.buildStringList1();
-		list.add(null);
-		assertEquals(list.size() - 1, CollectionTools.indexOf(list.listIterator(), null));
-	}
-
-	public void testIndexOfListIteratorObject_Object() {
-		List<Object> list = new ArrayList<Object>();
-		list.add("0");
-		list.add("1");
-		list.add("2");
-		list.add("3");
-
-		String one = "1";
-		assertEquals(1, CollectionTools.indexOf(list.listIterator(), one));
-		list.add(null);
-		assertEquals(list.size() - 1, CollectionTools.indexOf(list.listIterator(), null));
-	}
-
-	public void testIndexOfObjectArrayObject() {
-		Object[] a = this.buildObjectArray1();
-		assertEquals(1, CollectionTools.indexOf(a, "one"));
-	}
-
-	public void testIndexOfObjectArrayObject_Null() {
-		Object[] a = this.buildObjectArray1();
-		a = CollectionTools.add(a, null);
-		assertEquals(a.length - 1, CollectionTools.indexOf(a, null));
-	}
-
-	public void testIndexOfCharArrayChar() {
-		char[] a = this.buildCharArray();
-		assertEquals(1, CollectionTools.indexOf(a, 'b'));
-		a = CollectionTools.add(a, 'd');
-		assertEquals(a.length - 1, CollectionTools.indexOf(a, 'd'));
-	}
-
-	public void testIndexOfIntArrayInt() {
-		int[] a = this.buildIntArray();
-		assertEquals(1, CollectionTools.indexOf(a, 10));
-		a = CollectionTools.add(a, 30);
-		assertEquals(a.length - 1, CollectionTools.indexOf(a, 30));
-	}
-
-	public void testInsertionIndexOfListComparable() {
-		List<String> list = Arrays.asList(new String[] { "A", "C", "D" });
-		assertEquals(1, CollectionTools.insertionIndexOf(list, "B"));
-
-		list = Arrays.asList(new String[] { "A", "B", "C", "D" });
-		assertEquals(2, CollectionTools.insertionIndexOf(list, "B"));
-
-		list = Arrays.asList(new String[] { "A", "B", "B", "B", "C", "D" });
-		assertEquals(4, CollectionTools.insertionIndexOf(list, "B"));
-
-		list = Arrays.asList(new String[] { "A", "B", "B", "B", "C", "D" });
-		assertEquals(6, CollectionTools.insertionIndexOf(list, "E"));
-
-		list = Arrays.asList(new String[] { "B", "B", "B", "C", "D" });
-		assertEquals(0, CollectionTools.insertionIndexOf(list, "A"));
-
-		list = Arrays.asList(new String[] { "A", "A", "B", "B", "C", "D" });
-		assertEquals(2, CollectionTools.insertionIndexOf(list, "A"));
-	}
-
-	public void testInsertionIndexOfListObjectComparator() {
-		Comparator<String> c = new ReverseComparator<String>();
-		List<String> list = Arrays.asList(new String[] { "D", "C", "A" });
-		assertEquals(2, CollectionTools.insertionIndexOf(list, "B", c));
-
-		list = Arrays.asList(new String[] { "D", "C", "B", "A" });
-		assertEquals(3, CollectionTools.insertionIndexOf(list, "B", c));
-
-		list = Arrays.asList(new String[] { "D", "C", "B", "B", "B", "A" });
-		assertEquals(5, CollectionTools.insertionIndexOf(list, "B", c));
-
-		list = Arrays.asList(new String[] { "D", "C", "B", "B", "B", "A" });
-		assertEquals(0, CollectionTools.insertionIndexOf(list, "E", c));
-
-		list = Arrays.asList(new String[] { "D", "C", "B", "B", "B" });
-		assertEquals(5, CollectionTools.insertionIndexOf(list, "A", c));
-
-		list = Arrays.asList(new String[] { "D", "C", "B", "B", "A", "A" });
-		assertEquals(6, CollectionTools.insertionIndexOf(list, "A", c));
-	}
-
-	public void testInsertionIndexOfObjectArrayComparable() {
-		String[] a = new String[] { "A", "C", "D" };
-		assertEquals(1, CollectionTools.insertionIndexOf(a, "B"));
-
-		a = new String[] { "A", "B", "C", "D" };
-		assertEquals(2, CollectionTools.insertionIndexOf(a, "B"));
-
-		a = new String[] { "A", "B", "B", "B", "C", "D" };
-		assertEquals(4, CollectionTools.insertionIndexOf(a, "B"));
-
-		a = new String[] { "A", "B", "B", "B", "C", "D" };
-		assertEquals(6, CollectionTools.insertionIndexOf(a, "E"));
-
-		a = new String[] { "B", "B", "B", "C", "D" };
-		assertEquals(0, CollectionTools.insertionIndexOf(a, "A"));
-
-		a = new String[] { "A", "A", "B", "B", "C", "D" };
-		assertEquals(2, CollectionTools.insertionIndexOf(a, "A"));
-	}
-
-	public void testInsertionIndexOfObjectArrayObjectComparator() {
-		Comparator<String> c = new ReverseComparator<String>();
-		String[] a = new String[] { "D", "C", "A" };
-		assertEquals(2, CollectionTools.insertionIndexOf(a, "B", c));
-
-		a = new String[] { "D", "C", "B", "A" };
-		assertEquals(3, CollectionTools.insertionIndexOf(a, "B", c));
-
-		a = new String[] { "D", "C", "B", "B", "B", "A" };
-		assertEquals(5, CollectionTools.insertionIndexOf(a, "B", c));
-
-		a = new String[] { "D", "C", "B", "B", "B", "A" };
-		assertEquals(0, CollectionTools.insertionIndexOf(a, "E", c));
-
-		a = new String[] { "D", "C", "B", "B", "B" };
-		assertEquals(5, CollectionTools.insertionIndexOf(a, "A", c));
-
-		a = new String[] { "D", "C", "B", "B", "A", "A" };
-		assertEquals(6, CollectionTools.insertionIndexOf(a, "A", c));
-	}
-
-	public void testIterableIterator() {
-		Iterator<Object> emptyIterator = EmptyIterator.instance();
-		Iterable<Object> emptyIterable = CollectionTools.iterable(emptyIterator);
-		
-		assertFalse(emptyIterable.iterator().hasNext());
-		
-		boolean exceptionThrown = false;
-		try {
-			emptyIterator = emptyIterable.iterator();
-			fail("invalid iterator: " + emptyIterator);
-		} catch (IllegalStateException ise) {
-			exceptionThrown = true;
-		}
-		assertTrue("IllegalStateException not thrown.", exceptionThrown);
-		
-	}
-
-	public void testIterableObjectArray() {
-		String[] strings = this.buildStringArray1();
-		int i = 0;
-		for (String string : CollectionTools.iterable(strings)) {
-			assertEquals(strings[i++], string);
-		}
-	}
-
-	public void testIteratorObjectArray() {
-		String[] a = this.buildStringArray1();
-		int i = 0;
-		for (Iterator<String> stream = CollectionTools.iterator(a); stream.hasNext(); i++) {
-			assertEquals(a[i], stream.next());
-		}
-	}
-
-	public void testLastIndexOfIteratorObject() {
-		List<String> list = this.buildStringList1();
-		assertEquals(1, CollectionTools.lastIndexOf(list.listIterator(), "one"));
-		list.add(null);
-		assertEquals(list.size() - 1, CollectionTools.lastIndexOf(list.listIterator(), null));
-	}
-
-	public void testLastIndexOfIteratorObject_Empty() {
-		assertEquals(-1, CollectionTools.lastIndexOf(EmptyIterator.instance(), "foo"));
-	}
-
-	public void testLastIndexOfObjectArrayObject() {
-		Object[] a = this.buildObjectArray1();
-		assertEquals(1, CollectionTools.lastIndexOf(a, "one"));
-	}
-
-	public void testLastIndexOfObjectArrayObject_Null() {
-		Object[] a = this.buildObjectArray1();
-		a = CollectionTools.add(a, null);
-		assertEquals(a.length - 1, CollectionTools.lastIndexOf(a, null));
-	}
-
-	public void testLastIndexOfCharArrayChar() {
-		char[] a = this.buildCharArray();
-		assertEquals(1, CollectionTools.lastIndexOf(a, 'b'));
-		a = CollectionTools.add(a, 'd');
-		assertEquals(a.length - 1, CollectionTools.lastIndexOf(a, 'd'));
-	}
-
-	public void testLastIndexOfIntArrayInt() {
-		int[] a = this.buildIntArray();
-		assertEquals(1, CollectionTools.lastIndexOf(a, 10));
-		a = CollectionTools.add(a, 30);
-		assertEquals(a.length - 1, CollectionTools.lastIndexOf(a, 30));
-	}
-
-	public void testListIterable() {
-		Iterable<String> iterable = this.buildStringList1();
-		assertEquals(this.buildStringList1(), CollectionTools.list(iterable));
-	}
-
-	public void testListIterableInt() {
-		Iterable<String> iterable = this.buildStringList1();
-		assertEquals(this.buildStringList1(), CollectionTools.list(iterable, 3));
-	}
-
-	public void testListIterator_String() {
-		List<String> list = CollectionTools.list(this.buildStringList1().iterator());
-		assertEquals(this.buildStringList1(), list);
-	}
-
-	public void testListIterator_StringObject() {
-		List<String> list1 = new ArrayList<String>();
-		list1.add("0");
-		list1.add("1");
-		list1.add("2");
-		list1.add("3");
-
-		List<Object> list2 = CollectionTools.<Object>list(list1.iterator());
-		assertEquals(list1, list2);
-	}
-
-	public void testListIterator_Empty() {
-		assertEquals(0, CollectionTools.list(EmptyIterator.instance()).size());
-	}
-
-	public void testListIteratorInt() {
-		List<String> list = CollectionTools.list(this.buildStringList1().iterator(), 3);
-		assertEquals(this.buildStringList1(), list);
-	}
-
-	public void testListIteratorInt_Empty() {
-		assertEquals(0, CollectionTools.list(EmptyIterator.instance(), 5).size());
-	}
-
-	public void testListObjectArray() {
-		List<String> list = CollectionTools.list(this.buildStringArray1());
-		assertEquals(this.buildStringList1(), list);
-	}
-
-	public void testListIteratorObjectArray() {
-		String[] a = this.buildStringArray1();
-		int i = 0;
-		for (ListIterator<String> stream = CollectionTools.listIterator(a); stream.hasNext(); i++) {
-			assertEquals(a[i], stream.next());
-		}
-	}
-
-	public void testListIteratorObjectArrayInt() {
-		String[] a = this.buildStringArray1();
-		int i = 1;
-		for (ListIterator<String> stream = CollectionTools.listIterator(a, 1); stream.hasNext(); i++) {
-			assertEquals(a[i], stream.next());
-		}
-	}
-
-	public void testMaxCharArray() {
-		assertEquals('c', CollectionTools.max(this.buildCharArray()));
-	}
-
-	public void testMaxIntArray() {
-		assertEquals(20, CollectionTools.max(this.buildIntArray()));
-	}
-
-	public void testMinCharArray() {
-		assertEquals('a', CollectionTools.min(this.buildCharArray()));
-	}
-
-	public void testMinIntArray() {
-		assertEquals(0, CollectionTools.min(this.buildIntArray()));
-	}
-
-	public void testMoveObjectArrayIntInt() {
-		String[] array = new String[] { "0", "1", "2", "3", "4", "5" };
-
-		String[] result = CollectionTools.move(array, 4, 2);
-		assertSame(array, result);  // the array is modified in place and returned
-		assertTrue(Arrays.equals(new String[] { "0", "1", "3", "4", "2", "5" }, result));
-
-		result = CollectionTools.move(array, 0, 5);
-		assertSame(array, result);  // the array is modified in place and returned
-		assertTrue(Arrays.equals(new String[] { "5", "0", "1", "3", "4", "2" }, result));
-
-		result = CollectionTools.move(array, 2, 4);
-		assertSame(array, result);  // the array is modified in place and returned
-		assertTrue(Arrays.equals(new String[] { "5", "0", "4", "1", "3", "2" }, result));
-
-		result = CollectionTools.move(array, 4, 4);
-		assertSame(array, result);  // the array is modified in place and returned
-		assertTrue(Arrays.equals(new String[] { "5", "0", "4", "1", "3", "2" }, result));
-	}
-
-	public void testMoveObjectArrayIntIntInt() {
-		String[] array = new String[] { "0", "1", "2", "3", "4", "5" };
-
-		String[] result = CollectionTools.move(array, 4, 2, 1);
-		assertSame(array, result);  // the array is modified in place and returned
-		assertTrue(Arrays.equals(new String[] { "0", "1", "3", "4", "2", "5" }, result));
-
-		result = CollectionTools.move(array, 0, 5, 1);
-		assertSame(array, result);  // the array is modified in place and returned
-		assertTrue(Arrays.equals(new String[] { "5", "0", "1", "3", "4", "2" }, result));
-
-		result = CollectionTools.move(array, 2, 4, 1);
-		assertSame(array, result);  // the array is modified in place and returned
-		assertTrue(Arrays.equals(new String[] { "5", "0", "4", "1", "3", "2" }, result));
-
-		result = CollectionTools.move(array, 2, 4, 2);
-		assertSame(array, result);  // the array is modified in place and returned
-		assertTrue(Arrays.equals(new String[] { "5", "0", "3", "2", "4", "1" }, result));
-
-		result = CollectionTools.move(array, 0, 1, 4);
-		assertSame(array, result);  // the array is modified in place and returned
-		assertTrue(Arrays.equals(new String[] { "0", "3", "2", "4", "5", "1" }, result));
-
-		result = CollectionTools.move(array, 1, 0, 4);
-		assertSame(array, result);  // the array is modified in place and returned
-		assertTrue(Arrays.equals(new String[] { "5", "0", "3", "2", "4", "1" }, result));
-
-		result = CollectionTools.move(array, 1, 1, 4);
-		assertSame(array, result);  // the array is modified in place and returned
-		assertTrue(Arrays.equals(new String[] { "5", "0", "3", "2", "4", "1" }, result));
-
-		result = CollectionTools.move(array, 1, 0, 0);
-		assertSame(array, result);  // the array is modified in place and returned
-		assertTrue(Arrays.equals(new String[] { "5", "0", "3", "2", "4", "1" }, result));
-	}
-
-	public void testMoveIntArrayIntInt() {
-		int[] array = new int[] { 0, 1, 2, 3, 4, 5 };
-
-		int[] result = CollectionTools.move(array, 4, 2);
-		assertSame(array, result);  // the array is modified in place and returned
-		assertTrue(Arrays.equals(new int[] { 0, 1, 3, 4, 2, 5 }, result));
-
-		result = CollectionTools.move(array, 0, 5);
-		assertSame(array, result);  // the array is modified in place and returned
-		assertTrue(Arrays.equals(new int[] { 5, 0, 1, 3, 4, 2 }, result));
-
-		result = CollectionTools.move(array, 2, 4);
-		assertSame(array, result);  // the array is modified in place and returned
-		assertTrue(Arrays.equals(new int[] { 5, 0, 4, 1, 3, 2 }, result));
-
-		result = CollectionTools.move(array, 2, 2);
-		assertSame(array, result);  // the array is modified in place and returned
-		assertTrue(Arrays.equals(new int[] { 5, 0, 4, 1, 3, 2 }, result));
-	}
-
-	public void testMoveIntArrayIntIntInt() {
-		int[] array = new int[] { 0, 1, 2, 3, 4, 5 };
-
-		int[] result = CollectionTools.move(array, 4, 2, 1);
-		assertSame(array, result);  // the array is modified in place and returned
-		assertTrue(Arrays.equals(new int[] { 0, 1, 3, 4, 2, 5 }, result));
-
-		result = CollectionTools.move(array, 0, 5, 1);
-		assertSame(array, result);  // the array is modified in place and returned
-		assertTrue(Arrays.equals(new int[] { 5, 0, 1, 3, 4, 2 }, result));
-
-		result = CollectionTools.move(array, 2, 4, 1);
-		assertSame(array, result);  // the array is modified in place and returned
-		assertTrue(Arrays.equals(new int[] { 5, 0, 4, 1, 3, 2 }, result));
-
-		result = CollectionTools.move(array, 2, 4, 2);
-		assertSame(array, result);  // the array is modified in place and returned
-		assertTrue(Arrays.equals(new int[] { 5, 0, 3, 2, 4, 1 }, result));
-
-		result = CollectionTools.move(array, 0, 1, 4);
-		assertSame(array, result);  // the array is modified in place and returned
-		assertTrue(Arrays.equals(new int[] { 0, 3, 2, 4, 5, 1 }, result));
-
-		result = CollectionTools.move(array, 1, 0, 4);
-		assertSame(array, result);  // the array is modified in place and returned
-		assertTrue(Arrays.equals(new int[] { 5, 0, 3, 2, 4, 1 }, result));
-
-		result = CollectionTools.move(array, 1, 1, 4);
-		assertSame(array, result);  // the array is modified in place and returned
-		assertTrue(Arrays.equals(new int[] { 5, 0, 3, 2, 4, 1 }, result));
-
-		result = CollectionTools.move(array, 1, 0, 0);
-		assertSame(array, result);  // the array is modified in place and returned
-		assertTrue(Arrays.equals(new int[] { 5, 0, 3, 2, 4, 1 }, result));
-	}
-
-	public void testMoveCharArrayIntInt() {
-		char[] array = new char[] { 'a', 'b', 'c', 'd', 'e', 'f' };
-
-		char[] result = CollectionTools.move(array, 4, 2);
-		assertSame(array, result);  // the array is modified in place and returned
-		assertTrue(Arrays.equals(new char[] { 'a', 'b', 'd', 'e', 'c', 'f' }, result));
-
-		result = CollectionTools.move(array, 0, 5);
-		assertSame(array, result);  // the array is modified in place and returned
-		assertTrue(Arrays.equals(new char[] { 'f', 'a', 'b', 'd', 'e', 'c' }, result));
-
-		result = CollectionTools.move(array, 2, 4);
-		assertSame(array, result);  // the array is modified in place and returned
-		assertTrue(Arrays.equals(new char[] { 'f', 'a', 'e', 'b', 'd', 'c' }, result));
-
-		result = CollectionTools.move(array, 2, 2);
-		assertSame(array, result);  // the array is modified in place and returned
-		assertTrue(Arrays.equals(new char[] { 'f', 'a', 'e', 'b', 'd', 'c' }, result));
-	}
-
-	public void testMoveCharArrayIntIntInt() {
-		char[] array = new char[] { 'a', 'b', 'b', 'c', 'd', 'e' };
-
-		char[] result = CollectionTools.move(array, 4, 2, 1);
-		assertSame(array, result);  // the array is modified in place and returned
-		assertTrue(Arrays.equals(new char[] { 'a', 'b', 'c', 'd', 'b', 'e' }, result));
-
-		result = CollectionTools.move(array, 0, 5, 1);
-		assertSame(array, result);  // the array is modified in place and returned
-		assertTrue(Arrays.equals(new char[] { 'e', 'a', 'b', 'c', 'd', 'b' }, result));
-
-		result = CollectionTools.move(array, 2, 4, 1);
-		assertSame(array, result);  // the array is modified in place and returned
-		assertTrue(Arrays.equals(new char[] { 'e', 'a', 'd', 'b', 'c', 'b' }, result));
-
-		result = CollectionTools.move(array, 2, 4, 2);
-		assertSame(array, result);  // the array is modified in place and returned
-		assertTrue(Arrays.equals(new char[] { 'e', 'a', 'c', 'b', 'd', 'b' }, result));
-
-		result = CollectionTools.move(array, 0, 1, 4);
-		assertSame(array, result);  // the array is modified in place and returned
-		assertTrue(Arrays.equals(new char[] { 'a', 'c', 'b', 'd', 'e', 'b' }, result));
-
-		result = CollectionTools.move(array, 1, 0, 4);
-		assertSame(array, result);  // the array is modified in place and returned
-		assertTrue(Arrays.equals(new char[] { 'e', 'a', 'c', 'b', 'd', 'b' }, result));
-
-		result = CollectionTools.move(array, 1, 1, 4);
-		assertSame(array, result);  // the array is modified in place and returned
-		assertTrue(Arrays.equals(new char[] { 'e', 'a', 'c', 'b', 'd', 'b' }, result));
-
-		result = CollectionTools.move(array, 1, 0, 0);
-		assertSame(array, result);  // the array is modified in place and returned
-		assertTrue(Arrays.equals(new char[] { 'e', 'a', 'c', 'b', 'd', 'b' }, result));
-	}
-
-	public void testMoveListIntIntRandomAccess() {
-		List<String> list = new ArrayList<String>();
-		CollectionTools.addAll(list, new String[] { "0", "1", "2", "3", "4", "5" });
-
-		List<String> result = CollectionTools.move(list, 4, 2);
-		assertSame(list, result);  // the array is modified in place and returned
-		assertTrue(Arrays.equals(new String[] { "0", "1", "3", "4", "2", "5" }, result.toArray()));
-
-		result = CollectionTools.move(list, 0, 5);
-		assertSame(list, result);  // the array is modified in place and returned
-		assertTrue(Arrays.equals(new String[] { "5", "0", "1", "3", "4", "2" }, result.toArray()));
-
-		result = CollectionTools.move(list, 2, 4);
-		assertSame(list, result);  // the array is modified in place and returned
-		assertTrue(Arrays.equals(new String[] { "5", "0", "4", "1", "3", "2" }, result.toArray()));
-
-		result = CollectionTools.move(list, 2, 2);
-		assertSame(list, result);  // the array is modified in place and returned
-		assertTrue(Arrays.equals(new String[] { "5", "0", "4", "1", "3", "2" }, result.toArray()));
-	}
-
-	public void testMoveListIntIntSequentialAccess() {
-		List<String> list = new LinkedList<String>();
-		CollectionTools.addAll(list, new String[] { "0", "1", "2", "3", "4", "5" });
-
-		List<String> result = CollectionTools.move(list, 4, 2);
-		assertSame(list, result);  // the array is modified in place and returned
-		assertTrue(Arrays.equals(new String[] { "0", "1", "3", "4", "2", "5" }, result.toArray()));
-
-		result = CollectionTools.move(list, 0, 5);
-		assertSame(list, result);  // the array is modified in place and returned
-		assertTrue(Arrays.equals(new String[] { "5", "0", "1", "3", "4", "2" }, result.toArray()));
-
-		result = CollectionTools.move(list, 2, 4);
-		assertSame(list, result);  // the array is modified in place and returned
-		assertTrue(Arrays.equals(new String[] { "5", "0", "4", "1", "3", "2" }, result.toArray()));
-
-		result = CollectionTools.move(list, 2, 2);
-		assertSame(list, result);  // the array is modified in place and returned
-		assertTrue(Arrays.equals(new String[] { "5", "0", "4", "1", "3", "2" }, result.toArray()));
-	}
-
-	public void testMoveListIntIntIntRandomAccess() {
-		List<String> list = new ArrayList<String>(Arrays.asList(new String[] { "0", "1", "2", "3", "4", "5" }));
-
-		List<String> result = CollectionTools.move(list, 4, 2, 1);
-		assertSame(list, result);  // the array is modified in place and returned
-		assertTrue(Arrays.equals(new String[] { "0", "1", "3", "4", "2", "5" }, result.toArray()));
-
-		result = CollectionTools.move(list, 0, 5, 1);
-		assertSame(list, result);  // the array is modified in place and returned
-		assertTrue(Arrays.equals(new String[] { "5", "0", "1", "3", "4", "2" }, result.toArray()));
-
-		result = CollectionTools.move(list, 2, 4, 1);
-		assertSame(list, result);  // the array is modified in place and returned
-		assertTrue(Arrays.equals(new String[] { "5", "0", "4", "1", "3", "2" }, result.toArray()));
-
-		result = CollectionTools.move(list, 2, 4, 2);
-		assertSame(list, result);  // the array is modified in place and returned
-		assertTrue(Arrays.equals(new String[] { "5", "0", "3", "2", "4", "1" }, result.toArray()));
-
-		result = CollectionTools.move(list, 0, 1, 4);
-		assertSame(list, result);  // the array is modified in place and returned
-		assertTrue(Arrays.equals(new String[] { "0", "3", "2", "4", "5", "1" }, result.toArray()));
-
-		result = CollectionTools.move(list, 1, 0, 4);
-		assertSame(list, result);  // the array is modified in place and returned
-		assertTrue(Arrays.equals(new String[] { "5", "0", "3", "2", "4", "1" }, result.toArray()));
-
-		result = CollectionTools.move(list, 1, 1, 4);
-		assertSame(list, result);  // the array is modified in place and returned
-		assertTrue(Arrays.equals(new String[] { "5", "0", "3", "2", "4", "1" }, result.toArray()));
-
-		result = CollectionTools.move(list, 1, 0, 0);
-		assertSame(list, result);  // the array is modified in place and returned
-		assertTrue(Arrays.equals(new String[] { "5", "0", "3", "2", "4", "1" }, result.toArray()));
-	}
-
-	public void testMoveListIntIntIntSequentialAccess() {
-		List<String> list = new LinkedList<String>(Arrays.asList(new String[] { "0", "1", "2", "3", "4", "5" }));
-
-		List<String> result = CollectionTools.move(list, 4, 2, 1);
-		assertSame(list, result);  // the array is modified in place and returned
-		assertTrue(Arrays.equals(new String[] { "0", "1", "3", "4", "2", "5" }, result.toArray()));
-
-		result = CollectionTools.move(list, 0, 5, 1);
-		assertSame(list, result);  // the array is modified in place and returned
-		assertTrue(Arrays.equals(new String[] { "5", "0", "1", "3", "4", "2" }, result.toArray()));
-
-		result = CollectionTools.move(list, 2, 4, 1);
-		assertSame(list, result);  // the array is modified in place and returned
-		assertTrue(Arrays.equals(new String[] { "5", "0", "4", "1", "3", "2" }, result.toArray()));
-
-		result = CollectionTools.move(list, 2, 4, 2);
-		assertSame(list, result);  // the array is modified in place and returned
-		assertTrue(Arrays.equals(new String[] { "5", "0", "3", "2", "4", "1" }, result.toArray()));
-
-		result = CollectionTools.move(list, 0, 1, 4);
-		assertSame(list, result);  // the array is modified in place and returned
-		assertTrue(Arrays.equals(new String[] { "0", "3", "2", "4", "5", "1" }, result.toArray()));
-
-		result = CollectionTools.move(list, 1, 0, 4);
-		assertSame(list, result);  // the array is modified in place and returned
-		assertTrue(Arrays.equals(new String[] { "5", "0", "3", "2", "4", "1" }, result.toArray()));
-
-		result = CollectionTools.move(list, 1, 1, 4);
-		assertSame(list, result);  // the array is modified in place and returned
-		assertTrue(Arrays.equals(new String[] { "5", "0", "3", "2", "4", "1" }, result.toArray()));
-
-		result = CollectionTools.move(list, 1, 0, 0);
-		assertSame(list, result);  // the array is modified in place and returned
-		assertTrue(Arrays.equals(new String[] { "5", "0", "3", "2", "4", "1" }, result.toArray()));
-	}
-
-	public void testRemoveAllObjectArrayObjectArray() {
-		String[] a1 = new String[] { "A", "A", "B", "B", "C", "C", "D", "D", "E", "E", "F", "F" };
-		String[] a2 = new String[] { "E", "B" };
-		String[] a3 = CollectionTools.removeAll(a1, a2);
-		assertTrue(Arrays.equals(new String[] { "A", "A", "C", "C", "D", "D", "F", "F" }, a3));
-	}
-
-	public void testRemoveAllObjectArrayObjectArray_Empty() {
-		String[] a1 = new String[] { "A", "A", "B", "B", "C", "C", "D", "D", "E", "E", "F", "F" };
-		String[] a2 = new String[0];
-		String[] a3 = CollectionTools.removeAll(a1, a2);
-		assertTrue(Arrays.equals(a1, a3));
-	}
-
-	public void testRemoveAllObjectArrayObjectArray_NoMatches() {
-		String[] a1 = new String[] { "A", "A", "B", "B", "C", "C", "D", "D", "E", "E", "F", "F" };
-		String[] a2 = new String[] { "X", "Y", "Z" };
-		String[] a3 = CollectionTools.removeAll(a1, a2);
-		assertTrue(Arrays.equals(a1, a3));
-	}
-
-	public void testRemoveAllObjectArrayIterable() {
-		String[] a1 = new String[] { "A", "A", "B", "B", "C", "C", "D", "D", "E", "E", "F", "F" };
-		Iterable<?> iterable = Arrays.asList(new String[] { "E", "B" });
-		String[] a3 = CollectionTools.removeAll(a1, iterable);
-		assertTrue(Arrays.equals(new String[] { "A", "A", "C", "C", "D", "D", "F", "F" }, a3));
-	}
-
-	public void testRemoveAllObjectArrayIterableInt() {
-		String[] a1 = new String[] { "A", "A", "B", "B", "C", "C", "D", "D", "E", "E", "F", "F" };
-		Iterable<?> iterable = Arrays.asList(new String[] { "E", "B" });
-		String[] a3 = CollectionTools.removeAll(a1, iterable, 7);
-		assertTrue(Arrays.equals(new String[] { "A", "A", "C", "C", "D", "D", "F", "F" }, a3));
-	}
-
-	public void testRemoveAllObjectArrayIterator() {
-		String[] a1 = new String[] { "A", "A", "B", "B", "C", "C", "D", "D", "E", "E", "F", "F" };
-		Iterable<?> iterable = Arrays.asList(new String[] { "E", "B" });
-		String[] a3 = CollectionTools.removeAll(a1, iterable.iterator());
-		assertTrue(Arrays.equals(new String[] { "A", "A", "C", "C", "D", "D", "F", "F" }, a3));
-	}
-
-	public void testRemoveAllObjectArrayIteratorInt() {
-		String[] a1 = new String[] { "A", "A", "B", "B", "C", "C", "D", "D", "E", "E", "F", "F" };
-		Iterable<?> iterable = Arrays.asList(new String[] { "E", "B" });
-		String[] a3 = CollectionTools.removeAll(a1, iterable.iterator(), 7);
-		assertTrue(Arrays.equals(new String[] { "A", "A", "C", "C", "D", "D", "F", "F" }, a3));
-	}
-
-	public void testRemoveAllObjectArrayCollection() {
-		String[] a1 = new String[] { "A", "A", "B", "B", "C", "C", "D", "D", "E", "E", "F", "F" };
-		Collection<String> collection = Arrays.asList(new String[] { "E", "B" });
-		String[] a3 = CollectionTools.removeAll(a1, collection);
-		assertTrue(Arrays.equals(new String[] { "A", "A", "C", "C", "D", "D", "F", "F" }, a3));
-	}
-
-	public void testRemoveAllObjectArrayCollection_Empty() {
-		String[] a1 = new String[] { "A", "A", "B", "B", "C", "C", "D", "D", "E", "E", "F", "F" };
-		Collection<String> collection = new ArrayList<String>();
-		String[] a3 = CollectionTools.removeAll(a1, collection);
-		assertTrue(Arrays.equals(a1, a3));
-	}
-
-	public void testRemoveAllObjectArrayCollection_NoMatches() {
-		String[] a1 = new String[] { "A", "A", "B", "B", "C", "C", "D", "D", "E", "E", "F", "F" };
-		Collection<String> collection = Arrays.asList(new String[] { "X", "Y", "Z" });
-		String[] a3 = CollectionTools.removeAll(a1, collection);
-		assertTrue(Arrays.equals(a1, a3));
-	}
-
-	public void testRemoveAllCharArrayCharArray() {
-		char[] a1 = new char[] { 'A', 'A', 'B', 'B', 'C', 'C', 'D', 'D', 'E', 'E', 'F', 'F' };
-		char[] a2 = new char[] { 'E', 'B' };
-		assertTrue(Arrays.equals(new char[] { 'A', 'A', 'C', 'C', 'D', 'D', 'F', 'F' }, CollectionTools.removeAll(a1, a2)));
-	}
-
-	public void testRemoveAllCharArrayCharArray_Empty() {
-		char[] a1 = new char[] { 'A', 'A', 'B', 'B', 'C', 'C', 'D', 'D', 'E', 'E', 'F', 'F' };
-		char[] a2 = new char[0];
-		assertTrue(Arrays.equals(a1, CollectionTools.removeAll(a1, a2)));
-	}
-
-	public void testRemoveAllCharArrayCharArray_NoMatches() {
-		char[] a1 = new char[] { 'A', 'A', 'B', 'B', 'C', 'C', 'D', 'D', 'E', 'E', 'F', 'F' };
-		char[] a2 = new char[] { 'X', 'Z' };
-		assertTrue(Arrays.equals(a1, CollectionTools.removeAll(a1, a2)));
-	}
-
-	public void testRemoveAllIntArrayIntArray() {
-		int[] a1 = new int[] { 1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6 };
-		int[] a2 = new int[] { 5, 2 };
-		assertTrue(Arrays.equals(new int[] { 1, 1, 3, 3, 4, 4, 6, 6 }, CollectionTools.removeAll(a1, a2)));
-	}
-
-	public void testRemoveAllIntArrayIntArray_Empty() {
-		int[] a1 = new int[] { 1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6 };
-		int[] a2 = new int[0];
-		assertTrue(Arrays.equals(a1, CollectionTools.removeAll(a1, a2)));
-	}
-
-	public void testRemoveAllIntArrayIntArray_NoMatches() {
-		int[] a1 = new int[] { 1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6 };
-		int[] a2 = new int[] { 52, 67 };
-		assertTrue(Arrays.equals(a1, CollectionTools.removeAll(a1, a2)));
-	}
-
-	public void testRemoveObjectArrayObject_Object() {
-		Object[] a = this.buildObjectArray1();
-		a = CollectionTools.add(a, "three");
-		a = CollectionTools.add(a, "four");
-		a = CollectionTools.add(a, "five");
-
-		assertEquals(6, a.length);
-		assertTrue(CollectionTools.contains(a, "three"));
-		a = CollectionTools.remove(a, "three");
-		assertEquals(5, a.length);
-		assertFalse(CollectionTools.contains(a, "three"));
-		assertTrue(CollectionTools.contains(a, "four"));
-		assertTrue(CollectionTools.contains(a, "five"));
-	}
-
-	public void testRemoveObjectArrayObject_String() {
-		String[] a = this.buildStringArray1();
-		a = CollectionTools.add(a, "three");
-		a = CollectionTools.add(a, "four");
-		a = CollectionTools.add(a, "five");
-
-		assertEquals(6, a.length);
-		assertTrue(CollectionTools.contains(a, "three"));
-		a = CollectionTools.remove(a, "three");
-		assertEquals(5, a.length);
-		assertFalse(CollectionTools.contains(a, "three"));
-		assertTrue(CollectionTools.contains(a, "four"));
-		assertTrue(CollectionTools.contains(a, "five"));
-	}
-
-	public void testRemoveCharArrayChar() {
-		char[] a = this.buildCharArray();
-		a = CollectionTools.add(a, 'd');
-		a = CollectionTools.add(a, 'e');
-		a = CollectionTools.add(a, 'f');
-
-		assertEquals(6, a.length);
-		assertTrue(CollectionTools.contains(a, 'd'));
-		a = CollectionTools.remove(a, 'd');
-		assertEquals(5, a.length);
-		assertFalse(CollectionTools.contains(a, 'd'));
-		assertTrue(CollectionTools.contains(a, 'e'));
-		assertTrue(CollectionTools.contains(a, 'f'));
-	}
-
-	public void testRemoveIntArrayInt() {
-		int[] a = this.buildIntArray();
-		a = CollectionTools.add(a, 30);
-		a = CollectionTools.add(a, 40);
-		a = CollectionTools.add(a, 50);
-
-		assertEquals(6, a.length);
-		assertTrue(CollectionTools.contains(a, 30));
-		a = CollectionTools.remove(a, 30);
-		assertEquals(5, a.length);
-		assertFalse(CollectionTools.contains(a, 30));
-		assertTrue(CollectionTools.contains(a, 40));
-		assertTrue(CollectionTools.contains(a, 50));
-	}
-
-	public void testRemoveAllCollectionIterable() {
-		Collection<String> c = this.buildStringList1();
-		Iterable<String> iterable = this.buildStringList1();
-		assertTrue(CollectionTools.removeAll(c, iterable));
-		assertEquals(0, c.size());
-		assertFalse(c.contains("one"));
-		assertFalse(c.contains("two"));
-		assertFalse(c.contains("three"));
-
-		c = this.buildStringList1();
-		iterable = this.buildStringList2();
-		assertFalse(CollectionTools.removeAll(c, iterable));
-		assertEquals(this.buildStringList1().size(), c.size());
-		assertEquals(this.buildStringList1(), c);
-	}
-
-	public void testRemoveAllCollectionIterableInt() {
-		Collection<String> c = this.buildStringList1();
-		Iterable<String> iterable = this.buildStringList1();
-		assertTrue(CollectionTools.removeAll(c, iterable, 3));
-		assertEquals(0, c.size());
-		assertFalse(c.contains("one"));
-		assertFalse(c.contains("two"));
-		assertFalse(c.contains("three"));
-
-		c = this.buildStringList1();
-		iterable = this.buildStringList2();
-		assertFalse(CollectionTools.removeAll(c, iterable, 3));
-		assertEquals(this.buildStringList1().size(), c.size());
-		assertEquals(this.buildStringList1(), c);
-	}
-
-	public void testRemoveAllCollectionIterator_Empty() {
-		Collection<String> c = this.buildStringList1();
-		assertTrue(CollectionTools.removeAll(c, this.buildStringList1().iterator()));
-		assertEquals(0, c.size());
-		assertFalse(c.contains("one"));
-		assertFalse(c.contains("two"));
-		assertFalse(c.contains("three"));
-
-		c = this.buildStringList1();
-		assertFalse(CollectionTools.removeAll(c, this.buildStringList2().iterator()));
-		assertEquals(this.buildStringList1().size(), c.size());
-		assertEquals(this.buildStringList1(), c);
-	}
-
-	public void testRemoveAllCollectionIterator_Duplicates() {
-		Collection<String> c = new ArrayList<String>();
-		c.add("a");
-		c.add("a");
-		c.add("b");
-		c.add("c");
-		c.add("d");
-		c.add("d");
-		String[] a = new String[] { "a", "d" };
-		Iterator<String> iterator = new ArrayIterator<String>(a);
-		assertTrue(CollectionTools.removeAll(c, iterator));
-		assertEquals(2, c.size());
-		assertFalse(c.contains("a"));
-		assertTrue(c.contains("b"));
-		assertTrue(c.contains("c"));
-		assertFalse(c.contains("d"));
-
-		iterator = new ArrayIterator<String>(a);
-		assertFalse(CollectionTools.removeAll(c, iterator));
-	}
-
-	public void testRemoveAllCollectionIterator_ObjectString() {
-		Collection<Object> c = new ArrayList<Object>();
-		c.add("a");
-		c.add("a");
-		c.add("b");
-		c.add("c");
-		c.add("d");
-		c.add("d");
-		String[] a = new String[] { "a", "d" };
-		Iterator<String> iterator = new ArrayIterator<String>(a);
-		assertTrue(CollectionTools.removeAll(c, iterator));
-		assertEquals(2, c.size());
-		assertFalse(c.contains("a"));
-		assertTrue(c.contains("b"));
-		assertTrue(c.contains("c"));
-		assertFalse(c.contains("d"));
-
-		iterator = new ArrayIterator<String>(a);
-		assertFalse(CollectionTools.removeAll(c, iterator));
-	}
-
-	public void testRemoveAllCollectionIteratotInt() {
-		Collection<String> c = new ArrayList<String>();
-		c.add("a");
-		c.add("a");
-		c.add("b");
-		c.add("c");
-		c.add("d");
-		c.add("d");
-		String[] a = new String[] { "a", "d" };
-		Iterator<String> iterator = new ArrayIterator<String>(a);
-		assertTrue(CollectionTools.removeAll(c, iterator, 2));
-		assertEquals(2, c.size());
-		assertFalse(c.contains("a"));
-		assertTrue(c.contains("b"));
-		assertTrue(c.contains("c"));
-		assertFalse(c.contains("d"));
-
-		iterator = new ArrayIterator<String>(a);
-		assertFalse(CollectionTools.removeAll(c, iterator));
-	}
-
-	public void testRemoveAllCollectionObjectArray_Empty() {
-		Collection<String> c = this.buildStringList1();
-		assertTrue(CollectionTools.removeAll(c, this.buildObjectArray1()));
-		assertEquals(0, c.size());
-		assertFalse(c.contains("one"));
-		assertFalse(c.contains("two"));
-		assertFalse(c.contains("three"));
-
-		c = this.buildStringList1();
-		assertFalse(CollectionTools.removeAll(c, this.buildObjectArray2()));
-		assertEquals(this.buildStringList1().size(), c.size());
-		assertEquals(this.buildStringList1(), c);
-	}
-
-	public void testRemoveAllCollectionObjectArray_Duplicates() {
-		Collection<String> c = new ArrayList<String>();
-		c.add("a");
-		c.add("a");
-		c.add("b");
-		c.add("c");
-		c.add("d");
-		c.add("d");
-		String[] a = new String[] { "a", "d" };
-		assertTrue(CollectionTools.removeAll(c, a));
-		assertEquals(2, c.size());
-		assertFalse(c.contains("a"));
-		assertTrue(c.contains("b"));
-		assertTrue(c.contains("c"));
-		assertFalse(c.contains("d"));
-
-		assertFalse(CollectionTools.removeAll(c, a));
-	}
-
-	public void testRemoveAllCollectionObjectArray_MoreDuplicates() {
-		Collection<String> c = new ArrayList<String>();
-		c.add("a");
-		c.add("b");
-		c.add("c");
-		c.add("d");
-		c.add("a");
-		c.add("d");
-		c.add("d");
-		c.add("a");
-		c.add("c");
-		String[] a = new String[] { "a", "d" };
-		assertTrue(CollectionTools.removeAll(c, a));
-		assertEquals(3, c.size());
-		assertFalse(c.contains("a"));
-		assertTrue(c.contains("b"));
-		assertTrue(c.contains("c"));
-		assertFalse(c.contains("d"));
-
-		assertFalse(CollectionTools.removeAll(c, a));
-	}
-
-	public void testRemoveAllOccurrencesCollectionObject() {
-		Collection<String> c = this.buildStringList1();
-		assertEquals(3, c.size());
-		assertFalse(CollectionTools.removeAllOccurrences(c, "three"));
-		assertTrue(CollectionTools.removeAllOccurrences(c, "two"));
-		assertFalse(CollectionTools.removeAllOccurrences(c, "two"));
-		assertEquals(2, c.size());
-
-		c.add("five");
-		c.add("five");
-		c.add("five");
-		assertEquals(5, c.size());
-		assertTrue(CollectionTools.removeAllOccurrences(c, "five"));
-		assertFalse(CollectionTools.removeAllOccurrences(c, "five"));
-		assertEquals(2, c.size());
-
-		c.add(null);
-		c.add(null);
-		c.add(null);
-		assertEquals(5, c.size());
-		assertTrue(CollectionTools.removeAllOccurrences(c, null));
-		assertFalse(CollectionTools.removeAllOccurrences(c, null));
-		assertEquals(2, c.size());
-	}
-
-	public void testRemoveAllOccurrencesObjectArrayObject() {
-		String[] a = this.buildStringArray1();
-		assertEquals(3, a.length);
-		a = CollectionTools.removeAllOccurrences(a, "three");
-		assertEquals(3, a.length);
-		a = CollectionTools.removeAllOccurrences(a, "two");
-		assertEquals(2, a.length);
-		a = CollectionTools.removeAllOccurrences(a, "two");
-		assertEquals(2, a.length);
-
-		a = CollectionTools.add(a, "five");
-		a = CollectionTools.add(a, "five");
-		a = CollectionTools.add(a, "five");
-		assertEquals(5, a.length);
-		a = CollectionTools.removeAllOccurrences(a, "five");
-		assertEquals(2, a.length);
-		a = CollectionTools.removeAllOccurrences(a, "five");
-		assertEquals(2, a.length);
-
-		a = CollectionTools.add(a, null);
-		a = CollectionTools.add(a, null);
-		a = CollectionTools.add(a, null);
-		assertEquals(5, a.length);
-		a = CollectionTools.removeAllOccurrences(a, null);
-		assertEquals(2, a.length);
-		a = CollectionTools.removeAllOccurrences(a, null);
-		assertEquals(2, a.length);
-	}
-
-	public void testRemoveAllOccurrencesCharArrayChar() {
-		char[] a = this.buildCharArray();
-		assertEquals(3, a.length);
-		a = CollectionTools.removeAllOccurrences(a, 'd');
-		assertEquals(3, a.length);
-		a = CollectionTools.removeAllOccurrences(a, 'b');
-		assertEquals(2, a.length);
-		a = CollectionTools.removeAllOccurrences(a, 'b');
-		assertEquals(2, a.length);
-
-		a = CollectionTools.add(a, 'g');
-		a = CollectionTools.add(a, 'g');
-		a = CollectionTools.add(a, 'g');
-		assertEquals(5, a.length);
-		a = CollectionTools.removeAllOccurrences(a, 'g');
-		assertEquals(2, a.length);
-		a = CollectionTools.removeAllOccurrences(a, 'g');
-		assertEquals(2, a.length);
-	}
-
-	public void testRemoveAllOccurrencesIntArrayInt() {
-		int[] a = this.buildIntArray();
-		assertEquals(3, a.length);
-		a = CollectionTools.removeAllOccurrences(a, 55);
-		assertEquals(3, a.length);
-		a = CollectionTools.removeAllOccurrences(a, 10);
-		assertEquals(2, a.length);
-		a = CollectionTools.removeAllOccurrences(a, 10);
-		assertEquals(2, a.length);
-
-		a = CollectionTools.add(a, 77);
-		a = CollectionTools.add(a, 77);
-		a = CollectionTools.add(a, 77);
-		assertEquals(5, a.length);
-		a = CollectionTools.removeAllOccurrences(a, 77);
-		assertEquals(2, a.length);
-		a = CollectionTools.removeAllOccurrences(a, 77);
-		assertEquals(2, a.length);
-	}
-
-	public void testRemoveElementAtIndexObjectArrayInt() {
-		String[] a = new String[] { "A", "B", "A", "C", "A", "D" };
-		a = CollectionTools.removeElementAtIndex(a, 3);
-		assertTrue(Arrays.equals(new String[] { "A", "B", "A", "A", "D" }, a));
-	}
-
-	public void testRemoveElementAtIndexCharArrayInt() {
-		char[] a = new char[] { 'A', 'B', 'A', 'C', 'A', 'D' };
-		a = CollectionTools.removeElementAtIndex(a, 3);
-		assertTrue(Arrays.equals(new char[] { 'A', 'B', 'A', 'A', 'D' }, a));
-	}
-
-	public void testRemoveElementAtIndexIntArrayInt() {
-		int[] a = new int[] { 8, 6, 7, 33, 2, 11 };
-		a = CollectionTools.removeElementsAtIndex(a, 3, 3);
-		assertTrue(Arrays.equals(new int[] { 8, 6, 7 }, a));
-	}
-
-	public void testRemoveElementsAtIndexListIntInt() {
-		List<String> list = new ArrayList<String>(Arrays.asList(new String[] { "A", "B", "A", "C", "A", "D" }));
-		List<String> removed = CollectionTools.removeElementsAtIndex(list, 3, 2);
-		assertTrue(Arrays.equals(new String[] { "A", "B", "A", "D" }, list.toArray()));
-		assertTrue(Arrays.equals(new String[] { "C", "A" }, removed.toArray()));
-
-		list = new ArrayList<String>(Arrays.asList(new String[] { "A", "B", "C", "D", "E", "F" }));
-		removed = CollectionTools.removeElementsAtIndex(list, 3, 3);
-		assertTrue(Arrays.equals(new String[] { "A", "B", "C" }, list.toArray()));
-		assertTrue(Arrays.equals(new String[] { "D", "E", "F" }, removed.toArray()));
-
-		list = new ArrayList<String>(Arrays.asList(new String[] { "A", "B", "C", "D", "E", "F" }));
-		removed = CollectionTools.removeElementsAtIndex(list, 0, 3);
-		assertTrue(Arrays.equals(new String[] { "D", "E", "F" }, list.toArray()));
-		assertTrue(Arrays.equals(new String[] { "A", "B", "C" }, removed.toArray()));
-	}
-
-	public void testRemoveElementsAtIndexObjectArrayIntInt() {
-		String[] a = new String[] { "A", "B", "A", "C", "A", "D" };
-		a = CollectionTools.removeElementsAtIndex(a, 3, 2);
-		assertTrue(Arrays.equals(new String[] { "A", "B", "A", "D" }, a));
-	}
-
-	public void testRemoveElementsAtIndexObjectArrayIntInt_Empty() {
-		String[] a = new String[] { "A", "B", "A", "C", "A", "D" };
-		a = CollectionTools.removeElementsAtIndex(a, 0, 6);
-		assertEquals(0, a.length);
-	}
-
-	public void testRemoveElementsAtIndexCharArrayIntInt() {
-		char[] a = new char[] { 'A', 'B', 'A', 'C', 'A', 'D' };
-		a = CollectionTools.removeElementsAtIndex(a, 0, 5);
-		assertTrue(Arrays.equals(new char[] { 'D' }, a));
-	}
-
-	public void testRemoveElementsAtIndexCharArrayIntInt_Empty() {
-		char[] a = new char[] { 'A', 'B', 'A', 'C', 'A', 'D' };
-		a = CollectionTools.removeElementsAtIndex(a, 0, 6);
-		assertEquals(0, a.length);
-	}
-
-	public void testRemoveElementsAtIndexIntArrayIntInt() {
-		int[] a = new int[] { 8, 6, 7, 33, 2, 11 };
-		a = CollectionTools.removeElementsAtIndex(a, 3, 3);
-		assertTrue(Arrays.equals(new int[] { 8, 6, 7 }, a));
-	}
-
-	public void testRemoveElementsAtIndexIntArrayIntInt_Empty() {
-		int[] a = new int[] { 8, 6, 7, 33, 2, 11 };
-		a = CollectionTools.removeElementsAtIndex(a, 0, 6);
-		assertEquals(0, a.length);
-	}
-
-	public void testReplaceAllObjectArrayObjectObject_Object() {
-		Object[] a = new Object[] { "A", "B", "A", "C", "A", "D" };
-		a = CollectionTools.replaceAll(a, "A", "Z");
-		assertTrue(Arrays.equals(new Object[] { "Z", "B", "Z", "C", "Z", "D" }, a));
-	}
-
-	public void testReplaceAllObjectArrayObjectObject_String() {
-		String[] a = new String[] { "A", "B", "A", "C", "A", "D" };
-		a = CollectionTools.replaceAll(a, "A", "Z");
-		assertTrue(Arrays.equals(new String[] { "Z", "B", "Z", "C", "Z", "D" }, a));
-	}
-
-	public void testReplaceAllObjectArrayObjectObject_Null() {
-		String[] a = new String[] { null, "B", null, "C", null, "D" };
-		a = CollectionTools.replaceAll(a, null, "Z");
-		assertTrue(Arrays.equals(new String[] { "Z", "B", "Z", "C", "Z", "D" }, a));
-	}
-
-	public void testReplaceAllCharArrayCharChar() {
-		char[] a = new char[] { 'A', 'B', 'A', 'C', 'A', 'D' };
-		a = CollectionTools.replaceAll(a, 'A', 'Z');
-		assertTrue(Arrays.equals(new char[] { 'Z', 'B', 'Z', 'C', 'Z', 'D' }, a));
-	}
-
-	public void testReplaceAllIntArrayIntInt() {
-		int[] a = new int[] { 0, 1, 0, 7, 0, 99 };
-		a = CollectionTools.replaceAll(a, 0, 13);
-		assertTrue(Arrays.equals(new int[] { 13, 1, 13, 7, 13, 99 }, a));
-	}
-
-	public void testRetainAllCollectionIterable() {
-		Collection<String> c = this.buildStringList1();
-		Iterable<String> iterable = this.buildStringList1();
-		assertFalse(CollectionTools.retainAll(c, iterable));
-		assertEquals(this.buildStringList1().size(), c.size());
-		assertEquals(this.buildStringList1(), c);
-
-		iterable = this.buildStringList2();
-		assertTrue(CollectionTools.retainAll(c, iterable));
-		assertEquals(0, c.size());
-		assertFalse(c.contains("one"));
-		assertFalse(c.contains("two"));
-		assertFalse(c.contains("three"));
-	}
-
-	public void testRetainAllCollectionIterableInt() {
-		Collection<String> c = this.buildStringList1();
-		Iterable<String> iterable = this.buildStringList1();
-		assertFalse(CollectionTools.retainAll(c, iterable));
-		assertEquals(this.buildStringList1().size(), c.size());
-		assertEquals(this.buildStringList1(), c);
-
-		iterable = this.buildStringList2();
-		assertTrue(CollectionTools.retainAll(c, iterable, 7));
-		assertEquals(0, c.size());
-		assertFalse(c.contains("one"));
-		assertFalse(c.contains("two"));
-		assertFalse(c.contains("three"));
-	}
-
-	public void testRetainAllCollectionIterator() {
-		Collection<String> c = this.buildStringList1();
-		assertFalse(CollectionTools.retainAll(c, this.buildStringList1().iterator()));
-		assertEquals(this.buildStringList1().size(), c.size());
-		assertEquals(this.buildStringList1(), c);
-
-		assertTrue(CollectionTools.retainAll(c, this.buildStringList2().iterator()));
-		assertEquals(0, c.size());
-		assertFalse(c.contains("one"));
-		assertFalse(c.contains("two"));
-		assertFalse(c.contains("three"));
-	}
-
-	public void testRetainAllCollectionIterator_ObjectString() {
-		Collection<Object> c1 = new ArrayList<Object>();
-		c1.add("zero");
-		c1.add("one");
-		c1.add("two");
-		
-		Collection<String> c2 = new ArrayList<String>();
-		c2.add("zero");
-		c2.add("one");
-		c2.add("two");
-		
-		assertFalse(CollectionTools.retainAll(c1, c2.iterator()));
-		assertEquals(c2.size(), c1.size());
-		assertEquals(c2, c1);
-
-		Collection<String> c3 = new ArrayList<String>();
-		c3.add("three");
-		c3.add("four");
-		c3.add("five");
-	}
-
-	public void testRetainAllCollectionIterator_EmptyIterator() {
-		Collection<String> c = this.buildStringList1();
-		assertTrue(CollectionTools.retainAll(c, EmptyIterator.instance()));
-		assertEquals(0, c.size());
-	}
-
-	public void testRetainAllCollectionIterator_EmptyCollection() {
-		Collection<String> c = new ArrayList<String>();
-		assertFalse(CollectionTools.retainAll(c, this.buildStringList1().iterator()));
-		assertEquals(0, c.size());
-	}
-
-	public void testRetainAllCollectionIteratorInt() {
-		Collection<String> c = this.buildStringList1();
-		assertFalse(CollectionTools.retainAll(c, this.buildStringList1().iterator(), 8));
-		assertEquals(this.buildStringList1().size(), c.size());
-		assertEquals(this.buildStringList1(), c);
-
-		assertTrue(CollectionTools.retainAll(c, this.buildStringList2().iterator(), 9));
-		assertEquals(0, c.size());
-		assertFalse(c.contains("one"));
-		assertFalse(c.contains("two"));
-		assertFalse(c.contains("three"));
-	}
-
-	public void testRetainAllCollectionIteratorInt_EmptyIterator() {
-		Collection<String> c = this.buildStringList1();
-		assertTrue(CollectionTools.retainAll(c, EmptyIterator.instance(), 0));
-		assertEquals(0, c.size());
-	}
-
-	public void testRetainAllCollectionIteratorInt_EmptyCollection() {
-		Collection<String> c = new ArrayList<String>();
-		assertFalse(CollectionTools.retainAll(c, this.buildStringList1().iterator(), 3));
-		assertEquals(0, c.size());
-	}
-
-	public void testRetainAllCollectionObjectArray() {
-		Collection<String> c = this.buildStringList1();
-		assertFalse(CollectionTools.retainAll(c, this.buildObjectArray1()));
-		assertEquals(this.buildStringList1().size(), c.size());
-		assertEquals(this.buildStringList1(), c);
-
-		assertTrue(CollectionTools.retainAll(c, this.buildObjectArray2()));
-		assertEquals(0, c.size());
-		assertFalse(c.contains("one"));
-		assertFalse(c.contains("two"));
-		assertFalse(c.contains("three"));
-	}
-
-	public void testRetainAllCollectionObjectArray_EmptyObjectArray() {
-		Collection<String> c = this.buildStringList1();
-		assertTrue(CollectionTools.retainAll(c, new Object[0]));
-		assertEquals(0, c.size());
-	}
-
-	public void testRetainAllCollectionObjectArray_EmptyCollection() {
-		Collection<String> c = new ArrayList<String>();
-		assertFalse(CollectionTools.retainAll(c, new String[] { "foo" }));
-		assertEquals(0, c.size());
-	}
-
-	public void testRetainAllObjectArrayObjectArray() {
-		String[] a1 = new String[] { "A", "A", "B", "B", "C", "C", "D", "D", "E", "E", "F", "F" };
-		Object[] a2 = new Object[] { "E", "B", new Integer(7) };
-		assertTrue(Arrays.equals(new String[] { "B", "B", "E", "E" }, CollectionTools.retainAll(a1, a2)));
-	}
-
-	public void testRetainAllObjectArrayObjectArray_EmptyObjectArray1() {
-		String[] a1 = new String[0];
-		String[] a2 = new String[] { "E", "B", "" };
-		String[] a3 = CollectionTools.retainAll(a1, a2);
-		assertEquals(0, a3.length);
-	}
-
-	public void testRetainAllObjectArrayObjectArray_EmptyObjectArray2() {
-		String[] a1 = new String[] { "E", "B", "" };
-		String[] a2 = new String[0];
-		String[] a3 = CollectionTools.retainAll(a1, a2);
-		assertEquals(0, a3.length);
-	}
-
-	public void testRetainAllObjectArrayObjectArray_BothEmpty() {
-		String[] a1 = new String[0];
-		String[] a2 = new String[0];
-		String[] a3 = CollectionTools.retainAll(a1, a2);
-		assertEquals(0, a3.length);
-	}
-
-	public void testRetainAllObjectArrayIterable() {
-		String[] a1 = new String[] { "A", "A", "B", "B", "C", "C", "D", "D", "E", "E", "F", "F" };
-		Iterable<String> iterable = Arrays.asList(new String[] { "E", "B", "" });
-		assertTrue(Arrays.equals(new String[] { "B", "B", "E", "E" }, CollectionTools.retainAll(a1, iterable)));
-	}
-
-	public void testRetainAllObjectArrayIterable_EmptyObjectArray() {
-		String[] a1 = new String[0];
-		Iterable<String> iterable = Arrays.asList(new String[] { "E", "B", "" });
-		String[] a3 = CollectionTools.retainAll(a1, iterable);
-		assertEquals(0, a3.length);
-	}
-
-	public void testRetainAllObjectArrayIterableInt() {
-		String[] a1 = new String[] { "A", "A", "B", "B", "C", "C", "D", "D", "E", "E", "F", "F" };
-		Iterable<String> iterable = Arrays.asList(new String[] { "E", "B", "" });
-		assertTrue(Arrays.equals(new String[] { "B", "B", "E", "E" }, CollectionTools.retainAll(a1, iterable, 3)));
-	}
-
-	public void testRetainAllObjectArrayIterableInt_EmptyObjectArray() {
-		String[] a1 = new String[0];
-		Iterable<String> iterable = Arrays.asList(new String[] { "E", "B", "" });
-		String[] a3 = CollectionTools.retainAll(a1, iterable, 3);
-		assertEquals(0, a3.length);
-	}
-
-	public void testRetainAllObjectArrayIterator() {
-		String[] a1 = new String[] { "A", "A", "B", "B", "C", "C", "D", "D", "E", "E", "F", "F" };
-		Iterator<String> iterator = Arrays.asList(new String[] { "E", "B", "" }).iterator();
-		assertTrue(Arrays.equals(new String[] { "B", "B", "E", "E" }, CollectionTools.retainAll(a1, iterator)));
-	}
-
-	public void testRetainAllObjectArrayIterator_EmptyObjectArray() {
-		String[] a1 = new String[0];
-		Iterator<String> iterator = Arrays.asList(new String[] { "E", "B", "" }).iterator();
-		String[] a3 = CollectionTools.retainAll(a1, iterator);
-		assertEquals(0, a3.length);
-	}
-
-	public void testRetainAllObjectArrayIteratorInt() {
-		String[] a1 = new String[] { "A", "A", "B", "B", "C", "C", "D", "D", "E", "E", "F", "F" };
-		Iterator<String> iterator = Arrays.asList(new String[] { "E", "B", "" }).iterator();
-		assertTrue(Arrays.equals(new String[] { "B", "B", "E", "E" }, CollectionTools.retainAll(a1, iterator, 3)));
-	}
-
-	public void testRetainAllObjectArrayIteratorInt_EmptyObjectArray() {
-		String[] a1 = new String[0];
-		Iterator<String> iterator = Arrays.asList(new String[] { "E", "B", "" }).iterator();
-		String[] a3 = CollectionTools.retainAll(a1, iterator, 3);
-		assertEquals(0, a3.length);
-	}
-
-	public void testRetainAllObjectArrayCollection() {
-		String[] a1 = new String[] { "A", "A", "B", "B", "C", "C", "D", "D", "E", "E", "F", "F" };
-		Collection<String> collection = Arrays.asList(new String[] { "E", "B", "" });
-		assertTrue(Arrays.equals(new String[] { "B", "B", "E", "E" }, CollectionTools.retainAll(a1, collection)));
-	}
-
-	public void testRetainAllObjectArrayCollection_EmptyObjectArray() {
-		String[] a1 = new String[0];
-		Collection<String> collection = Arrays.asList(new String[] { "E", "B", "" });
-		String[] a3 = CollectionTools.retainAll(a1, collection);
-		assertEquals(0, a3.length);
-	}
-
-	public void testRetainAllObjectArrayCollection_EmptyCollection() {
-		String[] a1 = new String[] { "A", "A", "B", "B", "C", "C", "D", "D", "E", "E", "F", "F" };
-		Collection<String> collection = new ArrayList<String>();
-		String[] a3 = CollectionTools.retainAll(a1, collection);
-		assertEquals(0, a3.length);
-	}
-
-	public void testRetainAllObjectArrayCollection_All() {
-		String[] a1 = new String[] { "A", "A", "B", "B", "C", "C", "D", "D", "E", "E", "F", "F" };
-		Collection<String> collection = Arrays.asList(new String[] { "A", "B", "C", "D", "E", "F" });
-		assertTrue(Arrays.equals(a1, CollectionTools.retainAll(a1, collection)));
-	}
-
-	public void testRetainAllCharArrayCharArray() {
-		char[] a1 = new char[] { 'A', 'A', 'B', 'B', 'C', 'C', 'D', 'D', 'E', 'E', 'F', 'F' };
-		char[] a2 = new char[] { 'E', 'B' };
-		assertTrue(Arrays.equals(new char[] { 'B', 'B', 'E', 'E' }, CollectionTools.retainAll(a1, a2)));
-	}
-
-	public void testRetainAllCharArrayCharArray_EmptyCharArray1() {
-		char[] a1 = new char[0];
-		char[] a2 = new char[] { 'E', 'B' };
-		assertSame(a1, CollectionTools.retainAll(a1, a2));
-	}
-
-	public void testRetainAllCharArrayCharArray_EmptyCharArray2() {
-		char[] a1 = new char[] { 'E', 'B' };
-		char[] a2 = new char[0];
-		assertEquals(0, CollectionTools.retainAll(a1, a2).length);
-	}
-
-	public void testRetainAllCharArrayCharArray_RetainAll() {
-		char[] a1 = new char[] { 'E', 'B', 'E', 'B', 'E', 'B', 'E', 'B', 'E' };
-		char[] a2 = new char[] { 'E', 'B' };
-		assertSame(a1, CollectionTools.retainAll(a1, a2));
-	}
-
-	public void testRetainAllIntArrayIntArray() {
-		int[] a1 = new int[] { 1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6 };
-		int[] a2 = new int[] { 5, 2 };
-		assertTrue(Arrays.equals(new int[] { 2, 2, 5, 5 }, CollectionTools.retainAll(a1, a2)));
-	}
-
-	public void testRetainAllIntArrayIntArray_EmptyIntArray1() {
-		int[] a1 = new int[0];
-		int[] a2 = new int[] { 5, 2 };
-		assertSame(a1, CollectionTools.retainAll(a1, a2));
-	}
-
-	public void testRetainAllIntArrayIntArray_EmptyIntArray2() {
-		int[] a1 = new int[] { 5, 2 };
-		int[] a2 = new int[0];
-		assertEquals(0, CollectionTools.retainAll(a1, a2).length);
-	}
-
-	public void testRetainAllIntArrayIntArray_RetainAll() {
-		int[] a1 = new int[] { 5, 2, 5, 2, 5, 2, 5, 2, 5, 2, 5 };
-		int[] a2 = new int[] { 5, 2 };
-		assertSame(a1, CollectionTools.retainAll(a1, a2));
-	}
-
-	public void testReverseObjectArray_Object() {
-		Object[] a = this.buildObjectArray1();
-		a = CollectionTools.reverse(a);
-		assertEquals("two", a[0]);
-		assertEquals("one", a[1]);
-		assertEquals("zero", a[2]);
-	}
-
-	public void testReverseObjectArray_String() {
-		String[] a = this.buildStringArray1();
-		a = CollectionTools.reverse(a);
-		assertEquals("two", a[0]);
-		assertEquals("one", a[1]);
-		assertEquals("zero", a[2]);
-	}
-
-	public void testReverseCharArray() {
-		char[] a = this.buildCharArray();
-		a = CollectionTools.reverse(a);
-		assertEquals('c', a[0]);
-		assertEquals('b', a[1]);
-		assertEquals('a', a[2]);
-	}
-
-	public void testReverseIntArray() {
-		int[] a = this.buildIntArray();
-		a = CollectionTools.reverse(a);
-		assertEquals(20, a[0]);
-		assertEquals(10, a[1]);
-		assertEquals(0, a[2]);
-	}
-
-	public void testReverseListIterable() {
-		Iterable<String> iterable = this.buildStringList1();
-		List<String> actual = CollectionTools.reverseList(iterable);
-		List<String> expected = this.buildStringList1();
-		Collections.reverse(expected);
-		assertEquals(expected, actual);
-	}
-
-	public void testReverseListIterableInt() {
-		Iterable<String> iterable = this.buildStringList1();
-		List<String> actual = CollectionTools.reverseList(iterable, 10);
-		List<String> expected = this.buildStringList1();
-		Collections.reverse(expected);
-		assertEquals(expected, actual);
-	}
-
-	public void testReverseListIterator_String() {
-		List<String> actual = CollectionTools.reverseList(this.buildStringList1().iterator());
-		List<String> expected = this.buildStringList1();
-		Collections.reverse(expected);
-		assertEquals(expected, actual);
-	}
-
-	public void testReverseListIterator_Object() {
-		List<Object> actual = CollectionTools.<Object>reverseList(this.buildStringList1().iterator());
-		List<Object> expected = this.buildObjectList1();
-		Collections.reverse(expected);
-		assertEquals(expected, actual);
-	}
-
-	public void testReverseListIteratorInt() {
-		List<String> actual = CollectionTools.reverseList(this.buildStringList1().iterator(), 33);
-		List<String> expected = this.buildStringList1();
-		Collections.reverse(expected);
-		assertEquals(expected, actual);
-	}
-
-	public void testRotateObjectArray() {
-		String[] a = this.buildStringArray1();
-		a = CollectionTools.rotate(a);
-		assertEquals("two", a[0]);
-		assertEquals("zero", a[1]);
-		assertEquals("one", a[2]);
-	}
-
-	public void testRotateObjectArray_Zero() {
-		String[] a1 = new String[0];
-		String[] a2 = CollectionTools.rotate(a1);
-		assertSame(a1, a2);
-	}
-
-	public void testRotateObjectArray_One() {
-		String[] a1 = new String[] { "foo  " };
-		String[] a2 = CollectionTools.rotate(a1);
-		assertSame(a1, a2);
-	}
-
-	public void testRotateObjectArrayInt() {
-		String[] a = this.buildStringArray1();
-		a = CollectionTools.rotate(a, 2);
-		assertEquals("one", a[0]);
-		assertEquals("two", a[1]);
-		assertEquals("zero", a[2]);
-	}
-
-	public void testRotateObjectArrayInt_ZeroDistance() {
-		String[] a1 = this.buildStringArray1();
-		String[] a2 = CollectionTools.rotate(a1, 0);
-		assertSame(a1, a2);
-	}
-
-	public void testRotateObjectArrayInt_Zero() {
-		String[] a1 = new String[0];
-		String[] a2 = CollectionTools.rotate(a1, 7);
-		assertSame(a1, a2);
-	}
-
-	public void testRotateObjectArrayInt_One() {
-		String[] a1 = new String[] { "foo  " };
-		String[] a2 = CollectionTools.rotate(a1, 8);
-		assertSame(a1, a2);
-	}
-
-	public void testRotateCharArray() {
-		char[] a = this.buildCharArray();
-		a = CollectionTools.rotate(a);
-		assertEquals('c', a[0]);
-		assertEquals('a', a[1]);
-		assertEquals('b', a[2]);
-	}
-
-	public void testRotateCharArray_Zero() {
-		char[] a1 = new char[0];
-		char[] a2 = CollectionTools.rotate(a1);
-		assertSame(a1, a2);
-	}
-
-	public void testRotateCharArray_One() {
-		char[] a1 = new char[] { 'a' };
-		char[] a2 = CollectionTools.rotate(a1);
-		assertSame(a1, a2);
-	}
-
-	public void testRotateCharArrayInt() {
-		char[] a = this.buildCharArray();
-		a = CollectionTools.rotate(a, 2);
-		assertEquals('b', a[0]);
-		assertEquals('c', a[1]);
-		assertEquals('a', a[2]);
-	}
-
-	public void testRotateCharArrayInt_ZeroDistance() {
-		char[] a1 = new char[] { 'a', 'b', 'c' };
-		char[] a2 = CollectionTools.rotate(a1, 0);
-		assertSame(a1, a2);
-	}
-
-	public void testRotateCharArrayInt_Zero() {
-		char[] a1 = new char[0];
-		char[] a2 = CollectionTools.rotate(a1, 2001);
-		assertSame(a1, a2);
-	}
-
-	public void testRotateCharArrayInt_One() {
-		char[] a1 = new char[] { 'a' };
-		char[] a2 = CollectionTools.rotate(a1, 22);
-		assertSame(a1, a2);
-	}
-
-	public void testRotateIntArray() {
-		int[] a = this.buildIntArray();
-		a = CollectionTools.rotate(a);
-		assertEquals(20, a[0]);
-		assertEquals(0, a[1]);
-		assertEquals(10, a[2]);
-	}
-
-	public void testRotateIntArray_Zero() {
-		int[] a1 = new int[0];
-		int[] a2 = CollectionTools.rotate(a1);
-		assertSame(a1, a2);
-	}
-
-	public void testRotateIntArray_One() {
-		int[] a1 = new int[] { 77 };
-		int[] a2 = CollectionTools.rotate(a1);
-		assertSame(a1, a2);
-	}
-
-	public void testRotateIntArrayInt() {
-		int[] a = this.buildIntArray();
-		a = CollectionTools.rotate(a, 2);
-		assertEquals(10, a[0]);
-		assertEquals(20, a[1]);
-		assertEquals(0, a[2]);
-	}
-
-	public void testRotateIntArrayInt_ZeroDistance() {
-		int[] a1 = new int[] { 3, 2, 1 };
-		int[] a2 = CollectionTools.rotate(a1, 0);
-		assertSame(a1, a2);
-	}
-
-	public void testRotateIntArrayInt_Zero() {
-		int[] a1 = new int[0];
-		int[] a2 = CollectionTools.rotate(a1, 3);
-		assertSame(a1, a2);
-	}
-
-	public void testRotateIntArrayInt_One() {
-		int[] a1 = new int[] { 77 };
-		int[] a2 = CollectionTools.rotate(a1, 44);
-		assertSame(a1, a2);
-	}
-
-	public void testSetIterable() {
-		Iterable<String> iterable = this.buildStringSet1();
-		assertEquals(this.buildStringSet1(), CollectionTools.set(iterable));
-	}
-
-	public void testSetIterableInt() {
-		Iterable<String> iterable = this.buildStringSet1();
-		assertEquals(this.buildStringSet1(), CollectionTools.set(iterable, 22));
-	}
-
-	public void testSetIterator_String() {
-		assertEquals(this.buildStringSet1(), CollectionTools.set(this.buildStringSet1().iterator()));
-	}
-
-	public void testSetIterator_Object() {
-		Set<String> set1 = new HashSet<String>();
-		set1.add("0");
-		set1.add("1");
-		set1.add("2");
-		set1.add("3");
-
-		Set<Object> set2 = CollectionTools.<Object>set(set1.iterator());
-		assertEquals(set1, set2);
-	}
-
-	public void testSetIteratorInt() {
-		assertEquals(this.buildStringSet1(), CollectionTools.set(this.buildStringSet1().iterator(), 3));
-	}
-
-	public void testSetObjectArray() {
-		assertEquals(this.buildStringSet1(), CollectionTools.set(this.buildStringSet1().toArray()));
-	}
-
-	public void testShuffleObjectArray() {
-		String[] array1 = this.buildStringArray1();
-		String[] array2 = CollectionTools.shuffle(this.buildStringArray1());
-		assertEquals(array1.length, array2.length);
-		assertTrue(CollectionTools.containsAll(array1, array2));
-	}
-
-	public void testShuffleCharArray() {
-		char[] array1 = this.buildCharArray();
-		char[] array2 = CollectionTools.shuffle(this.buildCharArray());
-		assertEquals(array1.length, array2.length);
-		assertTrue(CollectionTools.containsAll(array1, array2));
-	}
-
-	public void testShuffleIntArray() {
-		int[] array1 = this.buildIntArray();
-		int[] array2 = CollectionTools.shuffle(this.buildIntArray());
-		assertEquals(array1.length, array2.length);
-		assertTrue(CollectionTools.containsAll(array1, array2));
-	}
-
-	public void testSingletonIterator_String() {
-		Iterator<String> stream = CollectionTools.singletonIterator("foo");
-		assertTrue(stream.hasNext());
-		assertEquals("foo", stream.next());
-	}
-
-	public void testSingletonIterator_Object() {
-		Iterator<Object> stream = CollectionTools.<Object>singletonIterator("foo");
-		assertTrue(stream.hasNext());
-		assertEquals("foo", stream.next());
-	}
-
-	public void testSingletonIterator_Cast() {
-		Iterator<Object> stream = CollectionTools.singletonIterator((Object) "foo");
-		assertTrue(stream.hasNext());
-		assertEquals("foo", stream.next());
-	}
-
-	public void testSizeIterable() {
-		Iterable<Object> iterable = this.buildObjectList1();
-		assertEquals(3, CollectionTools.size(iterable));
-	}
-
-	public void testSizeIterator() {
-		assertEquals(3, CollectionTools.size(this.buildObjectList1().iterator()));
-	}
-
-	public void testSortedSetIterable() {
-		SortedSet<String> ss1 = new TreeSet<String>();
-		ss1.add("0");
-		ss1.add("2");
-		ss1.add("3");
-		ss1.add("1");
-
-		Iterable<String> iterable = ss1;
-		SortedSet<String> set2 = CollectionTools.<String>sortedSet(iterable);
-		assertEquals(ss1, set2);
-	}
-
-	public void testSortedSetIterableInt() {
-		SortedSet<String> ss1 = new TreeSet<String>();
-		ss1.add("0");
-		ss1.add("2");
-		ss1.add("3");
-		ss1.add("1");
-
-		Iterable<String> iterable = ss1;
-		SortedSet<String> set2 = CollectionTools.<String>sortedSet(iterable, 5);
-		assertEquals(ss1, set2);
-	}
-
-	public void testSortedSetIterator() {
-		assertEquals(this.buildSortedStringSet1(), CollectionTools.sortedSet(this.buildSortedStringSet1().iterator()));
-	}
-
-	public void testSortedSetIterator_TreeSet() {
-		SortedSet<String> ss1 = new TreeSet<String>();
-		ss1.add("0");
-		ss1.add("2");
-		ss1.add("3");
-		ss1.add("1");
-
-		SortedSet<String> set2 = CollectionTools.<String>sortedSet(ss1.iterator());
-		assertEquals(ss1, set2);
-	}
-
-	public void testSortedSetIteratorInt() {
-		assertEquals(this.buildSortedStringSet1(), CollectionTools.sortedSet(this.buildSortedStringSet1().iterator(), 8));
-	}
-
-	public void testSortedSetObjectArray() {
-		assertEquals(this.buildSortedStringSet1(), CollectionTools.set(this.buildSortedStringSet1().toArray()));
-	}
-
-	public void testSubArrayObjectArrayIntInt() {
-		String[] array = new String[] {"foo", "bar", "baz", "joo", "jar", "jaz"};
-		String[] result = new String[] {"foo", "bar", "baz", "joo"};
-		assertTrue(Arrays.equals(result, CollectionTools.subArray(array, 0, 4)));
-
-		result = new String[] {"jar"};
-		assertTrue(Arrays.equals(result, CollectionTools.subArray(array, 4, 1)));
-
-		result = new String[0];
-		assertTrue(Arrays.equals(result, CollectionTools.subArray(array, 5, 0)));
-
-		result = new String[] {"joo", "jar", "jaz"};
-		assertTrue(Arrays.equals(result, CollectionTools.subArray(array, 3, 3)));
-	}
-
-	public void testSubArrayIntArrayIntInt() {
-		int[] array = new int[] {77, 99, 333, 4, 9090, 42};
-		int[] result = new int[] {77, 99, 333, 4};
-		assertTrue(Arrays.equals(result, CollectionTools.subArray(array, 0, 4)));
-
-		result = new int[] {9090};
-		assertTrue(Arrays.equals(result, CollectionTools.subArray(array, 4, 1)));
-
-		result = new int[0];
-		assertTrue(Arrays.equals(result, CollectionTools.subArray(array, 5, 0)));
-
-		result = new int[] {4, 9090, 42};
-		assertTrue(Arrays.equals(result, CollectionTools.subArray(array, 3, 3)));
-	}
-
-	public void testSubArrayCharArrayIntInt() {
-		char[] array = new char[] {'a', 'b', 'c', 'd', 'e', 'f'};
-		char[] result = new char[] {'a', 'b', 'c', 'd'};
-		assertTrue(Arrays.equals(result, CollectionTools.subArray(array, 0, 4)));
-
-		result = new char[] {'e'};
-		assertTrue(Arrays.equals(result, CollectionTools.subArray(array, 4, 1)));
-
-		result = new char[0];
-		assertTrue(Arrays.equals(result, CollectionTools.subArray(array, 5, 0)));
-
-		result = new char[] {'d', 'e', 'f'};
-		assertTrue(Arrays.equals(result, CollectionTools.subArray(array, 3, 3)));
-	}
-
-	public void testSwapObjectArray() {
-		String[] a = this.buildStringArray1();
-		a = CollectionTools.swap(a, 1, 2);
-		assertEquals("zero", a[0]);
-		assertEquals("two", a[1]);
-		assertEquals("one", a[2]);
-	}
-
-	public void testSwapCharArray() {
-		char[] a = this.buildCharArray();
-		a = CollectionTools.swap(a, 1, 2);
-		assertEquals('a', a[0]);
-		assertEquals('c', a[1]);
-		assertEquals('b', a[2]);
-	}
-
-	public void testSwapIntArray() {
-		int[] a = this.buildIntArray();
-		a = CollectionTools.swap(a, 1, 2);
-		assertEquals(0, a[0]);
-		assertEquals(20, a[1]);
-		assertEquals(10, a[2]);
-	}
-
-	public void testRemoveDuplicateElementsList1() {
-		List<String> list = this.buildStringVector1();
-		list.add("zero");
-		list.add("zero");
-		list.add("two");
-		list.add("zero");
-		assertTrue(CollectionTools.removeDuplicateElements(list));
-		int i = 0;
-		assertEquals("zero", list.get(i++));
-		assertEquals("one", list.get(i++));
-		assertEquals("two", list.get(i++));
-		assertEquals(i, list.size());
-	}
-
-	public void testRemoveDuplicateElementsList2() {
-		List<String> list = this.buildStringVector1();
-		assertFalse(CollectionTools.removeDuplicateElements(list));
-		int i = 0;
-		assertEquals("zero", list.get(i++));
-		assertEquals("one", list.get(i++));
-		assertEquals("two", list.get(i++));
-		assertEquals(i, list.size());
-	}
-
-	public void testRemoveDuplicateElementsList_Empty() {
-		List<String> list = new ArrayList<String>();
-		assertFalse(CollectionTools.removeDuplicateElements(list));
-		assertEquals(0, list.size());
-	}
-
-	public void testRemoveDuplicateElementsList_SingleElement() {
-		List<String> list = new ArrayList<String>();
-		list.add("zero");
-		assertFalse(CollectionTools.removeDuplicateElements(list));
-		assertEquals(1, list.size());
-	}
-
-	public void testRemoveDuplicateElementsObjectArray() {
-		List<String> list = this.buildStringVector1();
-		list.add("zero");
-		list.add("zero");
-		list.add("two");
-		list.add("zero");
-		String[] array = CollectionTools.removeDuplicateElements(list.toArray(new String[list.size()]));
-		int i = 0;
-		assertEquals("zero", array[i++]);
-		assertEquals("one", array[i++]);
-		assertEquals("two", array[i++]);
-		assertEquals(i, array.length);
-	}
-
-	public void testRemoveDuplicateElementsObjectArray_Empty() {
-		String[] array = CollectionTools.removeDuplicateElements(new String[0]);
-		assertEquals(0, array.length);
-	}
-
-	public void testRemoveDuplicateElementsObjectArray_SingleElement() {
-		String[] array = CollectionTools.removeDuplicateElements(new String[] { "foo" });
-		assertEquals(1, array.length);
-	}
-
-	public void testVectorIterable() {
-		Iterable<String> iterable = this.buildStringList1();
-		Vector<String> v = CollectionTools.vector(iterable);
-		assertEquals(3, v.size());
-		assertTrue(v.containsAll(this.buildStringList1()));
-	}
-
-	public void testVectorIterableInt() {
-		Iterable<String> iterable = this.buildStringList1();
-		Vector<String> v = CollectionTools.vector(iterable, 8);
-		assertEquals(3, v.size());
-		assertTrue(v.containsAll(this.buildStringList1()));
-	}
-
-	public void testVectorIterator_String() {
-		Vector<String> v = CollectionTools.vector(this.buildStringList1().iterator());
-		assertEquals(3, v.size());
-		assertTrue(v.containsAll(this.buildStringList1()));
-	}
-
-	public void testVectorIterator_Object() {
-		Vector<Object> v = CollectionTools.<Object>vector(this.buildStringList1().iterator());
-		assertEquals(3, v.size());
-		assertTrue(v.containsAll(this.buildStringList1()));
-	}
-
-	public void testVectorIteratorInt() {
-		Vector<String> v = CollectionTools.vector(this.buildStringList1().iterator(), 7);
-		assertEquals(3, v.size());
-		assertTrue(v.containsAll(this.buildStringList1()));
-	}
-
-	public void testVectorObjectArray() {
-		Vector<String> v = CollectionTools.vector(this.buildStringArray1());
-		assertEquals(3, v.size());
-		assertTrue(v.containsAll(this.buildStringList1()));
-	}
-
-	private Object[] buildObjectArray1() {
-		return new Object[] { "zero", "one", "two" };
-	}
-
-	private String[] buildStringArray1() {
-		return new String[] { "zero", "one", "two" };
-	}
-
-	private char[] buildCharArray() {
-		return new char[] { 'a', 'b', 'c' };
-	}
-
-	private int[] buildIntArray() {
-		return new int[] { 0, 10, 20 };
-	}
-
-	private Object[] buildObjectArray2() {
-		return new Object[] { "three", "four", "five" };
-	}
-
-	private String[] buildStringArray2() {
-		return new String[] { "three", "four", "five" };
-	}
-
-	private Vector<String> buildStringVector1() {
-		Vector<String> v = new Vector<String>();
-		this.addToCollection1(v);
-		return v;
-	}
-
-	private List<String> buildStringList1() {
-		List<String> l = new ArrayList<String>();
-		this.addToCollection1(l);
-		return l;
-	}
-
-	private List<Object> buildObjectList1() {
-		List<Object> l = new ArrayList<Object>();
-		this.addToCollection1(l);
-		return l;
-	}
-
-	private void addToCollection1(Collection<? super String> c) {
-		c.add("zero");
-		c.add("one");
-		c.add("two");
-	}
-
-	private List<String> buildStringList2() {
-		List<String> l = new ArrayList<String>();
-		this.addToCollection2(l);
-		return l;
-	}
-
-	private void addToCollection2(Collection<? super String> c) {
-		c.add("three");
-		c.add("four");
-		c.add("five");
-	}
-
-	private Set<String> buildStringSet1() {
-		Set<String> s = new HashSet<String>();
-		this.addToCollection1(s);
-		return s;
-	}
-
-	private Set<Object> buildObjectSet1() {
-		Set<Object> s = new HashSet<Object>();
-		this.addToCollection1(s);
-		return s;
-	}
-
-	private SortedSet<String> buildSortedStringSet1() {
-		SortedSet<String> s = new TreeSet<String>();
-		this.addToCollection1(s);
-		return s;
-	}
-
-}
diff --git a/jpa/tests/org.eclipse.jpt.utility.tests/src/org/eclipse/jpt/utility/tests/internal/CommandExecutorTests.java b/jpa/tests/org.eclipse.jpt.utility.tests/src/org/eclipse/jpt/utility/tests/internal/CommandExecutorTests.java
deleted file mode 100644
index f27f883..0000000
--- a/jpa/tests/org.eclipse.jpt.utility.tests/src/org/eclipse/jpt/utility/tests/internal/CommandExecutorTests.java
+++ /dev/null
@@ -1,85 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.utility.tests.internal;
-
-import junit.framework.TestCase;
-
-import org.eclipse.jpt.utility.Command;
-import org.eclipse.jpt.utility.CommandExecutor;
-import org.eclipse.jpt.utility.internal.ThreadLocalCommandExecutor;
-
-public class CommandExecutorTests extends TestCase {
-
-	public CommandExecutorTests(String name) {
-		super(name);
-	}
-
-	public void testDefaultCommandExecutor() {
-		TestCommand testCommand = new TestCommand();
-		assertEquals(0, testCommand.count);
-		CommandExecutor commandExecutor = CommandExecutor.Default.instance();
-		commandExecutor.execute(testCommand);
-		assertEquals(1, testCommand.count);
-	}
-
-	static class TestCommand implements Command {
-		int count = 0;
-		public void execute() {
-			this.count++;
-		}
-	}
-
-	public void testThreadLocalCommandExecutor() throws Exception {
-		ThreadLocalCommandExecutor threadLocalCommandExecutor = new ThreadLocalCommandExecutor();
-		TestRunnable testRunnable1 = new TestRunnable(threadLocalCommandExecutor, 1);
-		Thread thread1 = new Thread(testRunnable1);
-		thread1.run();
-
-		TestRunnable testRunnable2 = new TestRunnable(threadLocalCommandExecutor, 2);
-		Thread thread2 = new Thread(testRunnable2);
-		thread2.run();
-
-		thread1.join();
-		thread2.join();
-
-		assertEquals(1, testRunnable1.testCommand.count);
-		assertEquals(1, testRunnable1.testCommandExecutor.count);
-
-		assertEquals(2, testRunnable2.testCommand.count);
-		assertEquals(2, testRunnable2.testCommandExecutor.count);
-	}
-
-	static class TestCommandExecutor implements CommandExecutor {
-		int count = 0;
-		public void execute(Command command) {
-			this.count++;
-			command.execute();
-		}
-	}
-
-	static class TestRunnable implements Runnable {
-		final ThreadLocalCommandExecutor threadLocalCommandExecutor;
-		final int executionCount;
-		final TestCommand testCommand = new TestCommand();
-		final TestCommandExecutor testCommandExecutor = new TestCommandExecutor();
-		TestRunnable(ThreadLocalCommandExecutor threadLocalCommandExecutor, int executionCount) {
-			super();
-			this.threadLocalCommandExecutor = threadLocalCommandExecutor;
-			this.executionCount = executionCount;
-		}
-		public void run() {
-			this.threadLocalCommandExecutor.set(this.testCommandExecutor);
-			for (int i = 0; i < this.executionCount; i++) {
-				this.threadLocalCommandExecutor.execute(this.testCommand);
-			}
-		}
-	}
-
-}
diff --git a/jpa/tests/org.eclipse.jpt.utility.tests/src/org/eclipse/jpt/utility/tests/internal/CommandTests.java b/jpa/tests/org.eclipse.jpt.utility.tests/src/org/eclipse/jpt/utility/tests/internal/CommandTests.java
deleted file mode 100644
index 160c77f..0000000
--- a/jpa/tests/org.eclipse.jpt.utility.tests/src/org/eclipse/jpt/utility/tests/internal/CommandTests.java
+++ /dev/null
@@ -1,116 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.utility.tests.internal;
-
-import junit.framework.TestCase;
-
-import org.eclipse.jpt.utility.Command;
-import org.eclipse.jpt.utility.CommandExecutor;
-import org.eclipse.jpt.utility.internal.CommandRunnable;
-import org.eclipse.jpt.utility.internal.RunnableCommand;
-import org.eclipse.jpt.utility.internal.ThreadLocalCommand;
-
-public class CommandTests extends TestCase {
-
-	public CommandTests(String name) {
-		super(name);
-	}
-
-	public void testNullCommand() {
-		Command command = Command.Null.instance();
-		command.execute();  // just make sure it doesn't blow up?
-	}
-
-	public void testDisabledCommand() {
-		Command command = Command.Disabled.instance();
-		boolean exCaught = false;
-		try {
-			command.execute();
-			fail();
-		} catch (UnsupportedOperationException ex) {
-			exCaught = true;
-		}
-		assertTrue(exCaught);
-	}
-
-	public void testRunnableCommand() {
-		SimpleTestRunnable testRunnable = new SimpleTestRunnable();
-		assertFalse(testRunnable.ran);
-		Command command = new RunnableCommand(testRunnable);
-		command.execute();
-		assertTrue(testRunnable.ran);
-	}
-
-	static class SimpleTestRunnable implements Runnable {
-		boolean ran = false;
-		public void run() {
-			this.ran = true;
-		}
-	}
-
-	public void testCommandRunnable() {
-		TestCommand testCommand = new TestCommand();
-		assertEquals(0, testCommand.count);
-		Runnable runnable = new CommandRunnable(testCommand);
-		runnable.run();
-		assertEquals(1, testCommand.count);
-	}
-
-	static class TestCommand implements Command {
-		int count = 0;
-		public void execute() {
-			this.count++;
-		}
-	}
-
-	public void testThreadLocalCommand() throws Exception {
-		ThreadLocalCommand threadLocalCommand = new ThreadLocalCommand();
-		TestRunnable testRunnable1 = new TestRunnable(threadLocalCommand, 1);
-		Thread thread1 = new Thread(testRunnable1);
-		thread1.run();
-
-		TestRunnable testRunnable2 = new TestRunnable(threadLocalCommand, 2);
-		Thread thread2 = new Thread(testRunnable2);
-		thread2.run();
-
-		thread1.join();
-		thread2.join();
-
-		assertEquals(1, testRunnable1.testCommand.count);
-
-		assertEquals(2, testRunnable2.testCommand.count);
-	}
-
-	static class TestCommandExecutor implements CommandExecutor {
-		int count = 0;
-		public void execute(Command command) {
-			this.count++;
-			command.execute();
-		}
-	}
-
-	static class TestRunnable implements Runnable {
-		final ThreadLocalCommand threadLocalCommand;
-		final int executionCount;
-		final TestCommand testCommand = new TestCommand();
-		TestRunnable(ThreadLocalCommand threadLocalCommand, int executionCount) {
-			super();
-			this.threadLocalCommand = threadLocalCommand;
-			this.executionCount = executionCount;
-		}
-		public void run() {
-			this.threadLocalCommand.set(this.testCommand);
-			for (int i = 0; i < this.executionCount; i++) {
-				this.threadLocalCommand.execute();
-			}
-		}
-	}
-
-}
diff --git a/jpa/tests/org.eclipse.jpt.utility.tests/src/org/eclipse/jpt/utility/tests/internal/CounterTests.java b/jpa/tests/org.eclipse.jpt.utility.tests/src/org/eclipse/jpt/utility/tests/internal/CounterTests.java
deleted file mode 100644
index 9953e0e..0000000
--- a/jpa/tests/org.eclipse.jpt.utility.tests/src/org/eclipse/jpt/utility/tests/internal/CounterTests.java
+++ /dev/null
@@ -1,92 +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.utility.tests.internal;
-
-import junit.framework.TestCase;
-import org.eclipse.jpt.utility.internal.Counter;
-
-public class CounterTests extends TestCase {
-
-	public CounterTests(String name) {
-		super(name);
-	}
-
-	public void testCtors() {
-		Counter counter;
-		counter = new Counter();
-		assertEquals(0, counter.count());
-		counter = new Counter(7);
-		assertEquals(7, counter.count());
-		counter = new Counter(-7);
-		assertEquals(-7, counter.count());
-	}
-
-	public void testIncrement() {
-		Counter counter;
-		int count;
-		counter = new Counter();
-		assertEquals(0, counter.count());
-
-		count = counter.increment(3);
-		assertEquals(3, count);
-		assertEquals(3, counter.count());
-
-		count = counter.increment();
-		assertEquals(4, count);
-		assertEquals(4, counter.count());
-
-		count = counter.increment(-7);
-		assertEquals(-3, count);
-		assertEquals(-3, counter.count());
-	}
-
-	public void testDecrement() {
-		Counter counter;
-		int count;
-		counter = new Counter();
-		assertEquals(0, counter.count());
-
-		count = counter.decrement(3);
-		assertEquals(-3, count);
-		assertEquals(-3, counter.count());
-
-		count = counter.decrement();
-		assertEquals(-4, count);
-		assertEquals(-4, counter.count());
-
-		count = counter.decrement(-7);
-		assertEquals(3, count);
-		assertEquals(3, counter.count());
-	}
-
-	public void testClone() {
-		Counter counter = new Counter(44);
-		Counter counter2 = (Counter) counter.clone();
-		assertEquals(44, counter2.count());
-		assertEquals(counter, counter2);
-		assertNotSame(counter, counter2);
-	}
-
-	public void testEquals() {
-		Counter counter = new Counter(44);
-		Counter counter2 = new Counter(44);
-		assertEquals(counter, counter2);
-		assertEquals(counter.hashCode(), counter2.hashCode());
-	}
-
-	public void testSerialization() throws Exception {
-		Counter counter = new Counter(44);
-		Counter counter2 = TestTools.serialize(counter);
-		assertEquals(44, counter2.count());
-		assertEquals(counter, counter2);
-		assertNotSame(counter, counter2);
-	}
-
-}
diff --git a/jpa/tests/org.eclipse.jpt.utility.tests/src/org/eclipse/jpt/utility/tests/internal/EmptyIterableTests.java b/jpa/tests/org.eclipse.jpt.utility.tests/src/org/eclipse/jpt/utility/tests/internal/EmptyIterableTests.java
deleted file mode 100644
index ad6f145..0000000
--- a/jpa/tests/org.eclipse.jpt.utility.tests/src/org/eclipse/jpt/utility/tests/internal/EmptyIterableTests.java
+++ /dev/null
@@ -1,30 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.utility.tests.internal;
-
-import junit.framework.TestCase;
-import org.eclipse.jpt.utility.internal.EmptyIterable;
-
-public class EmptyIterableTests extends TestCase {
-
-	public EmptyIterableTests(String name) {
-		super(name);
-	}
-
-	public void testIterator() {
-		int i = 0;
-		for (String string : EmptyIterable.<String>instance()) {
-			fail("bogus string: " + string);
-			i++;
-		}
-		assertEquals(0, i);
-	}
-
-}
diff --git a/jpa/tests/org.eclipse.jpt.utility.tests/src/org/eclipse/jpt/utility/tests/internal/FileToolsTests.java b/jpa/tests/org.eclipse.jpt.utility.tests/src/org/eclipse/jpt/utility/tests/internal/FileToolsTests.java
deleted file mode 100644
index adcccf0..0000000
--- a/jpa/tests/org.eclipse.jpt.utility.tests/src/org/eclipse/jpt/utility/tests/internal/FileToolsTests.java
+++ /dev/null
@@ -1,594 +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.utility.tests.internal;
-
-import java.io.File;
-import java.io.FileFilter;
-import java.io.FileInputStream;
-import java.io.FileOutputStream;
-import java.io.IOException;
-import java.io.InputStreamReader;
-import java.io.OutputStreamWriter;
-import java.io.Reader;
-import java.io.Writer;
-import java.lang.reflect.InvocationTargetException;
-import java.net.URL;
-import java.util.Arrays;
-import java.util.Collection;
-import java.util.Iterator;
-import junit.framework.TestCase;
-import org.eclipse.jpt.utility.internal.ClassTools;
-import org.eclipse.jpt.utility.internal.CollectionTools;
-import org.eclipse.jpt.utility.internal.FileTools;
-
-public class FileToolsTests extends TestCase {
-	private File tempDir;
-
-	public FileToolsTests(String name) {
-		super(name);
-	}
-
-	@Override
-	protected void setUp() throws Exception {
-		super.setUp();
-		this.tempDir = this.buildTempDir();
-	}
-
-	@Override
-	protected void tearDown() throws Exception {
-		super.tearDown();
-		this.deleteDir(this.tempDir);
-	}
-
-	public void testFilesIn() {
-		Collection<File> files = CollectionTools.collection(FileTools.filesIn(this.tempDir.getPath()));
-		assertEquals("invalid file count", 3, files.size());
-	}
-
-	public void testDirectoriesIn() {
-		Collection<File> files = CollectionTools.collection(FileTools.directoriesIn(this.tempDir.getPath()));
-		assertEquals("invalid directory count", 2, files.size());
-	}
-
-	public void testFilesInTree() {
-		Collection<File> files = CollectionTools.collection(FileTools.filesInTree(this.tempDir.getPath()));
-		assertEquals("invalid file count", 9, files.size());
-	}
-
-	public void testDirectoriesInTree() {
-		Collection<File> files = CollectionTools.collection(FileTools.directoriesInTree(this.tempDir.getPath()));
-		assertEquals("invalid directory count", 3, files.size());
-	}
-
-	public void testDeleteDirectory() throws IOException {
-		// build another temporary directory just for this test
-		File dir = this.buildTempDir();
-		assertTrue("temporary directory not created", dir.exists());
-		FileTools.deleteDirectory(dir.getPath());
-		assertFalse("temporary directory not deleted", dir.exists());
-	}
-
-	public void testDeleteDirectoryContents() throws IOException {
-		// build another temporary directory just for this test
-		File dir = this.buildTempDir();
-		assertTrue("temporary directory not created", dir.exists());
-		FileTools.deleteDirectoryContents(dir.getPath());
-		assertTrue("temporary directory should not have been deleted", dir.exists());
-		assertTrue("temporary directory contents not deleted", dir.listFiles().length == 0);
-		dir.delete();
-	}
-
-	public void testCopyToFile() throws IOException {
-		File destFile = new File(this.tempDir, "destfile.txt");
-		this.copyToFile(destFile, "testCopyToFile");
-	}
-
-	public void testCopyToPreExistingFile() throws IOException {
-		File destFile = new File(this.tempDir, "destfile.txt");
-		Writer writer = new OutputStreamWriter(new FileOutputStream(destFile));
-		writer.write("this text should be replaced...");
-		writer.close();
-		this.copyToFile(destFile, "testCopyToPreExistingFile");
-	}
-
-	private void copyToFile(File destFile, String writeString) throws IOException {
-		File sourceFile = new File(this.tempDir, "sourcefile.txt");
-		char[] readBuffer = new char[writeString.length()];
-
-		Writer writer = new OutputStreamWriter(new FileOutputStream(sourceFile));
-		writer.write(writeString);
-		writer.close();
-
-		FileTools.copyToFile(sourceFile, destFile);
-
-		Reader reader = new InputStreamReader(new FileInputStream(destFile));
-		reader.read(readBuffer);
-		reader.close();
-		String readString = new String(readBuffer);
-		assertEquals(writeString, readString);
-	}
-
-	public void testCopyToDirectory() throws IOException {
-		File sourceFile = new File(this.tempDir, "sourcefile.txt");
-		String writeString = "testCopyToDirectory";
-
-		File destDir = new File(this.tempDir, "destdir");
-		destDir.mkdir();
-		File destFile = new File(destDir, "sourcefile.txt");
-		char[] readBuffer = new char[writeString.length()];
-
-		Writer writer = new OutputStreamWriter(new FileOutputStream(sourceFile));
-		writer.write(writeString);
-		writer.close();
-
-		FileTools.copyToDirectory(sourceFile, destDir);
-
-		Reader reader = new InputStreamReader(new FileInputStream(destFile));
-		reader.read(readBuffer);
-		reader.close();
-		String readString = new String(readBuffer);
-		assertEquals(writeString, readString);
-	}
-
-	public void testFilter() throws IOException {
-		String prefix = "XXXtestFileXXX";
-		File testFile1 = new File(this.tempDir, prefix + "1");
-		testFile1.createNewFile();
-		File testFile2 = new File(this.tempDir, prefix + "2");
-		testFile2.createNewFile();
-
-		FileFilter filter = this.buildFileFilter(prefix);
-		Iterator<File> filteredFilesIterator = FileTools.filter(FileTools.filesIn(this.tempDir), filter);
-		Collection<File> filteredFiles = CollectionTools.collection(filteredFilesIterator);
-		assertEquals(2, filteredFiles.size());
-		assertTrue(filteredFiles.contains(testFile1));
-		assertTrue(filteredFiles.contains(testFile2));
-	}
-
-	private FileFilter buildFileFilter(final String prefix) {
-		return new FileFilter() {
-			public boolean accept(File file) {
-				return file.getName().startsWith(prefix);
-			}
-		};
-	}
-
-	public void testStripExtension() {
-		assertEquals("foo", FileTools.stripExtension("foo.xml"));
-		assertEquals("foo.bar", FileTools.stripExtension("foo.bar.xml"));
-		assertEquals("foo", FileTools.stripExtension("foo"));
-		assertEquals("foo", FileTools.stripExtension("foo."));
-	}
-
-	public void testExtension() {
-		assertEquals(".xml", FileTools.extension("foo.xml"));
-		assertEquals(".xml", FileTools.extension("foo.bar.xml"));
-		assertEquals("", FileTools.extension("foo"));
-		assertEquals("", FileTools.extension("foo,xml"));
-		assertEquals(".", FileTools.extension("foo."));
-	}
-
-	public void testEmptyTemporaryDirectory() throws IOException {
-		File tempDir1 = FileTools.temporaryDirectory();
-		File testFile1 = new File(tempDir1, "junk");
-		testFile1.createNewFile();
-
-		File tempDir2 = FileTools.emptyTemporaryDirectory();
-		assertEquals(tempDir1, tempDir2);
-		assertTrue(tempDir2.isDirectory());
-		assertEquals(0, tempDir2.listFiles().length);
-		tempDir2.delete();
-	}
-
-	public void testCanonicalFileName() {
-		File file1 = new File("foo");
-		file1 = new File(file1, "bar");
-		file1 = new File(file1, "baz");
-		file1 = new File(file1, "..");
-		file1 = new File(file1, "..");
-		file1 = new File(file1, "bar");
-		file1 = new File(file1, "baz");
-		File file2 = new File(System.getProperty("user.dir"));
-		file2 = new File(file2, "foo");
-		file2 = new File(file2, "bar");
-		file2 = new File(file2, "baz");
-		File file3 = FileTools.canonicalFile(file1);
-		assertEquals(file2, file3);
-	}
-
-	private boolean isExecutingOnWindows() {
-		return this.isExecutingOn("Windows");
-	}
-
-	//	private boolean isExecutingOnLinux() {
-	//		return this.isExecutingOn("Linux");
-	//	}
-	//
-	private boolean isExecutingOn(String osName) {
-		return System.getProperty("os.name").indexOf(osName) != -1;
-	}
-
-	public void testPathFiles() {
-		File[] expected;
-		File[] actual;
-
-		if (this.isExecutingOnWindows()) {
-			expected = new File[] { new File("C:/"), new File("C:/foo"), new File("C:/foo/bar"), new File("C:/foo/bar/baz.txt") };
-			actual = this.pathFiles(new File("C:/foo/bar/baz.txt"));
-			assertTrue(Arrays.equals(expected, actual));
-		}
-
-		expected = new File[] { new File("/"), new File("/foo"), new File("/foo/bar"), new File("/foo/bar/baz.txt") };
-		actual = this.pathFiles(new File("/foo/bar/baz.txt"));
-		assertTrue(Arrays.equals(expected, actual));
-
-		expected = new File[] { new File("foo"), new File("foo/bar"), new File("foo/bar/baz.txt") };
-		actual = this.pathFiles(new File("foo/bar/baz.txt"));
-		assertTrue(Arrays.equals(expected, actual));
-
-		expected = new File[] { new File(".."), new File("../foo"), new File("../foo/bar"), new File("../foo/bar/baz.txt") };
-		actual = this.pathFiles(new File("../foo/bar/baz.txt"));
-		assertTrue(Arrays.equals(expected, actual));
-
-		expected = new File[] { new File("."), new File("./foo"), new File("./foo/bar"), new File("./foo/bar/baz.txt") };
-		actual = this.pathFiles(new File("./foo/bar/baz.txt"));
-		assertTrue(Arrays.equals(expected, actual));
-	}
-
-	private File[] pathFiles(File file) {
-		return (File[]) ClassTools.executeStaticMethod(FileTools.class, "pathFiles", File.class, file);
-	}
-
-	public void testRelativeParentFile() {
-		assertEquals(new File(".."), this.relativeParentFile(1));
-		assertEquals(new File("../.."), this.relativeParentFile(2));
-		assertEquals(new File("../../.."), this.relativeParentFile(3));
-
-		boolean exCaught = false;
-		try {
-			File file = this.relativeParentFile(0);
-			fail("invalid return: " + file);
-		} catch (RuntimeException ex) {
-			if (ex.getCause() instanceof InvocationTargetException) {
-				InvocationTargetException ite = (InvocationTargetException) ex.getCause();
-				if (ite.getTargetException() instanceof IllegalArgumentException) {
-					exCaught = true;
-				}
-			}
-		}
-		assertTrue(exCaught);
-	}
-
-	private File relativeParentFile(int len) {
-		return (File) ClassTools.executeStaticMethod(FileTools.class, "relativeParentFile", int.class, new Integer(len));
-	}
-
-	public void testConvertToRelativeFile() {
-		String prefix = this.isExecutingOnWindows() ? "C:" : "";
-		File file;
-		File dir;
-		File relativeFile;
-
-		if (this.isExecutingOnWindows()) {
-			// on Windows, a drive must be specified for a file to be absolute (i.e. not relative)
-			this.verifyUnchangedRelativeFile("/dir1/dir2/file.txt", "C:/dir1/dir2");
-			// different drives
-			this.verifyUnchangedRelativeFile("D:/dir1/dir2/file.txt", "C:/dir1/dir2");
-		}
-		this.verifyUnchangedRelativeFile("dir1/dir2/file.txt", prefix + "/dir1/dir2");
-		this.verifyUnchangedRelativeFile("./dir1/dir2/file.txt", prefix + "/dir1/dir2");
-		this.verifyUnchangedRelativeFile("../../dir1/dir2/file.txt", prefix + "/dir1/dir2");
-
-		file = new File(prefix + "/dir1/dir2");
-		dir = new File(prefix + "/dir1/dir2");
-		relativeFile = FileTools.convertToRelativeFile(file, dir);
-		assertEquals(new File("."), relativeFile);
-
-		file = new File(prefix + "/dir1/dir2/file.txt");
-		dir = new File(prefix + "/dir1/dir2");
-		relativeFile = FileTools.convertToRelativeFile(file, dir);
-		assertEquals(new File("file.txt"), relativeFile);
-
-		file = new File(prefix + "/dir1/dir2/../dir2/file.txt");
-		dir = new File(prefix + "/dir1/dir2");
-		relativeFile = FileTools.convertToRelativeFile(file, dir);
-		assertEquals(new File("file.txt"), relativeFile);
-
-		file = new File(prefix + "/dir1/dir2/dir3/dir4/dir5/file.txt");
-		dir = new File(prefix + "/dir1/dir2");
-		relativeFile = FileTools.convertToRelativeFile(file, dir);
-		assertEquals(new File("dir3/dir4/dir5/file.txt"), relativeFile);
-
-		file = new File(prefix + "/dir1/dir2/file.txt");
-		dir = new File(prefix + "/dir1/dir2/dir3/dir4/dir5");
-		relativeFile = FileTools.convertToRelativeFile(file, dir);
-		assertEquals(new File("../../../file.txt"), relativeFile);
-
-		file = new File(prefix + "/dir1/dir2/file.txt");
-		dir = new File(prefix + "/dir1/dir2/dir3");
-		relativeFile = FileTools.convertToRelativeFile(file, dir);
-		assertEquals(new File("../file.txt"), relativeFile);
-
-		file = new File(prefix + "/dir1/dir2/dirA/dirB/dirC/file.txt");
-		dir = new File(prefix + "/dir1/dir2/dir3/dir4/dir5");
-		relativeFile = FileTools.convertToRelativeFile(file, dir);
-		assertEquals(new File("../../../dirA/dirB/dirC/file.txt"), relativeFile);
-
-		file = new File(prefix + "/dir1/dir2");
-		dir = new File(prefix + "/dir1/dir2/dir3/dir4/dir5");
-		relativeFile = FileTools.convertToRelativeFile(file, dir);
-		assertEquals(new File("../../.."), relativeFile);
-
-		file = new File(prefix + "/My Documents/My Workspace/Project 1/lib/toplink.jar");
-		dir = new File(prefix + "/My Documents/My Workspace/Project 1");
-		relativeFile = FileTools.convertToRelativeFile(file, dir);
-		assertEquals(new File("lib/toplink.jar"), relativeFile);
-	}
-
-	private void verifyUnchangedRelativeFile(String fileName, String dirName) {
-		File file = new File(fileName);
-		File dir = new File(dirName);
-		File relativeFile = FileTools.convertToRelativeFile(file, dir);
-		assertEquals(file, relativeFile);
-	}
-
-	public void testConvertToAbsoluteFile() {
-		String prefix = this.isExecutingOnWindows() ? "C:" : "";
-		File file;
-		File dir;
-		File absoluteFile;
-
-		if (this.isExecutingOnWindows()) {
-			// on Windows, a drive must be specified for a file to be absolute (i.e. not relative)
-			this.verifyUnchangedAbsoluteFile("C:/dir1/dir2/file.txt", "C:/dir1/dir2");
-			// different drives
-			this.verifyUnchangedAbsoluteFile("D:/dir1/dir2/file.txt", "C:/dir1/dir2");
-		}
-		this.verifyUnchangedAbsoluteFile(prefix + "/dir1/dir2/file.txt", prefix + "/dir1/dir2");
-		this.verifyUnchangedAbsoluteFile(prefix + "/./dir1/dir2/file.txt", prefix + "/dir1/dir2");
-		this.verifyUnchangedAbsoluteFile(prefix + "/dir1/dir2/../../dir1/dir2/file.txt", prefix + "/dir1/dir2");
-
-		file = new File(".");
-		dir = new File(prefix + "/dir1/dir2");
-		absoluteFile = FileTools.convertToAbsoluteFile(file, dir);
-		assertEquals(new File(prefix + "/dir1/dir2"), absoluteFile);
-
-		file = new File("./file.txt");
-		dir = new File(prefix + "/dir1/dir2");
-		absoluteFile = FileTools.convertToAbsoluteFile(file, dir);
-		assertEquals(new File(prefix + "/dir1/dir2/file.txt"), absoluteFile);
-
-		file = new File("file.txt");
-		dir = new File(prefix + "/dir1/dir2");
-		absoluteFile = FileTools.convertToAbsoluteFile(file, dir);
-		assertEquals(new File(prefix + "/dir1/dir2/file.txt"), absoluteFile);
-
-		file = new File("../dir2/file.txt");
-		dir = new File(prefix + "/dir1/dir2");
-		absoluteFile = FileTools.convertToAbsoluteFile(file, dir);
-		assertEquals(new File(prefix + "/dir1/dir2/file.txt"), absoluteFile);
-
-		file = new File("dir3/dir4/dir5/file.txt");
-		dir = new File(prefix + "/dir1/dir2");
-		absoluteFile = FileTools.convertToAbsoluteFile(file, dir);
-		assertEquals(new File(prefix + "/dir1/dir2/dir3/dir4/dir5/file.txt"), absoluteFile);
-
-		file = new File("../../../file.txt");
-		dir = new File(prefix + "/dir1/dir2/dir3/dir4/dir5");
-		absoluteFile = FileTools.convertToAbsoluteFile(file, dir);
-		assertEquals(new File(prefix + "/dir1/dir2/file.txt"), absoluteFile);
-
-		// too many ".." directories will resolve to the root;
-		// this is consistent with Windows and Linux command shells
-		file = new File("../../../../../../../../file.txt");
-		dir = new File(prefix + "/dir1/dir2");
-		absoluteFile = FileTools.convertToAbsoluteFile(file, dir);
-		assertEquals(new File(prefix + "/file.txt"), absoluteFile);
-
-		file = new File("../file.txt");
-		dir = new File(prefix + "/dir1/dir2/dir3");
-		absoluteFile = FileTools.convertToAbsoluteFile(file, dir);
-		assertEquals(new File(prefix + "/dir1/dir2/file.txt"), absoluteFile);
-
-		file = new File("../../../dirA/dirB/dirC/file.txt");
-		dir = new File(prefix + "/dir1/dir2/dir3/dir4/dir5");
-		absoluteFile = FileTools.convertToAbsoluteFile(file, dir);
-		assertEquals(new File(prefix + "/dir1/dir2/dirA/dirB/dirC/file.txt"), absoluteFile);
-
-		file = new File("../../..");
-		dir = new File(prefix + "/dir1/dir2/dir3/dir4/dir5");
-		absoluteFile = FileTools.convertToAbsoluteFile(file, dir);
-		assertEquals(new File(prefix + "/dir1/dir2"), absoluteFile);
-
-		file = new File("lib/toplink.jar");
-		dir = new File(prefix + "/My Documents/My Workspace/Project 1");
-		absoluteFile = FileTools.convertToAbsoluteFile(file, dir);
-		assertEquals(new File(prefix + "/My Documents/My Workspace/Project 1/lib/toplink.jar"), absoluteFile);
-	}
-
-	public void testFileNameIsReserved() {
-		boolean expected = this.isExecutingOnWindows();
-		assertEquals(expected, FileTools.fileNameIsReserved("CON"));
-		assertEquals(expected, FileTools.fileNameIsReserved("con"));
-		assertEquals(expected, FileTools.fileNameIsReserved("cON"));
-		assertEquals(expected, FileTools.fileNameIsReserved("AUX"));
-		assertEquals(expected, FileTools.fileNameIsReserved("COM3"));
-		assertEquals(expected, FileTools.fileNameIsReserved("LPT3"));
-		assertEquals(expected, FileTools.fileNameIsReserved("nUL"));
-		assertEquals(expected, FileTools.fileNameIsReserved("Prn"));
-	}
-
-	public void testFileHasAnyReservedComponents() {
-		boolean expected = this.isExecutingOnWindows();
-		assertEquals(expected, FileTools.fileHasAnyReservedComponents(new File("C:/CON")));
-		assertEquals(expected, FileTools.fileHasAnyReservedComponents(new File("/con/foo")));
-		assertEquals(expected, FileTools.fileHasAnyReservedComponents(new File("c:/temp/cON")));
-		assertEquals(expected, FileTools.fileHasAnyReservedComponents(new File("bar//baz//AUX")));
-		assertEquals(expected, FileTools.fileHasAnyReservedComponents(new File("COM3//ttt")));
-		assertEquals(expected, FileTools.fileHasAnyReservedComponents(new File("d:/LPT3/xxx")));
-		assertEquals(expected, FileTools.fileHasAnyReservedComponents(new File("c:/my docs and stuff/tuesday/nUL")));
-		assertEquals(expected, FileTools.fileHasAnyReservedComponents(new File("Prn")));
-	}
-
-	public void testShortenFileNameFile() {
-		if (this.isExecutingOnWindows()) {
-			this.verifyShortenFileNameFileWin();
-		} else {
-			this.verifyShortenFileNameFileNonWin();
-		}
-	}
-
-	private void verifyShortenFileNameFileWin() {
-		File file = new File("C:\\Documents and Settings\\Administrator\\Desktop\\Project\\Text.txt");
-		String fileName = FileTools.shortenFileName(file);
-		assertEquals("C:\\Documents and Settings\\...\\Desktop\\Project\\Text.txt", fileName);
-		assertTrue(fileName.length() <= FileTools.MAXIMUM_SHORTENED_FILE_NAME_LENGTH);
-
-		file = new File("C:/");
-		fileName = FileTools.shortenFileName(file);
-		assertEquals("C:\\", fileName);
-		assertTrue(fileName.length() <= FileTools.MAXIMUM_SHORTENED_FILE_NAME_LENGTH);
-	}
-
-	private void verifyShortenFileNameFileNonWin() {
-		File file = new File("/home/administrator/documents and settings/desktop/Project/Text.txt");
-		String fileName = FileTools.shortenFileName(file);
-		assertEquals("/home/administrator/.../desktop/Project/Text.txt", fileName);
-		assertTrue(fileName.length() <= FileTools.MAXIMUM_SHORTENED_FILE_NAME_LENGTH);
-
-		file = new File("/home");
-		fileName = FileTools.shortenFileName(file);
-		assertEquals("/home", fileName);
-		assertTrue(fileName.length() <= FileTools.MAXIMUM_SHORTENED_FILE_NAME_LENGTH);
-	}
-
-	public void testShortenFileNameFileInt() {
-		if (this.isExecutingOnWindows()) {
-			this.verifyShortenFileNameFileIntWin();
-		} else {
-			this.verifyShortenFileNameFileIntNonWin();
-		}
-	}
-
-	private void verifyShortenFileNameFileIntWin() {
-		File file = new File("C:\\Documents and Settings\\Administrator\\Desktop\\Project\\Text.txt");
-		String fileName = FileTools.shortenFileName(file, 31);
-		assertEquals("C:\\...\\Desktop\\Project\\Text.txt", fileName);
-		assertEquals(31, fileName.length());
-
-		file = new File("C:/This is the file name.txt");
-		fileName = FileTools.shortenFileName(file, 10);
-		assertEquals("C:\\This is the file name.txt", fileName);
-		assertEquals(28, fileName.length());
-	}
-
-	private void verifyShortenFileNameFileIntNonWin() {
-		File file = new File("/home/administrator/documents and settings/desktop/Project/Text.txt");
-		String fileName = FileTools.shortenFileName(file, 31);
-		assertEquals("/home/.../desktop/Project/Text.txt", fileName);
-		assertEquals(34, fileName.length());
-
-		file = new File("/This is the file name.txt");
-		fileName = FileTools.shortenFileName(file, 10);
-		assertEquals("/This is the file name.txt", fileName);
-		assertEquals(26, fileName.length());
-	}
-
-	public void testShortenFileNameURL() throws Exception {
-		if (this.isExecutingOnWindows()) {
-			this.verifyShortenFileNameURLWin();
-		} else {
-			this.verifyShortenFileNameURLNonWin();
-		}
-	}
-
-	private void verifyShortenFileNameURLWin() throws Exception {
-		URL url = new URL("file", "", "C:/Documents and Settings/Administrator/Desktop/Project/Text.txt");
-		String fileName = FileTools.shortenFileName(url);
-		assertEquals("C:\\Documents and Settings\\...\\Desktop\\Project\\Text.txt", fileName);
-		assertTrue(fileName.length() <= FileTools.MAXIMUM_SHORTENED_FILE_NAME_LENGTH);
-	}
-
-	private void verifyShortenFileNameURLNonWin() throws Exception {
-		URL url = new URL("file", "", "/home/administrator/documents and settings/desktop/Project/Text.txt");
-		String fileName = FileTools.shortenFileName(url);
-		assertEquals("/home/administrator/.../desktop/Project/Text.txt", fileName);
-		assertTrue(fileName.length() <= FileTools.MAXIMUM_SHORTENED_FILE_NAME_LENGTH);
-	}
-
-	public void testShortenFileNameURLInt() throws Exception {
-		if (this.isExecutingOnWindows()) {
-			this.verifyShortenFileNameURLIntWin();
-		} else {
-			this.verifyShortenFileNameURLIntNonWin();
-		}
-	}
-
-	private void verifyShortenFileNameURLIntWin() throws Exception {
-		URL url = new URL("file", "", "/C:/Documents and Settings/Administrator/Desktop/Project/Text.txt");
-		String fileName = FileTools.shortenFileName(url, 31);
-		assertEquals("C:\\...\\Desktop\\Project\\Text.txt", fileName);
-		assertEquals(31, fileName.length());
-	}
-
-	private void verifyShortenFileNameURLIntNonWin() throws Exception {
-		URL url = new URL("file", "", "/home/administrator/documents and settings/desktop/Project/Text.txt");
-		String fileName = FileTools.shortenFileName(url, 31);
-		assertEquals("/home/.../desktop/Project/Text.txt", fileName);
-		assertEquals(34, fileName.length());
-	}
-
-	private void verifyUnchangedAbsoluteFile(String fileName, String dirName) {
-		File file = new File(fileName);
-		File dir = new File(dirName);
-		File absoluteFile = FileTools.convertToAbsoluteFile(file, dir);
-		assertEquals(file, absoluteFile);
-	}
-
-	private File buildTempDir() throws IOException {
-		// build a new directory for each test, to prevent any cross-test effects
-		File dir = FileTools.newTemporaryDirectory(ClassTools.shortClassNameForObject(this) + "." + this.getName());
-
-		File file0a = new File(dir, "file0a");
-		file0a.createNewFile();
-		File file0b = new File(dir, "file0b");
-		file0b.createNewFile();
-		File file0c = new File(dir, "file0c");
-		file0c.createNewFile();
-
-		File subdir1 = new File(dir, "subdir1");
-		subdir1.mkdir();
-		File file1a = new File(subdir1, "file1a");
-		file1a.createNewFile();
-		File file1b = new File(subdir1, "file1b");
-		file1b.createNewFile();
-
-		File subdir2 = new File(dir, "subdir2");
-		subdir2.mkdir();
-		File file2a = new File(subdir2, "file2a");
-		file2a.createNewFile();
-		File file2b = new File(subdir2, "file2b");
-		file2b.createNewFile();
-
-		File subdir3 = new File(subdir2, "subdir3");
-		subdir3.mkdir();
-		File file3a = new File(subdir3, "file3a");
-		file3a.createNewFile();
-		File file3b = new File(subdir3, "file3b");
-		file3b.createNewFile();
-
-		return dir;
-	}
-
-	private void deleteDir(File dir) {
-		FileTools.deleteDirectory(dir);
-	}
-
-}
diff --git a/jpa/tests/org.eclipse.jpt.utility.tests/src/org/eclipse/jpt/utility/tests/internal/FilterTests.java b/jpa/tests/org.eclipse.jpt.utility.tests/src/org/eclipse/jpt/utility/tests/internal/FilterTests.java
deleted file mode 100644
index 35865ae..0000000
--- a/jpa/tests/org.eclipse.jpt.utility.tests/src/org/eclipse/jpt/utility/tests/internal/FilterTests.java
+++ /dev/null
@@ -1,49 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.utility.tests.internal;
-
-import junit.framework.TestCase;
-
-import org.eclipse.jpt.utility.Filter;
-
-@SuppressWarnings("nls")
-public class FilterTests extends TestCase {
-
-	public FilterTests(String name) {
-		super(name);
-	}
-
-	public void testNullFilter() {
-		Filter<String> filter = Filter.Null.instance();
-		assertTrue(filter.accept(""));
-		assertTrue(filter.accept("foo"));
-		assertTrue(filter.accept("bar"));
-	}
-
-	public void testOpaqueFilter() {
-		Filter<String> filter = Filter.Opaque.instance();
-		assertFalse(filter.accept(""));
-		assertFalse(filter.accept("foo"));
-		assertFalse(filter.accept("bar"));
-	}
-
-	public void testDisabledFilter() {
-		Filter<String> filter = Filter.Disabled.instance();
-		boolean exCaught = false;
-		try {
-			assertFalse(filter.accept("foo"));
-			fail();
-		} catch (UnsupportedOperationException ex) {
-			exCaught = true;
-		}
-		assertTrue(exCaught);
-	}
-
-}
diff --git a/jpa/tests/org.eclipse.jpt.utility.tests/src/org/eclipse/jpt/utility/tests/internal/HashBagTests.java b/jpa/tests/org.eclipse.jpt.utility.tests/src/org/eclipse/jpt/utility/tests/internal/HashBagTests.java
deleted file mode 100644
index 10e31c7..0000000
--- a/jpa/tests/org.eclipse.jpt.utility.tests/src/org/eclipse/jpt/utility/tests/internal/HashBagTests.java
+++ /dev/null
@@ -1,545 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005, 2008 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.utility.tests.internal;
-
-import java.util.ArrayList;
-import java.util.Collection;
-import java.util.ConcurrentModificationException;
-import java.util.Iterator;
-import java.util.NoSuchElementException;
-import junit.framework.TestCase;
-import org.eclipse.jpt.utility.internal.Bag;
-import org.eclipse.jpt.utility.internal.CollectionTools;
-import org.eclipse.jpt.utility.internal.HashBag;
-
-@SuppressWarnings("nls")
-public class HashBagTests extends TestCase {
-	private HashBag<String> bag;
-
-	public HashBagTests(String name) {
-		super(name);
-	}
-
-	@Override
-	protected void setUp() throws Exception {
-		super.setUp();
-		this.bag = this.buildBag();
-	}
-
-	private HashBag<String> buildBag() {
-		HashBag<String> b = new HashBag<String>();
-		b.add(null);
-		b.add(new String("one"));
-		b.add(new String("two"));
-		b.add(new String("two"));
-		b.add(new String("three"));
-		b.add(new String("three"));
-		b.add(new String("three"));
-		b.add(new String("four"));
-		b.add(new String("four"));
-		b.add(new String("four"));
-		b.add(new String("four"));
-		return b;
-	}
-
-	@Override
-	protected void tearDown() throws Exception {
-		TestTools.clear(this);
-		super.tearDown();
-	}
-
-	private Collection<String> buildCollection() {
-		Collection<String> c = new ArrayList<String>();
-		c.add(new String("foo"));
-		c.add(new String("foo"));
-		c.add(new String("bar"));
-		c.add(new String("bar"));
-		c.add(new String("bar"));
-		return c;
-	}
-
-	public void testCtorCollection() {
-		Collection<String> c = this.buildCollection();
-		Bag<String> b = new HashBag<String>(c);
-		for (String s : c) {
-			assertTrue(b.contains(s));
-		}
-	}
-
-	public void testCtorIntFloat() {
-		boolean exCaught;
-
-		exCaught = false;
-		try {
-			this.bag = new HashBag<String>(-20, 0.66f);
-		} catch (IllegalArgumentException ex) {
-			exCaught = true;
-		}
-		assertTrue(exCaught);
-
-		exCaught = false;
-		try {
-			this.bag = new HashBag<String>(20, -0.66f);
-		} catch (IllegalArgumentException ex) {
-			exCaught = true;
-		}
-		assertTrue(exCaught);
-	}
-
-	public void testAdd() {
-		// the other adds took place in setUp
-		assertTrue(this.bag.add("five"));
-
-		assertTrue(this.bag.contains("one"));
-		assertTrue(this.bag.contains("two"));
-		assertTrue(this.bag.contains("three"));
-		assertTrue(this.bag.contains("four"));
-		assertTrue(this.bag.contains("five"));
-	}
-
-	public void testAddCount() {
-		// the other adds took place in setUp
-		this.bag.add("minus3", -3);
-		this.bag.add("zero", 0);
-		this.bag.add("five", 5);
-
-		assertFalse(this.bag.contains("minus3"));
-		assertFalse(this.bag.contains("zero"));
-		assertEquals(1, this.bag.count("one"));
-		assertEquals(2, this.bag.count("two"));
-		assertEquals(3, this.bag.count("three"));
-		assertEquals(4, this.bag.count("four"));
-		assertEquals(5, this.bag.count("five"));
-
-		this.bag.add("three", 2);
-		assertEquals(5, this.bag.count("three"));
-	}
-
-	public void testAddAll() {
-		Collection<String> c = this.buildCollection();
-		assertTrue(this.bag.addAll(c));
-		for (String s : c) {
-			assertTrue(this.bag.contains(s));
-		}
-	}
-
-	public void testClear() {
-		assertTrue(this.bag.contains("one"));
-		assertTrue(this.bag.contains("two"));
-		assertTrue(this.bag.contains("three"));
-		assertTrue(this.bag.contains("four"));
-		assertTrue(this.bag.contains(null));
-		assertEquals(11, this.bag.size());
-		this.bag.clear();
-		assertFalse(this.bag.contains("one"));
-		assertFalse(this.bag.contains("two"));
-		assertFalse(this.bag.contains("three"));
-		assertFalse(this.bag.contains("four"));
-		assertFalse(this.bag.contains(null));
-		assertEquals(0, this.bag.size());
-	}
-
-	public void testClone() {
-		Bag<String> bag2 = this.bag.clone();
-		assertTrue(this.bag != bag2);
-		assertEquals(this.bag, bag2);
-		assertTrue(this.bag.hashCode() == bag2.hashCode());
-	}
-
-	public void testContains() {
-		assertTrue(this.bag.contains(null));
-		assertTrue(this.bag.contains("one"));
-		assertTrue(this.bag.contains("two"));
-		assertTrue(this.bag.contains("three"));
-		assertTrue(this.bag.contains("four"));
-		assertTrue(this.bag.contains(new String("four")));
-		assertTrue(this.bag.contains("fo" + "ur"));
-		assertFalse(this.bag.contains("five"));
-	}
-
-	public void testContainsAll() {
-		Collection<String> c = new ArrayList<String>();
-		c.add(null);
-		c.add(new String("one"));
-		c.add(new String("two"));
-		c.add(new String("three"));
-		c.add(new String("four"));
-		assertTrue(this.bag.containsAll(c));
-	}
-
-	public void testCount() {
-		assertEquals(0, this.bag.count("zero"));
-		assertEquals(1, this.bag.count("one"));
-		assertEquals(2, this.bag.count("two"));
-		assertEquals(3, this.bag.count("three"));
-		assertEquals(4, this.bag.count("four"));
-		assertEquals(0, this.bag.count("five"));
-	}
-
-	public void testEquals() {
-		Bag<String> bag2 = this.buildBag();
-		assertEquals(this.bag, bag2);
-		bag2.add("five");
-		assertFalse(this.bag.equals(bag2));
-		Collection<String> c = new ArrayList<String>(this.bag);
-		assertFalse(this.bag.equals(c));
-	}
-
-	public void testHashCode() {
-		Bag<String> bag2 = this.buildBag();
-		assertEquals(this.bag.hashCode(), bag2.hashCode());
-	}
-
-	public void testIsEmpty() {
-		assertFalse(this.bag.isEmpty());
-		this.bag.clear();
-		assertTrue(this.bag.isEmpty());
-		this.bag.add("foo");
-		assertFalse(this.bag.isEmpty());
-	}
-
-	public void testEmptyIterator() {
-		this.bag.clear();
-		Iterator<String> iterator = this.bag.iterator();
-		assertFalse(iterator.hasNext());
-
-		boolean exCaught = false;
-		Object element = null;
-		try {
-			element = iterator.next();
-			fail(element.toString());
-		} catch (NoSuchElementException ex) {
-			exCaught = true;
-		}
-		assertTrue(exCaught);
-
-		exCaught = false;
-		try {
-			iterator.remove();
-		} catch (IllegalStateException ex) {
-			exCaught = true;
-		}
-		assertTrue(exCaught);
-	}
-
-	public void testIterator() {
-		int i = 0;
-		Iterator<String> iterator = this.bag.iterator();
-		assertTrue(iterator.hasNext());
-		while (iterator.hasNext()) {
-			iterator.next();
-			i++;
-		}
-		assertEquals(11, i);
-		assertFalse(iterator.hasNext());
-
-		boolean exCaught = false;
-		Object element = null;
-		try {
-			element = iterator.next();
-			fail(element.toString());
-		} catch (NoSuchElementException ex) {
-			exCaught = true;
-		}
-		assertTrue(exCaught);
-
-		iterator.remove();
-		assertEquals(10, this.bag.size());
-
-		exCaught = false;
-		try {
-			iterator.remove();
-		} catch (IllegalStateException ex) {
-			exCaught = true;
-		}
-		assertTrue(exCaught);
-
-		// start over
-		iterator = this.bag.iterator();
-		this.bag.add("five");
-		exCaught = false;
-		try {
-			iterator.next();
-		} catch (ConcurrentModificationException ex) {
-			exCaught = true;
-		}
-		assertTrue(exCaught);
-	}
-
-	public void testUniqueIterator() {
-		int i = 0;
-		Iterator<String> iterator = this.bag.uniqueIterator();
-		assertTrue(iterator.hasNext());
-		while (iterator.hasNext()) {
-			iterator.next();
-			i++;
-		}
-		assertEquals(5, i);
-		assertFalse(iterator.hasNext());
-
-		boolean exCaught = false;
-		Object element = null;
-		try {
-			element = iterator.next();
-			fail(element.toString());
-		} catch (NoSuchElementException ex) {
-			exCaught = true;
-		}
-		assertTrue(exCaught);
-
-		// start over
-		iterator = this.bag.uniqueIterator();
-		Object next = null;
-		while (iterator.hasNext() && !"four".equals(next)) {
-			next = iterator.next();
-		}
-		iterator.remove();
-		assertEquals(7, this.bag.size());
-
-		exCaught = false;
-		try {
-			iterator.remove();
-		} catch (IllegalStateException ex) {
-			exCaught = true;
-		}
-		assertTrue(exCaught);
-
-		// start over
-		iterator = this.bag.uniqueIterator();
-		this.bag.add("five");
-		exCaught = false;
-		try {
-			iterator.next();
-		} catch (ConcurrentModificationException ex) {
-			exCaught = true;
-		}
-		assertTrue(exCaught);
-	}
-
-	public void testEntries() {
-		int i = 0;
-		Iterator<Bag.Entry<String>> iterator = this.bag.entries();
-		assertTrue(iterator.hasNext());
-		while (iterator.hasNext()) {
-			iterator.next();
-			i++;
-		}
-		assertEquals(5, i);
-		assertFalse(iterator.hasNext());
-
-		boolean exCaught = false;
-		Object element = null;
-		try {
-			element = iterator.next();
-			fail(element.toString());
-		} catch (NoSuchElementException ex) {
-			exCaught = true;
-		}
-		assertTrue(exCaught);
-
-		// start over
-		iterator = this.bag.entries();
-		Bag.Entry<String> next = null;
-		while (iterator.hasNext()) {
-			next = iterator.next();
-			if (next.getElement().equals("four")) {
-				iterator.remove();
-				break;
-			}
-		}
-		assertEquals(7, this.bag.size());
-
-		exCaught = false;
-		try {
-			iterator.remove();
-		} catch (IllegalStateException ex) {
-			exCaught = true;
-		}
-		assertTrue(exCaught);
-
-		// start over
-		iterator = this.bag.entries();
-		this.bag.add("five");
-		exCaught = false;
-		try {
-			iterator.next();
-		} catch (ConcurrentModificationException ex) {
-			exCaught = true;
-		}
-		assertTrue(exCaught);
-	}
-
-//TODO - poor load factor is seen in the Eclipse build environment for some reason
-//	public void testHashingDistribution() throws Exception {
-//		Bag<String> bigBag = new HashBag<String>();
-//		for (int i = 0; i < 10000; i++) {
-//			bigBag.add("object" + i);
-//		}
-//
-//		java.lang.reflect.Field field = bigBag.getClass().getDeclaredField("table");
-//		field.setAccessible(true);
-//		Object[] table = (Object[]) field.get(bigBag);
-//		int bucketCount = table.length;
-//		int filledBucketCount = 0;
-//		for (Object o : table) {
-//			if (o != null) {
-//				filledBucketCount++;
-//			}
-//		}
-//		float loadFactor = ((float) filledBucketCount) / ((float) bucketCount);
-//		assertTrue("WARNING - poor load factor: " + loadFactor, loadFactor > 0.20);
-//		assertTrue("WARNING - poor load factor: " + loadFactor, loadFactor < 0.75);
-//	}
-
-	public void testRemove() {
-		assertTrue(this.bag.remove("one"));
-		assertFalse(this.bag.contains("one"));
-		assertFalse(this.bag.remove("one"));
-
-		assertTrue(this.bag.remove("two"));
-		assertTrue(this.bag.remove("two"));
-		assertFalse(this.bag.contains("two"));
-		assertFalse(this.bag.remove("two"));
-	}
-
-	public void testRemoveCount() {
-		assertFalse(this.bag.remove("one", 0));
-		assertTrue(this.bag.contains("one"));
-
-		assertTrue(this.bag.remove("one", 1));
-		assertFalse(this.bag.contains("one"));
-		assertFalse(this.bag.remove("one"));
-
-		assertFalse(this.bag.remove("two", -3));
-		assertTrue(this.bag.remove("two", 1));
-		assertTrue(this.bag.contains("two"));
-
-		assertTrue(this.bag.remove("two", 1));
-		assertFalse(this.bag.contains("two"));
-		assertFalse(this.bag.remove("two"));
-
-		assertTrue(this.bag.remove("three", 3));
-		assertFalse(this.bag.contains("three"));
-		assertFalse(this.bag.remove("three"));
-	}
-
-	public void testRemoveAll() {
-		Collection<String> c = new ArrayList<String>();
-		c.add("one");
-		c.add("three");
-		assertTrue(this.bag.removeAll(c));
-		assertFalse(this.bag.contains("one"));
-		assertFalse(this.bag.contains("three"));
-		assertFalse(this.bag.remove("one"));
-		assertFalse(this.bag.remove("three"));
-		assertFalse(this.bag.removeAll(c));
-	}
-
-	public void testRetainAll() {
-		Collection<String> c = new ArrayList<String>();
-		c.add("one");
-		c.add("three");
-		assertTrue(this.bag.retainAll(c));
-		assertTrue(this.bag.contains("one"));
-		assertTrue(this.bag.contains("three"));
-		assertFalse(this.bag.contains("two"));
-		assertFalse(this.bag.contains("four"));
-		assertFalse(this.bag.remove("two"));
-		assertFalse(this.bag.remove("four"));
-		assertFalse(this.bag.retainAll(c));
-	}
-
-	public void testSize() {
-		assertTrue(this.bag.size() == 11);
-		this.bag.add("five");
-		this.bag.add("five");
-		this.bag.add("five");
-		this.bag.add("five");
-		this.bag.add("five");
-		assertEquals(16, this.bag.size());
-	}
-
-	public void testSerialization() throws Exception {
-		Bag<String> bag2 = TestTools.serialize(this.bag);
-
-		assertTrue("same object?", this.bag != bag2);
-		assertEquals(11, bag2.size());
-		assertEquals(this.bag, bag2);
-		// look for similar elements
-		assertTrue(bag2.contains(null));
-		assertTrue(bag2.contains("one"));
-		assertTrue(bag2.contains("two"));
-		assertTrue(bag2.contains("three"));
-		assertTrue(bag2.contains("four"));
-
-		int nullCount = 0, oneCount = 0, twoCount = 0, threeCount = 0, fourCount = 0;
-		for (String s : bag2) {
-			if (s == null) {
-				nullCount++;
-			} else if (s.equals("one")) {
-				oneCount++;
-			} else if (s.equals("two")) {
-				twoCount++;
-			} else if (s.equals("three")) {
-				threeCount++;
-			} else if (s.equals("four")) {
-				fourCount++;
-			}
-		}
-		assertEquals(1, nullCount);
-		assertEquals(1, oneCount);
-		assertEquals(2, twoCount);
-		assertEquals(3, threeCount);
-		assertEquals(4, fourCount);
-	}
-
-	public void testToArray() {
-		Object[] a = this.bag.toArray();
-		assertEquals(11, a.length);
-		assertTrue(CollectionTools.contains(a, null));
-		assertTrue(CollectionTools.contains(a, "one"));
-		assertTrue(CollectionTools.contains(a, "two"));
-		assertTrue(CollectionTools.contains(a, "three"));
-		assertTrue(CollectionTools.contains(a, "four"));
-	}
-
-	public void testToArrayObjectArray() {
-		String[] a = new String[12];
-		a[11] = "not null";
-		String[] b = this.bag.toArray(a);
-		assertEquals(a, b);
-		assertEquals(12, a.length);
-		assertTrue(CollectionTools.contains(a, null));
-		assertTrue(CollectionTools.contains(a, "one"));
-		assertTrue(CollectionTools.contains(a, "two"));
-		assertTrue(CollectionTools.contains(a, "three"));
-		assertTrue(CollectionTools.contains(a, "four"));
-		assertTrue(a[11] == null);
-	}
-
-	public void testToString() {
-		String s = this.bag.toString();
-		assertTrue(s.startsWith("["));
-		assertTrue(s.endsWith("]"));
-		int commaCount = 0;
-		for (int i = 0; i < s.length(); i++) {
-			if (s.charAt(i) == ',') {
-				commaCount++;
-			}
-		}
-		assertEquals(10, commaCount);
-		assertTrue(s.indexOf("one") != -1);
-		assertTrue(s.indexOf("two") != -1);
-		assertTrue(s.indexOf("three") != -1);
-		assertTrue(s.indexOf("four") != -1);
-		assertTrue(s.indexOf("null") != -1);
-	}
-
-}
diff --git a/jpa/tests/org.eclipse.jpt.utility.tests/src/org/eclipse/jpt/utility/tests/internal/IdentityHashBagTests.java b/jpa/tests/org.eclipse.jpt.utility.tests/src/org/eclipse/jpt/utility/tests/internal/IdentityHashBagTests.java
deleted file mode 100644
index 8d7f394..0000000
--- a/jpa/tests/org.eclipse.jpt.utility.tests/src/org/eclipse/jpt/utility/tests/internal/IdentityHashBagTests.java
+++ /dev/null
@@ -1,564 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2008 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.utility.tests.internal;
-
-import java.util.ArrayList;
-import java.util.Collection;
-import java.util.ConcurrentModificationException;
-import java.util.Iterator;
-import java.util.NoSuchElementException;
-import junit.framework.TestCase;
-import org.eclipse.jpt.utility.internal.CollectionTools;
-import org.eclipse.jpt.utility.internal.IdentityHashBag;
-
-@SuppressWarnings("nls")
-public class IdentityHashBagTests extends TestCase {
-	private IdentityHashBag<String> bag;
-	private String one = "one";
-	private String two = "two";
-	private String three = "three";
-	private String four = "four";
-	private String foo = "foo";
-	private String bar = "bar";
-
-	public IdentityHashBagTests(String name) {
-		super(name);
-	}
-
-	@Override
-	protected void setUp() throws Exception {
-		super.setUp();
-		this.bag = this.buildBag();
-	}
-	
-	protected IdentityHashBag<String> buildBag() {
-		IdentityHashBag<String> result = new IdentityHashBag<String>();
-		result.add(null);
-		result.add(this.one);
-		result.add(this.two);
-		result.add(this.two);
-		result.add(this.three);
-		result.add(this.three);
-		result.add(this.three);
-		result.add(this.four);
-		result.add(this.four);
-		result.add(this.four);
-		result.add(this.four);
-		return result;
-	}
-	
-	@Override
-	protected void tearDown() throws Exception {
-		TestTools.clear(this);
-		super.tearDown();
-	}
-
-	private Collection<String> buildCollection() {
-		Collection<String> c = new ArrayList<String>();
-		c.add(this.foo);
-		c.add(this.foo);
-		c.add(this.bar);
-		c.add(this.bar);
-		c.add(this.bar);
-		return c;
-	}
-	
-	public void testCtorCollection() {
-		Collection<String> c = this.buildCollection();
-		IdentityHashBag<String> localBag = new IdentityHashBag<String>(c);
-		for (String s : c) {
-			assertTrue(localBag.contains(s));
-		}
-	}
-	
-	public void testCtorIntFloat() {
-		boolean exCaught;
-	
-		exCaught = false;
-		try {
-			this.bag = new IdentityHashBag<String>(-20, 0.66f);
-		} catch (IllegalArgumentException ex) {
-			exCaught = true;
-		}
-		assertTrue("IllegalArgumentException not thrown", exCaught);
-	
-		exCaught = false;
-		try {
-			this.bag = new IdentityHashBag<String>(20, -0.66f);
-		} catch (IllegalArgumentException ex) {
-			exCaught = true;
-		}
-		assertTrue("IllegalArgumentException not thrown", exCaught);
-	}
-	
-	public void testAdd() {
-		// the other adds took place in setUp
-		String five = "five";
-		assertTrue(this.bag.add(five));
-	
-		assertTrue(this.bag.contains(this.one));
-		assertTrue(this.bag.contains(this.two));
-		assertTrue(this.bag.contains(this.three));
-		assertTrue(this.bag.contains(this.four));
-		assertTrue(this.bag.contains(five));
-	}
-	
-	public void testAddCount() {
-		String minus3 = "minus3";
-		String zero = "zero";
-		String five = "five";
-		// the other adds took place in setUp
-		this.bag.add(minus3, -3);
-		this.bag.add(zero, 0);
-		this.bag.add(five, 5);
-
-		assertFalse(this.bag.contains(minus3));
-		assertFalse(this.bag.contains(zero));
-		assertEquals(1, this.bag.count(this.one));
-		assertEquals(2, this.bag.count(this.two));
-		assertEquals(3, this.bag.count(this.three));
-		assertEquals(4, this.bag.count(this.four));
-		assertEquals(5, this.bag.count(five));
-
-		this.bag.add(this.three, 2);
-		assertEquals(5, this.bag.count(this.three));
-	}
-
-	public void testAddAll() {
-		Collection<String> c = this.buildCollection();
-		assertTrue(this.bag.addAll(c));
-		for (String s : c) {
-			assertTrue(this.bag.contains(s));
-		}
-	}
-	
-	public void testClear() {
-		assertTrue(this.bag.contains(this.one));
-		assertTrue(this.bag.contains(this.two));
-		assertTrue(this.bag.contains(this.three));
-		assertTrue(this.bag.contains(this.four));
-		assertTrue(this.bag.contains(null));
-		assertEquals(11, this.bag.size());
-		this.bag.clear();
-		assertFalse(this.bag.contains(this.one));
-		assertFalse(this.bag.contains(this.two));
-		assertFalse(this.bag.contains(this.three));
-		assertFalse(this.bag.contains(this.four));
-		assertFalse(this.bag.contains(null));
-		assertEquals(0, this.bag.size());
-	}
-	
-	public void testClone() {
-		IdentityHashBag<String> bag2 = this.bag.clone();
-		assertTrue("bad clone", this.bag != bag2);
-		assertEquals("bad clone", this.bag, bag2);
-		assertTrue("bad clone", this.bag.hashCode() == bag2.hashCode());
-	}
-	
-	public void testContains() {
-		assertTrue(this.bag.contains(null));
-		assertTrue(this.bag.contains(this.one));
-		assertTrue(this.bag.contains(this.two));
-		assertTrue(this.bag.contains(this.three));
-		assertTrue(this.bag.contains(this.four));
-
-		assertFalse(this.bag.contains(new String("four")));
-		assertFalse(this.bag.contains("five"));
-	}
-	
-	public void testContainsAll() {
-		Collection<String> c = new ArrayList<String>();
-		c.add(null);
-		c.add(this.one);
-		c.add(this.two);
-		c.add(this.three);
-		c.add(this.four);
-		assertTrue(this.bag.containsAll(c));
-		c.add(new String(this.four));
-		assertFalse(this.bag.containsAll(c));
-	}
-	
-	public void testCount() {
-		assertEquals(0, this.bag.count("zero"));
-		assertEquals(1, this.bag.count("one"));
-		assertEquals(2, this.bag.count("two"));
-		assertEquals(3, this.bag.count("three"));
-		assertEquals(4, this.bag.count("four"));
-		assertEquals(0, this.bag.count("five"));
-	}
-	
-	public void testEquals() {
-		IdentityHashBag<String> bag2 = this.buildBag();
-		assertEquals(this.bag, bag2);
-		bag2.add("five");
-		assertFalse(this.bag.equals(bag2));
-		Collection<String> c = new ArrayList<String>(this.bag);
-		assertFalse(this.bag.equals(c));
-	}
-	
-	public void testHashCode() {
-		IdentityHashBag<String> bag2 = this.buildBag();
-		assertEquals(this.bag.hashCode(), bag2.hashCode());
-	}
-	
-	public void testIsEmpty() {
-		assertFalse(this.bag.isEmpty());
-		this.bag.clear();
-		assertTrue(this.bag.isEmpty());
-		this.bag.add("foo");
-		assertFalse(this.bag.isEmpty());
-	}
-	
-	public void testEmptyIterator() {
-		this.bag.clear();
-		Iterator<String> iterator = this.bag.iterator();
-		assertFalse(iterator.hasNext());
-	
-		boolean exCaught = false;
-		Object element = null;
-		try {
-			element = iterator.next();
-		} catch (NoSuchElementException ex) {
-			exCaught = true;
-		}
-		assertTrue("NoSuchElementException not thrown: " + element, exCaught);
-	
-		exCaught = false;
-		try {
-			iterator.remove();
-		} catch (IllegalStateException ex) {
-			exCaught = true;
-		}
-		assertTrue("IllegalStateException not thrown", exCaught);
-	}
-	
-	public void testIterator() {
-		int i = 0;
-		Iterator<String> iterator = this.bag.iterator();
-		assertTrue(iterator.hasNext());
-		while (iterator.hasNext()) {
-			iterator.next();
-			i++;
-		}
-		assertEquals(11, i);
-		assertFalse(iterator.hasNext());
-	
-		boolean exCaught = false;
-		Object element = null;
-		try {
-			element = iterator.next();
-		} catch (NoSuchElementException ex) {
-			exCaught = true;
-		}
-		assertTrue("NoSuchElementException not thrown: " + element, exCaught);
-	
-		iterator.remove();
-		assertEquals(10, this.bag.size());
-	
-		exCaught = false;
-		try {
-			iterator.remove();
-		} catch (IllegalStateException ex) {
-			exCaught = true;
-		}
-		assertTrue("IllegalStateException not thrown", exCaught);
-	
-		// start over
-		iterator = this.bag.iterator();
-		this.bag.add("five");
-		exCaught = false;
-		try {
-			iterator.next();
-		} catch (ConcurrentModificationException ex) {
-			exCaught = true;
-		}
-		assertTrue("ConcurrentModificationException not thrown", exCaught);
-	}
-	
-	public void testUniqueIterator() {
-		int i = 0;
-		Iterator<String> iterator = this.bag.uniqueIterator();
-		assertTrue(iterator.hasNext());
-		while (iterator.hasNext()) {
-			iterator.next();
-			i++;
-		}
-		assertEquals(5, i);
-		assertFalse(iterator.hasNext());
-
-		boolean exCaught = false;
-		Object element = null;
-		try {
-			element = iterator.next();
-			fail(element.toString());
-		} catch (NoSuchElementException ex) {
-			exCaught = true;
-		}
-		assertTrue(exCaught);
-
-		// start over
-		iterator = this.bag.uniqueIterator();
-		Object next = null;
-		while (iterator.hasNext() && !this.four.equals(next)) {
-			next = iterator.next();
-		}
-		iterator.remove();
-		assertEquals(7, this.bag.size());
-
-		exCaught = false;
-		try {
-			iterator.remove();
-		} catch (IllegalStateException ex) {
-			exCaught = true;
-		}
-		assertTrue(exCaught);
-
-		// start over
-		iterator = this.bag.uniqueIterator();
-		String five = "five";
-		this.bag.add(five);
-		exCaught = false;
-		try {
-			iterator.next();
-		} catch (ConcurrentModificationException ex) {
-			exCaught = true;
-		}
-		assertTrue(exCaught);
-	}
-
-	public void testEntries() {
-		int i = 0;
-		Iterator<org.eclipse.jpt.utility.internal.Bag.Entry<String>> iterator = this.bag.entries();
-		assertTrue(iterator.hasNext());
-		while (iterator.hasNext()) {
-			iterator.next();
-			i++;
-		}
-		assertEquals(5, i);
-		assertFalse(iterator.hasNext());
-
-		boolean exCaught = false;
-		Object element = null;
-		try {
-			element = iterator.next();
-			fail(element.toString());
-		} catch (NoSuchElementException ex) {
-			exCaught = true;
-		}
-		assertTrue(exCaught);
-
-		// start over
-		iterator = this.bag.entries();
-		org.eclipse.jpt.utility.internal.Bag.Entry<String> next = null;
-		while (iterator.hasNext()) {
-			next = iterator.next();
-			if (next.getElement().equals(this.four)) {
-				iterator.remove();
-				break;
-			}
-		}
-		assertEquals(7, this.bag.size());
-
-		exCaught = false;
-		try {
-			iterator.remove();
-		} catch (IllegalStateException ex) {
-			exCaught = true;
-		}
-		assertTrue(exCaught);
-
-		// start over
-		iterator = this.bag.entries();
-		String five = "five";
-		this.bag.add(five);
-		exCaught = false;
-		try {
-			iterator.next();
-		} catch (ConcurrentModificationException ex) {
-			exCaught = true;
-		}
-		assertTrue(exCaught);
-	}
-
-	// Commenting out this test as it is also failing in the Eclipse build
-	// apparenly there are some hashing issues that need to be looked into.
-//	public void testHashingDistribution() throws Exception {
-//		IdentityHashBag<String> bigBag = new IdentityHashBag<String>();
-//		for (int i = 0; i < 10000; i++) {
-//			bigBag.add("object" + i);
-//		}
-//	
-//		java.lang.reflect.Field field = bigBag.getClass().getDeclaredField("table");
-//		field.setAccessible(true);
-//		Object[] table = (Object[]) field.get(bigBag);
-//		int bucketCount = table.length;
-//		int filledBucketCount = 0;
-//		for (int i = 0; i < bucketCount; i++) {
-//			if (table[i] != null) {
-//				filledBucketCount++;
-//			}
-//		}
-//		float loadFactor = ((float) filledBucketCount)/((float) bucketCount);
-//		// System.out.println("load factor: " + loadFactor + " (" + filledBucketCount + "/" + bucketCount + ")");
-//		assertTrue("WARNING - poor load factor: " + loadFactor, loadFactor > 0.20);
-//		assertTrue("WARNING - poor load factor: " + loadFactor, loadFactor < 0.75);
-//	}
-	
-	public void testRemove() {
-		assertTrue(this.bag.remove(this.one));
-		assertFalse(this.bag.contains(this.one));
-		assertFalse(this.bag.remove(this.one));
-	
-		assertTrue(this.bag.remove(this.two));
-		assertTrue(this.bag.remove(this.two));
-		assertFalse(this.bag.contains(this.two));
-		assertFalse(this.bag.remove(this.two));
-
-		assertFalse(this.bag.remove(new String(this.three)));
-	}
-	
-	public void testRemoveCount() {
-		assertFalse(this.bag.remove(this.one, 0));
-		assertTrue(this.bag.contains(this.one));
-
-		assertTrue(this.bag.remove(this.one, 1));
-		assertFalse(this.bag.contains(this.one));
-		assertFalse(this.bag.remove(this.one));
-
-		assertFalse(this.bag.remove(this.two, -3));
-		assertTrue(this.bag.remove(this.two, 1));
-		assertTrue(this.bag.contains(this.two));
-
-		assertTrue(this.bag.remove(this.two, 1));
-		assertFalse(this.bag.contains(this.two));
-		assertFalse(this.bag.remove(this.two));
-
-		assertTrue(this.bag.remove(this.three, 3));
-		assertFalse(this.bag.contains(this.three));
-		assertFalse(this.bag.remove(this.three));
-	}
-
-	public void testRemoveAll() {
-		Collection<String> c = new ArrayList<String>();
-		c.add(this.one);
-		c.add(new String(this.two));
-		c.add(this.three);
-		assertTrue(this.bag.removeAll(c));
-		assertFalse(this.bag.contains(this.one));
-		assertTrue(this.bag.contains(this.two));
-		assertFalse(this.bag.contains(this.three));
-		assertFalse(this.bag.remove(this.one));
-		assertTrue(this.bag.remove(this.two));
-		assertFalse(this.bag.remove(this.three));
-		assertFalse(this.bag.removeAll(c));
-	}
-	
-	public void testRetainAll() {
-		Collection<String> c = new ArrayList<String>();
-		c.add(this.one);
-		c.add(new String(this.two));
-		c.add(this.three);
-		assertTrue(this.bag.retainAll(c));
-		assertTrue(this.bag.contains(this.one));
-		assertFalse(this.bag.contains(this.two));
-		assertTrue(this.bag.contains(this.three));
-		assertFalse(this.bag.contains(this.four));
-		assertFalse(this.bag.remove(this.two));
-		assertFalse(this.bag.remove(this.four));
-		assertFalse(this.bag.retainAll(c));
-	}
-	
-	public void testSize() {
-		assertTrue(this.bag.size() == 11);
-		String five = "five";
-		this.bag.add(five);
-		this.bag.add(five);
-		this.bag.add(five);
-		this.bag.add(five);
-		this.bag.add(new String(five));
-		assertEquals(16, this.bag.size());
-	}
-	
-	public void testSerialization() throws Exception {
-		IdentityHashBag<String> bag2 = TestTools.serialize(this.bag);
-	
-		assertTrue("same object?", this.bag != bag2);
-		assertEquals(11, bag2.size());
-		assertEquals(CollectionTools.bag(this.bag.iterator()), CollectionTools.bag(bag2.iterator()));
-		// look for similar elements
-		assertTrue(CollectionTools.bag(bag2.iterator()).contains(null));
-		assertTrue(CollectionTools.bag(bag2.iterator()).contains("one"));
-		assertTrue(CollectionTools.bag(bag2.iterator()).contains("two"));
-		assertTrue(CollectionTools.bag(bag2.iterator()).contains("three"));
-		assertTrue(CollectionTools.bag(bag2.iterator()).contains("four"));
-	
-		int nullCount = 0, oneCount = 0, twoCount = 0, threeCount = 0, fourCount = 0;
-		for (String next : bag2) {
-			if (next == null)
-				nullCount++;
-			else if (next.equals("one"))
-				oneCount++;
-			else if (next.equals("two"))
-				twoCount++;
-			else if (next.equals("three"))
-				threeCount++;
-			else if (next.equals("four"))
-				fourCount++;
-		}
-		assertEquals(1, nullCount);
-		assertEquals(1, oneCount);
-		assertEquals(2, twoCount);
-		assertEquals(3, threeCount);
-		assertEquals(4, fourCount);
-	}
-	
-	public void testToArray() {
-		Object[] a = this.bag.toArray();
-		assertEquals(11, a.length);
-		assertTrue(CollectionTools.contains(a, null));
-		assertTrue(CollectionTools.contains(a, this.one));
-		assertTrue(CollectionTools.contains(a, this.two));
-		assertTrue(CollectionTools.contains(a, this.three));
-		assertTrue(CollectionTools.contains(a, this.four));
-	}
-	
-	public void testToArrayObjectArray() {
-		String[] a = new String[12];
-		a[11] = "not null";
-		String[] b = this.bag.toArray(a);
-		assertEquals(a, b);
-		assertEquals(12, a.length);
-		assertTrue(CollectionTools.contains(a, null));
-		assertTrue(CollectionTools.contains(a, this.one));
-		assertTrue(CollectionTools.contains(a, this.two));
-		assertTrue(CollectionTools.contains(a, this.three));
-		assertTrue(CollectionTools.contains(a, this.four));
-		assertTrue(a[11] == null);
-	}
-	
-	public void testToString() {
-		String s = this.bag.toString();
-		assertTrue(s.startsWith("["));
-		assertTrue(s.endsWith("]"));
-		int commaCount = 0;
-		for (int i = 0; i < s.length(); i++) {
-			if (s.charAt(i) == ',') {
-				commaCount++;
-			}
-		}
-		assertEquals("invalid number of commas", 10, commaCount);
-		assertTrue(s.indexOf("one") != -1);
-		assertTrue(s.indexOf("two") != -1);
-		assertTrue(s.indexOf("three") != -1);
-		assertTrue(s.indexOf("four") != -1);
-		assertTrue(s.indexOf("null") != -1);
-	}
-
-}
diff --git a/jpa/tests/org.eclipse.jpt.utility.tests/src/org/eclipse/jpt/utility/tests/internal/IndentingPrintWriterTests.java b/jpa/tests/org.eclipse.jpt.utility.tests/src/org/eclipse/jpt/utility/tests/internal/IndentingPrintWriterTests.java
deleted file mode 100644
index b971895..0000000
--- a/jpa/tests/org.eclipse.jpt.utility.tests/src/org/eclipse/jpt/utility/tests/internal/IndentingPrintWriterTests.java
+++ /dev/null
@@ -1,107 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005, 2008 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.utility.tests.internal;
-
-import java.io.StringWriter;
-import junit.framework.TestCase;
-import org.eclipse.jpt.utility.internal.IndentingPrintWriter;
-
-public class IndentingPrintWriterTests extends TestCase {
-	StringWriter sw1;
-	StringWriter sw2;
-	IndentingPrintWriter ipw1;
-	IndentingPrintWriter ipw2;
-
-	static final String CR = System.getProperty("line.separator");
-
-	public IndentingPrintWriterTests(String name) {
-		super(name);
-	}
-
-	@Override
-	public void setUp() throws Exception {
-		super.setUp();
-		this.sw1 = new StringWriter();
-		this.ipw1 = new IndentingPrintWriter(this.sw1);
-		this.sw2 = new StringWriter();
-		this.ipw2 = new IndentingPrintWriter(this.sw2, "    "); // indent with 4 spaces instead of a tab
-	}
-
-	@Override
-	protected void tearDown() throws Exception {
-		TestTools.clear(this);
-		super.tearDown();
-	}
-
-	public void testIndent() {
-		assertEquals("wrong indent level", 0, this.ipw1.indentLevel());
-		this.ipw1.indent();
-		assertEquals("wrong indent level", 1, this.ipw1.indentLevel());
-	}
-
-	public void testUndent() {
-		assertEquals("wrong indent level", 0, this.ipw1.indentLevel());
-		this.ipw1.indent();
-		assertEquals("wrong indent level", 1, this.ipw1.indentLevel());
-		this.ipw1.undent();
-		assertEquals("wrong indent level", 0, this.ipw1.indentLevel());
-	}
-
-	public void testIncrementIndentLevel() {
-		assertEquals("wrong indent level", 0, this.ipw1.indentLevel());
-		this.ipw1.incrementIndentLevel();
-		assertEquals("wrong indent level", 1, this.ipw1.indentLevel());
-	}
-
-	public void testDecrementIndentLevel() {
-		assertEquals("wrong indent level", 0, this.ipw1.indentLevel());
-		this.ipw1.incrementIndentLevel();
-		assertEquals("wrong indent level", 1, this.ipw1.indentLevel());
-		this.ipw1.decrementIndentLevel();
-		assertEquals("wrong indent level", 0, this.ipw1.indentLevel());
-	}
-
-	public void testPrintTab() {
-		String expected = "foo0" + CR + "\tfoo1" + CR + "\tfoo1" + CR + "\t\tfoo2" + CR + "\tfoo1" + CR + "\tfoo1" + CR + "foo0" + CR;
-
-		this.ipw1.println("foo0");
-		this.ipw1.indent();
-		this.ipw1.println("foo1");
-		this.ipw1.println("foo1");
-		this.ipw1.indent();
-		this.ipw1.println("foo2");
-		this.ipw1.undent();
-		this.ipw1.println("foo1");
-		this.ipw1.println("foo1");
-		this.ipw1.undent();
-		this.ipw1.println("foo0");
-
-		assertEquals("bogus output", expected, this.sw1.toString());
-	}
-
-	public void testPrintSpaces() {
-		String expected = "foo0" + CR + "    foo1" + CR + "    foo1" + CR + "        foo2" + CR + "    foo1" + CR + "    foo1" + CR + "foo0" + CR;
-
-		this.ipw2.println("foo0");
-		this.ipw2.indent();
-		this.ipw2.println("foo1");
-		this.ipw2.println("foo1");
-		this.ipw2.indent();
-		this.ipw2.println("foo2");
-		this.ipw2.undent();
-		this.ipw2.println("foo1");
-		this.ipw2.println("foo1");
-		this.ipw2.undent();
-		this.ipw2.println("foo0");
-
-		assertEquals("bogus output", expected, this.sw2.toString());
-	}
-
-}
diff --git a/jpa/tests/org.eclipse.jpt.utility.tests/src/org/eclipse/jpt/utility/tests/internal/JDBCTypeTests.java b/jpa/tests/org.eclipse.jpt.utility.tests/src/org/eclipse/jpt/utility/tests/internal/JDBCTypeTests.java
deleted file mode 100644
index 07dad19..0000000
--- a/jpa/tests/org.eclipse.jpt.utility.tests/src/org/eclipse/jpt/utility/tests/internal/JDBCTypeTests.java
+++ /dev/null
@@ -1,66 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005, 2008 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.utility.tests.internal;
-
-import java.sql.Types;
-import junit.framework.TestCase;
-import org.eclipse.jpt.utility.internal.JDBCType;
-
-public class JDBCTypeTests extends TestCase {
-
-	public JDBCTypeTests(String name) {
-		super(name);
-	}
-
-	public void testTypesSize() {
-		assertEquals(Types.class.getDeclaredFields().length, JDBCType.types().length);
-	}
-
-	public void testName() {
-		JDBCType jdbcType;
-		jdbcType = JDBCType.type(Types.VARCHAR);
-		assertEquals("VARCHAR", jdbcType.name());
-
-		jdbcType = JDBCType.type(Types.INTEGER);
-		assertEquals("INTEGER", jdbcType.name());
-	}
-
-	public void testCode() {
-		JDBCType jdbcType;
-		jdbcType = JDBCType.type(Types.VARCHAR);
-		assertEquals(Types.VARCHAR, jdbcType.code());
-
-		jdbcType = JDBCType.type(Types.INTEGER);
-		assertEquals(Types.INTEGER, jdbcType.code());
-	}
-
-	public void testInvalidTypeCode() throws Exception {
-		boolean exCaught = false;
-		try {
-			JDBCType jdbcType = JDBCType.type(55);
-			fail("invalid JDBCType: " + jdbcType);
-		} catch (IllegalArgumentException ex) {
-			exCaught = true;
-		}
-		assertTrue(exCaught);
-	}
-
-	public void testInvalidTypeName() throws Exception {
-		boolean exCaught = false;
-		try {
-			JDBCType jdbcType = JDBCType.type("VARCHAR2");
-			fail("invalid JDBCType: " + jdbcType);
-		} catch (IllegalArgumentException ex) {
-			exCaught = true;
-		}
-		assertTrue(exCaught);
-	}
-
-}
diff --git a/jpa/tests/org.eclipse.jpt.utility.tests/src/org/eclipse/jpt/utility/tests/internal/JavaTypeTests.java b/jpa/tests/org.eclipse.jpt.utility.tests/src/org/eclipse/jpt/utility/tests/internal/JavaTypeTests.java
deleted file mode 100644
index eda195b..0000000
--- a/jpa/tests/org.eclipse.jpt.utility.tests/src/org/eclipse/jpt/utility/tests/internal/JavaTypeTests.java
+++ /dev/null
@@ -1,252 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005, 2008 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.utility.tests.internal;
-
-import junit.framework.TestCase;
-import org.eclipse.jpt.utility.JavaType;
-import org.eclipse.jpt.utility.internal.SimpleJavaType;
-
-@SuppressWarnings("nls")
-public class JavaTypeTests extends TestCase {
-
-	public JavaTypeTests(String name) {
-		super(name);
-	}
-
-	public void testInvalidElementTypeNull() throws Exception {
-		boolean exCaught = false;
-		try {
-			JavaType javaType = new SimpleJavaType(null, 0);
-			fail("invalid JavaType: " + javaType);
-		} catch (IllegalArgumentException ex) {
-			exCaught = true;
-		}
-		assertTrue(exCaught);
-	}
-
-	public void testInvalidElementTypeEmpty() throws Exception {
-		boolean exCaught = false;
-		try {
-			JavaType javaType = new SimpleJavaType("", 0);
-			fail("invalid JavaType: " + javaType);
-		} catch (IllegalArgumentException ex) {
-			exCaught = true;
-		}
-		assertTrue(exCaught);
-	}
-
-	public void testInvalidElementTypeArray() throws Exception {
-		boolean exCaught = false;
-		try {
-			JavaType javaType = new SimpleJavaType(java.lang.Object[].class.getName(), 0);
-			fail("invalid JavaType: " + javaType);
-		} catch (IllegalArgumentException ex) {
-			exCaught = true;
-		}
-		assertTrue(exCaught);
-	}
-
-	public void testInvalidArrayDepthNegative() throws Exception {
-		boolean exCaught = false;
-		try {
-			JavaType javaType = new SimpleJavaType(java.lang.Object.class.getName(), -2);
-			fail("invalid JavaType: " + javaType);
-		} catch (IllegalArgumentException ex) {
-			exCaught = true;
-		}
-		assertTrue(exCaught);
-	}
-
-	public void testInvalidVoidArray() throws Exception {
-		boolean exCaught = false;
-		try {
-			JavaType javaType = new SimpleJavaType(void.class.getName(), 2);
-			fail("invalid JavaType: " + javaType);
-		} catch (IllegalArgumentException ex) {
-			exCaught = true;
-		}
-		assertTrue(exCaught);
-	}
-
-	public void testElementTypeName() throws Exception {
-		JavaType javaType;
-		javaType = new SimpleJavaType(java.lang.Object.class);
-		assertEquals("java.lang.Object", javaType.getElementTypeName());
-
-		javaType = new SimpleJavaType(java.lang.Object[].class);
-		assertEquals("java.lang.Object", javaType.getElementTypeName());
-
-		javaType = new SimpleJavaType(int.class);
-		assertEquals("int", javaType.getElementTypeName());
-
-		javaType = new SimpleJavaType(int[].class);
-		assertEquals("int", javaType.getElementTypeName());
-
-		javaType = new SimpleJavaType(void.class);
-		assertEquals("void", javaType.getElementTypeName());
-
-		javaType = new SimpleJavaType(java.util.Map.Entry.class);
-		assertEquals("java.util.Map$Entry", javaType.getElementTypeName());
-
-		javaType = new SimpleJavaType(java.util.Map.Entry[][].class);
-		assertEquals("java.util.Map$Entry", javaType.getElementTypeName());
-	}
-
-	public void testArrayDepth() throws Exception {
-		JavaType javaType;
-		javaType = new SimpleJavaType(java.lang.Object.class);
-		assertEquals(0, javaType.getArrayDepth());
-
-		javaType = new SimpleJavaType(java.lang.Object[].class);
-		assertEquals(1, javaType.getArrayDepth());
-
-		javaType = new SimpleJavaType(int.class);
-		assertEquals(0, javaType.getArrayDepth());
-
-		javaType = new SimpleJavaType(int[].class);
-		assertEquals(1, javaType.getArrayDepth());
-
-		javaType = new SimpleJavaType(void.class);
-		assertEquals(0, javaType.getArrayDepth());
-
-		javaType = new SimpleJavaType(java.util.Map.Entry.class);
-		assertEquals(0, javaType.getArrayDepth());
-
-		javaType = new SimpleJavaType(java.util.Map.Entry[][].class);
-		assertEquals(2, javaType.getArrayDepth());
-	}
-
-	public void testIsArray() throws Exception {
-		JavaType javaType;
-		javaType = new SimpleJavaType(java.lang.Object.class);
-		assertFalse(javaType.isArray());
-
-		javaType = new SimpleJavaType(java.lang.Object[].class);
-		assertTrue(javaType.isArray());
-
-		javaType = new SimpleJavaType(int.class);
-		assertFalse(javaType.isArray());
-
-		javaType = new SimpleJavaType(int[].class);
-		assertTrue(javaType.isArray());
-
-		javaType = new SimpleJavaType(void.class);
-		assertFalse(javaType.isArray());
-
-		javaType = new SimpleJavaType(java.util.Map.Entry.class);
-		assertFalse(javaType.isArray());
-
-		javaType = new SimpleJavaType(java.util.Map.Entry[][].class);
-		assertTrue(javaType.isArray());
-	}
-
-	public void testJavaClass() throws Exception {
-		this.verifyJavaClass(java.lang.Object.class);
-		this.verifyJavaClass(java.lang.Object[].class);
-		this.verifyJavaClass(int.class);
-		this.verifyJavaClass(int[].class);
-		this.verifyJavaClass(void.class);
-		this.verifyJavaClass(java.util.Map.Entry.class);
-		this.verifyJavaClass(java.util.Map.Entry[][].class);
-	}
-
-	private void verifyJavaClass(Class<?> javaClass) throws Exception {
-		JavaType javaType = new SimpleJavaType(javaClass);
-		assertEquals(javaClass, javaType.getJavaClass());
-	}
-
-	public void testJavaClassName() throws Exception {
-		JavaType javaType;
-		javaType = new SimpleJavaType(java.lang.Object.class);
-		assertEquals("java.lang.Object", javaType.getJavaClassName());
-
-		javaType = new SimpleJavaType(java.lang.Object[].class);
-		assertEquals("[Ljava.lang.Object;", javaType.getJavaClassName());
-
-		javaType = new SimpleJavaType(int.class);
-		assertEquals("int", javaType.getJavaClassName());
-
-		javaType = new SimpleJavaType(int[].class);
-		assertEquals("[I", javaType.getJavaClassName());
-
-		javaType = new SimpleJavaType(void.class);
-		assertEquals("void", javaType.getJavaClassName());
-
-		javaType = new SimpleJavaType(java.util.Map.Entry.class);
-		assertEquals("java.util.Map$Entry", javaType.getJavaClassName());
-
-		javaType = new SimpleJavaType(java.util.Map.Entry[][].class);
-		assertEquals("[[Ljava.util.Map$Entry;", javaType.getJavaClassName());
-	}
-
-	public void testDescribes() throws Exception {
-		this.verifyDescribes(java.lang.Object.class);
-		this.verifyDescribes(java.lang.Object[].class);
-		this.verifyDescribes(int.class);
-		this.verifyDescribes(int[].class);
-		this.verifyDescribes(void.class);
-		this.verifyDescribes(java.util.Map.Entry.class);
-		this.verifyDescribes(java.util.Map.Entry[][].class);
-	}
-
-	private void verifyDescribes(Class<?> javaClass) throws Exception {
-		JavaType javaType = new SimpleJavaType(javaClass);
-		assertTrue(javaType.describes(javaClass));
-	}
-
-	public void testDeclaration() throws Exception {
-		JavaType javaType;
-		javaType = new SimpleJavaType(java.lang.Object.class);
-		assertEquals("java.lang.Object", javaType.declaration());
-
-		javaType = new SimpleJavaType(java.lang.Object[].class);
-		assertEquals("java.lang.Object[]", javaType.declaration());
-
-		javaType = new SimpleJavaType(int.class);
-		assertEquals("int", javaType.declaration());
-
-		javaType = new SimpleJavaType(int[].class);
-		assertEquals("int[]", javaType.declaration());
-
-		javaType = new SimpleJavaType(void.class);
-		assertEquals("void", javaType.declaration());
-
-		javaType = new SimpleJavaType(java.util.Map.Entry.class);
-		assertEquals("java.util.Map.Entry", javaType.declaration());
-
-		javaType = new SimpleJavaType(java.util.Map.Entry[][].class);
-		assertEquals("java.util.Map.Entry[][]", javaType.declaration());
-	}
-
-	public void testIsPrimitive() throws Exception {
-		JavaType javaType;
-		javaType = new SimpleJavaType(java.lang.Object.class);
-		assertFalse(javaType.isPrimitive());
-
-		javaType = new SimpleJavaType(java.lang.Object[].class);
-		assertFalse(javaType.isPrimitive());
-
-		javaType = new SimpleJavaType(int.class);
-		assertTrue(javaType.isPrimitive());
-
-		javaType = new SimpleJavaType(int[].class);
-		assertFalse(javaType.isPrimitive());
-
-		javaType = new SimpleJavaType(void.class);
-		assertTrue(javaType.isPrimitive());
-
-		javaType = new SimpleJavaType(java.util.Map.Entry.class);
-		assertFalse(javaType.isPrimitive());
-
-		javaType = new SimpleJavaType(java.util.Map.Entry[][].class);
-		assertFalse(javaType.isPrimitive());
-	}
-
-}
diff --git a/jpa/tests/org.eclipse.jpt.utility.tests/src/org/eclipse/jpt/utility/tests/internal/JptUtilityTests.java b/jpa/tests/org.eclipse.jpt.utility.tests/src/org/eclipse/jpt/utility/tests/internal/JptUtilityTests.java
deleted file mode 100644
index fb3fd88..0000000
--- a/jpa/tests/org.eclipse.jpt.utility.tests/src/org/eclipse/jpt/utility/tests/internal/JptUtilityTests.java
+++ /dev/null
@@ -1,75 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005, 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.utility.tests.internal;
-
-import junit.framework.Test;
-import junit.framework.TestSuite;
-
-import org.eclipse.jpt.utility.tests.internal.enumerations.JptUtilityEnumerationsTests;
-import org.eclipse.jpt.utility.tests.internal.iterables.JptUtilityIterablesTests;
-import org.eclipse.jpt.utility.tests.internal.iterators.JptUtilityIteratorsTests;
-import org.eclipse.jpt.utility.tests.internal.model.JptUtilityModelTests;
-import org.eclipse.jpt.utility.tests.internal.node.JptUtilityNodeTests;
-
-/**
- * decentralize test creation code
- */
-public class JptUtilityTests {
-
-	public static Test suite() {
-		TestSuite suite = new TestSuite(JptUtilityTests.class.getPackage().getName());
-
-		suite.addTest(JptUtilityEnumerationsTests.suite());
-		suite.addTest(JptUtilityIterablesTests.suite());
-		suite.addTest(JptUtilityIteratorsTests.suite());
-		suite.addTest(JptUtilityModelTests.suite());
-		suite.addTest(JptUtilityNodeTests.suite());
-
-		suite.addTestSuite(BitToolsTests.class);
-		suite.addTestSuite(BooleanHolderTests.class);
-		suite.addTestSuite(ClasspathTests.class);
-		suite.addTestSuite(ClassToolsTests.class);
-		suite.addTestSuite(CollectionToolsTests.class);
-		suite.addTestSuite(CommandExecutorTests.class);
-		suite.addTestSuite(CommandTests.class);
-		suite.addTestSuite(CounterTests.class);
-		suite.addTestSuite(EmptyIterableTests.class);
-//		suite.addTestSuite(ExceptionHandlerTests.class);
-		suite.addTestSuite(FileToolsTests.class);
-		suite.addTestSuite(FilterTests.class);
-		suite.addTestSuite(HashBagTests.class);
-		suite.addTestSuite(IdentityHashBagTests.class);
-		suite.addTestSuite(IndentingPrintWriterTests.class);
-		suite.addTestSuite(JavaTypeTests.class);
-		suite.addTestSuite(JDBCTypeTests.class);
-		suite.addTestSuite(ListenerListTests.class);
-		suite.addTestSuite(MethodSignatureTests.class);
-		suite.addTestSuite(NameToolsTests.class);
-		suite.addTestSuite(RangeTests.class);
-		suite.addTestSuite(ReverseComparatorTests.class);
-		suite.addTestSuite(SimpleAssociationTests.class);
-		suite.addTestSuite(SimpleStackTests.class);
-		suite.addTestSuite(StringToolsTests.class);
-		suite.addTestSuite(SynchronizedBooleanTests.class);
-		suite.addTestSuite(SynchronizedObjectTests.class);
-		suite.addTestSuite(SynchronizedStackTests.class);
-//		suite.addTestSuite(SynchronizerTests.class);
-//		suite.addTestSuite(SynchronousSynchronizerTests.class);
-		suite.addTestSuite(XMLStringEncoderTests.class);
-
-		return suite;
-	}
-
-	private JptUtilityTests() {
-		super();
-		throw new UnsupportedOperationException();
-	}
-
-}
diff --git a/jpa/tests/org.eclipse.jpt.utility.tests/src/org/eclipse/jpt/utility/tests/internal/ListenerListTests.java b/jpa/tests/org.eclipse.jpt.utility.tests/src/org/eclipse/jpt/utility/tests/internal/ListenerListTests.java
deleted file mode 100644
index f9fa1fd..0000000
--- a/jpa/tests/org.eclipse.jpt.utility.tests/src/org/eclipse/jpt/utility/tests/internal/ListenerListTests.java
+++ /dev/null
@@ -1,178 +0,0 @@
-package org.eclipse.jpt.utility.tests.internal;
-
-import java.io.Serializable;
-import java.util.EventListener;
-
-import junit.framework.TestCase;
-
-import org.eclipse.jpt.utility.internal.CollectionTools;
-import org.eclipse.jpt.utility.internal.ListenerList;
-
-@SuppressWarnings("nls")
-public class ListenerListTests extends TestCase {
-
-	public ListenerListTests(String name) {
-		super(name);
-	}
-
-	public void testGetListeners() throws Exception {
-		ListenerList<Listener> listenerList = new ListenerList<Listener>(Listener.class);
-		Listener listener1 = new LocalListener();
-		Listener listener2 = new LocalListener();
-		Listener[] listeners = listenerList.getListeners();
-		assertEquals(0, listeners.length);
-
-		listenerList.add(listener1);
-		listenerList.add(listener2);
-		listeners = listenerList.getListeners();
-		assertEquals(2, listeners.length);
-		assertTrue(CollectionTools.contains(listeners, listener1));
-		assertTrue(CollectionTools.contains(listeners, listener2));
-	}
-
-	public void testSize() throws Exception {
-		ListenerList<Listener> listenerList = new ListenerList<Listener>(Listener.class);
-		Listener listener1 = new LocalListener();
-		Listener listener2 = new LocalListener();
-		assertEquals(0, listenerList.size());
-
-		listenerList.add(listener1);
-		listenerList.add(listener2);
-		assertEquals(2, listenerList.size());
-	}
-
-	public void testIsEmpty() throws Exception {
-		ListenerList<Listener> listenerList = new ListenerList<Listener>(Listener.class);
-		Listener listener1 = new LocalListener();
-		Listener listener2 = new LocalListener();
-		assertTrue(listenerList.isEmpty());
-
-		listenerList.add(listener1);
-		listenerList.add(listener2);
-		assertFalse(listenerList.isEmpty());
-	}
-
-	public void testAdd_null() throws Exception {
-		ListenerList<Listener> listenerList = new ListenerList<Listener>(Listener.class);
-		boolean exCaught = false;
-		try {
-			listenerList.add(null);
-			fail("invalid listener list: " + listenerList);
-		} catch (NullPointerException ex) {
-			exCaught = true;
-		}
-		assertTrue(exCaught);
-	}
-
-	public void testAdd_duplicate() throws Exception {
-		ListenerList<Listener> listenerList = new ListenerList<Listener>(Listener.class);
-		Listener listener = new LocalListener();
-		listenerList.add(listener);
-
-		boolean exCaught = false;
-		try {
-			listenerList.add(listener);
-			fail("invalid listener list: " + listenerList);
-		} catch (IllegalArgumentException ex) {
-			exCaught = true;
-		}
-		assertTrue(exCaught);
-	}
-
-	public void testRemove() throws Exception {
-		ListenerList<Listener> listenerList = new ListenerList<Listener>(Listener.class);
-		Listener listener1 = new LocalListener();
-		Listener listener2 = new LocalListener();
-		listenerList.add(listener1);
-		listenerList.add(listener2);
-		assertTrue(CollectionTools.contains(listenerList.getListeners(), listener1));
-		assertTrue(CollectionTools.contains(listenerList.getListeners(), listener2));
-
-		listenerList.remove(listener1);
-		assertFalse(CollectionTools.contains(listenerList.getListeners(), listener1));
-		assertTrue(CollectionTools.contains(listenerList.getListeners(), listener2));
-
-		listenerList.remove(listener2);
-		assertFalse(CollectionTools.contains(listenerList.getListeners(), listener2));
-	}
-
-	public void testRemove_null() throws Exception {
-		ListenerList<Listener> listenerList = new ListenerList<Listener>(Listener.class);
-		boolean exCaught = false;
-		try {
-			listenerList.remove(null);
-			fail("invalid listener list: " + listenerList);
-		} catch (NullPointerException ex) {
-			exCaught = true;
-		}
-		assertTrue(exCaught);
-	}
-
-	public void testRemove_unregistered() throws Exception {
-		ListenerList<Listener> listenerList = new ListenerList<Listener>(Listener.class);
-		Listener listener = new LocalListener();
-		listenerList.add(listener);
-		listenerList.remove(listener);
-
-		boolean exCaught = false;
-		try {
-			listenerList.remove(listener);
-			fail("invalid listener list: " + listenerList);
-		} catch (IllegalArgumentException ex) {
-			exCaught = true;
-		}
-		assertTrue(exCaught);
-	}
-
-	public void testClear() throws Exception {
-		ListenerList<Listener> listenerList = new ListenerList<Listener>(Listener.class);
-		Listener listener1 = new LocalListener();
-		Listener listener2 = new LocalListener();
-		listenerList.add(listener1);
-		listenerList.add(listener2);
-		assertTrue(CollectionTools.contains(listenerList.getListeners(), listener1));
-		assertTrue(CollectionTools.contains(listenerList.getListeners(), listener2));
-
-		listenerList.clear();
-		assertFalse(CollectionTools.contains(listenerList.getListeners(), listener1));
-		assertFalse(CollectionTools.contains(listenerList.getListeners(), listener2));
-	}
-
-//TODO - This test doesn't pass in the Eclipse build environment (Linux) for some reason
-//	public void testSerialization() throws Exception {
-//		ListenerList<Listener> listenerList = new ListenerList<Listener>(Listener.class);
-//		Listener listener1 = new LocalListener();
-//		Listener listener2 = new LocalListener();
-//		listenerList.add(listener1);
-//		listenerList.add(listener2);
-//
-//		ListenerList<Listener> listenerList2 = TestTools.serialize(listenerList);
-//		assertNotSame(listenerList, listenerList2);
-//		assertEquals(2, listenerList2.size());
-//
-//		Listener listener3 = new NonSerializableListener();
-//		listenerList.add(listener3);
-//
-//		listenerList2 = TestTools.serialize(listenerList);
-//		assertNotSame(listenerList, listenerList2);
-//		assertEquals(2, listenerList2.size());
-//
-//	}
-
-	interface Listener extends EventListener {
-		void somethingHappened();
-	}
-	
-	static class LocalListener implements Listener, Serializable {
-		public void somethingHappened() {
-			// do nothing
-		}
-	}
-	
-	static class NonSerializableListener implements Listener {
-		public void somethingHappened() {
-			// do nothing
-		}
-	}
-	
-}
diff --git a/jpa/tests/org.eclipse.jpt.utility.tests/src/org/eclipse/jpt/utility/tests/internal/MethodSignatureTests.java b/jpa/tests/org.eclipse.jpt.utility.tests/src/org/eclipse/jpt/utility/tests/internal/MethodSignatureTests.java
deleted file mode 100644
index b44f3a4..0000000
--- a/jpa/tests/org.eclipse.jpt.utility.tests/src/org/eclipse/jpt/utility/tests/internal/MethodSignatureTests.java
+++ /dev/null
@@ -1,236 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.utility.tests.internal;
-
-import java.lang.reflect.Method;
-import java.util.Arrays;
-import junit.framework.TestCase;
-import org.eclipse.jpt.utility.JavaType;
-import org.eclipse.jpt.utility.MethodSignature;
-import org.eclipse.jpt.utility.internal.SimpleJavaType;
-import org.eclipse.jpt.utility.internal.SimpleMethodSignature;
-
-@SuppressWarnings("nls")
-public class MethodSignatureTests extends TestCase {
-
-	public MethodSignatureTests(String name) {
-		super(name);
-	}
-
-	public void testInvalidNameNull() throws Exception {
-		boolean exCaught = false;
-		try {
-			MethodSignature methodSignature = new SimpleMethodSignature((String) null);
-			fail("invalid MethodSignature: " + methodSignature);
-		} catch (IllegalArgumentException ex) {
-			exCaught = true;
-		}
-		assertTrue(exCaught);
-	}
-
-	public void testInvalidNameEmpty() throws Exception {
-		boolean exCaught = false;
-		try {
-			MethodSignature methodSignature = new SimpleMethodSignature("");
-			fail("invalid MethodSignature: " + methodSignature);
-		} catch (IllegalArgumentException ex) {
-			exCaught = true;
-		}
-		assertTrue(exCaught);
-	}
-
-	public void testInvalidParameterTypesNull() throws Exception {
-		boolean exCaught = false;
-		try {
-			MethodSignature methodSignature = new SimpleMethodSignature("foo", (JavaType[]) null);
-			fail("invalid MethodSignature: " + methodSignature);
-		} catch (IllegalArgumentException ex) {
-			exCaught = true;
-		}
-		assertTrue(exCaught);
-	}
-
-	public void testInvalidParameterTypesNullItem() throws Exception {
-		boolean exCaught = false;
-		try {
-			MethodSignature methodSignature = new SimpleMethodSignature("foo", new JavaType[1]);
-			fail("invalid MethodSignature: " + methodSignature);
-		} catch (IllegalArgumentException ex) {
-			exCaught = true;
-		}
-		assertTrue(exCaught);
-	}
-
-	public void testInvalidParameterTypesVoidItem() throws Exception {
-		JavaType jt = new SimpleJavaType(void.class.getName());
-		boolean exCaught = false;
-		try {
-			MethodSignature methodSignature = new SimpleMethodSignature("foo", new JavaType[] {jt});
-			fail("invalid MethodSignature: " + methodSignature);
-		} catch (IllegalArgumentException ex) {
-			exCaught = true;
-		}
-		assertTrue(exCaught);
-	}
-
-	public void testInvalidParameterTypeNamesNull() throws Exception {
-		boolean exCaught = false;
-		try {
-			MethodSignature methodSignature = new SimpleMethodSignature("foo", (String[]) null);
-			fail("invalid MethodSignature: " + methodSignature);
-		} catch (IllegalArgumentException ex) {
-			exCaught = true;
-		}
-		assertTrue(exCaught);
-	}
-
-	public void testInvalidParameterTypeNamesNullItem() throws Exception {
-		boolean exCaught = false;
-		try {
-			MethodSignature methodSignature = new SimpleMethodSignature("foo", new String[1]);
-			fail("invalid MethodSignature: " + methodSignature);
-		} catch (IllegalArgumentException ex) {
-			exCaught = true;
-		}
-		assertTrue(exCaught);
-	}
-
-	public void testInvalidParameterJavaClassesNull() throws Exception {
-		boolean exCaught = false;
-		try {
-			MethodSignature methodSignature = new SimpleMethodSignature("foo", (Class<?>[]) null);
-			fail("invalid MethodSignature: " + methodSignature);
-		} catch (IllegalArgumentException ex) {
-			exCaught = true;
-		}
-		assertTrue(exCaught);
-	}
-
-	public void testInvalidParameterJavaClassesNullItem() throws Exception {
-		boolean exCaught = false;
-		try {
-			MethodSignature methodSignature = new SimpleMethodSignature("foo", new Class[1]);
-			fail("invalid MethodSignature: " + methodSignature);
-		} catch (IllegalArgumentException ex) {
-			exCaught = true;
-		}
-		assertTrue(exCaught);
-	}
-
-	public void testGetSignature0() throws Exception {
-		MethodSignature ms = new SimpleMethodSignature(this.getMethod("method0"));
-		assertEquals("method0()", ms.getSignature());
-	}
-
-	public void testGetSignature1() throws Exception {
-		MethodSignature ms = new SimpleMethodSignature(this.getMethod("method1"));
-		assertEquals("method1(int)", ms.getSignature());
-	}
-
-	public void testGetSignature2() throws Exception {
-		MethodSignature ms = new SimpleMethodSignature(this.getMethod("method2"));
-		assertEquals("method2(int, java.lang.String)", ms.getSignature());
-	}
-
-	public void testGetSignature3() throws Exception {
-		MethodSignature ms = new SimpleMethodSignature(this.getMethod("method3"));
-		assertEquals("method3(int, java.lang.String, java.lang.Object[][])", ms.getSignature());
-	}
-
-	public void testGetName() throws Exception {
-		MethodSignature ms = new SimpleMethodSignature(this.getMethod("method2"));
-		assertEquals("method2", ms.getName());
-	}
-
-	public void testGetParameterTypes() throws Exception {
-		MethodSignature ms = new SimpleMethodSignature(this.getMethod("method3"));
-		JavaType[] expected = new JavaType[3];
-		expected[0] = new SimpleJavaType("int");
-		expected[1] = new SimpleJavaType("java.lang.String");
-		expected[2] = new SimpleJavaType("java.lang.Object", 2);
-		assertTrue(Arrays.equals(expected, ms.getParameterTypes()));
-	}
-
-	public void testEquals() throws Exception {
-		Object ms1 = new SimpleMethodSignature(this.getMethod("method3"));
-		Object ms2 = new SimpleMethodSignature(this.getMethod("method3"));
-		assertNotSame(ms1, ms2);
-		assertEquals(ms1, ms1);
-		assertEquals(ms1, ms2);
-		assertEquals(ms1.hashCode(), ms2.hashCode());
-
-		Object ms3 = new SimpleMethodSignature(this.getMethod("method2"));
-		assertNotSame(ms1, ms3);
-		assertFalse(ms1.equals(ms3));
-	}
-
-	public void testCompareTo1() throws Exception {
-		MethodSignature ms1 = new SimpleMethodSignature(this.getMethod("method3"));
-		MethodSignature ms2 = new SimpleMethodSignature(this.getMethod("method3"));
-		assertEquals(0, ms1.compareTo(ms2));
-	}
-
-	public void testCompareTo2() throws Exception {
-		MethodSignature ms1 = new SimpleMethodSignature(this.getMethod("method3"));
-		MethodSignature ms2 = new SimpleMethodSignature(this.getMethod("method2"));
-		assertTrue(ms1.compareTo(ms2) > 0);
-	}
-
-	public void testCompareTo3() throws Exception {
-		MethodSignature msA1 = new SimpleMethodSignature(this.getMethod("methodA", new Class[] {int.class, String.class}));
-		MethodSignature msA2 = new SimpleMethodSignature(this.getMethod("methodA", new Class[] {int.class, String.class, String.class}));
-		assertTrue(msA1.compareTo(msA2) < 0);
-	}
-
-	public void testCompareTo4() throws Exception {
-		MethodSignature msB1 = new SimpleMethodSignature(this.getMethod("methodB", new Class[] {int.class, Object.class}));
-		MethodSignature msB2 = new SimpleMethodSignature(this.getMethod("methodB", new Class[] {int.class, String.class}));
-		assertTrue(msB1.compareTo(msB2) < 0);
-	}
-
-	public void testClone() throws Exception {
-		SimpleMethodSignature ms1 = new SimpleMethodSignature(this.getMethod("method3"));
-		SimpleMethodSignature ms2 = (SimpleMethodSignature) ms1.clone();
-		assertNotSame(ms1, ms2);
-		assertEquals(ms1, ms2);
-	}
-
-	public void testSerialization() throws Exception {
-		SimpleMethodSignature ms1 = new SimpleMethodSignature(this.getMethod("method3"));
-		SimpleMethodSignature ms2 = TestTools.serialize(ms1);
-		assertNotSame(ms1, ms2);
-		assertEquals(ms1, ms2);
-	}
-
-	private Method getMethod(String methodName) {
-		for (Method method : this.getClass().getMethods()) {
-			if (method.getName().equals(methodName)) {
-				return method;
-			}
-		}
-		throw new IllegalArgumentException("method not found: " + methodName);
-	}
-
-	private Method getMethod(String methodName, Class<?>... parameterTypes) throws Exception {
-		return this.getClass().getMethod(methodName, parameterTypes);
-	}
-
-	public void method0() { /* used by tests */ }
-	@SuppressWarnings("unused") public void method1(int foo) { /* used by tests */ }
-	@SuppressWarnings("unused") public void method2(int foo, String bar) { /* used by tests */ }
-	@SuppressWarnings("unused") public void method3(int foo, String bar, Object[][] baz) { /* used by tests */ }
-
-	@SuppressWarnings("unused") public void methodA(int foo, String bar) { /* used by tests */ }
-	@SuppressWarnings("unused") public void methodA(int foo, String bar, String baz) { /* used by tests */ }
-
-	@SuppressWarnings("unused") public void methodB(int foo, Object bar) { /* used by tests */ }
-	@SuppressWarnings("unused") public void methodB(int foo, String bar) { /* used by tests */ }
-
-}
diff --git a/jpa/tests/org.eclipse.jpt.utility.tests/src/org/eclipse/jpt/utility/tests/internal/NameToolsTests.java b/jpa/tests/org.eclipse.jpt.utility.tests/src/org/eclipse/jpt/utility/tests/internal/NameToolsTests.java
deleted file mode 100644
index a389583..0000000
--- a/jpa/tests/org.eclipse.jpt.utility.tests/src/org/eclipse/jpt/utility/tests/internal/NameToolsTests.java
+++ /dev/null
@@ -1,226 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005, 2008 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.utility.tests.internal;
-
-import java.util.ArrayList;
-import java.util.Collection;
-import java.util.List;
-import junit.framework.TestCase;
-import org.eclipse.jpt.utility.internal.CollectionTools;
-import org.eclipse.jpt.utility.internal.NameTools;
-
-@SuppressWarnings("nls")
-public class NameToolsTests extends TestCase {
-
-	public NameToolsTests(String name) {
-		super(name);
-	}
-
-	public void testStringAbsentIgnoreCase() {
-		List<String> colorCollection = this.buildColorCollection();
-		String returned = NameTools.uniqueNameForIgnoreCase("Taupe", colorCollection);
-		assertEquals("Taupe", returned);
-	}
-
-	public void testStringPresentCaseDiffers() {
-		List<String> colorCollection = this.buildColorCollection();
-		String returned = NameTools.uniqueNameFor("green", colorCollection);
-		assertEquals("green", returned);
-	}
-
-	public void testStringPresentIgnoreCase() {
-		List<String> colorCollection = this.buildColorCollection();
-		String returned = NameTools.uniqueNameForIgnoreCase("green", colorCollection);
-		assertEquals("green2", returned);
-	}
-
-	public void testStringPresentWithAppendices() {
-		List<String> colorCollection = this.buildColorCollection();
-		colorCollection.add("Red1");
-		colorCollection.add("red2");
-		String returned = NameTools.uniqueNameForIgnoreCase("red", colorCollection);
-		colorCollection.remove("Red1");
-		colorCollection.remove("red2");
-		assertEquals("red3", returned);
-	}
-
-	private List<String> buildColorCollection() {
-		List<String> colorCollection = new ArrayList<String>();
-		colorCollection.add("Red");
-		colorCollection.add("Orange");
-		colorCollection.add("Yellow");
-		colorCollection.add("Green");
-		colorCollection.add("Blue");
-		colorCollection.add("Indigo");
-		colorCollection.add("Violet");
-		return colorCollection;
-	}
-
-	public void testUniqueNameForCollection1() {
-		Collection<String> strings = new ArrayList<String>();
-		strings.add("Oracle");
-		strings.add("Oracle Corporation");
-		strings.add("Oracle2");
-		strings.add("oracle1");
-		strings.add("Oracl");
-
-		assertEquals("Oracle3", NameTools.uniqueNameFor("Oracle", strings));
-		assertEquals("Test", NameTools.uniqueNameFor("Test", strings));
-
-		assertEquals("Oracle3", NameTools.uniqueNameForIgnoreCase("Oracle", strings));
-		assertEquals("oracle3", NameTools.uniqueNameForIgnoreCase("oracle", strings));
-		assertEquals("Test", NameTools.uniqueNameForIgnoreCase("Test", strings));
-	}
-
-	public void testUniqueNameForCollection2() {
-		Collection<String> strings = new ArrayList<String>();
-		strings.add("Oracle");
-		strings.add("oracle");
-		strings.add("Oracle2");
-		strings.add("Oracle1");
-
-		assertEquals("Oracle3", NameTools.uniqueNameFor("Oracle", strings));
-		assertEquals("Test", NameTools.uniqueNameFor("Test", strings));
-
-		strings.add("Oracle Corporation");
-		assertEquals("Oracle3", NameTools.uniqueNameForIgnoreCase("Oracle", strings));
-		assertEquals("oracle3", NameTools.uniqueNameForIgnoreCase("oracle", strings));
-		assertEquals("Test", NameTools.uniqueNameForIgnoreCase("Test", strings));
-	}
-
-	public void testUniqueNameForCollection3() {
-		Collection<String> strings = new ArrayList<String>();
-		strings.add("Oracle");
-		strings.add("Oracle");
-		strings.add("Oracle2");
-		strings.add("Oracle1");
-
-		assertEquals("Oracle3", NameTools.uniqueNameFor("Oracle", strings));
-	}
-
-	public void testUniqueNameForIterator1() {
-		Collection<String> strings = new ArrayList<String>();
-		strings.add("Oracle");
-		strings.add("Oracle Corporation");
-		strings.add("Oracle2");
-		strings.add("oracle1");
-		strings.add("Oracl");
-
-		assertEquals("Oracle3", NameTools.uniqueNameFor("Oracle", strings.iterator()));
-		assertEquals("Test", NameTools.uniqueNameFor("Test", strings.iterator()));
-
-		assertEquals("Oracle3", NameTools.uniqueNameForIgnoreCase("Oracle", strings.iterator()));
-		assertEquals("oracle3", NameTools.uniqueNameForIgnoreCase("oracle", strings.iterator()));
-		assertEquals("Test", NameTools.uniqueNameForIgnoreCase("Test", strings.iterator()));
-	}
-
-	public void testUniqueNameForIterator2() {
-		Collection<String> strings = new ArrayList<String>();
-		strings.add("Oracle");
-		strings.add("oracle");
-		strings.add("Oracle2");
-		strings.add("Oracle1");
-
-		assertEquals("Oracle3", NameTools.uniqueNameFor("Oracle", strings.iterator()));
-		assertEquals("Test", NameTools.uniqueNameFor("Test", strings.iterator()));
-
-		strings.add("Oracle Corporation");
-		assertEquals("Oracle3", NameTools.uniqueNameForIgnoreCase("Oracle", strings.iterator()));
-		assertEquals("oracle3", NameTools.uniqueNameForIgnoreCase("oracle", strings.iterator()));
-		assertEquals("Test", NameTools.uniqueNameForIgnoreCase("Test", strings.iterator()));
-	}
-
-	public void testUniqueNameForIterator3() {
-		Collection<String> strings = new ArrayList<String>();
-		strings.add("Oracle");
-		strings.add("Oracle");
-		strings.add("Oracle2");
-		strings.add("Oracle1");
-
-		assertEquals("Oracle3", NameTools.uniqueNameFor("Oracle", strings.iterator()));
-	}
-
-	public void testBuildQualifiedDatabaseObjectName() {
-		assertEquals("catalog.schema.name", NameTools.buildQualifiedDatabaseObjectName("catalog", "schema", "name"));
-		assertEquals("catalog..name", NameTools.buildQualifiedDatabaseObjectName("catalog", null, "name"));
-		assertEquals("schema.name", NameTools.buildQualifiedDatabaseObjectName(null, "schema", "name"));
-		assertEquals("name", NameTools.buildQualifiedDatabaseObjectName(null, null, "name"));
-	}
-
-	public void testJavaReservedWords() {
-		assertTrue(CollectionTools.contains(NameTools.javaReservedWords(), "class"));
-		assertFalse(CollectionTools.contains(NameTools.javaReservedWords(), "Class"));
-		assertTrue(CollectionTools.contains(NameTools.javaReservedWords(), "private"));
-	}
-
-	public void testconvertToJavaIdentifierString() {
-		assertEquals("foo", NameTools.convertToJavaIdentifier("foo"));
-		assertEquals("foo1", NameTools.convertToJavaIdentifier("foo1"));
-		assertEquals("private_", NameTools.convertToJavaIdentifier("private"));
-		assertEquals("throw_", NameTools.convertToJavaIdentifier("throw"));
-		assertEquals("_foo", NameTools.convertToJavaIdentifier("1foo"));
-		assertEquals("foo_", NameTools.convertToJavaIdentifier("foo%"));
-		assertEquals("foo__bar__", NameTools.convertToJavaIdentifier("foo  bar  "));
-	}
-
-	public void testconvertToJavaIdentifierStringChar() {
-		assertEquals("foo", NameTools.convertToJavaIdentifier("foo", '$'));
-		assertEquals("foo1", NameTools.convertToJavaIdentifier("foo1", '$'));
-		assertEquals("private$", NameTools.convertToJavaIdentifier("private", '$'));
-		assertEquals("throwss", NameTools.convertToJavaIdentifier("throw", 's'));
-		assertEquals("$foo", NameTools.convertToJavaIdentifier("1foo", '$'));
-		assertEquals("foo$", NameTools.convertToJavaIdentifier("foo%", '$'));
-		assertEquals("foo$$bar$$", NameTools.convertToJavaIdentifier("foo  bar  ", '$'));
-
-		boolean exCaught = false;
-		try {
-			String s = NameTools.convertToJavaIdentifier("1foo", '7');
-			fail("invalid string: \"" + s + "\"");
-		} catch (IllegalArgumentException ex) {
-			if (ex.getMessage().indexOf('7') != -1) {
-				exCaught = true;
-			}
-		}
-		assertTrue(exCaught);
-
-		exCaught = false;
-		try {
-			String s = NameTools.convertToJavaIdentifier("foo%", '^');
-			fail("invalid string: \"" + s + "\"");
-		} catch (IllegalArgumentException ex) {
-			if (ex.getMessage().indexOf('^') != -1) {
-				exCaught = true;
-			}
-		}
-		assertTrue(exCaught);
-
-		exCaught = false;
-		try {
-			String s = NameTools.convertToJavaIdentifier("private", '^');
-			fail("invalid string: \"" + s + "\"");
-		} catch (IllegalArgumentException ex) {
-			if (ex.getMessage().indexOf('^') != -1) {
-				exCaught = true;
-			}
-		}
-		assertTrue(exCaught);
-
-	}
-
-	public void testStringIsLegalJavaIdentifier() {
-		assertFalse(NameTools.stringIsLegalJavaIdentifier("class"));
-		assertTrue(NameTools.stringIsLegalJavaIdentifier("clasS"));
-
-		assertFalse(NameTools.stringIsLegalJavaIdentifier("7foo"));
-		assertFalse(NameTools.stringIsLegalJavaIdentifier("foo@bar"));
-		assertTrue(NameTools.stringIsLegalJavaIdentifier("_foo"));
-	}
-
-}
diff --git a/jpa/tests/org.eclipse.jpt.utility.tests/src/org/eclipse/jpt/utility/tests/internal/RangeTests.java b/jpa/tests/org.eclipse.jpt.utility.tests/src/org/eclipse/jpt/utility/tests/internal/RangeTests.java
deleted file mode 100644
index d7f2cce..0000000
--- a/jpa/tests/org.eclipse.jpt.utility.tests/src/org/eclipse/jpt/utility/tests/internal/RangeTests.java
+++ /dev/null
@@ -1,74 +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.utility.tests.internal;
-
-import junit.framework.TestCase;
-import org.eclipse.jpt.utility.internal.Range;
-
-public class RangeTests extends TestCase {
-
-	public RangeTests(String name) {
-		super(name);
-	}
-
-	public void testIncludes() {
-		Range range = new Range(5, 17);
-		assertFalse(range.includes(-55));
-		assertFalse(range.includes(0));
-		assertFalse(range.includes(4));
-		assertTrue(range.includes(5));
-		assertTrue(range.includes(6));
-		assertTrue(range.includes(16));
-		assertTrue(range.includes(17));
-		assertFalse(range.includes(18));
-		assertFalse(range.includes(200));
-	}
-
-	public void testEquals() {
-		Range range1 = new Range(5, 17);
-		Range range2 = new Range(5, 17);
-		assertNotSame(range1, range2);
-		assertEquals(range1, range1);
-		assertEquals(range1, range2);
-		assertEquals(range2, range1);
-		assertEquals(range1.hashCode(), range2.hashCode());
-
-		range2 = new Range(17, 5);
-		assertFalse(range1.equals(range2));
-		assertFalse(range2.equals(range1));
-		// although they are unequal, they can have the same hash code
-		assertEquals(range1.hashCode(), range2.hashCode());
-
-		range2 = new Range(5, 15);
-		assertFalse(range1.equals(range2));
-		assertFalse(range2.equals(range1));
-	}
-
-	public void testClone() {
-		Range range1 = new Range(5, 17);
-		Range range2 = range1.clone();
-		assertNotSame(range1, range2);
-		assertEquals(range1, range1);
-		assertEquals(range1, range2);
-		assertEquals(range2, range1);
-		assertEquals(range1.hashCode(), range2.hashCode());
-	}
-
-	public void testSerialization() throws Exception {
-		Range range1 = new Range(5, 17);
-		Range range2 = TestTools.serialize(range1);
-		assertNotSame(range1, range2);
-		assertEquals(range1, range1);
-		assertEquals(range1, range2);
-		assertEquals(range2, range1);
-		assertEquals(range1.hashCode(), range2.hashCode());
-	}
-
-}
diff --git a/jpa/tests/org.eclipse.jpt.utility.tests/src/org/eclipse/jpt/utility/tests/internal/ReverseComparatorTests.java b/jpa/tests/org.eclipse.jpt.utility.tests/src/org/eclipse/jpt/utility/tests/internal/ReverseComparatorTests.java
deleted file mode 100644
index 7ae00fd..0000000
--- a/jpa/tests/org.eclipse.jpt.utility.tests/src/org/eclipse/jpt/utility/tests/internal/ReverseComparatorTests.java
+++ /dev/null
@@ -1,101 +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.utility.tests.internal;
-
-import java.util.ArrayList;
-import java.util.Collections;
-import java.util.Comparator;
-import java.util.List;
-import junit.framework.TestCase;
-import org.eclipse.jpt.utility.internal.ReverseComparator;
-
-public class ReverseComparatorTests extends TestCase {
-	private Comparator<String> naturalReverseComparator;
-	private Comparator<String> customComparator;
-	private Comparator<String> customReverseComparator;
-
-	public ReverseComparatorTests(String name) {
-		super(name);
-	}
-
-	@Override
-	protected void setUp() throws Exception {
-		super.setUp();
-		this.naturalReverseComparator = new ReverseComparator<String>();
-		this.customComparator = this.buildCustomComparator();
-		this.customReverseComparator = new ReverseComparator<String>(this.customComparator);
-	}
-
-	private Comparator<String> buildCustomComparator() {
-		return new Comparator<String>() {
-			public int compare(String s1, String s2) {
-				String lower1 = s1.toLowerCase();
-				String lower2 = s2.toLowerCase();
-				int result = lower1.compareTo(lower2);
-				if (result == 0) {
-					return s1.compareTo(s2); // use case to differentiate "equal" strings
-				}
-				return result;
-			}
-		};
-	}
-
-	private List<String> buildUnsortedList() {
-		List<String> result = new ArrayList<String>();
-		result.add("T");
-		result.add("Z");
-		result.add("Y");
-		result.add("M");
-		result.add("m");
-		result.add("a");
-		result.add("B");
-		result.add("b");
-		result.add("A");
-		return result;
-	}
-
-	private List<String> buildNaturallySortedList() {
-		List<String> result = new ArrayList<String>(this.buildUnsortedList());
-		Collections.sort(result);
-		return result;
-	}
-
-	private List<String> buildCustomSortedList() {
-		List<String> result = new ArrayList<String>(this.buildUnsortedList());
-		Collections.sort(result, this.customComparator);
-		return result;
-	}
-
-	@Override
-	protected void tearDown() throws Exception {
-		TestTools.clear(this);
-		super.tearDown();
-	}
-
-	public void testNatural() {
-		List<String> list = this.buildUnsortedList();
-		Collections.sort(list, this.naturalReverseComparator);
-		this.verifyList(this.buildNaturallySortedList(), list);
-	}
-
-	public void testCustom() {
-		List<String> list = this.buildUnsortedList();
-		Collections.sort(list, this.customReverseComparator);
-		this.verifyList(this.buildCustomSortedList(), list);
-	}
-
-	private void verifyList(List<String> normal, List<String> reverse) {
-		int size = normal.size();
-		int max = size - 1;
-		for (int i = 0; i < size; i++) {
-			assertEquals(normal.get(i), reverse.get(max - i));
-		}
-	}
-}
diff --git a/jpa/tests/org.eclipse.jpt.utility.tests/src/org/eclipse/jpt/utility/tests/internal/SimpleAssociationTests.java b/jpa/tests/org.eclipse.jpt.utility.tests/src/org/eclipse/jpt/utility/tests/internal/SimpleAssociationTests.java
deleted file mode 100644
index ee5f537..0000000
--- a/jpa/tests/org.eclipse.jpt.utility.tests/src/org/eclipse/jpt/utility/tests/internal/SimpleAssociationTests.java
+++ /dev/null
@@ -1,98 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.utility.tests.internal;
-
-import junit.framework.Test;
-import junit.framework.TestCase;
-import junit.framework.TestSuite;
-import org.eclipse.jpt.utility.internal.Association;
-import org.eclipse.jpt.utility.internal.SimpleAssociation;
-
-public class SimpleAssociationTests extends TestCase {
-	private SimpleAssociation<String, String> assoc;
-
-	public static Test suite() {
-		return new TestSuite(SimpleAssociationTests.class);
-	}
-	
-	public SimpleAssociationTests(String name) {
-		super(name);
-	}
-
-	@Override
-	protected void setUp() throws Exception {
-		super.setUp();
-		this.assoc = new SimpleAssociation<String, String>("foo", "bar");
-	}
-
-	@Override
-	protected void tearDown() throws Exception {
-		TestTools.clear(this);
-		super.tearDown();
-	}
-
-	public void testGetKey() {
-		assertEquals("foo", this.assoc.key());
-	}
-
-	public void testGetValue() {
-		assertEquals("bar", this.assoc.value());
-	}
-
-	public void testSetValue() {
-		assertEquals("bar", this.assoc.value());
-		this.assoc.setValue("baz");
-		assertEquals("baz", this.assoc.value());
-	}
-
-	public void testEquals() {
-		assertEquals(this.assoc, this.copy(this.assoc));
-
-		SimpleAssociation<String, String> assoc2 = new SimpleAssociation<String, String>("foo", "baz");
-		assertFalse(this.assoc.equals(assoc2));
-
-		assoc2 = new SimpleAssociation<String, String>("fop", "bar");
-		assertFalse(this.assoc.equals(assoc2));
-	}
-
-	public void testHashCode() {
-		assertEquals(this.assoc.hashCode(), this.copy(this.assoc).hashCode());
-	}
-
-	public void testClone() {
-		this.verifyClone(this.assoc, this.assoc.clone());
-	}
-
-	private void verifyClone(Association<String, String> expected, Association<String, String> actual) {
-		assertEquals(expected, actual);
-		assertNotSame(expected, actual);
-		assertEquals(expected.key(), actual.key());
-		assertSame(expected.key(), actual.key());
-		assertEquals(expected.value(), actual.value());
-		assertSame(expected.value(), actual.value());
-	}
-
-	public void testSerialization() throws Exception {
-		@SuppressWarnings("cast")
-		Association<String, String> assoc2 = (Association<String, String>) TestTools.serialize(this.assoc);
-
-		assertEquals(this.assoc, assoc2);
-		assertNotSame(this.assoc, assoc2);
-		assertEquals(this.assoc.key(), assoc2.key());
-		assertNotSame(this.assoc.key(), assoc2.key());
-		assertEquals(this.assoc.value(), assoc2.value());
-		assertNotSame(this.assoc.value(), assoc2.value());
-	}
-
-	private SimpleAssociation<String, String> copy(SimpleAssociation<String, String> sa) {
-		return new SimpleAssociation<String, String>(sa.key(), sa.value());
-	}
-
-}
diff --git a/jpa/tests/org.eclipse.jpt.utility.tests/src/org/eclipse/jpt/utility/tests/internal/SimpleStackTests.java b/jpa/tests/org.eclipse.jpt.utility.tests/src/org/eclipse/jpt/utility/tests/internal/SimpleStackTests.java
deleted file mode 100644
index f1e9789..0000000
--- a/jpa/tests/org.eclipse.jpt.utility.tests/src/org/eclipse/jpt/utility/tests/internal/SimpleStackTests.java
+++ /dev/null
@@ -1,140 +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.utility.tests.internal;
-
-import java.util.EmptyStackException;
-import junit.framework.TestCase;
-import org.eclipse.jpt.utility.internal.SimpleStack;
-import org.eclipse.jpt.utility.internal.Stack;
-
-public class SimpleStackTests extends TestCase {
-
-	public SimpleStackTests(String name) {
-		super(name);
-	}
-
-	public void testIsEmpty() {
-		Stack<String> stack = new SimpleStack<String>();
-		assertTrue(stack.isEmpty());
-		stack.push("first");
-		assertFalse(stack.isEmpty());
-		stack.push("second");
-		assertFalse(stack.isEmpty());
-		stack.pop();
-		assertFalse(stack.isEmpty());
-		stack.pop();
-		assertTrue(stack.isEmpty());
-	}
-
-	public void testPushAndPop() {
-		Stack<String> stack = new SimpleStack<String>();
-		String first = "first";
-		String second = "second";
-
-		stack.push(first);
-		stack.push(second);
-		assertEquals(second, stack.pop());
-		assertEquals(first, stack.pop());
-	}
-
-	public void testPushAndPeek() {
-		Stack<String> stack = new SimpleStack<String>();
-		String first = "first";
-		String second = "second";
-
-		stack.push(first);
-		stack.push(second);
-		assertEquals(second, stack.peek());
-		assertEquals(second, stack.peek());
-		assertEquals(second, stack.pop());
-		assertEquals(first, stack.peek());
-		assertEquals(first, stack.peek());
-		assertEquals(first, stack.pop());
-	}
-
-	public void testEmptyStackExceptionPeek() {
-		Stack<String> stack = new SimpleStack<String>();
-		String first = "first";
-		String second = "second";
-
-		stack.push(first);
-		stack.push(second);
-		assertEquals(second, stack.peek());
-		assertEquals(second, stack.pop());
-		assertEquals(first, stack.peek());
-		assertEquals(first, stack.pop());
-
-		boolean exCaught = false;
-		try {
-			stack.peek();
-		} catch (EmptyStackException ex) {
-			exCaught = true;
-		}
-		assertTrue(exCaught);
-	}
-
-	public void testEmptyStackExceptionPop() {
-		Stack<String> stack = new SimpleStack<String>();
-		String first = "first";
-		String second = "second";
-
-		stack.push(first);
-		stack.push(second);
-		assertEquals(second, stack.peek());
-		assertEquals(second, stack.pop());
-		assertEquals(first, stack.peek());
-		assertEquals(first, stack.pop());
-
-		boolean exCaught = false;
-		try {
-			stack.pop();
-		} catch (EmptyStackException ex) {
-			exCaught = true;
-		}
-		assertTrue(exCaught);
-	}
-
-	public void testClone() {
-		SimpleStack<String> stack = new SimpleStack<String>();
-		stack.push("first");
-		stack.push("second");
-		stack.push("third");
-
-		this.verifyClone(stack, stack.clone());
-	}
-
-	public void testSerialization() throws Exception {
-		SimpleStack<String> stack = new SimpleStack<String>();
-		stack.push("first");
-		stack.push("second");
-		stack.push("third");
-
-		this.verifyClone(stack, TestTools.serialize(stack));
-	}
-
-	private void verifyClone(Stack<String> original, Stack<String> clone) {
-		assertNotSame(original, clone);
-		assertEquals(original.peek(), clone.peek());
-		assertEquals(original.pop(), clone.pop());
-		assertEquals(original.peek(), clone.peek());
-		assertEquals(original.pop(), clone.pop());
-		assertEquals(original.isEmpty(), clone.isEmpty());
-		assertEquals(original.peek(), clone.peek());
-		assertEquals(original.pop(), clone.pop());
-		assertTrue(original.isEmpty());
-		assertEquals(original.isEmpty(), clone.isEmpty());
-
-		original.push("fourth");
-		assertFalse(original.isEmpty());
-		// clone should still be empty
-		assertTrue(clone.isEmpty());
-	}
-
-}
diff --git a/jpa/tests/org.eclipse.jpt.utility.tests/src/org/eclipse/jpt/utility/tests/internal/StringToolsTests.java b/jpa/tests/org.eclipse.jpt.utility.tests/src/org/eclipse/jpt/utility/tests/internal/StringToolsTests.java
deleted file mode 100644
index 0078dcc..0000000
--- a/jpa/tests/org.eclipse.jpt.utility.tests/src/org/eclipse/jpt/utility/tests/internal/StringToolsTests.java
+++ /dev/null
@@ -1,1717 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005, 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.utility.tests.internal;
-
-import java.io.StringWriter;
-import java.io.Writer;
-import junit.framework.TestCase;
-import org.eclipse.jpt.utility.internal.StringTools;
-
-@SuppressWarnings("nls")
-public class StringToolsTests extends TestCase {
-
-	public StringToolsTests(String name) {
-		super(name);
-	}
-
-	private static void assertEquals(String expected, char[] actual) {
-		assertEquals(expected, new String(actual));
-	}
-
-	// ********** padding/truncating **********
-
-	public void testPad() {
-		assertEquals("fred", StringTools.pad("fred", 4));
-		assertEquals("fred  ", StringTools.pad("fred", 6));
-		boolean exThrown = false;
-		try {
-			assertEquals("fr", StringTools.pad("fred", 2));
-		} catch (IllegalArgumentException ex) {
-			exThrown = true;
-		}
-		assertTrue(exThrown);
-	}
-
-	public void testPadCharArray() {
-		assertEquals("fred", StringTools.pad(new char[] { 'f', 'r', 'e', 'd' }, 4));
-		assertEquals("fred  ", StringTools.pad(new char[] { 'f', 'r', 'e', 'd' }, 6));
-		boolean exThrown = false;
-		try {
-			assertEquals("fr", StringTools.pad(new char[] { 'f', 'r', 'e', 'd' }, 2));
-		} catch (IllegalArgumentException ex) {
-			exThrown = true;
-		}
-		assertTrue(exThrown);
-	}
-
-	public void testPadOnWriter() {
-		Writer writer;
-		writer = new StringWriter();
-		StringTools.padOn("fred", 4, writer);
-		assertEquals("fred", writer.toString());
-
-		writer = new StringWriter();
-		StringTools.padOn("fred", 6, writer);
-		assertEquals("fred  ", writer.toString());
-
-		writer = new StringWriter();
-		boolean exThrown = false;
-		try {
-			StringTools.padOn("fred", 2, writer);
-			fail();
-		} catch (IllegalArgumentException ex) {
-			exThrown = true;
-		}
-		assertTrue(exThrown);
-	}
-
-	public void testPadOnStringBuffer() {
-		StringBuffer sb;
-		sb = new StringBuffer();
-		StringTools.padOn("fred", 4, sb);
-		assertEquals("fred", sb.toString());
-
-		sb = new StringBuffer();
-		StringTools.padOn("fred", 6, sb);
-		assertEquals("fred  ", sb.toString());
-
-		sb = new StringBuffer();
-		boolean exThrown = false;
-		try {
-			StringTools.padOn("fred", 2, sb);
-			fail();
-		} catch (IllegalArgumentException ex) {
-			exThrown = true;
-		}
-		assertTrue(exThrown);
-	}
-
-	public void testPadOnStringBuilder() {
-		StringBuilder sb;
-		sb = new StringBuilder();
-		StringTools.padOn("fred", 4, sb);
-		assertEquals("fred", sb.toString());
-
-		sb = new StringBuilder();
-		StringTools.padOn("fred", 6, sb);
-		assertEquals("fred  ", sb.toString());
-
-		sb = new StringBuilder();
-		boolean exThrown = false;
-		try {
-			StringTools.padOn("fred", 2, sb);
-			fail();
-		} catch (IllegalArgumentException ex) {
-			exThrown = true;
-		}
-		assertTrue(exThrown);
-	}
-
-	public void testPadOrTruncate() {
-		assertEquals("fred", StringTools.padOrTruncate("fred", 4));
-		assertEquals("fred  ", StringTools.padOrTruncate("fred", 6));
-		assertEquals("fr", StringTools.padOrTruncate("fred", 2));
-	}
-
-	public void testPadOrTruncateCharArray() {
-		assertEquals("fred", StringTools.padOrTruncate(new char[] { 'f', 'r', 'e', 'd' }, 4));
-		assertEquals("fred  ", StringTools.padOrTruncate(new char[] { 'f', 'r', 'e', 'd' }, 6));
-		assertEquals("fr", StringTools.padOrTruncate(new char[] { 'f', 'r', 'e', 'd' }, 2));
-	}
-
-	public void testPadOrTruncateOnWriter() {
-		this.verifyPadOrTruncateOnWriter("fred", "fred", 4);
-		this.verifyPadOrTruncateOnWriter("fred  ", "fred", 6);
-		this.verifyPadOrTruncateOnWriter("fr", "fred", 2);
-	}
-
-	private void verifyPadOrTruncateOnWriter(String expected, String string, int length) {
-		Writer writer = new StringWriter();
-		StringTools.padOrTruncateOn(string, length, writer);
-		assertEquals(expected, writer.toString());
-	}
-
-	public void testPadOrTruncateOnStringBuffer() {
-		this.verifyPadOrTruncateOnStringBuffer("fred", "fred", 4);
-		this.verifyPadOrTruncateOnStringBuffer("fred  ", "fred", 6);
-		this.verifyPadOrTruncateOnStringBuffer("fr", "fred", 2);
-	}
-
-	private void verifyPadOrTruncateOnStringBuffer(String expected, String string, int length) {
-		StringBuffer sb = new StringBuffer();
-		StringTools.padOrTruncateOn(string, length, sb);
-		assertEquals(expected, sb.toString());
-	}
-
-	public void testPadOrTruncateOnStringBuilder() {
-		this.verifyPadOrTruncateOnStringBuilder("fred", "fred", 4);
-		this.verifyPadOrTruncateOnStringBuilder("fred  ", "fred", 6);
-		this.verifyPadOrTruncateOnStringBuilder("fr", "fred", 2);
-	}
-
-	private void verifyPadOrTruncateOnStringBuilder(String expected, String string, int length) {
-		StringBuilder sb = new StringBuilder();
-		StringTools.padOrTruncateOn(string, length, sb);
-		assertEquals(expected, sb.toString());
-	}
-
-	public void testZeroPad() {
-		assertEquals("1234", StringTools.zeroPad("1234", 4));
-		assertEquals("001234", StringTools.zeroPad("1234", 6));
-		boolean exThrown = false;
-		try {
-			assertEquals("12", StringTools.zeroPad("1234", 2));
-		} catch (IllegalArgumentException ex) {
-			exThrown = true;
-		}
-		assertTrue(exThrown);
-	}
-
-	public void testZeroPadCharArray() {
-		assertEquals("1234", StringTools.zeroPad(new char[] { '1', '2', '3', '4' }, 4));
-		assertEquals("001234", StringTools.zeroPad(new char[] { '1', '2', '3', '4' }, 6));
-		boolean exThrown = false;
-		try {
-			assertEquals("12", StringTools.zeroPad(new char[] { '1', '2', '3', '4' }, 2));
-		} catch (IllegalArgumentException ex) {
-			exThrown = true;
-		}
-		assertTrue(exThrown);
-	}
-
-	public void testZeroPadOnWriter() {
-		Writer writer;
-		writer = new StringWriter();
-		StringTools.zeroPadOn("1234", 4, writer);
-		assertEquals("1234", writer.toString());
-
-		writer = new StringWriter();
-		StringTools.zeroPadOn("1234", 6, writer);
-		assertEquals("001234", writer.toString());
-
-		writer = new StringWriter();
-		boolean exThrown = false;
-		try {
-			StringTools.zeroPadOn("1234", 2, writer);
-			fail();
-		} catch (IllegalArgumentException ex) {
-			exThrown = true;
-		}
-		assertTrue(exThrown);
-	}
-
-	public void testZeroPadOnStringBuffer() {
-		StringBuffer sb;
-		sb = new StringBuffer();
-		StringTools.zeroPadOn("1234", 4, sb);
-		assertEquals("1234", sb.toString());
-
-		sb = new StringBuffer();
-		StringTools.zeroPadOn("1234", 6, sb);
-		assertEquals("001234", sb.toString());
-
-		sb = new StringBuffer();
-		boolean exThrown = false;
-		try {
-			StringTools.zeroPadOn("1234", 2, sb);
-			fail();
-		} catch (IllegalArgumentException ex) {
-			exThrown = true;
-		}
-		assertTrue(exThrown);
-	}
-
-	public void testZeroPadOnStringBuilder() {
-		StringBuilder sb;
-		sb = new StringBuilder();
-		StringTools.zeroPadOn("1234", 4, sb);
-		assertEquals("1234", sb.toString());
-
-		sb = new StringBuilder();
-		StringTools.zeroPadOn("1234", 6, sb);
-		assertEquals("001234", sb.toString());
-
-		sb = new StringBuilder();
-		boolean exThrown = false;
-		try {
-			StringTools.zeroPadOn("1234", 2, sb);
-			fail();
-		} catch (IllegalArgumentException ex) {
-			exThrown = true;
-		}
-		assertTrue(exThrown);
-	}
-
-	public void testZeroPadOrTruncate() {
-		assertEquals("1234", StringTools.zeroPadOrTruncate("1234", 4));
-		assertEquals("001234", StringTools.zeroPadOrTruncate("1234", 6));
-		assertEquals("34", StringTools.zeroPadOrTruncate("1234", 2));
-	}
-
-	public void testZeroPadOrTruncateCharArray() {
-		assertEquals("1234", StringTools.zeroPadOrTruncate(new char[] { '1', '2', '3', '4' }, 4));
-		assertEquals("001234", StringTools.zeroPadOrTruncate(new char[] { '1', '2', '3', '4' }, 6));
-		assertEquals("34", StringTools.zeroPadOrTruncate(new char[] { '1', '2', '3', '4' }, 2));
-	}
-
-	public void testZeroPadOrTruncateOnWriter() {
-		this.verifyZeroPadOrTruncateOnWriter("1234", "1234", 4);
-		this.verifyZeroPadOrTruncateOnWriter("001234", "1234", 6);
-		this.verifyZeroPadOrTruncateOnWriter("34", "1234", 2);
-	}
-
-	private void verifyZeroPadOrTruncateOnWriter(String expected, String string, int length) {
-		Writer writer = new StringWriter();
-		StringTools.zeroPadOrTruncateOn(string, length, writer);
-		assertEquals(expected, writer.toString());
-	}
-
-	public void testZeroPadOrTruncateOnStringBuffer() {
-		this.verifyZeroPadOrTruncateOnStringBuffer("1234", "1234", 4);
-		this.verifyZeroPadOrTruncateOnStringBuffer("001234", "1234", 6);
-		this.verifyZeroPadOrTruncateOnStringBuffer("34", "1234", 2);
-	}
-
-	private void verifyZeroPadOrTruncateOnStringBuffer(String expected, String string, int length) {
-		StringBuffer sb = new StringBuffer();
-		StringTools.zeroPadOrTruncateOn(string, length, sb);
-		assertEquals(expected, sb.toString());
-	}
-
-	public void testZeroPadOrTruncateOnStringBuilder() {
-		this.verifyZeroPadOrTruncateOnStringBuilder("1234", "1234", 4);
-		this.verifyZeroPadOrTruncateOnStringBuilder("001234", "1234", 6);
-		this.verifyZeroPadOrTruncateOnStringBuilder("34", "1234", 2);
-	}
-
-	private void verifyZeroPadOrTruncateOnStringBuilder(String expected, String string, int length) {
-		StringBuilder sb = new StringBuilder();
-		StringTools.zeroPadOrTruncateOn(string, length, sb);
-		assertEquals(expected, sb.toString());
-	}
-
-	// ********** delimiting **********
-
-	public void testDelimit() {
-		this.verifyDelimit("Employee", "123", "123Employee123");
-		this.verifyDelimit("123", "123", "123123123");
-		this.verifyDelimit("", "123", "123123");
-	}
-
-	private void verifyDelimit(String string, String delimiter, String expectedString) {
-		assertEquals(expectedString, StringTools.delimit(string, delimiter));
-	}
-
-	public void testDelimitOnWriter() {
-		this.verifyDelimitOnWriter("Employee", "123", "123Employee123");
-		this.verifyDelimitOnWriter("123", "123", "123123123");
-		this.verifyDelimitOnWriter("", "123", "123123");
-	}
-
-	private void verifyDelimitOnWriter(String string, String delimiter, String expectedString) {
-		Writer writer = new StringWriter();
-		StringTools.delimitOn(string, delimiter, writer);
-		assertEquals(expectedString, writer.toString());
-	}
-
-	public void testDelimitOnStringBuffer() {
-		this.verifyDelimitOnStringBuffer("Employee", "123", "123Employee123");
-		this.verifyDelimitOnStringBuffer("123", "123", "123123123");
-		this.verifyDelimitOnStringBuffer("", "123", "123123");
-	}
-
-	private void verifyDelimitOnStringBuffer(String string, String delimiter, String expectedString) {
-		StringBuffer sb = new StringBuffer();
-		StringTools.delimitOn(string, delimiter, sb);
-		assertEquals(expectedString, sb.toString());
-	}
-
-	public void testDelimitOnStringBuilder() {
-		this.verifyDelimitOnStringBuilder("Employee", "123", "123Employee123");
-		this.verifyDelimitOnStringBuilder("123", "123", "123123123");
-		this.verifyDelimitOnStringBuilder("", "123", "123123");
-	}
-
-	private void verifyDelimitOnStringBuilder(String string, String delimiter, String expectedString) {
-		StringBuilder sb = new StringBuilder();
-		StringTools.delimitOn(string, delimiter, sb);
-		assertEquals(expectedString, sb.toString());
-	}
-
-	public void testQuote() {
-		this.verifyQuote("Employee", "\"Employee\"");
-		this.verifyQuote("123", "\"123\"");
-		this.verifyQuote("", "\"\"");
-		this.verifyQuote("Emp\"loyee", "\"Emp\"\"loyee\"");
-	}
-
-	private void verifyQuote(String string, String expectedString) {
-		assertEquals(expectedString, StringTools.quote(string));
-	}
-
-	public void testQuoteOnWriter() {
-		this.verifyQuoteOnWriter("Employee", "\"Employee\"");
-		this.verifyQuoteOnWriter("123", "\"123\"");
-		this.verifyQuoteOnWriter("", "\"\"");
-		this.verifyQuoteOnWriter("Emp\"loyee", "\"Emp\"\"loyee\"");
-	}
-
-	private void verifyQuoteOnWriter(String string, String expectedString) {
-		Writer writer = new StringWriter();
-		StringTools.quoteOn(string, writer);
-		assertEquals(expectedString, writer.toString());
-	}
-
-	public void testQuoteOnStringBuffer() {
-		this.verifyQuoteOnStringBuffer("Employee", "\"Employee\"");
-		this.verifyQuoteOnStringBuffer("123", "\"123\"");
-		this.verifyQuoteOnStringBuffer("", "\"\"");
-		this.verifyQuoteOnStringBuffer("Emp\"loyee", "\"Emp\"\"loyee\"");
-	}
-
-	private void verifyQuoteOnStringBuffer(String string, String expectedString) {
-		StringBuffer sb = new StringBuffer();
-		StringTools.quoteOn(string, sb);
-		assertEquals(expectedString, sb.toString());
-	}
-
-	public void testQuoteOnStringBuilder() {
-		this.verifyQuoteOnStringBuilder("Employee", "\"Employee\"");
-		this.verifyQuoteOnStringBuilder("123", "\"123\"");
-		this.verifyQuoteOnStringBuilder("", "\"\"");
-		this.verifyQuoteOnStringBuilder("Emp\"loyee", "\"Emp\"\"loyee\"");
-	}
-
-	private void verifyQuoteOnStringBuilder(String string, String expectedString) {
-		StringBuilder sb = new StringBuilder();
-		StringTools.quoteOn(string, sb);
-		assertEquals(expectedString, sb.toString());
-	}
-
-	// ********** removing characters **********
-
-	public void testRemoveFirstOccurrence() {
-		this.verifyRemoveFirstOccurrence("Emplo&yee", '&', "Employee");
-		this.verifyRemoveFirstOccurrence("Emplo&yee&", '&', "Employee&");
-		this.verifyRemoveFirstOccurrence("Employee &Foo", '&', "Employee Foo");
-		this.verifyRemoveFirstOccurrence("Employee&", '&', "Employee");
-		this.verifyRemoveFirstOccurrence("&Employee", '&', "Employee");
-	}
-
-	private void verifyRemoveFirstOccurrence(String string, char charToRemove, String expectedString) {
-		assertEquals(expectedString, StringTools.removeFirstOccurrence(string, charToRemove));
-	}
-
-	public void testRemoveFirstOccurrenceCharArray() {
-		this.verifyRemoveFirstOccurrenceCharArray("Emplo&yee", '&', "Employee");
-		this.verifyRemoveFirstOccurrenceCharArray("Emplo&yee&", '&', "Employee&");
-		this.verifyRemoveFirstOccurrenceCharArray("Employee &Foo", '&', "Employee Foo");
-		this.verifyRemoveFirstOccurrenceCharArray("Employee&", '&', "Employee");
-		this.verifyRemoveFirstOccurrenceCharArray("&Employee", '&', "Employee");
-	}
-
-	private void verifyRemoveFirstOccurrenceCharArray(String string, char charToRemove, String expectedString) {
-		assertEquals(expectedString, StringTools.removeFirstOccurrence(string.toCharArray(), charToRemove));
-	}
-
-	public void testRemoveFirstOccurrenceOnWriter() {
-		this.verifyRemoveFirstOccurrenceOnWriter("Emplo&yee", '&', "Employee");
-		this.verifyRemoveFirstOccurrenceOnWriter("Emplo&yee&", '&', "Employee&");
-		this.verifyRemoveFirstOccurrenceOnWriter("Employee &Foo", '&', "Employee Foo");
-		this.verifyRemoveFirstOccurrenceOnWriter("Employee&", '&', "Employee");
-		this.verifyRemoveFirstOccurrenceOnWriter("&Employee", '&', "Employee");
-	}
-
-	private void verifyRemoveFirstOccurrenceOnWriter(String string, char charToRemove, String expectedString) {
-		Writer writer = new StringWriter();
-		StringTools.removeFirstOccurrenceOn(string, charToRemove, writer);
-		assertEquals(expectedString, writer.toString());
-	}
-
-	public void testRemoveFirstOccurrenceOnStringBuffer() {
-		this.verifyRemoveFirstOccurrenceOnStringBuffer("Emplo&yee", '&', "Employee");
-		this.verifyRemoveFirstOccurrenceOnStringBuffer("Emplo&yee&", '&', "Employee&");
-		this.verifyRemoveFirstOccurrenceOnStringBuffer("Employee &Foo", '&', "Employee Foo");
-		this.verifyRemoveFirstOccurrenceOnStringBuffer("Employee&", '&', "Employee");
-		this.verifyRemoveFirstOccurrenceOnStringBuffer("&Employee", '&', "Employee");
-	}
-
-	private void verifyRemoveFirstOccurrenceOnStringBuffer(String string, char charToRemove, String expectedString) {
-		StringBuffer sb = new StringBuffer();
-		StringTools.removeFirstOccurrenceOn(string, charToRemove, sb);
-		assertEquals(expectedString, sb.toString());
-	}
-
-	public void testRemoveFirstOccurrenceOnStringBuilder() {
-		this.verifyRemoveFirstOccurrenceOnStringBuilder("Emplo&yee", '&', "Employee");
-		this.verifyRemoveFirstOccurrenceOnStringBuilder("Emplo&yee&", '&', "Employee&");
-		this.verifyRemoveFirstOccurrenceOnStringBuilder("Employee &Foo", '&', "Employee Foo");
-		this.verifyRemoveFirstOccurrenceOnStringBuilder("Employee&", '&', "Employee");
-		this.verifyRemoveFirstOccurrenceOnStringBuilder("&Employee", '&', "Employee");
-	}
-
-	private void verifyRemoveFirstOccurrenceOnStringBuilder(String string, char charToRemove, String expectedString) {
-		StringBuilder sb = new StringBuilder();
-		StringTools.removeFirstOccurrenceOn(string, charToRemove, sb);
-		assertEquals(expectedString, sb.toString());
-	}
-
-	public void testRemoveAllOccurrences() {
-		this.verifyRemoveAllOccurrences("Employee Fred", ' ', "EmployeeFred");
-		this.verifyRemoveAllOccurrences(" Employee ", ' ', "Employee");
-		this.verifyRemoveAllOccurrences("Employee   Foo", ' ', "EmployeeFoo");
-		this.verifyRemoveAllOccurrences(" Emp loyee   Foo", ' ', "EmployeeFoo");
-	}
-
-	private void verifyRemoveAllOccurrences(String string, char charToRemove, String expectedString) {
-		assertEquals(expectedString, StringTools.removeAllOccurrences(string, charToRemove));
-	}
-
-	public void testRemoveAllOccurrencesCharArray() {
-		this.verifyRemoveAllOccurrencesCharArray("Employee Fred", ' ', "EmployeeFred");
-		this.verifyRemoveAllOccurrencesCharArray(" Employee ", ' ', "Employee");
-		this.verifyRemoveAllOccurrencesCharArray("Employee   Foo", ' ', "EmployeeFoo");
-		this.verifyRemoveAllOccurrencesCharArray(" Emp loyee   Foo", ' ', "EmployeeFoo");
-	}
-
-	private void verifyRemoveAllOccurrencesCharArray(String string, char charToRemove, String expectedString) {
-		assertEquals(expectedString, StringTools.removeAllOccurrences(string.toCharArray(), charToRemove));
-	}
-
-	public void testRemoveAllOccurrencesOnWriter() {
-		this.verifyRemoveAllOccurrencesOnWriter("Employee Fred", ' ', "EmployeeFred");
-		this.verifyRemoveAllOccurrencesOnWriter(" Employee ", ' ', "Employee");
-		this.verifyRemoveAllOccurrencesOnWriter("Employee   Foo", ' ', "EmployeeFoo");
-		this.verifyRemoveAllOccurrencesOnWriter(" Emp loyee   Foo", ' ', "EmployeeFoo");
-	}
-
-	private void verifyRemoveAllOccurrencesOnWriter(String string, char charToRemove, String expectedString) {
-		Writer writer = new StringWriter();
-		StringTools.removeAllOccurrencesOn(string, charToRemove, writer);
-		assertEquals(expectedString, writer.toString());
-	}
-
-	public void testRemoveAllOccurrencesOnStringBuffer() {
-		this.verifyRemoveAllOccurrencesOnStringBuffer("Employee Fred", ' ', "EmployeeFred");
-		this.verifyRemoveAllOccurrencesOnStringBuffer(" Employee ", ' ', "Employee");
-		this.verifyRemoveAllOccurrencesOnStringBuffer("Employee   Foo", ' ', "EmployeeFoo");
-		this.verifyRemoveAllOccurrencesOnStringBuffer(" Emp loyee   Foo", ' ', "EmployeeFoo");
-	}
-
-	private void verifyRemoveAllOccurrencesOnStringBuffer(String string, char charToRemove, String expectedString) {
-		StringBuffer sb = new StringBuffer();
-		StringTools.removeAllOccurrencesOn(string, charToRemove, sb);
-		assertEquals(expectedString, sb.toString());
-	}
-
-	public void testRemoveAllOccurrencesOnStringBuilder() {
-		this.verifyRemoveAllOccurrencesOnStringBuilder("Employee Fred", ' ', "EmployeeFred");
-		this.verifyRemoveAllOccurrencesOnStringBuilder(" Employee ", ' ', "Employee");
-		this.verifyRemoveAllOccurrencesOnStringBuilder("Employee   Foo", ' ', "EmployeeFoo");
-		this.verifyRemoveAllOccurrencesOnStringBuilder(" Emp loyee   Foo", ' ', "EmployeeFoo");
-	}
-
-	private void verifyRemoveAllOccurrencesOnStringBuilder(String string, char charToRemove, String expectedString) {
-		StringBuilder sb = new StringBuilder();
-		StringTools.removeAllOccurrencesOn(string, charToRemove, sb);
-		assertEquals(expectedString, sb.toString());
-	}
-
-	public void testRemoveAllWhitespace() {
-		this.verifyRemoveAllWhitespace("Employee Fred\t", "EmployeeFred");
-		this.verifyRemoveAllWhitespace("\tEmployee\n", "Employee");
-		this.verifyRemoveAllWhitespace("Employee \t Foo", "EmployeeFoo");
-		this.verifyRemoveAllWhitespace(" Emp\tloyee \n Foo", "EmployeeFoo");
-	}
-
-	private void verifyRemoveAllWhitespace(String string, String expectedString) {
-		assertEquals(expectedString, StringTools.removeAllWhitespace(string));
-	}
-
-	public void testRemoveAllWhitespaceCharArray() {
-		this.verifyRemoveAllWhitespaceCharArray("Employee Fred\t", "EmployeeFred");
-		this.verifyRemoveAllWhitespaceCharArray("\tEmployee\n", "Employee");
-		this.verifyRemoveAllWhitespaceCharArray("Employee \t Foo", "EmployeeFoo");
-		this.verifyRemoveAllWhitespaceCharArray(" Emp\tloyee \n Foo", "EmployeeFoo");
-	}
-
-	private void verifyRemoveAllWhitespaceCharArray(String string, String expectedString) {
-		assertEquals(expectedString, StringTools.removeAllWhitespace(string.toCharArray()));
-	}
-
-	public void testRemoveAllWhitespaceOnWriter() {
-		this.verifyRemoveAllWhitespaceOnWriter("Employee Fred\t", "EmployeeFred");
-		this.verifyRemoveAllWhitespaceOnWriter("\tEmployee\n", "Employee");
-		this.verifyRemoveAllWhitespaceOnWriter("Employee \t Foo", "EmployeeFoo");
-		this.verifyRemoveAllWhitespaceOnWriter(" Emp\tloyee \n Foo", "EmployeeFoo");
-	}
-
-	private void verifyRemoveAllWhitespaceOnWriter(String string, String expectedString) {
-		Writer writer = new StringWriter();
-		StringTools.removeAllWhitespaceOn(string, writer);
-		assertEquals(expectedString, writer.toString());
-	}
-
-	public void testRemoveAllWhitespaceOnStringBuffer() {
-		this.verifyRemoveAllWhitespaceOnStringBuffer("Employee Fred\t", "EmployeeFred");
-		this.verifyRemoveAllWhitespaceOnStringBuffer("\tEmployee\n", "Employee");
-		this.verifyRemoveAllWhitespaceOnStringBuffer("Employee \t Foo", "EmployeeFoo");
-		this.verifyRemoveAllWhitespaceOnStringBuffer(" Emp\tloyee \n Foo", "EmployeeFoo");
-	}
-
-	private void verifyRemoveAllWhitespaceOnStringBuffer(String string, String expectedString) {
-		StringBuffer sb = new StringBuffer();
-		StringTools.removeAllWhitespaceOn(string, sb);
-		assertEquals(expectedString, sb.toString());
-	}
-
-	public void testRemoveAllWhitespaceOnStringBuilder() {
-		this.verifyRemoveAllWhitespaceOnStringBuilder("Employee Fred\t", "EmployeeFred");
-		this.verifyRemoveAllWhitespaceOnStringBuilder("\tEmployee\n", "Employee");
-		this.verifyRemoveAllWhitespaceOnStringBuilder("Employee \t Foo", "EmployeeFoo");
-		this.verifyRemoveAllWhitespaceOnStringBuilder(" Emp\tloyee \n Foo", "EmployeeFoo");
-	}
-
-	private void verifyRemoveAllWhitespaceOnStringBuilder(String string, String expectedString) {
-		StringBuilder sb = new StringBuilder();
-		StringTools.removeAllWhitespaceOn(string, sb);
-		assertEquals(expectedString, sb.toString());
-	}
-//////////////////////////////
-	public void testCompressWhitespace() {
-		this.verifyCompressWhitespace("Employee      Fred\t", "Employee Fred ");
-		this.verifyCompressWhitespace("\tEmployee  \n", " Employee ");
-		this.verifyCompressWhitespace("Employee \t Foo", "Employee Foo");
-		this.verifyCompressWhitespace(" Emp\tloyee \n Foo ", " Emp loyee Foo ");
-	}
-
-	private void verifyCompressWhitespace(String string, String expectedString) {
-		assertEquals(expectedString, StringTools.compressWhitespace(string));
-	}
-
-	public void testCompressWhitespaceCharArray() {
-		this.verifyCompressWhitespaceCharArray("Employee      Fred\t", "Employee Fred ");
-		this.verifyCompressWhitespaceCharArray("\tEmployee  \n", " Employee ");
-		this.verifyCompressWhitespaceCharArray("Employee \t Foo", "Employee Foo");
-		this.verifyCompressWhitespaceCharArray(" Emp\tloyee \n Foo ", " Emp loyee Foo ");
-	}
-
-	private void verifyCompressWhitespaceCharArray(String string, String expectedString) {
-		assertEquals(expectedString, StringTools.compressWhitespace(string.toCharArray()));
-	}
-
-	public void testCompressWhitespaceOnWriter() {
-		this.verifyCompressWhitespaceOnWriter("Employee      Fred\t", "Employee Fred ");
-		this.verifyCompressWhitespaceOnWriter("\tEmployee  \n", " Employee ");
-		this.verifyCompressWhitespaceOnWriter("Employee \t Foo", "Employee Foo");
-		this.verifyCompressWhitespaceOnWriter(" Emp\tloyee \n Foo ", " Emp loyee Foo ");
-	}
-
-	private void verifyCompressWhitespaceOnWriter(String string, String expectedString) {
-		Writer writer = new StringWriter();
-		StringTools.compressWhitespaceOn(string, writer);
-		assertEquals(expectedString, writer.toString());
-	}
-
-	public void testCompressWhitespaceOnStringBuffer() {
-		this.verifyCompressWhitespaceOnStringBuffer("Employee      Fred\t", "Employee Fred ");
-		this.verifyCompressWhitespaceOnStringBuffer("\tEmployee  \n", " Employee ");
-		this.verifyCompressWhitespaceOnStringBuffer("Employee \t Foo", "Employee Foo");
-		this.verifyCompressWhitespaceOnStringBuffer(" Emp\tloyee \n Foo ", " Emp loyee Foo ");
-	}
-
-	private void verifyCompressWhitespaceOnStringBuffer(String string, String expectedString) {
-		StringBuffer sb = new StringBuffer();
-		StringTools.compressWhitespaceOn(string, sb);
-		assertEquals(expectedString, sb.toString());
-	}
-
-	public void testCompressWhitespaceOnStringBuilder() {
-		this.verifyCompressWhitespaceOnStringBuilder("Employee      Fred\t", "Employee Fred ");
-		this.verifyCompressWhitespaceOnStringBuilder("\tEmployee  \n", " Employee ");
-		this.verifyCompressWhitespaceOnStringBuilder("Employee \t Foo", "Employee Foo");
-		this.verifyCompressWhitespaceOnStringBuilder(" Emp\tloyee \n Foo ", " Emp loyee Foo ");
-	}
-
-	private void verifyCompressWhitespaceOnStringBuilder(String string, String expectedString) {
-		StringBuilder sb = new StringBuilder();
-		StringTools.compressWhitespaceOn(string, sb);
-		assertEquals(expectedString, sb.toString());
-	}
-
-	// ********** common prefix **********
-
-	public void testCommonPrefixLength() {
-		assertEquals(3, StringTools.commonPrefixLength("fooZZZ", "fooBBB"));
-		assertEquals(3, StringTools.commonPrefixLength("foo", "fooBBB"));
-		assertEquals(3, StringTools.commonPrefixLength("fooZZZ", "foo"));
-		assertEquals(3, StringTools.commonPrefixLength("foo", "foo"));
-	}
-
-	public void testCommonPrefixLengthMax() {
-		assertEquals(2, StringTools.commonPrefixLength("fooZZZ", "fooBBB", 2));
-		assertEquals(2, StringTools.commonPrefixLength("foo", "fooBBB", 2));
-		assertEquals(2, StringTools.commonPrefixLength("fooZZZ", "foo", 2));
-		assertEquals(2, StringTools.commonPrefixLength("foo", "foo", 2));
-	}
-
-	// ********** capitalization **********
-
-	public void testCapitalizeCharArray() {
-		this.verifyCapitalizeCharArray("Oracle", new char[] { 'O', 'r', 'a', 'c', 'l', 'e' });
-		this.verifyCapitalizeCharArray("Oracle", new char[] { 'o', 'r', 'a', 'c', 'l', 'e' });
-		this.verifyCapitalizeCharArray("   ", new char[] { ' ', ' ', ' ' });
-		this.verifyCapitalizeCharArray("ORACLE", new char[] { 'O', 'R', 'A', 'C', 'L', 'E' });
-		this.verifyCapitalizeCharArray("", new char[0]);
-		this.verifyCapitalizeCharArray("A", new char[] { 'a' });
-		this.verifyCapitalizeCharArray("\u00C9cole", new char[] { '\u00E9', 'c', 'o', 'l', 'e' });
-	}
-
-	private void verifyCapitalizeCharArray(String expected, char[] string) {
-		assertEquals(expected, StringTools.capitalize(string));
-	}
-
-	public void testCapitalizeString() {
-		this.verifyCapitalizeString("Oracle", "Oracle");
-		this.verifyCapitalizeString("Oracle", "oracle");
-		this.verifyCapitalizeString("   ", "   ");
-		this.verifyCapitalizeString("ORACLE", "ORACLE");
-		this.verifyCapitalizeString("", "");
-		this.verifyCapitalizeString("A", "a");
-		this.verifyCapitalizeString("\u00C9cole", "\u00E9cole"); // �cole->�COLE
-	}
-
-	private void verifyCapitalizeString(String expected, String string) {
-		assertEquals(expected, StringTools.capitalize(string));
-	}
-
-	public void testCapitalizeOnCharArrayStringBuffer() {
-		this.verifyCapitalizeOnCharArrayStringBuffer("Oracle", new char[] { 'O', 'r', 'a', 'c', 'l', 'e' });
-		this.verifyCapitalizeOnCharArrayStringBuffer("Oracle", new char[] { 'o', 'r', 'a', 'c', 'l', 'e' });
-		this.verifyCapitalizeOnCharArrayStringBuffer("   ", new char[] { ' ', ' ', ' ' });
-		this.verifyCapitalizeOnCharArrayStringBuffer("ORACLE", new char[] { 'O', 'R', 'A', 'C', 'L', 'E' });
-		this.verifyCapitalizeOnCharArrayStringBuffer("", new char[0]);
-		this.verifyCapitalizeOnCharArrayStringBuffer("A", new char[] { 'a' });
-		this.verifyCapitalizeOnCharArrayStringBuffer("\u00C9cole", new char[] { '\u00E9', 'c', 'o', 'l', 'e' });
-	}
-
-	private void verifyCapitalizeOnCharArrayStringBuffer(String expected, char[] string) {
-		StringBuffer sb = new StringBuffer();
-		StringTools.capitalizeOn(string, sb);
-		assertEquals(expected, sb.toString());
-	}
-
-	public void testCapitalizeOnCharArrayStringBuilder() {
-		this.verifyCapitalizeOnCharArrayStringBuilder("Oracle", new char[] { 'O', 'r', 'a', 'c', 'l', 'e' });
-		this.verifyCapitalizeOnCharArrayStringBuilder("Oracle", new char[] { 'o', 'r', 'a', 'c', 'l', 'e' });
-		this.verifyCapitalizeOnCharArrayStringBuilder("   ", new char[] { ' ', ' ', ' ' });
-		this.verifyCapitalizeOnCharArrayStringBuilder("ORACLE", new char[] { 'O', 'R', 'A', 'C', 'L', 'E' });
-		this.verifyCapitalizeOnCharArrayStringBuilder("", new char[0]);
-		this.verifyCapitalizeOnCharArrayStringBuilder("A", new char[] { 'a' });
-		this.verifyCapitalizeOnCharArrayStringBuilder("\u00C9cole", new char[] { '\u00E9', 'c', 'o', 'l', 'e' });
-	}
-
-	private void verifyCapitalizeOnCharArrayStringBuilder(String expected, char[] string) {
-		StringBuilder sb = new StringBuilder();
-		StringTools.capitalizeOn(string, sb);
-		assertEquals(expected, sb.toString());
-	}
-
-	public void testCapitalizeOnStringStringBuffer() {
-		this.verifyCapitalizeOnStringStringBuffer("Oracle", "Oracle");
-		this.verifyCapitalizeOnStringStringBuffer("Oracle", "oracle");
-		this.verifyCapitalizeOnStringStringBuffer("   ", "   ");
-		this.verifyCapitalizeOnStringStringBuffer("ORACLE", "ORACLE");
-		this.verifyCapitalizeOnStringStringBuffer("", "");
-		this.verifyCapitalizeOnStringStringBuffer("A", "a");
-		this.verifyCapitalizeOnStringStringBuffer("\u00C9cole", "\u00E9cole"); // �cole->�COLE
-	}
-
-	private void verifyCapitalizeOnStringStringBuffer(String expected, String string) {
-		StringBuffer sb = new StringBuffer();
-		StringTools.capitalizeOn(string, sb);
-		assertEquals(expected, sb.toString());
-	}
-
-	public void testCapitalizeOnStringStringBuilder() {
-		this.verifyCapitalizeOnStringStringBuilder("Oracle", "Oracle");
-		this.verifyCapitalizeOnStringStringBuilder("Oracle", "oracle");
-		this.verifyCapitalizeOnStringStringBuilder("   ", "   ");
-		this.verifyCapitalizeOnStringStringBuilder("ORACLE", "ORACLE");
-		this.verifyCapitalizeOnStringStringBuilder("", "");
-		this.verifyCapitalizeOnStringStringBuilder("A", "a");
-		this.verifyCapitalizeOnStringStringBuilder("\u00C9cole", "\u00E9cole"); // �cole->�COLE
-	}
-
-	private void verifyCapitalizeOnStringStringBuilder(String expected, String string) {
-		StringBuilder sb = new StringBuilder();
-		StringTools.capitalizeOn(string, sb);
-		assertEquals(expected, sb.toString());
-	}
-
-	public void testCapitalizeOnCharArrayWriter() {
-		this.verifyCapitalizeOnCharArrayWriter("Oracle", new char[] { 'O', 'r', 'a', 'c', 'l', 'e' });
-		this.verifyCapitalizeOnCharArrayWriter("Oracle", new char[] { 'o', 'r', 'a', 'c', 'l', 'e' });
-		this.verifyCapitalizeOnCharArrayWriter("   ", new char[] { ' ', ' ', ' ' });
-		this.verifyCapitalizeOnCharArrayWriter("ORACLE", new char[] { 'O', 'R', 'A', 'C', 'L', 'E' });
-		this.verifyCapitalizeOnCharArrayWriter("", new char[0]);
-		this.verifyCapitalizeOnCharArrayWriter("A", new char[] { 'a' });
-		this.verifyCapitalizeOnCharArrayWriter("\u00C9cole", new char[] { '\u00E9', 'c', 'o', 'l', 'e' });
-	}
-
-	private void verifyCapitalizeOnCharArrayWriter(String expected, char[] string) {
-		Writer writer = new StringWriter();
-		StringTools.capitalizeOn(string, writer);
-		assertEquals(expected, writer.toString());
-	}
-
-	public void testCapitalizeOnStringWriter() {
-		this.verifyCapitalizeOnStringWriter("Oracle", "Oracle");
-		this.verifyCapitalizeOnStringWriter("Oracle", "oracle");
-		this.verifyCapitalizeOnStringWriter("   ", "   ");
-		this.verifyCapitalizeOnStringWriter("ORACLE", "ORACLE");
-		this.verifyCapitalizeOnStringWriter("", "");
-		this.verifyCapitalizeOnStringWriter("A", "a");
-		this.verifyCapitalizeOnStringWriter("\u00C9cole", "\u00E9cole"); // �cole->�COLE
-	}
-
-	private void verifyCapitalizeOnStringWriter(String expected, String string) {
-		Writer writer = new StringWriter();
-		StringTools.capitalizeOn(string, writer);
-		assertEquals(expected, writer.toString());
-	}
-
-	public void testUnapitalizeCharArray() {
-		this.verifyUncapitalizeCharArray("oracle", new char[] { 'O', 'r', 'a', 'c', 'l', 'e' });
-		this.verifyUncapitalizeCharArray("oracle", new char[] { 'o', 'r', 'a', 'c', 'l', 'e' });
-		this.verifyUncapitalizeCharArray("   ", new char[] { ' ', ' ', ' ' });
-		this.verifyUncapitalizeCharArray("ORACLE", new char[] { 'O', 'R', 'A', 'C', 'L', 'E' });
-		this.verifyUncapitalizeCharArray("", new char[0]);
-		this.verifyUncapitalizeCharArray("a", new char[] { 'A' });
-		this.verifyUncapitalizeCharArray("\u00E9cole", new char[] { '\u00C9', 'c', 'o', 'l', 'e' });
-	}
-
-	private void verifyUncapitalizeCharArray(String expected, char[] string) {
-		assertEquals(expected, StringTools.uncapitalize(string));
-	}
-
-	public void testUncapitalizeString() {
-		this.verifyUncapitalizeString("oracle", "Oracle");
-		this.verifyUncapitalizeString("oracle", "oracle");
-		this.verifyUncapitalizeString("   ", "   ");
-		this.verifyUncapitalizeString("ORACLE", "ORACLE");
-		this.verifyUncapitalizeString("", "");
-		this.verifyUncapitalizeString("a", "A");
-		this.verifyUncapitalizeString("\u00E9cole", "\u00C9cole"); // �cole->�COLE
-	}
-
-	private void verifyUncapitalizeString(String expected, String string) {
-		assertEquals(expected, StringTools.uncapitalize(string));
-	}
-
-	public void testUncapitalizeOnCharArrayStringBuffer() {
-		this.verifyUncapitalizeOnCharArrayStringBuffer("oracle", new char[] { 'O', 'r', 'a', 'c', 'l', 'e' });
-		this.verifyUncapitalizeOnCharArrayStringBuffer("oracle", new char[] { 'o', 'r', 'a', 'c', 'l', 'e' });
-		this.verifyUncapitalizeOnCharArrayStringBuffer("   ", new char[] { ' ', ' ', ' ' });
-		this.verifyUncapitalizeOnCharArrayStringBuffer("ORACLE", new char[] { 'O', 'R', 'A', 'C', 'L', 'E' });
-		this.verifyUncapitalizeOnCharArrayStringBuffer("", new char[0]);
-		this.verifyUncapitalizeOnCharArrayStringBuffer("a", new char[] { 'A' });
-		this.verifyUncapitalizeOnCharArrayStringBuffer("\u00E9cole", new char[] { '\u00C9', 'c', 'o', 'l', 'e' });
-	}
-
-	private void verifyUncapitalizeOnCharArrayStringBuffer(String expected, char[] string) {
-		StringBuffer sb = new StringBuffer();
-		StringTools.uncapitalizeOn(string, sb);
-		assertEquals(expected, sb.toString());
-	}
-
-	public void testUncapitalizeOnCharArrayStringBuilder() {
-		this.verifyUncapitalizeOnCharArrayStringBuilder("oracle", new char[] { 'O', 'r', 'a', 'c', 'l', 'e' });
-		this.verifyUncapitalizeOnCharArrayStringBuilder("oracle", new char[] { 'o', 'r', 'a', 'c', 'l', 'e' });
-		this.verifyUncapitalizeOnCharArrayStringBuilder("   ", new char[] { ' ', ' ', ' ' });
-		this.verifyUncapitalizeOnCharArrayStringBuilder("ORACLE", new char[] { 'O', 'R', 'A', 'C', 'L', 'E' });
-		this.verifyUncapitalizeOnCharArrayStringBuilder("", new char[0]);
-		this.verifyUncapitalizeOnCharArrayStringBuilder("a", new char[] { 'A' });
-		this.verifyUncapitalizeOnCharArrayStringBuilder("\u00E9cole", new char[] { '\u00C9', 'c', 'o', 'l', 'e' });
-	}
-
-	private void verifyUncapitalizeOnCharArrayStringBuilder(String expected, char[] string) {
-		StringBuilder sb = new StringBuilder();
-		StringTools.uncapitalizeOn(string, sb);
-		assertEquals(expected, sb.toString());
-	}
-
-	public void testUncapitalizeOnStringStringBuffer() {
-		this.verifyUncapitalizeOnStringStringBuffer("oracle", "Oracle");
-		this.verifyUncapitalizeOnStringStringBuffer("oracle", "oracle");
-		this.verifyUncapitalizeOnStringStringBuffer("   ", "   ");
-		this.verifyUncapitalizeOnStringStringBuffer("ORACLE", "ORACLE");
-		this.verifyUncapitalizeOnStringStringBuffer("", "");
-		this.verifyUncapitalizeOnStringStringBuffer("a", "A");
-		this.verifyUncapitalizeOnStringStringBuffer("\u00E9cole", "\u00C9cole"); // �cole->�COLE
-	}
-
-	private void verifyUncapitalizeOnStringStringBuffer(String expected, String string) {
-		StringBuffer sb = new StringBuffer();
-		StringTools.uncapitalizeOn(string, sb);
-		assertEquals(expected, sb.toString());
-	}
-
-	public void testUncapitalizeOnStringStringBuilder() {
-		this.verifyUncapitalizeOnStringStringBuilder("oracle", "Oracle");
-		this.verifyUncapitalizeOnStringStringBuilder("oracle", "oracle");
-		this.verifyUncapitalizeOnStringStringBuilder("   ", "   ");
-		this.verifyUncapitalizeOnStringStringBuilder("ORACLE", "ORACLE");
-		this.verifyUncapitalizeOnStringStringBuilder("", "");
-		this.verifyUncapitalizeOnStringStringBuilder("a", "A");
-		this.verifyUncapitalizeOnStringStringBuilder("\u00E9cole", "\u00C9cole"); // �cole->�COLE
-	}
-
-	private void verifyUncapitalizeOnStringStringBuilder(String expected, String string) {
-		StringBuilder sb = new StringBuilder();
-		StringTools.uncapitalizeOn(string, sb);
-		assertEquals(expected, sb.toString());
-	}
-
-	public void testUncapitalizeOnCharArrayWriter() {
-		this.verifyUncapitalizeOnCharArrayWriter("oracle", new char[] { 'O', 'r', 'a', 'c', 'l', 'e' });
-		this.verifyUncapitalizeOnCharArrayWriter("oracle", new char[] { 'o', 'r', 'a', 'c', 'l', 'e' });
-		this.verifyUncapitalizeOnCharArrayWriter("   ", new char[] { ' ', ' ', ' ' });
-		this.verifyUncapitalizeOnCharArrayWriter("ORACLE", new char[] { 'O', 'R', 'A', 'C', 'L', 'E' });
-		this.verifyUncapitalizeOnCharArrayWriter("", new char[0]);
-		this.verifyUncapitalizeOnCharArrayWriter("a", new char[] { 'A' });
-		this.verifyUncapitalizeOnCharArrayWriter("\u00E9cole", new char[] { '\u00C9', 'c', 'o', 'l', 'e' });
-	}
-
-	private void verifyUncapitalizeOnCharArrayWriter(String expected, char[] string) {
-		Writer writer = new StringWriter();
-		StringTools.uncapitalizeOn(string, writer);
-		assertEquals(expected, writer.toString());
-	}
-
-	public void testUncapitalizeOnStringWriter() {
-		this.verifyUncapitalizeOnStringWriter("oracle", "Oracle");
-		this.verifyUncapitalizeOnStringWriter("oracle", "oracle");
-		this.verifyUncapitalizeOnStringWriter("   ", "   ");
-		this.verifyUncapitalizeOnStringWriter("ORACLE", "ORACLE");
-		this.verifyUncapitalizeOnStringWriter("", "");
-		this.verifyUncapitalizeOnStringWriter("a", "A");
-		this.verifyUncapitalizeOnStringWriter("\u00E9cole", "\u00C9cole"); // �cole->�COLE
-	}
-
-	private void verifyUncapitalizeOnStringWriter(String expected, String string) {
-		Writer writer = new StringWriter();
-		StringTools.uncapitalizeOn(string, writer);
-		assertEquals(expected, writer.toString());
-	}
-
-	// ********** queries **********
-
-	public void testStringIsEmptyString() {
-		assertTrue(StringTools.stringIsEmpty((String) null));
-		assertTrue(StringTools.stringIsEmpty(""));
-		assertTrue(StringTools.stringIsEmpty("      "));
-		assertTrue(StringTools.stringIsEmpty("      \t\t   "));
-		assertTrue(StringTools.stringIsEmpty("      \t\t   " + StringTools.CR));
-	}
-
-	public void testStringIsEmptyCharArray() {
-		assertTrue(StringTools.stringIsEmpty((char[]) null));
-		this.verifyStringIsEmptyCharArray("");
-		this.verifyStringIsEmptyCharArray("      \t\t   ");
-		this.verifyStringIsEmptyCharArray("      ");
-		this.verifyStringIsEmptyCharArray("      \t\t   " + StringTools.CR);
-	}
-
-	private void verifyStringIsEmptyCharArray(String string) {
-		assertTrue(StringTools.stringIsEmpty(string.toCharArray()));
-	}
-	
-	public void testStringsAreEqualStringString() {
-		assertTrue(StringTools.stringsAreEqual((String) null, (String) null));
-		assertFalse(StringTools.stringsAreEqual(null, "asdf"));
-		assertFalse(StringTools.stringsAreEqual("asdf", null));
-		assertTrue(StringTools.stringsAreEqual("asdf", "asdf"));
-		assertFalse(StringTools.stringsAreEqual("asdf", "ASDF"));
-	}
-	
-	public void testStringsAreEqualCharArrayCharArray() {
-		assertTrue(StringTools.stringsAreEqual((char[]) null, (char[]) null));
-		assertFalse(StringTools.stringsAreEqual((char[]) null, "asdf".toCharArray()));
-		assertFalse(StringTools.stringsAreEqual("asdf".toCharArray(), (char[]) null));
-		assertTrue(StringTools.stringsAreEqual("asdf".toCharArray(), "asdf".toCharArray()));
-		assertFalse(StringTools.stringsAreEqual("asdf".toCharArray(), "ASDF".toCharArray()));
-	}
-	
-	public void testStringsAreEqualIgnoreCaseStringString() {
-		assertTrue(StringTools.stringsAreEqualIgnoreCase((String) null, (String) null));
-		assertFalse(StringTools.stringsAreEqualIgnoreCase(null, "asdf"));
-		assertFalse(StringTools.stringsAreEqualIgnoreCase("asdf", null));
-		assertTrue(StringTools.stringsAreEqualIgnoreCase("asdf", "asdf"));
-		assertTrue(StringTools.stringsAreEqualIgnoreCase("asdf", "ASDF"));
-	}
-
-	public void testStringsAreEqualIgnoreCaseCharArrayCharArray() {
-		assertTrue(StringTools.stringsAreEqualIgnoreCase((char[]) null, (char[]) null));
-		assertFalse(StringTools.stringsAreEqualIgnoreCase((char[]) null, "asdf".toCharArray()));
-		assertFalse(StringTools.stringsAreEqualIgnoreCase("asdf".toCharArray(), (char[]) null));
-		assertTrue(StringTools.stringsAreEqualIgnoreCase("asdf".toCharArray(), "asdf".toCharArray()));
-		assertTrue(StringTools.stringsAreEqualIgnoreCase("asdf".toCharArray(), "ASDF".toCharArray()));
-	}
-
-	public void testStringStartsWithIgnoreCaseStringString() {
-		assertTrue(StringTools.stringStartsWithIgnoreCase("asdf", "as"));
-		assertTrue(StringTools.stringStartsWithIgnoreCase("asdf", "aS"));
-		assertTrue(StringTools.stringStartsWithIgnoreCase("asdf", ""));
-		assertTrue(StringTools.stringStartsWithIgnoreCase("asdf", "A"));
-
-		assertFalse(StringTools.stringStartsWithIgnoreCase("asdf", "bsdf"));
-		assertFalse(StringTools.stringStartsWithIgnoreCase("asdf", "g"));
-		assertFalse(StringTools.stringStartsWithIgnoreCase("asdf", "asdg"));
-		assertFalse(StringTools.stringStartsWithIgnoreCase("asdf", "asdfg"));
-		assertFalse(StringTools.stringStartsWithIgnoreCase("asdf", "asdfgggggg"));
-	}
-
-	public void testStringStartsWithIgnoreCaseCharArrayCharArray() {
-		assertTrue(StringTools.stringStartsWithIgnoreCase("asdf".toCharArray(), "as".toCharArray()));
-		assertTrue(StringTools.stringStartsWithIgnoreCase("asdf".toCharArray(), "aS".toCharArray()));
-		assertTrue(StringTools.stringStartsWithIgnoreCase("asdf".toCharArray(), "".toCharArray()));
-		assertTrue(StringTools.stringStartsWithIgnoreCase("asdf".toCharArray(), "A".toCharArray()));
-		assertTrue(StringTools.stringStartsWithIgnoreCase("asdf".toCharArray(), "ASDF".toCharArray()));
-		assertTrue(StringTools.stringStartsWithIgnoreCase("asdf".toCharArray(), "asdf".toCharArray()));
-
-		assertFalse(StringTools.stringStartsWithIgnoreCase("asdf".toCharArray(), "bsdf".toCharArray()));
-		assertFalse(StringTools.stringStartsWithIgnoreCase("asdf".toCharArray(), "g".toCharArray()));
-		assertFalse(StringTools.stringStartsWithIgnoreCase("asdf".toCharArray(), "asdg".toCharArray()));
-		assertFalse(StringTools.stringStartsWithIgnoreCase("asdf".toCharArray(), "asdfg".toCharArray()));
-		assertFalse(StringTools.stringStartsWithIgnoreCase("asdf".toCharArray(), "asdfgggggg".toCharArray()));
-	}
-
-	public void testCharactersAreEqualIgnoreCase() {
-		assertTrue(StringTools.charactersAreEqualIgnoreCase('a', 'a'));
-		assertTrue(StringTools.charactersAreEqualIgnoreCase('a', 'A'));
-		assertTrue(StringTools.charactersAreEqualIgnoreCase('A', 'a'));
-		assertTrue(StringTools.charactersAreEqualIgnoreCase('A', 'A'));
-		
-		assertFalse(StringTools.charactersAreEqualIgnoreCase('a', 'b'));
-		assertFalse(StringTools.charactersAreEqualIgnoreCase('A', 'b'));
-	}
-
-	public void testStringIsUppercase() {
-		this.verifyStringIsUppercase("FOO");
-		this.verifyStringIsUppercase("FOO2");
-		this.verifyStringIsUppercase("F O O");
-		this.denyStringIsUppercase("Foo");
-		this.denyStringIsUppercase("");
-	}
-
-	private void verifyStringIsUppercase(String s) {
-		assertTrue(StringTools.stringIsUppercase(s));
-		assertTrue(StringTools.stringIsUppercase(s.toCharArray()));
-	}
-
-	private void denyStringIsUppercase(String s) {
-		assertFalse(StringTools.stringIsUppercase(s));
-		assertFalse(StringTools.stringIsUppercase(s.toCharArray()));
-	}
-
-	public void testStringIsLowercase() {
-		this.verifyStringIsLowercase("foo");
-		this.verifyStringIsLowercase("foo2");
-		this.verifyStringIsLowercase("f o o");
-		this.denyStringIsLowercase("Foo");
-		this.denyStringIsLowercase("");
-	}
-
-	private void verifyStringIsLowercase(String s) {
-		assertTrue(StringTools.stringIsLowercase(s));
-		assertTrue(StringTools.stringIsLowercase(s.toCharArray()));
-	}
-
-	private void denyStringIsLowercase(String s) {
-		assertFalse(StringTools.stringIsLowercase(s));
-		assertFalse(StringTools.stringIsLowercase(s.toCharArray()));
-	}
-
-	// ********** convert camel-case to all-caps **********
-
-	public void testConvertCamelCaseToAllCaps() {
-		assertEquals("TEST", StringTools.convertCamelCaseToAllCaps("test"));
-		assertEquals("TEST", StringTools.convertCamelCaseToAllCaps("TEST"));
-		assertEquals("TEST_TEST", StringTools.convertCamelCaseToAllCaps("testTest"));
-		assertEquals("TEST_TEST", StringTools.convertCamelCaseToAllCaps("TestTest"));
-		assertEquals("TEST_TEST_TEST", StringTools.convertCamelCaseToAllCaps("testTESTTest"));
-		assertEquals("TEST_TEST_TEST", StringTools.convertCamelCaseToAllCaps("TestTESTTest"));
-		assertEquals("TEST_TEST_TEST_T", StringTools.convertCamelCaseToAllCaps("TestTESTTestT"));
-	}
-
-	public void testConvertCamelCaseToAllCapsOnWriter() {
-		this.verifyConvertCamelCaseToAllCapsOnWriter("TEST", "test");
-		this.verifyConvertCamelCaseToAllCapsOnWriter("TEST", "TEST");
-		this.verifyConvertCamelCaseToAllCapsOnWriter("TEST_TEST", "testTest");
-		this.verifyConvertCamelCaseToAllCapsOnWriter("TEST_TEST", "TestTest");
-		this.verifyConvertCamelCaseToAllCapsOnWriter("TEST_TEST_TEST", "testTESTTest");
-		this.verifyConvertCamelCaseToAllCapsOnWriter("TEST_TEST_TEST", "TestTESTTest");
-		this.verifyConvertCamelCaseToAllCapsOnWriter("TEST_TEST_TEST_T", "TestTESTTestT");
-	}
-
-	private void verifyConvertCamelCaseToAllCapsOnWriter(String expected, String string) {
-		Writer writer = new StringWriter();
-		StringTools.convertCamelCaseToAllCapsOn(string, writer);
-		assertEquals(expected, writer.toString());
-	}
-
-	public void testConvertCamelCaseToAllCapsOnStringBuffer() {
-		this.verifyConvertCamelCaseToAllCapsOnStringBuffer("TEST", "test");
-		this.verifyConvertCamelCaseToAllCapsOnStringBuffer("TEST", "TEST");
-		this.verifyConvertCamelCaseToAllCapsOnStringBuffer("TEST_TEST", "testTest");
-		this.verifyConvertCamelCaseToAllCapsOnStringBuffer("TEST_TEST", "TestTest");
-		this.verifyConvertCamelCaseToAllCapsOnStringBuffer("TEST_TEST_TEST", "testTESTTest");
-		this.verifyConvertCamelCaseToAllCapsOnStringBuffer("TEST_TEST_TEST", "TestTESTTest");
-		this.verifyConvertCamelCaseToAllCapsOnStringBuffer("TEST_TEST_TEST_T", "TestTESTTestT");
-	}
-
-	private void verifyConvertCamelCaseToAllCapsOnStringBuffer(String expected, String string) {
-		StringBuffer sb = new StringBuffer();
-		StringTools.convertCamelCaseToAllCapsOn(string, sb);
-		assertEquals(expected, sb.toString());
-	}
-
-	public void testConvertCamelCaseToAllCapsOnStringBuilder() {
-		this.verifyConvertCamelCaseToAllCapsOnStringBuilder("TEST", "test");
-		this.verifyConvertCamelCaseToAllCapsOnStringBuilder("TEST", "TEST");
-		this.verifyConvertCamelCaseToAllCapsOnStringBuilder("TEST_TEST", "testTest");
-		this.verifyConvertCamelCaseToAllCapsOnStringBuilder("TEST_TEST", "TestTest");
-		this.verifyConvertCamelCaseToAllCapsOnStringBuilder("TEST_TEST_TEST", "testTESTTest");
-		this.verifyConvertCamelCaseToAllCapsOnStringBuilder("TEST_TEST_TEST", "TestTESTTest");
-		this.verifyConvertCamelCaseToAllCapsOnStringBuilder("TEST_TEST_TEST_T", "TestTESTTestT");
-	}
-
-	private void verifyConvertCamelCaseToAllCapsOnStringBuilder(String expected, String string) {
-		StringBuilder sb = new StringBuilder();
-		StringTools.convertCamelCaseToAllCapsOn(string, sb);
-		assertEquals(expected, sb.toString());
-	}
-
-	public void testConvertCamelCaseToAllCapsMaxLength() {
-		assertEquals("TEST", StringTools.convertCamelCaseToAllCaps("test", 44));
-		assertEquals("TEST", StringTools.convertCamelCaseToAllCaps("test", 4));
-		assertEquals("TES", StringTools.convertCamelCaseToAllCaps("test", 3));
-		assertEquals("TEST", StringTools.convertCamelCaseToAllCaps("TEST", 5));
-		assertEquals("TE", StringTools.convertCamelCaseToAllCaps("TEST", 2));
-		assertEquals("TEST_TEST", StringTools.convertCamelCaseToAllCaps("testTest", 9));
-		assertEquals("TEST_TES", StringTools.convertCamelCaseToAllCaps("testTest", 8));
-		assertEquals("TEST_T", StringTools.convertCamelCaseToAllCaps("testTest", 6));
-		assertEquals("TEST_", StringTools.convertCamelCaseToAllCaps("testTest", 5));
-		assertEquals("TEST", StringTools.convertCamelCaseToAllCaps("testTest", 4));
-		assertEquals("TEST_TEST", StringTools.convertCamelCaseToAllCaps("TestTest", 9));
-		assertEquals("TEST_TEST", StringTools.convertCamelCaseToAllCaps("TestTest", 1100));
-		assertEquals("TEST_TEST_", StringTools.convertCamelCaseToAllCaps("testTESTTest", 10));
-		assertEquals("TEST_TEST_TEST", StringTools.convertCamelCaseToAllCaps("TestTESTTest", 14));
-		assertEquals("TEST_TEST_TEST_T", StringTools.convertCamelCaseToAllCaps("TestTESTTestT", 16));
-		assertEquals("TEST_TEST_TEST_", StringTools.convertCamelCaseToAllCaps("TestTESTTestT", 15));
-	}
-
-	public void testConvertCamelCaseToAllCapsMaxLengthOnWriter() {
-		this.verifyConvertCamelCaseToAllCapsMaxLengthOnWriter("TEST", "test", 44);
-		this.verifyConvertCamelCaseToAllCapsMaxLengthOnWriter("TEST", "test", 4);
-		this.verifyConvertCamelCaseToAllCapsMaxLengthOnWriter("TES", "test", 3);
-		this.verifyConvertCamelCaseToAllCapsMaxLengthOnWriter("TEST", "TEST", 5);
-		this.verifyConvertCamelCaseToAllCapsMaxLengthOnWriter("TE", "TEST", 2);
-		this.verifyConvertCamelCaseToAllCapsMaxLengthOnWriter("TEST_TEST", "testTest", 9);
-		this.verifyConvertCamelCaseToAllCapsMaxLengthOnWriter("TEST_TES", "testTest", 8);
-		this.verifyConvertCamelCaseToAllCapsMaxLengthOnWriter("TEST_T", "testTest", 6);
-		this.verifyConvertCamelCaseToAllCapsMaxLengthOnWriter("TEST_", "testTest", 5);
-		this.verifyConvertCamelCaseToAllCapsMaxLengthOnWriter("TEST", "testTest", 4);
-		this.verifyConvertCamelCaseToAllCapsMaxLengthOnWriter("TEST_TEST", "TestTest", 9);
-		this.verifyConvertCamelCaseToAllCapsMaxLengthOnWriter("TEST_TEST", "TestTest", 1100);
-		this.verifyConvertCamelCaseToAllCapsMaxLengthOnWriter("TEST_TEST_", "testTESTTest", 10);
-		this.verifyConvertCamelCaseToAllCapsMaxLengthOnWriter("TEST_TEST_TEST", "TestTESTTest", 14);
-		this.verifyConvertCamelCaseToAllCapsMaxLengthOnWriter("TEST_TEST_TEST_T", "TestTESTTestT", 16);
-		this.verifyConvertCamelCaseToAllCapsMaxLengthOnWriter("TEST_TEST_TEST_", "TestTESTTestT", 15);
-	}
-
-	private void verifyConvertCamelCaseToAllCapsMaxLengthOnWriter(String expected, String string, int max) {
-		Writer writer = new StringWriter();
-		StringTools.convertCamelCaseToAllCapsOn(string, max, writer);
-		assertEquals(expected, writer.toString());
-	}
-
-	public void testConvertCamelCaseToAllCapsMaxLengthOnStringBuffer() {
-		this.verifyConvertCamelCaseToAllCapsMaxLengthOnStringBuffer("TEST", "test", 44);
-		this.verifyConvertCamelCaseToAllCapsMaxLengthOnStringBuffer("TEST", "test", 4);
-		this.verifyConvertCamelCaseToAllCapsMaxLengthOnStringBuffer("TES", "test", 3);
-		this.verifyConvertCamelCaseToAllCapsMaxLengthOnStringBuffer("TEST", "TEST", 5);
-		this.verifyConvertCamelCaseToAllCapsMaxLengthOnStringBuffer("TE", "TEST", 2);
-		this.verifyConvertCamelCaseToAllCapsMaxLengthOnStringBuffer("TEST_TEST", "testTest", 9);
-		this.verifyConvertCamelCaseToAllCapsMaxLengthOnStringBuffer("TEST_TES", "testTest", 8);
-		this.verifyConvertCamelCaseToAllCapsMaxLengthOnStringBuffer("TEST_T", "testTest", 6);
-		this.verifyConvertCamelCaseToAllCapsMaxLengthOnStringBuffer("TEST_", "testTest", 5);
-		this.verifyConvertCamelCaseToAllCapsMaxLengthOnStringBuffer("TEST", "testTest", 4);
-		this.verifyConvertCamelCaseToAllCapsMaxLengthOnStringBuffer("TEST_TEST", "TestTest", 9);
-		this.verifyConvertCamelCaseToAllCapsMaxLengthOnStringBuffer("TEST_TEST", "TestTest", 1100);
-		this.verifyConvertCamelCaseToAllCapsMaxLengthOnStringBuffer("TEST_TEST_", "testTESTTest", 10);
-		this.verifyConvertCamelCaseToAllCapsMaxLengthOnStringBuffer("TEST_TEST_TEST", "TestTESTTest", 14);
-		this.verifyConvertCamelCaseToAllCapsMaxLengthOnStringBuffer("TEST_TEST_TEST_T", "TestTESTTestT", 16);
-		this.verifyConvertCamelCaseToAllCapsMaxLengthOnStringBuffer("TEST_TEST_TEST_", "TestTESTTestT", 15);
-	}
-
-	private void verifyConvertCamelCaseToAllCapsMaxLengthOnStringBuffer(String expected, String string, int max) {
-		StringBuffer sb = new StringBuffer();
-		StringTools.convertCamelCaseToAllCapsOn(string, max, sb);
-		assertEquals(expected, sb.toString());
-	}
-
-	// ********** convert underscores to all-caps **********
-
-	public void testConvertUnderscoresToCamelCase() {
-		assertEquals("test", StringTools.convertUnderscoresToCamelCase("TEST", false));
-		assertEquals("test", StringTools.convertUnderscoresToCamelCase("TEST_", false));
-		assertEquals("test", StringTools.convertUnderscoresToCamelCase("TEST____", false));
-		assertEquals("Test", StringTools.convertUnderscoresToCamelCase("TEST", true));
-		assertEquals("test", StringTools.convertUnderscoresToCamelCase("TeST", false));
-		assertEquals("testTest", StringTools.convertUnderscoresToCamelCase("TEST_TEST", false));
-		assertEquals("testTest", StringTools.convertUnderscoresToCamelCase("TEST___TEST", false));
-		assertEquals("TestTest", StringTools.convertUnderscoresToCamelCase("TEST_TEST", true));
-		assertEquals("testTestTest", StringTools.convertUnderscoresToCamelCase("TEST_TEST_TEST", false));
-		assertEquals("TestTestTest", StringTools.convertUnderscoresToCamelCase("TEST_TEST_TEST", true));
-		assertEquals("testTestTestT", StringTools.convertUnderscoresToCamelCase("TEST_TEST_TEST_T", false));
-		assertEquals("testTestTestT", StringTools.convertUnderscoresToCamelCase("_TEST_TEST_TEST_T", false));
-		assertEquals("testTestTestT", StringTools.convertUnderscoresToCamelCase("__TEST_TEST_TEST_T", false));
-		assertEquals("TestTestTestT", StringTools.convertUnderscoresToCamelCase("TEST_TEST_TEST_T", true));
-		assertEquals("TestTestTestT", StringTools.convertUnderscoresToCamelCase("_TEST_TEST_TEST_T", true));
-		assertEquals("TestTestTestT", StringTools.convertUnderscoresToCamelCase("__TEST_TEST_TEST_T", true));
-	}
-
-	public void testConvertUnderscoresToCamelCaseLowercase() {
-		assertEquals("test", StringTools.convertUnderscoresToCamelCase("test", false));
-		assertEquals("test", StringTools.convertUnderscoresToCamelCase("test_", false));
-		assertEquals("test", StringTools.convertUnderscoresToCamelCase("test____", false));
-		assertEquals("Test", StringTools.convertUnderscoresToCamelCase("test", true));
-		assertEquals("test", StringTools.convertUnderscoresToCamelCase("test", false));
-		assertEquals("testTest", StringTools.convertUnderscoresToCamelCase("test_test", false));
-		assertEquals("testTest", StringTools.convertUnderscoresToCamelCase("test___test", false));
-		assertEquals("TestTest", StringTools.convertUnderscoresToCamelCase("test_test", true));
-		assertEquals("testTestTest", StringTools.convertUnderscoresToCamelCase("test_test_test", false));
-		assertEquals("TestTestTest", StringTools.convertUnderscoresToCamelCase("test_test_test", true));
-		assertEquals("testTestTestT", StringTools.convertUnderscoresToCamelCase("test_test_test_t", false));
-		assertEquals("testTestTestT", StringTools.convertUnderscoresToCamelCase("_test_test_test_t", false));
-		assertEquals("testTestTestT", StringTools.convertUnderscoresToCamelCase("__test_test_test_t", false));
-		assertEquals("TestTestTestT", StringTools.convertUnderscoresToCamelCase("test_test_test_t", true));
-		assertEquals("TestTestTestT", StringTools.convertUnderscoresToCamelCase("_test_test_test_t", true));
-		assertEquals("TestTestTestT", StringTools.convertUnderscoresToCamelCase("__test_test_test_t", true));
-	}
-
-	public void testConvertUnderscoresToCamelCaseOnWriter() {
-		this.verifyConvertUnderscoresToCamelCaseOnWriter("test", "TEST", false);
-		this.verifyConvertUnderscoresToCamelCaseOnWriter("test", "TEST_", false);
-		this.verifyConvertUnderscoresToCamelCaseOnWriter("test", "TEST____", false);
-		this.verifyConvertUnderscoresToCamelCaseOnWriter("Test", "TEST", true);
-		this.verifyConvertUnderscoresToCamelCaseOnWriter("test", "TeST", false);
-		this.verifyConvertUnderscoresToCamelCaseOnWriter("testTest", "TEST_TEST", false);
-		this.verifyConvertUnderscoresToCamelCaseOnWriter("testTest", "TEST___TEST", false);
-		this.verifyConvertUnderscoresToCamelCaseOnWriter("TestTest", "TEST_TEST", true);
-		this.verifyConvertUnderscoresToCamelCaseOnWriter("testTestTest", "TEST_TEST_TEST", false);
-		this.verifyConvertUnderscoresToCamelCaseOnWriter("TestTestTest", "TEST_TEST_TEST", true);
-		this.verifyConvertUnderscoresToCamelCaseOnWriter("testTestTestT", "TEST_TEST_TEST_T", false);
-		this.verifyConvertUnderscoresToCamelCaseOnWriter("testTestTestT", "_TEST_TEST_TEST_T", false);
-		this.verifyConvertUnderscoresToCamelCaseOnWriter("testTestTestT", "__TEST_TEST_TEST_T", false);
-		this.verifyConvertUnderscoresToCamelCaseOnWriter("TestTestTestT", "TEST_TEST_TEST_T", true);
-		this.verifyConvertUnderscoresToCamelCaseOnWriter("TestTestTestT", "_TEST_TEST_TEST_T", true);
-		this.verifyConvertUnderscoresToCamelCaseOnWriter("TestTestTestT", "__TEST_TEST_TEST_T", true);
-	}
-
-	public void testConvertUnderscoresToCamelCaseOnWriterLowercase() {
-		this.verifyConvertUnderscoresToCamelCaseOnWriter("test", "test", false);
-		this.verifyConvertUnderscoresToCamelCaseOnWriter("test", "test_", false);
-		this.verifyConvertUnderscoresToCamelCaseOnWriter("test", "test____", false);
-		this.verifyConvertUnderscoresToCamelCaseOnWriter("Test", "test", true);
-		this.verifyConvertUnderscoresToCamelCaseOnWriter("test", "test", false);
-		this.verifyConvertUnderscoresToCamelCaseOnWriter("testTest", "test_test", false);
-		this.verifyConvertUnderscoresToCamelCaseOnWriter("testTest", "test___test", false);
-		this.verifyConvertUnderscoresToCamelCaseOnWriter("TestTest", "test_test", true);
-		this.verifyConvertUnderscoresToCamelCaseOnWriter("testTestTest", "test_test_test", false);
-		this.verifyConvertUnderscoresToCamelCaseOnWriter("TestTestTest", "test_test_test", true);
-		this.verifyConvertUnderscoresToCamelCaseOnWriter("testTestTestT", "test_test_test_t", false);
-		this.verifyConvertUnderscoresToCamelCaseOnWriter("testTestTestT", "_test_test_test_t", false);
-		this.verifyConvertUnderscoresToCamelCaseOnWriter("testTestTestT", "__test_test_test_t", false);
-		this.verifyConvertUnderscoresToCamelCaseOnWriter("TestTestTestT", "test_test_test_t", true);
-		this.verifyConvertUnderscoresToCamelCaseOnWriter("TestTestTestT", "_test_test_test_t", true);
-		this.verifyConvertUnderscoresToCamelCaseOnWriter("TestTestTestT", "__test_test_test_t", true);
-	}
-
-	private void verifyConvertUnderscoresToCamelCaseOnWriter(String expected, String string, boolean capitalizeFirstLetter) {
-		Writer writer = new StringWriter();
-		StringTools.convertUnderscoresToCamelCaseOn(string, capitalizeFirstLetter, writer);
-		assertEquals(expected, writer.toString());
-	}
-
-	public void testConvertUnderscoresToCamelCaseOnStringBuffer() {
-		this.verifyConvertUnderscoresToCamelCaseOnStringBuffer("test", "TEST", false);
-		this.verifyConvertUnderscoresToCamelCaseOnStringBuffer("test", "TEST_", false);
-		this.verifyConvertUnderscoresToCamelCaseOnStringBuffer("test", "TEST____", false);
-		this.verifyConvertUnderscoresToCamelCaseOnStringBuffer("Test", "TEST", true);
-		this.verifyConvertUnderscoresToCamelCaseOnStringBuffer("test", "TeST", false);
-		this.verifyConvertUnderscoresToCamelCaseOnStringBuffer("testTest", "TEST_TEST", false);
-		this.verifyConvertUnderscoresToCamelCaseOnStringBuffer("testTest", "TEST___TEST", false);
-		this.verifyConvertUnderscoresToCamelCaseOnStringBuffer("TestTest", "TEST_TEST", true);
-		this.verifyConvertUnderscoresToCamelCaseOnStringBuffer("testTestTest", "TEST_TEST_TEST", false);
-		this.verifyConvertUnderscoresToCamelCaseOnStringBuffer("TestTestTest", "TEST_TEST_TEST", true);
-		this.verifyConvertUnderscoresToCamelCaseOnStringBuffer("testTestTestT", "TEST_TEST_TEST_T", false);
-		this.verifyConvertUnderscoresToCamelCaseOnStringBuffer("testTestTestT", "_TEST_TEST_TEST_T", false);
-		this.verifyConvertUnderscoresToCamelCaseOnStringBuffer("testTestTestT", "__TEST_TEST_TEST_T", false);
-		this.verifyConvertUnderscoresToCamelCaseOnStringBuffer("TestTestTestT", "TEST_TEST_TEST_T", true);
-		this.verifyConvertUnderscoresToCamelCaseOnStringBuffer("TestTestTestT", "_TEST_TEST_TEST_T", true);
-		this.verifyConvertUnderscoresToCamelCaseOnStringBuffer("TestTestTestT", "__TEST_TEST_TEST_T", true);
-	}
-
-	public void testConvertUnderscoresToCamelCaseOnStringBufferLowercase() {
-		this.verifyConvertUnderscoresToCamelCaseOnStringBuffer("test", "test", false);
-		this.verifyConvertUnderscoresToCamelCaseOnStringBuffer("test", "test_", false);
-		this.verifyConvertUnderscoresToCamelCaseOnStringBuffer("test", "test____", false);
-		this.verifyConvertUnderscoresToCamelCaseOnStringBuffer("Test", "test", true);
-		this.verifyConvertUnderscoresToCamelCaseOnStringBuffer("test", "test", false);
-		this.verifyConvertUnderscoresToCamelCaseOnStringBuffer("testTest", "test_test", false);
-		this.verifyConvertUnderscoresToCamelCaseOnStringBuffer("testTest", "test___test", false);
-		this.verifyConvertUnderscoresToCamelCaseOnStringBuffer("TestTest", "test_test", true);
-		this.verifyConvertUnderscoresToCamelCaseOnStringBuffer("testTestTest", "test_test_test", false);
-		this.verifyConvertUnderscoresToCamelCaseOnStringBuffer("TestTestTest", "test_test_test", true);
-		this.verifyConvertUnderscoresToCamelCaseOnStringBuffer("testTestTestT", "test_test_test_t", false);
-		this.verifyConvertUnderscoresToCamelCaseOnStringBuffer("testTestTestT", "_test_test_test_t", false);
-		this.verifyConvertUnderscoresToCamelCaseOnStringBuffer("testTestTestT", "__test_test_test_t", false);
-		this.verifyConvertUnderscoresToCamelCaseOnStringBuffer("TestTestTestT", "test_test_test_t", true);
-		this.verifyConvertUnderscoresToCamelCaseOnStringBuffer("TestTestTestT", "_test_test_test_t", true);
-		this.verifyConvertUnderscoresToCamelCaseOnStringBuffer("TestTestTestT", "__test_test_test_t", true);
-	}
-
-	private void verifyConvertUnderscoresToCamelCaseOnStringBuffer(String expected, String string, boolean capitalizeFirstLetter) {
-		StringBuffer sb = new StringBuffer();
-		StringTools.convertUnderscoresToCamelCaseOn(string, capitalizeFirstLetter, sb);
-		assertEquals(expected, sb.toString());
-	}
-
-	// ********** delimiting **********
-
-	public void testStringIsQuoted() {
-		this.denyStringIsQuoted("foo");
-		this.verifyStringIsQuoted("\"foo\"");
-
-		this.denyStringIsQuoted("");
-		this.verifyStringIsQuoted("\"\"");
-
-		this.denyStringIsQuoted("\"");
-		this.denyStringIsQuoted(" ");
-		this.denyStringIsQuoted("''");
-		this.denyStringIsQuoted("'foo'");
-	}
-
-	private void verifyStringIsQuoted(String s) {
-		assertTrue(StringTools.stringIsQuoted(s));
-		assertTrue(StringTools.stringIsQuoted(s.toCharArray()));
-	}
-
-	private void denyStringIsQuoted(String s) {
-		assertFalse(StringTools.stringIsQuoted(s));
-		assertFalse(StringTools.stringIsQuoted(s.toCharArray()));
-	}
-
-	public void testStringIsParenthetical() {
-		this.denyStringIsParenthetical("foo");
-		this.verifyStringIsParenthetical("(foo)");
-
-		this.denyStringIsParenthetical("");
-		this.verifyStringIsParenthetical("()");
-
-		this.denyStringIsParenthetical("(");
-		this.denyStringIsParenthetical(" ");
-		this.denyStringIsParenthetical("''");
-		this.denyStringIsParenthetical("'foo'");
-	}
-
-	private void verifyStringIsParenthetical(String s) {
-		assertTrue(StringTools.stringIsParenthetical(s));
-		assertTrue(StringTools.stringIsParenthetical(s.toCharArray()));
-	}
-
-	private void denyStringIsParenthetical(String s) {
-		assertFalse(StringTools.stringIsParenthetical(s));
-		assertFalse(StringTools.stringIsParenthetical(s.toCharArray()));
-	}
-
-	public void testStringIsBracketed() {
-		this.denyStringIsBracketed("foo");
-		this.verifyStringIsBracketed("[foo]");
-
-		this.denyStringIsBracketed("");
-		this.verifyStringIsBracketed("[]");
-
-		this.denyStringIsBracketed("[");
-		this.denyStringIsBracketed(" ");
-		this.denyStringIsBracketed("''");
-		this.denyStringIsBracketed("'foo'");
-	}
-
-	private void verifyStringIsBracketed(String s) {
-		assertTrue(StringTools.stringIsBracketed(s));
-		assertTrue(StringTools.stringIsBracketed(s.toCharArray()));
-	}
-
-	private void denyStringIsBracketed(String s) {
-		assertFalse(StringTools.stringIsBracketed(s));
-		assertFalse(StringTools.stringIsBracketed(s.toCharArray()));
-	}
-
-	public void testStringIsBraced() {
-		this.denyStringIsBraced("foo");
-		this.verifyStringIsBraced("{foo}");
-
-		this.denyStringIsBraced("");
-		this.verifyStringIsBraced("{}");
-
-		this.denyStringIsBraced("{");
-		this.denyStringIsBraced(" ");
-		this.denyStringIsBraced("''");
-		this.denyStringIsBraced("'foo'");
-	}
-
-	private void verifyStringIsBraced(String s) {
-		assertTrue(StringTools.stringIsBraced(s));
-		assertTrue(StringTools.stringIsBraced(s.toCharArray()));
-	}
-
-	private void denyStringIsBraced(String s) {
-		assertFalse(StringTools.stringIsBraced(s));
-		assertFalse(StringTools.stringIsBraced(s.toCharArray()));
-	}
-
-	public void testStringIsChevroned() {
-		this.denyStringIsChevroned("foo");
-		this.verifyStringIsChevroned("<foo>");
-
-		this.denyStringIsChevroned("");
-		this.verifyStringIsChevroned("<>");
-
-		this.denyStringIsChevroned("{");
-		this.denyStringIsChevroned(" ");
-		this.denyStringIsChevroned("''");
-		this.denyStringIsChevroned("'foo'");
-	}
-
-	private void verifyStringIsChevroned(String s) {
-		assertTrue(StringTools.stringIsChevroned(s));
-		assertTrue(StringTools.stringIsChevroned(s.toCharArray()));
-	}
-
-	private void denyStringIsChevroned(String s) {
-		assertFalse(StringTools.stringIsChevroned(s));
-		assertFalse(StringTools.stringIsChevroned(s.toCharArray()));
-	}
-
-	public void testStringIsDelimited() {
-		this.denyStringIsDelimited("foo", '?');
-		this.verifyStringIsDelimited("?foo?", '?');
-
-		this.denyStringIsDelimited("", '?');
-		this.verifyStringIsDelimited("\"\"", '"');
-		this.verifyStringIsDelimited("?xx?", '?');
-		this.denyStringIsDelimited("?xx]", '?');
-
-		this.denyStringIsDelimited("\"", '"');
-		this.denyStringIsDelimited(" ", ' ');
-		this.denyStringIsDelimited("''", '"');
-		this.denyStringIsDelimited("'foo'", '?');
-	}
-
-	private void verifyStringIsDelimited(String s, char c) {
-		assertTrue(StringTools.stringIsDelimited(s, c));
-		assertTrue(StringTools.stringIsDelimited(s.toCharArray(), c));
-	}
-
-	private void denyStringIsDelimited(String s, char c) {
-		assertFalse(StringTools.stringIsDelimited(s, c));
-		assertFalse(StringTools.stringIsDelimited(s.toCharArray(), c));
-	}
-
-	public void testStringIsDelimited2() {
-		this.denyStringIsDelimited2("foo", '[', ']');
-		this.verifyStringIsDelimited2("{foo}", '{', '}');
-
-		this.denyStringIsDelimited2("", '[', ']');
-		this.verifyStringIsDelimited2("[]", '[', ']');
-		this.verifyStringIsDelimited2("[xx]", '[', ']');
-		this.denyStringIsDelimited2("?xx]", '[', ']');
-
-		this.denyStringIsDelimited2("\"", '[', ']');
-		this.denyStringIsDelimited2(" ", '[', ']');
-		this.denyStringIsDelimited2("''", '[', ']');
-		this.denyStringIsDelimited2("'foo'", '[', ']');
-	}
-
-	private void verifyStringIsDelimited2(String s, char start, char end) {
-		assertTrue(StringTools.stringIsDelimited(s, start, end));
-		assertTrue(StringTools.stringIsDelimited(s.toCharArray(), start, end));
-	}
-
-	private void denyStringIsDelimited2(String s, char start, char end) {
-		assertFalse(StringTools.stringIsDelimited(s, start, end));
-		assertFalse(StringTools.stringIsDelimited(s.toCharArray(), start, end));
-	}
-
-	// ********** undelimiting **********
-
-	public void testUndelimit() {
-		this.verifyUndelimit("\"foo\"", "foo");
-		this.verifyUndelimit("\"\"", "");
-		this.verifyUndelimit("'foo'", "foo");
-		this.verifyUndelimit("\"fo\"\"o\"", "fo\"o");
-		this.verifyUndelimit("\"foo\"\"\"", "foo\"");
-		this.verifyUndelimit("\"\"\"foo\"", "\"foo");
-		this.verifyUndelimit("[foo]", "foo");
-		this.verifyUndelimit("\"\"\"", "\"");
-		this.verifyUndelimit("\"foo\"bar\"", "foo\"");
-		this.verifyUndelimit("\"foo\"\"", "foo\"");
-	}
-
-	private void verifyUndelimit(String s, String expected) {
-		assertEquals(expected, StringTools.undelimit(s));
-		assertEquals(expected, StringTools.undelimit(s.toCharArray()));
-	}
-
-	public void testUndelimitInt() {
-		this.verifyUndelimitInt("\"foo\"", 2, "o");
-		this.verifyUndelimitInt("\"\"foo\"\"", 2, "foo");
-		this.verifyUndelimitInt("'foo'", 2, "o");
-	}
-
-	private void verifyUndelimitInt(String s, int count, String expected) {
-		assertEquals(expected, StringTools.undelimit(s, count));
-		assertEquals(expected, StringTools.undelimit(s.toCharArray(), count));
-	}
-
-	public void testUndelimitIntException() {
-		this.denyUndelimitInt("\"\"", 2);
-		this.denyUndelimitInt("'o'", 2);
-	}
-
-	private void denyUndelimitInt(String s, int count) {
-		boolean exCaught = false;
-		try {
-			String bogus = StringTools.undelimit(s, count);
-			fail("invalid string: " + bogus);
-		} catch (IllegalArgumentException ex) {
-			exCaught = true;
-		}
-		assertTrue(exCaught);
-
-		exCaught = false;
-		try {
-			char[] bogus = StringTools.undelimit(s.toCharArray(), count);
-			fail("invalid string: " + new String(bogus));
-		} catch (IllegalArgumentException ex) {
-			exCaught = true;
-		}
-		assertTrue(exCaught);
-	}
-
-	public void testUndelimitOnWriter() {
-		this.verifyUndelimitOnWriter("\"foo\"", "foo");
-		this.verifyUndelimitOnWriter("\"\"", "");
-		this.verifyUndelimitOnWriter("'foo'", "foo");
-		this.verifyUndelimitOnWriter("\"fo\"\"o\"", "fo\"o");
-		this.verifyUndelimitOnWriter("\"foo\"\"\"", "foo\"");
-		this.verifyUndelimitOnWriter("\"\"\"foo\"", "\"foo");
-		this.verifyUndelimitOnWriter("[foo]", "foo");
-		this.verifyUndelimitOnWriter("\"\"\"", "\"");
-		this.verifyUndelimitOnWriter("\"foo\"bar\"", "foo\"");
-		this.verifyUndelimitOnWriter("\"foo\"\"", "foo\"");
-	}
-
-	private void verifyUndelimitOnWriter(String s, String expected) {
-		Writer writer = new StringWriter();
-		StringTools.undelimitOn(s, writer);
-		assertEquals(expected, writer.toString());
-
-		writer = new StringWriter();
-		StringTools.undelimitOn(s.toCharArray(), writer);
-		assertEquals(expected, writer.toString());
-	}
-
-	public void testUndelimitOnStringBuffer() {
-		this.verifyUndelimitOnStringBuffer("\"foo\"", "foo");
-		this.verifyUndelimitOnStringBuffer("\"\"", "");
-		this.verifyUndelimitOnStringBuffer("'foo'", "foo");
-		this.verifyUndelimitOnStringBuffer("\"fo\"\"o\"", "fo\"o");
-		this.verifyUndelimitOnStringBuffer("\"foo\"\"\"", "foo\"");
-		this.verifyUndelimitOnStringBuffer("\"\"\"foo\"", "\"foo");
-		this.verifyUndelimitOnStringBuffer("[foo]", "foo");
-		this.verifyUndelimitOnStringBuffer("\"\"\"", "\"");
-		this.verifyUndelimitOnStringBuffer("\"foo\"bar\"", "foo\"");
-		this.verifyUndelimitOnStringBuffer("\"foo\"\"", "foo\"");
-	}
-
-	private void verifyUndelimitOnStringBuffer(String s, String expected) {
-		StringBuffer sb = new StringBuffer();
-		StringTools.undelimitOn(s, sb);
-		assertEquals(expected, sb.toString());
-
-		sb = new StringBuffer();
-		StringTools.undelimitOn(s.toCharArray(), sb);
-		assertEquals(expected, sb.toString());
-	}
-
-	public void testUndelimitOnStringBuilder() {
-		this.verifyUndelimitOnStringBuilder("\"foo\"", "foo");
-		this.verifyUndelimitOnStringBuilder("\"\"", "");
-		this.verifyUndelimitOnStringBuilder("'foo'", "foo");
-		this.verifyUndelimitOnStringBuilder("\"fo\"\"o\"", "fo\"o");
-		this.verifyUndelimitOnStringBuilder("\"foo\"\"\"", "foo\"");
-		this.verifyUndelimitOnStringBuilder("\"\"\"foo\"", "\"foo");
-		this.verifyUndelimitOnStringBuilder("[foo]", "foo");
-		this.verifyUndelimitOnStringBuilder("\"\"\"", "\"");
-		this.verifyUndelimitOnStringBuilder("\"foo\"bar\"", "foo\"");
-		this.verifyUndelimitOnStringBuilder("\"foo\"\"", "foo\"");
-	}
-
-	private void verifyUndelimitOnStringBuilder(String s, String expected) {
-		StringBuilder sb = new StringBuilder();
-		StringTools.undelimitOn(s, sb);
-		assertEquals(expected, sb.toString());
-
-		sb = new StringBuilder();
-		StringTools.undelimitOn(s.toCharArray(), sb);
-		assertEquals(expected, sb.toString());
-	}
-
-	public void testUndelimitOnWriterCount() {
-		this.verifyUndelimitOnWriterCount("\"foo\"", 2, "o");
-		this.verifyUndelimitOnWriterCount("\"\"\"\"", 2, "");
-		this.verifyUndelimitOnWriterCount("XXfooXX", 2, "foo");
-	}
-
-	private void verifyUndelimitOnWriterCount(String s, int count, String expected) {
-		Writer writer = new StringWriter();
-		StringTools.undelimitOn(s, count, writer);
-		assertEquals(expected, writer.toString());
-
-		writer = new StringWriter();
-		StringTools.undelimitOn(s.toCharArray(), count, writer);
-		assertEquals(expected, writer.toString());
-	}
-
-	public void testUndelimitOnStringBufferCount() {
-		this.verifyUndelimitOnStringBufferCount("\"foo\"", 2, "o");
-		this.verifyUndelimitOnStringBufferCount("\"\"\"\"", 2, "");
-		this.verifyUndelimitOnStringBufferCount("XXfooXX", 2, "foo");
-	}
-
-	private void verifyUndelimitOnStringBufferCount(String s, int count, String expected) {
-		StringBuffer sb = new StringBuffer();
-		StringTools.undelimitOn(s, count, sb);
-		assertEquals(expected, sb.toString());
-
-		sb = new StringBuffer();
-		StringTools.undelimitOn(s.toCharArray(), count, sb);
-		assertEquals(expected, sb.toString());
-	}
-
-	public void testUndelimitOnStringBuilderCount() {
-		this.verifyUndelimitOnStringBuilderCount("\"foo\"", 2, "o");
-		this.verifyUndelimitOnStringBuilderCount("\"\"\"\"", 2, "");
-		this.verifyUndelimitOnStringBuilderCount("XXfooXX", 2, "foo");
-	}
-
-	private void verifyUndelimitOnStringBuilderCount(String s, int count, String expected) {
-		StringBuilder sb = new StringBuilder();
-		StringTools.undelimitOn(s, count, sb);
-		assertEquals(expected, sb.toString());
-
-		sb = new StringBuilder();
-		StringTools.undelimitOn(s.toCharArray(), count, sb);
-		assertEquals(expected, sb.toString());
-	}
-
-	// ********** converting to Java string literal **********
-
-	public void testConvertToJavaStringLiteral() {
-		this.verifyConvertToJavaStringLiteral("", "\"\"");
-		this.verifyConvertToJavaStringLiteral("\"\"", "\"\\\"\\\"\"");
-		this.verifyConvertToJavaStringLiteral("'foo'", "\"'foo'\"");
-		this.verifyConvertToJavaStringLiteral("foo\bbar", "\"foo\\bbar\"");
-		this.verifyConvertToJavaStringLiteral("foo\n\tbar", "\"foo\\n\\tbar\"");
-		this.verifyConvertToJavaStringLiteral("foo\"bar", "\"foo\\\"bar\"");
-		this.verifyConvertToJavaStringLiteral("foo\\bar", "\"foo\\\\bar\"");
-	}
-
-	private void verifyConvertToJavaStringLiteral(String s, String expected) {
-		assertEquals(expected, StringTools.convertToJavaStringLiteral(s));
-		assertEquals(expected, StringTools.convertToJavaStringLiteral(s.toCharArray()));
-	}
-
-	public void testConvertToJavaStringLiteralOnStringBuffer() {
-		this.verifyConvertToJavaStringLiteralOnStringBuffer("", "\"\"");
-		this.verifyConvertToJavaStringLiteralOnStringBuffer("\"\"", "\"\\\"\\\"\"");
-		this.verifyConvertToJavaStringLiteralOnStringBuffer("'foo'", "\"'foo'\"");
-		this.verifyConvertToJavaStringLiteralOnStringBuffer("foo\bbar", "\"foo\\bbar\"");
-		this.verifyConvertToJavaStringLiteralOnStringBuffer("foo\n\tbar", "\"foo\\n\\tbar\"");
-		this.verifyConvertToJavaStringLiteralOnStringBuffer("foo\"bar", "\"foo\\\"bar\"");
-		this.verifyConvertToJavaStringLiteralOnStringBuffer("foo\\bar", "\"foo\\\\bar\"");
-	}
-
-	private void verifyConvertToJavaStringLiteralOnStringBuffer(String s, String expected) {
-		StringBuffer sb = new StringBuffer();
-		StringTools.convertToJavaStringLiteralOn(s, sb);
-		assertEquals(expected, sb.toString());
-
-		sb = new StringBuffer();
-		StringTools.convertToJavaStringLiteralOn(s.toCharArray(), sb);
-		assertEquals(expected, sb.toString());
-	}
-
-	public void testConvertToJavaStringLiteralOnStringBuilder() {
-		this.verifyConvertToJavaStringLiteralOnStringBuilder("", "\"\"");
-		this.verifyConvertToJavaStringLiteralOnStringBuilder("\"\"", "\"\\\"\\\"\"");
-		this.verifyConvertToJavaStringLiteralOnStringBuilder("'foo'", "\"'foo'\"");
-		this.verifyConvertToJavaStringLiteralOnStringBuilder("foo\bbar", "\"foo\\bbar\"");
-		this.verifyConvertToJavaStringLiteralOnStringBuilder("foo\n\tbar", "\"foo\\n\\tbar\"");
-		this.verifyConvertToJavaStringLiteralOnStringBuilder("foo\"bar", "\"foo\\\"bar\"");
-		this.verifyConvertToJavaStringLiteralOnStringBuilder("foo\\bar", "\"foo\\\\bar\"");
-	}
-
-	private void verifyConvertToJavaStringLiteralOnStringBuilder(String s, String expected) {
-		StringBuilder sb = new StringBuilder();
-		StringTools.convertToJavaStringLiteralOn(s, sb);
-		assertEquals(expected, sb.toString());
-
-		sb = new StringBuilder();
-		StringTools.convertToJavaStringLiteralOn(s.toCharArray(), sb);
-		assertEquals(expected, sb.toString());
-	}
-
-	public void testConvertToJavaStringLiteralOnWriter() {
-		this.verifyConvertToJavaStringLiteralOnWriter("", "\"\"");
-		this.verifyConvertToJavaStringLiteralOnWriter("\"\"", "\"\\\"\\\"\"");
-		this.verifyConvertToJavaStringLiteralOnWriter("'foo'", "\"'foo'\"");
-		this.verifyConvertToJavaStringLiteralOnWriter("foo\bbar", "\"foo\\bbar\"");
-		this.verifyConvertToJavaStringLiteralOnWriter("foo\n\tbar", "\"foo\\n\\tbar\"");
-		this.verifyConvertToJavaStringLiteralOnWriter("foo\"bar", "\"foo\\\"bar\"");
-		this.verifyConvertToJavaStringLiteralOnWriter("foo\\bar", "\"foo\\\\bar\"");
-	}
-
-	private void verifyConvertToJavaStringLiteralOnWriter(String s, String expected) {
-		Writer writer = new StringWriter();
-		StringTools.convertToJavaStringLiteralOn(s, writer);
-		assertEquals(expected, writer.toString());
-
-		writer = new StringWriter();
-		StringTools.convertToJavaStringLiteralOn(s.toCharArray(), writer);
-		assertEquals(expected, writer.toString());
-	}
-
-}
diff --git a/jpa/tests/org.eclipse.jpt.utility.tests/src/org/eclipse/jpt/utility/tests/internal/SynchronizedBooleanTests.java b/jpa/tests/org.eclipse.jpt.utility.tests/src/org/eclipse/jpt/utility/tests/internal/SynchronizedBooleanTests.java
deleted file mode 100644
index 544b7a5..0000000
--- a/jpa/tests/org.eclipse.jpt.utility.tests/src/org/eclipse/jpt/utility/tests/internal/SynchronizedBooleanTests.java
+++ /dev/null
@@ -1,225 +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.utility.tests.internal;
-
-import junit.framework.TestCase;
-import org.eclipse.jpt.utility.internal.SynchronizedBoolean;
-
-public class SynchronizedBooleanTests extends TestCase {
-	private volatile SynchronizedBoolean sb;
-	private volatile boolean exCaught;
-	private volatile boolean timeoutOccurred;
-	private volatile long startTime;
-	private volatile long endTime;
-
-
-	public SynchronizedBooleanTests(String name) {
-		super(name);
-	}
-
-	@Override
-	protected void setUp() throws Exception {
-		super.setUp();
-		this.sb = new SynchronizedBoolean();
-		this.exCaught = false;
-		this.timeoutOccurred = false;
-		this.startTime = 0;
-		this.endTime = 0;
-	}
-
-	@Override
-	protected void tearDown() throws Exception {
-		TestTools.clear(this);
-		super.tearDown();
-	}
-
-	public void testAccessors() throws Exception {
-		this.sb.setValue(false);
-		assertFalse(this.sb.value());
-		assertFalse(this.sb.isTrue());
-		assertTrue(this.sb.isFalse());
-
-		this.sb.setValue(true);
-		assertTrue(this.sb.value());
-		assertTrue(this.sb.isTrue());
-		assertFalse(this.sb.isFalse());
-
-		this.sb.setFalse();
-		assertFalse(this.sb.value());
-		assertFalse(this.sb.isTrue());
-		assertTrue(this.sb.isFalse());
-
-		this.sb.setTrue();
-		assertTrue(this.sb.value());
-		assertTrue(this.sb.isTrue());
-		assertFalse(this.sb.isFalse());
-
-		assertSame(this.sb, this.sb.mutex());
-	}
-
-	public void testEquals() throws Exception {
-		this.sb.setValue(false);
-		SynchronizedBoolean sb2 = new SynchronizedBoolean(false);
-		assertEquals(this.sb, sb2);
-
-		this.sb.setValue(true);
-		assertFalse(this.sb.equals(sb2));
-
-		sb2.setValue(true);
-		assertEquals(this.sb, sb2);
-	}
-
-	public void testHashCode() {
-		this.sb.setValue(false);
-		assertEquals(0, this.sb.hashCode());
-
-		this.sb.setValue(true);
-		assertEquals(1, this.sb.hashCode());
-	}
-
-	public void testWaitUntilTrue() throws Exception {
-		this.verifyWaitUntilTrue(0);
-		// no timeout occurs...
-		assertFalse(this.timeoutOccurred);
-		// ...and the value should be set to true by t2
-		assertTrue(this.sb.value());
-		// make a reasonable guess about how long t2 took
-		assertTrue(this.elapsedTime() > 150);
-	}
-
-	public void testWaitUntilTrueTimeout() throws Exception {
-		this.verifyWaitUntilTrue(20);
-		// timeout occurs...
-		assertTrue(this.timeoutOccurred);
-		// ...and the value will eventually be set to true by t1
-		assertTrue(this.sb.value());
-		// make a reasonable guess about how long t2 took
-		assertTrue(this.elapsedTime() < 150);
-	}
-
-	private void verifyWaitUntilTrue(long timeout) throws Exception {
-		this.sb.setFalse();
-		Runnable r1 = this.buildRunnable(this.buildSetTrueCommand(), this.sb, 200);
-		Runnable r2 = this.buildRunnable(this.buildWaitUntilTrueCommand(timeout), this.sb, 0);
-		Thread t1 = new Thread(r1);
-		Thread t2 = new Thread(r2);
-		t1.start();
-		t2.start();
-		while (t1.isAlive() || t2.isAlive()) {
-			Thread.sleep(50);
-		}
-		assertFalse(this.exCaught);
-	}
-
-	public void testWaitToSetFalse() throws Exception {
-		this.verifyWaitToSetFalse(0);
-		// no timeout occurs...
-		assertFalse(this.timeoutOccurred);
-		// ...and the value should be set to false by t2
-		assertFalse(this.sb.value());
-		// make a reasonable guess about how long t2 took
-		assertTrue(this.elapsedTime() > 150);
-	}
-
-	public void testWaitToSetFalseTimeout() throws Exception {
-		this.verifyWaitToSetFalse(20);
-		// timeout occurs...
-		assertTrue(this.timeoutOccurred);
-		// ...and the value will eventually be set to true by t1
-		assertTrue(this.sb.value());
-		// make a reasonable guess about how long t2 took
-		assertTrue(this.elapsedTime() < 150);
-	}
-
-	private void verifyWaitToSetFalse(long timeout) throws Exception {
-		this.sb.setFalse();
-		Runnable r1 = this.buildRunnable(this.buildSetTrueCommand(), this.sb, 200);
-		Runnable r2 = this.buildRunnable(this.buildWaitToSetFalseCommand(timeout), this.sb, 0);
-		Thread t1 = new Thread(r1);
-		Thread t2 = new Thread(r2);
-		t1.start();
-		t2.start();
-		while (t1.isAlive() || t2.isAlive()) {
-			Thread.sleep(50);
-		}
-		assertFalse(this.exCaught);
-	}
-
-	private Command buildSetTrueCommand() {
-		return new Command() {
-			public void execute(SynchronizedBoolean syncBool) {
-				syncBool.setTrue();
-			}
-		};
-	}
-
-	private Command buildWaitUntilTrueCommand(final long timeout) {
-		return new Command() {
-			public void execute(SynchronizedBoolean syncBool) throws Exception {
-				SynchronizedBooleanTests.this.setStartTime(System.currentTimeMillis());
-				SynchronizedBooleanTests.this.setTimeoutOccurred( ! syncBool.waitUntilTrue(timeout));
-				SynchronizedBooleanTests.this.setEndTime(System.currentTimeMillis());
-			}
-		};
-	}
-
-	private Command buildWaitToSetFalseCommand(final long timeout) {
-		return new Command() {
-			public void execute(SynchronizedBoolean syncBool) throws Exception {
-				SynchronizedBooleanTests.this.setStartTime(System.currentTimeMillis());
-				SynchronizedBooleanTests.this.setTimeoutOccurred( ! syncBool.waitToSetFalse(timeout));
-				SynchronizedBooleanTests.this.setEndTime(System.currentTimeMillis());
-			}
-		};
-	}
-
-	private Runnable buildRunnable(final Command command, final SynchronizedBoolean syncBool, final long sleep) {
-		return new Runnable() {
-			public void run() {
-				try {
-					if (sleep != 0) {
-						Thread.sleep(sleep);
-					}
-					command.execute(syncBool);
-				} catch (Exception ex) {
-					SynchronizedBooleanTests.this.setExCaught(true);
-				}
-			}
-		};
-	}
-
-	void setExCaught(boolean exCaught) {
-		this.exCaught = exCaught;
-	}
-
-	void setTimeoutOccurred(boolean timeoutOccurred) {
-		this.timeoutOccurred = timeoutOccurred;
-	}
-
-	void setStartTime(long startTime) {
-		this.startTime = startTime;
-	}
-
-	void setEndTime(long endTime) {
-		this.endTime = endTime;
-	}
-
-	long elapsedTime() {
-		return this.endTime - this.startTime;
-	}
-
-
-	// ********** Command interface **********
-
-	private interface Command {
-		void execute(SynchronizedBoolean syncBool) throws Exception;
-	}
-
-}
diff --git a/jpa/tests/org.eclipse.jpt.utility.tests/src/org/eclipse/jpt/utility/tests/internal/SynchronizedObjectTests.java b/jpa/tests/org.eclipse.jpt.utility.tests/src/org/eclipse/jpt/utility/tests/internal/SynchronizedObjectTests.java
deleted file mode 100644
index 22cd109..0000000
--- a/jpa/tests/org.eclipse.jpt.utility.tests/src/org/eclipse/jpt/utility/tests/internal/SynchronizedObjectTests.java
+++ /dev/null
@@ -1,292 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2008 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.utility.tests.internal;
-
-import junit.framework.TestCase;
-import org.eclipse.jpt.utility.internal.SynchronizedObject;
-
-public class SynchronizedObjectTests extends TestCase {
-	private volatile SynchronizedObject<Object> so;
-	private volatile boolean exCaught;
-	private volatile boolean timeoutOccurred;
-	volatile Object value = new Object();
-	private volatile long startTime;
-	private volatile long endTime;
-	private volatile Object soValue;
-
-
-	public SynchronizedObjectTests(String name) {
-		super(name);
-	}
-
-	@Override
-	protected void setUp() throws Exception {
-		super.setUp();
-		this.so = new SynchronizedObject<Object>();
-		this.exCaught = false;
-		this.timeoutOccurred = false;
-		this.startTime = 0;
-		this.endTime = 0;
-		this.soValue = null;
-	}
-
-	@Override
-	protected void tearDown() throws Exception {
-		TestTools.clear(this);
-		super.tearDown();
-	}
-
-	public void testAccessors() throws Exception {
-		this.so.setValue(null);
-		assertNull(this.so.value());
-		assertFalse(this.so.isNotNull());
-		assertTrue(this.so.isNull());
-
-		this.so.setValue(this.value);
-		assertEquals(this.value, this.so.value());
-		assertTrue(this.so.isNotNull());
-		assertFalse(this.so.isNull());
-
-		this.so.setNull();
-		assertNull(this.so.value());
-		assertFalse(this.so.isNotNull());
-		assertTrue(this.so.isNull());
-
-		assertSame(this.so, this.so.mutex());
-	}
-
-	public void testEquals() throws Exception {
-		this.so.setValue(null);
-		SynchronizedObject<Object> so2 = new SynchronizedObject<Object>(null);
-		assertEquals(this.so, so2);
-
-		this.so.setValue(this.value);
-		assertFalse(this.so.equals(so2));
-
-		so2.setValue(this.value);
-		assertEquals(this.so, so2);
-	}
-
-	public void testHashCode() {
-		this.so.setValue(this.value);
-		assertEquals(this.value.hashCode(), this.so.hashCode());
-
-		this.so.setValue(null);
-		assertEquals(0, this.so.hashCode());
-	}
-
-	/**
-	 * t2 will wait indefinitely until t1 sets the value to null
-	 */
-	public void testWaitUntilNull() throws Exception {
-		this.verifyWaitUntilNull(0);
-		// no timeout occurs...
-		assertFalse(this.timeoutOccurred);
-		// ...and the value should be set to null by t2
-		assertNull(this.so.value());
-		// make a reasonable guess about how long t2 took
-		long time = this.elapsedTime();
-		assertTrue("t2 finished a bit early (expected value should be > 150): " + time, time > 150);
-	}
-
-	/**
-	 * t2 will time out waiting for t1 to set the value to null
-	 */
-	public void testWaitUntilNullTimeout() throws Exception {
-		this.verifyWaitUntilNull(20);
-		// timeout occurs...
-		assertTrue(this.timeoutOccurred);
-		// ...and the value will eventually be set to null by t1
-		assertNull(this.so.value());
-		// make a reasonable guess about how long t2 took
-		long time = this.elapsedTime();
-		assertTrue("t2 finished a bit late (expected value should be < 150): " + time, time < 150);
-	}
-
-	private void verifyWaitUntilNull(long t2Timeout) throws Exception {
-		this.executeThreads(this.buildSetNullCommand(), this.buildWaitUntilNullCommand(t2Timeout));
-	}
-
-	/**
-	 * t2 will wait indefinitely until t1 sets the value to null;
-	 * then t2 will set the value to an object
-	 */
-	public void testWaitToSetValue() throws Exception {
-		this.verifyWaitToSetValue(0);
-		// no timeout occurs...
-		assertFalse(this.timeoutOccurred);
-		// ...and the value should be set to an object by t2
-		assertTrue(this.so.isNotNull());
-		// make a reasonable guess about how long t2 took
-		long time = this.elapsedTime();
-		assertTrue("t2 finished a bit early (expected value should be > 150): " + time, time > 150);
-	}
-
-	/**
-	 * t2 will time out waiting for t1 to set the value to null
-	 */
-	public void testWaitToSetValueTimeout() throws Exception {
-		this.verifyWaitToSetValue(20);
-		// timeout occurs...
-		assertTrue(this.timeoutOccurred);
-		// ...and the value will eventually be set to null by t1
-		assertTrue(this.so.isNull());
-		// make a reasonable guess about how long t2 took
-		long time = this.elapsedTime();
-		assertTrue("t2 finished a bit late (expected value should be < 150): " + time, time < 150);
-	}
-
-	private void verifyWaitToSetValue(long t2Timeout) throws Exception {
-		this.executeThreads(this.buildSetNullCommand(), this.buildWaitToSetValueCommand(t2Timeout));
-	}
-
-	/**
-	 * t2 will wait until t1 is finished "initializing" the value;
-	 * then t2 will get the newly-initialized value ("foo")
-	 */
-	public void testExecute() throws Exception {
-		this.so.setValue(null);
-		Runnable r1 = this.buildRunnable(this.buildInitializeValueCommand(), this.so, 0);
-		// give t1 a head start of 100 ms
-		Runnable r2 = this.buildRunnable(this.buildGetValueCommand(), this.so, 100);
-		Thread t1 = new Thread(r1);
-		Thread t2 = new Thread(r2);
-		t1.start();
-		t2.start();
-		while (t1.isAlive() || t2.isAlive()) {
-			Thread.sleep(50);
-		}
-		assertFalse(this.exCaught);
-		assertEquals("foo", this.so.value());
-		assertEquals("foo", this.soValue);
-		// make a reasonable guess about how long t2 took
-		long time = this.elapsedTime();
-		assertTrue("t2 finished a bit early (expected value should be > 100): " + time, time > 300);
-	}
-
-	private void executeThreads(Command t1Command, Command t2Command) throws Exception {
-		this.so.setValue(this.value);
-		Runnable r1 = this.buildRunnable(t1Command, this.so, 200);
-		Runnable r2 = this.buildRunnable(t2Command, this.so, 0);
-		Thread t1 = new Thread(r1);
-		Thread t2 = new Thread(r2);
-		t1.start();
-		t2.start();
-		while (t1.isAlive() || t2.isAlive()) {
-			Thread.sleep(50);
-		}
-		assertFalse(this.exCaught);
-	}
-
-	private Command buildSetNullCommand() {
-		return new Command() {
-			public void execute(SynchronizedObject<Object> sObject) {
-				sObject.setNull();
-			}
-		};
-	}
-
-	private Command buildWaitUntilNullCommand(final long timeout) {
-		return new Command() {
-			public void execute(SynchronizedObject<Object> sObject) throws Exception {
-				SynchronizedObjectTests.this.setStartTime(System.currentTimeMillis());
-				SynchronizedObjectTests.this.setTimeoutOccurred( ! sObject.waitUntilNull(timeout));
-				SynchronizedObjectTests.this.setEndTime(System.currentTimeMillis());
-			}
-		};
-	}
-
-	private Command buildWaitToSetValueCommand(final long timeout) {
-		return new Command() {
-			public void execute(SynchronizedObject<Object> sObject) throws Exception {
-				SynchronizedObjectTests.this.setStartTime(System.currentTimeMillis());
-				SynchronizedObjectTests.this.setTimeoutOccurred( ! sObject.waitToSetValue(SynchronizedObjectTests.this.value, timeout));
-				SynchronizedObjectTests.this.setEndTime(System.currentTimeMillis());
-			}
-		};
-	}
-
-	private Command buildInitializeValueCommand() {
-		return new Command() {
-			public void execute(final SynchronizedObject<Object> sObject) throws Exception {
-				sObject.execute(
-					new org.eclipse.jpt.utility.Command() {
-						public void execute() {
-							// pretend to perform some long initialization process
-							try {
-								Thread.sleep(500);
-							} catch (Exception ex) {
-								SynchronizedObjectTests.this.setExCaught(true);
-							}
-							sObject.setValue("foo");
-						}
-					}
-				);
-			}
-		};
-	}
-
-	private Command buildGetValueCommand() {
-		return new Command() {
-			public void execute(SynchronizedObject<Object> sObject) throws Exception {
-				SynchronizedObjectTests.this.setStartTime(System.currentTimeMillis());
-				SynchronizedObjectTests.this.setSOValue(sObject.value());
-				SynchronizedObjectTests.this.setEndTime(System.currentTimeMillis());
-			}
-		};
-	}
-
-	private Runnable buildRunnable(final Command command, final SynchronizedObject<Object> sObject, final long sleep) {
-		return new Runnable() {
-			public void run() {
-				try {
-					if (sleep != 0) {
-						Thread.sleep(sleep);
-					}
-					command.execute(sObject);
-				} catch (Exception ex) {
-					SynchronizedObjectTests.this.setExCaught(true);
-				}
-			}
-		};
-	}
-
-	void setExCaught(boolean exCaught) {
-		this.exCaught = exCaught;
-	}
-
-	void setTimeoutOccurred(boolean timeoutOccurred) {
-		this.timeoutOccurred = timeoutOccurred;
-	}
-
-	void setStartTime(long startTime) {
-		this.startTime = startTime;
-	}
-
-	void setEndTime(long endTime) {
-		this.endTime = endTime;
-	}
-
-	private long elapsedTime() {
-		return this.endTime - this.startTime;
-	}
-
-	void setSOValue(Object soValue) {
-		this.soValue = soValue;
-	}
-
-
-	// ********** Command interface **********
-
-	private interface Command {
-		void execute(SynchronizedObject<Object> so) throws Exception;
-	}
-
-}
diff --git a/jpa/tests/org.eclipse.jpt.utility.tests/src/org/eclipse/jpt/utility/tests/internal/SynchronizedStackTests.java b/jpa/tests/org.eclipse.jpt.utility.tests/src/org/eclipse/jpt/utility/tests/internal/SynchronizedStackTests.java
deleted file mode 100644
index 50c353c..0000000
--- a/jpa/tests/org.eclipse.jpt.utility.tests/src/org/eclipse/jpt/utility/tests/internal/SynchronizedStackTests.java
+++ /dev/null
@@ -1,270 +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.utility.tests.internal;
-
-import java.util.EmptyStackException;
-import org.eclipse.jpt.utility.internal.SimpleStack;
-import org.eclipse.jpt.utility.internal.Stack;
-import org.eclipse.jpt.utility.internal.SynchronizedStack;
-
-public class SynchronizedStackTests extends SimpleStackTests {
-	private volatile SynchronizedStack<String> ss;
-	private volatile boolean exCaught;
-	private volatile boolean timeoutOccurred;
-	private volatile long startTime;
-	private volatile long endTime;
-	private volatile Object poppedObject;
-
-	static final String ITEM_1 = new String();
-	static final String ITEM_2 = new String();
-
-	public SynchronizedStackTests(String name) {
-		super(name);
-	}
-
-	@Override
-	protected void setUp() throws Exception {
-		super.setUp();
-		this.ss = new SynchronizedStack<String>();
-		this.exCaught = false;
-		this.timeoutOccurred = false;
-		this.startTime = 0;
-		this.endTime = 0;
-		this.poppedObject = null;
-	}
-
-	/**
-	 * test first with an unsynchronized stack,
-	 * then with a synchronized stack
-	 */
-	public void testConcurrentAccess() throws Exception {
-		this.verifyConcurrentAccess(new SlowSimpleStack<String>(), "second");
-		this.verifyConcurrentAccess(new SlowSynchronizedStack<String>(), "first");
-	}
-
-	private void verifyConcurrentAccess(SlowStack<String> slowStack, String expected) throws Exception {
-		slowStack.push("first");
-		slowStack.push("second");
-
-		new Thread(this.buildRunnable(slowStack)).start();
-		Thread.sleep(200);
-
-		assertEquals(expected, slowStack.pop());
-	}
-
-	private Runnable buildRunnable(final SlowStack<String> slowStack) {
-		return new Runnable() {
-			public void run() {
-				slowStack.slowPop();
-			}
-		};
-	}
-
-
-	private interface SlowStack<E> extends Stack<E> {
-		Object slowPop();
-	}
-
-	private class SlowSimpleStack<E> extends SimpleStack<E> implements SlowStack<E> {
-		SlowSimpleStack() {
-			super();
-		}
-		public Object slowPop() {
-			try {
-				Thread.sleep(500);
-			} catch (InterruptedException ex) {
-				throw new RuntimeException(ex);
-			}
-			return this.pop();
-		}
-
-	}
-
-	private class SlowSynchronizedStack<E> extends SynchronizedStack<E> implements SlowStack<E> {
-		SlowSynchronizedStack() {
-			super();
-		}
-		public synchronized Object slowPop() {
-			try {
-				Thread.sleep(100);
-			} catch (InterruptedException ex) {
-				throw new RuntimeException(ex);
-			}
-			return this.pop();
-		}
-
-	}
-
-
-	// ********** waits **********
-
-	public void testWaitToPop() throws Exception {
-		this.verifyWaitToPop(0);
-		// no timeout occurs...
-		assertFalse(this.timeoutOccurred);
-		// ...and an item should have been popped by t2...
-		assertSame(ITEM_1, this.poppedObject);
-		// ...and the stack should be empty
-		assertTrue(this.ss.isEmpty());
-		// make a reasonable guess about how long t2 took
-		assertTrue(this.elapsedTime() > 150);
-	}
-
-	public void testWaitToPopTimeout() throws Exception {
-		this.verifyWaitToPop(20);
-		// timeout occurs...
-		assertTrue(this.timeoutOccurred);
-		// ...and the stack was never popped...
-		assertNull(this.poppedObject);
-		// ...and it still holds the item
-		assertSame(ITEM_1, this.ss.peek());
-		// make a reasonable guess about how long t2 took
-		assertTrue(this.elapsedTime() < 150);
-	}
-
-	private void verifyWaitToPop(long timeout) throws Exception {
-		Runnable r1 = this.buildRunnable(this.buildPushCommand(), this.ss, 200);
-		Runnable r2 = this.buildRunnable(this.buildWaitToPopCommand(timeout), this.ss, 0);
-		Thread t1 = new Thread(r1);
-		Thread t2 = new Thread(r2);
-		t1.start();
-		t2.start();
-		while (t1.isAlive() || t2.isAlive()) {
-			Thread.sleep(50);
-		}
-		assertFalse(this.exCaught);
-	}
-
-	public void testWaitToPush() throws Exception {
-		this.verifyWaitToPush(0);
-		// no timeout occurs...
-		assertFalse(this.timeoutOccurred);
-		// ...and the stack gets popped by t1...
-		assertSame(ITEM_1, this.poppedObject);
-		// ...and an item is pushed on to the stack by t2
-		assertFalse(this.ss.isEmpty());
-		assertSame(ITEM_2, this.ss.peek());
-		// make a reasonable guess about how long t2 took
-		assertTrue(this.elapsedTime() > 150);
-	}
-
-	public void testWaitToPushTimeout() throws Exception {
-		this.verifyWaitToPush(20);
-		// timeout occurs...
-		assertTrue(this.timeoutOccurred);
-		// ...and the stack is eventually popped by t1...
-		assertSame(ITEM_1, this.poppedObject);
-		// ...but nothing is pushed on to the stack by t2
-		assertTrue(this.ss.isEmpty());
-		// make a reasonable guess about how long t2 took
-		assertTrue(this.elapsedTime() < 150);
-	}
-
-	private void verifyWaitToPush(long timeout) throws Exception {
-		this.ss.push(ITEM_1);
-		Runnable r1 = this.buildRunnable(this.buildPopCommand(), this.ss, 200);
-		Runnable r2 = this.buildRunnable(this.buildWaitToPushCommand(timeout), this.ss, 0);
-		Thread t1 = new Thread(r1);
-		Thread t2 = new Thread(r2);
-		t1.start();
-		t2.start();
-		while (t1.isAlive() || t2.isAlive()) {
-			Thread.sleep(50);
-		}
-		assertFalse(this.exCaught);
-	}
-
-	private Command buildPushCommand() {
-		return new Command() {
-			public void execute(SynchronizedStack<String> synchronizedStack) {
-				synchronizedStack.push(ITEM_1);
-			}
-		};
-	}
-
-	private Command buildWaitToPopCommand(final long timeout) {
-		return new Command() {
-			public void execute(SynchronizedStack<String> synchronizedStack) throws Exception {
-				SynchronizedStackTests.this.setStartTime(System.currentTimeMillis());
-				try {
-					SynchronizedStackTests.this.setPoppedObject(synchronizedStack.waitToPop(timeout));
-				} catch (EmptyStackException ex) {
-					SynchronizedStackTests.this.setTimeoutOccurred(true);
-				}
-				SynchronizedStackTests.this.setEndTime(System.currentTimeMillis());
-			}
-		};
-	}
-
-	private Command buildPopCommand() {
-		return new Command() {
-			public void execute(SynchronizedStack<String> synchronizedStack) {
-				SynchronizedStackTests.this.setPoppedObject(synchronizedStack.pop());
-			}
-		};
-	}
-
-	private Command buildWaitToPushCommand(final long timeout) {
-		return new Command() {
-			public void execute(SynchronizedStack<String> synchronizedStack) throws Exception {
-				SynchronizedStackTests.this.setStartTime(System.currentTimeMillis());
-				SynchronizedStackTests.this.setTimeoutOccurred( ! synchronizedStack.waitToPush(ITEM_2, timeout));
-				SynchronizedStackTests.this.setEndTime(System.currentTimeMillis());
-			}
-		};
-	}
-
-	private Runnable buildRunnable(final Command command, final SynchronizedStack<String> synchronizedStack, final long sleep) {
-		return new Runnable() {
-			public void run() {
-				try {
-					if (sleep != 0) {
-						Thread.sleep(sleep);
-					}
-					command.execute(synchronizedStack);
-				} catch (Exception ex) {
-					SynchronizedStackTests.this.setExCaught(true);
-				}
-			}
-		};
-	}
-
-	void setExCaught(boolean exCaught) {
-		this.exCaught = exCaught;
-	}
-
-	void setTimeoutOccurred(boolean timeoutOccurred) {
-		this.timeoutOccurred = timeoutOccurred;
-	}
-
-	void setStartTime(long startTime) {
-		this.startTime = startTime;
-	}
-
-	void setEndTime(long endTime) {
-		this.endTime = endTime;
-	}
-
-	void setPoppedObject(Object poppedObject) {
-		this.poppedObject = poppedObject;
-	}
-
-	long elapsedTime() {
-		return this.endTime - this.startTime;
-	}
-
-
-	// ********** Command interface **********
-
-	private interface Command {
-		void execute(SynchronizedStack<String> synchronizedStack) throws Exception;
-	}
-
-}
diff --git a/jpa/tests/org.eclipse.jpt.utility.tests/src/org/eclipse/jpt/utility/tests/internal/TestTools.java b/jpa/tests/org.eclipse.jpt.utility.tests/src/org/eclipse/jpt/utility/tests/internal/TestTools.java
deleted file mode 100644
index c7a4d1c..0000000
--- a/jpa/tests/org.eclipse.jpt.utility.tests/src/org/eclipse/jpt/utility/tests/internal/TestTools.java
+++ /dev/null
@@ -1,143 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005, 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.utility.tests.internal;
-
-import java.io.ByteArrayInputStream;
-import java.io.ByteArrayOutputStream;
-import java.io.IOException;
-import java.io.ObjectInput;
-import java.io.ObjectInputStream;
-import java.io.ObjectOutputStream;
-import java.io.OutputStream;
-import java.io.PrintStream;
-import java.io.PrintWriter;
-import java.io.StringWriter;
-import java.lang.reflect.Field;
-import java.lang.reflect.Modifier;
-import junit.framework.TestCase;
-import junit.framework.TestFailure;
-import junit.framework.TestResult;
-
-/**
- * various tools that can be used by test cases
- */
-public final class TestTools {
-
-	/**
-	 * test an object's implementation of Serializable by serializing the
-	 * specified object to a byte array; then de-serializing the byte array and
-	 * returning the resultant object
-	 */
-	public static <T> T serialize(T o) throws IOException, ClassNotFoundException {
-		ByteArrayOutputStream baOutStream = new ByteArrayOutputStream(2000);
-		ObjectOutputStream outStream = new ObjectOutputStream(baOutStream);
-		outStream.writeObject(o);
-		outStream.close();
-
-		ByteArrayInputStream baInStream = new ByteArrayInputStream(baOutStream.toByteArray());
-		ObjectInputStream inStream = new ObjectInputStream(baInStream);
-		T o2 = readObject(inStream);
-		inStream.close();
-
-		return o2;
-	}
-
-	@SuppressWarnings("unchecked")
-	private static <T> T readObject(ObjectInput objectInput) throws IOException, ClassNotFoundException {
-		return (T) objectInput.readObject();
-	}
-
-	/**
-	 * redirect std out and std err to the specified stream
-	 */
-	public static void redirectSystemStreamsTo(OutputStream outputStream) {
-		redirectSystemStreamsTo(new PrintStream(outputStream));
-	}
-
-	/**
-	 * redirect std out and std err to the specified stream
-	 */
-	public static void redirectSystemStreamsTo(PrintStream printStream) {
-		System.setOut(printStream);
-		System.setErr(printStream);
-	}
-
-	/**
-	 * execute the specified test and return a text output of its results
-	 */
-	public static String execute(TestCase testCase) {
-		long start = System.currentTimeMillis();
-		TestResult result = testCase.run();
-		long end = System.currentTimeMillis();
-
-		StringWriter stringWriter = new StringWriter();
-		PrintWriter writer = new PrintWriter(stringWriter);
-		writer.print(testCase.getName());
-		writer.print(": "); //$NON-NLS-1$
-		if (result.wasSuccessful()) {
-			writer.println("OK"); //$NON-NLS-1$
-		} else {
-			TestFailure failure = null;
-			if (result.failures().hasMoreElements()) {
-				failure = (TestFailure) result.failures().nextElement();
-			} else {
-				failure = (TestFailure) result.errors().nextElement();
-			}
-			failure.thrownException().printStackTrace(writer);
-		}
-		writer.print("elapsed time: "); //$NON-NLS-1$
-		long elapsed = end - start;
-		writer.print(elapsed / 1000L);
-		writer.println(" sec."); //$NON-NLS-1$
-		return stringWriter.toString();
-	}
-
-	/**
-	 * Clear out all the instance variable of the specified test case, allowing
-	 * the various test fixtures to be garbage-collected. Typically this is
-	 * called in the #tearDown() method.
-	 */
-	public static void clear(TestCase testCase) throws IllegalAccessException {
-		for (Class<?> clazz = testCase.getClass(); clazz != TestCase_class; clazz = clazz.getSuperclass()) {
-			for (Field field : clazz.getDeclaredFields()) {
-				// leave primitives alone - they don't get garbage-collected, and we can't set them to null...
-				if (field.getType().isPrimitive()) {
-					continue;
-				}
-				// leave static fields alone (?)
-				if (Modifier.isStatic(field.getModifiers())) {
-					continue;
-				}
-				field.setAccessible(true);
-				field.set(testCase, null);
-			}
-		}
-	}
-
-	private static final Class<TestCase> TestCase_class = TestCase.class;
-
-	/**
-	 * Workaround for a JUnit bug: JUnit does not configure the testing Thread
-	 * with a context class loader. This should probably happen in
-	 * TestRunner.doRunTest(Test), just before starting the thread.
-	 */
-	public static void setUpJUnitThreadContextClassLoader() {
-		Thread.currentThread().setContextClassLoader(TestTools.class.getClassLoader());
-	}
-
-	/**
-	 * suppressed constructor
-	 */
-	private TestTools() {
-		super();
-		throw new UnsupportedOperationException();
-	}
-
-}
diff --git a/jpa/tests/org.eclipse.jpt.utility.tests/src/org/eclipse/jpt/utility/tests/internal/XMLStringEncoderTests.java b/jpa/tests/org.eclipse.jpt.utility.tests/src/org/eclipse/jpt/utility/tests/internal/XMLStringEncoderTests.java
deleted file mode 100644
index 3b104b9..0000000
--- a/jpa/tests/org.eclipse.jpt.utility.tests/src/org/eclipse/jpt/utility/tests/internal/XMLStringEncoderTests.java
+++ /dev/null
@@ -1,135 +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.utility.tests.internal;
-
-import junit.framework.TestCase;
-import org.eclipse.jpt.utility.internal.FileTools;
-import org.eclipse.jpt.utility.internal.XMLStringEncoder;
-
-public class XMLStringEncoderTests extends TestCase {
-
-	public XMLStringEncoderTests(String name) {
-		super(name);
-	}
-
-	public void testEncodeNoCharacterSequences() {
-		XMLStringEncoder encoder = new XMLStringEncoder(FileTools.INVALID_FILENAME_CHARACTERS);
-
-		String s = "foo";
-		assertEquals(s, encoder.encode(s));
-
-		s = "123foo123";
-		assertEquals(s, encoder.encode(s));
-	}
-
-	public void testEncodeCharacterSequences() {
-		XMLStringEncoder encoder = new XMLStringEncoder(FileTools.INVALID_FILENAME_CHARACTERS);
-
-		String s = "?foo?";
-		String expected = "&#x3f;foo&#x3f;";
-		assertEquals(expected, encoder.encode(s));
-
-		s = "?foo&123";
-		expected = "&#x3f;foo&#x26;123";
-		assertEquals(expected, encoder.encode(s));
-	}
-
-	public void testDenormalizeValidFileName() {
-		XMLStringEncoder encoder = new XMLStringEncoder(FileTools.INVALID_FILENAME_CHARACTERS);
-
-		String s = "foo";
-		assertEquals(s, encoder.decode(s));
-
-		s = "123foo123";
-		assertEquals(s, encoder.decode(s));
-	}
-
-	public void testDenormalizeInvalidFileName() {
-		XMLStringEncoder encoder = new XMLStringEncoder(FileTools.INVALID_FILENAME_CHARACTERS);
-
-		String s = "&#x3f;foo&#x3f;";
-		String expected = "?foo?";
-		assertEquals(expected, encoder.decode(s));
-
-		s = "&#x3f;foo&#x26;123";
-		expected = "?foo&123";
-		assertEquals(expected, encoder.decode(s));
-	}
-
-	public void testRoundTripNoCharacterSequences() {
-		this.verifyRoundTrip("foo");
-		this.verifyRoundTrip("123foo456");
-	}
-
-	public void testRoundTripCharacterSequences() {
-		this.verifyRoundTrip("?foo?");
-		this.verifyRoundTrip("?foo&123&&&&&&>>>>");
-	}
-
-	private void verifyRoundTrip(String s) {
-		XMLStringEncoder encoder = new XMLStringEncoder(FileTools.INVALID_FILENAME_CHARACTERS);
-		String actual = encoder.encode(s);
-		assertEquals(s, encoder.decode(actual));
-	}
-
-	public void testInvalidCharacterSequence1() {
-		this.verifyIllegalStateException("foo&");
-	}
-
-	public void testInvalidCharacterSequence2() {
-		this.verifyIllegalStateException("foo&#");
-	}
-
-	public void testInvalidCharacterSequence3() {
-		this.verifyIllegalStateException("foo&#x");
-	}
-
-	public void testInvalidCharacterSequence4() {
-		this.verifyIllegalStateException("foo&#x3");
-	}
-
-	public void testInvalidCharacterSequence5() {
-		this.verifyIllegalStateException("foo&#x;");
-	}
-
-	public void testInvalidCharacterSequence6() {
-		this.verifyIllegalStateException("foo&A");
-	}
-
-	public void testInvalidCharacterSequence7() {
-		this.verifyIllegalStateException("foo&#A");
-	}
-
-	private void verifyIllegalStateException(String s) {
-		XMLStringEncoder encoder = new XMLStringEncoder(FileTools.INVALID_FILENAME_CHARACTERS);
-		boolean exCaught = false;
-		try {
-			s = encoder.decode(s);
-			fail(s);
-		} catch (IllegalStateException ex) {
-			exCaught = true;
-		}
-		assertTrue(exCaught);
-	}
-
-	public void testInvalidCharacterSequence8() {
-		String s = "foo&#xZZZZ;";
-		XMLStringEncoder encoder = new XMLStringEncoder(FileTools.INVALID_FILENAME_CHARACTERS);
-		boolean exCaught = false;
-		try {
-			s = encoder.decode(s);
-			fail(s);
-		} catch (NumberFormatException ex) {
-			exCaught = true;
-		}
-		assertTrue(exCaught);
-	}
-
-}
diff --git a/jpa/tests/org.eclipse.jpt.utility.tests/src/org/eclipse/jpt/utility/tests/internal/enumerations/EmptyEnumerationTests.java b/jpa/tests/org.eclipse.jpt.utility.tests/src/org/eclipse/jpt/utility/tests/internal/enumerations/EmptyEnumerationTests.java
deleted file mode 100644
index 0bda77f..0000000
--- a/jpa/tests/org.eclipse.jpt.utility.tests/src/org/eclipse/jpt/utility/tests/internal/enumerations/EmptyEnumerationTests.java
+++ /dev/null
@@ -1,55 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005, 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.utility.tests.internal.enumerations;
-
-import java.util.Enumeration;
-import java.util.NoSuchElementException;
-import junit.framework.TestCase;
-
-import org.eclipse.jpt.utility.internal.enumerations.EmptyEnumeration;
-
-@SuppressWarnings("nls")
-public class EmptyEnumerationTests extends TestCase {
-
-	public EmptyEnumerationTests(String name) {
-		super(name);
-	}
-
-	public void testHasMoreElements() {
-		int i = 0;
-		for (Enumeration<Object> stream = EmptyEnumeration.instance(); stream.hasMoreElements();) {
-			stream.nextElement();
-			i++;
-		}
-		assertEquals(0, i);
-	}
-
-	public void testNextElement() {
-		for (Enumeration<Object> stream = EmptyEnumeration.instance(); stream.hasMoreElements();) {
-			fail("bogus element: " + stream.nextElement());
-		}
-	}
-
-	public void testNoSuchElementException() {
-		boolean exCaught = false;
-		Enumeration<Object> stream = EmptyEnumeration.instance();
-		Object element = null;
-		while (stream.hasMoreElements()) {
-			element = stream.nextElement();
-		}
-		try {
-			element = stream.nextElement();
-		} catch (NoSuchElementException ex) {
-			exCaught = true;
-		}
-		assertTrue("NoSuchElementException not thrown: " + element, exCaught);
-	}
-
-}
diff --git a/jpa/tests/org.eclipse.jpt.utility.tests/src/org/eclipse/jpt/utility/tests/internal/enumerations/IteratorEnumerationTests.java b/jpa/tests/org.eclipse.jpt.utility.tests/src/org/eclipse/jpt/utility/tests/internal/enumerations/IteratorEnumerationTests.java
deleted file mode 100644
index 545b349..0000000
--- a/jpa/tests/org.eclipse.jpt.utility.tests/src/org/eclipse/jpt/utility/tests/internal/enumerations/IteratorEnumerationTests.java
+++ /dev/null
@@ -1,100 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005, 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.utility.tests.internal.enumerations;
-
-import java.util.Enumeration;
-import java.util.Iterator;
-import java.util.NoSuchElementException;
-import java.util.Vector;
-import junit.framework.TestCase;
-
-import org.eclipse.jpt.utility.internal.enumerations.IteratorEnumeration;
-
-@SuppressWarnings("nls")
-public class IteratorEnumerationTests extends TestCase {
-
-	public IteratorEnumerationTests(String name) {
-		super(name);
-	}
-
-	public void testHasMoreElements() {
-		int i = 0;
-		for (Enumeration<String> stream = this.buildEnumeration(); stream.hasMoreElements();) {
-			stream.nextElement();
-			i++;
-		}
-		assertEquals(this.buildVector().size(), i);
-	}
-
-	public void testHasMoreElementsUpcast() {
-		int i = 0;
-		for (Enumeration<Object> stream = this.buildEnumerationUpcast(); stream.hasMoreElements();) {
-			stream.nextElement();
-			i++;
-		}
-		assertEquals(this.buildVector().size(), i);
-	}
-
-	public void testNextElement() {
-		Iterator<String> iterator = this.buildIterator();
-		for (Enumeration<String> stream = this.buildEnumeration(); stream.hasMoreElements();) {
-			assertEquals("bogus element", iterator.next(), stream.nextElement());
-		}
-	}
-
-	public void testNoSuchElementException() {
-		boolean exCaught = false;
-		Enumeration<String> stream = this.buildEnumeration();
-		String string = null;
-		while (stream.hasMoreElements()) {
-			string = stream.nextElement();
-		}
-		try {
-			string = stream.nextElement();
-		} catch (NoSuchElementException ex) {
-			exCaught = true;
-		}
-		assertTrue("NoSuchElementException not thrown: " + string, exCaught);
-	}
-
-	private Enumeration<String> buildEnumeration() {
-		return this.buildEnumeration(this.buildIterator());
-	}
-
-	private Enumeration<Object> buildEnumerationUpcast() {
-		return this.buildEnumerationUpcast(this.buildIterator());
-	}
-
-	private Enumeration<String> buildEnumeration(Iterator<String> iterator) {
-		return new IteratorEnumeration<String>(iterator);
-	}
-
-	private Enumeration<Object> buildEnumerationUpcast(Iterator<String> iterator) {
-		return new IteratorEnumeration<Object>(iterator);
-	}
-
-	private Iterator<String> buildIterator() {
-		return this.buildVector().iterator();
-	}
-
-	private Vector<String> buildVector() {
-		Vector<String> v = new Vector<String>();
-		v.addElement("one");
-		v.addElement("two");
-		v.addElement("three");
-		v.addElement("four");
-		v.addElement("five");
-		v.addElement("six");
-		v.addElement("seven");
-		v.addElement("eight");
-		return v;
-	}
-
-}
diff --git a/jpa/tests/org.eclipse.jpt.utility.tests/src/org/eclipse/jpt/utility/tests/internal/enumerations/JptUtilityEnumerationsTests.java b/jpa/tests/org.eclipse.jpt.utility.tests/src/org/eclipse/jpt/utility/tests/internal/enumerations/JptUtilityEnumerationsTests.java
deleted file mode 100644
index 8fd14c3..0000000
--- a/jpa/tests/org.eclipse.jpt.utility.tests/src/org/eclipse/jpt/utility/tests/internal/enumerations/JptUtilityEnumerationsTests.java
+++ /dev/null
@@ -1,34 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005, 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.utility.tests.internal.enumerations;
-
-import junit.framework.Test;
-import junit.framework.TestSuite;
-
-/**
- * decentralize test creation code
- */
-public class JptUtilityEnumerationsTests {
-
-	public static Test suite() {
-		TestSuite suite = new TestSuite(JptUtilityEnumerationsTests.class.getPackage().getName());
-
-		suite.addTestSuite(EmptyEnumerationTests.class);
-		suite.addTestSuite(IteratorEnumerationTests.class);
-
-		return suite;
-	}
-
-	private JptUtilityEnumerationsTests() {
-		super();
-		throw new UnsupportedOperationException();
-	}
-
-}
diff --git a/jpa/tests/org.eclipse.jpt.utility.tests/src/org/eclipse/jpt/utility/tests/internal/iterables/ArrayIterableTests.java b/jpa/tests/org.eclipse.jpt.utility.tests/src/org/eclipse/jpt/utility/tests/internal/iterables/ArrayIterableTests.java
deleted file mode 100644
index 6493efd..0000000
--- a/jpa/tests/org.eclipse.jpt.utility.tests/src/org/eclipse/jpt/utility/tests/internal/iterables/ArrayIterableTests.java
+++ /dev/null
@@ -1,130 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.utility.tests.internal.iterables;
-
-import java.util.Iterator;
-import java.util.NoSuchElementException;
-
-import junit.framework.TestCase;
-
-import org.eclipse.jpt.utility.internal.iterables.ArrayIterable;
-import org.eclipse.jpt.utility.internal.iterators.ArrayIterator;
-
-@SuppressWarnings("nls")
-public class ArrayIterableTests extends TestCase {
-
-	public ArrayIterableTests(String name) {
-		super(name);
-	}
-
-	public void testHasNext() {
-		int i = 0;
-		for (Iterator<String> stream = this.buildIterator(); stream.hasNext();) {
-			stream.next();
-			i++;
-		}
-		assertEquals(this.buildArray().length, i);
-	}
-
-	public void testNext() {
-		int i = 0;
-		for (Iterator<String> stream = this.buildIterator(); stream.hasNext();) {
-			assertEquals("bogus element", ++i, Integer.parseInt(stream.next()));
-		}
-	}
-
-	public void testNoSuchElementException() {
-		boolean exCaught = false;
-		Iterator<String> stream = this.buildIterator();
-		String string = null;
-		while (stream.hasNext()) {
-			string = stream.next();
-		}
-		try {
-			string = stream.next();
-		} catch (NoSuchElementException ex) {
-			exCaught = true;
-		}
-		assertTrue("NoSuchElementException not thrown: " + string, exCaught);
-	}
-
-	public void testUnsupportedOperationException() {
-		boolean exCaught = false;
-		for (Iterator<String> stream = this.buildIterator(); stream.hasNext();) {
-			if (stream.next().equals("3")) {
-				try {
-					stream.remove();
-				} catch (UnsupportedOperationException ex) {
-					exCaught = true;
-				}
-			}
-		}
-		assertTrue("UnsupportedOperationException not thrown", exCaught);
-	}
-
-	public void testIllegalArgumentException() {
-		this.triggerIllegalArgumentException(-1, 1);
-		this.triggerIllegalArgumentException(8, 1);
-		this.triggerIllegalArgumentException(0, -1);
-		this.triggerIllegalArgumentException(0, 9);
-	}
-
-	public void testGenerics() {
-		Integer[] integers = new Integer[3];
-		integers[0] = new Integer(0);
-		integers[1] = new Integer(1);
-		integers[2] = new Integer(2);
-		int i = 0;
-		for (Iterator<Number> stream = new ArrayIterator<Number>(integers); stream.hasNext();) {
-			assertEquals(i++, stream.next().intValue());
-		}
-		assertEquals(integers.length, i);
-	}
-
-	public void testVarargs() {
-		int i = 0;
-		for (Iterator<Number> stream = new ArrayIterator<Number>(new Integer(0), new Integer(1), new Integer(2)); stream.hasNext();) {
-			assertEquals(i++, stream.next().intValue());
-		}
-		assertEquals(3, i);
-	}
-
-	public void triggerIllegalArgumentException(int start, int length) {
-		boolean exCaught = false;
-		Iterator<String> stream = null;
-		try {
-			stream = this.buildIterator(start, length);
-		} catch (IllegalArgumentException ex) {
-			exCaught = true;
-		}
-		assertTrue("IllegalArgumentException not thrown: " + stream, exCaught);
-	}
-
-	Iterator<String> buildIterator() {
-		return this.buildIterable(this.buildArray()).iterator();
-	}
-
-	Iterable<String> buildIterable(String[] array) {
-		return new ArrayIterable<String>(array);
-	}
-
-	Iterator<String> buildIterator(int start, int length) {
-		return this.buildIterable(this.buildArray(), start, length).iterator();
-	}
-
-	Iterable<String> buildIterable(String[] array, int start, int length) {
-		return new ArrayIterable<String>(array, start, length);
-	}
-
-	String[] buildArray() {
-		return new String[] { "1", "2", "3", "4", "5", "6", "7", "8" };
-	}
-
-}
diff --git a/jpa/tests/org.eclipse.jpt.utility.tests/src/org/eclipse/jpt/utility/tests/internal/iterables/JptUtilityIterablesTests.java b/jpa/tests/org.eclipse.jpt.utility.tests/src/org/eclipse/jpt/utility/tests/internal/iterables/JptUtilityIterablesTests.java
deleted file mode 100644
index 10a8dba..0000000
--- a/jpa/tests/org.eclipse.jpt.utility.tests/src/org/eclipse/jpt/utility/tests/internal/iterables/JptUtilityIterablesTests.java
+++ /dev/null
@@ -1,33 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.utility.tests.internal.iterables;
-
-import junit.framework.Test;
-import junit.framework.TestSuite;
-
-/**
- * decentralize test creation code
- */
-public class JptUtilityIterablesTests {
-
-	public static Test suite() {
-		TestSuite suite = new TestSuite(JptUtilityIterablesTests.class.getPackage().getName());
-
-		suite.addTestSuite(ArrayIterableTests.class);
-
-		return suite;
-	}
-
-	private JptUtilityIterablesTests() {
-		super();
-		throw new UnsupportedOperationException();
-	}
-
-}
diff --git a/jpa/tests/org.eclipse.jpt.utility.tests/src/org/eclipse/jpt/utility/tests/internal/iterators/ArrayIteratorTests.java b/jpa/tests/org.eclipse.jpt.utility.tests/src/org/eclipse/jpt/utility/tests/internal/iterators/ArrayIteratorTests.java
deleted file mode 100644
index 4e2e53d..0000000
--- a/jpa/tests/org.eclipse.jpt.utility.tests/src/org/eclipse/jpt/utility/tests/internal/iterators/ArrayIteratorTests.java
+++ /dev/null
@@ -1,127 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005, 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.utility.tests.internal.iterators;
-
-import java.util.Iterator;
-import java.util.NoSuchElementException;
-import junit.framework.TestCase;
-import org.eclipse.jpt.utility.internal.iterators.ArrayIterator;
-
-@SuppressWarnings("nls")
-public class ArrayIteratorTests extends TestCase {
-
-	public ArrayIteratorTests(String name) {
-		super(name);
-	}
-
-	public void testHasNext() {
-		int i = 0;
-		for (Iterator<String> stream = this.buildIterator(); stream.hasNext();) {
-			stream.next();
-			i++;
-		}
-		assertEquals(this.buildArray().length, i);
-	}
-
-	public void testNext() {
-		int i = 0;
-		for (Iterator<String> stream = this.buildIterator(); stream.hasNext();) {
-			assertEquals("bogus element", ++i, Integer.parseInt(stream.next()));
-		}
-	}
-
-	public void testNoSuchElementException() {
-		boolean exCaught = false;
-		Iterator<String> stream = this.buildIterator();
-		String string = null;
-		while (stream.hasNext()) {
-			string = stream.next();
-		}
-		try {
-			string = stream.next();
-		} catch (NoSuchElementException ex) {
-			exCaught = true;
-		}
-		assertTrue("NoSuchElementException not thrown: " + string, exCaught);
-	}
-
-	public void testUnsupportedOperationException() {
-		boolean exCaught = false;
-		for (Iterator<String> stream = this.buildIterator(); stream.hasNext();) {
-			if (stream.next().equals("3")) {
-				try {
-					stream.remove();
-				} catch (UnsupportedOperationException ex) {
-					exCaught = true;
-				}
-			}
-		}
-		assertTrue("UnsupportedOperationException not thrown", exCaught);
-	}
-
-	public void testIllegalArgumentException() {
-		this.triggerIllegalArgumentException(-1, 1);
-		this.triggerIllegalArgumentException(8, 1);
-		this.triggerIllegalArgumentException(0, -1);
-		this.triggerIllegalArgumentException(0, 9);
-	}
-
-	public void testGenerics() {
-		Integer[] integers = new Integer[3];
-		integers[0] = new Integer(0);
-		integers[1] = new Integer(1);
-		integers[2] = new Integer(2);
-		int i = 0;
-		for (Iterator<Number> stream = new ArrayIterator<Number>(integers); stream.hasNext();) {
-			assertEquals(i++, stream.next().intValue());
-		}
-		assertEquals(integers.length, i);
-	}
-
-	public void testVarargs() {
-		int i = 0;
-		for (Iterator<Number> stream = new ArrayIterator<Number>(new Integer(0), new Integer(1), new Integer(2)); stream.hasNext();) {
-			assertEquals(i++, stream.next().intValue());
-		}
-		assertEquals(3, i);
-	}
-
-	public void triggerIllegalArgumentException(int start, int length) {
-		boolean exCaught = false;
-		Iterator<String> stream = null;
-		try {
-			stream = this.buildIterator(start, length);
-		} catch (IllegalArgumentException ex) {
-			exCaught = true;
-		}
-		assertTrue("IllegalArgumentException not thrown: " + stream, exCaught);
-	}
-
-	Iterator<String> buildIterator() {
-		return this.buildIterator(this.buildArray());
-	}
-
-	Iterator<String> buildIterator(String[] array) {
-		return new ArrayIterator<String>(array);
-	}
-
-	Iterator<String> buildIterator(int start, int length) {
-		return this.buildIterator(this.buildArray(), start, length);
-	}
-
-	Iterator<String> buildIterator(String[] array, int start, int length) {
-		return new ArrayIterator<String>(array, start, length);
-	}
-
-	String[] buildArray() {
-		return new String[] { "1", "2", "3", "4", "5", "6", "7", "8" };
-	}
-
-}
diff --git a/jpa/tests/org.eclipse.jpt.utility.tests/src/org/eclipse/jpt/utility/tests/internal/iterators/ArrayListIteratorTests.java b/jpa/tests/org.eclipse.jpt.utility.tests/src/org/eclipse/jpt/utility/tests/internal/iterators/ArrayListIteratorTests.java
deleted file mode 100644
index d0a5ad1..0000000
--- a/jpa/tests/org.eclipse.jpt.utility.tests/src/org/eclipse/jpt/utility/tests/internal/iterators/ArrayListIteratorTests.java
+++ /dev/null
@@ -1,151 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005, 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.utility.tests.internal.iterators;
-
-import java.util.Iterator;
-import java.util.ListIterator;
-import java.util.NoSuchElementException;
-import org.eclipse.jpt.utility.internal.iterators.ArrayListIterator;
-
-@SuppressWarnings("nls")
-public class ArrayListIteratorTests extends ArrayIteratorTests {
-
-	public ArrayListIteratorTests(String name) {
-		super(name);
-	}
-
-	public void testHasPrevious() {
-		ListIterator<String> stream = this.buildListIterator();
-		while (stream.hasNext()) {
-			stream.next();
-		}
-		int i = 0;
-		while (stream.hasPrevious()) {
-			stream.previous();
-			i++;
-		}
-		assertEquals(this.buildArray().length, i);
-	}
-
-	public void testPrevious() {
-		ListIterator<String> stream = this.buildListIterator();
-		while (stream.hasNext()) {
-			stream.next();
-		}
-		int i = this.buildArray().length;
-		while (stream.hasPrevious()) {
-			assertEquals("bogus element", i--, Integer.parseInt(stream.previous()));
-		}
-	}
-
-	public void testNextIndex() {
-		int i = 0;
-		ListIterator<String> stream = this.buildListIterator();
-		while (stream.hasNext()) {
-			assertEquals(i, stream.nextIndex());
-			stream.next();
-			i++;
-		}
-		assertEquals(i, stream.nextIndex());
-	}
-
-	public void testPreviousIndex() {
-		int i = 0;
-		ListIterator<String> stream = this.buildListIterator();
-		while (stream.hasNext()) {
-			assertEquals(i - 1, stream.previousIndex());
-			stream.next();
-			i++;
-		}
-		assertEquals(i - 1, stream.previousIndex());
-	}
-
-	@Override
-	public void testNoSuchElementException() {
-		boolean exCaught = false;
-		ListIterator<String> stream = this.buildListIterator();
-		String string = null;
-		try {
-			string = stream.previous();
-		} catch (NoSuchElementException ex) {
-			exCaught = true;
-		}
-		assertTrue("NoSuchElementException not thrown: " + string, exCaught);
-	}
-
-	public void testUnsupportedOperationExceptionAdd() {
-		boolean exCaught = false;
-		for (ListIterator<String> stream = this.buildListIterator(); stream.hasNext();) {
-			if (stream.next().equals("3")) {
-				try {
-					stream.add("3.5");
-				} catch (UnsupportedOperationException ex) {
-					exCaught = true;
-				}
-			}
-		}
-		assertTrue("UnsupportedOperationException not thrown", exCaught);
-	}
-
-	public void testUnsupportedOperationExceptionSet() {
-		boolean exCaught = false;
-		for (ListIterator<String> stream = this.buildListIterator(); stream.hasNext();) {
-			if (stream.next().equals("3")) {
-				try {
-					stream.set("three");
-				} catch (UnsupportedOperationException ex) {
-					exCaught = true;
-				}
-			}
-		}
-		assertTrue("UnsupportedOperationException not thrown", exCaught);
-	}
-
-	@Override
-	public void testGenerics() {
-		Integer[] integers = new Integer[3];
-		integers[0] = new Integer(0);
-		integers[1] = new Integer(1);
-		integers[2] = new Integer(2);
-		int i = 0;
-		for (Iterator<Number> stream = new ArrayListIterator<Number>(integers); stream.hasNext();) {
-			assertEquals(i++, stream.next().intValue());
-		}
-		assertEquals(integers.length, i);
-	}
-
-	@Override
-	public void testVarargs() {
-		int i = 0;
-		for (Iterator<Number> stream = new ArrayListIterator<Number>(new Integer(0), new Integer(1), new Integer(2)); stream.hasNext();) {
-			assertEquals(i++, stream.next().intValue());
-		}
-		assertEquals(3, i);
-	}
-
-	private ListIterator<String> buildListIterator() {
-		return this.buildListIterator(this.buildArray());
-	}
-
-	private ListIterator<String> buildListIterator(String[] array) {
-		return new ArrayListIterator<String>(array);
-	}
-
-	@Override
-	Iterator<String> buildIterator(String[] array) {
-		return new ArrayListIterator<String>(array);
-	}
-
-	@Override
-	Iterator<String> buildIterator(String[] array, int start, int length) {
-		return new ArrayListIterator<String>(array, start, length);
-	}
-
-}
diff --git a/jpa/tests/org.eclipse.jpt.utility.tests/src/org/eclipse/jpt/utility/tests/internal/iterators/ChainIteratorTests.java b/jpa/tests/org.eclipse.jpt.utility.tests/src/org/eclipse/jpt/utility/tests/internal/iterators/ChainIteratorTests.java
deleted file mode 100644
index 97d6cee..0000000
--- a/jpa/tests/org.eclipse.jpt.utility.tests/src/org/eclipse/jpt/utility/tests/internal/iterators/ChainIteratorTests.java
+++ /dev/null
@@ -1,133 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005, 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.utility.tests.internal.iterators;
-
-import java.util.AbstractCollection;
-import java.util.AbstractList;
-import java.util.Iterator;
-import java.util.NoSuchElementException;
-import java.util.Vector;
-import junit.framework.TestCase;
-import org.eclipse.jpt.utility.internal.iterators.ChainIterator;
-
-@SuppressWarnings("nls")
-public class ChainIteratorTests extends TestCase {
-	private final static Class<?>[] VECTOR_HIERARCHY = { Vector.class, AbstractList.class, AbstractCollection.class, Object.class };
-
-	public ChainIteratorTests(String name) {
-		super(name);
-	}
-
-	public void testHasNext() {
-		int i = 0;
-		for (Iterator<Class<?>> stream = this.buildIterator(); stream.hasNext();) {
-			stream.next();
-			i++;
-		}
-		assertEquals(VECTOR_HIERARCHY.length, i);
-	}
-
-	public void testInnerHasNext() {
-		int i = 0;
-		for (Iterator<Class<?>> stream = this.buildInnerIterator(); stream.hasNext();) {
-			stream.next();
-			i++;
-		}
-		assertEquals(VECTOR_HIERARCHY.length, i);
-	}
-
-	public void testNext() {
-		int i = 0;
-		for (Iterator<Class<?>> stream = this.buildIterator(); stream.hasNext(); i++) {
-			assertEquals("bogus link", VECTOR_HIERARCHY[i], stream.next());
-		}
-	}
-
-	public void testInnerNext() {
-		int i = 0;
-		for (Iterator<Class<?>> stream = this.buildInnerIterator(); stream.hasNext(); i++) {
-			assertEquals("bogus link", VECTOR_HIERARCHY[i], stream.next());
-		}
-	}
-
-	public void testNoSuchElementException() {
-		boolean exCaught = false;
-		Iterator<Class<?>> stream = this.buildIterator();
-		Class<?> javaClass = null;
-		while (stream.hasNext()) {
-			javaClass = stream.next();
-		}
-		try {
-			javaClass = stream.next();
-		} catch (NoSuchElementException ex) {
-			exCaught = true;
-		}
-		assertTrue("NoSuchElementException not thrown: " + javaClass, exCaught);
-	}
-
-	public void testUnsupportedOperationException() {
-		boolean exCaught = false;
-		for (Iterator<Class<?>> stream = this.buildIterator(); stream.hasNext();) {
-			if (stream.next() == AbstractCollection.class) {
-				try {
-					stream.remove();
-				} catch (UnsupportedOperationException ex) {
-					exCaught = true;
-				}
-			}
-		}
-		assertTrue("UnsupportedOperationException not thrown", exCaught);
-	}
-
-	private Iterator<Class<?>> buildIterator() {
-		return this.buildChainIterator(Vector.class, this.buildLinker());
-	}
-
-	private Iterator<Class<?>> buildInnerIterator() {
-		return this.buildInnerChainIterator(Vector.class);
-	}
-
-	private Iterator<Class<?>> buildChainIterator(Class<?> startLink, ChainIterator.Linker<Class<?>> linker) {
-		return new ChainIterator<Class<?>>(startLink, linker);
-	}
-
-	private ChainIterator.Linker<Class<?>> buildLinker() {
-		// chain up the class's hierarchy
-		return new ChainIterator.Linker<Class<?>>() {
-			public Class<?> nextLink(Class<?> currentLink) {
-				return currentLink.getSuperclass();
-			}
-		};
-	}
-
-	private Iterator<Class<?>> buildInnerChainIterator(Class<?> startLink) {
-		// chain up the class's hierarchy
-		return new ChainIterator<Class<?>>(startLink) {
-			@Override
-			protected Class<?> nextLink(Class<?> currentLink) {
-				return currentLink.getSuperclass();
-			}
-		};
-	}
-
-	public void testInvalidChainIterator() {
-		// missing method override
-		Iterator<Class<?>> iterator = new ChainIterator<Class<?>>(Vector.class);
-		boolean exCaught = false;
-		try {
-			Class<?> c = iterator.next();
-			fail("invalid class: " + c.getName());
-		} catch (UnsupportedOperationException ex) {
-			exCaught = true;
-		}
-		assertTrue("NoSuchElementException not thrown", exCaught);
-	}
-
-}
diff --git a/jpa/tests/org.eclipse.jpt.utility.tests/src/org/eclipse/jpt/utility/tests/internal/iterators/CloneIteratorTests.java b/jpa/tests/org.eclipse.jpt.utility.tests/src/org/eclipse/jpt/utility/tests/internal/iterators/CloneIteratorTests.java
deleted file mode 100644
index b35cf0a..0000000
--- a/jpa/tests/org.eclipse.jpt.utility.tests/src/org/eclipse/jpt/utility/tests/internal/iterators/CloneIteratorTests.java
+++ /dev/null
@@ -1,253 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005, 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.utility.tests.internal.iterators;
-
-import java.util.ArrayList;
-import java.util.Collection;
-import java.util.Collections;
-import java.util.Iterator;
-import java.util.NoSuchElementException;
-import junit.framework.TestCase;
-import org.eclipse.jpt.utility.internal.iterators.CloneIterator;
-import org.eclipse.jpt.utility.tests.internal.TestTools;
-
-@SuppressWarnings("nls")
-public class CloneIteratorTests extends TestCase {
-	Collection<String> originalCollection;
-
-	private boolean concurrentProblem;
-	private Collection<String> concurrentCollection;
-
-	public CloneIteratorTests(String name) {
-		super(name);
-	}
-
-	@Override
-	protected void setUp() throws Exception {
-		super.setUp();
-		this.originalCollection = this.buildCollection();
-	}
-
-	@Override
-	protected void tearDown() throws Exception {
-		TestTools.clear(this);
-		super.tearDown();
-	}
-
-	public void testHasNext() {
-		int originalSize = this.originalCollection.size();
-		int i = 0;
-		for (Iterator<String> stream = this.buildCloneIterator(); stream.hasNext();) {
-			stream.next();
-			// should allow concurrent modification
-			this.originalCollection.add("foo");
-			i++;
-		}
-		assertTrue(originalSize != this.originalCollection.size());
-		assertEquals(originalSize, i);
-	}
-
-	public void testNext() {
-		Iterator<String> nestedIterator = this.originalCollection.iterator();
-		for (Iterator<String> stream = this.buildCloneIterator(); stream.hasNext();) {
-			assertEquals("bogus element", nestedIterator.next(), stream.next());
-		}
-	}
-
-	public void testNoSuchElementException() {
-		boolean exCaught = false;
-		Iterator<String> stream = this.buildCloneIterator();
-		String string = null;
-		while (stream.hasNext()) {
-			string = stream.next();
-		}
-		try {
-			string = stream.next();
-		} catch (NoSuchElementException ex) {
-			exCaught = true;
-		}
-		assertTrue("NoSuchElementException not thrown: " + string, exCaught);
-	}
-
-	public void testRemoveDefault() {
-		boolean exCaught = false;
-		for (Iterator<String> stream = this.buildCloneIterator(); stream.hasNext();) {
-			if (stream.next().equals("three")) {
-				try {
-					stream.remove();
-				} catch (UnsupportedOperationException ex) {
-					exCaught = true;
-				}
-			}
-		}
-		assertTrue("UnsupportedOperationException not thrown", exCaught);
-	}
-
-	public void testRemoveEliminator() {
-		CloneIterator.Mutator<String> eliminator = new CloneIterator.Mutator<String>() {
-			public void remove(String current) {
-				CloneIteratorTests.this.originalCollection.remove(current);
-			}
-		};
-		this.verifyRemove(new CloneIterator<String>(this.originalCollection, eliminator));
-	}
-
-	public void testRemoveSubclass() {
-		this.verifyRemove(new CloneIterator<String>(this.originalCollection) {
-			@Override
-			protected void remove(String current) {
-				CloneIteratorTests.this.originalCollection.remove(current);
-			}
-		});
-	}
-
-	/**
-	 * Test concurrent access: First build a clone iterator in a separate thread
-	 * that hangs momentarily during its construction; then modify the shared
-	 * collection in this thread. This would cause a
-	 * ConcurrentModificationException in the other thread if the clone iterator
-	 * were not synchronized on the original collection.
-	 */
-	public void testConcurrentAccess() throws Exception {
-		SlowCollection<String> slow = new SlowCollection<String>();
-		this.populateCollection(slow);
-		// using the unsynchronized collection will cause the test to fail
-		//		this.originalCollection = slow;
-		this.originalCollection = Collections.synchronizedCollection(slow);
-
-		this.concurrentProblem = false;
-		this.concurrentCollection = new ArrayList<String>();
-		Thread thread = new Thread(this.buildRunnable());
-		thread.start();
-		while (!slow.hasStartedClone()) {
-			// wait for the other thread to start the clone...
-			Thread.yield();
-		}
-		// ...then sneak in an extra element
-		this.originalCollection.add("seventeen");
-		while (thread.isAlive()) {
-			// wait for the other thread to finish
-			Thread.yield();
-		}
-		assertFalse(this.concurrentProblem);
-		Collection<String> expected = new ArrayList<String>();
-		this.populateCollection(expected);
-		assertEquals(expected, this.concurrentCollection);
-	}
-
-	private Runnable buildRunnable() {
-		return new Runnable() {
-			public void run() {
-				CloneIteratorTests.this.loopWithCloneIterator();
-			}
-		};
-	}
-
-	/**
-	 * use a clone iterator to loop over the "slow" collection and copy its
-	 * contents to the concurrent collection
-	 */
-	void loopWithCloneIterator() {
-		try {
-			for (Iterator<String> stream = this.buildCloneIterator(); stream.hasNext();) {
-				this.concurrentCollection.add(stream.next());
-			}
-		} catch (Throwable t) {
-			this.concurrentProblem = true;
-		}
-	}
-
-	private void verifyRemove(Iterator<String> iterator) {
-		Object removed = "three";
-		assertTrue(this.originalCollection.contains(removed));
-		// try to remove before calling #next()
-		boolean exCaught = false;
-		try {
-			iterator.remove();
-		} catch (IllegalStateException ex) {
-			exCaught = true;
-		}
-		assertTrue("IllegalStateException not thrown", exCaught);
-		while (iterator.hasNext()) {
-			if (iterator.next().equals(removed)) {
-				iterator.remove();
-				// try to remove twice
-				exCaught = false;
-				try {
-					iterator.remove();
-				} catch (IllegalStateException ex) {
-					exCaught = true;
-				}
-				assertTrue("IllegalStateException not thrown", exCaught);
-			}
-		}
-		assertFalse(this.originalCollection.contains(removed));
-	}
-
-	private Iterator<String> buildCloneIterator() {
-		return this.buildCloneIterator(this.originalCollection);
-	}
-
-	private Iterator<String> buildCloneIterator(Collection<String> c) {
-		return new CloneIterator<String>(c);
-	}
-
-	private Collection<String> buildCollection() {
-		Collection<String> c = this.buildEmptyCollection();
-		this.populateCollection(c);
-		return c;
-	}
-
-	protected Collection<String> buildEmptyCollection() {
-		return new ArrayList<String>();
-	}
-
-	private void populateCollection(Collection<String> c) {
-		c.add("one");
-		c.add("two");
-		c.add("three");
-		c.add("four");
-		c.add("five");
-		c.add("six");
-		c.add("seven");
-		c.add("eight");
-	}
-
-	// ********** custom collection **********
-	static class SlowCollection<E> extends ArrayList<E> {
-		private static final long serialVersionUID = 1L;
-		private boolean hasStartedClone = false;
-
-		public SlowCollection() {
-			super();
-		}
-
-		@Override
-		public Object[] toArray() {
-			this.setHasStartedClone(true);
-			// take a little snooze before returning the array
-			try {
-				Thread.sleep(100);
-			} catch (InterruptedException ex) {
-				throw new RuntimeException(ex);
-			}
-			return super.toArray();
-		}
-
-		synchronized void setHasStartedClone(boolean hasStartedClone) {
-			this.hasStartedClone = hasStartedClone;
-		}
-
-		synchronized boolean hasStartedClone() {
-			return this.hasStartedClone;
-		}
-	}
-
-}
diff --git a/jpa/tests/org.eclipse.jpt.utility.tests/src/org/eclipse/jpt/utility/tests/internal/iterators/CloneListIteratorTests.java b/jpa/tests/org.eclipse.jpt.utility.tests/src/org/eclipse/jpt/utility/tests/internal/iterators/CloneListIteratorTests.java
deleted file mode 100644
index 0d43074..0000000
--- a/jpa/tests/org.eclipse.jpt.utility.tests/src/org/eclipse/jpt/utility/tests/internal/iterators/CloneListIteratorTests.java
+++ /dev/null
@@ -1,409 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005, 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.utility.tests.internal.iterators;
-
-import java.util.ArrayList;
-import java.util.Collections;
-import java.util.List;
-import java.util.ListIterator;
-import java.util.NoSuchElementException;
-import junit.framework.TestCase;
-import org.eclipse.jpt.utility.internal.iterators.CloneListIterator;
-import org.eclipse.jpt.utility.tests.internal.TestTools;
-
-@SuppressWarnings("nls")
-public class CloneListIteratorTests extends TestCase {
-	List<String> originalList;
-
-	private boolean concurrentProblem;
-	private List<String> concurrentList;
-
-	public CloneListIteratorTests(String name) {
-		super(name);
-	}
-
-	@Override
-	protected void setUp() throws Exception {
-		super.setUp();
-		this.originalList = this.buildList();
-	}
-
-	@Override
-	protected void tearDown() throws Exception {
-		TestTools.clear(this);
-		super.tearDown();
-	}
-
-	public void testHasNext() {
-		int originalSize = this.originalList.size();
-		int i = 0;
-		for (ListIterator<String> stream = this.buildCloneListIterator(); stream.hasNext();) {
-			stream.next();
-			// should allow concurrent modification
-			this.originalList.add("foo");
-			i++;
-		}
-		assertTrue(originalSize != this.originalList.size());
-		assertEquals(originalSize, i);
-	}
-
-	public void testNext() {
-		ListIterator<String> nestedListIterator = this.buildNestedListIterator();
-		for (ListIterator<String> stream = this.buildCloneListIterator(); stream.hasNext();) {
-			assertEquals("bogus element", nestedListIterator.next(), stream.next());
-		}
-	}
-
-	public void testIndex() {
-		ListIterator<String> cloneListIterator = this.buildCloneListIterator();
-		ListIterator<String> nestedListIterator = this.buildNestedListIterator();
-		for (int i = 0; i < 7; i++) {
-			nestedListIterator.next();
-			cloneListIterator.next();
-			assertEquals("bogus index", nestedListIterator.nextIndex(), cloneListIterator.nextIndex());
-			assertEquals("bogus index", nestedListIterator.previousIndex(), cloneListIterator.previousIndex());
-		}
-
-		for (int i = 0; i < 3; i++) {
-			nestedListIterator.previous();
-			cloneListIterator.previous();
-			assertEquals("bogus index", nestedListIterator.nextIndex(), cloneListIterator.nextIndex());
-			assertEquals("bogus index", nestedListIterator.previousIndex(), cloneListIterator.previousIndex());
-		}
-
-		while (nestedListIterator.hasNext()) {
-			nestedListIterator.next();
-			cloneListIterator.next();
-			assertEquals("bogus index", nestedListIterator.nextIndex(), cloneListIterator.nextIndex());
-			assertEquals("bogus index", nestedListIterator.previousIndex(), cloneListIterator.previousIndex());
-		}
-	}
-
-	public void testHasPrevious() {
-		int originalSize = this.originalList.size();
-		int i = 0;
-		ListIterator<String> stream = this.buildCloneListIterator();
-		while (stream.hasNext()) {
-			stream.next();
-			this.originalList.add("foo");
-			i++;
-		}
-		assertTrue(originalSize != this.originalList.size());
-		originalSize = this.originalList.size();
-		while (stream.hasPrevious()) {
-			stream.previous();
-			// should allow concurrent modification
-			this.originalList.add("bar");
-			i--;
-		}
-		assertTrue(originalSize != this.originalList.size());
-		assertEquals(0, i);
-	}
-
-	public void testPrevious() {
-		ListIterator<String> nestedListIterator = this.buildNestedListIterator();
-		ListIterator<String> stream = this.buildCloneListIterator();
-		while (stream.hasNext()) {
-			nestedListIterator.next();
-			stream.next();
-		}
-		while (stream.hasPrevious()) {
-			assertEquals("bogus element", nestedListIterator.previous(), stream.previous());
-		}
-	}
-
-	public void testNoSuchElementException() {
-		boolean exCaught = false;
-		ListIterator<String> stream = this.buildCloneListIterator();
-		String string = null;
-		while (stream.hasNext()) {
-			string = stream.next();
-		}
-		try {
-			string = stream.next();
-		} catch (NoSuchElementException ex) {
-			exCaught = true;
-		}
-		assertTrue("NoSuchElementException not thrown: " + string, exCaught);
-
-		exCaught = false;
-		while (stream.hasPrevious()) {
-			string = stream.previous();
-		}
-		try {
-			string = stream.previous();
-		} catch (NoSuchElementException ex) {
-			exCaught = true;
-		}
-		assertTrue("NoSuchElementException not thrown: " + string, exCaught);
-	}
-
-	public void testModifyDefault() {
-		boolean exCaught = false;
-		for (ListIterator<String> stream = this.buildCloneListIterator(); stream.hasNext();) {
-			if (stream.next().equals("three")) {
-				try {
-					stream.remove();
-				} catch (UnsupportedOperationException ex) {
-					exCaught = true;
-				}
-			}
-		}
-		assertTrue("UnsupportedOperationException not thrown", exCaught);
-
-		exCaught = false;
-		for (ListIterator<String> stream = this.buildCloneListIterator(); stream.hasNext();) {
-			if (stream.next().equals("three")) {
-				try {
-					stream.add("three and a half");
-				} catch (UnsupportedOperationException ex) {
-					exCaught = true;
-				}
-			}
-		}
-		assertTrue("UnsupportedOperationException not thrown", exCaught);
-
-		exCaught = false;
-		for (ListIterator<String> stream = this.buildCloneListIterator(); stream.hasNext();) {
-			if (stream.next().equals("three")) {
-				try {
-					stream.set("another three");
-				} catch (UnsupportedOperationException ex) {
-					exCaught = true;
-				}
-			}
-		}
-		assertTrue("UnsupportedOperationException not thrown", exCaught);
-	}
-
-	public void testModifyMutatorNext() {
-		this.verifyModifyNext(new CloneListIterator<String>(this.originalList, this.buildMutator()));
-	}
-
-	public void testModifyMutatorPrevious() {
-		this.verifyModifyPrevious(new CloneListIterator<String>(this.originalList, this.buildMutator()));
-	}
-
-	private CloneListIterator.Mutator<String> buildMutator() {
-		return new CloneListIterator.Mutator<String>() {
-			public void add(int index, String o) {
-				CloneListIteratorTests.this.originalList.add(index, o);
-			}
-
-			public void remove(int index) {
-				CloneListIteratorTests.this.originalList.remove(index);
-			}
-
-			public void set(int index, String o) {
-				CloneListIteratorTests.this.originalList.set(index, o);
-			}
-		};
-	}
-
-	public void testModifySubclassNext() {
-		this.verifyModifyNext(this.buildSubclass());
-	}
-
-	public void testModifySubclassPrevious() {
-		this.verifyModifyPrevious(this.buildSubclass());
-	}
-
-	private ListIterator<String> buildSubclass() {
-		return new CloneListIterator<String>(this.originalList) {
-			@Override
-			protected void add(int currentIndex, String o) {
-				CloneListIteratorTests.this.originalList.add(currentIndex, o);
-			}
-
-			@Override
-			protected void remove(int currentIndex) {
-				CloneListIteratorTests.this.originalList.remove(currentIndex);
-			}
-
-			@Override
-			protected void set(int currentIndex, String o) {
-				CloneListIteratorTests.this.originalList.set(currentIndex, o);
-			}
-		};
-	}
-
-	private void verifyModifyNext(ListIterator<String> iterator) {
-		String removed = "three";
-		String addedAfter = "five";
-		String added = "five and a half";
-		String replaced = "seven";
-		String replacement = "another seven";
-		assertTrue(this.originalList.contains(removed));
-		assertTrue(this.originalList.contains(addedAfter));
-		assertTrue(this.originalList.contains(replaced));
-		// try to remove before calling #next()
-		boolean exCaught = false;
-		try {
-			iterator.remove();
-		} catch (IllegalStateException ex) {
-			exCaught = true;
-		}
-		assertTrue("IllegalStateException not thrown", exCaught);
-		while (iterator.hasNext()) {
-			String next = iterator.next();
-			if (next.equals(addedAfter)) {
-				iterator.add(added);
-			}
-			if (next.equals(removed)) {
-				iterator.remove();
-				// try to remove twice
-				exCaught = false;
-				try {
-					iterator.remove();
-				} catch (IllegalStateException ex) {
-					exCaught = true;
-				}
-				assertTrue("IllegalStateException not thrown", exCaught);
-			}
-			if (next.equals(replaced)) {
-				iterator.set(replacement);
-			}
-		}
-		assertTrue(this.originalList.contains(added));
-		assertFalse(this.originalList.contains(removed));
-		assertFalse(this.originalList.contains(replaced));
-		assertTrue(this.originalList.contains(replacement));
-	}
-
-	private void verifyModifyPrevious(ListIterator<String> iterator) {
-		String removed = "three";
-		String addedBefore = "five";
-		String added = "four and a half";
-		String replaced = "seven";
-		String replacement = "another seven";
-		assertTrue(this.originalList.contains(removed));
-		assertTrue(this.originalList.contains(addedBefore));
-		assertTrue(this.originalList.contains(replaced));
-		while (iterator.hasNext()) {
-			iterator.next();
-		}
-		while (iterator.hasPrevious()) {
-			Object previous = iterator.previous();
-			if (previous.equals(addedBefore)) {
-				iterator.add(added);
-			}
-			if (previous.equals(removed)) {
-				iterator.remove();
-				// try to remove twice
-				boolean exCaught = false;
-				try {
-					iterator.remove();
-				} catch (IllegalStateException ex) {
-					exCaught = true;
-				}
-				assertTrue("IllegalStateException not thrown", exCaught);
-			}
-			if (previous.equals(replaced)) {
-				iterator.set(replacement);
-			}
-		}
-		assertTrue(this.originalList.contains(added));
-		assertFalse(this.originalList.contains(removed));
-		assertFalse(this.originalList.contains(replaced));
-		assertTrue(this.originalList.contains(replacement));
-	}
-
-	private ListIterator<String> buildCloneListIterator() {
-		return this.buildCloneListIterator(this.originalList);
-	}
-
-	private ListIterator<String> buildCloneListIterator(List<String> list) {
-		return new CloneListIterator<String>(list);
-	}
-
-	private ListIterator<String> buildNestedListIterator() {
-		return this.originalList.listIterator();
-	}
-
-	private List<String> buildList() {
-		List<String> list = this.buildEmptyList();
-		this.populateList(list);
-		return list;
-	}
-
-	private void populateList(List<String> list) {
-		list.add("zero");
-		list.add("one");
-		list.add("two");
-		list.add("three");
-		list.add("four");
-		list.add("five");
-		list.add("six");
-		list.add("seven");
-		list.add("eight");
-		list.add("nine");
-	}
-
-	protected List<String> buildEmptyList() {
-		return new ArrayList<String>();
-	}
-
-	/**
-	 * Test concurrent access: First build a clone iterator in a separate thread
-	 * that hangs momentarily during its construction; then modify the shared
-	 * collection in this thread. This would cause a
-	 * ConcurrentModificationException in the other thread if the clone iterator
-	 * were not synchronized on the original collection.
-	 */
-	public void testConcurrentAccess() throws Exception {
-		CloneIteratorTests.SlowCollection<String> slow = new CloneIteratorTests.SlowCollection<String>();
-		this.populateList(slow);
-		// using the unsynchronized list will cause the test to fail
-		// this.originalList = slow;
-		this.originalList = Collections.synchronizedList(slow);
-
-		this.concurrentProblem = false;
-		this.concurrentList = new ArrayList<String>();
-		Thread thread = new Thread(this.buildRunnable());
-		thread.start();
-		while (!slow.hasStartedClone()) {
-			// wait for the other thread to start the clone...
-			Thread.yield();
-		}
-		// ...then sneak in an extra element
-		this.originalList.add("seventeen");
-		while (thread.isAlive()) {
-			// wait for the other thread to finish
-			Thread.yield();
-		}
-		assertFalse(this.concurrentProblem);
-		List<String> expected = new ArrayList<String>();
-		this.populateList(expected);
-		assertEquals(expected, this.concurrentList);
-	}
-
-	private Runnable buildRunnable() {
-		return new Runnable() {
-			public void run() {
-				CloneListIteratorTests.this.loopWithCloneListIterator();
-			}
-		};
-	}
-
-	/**
-	 * use a clone iterator to loop over the "slow" collection and copy its
-	 * contents to the concurrent collection
-	 */
-	void loopWithCloneListIterator() {
-		try {
-			for (ListIterator<String> stream = this.buildCloneListIterator(); stream.hasNext();) {
-				this.concurrentList.add(stream.next());
-			}
-		} catch (Throwable t) {
-			this.concurrentProblem = true;
-		}
-	}
-
-}
diff --git a/jpa/tests/org.eclipse.jpt.utility.tests/src/org/eclipse/jpt/utility/tests/internal/iterators/CompositeIteratorTests.java b/jpa/tests/org.eclipse.jpt.utility.tests/src/org/eclipse/jpt/utility/tests/internal/iterators/CompositeIteratorTests.java
deleted file mode 100644
index 573c1d9..0000000
--- a/jpa/tests/org.eclipse.jpt.utility.tests/src/org/eclipse/jpt/utility/tests/internal/iterators/CompositeIteratorTests.java
+++ /dev/null
@@ -1,351 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005, 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.utility.tests.internal.iterators;
-
-import java.util.ArrayList;
-import java.util.Collections;
-import java.util.Iterator;
-import java.util.List;
-import java.util.ListIterator;
-import java.util.NoSuchElementException;
-import junit.framework.TestCase;
-import org.eclipse.jpt.utility.internal.iterators.CompositeIterator;
-
-@SuppressWarnings("nls")
-public class CompositeIteratorTests extends TestCase {
-
-	public CompositeIteratorTests(String name) {
-		super(name);
-	}
-
-	public void testHasAnother() {
-		this.verifyHasAnother(this.buildCompositeIterator());
-	}
-
-	public void testHasAnother2() {
-		this.verifyHasAnother(this.buildCompositeIterator2());
-	}
-
-	public void testHasAnother3() {
-		this.verifyHasAnother(this.buildCompositeIterator3());
-	}
-
-	void verifyHasAnother(Iterator<String> stream) {
-		this.verifyHasAnother(8, stream);
-	}
-
-	void verifyHasAnother(int expected, Iterator<String> stream) {
-		int i = 0;
-		while (stream.hasNext()) {
-			stream.next();
-			i++;
-		}
-		assertEquals(expected, i);
-	}
-
-	public void testAnother() {
-		this.verifyAnother(this.buildCompositeIterator());
-	}
-
-	public void testAnother2() {
-		this.verifyAnother(this.buildCompositeIterator2());
-	}
-
-	public void testAnother3() {
-		this.verifyAnother(this.buildCompositeIterator3());
-	}
-
-	void verifyAnother(Iterator<String> stream) {
-		this.verifyAnother(1, stream);
-	}
-
-	void verifyAnother(int start, Iterator<String> stream) {
-		int index = start;
-		while (stream.hasNext()) {
-			assertEquals("bogus element", String.valueOf(index++), stream.next().substring(0, 1));
-		}
-	}
-
-	public void testRemove() {
-		this.verifyRemove();
-	}
-
-	protected void verifyRemove() {
-		List<String> list1 = this.buildList1();
-		Object lastElement1 = list1.get(list1.size() - 1);
-		List<String> list2 = this.buildList2();
-		List<String> list3 = this.buildList3();
-
-		List<Iterator<String>> list = new ArrayList<Iterator<String>>();
-		list.add(list1.listIterator());
-		list.add(list2.listIterator());
-		list.add(list3.listIterator());
-
-		Iterator<String> stream = this.buildCompositeIterator(list.listIterator());
-		while (stream.hasNext()) {
-			Object next = stream.next();
-			if (next.equals("333")) {
-				stream.remove();
-			}
-			// test special case - where we are between iterators
-			if (next.equals(lastElement1)) {
-				// this will trigger the next iterator to be loaded
-				stream.hasNext();
-				// now try to remove from the previous iterator
-				stream.remove();
-			}
-		}
-		stream.remove();
-
-		assertEquals("nothing removed from collection 1", this.buildList1().size() - 2, list1.size());
-		assertFalse("element still in collection 1", list1.contains("333"));
-		assertFalse("last element still in collection 1", list1.contains(lastElement1));
-		assertTrue("wrong element removed from collection 1", list1.contains("22"));
-
-		assertEquals("nothing removed from collection 3", this.buildList3().size() - 1, list3.size());
-		assertFalse("element still in collection 3", list3.contains("88888888"));
-		assertTrue("wrong element removed from collection 3", list3.contains("666666"));
-	}
-
-	public void testSingleElement() {
-		String item = "0";
-		this.verifyHasAnother(9, this.buildCompositeIterator(item, this.buildCompositeIterator()));
-		this.verifyAnother(0, this.buildCompositeIterator(item, this.buildCompositeIterator()));
-	}
-
-	public void testNoSuchElementException() {
-		this.verifyNoSuchElementException(this.buildCompositeIterator());
-	}
-
-	void verifyNoSuchElementException(Iterator<String> stream) {
-		boolean exCaught = false;
-		String string = null;
-		while (stream.hasNext()) {
-			string = stream.next();
-		}
-		try {
-			string = stream.next();
-		} catch (NoSuchElementException ex) {
-			exCaught = true;
-		}
-		assertTrue("NoSuchElementException not thrown: " + string, exCaught);
-	}
-
-	public void testUnsupportedOperationException() {
-		this.verifyUnsupportedOperationException(this.buildUnmodifiableCompositeIterator());
-	}
-
-	void verifyUnsupportedOperationException(Iterator<String> stream) {
-		boolean exCaught = false;
-		while (stream.hasNext()) {
-			Object string = stream.next();
-			if (string.equals("333")) {
-				try {
-					stream.remove();
-				} catch (UnsupportedOperationException ex) {
-					exCaught = true;
-				}
-			}
-		}
-		assertTrue("UnsupportedOperationException not thrown", exCaught);
-	}
-
-	public void testIllegalStateException() {
-		this.verifyIllegalStateException();
-	}
-
-	void verifyIllegalStateException() {
-		this.verifyIllegalStateException(this.buildCompositeIterator());
-	}
-
-	void verifyIllegalStateException(Iterator<String> stream) {
-		boolean exCaught = false;
-		try {
-			stream.remove();
-		} catch (IllegalStateException ex) {
-			exCaught = true;
-		}
-		assertTrue("IllegalStateException not thrown", exCaught);
-	}
-
-	public void testEmptyHasAnother1() {
-		this.verifyEmptyHasAnother(this.buildEmptyCompositeIterator1());
-	}
-
-	void verifyEmptyHasAnother(Iterator<String> stream) {
-		int i = 0;
-		while (stream.hasNext()) {
-			stream.next();
-			i++;
-		}
-		assertEquals(0, i);
-	}
-
-	public void testEmptyNoSuchElementException1() {
-		this.verifyNoSuchElementException(this.buildEmptyCompositeIterator1());
-	}
-
-	public void testEmptyIllegalStateException1() {
-		this.verifyEmptyIllegalStateException1();
-	}
-
-	void verifyEmptyIllegalStateException1() {
-		this.verifyIllegalStateException(this.buildEmptyCompositeIterator1());
-	}
-
-	public void testEmptyHasAnother2() {
-		this.verifyEmptyHasAnother(this.buildEmptyCompositeIterator2());
-	}
-
-	public void testEmptyNoSuchElementException2() {
-		this.verifyNoSuchElementException(this.buildEmptyCompositeIterator2());
-	}
-
-	public void testEmptyIllegalStateException2() {
-		this.verifyEmptyIllegalStateException2();
-	}
-
-	void verifyEmptyIllegalStateException2() {
-		this.verifyIllegalStateException(this.buildEmptyCompositeIterator2());
-	}
-
-	Iterator<String> buildCompositeIterator() {
-		return this.buildCompositeIterator(this.buildIterators());
-	}
-
-	Iterator<String> buildEmptyCompositeIterator1() {
-		return this.buildCompositeIterator(this.buildEmptyIterators1());
-	}
-
-	Iterator<String> buildEmptyCompositeIterator2() {
-		return this.buildCompositeIterator(this.buildEmptyIterators2());
-	}
-
-	Iterator<String> buildUnmodifiableCompositeIterator() {
-		return this.buildCompositeIterator(this.buildUnmodifiableIterators());
-	}
-
-	// leave unchecked so we can override in subclass
-	@SuppressWarnings("unchecked")
-	Iterator<String> buildCompositeIterator(Iterator iterators) {
-		return new CompositeIterator<String>(iterators);
-	}
-
-	// use vararg constructor
-	@SuppressWarnings("unchecked")
-	Iterator<String> buildCompositeIterator2() {
-		return new CompositeIterator<String>(this.buildIterator1(), this.buildIterator2(), this.buildIterator3());
-	}
-
-	// use vararg constructor
-	@SuppressWarnings("unchecked")
-	Iterator<String> buildCompositeIterator3() {
-		return new CompositeIterator<String>(new Iterator[] { this.buildIterator1(), this.buildIterator2(), this.buildIterator3() });
-	}
-
-	Iterator<String> buildCompositeIterator(String string, Iterator<String> iterator) {
-		return new CompositeIterator<String>(string, iterator);
-	}
-
-	ListIterator<Iterator<String>> buildIterators() {
-		List<Iterator<String>> list = new ArrayList<Iterator<String>>();
-		list.add(this.buildIterator1());
-		list.add(this.buildIterator2());
-		list.add(this.buildIterator3());
-		return list.listIterator();
-	}
-
-	ListIterator<Iterator<String>> buildEmptyIterators1() {
-		return this.buildEmptyIteratorIterator();
-	}
-
-	ListIterator<Iterator<String>> buildEmptyIterators2() {
-		List<Iterator<String>> list = new ArrayList<Iterator<String>>();
-		list.add(this.buildEmptyStringIterator());
-		list.add(this.buildEmptyStringIterator());
-		list.add(this.buildEmptyStringIterator());
-		return list.listIterator();
-	}
-
-	ListIterator<Iterator<String>> buildUnmodifiableIterators() {
-		List<Iterator<String>> list = new ArrayList<Iterator<String>>();
-		list.add(this.buildUnmodifiableIterator1());
-		list.add(this.buildUnmodifiableIterator2());
-		list.add(this.buildUnmodifiableIterator3());
-		return list.listIterator();
-	}
-
-	ListIterator<String> buildIterator1() {
-		return this.buildList1().listIterator();
-	}
-
-	ListIterator<String> buildIterator2() {
-		return this.buildList2().listIterator();
-	}
-
-	ListIterator<String> buildIterator3() {
-		return this.buildList3().listIterator();
-	}
-
-	ListIterator<String> buildUnmodifiableIterator1() {
-		return this.buildUnmodifiableList1().listIterator();
-	}
-
-	ListIterator<String> buildUnmodifiableIterator2() {
-		return this.buildUnmodifiableList2().listIterator();
-	}
-
-	ListIterator<String> buildUnmodifiableIterator3() {
-		return this.buildUnmodifiableList3().listIterator();
-	}
-
-	ListIterator<Iterator<String>> buildEmptyIteratorIterator() {
-		return (new ArrayList<Iterator<String>>()).listIterator();
-	}
-
-	ListIterator<String> buildEmptyStringIterator() {
-		return (new ArrayList<String>()).listIterator();
-	}
-
-	List<String> buildList1() {
-		List<String> list = new ArrayList<String>();
-		list.add("1");
-		list.add("22");
-		list.add("333");
-		list.add("4444");
-		return list;
-	}
-
-	List<String> buildList2() {
-		return new ArrayList<String>();
-	}
-
-	List<String> buildList3() {
-		List<String> list = new ArrayList<String>();
-		list.add("55555");
-		list.add("666666");
-		list.add("7777777");
-		list.add("88888888");
-		return list;
-	}
-
-	List<String> buildUnmodifiableList1() {
-		return Collections.unmodifiableList(this.buildList1());
-	}
-
-	List<String> buildUnmodifiableList2() {
-		return Collections.unmodifiableList(this.buildList2());
-	}
-
-	List<String> buildUnmodifiableList3() {
-		return Collections.unmodifiableList(this.buildList3());
-	}
-
-}
diff --git a/jpa/tests/org.eclipse.jpt.utility.tests/src/org/eclipse/jpt/utility/tests/internal/iterators/CompositeListIteratorTests.java b/jpa/tests/org.eclipse.jpt.utility.tests/src/org/eclipse/jpt/utility/tests/internal/iterators/CompositeListIteratorTests.java
deleted file mode 100644
index 3da104a..0000000
--- a/jpa/tests/org.eclipse.jpt.utility.tests/src/org/eclipse/jpt/utility/tests/internal/iterators/CompositeListIteratorTests.java
+++ /dev/null
@@ -1,331 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005, 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.utility.tests.internal.iterators;
-
-import java.util.ArrayList;
-import java.util.Iterator;
-import java.util.List;
-import java.util.ListIterator;
-import org.eclipse.jpt.utility.internal.iterators.CompositeListIterator;
-
-@SuppressWarnings("nls")
-public class CompositeListIteratorTests extends ReadOnlyCompositeListIteratorTests {
-
-	public CompositeListIteratorTests(String name) {
-		super(name);
-	}
-
-	@Override
-	public void testRemove() {
-		super.testRemove();
-		List<String> list1 = this.buildList1();
-		List<String> list2 = this.buildList2();
-		List<String> list3 = this.buildList3();
-		Object firstElement3 = list3.get(0);
-
-		List<Iterator<String>> list = new ArrayList<Iterator<String>>();
-		list.add(list1.listIterator());
-		list.add(list2.listIterator());
-		list.add(list3.listIterator());
-
-		ListIterator<String> stream = (ListIterator<String>) this.buildCompositeIterator(list.listIterator());
-		// position to end of stream
-		while (stream.hasNext()) {
-			stream.next();
-		}
-		while (stream.hasPrevious()) {
-			Object previous = stream.previous();
-			if (previous.equals("333")) {
-				stream.remove();
-			}
-			// test special case - where we are between iterators
-			if (previous.equals(firstElement3)) {
-				// this will trigger the next iterator to be loaded
-				stream.hasPrevious();
-				// now try to remove from the previous iterator
-				stream.remove();
-			}
-		}
-		stream.remove();
-
-		assertEquals("nothing removed from collection 1", this.buildList1().size() - 2, list1.size());
-		assertFalse("element still in collection 1", list1.contains("1"));
-		assertFalse("element still in collection 1", list1.contains("333"));
-
-		assertEquals("nothing removed from collection 3", this.buildList3().size() - 1, list3.size());
-		assertFalse("first element still in collection 3", list3.contains(firstElement3));
-		assertTrue("wrong element removed from collection 3", list3.contains("666666"));
-	}
-
-	public void testAdd() {
-		List<String> list1 = this.buildList1();
-		Object lastElement1 = list1.get(list1.size() - 1);
-		List<String> list2 = this.buildList2();
-		List<String> list3 = this.buildList3();
-		Object firstElement3 = list3.get(0);
-
-		List<Iterator<String>> list = new ArrayList<Iterator<String>>();
-		list.add(list1.listIterator());
-		list.add(list2.listIterator());
-		list.add(list3.listIterator());
-
-		ListIterator<String> stream = (ListIterator<String>) this.buildCompositeIterator(list.listIterator());
-		while (stream.hasNext()) {
-			Object next = stream.next();
-			if (next.equals("333")) {
-				stream.add("3.5");
-			}
-			// test special case - where we are between iterators
-			if (next.equals(lastElement1)) {
-				// this will trigger the next iterator to be loaded
-				stream.hasNext();
-				// now try to add to the iterator
-				stream.add("something in 3");
-			}
-		}
-		stream.add("finale");
-		boolean checkForFinale = true;
-		while (stream.hasPrevious()) {
-			Object previous = stream.previous();
-			if (checkForFinale) {
-				checkForFinale = false;
-				assertEquals("added element dropped", "finale", previous);
-			}
-			if (previous.equals("333")) {
-				stream.add("2.5");
-			}
-			// test special case - where we are between iterators
-			if (previous.equals(firstElement3)) {
-				// this will trigger the next iterator to be loaded
-				stream.hasPrevious();
-				// now try to remove from the previous iterator
-				stream.add("old start of 3");
-			}
-		}
-		stream.add("prelude");
-		assertEquals("added element dropped", "prelude", stream.previous());
-
-		assertEquals("elements not added to collection 1", this.buildList1().size() + 3, list1.size());
-		assertEquals("element not added to collection 1", "prelude", list1.get(0));
-		assertEquals("element not added to collection 1", "2.5", list1.get(3));
-		assertEquals("element not added to collection 1", "3.5", list1.get(5));
-
-		assertEquals("elements not added to collection 3", this.buildList3().size() + 3, list3.size());
-		assertEquals("element not added to collection 3", "something in 3", list3.get(0));
-		assertEquals("element not added to collection 3", "old start of 3", list3.get(1));
-		assertEquals("element not added to collection 3", "finale", list3.get(list3.size() - 1));
-
-		// add to the front
-		stream = (ListIterator<String>) this.buildCompositeIterator();
-		stream.add("blah");
-		assertFalse("added element should be placed BEFORE the \"cursor\"", stream.next().equals("blah"));
-
-		stream = (ListIterator<String>) this.buildCompositeIterator();
-		stream.add("blah");
-		assertTrue("added element should be placed BEFORE the \"cursor\"", stream.previous().equals("blah"));
-
-		stream = (ListIterator<String>) this.buildCompositeIterator();
-		while (stream.hasNext()) {
-			stream.next();
-		}
-		while (stream.hasPrevious()) {
-			stream.previous();
-		}
-		stream.add("blah");
-		assertFalse("added element should be placed BEFORE the \"cursor\"", stream.next().equals("blah"));
-
-		stream = (ListIterator<String>) this.buildCompositeIterator();
-		while (stream.hasNext()) {
-			stream.next();
-		}
-		while (stream.hasPrevious()) {
-			stream.previous();
-		}
-		stream.add("blah");
-		assertTrue("added element should be placed BEFORE the \"cursor\"", stream.previous().equals("blah"));
-
-		// add to the middle
-		stream = (ListIterator<String>) this.buildCompositeIterator();
-		stream.next();
-		stream.add("blah");
-		assertFalse("added element should be placed BEFORE the \"cursor\"", stream.next().equals("blah"));
-
-		stream = (ListIterator<String>) this.buildCompositeIterator();
-		stream.next();
-		stream.add("blah");
-		assertTrue("added element should be placed BEFORE the \"cursor\"", stream.previous().equals("blah"));
-
-		stream = (ListIterator<String>) this.buildCompositeIterator();
-		while (stream.hasNext()) {
-			stream.next();
-		}
-		stream.previous();
-		stream.add("blah");
-		assertFalse("added element should be placed BEFORE the \"cursor\"", stream.next().equals("blah"));
-
-		stream = (ListIterator<String>) this.buildCompositeIterator();
-		while (stream.hasNext()) {
-			stream.next();
-		}
-		stream.previous();
-		stream.add("blah");
-		assertTrue("added element should be placed BEFORE the \"cursor\"", stream.previous().equals("blah"));
-
-		// add to the end
-		stream = (ListIterator<String>) this.buildCompositeIterator();
-		while (stream.hasNext()) {
-			stream.next();
-		}
-		stream.add("blah");
-		assertFalse("added element should be placed BEFORE the \"cursor\"", stream.hasNext());
-
-		stream = (ListIterator<String>) this.buildCompositeIterator();
-		while (stream.hasNext()) {
-			stream.next();
-		}
-		stream.add("blah");
-		assertTrue("added element should be placed BEFORE the \"cursor\"", stream.previous().equals("blah"));
-	}
-
-	public void testSet() {
-		List<String> list1 = this.buildList1();
-		Object lastElement1 = list1.get(list1.size() - 1);
-		List<String> list2 = this.buildList2();
-		List<String> list3 = this.buildList3();
-		Object firstElement3 = list3.get(0);
-
-		List<Iterator<String>> list = new ArrayList<Iterator<String>>();
-		list.add(list1.listIterator());
-		list.add(list2.listIterator());
-		list.add(list3.listIterator());
-
-		ListIterator<String> stream = (ListIterator<String>) this.buildCompositeIterator(list.listIterator());
-		// position to end of stream
-		while (stream.hasNext()) {
-			Object next = stream.next();
-			if (next.equals("333")) {
-				stream.set("333a");
-			}
-			// test special case - where we are between iterators
-			if (next.equals(lastElement1)) {
-				// this will trigger the next iterator to be loaded
-				stream.hasNext();
-				// now try to remove from the previous iterator
-				stream.set("end of 1");
-			}
-		}
-		while (stream.hasPrevious()) {
-			Object previous = stream.previous();
-			if (previous.equals("22")) {
-				stream.set("22a");
-			}
-			// test special case - where we are between iterators
-			if (previous.equals(firstElement3)) {
-				// this will trigger the next iterator to be loaded
-				stream.hasPrevious();
-				// now try to remove from the previous iterator
-				stream.set("start of 3");
-			}
-		}
-
-		assertEquals("element(s) added to collection 1", this.buildList1().size(), list1.size());
-		assertEquals("element not set in collection 1", "22a", list1.get(1));
-		assertFalse("element not set in collection 1", list1.contains("22"));
-		assertEquals("element not set in collection 1", "333a", list1.get(2));
-		assertFalse("element not set in collection 1", list1.contains("333"));
-		assertEquals("element not set in collection 1", "end of 1", list1.get(list1.size() - 1));
-		assertFalse("element not set in collection 1", list1.contains(lastElement1));
-
-		assertEquals("element(s) added to collection 3", this.buildList3().size(), list3.size());
-		assertEquals("element not set in collection 3", "start of 3", list3.get(0));
-		assertFalse("element not set in collection 3", list3.contains(firstElement3));
-	}
-
-	@Override
-	public void testNextIndexPreviousIndex() {
-		int i = 0;
-		ListIterator<String> stream = (ListIterator<String>) this.buildCompositeIterator();
-		assertEquals(i, stream.nextIndex());
-		assertEquals(i - 1, stream.previousIndex());
-		while (stream.hasNext()) {
-			Object next = stream.next();
-			i++;
-			if (next.equals("333")) {
-				stream.remove();
-				i--;
-			}
-			if (next.equals("7777777")) {
-				stream.add("7.5");
-				i++;
-			}
-			assertEquals(i, stream.nextIndex());
-			assertEquals(i - 1, stream.previousIndex());
-		}
-		assertEquals("index is corrupt", 8, i);
-
-		assertEquals(i, stream.nextIndex());
-		assertEquals(i - 1, stream.previousIndex());
-		while (stream.hasPrevious()) {
-			Object previous = stream.previous();
-			i--;
-			if (previous.equals("666666")) {
-				stream.remove();
-				// removing a previous element, does not change the cursor
-			}
-			if (previous.equals("22")) {
-				stream.add("1.5");
-				i++;
-			}
-			assertEquals(i, stream.nextIndex());
-			assertEquals(i - 1, stream.previousIndex());
-		}
-		assertEquals("index is corrupt", 0, i);
-	}
-
-	@Override
-	public void testIllegalStateException() {
-		this.verifyIllegalStateException();
-	}
-
-	@Override
-	public void testEmptyIllegalStateException1() {
-		this.verifyEmptyIllegalStateException1();
-	}
-
-	@Override
-	public void testEmptyIllegalStateException2() {
-		this.verifyEmptyIllegalStateException2();
-	}
-
-	// unchecked so we can override the unchecked method in superclass
-	@Override
-	@SuppressWarnings("unchecked")
-	Iterator<String> buildCompositeIterator(Iterator iterators) {
-		return new CompositeListIterator<String>((ListIterator<ListIterator<String>>) iterators);
-	}
-
-	@Override
-	@SuppressWarnings("unchecked")
-	Iterator<String> buildCompositeIterator2() {
-		return new CompositeListIterator<String>(this.buildIterator1(), this.buildIterator2(), this.buildIterator3());
-	}
-
-	@Override
-	@SuppressWarnings("unchecked")
-	Iterator<String> buildCompositeIterator3() {
-		return new CompositeListIterator<String>(new ListIterator[] { this.buildIterator1(), this.buildIterator2(), this.buildIterator3() });
-	}
-
-	@Override
-	ListIterator<String> buildCompositeListIterator(String string, ListIterator<String> iterator) {
-		return new CompositeListIterator<String>(string, iterator);
-	}
-
-}
diff --git a/jpa/tests/org.eclipse.jpt.utility.tests/src/org/eclipse/jpt/utility/tests/internal/iterators/EmptyIteratorTests.java b/jpa/tests/org.eclipse.jpt.utility.tests/src/org/eclipse/jpt/utility/tests/internal/iterators/EmptyIteratorTests.java
deleted file mode 100644
index d54ccd0..0000000
--- a/jpa/tests/org.eclipse.jpt.utility.tests/src/org/eclipse/jpt/utility/tests/internal/iterators/EmptyIteratorTests.java
+++ /dev/null
@@ -1,64 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005, 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.utility.tests.internal.iterators;
-
-import java.util.Iterator;
-import java.util.NoSuchElementException;
-import junit.framework.TestCase;
-import org.eclipse.jpt.utility.internal.iterators.EmptyIterator;
-
-@SuppressWarnings("nls")
-public class EmptyIteratorTests extends TestCase {
-
-	public EmptyIteratorTests(String name) {
-		super(name);
-	}
-
-	public void testHasNext() {
-		int i = 0;
-		for (Iterator<Object> stream = EmptyIterator.instance(); stream.hasNext();) {
-			stream.next();
-			i++;
-		}
-		assertEquals(0, i);
-	}
-
-	public void testNext() {
-		for (Iterator<String> stream = EmptyIterator.instance(); stream.hasNext();) {
-			fail("bogus element: " + stream.next());
-		}
-	}
-
-	public void testNoSuchElementException() {
-		boolean exCaught = false;
-		Iterator<Number> stream = EmptyIterator.instance();
-		Object element = null;
-		while (stream.hasNext()) {
-			element = stream.next();
-		}
-		try {
-			element = stream.next();
-		} catch (NoSuchElementException ex) {
-			exCaught = true;
-		}
-		assertTrue("NoSuchElementException not thrown: " + element, exCaught);
-	}
-
-	public void testUnsupportedOperationException() {
-		boolean exCaught = false;
-		try {
-			EmptyIterator.instance().remove();
-		} catch (UnsupportedOperationException ex) {
-			exCaught = true;
-		}
-		assertTrue("UnsupportedOperationException not thrown", exCaught);
-	}
-
-}
diff --git a/jpa/tests/org.eclipse.jpt.utility.tests/src/org/eclipse/jpt/utility/tests/internal/iterators/EmptyListIteratorTests.java b/jpa/tests/org.eclipse.jpt.utility.tests/src/org/eclipse/jpt/utility/tests/internal/iterators/EmptyListIteratorTests.java
deleted file mode 100644
index b4ac671..0000000
--- a/jpa/tests/org.eclipse.jpt.utility.tests/src/org/eclipse/jpt/utility/tests/internal/iterators/EmptyListIteratorTests.java
+++ /dev/null
@@ -1,128 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005, 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.utility.tests.internal.iterators;
-
-import java.util.ListIterator;
-import java.util.NoSuchElementException;
-import junit.framework.TestCase;
-import org.eclipse.jpt.utility.internal.iterators.EmptyListIterator;
-
-@SuppressWarnings("nls")
-public class EmptyListIteratorTests extends TestCase {
-
-	public EmptyListIteratorTests(String name) {
-		super(name);
-	}
-
-	public void testHasNext() {
-		int i = 0;
-		for (ListIterator<Object> stream = EmptyListIterator.instance(); stream.hasNext();) {
-			stream.next();
-			i++;
-		}
-		assertEquals(0, i);
-	}
-
-	public void testNext() {
-		for (ListIterator<Object> stream = EmptyListIterator.instance(); stream.hasNext();) {
-			fail("bogus element: " + stream.next());
-		}
-	}
-
-	public void testNextIndex() {
-		ListIterator<Object> stream = EmptyListIterator.instance();
-		assertEquals(0, stream.nextIndex());
-	}
-
-	public void testHasPrevious() {
-		ListIterator<Object> stream = EmptyListIterator.instance();
-		int i = 0;
-		while (stream.hasPrevious()) {
-			stream.previous();
-			i++;
-		}
-		assertEquals(0, i);
-
-		while (stream.hasNext()) {
-			stream.next();
-		}
-		i = 0;
-		while (stream.hasPrevious()) {
-			stream.previous();
-			i++;
-		}
-		assertEquals(0, i);
-	}
-
-	public void testPrevious() {
-		ListIterator<Object> stream = EmptyListIterator.instance();
-		while (stream.hasPrevious()) {
-			fail("bogus element: " + stream.previous());
-		}
-		while (stream.hasNext()) {
-			stream.next();
-		}
-		while (stream.hasPrevious()) {
-			fail("bogus element: " + stream.previous());
-		}
-	}
-
-	public void testPreviousIndex() {
-		ListIterator<Object> stream = EmptyListIterator.instance();
-		assertEquals(-1, stream.previousIndex());
-	}
-
-	public void testNoSuchElementException() {
-		boolean exCaught = false;
-		ListIterator<Object> stream = EmptyListIterator.instance();
-		Object element = null;
-		while (stream.hasNext()) {
-			element = stream.next();
-		}
-		try {
-			element = stream.next();
-		} catch (NoSuchElementException ex) {
-			exCaught = true;
-		}
-		assertTrue("NoSuchElementException not thrown (next): " + element, exCaught);
-		while (stream.hasPrevious()) {
-			element = stream.previous();
-		}
-		try {
-			element = stream.previous();
-		} catch (NoSuchElementException ex) {
-			exCaught = true;
-		}
-		assertTrue("NoSuchElementException not thrown (previous): " + element, exCaught);
-	}
-
-	public void testUnsupportedOperationException() {
-		boolean exCaught = false;
-		try {
-			EmptyListIterator.instance().remove();
-		} catch (UnsupportedOperationException ex) {
-			exCaught = true;
-		}
-		assertTrue("UnsupportedOperationException not thrown (remove)", exCaught);
-		try {
-			EmptyListIterator.instance().set(new Object());
-		} catch (UnsupportedOperationException ex) {
-			exCaught = true;
-		}
-		assertTrue("UnsupportedOperationException not thrown (set)", exCaught);
-		try {
-			EmptyListIterator.instance().add(new Object());
-		} catch (UnsupportedOperationException ex) {
-			exCaught = true;
-		}
-		assertTrue("UnsupportedOperationException not thrown (add)", exCaught);
-	}
-
-}
diff --git a/jpa/tests/org.eclipse.jpt.utility.tests/src/org/eclipse/jpt/utility/tests/internal/iterators/EnumerationIteratorTests.java b/jpa/tests/org.eclipse.jpt.utility.tests/src/org/eclipse/jpt/utility/tests/internal/iterators/EnumerationIteratorTests.java
deleted file mode 100644
index cd34295..0000000
--- a/jpa/tests/org.eclipse.jpt.utility.tests/src/org/eclipse/jpt/utility/tests/internal/iterators/EnumerationIteratorTests.java
+++ /dev/null
@@ -1,120 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005, 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.utility.tests.internal.iterators;
-
-import java.util.Enumeration;
-import java.util.Iterator;
-import java.util.NoSuchElementException;
-import java.util.Vector;
-import junit.framework.TestCase;
-import org.eclipse.jpt.utility.internal.iterators.EnumerationIterator;
-
-@SuppressWarnings("nls")
-public class EnumerationIteratorTests extends TestCase {
-
-	public EnumerationIteratorTests(String name) {
-		super(name);
-	}
-
-	public void testHasNext() {
-		int i = 0;
-		for (Iterator<String> stream = this.buildIterator(); stream.hasNext();) {
-			stream.next();
-			i++;
-		}
-		assertEquals(this.buildVector().size(), i);
-	}
-
-	public void testHasNextUpcast() {
-		int i = 0;
-		for (Iterator<Object> stream = this.buildIteratorUpcast(); stream.hasNext();) {
-			stream.next();
-			i++;
-		}
-		assertEquals(this.buildVector().size(), i);
-	}
-
-	public void testNext() {
-		Enumeration<String> enumeration = this.buildEnumeration();
-		for (Iterator<String> stream = this.buildIterator(); stream.hasNext();) {
-			assertEquals("bogus element", enumeration.nextElement(), stream.next());
-		}
-	}
-
-	public void testNextUpcast() {
-		Enumeration<String> enumeration = this.buildEnumeration();
-		for (Iterator<Object> stream = this.buildIteratorUpcast(); stream.hasNext();) {
-			assertEquals("bogus element", enumeration.nextElement(), stream.next());
-		}
-	}
-
-	public void testNoSuchElementException() {
-		boolean exCaught = false;
-		Iterator<String> stream = this.buildIterator();
-		String string = null;
-		while (stream.hasNext()) {
-			string = stream.next();
-		}
-		try {
-			string = stream.next();
-		} catch (NoSuchElementException ex) {
-			exCaught = true;
-		}
-		assertTrue("NoSuchElementException not thrown: " + string, exCaught);
-	}
-
-	public void testUnsupportedOperationException() {
-		boolean exCaught = false;
-		for (Iterator<String> stream = this.buildIterator(); stream.hasNext();) {
-			if (stream.next().equals("three")) {
-				try {
-					stream.remove();
-				} catch (UnsupportedOperationException ex) {
-					exCaught = true;
-				}
-			}
-		}
-		assertTrue("UnsupportedOperationException not thrown", exCaught);
-	}
-
-	private Iterator<String> buildIterator() {
-		return this.buildIterator(this.buildEnumeration());
-	}
-
-	private Iterator<String> buildIterator(Enumeration<String> enumeration) {
-		return new EnumerationIterator<String>(enumeration);
-	}
-
-	private Enumeration<String> buildEnumeration() {
-		return this.buildVector().elements();
-	}
-
-	private Vector<String> buildVector() {
-		Vector<String> v = new Vector<String>();
-		v.addElement("one");
-		v.addElement("two");
-		v.addElement("three");
-		v.addElement("four");
-		v.addElement("five");
-		v.addElement("six");
-		v.addElement("seven");
-		v.addElement("eight");
-		return v;
-	}
-
-	private Iterator<Object> buildIteratorUpcast() {
-		return this.buildIteratorUpcast(this.buildEnumeration());
-	}
-
-	private Iterator<Object> buildIteratorUpcast(Enumeration<String> enumeration) {
-		return new EnumerationIterator<Object>(enumeration);
-	}
-
-}
diff --git a/jpa/tests/org.eclipse.jpt.utility.tests/src/org/eclipse/jpt/utility/tests/internal/iterators/FilteringIteratorTests.java b/jpa/tests/org.eclipse.jpt.utility.tests/src/org/eclipse/jpt/utility/tests/internal/iterators/FilteringIteratorTests.java
deleted file mode 100644
index 6e7940a..0000000
--- a/jpa/tests/org.eclipse.jpt.utility.tests/src/org/eclipse/jpt/utility/tests/internal/iterators/FilteringIteratorTests.java
+++ /dev/null
@@ -1,299 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005, 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.utility.tests.internal.iterators;
-
-import java.util.ArrayList;
-import java.util.Collection;
-import java.util.Iterator;
-import java.util.List;
-import java.util.NoSuchElementException;
-import junit.framework.TestCase;
-import org.eclipse.jpt.utility.Filter;
-import org.eclipse.jpt.utility.internal.CollectionTools;
-import org.eclipse.jpt.utility.internal.SimpleFilter;
-import org.eclipse.jpt.utility.internal.iterators.FilteringIterator;
-
-@SuppressWarnings("nls")
-public class FilteringIteratorTests extends TestCase {
-
-	private static final String PREFIX = "prefix";
-
-	public FilteringIteratorTests(String name) {
-		super(name);
-	}
-
-	public void testUnsupportedOperationException() {
-		boolean exCaught = false;
-		for (Iterator<String> stream = this.buildAcceptIterator(); stream.hasNext();) {
-			String string = stream.next();
-			if (string.equals(PREFIX + "3")) {
-				try {
-					stream.remove();
-				} catch (UnsupportedOperationException ex) {
-					exCaught = true;
-				}
-			}
-		}
-		assertTrue("UnsupportedOperationException not thrown", exCaught);
-	}
-
-	public void testNoSuchElementException() {
-		boolean exCaught = false;
-		Iterator<String> stream = this.buildAcceptIterator();
-		String string = null;
-		while (stream.hasNext()) {
-			string = stream.next();
-		}
-		try {
-			string = stream.next();
-		} catch (NoSuchElementException ex) {
-			exCaught = true;
-		}
-		assertTrue("NoSuchElementException not thrown: " + string, exCaught);
-	}
-
-	public void testAcceptHasNext() {
-		int i = 0;
-		for (Iterator<String> stream = this.buildAcceptIterator(); stream.hasNext();) {
-			stream.next();
-			i++;
-		}
-		assertEquals(6, i);
-	}
-
-	public void testAcceptNext() {
-		for (Iterator<String> stream = this.buildAcceptIterator(); stream.hasNext();) {
-			assertTrue("bogus accept", stream.next().startsWith(PREFIX));
-		}
-	}
-
-	public void testInnerHasNext() {
-		int i = 0;
-		for (Iterator<String> stream = this.buildInnerIterator(); stream.hasNext();) {
-			stream.next();
-			i++;
-		}
-		assertEquals(6, i);
-	}
-
-	public void testInnerNext() {
-		for (Iterator<String> stream = this.buildInnerIterator(); stream.hasNext();) {
-			assertTrue("bogus accept", stream.next().startsWith(PREFIX));
-		}
-	}
-
-	public void testRejectHasNext() {
-		int i = 0;
-		for (Iterator<String> stream = this.buildRejectIterator(); stream.hasNext();) {
-			stream.next();
-			i++;
-		}
-		assertEquals(2, i);
-	}
-
-	public void testRejectNext() {
-		for (Iterator<String> stream = this.buildRejectIterator(); stream.hasNext();) {
-			assertFalse("bogus reject", stream.next().startsWith(PREFIX));
-		}
-	}
-
-	public void testBothHasNext() {
-		// if both accept() and reject() are overridden, accept() is used
-		int i = 0;
-		for (Iterator<String> stream = this.buildBothIterator(); stream.hasNext();) {
-			stream.next();
-			i++;
-		}
-		assertEquals(6, i);
-	}
-
-	public void testLoadNext() {
-		// loadNext() used to cause a NPE when executing during the
-		// constructor because the "outer" class is not bound until completion
-		// of the constructor
-		for (Iterator<String> stream = this.buildInnerIterator2(); stream.hasNext();) {
-			assertTrue("bogus accept", stream.next().startsWith(PREFIX));
-		}
-	}
-
-	// test a filtered iterator with a nested iterator of a sub-type (Number vs. Integer)
-	public void testGenerics1() {
-		List<Integer> integers = new ArrayList<Integer>();
-		integers.add(new Integer(0));
-		integers.add(new Integer(1));
-		integers.add(new Integer(2));
-		integers.add(new Integer(3));
-		Iterator<Number> stream = new FilteringIterator<Integer, Number>(integers.iterator()) {
-			@Override
-			protected boolean accept(Integer o) {
-				return o.intValue() > 1;
-			}
-		};
-		assertEquals(2, CollectionTools.size(stream));
-	}
-
-	// test a filtered iterator with a nested iterator of a super-type (Integer vs. Number)
-	// i.e. trust that Filter will only return the appropriate sub-type objects
-	public void testGenerics2() {
-		List<Number> numbers = new ArrayList<Number>();
-		numbers.add(new Integer(0));
-		numbers.add(new Long(1));
-		numbers.add(new Integer(2));
-		numbers.add(new Float(3));
-		Iterator<Integer> stream = new FilteringIterator<Number, Integer>(numbers.iterator()) {
-			@Override
-			protected boolean accept(Number o) {
-				return o instanceof Integer;
-			}
-		};
-		assertEquals(2, CollectionTools.size(stream));
-	}
-
-	public void testFilterHasNext() {
-		int i = 0;
-		for (Iterator<String> stream = this.buildFilterIterator(); stream.hasNext();) {
-			stream.next();
-			i++;
-		}
-		assertEquals(6, i);
-	}
-
-	public void testFilterNext() {
-		for (Iterator<String> stream = this.buildFilterIterator(); stream.hasNext();) {
-			assertTrue("bogus accept", stream.next().startsWith(PREFIX));
-		}
-	}
-
-	private Iterator<String> buildFilteredIterator(Iterator<String> nestedIterator, Filter<String> filter) {
-		return new FilteringIterator<String, String>(nestedIterator, filter);
-	}
-
-	private Iterator<String> buildInnerFilteredIterator(Iterator<String> nestedIterator) {
-		return new FilteringIterator<String, String>(nestedIterator) {
-			@Override
-			protected boolean accept(String s) {
-				return s.startsWith(PREFIX);
-			}
-		};
-	}
-
-	String getPrefix() {
-		return PREFIX;
-	}
-
-	// this inner iterator will call the "outer" object
-	private Iterator<String> buildInnerFilteredIterator2(Iterator<String> nestedIterator) {
-		return new FilteringIterator<String, String>(nestedIterator) {
-			@Override
-			protected boolean accept(String s) {
-				return s.startsWith(FilteringIteratorTests.this.getPrefix());
-			}
-		};
-	}
-
-	private Iterator<String> buildNestedIterator() {
-		Collection<String> c = new ArrayList<String>();
-		c.add(PREFIX + "1");
-		c.add(PREFIX + "2");
-		c.add(PREFIX + "3");
-		c.add("4");
-		c.add(PREFIX + "5");
-		c.add(PREFIX + "6");
-		c.add(PREFIX + "7");
-		c.add("8");
-		return c.iterator();
-	}
-
-	private Iterator<String> buildAcceptIterator() {
-		return this.buildFilteredIterator(this.buildNestedIterator(), this.buildAcceptFilter(PREFIX));
-	}
-
-	private Iterator<String> buildInnerIterator() {
-		return this.buildInnerFilteredIterator(this.buildNestedIterator());
-	}
-
-	// this inner iterator will call the "outer" object
-	private Iterator<String> buildInnerIterator2() {
-		return this.buildInnerFilteredIterator2(this.buildNestedIterator());
-	}
-
-	private Iterator<String> buildFilterIterator() {
-		return this.buildFilteredIterator(this.buildNestedIterator(), this.buildFilterFilter(PREFIX));
-	}
-
-	private Filter<String> buildAcceptFilter(String prefix) {
-		return new SimpleFilter<String, String>(prefix) {
-			private static final long serialVersionUID = 1L;
-
-			@Override
-			public boolean accept(String s) {
-				return s.startsWith(this.criterion);
-			}
-		};
-	}
-
-	private Iterator<String> buildRejectIterator() {
-		return this.buildFilteredIterator(this.buildNestedIterator(), this.buildRejectFilter(PREFIX));
-	}
-
-	private Filter<String> buildRejectFilter(String prefix) {
-		return new SimpleFilter<String, String>(prefix) {
-			private static final long serialVersionUID = 1L;
-
-			@Override
-			public boolean reject(String s) {
-				return s.startsWith(this.criterion);
-			}
-		};
-	}
-
-	// use anonymous inner Filter
-	private Filter<String> buildFilterFilter(final String prefix) {
-		return new Filter<String>() {
-			public boolean accept(String s) {
-				return s.startsWith(prefix);
-			}
-		};
-	}
-
-	private Iterator<String> buildBothIterator() {
-		return this.buildFilteredIterator(this.buildNestedIterator(), this.buildBothFilter(PREFIX));
-	}
-
-	private Filter<String> buildBothFilter(String prefix) {
-		return new SimpleFilter<String, String>(prefix) {
-			private static final long serialVersionUID = 1L;
-
-			@Override
-			public boolean reject(String s) {
-				return s.startsWith(this.criterion);
-			}
-
-			@Override
-			public boolean accept(String s) {
-				return s.startsWith(this.criterion);
-			}
-		};
-	}
-
-	public void testInvalidFilteringIterator() {
-		boolean exCaught = false;
-		try {
-			// missing method override
-			Iterator<String> iterator = new FilteringIterator<String, String>(this.buildNestedIterator());
-			String s = iterator.next();
-			fail("invalid string: " + s);
-		} catch (UnsupportedOperationException ex) {
-			exCaught = true;
-		}
-		assertTrue("NoSuchElementException not thrown", exCaught);
-	}
-
-}
diff --git a/jpa/tests/org.eclipse.jpt.utility.tests/src/org/eclipse/jpt/utility/tests/internal/iterators/GraphIteratorTests.java b/jpa/tests/org.eclipse.jpt.utility.tests/src/org/eclipse/jpt/utility/tests/internal/iterators/GraphIteratorTests.java
deleted file mode 100644
index 4e4c80d..0000000
--- a/jpa/tests/org.eclipse.jpt.utility.tests/src/org/eclipse/jpt/utility/tests/internal/iterators/GraphIteratorTests.java
+++ /dev/null
@@ -1,197 +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.utility.tests.internal.iterators;
-
-import java.util.ArrayList;
-import java.util.Collection;
-import java.util.Iterator;
-import java.util.NoSuchElementException;
-import junit.framework.TestCase;
-import org.eclipse.jpt.utility.internal.CollectionTools;
-import org.eclipse.jpt.utility.internal.iterators.GraphIterator;
-import org.eclipse.jpt.utility.tests.internal.TestTools;
-
-@SuppressWarnings("nls")
-public class GraphIteratorTests extends TestCase {
-	/** this will be populated with all the nodes created for the test */
-	Collection<GraphNode> nodes = new ArrayList<GraphNode>();
-
-	public GraphIteratorTests(String name) {
-		super(name);
-	}
-
-	@Override
-	protected void tearDown() throws Exception {
-		TestTools.clear(this);
-		super.tearDown();
-	}
-
-	public void testHasNext1() {
-		this.verifyHasNext(this.buildGraphIterator1());
-	}
-
-	public void testHasNext2() {
-		this.verifyHasNext(this.buildGraphIterator2());
-	}
-
-	private void verifyHasNext(Iterator<GraphNode> iterator) {
-		int i = 0;
-		while (iterator.hasNext()) {
-			iterator.next();
-			i++;
-		}
-		assertEquals(this.nodes.size(), i);
-	}
-
-	public void testNext1() {
-		this.verifyNext(this.buildGraphIterator1());
-	}
-
-	public void testNext2() {
-		this.verifyNext(this.buildGraphIterator2());
-	}
-
-	private void verifyNext(Iterator<GraphNode> iterator) {
-		while (iterator.hasNext()) {
-			assertTrue("bogus element", this.nodes.contains(iterator.next()));
-		}
-	}
-
-	public void testNoSuchElementException1() {
-		this.verifyNoSuchElementException(this.buildGraphIterator1());
-	}
-
-	public void testNoSuchElementException2() {
-		this.verifyNoSuchElementException(this.buildGraphIterator2());
-	}
-
-	private void verifyNoSuchElementException(Iterator<GraphNode> iterator) {
-		boolean exCaught = false;
-		while (iterator.hasNext()) {
-			iterator.next();
-		}
-		try {
-			iterator.next();
-		} catch (NoSuchElementException ex) {
-			exCaught = true;
-		}
-		assertTrue("NoSuchElementException not thrown", exCaught);
-	}
-
-	public void testSize1() {
-		this.verifySize(this.buildGraphIterator1());
-	}
-
-	public void testSize2() {
-		this.verifySize(this.buildGraphIterator2());
-	}
-
-	private void verifySize(Iterator<GraphNode> iterator) {
-		int iteratorSize = CollectionTools.size(iterator);
-		int actualSize = this.nodes.size();
-		assertTrue("Too few items in iterator.", iteratorSize >= actualSize);
-		assertTrue("Too many items in iterator.", iteratorSize <= actualSize);
-	}
-
-	public void testInvalidGraphIterator() {
-		boolean exCaught = false;
-		try {
-			// missing method override
-			Iterator<GraphNode> iterator = new GraphIterator<GraphNode>(this.buildGraphRoot());
-			GraphNode gn = iterator.next();
-			fail("invalid graph node: " + gn);
-		} catch (UnsupportedOperationException ex) {
-			exCaught = true;
-		}
-		assertTrue("NoSuchElementException not thrown", exCaught);
-	}
-
-	/**
-	 * build a graph iterator with an explicit misterRogers
-	 */
-	private Iterator<GraphNode> buildGraphIterator1() {
-		return new GraphIterator<GraphNode>(this.buildGraphRoot(), this.buildMisterRogers());
-	}
-
-	private GraphIterator.MisterRogers<GraphNode> buildMisterRogers() {
-		return new GraphIterator.MisterRogers<GraphNode>() {
-			public Iterator<GraphNode> neighbors(GraphNode next) {
-				return next.neighbors();
-			}
-		};
-	}
-
-	/**
-	 * build a graph iterator with an override
-	 */
-	private Iterator<GraphNode> buildGraphIterator2() {
-		return new GraphIterator<GraphNode>(this.buildGraphRoot()) {
-			@Override
-			public Iterator<GraphNode> neighbors(GraphNode next) {
-				return next.neighbors();
-			}
-		};
-	}
-
-	private GraphNode buildGraphRoot() {
-		GraphNode ncNode = new GraphNode("North Carolina");
-		GraphNode vaNode = new GraphNode("Virginia");
-		GraphNode scNode = new GraphNode("South Carolina");
-		GraphNode gaNode = new GraphNode("Georgia");
-		GraphNode flNode = new GraphNode("Florida");
-		GraphNode alNode = new GraphNode("Alabama");
-		GraphNode msNode = new GraphNode("Mississippi");
-		GraphNode tnNode = new GraphNode("Tennessee");
-
-		ncNode.setNeighbors(new GraphNode[] { vaNode, scNode, gaNode, tnNode });
-		vaNode.setNeighbors(new GraphNode[] { ncNode, tnNode });
-		scNode.setNeighbors(new GraphNode[] { ncNode, gaNode });
-		gaNode.setNeighbors(new GraphNode[] { ncNode, scNode, flNode, alNode, tnNode });
-		flNode.setNeighbors(new GraphNode[] { gaNode });
-		alNode.setNeighbors(new GraphNode[] { gaNode, msNode, tnNode });
-		msNode.setNeighbors(new GraphNode[] { alNode, tnNode });
-		tnNode.setNeighbors(new GraphNode[] { vaNode, ncNode, gaNode, alNode, msNode });
-
-		return ncNode;
-	}
-
-	private class GraphNode {
-		private String name;
-
-		private Collection<GraphNode> neighbors = new ArrayList<GraphNode>();
-
-		public GraphNode(String name) {
-			super();
-			GraphIteratorTests.this.nodes.add(this); // log node
-			this.name = name;
-		}
-
-		public String getName() {
-			return this.name;
-		}
-
-		void setNeighbors(GraphNode[] neighbors) {
-			this.neighbors = CollectionTools.list(neighbors);
-		}
-
-		public Iterator<GraphNode> neighbors() {
-			return this.neighbors.iterator();
-		}
-
-		public int neighborsSize() {
-			return this.neighbors.size();
-		}
-
-		@Override
-		public String toString() {
-			return "GraphNode(" + this.name + ")";
-		}
-	}
-}
diff --git a/jpa/tests/org.eclipse.jpt.utility.tests/src/org/eclipse/jpt/utility/tests/internal/iterators/JptUtilityIteratorsTests.java b/jpa/tests/org.eclipse.jpt.utility.tests/src/org/eclipse/jpt/utility/tests/internal/iterators/JptUtilityIteratorsTests.java
deleted file mode 100644
index 132b2c7..0000000
--- a/jpa/tests/org.eclipse.jpt.utility.tests/src/org/eclipse/jpt/utility/tests/internal/iterators/JptUtilityIteratorsTests.java
+++ /dev/null
@@ -1,53 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005, 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.utility.tests.internal.iterators;
-
-import junit.framework.Test;
-import junit.framework.TestSuite;
-
-/**
- * decentralize test creation code
- */
-public class JptUtilityIteratorsTests {
-
-	public static Test suite() {
-		TestSuite suite = new TestSuite(JptUtilityIteratorsTests.class.getPackage().getName());
-
-		suite.addTestSuite(ArrayIteratorTests.class);
-		suite.addTestSuite(ArrayListIteratorTests.class);
-		suite.addTestSuite(ChainIteratorTests.class);
-		suite.addTestSuite(CloneIteratorTests.class);
-		suite.addTestSuite(CloneListIteratorTests.class);
-		suite.addTestSuite(CompositeIteratorTests.class);
-		suite.addTestSuite(CompositeListIteratorTests.class);
-		suite.addTestSuite(EmptyIteratorTests.class);
-		suite.addTestSuite(EmptyListIteratorTests.class);
-		suite.addTestSuite(EnumerationIteratorTests.class);
-		suite.addTestSuite(FilteringIteratorTests.class);
-		suite.addTestSuite(GraphIteratorTests.class);
-		suite.addTestSuite(PeekableIteratorTests.class);
-		suite.addTestSuite(ReadOnlyCompositeListIteratorTests.class);
-		suite.addTestSuite(ReadOnlyIteratorTests.class);
-		suite.addTestSuite(ReadOnlyListIteratorTests.class);
-		suite.addTestSuite(SingleElementIteratorTests.class);
-		suite.addTestSuite(SingleElementListIteratorTests.class);
-		suite.addTestSuite(TransformationIteratorTests.class);
-		suite.addTestSuite(TransformationListIteratorTests.class);
-		suite.addTestSuite(TreeIteratorTests.class);
-
-		return suite;
-	}
-
-	private JptUtilityIteratorsTests() {
-		super();
-		throw new UnsupportedOperationException();
-	}
-
-}
diff --git a/jpa/tests/org.eclipse.jpt.utility.tests/src/org/eclipse/jpt/utility/tests/internal/iterators/PeekableIteratorTests.java b/jpa/tests/org.eclipse.jpt.utility.tests/src/org/eclipse/jpt/utility/tests/internal/iterators/PeekableIteratorTests.java
deleted file mode 100644
index 9fcea76..0000000
--- a/jpa/tests/org.eclipse.jpt.utility.tests/src/org/eclipse/jpt/utility/tests/internal/iterators/PeekableIteratorTests.java
+++ /dev/null
@@ -1,141 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005, 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.utility.tests.internal.iterators;
-
-import java.util.ArrayList;
-import java.util.Collection;
-import java.util.Iterator;
-import java.util.NoSuchElementException;
-import junit.framework.TestCase;
-import org.eclipse.jpt.utility.internal.iterators.PeekableIterator;
-
-@SuppressWarnings("nls")
-public class PeekableIteratorTests extends TestCase {
-
-	public PeekableIteratorTests(String name) {
-		super(name);
-	}
-
-	public void testUnsupportedOperationException() {
-		boolean exCaught = false;
-		for (Iterator<String> stream = this.buildPeekableIterator(); stream.hasNext();) {
-			String string = stream.next();
-			if (string.equals("three")) {
-				try {
-					stream.remove();
-				} catch (UnsupportedOperationException ex) {
-					exCaught = true;
-				}
-			}
-		}
-		assertTrue("UnsupportedOperationException not thrown", exCaught);
-	}
-
-	public void testNoSuchElementException() {
-		boolean exCaught = false;
-		Iterator<String> stream = this.buildPeekableIterator();
-		String string = null;
-		while (stream.hasNext()) {
-			string = stream.next();
-		}
-		try {
-			string = stream.next();
-		} catch (NoSuchElementException ex) {
-			exCaught = true;
-		}
-		assertTrue("NoSuchElementException not thrown: " + string, exCaught);
-	}
-
-	public void testHasNext() {
-		int i = 0;
-		for (Iterator<String> stream = this.buildPeekableIterator(); stream.hasNext();) {
-			stream.next();
-			i++;
-		}
-		assertEquals(6, i);
-	}
-
-	public void testHasNextUpcast() {
-		int i = 0;
-		for (Iterator<Object> stream = this.buildPeekableIteratorUpcast(); stream.hasNext();) {
-			stream.next();
-			i++;
-		}
-		assertEquals(6, i);
-	}
-
-	public void testNext() {
-		Iterator<String> stream = this.buildPeekableIterator();
-		assertEquals("zero", stream.next());
-		assertEquals("one", stream.next());
-		assertEquals("two", stream.next());
-		assertEquals("three", stream.next());
-		assertEquals("four", stream.next());
-		assertEquals("five", stream.next());
-	}
-
-	public void testNextUpcast() {
-		Iterator<Object> stream = this.buildPeekableIteratorUpcast();
-		assertEquals("zero", stream.next());
-		assertEquals("one", stream.next());
-		assertEquals("two", stream.next());
-		assertEquals("three", stream.next());
-		assertEquals("four", stream.next());
-		assertEquals("five", stream.next());
-	}
-
-	public void testPeek() {
-		Object next = null;
-		for (PeekableIterator<String> stream = this.buildPeekableIterator(); stream.hasNext();) {
-			Object peek = stream.peek();
-			assertTrue("peek and next are prematurely identical", peek != next);
-			next = stream.next();
-			assertTrue("peek and next are not identical", peek == next);
-		}
-	}
-
-	public void testPeekUpcast() {
-		Object next = null;
-		for (PeekableIterator<Object> stream = this.buildPeekableIteratorUpcast(); stream.hasNext();) {
-			Object peek = stream.peek();
-			assertTrue("peek and next are prematurely identical", peek != next);
-			next = stream.next();
-			assertTrue("peek and next are not identical", peek == next);
-		}
-	}
-
-	private PeekableIterator<String> buildPeekableIterator() {
-		return this.buildPeekableIterator(this.buildNestedIterator());
-	}
-
-	private PeekableIterator<Object> buildPeekableIteratorUpcast() {
-		return this.buildPeekableIteratorUpcast(this.buildNestedIterator());
-	}
-
-	private PeekableIterator<String> buildPeekableIterator(Iterator<String> nestedIterator) {
-		return new PeekableIterator<String>(nestedIterator);
-	}
-
-	private PeekableIterator<Object> buildPeekableIteratorUpcast(Iterator<String> nestedIterator) {
-		return new PeekableIterator<Object>(nestedIterator);
-	}
-
-	private Iterator<String> buildNestedIterator() {
-		Collection<String> c = new ArrayList<String>();
-		c.add("zero");
-		c.add("one");
-		c.add("two");
-		c.add("three");
-		c.add("four");
-		c.add("five");
-		return c.iterator();
-	}
-
-}
diff --git a/jpa/tests/org.eclipse.jpt.utility.tests/src/org/eclipse/jpt/utility/tests/internal/iterators/ReadOnlyCompositeListIteratorTests.java b/jpa/tests/org.eclipse.jpt.utility.tests/src/org/eclipse/jpt/utility/tests/internal/iterators/ReadOnlyCompositeListIteratorTests.java
deleted file mode 100644
index 30cbfe9..0000000
--- a/jpa/tests/org.eclipse.jpt.utility.tests/src/org/eclipse/jpt/utility/tests/internal/iterators/ReadOnlyCompositeListIteratorTests.java
+++ /dev/null
@@ -1,205 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008, 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.utility.tests.internal.iterators;
-
-import java.util.ArrayList;
-import java.util.Iterator;
-import java.util.List;
-import java.util.ListIterator;
-import java.util.NoSuchElementException;
-import org.eclipse.jpt.utility.internal.iterators.ReadOnlyCompositeListIterator;
-
-@SuppressWarnings("nls")
-public class ReadOnlyCompositeListIteratorTests extends CompositeIteratorTests {
-
-	public ReadOnlyCompositeListIteratorTests(String name) {
-		super(name);
-	}
-
-	@Override
-	void verifyHasAnother(Iterator<String> stream) {
-		super.verifyHasAnother(stream);
-		ListIterator<String> stream2 = (ListIterator<String>) stream;
-		int i = 0;
-		while (stream2.hasPrevious()) {
-			stream2.previous();
-			i++;
-		}
-		assertEquals(8, i);
-	}
-
-	@Override
-	void verifyAnother(Iterator<String> stream) {
-		super.verifyAnother(stream);
-		int i = 8;
-		ListIterator<String> stream2 = (ListIterator<String>) stream;
-		while (stream2.hasPrevious()) {
-			assertEquals("bogus element", String.valueOf(i--), stream2.previous().substring(0, 1));
-		}
-	}
-
-	public void testNextIndexPreviousIndex() {
-		int i = 0;
-		ListIterator<String> stream = (ListIterator<String>) this.buildCompositeIterator();
-		assertEquals(i, stream.nextIndex());
-		assertEquals(i - 1, stream.previousIndex());
-		while (stream.hasNext()) {
-			stream.next();
-			i++;
-			assertEquals(i, stream.nextIndex());
-			assertEquals(i - 1, stream.previousIndex());
-		}
-		assertEquals("index is corrupt", 8, i);
-
-		assertEquals(i, stream.nextIndex());
-		assertEquals(i - 1, stream.previousIndex());
-		while (stream.hasPrevious()) {
-			stream.previous();
-			i--;
-			assertEquals(i, stream.nextIndex());
-			assertEquals(i - 1, stream.previousIndex());
-		}
-		assertEquals("index is corrupt", 0, i);
-	}
-
-	public void testPreviousIndex() {
-		// TODO
-	}
-
-	@Override
-	public void testRemove() {
-		// #remove() is not supported
-	}
-
-	@Override
-	public void testIllegalStateException() {
-		// #remove() is not supported
-	}
-
-	@Override
-	public void testEmptyIllegalStateException1() {
-		// #remove() is not supported
-	}
-
-	@Override
-	public void testEmptyIllegalStateException2() {
-		// #remove() is not supported
-	}
-
-	@Override
-	void verifyNoSuchElementException(Iterator<String> stream) {
-		super.verifyNoSuchElementException(stream);
-		ListIterator<String> stream2 = (ListIterator<String>) stream;
-		boolean exCaught = false;
-		String string = null;
-		while (stream2.hasPrevious()) {
-			string = stream2.previous();
-		}
-		try {
-			string = stream2.previous();
-		} catch (NoSuchElementException ex) {
-			exCaught = true;
-		}
-		assertTrue("NoSuchElementException not thrown: " + string, exCaught);
-	}
-
-	@Override
-	void verifyUnsupportedOperationException(Iterator<String> stream) {
-		super.verifyUnsupportedOperationException(stream);
-		boolean exCaught = false;
-		ListIterator<String> stream2 = (ListIterator<String>) stream;
-		while (stream2.hasPrevious()) {
-			Object string = stream2.previous();
-			if (string.equals("333")) {
-				try {
-					stream2.remove();
-				} catch (UnsupportedOperationException ex) {
-					exCaught = true;
-				}
-			}
-		}
-		assertTrue("UnsupportedOperationException not thrown", exCaught);
-	}
-
-	@Override
-	void verifyIllegalStateException(Iterator<String> stream) {
-		super.verifyIllegalStateException(stream);
-		ListIterator<String> stream2 = (ListIterator<String>) stream;
-		boolean exCaught = false;
-		try {
-			stream2.set("junk");
-		} catch (IllegalStateException ex) {
-			exCaught = true;
-		}
-		assertTrue("IllegalStateException not thrown", exCaught);
-	}
-
-	@Override
-	void verifyEmptyHasAnother(Iterator<String> stream) {
-		super.verifyEmptyHasAnother(stream);
-		ListIterator<String> stream2 = (ListIterator<String>) stream;
-		int i = 0;
-		while (stream2.hasPrevious()) {
-			stream2.previous();
-			i++;
-		}
-		assertEquals(0, i);
-	}
-
-	// unchecked so we can override the unchecked method in superclass
-	@Override
-	@SuppressWarnings("unchecked")
-	Iterator<String> buildCompositeIterator(Iterator iterators) {
-		return new ReadOnlyCompositeListIterator<String>((ListIterator<ListIterator<String>>) iterators);
-	}
-
-	@Override
-	@SuppressWarnings("unchecked")
-	Iterator<String> buildCompositeIterator2() {
-		return new ReadOnlyCompositeListIterator<String>(this.buildIterator1(), this.buildIterator2(), this.buildIterator3());
-	}
-
-	@Override
-	@SuppressWarnings("unchecked")
-	Iterator<String> buildCompositeIterator3() {
-		return new ReadOnlyCompositeListIterator<String>(new ListIterator[] { this.buildIterator1(), this.buildIterator2(), this.buildIterator3() });
-	}
-
-	Iterator<String> buildCompositeIterator(String string, ListIterator<String> iterator) {
-		return this.buildCompositeListIterator(string, iterator);
-	}
-
-	ListIterator<String> buildCompositeListIterator(String string, ListIterator<String> iterator) {
-		return new ReadOnlyCompositeListIterator<String>(string, iterator);
-	}
-
-	public void testVariedNestedIterators() {
-		List<Integer> integerList = new ArrayList<Integer>();
-		integerList.add(new Integer(42));
-		integerList.add(new Integer(42));
-		integerList.add(new Integer(111));
-		integerList.add(new Integer(77));
-
-		List<Float> floatList = new ArrayList<Float>();
-		floatList.add(new Float(42.42f));
-		floatList.add(new Float(22.22f));
-		floatList.add(new Float(111.111f));
-		floatList.add(new Float(77.77f));
-
-		List<List<? extends Number>> list = new ArrayList<List<? extends Number>>();
-		list.add(integerList);
-		list.add(floatList);
-		ListIterator<Number> li = new ReadOnlyCompositeListIterator<Number>(list);
-		while (li.hasNext()) {
-			assertTrue(li.next().intValue() > 0);
-		}
-	}
-
-}
diff --git a/jpa/tests/org.eclipse.jpt.utility.tests/src/org/eclipse/jpt/utility/tests/internal/iterators/ReadOnlyIteratorTests.java b/jpa/tests/org.eclipse.jpt.utility.tests/src/org/eclipse/jpt/utility/tests/internal/iterators/ReadOnlyIteratorTests.java
deleted file mode 100644
index c6351b7..0000000
--- a/jpa/tests/org.eclipse.jpt.utility.tests/src/org/eclipse/jpt/utility/tests/internal/iterators/ReadOnlyIteratorTests.java
+++ /dev/null
@@ -1,119 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005, 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.utility.tests.internal.iterators;
-
-import java.util.Iterator;
-import java.util.NoSuchElementException;
-import java.util.Vector;
-import junit.framework.TestCase;
-import org.eclipse.jpt.utility.internal.iterators.ReadOnlyIterator;
-
-@SuppressWarnings("nls")
-public class ReadOnlyIteratorTests extends TestCase {
-
-	public ReadOnlyIteratorTests(String name) {
-		super(name);
-	}
-
-	public void testHasNext() {
-		int i = 0;
-		for (Iterator<String> stream = this.buildReadOnlyIterator(); stream.hasNext();) {
-			stream.next();
-			i++;
-		}
-		assertEquals(this.buildVector().size(), i);
-	}
-
-	public void testHasNextUpcast() {
-		int i = 0;
-		for (Iterator<Object> stream = this.buildReadOnlyIteratorUpcast(); stream.hasNext();) {
-			stream.next();
-			i++;
-		}
-		assertEquals(this.buildVector().size(), i);
-	}
-
-	public void testNext() {
-		Iterator<String> nestedIterator = this.buildNestedIterator();
-		for (Iterator<String> stream = this.buildReadOnlyIterator(); stream.hasNext();) {
-			assertEquals("bogus element", nestedIterator.next(), stream.next());
-		}
-	}
-
-	public void testNextUpcast() {
-		Iterator<String> nestedIterator = this.buildNestedIterator();
-		for (Iterator<Object> stream = this.buildReadOnlyIteratorUpcast(); stream.hasNext();) {
-			assertEquals("bogus element", nestedIterator.next(), stream.next());
-		}
-	}
-
-	public void testNoSuchElementException() {
-		boolean exCaught = false;
-		Iterator<String> stream = this.buildReadOnlyIterator();
-		String string = null;
-		while (stream.hasNext()) {
-			string = stream.next();
-		}
-		try {
-			string = stream.next();
-		} catch (NoSuchElementException ex) {
-			exCaught = true;
-		}
-		assertTrue("NoSuchElementException not thrown: " + string, exCaught);
-	}
-
-	public void testRemove() {
-		boolean exCaught = false;
-		for (Iterator<String> stream = this.buildReadOnlyIterator(); stream.hasNext();) {
-			if (stream.next().equals("three")) {
-				try {
-					stream.remove();
-				} catch (UnsupportedOperationException ex) {
-					exCaught = true;
-				}
-			}
-		}
-		assertTrue("UnsupportedOperationException not thrown", exCaught);
-	}
-
-	private Iterator<String> buildReadOnlyIterator() {
-		return this.buildReadOnlyIterator(this.buildNestedIterator());
-	}
-
-	private Iterator<Object> buildReadOnlyIteratorUpcast() {
-		return this.buildReadOnlyIteratorUpcast(this.buildNestedIterator());
-	}
-
-	private Iterator<String> buildReadOnlyIterator(Iterator<String> nestedIterator) {
-		return new ReadOnlyIterator<String>(nestedIterator);
-	}
-
-	private Iterator<Object> buildReadOnlyIteratorUpcast(Iterator<String> nestedIterator) {
-		return new ReadOnlyIterator<Object>(nestedIterator);
-	}
-
-	private Iterator<String> buildNestedIterator() {
-		return this.buildVector().iterator();
-	}
-
-	private Vector<String> buildVector() {
-		Vector<String> v = new Vector<String>();
-		v.addElement("one");
-		v.addElement("two");
-		v.addElement("three");
-		v.addElement("four");
-		v.addElement("five");
-		v.addElement("six");
-		v.addElement("seven");
-		v.addElement("eight");
-		return v;
-	}
-
-}
diff --git a/jpa/tests/org.eclipse.jpt.utility.tests/src/org/eclipse/jpt/utility/tests/internal/iterators/ReadOnlyListIteratorTests.java b/jpa/tests/org.eclipse.jpt.utility.tests/src/org/eclipse/jpt/utility/tests/internal/iterators/ReadOnlyListIteratorTests.java
deleted file mode 100644
index c5a1548..0000000
--- a/jpa/tests/org.eclipse.jpt.utility.tests/src/org/eclipse/jpt/utility/tests/internal/iterators/ReadOnlyListIteratorTests.java
+++ /dev/null
@@ -1,204 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005, 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.utility.tests.internal.iterators;
-
-import java.util.ArrayList;
-import java.util.List;
-import java.util.ListIterator;
-import java.util.NoSuchElementException;
-import junit.framework.TestCase;
-import org.eclipse.jpt.utility.internal.iterators.ReadOnlyListIterator;
-
-@SuppressWarnings("nls")
-public class ReadOnlyListIteratorTests extends TestCase {
-
-	public ReadOnlyListIteratorTests(String name) {
-		super(name);
-	}
-
-	public void testHasNextAndHasPrevious() {
-		int i = 0;
-		ListIterator<String> stream = this.buildReadOnlyListIterator();
-		while (stream.hasNext()) {
-			stream.next();
-			i++;
-		}
-		assertEquals(this.buildList().size(), i);
-
-		while (stream.hasPrevious()) {
-			stream.previous();
-			i--;
-		}
-		assertEquals(0, i);
-	}
-
-	public void testHasNextAndHasPreviousUpcast() {
-		int i = 0;
-		ListIterator<Object> stream = this.buildReadOnlyListIteratorUpcast();
-		while (stream.hasNext()) {
-			stream.next();
-			i++;
-		}
-		assertEquals(this.buildList().size(), i);
-
-		while (stream.hasPrevious()) {
-			stream.previous();
-			i--;
-		}
-		assertEquals(0, i);
-	}
-
-	public void testNextAndPrevious() {
-		ListIterator<String> nestedListIterator = this.buildNestedListIterator();
-		ListIterator<String> stream = this.buildReadOnlyListIterator();
-		while (stream.hasNext()) {
-			assertEquals("bogus element", nestedListIterator.next(), stream.next());
-		}
-		while (stream.hasPrevious()) {
-			assertEquals("bogus element", nestedListIterator.previous(), stream.previous());
-		}
-	}
-
-	public void testNextAndPreviousUpcast() {
-		ListIterator<String> nestedListIterator = this.buildNestedListIterator();
-		ListIterator<Object> stream = this.buildReadOnlyListIteratorUpcast();
-		while (stream.hasNext()) {
-			assertEquals("bogus element", nestedListIterator.next(), stream.next());
-		}
-		while (stream.hasPrevious()) {
-			assertEquals("bogus element", nestedListIterator.previous(), stream.previous());
-		}
-	}
-
-	public void testNextIndexAndPreviousIndex() {
-		ListIterator<String> nestedListIterator = this.buildNestedListIterator();
-		ListIterator<String> stream = this.buildReadOnlyListIterator();
-		while (stream.hasNext()) {
-			assertEquals("bogus index", nestedListIterator.nextIndex(), stream.nextIndex());
-			nestedListIterator.next();
-			stream.next();
-		}
-		assertEquals("bogus index", this.buildList().size(), stream.nextIndex());
-		while (stream.hasPrevious()) {
-			assertEquals("bogus element", nestedListIterator.previousIndex(), stream.previousIndex());
-			nestedListIterator.previous();
-			stream.previous();
-		}
-		assertEquals("bogus index", -1, stream.previousIndex());
-	}
-
-	public void testNextIndexAndPreviousIndexUpcast() {
-		ListIterator<String> nestedListIterator = this.buildNestedListIterator();
-		ListIterator<Object> stream = this.buildReadOnlyListIteratorUpcast();
-		while (stream.hasNext()) {
-			assertEquals("bogus index", nestedListIterator.nextIndex(), stream.nextIndex());
-			nestedListIterator.next();
-			stream.next();
-		}
-		assertEquals("bogus index", this.buildList().size(), stream.nextIndex());
-		while (stream.hasPrevious()) {
-			assertEquals("bogus element", nestedListIterator.previousIndex(), stream.previousIndex());
-			nestedListIterator.previous();
-			stream.previous();
-		}
-		assertEquals("bogus index", -1, stream.previousIndex());
-	}
-
-	public void testNoSuchElementException() {
-		boolean exCaught = false;
-		ListIterator<String> stream = this.buildReadOnlyListIterator();
-		String string = null;
-		while (stream.hasNext()) {
-			string = stream.next();
-		}
-		try {
-			string = stream.next();
-		} catch (NoSuchElementException ex) {
-			exCaught = true;
-		}
-		assertTrue("NoSuchElementException not thrown: " + string, exCaught);
-	}
-
-	public void testRemove() {
-		boolean exCaught = false;
-		for (ListIterator<String> stream = this.buildReadOnlyListIterator(); stream.hasNext();) {
-			if (stream.next().equals("three")) {
-				try {
-					stream.remove();
-				} catch (UnsupportedOperationException ex) {
-					exCaught = true;
-				}
-			}
-		}
-		assertTrue("UnsupportedOperationException not thrown", exCaught);
-	}
-
-	public void testSet() {
-		boolean exCaught = false;
-		for (ListIterator<String> stream = this.buildReadOnlyListIterator(); stream.hasNext();) {
-			if (stream.next().equals("three")) {
-				try {
-					stream.set("bogus");
-				} catch (UnsupportedOperationException ex) {
-					exCaught = true;
-				}
-			}
-		}
-		assertTrue("UnsupportedOperationException not thrown", exCaught);
-	}
-
-	public void testAdd() {
-		boolean exCaught = false;
-		for (ListIterator<String> stream = this.buildReadOnlyListIterator(); stream.hasNext();) {
-			if (stream.next().equals("three")) {
-				try {
-					stream.add("bogus");
-				} catch (UnsupportedOperationException ex) {
-					exCaught = true;
-				}
-			}
-		}
-		assertTrue("UnsupportedOperationException not thrown", exCaught);
-	}
-
-	private ListIterator<String> buildReadOnlyListIterator() {
-		return this.buildReadOnlyListIterator(this.buildNestedListIterator());
-	}
-
-	private ListIterator<Object> buildReadOnlyListIteratorUpcast() {
-		return this.buildReadOnlyListIteratorUpcast(this.buildNestedListIterator());
-	}
-
-	private ListIterator<String> buildReadOnlyListIterator(ListIterator<String> nestedListIterator) {
-		return new ReadOnlyListIterator<String>(nestedListIterator);
-	}
-
-	private ListIterator<Object> buildReadOnlyListIteratorUpcast(ListIterator<String> nestedListIterator) {
-		return new ReadOnlyListIterator<Object>(nestedListIterator);
-	}
-
-	private ListIterator<String> buildNestedListIterator() {
-		return this.buildList().listIterator();
-	}
-
-	private List<String> buildList() {
-		List<String> l = new ArrayList<String>();
-		l.add("one");
-		l.add("two");
-		l.add("three");
-		l.add("four");
-		l.add("five");
-		l.add("six");
-		l.add("seven");
-		l.add("eight");
-		return l;
-	}
-
-}
diff --git a/jpa/tests/org.eclipse.jpt.utility.tests/src/org/eclipse/jpt/utility/tests/internal/iterators/SingleElementIteratorTests.java b/jpa/tests/org.eclipse.jpt.utility.tests/src/org/eclipse/jpt/utility/tests/internal/iterators/SingleElementIteratorTests.java
deleted file mode 100644
index b7e2269..0000000
--- a/jpa/tests/org.eclipse.jpt.utility.tests/src/org/eclipse/jpt/utility/tests/internal/iterators/SingleElementIteratorTests.java
+++ /dev/null
@@ -1,72 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005, 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.utility.tests.internal.iterators;
-
-import java.util.Iterator;
-import java.util.NoSuchElementException;
-import junit.framework.TestCase;
-import org.eclipse.jpt.utility.internal.iterators.SingleElementIterator;
-
-@SuppressWarnings("nls")
-public class SingleElementIteratorTests extends TestCase {
-
-	public SingleElementIteratorTests(String name) {
-		super(name);
-	}
-
-	public void testHasNext() {
-		int i = 0;
-		for (Iterator<String> stream = this.buildSingleElementIterator(); stream.hasNext();) {
-			stream.next();
-			i++;
-		}
-		assertEquals(1, i);
-	}
-
-	public void testNext() {
-		for (Iterator<String> stream = this.buildSingleElementIterator(); stream.hasNext();) {
-			assertEquals("bogus element", this.singleElement(), stream.next());
-		}
-	}
-
-	public void testNoSuchElementException() {
-		boolean exCaught = false;
-		Iterator<String> stream = this.buildSingleElementIterator();
-		String string = stream.next();
-		try {
-			string = stream.next();
-		} catch (NoSuchElementException ex) {
-			exCaught = true;
-		}
-		assertTrue("NoSuchElementException not thrown: " + string, exCaught);
-	}
-
-	public void testRemove() {
-		boolean exCaught = false;
-		for (Iterator<String> stream = this.buildSingleElementIterator(); stream.hasNext();) {
-			if (stream.next().equals(this.singleElement())) {
-				try {
-					stream.remove();
-				} catch (UnsupportedOperationException ex) {
-					exCaught = true;
-				}
-			}
-		}
-		assertTrue("UnsupportedOperationException not thrown", exCaught);
-	}
-
-	protected Iterator<String> buildSingleElementIterator() {
-		return new SingleElementIterator<String>(this.singleElement());
-	}
-
-	protected String singleElement() {
-		return "single element";
-	}
-}
diff --git a/jpa/tests/org.eclipse.jpt.utility.tests/src/org/eclipse/jpt/utility/tests/internal/iterators/SingleElementListIteratorTests.java b/jpa/tests/org.eclipse.jpt.utility.tests/src/org/eclipse/jpt/utility/tests/internal/iterators/SingleElementListIteratorTests.java
deleted file mode 100644
index 1ad48b2..0000000
--- a/jpa/tests/org.eclipse.jpt.utility.tests/src/org/eclipse/jpt/utility/tests/internal/iterators/SingleElementListIteratorTests.java
+++ /dev/null
@@ -1,112 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005, 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.utility.tests.internal.iterators;
-
-import java.util.Iterator;
-import java.util.ListIterator;
-import org.eclipse.jpt.utility.internal.iterators.SingleElementListIterator;
-
-@SuppressWarnings("nls")
-public class SingleElementListIteratorTests extends SingleElementIteratorTests {
-
-	public SingleElementListIteratorTests(String name) {
-		super(name);
-	}
-
-	public void testNextIndex() {
-		ListIterator<String> stream = this.buildSingleElementListIterator();
-		while (stream.hasNext()) {
-			assertEquals("bogus index", 0, stream.nextIndex());
-			stream.next();
-		}
-		assertEquals("bogus index", 1, stream.nextIndex());
-	}
-
-	public void testHasPrevious() {
-		int i = 0;
-		ListIterator<String> stream = this.buildSingleElementListIterator();
-		while (stream.hasNext()) {
-			stream.next();
-			i++;
-		}
-		assertEquals(1, i);
-
-		while (stream.hasPrevious()) {
-			stream.previous();
-			i++;
-		}
-		assertEquals(2, i);
-	}
-
-	public void testPrevious() {
-		ListIterator<String> stream = this.buildSingleElementListIterator();
-
-		while (stream.hasNext()) {
-			assertEquals("bogus element", this.singleElement(), stream.next());
-		}
-
-		while (stream.hasPrevious()) {
-			assertEquals("bogus element", this.singleElement(), stream.previous());
-		}
-	}
-
-	public void testPreviousIndex() {
-		ListIterator<String> stream = this.buildSingleElementListIterator();
-
-		while (stream.hasNext()) {
-			assertEquals("bogus index", 0, stream.nextIndex());
-			stream.next();
-		}
-
-		while (stream.hasPrevious()) {
-			assertEquals("bogus index", 0, stream.previousIndex());
-			stream.previous();
-		}
-
-		assertEquals("bogus index", -1, stream.previousIndex());
-	}
-
-	public void testAdd() {
-		boolean exCaught = false;
-		ListIterator<String> stream = this.buildSingleElementListIterator();
-
-		try {
-			stream.add("foo");
-		} catch (UnsupportedOperationException ex) {
-			exCaught = true;
-		}
-
-		assertTrue("UnsupportedOperationException not thrown", exCaught);
-	}
-
-	public void testSet() {
-		boolean exCaught = false;
-		for (ListIterator<String> stream = this.buildSingleElementListIterator(); stream.hasNext();) {
-			if (stream.next().equals(this.singleElement())) {
-				try {
-					stream.set("foo");
-				} catch (UnsupportedOperationException ex) {
-					exCaught = true;
-				}
-			}
-		}
-		assertTrue("UnsupportedOperationException not thrown", exCaught);
-	}
-
-	@Override
-	protected Iterator<String> buildSingleElementIterator() {
-		return new SingleElementListIterator<String>(this.singleElement());
-	}
-
-	protected ListIterator<String> buildSingleElementListIterator() {
-		return (ListIterator<String>) this.buildSingleElementIterator();
-	}
-
-}
diff --git a/jpa/tests/org.eclipse.jpt.utility.tests/src/org/eclipse/jpt/utility/tests/internal/iterators/TransformationIteratorTests.java b/jpa/tests/org.eclipse.jpt.utility.tests/src/org/eclipse/jpt/utility/tests/internal/iterators/TransformationIteratorTests.java
deleted file mode 100644
index 0cfa7fa..0000000
--- a/jpa/tests/org.eclipse.jpt.utility.tests/src/org/eclipse/jpt/utility/tests/internal/iterators/TransformationIteratorTests.java
+++ /dev/null
@@ -1,230 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005, 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.utility.tests.internal.iterators;
-
-import java.util.ArrayList;
-import java.util.Collection;
-import java.util.Collections;
-import java.util.Iterator;
-import java.util.NoSuchElementException;
-import junit.framework.TestCase;
-import org.eclipse.jpt.utility.internal.Transformer;
-import org.eclipse.jpt.utility.internal.iterators.TransformationIterator;
-
-@SuppressWarnings("nls")
-public class TransformationIteratorTests extends TestCase {
-
-	public TransformationIteratorTests(String name) {
-		super(name);
-	}
-
-	public void testHasNext() {
-		int i = 0;
-		for (Iterator<Integer> stream = this.buildIterator(); stream.hasNext();) {
-			stream.next();
-			i++;
-		}
-		assertEquals(8, i);
-	}
-
-	public void testHasNextUpcast() {
-		int i = 0;
-		for (Iterator<Object> stream = this.buildIteratorUpcast(); stream.hasNext();) {
-			stream.next();
-			i++;
-		}
-		assertEquals(8, i);
-	}
-
-	public void testInnerHasNext() {
-		int i = 0;
-		for (Iterator<Integer> stream = this.buildInnerIterator(); stream.hasNext();) {
-			stream.next();
-			i++;
-		}
-		assertEquals(8, i);
-	}
-
-	public void testNext() {
-		int i = 0;
-		for (Iterator<Integer> stream = this.buildIterator(); stream.hasNext();) {
-			assertEquals("bogus transformation", ++i, stream.next().intValue());
-		}
-	}
-
-	public void testNextUpcast() {
-		int i = 0;
-		for (Iterator<Object> stream = this.buildIteratorUpcast(); stream.hasNext();) {
-			assertEquals("bogus transformation", ++i, ((Integer) stream.next()).intValue());
-		}
-	}
-
-	public void testInnerNext() {
-		int i = 0;
-		for (Iterator<Integer> stream = this.buildInnerIterator(); stream.hasNext();) {
-			assertEquals("bogus transformation", ++i, stream.next().intValue());
-		}
-	}
-
-	public void testRemove() {
-		Collection<String> c = this.buildCollection();
-		for (Iterator<Integer> stream = this.buildInnerTransformationIterator(c.iterator()); stream.hasNext();) {
-			if (stream.next().intValue() == 3) {
-				stream.remove();
-			}
-		}
-		assertEquals("nothing removed", this.buildCollection().size() - 1, c.size());
-		assertFalse("element still in collection", c.contains("333"));
-		assertTrue("wrong element removed", c.contains("22"));
-	}
-
-	public void testInnerRemove() {
-		Collection<String> c = this.buildCollection();
-		for (Iterator<Integer> stream = this.buildTransformationIterator(c.iterator(), this.buildTransformer()); stream.hasNext();) {
-			if (stream.next().intValue() == 3) {
-				stream.remove();
-			}
-		}
-		assertEquals("nothing removed", this.buildCollection().size() - 1, c.size());
-		assertFalse("element still in collection", c.contains("333"));
-		assertTrue("wrong element removed", c.contains("22"));
-	}
-
-	public void testNoSuchElementException() {
-		boolean exCaught = false;
-		Iterator<Integer> stream = this.buildIterator();
-		Integer integer = null;
-		while (stream.hasNext()) {
-			integer = stream.next();
-		}
-		try {
-			integer = stream.next();
-		} catch (NoSuchElementException ex) {
-			exCaught = true;
-		}
-		assertTrue("NoSuchElementException not thrown: " + integer, exCaught);
-	}
-
-	public void testUnsupportedOperationException() {
-		boolean exCaught = false;
-		for (Iterator<Integer> stream = this.buildUnmodifiableIterator(); stream.hasNext();) {
-			int i = stream.next().intValue();
-			if (i == 3) {
-				try {
-					stream.remove();
-				} catch (UnsupportedOperationException ex) {
-					exCaught = true;
-				}
-			}
-		}
-		assertTrue("UnsupportedOperationException not thrown", exCaught);
-	}
-
-	public void testIllegalStateException() {
-		boolean exCaught = false;
-		try {
-			this.buildIterator().remove();
-		} catch (IllegalStateException ex) {
-			exCaught = true;
-		}
-		assertTrue("IllegalStateException not thrown", exCaught);
-	}
-
-	private Iterator<Integer> buildIterator() {
-		return this.buildTransformationIterator(this.buildNestedIterator(), this.buildTransformer());
-	}
-
-	private Iterator<Object> buildIteratorUpcast() {
-		return this.buildTransformationIteratorUpcast(this.buildNestedIterator(), this.buildTransformerUpcast());
-	}
-
-	private Iterator<Integer> buildInnerIterator() {
-		return this.buildInnerTransformationIterator(this.buildNestedIterator());
-	}
-
-	private Iterator<Integer> buildUnmodifiableIterator() {
-		return this.buildTransformationIterator(this.buildUnmodifiableNestedIterator(), this.buildTransformer());
-	}
-
-	private Iterator<Integer> buildTransformationIterator(Iterator<String> nestedIterator, Transformer<String, Integer> transformer) {
-		return new TransformationIterator<String, Integer>(nestedIterator, transformer);
-	}
-
-	private Iterator<Object> buildTransformationIteratorUpcast(Iterator<String> nestedIterator, Transformer<Object, Integer> transformer) {
-		return new TransformationIterator<Object, Object>(nestedIterator, transformer);
-	}
-
-	private Transformer<String, Integer> buildTransformer() {
-		// transform each string into an integer with a value of the string's length
-		return new Transformer<String, Integer>() {
-			public Integer transform(String next) {
-				return new Integer(next.length());
-			}
-		};
-	}
-
-	private Transformer<Object, Integer> buildTransformerUpcast() {
-		// transform each string into an integer with a value of the string's length
-		return new Transformer<Object, Integer>() {
-			public Integer transform(Object next) {
-				return new Integer(((String) next).length());
-			}
-		};
-	}
-
-	private Iterator<Integer> buildInnerTransformationIterator(Iterator<String> nestedIterator) {
-		// transform each string into an integer with a value of the string's length
-		return new TransformationIterator<String, Integer>(nestedIterator) {
-			@Override
-			protected Integer transform(String next) {
-				return new Integer(next.length());
-			}
-		};
-	}
-
-	private Iterator<String> buildNestedIterator() {
-		return this.buildCollection().iterator();
-	}
-
-	private Iterator<String> buildUnmodifiableNestedIterator() {
-		return this.buildUnmodifiableCollection().iterator();
-	}
-
-	private Collection<String> buildCollection() {
-		Collection<String> c = new ArrayList<String>();
-		c.add("1");
-		c.add("22");
-		c.add("333");
-		c.add("4444");
-		c.add("55555");
-		c.add("666666");
-		c.add("7777777");
-		c.add("88888888");
-		return c;
-	}
-
-	private Collection<String> buildUnmodifiableCollection() {
-		return Collections.unmodifiableCollection(this.buildCollection());
-	}
-
-	public void testInvalidTransformationIterator() {
-		// missing method override
-		Iterator<Integer> iterator = new TransformationIterator<String, Integer>(this.buildCollection().iterator());
-		boolean exCaught = false;
-		try {
-			Integer integer = iterator.next();
-			fail("invalid integer: " + integer);
-		} catch (UnsupportedOperationException ex) {
-			exCaught = true;
-		}
-		assertTrue("NoSuchElementException not thrown", exCaught);
-	}
-
-}
diff --git a/jpa/tests/org.eclipse.jpt.utility.tests/src/org/eclipse/jpt/utility/tests/internal/iterators/TransformationListIteratorTests.java b/jpa/tests/org.eclipse.jpt.utility.tests/src/org/eclipse/jpt/utility/tests/internal/iterators/TransformationListIteratorTests.java
deleted file mode 100644
index 28863e7..0000000
--- a/jpa/tests/org.eclipse.jpt.utility.tests/src/org/eclipse/jpt/utility/tests/internal/iterators/TransformationListIteratorTests.java
+++ /dev/null
@@ -1,322 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005, 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.utility.tests.internal.iterators;
-
-import java.util.ArrayList;
-import java.util.Collections;
-import java.util.Iterator;
-import java.util.List;
-import java.util.ListIterator;
-import java.util.NoSuchElementException;
-import junit.framework.TestCase;
-import org.eclipse.jpt.utility.internal.Transformer;
-import org.eclipse.jpt.utility.internal.iterators.TransformationListIterator;
-
-@SuppressWarnings("nls")
-public class TransformationListIteratorTests extends TestCase {
-
-	public TransformationListIteratorTests(String name) {
-		super(name);
-	}
-
-	public void testHasNextAndHasPrevious() {
-		int i = 0;
-		ListIterator<Integer> stream = this.buildIterator();
-
-		while (stream.hasNext()) {
-			stream.next();
-			i++;
-		}
-		assertEquals(8, i);
-
-		while (stream.hasPrevious()) {
-			stream.previous();
-			i--;
-		}
-		assertEquals(0, i);
-	}
-
-	public void testHasNextAndHasPreviousUpcast() {
-		int i = 0;
-		ListIterator<Object> stream = this.buildIteratorUpcast();
-
-		while (stream.hasNext()) {
-			stream.next();
-			i++;
-		}
-		assertEquals(8, i);
-
-		while (stream.hasPrevious()) {
-			stream.previous();
-			i--;
-		}
-		assertEquals(0, i);
-	}
-
-	public void testInnerHasNextAndHasPrevious() {
-		int i = 0;
-		ListIterator<Integer> stream = this.buildInnerIterator();
-
-		while (stream.hasNext()) {
-			stream.next();
-			i++;
-		}
-		assertEquals(8, i);
-
-		while (stream.hasPrevious()) {
-			stream.previous();
-			i--;
-		}
-		assertEquals(0, i);
-	}
-
-	public void testNextAndPrevious() {
-		int i = 0;
-		ListIterator<Integer> stream = this.buildIterator();
-
-		while (stream.hasNext()) {
-			assertEquals(++i, stream.next().intValue());
-		}
-
-		++i;
-
-		while (stream.hasPrevious()) {
-			assertEquals(--i, stream.previous().intValue());
-		}
-	}
-
-	public void testInnerNextAndPrevious() {
-		int i = 0;
-		ListIterator<Integer> stream = this.buildInnerIterator();
-
-		while (stream.hasNext()) {
-			assertEquals(++i, stream.next().intValue());
-		}
-
-		++i;
-
-		while (stream.hasPrevious()) {
-			assertEquals(--i, stream.previous().intValue());
-		}
-	}
-
-	public void testNextIndexAndPreviousIndex() {
-		int i = -1;
-		ListIterator<Integer> stream = this.buildIterator();
-
-		while (stream.hasNext()) {
-			assertEquals(++i, stream.nextIndex());
-			stream.next();
-		}
-
-		++i;
-
-		while (stream.hasPrevious()) {
-			assertEquals(--i, stream.previousIndex());
-			stream.previous();
-		}
-	}
-
-	public void testInnerNextIndexAndPreviousIndex() {
-		int i = -1;
-		ListIterator<Integer> stream = this.buildInnerIterator();
-
-		while (stream.hasNext()) {
-			assertEquals(++i, stream.nextIndex());
-			stream.next();
-		}
-
-		++i;
-
-		while (stream.hasPrevious()) {
-			assertEquals(--i, stream.previousIndex());
-			stream.previous();
-		}
-	}
-
-	public void testRemove() {
-		List<String> l = this.buildList();
-		for (ListIterator<Integer> stream = this.buildInnerTransformationListIterator(l.listIterator()); stream.hasNext();) {
-			if (stream.next().intValue() == 3) {
-				stream.remove();
-			}
-		}
-		assertEquals("nothing removed", this.buildList().size() - 1, l.size());
-		assertFalse("element still in list", l.contains("333"));
-		assertTrue("wrong element removed", l.contains("22"));
-	}
-
-	public void testInnerRemove() {
-		List<String> l = this.buildList();
-		for (ListIterator<Integer> stream = this.buildTransformationListIterator(l.listIterator(), this.buildTransformer()); stream.hasNext();) {
-			if (stream.next().intValue() == 3) {
-				stream.remove();
-			}
-		}
-		assertEquals("nothing removed", this.buildList().size() - 1, l.size());
-		assertFalse("element still in list", l.contains("333"));
-		assertTrue("wrong element removed", l.contains("22"));
-	}
-
-	public void testUnsupportedOperationExceptionOnAdd() {
-		ListIterator<Integer> stream = this.buildIterator();
-		boolean exCaught = false;
-		try {
-			stream.add(new Integer(0));
-			fail("exception not thrown");
-		} catch (UnsupportedOperationException e) {
-			exCaught = true;
-		}
-		assertTrue(exCaught);
-	}
-
-	public void testUnsupportedOperationExceptionOnSet() {
-		ListIterator<Integer> stream = this.buildIterator();
-		boolean exCaught = false;
-		try {
-			stream.set(new Integer(0));
-			fail("exception not thrown");
-		} catch (UnsupportedOperationException e) {
-			exCaught = true;
-		}
-		assertTrue(exCaught);
-	}
-
-	public void testNoSuchElementException() {
-		boolean exCaught = false;
-		ListIterator<Integer> stream = this.buildIterator();
-		Integer integer = null;
-		while (stream.hasNext()) {
-			integer = stream.next();
-		}
-		try {
-			integer = stream.next();
-		} catch (NoSuchElementException ex) {
-			exCaught = true;
-		}
-		assertTrue("NoSuchElementException not thrown: " + integer, exCaught);
-	}
-
-	public void testUnsupportedOperationException() {
-		boolean exCaught = false;
-		for (Iterator<Integer> stream = this.buildUnmodifiableIterator(); stream.hasNext();) {
-			int i = stream.next().intValue();
-			if (i == 3) {
-				try {
-					stream.remove();
-				} catch (UnsupportedOperationException ex) {
-					exCaught = true;
-				}
-			}
-		}
-		assertTrue("UnsupportedOperationException not thrown", exCaught);
-	}
-
-	public void testIllegalStateException() {
-		boolean exCaught = false;
-		try {
-			this.buildIterator().remove();
-		} catch (IllegalStateException ex) {
-			exCaught = true;
-		}
-		assertTrue("IllegalStateException not thrown", exCaught);
-	}
-
-	private ListIterator<Integer> buildIterator() {
-		return this.buildTransformationListIterator(this.buildNestedIterator(), this.buildTransformer());
-	}
-
-	private ListIterator<Object> buildIteratorUpcast() {
-		return this.buildTransformationListIteratorUpcast(this.buildNestedIterator(), this.buildTransformerUpcast());
-	}
-
-	private ListIterator<Integer> buildInnerIterator() {
-		return this.buildInnerTransformationListIterator(this.buildNestedIterator());
-	}
-
-	private ListIterator<Integer> buildUnmodifiableIterator() {
-		return this.buildTransformationListIterator(this.buildUnmodifiableNestedIterator(), this.buildTransformer());
-	}
-
-	private ListIterator<Integer> buildTransformationListIterator(ListIterator<String> nestedIterator, Transformer<String, Integer> transformer) {
-		return new TransformationListIterator<String, Integer>(nestedIterator, transformer);
-	}
-
-	private ListIterator<Object> buildTransformationListIteratorUpcast(ListIterator<String> nestedIterator, Transformer<Object, Integer> transformer) {
-		return new TransformationListIterator<Object, Object>(nestedIterator, transformer);
-	}
-
-	private Transformer<String, Integer> buildTransformer() {
-		// transform each string into an integer with a value of the string's length
-		return new Transformer<String, Integer>() {
-			public Integer transform(String next) {
-				return new Integer(next.length());
-			}
-		};
-	}
-
-	private Transformer<Object, Integer> buildTransformerUpcast() {
-		// transform each string into an integer with a value of the string's length
-		return new Transformer<Object, Integer>() {
-			public Integer transform(Object next) {
-				return new Integer(((String) next).length());
-			}
-		};
-	}
-
-	private ListIterator<Integer> buildInnerTransformationListIterator(ListIterator<String> nestedIterator) {
-		// transform each string into an integer with a value of the string's length
-		return new TransformationListIterator<String, Integer>(nestedIterator) {
-			@Override
-			protected Integer transform(String next) {
-				return new Integer(next.length());
-			}
-		};
-	}
-
-	private ListIterator<String> buildNestedIterator() {
-		return this.buildList().listIterator();
-	}
-
-	private ListIterator<String> buildUnmodifiableNestedIterator() {
-		return this.buildUnmodifiableList().listIterator();
-	}
-
-	private List<String> buildList() {
-		List<String> l = new ArrayList<String>();
-		l.add("1");
-		l.add("22");
-		l.add("333");
-		l.add("4444");
-		l.add("55555");
-		l.add("666666");
-		l.add("7777777");
-		l.add("88888888");
-		return l;
-	}
-
-	private List<String> buildUnmodifiableList() {
-		return Collections.unmodifiableList(this.buildList());
-	}
-
-	public void testInvalidTransformationListIterator() {
-		// missing method override
-		Iterator<Integer> iterator = new TransformationListIterator<String, Integer>(this.buildList().listIterator());
-		boolean exCaught = false;
-		try {
-			Integer integer = iterator.next();
-			fail("invalid integer: " + integer);
-		} catch (UnsupportedOperationException ex) {
-			exCaught = true;
-		}
-		assertTrue("NoSuchElementException not thrown", exCaught);
-	}
-
-}
diff --git a/jpa/tests/org.eclipse.jpt.utility.tests/src/org/eclipse/jpt/utility/tests/internal/iterators/TreeIteratorTests.java b/jpa/tests/org.eclipse.jpt.utility.tests/src/org/eclipse/jpt/utility/tests/internal/iterators/TreeIteratorTests.java
deleted file mode 100644
index cd658d2..0000000
--- a/jpa/tests/org.eclipse.jpt.utility.tests/src/org/eclipse/jpt/utility/tests/internal/iterators/TreeIteratorTests.java
+++ /dev/null
@@ -1,211 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005, 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.utility.tests.internal.iterators;
-
-import java.util.ArrayList;
-import java.util.Collection;
-import java.util.Iterator;
-import java.util.NoSuchElementException;
-import junit.framework.TestCase;
-import org.eclipse.jpt.utility.internal.iterators.TreeIterator;
-import org.eclipse.jpt.utility.tests.internal.TestTools;
-
-@SuppressWarnings("nls")
-public class TreeIteratorTests extends TestCase {
-	/** this will be populated with all the nodes created for the test */
-	Collection<TreeNode> nodes = new ArrayList<TreeNode>();
-
-	public TreeIteratorTests(String name) {
-		super(name);
-	}
-
-	@Override
-	protected void tearDown() throws Exception {
-		TestTools.clear(this);
-		super.tearDown();
-	}
-
-	public void testHasNext1() {
-		this.verifyHasNext(this.buildTreeIterator1());
-	}
-
-	public void testHasNext2() {
-		this.verifyHasNext(this.buildTreeIterator2());
-	}
-
-	private void verifyHasNext(Iterator<TreeNode> iterator) {
-		int i = 0;
-		while (iterator.hasNext()) {
-			iterator.next();
-			i++;
-		}
-		assertEquals(this.nodes.size(), i);
-	}
-
-	public void testNext1() {
-		this.verifyNext(this.buildTreeIterator1());
-	}
-
-	public void testNext2() {
-		this.verifyNext(this.buildTreeIterator2());
-	}
-
-	private void verifyNext(Iterator<TreeNode> iterator) {
-		while (iterator.hasNext()) {
-			assertTrue("bogus element", this.nodes.contains(iterator.next()));
-		}
-	}
-
-	public void testNoSuchElementException1() {
-		this.verifyNoSuchElementException(this.buildTreeIterator1());
-	}
-
-	public void testNoSuchElementException2() {
-		this.verifyNoSuchElementException(this.buildTreeIterator2());
-	}
-
-	private void verifyNoSuchElementException(Iterator<TreeNode> iterator) {
-		boolean exCaught = false;
-		while (iterator.hasNext()) {
-			iterator.next();
-		}
-		try {
-			iterator.next();
-		} catch (NoSuchElementException ex) {
-			exCaught = true;
-		}
-		assertTrue("NoSuchElementException not thrown", exCaught);
-	}
-
-	public void testRemove1() {
-		this.verifyRemove(this.buildTreeIterator1());
-	}
-
-	public void testRemove2() {
-		this.verifyRemove(this.buildTreeIterator2());
-	}
-
-	private void verifyRemove(Iterator<TreeNode> iterator) {
-		String parentName = "child 2";
-		String childName = "grandchild 2A";
-		int startSize = this.childrenSize(parentName);
-		while (iterator.hasNext()) {
-			TreeNode node = iterator.next();
-			if (node.getName().equals(childName)) {
-				iterator.remove();
-			}
-		}
-		int endSize = this.childrenSize(parentName);
-		assertEquals(startSize - 1, endSize);
-	}
-
-	private int childrenSize(String nodeName) {
-		for (Iterator<TreeNode> stream = this.nodes.iterator(); stream.hasNext();) {
-			TreeNode node = stream.next();
-			if (node.getName().equals(nodeName)) {
-				return node.childrenSize();
-			}
-		}
-		throw new IllegalArgumentException(nodeName);
-	}
-
-	/**
-	 * build a tree iterator with an explicit midwife
-	 */
-	private Iterator<TreeNode> buildTreeIterator1() {
-		return new TreeIterator<TreeNode>(this.buildTree(), this.buildMidwife());
-	}
-
-	private TreeIterator.Midwife<TreeNode> buildMidwife() {
-		return new TreeIterator.Midwife<TreeNode>() {
-			public Iterator<TreeNode> children(TreeNode next) {
-				return next.children();
-			}
-		};
-	}
-
-	/**
-	 * build a tree iterator with an override
-	 */
-	private Iterator<TreeNode> buildTreeIterator2() {
-		return new TreeIterator<TreeNode>(this.buildTree()) {
-			@Override
-			public Iterator<TreeNode> children(TreeNode next) {
-				return next.children();
-			}
-		};
-	}
-
-	public void testInvalidTreeIterator() {
-		// missing method override
-		Iterator<TreeNode> iterator = new TreeIterator<TreeNode>(this.buildTree());
-		boolean exCaught = false;
-		try {
-			TreeNode tn = iterator.next();
-			fail("invalid tree node: " + tn);
-		} catch (UnsupportedOperationException ex) {
-			exCaught = true;
-		}
-		assertTrue("NoSuchElementException not thrown", exCaught);
-	}
-
-	private TreeNode buildTree() {
-		TreeNode root = new TreeNode("root");
-		TreeNode child1 = new TreeNode(root, "child 1");
-		new TreeNode(child1, "grandchild 1A");
-		TreeNode child2 = new TreeNode(root, "child 2");
-		new TreeNode(child2, "grandchild 2A");
-		TreeNode grandchild2B = new TreeNode(child2, "grandchild 2B");
-		new TreeNode(grandchild2B, "great-grandchild 2B1");
-		new TreeNode(grandchild2B, "great-grandchild 2B2");
-		TreeNode grandchild2C = new TreeNode(child2, "grandchild 2C");
-		new TreeNode(grandchild2C, "great-grandchild 2C1");
-		new TreeNode(root, "child 3");
-		return root;
-	}
-
-	private class TreeNode {
-		private String name;
-		private Collection<TreeNode> children = new ArrayList<TreeNode>();
-
-		public TreeNode(String name) {
-			super();
-			TreeIteratorTests.this.nodes.add(this); // log node
-			this.name = name;
-		}
-
-		public TreeNode(TreeNode parent, String name) {
-			this(name);
-			parent.addChild(this);
-		}
-
-		public String getName() {
-			return this.name;
-		}
-
-		private void addChild(TreeNode child) {
-			this.children.add(child);
-		}
-
-		public Iterator<TreeNode> children() {
-			return this.children.iterator();
-		}
-
-		public int childrenSize() {
-			return this.children.size();
-		}
-
-		@Override
-		public String toString() {
-			return "TreeNode(" + this.name + ")";
-		}
-	}
-
-}
diff --git a/jpa/tests/org.eclipse.jpt.utility.tests/src/org/eclipse/jpt/utility/tests/internal/model/ChangeSupportTests.java b/jpa/tests/org.eclipse.jpt.utility.tests/src/org/eclipse/jpt/utility/tests/internal/model/ChangeSupportTests.java
deleted file mode 100644
index 731e9f1..0000000
--- a/jpa/tests/org.eclipse.jpt.utility.tests/src/org/eclipse/jpt/utility/tests/internal/model/ChangeSupportTests.java
+++ /dev/null
@@ -1,4177 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.utility.tests.internal.model;
-
-import java.io.Serializable;
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.Collection;
-import java.util.Collections;
-import java.util.HashSet;
-import java.util.Iterator;
-import java.util.List;
-
-import junit.framework.TestCase;
-
-import org.eclipse.jpt.utility.internal.ClassTools;
-import org.eclipse.jpt.utility.internal.CollectionTools;
-import org.eclipse.jpt.utility.internal.model.AbstractModel;
-import org.eclipse.jpt.utility.internal.model.ChangeSupport;
-import org.eclipse.jpt.utility.model.event.CollectionChangeEvent;
-import org.eclipse.jpt.utility.model.event.ListChangeEvent;
-import org.eclipse.jpt.utility.model.event.PropertyChangeEvent;
-import org.eclipse.jpt.utility.model.event.StateChangeEvent;
-import org.eclipse.jpt.utility.model.event.TreeChangeEvent;
-import org.eclipse.jpt.utility.model.listener.ChangeListener;
-import org.eclipse.jpt.utility.model.listener.CollectionChangeAdapter;
-import org.eclipse.jpt.utility.model.listener.CollectionChangeListener;
-import org.eclipse.jpt.utility.model.listener.ListChangeAdapter;
-import org.eclipse.jpt.utility.model.listener.ListChangeListener;
-import org.eclipse.jpt.utility.model.listener.PropertyChangeAdapter;
-import org.eclipse.jpt.utility.model.listener.PropertyChangeListener;
-import org.eclipse.jpt.utility.model.listener.StateChangeAdapter;
-import org.eclipse.jpt.utility.model.listener.StateChangeListener;
-import org.eclipse.jpt.utility.model.listener.TreeChangeAdapter;
-import org.eclipse.jpt.utility.model.listener.TreeChangeListener;
-import org.eclipse.jpt.utility.tests.internal.TestTools;
-
-@SuppressWarnings("nls")
-public class ChangeSupportTests
-	extends TestCase
-	implements StateChangeListener, PropertyChangeListener, CollectionChangeListener, ListChangeListener, TreeChangeListener
-{
-	private TestModel testModel;
-	private static final String TEST_TO_STRING = "this is a test";
-
-	private StateChangeEvent stateChangeEvent;
-	private boolean stateChangedCalled = false;
-
-	private PropertyChangeEvent propertyChangeEvent;
-	private boolean propertyChangeCalled = false;
-	private static final String PROPERTY_NAME = "propertyName";
-	static final Object OLD_OBJECT_VALUE = new Object();
-	static final Object NEW_OBJECT_VALUE = new Object();
-	static final Integer OLD_INT_VALUE = new Integer(27);
-	static final Boolean OLD_BOOLEAN_VALUE = Boolean.TRUE;
-	static final Integer NEW_INT_VALUE = new Integer(42);
-	static final Boolean NEW_BOOLEAN_VALUE = Boolean.FALSE;
-
-	private CollectionChangeEvent collectionChangeEvent;
-	private boolean itemsAddedCollectionCalled = false;
-	private boolean itemsRemovedCollectionCalled = false;
-	private boolean collectionChangedCalled = false;
-	private boolean collectionClearedCalled = false;
-	private static final String COLLECTION_NAME = "collectionName";
-	static final Object ADDED_OBJECT_VALUE = new Object();
-	static final Object ADDED_OBJECT_VALUE_2 = new Object();
-	static final Object REMOVED_OBJECT_VALUE = new Object();
-	static final int TARGET_INDEX = 7;
-	static final int SOURCE_INDEX = 22;
-
-	private ListChangeEvent listChangeEvent;
-	private boolean itemsAddedListCalled = false;
-	private boolean itemsRemovedListCalled = false;
-	private boolean itemsReplacedListCalled = false;
-	private boolean itemsMovedListCalled = false;
-	private boolean listChangedCalled = false;
-	private boolean listClearedCalled = false;
-	private static final String LIST_NAME = "listName";
-	private static final int ADD_INDEX = 3;
-	private static final int REMOVE_INDEX = 5;
-	private static final int REPLACE_INDEX = 2;
-
-	private TreeChangeEvent treeChangeEvent;
-	private boolean nodeAddedCalled = false;
-	private boolean nodeRemovedCalled = false;
-	private boolean treeChangedCalled = false;
-	private boolean treeClearedCalled = false;
-	private static final String TREE_NAME = "treeName";
-	static final Object[] OBJECT_ARRAY_PATH = {new Object(), new Object(), new String()};
-	static final Object[] EMPTY_PATH = {};
-
-
-	public ChangeSupportTests(String name) {
-		super(name);
-	}
-
-	@Override
-	protected void setUp() throws Exception {
-		super.setUp();
-		this.testModel = new TestModel();
-	}
-
-	@Override
-	protected void tearDown() throws Exception {
-		TestTools.clear(this);
-		super.tearDown();
-	}
-
-
-	// ********** general tests **********
-
-	public void testNullSource() {
-		boolean exCaught = false;
-		try {
-			ChangeSupport cs = new ChangeSupport(null);
-			fail("bogus change support: " + cs);
-		} catch (NullPointerException ex) {
-			exCaught = true;
-		}
-		assertTrue(exCaught);
-	}
-
-	// ********** state change tests **********
-
-	public void testFireStateChange() {
-		this.stateChangeEvent = null;
-		this.stateChangedCalled = false;
-		this.testModel.addStateChangeListener(this);
-		this.testModel.testFireStateChange();
-		assertNotNull(this.stateChangeEvent);
-		assertEquals(this.testModel, this.stateChangeEvent.getSource());
-		assertTrue(this.stateChangedCalled);
-	}
-
-	public void testHasAnyStateChangeListeners() {
-		assertTrue(this.testModel.hasNoStateChangeListeners());
-		this.testModel.addStateChangeListener(this);
-		assertTrue(this.testModel.hasAnyStateChangeListeners());
-		this.testModel.removeStateChangeListener(this);
-		assertTrue(this.testModel.hasNoStateChangeListeners());
-	}
-
-	public void testHasAnyStateChangeListenersDuplicate() {
-		assertTrue(this.testModel.hasNoStateChangeListeners());
-		this.testModel.addStateChangeListener(this);
-		this.testModel.addStateChangeListener(this);
-		assertTrue(this.testModel.hasAnyStateChangeListeners());
-		this.testModel.removeStateChangeListener(this);
-		assertTrue(this.testModel.hasAnyStateChangeListeners());
-		this.testModel.removeStateChangeListener(this);
-		assertTrue(this.testModel.hasNoStateChangeListeners());
-	}
-
-	public void testAddNullStateListener() {
-		boolean exCaught = false;
-		try {
-			this.testModel.addStateChangeListener(null);
-		} catch (NullPointerException ex) {
-			exCaught = true;
-		}
-		assertTrue(exCaught);
-	}
-
-	public void testRemoveBogusStateListener() {
-		boolean exCaught = false;
-		try {
-			this.testModel.removeStateChangeListener(this);
-		} catch (IllegalArgumentException ex) {
-			exCaught = true;
-		}
-		assertTrue(exCaught);
-
-		this.testModel.addPropertyChangeListener(this);
-		exCaught = false;
-		try {
-			this.testModel.removeStateChangeListener(this);
-		} catch (IllegalArgumentException ex) {
-			exCaught = true;
-		}
-		assertTrue(exCaught);
-
-		this.testModel.addStateChangeListener(this);
-		exCaught = false;
-		try {
-			this.testModel.removeStateChangeListener(new ChangeSupportTests("dummy"));
-		} catch (IllegalArgumentException ex) {
-			exCaught = true;
-		}
-		assertTrue(exCaught);
-
-		exCaught = false;
-		try {
-			this.testModel.removeStateChangeListener(new StateChangeAdapter());
-		} catch (IllegalArgumentException ex) {
-			exCaught = true;
-		}
-		assertTrue(exCaught);
-	}
-
-
-	// ********** property change tests **********
-
-	public void testFirePropertyChangedEvent() {
-		this.propertyChangeEvent = null;
-		this.propertyChangeCalled = false;
-		this.testModel.addPropertyChangeListener(this);
-		this.testModel.testFirePropertyChangedEvent();
-		this.verifyPropertyChangeEvent(OLD_OBJECT_VALUE, NEW_OBJECT_VALUE);
-		assertTrue(this.propertyChangeCalled);
-
-		this.propertyChangeEvent = null;
-		this.propertyChangeCalled = false;
-		this.testModel.removePropertyChangeListener(this);
-		this.testModel.testFirePropertyChangedEvent();
-		assertNull(this.propertyChangeEvent);
-		assertFalse(this.propertyChangeCalled);
-
-		this.propertyChangeEvent = null;
-		this.propertyChangeCalled = false;
-		this.testModel.addPropertyChangeListener(PROPERTY_NAME, this);
-		this.testModel.testFirePropertyChangedEvent();
-		this.verifyPropertyChangeEvent(OLD_OBJECT_VALUE, NEW_OBJECT_VALUE);
-		assertTrue(this.propertyChangeCalled);
-
-		this.propertyChangeEvent = null;
-		this.propertyChangeCalled = false;
-		this.testModel.removePropertyChangeListener(PROPERTY_NAME, this);
-		this.testModel.testFirePropertyChangedEvent();
-		assertNull(this.propertyChangeEvent);
-		assertFalse(this.propertyChangeCalled);
-	}
-
-	public void testFirePropertyChangedEventNoChange() {
-		this.propertyChangeEvent = null;
-		this.propertyChangeCalled = false;
-		this.testModel.addPropertyChangeListener(this);
-		this.testModel.testFirePropertyChangedEventNoChange();
-		assertNull(this.propertyChangeEvent);
-		assertFalse(this.propertyChangeCalled);
-
-		this.propertyChangeEvent = null;
-		this.propertyChangeCalled = false;
-		this.testModel.removePropertyChangeListener(this);
-		this.testModel.testFirePropertyChangedEventNoChange();
-		assertNull(this.propertyChangeEvent);
-		assertFalse(this.propertyChangeCalled);
-
-		this.propertyChangeEvent = null;
-		this.propertyChangeCalled = false;
-		this.testModel.addPropertyChangeListener(PROPERTY_NAME, this);
-		this.testModel.testFirePropertyChangedEventNoChange();
-		assertNull(this.propertyChangeEvent);
-		assertFalse(this.propertyChangeCalled);
-
-		this.propertyChangeEvent = null;
-		this.propertyChangeCalled = false;
-		this.testModel.removePropertyChangeListener(PROPERTY_NAME, this);
-		this.testModel.testFirePropertyChangedEventNoChange();
-		assertNull(this.propertyChangeEvent);
-		assertFalse(this.propertyChangeCalled);
-	}
-
-	public void testFirePropertyChangedObjectObject() {
-		this.propertyChangeEvent = null;
-		this.propertyChangeCalled = false;
-		this.testModel.addPropertyChangeListener(this);
-		this.testModel.testFirePropertyChangedObjectObject();
-		this.verifyPropertyChangeEvent(OLD_OBJECT_VALUE, NEW_OBJECT_VALUE);
-		assertTrue(this.propertyChangeCalled);
-
-		this.propertyChangeEvent = null;
-		this.propertyChangeCalled = false;
-		this.testModel.removePropertyChangeListener(this);
-		this.testModel.testFirePropertyChangedObjectObject();
-		assertNull(this.propertyChangeEvent);
-		assertFalse(this.propertyChangeCalled);
-
-		this.propertyChangeEvent = null;
-		this.propertyChangeCalled = false;
-		this.testModel.addPropertyChangeListener(PROPERTY_NAME, this);
-		this.testModel.testFirePropertyChangedObjectObject();
-		this.verifyPropertyChangeEvent(OLD_OBJECT_VALUE, NEW_OBJECT_VALUE);
-		assertTrue(this.propertyChangeCalled);
-
-		this.propertyChangeEvent = null;
-		this.propertyChangeCalled = false;
-		this.testModel.removePropertyChangeListener(PROPERTY_NAME, this);
-		this.testModel.testFirePropertyChangedObjectObject();
-		assertNull(this.propertyChangeEvent);
-		assertFalse(this.propertyChangeCalled);
-	}
-
-	public void testFirePropertyChangedObjectObjectNoChange() {
-		this.propertyChangeEvent = null;
-		this.propertyChangeCalled = false;
-		this.testModel.addPropertyChangeListener(this);
-		this.testModel.testFirePropertyChangedObjectObjectNoChange();
-		assertNull(this.propertyChangeEvent);
-		assertFalse(this.propertyChangeCalled);
-
-		this.propertyChangeEvent = null;
-		this.propertyChangeCalled = false;
-		this.testModel.removePropertyChangeListener(this);
-		this.testModel.testFirePropertyChangedObjectObjectNoChange();
-		assertNull(this.propertyChangeEvent);
-		assertFalse(this.propertyChangeCalled);
-
-		this.propertyChangeEvent = null;
-		this.propertyChangeCalled = false;
-		this.testModel.addPropertyChangeListener(PROPERTY_NAME, this);
-		this.testModel.testFirePropertyChangedObjectObjectNoChange();
-		assertNull(this.propertyChangeEvent);
-		assertFalse(this.propertyChangeCalled);
-
-		this.propertyChangeEvent = null;
-		this.propertyChangeCalled = false;
-		this.testModel.removePropertyChangeListener(PROPERTY_NAME, this);
-		this.testModel.testFirePropertyChangedObjectObjectNoChange();
-		assertNull(this.propertyChangeEvent);
-		assertFalse(this.propertyChangeCalled);
-	}
-
-	public void testFirePropertyChangedObject() {
-		this.propertyChangeEvent = null;
-		this.propertyChangeCalled = false;
-		this.testModel.addPropertyChangeListener(this);
-		this.testModel.testFirePropertyChangedObject();
-		this.verifyPropertyChangeEvent(null, NEW_OBJECT_VALUE);
-		assertTrue(this.propertyChangeCalled);
-
-		this.propertyChangeEvent = null;
-		this.propertyChangeCalled = false;
-		this.testModel.removePropertyChangeListener(this);
-		this.testModel.testFirePropertyChangedObject();
-		assertNull(this.propertyChangeEvent);
-		assertFalse(this.propertyChangeCalled);
-
-		this.propertyChangeEvent = null;
-		this.propertyChangeCalled = false;
-		this.testModel.addPropertyChangeListener(PROPERTY_NAME, this);
-		this.testModel.testFirePropertyChangedObject();
-		this.verifyPropertyChangeEvent(null, NEW_OBJECT_VALUE);
-		assertTrue(this.propertyChangeCalled);
-
-		this.propertyChangeEvent = null;
-		this.propertyChangeCalled = false;
-		this.testModel.removePropertyChangeListener(PROPERTY_NAME, this);
-		this.testModel.testFirePropertyChangedObject();
-		assertNull(this.propertyChangeEvent);
-		assertFalse(this.propertyChangeCalled);
-	}
-
-	public void testFirePropertyChangedObjectNoChange() {
-		this.propertyChangeEvent = null;
-		this.propertyChangeCalled = false;
-		this.testModel.addPropertyChangeListener(this);
-		this.testModel.testFirePropertyChangedObjectNoChange();
-		assertNull(this.propertyChangeEvent);
-		assertFalse(this.propertyChangeCalled);
-
-		this.propertyChangeEvent = null;
-		this.propertyChangeCalled = false;
-		this.testModel.removePropertyChangeListener(this);
-		this.testModel.testFirePropertyChangedObjectNoChange();
-		assertNull(this.propertyChangeEvent);
-		assertFalse(this.propertyChangeCalled);
-
-		this.propertyChangeEvent = null;
-		this.propertyChangeCalled = false;
-		this.testModel.addPropertyChangeListener(PROPERTY_NAME, this);
-		this.testModel.testFirePropertyChangedObjectNoChange();
-		assertNull(this.propertyChangeEvent);
-		assertFalse(this.propertyChangeCalled);
-
-		this.propertyChangeEvent = null;
-		this.propertyChangeCalled = false;
-		this.testModel.removePropertyChangeListener(PROPERTY_NAME, this);
-		this.testModel.testFirePropertyChangedObjectNoChange();
-		assertNull(this.propertyChangeEvent);
-		assertFalse(this.propertyChangeCalled);
-	}
-
-	public void testFirePropertyChangedIntInt() {
-		this.propertyChangeEvent = null;
-		this.propertyChangeCalled = false;
-		this.testModel.addPropertyChangeListener(this);
-		this.testModel.testFirePropertyChangedIntInt();
-		this.verifyPropertyChangeEvent(OLD_INT_VALUE, NEW_INT_VALUE);
-		assertTrue(this.propertyChangeCalled);
-
-		this.propertyChangeEvent = null;
-		this.propertyChangeCalled = false;
-		this.testModel.removePropertyChangeListener(this);
-		this.testModel.testFirePropertyChangedIntInt();
-		assertNull(this.propertyChangeEvent);
-		assertFalse(this.propertyChangeCalled);
-
-		this.propertyChangeEvent = null;
-		this.propertyChangeCalled = false;
-		this.testModel.addPropertyChangeListener(PROPERTY_NAME, this);
-		this.testModel.testFirePropertyChangedIntInt();
-		this.verifyPropertyChangeEvent(OLD_INT_VALUE, NEW_INT_VALUE);
-		assertTrue(this.propertyChangeCalled);
-
-		this.propertyChangeEvent = null;
-		this.propertyChangeCalled = false;
-		this.testModel.removePropertyChangeListener(PROPERTY_NAME, this);
-		this.testModel.testFirePropertyChangedIntInt();
-		assertNull(this.propertyChangeEvent);
-		assertFalse(this.propertyChangeCalled);
-	}
-
-	public void testFirePropertyChangedIntIntNoChange() {
-		this.propertyChangeEvent = null;
-		this.propertyChangeCalled = false;
-		this.testModel.addPropertyChangeListener(this);
-		this.testModel.testFirePropertyChangedIntIntNoChange();
-		assertNull(this.propertyChangeEvent);
-		assertFalse(this.propertyChangeCalled);
-
-		this.propertyChangeEvent = null;
-		this.propertyChangeCalled = false;
-		this.testModel.removePropertyChangeListener(this);
-		this.testModel.testFirePropertyChangedIntIntNoChange();
-		assertNull(this.propertyChangeEvent);
-		assertFalse(this.propertyChangeCalled);
-
-		this.propertyChangeEvent = null;
-		this.propertyChangeCalled = false;
-		this.testModel.addPropertyChangeListener(PROPERTY_NAME, this);
-		this.testModel.testFirePropertyChangedIntIntNoChange();
-		assertNull(this.propertyChangeEvent);
-		assertFalse(this.propertyChangeCalled);
-
-		this.propertyChangeEvent = null;
-		this.propertyChangeCalled = false;
-		this.testModel.removePropertyChangeListener(PROPERTY_NAME, this);
-		this.testModel.testFirePropertyChangedIntIntNoChange();
-		assertNull(this.propertyChangeEvent);
-		assertFalse(this.propertyChangeCalled);
-	}
-
-	public void testFirePropertyChangedBooleanBoolean() {
-		this.propertyChangeEvent = null;
-		this.propertyChangeCalled = false;
-		this.testModel.addPropertyChangeListener(this);
-		this.testModel.testFirePropertyChangedBooleanBoolean();
-		this.verifyPropertyChangeEvent(OLD_BOOLEAN_VALUE, NEW_BOOLEAN_VALUE);
-		assertTrue(this.propertyChangeCalled);
-
-		this.propertyChangeEvent = null;
-		this.propertyChangeCalled = false;
-		this.testModel.removePropertyChangeListener(this);
-		this.testModel.testFirePropertyChangedBooleanBoolean();
-		assertNull(this.propertyChangeEvent);
-		assertFalse(this.propertyChangeCalled);
-
-		this.propertyChangeEvent = null;
-		this.propertyChangeCalled = false;
-		this.testModel.addPropertyChangeListener(PROPERTY_NAME, this);
-		this.testModel.testFirePropertyChangedBooleanBoolean();
-		this.verifyPropertyChangeEvent(OLD_BOOLEAN_VALUE, NEW_BOOLEAN_VALUE);
-		assertTrue(this.propertyChangeCalled);
-
-		this.propertyChangeEvent = null;
-		this.propertyChangeCalled = false;
-		this.testModel.removePropertyChangeListener(PROPERTY_NAME, this);
-		this.testModel.testFirePropertyChangedBooleanBoolean();
-		assertNull(this.propertyChangeEvent);
-		assertFalse(this.propertyChangeCalled);
-	}
-
-	public void testFirePropertyChangedBooleanBooleanNoChange() {
-		this.propertyChangeEvent = null;
-		this.propertyChangeCalled = false;
-		this.testModel.addPropertyChangeListener(this);
-		this.testModel.testFirePropertyChangedBooleanBooleanNoChange();
-		assertNull(this.propertyChangeEvent);
-		assertFalse(this.propertyChangeCalled);
-
-		this.propertyChangeEvent = null;
-		this.propertyChangeCalled = false;
-		this.testModel.removePropertyChangeListener(this);
-		this.testModel.testFirePropertyChangedBooleanBooleanNoChange();
-		assertNull(this.propertyChangeEvent);
-		assertFalse(this.propertyChangeCalled);
-
-		this.propertyChangeEvent = null;
-		this.propertyChangeCalled = false;
-		this.testModel.addPropertyChangeListener(PROPERTY_NAME, this);
-		this.testModel.testFirePropertyChangedBooleanBooleanNoChange();
-		assertNull(this.propertyChangeEvent);
-		assertFalse(this.propertyChangeCalled);
-
-		this.propertyChangeEvent = null;
-		this.propertyChangeCalled = false;
-		this.testModel.removePropertyChangeListener(PROPERTY_NAME, this);
-		this.testModel.testFirePropertyChangedBooleanBooleanNoChange();
-		assertNull(this.propertyChangeEvent);
-		assertFalse(this.propertyChangeCalled);
-	}
-
-	public void testHasAnyPropertyChangeListeners() {
-		assertTrue(this.testModel.hasNoPropertyChangeListeners(PROPERTY_NAME));
-		this.testModel.addPropertyChangeListener(this);
-		assertTrue(this.testModel.hasAnyPropertyChangeListeners(PROPERTY_NAME));
-		this.testModel.removePropertyChangeListener(this);
-		assertTrue(this.testModel.hasNoPropertyChangeListeners(PROPERTY_NAME));
-
-		assertTrue(this.testModel.hasNoPropertyChangeListeners(PROPERTY_NAME));
-		this.testModel.addPropertyChangeListener(PROPERTY_NAME, this);
-		assertTrue(this.testModel.hasAnyPropertyChangeListeners(PROPERTY_NAME));
-		this.testModel.removePropertyChangeListener(PROPERTY_NAME, this);
-		assertTrue(this.testModel.hasNoPropertyChangeListeners(PROPERTY_NAME));
-	}
-
-	public void testAddNullPropertyListener() {
-		boolean exCaught = false;
-		try {
-			this.testModel.addPropertyChangeListener(null);
-		} catch (NullPointerException ex) {
-			exCaught = true;
-		}
-		assertTrue(exCaught);
-	}
-
-	public void testAddNullPropertyListenerName() {
-		boolean exCaught = false;
-		try {
-			this.testModel.addPropertyChangeListener("foo", null);
-		} catch (NullPointerException ex) {
-			exCaught = true;
-		}
-		assertTrue(exCaught);
-	}
-
-	public void testRemoveBogusPropertyListener() {
-		boolean exCaught = false;
-		try {
-			this.testModel.removePropertyChangeListener(this);
-		} catch (IllegalArgumentException ex) {
-			exCaught = true;
-		}
-		assertTrue(exCaught);
-
-		this.testModel.addCollectionChangeListener(this);
-		exCaught = false;
-		try {
-			this.testModel.removePropertyChangeListener(this);
-		} catch (IllegalArgumentException ex) {
-			exCaught = true;
-		}
-		assertTrue(exCaught);
-
-		this.testModel.addPropertyChangeListener(this);
-		exCaught = false;
-		try {
-			this.testModel.removePropertyChangeListener(new ChangeSupportTests("dummy"));
-		} catch (IllegalArgumentException ex) {
-			exCaught = true;
-		}
-		assertTrue(exCaught);
-
-		exCaught = false;
-		try {
-			this.testModel.removePropertyChangeListener(new PropertyChangeAdapter());
-		} catch (IllegalArgumentException ex) {
-			exCaught = true;
-		}
-		assertTrue(exCaught);
-	}
-
-	public void testRemoveBogusPropertyListenerName() {
-		boolean exCaught = false;
-		try {
-			this.testModel.removePropertyChangeListener("foo", this);
-		} catch (IllegalArgumentException ex) {
-			exCaught = true;
-		}
-		assertTrue(exCaught);
-
-		this.testModel.addCollectionChangeListener("foo", this);
-		exCaught = false;
-		try {
-			this.testModel.removePropertyChangeListener("foo", this);
-		} catch (IllegalArgumentException ex) {
-			exCaught = true;
-		}
-		assertTrue(exCaught);
-
-		this.testModel.addPropertyChangeListener("foo", this);
-		exCaught = false;
-		try {
-			this.testModel.removePropertyChangeListener("foo", new ChangeSupportTests("dummy"));
-		} catch (IllegalArgumentException ex) {
-			exCaught = true;
-		}
-		assertTrue(exCaught);
-
-		exCaught = false;
-		try {
-			this.testModel.removePropertyChangeListener("foo", new PropertyChangeAdapter());
-		} catch (IllegalArgumentException ex) {
-			exCaught = true;
-		}
-		assertTrue(exCaught);
-	}
-
-	private void verifyPropertyChangeEvent(Object oldValue, Object newValue) {
-		this.verifyPropertyChangeEvent(this.testModel, oldValue, newValue);
-	}
-
-	private void verifyPropertyChangeEvent(Object source, Object oldValue, Object newValue) {
-		assertNotNull(this.propertyChangeEvent);
-		assertEquals(source, this.propertyChangeEvent.getSource());
-		assertEquals(PROPERTY_NAME, this.propertyChangeEvent.getPropertyName());
-		assertEquals(oldValue, this.propertyChangeEvent.getOldValue());
-		assertEquals(newValue, this.propertyChangeEvent.getNewValue());
-	}
-
-
-	// ********** collection change tests **********
-
-	public void testFireItemsAddedCollectionEvent() {
-		this.collectionChangeEvent = null;
-		this.itemsAddedCollectionCalled = false;
-		this.testModel.addCollectionChangeListener(this);
-		this.testModel.testFireItemsAddedCollectionEvent();
-		this.verifyCollectionChangeEvent(ADDED_OBJECT_VALUE);
-		assertTrue(this.itemsAddedCollectionCalled);
-
-		this.collectionChangeEvent = null;
-		this.itemsAddedCollectionCalled = false;
-		this.testModel.removeCollectionChangeListener(this);
-		this.testModel.testFireItemsAddedCollectionEvent();
-		assertNull(this.collectionChangeEvent);
-		assertFalse(this.itemsAddedCollectionCalled);
-
-		this.collectionChangeEvent = null;
-		this.itemsAddedCollectionCalled = false;
-		this.testModel.addCollectionChangeListener(COLLECTION_NAME, this);
-		this.testModel.testFireItemsAddedCollectionEvent();
-		this.verifyCollectionChangeEvent(ADDED_OBJECT_VALUE);
-		assertTrue(this.itemsAddedCollectionCalled);
-
-		this.collectionChangeEvent = null;
-		this.itemsAddedCollectionCalled = false;
-		this.testModel.removeCollectionChangeListener(COLLECTION_NAME, this);
-		this.testModel.testFireItemsAddedCollectionEvent();
-		assertNull(this.collectionChangeEvent);
-		assertFalse(this.itemsAddedCollectionCalled);
-	}
-
-	public void testFireItemsAddedCollectionEventNoChange() {
-		this.collectionChangeEvent = null;
-		this.itemsAddedCollectionCalled = false;
-		this.testModel.addCollectionChangeListener(this);
-		this.testModel.testFireItemsAddedCollectionEventNoChange();
-		assertNull(this.collectionChangeEvent);
-		assertFalse(this.itemsAddedCollectionCalled);
-
-		this.collectionChangeEvent = null;
-		this.itemsAddedCollectionCalled = false;
-		this.testModel.removeCollectionChangeListener(this);
-		this.testModel.testFireItemsAddedCollectionEventNoChange();
-		assertNull(this.collectionChangeEvent);
-		assertFalse(this.itemsAddedCollectionCalled);
-
-		this.collectionChangeEvent = null;
-		this.itemsAddedCollectionCalled = false;
-		this.testModel.addCollectionChangeListener(COLLECTION_NAME, this);
-		this.testModel.testFireItemsAddedCollectionEventNoChange();
-		assertNull(this.collectionChangeEvent);
-		assertFalse(this.itemsAddedCollectionCalled);
-
-		this.collectionChangeEvent = null;
-		this.itemsAddedCollectionCalled = false;
-		this.testModel.removeCollectionChangeListener(COLLECTION_NAME, this);
-		this.testModel.testFireItemsAddedCollectionEventNoChange();
-		assertNull(this.collectionChangeEvent);
-		assertFalse(this.itemsAddedCollectionCalled);
-	}
-
-	public void testFireItemsAddedCollection() {
-		this.collectionChangeEvent = null;
-		this.itemsAddedCollectionCalled = false;
-		this.testModel.addCollectionChangeListener(this);
-		this.testModel.testFireItemsAddedCollection();
-		this.verifyCollectionChangeEvent(ADDED_OBJECT_VALUE);
-		assertTrue(this.itemsAddedCollectionCalled);
-
-		this.collectionChangeEvent = null;
-		this.itemsAddedCollectionCalled = false;
-		this.testModel.removeCollectionChangeListener(this);
-		this.testModel.testFireItemsAddedCollection();
-		assertNull(this.collectionChangeEvent);
-		assertFalse(this.itemsAddedCollectionCalled);
-
-		this.collectionChangeEvent = null;
-		this.itemsAddedCollectionCalled = false;
-		this.testModel.addCollectionChangeListener(COLLECTION_NAME, this);
-		this.testModel.testFireItemsAddedCollection();
-		this.verifyCollectionChangeEvent(ADDED_OBJECT_VALUE);
-		assertTrue(this.itemsAddedCollectionCalled);
-
-		this.collectionChangeEvent = null;
-		this.itemsAddedCollectionCalled = false;
-		this.testModel.removeCollectionChangeListener(COLLECTION_NAME, this);
-		this.testModel.testFireItemsAddedCollection();
-		assertNull(this.collectionChangeEvent);
-		assertFalse(this.itemsAddedCollectionCalled);
-	}
-
-	public void testFireItemsAddedCollectionNoChange() {
-		this.collectionChangeEvent = null;
-		this.itemsAddedCollectionCalled = false;
-		this.testModel.addCollectionChangeListener(this);
-		this.testModel.testFireItemsAddedCollectionNoChange();
-		assertNull(this.collectionChangeEvent);
-		assertFalse(this.itemsAddedCollectionCalled);
-
-		this.collectionChangeEvent = null;
-		this.itemsAddedCollectionCalled = false;
-		this.testModel.removeCollectionChangeListener(this);
-		this.testModel.testFireItemsAddedCollectionNoChange();
-		assertNull(this.collectionChangeEvent);
-		assertFalse(this.itemsAddedCollectionCalled);
-
-		this.collectionChangeEvent = null;
-		this.itemsAddedCollectionCalled = false;
-		this.testModel.addCollectionChangeListener(COLLECTION_NAME, this);
-		this.testModel.testFireItemsAddedCollectionNoChange();
-		assertNull(this.collectionChangeEvent);
-		assertFalse(this.itemsAddedCollectionCalled);
-
-		this.collectionChangeEvent = null;
-		this.itemsAddedCollectionCalled = false;
-		this.testModel.removeCollectionChangeListener(COLLECTION_NAME, this);
-		this.testModel.testFireItemsAddedCollectionNoChange();
-		assertNull(this.collectionChangeEvent);
-		assertFalse(this.itemsAddedCollectionCalled);
-	}
-
-	public void testFireItemAddedCollection() {
-		this.collectionChangeEvent = null;
-		this.itemsAddedCollectionCalled = false;
-		this.testModel.addCollectionChangeListener(this);
-		this.testModel.testFireItemAddedCollection();
-		this.verifyCollectionChangeEvent(ADDED_OBJECT_VALUE);
-		assertTrue(this.itemsAddedCollectionCalled);
-
-		this.collectionChangeEvent = null;
-		this.itemsAddedCollectionCalled = false;
-		this.testModel.removeCollectionChangeListener(this);
-		this.testModel.testFireItemAddedCollection();
-		assertNull(this.collectionChangeEvent);
-		assertFalse(this.itemsAddedCollectionCalled);
-
-		this.collectionChangeEvent = null;
-		this.itemsAddedCollectionCalled = false;
-		this.testModel.addCollectionChangeListener(COLLECTION_NAME, this);
-		this.testModel.testFireItemAddedCollection();
-		this.verifyCollectionChangeEvent(ADDED_OBJECT_VALUE);
-		assertTrue(this.itemsAddedCollectionCalled);
-
-		this.collectionChangeEvent = null;
-		this.itemsAddedCollectionCalled = false;
-		this.testModel.removeCollectionChangeListener(COLLECTION_NAME, this);
-		this.testModel.testFireItemAddedCollection();
-		assertNull(this.collectionChangeEvent);
-		assertFalse(this.itemsAddedCollectionCalled);
-	}
-
-	public void testFireItemsRemovedCollectionEvent() {
-		this.collectionChangeEvent = null;
-		this.itemsRemovedCollectionCalled = false;
-		this.testModel.addCollectionChangeListener(this);
-		this.testModel.testFireItemsRemovedCollectionEvent();
-		this.verifyCollectionChangeEvent(REMOVED_OBJECT_VALUE);
-		assertTrue(this.itemsRemovedCollectionCalled);
-
-		this.collectionChangeEvent = null;
-		this.itemsRemovedCollectionCalled = false;
-		this.testModel.removeCollectionChangeListener(this);
-		this.testModel.testFireItemsRemovedCollectionEvent();
-		assertNull(this.collectionChangeEvent);
-		assertFalse(this.itemsRemovedCollectionCalled);
-
-		this.collectionChangeEvent = null;
-		this.itemsRemovedCollectionCalled = false;
-		this.testModel.addCollectionChangeListener(COLLECTION_NAME, this);
-		this.testModel.testFireItemsRemovedCollectionEvent();
-		this.verifyCollectionChangeEvent(REMOVED_OBJECT_VALUE);
-		assertTrue(this.itemsRemovedCollectionCalled);
-
-		this.collectionChangeEvent = null;
-		this.itemsRemovedCollectionCalled = false;
-		this.testModel.removeCollectionChangeListener(COLLECTION_NAME, this);
-		this.testModel.testFireItemsRemovedCollectionEvent();
-		assertNull(this.collectionChangeEvent);
-		assertFalse(this.itemsRemovedCollectionCalled);
-	}
-
-	public void testFireItemsRemovedCollectionEventNoChange() {
-		this.collectionChangeEvent = null;
-		this.itemsRemovedCollectionCalled = false;
-		this.testModel.addCollectionChangeListener(this);
-		this.testModel.testFireItemsRemovedCollectionEventNoChange();
-		assertNull(this.collectionChangeEvent);
-		assertFalse(this.itemsRemovedCollectionCalled);
-
-		this.collectionChangeEvent = null;
-		this.itemsRemovedCollectionCalled = false;
-		this.testModel.removeCollectionChangeListener(this);
-		this.testModel.testFireItemsRemovedCollectionEventNoChange();
-		assertNull(this.collectionChangeEvent);
-		assertFalse(this.itemsRemovedCollectionCalled);
-
-		this.collectionChangeEvent = null;
-		this.itemsRemovedCollectionCalled = false;
-		this.testModel.addCollectionChangeListener(COLLECTION_NAME, this);
-		this.testModel.testFireItemsRemovedCollectionEventNoChange();
-		assertNull(this.collectionChangeEvent);
-		assertFalse(this.itemsRemovedCollectionCalled);
-
-		this.collectionChangeEvent = null;
-		this.itemsRemovedCollectionCalled = false;
-		this.testModel.removeCollectionChangeListener(COLLECTION_NAME, this);
-		this.testModel.testFireItemsRemovedCollectionEventNoChange();
-		assertNull(this.collectionChangeEvent);
-		assertFalse(this.itemsRemovedCollectionCalled);
-	}
-
-	public void testFireItemsRemovedCollection() {
-		this.collectionChangeEvent = null;
-		this.itemsRemovedCollectionCalled = false;
-		this.testModel.addCollectionChangeListener(this);
-		this.testModel.testFireItemsRemovedCollection();
-		this.verifyCollectionChangeEvent(REMOVED_OBJECT_VALUE);
-		assertTrue(this.itemsRemovedCollectionCalled);
-
-		this.collectionChangeEvent = null;
-		this.itemsRemovedCollectionCalled = false;
-		this.testModel.removeCollectionChangeListener(this);
-		this.testModel.testFireItemsRemovedCollection();
-		assertNull(this.collectionChangeEvent);
-		assertFalse(this.itemsRemovedCollectionCalled);
-
-		this.collectionChangeEvent = null;
-		this.itemsRemovedCollectionCalled = false;
-		this.testModel.addCollectionChangeListener(COLLECTION_NAME, this);
-		this.testModel.testFireItemsRemovedCollection();
-		this.verifyCollectionChangeEvent(REMOVED_OBJECT_VALUE);
-		assertTrue(this.itemsRemovedCollectionCalled);
-
-		this.collectionChangeEvent = null;
-		this.itemsRemovedCollectionCalled = false;
-		this.testModel.removeCollectionChangeListener(COLLECTION_NAME, this);
-		this.testModel.testFireItemsRemovedCollection();
-		assertNull(this.collectionChangeEvent);
-		assertFalse(this.itemsRemovedCollectionCalled);
-	}
-
-	public void testFireItemsRemovedCollectionNoChange() {
-		this.collectionChangeEvent = null;
-		this.itemsRemovedCollectionCalled = false;
-		this.testModel.addCollectionChangeListener(this);
-		this.testModel.testFireItemsRemovedCollectionNoChange();
-		assertNull(this.collectionChangeEvent);
-		assertFalse(this.itemsRemovedCollectionCalled);
-
-		this.collectionChangeEvent = null;
-		this.itemsRemovedCollectionCalled = false;
-		this.testModel.removeCollectionChangeListener(this);
-		this.testModel.testFireItemsRemovedCollectionNoChange();
-		assertNull(this.collectionChangeEvent);
-		assertFalse(this.itemsRemovedCollectionCalled);
-
-		this.collectionChangeEvent = null;
-		this.itemsRemovedCollectionCalled = false;
-		this.testModel.addCollectionChangeListener(COLLECTION_NAME, this);
-		this.testModel.testFireItemsRemovedCollectionNoChange();
-		assertNull(this.collectionChangeEvent);
-		assertFalse(this.itemsRemovedCollectionCalled);
-
-		this.collectionChangeEvent = null;
-		this.itemsRemovedCollectionCalled = false;
-		this.testModel.removeCollectionChangeListener(COLLECTION_NAME, this);
-		this.testModel.testFireItemsRemovedCollectionNoChange();
-		assertNull(this.collectionChangeEvent);
-		assertFalse(this.itemsRemovedCollectionCalled);
-	}
-
-	public void testFireItemRemovedCollection() {
-		this.collectionChangeEvent = null;
-		this.itemsRemovedCollectionCalled = false;
-		this.testModel.addCollectionChangeListener(this);
-		this.testModel.testFireItemRemovedCollection();
-		this.verifyCollectionChangeEvent(REMOVED_OBJECT_VALUE);
-		assertTrue(this.itemsRemovedCollectionCalled);
-
-		this.collectionChangeEvent = null;
-		this.itemsRemovedCollectionCalled = false;
-		this.testModel.removeCollectionChangeListener(this);
-		this.testModel.testFireItemRemovedCollection();
-		assertNull(this.collectionChangeEvent);
-		assertFalse(this.itemsRemovedCollectionCalled);
-
-		this.collectionChangeEvent = null;
-		this.itemsRemovedCollectionCalled = false;
-		this.testModel.addCollectionChangeListener(COLLECTION_NAME, this);
-		this.testModel.testFireItemRemovedCollection();
-		this.verifyCollectionChangeEvent(REMOVED_OBJECT_VALUE);
-		assertTrue(this.itemsRemovedCollectionCalled);
-
-		this.collectionChangeEvent = null;
-		this.itemsRemovedCollectionCalled = false;
-		this.testModel.removeCollectionChangeListener(COLLECTION_NAME, this);
-		this.testModel.testFireItemRemovedCollection();
-		assertNull(this.collectionChangeEvent);
-		assertFalse(this.itemsRemovedCollectionCalled);
-	}
-
-	public void testFireCollectionCleared() {
-		this.collectionChangeEvent = null;
-		this.collectionClearedCalled = false;
-		this.testModel.addCollectionChangeListener(this);
-		this.testModel.testFireCollectionCleared();
-		this.verifyCollectionChangeEvent(null);
-		assertTrue(this.collectionClearedCalled);
-
-		this.collectionChangeEvent = null;
-		this.collectionClearedCalled = false;
-		this.testModel.removeCollectionChangeListener(this);
-		this.testModel.testFireCollectionCleared();
-		assertNull(this.collectionChangeEvent);
-		assertFalse(this.collectionClearedCalled);
-
-		this.collectionChangeEvent = null;
-		this.collectionClearedCalled = false;
-		this.testModel.addCollectionChangeListener(COLLECTION_NAME, this);
-		this.testModel.testFireCollectionCleared();
-		this.verifyCollectionChangeEvent(null);
-		assertTrue(this.collectionClearedCalled);
-
-		this.collectionChangeEvent = null;
-		this.collectionClearedCalled = false;
-		this.testModel.removeCollectionChangeListener(COLLECTION_NAME, this);
-		this.testModel.testFireCollectionCleared();
-		assertNull(this.collectionChangeEvent);
-		assertFalse(this.collectionClearedCalled);
-	}
-
-	public void testFireCollectionChangedEvent() {
-		this.collectionChangeEvent = null;
-		this.collectionChangedCalled = false;
-		this.testModel.addCollectionChangeListener(this);
-		this.testModel.testFireCollectionChangedEvent();
-		this.verifyCollectionChangeEvent(null);
-		assertTrue(this.collectionChangedCalled);
-
-		this.collectionChangeEvent = null;
-		this.collectionChangedCalled = false;
-		this.testModel.removeCollectionChangeListener(this);
-		this.testModel.testFireCollectionChangedEvent();
-		assertNull(this.collectionChangeEvent);
-		assertFalse(this.collectionChangedCalled);
-
-		this.collectionChangeEvent = null;
-		this.collectionChangedCalled = false;
-		this.testModel.addCollectionChangeListener(COLLECTION_NAME, this);
-		this.testModel.testFireCollectionChangedEvent();
-		this.verifyCollectionChangeEvent(null);
-		assertTrue(this.collectionChangedCalled);
-
-		this.collectionChangeEvent = null;
-		this.collectionChangedCalled = false;
-		this.testModel.removeCollectionChangeListener(COLLECTION_NAME, this);
-		this.testModel.testFireCollectionChangedEvent();
-		assertNull(this.collectionChangeEvent);
-		assertFalse(this.collectionChangedCalled);
-	}
-
-	public void testFireCollectionChanged() {
-		this.collectionChangeEvent = null;
-		this.collectionChangedCalled = false;
-		this.testModel.addCollectionChangeListener(this);
-		this.testModel.testFireCollectionChanged();
-		this.verifyCollectionChangeEvent(null);
-		assertTrue(this.collectionChangedCalled);
-
-		this.collectionChangeEvent = null;
-		this.collectionChangedCalled = false;
-		this.testModel.removeCollectionChangeListener(this);
-		this.testModel.testFireCollectionChanged();
-		assertNull(this.collectionChangeEvent);
-		assertFalse(this.collectionChangedCalled);
-
-		this.collectionChangeEvent = null;
-		this.collectionChangedCalled = false;
-		this.testModel.addCollectionChangeListener(COLLECTION_NAME, this);
-		this.testModel.testFireCollectionChanged();
-		this.verifyCollectionChangeEvent(null);
-		assertTrue(this.collectionChangedCalled);
-
-		this.collectionChangeEvent = null;
-		this.collectionChangedCalled = false;
-		this.testModel.removeCollectionChangeListener(COLLECTION_NAME, this);
-		this.testModel.testFireCollectionChanged();
-		assertNull(this.collectionChangeEvent);
-		assertFalse(this.collectionChangedCalled);
-	}
-
-	public void testAddItemToCollection() {
-		this.collectionChangeEvent = null;
-		this.itemsAddedCollectionCalled = false;
-		this.testModel.addCollectionChangeListener(this);
-		assertTrue(this.testModel.testAddItemToCollection());
-		this.verifyCollectionChangeEvent(ADDED_OBJECT_VALUE);
-		assertTrue(this.itemsAddedCollectionCalled);
-
-		this.collectionChangeEvent = null;
-		this.itemsAddedCollectionCalled = false;
-		this.testModel.removeCollectionChangeListener(this);
-		assertTrue(this.testModel.testAddItemToCollection());
-		assertNull(this.collectionChangeEvent);
-		assertFalse(this.itemsAddedCollectionCalled);
-
-		this.collectionChangeEvent = null;
-		this.itemsAddedCollectionCalled = false;
-		this.testModel.addCollectionChangeListener(COLLECTION_NAME, this);
-		assertTrue(this.testModel.testAddItemToCollection());
-		this.verifyCollectionChangeEvent(ADDED_OBJECT_VALUE);
-		assertTrue(this.itemsAddedCollectionCalled);
-
-		this.collectionChangeEvent = null;
-		this.itemsAddedCollectionCalled = false;
-		this.testModel.removeCollectionChangeListener(COLLECTION_NAME, this);
-		assertTrue(this.testModel.testAddItemToCollection());
-		assertNull(this.collectionChangeEvent);
-		assertFalse(this.itemsAddedCollectionCalled);
-	}
-
-	public void testAddItemToCollectionNoChange() {
-		this.collectionChangeEvent = null;
-		this.itemsAddedCollectionCalled = false;
-		this.testModel.addCollectionChangeListener(this);
-		assertFalse(this.testModel.testAddItemToCollectionNoChange());
-		assertNull(this.collectionChangeEvent);
-		assertFalse(this.itemsAddedCollectionCalled);
-
-		this.collectionChangeEvent = null;
-		this.itemsAddedCollectionCalled = false;
-		this.testModel.removeCollectionChangeListener(this);
-		assertFalse(this.testModel.testAddItemToCollectionNoChange());
-		assertNull(this.collectionChangeEvent);
-		assertFalse(this.itemsAddedCollectionCalled);
-
-		this.collectionChangeEvent = null;
-		this.itemsAddedCollectionCalled = false;
-		this.testModel.addCollectionChangeListener(COLLECTION_NAME, this);
-		assertFalse(this.testModel.testAddItemToCollectionNoChange());
-		assertNull(this.collectionChangeEvent);
-		assertFalse(this.itemsAddedCollectionCalled);
-
-		this.collectionChangeEvent = null;
-		this.itemsAddedCollectionCalled = false;
-		this.testModel.removeCollectionChangeListener(COLLECTION_NAME, this);
-		assertFalse(this.testModel.testAddItemToCollectionNoChange());
-		assertNull(this.collectionChangeEvent);
-		assertFalse(this.itemsAddedCollectionCalled);
-	}
-
-	public void testAddItemsToCollection() {
-		this.collectionChangeEvent = null;
-		this.itemsAddedCollectionCalled = false;
-		this.testModel.addCollectionChangeListener(this);
-		assertTrue(this.testModel.testAddItemsToCollection());
-		this.verifyCollectionChangeEvent(ADDED_OBJECT_VALUE);
-		assertTrue(this.itemsAddedCollectionCalled);
-
-		this.collectionChangeEvent = null;
-		this.itemsAddedCollectionCalled = false;
-		this.testModel.removeCollectionChangeListener(this);
-		assertTrue(this.testModel.testAddItemsToCollection());
-		assertNull(this.collectionChangeEvent);
-		assertFalse(this.itemsAddedCollectionCalled);
-
-		this.collectionChangeEvent = null;
-		this.itemsAddedCollectionCalled = false;
-		this.testModel.addCollectionChangeListener(COLLECTION_NAME, this);
-		assertTrue(this.testModel.testAddItemsToCollection());
-		this.verifyCollectionChangeEvent(ADDED_OBJECT_VALUE);
-		assertTrue(this.itemsAddedCollectionCalled);
-
-		this.collectionChangeEvent = null;
-		this.itemsAddedCollectionCalled = false;
-		this.testModel.removeCollectionChangeListener(COLLECTION_NAME, this);
-		assertTrue(this.testModel.testAddItemsToCollection());
-		assertNull(this.collectionChangeEvent);
-		assertFalse(this.itemsAddedCollectionCalled);
-	}
-
-	public void testAddItemsToCollectionNoChange() {
-		this.collectionChangeEvent = null;
-		this.itemsAddedCollectionCalled = false;
-		this.testModel.addCollectionChangeListener(this);
-		assertFalse(this.testModel.testAddItemsToCollectionNoChange());
-		assertNull(this.collectionChangeEvent);
-		assertFalse(this.itemsAddedCollectionCalled);
-
-		this.collectionChangeEvent = null;
-		this.itemsAddedCollectionCalled = false;
-		this.testModel.removeCollectionChangeListener(this);
-		assertFalse(this.testModel.testAddItemsToCollectionNoChange());
-		assertNull(this.collectionChangeEvent);
-		assertFalse(this.itemsAddedCollectionCalled);
-
-		this.collectionChangeEvent = null;
-		this.itemsAddedCollectionCalled = false;
-		this.testModel.addCollectionChangeListener(COLLECTION_NAME, this);
-		assertFalse(this.testModel.testAddItemsToCollectionNoChange());
-		assertNull(this.collectionChangeEvent);
-		assertFalse(this.itemsAddedCollectionCalled);
-
-		this.collectionChangeEvent = null;
-		this.itemsAddedCollectionCalled = false;
-		this.testModel.removeCollectionChangeListener(COLLECTION_NAME, this);
-		assertFalse(this.testModel.testAddItemsToCollectionNoChange());
-		assertNull(this.collectionChangeEvent);
-		assertFalse(this.itemsAddedCollectionCalled);
-	}
-
-	public void testAddItemsToCollectionMixed() {
-		this.collectionChangeEvent = null;
-		this.itemsAddedCollectionCalled = false;
-		this.testModel.addCollectionChangeListener(this);
-		assertTrue(this.testModel.testAddItemsToCollectionMixed());
-		this.verifyCollectionChangeEvent(ADDED_OBJECT_VALUE_2);
-		assertTrue(this.itemsAddedCollectionCalled);
-
-		this.collectionChangeEvent = null;
-		this.itemsAddedCollectionCalled = false;
-		this.testModel.removeCollectionChangeListener(this);
-		assertTrue(this.testModel.testAddItemsToCollectionMixed());
-		assertNull(this.collectionChangeEvent);
-		assertFalse(this.itemsAddedCollectionCalled);
-
-		this.collectionChangeEvent = null;
-		this.itemsAddedCollectionCalled = false;
-		this.testModel.addCollectionChangeListener(COLLECTION_NAME, this);
-		assertTrue(this.testModel.testAddItemsToCollectionMixed());
-		this.verifyCollectionChangeEvent(ADDED_OBJECT_VALUE_2);
-		assertTrue(this.itemsAddedCollectionCalled);
-
-		this.collectionChangeEvent = null;
-		this.itemsAddedCollectionCalled = false;
-		this.testModel.removeCollectionChangeListener(COLLECTION_NAME, this);
-		assertTrue(this.testModel.testAddItemsToCollectionMixed());
-		assertNull(this.collectionChangeEvent);
-		assertFalse(this.itemsAddedCollectionCalled);
-	}
-
-	public void testRemoveItemFromCollection() {
-		this.collectionChangeEvent = null;
-		this.itemsRemovedCollectionCalled = false;
-		this.testModel.addCollectionChangeListener(this);
-		assertTrue(this.testModel.testRemoveItemFromCollection());
-		this.verifyCollectionChangeEvent(REMOVED_OBJECT_VALUE);
-		assertTrue(this.itemsRemovedCollectionCalled);
-
-		this.collectionChangeEvent = null;
-		this.itemsRemovedCollectionCalled = false;
-		this.testModel.removeCollectionChangeListener(this);
-		assertTrue(this.testModel.testRemoveItemFromCollection());
-		assertNull(this.collectionChangeEvent);
-		assertFalse(this.itemsRemovedCollectionCalled);
-
-		this.collectionChangeEvent = null;
-		this.itemsRemovedCollectionCalled = false;
-		this.testModel.addCollectionChangeListener(COLLECTION_NAME, this);
-		assertTrue(this.testModel.testRemoveItemFromCollection());
-		this.verifyCollectionChangeEvent(REMOVED_OBJECT_VALUE);
-		assertTrue(this.itemsRemovedCollectionCalled);
-
-		this.collectionChangeEvent = null;
-		this.itemsRemovedCollectionCalled = false;
-		this.testModel.removeCollectionChangeListener(COLLECTION_NAME, this);
-		assertTrue(this.testModel.testRemoveItemFromCollection());
-		assertNull(this.collectionChangeEvent);
-		assertFalse(this.itemsRemovedCollectionCalled);
-	}
-
-	public void testRemoveItemFromCollectionNoChange() {
-		this.collectionChangeEvent = null;
-		this.itemsRemovedCollectionCalled = false;
-		this.testModel.addCollectionChangeListener(this);
-		assertFalse(this.testModel.testRemoveItemFromCollectionNoChange());
-		assertNull(this.collectionChangeEvent);
-		assertFalse(this.itemsRemovedCollectionCalled);
-
-		this.collectionChangeEvent = null;
-		this.itemsRemovedCollectionCalled = false;
-		this.testModel.removeCollectionChangeListener(this);
-		assertFalse(this.testModel.testRemoveItemFromCollectionNoChange());
-		assertNull(this.collectionChangeEvent);
-		assertFalse(this.itemsRemovedCollectionCalled);
-
-		this.collectionChangeEvent = null;
-		this.itemsRemovedCollectionCalled = false;
-		this.testModel.addCollectionChangeListener(COLLECTION_NAME, this);
-		assertFalse(this.testModel.testRemoveItemFromCollectionNoChange());
-		assertNull(this.collectionChangeEvent);
-		assertFalse(this.itemsRemovedCollectionCalled);
-
-		this.collectionChangeEvent = null;
-		this.itemsRemovedCollectionCalled = false;
-		this.testModel.removeCollectionChangeListener(COLLECTION_NAME, this);
-		assertFalse(this.testModel.testRemoveItemFromCollectionNoChange());
-		assertNull(this.collectionChangeEvent);
-		assertFalse(this.itemsRemovedCollectionCalled);
-	}
-
-	public void testRemoveItemsFromCollection() {
-		this.collectionChangeEvent = null;
-		this.itemsRemovedCollectionCalled = false;
-		this.testModel.addCollectionChangeListener(this);
-		assertTrue(this.testModel.testRemoveItemsFromCollection());
-		this.verifyCollectionChangeEvent2(REMOVED_OBJECT_VALUE, "foo", "bar");
-		assertTrue(this.itemsRemovedCollectionCalled);
-
-		this.collectionChangeEvent = null;
-		this.itemsRemovedCollectionCalled = false;
-		this.testModel.removeCollectionChangeListener(this);
-		assertTrue(this.testModel.testRemoveItemsFromCollection());
-		assertNull(this.collectionChangeEvent);
-		assertFalse(this.itemsRemovedCollectionCalled);
-
-		this.collectionChangeEvent = null;
-		this.itemsRemovedCollectionCalled = false;
-		this.testModel.addCollectionChangeListener(COLLECTION_NAME, this);
-		assertTrue(this.testModel.testRemoveItemsFromCollection());
-		this.verifyCollectionChangeEvent2(REMOVED_OBJECT_VALUE, "foo", "bar");
-		assertTrue(this.itemsRemovedCollectionCalled);
-
-		this.collectionChangeEvent = null;
-		this.itemsRemovedCollectionCalled = false;
-		this.testModel.removeCollectionChangeListener(COLLECTION_NAME, this);
-		assertTrue(this.testModel.testRemoveItemsFromCollection());
-		assertNull(this.collectionChangeEvent);
-		assertFalse(this.itemsRemovedCollectionCalled);
-	}
-
-	public void testRemoveItemsFromCollectionNoChange1() {
-		this.collectionChangeEvent = null;
-		this.itemsRemovedCollectionCalled = false;
-		this.testModel.addCollectionChangeListener(this);
-		assertFalse(this.testModel.testRemoveItemsFromCollectionNoChange1());
-		assertNull(this.collectionChangeEvent);
-		assertFalse(this.itemsRemovedCollectionCalled);
-
-		this.collectionChangeEvent = null;
-		this.itemsRemovedCollectionCalled = false;
-		this.testModel.removeCollectionChangeListener(this);
-		assertFalse(this.testModel.testRemoveItemsFromCollectionNoChange1());
-		assertNull(this.collectionChangeEvent);
-		assertFalse(this.itemsRemovedCollectionCalled);
-
-		this.collectionChangeEvent = null;
-		this.itemsRemovedCollectionCalled = false;
-		this.testModel.addCollectionChangeListener(COLLECTION_NAME, this);
-		assertFalse(this.testModel.testRemoveItemsFromCollectionNoChange1());
-		assertNull(this.collectionChangeEvent);
-		assertFalse(this.itemsRemovedCollectionCalled);
-
-		this.collectionChangeEvent = null;
-		this.itemsRemovedCollectionCalled = false;
-		this.testModel.removeCollectionChangeListener(COLLECTION_NAME, this);
-		assertFalse(this.testModel.testRemoveItemsFromCollectionNoChange1());
-		assertNull(this.collectionChangeEvent);
-		assertFalse(this.itemsRemovedCollectionCalled);
-	}
-
-	public void testRemoveItemsFromCollectionNoChange2() {
-		this.collectionChangeEvent = null;
-		this.itemsRemovedCollectionCalled = false;
-		this.testModel.addCollectionChangeListener(this);
-		assertFalse(this.testModel.testRemoveItemsFromCollectionNoChange2());
-		assertNull(this.collectionChangeEvent);
-		assertFalse(this.itemsRemovedCollectionCalled);
-
-		this.collectionChangeEvent = null;
-		this.itemsRemovedCollectionCalled = false;
-		this.testModel.removeCollectionChangeListener(this);
-		assertFalse(this.testModel.testRemoveItemsFromCollectionNoChange2());
-		assertNull(this.collectionChangeEvent);
-		assertFalse(this.itemsRemovedCollectionCalled);
-
-		this.collectionChangeEvent = null;
-		this.itemsRemovedCollectionCalled = false;
-		this.testModel.addCollectionChangeListener(COLLECTION_NAME, this);
-		assertFalse(this.testModel.testRemoveItemsFromCollectionNoChange2());
-		assertNull(this.collectionChangeEvent);
-		assertFalse(this.itemsRemovedCollectionCalled);
-
-		this.collectionChangeEvent = null;
-		this.itemsRemovedCollectionCalled = false;
-		this.testModel.removeCollectionChangeListener(COLLECTION_NAME, this);
-		assertFalse(this.testModel.testRemoveItemsFromCollectionNoChange2());
-		assertNull(this.collectionChangeEvent);
-		assertFalse(this.itemsRemovedCollectionCalled);
-	}
-
-	public void testRemoveItemsFromCollectionNoChange3() {
-		this.collectionChangeEvent = null;
-		this.itemsRemovedCollectionCalled = false;
-		this.testModel.addCollectionChangeListener(this);
-		assertFalse(this.testModel.testRemoveItemsFromCollectionNoChange3());
-		assertNull(this.collectionChangeEvent);
-		assertFalse(this.itemsRemovedCollectionCalled);
-
-		this.collectionChangeEvent = null;
-		this.itemsRemovedCollectionCalled = false;
-		this.testModel.removeCollectionChangeListener(this);
-		assertFalse(this.testModel.testRemoveItemsFromCollectionNoChange3());
-		assertNull(this.collectionChangeEvent);
-		assertFalse(this.itemsRemovedCollectionCalled);
-
-		this.collectionChangeEvent = null;
-		this.itemsRemovedCollectionCalled = false;
-		this.testModel.addCollectionChangeListener(COLLECTION_NAME, this);
-		assertFalse(this.testModel.testRemoveItemsFromCollectionNoChange3());
-		assertNull(this.collectionChangeEvent);
-		assertFalse(this.itemsRemovedCollectionCalled);
-
-		this.collectionChangeEvent = null;
-		this.itemsRemovedCollectionCalled = false;
-		this.testModel.removeCollectionChangeListener(COLLECTION_NAME, this);
-		assertFalse(this.testModel.testRemoveItemsFromCollectionNoChange3());
-		assertNull(this.collectionChangeEvent);
-		assertFalse(this.itemsRemovedCollectionCalled);
-	}
-
-	public void testRetainItemsInCollection1() {
-		this.collectionChangeEvent = null;
-		this.itemsRemovedCollectionCalled = false;
-		this.testModel.addCollectionChangeListener(this);
-		assertTrue(this.testModel.testRetainItemsInCollection1());
-		this.verifyCollectionChangeEvent(REMOVED_OBJECT_VALUE);
-		assertTrue(this.itemsRemovedCollectionCalled);
-
-		this.collectionChangeEvent = null;
-		this.itemsRemovedCollectionCalled = false;
-		this.testModel.removeCollectionChangeListener(this);
-		assertTrue(this.testModel.testRetainItemsInCollection1());
-		assertNull(this.collectionChangeEvent);
-		assertFalse(this.itemsRemovedCollectionCalled);
-
-		this.collectionChangeEvent = null;
-		this.itemsRemovedCollectionCalled = false;
-		this.testModel.addCollectionChangeListener(COLLECTION_NAME, this);
-		assertTrue(this.testModel.testRetainItemsInCollection1());
-		this.verifyCollectionChangeEvent(REMOVED_OBJECT_VALUE);
-		assertTrue(this.itemsRemovedCollectionCalled);
-
-		this.collectionChangeEvent = null;
-		this.itemsRemovedCollectionCalled = false;
-		this.testModel.removeCollectionChangeListener(COLLECTION_NAME, this);
-		assertTrue(this.testModel.testRetainItemsInCollection1());
-		assertNull(this.collectionChangeEvent);
-		assertFalse(this.itemsRemovedCollectionCalled);
-	}
-
-	// collection cleared...
-	public void testRetainItemsInCollection2() {
-		this.collectionChangeEvent = null;
-		this.collectionClearedCalled = false;
-		this.testModel.addCollectionChangeListener(this);
-		assertTrue(this.testModel.testRetainItemsInCollection2());
-		this.verifyCollectionChangeEvent(null);
-		assertTrue(this.collectionClearedCalled);
-
-		this.collectionChangeEvent = null;
-		this.collectionClearedCalled = false;
-		this.testModel.removeCollectionChangeListener(this);
-		assertTrue(this.testModel.testRetainItemsInCollection2());
-		assertNull(this.collectionChangeEvent);
-		assertFalse(this.collectionClearedCalled);
-
-		this.collectionChangeEvent = null;
-		this.collectionClearedCalled = false;
-		this.testModel.addCollectionChangeListener(COLLECTION_NAME, this);
-		assertTrue(this.testModel.testRetainItemsInCollection2());
-		this.verifyCollectionChangeEvent(null);
-		assertTrue(this.collectionClearedCalled);
-
-		this.collectionChangeEvent = null;
-		this.collectionClearedCalled = false;
-		this.testModel.removeCollectionChangeListener(COLLECTION_NAME, this);
-		assertTrue(this.testModel.testRetainItemsInCollection2());
-		assertNull(this.collectionChangeEvent);
-		assertFalse(this.collectionClearedCalled);
-	}
-
-	public void testRetainItemsInCollectionNoChange1() {
-		this.collectionChangeEvent = null;
-		this.itemsRemovedCollectionCalled = false;
-		this.testModel.addCollectionChangeListener(this);
-		assertFalse(this.testModel.testRetainItemsInCollectionNoChange1());
-		assertNull(this.collectionChangeEvent);
-		assertFalse(this.itemsRemovedCollectionCalled);
-
-		this.collectionChangeEvent = null;
-		this.itemsRemovedCollectionCalled = false;
-		this.testModel.removeCollectionChangeListener(this);
-		assertFalse(this.testModel.testRetainItemsInCollectionNoChange1());
-		assertNull(this.collectionChangeEvent);
-		assertFalse(this.itemsRemovedCollectionCalled);
-
-		this.collectionChangeEvent = null;
-		this.itemsRemovedCollectionCalled = false;
-		this.testModel.addCollectionChangeListener(COLLECTION_NAME, this);
-		assertFalse(this.testModel.testRetainItemsInCollectionNoChange1());
-		assertNull(this.collectionChangeEvent);
-		assertFalse(this.itemsRemovedCollectionCalled);
-
-		this.collectionChangeEvent = null;
-		this.itemsRemovedCollectionCalled = false;
-		this.testModel.removeCollectionChangeListener(COLLECTION_NAME, this);
-		assertFalse(this.testModel.testRetainItemsInCollectionNoChange1());
-		assertNull(this.collectionChangeEvent);
-		assertFalse(this.itemsRemovedCollectionCalled);
-	}
-
-	public void testRetainItemsInCollectionNoChange2() {
-		this.collectionChangeEvent = null;
-		this.itemsRemovedCollectionCalled = false;
-		this.testModel.addCollectionChangeListener(this);
-		assertFalse(this.testModel.testRetainItemsInCollectionNoChange2());
-		assertNull(this.collectionChangeEvent);
-		assertFalse(this.itemsRemovedCollectionCalled);
-
-		this.collectionChangeEvent = null;
-		this.itemsRemovedCollectionCalled = false;
-		this.testModel.removeCollectionChangeListener(this);
-		assertFalse(this.testModel.testRetainItemsInCollectionNoChange2());
-		assertNull(this.collectionChangeEvent);
-		assertFalse(this.itemsRemovedCollectionCalled);
-
-		this.collectionChangeEvent = null;
-		this.itemsRemovedCollectionCalled = false;
-		this.testModel.addCollectionChangeListener(COLLECTION_NAME, this);
-		assertFalse(this.testModel.testRetainItemsInCollectionNoChange2());
-		assertNull(this.collectionChangeEvent);
-		assertFalse(this.itemsRemovedCollectionCalled);
-
-		this.collectionChangeEvent = null;
-		this.itemsRemovedCollectionCalled = false;
-		this.testModel.removeCollectionChangeListener(COLLECTION_NAME, this);
-		assertFalse(this.testModel.testRetainItemsInCollectionNoChange2());
-		assertNull(this.collectionChangeEvent);
-		assertFalse(this.itemsRemovedCollectionCalled);
-	}
-
-	public void testClearCollection() {
-		this.collectionChangeEvent = null;
-		this.collectionClearedCalled = false;
-		this.testModel.addCollectionChangeListener(this);
-		assertTrue(this.testModel.testClearCollection());
-		this.verifyCollectionChangeEvent(null);
-		assertTrue(this.collectionClearedCalled);
-
-		this.collectionChangeEvent = null;
-		this.collectionClearedCalled = false;
-		this.testModel.removeCollectionChangeListener(this);
-		assertTrue(this.testModel.testClearCollection());
-		assertNull(this.collectionChangeEvent);
-		assertFalse(this.collectionClearedCalled);
-
-		this.collectionChangeEvent = null;
-		this.collectionClearedCalled = false;
-		this.testModel.addCollectionChangeListener(COLLECTION_NAME, this);
-		assertTrue(this.testModel.testClearCollection());
-		this.verifyCollectionChangeEvent(null);
-		assertTrue(this.collectionClearedCalled);
-
-		this.collectionChangeEvent = null;
-		this.collectionClearedCalled = false;
-		this.testModel.removeCollectionChangeListener(COLLECTION_NAME, this);
-		assertTrue(this.testModel.testClearCollection());
-		assertNull(this.collectionChangeEvent);
-		assertFalse(this.collectionClearedCalled);
-	}
-
-	public void testClearCollectionNoChange() {
-		this.collectionChangeEvent = null;
-		this.collectionClearedCalled = false;
-		this.testModel.addCollectionChangeListener(this);
-		assertFalse(this.testModel.testClearCollectionNoChange());
-		assertNull(this.collectionChangeEvent);
-		assertFalse(this.collectionClearedCalled);
-
-		this.collectionChangeEvent = null;
-		this.collectionClearedCalled = false;
-		this.testModel.removeCollectionChangeListener(this);
-		assertFalse(this.testModel.testClearCollectionNoChange());
-		assertNull(this.collectionChangeEvent);
-		assertFalse(this.collectionClearedCalled);
-
-		this.collectionChangeEvent = null;
-		this.collectionClearedCalled = false;
-		this.testModel.addCollectionChangeListener(COLLECTION_NAME, this);
-		assertFalse(this.testModel.testClearCollectionNoChange());
-		assertNull(this.collectionChangeEvent);
-		assertFalse(this.collectionClearedCalled);
-
-		this.collectionChangeEvent = null;
-		this.collectionClearedCalled = false;
-		this.testModel.removeCollectionChangeListener(COLLECTION_NAME, this);
-		assertFalse(this.testModel.testClearCollectionNoChange());
-		assertNull(this.collectionChangeEvent);
-		assertFalse(this.collectionClearedCalled);
-	}
-
-	public void testSynchronizeCollection1() {
-		CollectionSynchListener csl = new CollectionSynchListener();
-		this.testModel.addCollectionChangeListener(csl);
-		assertTrue(this.testModel.testSynchronizeCollection1());
-		assertTrue(csl.itemsAdded);
-		assertTrue(csl.itemsRemoved);
-		assertFalse(csl.collectionChanged);
-		assertFalse(csl.collectionCleared);
-		assertEquals(2, csl.addedItems.size());
-		assertTrue(CollectionTools.containsAll(csl.addedItems, new Object[] {"joo", "jar"}));
-		assertEquals(2, csl.removedItems.size());
-		assertTrue(CollectionTools.containsAll(csl.removedItems, new Object[] {"foo", "bar"}));
-	}
-
-	public void testSynchronizeCollection2() {
-		CollectionSynchListener csl = new CollectionSynchListener();
-		this.testModel.addCollectionChangeListener(csl);
-		assertTrue(this.testModel.testSynchronizeCollection2());
-		assertFalse(csl.itemsAdded);
-		assertFalse(csl.itemsRemoved);
-		assertFalse(csl.collectionChanged);
-		assertTrue(csl.collectionCleared);
-		assertTrue(csl.addedItems.isEmpty());
-		assertTrue(csl.removedItems.isEmpty());
-	}
-
-	public void testSynchronizeCollection3() {
-		CollectionSynchListener csl = new CollectionSynchListener();
-		this.testModel.addCollectionChangeListener(csl);
-		assertTrue(this.testModel.testSynchronizeCollection3());
-		assertTrue(csl.itemsAdded);
-		assertFalse(csl.itemsRemoved);
-		assertFalse(csl.collectionChanged);
-		assertFalse(csl.collectionCleared);
-		assertEquals(3, csl.addedItems.size());
-		assertTrue(CollectionTools.containsAll(csl.addedItems, new Object[] {"joo", "jar", "baz"}));
-		assertTrue(csl.removedItems.isEmpty());
-	}
-
-	class CollectionSynchListener implements CollectionChangeListener {
-		boolean itemsAdded = false;
-		boolean itemsRemoved = false;
-		boolean collectionChanged = false;
-		boolean collectionCleared = false;
-		Collection<Object> addedItems = new ArrayList<Object>();
-		Collection<Object> removedItems = new ArrayList<Object>();
-		public void collectionChanged(CollectionChangeEvent event) {
-			this.collectionChanged = true;
-		}
-		public void collectionCleared(CollectionChangeEvent event) {
-			this.collectionCleared = true;
-		}
-		public void itemsAdded(CollectionChangeEvent event) {
-			this.itemsAdded = true;
-			CollectionTools.addAll(this.addedItems, event.items());
-		}
-		public void itemsRemoved(CollectionChangeEvent event) {
-			this.itemsRemoved = true;
-			CollectionTools.addAll(this.removedItems, event.items());
-		}
-	}
-
-	public void testHasAnyCollectionChangeListeners() {
-		assertTrue(this.testModel.hasNoCollectionChangeListeners(COLLECTION_NAME));
-		this.testModel.addCollectionChangeListener(this);
-		assertTrue(this.testModel.hasAnyCollectionChangeListeners(COLLECTION_NAME));
-		this.testModel.removeCollectionChangeListener(this);
-		assertTrue(this.testModel.hasNoCollectionChangeListeners(COLLECTION_NAME));
-
-		assertTrue(this.testModel.hasNoCollectionChangeListeners(COLLECTION_NAME));
-		this.testModel.addCollectionChangeListener(COLLECTION_NAME, this);
-		assertTrue(this.testModel.hasAnyCollectionChangeListeners(COLLECTION_NAME));
-		this.testModel.removeCollectionChangeListener(COLLECTION_NAME, this);
-		assertTrue(this.testModel.hasNoCollectionChangeListeners(COLLECTION_NAME));
-	}
-
-	public void testAddNullCollectionListener() {
-		boolean exCaught = false;
-		try {
-			this.testModel.addCollectionChangeListener(null);
-		} catch (NullPointerException ex) {
-			exCaught = true;
-		}
-		assertTrue(exCaught);
-	}
-
-	public void testAddNullCollectionListenerName() {
-		boolean exCaught = false;
-		try {
-			this.testModel.addCollectionChangeListener("foo", null);
-		} catch (NullPointerException ex) {
-			exCaught = true;
-		}
-		assertTrue(exCaught);
-	}
-
-	public void testRemoveBogusCollectionListener() {
-		boolean exCaught = false;
-		try {
-			this.testModel.removeCollectionChangeListener(this);
-		} catch (IllegalArgumentException ex) {
-			exCaught = true;
-		}
-		assertTrue(exCaught);
-
-		this.testModel.addPropertyChangeListener(this);
-		exCaught = false;
-		try {
-			this.testModel.removeCollectionChangeListener(this);
-		} catch (IllegalArgumentException ex) {
-			exCaught = true;
-		}
-		assertTrue(exCaught);
-
-		this.testModel.addCollectionChangeListener(this);
-		exCaught = false;
-		try {
-			this.testModel.removeCollectionChangeListener(new ChangeSupportTests("dummy"));
-		} catch (IllegalArgumentException ex) {
-			exCaught = true;
-		}
-		assertTrue(exCaught);
-
-		exCaught = false;
-		try {
-			this.testModel.removeCollectionChangeListener(new CollectionChangeAdapter());
-		} catch (IllegalArgumentException ex) {
-			exCaught = true;
-		}
-		assertTrue(exCaught);
-	}
-
-	public void testRemoveBogusCollectionListenerName() {
-		boolean exCaught = false;
-		try {
-			this.testModel.removeCollectionChangeListener("foo", this);
-		} catch (IllegalArgumentException ex) {
-			exCaught = true;
-		}
-		assertTrue(exCaught);
-
-		this.testModel.addPropertyChangeListener("foo", this);
-		exCaught = false;
-		try {
-			this.testModel.removeCollectionChangeListener("foo", this);
-		} catch (IllegalArgumentException ex) {
-			exCaught = true;
-		}
-		assertTrue(exCaught);
-
-		this.testModel.addCollectionChangeListener("foo", this);
-		exCaught = false;
-		try {
-			this.testModel.removeCollectionChangeListener("foo", new ChangeSupportTests("dummy"));
-		} catch (IllegalArgumentException ex) {
-			exCaught = true;
-		}
-		assertTrue(exCaught);
-
-		exCaught = false;
-		try {
-			this.testModel.removeCollectionChangeListener("foo", new CollectionChangeAdapter());
-		} catch (IllegalArgumentException ex) {
-			exCaught = true;
-		}
-		assertTrue(exCaught);
-	}
-
-	private void verifyCollectionChangeEvent(Object item) {
-		assertNotNull(this.collectionChangeEvent);
-		assertEquals(this.testModel, this.collectionChangeEvent.getSource());
-		assertEquals(COLLECTION_NAME, this.collectionChangeEvent.getCollectionName());
-		if (item == null) {
-			assertFalse(this.collectionChangeEvent.items().hasNext());
-		} else {
-			assertEquals(item, this.collectionChangeEvent.items().next());
-		}
-	}
-
-	private void verifyCollectionChangeEvent2(Object... items) {
-		assertNotNull(this.collectionChangeEvent);
-		assertEquals(this.testModel, this.collectionChangeEvent.getSource());
-		assertEquals(COLLECTION_NAME, this.collectionChangeEvent.getCollectionName());
-		assertEquals(items.length, this.collectionChangeEvent.itemsSize());
-		for (Object item : items) {
-			assertTrue(CollectionTools.contains(this.collectionChangeEvent.items(), item));
-		}
-	}
-
-
-	// ********** list change tests **********
-
-	public void testFireItemsAddedListEvent() {
-		this.listChangeEvent = null;
-		this.itemsAddedListCalled = false;
-		this.testModel.addListChangeListener(this);
-		this.testModel.testFireItemsAddedListEvent();
-		this.verifyListChangeEvent(ADD_INDEX, ADDED_OBJECT_VALUE);
-		assertTrue(this.itemsAddedListCalled);
-
-		this.listChangeEvent = null;
-		this.itemsAddedListCalled = false;
-		this.testModel.removeListChangeListener(this);
-		this.testModel.testFireItemsAddedListEvent();
-		assertNull(this.listChangeEvent);
-		assertFalse(this.itemsAddedListCalled);
-
-		this.listChangeEvent = null;
-		this.itemsAddedListCalled = false;
-		this.testModel.addListChangeListener(LIST_NAME, this);
-		this.testModel.testFireItemsAddedListEvent();
-		this.verifyListChangeEvent(ADD_INDEX, ADDED_OBJECT_VALUE);
-		assertTrue(this.itemsAddedListCalled);
-
-		this.listChangeEvent = null;
-		this.itemsAddedListCalled = false;
-		this.testModel.removeListChangeListener(LIST_NAME, this);
-		this.testModel.testFireItemsAddedListEvent();
-		assertNull(this.listChangeEvent);
-		assertFalse(this.itemsAddedListCalled);
-	}
-
-	public void testFireItemsAddedListEventNoChange() {
-		this.listChangeEvent = null;
-		this.itemsAddedListCalled = false;
-		this.testModel.addListChangeListener(this);
-		this.testModel.testFireItemsAddedListEventNoChange();
-		assertNull(this.listChangeEvent);
-		assertFalse(this.itemsAddedListCalled);
-
-		this.listChangeEvent = null;
-		this.itemsAddedListCalled = false;
-		this.testModel.removeListChangeListener(this);
-		this.testModel.testFireItemsAddedListEventNoChange();
-		assertNull(this.listChangeEvent);
-		assertFalse(this.itemsAddedListCalled);
-
-		this.listChangeEvent = null;
-		this.itemsAddedListCalled = false;
-		this.testModel.addListChangeListener(LIST_NAME, this);
-		this.testModel.testFireItemsAddedListEventNoChange();
-		assertNull(this.listChangeEvent);
-		assertFalse(this.itemsAddedListCalled);
-
-		this.listChangeEvent = null;
-		this.itemsAddedListCalled = false;
-		this.testModel.removeListChangeListener(LIST_NAME, this);
-		this.testModel.testFireItemsAddedListEventNoChange();
-		assertNull(this.listChangeEvent);
-		assertFalse(this.itemsAddedListCalled);
-	}
-
-	public void testFireItemsAddedList() {
-		this.listChangeEvent = null;
-		this.itemsAddedListCalled = false;
-		this.testModel.addListChangeListener(this);
-		this.testModel.testFireItemsAddedList();
-		this.verifyListChangeEvent(ADD_INDEX, ADDED_OBJECT_VALUE);
-		assertTrue(this.itemsAddedListCalled);
-
-		this.listChangeEvent = null;
-		this.itemsAddedListCalled = false;
-		this.testModel.removeListChangeListener(this);
-		this.testModel.testFireItemsAddedList();
-		assertNull(this.listChangeEvent);
-		assertFalse(this.itemsAddedListCalled);
-
-		this.listChangeEvent = null;
-		this.itemsAddedListCalled = false;
-		this.testModel.addListChangeListener(LIST_NAME, this);
-		this.testModel.testFireItemsAddedList();
-		this.verifyListChangeEvent(ADD_INDEX, ADDED_OBJECT_VALUE);
-		assertTrue(this.itemsAddedListCalled);
-
-		this.listChangeEvent = null;
-		this.itemsAddedListCalled = false;
-		this.testModel.removeListChangeListener(LIST_NAME, this);
-		this.testModel.testFireItemsAddedList();
-		assertNull(this.listChangeEvent);
-		assertFalse(this.itemsAddedListCalled);
-	}
-
-	public void testFireItemsAddedListNoChange() {
-		this.listChangeEvent = null;
-		this.itemsAddedListCalled = false;
-		this.testModel.addListChangeListener(this);
-		this.testModel.testFireItemsAddedListNoChange();
-		assertNull(this.listChangeEvent);
-		assertFalse(this.itemsAddedListCalled);
-
-		this.listChangeEvent = null;
-		this.itemsAddedListCalled = false;
-		this.testModel.removeListChangeListener(this);
-		this.testModel.testFireItemsAddedListNoChange();
-		assertNull(this.listChangeEvent);
-		assertFalse(this.itemsAddedListCalled);
-
-		this.listChangeEvent = null;
-		this.itemsAddedListCalled = false;
-		this.testModel.addListChangeListener(LIST_NAME, this);
-		this.testModel.testFireItemsAddedListNoChange();
-		assertNull(this.listChangeEvent);
-		assertFalse(this.itemsAddedListCalled);
-
-		this.listChangeEvent = null;
-		this.itemsAddedListCalled = false;
-		this.testModel.removeListChangeListener(LIST_NAME, this);
-		this.testModel.testFireItemsAddedListNoChange();
-		assertNull(this.listChangeEvent);
-		assertFalse(this.itemsAddedListCalled);
-	}
-
-	public void testFireItemAddedList() {
-		this.listChangeEvent = null;
-		this.itemsAddedListCalled = false;
-		this.testModel.addListChangeListener(this);
-		this.testModel.testFireItemAddedList();
-		this.verifyListChangeEvent(ADD_INDEX, ADDED_OBJECT_VALUE);
-		assertTrue(this.itemsAddedListCalled);
-
-		this.listChangeEvent = null;
-		this.itemsAddedListCalled = false;
-		this.testModel.removeListChangeListener(this);
-		this.testModel.testFireItemAddedList();
-		assertNull(this.listChangeEvent);
-		assertFalse(this.itemsAddedListCalled);
-
-		this.listChangeEvent = null;
-		this.itemsAddedListCalled = false;
-		this.testModel.addListChangeListener(LIST_NAME, this);
-		this.testModel.testFireItemAddedList();
-		this.verifyListChangeEvent(ADD_INDEX, ADDED_OBJECT_VALUE);
-		assertTrue(this.itemsAddedListCalled);
-
-		this.listChangeEvent = null;
-		this.itemsAddedListCalled = false;
-		this.testModel.removeListChangeListener(LIST_NAME, this);
-		this.testModel.testFireItemAddedList();
-		assertNull(this.listChangeEvent);
-		assertFalse(this.itemsAddedListCalled);
-	}
-
-	public void testFireItemsRemovedListEvent() {
-		this.listChangeEvent = null;
-		this.itemsRemovedListCalled = false;
-		this.testModel.addListChangeListener(this);
-		this.testModel.testFireItemsRemovedListEvent();
-		this.verifyListChangeEvent(REMOVE_INDEX, REMOVED_OBJECT_VALUE);
-		assertTrue(this.itemsRemovedListCalled);
-
-		this.listChangeEvent = null;
-		this.itemsRemovedListCalled = false;
-		this.testModel.removeListChangeListener(this);
-		this.testModel.testFireItemsRemovedListEvent();
-		assertNull(this.listChangeEvent);
-		assertFalse(this.itemsRemovedListCalled);
-
-		this.listChangeEvent = null;
-		this.itemsRemovedListCalled = false;
-		this.testModel.addListChangeListener(LIST_NAME, this);
-		this.testModel.testFireItemsRemovedListEvent();
-		this.verifyListChangeEvent(REMOVE_INDEX, REMOVED_OBJECT_VALUE);
-		assertTrue(this.itemsRemovedListCalled);
-
-		this.listChangeEvent = null;
-		this.itemsRemovedListCalled = false;
-		this.testModel.removeListChangeListener(LIST_NAME, this);
-		this.testModel.testFireItemsRemovedListEvent();
-		assertNull(this.listChangeEvent);
-		assertFalse(this.itemsRemovedListCalled);
-	}
-
-	public void testFireItemsRemovedListEventNoChange() {
-		this.listChangeEvent = null;
-		this.itemsRemovedListCalled = false;
-		this.testModel.addListChangeListener(this);
-		this.testModel.testFireItemsRemovedListEventNoChange();
-		assertNull(this.listChangeEvent);
-		assertFalse(this.itemsRemovedListCalled);
-
-		this.listChangeEvent = null;
-		this.itemsRemovedListCalled = false;
-		this.testModel.removeListChangeListener(this);
-		this.testModel.testFireItemsRemovedListEventNoChange();
-		assertNull(this.listChangeEvent);
-		assertFalse(this.itemsRemovedListCalled);
-
-		this.listChangeEvent = null;
-		this.itemsRemovedListCalled = false;
-		this.testModel.addListChangeListener(LIST_NAME, this);
-		this.testModel.testFireItemsRemovedListEventNoChange();
-		assertNull(this.listChangeEvent);
-		assertFalse(this.itemsRemovedListCalled);
-
-		this.listChangeEvent = null;
-		this.itemsRemovedListCalled = false;
-		this.testModel.removeListChangeListener(LIST_NAME, this);
-		this.testModel.testFireItemsRemovedListEventNoChange();
-		assertNull(this.listChangeEvent);
-		assertFalse(this.itemsRemovedListCalled);
-	}
-
-	public void testFireItemsRemovedList() {
-		this.listChangeEvent = null;
-		this.itemsRemovedListCalled = false;
-		this.testModel.addListChangeListener(this);
-		this.testModel.testFireItemsRemovedList();
-		this.verifyListChangeEvent(REMOVE_INDEX, REMOVED_OBJECT_VALUE);
-		assertTrue(this.itemsRemovedListCalled);
-
-		this.listChangeEvent = null;
-		this.itemsRemovedListCalled = false;
-		this.testModel.removeListChangeListener(this);
-		this.testModel.testFireItemsRemovedList();
-		assertNull(this.listChangeEvent);
-		assertFalse(this.itemsRemovedListCalled);
-
-		this.listChangeEvent = null;
-		this.itemsRemovedListCalled = false;
-		this.testModel.addListChangeListener(LIST_NAME, this);
-		this.testModel.testFireItemsRemovedList();
-		this.verifyListChangeEvent(REMOVE_INDEX, REMOVED_OBJECT_VALUE);
-		assertTrue(this.itemsRemovedListCalled);
-
-		this.listChangeEvent = null;
-		this.itemsRemovedListCalled = false;
-		this.testModel.removeListChangeListener(LIST_NAME, this);
-		this.testModel.testFireItemsRemovedList();
-		assertNull(this.listChangeEvent);
-		assertFalse(this.itemsRemovedListCalled);
-	}
-
-	public void testFireItemsRemovedListNoChange() {
-		this.listChangeEvent = null;
-		this.itemsRemovedListCalled = false;
-		this.testModel.addListChangeListener(this);
-		this.testModel.testFireItemsRemovedListNoChange();
-		assertNull(this.listChangeEvent);
-		assertFalse(this.itemsRemovedListCalled);
-
-		this.listChangeEvent = null;
-		this.itemsRemovedListCalled = false;
-		this.testModel.removeListChangeListener(this);
-		this.testModel.testFireItemsRemovedListNoChange();
-		assertNull(this.listChangeEvent);
-		assertFalse(this.itemsRemovedListCalled);
-
-		this.listChangeEvent = null;
-		this.itemsRemovedListCalled = false;
-		this.testModel.addListChangeListener(LIST_NAME, this);
-		this.testModel.testFireItemsRemovedListNoChange();
-		assertNull(this.listChangeEvent);
-		assertFalse(this.itemsRemovedListCalled);
-
-		this.listChangeEvent = null;
-		this.itemsRemovedListCalled = false;
-		this.testModel.removeListChangeListener(LIST_NAME, this);
-		this.testModel.testFireItemsRemovedListNoChange();
-		assertNull(this.listChangeEvent);
-		assertFalse(this.itemsRemovedListCalled);
-	}
-
-	public void testFireItemRemovedList() {
-		this.listChangeEvent = null;
-		this.itemsRemovedListCalled = false;
-		this.testModel.addListChangeListener(this);
-		this.testModel.testFireItemRemovedList();
-		this.verifyListChangeEvent(REMOVE_INDEX, REMOVED_OBJECT_VALUE);
-		assertTrue(this.itemsRemovedListCalled);
-
-		this.listChangeEvent = null;
-		this.itemsRemovedListCalled = false;
-		this.testModel.removeListChangeListener(this);
-		this.testModel.testFireItemRemovedList();
-		assertNull(this.listChangeEvent);
-		assertFalse(this.itemsRemovedListCalled);
-
-		this.listChangeEvent = null;
-		this.itemsRemovedListCalled = false;
-		this.testModel.addListChangeListener(LIST_NAME, this);
-		this.testModel.testFireItemRemovedList();
-		this.verifyListChangeEvent(REMOVE_INDEX, REMOVED_OBJECT_VALUE);
-		assertTrue(this.itemsRemovedListCalled);
-
-		this.listChangeEvent = null;
-		this.itemsRemovedListCalled = false;
-		this.testModel.removeListChangeListener(LIST_NAME, this);
-		this.testModel.testFireItemRemovedList();
-		assertNull(this.listChangeEvent);
-		assertFalse(this.itemsRemovedListCalled);
-	}
-
-	public void testFireItemsReplacedListEvent() {
-		this.listChangeEvent = null;
-		this.itemsReplacedListCalled = false;
-		this.testModel.addListChangeListener(this);
-		this.testModel.testFireItemsReplacedListEvent();
-		this.verifyListChangeEvent(REPLACE_INDEX, ADDED_OBJECT_VALUE, REMOVED_OBJECT_VALUE);
-		assertTrue(this.itemsReplacedListCalled);
-
-		this.listChangeEvent = null;
-		this.itemsReplacedListCalled = false;
-		this.testModel.removeListChangeListener(this);
-		this.testModel.testFireItemsReplacedListEvent();
-		assertNull(this.listChangeEvent);
-		assertFalse(this.itemsReplacedListCalled);
-
-		this.listChangeEvent = null;
-		this.itemsReplacedListCalled = false;
-		this.testModel.addListChangeListener(LIST_NAME, this);
-		this.testModel.testFireItemsReplacedListEvent();
-		this.verifyListChangeEvent(REPLACE_INDEX, ADDED_OBJECT_VALUE, REMOVED_OBJECT_VALUE);
-		assertTrue(this.itemsReplacedListCalled);
-
-		this.listChangeEvent = null;
-		this.itemsReplacedListCalled = false;
-		this.testModel.removeListChangeListener(LIST_NAME, this);
-		this.testModel.testFireItemsReplacedListEvent();
-		assertNull(this.listChangeEvent);
-		assertFalse(this.itemsReplacedListCalled);
-	}
-
-	public void testFireItemsReplacedListEventNoChange() {
-		this.listChangeEvent = null;
-		this.itemsReplacedListCalled = false;
-		this.testModel.addListChangeListener(this);
-		this.testModel.testFireItemsReplacedListEventNoChange();
-		assertNull(this.listChangeEvent);
-		assertFalse(this.itemsReplacedListCalled);
-
-		this.listChangeEvent = null;
-		this.itemsReplacedListCalled = false;
-		this.testModel.removeListChangeListener(this);
-		this.testModel.testFireItemsReplacedListEventNoChange();
-		assertNull(this.listChangeEvent);
-		assertFalse(this.itemsReplacedListCalled);
-
-		this.listChangeEvent = null;
-		this.itemsReplacedListCalled = false;
-		this.testModel.addListChangeListener(LIST_NAME, this);
-		this.testModel.testFireItemsReplacedListEventNoChange();
-		assertNull(this.listChangeEvent);
-		assertFalse(this.itemsReplacedListCalled);
-
-		this.listChangeEvent = null;
-		this.itemsReplacedListCalled = false;
-		this.testModel.removeListChangeListener(LIST_NAME, this);
-		this.testModel.testFireItemsReplacedListEventNoChange();
-		assertNull(this.listChangeEvent);
-		assertFalse(this.itemsReplacedListCalled);
-	}
-
-	public void testFireItemsReplacedList() {
-		this.listChangeEvent = null;
-		this.itemsReplacedListCalled = false;
-		this.testModel.addListChangeListener(this);
-		this.testModel.testFireItemsReplacedList();
-		this.verifyListChangeEvent(REPLACE_INDEX, ADDED_OBJECT_VALUE, REMOVED_OBJECT_VALUE);
-		assertTrue(this.itemsReplacedListCalled);
-
-		this.listChangeEvent = null;
-		this.itemsReplacedListCalled = false;
-		this.testModel.removeListChangeListener(this);
-		this.testModel.testFireItemsReplacedList();
-		assertNull(this.listChangeEvent);
-		assertFalse(this.itemsReplacedListCalled);
-
-		this.listChangeEvent = null;
-		this.itemsReplacedListCalled = false;
-		this.testModel.addListChangeListener(LIST_NAME, this);
-		this.testModel.testFireItemsReplacedList();
-		this.verifyListChangeEvent(REPLACE_INDEX, ADDED_OBJECT_VALUE, REMOVED_OBJECT_VALUE);
-		assertTrue(this.itemsReplacedListCalled);
-
-		this.listChangeEvent = null;
-		this.itemsReplacedListCalled = false;
-		this.testModel.removeListChangeListener(LIST_NAME, this);
-		this.testModel.testFireItemsReplacedList();
-		assertNull(this.listChangeEvent);
-		assertFalse(this.itemsReplacedListCalled);
-	}
-
-	public void testFireItemsReplacedListNoChange() {
-		this.listChangeEvent = null;
-		this.itemsReplacedListCalled = false;
-		this.testModel.addListChangeListener(this);
-		this.testModel.testFireItemsReplacedListNoChange();
-		assertNull(this.listChangeEvent);
-		assertFalse(this.itemsReplacedListCalled);
-
-		this.listChangeEvent = null;
-		this.itemsReplacedListCalled = false;
-		this.testModel.removeListChangeListener(this);
-		this.testModel.testFireItemsReplacedListNoChange();
-		assertNull(this.listChangeEvent);
-		assertFalse(this.itemsReplacedListCalled);
-
-		this.listChangeEvent = null;
-		this.itemsReplacedListCalled = false;
-		this.testModel.addListChangeListener(LIST_NAME, this);
-		this.testModel.testFireItemsReplacedListNoChange();
-		assertNull(this.listChangeEvent);
-		assertFalse(this.itemsReplacedListCalled);
-
-		this.listChangeEvent = null;
-		this.itemsReplacedListCalled = false;
-		this.testModel.removeListChangeListener(LIST_NAME, this);
-		this.testModel.testFireItemsReplacedListNoChange();
-		assertNull(this.listChangeEvent);
-		assertFalse(this.itemsReplacedListCalled);
-	}
-
-	public void testFireItemReplacedList() {
-		this.listChangeEvent = null;
-		this.itemsReplacedListCalled = false;
-		this.testModel.addListChangeListener(this);
-		this.testModel.testFireItemReplacedList();
-		this.verifyListChangeEvent(REPLACE_INDEX, ADDED_OBJECT_VALUE, REMOVED_OBJECT_VALUE);
-		assertTrue(this.itemsReplacedListCalled);
-
-		this.listChangeEvent = null;
-		this.itemsReplacedListCalled = false;
-		this.testModel.removeListChangeListener(this);
-		this.testModel.testFireItemReplacedList();
-		assertNull(this.listChangeEvent);
-		assertFalse(this.itemsReplacedListCalled);
-
-		this.listChangeEvent = null;
-		this.itemsReplacedListCalled = false;
-		this.testModel.addListChangeListener(LIST_NAME, this);
-		this.testModel.testFireItemReplacedList();
-		this.verifyListChangeEvent(REPLACE_INDEX, ADDED_OBJECT_VALUE, REMOVED_OBJECT_VALUE);
-		assertTrue(this.itemsReplacedListCalled);
-
-		this.listChangeEvent = null;
-		this.itemsReplacedListCalled = false;
-		this.testModel.removeListChangeListener(LIST_NAME, this);
-		this.testModel.testFireItemReplacedList();
-		assertNull(this.listChangeEvent);
-		assertFalse(this.itemsReplacedListCalled);
-	}
-
-	public void testFireItemsMovedListEvent() {
-		this.listChangeEvent = null;
-		this.itemsMovedListCalled = false;
-		this.testModel.addListChangeListener(this);
-		this.testModel.testFireItemsMovedListEvent();
-		this.verifyListChangeEvent(TARGET_INDEX, SOURCE_INDEX);
-		assertTrue(this.itemsMovedListCalled);
-
-		this.listChangeEvent = null;
-		this.itemsMovedListCalled = false;
-		this.testModel.removeListChangeListener(this);
-		this.testModel.testFireItemsMovedListEvent();
-		assertNull(this.listChangeEvent);
-		assertFalse(this.itemsMovedListCalled);
-
-		this.listChangeEvent = null;
-		this.itemsMovedListCalled = false;
-		this.testModel.addListChangeListener(LIST_NAME, this);
-		this.testModel.testFireItemsMovedListEvent();
-		this.verifyListChangeEvent(TARGET_INDEX, SOURCE_INDEX);
-		assertTrue(this.itemsMovedListCalled);
-
-		this.listChangeEvent = null;
-		this.itemsMovedListCalled = false;
-		this.testModel.removeListChangeListener(LIST_NAME, this);
-		this.testModel.testFireItemsMovedListEvent();
-		assertNull(this.listChangeEvent);
-		assertFalse(this.itemsMovedListCalled);
-	}
-
-	public void testFireItemsMovedListEventNoChange() {
-		this.listChangeEvent = null;
-		this.itemsMovedListCalled = false;
-		this.testModel.addListChangeListener(this);
-		this.testModel.testFireItemsMovedListEventNoChange();
-		assertNull(this.listChangeEvent);
-		assertFalse(this.itemsMovedListCalled);
-
-		this.listChangeEvent = null;
-		this.itemsMovedListCalled = false;
-		this.testModel.removeListChangeListener(this);
-		this.testModel.testFireItemsMovedListEventNoChange();
-		assertNull(this.listChangeEvent);
-		assertFalse(this.itemsMovedListCalled);
-
-		this.listChangeEvent = null;
-		this.itemsMovedListCalled = false;
-		this.testModel.addListChangeListener(LIST_NAME, this);
-		this.testModel.testFireItemsMovedListEventNoChange();
-		assertNull(this.listChangeEvent);
-		assertFalse(this.itemsMovedListCalled);
-
-		this.listChangeEvent = null;
-		this.itemsMovedListCalled = false;
-		this.testModel.removeListChangeListener(LIST_NAME, this);
-		this.testModel.testFireItemsMovedListEventNoChange();
-		assertNull(this.listChangeEvent);
-		assertFalse(this.itemsMovedListCalled);
-	}
-
-	public void testFireItemsMovedList() {
-		this.listChangeEvent = null;
-		this.itemsMovedListCalled = false;
-		this.testModel.addListChangeListener(this);
-		this.testModel.testFireItemsMovedList();
-		this.verifyListChangeEvent(TARGET_INDEX, SOURCE_INDEX);
-		assertTrue(this.itemsMovedListCalled);
-
-		this.listChangeEvent = null;
-		this.itemsMovedListCalled = false;
-		this.testModel.removeListChangeListener(this);
-		this.testModel.testFireItemsMovedList();
-		assertNull(this.listChangeEvent);
-		assertFalse(this.itemsMovedListCalled);
-
-		this.listChangeEvent = null;
-		this.itemsMovedListCalled = false;
-		this.testModel.addListChangeListener(LIST_NAME, this);
-		this.testModel.testFireItemsMovedList();
-		this.verifyListChangeEvent(TARGET_INDEX, SOURCE_INDEX);
-		assertTrue(this.itemsMovedListCalled);
-
-		this.listChangeEvent = null;
-		this.itemsMovedListCalled = false;
-		this.testModel.removeListChangeListener(LIST_NAME, this);
-		this.testModel.testFireItemsMovedList();
-		assertNull(this.listChangeEvent);
-		assertFalse(this.itemsMovedListCalled);
-	}
-
-	public void testFireItemsMovedListNoChange() {
-		this.listChangeEvent = null;
-		this.itemsMovedListCalled = false;
-		this.testModel.addListChangeListener(this);
-		this.testModel.testFireItemsMovedListNoChange();
-		assertNull(this.listChangeEvent);
-		assertFalse(this.itemsMovedListCalled);
-
-		this.listChangeEvent = null;
-		this.itemsMovedListCalled = false;
-		this.testModel.removeListChangeListener(this);
-		this.testModel.testFireItemsMovedListNoChange();
-		assertNull(this.listChangeEvent);
-		assertFalse(this.itemsMovedListCalled);
-
-		this.listChangeEvent = null;
-		this.itemsMovedListCalled = false;
-		this.testModel.addListChangeListener(LIST_NAME, this);
-		this.testModel.testFireItemsMovedListNoChange();
-		assertNull(this.listChangeEvent);
-		assertFalse(this.itemsMovedListCalled);
-
-		this.listChangeEvent = null;
-		this.itemsMovedListCalled = false;
-		this.testModel.removeListChangeListener(LIST_NAME, this);
-		this.testModel.testFireItemsMovedListNoChange();
-		assertNull(this.listChangeEvent);
-		assertFalse(this.itemsMovedListCalled);
-	}
-
-	public void testFireItemMovedList() {
-		this.listChangeEvent = null;
-		this.itemsMovedListCalled = false;
-		this.testModel.addListChangeListener(this);
-		this.testModel.testFireItemMovedList();
-		this.verifyListChangeEvent(TARGET_INDEX, SOURCE_INDEX);
-		assertTrue(this.itemsMovedListCalled);
-
-		this.listChangeEvent = null;
-		this.itemsMovedListCalled = false;
-		this.testModel.removeListChangeListener(this);
-		this.testModel.testFireItemMovedList();
-		assertNull(this.listChangeEvent);
-		assertFalse(this.itemsMovedListCalled);
-
-		this.listChangeEvent = null;
-		this.itemsMovedListCalled = false;
-		this.testModel.addListChangeListener(LIST_NAME, this);
-		this.testModel.testFireItemMovedList();
-		this.verifyListChangeEvent(TARGET_INDEX, SOURCE_INDEX);
-		assertTrue(this.itemsMovedListCalled);
-
-		this.listChangeEvent = null;
-		this.itemsMovedListCalled = false;
-		this.testModel.removeListChangeListener(LIST_NAME, this);
-		this.testModel.testFireItemMovedList();
-		assertNull(this.listChangeEvent);
-		assertFalse(this.itemsMovedListCalled);
-	}
-
-	public void testFireListClearedEvent() {
-		this.listChangeEvent = null;
-		this.listClearedCalled = false;
-		this.testModel.addListChangeListener(this);
-		this.testModel.testFireListClearedEvent();
-		this.verifyListChangeEvent(-1, null);
-		assertTrue(this.listClearedCalled);
-
-		this.listChangeEvent = null;
-		this.listClearedCalled = false;
-		this.testModel.removeListChangeListener(this);
-		this.testModel.testFireListClearedEvent();
-		assertNull(this.listChangeEvent);
-		assertFalse(this.listClearedCalled);
-
-		this.listChangeEvent = null;
-		this.listClearedCalled = false;
-		this.testModel.addListChangeListener(LIST_NAME, this);
-		this.testModel.testFireListClearedEvent();
-		this.verifyListChangeEvent(-1, null);
-		assertTrue(this.listClearedCalled);
-
-		this.listChangeEvent = null;
-		this.listClearedCalled = false;
-		this.testModel.removeListChangeListener(LIST_NAME, this);
-		this.testModel.testFireListClearedEvent();
-		assertNull(this.listChangeEvent);
-		assertFalse(this.listClearedCalled);
-	}
-
-	public void testFireListCleared() {
-		this.listChangeEvent = null;
-		this.listClearedCalled = false;
-		this.testModel.addListChangeListener(this);
-		this.testModel.testFireListCleared();
-		this.verifyListChangeEvent(-1, null);
-		assertTrue(this.listClearedCalled);
-
-		this.listChangeEvent = null;
-		this.listClearedCalled = false;
-		this.testModel.removeListChangeListener(this);
-		this.testModel.testFireListCleared();
-		assertNull(this.listChangeEvent);
-		assertFalse(this.listClearedCalled);
-
-		this.listChangeEvent = null;
-		this.listClearedCalled = false;
-		this.testModel.addListChangeListener(LIST_NAME, this);
-		this.testModel.testFireListCleared();
-		this.verifyListChangeEvent(-1, null);
-		assertTrue(this.listClearedCalled);
-
-		this.listChangeEvent = null;
-		this.listClearedCalled = false;
-		this.testModel.removeListChangeListener(LIST_NAME, this);
-		this.testModel.testFireListCleared();
-		assertNull(this.listChangeEvent);
-		assertFalse(this.listClearedCalled);
-	}
-
-	public void testFireListChangedEvent() {
-		this.listChangeEvent = null;
-		this.listChangedCalled = false;
-		this.testModel.addListChangeListener(this);
-		this.testModel.testFireListChangedEvent();
-		this.verifyListChangeEvent(-1, null);
-		assertTrue(this.listChangedCalled);
-
-		this.listChangeEvent = null;
-		this.listChangedCalled = false;
-		this.testModel.removeListChangeListener(this);
-		this.testModel.testFireListChangedEvent();
-		assertNull(this.listChangeEvent);
-		assertFalse(this.listChangedCalled);
-
-		this.listChangeEvent = null;
-		this.listChangedCalled = false;
-		this.testModel.addListChangeListener(LIST_NAME, this);
-		this.testModel.testFireListChangedEvent();
-		this.verifyListChangeEvent(-1, null);
-		assertTrue(this.listChangedCalled);
-
-		this.listChangeEvent = null;
-		this.listChangedCalled = false;
-		this.testModel.removeListChangeListener(LIST_NAME, this);
-		this.testModel.testFireListChangedEvent();
-		assertNull(this.listChangeEvent);
-		assertFalse(this.listChangedCalled);
-	}
-
-	public void testFireListChanged() {
-		this.listChangeEvent = null;
-		this.listChangedCalled = false;
-		this.testModel.addListChangeListener(this);
-		this.testModel.testFireListChanged();
-		this.verifyListChangeEvent(-1, null);
-		assertTrue(this.listChangedCalled);
-
-		this.listChangeEvent = null;
-		this.listChangedCalled = false;
-		this.testModel.removeListChangeListener(this);
-		this.testModel.testFireListChanged();
-		assertNull(this.listChangeEvent);
-		assertFalse(this.listChangedCalled);
-
-		this.listChangeEvent = null;
-		this.listChangedCalled = false;
-		this.testModel.addListChangeListener(LIST_NAME, this);
-		this.testModel.testFireListChanged();
-		this.verifyListChangeEvent(-1, null);
-		assertTrue(this.listChangedCalled);
-
-		this.listChangeEvent = null;
-		this.listChangedCalled = false;
-		this.testModel.removeListChangeListener(LIST_NAME, this);
-		this.testModel.testFireListChanged();
-		assertNull(this.listChangeEvent);
-		assertFalse(this.listChangedCalled);
-	}
-
-	public void testAddItemToListIndex() {
-		this.listChangeEvent = null;
-		this.itemsAddedListCalled = false;
-		this.testModel.addListChangeListener(this);
-		this.testModel.testAddItemToListIndex();
-		this.verifyListChangeEvent(2, "joo");
-		assertTrue(this.itemsAddedListCalled);
-
-		this.listChangeEvent = null;
-		this.itemsAddedListCalled = false;
-		this.testModel.removeListChangeListener(this);
-		this.testModel.testAddItemToListIndex();
-		assertNull(this.listChangeEvent);
-		assertFalse(this.itemsAddedListCalled);
-
-		this.listChangeEvent = null;
-		this.itemsAddedListCalled = false;
-		this.testModel.addListChangeListener(LIST_NAME, this);
-		this.testModel.testAddItemToListIndex();
-		this.verifyListChangeEvent(2, "joo");
-		assertTrue(this.itemsAddedListCalled);
-
-		this.listChangeEvent = null;
-		this.itemsAddedListCalled = false;
-		this.testModel.removeListChangeListener(LIST_NAME, this);
-		this.testModel.testAddItemToListIndex();
-		assertNull(this.listChangeEvent);
-		assertFalse(this.itemsAddedListCalled);
-	}
-
-	public void testAddItemToList() {
-		this.listChangeEvent = null;
-		this.itemsAddedListCalled = false;
-		this.testModel.addListChangeListener(this);
-		this.testModel.testAddItemToList();
-		this.verifyListChangeEvent(3, "joo");
-		assertTrue(this.itemsAddedListCalled);
-
-		this.listChangeEvent = null;
-		this.itemsAddedListCalled = false;
-		this.testModel.removeListChangeListener(this);
-		this.testModel.testAddItemToList();
-		assertNull(this.listChangeEvent);
-		assertFalse(this.itemsAddedListCalled);
-
-		this.listChangeEvent = null;
-		this.itemsAddedListCalled = false;
-		this.testModel.addListChangeListener(LIST_NAME, this);
-		this.testModel.testAddItemToList();
-		this.verifyListChangeEvent(3, "joo");
-		assertTrue(this.itemsAddedListCalled);
-
-		this.listChangeEvent = null;
-		this.itemsAddedListCalled = false;
-		this.testModel.removeListChangeListener(LIST_NAME, this);
-		this.testModel.testAddItemToList();
-		assertNull(this.listChangeEvent);
-		assertFalse(this.itemsAddedListCalled);
-	}
-
-	public void testAddItemsToListIndex() {
-		this.listChangeEvent = null;
-		this.itemsAddedListCalled = false;
-		this.testModel.addListChangeListener(this);
-		this.testModel.testAddItemsToListIndex();
-		this.verifyListChangeEvent(2, "joo");
-		assertTrue(this.itemsAddedListCalled);
-
-		this.listChangeEvent = null;
-		this.itemsAddedListCalled = false;
-		this.testModel.removeListChangeListener(this);
-		this.testModel.testAddItemsToListIndex();
-		assertNull(this.listChangeEvent);
-		assertFalse(this.itemsAddedListCalled);
-
-		this.listChangeEvent = null;
-		this.itemsAddedListCalled = false;
-		this.testModel.addListChangeListener(LIST_NAME, this);
-		this.testModel.testAddItemsToListIndex();
-		this.verifyListChangeEvent(2, "joo");
-		assertTrue(this.itemsAddedListCalled);
-
-		this.listChangeEvent = null;
-		this.itemsAddedListCalled = false;
-		this.testModel.removeListChangeListener(LIST_NAME, this);
-		this.testModel.testAddItemsToListIndex();
-		assertNull(this.listChangeEvent);
-		assertFalse(this.itemsAddedListCalled);
-	}
-
-	public void testAddItemsToListIndexNoChange() {
-		this.listChangeEvent = null;
-		this.itemsAddedListCalled = false;
-		this.testModel.addListChangeListener(this);
-		this.testModel.testAddItemsToListIndexNoChange();
-		assertNull(this.listChangeEvent);
-		assertFalse(this.itemsAddedListCalled);
-
-		this.listChangeEvent = null;
-		this.itemsAddedListCalled = false;
-		this.testModel.removeListChangeListener(this);
-		this.testModel.testAddItemsToListIndexNoChange();
-		assertNull(this.listChangeEvent);
-		assertFalse(this.itemsAddedListCalled);
-
-		this.listChangeEvent = null;
-		this.itemsAddedListCalled = false;
-		this.testModel.addListChangeListener(LIST_NAME, this);
-		this.testModel.testAddItemsToListIndexNoChange();
-		assertNull(this.listChangeEvent);
-		assertFalse(this.itemsAddedListCalled);
-
-		this.listChangeEvent = null;
-		this.itemsAddedListCalled = false;
-		this.testModel.removeListChangeListener(LIST_NAME, this);
-		this.testModel.testAddItemsToListIndexNoChange();
-		assertNull(this.listChangeEvent);
-		assertFalse(this.itemsAddedListCalled);
-	}
-
-	public void testAddItemsToList() {
-		this.listChangeEvent = null;
-		this.itemsAddedListCalled = false;
-		this.testModel.addListChangeListener(this);
-		this.testModel.testAddItemsToList();
-		this.verifyListChangeEvent(3, "joo");
-		assertTrue(this.itemsAddedListCalled);
-
-		this.listChangeEvent = null;
-		this.itemsAddedListCalled = false;
-		this.testModel.removeListChangeListener(this);
-		this.testModel.testAddItemsToList();
-		assertNull(this.listChangeEvent);
-		assertFalse(this.itemsAddedListCalled);
-
-		this.listChangeEvent = null;
-		this.itemsAddedListCalled = false;
-		this.testModel.addListChangeListener(LIST_NAME, this);
-		this.testModel.testAddItemsToList();
-		this.verifyListChangeEvent(3, "joo");
-		assertTrue(this.itemsAddedListCalled);
-
-		this.listChangeEvent = null;
-		this.itemsAddedListCalled = false;
-		this.testModel.removeListChangeListener(LIST_NAME, this);
-		this.testModel.testAddItemsToList();
-		assertNull(this.listChangeEvent);
-		assertFalse(this.itemsAddedListCalled);
-	}
-
-	public void testAddItemsToListNoChange() {
-		this.listChangeEvent = null;
-		this.itemsAddedListCalled = false;
-		this.testModel.addListChangeListener(this);
-		this.testModel.testAddItemsToListNoChange();
-		assertNull(this.listChangeEvent);
-		assertFalse(this.itemsAddedListCalled);
-
-		this.listChangeEvent = null;
-		this.itemsAddedListCalled = false;
-		this.testModel.removeListChangeListener(this);
-		this.testModel.testAddItemsToListNoChange();
-		assertNull(this.listChangeEvent);
-		assertFalse(this.itemsAddedListCalled);
-
-		this.listChangeEvent = null;
-		this.itemsAddedListCalled = false;
-		this.testModel.addListChangeListener(LIST_NAME, this);
-		this.testModel.testAddItemsToListNoChange();
-		assertNull(this.listChangeEvent);
-		assertFalse(this.itemsAddedListCalled);
-
-		this.listChangeEvent = null;
-		this.itemsAddedListCalled = false;
-		this.testModel.removeListChangeListener(LIST_NAME, this);
-		this.testModel.testAddItemsToListNoChange();
-		assertNull(this.listChangeEvent);
-		assertFalse(this.itemsAddedListCalled);
-	}
-
-// TODO remove
-// TODO retain
-// TODO replace
-// TODO set
-// TODO move
-// TODO clear
-// TODO synchronize
-
-	public void testHasAnyListChangeListeners() {
-		assertTrue(this.testModel.hasNoListChangeListeners(LIST_NAME));
-		this.testModel.addListChangeListener(this);
-		assertTrue(this.testModel.hasAnyListChangeListeners(LIST_NAME));
-		this.testModel.removeListChangeListener(this);
-		assertTrue(this.testModel.hasNoListChangeListeners(LIST_NAME));
-
-		assertTrue(this.testModel.hasNoListChangeListeners(LIST_NAME));
-		this.testModel.addListChangeListener(LIST_NAME, this);
-		assertTrue(this.testModel.hasAnyListChangeListeners(LIST_NAME));
-		this.testModel.removeListChangeListener(LIST_NAME, this);
-		assertTrue(this.testModel.hasNoListChangeListeners(LIST_NAME));
-	}
-
-	public void testAddNullListListener() {
-		boolean exCaught = false;
-		try {
-			this.testModel.addListChangeListener(null);
-		} catch (NullPointerException ex) {
-			exCaught = true;
-		}
-		assertTrue(exCaught);
-	}
-
-	public void testAddNullListListenerName() {
-		boolean exCaught = false;
-		try {
-			this.testModel.addListChangeListener("foo", null);
-		} catch (NullPointerException ex) {
-			exCaught = true;
-		}
-		assertTrue(exCaught);
-	}
-
-	public void testRemoveBogusListListener() {
-		boolean exCaught = false;
-		try {
-			this.testModel.removeListChangeListener(this);
-		} catch (IllegalArgumentException ex) {
-			exCaught = true;
-		}
-		assertTrue(exCaught);
-
-		this.testModel.addPropertyChangeListener(this);
-		exCaught = false;
-		try {
-			this.testModel.removeListChangeListener(this);
-		} catch (IllegalArgumentException ex) {
-			exCaught = true;
-		}
-		assertTrue(exCaught);
-
-		this.testModel.addListChangeListener(this);
-		exCaught = false;
-		try {
-			this.testModel.removeListChangeListener(new ChangeSupportTests("dummy"));
-		} catch (IllegalArgumentException ex) {
-			exCaught = true;
-		}
-		assertTrue(exCaught);
-
-		exCaught = false;
-		try {
-			this.testModel.removeListChangeListener(new ListChangeAdapter());
-		} catch (IllegalArgumentException ex) {
-			exCaught = true;
-		}
-		assertTrue(exCaught);
-	}
-
-	public void testRemoveBogusListListenerName() {
-		boolean exCaught = false;
-		try {
-			this.testModel.removeListChangeListener("foo", this);
-		} catch (IllegalArgumentException ex) {
-			exCaught = true;
-		}
-		assertTrue(exCaught);
-
-		this.testModel.addPropertyChangeListener("foo", this);
-		exCaught = false;
-		try {
-			this.testModel.removeListChangeListener("foo", this);
-		} catch (IllegalArgumentException ex) {
-			exCaught = true;
-		}
-		assertTrue(exCaught);
-
-		this.testModel.addListChangeListener("foo", this);
-		exCaught = false;
-		try {
-			this.testModel.removeListChangeListener("foo", new ChangeSupportTests("dummy"));
-		} catch (IllegalArgumentException ex) {
-			exCaught = true;
-		}
-		assertTrue(exCaught);
-
-		exCaught = false;
-		try {
-			this.testModel.removeListChangeListener("foo", new ListChangeAdapter());
-		} catch (IllegalArgumentException ex) {
-			exCaught = true;
-		}
-		assertTrue(exCaught);
-	}
-
-	private void verifyListChangeEvent(int index, Object item) {
-		this.verifyListChangeEvent(index, item, null);
-	}
-
-	private void verifyListChangeEvent(int targetIndex, int sourceIndex) {
-		assertNotNull(this.listChangeEvent);
-		assertEquals(this.testModel, this.listChangeEvent.getSource());
-		assertEquals(LIST_NAME, this.listChangeEvent.getListName());
-		assertEquals(targetIndex, this.listChangeEvent.getTargetIndex());
-		assertEquals(sourceIndex, this.listChangeEvent.getSourceIndex());
-	}
-
-	private void verifyListChangeEvent(int index, Object item, Object replacedItem) {
-		assertNotNull(this.listChangeEvent);
-		assertEquals(this.testModel, this.listChangeEvent.getSource());
-		assertEquals(LIST_NAME, this.listChangeEvent.getListName());
-		assertEquals(index, this.listChangeEvent.getIndex());
-		if (item == null) {
-			assertFalse(this.listChangeEvent.items().hasNext());
-		} else {
-			assertEquals(item, this.listChangeEvent.items().next());
-		}
-		if (replacedItem == null) {
-			assertFalse(this.listChangeEvent.replacedItems().hasNext());
-		} else {
-			assertEquals(replacedItem, this.listChangeEvent.replacedItems().next());
-		}
-	}
-
-
-	// ********** tree change tests **********
-
-	public void testFireNodeAddedTree() {
-		this.treeChangeEvent = null;
-		this.nodeAddedCalled = false;
-		this.testModel.addTreeChangeListener(this);
-		this.testModel.testFireNodeAddedTree();
-		this.verifyTreeChangeEvent(OBJECT_ARRAY_PATH);
-		assertTrue(this.nodeAddedCalled);
-
-		this.treeChangeEvent = null;
-		this.nodeAddedCalled = false;
-		this.testModel.removeTreeChangeListener(this);
-		this.testModel.testFireNodeAddedTree();
-		assertNull(this.treeChangeEvent);
-		assertFalse(this.nodeAddedCalled);
-
-		this.treeChangeEvent = null;
-		this.nodeAddedCalled = false;
-		this.testModel.addTreeChangeListener(TREE_NAME, this);
-		this.testModel.testFireNodeAddedTree();
-		this.verifyTreeChangeEvent(OBJECT_ARRAY_PATH);
-		assertTrue(this.nodeAddedCalled);
-
-		this.treeChangeEvent = null;
-		this.nodeAddedCalled = false;
-		this.testModel.removeTreeChangeListener(TREE_NAME, this);
-		this.testModel.testFireNodeAddedTree();
-		assertNull(this.treeChangeEvent);
-		assertFalse(this.nodeAddedCalled);
-	}
-
-	public void testFireNodeAddedTreeEvent() {
-		this.treeChangeEvent = null;
-		this.nodeAddedCalled = false;
-		this.testModel.addTreeChangeListener(this);
-		this.testModel.testFireNodeAddedTreeEvent();
-		this.verifyTreeChangeEvent(OBJECT_ARRAY_PATH);
-		assertTrue(this.nodeAddedCalled);
-
-		this.treeChangeEvent = null;
-		this.nodeAddedCalled = false;
-		this.testModel.removeTreeChangeListener(this);
-		this.testModel.testFireNodeAddedTreeEvent();
-		assertNull(this.treeChangeEvent);
-		assertFalse(this.nodeAddedCalled);
-
-		this.treeChangeEvent = null;
-		this.nodeAddedCalled = false;
-		this.testModel.addTreeChangeListener(TREE_NAME, this);
-		this.testModel.testFireNodeAddedTreeEvent();
-		this.verifyTreeChangeEvent(OBJECT_ARRAY_PATH);
-		assertTrue(this.nodeAddedCalled);
-
-		this.treeChangeEvent = null;
-		this.nodeAddedCalled = false;
-		this.testModel.removeTreeChangeListener(TREE_NAME, this);
-		this.testModel.testFireNodeAddedTreeEvent();
-		assertNull(this.treeChangeEvent);
-		assertFalse(this.nodeAddedCalled);
-	}
-
-	public void testFireNodeRemovedTreeEvent() {
-		this.treeChangeEvent = null;
-		this.nodeRemovedCalled = false;
-		this.testModel.addTreeChangeListener(this);
-		this.testModel.testFireNodeRemovedTreeEvent();
-		this.verifyTreeChangeEvent(OBJECT_ARRAY_PATH);
-		assertTrue(this.nodeRemovedCalled);
-
-		this.treeChangeEvent = null;
-		this.nodeRemovedCalled = false;
-		this.testModel.removeTreeChangeListener(this);
-		this.testModel.testFireNodeRemovedTreeEvent();
-		assertNull(this.treeChangeEvent);
-		assertFalse(this.nodeRemovedCalled);
-
-		this.treeChangeEvent = null;
-		this.nodeRemovedCalled = false;
-		this.testModel.addTreeChangeListener(TREE_NAME, this);
-		this.testModel.testFireNodeRemovedTreeEvent();
-		this.verifyTreeChangeEvent(OBJECT_ARRAY_PATH);
-		assertTrue(this.nodeRemovedCalled);
-
-		this.treeChangeEvent = null;
-		this.nodeRemovedCalled = false;
-		this.testModel.removeTreeChangeListener(TREE_NAME, this);
-		this.testModel.testFireNodeRemovedTreeEvent();
-		assertNull(this.treeChangeEvent);
-		assertFalse(this.nodeRemovedCalled);
-	}
-
-	public void testFireNodeRemovedTree() {
-		this.treeChangeEvent = null;
-		this.nodeRemovedCalled = false;
-		this.testModel.addTreeChangeListener(this);
-		this.testModel.testFireNodeRemovedTree();
-		this.verifyTreeChangeEvent(OBJECT_ARRAY_PATH);
-		assertTrue(this.nodeRemovedCalled);
-
-		this.treeChangeEvent = null;
-		this.nodeRemovedCalled = false;
-		this.testModel.removeTreeChangeListener(this);
-		this.testModel.testFireNodeRemovedTree();
-		assertNull(this.treeChangeEvent);
-		assertFalse(this.nodeRemovedCalled);
-
-		this.treeChangeEvent = null;
-		this.nodeRemovedCalled = false;
-		this.testModel.addTreeChangeListener(TREE_NAME, this);
-		this.testModel.testFireNodeRemovedTree();
-		this.verifyTreeChangeEvent(OBJECT_ARRAY_PATH);
-		assertTrue(this.nodeRemovedCalled);
-
-		this.treeChangeEvent = null;
-		this.nodeRemovedCalled = false;
-		this.testModel.removeTreeChangeListener(TREE_NAME, this);
-		this.testModel.testFireNodeRemovedTree();
-		assertNull(this.treeChangeEvent);
-		assertFalse(this.nodeRemovedCalled);
-	}
-
-	public void testFireTreeClearedEvent() {
-		this.treeChangeEvent = null;
-		this.treeClearedCalled = false;
-		this.testModel.addTreeChangeListener(this);
-		this.testModel.testFireTreeClearedEvent();
-		this.verifyTreeChangeEvent(EMPTY_PATH);
-		assertTrue(this.treeClearedCalled);
-
-		this.treeChangeEvent = null;
-		this.treeClearedCalled = false;
-		this.testModel.removeTreeChangeListener(this);
-		this.testModel.testFireTreeClearedEvent();
-		assertNull(this.treeChangeEvent);
-		assertFalse(this.treeClearedCalled);
-
-		this.treeChangeEvent = null;
-		this.treeClearedCalled = false;
-		this.testModel.addTreeChangeListener(TREE_NAME, this);
-		this.testModel.testFireTreeClearedEvent();
-		this.verifyTreeChangeEvent(EMPTY_PATH);
-		assertTrue(this.treeClearedCalled);
-
-		this.treeChangeEvent = null;
-		this.treeClearedCalled = false;
-		this.testModel.removeTreeChangeListener(TREE_NAME, this);
-		this.testModel.testFireTreeClearedEvent();
-		assertNull(this.treeChangeEvent);
-		assertFalse(this.treeClearedCalled);
-	}
-
-	public void testFireTreeCleared() {
-		this.treeChangeEvent = null;
-		this.treeClearedCalled = false;
-		this.testModel.addTreeChangeListener(this);
-		this.testModel.testFireTreeCleared();
-		this.verifyTreeChangeEvent(EMPTY_PATH);
-		assertTrue(this.treeClearedCalled);
-
-		this.treeChangeEvent = null;
-		this.treeClearedCalled = false;
-		this.testModel.removeTreeChangeListener(this);
-		this.testModel.testFireTreeCleared();
-		assertNull(this.treeChangeEvent);
-		assertFalse(this.treeClearedCalled);
-
-		this.treeChangeEvent = null;
-		this.treeClearedCalled = false;
-		this.testModel.addTreeChangeListener(TREE_NAME, this);
-		this.testModel.testFireTreeCleared();
-		this.verifyTreeChangeEvent(EMPTY_PATH);
-		assertTrue(this.treeClearedCalled);
-
-		this.treeChangeEvent = null;
-		this.treeClearedCalled = false;
-		this.testModel.removeTreeChangeListener(TREE_NAME, this);
-		this.testModel.testFireTreeCleared();
-		assertNull(this.treeChangeEvent);
-		assertFalse(this.treeClearedCalled);
-	}
-
-	public void testFireTreeChangedEvent() {
-		this.treeChangeEvent = null;
-		this.treeChangedCalled = false;
-		this.testModel.addTreeChangeListener(this);
-		this.testModel.testFireTreeChangedEvent();
-		this.verifyTreeChangeEvent(OBJECT_ARRAY_PATH);
-		assertTrue(this.treeChangedCalled);
-
-		this.treeChangeEvent = null;
-		this.treeChangedCalled = false;
-		this.testModel.removeTreeChangeListener(this);
-		this.testModel.testFireTreeChangedEvent();
-		assertNull(this.treeChangeEvent);
-		assertFalse(this.treeChangedCalled);
-
-		this.treeChangeEvent = null;
-		this.treeChangedCalled = false;
-		this.testModel.addTreeChangeListener(TREE_NAME, this);
-		this.testModel.testFireTreeChangedEvent();
-		this.verifyTreeChangeEvent(OBJECT_ARRAY_PATH);
-		assertTrue(this.treeChangedCalled);
-
-		this.treeChangeEvent = null;
-		this.treeChangedCalled = false;
-		this.testModel.removeTreeChangeListener(TREE_NAME, this);
-		this.testModel.testFireTreeChangedEvent();
-		assertNull(this.treeChangeEvent);
-		assertFalse(this.treeChangedCalled);
-	}
-
-	public void testFireTreeChanged() {
-		this.treeChangeEvent = null;
-		this.treeChangedCalled = false;
-		this.testModel.addTreeChangeListener(this);
-		this.testModel.testFireTreeChanged();
-		this.verifyTreeChangeEvent(OBJECT_ARRAY_PATH);
-		assertTrue(this.treeChangedCalled);
-
-		this.treeChangeEvent = null;
-		this.treeChangedCalled = false;
-		this.testModel.removeTreeChangeListener(this);
-		this.testModel.testFireTreeChanged();
-		assertNull(this.treeChangeEvent);
-		assertFalse(this.treeChangedCalled);
-
-		this.treeChangeEvent = null;
-		this.treeChangedCalled = false;
-		this.testModel.addTreeChangeListener(TREE_NAME, this);
-		this.testModel.testFireTreeChanged();
-		this.verifyTreeChangeEvent(OBJECT_ARRAY_PATH);
-		assertTrue(this.treeChangedCalled);
-
-		this.treeChangeEvent = null;
-		this.treeChangedCalled = false;
-		this.testModel.removeTreeChangeListener(TREE_NAME, this);
-		this.testModel.testFireTreeChanged();
-		assertNull(this.treeChangeEvent);
-		assertFalse(this.treeChangedCalled);
-	}
-
-	public void testHasAnyTreeChangeListeners() {
-		assertTrue(this.testModel.hasNoTreeChangeListeners(TREE_NAME));
-		this.testModel.addTreeChangeListener(this);
-		assertTrue(this.testModel.hasAnyTreeChangeListeners(TREE_NAME));
-		this.testModel.removeTreeChangeListener(this);
-		assertTrue(this.testModel.hasNoTreeChangeListeners(TREE_NAME));
-
-		assertTrue(this.testModel.hasNoTreeChangeListeners(TREE_NAME));
-		this.testModel.addTreeChangeListener(TREE_NAME, this);
-		assertTrue(this.testModel.hasAnyTreeChangeListeners(TREE_NAME));
-		this.testModel.removeTreeChangeListener(TREE_NAME, this);
-		assertTrue(this.testModel.hasNoTreeChangeListeners(TREE_NAME));
-	}
-
-	public void testAddNullTreeListener() {
-		boolean exCaught = false;
-		try {
-			this.testModel.addTreeChangeListener(null);
-		} catch (NullPointerException ex) {
-			exCaught = true;
-		}
-		assertTrue(exCaught);
-	}
-
-	public void testAddNullTreeListenerName() {
-		boolean exCaught = false;
-		try {
-			this.testModel.addTreeChangeListener("foo", null);
-		} catch (NullPointerException ex) {
-			exCaught = true;
-		}
-		assertTrue(exCaught);
-	}
-
-	public void testRemoveBogusTreeListener() {
-		boolean exCaught = false;
-		try {
-			this.testModel.removeTreeChangeListener(this);
-		} catch (IllegalArgumentException ex) {
-			exCaught = true;
-		}
-		assertTrue(exCaught);
-
-		this.testModel.addPropertyChangeListener(this);
-		exCaught = false;
-		try {
-			this.testModel.removeTreeChangeListener(this);
-		} catch (IllegalArgumentException ex) {
-			exCaught = true;
-		}
-		assertTrue(exCaught);
-
-		this.testModel.addTreeChangeListener(this);
-		exCaught = false;
-		try {
-			this.testModel.removeTreeChangeListener(new ChangeSupportTests("dummy"));
-		} catch (IllegalArgumentException ex) {
-			exCaught = true;
-		}
-		assertTrue(exCaught);
-
-		exCaught = false;
-		try {
-			this.testModel.removeTreeChangeListener(new TreeChangeAdapter());
-		} catch (IllegalArgumentException ex) {
-			exCaught = true;
-		}
-		assertTrue(exCaught);
-	}
-
-	public void testRemoveBogusTreeListenerName() {
-		boolean exCaught = false;
-		try {
-			this.testModel.removeTreeChangeListener("foo", this);
-		} catch (IllegalArgumentException ex) {
-			exCaught = true;
-		}
-		assertTrue(exCaught);
-
-		this.testModel.addPropertyChangeListener("foo", this);
-		exCaught = false;
-		try {
-			this.testModel.removeTreeChangeListener("foo", this);
-		} catch (IllegalArgumentException ex) {
-			exCaught = true;
-		}
-		assertTrue(exCaught);
-
-		this.testModel.addTreeChangeListener("foo", this);
-		exCaught = false;
-		try {
-			this.testModel.removeTreeChangeListener("foo", new ChangeSupportTests("dummy"));
-		} catch (IllegalArgumentException ex) {
-			exCaught = true;
-		}
-		assertTrue(exCaught);
-
-		exCaught = false;
-		try {
-			this.testModel.removeTreeChangeListener("foo", new TreeChangeAdapter());
-		} catch (IllegalArgumentException ex) {
-			exCaught = true;
-		}
-		assertTrue(exCaught);
-	}
-
-	private void verifyTreeChangeEvent(Object[] path) {
-		assertNotNull(this.treeChangeEvent);
-		assertEquals(this.testModel, this.treeChangeEvent.getSource());
-		assertEquals(TREE_NAME, this.treeChangeEvent.getTreeName());
-		assertTrue(Arrays.equals(path, this.treeChangeEvent.getPath()));
-	}
-
-
-	// ********** convenience method tests **********
-
-	public void testElementsAreEqual() {
-		Collection<String> c1 = new ArrayList<String>();
-		c1.add("foo");
-		c1.add("bar");
-		c1.add("baz");
-		Collection<String> c2 = new ArrayList<String>();
-		c2.add("foo");
-		c2.add("bar");
-		c2.add("baz");
-		assertTrue(this.testModel.testElementsAreEqual(c1.iterator(), c2.iterator()));
-	}
-
-	public void testElementsAreDifferent() {
-		Collection<String> c1 = new ArrayList<String>();
-		c1.add("foo");
-		c1.add("bar");
-		c1.add("baz");
-		Collection<String> c2 = new ArrayList<String>();
-		c2.add("baz");
-		c2.add("bar");
-		c2.add("foo");
-		assertTrue(this.testModel.testElementsAreDifferent(c1.iterator(), c2.iterator()));
-	}
-
-
-	// ********** AbstractModel tests **********
-
-	public void testAbstractModelValuesAreEqual1() {
-		assertTrue(this.testModel.testValuesAreEqual(null, null));
-	}
-
-	public void testAbstractModelValuesAreEqual2() {
-		assertTrue(this.testModel.testValuesAreEqual("foo", "foo"));
-	}
-
-	public void testAbstractModelValuesAreEqual3() {
-		assertFalse(this.testModel.testValuesAreEqual("foo", null));
-	}
-
-	public void testAbstractModelValuesAreEqual4() {
-		assertFalse(this.testModel.testValuesAreEqual(null, "foo"));
-	}
-
-	public void testAbstractModelValuesAreEqual5() {
-		assertFalse(this.testModel.testValuesAreEqual("bar", "foo"));
-	}
-
-	public void testAbstractModelValuesAreDifferent1() {
-		assertFalse(this.testModel.testValuesAreDifferent(null, null));
-	}
-
-	public void testAbstractModelValuesAreDifferent2() {
-		assertFalse(this.testModel.testValuesAreDifferent("foo", "foo"));
-	}
-
-	public void testAbstractModelValuesAreDifferent3() {
-		assertTrue(this.testModel.testValuesAreDifferent("foo", null));
-	}
-
-	public void testAbstractModelValuesAreDifferent4() {
-		assertTrue(this.testModel.testValuesAreDifferent(null, "foo"));
-	}
-
-	public void testAbstractModelValuesAreDifferent5() {
-		assertTrue(this.testModel.testValuesAreDifferent("bar", "foo"));
-	}
-
-	public void testAbstractModelAttributeValueHasChanged1() {
-		assertFalse(this.testModel.testAttributeValueHasChanged(null, null));
-	}
-
-	public void testAbstractModelAttributeValueHasChanged2() {
-		assertFalse(this.testModel.testAttributeValueHasChanged("foo", "foo"));
-	}
-
-	public void testAbstractModelAttributeValueHasChanged3() {
-		assertTrue(this.testModel.testAttributeValueHasChanged("foo", null));
-	}
-
-	public void testAbstractModelAttributeValueHasChanged4() {
-		assertTrue(this.testModel.testAttributeValueHasChanged(null, "foo"));
-	}
-
-	public void testAbstractModelAttributeValueHasChanged5() {
-		assertTrue(this.testModel.testAttributeValueHasChanged("bar", "foo"));
-	}
-
-	public void testAbstractModelAttributeValueHasNotChanged1() {
-		assertTrue(this.testModel.testAttributeValueHasNotChanged(null, null));
-	}
-
-	public void testAbstractModelAttributeValueHasNotChanged2() {
-		assertTrue(this.testModel.testAttributeValueHasNotChanged("foo", "foo"));
-	}
-
-	public void testAbstractModelAttributeValueHasNotChanged3() {
-		assertFalse(this.testModel.testAttributeValueHasNotChanged("foo", null));
-	}
-
-	public void testAbstractModelAttributeValueHasNotChanged4() {
-		assertFalse(this.testModel.testAttributeValueHasNotChanged(null, "foo"));
-	}
-
-	public void testAbstractModelAttributeValueHasNotChanged5() {
-		assertFalse(this.testModel.testAttributeValueHasNotChanged("bar", "foo"));
-	}
-
-	public void testAbstractModelClone() {
-		assertFalse(this.testModel.hasAnyPropertyChangeListeners(PROPERTY_NAME));
-		this.testModel.addPropertyChangeListener(this);
-		assertTrue(this.testModel.hasAnyPropertyChangeListeners(PROPERTY_NAME));
-
-		// verify that the clone does not have any listeners
-		TestModel clone = this.testModel.clone();
-		assertFalse(clone.hasAnyPropertyChangeListeners(PROPERTY_NAME));
-		clone.addPropertyChangeListener(this);
-		assertTrue(clone.hasAnyPropertyChangeListeners(PROPERTY_NAME));
-		// check original
-		assertTrue(this.testModel.hasAnyPropertyChangeListeners(PROPERTY_NAME));
-
-		// now test events fired by original
-		this.propertyChangeEvent = null;
-		this.propertyChangeCalled = false;
-		this.testModel.testFirePropertyChangedObjectObject();
-		this.verifyPropertyChangeEvent(OLD_OBJECT_VALUE, NEW_OBJECT_VALUE);
-		assertTrue(this.propertyChangeCalled);
-
-		// now test events fired by clone
-		this.propertyChangeEvent = null;
-		this.propertyChangeCalled = false;
-		clone.testFirePropertyChangedObjectObject();
-		this.verifyPropertyChangeEvent(clone, OLD_OBJECT_VALUE, NEW_OBJECT_VALUE);
-		assertTrue(this.propertyChangeCalled);
-	}
-
-	public void testAbstractModelToString() {
-		assertTrue(this.testModel.toString().contains('(' + TEST_TO_STRING + ')'));
-	}
-
-
-	// ********** listener implementations **********
-
-	public void stateChanged(StateChangeEvent e) {
-		this.stateChangedCalled = true;
-		this.stateChangeEvent = e;
-	}
-
-	public void propertyChanged(PropertyChangeEvent e) {
-		this.propertyChangeCalled = true;
-		this.propertyChangeEvent = e;
-	}
-
-	public void itemsAdded(CollectionChangeEvent e) {
-		this.itemsAddedCollectionCalled = true;
-		this.collectionChangeEvent = e;
-	}
-	public void itemsRemoved(CollectionChangeEvent e) {
-		this.itemsRemovedCollectionCalled = true;
-		this.collectionChangeEvent = e;
-	}
-	public void collectionCleared(CollectionChangeEvent e) {
-		this.collectionClearedCalled = true;
-		this.collectionChangeEvent = e;
-	}
-	public void collectionChanged(CollectionChangeEvent e) {
-		this.collectionChangedCalled = true;
-		this.collectionChangeEvent = e;
-	}
-
-	public void itemsAdded(ListChangeEvent e) {
-		this.itemsAddedListCalled = true;
-		this.listChangeEvent = e;
-	}
-	public void itemsRemoved(ListChangeEvent e) {
-		this.itemsRemovedListCalled = true;
-		this.listChangeEvent = e;
-	}
-	public void itemsReplaced(ListChangeEvent e) {
-		this.itemsReplacedListCalled = true;
-		this.listChangeEvent = e;
-	}
-	public void itemsMoved(ListChangeEvent e) {
-		this.itemsMovedListCalled = true;
-		this.listChangeEvent = e;
-	}
-	public void listCleared(ListChangeEvent e) {
-		this.listClearedCalled = true;
-		this.listChangeEvent = e;
-	}
-	public void listChanged(ListChangeEvent e) {
-		this.listChangedCalled = true;
-		this.listChangeEvent = e;
-	}
-
-	public void nodeAdded(TreeChangeEvent e) {
-		this.nodeAddedCalled = true;
-		this.treeChangeEvent = e;
-	}
-	public void nodeRemoved(TreeChangeEvent e) {
-		this.nodeRemovedCalled = true;
-		this.treeChangeEvent = e;
-	}
-	public void treeCleared(TreeChangeEvent e) {
-		this.treeClearedCalled = true;
-		this.treeChangeEvent = e;
-	}
-	public void treeChanged(TreeChangeEvent e) {
-		this.treeChangedCalled = true;
-		this.treeChangeEvent = e;
-	}
-
-
-	// ********** inner class **********
-
-	private static class TestModel extends AbstractModel implements Cloneable {
-		TestModel() {
-			super();
-		}
-
-		// ***** state
-		public void testFireStateChange() {
-			this.fireStateChanged();
-		}
-
-		// ***** property
-		public void testFirePropertyChangedEvent() {
-			this.firePropertyChanged(new PropertyChangeEvent(this, PROPERTY_NAME, OLD_OBJECT_VALUE, NEW_OBJECT_VALUE));
-		}
-
-		public void testFirePropertyChangedEventNoChange() {
-			this.firePropertyChanged(new PropertyChangeEvent(this, PROPERTY_NAME, OLD_OBJECT_VALUE, OLD_OBJECT_VALUE));
-		}
-
-		public void testFirePropertyChangedObjectObject() {
-			this.firePropertyChanged(PROPERTY_NAME, OLD_OBJECT_VALUE, NEW_OBJECT_VALUE);
-		}
-
-		public void testFirePropertyChangedObjectObjectNoChange() {
-			this.firePropertyChanged(PROPERTY_NAME, OLD_OBJECT_VALUE, OLD_OBJECT_VALUE);
-		}
-
-		public void testFirePropertyChangedObject() {
-			this.firePropertyChanged(PROPERTY_NAME, NEW_OBJECT_VALUE);
-		}
-
-		public void testFirePropertyChangedObjectNoChange() {
-			this.firePropertyChanged(PROPERTY_NAME, null);
-		}
-
-		public void testFirePropertyChangedIntInt() {
-			this.firePropertyChanged(PROPERTY_NAME, OLD_INT_VALUE.intValue(), NEW_INT_VALUE.intValue());
-		}
-
-		public void testFirePropertyChangedIntIntNoChange() {
-			this.firePropertyChanged(PROPERTY_NAME, OLD_INT_VALUE.intValue(), OLD_INT_VALUE.intValue());
-		}
-
-		public void testFirePropertyChangedBooleanBoolean() {
-			this.firePropertyChanged(PROPERTY_NAME, OLD_BOOLEAN_VALUE.booleanValue(), NEW_BOOLEAN_VALUE.booleanValue());
-		}
-
-		public void testFirePropertyChangedBooleanBooleanNoChange() {
-			this.firePropertyChanged(PROPERTY_NAME, OLD_BOOLEAN_VALUE.booleanValue(), OLD_BOOLEAN_VALUE.booleanValue());
-		}
-
-		// ***** collection
-		public void testFireItemsAddedCollectionEvent() {
-			this.fireItemsAdded(new CollectionChangeEvent(this, COLLECTION_NAME, Collections.singleton(ADDED_OBJECT_VALUE)));
-		}
-
-		public void testFireItemsAddedCollectionEventNoChange() {
-			this.fireItemsAdded(new CollectionChangeEvent(this, COLLECTION_NAME, Collections.emptySet()));
-		}
-
-		public void testFireItemsAddedCollection() {
-			this.fireItemsAdded(COLLECTION_NAME, Collections.singleton(ADDED_OBJECT_VALUE));
-		}
-
-		public void testFireItemsAddedCollectionNoChange() {
-			this.fireItemsAdded(COLLECTION_NAME, Collections.emptySet());
-		}
-
-		public void testFireItemAddedCollection() {
-			this.fireItemAdded(COLLECTION_NAME, ADDED_OBJECT_VALUE);
-		}
-
-		public void testFireItemsRemovedCollectionEvent() {
-			this.fireItemsRemoved(new CollectionChangeEvent(this, COLLECTION_NAME, Collections.singleton(REMOVED_OBJECT_VALUE)));
-		}
-
-		public void testFireItemsRemovedCollectionEventNoChange() {
-			this.fireItemsRemoved(new CollectionChangeEvent(this, COLLECTION_NAME, Collections.emptySet()));
-		}
-
-		public void testFireItemsRemovedCollection() {
-			this.fireItemsRemoved(COLLECTION_NAME, Collections.singleton(REMOVED_OBJECT_VALUE));
-		}
-
-		public void testFireItemsRemovedCollectionNoChange() {
-			this.fireItemsRemoved(COLLECTION_NAME, Collections.emptySet());
-		}
-
-		public void testFireItemRemovedCollection() {
-			this.fireItemRemoved(COLLECTION_NAME, REMOVED_OBJECT_VALUE);
-		}
-
-		public void testFireCollectionCleared() {
-			this.fireCollectionCleared(COLLECTION_NAME);
-		}
-
-		public void testFireCollectionChangedEvent() {
-			this.fireCollectionChanged(new CollectionChangeEvent(this, COLLECTION_NAME));
-		}
-
-		public void testFireCollectionChanged() {
-			this.fireCollectionChanged(COLLECTION_NAME);
-		}
-
-		public boolean testAddItemToCollection() {
-			return this.addItemToCollection(ADDED_OBJECT_VALUE, new ArrayList<Object>(), COLLECTION_NAME);
-		}
-
-		public boolean testAddItemToCollectionNoChange() {
-			Collection<Object> collection = new HashSet<Object>();
-			collection.add(ADDED_OBJECT_VALUE);
-			return this.addItemToCollection(ADDED_OBJECT_VALUE, collection, COLLECTION_NAME);
-		}
-
-		public boolean testAddItemsToCollection() {
-			return this.addItemsToCollection(Collections.singleton(ADDED_OBJECT_VALUE), new ArrayList<Object>(), COLLECTION_NAME);
-		}
-
-		public boolean testAddItemsToCollectionNoChange() {
-			Collection<Object> collection = new HashSet<Object>();
-			collection.add(ADDED_OBJECT_VALUE);
-			return this.addItemsToCollection(Collections.singleton(ADDED_OBJECT_VALUE), collection, COLLECTION_NAME);
-		}
-
-		public boolean testAddItemsToCollectionMixed() {
-			Collection<Object> collection = new HashSet<Object>();
-			collection.add(ADDED_OBJECT_VALUE);
-			return this.addItemsToCollection(new Object[] {ADDED_OBJECT_VALUE, ADDED_OBJECT_VALUE_2}, collection, COLLECTION_NAME);
-		}
-
-		public boolean testRemoveItemFromCollection() {
-			Collection<Object> collection = new HashSet<Object>();
-			collection.add(REMOVED_OBJECT_VALUE);
-			return this.removeItemFromCollection(REMOVED_OBJECT_VALUE, collection, COLLECTION_NAME);
-		}
-
-		public boolean testRemoveItemFromCollectionNoChange() {
-			Collection<Object> collection = new HashSet<Object>();
-			collection.add(REMOVED_OBJECT_VALUE);
-			return this.removeItemFromCollection("foo", collection, COLLECTION_NAME);
-		}
-
-		public boolean testRemoveItemsFromCollection() {
-			Collection<Object> collection = new HashSet<Object>();
-			collection.add(REMOVED_OBJECT_VALUE);
-			collection.add("foo");
-			collection.add("bar");
-			return this.removeItemsFromCollection(new Object[] {"foo", "bar", REMOVED_OBJECT_VALUE}, collection, COLLECTION_NAME);
-		}
-
-		public boolean testRemoveItemsFromCollectionNoChange1() {
-			Collection<Object> collection = new HashSet<Object>();
-			collection.add(REMOVED_OBJECT_VALUE);
-			return this.removeItemsFromCollection(Collections.emptySet(), collection, COLLECTION_NAME);
-		}
-
-		public boolean testRemoveItemsFromCollectionNoChange2() {
-			Collection<Object> collection = new HashSet<Object>();
-			return this.removeItemsFromCollection(Collections.singleton("foo"), collection, COLLECTION_NAME);
-		}
-
-		public boolean testRemoveItemsFromCollectionNoChange3() {
-			Collection<Object> collection = new HashSet<Object>();
-			collection.add(REMOVED_OBJECT_VALUE);
-			return this.removeItemsFromCollection(Collections.singleton("foo"), collection, COLLECTION_NAME);
-		}
-
-		public boolean testRetainItemsInCollection1() {
-			Collection<Object> collection = new HashSet<Object>();
-			collection.add(REMOVED_OBJECT_VALUE);
-			collection.add("foo");
-			collection.add("bar");
-			return this.retainItemsInCollection(new Object[] {"foo", "bar"}, collection, COLLECTION_NAME);
-		}
-
-		public boolean testRetainItemsInCollection2() {
-			Collection<Object> collection = new HashSet<Object>();
-			collection.add(REMOVED_OBJECT_VALUE);
-			collection.add("foo");
-			collection.add("bar");
-			return this.retainItemsInCollection(Collections.emptySet(), collection, COLLECTION_NAME);
-		}
-
-		public boolean testRetainItemsInCollectionNoChange1() {
-			Collection<Object> collection = new HashSet<Object>();
-			return this.retainItemsInCollection(new Object[] {"foo", "bar"}, collection, COLLECTION_NAME);
-		}
-
-		public boolean testRetainItemsInCollectionNoChange2() {
-			Collection<Object> collection = new HashSet<Object>();
-			collection.add(REMOVED_OBJECT_VALUE);
-			collection.add("foo");
-			collection.add("bar");
-			return this.retainItemsInCollection(new Object[] {"foo", "bar", REMOVED_OBJECT_VALUE}, collection, COLLECTION_NAME);
-		}
-
-		public boolean testClearCollection() {
-			Collection<Object> collection = new HashSet<Object>();
-			collection.add(REMOVED_OBJECT_VALUE);
-			collection.add("foo");
-			collection.add("bar");
-			return this.clearCollection(collection, COLLECTION_NAME);
-		}
-
-		public boolean testClearCollectionNoChange() {
-			Collection<Object> collection = new HashSet<Object>();
-			return this.clearCollection(collection, COLLECTION_NAME);
-		}
-
-		public boolean testSynchronizeCollection1() {
-			Collection<Object> collection = new HashSet<Object>();
-			collection.add("foo");
-			collection.add("bar");
-			collection.add("baz");
-			Collection<Object> newCollection = new HashSet<Object>();
-			newCollection.add("joo");
-			newCollection.add("jar");
-			newCollection.add("baz");
-			boolean result = this.synchronizeCollection(newCollection, collection, COLLECTION_NAME);
-			assertEquals(newCollection, collection);
-			return result;
-		}
-
-		public boolean testSynchronizeCollection2() {
-			Collection<Object> collection = new HashSet<Object>();
-			collection.add("foo");
-			collection.add("bar");
-			collection.add("baz");
-			Collection<Object> newCollection = new HashSet<Object>();
-			boolean result = this.synchronizeCollection(newCollection, collection, COLLECTION_NAME);
-			assertEquals(newCollection, collection);
-			return result;
-		}
-
-		public boolean testSynchronizeCollection3() {
-			Collection<Object> collection = new HashSet<Object>();
-			Collection<Object> newCollection = new HashSet<Object>();
-			newCollection.add("joo");
-			newCollection.add("jar");
-			newCollection.add("baz");
-			boolean result = this.synchronizeCollection(newCollection, collection, COLLECTION_NAME);
-			assertEquals(newCollection, collection);
-			return result;
-		}
-
-		// ***** list
-		public void testFireItemsAddedListEvent() {
-			this.fireItemsAdded(new ListChangeEvent(this, LIST_NAME, ADD_INDEX, Collections.singletonList(ADDED_OBJECT_VALUE)));
-		}
-
-		public void testFireItemsAddedListEventNoChange() {
-			this.fireItemsAdded(new ListChangeEvent(this, LIST_NAME, ADD_INDEX, Collections.emptyList()));
-		}
-
-		public void testFireItemsAddedList() {
-			this.fireItemsAdded(LIST_NAME, ADD_INDEX, Collections.singletonList(ADDED_OBJECT_VALUE));
-		}
-
-		public void testFireItemsAddedListNoChange() {
-			this.fireItemsAdded(LIST_NAME, ADD_INDEX, Collections.emptyList());
-		}
-
-		public void testFireItemAddedList() {
-			this.fireItemAdded(LIST_NAME, ADD_INDEX, ADDED_OBJECT_VALUE);
-		}
-
-		public void testFireItemsRemovedListEvent() {
-			this.fireItemsRemoved(new ListChangeEvent(this, LIST_NAME, REMOVE_INDEX, Collections.singletonList(REMOVED_OBJECT_VALUE)));
-		}
-
-		public void testFireItemsRemovedListEventNoChange() {
-			this.fireItemsRemoved(new ListChangeEvent(this, LIST_NAME, REMOVE_INDEX, Collections.emptyList()));
-		}
-
-		public void testFireItemsRemovedList() {
-			this.fireItemsRemoved(LIST_NAME, REMOVE_INDEX, Collections.singletonList(REMOVED_OBJECT_VALUE));
-		}
-
-		public void testFireItemsRemovedListNoChange() {
-			this.fireItemsRemoved(LIST_NAME, REMOVE_INDEX, Collections.emptyList());
-		}
-
-		public void testFireItemRemovedList() {
-			this.fireItemRemoved(LIST_NAME, REMOVE_INDEX, REMOVED_OBJECT_VALUE);
-		}
-
-		public void testFireItemsReplacedListEvent() {
-			this.fireItemsReplaced(new ListChangeEvent(this, LIST_NAME, REPLACE_INDEX, Collections.singletonList(ADDED_OBJECT_VALUE), Collections.singletonList(REMOVED_OBJECT_VALUE)));
-		}
-
-		public void testFireItemsReplacedListEventNoChange() {
-			this.fireItemsReplaced(new ListChangeEvent(this, LIST_NAME, REPLACE_INDEX, Collections.emptyList(), Collections.emptyList()));
-		}
-
-		public void testFireItemsReplacedList() {
-			this.fireItemsReplaced(LIST_NAME, REPLACE_INDEX, Collections.singletonList(ADDED_OBJECT_VALUE), Collections.singletonList(REMOVED_OBJECT_VALUE));
-		}
-
-		public void testFireItemsReplacedListNoChange() {
-			this.fireItemsReplaced(LIST_NAME, REPLACE_INDEX, Collections.emptyList(), Collections.emptyList());
-		}
-
-		public void testFireItemReplacedList() {
-			this.fireItemReplaced(LIST_NAME, REPLACE_INDEX, ADDED_OBJECT_VALUE, REMOVED_OBJECT_VALUE);
-		}
-
-		public void testFireItemsMovedListEvent() {
-			this.fireItemsMoved(new ListChangeEvent(this, LIST_NAME, TARGET_INDEX, SOURCE_INDEX, 1));
-		}
-
-		public void testFireItemsMovedListEventNoChange() {
-			this.fireItemsMoved(new ListChangeEvent(this, LIST_NAME, SOURCE_INDEX, SOURCE_INDEX, 1));
-		}
-
-		public void testFireItemsMovedList() {
-			this.fireItemsMoved(LIST_NAME, TARGET_INDEX, SOURCE_INDEX, 1);
-		}
-
-		public void testFireItemsMovedListNoChange() {
-			this.fireItemsMoved(LIST_NAME, SOURCE_INDEX, SOURCE_INDEX, 1);
-		}
-
-		public void testFireItemMovedList() {
-			this.fireItemMoved(LIST_NAME, TARGET_INDEX, SOURCE_INDEX);
-		}
-
-		public void testFireListClearedEvent() {
-			this.fireListCleared(new ListChangeEvent(this, LIST_NAME));
-		}
-
-		public void testFireListCleared() {
-			this.fireListCleared(LIST_NAME);
-		}
-
-		public void testFireListChangedEvent() {
-			this.fireListChanged(new ListChangeEvent(this, LIST_NAME));
-		}
-
-		public void testFireListChanged() {
-			this.fireListChanged(LIST_NAME);
-		}
-
-		public void testAddItemToListIndex() {
-			List<String> list = new ArrayList<String>();
-			list.add("foo");
-			list.add("bar");
-			list.add("baz");
-			this.addItemToList(2, "joo", list, LIST_NAME);
-		}
-
-		public void testAddItemToList() {
-			List<String> list = new ArrayList<String>();
-			list.add("foo");
-			list.add("bar");
-			list.add("baz");
-			this.addItemToList("joo", list, LIST_NAME);
-		}
-
-		public void testAddItemsToListIndex() {
-			List<String> list = new ArrayList<String>();
-			list.add("foo");
-			list.add("bar");
-			list.add("baz");
-			this.addItemsToList(2, Collections.singletonList("joo"), list, LIST_NAME);
-		}
-
-		public void testAddItemsToListIndexNoChange() {
-			List<String> list = new ArrayList<String>();
-			list.add("foo");
-			list.add("bar");
-			list.add("baz");
-			this.addItemsToList(2, Collections.<String>emptyList(), list, LIST_NAME);
-		}
-
-		public void testAddItemsToList() {
-			List<String> list = new ArrayList<String>();
-			list.add("foo");
-			list.add("bar");
-			list.add("baz");
-			this.addItemsToList(Collections.singletonList("joo"), list, LIST_NAME);
-		}
-
-		public void testAddItemsToListNoChange() {
-			List<String> list = new ArrayList<String>();
-			list.add("foo");
-			list.add("bar");
-			list.add("baz");
-			this.addItemsToList(Collections.<String>emptyList(), list, LIST_NAME);
-		}
-
-		// ***** tree
-		public void testFireNodeAddedTreeEvent() {
-			this.fireNodeAdded(new TreeChangeEvent(this, TREE_NAME, OBJECT_ARRAY_PATH));
-		}
-
-		public void testFireNodeAddedTree() {
-			this.fireNodeAdded(TREE_NAME, OBJECT_ARRAY_PATH);
-		}
-
-		public void testFireNodeRemovedTreeEvent() {
-			this.fireNodeRemoved(new TreeChangeEvent(this, TREE_NAME, OBJECT_ARRAY_PATH));
-		}
-
-		public void testFireNodeRemovedTree() {
-			this.fireNodeRemoved(TREE_NAME, OBJECT_ARRAY_PATH);
-		}
-
-		public void testFireTreeClearedEvent() {
-			this.fireTreeCleared(new TreeChangeEvent(this, TREE_NAME));
-		}
-
-		public void testFireTreeCleared() {
-			this.fireTreeCleared(TREE_NAME);
-		}
-
-		public void testFireTreeChangedEvent() {
-			this.fireTreeChanged(new TreeChangeEvent(this, TREE_NAME, OBJECT_ARRAY_PATH));
-		}
-
-		public void testFireTreeChanged() {
-			this.fireTreeChanged(TREE_NAME, OBJECT_ARRAY_PATH);
-		}
-
-		public boolean testAttributeValueHasChanged(Object value1, Object value2) {
-			return this.attributeValueHasChanged(value1, value2);
-		}
-
-		public boolean testAttributeValueHasNotChanged(Object value1, Object value2) {
-			return this.attributeValueHasNotChanged(value1, value2);
-		}
-
-		// ***** misc
-		@Override
-		public TestModel clone() {
-			try {
-				return (TestModel) super.clone();
-			} catch (CloneNotSupportedException ex) {
-				throw new InternalError();
-			}
-		}
-
-		public boolean testValuesAreDifferent(Object value1, Object value2) {
-			return this.valuesAreDifferent(value1, value2);
-		}
-
-		public boolean testValuesAreEqual(Object value1, Object value2) {
-			return this.valuesAreEqual(value1, value2);
-		}
-
-		public boolean testElementsAreDifferent(Iterator<?> iterator1, Iterator<?> iterator2) {
-			return this.getChangeSupport().elementsAreDifferent(iterator1, iterator2);
-		}
-
-		public boolean testElementsAreEqual(Iterator<?> iterator1, Iterator<?> iterator2) {
-			return this.getChangeSupport().elementsAreEqual(iterator1, iterator2);
-		}
-
-		@Override
-		public void toString(StringBuilder sb) {
-			sb.append(TEST_TO_STRING);
-		}
-
-	}
-
-
-	// ********** serialization test **********
-	//TODO - This test doesn't pass in the Eclipse build environment (Linux) for some reason
-//	public void testSerialization() throws java.io.IOException, ClassNotFoundException {
-//		LocalModel model1 = new LocalModel();
-//		Foo foo1 = new Foo();
-//		Bar bar1 = new Bar();
-//		Joo joo1 = new Joo();
-//		Jar jar1 = new Jar();
-//		model1.addStateChangeListener(foo1);
-//		model1.addStateChangeListener(bar1);
-//		model1.addListChangeListener(joo1);
-//		model1.addListChangeListener(jar1);
-//
-//		ChangeListener[] listeners1 = this.listeners(model1, StateChangeListener.class);
-//		assertEquals(2, listeners1.length);
-//		// the order of these could change...
-//		assertEquals(Foo.class, listeners1[0].getClass());
-//		assertEquals(Bar.class, listeners1[1].getClass());
-//
-//		listeners1 = this.listeners(model1, ListChangeListener.class);
-//		assertEquals(2, listeners1.length);
-//		// the order of these could change...
-//		assertEquals(Joo.class, listeners1[0].getClass());
-//		assertEquals(Jar.class, listeners1[1].getClass());
-//
-//		LocalModel model2 = TestTools.serialize(model1);
-//
-//		ChangeListener[] listeners2 = this.listeners(model2, StateChangeListener.class);
-//		assertEquals(1, listeners2.length);
-//		assertEquals(Foo.class, listeners2[0].getClass());
-//
-//		listeners2 = this.listeners(model2, ListChangeListener.class);
-//		assertEquals(1, listeners2.length);
-//		assertEquals(Joo.class, listeners2[0].getClass());
-//	}
-
-	private ChangeListener[] listeners(LocalModel model, Class<? extends ChangeListener> listenerClass) {
-		ChangeSupport changeSupport = (ChangeSupport) ClassTools.fieldValue(model, "changeSupport");
-		return (ChangeListener[]) ClassTools.executeMethod(changeSupport, "getListeners", Class.class, listenerClass);
-	}
-
-	private static class LocalModel extends AbstractModel {
-		LocalModel() {
-			super();
-		}
-	}
-
-	private static class Foo implements Serializable, StateChangeListener {
-		Foo() {
-			super();
-		}
-		public void stateChanged(StateChangeEvent event) {
-			// do nothing
-		}
-	}
-
-	private static class Bar implements StateChangeListener {
-		Bar() {
-			super();
-		}
-		public void stateChanged(StateChangeEvent event) {
-			// do nothing
-		}
-	}
-
-	private static class Joo extends ListChangeAdapter implements Serializable {
-//		private static final ObjectStreamField[] serialPersistentFields = {new ObjectStreamField("changeSupport", ChangeSupport.class)};
-		Joo() {
-			super();
-		}
-	}
-
-	private static class Jar extends ListChangeAdapter {
-		Jar() {
-			super();
-		}
-	}
-
-
-	// ********** bug(?) test **********
-
-	private static final String ISE_MESSAGE = "this object is no longer listening to localA";
-
-	/**
-	 * Test the following situation:
-	 * 	- both B and C are listening to A
-	 * 	- C is also listening to B
-	 * 	- when B receives an event from A, it will fire an event to C
-	 * 	- when C receives an event from B, it will STOP listening to A
-	 * 	- the event from B to C may be preceded or followed (depending on
-	 * 		the hash positions of listeners) by an event from A to C:
-	 * 		- if the A to C event comes first, no problem
-	 * 		- but if the A to B event comes first, the A to C event should NOT happen
-	 */
-	public void testIndirectRemoveStateListener() {
-		this.verifyIndirectRemoveListener(
-			new NotifyCommand() {
-				public void notifyListeners(LocalA localA) {
-					localA.notifyStateListeners();
-				}
-			}
-		);
-	}
-
-	public void testIndirectRemovePropertyListener() {
-		this.verifyIndirectRemoveListener(
-			new NotifyCommand() {
-				public void notifyListeners(LocalA localA) {
-					localA.notifyPropertyListeners();
-				}
-			}
-		);
-	}
-
-	public void testIndirectRemoveCollectionListener() {
-		this.verifyIndirectRemoveListener(
-			new NotifyCommand() {
-				public void notifyListeners(LocalA localA) {
-					localA.notifyCollectionListeners();
-				}
-			}
-		);
-	}
-
-	public void testIndirectRemoveListListener() {
-		this.verifyIndirectRemoveListener(
-			new NotifyCommand() {
-				public void notifyListeners(LocalA localA) {
-					localA.notifyListListeners();
-				}
-			}
-		);
-	}
-
-	public void testIndirectRemoveTreeListener() {
-		this.verifyIndirectRemoveListener(
-			new NotifyCommand() {
-				public void notifyListeners(LocalA localA) {
-					localA.notifyTreeListeners();
-				}
-			}
-		);
-	}
-
-	public void verifyIndirectRemoveListener(NotifyCommand command) {
-		LocalA localA = new LocalA();
-		LocalB localB = new LocalB(localA);
-
-		// build a bunch of LocalCs so at least one of them is notified AFTER the LocalB;
-		// using 1000 seemed to fail very consistently before ChangeSupport was fixed
-		LocalC[] localCs = new LocalC[1000];
-		for (int i = localCs.length; i-- > 0; ) {
-			localCs[i] = new LocalC(localA, localB);
-		}
-
-		boolean exCaught = false;
-		try {
-			command.notifyListeners(localA);
-		} catch (IllegalStateException ex) {
-			if (ex.getMessage() == ISE_MESSAGE) {
-				exCaught = true;
-			} else {
-				throw ex;
-			}
-		}
-		assertFalse(exCaught);
-
-		for (int i = localCs.length; i-- > 0; ) {
-			assertFalse(localCs[i].isListeningToLocalA());
-		}
-	}
-
-	private interface NotifyCommand {
-		void notifyListeners(LocalA localA);
-	}
-
-	/**
-	 * This object simply fires a state change event. Both LocalB and LocalC
-	 * will be listeners.
-	 */
-	private static class LocalA extends AbstractModel {
-		LocalA() {
-			super();
-		}
-		void notifyStateListeners() {
-			this.fireStateChanged();
-		}
-		void notifyPropertyListeners() {
-			this.firePropertyChanged("foo", 1, 2);
-		}
-		void notifyCollectionListeners() {
-			this.fireCollectionChanged("foo");
-		}
-		void notifyListListeners() {
-			this.fireListChanged("foo");
-		}
-		void notifyTreeListeners() {
-			this.fireTreeChanged("foo");
-		}
-	}
-
-	/**
-	 * This object will fire state change events whenever it receives
-	 * a state change event from localA.
-	 */
-	private static class LocalB
-		extends AbstractModel
-		implements StateChangeListener, PropertyChangeListener, CollectionChangeListener, ListChangeListener, TreeChangeListener
-	{
-		LocalB(LocalA localA) {
-			super();
-			localA.addStateChangeListener(this);
-			localA.addPropertyChangeListener(this);
-			localA.addCollectionChangeListener(this);
-			localA.addListChangeListener(this);
-			localA.addTreeChangeListener(this);
-		}
-
-		public void stateChanged(StateChangeEvent e) {
-			this.fireStateChanged();
-		}
-
-		public void propertyChanged(PropertyChangeEvent evt) {
-			this.firePropertyChanged("bar", 1, 2);
-		}
-
-		public void collectionChanged(CollectionChangeEvent e) {
-			this.fireCollectionChanged("bar");
-		}
-		public void collectionCleared(CollectionChangeEvent e) {/*ignore*/}
-		public void itemsAdded(CollectionChangeEvent e) {/*ignore*/}
-		public void itemsRemoved(CollectionChangeEvent e) {/*ignore*/}
-
-		public void listChanged(ListChangeEvent e) {
-			this.fireListChanged("bar");
-		}
-		public void listCleared(ListChangeEvent e) {/*ignore*/}
-		public void itemsAdded(ListChangeEvent e) {/*ignore*/}
-		public void itemsRemoved(ListChangeEvent e) {/*ignore*/}
-		public void itemsReplaced(ListChangeEvent e) {/*ignore*/}
-		public void itemsMoved(ListChangeEvent e) {/*ignore*/}
-
-		public void treeChanged(TreeChangeEvent e) {
-			this.fireTreeChanged("bar");
-		}
-		public void treeCleared(TreeChangeEvent e) {/*ignore*/}
-		public void nodeAdded(TreeChangeEvent e) {/*ignore*/}
-		public void nodeRemoved(TreeChangeEvent e) {/*ignore*/}
-
-	}
-
-	/**
-	 * This object will listen to two other objects, localA and localB.
-	 * If this object receives notification from localB, it will stop listening to
-	 * localA. If this object receives notification from localA, it will check to
-	 * see whether it still listening to localA. If this object is no longer
-	 * listening to localA, it will complain about receiving the event and
-	 * throw an exception.
-	 */
-	private static class LocalC
-		extends AbstractModel
-		implements StateChangeListener, PropertyChangeListener, CollectionChangeListener, ListChangeListener, TreeChangeListener
-	{
-		private LocalA localA;
-		private LocalB localB;
-		private boolean listeningToLocalA;
-
-		LocalC(LocalA localA, LocalB localB) {
-			super();
-			this.localA = localA;
-			this.localB = localB;
-
-			localA.addStateChangeListener(this);
-			localA.addPropertyChangeListener(this);
-			localA.addCollectionChangeListener(this);
-			localA.addListChangeListener(this);
-			localA.addTreeChangeListener(this);
-			this.listeningToLocalA = true;
-
-			localB.addStateChangeListener(this);
-			localB.addPropertyChangeListener(this);
-			localB.addCollectionChangeListener(this);
-			localB.addListChangeListener(this);
-			localB.addTreeChangeListener(this);
-		}
-		boolean isListeningToLocalA() {
-			return this.listeningToLocalA;
-		}
-
-		public void stateChanged(StateChangeEvent e) {
-			Object source = e.getSource();
-			if (source == this.localA) {
-				if ( ! this.listeningToLocalA) {
-					throw new IllegalStateException(ISE_MESSAGE);
-				}
-			} else if (source == this.localB) {
-				this.localA.removeStateChangeListener(this);
-				this.listeningToLocalA = false;
-			} else {
-				throw new IllegalStateException("bogus event source: " + source);
-			}
-		}
-
-		public void propertyChanged(PropertyChangeEvent e) {
-			Object source = e.getSource();
-			if (source == this.localA) {
-				if ( ! this.listeningToLocalA) {
-					throw new IllegalStateException(ISE_MESSAGE);
-				}
-			} else if (source == this.localB) {
-				this.localA.removePropertyChangeListener(this);
-				this.listeningToLocalA = false;
-			} else {
-				throw new IllegalStateException("bogus event source: " + source);
-			}
-		}
-
-		public void collectionChanged(CollectionChangeEvent e) {
-			Object source = e.getSource();
-			if (source == this.localA) {
-				if ( ! this.listeningToLocalA) {
-					throw new IllegalStateException(ISE_MESSAGE);
-				}
-			} else if (source == this.localB) {
-				this.localA.removeCollectionChangeListener(this);
-				this.listeningToLocalA = false;
-			} else {
-				throw new IllegalStateException("bogus event source: " + source);
-			}
-		}
-		public void collectionCleared(CollectionChangeEvent e) {/*ignore*/}
-		public void itemsAdded(CollectionChangeEvent e) {/*ignore*/}
-		public void itemsRemoved(CollectionChangeEvent e) {/*ignore*/}
-
-		public void listChanged(ListChangeEvent e) {
-			Object source = e.getSource();
-			if (source == this.localA) {
-				if ( ! this.listeningToLocalA) {
-					throw new IllegalStateException(ISE_MESSAGE);
-				}
-			} else if (source == this.localB) {
-				this.localA.removeListChangeListener(this);
-				this.listeningToLocalA = false;
-			} else {
-				throw new IllegalStateException("bogus event source: " + source);
-			}
-		}
-		public void listCleared(ListChangeEvent e) {/*ignore*/}
-		public void itemsAdded(ListChangeEvent e) {/*ignore*/}
-		public void itemsRemoved(ListChangeEvent e) {/*ignore*/}
-		public void itemsReplaced(ListChangeEvent e) {/*ignore*/}
-		public void itemsMoved(ListChangeEvent e) {/*ignore*/}
-
-		public void treeChanged(TreeChangeEvent e) {
-			Object source = e.getSource();
-			if (source == this.localA) {
-				if ( ! this.listeningToLocalA) {
-					throw new IllegalStateException(ISE_MESSAGE);
-				}
-			} else if (source == this.localB) {
-				this.localA.removeTreeChangeListener(this);
-				this.listeningToLocalA = false;
-			} else {
-				throw new IllegalStateException("bogus event source: " + source);
-			}
-		}
-		public void treeCleared(TreeChangeEvent e) {/*ignore*/}
-		public void nodeAdded(TreeChangeEvent e) {/*ignore*/}
-		public void nodeRemoved(TreeChangeEvent e) {/*ignore*/}
-
-	}
-
-}
diff --git a/jpa/tests/org.eclipse.jpt.utility.tests/src/org/eclipse/jpt/utility/tests/internal/model/JptUtilityModelTests.java b/jpa/tests/org.eclipse.jpt.utility.tests/src/org/eclipse/jpt/utility/tests/internal/model/JptUtilityModelTests.java
deleted file mode 100644
index 47363ce..0000000
--- a/jpa/tests/org.eclipse.jpt.utility.tests/src/org/eclipse/jpt/utility/tests/internal/model/JptUtilityModelTests.java
+++ /dev/null
@@ -1,36 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.utility.tests.internal.model;
-
-import junit.framework.Test;
-import junit.framework.TestSuite;
-import org.eclipse.jpt.utility.tests.internal.model.listener.JptUtilityModelListenerTests;
-import org.eclipse.jpt.utility.tests.internal.model.value.JptUtilityModelValueTests;
-
-public class JptUtilityModelTests {
-
-	public static Test suite() {
-		TestSuite suite = new TestSuite(JptUtilityModelTests.class.getPackage().getName());
-
-		suite.addTest(JptUtilityModelListenerTests.suite());
-		suite.addTest(JptUtilityModelValueTests.suite());
-
-		suite.addTestSuite(ChangeSupportTests.class);
-		suite.addTestSuite(NewEventTests.class);
-
-		return suite;
-	}
-
-	private JptUtilityModelTests() {
-		super();
-		throw new UnsupportedOperationException();
-	}
-
-}
diff --git a/jpa/tests/org.eclipse.jpt.utility.tests/src/org/eclipse/jpt/utility/tests/internal/model/NewEventTests.java b/jpa/tests/org.eclipse.jpt.utility.tests/src/org/eclipse/jpt/utility/tests/internal/model/NewEventTests.java
deleted file mode 100644
index d30d764..0000000
--- a/jpa/tests/org.eclipse.jpt.utility.tests/src/org/eclipse/jpt/utility/tests/internal/model/NewEventTests.java
+++ /dev/null
@@ -1,187 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.utility.tests.internal.model;
-
-import junit.framework.TestCase;
-import org.eclipse.jpt.utility.internal.CollectionTools;
-import org.eclipse.jpt.utility.internal.model.AbstractModel;
-import org.eclipse.jpt.utility.internal.model.ChangeSupport;
-import org.eclipse.jpt.utility.model.Model;
-import org.eclipse.jpt.utility.model.event.ChangeEvent;
-import org.eclipse.jpt.utility.model.listener.ChangeListener;
-import org.eclipse.jpt.utility.tests.internal.TestTools;
-
-/**
- * test what it takes to add a new type of event to
- * model and change support
- */
-public class NewEventTests extends TestCase {
-	private Foo foo;
-
-	public NewEventTests(String name) {
-		super(name);
-	}
-	
-	@Override
-	protected void setUp() throws Exception {
-		super.setUp();
-		this.foo = new Foo();
-	}
-
-	@Override
-	protected void tearDown() throws Exception {
-		TestTools.clear(this);
-		super.tearDown();
-	}
-
-	public void testHasNoFooChangeListeners() {
-		assertTrue(this.foo.hasNoFooChangeListeners());
-		LocalListener listener = new LocalListener();
-		this.foo.addFooChangeListener(listener);
-		assertFalse(this.foo.hasNoFooChangeListeners());
-		this.foo.removeFooChangeListener(listener);
-		assertTrue(this.foo.hasNoFooChangeListeners());
-	}
-
-	public void testHasAnyFooChangeListeners() {
-		assertFalse(this.foo.hasAnyFooChangeListeners());
-		LocalListener listener = new LocalListener();
-		this.foo.addFooChangeListener(listener);
-		assertTrue(this.foo.hasAnyFooChangeListeners());
-		this.foo.removeFooChangeListener(listener);
-		assertFalse(this.foo.hasAnyFooChangeListeners());
-	}
-
-	public void testFireFooChangeEvent() {
-		LocalListener listener = new LocalListener();
-		assertFalse(listener.receivedFooEvent);
-		this.foo.addFooChangeListener(listener);
-		this.foo.foo();
-		assertTrue(listener.receivedFooEvent);
-	}
-
-
-	// ********** harness classes **********
-
-	class Foo extends AbstractFooModel {
-		Foo() {
-			super();
-		}
-		void foo() {
-			this.fireFooChangeEvent();
-		}
-	}
-
-	class LocalListener implements FooChangeListener {
-		boolean receivedFooEvent = false;
-		LocalListener() {
-			super();
-		}
-		public void fooChanged(FooChangeEvent event) {
-			this.receivedFooEvent = true;
-		}
-	}
-
-	interface FooModel extends Model {
-		void addFooChangeListener(FooChangeListener listener);
-		void removeFooChangeListener(FooChangeListener listener);
-	}
-
-	interface FooChangeListener extends ChangeListener {
-		void fooChanged(FooChangeEvent event);
-	}
-
-	static class FooChangeEvent extends ChangeEvent {
-		private static final long serialVersionUID = 1L;
-		public FooChangeEvent(FooModel source) {
-			super(source);
-		}
-		@Override
-		public String getAspectName() {
-			return null;  // the point of the event is that the name is unknown...
-		}
-		@Override
-		public FooChangeEvent cloneWithSource(Model newSource) {
-			return new FooChangeEvent((FooModel) newSource);
-		}
-	}
-
-	static class AbstractFooModel extends AbstractModel implements FooModel {
-		@Override
-		protected synchronized FooChangeSupport getChangeSupport() {
-			return (FooChangeSupport) super.getChangeSupport();
-		}
-		@Override
-		protected ChangeSupport buildChangeSupport() {
-			return new FooChangeSupport(this);
-		}
-		public void addFooChangeListener(FooChangeListener listener) {
-			this.getChangeSupport().addFooChangeListener(listener);
-		}
-		public void removeFooChangeListener(FooChangeListener listener) {
-			this.getChangeSupport().removeFooChangeListener(listener);
-		}
-		protected void fireFooChangeEvent() {
-			this.getChangeSupport().fireFooChanged();
-		}
-		public boolean hasAnyFooChangeListeners() {
-			return this.getChangeSupport().hasAnyFooChangeListeners();
-		}
-		public boolean hasNoFooChangeListeners() {
-			return ! this.hasAnyFooChangeListeners();
-		}
-	}
-
-	static class FooChangeSupport extends ChangeSupport {
-		FooChangeSupport(FooModel source) {
-			super(source);
-		}
-		protected static final Class<FooChangeListener> FOO_CHANGE_LISTENER_CLASS = FooChangeListener.class;
-		void addFooChangeListener(FooChangeListener listener) {
-			this.addListener(FOO_CHANGE_LISTENER_CLASS, listener);
-		}
-		void removeFooChangeListener(FooChangeListener listener) {
-			this.removeListener(FOO_CHANGE_LISTENER_CLASS, listener);
-		}
-		public boolean hasAnyFooChangeListeners() {
-			return this.hasAnyListeners(FOO_CHANGE_LISTENER_CLASS);
-		}
-		private FooChangeListener[] fooChangeListeners() {
-			return (FooChangeListener[]) this.getListeners(FOO_CHANGE_LISTENER_CLASS);
-		}
-		public void fireFooChanged() {
-			FooChangeListener[] targets = null;
-			synchronized (this) {
-				FooChangeListener[] fooChangeListeners = this.fooChangeListeners();
-				if (fooChangeListeners != null) {
-					targets = fooChangeListeners.clone();
-				}
-			}
-			if (targets != null) {
-				FooChangeEvent event = null;
-				for (FooChangeListener target : targets) {
-					boolean stillListening;
-					synchronized (this) {
-						stillListening = CollectionTools.contains(this.fooChangeListeners(), target);
-					}
-					if (stillListening) {
-						if (event == null) {
-							// here's the reason for the duplicate code...
-							event = new FooChangeEvent((FooModel) this.source);
-						}
-						target.fooChanged(event);
-					}
-				}
-			}
-			this.aspectChanged(null);
-		}
-	}
-
-}
diff --git a/jpa/tests/org.eclipse.jpt.utility.tests/src/org/eclipse/jpt/utility/tests/internal/model/listener/JptUtilityModelListenerTests.java b/jpa/tests/org.eclipse.jpt.utility.tests/src/org/eclipse/jpt/utility/tests/internal/model/listener/JptUtilityModelListenerTests.java
deleted file mode 100644
index 084a9b8..0000000
--- a/jpa/tests/org.eclipse.jpt.utility.tests/src/org/eclipse/jpt/utility/tests/internal/model/listener/JptUtilityModelListenerTests.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.utility.tests.internal.model.listener;
-
-import junit.framework.Test;
-import junit.framework.TestSuite;
-
-public class JptUtilityModelListenerTests {
-	
-	public static Test suite() {
-		TestSuite suite = new TestSuite(JptUtilityModelListenerTests.class.getPackage().getName());
-
-		suite.addTestSuite(ReflectiveCollectionChangeListenerTests.class);
-		suite.addTestSuite(ReflectiveListChangeListenerTests.class);
-		suite.addTestSuite(ReflectivePropertyChangeListenerTests.class);
-		suite.addTestSuite(ReflectiveStateChangeListenerTests.class);
-		suite.addTestSuite(ReflectiveTreeChangeListenerTests.class);
-	
-		return suite;
-	}
-	
-	private JptUtilityModelListenerTests() {
-		super();
-		throw new UnsupportedOperationException();
-	}
-	
-}
diff --git a/jpa/tests/org.eclipse.jpt.utility.tests/src/org/eclipse/jpt/utility/tests/internal/model/listener/ReflectiveCollectionChangeListenerTests.java b/jpa/tests/org.eclipse.jpt.utility.tests/src/org/eclipse/jpt/utility/tests/internal/model/listener/ReflectiveCollectionChangeListenerTests.java
deleted file mode 100644
index 4fb3a8c..0000000
--- a/jpa/tests/org.eclipse.jpt.utility.tests/src/org/eclipse/jpt/utility/tests/internal/model/listener/ReflectiveCollectionChangeListenerTests.java
+++ /dev/null
@@ -1,453 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2008 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.utility.tests.internal.model.listener;
-
-import java.lang.reflect.Method;
-import java.util.ArrayList;
-import java.util.Collection;
-import java.util.Iterator;
-import junit.framework.TestCase;
-import org.eclipse.jpt.utility.internal.ClassTools;
-import org.eclipse.jpt.utility.internal.CollectionTools;
-import org.eclipse.jpt.utility.internal.iterators.CloneIterator;
-import org.eclipse.jpt.utility.internal.model.AbstractModel;
-import org.eclipse.jpt.utility.model.event.CollectionChangeEvent;
-import org.eclipse.jpt.utility.model.listener.CollectionChangeListener;
-import org.eclipse.jpt.utility.model.listener.ListChangeListener;
-import org.eclipse.jpt.utility.model.listener.ReflectiveChangeListener;
-
-public class ReflectiveCollectionChangeListenerTests extends TestCase {
-	
-	public ReflectiveCollectionChangeListenerTests(String name) {
-		super(name);
-	}
-
-	private CollectionChangeListener buildZeroArgumentListener(Object target) {
-		return ReflectiveChangeListener.buildCollectionChangeListener(target, "itemAddedZeroArgument", "itemRemovedZeroArgument", "collectionClearedZeroArgument", "collectionChangedZeroArgument");
-	}
-
-	private CollectionChangeListener buildSingleArgumentListener(Object target) {
-		return ReflectiveChangeListener.buildCollectionChangeListener(target, "itemAddedSingleArgument", "itemRemovedSingleArgument", "collectionClearedSingleArgument", "collectionChangedSingleArgument");
-	}
-
-	public void testItemAddedZeroArgument() {
-		TestModel testModel = new TestModel();
-		String string = "foo";
-		Target target = new Target(testModel, TestModel.STRINGS_COLLECTION, string);
-		testModel.addCollectionChangeListener(this.buildZeroArgumentListener(target));
-		testModel.addString(string);
-		assertTrue(target.itemAddedZeroArgumentFlag);
-		assertFalse(target.itemAddedSingleArgumentFlag);
-		assertFalse(target.itemRemovedZeroArgumentFlag);
-		assertFalse(target.itemRemovedSingleArgumentFlag);
-		assertFalse(target.collectionClearedZeroArgumentFlag);
-		assertFalse(target.collectionClearedSingleArgumentFlag);
-		assertFalse(target.collectionChangedZeroArgumentFlag);
-		assertFalse(target.collectionChangedSingleArgumentFlag);
-	}
-
-	public void testItemAddedZeroArgumentNamedCollection() {
-		TestModel testModel = new TestModel();
-		String string = "foo";
-		Target target = new Target(testModel, TestModel.STRINGS_COLLECTION, string);
-		testModel.addCollectionChangeListener(TestModel.STRINGS_COLLECTION, this.buildZeroArgumentListener(target));
-		testModel.addString(string);
-		assertTrue(target.itemAddedZeroArgumentFlag);
-		assertFalse(target.itemAddedSingleArgumentFlag);
-		assertFalse(target.itemRemovedZeroArgumentFlag);
-		assertFalse(target.itemRemovedSingleArgumentFlag);
-		assertFalse(target.collectionClearedZeroArgumentFlag);
-		assertFalse(target.collectionClearedSingleArgumentFlag);
-		assertFalse(target.collectionChangedZeroArgumentFlag);
-		assertFalse(target.collectionChangedSingleArgumentFlag);
-	}
-
-	public void testItemAddedSingleArgument() {
-		TestModel testModel = new TestModel();
-		String string = "foo";
-		Target target = new Target(testModel, TestModel.STRINGS_COLLECTION, string);
-		testModel.addCollectionChangeListener(this.buildSingleArgumentListener(target));
-		testModel.addString(string);
-		assertFalse(target.itemAddedZeroArgumentFlag);
-		assertTrue(target.itemAddedSingleArgumentFlag);
-		assertFalse(target.itemRemovedZeroArgumentFlag);
-		assertFalse(target.itemRemovedSingleArgumentFlag);
-		assertFalse(target.collectionClearedZeroArgumentFlag);
-		assertFalse(target.collectionClearedSingleArgumentFlag);
-		assertFalse(target.collectionChangedZeroArgumentFlag);
-		assertFalse(target.collectionChangedSingleArgumentFlag);
-	}
-
-	public void testItemAddedSingleArgumentNamedCollection() {
-		TestModel testModel = new TestModel();
-		String string = "foo";
-		Target target = new Target(testModel, TestModel.STRINGS_COLLECTION, string);
-		testModel.addCollectionChangeListener(TestModel.STRINGS_COLLECTION, this.buildSingleArgumentListener(target));
-		testModel.addString(string);
-		assertFalse(target.itemAddedZeroArgumentFlag);
-		assertTrue(target.itemAddedSingleArgumentFlag);
-		assertFalse(target.itemRemovedZeroArgumentFlag);
-		assertFalse(target.itemRemovedSingleArgumentFlag);
-		assertFalse(target.collectionClearedZeroArgumentFlag);
-		assertFalse(target.collectionClearedSingleArgumentFlag);
-		assertFalse(target.collectionChangedZeroArgumentFlag);
-		assertFalse(target.collectionChangedSingleArgumentFlag);
-	}
-
-	public void testItemRemovedZeroArgument() {
-		TestModel testModel = new TestModel();
-		String string = "foo";
-		testModel.addString(string);
-		Target target = new Target(testModel, TestModel.STRINGS_COLLECTION, string);
-		testModel.addCollectionChangeListener(this.buildZeroArgumentListener(target));
-		testModel.removeString(string);
-		assertFalse(target.itemAddedZeroArgumentFlag);
-		assertFalse(target.itemAddedSingleArgumentFlag);
-		assertTrue(target.itemRemovedZeroArgumentFlag);
-		assertFalse(target.itemRemovedSingleArgumentFlag);
-		assertFalse(target.collectionClearedZeroArgumentFlag);
-		assertFalse(target.collectionClearedSingleArgumentFlag);
-		assertFalse(target.collectionChangedZeroArgumentFlag);
-		assertFalse(target.collectionChangedSingleArgumentFlag);
-	}
-
-	public void testItemRemovedZeroArgumentNamedCollection() {
-		TestModel testModel = new TestModel();
-		String string = "foo";
-		testModel.addString(string);
-		Target target = new Target(testModel, TestModel.STRINGS_COLLECTION, string);
-		testModel.addCollectionChangeListener(TestModel.STRINGS_COLLECTION, this.buildZeroArgumentListener(target));
-		testModel.removeString(string);
-		assertFalse(target.itemAddedZeroArgumentFlag);
-		assertFalse(target.itemAddedSingleArgumentFlag);
-		assertTrue(target.itemRemovedZeroArgumentFlag);
-		assertFalse(target.itemRemovedSingleArgumentFlag);
-		assertFalse(target.collectionClearedZeroArgumentFlag);
-		assertFalse(target.collectionClearedSingleArgumentFlag);
-		assertFalse(target.collectionChangedZeroArgumentFlag);
-		assertFalse(target.collectionChangedSingleArgumentFlag);
-	}
-
-	public void testItemRemovedSingleArgument() {
-		TestModel testModel = new TestModel();
-		String string = "foo";
-		testModel.addString(string);
-		Target target = new Target(testModel, TestModel.STRINGS_COLLECTION, string);
-		testModel.addCollectionChangeListener(this.buildSingleArgumentListener(target));
-		testModel.removeString(string);
-		assertFalse(target.itemAddedZeroArgumentFlag);
-		assertFalse(target.itemAddedSingleArgumentFlag);
-		assertFalse(target.itemRemovedZeroArgumentFlag);
-		assertTrue(target.itemRemovedSingleArgumentFlag);
-		assertFalse(target.collectionClearedZeroArgumentFlag);
-		assertFalse(target.collectionClearedSingleArgumentFlag);
-		assertFalse(target.collectionChangedZeroArgumentFlag);
-		assertFalse(target.collectionChangedSingleArgumentFlag);
-	}
-
-	public void testItemRemovedSingleArgumentNamedCollection() {
-		TestModel testModel = new TestModel();
-		String string = "foo";
-		testModel.addString(string);
-		Target target = new Target(testModel, TestModel.STRINGS_COLLECTION, string);
-		testModel.addCollectionChangeListener(TestModel.STRINGS_COLLECTION, this.buildSingleArgumentListener(target));
-		testModel.removeString(string);
-		assertFalse(target.itemAddedZeroArgumentFlag);
-		assertFalse(target.itemAddedSingleArgumentFlag);
-		assertFalse(target.itemRemovedZeroArgumentFlag);
-		assertTrue(target.itemRemovedSingleArgumentFlag);
-		assertFalse(target.collectionClearedZeroArgumentFlag);
-		assertFalse(target.collectionClearedSingleArgumentFlag);
-		assertFalse(target.collectionChangedZeroArgumentFlag);
-		assertFalse(target.collectionChangedSingleArgumentFlag);
-	}
-
-	public void testCollectionClearedZeroArgument() {
-		TestModel testModel = new TestModel();
-		String string = "foo";
-		testModel.addString(string);
-		Target target = new Target(testModel, TestModel.STRINGS_COLLECTION, string);
-		testModel.addCollectionChangeListener(this.buildZeroArgumentListener(target));
-		testModel.clearStrings();
-		assertFalse(target.itemAddedZeroArgumentFlag);
-		assertFalse(target.itemAddedSingleArgumentFlag);
-		assertFalse(target.itemRemovedZeroArgumentFlag);
-		assertFalse(target.itemRemovedSingleArgumentFlag);
-		assertTrue(target.collectionClearedZeroArgumentFlag);
-		assertFalse(target.collectionClearedSingleArgumentFlag);
-		assertFalse(target.collectionChangedZeroArgumentFlag);
-		assertFalse(target.collectionChangedSingleArgumentFlag);
-	}
-
-	public void testCollectionClearedZeroArgumentNamedCollection() {
-		TestModel testModel = new TestModel();
-		String string = "foo";
-		testModel.addString(string);
-		Target target = new Target(testModel, TestModel.STRINGS_COLLECTION, string);
-		testModel.addCollectionChangeListener(TestModel.STRINGS_COLLECTION, this.buildZeroArgumentListener(target));
-		testModel.clearStrings();
-		assertFalse(target.itemAddedZeroArgumentFlag);
-		assertFalse(target.itemAddedSingleArgumentFlag);
-		assertFalse(target.itemRemovedZeroArgumentFlag);
-		assertFalse(target.itemRemovedSingleArgumentFlag);
-		assertTrue(target.collectionClearedZeroArgumentFlag);
-		assertFalse(target.collectionClearedSingleArgumentFlag);
-		assertFalse(target.collectionChangedZeroArgumentFlag);
-		assertFalse(target.collectionChangedSingleArgumentFlag);
-	}
-
-	public void testCollectionClearedSingleArgument() {
-		TestModel testModel = new TestModel();
-		String string = "foo";
-		testModel.addString(string);
-		Target target = new Target(testModel, TestModel.STRINGS_COLLECTION, string);
-		testModel.addCollectionChangeListener(this.buildSingleArgumentListener(target));
-		testModel.clearStrings();
-		assertFalse(target.itemAddedZeroArgumentFlag);
-		assertFalse(target.itemAddedSingleArgumentFlag);
-		assertFalse(target.itemRemovedZeroArgumentFlag);
-		assertFalse(target.itemRemovedSingleArgumentFlag);
-		assertFalse(target.collectionClearedZeroArgumentFlag);
-		assertTrue(target.collectionClearedSingleArgumentFlag);
-		assertFalse(target.collectionChangedZeroArgumentFlag);
-		assertFalse(target.collectionChangedSingleArgumentFlag);
-	}
-
-	public void testCollectionClearedSingleArgumentNamedCollection() {
-		TestModel testModel = new TestModel();
-		String string = "foo";
-		testModel.addString(string);
-		Target target = new Target(testModel, TestModel.STRINGS_COLLECTION, string);
-		testModel.addCollectionChangeListener(TestModel.STRINGS_COLLECTION, this.buildSingleArgumentListener(target));
-		testModel.clearStrings();
-		assertFalse(target.itemAddedZeroArgumentFlag);
-		assertFalse(target.itemAddedSingleArgumentFlag);
-		assertFalse(target.itemRemovedZeroArgumentFlag);
-		assertFalse(target.itemRemovedSingleArgumentFlag);
-		assertFalse(target.collectionClearedZeroArgumentFlag);
-		assertTrue(target.collectionClearedSingleArgumentFlag);
-		assertFalse(target.collectionChangedZeroArgumentFlag);
-		assertFalse(target.collectionChangedSingleArgumentFlag);
-	}
-
-	public void testCollectionChangedZeroArgument() {
-		TestModel testModel = new TestModel();
-		String string = "foo";
-		testModel.addString(string);
-		Target target = new Target(testModel, TestModel.STRINGS_COLLECTION, string);
-		testModel.addCollectionChangeListener(this.buildZeroArgumentListener(target));
-		testModel.replaceStrings(new String[] {"bar", "baz"});
-		assertFalse(target.itemAddedZeroArgumentFlag);
-		assertFalse(target.itemAddedSingleArgumentFlag);
-		assertFalse(target.itemRemovedZeroArgumentFlag);
-		assertFalse(target.itemRemovedSingleArgumentFlag);
-		assertFalse(target.collectionClearedZeroArgumentFlag);
-		assertFalse(target.collectionClearedSingleArgumentFlag);
-		assertTrue(target.collectionChangedZeroArgumentFlag);
-		assertFalse(target.collectionChangedSingleArgumentFlag);
-	}
-
-	public void testCollectionChangedZeroArgumentNamedCollection() {
-		TestModel testModel = new TestModel();
-		String string = "foo";
-		testModel.addString(string);
-		Target target = new Target(testModel, TestModel.STRINGS_COLLECTION, string);
-		testModel.addCollectionChangeListener(TestModel.STRINGS_COLLECTION, this.buildZeroArgumentListener(target));
-		testModel.replaceStrings(new String[] {"bar", "baz"});
-		assertFalse(target.itemAddedZeroArgumentFlag);
-		assertFalse(target.itemAddedSingleArgumentFlag);
-		assertFalse(target.itemRemovedZeroArgumentFlag);
-		assertFalse(target.itemRemovedSingleArgumentFlag);
-		assertFalse(target.collectionClearedZeroArgumentFlag);
-		assertFalse(target.collectionClearedSingleArgumentFlag);
-		assertTrue(target.collectionChangedZeroArgumentFlag);
-		assertFalse(target.collectionChangedSingleArgumentFlag);
-	}
-
-	public void testCollectionChangedSingleArgument() {
-		TestModel testModel = new TestModel();
-		String string = "foo";
-		testModel.addString(string);
-		Target target = new Target(testModel, TestModel.STRINGS_COLLECTION, string);
-		testModel.addCollectionChangeListener(this.buildSingleArgumentListener(target));
-		testModel.replaceStrings(new String[] {"bar", "baz"});
-		assertFalse(target.itemAddedZeroArgumentFlag);
-		assertFalse(target.itemAddedSingleArgumentFlag);
-		assertFalse(target.itemRemovedZeroArgumentFlag);
-		assertFalse(target.itemRemovedSingleArgumentFlag);
-		assertFalse(target.collectionClearedZeroArgumentFlag);
-		assertFalse(target.collectionClearedSingleArgumentFlag);
-		assertFalse(target.collectionChangedZeroArgumentFlag);
-		assertTrue(target.collectionChangedSingleArgumentFlag);
-	}
-
-	public void testCollectionChangedSingleArgumentNamedCollection() {
-		TestModel testModel = new TestModel();
-		String string = "foo";
-		testModel.addString(string);
-		Target target = new Target(testModel, TestModel.STRINGS_COLLECTION, string);
-		testModel.addCollectionChangeListener(TestModel.STRINGS_COLLECTION, this.buildSingleArgumentListener(target));
-		testModel.replaceStrings(new String[] {"bar", "baz"});
-		assertFalse(target.itemAddedZeroArgumentFlag);
-		assertFalse(target.itemAddedSingleArgumentFlag);
-		assertFalse(target.itemRemovedZeroArgumentFlag);
-		assertFalse(target.itemRemovedSingleArgumentFlag);
-		assertFalse(target.collectionClearedZeroArgumentFlag);
-		assertFalse(target.collectionClearedSingleArgumentFlag);
-		assertFalse(target.collectionChangedZeroArgumentFlag);
-		assertTrue(target.collectionChangedSingleArgumentFlag);
-	}
-
-	public void testBogusDoubleArgument1() {
-		TestModel testModel = new TestModel();
-		String string = "foo";
-		Target target = new Target(testModel, TestModel.STRINGS_COLLECTION, string);
-		boolean exCaught = false;
-		try {
-			CollectionChangeListener listener = ReflectiveChangeListener.buildCollectionChangeListener(target, "collectionChangedDoubleArgument");
-			fail("bogus listener: " + listener);
-		} catch (RuntimeException ex) {
-			if (ex.getCause().getClass() == NoSuchMethodException.class) {
-				exCaught = true;
-			}
-		}
-		assertTrue(exCaught);
-	}
-
-	public void testBogusDoubleArgument2() throws Exception {
-		TestModel testModel = new TestModel();
-		String string = "foo";
-		Target target = new Target(testModel, TestModel.STRINGS_COLLECTION, string);
-		Method method = ClassTools.method(target, "collectionChangedDoubleArgument", new Class[] {CollectionChangeEvent.class, Object.class});
-		boolean exCaught = false;
-		try {
-			CollectionChangeListener listener = ReflectiveChangeListener.buildCollectionChangeListener(target, method);
-			fail("bogus listener: " + listener);
-		} catch (RuntimeException ex) {
-			if (ex.getMessage().equals(method.toString())) {
-				exCaught = true;
-			}
-		}
-		assertTrue(exCaught);
-	}
-
-	public void testListenerMismatch() {
-		TestModel testModel = new TestModel();
-		String string = "foo";
-		Target target = new Target(testModel, TestModel.STRINGS_COLLECTION, string);
-		// build a COLLECTION change listener and hack it so we
-		// can add it as a LIST change listener
-		Object listener = ReflectiveChangeListener.buildCollectionChangeListener(target, "itemAddedSingleArgument");
-		testModel.addListChangeListener((ListChangeListener) listener);
-
-		boolean exCaught = false;
-		try {
-			testModel.changeList();
-			fail("listener mismatch: " + listener);
-		} catch (IllegalArgumentException ex) {
-			exCaught = true;
-		}
-		assertTrue(exCaught);
-	}
-
-
-	private class TestModel extends AbstractModel {
-		private Collection<String> strings = new ArrayList<String>();
-			public static final String STRINGS_COLLECTION = "strings";
-		TestModel() {
-			super();
-		}
-		Iterator<String> strings() {
-			return new CloneIterator<String>(this.strings) {
-				@Override
-				protected void remove(String s) {
-					TestModel.this.removeString(s);
-				}
-			};
-		}
-		void addString(String string) {
-			this.addItemToCollection(string, this.strings, STRINGS_COLLECTION);
-		}
-		void removeString(String string) {
-			this.removeItemFromCollection(string, this.strings, STRINGS_COLLECTION);
-		}
-		void clearStrings() {
-			this.clearCollection(this.strings, STRINGS_COLLECTION);
-		}
-		void replaceStrings(String[] newStrings) {
-			this.strings.clear();
-			CollectionTools.addAll(this.strings, newStrings);
-			this.fireCollectionChanged(STRINGS_COLLECTION);
-		}
-		void changeList() {
-			this.fireListChanged("bogus list");
-		}
-	}
-
-	private class Target {
-		TestModel testModel;
-		String collectionName;
-		String string;
-		boolean itemAddedZeroArgumentFlag = false;
-		boolean itemAddedSingleArgumentFlag = false;
-		boolean itemRemovedZeroArgumentFlag = false;
-		boolean itemRemovedSingleArgumentFlag = false;
-		boolean collectionClearedZeroArgumentFlag = false;
-		boolean collectionClearedSingleArgumentFlag = false;
-		boolean collectionChangedZeroArgumentFlag = false;
-		boolean collectionChangedSingleArgumentFlag = false;
-		Target(TestModel testModel, String collectionName, String string) {
-			super();
-			this.testModel = testModel;
-			this.collectionName = collectionName;
-			this.string = string;
-		}
-		void itemAddedZeroArgument() {
-			this.itemAddedZeroArgumentFlag = true;
-		}
-		void itemAddedSingleArgument(CollectionChangeEvent e) {
-			this.itemAddedSingleArgumentFlag = true;
-			assertSame(this.testModel, e.getSource());
-			assertEquals(this.collectionName, e.getCollectionName());
-			assertEquals(this.string, e.items().next());
-		}
-		void itemRemovedZeroArgument() {
-			this.itemRemovedZeroArgumentFlag = true;
-		}
-		void itemRemovedSingleArgument(CollectionChangeEvent e) {
-			this.itemRemovedSingleArgumentFlag = true;
-			assertSame(this.testModel, e.getSource());
-			assertEquals(this.collectionName, e.getCollectionName());
-			assertEquals(this.string, e.items().next());
-		}
-		void collectionClearedZeroArgument() {
-			this.collectionClearedZeroArgumentFlag = true;
-		}
-		void collectionClearedSingleArgument(CollectionChangeEvent e) {
-			this.collectionClearedSingleArgumentFlag = true;
-			assertSame(this.testModel, e.getSource());
-			assertEquals(this.collectionName, e.getCollectionName());
-			assertFalse(e.items().hasNext());
-		}
-		void collectionChangedZeroArgument() {
-			this.collectionChangedZeroArgumentFlag = true;
-		}
-		void collectionChangedSingleArgument(CollectionChangeEvent e) {
-			this.collectionChangedSingleArgumentFlag = true;
-			assertSame(this.testModel, e.getSource());
-			assertEquals(this.collectionName, e.getCollectionName());
-			assertFalse(e.items().hasNext());
-		}
-		void collectionChangedDoubleArgument(CollectionChangeEvent e, Object o) {
-			fail("bogus event: " + e);
-		}
-	}
-
-}
diff --git a/jpa/tests/org.eclipse.jpt.utility.tests/src/org/eclipse/jpt/utility/tests/internal/model/listener/ReflectiveListChangeListenerTests.java b/jpa/tests/org.eclipse.jpt.utility.tests/src/org/eclipse/jpt/utility/tests/internal/model/listener/ReflectiveListChangeListenerTests.java
deleted file mode 100644
index b3bfae6..0000000
--- a/jpa/tests/org.eclipse.jpt.utility.tests/src/org/eclipse/jpt/utility/tests/internal/model/listener/ReflectiveListChangeListenerTests.java
+++ /dev/null
@@ -1,742 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2008 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.utility.tests.internal.model.listener;
-
-import java.lang.reflect.Method;
-import java.util.ArrayList;
-import java.util.List;
-import java.util.ListIterator;
-import junit.framework.TestCase;
-import org.eclipse.jpt.utility.internal.ClassTools;
-import org.eclipse.jpt.utility.internal.CollectionTools;
-import org.eclipse.jpt.utility.internal.iterators.CloneListIterator;
-import org.eclipse.jpt.utility.internal.model.AbstractModel;
-import org.eclipse.jpt.utility.model.event.ListChangeEvent;
-import org.eclipse.jpt.utility.model.listener.CollectionChangeListener;
-import org.eclipse.jpt.utility.model.listener.ListChangeListener;
-import org.eclipse.jpt.utility.model.listener.ReflectiveChangeListener;
-
-public class ReflectiveListChangeListenerTests extends TestCase {
-	
-	public ReflectiveListChangeListenerTests(String name) {
-		super(name);
-	}
-
-	private ListChangeListener buildZeroArgumentListener(Object target) {
-		return ReflectiveChangeListener.buildListChangeListener(target, "itemAddedZeroArgument", "itemRemovedZeroArgument", "itemReplacedZeroArgument", "itemMovedZeroArgument", "listClearedZeroArgument", "listChangedZeroArgument");
-	}
-
-	private ListChangeListener buildSingleArgumentListener(Object target) {
-		return ReflectiveChangeListener.buildListChangeListener(target, "itemAddedSingleArgument", "itemRemovedSingleArgument", "itemReplacedSingleArgument", "itemMovedSingleArgument", "listClearedSingleArgument", "listChangedSingleArgument");
-	}
-
-	public void testItemAddedZeroArgument() {
-		TestModel testModel = new TestModel();
-		String string = "foo";
-		Target target = new Target(testModel, TestModel.STRINGS_LIST, string, 0);
-		testModel.addListChangeListener(this.buildZeroArgumentListener(target));
-		testModel.addString(string);
-		assertTrue(target.itemAddedZeroArgumentFlag);
-		assertFalse(target.itemAddedSingleArgumentFlag);
-		assertFalse(target.itemRemovedZeroArgumentFlag);
-		assertFalse(target.itemRemovedSingleArgumentFlag);
-		assertFalse(target.itemReplacedZeroArgumentFlag);
-		assertFalse(target.itemReplacedSingleArgumentFlag);
-		assertFalse(target.itemMovedZeroArgumentFlag);
-		assertFalse(target.itemMovedSingleArgumentFlag);
-		assertFalse(target.listClearedZeroArgumentFlag);
-		assertFalse(target.listClearedSingleArgumentFlag);
-		assertFalse(target.listChangedZeroArgumentFlag);
-		assertFalse(target.listChangedSingleArgumentFlag);
-	}
-
-	public void testItemAddedZeroArgumentNamedList() {
-		TestModel testModel = new TestModel();
-		String string = "foo";
-		Target target = new Target(testModel, TestModel.STRINGS_LIST, string, 0);
-		testModel.addListChangeListener(TestModel.STRINGS_LIST, this.buildZeroArgumentListener(target));
-		testModel.addString(string);
-		assertTrue(target.itemAddedZeroArgumentFlag);
-		assertFalse(target.itemAddedSingleArgumentFlag);
-		assertFalse(target.itemRemovedZeroArgumentFlag);
-		assertFalse(target.itemRemovedSingleArgumentFlag);
-		assertFalse(target.itemReplacedZeroArgumentFlag);
-		assertFalse(target.itemReplacedSingleArgumentFlag);
-		assertFalse(target.itemMovedZeroArgumentFlag);
-		assertFalse(target.itemMovedSingleArgumentFlag);
-		assertFalse(target.listClearedZeroArgumentFlag);
-		assertFalse(target.listClearedSingleArgumentFlag);
-		assertFalse(target.listChangedZeroArgumentFlag);
-		assertFalse(target.listChangedSingleArgumentFlag);
-	}
-
-	public void testItemAddedSingleArgument() {
-		TestModel testModel = new TestModel();
-		String string = "foo";
-		Target target = new Target(testModel, TestModel.STRINGS_LIST, string, 0);
-		testModel.addListChangeListener(this.buildSingleArgumentListener(target));
-		testModel.addString(string);
-		assertFalse(target.itemAddedZeroArgumentFlag);
-		assertTrue(target.itemAddedSingleArgumentFlag);
-		assertFalse(target.itemRemovedZeroArgumentFlag);
-		assertFalse(target.itemRemovedSingleArgumentFlag);
-		assertFalse(target.itemReplacedZeroArgumentFlag);
-		assertFalse(target.itemReplacedSingleArgumentFlag);
-		assertFalse(target.itemMovedZeroArgumentFlag);
-		assertFalse(target.itemMovedSingleArgumentFlag);
-		assertFalse(target.listClearedZeroArgumentFlag);
-		assertFalse(target.listClearedSingleArgumentFlag);
-		assertFalse(target.listChangedZeroArgumentFlag);
-		assertFalse(target.listChangedSingleArgumentFlag);
-	}
-
-	public void testItemAddedSingleArgumentNamedList() {
-		TestModel testModel = new TestModel();
-		String string = "foo";
-		Target target = new Target(testModel, TestModel.STRINGS_LIST, string, 0);
-		testModel.addListChangeListener(TestModel.STRINGS_LIST, this.buildSingleArgumentListener(target));
-		testModel.addString(string);
-		assertFalse(target.itemAddedZeroArgumentFlag);
-		assertTrue(target.itemAddedSingleArgumentFlag);
-		assertFalse(target.itemRemovedZeroArgumentFlag);
-		assertFalse(target.itemRemovedSingleArgumentFlag);
-		assertFalse(target.itemReplacedZeroArgumentFlag);
-		assertFalse(target.itemReplacedSingleArgumentFlag);
-		assertFalse(target.itemMovedZeroArgumentFlag);
-		assertFalse(target.itemMovedSingleArgumentFlag);
-		assertFalse(target.listClearedZeroArgumentFlag);
-		assertFalse(target.listClearedSingleArgumentFlag);
-		assertFalse(target.listChangedZeroArgumentFlag);
-		assertFalse(target.listChangedSingleArgumentFlag);
-	}
-
-	public void testItemRemovedZeroArgument() {
-		TestModel testModel = new TestModel();
-		String string = "foo";
-		testModel.addString(string);
-		Target target = new Target(testModel, TestModel.STRINGS_LIST, string, 0);
-		testModel.addListChangeListener(this.buildZeroArgumentListener(target));
-		testModel.removeString(string);
-		assertFalse(target.itemAddedZeroArgumentFlag);
-		assertFalse(target.itemAddedSingleArgumentFlag);
-		assertTrue(target.itemRemovedZeroArgumentFlag);
-		assertFalse(target.itemRemovedSingleArgumentFlag);
-		assertFalse(target.itemReplacedZeroArgumentFlag);
-		assertFalse(target.itemReplacedSingleArgumentFlag);
-		assertFalse(target.itemMovedZeroArgumentFlag);
-		assertFalse(target.itemMovedSingleArgumentFlag);
-		assertFalse(target.listClearedZeroArgumentFlag);
-		assertFalse(target.listClearedSingleArgumentFlag);
-		assertFalse(target.listChangedZeroArgumentFlag);
-		assertFalse(target.listChangedSingleArgumentFlag);
-	}
-
-	public void testItemRemovedZeroArgumentNamedList() {
-		TestModel testModel = new TestModel();
-		String string = "foo";
-		testModel.addString(string);
-		Target target = new Target(testModel, TestModel.STRINGS_LIST, string, 0);
-		testModel.addListChangeListener(TestModel.STRINGS_LIST, this.buildZeroArgumentListener(target));
-		testModel.removeString(string);
-		assertFalse(target.itemAddedZeroArgumentFlag);
-		assertFalse(target.itemAddedSingleArgumentFlag);
-		assertTrue(target.itemRemovedZeroArgumentFlag);
-		assertFalse(target.itemRemovedSingleArgumentFlag);
-		assertFalse(target.itemReplacedZeroArgumentFlag);
-		assertFalse(target.itemReplacedSingleArgumentFlag);
-		assertFalse(target.itemMovedZeroArgumentFlag);
-		assertFalse(target.itemMovedSingleArgumentFlag);
-		assertFalse(target.listClearedZeroArgumentFlag);
-		assertFalse(target.listClearedSingleArgumentFlag);
-		assertFalse(target.listChangedZeroArgumentFlag);
-		assertFalse(target.listChangedSingleArgumentFlag);
-	}
-
-	public void testItemRemovedSingleArgument() {
-		TestModel testModel = new TestModel();
-		String string = "foo";
-		testModel.addString(string);
-		Target target = new Target(testModel, TestModel.STRINGS_LIST, string, 0);
-		testModel.addListChangeListener(this.buildSingleArgumentListener(target));
-		testModel.removeString(string);
-		assertFalse(target.itemAddedZeroArgumentFlag);
-		assertFalse(target.itemAddedSingleArgumentFlag);
-		assertFalse(target.itemRemovedZeroArgumentFlag);
-		assertTrue(target.itemRemovedSingleArgumentFlag);
-		assertFalse(target.itemReplacedZeroArgumentFlag);
-		assertFalse(target.itemReplacedSingleArgumentFlag);
-		assertFalse(target.itemMovedZeroArgumentFlag);
-		assertFalse(target.itemMovedSingleArgumentFlag);
-		assertFalse(target.listClearedZeroArgumentFlag);
-		assertFalse(target.listClearedSingleArgumentFlag);
-		assertFalse(target.listChangedZeroArgumentFlag);
-		assertFalse(target.listChangedSingleArgumentFlag);
-	}
-
-	public void testItemRemovedSingleArgumentNamedList() {
-		TestModel testModel = new TestModel();
-		String string = "foo";
-		testModel.addString(string);
-		Target target = new Target(testModel, TestModel.STRINGS_LIST, string, 0);
-		testModel.addListChangeListener(TestModel.STRINGS_LIST, this.buildSingleArgumentListener(target));
-		testModel.removeString(string);
-		assertFalse(target.itemAddedZeroArgumentFlag);
-		assertFalse(target.itemAddedSingleArgumentFlag);
-		assertFalse(target.itemRemovedZeroArgumentFlag);
-		assertTrue(target.itemRemovedSingleArgumentFlag);
-		assertFalse(target.itemReplacedZeroArgumentFlag);
-		assertFalse(target.itemReplacedSingleArgumentFlag);
-		assertFalse(target.itemMovedZeroArgumentFlag);
-		assertFalse(target.itemMovedSingleArgumentFlag);
-		assertFalse(target.listClearedZeroArgumentFlag);
-		assertFalse(target.listClearedSingleArgumentFlag);
-		assertFalse(target.listChangedZeroArgumentFlag);
-		assertFalse(target.listChangedSingleArgumentFlag);
-	}
-
-	public void testItemReplacedZeroArgument() {
-		TestModel testModel = new TestModel();
-		String oldString = "foo";
-		String newString = "bar";
-		testModel.addString(oldString);
-		Target target = new Target(testModel, TestModel.STRINGS_LIST, newString, 0, oldString);
-		testModel.addListChangeListener(this.buildZeroArgumentListener(target));
-		testModel.replaceString(oldString, newString);
-		assertFalse(target.itemAddedZeroArgumentFlag);
-		assertFalse(target.itemAddedSingleArgumentFlag);
-		assertFalse(target.itemRemovedZeroArgumentFlag);
-		assertFalse(target.itemRemovedSingleArgumentFlag);
-		assertTrue(target.itemReplacedZeroArgumentFlag);
-		assertFalse(target.itemReplacedSingleArgumentFlag);
-		assertFalse(target.itemMovedZeroArgumentFlag);
-		assertFalse(target.itemMovedSingleArgumentFlag);
-		assertFalse(target.listClearedZeroArgumentFlag);
-		assertFalse(target.listClearedSingleArgumentFlag);
-		assertFalse(target.listChangedZeroArgumentFlag);
-		assertFalse(target.listChangedSingleArgumentFlag);
-	}
-
-	public void testItemReplacedZeroArgumentNamedList() {
-		TestModel testModel = new TestModel();
-		String oldString = "foo";
-		String newString = "bar";
-		testModel.addString(oldString);
-		Target target = new Target(testModel, TestModel.STRINGS_LIST, newString, 0, oldString);
-		testModel.addListChangeListener(TestModel.STRINGS_LIST, this.buildZeroArgumentListener(target));
-		testModel.replaceString(oldString, newString);
-		assertFalse(target.itemAddedZeroArgumentFlag);
-		assertFalse(target.itemAddedSingleArgumentFlag);
-		assertFalse(target.itemRemovedZeroArgumentFlag);
-		assertFalse(target.itemRemovedSingleArgumentFlag);
-		assertTrue(target.itemReplacedZeroArgumentFlag);
-		assertFalse(target.itemReplacedSingleArgumentFlag);
-		assertFalse(target.itemMovedZeroArgumentFlag);
-		assertFalse(target.itemMovedSingleArgumentFlag);
-		assertFalse(target.listClearedZeroArgumentFlag);
-		assertFalse(target.listClearedSingleArgumentFlag);
-		assertFalse(target.listChangedZeroArgumentFlag);
-		assertFalse(target.listChangedSingleArgumentFlag);
-	}
-
-	public void testItemReplacedSingleArgument() {
-		TestModel testModel = new TestModel();
-		String oldString = "foo";
-		String newString = "bar";
-		testModel.addString(oldString);
-		Target target = new Target(testModel, TestModel.STRINGS_LIST, newString, 0, oldString);
-		testModel.addListChangeListener(this.buildSingleArgumentListener(target));
-		testModel.replaceString(oldString, newString);
-		assertFalse(target.itemAddedZeroArgumentFlag);
-		assertFalse(target.itemAddedSingleArgumentFlag);
-		assertFalse(target.itemRemovedZeroArgumentFlag);
-		assertFalse(target.itemRemovedSingleArgumentFlag);
-		assertFalse(target.itemReplacedZeroArgumentFlag);
-		assertTrue(target.itemReplacedSingleArgumentFlag);
-		assertFalse(target.itemMovedZeroArgumentFlag);
-		assertFalse(target.itemMovedSingleArgumentFlag);
-		assertFalse(target.listClearedZeroArgumentFlag);
-		assertFalse(target.listClearedSingleArgumentFlag);
-		assertFalse(target.listChangedZeroArgumentFlag);
-		assertFalse(target.listChangedSingleArgumentFlag);
-	}
-
-	public void testItemReplacedSingleArgumentNamedList() {
-		TestModel testModel = new TestModel();
-		String oldString = "foo";
-		String newString = "bar";
-		testModel.addString(oldString);
-		Target target = new Target(testModel, TestModel.STRINGS_LIST, newString, 0, oldString);
-		testModel.addListChangeListener(TestModel.STRINGS_LIST, this.buildSingleArgumentListener(target));
-		testModel.replaceString(oldString, newString);
-		assertFalse(target.itemAddedZeroArgumentFlag);
-		assertFalse(target.itemAddedSingleArgumentFlag);
-		assertFalse(target.itemRemovedZeroArgumentFlag);
-		assertFalse(target.itemRemovedSingleArgumentFlag);
-		assertFalse(target.itemReplacedZeroArgumentFlag);
-		assertTrue(target.itemReplacedSingleArgumentFlag);
-		assertFalse(target.itemMovedZeroArgumentFlag);
-		assertFalse(target.itemMovedSingleArgumentFlag);
-		assertFalse(target.listClearedZeroArgumentFlag);
-		assertFalse(target.listClearedSingleArgumentFlag);
-		assertFalse(target.listChangedZeroArgumentFlag);
-		assertFalse(target.listChangedSingleArgumentFlag);
-	}
-
-	public void testItemMovedZeroArgument() {
-		TestModel testModel = new TestModel();
-		testModel.addString("zero");
-		testModel.addString("one");
-		testModel.addString("two");
-		testModel.addString("three");
-		Target target = new Target(testModel, TestModel.STRINGS_LIST, 0, 2);
-		testModel.addListChangeListener(this.buildZeroArgumentListener(target));
-		testModel.moveString(0, 2);
-		assertFalse(target.itemAddedZeroArgumentFlag);
-		assertFalse(target.itemAddedSingleArgumentFlag);
-		assertFalse(target.itemRemovedZeroArgumentFlag);
-		assertFalse(target.itemRemovedSingleArgumentFlag);
-		assertFalse(target.itemReplacedZeroArgumentFlag);
-		assertFalse(target.itemReplacedSingleArgumentFlag);
-		assertTrue(target.itemMovedZeroArgumentFlag);
-		assertFalse(target.itemMovedSingleArgumentFlag);
-		assertFalse(target.listClearedZeroArgumentFlag);
-		assertFalse(target.listClearedSingleArgumentFlag);
-		assertFalse(target.listChangedZeroArgumentFlag);
-		assertFalse(target.listChangedSingleArgumentFlag);
-	}
-
-	public void testItemMovedZeroArgumentNamedList() {
-		TestModel testModel = new TestModel();
-		testModel.addString("zero");
-		testModel.addString("one");
-		testModel.addString("two");
-		testModel.addString("three");
-		Target target = new Target(testModel, TestModel.STRINGS_LIST, 0, 2);
-		testModel.addListChangeListener(TestModel.STRINGS_LIST, this.buildZeroArgumentListener(target));
-		testModel.moveString(0, 2);
-		assertFalse(target.itemAddedZeroArgumentFlag);
-		assertFalse(target.itemAddedSingleArgumentFlag);
-		assertFalse(target.itemRemovedZeroArgumentFlag);
-		assertFalse(target.itemRemovedSingleArgumentFlag);
-		assertFalse(target.itemReplacedZeroArgumentFlag);
-		assertFalse(target.itemReplacedSingleArgumentFlag);
-		assertTrue(target.itemMovedZeroArgumentFlag);
-		assertFalse(target.itemMovedSingleArgumentFlag);
-		assertFalse(target.listClearedZeroArgumentFlag);
-		assertFalse(target.listClearedSingleArgumentFlag);
-		assertFalse(target.listChangedZeroArgumentFlag);
-		assertFalse(target.listChangedSingleArgumentFlag);
-	}
-
-	public void testItemMovedSingleArgument() {
-		TestModel testModel = new TestModel();
-		testModel.addString("zero");
-		testModel.addString("one");
-		testModel.addString("two");
-		testModel.addString("three");
-		Target target = new Target(testModel, TestModel.STRINGS_LIST, 0, 2);
-		testModel.addListChangeListener(this.buildSingleArgumentListener(target));
-		testModel.moveString(0, 2);
-		assertFalse(target.itemAddedZeroArgumentFlag);
-		assertFalse(target.itemAddedSingleArgumentFlag);
-		assertFalse(target.itemRemovedZeroArgumentFlag);
-		assertFalse(target.itemRemovedSingleArgumentFlag);
-		assertFalse(target.itemReplacedZeroArgumentFlag);
-		assertFalse(target.itemReplacedSingleArgumentFlag);
-		assertFalse(target.itemMovedZeroArgumentFlag);
-		assertTrue(target.itemMovedSingleArgumentFlag);
-		assertFalse(target.listClearedZeroArgumentFlag);
-		assertFalse(target.listClearedSingleArgumentFlag);
-		assertFalse(target.listChangedZeroArgumentFlag);
-		assertFalse(target.listChangedSingleArgumentFlag);
-	}
-
-	public void testItemMovedSingleArgumentNamedList() {
-		TestModel testModel = new TestModel();
-		testModel.addString("zero");
-		testModel.addString("one");
-		testModel.addString("two");
-		testModel.addString("three");
-		Target target = new Target(testModel, TestModel.STRINGS_LIST, 0, 2);
-		testModel.addListChangeListener(TestModel.STRINGS_LIST, this.buildSingleArgumentListener(target));
-		testModel.moveString(0, 2);
-		assertFalse(target.itemAddedZeroArgumentFlag);
-		assertFalse(target.itemAddedSingleArgumentFlag);
-		assertFalse(target.itemRemovedZeroArgumentFlag);
-		assertFalse(target.itemRemovedSingleArgumentFlag);
-		assertFalse(target.itemReplacedZeroArgumentFlag);
-		assertFalse(target.itemReplacedSingleArgumentFlag);
-		assertFalse(target.itemMovedZeroArgumentFlag);
-		assertTrue(target.itemMovedSingleArgumentFlag);
-		assertFalse(target.listClearedZeroArgumentFlag);
-		assertFalse(target.listClearedSingleArgumentFlag);
-		assertFalse(target.listChangedZeroArgumentFlag);
-		assertFalse(target.listChangedSingleArgumentFlag);
-	}
-
-	public void testListClearedZeroArgument() {
-		TestModel testModel = new TestModel();
-		String string = "foo";
-		testModel.addString(string);
-		Target target = new Target(testModel, TestModel.STRINGS_LIST, null, -1);
-		testModel.addListChangeListener(this.buildZeroArgumentListener(target));
-		testModel.clearStrings();
-		assertFalse(target.itemAddedZeroArgumentFlag);
-		assertFalse(target.itemAddedSingleArgumentFlag);
-		assertFalse(target.itemRemovedZeroArgumentFlag);
-		assertFalse(target.itemRemovedSingleArgumentFlag);
-		assertFalse(target.itemReplacedZeroArgumentFlag);
-		assertFalse(target.itemReplacedSingleArgumentFlag);
-		assertFalse(target.itemMovedZeroArgumentFlag);
-		assertFalse(target.itemMovedSingleArgumentFlag);
-		assertTrue(target.listClearedZeroArgumentFlag);
-		assertFalse(target.listClearedSingleArgumentFlag);
-		assertFalse(target.listChangedZeroArgumentFlag);
-		assertFalse(target.listChangedSingleArgumentFlag);
-	}
-
-	public void testListClearedZeroArgumentNamedList() {
-		TestModel testModel = new TestModel();
-		String string = "foo";
-		testModel.addString(string);
-		Target target = new Target(testModel, TestModel.STRINGS_LIST, null, -1);
-		testModel.addListChangeListener(TestModel.STRINGS_LIST, this.buildZeroArgumentListener(target));
-		testModel.clearStrings();
-		assertFalse(target.itemAddedZeroArgumentFlag);
-		assertFalse(target.itemAddedSingleArgumentFlag);
-		assertFalse(target.itemRemovedZeroArgumentFlag);
-		assertFalse(target.itemRemovedSingleArgumentFlag);
-		assertFalse(target.itemReplacedZeroArgumentFlag);
-		assertFalse(target.itemReplacedSingleArgumentFlag);
-		assertFalse(target.itemMovedZeroArgumentFlag);
-		assertFalse(target.itemMovedSingleArgumentFlag);
-		assertTrue(target.listClearedZeroArgumentFlag);
-		assertFalse(target.listClearedSingleArgumentFlag);
-		assertFalse(target.listChangedZeroArgumentFlag);
-		assertFalse(target.listChangedSingleArgumentFlag);
-	}
-
-	public void testListClearedSingleArgument() {
-		TestModel testModel = new TestModel();
-		String string = "foo";
-		testModel.addString(string);
-		Target target = new Target(testModel, TestModel.STRINGS_LIST, null, -1);
-		testModel.addListChangeListener(this.buildSingleArgumentListener(target));
-		testModel.clearStrings();
-		assertFalse(target.itemAddedZeroArgumentFlag);
-		assertFalse(target.itemAddedSingleArgumentFlag);
-		assertFalse(target.itemRemovedZeroArgumentFlag);
-		assertFalse(target.itemRemovedSingleArgumentFlag);
-		assertFalse(target.itemReplacedZeroArgumentFlag);
-		assertFalse(target.itemReplacedSingleArgumentFlag);
-		assertFalse(target.itemMovedZeroArgumentFlag);
-		assertFalse(target.itemMovedSingleArgumentFlag);
-		assertFalse(target.listClearedZeroArgumentFlag);
-		assertTrue(target.listClearedSingleArgumentFlag);
-		assertFalse(target.listChangedZeroArgumentFlag);
-		assertFalse(target.listChangedSingleArgumentFlag);
-	}
-
-	public void testListClearedSingleArgumentNamedList() {
-		TestModel testModel = new TestModel();
-		String string = "foo";
-		testModel.addString(string);
-		Target target = new Target(testModel, TestModel.STRINGS_LIST, null, -1);
-		testModel.addListChangeListener(TestModel.STRINGS_LIST, this.buildSingleArgumentListener(target));
-		testModel.clearStrings();
-		assertFalse(target.itemAddedZeroArgumentFlag);
-		assertFalse(target.itemAddedSingleArgumentFlag);
-		assertFalse(target.itemRemovedZeroArgumentFlag);
-		assertFalse(target.itemRemovedSingleArgumentFlag);
-		assertFalse(target.itemReplacedZeroArgumentFlag);
-		assertFalse(target.itemReplacedSingleArgumentFlag);
-		assertFalse(target.itemMovedZeroArgumentFlag);
-		assertFalse(target.itemMovedSingleArgumentFlag);
-		assertFalse(target.listClearedZeroArgumentFlag);
-		assertTrue(target.listClearedSingleArgumentFlag);
-		assertFalse(target.listChangedZeroArgumentFlag);
-		assertFalse(target.listChangedSingleArgumentFlag);
-	}
-
-	public void testListChangedZeroArgument() {
-		TestModel testModel = new TestModel();
-		String string = "foo";
-		testModel.addString(string);
-		Target target = new Target(testModel, TestModel.STRINGS_LIST, null, -1);
-		testModel.addListChangeListener(this.buildZeroArgumentListener(target));
-		testModel.replaceAllStrings(new String[] {"bar", "baz"});
-		assertFalse(target.itemAddedZeroArgumentFlag);
-		assertFalse(target.itemAddedSingleArgumentFlag);
-		assertFalse(target.itemRemovedZeroArgumentFlag);
-		assertFalse(target.itemRemovedSingleArgumentFlag);
-		assertFalse(target.itemReplacedZeroArgumentFlag);
-		assertFalse(target.itemReplacedSingleArgumentFlag);
-		assertFalse(target.itemMovedZeroArgumentFlag);
-		assertFalse(target.itemMovedSingleArgumentFlag);
-		assertFalse(target.listClearedZeroArgumentFlag);
-		assertFalse(target.listClearedSingleArgumentFlag);
-		assertTrue(target.listChangedZeroArgumentFlag);
-		assertFalse(target.listChangedSingleArgumentFlag);
-	}
-
-	public void testListChangedZeroArgumentNamedList() {
-		TestModel testModel = new TestModel();
-		String string = "foo";
-		testModel.addString(string);
-		Target target = new Target(testModel, TestModel.STRINGS_LIST, null, -1);
-		testModel.addListChangeListener(TestModel.STRINGS_LIST, this.buildZeroArgumentListener(target));
-		testModel.replaceAllStrings(new String[] {"bar", "baz"});
-		assertFalse(target.itemAddedZeroArgumentFlag);
-		assertFalse(target.itemAddedSingleArgumentFlag);
-		assertFalse(target.itemRemovedZeroArgumentFlag);
-		assertFalse(target.itemRemovedSingleArgumentFlag);
-		assertFalse(target.itemReplacedZeroArgumentFlag);
-		assertFalse(target.itemReplacedSingleArgumentFlag);
-		assertFalse(target.itemMovedZeroArgumentFlag);
-		assertFalse(target.itemMovedSingleArgumentFlag);
-		assertFalse(target.listClearedZeroArgumentFlag);
-		assertFalse(target.listClearedSingleArgumentFlag);
-		assertTrue(target.listChangedZeroArgumentFlag);
-		assertFalse(target.listChangedSingleArgumentFlag);
-	}
-
-	public void testListChangedSingleArgument() {
-		TestModel testModel = new TestModel();
-		String string = "foo";
-		testModel.addString(string);
-		Target target = new Target(testModel, TestModel.STRINGS_LIST, null, -1);
-		testModel.addListChangeListener(this.buildSingleArgumentListener(target));
-		testModel.replaceAllStrings(new String[] {"bar", "baz"});
-		assertFalse(target.itemAddedZeroArgumentFlag);
-		assertFalse(target.itemAddedSingleArgumentFlag);
-		assertFalse(target.itemRemovedZeroArgumentFlag);
-		assertFalse(target.itemRemovedSingleArgumentFlag);
-		assertFalse(target.itemReplacedZeroArgumentFlag);
-		assertFalse(target.itemReplacedSingleArgumentFlag);
-		assertFalse(target.itemMovedZeroArgumentFlag);
-		assertFalse(target.itemMovedSingleArgumentFlag);
-		assertFalse(target.listClearedZeroArgumentFlag);
-		assertFalse(target.listClearedSingleArgumentFlag);
-		assertFalse(target.listChangedZeroArgumentFlag);
-		assertTrue(target.listChangedSingleArgumentFlag);
-	}
-
-	public void testListChangedSingleArgumentNamedList() {
-		TestModel testModel = new TestModel();
-		String string = "foo";
-		testModel.addString(string);
-		Target target = new Target(testModel, TestModel.STRINGS_LIST, null, -1);
-		testModel.addListChangeListener(TestModel.STRINGS_LIST, this.buildSingleArgumentListener(target));
-		testModel.replaceAllStrings(new String[] {"bar", "baz"});
-		assertFalse(target.itemAddedZeroArgumentFlag);
-		assertFalse(target.itemAddedSingleArgumentFlag);
-		assertFalse(target.itemRemovedZeroArgumentFlag);
-		assertFalse(target.itemRemovedSingleArgumentFlag);
-		assertFalse(target.itemReplacedZeroArgumentFlag);
-		assertFalse(target.itemReplacedSingleArgumentFlag);
-		assertFalse(target.itemMovedZeroArgumentFlag);
-		assertFalse(target.itemMovedSingleArgumentFlag);
-		assertFalse(target.listClearedZeroArgumentFlag);
-		assertFalse(target.listClearedSingleArgumentFlag);
-		assertFalse(target.listChangedZeroArgumentFlag);
-		assertTrue(target.listChangedSingleArgumentFlag);
-	}
-
-	public void testBogusDoubleArgument1() {
-		TestModel testModel = new TestModel();
-		String string = "foo";
-		Target target = new Target(testModel, TestModel.STRINGS_LIST, string, 0);
-		boolean exCaught = false;
-		try {
-			ListChangeListener listener = ReflectiveChangeListener.buildListChangeListener(target, "listChangedDoubleArgument");
-			fail("bogus listener: " + listener);
-		} catch (RuntimeException ex) {
-			if (ex.getCause().getClass() == NoSuchMethodException.class) {
-				exCaught = true;
-			}
-		}
-		assertTrue(exCaught);
-	}
-
-	public void testBogusDoubleArgument2() throws Exception {
-		TestModel testModel = new TestModel();
-		String string = "foo";
-		Target target = new Target(testModel, TestModel.STRINGS_LIST, string, 0);
-		Method method = ClassTools.method(target, "listChangedDoubleArgument", new Class[] {ListChangeEvent.class, Object.class});
-		boolean exCaught = false;
-		try {
-			ListChangeListener listener = ReflectiveChangeListener.buildListChangeListener(target, method);
-			fail("bogus listener: " + listener);
-		} catch (RuntimeException ex) {
-			if (ex.getMessage().equals(method.toString())) {
-				exCaught = true;
-			}
-		}
-		assertTrue(exCaught);
-	}
-
-	public void testListenerMismatch() {
-		TestModel testModel = new TestModel();
-		String string = "foo";
-		Target target = new Target(testModel, TestModel.STRINGS_LIST, string, 0);
-		// build a LIST change listener and hack it so we
-		// can add it as a COLLECTION change listener
-		Object listener = ReflectiveChangeListener.buildListChangeListener(target, "itemAddedSingleArgument");
-		testModel.addCollectionChangeListener((CollectionChangeListener) listener);
-
-		boolean exCaught = false;
-		try {
-			testModel.changeCollection();
-			fail("listener mismatch: " + listener);
-		} catch (IllegalArgumentException ex) {
-			exCaught = true;
-		}
-		assertTrue(exCaught);
-	}
-
-
-	private class TestModel extends AbstractModel {
-		private List<String> strings = new ArrayList<String>();
-			public static final String STRINGS_LIST = "strings";
-		TestModel() {
-			super();
-		}
-		ListIterator<String> strings() {
-			return new CloneListIterator<String>(this.strings);
-		}
-		void addString(String string) {
-			this.addItemToList(string, this.strings, STRINGS_LIST);
-		}
-		void removeString(String string) {
-			this.removeItemFromList(this.strings.indexOf(string), this.strings, STRINGS_LIST);
-		}
-		void replaceString(String oldString, String newString) {
-			this.setItemInList(this.strings.indexOf(oldString), newString, this.strings, STRINGS_LIST);
-		}
-		void moveString(int targetIndex, int sourceIndex) {
-			this.moveItemInList(targetIndex, sourceIndex, this.strings, STRINGS_LIST);
-		}
-		void clearStrings() {
-			this.clearList(this.strings, STRINGS_LIST);
-		}
-		void replaceAllStrings(String[] newStrings) {
-			this.strings.clear();
-			CollectionTools.addAll(this.strings, newStrings);
-			this.fireListChanged(STRINGS_LIST);
-		}
-		void changeCollection() {
-			this.fireCollectionChanged("bogus collection");
-		}
-	}
-
-	private class Target {
-		TestModel testModel;
-		String listName;
-		String string;
-		int index;
-		String replacedString;
-		int sourceIndex;
-		boolean itemAddedZeroArgumentFlag = false;
-		boolean itemAddedSingleArgumentFlag = false;
-		boolean itemRemovedZeroArgumentFlag = false;
-		boolean itemRemovedSingleArgumentFlag = false;
-		boolean itemReplacedZeroArgumentFlag = false;
-		boolean itemReplacedSingleArgumentFlag = false;
-		boolean itemMovedZeroArgumentFlag = false;
-		boolean itemMovedSingleArgumentFlag = false;
-		boolean listClearedZeroArgumentFlag = false;
-		boolean listClearedSingleArgumentFlag = false;
-		boolean listChangedZeroArgumentFlag = false;
-		boolean listChangedSingleArgumentFlag = false;
-		Target(TestModel testModel, String listName, String string, int index) {
-			super();
-			this.testModel = testModel;
-			this.listName = listName;
-			this.string = string;
-			this.index = index;
-		}
-		Target(TestModel testModel, String listName, String string, int index, String replacedString) {
-			this(testModel, listName, string, index);
-			this.replacedString = replacedString;
-		}
-		Target(TestModel testModel, String listName, int targetIndex, int sourceIndex) {
-			super();
-			this.testModel = testModel;
-			this.listName = listName;
-			this.index = targetIndex;
-			this.sourceIndex = sourceIndex;
-		}
-		void itemAddedZeroArgument() {
-			this.itemAddedZeroArgumentFlag = true;
-		}
-		void itemAddedSingleArgument(ListChangeEvent e) {
-			this.itemAddedSingleArgumentFlag = true;
-			assertSame(this.testModel, e.getSource());
-			assertEquals(this.listName, e.getListName());
-			assertEquals(this.string, e.items().next());
-			assertEquals(this.index, e.getIndex());
-		}
-		void itemRemovedZeroArgument() {
-			this.itemRemovedZeroArgumentFlag = true;
-		}
-		void itemRemovedSingleArgument(ListChangeEvent e) {
-			this.itemRemovedSingleArgumentFlag = true;
-			assertSame(this.testModel, e.getSource());
-			assertEquals(this.listName, e.getListName());
-			assertEquals(this.string, e.items().next());
-			assertEquals(this.index, e.getIndex());
-		}
-		void itemReplacedZeroArgument() {
-			this.itemReplacedZeroArgumentFlag = true;
-		}
-		void itemReplacedSingleArgument(ListChangeEvent e) {
-			this.itemReplacedSingleArgumentFlag = true;
-			assertSame(this.testModel, e.getSource());
-			assertEquals(this.listName, e.getListName());
-			assertEquals(this.string, e.items().next());
-			assertEquals(this.replacedString, e.replacedItems().next());
-			assertEquals(this.index, e.getIndex());
-		}
-		void itemMovedZeroArgument() {
-			this.itemMovedZeroArgumentFlag = true;
-		}
-		void itemMovedSingleArgument(ListChangeEvent e) {
-			this.itemMovedSingleArgumentFlag = true;
-			assertSame(this.testModel, e.getSource());
-			assertEquals(this.listName, e.getListName());
-			assertEquals(this.index, e.getTargetIndex());
-			assertEquals(this.sourceIndex, e.getSourceIndex());
-		}
-		void listChangedZeroArgument() {
-			this.listChangedZeroArgumentFlag = true;
-		}
-		void listClearedSingleArgument(ListChangeEvent e) {
-			this.listClearedSingleArgumentFlag = true;
-			assertSame(this.testModel, e.getSource());
-			assertEquals(this.listName, e.getListName());
-			assertFalse(e.items().hasNext());
-			assertEquals(this.index, e.getIndex());
-		}
-		void listClearedZeroArgument() {
-			this.listClearedZeroArgumentFlag = true;
-		}
-		void listChangedSingleArgument(ListChangeEvent e) {
-			this.listChangedSingleArgumentFlag = true;
-			assertSame(this.testModel, e.getSource());
-			assertEquals(this.listName, e.getListName());
-			assertFalse(e.items().hasNext());
-			assertEquals(this.index, e.getIndex());
-		}
-		void listChangedDoubleArgument(ListChangeEvent e, Object o) {
-			fail("bogus event: " + e);
-		}
-	}
-
-}
diff --git a/jpa/tests/org.eclipse.jpt.utility.tests/src/org/eclipse/jpt/utility/tests/internal/model/listener/ReflectivePropertyChangeListenerTests.java b/jpa/tests/org.eclipse.jpt.utility.tests/src/org/eclipse/jpt/utility/tests/internal/model/listener/ReflectivePropertyChangeListenerTests.java
deleted file mode 100644
index cf3734b..0000000
--- a/jpa/tests/org.eclipse.jpt.utility.tests/src/org/eclipse/jpt/utility/tests/internal/model/listener/ReflectivePropertyChangeListenerTests.java
+++ /dev/null
@@ -1,193 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2008 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.utility.tests.internal.model.listener;
-
-import java.lang.reflect.Method;
-import junit.framework.TestCase;
-import org.eclipse.jpt.utility.internal.ClassTools;
-import org.eclipse.jpt.utility.internal.model.AbstractModel;
-import org.eclipse.jpt.utility.model.event.PropertyChangeEvent;
-import org.eclipse.jpt.utility.model.listener.PropertyChangeListener;
-import org.eclipse.jpt.utility.model.listener.ReflectiveChangeListener;
-import org.eclipse.jpt.utility.model.listener.StateChangeListener;
-
-public class ReflectivePropertyChangeListenerTests extends TestCase {
-	
-	public ReflectivePropertyChangeListenerTests(String name) {
-		super(name);
-	}
-
-	public void testZeroArgument() {
-		TestModel testModel = new TestModel(7);
-		Target target = new Target(testModel, TestModel.VALUE_PROPERTY, 7, 99);
-		testModel.addPropertyChangeListener(ReflectiveChangeListener.buildPropertyChangeListener(target, "propertyChangedZeroArgument"));
-		testModel.setValue(99);
-		assertTrue(target.zeroArgumentFlag);
-		assertFalse(target.singleArgumentFlag);
-	}
-
-	public void testZeroArgumentNamedProperty() {
-		TestModel testModel = new TestModel(7);
-		Target target = new Target(testModel, TestModel.VALUE_PROPERTY, 7, 99);
-		testModel.addPropertyChangeListener(TestModel.VALUE_PROPERTY, ReflectiveChangeListener.buildPropertyChangeListener(target, "propertyChangedZeroArgument"));
-		testModel.setValue(99);
-		assertTrue(target.zeroArgumentFlag);
-		assertFalse(target.singleArgumentFlag);
-	}
-
-	public void testSingleArgument() {
-		TestModel testModel = new TestModel(7);
-		Target target = new Target(testModel, TestModel.VALUE_PROPERTY, 7, 99);
-		testModel.addPropertyChangeListener(ReflectiveChangeListener.buildPropertyChangeListener(target, "propertyChangedSingleArgument"));
-		testModel.setValue(99);
-		assertFalse(target.zeroArgumentFlag);
-		assertTrue(target.singleArgumentFlag);
-	}
-
-	/**
-	 * test method that has more general method parameter type
-	 */
-	public void testSingleArgument2() throws Exception {
-		TestModel testModel = new TestModel(7);
-		Target target = new Target(testModel, TestModel.VALUE_PROPERTY, 7, 99);
-		Method method = ClassTools.method(target, "propertyChangedSingleArgument2", new Class[] {Object.class});
-		testModel.addPropertyChangeListener(ReflectiveChangeListener.buildPropertyChangeListener(target, method));
-		testModel.setValue(99);
-		assertFalse(target.zeroArgumentFlag);
-		assertTrue(target.singleArgumentFlag);
-	}
-
-	public void testSingleArgumentNamedProperty() {
-		TestModel testModel = new TestModel(7);
-		Target target = new Target(testModel, TestModel.VALUE_PROPERTY, 7, 99);
-		testModel.addPropertyChangeListener(TestModel.VALUE_PROPERTY, ReflectiveChangeListener.buildPropertyChangeListener(target, "propertyChangedSingleArgument"));
-		testModel.setValue(99);
-		assertFalse(target.zeroArgumentFlag);
-		assertTrue(target.singleArgumentFlag);
-	}
-
-	/**
-	 * test method that has more general method parameter type
-	 */
-	public void testSingleArgumentNamedProperty2() throws Exception {
-		TestModel testModel = new TestModel(7);
-		Target target = new Target(testModel, TestModel.VALUE_PROPERTY, 7, 99);
-		Method method = ClassTools.method(target, "propertyChangedSingleArgument2", new Class[] {Object.class});
-		testModel.addPropertyChangeListener(TestModel.VALUE_PROPERTY, ReflectiveChangeListener.buildPropertyChangeListener(target, method));
-		testModel.setValue(99);
-		assertFalse(target.zeroArgumentFlag);
-		assertTrue(target.singleArgumentFlag);
-	}
-
-	public void testListenerMismatch() {
-		TestModel testModel = new TestModel(7);
-		Target target = new Target(testModel, TestModel.VALUE_PROPERTY, 7, 99);
-		// build a PROPERTY change listener and hack it so we
-		// can add it as a STATE change listener
-		Object listener = ReflectiveChangeListener.buildPropertyChangeListener(target, "propertyChangedSingleArgument");
-		testModel.addStateChangeListener((StateChangeListener) listener);
-
-		boolean exCaught = false;
-		try {
-			testModel.setValue(99);
-			fail("listener mismatch: " + listener);
-		} catch (IllegalArgumentException ex) {
-			exCaught = true;
-		}
-		assertTrue(exCaught);
-	}
-
-	public void testBogusDoubleArgument1() {
-		TestModel testModel = new TestModel(7);
-		Target target = new Target(testModel, TestModel.VALUE_PROPERTY, 7, 99);
-		boolean exCaught = false;
-		try {
-			PropertyChangeListener listener = ReflectiveChangeListener.buildPropertyChangeListener(target, "stateChangedDoubleArgument");
-			fail("bogus listener: " + listener);
-		} catch (RuntimeException ex) {
-			if (ex.getCause().getClass() == NoSuchMethodException.class) {
-				exCaught = true;
-			}
-		}
-		assertTrue(exCaught);
-	}
-
-	public void testBogusDoubleArgument2() throws Exception {
-		TestModel testModel = new TestModel(7);
-		Target target = new Target(testModel, TestModel.VALUE_PROPERTY, 7, 99);
-		Method method = ClassTools.method(target, "propertyChangedDoubleArgument", new Class[] {PropertyChangeEvent.class, Object.class});
-		boolean exCaught = false;
-		try {
-			PropertyChangeListener listener = ReflectiveChangeListener.buildPropertyChangeListener(target, method);
-			fail("bogus listener: " + listener);
-		} catch (RuntimeException ex) {
-			if (ex.getMessage().equals(method.toString())) {
-				exCaught = true;
-			}
-		}
-		assertTrue(exCaught);
-	}
-
-
-	private class TestModel extends AbstractModel {
-		private int value = 0;
-			public static final String VALUE_PROPERTY = "value";
-		TestModel(int value) {
-			super();
-			this.value = value;
-		}
-		void setValue(int value) {
-			int old = this.value;
-			this.value = value;
-			this.firePropertyChanged(VALUE_PROPERTY, old, value);
-			if (old != value) {
-				this.fireStateChanged();
-			}
-		}
-	}
-
-	private class Target {
-		TestModel testModel;
-		String propertyName;
-		Object oldValue;
-		Object newValue;
-		boolean zeroArgumentFlag = false;
-		boolean singleArgumentFlag = false;
-		Target(TestModel testModel, String propertyName, int oldValue, int newValue) {
-			super();
-			this.testModel = testModel;
-			this.propertyName = propertyName;
-			this.oldValue = new Integer(oldValue);
-			this.newValue = new Integer(newValue);
-		}
-		void propertyChangedZeroArgument() {
-			this.zeroArgumentFlag = true;
-		}
-		void propertyChangedSingleArgument(PropertyChangeEvent e) {
-			this.singleArgumentFlag = true;
-			assertSame(this.testModel, e.getSource());
-			assertEquals(this.propertyName, e.getPropertyName());
-			assertEquals(this.oldValue, e.getOldValue());
-			assertEquals(this.newValue, e.getNewValue());
-		}
-		void propertyChangedSingleArgument2(Object o) {
-			PropertyChangeEvent e = (PropertyChangeEvent) o;
-			this.singleArgumentFlag = true;
-			assertSame(this.testModel, e.getSource());
-			assertEquals(this.propertyName, e.getPropertyName());
-			assertEquals(this.oldValue, e.getOldValue());
-			assertEquals(this.newValue, e.getNewValue());
-		}
-		void propertyChangedDoubleArgument(PropertyChangeEvent e, Object o) {
-			fail("bogus event: " + e);
-		}
-	}
-
-}
diff --git a/jpa/tests/org.eclipse.jpt.utility.tests/src/org/eclipse/jpt/utility/tests/internal/model/listener/ReflectiveStateChangeListenerTests.java b/jpa/tests/org.eclipse.jpt.utility.tests/src/org/eclipse/jpt/utility/tests/internal/model/listener/ReflectiveStateChangeListenerTests.java
deleted file mode 100644
index fce7db4..0000000
--- a/jpa/tests/org.eclipse.jpt.utility.tests/src/org/eclipse/jpt/utility/tests/internal/model/listener/ReflectiveStateChangeListenerTests.java
+++ /dev/null
@@ -1,144 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2008 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.utility.tests.internal.model.listener;
-
-import java.lang.reflect.Method;
-import junit.framework.TestCase;
-import org.eclipse.jpt.utility.internal.ClassTools;
-import org.eclipse.jpt.utility.internal.model.AbstractModel;
-import org.eclipse.jpt.utility.model.event.StateChangeEvent;
-import org.eclipse.jpt.utility.model.listener.PropertyChangeListener;
-import org.eclipse.jpt.utility.model.listener.ReflectiveChangeListener;
-import org.eclipse.jpt.utility.model.listener.StateChangeListener;
-
-public class ReflectiveStateChangeListenerTests extends TestCase {
-	
-	public ReflectiveStateChangeListenerTests(String name) {
-		super(name);
-	}
-
-	public void testZeroArgument() {
-		TestModel testModel = new TestModel();
-		Target target = new Target(testModel);
-		testModel.addStateChangeListener(ReflectiveChangeListener.buildStateChangeListener(target, "stateChangedZeroArgument"));
-		testModel.changeState();
-		assertTrue(target.zeroArgumentFlag);
-		assertFalse(target.singleArgumentFlag);
-	}
-
-	public void testSingleArgument() {
-		TestModel testModel = new TestModel();
-		Target target = new Target(testModel);
-		testModel.addStateChangeListener(ReflectiveChangeListener.buildStateChangeListener(target, "stateChangedSingleArgument"));
-		testModel.changeState();
-		assertFalse(target.zeroArgumentFlag);
-		assertTrue(target.singleArgumentFlag);
-	}
-
-	/**
-	 * test method that has more general method parameter type
-	 */
-	public void testSingleArgument2() throws Exception {
-		TestModel testModel = new TestModel();
-		Target target = new Target(testModel);
-		Method method = ClassTools.method(target, "stateChangedSingleArgument2", new Class[] {Object.class});
-		testModel.addStateChangeListener(ReflectiveChangeListener.buildStateChangeListener(target, method));
-		testModel.changeState();
-		assertFalse(target.zeroArgumentFlag);
-		assertTrue(target.singleArgumentFlag);
-	}
-
-	public void testListenerMismatch() {
-		TestModel testModel = new TestModel();
-		Target target = new Target(testModel);
-		// build a STATE change listener and hack it so we
-		// can add it as a PROPERTY change listener
-		Object listener = ReflectiveChangeListener.buildStateChangeListener(target, "stateChangedSingleArgument");
-		testModel.addPropertyChangeListener((PropertyChangeListener) listener);
-
-		boolean exCaught = false;
-		try {
-			testModel.changeProperty();
-			fail("listener mismatch: " + listener);
-		} catch (IllegalArgumentException ex) {
-			exCaught = true;
-		}
-		assertTrue(exCaught);
-	}
-
-	public void testBogusDoubleArgument1() {
-		TestModel testModel = new TestModel();
-		Target target = new Target(testModel);
-		boolean exCaught = false;
-		try {
-			StateChangeListener listener = ReflectiveChangeListener.buildStateChangeListener(target, "stateChangedDoubleArgument");
-			fail("bogus listener: " + listener);
-		} catch (RuntimeException ex) {
-			if (ex.getCause().getClass() == NoSuchMethodException.class) {
-				exCaught = true;
-			}
-		}
-		assertTrue(exCaught);
-	}
-
-	public void testBogusDoubleArgument2() throws Exception {
-		TestModel testModel = new TestModel();
-		Target target = new Target(testModel);
-		Method method = ClassTools.method(target, "stateChangedDoubleArgument", new Class[] {StateChangeEvent.class, Object.class});
-		boolean exCaught = false;
-		try {
-			StateChangeListener listener = ReflectiveChangeListener.buildStateChangeListener(target, method);
-			fail("bogus listener: " + listener);
-		} catch (RuntimeException ex) {
-			if (ex.getMessage().equals(method.toString())) {
-				exCaught = true;
-			}
-		}
-		assertTrue(exCaught);
-	}
-
-
-	private class TestModel extends AbstractModel {
-		TestModel() {
-			super();
-		}
-		void changeState() {
-			this.fireStateChanged();
-		}
-		void changeProperty() {
-			this.firePropertyChanged("value", 55, 42);
-		}
-	}
-
-	private class Target {
-		TestModel testModel;
-		boolean zeroArgumentFlag = false;
-		boolean singleArgumentFlag = false;
-		Target(TestModel testModel) {
-			super();
-			this.testModel = testModel;
-		}
-		void stateChangedZeroArgument() {
-			this.zeroArgumentFlag = true;
-		}
-		void stateChangedSingleArgument(StateChangeEvent e) {
-			this.singleArgumentFlag = true;
-			assertSame(this.testModel, e.getSource());
-		}
-		void stateChangedSingleArgument2(Object e) {
-			this.singleArgumentFlag = true;
-			assertSame(this.testModel, ((StateChangeEvent) e).getSource());
-		}
-		void stateChangedDoubleArgument(StateChangeEvent e, Object o) {
-			fail("bogus event: " + e);
-		}
-	}
-
-}
diff --git a/jpa/tests/org.eclipse.jpt.utility.tests/src/org/eclipse/jpt/utility/tests/internal/model/listener/ReflectiveTreeChangeListenerTests.java b/jpa/tests/org.eclipse.jpt.utility.tests/src/org/eclipse/jpt/utility/tests/internal/model/listener/ReflectiveTreeChangeListenerTests.java
deleted file mode 100644
index 8072da2..0000000
--- a/jpa/tests/org.eclipse.jpt.utility.tests/src/org/eclipse/jpt/utility/tests/internal/model/listener/ReflectiveTreeChangeListenerTests.java
+++ /dev/null
@@ -1,513 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2008 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.utility.tests.internal.model.listener;
-
-import java.lang.reflect.Method;
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.Collection;
-import java.util.HashMap;
-import java.util.Iterator;
-import java.util.List;
-import java.util.Map;
-import junit.framework.TestCase;
-import org.eclipse.jpt.utility.internal.ClassTools;
-import org.eclipse.jpt.utility.internal.CollectionTools;
-import org.eclipse.jpt.utility.internal.iterators.CloneIterator;
-import org.eclipse.jpt.utility.internal.model.AbstractModel;
-import org.eclipse.jpt.utility.model.event.TreeChangeEvent;
-import org.eclipse.jpt.utility.model.listener.CollectionChangeListener;
-import org.eclipse.jpt.utility.model.listener.ReflectiveChangeListener;
-import org.eclipse.jpt.utility.model.listener.TreeChangeListener;
-
-public class ReflectiveTreeChangeListenerTests extends TestCase {
-	
-	public ReflectiveTreeChangeListenerTests(String name) {
-		super(name);
-	}
-
-	private TreeChangeListener buildZeroArgumentListener(Object target) {
-		return ReflectiveChangeListener.buildTreeChangeListener(target, "nodeAddedZeroArgument", "nodeRemovedZeroArgument", "treeClearedZeroArgument", "treeChangedZeroArgument");
-	}
-
-	private TreeChangeListener buildSingleArgumentListener(Object target) {
-		return ReflectiveChangeListener.buildTreeChangeListener(target, "nodeAddedSingleArgument", "nodeRemovedSingleArgument", "treeClearedSingleArgument", "treeChangedSingleArgument");
-	}
-
-	public void testNodeAddedZeroArgument() {
-		TestModel testModel = new TestModel("root");
-		Target target = new Target(testModel, TestModel.STRINGS_TREE, new String[]{"root", "child"});
-		testModel.addTreeChangeListener(this.buildZeroArgumentListener(target));
-		testModel.addNode("root", "child");
-		assertTrue(target.nodeAddedZeroArgumentFlag);
-		assertFalse(target.nodeAddedSingleArgumentFlag);
-		assertFalse(target.nodeRemovedZeroArgumentFlag);
-		assertFalse(target.nodeRemovedSingleArgumentFlag);
-		assertFalse(target.treeClearedZeroArgumentFlag);
-		assertFalse(target.treeClearedSingleArgumentFlag);
-		assertFalse(target.treeChangedZeroArgumentFlag);
-		assertFalse(target.treeChangedSingleArgumentFlag);
-	}
-
-	public void testNodeAddedZeroArgumentNamedTree() {
-		TestModel testModel = new TestModel("root");
-		Target target = new Target(testModel, TestModel.STRINGS_TREE, new String[]{"root", "child"});
-		testModel.addTreeChangeListener(TestModel.STRINGS_TREE, this.buildZeroArgumentListener(target));
-		testModel.addNode("root", "child");
-		assertTrue(target.nodeAddedZeroArgumentFlag);
-		assertFalse(target.nodeAddedSingleArgumentFlag);
-		assertFalse(target.nodeRemovedZeroArgumentFlag);
-		assertFalse(target.nodeRemovedSingleArgumentFlag);
-		assertFalse(target.treeClearedZeroArgumentFlag);
-		assertFalse(target.treeClearedSingleArgumentFlag);
-		assertFalse(target.treeChangedZeroArgumentFlag);
-		assertFalse(target.treeChangedSingleArgumentFlag);
-	}
-
-	public void testNodeAddedSingleArgument() {
-		TestModel testModel = new TestModel("root");
-		Target target = new Target(testModel, TestModel.STRINGS_TREE, new String[]{"root", "child"});
-		testModel.addTreeChangeListener(this.buildSingleArgumentListener(target));
-		testModel.addNode("root", "child");
-		assertFalse(target.nodeAddedZeroArgumentFlag);
-		assertTrue(target.nodeAddedSingleArgumentFlag);
-		assertFalse(target.nodeRemovedZeroArgumentFlag);
-		assertFalse(target.nodeRemovedSingleArgumentFlag);
-		assertFalse(target.treeClearedZeroArgumentFlag);
-		assertFalse(target.treeClearedSingleArgumentFlag);
-		assertFalse(target.treeChangedZeroArgumentFlag);
-		assertFalse(target.treeChangedSingleArgumentFlag);
-	}
-
-	public void testNodeAddedSingleArgumentNamedTree() {
-		TestModel testModel = new TestModel("root");
-		Target target = new Target(testModel, TestModel.STRINGS_TREE, new String[]{"root", "child"});
-		testModel.addTreeChangeListener(TestModel.STRINGS_TREE, this.buildSingleArgumentListener(target));
-		testModel.addNode("root", "child");
-		assertFalse(target.nodeAddedZeroArgumentFlag);
-		assertTrue(target.nodeAddedSingleArgumentFlag);
-		assertFalse(target.nodeRemovedZeroArgumentFlag);
-		assertFalse(target.nodeRemovedSingleArgumentFlag);
-		assertFalse(target.treeClearedZeroArgumentFlag);
-		assertFalse(target.treeClearedSingleArgumentFlag);
-		assertFalse(target.treeChangedZeroArgumentFlag);
-		assertFalse(target.treeChangedSingleArgumentFlag);
-	}
-
-	public void testNodeRemovedZeroArgument() {
-		TestModel testModel = new TestModel("root");
-		testModel.addNode("root", "child");
-		Target target = new Target(testModel, TestModel.STRINGS_TREE, new String[]{"root", "child"});
-		testModel.addTreeChangeListener(this.buildZeroArgumentListener(target));
-		testModel.removeNode("child");
-		assertFalse(target.nodeAddedZeroArgumentFlag);
-		assertFalse(target.nodeAddedSingleArgumentFlag);
-		assertTrue(target.nodeRemovedZeroArgumentFlag);
-		assertFalse(target.nodeRemovedSingleArgumentFlag);
-		assertFalse(target.treeClearedZeroArgumentFlag);
-		assertFalse(target.treeClearedSingleArgumentFlag);
-		assertFalse(target.treeChangedZeroArgumentFlag);
-		assertFalse(target.treeChangedSingleArgumentFlag);
-	}
-
-	public void testNodeRemovedZeroArgumentNamedTree() {
-		TestModel testModel = new TestModel("root");
-		testModel.addNode("root", "child");
-		Target target = new Target(testModel, TestModel.STRINGS_TREE, new String[]{"root", "child"});
-		testModel.addTreeChangeListener(TestModel.STRINGS_TREE, this.buildZeroArgumentListener(target));
-		testModel.removeNode("child");
-		assertFalse(target.nodeAddedZeroArgumentFlag);
-		assertFalse(target.nodeAddedSingleArgumentFlag);
-		assertTrue(target.nodeRemovedZeroArgumentFlag);
-		assertFalse(target.nodeRemovedSingleArgumentFlag);
-		assertFalse(target.treeClearedZeroArgumentFlag);
-		assertFalse(target.treeClearedSingleArgumentFlag);
-		assertFalse(target.treeChangedZeroArgumentFlag);
-		assertFalse(target.treeChangedSingleArgumentFlag);
-	}
-
-	public void testNodeRemovedSingleArgument() {
-		TestModel testModel = new TestModel("root");
-		testModel.addNode("root", "child");
-		Target target = new Target(testModel, TestModel.STRINGS_TREE, new String[]{"root", "child"});
-		testModel.addTreeChangeListener(this.buildSingleArgumentListener(target));
-		testModel.removeNode("child");
-		assertFalse(target.nodeAddedZeroArgumentFlag);
-		assertFalse(target.nodeAddedSingleArgumentFlag);
-		assertFalse(target.nodeRemovedZeroArgumentFlag);
-		assertTrue(target.nodeRemovedSingleArgumentFlag);
-		assertFalse(target.treeClearedZeroArgumentFlag);
-		assertFalse(target.treeClearedSingleArgumentFlag);
-		assertFalse(target.treeChangedZeroArgumentFlag);
-		assertFalse(target.treeChangedSingleArgumentFlag);
-	}
-
-	public void testNodeRemovedSingleArgumentNamedTree() {
-		TestModel testModel = new TestModel("root");
-		testModel.addNode("root", "child");
-		Target target = new Target(testModel, TestModel.STRINGS_TREE, new String[]{"root", "child"});
-		testModel.addTreeChangeListener(TestModel.STRINGS_TREE, this.buildSingleArgumentListener(target));
-		testModel.removeNode("child");
-		assertFalse(target.nodeAddedZeroArgumentFlag);
-		assertFalse(target.nodeAddedSingleArgumentFlag);
-		assertFalse(target.nodeRemovedZeroArgumentFlag);
-		assertTrue(target.nodeRemovedSingleArgumentFlag);
-		assertFalse(target.treeClearedZeroArgumentFlag);
-		assertFalse(target.treeClearedSingleArgumentFlag);
-		assertFalse(target.treeChangedZeroArgumentFlag);
-		assertFalse(target.treeChangedSingleArgumentFlag);
-	}
-
-	public void testTreeClearedZeroArgument() {
-		TestModel testModel = new TestModel("root");
-		testModel.addNode("root", "child");
-		testModel.addNode("child", "grandchild");
-		Target target = new Target(testModel, TestModel.STRINGS_TREE, new String[0]);
-		testModel.addTreeChangeListener(this.buildZeroArgumentListener(target));
-		testModel.clearTree();
-		assertFalse(target.nodeAddedZeroArgumentFlag);
-		assertFalse(target.nodeAddedSingleArgumentFlag);
-		assertFalse(target.nodeRemovedZeroArgumentFlag);
-		assertFalse(target.nodeRemovedSingleArgumentFlag);
-		assertTrue(target.treeClearedZeroArgumentFlag);
-		assertFalse(target.treeClearedSingleArgumentFlag);
-		assertFalse(target.treeChangedZeroArgumentFlag);
-		assertFalse(target.treeChangedSingleArgumentFlag);
-	}
-
-	public void testTreeClearedZeroArgumentNamedTree() {
-		TestModel testModel = new TestModel("root");
-		testModel.addNode("root", "child");
-		testModel.addNode("child", "grandchild");
-		Target target = new Target(testModel, TestModel.STRINGS_TREE, new String[0]);
-		testModel.addTreeChangeListener(TestModel.STRINGS_TREE, this.buildZeroArgumentListener(target));
-		testModel.clearTree();
-		assertFalse(target.nodeAddedZeroArgumentFlag);
-		assertFalse(target.nodeAddedSingleArgumentFlag);
-		assertFalse(target.nodeRemovedZeroArgumentFlag);
-		assertFalse(target.nodeRemovedSingleArgumentFlag);
-		assertTrue(target.treeClearedZeroArgumentFlag);
-		assertFalse(target.treeClearedSingleArgumentFlag);
-		assertFalse(target.treeChangedZeroArgumentFlag);
-		assertFalse(target.treeChangedSingleArgumentFlag);
-	}
-
-	public void testTreeClearedSingleArgument() {
-		TestModel testModel = new TestModel("root");
-		testModel.addNode("root", "child");
-		testModel.addNode("child", "grandchild");
-		Target target = new Target(testModel, TestModel.STRINGS_TREE, new String[0]);
-		testModel.addTreeChangeListener(this.buildSingleArgumentListener(target));
-		testModel.clearTree();
-		assertFalse(target.nodeAddedZeroArgumentFlag);
-		assertFalse(target.nodeAddedSingleArgumentFlag);
-		assertFalse(target.nodeRemovedZeroArgumentFlag);
-		assertFalse(target.nodeRemovedSingleArgumentFlag);
-		assertFalse(target.treeClearedZeroArgumentFlag);
-		assertTrue(target.treeClearedSingleArgumentFlag);
-		assertFalse(target.treeChangedZeroArgumentFlag);
-		assertFalse(target.treeChangedSingleArgumentFlag);
-	}
-
-	public void testTreeClearedSingleArgumentNamedTree() {
-		TestModel testModel = new TestModel("root");
-		testModel.addNode("root", "child");
-		testModel.addNode("child", "grandchild");
-		Target target = new Target(testModel, TestModel.STRINGS_TREE, new String[0]);
-		testModel.addTreeChangeListener(TestModel.STRINGS_TREE, this.buildSingleArgumentListener(target));
-		testModel.clearTree();
-		assertFalse(target.nodeAddedZeroArgumentFlag);
-		assertFalse(target.nodeAddedSingleArgumentFlag);
-		assertFalse(target.nodeRemovedZeroArgumentFlag);
-		assertFalse(target.nodeRemovedSingleArgumentFlag);
-		assertFalse(target.treeClearedZeroArgumentFlag);
-		assertTrue(target.treeClearedSingleArgumentFlag);
-		assertFalse(target.treeChangedZeroArgumentFlag);
-		assertFalse(target.treeChangedSingleArgumentFlag);
-	}
-
-	public void testTreeChangedZeroArgument() {
-		TestModel testModel = new TestModel("root");
-		testModel.addNode("root", "child");
-		Target target = new Target(testModel, TestModel.STRINGS_TREE, new String[]{"root", "another child"});
-		testModel.addTreeChangeListener(this.buildZeroArgumentListener(target));
-		testModel.replaceNode("child", "another child");
-		assertFalse(target.nodeAddedZeroArgumentFlag);
-		assertFalse(target.nodeAddedSingleArgumentFlag);
-		assertFalse(target.nodeRemovedZeroArgumentFlag);
-		assertFalse(target.nodeRemovedSingleArgumentFlag);
-		assertFalse(target.treeClearedZeroArgumentFlag);
-		assertFalse(target.treeClearedSingleArgumentFlag);
-		assertTrue(target.treeChangedZeroArgumentFlag);
-		assertFalse(target.treeChangedSingleArgumentFlag);
-	}
-
-	public void testTreeChangedZeroArgumentNamedTree() {
-		TestModel testModel = new TestModel("root");
-		testModel.addNode("root", "child");
-		Target target = new Target(testModel, TestModel.STRINGS_TREE, new String[]{"root", "another child"});
-		testModel.addTreeChangeListener(TestModel.STRINGS_TREE, this.buildZeroArgumentListener(target));
-		testModel.replaceNode("child", "another child");
-		assertFalse(target.nodeAddedZeroArgumentFlag);
-		assertFalse(target.nodeAddedSingleArgumentFlag);
-		assertFalse(target.nodeRemovedZeroArgumentFlag);
-		assertFalse(target.nodeRemovedSingleArgumentFlag);
-		assertFalse(target.treeClearedZeroArgumentFlag);
-		assertFalse(target.treeClearedSingleArgumentFlag);
-		assertTrue(target.treeChangedZeroArgumentFlag);
-		assertFalse(target.treeChangedSingleArgumentFlag);
-	}
-
-	public void testTreeChangedSingleArgument() {
-		TestModel testModel = new TestModel("root");
-		testModel.addNode("root", "child");
-		Target target = new Target(testModel, TestModel.STRINGS_TREE, new String[]{"root", "another child"});
-		testModel.addTreeChangeListener(this.buildSingleArgumentListener(target));
-		testModel.replaceNode("child", "another child");
-		assertFalse(target.nodeAddedZeroArgumentFlag);
-		assertFalse(target.nodeAddedSingleArgumentFlag);
-		assertFalse(target.nodeRemovedZeroArgumentFlag);
-		assertFalse(target.nodeRemovedSingleArgumentFlag);
-		assertFalse(target.treeClearedZeroArgumentFlag);
-		assertFalse(target.treeClearedSingleArgumentFlag);
-		assertFalse(target.treeChangedZeroArgumentFlag);
-		assertTrue(target.treeChangedSingleArgumentFlag);
-	}
-
-	public void testTreeChangedSingleArgumentNamedTree() {
-		TestModel testModel = new TestModel("root");
-		testModel.addNode("root", "child");
-		Target target = new Target(testModel, TestModel.STRINGS_TREE, new String[]{"root", "another child"});
-		testModel.addTreeChangeListener(TestModel.STRINGS_TREE, this.buildSingleArgumentListener(target));
-		testModel.replaceNode("child", "another child");
-		assertFalse(target.nodeAddedZeroArgumentFlag);
-		assertFalse(target.nodeAddedSingleArgumentFlag);
-		assertFalse(target.nodeRemovedZeroArgumentFlag);
-		assertFalse(target.nodeRemovedSingleArgumentFlag);
-		assertFalse(target.treeClearedZeroArgumentFlag);
-		assertFalse(target.treeClearedSingleArgumentFlag);
-		assertFalse(target.treeChangedZeroArgumentFlag);
-		assertTrue(target.treeChangedSingleArgumentFlag);
-	}
-
-	public void testBogusDoubleArgument1() {
-		TestModel testModel = new TestModel("root");
-		testModel.addNode("root", "child");
-		Target target = new Target(testModel, TestModel.STRINGS_TREE, new String[]{"root", "child"});
-		boolean exCaught = false;
-		try {
-			TreeChangeListener listener = ReflectiveChangeListener.buildTreeChangeListener(target, "collectionChangedDoubleArgument");
-			fail("bogus listener: " + listener);
-		} catch (RuntimeException ex) {
-			if (ex.getCause().getClass() == NoSuchMethodException.class) {
-				exCaught = true;
-			}
-		}
-		assertTrue(exCaught);
-	}
-
-	public void testBogusDoubleArgument2() throws Exception {
-		TestModel testModel = new TestModel("root");
-		testModel.addNode("root", "child");
-		Target target = new Target(testModel, TestModel.STRINGS_TREE, new String[]{"root", "child"});
-		Method method = ClassTools.method(target, "collectionChangedDoubleArgument", new Class[] {TreeChangeEvent.class, Object.class});
-		boolean exCaught = false;
-		try {
-			TreeChangeListener listener = ReflectiveChangeListener.buildTreeChangeListener(target, method);
-			fail("bogus listener: " + listener);
-		} catch (RuntimeException ex) {
-			if (ex.getMessage().equals(method.toString())) {
-				exCaught = true;
-			}
-		}
-		assertTrue(exCaught);
-	}
-
-	public void testListenerMismatch() {
-		TestModel testModel = new TestModel("root");
-		testModel.addNode("root", "child");
-		Target target = new Target(testModel, TestModel.STRINGS_TREE, new String[]{"root", "child"});
-		// build a TREE change listener and hack it so we
-		// can add it as a COLLECTION change listener
-		Object listener = ReflectiveChangeListener.buildTreeChangeListener(target, "nodeAddedSingleArgument");
-		testModel.addCollectionChangeListener((CollectionChangeListener) listener);
-
-		boolean exCaught = false;
-		try {
-			testModel.changeCollection();
-			fail("listener mismatch: " + listener);
-		} catch (IllegalArgumentException ex) {
-			exCaught = true;
-		}
-		assertTrue(exCaught);
-	}
-
-
-	private class TestModel extends AbstractModel {
-		private final String root;
-		private Map<String, Collection<String>> childrenLists = new HashMap<String, Collection<String>>();
-		private Map<String, String> parents = new HashMap<String, String>();
-			public static final String STRINGS_TREE = "strings";
-		TestModel(String root) {
-			super();
-			if (root == null) {
-				throw new NullPointerException();
-			}
-			this.root = root;
-			this.childrenLists.put(root, new ArrayList<String>());
-			this.parents.put(root, null);
-		}
-		String getRoot() {
-			return this.root;
-		}
-		private String[] path(String node) {
-			String temp = node;
-			List<String> reversePath = new ArrayList<String>();
-			do {
-				reversePath.add(temp);
-				temp = this.parents.get(temp);
-			} while (temp != null);
-			return CollectionTools.reverse(reversePath).toArray(new String[reversePath.size()]);
-		}
-		Iterator<String> strings() {
-			return new CloneIterator<String>(this.childrenLists.keySet()) {
-				@Override
-				protected void remove(String s) {
-					TestModel.this.removeNode(s);
-				}
-			};
-		}
-		void addNode(String parent, String child) {
-			if ((parent == null) || (child == null)) {
-				throw new NullPointerException();
-			}
-
-			Collection<String> children = this.childrenLists.get(parent);
-			if (children == null) {
-				throw new IllegalStateException("cannot add a child to a non-existent parent");
-			}
-
-			if (this.childrenLists.get(child) != null) {
-				throw new IllegalStateException("cannot add a child that is already in the tree");
-			}
-			
-			children.add(child);
-			this.childrenLists.put(child, new ArrayList<String>());
-			this.parents.put(child, parent);
-			this.fireNodeAdded(STRINGS_TREE, this.path(child));
-		}
-		void removeNode(String node) {
-			if (node == null) {
-				throw new NullPointerException();
-			}
-
-			Collection<String> children = this.childrenLists.get(node);
-			if (children == null) {
-				throw new IllegalStateException("node is not in tree");
-			}
-			Object[] path = this.path(node);
-			for (String s : children) {
-				this.removeNode(s);
-			}
-			this.childrenLists.remove(node);
-			this.parents.remove(node);
-			this.fireNodeRemoved(STRINGS_TREE, path);
-		}
-		void replaceNode(String oldNode, String newNode) {
-			if ((oldNode == null) || (newNode == null)) {
-				throw new NullPointerException();
-			}
-
-			Collection<String> children = this.childrenLists.remove(oldNode);
-			if (children == null) {
-				throw new IllegalStateException("old node is not in tree");
-			}
-			this.childrenLists.put(newNode, children);
-			for (String child : children) {
-				this.parents.put(child, newNode);
-			}
-
-			String parent = this.parents.remove(oldNode);
-			this.parents.put(newNode, parent);
-
-			this.fireTreeChanged(STRINGS_TREE, this.path(newNode));
-		}
-		void clearTree() {
-			this.childrenLists.clear();
-			this.childrenLists.put(root, new ArrayList<String>());
-			this.parents.clear();
-			this.parents.put(root, null);
-			this.fireTreeCleared(STRINGS_TREE);
-		}
-		void changeCollection() {
-			this.fireCollectionChanged("bogus collection");
-		}
-	}
-
-	private class Target {
-		TestModel testModel;
-		String treeName;
-		String[] path;
-		boolean nodeAddedZeroArgumentFlag = false;
-		boolean nodeAddedSingleArgumentFlag = false;
-		boolean nodeRemovedZeroArgumentFlag = false;
-		boolean nodeRemovedSingleArgumentFlag = false;
-		boolean treeClearedZeroArgumentFlag = false;
-		boolean treeClearedSingleArgumentFlag = false;
-		boolean treeChangedZeroArgumentFlag = false;
-		boolean treeChangedSingleArgumentFlag = false;
-		Target(TestModel testModel, String treeName, String[] path) {
-			super();
-			this.testModel = testModel;
-			this.treeName = treeName;
-			this.path = path;
-		}
-		void nodeAddedZeroArgument() {
-			this.nodeAddedZeroArgumentFlag = true;
-		}
-		void nodeAddedSingleArgument(TreeChangeEvent e) {
-			this.nodeAddedSingleArgumentFlag = true;
-			assertSame(this.testModel, e.getSource());
-			assertEquals(this.treeName, e.getTreeName());
-			assertTrue(Arrays.equals(this.path, e.getPath()));
-		}
-		void nodeRemovedZeroArgument() {
-			this.nodeRemovedZeroArgumentFlag = true;
-		}
-		void nodeRemovedSingleArgument(TreeChangeEvent e) {
-			this.nodeRemovedSingleArgumentFlag = true;
-			assertSame(this.testModel, e.getSource());
-			assertEquals(this.treeName, e.getTreeName());
-			assertTrue(Arrays.equals(this.path, e.getPath()));
-		}
-		void treeClearedZeroArgument() {
-			this.treeClearedZeroArgumentFlag = true;
-		}
-		void treeClearedSingleArgument(TreeChangeEvent e) {
-			this.treeClearedSingleArgumentFlag = true;
-			assertSame(this.testModel, e.getSource());
-			assertEquals(this.treeName, e.getTreeName());
-			assertTrue(Arrays.equals(this.path, e.getPath()));
-		}
-		void treeChangedZeroArgument() {
-			this.treeChangedZeroArgumentFlag = true;
-		}
-		void treeChangedSingleArgument(TreeChangeEvent e) {
-			this.treeChangedSingleArgumentFlag = true;
-			assertSame(this.testModel, e.getSource());
-			assertEquals(this.treeName, e.getTreeName());
-			assertTrue(Arrays.equals(this.path, e.getPath()));
-		}
-		void collectionChangedDoubleArgument(TreeChangeEvent e, Object o) {
-			fail("bogus event: " + e);
-		}
-	}
-
-}
diff --git a/jpa/tests/org.eclipse.jpt.utility.tests/src/org/eclipse/jpt/utility/tests/internal/model/value/BufferedWritablePropertyValueModelTests.java b/jpa/tests/org.eclipse.jpt.utility.tests/src/org/eclipse/jpt/utility/tests/internal/model/value/BufferedWritablePropertyValueModelTests.java
deleted file mode 100644
index 18daeb4..0000000
--- a/jpa/tests/org.eclipse.jpt.utility.tests/src/org/eclipse/jpt/utility/tests/internal/model/value/BufferedWritablePropertyValueModelTests.java
+++ /dev/null
@@ -1,408 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2008 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.utility.tests.internal.model.value;
-
-import java.util.Date;
-import junit.framework.TestCase;
-import org.eclipse.jpt.utility.internal.model.AbstractModel;
-import org.eclipse.jpt.utility.internal.model.value.BufferedWritablePropertyValueModel;
-import org.eclipse.jpt.utility.internal.model.value.PropertyAspectAdapter;
-import org.eclipse.jpt.utility.internal.model.value.SimplePropertyValueModel;
-import org.eclipse.jpt.utility.model.event.PropertyChangeEvent;
-import org.eclipse.jpt.utility.model.listener.PropertyChangeListener;
-import org.eclipse.jpt.utility.model.value.PropertyValueModel;
-import org.eclipse.jpt.utility.model.value.WritablePropertyValueModel;
-import org.eclipse.jpt.utility.tests.internal.TestTools;
-
-public class BufferedWritablePropertyValueModelTests extends TestCase {
-	private Employee employee;
-	private WritablePropertyValueModel<Employee> employeeHolder;
-	PropertyChangeEvent employeeEvent;
-
-	private WritablePropertyValueModel<Integer> idAdapter;
-	private WritablePropertyValueModel<String> nameAdapter;
-	private WritablePropertyValueModel<Date> hireDateAdapter;
-	PropertyChangeEvent adapterEvent;
-
-	private BufferedWritablePropertyValueModel.Trigger trigger;
-	private WritablePropertyValueModel<Integer> bufferedIDHolder;
-	private WritablePropertyValueModel<String> bufferedNameHolder;
-	private WritablePropertyValueModel<Date> bufferedHireDateHolder;
-	PropertyChangeEvent bufferedEvent;
-
-	public BufferedWritablePropertyValueModelTests(String name) {
-		super(name);
-	}
-
-	@Override
-	protected void setUp() throws Exception {
-		super.setUp();
-
-		this.employee = new Employee(17, "Freddy", new Date());
-		this.employeeHolder = new SimplePropertyValueModel<Employee>(this.employee);
-
-		this.trigger = new BufferedWritablePropertyValueModel.Trigger();
-
-		this.idAdapter = this.buildIDAdapter(this.employeeHolder);
-		this.bufferedIDHolder = new BufferedWritablePropertyValueModel<Integer>(this.idAdapter, this.trigger);
-
-		this.nameAdapter = this.buildNameAdapter(this.employeeHolder);
-		this.bufferedNameHolder = new BufferedWritablePropertyValueModel<String>(this.nameAdapter, this.trigger);
-
-		this.hireDateAdapter = this.buildHireDateAdapter(this.employeeHolder);
-		this.bufferedHireDateHolder = new BufferedWritablePropertyValueModel<Date>(this.hireDateAdapter, this.trigger);
-	}
-
-	private WritablePropertyValueModel<Integer> buildIDAdapter(PropertyValueModel<Employee> eHolder) {
-		return new PropertyAspectAdapter<Employee, Integer>(eHolder, Employee.ID_PROPERTY) {
-			@Override
-			protected Integer buildValue_() {
-				return new Integer(this.subject.getID());
-			}
-			@Override
-			protected void setValue_(Integer value) {
-				this.subject.setID(value.intValue());
-			}
-		};
-	}
-
-	private WritablePropertyValueModel<String> buildNameAdapter(PropertyValueModel<Employee> eHolder) {
-		return new PropertyAspectAdapter<Employee, String>(eHolder, Employee.NAME_PROPERTY) {
-			@Override
-			protected String buildValue_() {
-				return this.subject.getName();
-			}
-			@Override
-			protected void setValue_(String value) {
-				this.subject.setName(value);
-			}
-		};
-	}
-
-	private WritablePropertyValueModel<Date> buildHireDateAdapter(PropertyValueModel<Employee> eHolder) {
-		return new PropertyAspectAdapter<Employee, Date>(eHolder, Employee.HIRE_DATE_PROPERTY) {
-			@Override
-			protected Date buildValue_() {
-				return this.subject.getHireDate();
-			}
-			@Override
-			protected void setValue_(Date value) {
-				this.subject.setHireDate(value);
-			}
-		};
-	}
-
-	@Override
-	protected void tearDown() throws Exception {
-		TestTools.clear(this);
-		super.tearDown();
-	}
-
-	public void testValue() {
-		PropertyChangeListener bufferedListener = this.buildBufferedListener();
-		this.bufferedIDHolder.addPropertyChangeListener(PropertyValueModel.VALUE, bufferedListener);
-		this.bufferedNameHolder.addPropertyChangeListener(PropertyValueModel.VALUE, bufferedListener);
-		this.bufferedHireDateHolder.addPropertyChangeListener(PropertyValueModel.VALUE, bufferedListener);
-
-		assertEquals(new Integer(17), this.idAdapter.getValue());
-		assertEquals(new Integer(17), this.bufferedIDHolder.getValue());
-
-		assertEquals("Freddy", this.employee.getName());
-		assertEquals("Freddy", this.nameAdapter.getValue());
-		assertEquals("Freddy", this.bufferedNameHolder.getValue());
-
-		Date temp = this.employee.getHireDate();
-		assertEquals(temp, this.employee.getHireDate());
-		assertEquals(temp, this.hireDateAdapter.getValue());
-		assertEquals(temp, this.bufferedHireDateHolder.getValue());
-
-		this.bufferedIDHolder.setValue(new Integer(323));
-		assertEquals(17, this.employee.getID());
-		assertEquals(new Integer(17), this.idAdapter.getValue());
-		assertEquals(new Integer(323), this.bufferedIDHolder.getValue());
-
-		this.bufferedNameHolder.setValue("Ripley");
-		assertEquals("Freddy", this.employee.getName());
-		assertEquals("Freddy", this.nameAdapter.getValue());
-		assertEquals("Ripley", this.bufferedNameHolder.getValue());
-
-		this.bufferedHireDateHolder.setValue(null);
-		assertEquals(temp, this.employee.getHireDate());
-		assertEquals(temp, this.hireDateAdapter.getValue());
-		assertEquals(null, this.bufferedHireDateHolder.getValue());
-	}
-
-	public void testAccept() {
-		PropertyChangeListener bufferedListener = this.buildBufferedListener();
-		this.bufferedIDHolder.addPropertyChangeListener(PropertyValueModel.VALUE, bufferedListener);
-		this.bufferedNameHolder.addPropertyChangeListener(PropertyValueModel.VALUE, bufferedListener);
-		this.bufferedHireDateHolder.addPropertyChangeListener(PropertyValueModel.VALUE, bufferedListener);
-
-		this.bufferedIDHolder.setValue(new Integer(323));
-		assertEquals(17, this.employee.getID());
-		assertEquals(new Integer(17), this.idAdapter.getValue());
-		assertEquals(new Integer(323), this.bufferedIDHolder.getValue());
-
-		this.bufferedNameHolder.setValue("Ripley");
-		assertEquals("Freddy", this.employee.getName());
-		assertEquals("Freddy", this.nameAdapter.getValue());
-		assertEquals("Ripley", this.bufferedNameHolder.getValue());
-
-		Date temp = this.employee.getHireDate();
-		this.bufferedHireDateHolder.setValue(null);
-		assertEquals(temp, this.employee.getHireDate());
-		assertEquals(temp, this.hireDateAdapter.getValue());
-		assertEquals(null, this.bufferedHireDateHolder.getValue());
-
-		this.trigger.accept();
-
-		assertEquals(323, this.employee.getID());
-		assertEquals(new Integer(323), this.idAdapter.getValue());
-		assertEquals(new Integer(323), this.bufferedIDHolder.getValue());
-
-		assertEquals("Ripley", this.employee.getName());
-		assertEquals("Ripley", this.nameAdapter.getValue());
-		assertEquals("Ripley", this.bufferedNameHolder.getValue());
-
-		assertEquals(null, this.employee.getHireDate());
-		assertEquals(null, this.hireDateAdapter.getValue());
-		assertEquals(null, this.bufferedHireDateHolder.getValue());
-	}
-
-	public void testReset() {
-		PropertyChangeListener bufferedListener = this.buildBufferedListener();
-		this.bufferedIDHolder.addPropertyChangeListener(PropertyValueModel.VALUE, bufferedListener);
-		this.bufferedNameHolder.addPropertyChangeListener(PropertyValueModel.VALUE, bufferedListener);
-		this.bufferedHireDateHolder.addPropertyChangeListener(PropertyValueModel.VALUE, bufferedListener);
-
-		this.bufferedIDHolder.setValue(new Integer(323));
-		assertEquals(17, this.employee.getID());
-		assertEquals(new Integer(17), this.idAdapter.getValue());
-		assertEquals(new Integer(323), this.bufferedIDHolder.getValue());
-
-		this.bufferedNameHolder.setValue("Ripley");
-		assertEquals("Freddy", this.employee.getName());
-		assertEquals("Freddy", this.nameAdapter.getValue());
-		assertEquals("Ripley", this.bufferedNameHolder.getValue());
-
-		Date temp = this.employee.getHireDate();
-		this.bufferedHireDateHolder.setValue(null);
-		assertEquals(temp, this.employee.getHireDate());
-		assertEquals(temp, this.hireDateAdapter.getValue());
-		assertEquals(null, this.bufferedHireDateHolder.getValue());
-
-		this.trigger.reset();
-
-		assertEquals(17, this.employee.getID());
-		assertEquals(new Integer(17), this.idAdapter.getValue());
-		assertEquals(new Integer(17), this.bufferedIDHolder.getValue());
-
-		assertEquals("Freddy", this.employee.getName());
-		assertEquals("Freddy", this.nameAdapter.getValue());
-		assertEquals("Freddy", this.bufferedNameHolder.getValue());
-
-		assertEquals(temp, this.employee.getHireDate());
-		assertEquals(temp, this.hireDateAdapter.getValue());
-		assertEquals(temp, this.bufferedHireDateHolder.getValue());
-	}
-
-	public void testLazyListening() {
-		assertTrue(((AbstractModel) this.bufferedIDHolder).hasNoPropertyChangeListeners(PropertyValueModel.VALUE));
-		assertTrue(((AbstractModel) this.bufferedNameHolder).hasNoPropertyChangeListeners(PropertyValueModel.VALUE));
-		assertTrue(((AbstractModel) this.bufferedHireDateHolder).hasNoPropertyChangeListeners(PropertyValueModel.VALUE));
-
-		assertTrue(((AbstractModel) this.idAdapter).hasNoPropertyChangeListeners(PropertyValueModel.VALUE));
-		assertTrue(((AbstractModel) this.nameAdapter).hasNoPropertyChangeListeners(PropertyValueModel.VALUE));
-		assertTrue(((AbstractModel) this.hireDateAdapter).hasNoPropertyChangeListeners(PropertyValueModel.VALUE));
-
-		assertTrue(this.employee.hasNoPropertyChangeListeners(Employee.ID_PROPERTY));
-		assertTrue(this.employee.hasNoPropertyChangeListeners(Employee.NAME_PROPERTY));
-		assertTrue(this.employee.hasNoPropertyChangeListeners(Employee.HIRE_DATE_PROPERTY));
-
-		PropertyChangeListener bufferedListener = this.buildBufferedListener();
-		this.bufferedIDHolder.addPropertyChangeListener(PropertyValueModel.VALUE, bufferedListener);
-		this.bufferedNameHolder.addPropertyChangeListener(PropertyValueModel.VALUE, bufferedListener);
-		this.bufferedHireDateHolder.addPropertyChangeListener(PropertyValueModel.VALUE, bufferedListener);
-
-		assertTrue(((AbstractModel) this.bufferedIDHolder).hasAnyPropertyChangeListeners(PropertyValueModel.VALUE));
-		assertTrue(((AbstractModel) this.bufferedNameHolder).hasAnyPropertyChangeListeners(PropertyValueModel.VALUE));
-		assertTrue(((AbstractModel) this.bufferedHireDateHolder).hasAnyPropertyChangeListeners(PropertyValueModel.VALUE));
-
-		assertTrue(((AbstractModel) this.idAdapter).hasAnyPropertyChangeListeners(PropertyValueModel.VALUE));
-		assertTrue(((AbstractModel) this.nameAdapter).hasAnyPropertyChangeListeners(PropertyValueModel.VALUE));
-		assertTrue(((AbstractModel) this.hireDateAdapter).hasAnyPropertyChangeListeners(PropertyValueModel.VALUE));
-
-		assertTrue(this.employee.hasAnyPropertyChangeListeners(Employee.ID_PROPERTY));
-		assertTrue(this.employee.hasAnyPropertyChangeListeners(Employee.NAME_PROPERTY));
-		assertTrue(this.employee.hasAnyPropertyChangeListeners(Employee.HIRE_DATE_PROPERTY));
-
-		this.bufferedIDHolder.removePropertyChangeListener(PropertyValueModel.VALUE, bufferedListener);
-		this.bufferedNameHolder.removePropertyChangeListener(PropertyValueModel.VALUE, bufferedListener);
-		this.bufferedHireDateHolder.removePropertyChangeListener(PropertyValueModel.VALUE, bufferedListener);
-
-		assertTrue(((AbstractModel) this.bufferedIDHolder).hasNoPropertyChangeListeners(PropertyValueModel.VALUE));
-		assertTrue(((AbstractModel) this.bufferedNameHolder).hasNoPropertyChangeListeners(PropertyValueModel.VALUE));
-		assertTrue(((AbstractModel) this.bufferedHireDateHolder).hasNoPropertyChangeListeners(PropertyValueModel.VALUE));
-
-		assertTrue(((AbstractModel) this.idAdapter).hasNoPropertyChangeListeners(PropertyValueModel.VALUE));
-		assertTrue(((AbstractModel) this.nameAdapter).hasNoPropertyChangeListeners(PropertyValueModel.VALUE));
-		assertTrue(((AbstractModel) this.hireDateAdapter).hasNoPropertyChangeListeners(PropertyValueModel.VALUE));
-
-		assertTrue(this.employee.hasNoPropertyChangeListeners(Employee.ID_PROPERTY));
-		assertTrue(this.employee.hasNoPropertyChangeListeners(Employee.NAME_PROPERTY));
-		assertTrue(this.employee.hasNoPropertyChangeListeners(Employee.HIRE_DATE_PROPERTY));
-	}
-
-	public void testPropertyChange1() {
-		PropertyChangeListener bufferedListener = this.buildBufferedListener();
-		this.bufferedNameHolder.addPropertyChangeListener(PropertyValueModel.VALUE, bufferedListener);
-
-		PropertyChangeListener adapterListener = this.buildAdapterListener();
-		this.nameAdapter.addPropertyChangeListener(PropertyValueModel.VALUE, adapterListener);
-
-		PropertyChangeListener employeeListener = this.buildEmployeeListener();
-		this.employee.addPropertyChangeListener(Employee.NAME_PROPERTY, employeeListener);
-
-		this.verifyPropertyChanges();
-	}
-
-	public void testPropertyChange2() {
-		PropertyChangeListener bufferedListener = this.buildBufferedListener();
-		this.bufferedNameHolder.addPropertyChangeListener(bufferedListener);
-
-		PropertyChangeListener adapterListener = this.buildAdapterListener();
-		this.nameAdapter.addPropertyChangeListener(adapterListener);
-
-		PropertyChangeListener employeeListener = this.buildEmployeeListener();
-		this.employee.addPropertyChangeListener(employeeListener);
-
-		this.verifyPropertyChanges();
-	}
-
-	private void verifyPropertyChanges() {
-		this.bufferedEvent = null;
-		this.adapterEvent = null;
-		this.employeeEvent = null;
-		this.bufferedNameHolder.setValue("Ripley");
-		this.verifyEvent(this.bufferedEvent, this.bufferedNameHolder, PropertyValueModel.VALUE, "Freddy", "Ripley");
-		assertNull(this.adapterEvent);
-		assertNull(this.employeeEvent);
-
-		this.bufferedEvent = null;
-		this.adapterEvent = null;
-		this.employeeEvent = null;
-		this.bufferedNameHolder.setValue("Charlie");
-		this.verifyEvent(this.bufferedEvent, this.bufferedNameHolder, PropertyValueModel.VALUE, "Ripley", "Charlie");
-		assertNull(this.adapterEvent);
-		assertNull(this.employeeEvent);
-
-		this.bufferedEvent = null;
-		this.adapterEvent = null;
-		this.employeeEvent = null;
-		this.trigger.accept();
-		assertNull(this.bufferedEvent);
-		this.verifyEvent(this.adapterEvent, this.nameAdapter, PropertyValueModel.VALUE, "Freddy", "Charlie");
-		this.verifyEvent(this.employeeEvent, this.employee, Employee.NAME_PROPERTY, "Freddy", "Charlie");
-
-		this.bufferedEvent = null;
-		this.adapterEvent = null;
-		this.employeeEvent = null;
-		this.bufferedNameHolder.setValue("Jason");
-		this.verifyEvent(this.bufferedEvent, this.bufferedNameHolder, PropertyValueModel.VALUE, "Charlie", "Jason");
-		assertNull(this.adapterEvent);
-		assertNull(this.employeeEvent);
-
-		this.bufferedEvent = null;
-		this.adapterEvent = null;
-		this.employeeEvent = null;
-		this.trigger.reset();
-		this.verifyEvent(this.bufferedEvent, this.bufferedNameHolder, PropertyValueModel.VALUE, "Jason", "Charlie");
-		assertNull(this.adapterEvent);
-		assertNull(this.employeeEvent);
-	}
-
-	private PropertyChangeListener buildBufferedListener() {
-		return new PropertyChangeListener() {
-			public void propertyChanged(PropertyChangeEvent e) {
-				BufferedWritablePropertyValueModelTests.this.bufferedEvent = e;
-			}
-		};
-	}
-
-	private PropertyChangeListener buildAdapterListener() {
-		return new PropertyChangeListener() {
-			public void propertyChanged(PropertyChangeEvent e) {
-				BufferedWritablePropertyValueModelTests.this.adapterEvent = e;
-			}
-		};
-	}
-
-	private PropertyChangeListener buildEmployeeListener() {
-		return new PropertyChangeListener() {
-			public void propertyChanged(PropertyChangeEvent e) {
-				BufferedWritablePropertyValueModelTests.this.employeeEvent = e;
-			}
-		};
-	}
-
-	private void verifyEvent(PropertyChangeEvent event, Object source, String propertyName, Object oldValue, Object newValue) {
-		assertEquals(source, event.getSource());
-		assertEquals(propertyName, event.getPropertyName());
-		assertEquals(oldValue, event.getOldValue());
-		assertEquals(newValue, event.getNewValue());
-	}
-
-
-	// ********** inner class **********
-
-	private class Employee extends AbstractModel {
-		private int id;
-			public static final String ID_PROPERTY = "id";
-		private String name;
-			public static final String NAME_PROPERTY = "name";
-		private Date hireDate;
-			public static final String HIRE_DATE_PROPERTY = "hireDate";
-
-		Employee(int id, String name, Date hireDate) {
-			super();
-			this.id = id;
-			this.name = name;
-			this.hireDate = hireDate;
-		}
-		int getID() {
-			return this.id;
-		}
-		void setID(int id) {
-			int old = this.id;
-			this.id = id;
-			this.firePropertyChanged(ID_PROPERTY, old, id);
-		}
-		String getName() {
-			return this.name;
-		}
-		void setName(String name) {
-			Object old = this.name;
-			this.name = name;
-			this.firePropertyChanged(NAME_PROPERTY, old, name);
-		}
-		Date getHireDate() {
-			return this.hireDate;
-		}
-		void setHireDate(Date hireDate) {
-			Object old = this.hireDate;
-			this.hireDate = hireDate;
-			this.firePropertyChanged(HIRE_DATE_PROPERTY, old, hireDate);
-		}
-		@Override
-		public void toString(StringBuilder sb) {
-			sb.append(this.name);
-		}
-	}
-}
diff --git a/jpa/tests/org.eclipse.jpt.utility.tests/src/org/eclipse/jpt/utility/tests/internal/model/value/CachingTransformationPropertyValueModelTests.java b/jpa/tests/org.eclipse.jpt.utility.tests/src/org/eclipse/jpt/utility/tests/internal/model/value/CachingTransformationPropertyValueModelTests.java
deleted file mode 100644
index 62c56b9..0000000
--- a/jpa/tests/org.eclipse.jpt.utility.tests/src/org/eclipse/jpt/utility/tests/internal/model/value/CachingTransformationPropertyValueModelTests.java
+++ /dev/null
@@ -1,220 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.utility.tests.internal.model.value;
-
-import junit.framework.TestCase;
-import org.eclipse.jpt.utility.internal.BidiTransformer;
-import org.eclipse.jpt.utility.internal.model.AbstractModel;
-import org.eclipse.jpt.utility.internal.model.value.CachingTransformationPropertyValueModel;
-import org.eclipse.jpt.utility.internal.model.value.SimplePropertyValueModel;
-import org.eclipse.jpt.utility.model.event.PropertyChangeEvent;
-import org.eclipse.jpt.utility.model.listener.PropertyChangeListener;
-import org.eclipse.jpt.utility.model.value.PropertyValueModel;
-import org.eclipse.jpt.utility.model.value.WritablePropertyValueModel;
-import org.eclipse.jpt.utility.tests.internal.TestTools;
-
-@SuppressWarnings("nls")
-public class CachingTransformationPropertyValueModelTests extends TestCase {
-	private WritablePropertyValueModel<Person> objectHolder;
-	PropertyChangeEvent event;
-
-	private PropertyValueModel<Person> transformationObjectHolder;
-	PropertyChangeEvent transformationEvent;
-
-	public CachingTransformationPropertyValueModelTests(String name) {
-		super(name);
-	}
-
-	@Override
-	protected void setUp() throws Exception {
-		super.setUp();
-		this.objectHolder = new SimplePropertyValueModel<Person>(new Person("Karen", "Peggy", null));
-		this.transformationObjectHolder = new CachingTransformationPropertyValueModel<Person, Person>(this.objectHolder, this.buildTransformer());
-	}
-
-	private BidiTransformer<Person, Person> buildTransformer() {
-		return new BidiTransformer<Person, Person>() {
-			public Person transform(Person p) {
-				return (p == null) ? null : p.getParent();
-			}
-			public Person reverseTransform(Person p) {
-				return (p == null) ? null : p.getChild();
-			}
-		};
-	}
-
-	@Override
-	protected void tearDown() throws Exception {
-		TestTools.clear(this);
-		super.tearDown();
-	}
-
-	public void testValue() {
-		PropertyChangeListener listener = this.buildTransformationListener();
-		this.transformationObjectHolder.addPropertyChangeListener(listener);
-		
-		Person person = this.objectHolder.getValue();
-		assertEquals("Karen", person.getName());
-		Person parent = this.transformationObjectHolder.getValue();
-		assertEquals(person.getParent().getName(), parent.getName());
-		assertNotSame(person.getParent(), this.transformationObjectHolder.getValue());
-		assertEquals(parent, this.transformationObjectHolder.getValue());
-
-		Person person1 = new Person("Matt", "Mitch", null);
-		this.objectHolder.setValue(person1);
-		Person parent2 = this.transformationObjectHolder.getValue();
-		assertEquals(person1.getParent().getName(), parent2.getName());
-		assertNotSame(person1.getParent(), this.transformationObjectHolder.getValue());
-		assertEquals(parent2, this.transformationObjectHolder.getValue());
-
-
-		this.objectHolder.setValue(null);
-		assertNull(this.objectHolder.getValue());
-		assertNull(this.transformationObjectHolder.getValue());
-
-		Person person3 = new Person("Karen", "Peggy", null);
-		this.objectHolder.setValue(person3);
-		assertEquals("Karen", person3.getName());
-		Person parent3 = this.transformationObjectHolder.getValue();
-		assertEquals(person3.getParent().getName(), parent3.getName());
-		assertNotSame(person3.getParent(), this.transformationObjectHolder.getValue());
-		assertEquals(parent3, this.transformationObjectHolder.getValue());
-	}
-
-	public void testLazyListening() {
-		assertTrue(((AbstractModel) this.objectHolder).hasNoPropertyChangeListeners(PropertyValueModel.VALUE));
-		PropertyChangeListener listener = this.buildTransformationListener();
-		this.transformationObjectHolder.addPropertyChangeListener(listener);
-		assertTrue(((AbstractModel) this.objectHolder).hasAnyPropertyChangeListeners(PropertyValueModel.VALUE));
-		this.transformationObjectHolder.removePropertyChangeListener(listener);
-		assertTrue(((AbstractModel) this.objectHolder).hasNoPropertyChangeListeners(PropertyValueModel.VALUE));
-
-		this.transformationObjectHolder.addPropertyChangeListener(PropertyValueModel.VALUE, listener);
-		assertTrue(((AbstractModel) this.objectHolder).hasAnyPropertyChangeListeners(PropertyValueModel.VALUE));
-		this.transformationObjectHolder.removePropertyChangeListener(PropertyValueModel.VALUE, listener);
-		assertTrue(((AbstractModel) this.objectHolder).hasNoPropertyChangeListeners(PropertyValueModel.VALUE));
-	}
-
-	public void testPropertyChange1() {
-		this.objectHolder.addPropertyChangeListener(this.buildListener());
-		this.transformationObjectHolder.addPropertyChangeListener(this.buildTransformationListener());
-		this.verifyPropertyChanges();
-	}
-
-	public void testPropertyChange2() {
-		this.objectHolder.addPropertyChangeListener(PropertyValueModel.VALUE, this.buildListener());
-		this.transformationObjectHolder.addPropertyChangeListener(PropertyValueModel.VALUE, this.buildTransformationListener());
-		this.verifyPropertyChanges();
-	}
-
-	private void verifyPropertyChanges() {
-		this.event = null;
-		this.transformationEvent = null;
-		Person karen = this.objectHolder.getValue();
-		Person peggyParent = this.transformationObjectHolder.getValue();
-		Person peggy = new Person("Peggy", "Marian", null);
-		this.objectHolder.setValue(peggy);
-		Person marianParent = this.transformationObjectHolder.getValue();
-		this.verifyEvent(this.event, this.objectHolder, karen, peggy);
-		this.verifyEvent(this.transformationEvent, this.transformationObjectHolder, peggyParent, marianParent);
-
-		this.event = null;
-		this.transformationEvent = null;
-		Person matt = new Person("Matt", "Mitch", null);
-		this.objectHolder.setValue(matt);
-		Person mitchParent = this.transformationObjectHolder.getValue();
-		this.verifyEvent(this.event, this.objectHolder, peggy, matt);
-		this.verifyEvent(this.transformationEvent, this.transformationObjectHolder, marianParent, mitchParent);
-
-		this.event = null;
-		this.transformationEvent = null;
-		this.objectHolder.setValue(null);
-		this.verifyEvent(this.event, this.objectHolder, matt, null);
-		this.verifyEvent(this.transformationEvent, this.transformationObjectHolder, mitchParent, null);
-
-		this.event = null;
-		this.transformationEvent = null;
-		this.objectHolder.setValue(matt);
-		mitchParent = this.transformationObjectHolder.getValue();
-		this.verifyEvent(this.event, this.objectHolder, null, matt);
-		this.verifyEvent(this.transformationEvent, this.transformationObjectHolder, null, mitchParent);
-	}
-
-	private PropertyChangeListener buildListener() {
-		return new PropertyChangeListener() {
-			public void propertyChanged(PropertyChangeEvent e) {
-				CachingTransformationPropertyValueModelTests.this.event = e;
-			}
-		};
-	}
-
-	private PropertyChangeListener buildTransformationListener() {
-		return new PropertyChangeListener() {
-			public void propertyChanged(PropertyChangeEvent e) {
-				CachingTransformationPropertyValueModelTests.this.transformationEvent = e;
-			}
-		};
-	}
-
-	private void verifyEvent(PropertyChangeEvent e, Object source, Object oldValue, Object newValue) {
-		assertEquals(source, e.getSource());
-		assertEquals(PropertyValueModel.VALUE, e.getPropertyName());
-		assertEquals(oldValue, e.getOldValue());
-		assertEquals(newValue, e.getNewValue());
-	}
-
-	
-	private class Person extends AbstractModel {
-
-		private String name;
-			public static final String NAME_PROPERTY = "name";
-		
-		private String parentName;
-			public static final String PARENT_NAME_PROPERTY = "parentName";
-		
-		private Person child;
-		
-		public Person(String name, String parentName, Person child) {
-			this.name = name;
-			this.parentName = parentName;
-			this.child = child;
-		}
-		
-		public String getName() {
-			return this.name;
-		}
-		
-		public void setName(String newName) {
-			String oldName = this.name;
-			this.name = newName;
-			firePropertyChanged(NAME_PROPERTY, oldName, newName);
-		}
-		
-		public Person getParent() {
-			return new Person(this.parentName, null, this);
-		}
-		
-		public String getParentName() {
-			return this.parentName;
-		}
-		
-		public void setParentName(String newParentName) {
-			String oldParentName = this.parentName;
-			this.parentName = newParentName;
-			firePropertyChanged(PARENT_NAME_PROPERTY, oldParentName, newParentName);
-		}
-		
-		public Person getChild() {
-			return this.child;
-		}
-
-	}
-
-}
diff --git a/jpa/tests/org.eclipse.jpt.utility.tests/src/org/eclipse/jpt/utility/tests/internal/model/value/CachingTransformationWritablePropertyValueModelTests.java b/jpa/tests/org.eclipse.jpt.utility.tests/src/org/eclipse/jpt/utility/tests/internal/model/value/CachingTransformationWritablePropertyValueModelTests.java
deleted file mode 100644
index 61b8c33..0000000
--- a/jpa/tests/org.eclipse.jpt.utility.tests/src/org/eclipse/jpt/utility/tests/internal/model/value/CachingTransformationWritablePropertyValueModelTests.java
+++ /dev/null
@@ -1,249 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008, 2009 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.utility.tests.internal.model.value;
-
-import junit.framework.TestCase;
-import org.eclipse.jpt.utility.internal.BidiTransformer;
-import org.eclipse.jpt.utility.internal.model.AbstractModel;
-import org.eclipse.jpt.utility.internal.model.value.CachingTransformationWritablePropertyValueModel;
-import org.eclipse.jpt.utility.internal.model.value.SimplePropertyValueModel;
-import org.eclipse.jpt.utility.model.event.PropertyChangeEvent;
-import org.eclipse.jpt.utility.model.listener.PropertyChangeListener;
-import org.eclipse.jpt.utility.model.value.PropertyValueModel;
-import org.eclipse.jpt.utility.model.value.WritablePropertyValueModel;
-import org.eclipse.jpt.utility.tests.internal.TestTools;
-
-@SuppressWarnings("nls")
-public class CachingTransformationWritablePropertyValueModelTests extends TestCase {
-	private WritablePropertyValueModel<Person> objectHolder;
-	PropertyChangeEvent event;
-
-	private WritablePropertyValueModel<Person> transformationObjectHolder;
-	PropertyChangeEvent transformationEvent;
-
-	public CachingTransformationWritablePropertyValueModelTests(String name) {
-		super(name);
-	}
-
-	@Override
-	protected void setUp() throws Exception {
-		super.setUp();
-		this.objectHolder = new SimplePropertyValueModel<Person>(new Person("Karen", "Peggy", null));
-		this.transformationObjectHolder = new CachingTransformationWritablePropertyValueModel<Person, Person>(this.objectHolder, this.buildTransformer());
-	}
-
-	private BidiTransformer<Person, Person> buildTransformer() {
-		return new BidiTransformer<Person, Person>() {
-			public Person transform(Person p) {
-				return (p == null) ? null : p.getParent();
-			}
-			public Person reverseTransform(Person p) {
-				return (p == null) ? null : p.getChild();
-			}
-		};
-	}
-
-	@Override
-	protected void tearDown() throws Exception {
-		TestTools.clear(this);
-		super.tearDown();
-	}
-
-	public void testValue() {
-		PropertyChangeListener listener = this.buildTransformationListener();
-		this.transformationObjectHolder.addPropertyChangeListener(listener);
-
-		
-		Person person = this.objectHolder.getValue();
-		assertEquals("Karen", person.getName());
-		Person parent = this.transformationObjectHolder.getValue();
-		assertEquals(person.getParent().getName(), parent.getName());
-		assertNotSame(person.getParent(), this.transformationObjectHolder.getValue());
-		assertEquals(parent, this.transformationObjectHolder.getValue());
-
-		Person person1 = new Person("Matt", "Mitch", null);
-		this.objectHolder.setValue(person1);
-		Person parent2 = this.transformationObjectHolder.getValue();
-		assertEquals(person1.getParent().getName(), parent2.getName());
-		assertNotSame(person1.getParent(), this.transformationObjectHolder.getValue());
-		assertEquals(parent2, this.transformationObjectHolder.getValue());
-
-
-		this.objectHolder.setValue(null);
-		assertNull(this.objectHolder.getValue());
-		assertNull(this.transformationObjectHolder.getValue());
-
-		Person person3 = new Person("Karen", "Peggy", null);
-		this.objectHolder.setValue(person3);
-		assertEquals("Karen", person3.getName());
-		Person parent3 = this.transformationObjectHolder.getValue();
-		assertEquals(person3.getParent().getName(), parent3.getName());
-		assertNotSame(person3.getParent(), this.transformationObjectHolder.getValue());
-		assertEquals(parent3, this.transformationObjectHolder.getValue());
-	}
-
-	public void testSetValue() {
-		PropertyChangeListener listener = this.buildTransformationListener();
-		this.transformationObjectHolder.addPropertyChangeListener(listener);
-
-		Person person = new Person("Chris", "Noel", null);
-		this.transformationObjectHolder.setValue(person.getParent());
-		assertEquals(person, this.objectHolder.getValue());
-		assertEquals(person.getParent().getName(), this.transformationObjectHolder.getValue().getName());
-		assertNotSame(person.getParent(), this.transformationObjectHolder.getValue());
-
-		Person person2 = new Person("Jon", "Elizabeth", null);
-		this.transformationObjectHolder.setValue(person2.getParent());
-		assertEquals(person2, this.objectHolder.getValue());
-		assertEquals(person2.getParent().getName(), this.transformationObjectHolder.getValue().getName());
-		assertNotSame(person2.getParent(), this.transformationObjectHolder.getValue());
-
-		this.transformationObjectHolder.setValue(null);
-		assertNull(this.objectHolder.getValue());
-		assertNull(this.transformationObjectHolder.getValue());
-
-		this.transformationObjectHolder.setValue(person.getParent());
-		assertEquals(person, this.objectHolder.getValue());
-		assertEquals(person.getParent().getName(), this.transformationObjectHolder.getValue().getName());
-		assertNotSame(person.getParent(), this.transformationObjectHolder.getValue());
-	}
-
-	public void testLazyListening() {
-		assertTrue(((AbstractModel) this.objectHolder).hasNoPropertyChangeListeners(PropertyValueModel.VALUE));
-		PropertyChangeListener listener = this.buildTransformationListener();
-		this.transformationObjectHolder.addPropertyChangeListener(listener);
-		assertTrue(((AbstractModel) this.objectHolder).hasAnyPropertyChangeListeners(PropertyValueModel.VALUE));
-		this.transformationObjectHolder.removePropertyChangeListener(listener);
-		assertTrue(((AbstractModel) this.objectHolder).hasNoPropertyChangeListeners(PropertyValueModel.VALUE));
-
-		this.transformationObjectHolder.addPropertyChangeListener(PropertyValueModel.VALUE, listener);
-		assertTrue(((AbstractModel) this.objectHolder).hasAnyPropertyChangeListeners(PropertyValueModel.VALUE));
-		this.transformationObjectHolder.removePropertyChangeListener(PropertyValueModel.VALUE, listener);
-		assertTrue(((AbstractModel) this.objectHolder).hasNoPropertyChangeListeners(PropertyValueModel.VALUE));
-	}
-
-	public void testPropertyChange1() {
-		this.objectHolder.addPropertyChangeListener(this.buildListener());
-		this.transformationObjectHolder.addPropertyChangeListener(this.buildTransformationListener());
-		this.verifyPropertyChanges();
-	}
-
-	public void testPropertyChange2() {
-		this.objectHolder.addPropertyChangeListener(PropertyValueModel.VALUE, this.buildListener());
-		this.transformationObjectHolder.addPropertyChangeListener(PropertyValueModel.VALUE, this.buildTransformationListener());
-		this.verifyPropertyChanges();
-	}
-
-	private void verifyPropertyChanges() {
-		this.event = null;
-		this.transformationEvent = null;
-		Person oldPerson = this.objectHolder.getValue();
-		Person oldParent = this.transformationObjectHolder.getValue();
-		Person newPerson = new Person("Karen" , "Peggy", null);
-		this.objectHolder.setValue(newPerson);
-		Person newParent = this.transformationObjectHolder.getValue();
-		this.verifyEvent(this.event, this.objectHolder, oldPerson, newPerson);
-		this.verifyEvent(this.transformationEvent, this.transformationObjectHolder, oldParent, newParent);
-
-//
-//		this.event = null;
-//		this.transformationEvent = null;
-//		this.objectHolder.setValue("Foo");
-//		this.verifyEvent(this.event, this.objectHolder, "baz", "Foo");
-//		this.verifyEvent(this.transformationEvent, this.transformationObjectHolder, "BAZ", "FOO");
-//
-//		this.event = null;
-//		this.transformationEvent = null;
-//		this.objectHolder.setValue("FOO");
-//		this.verifyEvent(this.event, this.objectHolder, "Foo", "FOO");
-//		assertNull(this.transformationEvent);
-//
-//		this.event = null;
-//		this.transformationEvent = null;
-//		this.objectHolder.setValue(null);
-//		this.verifyEvent(this.event, this.objectHolder, "FOO", null);
-//		this.verifyEvent(this.transformationEvent, this.transformationObjectHolder, "FOO", null);
-//
-//		this.event = null;
-//		this.transformationEvent = null;
-//		this.objectHolder.setValue("bar");
-//		this.verifyEvent(this.event, this.objectHolder, null, "bar");
-//		this.verifyEvent(this.transformationEvent, this.transformationObjectHolder, null, "BAR");
-	}
-
-	private PropertyChangeListener buildListener() {
-		return new PropertyChangeListener() {
-			public void propertyChanged(PropertyChangeEvent e) {
-				CachingTransformationWritablePropertyValueModelTests.this.event = e;
-			}
-		};
-	}
-
-	private PropertyChangeListener buildTransformationListener() {
-		return new PropertyChangeListener() {
-			public void propertyChanged(PropertyChangeEvent e) {
-				CachingTransformationWritablePropertyValueModelTests.this.transformationEvent = e;
-			}
-		};
-	}
-
-	private void verifyEvent(PropertyChangeEvent e, Object source, Object oldValue, Object newValue) {
-		assertEquals(source, e.getSource());
-		assertEquals(PropertyValueModel.VALUE, e.getPropertyName());
-		assertEquals(oldValue, e.getOldValue());
-		assertEquals(newValue, e.getNewValue());
-	}
-
-	
-	private class Person extends AbstractModel {
-
-		private String name;
-			public static final String NAME_PROPERTY = "name";
-		
-		private String parentName;
-			public static final String PARENT_NAME_PROPERTY = "parentName";
-		
-		private Person child;
-		
-		public Person(String name, String parentName, Person child) {
-			this.name = name;
-			this.parentName = parentName;
-			this.child = child;
-		}
-		
-		public String getName() {
-			return this.name;
-		}
-		
-		public void setName(String newName) {
-			String oldName = this.name;
-			this.name = newName;
-			firePropertyChanged(NAME_PROPERTY, oldName, newName);
-		}
-		
-		public Person getParent() {
-			return new Person(this.parentName, null, this);
-		}
-		
-		public String getParentName() {
-			return this.parentName;
-		}
-		
-		public void setParentName(String newParentName) {
-			String oldParentName = this.parentName;
-			this.parentName = newParentName;
-			firePropertyChanged(PARENT_NAME_PROPERTY, oldParentName, newParentName);
-		}
-		
-		public Person getChild() {
-			return this.child;
-		}
-	}
-}
diff --git a/jpa/tests/org.eclipse.jpt.utility.tests/src/org/eclipse/jpt/utility/tests/internal/model/value/CollectionAspectAdapterTests.java b/jpa/tests/org.eclipse.jpt.utility.tests/src/org/eclipse/jpt/utility/tests/internal/model/value/CollectionAspectAdapterTests.java
deleted file mode 100644
index 3fd4db8..0000000
--- a/jpa/tests/org.eclipse.jpt.utility.tests/src/org/eclipse/jpt/utility/tests/internal/model/value/CollectionAspectAdapterTests.java
+++ /dev/null
@@ -1,367 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2008 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.utility.tests.internal.model.value;
-
-import java.util.Collection;
-import java.util.Collections;
-import java.util.Iterator;
-import junit.framework.TestCase;
-import org.eclipse.jpt.utility.internal.CollectionTools;
-import org.eclipse.jpt.utility.internal.HashBag;
-import org.eclipse.jpt.utility.internal.iterators.ReadOnlyIterator;
-import org.eclipse.jpt.utility.internal.model.AbstractModel;
-import org.eclipse.jpt.utility.internal.model.value.CollectionAspectAdapter;
-import org.eclipse.jpt.utility.internal.model.value.SimplePropertyValueModel;
-import org.eclipse.jpt.utility.model.event.CollectionChangeEvent;
-import org.eclipse.jpt.utility.model.listener.CollectionChangeListener;
-import org.eclipse.jpt.utility.model.value.CollectionValueModel;
-import org.eclipse.jpt.utility.model.value.PropertyValueModel;
-import org.eclipse.jpt.utility.model.value.WritablePropertyValueModel;
-import org.eclipse.jpt.utility.tests.internal.TestTools;
-
-public class CollectionAspectAdapterTests extends TestCase {
-	private TestSubject subject1;
-	private WritablePropertyValueModel<TestSubject> subjectHolder1;
-	private LocalCollectionAspectAdapter aa1;
-	private CollectionChangeEvent event1;
-	private CollectionChangeListener listener1;
-	private String event1Type;
-
-	private static final String ADD = "add";
-	private static final String REMOVE = "remove";
-	private static final String CHANGE = "change";
-	private static final String CLEAR = "clear";
-
-	private TestSubject subject2;
-
-	public CollectionAspectAdapterTests(String name) {
-		super(name);
-	}
-
-	@Override
-	protected void setUp() throws Exception {
-		super.setUp();
-		this.subject1 = new TestSubject();
-		this.subject1.addNames(this.subject1Names());
-		this.subject1.addDescriptions(this.subject1Descriptions());
-		this.subjectHolder1 = new SimplePropertyValueModel<TestSubject>(this.subject1);
-		this.aa1 = this.buildAspectAdapter(this.subjectHolder1);
-		this.listener1 = this.buildValueChangeListener1();
-		this.aa1.addCollectionChangeListener(CollectionValueModel.VALUES, this.listener1);
-		this.event1 = null;
-		this.event1Type = null;
-
-		this.subject2 = new TestSubject();
-		this.subject2.addNames(this.subject2Names());
-		this.subject2.addDescriptions(this.subject2Descriptions());
-	}
-
-	private Collection<String> subject1Names() {
-		Collection<String> result = new HashBag<String>();
-		result.add("foo");
-		result.add("bar");
-		return result;
-	}
-
-	private Collection<String> subject1Descriptions() {
-		Collection<String> result = new HashBag<String>();
-		result.add("this.subject1 description1");
-		result.add("this.subject1 description2");
-		return result;
-	}
-
-	private Collection<String> subject2Names() {
-		Collection<String> result = new HashBag<String>();
-		result.add("baz");
-		result.add("bam");
-		return result;
-	}
-
-	private Collection<String> subject2Descriptions() {
-		Collection<String> result = new HashBag<String>();
-		result.add("this.subject2 description1");
-		result.add("this.subject2 description2");
-		return result;
-	}
-
-	private LocalCollectionAspectAdapter buildAspectAdapter(PropertyValueModel<TestSubject> subjectHolder) {
-		return new LocalCollectionAspectAdapter(subjectHolder);
-	}
-
-	private CollectionChangeListener buildValueChangeListener1() {
-		return new CollectionChangeListener() {
-			public void itemsAdded(CollectionChangeEvent e) {
-				CollectionAspectAdapterTests.this.value1Changed(e, ADD);
-			}
-			public void itemsRemoved(CollectionChangeEvent e) {
-				CollectionAspectAdapterTests.this.value1Changed(e, REMOVE);
-			}
-			public void collectionCleared(CollectionChangeEvent e) {
-				CollectionAspectAdapterTests.this.value1Changed(e, CLEAR);
-			}
-			public void collectionChanged(CollectionChangeEvent e) {
-				CollectionAspectAdapterTests.this.value1Changed(e, CHANGE);
-			}
-		};
-	}
-
-	void value1Changed(CollectionChangeEvent e, String eventType) {
-		this.event1 = e;
-		this.event1Type = eventType;
-	}
-
-	@Override
-	protected void tearDown() throws Exception {
-		TestTools.clear(this);
-		super.tearDown();
-	}
-
-	public void testSubjectHolder() {
-		assertEquals(this.subject1Names(), CollectionTools.bag(this.aa1.iterator()));
-		assertNull(this.event1);
-
-		this.subjectHolder1.setValue(this.subject2);
-		assertNotNull(this.event1);
-		assertEquals(this.event1Type, CHANGE);
-		assertEquals(this.aa1, this.event1.getSource());
-		assertEquals(CollectionValueModel.VALUES, this.event1.getCollectionName());
-		assertFalse(this.event1.items().hasNext());
-		assertEquals(this.subject2Names(), CollectionTools.bag(this.aa1.iterator()));
-		
-		this.event1 = null;
-		this.event1Type = null;
-		this.subjectHolder1.setValue(null);
-		assertNotNull(this.event1);
-		assertEquals(this.event1Type, CHANGE);
-		assertEquals(this.aa1, this.event1.getSource());
-		assertEquals(CollectionValueModel.VALUES, this.event1.getCollectionName());
-		assertFalse(this.event1.items().hasNext());
-		assertFalse((this.aa1.iterator()).hasNext());
-		
-		this.event1 = null;
-		this.event1Type = null;
-		this.subjectHolder1.setValue(this.subject1);
-		assertNotNull(this.event1);
-		assertEquals(this.event1Type, CHANGE);
-		assertEquals(this.aa1, this.event1.getSource());
-		assertEquals(CollectionValueModel.VALUES, this.event1.getCollectionName());
-		assertFalse(this.event1.items().hasNext());
-		assertEquals(this.subject1Names(), CollectionTools.bag(this.aa1.iterator()));
-	}
-
-	public void testAdd() {
-		assertEquals(this.subject1Names(), CollectionTools.bag(this.aa1.iterator()));
-		assertNull(this.event1);
-
-		this.subject1.addName("jam");
-		assertNotNull(this.event1);
-		assertEquals(this.event1Type, ADD);
-		assertEquals(this.aa1, this.event1.getSource());
-		assertEquals(CollectionValueModel.VALUES, this.event1.getCollectionName());
-		assertEquals("jam", this.event1.items().next());
-		Collection<String> namesPlus = this.subject1Names();
-		namesPlus.add("jam");
-		assertEquals(namesPlus, CollectionTools.bag(this.aa1.iterator()));
-
-		this.event1 = null;
-		this.event1Type = null;
-		this.aa1.addAll(Collections.singleton("jaz"));
-		assertNotNull(this.event1);
-		assertEquals(this.event1Type, ADD);
-		assertEquals(this.aa1, this.event1.getSource());
-		assertEquals(CollectionValueModel.VALUES, this.event1.getCollectionName());
-		assertEquals("jaz", this.event1.items().next());
-		namesPlus.add("jaz");
-		assertEquals(namesPlus, CollectionTools.bag(this.aa1.iterator()));
-	}
-
-	public void testRemove() {
-		assertEquals(this.subject1Names(), CollectionTools.bag(this.aa1.iterator()));
-		assertNull(this.event1);
-
-		this.subject1.removeName("foo");
-		assertNotNull(this.event1);
-		assertEquals(this.event1Type, REMOVE);
-		assertEquals(this.aa1, this.event1.getSource());
-		assertEquals(CollectionValueModel.VALUES, this.event1.getCollectionName());
-		assertEquals("foo", this.event1.items().next());
-		Collection<String> namesMinus = this.subject1Names();
-		namesMinus.remove("foo");
-		assertEquals(namesMinus, CollectionTools.bag(this.aa1.iterator()));
-
-		this.event1 = null;
-		this.event1Type = null;
-		this.aa1.removeAll(Collections.singleton("bar"));
-		assertNotNull(this.event1);
-		assertEquals(this.event1Type, REMOVE);
-		assertEquals(this.aa1, this.event1.getSource());
-		assertEquals(CollectionValueModel.VALUES, this.event1.getCollectionName());
-		assertEquals("bar", this.event1.items().next());
-		namesMinus.remove("bar");
-		assertEquals(namesMinus, CollectionTools.bag(this.aa1.iterator()));
-	}
-
-	public void testCollectionChange() {
-		assertEquals(this.subject1Names(), CollectionTools.bag(this.aa1.iterator()));
-		assertNull(this.event1);
-
-		this.subject1.addTwoNames("jam", "jaz");
-		assertNotNull(this.event1);
-		assertEquals(this.event1Type, CHANGE);
-		assertEquals(this.aa1, this.event1.getSource());
-		assertEquals(CollectionValueModel.VALUES, this.event1.getCollectionName());
-		assertFalse(this.event1.items().hasNext());
-		Collection<String> namesPlus2 = this.subject1Names();
-		namesPlus2.add("jam");
-		namesPlus2.add("jaz");
-		assertEquals(namesPlus2, CollectionTools.bag(this.aa1.iterator()));
-	}
-
-	public void testIterator() {
-		assertEquals(this.subject1Names(), CollectionTools.bag(this.subject1.names()));
-		assertEquals(this.subject1Names(), CollectionTools.bag(this.aa1.iterator()));
-	}
-
-	public void testSize() {
-		assertEquals(this.subject1Names().size(), CollectionTools.size(this.subject1.names()));
-		assertEquals(this.subject1Names().size(), CollectionTools.size(this.aa1.iterator()));
-	}
-
-	public void testHasListeners() {
-		assertTrue(this.aa1.hasAnyCollectionChangeListeners(CollectionValueModel.VALUES));
-		assertTrue(this.subject1.hasAnyCollectionChangeListeners(TestSubject.NAMES_COLLECTION));
-		this.aa1.removeCollectionChangeListener(CollectionValueModel.VALUES, this.listener1);
-		assertFalse(this.subject1.hasAnyCollectionChangeListeners(TestSubject.NAMES_COLLECTION));
-		assertFalse(this.aa1.hasAnyCollectionChangeListeners(CollectionValueModel.VALUES));
-
-		CollectionChangeListener listener2 = this.buildValueChangeListener1();
-		this.aa1.addCollectionChangeListener(listener2);
-		assertTrue(this.aa1.hasAnyCollectionChangeListeners(CollectionValueModel.VALUES));
-		assertTrue(this.subject1.hasAnyCollectionChangeListeners(TestSubject.NAMES_COLLECTION));
-		this.aa1.removeCollectionChangeListener(listener2);
-		assertFalse(this.subject1.hasAnyCollectionChangeListeners(TestSubject.NAMES_COLLECTION));
-		assertFalse(this.aa1.hasAnyCollectionChangeListeners(CollectionValueModel.VALUES));
-	}
-
-
-	// ********** inner class **********
-	
-	private class TestSubject extends AbstractModel {
-		private Collection<String> names;
-		public static final String NAMES_COLLECTION = "names";
-		private Collection<String> descriptions;
-		public static final String DESCRIPTIONS_COLLECTION = "descriptions";
-	
-		public TestSubject() {
-			this.names = new HashBag<String>();
-			this.descriptions = new HashBag<String>();
-		}
-		public Iterator<String> names() {
-			return new ReadOnlyIterator<String>(this.names);
-		}
-		public void addName(String name) {
-			if (this.names.add(name)) {
-				this.fireItemAdded(NAMES_COLLECTION, name);
-			}
-		}
-		public void addNames(Iterator<String> newNames) {
-			while (newNames.hasNext()) {
-				this.addName(newNames.next());
-			}
-		}
-		public void addNames(Collection<String> newNames) {
-			this.addNames(newNames.iterator());
-		}
-		public void addTwoNames(String name1, String name2) {
-			if (this.names.add(name1) | this.names.add(name2)) {
-				this.fireCollectionChanged(NAMES_COLLECTION);
-			}
-		}
-		public void removeName(String name) {
-			if (this.names.remove(name)) {
-				this.fireItemRemoved(NAMES_COLLECTION, name);
-			}
-		}
-		public Iterator<String> descriptions() {
-			return new ReadOnlyIterator<String>(this.descriptions);
-		}
-		public void addDescription(String description) {
-			if (this.descriptions.add(description)) {
-				this.fireItemAdded(DESCRIPTIONS_COLLECTION, description);
-			}
-		}
-		public void addDescriptions(Iterator<String> newDescriptions) {
-			while (newDescriptions.hasNext()) {
-				this.addDescription(newDescriptions.next());
-			}
-		}
-		public void addDescriptions(Collection<String> newDescriptions) {
-			this.addDescriptions(newDescriptions.iterator());
-		}
-		public void removeDescription(String description) {
-			if (this.descriptions.remove(description)) {
-				this.fireItemRemoved(DESCRIPTIONS_COLLECTION, description);
-			}
-		}
-	}
-
-	// this is not a typical aspect adapter - the value is determined by the aspect name
-	private class LocalCollectionAspectAdapter extends CollectionAspectAdapter<TestSubject, String> {
-
-		LocalCollectionAspectAdapter(PropertyValueModel<TestSubject> subjectHolder) {
-			super(subjectHolder, TestSubject.NAMES_COLLECTION);
-		}
-
-		@Override
-		protected Iterator<String> iterator_() {
-			if (this.collectionNames[0] == TestSubject.NAMES_COLLECTION) {
-				return this.subject.names();
-			}
-			if (this.collectionNames[0] == TestSubject.DESCRIPTIONS_COLLECTION) {
-				return this.subject.descriptions();
-			}
-			throw new IllegalStateException("invalid aspect name: " + this.collectionNames[0]);
-		}
-
-		public void add(String item) {
-			if (this.collectionNames[0] == TestSubject.NAMES_COLLECTION) {
-				this.subject.addName(item);
-			} else if (this.collectionNames[0] == TestSubject.DESCRIPTIONS_COLLECTION) {
-				this.subject.addDescription(item);
-			} else {
-				throw new IllegalStateException("invalid aspect name: " + this.collectionNames[0]);
-			}
-		}
-
-		public void addAll(Collection<String> items) {
-			for (Iterator<String> stream = items.iterator(); stream.hasNext(); ) {
-				this.add(stream.next());
-			}
-		}
-
-		public void remove(Object item) {
-			if (this.collectionNames[0] == TestSubject.NAMES_COLLECTION) {
-				this.subject.removeName((String) item);
-			} else if (this.collectionNames[0] == TestSubject.DESCRIPTIONS_COLLECTION) {
-				this.subject.removeDescription((String) item);
-			} else {
-				throw new IllegalStateException("invalid aspect name: " + this.collectionNames[0]);
-			}
-		}
-
-		public void removeAll(Collection<String> items) {
-			for (Iterator<String> stream = items.iterator(); stream.hasNext(); ) {
-				this.remove(stream.next());
-			}
-		}
-
-	}
-
-}
diff --git a/jpa/tests/org.eclipse.jpt.utility.tests/src/org/eclipse/jpt/utility/tests/internal/model/value/CollectionListValueModelAdapterTests.java b/jpa/tests/org.eclipse.jpt.utility.tests/src/org/eclipse/jpt/utility/tests/internal/model/value/CollectionListValueModelAdapterTests.java
deleted file mode 100644
index 1c7ac82..0000000
--- a/jpa/tests/org.eclipse.jpt.utility.tests/src/org/eclipse/jpt/utility/tests/internal/model/value/CollectionListValueModelAdapterTests.java
+++ /dev/null
@@ -1,234 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2008 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.utility.tests.internal.model.value;
-
-import java.util.Collection;
-import java.util.List;
-import javax.swing.JList;
-import junit.framework.TestCase;
-import org.eclipse.jpt.utility.internal.Bag;
-import org.eclipse.jpt.utility.internal.CollectionTools;
-import org.eclipse.jpt.utility.internal.HashBag;
-import org.eclipse.jpt.utility.internal.model.AbstractModel;
-import org.eclipse.jpt.utility.internal.model.value.CollectionListValueModelAdapter;
-import org.eclipse.jpt.utility.internal.model.value.SimpleCollectionValueModel;
-import org.eclipse.jpt.utility.internal.model.value.swing.ListModelAdapter;
-import org.eclipse.jpt.utility.model.event.ListChangeEvent;
-import org.eclipse.jpt.utility.model.listener.ListChangeListener;
-import org.eclipse.jpt.utility.model.value.ListValueModel;
-import org.eclipse.jpt.utility.tests.internal.TestTools;
-
-public class CollectionListValueModelAdapterTests extends TestCase {
-	private ListValueModel<String> adapter;
-	private SimpleCollectionValueModel<String> wrappedCollectionHolder;
-	private Collection<String> wrappedCollection;
-
-	public CollectionListValueModelAdapterTests(String name) {
-		super(name);
-	}
-
-	@Override
-	protected void setUp() throws Exception {
-		super.setUp();
-		this.wrappedCollection = new HashBag<String>();
-		this.wrappedCollectionHolder = new SimpleCollectionValueModel<String>(this.wrappedCollection);
-		this.adapter = new CollectionListValueModelAdapter<String>(this.wrappedCollectionHolder);
-	}
-
-	@Override
-	protected void tearDown() throws Exception {
-		TestTools.clear(this);
-		super.tearDown();
-	}
-
-	public void testIterator() {
-		this.adapter.addListChangeListener(ListValueModel.LIST_VALUES, new TestListChangeListener() {
-			@Override
-			public void itemsAdded(ListChangeEvent e) {/* OK */}
-		});
-		this.wrappedCollectionHolder.add("foo");
-		this.wrappedCollectionHolder.add("bar");
-		this.wrappedCollectionHolder.add("baz");
-		Collection<String> adapterCollection = this.adapterCollection();
-		assertEquals(3, adapterCollection.size());
-		assertEquals(this.wrappedCollection, adapterCollection);
-	}
-
-	private Collection<String> adapterCollection() {
-		return CollectionTools.collection(this.adapter.iterator());
-	}
-
-	public void testStaleValue() {
-		ListChangeListener listener = new TestListChangeListener() {
-			@Override
-			public void itemsAdded(ListChangeEvent e) {/* OK */}
-		};
-		this.adapter.addListChangeListener(ListValueModel.LIST_VALUES, listener);
-		this.wrappedCollectionHolder.add("foo");
-		this.wrappedCollectionHolder.add("bar");
-		this.wrappedCollectionHolder.add("baz");
-		Collection<String> adapterCollection = this.adapterCollection();
-		assertEquals(3, adapterCollection.size());
-		assertEquals(this.wrappedCollection, adapterCollection);
-
-		this.adapter.removeListChangeListener(ListValueModel.LIST_VALUES, listener);
-		adapterCollection = this.adapterCollection();
-		assertEquals(0, adapterCollection.size());
-		assertEquals(new HashBag<String>(), adapterCollection);
-
-		this.adapter.addListChangeListener(ListValueModel.LIST_VALUES, listener);
-		adapterCollection = this.adapterCollection();
-		assertEquals(3, adapterCollection.size());
-		assertEquals(this.wrappedCollection, adapterCollection);
-	}
-
-	public void testAdd() {
-		List<String> synchList = new CoordinatedList<String>(this.adapter);
-		Bag<String> synchCollection = new CoordinatedBag<String>(this.wrappedCollectionHolder);
-		this.wrappedCollectionHolder.add("foo");
-		assertTrue(this.wrappedCollection.contains("foo"));
-		this.wrappedCollectionHolder.add("bar");
-		this.wrappedCollectionHolder.add("baz");
-		this.wrappedCollectionHolder.add("joo");
-		this.wrappedCollectionHolder.add("jar");
-		this.wrappedCollectionHolder.add("jaz");
-		assertEquals(6, this.wrappedCollection.size());
-
-		Collection<String> adapterCollection = this.adapterCollection();
-		assertEquals(this.wrappedCollection, adapterCollection);
-		assertEquals(this.wrappedCollection, CollectionTools.collection(synchList.iterator()));
-		assertEquals(this.wrappedCollection, synchCollection);
-	}
-
-	public void testRemove() {
-		List<String> synchList = new CoordinatedList<String>(this.adapter);
-		Bag<String> synchCollection = new CoordinatedBag<String>(this.wrappedCollectionHolder);
-		this.wrappedCollectionHolder.add("foo");
-		this.wrappedCollectionHolder.add("bar");
-		this.wrappedCollectionHolder.add("baz");
-		this.wrappedCollectionHolder.add("joo");
-		this.wrappedCollectionHolder.add("jar");
-		this.wrappedCollectionHolder.add("jaz");
-		assertTrue(this.wrappedCollection.contains("jaz"));
-		this.wrappedCollectionHolder.remove("jaz");
-		assertFalse(this.wrappedCollection.contains("jaz"));
-		this.wrappedCollectionHolder.remove("foo");
-		assertFalse(this.wrappedCollection.contains("foo"));
-		assertEquals(4, this.wrappedCollection.size());
-
-		Collection<String> adapterCollection = this.adapterCollection();
-		assertEquals(this.wrappedCollection, adapterCollection);
-		assertEquals(this.wrappedCollection, CollectionTools.collection(synchList.iterator()));
-		assertEquals(this.wrappedCollection, synchCollection);
-	}
-
-	public void testListSynch() {
-		this.adapter.addListChangeListener(ListValueModel.LIST_VALUES, new TestListChangeListener() {
-			@Override
-			public void itemsAdded(ListChangeEvent e) {/* OK */}
-			@Override
-			public void itemsRemoved(ListChangeEvent e) {/* OK */}
-		});
-		this.wrappedCollectionHolder.add("foo");
-		this.wrappedCollectionHolder.add("bar");
-		this.wrappedCollectionHolder.add("baz");
-		this.wrappedCollectionHolder.add("joo");
-		this.wrappedCollectionHolder.add("jar");
-		this.wrappedCollectionHolder.add("jaz");
-		this.wrappedCollectionHolder.remove("jaz");
-		assertFalse(this.wrappedCollection.contains("jaz"));
-		this.wrappedCollectionHolder.remove("foo");
-		assertFalse(this.wrappedCollection.contains("foo"));
-		assertEquals(4, this.wrappedCollection.size());
-
-		Collection<String> adapterCollection = this.adapterCollection();
-		assertEquals(this.wrappedCollection, adapterCollection);
-	}
-
-	public void testHasListeners() {
-		assertFalse(((AbstractModel) this.adapter).hasAnyListChangeListeners(ListValueModel.LIST_VALUES));
-		CoordinatedList<String> synchList = new CoordinatedList<String>(this.adapter);
-		assertTrue(((AbstractModel) this.adapter).hasAnyListChangeListeners(ListValueModel.LIST_VALUES));
-		this.adapter.removeListChangeListener(ListValueModel.LIST_VALUES, synchList);
-		assertFalse(((AbstractModel) this.adapter).hasAnyListChangeListeners(ListValueModel.LIST_VALUES));
-		this.adapter.addListChangeListener(synchList);
-		assertTrue(((AbstractModel) this.adapter).hasAnyListChangeListeners(ListValueModel.LIST_VALUES));
-		this.adapter.removeListChangeListener(synchList);
-		assertFalse(((AbstractModel) this.adapter).hasAnyListChangeListeners(ListValueModel.LIST_VALUES));
-	}
-
-	public void testCollectionChangedToEmpty() {
-		this.adapter.addListChangeListener(ListValueModel.LIST_VALUES, new TestListChangeListener() {
-			@Override
-			public void itemsAdded(ListChangeEvent e) {/* OK */}
-			@Override
-			public void itemsRemoved(ListChangeEvent e) {/* OK */}
-		});
-		this.wrappedCollectionHolder.add("foo");
-		this.wrappedCollectionHolder.add("bar");
-		this.wrappedCollectionHolder.add("baz");
-		JList jList = new JList(new ListModelAdapter(this.adapter));
-		this.wrappedCollectionHolder.setCollection(new HashBag<String>());
-		assertEquals(0, jList.getModel().getSize());
-	}
-	
-	public void testCollectionChangedFromEmpty() {
-		this.adapter.addListChangeListener(ListValueModel.LIST_VALUES, new TestListChangeListener() {
-			@Override
-			public void itemsAdded(ListChangeEvent e) {/* OK */}
-			@Override
-			public void itemsRemoved(ListChangeEvent e) {/* OK */}
-		});
-		JList jList = new JList(new ListModelAdapter(this.adapter));
-		
-		HashBag<String> bag = new HashBag<String>();
-		bag.add("foo");
-		bag.add("bar");
-		this.wrappedCollectionHolder.setCollection(bag);
-		assertEquals(2, jList.getModel().getSize());
-	}
-	
-	public void testCollectionChangedFromEmptyToEmpty() {
-		this.adapter.addListChangeListener(ListValueModel.LIST_VALUES, new TestListChangeListener() {
-			@Override
-			public void itemsAdded(ListChangeEvent e) {/* OK */}
-			@Override
-			public void itemsRemoved(ListChangeEvent e) {/* OK */}
-		});
-		JList jList = new JList(new ListModelAdapter(this.adapter));
-		
-		HashBag<String> bag = new HashBag<String>();
-		this.wrappedCollectionHolder.setCollection(bag);
-		assertEquals(0, jList.getModel().getSize());
-	}
-
-
-	class TestListChangeListener implements ListChangeListener {
-		public void itemsAdded(ListChangeEvent e) {
-			fail("unexpected event");
-		}
-		public void itemsRemoved(ListChangeEvent e) {
-			fail("unexpected event");
-		}
-		public void itemsReplaced(ListChangeEvent e) {
-			fail("unexpected event");
-		}
-		public void itemsMoved(ListChangeEvent e) {
-			fail("unexpected event");
-		}
-		public void listCleared(ListChangeEvent e) {
-			fail("unexpected event");
-		}
-		public void listChanged(ListChangeEvent e) {
-			fail("unexpected event");
-		}
-	}
-
-}
diff --git a/jpa/tests/org.eclipse.jpt.utility.tests/src/org/eclipse/jpt/utility/tests/internal/model/value/CollectionPropertyValueModelAdapterTests.java b/jpa/tests/org.eclipse.jpt.utility.tests/src/org/eclipse/jpt/utility/tests/internal/model/value/CollectionPropertyValueModelAdapterTests.java
deleted file mode 100644
index f0ba9ac..0000000
--- a/jpa/tests/org.eclipse.jpt.utility.tests/src/org/eclipse/jpt/utility/tests/internal/model/value/CollectionPropertyValueModelAdapterTests.java
+++ /dev/null
@@ -1,234 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2008 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.utility.tests.internal.model.value;
-
-import java.util.Collection;
-import junit.framework.TestCase;
-import org.eclipse.jpt.utility.internal.CollectionTools;
-import org.eclipse.jpt.utility.internal.model.AbstractModel;
-import org.eclipse.jpt.utility.internal.model.value.CollectionPropertyValueModelAdapter;
-import org.eclipse.jpt.utility.internal.model.value.SimpleCollectionValueModel;
-import org.eclipse.jpt.utility.model.event.PropertyChangeEvent;
-import org.eclipse.jpt.utility.model.listener.PropertyChangeListener;
-import org.eclipse.jpt.utility.model.value.CollectionValueModel;
-import org.eclipse.jpt.utility.model.value.PropertyValueModel;
-import org.eclipse.jpt.utility.model.value.WritablePropertyValueModel;
-import org.eclipse.jpt.utility.tests.internal.TestTools;
-
-public class CollectionPropertyValueModelAdapterTests extends TestCase {
-	private WritablePropertyValueModel<Boolean> adapter;
-	private SimpleCollectionValueModel<String> wrappedCollectionHolder;
-	PropertyChangeEvent event;
-
-	public CollectionPropertyValueModelAdapterTests(String name) {
-		super(name);
-	}
-
-	@Override
-	protected void setUp() throws Exception {
-		super.setUp();
-		this.wrappedCollectionHolder = new SimpleCollectionValueModel<String>();
-		this.adapter = new LocalAdapter(this.wrappedCollectionHolder, "666");
-		this.event = null;
-	}
-
-	@Override
-	protected void tearDown() throws Exception {
-		TestTools.clear(this);
-		super.tearDown();
-	}
-
-	private boolean booleanValue() {
-		return this.adapter.getValue().booleanValue();
-	}
-
-	private Collection<String> wrappedCollection() {
-		return CollectionTools.collection(this.wrappedCollectionHolder.iterator());
-	}
-
-	public void testValue() {
-		this.adapter.addPropertyChangeListener(PropertyValueModel.VALUE, new PropertyChangeListener() {
-			public void propertyChanged(PropertyChangeEvent e) {/* OK */}
-		});
-		assertFalse(this.booleanValue());
-		assertFalse(this.wrappedCollection().contains("666"));
-
-		this.wrappedCollectionHolder.add("111");
-		assertFalse(this.booleanValue());
-
-		this.wrappedCollectionHolder.add("222");
-		assertFalse(this.booleanValue());
-
-		this.wrappedCollectionHolder.add("666");
-		assertTrue(this.booleanValue());
-		assertTrue(this.wrappedCollection().contains("666"));
-
-		this.wrappedCollectionHolder.remove("666");
-		assertFalse(this.booleanValue());
-		assertFalse(this.wrappedCollection().contains("666"));
-
-		this.wrappedCollectionHolder.add("666");
-		assertTrue(this.booleanValue());
-		assertTrue(this.wrappedCollection().contains("666"));
-
-		this.wrappedCollectionHolder.clear();
-		assertFalse(this.booleanValue());
-		assertFalse(this.wrappedCollection().contains("666"));
-	}
-
-	public void testSetValue() {
-		this.adapter.addPropertyChangeListener(PropertyValueModel.VALUE, new PropertyChangeListener() {
-			public void propertyChanged(PropertyChangeEvent e) {/* OK */}
-		});
-		assertFalse(this.booleanValue());
-		assertFalse(this.wrappedCollection().contains("666"));
-
-		this.adapter.setValue(Boolean.TRUE);
-		assertTrue(this.booleanValue());
-		assertTrue(this.wrappedCollection().contains("666"));
-
-		this.adapter.setValue(Boolean.FALSE);
-		assertFalse(this.booleanValue());
-		assertFalse(this.wrappedCollection().contains("666"));
-	}
-
-	public void testEventFiring() {
-		this.adapter.addPropertyChangeListener(PropertyValueModel.VALUE, new PropertyChangeListener() {
-			public void propertyChanged(PropertyChangeEvent e) {
-				CollectionPropertyValueModelAdapterTests.this.event = e;
-			}
-		});
-		assertNull(this.event);
-
-		this.wrappedCollectionHolder.add("111");
-		assertNull(this.event);
-
-		this.wrappedCollectionHolder.add("222");
-		assertNull(this.event);
-
-		this.wrappedCollectionHolder.add("666");
-		this.verifyEvent(false, true);
-
-		this.wrappedCollectionHolder.remove("666");
-		this.verifyEvent(true, false);
-
-		this.wrappedCollectionHolder.add("666");
-		this.verifyEvent(false, true);
-
-		this.wrappedCollectionHolder.clear();
-		this.verifyEvent(true, false);
-	}
-
-	private void verifyEvent(boolean oldValue, boolean newValue) {
-		assertEquals(this.adapter, this.event.getSource());
-		assertEquals(Boolean.valueOf(oldValue), this.event.getOldValue());
-		assertEquals(Boolean.valueOf(newValue), this.event.getNewValue());
-		this.event = null;
-	}
-
-	public void testStaleValue() {
-		PropertyChangeListener listener = new PropertyChangeListener() {
-			public void propertyChanged(PropertyChangeEvent e) {/* OK */}
-		};
-		this.adapter.addPropertyChangeListener(PropertyValueModel.VALUE, listener);
-		this.wrappedCollectionHolder.add("666");
-		assertTrue(this.booleanValue());
-		assertTrue(this.wrappedCollection().contains("666"));
-
-		this.adapter.removePropertyChangeListener(PropertyValueModel.VALUE, listener);
-		assertFalse(this.booleanValue());
-		assertTrue(this.wrappedCollection().contains("666"));
-
-		this.adapter.addPropertyChangeListener(PropertyValueModel.VALUE, listener);
-		assertTrue(this.booleanValue());
-		assertTrue(this.wrappedCollection().contains("666"));
-	}
-
-	public void testHasListeners() {
-		assertFalse(((AbstractModel) this.adapter).hasAnyPropertyChangeListeners(PropertyValueModel.VALUE));
-		assertFalse(((AbstractModel) this.wrappedCollectionHolder).hasAnyCollectionChangeListeners(CollectionValueModel.VALUES));
-
-		PropertyChangeListener listener = new PropertyChangeListener() {
-			public void propertyChanged(PropertyChangeEvent e) {/* OK */}
-		};
-		this.adapter.addPropertyChangeListener(PropertyValueModel.VALUE, listener);
-		assertTrue(((AbstractModel) this.adapter).hasAnyPropertyChangeListeners(PropertyValueModel.VALUE));
-		assertTrue(((AbstractModel) this.wrappedCollectionHolder).hasAnyCollectionChangeListeners(CollectionValueModel.VALUES));
-
-		this.adapter.removePropertyChangeListener(PropertyValueModel.VALUE, listener);
-		assertFalse(((AbstractModel) this.adapter).hasAnyPropertyChangeListeners(PropertyValueModel.VALUE));
-		assertFalse(((AbstractModel) this.wrappedCollectionHolder).hasAnyCollectionChangeListeners(CollectionValueModel.VALUES));
-
-		this.adapter.addPropertyChangeListener(listener);
-		assertTrue(((AbstractModel) this.adapter).hasAnyPropertyChangeListeners(PropertyValueModel.VALUE));
-		assertTrue(((AbstractModel) this.wrappedCollectionHolder).hasAnyCollectionChangeListeners(CollectionValueModel.VALUES));
-
-		this.adapter.removePropertyChangeListener(listener);
-		assertFalse(((AbstractModel) this.adapter).hasAnyPropertyChangeListeners(PropertyValueModel.VALUE));
-		assertFalse(((AbstractModel) this.wrappedCollectionHolder).hasAnyCollectionChangeListeners(CollectionValueModel.VALUES));
-	}
-
-
-	// ********** member class **********
-
-	/**
-	 * the value is true if the wrapped collection contains the specified item,
-	 * otherwise the value is false
-	 */
-	private static class LocalAdapter
-		extends CollectionPropertyValueModelAdapter<Boolean>
-		implements WritablePropertyValueModel<Boolean>
-	{
-		private String item;
-
-		LocalAdapter(CollectionValueModel<String> collectionHolder, String item) {
-			super(collectionHolder);
-			this.item = item;
-		}
-
-		// ********** CollectionPropertyValueModelAdapter implementation **********
-		/**
-		 * always return a Boolean
-		 */
-		@Override
-		public Boolean getValue() {
-			Boolean result = super.getValue();
-			return (result == null) ? Boolean.FALSE : result;
-		}
-		@SuppressWarnings("unchecked")
-		public void setValue(Boolean value) {
-			if (this.booleanValue()) {
-				if ( ! this.booleanValueOf(value)) {
-					// the value is changing from true to false
-					((SimpleCollectionValueModel<String>) this.collectionHolder).remove(this.item);
-				}
-			} else {
-				if (this.booleanValueOf(value)) {
-					// the value is changing from false to true
-					((SimpleCollectionValueModel<String>) this.collectionHolder).add(this.item);
-				}
-			}
-		}
-		@Override
-		protected Boolean buildValue() {
-			return Boolean.valueOf(CollectionTools.contains(this.collectionHolder.iterator(), this.item));
-		}
-
-		// ********** internal methods **********
-		private boolean booleanValue() {
-			return this.booleanValueOf(this.value);
-		}
-		private boolean booleanValueOf(Object b) {
-			return (b == null) ? false : ((Boolean) b).booleanValue();
-		}
-
-	}
-
-}
diff --git a/jpa/tests/org.eclipse.jpt.utility.tests/src/org/eclipse/jpt/utility/tests/internal/model/value/CompositeCollectionValueModelTests.java b/jpa/tests/org.eclipse.jpt.utility.tests/src/org/eclipse/jpt/utility/tests/internal/model/value/CompositeCollectionValueModelTests.java
deleted file mode 100644
index 1a7b688..0000000
--- a/jpa/tests/org.eclipse.jpt.utility.tests/src/org/eclipse/jpt/utility/tests/internal/model/value/CompositeCollectionValueModelTests.java
+++ /dev/null
@@ -1,414 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2008 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.utility.tests.internal.model.value;
-
-import java.util.ArrayList;
-import java.util.Collection;
-import java.util.Iterator;
-import junit.framework.TestCase;
-import org.eclipse.jpt.utility.internal.Bag;
-import org.eclipse.jpt.utility.internal.CollectionTools;
-import org.eclipse.jpt.utility.internal.Transformer;
-import org.eclipse.jpt.utility.internal.iterators.CompositeIterator;
-import org.eclipse.jpt.utility.internal.iterators.TransformationIterator;
-import org.eclipse.jpt.utility.internal.model.AbstractModel;
-import org.eclipse.jpt.utility.internal.model.value.CollectionAspectAdapter;
-import org.eclipse.jpt.utility.internal.model.value.CompositeCollectionValueModel;
-import org.eclipse.jpt.utility.internal.model.value.SimpleCollectionValueModel;
-import org.eclipse.jpt.utility.internal.model.value.SimplePropertyValueModel;
-import org.eclipse.jpt.utility.model.value.CollectionValueModel;
-import org.eclipse.jpt.utility.model.value.PropertyValueModel;
-import org.eclipse.jpt.utility.model.value.WritablePropertyValueModel;
-import org.eclipse.jpt.utility.tests.internal.TestTools;
-
-public class CompositeCollectionValueModelTests extends TestCase {
-	private Neighborhood neighborhood;
-	private WritablePropertyValueModel<Neighborhood> neighborhoodHolder;
-
-	public CompositeCollectionValueModelTests(String name) {
-		super(name);
-	}
-
-	@Override
-	protected void setUp() throws Exception {
-		super.setUp();
-		this.neighborhood = new Neighborhood("Hanna-Barbera");
-		this.neighborhoodHolder = new SimplePropertyValueModel<Neighborhood>(this.neighborhood);
-	}
-
-	@Override
-	protected void tearDown() throws Exception {
-		TestTools.clear(this);
-		super.tearDown();
-	}
-
-	public void testSynch1() {
-		this.verifySynch(this.buildAllMembersComposite(this.neighborhoodHolder));
-	}
-
-	public void testSynch2() {
-		this.verifySynch(this.buildAllMembersComposite2(this.neighborhoodHolder));
-	}
-
-	private void verifySynch(CollectionValueModel<Member> compositeCVM) {
-		assertEquals(0, CollectionTools.size(compositeCVM.iterator()));
-		Bag<Family> familiesSynch = new CoordinatedBag<Family>(this.buildFamiliesAspectAdapter(this.neighborhoodHolder));
-		Bag<Member> membersSynch = new CoordinatedBag<Member>(compositeCVM);
-		this.populateNeighborhood(this.neighborhood);
-
-		Family jetsons = this.neighborhood.familyNamed("Jetson");
-
-		assertEquals(3, familiesSynch.size());
-		assertEquals(12, CollectionTools.size(this.neighborhood.allMembers()));
-		assertEquals(12, membersSynch.size());
-		assertEquals(CollectionTools.bag(this.neighborhood.allMembers()), membersSynch);
-		assertEquals(membersSynch, CollectionTools.bag(compositeCVM.iterator()));
-
-		jetsons.removeMember(jetsons.memberNamed("Astro"));
-		assertEquals(3, familiesSynch.size());
-		assertEquals(11, CollectionTools.size(this.neighborhood.allMembers()));
-		assertEquals(11, membersSynch.size());
-		assertEquals(CollectionTools.bag(this.neighborhood.allMembers()), membersSynch);
-		assertEquals(membersSynch, CollectionTools.bag(compositeCVM.iterator()));
-
-		jetsons.removeMember(jetsons.memberNamed("Judy"));
-		assertEquals(3, familiesSynch.size());
-		assertEquals(10, CollectionTools.size(this.neighborhood.allMembers()));
-		assertEquals(10, membersSynch.size());
-		assertEquals(CollectionTools.bag(this.neighborhood.allMembers()), membersSynch);
-		assertEquals(membersSynch, CollectionTools.bag(compositeCVM.iterator()));
-
-		jetsons.addMember("Fido");
-		assertEquals(3, familiesSynch.size());
-		assertEquals(11, CollectionTools.size(this.neighborhood.allMembers()));
-		assertEquals(11, membersSynch.size());
-		assertEquals(CollectionTools.bag(this.neighborhood.allMembers()), membersSynch);
-		assertEquals(membersSynch, CollectionTools.bag(compositeCVM.iterator()));
-
-		this.neighborhood.removeFamily(jetsons);
-		assertEquals(2, familiesSynch.size());
-		assertEquals(7, CollectionTools.size(this.neighborhood.allMembers()));
-		assertEquals(7, membersSynch.size());
-		assertEquals(CollectionTools.bag(this.neighborhood.allMembers()), membersSynch);
-		assertEquals(membersSynch, CollectionTools.bag(compositeCVM.iterator()));
-
-		Family bears = this.neighborhood.addFamily("Bear");
-			bears.addMember("Yogi");
-		assertEquals(3, familiesSynch.size());
-		assertEquals(8, CollectionTools.size(this.neighborhood.allMembers()));
-		assertEquals(8, membersSynch.size());
-		assertEquals(CollectionTools.bag(this.neighborhood.allMembers()), membersSynch);
-		assertEquals(membersSynch, CollectionTools.bag(compositeCVM.iterator()));
-
-		bears.addMember("Boo-Boo");
-		assertEquals(3, familiesSynch.size());
-		assertEquals(9, CollectionTools.size(this.neighborhood.allMembers()));
-		assertEquals(9, membersSynch.size());
-		assertEquals(CollectionTools.bag(this.neighborhood.allMembers()), membersSynch);
-		assertEquals(membersSynch, CollectionTools.bag(compositeCVM.iterator()));
-
-		Neighborhood n2 = new Neighborhood("Hanna-Barbera 2");
-		this.neighborhoodHolder.setValue(n2);
-		this.populateNeighborhood(n2);
-		assertEquals(3, familiesSynch.size());
-		assertEquals(12, CollectionTools.size(n2.allMembers()));
-		assertEquals(12, membersSynch.size());
-		assertEquals(CollectionTools.bag(n2.allMembers()), membersSynch);
-		assertEquals(membersSynch, CollectionTools.bag(compositeCVM.iterator()));
-	}
-
-	public void testNoTransformer() {
-		SimpleCollectionValueModel<String> subCVM1 = new SimpleCollectionValueModel<String>();
-		SimpleCollectionValueModel<String> subCVM2 = new SimpleCollectionValueModel<String>();
-		Collection<CollectionValueModel<String>> collection = new ArrayList<CollectionValueModel<String>>();
-		collection.add(subCVM1);
-		collection.add(subCVM2);
-		Bag<String> synchBag = new CoordinatedBag<String>(new CompositeCollectionValueModel<CollectionValueModel<String>, String>(collection));
-
-		assertEquals(0, synchBag.size());
-
-		subCVM1.add("foo");
-		subCVM1.add("bar");
-		subCVM1.add("baz");
-		assertEquals(3, synchBag.size());
-		assertTrue(synchBag.contains("foo"));
-
-		subCVM2.add("joo");
-		subCVM2.add("jar");
-		subCVM2.add("jaz");
-		assertEquals(6, synchBag.size());
-		assertTrue(synchBag.contains("foo"));
-		assertTrue(synchBag.contains("jaz"));
-
-		subCVM1.remove("baz");
-		assertEquals(5, synchBag.size());
-		assertFalse(synchBag.contains("baz"));
-	}
-
-	public void testDuplicateItem() {
-		Bag<Member> synchBag = new CoordinatedBag<Member>(this.buildAllMembersComposite(this.neighborhoodHolder));
-		this.populateNeighborhood(this.neighborhood);
-		boolean exCaught = false;
-		try {
-			this.neighborhood.addFamily(this.neighborhood.familyNamed("Jetson"));
-		} catch (IllegalStateException ex) {
-			if (ex.getMessage().indexOf("duplicate component") != -1) {
-				exCaught = true;
-			}
-		}
-		assertTrue(exCaught);
-		assertEquals(12, synchBag.size());
-	}
-
-	public void testHasListeners() {
-		CompositeCollectionValueModel<Family, Member> compositeCVM = this.buildAllMembersComposite(this.neighborhoodHolder);
-		CoordinatedBag<Member> synchBag = new CoordinatedBag<Member>(compositeCVM);
-		this.populateNeighborhood(this.neighborhood);
-		Family jetsons = this.neighborhood.familyNamed("Jetson");
-
-		assertTrue(compositeCVM.hasAnyCollectionChangeListeners(CollectionValueModel.VALUES));
-		assertTrue(jetsons.hasAnyCollectionChangeListeners(Family.MEMBERS_COLLECTION));
-
-		compositeCVM.removeCollectionChangeListener(CollectionValueModel.VALUES, synchBag);
-		assertFalse(compositeCVM.hasAnyCollectionChangeListeners(CollectionValueModel.VALUES));
-		assertFalse(jetsons.hasAnyCollectionChangeListeners(Family.MEMBERS_COLLECTION));
-
-		compositeCVM.addCollectionChangeListener(CollectionValueModel.VALUES, synchBag);
-		assertTrue(compositeCVM.hasAnyCollectionChangeListeners(CollectionValueModel.VALUES));
-		assertTrue(jetsons.hasAnyCollectionChangeListeners(Family.MEMBERS_COLLECTION));
-	}
-
-	private void populateNeighborhood(Neighborhood n) {
-		Family family1 = n.addFamily("Flintstone");
-			family1.addMember("Fred");
-			family1.addMember("Wilma");
-			family1.addMember("Pebbles");
-			family1.addMember("Dino");
-		Family family2 = n.addFamily("Rubble");
-			family2.addMember("Barney");
-			family2.addMember("Betty");
-			family2.addMember("Bamm-Bamm");
-		Family family3 = n.addFamily("Jetson");
-			family3.addMember("George");
-			family3.addMember("Jane");
-			family3.addMember("Judy");
-			family3.addMember("Elroy");
-			family3.addMember("Astro");
-	}
-
-	private CollectionValueModel<Family> buildFamiliesAspectAdapter(PropertyValueModel<Neighborhood> communeHolder) {
-		return new CollectionAspectAdapter<Neighborhood, Family>(communeHolder, Neighborhood.FAMILIES_COLLECTION) {
-			@Override
-			protected Iterator<Family> iterator_() {
-				return this.subject.families();
-			}
-		};
-	}
-
-	CollectionValueModel<Member> buildMembersAdapter(Family family) {
-		return new CollectionAspectAdapter<Family, Member>(Family.MEMBERS_COLLECTION, family) {
-			@Override
-			protected Iterator<Member> iterator_() {
-				return this.subject.members();
-			}
-		};
-	}
-
-	private CompositeCollectionValueModel<Family, Member> buildAllMembersComposite(PropertyValueModel<Neighborhood> communeHolder) {
-		// override #transform(Object)
-		return new CompositeCollectionValueModel<Family, Member>(this.buildFamiliesAspectAdapter(communeHolder)) {
-			@Override
-			protected CollectionValueModel<Member> transform(Family family) {
-				return CompositeCollectionValueModelTests.this.buildMembersAdapter(family);
-			}
-		};
-	}
-
-	private CollectionValueModel<Member> buildAllMembersComposite2(PropertyValueModel<Neighborhood> communeHolder) {
-		// build a custom Transformer
-		return new CompositeCollectionValueModel<Family, Member>(this.buildFamiliesAspectAdapter(communeHolder), this.buildTransformer());
-	}
-
-	private Transformer<Family, CollectionValueModel<Member>> buildTransformer() {
-		return new Transformer<Family, CollectionValueModel<Member>>() {
-			public CollectionValueModel<Member> transform(Family family) {
-				return CompositeCollectionValueModelTests.this.buildMembersAdapter(family);
-			}
-			@Override
-			public String toString() {
-				return "Local Transformer";
-			}
-		};
-	}
-
-
-// ********** inner classes **********
-
-	/**
-	 * inner class
-	 */
-	private class Neighborhood extends AbstractModel {
-		private String name;
-			public static final String NAME_PROPERTY = "name";
-		private Collection<Family> families = new ArrayList<Family>();
-			public static final String FAMILIES_COLLECTION = "families";
-	
-		public Neighborhood(String name) {
-			super();
-			this.name = name;
-		}
-	
-		public String getName() {
-			return this.name;
-		}
-		
-		public void setName(String name) {
-			Object old = this.name;
-			this.name = name;
-			this.firePropertyChanged(NAME_PROPERTY, old, name);
-		}
-	
-		public Iterator<Family> families() {
-			return this.families.iterator();
-		}
-	
-		public Family addFamily(String familyName) {
-			return this.addFamily(new Family(familyName));
-		}
-
-		// backdoor to allow duplicates
-		public Family addFamily(Family family) {
-			this.addItemToCollection(family, this.families, FAMILIES_COLLECTION);
-			return family;
-		}
-
-		public void removeFamily(Family family) {
-			this.removeItemFromCollection(family, this.families, FAMILIES_COLLECTION);
-		}
-	
-		public Family familyNamed(String familyName) {
-			for (Family family : this.families) {
-				if (family.getName().equals(familyName)) {
-					return family;
-				}
-			}
-			throw new IllegalArgumentException(familyName);
-		}
-	
-		public Iterator<Member> allMembers() {
-			return new CompositeIterator<Member>(this.membersIterators());
-		}
-	
-		private Iterator<Iterator<Member>> membersIterators() {
-			return new TransformationIterator<Family, Iterator<Member>>(this.families()) {
-				@Override
-				protected Iterator<Member> transform(Family family) {
-					return family.members();
-				}
-			};
-		}
-	
-		public Member memberNamed(String familyName, String memberName) {
-			return this.familyNamed(familyName).memberNamed(memberName);
-		}
-	
-		@Override
-		public void toString(StringBuilder sb) {
-			sb.append(this.name);
-		}
-
-	}
-
-
-	/**
-	 * inner class
-	 */
-	private class Family extends AbstractModel {
-		private String name;
-			public static final String NAME_PROPERTY = "name";
-		private Collection<Member> members = new ArrayList<Member>();
-			public static final String MEMBERS_COLLECTION = "members";
-	
-		public Family(String name) {
-			super();
-			this.name = name;
-		}
-	
-		public String getName() {
-			return this.name;
-		}
-		
-		public void setName(String name) {
-			Object old = this.name;
-			this.name = name;
-			this.firePropertyChanged(NAME_PROPERTY, old, name);
-		}
-	
-		public Iterator<Member> members() {
-			return this.members.iterator();
-		}
-	
-		public Member addMember(String memberName) {
-			Member member = new Member(memberName);
-			this.addItemToCollection(member, this.members, MEMBERS_COLLECTION);
-			return member;
-		}
-		
-		public void removeMember(Member member) {
-			this.removeItemFromCollection(member, this.members, MEMBERS_COLLECTION);
-		}
-	
-		public Member memberNamed(String memberName) {
-			for (Member member : this.members) {
-				if (member.getName().equals(memberName)) {
-					return member;
-				}
-			}
-			throw new IllegalArgumentException(memberName);
-		}
-	
-		@Override
-		public void toString(StringBuilder sb) {
-			sb.append(this.name);
-		}
-	
-	}
-
-
-	/**
-	 * inner class
-	 */
-	private class Member extends AbstractModel {
-		private String name;
-			public static final String NAME_PROPERTY = "name";
-
-		public Member(String name) {
-			super();
-			this.name = name;
-		}
-
-		public String getName() {
-			return this.name;
-		}
-	
-		public void setName(String name) {
-			Object old = this.name;
-			this.name = name;
-			this.firePropertyChanged(NAME_PROPERTY, old, name);
-		}
-
-		@Override
-		public void toString(StringBuilder sb) {
-			sb.append(this.name);
-		}
-
-	}
-
-}
diff --git a/jpa/tests/org.eclipse.jpt.utility.tests/src/org/eclipse/jpt/utility/tests/internal/model/value/CompositeListValueModelTests.java b/jpa/tests/org.eclipse.jpt.utility.tests/src/org/eclipse/jpt/utility/tests/internal/model/value/CompositeListValueModelTests.java
deleted file mode 100644
index 657ffc1..0000000
--- a/jpa/tests/org.eclipse.jpt.utility.tests/src/org/eclipse/jpt/utility/tests/internal/model/value/CompositeListValueModelTests.java
+++ /dev/null
@@ -1,847 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.utility.tests.internal.model.value;
-
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.Collection;
-import java.util.Iterator;
-import java.util.List;
-import junit.framework.TestCase;
-import org.eclipse.jpt.utility.internal.model.value.CompositeListValueModel;
-import org.eclipse.jpt.utility.internal.model.value.SimpleListValueModel;
-import org.eclipse.jpt.utility.model.value.ListValueModel;
-import org.eclipse.jpt.utility.tests.internal.TestTools;
-
-public class CompositeListValueModelTests extends TestCase {
-	private SimpleListValueModel<String> lvm0;
-	private SimpleListValueModel<String> lvm1;
-	private SimpleListValueModel<String> lvm2;
-	private SimpleListValueModel<String> lvm3;
-	private SimpleListValueModel<SimpleListValueModel<String>> uberLVM;
-	private CompositeListValueModel<SimpleListValueModel<String>, String> compositeLVM;
-
-	public CompositeListValueModelTests(String name) {
-		super(name);
-	}
-
-	@Override
-	protected void setUp() throws Exception {
-		super.setUp();
-
-		this.lvm0 = new SimpleListValueModel<String>();
-		this.lvm0.add("aaa");
-		this.lvm0.add("bbb");
-		this.lvm0.add("ccc");
-
-		this.lvm1 = new SimpleListValueModel<String>();
-		this.lvm1.add("ddd");
-		this.lvm1.add("eee");
-
-		this.lvm2 = new SimpleListValueModel<String>();
-		this.lvm2.add("fff");
-
-		this.lvm3 = new SimpleListValueModel<String>();
-		this.lvm3.add("ggg");
-		this.lvm3.add("hhh");
-		this.lvm3.add("iii");
-		this.lvm3.add("jjj");
-		this.lvm3.add("kkk");
-
-		this.uberLVM = new SimpleListValueModel<SimpleListValueModel<String>>();
-		this.uberLVM.add(this.lvm0);
-		this.uberLVM.add(this.lvm1);
-		this.uberLVM.add(this.lvm2);
-		this.uberLVM.add(this.lvm3);
-
-		this.compositeLVM = new CompositeListValueModel<SimpleListValueModel<String>, String>((ListValueModel<SimpleListValueModel<String>>) this.uberLVM);
-	}
-
-	@Override
-	protected void tearDown() throws Exception {
-		TestTools.clear(this);
-		super.tearDown();
-	}
-
-	public void testGetInt() {
-		CoordinatedList<String> coordList = new CoordinatedList<String>(this.compositeLVM);
-		assertEquals("aaa", this.compositeLVM.get(0));
-		assertEquals("aaa", coordList.get(0));
-		assertEquals("bbb", this.compositeLVM.get(1));
-		assertEquals("bbb", coordList.get(1));
-		assertEquals("ccc", this.compositeLVM.get(2));
-		assertEquals("ccc", coordList.get(2));
-
-		assertEquals("ddd", this.compositeLVM.get(3));
-		assertEquals("ddd", coordList.get(3));
-		assertEquals("eee", this.compositeLVM.get(4));
-		assertEquals("eee", coordList.get(4));
-
-		assertEquals("fff", this.compositeLVM.get(5));
-		assertEquals("fff", coordList.get(5));
-
-		assertEquals("ggg", this.compositeLVM.get(6));
-		assertEquals("ggg", coordList.get(6));
-	}
-
-	public void testIterator() {
-		CoordinatedList<String> coordList = new CoordinatedList<String>(this.compositeLVM);
-		assertEquals("aaa", this.compositeLVM.iterator().next());
-		assertEquals("aaa", coordList.iterator().next());
-		Iterator<String> stream1 = coordList.iterator();
-		for (Iterator<String> stream2 = this.compositeLVM.iterator(); stream2.hasNext(); ) {
-			assertEquals(stream1.next(), stream2.next());
-		}
-		assertFalse(stream1.hasNext());
-	}
-
-	public void testSize() {
-		CoordinatedList<String> coordList = new CoordinatedList<String>(this.compositeLVM);
-		assertEquals(11, this.compositeLVM.size());
-		assertEquals(11, coordList.size());
-	}
-
-	public void testToArray() {
-		Object[] expected = new Object[] { "aaa", "bbb", "ccc", "ddd", "eee", "fff", "ggg", "hhh", "iii", "jjj", "kkk" };
-		CoordinatedList<String> coordList = new CoordinatedList<String>(this.compositeLVM);
-		assertTrue(Arrays.equals(expected, this.compositeLVM.toArray()));
-		assertTrue(Arrays.equals(expected, coordList.toArray()));
-	}
-
-	public void testHasListeners() {
-		CoordinatedList<String> coordList = new CoordinatedList<String>(this.compositeLVM);
-
-		assertTrue(this.compositeLVM.hasAnyListChangeListeners(ListValueModel.LIST_VALUES));
-		assertTrue(this.lvm0.hasAnyListChangeListeners(ListValueModel.LIST_VALUES));
-
-		this.compositeLVM.removeListChangeListener(ListValueModel.LIST_VALUES, coordList);
-		assertFalse(this.compositeLVM.hasAnyListChangeListeners(ListValueModel.LIST_VALUES));
-		assertFalse(this.lvm0.hasAnyListChangeListeners(ListValueModel.LIST_VALUES));
-
-		this.compositeLVM.addListChangeListener(ListValueModel.LIST_VALUES, coordList);
-		assertTrue(this.compositeLVM.hasAnyListChangeListeners(ListValueModel.LIST_VALUES));
-		assertTrue(this.lvm0.hasAnyListChangeListeners(ListValueModel.LIST_VALUES));
-	}
-
-	public void testAddSource_Begin() {
-		CoordinatedList<String> coordList = new CoordinatedList<String>(this.compositeLVM);
-
-		SimpleListValueModel<String> lvm = new SimpleListValueModel<String>();
-		lvm.add("xxx");
-		lvm.add("yyy");
-		lvm.add("zzz");
-		this.uberLVM.add(0, lvm);
-
-		Object[] expected = new Object[] { "xxx", "yyy", "zzz", "aaa", "bbb", "ccc", "ddd", "eee", "fff", "ggg", "hhh", "iii", "jjj", "kkk" };
-		assertEquals(expected.length, this.compositeLVM.size());
-		assertEquals(expected.length, coordList.size());
-		assertTrue(Arrays.equals(expected, this.compositeLVM.toArray()));
-		assertTrue(Arrays.equals(expected, coordList.toArray()));
-		assertEquals("ggg", this.compositeLVM.get(9));
-		assertEquals("ggg", coordList.get(9));
-	}
-
-	public void testAddSource_Middle() {
-		CoordinatedList<String> coordList = new CoordinatedList<String>(this.compositeLVM);
-
-		SimpleListValueModel<String> lvm = new SimpleListValueModel<String>();
-		lvm.add("xxx");
-		lvm.add("yyy");
-		lvm.add("zzz");
-		this.uberLVM.add(2, lvm);
-
-		Object[] expected = new Object[] { "aaa", "bbb", "ccc", "ddd", "eee", "xxx", "yyy", "zzz", "fff", "ggg", "hhh", "iii", "jjj", "kkk" };
-		assertEquals(expected.length, this.compositeLVM.size());
-		assertEquals(expected.length, coordList.size());
-		assertTrue(Arrays.equals(expected, this.compositeLVM.toArray()));
-		assertTrue(Arrays.equals(expected, coordList.toArray()));
-		assertEquals("ggg", this.compositeLVM.get(9));
-		assertEquals("ggg", coordList.get(9));
-	}
-
-	public void testAddSource_End() {
-		CoordinatedList<String> coordList = new CoordinatedList<String>(this.compositeLVM);
-
-		SimpleListValueModel<String> lvm = new SimpleListValueModel<String>();
-		lvm.add("xxx");
-		lvm.add("yyy");
-		lvm.add("zzz");
-		this.uberLVM.add(lvm);
-
-		Object[] expected = new Object[] { "aaa", "bbb", "ccc", "ddd", "eee", "fff", "ggg", "hhh", "iii", "jjj", "kkk", "xxx", "yyy", "zzz" };
-		assertEquals(expected.length, this.compositeLVM.size());
-		assertEquals(expected.length, coordList.size());
-		assertTrue(Arrays.equals(expected, this.compositeLVM.toArray()));
-		assertTrue(Arrays.equals(expected, coordList.toArray()));
-		assertEquals("ggg", this.compositeLVM.get(6));
-		assertEquals("ggg", coordList.get(6));
-	}
-
-	public void testAddSources() {
-		CoordinatedList<String> coordList = new CoordinatedList<String>(this.compositeLVM);
-
-		SimpleListValueModel<String> lvmA = new SimpleListValueModel<String>();
-		lvmA.add("xxx");
-		lvmA.add("yyy");
-		lvmA.add("zzz");
-		SimpleListValueModel<String> lvmB = new SimpleListValueModel<String>();
-		lvmB.add("ppp");
-		lvmB.add("qqq");
-		lvmB.add("rrr");
-		Collection<SimpleListValueModel<String>> c = new ArrayList<SimpleListValueModel<String>>();
-		c.add(lvmA);
-		c.add(lvmB);
-		this.uberLVM.addAll(2, c);
-
-		Object[] expected = new Object[] { "aaa", "bbb", "ccc", "ddd", "eee", "xxx", "yyy", "zzz", "ppp", "qqq", "rrr", "fff", "ggg", "hhh", "iii", "jjj", "kkk" };
-		assertEquals(expected.length, this.compositeLVM.size());
-		assertEquals(expected.length, coordList.size());
-		assertTrue(Arrays.equals(expected, this.compositeLVM.toArray()));
-		assertTrue(Arrays.equals(expected, coordList.toArray()));
-		assertEquals("ggg", this.compositeLVM.get(12));
-		assertEquals("ggg", coordList.get(12));
-	}
-
-	public void testRemoveSource_Begin() {
-		CoordinatedList<String> coordList = new CoordinatedList<String>(this.compositeLVM);
-
-		this.uberLVM.remove(0);
-
-		Object[] expected = new Object[] { "ddd", "eee", "fff", "ggg", "hhh", "iii", "jjj", "kkk" };
-		assertEquals(expected.length, this.compositeLVM.size());
-		assertEquals(expected.length, coordList.size());
-		assertTrue(Arrays.equals(expected, this.compositeLVM.toArray()));
-		assertTrue(Arrays.equals(expected, coordList.toArray()));
-		assertEquals("ggg", this.compositeLVM.get(3));
-		assertEquals("ggg", coordList.get(3));
-	}
-
-	public void testRemoveSource_Middle() {
-		CoordinatedList<String> coordList = new CoordinatedList<String>(this.compositeLVM);
-
-		this.uberLVM.remove(2);
-
-		Object[] expected = new Object[] { "aaa", "bbb", "ccc", "ddd", "eee", "ggg", "hhh", "iii", "jjj", "kkk" };
-		assertEquals(expected.length, this.compositeLVM.size());
-		assertEquals(expected.length, coordList.size());
-		assertTrue(Arrays.equals(expected, this.compositeLVM.toArray()));
-		assertTrue(Arrays.equals(expected, coordList.toArray()));
-		assertEquals("ggg", this.compositeLVM.get(5));
-		assertEquals("ggg", coordList.get(5));
-	}
-
-	public void testRemoveSource_End() {
-		CoordinatedList<String> coordList = new CoordinatedList<String>(this.compositeLVM);
-
-		this.uberLVM.remove(3);
-
-		Object[] expected = new Object[] { "aaa", "bbb", "ccc", "ddd", "eee", "fff" };
-		assertEquals(expected.length, this.compositeLVM.size());
-		assertEquals(expected.length, coordList.size());
-		assertTrue(Arrays.equals(expected, this.compositeLVM.toArray()));
-		assertTrue(Arrays.equals(expected, coordList.toArray()));
-		assertEquals("fff", this.compositeLVM.get(5));
-		assertEquals("fff", coordList.get(5));
-	}
-
-	public void testRemoveSources() {
-		CoordinatedList<String> coordList = new CoordinatedList<String>(this.compositeLVM);
-
-		this.uberLVM.remove(2, 2);
-
-		Object[] expected = new Object[] { "aaa", "bbb", "ccc", "ddd", "eee" };
-		assertEquals(expected.length, this.compositeLVM.size());
-		assertEquals(expected.length, coordList.size());
-		assertTrue(Arrays.equals(expected, this.compositeLVM.toArray()));
-		assertTrue(Arrays.equals(expected, coordList.toArray()));
-		assertEquals("eee", this.compositeLVM.get(4));
-		assertEquals("eee", coordList.get(4));
-	}
-
-	public void testReplaceSources() {
-		CoordinatedList<String> coordList = new CoordinatedList<String>(this.compositeLVM);
-
-		SimpleListValueModel<String> lvmA = new SimpleListValueModel<String>();
-		lvmA.add("xxx");
-		lvmA.add("yyy");
-		lvmA.add("zzz");
-		SimpleListValueModel<String> lvmB = new SimpleListValueModel<String>();
-		lvmB.add("ppp");
-		lvmB.add("qqq");
-		lvmB.add("rrr");
-		List<SimpleListValueModel<String>> list = new ArrayList<SimpleListValueModel<String>>();
-		list.add(lvmA);
-		list.add(lvmB);
-		this.uberLVM.set(2, list);
-
-		Object[] expected = new Object[] { "aaa", "bbb", "ccc", "ddd", "eee", "xxx", "yyy", "zzz", "ppp", "qqq", "rrr" };
-		assertEquals(expected.length, this.compositeLVM.size());
-		assertEquals(expected.length, coordList.size());
-		assertTrue(Arrays.equals(expected, this.compositeLVM.toArray()));
-		assertTrue(Arrays.equals(expected, coordList.toArray()));
-		assertEquals("qqq", this.compositeLVM.get(9));
-		assertEquals("qqq", coordList.get(9));
-	}
-
-	public void testMoveSources_Begin() {
-		CoordinatedList<String> coordList = new CoordinatedList<String>(this.compositeLVM);
-
-		this.uberLVM.move(0, 2, 2);
-
-		Object[] expected = new Object[] { "fff", "ggg", "hhh", "iii", "jjj", "kkk", "aaa", "bbb", "ccc", "ddd", "eee" };
-		assertEquals(expected.length, this.compositeLVM.size());
-		assertEquals(expected.length, coordList.size());
-		assertTrue(Arrays.equals(expected, this.compositeLVM.toArray()));
-		assertTrue(Arrays.equals(expected, coordList.toArray()));
-		assertEquals("ggg", this.compositeLVM.get(1));
-		assertEquals("ggg", coordList.get(1));
-	}
-
-	public void testMoveSources_Middle() {
-		SimpleListValueModel<String> lvm4 = new SimpleListValueModel<String>();
-		lvm4.add("lll");
-		lvm4.add("mmm");
-		this.uberLVM.add(lvm4);
-
-		SimpleListValueModel<String> lvm5 = new SimpleListValueModel<String>();
-		lvm5.add("nnn");
-		lvm5.add("ooo");
-		lvm5.add("ppp");
-		lvm5.add("qqq");
-		this.uberLVM.add(lvm5);
-
-		CoordinatedList<String> coordList = new CoordinatedList<String>(this.compositeLVM);
-
-		this.uberLVM.move(1, 3, 2);
-
-		Object[] expected = new Object[] { "aaa", "bbb", "ccc", "ggg", "hhh", "iii", "jjj", "kkk", "lll", "mmm", "ddd", "eee", "fff", "nnn", "ooo", "ppp", "qqq" };
-		assertEquals(expected.length, this.compositeLVM.size());
-		assertEquals(expected.length, coordList.size());
-		assertTrue(Arrays.equals(expected, this.compositeLVM.toArray()));
-		assertTrue(Arrays.equals(expected, coordList.toArray()));
-		assertEquals("ggg", this.compositeLVM.get(3));
-		assertEquals("ggg", coordList.get(3));
-	}
-
-	public void testMoveSources_End() {
-		SimpleListValueModel<String> lvm4 = new SimpleListValueModel<String>();
-		lvm4.add("lll");
-		lvm4.add("mmm");
-		this.uberLVM.add(lvm4);
-
-		SimpleListValueModel<String> lvm5 = new SimpleListValueModel<String>();
-		lvm5.add("nnn");
-		lvm5.add("ooo");
-		lvm5.add("ppp");
-		lvm5.add("qqq");
-		this.uberLVM.add(lvm5);
-
-		CoordinatedList<String> coordList = new CoordinatedList<String>(this.compositeLVM);
-
-		this.uberLVM.move(3, 0, 3);
-
-		Object[] expected = new Object[] { "ggg", "hhh", "iii", "jjj", "kkk", "lll", "mmm", "nnn", "ooo", "ppp", "qqq", "aaa", "bbb", "ccc", "ddd", "eee", "fff" };
-		assertEquals(expected.length, this.compositeLVM.size());
-		assertEquals(expected.length, coordList.size());
-		assertTrue(Arrays.equals(expected, this.compositeLVM.toArray()));
-		assertTrue(Arrays.equals(expected, coordList.toArray()));
-		assertEquals("ggg", this.compositeLVM.get(0));
-		assertEquals("ggg", coordList.get(0));
-	}
-
-	public void testMoveSource() {
-		SimpleListValueModel<String> lvm4 = new SimpleListValueModel<String>();
-		lvm4.add("lll");
-		lvm4.add("mmm");
-		this.uberLVM.add(lvm4);
-
-		SimpleListValueModel<String> lvm5 = new SimpleListValueModel<String>();
-		lvm5.add("nnn");
-		lvm5.add("ooo");
-		lvm5.add("ppp");
-		lvm5.add("qqq");
-		this.uberLVM.add(lvm5);
-
-		CoordinatedList<String> coordList = new CoordinatedList<String>(this.compositeLVM);
-
-		this.uberLVM.move(3, 1);
-
-		Object[] expected = new Object[] { "aaa", "bbb", "ccc", "fff", "ggg", "hhh", "iii", "jjj", "kkk", "ddd", "eee", "lll", "mmm", "nnn", "ooo", "ppp", "qqq" };
-		assertEquals(expected.length, this.compositeLVM.size());
-		assertEquals(expected.length, coordList.size());
-		assertTrue(Arrays.equals(expected, this.compositeLVM.toArray()));
-		assertTrue(Arrays.equals(expected, coordList.toArray()));
-		assertEquals("ooo", this.compositeLVM.get(14));
-		assertEquals("ooo", coordList.get(14));
-	}
-
-	public void testClearSources() {
-		CoordinatedList<String> coordList = new CoordinatedList<String>(this.compositeLVM);
-
-		this.uberLVM.clear();
-
-		Object[] expected = new Object[0];
-		assertEquals(expected.length, this.compositeLVM.size());
-		assertEquals(expected.length, coordList.size());
-		assertTrue(Arrays.equals(expected, this.compositeLVM.toArray()));
-		assertTrue(Arrays.equals(expected, coordList.toArray()));
-	}
-
-	public void testChangeSources() {
-		List<SimpleListValueModel<String>> newList = new ArrayList<SimpleListValueModel<String>>();
-		SimpleListValueModel<String> lvm4 = new SimpleListValueModel<String>();
-		lvm4.add("lll");
-		lvm4.add("mmm");
-		newList.add(lvm4);
-
-		SimpleListValueModel<String> lvm5 = new SimpleListValueModel<String>();
-		lvm5.add("nnn");
-		lvm5.add("ooo");
-		lvm5.add("ppp");
-		lvm5.add("qqq");
-		newList.add(lvm5);
-
-		CoordinatedList<String> coordList = new CoordinatedList<String>(this.compositeLVM);
-
-		this.uberLVM.setList(newList);
-
-		Object[] expected = new Object[] { "lll", "mmm", "nnn", "ooo", "ppp", "qqq" };
-		assertEquals(expected.length, this.compositeLVM.size());
-		assertEquals(expected.length, coordList.size());
-		assertTrue(Arrays.equals(expected, this.compositeLVM.toArray()));
-		assertTrue(Arrays.equals(expected, coordList.toArray()));
-		assertEquals("ooo", this.compositeLVM.get(3));
-		assertEquals("ooo", coordList.get(3));
-	}
-
-	public void testAddItem_Begin() {
-		CoordinatedList<String> coordList = new CoordinatedList<String>(this.compositeLVM);
-
-		this.lvm0.add(0, "xxx");
-
-		Object[] expected = new Object[] { "xxx", "aaa", "bbb", "ccc", "ddd", "eee", "fff", "ggg", "hhh", "iii", "jjj", "kkk" };
-		assertEquals(expected.length, this.compositeLVM.size());
-		assertEquals(expected.length, coordList.size());
-		assertTrue(Arrays.equals(expected, this.compositeLVM.toArray()));
-		assertTrue(Arrays.equals(expected, coordList.toArray()));
-		assertEquals("ggg", this.compositeLVM.get(7));
-		assertEquals("ggg", coordList.get(7));
-	}
-
-	public void testAddItem_Middle() {
-		CoordinatedList<String> coordList = new CoordinatedList<String>(this.compositeLVM);
-
-		this.lvm2.add(1, "xxx");
-
-		Object[] expected = new Object[] { "aaa", "bbb", "ccc", "ddd", "eee", "fff", "xxx", "ggg", "hhh", "iii", "jjj", "kkk" };
-		assertEquals(expected.length, this.compositeLVM.size());
-		assertEquals(expected.length, coordList.size());
-		assertTrue(Arrays.equals(expected, this.compositeLVM.toArray()));
-		assertTrue(Arrays.equals(expected, coordList.toArray()));
-		assertEquals("ggg", this.compositeLVM.get(7));
-		assertEquals("ggg", coordList.get(7));
-	}
-
-	public void testAddItem_End() {
-		CoordinatedList<String> coordList = new CoordinatedList<String>(this.compositeLVM);
-
-		this.lvm3.add(5, "xxx");
-
-		Object[] expected = new Object[] { "aaa", "bbb", "ccc", "ddd", "eee", "fff", "ggg", "hhh", "iii", "jjj", "kkk", "xxx" };
-		assertEquals(expected.length, this.compositeLVM.size());
-		assertEquals(expected.length, coordList.size());
-		assertTrue(Arrays.equals(expected, this.compositeLVM.toArray()));
-		assertTrue(Arrays.equals(expected, coordList.toArray()));
-		assertEquals("ggg", this.compositeLVM.get(6));
-		assertEquals("ggg", coordList.get(6));
-	}
-
-	public void testAddItems_Begin() {
-		CoordinatedList<String> coordList = new CoordinatedList<String>(this.compositeLVM);
-
-		this.lvm0.addAll(0, Arrays.asList(new String[] { "xxx", "yyy", "zzz" }));
-
-		Object[] expected = new Object[] { "xxx", "yyy", "zzz", "aaa", "bbb", "ccc", "ddd", "eee", "fff", "ggg", "hhh", "iii", "jjj", "kkk" };
-		assertEquals(expected.length, this.compositeLVM.size());
-		assertEquals(expected.length, coordList.size());
-		assertTrue(Arrays.equals(expected, this.compositeLVM.toArray()));
-		assertTrue(Arrays.equals(expected, coordList.toArray()));
-		assertEquals("ggg", this.compositeLVM.get(9));
-		assertEquals("ggg", coordList.get(9));
-	}
-
-	public void testAddItems_Middle() {
-		CoordinatedList<String> coordList = new CoordinatedList<String>(this.compositeLVM);
-
-		this.lvm2.addAll(1, Arrays.asList(new String[] { "xxx", "yyy", "zzz" }));
-
-		Object[] expected = new Object[] { "aaa", "bbb", "ccc", "ddd", "eee", "fff", "xxx", "yyy", "zzz", "ggg", "hhh", "iii", "jjj", "kkk" };
-		assertEquals(expected.length, this.compositeLVM.size());
-		assertEquals(expected.length, coordList.size());
-		assertTrue(Arrays.equals(expected, this.compositeLVM.toArray()));
-		assertTrue(Arrays.equals(expected, coordList.toArray()));
-		assertEquals("ggg", this.compositeLVM.get(9));
-		assertEquals("ggg", coordList.get(9));
-	}
-
-	public void testAddItems_End() {
-		CoordinatedList<String> coordList = new CoordinatedList<String>(this.compositeLVM);
-
-		this.lvm3.addAll(5, Arrays.asList(new String[] { "xxx", "yyy", "zzz" }));
-
-		Object[] expected = new Object[] { "aaa", "bbb", "ccc", "ddd", "eee", "fff", "ggg", "hhh", "iii", "jjj", "kkk", "xxx", "yyy", "zzz" };
-		assertEquals(expected.length, this.compositeLVM.size());
-		assertEquals(expected.length, coordList.size());
-		assertTrue(Arrays.equals(expected, this.compositeLVM.toArray()));
-		assertTrue(Arrays.equals(expected, coordList.toArray()));
-		assertEquals("ggg", this.compositeLVM.get(6));
-		assertEquals("ggg", coordList.get(6));
-	}
-
-	public void testRemoveItem_Begin() {
-		CoordinatedList<String> coordList = new CoordinatedList<String>(this.compositeLVM);
-
-		this.lvm0.remove(0);
-
-		Object[] expected = new Object[] { "bbb", "ccc", "ddd", "eee", "fff", "ggg", "hhh", "iii", "jjj", "kkk" };
-		assertEquals(expected.length, this.compositeLVM.size());
-		assertEquals(expected.length, coordList.size());
-		assertTrue(Arrays.equals(expected, this.compositeLVM.toArray()));
-		assertTrue(Arrays.equals(expected, coordList.toArray()));
-		assertEquals("ggg", this.compositeLVM.get(5));
-		assertEquals("ggg", coordList.get(5));
-	}
-
-	public void testRemoveItem_Middle() {
-		CoordinatedList<String> coordList = new CoordinatedList<String>(this.compositeLVM);
-
-		this.lvm2.remove(0);
-
-		Object[] expected = new Object[] { "aaa", "bbb", "ccc", "ddd", "eee", "ggg", "hhh", "iii", "jjj", "kkk" };
-		assertEquals(expected.length, this.compositeLVM.size());
-		assertEquals(expected.length, coordList.size());
-		assertTrue(Arrays.equals(expected, this.compositeLVM.toArray()));
-		assertTrue(Arrays.equals(expected, coordList.toArray()));
-		assertEquals("ggg", this.compositeLVM.get(5));
-		assertEquals("ggg", coordList.get(5));
-	}
-
-	public void testRemoveItem_End() {
-		CoordinatedList<String> coordList = new CoordinatedList<String>(this.compositeLVM);
-
-		this.lvm3.remove(4);
-
-		Object[] expected = new Object[] { "aaa", "bbb", "ccc", "ddd", "eee", "fff", "ggg", "hhh", "iii", "jjj" };
-		assertEquals(expected.length, this.compositeLVM.size());
-		assertEquals(expected.length, coordList.size());
-		assertTrue(Arrays.equals(expected, this.compositeLVM.toArray()));
-		assertTrue(Arrays.equals(expected, coordList.toArray()));
-		assertEquals("ggg", this.compositeLVM.get(6));
-		assertEquals("ggg", coordList.get(6));
-	}
-
-	public void testRemoveItems_Begin() {
-		CoordinatedList<String> coordList = new CoordinatedList<String>(this.compositeLVM);
-
-		this.lvm0.remove(0, 3);
-
-		Object[] expected = new Object[] { "ddd", "eee", "fff", "ggg", "hhh", "iii", "jjj", "kkk" };
-		assertEquals(expected.length, this.compositeLVM.size());
-		assertEquals(expected.length, coordList.size());
-		assertTrue(Arrays.equals(expected, this.compositeLVM.toArray()));
-		assertTrue(Arrays.equals(expected, coordList.toArray()));
-		assertEquals("ggg", this.compositeLVM.get(3));
-		assertEquals("ggg", coordList.get(3));
-	}
-
-	public void testRemoveItems_Middle() {
-		CoordinatedList<String> coordList = new CoordinatedList<String>(this.compositeLVM);
-
-		this.lvm3.remove(1, 3);
-
-		Object[] expected = new Object[] { "aaa", "bbb", "ccc", "ddd", "eee", "fff", "ggg", "kkk" };
-		assertEquals(expected.length, this.compositeLVM.size());
-		assertEquals(expected.length, coordList.size());
-		assertTrue(Arrays.equals(expected, this.compositeLVM.toArray()));
-		assertTrue(Arrays.equals(expected, coordList.toArray()));
-		assertEquals("kkk", this.compositeLVM.get(7));
-		assertEquals("kkk", coordList.get(7));
-	}
-
-	public void testRemoveItems_End() {
-		CoordinatedList<String> coordList = new CoordinatedList<String>(this.compositeLVM);
-
-		this.lvm3.remove(3, 2);
-
-		Object[] expected = new Object[] { "aaa", "bbb", "ccc", "ddd", "eee", "fff", "ggg", "hhh", "iii" };
-		assertEquals(expected.length, this.compositeLVM.size());
-		assertEquals(expected.length, coordList.size());
-		assertTrue(Arrays.equals(expected, this.compositeLVM.toArray()));
-		assertTrue(Arrays.equals(expected, coordList.toArray()));
-		assertEquals("ggg", this.compositeLVM.get(6));
-		assertEquals("ggg", coordList.get(6));
-	}
-
-	public void testReplaceItem_Begin() {
-		CoordinatedList<String> coordList = new CoordinatedList<String>(this.compositeLVM);
-
-		this.lvm0.set(0, "xxx");
-
-		Object[] expected = new Object[] { "xxx", "bbb", "ccc", "ddd", "eee", "fff", "ggg", "hhh", "iii", "jjj", "kkk" };
-		assertEquals(expected.length, this.compositeLVM.size());
-		assertEquals(expected.length, coordList.size());
-		assertTrue(Arrays.equals(expected, this.compositeLVM.toArray()));
-		assertTrue(Arrays.equals(expected, coordList.toArray()));
-		assertEquals("ggg", this.compositeLVM.get(6));
-		assertEquals("ggg", coordList.get(6));
-	}
-
-	public void testReplaceItem_Middle() {
-		CoordinatedList<String> coordList = new CoordinatedList<String>(this.compositeLVM);
-
-		this.lvm2.set(0, "xxx");
-
-		Object[] expected = new Object[] { "aaa", "bbb", "ccc", "ddd", "eee", "xxx", "ggg", "hhh", "iii", "jjj", "kkk" };
-		assertEquals(expected.length, this.compositeLVM.size());
-		assertEquals(expected.length, coordList.size());
-		assertTrue(Arrays.equals(expected, this.compositeLVM.toArray()));
-		assertTrue(Arrays.equals(expected, coordList.toArray()));
-		assertEquals("ggg", this.compositeLVM.get(6));
-		assertEquals("ggg", coordList.get(6));
-	}
-
-	public void testReplaceItem_End() {
-		CoordinatedList<String> coordList = new CoordinatedList<String>(this.compositeLVM);
-
-		this.lvm3.set(4, "xxx");
-
-		Object[] expected = new Object[] { "aaa", "bbb", "ccc", "ddd", "eee", "fff", "ggg", "hhh", "iii", "jjj", "xxx" };
-		assertEquals(expected.length, this.compositeLVM.size());
-		assertEquals(expected.length, coordList.size());
-		assertTrue(Arrays.equals(expected, this.compositeLVM.toArray()));
-		assertTrue(Arrays.equals(expected, coordList.toArray()));
-		assertEquals("ggg", this.compositeLVM.get(6));
-		assertEquals("ggg", coordList.get(6));
-	}
-
-	public void testReplaceItems_Begin() {
-		CoordinatedList<String> coordList = new CoordinatedList<String>(this.compositeLVM);
-
-		this.lvm0.set(0, Arrays.asList(new String[] { "xxx", "yyy", "zzz" }));
-
-		Object[] expected = new Object[] { "xxx", "yyy", "zzz", "ddd", "eee", "fff", "ggg", "hhh", "iii", "jjj", "kkk" };
-		assertEquals(expected.length, this.compositeLVM.size());
-		assertEquals(expected.length, coordList.size());
-		assertTrue(Arrays.equals(expected, this.compositeLVM.toArray()));
-		assertTrue(Arrays.equals(expected, coordList.toArray()));
-		assertEquals("ggg", this.compositeLVM.get(6));
-		assertEquals("ggg", coordList.get(6));
-	}
-
-	public void testReplaceItems_Middle() {
-		CoordinatedList<String> coordList = new CoordinatedList<String>(this.compositeLVM);
-
-		this.lvm3.set(1, Arrays.asList(new String[] { "xxx", "yyy", "zzz" }));
-
-		Object[] expected = new Object[] { "aaa", "bbb", "ccc", "ddd", "eee", "fff", "ggg", "xxx", "yyy", "zzz", "kkk" };
-		assertEquals(expected.length, this.compositeLVM.size());
-		assertEquals(expected.length, coordList.size());
-		assertTrue(Arrays.equals(expected, this.compositeLVM.toArray()));
-		assertTrue(Arrays.equals(expected, coordList.toArray()));
-		assertEquals("kkk", this.compositeLVM.get(10));
-		assertEquals("kkk", coordList.get(10));
-	}
-
-	public void testReplaceItems_End() {
-		CoordinatedList<String> coordList = new CoordinatedList<String>(this.compositeLVM);
-
-		this.lvm3.set(3, Arrays.asList(new String[] { "xxx", "yyy" }));
-
-		Object[] expected = new Object[] { "aaa", "bbb", "ccc", "ddd", "eee", "fff", "ggg", "hhh", "iii", "xxx", "yyy" };
-		assertEquals(expected.length, this.compositeLVM.size());
-		assertEquals(expected.length, coordList.size());
-		assertTrue(Arrays.equals(expected, this.compositeLVM.toArray()));
-		assertTrue(Arrays.equals(expected, coordList.toArray()));
-		assertEquals("ggg", this.compositeLVM.get(6));
-		assertEquals("ggg", coordList.get(6));
-	}
-
-	public void testMoveItem_Begin() {
-		CoordinatedList<String> coordList = new CoordinatedList<String>(this.compositeLVM);
-
-		this.lvm0.move(2, 0);
-
-		Object[] expected = new Object[] { "bbb", "ccc", "aaa", "ddd", "eee", "fff", "ggg", "hhh", "iii", "jjj", "kkk" };
-		assertEquals(expected.length, this.compositeLVM.size());
-		assertEquals(expected.length, coordList.size());
-		assertTrue(Arrays.equals(expected, this.compositeLVM.toArray()));
-		assertTrue(Arrays.equals(expected, coordList.toArray()));
-		assertEquals("ggg", this.compositeLVM.get(6));
-		assertEquals("ggg", coordList.get(6));
-	}
-
-	public void testMoveItem_Middle() {
-		CoordinatedList<String> coordList = new CoordinatedList<String>(this.compositeLVM);
-
-		this.lvm1.move(0, 1);
-
-		Object[] expected = new Object[] { "aaa", "bbb", "ccc", "eee", "ddd", "fff", "ggg", "hhh", "iii", "jjj", "kkk" };
-		assertEquals(expected.length, this.compositeLVM.size());
-		assertEquals(expected.length, coordList.size());
-		assertTrue(Arrays.equals(expected, this.compositeLVM.toArray()));
-		assertTrue(Arrays.equals(expected, coordList.toArray()));
-		assertEquals("ggg", this.compositeLVM.get(6));
-		assertEquals("ggg", coordList.get(6));
-	}
-
-	public void testMoveItem_End() {
-		CoordinatedList<String> coordList = new CoordinatedList<String>(this.compositeLVM);
-
-		this.lvm3.move(0, 4);
-
-		Object[] expected = new Object[] { "aaa", "bbb", "ccc", "ddd", "eee", "fff", "kkk", "ggg", "hhh", "iii", "jjj" };
-		assertEquals(expected.length, this.compositeLVM.size());
-		assertEquals(expected.length, coordList.size());
-		assertTrue(Arrays.equals(expected, this.compositeLVM.toArray()));
-		assertTrue(Arrays.equals(expected, coordList.toArray()));
-		assertEquals("ggg", this.compositeLVM.get(7));
-		assertEquals("ggg", coordList.get(7));
-	}
-
-	public void testMoveItems_Begin() {
-		CoordinatedList<String> coordList = new CoordinatedList<String>(this.compositeLVM);
-
-		this.lvm0.move(1, 0, 2);
-
-		Object[] expected = new Object[] { "ccc", "aaa", "bbb", "ddd", "eee", "fff", "ggg", "hhh", "iii", "jjj", "kkk" };
-		assertEquals(expected.length, this.compositeLVM.size());
-		assertEquals(expected.length, coordList.size());
-		assertTrue(Arrays.equals(expected, this.compositeLVM.toArray()));
-		assertTrue(Arrays.equals(expected, coordList.toArray()));
-		assertEquals("ggg", this.compositeLVM.get(6));
-		assertEquals("ggg", coordList.get(6));
-	}
-
-	public void testMoveItems_Middle() {
-		CoordinatedList<String> coordList = new CoordinatedList<String>(this.compositeLVM);
-
-		this.lvm1.add("eee.1");
-		this.lvm1.add("eee.2");
-		this.lvm1.add("eee.3");
-		this.lvm1.move(1, 2, 3);
-
-		Object[] expected = new Object[] { "aaa", "bbb", "ccc", "ddd", "eee.1", "eee.2", "eee.3", "eee", "fff", "ggg", "hhh", "iii", "jjj", "kkk" };
-		assertEquals(expected.length, this.compositeLVM.size());
-		assertEquals(expected.length, coordList.size());
-		assertTrue(Arrays.equals(expected, this.compositeLVM.toArray()));
-		assertTrue(Arrays.equals(expected, coordList.toArray()));
-		assertEquals("ggg", this.compositeLVM.get(9));
-		assertEquals("ggg", coordList.get(9));
-	}
-
-	public void testMoveItems_End() {
-		CoordinatedList<String> coordList = new CoordinatedList<String>(this.compositeLVM);
-
-		this.lvm3.move(0, 2, 3);
-
-		Object[] expected = new Object[] { "aaa", "bbb", "ccc", "ddd", "eee", "fff", "iii", "jjj", "kkk", "ggg", "hhh" };
-		assertEquals(expected.length, this.compositeLVM.size());
-		assertEquals(expected.length, coordList.size());
-		assertTrue(Arrays.equals(expected, this.compositeLVM.toArray()));
-		assertTrue(Arrays.equals(expected, coordList.toArray()));
-		assertEquals("ggg", this.compositeLVM.get(9));
-		assertEquals("ggg", coordList.get(9));
-	}
-
-	public void testClearItems_Begin() {
-		CoordinatedList<String> coordList = new CoordinatedList<String>(this.compositeLVM);
-
-		this.lvm0.clear();
-
-		Object[] expected = new Object[] { "ddd", "eee", "fff", "ggg", "hhh", "iii", "jjj", "kkk" };
-		assertEquals(expected.length, this.compositeLVM.size());
-		assertEquals(expected.length, coordList.size());
-		assertTrue(Arrays.equals(expected, this.compositeLVM.toArray()));
-		assertTrue(Arrays.equals(expected, coordList.toArray()));
-		assertEquals("ggg", this.compositeLVM.get(3));
-		assertEquals("ggg", coordList.get(3));
-	}
-
-	public void testClearItems_Middle() {
-		CoordinatedList<String> coordList = new CoordinatedList<String>(this.compositeLVM);
-
-		this.lvm1.clear();
-
-		Object[] expected = new Object[] { "aaa", "bbb", "ccc", "fff", "ggg", "hhh", "iii", "jjj", "kkk" };
-		assertEquals(expected.length, this.compositeLVM.size());
-		assertEquals(expected.length, coordList.size());
-		assertTrue(Arrays.equals(expected, this.compositeLVM.toArray()));
-		assertTrue(Arrays.equals(expected, coordList.toArray()));
-		assertEquals("ggg", this.compositeLVM.get(4));
-		assertEquals("ggg", coordList.get(4));
-	}
-
-	public void testClearItems_End() {
-		CoordinatedList<String> coordList = new CoordinatedList<String>(this.compositeLVM);
-
-		this.lvm3.clear();
-
-		Object[] expected = new Object[] { "aaa", "bbb", "ccc", "ddd", "eee", "fff" };
-		assertEquals(expected.length, this.compositeLVM.size());
-		assertEquals(expected.length, coordList.size());
-		assertTrue(Arrays.equals(expected, this.compositeLVM.toArray()));
-		assertTrue(Arrays.equals(expected, coordList.toArray()));
-		assertEquals("fff", this.compositeLVM.get(5));
-		assertEquals("fff", coordList.get(5));
-	}
-
-	public void testChangeItems_Begin() {
-		CoordinatedList<String> coordList = new CoordinatedList<String>(this.compositeLVM);
-
-		this.lvm0.setList(Arrays.asList(new String[] { "xxx", "yyy", "zzz" }));
-
-		Object[] expected = new Object[] { "xxx", "yyy", "zzz", "ddd", "eee", "fff", "ggg", "hhh", "iii", "jjj", "kkk" };
-		assertEquals(expected.length, this.compositeLVM.size());
-		assertEquals(expected.length, coordList.size());
-		assertTrue(Arrays.equals(expected, this.compositeLVM.toArray()));
-		assertTrue(Arrays.equals(expected, coordList.toArray()));
-		assertEquals("ggg", this.compositeLVM.get(6));
-		assertEquals("ggg", coordList.get(6));
-	}
-
-	public void testChangeItems_Middle() {
-		CoordinatedList<String> coordList = new CoordinatedList<String>(this.compositeLVM);
-
-		this.lvm1.setList(Arrays.asList(new String[] { "xxx", "yyy", "zzz" }));
-
-		Object[] expected = new Object[] { "aaa", "bbb", "ccc", "xxx", "yyy", "zzz", "fff", "ggg", "hhh", "iii", "jjj", "kkk" };
-		assertEquals(expected.length, this.compositeLVM.size());
-		assertEquals(expected.length, coordList.size());
-		assertTrue(Arrays.equals(expected, this.compositeLVM.toArray()));
-		assertTrue(Arrays.equals(expected, coordList.toArray()));
-		assertEquals("ggg", this.compositeLVM.get(7));
-		assertEquals("ggg", coordList.get(7));
-	}
-
-	public void testChangeItems_End() {
-		CoordinatedList<String> coordList = new CoordinatedList<String>(this.compositeLVM);
-
-		this.lvm3.setList(Arrays.asList(new String[] { "xxx", "yyy", "zzz" }));
-
-		Object[] expected = new Object[] { "aaa", "bbb", "ccc", "ddd", "eee", "fff", "xxx", "yyy", "zzz" };
-		assertEquals(expected.length, this.compositeLVM.size());
-		assertEquals(expected.length, coordList.size());
-		assertTrue(Arrays.equals(expected, this.compositeLVM.toArray()));
-		assertTrue(Arrays.equals(expected, coordList.toArray()));
-		assertEquals("fff", this.compositeLVM.get(5));
-		assertEquals("fff", coordList.get(5));
-	}
-
-}
diff --git a/jpa/tests/org.eclipse.jpt.utility.tests/src/org/eclipse/jpt/utility/tests/internal/model/value/CoordinatedBag.java b/jpa/tests/org.eclipse.jpt.utility.tests/src/org/eclipse/jpt/utility/tests/internal/model/value/CoordinatedBag.java
deleted file mode 100644
index 5bee337..0000000
--- a/jpa/tests/org.eclipse.jpt.utility.tests/src/org/eclipse/jpt/utility/tests/internal/model/value/CoordinatedBag.java
+++ /dev/null
@@ -1,153 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2008 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.utility.tests.internal.model.value;
-
-import java.util.Collection;
-import java.util.Iterator;
-import org.eclipse.jpt.utility.internal.Bag;
-import org.eclipse.jpt.utility.internal.CollectionTools;
-import org.eclipse.jpt.utility.internal.HashBag;
-import org.eclipse.jpt.utility.model.event.CollectionChangeEvent;
-import org.eclipse.jpt.utility.model.listener.CollectionChangeListener;
-import org.eclipse.jpt.utility.model.value.CollectionValueModel;
-
-/**
- * Helper class that keeps an internal collection in synch with the
- * collection held by a collection value model.
- */
-class CoordinatedBag<E> implements Bag<E>, CollectionChangeListener {
-
-	private Bag<E> bag = new HashBag<E>();
-
-	CoordinatedBag(CollectionValueModel<E> cvm) {
-		cvm.addCollectionChangeListener(CollectionValueModel.VALUES, this);
-	}
-
-
-	// ********** Collection implementation **********
-
-	public boolean add(E o) {
-		return this.bag.add(o);
-	}
-
-	public boolean addAll(Collection<? extends E> c) {
-		return this.bag.addAll(c);
-	}
-
-	public void clear() {
-		this.bag.clear();
-	}
-
-	public boolean contains(Object o) {
-		return this.bag.contains(o);
-	}
-
-	public boolean containsAll(Collection<?> c) {
-		return this.bag.containsAll(c);
-	}
-
-	public boolean isEmpty() {
-		return this.bag.isEmpty();
-	}
-
-	public Iterator<E> iterator() {
-		return this.bag.iterator();
-	}
-
-	public boolean remove(Object o) {
-		return this.bag.remove(o);
-	}
-
-	public boolean removeAll(Collection<?> c) {
-		return this.bag.removeAll(c);
-	}
-
-	public boolean retainAll(Collection<?> c) {
-		return this.bag.retainAll(c);
-	}
-
-	public int size() {
-		return this.bag.size();
-	}
-
-	public Object[] toArray() {
-		return this.bag.toArray();
-	}
-
-	public <T> T[] toArray(T[] a) {
-		return this.bag.toArray(a);
-	}
-
-
-	// ********** Bag implementation **********
-
-	public int count(Object o) {
-		return this.bag.count(o);
-	}
-
-	public boolean add(E o, int count) {
-		return this.bag.add(o, count);
-	}
-
-	public boolean remove(Object o, int count) {
-		return this.bag.remove(o, count);
-	}
-
-	public Iterator<E> uniqueIterator() {
-		return this.bag.uniqueIterator();
-	}
-
-	public Iterator<Bag.Entry<E>> entries() {
-		return this.bag.entries();
-	}
-
-	// ********** CollectionChangeListener implementation **********
-
-	public void itemsAdded(CollectionChangeEvent e) {
-		for (@SuppressWarnings("unchecked") Iterator<E> stream = (Iterator<E>) e.items(); stream.hasNext(); ) {
-			this.bag.add(stream.next());
-		}
-	}
-
-	public void itemsRemoved(CollectionChangeEvent e) {
-		for (@SuppressWarnings("unchecked") Iterator<E> stream = (Iterator<E>) e.items(); stream.hasNext(); ) {
-			this.bag.remove(stream.next());
-		}
-	}
-
-	public void collectionCleared(CollectionChangeEvent e) {
-		this.bag.clear();
-	}
-
-	@SuppressWarnings("unchecked")
-	public void collectionChanged(CollectionChangeEvent e) {
-		this.bag.clear();
-		CollectionTools.addAll(this.bag, ((CollectionValueModel<E>) e.getSource()).iterator());
-	}
-
-
-	// ********** standard methods **********
-
-	@Override
-	public boolean equals(Object o) {
-		return this.bag.equals(o);
-	}
-
-	@Override
-	public int hashCode() {
-		return this.bag.hashCode();
-	}
-
-	@Override
-	public String toString() {
-		return this.bag.toString();
-	}
-
-}
diff --git a/jpa/tests/org.eclipse.jpt.utility.tests/src/org/eclipse/jpt/utility/tests/internal/model/value/CoordinatedList.java b/jpa/tests/org.eclipse.jpt.utility.tests/src/org/eclipse/jpt/utility/tests/internal/model/value/CoordinatedList.java
deleted file mode 100644
index 13f9267..0000000
--- a/jpa/tests/org.eclipse.jpt.utility.tests/src/org/eclipse/jpt/utility/tests/internal/model/value/CoordinatedList.java
+++ /dev/null
@@ -1,254 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2008 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.utility.tests.internal.model.value;
-
-import java.util.ArrayList;
-import java.util.Collection;
-import java.util.Iterator;
-import java.util.List;
-import java.util.ListIterator;
-import javax.swing.ListModel;
-import javax.swing.event.ListDataEvent;
-import javax.swing.event.ListDataListener;
-import org.eclipse.jpt.utility.internal.CollectionTools;
-import org.eclipse.jpt.utility.model.event.ListChangeEvent;
-import org.eclipse.jpt.utility.model.listener.ListChangeListener;
-import org.eclipse.jpt.utility.model.value.ListValueModel;
-
-/**
- * Helper class that keeps an internal list in synch with the
- * list held by a list value model.
- */
-public class CoordinatedList<E> implements List<E>, ListChangeListener, ListDataListener {
-	private List<E> list = new ArrayList<E>();
-
-	public CoordinatedList(ListValueModel<E> listValueModel) {
-		listValueModel.addListChangeListener(ListValueModel.LIST_VALUES, this);
-		for (Iterator<E> stream = listValueModel.iterator(); stream.hasNext(); ) {
-			this.add(stream.next());
-		}
-	}
-
-	public CoordinatedList(ListModel listModel) {
-		listModel.addListDataListener(this);
-		for (int i = 0; i < listModel.getSize(); i++) {
-			this.add(i, this.getElementAt(listModel, i));
-		}
-	}
-
-
-	// ********** List implementation **********
-
-	public void add(int index, E element) {
-		this.list.add(index, element);
-	}
-
-	public boolean add(E o) {
-		return this.list.add(o);
-	}
-
-	public boolean addAll(Collection<? extends E> c) {
-		return this.list.addAll(c);
-	}
-
-	public boolean addAll(int index, Collection<? extends E> c) {
-		return this.list.addAll(index, c);
-	}
-
-	public void clear() {
-		this.list.clear();
-	}
-
-	public boolean contains(Object o) {
-		return this.list.contains(o);
-	}
-
-	public boolean containsAll(Collection<?> c) {
-		return this.list.containsAll(c);
-	}
-
-	public E get(int index) {
-		return this.list.get(index);
-	}
-
-	public int indexOf(Object o) {
-		return this.list.indexOf(o);
-	}
-
-	public boolean isEmpty() {
-		return this.list.isEmpty();
-	}
-
-	public Iterator<E> iterator() {
-		return this.list.iterator();
-	}
-
-	public int lastIndexOf(Object o) {
-		return this.list.lastIndexOf(o);
-	}
-
-	public ListIterator<E> listIterator() {
-		return this.list.listIterator();
-	}
-
-	public ListIterator<E> listIterator(int index) {
-		return this.list.listIterator(index);
-	}
-
-	public E remove(int index) {
-		return this.list.remove(index);
-	}
-
-	public boolean remove(Object o) {
-		return this.list.remove(o);
-	}
-
-	public boolean removeAll(Collection<?> c) {
-		return this.list.removeAll(c);
-	}
-
-	public boolean retainAll(Collection<?> c) {
-		return this.list.retainAll(c);
-	}
-
-	public E set(int index, E element) {
-		return this.list.set(index, element);
-	}
-
-	public int size() {
-		return this.list.size();
-	}
-
-	public List<E> subList(int fromIndex, int toIndex) {
-		return this.list.subList(fromIndex, toIndex);
-	}
-
-	public Object[] toArray() {
-		return this.list.toArray();
-	}
-
-	public <T> T[] toArray(T[] a) {
-		return this.list.toArray(a);
-	}
-
-
-	// ********** ListChangeListener implementation **********
-
-	public void itemsAdded(ListChangeEvent e) {
-		int i = e.getIndex();
-		for (Iterator<E> stream = this.items(e); stream.hasNext(); ) {
-			this.list.add(i++, stream.next());
-		}
-	}
-
-	public void itemsRemoved(ListChangeEvent e) {
-		int i = e.getIndex();
-		for (Iterator<E> stream = this.items(e); stream.hasNext(); ) {
-			stream.next();
-			this.list.remove(i);
-		}
-	}
-
-	public void itemsReplaced(ListChangeEvent e) {
-		int i = e.getIndex();
-		for (Iterator<E> stream = this.items(e); stream.hasNext(); ) {
-			this.list.set(i++, stream.next());
-		}
-	}
-
-	public void itemsMoved(ListChangeEvent e) {
-		CollectionTools.move(this.list, e.getTargetIndex(), e.getSourceIndex(), e.getMoveLength());
-	}
-
-	public void listCleared(ListChangeEvent e) {
-		this.list.clear();
-	}
-
-	public void listChanged(ListChangeEvent e) {
-		this.list.clear();
-		CollectionTools.addAll(this.list, this.getSource(e).iterator());
-	}
-
-
-	// ********** ListDataListener implementation **********
-
-	public void contentsChanged(ListDataEvent e) {
-		this.list.clear();
-		ListModel lm = (ListModel) e.getSource();
-		int size = lm.getSize();
-		for (int i = 0; i < size; i++) {
-			this.list.add(i, this.getElementAt(lm, i));
-		}
-	}
-
-	public void intervalAdded(ListDataEvent e) {
-		ListModel lm = (ListModel) e.getSource();
-		int start = Math.min(e.getIndex0(), e.getIndex1());
-		int end = Math.max(e.getIndex0(), e.getIndex1());
-		for (int i = start; i <= end; i++) {
-			this.list.add(i, this.getElementAt(lm, i));
-		}
-	}
-
-	public void intervalRemoved(ListDataEvent e) {
-		int start = Math.min(e.getIndex0(), e.getIndex1());
-		int end = Math.max(e.getIndex0(), e.getIndex1());
-		int length = end - start + 1;
-		for (int i = 1; i <= length; i++) {
-			this.list.remove(start);
-		}
-	}
-
-
-	// ********** standard methods **********
-
-    @Override
-	public boolean equals(Object o) {
-		return this.list.equals(o);
-	}
-
-    @Override
-	public int hashCode() {
-		return this.list.hashCode();
-	}
-
-    @Override
-	public String toString() {
-		return this.list.toString();
-	}
-
-
-	// ********** internal methods **********
-
-	/**
-	 * minimize the scope of the suppressed warnings.=
-	 */
-	@SuppressWarnings("unchecked")
-	private E getElementAt(ListModel listModel, int index) {
-		return (E) listModel.getElementAt(index);
-	}
-
-	/**
-	 * minimize the scope of the suppressed warnings.=
-	 */
-	@SuppressWarnings("unchecked")
-	private Iterator<E> items(ListChangeEvent event) {
-		return (Iterator<E>) event.items();
-	}
-
-	/**
-	 * minimize the scope of the suppressed warnings.=
-	 */
-	@SuppressWarnings("unchecked")
-	private ListValueModel<E> getSource(ListChangeEvent event) {
-		return (ListValueModel<E>) event.getSource();
-	}
-
-}
diff --git a/jpa/tests/org.eclipse.jpt.utility.tests/src/org/eclipse/jpt/utility/tests/internal/model/value/ExtendedListValueModelWrapperTests.java b/jpa/tests/org.eclipse.jpt.utility.tests/src/org/eclipse/jpt/utility/tests/internal/model/value/ExtendedListValueModelWrapperTests.java
deleted file mode 100644
index 2866e9a..0000000
--- a/jpa/tests/org.eclipse.jpt.utility.tests/src/org/eclipse/jpt/utility/tests/internal/model/value/ExtendedListValueModelWrapperTests.java
+++ /dev/null
@@ -1,292 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2008 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.utility.tests.internal.model.value;
-
-import java.util.ArrayList;
-import java.util.Collection;
-import java.util.Iterator;
-import java.util.List;
-import junit.framework.TestCase;
-import org.eclipse.jpt.utility.internal.CollectionTools;
-import org.eclipse.jpt.utility.internal.model.AbstractModel;
-import org.eclipse.jpt.utility.internal.model.value.ExtendedListValueModelWrapper;
-import org.eclipse.jpt.utility.internal.model.value.SimpleListValueModel;
-import org.eclipse.jpt.utility.model.event.ListChangeEvent;
-import org.eclipse.jpt.utility.model.listener.ListChangeListener;
-import org.eclipse.jpt.utility.model.value.ListValueModel;
-import org.eclipse.jpt.utility.tests.internal.TestTools;
-
-public class ExtendedListValueModelWrapperTests extends TestCase {
-	private SimpleListValueModel<String> listHolder;
-	private ListValueModel<String> extendedListHolder;
-	ListChangeEvent event;
-	String eventType;
-
-	private static final String ADD = "add";
-	private static final String REMOVE = "remove";
-	private static final String REPLACE = "replace";
-	private static final String MOVE = "move";
-	private static final String CLEAR = "clear";
-	private static final String CHANGE = "change";
-
-	public ExtendedListValueModelWrapperTests(String name) {
-		super(name);
-	}
-
-	@Override
-	protected void setUp() throws Exception {
-		super.setUp();
-		this.listHolder = new SimpleListValueModel<String>(this.buildList());
-		this.extendedListHolder = this.buildExtendedListHolder(this.listHolder);
-	}
-
-	private List<String> buildList() {
-		List<String> result = new ArrayList<String>();
-		result.add("A");
-		result.add("B");
-		result.add("C");
-		result.add("D");
-		return result;
-	}
-
-	private List<String> buildExtendedList() {
-		List<String> extendedList = new ArrayList<String>();
-		extendedList.addAll(this.buildPrefix());
-		extendedList.addAll(this.buildList());
-		extendedList.addAll(this.buildSuffix());
-		return extendedList;
-	}
-
-	private List<String> buildPrefix() {
-		List<String> prefix = new ArrayList<String>();
-		prefix.add("x");
-		prefix.add("y");
-		prefix.add("z");
-		return prefix;
-	}
-
-	private List<String> buildSuffix() {
-		List<String> suffix = new ArrayList<String>();
-		suffix.add("i");
-		suffix.add("j");
-		return suffix;
-	}
-
-	private ListValueModel<String> buildExtendedListHolder(ListValueModel<String> lvm) {
-		return new ExtendedListValueModelWrapper<String>(this.buildPrefix(), lvm, this.buildSuffix());
-	}
-
-	@Override
-	protected void tearDown() throws Exception {
-		TestTools.clear(this);
-		super.tearDown();
-	}
-
-	public void testIterator() {
-		this.extendedListHolder.addListChangeListener(ListValueModel.LIST_VALUES, this.buildListener());
-		assertEquals(this.buildExtendedList(), CollectionTools.list(this.extendedListHolder.iterator()));
-	}
-
-	public void testSize() {
-		this.extendedListHolder.addListChangeListener(ListValueModel.LIST_VALUES, this.buildListener());
-		assertEquals(this.buildExtendedList().size(), CollectionTools.size(this.extendedListHolder.iterator()));
-		assertEquals(this.buildExtendedList().size(), this.extendedListHolder.size());
-	}
-
-	private boolean extendedListContains(Object item) {
-		return CollectionTools.contains(this.extendedListHolder.iterator(), item);
-	}
-
-	private boolean extendedListContainsAll(Collection<String> items) {
-		return CollectionTools.containsAll(this.extendedListHolder.iterator(), items);
-	}
-
-	private boolean extendedListContainsAny(Collection<String> items) {
-		List<String> extendedList = CollectionTools.list(this.extendedListHolder.iterator());
-		for (Iterator<String> stream = items.iterator(); stream.hasNext(); ) {
-			if (extendedList.contains(stream.next())) {
-				return true;
-			}
-		}
-		return false;
-	}
-
-	private boolean listContains(Object item) {
-		return CollectionTools.contains(this.listHolder.iterator(), item);
-	}
-
-	private boolean listContainsAll(Collection<String> items) {
-		return CollectionTools.containsAll(this.listHolder.iterator(), items);
-	}
-
-//	private boolean listContainsAny(Collection<String> items) {
-//		List<String> extendedList = CollectionTools.list(this.listHolder.iterator());
-//		for (Iterator<String> stream = items.iterator(); stream.hasNext(); ) {
-//			if (extendedList.contains(stream.next())) {
-//				return true;
-//			}
-//		}
-//		return false;
-//	}
-//
-	public void testAdd1() {
-		this.extendedListHolder.addListChangeListener(ListValueModel.LIST_VALUES, this.buildListener());
-
-		assertFalse(this.extendedListContains("E"));
-		this.listHolder.add(4, "E");
-		assertTrue(this.extendedListContains("E"));
-		assertTrue(this.listContains("E"));
-	}
-
-	public void testAdd2() {
-		this.extendedListHolder.addListChangeListener(ListValueModel.LIST_VALUES, this.buildListener());
-
-		assertFalse(this.extendedListContains(null));
-		this.listHolder.add(4, null);
-		assertTrue(this.extendedListContains(null));
-		assertTrue(this.listContains(null));
-	}
-
-	private List<String> buildAddList() {
-		List<String> addList = new ArrayList<String>();
-		addList.add("E");
-		addList.add("F");
-		return addList;
-	}
-
-	public void testAddAll1() {
-		this.extendedListHolder.addListChangeListener(ListValueModel.LIST_VALUES, this.buildListener());
-
-		assertFalse(this.extendedListContainsAny(this.buildAddList()));
-		this.listHolder.addAll(4, this.buildAddList());
-		assertTrue(this.extendedListContainsAll(this.buildAddList()));
-		assertTrue(this.listContainsAll(this.buildAddList()));
-	}
-
-	public void testRemove1() {
-		this.extendedListHolder.addListChangeListener(ListValueModel.LIST_VALUES, this.buildListener());
-
-		assertTrue(this.extendedListContains("B"));
-		this.listHolder.remove(this.buildList().indexOf("B"));
-		assertFalse(this.extendedListContains("B"));
-		assertFalse(this.listContains("B"));
-	}
-
-	public void testListChangeGeneric() {
-		this.extendedListHolder.addListChangeListener(this.buildListener());
-		this.verifyListChange();
-	}
-
-	public void testListChangeNamed() {
-		this.extendedListHolder.addListChangeListener(ListValueModel.LIST_VALUES, this.buildListener());
-		this.verifyListChange();
-	}
-
-	private void verifyListChange() {
-		this.event = null;
-		this.eventType = null;
-		this.listHolder.add(4, "E");
-		this.verifyEvent(ADD, 7, "E");
-
-		this.event = null;
-		this.eventType = null;
-		this.listHolder.add(5, null);
-		this.verifyEvent(ADD, 8, null);
-
-		this.event = null;
-		this.eventType = null;
-		this.listHolder.remove(5);
-		this.verifyEvent(REMOVE, 8, null);
-
-		this.event = null;
-		this.eventType = null;
-		this.listHolder.remove(4);
-		this.verifyEvent(REMOVE, 7, "E");
-
-		this.event = null;
-		this.eventType = null;
-		this.listHolder.addAll(0, this.buildList());
-		this.verifyEvent(ADD);
-		assertEquals(this.buildList(), CollectionTools.list(this.event.items()));
-
-		this.event = null;
-		this.eventType = null;
-		this.listHolder.set(0, "AA");
-		this.verifyEvent(REPLACE);
-		assertFalse(CollectionTools.contains(this.event.items(), "A"));
-		assertTrue(CollectionTools.contains(this.event.items(), "AA"));
-	}
-
-	private ListChangeListener buildListener() {
-		return new ListChangeListener() {
-			public void itemsAdded(ListChangeEvent e) {
-				ExtendedListValueModelWrapperTests.this.eventType = ADD;
-				ExtendedListValueModelWrapperTests.this.event = e;
-			}
-			public void itemsRemoved(ListChangeEvent e) {
-				ExtendedListValueModelWrapperTests.this.eventType = REMOVE;
-				ExtendedListValueModelWrapperTests.this.event = e;
-			}
-			public void itemsReplaced(ListChangeEvent e) {
-				ExtendedListValueModelWrapperTests.this.eventType = REPLACE;
-				ExtendedListValueModelWrapperTests.this.event = e;
-			}
-			public void itemsMoved(ListChangeEvent e) {
-				ExtendedListValueModelWrapperTests.this.eventType = MOVE;
-				ExtendedListValueModelWrapperTests.this.event = e;
-			}
-			public void listCleared(ListChangeEvent e) {
-				ExtendedListValueModelWrapperTests.this.eventType = CLEAR;
-				ExtendedListValueModelWrapperTests.this.event = e;
-			}
-			public void listChanged(ListChangeEvent e) {
-				ExtendedListValueModelWrapperTests.this.eventType = CHANGE;
-				ExtendedListValueModelWrapperTests.this.event = e;
-			}
-		};
-	}
-
-	private void verifyEvent(String type) {
-		assertEquals(type, this.eventType);
-		assertEquals(this.extendedListHolder, this.event.getSource());
-		assertEquals(ListValueModel.LIST_VALUES, this.event.getListName());
-	}
-
-	private void verifyEvent(String type, int index, Object item) {
-		this.verifyEvent(type);
-		assertEquals(index, this.event.getIndex());
-		assertEquals(item, this.event.items().next());
-	}
-
-	public void testHasListeners() {
-		/*
-		 * adding listeners to the extended list will cause listeners
-		 * to be added to the wrapped list;
-		 * likewise, removing listeners from the extended list will
-		 * cause listeners to be removed from the wrapped list
-		 */
-		assertFalse(((AbstractModel) this.listHolder).hasAnyListChangeListeners(ListValueModel.LIST_VALUES));
-
-		ListChangeListener listener = this.buildListener();
-
-		this.extendedListHolder.addListChangeListener(ListValueModel.LIST_VALUES, listener);
-		assertTrue(((AbstractModel) this.listHolder).hasAnyListChangeListeners(ListValueModel.LIST_VALUES));
-
-		this.extendedListHolder.removeListChangeListener(ListValueModel.LIST_VALUES, listener);
-		assertFalse(((AbstractModel) this.listHolder).hasAnyListChangeListeners(ListValueModel.LIST_VALUES));
-
-		this.extendedListHolder.addListChangeListener(listener);
-		assertTrue(((AbstractModel) this.listHolder).hasAnyListChangeListeners(ListValueModel.LIST_VALUES));
-
-		this.extendedListHolder.removeListChangeListener(listener);
-		assertFalse(((AbstractModel) this.listHolder).hasAnyListChangeListeners(ListValueModel.LIST_VALUES));
-	}
-
-}
diff --git a/jpa/tests/org.eclipse.jpt.utility.tests/src/org/eclipse/jpt/utility/tests/internal/model/value/FilteringCollectionValueModelTests.java b/jpa/tests/org.eclipse.jpt.utility.tests/src/org/eclipse/jpt/utility/tests/internal/model/value/FilteringCollectionValueModelTests.java
deleted file mode 100644
index 9eceba1..0000000
--- a/jpa/tests/org.eclipse.jpt.utility.tests/src/org/eclipse/jpt/utility/tests/internal/model/value/FilteringCollectionValueModelTests.java
+++ /dev/null
@@ -1,287 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2008 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.utility.tests.internal.model.value;
-
-import java.util.Collection;
-import java.util.Iterator;
-import java.util.Vector;
-import junit.framework.TestCase;
-import org.eclipse.jpt.utility.Filter;
-import org.eclipse.jpt.utility.internal.CollectionTools;
-import org.eclipse.jpt.utility.internal.model.AbstractModel;
-import org.eclipse.jpt.utility.internal.model.value.FilteringCollectionValueModel;
-import org.eclipse.jpt.utility.internal.model.value.SimpleCollectionValueModel;
-import org.eclipse.jpt.utility.model.event.CollectionChangeEvent;
-import org.eclipse.jpt.utility.model.listener.CollectionChangeListener;
-import org.eclipse.jpt.utility.model.value.CollectionValueModel;
-import org.eclipse.jpt.utility.tests.internal.TestTools;
-
-public class FilteringCollectionValueModelTests extends TestCase {
-	private SimpleCollectionValueModel<String> collectionHolder;
-	CollectionChangeEvent addEvent;
-	CollectionChangeEvent removeEvent;
-	CollectionChangeEvent collectionClearedEvent;
-	CollectionChangeEvent collectionChangedEvent;
-
-	private CollectionValueModel<String> filteredCollectionHolder;
-	CollectionChangeEvent filteredAddEvent;
-	CollectionChangeEvent filteredRemoveEvent;
-	CollectionChangeEvent filteredCollectionClearedEvent;
-	CollectionChangeEvent filteredCollectionChangedEvent;
-
-	public FilteringCollectionValueModelTests(String name) {
-		super(name);
-	}
-
-	@Override
-	protected void setUp() throws Exception {
-		super.setUp();
-		this.collectionHolder = new SimpleCollectionValueModel<String>(buildCollection());
-		this.filteredCollectionHolder = new FilteringCollectionValueModel<String>(this.collectionHolder, this.buildFilter());
-	}
-
-	private Collection<String> buildCollection() {
-		Collection<String> collection = new Vector<String>();
-		collection.add("foo");
-		return collection;
-	}
-
-	private Filter<String> buildFilter() {
-		return new Filter<String>() {
-			public boolean accept(String s) {
-				return s.startsWith("b");
-			}
-		};
-	}
-
-	@Override
-	protected void tearDown() throws Exception {
-		TestTools.clear(this);
-		super.tearDown();
-	}
-
-	public void testIterator() {
-		// add a listener to "activate" the wrapper
-		this.filteredCollectionHolder.addCollectionChangeListener(CollectionValueModel.VALUES, this.buildFilteredListener());
-
-		assertEquals("foo", this.collectionHolder.iterator().next());
-		assertFalse(this.filteredCollectionHolder.iterator().hasNext());
-
-		this.collectionHolder.add("bar");
-		Iterator<String> collectionHolderValue = this.collectionHolder.iterator();
-		assertEquals("foo", collectionHolderValue.next());
-		assertEquals("bar", collectionHolderValue.next());
-		assertTrue(this.filteredCollectionHolder.iterator().hasNext());
-		assertEquals("bar", this.filteredCollectionHolder.iterator().next());
-
-		this.collectionHolder.remove("bar");
-		assertEquals("foo", this.collectionHolder.iterator().next());
-		assertFalse(this.filteredCollectionHolder.iterator().hasNext());
-
-		this.collectionHolder.remove("foo");
-		assertFalse(this.collectionHolder.iterator().hasNext());
-		assertFalse(this.filteredCollectionHolder.iterator().hasNext());
-
-		this.collectionHolder.add("foo");
-		assertEquals("foo", this.collectionHolder.iterator().next());
-		assertFalse(this.filteredCollectionHolder.iterator().hasNext());
-	}
-
-	public void testSetValue() {
-		// add a listener to "activate" the wrapper
-		this.filteredCollectionHolder.addCollectionChangeListener(CollectionValueModel.VALUES, this.buildFilteredListener());
-
-		Collection<String> newCollection = new Vector<String>();
-		newCollection.add("fox");
-		newCollection.add("baz");
-		
-		this.collectionHolder.setCollection(newCollection);
-
-		Iterator<String> collectionValues = this.collectionHolder.iterator();
-		assertEquals("fox", collectionValues.next());
-		assertEquals("baz", collectionValues.next());
-		Iterator<String> filteredCollectionValues = this.filteredCollectionHolder.iterator();
-		assertEquals("baz", filteredCollectionValues.next());
-		assertFalse(filteredCollectionValues.hasNext());
-	}		
-
-	public void testLazyListening() {
-		assertTrue(((AbstractModel) this.collectionHolder).hasNoCollectionChangeListeners(CollectionValueModel.VALUES));
-		CollectionChangeListener listener = this.buildFilteredListener();
-		this.filteredCollectionHolder.addCollectionChangeListener(listener);
-		assertTrue(((AbstractModel) this.collectionHolder).hasAnyCollectionChangeListeners(CollectionValueModel.VALUES));
-		this.filteredCollectionHolder.removeCollectionChangeListener(listener);
-		assertTrue(((AbstractModel) this.collectionHolder).hasNoCollectionChangeListeners(CollectionValueModel.VALUES));
-
-		this.filteredCollectionHolder.addCollectionChangeListener(CollectionValueModel.VALUES, listener);
-		assertTrue(((AbstractModel) this.collectionHolder).hasAnyCollectionChangeListeners(CollectionValueModel.VALUES));
-		this.filteredCollectionHolder.removeCollectionChangeListener(CollectionValueModel.VALUES, listener);
-		assertTrue(((AbstractModel) this.collectionHolder).hasNoCollectionChangeListeners(CollectionValueModel.VALUES));
-	}
-
-	public void testCollectionChange1() {
-		this.collectionHolder.addCollectionChangeListener(this.buildListener());
-		this.filteredCollectionHolder.addCollectionChangeListener(this.buildFilteredListener());
-		this.verifyCollectionChanges();
-	}
-
-	public void testCollectionChange2() {
-		this.collectionHolder.addCollectionChangeListener(CollectionValueModel.VALUES, this.buildListener());
-		this.filteredCollectionHolder.addCollectionChangeListener(CollectionValueModel.VALUES, this.buildFilteredListener());
-		this.verifyCollectionChanges();
-	}
-
-	private void clearEvents() {
-		this.addEvent = null;
-		this.removeEvent = null;
-		this.collectionClearedEvent = null;
-		this.collectionChangedEvent = null;
-		this.filteredAddEvent = null;
-		this.filteredRemoveEvent = null;
-		this.filteredCollectionClearedEvent = null;
-		this.filteredCollectionChangedEvent = null;
-	}
-
-	private void verifyCollectionChanges() {
-		clearEvents();
-		this.collectionHolder.add("bar");
-		Collection<String> tempCollection = new Vector<String>();
-		tempCollection.add("bar");
-		this.verifyEvent(this.addEvent, this.collectionHolder, tempCollection);
-		this.verifyEvent(this.filteredAddEvent, this.filteredCollectionHolder, tempCollection);
-		
-		clearEvents();
-		this.collectionHolder.remove("foo");
-		tempCollection.remove("bar");
-		tempCollection.add("foo");
-		this.verifyEvent(this.removeEvent, this.collectionHolder, tempCollection);
-		assertNull(this.filteredRemoveEvent);
-
-
-		clearEvents();
-		this.collectionHolder.remove("bar");
-		tempCollection.add("bar");
-		tempCollection.remove("foo");
-		this.verifyEvent(this.removeEvent, this.collectionHolder, tempCollection);
-		this.verifyEvent(this.filteredRemoveEvent, this.filteredCollectionHolder, tempCollection);
-
-
-		clearEvents();
-		this.collectionHolder.add("foo");
-		tempCollection.remove("bar");
-		tempCollection.add("foo");
-		this.verifyEvent(this.addEvent, this.collectionHolder, tempCollection);
-		assertNull(this.filteredAddEvent);
-
-
-		clearEvents();
-		Collection<String> newCollection = new Vector<String>();
-		newCollection.add("fox");
-		newCollection.add("baz");
-		
-		this.collectionHolder.setCollection(newCollection);
-
-		this.verifyEvent(this.collectionChangedEvent, this.collectionHolder, new Vector<String>());
-		
-		tempCollection.remove("foo");
-		tempCollection.add("baz");
-		this.verifyEvent(this.filteredCollectionChangedEvent, this.filteredCollectionHolder, new Vector<String>());
-		
-	}
-
-	private CollectionChangeListener buildListener() {
-		return new CollectionChangeListener() {
-			public void itemsAdded(CollectionChangeEvent e) {
-				FilteringCollectionValueModelTests.this.addEvent = e;
-			}
-			public void itemsRemoved(CollectionChangeEvent e) {
-				FilteringCollectionValueModelTests.this.removeEvent = e;
-			}
-			public void collectionCleared(CollectionChangeEvent e) {
-				FilteringCollectionValueModelTests.this.collectionClearedEvent = e;
-			}
-			public void collectionChanged(CollectionChangeEvent e) {
-				FilteringCollectionValueModelTests.this.collectionChangedEvent = e;
-			}
-		};
-	}
-
-	private CollectionChangeListener buildFilteredListener() {
-		return new CollectionChangeListener() {
-			public void itemsAdded(CollectionChangeEvent e) {
-				FilteringCollectionValueModelTests.this.filteredAddEvent = e;
-			}
-			public void itemsRemoved(CollectionChangeEvent e) {
-				FilteringCollectionValueModelTests.this.filteredRemoveEvent = e;
-			}
-			public void collectionCleared(CollectionChangeEvent e) {
-				FilteringCollectionValueModelTests.this.filteredCollectionClearedEvent = e;
-			}
-			public void collectionChanged(CollectionChangeEvent e) {
-				FilteringCollectionValueModelTests.this.filteredCollectionChangedEvent = e;
-			}
-		};
-	}
-
-	private void verifyEvent(CollectionChangeEvent event, Object source, Object items) {
-		assertEquals(source, event.getSource());
-		assertEquals(CollectionValueModel.VALUES, event.getCollectionName());
-		assertEquals(items, CollectionTools.vector(event.items()));
-	}
-
-	public void testRemoveFilteredItem() {
-		// build collection with TestItems
-		SimpleCollectionValueModel<TestItem> tiHolder = new SimpleCollectionValueModel<TestItem>(this.buildCollection2());
-		CollectionValueModel<TestItem> filteredTIHolder = new FilteringCollectionValueModel<TestItem>(tiHolder, this.buildFilter2());
-		// add a listener to "activate" the wrapper
-		filteredTIHolder.addCollectionChangeListener(CollectionValueModel.VALUES, this.buildFilteredListener());
-
-		assertEquals(0, filteredTIHolder.size());
-
-		tiHolder.add(new TestItem("bar"));
-		assertEquals(1, filteredTIHolder.size());
-
-		TestItem baz = new TestItem("baz");
-		tiHolder.add(baz);
-		assertEquals(2, filteredTIHolder.size());
-		// before removing it, change the item so that it is filtered
-		baz.name = "jaz";
-		tiHolder.remove(baz);
-		// this would fail because the item was not removed from
-		// the filtered collection cache... but we've fixed it now
-		assertEquals(1, filteredTIHolder.size());
-	}
-
-	private Collection<TestItem> buildCollection2() {
-		Collection<TestItem> collection = new Vector<TestItem>();
-		collection.add(new TestItem("foo"));
-		return collection;
-	}
-
-	private Filter<TestItem> buildFilter2() {
-		return new Filter<TestItem>() {
-			public boolean accept(TestItem ti) {
-				return ti.name.startsWith("b");
-			}
-		};
-	}
-
-
-	// ********** TestItem inner class **********
-
-	private class TestItem {
-		String name;
-		TestItem(String name) {
-			super();
-			this.name = name;
-		}
-	}
-
-}
diff --git a/jpa/tests/org.eclipse.jpt.utility.tests/src/org/eclipse/jpt/utility/tests/internal/model/value/FilteringPropertyValueModelTests.java b/jpa/tests/org.eclipse.jpt.utility.tests/src/org/eclipse/jpt/utility/tests/internal/model/value/FilteringPropertyValueModelTests.java
deleted file mode 100644
index 7c3b8a6..0000000
--- a/jpa/tests/org.eclipse.jpt.utility.tests/src/org/eclipse/jpt/utility/tests/internal/model/value/FilteringPropertyValueModelTests.java
+++ /dev/null
@@ -1,186 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2008 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.utility.tests.internal.model.value;
-
-import junit.framework.TestCase;
-import org.eclipse.jpt.utility.internal.BidiFilter;
-import org.eclipse.jpt.utility.internal.model.AbstractModel;
-import org.eclipse.jpt.utility.internal.model.value.FilteringWritablePropertyValueModel;
-import org.eclipse.jpt.utility.internal.model.value.SimplePropertyValueModel;
-import org.eclipse.jpt.utility.model.event.PropertyChangeEvent;
-import org.eclipse.jpt.utility.model.listener.PropertyChangeListener;
-import org.eclipse.jpt.utility.model.value.PropertyValueModel;
-import org.eclipse.jpt.utility.model.value.WritablePropertyValueModel;
-import org.eclipse.jpt.utility.tests.internal.TestTools;
-
-public class FilteringPropertyValueModelTests extends TestCase {
-	private WritablePropertyValueModel<String> objectHolder;
-	PropertyChangeEvent event;
-
-	private WritablePropertyValueModel<String> filteredObjectHolder;
-	PropertyChangeEvent filteredEvent;
-
-	public FilteringPropertyValueModelTests(String name) {
-		super(name);
-	}
-
-	@Override
-	protected void setUp() throws Exception {
-		super.setUp();
-		this.objectHolder = new SimplePropertyValueModel<String>("foo");
-		this.filteredObjectHolder = new FilteringWritablePropertyValueModel<String>(this.objectHolder, this.buildFilter());
-	}
-
-	private BidiFilter<String> buildFilter() {
-		return new BidiFilter<String>() {
-			public boolean accept(String s) {
-				return (s != null) && s.startsWith("b");
-			}
-			public boolean reverseAccept(String s) {
-				return (s != null) && s.startsWith("b");
-			}
-		};
-	}
-
-	@Override
-	protected void tearDown() throws Exception {
-		TestTools.clear(this);
-		super.tearDown();
-	}
-
-	public void testValue() {
-		assertEquals("foo", this.objectHolder.getValue());
-		assertNull(this.filteredObjectHolder.getValue());
-
-		this.objectHolder.setValue("bar");
-		assertEquals("bar", this.objectHolder.getValue());
-		assertNotNull(this.filteredObjectHolder.getValue());
-		assertEquals("bar", this.filteredObjectHolder.getValue());
-
-		this.objectHolder.setValue("baz");
-		assertEquals("baz", this.objectHolder.getValue());
-		assertNotNull(this.filteredObjectHolder.getValue());
-		assertEquals("baz", this.filteredObjectHolder.getValue());
-
-		this.objectHolder.setValue(null);
-		assertNull(this.objectHolder.getValue());
-		assertNull(this.filteredObjectHolder.getValue());
-
-		this.objectHolder.setValue("foo");
-		assertEquals("foo", this.objectHolder.getValue());
-		assertNull(this.filteredObjectHolder.getValue());
-	}
-
-	public void testSetValue() {
-		this.filteredObjectHolder.setValue("bar");
-		assertEquals("bar", this.objectHolder.getValue());
-		assertEquals("bar", this.filteredObjectHolder.getValue());
-
-		this.filteredObjectHolder.setValue("foo");
-		assertEquals("bar", this.objectHolder.getValue());
-		assertEquals("bar", this.filteredObjectHolder.getValue());
-
-		this.filteredObjectHolder.setValue(null);
-		assertEquals("bar", this.objectHolder.getValue());
-		assertEquals("bar", this.filteredObjectHolder.getValue());
-
-		this.filteredObjectHolder.setValue("baz");
-		assertEquals("baz", this.objectHolder.getValue());
-		assertEquals("baz", this.filteredObjectHolder.getValue());
-	}
-
-	public void testLazyListening() {
-		assertTrue(((AbstractModel) this.objectHolder).hasNoPropertyChangeListeners(PropertyValueModel.VALUE));
-		PropertyChangeListener listener = this.buildFilteredListener();
-		this.filteredObjectHolder.addPropertyChangeListener(listener);
-		assertTrue(((AbstractModel) this.objectHolder).hasAnyPropertyChangeListeners(PropertyValueModel.VALUE));
-		this.filteredObjectHolder.removePropertyChangeListener(listener);
-		assertTrue(((AbstractModel) this.objectHolder).hasNoPropertyChangeListeners(PropertyValueModel.VALUE));
-
-		this.filteredObjectHolder.addPropertyChangeListener(PropertyValueModel.VALUE, listener);
-		assertTrue(((AbstractModel) this.objectHolder).hasAnyPropertyChangeListeners(PropertyValueModel.VALUE));
-		this.filteredObjectHolder.removePropertyChangeListener(PropertyValueModel.VALUE, listener);
-		assertTrue(((AbstractModel) this.objectHolder).hasNoPropertyChangeListeners(PropertyValueModel.VALUE));
-	}
-
-	public void testPropertyChange1() {
-		this.objectHolder.addPropertyChangeListener(this.buildListener());
-		this.filteredObjectHolder.addPropertyChangeListener(this.buildFilteredListener());
-		this.verifyPropertyChanges();
-	}
-
-	public void testPropertyChange2() {
-		this.objectHolder.addPropertyChangeListener(PropertyValueModel.VALUE, this.buildListener());
-		this.filteredObjectHolder.addPropertyChangeListener(PropertyValueModel.VALUE, this.buildFilteredListener());
-		this.verifyPropertyChanges();
-	}
-
-	private void verifyPropertyChanges() {
-		this.event = null;
-		this.filteredEvent = null;
-		this.objectHolder.setValue("bar");
-		this.verifyEvent(this.event, this.objectHolder, "foo", "bar");
-		this.verifyEvent(this.filteredEvent, this.filteredObjectHolder, null, "bar");
-
-		this.event = null;
-		this.filteredEvent = null;
-		this.objectHolder.setValue("baz");
-		this.verifyEvent(this.event, this.objectHolder, "bar", "baz");
-		this.verifyEvent(this.filteredEvent, this.filteredObjectHolder, "bar", "baz");
-
-		this.event = null;
-		this.filteredEvent = null;
-		this.objectHolder.setValue("foo");
-		this.verifyEvent(this.event, this.objectHolder, "baz", "foo");
-		this.verifyEvent(this.filteredEvent, this.filteredObjectHolder, "baz", null);
-
-		this.event = null;
-		this.filteredEvent = null;
-		this.objectHolder.setValue("fop");
-		this.verifyEvent(this.event, this.objectHolder, "foo", "fop");
-		assertNull(this.filteredEvent);
-
-		this.event = null;
-		this.filteredEvent = null;
-		this.objectHolder.setValue(null);
-		this.verifyEvent(this.event, this.objectHolder, "fop", null);
-		assertNull(this.filteredEvent);
-
-		this.event = null;
-		this.filteredEvent = null;
-		this.objectHolder.setValue("bar");
-		this.verifyEvent(this.event, this.objectHolder, null, "bar");
-		this.verifyEvent(this.filteredEvent, this.filteredObjectHolder, null, "bar");
-	}
-
-	private PropertyChangeListener buildListener() {
-		return new PropertyChangeListener() {
-			public void propertyChanged(PropertyChangeEvent e) {
-				FilteringPropertyValueModelTests.this.event = e;
-			}
-		};
-	}
-
-	private PropertyChangeListener buildFilteredListener() {
-		return new PropertyChangeListener() {
-			public void propertyChanged(PropertyChangeEvent e) {
-				FilteringPropertyValueModelTests.this.filteredEvent = e;
-			}
-		};
-	}
-
-	private void verifyEvent(PropertyChangeEvent e, Object source, Object oldValue, Object newValue) {
-		assertEquals(source, e.getSource());
-		assertEquals(PropertyValueModel.VALUE, e.getPropertyName());
-		assertEquals(oldValue, e.getOldValue());
-		assertEquals(newValue, e.getNewValue());
-	}
-
-}
diff --git a/jpa/tests/org.eclipse.jpt.utility.tests/src/org/eclipse/jpt/utility/tests/internal/model/value/ItemCollectionListValueModelAdapterTests.java b/jpa/tests/org.eclipse.jpt.utility.tests/src/org/eclipse/jpt/utility/tests/internal/model/value/ItemCollectionListValueModelAdapterTests.java
deleted file mode 100644
index 1e3b3df..0000000
--- a/jpa/tests/org.eclipse.jpt.utility.tests/src/org/eclipse/jpt/utility/tests/internal/model/value/ItemCollectionListValueModelAdapterTests.java
+++ /dev/null
@@ -1,239 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2008 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.utility.tests.internal.model.value;
-
-import java.util.ArrayList;
-import java.util.Collection;
-import java.util.List;
-import javax.swing.Icon;
-import junit.framework.TestCase;
-import org.eclipse.jpt.utility.internal.Bag;
-import org.eclipse.jpt.utility.internal.HashBag;
-import org.eclipse.jpt.utility.internal.model.AbstractModel;
-import org.eclipse.jpt.utility.internal.model.value.ItemCollectionListValueModelAdapter;
-import org.eclipse.jpt.utility.internal.model.value.SimpleCollectionValueModel;
-import org.eclipse.jpt.utility.internal.model.value.SimpleListValueModel;
-import org.eclipse.jpt.utility.internal.model.value.SortedListValueModelAdapter;
-import org.eclipse.jpt.utility.internal.swing.Displayable;
-import org.eclipse.jpt.utility.model.value.ListValueModel;
-import org.eclipse.jpt.utility.tests.internal.TestTools;
-
-public class ItemCollectionListValueModelAdapterTests extends TestCase {
-	private Junk foo;
-	private Junk bar;
-	private Junk baz;
-	private Junk joo;
-	private Junk jar;
-	private Junk jaz;
-
-	private Junk tom;
-	private Junk dick;
-	private Junk harry;
-
-	public ItemCollectionListValueModelAdapterTests(String name) {
-		super(name);
-	}
-
-	@Override
-	protected void setUp() throws Exception {
-		super.setUp();
-		this.foo = new Junk("foo");
-		this.bar = new Junk("bar");
-		this.baz = new Junk("baz");
-		this.joo = new Junk("joo");
-		this.jar = new Junk("jar");
-		this.jaz = new Junk("jaz");
-
-		this.tom = new Junk("tom");
-		this.dick = new Junk("dick");
-		this.harry = new Junk("harry");
-	}
-
-	@Override
-	protected void tearDown() throws Exception {
-		TestTools.clear(this);
-		super.tearDown();
-	}
-
-	public void testCollectionSynchronization() {
-		SimpleCollectionValueModel<Junk> collectionHolder = this.buildCollectionHolder();
-		ListValueModel<Junk> listValueModel = new ItemCollectionListValueModelAdapter<Junk>(collectionHolder, Junk.STUFF_COLLECTION);
-		CoordinatedList<Junk> synchList = new CoordinatedList<Junk>(listValueModel);
-		assertEquals(6, synchList.size());
-		this.compare(listValueModel, synchList);
-
-		collectionHolder.add(this.tom);
-		collectionHolder.add(this.dick);
-		collectionHolder.add(this.harry);
-		assertEquals(9, synchList.size());
-		this.compare(listValueModel, synchList);
-
-		collectionHolder.remove(this.foo);
-		collectionHolder.remove(this.jar);
-		collectionHolder.remove(this.harry);
-		assertEquals(6, synchList.size());
-		this.compare(listValueModel, synchList);
-	}
-
-	public void testListSynchronization() {
-		SimpleListValueModel<Junk> listHolder = this.buildListHolder();
-		ListValueModel<Junk> listValueModel = new ItemCollectionListValueModelAdapter<Junk>(listHolder, Junk.STUFF_COLLECTION);
-		CoordinatedList<Junk> synchList = new CoordinatedList<Junk>(listValueModel);
-		assertEquals(6, synchList.size());
-		this.compare(listValueModel, synchList);
-
-		listHolder.add(6, this.tom);
-		listHolder.add(7, this.dick);
-		listHolder.add(8, this.harry);
-		assertEquals(9, synchList.size());
-		this.compare(listValueModel, synchList);
-
-		listHolder.remove(8);
-		listHolder.remove(0);
-		listHolder.remove(4);
-		assertEquals(6, synchList.size());
-		this.compare(listValueModel, synchList);
-	}
-
-	private void compare(ListValueModel<Junk> listValueModel, List<Junk> list) {
-		assertEquals(listValueModel.size(), list.size());
-		for (int i = 0; i < listValueModel.size(); i++) {
-			assertEquals(listValueModel.get(i), list.get(i));
-		}
-	}
-
-
-	public void testHasListeners() throws Exception {
-		SimpleListValueModel<Junk> listHolder = this.buildListHolder();
-		assertFalse(listHolder.hasAnyListChangeListeners(ListValueModel.LIST_VALUES));
-		assertFalse(this.foo.hasAnyListChangeListeners(Junk.STUFF_COLLECTION));
-		assertFalse(this.jaz.hasAnyListChangeListeners(Junk.STUFF_COLLECTION));
-
-		ListValueModel<Junk> listValueModel = new ItemCollectionListValueModelAdapter<Junk>(listHolder, Junk.STUFF_COLLECTION);
-		assertFalse(listHolder.hasAnyListChangeListeners(ListValueModel.LIST_VALUES));
-		assertFalse(this.foo.hasAnyCollectionChangeListeners(Junk.STUFF_COLLECTION));
-		assertFalse(this.jaz.hasAnyCollectionChangeListeners(Junk.STUFF_COLLECTION));
-		this.verifyHasNoListeners(listValueModel);
-
-		CoordinatedList<Junk> synchList = new CoordinatedList<Junk>(listValueModel);
-		assertTrue(listHolder.hasAnyListChangeListeners(ListValueModel.LIST_VALUES));
-		assertTrue(this.foo.hasAnyCollectionChangeListeners(Junk.STUFF_COLLECTION));
-		assertTrue(this.jaz.hasAnyCollectionChangeListeners(Junk.STUFF_COLLECTION));
-		this.verifyHasListeners(listValueModel);
-
-		listValueModel.removeListChangeListener(ListValueModel.LIST_VALUES, synchList);
-		assertFalse(listHolder.hasAnyListChangeListeners(ListValueModel.LIST_VALUES));
-		assertFalse(this.foo.hasAnyCollectionChangeListeners(Junk.STUFF_COLLECTION));
-		assertFalse(this.jaz.hasAnyCollectionChangeListeners(Junk.STUFF_COLLECTION));
-		this.verifyHasNoListeners(listValueModel);
-	}
-
-	public void testGetSize() throws Exception {
-		SimpleListValueModel<Junk> listHolder = this.buildListHolder();
-		ListValueModel<Junk> listValueModel = new ItemCollectionListValueModelAdapter<Junk>(listHolder, Junk.STUFF_COLLECTION);
-		CoordinatedList<Junk> synchList = new CoordinatedList<Junk>(listValueModel);
-		this.verifyHasListeners(listValueModel);
-		assertEquals(6, listValueModel.size());
-		assertEquals(6, synchList.size());
-	}
-
-	public void testGet() throws Exception {
-		SimpleListValueModel<Junk> listHolder = this.buildListHolder();
-		ListValueModel<Junk> listValueModel = new SortedListValueModelAdapter<Junk>(new ItemCollectionListValueModelAdapter<Junk>(listHolder, Junk.STUFF_COLLECTION));
-		CoordinatedList<Junk> synchList = new CoordinatedList<Junk>(listValueModel);
-		this.verifyHasListeners(listValueModel);
-		assertEquals(this.bar, listValueModel.get(0));
-		assertEquals(this.bar, synchList.get(0));
-		this.bar.removeStuff("bar");
-		this.bar.addStuff("zzz");
-		this.bar.addStuff("bar");
-		assertEquals(this.bar, listValueModel.get(5));
-		assertEquals(this.bar, synchList.get(5));
-		this.bar.removeStuff("zzz");
-	}
-
-	private void verifyHasNoListeners(ListValueModel<Junk> listValueModel) throws Exception {
-		assertTrue(((AbstractModel) listValueModel).hasNoListChangeListeners(ListValueModel.LIST_VALUES));
-	}
-
-	private void verifyHasListeners(ListValueModel<Junk> listValueModel) throws Exception {
-		assertTrue(((AbstractModel) listValueModel).hasAnyListChangeListeners(ListValueModel.LIST_VALUES));
-	}
-
-	private SimpleCollectionValueModel<Junk> buildCollectionHolder() {
-		return new SimpleCollectionValueModel<Junk>(this.buildCollection());
-	}
-
-	private Collection<Junk> buildCollection() {
-		Bag<Junk> bag = new HashBag<Junk>();
-		this.populateCollection(bag);
-		return bag;
-	}
-
-	private SimpleListValueModel<Junk> buildListHolder() {
-		return new SimpleListValueModel<Junk>(this.buildList());
-	}
-
-	private List<Junk> buildList() {
-		List<Junk> list = new ArrayList<Junk>();
-		this.populateCollection(list);
-		return list;
-	}
-
-	private void populateCollection(Collection<Junk> c) {
-		c.add(this.foo);
-		c.add(this.bar);
-		c.add(this.baz);
-		c.add(this.joo);
-		c.add(this.jar);
-		c.add(this.jaz);
-	}
-
-
-	// ********** Junk class **********
-
-	private class Junk extends AbstractModel implements Displayable {
-		private Collection<String> stuff;
-			public static final String STUFF_COLLECTION = "stuff";
-			
-	
-		public Junk(String stuffItem) {
-			this.stuff = new ArrayList<String>();
-			this.stuff.add(stuffItem);
-		}
-	
-		public void addStuff(String stuffItem) {
-			this.addItemToCollection(stuffItem, this.stuff, STUFF_COLLECTION);
-		}
-		
-		public void removeStuff(String stuffItem) {
-			this.removeItemFromCollection(stuffItem, this.stuff, STUFF_COLLECTION);
-		}
-	
-		public String displayString() {
-			return toString();
-		}
-	
-		public Icon icon() {
-			return null;
-		}
-		
-		public int compareTo(Displayable o) {
-			return DEFAULT_COMPARATOR.compare(this, o);
-		}
-	
-		@Override
-		public String toString() {
-			return "Junk(" + this.stuff + ")";
-		}
-	
-	}
-
-}
diff --git a/jpa/tests/org.eclipse.jpt.utility.tests/src/org/eclipse/jpt/utility/tests/internal/model/value/ItemListListValueModelAdapterTests.java b/jpa/tests/org.eclipse.jpt.utility.tests/src/org/eclipse/jpt/utility/tests/internal/model/value/ItemListListValueModelAdapterTests.java
deleted file mode 100644
index ed58da1..0000000
--- a/jpa/tests/org.eclipse.jpt.utility.tests/src/org/eclipse/jpt/utility/tests/internal/model/value/ItemListListValueModelAdapterTests.java
+++ /dev/null
@@ -1,240 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2008 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.utility.tests.internal.model.value;
-
-import java.util.ArrayList;
-import java.util.Collection;
-import java.util.List;
-import javax.swing.Icon;
-import junit.framework.TestCase;
-import org.eclipse.jpt.utility.internal.Bag;
-import org.eclipse.jpt.utility.internal.HashBag;
-import org.eclipse.jpt.utility.internal.model.AbstractModel;
-import org.eclipse.jpt.utility.internal.model.value.ItemListListValueModelAdapter;
-import org.eclipse.jpt.utility.internal.model.value.SimpleCollectionValueModel;
-import org.eclipse.jpt.utility.internal.model.value.SimpleListValueModel;
-import org.eclipse.jpt.utility.internal.model.value.SortedListValueModelAdapter;
-import org.eclipse.jpt.utility.internal.swing.Displayable;
-import org.eclipse.jpt.utility.model.value.ListValueModel;
-import org.eclipse.jpt.utility.tests.internal.TestTools;
-
-public class ItemListListValueModelAdapterTests extends TestCase {
-	private Junk foo;
-	private Junk bar;
-	private Junk baz;
-	private Junk joo;
-	private Junk jar;
-	private Junk jaz;
-
-	private Junk tom;
-	private Junk dick;
-	private Junk harry;
-
-	public ItemListListValueModelAdapterTests(String name) {
-		super(name);
-	}
-
-	@Override
-	protected void setUp() throws Exception {
-		super.setUp();
-		this.foo = new Junk("foo");
-		this.bar = new Junk("bar");
-		this.baz = new Junk("baz");
-		this.joo = new Junk("joo");
-		this.jar = new Junk("jar");
-		this.jaz = new Junk("jaz");
-
-		this.tom = new Junk("tom");
-		this.dick = new Junk("dick");
-		this.harry = new Junk("harry");
-	}
-
-	@Override
-	protected void tearDown() throws Exception {
-		TestTools.clear(this);
-		super.tearDown();
-	}
-
-	public void testCollectionSynchronization() {
-		SimpleCollectionValueModel<Junk> collectionHolder = this.buildCollectionHolder();
-		ListValueModel<Junk> listValueModel = new ItemListListValueModelAdapter<Junk>(collectionHolder, Junk.STUFF_LIST);
-		CoordinatedList<Junk> synchList = new CoordinatedList<Junk>(listValueModel);
-		assertEquals(6, synchList.size());
-		this.compare(listValueModel, synchList);
-
-		collectionHolder.add(this.tom);
-		collectionHolder.add(this.dick);
-		collectionHolder.add(this.harry);
-		assertEquals(9, synchList.size());
-		this.compare(listValueModel, synchList);
-
-		collectionHolder.remove(this.foo);
-		collectionHolder.remove(this.jar);
-		collectionHolder.remove(this.harry);
-		assertEquals(6, synchList.size());
-		this.compare(listValueModel, synchList);
-	}
-
-	public void testListSynchronization() {
-		SimpleListValueModel<Junk> listHolder = this.buildListHolder();
-		ListValueModel<Junk> listValueModel = new ItemListListValueModelAdapter<Junk>(listHolder, Junk.STUFF_LIST);
-		CoordinatedList<Junk> synchList = new CoordinatedList<Junk>(listValueModel);
-		assertEquals(6, synchList.size());
-		this.compare(listValueModel, synchList);
-
-		listHolder.add(6, this.tom);
-		listHolder.add(7, this.dick);
-		listHolder.add(8, this.harry);
-		assertEquals(9, synchList.size());
-		this.compare(listValueModel, synchList);
-
-		listHolder.remove(8);
-		listHolder.remove(0);
-		listHolder.remove(4);
-		assertEquals(6, synchList.size());
-		this.compare(listValueModel, synchList);
-	}
-
-	private void compare(ListValueModel<Junk> listValueModel, List<Junk> list) {
-		assertEquals(listValueModel.size(), list.size());
-		for (int i = 0; i < listValueModel.size(); i++) {
-			assertEquals(listValueModel.get(i), list.get(i));
-		}
-	}
-
-
-	public void testHasListeners() throws Exception {
-		SimpleListValueModel<Junk> listHolder = this.buildListHolder();
-		assertFalse(listHolder.hasAnyListChangeListeners(ListValueModel.LIST_VALUES));
-		assertFalse(this.foo.hasAnyListChangeListeners(Junk.STUFF_LIST));
-		assertFalse(this.jaz.hasAnyListChangeListeners(Junk.STUFF_LIST));
-
-		ListValueModel<Junk> listValueModel = new ItemListListValueModelAdapter<Junk>(listHolder, Junk.STUFF_LIST);
-		assertFalse(listHolder.hasAnyListChangeListeners(ListValueModel.LIST_VALUES));
-		assertFalse(this.foo.hasAnyListChangeListeners(Junk.STUFF_LIST));
-		assertFalse(this.jaz.hasAnyListChangeListeners(Junk.STUFF_LIST));
-		this.verifyHasNoListeners(listValueModel);
-
-		CoordinatedList<Junk> synchList = new CoordinatedList<Junk>(listValueModel);
-		assertTrue(listHolder.hasAnyListChangeListeners(ListValueModel.LIST_VALUES));
-		assertTrue(this.foo.hasAnyListChangeListeners(Junk.STUFF_LIST));
-		assertTrue(this.jaz.hasAnyListChangeListeners(Junk.STUFF_LIST));
-		this.verifyHasListeners(listValueModel);
-
-		listValueModel.removeListChangeListener(ListValueModel.LIST_VALUES, synchList);
-		assertFalse(listHolder.hasAnyListChangeListeners(ListValueModel.LIST_VALUES));
-		assertFalse(this.foo.hasAnyListChangeListeners(Junk.STUFF_LIST));
-		assertFalse(this.jaz.hasAnyListChangeListeners(Junk.STUFF_LIST));
-		this.verifyHasNoListeners(listValueModel);
-	}
-
-	public void testGetSize() throws Exception {
-		SimpleListValueModel<Junk> listHolder = this.buildListHolder();
-		ListValueModel<Junk> listValueModel = new ItemListListValueModelAdapter<Junk>(listHolder, Junk.STUFF_LIST);
-		CoordinatedList<Junk> synchList = new CoordinatedList<Junk>(listValueModel);
-		this.verifyHasListeners(listValueModel);
-		assertEquals(6, listValueModel.size());
-		assertEquals(6, synchList.size());
-	}
-
-	public void testGet() throws Exception {
-		SimpleListValueModel<Junk> listHolder = this.buildListHolder();
-		ListValueModel<Junk> listValueModel = new SortedListValueModelAdapter<Junk>(new ItemListListValueModelAdapter<Junk>(listHolder, Junk.STUFF_LIST));
-		CoordinatedList<Junk> synchList = new CoordinatedList<Junk>(listValueModel);
-		this.verifyHasListeners(listValueModel);
-		assertEquals(this.bar, listValueModel.get(0));
-		assertEquals(this.bar, synchList.get(0));
-		this.bar.removeStuff("bar");
-		this.bar.addStuff("zzz");
-		this.bar.addStuff("bar");
-		assertEquals(this.bar, listValueModel.get(5));
-		assertEquals(this.bar, synchList.get(5));
-		this.bar.removeStuff("zzz");
-	}
-
-	private void verifyHasNoListeners(ListValueModel<Junk> listValueModel) throws Exception {
-		assertTrue(((AbstractModel) listValueModel).hasNoListChangeListeners(ListValueModel.LIST_VALUES));
-	}
-
-	private void verifyHasListeners(ListValueModel<Junk> listValueModel) throws Exception {
-		assertTrue(((AbstractModel) listValueModel).hasAnyListChangeListeners(ListValueModel.LIST_VALUES));
-	}
-
-	private SimpleCollectionValueModel<Junk> buildCollectionHolder() {
-		return new SimpleCollectionValueModel<Junk>(this.buildCollection());
-	}
-
-	private Collection<Junk> buildCollection() {
-		Bag<Junk> bag = new HashBag<Junk>();
-		this.populateCollection(bag);
-		return bag;
-	}
-
-	private SimpleListValueModel<Junk> buildListHolder() {
-		return new SimpleListValueModel<Junk>(this.buildList());
-	}
-
-	private List<Junk> buildList() {
-		List<Junk> list = new ArrayList<Junk>();
-		this.populateCollection(list);
-		return list;
-	}
-
-	private void populateCollection(Collection<Junk> c) {
-		c.add(this.foo);
-		c.add(this.bar);
-		c.add(this.baz);
-		c.add(this.joo);
-		c.add(this.jar);
-		c.add(this.jaz);
-	}
-
-
-	// ********** Junk class **********
-
-	private class Junk extends AbstractModel implements Displayable {
-		private List<String> stuff;
-			public static final String STUFF_LIST = "stuff";
-			
-	
-		public Junk(String stuffItem) {
-			this.stuff = new ArrayList<String>();
-			this.stuff.add(stuffItem);
-		}
-		public void addStuff(String stuffItem) {
-			this.stuff.add(stuffItem);
-			fireItemAdded(STUFF_LIST, this.stuff.indexOf(stuffItem), stuffItem);
-		}
-		
-		public void removeStuff(String stuffItem) {
-			int index = this.stuff.indexOf(stuffItem);
-			this.stuff.remove(stuffItem);
-			fireItemRemoved(STUFF_LIST, index, stuffItem);
-		}
-	
-		public String displayString() {
-			return toString();
-		}
-	
-		public Icon icon() {
-			return null;
-		}
-		
-		public int compareTo(Displayable o) {
-			return DEFAULT_COMPARATOR.compare(this, o);
-		}
-	
-		@Override
-		public String toString() {
-			return "Junk(" + this.stuff + ")";
-		}
-	}
-
-}
diff --git a/jpa/tests/org.eclipse.jpt.utility.tests/src/org/eclipse/jpt/utility/tests/internal/model/value/ItemPropertyListValueModelAdapterTests.java b/jpa/tests/org.eclipse.jpt.utility.tests/src/org/eclipse/jpt/utility/tests/internal/model/value/ItemPropertyListValueModelAdapterTests.java
deleted file mode 100644
index 8e4e16c..0000000
--- a/jpa/tests/org.eclipse.jpt.utility.tests/src/org/eclipse/jpt/utility/tests/internal/model/value/ItemPropertyListValueModelAdapterTests.java
+++ /dev/null
@@ -1,330 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2008 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.utility.tests.internal.model.value;
-
-import java.util.ArrayList;
-import java.util.Collection;
-import java.util.Comparator;
-import java.util.Iterator;
-import java.util.List;
-import java.util.SortedSet;
-import java.util.TreeSet;
-import javax.swing.Icon;
-import junit.framework.TestCase;
-import org.eclipse.jpt.utility.internal.Bag;
-import org.eclipse.jpt.utility.internal.HashBag;
-import org.eclipse.jpt.utility.internal.model.AbstractModel;
-import org.eclipse.jpt.utility.internal.model.value.ItemPropertyListValueModelAdapter;
-import org.eclipse.jpt.utility.internal.model.value.SimpleCollectionValueModel;
-import org.eclipse.jpt.utility.internal.model.value.SimpleListValueModel;
-import org.eclipse.jpt.utility.internal.model.value.SortedListValueModelAdapter;
-import org.eclipse.jpt.utility.internal.swing.Displayable;
-import org.eclipse.jpt.utility.model.value.ListValueModel;
-import org.eclipse.jpt.utility.tests.internal.TestTools;
-
-public class ItemPropertyListValueModelAdapterTests extends TestCase {
-	private Junk foo;
-	private Junk bar;
-	private Junk baz;
-	private Junk joo;
-	private Junk jar;
-	private Junk jaz;
-
-	private Junk tom;
-	private Junk dick;
-	private Junk harry;
-
-	public ItemPropertyListValueModelAdapterTests(String name) {
-		super(name);
-	}
-
-	@Override
-	protected void setUp() throws Exception {
-		super.setUp();
-		this.foo = new Junk("this.foo");
-		this.bar = new Junk("this.bar");
-		this.baz = new Junk("this.baz");
-		this.joo = new Junk("this.joo");
-		this.jar = new Junk("this.jar");
-		this.jaz = new Junk("this.jaz");
-
-		this.tom = new Junk("this.tom");
-		this.dick = new Junk("this.dick");
-		this.harry = new Junk("this.harry");
-	}
-
-	@Override
-	protected void tearDown() throws Exception {
-		TestTools.clear(this);
-		super.tearDown();
-	}
-
-	public void testCollectionSynchronization() {
-		SimpleCollectionValueModel<Junk> collectionHolder = this.buildCollectionHolder();
-		ListValueModel<Junk> listValueModel = new ItemPropertyListValueModelAdapter<Junk>(collectionHolder, Displayable.DISPLAY_STRING_PROPERTY, Displayable.ICON_PROPERTY);
-		CoordinatedList<Junk> synchList = new CoordinatedList<Junk>(listValueModel);
-		assertEquals(6, synchList.size());
-		this.compare(listValueModel, synchList);
-
-		collectionHolder.add(this.tom);
-		collectionHolder.add(this.dick);
-		collectionHolder.add(this.harry);
-		assertEquals(9, synchList.size());
-		this.compare(listValueModel, synchList);
-
-		collectionHolder.remove(this.foo);
-		collectionHolder.remove(this.jar);
-		collectionHolder.remove(this.harry);
-		assertEquals(6, synchList.size());
-		this.compare(listValueModel, synchList);
-
-		collectionHolder.setCollection(this.buildCollection());
-		assertEquals(6, synchList.size());
-		this.compare(listValueModel, synchList);
-	}
-
-	public void testListSynchronization() {
-		SimpleListValueModel<Junk> listHolder = this.buildListHolder();
-		ListValueModel<Junk> listValueModel = new ItemPropertyListValueModelAdapter<Junk>(listHolder, Displayable.DISPLAY_STRING_PROPERTY, Displayable.ICON_PROPERTY);
-		CoordinatedList<Junk> synchList = new CoordinatedList<Junk>(listValueModel);
-		assertEquals(6, synchList.size());
-		this.compare(listValueModel, synchList);
-
-		listHolder.add(6, this.tom);
-		listHolder.add(7, this.dick);
-		listHolder.add(8, this.harry);
-		assertEquals(9, synchList.size());
-		this.compare(listValueModel, synchList);
-
-		listHolder.remove(8);
-		listHolder.remove(0);
-		listHolder.remove(4);
-		assertEquals(6, synchList.size());
-		this.compare(listValueModel, synchList);
-
-		// test concurrent modification exception
-		listHolder.setList(this.buildList());
-		assertEquals(6, synchList.size());
-		this.compare(listValueModel, synchList);
-	}
-
-	private void compare(ListValueModel<Junk> listValueModel, List<Junk> list) {
-		assertEquals(listValueModel.size(), list.size());
-		for (int i = 0; i < listValueModel.size(); i++) {
-			assertEquals(listValueModel.get(i), list.get(i));
-		}
-	}
-
-	public void testCollectionSort() {
-		this.verifyCollectionSort(null);
-	}
-
-	public void testListSort() {
-		this.verifyListSort(null);
-	}
-
-	public void testCustomCollectionSort() {
-		this.verifyCollectionSort(this.buildCustomComparator());
-	}
-
-	public void testCustomListSort() {
-		this.verifyListSort(this.buildCustomComparator());
-	}
-
-	private Comparator<Junk> buildCustomComparator() {
-		// sort with reverse order
-		return new Comparator<Junk>() {
-			public int compare(Junk o1, Junk o2) {
-				return o2.compareTo(o1);
-			}
-		};
-	}
-
-	private void verifyCollectionSort(Comparator<Junk> comparator) {
-		SimpleCollectionValueModel<Junk> collectionHolder = this.buildCollectionHolder();
-		ListValueModel<Junk> listValueModel = new ItemPropertyListValueModelAdapter<Junk>(new SortedListValueModelAdapter<Junk>(collectionHolder, comparator), Displayable.DISPLAY_STRING_PROPERTY, Displayable.ICON_PROPERTY);
-		CoordinatedList<Junk> synchList = new CoordinatedList<Junk>(listValueModel);
-		assertEquals(6, synchList.size());
-		this.compareSort(listValueModel, synchList, comparator);
-
-		collectionHolder.add(this.tom);
-		collectionHolder.add(this.dick);
-		collectionHolder.add(this.harry);
-		assertEquals(9, synchList.size());
-		this.compareSort(listValueModel, synchList, comparator);
-
-		collectionHolder.remove(this.foo);
-		collectionHolder.remove(this.jar);
-		collectionHolder.remove(this.harry);
-		assertEquals(6, synchList.size());
-		this.compareSort(listValueModel, synchList, comparator);
-
-		collectionHolder.setCollection(this.buildCollection());
-		assertEquals(6, synchList.size());
-		this.compareSort(listValueModel, synchList, comparator);
-	}
-
-	private void verifyListSort(Comparator<Junk> comparator) {
-		SimpleListValueModel<Junk> listHolder = this.buildListHolder();
-		ListValueModel<Junk> listValueModel = new ItemPropertyListValueModelAdapter<Junk>(new SortedListValueModelAdapter<Junk>(listHolder, comparator), Displayable.DISPLAY_STRING_PROPERTY, Displayable.ICON_PROPERTY);
-		CoordinatedList<Junk> synchList = new CoordinatedList<Junk>(listValueModel);
-		assertEquals(6, synchList.size());
-		this.compareSort(listValueModel, synchList, comparator);
-
-		listHolder.add(0, this.tom);
-		listHolder.add(0, this.dick);
-		listHolder.add(0, this.harry);
-		assertEquals(9, synchList.size());
-		this.compareSort(listValueModel, synchList, comparator);
-
-		listHolder.remove(8);
-		listHolder.remove(4);
-		listHolder.remove(0);
-		listHolder.remove(5);
-		assertEquals(5, synchList.size());
-		this.compareSort(listValueModel, synchList, comparator);
-
-		listHolder.setList(this.buildList());
-		assertEquals(6, synchList.size());
-		this.compareSort(listValueModel, synchList, comparator);
-	}
-
-	private void compareSort(ListValueModel<Junk> listValueModel, List<Junk> list, Comparator<Junk> comparator) {
-		SortedSet<Junk> ss = new TreeSet<Junk>(comparator);
-		for (int i = 0; i < listValueModel.size(); i++) {
-			ss.add(listValueModel.get(i));
-		}
-		assertEquals(ss.size(), list.size());
-		for (Iterator<Junk> stream1 = ss.iterator(), stream2 = list.iterator(); stream1.hasNext(); ) {
-			assertEquals(stream1.next(), stream2.next());
-		}
-	}
-
-	public void testHasListeners() throws Exception {
-		SimpleListValueModel<Junk> listHolder = this.buildListHolder();
-		assertFalse(listHolder.hasAnyListChangeListeners(ListValueModel.LIST_VALUES));
-		assertFalse(this.foo.hasAnyPropertyChangeListeners(Displayable.DISPLAY_STRING_PROPERTY));
-		assertFalse(this.foo.hasAnyPropertyChangeListeners(Displayable.ICON_PROPERTY));
-		assertFalse(this.jaz.hasAnyPropertyChangeListeners(Displayable.DISPLAY_STRING_PROPERTY));
-		assertFalse(this.jaz.hasAnyPropertyChangeListeners(Displayable.ICON_PROPERTY));
-
-		ListValueModel<Junk> listValueModel = new ItemPropertyListValueModelAdapter<Junk>(new SortedListValueModelAdapter<Junk>(listHolder), Displayable.DISPLAY_STRING_PROPERTY, Displayable.ICON_PROPERTY);
-		assertFalse(listHolder.hasAnyListChangeListeners(ListValueModel.LIST_VALUES));
-		assertFalse(this.foo.hasAnyPropertyChangeListeners(Displayable.DISPLAY_STRING_PROPERTY));
-		assertFalse(this.foo.hasAnyPropertyChangeListeners(Displayable.ICON_PROPERTY));
-		assertFalse(this.jaz.hasAnyPropertyChangeListeners(Displayable.DISPLAY_STRING_PROPERTY));
-		assertFalse(this.jaz.hasAnyPropertyChangeListeners(Displayable.ICON_PROPERTY));
-		this.verifyHasNoListeners(listValueModel);
-
-		CoordinatedList<Junk> synchList = new CoordinatedList<Junk>(listValueModel);
-		assertTrue(listHolder.hasAnyListChangeListeners(ListValueModel.LIST_VALUES));
-		assertTrue(this.foo.hasAnyPropertyChangeListeners(Displayable.DISPLAY_STRING_PROPERTY));
-		assertTrue(this.foo.hasAnyPropertyChangeListeners(Displayable.ICON_PROPERTY));
-		assertTrue(this.jaz.hasAnyPropertyChangeListeners(Displayable.DISPLAY_STRING_PROPERTY));
-		assertTrue(this.jaz.hasAnyPropertyChangeListeners(Displayable.ICON_PROPERTY));
-		this.verifyHasListeners(listValueModel);
-
-		listValueModel.removeListChangeListener(ListValueModel.LIST_VALUES, synchList);
-		assertFalse(listHolder.hasAnyListChangeListeners(ListValueModel.LIST_VALUES));
-		assertFalse(this.foo.hasAnyPropertyChangeListeners(Displayable.DISPLAY_STRING_PROPERTY));
-		assertFalse(this.foo.hasAnyPropertyChangeListeners(Displayable.ICON_PROPERTY));
-		assertFalse(this.jaz.hasAnyPropertyChangeListeners(Displayable.DISPLAY_STRING_PROPERTY));
-		assertFalse(this.jaz.hasAnyPropertyChangeListeners(Displayable.ICON_PROPERTY));
-		this.verifyHasNoListeners(listValueModel);
-	}
-
-	public void testGetSize() throws Exception {
-		SimpleListValueModel<Junk> listHolder = this.buildListHolder();
-		ListValueModel<Junk> listValueModel = new ItemPropertyListValueModelAdapter<Junk>(new SortedListValueModelAdapter<Junk>(listHolder), Displayable.DISPLAY_STRING_PROPERTY, Displayable.ICON_PROPERTY);
-		CoordinatedList<Junk> synchList = new CoordinatedList<Junk>(listValueModel);
-		this.verifyHasListeners(listValueModel);
-		assertEquals(6, listValueModel.size());
-		assertEquals(6, synchList.size());
-	}
-
-	public void testGet() throws Exception {
-		SimpleListValueModel<Junk> listHolder = this.buildListHolder();
-		ListValueModel<Junk> listValueModel = new SortedListValueModelAdapter<Junk>(new ItemPropertyListValueModelAdapter<Junk>(listHolder, Displayable.DISPLAY_STRING_PROPERTY, Displayable.ICON_PROPERTY));
-		CoordinatedList<Junk> synchList = new CoordinatedList<Junk>(listValueModel);
-		this.verifyHasListeners(listValueModel);
-		assertEquals(this.bar, listValueModel.get(0));
-		assertEquals(this.bar, synchList.get(0));
-		this.bar.setName("zzz");
-		assertEquals(this.bar, listValueModel.get(5));
-		assertEquals(this.bar, synchList.get(5));
-		this.bar.setName("this.bar");
-	}
-
-	private void verifyHasNoListeners(ListValueModel<Junk> listValueModel) throws Exception {
-		assertTrue(((AbstractModel) listValueModel).hasNoListChangeListeners(ListValueModel.LIST_VALUES));
-	}
-
-	private void verifyHasListeners(ListValueModel<Junk> listValueModel) throws Exception {
-		assertTrue(((AbstractModel) listValueModel).hasAnyListChangeListeners(ListValueModel.LIST_VALUES));
-	}
-
-	private SimpleCollectionValueModel<Junk> buildCollectionHolder() {
-		return new SimpleCollectionValueModel<Junk>(this.buildCollection());
-	}
-
-	private Collection<Junk> buildCollection() {
-		Bag<Junk> bag = new HashBag<Junk>();
-		this.populateCollection(bag);
-		return bag;
-	}
-
-	private SimpleListValueModel<Junk> buildListHolder() {
-		return new SimpleListValueModel<Junk>(this.buildList());
-	}
-
-	private List<Junk> buildList() {
-		List<Junk> list = new ArrayList<Junk>();
-		this.populateCollection(list);
-		return list;
-	}
-
-	private void populateCollection(Collection<Junk> c) {
-		c.add(this.foo);
-		c.add(this.bar);
-		c.add(this.baz);
-		c.add(this.joo);
-		c.add(this.jar);
-		c.add(this.jaz);
-	}
-
-
-	// ********** Junk class **********
-
-	private class Junk extends AbstractModel implements Displayable {
-		private String name;
-		public Junk(String name) {
-			this.name = name;
-		}
-		public String displayString() {
-			return this.name;
-		}
-		public Icon icon() {
-			return null;
-		}
-		public int compareTo(Displayable o) {
-			return DEFAULT_COMPARATOR.compare(this, o);
-		}
-		public void setName(String name) {
-			Object old = this.name;
-			this.name = name;
-			this.firePropertyChanged(DISPLAY_STRING_PROPERTY, old, name);
-		}
-		@Override
-		public String toString() {
-			return "Junk(" + this.name + ")";
-		}
-	}
-
-}
diff --git a/jpa/tests/org.eclipse.jpt.utility.tests/src/org/eclipse/jpt/utility/tests/internal/model/value/ItemStateListValueModelAdapterTests.java b/jpa/tests/org.eclipse.jpt.utility.tests/src/org/eclipse/jpt/utility/tests/internal/model/value/ItemStateListValueModelAdapterTests.java
deleted file mode 100644
index 6285f39..0000000
--- a/jpa/tests/org.eclipse.jpt.utility.tests/src/org/eclipse/jpt/utility/tests/internal/model/value/ItemStateListValueModelAdapterTests.java
+++ /dev/null
@@ -1,302 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2008 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.utility.tests.internal.model.value;
-
-import java.util.ArrayList;
-import java.util.Collection;
-import java.util.Comparator;
-import java.util.Iterator;
-import java.util.List;
-import java.util.SortedSet;
-import java.util.TreeSet;
-import junit.framework.TestCase;
-import org.eclipse.jpt.utility.internal.Bag;
-import org.eclipse.jpt.utility.internal.HashBag;
-import org.eclipse.jpt.utility.internal.model.AbstractModel;
-import org.eclipse.jpt.utility.internal.model.value.ItemStateListValueModelAdapter;
-import org.eclipse.jpt.utility.internal.model.value.SimpleCollectionValueModel;
-import org.eclipse.jpt.utility.internal.model.value.SimpleListValueModel;
-import org.eclipse.jpt.utility.internal.model.value.SortedListValueModelAdapter;
-import org.eclipse.jpt.utility.model.value.ListValueModel;
-import org.eclipse.jpt.utility.tests.internal.TestTools;
-
-public class ItemStateListValueModelAdapterTests extends TestCase {
-	private Junk foo;
-	private Junk bar;
-	private Junk baz;
-	private Junk joo;
-	private Junk jar;
-	private Junk jaz;
-
-	private Junk tom;
-	private Junk dick;
-	private Junk harry;
-
-	public ItemStateListValueModelAdapterTests(String name) {
-		super(name);
-	}
-
-	@Override
-	protected void setUp() throws Exception {
-		super.setUp();
-		this.foo = new Junk("this.foo");
-		this.bar = new Junk("this.bar");
-		this.baz = new Junk("this.baz");
-		this.joo = new Junk("this.joo");
-		this.jar = new Junk("this.jar");
-		this.jaz = new Junk("this.jaz");
-
-		this.tom = new Junk("this.tom");
-		this.dick = new Junk("this.dick");
-		this.harry = new Junk("this.harry");
-	}
-
-	@Override
-	protected void tearDown() throws Exception {
-		TestTools.clear(this);
-		super.tearDown();
-	}
-
-	public void testCollectionSynchronization() {
-		SimpleCollectionValueModel<Junk> collectionHolder = this.buildCollectionHolder();
-		ListValueModel<Junk> listValueModel = new ItemStateListValueModelAdapter<Junk>(collectionHolder);
-		CoordinatedList<Junk> synchList = new CoordinatedList<Junk>(listValueModel);
-		assertEquals(6, synchList.size());
-		this.compare(listValueModel, synchList);
-
-		collectionHolder.add(this.tom);
-		collectionHolder.add(this.dick);
-		collectionHolder.add(this.harry);
-		assertEquals(9, synchList.size());
-		this.compare(listValueModel, synchList);
-
-		collectionHolder.remove(this.foo);
-		collectionHolder.remove(this.jar);
-		collectionHolder.remove(this.harry);
-		assertEquals(6, synchList.size());
-		this.compare(listValueModel, synchList);
-	}
-
-	public void testListSynchronization() {
-		SimpleListValueModel<Junk> listHolder = this.buildListHolder();
-		ListValueModel<Junk> listValueModel = new ItemStateListValueModelAdapter<Junk>(listHolder);
-		CoordinatedList<Junk> synchList = new CoordinatedList<Junk>(listValueModel);
-		assertEquals(6, synchList.size());
-		this.compare(listValueModel, synchList);
-
-		listHolder.add(6, this.tom);
-		listHolder.add(7, this.dick);
-		listHolder.add(8, this.harry);
-		assertEquals(9, synchList.size());
-		this.compare(listValueModel, synchList);
-
-		listHolder.remove(8);
-		listHolder.remove(0);
-		listHolder.remove(4);
-		assertEquals(6, synchList.size());
-		this.compare(listValueModel, synchList);
-	}
-
-	private void compare(ListValueModel<Junk> listValueModel, List<Junk> list) {
-		assertEquals(listValueModel.size(), list.size());
-		for (int i = 0; i < listValueModel.size(); i++) {
-			assertEquals(listValueModel.get(i), list.get(i));
-		}
-	}
-
-	public void testCollectionSort() {
-		this.verifyCollectionSort(null);
-	}
-
-	public void testListSort() {
-		this.verifyListSort(null);
-	}
-
-	public void testCustomCollectionSort() {
-		this.verifyCollectionSort(this.buildCustomComparator());
-	}
-
-	public void testCustomListSort() {
-		this.verifyListSort(this.buildCustomComparator());
-	}
-
-	private Comparator<Junk> buildCustomComparator() {
-		// sort with reverse order
-		return new Comparator<Junk>() {
-			public int compare(Junk o1, Junk o2) {
-				return o2.compareTo(o1);
-			}
-		};
-	}
-
-	private void verifyCollectionSort(Comparator<Junk> comparator) {
-		SimpleCollectionValueModel<Junk> collectionHolder = this.buildCollectionHolder();
-		ListValueModel<Junk> listValueModel = new ItemStateListValueModelAdapter<Junk>(new SortedListValueModelAdapter<Junk>(collectionHolder, comparator));
-		CoordinatedList<Junk> synchList = new CoordinatedList<Junk>(listValueModel);
-		assertEquals(6, synchList.size());
-		this.compareSort(listValueModel, synchList, comparator);
-
-		collectionHolder.add(this.tom);
-		collectionHolder.add(this.dick);
-		collectionHolder.add(this.harry);
-		assertEquals(9, synchList.size());
-		this.compareSort(listValueModel, synchList, comparator);
-
-		collectionHolder.remove(this.foo);
-		collectionHolder.remove(this.jar);
-		collectionHolder.remove(this.harry);
-		assertEquals(6, synchList.size());
-		this.compareSort(listValueModel, synchList, comparator);
-	}
-
-	private void verifyListSort(Comparator<Junk> comparator) {
-		SimpleListValueModel<Junk> listHolder = this.buildListHolder();
-		ListValueModel<Junk> listValueModel = new ItemStateListValueModelAdapter<Junk>(new SortedListValueModelAdapter<Junk>(listHolder, comparator));
-		CoordinatedList<Junk> synchList = new CoordinatedList<Junk>(listValueModel);
-		assertEquals(6, synchList.size());
-		this.compareSort(listValueModel, synchList, comparator);
-
-		listHolder.add(0, this.tom);
-		listHolder.add(0, this.dick);
-		listHolder.add(0, this.harry);
-		assertEquals(9, synchList.size());
-		this.compareSort(listValueModel, synchList, comparator);
-
-		listHolder.remove(8);
-		listHolder.remove(4);
-		listHolder.remove(0);
-		listHolder.remove(5);
-		assertEquals(5, synchList.size());
-		this.compareSort(listValueModel, synchList, comparator);
-	}
-
-	private void compareSort(ListValueModel<Junk> listValueModel, List<Junk> list, Comparator<Junk> comparator) {
-		SortedSet<Junk> ss = new TreeSet<Junk>(comparator);
-		for (int i = 0; i < listValueModel.size(); i++) {
-			ss.add(listValueModel.get(i));
-		}
-		assertEquals(ss.size(), list.size());
-		for (Iterator<Junk> stream1 = ss.iterator(), stream2 = list.iterator(); stream1.hasNext(); ) {
-			assertEquals(stream1.next(), stream2.next());
-		}
-	}
-
-	public void testHasListeners() throws Exception {
-		SimpleListValueModel<Junk> listHolder = this.buildListHolder();
-		assertFalse(listHolder.hasAnyListChangeListeners(ListValueModel.LIST_VALUES));
-		assertFalse(this.foo.hasAnyStateChangeListeners());
-		assertFalse(this.foo.hasAnyStateChangeListeners());
-		assertFalse(this.jaz.hasAnyStateChangeListeners());
-		assertFalse(this.jaz.hasAnyStateChangeListeners());
-
-		ListValueModel<Junk> listValueModel = new ItemStateListValueModelAdapter<Junk>(new SortedListValueModelAdapter<Junk>(listHolder));
-		assertFalse(listHolder.hasAnyListChangeListeners(ListValueModel.LIST_VALUES));
-		assertFalse(this.foo.hasAnyStateChangeListeners());
-		assertFalse(this.foo.hasAnyStateChangeListeners());
-		assertFalse(this.jaz.hasAnyStateChangeListeners());
-		assertFalse(this.jaz.hasAnyStateChangeListeners());
-		this.verifyHasNoListeners(listValueModel);
-
-		CoordinatedList<Junk> synchList = new CoordinatedList<Junk>(listValueModel);
-		assertTrue(listHolder.hasAnyListChangeListeners(ListValueModel.LIST_VALUES));
-		assertTrue(this.foo.hasAnyStateChangeListeners());
-		assertTrue(this.foo.hasAnyStateChangeListeners());
-		assertTrue(this.jaz.hasAnyStateChangeListeners());
-		assertTrue(this.jaz.hasAnyStateChangeListeners());
-		this.verifyHasListeners(listValueModel);
-
-		listValueModel.removeListChangeListener(ListValueModel.LIST_VALUES, synchList);
-		assertFalse(listHolder.hasAnyListChangeListeners(ListValueModel.LIST_VALUES));
-		assertFalse(this.foo.hasAnyStateChangeListeners());
-		assertFalse(this.foo.hasAnyStateChangeListeners());
-		assertFalse(this.jaz.hasAnyStateChangeListeners());
-		assertFalse(this.jaz.hasAnyStateChangeListeners());
-		this.verifyHasNoListeners(listValueModel);
-	}
-
-	public void testGetSize() throws Exception {
-		SimpleListValueModel<Junk> listHolder = this.buildListHolder();
-		ListValueModel<Junk> listValueModel = new ItemStateListValueModelAdapter<Junk>(new SortedListValueModelAdapter<Junk>(listHolder));
-		CoordinatedList<Junk> synchList = new CoordinatedList<Junk>(listValueModel);
-		this.verifyHasListeners(listValueModel);
-		assertEquals(6, listValueModel.size());
-		assertEquals(6, synchList.size());
-	}
-
-	public void testGet() throws Exception {
-		SimpleListValueModel<Junk> listHolder = this.buildListHolder();
-		ListValueModel<Junk> listValueModel = new SortedListValueModelAdapter<Junk>(new ItemStateListValueModelAdapter<Junk>(listHolder));
-		CoordinatedList<Junk> synchList = new CoordinatedList<Junk>(listValueModel);
-		this.verifyHasListeners(listValueModel);
-		assertEquals(this.bar, listValueModel.get(0));
-		assertEquals(this.bar, synchList.get(0));
-		this.bar.setName("zzz");
-		assertEquals(this.bar, listValueModel.get(5));
-		assertEquals(this.bar, synchList.get(5));
-		this.bar.setName("this.bar");
-	}
-
-	private void verifyHasNoListeners(ListValueModel<Junk> listValueModel) throws Exception {
-		assertTrue(((AbstractModel) listValueModel).hasNoListChangeListeners(ListValueModel.LIST_VALUES));
-	}
-
-	private void verifyHasListeners(ListValueModel<Junk> listValueModel) throws Exception {
-		assertTrue(((AbstractModel) listValueModel).hasAnyListChangeListeners(ListValueModel.LIST_VALUES));
-	}
-
-	private SimpleCollectionValueModel<Junk> buildCollectionHolder() {
-		return new SimpleCollectionValueModel<Junk>(this.buildCollection());
-	}
-
-	private Collection<Junk> buildCollection() {
-		Bag<Junk> bag = new HashBag<Junk>();
-		this.populateCollection(bag);
-		return bag;
-	}
-
-	private SimpleListValueModel<Junk> buildListHolder() {
-		return new SimpleListValueModel<Junk>(this.buildList());
-	}
-
-	private List<Junk> buildList() {
-		List<Junk> list = new ArrayList<Junk>();
-		this.populateCollection(list);
-		return list;
-	}
-
-	private void populateCollection(Collection<Junk> c) {
-		c.add(this.foo);
-		c.add(this.bar);
-		c.add(this.baz);
-		c.add(this.joo);
-		c.add(this.jar);
-		c.add(this.jaz);
-	}
-
-	// ********** Junk class **********
-	private class Junk extends AbstractModel implements Comparable<Junk> {
-		private String name;
-		public Junk(String name) {
-			this.name = name;
-		}
-		public void setName(String name) {
-			this.name = name;
-			this.fireStateChanged();
-		}
-		public int compareTo(Junk j) {
-			return this.name.compareTo(j.name);
-		}
-		@Override
-		public String toString() {
-			return "Junk(" + this.name + ")";
-		}
-	}
-
-}
diff --git a/jpa/tests/org.eclipse.jpt.utility.tests/src/org/eclipse/jpt/utility/tests/internal/model/value/JptUtilityModelValueTests.java b/jpa/tests/org.eclipse.jpt.utility.tests/src/org/eclipse/jpt/utility/tests/internal/model/value/JptUtilityModelValueTests.java
deleted file mode 100644
index 7e1c715..0000000
--- a/jpa/tests/org.eclipse.jpt.utility.tests/src/org/eclipse/jpt/utility/tests/internal/model/value/JptUtilityModelValueTests.java
+++ /dev/null
@@ -1,74 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2008 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.utility.tests.internal.model.value;
-
-import junit.framework.Test;
-import junit.framework.TestSuite;
-import org.eclipse.jpt.utility.tests.internal.model.value.prefs.JptUtilityModelValuePrefsTests;
-import org.eclipse.jpt.utility.tests.internal.model.value.swing.JptUtilityModelValueSwingTests;
-
-public class JptUtilityModelValueTests {
-	
-	public static Test suite() {
-		TestSuite suite = new TestSuite(JptUtilityModelValueTests.class.getPackage().getName());
-
-		suite.addTest(JptUtilityModelValuePrefsTests.suite());
-		suite.addTest(JptUtilityModelValueSwingTests.suite());
-		
-		suite.addTestSuite(BufferedWritablePropertyValueModelTests.class);
-		suite.addTestSuite(CachingTransformationPropertyValueModelTests.class);
-		suite.addTestSuite(CachingTransformationWritablePropertyValueModelTests.class);
-		suite.addTestSuite(CollectionAspectAdapterTests.class);
-		suite.addTestSuite(CollectionListValueModelAdapterTests.class);
-		suite.addTestSuite(CollectionPropertyValueModelAdapterTests.class);
-		suite.addTestSuite(CompositeCollectionValueModelTests.class);
-		suite.addTestSuite(CompositeListValueModelTests.class);
-		suite.addTestSuite(ExtendedListValueModelWrapperTests.class);
-		suite.addTestSuite(FilteringCollectionValueModelTests.class);
-		suite.addTestSuite(FilteringPropertyValueModelTests.class);
-		suite.addTestSuite(ItemCollectionListValueModelAdapterTests.class);
-		suite.addTestSuite(ItemListListValueModelAdapterTests.class);
-		suite.addTestSuite(ItemPropertyListValueModelAdapterTests.class);
-		suite.addTestSuite(ItemStateListValueModelAdapterTests.class);
-		suite.addTestSuite(ListAspectAdapterTests.class);
-		suite.addTestSuite(ListCollectionValueModelAdapterTests.class);
-		suite.addTestSuite(ListCuratorTests.class);
-		suite.addTestSuite(NullCollectionValueModelTests.class);
-		suite.addTestSuite(NullListValueModelTests.class);
-		suite.addTestSuite(NullPropertyValueModelTests.class);
-		suite.addTestSuite(PropertyAspectAdapterTests.class);
-		suite.addTestSuite(PropertyCollectionValueModelAdapterTests.class);
-		suite.addTestSuite(PropertyListValueModelAdapterTests.class);
-		suite.addTestSuite(ReadOnlyWritablePropertyValueModelWrapperTests.class);
-		suite.addTestSuite(StaticCollectionValueModelTests.class);
-		suite.addTestSuite(StaticListValueModelTests.class);
-		suite.addTestSuite(SimpleCollectionValueModelTests.class);
-		suite.addTestSuite(SimpleListValueModelTests.class);
-		suite.addTestSuite(SimplePropertyValueModelTests.class);
-		suite.addTestSuite(SortedListValueModelAdapterTests.class);
-		suite.addTestSuite(StaticValueModelTests.class);
-		suite.addTestSuite(TransformationListValueModelAdapterTests.class);
-		suite.addTestSuite(TransformationListValueModelAdapterTests.TransformerTests.class);
-		suite.addTestSuite(TransformationPropertyValueModelTests.class);
-		suite.addTestSuite(TreeAspectAdapterTests.class);
-		suite.addTestSuite(ValueCollectionAdapterTests.class);
-		suite.addTestSuite(ValueListAdapterTests.class);
-		suite.addTestSuite(ValuePropertyAdapterTests.class);
-		suite.addTestSuite(ValueStateAdapterTests.class);
-	
-		return suite;
-	}
-	
-	private JptUtilityModelValueTests() {
-		super();
-		throw new UnsupportedOperationException();
-	}
-	
-}
diff --git a/jpa/tests/org.eclipse.jpt.utility.tests/src/org/eclipse/jpt/utility/tests/internal/model/value/ListAspectAdapterTests.java b/jpa/tests/org.eclipse.jpt.utility.tests/src/org/eclipse/jpt/utility/tests/internal/model/value/ListAspectAdapterTests.java
deleted file mode 100644
index d05c360..0000000
--- a/jpa/tests/org.eclipse.jpt.utility.tests/src/org/eclipse/jpt/utility/tests/internal/model/value/ListAspectAdapterTests.java
+++ /dev/null
@@ -1,473 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2008 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.utility.tests.internal.model.value;
-
-import java.util.ArrayList;
-import java.util.List;
-import java.util.ListIterator;
-import junit.framework.TestCase;
-import org.eclipse.jpt.utility.internal.CollectionTools;
-import org.eclipse.jpt.utility.internal.iterators.ReadOnlyListIterator;
-import org.eclipse.jpt.utility.internal.model.AbstractModel;
-import org.eclipse.jpt.utility.internal.model.value.ListAspectAdapter;
-import org.eclipse.jpt.utility.internal.model.value.SimplePropertyValueModel;
-import org.eclipse.jpt.utility.model.event.ListChangeEvent;
-import org.eclipse.jpt.utility.model.listener.ListChangeListener;
-import org.eclipse.jpt.utility.model.value.ListValueModel;
-import org.eclipse.jpt.utility.model.value.PropertyValueModel;
-import org.eclipse.jpt.utility.model.value.WritablePropertyValueModel;
-import org.eclipse.jpt.utility.tests.internal.TestTools;
-
-public class ListAspectAdapterTests extends TestCase {
-	private TestSubject subject1;
-	private WritablePropertyValueModel<TestSubject> subjectHolder1;
-	private LocalListAspectAdapter aa1;
-	private ListChangeEvent event1;
-	private ListChangeListener listener1;
-
-	private TestSubject subject2;
-
-	public ListAspectAdapterTests(String name) {
-		super(name);
-	}
-
-	@Override
-	protected void setUp() throws Exception {
-		super.setUp();
-		this.subject1 = new TestSubject();
-		this.subject1.addNames(this.subject1Names());
-		this.subject1.addDescriptions(this.subject1Descriptions());
-		this.subjectHolder1 = new SimplePropertyValueModel<TestSubject>(this.subject1);
-		this.aa1 = this.buildAspectAdapter(this.subjectHolder1);
-		this.listener1 = this.buildValueChangeListener1();
-		this.aa1.addListChangeListener(ListValueModel.LIST_VALUES, this.listener1);
-		this.event1 = null;
-
-		this.subject2 = new TestSubject();
-		this.subject2.addNames(this.subject2Names());
-		this.subject2.addDescriptions(this.subject2Descriptions());
-	}
-
-	private List<String> subject1Names() {
-		List<String> result = new ArrayList<String>();
-		result.add("foo");
-		result.add("bar");
-		result.add("baz");
-		result.add("bam");
-		return result;
-	}
-
-	private List<String> subject1Descriptions() {
-		List<String> result = new ArrayList<String>();
-		result.add("this.subject1 description1");
-		result.add("this.subject1 description2");
-		return result;
-	}
-
-	private List<String> subject2Names() {
-		List<String> result = new ArrayList<String>();
-		result.add("joo");
-		result.add("jar");
-		result.add("jaz");
-		result.add("jam");
-		return result;
-	}
-
-	private List<String> subject2Descriptions() {
-		List<String> result = new ArrayList<String>();
-		result.add("this.subject2 description1");
-		result.add("this.subject2 description2");
-		return result;
-	}
-
-	private LocalListAspectAdapter buildAspectAdapter(PropertyValueModel<TestSubject> subjectHolder) {
-		return new LocalListAspectAdapter(subjectHolder);
-	}
-
-	private ListChangeListener buildValueChangeListener1() {
-		return new ListChangeListener() {
-			public void itemsAdded(ListChangeEvent e) {
-				ListAspectAdapterTests.this.value1Changed(e);
-			}
-			public void itemsRemoved(ListChangeEvent e) {
-				ListAspectAdapterTests.this.value1Changed(e);
-			}
-			public void itemsReplaced(ListChangeEvent e) {
-				ListAspectAdapterTests.this.value1Changed(e);
-			}
-			public void itemsMoved(ListChangeEvent e) {
-				ListAspectAdapterTests.this.value1Changed(e);
-			}
-			public void listCleared(ListChangeEvent e) {
-				ListAspectAdapterTests.this.value1Changed(e);
-			}
-			public void listChanged(ListChangeEvent e) {
-				ListAspectAdapterTests.this.value1Changed(e);
-			}
-		};
-	}
-
-	void value1Changed(ListChangeEvent e) {
-		this.event1 = e;
-	}
-
-	@Override
-	protected void tearDown() throws Exception {
-		TestTools.clear(this);
-		super.tearDown();
-	}
-
-	public void testSubjectHolder() {
-		assertEquals(this.subject1Names(), CollectionTools.list(this.aa1.listIterator()));
-		assertNull(this.event1);
-
-		this.subjectHolder1.setValue(this.subject2);
-		assertNotNull(this.event1);
-		assertEquals(this.aa1, this.event1.getSource());
-		assertEquals(ListValueModel.LIST_VALUES, this.event1.getListName());
-		assertEquals(-1, this.event1.getIndex());
-		assertFalse(this.event1.items().hasNext());
-		assertEquals(this.subject2Names(), CollectionTools.list(this.aa1.listIterator()));
-		
-		this.event1 = null;
-		this.subjectHolder1.setValue(null);
-		assertNotNull(this.event1);
-		assertEquals(this.aa1, this.event1.getSource());
-		assertEquals(ListValueModel.LIST_VALUES, this.event1.getListName());
-		assertEquals(-1, this.event1.getIndex());
-		assertFalse(this.event1.items().hasNext());
-		assertFalse(this.aa1.iterator().hasNext());
-		
-		this.event1 = null;
-		this.subjectHolder1.setValue(this.subject1);
-		assertNotNull(this.event1);
-		assertEquals(this.aa1, this.event1.getSource());
-		assertEquals(ListValueModel.LIST_VALUES, this.event1.getListName());
-		assertEquals(-1, this.event1.getIndex());
-		assertFalse(this.event1.items().hasNext());
-		assertEquals(this.subject1Names(), CollectionTools.list(this.aa1.listIterator()));
-	}
-
-	public void testAdd() {
-		assertEquals(this.subject1Names(), CollectionTools.list(this.aa1.listIterator()));
-		assertNull(this.event1);
-
-		this.subject1.addName("jam");
-		assertNotNull(this.event1);
-		assertEquals(this.aa1, this.event1.getSource());
-		assertEquals(ListValueModel.LIST_VALUES, this.event1.getListName());
-		assertEquals(this.subject1Names().size(), this.event1.getIndex());
-		assertEquals("jam", this.event1.items().next());
-		List<String> namesPlus = this.subject1Names();
-		namesPlus.add("jam");
-		assertEquals(namesPlus, CollectionTools.list(this.aa1.listIterator()));
-
-		this.event1 = null;
-		this.aa1.add(2, "jaz");
-		assertNotNull(this.event1);
-		assertEquals(this.aa1, this.event1.getSource());
-		assertEquals(ListValueModel.LIST_VALUES, this.event1.getListName());
-		assertEquals(2, this.event1.getIndex());
-		assertEquals("jaz", this.event1.items().next());
-		namesPlus.add(2, "jaz");
-		assertEquals(namesPlus, CollectionTools.list(this.aa1.listIterator()));
-	}
-
-	public void testDefaultAdd() {
-		assertEquals(this.subject1Names(), CollectionTools.list(this.aa1.listIterator()));
-		assertNull(this.event1);
-
-		List<String> items = new ArrayList<String>();
-		items.add("joo");
-		items.add("jar");
-		items.add("jaz");
-		items.add("jam");
-
-		this.event1 = null;
-		this.aa1.addAll(2, items);
-		assertNotNull(this.event1);
-		assertEquals(this.aa1, this.event1.getSource());
-		assertEquals(ListValueModel.LIST_VALUES, this.event1.getListName());
-		assertEquals(5, this.event1.getIndex());		// only the last "add" event will still be there
-		assertEquals("jam", this.event1.items().next());
-		List<String> namesPlus = this.subject1Names();
-		namesPlus.addAll(2, items);
-		assertEquals(namesPlus, CollectionTools.list(this.aa1.listIterator()));
-	}
-
-	public void testRemove() {
-		assertEquals(this.subject1Names(), CollectionTools.list(this.aa1.listIterator()));
-		assertNull(this.event1);
-
-		String removedName = this.subject1.removeName(0);	// should be "foo"
-		assertNotNull(this.event1);
-		assertEquals(this.aa1, this.event1.getSource());
-		assertEquals(ListValueModel.LIST_VALUES, this.event1.getListName());
-		assertEquals(0, this.event1.getIndex());
-		assertEquals(removedName, this.event1.items().next());
-		List<String> namesMinus = this.subject1Names();
-		namesMinus.remove(0);
-		assertEquals(namesMinus, CollectionTools.list(this.aa1.listIterator()));
-
-		this.event1 = null;
-		Object removedItem = this.aa1.remove(0);	
-		assertNotNull(this.event1);
-		assertEquals(this.aa1, this.event1.getSource());
-		assertEquals(ListValueModel.LIST_VALUES, this.event1.getListName());
-		assertEquals(0, this.event1.getIndex());
-		assertEquals(removedItem, this.event1.items().next());
-		namesMinus.remove(0);
-		assertEquals(namesMinus, CollectionTools.list(this.aa1.listIterator()));
-	}
-
-	public void testDefaultLength() {
-		assertEquals(this.subject1Names(), CollectionTools.list(this.aa1.listIterator()));
-		assertNull(this.event1);
-
-		List<String> items = new ArrayList<String>();
-		items.add("bar");
-		items.add("baz");
-
-		this.event1 = null;
-		this.aa1.remove(1, 2);
-		assertNotNull(this.event1);
-		assertEquals(this.aa1, this.event1.getSource());
-		assertEquals(ListValueModel.LIST_VALUES, this.event1.getListName());
-		assertEquals(1, this.event1.getIndex());		// only the last "remove" event will still be there
-		assertEquals("baz", this.event1.items().next());
-		List<String> namesPlus = this.subject1Names();
-		namesPlus.remove(1);
-		namesPlus.remove(1);
-		assertEquals(namesPlus, CollectionTools.list(this.aa1.listIterator()));
-	}
-
-	public void testReplace() {
-		assertEquals(this.subject1Names(), CollectionTools.list(this.aa1.listIterator()));
-		assertNull(this.event1);
-
-		String replacedName = this.subject1.setName(0, "jelly");	// should be "foo"
-		assertNotNull(this.event1);
-		assertEquals(this.aa1, this.event1.getSource());
-		assertEquals(ListValueModel.LIST_VALUES, this.event1.getListName());
-		assertEquals(0, this.event1.getIndex());
-		assertEquals("jelly", this.event1.items().next());
-		assertEquals(replacedName, this.event1.replacedItems().next());
-		List<String> namesChanged = this.subject1Names();
-		namesChanged.set(0, "jelly");
-		assertEquals(namesChanged, CollectionTools.list(this.aa1.listIterator()));
-
-		this.event1 = null;
-		replacedName = this.subject1.setName(1, "roll");	// should be "bar"
-		assertNotNull(this.event1);
-		assertEquals(this.aa1, this.event1.getSource());
-		assertEquals(ListValueModel.LIST_VALUES, this.event1.getListName());
-		assertEquals(1, this.event1.getIndex());
-		assertEquals("roll", this.event1.items().next());
-		assertEquals(replacedName, this.event1.replacedItems().next());
-		namesChanged = this.subject1Names();
-		namesChanged.set(0, "jelly");
-		namesChanged.set(1, "roll");
-		assertEquals(namesChanged, CollectionTools.list(this.aa1.listIterator()));
-	}
-
-	public void testListChange() {
-		assertEquals(this.subject1Names(), CollectionTools.list(this.aa1.listIterator()));
-		assertNull(this.event1);
-
-		this.subject1.addTwoNames("jam", "jaz");
-		assertNotNull(this.event1);
-		assertEquals(this.aa1, this.event1.getSource());
-		assertEquals(ListValueModel.LIST_VALUES, this.event1.getListName());
-		assertEquals(-1, this.event1.getIndex());
-		assertFalse(this.event1.items().hasNext());
-		List<String> namesPlus2 = this.subject1Names();
-		namesPlus2.add(0, "jaz");
-		namesPlus2.add(0, "jam");
-		assertEquals(namesPlus2, CollectionTools.list(this.aa1.listIterator()));
-	}
-
-	public void testIterator() {
-		assertEquals(this.subject1Names(), CollectionTools.list(this.subject1.names()));
-		assertEquals(this.subject1Names(), CollectionTools.list(this.aa1.listIterator()));
-	}
-
-	public void testGet() {
-		assertEquals(this.subject1Names().get(0), this.subject1.getName(0));
-		assertEquals(this.subject1Names().get(0), this.aa1.get(0));
-	}
-
-	public void testSize() {
-		assertEquals(this.subject1Names().size(), CollectionTools.size(this.subject1.names()));
-		assertEquals(this.subject1Names().size(), CollectionTools.size(this.aa1.listIterator()));
-	}
-
-	public void testHasListeners() {
-		assertTrue(this.aa1.hasAnyListChangeListeners(ListValueModel.LIST_VALUES));
-		assertTrue(this.subject1.hasAnyListChangeListeners(TestSubject.NAMES_LIST));
-		this.aa1.removeListChangeListener(ListValueModel.LIST_VALUES, this.listener1);
-		assertFalse(this.subject1.hasAnyListChangeListeners(TestSubject.NAMES_LIST));
-		assertFalse(this.aa1.hasAnyListChangeListeners(ListValueModel.LIST_VALUES));
-
-		ListChangeListener listener2 = this.buildValueChangeListener1();
-		this.aa1.addListChangeListener(listener2);
-		assertTrue(this.aa1.hasAnyListChangeListeners(ListValueModel.LIST_VALUES));
-		assertTrue(this.subject1.hasAnyListChangeListeners(TestSubject.NAMES_LIST));
-		this.aa1.removeListChangeListener(listener2);
-		assertFalse(this.subject1.hasAnyListChangeListeners(TestSubject.NAMES_LIST));
-		assertFalse(this.aa1.hasAnyListChangeListeners(ListValueModel.LIST_VALUES));
-	}
-
-
-	// ********** inner class **********
-
-	private class TestSubject extends AbstractModel {
-		private List<String> names;
-		public static final String NAMES_LIST = "names";
-		private List<String> descriptions;
-		public static final String DESCRIPTIONS_LIST = "descriptions";
-	
-		public TestSubject() {
-			this.names = new ArrayList<String>();
-			this.descriptions = new ArrayList<String>();
-		}
-		public ListIterator<String> names() {
-			return new ReadOnlyListIterator<String>(this.names);
-		}
-		public String getName(int index) {
-			return this.names.get(index);
-		}
-		public void addName(int index, String name) {
-			this.names.add(index, name);
-			this.fireItemAdded(NAMES_LIST, index, name);
-		}
-		public void addName(String name) {
-			this.addName(this.names.size(), name);
-		}
-		public void addNames(ListIterator<String> newNames) {
-			while (newNames.hasNext()) {
-				this.addName(newNames.next());
-			}
-		}
-		public void addNames(List<String> newNames) {
-			this.addNames(newNames.listIterator());
-		}
-		public void addTwoNames(String name1, String name2) {
-			this.names.add(0, name2);
-			this.names.add(0, name1);
-			this.fireListChanged(NAMES_LIST);
-		}
-		public String removeName(int index) {
-			String removedName = this.names.remove(index);
-			this.fireItemRemoved(NAMES_LIST, index, removedName);
-			return removedName;
-		}
-		public String setName(int index, String name) {
-			String replacedName = this.names.set(index, name);
-			this.fireItemReplaced(NAMES_LIST, index, name, replacedName);
-			return replacedName;
-		}
-		public ListIterator<String> descriptions() {
-			return new ReadOnlyListIterator<String>(this.descriptions);
-		}
-		public String getDescription(int index) {
-			return this.descriptions.get(index);
-		}
-		public void addDescription(int index, String description) {
-			this.descriptions.add(index, description);
-			this.fireItemAdded(DESCRIPTIONS_LIST, index, description);
-		}
-		public void addDescription(String description) {
-			this.addDescription(this.descriptions.size(), description);
-		}
-		public void addDescriptions(ListIterator<String> newDescriptions) {
-			while (newDescriptions.hasNext()) {
-				this.addDescription(newDescriptions.next());
-			}
-		}
-		public void addDescriptions(List<String> newDescriptions) {
-			this.addDescriptions(newDescriptions.listIterator());
-		}
-		public String removeDescription(int index) {
-			String removedDescription = this.descriptions.remove(index);
-			this.fireItemRemoved(DESCRIPTIONS_LIST, index, removedDescription);
-			return removedDescription;
-		}
-		public String setDescription(int index, String description) {
-			String replacedDescription = this.descriptions.set(index, description);
-			this.fireItemReplaced(DESCRIPTIONS_LIST, index, description, replacedDescription);
-			return replacedDescription;
-		}
-	}
-
-
-	// this is not a typical aspect adapter - the value is determined by the aspect name
-	private class LocalListAspectAdapter extends ListAspectAdapter<TestSubject, String> {
-
-		LocalListAspectAdapter(PropertyValueModel<TestSubject> subjectHolder) {
-			super(subjectHolder, TestSubject.NAMES_LIST);
-		}
-
-		@Override
-		protected ListIterator<String> listIterator_() {
-			if (this.listNames[0] == TestSubject.NAMES_LIST) {
-				return this.subject.names();
-			} else if (this.listNames[0] == TestSubject.DESCRIPTIONS_LIST) {
-				return this.subject.descriptions();
-			} else {
-				throw new IllegalStateException("invalid aspect name: " + this.listNames[0]);
-			}
-		}
-
-		public void add(int index, Object item) {
-			if (this.listNames[0] == TestSubject.NAMES_LIST) {
-				this.subject.addName(index, (String) item);
-			} else if (this.listNames[0] == TestSubject.DESCRIPTIONS_LIST) {
-				this.subject.addDescription(index, (String) item);
-			} else {
-				throw new IllegalStateException("invalid aspect name: " + this.listNames[0]);
-			}
-		}
-
-		public void addAll(int index, List<String> items) {
-			for (int i = 0; i < items.size(); i++) {
-				this.add(index + i, items.get(i));
-			}
-		}
-
-		public String remove(int index) {
-			if (this.listNames[0] == TestSubject.NAMES_LIST) {
-				return this.subject.removeName(index);
-			} else if (this.listNames[0] == TestSubject.DESCRIPTIONS_LIST) {
-				return this.subject.removeDescription(index);
-			} else {
-				throw new IllegalStateException("invalid aspect name: " + this.listNames[0]);
-			}
-		}
-
-		public List<String> remove(int index, int length) {
-			List<String> removedItems = new ArrayList<String>(length);
-			for (int i = 0; i < length; i++) {
-				removedItems.add(this.remove(index));
-			}
-			return removedItems;
-		}
-
-		public Object replace(int index, Object item) {
-			if (this.listNames[0] == TestSubject.NAMES_LIST) {
-				return this.subject.setName(index, (String) item);
-			} else if (this.listNames[0] == TestSubject.DESCRIPTIONS_LIST) {
-				return this.subject.setDescription(index, (String) item);
-			} else {
-				throw new IllegalStateException("invalid aspect name: " + this.listNames[0]);
-			}
-		}
-	}
-
-}
diff --git a/jpa/tests/org.eclipse.jpt.utility.tests/src/org/eclipse/jpt/utility/tests/internal/model/value/ListCollectionValueModelAdapterTests.java b/jpa/tests/org.eclipse.jpt.utility.tests/src/org/eclipse/jpt/utility/tests/internal/model/value/ListCollectionValueModelAdapterTests.java
deleted file mode 100644
index 2801585..0000000
--- a/jpa/tests/org.eclipse.jpt.utility.tests/src/org/eclipse/jpt/utility/tests/internal/model/value/ListCollectionValueModelAdapterTests.java
+++ /dev/null
@@ -1,271 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2008 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.utility.tests.internal.model.value;
-
-import java.util.ArrayList;
-import java.util.Collection;
-import java.util.List;
-import javax.swing.JList;
-import junit.framework.TestCase;
-import org.eclipse.jpt.utility.internal.Bag;
-import org.eclipse.jpt.utility.internal.CollectionTools;
-import org.eclipse.jpt.utility.internal.HashBag;
-import org.eclipse.jpt.utility.internal.model.AbstractModel;
-import org.eclipse.jpt.utility.internal.model.value.ListCollectionValueModelAdapter;
-import org.eclipse.jpt.utility.internal.model.value.SimpleListValueModel;
-import org.eclipse.jpt.utility.internal.model.value.swing.ListModelAdapter;
-import org.eclipse.jpt.utility.model.event.CollectionChangeEvent;
-import org.eclipse.jpt.utility.model.listener.CollectionChangeListener;
-import org.eclipse.jpt.utility.model.value.CollectionValueModel;
-import org.eclipse.jpt.utility.tests.internal.TestTools;
-
-public class ListCollectionValueModelAdapterTests extends TestCase {
-	CollectionValueModel<String> adapter;
-	private SimpleListValueModel<String> wrappedListHolder;
-	private List<String> wrappedList;
-
-	public ListCollectionValueModelAdapterTests(String name) {
-		super(name);
-	}
-
-	@Override
-	protected void setUp() throws Exception {
-		super.setUp();
-		this.wrappedList = new ArrayList<String>();
-		this.wrappedListHolder = new SimpleListValueModel<String>(this.wrappedList);
-		this.adapter = new ListCollectionValueModelAdapter<String>(this.wrappedListHolder);
-	}
-
-	private Collection<String> wrappedCollection() {
-		return CollectionTools.collection(this.wrappedList.iterator());
-	}
-
-	@Override
-	protected void tearDown() throws Exception {
-		TestTools.clear(this);
-		super.tearDown();
-	}
-
-	public void testIterator() {
-		this.adapter.addCollectionChangeListener(CollectionValueModel.VALUES, new TestListener() {
-			@Override
-			public void itemsAdded(CollectionChangeEvent e) {
-				// override failure
-			}
-		});
-		this.wrappedListHolder.add(0, "foo");
-		this.wrappedListHolder.add(1, "bar");
-		this.wrappedListHolder.add(2, "baz");
-		Collection<String> adapterCollection = CollectionTools.collection(this.adapter.iterator());
-		assertEquals(3, adapterCollection.size());
-		assertEquals(this.wrappedCollection(), adapterCollection);
-	}
-
-	public void testStaleValues() {
-		CollectionChangeListener listener = new TestListener() {
-			@Override
-			public void itemsAdded(CollectionChangeEvent e) {/* OK */}
-		};
-		this.adapter.addCollectionChangeListener(CollectionValueModel.VALUES, listener);
-		this.wrappedListHolder.add(0, "foo");
-		this.wrappedListHolder.add(1, "bar");
-		this.wrappedListHolder.add(2, "baz");
-		Collection<String> adapterCollection = CollectionTools.collection(this.adapter.iterator());
-		assertEquals(3, adapterCollection.size());
-		assertEquals(this.wrappedCollection(), adapterCollection);
-
-		this.adapter.removeCollectionChangeListener(CollectionValueModel.VALUES, listener);
-		adapterCollection = CollectionTools.collection(this.adapter.iterator());
-		assertEquals(0, adapterCollection.size());
-		assertEquals(new HashBag<String>(), adapterCollection);
-
-		this.adapter.addCollectionChangeListener(CollectionValueModel.VALUES, listener);
-		adapterCollection = CollectionTools.collection(this.adapter.iterator());
-		assertEquals(3, adapterCollection.size());
-		assertEquals(this.wrappedCollection(), adapterCollection);
-	}
-
-	public void testAdd() {
-		Bag<String> synchCollection = new CoordinatedBag<String>(this.adapter);
-		List<String> synchList = new CoordinatedList<String>(this.wrappedListHolder);
-		this.wrappedListHolder.add(0, "foo");
-		assertTrue(this.wrappedList.contains("foo"));
-		this.wrappedListHolder.add(1, "bar");
-		this.wrappedListHolder.add(2, "baz");
-		this.wrappedListHolder.add(3, "joo");
-		this.wrappedListHolder.add(4, "jar");
-		this.wrappedListHolder.add(5, "jaz");
-		assertEquals(6, this.wrappedList.size());
-
-		Collection<String> adapterCollection = CollectionTools.collection(this.adapter.iterator());
-		assertEquals(this.wrappedCollection(), adapterCollection);
-		assertEquals(this.wrappedCollection(), CollectionTools.collection(synchList.iterator()));
-		assertEquals(this.wrappedCollection(), synchCollection);
-	}
-
-	public void testRemove() {
-		Bag<String> synchCollection = new CoordinatedBag<String>(this.adapter);
-		List<String> synchList = new CoordinatedList<String>(this.wrappedListHolder);
-		this.wrappedListHolder.add(0, "foo");
-		this.wrappedListHolder.add(1, "bar");
-		this.wrappedListHolder.add(2, "baz");
-		this.wrappedListHolder.add(3, "joo");
-		this.wrappedListHolder.add(4, "jar");
-		this.wrappedListHolder.add(5, "jaz");
-		assertEquals("jaz", this.wrappedListHolder.remove(5));
-		assertFalse(this.wrappedList.contains("jaz"));
-		assertEquals("foo", this.wrappedListHolder.remove(0));
-		assertFalse(this.wrappedList.contains("foo"));
-		assertEquals(4, this.wrappedList.size());
-
-		Collection<String> adapterCollection = CollectionTools.collection(this.adapter.iterator());
-		assertEquals(this.wrappedCollection(), adapterCollection);
-		assertEquals(this.wrappedCollection(), CollectionTools.collection(synchList.iterator()));
-		assertEquals(this.wrappedCollection(), synchCollection);
-	}
-
-	public void testListSynch() {
-		this.adapter.addCollectionChangeListener(CollectionValueModel.VALUES, new TestListener() {
-			@Override
-			public void itemsAdded(CollectionChangeEvent e) {
-				// override failure
-			}
-			@Override
-			public void itemsRemoved(CollectionChangeEvent e) {
-				// override failure
-			}
-		});
-		this.wrappedListHolder.add(0, "foo");
-		this.wrappedListHolder.add(1, "bar");
-		this.wrappedListHolder.add(2, "baz");
-		this.wrappedListHolder.add(3, "joo");
-		this.wrappedListHolder.add(4, "jar");
-		this.wrappedListHolder.add(5, "jaz");
-		this.wrappedListHolder.remove(5);
-		assertFalse(this.wrappedList.contains("jaz"));
-		this.wrappedListHolder.remove(0);
-		assertFalse(this.wrappedList.contains("foo"));
-		assertEquals(4, this.wrappedList.size());
-
-		Collection<String> adapterCollection = CollectionTools.collection(this.adapter.iterator());
-		assertEquals(this.wrappedCollection(), adapterCollection);
-	}
-
-	public void testReplace() {
-		this.adapter.addCollectionChangeListener(CollectionValueModel.VALUES, new TestListener() {
-			@Override
-			public void itemsAdded(CollectionChangeEvent e) {
-				// override failure
-			}
-			@Override
-			public void itemsRemoved(CollectionChangeEvent e) {
-				// override failure
-			}
-		});
-		this.wrappedListHolder.add(0, "foo");
-		this.wrappedListHolder.add(1, "bar");
-		this.wrappedListHolder.add(2, "baz");
-		Collection<String> adapterCollection = CollectionTools.collection(this.adapter.iterator());
-		assertEquals(3, adapterCollection.size());
-		this.adapter.addCollectionChangeListener(CollectionValueModel.VALUES, new TestListener() {
-			@Override
-			public void itemsRemoved(CollectionChangeEvent e) {
-				assertEquals("foo", e.items().next());
-				assertFalse(CollectionTools.contains(ListCollectionValueModelAdapterTests.this.adapter.iterator(), "joo"));
-				assertEquals(2, ListCollectionValueModelAdapterTests.this.adapter.size());
-			}
-			@Override
-			public void itemsAdded(CollectionChangeEvent e) {
-				assertEquals("joo", e.items().next());
-				assertEquals(3, ListCollectionValueModelAdapterTests.this.adapter.size());
-			}
-		});
-		this.wrappedListHolder.set(0, "joo");
-		adapterCollection = CollectionTools.collection(this.adapter.iterator());
-		assertEquals(3, adapterCollection.size());
-		assertEquals(this.wrappedCollection(), adapterCollection);
-	}
-
-	public void testHasListeners() {
-		assertFalse(((AbstractModel) this.adapter).hasAnyCollectionChangeListeners(CollectionValueModel.VALUES));
-		CoordinatedBag<String> synchCollection = new CoordinatedBag<String>(this.adapter);
-		assertTrue(((AbstractModel) this.adapter).hasAnyCollectionChangeListeners(CollectionValueModel.VALUES));
-		this.adapter.removeCollectionChangeListener(CollectionValueModel.VALUES, synchCollection);
-		assertFalse(((AbstractModel) this.adapter).hasAnyCollectionChangeListeners(CollectionValueModel.VALUES));
-		this.adapter.addCollectionChangeListener(synchCollection);
-		assertTrue(((AbstractModel) this.adapter).hasAnyCollectionChangeListeners(CollectionValueModel.VALUES));
-		this.adapter.removeCollectionChangeListener(synchCollection);
-		assertFalse(((AbstractModel) this.adapter).hasAnyCollectionChangeListeners(CollectionValueModel.VALUES));
-	}
-	
-	public void testListChangedToEmpty() {
-		this.adapter.addCollectionChangeListener(CollectionValueModel.VALUES, new TestListener() {
-			@Override
-			public void itemsAdded(CollectionChangeEvent e) {/* OK */}
-			@Override
-			public void itemsRemoved(CollectionChangeEvent e) {/* OK */}
-		});
-		this.wrappedListHolder.add(0, "foo");
-		this.wrappedListHolder.add(1, "bar");
-		this.wrappedListHolder.add(2, "baz");
-		JList jList = new JList(new ListModelAdapter(this.adapter));
-		this.wrappedListHolder.setList(new ArrayList<String>());
-		assertEquals(0, jList.getModel().getSize());
-	}
-	
-	public void testCollectionChangedFromEmpty() {
-		this.adapter.addCollectionChangeListener(CollectionValueModel.VALUES, new TestListener() {
-			@Override
-			public void itemsAdded(CollectionChangeEvent e) {/* OK */}
-			@Override
-			public void itemsRemoved(CollectionChangeEvent e) {/* OK */}
-		});
-		JList jList = new JList(new ListModelAdapter(this.adapter));
-		
-		ArrayList<String> list = new ArrayList<String>();
-		list.add("foo");
-		list.add("bar");
-		this.wrappedListHolder.setList(list);
-		assertEquals(2, jList.getModel().getSize());
-	}
-	
-	public void testCollectionChangedFromEmptyToEmpty() {
-		this.adapter.addCollectionChangeListener(CollectionValueModel.VALUES, new TestListener() {
-			@Override
-			public void itemsAdded(CollectionChangeEvent e) {/* OK */}
-			@Override
-			public void itemsRemoved(CollectionChangeEvent e) {/* OK */}
-		});
-		JList jList = new JList(new ListModelAdapter(this.adapter));
-		
-		ArrayList<String> list = new ArrayList<String>();
-		this.wrappedListHolder.setList(list);
-		assertEquals(0, jList.getModel().getSize());
-	}
-
-
-	// ********** inner class **********
-
-	class TestListener implements CollectionChangeListener {
-		public void itemsAdded(CollectionChangeEvent e) {
-			fail("unexpected event");
-		}
-		public void itemsRemoved(CollectionChangeEvent e) {
-			fail("unexpected event");
-		}
-		public void collectionCleared(CollectionChangeEvent e) {
-			fail("unexpected event");
-		}
-		public void collectionChanged(CollectionChangeEvent e) {
-			fail("unexpected event");
-		}
-	}
-
-}
diff --git a/jpa/tests/org.eclipse.jpt.utility.tests/src/org/eclipse/jpt/utility/tests/internal/model/value/ListCuratorTests.java b/jpa/tests/org.eclipse.jpt.utility.tests/src/org/eclipse/jpt/utility/tests/internal/model/value/ListCuratorTests.java
deleted file mode 100644
index 4909927..0000000
--- a/jpa/tests/org.eclipse.jpt.utility.tests/src/org/eclipse/jpt/utility/tests/internal/model/value/ListCuratorTests.java
+++ /dev/null
@@ -1,315 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2008 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.utility.tests.internal.model.value;
-
-import java.util.ArrayList;
-import java.util.Iterator;
-import java.util.List;
-import java.util.ListIterator;
-import junit.framework.TestCase;
-import org.eclipse.jpt.utility.internal.CollectionTools;
-import org.eclipse.jpt.utility.internal.iterators.ReadOnlyListIterator;
-import org.eclipse.jpt.utility.internal.model.AbstractModel;
-import org.eclipse.jpt.utility.internal.model.value.ListCurator;
-import org.eclipse.jpt.utility.internal.model.value.SimplePropertyValueModel;
-import org.eclipse.jpt.utility.model.event.ListChangeEvent;
-import org.eclipse.jpt.utility.model.listener.ListChangeListener;
-import org.eclipse.jpt.utility.model.value.ListValueModel;
-import org.eclipse.jpt.utility.model.value.PropertyValueModel;
-import org.eclipse.jpt.utility.model.value.WritablePropertyValueModel;
-import org.eclipse.jpt.utility.tests.internal.TestTools;
-
-@SuppressWarnings("nls")
-public final class ListCuratorTests 
-	extends TestCase 
-{
-	private TestSubject subject1;
-	private WritablePropertyValueModel<TestSubject> subjectHolder1;
-	
-	private ListCurator<TestSubject, String> curator;
-	private ListChangeListener listener1;
-	private ListChangeEvent event1;
-	
-	private TestSubject subject2;
-
-	public ListCuratorTests(String name) {
-		super(name);
-	}
-
-	@Override
-	protected void setUp() throws Exception {
-		super.setUp();
-		this.subject1 = new TestSubject(this.subject1Names());
-		this.subjectHolder1 = new SimplePropertyValueModel<TestSubject>(this.subject1);
-		this.curator = this.buildListCurator(this.subjectHolder1);
-		this.listener1 = this.buildListChangeListener1();
-		this.curator.addListChangeListener(ListValueModel.LIST_VALUES, this.listener1);
-		this.event1 = null;
-		
-		this.subject2 = new TestSubject(this.subject2Names());
-	}
-	
-	private List<String> subject1Names() {
-		ArrayList<String> list = new ArrayList<String>();
-		list.add("alpha");
-		list.add("bravo");
-		list.add("charlie");
-		list.add("delta");
-		return list;
-	}
-	
-	private List<String> subject2Names() {
-		ArrayList<String> list = new ArrayList<String>();
-		list.add("echo");
-		list.add("foxtrot");
-		list.add("glove");
-		list.add("hotel");
-		return list;
-	}
-	
-	private ListCurator<TestSubject, String> buildListCurator(PropertyValueModel<TestSubject> subjectHolder) {
-		return new ListCurator<TestSubject, String>(subjectHolder) {
-			@Override
-			public Iterator<String> iteratorForRecord() {
-				return this.subject.strings();
-			}
-		};
-	}
-
-	private ListChangeListener buildListChangeListener1() {
-		return new ListChangeListener() {
-			public void itemsAdded(ListChangeEvent e) {
-				ListCuratorTests.this.value1Changed(e);
-			}
-			public void itemsRemoved(ListChangeEvent e) {
-				ListCuratorTests.this.value1Changed(e);
-			}
-			public void itemsReplaced(ListChangeEvent e) {
-				ListCuratorTests.this.value1Changed(e);
-			}
-			public void itemsMoved(ListChangeEvent e) {
-				ListCuratorTests.this.value1Changed(e);
-			}
-			public void listCleared(ListChangeEvent e) {
-				ListCuratorTests.this.value1Changed(e);
-			}
-			public void listChanged(ListChangeEvent e) {
-				ListCuratorTests.this.value1Changed(e);
-			}
-		};
-	}
-
-	void value1Changed(ListChangeEvent e) {
-		this.event1 = e;
-	}
-
-	@Override
-	protected void tearDown() throws Exception {
-		TestTools.clear(this);
-		super.tearDown();
-	}
-
-	public void testSubjectHolder() {
-		assertEquals(this.subject1Names(), CollectionTools.list(this.curator.listIterator()));
-		assertNull(this.event1);
-
-		this.subjectHolder1.setValue(this.subject2);
-		assertNotNull(this.event1);
-		assertEquals(this.curator, this.event1.getSource());
-		assertEquals(ListValueModel.LIST_VALUES, this.event1.getListName());
-		assertEquals(-1, this.event1.getIndex());
-		assertFalse(this.event1.items().hasNext());
-		assertEquals(this.subject2Names(), CollectionTools.list(this.curator.listIterator()));
-		
-		this.event1 = null;
-		this.subjectHolder1.setValue(null);
-		assertNotNull(this.event1);
-		assertEquals(this.curator, this.event1.getSource());
-		assertEquals(ListValueModel.LIST_VALUES, this.event1.getListName());
-		assertEquals(-1, this.event1.getIndex());
-		assertFalse(this.event1.items().hasNext());
-		assertFalse(this.curator.iterator().hasNext());
-		
-		this.event1 = null;
-		this.subjectHolder1.setValue(this.subject1);
-		assertNotNull(this.event1);
-		assertEquals(this.curator, this.event1.getSource());
-		assertEquals(ListValueModel.LIST_VALUES, this.event1.getListName());
-		assertEquals(-1, this.event1.getIndex());
-		assertFalse(this.event1.items().hasNext());
-		assertEquals(this.subject1Names(), CollectionTools.list(this.curator.listIterator()));
-	}
-
-	public void testAdd() {
-		assertEquals(this.subject1Names(), CollectionTools.list(this.curator.listIterator()));
-		assertNull(this.event1);
-
-		this.subject1.addString("echo");
-		assertNotNull(this.event1);
-		assertEquals(this.curator, this.event1.getSource());
-		assertEquals(ListValueModel.LIST_VALUES, this.event1.getListName());
-		assertEquals(this.subject1Names().size(), this.event1.getIndex());
-		assertEquals("echo", this.event1.items().next());
-		List<String> stringsPlus = this.subject1Names();
-		stringsPlus.add("echo");
-		assertEquals(stringsPlus, CollectionTools.list(this.curator.listIterator()));
-
-		this.event1 = null;
-		this.subject1.addString(0, "zulu");
-		assertNotNull(this.event1);
-		assertEquals(this.curator, this.event1.getSource());
-		assertEquals(ListValueModel.LIST_VALUES, this.event1.getListName());
-		assertEquals(0, this.event1.getIndex());
-		assertEquals("zulu", this.event1.items().next());
-		stringsPlus.add(0, "zulu");
-		assertEquals(stringsPlus, CollectionTools.list(this.curator.listIterator()));
-	}
-	
-	public void testRemove() {
-		assertEquals(this.subject1Names(), CollectionTools.list(this.curator.listIterator()));
-		assertNull(this.event1);
-
-		String removedString = this.subject1.removeString(0);	// should be "alpha"
-		assertNotNull(this.event1);
-		assertEquals(this.curator, this.event1.getSource());
-		assertEquals(ListValueModel.LIST_VALUES, this.event1.getListName());
-		assertEquals(0, this.event1.getIndex());
-		assertEquals(removedString, this.event1.items().next());
-		List<String> stringsMinus = this.subject1Names();
-		stringsMinus.remove(0);
-		assertEquals(stringsMinus, CollectionTools.list(this.curator.listIterator()));
-		
-		removedString = this.subject1.removeString(2);	// should be "delta"
-		assertNotNull(this.event1);
-		assertEquals(this.curator, this.event1.getSource());
-		assertEquals(ListValueModel.LIST_VALUES, this.event1.getListName());
-		assertEquals(2, this.event1.getIndex());
-		assertEquals(removedString, this.event1.items().next());
-		stringsMinus.remove(2);
-		assertEquals(stringsMinus, CollectionTools.list(this.curator.listIterator()));
-	}
-	
-	public void testCompleteListChange() {
-		assertEquals(this.subject1Names(), CollectionTools.list(this.curator.listIterator()));
-		assertNull(this.event1);
-		
-		this.subject1.setStrings(this.subject2Names());
-		assertNotNull(this.event1);
-		assertEquals(this.curator, this.event1.getSource());
-		assertEquals(ListValueModel.LIST_VALUES, this.event1.getListName());
-		List<String> newStrings = this.subject2Names();
-		assertEquals(newStrings, CollectionTools.list(this.curator.listIterator()));
-	}
-	
-	public void testPartialListChange() {
-		List<String> startingList = CollectionTools.list(this.curator.listIterator());
-		assertEquals(this.subject1Names(), startingList);
-		assertNull(this.event1);
-		
-		String identicalString = startingList.get(1);  // should be "bravo"
-		String nonidenticalString = startingList.get(0); // should be "alpha"
-		List<String> newStrings = CollectionTools.list(new String[] {new String("bravo"), new String("alpha"), "echo", "delta", "foxtrot"});
-		this.subject1.setStrings(newStrings);
-		
-		List<String> finalList = CollectionTools.list(this.curator.listIterator());
-		assertNotNull(this.event1);
-		assertEquals(this.curator, this.event1.getSource());
-		assertEquals(ListValueModel.LIST_VALUES, this.event1.getListName());
-		assertEquals(newStrings, finalList);
-		assertTrue(identicalString == finalList.get(0));
-		assertTrue(nonidenticalString != finalList.get(1));
-	}
-	
-	public void testIterator() {
-		assertEquals(this.subject1Names(), CollectionTools.list(this.subject1.strings()));
-		assertEquals(this.subject1Names(), CollectionTools.list(this.curator.listIterator()));
-	}
-	
-	public void testGet() {
-		assertEquals(this.subject1Names().get(0), this.subject1.getString(0));
-		assertEquals(this.subject1Names().get(0), this.curator.get(0));
-	}
-	
-	public void testSize() {
-		assertEquals(this.subject1Names().size(), CollectionTools.size(this.subject1.strings()));
-		assertEquals(this.subject1Names().size(), CollectionTools.size(this.curator.listIterator()));
-		assertEquals(this.subject1Names().size(), this.curator.size());
-	}
-	
-	public void testHasListeners() {
-		assertTrue(this.curator.hasAnyListChangeListeners(ListValueModel.LIST_VALUES));
-		assertTrue(this.subject1.hasAnyStateChangeListeners());
-		this.curator.removeListChangeListener(ListValueModel.LIST_VALUES, this.listener1);
-		assertFalse(this.subject1.hasAnyStateChangeListeners());
-		assertFalse(this.curator.hasAnyListChangeListeners(ListValueModel.LIST_VALUES));
-
-		ListChangeListener listener2 = this.buildListChangeListener1();
-		this.curator.addListChangeListener(listener2);
-		assertTrue(this.curator.hasAnyListChangeListeners(ListValueModel.LIST_VALUES));
-		assertTrue(this.subject1.hasAnyStateChangeListeners());
-		this.curator.removeListChangeListener(listener2);
-		assertFalse(this.subject1.hasAnyStateChangeListeners());
-		assertFalse(this.curator.hasAnyListChangeListeners(ListValueModel.LIST_VALUES));
-	}
-	
-	
-	// **************** Inner Class *******************************************
-	
-	class TestSubject extends AbstractModel {
-		private List<String> strings;
-		
-		public TestSubject() {
-			this.strings = new ArrayList<String>();
-		}
-		
-		public TestSubject(List<String> strings) {
-			this();
-			this.setStrings(strings);
-		}
-		
-		public String getString(int index) {
-			return this.strings.get(index);
-		}
-		
-		public ListIterator<String> strings() {
-			return new ReadOnlyListIterator<String>(this.strings);
-		}
-		
-		public void addString(int index, String string) {
-			this.strings.add(index, string);
-			this.fireStateChanged();
-		}
-		
-		public void addString(String string) {
-			this.addString(this.strings.size(), string);
-		}
-		
-		public String removeString(int index) {
-			String string = this.strings.get(index);
-			this.removeString(string);
-			return string;
-		}
-		
-		public void removeString(String string) {
-			this.strings.remove(string);
-			this.fireStateChanged();
-		}
-		
-		public void setStrings(List<String> strings) {
-			this.strings = new ArrayList<String>(strings);
-			this.fireStateChanged();
-		}
-		
-		public void setStrings(String[] strings) {
-			this.strings = CollectionTools.list(strings);
-			this.fireStateChanged();
-		}
-	}
-}
diff --git a/jpa/tests/org.eclipse.jpt.utility.tests/src/org/eclipse/jpt/utility/tests/internal/model/value/NullCollectionValueModelTests.java b/jpa/tests/org.eclipse.jpt.utility.tests/src/org/eclipse/jpt/utility/tests/internal/model/value/NullCollectionValueModelTests.java
deleted file mode 100644
index 2bcc738..0000000
--- a/jpa/tests/org.eclipse.jpt.utility.tests/src/org/eclipse/jpt/utility/tests/internal/model/value/NullCollectionValueModelTests.java
+++ /dev/null
@@ -1,44 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2008 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.utility.tests.internal.model.value;
-
-import junit.framework.TestCase;
-import org.eclipse.jpt.utility.internal.model.value.NullCollectionValueModel;
-import org.eclipse.jpt.utility.model.value.CollectionValueModel;
-import org.eclipse.jpt.utility.tests.internal.TestTools;
-
-public class NullCollectionValueModelTests extends TestCase {
-	private CollectionValueModel<Object> collectionHolder;
-
-	public NullCollectionValueModelTests(String name) {
-		super(name);
-	}
-
-	@Override
-	protected void setUp() throws Exception {
-		super.setUp();
-		this.collectionHolder = new NullCollectionValueModel<Object>();
-	}
-
-	@Override
-	protected void tearDown() throws Exception {
-		TestTools.clear(this);
-		super.tearDown();
-	}
-
-	public void testSize() {
-		assertEquals(0, this.collectionHolder.size());
-	}
-
-	public void testIterator() {
-		assertFalse(this.collectionHolder.iterator().hasNext());
-	}
-
-}
diff --git a/jpa/tests/org.eclipse.jpt.utility.tests/src/org/eclipse/jpt/utility/tests/internal/model/value/NullListValueModelTests.java b/jpa/tests/org.eclipse.jpt.utility.tests/src/org/eclipse/jpt/utility/tests/internal/model/value/NullListValueModelTests.java
deleted file mode 100644
index e42bf48..0000000
--- a/jpa/tests/org.eclipse.jpt.utility.tests/src/org/eclipse/jpt/utility/tests/internal/model/value/NullListValueModelTests.java
+++ /dev/null
@@ -1,54 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2008 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.utility.tests.internal.model.value;
-
-import junit.framework.TestCase;
-import org.eclipse.jpt.utility.internal.model.value.NullListValueModel;
-import org.eclipse.jpt.utility.model.value.ListValueModel;
-import org.eclipse.jpt.utility.tests.internal.TestTools;
-
-public class NullListValueModelTests extends TestCase {
-	private ListValueModel<Object> listHolder;
-
-	public NullListValueModelTests(String name) {
-		super(name);
-	}
-
-	@Override
-	protected void setUp() throws Exception {
-		super.setUp();
-		this.listHolder = new NullListValueModel<Object>();
-	}
-
-	@Override
-	protected void tearDown() throws Exception {
-		TestTools.clear(this);
-		super.tearDown();
-	}
-
-	public void testGet() {
-		boolean exCaught = false;
-		try {
-			this.listHolder.get(0);
-		} catch (IndexOutOfBoundsException ex) {
-			exCaught = true;
-		}
-		assertTrue(exCaught);
-	}
-
-	public void testSize() {
-		assertEquals(0, this.listHolder.size());
-	}
-
-	public void testIterator() {
-		assertFalse(this.listHolder.iterator().hasNext());
-	}
-
-}
diff --git a/jpa/tests/org.eclipse.jpt.utility.tests/src/org/eclipse/jpt/utility/tests/internal/model/value/NullPropertyValueModelTests.java b/jpa/tests/org.eclipse.jpt.utility.tests/src/org/eclipse/jpt/utility/tests/internal/model/value/NullPropertyValueModelTests.java
deleted file mode 100644
index 7548506..0000000
--- a/jpa/tests/org.eclipse.jpt.utility.tests/src/org/eclipse/jpt/utility/tests/internal/model/value/NullPropertyValueModelTests.java
+++ /dev/null
@@ -1,40 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2008 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.utility.tests.internal.model.value;
-
-import junit.framework.TestCase;
-import org.eclipse.jpt.utility.internal.model.value.NullPropertyValueModel;
-import org.eclipse.jpt.utility.model.value.PropertyValueModel;
-import org.eclipse.jpt.utility.tests.internal.TestTools;
-
-public class NullPropertyValueModelTests extends TestCase {
-	private PropertyValueModel<Object> valueHolder;
-
-	public NullPropertyValueModelTests(String name) {
-		super(name);
-	}
-
-	@Override
-	protected void setUp() throws Exception {
-		super.setUp();
-		this.valueHolder = new NullPropertyValueModel<Object>();
-	}
-
-	@Override
-	protected void tearDown() throws Exception {
-		TestTools.clear(this);
-		super.tearDown();
-	}
-
-	public void testValue() {
-		assertNull(this.valueHolder.getValue());
-	}
-
-}
diff --git a/jpa/tests/org.eclipse.jpt.utility.tests/src/org/eclipse/jpt/utility/tests/internal/model/value/PropertyAspectAdapterTests.java b/jpa/tests/org.eclipse.jpt.utility.tests/src/org/eclipse/jpt/utility/tests/internal/model/value/PropertyAspectAdapterTests.java
deleted file mode 100644
index c3cdb41..0000000
--- a/jpa/tests/org.eclipse.jpt.utility.tests/src/org/eclipse/jpt/utility/tests/internal/model/value/PropertyAspectAdapterTests.java
+++ /dev/null
@@ -1,326 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2008 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.utility.tests.internal.model.value;
-
-import junit.framework.TestCase;
-import org.eclipse.jpt.utility.internal.model.AbstractModel;
-import org.eclipse.jpt.utility.internal.model.value.PropertyAspectAdapter;
-import org.eclipse.jpt.utility.internal.model.value.SimplePropertyValueModel;
-import org.eclipse.jpt.utility.model.event.PropertyChangeEvent;
-import org.eclipse.jpt.utility.model.listener.PropertyChangeListener;
-import org.eclipse.jpt.utility.model.value.PropertyValueModel;
-import org.eclipse.jpt.utility.model.value.WritablePropertyValueModel;
-import org.eclipse.jpt.utility.tests.internal.TestTools;
-
-public class PropertyAspectAdapterTests extends TestCase {
-	private TestSubject subject1;
-	private WritablePropertyValueModel<TestSubject> subjectHolder1;
-	private PropertyAspectAdapter<TestSubject, String> aa1;
-	private PropertyChangeEvent event1;
-	private PropertyChangeListener listener1;
-
-	private TestSubject subject2;
-
-	private PropertyChangeEvent multipleValueEvent;
-
-	private PropertyChangeEvent customValueEvent;
-
-
-	public PropertyAspectAdapterTests(String name) {
-		super(name);
-	}
-
-	@Override
-	protected void setUp() throws Exception {
-		super.setUp();
-		this.subject1 = new TestSubject("foo", "test subject 1");
-		this.subjectHolder1 = new SimplePropertyValueModel<TestSubject> (this.subject1);
-		this.aa1 = this.buildAspectAdapter(this.subjectHolder1);
-		this.listener1 = this.buildValueChangeListener1();
-		this.aa1.addPropertyChangeListener(PropertyValueModel.VALUE, this.listener1);
-		this.event1 = null;
-
-		this.subject2 = new TestSubject("bar", "test subject 2");
-	}
-
-	private PropertyAspectAdapter<TestSubject, String> buildAspectAdapter(PropertyValueModel<TestSubject> subjectHolder) {
-		return new PropertyAspectAdapter<TestSubject, String>(subjectHolder, TestSubject.NAME_PROPERTY) {
-			// this is not a aspect adapter - the value is determined by the aspect name
-			@Override
-			protected String buildValue_() {
-				if (this.propertyNames[0] == TestSubject.NAME_PROPERTY) {
-					return this.subject.getName();
-				} else if (this.propertyNames[0] == TestSubject.DESCRIPTION_PROPERTY) {
-					return this.subject.getDescription();
-				} else {
-					throw new IllegalStateException("invalid aspect name: " + this.propertyNames[0]);
-				}
-			}
-			@Override
-			protected void setValue_(String value) {
-				if (this.propertyNames[0] == TestSubject.NAME_PROPERTY) {
-					this.subject.setName(value);
-				} else if (this.propertyNames[0] == TestSubject.DESCRIPTION_PROPERTY) {
-					this.subject.setDescription(value);
-				} else {
-					throw new IllegalStateException("invalid aspect name: " + this.propertyNames[0]);
-				}
-			}
-		};
-	}
-
-	private PropertyChangeListener buildValueChangeListener1() {
-		return new PropertyChangeListener() {
-			public void propertyChanged(PropertyChangeEvent e) {
-				PropertyAspectAdapterTests.this.value1Changed(e);
-			}
-		};
-	}
-
-	void value1Changed(PropertyChangeEvent e) {
-		this.event1 = e;
-	}
-
-	@Override
-	protected void tearDown() throws Exception {
-		TestTools.clear(this);
-		super.tearDown();
-	}
-
-	public void testSubjectHolder() {
-		assertEquals("foo", this.aa1.getValue());
-		assertNull(this.event1);
-
-		this.subjectHolder1.setValue(this.subject2);
-		assertNotNull(this.event1);
-		assertEquals(this.aa1, this.event1.getSource());
-		assertEquals(PropertyValueModel.VALUE, this.event1.getPropertyName());
-		assertEquals("foo", this.event1.getOldValue());
-		assertEquals("bar", this.event1.getNewValue());
-		assertEquals("bar", this.aa1.getValue());
-		
-		this.event1 = null;
-		this.subjectHolder1.setValue(null);
-		assertNotNull(this.event1);
-		assertEquals(this.aa1, this.event1.getSource());
-		assertEquals(PropertyValueModel.VALUE, this.event1.getPropertyName());
-		assertEquals("bar", this.event1.getOldValue());
-		assertNull(this.event1.getNewValue());
-		assertNull(this.aa1.getValue());
-		
-		this.event1 = null;
-		this.subjectHolder1.setValue(this.subject1);
-		assertNotNull(this.event1);
-		assertEquals(this.aa1, this.event1.getSource());
-		assertEquals(PropertyValueModel.VALUE, this.event1.getPropertyName());
-		assertEquals(null, this.event1.getOldValue());
-		assertEquals("foo", this.event1.getNewValue());
-		assertEquals("foo", this.aa1.getValue());
-	}
-
-	public void testPropertyChange() {
-		assertEquals("foo", this.aa1.getValue());
-		assertNull(this.event1);
-
-		this.subject1.setName("baz");
-		assertNotNull(this.event1);
-		assertEquals(this.aa1, this.event1.getSource());
-		assertEquals(PropertyValueModel.VALUE, this.event1.getPropertyName());
-		assertEquals("foo", this.event1.getOldValue());
-		assertEquals("baz", this.event1.getNewValue());
-		assertEquals("baz", this.aa1.getValue());
-		
-		this.event1 = null;
-		this.subject1.setName(null);
-		assertNotNull(this.event1);
-		assertEquals(this.aa1, this.event1.getSource());
-		assertEquals(PropertyValueModel.VALUE, this.event1.getPropertyName());
-		assertEquals("baz", this.event1.getOldValue());
-		assertEquals(null, this.event1.getNewValue());
-		assertEquals(null, this.aa1.getValue());
-		
-		this.event1 = null;
-		this.subject1.setName("foo");
-		assertNotNull(this.event1);
-		assertEquals(this.aa1, this.event1.getSource());
-		assertEquals(PropertyValueModel.VALUE, this.event1.getPropertyName());
-		assertEquals(null, this.event1.getOldValue());
-		assertEquals("foo", this.event1.getNewValue());
-		assertEquals("foo", this.aa1.getValue());
-	}
-
-	public void testValue() {
-		assertEquals("foo", this.subject1.getName());
-		assertEquals("foo", this.aa1.getValue());
-	}
-
-	public void testStaleValue() {
-		assertEquals("foo", this.subject1.getName());
-		assertEquals("foo", this.aa1.getValue());
-
-		this.aa1.removePropertyChangeListener(PropertyValueModel.VALUE, this.listener1);
-		assertEquals(null, this.aa1.getValue());
-
-		this.aa1.addPropertyChangeListener(PropertyValueModel.VALUE, this.listener1);
-		assertEquals("foo", this.aa1.getValue());
-
-		this.aa1.removePropertyChangeListener(PropertyValueModel.VALUE, this.listener1);
-		this.subjectHolder1.setValue(this.subject2);
-		assertEquals(null, this.aa1.getValue());
-
-		this.aa1.addPropertyChangeListener(PropertyValueModel.VALUE, this.listener1);
-		assertEquals("bar", this.aa1.getValue());
-	}
-
-	public void testSetValue() {
-		this.aa1.setValue("baz");
-		assertEquals("baz", this.aa1.getValue());
-		assertEquals("baz", this.subject1.getName());
-	}
-
-	public void testHasListeners() {
-		assertTrue(this.aa1.hasAnyPropertyChangeListeners(PropertyValueModel.VALUE));
-		assertTrue(this.subject1.hasAnyPropertyChangeListeners(TestSubject.NAME_PROPERTY));
-		this.aa1.removePropertyChangeListener(PropertyValueModel.VALUE, this.listener1);
-		assertFalse(this.subject1.hasAnyPropertyChangeListeners(TestSubject.NAME_PROPERTY));
-		assertFalse(this.aa1.hasAnyPropertyChangeListeners(PropertyValueModel.VALUE));
-
-		PropertyChangeListener listener2 = this.buildValueChangeListener1();
-		this.aa1.addPropertyChangeListener(listener2);
-		assertTrue(this.aa1.hasAnyPropertyChangeListeners(PropertyValueModel.VALUE));
-		assertTrue(this.subject1.hasAnyPropertyChangeListeners(TestSubject.NAME_PROPERTY));
-		this.aa1.removePropertyChangeListener(listener2);
-		assertFalse(this.subject1.hasAnyPropertyChangeListeners(TestSubject.NAME_PROPERTY));
-		assertFalse(this.aa1.hasAnyPropertyChangeListeners(PropertyValueModel.VALUE));
-	}
-
-	public void testMultipleAspectAdapter() {
-		TestSubject testSubject = new TestSubject("fred", "husband");
-		WritablePropertyValueModel<TestSubject> testSubjectHolder = new SimplePropertyValueModel<TestSubject>(testSubject);
-		WritablePropertyValueModel<String> testAA = this.buildMultipleAspectAdapter(testSubjectHolder);
-		PropertyChangeListener testListener = this.buildMultipleValueChangeListener();
-		testAA.addPropertyChangeListener(PropertyValueModel.VALUE, testListener);
-		assertEquals("fred:husband", testAA.getValue());
-
-		this.multipleValueEvent = null;
-		testSubject.setName("wilma");
-		assertEquals("wilma:husband", testAA.getValue());
-		assertEquals("fred:husband", this.multipleValueEvent.getOldValue());
-		assertEquals("wilma:husband", this.multipleValueEvent.getNewValue());
-
-		this.multipleValueEvent = null;
-		testSubject.setDescription("wife");
-		assertEquals("wilma:wife", testAA.getValue());
-		assertEquals("wilma:husband", this.multipleValueEvent.getOldValue());
-		assertEquals("wilma:wife", this.multipleValueEvent.getNewValue());
-	}
-
-	private WritablePropertyValueModel<String> buildMultipleAspectAdapter(PropertyValueModel<TestSubject> subjectHolder) {
-		return new PropertyAspectAdapter<TestSubject, String>(subjectHolder, TestSubject.NAME_PROPERTY, TestSubject.DESCRIPTION_PROPERTY) {
-			@Override
-			protected String buildValue_() {
-				return this.subject.getName() + ":" + this.subject.getDescription();
-			}
-		};
-	}
-
-	private PropertyChangeListener buildMultipleValueChangeListener() {
-		return new PropertyChangeListener() {
-			public void propertyChanged(PropertyChangeEvent e) {
-				PropertyAspectAdapterTests.this.multipleValueChanged(e);
-			}
-		};
-	}
-
-	void multipleValueChanged(PropertyChangeEvent e) {
-		this.multipleValueEvent = e;
-	}
-
-	/**
-	 * test a bug where we would call #buildValue() in
-	 * #engageNonNullSubject(), when we needed to call
-	 * it in #engageSubject(), so the cached value would
-	 * be rebuilt when the this.subject was set to null
-	 */
-	public void testCustomBuildValueWithNullSubject() {
-		TestSubject customSubject = new TestSubject("fred", "laborer");
-		WritablePropertyValueModel<TestSubject> customSubjectHolder = new SimplePropertyValueModel<TestSubject>(customSubject);
-		WritablePropertyValueModel<String> customAA = this.buildCustomAspectAdapter(customSubjectHolder);
-		PropertyChangeListener customListener = this.buildCustomValueChangeListener();
-		customAA.addPropertyChangeListener(PropertyValueModel.VALUE, customListener);
-		assertEquals("fred", customAA.getValue());
-
-		this.customValueEvent = null;
-		customSubject.setName("wilma");
-		assertEquals("wilma", customAA.getValue());
-		assertEquals("fred", this.customValueEvent.getOldValue());
-		assertEquals("wilma", this.customValueEvent.getNewValue());
-
-		this.customValueEvent = null;
-		customSubjectHolder.setValue(null);
-		// this would fail - the value would be null...
-		assertEquals("<unnamed>", customAA.getValue());
-		assertEquals("wilma", this.customValueEvent.getOldValue());
-		assertEquals("<unnamed>", this.customValueEvent.getNewValue());
-	}
-
-	private WritablePropertyValueModel<String> buildCustomAspectAdapter(PropertyValueModel<TestSubject> subjectHolder) {
-		return new PropertyAspectAdapter<TestSubject, String>(subjectHolder, TestSubject.NAME_PROPERTY) {
-			@Override
-			protected String buildValue() {
-				return (this.subject == null) ? "<unnamed>" : this.subject.getName();
-			}
-		};
-	}
-
-	private PropertyChangeListener buildCustomValueChangeListener() {
-		return new PropertyChangeListener() {
-			public void propertyChanged(PropertyChangeEvent e) {
-				PropertyAspectAdapterTests.this.customValueChanged(e);
-			}
-		};
-	}
-
-	void customValueChanged(PropertyChangeEvent e) {
-		this.customValueEvent = e;
-	}
-
-
-	// ********** inner class **********
-	
-	private class TestSubject extends AbstractModel {
-		private String name;
-		public static final String NAME_PROPERTY = "name";
-		private String description;
-		public static final String DESCRIPTION_PROPERTY = "description";
-	
-		public TestSubject(String name, String description) {
-			this.name = name;
-			this.description = description;
-		}
-		public String getName() {
-			return this.name;
-		}
-		public void setName(String name) {
-			Object old = this.name;
-			this.name = name;
-			this.firePropertyChanged(NAME_PROPERTY, old, name);
-		}
-		public String getDescription() {
-			return this.description;
-		}
-		public void setDescription(String description) {
-			Object old = this.description;
-			this.description = description;
-			this.firePropertyChanged(DESCRIPTION_PROPERTY, old, description);
-		}
-	}
-
-}
diff --git a/jpa/tests/org.eclipse.jpt.utility.tests/src/org/eclipse/jpt/utility/tests/internal/model/value/PropertyCollectionValueModelAdapterTests.java b/jpa/tests/org.eclipse.jpt.utility.tests/src/org/eclipse/jpt/utility/tests/internal/model/value/PropertyCollectionValueModelAdapterTests.java
deleted file mode 100644
index 49da7ab..0000000
--- a/jpa/tests/org.eclipse.jpt.utility.tests/src/org/eclipse/jpt/utility/tests/internal/model/value/PropertyCollectionValueModelAdapterTests.java
+++ /dev/null
@@ -1,151 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2008 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.utility.tests.internal.model.value;
-
-import java.util.Collection;
-import javax.swing.JList;
-import junit.framework.TestCase;
-import org.eclipse.jpt.utility.internal.CollectionTools;
-import org.eclipse.jpt.utility.internal.HashBag;
-import org.eclipse.jpt.utility.internal.iterators.SingleElementIterator;
-import org.eclipse.jpt.utility.internal.model.AbstractModel;
-import org.eclipse.jpt.utility.internal.model.value.PropertyCollectionValueModelAdapter;
-import org.eclipse.jpt.utility.internal.model.value.SimplePropertyValueModel;
-import org.eclipse.jpt.utility.internal.model.value.swing.ListModelAdapter;
-import org.eclipse.jpt.utility.model.event.CollectionChangeEvent;
-import org.eclipse.jpt.utility.model.listener.CollectionChangeListener;
-import org.eclipse.jpt.utility.model.value.CollectionValueModel;
-import org.eclipse.jpt.utility.model.value.WritablePropertyValueModel;
-import org.eclipse.jpt.utility.tests.internal.TestTools;
-
-public class PropertyCollectionValueModelAdapterTests extends TestCase {
-	private CollectionValueModel<String> adapter;
-	private WritablePropertyValueModel<String> wrappedValueHolder;
-
-	public PropertyCollectionValueModelAdapterTests(String name) {
-		super(name);
-	}
-
-	@Override
-	protected void setUp() throws Exception {
-		super.setUp();
-		this.wrappedValueHolder = new SimplePropertyValueModel<String>();
-		this.adapter = new PropertyCollectionValueModelAdapter<String>(this.wrappedValueHolder);
-	}
-
-	private Collection<String> wrappedCollection() {
-		return CollectionTools.collection(new SingleElementIterator<String>(this.wrappedValueHolder.getValue()));
-	}
-
-	@Override
-	protected void tearDown() throws Exception {
-		TestTools.clear(this);
-		super.tearDown();
-	}
-
-	public void testIterator() {
-		this.adapter.addCollectionChangeListener(CollectionValueModel.VALUES, new TestListener() {
-			@Override
-			public void itemsAdded(CollectionChangeEvent e) {/* OK */}
-		});
-		this.wrappedValueHolder.setValue("foo");
-		Collection<String> adapterCollection = CollectionTools.collection(this.adapter.iterator());
-		assertEquals(1, adapterCollection.size());
-		assertEquals(this.wrappedCollection(), adapterCollection);
-		assertEquals("foo", adapterCollection.iterator().next());
-	}
-
-	public void testStaleValue() {
-		CollectionChangeListener listener = new TestListener() {
-			@Override
-			public void itemsAdded(CollectionChangeEvent e) {/* OK */}
-		};
-		this.adapter.addCollectionChangeListener(CollectionValueModel.VALUES, listener);
-		this.wrappedValueHolder.setValue("foo");
-		Collection<String> adapterCollection = CollectionTools.collection(this.adapter.iterator());
-		assertEquals(1, adapterCollection.size());
-		assertEquals(this.wrappedCollection(), adapterCollection);
-		assertEquals("foo", adapterCollection.iterator().next());
-
-		this.adapter.removeCollectionChangeListener(CollectionValueModel.VALUES, listener);
-		adapterCollection = CollectionTools.collection(this.adapter.iterator());
-		assertEquals(0, adapterCollection.size());
-		assertEquals(new HashBag<String>(), adapterCollection);
-
-		this.adapter.addCollectionChangeListener(CollectionValueModel.VALUES, listener);
-		adapterCollection = CollectionTools.collection(this.adapter.iterator());
-		assertEquals(1, adapterCollection.size());
-		assertEquals(this.wrappedCollection(), adapterCollection);
-		assertEquals("foo", adapterCollection.iterator().next());
-	}
-
-	public void testHasListeners() {
-		assertFalse(((AbstractModel) this.adapter).hasAnyCollectionChangeListeners(CollectionValueModel.VALUES));
-		CoordinatedBag<String> synchCollection = new CoordinatedBag<String>(this.adapter);
-		assertTrue(((AbstractModel) this.adapter).hasAnyCollectionChangeListeners(CollectionValueModel.VALUES));
-		this.adapter.removeCollectionChangeListener(CollectionValueModel.VALUES, synchCollection);
-		assertFalse(((AbstractModel) this.adapter).hasAnyCollectionChangeListeners(CollectionValueModel.VALUES));
-		this.adapter.addCollectionChangeListener(synchCollection);
-		assertTrue(((AbstractModel) this.adapter).hasAnyCollectionChangeListeners(CollectionValueModel.VALUES));
-		this.adapter.removeCollectionChangeListener(synchCollection);
-		assertFalse(((AbstractModel) this.adapter).hasAnyCollectionChangeListeners(CollectionValueModel.VALUES));
-	}
-
-	public void testListChangedToEmpty() {
-		this.adapter.addCollectionChangeListener(CollectionValueModel.VALUES, new TestListener() {
-			@Override
-			public void itemsAdded(CollectionChangeEvent e) {/* OK */}
-			@Override
-			public void itemsRemoved(CollectionChangeEvent e) {/* OK */}
-		});
-		this.wrappedValueHolder.setValue("foo");
-		JList jList = new JList(new ListModelAdapter(this.adapter));
-		this.wrappedValueHolder.setValue(null);
-		assertEquals(0, jList.getModel().getSize());
-	}
-
-	public void testCollectionChangedFromEmpty() {
-		this.adapter.addCollectionChangeListener(CollectionValueModel.VALUES, new TestListener() {
-			@Override
-			public void itemsAdded(CollectionChangeEvent e) {/* OK */}
-		});
-		JList jList = new JList(new ListModelAdapter(this.adapter));
-		
-		this.wrappedValueHolder.setValue("foo");
-		assertEquals(1, jList.getModel().getSize());
-	}
-	
-	public void testCollectionChangedFromEmptyToEmpty() {
-		this.adapter.addCollectionChangeListener(CollectionValueModel.VALUES, new TestListener());
-		JList jList = new JList(new ListModelAdapter(this.adapter));
-		
-		this.wrappedValueHolder.setValue(null);
-		assertEquals(0, jList.getModel().getSize());
-	}
-
-
-	// ********** member class **********
-	
-	static class TestListener implements CollectionChangeListener {
-		public void collectionChanged(CollectionChangeEvent event) {
-			fail("unexpected event");
-		}
-		public void collectionCleared(CollectionChangeEvent event) {
-			fail("unexpected event");
-		}
-		public void itemsAdded(CollectionChangeEvent event) {
-			fail("unexpected event");
-		}
-		public void itemsRemoved(CollectionChangeEvent event) {
-			fail("unexpected event");
-		}
-	}
-
-}
diff --git a/jpa/tests/org.eclipse.jpt.utility.tests/src/org/eclipse/jpt/utility/tests/internal/model/value/PropertyListValueModelAdapterTests.java b/jpa/tests/org.eclipse.jpt.utility.tests/src/org/eclipse/jpt/utility/tests/internal/model/value/PropertyListValueModelAdapterTests.java
deleted file mode 100644
index e9730f4..0000000
--- a/jpa/tests/org.eclipse.jpt.utility.tests/src/org/eclipse/jpt/utility/tests/internal/model/value/PropertyListValueModelAdapterTests.java
+++ /dev/null
@@ -1,198 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.utility.tests.internal.model.value;
-
-import java.util.ArrayList;
-import java.util.Collection;
-import java.util.List;
-import javax.swing.JList;
-import junit.framework.TestCase;
-import org.eclipse.jpt.utility.internal.CollectionTools;
-import org.eclipse.jpt.utility.internal.iterators.SingleElementIterator;
-import org.eclipse.jpt.utility.internal.model.AbstractModel;
-import org.eclipse.jpt.utility.internal.model.value.PropertyListValueModelAdapter;
-import org.eclipse.jpt.utility.internal.model.value.SimplePropertyValueModel;
-import org.eclipse.jpt.utility.internal.model.value.swing.ListModelAdapter;
-import org.eclipse.jpt.utility.model.event.ListChangeEvent;
-import org.eclipse.jpt.utility.model.listener.ListChangeListener;
-import org.eclipse.jpt.utility.model.value.ListValueModel;
-import org.eclipse.jpt.utility.model.value.WritablePropertyValueModel;
-import org.eclipse.jpt.utility.tests.internal.TestTools;
-
-public class PropertyListValueModelAdapterTests extends TestCase {
-	private ListValueModel<String> adapter;
-	private WritablePropertyValueModel<String> wrappedValueHolder;
-
-	public PropertyListValueModelAdapterTests(String name) {
-		super(name);
-	}
-
-	@Override
-	protected void setUp() throws Exception {
-		super.setUp();
-		this.wrappedValueHolder = new SimplePropertyValueModel<String>();
-		this.adapter = new PropertyListValueModelAdapter<String>(this.wrappedValueHolder);
-	}
-
-	private Collection<String> wrappedList() {
-		return CollectionTools.list(new SingleElementIterator<String>(this.wrappedValueHolder.getValue()));
-	}
-
-	@Override
-	protected void tearDown() throws Exception {
-		TestTools.clear(this);
-		super.tearDown();
-	}
-
-	public void testIterator() {
-		this.adapter.addListChangeListener(ListValueModel.LIST_VALUES, new TestListener() {
-			@Override
-			public void itemsAdded(ListChangeEvent event) {/* OK */}
-		});
-		assertFalse(this.adapter.iterator().hasNext());
-		this.wrappedValueHolder.setValue("foo");
-		List<String> adapterList = CollectionTools.list(this.adapter.iterator());
-		assertEquals(1, adapterList.size());
-		assertEquals(this.wrappedList(), adapterList);
-		assertEquals("foo", adapterList.iterator().next());
-	}
-
-	public void testGetInt() {
-		this.adapter.addListChangeListener(ListValueModel.LIST_VALUES, new TestListener() {
-			@Override
-			public void itemsAdded(ListChangeEvent event) {/* OK */}
-		});
-		this.wrappedValueHolder.setValue("foo");
-		assertEquals("foo", this.adapter.get(0));
-	}
-
-	public void testToArray1() {
-		this.adapter.addListChangeListener(ListValueModel.LIST_VALUES, new TestListener() {
-			@Override
-			public void itemsAdded(ListChangeEvent event) {/* OK */}
-		});
-		this.wrappedValueHolder.setValue("foo");
-		Object[] array = this.adapter.toArray();
-		assertEquals("foo", array[0]);
-		assertEquals(1, array.length);
-	}
-
-	public void testToArray2() {
-		this.adapter.addListChangeListener(ListValueModel.LIST_VALUES, new TestListener());
-		Object[] array = this.adapter.toArray();
-		assertEquals(0, array.length);
-	}
-
-	public void testStaleValue() {
-		ListChangeListener listener = new TestListener() {
-			@Override
-			public void itemsAdded(ListChangeEvent event) {/* OK */}
-		};
-		this.adapter.addListChangeListener(ListValueModel.LIST_VALUES, listener);
-		this.wrappedValueHolder.setValue("foo");
-		List<String> adapterList = CollectionTools.list(this.adapter.iterator());
-		assertEquals(1, adapterList.size());
-		assertEquals(this.wrappedList(), adapterList);
-		assertEquals("foo", adapterList.iterator().next());
-
-		this.adapter.removeListChangeListener(ListValueModel.LIST_VALUES, listener);
-		adapterList = CollectionTools.list(this.adapter.iterator());
-		assertEquals(0, adapterList.size());
-		assertEquals(new ArrayList<String>(), adapterList);
-
-		this.adapter.addListChangeListener(ListValueModel.LIST_VALUES, listener);
-		adapterList = CollectionTools.list(this.adapter.iterator());
-		assertEquals(1, adapterList.size());
-		assertEquals(this.wrappedList(), adapterList);
-		assertEquals("foo", adapterList.iterator().next());
-	}
-
-	public void testHasListeners() {
-		assertFalse(((AbstractModel) this.adapter).hasAnyListChangeListeners(ListValueModel.LIST_VALUES));
-		CoordinatedList<String> synchList = new CoordinatedList<String>(this.adapter);
-		assertTrue(((AbstractModel) this.adapter).hasAnyListChangeListeners(ListValueModel.LIST_VALUES));
-		this.adapter.removeListChangeListener(ListValueModel.LIST_VALUES, synchList);
-		assertFalse(((AbstractModel) this.adapter).hasAnyListChangeListeners(ListValueModel.LIST_VALUES));
-		this.adapter.addListChangeListener(synchList);
-		assertTrue(((AbstractModel) this.adapter).hasAnyListChangeListeners(ListValueModel.LIST_VALUES));
-		this.adapter.removeListChangeListener(synchList);
-		assertFalse(((AbstractModel) this.adapter).hasAnyListChangeListeners(ListValueModel.LIST_VALUES));
-	}
-
-	public void testListChangedToEmpty() {
-		this.wrappedValueHolder.setValue("foo");
-		this.adapter.addListChangeListener(ListValueModel.LIST_VALUES, new TestListener() {
-			@Override
-			public void itemsRemoved(ListChangeEvent event) {/* OK */}
-		});
-		JList jList = new JList(new ListModelAdapter(this.adapter));
-		this.wrappedValueHolder.setValue(null);
-		assertEquals(0, jList.getModel().getSize());
-	}
-
-	public void testListChangedFromEmpty() {
-		this.adapter.addListChangeListener(ListValueModel.LIST_VALUES, new TestListener() {
-			@Override
-			public void itemsAdded(ListChangeEvent event) {/* OK */}
-		});
-		JList jList = new JList(new ListModelAdapter(this.adapter));
-		
-		this.wrappedValueHolder.setValue("foo");
-		assertEquals(1, jList.getModel().getSize());
-	}
-	
-	public void testListItemChanged() {
-		this.wrappedValueHolder.setValue("foo");
-		this.adapter.addListChangeListener(ListValueModel.LIST_VALUES, new TestListener() {
-			@Override
-			public void itemsReplaced(ListChangeEvent event) {/* OK */}
-		});
-		JList jList = new JList(new ListModelAdapter(this.adapter));
-		assertEquals(1, jList.getModel().getSize());
-		assertEquals("foo", jList.getModel().getElementAt(0));
-		
-		this.wrappedValueHolder.setValue("bar");
-		assertEquals(1, jList.getModel().getSize());
-		assertEquals("bar", jList.getModel().getElementAt(0));
-	}
-	
-	public void testListChangedFromEmptyToEmpty() {
-		this.adapter.addListChangeListener(ListValueModel.LIST_VALUES, new TestListener());
-		JList jList = new JList(new ListModelAdapter(this.adapter));
-		
-		this.wrappedValueHolder.setValue(null);
-		assertEquals(0, jList.getModel().getSize());
-	}
-
-
-	// ********** member class **********
-	
-	static class TestListener implements ListChangeListener {
-		public void listChanged(ListChangeEvent event) {
-			fail("unexpected event");
-		}
-		public void listCleared(ListChangeEvent event) {
-			fail("unexpected event");
-		}
-		public void itemsAdded(ListChangeEvent event) {
-			fail("unexpected event");
-		}
-		public void itemsRemoved(ListChangeEvent event) {
-			fail("unexpected event");
-		}
-		public void itemsMoved(ListChangeEvent event) {
-			fail("unexpected event");
-		}
-		public void itemsReplaced(ListChangeEvent event) {
-			fail("unexpected event");
-		}
-	}
-
-}
diff --git a/jpa/tests/org.eclipse.jpt.utility.tests/src/org/eclipse/jpt/utility/tests/internal/model/value/ReadOnlyWritablePropertyValueModelWrapperTests.java b/jpa/tests/org.eclipse.jpt.utility.tests/src/org/eclipse/jpt/utility/tests/internal/model/value/ReadOnlyWritablePropertyValueModelWrapperTests.java
deleted file mode 100644
index 30ddbc3..0000000
--- a/jpa/tests/org.eclipse.jpt.utility.tests/src/org/eclipse/jpt/utility/tests/internal/model/value/ReadOnlyWritablePropertyValueModelWrapperTests.java
+++ /dev/null
@@ -1,143 +0,0 @@
-package org.eclipse.jpt.utility.tests.internal.model.value;
-
-import junit.framework.TestCase;
-import org.eclipse.jpt.utility.internal.model.AbstractModel;
-import org.eclipse.jpt.utility.internal.model.value.ReadOnlyWritablePropertyValueModelWrapper;
-import org.eclipse.jpt.utility.internal.model.value.SimplePropertyValueModel;
-import org.eclipse.jpt.utility.model.event.PropertyChangeEvent;
-import org.eclipse.jpt.utility.model.listener.PropertyChangeListener;
-import org.eclipse.jpt.utility.model.value.PropertyValueModel;
-import org.eclipse.jpt.utility.model.value.WritablePropertyValueModel;
-import org.eclipse.jpt.utility.tests.internal.TestTools;
-
-public class ReadOnlyWritablePropertyValueModelWrapperTests 
-	extends TestCase
-{
-	private WritablePropertyValueModel<String> objectHolder;
-	
-	private PropertyChangeEvent event;
-	
-	private WritablePropertyValueModel<String> wrapperObjectHolder;
-	
-	private PropertyChangeEvent wrapperEvent;
-	
-	
-	public ReadOnlyWritablePropertyValueModelWrapperTests(String name) {
-		super(name);
-	}
-	
-	
-	@Override
-	protected void setUp() throws Exception {
-		super.setUp();
-		this.objectHolder = new SimplePropertyValueModel<String>("foo");
-		this.wrapperObjectHolder = new ReadOnlyWritablePropertyValueModelWrapper<String>(this.objectHolder);
-	}
-	
-	@Override
-	protected void tearDown() throws Exception {
-		TestTools.clear(this);
-		super.tearDown();
-	}
-	
-	
-	public void testValue() {
-		assertEquals("foo", this.objectHolder.getValue());
-		assertEquals("foo", this.wrapperObjectHolder.getValue());
-		
-		this.objectHolder.setValue("bar");
-		assertEquals("bar", this.objectHolder.getValue());
-		assertEquals("bar", this.wrapperObjectHolder.getValue());
-		
-		this.objectHolder.setValue(null);
-		assertNull(this.objectHolder.getValue());
-		assertNull(this.wrapperObjectHolder.getValue());
-		
-		this.objectHolder.setValue("foo");
-		assertEquals("foo", this.objectHolder.getValue());
-		assertEquals("foo", this.wrapperObjectHolder.getValue());
-	}
-	
-	public void testSetValue() {
-		boolean exceptionOccurred = false;
-		try {
-			this.wrapperObjectHolder.setValue("bar");
-		}
-		catch (UnsupportedOperationException uoe) {
-			exceptionOccurred = true;
-		}
-		
-		assertTrue(exceptionOccurred);
-		assertEquals("foo", this.objectHolder.getValue());
-		assertEquals("foo", this.wrapperObjectHolder.getValue());
-	}
-	
-	public void testLazyListening() {
-		assertTrue(((AbstractModel) this.objectHolder).hasNoPropertyChangeListeners(PropertyValueModel.VALUE));
-		PropertyChangeListener listener = buildWrapperListener();
-		this.wrapperObjectHolder.addPropertyChangeListener(listener);
-		assertTrue(((AbstractModel) this.objectHolder).hasAnyPropertyChangeListeners(PropertyValueModel.VALUE));
-		this.wrapperObjectHolder.removePropertyChangeListener(listener);
-		assertTrue(((AbstractModel) this.objectHolder).hasNoPropertyChangeListeners(PropertyValueModel.VALUE));
-		
-		this.wrapperObjectHolder.addPropertyChangeListener(PropertyValueModel.VALUE, listener);
-		assertTrue(((AbstractModel) this.objectHolder).hasAnyPropertyChangeListeners(PropertyValueModel.VALUE));
-		this.wrapperObjectHolder.removePropertyChangeListener(PropertyValueModel.VALUE, listener);
-		assertTrue(((AbstractModel) this.objectHolder).hasNoPropertyChangeListeners(PropertyValueModel.VALUE));
-	}
-	
-	public void testPropertyChange1() {
-		this.objectHolder.addPropertyChangeListener(this.buildListener());
-		this.wrapperObjectHolder.addPropertyChangeListener(this.buildWrapperListener());
-		this.verifyPropertyChanges();
-	}
-	
-	public void testPropertyChange2() {
-		this.objectHolder.addPropertyChangeListener(PropertyValueModel.VALUE, this.buildListener());
-		this.wrapperObjectHolder.addPropertyChangeListener(PropertyValueModel.VALUE, this.buildWrapperListener());
-		this.verifyPropertyChanges();
-	}
-	
-	private void verifyPropertyChanges() {
-		this.event = null;
-		this.wrapperEvent = null;
-		this.objectHolder.setValue("bar");
-		verifyEvent(this.event, this.objectHolder, "foo", "bar");
-		verifyEvent(this.wrapperEvent, this.wrapperObjectHolder, "foo", "bar");
-		
-		this.event = null;
-		this.wrapperEvent = null;
-		this.objectHolder.setValue(null);
-		verifyEvent(this.event, this.objectHolder, "bar", null);
-		verifyEvent(this.wrapperEvent, this.wrapperObjectHolder, "bar", null);
-		
-		this.event = null;
-		this.wrapperEvent = null;
-		this.objectHolder.setValue("foo");
-		verifyEvent(this.event, this.objectHolder, null, "foo");
-		verifyEvent(this.wrapperEvent, this.wrapperObjectHolder, null, "foo");
-	}
-
-	private PropertyChangeListener buildListener() {
-		return new PropertyChangeListener() {
-			public void propertyChanged(PropertyChangeEvent e) {
-				ReadOnlyWritablePropertyValueModelWrapperTests.this.event = e;
-			}
-		};
-	}
-
-	private PropertyChangeListener buildWrapperListener() {
-		return new PropertyChangeListener() {
-			public void propertyChanged(PropertyChangeEvent e) {
-				ReadOnlyWritablePropertyValueModelWrapperTests.this.wrapperEvent = e;
-			}
-		};
-	}
-
-	private void verifyEvent(PropertyChangeEvent e, Object source, Object oldValue, Object newValue) {
-		assertEquals(source, e.getSource());
-		assertEquals(PropertyValueModel.VALUE, e.getPropertyName());
-		assertEquals(oldValue, e.getOldValue());
-		assertEquals(newValue, e.getNewValue());
-	}
-}
diff --git a/jpa/tests/org.eclipse.jpt.utility.tests/src/org/eclipse/jpt/utility/tests/internal/model/value/SimpleCollectionValueModelTests.java b/jpa/tests/org.eclipse.jpt.utility.tests/src/org/eclipse/jpt/utility/tests/internal/model/value/SimpleCollectionValueModelTests.java
deleted file mode 100644
index 6c84c26..0000000
--- a/jpa/tests/org.eclipse.jpt.utility.tests/src/org/eclipse/jpt/utility/tests/internal/model/value/SimpleCollectionValueModelTests.java
+++ /dev/null
@@ -1,409 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2008 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.utility.tests.internal.model.value;
-
-import java.util.Collection;
-import java.util.HashSet;
-import java.util.Set;
-import junit.framework.TestCase;
-import org.eclipse.jpt.utility.internal.Bag;
-import org.eclipse.jpt.utility.internal.CollectionTools;
-import org.eclipse.jpt.utility.internal.HashBag;
-import org.eclipse.jpt.utility.internal.model.value.SimpleCollectionValueModel;
-import org.eclipse.jpt.utility.model.event.CollectionChangeEvent;
-import org.eclipse.jpt.utility.model.listener.CollectionChangeListener;
-import org.eclipse.jpt.utility.model.value.CollectionValueModel;
-import org.eclipse.jpt.utility.tests.internal.TestTools;
-
-public class SimpleCollectionValueModelTests extends TestCase {
-	private SimpleCollectionValueModel<String> bagHolder;
-	CollectionChangeEvent bagEvent;
-	String bagEventType;
-
-	private SimpleCollectionValueModel<String> setHolder;
-	CollectionChangeEvent setEvent;
-	String setEventType;
-
-	private static final String ADD = "add";
-	private static final String REMOVE = "remove";
-	private static final String CHANGE = "change";
-	private static final String CLEAR = "clear";
-
-	
-	public SimpleCollectionValueModelTests(String name) {
-		super(name);
-	}
-
-	@Override
-	protected void setUp() throws Exception {
-		super.setUp();
-		this.bagHolder = new SimpleCollectionValueModel<String>(this.buildBag());
-		this.setHolder = new SimpleCollectionValueModel<String>(this.buildSet());
-	}
-
-	private Bag<String> buildBag() {
-		Bag<String> result = new HashBag<String>();
-		this.addItemsTo(result);
-		return result;
-	}
-
-	private Set<String> buildSet() {
-		Set<String> result = new HashSet<String>();
-		this.addItemsTo(result);
-		return result;
-	}
-
-	private void addItemsTo(Collection<String> c) {
-		c.add("foo");
-		c.add("bar");
-		c.add("baz");
-	}
-
-	private Bag<String> buildAddItems() {
-		Bag<String> result = new HashBag<String>();
-		result.add("joo");
-		result.add("jar");
-		result.add("jaz");
-		return result;
-	}
-
-	private Bag<String> buildRemoveItems() {
-		Bag<String> result = new HashBag<String>();
-		result.add("foo");
-		result.add("baz");
-		return result;
-	}
-
-	@Override
-	protected void tearDown() throws Exception {
-		TestTools.clear(this);
-		super.tearDown();
-	}
-
-	public void testIterator() {
-		assertEquals(this.buildBag(), CollectionTools.bag(this.bagHolder.iterator()));
-		assertEquals(this.buildSet(), CollectionTools.set(this.setHolder.iterator()));
-	}
-
-	public void testSize() {
-		assertEquals(this.buildBag().size(), CollectionTools.size(this.bagHolder.iterator()));
-		assertEquals(this.buildSet().size(), CollectionTools.size(this.setHolder.iterator()));
-	}
-
-	private boolean bagHolderContains(Object item) {
-		return CollectionTools.contains(this.bagHolder.iterator(), item);
-	}
-
-	private boolean setHolderContains(Object item) {
-		return CollectionTools.contains(this.setHolder.iterator(), item);
-	}
-
-	private boolean bagHolderContainsAll(Collection<String> items) {
-		return CollectionTools.containsAll(this.bagHolder.iterator(), items);
-	}
-
-	private boolean setHolderContainsAll(Collection<String> items) {
-		return CollectionTools.containsAll(this.setHolder.iterator(), items);
-	}
-
-	private boolean bagHolderContainsAny(Collection<String> items) {
-		Bag<String> bag = CollectionTools.bag(this.bagHolder.iterator());
-		for (String string : items) {
-			if (bag.contains(string)) {
-				return true;
-			}
-		}
-		return false;
-	}
-
-	private boolean setHolderContainsAny(Collection<String> items) {
-		Set<String> set = CollectionTools.set(this.setHolder.iterator());
-		for (String string : items) {
-			if (set.contains(string)) {
-				return true;
-			}
-		}
-		return false;
-	}
-
-	public void testAdd() {
-		assertFalse(this.bagHolderContains("joo"));
-		this.bagHolder.add("joo");
-		assertTrue(this.bagHolderContains("joo"));
-
-		assertFalse(this.bagHolderContains(null));
-		this.bagHolder.add(null);
-		assertTrue(this.bagHolderContains(null));
-
-		assertFalse(this.setHolderContains("joo"));
-		this.setHolder.add("joo");
-		assertTrue(this.setHolderContains("joo"));
-
-		assertFalse(this.setHolderContains(null));
-		this.setHolder.add(null);
-		assertTrue(this.setHolderContains(null));
-	}
-
-	public void testAddAll() {
-		assertFalse(this.bagHolderContainsAny(this.buildAddItems()));
-		this.bagHolder.addAll(this.buildAddItems());
-		assertTrue(this.bagHolderContainsAll(this.buildAddItems()));
-
-		assertFalse(this.setHolderContainsAny(this.buildAddItems()));
-		this.setHolder.addAll(this.buildAddItems());
-		assertTrue(this.setHolderContainsAll(this.buildAddItems()));
-	}
-
-	public void testRemove() {
-		assertTrue(this.bagHolderContains("bar"));
-		this.bagHolder.remove("bar");
-		assertFalse(this.bagHolderContains("bar"));
-
-		this.bagHolder.add(null);
-		assertTrue(this.bagHolderContains(null));
-		this.bagHolder.remove(null);
-		assertFalse(this.bagHolderContains(null));
-
-		assertTrue(this.setHolderContains("bar"));
-		this.setHolder.remove("bar");
-		assertFalse(this.setHolderContains("bar"));
-
-		this.setHolder.add(null);
-		assertTrue(this.setHolderContains(null));
-		this.setHolder.remove(null);
-		assertFalse(this.setHolderContains(null));
-	}
-
-	public void testRemoveAll() {
-		assertTrue(this.bagHolderContainsAll(this.buildRemoveItems()));
-		this.bagHolder.removeAll(this.buildRemoveItems());
-		assertFalse(this.bagHolderContainsAny(this.buildRemoveItems()));
-
-		assertTrue(this.setHolderContainsAll(this.buildRemoveItems()));
-		this.setHolder.removeAll(this.buildRemoveItems());
-		assertFalse(this.setHolderContainsAny(this.buildRemoveItems()));
-	}
-
-	public void testSetCollection() {
-		assertTrue(this.bagHolderContains("bar"));
-		assertFalse(this.bagHolderContains("jar"));
-		this.bagHolder.setCollection(this.buildAddItems());
-		assertFalse(this.bagHolderContains("bar"));
-		assertTrue(this.bagHolderContains("jar"));
-
-		this.bagHolder.add(null);
-		assertTrue(this.bagHolderContains(null));
-		this.bagHolder.remove(null);
-		assertFalse(this.bagHolderContains(null));
-
-		this.bagHolder.setCollection(new HashBag<String>());
-		assertFalse(this.bagHolderContains("jar"));
-
-		assertTrue(this.setHolderContains("bar"));
-		assertFalse(this.setHolderContains("jar"));
-		this.setHolder.setCollection(this.buildAddItems());
-		assertFalse(this.setHolderContains("bar"));
-		assertTrue(this.setHolderContains("jar"));
-
-		this.setHolder.add(null);
-		assertTrue(this.setHolderContains(null));
-		this.setHolder.remove(null);
-		assertFalse(this.setHolderContains(null));
-
-		this.setHolder.setCollection(new HashBag<String>());
-		assertFalse(this.setHolderContains("jar"));
-	}
-
-	public void testCollectionChange1() {
-		this.bagHolder.addCollectionChangeListener(this.buildBagListener());
-		this.verifyBagChange();
-
-		this.setHolder.addCollectionChangeListener(this.buildSetListener());
-		this.verifySetChange();
-	}
-
-	public void testCollectionChange2() {
-		this.bagHolder.addCollectionChangeListener(CollectionValueModel.VALUES, this.buildBagListener());
-		this.verifyBagChange();
-
-		this.setHolder.addCollectionChangeListener(CollectionValueModel.VALUES, this.buildSetListener());
-		this.verifySetChange();
-	}
-
-	private void verifyBagChange() {
-		this.bagEvent = null;
-		this.bagEventType = null;
-		this.bagHolder.add("foo");
-		this.verifyBagEvent(ADD, "foo");
-
-		this.bagEvent = null;
-		this.bagEventType = null;
-		this.bagHolder.add("foo");
-		this.verifyBagEvent(ADD, "foo");
-
-		this.bagEvent = null;
-		this.bagEventType = null;
-		this.bagHolder.add("joo");
-		this.verifyBagEvent(ADD, "joo");
-
-		this.bagEvent = null;
-		this.bagEventType = null;
-		this.bagHolder.add(null);
-		this.verifyBagEvent(ADD, null);
-
-		this.bagEvent = null;
-		this.bagEventType = null;
-		this.bagHolder.add(null);
-		this.verifyBagEvent(ADD, null);
-
-		this.bagEvent = null;
-		this.bagEventType = null;
-		this.bagHolder.remove("joo");
-		this.verifyBagEvent(REMOVE, "joo");
-
-		this.bagEvent = null;
-		this.bagEventType = null;
-		this.bagHolder.remove(null);
-		this.verifyBagEvent(REMOVE, null);
-
-		this.bagEvent = null;
-		this.bagEventType = null;
-		this.bagHolder.setCollection(this.buildBag());
-		this.verifyBagEvent(CHANGE);
-
-		this.bagEvent = null;
-		this.bagEventType = null;
-		this.bagHolder.addAll(this.buildBag());
-		this.verifyBagEvent(ADD);
-		assertEquals(this.buildBag(), CollectionTools.bag(this.bagEvent.items()));
-	}
-
-	private void verifySetChange() {
-		this.setEvent = null;
-		this.setEventType = null;
-		this.setHolder.add("foo");
-		assertNull(this.setEvent);
-		assertNull(this.setEventType);
-
-		this.setEvent = null;
-		this.setEventType = null;
-		this.setHolder.add("joo");
-		this.verifySetEvent(ADD, "joo");
-
-		this.setEvent = null;
-		this.setEventType = null;
-		this.setHolder.add("joo");
-		assertNull(this.setEvent);
-		assertNull(this.setEventType);
-
-		this.setEvent = null;
-		this.setEventType = null;
-		this.setHolder.add(null);
-		this.verifySetEvent(ADD, null);
-
-		this.setEvent = null;
-		this.setEventType = null;
-		this.setHolder.add(null);
-		assertNull(this.setEvent);
-		assertNull(this.setEventType);
-
-		this.setEvent = null;
-		this.setEventType = null;
-		this.setHolder.remove("joo");
-		this.verifySetEvent(REMOVE, "joo");
-
-		this.setEvent = null;
-		this.setEventType = null;
-		this.setHolder.remove("joo");
-		assertNull(this.setEvent);
-		assertNull(this.setEventType);
-
-		this.setEvent = null;
-		this.setEventType = null;
-		this.setHolder.remove(null);
-		this.verifySetEvent(REMOVE, null);
-
-		this.setEvent = null;
-		this.setEventType = null;
-		this.setHolder.setCollection(this.buildSet());
-		this.verifySetEvent(CHANGE);
-
-		this.setEvent = null;
-		this.setEventType = null;
-		this.setHolder.addAll(this.buildSet());
-		assertNull(this.setEvent);
-		assertNull(this.setEventType);
-	}
-
-	private CollectionChangeListener buildBagListener() {
-		return new CollectionChangeListener() {
-			public void itemsAdded(CollectionChangeEvent e) {
-				SimpleCollectionValueModelTests.this.bagEventType = ADD;
-				SimpleCollectionValueModelTests.this.bagEvent = e;
-			}
-			public void itemsRemoved(CollectionChangeEvent e) {
-				SimpleCollectionValueModelTests.this.bagEventType = REMOVE;
-				SimpleCollectionValueModelTests.this.bagEvent = e;
-			}
-			public void collectionCleared(CollectionChangeEvent e) {
-				SimpleCollectionValueModelTests.this.bagEventType = CLEAR;
-				SimpleCollectionValueModelTests.this.bagEvent = e;
-			}
-			public void collectionChanged(CollectionChangeEvent e) {
-				SimpleCollectionValueModelTests.this.bagEventType = CHANGE;
-				SimpleCollectionValueModelTests.this.bagEvent = e;
-			}
-		};
-	}
-
-	private CollectionChangeListener buildSetListener() {
-		return new CollectionChangeListener() {
-			public void itemsAdded(CollectionChangeEvent e) {
-				SimpleCollectionValueModelTests.this.setEventType = ADD;
-				SimpleCollectionValueModelTests.this.setEvent = e;
-			}
-			public void itemsRemoved(CollectionChangeEvent e) {
-				SimpleCollectionValueModelTests.this.setEventType = REMOVE;
-				SimpleCollectionValueModelTests.this.setEvent = e;
-			}
-			public void collectionCleared(CollectionChangeEvent e) {
-				SimpleCollectionValueModelTests.this.setEventType = CLEAR;
-				SimpleCollectionValueModelTests.this.setEvent = e;
-			}
-			public void collectionChanged(CollectionChangeEvent e) {
-				SimpleCollectionValueModelTests.this.setEventType = CHANGE;
-				SimpleCollectionValueModelTests.this.setEvent = e;
-			}
-		};
-	}
-
-	private void verifyBagEvent(String eventType) {
-		assertEquals(eventType, this.bagEventType);
-		assertEquals(this.bagHolder, this.bagEvent.getSource());
-		assertEquals(CollectionValueModel.VALUES, this.bagEvent.getCollectionName());
-	}
-
-	private void verifyBagEvent(String eventType, Object item) {
-		this.verifyBagEvent(eventType);
-		assertEquals(item, this.bagEvent.items().next());
-	}
-
-	private void verifySetEvent(String eventType) {
-		assertEquals(eventType, this.setEventType);
-		assertEquals(this.setHolder, this.setEvent.getSource());
-		assertEquals(CollectionValueModel.VALUES, this.setEvent.getCollectionName());
-	}
-
-	private void verifySetEvent(String eventType, Object item) {
-		this.verifySetEvent(eventType);
-		assertEquals(item, this.setEvent.items().next());
-	}
-
-}
diff --git a/jpa/tests/org.eclipse.jpt.utility.tests/src/org/eclipse/jpt/utility/tests/internal/model/value/SimpleListValueModelTests.java b/jpa/tests/org.eclipse.jpt.utility.tests/src/org/eclipse/jpt/utility/tests/internal/model/value/SimpleListValueModelTests.java
deleted file mode 100644
index e81ee45..0000000
--- a/jpa/tests/org.eclipse.jpt.utility.tests/src/org/eclipse/jpt/utility/tests/internal/model/value/SimpleListValueModelTests.java
+++ /dev/null
@@ -1,327 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2008 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.utility.tests.internal.model.value;
-
-import java.util.ArrayList;
-import java.util.Collection;
-import java.util.Iterator;
-import java.util.List;
-import java.util.Set;
-import junit.framework.TestCase;
-import org.eclipse.jpt.utility.internal.CollectionTools;
-import org.eclipse.jpt.utility.internal.model.value.SimpleListValueModel;
-import org.eclipse.jpt.utility.model.event.ListChangeEvent;
-import org.eclipse.jpt.utility.model.listener.ListChangeListener;
-import org.eclipse.jpt.utility.model.value.ListValueModel;
-import org.eclipse.jpt.utility.tests.internal.TestTools;
-
-public class SimpleListValueModelTests extends TestCase {
-	private SimpleListValueModel<String> listHolder;
-	ListChangeEvent event;
-	String eventType;
-
-	private static final String ADD = "add";
-	private static final String REMOVE = "remove";
-	private static final String REPLACE = "replace";
-	private static final String MOVE = "move";
-	private static final String CLEAR = "clear";
-	private static final String CHANGE = "change";
-
-	
-	public SimpleListValueModelTests(String name) {
-		super(name);
-	}
-
-	@Override
-	protected void setUp() throws Exception {
-		super.setUp();
-		this.listHolder = new SimpleListValueModel<String>(this.buildList());
-	}
-
-	private List<String> buildList() {
-		List<String> result = new ArrayList<String>();
-		result.add("foo");
-		result.add("bar");
-		result.add("baz");
-		return result;
-	}
-
-	private List<String> buildAddList() {
-		List<String> result = new ArrayList<String>();
-		result.add("joo");
-		result.add("jar");
-		result.add("jaz");
-		return result;
-	}
-
-//	private List<String> buildRemoveList() {
-//		List<String> result = new ArrayList<String>();
-//		result.add("foo");
-//		result.add("bar");
-//		return result;
-//	}
-//
-	@Override
-	protected void tearDown() throws Exception {
-		TestTools.clear(this);
-		super.tearDown();
-	}
-
-	public void testIterator() {
-		assertEquals(this.buildList(), CollectionTools.list(this.listHolder.iterator()));
-	}
-
-	public void testListIterator() {
-		assertEquals(this.buildList(), CollectionTools.list(this.listHolder.listIterator()));
-	}
-
-	public void testListIteratorInt() {
-		assertEquals(CollectionTools.list(this.buildList().listIterator(1)), CollectionTools.list(this.listHolder.listIterator(1)));
-	}
-
-	public void testSize() {
-		assertEquals(this.buildList().size(), this.listHolder.size());
-	}
-
-	private boolean listContains(Object item) {
-		return CollectionTools.contains(this.listHolder.listIterator(), item);
-	}
-
-	private boolean listContainsAll(Collection<String> items) {
-		return CollectionTools.containsAll(this.listHolder.listIterator(), items);
-	}
-
-	private boolean listContainsAny(Collection<String> items) {
-		Set<String> set = CollectionTools.set(this.listHolder.iterator());
-		for (Iterator<String> stream = items.iterator(); stream.hasNext(); ) {
-			if (set.contains(stream.next())) {
-				return true;
-			}
-		}
-		return false;
-	}
-
-	public void testAddObject() {
-		assertFalse(this.listContains("joo"));
-		this.listHolder.add("joo");
-		assertTrue(this.listContains("joo"));
-
-		assertFalse(this.listContains(null));
-		this.listHolder.add(null);
-		assertTrue(this.listContains(null));
-	}
-
-	public void testAddIntObject() {
-		assertFalse(this.listContains("joo"));
-		this.listHolder.add(2, "joo");
-		assertTrue(this.listContains("joo"));
-
-		assertFalse(this.listContains(null));
-		this.listHolder.add(0, null);
-		assertTrue(this.listContains(null));
-	}
-
-	public void testAddAllCollection() {
-		assertFalse(this.listContainsAny(this.buildAddList()));
-		this.listHolder.addAll(this.buildAddList());
-		assertTrue(this.listContainsAll(this.buildAddList()));
-	}
-
-	public void testAddAllIntCollection() {
-		assertFalse(this.listContainsAny(this.buildAddList()));
-		this.listHolder.addAll(2, this.buildAddList());
-		assertTrue(this.listContainsAll(this.buildAddList()));
-	}
-
-	public void testClear() {
-		assertFalse(this.listHolder.isEmpty());
-		this.listHolder.clear();
-		assertTrue(this.listHolder.isEmpty());
-	}
-
-	public void testContainsObject() {
-		assertTrue(this.listHolder.contains("foo"));
-		assertFalse(this.listHolder.contains("joo"));
-	}
-
-	public void testContainsAllCollection() {
-		Collection<String> c = new ArrayList<String>();
-		c.add("foo");
-		c.add("bar");
-		assertTrue(this.listHolder.containsAll(c));
-
-		c.add("joo");
-		assertFalse(this.listHolder.containsAll(c));
-	}
-
-	public void testEquals() {
-		assertEquals(new SimpleListValueModel<String>(this.buildList()), this.listHolder);
-		assertFalse(this.listHolder.equals(new SimpleListValueModel<String>(this.buildAddList())));
-		assertFalse(this.listHolder.equals(this.buildList()));
-		assertFalse(this.listHolder.equals(new SimpleListValueModel<String>()));
-	}
-
-	public void testGetInt() {
-		assertEquals("foo", this.listHolder.get(0));
-		assertEquals("bar", this.listHolder.get(1));
-		assertEquals("baz", this.listHolder.get(2));
-	}
-
-	public void testHashCode() {
-		assertEquals(new SimpleListValueModel<String>(this.buildList()).hashCode(), this.listHolder.hashCode());
-	}
-
-	public void testIndexOfObject() {
-		assertEquals(0, this.listHolder.indexOf("foo"));
-		assertEquals(1, this.listHolder.indexOf("bar"));
-		assertEquals(2, this.listHolder.indexOf("baz"));
-		assertEquals(-1, this.listHolder.indexOf("joo"));
-	}
-
-	public void testLastIndexOfObject() {
-		assertEquals(0, this.listHolder.lastIndexOf("foo"));
-		assertEquals(1, this.listHolder.lastIndexOf("bar"));
-		assertEquals(2, this.listHolder.lastIndexOf("baz"));
-		assertEquals(-1, this.listHolder.lastIndexOf("joo"));
-
-		this.listHolder.add("foo");
-		assertEquals(3, this.listHolder.lastIndexOf("foo"));
-	}
-
-	public void testIsEmpty() {
-		assertFalse(this.listHolder.isEmpty());
-		this.listHolder.clear();
-		assertTrue(this.listHolder.isEmpty());
-	}
-
-	public void testRemove() {
-		assertTrue(this.listContains("bar"));
-		this.listHolder.remove(this.buildList().indexOf("bar"));
-		assertFalse(this.listContains("bar"));
-
-		this.listHolder.add(1, null);
-		assertTrue(this.listContains(null));
-		this.listHolder.remove(1);
-		assertFalse(this.listContains(null));
-	}
-
-	public void testSetValues() {
-		List<String> newList = new ArrayList<String>();
-		newList.add("joo");
-		newList.add("jar");
-		newList.add("jaz");
-
-		assertTrue(this.listContains("bar"));
-		assertFalse(this.listContains("jar"));
-		this.listHolder.setList(newList);
-		assertFalse(this.listContains("bar"));
-		assertTrue(this.listContains("jar"));
-
-		this.listHolder.add(1, null);
-		assertTrue(this.listContains(null));
-		this.listHolder.remove(1);
-		assertFalse(this.listContains(null));
-
-		this.listHolder.setList(new ArrayList<String>());
-		assertFalse(this.listContains("jar"));
-	}
-
-	public void testListChange1() {
-		this.listHolder.addListChangeListener(this.buildListener());
-		this.verifyListChange();
-	}
-
-	public void testListChange2() {
-		this.listHolder.addListChangeListener(ListValueModel.LIST_VALUES, this.buildListener());
-		this.verifyListChange();
-	}
-
-	private void verifyListChange() {
-		this.event = null;
-		this.eventType = null;
-		this.listHolder.add(1, "joo");
-		this.verifyEvent(ADD, 1, "joo");
-
-		this.event = null;
-		this.eventType = null;
-		this.listHolder.add(1, null);
-		this.verifyEvent(ADD, 1, null);
-
-		this.event = null;
-		this.eventType = null;
-		this.listHolder.remove(1);
-		this.verifyEvent(REMOVE, 1, null);
-
-		this.event = null;
-		this.eventType = null;
-		this.listHolder.remove(1);
-		this.verifyEvent(REMOVE, 1, "joo");
-
-		this.event = null;
-		this.eventType = null;
-		this.listHolder.setList(this.buildList());
-		this.verifyEvent(CHANGE);
-
-		this.event = null;
-		this.eventType = null;
-		this.listHolder.addAll(0, this.buildList());
-		this.verifyEvent(ADD);
-		assertEquals(this.buildList(), CollectionTools.list(this.event.items()));
-
-		this.event = null;
-		this.eventType = null;
-		this.listHolder.set(0, "joo");
-		this.verifyEvent(REPLACE);
-		assertFalse(CollectionTools.contains(this.event.items(), "foo"));
-		assertTrue(CollectionTools.contains(this.event.items(), "joo"));
-	}
-
-	private ListChangeListener buildListener() {
-		return new ListChangeListener() {
-			public void itemsAdded(ListChangeEvent e) {
-				SimpleListValueModelTests.this.eventType = ADD;
-				SimpleListValueModelTests.this.event = e;
-			}
-			public void itemsRemoved(ListChangeEvent e) {
-				SimpleListValueModelTests.this.eventType = REMOVE;
-				SimpleListValueModelTests.this.event = e;
-			}
-			public void itemsReplaced(ListChangeEvent e) {
-				SimpleListValueModelTests.this.eventType = REPLACE;
-				SimpleListValueModelTests.this.event = e;
-			}
-			public void itemsMoved(ListChangeEvent e) {
-				SimpleListValueModelTests.this.eventType = MOVE;
-				SimpleListValueModelTests.this.event = e;
-			}
-			public void listCleared(ListChangeEvent e) {
-				SimpleListValueModelTests.this.eventType = CLEAR;
-				SimpleListValueModelTests.this.event = e;
-			}
-			public void listChanged(ListChangeEvent e) {
-				SimpleListValueModelTests.this.eventType = CHANGE;
-				SimpleListValueModelTests.this.event = e;
-			}
-		};
-	}
-
-	private void verifyEvent(String e) {
-		assertEquals(e, this.eventType);
-		assertEquals(this.listHolder, this.event.getSource());
-		assertEquals(ListValueModel.LIST_VALUES, this.event.getListName());
-	}
-
-	private void verifyEvent(String e, int index, Object item) {
-		this.verifyEvent(e);
-		assertEquals(index, this.event.getIndex());
-		assertEquals(item, this.event.items().next());
-	}
-
-}
diff --git a/jpa/tests/org.eclipse.jpt.utility.tests/src/org/eclipse/jpt/utility/tests/internal/model/value/SimplePropertyValueModelTests.java b/jpa/tests/org.eclipse.jpt.utility.tests/src/org/eclipse/jpt/utility/tests/internal/model/value/SimplePropertyValueModelTests.java
deleted file mode 100644
index 57ed0d8..0000000
--- a/jpa/tests/org.eclipse.jpt.utility.tests/src/org/eclipse/jpt/utility/tests/internal/model/value/SimplePropertyValueModelTests.java
+++ /dev/null
@@ -1,93 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2008 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.utility.tests.internal.model.value;
-
-import junit.framework.TestCase;
-import org.eclipse.jpt.utility.internal.model.value.SimplePropertyValueModel;
-import org.eclipse.jpt.utility.model.event.PropertyChangeEvent;
-import org.eclipse.jpt.utility.model.listener.PropertyChangeListener;
-import org.eclipse.jpt.utility.model.value.PropertyValueModel;
-import org.eclipse.jpt.utility.model.value.WritablePropertyValueModel;
-import org.eclipse.jpt.utility.tests.internal.TestTools;
-
-public class SimplePropertyValueModelTests extends TestCase {
-	private WritablePropertyValueModel<String> objectHolder;
-	PropertyChangeEvent event;
-
-	
-	public SimplePropertyValueModelTests(String name) {
-		super(name);
-	}
-
-	@Override
-	protected void setUp() throws Exception {
-		super.setUp();
-		this.objectHolder = new SimplePropertyValueModel<String>("foo");
-	}
-
-	@Override
-	protected void tearDown() throws Exception {
-		TestTools.clear(this);
-		super.tearDown();
-	}
-
-	public void testValue() {
-		assertEquals("foo", this.objectHolder.getValue());
-	}
-
-	public void testSetValue() {
-		this.objectHolder.setValue("bar");
-		assertEquals("bar", this.objectHolder.getValue());
-		this.objectHolder.setValue(null);
-		assertEquals(null, this.objectHolder.getValue());
-		this.objectHolder.setValue("baz");
-		assertEquals("baz", this.objectHolder.getValue());
-	}
-
-	public void testPropertyChange1() {
-		this.objectHolder.addPropertyChangeListener(this.buildListener());
-		this.verifyPropertyChange();
-	}
-
-	public void testPropertyChange2() {
-		this.objectHolder.addPropertyChangeListener(PropertyValueModel.VALUE, this.buildListener());
-		this.verifyPropertyChange();
-	}
-
-	private void verifyPropertyChange() {
-		this.event = null;
-		this.objectHolder.setValue("bar");
-		this.verifyEvent("foo", "bar");
-
-		this.event = null;
-		this.objectHolder.setValue(null);
-		this.verifyEvent("bar", null);
-
-		this.event = null;
-		this.objectHolder.setValue("baz");
-		this.verifyEvent(null, "baz");
-	}
-
-	private PropertyChangeListener buildListener() {
-		return new PropertyChangeListener() {
-			public void propertyChanged(PropertyChangeEvent e) {
-				SimplePropertyValueModelTests.this.event = e;
-			}
-		};
-	}
-
-	private void verifyEvent(Object oldValue, Object newValue) {
-		assertEquals(this.objectHolder, this.event.getSource());
-		assertEquals(PropertyValueModel.VALUE, this.event.getPropertyName());
-		assertEquals(oldValue, this.event.getOldValue());
-		assertEquals(newValue, this.event.getNewValue());
-	}
-
-}
diff --git a/jpa/tests/org.eclipse.jpt.utility.tests/src/org/eclipse/jpt/utility/tests/internal/model/value/SortedListValueModelAdapterTests.java b/jpa/tests/org.eclipse.jpt.utility.tests/src/org/eclipse/jpt/utility/tests/internal/model/value/SortedListValueModelAdapterTests.java
deleted file mode 100644
index 816bb59..0000000
--- a/jpa/tests/org.eclipse.jpt.utility.tests/src/org/eclipse/jpt/utility/tests/internal/model/value/SortedListValueModelAdapterTests.java
+++ /dev/null
@@ -1,196 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2008 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.utility.tests.internal.model.value;
-
-import java.util.ArrayList;
-import java.util.Collection;
-import java.util.Comparator;
-import java.util.List;
-import java.util.TreeSet;
-import junit.framework.TestCase;
-import org.eclipse.jpt.utility.internal.Bag;
-import org.eclipse.jpt.utility.internal.CollectionTools;
-import org.eclipse.jpt.utility.internal.HashBag;
-import org.eclipse.jpt.utility.internal.ReverseComparator;
-import org.eclipse.jpt.utility.internal.model.AbstractModel;
-import org.eclipse.jpt.utility.internal.model.value.SimpleCollectionValueModel;
-import org.eclipse.jpt.utility.internal.model.value.SortedListValueModelAdapter;
-import org.eclipse.jpt.utility.model.event.ListChangeEvent;
-import org.eclipse.jpt.utility.model.listener.ListChangeListener;
-import org.eclipse.jpt.utility.model.value.ListValueModel;
-import org.eclipse.jpt.utility.tests.internal.TestTools;
-
-public class SortedListValueModelAdapterTests extends TestCase {
-	private SortedListValueModelAdapter<String> adapter;
-	private SimpleCollectionValueModel<String> wrappedCollectionHolder;
-	private Collection<String> wrappedCollection;
-
-	
-	public SortedListValueModelAdapterTests(String name) {
-		super(name);
-	}
-
-	@Override
-	protected void setUp() throws Exception {
-		super.setUp();
-		this.wrappedCollection = new HashBag<String>();
-		this.wrappedCollectionHolder = new SimpleCollectionValueModel<String>(this.wrappedCollection);
-		this.adapter = new SortedListValueModelAdapter<String>(this.wrappedCollectionHolder);
-	}
-
-	@Override
-	protected void tearDown() throws Exception {
-		TestTools.clear(this);
-		super.tearDown();
-	}
-
-	private void verifyList(Collection<String> expected, ListValueModel<String> actual) {
-		this.verifyList(expected, actual, null);
-	}
-
-	private void verifyList(Collection<String> expected, ListValueModel<String> actual, Comparator<String> comparator) {
-		Collection<String> sortedSet = new TreeSet<String>(comparator);
-		sortedSet.addAll(expected);
-		List<String> expectedList = new ArrayList<String>(sortedSet);
-		List<String> actualList = CollectionTools.list(actual.iterator());
-		assertEquals(expectedList, actualList);
-	}
-
-	public void testAdd() {
-		this.adapter.addListChangeListener(ListValueModel.LIST_VALUES, new TestListChangeListener() {
-			@Override
-			public void itemsAdded(ListChangeEvent e) {/* OK */}
-			@Override
-			public void itemsReplaced(ListChangeEvent e) {/* OK */}
-		});
-		this.wrappedCollectionHolder.add("foo");
-		this.wrappedCollectionHolder.add("bar");
-		this.wrappedCollectionHolder.add("baz");
-		assertEquals(3, this.adapter.size());
-		this.verifyList(this.wrappedCollection, this.adapter);
-	}
-
-	public void testAddItem() {
-		List<String> synchList = new CoordinatedList<String>(this.adapter);
-		Bag<String> synchCollection = new CoordinatedBag<String>(this.wrappedCollectionHolder);
-		this.wrappedCollectionHolder.add("foo");
-		assertTrue(this.wrappedCollection.contains("foo"));
-		this.wrappedCollectionHolder.add("bar");
-		this.wrappedCollectionHolder.add("baz");
-		this.wrappedCollectionHolder.add("joo");
-		this.wrappedCollectionHolder.add("jar");
-		this.wrappedCollectionHolder.add("jaz");
-		assertEquals(6, this.wrappedCollection.size());
-
-		this.verifyList(this.wrappedCollection, this.adapter);
-		assertEquals(this.wrappedCollection, CollectionTools.collection(synchList.iterator()));
-		assertEquals(this.wrappedCollection, synchCollection);
-	}
-
-	public void testRemoveItem() {
-		List<String> synchList = new CoordinatedList<String>(this.adapter);
-		Bag<String> synchCollection = new CoordinatedBag<String>(this.wrappedCollectionHolder);
-		this.wrappedCollectionHolder.add("foo");
-		this.wrappedCollectionHolder.add("bar");
-		this.wrappedCollectionHolder.add("baz");
-		this.wrappedCollectionHolder.add("joo");
-		this.wrappedCollectionHolder.add("jar");
-		this.wrappedCollectionHolder.add("jaz");
-		this.wrappedCollectionHolder.remove("jaz");
-		assertFalse(this.wrappedCollection.contains("jaz"));
-		this.wrappedCollectionHolder.remove("foo");
-		assertFalse(this.wrappedCollection.contains("foo"));
-		assertEquals(4, this.wrappedCollection.size());
-
-		this.verifyList(this.wrappedCollection, this.adapter);
-		assertEquals(this.wrappedCollection, CollectionTools.collection(synchList.iterator()));
-		assertEquals(this.wrappedCollection, synchCollection);
-	}
-
-	public void testListSynch() {
-		this.adapter.addListChangeListener(ListValueModel.LIST_VALUES, new TestListChangeListener() {
-			@Override
-			public void itemsAdded(ListChangeEvent e) {/* OK */}
-			@Override
-			public void itemsRemoved(ListChangeEvent e) {/* OK */}
-			@Override
-			public void itemsReplaced(ListChangeEvent e) {/* OK */}
-		});
-		this.wrappedCollectionHolder.add("foo");
-		this.wrappedCollectionHolder.add("bar");
-		this.wrappedCollectionHolder.add("baz");
-		this.wrappedCollectionHolder.add("joo");
-		this.wrappedCollectionHolder.add("jar");
-		this.wrappedCollectionHolder.add("jaz");
-		this.wrappedCollectionHolder.remove("jaz");
-		assertFalse(this.wrappedCollection.contains("jaz"));
-		this.wrappedCollectionHolder.remove("foo");
-		assertFalse(this.wrappedCollection.contains("foo"));
-		assertEquals(4, this.wrappedCollection.size());
-
-		this.verifyList(this.wrappedCollection, this.adapter);
-	}
-
-	public void testSetComparator() {
-		List<String> synchList = new CoordinatedList<String>(this.adapter);
-		Bag<String> synchCollection = new CoordinatedBag<String>(this.wrappedCollectionHolder);
-		this.wrappedCollectionHolder.add("foo");
-		assertTrue(this.wrappedCollection.contains("foo"));
-		this.wrappedCollectionHolder.add("bar");
-		this.wrappedCollectionHolder.add("baz");
-		this.wrappedCollectionHolder.add("joo");
-		this.wrappedCollectionHolder.add("jar");
-		this.wrappedCollectionHolder.add("jaz");
-		assertEquals(6, this.wrappedCollection.size());
-
-		this.verifyList(this.wrappedCollection, this.adapter);
-		assertEquals(this.wrappedCollection, CollectionTools.collection(synchList.iterator()));
-		assertEquals(this.wrappedCollection, synchCollection);
-
-		this.adapter.setComparator(new ReverseComparator<String>());
-		this.verifyList(this.wrappedCollection, this.adapter, new ReverseComparator<String>());
-		assertEquals(this.wrappedCollection, CollectionTools.collection(synchList.iterator()));
-		assertEquals(this.wrappedCollection, synchCollection);
-	}
-
-	public void testHasListeners() {
-		assertFalse(((AbstractModel) this.adapter).hasAnyListChangeListeners(ListValueModel.LIST_VALUES));
-		CoordinatedList<String> synchList = new CoordinatedList<String>(this.adapter);
-		assertTrue(((AbstractModel) this.adapter).hasAnyListChangeListeners(ListValueModel.LIST_VALUES));
-		this.adapter.removeListChangeListener(ListValueModel.LIST_VALUES, synchList);
-		assertFalse(((AbstractModel) this.adapter).hasAnyListChangeListeners(ListValueModel.LIST_VALUES));
-		this.adapter.addListChangeListener(synchList);
-		assertTrue(((AbstractModel) this.adapter).hasAnyListChangeListeners(ListValueModel.LIST_VALUES));
-		this.adapter.removeListChangeListener(synchList);
-		assertFalse(((AbstractModel) this.adapter).hasAnyListChangeListeners(ListValueModel.LIST_VALUES));
-	}
-
-	class TestListChangeListener implements ListChangeListener {
-		public void itemsAdded(ListChangeEvent e) {
-			fail("unexpected event");
-		}
-		public void itemsRemoved(ListChangeEvent e) {
-			fail("unexpected event");
-		}
-		public void itemsReplaced(ListChangeEvent e) {
-			fail("unexpected event");
-		}
-		public void itemsMoved(ListChangeEvent e) {
-			fail("unexpected event");
-		}
-		public void listCleared(ListChangeEvent e) {
-			fail("unexpected event");
-		}
-		public void listChanged(ListChangeEvent e) {
-			fail("unexpected event");
-		}
-	}
-
-}
diff --git a/jpa/tests/org.eclipse.jpt.utility.tests/src/org/eclipse/jpt/utility/tests/internal/model/value/StaticCollectionValueModelTests.java b/jpa/tests/org.eclipse.jpt.utility.tests/src/org/eclipse/jpt/utility/tests/internal/model/value/StaticCollectionValueModelTests.java
deleted file mode 100644
index dca32f9..0000000
--- a/jpa/tests/org.eclipse.jpt.utility.tests/src/org/eclipse/jpt/utility/tests/internal/model/value/StaticCollectionValueModelTests.java
+++ /dev/null
@@ -1,61 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2008 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.utility.tests.internal.model.value;
-
-import java.util.Collection;
-import junit.framework.TestCase;
-import org.eclipse.jpt.utility.internal.CollectionTools;
-import org.eclipse.jpt.utility.internal.HashBag;
-import org.eclipse.jpt.utility.internal.model.value.StaticCollectionValueModel;
-import org.eclipse.jpt.utility.model.value.CollectionValueModel;
-import org.eclipse.jpt.utility.tests.internal.TestTools;
-
-public class StaticCollectionValueModelTests extends TestCase {
-
-	private static final Collection<String> COLLECTION = buildCollection();
-	private static Collection<String> buildCollection() {
-		Collection<String> result = new HashBag<String>();
-		result.add("foo");
-		result.add("bar");
-		return result;
-	}
-
-	private CollectionValueModel<String> collectionHolder;
-
-
-	public StaticCollectionValueModelTests(String name) {
-		super(name);
-	}
-
-	@Override
-	protected void setUp() throws Exception {
-		super.setUp();
-		this.collectionHolder = this.buildCollectionHolder();
-	}
-
-	private CollectionValueModel<String> buildCollectionHolder() {
-		return new StaticCollectionValueModel<String>(COLLECTION);
-	}
-
-	@Override
-	protected void tearDown() throws Exception {
-		TestTools.clear(this);
-		super.tearDown();
-	}
-
-	public void testIterator() {
-		assertEquals(buildCollection(), CollectionTools.bag(this.collectionHolder.iterator()));
-	}
-
-	public void testSize() {
-		assertEquals(buildCollection().size(), this.collectionHolder.size());
-	}
-
-}
diff --git a/jpa/tests/org.eclipse.jpt.utility.tests/src/org/eclipse/jpt/utility/tests/internal/model/value/StaticListValueModelTests.java b/jpa/tests/org.eclipse.jpt.utility.tests/src/org/eclipse/jpt/utility/tests/internal/model/value/StaticListValueModelTests.java
deleted file mode 100644
index 0d7cbc6..0000000
--- a/jpa/tests/org.eclipse.jpt.utility.tests/src/org/eclipse/jpt/utility/tests/internal/model/value/StaticListValueModelTests.java
+++ /dev/null
@@ -1,64 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2008 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.utility.tests.internal.model.value;
-
-import java.util.ArrayList;
-import java.util.List;
-import junit.framework.TestCase;
-import org.eclipse.jpt.utility.internal.CollectionTools;
-import org.eclipse.jpt.utility.internal.model.value.StaticListValueModel;
-import org.eclipse.jpt.utility.model.value.ListValueModel;
-import org.eclipse.jpt.utility.tests.internal.TestTools;
-
-public class StaticListValueModelTests extends TestCase {
-
-	private static final List<String> LIST = buildList();
-	private static List<String> buildList() {
-		List<String> result = new ArrayList<String>();
-		result.add("foo");
-		result.add("bar");
-		return result;
-	}
-
-	private ListValueModel<String> listHolder;
-
-
-	public StaticListValueModelTests(String name) {
-		super(name);
-	}
-
-	@Override
-	protected void setUp() throws Exception {
-		super.setUp();
-		this.listHolder = new StaticListValueModel<String>(LIST);
-	}
-
-	@Override
-	protected void tearDown() throws Exception {
-		TestTools.clear(this);
-		super.tearDown();
-	}
-
-	public void testGet() {
-		List<String> expected = buildList();
-		for (int i = 0; i < this.listHolder.size(); i++) {
-			assertEquals(expected.get(i), this.listHolder.get(i));
-		}
-	}
-
-	public void testIterator() {
-		assertEquals(buildList(), CollectionTools.list(this.listHolder.listIterator()));
-	}
-
-	public void testSize() {
-		assertEquals(buildList().size(), this.listHolder.size());
-	}
-
-}
diff --git a/jpa/tests/org.eclipse.jpt.utility.tests/src/org/eclipse/jpt/utility/tests/internal/model/value/StaticValueModelTests.java b/jpa/tests/org.eclipse.jpt.utility.tests/src/org/eclipse/jpt/utility/tests/internal/model/value/StaticValueModelTests.java
deleted file mode 100644
index 380cf17..0000000
--- a/jpa/tests/org.eclipse.jpt.utility.tests/src/org/eclipse/jpt/utility/tests/internal/model/value/StaticValueModelTests.java
+++ /dev/null
@@ -1,46 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2008 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.utility.tests.internal.model.value;
-
-import junit.framework.TestCase;
-import org.eclipse.jpt.utility.internal.model.value.StaticPropertyValueModel;
-import org.eclipse.jpt.utility.model.value.PropertyValueModel;
-import org.eclipse.jpt.utility.tests.internal.TestTools;
-
-public class StaticValueModelTests extends TestCase {
-	private PropertyValueModel<String> objectHolder;
-	private static final PropertyValueModel<String> OBJECT_HOLDER = new StaticPropertyValueModel<String>("foo");
-
-	
-	public StaticValueModelTests(String name) {
-		super(name);
-	}
-
-	@Override
-	protected void setUp() throws Exception {
-		super.setUp();
-		this.objectHolder = OBJECT_HOLDER;
-	}
-
-	@Override
-	protected void tearDown() throws Exception {
-		TestTools.clear(this);
-		super.tearDown();
-	}
-
-	public void testValue() {
-		assertEquals("foo", this.objectHolder.getValue());
-	}
-
-	public void testToString() {
-		assertTrue(this.objectHolder.toString().indexOf("foo") >= 0);
-	}
-
-}
diff --git a/jpa/tests/org.eclipse.jpt.utility.tests/src/org/eclipse/jpt/utility/tests/internal/model/value/TransformationListValueModelAdapterTests.java b/jpa/tests/org.eclipse.jpt.utility.tests/src/org/eclipse/jpt/utility/tests/internal/model/value/TransformationListValueModelAdapterTests.java
deleted file mode 100644
index 28dfb67..0000000
--- a/jpa/tests/org.eclipse.jpt.utility.tests/src/org/eclipse/jpt/utility/tests/internal/model/value/TransformationListValueModelAdapterTests.java
+++ /dev/null
@@ -1,317 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2008 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.utility.tests.internal.model.value;
-
-import java.util.ArrayList;
-import java.util.Collection;
-import java.util.Collections;
-import java.util.Iterator;
-import java.util.List;
-import junit.framework.TestCase;
-import org.eclipse.jpt.utility.internal.CollectionTools;
-import org.eclipse.jpt.utility.internal.Transformer;
-import org.eclipse.jpt.utility.internal.model.AbstractModel;
-import org.eclipse.jpt.utility.internal.model.value.SimpleListValueModel;
-import org.eclipse.jpt.utility.internal.model.value.TransformationListValueModelAdapter;
-import org.eclipse.jpt.utility.model.event.ListChangeEvent;
-import org.eclipse.jpt.utility.model.listener.ListChangeListener;
-import org.eclipse.jpt.utility.model.value.ListValueModel;
-import org.eclipse.jpt.utility.tests.internal.TestTools;
-
-public class TransformationListValueModelAdapterTests extends TestCase {
-	private SimpleListValueModel<String> listHolder;
-	private ListValueModel<String> transformedListHolder;
-	ListChangeEvent event;
-	String eventType;
-
-	private static final String ADD = "add";
-	private static final String REMOVE = "remove";
-	private static final String REPLACE = "replace";
-	private static final String MOVE = "move";
-	private static final String CLEAR = "clear";
-	private static final String CHANGE = "change";
-
-
-	public TransformationListValueModelAdapterTests(String name) {
-		super(name);
-	}
-
-	@Override
-	protected void setUp() throws Exception {
-		super.setUp();
-		this.listHolder = new SimpleListValueModel<String>(this.buildList());
-		this.transformedListHolder = this.buildTransformedListHolder(this.listHolder);
-	}
-
-	private List<String> buildList() {
-		List<String> result = new ArrayList<String>();
-		result.add("foo");
-		result.add("bar");
-		result.add("baz");
-		return result;
-	}
-
-	private List<String> buildTransformedList() {
-		return this.transform(this.buildList());
-	}
-
-	private List<String> transform(List<String> list) {
-		List<String> result = new ArrayList<String>(list.size());
-		for (String string : list) {
-			if (string == null) {
-				result.add(null);
-			} else {
-				result.add(string.toUpperCase());
-			}
-		}
-		return result;
-	}
-
-	private List<String> buildAddList() {
-		List<String> result = new ArrayList<String>();
-		result.add("joo");
-		result.add("jar");
-		result.add("jaz");
-		return result;
-	}
-
-	private List<String> buildTransformedAddList() {
-		return this.transform(this.buildAddList());
-	}
-
-//	private List<String> buildRemoveList() {
-//		List<String> result = new ArrayList<String>();
-//		result.add("foo");
-//		result.add("bar");
-//		return result;
-//	}
-//
-//	private List<String> buildTransformedRemoveList() {
-//		return this.transform(this.buildRemoveList());
-//	}
-//
-	ListValueModel<String> buildTransformedListHolder(ListValueModel<String> lvm) {
-		return new TransformationListValueModelAdapter<String, String>(lvm) {
-			@Override
-			protected String transformItem(String s) {
-				return (s == null) ? null : s.toUpperCase();
-			}
-		};
-	}
-
-	@Override
-	protected void tearDown() throws Exception {
-		TestTools.clear(this);
-		super.tearDown();
-	}
-
-	public void testIterator() {
-		this.transformedListHolder.addListChangeListener(ListValueModel.LIST_VALUES, this.buildListener());
-		assertEquals(this.buildTransformedList(), CollectionTools.list(this.transformedListHolder.iterator()));
-	}
-
-	public void testStaleValues() {
-		ListChangeListener listener = this.buildListener();
-		this.transformedListHolder.addListChangeListener(ListValueModel.LIST_VALUES, listener);
-		assertEquals(this.buildTransformedList(), CollectionTools.list(this.transformedListHolder.iterator()));
-
-		this.transformedListHolder.removeListChangeListener(ListValueModel.LIST_VALUES, listener);
-		assertEquals(Collections.EMPTY_LIST, CollectionTools.list(this.transformedListHolder.iterator()));
-	}
-
-	public void testSize() {
-		this.transformedListHolder.addListChangeListener(ListValueModel.LIST_VALUES, this.buildListener());
-		assertEquals(this.buildTransformedList().size(), CollectionTools.size(this.transformedListHolder.iterator()));
-	}
-
-	private boolean transformedListContains(Object item) {
-		return CollectionTools.contains(this.transformedListHolder.iterator(), item);
-	}
-
-	private boolean transformedListContainsAll(Collection<String> items) {
-		return CollectionTools.containsAll(this.transformedListHolder.iterator(), items);
-	}
-
-	private boolean transformedListContainsAny(Collection<String> items) {
-		List<String> transformedList = CollectionTools.list(this.transformedListHolder.iterator());
-		for (Iterator<String> stream = items.iterator(); stream.hasNext(); ) {
-			if (transformedList.contains(stream.next())) {
-				return true;
-			}
-		}
-		return false;
-	}
-
-	public void testAdd() {
-		this.transformedListHolder.addListChangeListener(ListValueModel.LIST_VALUES, this.buildListener());
-
-		assertFalse(this.transformedListContains("JOO"));
-		this.listHolder.add(2, "joo");
-		assertTrue(this.transformedListContains("JOO"));
-
-		assertFalse(this.transformedListContains(null));
-		this.listHolder.add(0, null);
-		assertTrue(this.transformedListContains(null));
-	}
-
-	public void testAddAll() {
-		this.transformedListHolder.addListChangeListener(ListValueModel.LIST_VALUES, this.buildListener());
-
-		assertFalse(this.transformedListContainsAny(this.buildTransformedAddList()));
-		this.listHolder.addAll(2, this.buildAddList());
-		assertTrue(this.transformedListContainsAll(this.buildTransformedAddList()));
-	}
-
-	public void testRemove() {
-		this.transformedListHolder.addListChangeListener(ListValueModel.LIST_VALUES, this.buildListener());
-
-		assertTrue(this.transformedListContains("BAR"));
-		this.listHolder.remove(this.buildList().indexOf("bar"));
-		assertFalse(this.transformedListContains("BAR"));
-
-		this.listHolder.add(1, null);
-		assertTrue(this.transformedListContains(null));
-		this.listHolder.remove(1);
-		assertFalse(this.transformedListContains(null));
-	}
-
-	public void testListChangeGeneric() {
-		this.transformedListHolder.addListChangeListener(this.buildListener());
-		this.verifyListChange();
-	}
-
-	public void testListChangeNamed() {
-		this.transformedListHolder.addListChangeListener(ListValueModel.LIST_VALUES, this.buildListener());
-		this.verifyListChange();
-	}
-
-	private void verifyListChange() {
-		this.event = null;
-		this.eventType = null;
-		this.listHolder.add(1, "joo");
-		this.verifyEvent(ADD, 1, "JOO");
-
-		this.event = null;
-		this.eventType = null;
-		this.listHolder.add(1, null);
-		this.verifyEvent(ADD, 1, null);
-
-		this.event = null;
-		this.eventType = null;
-		this.listHolder.remove(1);
-		this.verifyEvent(REMOVE, 1, null);
-
-		this.event = null;
-		this.eventType = null;
-		this.listHolder.remove(1);
-		this.verifyEvent(REMOVE, 1, "JOO");
-
-		this.event = null;
-		this.eventType = null;
-		this.listHolder.addAll(0, this.buildList());
-		this.verifyEvent(ADD);
-		assertEquals(this.buildTransformedList(), CollectionTools.list(this.event.items()));
-
-		this.event = null;
-		this.eventType = null;
-		this.listHolder.set(0, "joo");
-		this.verifyEvent(REPLACE);
-		assertFalse(CollectionTools.contains(this.event.items(), "FOO"));
-		assertTrue(CollectionTools.contains(this.event.items(), "JOO"));
-	}
-
-	private ListChangeListener buildListener() {
-		return new ListChangeListener() {
-			public void itemsAdded(ListChangeEvent e) {
-				TransformationListValueModelAdapterTests.this.eventType = ADD;
-				TransformationListValueModelAdapterTests.this.event = e;
-			}
-			public void itemsRemoved(ListChangeEvent e) {
-				TransformationListValueModelAdapterTests.this.eventType = REMOVE;
-				TransformationListValueModelAdapterTests.this.event = e;
-			}
-			public void itemsReplaced(ListChangeEvent e) {
-				TransformationListValueModelAdapterTests.this.eventType = REPLACE;
-				TransformationListValueModelAdapterTests.this.event = e;
-			}
-			public void itemsMoved(ListChangeEvent e) {
-				TransformationListValueModelAdapterTests.this.eventType = MOVE;
-				TransformationListValueModelAdapterTests.this.event = e;
-			}
-			public void listCleared(ListChangeEvent e) {
-				TransformationListValueModelAdapterTests.this.eventType = CLEAR;
-				TransformationListValueModelAdapterTests.this.event = e;
-			}
-			public void listChanged(ListChangeEvent e) {
-				TransformationListValueModelAdapterTests.this.eventType = CHANGE;
-				TransformationListValueModelAdapterTests.this.event = e;
-			}
-		};
-	}
-
-	private void verifyEvent(String type) {
-		assertEquals(type, this.eventType);
-		assertEquals(this.transformedListHolder, this.event.getSource());
-		assertEquals(ListValueModel.LIST_VALUES, this.event.getListName());
-	}
-
-	private void verifyEvent(String type, int index, Object item) {
-		this.verifyEvent(type);
-		assertEquals(index, this.event.getIndex());
-		assertEquals(item, this.event.items().next());
-	}
-
-	public void testHasListeners() {
-		/*
-		 * adding listeners to the transformed list will cause listeners
-		 * to be added to the wrapped list;
-		 * likewise, removing listeners from the transformed list will
-		 * cause listeners to be removed from the wrapped list
-		 */
-		assertFalse(((AbstractModel) this.listHolder).hasAnyListChangeListeners(ListValueModel.LIST_VALUES));
-
-		ListChangeListener listener = this.buildListener();
-
-		this.transformedListHolder.addListChangeListener(ListValueModel.LIST_VALUES, listener);
-		assertTrue(((AbstractModel) this.listHolder).hasAnyListChangeListeners(ListValueModel.LIST_VALUES));
-
-		this.transformedListHolder.removeListChangeListener(ListValueModel.LIST_VALUES, listener);
-		assertFalse(((AbstractModel) this.listHolder).hasAnyListChangeListeners(ListValueModel.LIST_VALUES));
-
-		this.transformedListHolder.addListChangeListener(listener);
-		assertTrue(((AbstractModel) this.listHolder).hasAnyListChangeListeners(ListValueModel.LIST_VALUES));
-
-		this.transformedListHolder.removeListChangeListener(listener);
-		assertFalse(((AbstractModel) this.listHolder).hasAnyListChangeListeners(ListValueModel.LIST_VALUES));
-	}
-
-
-	/**
-	 * execute the same set of tests again, but by passing a Transformer to the adapter
-	 * (as opposed to overriding #transformItem(Object))
-	 */
-	public static class TransformerTests extends TransformationListValueModelAdapterTests {
-		public TransformerTests(String name) {
-			super(name);
-		}
-		@Override
-		ListValueModel<String> buildTransformedListHolder(ListValueModel<String> lvm) {
-			return new TransformationListValueModelAdapter<String, String>(lvm, this.buildTransformer());
-		}
-		private Transformer<String, String> buildTransformer() {
-			return new Transformer<String, String>() {
-				public String transform(String s) {
-					return (s == null) ? null : s.toUpperCase();
-				}
-			};
-		}
-	}
-	
-}
diff --git a/jpa/tests/org.eclipse.jpt.utility.tests/src/org/eclipse/jpt/utility/tests/internal/model/value/TransformationPropertyValueModelTests.java b/jpa/tests/org.eclipse.jpt.utility.tests/src/org/eclipse/jpt/utility/tests/internal/model/value/TransformationPropertyValueModelTests.java
deleted file mode 100644
index a732202..0000000
--- a/jpa/tests/org.eclipse.jpt.utility.tests/src/org/eclipse/jpt/utility/tests/internal/model/value/TransformationPropertyValueModelTests.java
+++ /dev/null
@@ -1,185 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2008 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.utility.tests.internal.model.value;
-
-import junit.framework.TestCase;
-import org.eclipse.jpt.utility.internal.BidiTransformer;
-import org.eclipse.jpt.utility.internal.model.AbstractModel;
-import org.eclipse.jpt.utility.internal.model.value.SimplePropertyValueModel;
-import org.eclipse.jpt.utility.internal.model.value.TransformationWritablePropertyValueModel;
-import org.eclipse.jpt.utility.model.event.PropertyChangeEvent;
-import org.eclipse.jpt.utility.model.listener.PropertyChangeListener;
-import org.eclipse.jpt.utility.model.value.PropertyValueModel;
-import org.eclipse.jpt.utility.model.value.WritablePropertyValueModel;
-import org.eclipse.jpt.utility.tests.internal.TestTools;
-
-@SuppressWarnings("nls")
-public class TransformationPropertyValueModelTests extends TestCase {
-	private WritablePropertyValueModel<String> objectHolder;
-	PropertyChangeEvent event;
-
-	private WritablePropertyValueModel<String> transformationObjectHolder;
-	PropertyChangeEvent transformationEvent;
-
-	public TransformationPropertyValueModelTests(String name) {
-		super(name);
-	}
-
-	@Override
-	protected void setUp() throws Exception {
-		super.setUp();
-		this.objectHolder = new SimplePropertyValueModel<String>("foo");
-		this.transformationObjectHolder = new TransformationWritablePropertyValueModel<String, String>(this.objectHolder, this.buildTransformer());
-	}
-
-	private BidiTransformer<String, String> buildTransformer() {
-		return new BidiTransformer<String, String>() {
-			public String transform(String s) {
-				return (s == null) ? null : s.toUpperCase();
-			}
-			public String reverseTransform(String s) {
-				return (s == null) ? null : s.toLowerCase();
-			}
-		};
-	}
-
-	@Override
-	protected void tearDown() throws Exception {
-		TestTools.clear(this);
-		super.tearDown();
-	}
-
-	public void testValue() {
-		assertEquals("foo", this.objectHolder.getValue());
-		assertEquals("FOO", this.transformationObjectHolder.getValue());
-
-		this.objectHolder.setValue("bar");
-		assertEquals("bar", this.objectHolder.getValue());
-		assertEquals("BAR", this.transformationObjectHolder.getValue());
-
-		this.objectHolder.setValue("baz");
-		assertEquals("baz", this.objectHolder.getValue());
-		assertEquals("BAZ", this.transformationObjectHolder.getValue());
-
-		this.objectHolder.setValue(null);
-		assertNull(this.objectHolder.getValue());
-		assertNull(this.transformationObjectHolder.getValue());
-
-		this.objectHolder.setValue("foo");
-		assertEquals("foo", this.objectHolder.getValue());
-		assertEquals("FOO", this.transformationObjectHolder.getValue());
-	}
-
-	public void testSetValue() {
-		this.transformationObjectHolder.setValue("BAR");
-		assertEquals("bar", this.objectHolder.getValue());
-		assertEquals("BAR", this.transformationObjectHolder.getValue());
-
-		this.transformationObjectHolder.setValue("Foo");
-		assertEquals("foo", this.objectHolder.getValue());
-		assertEquals("FOO", this.transformationObjectHolder.getValue());
-
-		this.transformationObjectHolder.setValue(null);
-		assertNull(this.objectHolder.getValue());
-		assertNull(this.transformationObjectHolder.getValue());
-
-		this.transformationObjectHolder.setValue("baz");
-		assertEquals("baz", this.objectHolder.getValue());
-		assertEquals("BAZ", this.transformationObjectHolder.getValue());
-	}
-
-	public void testLazyListening() {
-		assertTrue(((AbstractModel) this.objectHolder).hasNoPropertyChangeListeners(PropertyValueModel.VALUE));
-		PropertyChangeListener listener = this.buildTransformationListener();
-		this.transformationObjectHolder.addPropertyChangeListener(listener);
-		assertTrue(((AbstractModel) this.objectHolder).hasAnyPropertyChangeListeners(PropertyValueModel.VALUE));
-		this.transformationObjectHolder.removePropertyChangeListener(listener);
-		assertTrue(((AbstractModel) this.objectHolder).hasNoPropertyChangeListeners(PropertyValueModel.VALUE));
-
-		this.transformationObjectHolder.addPropertyChangeListener(PropertyValueModel.VALUE, listener);
-		assertTrue(((AbstractModel) this.objectHolder).hasAnyPropertyChangeListeners(PropertyValueModel.VALUE));
-		this.transformationObjectHolder.removePropertyChangeListener(PropertyValueModel.VALUE, listener);
-		assertTrue(((AbstractModel) this.objectHolder).hasNoPropertyChangeListeners(PropertyValueModel.VALUE));
-	}
-
-	public void testPropertyChange1() {
-		this.objectHolder.addPropertyChangeListener(this.buildListener());
-		this.transformationObjectHolder.addPropertyChangeListener(this.buildTransformationListener());
-		this.verifyPropertyChanges();
-	}
-
-	public void testPropertyChange2() {
-		this.objectHolder.addPropertyChangeListener(PropertyValueModel.VALUE, this.buildListener());
-		this.transformationObjectHolder.addPropertyChangeListener(PropertyValueModel.VALUE, this.buildTransformationListener());
-		this.verifyPropertyChanges();
-	}
-
-	private void verifyPropertyChanges() {
-		this.event = null;
-		this.transformationEvent = null;
-		this.objectHolder.setValue("bar");
-		this.verifyEvent(this.event, this.objectHolder, "foo", "bar");
-		this.verifyEvent(this.transformationEvent, this.transformationObjectHolder, "FOO", "BAR");
-
-		this.event = null;
-		this.transformationEvent = null;
-		this.objectHolder.setValue("baz");
-		this.verifyEvent(this.event, this.objectHolder, "bar", "baz");
-		this.verifyEvent(this.transformationEvent, this.transformationObjectHolder, "BAR", "BAZ");
-
-		this.event = null;
-		this.transformationEvent = null;
-		this.objectHolder.setValue("Foo");
-		this.verifyEvent(this.event, this.objectHolder, "baz", "Foo");
-		this.verifyEvent(this.transformationEvent, this.transformationObjectHolder, "BAZ", "FOO");
-
-		this.event = null;
-		this.transformationEvent = null;
-		this.objectHolder.setValue("FOO");
-		this.verifyEvent(this.event, this.objectHolder, "Foo", "FOO");
-		assertNull(this.transformationEvent);
-
-		this.event = null;
-		this.transformationEvent = null;
-		this.objectHolder.setValue(null);
-		this.verifyEvent(this.event, this.objectHolder, "FOO", null);
-		this.verifyEvent(this.transformationEvent, this.transformationObjectHolder, "FOO", null);
-
-		this.event = null;
-		this.transformationEvent = null;
-		this.objectHolder.setValue("bar");
-		this.verifyEvent(this.event, this.objectHolder, null, "bar");
-		this.verifyEvent(this.transformationEvent, this.transformationObjectHolder, null, "BAR");
-	}
-
-	private PropertyChangeListener buildListener() {
-		return new PropertyChangeListener() {
-			public void propertyChanged(PropertyChangeEvent e) {
-				TransformationPropertyValueModelTests.this.event = e;
-			}
-		};
-	}
-
-	private PropertyChangeListener buildTransformationListener() {
-		return new PropertyChangeListener() {
-			public void propertyChanged(PropertyChangeEvent e) {
-				TransformationPropertyValueModelTests.this.transformationEvent = e;
-			}
-		};
-	}
-
-	private void verifyEvent(PropertyChangeEvent e, Object source, Object oldValue, Object newValue) {
-		assertEquals(source, e.getSource());
-		assertEquals(PropertyValueModel.VALUE, e.getPropertyName());
-		assertEquals(oldValue, e.getOldValue());
-		assertEquals(newValue, e.getNewValue());
-	}
-
-}
diff --git a/jpa/tests/org.eclipse.jpt.utility.tests/src/org/eclipse/jpt/utility/tests/internal/model/value/TreeAspectAdapterTests.java b/jpa/tests/org.eclipse.jpt.utility.tests/src/org/eclipse/jpt/utility/tests/internal/model/value/TreeAspectAdapterTests.java
deleted file mode 100644
index a04d912..0000000
--- a/jpa/tests/org.eclipse.jpt.utility.tests/src/org/eclipse/jpt/utility/tests/internal/model/value/TreeAspectAdapterTests.java
+++ /dev/null
@@ -1,353 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2008 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.utility.tests.internal.model.value;
-
-import java.util.Collection;
-import java.util.Iterator;
-import junit.framework.TestCase;
-import org.eclipse.jpt.utility.internal.CollectionTools;
-import org.eclipse.jpt.utility.internal.HashBag;
-import org.eclipse.jpt.utility.internal.iterators.ChainIterator;
-import org.eclipse.jpt.utility.internal.iterators.ReadOnlyIterator;
-import org.eclipse.jpt.utility.internal.iterators.TransformationIterator;
-import org.eclipse.jpt.utility.internal.iterators.TreeIterator;
-import org.eclipse.jpt.utility.internal.model.AbstractModel;
-import org.eclipse.jpt.utility.internal.model.value.SimplePropertyValueModel;
-import org.eclipse.jpt.utility.internal.model.value.TreeAspectAdapter;
-import org.eclipse.jpt.utility.model.event.TreeChangeEvent;
-import org.eclipse.jpt.utility.model.listener.TreeChangeListener;
-import org.eclipse.jpt.utility.model.value.PropertyValueModel;
-import org.eclipse.jpt.utility.model.value.TreeValueModel;
-import org.eclipse.jpt.utility.model.value.WritablePropertyValueModel;
-import org.eclipse.jpt.utility.tests.internal.TestTools;
-
-public class TreeAspectAdapterTests extends TestCase {
-	private TestSubject subject1;
-	private WritablePropertyValueModel<TestSubject> subjectHolder1;
-	private TreeAspectAdapter<TestSubject, TestNode[]> aa1;
-	private TreeChangeEvent event1;
-	private TreeChangeListener listener1;
-
-	private TestSubject subject2;
-
-	
-	public TreeAspectAdapterTests(String name) {
-		super(name);
-	}
-
-	@Override
-	protected void setUp() throws Exception {
-		super.setUp();
-		this.subject1 = new TestSubject();
-		TestNode root, node;
-
-		root = this.subject1.getRootNameNode();
-		node = this.subject1.addName(root, "name 1.1");
-		this.subject1.addName(node, "name 1.1.1");
-		this.subject1.addName(node, "name 1.1.2");
-		node = this.subject1.addName(root, "name 1.2");
-		this.subject1.addName(node, "name 1.2.1");
-		node = this.subject1.addName(root, "name 1.3");
-
-		root = this.subject1.getRootDescriptionNode();
-		node = this.subject1.addDescription(root, "description 1.1");
-		this.subject1.addDescription(node, "description 1.1.1");
-		this.subject1.addDescription(node, "description 1.1.2");
-		node = this.subject1.addDescription(root, "description 1.2");
-		this.subject1.addDescription(node, "description 1.2.1");
-		node = this.subject1.addDescription(root, "description 1.3");
-
-		this.subjectHolder1 = new SimplePropertyValueModel<TestSubject>(this.subject1);
-		this.aa1 = this.buildAspectAdapter(this.subjectHolder1);
-		this.listener1 = this.buildValueChangeListener1();
-		this.aa1.addTreeChangeListener(TreeValueModel.NODES, this.listener1);
-		this.event1 = null;
-
-		this.subject2 = new TestSubject();
-
-		root = this.subject2.getRootNameNode();
-		node = this.subject2.addName(root, "name 2.1");
-		this.subject2.addName(node, "name 2.1.1");
-		this.subject2.addName(node, "name 2.1.2");
-		node = this.subject2.addName(root, "name 2.2");
-		this.subject2.addName(node, "name 2.2.1");
-		node = this.subject2.addName(root, "name 2.3");
-
-		root = this.subject2.getRootDescriptionNode();
-		node = this.subject2.addDescription(root, "description 2.1");
-		this.subject2.addDescription(node, "description 2.1.1");
-		this.subject2.addDescription(node, "description 2.1.2");
-		node = this.subject2.addDescription(root, "description 2.2");
-		this.subject2.addDescription(node, "description 2.2.1");
-		node = this.subject2.addDescription(root, "description 2.3");
-	}
-
-	private TreeAspectAdapter<TestSubject, TestNode[]> buildAspectAdapter(PropertyValueModel<TestSubject> subjectHolder) {
-		return new TreeAspectAdapter<TestSubject, TestNode[]>(subjectHolder, TestSubject.NAMES_TREE) {
-			// this is not a typical aspect adapter - the value is determined by the aspect name
-			@Override
-			protected Iterator<TestNode[]> nodes_() {
-				if (this.treeNames[0] == TestSubject.NAMES_TREE) {
-					return this.subject.namePaths();
-				}
-				if (this.treeNames[0] == TestSubject.DESCRIPTIONS_TREE) {
-					return this.subject.descriptionPaths();
-				}
-				throw new IllegalStateException("invalid aspect name: " + this.treeNames[0]);
-			}
-		};
-	}
-
-	private TreeChangeListener buildValueChangeListener1() {
-		return new TreeChangeListener() {
-			public void nodeAdded(TreeChangeEvent e) {
-				TreeAspectAdapterTests.this.value1Changed(e);
-			}
-			public void nodeRemoved(TreeChangeEvent e) {
-				TreeAspectAdapterTests.this.value1Changed(e);
-			}
-			public void treeCleared(TreeChangeEvent e) {
-				TreeAspectAdapterTests.this.value1Changed(e);
-			}
-			public void treeChanged(TreeChangeEvent e) {
-				TreeAspectAdapterTests.this.value1Changed(e);
-			}
-		};
-	}
-
-	void value1Changed(TreeChangeEvent e) {
-		this.event1 = e;
-	}
-
-	@Override
-	protected void tearDown() throws Exception {
-		TestTools.clear(this);
-		super.tearDown();
-	}
-
-	public void testSubjectHolder() {
-		assertNull(this.event1);
-
-		this.subjectHolder1.setValue(this.subject2);
-		assertNotNull(this.event1);
-		assertEquals(this.aa1, this.event1.getSource());
-		assertEquals(TreeValueModel.NODES, this.event1.getTreeName());
-		assertEquals(0, this.event1.getPath().length);
-		
-		this.event1 = null;
-		this.subjectHolder1.setValue(null);
-		assertNotNull(this.event1);
-		assertEquals(this.aa1, this.event1.getSource());
-		assertEquals(TreeValueModel.NODES, this.event1.getTreeName());
-		assertEquals(0, this.event1.getPath().length);
-		
-		this.event1 = null;
-		this.subjectHolder1.setValue(this.subject1);
-		assertNotNull(this.event1);
-		assertEquals(this.aa1, this.event1.getSource());
-		assertEquals(TreeValueModel.NODES, this.event1.getTreeName());
-		assertEquals(0, this.event1.getPath().length);
-	}
-
-	public void testTreeStructureChange() {
-		assertNull(this.event1);
-
-		this.subject1.addTwoNames(this.subject1.getRootNameNode(), "jam", "jaz");
-		assertNotNull(this.event1);
-		assertEquals(this.aa1, this.event1.getSource());
-		assertEquals(TreeValueModel.NODES, this.event1.getTreeName());
-		Object[] path = this.event1.getPath();
-		assertEquals(this.subject1.getRootNameNode(), path[path.length - 1]);
-		assertTrue(this.subject1.containsNameNode("jam"));
-		assertTrue(this.subject1.containsNameNode("jaz"));
-	}
-
-	public void testNodes() {
-		assertEquals(this.convertToNames(this.subject1.namePaths()), this.convertToNames(this.aa1.nodes()));
-	}
-
-	private Collection<String> convertToNames(Iterator<TestNode[]> namePaths) {
-		Collection<String> result = new HashBag<String>();
-		while (namePaths.hasNext()) {
-			Object[] path = namePaths.next();
-			StringBuffer sb = new StringBuffer();
-			sb.append('[');
-			for (int i = 0; i < path.length; i++) {
-				sb.append(((TestNode) path[i]).getText());
-				if (i < path.length - 1) {
-					sb.append(':');
-				}
-			}
-			sb.append(']');
-			result.add(sb.toString());
-		}
-		return result;
-	}
-
-	public void testHasListeners() {
-		assertTrue(this.aa1.hasAnyTreeChangeListeners(TreeValueModel.NODES));
-		assertTrue(this.subject1.hasAnyTreeChangeListeners(TestSubject.NAMES_TREE));
-		this.aa1.removeTreeChangeListener(TreeValueModel.NODES, this.listener1);
-		assertFalse(this.subject1.hasAnyTreeChangeListeners(TestSubject.NAMES_TREE));
-		assertFalse(this.aa1.hasAnyTreeChangeListeners(TreeValueModel.NODES));
-
-		TreeChangeListener listener2 = this.buildValueChangeListener1();
-		this.aa1.addTreeChangeListener(listener2);
-		assertTrue(this.aa1.hasAnyTreeChangeListeners(TreeValueModel.NODES));
-		assertTrue(this.subject1.hasAnyTreeChangeListeners(TestSubject.NAMES_TREE));
-		this.aa1.removeTreeChangeListener(listener2);
-		assertFalse(this.subject1.hasAnyTreeChangeListeners(TestSubject.NAMES_TREE));
-		assertFalse(this.aa1.hasAnyTreeChangeListeners(TreeValueModel.NODES));
-	}
-
-	// ********** inner classes **********
-	
-	private class TestSubject extends AbstractModel {
-		private TestNode rootNameNode;
-		public static final String NAMES_TREE = "names";
-		private TestNode rootDescriptionNode;
-		public static final String DESCRIPTIONS_TREE = "descriptions";
-	
-		public TestSubject() {
-			this.rootNameNode = new TestNode("root name");
-			this.rootDescriptionNode = new TestNode("root description");
-		}
-		public TestNode getRootNameNode() {
-			return this.rootNameNode;
-		}
-		public Iterator<TestNode> nameNodes() {
-			return new TreeIterator<TestNode>(this.rootNameNode) {
-				@Override
-				public Iterator<TestNode> children(TestNode next) {
-					return next.children();
-				}
-			};
-		}
-		public Iterator<TestNode[]> namePaths() {
-			return new TransformationIterator<TestNode, TestNode[]>(this.nameNodes()) {
-				@Override
-				protected TestNode[] transform(TestNode next) {
-					return next.path();
-				}
-			};
-		}
-		public TestNode addName(TestNode parent, String name) {
-			TestNode child = new TestNode(name);
-			parent.addChild(child);
-			this.fireNodeAdded(NAMES_TREE, child.path());
-			return child;
-		}
-		public void addTwoNames(TestNode parent, String name1, String name2) {
-			parent.addChild(new TestNode(name1));
-			parent.addChild(new TestNode(name2));
-			this.fireTreeChanged(NAMES_TREE, parent.path());
-		}
-		public void removeNameNode(TestNode nameNode) {
-			nameNode.getParent().removeChild(nameNode);
-			this.fireNodeRemoved(NAMES_TREE, nameNode.path());
-		}
-		public boolean containsNameNode(String name) {
-			return this.nameNode(name) != null;
-		}
-		public TestNode nameNode(String name) {
-			for (Iterator<TestNode> stream = this.nameNodes(); stream.hasNext(); ) {
-				TestNode node = stream.next();
-				if (node.getText().equals(name)) {
-					return node;
-				}
-			}
-			return null;
-		}
-		public TestNode getRootDescriptionNode() {
-			return this.rootDescriptionNode;
-		}
-		public Iterator<TestNode> descriptionNodes() {
-			return new TreeIterator<TestNode>(this.rootDescriptionNode) {
-				@Override
-				public Iterator<TestNode> children(TestNode next) {
-					return next.children();
-				}
-			};
-		}
-		public Iterator<TestNode[]> descriptionPaths() {
-			return new TransformationIterator<TestNode, TestNode[]>(this.descriptionNodes()) {
-				@Override
-				protected TestNode[] transform(TestNode next) {
-					return next.path();
-				}
-			};
-		}
-		public TestNode addDescription(TestNode parent, String description) {
-			TestNode child = new TestNode(description);
-			parent.addChild(child);
-			this.fireNodeAdded(DESCRIPTIONS_TREE, child.path());
-			return child;
-		}
-		public void removeDescriptionNode(TestNode descriptionNode) {
-			descriptionNode.getParent().removeChild(descriptionNode);
-			this.fireNodeRemoved(DESCRIPTIONS_TREE, descriptionNode.path());
-		}
-		public boolean containsDescriptionNode(String name) {
-			for (Iterator<TestNode> stream = this.descriptionNodes(); stream.hasNext(); ) {
-				TestNode node = stream.next();
-				if (node.getText().equals(name)) {
-					return true;
-				}
-			}
-			return false;
-		}
-	}
-	
-	private class TestNode {
-		private final String text;
-		private TestNode parent;
-		private final Collection<TestNode> children;
-	
-		public TestNode(String text) {
-			this.text = text;
-			this.children = new HashBag<TestNode>();
-		}
-		public String getText() {
-			return this.text;
-		}
-		public TestNode getParent() {
-			return this.parent;
-		}
-		private void setParent(TestNode parent) {
-			this.parent = parent;
-		}
-		public Iterator<TestNode> children() {
-			return new ReadOnlyIterator<TestNode>(this.children);
-		}
-		public void addChild(TestNode child) {
-			this.children.add(child);
-			child.setParent(this);
-		}
-		public void removeChild(TestNode child) {
-			this.children.remove(child);
-		}
-		public TestNode[] path() {
-			return CollectionTools.reverseList(this.buildAntiPath()).toArray(new TestNode[0]);
-		}
-		private Iterator<TestNode> buildAntiPath() {
-			return new ChainIterator<TestNode>(this) {
-				@Override
-				protected TestNode nextLink(TestNode currentLink) {
-					return currentLink.getParent();
-				}
-			};
-		}
-		@Override
-		public String toString() {
-			return "TestNode(" + this.text + ")";
-		}
-	}
-	
-}
diff --git a/jpa/tests/org.eclipse.jpt.utility.tests/src/org/eclipse/jpt/utility/tests/internal/model/value/ValueCollectionAdapterTests.java b/jpa/tests/org.eclipse.jpt.utility.tests/src/org/eclipse/jpt/utility/tests/internal/model/value/ValueCollectionAdapterTests.java
deleted file mode 100644
index efef38a..0000000
--- a/jpa/tests/org.eclipse.jpt.utility.tests/src/org/eclipse/jpt/utility/tests/internal/model/value/ValueCollectionAdapterTests.java
+++ /dev/null
@@ -1,156 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2008 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.utility.tests.internal.model.value;
-
-import java.util.ArrayList;
-import java.util.Collection;
-import junit.framework.TestCase;
-import org.eclipse.jpt.utility.internal.model.AbstractModel;
-import org.eclipse.jpt.utility.internal.model.value.SimplePropertyValueModel;
-import org.eclipse.jpt.utility.internal.model.value.ValueCollectionAdapter;
-import org.eclipse.jpt.utility.model.event.PropertyChangeEvent;
-import org.eclipse.jpt.utility.model.event.StateChangeEvent;
-import org.eclipse.jpt.utility.model.listener.PropertyChangeListener;
-import org.eclipse.jpt.utility.model.listener.StateChangeListener;
-import org.eclipse.jpt.utility.model.value.PropertyValueModel;
-import org.eclipse.jpt.utility.tests.internal.TestTools;
-
-public class ValueCollectionAdapterTests extends TestCase {
-	private Junk junk;
-	private SimplePropertyValueModel<Junk> junkHolder;
-	private ValueCollectionAdapter<Junk> junkHolder2;
-
-
-	public ValueCollectionAdapterTests(String name) {
-		super(name);
-	}
-
-	@Override
-	protected void setUp() throws Exception {
-		super.setUp();
-		this.junk = new Junk("foo");
-		this.junkHolder = new SimplePropertyValueModel<Junk>(this.junk);
-		this.junkHolder2 = new ValueCollectionAdapter<Junk>(this.junkHolder, Junk.STUFF_COLLECTION);
-	}
-
-	@Override
-	protected void tearDown() throws Exception {
-		TestTools.clear(this);
-		super.tearDown();
-	}
-
-	public void testWrappedPVM() {
-		Junk junk2 = new Junk("bar");
-		LocalListener l = new LocalListener(this.junkHolder2, this.junk, junk2);
-		this.junkHolder2.addPropertyChangeListener(l);
-		this.junkHolder.setValue(junk2);
-		assertTrue(l.eventReceived());
-	}
-
-	public void testHasPropertyChangeListeners() throws Exception {
-		assertFalse(this.junkHolder.hasAnyPropertyChangeListeners(PropertyValueModel.VALUE));
-		assertFalse(this.junkHolder2.hasAnyPropertyChangeListeners(PropertyValueModel.VALUE));
-
-		LocalListener l = new LocalListener(this.junkHolder2, null, this.junk);
-		this.junkHolder2.addPropertyChangeListener(l);
-		assertTrue(this.junkHolder.hasAnyPropertyChangeListeners(PropertyValueModel.VALUE));
-		assertTrue(this.junkHolder2.hasAnyPropertyChangeListeners(PropertyValueModel.VALUE));
-
-		this.junkHolder2.removePropertyChangeListener(l);
-		assertFalse(this.junkHolder.hasAnyPropertyChangeListeners(PropertyValueModel.VALUE));
-		assertFalse(this.junkHolder2.hasAnyPropertyChangeListeners(PropertyValueModel.VALUE));
-	}
-
-	public void testHasStateChangeListeners() throws Exception {
-		assertFalse(this.junk.hasAnyCollectionChangeListeners(Junk.STUFF_COLLECTION));
-		assertFalse(this.junkHolder2.hasAnyStateChangeListeners());
-
-		LocalListener l = new LocalListener(this.junkHolder2, null, this.junk);
-		this.junkHolder2.addStateChangeListener(l);
-		assertTrue(this.junk.hasAnyCollectionChangeListeners(Junk.STUFF_COLLECTION));
-		assertTrue(this.junkHolder2.hasAnyStateChangeListeners());
-
-		this.junkHolder2.removeStateChangeListener(l);
-		assertFalse(this.junk.hasAnyCollectionChangeListeners(Junk.STUFF_COLLECTION));
-		assertFalse(this.junkHolder2.hasAnyStateChangeListeners());
-	}
-
-	public void testCollectionAdd() {
-		LocalListener l = new LocalListener(this.junkHolder2);
-		this.junkHolder2.addStateChangeListener(l);
-		this.junk.addStuff("bar");
-		assertTrue(l.eventReceived());
-	}
-
-	public void testCollectionRemove() {
-		LocalListener l = new LocalListener(this.junkHolder2);
-		this.junkHolder2.addStateChangeListener(l);
-		this.junk.removeStuff("foo");
-		assertTrue(l.eventReceived());
-	}
-
-
-	private class LocalListener implements PropertyChangeListener, StateChangeListener {
-		private boolean eventReceived = false;
-		private final Object source;
-		private final Object oldValue;
-		private final Object newValue;
-		LocalListener(Object source) {
-			this(source, null, null);
-		}
-		LocalListener(Object source, Object oldValue, Object newValue) {
-			super();
-			this.source = source;
-			this.oldValue = oldValue;
-			this.newValue = newValue;
-		}
-		public void propertyChanged(PropertyChangeEvent e) {
-			this.eventReceived = true;
-			assertEquals(this.source, e.getSource());
-			assertEquals(this.oldValue, e.getOldValue());
-			assertEquals(this.newValue, e.getNewValue());
-			assertEquals(PropertyValueModel.VALUE, e.getPropertyName());
-		}
-		public void stateChanged(StateChangeEvent e) {
-			this.eventReceived = true;
-			assertEquals(this.source, e.getSource());
-			assertNull(e.getAspectName());
-		}
-		boolean eventReceived() {
-			return this.eventReceived;
-		}
-	}
-
-
-	private class Junk extends AbstractModel {
-		private Collection<String> stuff;
-			public static final String STUFF_COLLECTION = "stuff";
-
-		public Junk(String stuffItem) {
-			this.stuff = new ArrayList<String>();
-			this.stuff.add(stuffItem);
-		}
-	
-		public void addStuff(String stuffItem) {
-			this.addItemToCollection(stuffItem, this.stuff, STUFF_COLLECTION);
-		}
-		
-		public void removeStuff(String stuffItem) {
-			this.removeItemFromCollection(stuffItem, this.stuff, STUFF_COLLECTION);
-		}
-	
-		@Override
-		public String toString() {
-			return "Junk(" + this.stuff + ")";
-		}
-	
-	}
-
-}
diff --git a/jpa/tests/org.eclipse.jpt.utility.tests/src/org/eclipse/jpt/utility/tests/internal/model/value/ValueListAdapterTests.java b/jpa/tests/org.eclipse.jpt.utility.tests/src/org/eclipse/jpt/utility/tests/internal/model/value/ValueListAdapterTests.java
deleted file mode 100644
index d1ada25..0000000
--- a/jpa/tests/org.eclipse.jpt.utility.tests/src/org/eclipse/jpt/utility/tests/internal/model/value/ValueListAdapterTests.java
+++ /dev/null
@@ -1,167 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2008 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.utility.tests.internal.model.value;
-
-import java.util.ArrayList;
-import java.util.List;
-import junit.framework.TestCase;
-import org.eclipse.jpt.utility.internal.model.AbstractModel;
-import org.eclipse.jpt.utility.internal.model.value.SimplePropertyValueModel;
-import org.eclipse.jpt.utility.internal.model.value.ValueListAdapter;
-import org.eclipse.jpt.utility.model.event.PropertyChangeEvent;
-import org.eclipse.jpt.utility.model.event.StateChangeEvent;
-import org.eclipse.jpt.utility.model.listener.PropertyChangeListener;
-import org.eclipse.jpt.utility.model.listener.StateChangeListener;
-import org.eclipse.jpt.utility.model.value.PropertyValueModel;
-import org.eclipse.jpt.utility.tests.internal.TestTools;
-
-public class ValueListAdapterTests extends TestCase {
-	private Junk junk;
-	private SimplePropertyValueModel<Junk> junkHolder;
-	private ValueListAdapter<Junk> junkHolder2;
-
-
-	
-	public ValueListAdapterTests(String name) {
-		super(name);
-	}
-
-	@Override
-	protected void setUp() throws Exception {
-		super.setUp();
-		this.junk = new Junk("foo");
-		this.junkHolder = new SimplePropertyValueModel<Junk>(this.junk);
-		this.junkHolder2 = new ValueListAdapter<Junk>(this.junkHolder, Junk.STUFF_LIST);
-	}
-
-	@Override
-	protected void tearDown() throws Exception {
-		TestTools.clear(this);
-		super.tearDown();
-	}
-
-	public void testWrappedPVM() {
-		Junk junk2 = new Junk("bar");
-		LocalListener l = new LocalListener(this.junkHolder2, this.junk, junk2);
-		this.junkHolder2.addPropertyChangeListener(l);
-		this.junkHolder.setValue(junk2);
-		assertTrue(l.eventReceived());
-	}
-
-	public void testHasPropertyChangeListeners() throws Exception {
-		assertFalse(this.junkHolder.hasAnyPropertyChangeListeners(PropertyValueModel.VALUE));
-		assertFalse(this.junkHolder2.hasAnyPropertyChangeListeners(PropertyValueModel.VALUE));
-
-		LocalListener l = new LocalListener(this.junkHolder2, null, this.junk);
-		this.junkHolder2.addPropertyChangeListener(l);
-		assertTrue(this.junkHolder.hasAnyPropertyChangeListeners(PropertyValueModel.VALUE));
-		assertTrue(this.junkHolder2.hasAnyPropertyChangeListeners(PropertyValueModel.VALUE));
-
-		this.junkHolder2.removePropertyChangeListener(l);
-		assertFalse(this.junkHolder.hasAnyPropertyChangeListeners(PropertyValueModel.VALUE));
-		assertFalse(this.junkHolder2.hasAnyPropertyChangeListeners(PropertyValueModel.VALUE));
-	}
-
-	public void testHasStateChangeListeners() throws Exception {
-		assertFalse(this.junk.hasAnyListChangeListeners(Junk.STUFF_LIST));
-		assertFalse(this.junkHolder2.hasAnyStateChangeListeners());
-
-		LocalListener l = new LocalListener(this.junkHolder2, null, this.junk);
-		this.junkHolder2.addStateChangeListener(l);
-		assertTrue(this.junk.hasAnyListChangeListeners(Junk.STUFF_LIST));
-		assertTrue(this.junkHolder2.hasAnyStateChangeListeners());
-
-		this.junkHolder2.removeStateChangeListener(l);
-		assertFalse(this.junk.hasAnyListChangeListeners(Junk.STUFF_LIST));
-		assertFalse(this.junkHolder2.hasAnyStateChangeListeners());
-	}
-
-	public void testListAdd() {
-		LocalListener l = new LocalListener(this.junkHolder2, null, this.junk);
-		this.junkHolder2.addStateChangeListener(l);
-		this.junk.addStuff("bar");
-		assertTrue(l.eventReceived());
-	}
-
-	public void testListRemove() {
-		LocalListener l = new LocalListener(this.junkHolder2, null, this.junk);
-		this.junkHolder2.addStateChangeListener(l);
-		this.junk.removeStuff("foo");
-		assertTrue(l.eventReceived());
-	}
-
-	public void testListReplace() {
-		LocalListener l = new LocalListener(this.junkHolder2, null, this.junk);
-		this.junkHolder2.addStateChangeListener(l);
-		this.junk.replaceStuff("foo", "bar");
-		assertTrue(l.eventReceived());
-	}
-
-
-	private class LocalListener implements PropertyChangeListener, StateChangeListener {
-		private boolean eventReceived = false;
-		private final Object source;
-		private final Object oldValue;
-		private final Object newValue;
-		LocalListener(Object source) {
-			this(source, null, null);
-		}
-		LocalListener(Object source, Object oldValue, Object newValue) {
-			super();
-			this.source = source;
-			this.oldValue = oldValue;
-			this.newValue = newValue;
-		}
-		public void propertyChanged(PropertyChangeEvent e) {
-			this.eventReceived = true;
-			assertEquals(this.source, e.getSource());
-			assertEquals(this.oldValue, e.getOldValue());
-			assertEquals(this.newValue, e.getNewValue());
-			assertEquals(PropertyValueModel.VALUE, e.getPropertyName());
-		}
-		public void stateChanged(StateChangeEvent e) {
-			this.eventReceived = true;
-			assertEquals(this.source, e.getSource());
-			assertNull(e.getAspectName());
-		}
-		boolean eventReceived() {
-			return this.eventReceived;
-		}
-	}
-
-	private class Junk extends AbstractModel {
-		private List<String> stuff;
-			public static final String STUFF_LIST = "stuff";
-
-		public Junk(String stuffItem) {
-			this.stuff = new ArrayList<String>();
-			this.stuff.add(stuffItem);
-		}
-	
-		public void addStuff(String stuffItem) {
-			this.addItemToList(stuffItem, this.stuff, STUFF_LIST);
-		}
-		
-		public void removeStuff(String stuffItem) {
-			this.removeItemFromList(stuffItem, this.stuff, STUFF_LIST);
-		}
-	
-		public void replaceStuff(String oldStuffItem, String newStuffItem) {
-			this.replaceItemInList(oldStuffItem, newStuffItem, this.stuff, STUFF_LIST);
-		}
-	
-		@Override
-		public String toString() {
-			return "Junk(" + this.stuff + ")";
-		}
-	
-	}
-
-}
diff --git a/jpa/tests/org.eclipse.jpt.utility.tests/src/org/eclipse/jpt/utility/tests/internal/model/value/ValuePropertyAdapterTests.java b/jpa/tests/org.eclipse.jpt.utility.tests/src/org/eclipse/jpt/utility/tests/internal/model/value/ValuePropertyAdapterTests.java
deleted file mode 100644
index b8c6e1b..0000000
--- a/jpa/tests/org.eclipse.jpt.utility.tests/src/org/eclipse/jpt/utility/tests/internal/model/value/ValuePropertyAdapterTests.java
+++ /dev/null
@@ -1,143 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2008 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.utility.tests.internal.model.value;
-
-import junit.framework.TestCase;
-import org.eclipse.jpt.utility.internal.model.AbstractModel;
-import org.eclipse.jpt.utility.internal.model.value.SimplePropertyValueModel;
-import org.eclipse.jpt.utility.internal.model.value.ValuePropertyAdapter;
-import org.eclipse.jpt.utility.model.event.PropertyChangeEvent;
-import org.eclipse.jpt.utility.model.event.StateChangeEvent;
-import org.eclipse.jpt.utility.model.listener.PropertyChangeListener;
-import org.eclipse.jpt.utility.model.listener.StateChangeListener;
-import org.eclipse.jpt.utility.model.value.PropertyValueModel;
-import org.eclipse.jpt.utility.tests.internal.TestTools;
-
-public class ValuePropertyAdapterTests extends TestCase {
-	private Junk junk;
-	private SimplePropertyValueModel<Junk> junkHolder;
-	private ValuePropertyAdapter<Junk> junkHolder2;
-
-
-	public ValuePropertyAdapterTests(String name) {
-		super(name);
-	}
-
-	@Override
-	protected void setUp() throws Exception {
-		super.setUp();
-		this.junk = new Junk("foo");
-		this.junkHolder = new SimplePropertyValueModel<Junk>(this.junk);
-		this.junkHolder2 = new ValuePropertyAdapter<Junk>(this.junkHolder, Junk.NAME_PROPERTY);
-	}
-
-	@Override
-	protected void tearDown() throws Exception {
-		TestTools.clear(this);
-		super.tearDown();
-	}
-
-	public void testWrappedPVM() {
-		Junk junk2 = new Junk("bar");
-		LocalListener l = new LocalListener(this.junkHolder2, this.junk, junk2);
-		this.junkHolder2.addPropertyChangeListener(l);
-		this.junkHolder.setValue(junk2);
-		assertTrue(l.eventReceived());
-	}
-
-	public void testHasPropertyChangeListeners() throws Exception {
-		assertFalse(this.junkHolder.hasAnyPropertyChangeListeners(PropertyValueModel.VALUE));
-		assertFalse(this.junkHolder2.hasAnyPropertyChangeListeners(PropertyValueModel.VALUE));
-
-		LocalListener l = new LocalListener(this.junkHolder2, null, this.junk);
-		this.junkHolder2.addPropertyChangeListener(l);
-		assertTrue(this.junkHolder.hasAnyPropertyChangeListeners(PropertyValueModel.VALUE));
-		assertTrue(this.junkHolder2.hasAnyPropertyChangeListeners(PropertyValueModel.VALUE));
-
-		this.junkHolder2.removePropertyChangeListener(l);
-		assertFalse(this.junkHolder.hasAnyPropertyChangeListeners(PropertyValueModel.VALUE));
-		assertFalse(this.junkHolder2.hasAnyPropertyChangeListeners(PropertyValueModel.VALUE));
-	}
-
-	public void testHasStateChangeListeners() throws Exception {
-		assertFalse(this.junk.hasAnyPropertyChangeListeners(Junk.NAME_PROPERTY));
-		assertFalse(this.junkHolder2.hasAnyStateChangeListeners());
-
-		LocalListener l = new LocalListener(this.junkHolder2, null, this.junk);
-		this.junkHolder2.addStateChangeListener(l);
-		assertTrue(this.junk.hasAnyPropertyChangeListeners(Junk.NAME_PROPERTY));
-		assertTrue(this.junkHolder2.hasAnyStateChangeListeners());
-
-		this.junkHolder2.removeStateChangeListener(l);
-		assertFalse(this.junk.hasAnyPropertyChangeListeners(Junk.NAME_PROPERTY));
-		assertFalse(this.junkHolder2.hasAnyStateChangeListeners());
-	}
-
-	public void testChangeProperty() {
-		LocalListener l = new LocalListener(this.junkHolder2, null, this.junk);
-		this.junkHolder2.addStateChangeListener(l);
-		this.junk.setName("bar");
-		assertTrue(l.eventReceived());
-	}
-
-
-	private class LocalListener implements PropertyChangeListener, StateChangeListener {
-		private boolean eventReceived = false;
-		private final Object source;
-		private final Object oldValue;
-		private final Object newValue;
-		LocalListener(Object source) {
-			this(source, null, null);
-		}
-		LocalListener(Object source, Object oldValue, Object newValue) {
-			super();
-			this.source = source;
-			this.oldValue = oldValue;
-			this.newValue = newValue;
-		}
-		public void propertyChanged(PropertyChangeEvent e) {
-			this.eventReceived = true;
-			assertEquals(this.source, e.getSource());
-			assertEquals(this.oldValue, e.getOldValue());
-			assertEquals(this.newValue, e.getNewValue());
-			assertEquals(PropertyValueModel.VALUE, e.getPropertyName());
-		}
-		public void stateChanged(StateChangeEvent e) {
-			this.eventReceived = true;
-			assertEquals(this.source, e.getSource());
-			assertNull(e.getAspectName());
-		}
-		boolean eventReceived() {
-			return this.eventReceived;
-		}
-	}
-
-	private class Junk extends AbstractModel {
-		private String name;
-			public static final String NAME_PROPERTY = "name";
-
-		public Junk(String name) {
-			this.name = name;
-		}
-	
-		public void setName(String name) {
-			String old = this.name;
-			this.name = name;
-			this.firePropertyChanged(NAME_PROPERTY, old, name);
-		}
-		
-		@Override
-		public String toString() {
-			return "Junk(" + this.name + ")";
-		}
-	
-	}
-
-}
diff --git a/jpa/tests/org.eclipse.jpt.utility.tests/src/org/eclipse/jpt/utility/tests/internal/model/value/ValueStateAdapterTests.java b/jpa/tests/org.eclipse.jpt.utility.tests/src/org/eclipse/jpt/utility/tests/internal/model/value/ValueStateAdapterTests.java
deleted file mode 100644
index 6aef58a..0000000
--- a/jpa/tests/org.eclipse.jpt.utility.tests/src/org/eclipse/jpt/utility/tests/internal/model/value/ValueStateAdapterTests.java
+++ /dev/null
@@ -1,143 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2008 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.utility.tests.internal.model.value;
-
-import junit.framework.TestCase;
-import org.eclipse.jpt.utility.internal.model.AbstractModel;
-import org.eclipse.jpt.utility.internal.model.value.SimplePropertyValueModel;
-import org.eclipse.jpt.utility.internal.model.value.ValueStateAdapter;
-import org.eclipse.jpt.utility.model.event.PropertyChangeEvent;
-import org.eclipse.jpt.utility.model.event.StateChangeEvent;
-import org.eclipse.jpt.utility.model.listener.PropertyChangeListener;
-import org.eclipse.jpt.utility.model.listener.StateChangeListener;
-import org.eclipse.jpt.utility.model.value.PropertyValueModel;
-import org.eclipse.jpt.utility.tests.internal.TestTools;
-
-public class ValueStateAdapterTests extends TestCase {
-	private Junk junk;
-	private SimplePropertyValueModel<Junk> junkHolder;
-	private ValueStateAdapter<Junk> junkHolder2;
-
-
-	public ValueStateAdapterTests(String name) {
-		super(name);
-	}
-
-	@Override
-	protected void setUp() throws Exception {
-		super.setUp();
-		this.junk = new Junk("foo");
-		this.junkHolder = new SimplePropertyValueModel<Junk>(this.junk);
-		this.junkHolder2 = new ValueStateAdapter<Junk>(this.junkHolder);
-	}
-
-	@Override
-	protected void tearDown() throws Exception {
-		TestTools.clear(this);
-		super.tearDown();
-	}
-
-	public void testWrappedPVM() {
-		Junk junk2 = new Junk("bar");
-		LocalListener l = new LocalListener(this.junkHolder2, this.junk, junk2);
-		this.junkHolder2.addPropertyChangeListener(l);
-		this.junkHolder.setValue(junk2);
-		assertTrue(l.eventReceived());
-	}
-
-	public void testHasPropertyChangeListeners() throws Exception {
-		assertFalse(this.junkHolder.hasAnyPropertyChangeListeners(PropertyValueModel.VALUE));
-		assertFalse(this.junkHolder2.hasAnyPropertyChangeListeners(PropertyValueModel.VALUE));
-
-		LocalListener l = new LocalListener(this.junkHolder2, null, this.junk);
-		this.junkHolder2.addPropertyChangeListener(l);
-		assertTrue(this.junkHolder.hasAnyPropertyChangeListeners(PropertyValueModel.VALUE));
-		assertTrue(this.junkHolder2.hasAnyPropertyChangeListeners(PropertyValueModel.VALUE));
-
-		this.junkHolder2.removePropertyChangeListener(l);
-		assertFalse(this.junkHolder.hasAnyPropertyChangeListeners(PropertyValueModel.VALUE));
-		assertFalse(this.junkHolder2.hasAnyPropertyChangeListeners(PropertyValueModel.VALUE));
-	}
-
-	public void testHasStateChangeListeners() throws Exception {
-		assertFalse(this.junk.hasAnyStateChangeListeners());
-		assertFalse(this.junkHolder2.hasAnyStateChangeListeners());
-
-		LocalListener l = new LocalListener(this.junkHolder2, null, this.junk);
-		this.junkHolder2.addStateChangeListener(l);
-		assertTrue(this.junk.hasAnyStateChangeListeners());
-		assertTrue(this.junkHolder2.hasAnyStateChangeListeners());
-
-		this.junkHolder2.removeStateChangeListener(l);
-		assertFalse(this.junk.hasAnyStateChangeListeners());
-		assertFalse(this.junkHolder2.hasAnyStateChangeListeners());
-	}
-
-	public void testChangeState() {
-		LocalListener l = new LocalListener(this.junkHolder2, null, this.junk);
-		this.junkHolder2.addPropertyChangeListener(l);
-		this.junkHolder2.addStateChangeListener(l);
-		this.junk.setName("bar");
-		assertTrue(l.eventReceived());
-	}
-
-
-	private class LocalListener implements PropertyChangeListener, StateChangeListener {
-		private boolean eventReceived = false;
-		private final Object source;
-		private final Object oldValue;
-		private final Object newValue;
-		LocalListener(Object source) {
-			this(source, null, null);
-		}
-		LocalListener(Object source, Object oldValue, Object newValue) {
-			super();
-			this.source = source;
-			this.oldValue = oldValue;
-			this.newValue = newValue;
-		}
-		public void propertyChanged(PropertyChangeEvent e) {
-			this.eventReceived = true;
-			assertEquals(this.source, e.getSource());
-			assertEquals(this.oldValue, e.getOldValue());
-			assertEquals(this.newValue, e.getNewValue());
-			assertEquals(PropertyValueModel.VALUE, e.getPropertyName());
-		}
-		public void stateChanged(StateChangeEvent e) {
-			this.eventReceived = true;
-			assertEquals(this.source, e.getSource());
-			assertNull(e.getAspectName());
-		}
-		boolean eventReceived() {
-			return this.eventReceived;
-		}
-	}
-
-	private class Junk extends AbstractModel {
-		private String name;
-			public static final String NAME_PROPERTY = "name";
-
-		public Junk(String name) {
-			this.name = name;
-		}
-	
-		public void setName(String name) {
-			this.name = name;
-			this.fireStateChanged();
-		}
-		
-		@Override
-		public String toString() {
-			return "Junk(" + this.name + ")";
-		}
-	
-	}
-
-}
diff --git a/jpa/tests/org.eclipse.jpt.utility.tests/src/org/eclipse/jpt/utility/tests/internal/model/value/prefs/JptUtilityModelValuePrefsTests.java b/jpa/tests/org.eclipse.jpt.utility.tests/src/org/eclipse/jpt/utility/tests/internal/model/value/prefs/JptUtilityModelValuePrefsTests.java
deleted file mode 100644
index 043da07..0000000
--- a/jpa/tests/org.eclipse.jpt.utility.tests/src/org/eclipse/jpt/utility/tests/internal/model/value/prefs/JptUtilityModelValuePrefsTests.java
+++ /dev/null
@@ -1,31 +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.utility.tests.internal.model.value.prefs;
-
-import junit.framework.Test;
-import junit.framework.TestSuite;
-
-public class JptUtilityModelValuePrefsTests {
-	
-	public static Test suite() {
-		TestSuite suite = new TestSuite(JptUtilityModelValuePrefsTests.class.getPackage().getName());
-
-		suite.addTestSuite(PreferencesCollectionValueModelTests.class);
-		suite.addTestSuite(PreferencePropertyValueModelTests.class);
-	
-		return suite;
-	}
-	
-	private JptUtilityModelValuePrefsTests() {
-		super();
-		throw new UnsupportedOperationException();
-	}
-	
-}
diff --git a/jpa/tests/org.eclipse.jpt.utility.tests/src/org/eclipse/jpt/utility/tests/internal/model/value/prefs/PreferencePropertyValueModelTests.java b/jpa/tests/org.eclipse.jpt.utility.tests/src/org/eclipse/jpt/utility/tests/internal/model/value/prefs/PreferencePropertyValueModelTests.java
deleted file mode 100644
index b04df31..0000000
--- a/jpa/tests/org.eclipse.jpt.utility.tests/src/org/eclipse/jpt/utility/tests/internal/model/value/prefs/PreferencePropertyValueModelTests.java
+++ /dev/null
@@ -1,382 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2008 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.utility.tests.internal.model.value.prefs;
-
-import java.util.prefs.NodeChangeEvent;
-import java.util.prefs.NodeChangeListener;
-import java.util.prefs.PreferenceChangeEvent;
-import java.util.prefs.PreferenceChangeListener;
-import java.util.prefs.Preferences;
-import org.eclipse.jpt.utility.internal.ClassTools;
-import org.eclipse.jpt.utility.internal.model.value.SimplePropertyValueModel;
-import org.eclipse.jpt.utility.internal.model.value.prefs.PreferencePropertyValueModel;
-import org.eclipse.jpt.utility.model.Model;
-import org.eclipse.jpt.utility.model.event.PropertyChangeEvent;
-import org.eclipse.jpt.utility.model.listener.PropertyChangeListener;
-import org.eclipse.jpt.utility.model.value.PropertyValueModel;
-import org.eclipse.jpt.utility.model.value.WritablePropertyValueModel;
-
-public class PreferencePropertyValueModelTests extends PreferencesTestCase {
-	private WritablePropertyValueModel<Preferences> nodeHolder;
-	PreferencePropertyValueModel<String> preferenceAdapter;
-	PropertyChangeEvent event;
-	PropertyChangeListener listener;
-	boolean listenerRemoved = false;
-	PreferenceChangeEvent preferenceEvent;
-	private static final String KEY_NAME = "foo";
-	private static final String STRING_VALUE = "original string value";
-
-	public PreferencePropertyValueModelTests(String name) {
-		super(name);
-	}
-
-	@Override
-	protected void setUp() throws Exception {
-		super.setUp();
-		this.testNode.put(KEY_NAME, STRING_VALUE);
-
-		this.nodeHolder = new SimplePropertyValueModel<Preferences>(this.testNode);
-		this.preferenceAdapter = new PreferencePropertyValueModel<String>(this.nodeHolder, KEY_NAME);
-		this.listener = this.buildValueChangeListener();
-		this.preferenceAdapter.addPropertyChangeListener(PropertyValueModel.VALUE, this.listener);
-		this.event = null;
-	}
-
-	@Override
-	protected void tearDown() throws Exception {
-		super.tearDown();
-	}
-
-	private PropertyChangeListener buildValueChangeListener() {
-		return new PropertyChangeListener() {
-			public void propertyChanged(PropertyChangeEvent e) {
-				if (PreferencePropertyValueModelTests.this.event != null) {
-					throw new IllegalStateException("unexpected this.event: " + e);
-				}
-				PreferencePropertyValueModelTests.this.event = e;
-			}
-		};
-	}
-
-	public void testSubjectHolder() throws Exception {
-		assertEquals(STRING_VALUE, this.preferenceAdapter.getValue());
-		assertNull(this.event);
-
-		String ANOTHER_STRING_VALUE = "some other value";
-		Preferences anotherNode = this.classNode.node("another test node");
-		anotherNode.put(KEY_NAME, ANOTHER_STRING_VALUE);
-
-		this.nodeHolder.setValue(anotherNode);
-		this.verifyEvent(STRING_VALUE, ANOTHER_STRING_VALUE);
-		assertEquals(ANOTHER_STRING_VALUE, this.preferenceAdapter.getValue());
-		
-		this.event = null;
-		this.nodeHolder.setValue(null);
-		this.verifyEvent(ANOTHER_STRING_VALUE, null);
-		assertNull(this.preferenceAdapter.getValue());
-		
-		this.event = null;
-		this.nodeHolder.setValue(this.testNode);
-		this.verifyEvent(null, STRING_VALUE);
-		assertEquals(STRING_VALUE, this.preferenceAdapter.getValue());
-	}
-
-	public void testPreferenceChange() throws Exception {
-		assertEquals(STRING_VALUE, this.preferenceAdapter.getValue());
-		assertNull(this.event);
-
-		this.testNode.put(KEY_NAME, STRING_VALUE + STRING_VALUE);
-		this.waitForEventQueueToClear();
-		this.verifyEvent(STRING_VALUE, STRING_VALUE + STRING_VALUE);
-		assertEquals(STRING_VALUE + STRING_VALUE, this.preferenceAdapter.getValue());
-		
-		this.event = null;
-		this.testNode.remove(KEY_NAME);
-		this.waitForEventQueueToClear();
-		this.verifyEvent(STRING_VALUE + STRING_VALUE, null);
-		assertNull(this.preferenceAdapter.getValue());
-		
-		this.event = null;
-		this.testNode.put(KEY_NAME, STRING_VALUE);
-		this.waitForEventQueueToClear();
-		this.verifyEvent(null, STRING_VALUE);
-		assertEquals(STRING_VALUE, this.preferenceAdapter.getValue());
-	}
-
-	public void testValue() throws Exception {
-		assertEquals(STRING_VALUE, this.testNode.get(KEY_NAME, "<missing preference>"));
-		assertEquals(STRING_VALUE, this.preferenceAdapter.getValue());
-	}
-
-	public void testSetValue() throws Exception {
-		String ANOTHER_STRING_VALUE = "some other value";
-		this.preferenceAdapter.setValue(ANOTHER_STRING_VALUE);
-		assertEquals(ANOTHER_STRING_VALUE, this.preferenceAdapter.getValue());
-		assertEquals(ANOTHER_STRING_VALUE, this.testNode.get(KEY_NAME, "<missing preference>"));
-	}
-
-	public void testHasListeners() throws Exception {
-		assertTrue(this.preferenceAdapter.hasAnyPropertyChangeListeners(PropertyValueModel.VALUE));
-		assertTrue(this.nodeHasAnyPrefListeners(this.testNode));
-		this.preferenceAdapter.removePropertyChangeListener(PropertyValueModel.VALUE, this.listener);
-		assertFalse(this.nodeHasAnyPrefListeners(this.testNode));
-		assertFalse(this.preferenceAdapter.hasAnyPropertyChangeListeners(PropertyValueModel.VALUE));
-
-		PropertyChangeListener listener2 = this.buildValueChangeListener();
-		this.preferenceAdapter.addPropertyChangeListener(listener2);
-		assertTrue(this.preferenceAdapter.hasAnyPropertyChangeListeners(PropertyValueModel.VALUE));
-		assertTrue(this.nodeHasAnyPrefListeners(this.testNode));
-		this.preferenceAdapter.removePropertyChangeListener(listener2);
-		assertFalse(this.nodeHasAnyPrefListeners(this.testNode));
-		assertFalse(this.preferenceAdapter.hasAnyPropertyChangeListeners(PropertyValueModel.VALUE));
-	}
-
-	public void testRemoveAndReAddPreference() throws Exception {
-		assertEquals(STRING_VALUE, this.testNode.get(KEY_NAME, null));
-		assertEquals(STRING_VALUE, this.preferenceAdapter.getValue());
-		assertNull(this.event);
-
-		// remove the preference entirely...
-		this.testNode.remove(KEY_NAME);
-		this.waitForEventQueueToClear();
-		assertNull(this.testNode.get(KEY_NAME, null));
-		this.verifyEvent(STRING_VALUE, null);
-		assertNull(this.preferenceAdapter.getValue());
-
-		// ...then re-add it with the same key
-		this.event = null;
-		this.testNode.put(KEY_NAME, STRING_VALUE);
-		this.waitForEventQueueToClear();
-		assertEquals(STRING_VALUE, this.testNode.get(KEY_NAME, null));
-		this.verifyEvent(null, STRING_VALUE);
-		assertEquals(STRING_VALUE, this.preferenceAdapter.getValue());
-	}
-
-	public void testDefaultValue() throws Exception {
-		// rebuild the adapter with a default value
-		String DEFAULT_VALUE = "default value";
-		this.preferenceAdapter.removePropertyChangeListener(PropertyValueModel.VALUE, this.listener);
-		this.preferenceAdapter = new PreferencePropertyValueModel<String>(this.nodeHolder, KEY_NAME, DEFAULT_VALUE);
-		this.preferenceAdapter.addPropertyChangeListener(PropertyValueModel.VALUE, this.listener);
-
-		assertEquals(STRING_VALUE, this.testNode.get(KEY_NAME, null));
-		assertEquals(STRING_VALUE, this.preferenceAdapter.getValue());
-		assertNull(this.event);
-
-		// remove the preference entirely...
-		this.testNode.remove(KEY_NAME);
-		this.waitForEventQueueToClear();
-		assertNull(this.testNode.get(KEY_NAME, null));
-		this.verifyEvent(STRING_VALUE, DEFAULT_VALUE);
-		assertEquals(DEFAULT_VALUE, this.preferenceAdapter.getValue());
-
-		// ...then re-add it with the same key
-		this.event = null;
-		this.testNode.put(KEY_NAME, STRING_VALUE);
-		this.waitForEventQueueToClear();
-		assertEquals(STRING_VALUE, this.testNode.get(KEY_NAME, null));
-		this.verifyEvent(DEFAULT_VALUE, STRING_VALUE);
-		assertEquals(STRING_VALUE, this.preferenceAdapter.getValue());
-	}
-
-	public void testUnsynchronizedValue() throws Exception {
-		assertEquals(STRING_VALUE, this.preferenceAdapter.getValue());
-		assertNull(this.event);
-
-		// remove the this.listener so the adapter no longer listens to the preference
-		this.preferenceAdapter.removePropertyChangeListener(PropertyValueModel.VALUE, this.listener);
-
-		this.testNode.put(KEY_NAME, STRING_VALUE + STRING_VALUE);
-		this.waitForEventQueueToClear();
-		// no this.event should have been fired...
-		assertNull(this.event);
-		// ...and the adapter's value should be null
-		assertNull(this.preferenceAdapter.getValue());
-		
-		this.testNode.remove(KEY_NAME);
-		this.waitForEventQueueToClear();
-		assertNull(this.event);
-		assertNull(this.preferenceAdapter.getValue());
-		
-		this.testNode.put(KEY_NAME, STRING_VALUE);
-		this.waitForEventQueueToClear();
-		assertNull(this.event);
-		assertNull(this.preferenceAdapter.getValue());
-
-		// add the this.listener so the adapter synchs
-		this.preferenceAdapter.addPropertyChangeListener(PropertyValueModel.VALUE, this.listener);
-		assertEquals(STRING_VALUE, this.preferenceAdapter.getValue());
-	}
-
-	public void testIntegerPreference() throws Exception {
-		// stop listening to the node and convert it to an integer
-		this.preferenceAdapter.removePropertyChangeListener(PropertyValueModel.VALUE, this.listener);
-
-		PreferencePropertyValueModel<Integer> integerPreferenceAdapter = new PreferencePropertyValueModel<Integer>(this.nodeHolder, KEY_NAME);
-		this.testNode.putInt(KEY_NAME, 123);
-		integerPreferenceAdapter = PreferencePropertyValueModel.forInteger(this.testNode, KEY_NAME, 0);
-		integerPreferenceAdapter.addPropertyChangeListener(PropertyValueModel.VALUE, this.listener);
-		assertEquals(new Integer(123), integerPreferenceAdapter.getValue());
-		assertNull(this.event);
-
-		this.testNode.putInt(KEY_NAME, 246);
-		this.waitForEventQueueToClear();
-		this.verifyEvent(integerPreferenceAdapter, new Integer(123), new Integer(246));
-		assertEquals(new Integer(246), integerPreferenceAdapter.getValue());
-		
-		this.event = null;
-		this.testNode.remove(KEY_NAME);
-		this.waitForEventQueueToClear();
-		this.verifyEvent(integerPreferenceAdapter, new Integer(246), new Integer(0));
-		assertEquals(new Integer(0), integerPreferenceAdapter.getValue());
-		
-		this.event = null;
-		this.testNode.putInt(KEY_NAME, 123);
-		this.waitForEventQueueToClear();
-		this.verifyEvent(integerPreferenceAdapter, new Integer(0), new Integer(123));
-		assertEquals(new Integer(123), integerPreferenceAdapter.getValue());
-	}
-
-	/**
-	 * test a situation where
-	 * - we are listening to the node when it gets removed from the preferences "repository"
-	 * - we get notification that it has been removed
-	 * - we try to remove our this.listener
-	 * - the node will throw an IllegalStateException - the adapter should handle it OK...
-	 */
-	public void testRemoveNode() throws Exception {
-		assertTrue(this.preferenceAdapter.hasAnyPropertyChangeListeners(PropertyValueModel.VALUE));
-
-		Preferences parent = this.testNode.parent();
-		parent.addNodeChangeListener(this.buildParentNodeChangeListener());
-		this.testNode.removeNode();
-		this.testNode.flush();		// this seems to be required for the this.event to trigger...
-		this.waitForEventQueueToClear();
-
-		assertTrue(this.listenerRemoved);
-		assertTrue(this.preferenceAdapter.hasNoPropertyChangeListeners(PropertyValueModel.VALUE));
-	}
-
-	private NodeChangeListener buildParentNodeChangeListener() {
-		return new NodeChangeListener() {
-			public void childAdded(NodeChangeEvent e) {
-				throw new IllegalStateException("unexpected this.event: " + e);
-			}
-			public void childRemoved(NodeChangeEvent e) {
-				if (e.getChild() == PreferencePropertyValueModelTests.this.testNode) {
-					PreferencePropertyValueModelTests.this.preferenceAdapter.removePropertyChangeListener(PropertyValueModel.VALUE, PreferencePropertyValueModelTests.this.listener);
-					// this line of code will not execute if the line above triggers an exception
-					PreferencePropertyValueModelTests.this.listenerRemoved = true;
-				}
-			}
-		};
-	}
-
-	public void testSetSameValue() {
-		assertNull(this.event);
-		assertNull(this.preferenceEvent);
-		this.testNode.addPreferenceChangeListener(this.buildPreferenceChangeListener());
-
-		String ANOTHER_STRING_VALUE = "some other value";
-		this.preferenceAdapter.setValue(ANOTHER_STRING_VALUE);
-
-		this.verifyEvent(STRING_VALUE, ANOTHER_STRING_VALUE);
-		this.waitForEventQueueToClear();
-		this.verifyPreferenceEvent(ANOTHER_STRING_VALUE);
-
-		// now set to *same* value - nothing should happen...
-		this.event = null;
-		this.preferenceEvent = null;
-		this.preferenceAdapter.setValue(ANOTHER_STRING_VALUE);
-
-		assertNull(this.event);
-		assertNull(this.preferenceEvent);
-	}
-
-	public void testSetSameValueForcePassThrough() throws Exception {
-		assertNull(this.event);
-		assertNull(this.preferenceEvent);
-
-		this.preferenceAdapter.removePropertyChangeListener(PropertyValueModel.VALUE, this.listener);
-		this.preferenceAdapter = new AlwaysUpdatePreferencePropertyValueModel<String>(this.nodeHolder, KEY_NAME);
-		this.preferenceAdapter.addPropertyChangeListener(PropertyValueModel.VALUE, this.listener);
-
-		this.testNode.addPreferenceChangeListener(this.buildPreferenceChangeListener());
-
-		String ANOTHER_STRING_VALUE = "some other value";
-		this.preferenceAdapter.setValue(ANOTHER_STRING_VALUE);
-
-		this.verifyEvent(STRING_VALUE, ANOTHER_STRING_VALUE);
-		this.waitForEventQueueToClear();
-		this.verifyPreferenceEvent(ANOTHER_STRING_VALUE);
-
-		// now set to *same* value - only one this.event should fire
-		this.event = null;
-		this.preferenceEvent = null;
-		this.preferenceAdapter.setValue(ANOTHER_STRING_VALUE);
-
-		assertNull(this.event);
-		this.waitForEventQueueToClear();
-		this.verifyPreferenceEvent(ANOTHER_STRING_VALUE);
-		assertNull(this.event);
-	}
-
-	private PreferenceChangeListener buildPreferenceChangeListener() {
-		return new PreferenceChangeListener() {
-			public void preferenceChange(PreferenceChangeEvent evt) {
-				PreferencePropertyValueModelTests.this.preferenceEvent = evt;
-			}
-		};
-	}
-
-	private void verifyEvent(Model source, Object oldValue, Object newValue) {
-		assertNotNull(this.event);
-		assertEquals(source, this.event.getSource());
-		assertEquals(PropertyValueModel.VALUE, this.event.getPropertyName());
-		assertEquals(oldValue, this.event.getOldValue());
-		assertEquals(newValue, this.event.getNewValue());
-	}
-
-	private void verifyEvent(Object oldValue, Object newValue) {
-		this.verifyEvent(this.preferenceAdapter, oldValue, newValue);
-	}
-
-	private void verifyPreferenceEvent(Object newValue) {
-		assertNotNull(this.preferenceEvent);
-		assertEquals(this.testNode, this.preferenceEvent.getSource());
-		assertEquals(KEY_NAME, this.preferenceEvent.getKey());
-		assertEquals(newValue, this.preferenceEvent.getNewValue());
-		assertEquals(newValue, this.testNode.get(KEY_NAME, "<missing preference>"));
-	}
-
-	private boolean nodeHasAnyPrefListeners(Preferences node) throws Exception {
-		PreferenceChangeListener[] prefListeners = (PreferenceChangeListener[]) ClassTools.fieldValue(node, "prefListeners");
-		return prefListeners.length > 0;
-	}
-
-
-	/**
-	 * Use this adapter to test out always passing through the new value
-	 * to the preference.
-	 */
-	private class AlwaysUpdatePreferencePropertyValueModel<P> extends PreferencePropertyValueModel<P> {
-
-		AlwaysUpdatePreferencePropertyValueModel(PropertyValueModel<Preferences> preferencesHolder, String key) {
-			super(preferencesHolder, key);
-		}
-
-		@Override
-		protected boolean shouldSetPreference(Object oldValue, Object newValue) {
-			return true;
-		}
-
-	}
-
-}
diff --git a/jpa/tests/org.eclipse.jpt.utility.tests/src/org/eclipse/jpt/utility/tests/internal/model/value/prefs/PreferencesCollectionValueModelTests.java b/jpa/tests/org.eclipse.jpt.utility.tests/src/org/eclipse/jpt/utility/tests/internal/model/value/prefs/PreferencesCollectionValueModelTests.java
deleted file mode 100644
index 3bd1b41..0000000
--- a/jpa/tests/org.eclipse.jpt.utility.tests/src/org/eclipse/jpt/utility/tests/internal/model/value/prefs/PreferencesCollectionValueModelTests.java
+++ /dev/null
@@ -1,276 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2008 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.utility.tests.internal.model.value.prefs;
-
-import java.util.Collections;
-import java.util.HashMap;
-import java.util.Iterator;
-import java.util.Map;
-import java.util.prefs.NodeChangeEvent;
-import java.util.prefs.NodeChangeListener;
-import java.util.prefs.PreferenceChangeListener;
-import java.util.prefs.Preferences;
-import org.eclipse.jpt.utility.internal.ClassTools;
-import org.eclipse.jpt.utility.internal.model.value.SimplePropertyValueModel;
-import org.eclipse.jpt.utility.internal.model.value.prefs.PreferencePropertyValueModel;
-import org.eclipse.jpt.utility.internal.model.value.prefs.PreferencesCollectionValueModel;
-import org.eclipse.jpt.utility.model.event.CollectionChangeEvent;
-import org.eclipse.jpt.utility.model.event.PropertyChangeEvent;
-import org.eclipse.jpt.utility.model.listener.CollectionChangeListener;
-import org.eclipse.jpt.utility.model.listener.PropertyChangeListener;
-import org.eclipse.jpt.utility.model.value.CollectionValueModel;
-import org.eclipse.jpt.utility.model.value.PropertyValueModel;
-import org.eclipse.jpt.utility.model.value.WritablePropertyValueModel;
-
-public class PreferencesCollectionValueModelTests extends PreferencesTestCase {
-	private Map<String, String> expectedValues;
-	private WritablePropertyValueModel<Preferences> nodeHolder;
-	PreferencesCollectionValueModel<String> preferencesAdapter;
-	CollectionChangeEvent event;
-	CollectionChangeListener listener;
-	private PropertyChangeListener itemListener;
-	boolean listenerRemoved = false;
-	private static final String KEY_NAME_1 = "foo 1";
-	private static final String KEY_NAME_2 = "foo 2";
-	private static final String KEY_NAME_3 = "foo 3";
-	private static final String STRING_VALUE_1 = "original string value 1";
-	private static final String STRING_VALUE_2 = "original string value 2";
-	private static final String STRING_VALUE_3 = "original string value 3";
-
-	public PreferencesCollectionValueModelTests(String name) {
-		super(name);
-	}
-
-	@Override
-	protected void setUp() throws Exception {
-		super.setUp();
-		this.expectedValues = new HashMap<String, String>();
-		this.testNode.put(KEY_NAME_1, STRING_VALUE_1);	this.expectedValues.put(KEY_NAME_1, STRING_VALUE_1);
-		this.testNode.put(KEY_NAME_2, STRING_VALUE_2);	this.expectedValues.put(KEY_NAME_2, STRING_VALUE_2);
-		this.testNode.put(KEY_NAME_3, STRING_VALUE_3);	this.expectedValues.put(KEY_NAME_3, STRING_VALUE_3);
-
-		this.nodeHolder = new SimplePropertyValueModel<Preferences>(this.testNode);
-		this.preferencesAdapter = new PreferencesCollectionValueModel<String>(this.nodeHolder);
-		this.listener = this.buildCollectionChangeListener();
-		this.itemListener = this.buildItemListener();
-		this.preferencesAdapter.addCollectionChangeListener(CollectionValueModel.VALUES, this.listener);
-		this.event = null;
-	}
-
-	private CollectionChangeListener buildCollectionChangeListener() {
-		return new CollectionChangeListener() {
-			public void collectionChanged(CollectionChangeEvent e) {
-				this.logEvent(e);
-			}
-			public void collectionCleared(CollectionChangeEvent e) {
-				this.logEvent(e);
-			}
-			public void itemsAdded(CollectionChangeEvent e) {
-				this.logEvent(e);
-			}
-			public void itemsRemoved(CollectionChangeEvent e) {
-				this.logEvent(e);
-			}
-			private void logEvent(CollectionChangeEvent e) {
-				if (PreferencesCollectionValueModelTests.this.event != null) {
-					throw new IllegalStateException("unexpected this.event: " + e);
-				}
-				PreferencesCollectionValueModelTests.this.event = e;
-			}
-		};
-	}
-
-	private PropertyChangeListener buildItemListener() {
-		return new PropertyChangeListener() {
-			public void propertyChanged(PropertyChangeEvent e) {
-				throw new IllegalStateException("unexpected this.event: " + e);
-			}
-		};
-	}
-
-	public void testSubjectHolder() throws Exception {
-		this.verifyAdapter(this.preferencesAdapter);
-		assertNull(this.event);
-
-		String ANOTHER_KEY_NAME_1 = "another key 1";
-		String ANOTHER_KEY_NAME_2 = "another key 2";
-		String ANOTHER_KEY_NAME_3 = "another key 3";
-		String ANOTHER_STRING_VALUE_1 = "another string value 1";
-		String ANOTHER_STRING_VALUE_2 = "another string value 2";
-		String ANOTHER_STRING_VALUE_3 = "another string value 3";
-		Preferences anotherNode = this.classNode.node("another test node");
-		this.expectedValues.clear();
-		anotherNode.put(ANOTHER_KEY_NAME_1, ANOTHER_STRING_VALUE_1);	this.expectedValues.put(ANOTHER_KEY_NAME_1, ANOTHER_STRING_VALUE_1);
-		anotherNode.put(ANOTHER_KEY_NAME_2, ANOTHER_STRING_VALUE_2);	this.expectedValues.put(ANOTHER_KEY_NAME_2, ANOTHER_STRING_VALUE_2);
-		anotherNode.put(ANOTHER_KEY_NAME_3, ANOTHER_STRING_VALUE_3);	this.expectedValues.put(ANOTHER_KEY_NAME_3, ANOTHER_STRING_VALUE_3);
-
-		this.nodeHolder.setValue(anotherNode);
-		// collectionChanged does not pass any items in the this.event
-		this.verifyEvent(Collections.<String, String>emptyMap());
-		this.verifyAdapter(this.preferencesAdapter);
-		
-		this.event = null;
-		this.expectedValues.clear();
-		this.nodeHolder.setValue(null);
-		this.verifyEvent(this.expectedValues);
-		assertFalse(this.preferencesAdapter.iterator().hasNext());
-		
-		this.event = null;
-		this.nodeHolder.setValue(this.testNode);
-		this.verifyEvent(Collections.<String, String>emptyMap());
-		this.expectedValues.clear();
-		this.expectedValues.put(KEY_NAME_1, STRING_VALUE_1);
-		this.expectedValues.put(KEY_NAME_2, STRING_VALUE_2);
-		this.expectedValues.put(KEY_NAME_3, STRING_VALUE_3);
-		this.verifyAdapter(this.preferencesAdapter);
-	}
-
-	public void testAddPreference() throws Exception {
-		this.verifyAdapter(this.preferencesAdapter);
-		assertNull(this.event);
-
-		String ANOTHER_KEY_NAME = "another key";
-		String ANOTHER_STRING_VALUE = "another string value";
-		this.testNode.put(ANOTHER_KEY_NAME, ANOTHER_STRING_VALUE);
-		this.waitForEventQueueToClear();
-		Map<String, String> expectedItems = new HashMap<String, String>();
-		expectedItems.put(ANOTHER_KEY_NAME, ANOTHER_STRING_VALUE);
-		this.verifyEvent(expectedItems);
-		this.expectedValues.put(ANOTHER_KEY_NAME, ANOTHER_STRING_VALUE);
-		this.verifyAdapter(this.preferencesAdapter);
-	}
-
-	public void testRemovePreference() throws Exception {
-		this.verifyAdapter(this.preferencesAdapter);
-		assertNull(this.event);
-
-		this.testNode.remove(KEY_NAME_2);
-		this.waitForEventQueueToClear();
-
-		assertNotNull(this.event);
-		assertEquals(this.preferencesAdapter, this.event.getSource());
-		assertEquals(CollectionValueModel.VALUES, this.event.getCollectionName());
-		assertEquals(1, this.event.itemsSize());
-		@SuppressWarnings("unchecked")
-		String key = ((PreferencePropertyValueModel<String>) this.event.items().next()).getKey();
-		assertEquals(KEY_NAME_2, key);
-
-		this.expectedValues.remove(KEY_NAME_2);
-		this.verifyAdapter(this.preferencesAdapter);
-	}
-
-	public void testChangePreference() throws Exception {
-		this.verifyAdapter(this.preferencesAdapter);
-		assertNull(this.event);
-
-		String DIFFERENT = "something completely different";
-		this.testNode.put(KEY_NAME_2, DIFFERENT);
-		this.waitForEventQueueToClear();
-
-		assertNull(this.event);
-
-		this.expectedValues.put(KEY_NAME_2, DIFFERENT);
-		this.verifyAdapter(this.preferencesAdapter);
-	}
-
-	public void testValues() throws Exception {
-		this.verifyNode(this.testNode);
-		this.verifyAdapter(this.preferencesAdapter);
-	}
-
-	/**
-	 * test a situation where
-	 * - we are listening to the node when it gets removed from the preferences "repository"
-	 * - we get notification that it has been removed
-	 * - we try to remove our this.listener
-	 * - the node will throw an IllegalStateException - the adapter should handle it OK...
-	 */
-	public void testRemoveNode() throws Exception {
-		assertTrue(this.preferencesAdapter.hasAnyCollectionChangeListeners(CollectionValueModel.VALUES));
-
-		Preferences parent = this.testNode.parent();
-		parent.addNodeChangeListener(this.buildParentNodeChangeListener());
-		this.testNode.removeNode();
-		this.testNode.flush();		// this seems to be required for the this.event to trigger...
-		this.waitForEventQueueToClear();
-
-		assertTrue(this.listenerRemoved);
-		assertFalse(this.preferencesAdapter.hasAnyCollectionChangeListeners(CollectionValueModel.VALUES));
-	}
-
-	private NodeChangeListener buildParentNodeChangeListener() {
-		return new NodeChangeListener() {
-			public void childAdded(NodeChangeEvent e) {
-				throw new IllegalStateException("unexpected this.event: " + e);
-			}
-			public void childRemoved(NodeChangeEvent e) {
-				if (e.getChild() == PreferencesCollectionValueModelTests.this.testNode) {
-					PreferencesCollectionValueModelTests.this.preferencesAdapter.removeCollectionChangeListener(CollectionValueModel.VALUES, PreferencesCollectionValueModelTests.this.listener);
-					// this line of code will not execute if the line above triggers an exception
-					PreferencesCollectionValueModelTests.this.listenerRemoved = true;
-				}
-			}
-		};
-	}
-
-	public void testHasListeners() throws Exception {
-		assertTrue(this.preferencesAdapter.hasAnyCollectionChangeListeners(CollectionValueModel.VALUES));
-		assertTrue(this.nodeHasAnyPrefListeners(this.testNode));
-		this.preferencesAdapter.removeCollectionChangeListener(CollectionValueModel.VALUES, this.listener);
-		assertFalse(this.nodeHasAnyPrefListeners(this.testNode));
-		assertFalse(this.preferencesAdapter.hasAnyCollectionChangeListeners(CollectionValueModel.VALUES));
-
-		CollectionChangeListener listener2 = this.buildCollectionChangeListener();
-		this.preferencesAdapter.addCollectionChangeListener(listener2);
-		assertTrue(this.preferencesAdapter.hasAnyCollectionChangeListeners(CollectionValueModel.VALUES));
-		assertTrue(this.nodeHasAnyPrefListeners(this.testNode));
-		this.preferencesAdapter.removeCollectionChangeListener(listener2);
-		assertFalse(this.nodeHasAnyPrefListeners(this.testNode));
-		assertFalse(this.preferencesAdapter.hasAnyCollectionChangeListeners(CollectionValueModel.VALUES));
-	}
-
-	private void verifyEvent(Map<String, String> items) {
-		assertNotNull(this.event);
-		assertEquals(this.preferencesAdapter, this.event.getSource());
-		assertEquals(CollectionValueModel.VALUES, this.event.getCollectionName());
-		assertEquals(items.size(), this.event.itemsSize());
-		@SuppressWarnings("unchecked")
-		Iterator<PreferencePropertyValueModel<String>> eventItems = (Iterator<PreferencePropertyValueModel<String>>) this.event.items();
-		this.verifyItems(items, eventItems);
-	}
-
-	private void verifyNode(Preferences node) throws Exception {
-		String[] keys = node.keys();
-		assertEquals(this.expectedValues.size(), keys.length);
-		for (int i = 0; i < keys.length; i++) {
-			assertEquals(this.expectedValues.get(keys[i]), node.get(keys[i], "<missing preference>"));
-		}
-	}
-
-	private void verifyAdapter(PreferencesCollectionValueModel<String> cvm) {
-		assertEquals(this.expectedValues.size(), cvm.size());
-		this.verifyItems(this.expectedValues, cvm.iterator());
-	}
-
-	private void verifyItems(Map<String, String> expected, Iterator<PreferencePropertyValueModel<String>> stream) {
-		while (stream.hasNext()) {
-			PreferencePropertyValueModel<String> model = stream.next();
-			model.addPropertyChangeListener(PropertyValueModel.VALUE, this.itemListener);
-			assertEquals(expected.get(model.getKey()), model.getValue());
-			model.removePropertyChangeListener(PropertyValueModel.VALUE, this.itemListener);
-		}
-	}
-
-	private boolean nodeHasAnyPrefListeners(Preferences node) throws Exception {
-		PreferenceChangeListener[] prefListeners = (PreferenceChangeListener[]) ClassTools.fieldValue(node, "prefListeners");
-		return prefListeners.length > 0;
-	}
-
-}
diff --git a/jpa/tests/org.eclipse.jpt.utility.tests/src/org/eclipse/jpt/utility/tests/internal/model/value/prefs/PreferencesTestCase.java b/jpa/tests/org.eclipse.jpt.utility.tests/src/org/eclipse/jpt/utility/tests/internal/model/value/prefs/PreferencesTestCase.java
deleted file mode 100644
index ce4c304..0000000
--- a/jpa/tests/org.eclipse.jpt.utility.tests/src/org/eclipse/jpt/utility/tests/internal/model/value/prefs/PreferencesTestCase.java
+++ /dev/null
@@ -1,85 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2008 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.utility.tests.internal.model.value.prefs;
-
-import java.util.EventObject;
-import java.util.List;
-import java.util.prefs.AbstractPreferences;
-import java.util.prefs.Preferences;
-import junit.framework.TestCase;
-import org.eclipse.jpt.utility.internal.ClassTools;
-import org.eclipse.jpt.utility.tests.internal.TestTools;
-
-/**
- * set up and tear down a test node for any subclass that
- * needs to test preferences-related stuff
- */
-public abstract class PreferencesTestCase extends TestCase {
-	protected Preferences classNode;
-	public Preferences testNode;
-	protected static final String TEST_NODE_NAME = "test node";
-
-	public PreferencesTestCase(String name) {
-		super(name);
-	}
-
-	@Override
-	protected void setUp() throws Exception {
-		super.setUp();
-		Preferences packageNode = Preferences.userNodeForPackage(this.getClass());
-		this.classNode = packageNode.node(ClassTools.shortClassNameForObject(this));
-		// clean out any leftover crap...
-		if ((this.classNode.keys().length > 0) || (this.classNode.childrenNames().length > 0)) {
-			this.classNode.removeNode();
-			// ...and re-create the node
-			this.classNode = packageNode.node(ClassTools.shortClassNameForObject(this));
-		}
-		this.testNode = this.classNode.node(TEST_NODE_NAME);
-	}
-
-	@Override
-	protected void tearDown() throws Exception {
-		// wait for all the events to be delivered before tearing down
-		this.waitForEventQueueToClear();
-		Preferences node = this.classNode.parent();
-		this.classNode.removeNode();
-		while (this.nodeIsVestigial(node)) {
-			Preferences parent = node.parent();
-			node.removeNode();
-			node = parent;
-		}
-		TestTools.clear(this);
-		super.tearDown();
-	}
-
-	private boolean nodeIsVestigial(Preferences node) throws Exception {
-		return (node != null)
-			&& (node.keys().length == 0)
-			&& (node.childrenNames().length == 0)
-			&& (node != Preferences.userRoot());
-	}
-
-	protected void waitForEventQueueToClear() {
-		try {
-			while ( ! this.preferencesEventQueue().isEmpty()) {
-				Thread.sleep(100);
-			}
-			Thread.sleep(100);
-		} catch (InterruptedException ex) {
-			throw new RuntimeException(ex);
-		}
-	}
-
-	@SuppressWarnings("unchecked")
-	private List<EventObject> preferencesEventQueue() {
-		return (List<EventObject>) ClassTools.staticFieldValue(AbstractPreferences.class, "eventQueue");
-	}
-
-}
diff --git a/jpa/tests/org.eclipse.jpt.utility.tests/src/org/eclipse/jpt/utility/tests/internal/model/value/swing/CheckBoxModelAdapterTests.java b/jpa/tests/org.eclipse.jpt.utility.tests/src/org/eclipse/jpt/utility/tests/internal/model/value/swing/CheckBoxModelAdapterTests.java
deleted file mode 100644
index 4302458..0000000
--- a/jpa/tests/org.eclipse.jpt.utility.tests/src/org/eclipse/jpt/utility/tests/internal/model/value/swing/CheckBoxModelAdapterTests.java
+++ /dev/null
@@ -1,134 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2008 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.utility.tests.internal.model.value.swing;
-
-import javax.swing.ButtonModel;
-import javax.swing.event.ChangeEvent;
-import javax.swing.event.ChangeListener;
-import javax.swing.event.EventListenerList;
-import junit.framework.TestCase;
-import org.eclipse.jpt.utility.internal.ClassTools;
-import org.eclipse.jpt.utility.internal.model.value.SimplePropertyValueModel;
-import org.eclipse.jpt.utility.internal.model.value.swing.CheckBoxModelAdapter;
-import org.eclipse.jpt.utility.model.listener.PropertyChangeListener;
-import org.eclipse.jpt.utility.model.value.PropertyValueModel;
-import org.eclipse.jpt.utility.model.value.WritablePropertyValueModel;
-import org.eclipse.jpt.utility.tests.internal.TestTools;
-
-public class CheckBoxModelAdapterTests extends TestCase {
-	private WritablePropertyValueModel<Boolean> booleanHolder;
-	private ButtonModel buttonModelAdapter;
-	boolean eventFired;
-
-	public CheckBoxModelAdapterTests(String name) {
-		super(name);
-	}
-
-	@Override
-	protected void setUp() throws Exception {
-		super.setUp();
-		this.booleanHolder = new SimplePropertyValueModel<Boolean>(Boolean.TRUE);
-		this.buttonModelAdapter = new CheckBoxModelAdapter(this.booleanHolder) {
-			@Override
-			protected PropertyChangeListener buildBooleanChangeListener() {
-				return this.buildBooleanChangeListener_();
-			}
-		};
-	}
-
-	@Override
-	protected void tearDown() throws Exception {
-		TestTools.clear(this);
-		super.tearDown();
-	}
-
-	public void testSetSelected() throws Exception {
-		this.eventFired = false;
-		this.buttonModelAdapter.addChangeListener(new TestChangeListener() {
-			@Override
-			public void stateChanged(ChangeEvent e) {
-				CheckBoxModelAdapterTests.this.eventFired = true;
-			}
-		});
-		this.buttonModelAdapter.setSelected(false);
-		assertTrue(this.eventFired);
-		assertEquals(Boolean.FALSE, this.booleanHolder.getValue());
-	}
-
-	public void testSetValue() throws Exception {
-		this.eventFired = false;
-		this.buttonModelAdapter.addChangeListener(new TestChangeListener() {
-			@Override
-			public void stateChanged(ChangeEvent e) {
-				CheckBoxModelAdapterTests.this.eventFired = true;
-			}
-		});
-		assertTrue(this.buttonModelAdapter.isSelected());
-		this.booleanHolder.setValue(Boolean.FALSE);
-		assertTrue(this.eventFired);
-		assertFalse(this.buttonModelAdapter.isSelected());
-	}
-
-	public void testDefaultValue() throws Exception {
-		this.eventFired = false;
-		this.buttonModelAdapter.addChangeListener(new TestChangeListener() {
-			@Override
-			public void stateChanged(ChangeEvent e) {
-				CheckBoxModelAdapterTests.this.eventFired = true;
-			}
-		});
-		assertTrue(this.buttonModelAdapter.isSelected());
-		this.booleanHolder.setValue(null);
-		assertTrue(this.eventFired);
-		assertFalse(this.buttonModelAdapter.isSelected());
-
-		this.eventFired = false;
-		this.booleanHolder.setValue(Boolean.FALSE);
-		assertFalse(this.eventFired);
-		assertFalse(this.buttonModelAdapter.isSelected());
-	}
-
-	public void testHasListeners() throws Exception {
-		SimplePropertyValueModel<Boolean> localBooleanHolder = (SimplePropertyValueModel<Boolean>) this.booleanHolder;
-		assertFalse(localBooleanHolder.hasAnyPropertyChangeListeners(PropertyValueModel.VALUE));
-		this.verifyHasNoListeners(this.buttonModelAdapter);
-
-		ChangeListener listener = new TestChangeListener();
-		this.buttonModelAdapter.addChangeListener(listener);
-		assertTrue(localBooleanHolder.hasAnyPropertyChangeListeners(PropertyValueModel.VALUE));
-		this.verifyHasListeners(this.buttonModelAdapter);
-
-		this.buttonModelAdapter.removeChangeListener(listener);
-		assertFalse(localBooleanHolder.hasAnyPropertyChangeListeners(PropertyValueModel.VALUE));
-		this.verifyHasNoListeners(this.buttonModelAdapter);
-	}
-
-	private void verifyHasNoListeners(Object model) throws Exception {
-		EventListenerList listenerList = (EventListenerList) ClassTools.fieldValue(model, "listenerList");
-		assertEquals(0, listenerList.getListenerList().length);
-	}
-
-	private void verifyHasListeners(Object model) throws Exception {
-		EventListenerList listenerList = (EventListenerList) ClassTools.fieldValue(model, "listenerList");
-		assertFalse(listenerList.getListenerList().length == 0);
-	}
-
-
-	// ********** member class **********
-	private class TestChangeListener implements ChangeListener {
-		TestChangeListener() {
-			super();
-		}
-		public void stateChanged(ChangeEvent e) {
-			fail("unexpected event");
-		}
-	}
-
-}
diff --git a/jpa/tests/org.eclipse.jpt.utility.tests/src/org/eclipse/jpt/utility/tests/internal/model/value/swing/CheckBoxModelAdapterUITest.java b/jpa/tests/org.eclipse.jpt.utility.tests/src/org/eclipse/jpt/utility/tests/internal/model/value/swing/CheckBoxModelAdapterUITest.java
deleted file mode 100644
index c3bc373..0000000
--- a/jpa/tests/org.eclipse.jpt.utility.tests/src/org/eclipse/jpt/utility/tests/internal/model/value/swing/CheckBoxModelAdapterUITest.java
+++ /dev/null
@@ -1,313 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2008 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.utility.tests.internal.model.value.swing;
-
-import java.awt.BorderLayout;
-import java.awt.Component;
-import java.awt.GridLayout;
-import java.awt.event.ActionEvent;
-import java.awt.event.ItemEvent;
-import java.awt.event.ItemListener;
-import java.awt.event.WindowAdapter;
-import java.awt.event.WindowEvent;
-import java.awt.event.WindowListener;
-import javax.swing.AbstractAction;
-import javax.swing.Action;
-import javax.swing.ButtonModel;
-import javax.swing.JButton;
-import javax.swing.JCheckBox;
-import javax.swing.JFrame;
-import javax.swing.JPanel;
-import javax.swing.WindowConstants;
-import org.eclipse.jpt.utility.internal.model.AbstractModel;
-import org.eclipse.jpt.utility.internal.model.value.PropertyAspectAdapter;
-import org.eclipse.jpt.utility.internal.model.value.SimplePropertyValueModel;
-import org.eclipse.jpt.utility.internal.model.value.swing.CheckBoxModelAdapter;
-import org.eclipse.jpt.utility.model.value.PropertyValueModel;
-import org.eclipse.jpt.utility.model.value.WritablePropertyValueModel;
-
-/**
- * Play around with a set of check boxes.
- */
-public class CheckBoxModelAdapterUITest {
-
-	private TestModel testModel;
-	private WritablePropertyValueModel<TestModel> testModelHolder;
-	private WritablePropertyValueModel<Boolean> flag1Holder;
-	private WritablePropertyValueModel<Boolean> flag2Holder;
-	private WritablePropertyValueModel<Boolean> notFlag2Holder;
-	private ButtonModel flag1ButtonModel;
-	private ButtonModel flag2ButtonModel;
-	private ButtonModel notFlag2ButtonModel;
-
-	public static void main(String[] args) throws Exception {
-		new CheckBoxModelAdapterUITest().exec(args);
-	}
-
-	private CheckBoxModelAdapterUITest() {
-		super();
-	}
-
-	private void exec(String[] args) throws Exception {
-		this.testModel = new TestModel(true, true);
-		this.testModelHolder = new SimplePropertyValueModel<TestModel>(this.testModel);
-		this.flag1Holder = this.buildFlag1Holder(this.testModelHolder);
-		this.flag1ButtonModel = this.buildCheckBoxModelAdapter(this.flag1Holder);
-		this.flag2Holder = this.buildFlag2Holder(this.testModelHolder);
-		this.flag2ButtonModel = this.buildCheckBoxModelAdapter(this.flag2Holder);
-		this.notFlag2Holder = this.buildNotFlag2Holder(this.testModelHolder);
-		this.notFlag2ButtonModel = this.buildCheckBoxModelAdapter(this.notFlag2Holder);
-		this.openWindow();
-	}
-
-	private WritablePropertyValueModel<Boolean> buildFlag1Holder(PropertyValueModel<TestModel> vm) {
-		return new PropertyAspectAdapter<TestModel, Boolean>(vm, TestModel.FLAG1_PROPERTY) {
-			@Override
-			protected Boolean buildValue_() {
-				return Boolean.valueOf(this.subject.isFlag1());
-			}
-			@Override
-			protected void setValue_(Boolean value) {
-				this.subject.setFlag1(value.booleanValue());
-			}
-		};
-	}
-
-	private WritablePropertyValueModel<Boolean> buildFlag2Holder(PropertyValueModel<TestModel> vm) {
-		return new PropertyAspectAdapter<TestModel, Boolean>(vm, TestModel.FLAG2_PROPERTY) {
-			@Override
-			protected Boolean buildValue_() {
-				return Boolean.valueOf(this.subject.isFlag2());
-			}
-			@Override
-			protected void setValue_(Boolean value) {
-				this.subject.setFlag2(value.booleanValue());
-			}
-		};
-	}
-
-	private WritablePropertyValueModel<Boolean> buildNotFlag2Holder(PropertyValueModel<TestModel> vm) {
-		return new PropertyAspectAdapter<TestModel, Boolean>(vm, TestModel.NOT_FLAG2_PROPERTY) {
-			@Override
-			protected Boolean buildValue_() {
-				return Boolean.valueOf(this.subject.isNotFlag2());
-			}
-			@Override
-			protected void setValue_(Boolean value) {
-				this.subject.setNotFlag2(value.booleanValue());
-			}
-		};
-	}
-
-	private ButtonModel buildCheckBoxModelAdapter(WritablePropertyValueModel<Boolean> booleanHolder) {
-		return new CheckBoxModelAdapter(booleanHolder);
-	}
-
-	private void openWindow() {
-		JFrame window = new JFrame(this.getClass().getName());
-		window.setDefaultCloseOperation(WindowConstants.DO_NOTHING_ON_CLOSE);
-		window.addWindowListener(this.buildWindowListener());
-		window.getContentPane().add(this.buildMainPanel(), "Center");
-		window.setSize(400, 100);
-		window.setVisible(true);
-	}
-
-	private WindowListener buildWindowListener() {
-		return new WindowAdapter() {
-			@Override
-			public void windowClosing(WindowEvent e) {
-				e.getWindow().setVisible(false);
-				System.exit(0);
-			}
-		};
-	}
-
-	private Component buildMainPanel() {
-		JPanel mainPanel = new JPanel(new BorderLayout());
-		mainPanel.add(this.buildCheckBoxPanel(), BorderLayout.NORTH);
-		mainPanel.add(this.buildControlPanel(), BorderLayout.SOUTH);
-		return mainPanel;
-	}
-
-	private Component buildCheckBoxPanel() {
-		JPanel taskListPanel = new JPanel(new GridLayout(1, 0));
-		taskListPanel.add(this.buildFlag1CheckBox());
-		taskListPanel.add(this.buildFlag2CheckBox());
-		taskListPanel.add(this.buildNotFlag2CheckBox());
-		taskListPanel.add(this.buildUnattachedCheckBox());
-		return taskListPanel;
-	}
-
-	private JCheckBox buildFlag1CheckBox() {
-		JCheckBox checkBox = new JCheckBox();
-		checkBox.setText("flag 1");
-		checkBox.setModel(this.flag1ButtonModel);
-		return checkBox;
-	}
-
-	private JCheckBox buildFlag2CheckBox() {
-		JCheckBox checkBox = new JCheckBox();
-		checkBox.setText("flag 2");
-		checkBox.setModel(this.flag2ButtonModel);
-		return checkBox;
-	}
-
-	private JCheckBox buildNotFlag2CheckBox() {
-		JCheckBox checkBox = new JCheckBox();
-		checkBox.setText("not flag 2");
-		checkBox.setModel(this.notFlag2ButtonModel);
-		return checkBox;
-	}
-
-	private JCheckBox buildUnattachedCheckBox() {
-		JCheckBox checkBox = new JCheckBox("unattached");
-		checkBox.getModel().addItemListener(this.buildUnattachedItemListener());
-		return checkBox;
-	}
-
-	private ItemListener buildUnattachedItemListener() {
-		return new ItemListener() {
-			public void itemStateChanged(ItemEvent e) {
-				System.out.println("unattached state changed: " + e);
-			}
-		};
-	}
-
-	private Component buildControlPanel() {
-		JPanel controlPanel = new JPanel(new GridLayout(1, 0));
-		controlPanel.add(this.buildFlipFlag1Button());
-		controlPanel.add(this.buildClearModelButton());
-		controlPanel.add(this.buildRestoreModelButton());
-		controlPanel.add(this.buildPrintModelButton());
-		return controlPanel;
-	}
-
-	private JButton buildFlipFlag1Button() {
-		return new JButton(this.buildFlipFlag1Action());
-	}
-
-	private Action buildFlipFlag1Action() {
-		Action action = new AbstractAction("flip flag 1") {
-			public void actionPerformed(ActionEvent event) {
-				CheckBoxModelAdapterUITest.this.flipFlag1();
-			}
-		};
-		action.setEnabled(true);
-		return action;
-	}
-
-	void flipFlag1() {
-		this.testModel.setFlag1( ! this.testModel.isFlag1());
-	}
-
-	private JButton buildClearModelButton() {
-		return new JButton(this.buildClearModelAction());
-	}
-
-	private Action buildClearModelAction() {
-		Action action = new AbstractAction("clear model") {
-			public void actionPerformed(ActionEvent event) {
-				CheckBoxModelAdapterUITest.this.clearModel();
-			}
-		};
-		action.setEnabled(true);
-		return action;
-	}
-
-	void clearModel() {
-		this.testModelHolder.setValue(null);
-	}
-
-	private JButton buildRestoreModelButton() {
-		return new JButton(this.buildRestoreModelAction());
-	}
-
-	private Action buildRestoreModelAction() {
-		Action action = new AbstractAction("restore model") {
-			public void actionPerformed(ActionEvent event) {
-				CheckBoxModelAdapterUITest.this.restoreModel();
-			}
-		};
-		action.setEnabled(true);
-		return action;
-	}
-
-	void restoreModel() {
-		this.testModelHolder.setValue(this.testModel);
-	}
-
-	private JButton buildPrintModelButton() {
-		return new JButton(this.buildPrintModelAction());
-	}
-
-	private Action buildPrintModelAction() {
-		Action action = new AbstractAction("print model") {
-			public void actionPerformed(ActionEvent event) {
-				CheckBoxModelAdapterUITest.this.printModel();
-			}
-		};
-		action.setEnabled(true);
-		return action;
-	}
-
-	void printModel() {
-		System.out.println("flag 1: " + this.testModel.isFlag1());
-		System.out.println("flag 2: " + this.testModel.isFlag2());
-		System.out.println("not flag 2: " + this.testModel.isNotFlag2());
-		System.out.println("***");
-	}
-
-
-	private class TestModel extends AbstractModel {
-		private boolean flag1;
-			public static final String FLAG1_PROPERTY = "flag1";
-		private boolean flag2;
-			public static final String FLAG2_PROPERTY = "flag2";
-		private boolean notFlag2;
-			public static final String NOT_FLAG2_PROPERTY = "notFlag2";
-	
-		public TestModel(boolean flag1, boolean flag2) {
-			this.flag1 = flag1;
-			this.flag2 = flag2;
-			this.notFlag2 = ! flag2;
-		}
-		public boolean isFlag1() {
-			return this.flag1;
-		}
-		public void setFlag1(boolean flag1) {
-			boolean old = this.flag1;
-			this.flag1 = flag1;
-			this.firePropertyChanged(FLAG1_PROPERTY, old, flag1);
-		}
-		public boolean isFlag2() {
-			return this.flag2;
-		}
-		public void setFlag2(boolean flag2) {
-			boolean old = this.flag2;
-			this.flag2 = flag2;
-			this.firePropertyChanged(FLAG2_PROPERTY, old, flag2);
-	
-			old = this.notFlag2;
-			this.notFlag2 = ! flag2;
-			this.firePropertyChanged(NOT_FLAG2_PROPERTY, old, this.notFlag2);
-		}
-		public boolean isNotFlag2() {
-			return this.notFlag2;
-		}
-		public void setNotFlag2(boolean notFlag2) {
-			this.setFlag2( ! notFlag2);
-		}
-		@Override
-		public String toString() {
-			return "TestModel(" + this.isFlag1() + " - " + this.isFlag2() + ")";
-		}
-	}
-
-}
diff --git a/jpa/tests/org.eclipse.jpt.utility.tests/src/org/eclipse/jpt/utility/tests/internal/model/value/swing/ComboBoxModelAdapterTests.java b/jpa/tests/org.eclipse.jpt.utility.tests/src/org/eclipse/jpt/utility/tests/internal/model/value/swing/ComboBoxModelAdapterTests.java
deleted file mode 100644
index e79111a..0000000
--- a/jpa/tests/org.eclipse.jpt.utility.tests/src/org/eclipse/jpt/utility/tests/internal/model/value/swing/ComboBoxModelAdapterTests.java
+++ /dev/null
@@ -1,110 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2008 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.utility.tests.internal.model.value.swing;
-
-import java.util.ArrayList;
-import java.util.Collection;
-import java.util.List;
-import javax.swing.ComboBoxModel;
-import javax.swing.ListModel;
-import junit.framework.TestCase;
-import org.eclipse.jpt.utility.internal.ClassTools;
-import org.eclipse.jpt.utility.internal.model.value.SimpleListValueModel;
-import org.eclipse.jpt.utility.internal.model.value.SimplePropertyValueModel;
-import org.eclipse.jpt.utility.internal.model.value.swing.ComboBoxModelAdapter;
-import org.eclipse.jpt.utility.internal.swing.Displayable;
-import org.eclipse.jpt.utility.internal.swing.SimpleDisplayable;
-import org.eclipse.jpt.utility.model.event.PropertyChangeEvent;
-import org.eclipse.jpt.utility.model.listener.PropertyChangeListener;
-import org.eclipse.jpt.utility.model.value.ListValueModel;
-import org.eclipse.jpt.utility.model.value.PropertyValueModel;
-import org.eclipse.jpt.utility.tests.internal.model.value.CoordinatedList;
-
-public class ComboBoxModelAdapterTests extends TestCase {
-
-	public ComboBoxModelAdapterTests(String name) {
-		super(name);
-	}
-
-	@Override
-	protected void setUp() throws Exception {
-		super.setUp();
-		// nothing yet...
-	}
-
-	@Override
-	protected void tearDown() throws Exception {
-		// nothing yet...
-		super.tearDown();
-	}
-
-	public void testHasListeners() throws Exception {
-		SimpleListValueModel<Displayable> listHolder = this.buildListHolder();
-		assertFalse(listHolder.hasAnyListChangeListeners(ListValueModel.LIST_VALUES));
-		SimplePropertyValueModel<Object> selectionHolder = new SimplePropertyValueModel<Object>(listHolder.iterator().next());
-		assertFalse(selectionHolder.hasAnyPropertyChangeListeners(PropertyValueModel.VALUE));
-
-		ComboBoxModel comboBoxModel = new ComboBoxModelAdapter(listHolder, selectionHolder);
-		assertFalse(listHolder.hasAnyListChangeListeners(ListValueModel.LIST_VALUES));
-		assertFalse(selectionHolder.hasAnyPropertyChangeListeners(PropertyValueModel.VALUE));
-		this.verifyHasNoListeners(comboBoxModel);
-
-		CoordinatedList<Displayable> synchList = new CoordinatedList<Displayable>(comboBoxModel);
-		PropertyChangeListener selectionListener = this.buildSelectionListener();
-		selectionHolder.addPropertyChangeListener(PropertyValueModel.VALUE, selectionListener);
-		assertTrue(listHolder.hasAnyListChangeListeners(ListValueModel.LIST_VALUES));
-		assertTrue(selectionHolder.hasAnyPropertyChangeListeners(PropertyValueModel.VALUE));
-		this.verifyHasListeners(comboBoxModel);
-
-		comboBoxModel.removeListDataListener(synchList);
-		selectionHolder.removePropertyChangeListener(PropertyValueModel.VALUE, selectionListener);
-		assertFalse(listHolder.hasAnyListChangeListeners(ListValueModel.LIST_VALUES));
-		assertFalse(selectionHolder.hasAnyPropertyChangeListeners(PropertyValueModel.VALUE));
-		this.verifyHasNoListeners(comboBoxModel);
-	}
-
-	private PropertyChangeListener buildSelectionListener() {
-		return new PropertyChangeListener() {
-			public void propertyChanged(PropertyChangeEvent evt) {
-				// do nothing...
-			}
-		};
-	}
-
-	private void verifyHasNoListeners(ListModel listModel) throws Exception {
-		boolean hasNoListeners = ((Boolean) ClassTools.executeMethod(listModel, "hasNoListDataListeners")).booleanValue();
-		assertTrue(hasNoListeners);
-	}
-
-	private void verifyHasListeners(ListModel listModel) throws Exception {
-		boolean hasListeners = ((Boolean) ClassTools.executeMethod(listModel, "hasListDataListeners")).booleanValue();
-		assertTrue(hasListeners);
-	}
-
-	private SimpleListValueModel<Displayable> buildListHolder() {
-		return new SimpleListValueModel<Displayable>(this.buildList());
-	}
-
-	private List<Displayable> buildList() {
-		List<Displayable> list = new ArrayList<Displayable>();
-		this.populateCollection(list);
-		return list;
-	}
-
-	private void populateCollection(Collection<Displayable> c) {
-		c.add(new SimpleDisplayable("foo"));
-		c.add(new SimpleDisplayable("bar"));
-		c.add(new SimpleDisplayable("baz"));
-		c.add(new SimpleDisplayable("joo"));
-		c.add(new SimpleDisplayable("jar"));
-		c.add(new SimpleDisplayable("jaz"));
-	}
-
-}
diff --git a/jpa/tests/org.eclipse.jpt.utility.tests/src/org/eclipse/jpt/utility/tests/internal/model/value/swing/ComboBoxModelAdapterUITest.java b/jpa/tests/org.eclipse.jpt.utility.tests/src/org/eclipse/jpt/utility/tests/internal/model/value/swing/ComboBoxModelAdapterUITest.java
deleted file mode 100644
index bb6e8f0..0000000
--- a/jpa/tests/org.eclipse.jpt.utility.tests/src/org/eclipse/jpt/utility/tests/internal/model/value/swing/ComboBoxModelAdapterUITest.java
+++ /dev/null
@@ -1,391 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2008 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.utility.tests.internal.model.value.swing;
-
-import java.awt.BorderLayout;
-import java.awt.Component;
-import java.awt.GridLayout;
-import java.awt.event.ActionEvent;
-import java.awt.event.WindowAdapter;
-import java.awt.event.WindowEvent;
-import java.awt.event.WindowListener;
-import java.util.ArrayList;
-import java.util.List;
-import javax.swing.AbstractAction;
-import javax.swing.Action;
-import javax.swing.ComboBoxModel;
-import javax.swing.JButton;
-import javax.swing.JComboBox;
-import javax.swing.JFrame;
-import javax.swing.JPanel;
-import javax.swing.ListCellRenderer;
-import javax.swing.UIManager;
-import javax.swing.WindowConstants;
-import org.eclipse.jpt.utility.internal.ClassTools;
-import org.eclipse.jpt.utility.internal.CollectionTools;
-import org.eclipse.jpt.utility.internal.model.AbstractModel;
-import org.eclipse.jpt.utility.internal.model.value.PropertyAspectAdapter;
-import org.eclipse.jpt.utility.internal.model.value.SimpleListValueModel;
-import org.eclipse.jpt.utility.internal.model.value.SimplePropertyValueModel;
-import org.eclipse.jpt.utility.internal.model.value.swing.ComboBoxModelAdapter;
-import org.eclipse.jpt.utility.internal.swing.FilteringListBrowser;
-import org.eclipse.jpt.utility.internal.swing.ListChooser;
-import org.eclipse.jpt.utility.internal.swing.SimpleListCellRenderer;
-import org.eclipse.jpt.utility.model.value.ListValueModel;
-import org.eclipse.jpt.utility.model.value.PropertyValueModel;
-import org.eclipse.jpt.utility.model.value.WritablePropertyValueModel;
-
-
-/**
- * Play around with a set of combo-boxes.
- * 
- * DefaultLongListBrowserDialogUITest subclasses this class; so be
- * careful when making changes.
- */
-public class ComboBoxModelAdapterUITest {
-
-	protected JFrame window;
-	private TestModel testModel;
-	private WritablePropertyValueModel<TestModel> testModelHolder;
-	private WritablePropertyValueModel<Object> colorHolder;
-	private SimpleListValueModel<String> colorListHolder;
-	protected ComboBoxModel colorComboBoxModel;
-	private int nextColorNumber = 0;
-
-	public static void main(String[] args) throws Exception {
-		new ComboBoxModelAdapterUITest().exec(args);
-	}
-
-	protected ComboBoxModelAdapterUITest() {
-		super();
-	}
-
-	protected void exec(String[] args) throws Exception {
-		UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName());
-//		UIManager.setLookAndFeel(UIManager.getCrossPlatformLookAndFeelClassName());	// Metal LAF
-//		UIManager.setLookAndFeel(com.sun.java.swing.plaf.windows.WindowsLookAndFeel.class.getName());
-//		UIManager.setLookAndFeel(com.sun.java.swing.plaf.motif.MotifLookAndFeel.class.getName());
-//		UIManager.setLookAndFeel(oracle.bali.ewt.olaf.OracleLookAndFeel.class.getName());
-		this.testModel = this.buildTestModel();
-		this.testModelHolder = new SimplePropertyValueModel<TestModel>(this.testModel);
-		this.colorHolder = this.buildColorHolder(this.testModelHolder);
-		this.colorListHolder = this.buildColorListHolder();
-		this.colorComboBoxModel = this.buildComboBoxModelAdapter(this.colorListHolder, this.colorHolder);
-		this.openWindow();
-	}
-
-	private WritablePropertyValueModel<Object> buildColorHolder(PropertyValueModel<TestModel> vm) {
-		return new PropertyAspectAdapter<TestModel, Object>(vm, TestModel.COLOR_PROPERTY) {
-			@Override
-			protected String buildValue_() {
-				return this.subject.getColor();
-			}
-			@Override
-			protected void setValue_(Object value) {
-				this.subject.setColor((String) value);
-			}
-		};
-	}
-
-	protected TestModel buildTestModel() {
-		return new TestModel();
-	}
-
-	private SimpleListValueModel<String> buildColorListHolder() {
-		return new SimpleListValueModel<String>(TestModel.validColors());
-//		return new AbstractReadOnlyListValueModel() {
-//			public Object value() {
-//				return new ArrayListIterator(TestModel.VALID_COLORS);
-//			}
-//			public int size() {
-//				return TestModel.VALID_COLORS.length;
-//			}
-//		};
-	}
-
-	protected ListValueModel<String> uiColorListHolder() {
-		return this.colorListHolder;
-	}
-
-	private ComboBoxModel buildComboBoxModelAdapter(ListValueModel<String> listHolder, WritablePropertyValueModel<Object> selectionHolder) {
-		return new ComboBoxModelAdapter(listHolder, selectionHolder);
-	}
-
-	private void openWindow() {
-		this.window = new JFrame(ClassTools.shortNameFor(this.getClass()));
-		this.window.setDefaultCloseOperation(WindowConstants.DO_NOTHING_ON_CLOSE);
-		this.window.addWindowListener(this.buildWindowListener());
-		this.window.getContentPane().add(this.buildMainPanel(), "Center");
-		this.window.setLocation(300, 300);
-		this.window.setSize(400, 150);
-		this.window.setVisible(true);
-	}
-
-	private WindowListener buildWindowListener() {
-		return new WindowAdapter() {
-			@Override
-			public void windowClosing(WindowEvent e) {
-				e.getWindow().setVisible(false);
-				System.exit(0);
-			}
-		};
-	}
-
-	private Component buildMainPanel() {
-		JPanel mainPanel = new JPanel(new BorderLayout());
-		mainPanel.add(this.buildComboBoxPanel(), BorderLayout.NORTH);
-		mainPanel.add(this.buildControlPanel(), BorderLayout.SOUTH);
-		return mainPanel;
-	}
-
-	protected JPanel buildComboBoxPanel() {
-		JPanel panel = new JPanel(new GridLayout(1, 0));
-		panel.add(this.buildComboBox());
-		panel.add(this.buildComboBox());
-		panel.add(this.buildListChooser1());
-		panel.add(this.buildListChooser2());
-		return panel;
-	}
-
-	private JComboBox buildComboBox() {
-		JComboBox comboBox = new JComboBox(this.colorComboBoxModel);
-		comboBox.setRenderer(this.buildComboBoxRenderer());
-		return comboBox;
-	}
-
-	protected ListCellRenderer buildComboBoxRenderer() {
-		return new SimpleListCellRenderer() {
-			@Override
-			protected String buildText(Object value) {
-				return super.buildText(value);
-			}
-		};
-	}
-
-	private ListChooser buildListChooser1() {
-		return new LocalListChooser1(this.colorComboBoxModel);
-	}
-
-	private ListChooser buildListChooser2() {
-		return new LocalListChooser2(this.colorComboBoxModel);
-	}
-
-	private Component buildControlPanel() {
-		JPanel controlPanel = new JPanel(new GridLayout(2, 0));
-		controlPanel.add(this.buildResetColorButton());
-		controlPanel.add(this.buildClearModelButton());
-		controlPanel.add(this.buildRestoreModelButton());
-		controlPanel.add(this.buildPrintModelButton());
-		controlPanel.add(this.buildAddTenButton());
-		controlPanel.add(this.buildRemoveTenButton());
-		return controlPanel;
-	}
-
-	// ********** reset color button **********
-	private JButton buildResetColorButton() {
-		return new JButton(this.buildResetColorAction());
-	}
-
-	private Action buildResetColorAction() {
-		Action action = new AbstractAction("reset color") {
-			public void actionPerformed(ActionEvent event) {
-				ComboBoxModelAdapterUITest.this.resetColor();
-			}
-		};
-		action.setEnabled(true);
-		return action;
-	}
-
-	void resetColor() {
-		this.testModel.setColor(TestModel.DEFAULT_COLOR);
-	}
-
-	// ********** clear model button **********
-	private JButton buildClearModelButton() {
-		return new JButton(this.buildClearModelAction());
-	}
-
-	private Action buildClearModelAction() {
-		Action action = new AbstractAction("clear model") {
-			public void actionPerformed(ActionEvent event) {
-				ComboBoxModelAdapterUITest.this.clearModel();
-			}
-		};
-		action.setEnabled(true);
-		return action;
-	}
-
-	void clearModel() {
-		this.testModelHolder.setValue(null);
-	}
-
-	// ********** restore model button **********
-	private JButton buildRestoreModelButton() {
-		return new JButton(this.buildRestoreModelAction());
-	}
-
-	private Action buildRestoreModelAction() {
-		Action action = new AbstractAction("restore model") {
-			public void actionPerformed(ActionEvent event) {
-				ComboBoxModelAdapterUITest.this.restoreModel();
-			}
-		};
-		action.setEnabled(true);
-		return action;
-	}
-
-	void restoreModel() {
-		this.testModelHolder.setValue(this.testModel);
-	}
-
-	// ********** print model button **********
-	private JButton buildPrintModelButton() {
-		return new JButton(this.buildPrintModelAction());
-	}
-
-	private Action buildPrintModelAction() {
-		Action action = new AbstractAction("print model") {
-			public void actionPerformed(ActionEvent event) {
-				ComboBoxModelAdapterUITest.this.printModel();
-			}
-		};
-		action.setEnabled(true);
-		return action;
-	}
-
-	void printModel() {
-		System.out.println(this.testModel);
-	}
-
-	// ********** add 20 button **********
-	private JButton buildAddTenButton() {
-		return new JButton(this.buildAddTenAction());
-	}
-
-	private Action buildAddTenAction() {
-		Action action = new AbstractAction("add 20") {
-			public void actionPerformed(ActionEvent event) {
-				ComboBoxModelAdapterUITest.this.addTen();
-			}
-		};
-		action.setEnabled(true);
-		return action;
-	}
-
-	void addTen() {
-		for (int i = this.nextColorNumber; i < this.nextColorNumber + 20; i++) {
-			this.colorListHolder.add(this.colorListHolder.size(), "color" + i);
-		}
-		this.nextColorNumber += 20;
-	}
-
-	// ********** remove 20 button **********
-	private JButton buildRemoveTenButton() {
-		return new JButton(this.buildRemoveTenAction());
-	}
-
-	private Action buildRemoveTenAction() {
-		Action action = new AbstractAction("remove 20") {
-			public void actionPerformed(ActionEvent event) {
-				ComboBoxModelAdapterUITest.this.removeTen();
-			}
-		};
-		action.setEnabled(true);
-		return action;
-	}
-
-	void removeTen() {
-		for (int i = 0; i < 20; i++) {
-			if (this.colorListHolder.size() > 0) {
-				this.colorListHolder.remove(this.colorListHolder.size() - 1);
-			}
-		}
-	}
-
-
-	protected static class TestModel extends AbstractModel {
-		private String color;
-			public static final String COLOR_PROPERTY = "color";
-			public static final String RED = "red";
-			public static final String ORANGE = "orange";
-			public static final String YELLOW = "yellow";
-			public static final String GREEN = "green";
-			public static final String BLUE = "blue";
-			public static final String INDIGO = "indigo";
-			public static final String VIOLET = "violet";
-			public static final String DEFAULT_COLOR = RED;
-			public static List<String> validColors;
-			public static final String[] DEFAULT_VALID_COLORS = {
-				RED,
-				ORANGE,
-				YELLOW,
-				GREEN,
-				BLUE,
-				INDIGO,
-				VIOLET
-			};
-	
-		public static List<String> validColors() {
-			if (validColors == null) {
-				validColors = buildDefaultValidColors();
-			}
-			return validColors;
-		}
-		public static List<String> buildDefaultValidColors() {
-			List<String> result = new ArrayList<String>();
-			CollectionTools.addAll(result, DEFAULT_VALID_COLORS);
-			return result;
-		}
-	
-		public TestModel() {
-			this(DEFAULT_COLOR);
-		}
-		public TestModel(String color) {
-			this.color = color;
-		}
-		public String getColor() {
-			return this.color;
-		}
-		public void setColor(String color) {
-			this.checkColor(color);
-			Object old = this.color;
-			this.color = color;
-			this.firePropertyChanged(COLOR_PROPERTY, old, color);
-		}
-		public void checkColor(String c) {
-			if ( ! validColors().contains(c)) {
-				throw new IllegalArgumentException(c);
-			}
-		}
-		@Override
-		public String toString() {
-			return "TestModel(" + this.color + ")";
-		}
-	}
-
-
-	private class LocalListChooser1 extends ListChooser {
-		public LocalListChooser1(ComboBoxModel model) {
-			super(model);
-		}
-	}
-
-
-	private class LocalListChooser2 extends ListChooser {
-		public LocalListChooser2(ComboBoxModel model) {
-			super(model);
-		}
-		@Override
-		protected ListBrowser buildBrowser() {
-			return new FilteringListBrowser<String>();
-		}
-	}
-
-}
diff --git a/jpa/tests/org.eclipse.jpt.utility.tests/src/org/eclipse/jpt/utility/tests/internal/model/value/swing/ComboBoxModelAdapterUITest2.java b/jpa/tests/org.eclipse.jpt.utility.tests/src/org/eclipse/jpt/utility/tests/internal/model/value/swing/ComboBoxModelAdapterUITest2.java
deleted file mode 100644
index e9c5fc4..0000000
--- a/jpa/tests/org.eclipse.jpt.utility.tests/src/org/eclipse/jpt/utility/tests/internal/model/value/swing/ComboBoxModelAdapterUITest2.java
+++ /dev/null
@@ -1,74 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2008 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.utility.tests.internal.model.value.swing;
-
-import javax.swing.ListCellRenderer;
-import org.eclipse.jpt.utility.internal.model.value.ExtendedListValueModelWrapper;
-import org.eclipse.jpt.utility.internal.swing.SimpleListCellRenderer;
-import org.eclipse.jpt.utility.model.value.ListValueModel;
-
-/**
- * 
- */
-public class ComboBoxModelAdapterUITest2 extends ComboBoxModelAdapterUITest {
-
-	public static void main(String[] args) throws Exception {
-		new ComboBoxModelAdapterUITest2().exec(args);
-	}
-
-	public ComboBoxModelAdapterUITest2() {
-		super();
-	}
-
-	/**
-	 * use a different model that allows the color to be set to null
-	 */
-	@Override
-	protected TestModel buildTestModel() {
-		return new TestModel2();
-	}
-
-	/**
-	 * add a null to the front of the list
-	 */
-	@Override
-	protected ListValueModel<String> uiColorListHolder() {
-		// the default is to prepend the wrapped list with a null item
-		return new ExtendedListValueModelWrapper<String>(super.uiColorListHolder());
-	}
-
-	/**
-	 * convert null to some text
-	 */
-	@Override
-	protected ListCellRenderer buildComboBoxRenderer() {
-		return new SimpleListCellRenderer() {
-			@Override
-			protected String buildText(Object value) {
-				return (value == null) ? "<none selected>" : super.buildText(value);
-			}
-		};
-	}
-
-
-	protected static class TestModel2 extends TestModel {
-		/**
-		 * null is OK here
-		 */
-		@Override
-		public void checkColor(String color) {
-			if (color == null) {
-				return;
-			}
-			super.checkColor(color);
-		}
-	}
-
-}
diff --git a/jpa/tests/org.eclipse.jpt.utility.tests/src/org/eclipse/jpt/utility/tests/internal/model/value/swing/DateSpinnerModelAdapterTests.java b/jpa/tests/org.eclipse.jpt.utility.tests/src/org/eclipse/jpt/utility/tests/internal/model/value/swing/DateSpinnerModelAdapterTests.java
deleted file mode 100644
index cb255e7..0000000
--- a/jpa/tests/org.eclipse.jpt.utility.tests/src/org/eclipse/jpt/utility/tests/internal/model/value/swing/DateSpinnerModelAdapterTests.java
+++ /dev/null
@@ -1,159 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2008 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.utility.tests.internal.model.value.swing;
-
-import java.util.Date;
-import javax.swing.SpinnerModel;
-import javax.swing.event.ChangeEvent;
-import javax.swing.event.ChangeListener;
-import junit.framework.TestCase;
-import org.eclipse.jpt.utility.internal.model.value.SimplePropertyValueModel;
-import org.eclipse.jpt.utility.internal.model.value.swing.DateSpinnerModelAdapter;
-import org.eclipse.jpt.utility.model.listener.PropertyChangeListener;
-import org.eclipse.jpt.utility.model.value.PropertyValueModel;
-import org.eclipse.jpt.utility.model.value.WritablePropertyValueModel;
-import org.eclipse.jpt.utility.tests.internal.TestTools;
-
-public class DateSpinnerModelAdapterTests extends TestCase {
-	private WritablePropertyValueModel<Object> valueHolder;
-	private SpinnerModel spinnerModelAdapter;
-	boolean eventFired;
-
-	public DateSpinnerModelAdapterTests(String name) {
-		super(name);
-	}
-
-	@Override
-	protected void setUp() throws Exception {
-		super.setUp();
-		this.valueHolder = new SimplePropertyValueModel<Object>(new Date());
-		this.spinnerModelAdapter = new DateSpinnerModelAdapter(this.valueHolder) {
-			@Override
-			protected PropertyChangeListener buildDateChangeListener() {
-				return this.buildDateChangeListener_();
-			}
-		};
-	}
-
-	@Override
-	protected void tearDown() throws Exception {
-		TestTools.clear(this);
-		super.tearDown();
-	}
-
-	public void testSetValueSpinnerModel() throws Exception {
-		this.eventFired = false;
-		this.spinnerModelAdapter.addChangeListener(new TestChangeListener() {
-			@Override
-			public void stateChanged(ChangeEvent e) {
-				DateSpinnerModelAdapterTests.this.eventFired = true;
-			}
-		});
-		Date newDate = new Date();
-		newDate.setTime(777777);
-		this.spinnerModelAdapter.setValue(newDate);
-		assertTrue(this.eventFired);
-		assertEquals(777777, ((Date) this.valueHolder.getValue()).getTime());
-	}
-
-	public void testSetValueValueHolder() throws Exception {
-		this.eventFired = false;
-		this.spinnerModelAdapter.addChangeListener(new TestChangeListener() {
-			@Override
-			public void stateChanged(ChangeEvent e) {
-				DateSpinnerModelAdapterTests.this.eventFired = true;
-			}
-		});
-		Date newDate = new Date();
-		newDate.setTime(777777);
-		this.valueHolder.setValue(newDate);
-		assertTrue(this.eventFired);
-		assertEquals(777777, ((Date) this.spinnerModelAdapter.getValue()).getTime());
-	}
-
-	public void testDefaultValue() throws Exception {
-		Date newDate = new Date();
-		newDate.setTime(777777);
-		this.valueHolder.setValue(newDate);
-		this.eventFired = false;
-		this.spinnerModelAdapter.addChangeListener(new TestChangeListener() {
-			@Override
-			public void stateChanged(ChangeEvent e) {
-				DateSpinnerModelAdapterTests.this.eventFired = true;
-			}
-		});
-		assertEquals(777777, ((Date) this.spinnerModelAdapter.getValue()).getTime());
-		this.valueHolder.setValue(null);
-		assertTrue(this.eventFired);
-		assertFalse(((Date) this.spinnerModelAdapter.getValue()).getTime() == 777777);
-	}
-
-	public void testHasListeners() throws Exception {
-		SimplePropertyValueModel<Object> localValueHolder = (SimplePropertyValueModel<Object>) this.valueHolder;
-		assertFalse(localValueHolder.hasAnyPropertyChangeListeners(PropertyValueModel.VALUE));
-		this.verifyHasNoListeners(this.spinnerModelAdapter);
-
-		ChangeListener listener = new TestChangeListener();
-		this.spinnerModelAdapter.addChangeListener(listener);
-		assertTrue(localValueHolder.hasAnyPropertyChangeListeners(PropertyValueModel.VALUE));
-		this.verifyHasListeners(this.spinnerModelAdapter);
-
-		this.spinnerModelAdapter.removeChangeListener(listener);
-		assertFalse(localValueHolder.hasAnyPropertyChangeListeners(PropertyValueModel.VALUE));
-		this.verifyHasNoListeners(this.spinnerModelAdapter);
-	}
-
-	private void verifyHasNoListeners(SpinnerModel adapter) throws Exception {
-		assertEquals(0, ((DateSpinnerModelAdapter) adapter).getChangeListeners().length);
-	}
-
-	private void verifyHasListeners(Object adapter) throws Exception {
-		assertFalse(((DateSpinnerModelAdapter) adapter).getChangeListeners().length == 0);
-	}
-
-	public void testNullInitialValue() {
-		Date today = new Date();
-		this.valueHolder = new SimplePropertyValueModel<Object>();
-		this.spinnerModelAdapter = new DateSpinnerModelAdapter(this.valueHolder, today) {
-			@Override
-			protected PropertyChangeListener buildDateChangeListener() {
-				return this.buildDateChangeListener_();
-			}
-		};
-
-		this.eventFired = false;
-		this.spinnerModelAdapter.addChangeListener(new TestChangeListener() {
-			@Override
-			public void stateChanged(ChangeEvent e) {
-				DateSpinnerModelAdapterTests.this.eventFired = true;
-			}
-		});
-		assertEquals(today, this.spinnerModelAdapter.getValue());
-
-		Date newDate = new Date();
-		newDate.setTime(777777);
-		this.valueHolder.setValue(newDate);
-
-		assertTrue(this.eventFired);
-		assertEquals(777777, ((Date) this.spinnerModelAdapter.getValue()).getTime());
-	}
-
-
-	// ********** inner class **********
-	private class TestChangeListener implements ChangeListener {
-		TestChangeListener() {
-			super();
-		}
-		public void stateChanged(ChangeEvent e) {
-			fail("unexpected event");
-		}
-	}
-
-}
diff --git a/jpa/tests/org.eclipse.jpt.utility.tests/src/org/eclipse/jpt/utility/tests/internal/model/value/swing/DocumentAdapterTests.java b/jpa/tests/org.eclipse.jpt.utility.tests/src/org/eclipse/jpt/utility/tests/internal/model/value/swing/DocumentAdapterTests.java
deleted file mode 100644
index d647360..0000000
--- a/jpa/tests/org.eclipse.jpt.utility.tests/src/org/eclipse/jpt/utility/tests/internal/model/value/swing/DocumentAdapterTests.java
+++ /dev/null
@@ -1,158 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2008 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.utility.tests.internal.model.value.swing;
-
-import javax.swing.event.DocumentEvent;
-import javax.swing.event.DocumentListener;
-import javax.swing.event.DocumentEvent.EventType;
-import javax.swing.text.Document;
-import junit.framework.TestCase;
-import org.eclipse.jpt.utility.internal.ClassTools;
-import org.eclipse.jpt.utility.internal.model.value.SimplePropertyValueModel;
-import org.eclipse.jpt.utility.internal.model.value.swing.DocumentAdapter;
-import org.eclipse.jpt.utility.model.listener.PropertyChangeListener;
-import org.eclipse.jpt.utility.model.value.PropertyValueModel;
-import org.eclipse.jpt.utility.model.value.WritablePropertyValueModel;
-import org.eclipse.jpt.utility.tests.internal.TestTools;
-
-public class DocumentAdapterTests extends TestCase {
-	private WritablePropertyValueModel<String> stringHolder;
-	Document documentAdapter;
-	boolean eventFired;
-
-	public DocumentAdapterTests(String name) {
-		super(name);
-	}
-
-	@Override
-	protected void setUp() throws Exception {
-		super.setUp();
-		this.stringHolder = new SimplePropertyValueModel<String>("0123456789");
-		this.documentAdapter = new DocumentAdapter(this.stringHolder) {
-			@Override
-			protected PropertyChangeListener buildStringListener() {
-				return this.buildStringListener_();
-			}
-		};
-	}
-
-	@Override
-	protected void tearDown() throws Exception {
-		TestTools.clear(this);
-		super.tearDown();
-	}
-
-	public void testRemove() throws Exception {
-		this.eventFired = false;
-		this.documentAdapter.addDocumentListener(new TestDocumentListener() {
-			@Override
-			public void removeUpdate(DocumentEvent e) {
-				DocumentAdapterTests.this.eventFired = true;
-				assertEquals(EventType.REMOVE, e.getType());
-				assertEquals(DocumentAdapterTests.this.documentAdapter, e.getDocument());
-				// this will be the removal of "23456"
-				assertEquals(2, e.getOffset());
-				assertEquals(5, e.getLength());
-			}
-		});
-		this.documentAdapter.remove(2, 5);
-		assertTrue(this.eventFired);
-		assertEquals("01789", this.stringHolder.getValue());
-	}
-
-	public void testInsert() throws Exception {
-		this.eventFired = false;
-		this.documentAdapter.addDocumentListener(new TestDocumentListener() {
-			@Override
-			public void insertUpdate(DocumentEvent e) {
-				DocumentAdapterTests.this.eventFired = true;
-				assertEquals(EventType.INSERT, e.getType());
-				assertEquals(DocumentAdapterTests.this.documentAdapter, e.getDocument());
-				// this will be the insert of "xxxxxx"
-				assertEquals(2, e.getOffset());
-				assertEquals(5, e.getLength());
-			}
-		});
-		this.documentAdapter.insertString(2, "xxxxx", null);
-		assertTrue(this.eventFired);
-		assertEquals("01xxxxx23456789", this.stringHolder.getValue());
-	}
-
-	public void testSetValue() throws Exception {
-		this.eventFired = false;
-		this.documentAdapter.addDocumentListener(new TestDocumentListener() {
-			@Override
-			public void insertUpdate(DocumentEvent e) {
-				DocumentAdapterTests.this.eventFired = true;
-				assertEquals(EventType.INSERT, e.getType());
-				assertEquals(DocumentAdapterTests.this.documentAdapter, e.getDocument());
-				// this will be the insert of "foo"
-				assertEquals(0, e.getOffset());
-				assertEquals(3, e.getLength());
-			}
-			@Override
-			public void removeUpdate(DocumentEvent e) {
-				assertEquals(EventType.REMOVE, e.getType());
-				assertEquals(DocumentAdapterTests.this.documentAdapter, e.getDocument());
-				// this will be the removal of "0123456789"
-				assertEquals(0, e.getOffset());
-				assertEquals(10, e.getLength());
-			}
-		});
-		assertEquals("0123456789", this.documentAdapter.getText(0, this.documentAdapter.getLength()));
-		this.stringHolder.setValue("foo");
-		assertTrue(this.eventFired);
-		assertEquals("foo", this.documentAdapter.getText(0, this.documentAdapter.getLength()));
-	}
-
-	public void testHasListeners() throws Exception {
-		SimplePropertyValueModel<String> localStringHolder = (SimplePropertyValueModel<String>) this.stringHolder;
-		assertFalse(localStringHolder.hasAnyPropertyChangeListeners(PropertyValueModel.VALUE));
-		this.verifyHasNoListeners(this.documentAdapter);
-
-		DocumentListener listener = new TestDocumentListener();
-		this.documentAdapter.addDocumentListener(listener);
-		assertTrue(localStringHolder.hasAnyPropertyChangeListeners(PropertyValueModel.VALUE));
-		this.verifyHasListeners(this.documentAdapter);
-
-		this.documentAdapter.removeDocumentListener(listener);
-		assertFalse(localStringHolder.hasAnyPropertyChangeListeners(PropertyValueModel.VALUE));
-		this.verifyHasNoListeners(this.documentAdapter);
-	}
-
-	private void verifyHasNoListeners(Object document) throws Exception {
-		Object delegate = ClassTools.fieldValue(document, "delegate");
-		Object[] listeners = (Object[]) ClassTools.executeMethod(delegate, "getDocumentListeners");
-		assertEquals(0, listeners.length);
-	}
-
-	private void verifyHasListeners(Object document) throws Exception {
-		Object delegate = ClassTools.fieldValue(document, "delegate");
-		Object[] listeners = (Object[]) ClassTools.executeMethod(delegate, "getDocumentListeners");
-		assertFalse(listeners.length == 0);
-	}
-
-
-private class TestDocumentListener implements DocumentListener {
-	TestDocumentListener() {
-		super();
-	}
-	public void changedUpdate(DocumentEvent e) {
-		fail("unexpected event");
-	}
-	public void insertUpdate(DocumentEvent e) {
-		fail("unexpected event");
-	}
-	public void removeUpdate(DocumentEvent e) {
-		fail("unexpected event");
-	}
-}
-
-}
diff --git a/jpa/tests/org.eclipse.jpt.utility.tests/src/org/eclipse/jpt/utility/tests/internal/model/value/swing/DocumentAdapterUITest.java b/jpa/tests/org.eclipse.jpt.utility.tests/src/org/eclipse/jpt/utility/tests/internal/model/value/swing/DocumentAdapterUITest.java
deleted file mode 100644
index 39b4338..0000000
--- a/jpa/tests/org.eclipse.jpt.utility.tests/src/org/eclipse/jpt/utility/tests/internal/model/value/swing/DocumentAdapterUITest.java
+++ /dev/null
@@ -1,255 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2008 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.utility.tests.internal.model.value.swing;
-
-import java.awt.BorderLayout;
-import java.awt.Component;
-import java.awt.GridLayout;
-import java.awt.event.ActionEvent;
-import java.awt.event.WindowAdapter;
-import java.awt.event.WindowEvent;
-import java.awt.event.WindowListener;
-import javax.swing.AbstractAction;
-import javax.swing.Action;
-import javax.swing.JButton;
-import javax.swing.JFrame;
-import javax.swing.JPanel;
-import javax.swing.JTextField;
-import javax.swing.WindowConstants;
-import javax.swing.text.AbstractDocument;
-import javax.swing.text.AttributeSet;
-import javax.swing.text.BadLocationException;
-import javax.swing.text.Document;
-import javax.swing.text.PlainDocument;
-import org.eclipse.jpt.utility.internal.model.AbstractModel;
-import org.eclipse.jpt.utility.internal.model.value.PropertyAspectAdapter;
-import org.eclipse.jpt.utility.internal.model.value.SimplePropertyValueModel;
-import org.eclipse.jpt.utility.internal.model.value.swing.DocumentAdapter;
-import org.eclipse.jpt.utility.model.value.PropertyValueModel;
-import org.eclipse.jpt.utility.model.value.WritablePropertyValueModel;
-
-/**
- * Play around with a set of entry fields.
- */
-public class DocumentAdapterUITest {
-
-	private TestModel testModel;
-		private static final String DEFAULT_NAME = "Scooby Doo";
-	private WritablePropertyValueModel<TestModel> testModelHolder;
-	private WritablePropertyValueModel<String> nameHolder;
-	private Document nameDocument;
-	private Document upperCaseNameDocument;
-
-	public static void main(String[] args) throws Exception {
-		new DocumentAdapterUITest().exec(args);
-	}
-
-	private DocumentAdapterUITest() {
-		super();
-	}
-
-	private void exec(String[] args) throws Exception {
-		this.testModel = new TestModel(DEFAULT_NAME);
-		this.testModelHolder = new SimplePropertyValueModel<TestModel>(this.testModel);
-		this.nameHolder = this.buildNameHolder(this.testModelHolder);
-		this.nameDocument = this.buildNameDocument(this.nameHolder);
-		this.upperCaseNameDocument = this.buildUpperCaseNameDocument(this.nameHolder);
-		this.openWindow();
-	}
-
-	private WritablePropertyValueModel<String> buildNameHolder(PropertyValueModel<TestModel> vm) {
-		return new PropertyAspectAdapter<TestModel, String>(vm, TestModel.NAME_PROPERTY) {
-			@Override
-			protected String buildValue_() {
-				return this.subject.getName();
-			}
-			@Override
-			protected void setValue_(String value) {
-				this.subject.setName(value);
-			}
-		};
-	}
-
-	private Document buildNameDocument(WritablePropertyValueModel<String> stringHolder) {
-		return new DocumentAdapter(stringHolder);
-	}
-
-	private Document buildUpperCaseNameDocument(WritablePropertyValueModel<String> stringHolder) {
-		return new DocumentAdapter(stringHolder, this.buildUpperCaseNameDocumentDelegate());
-	}
-
-	private AbstractDocument buildUpperCaseNameDocumentDelegate() {
-		return new PlainDocument() {
-			@Override
-			public void insertString(int offset, String string, AttributeSet a) throws BadLocationException {
-				if (string == null) {
-					return;
-				}
-				char[] upper = string.toCharArray();
-				for (int i = 0; i < upper.length; i++) {
-					upper[i] = Character.toUpperCase(upper[i]);
-				}
-				super.insertString(offset, new String(upper), a);
-			}
-		};
-	}
-
-	private void openWindow() {
-		JFrame window = new JFrame(this.getClass().getName());
-		window.setDefaultCloseOperation(WindowConstants.DO_NOTHING_ON_CLOSE);
-		window.addWindowListener(this.buildWindowListener());
-		window.getContentPane().add(this.buildMainPanel(), "Center");
-		window.setSize(400, 100);
-		window.setVisible(true);
-	}
-
-	private WindowListener buildWindowListener() {
-		return new WindowAdapter() {
-			@Override
-			public void windowClosing(WindowEvent e) {
-				e.getWindow().setVisible(false);
-				System.exit(0);
-			}
-		};
-	}
-
-	private Component buildMainPanel() {
-		JPanel mainPanel = new JPanel(new BorderLayout());
-		mainPanel.add(this.buildTextFieldPanel(), BorderLayout.NORTH);
-		mainPanel.add(this.buildControlPanel(), BorderLayout.SOUTH);
-		return mainPanel;
-	}
-
-	private Component buildTextFieldPanel() {
-		JPanel taskListPanel = new JPanel(new GridLayout(1, 0));
-		taskListPanel.add(this.buildNameTextField());
-		taskListPanel.add(this.buildReadOnlyNameTextField());
-		taskListPanel.add(this.buildUpperCaseNameTextField());
-		return taskListPanel;
-	}
-
-	private JTextField buildNameTextField() {
-		return new JTextField(this.nameDocument, null, 0);
-	}
-
-	private JTextField buildReadOnlyNameTextField() {
-		JTextField nameTextField = this.buildNameTextField();
-		nameTextField.setEditable(false);
-		return nameTextField;
-	}
-
-	private JTextField buildUpperCaseNameTextField() {
-		return new JTextField(this.upperCaseNameDocument, null, 0);
-	}
-
-	private Component buildControlPanel() {
-		JPanel controlPanel = new JPanel(new GridLayout(1, 0));
-		controlPanel.add(this.buildResetNameButton());
-		controlPanel.add(this.buildClearModelButton());
-		controlPanel.add(this.buildRestoreModelButton());
-		controlPanel.add(this.buildPrintModelButton());
-		return controlPanel;
-	}
-
-	private JButton buildResetNameButton() {
-		return new JButton(this.buildResetNameAction());
-	}
-
-	private Action buildResetNameAction() {
-		Action action = new AbstractAction("reset name") {
-			public void actionPerformed(ActionEvent event) {
-				DocumentAdapterUITest.this.resetName();
-			}
-		};
-		action.setEnabled(true);
-		return action;
-	}
-
-	void resetName() {
-		this.testModel.setName(DEFAULT_NAME);
-	}
-
-	private JButton buildClearModelButton() {
-		return new JButton(this.buildClearModelAction());
-	}
-
-	private Action buildClearModelAction() {
-		Action action = new AbstractAction("clear model") {
-			public void actionPerformed(ActionEvent event) {
-				DocumentAdapterUITest.this.clearModel();
-			}
-		};
-		action.setEnabled(true);
-		return action;
-	}
-
-	void clearModel() {
-		this.testModelHolder.setValue(null);
-	}
-
-	private JButton buildRestoreModelButton() {
-		return new JButton(this.buildRestoreModelAction());
-	}
-
-	private Action buildRestoreModelAction() {
-		Action action = new AbstractAction("restore model") {
-			public void actionPerformed(ActionEvent event) {
-				DocumentAdapterUITest.this.restoreModel();
-			}
-		};
-		action.setEnabled(true);
-		return action;
-	}
-
-	void restoreModel() {
-		this.testModelHolder.setValue(this.testModel);
-	}
-
-	private JButton buildPrintModelButton() {
-		return new JButton(this.buildPrintModelAction());
-	}
-
-	private Action buildPrintModelAction() {
-		Action action = new AbstractAction("print model") {
-			public void actionPerformed(ActionEvent event) {
-				DocumentAdapterUITest.this.printModel();
-			}
-		};
-		action.setEnabled(true);
-		return action;
-	}
-
-	void printModel() {
-		System.out.println("name: " + this.testModel.getName());
-	}
-
-
-	private class TestModel extends AbstractModel {
-		private String name;
-			public static final String NAME_PROPERTY = "name";
-	
-		public TestModel(String name) {
-			this.name = name;
-		}
-		public String getName() {
-			return this.name;
-		}
-		public void setName(String name) {
-			Object old = this.name;
-			this.name = name;
-			this.firePropertyChanged(NAME_PROPERTY, old, name);
-		}
-		@Override
-		public String toString() {
-			return "TestModel(" + this.getName() + ")";
-		}
-	}
-
-}
diff --git a/jpa/tests/org.eclipse.jpt.utility.tests/src/org/eclipse/jpt/utility/tests/internal/model/value/swing/JptUtilityModelValueSwingTests.java b/jpa/tests/org.eclipse.jpt.utility.tests/src/org/eclipse/jpt/utility/tests/internal/model/value/swing/JptUtilityModelValueSwingTests.java
deleted file mode 100644
index b531bd3..0000000
--- a/jpa/tests/org.eclipse.jpt.utility.tests/src/org/eclipse/jpt/utility/tests/internal/model/value/swing/JptUtilityModelValueSwingTests.java
+++ /dev/null
@@ -1,42 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.utility.tests.internal.model.value.swing;
-
-import junit.framework.Test;
-import junit.framework.TestSuite;
-
-public class JptUtilityModelValueSwingTests {
-	
-	public static Test suite() {
-		TestSuite suite = new TestSuite(JptUtilityModelValueSwingTests.class.getPackage().getName());
-
-		suite.addTestSuite(CheckBoxModelAdapterTests.class);
-		suite.addTestSuite(ComboBoxModelAdapterTests.class);
-		suite.addTestSuite(DateSpinnerModelAdapterTests.class);
-		suite.addTestSuite(DocumentAdapterTests.class);
-		suite.addTestSuite(ListModelAdapterTests.class);
-		suite.addTestSuite(ListSpinnerModelAdapterTests.class);
-		suite.addTestSuite(NumberSpinnerModelAdapterTests.class);
-		suite.addTestSuite(ObjectListSelectionModelTests.class);
-		suite.addTestSuite(PrimitiveListTreeModelTests.class);
-		suite.addTestSuite(RadioButtonModelAdapterTests.class);
-		suite.addTestSuite(SpinnerModelAdapterTests.class);
-		suite.addTestSuite(TableModelAdapterTests.class);
-		suite.addTestSuite(TreeModelAdapterTests.class);
-	
-		return suite;
-	}
-	
-	private JptUtilityModelValueSwingTests() {
-		super();
-		throw new UnsupportedOperationException();
-	}
-	
-}
diff --git a/jpa/tests/org.eclipse.jpt.utility.tests/src/org/eclipse/jpt/utility/tests/internal/model/value/swing/ListModelAdapterTests.java b/jpa/tests/org.eclipse.jpt.utility.tests/src/org/eclipse/jpt/utility/tests/internal/model/value/swing/ListModelAdapterTests.java
deleted file mode 100644
index 4cb2e04..0000000
--- a/jpa/tests/org.eclipse.jpt.utility.tests/src/org/eclipse/jpt/utility/tests/internal/model/value/swing/ListModelAdapterTests.java
+++ /dev/null
@@ -1,315 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2008 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.utility.tests.internal.model.value.swing;
-
-import java.util.ArrayList;
-import java.util.Collection;
-import java.util.Comparator;
-import java.util.Iterator;
-import java.util.List;
-import java.util.SortedSet;
-import java.util.TreeSet;
-import javax.swing.ListModel;
-import junit.framework.TestCase;
-import org.eclipse.jpt.utility.internal.Bag;
-import org.eclipse.jpt.utility.internal.ClassTools;
-import org.eclipse.jpt.utility.internal.HashBag;
-import org.eclipse.jpt.utility.internal.model.value.SimpleCollectionValueModel;
-import org.eclipse.jpt.utility.internal.model.value.SimpleListValueModel;
-import org.eclipse.jpt.utility.internal.model.value.SortedListValueModelAdapter;
-import org.eclipse.jpt.utility.internal.model.value.swing.ListModelAdapter;
-import org.eclipse.jpt.utility.model.listener.ListChangeListener;
-import org.eclipse.jpt.utility.model.value.CollectionValueModel;
-import org.eclipse.jpt.utility.model.value.ListValueModel;
-import org.eclipse.jpt.utility.tests.internal.model.value.CoordinatedList;
-
-public class ListModelAdapterTests extends TestCase {
-
-	public ListModelAdapterTests(String name) {
-		super(name);
-	}
-
-	@Override
-	protected void setUp() throws Exception {
-		super.setUp();
-		// nothing yet...
-	}
-
-	@Override
-	protected void tearDown() throws Exception {
-		// nothing yet...
-		super.tearDown();
-	}
-
-	private ListModelAdapter buildListModel(ListValueModel<String> listHolder) {
-		return new ListModelAdapter(listHolder) {
-			@Override
-			protected ListChangeListener buildListChangeListener() {
-				return this.buildListChangeListener_();
-			}
-		};
-	}
-
-	private ListModel buildListModel(CollectionValueModel<String> collectionHolder) {
-		return new ListModelAdapter(collectionHolder) {
-			@Override
-			protected ListChangeListener buildListChangeListener() {
-				return this.buildListChangeListener_();
-			}
-		};
-	}
-
-	public void testCollectionSynchronization() {
-		SimpleCollectionValueModel<String> collectionHolder = this.buildCollectionHolder();
-		ListModel listModel = this.buildListModel(collectionHolder);
-		CoordinatedList<String> synchList = new CoordinatedList<String>(listModel);
-		assertEquals(6, synchList.size());
-		this.compare(listModel, synchList);
-
-		collectionHolder.add("tom");
-		collectionHolder.add("dick");
-		collectionHolder.add("harry");
-		collectionHolder.add(null);
-		assertEquals(10, synchList.size());
-		this.compare(listModel, synchList);
-
-		collectionHolder.remove("foo");
-		collectionHolder.remove("jar");
-		collectionHolder.remove("harry");
-		collectionHolder.remove(null);
-		assertEquals(6, synchList.size());
-		this.compare(listModel, synchList);
-	}
-
-	public void testListSynchronization() {
-		SimpleListValueModel<String> listHolder = this.buildListHolder();
-		ListModel listModel = this.buildListModel(listHolder);
-		CoordinatedList<String> synchList = new CoordinatedList<String>(listModel);
-		assertEquals(6, synchList.size());
-		this.compare(listModel, synchList);
-
-		listHolder.add(6, "tom");
-		listHolder.add(7, "dick");
-		listHolder.add(8, "harry");
-		listHolder.add(9, null);
-		assertEquals(10, synchList.size());
-		this.compare(listModel, synchList);
-
-		listHolder.remove(9);
-		listHolder.remove(8);
-		listHolder.remove(4);
-		listHolder.remove(0);
-		assertEquals(6, synchList.size());
-		this.compare(listModel, synchList);
-	}
-
-	public void testSetModel() {
-		SimpleListValueModel<String> listHolder1 = this.buildListHolder();
-		ListModelAdapter listModel = this.buildListModel(listHolder1);
-		CoordinatedList<String> synchList = new CoordinatedList<String>(listModel);
-		assertTrue(listHolder1.hasAnyListChangeListeners(ListValueModel.LIST_VALUES));
-		assertEquals(6, synchList.size());
-		this.compare(listModel, synchList);
-
-		SimpleListValueModel<String> listHolder2 = this.buildListHolder2();
-		listModel.setModel(listHolder2);
-		assertEquals(3, synchList.size());
-		this.compare(listModel, synchList);
-		assertTrue(listHolder1.hasNoListChangeListeners(ListValueModel.LIST_VALUES));
-		assertTrue(listHolder2.hasAnyListChangeListeners(ListValueModel.LIST_VALUES));
-
-		listModel.setModel(new SimpleListValueModel<String>());
-		assertEquals(0, synchList.size());
-		this.compare(listModel, synchList);
-		assertTrue(listHolder1.hasNoListChangeListeners(ListValueModel.LIST_VALUES));
-		assertTrue(listHolder2.hasNoListChangeListeners(ListValueModel.LIST_VALUES));
-	}
-
-	private void compare(ListModel listModel, List<String> list) {
-		assertEquals(listModel.getSize(), list.size());
-		for (int i = 0; i < listModel.getSize(); i++) {
-			assertEquals(listModel.getElementAt(i), list.get(i));
-		}
-	}
-
-	public void testCollectionSort() {
-		this.verifyCollectionSort(null);
-	}
-
-	public void testListSort() {
-		this.verifyListSort(null);
-	}
-
-	public void testCustomCollectionSort() {
-		this.verifyCollectionSort(this.buildCustomComparator());
-	}
-
-	public void testCustomListSort() {
-		this.verifyListSort(this.buildCustomComparator());
-	}
-
-	private Comparator<String> buildCustomComparator() {
-		// sort with reverse order
-		return new Comparator<String>() {
-			public int compare(String s1, String s2) {
-				return s2.compareTo(s1);
-			}
-		};
-	}
-
-	private void verifyCollectionSort(Comparator<String> comparator) {
-		SimpleCollectionValueModel<String> collectionHolder = this.buildCollectionHolder();
-		ListModel listModel = this.buildListModel(new SortedListValueModelAdapter<String>(collectionHolder, comparator));
-		CoordinatedList<String> synchList = new CoordinatedList<String>(listModel);
-		assertEquals(6, synchList.size());
-		this.compareSort(listModel, synchList, comparator);
-
-		collectionHolder.add("tom");
-		collectionHolder.add("dick");
-		collectionHolder.add("harry");
-		assertEquals(9, synchList.size());
-		this.compareSort(listModel, synchList, comparator);
-
-		collectionHolder.remove("foo");
-		collectionHolder.remove("jar");
-		collectionHolder.remove("harry");
-		assertEquals(6, synchList.size());
-		this.compareSort(listModel, synchList, comparator);
-	}
-
-	private void verifyListSort(Comparator<String> comparator) {
-		SimpleListValueModel<String> listHolder = this.buildListHolder();
-		ListModel listModel = this.buildListModel(new SortedListValueModelAdapter<String>(listHolder, comparator));
-		CoordinatedList<String> synchList = new CoordinatedList<String>(listModel);
-		assertEquals(6, synchList.size());
-		this.compareSort(listModel, synchList, comparator);
-
-		listHolder.add(0, "tom");
-		listHolder.add(0, "dick");
-		listHolder.add(0, "harry");
-		assertEquals(9, synchList.size());
-		this.compareSort(listModel, synchList, comparator);
-
-		listHolder.remove(8);
-		listHolder.remove(4);
-		listHolder.remove(0);
-		listHolder.remove(5);
-		assertEquals(5, synchList.size());
-		this.compareSort(listModel, synchList, comparator);
-	}
-
-	private void compareSort(ListModel listModel, List<String> list, Comparator<String> comparator) {
-		SortedSet<String> ss = new TreeSet<String>(comparator);
-		for (int i = 0; i < listModel.getSize(); i++) {
-			ss.add((String) listModel.getElementAt(i));
-		}
-		assertEquals(ss.size(), list.size());
-		for (Iterator<String> stream1 = ss.iterator(), stream2 = list.iterator(); stream1.hasNext(); ) {
-			assertEquals(stream1.next(), stream2.next());
-		}
-	}
-
-	public void testHasListeners() throws Exception {
-		SimpleListValueModel<String> listHolder = this.buildListHolder();
-		assertFalse(listHolder.hasAnyListChangeListeners(ListValueModel.LIST_VALUES));
-
-		ListModel listModel = this.buildListModel(listHolder);
-		assertFalse(listHolder.hasAnyListChangeListeners(ListValueModel.LIST_VALUES));
-		this.verifyHasNoListeners(listModel);
-
-		CoordinatedList<String> synchList = new CoordinatedList<String>(listModel);
-		assertTrue(listHolder.hasAnyListChangeListeners(ListValueModel.LIST_VALUES));
-		this.verifyHasListeners(listModel);
-
-		listModel.removeListDataListener(synchList);
-		assertFalse(listHolder.hasAnyListChangeListeners(ListValueModel.LIST_VALUES));
-		this.verifyHasNoListeners(listModel);
-	}
-
-	public void testGetSize() throws Exception {
-		SimpleListValueModel<String> listHolder = this.buildListHolder();
-		ListModel listModel = this.buildListModel(listHolder);
-		this.verifyHasNoListeners(listModel);
-		assertEquals(6, listModel.getSize());
-
-		CoordinatedList<String> synchList = new CoordinatedList<String>(listModel);
-		this.verifyHasListeners(listModel);
-		assertEquals(6, listModel.getSize());
-
-		listModel.removeListDataListener(synchList);
-		this.verifyHasNoListeners(listModel);
-		assertEquals(6, listModel.getSize());
-	}
-
-	public void testGetElementAt() throws Exception {
-		SimpleListValueModel<String> listHolder = this.buildListHolder();
-		ListModel listModel = this.buildListModel(new SortedListValueModelAdapter<String>(listHolder));
-		CoordinatedList<String> synchList = new CoordinatedList<String>(listModel);
-		this.verifyHasListeners(listModel);
-		assertEquals("bar", listModel.getElementAt(0));
-		assertEquals("bar", synchList.get(0));
-	}
-
-	private void verifyHasNoListeners(ListModel listModel) throws Exception {
-		boolean hasNoListeners = ((Boolean) ClassTools.executeMethod(listModel, "hasNoListDataListeners")).booleanValue();
-		assertTrue(hasNoListeners);
-	}
-
-	private void verifyHasListeners(ListModel listModel) throws Exception {
-		boolean hasListeners = ((Boolean) ClassTools.executeMethod(listModel, "hasListDataListeners")).booleanValue();
-		assertTrue(hasListeners);
-	}
-
-	private SimpleCollectionValueModel<String> buildCollectionHolder() {
-		return new SimpleCollectionValueModel<String>(this.buildCollection());
-	}
-
-	private Collection<String> buildCollection() {
-		Bag<String> bag = new HashBag<String>();
-		this.populateCollection(bag);
-		return bag;
-	}
-
-	private SimpleListValueModel<String> buildListHolder() {
-		return new SimpleListValueModel<String>(this.buildList());
-	}
-
-	private List<String> buildList() {
-		List<String> list = new ArrayList<String>();
-		this.populateCollection(list);
-		return list;
-	}
-
-	private void populateCollection(Collection<String> c) {
-		c.add("foo");
-		c.add("bar");
-		c.add("baz");
-		c.add("joo");
-		c.add("jar");
-		c.add("jaz");
-	}
-
-	private SimpleListValueModel<String> buildListHolder2() {
-		return new SimpleListValueModel<String>(this.buildList2());
-	}
-
-	private List<String> buildList2() {
-		List<String> list = new ArrayList<String>();
-		this.populateCollection2(list);
-		return list;
-	}
-
-	private void populateCollection2(Collection<String> c) {
-		c.add("tom");
-		c.add("dick");
-		c.add("harry");
-	}
-
-}
diff --git a/jpa/tests/org.eclipse.jpt.utility.tests/src/org/eclipse/jpt/utility/tests/internal/model/value/swing/ListModelAdapterUITest.java b/jpa/tests/org.eclipse.jpt.utility.tests/src/org/eclipse/jpt/utility/tests/internal/model/value/swing/ListModelAdapterUITest.java
deleted file mode 100644
index 8fc963b..0000000
--- a/jpa/tests/org.eclipse.jpt.utility.tests/src/org/eclipse/jpt/utility/tests/internal/model/value/swing/ListModelAdapterUITest.java
+++ /dev/null
@@ -1,370 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2008 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.utility.tests.internal.model.value.swing;
-
-import java.awt.BorderLayout;
-import java.awt.Component;
-import java.awt.GridLayout;
-import java.awt.TextField;
-import java.awt.event.ActionEvent;
-import java.awt.event.WindowAdapter;
-import java.awt.event.WindowEvent;
-import java.awt.event.WindowListener;
-import java.util.ArrayList;
-import java.util.Comparator;
-import java.util.Date;
-import java.util.List;
-import java.util.ListIterator;
-import javax.swing.AbstractAction;
-import javax.swing.Action;
-import javax.swing.Icon;
-import javax.swing.JButton;
-import javax.swing.JFrame;
-import javax.swing.JLabel;
-import javax.swing.JList;
-import javax.swing.JPanel;
-import javax.swing.JScrollPane;
-import javax.swing.ListModel;
-import javax.swing.WindowConstants;
-import org.eclipse.jpt.utility.internal.StringTools;
-import org.eclipse.jpt.utility.internal.model.AbstractModel;
-import org.eclipse.jpt.utility.internal.model.value.ListAspectAdapter;
-import org.eclipse.jpt.utility.internal.model.value.SimplePropertyValueModel;
-import org.eclipse.jpt.utility.internal.model.value.SortedListValueModelAdapter;
-import org.eclipse.jpt.utility.internal.model.value.swing.ListModelAdapter;
-import org.eclipse.jpt.utility.internal.swing.Displayable;
-import org.eclipse.jpt.utility.model.value.ListValueModel;
-import org.eclipse.jpt.utility.model.value.WritablePropertyValueModel;
-
-/**
- * an example UI for testing various permutations of the ListModelAdapter
- */
-public class ListModelAdapterUITest {
-
-	private WritablePropertyValueModel<TaskList> taskListHolder;
-	private TextField taskTextField;
-
-	public static void main(String[] args) throws Exception {
-		new ListModelAdapterUITest().exec(args);
-	}
-
-	private ListModelAdapterUITest() {
-		super();
-	}
-
-	private void exec(String[] args) throws Exception {
-		this.taskListHolder = new SimplePropertyValueModel<TaskList>(new TaskList());
-		this.openWindow();
-	}
-
-	private void openWindow() {
-		JFrame window = new JFrame(this.getClass().getName());
-		window.setDefaultCloseOperation(WindowConstants.DO_NOTHING_ON_CLOSE);
-		window.addWindowListener(this.buildWindowListener());
-		window.getContentPane().add(this.buildMainPanel(), "Center");
-		window.setSize(800, 400);
-		window.setVisible(true);
-	}
-
-	private WindowListener buildWindowListener() {
-		return new WindowAdapter() {
-			@Override
-			public void windowClosing(WindowEvent e) {
-				e.getWindow().setVisible(false);
-				System.exit(0);
-			}
-		};
-	}
-
-	private Component buildMainPanel() {
-		JPanel mainPanel = new JPanel(new BorderLayout());
-		mainPanel.add(this.buildTaskListPanel(), BorderLayout.CENTER);
-		mainPanel.add(this.buildControlPanel(), BorderLayout.SOUTH);
-		return mainPanel;
-	}
-
-	private Component buildTaskListPanel() {
-		JPanel taskListPanel = new JPanel(new GridLayout(0, 1));
-		taskListPanel.add(this.buildPrimitiveTaskListPanel());
-		taskListPanel.add(this.buildDisplayableTaskListPanel());
-		return taskListPanel;
-	}
-
-	private Component buildPrimitiveTaskListPanel() {
-		JPanel taskListPanel = new JPanel(new GridLayout(1, 0));
-		taskListPanel.add(this.buildUnsortedPrimitiveListPanel());
-		taskListPanel.add(this.buildStandardSortedPrimitiveListPanel());
-		taskListPanel.add(this.buildCustomSortedPrimitiveListPanel());
-		return taskListPanel;
-	}
-
-	private Component buildDisplayableTaskListPanel() {
-		JPanel taskListPanel = new JPanel(new GridLayout(1, 0));
-		taskListPanel.add(this.buildUnsortedDisplayableListPanel());
-		taskListPanel.add(this.buildStandardSortedDisplayableListPanel());
-		taskListPanel.add(this.buildCustomSortedDisplayableListPanel());
-		return taskListPanel;
-	}
-
-	private Component buildUnsortedPrimitiveListPanel() {
-		return this.buildListPanel("primitive unsorted", this.buildUnsortedPrimitiveListModel());
-	}
-
-	private Component buildStandardSortedPrimitiveListPanel() {
-		return this.buildListPanel("primitive sorted", this.buildStandardSortedPrimitiveListModel());
-	}
-
-	private Component buildCustomSortedPrimitiveListPanel() {
-		return this.buildListPanel("primitive reverse sorted", this.buildCustomSortedPrimitiveListModel());
-	}
-
-	private Component buildUnsortedDisplayableListPanel() {
-		return this.buildListPanel("displayable unsorted", this.buildUnsortedDisplayableListModel());
-	}
-
-	private Component buildStandardSortedDisplayableListPanel() {
-		return this.buildListPanel("displayable sorted", this.buildStandardSortedDisplayableListModel());
-	}
-
-	private Component buildCustomSortedDisplayableListPanel() {
-		return this.buildListPanel("displayable reverse sorted", this.buildCustomSortedDisplayableListModel());
-	}
-
-	private ListModel buildUnsortedPrimitiveListModel() {
-		return new ListModelAdapter(this.buildPrimitiveTaskListAdapter());
-	}
-
-	private ListModel buildStandardSortedPrimitiveListModel() {
-		return new ListModelAdapter(new SortedListValueModelAdapter<String>(this.buildPrimitiveTaskListAdapter()));
-	}
-
-	private ListModel buildCustomSortedPrimitiveListModel() {
-		return new ListModelAdapter(new SortedListValueModelAdapter<String>(this.buildPrimitiveTaskListAdapter(), this.buildCustomStringComparator()));
-	}
-
-	private ListModel buildUnsortedDisplayableListModel() {
-		return new ListModelAdapter(this.buildDisplayableTaskListAdapter());
-	}
-
-	private ListModel buildStandardSortedDisplayableListModel() {
-		return new ListModelAdapter(new SortedListValueModelAdapter<Task>(this.buildDisplayableTaskListAdapter()));
-	}
-
-	private ListModel buildCustomSortedDisplayableListModel() {
-		return new ListModelAdapter(new SortedListValueModelAdapter<Task>(this.buildDisplayableTaskListAdapter(), this.buildCustomTaskObjectComparator()));
-	}
-
-	private Component buildListPanel(String label, ListModel listModel) {
-		JPanel listPanel = new JPanel(new BorderLayout());
-		JLabel listLabel = new JLabel("  " + label);
-		listPanel.add(listLabel, BorderLayout.NORTH);
-
-		JList listBox = new JList();
-		listBox.setModel(listModel);
-		listBox.setDoubleBuffered(true);
-		listLabel.setLabelFor(listBox);
-		listPanel.add(new JScrollPane(listBox), BorderLayout.CENTER);
-		return listPanel;
-	}
-
-	private Comparator<String> buildCustomStringComparator() {
-		return new Comparator<String>() {
-			public int compare(String s1, String s2) {
-				return s2.compareTo(s1);
-			}
-		};
-	}
-
-	private Comparator<Task> buildCustomTaskObjectComparator() {
-		return new Comparator<Task>() {
-			public int compare(Task to1, Task to2) {
-				return to2.compareTo(to1);
-			}
-		};
-	}
-
-	private ListValueModel<String> buildPrimitiveTaskListAdapter() {
-		return new ListAspectAdapter<TaskList, String>(TaskList.TASK_NAMES_LIST, this.taskList()) {
-			@Override
-			protected ListIterator<String> listIterator_() {
-				return this.subject.taskNames();
-			}
-		};
-	}
-
-	private ListValueModel<Task> buildDisplayableTaskListAdapter() {
-		return new ListAspectAdapter<TaskList, Task>(TaskList.TASKS_LIST, this.taskList()) {
-			@Override
-			protected ListIterator<Task> listIterator_() {
-				return this.subject.tasks();
-			}
-		};
-	}
-
-	private Component buildControlPanel() {
-		JPanel controlPanel = new JPanel(new BorderLayout());
-		controlPanel.add(this.buildAddRemoveTaskPanel(), BorderLayout.CENTER);
-		controlPanel.add(this.buildClearButton(), BorderLayout.EAST);
-		return controlPanel;
-	}
-
-	private Component buildAddRemoveTaskPanel() {
-		JPanel addRemoveTaskPanel = new JPanel(new BorderLayout());
-		addRemoveTaskPanel.add(this.buildAddButton(), BorderLayout.WEST);
-		addRemoveTaskPanel.add(this.buildTaskTextField(), BorderLayout.CENTER);
-		addRemoveTaskPanel.add(this.buildRemoveButton(), BorderLayout.EAST);
-		return addRemoveTaskPanel;
-	}
-
-	private String getTask() {
-		return this.taskTextField.getText();
-	}
-
-	private TaskList taskList() {
-		return this.taskListHolder.getValue();
-	}
-
-	void addTask() {
-		String task = this.getTask();
-		if (task.length() != 0) {
-			this.taskList().addTask(task);
-		}
-	}
-
-	void removeTask() {
-		String task = this.getTask();
-		if (task.length() != 0) {
-			this.taskList().removeTask(task);
-		}
-	}
-
-	void clearTasks() {
-		this.taskList().clearTasks();
-	}
-
-	private TextField buildTaskTextField() {
-		this.taskTextField = new TextField();
-		return this.taskTextField;
-	}
-
-	private JButton buildAddButton() {
-		return new JButton(this.buildAddAction());
-	}
-
-	private Action buildAddAction() {
-		Action action = new AbstractAction("add") {
-			public void actionPerformed(ActionEvent event) {
-				ListModelAdapterUITest.this.addTask();
-			}
-		};
-		action.setEnabled(true);
-		return action;
-	}
-
-	private JButton buildRemoveButton() {
-		return new JButton(this.buildRemoveAction());
-	}
-
-	private Action buildRemoveAction() {
-		Action action = new AbstractAction("remove") {
-			public void actionPerformed(ActionEvent event) {
-				ListModelAdapterUITest.this.removeTask();
-			}
-		};
-		action.setEnabled(true);
-		return action;
-	}
-
-	private JButton buildClearButton() {
-		return new JButton(this.buildClearAction());
-	}
-
-	private Action buildClearAction() {
-		Action action = new AbstractAction("clear") {
-			public void actionPerformed(ActionEvent event) {
-				ListModelAdapterUITest.this.clearTasks();
-			}
-		};
-		action.setEnabled(true);
-		return action;
-	}
-
-	private class TaskList extends AbstractModel {
-		private List<String> taskNames = new ArrayList<String>();
-		private List<Task> taskObjects = new ArrayList<Task>();
-		public static final String TASK_NAMES_LIST = "taskNames";
-		public static final String TASKS_LIST = "tasks";
-		TaskList() {
-			super();
-		}
-		public ListIterator<String> taskNames() {
-			return this.taskNames.listIterator();
-		}
-		public ListIterator<Task> tasks() {
-			return this.taskObjects.listIterator();
-		}
-		public void addTask(String taskName) {
-			int index = this.taskNames.size();
-			this.taskNames.add(index, taskName);
-			this.fireItemAdded(TASK_NAMES_LIST, index, taskName);
-	
-			Task taskObject = new Task(taskName);
-			this.taskObjects.add(index, taskObject);
-			this.fireItemAdded(TASKS_LIST, index, taskObject);
-		}		
-		public void removeTask(String taskName) {
-			int index = this.taskNames.indexOf(taskName);
-			if (index != -1) {
-				Object removedTask = this.taskNames.remove(index);
-				this.fireItemRemoved(TASK_NAMES_LIST, index, removedTask);
-				// assume the indexes match...
-				Object removedTaskObject = this.taskObjects.remove(index);
-				this.fireItemRemoved(TASKS_LIST, index, removedTaskObject);
-			}
-		}
-		public void clearTasks() {
-			this.taskNames.clear();
-			this.fireListChanged(TASK_NAMES_LIST);
-			this.taskObjects.clear();
-			this.fireListChanged(TASKS_LIST);
-		}
-	}
-
-	private class Task extends AbstractModel implements Displayable {
-		private String name;
-		private Date creationTimeStamp;
-		public Task(String name) {
-			this.name = name;
-			this.creationTimeStamp = new Date();
-		}
-		public String displayString() {
-			return this.name + ": " + this.creationTimeStamp.getTime();
-		}
-		public Icon icon() {
-			return null;
-		}
-		public int compareTo(Displayable o) {
-			return DEFAULT_COMPARATOR.compare(this, o);
-		}
-		public String getName() {
-			return this.name;
-		}
-		public void setName(String name) {
-			Object old = this.name;
-			this.name = name;
-			this.firePropertyChanged(DISPLAY_STRING_PROPERTY, old, name);
-		}
-		@Override
-		public String toString() {
-			return StringTools.buildToStringFor(this, this.displayString());
-		}
-	}
-
-}
diff --git a/jpa/tests/org.eclipse.jpt.utility.tests/src/org/eclipse/jpt/utility/tests/internal/model/value/swing/ListSpinnerModelAdapterTests.java b/jpa/tests/org.eclipse.jpt.utility.tests/src/org/eclipse/jpt/utility/tests/internal/model/value/swing/ListSpinnerModelAdapterTests.java
deleted file mode 100644
index 0407b59..0000000
--- a/jpa/tests/org.eclipse.jpt.utility.tests/src/org/eclipse/jpt/utility/tests/internal/model/value/swing/ListSpinnerModelAdapterTests.java
+++ /dev/null
@@ -1,133 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2008 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.utility.tests.internal.model.value.swing;
-
-import javax.swing.SpinnerModel;
-import javax.swing.event.ChangeEvent;
-import javax.swing.event.ChangeListener;
-import junit.framework.TestCase;
-import org.eclipse.jpt.utility.internal.model.value.SimplePropertyValueModel;
-import org.eclipse.jpt.utility.internal.model.value.swing.ListSpinnerModelAdapter;
-import org.eclipse.jpt.utility.model.listener.PropertyChangeListener;
-import org.eclipse.jpt.utility.model.value.PropertyValueModel;
-import org.eclipse.jpt.utility.model.value.WritablePropertyValueModel;
-import org.eclipse.jpt.utility.tests.internal.TestTools;
-
-public class ListSpinnerModelAdapterTests extends TestCase {
-	private WritablePropertyValueModel<Object> valueHolder;
-	private SpinnerModel spinnerModelAdapter;
-	boolean eventFired;
-	private static final String[] VALUE_LIST = {"red", "green", "blue"};
-	private static final String DEFAULT_VALUE = VALUE_LIST[0];
-
-	public ListSpinnerModelAdapterTests(String name) {
-		super(name);
-	}
-
-	@Override
-	protected void setUp() throws Exception {
-		super.setUp();
-		this.valueHolder = new SimplePropertyValueModel<Object>(DEFAULT_VALUE);
-		this.spinnerModelAdapter = new ListSpinnerModelAdapter(this.valueHolder, VALUE_LIST) {
-			@Override
-			protected PropertyChangeListener buildValueChangeListener() {
-				return this.buildValueChangeListener_();
-			}
-		};
-	}
-
-	@Override
-	protected void tearDown() throws Exception {
-		TestTools.clear(this);
-		super.tearDown();
-	}
-
-	public void testSetValueSpinnerModel() throws Exception {
-		this.eventFired = false;
-		this.spinnerModelAdapter.addChangeListener(new TestChangeListener() {
-			@Override
-			public void stateChanged(ChangeEvent e) {
-				ListSpinnerModelAdapterTests.this.eventFired = true;
-			}
-		});
-		assertEquals(DEFAULT_VALUE, this.valueHolder.getValue());
-		this.spinnerModelAdapter.setValue(VALUE_LIST[2]);
-		assertTrue(this.eventFired);
-		assertEquals(VALUE_LIST[2], this.valueHolder.getValue());
-	}
-
-	public void testSetValueValueHolder() throws Exception {
-		this.eventFired = false;
-		this.spinnerModelAdapter.addChangeListener(new TestChangeListener() {
-			@Override
-			public void stateChanged(ChangeEvent e) {
-				ListSpinnerModelAdapterTests.this.eventFired = true;
-			}
-		});
-		assertEquals(DEFAULT_VALUE, this.spinnerModelAdapter.getValue());
-		this.valueHolder.setValue(VALUE_LIST[2]);
-		assertTrue(this.eventFired);
-		assertEquals(VALUE_LIST[2], this.spinnerModelAdapter.getValue());
-	}
-
-	public void testDefaultValue() throws Exception {
-		this.eventFired = false;
-		this.spinnerModelAdapter.addChangeListener(new TestChangeListener() {
-			@Override
-			public void stateChanged(ChangeEvent e) {
-				ListSpinnerModelAdapterTests.this.eventFired = true;
-			}
-		});
-		assertEquals(DEFAULT_VALUE, this.spinnerModelAdapter.getValue());
-
-		this.valueHolder.setValue(VALUE_LIST[2]);
-		assertTrue(this.eventFired);
-		assertEquals(VALUE_LIST[2], this.spinnerModelAdapter.getValue());
-
-		this.eventFired = false;
-		this.valueHolder.setValue(null);
-		assertTrue(this.eventFired);
-		assertEquals(VALUE_LIST[0], this.spinnerModelAdapter.getValue());
-	}
-
-	public void testHasListeners() throws Exception {
-		SimplePropertyValueModel<Object> localValueHolder = (SimplePropertyValueModel<Object>) this.valueHolder;
-		assertFalse(localValueHolder.hasAnyPropertyChangeListeners(PropertyValueModel.VALUE));
-		this.verifyHasNoListeners(this.spinnerModelAdapter);
-
-		ChangeListener listener = new TestChangeListener();
-		this.spinnerModelAdapter.addChangeListener(listener);
-		assertTrue(localValueHolder.hasAnyPropertyChangeListeners(PropertyValueModel.VALUE));
-		this.verifyHasListeners(this.spinnerModelAdapter);
-
-		this.spinnerModelAdapter.removeChangeListener(listener);
-		assertFalse(localValueHolder.hasAnyPropertyChangeListeners(PropertyValueModel.VALUE));
-		this.verifyHasNoListeners(this.spinnerModelAdapter);
-	}
-
-	private void verifyHasNoListeners(SpinnerModel adapter) throws Exception {
-		assertEquals(0, ((ListSpinnerModelAdapter) adapter).getChangeListeners().length);
-	}
-
-	private void verifyHasListeners(Object adapter) throws Exception {
-		assertFalse(((ListSpinnerModelAdapter) adapter).getChangeListeners().length == 0);
-	}
-
-
-	private class TestChangeListener implements ChangeListener {
-		TestChangeListener() {
-			super();
-		}
-		public void stateChanged(ChangeEvent e) {
-			fail("unexpected event");
-		}
-	}
-
-}
diff --git a/jpa/tests/org.eclipse.jpt.utility.tests/src/org/eclipse/jpt/utility/tests/internal/model/value/swing/NumberSpinnerModelAdapterTests.java b/jpa/tests/org.eclipse.jpt.utility.tests/src/org/eclipse/jpt/utility/tests/internal/model/value/swing/NumberSpinnerModelAdapterTests.java
deleted file mode 100644
index bc5df14..0000000
--- a/jpa/tests/org.eclipse.jpt.utility.tests/src/org/eclipse/jpt/utility/tests/internal/model/value/swing/NumberSpinnerModelAdapterTests.java
+++ /dev/null
@@ -1,147 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2008 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.utility.tests.internal.model.value.swing;
-
-import javax.swing.SpinnerModel;
-import javax.swing.event.ChangeEvent;
-import javax.swing.event.ChangeListener;
-import junit.framework.TestCase;
-import org.eclipse.jpt.utility.internal.model.value.SimplePropertyValueModel;
-import org.eclipse.jpt.utility.internal.model.value.swing.NumberSpinnerModelAdapter;
-import org.eclipse.jpt.utility.model.listener.PropertyChangeListener;
-import org.eclipse.jpt.utility.model.value.PropertyValueModel;
-import org.eclipse.jpt.utility.model.value.WritablePropertyValueModel;
-import org.eclipse.jpt.utility.tests.internal.TestTools;
-
-public class NumberSpinnerModelAdapterTests extends TestCase {
-	private WritablePropertyValueModel<Number> valueHolder;
-	private SpinnerModel spinnerModelAdapter;
-	boolean eventFired;
-
-	public NumberSpinnerModelAdapterTests(String name) {
-		super(name);
-	}
-
-	@Override
-	protected void setUp() throws Exception {
-		super.setUp();
-		this.valueHolder = new SimplePropertyValueModel<Number>(new Integer(0));
-		this.spinnerModelAdapter = new NumberSpinnerModelAdapter(this.valueHolder, -33, 33, 1) {
-			@Override
-			protected PropertyChangeListener buildNumberChangeListener() {
-				return this.buildNumberChangeListener_();
-			}
-		};
-	}
-
-	@Override
-	protected void tearDown() throws Exception {
-		TestTools.clear(this);
-		super.tearDown();
-	}
-
-	public void testSetValueSpinnerModel() throws Exception {
-		this.eventFired = false;
-		this.spinnerModelAdapter.addChangeListener(new TestChangeListener() {
-			@Override
-			public void stateChanged(ChangeEvent e) {
-				NumberSpinnerModelAdapterTests.this.eventFired = true;
-			}
-		});
-		this.spinnerModelAdapter.setValue(new Integer(5));
-		assertTrue(this.eventFired);
-		assertEquals(new Integer(5), this.valueHolder.getValue());
-	}
-
-	public void testSetValueValueHolder() throws Exception {
-		this.eventFired = false;
-		this.spinnerModelAdapter.addChangeListener(new TestChangeListener() {
-			@Override
-			public void stateChanged(ChangeEvent e) {
-				NumberSpinnerModelAdapterTests.this.eventFired = true;
-			}
-		});
-		assertEquals(new Integer(0), this.spinnerModelAdapter.getValue());
-		this.valueHolder.setValue(new Integer(7));
-		assertTrue(this.eventFired);
-		assertEquals(new Integer(7), this.spinnerModelAdapter.getValue());
-	}
-
-	public void testDefaultValue() throws Exception {
-		this.eventFired = false;
-		this.spinnerModelAdapter.addChangeListener(new TestChangeListener() {
-			@Override
-			public void stateChanged(ChangeEvent e) {
-				NumberSpinnerModelAdapterTests.this.eventFired = true;
-			}
-		});
-		assertEquals(new Integer(0), this.spinnerModelAdapter.getValue());
-		this.valueHolder.setValue(null);
-		assertTrue(this.eventFired);
-		assertEquals(new Integer(-33), this.spinnerModelAdapter.getValue());
-	}
-
-	public void testHasListeners() throws Exception {
-		SimplePropertyValueModel<Number> localValueHolder = (SimplePropertyValueModel<Number>) this.valueHolder;
-		assertFalse(localValueHolder.hasAnyPropertyChangeListeners(PropertyValueModel.VALUE));
-		this.verifyHasNoListeners(this.spinnerModelAdapter);
-
-		ChangeListener listener = new TestChangeListener();
-		this.spinnerModelAdapter.addChangeListener(listener);
-		assertTrue(localValueHolder.hasAnyPropertyChangeListeners(PropertyValueModel.VALUE));
-		this.verifyHasListeners(this.spinnerModelAdapter);
-
-		this.spinnerModelAdapter.removeChangeListener(listener);
-		assertFalse(localValueHolder.hasAnyPropertyChangeListeners(PropertyValueModel.VALUE));
-		this.verifyHasNoListeners(this.spinnerModelAdapter);
-	}
-
-	private void verifyHasNoListeners(SpinnerModel adapter) throws Exception {
-		assertEquals(0, ((NumberSpinnerModelAdapter) adapter).getChangeListeners().length);
-	}
-
-	private void verifyHasListeners(Object adapter) throws Exception {
-		assertFalse(((NumberSpinnerModelAdapter) adapter).getChangeListeners().length == 0);
-	}
-
-	public void testNullInitialValue() {
-		this.valueHolder = new SimplePropertyValueModel<Number>();
-		this.spinnerModelAdapter = new NumberSpinnerModelAdapter(this.valueHolder, new Integer(-33), new Integer(33), new Integer(1), new Integer(0)) {
-			@Override
-			protected PropertyChangeListener buildNumberChangeListener() {
-				return this.buildNumberChangeListener_();
-			}
-		};
-
-		this.eventFired = false;
-		this.spinnerModelAdapter.addChangeListener(new TestChangeListener() {
-			@Override
-			public void stateChanged(ChangeEvent e) {
-				NumberSpinnerModelAdapterTests.this.eventFired = true;
-			}
-		});
-		assertEquals(new Integer(0), this.spinnerModelAdapter.getValue());
-		this.valueHolder.setValue(new Integer(7));
-		assertTrue(this.eventFired);
-		assertEquals(new Integer(7), this.spinnerModelAdapter.getValue());
-	}
-
-
-	// ********** inner class **********
-	private class TestChangeListener implements ChangeListener {
-		TestChangeListener() {
-			super();
-		}
-		public void stateChanged(ChangeEvent e) {
-			fail("unexpected event");
-		}
-	}
-
-}
diff --git a/jpa/tests/org.eclipse.jpt.utility.tests/src/org/eclipse/jpt/utility/tests/internal/model/value/swing/ObjectListSelectionModelTests.java b/jpa/tests/org.eclipse.jpt.utility.tests/src/org/eclipse/jpt/utility/tests/internal/model/value/swing/ObjectListSelectionModelTests.java
deleted file mode 100644
index 8744d66..0000000
--- a/jpa/tests/org.eclipse.jpt.utility.tests/src/org/eclipse/jpt/utility/tests/internal/model/value/swing/ObjectListSelectionModelTests.java
+++ /dev/null
@@ -1,202 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2008 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.utility.tests.internal.model.value.swing;
-
-import javax.swing.DefaultListModel;
-import javax.swing.ListModel;
-import javax.swing.event.ListSelectionEvent;
-import javax.swing.event.ListSelectionListener;
-import junit.framework.TestCase;
-import org.eclipse.jpt.utility.internal.CollectionTools;
-import org.eclipse.jpt.utility.internal.model.value.swing.ObjectListSelectionModel;
-import org.eclipse.jpt.utility.tests.internal.TestTools;
-
-public class ObjectListSelectionModelTests extends TestCase {
-	private DefaultListModel listModel;
-	private ObjectListSelectionModel selectionModel;
-
-	public ObjectListSelectionModelTests(String name) {
-		super(name);
-	}
-
-	@Override
-	protected void setUp() throws Exception {
-		super.setUp();
-		this.listModel = this.buildListModel();
-		this.selectionModel = this.buildSelectionModel(this.listModel);
-	}
-
-	private DefaultListModel buildListModel() {
-		DefaultListModel lm = new DefaultListModel();
-		lm.addElement("foo");
-		lm.addElement("bar");
-		lm.addElement("baz");
-		return lm;
-	}
-
-	private ObjectListSelectionModel buildSelectionModel(ListModel lm) {
-		return new ObjectListSelectionModel(lm);
-	}
-
-	@Override
-	protected void tearDown() throws Exception {
-		TestTools.clear(this);
-		super.tearDown();
-	}
-
-	public void testListDataListener() {
-		this.selectionModel.addListSelectionListener(this.buildListSelectionListener());
-		this.selectionModel.setSelectionInterval(0, 0);
-		assertEquals("foo", this.selectionModel.selectedValue());
-		this.listModel.set(0, "jar");
-		assertEquals("jar", this.selectionModel.selectedValue());
-	}
-
-	public void testGetSelectedValue() {
-		this.selectionModel.setSelectionInterval(0, 0);
-		assertEquals("foo", this.selectionModel.selectedValue());
-	}
-
-	public void testGetSelectedValues() {
-		this.selectionModel.setSelectionInterval(0, 0);
-		this.selectionModel.addSelectionInterval(2, 2);
-		assertEquals(2, this.selectionModel.selectedValues().length);
-		assertTrue(CollectionTools.contains(this.selectionModel.selectedValues(), "foo"));
-		assertTrue(CollectionTools.contains(this.selectionModel.selectedValues(), "baz"));
-	}
-
-	public void testSetSelectedValue() {
-		this.selectionModel.setSelectedValue("foo");
-		assertEquals(0, this.selectionModel.getMinSelectionIndex());
-		assertEquals(0, this.selectionModel.getMaxSelectionIndex());
-	}
-
-	public void testSetSelectedValues() {
-		this.selectionModel.setSelectedValues(new Object[] {"foo", "baz"});
-		assertEquals(0, this.selectionModel.getMinSelectionIndex());
-		assertEquals(2, this.selectionModel.getMaxSelectionIndex());
-	}
-
-	public void testAddSelectedValue() {
-		this.listModel.addElement("joo");
-		this.listModel.addElement("jar");
-		this.listModel.addElement("jaz");
-		this.selectionModel.setSelectedValue("foo");
-		this.selectionModel.addSelectedValue("jaz");
-		assertEquals(0, this.selectionModel.getMinSelectionIndex());
-		assertEquals(5, this.selectionModel.getMaxSelectionIndex());
-		assertTrue(this.selectionModel.isSelectedIndex(0));
-		assertFalse(this.selectionModel.isSelectedIndex(1));
-		assertFalse(this.selectionModel.isSelectedIndex(2));
-		assertFalse(this.selectionModel.isSelectedIndex(3));
-		assertFalse(this.selectionModel.isSelectedIndex(4));
-		assertTrue(this.selectionModel.isSelectedIndex(5));
-	}
-
-	public void testAddSelectedValues() {
-		this.listModel.addElement("joo");
-		this.listModel.addElement("jar");
-		this.listModel.addElement("jaz");
-		this.selectionModel.setSelectedValue("foo");
-		this.selectionModel.addSelectedValues(new Object[] {"bar", "jar"});
-		assertEquals(0, this.selectionModel.getMinSelectionIndex());
-		assertEquals(4, this.selectionModel.getMaxSelectionIndex());
-		assertTrue(this.selectionModel.isSelectedIndex(0));
-		assertTrue(this.selectionModel.isSelectedIndex(1));
-		assertFalse(this.selectionModel.isSelectedIndex(2));
-		assertFalse(this.selectionModel.isSelectedIndex(3));
-		assertTrue(this.selectionModel.isSelectedIndex(4));
-		assertFalse(this.selectionModel.isSelectedIndex(5));
-	}
-
-	public void testRemoveSelectedValue() {
-		this.listModel.addElement("joo");
-		this.listModel.addElement("jar");
-		this.listModel.addElement("jaz");
-		this.selectionModel.setSelectedValues(new Object[] {"foo", "baz", "jar"});
-		this.selectionModel.removeSelectedValue("jar");
-		assertEquals(0, this.selectionModel.getMinSelectionIndex());
-		assertEquals(2, this.selectionModel.getMaxSelectionIndex());
-		assertTrue(this.selectionModel.isSelectedIndex(0));
-		assertFalse(this.selectionModel.isSelectedIndex(1));
-		assertTrue(this.selectionModel.isSelectedIndex(2));
-		assertFalse(this.selectionModel.isSelectedIndex(3));
-		assertFalse(this.selectionModel.isSelectedIndex(4));
-		assertFalse(this.selectionModel.isSelectedIndex(5));
-	}
-
-	public void testRemoveSelectedValues() {
-		this.listModel.addElement("joo");
-		this.listModel.addElement("jar");
-		this.listModel.addElement("jaz");
-		this.selectionModel.setSelectedValues(new Object[] {"foo", "baz", "joo", "jar"});
-		this.selectionModel.removeSelectedValues(new Object[] {"foo", "joo"});
-		assertEquals(2, this.selectionModel.getMinSelectionIndex());
-		assertEquals(4, this.selectionModel.getMaxSelectionIndex());
-		assertFalse(this.selectionModel.isSelectedIndex(0));
-		assertFalse(this.selectionModel.isSelectedIndex(1));
-		assertTrue(this.selectionModel.isSelectedIndex(2));
-		assertFalse(this.selectionModel.isSelectedIndex(3));
-		assertTrue(this.selectionModel.isSelectedIndex(4));
-		assertFalse(this.selectionModel.isSelectedIndex(5));
-	}
-
-	public void testGetAnchorSelectedValue() {
-		this.selectionModel.setAnchorSelectionIndex(1);
-		assertEquals("bar", this.selectionModel.getAnchorSelectedValue());
-	}
-
-	public void testGetLeadSelectedValue() {
-		this.selectionModel.setSelectedValue("bar");
-		assertEquals("bar", this.selectionModel.getLeadSelectedValue());
-		this.selectionModel.setSelectedValues(new Object[] {"foo", "baz"});
-		assertEquals("baz", this.selectionModel.getLeadSelectedValue());
-	}
-
-	public void testGetMinMaxSelectedValue() {
-		this.listModel.addElement("joo");
-		this.listModel.addElement("jar");
-		this.listModel.addElement("jaz");
-		this.selectionModel.setSelectedValue("foo");
-		this.selectionModel.addSelectedValues(new Object[] {"bar", "jar"});
-		assertEquals("foo", this.selectionModel.getMinSelectedValue());
-		assertEquals("jar", this.selectionModel.getMaxSelectedValue());
-	}
-
-	public void testValueIsSelected() {
-		this.listModel.addElement("joo");
-		this.listModel.addElement("jar");
-		this.listModel.addElement("jaz");
-		this.selectionModel.setSelectedValue("foo");
-		this.selectionModel.addSelectedValues(new Object[] {"bar", "jar"});
-		assertTrue(this.selectionModel.valueIsSelected("foo"));
-		assertTrue(this.selectionModel.valueIsSelected("bar"));
-		assertTrue(this.selectionModel.valueIsSelected("jar"));
-		assertFalse(this.selectionModel.valueIsSelected("baz"));
-	}
-
-	public void testHasListeners() throws Exception {
-		ListSelectionListener listener = this.buildListSelectionListener();
-		assertEquals(0, this.listModel.getListDataListeners().length);
-		this.selectionModel.addListSelectionListener(listener);
-		assertEquals(1, this.listModel.getListDataListeners().length);
-		this.selectionModel.removeListSelectionListener(listener);
-		assertEquals(0, this.listModel.getListDataListeners().length);
-	}
-
-	private ListSelectionListener buildListSelectionListener() {
-		return new ListSelectionListener() {
-			public void valueChanged(ListSelectionEvent e) {
-				// do nothing for now...
-			}
-		};
-	}
-
-}
diff --git a/jpa/tests/org.eclipse.jpt.utility.tests/src/org/eclipse/jpt/utility/tests/internal/model/value/swing/PrimitiveListTreeModelTests.java b/jpa/tests/org.eclipse.jpt.utility.tests/src/org/eclipse/jpt/utility/tests/internal/model/value/swing/PrimitiveListTreeModelTests.java
deleted file mode 100644
index 3a8384c..0000000
--- a/jpa/tests/org.eclipse.jpt.utility.tests/src/org/eclipse/jpt/utility/tests/internal/model/value/swing/PrimitiveListTreeModelTests.java
+++ /dev/null
@@ -1,197 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2008 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.utility.tests.internal.model.value.swing;
-
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.List;
-import java.util.ListIterator;
-import javax.swing.event.TreeModelEvent;
-import javax.swing.event.TreeModelListener;
-import javax.swing.tree.DefaultMutableTreeNode;
-import javax.swing.tree.TreeModel;
-import junit.framework.TestCase;
-import org.eclipse.jpt.utility.internal.iterators.ReadOnlyListIterator;
-import org.eclipse.jpt.utility.internal.model.AbstractModel;
-import org.eclipse.jpt.utility.internal.model.value.ListAspectAdapter;
-import org.eclipse.jpt.utility.internal.model.value.swing.PrimitiveListTreeModel;
-import org.eclipse.jpt.utility.model.listener.ListChangeListener;
-import org.eclipse.jpt.utility.model.value.ListValueModel;
-import org.eclipse.jpt.utility.tests.internal.TestTools;
-
-public class PrimitiveListTreeModelTests extends TestCase {
-	TestModel testModel;
-	private TreeModel treeModel;
-
-	public PrimitiveListTreeModelTests(String name) {
-		super(name);
-	}
-
-	@Override
-	protected void setUp() throws Exception {
-		super.setUp();
-		this.testModel = this.buildTestModel();
-		this.treeModel = this.buildTreeModel();
-	}
-
-	private TestModel buildTestModel() {
-		return new TestModel();
-	}
-
-	private TreeModel buildTreeModel() {
-		return new PrimitiveListTreeModel(this.buildListValueModel()) {
-			@Override
-			protected void primitiveChanged(int index, Object newValue) {
-				if ( ! newValue.equals("")) {
-					PrimitiveListTreeModelTests.this.testModel.replaceName(index, (String) newValue);
-				}
-			}
-			@Override
-			protected ListChangeListener buildListChangeListener() {
-				return this.buildListChangeListener_();
-			}
-		};
-	}
-
-	private ListValueModel<?> buildListValueModel() {
-		return new ListAspectAdapter<TestModel, String>(TestModel.NAMES_LIST, this.testModel) {
-			@Override
-			protected ListIterator<String> listIterator_() {
-				return this.subject.names();
-			}
-			@Override
-			public String get(int index) {
-				return this.subject.getName(index);
-			}
-			@Override
-			public int size() {
-				return this.subject.namesSize();
-			}
-		};
-	}
-
-	@Override
-	protected void tearDown() throws Exception {
-		TestTools.clear(this);
-		super.tearDown();
-	}
-
-	public void testAddPrimitive() {
-		this.treeModel.addTreeModelListener(new TestTreeModelListener() {
-			@Override
-			public void treeNodesInserted(TreeModelEvent e) {
-				PrimitiveListTreeModelTests.this.verifyTreeModelEvent(e, new int[] {0}, new String[] {"foo"});
-			}
-		});
-		this.testModel.addName("foo");
-	}
-
-	public void testRemovePrimitive() {
-		this.testModel.addName("foo");
-		this.testModel.addName("bar");
-		this.testModel.addName("baz");
-		this.treeModel.addTreeModelListener(new TestTreeModelListener() {
-			@Override
-			public void treeNodesRemoved(TreeModelEvent e) {
-				PrimitiveListTreeModelTests.this.verifyTreeModelEvent(e, new int[] {1}, new String[] {"bar"});
-			}
-		});
-		String name = this.testModel.removeName(1);
-		assertEquals("bar", name);
-	}
-
-	public void testReplacePrimitive() {
-		this.testModel.addName("foo");
-		this.testModel.addName("bar");
-		this.testModel.addName("baz");
-		this.treeModel.addTreeModelListener(new TestTreeModelListener() {
-			@Override
-			public void treeNodesChanged(TreeModelEvent e) {
-				PrimitiveListTreeModelTests.this.verifyTreeModelEvent(e, new int[] {1}, new String[] {"jar"});
-			}
-		});
-		String name = this.testModel.replaceName(1, "jar");
-		assertEquals("bar", name);
-	}
-
-	void verifyTreeModelEvent(TreeModelEvent e, int[] expectedChildIndices, String[] expectedNames) {
-		assertTrue(Arrays.equals(expectedChildIndices, e.getChildIndices()));
-		Object[] actualChildren = e.getChildren();
-		assertEquals(expectedNames.length, actualChildren.length);
-		for (int i = 0; i < expectedNames.length; i++) {
-			DefaultMutableTreeNode node = (DefaultMutableTreeNode) actualChildren[i];
-			assertEquals(expectedNames[i], node.getUserObject());
-		}
-		assertEquals(1, e.getPath().length);
-		assertEquals(this.treeModel.getRoot(), e.getPath()[0]);
-		assertEquals(this.treeModel, e.getSource());
-	}
-
-
-// ********** inner classes **********
-
-	private class TestModel extends AbstractModel {
-		private final List<String> names;
-			static final String NAMES_LIST = "names";
-	
-		TestModel() {
-			super();
-			this.names = new ArrayList<String>();
-		}
-	
-		public ListIterator<String> names() {
-			return new ReadOnlyListIterator<String>(this.names);
-		}
-		public int namesSize() {
-			return this.names.size();
-		}
-		public String getName(int index) {
-			return this.names.get(index);
-		}
-		public void addName(int index, String name) {
-			this.addItemToList(index, name, this.names, NAMES_LIST);
-		}
-		public void addName(String name) {
-			this.addName(this.namesSize(), name);
-		}
-		public void addNames(int index, List<String> list) {
-			this.addItemsToList(index, this.names, list, NAMES_LIST);
-		}
-		public void addNames(List<String> list) {
-			this.addNames(this.namesSize(), list);
-		}
-		public String removeName(int index) {
-			return this.removeItemFromList(index, this.names, NAMES_LIST);
-		}
-		public List<String> removeNames(int index, int length) {
-			return this.removeItemsFromList(index, length, this.names, NAMES_LIST);
-		}
-		public String replaceName(int index, String newName) {
-			return this.setItemInList(index, newName, this.names, NAMES_LIST);
-		}
-	}
-	
-	
-	public class TestTreeModelListener implements TreeModelListener {
-		public void treeNodesChanged(TreeModelEvent e) {
-			fail("unexpected event");
-		}
-		public void treeNodesInserted(TreeModelEvent e) {
-			fail("unexpected event");
-		}
-		public void treeNodesRemoved(TreeModelEvent e) {
-			fail("unexpected event");
-		}
-		public void treeStructureChanged(TreeModelEvent e) {
-			fail("unexpected event");
-		}
-	}
-
-}
diff --git a/jpa/tests/org.eclipse.jpt.utility.tests/src/org/eclipse/jpt/utility/tests/internal/model/value/swing/RadioButtonModelAdapterTests.java b/jpa/tests/org.eclipse.jpt.utility.tests/src/org/eclipse/jpt/utility/tests/internal/model/value/swing/RadioButtonModelAdapterTests.java
deleted file mode 100644
index 0c4bbeb..0000000
--- a/jpa/tests/org.eclipse.jpt.utility.tests/src/org/eclipse/jpt/utility/tests/internal/model/value/swing/RadioButtonModelAdapterTests.java
+++ /dev/null
@@ -1,229 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2008 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.utility.tests.internal.model.value.swing;
-
-import javax.swing.ButtonModel;
-import javax.swing.event.ChangeEvent;
-import javax.swing.event.ChangeListener;
-import javax.swing.event.EventListenerList;
-import junit.framework.TestCase;
-import org.eclipse.jpt.utility.internal.ClassTools;
-import org.eclipse.jpt.utility.internal.model.value.SimplePropertyValueModel;
-import org.eclipse.jpt.utility.internal.model.value.swing.RadioButtonModelAdapter;
-import org.eclipse.jpt.utility.model.listener.PropertyChangeListener;
-import org.eclipse.jpt.utility.model.value.PropertyValueModel;
-import org.eclipse.jpt.utility.model.value.WritablePropertyValueModel;
-import org.eclipse.jpt.utility.tests.internal.TestTools;
-
-public class RadioButtonModelAdapterTests extends TestCase {
-	private WritablePropertyValueModel<Object> valueHolder;
-
-	private ButtonModel redButtonModelAdapter;
-	private ChangeListener redListener;
-	boolean redEventFired;
-
-	private ButtonModel greenButtonModelAdapter;
-	private ChangeListener greenListener;
-	boolean greenEventFired;
-
-	private ButtonModel blueButtonModelAdapter;
-	private ChangeListener blueListener;
-	boolean blueEventFired;
-
-//	private ButtonGroup buttonGroup;	// DO NOT use a ButtonGroup
-
-	private static final String RED = "red";
-	private static final String GREEN = "green";
-	private static final String BLUE = "blue";
-
-	public RadioButtonModelAdapterTests(String name) {
-		super(name);
-	}
-
-	@Override
-	protected void setUp() throws Exception {
-		super.setUp();
-		this.valueHolder = new SimplePropertyValueModel<Object>(null);
-//		buttonGroup = new ButtonGroup();
-
-		this.redButtonModelAdapter = this.buildButtonModel(this.valueHolder, RED);
-//		this.redButtonModelAdapter.setGroup(buttonGroup);
-		this.redListener = new TestChangeListener() {
-			@Override
-			public void stateChanged(ChangeEvent e) {
-				RadioButtonModelAdapterTests.this.redEventFired = true;
-			}
-		};
-
-		this.greenButtonModelAdapter = this.buildButtonModel(this.valueHolder, GREEN);
-//		this.greenButtonModelAdapter.setGroup(buttonGroup);
-		this.greenListener = new TestChangeListener() {
-			@Override
-			public void stateChanged(ChangeEvent e) {
-				RadioButtonModelAdapterTests.this.greenEventFired = true;
-			}
-		};
-
-		this.blueButtonModelAdapter = this.buildButtonModel(this.valueHolder, BLUE);
-//		this.blueButtonModelAdapter.setGroup(buttonGroup);
-		this.blueListener = new TestChangeListener() {
-			@Override
-			public void stateChanged(ChangeEvent e) {
-				RadioButtonModelAdapterTests.this.blueEventFired = true;
-			}
-		};
-		
-		this.clearFlags();
-	}
-
-	private ButtonModel buildButtonModel(WritablePropertyValueModel<Object> pvm, Object buttonValue) {
-		return new RadioButtonModelAdapter(pvm, buttonValue) {
-			@Override
-			protected PropertyChangeListener buildBooleanChangeListener() {
-				return this.buildBooleanChangeListener_();
-			}
-		};
-	}
-
-	private void listenToModelAdapters() {
-		this.redButtonModelAdapter.addChangeListener(this.redListener);
-		this.greenButtonModelAdapter.addChangeListener(this.greenListener);
-		this.blueButtonModelAdapter.addChangeListener(this.blueListener);
-	}
-
-	private void clearFlags() {
-		this.redEventFired = false;
-		this.greenEventFired = false;
-		this.blueEventFired = false;
-	}
-
-	@Override
-	protected void tearDown() throws Exception {
-		TestTools.clear(this);
-		super.tearDown();
-	}
-
-	public void testSetSelected() throws Exception {
-		this.listenToModelAdapters();
-
-		this.greenButtonModelAdapter.setSelected(true);
-		assertFalse(this.redEventFired);
-		assertTrue(this.greenEventFired);
-		assertFalse(this.blueEventFired);
-		assertEquals(GREEN, this.valueHolder.getValue());
-
-		this.clearFlags();
-		this.blueButtonModelAdapter.setSelected(true);
-		assertFalse(this.redEventFired);
-		assertTrue(this.greenEventFired);
-		assertTrue(this.blueEventFired);
-		assertEquals(BLUE, this.valueHolder.getValue());
-
-		this.clearFlags();
-		this.redButtonModelAdapter.setSelected(true);
-		assertTrue(this.redEventFired);
-		assertFalse(this.greenEventFired);
-		assertTrue(this.blueEventFired);
-		assertEquals(RED, this.valueHolder.getValue());
-	}
-
-	public void testSetValue() throws Exception {
-		this.listenToModelAdapters();
-
-		this.greenButtonModelAdapter.setSelected(true);
-
-		this.clearFlags();
-		this.valueHolder.setValue(BLUE);
-		assertFalse(this.redEventFired);
-		assertTrue(this.greenEventFired);
-		assertTrue(this.blueEventFired);
-		assertFalse(this.redButtonModelAdapter.isSelected());
-		assertFalse(this.greenButtonModelAdapter.isSelected());
-		assertTrue(this.blueButtonModelAdapter.isSelected());
-
-		this.clearFlags();
-		this.valueHolder.setValue(RED);
-		assertTrue(this.redEventFired);
-		assertFalse(this.greenEventFired);
-		assertTrue(this.blueEventFired);
-		assertTrue(this.redButtonModelAdapter.isSelected());
-		assertFalse(this.greenButtonModelAdapter.isSelected());
-		assertFalse(this.blueButtonModelAdapter.isSelected());
-	}
-
-	public void testDefaultValue() throws Exception {
-		this.listenToModelAdapters();
-
-		this.valueHolder.setValue(GREEN);
-		assertFalse(this.redButtonModelAdapter.isSelected());
-		assertTrue(this.greenButtonModelAdapter.isSelected());
-		assertFalse(this.blueButtonModelAdapter.isSelected());
-
-		this.clearFlags();
-		this.valueHolder.setValue(null);
-		assertFalse(this.redEventFired);
-		assertTrue(this.greenEventFired);
-		assertFalse(this.blueEventFired);
-		assertFalse(this.redButtonModelAdapter.isSelected());
-		assertFalse(this.greenButtonModelAdapter.isSelected());
-		assertFalse(this.blueButtonModelAdapter.isSelected());
-
-		this.clearFlags();
-		this.valueHolder.setValue(BLUE);
-		assertFalse(this.redEventFired);
-		assertFalse(this.greenEventFired);
-		assertTrue(this.blueEventFired);
-		assertFalse(this.redButtonModelAdapter.isSelected());
-		assertFalse(this.greenButtonModelAdapter.isSelected());
-		assertTrue(this.blueButtonModelAdapter.isSelected());
-	}
-
-	public void testHasListeners() throws Exception {
-		SimplePropertyValueModel<Object> localValueHolder = (SimplePropertyValueModel<Object>) this.valueHolder;
-		assertFalse(localValueHolder.hasAnyPropertyChangeListeners(PropertyValueModel.VALUE));
-		this.verifyHasNoListeners(this.redButtonModelAdapter);
-		this.verifyHasNoListeners(this.greenButtonModelAdapter);
-		this.verifyHasNoListeners(this.blueButtonModelAdapter);
-
-		ChangeListener listener = new TestChangeListener();
-		this.redButtonModelAdapter.addChangeListener(listener);
-		assertTrue(localValueHolder.hasAnyPropertyChangeListeners(PropertyValueModel.VALUE));
-		this.verifyHasListeners(this.redButtonModelAdapter);
-		this.verifyHasNoListeners(this.greenButtonModelAdapter);
-		this.verifyHasNoListeners(this.blueButtonModelAdapter);
-
-		this.redButtonModelAdapter.removeChangeListener(listener);
-		assertFalse(localValueHolder.hasAnyPropertyChangeListeners(PropertyValueModel.VALUE));
-		this.verifyHasNoListeners(this.redButtonModelAdapter);
-		this.verifyHasNoListeners(this.greenButtonModelAdapter);
-		this.verifyHasNoListeners(this.blueButtonModelAdapter);
-	}
-
-	private void verifyHasNoListeners(Object model) throws Exception {
-		EventListenerList listenerList = (EventListenerList) ClassTools.fieldValue(model, "listenerList");
-		assertEquals(0, listenerList.getListenerList().length);
-	}
-
-	private void verifyHasListeners(Object model) throws Exception {
-		EventListenerList listenerList = (EventListenerList) ClassTools.fieldValue(model, "listenerList");
-		assertFalse(listenerList.getListenerList().length == 0);
-	}
-
-
-	private class TestChangeListener implements ChangeListener {
-		TestChangeListener() {
-			super();
-		}
-		public void stateChanged(ChangeEvent e) {
-			fail("unexpected event");
-		}
-	}
-
-}
diff --git a/jpa/tests/org.eclipse.jpt.utility.tests/src/org/eclipse/jpt/utility/tests/internal/model/value/swing/RadioButtonModelAdapterUITest.java b/jpa/tests/org.eclipse.jpt.utility.tests/src/org/eclipse/jpt/utility/tests/internal/model/value/swing/RadioButtonModelAdapterUITest.java
deleted file mode 100644
index f129e05..0000000
--- a/jpa/tests/org.eclipse.jpt.utility.tests/src/org/eclipse/jpt/utility/tests/internal/model/value/swing/RadioButtonModelAdapterUITest.java
+++ /dev/null
@@ -1,257 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2008 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.utility.tests.internal.model.value.swing;
-
-import java.awt.BorderLayout;
-import java.awt.Component;
-import java.awt.GridLayout;
-import java.awt.event.ActionEvent;
-import java.awt.event.WindowAdapter;
-import java.awt.event.WindowEvent;
-import java.awt.event.WindowListener;
-import javax.swing.AbstractAction;
-import javax.swing.Action;
-import javax.swing.ButtonModel;
-import javax.swing.JButton;
-import javax.swing.JFrame;
-import javax.swing.JPanel;
-import javax.swing.JRadioButton;
-import javax.swing.WindowConstants;
-import org.eclipse.jpt.utility.internal.CollectionTools;
-import org.eclipse.jpt.utility.internal.model.AbstractModel;
-import org.eclipse.jpt.utility.internal.model.value.PropertyAspectAdapter;
-import org.eclipse.jpt.utility.internal.model.value.SimplePropertyValueModel;
-import org.eclipse.jpt.utility.internal.model.value.swing.RadioButtonModelAdapter;
-import org.eclipse.jpt.utility.model.value.PropertyValueModel;
-import org.eclipse.jpt.utility.model.value.WritablePropertyValueModel;
-
-
-/**
- * Play around with a set of radio buttons.
- */
-public class RadioButtonModelAdapterUITest {
-
-	private TestModel testModel;
-	private WritablePropertyValueModel<TestModel> testModelHolder;
-	private WritablePropertyValueModel<Object> colorHolder;
-	private ButtonModel redButtonModel;
-	private ButtonModel greenButtonModel;
-	private ButtonModel blueButtonModel;
-
-	public static void main(String[] args) throws Exception {
-		new RadioButtonModelAdapterUITest().exec(args);
-	}
-
-	private RadioButtonModelAdapterUITest() {
-		super();
-	}
-
-	private void exec(String[] args) throws Exception {
-		this.testModel = new TestModel();
-		this.testModelHolder = new SimplePropertyValueModel<TestModel>(this.testModel);
-		this.colorHolder = this.buildColorHolder(this.testModelHolder);
-		this.redButtonModel = this.buildRadioButtonModelAdapter(this.colorHolder, TestModel.RED);
-		this.greenButtonModel = this.buildRadioButtonModelAdapter(this.colorHolder, TestModel.GREEN);
-		this.blueButtonModel = this.buildRadioButtonModelAdapter(this.colorHolder, TestModel.BLUE);
-		this.openWindow();
-	}
-
-	private WritablePropertyValueModel<Object> buildColorHolder(PropertyValueModel<TestModel> subjectHolder) {
-		return new PropertyAspectAdapter<TestModel, Object>(subjectHolder, TestModel.COLOR_PROPERTY) {
-			@Override
-			protected Object buildValue_() {
-				return this.subject.getColor();
-			}
-			@Override
-			protected void setValue_(Object value) {
-				this.subject.setColor((String) value);
-			}
-		};
-	}
-
-	private ButtonModel buildRadioButtonModelAdapter(WritablePropertyValueModel<Object> colorPVM, String color) {
-		return new RadioButtonModelAdapter(colorPVM, color);
-	}
-
-	private void openWindow() {
-		JFrame window = new JFrame(this.getClass().getName());
-		window.setDefaultCloseOperation(WindowConstants.DO_NOTHING_ON_CLOSE);
-		window.addWindowListener(this.buildWindowListener());
-		window.getContentPane().add(this.buildMainPanel(), "Center");
-		window.setSize(400, 100);
-		window.setLocation(200, 200);
-		window.setVisible(true);
-	}
-
-	private WindowListener buildWindowListener() {
-		return new WindowAdapter() {
-			@Override
-			public void windowClosing(WindowEvent e) {
-				e.getWindow().setVisible(false);
-				System.exit(0);
-			}
-		};
-	}
-
-	private Component buildMainPanel() {
-		JPanel mainPanel = new JPanel(new BorderLayout());
-		mainPanel.add(this.buildRadioButtonPanel(), BorderLayout.NORTH);
-		mainPanel.add(this.buildControlPanel(), BorderLayout.SOUTH);
-		return mainPanel;
-	}
-
-	private Component buildRadioButtonPanel() {
-		JPanel taskListPanel = new JPanel(new GridLayout(1, 0));
-		taskListPanel.add(this.buildRedRadioButton());
-		taskListPanel.add(this.buildGreenRadioButton());
-		taskListPanel.add(this.buildBlueRadioButton());
-		return taskListPanel;
-	}
-
-	private JRadioButton buildRedRadioButton() {
-		JRadioButton radioButton = new JRadioButton();
-		radioButton.setText("red");
-		radioButton.setModel(this.redButtonModel);
-		return radioButton;
-	}
-
-	private JRadioButton buildGreenRadioButton() {
-		JRadioButton radioButton = new JRadioButton();
-		radioButton.setText("green");
-		radioButton.setModel(this.greenButtonModel);
-		return radioButton;
-	}
-
-	private JRadioButton buildBlueRadioButton() {
-		JRadioButton radioButton = new JRadioButton();
-		radioButton.setText("blue");
-		radioButton.setModel(this.blueButtonModel);
-		return radioButton;
-	}
-
-	private Component buildControlPanel() {
-		JPanel controlPanel = new JPanel(new GridLayout(1, 0));
-		controlPanel.add(this.buildResetColorButton());
-		controlPanel.add(this.buildClearModelButton());
-		controlPanel.add(this.buildRestoreModelButton());
-		controlPanel.add(this.buildPrintModelButton());
-		return controlPanel;
-	}
-
-	private JButton buildResetColorButton() {
-		return new JButton(this.buildResetColorAction());
-	}
-
-	private Action buildResetColorAction() {
-		Action action = new AbstractAction("reset color") {
-			public void actionPerformed(ActionEvent event) {
-				RadioButtonModelAdapterUITest.this.resetColor();
-			}
-		};
-		action.setEnabled(true);
-		return action;
-	}
-
-	void resetColor() {
-		this.testModel.setColor(TestModel.DEFAULT_COLOR);
-	}
-
-	private JButton buildClearModelButton() {
-		return new JButton(this.buildClearModelAction());
-	}
-
-	private Action buildClearModelAction() {
-		Action action = new AbstractAction("clear model") {
-			public void actionPerformed(ActionEvent event) {
-				RadioButtonModelAdapterUITest.this.clearModel();
-			}
-		};
-		action.setEnabled(true);
-		return action;
-	}
-
-	void clearModel() {
-		this.testModelHolder.setValue(null);
-	}
-
-	private JButton buildRestoreModelButton() {
-		return new JButton(this.buildRestoreModelAction());
-	}
-
-	private Action buildRestoreModelAction() {
-		Action action = new AbstractAction("restore model") {
-			public void actionPerformed(ActionEvent event) {
-				RadioButtonModelAdapterUITest.this.restoreModel();
-			}
-		};
-		action.setEnabled(true);
-		return action;
-	}
-
-	void restoreModel() {
-		this.testModelHolder.setValue(this.testModel);
-	}
-
-	private JButton buildPrintModelButton() {
-		return new JButton(this.buildPrintModelAction());
-	}
-
-	private Action buildPrintModelAction() {
-		Action action = new AbstractAction("print model") {
-			public void actionPerformed(ActionEvent event) {
-				RadioButtonModelAdapterUITest.this.printModel();
-			}
-		};
-		action.setEnabled(true);
-		return action;
-	}
-
-	void printModel() {
-		System.out.println(this.testModel);
-	}
-
-
-	private static class TestModel extends AbstractModel {
-		private String color;
-			public static final String COLOR_PROPERTY = "color";
-			public static final String RED = "red";
-			public static final String GREEN = "green";
-			public static final String BLUE = "blue";
-			public static final String DEFAULT_COLOR = RED;
-			public static final String[] VALID_COLORS = {
-				RED,
-				GREEN,
-				BLUE
-			};
-	
-		public TestModel() {
-			this(DEFAULT_COLOR);
-		}
-		public TestModel(String color) {
-			this.color = color;
-		}
-		public String getColor() {
-			return this.color;
-		}
-		public void setColor(String color) {
-			if ( ! CollectionTools.contains(VALID_COLORS, color)) {
-				throw new IllegalArgumentException(color);
-			}
-			Object old = this.color;
-			this.color = color;
-			this.firePropertyChanged(COLOR_PROPERTY, old, color);
-		}
-		@Override
-		public String toString() {
-			return "TestModel(" + this.color + ")";
-		}
-	}
-
-}
diff --git a/jpa/tests/org.eclipse.jpt.utility.tests/src/org/eclipse/jpt/utility/tests/internal/model/value/swing/ReadOnlyTableModelAdapterUITest.java b/jpa/tests/org.eclipse.jpt.utility.tests/src/org/eclipse/jpt/utility/tests/internal/model/value/swing/ReadOnlyTableModelAdapterUITest.java
deleted file mode 100644
index 3bfb66f..0000000
--- a/jpa/tests/org.eclipse.jpt.utility.tests/src/org/eclipse/jpt/utility/tests/internal/model/value/swing/ReadOnlyTableModelAdapterUITest.java
+++ /dev/null
@@ -1,39 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2008 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.utility.tests.internal.model.value.swing;
-
-import org.eclipse.jpt.utility.internal.model.value.swing.ColumnAdapter;
-import org.eclipse.jpt.utility.tests.internal.model.value.swing.TableModelAdapterTests.PersonColumnAdapter;
-
-/**
- * Make it easy to test the table model adapter and
- * renderers without any editing allowed.
- */
-public class ReadOnlyTableModelAdapterUITest extends TableModelAdapterUITest {
-
-	public static void main(String[] args) throws Exception {
-		new ReadOnlyTableModelAdapterUITest().exec(args);
-	}
-
-	protected ReadOnlyTableModelAdapterUITest() {
-		super();
-	}
-
-	@Override
-	protected ColumnAdapter buildColumnAdapter() {
-		return new PersonColumnAdapter() {
-			@Override
-			public boolean columnIsEditable(int index) {
-				return false;
-			}
-		};
-	}
-
-}
diff --git a/jpa/tests/org.eclipse.jpt.utility.tests/src/org/eclipse/jpt/utility/tests/internal/model/value/swing/SpinnerModelAdapterTests.java b/jpa/tests/org.eclipse.jpt.utility.tests/src/org/eclipse/jpt/utility/tests/internal/model/value/swing/SpinnerModelAdapterTests.java
deleted file mode 100644
index c8bb023..0000000
--- a/jpa/tests/org.eclipse.jpt.utility.tests/src/org/eclipse/jpt/utility/tests/internal/model/value/swing/SpinnerModelAdapterTests.java
+++ /dev/null
@@ -1,117 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2008 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.utility.tests.internal.model.value.swing;
-
-import javax.swing.SpinnerModel;
-import javax.swing.event.ChangeEvent;
-import javax.swing.event.ChangeListener;
-import junit.framework.TestCase;
-import org.eclipse.jpt.utility.internal.ClassTools;
-import org.eclipse.jpt.utility.internal.model.value.SimplePropertyValueModel;
-import org.eclipse.jpt.utility.internal.model.value.swing.SpinnerModelAdapter;
-import org.eclipse.jpt.utility.model.listener.PropertyChangeListener;
-import org.eclipse.jpt.utility.model.value.PropertyValueModel;
-import org.eclipse.jpt.utility.model.value.WritablePropertyValueModel;
-import org.eclipse.jpt.utility.tests.internal.TestTools;
-
-public class SpinnerModelAdapterTests extends TestCase {
-	private WritablePropertyValueModel<Object> valueHolder;
-	SpinnerModel spinnerModelAdapter;
-	boolean eventFired;
-
-	public SpinnerModelAdapterTests(String name) {
-		super(name);
-	}
-
-	@Override
-	protected void setUp() throws Exception {
-		super.setUp();
-		this.valueHolder = new SimplePropertyValueModel<Object>(new Integer(0));
-		this.spinnerModelAdapter = new SpinnerModelAdapter(this.valueHolder) {
-			@Override
-			protected PropertyChangeListener buildValueListener() {
-				return this.buildValueListener_();
-			}
-		};
-	}
-
-	@Override
-	protected void tearDown() throws Exception {
-		TestTools.clear(this);
-		super.tearDown();
-	}
-
-	public void testSetValueSpinnerModel() throws Exception {
-		this.eventFired = false;
-		this.spinnerModelAdapter.addChangeListener(new TestChangeListener() {
-			@Override
-			public void stateChanged(ChangeEvent e) {
-				SpinnerModelAdapterTests.this.eventFired = true;
-				assertEquals(SpinnerModelAdapterTests.this.spinnerModelAdapter, e.getSource());
-			}
-		});
-		this.spinnerModelAdapter.setValue(new Integer(5));
-		assertTrue(this.eventFired);
-		assertEquals(new Integer(5), this.valueHolder.getValue());
-	}
-
-	public void testSetValueValueHolder() throws Exception {
-		this.eventFired = false;
-		this.spinnerModelAdapter.addChangeListener(new TestChangeListener() {
-			@Override
-			public void stateChanged(ChangeEvent e) {
-				SpinnerModelAdapterTests.this.eventFired = true;
-				assertEquals(SpinnerModelAdapterTests.this.spinnerModelAdapter, e.getSource());
-			}
-		});
-		assertEquals(new Integer(0), this.spinnerModelAdapter.getValue());
-		this.valueHolder.setValue(new Integer(7));
-		assertTrue(this.eventFired);
-		assertEquals(new Integer(7), this.spinnerModelAdapter.getValue());
-	}
-
-	public void testHasListeners() throws Exception {
-		SimplePropertyValueModel<Object> localValueHolder = (SimplePropertyValueModel<Object>) this.valueHolder;
-		assertFalse(localValueHolder.hasAnyPropertyChangeListeners(PropertyValueModel.VALUE));
-		this.verifyHasNoListeners(this.spinnerModelAdapter);
-
-		ChangeListener listener = new TestChangeListener();
-		this.spinnerModelAdapter.addChangeListener(listener);
-		assertTrue(localValueHolder.hasAnyPropertyChangeListeners(PropertyValueModel.VALUE));
-		this.verifyHasListeners(this.spinnerModelAdapter);
-
-		this.spinnerModelAdapter.removeChangeListener(listener);
-		assertFalse(localValueHolder.hasAnyPropertyChangeListeners(PropertyValueModel.VALUE));
-		this.verifyHasNoListeners(this.spinnerModelAdapter);
-	}
-
-	private void verifyHasNoListeners(Object adapter) throws Exception {
-		Object delegate = ClassTools.fieldValue(adapter, "delegate");
-		Object[] listeners = (Object[]) ClassTools.executeMethod(delegate, "getChangeListeners");
-		assertEquals(0, listeners.length);
-	}
-
-	private void verifyHasListeners(Object adapter) throws Exception {
-		Object delegate = ClassTools.fieldValue(adapter, "delegate");
-		Object[] listeners = (Object[]) ClassTools.executeMethod(delegate, "getChangeListeners");
-		assertFalse(listeners.length == 0);
-	}
-
-
-	private class TestChangeListener implements ChangeListener {
-		TestChangeListener() {
-			super();
-		}
-		public void stateChanged(ChangeEvent e) {
-			fail("unexpected event");
-		}
-	}
-
-}
diff --git a/jpa/tests/org.eclipse.jpt.utility.tests/src/org/eclipse/jpt/utility/tests/internal/model/value/swing/SpinnerModelAdapterUITest.java b/jpa/tests/org.eclipse.jpt.utility.tests/src/org/eclipse/jpt/utility/tests/internal/model/value/swing/SpinnerModelAdapterUITest.java
deleted file mode 100644
index b622de1..0000000
--- a/jpa/tests/org.eclipse.jpt.utility.tests/src/org/eclipse/jpt/utility/tests/internal/model/value/swing/SpinnerModelAdapterUITest.java
+++ /dev/null
@@ -1,341 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2008 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.utility.tests.internal.model.value.swing;
-
-import java.awt.BorderLayout;
-import java.awt.Component;
-import java.awt.GridLayout;
-import java.awt.event.ActionEvent;
-import java.awt.event.WindowAdapter;
-import java.awt.event.WindowEvent;
-import java.awt.event.WindowListener;
-import java.util.Calendar;
-import java.util.Date;
-import javax.swing.AbstractAction;
-import javax.swing.Action;
-import javax.swing.JButton;
-import javax.swing.JFrame;
-import javax.swing.JPanel;
-import javax.swing.JSpinner;
-import javax.swing.SpinnerModel;
-import javax.swing.WindowConstants;
-import org.eclipse.jpt.utility.internal.CollectionTools;
-import org.eclipse.jpt.utility.internal.model.AbstractModel;
-import org.eclipse.jpt.utility.internal.model.value.PropertyAspectAdapter;
-import org.eclipse.jpt.utility.internal.model.value.SimplePropertyValueModel;
-import org.eclipse.jpt.utility.internal.model.value.swing.DateSpinnerModelAdapter;
-import org.eclipse.jpt.utility.internal.model.value.swing.ListSpinnerModelAdapter;
-import org.eclipse.jpt.utility.internal.model.value.swing.NumberSpinnerModelAdapter;
-import org.eclipse.jpt.utility.model.value.PropertyValueModel;
-import org.eclipse.jpt.utility.model.value.WritablePropertyValueModel;
-
-/**
- * Play around with a set of spinners.
- */
-public class SpinnerModelAdapterUITest {
-
-	private TestModel testModel;
-	private WritablePropertyValueModel<TestModel> testModelHolder;
-
-	private WritablePropertyValueModel<Object> birthDateHolder;
-	private SpinnerModel birthDateSpinnerModel;
-
-	private WritablePropertyValueModel<Number> ageHolder;
-	private SpinnerModel ageSpinnerModel;
-
-	private WritablePropertyValueModel<Object> eyeColorHolder;
-	private SpinnerModel eyeColorSpinnerModel;
-
-
-	public static void main(String[] args) throws Exception {
-		new SpinnerModelAdapterUITest().exec(args);
-	}
-
-	private SpinnerModelAdapterUITest() {
-		super();
-	}
-
-	private void exec(String[] args) throws Exception {
-		this.testModel = new TestModel();
-		this.testModelHolder = new SimplePropertyValueModel<TestModel>(this.testModel);
-
-		this.birthDateHolder = this.buildBirthDateHolder(this.testModelHolder);
-		this.birthDateSpinnerModel = this.buildBirthDateSpinnerModel(this.birthDateHolder);
-
-		this.ageHolder = this.buildAgeHolder(this.testModelHolder);
-		this.ageSpinnerModel = this.buildAgeSpinnerModel(this.ageHolder);
-
-		this.eyeColorHolder = this.buildEyeColorHolder(this.testModelHolder);
-		this.eyeColorSpinnerModel = this.buildEyeColorSpinnerModel(this.eyeColorHolder);
-
-		this.openWindow();
-	}
-
-	private WritablePropertyValueModel<Object> buildBirthDateHolder(PropertyValueModel<TestModel> vm) {
-		return new PropertyAspectAdapter<TestModel, Object>(vm, TestModel.BIRTH_DATE_PROPERTY) {
-			@Override
-			protected Object buildValue_() {
-				return this.subject.getBirthDate();
-			}
-			@Override
-			protected void setValue_(Object value) {
-				this.subject.setBirthDate((Date) value);
-			}
-		};
-	}
-
-	private SpinnerModel buildBirthDateSpinnerModel(WritablePropertyValueModel<Object> valueHolder) {
-		return new DateSpinnerModelAdapter(valueHolder);
-	}
-
-	private WritablePropertyValueModel<Number> buildAgeHolder(PropertyValueModel<TestModel> vm) {
-		return new PropertyAspectAdapter<TestModel, Number>(vm, TestModel.AGE_PROPERTY) {
-			@Override
-			protected Number buildValue_() {
-				return new Integer(this.subject.getAge());
-			}
-			@Override
-			protected void setValue_(Number value) {
-				this.subject.setAge(value.intValue());
-			}
-		};
-	}
-
-	private SpinnerModel buildAgeSpinnerModel(WritablePropertyValueModel<Number> valueHolder) {
-		return new NumberSpinnerModelAdapter(valueHolder, valueHolder.getValue().intValue(), TestModel.MIN_AGE, TestModel.MAX_AGE, 1);
-	}
-
-	private WritablePropertyValueModel<Object> buildEyeColorHolder(PropertyValueModel<TestModel> vm) {
-		return new PropertyAspectAdapter<TestModel, Object>(vm, TestModel.EYE_COLOR_PROPERTY) {
-			@Override
-			protected Object buildValue_() {
-				return this.subject.getEyeColor();
-			}
-			@Override
-			protected void setValue_(Object value) {
-				this.subject.setEyeColor((String) value);
-			}
-		};
-	}
-
-	private SpinnerModel buildEyeColorSpinnerModel(WritablePropertyValueModel<Object> valueHolder) {
-		return new ListSpinnerModelAdapter(valueHolder, TestModel.VALID_EYE_COLORS);
-	}
-
-	private void openWindow() {
-		JFrame window = new JFrame(this.getClass().getName());
-		window.setDefaultCloseOperation(WindowConstants.DO_NOTHING_ON_CLOSE);
-		window.addWindowListener(this.buildWindowListener());
-		window.getContentPane().add(this.buildMainPanel(), "Center");
-		window.setSize(600, 100);
-		window.setVisible(true);
-	}
-
-	private WindowListener buildWindowListener() {
-		return new WindowAdapter() {
-			@Override
-			public void windowClosing(WindowEvent e) {
-				e.getWindow().setVisible(false);
-				System.exit(0);
-			}
-		};
-	}
-
-	private Component buildMainPanel() {
-		JPanel mainPanel = new JPanel(new BorderLayout());
-		mainPanel.add(this.buildSpinnerPanel(), BorderLayout.NORTH);
-		mainPanel.add(this.buildControlPanel(), BorderLayout.SOUTH);
-		return mainPanel;
-	}
-
-	private Component buildSpinnerPanel() {
-		JPanel taskListPanel = new JPanel(new GridLayout(1, 0));
-		taskListPanel.add(this.buildBirthDateSpinner());
-		taskListPanel.add(this.buildAgeSpinner());
-		taskListPanel.add(this.buildEyeColorSpinner());
-		return taskListPanel;
-	}
-
-	private JSpinner buildBirthDateSpinner() {
-		return new JSpinner(this.birthDateSpinnerModel);
-	}
-
-	private JSpinner buildAgeSpinner() {
-		return new JSpinner(this.ageSpinnerModel);
-	}
-
-	private JSpinner buildEyeColorSpinner() {
-		return new JSpinner(this.eyeColorSpinnerModel);
-	}
-
-	private Component buildControlPanel() {
-		JPanel controlPanel = new JPanel(new GridLayout(1, 0));
-		controlPanel.add(this.buildResetModelButton());
-		controlPanel.add(this.buildClearModelButton());
-		controlPanel.add(this.buildRestoreModelButton());
-		controlPanel.add(this.buildPrintModelButton());
-		return controlPanel;
-	}
-
-	private JButton buildResetModelButton() {
-		return new JButton(this.buildResetModelAction());
-	}
-
-	private Action buildResetModelAction() {
-		Action action = new AbstractAction("reset model") {
-			public void actionPerformed(ActionEvent event) {
-				SpinnerModelAdapterUITest.this.resetModel();
-			}
-		};
-		action.setEnabled(true);
-		return action;
-	}
-
-	void resetModel() {
-		this.testModel.setBirthDate(TestModel.DEFAULT_BIRTH_DATE);
-		this.testModel.setEyeColor(TestModel.DEFAULT_EYE_COLOR);
-	}
-
-	private JButton buildClearModelButton() {
-		return new JButton(this.buildClearModelAction());
-	}
-
-	private Action buildClearModelAction() {
-		Action action = new AbstractAction("clear model") {
-			public void actionPerformed(ActionEvent event) {
-				SpinnerModelAdapterUITest.this.clearModel();
-			}
-		};
-		action.setEnabled(true);
-		return action;
-	}
-
-	void clearModel() {
-		this.testModelHolder.setValue(null);
-	}
-
-	private JButton buildRestoreModelButton() {
-		return new JButton(this.buildRestoreModelAction());
-	}
-
-	private Action buildRestoreModelAction() {
-		Action action = new AbstractAction("restore model") {
-			public void actionPerformed(ActionEvent event) {
-				SpinnerModelAdapterUITest.this.restoreModel();
-			}
-		};
-		action.setEnabled(true);
-		return action;
-	}
-
-	void restoreModel() {
-		this.testModelHolder.setValue(this.testModel);
-	}
-
-	private JButton buildPrintModelButton() {
-		return new JButton(this.buildPrintModelAction());
-	}
-
-	private Action buildPrintModelAction() {
-		Action action = new AbstractAction("print model") {
-			public void actionPerformed(ActionEvent event) {
-				SpinnerModelAdapterUITest.this.printModel();
-			}
-		};
-		action.setEnabled(true);
-		return action;
-	}
-
-	void printModel() {
-		System.out.println("birth date: " + this.testModel.getBirthDate());
-		System.out.println("age: " + this.testModel.getAge());
-		System.out.println("eyes: " + this.testModel.getEyeColor());
-	}
-
-
-	private static class TestModel extends AbstractModel {
-		private Calendar birthCal = Calendar.getInstance();
-			// "virtual" properties
-			public static final String BIRTH_DATE_PROPERTY = "birthDate";
-			public static final String AGE_PROPERTY = "age";
-			public static final Date DEFAULT_BIRTH_DATE = new Date();
-			public static final int DEFAULT_AGE = 0;
-			public static final int MIN_AGE = 0;
-			public static final int MAX_AGE = 150;
-		private String eyeColor;
-			public static final String EYE_COLOR_PROPERTY = "eyeColor";
-			public static final String[] VALID_EYE_COLORS = {"blue", "brown", "green", "hazel", "pink"};
-			public static final String DEFAULT_EYE_COLOR = VALID_EYE_COLORS[3];
-	
-		public TestModel() {
-			this(DEFAULT_BIRTH_DATE, DEFAULT_EYE_COLOR);
-		}
-		public TestModel(Date birthDate, String eyeColor) {
-			this.setBirthDate(birthDate);
-			this.setEyeColor(eyeColor);
-		}
-		public Date getBirthDate() {
-			return (Date) this.birthCal.getTime().clone();
-		}
-		public void setBirthDate(Date birthDate) {
-			Date oldBirthDate = this.getBirthDate();
-			int oldAge = this.getAge();
-			this.birthCal.setTimeInMillis(birthDate.getTime());
-			int newAge = this.getAge();
-			if (newAge < MIN_AGE || newAge > MAX_AGE) {
-				throw new IllegalArgumentException(birthDate.toString());
-			}
-			this.firePropertyChanged(BIRTH_DATE_PROPERTY, oldBirthDate, this.getBirthDate());
-			this.firePropertyChanged(AGE_PROPERTY, oldAge, newAge);
-		}
-		public int getAge() {
-			Calendar currentCal = Calendar.getInstance();
-			int age = currentCal.get(Calendar.YEAR) - this.birthCal.get(Calendar.YEAR);
-			if (currentCal.get(Calendar.MONTH) < this.birthCal.get(Calendar.MONTH)) {
-				age--;
-			} else if (currentCal.get(Calendar.MONTH) == this.birthCal.get(Calendar.MONTH)) {
-				if (currentCal.get(Calendar.DAY_OF_MONTH) < this.birthCal.get(Calendar.DAY_OF_MONTH)) {
-					age--;
-				}
-			}
-			return age;
-		}
-		public void setAge(int newAge) {
-			if (newAge < MIN_AGE || newAge > MAX_AGE) {
-				throw new IllegalArgumentException(String.valueOf(newAge));
-			}
-	
-			int oldAge = this.getAge();
-			int delta = newAge - oldAge;
-	
-			Calendar newBirthCal = Calendar.getInstance();
-			newBirthCal.setTimeInMillis(this.birthCal.getTime().getTime());
-			// if the age increased, the birth date must be "decreased"; and vice versa
-			newBirthCal.set(Calendar.YEAR, newBirthCal.get(Calendar.YEAR) - delta);
-			this.setBirthDate(newBirthCal.getTime());
-		}
-		public String getEyeColor() {
-			return this.eyeColor;
-		}
-		public void setEyeColor(String eyeColor) {
-			if ( ! CollectionTools.contains(VALID_EYE_COLORS, eyeColor)) {
-				throw new IllegalArgumentException(eyeColor);
-			}
-			Object old = this.eyeColor;
-			this.eyeColor = eyeColor;
-			this.firePropertyChanged(EYE_COLOR_PROPERTY, old, eyeColor);
-		}
-		@Override
-		public String toString() {
-			return "TestModel(birth: " + this.getBirthDate() + " - eyes: " + this.eyeColor + ")";
-		}
-	}
-
-}
diff --git a/jpa/tests/org.eclipse.jpt.utility.tests/src/org/eclipse/jpt/utility/tests/internal/model/value/swing/TableModelAdapterTests.java b/jpa/tests/org.eclipse.jpt.utility.tests/src/org/eclipse/jpt/utility/tests/internal/model/value/swing/TableModelAdapterTests.java
deleted file mode 100644
index c08467d..0000000
--- a/jpa/tests/org.eclipse.jpt.utility.tests/src/org/eclipse/jpt/utility/tests/internal/model/value/swing/TableModelAdapterTests.java
+++ /dev/null
@@ -1,643 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2008 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.utility.tests.internal.model.value.swing;
-
-import java.text.DateFormat;
-import java.util.ArrayList;
-import java.util.Calendar;
-import java.util.Collection;
-import java.util.Date;
-import java.util.Iterator;
-import java.util.List;
-import javax.swing.event.TableModelEvent;
-import javax.swing.event.TableModelListener;
-import junit.framework.TestCase;
-import org.eclipse.jpt.utility.internal.CollectionTools;
-import org.eclipse.jpt.utility.internal.StringTools;
-import org.eclipse.jpt.utility.internal.iterators.CloneIterator;
-import org.eclipse.jpt.utility.internal.iterators.TransformationIterator;
-import org.eclipse.jpt.utility.internal.model.AbstractModel;
-import org.eclipse.jpt.utility.internal.model.value.CollectionAspectAdapter;
-import org.eclipse.jpt.utility.internal.model.value.PropertyAspectAdapter;
-import org.eclipse.jpt.utility.internal.model.value.SortedListValueModelAdapter;
-import org.eclipse.jpt.utility.internal.model.value.swing.ColumnAdapter;
-import org.eclipse.jpt.utility.internal.model.value.swing.TableModelAdapter;
-import org.eclipse.jpt.utility.model.listener.ListChangeListener;
-import org.eclipse.jpt.utility.model.listener.PropertyChangeListener;
-import org.eclipse.jpt.utility.model.value.CollectionValueModel;
-import org.eclipse.jpt.utility.model.value.ListValueModel;
-import org.eclipse.jpt.utility.model.value.WritablePropertyValueModel;
-import org.eclipse.jpt.utility.tests.internal.TestTools;
-
-/**
- * 
- */
-public class TableModelAdapterTests extends TestCase {
-	private Crowd crowd;
-	TableModelEvent event;
-
-	public TableModelAdapterTests(String name) {
-		super(name);
-	}
-
-	@Override
-	protected void setUp() throws Exception {
-		super.setUp();
-		this.crowd = this.buildCrowd();
-	}
-
-	@Override
-	protected void tearDown() throws Exception {
-		TestTools.clear(this);
-		super.tearDown();
-	}
-
-	public void testGetRowCount() throws Exception {
-		TableModelAdapter<Person> tableModelAdapter =  this.buildTableModelAdapter();
-		assertEquals(0, tableModelAdapter.getRowCount());
-		// we need to add a listener to wake up the adapter
-		tableModelAdapter.addTableModelListener(this.buildTableModelListener());
-		assertEquals(this.crowd.peopleSize(), tableModelAdapter.getRowCount());
-	}
-
-	public void testGetColumnCount() throws Exception {
-		TableModelAdapter<Person> tableModelAdapter =  this.buildTableModelAdapter();
-		assertEquals(PersonColumnAdapter.COLUMN_COUNT, tableModelAdapter.getColumnCount());
-	}
-
-	public void testGetValueAt() throws Exception {
-		TableModelAdapter<Person> tableModelAdapter =  this.buildTableModelAdapter();
-		tableModelAdapter.addTableModelListener(this.buildTableModelListener());
-
-		List<String> sortedNames = this.sortedNames();
-		for (int i = 0; i < this.crowd.peopleSize(); i++) {
-			assertEquals(sortedNames.get(i), tableModelAdapter.getValueAt(i, PersonColumnAdapter.NAME_COLUMN));
-		}
-	}
-
-	public void testSetValueAt() throws Exception {
-		TableModelAdapter<Person> tableModelAdapter =  this.buildTableModelAdapter();
-		this.event = null;
-		tableModelAdapter.addTableModelListener(new TestTableModelListener() {
-			@Override
-			public void tableChanged(TableModelEvent e) {
-				TableModelAdapterTests.this.event = e;
-			}
-		});
-
-		Person person = this.crowd.personNamed("Gollum");
-		assertEquals(Person.EYE_COLOR_BLUE, person.getEyeColor());
-		assertFalse(person.isEvil());
-		assertEquals(0, person.getRank());
-
-		for (int i = 0; i < tableModelAdapter.getRowCount(); i++) {
-			if (tableModelAdapter.getValueAt(i, PersonColumnAdapter.NAME_COLUMN).equals("Gollum")) {
-				tableModelAdapter.setValueAt(Person.EYE_COLOR_HAZEL, i, PersonColumnAdapter.EYE_COLOR_COLUMN);
-				tableModelAdapter.setValueAt(Boolean.TRUE, i, PersonColumnAdapter.EVIL_COLUMN);
-				tableModelAdapter.setValueAt(new Integer(-1), i, PersonColumnAdapter.RANK_COLUMN);
-				break;
-			}
-		}
-		assertNotNull(this.event);
-		assertEquals(Person.EYE_COLOR_HAZEL, person.getEyeColor());
-		assertTrue(person.isEvil());
-		assertEquals(-1, person.getRank());
-	}
-
-	public void testAddRow() throws Exception {
-		TableModelAdapter<Person> tableModelAdapter =  this.buildTableModelAdapter();
-		this.event = null;
-		tableModelAdapter.addTableModelListener(this.buildSingleEventListener());
-		// add a person to the end of the list so we only trigger one event
-		this.crowd.addPerson("Zzzzz");
-		assertNotNull(this.event);
-		assertEquals(TableModelEvent.INSERT, this.event.getType());
-		assertEquals(TableModelEvent.ALL_COLUMNS, this.event.getColumn());
-	}
-
-	public void testRemoveRow() throws Exception {
-		TableModelAdapter<Person> tableModelAdapter =  this.buildTableModelAdapter();
-		this.event = null;
-		tableModelAdapter.addTableModelListener(this.buildSingleEventListener());
-		// removing a person should only trigger one event, since a re-sort is not needed
-		this.crowd.removePerson(this.crowd.personNamed("Gollum"));
-		assertNotNull(this.event);
-		assertEquals(TableModelEvent.DELETE, this.event.getType());
-		assertEquals(TableModelEvent.ALL_COLUMNS, this.event.getColumn());
-	}
-
-	public void testChangeCell() throws Exception {
-		TableModelAdapter<Person> tableModelAdapter =  this.buildTableModelAdapter();
-		this.event = null;
-		tableModelAdapter.addTableModelListener(this.buildSingleEventListener());
-		// add a person to the end of the list so we only trigger one event
-		Person person = this.crowd.personNamed("Gollum");
-		person.setEvil(true);
-		assertNotNull(this.event);
-		assertEquals(TableModelEvent.UPDATE, this.event.getType());
-		assertEquals(PersonColumnAdapter.EVIL_COLUMN, this.event.getColumn());
-	}
-
-	public void testLazyListListener() throws Exception {
-		TableModelAdapter<Person> tableModelAdapter =  this.buildTableModelAdapter();
-		TableModelListener listener = this.buildTableModelListener();
-		assertTrue(this.crowd.hasNoCollectionChangeListeners(Crowd.PEOPLE_COLLECTION));
-		tableModelAdapter.addTableModelListener(listener);
-		assertTrue(this.crowd.hasAnyCollectionChangeListeners(Crowd.PEOPLE_COLLECTION));
-		tableModelAdapter.removeTableModelListener(listener);
-		assertTrue(this.crowd.hasNoCollectionChangeListeners(Crowd.PEOPLE_COLLECTION));
-	}
-
-	public void testLazyCellListener() throws Exception {
-		TableModelAdapter<Person> tableModelAdapter =  this.buildTableModelAdapter();
-		TableModelListener listener = this.buildTableModelListener();
-		Person person = this.crowd.personNamed("Gollum");
-		assertTrue(person.hasNoPropertyChangeListeners(Person.NAME_PROPERTY));
-		assertTrue(person.hasNoPropertyChangeListeners(Person.BIRTH_DATE_PROPERTY));
-		assertTrue(person.hasNoPropertyChangeListeners(Person.EYE_COLOR_PROPERTY));
-		assertTrue(person.hasNoPropertyChangeListeners(Person.EVIL_PROPERTY));
-		assertTrue(person.hasNoPropertyChangeListeners(Person.RANK_PROPERTY));
-
-		tableModelAdapter.addTableModelListener(listener);
-		assertTrue(person.hasAnyPropertyChangeListeners(Person.NAME_PROPERTY));
-		assertTrue(person.hasAnyPropertyChangeListeners(Person.BIRTH_DATE_PROPERTY));
-		assertTrue(person.hasAnyPropertyChangeListeners(Person.EYE_COLOR_PROPERTY));
-		assertTrue(person.hasAnyPropertyChangeListeners(Person.EVIL_PROPERTY));
-		assertTrue(person.hasAnyPropertyChangeListeners(Person.RANK_PROPERTY));
-
-		tableModelAdapter.removeTableModelListener(listener);
-		assertTrue(person.hasNoPropertyChangeListeners(Person.NAME_PROPERTY));
-		assertTrue(person.hasNoPropertyChangeListeners(Person.BIRTH_DATE_PROPERTY));
-		assertTrue(person.hasNoPropertyChangeListeners(Person.EYE_COLOR_PROPERTY));
-		assertTrue(person.hasNoPropertyChangeListeners(Person.EVIL_PROPERTY));
-		assertTrue(person.hasNoPropertyChangeListeners(Person.RANK_PROPERTY));
-	}
-
-	private TableModelAdapter<Person> buildTableModelAdapter() {
-		return new TableModelAdapter<Person>(this.buildSortedPeopleAdapter(), this.buildColumnAdapter()) {
-			@Override
-			protected PropertyChangeListener buildCellListener() {
-				return this.buildCellListener_();
-			}
-			@Override
-			protected ListChangeListener buildListChangeListener() {
-				return this.buildListChangeListener_();
-			}
-		};
-	}
-
-	private ListValueModel<Person> buildSortedPeopleAdapter() {
-		return new SortedListValueModelAdapter<Person>(this.buildPeopleAdapter());
-	}
-
-	private CollectionValueModel<Person> buildPeopleAdapter() {
-		return new CollectionAspectAdapter<Crowd, Person>(Crowd.PEOPLE_COLLECTION, this.crowd) {
-			@Override
-			protected Iterator<Person> iterator_() {
-				return this.subject.people();
-			}
-			@Override
-			protected int size_() {
-				return this.subject.peopleSize();
-			}
-		};
-	}
-
-	private Crowd buildCrowd() {
-		Crowd result = new Crowd();
-		result.addPerson("Bilbo");
-		result.addPerson("Gollum");
-		result.addPerson("Frodo");
-		result.addPerson("Samwise");
-		return result;
-	}
-
-	private ColumnAdapter buildColumnAdapter() {
-		return new PersonColumnAdapter();
-	}
-
-	private TableModelListener buildTableModelListener() {
-		return new TestTableModelListener();
-	}
-
-	private List<String> sortedNames() {
-		return new ArrayList<String>(CollectionTools.sortedSet(this.crowd.peopleNames()));
-	}
-
-	private TableModelListener buildSingleEventListener() {
-		return new TestTableModelListener() {
-			@Override
-			public void tableChanged(TableModelEvent e) {
-				// we expect only a single event
-				if (TableModelAdapterTests.this.event == null) {
-					TableModelAdapterTests.this.event = e;
-				} else {
-					fail("unexpected event");
-				}
-			}
-		};
-	}
-
-
-	// ********** classes **********
-
-	public static class PersonColumnAdapter implements ColumnAdapter {
-		public static final int COLUMN_COUNT = 7;
-	
-		public static final int NAME_COLUMN = 0;
-		public static final int BIRTH_DATE_COLUMN = 1;
-		public static final int GONE_WEST_DATE_COLUMN = 2;
-		public static final int EYE_COLOR_COLUMN = 3;
-		public static final int EVIL_COLUMN = 4;
-		public static final int RANK_COLUMN = 5;
-		public static final int ADVENTURE_COUNT_COLUMN = 6;
-	
-		private static final String[] COLUMN_NAMES = new String[] {
-			"Name",
-			"Birth",
-			"Gone West",
-			"Eyes",
-			"Evil",
-			"Rank",
-			"Adventures"
-		};
-	
-	
-		public int columnCount() {
-			return COLUMN_COUNT;
-		}
-	
-		public String columnName(int index) {
-			return COLUMN_NAMES[index];
-		}
-	
-		public Class<?> columnClass(int index) {
-			switch (index) {
-				case NAME_COLUMN:					return Object.class;
-				case BIRTH_DATE_COLUMN:			return Date.class;
-				case GONE_WEST_DATE_COLUMN:	return Date.class;
-				case EYE_COLOR_COLUMN:			return Object.class;
-				case EVIL_COLUMN:					return Boolean.class;
-				case RANK_COLUMN:					return Integer.class;
-				case ADVENTURE_COUNT_COLUMN:return Integer.class;
-				default: 									return Object.class;
-			}
-		}
-	
-		public boolean columnIsEditable(int index) {
-			return index != NAME_COLUMN;
-		}
-	
-		public WritablePropertyValueModel<Object>[] cellModels(Object subject) {
-			Person person = (Person) subject;
-			@SuppressWarnings("unchecked")
-			WritablePropertyValueModel<Object>[] result = new WritablePropertyValueModel[COLUMN_COUNT];
-	
-			result[NAME_COLUMN] = this.buildNameAdapter(person);
-			result[BIRTH_DATE_COLUMN] = this.buildBirthDateAdapter(person);
-			result[GONE_WEST_DATE_COLUMN] = this.buildGoneWestDateAdapter(person);
-			result[EYE_COLOR_COLUMN] = this.buildEyeColorAdapter(person);
-			result[EVIL_COLUMN] = this.buildEvilAdapter(person);
-			result[RANK_COLUMN] = this.buildRankAdapter(person);
-			result[ADVENTURE_COUNT_COLUMN] = this.buildAdventureCountAdapter(person);
-	
-			return result;
-		}
-	
-		private WritablePropertyValueModel<Object> buildNameAdapter(Person person) {
-			return new PropertyAspectAdapter<Person, Object>(Person.NAME_PROPERTY, person) {
-				@Override
-				protected String buildValue_() {
-					return this.subject.getName();
-				}
-				@Override
-				protected void setValue_(Object value) {
-					this.subject.setName((String) value);
-				}
-			};
-		}
-	
-		private WritablePropertyValueModel<Object> buildBirthDateAdapter(Person person) {
-			return new PropertyAspectAdapter<Person, Object>(Person.BIRTH_DATE_PROPERTY, person) {
-				@Override
-				protected Date buildValue_() {
-					return this.subject.getBirthDate();
-				}
-				@Override
-				protected void setValue_(Object value) {
-					this.subject.setBirthDate((Date) value);
-				}
-			};
-		}
-	
-		private WritablePropertyValueModel<Object> buildGoneWestDateAdapter(Person person) {
-			return new PropertyAspectAdapter<Person, Object>(Person.GONE_WEST_DATE_PROPERTY, person) {
-				@Override
-				protected Date buildValue_() {
-					return this.subject.getGoneWestDate();
-				}
-				@Override
-				protected void setValue_(Object value) {
-					this.subject.setGoneWestDate((Date) value);
-				}
-			};
-		}
-	
-		private WritablePropertyValueModel<Object> buildEyeColorAdapter(Person person) {
-			return new PropertyAspectAdapter<Person, Object>(Person.EYE_COLOR_PROPERTY, person) {
-				@Override
-				protected String buildValue_() {
-					return this.subject.getEyeColor();
-				}
-				@Override
-				protected void setValue_(Object value) {
-					this.subject.setEyeColor((String) value);
-				}
-			};
-		}
-	
-		private WritablePropertyValueModel<Object> buildEvilAdapter(Person person) {
-			return new PropertyAspectAdapter<Person, Object>(Person.EVIL_PROPERTY, person) {
-				@Override
-				protected Boolean buildValue_() {
-					return Boolean.valueOf(this.subject.isEvil());
-				}
-				@Override
-				protected void setValue_(Object value) {
-					this.subject.setEvil(((Boolean)value).booleanValue());
-				}
-			};
-		}
-	
-		private WritablePropertyValueModel<Object> buildRankAdapter(Person person) {
-			return new PropertyAspectAdapter<Person, Object>(Person.RANK_PROPERTY, person) {
-				@Override
-				protected Integer buildValue_() {
-					return new Integer(this.subject.getRank());
-				}
-				@Override
-				protected void setValue_(Object value) {
-					this.subject.setRank(((Integer) value).intValue());
-				}
-			};
-		}
-	
-		private WritablePropertyValueModel<Object> buildAdventureCountAdapter(Person person) {
-			return new PropertyAspectAdapter<Person, Object>(Person.ADVENTURE_COUNT_PROPERTY, person) {
-				@Override
-				protected Integer buildValue_() {
-					return new Integer(this.subject.getAdventureCount());
-				}
-				@Override
-				protected void setValue_(Object value) {
-					this.subject.setAdventureCount(((Integer) value).intValue());
-				}
-			};
-		}
-	
-	}
-
-
-	public static class Crowd extends AbstractModel {
-		private final Collection<Person> people;
-			public static final String PEOPLE_COLLECTION = "people";
-	
-		public Crowd() {
-			super();
-			this.people = new ArrayList<Person>();
-		}
-	
-	
-		public Iterator<Person> people() {
-			return new CloneIterator<Person>(this.people) {
-				@Override
-				protected void remove(Person person) {
-					Crowd.this.removePerson(person);
-				}
-			};
-		}
-	
-		public int peopleSize() {
-			return this.people.size();
-		}
-	
-		public Person addPerson(String name) {
-			this.checkPersonName(name);
-			return this.addPerson(new Person(this, name));
-		}
-	
-		private Person addPerson(Person person) {
-			this.addItemToCollection(person, this.people, PEOPLE_COLLECTION);
-			return person;
-		}
-	
-		public void removePerson(Person person) {
-			this.removeItemFromCollection(person, this.people, PEOPLE_COLLECTION);
-		}
-	
-		public void removePeople(Collection<Person> persons) {
-			this.removeItemsFromCollection(persons, this.people, PEOPLE_COLLECTION);
-		}
-	
-		public void removePeople(Iterator<Person> persons) {
-			this.removeItemsFromCollection(persons, this.people, PEOPLE_COLLECTION);
-		}
-	
-		void checkPersonName(String personName) {
-			if (personName == null) {
-				throw new NullPointerException();
-			}
-			if (CollectionTools.contains(this.peopleNames(), personName)) {
-				throw new IllegalArgumentException(personName);
-			}
-		}
-	
-		public Iterator<String> peopleNames() {
-			return new TransformationIterator<Person, String>(this.people.iterator()) {
-				@Override
-				protected String transform(Person person) {
-					return person.getName();
-				}
-			};
-		}
-	
-		public Person personNamed(String name) {
-			for (Iterator<Person> stream = this.people.iterator(); stream.hasNext(); ) {
-				Person person = stream.next();
-				if (person.getName().equals(name)) {
-					return person;
-				}
-			}
-			return null;
-		}
-	
-		@Override
-		public String toString() {
-			return StringTools.buildToStringFor(this, String.valueOf(this.people.size()) + " people");
-		}
-	
-	}
-	
-	
-	public static class Person extends AbstractModel implements Comparable<Person> {
-		private Crowd crowd;
-		private String name;
-			public static final String NAME_PROPERTY= "name";
-		private Date birthDate;
-			public static final String BIRTH_DATE_PROPERTY= "birthDate";
-		private Date goneWestDate;
-			public static final String GONE_WEST_DATE_PROPERTY= "goneWestDate";
-		private String eyeColor;
-			public static final String EYE_COLOR_PROPERTY= "eyeColor";
-			public static final String EYE_COLOR_BLUE = "blue";
-			public static final String EYE_COLOR_GREEN = "green";
-			public static final String EYE_COLOR_BROWN = "brown";
-			public static final String EYE_COLOR_HAZEL = "hazel";
-			public static final String EYE_COLOR_PINK = "pink";
-			private static Collection<String> validEyeColors;
-			public static final String DEFAULT_EYE_COLOR = EYE_COLOR_BLUE;
-		private boolean evil;
-			public static final String EVIL_PROPERTY= "evil";
-		private int rank;
-			public static final String RANK_PROPERTY= "rank";
-		private int adventureCount;
-			public static final String ADVENTURE_COUNT_PROPERTY= "adventureCount";
-	
-		Person(Crowd crowd, String name) {
-			super();
-			this.crowd = crowd;
-			this.name = name;
-			this.birthDate = new Date();
-			Calendar c = Calendar.getInstance();
-			c.add(Calendar.YEAR, 250);
-			this.goneWestDate = new Date(c.getTimeInMillis());
-			this.eyeColor = DEFAULT_EYE_COLOR;
-			this.evil = false;
-			this.rank = 0;
-			this.adventureCount = 0;
-		}
-	
-		public static Collection<String> getValidEyeColors() {
-			if (validEyeColors == null) {
-				validEyeColors = buildValidEyeColors();
-			}
-			return validEyeColors;
-		}
-	
-		private static Collection<String> buildValidEyeColors() {
-			Collection<String> result = new ArrayList<String>();
-			result.add(EYE_COLOR_BLUE);
-			result.add(EYE_COLOR_GREEN);
-			result.add(EYE_COLOR_BROWN);
-			result.add(EYE_COLOR_HAZEL);
-			result.add(EYE_COLOR_PINK);
-			return result;
-		}
-	
-		public Crowd getCrowd() {
-			return this.crowd;
-		}
-	
-		public String getName() {
-			return this.name;
-		}
-		public void setName(String name) {
-			this.crowd.checkPersonName(name);
-			Object old = this.name;
-			this.name = name;
-			this.firePropertyChanged(NAME_PROPERTY, old, name);
-		}
-	
-		public Date getBirthDate() {
-			return this.birthDate;
-		}
-		public void setBirthDate(Date birthDate) {
-			Object old = this.birthDate;
-			this.birthDate = birthDate;
-			this.firePropertyChanged(BIRTH_DATE_PROPERTY, old, birthDate);
-		}
-	
-		public Date getGoneWestDate() {
-			return this.goneWestDate;
-		}
-		public void setGoneWestDate(Date goneWestDate) {
-			Object old = this.goneWestDate;
-			this.goneWestDate = goneWestDate;
-			this.firePropertyChanged(GONE_WEST_DATE_PROPERTY, old, goneWestDate);
-		}
-	
-		public String getEyeColor() {
-			return this.eyeColor;
-		}
-		public void setEyeColor(String eyeColor) {
-			if (! getValidEyeColors().contains(eyeColor)) {
-				throw new IllegalArgumentException(eyeColor);
-			}
-			Object old = this.eyeColor;
-			this.eyeColor = eyeColor;
-			this.firePropertyChanged(EYE_COLOR_PROPERTY, old, eyeColor);
-		}
-	
-		public boolean isEvil() {
-			return this.evil;
-		}
-		public void setEvil(boolean evil) {
-			boolean old = this.evil;
-			this.evil = evil;
-			this.firePropertyChanged(EVIL_PROPERTY, old, evil);
-		}
-	
-		public int getRank() {
-			return this.rank;
-		}
-		public void setRank(int rank) {
-			int old = this.rank;
-			this.rank = rank;
-			this.firePropertyChanged(RANK_PROPERTY, old, rank);
-		}
-	
-		public int getAdventureCount() {
-			return this.adventureCount;
-		}
-		public void setAdventureCount(int adventureCount) {
-			int old = this.adventureCount;
-			this.adventureCount = adventureCount;
-			this.firePropertyChanged(ADVENTURE_COUNT_PROPERTY, old, adventureCount);
-		}
-	
-		public int compareTo(Person p) {
-			return this.name.compareToIgnoreCase(p.name);
-		}
-	
-		@Override
-		public String toString() {
-			return this.name + 
-						"\tborn: " + DateFormat.getDateInstance().format(this.birthDate) + 
-						"\tgone west: " + DateFormat.getDateInstance().format(this.goneWestDate) + 
-						"\teyes: " + this.eyeColor + 
-						"\tevil: " + this.evil + 
-						"\trank: " + this.rank +
-						"\tadventures: " + this.adventureCount
-			;
-		}
-	
-	}
-
-
-	private class TestTableModelListener implements TableModelListener {
-		TestTableModelListener() {
-			super();
-		}
-		public void tableChanged(TableModelEvent e) {
-			fail("unexpected event");
-		}
-	}
-
-}
diff --git a/jpa/tests/org.eclipse.jpt.utility.tests/src/org/eclipse/jpt/utility/tests/internal/model/value/swing/TableModelAdapterUITest.java b/jpa/tests/org.eclipse.jpt.utility.tests/src/org/eclipse/jpt/utility/tests/internal/model/value/swing/TableModelAdapterUITest.java
deleted file mode 100644
index ebe3d1a..0000000
--- a/jpa/tests/org.eclipse.jpt.utility.tests/src/org/eclipse/jpt/utility/tests/internal/model/value/swing/TableModelAdapterUITest.java
+++ /dev/null
@@ -1,731 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2008 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.utility.tests.internal.model.value.swing;
-
-import java.awt.BorderLayout;
-import java.awt.Component;
-import java.awt.GridLayout;
-import java.awt.event.ActionEvent;
-import java.awt.event.WindowAdapter;
-import java.awt.event.WindowEvent;
-import java.awt.event.WindowListener;
-import java.util.ArrayList;
-import java.util.Date;
-import java.util.Iterator;
-import javax.swing.AbstractAction;
-import javax.swing.Action;
-import javax.swing.ButtonModel;
-import javax.swing.ComboBoxModel;
-import javax.swing.DefaultListCellRenderer;
-import javax.swing.JButton;
-import javax.swing.JCheckBox;
-import javax.swing.JComboBox;
-import javax.swing.JFrame;
-import javax.swing.JList;
-import javax.swing.JOptionPane;
-import javax.swing.JPanel;
-import javax.swing.JScrollPane;
-import javax.swing.JSpinner;
-import javax.swing.JTable;
-import javax.swing.JTextField;
-import javax.swing.ListCellRenderer;
-import javax.swing.ListSelectionModel;
-import javax.swing.SpinnerModel;
-import javax.swing.UIManager;
-import javax.swing.WindowConstants;
-import javax.swing.event.ListSelectionEvent;
-import javax.swing.event.ListSelectionListener;
-import javax.swing.table.TableColumn;
-import javax.swing.table.TableModel;
-import javax.swing.text.Document;
-import org.eclipse.jpt.utility.internal.ClassTools;
-import org.eclipse.jpt.utility.internal.CollectionTools;
-import org.eclipse.jpt.utility.internal.model.value.CollectionAspectAdapter;
-import org.eclipse.jpt.utility.internal.model.value.ItemPropertyListValueModelAdapter;
-import org.eclipse.jpt.utility.internal.model.value.PropertyAspectAdapter;
-import org.eclipse.jpt.utility.internal.model.value.SimpleCollectionValueModel;
-import org.eclipse.jpt.utility.internal.model.value.SimplePropertyValueModel;
-import org.eclipse.jpt.utility.internal.model.value.SortedListValueModelAdapter;
-import org.eclipse.jpt.utility.internal.model.value.swing.CheckBoxModelAdapter;
-import org.eclipse.jpt.utility.internal.model.value.swing.ColumnAdapter;
-import org.eclipse.jpt.utility.internal.model.value.swing.ComboBoxModelAdapter;
-import org.eclipse.jpt.utility.internal.model.value.swing.DateSpinnerModelAdapter;
-import org.eclipse.jpt.utility.internal.model.value.swing.DocumentAdapter;
-import org.eclipse.jpt.utility.internal.model.value.swing.ListModelAdapter;
-import org.eclipse.jpt.utility.internal.model.value.swing.NumberSpinnerModelAdapter;
-import org.eclipse.jpt.utility.internal.model.value.swing.ObjectListSelectionModel;
-import org.eclipse.jpt.utility.internal.model.value.swing.TableModelAdapter;
-import org.eclipse.jpt.utility.internal.swing.CheckBoxTableCellRenderer;
-import org.eclipse.jpt.utility.internal.swing.ComboBoxTableCellRenderer;
-import org.eclipse.jpt.utility.internal.swing.SpinnerTableCellRenderer;
-import org.eclipse.jpt.utility.internal.swing.TableCellEditorAdapter;
-import org.eclipse.jpt.utility.model.value.CollectionValueModel;
-import org.eclipse.jpt.utility.model.value.ListValueModel;
-import org.eclipse.jpt.utility.model.value.WritablePropertyValueModel;
-import org.eclipse.jpt.utility.tests.internal.model.value.swing.TableModelAdapterTests.Crowd;
-import org.eclipse.jpt.utility.tests.internal.model.value.swing.TableModelAdapterTests.Person;
-import org.eclipse.jpt.utility.tests.internal.model.value.swing.TableModelAdapterTests.PersonColumnAdapter;
-
-/**
- * an example UI for testing the TableModelAdapter
- * 	"name" column is read-only text field
- * 	"birth date" column is date text field
- * 	"gone west date" column is date spinner
- * 	"eye color" column is combo-box
- * 	"evil" column is check box
- * 	"rank" column is number text field
- * 	"adventure count" column is number spinner
- * 
- * Note that the table model and row selection model share the same
- * list value model (the sorted people adapter)
- */
-public class TableModelAdapterUITest {
-	private SimpleCollectionValueModel<Object> eyeColorsHolder;  // Object because it adapts to a combo-box
-	private WritablePropertyValueModel<Crowd> crowdHolder;
-	private WritablePropertyValueModel<Person> selectedPersonHolder;
-	private ListValueModel<Person> sortedPeopleAdapter;
-	private TableModel tableModel;
-	private ObjectListSelectionModel rowSelectionModel;
-	private Action removeAction;
-	private Action renameAction;
-
-	public static void main(String[] args) throws Exception {
-		new TableModelAdapterUITest().exec(args);
-	}
-
-	protected TableModelAdapterUITest() {
-		super();
-	}
-
-	protected void exec(String[] args) throws Exception {
-		UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName());
-		this.eyeColorsHolder = this. buildEyeColorCollectionHolder();
-		this.crowdHolder = this.buildCrowdHolder();
-		this.selectedPersonHolder = this.buildSelectedPersonHolder();
-		this.sortedPeopleAdapter = this.buildSortedPeopleAdapter();
-		this.tableModel = this.buildTableModel();
-		this.rowSelectionModel = this.buildRowSelectionModel();
-		this.openWindow();
-	}
-
-	private SimpleCollectionValueModel<Object> buildEyeColorCollectionHolder() {
-		return new SimpleCollectionValueModel<Object>(new ArrayList<Object>(Person.getValidEyeColors()));
-	}
-
-	private WritablePropertyValueModel<Crowd> buildCrowdHolder() {
-		return new SimplePropertyValueModel<Crowd>(this.buildCrowd());
-	}
-
-	private Crowd buildCrowd() {
-		Crowd crowd = new Crowd();
-
-		Person p = crowd.addPerson("Bilbo");
-		p.setEyeColor(Person.EYE_COLOR_BROWN);
-		p.setRank(22);
-		p.setAdventureCount(1);
-
-		p = crowd.addPerson("Gollum");
-		p.setEyeColor(Person.EYE_COLOR_PINK);
-		p.setEvil(true);
-		p.setRank(2);
-		p.setAdventureCount(50);
-
-		p = crowd.addPerson("Frodo");
-		p.setEyeColor(Person.EYE_COLOR_BLUE);
-		p.setRank(34);
-		p.setAdventureCount(1);
-
-		p = crowd.addPerson("Samwise");
-		p.setEyeColor(Person.EYE_COLOR_GREEN);
-		p.setRank(19);
-		p.setAdventureCount(1);
-
-		return crowd;
-	}
-
-	private WritablePropertyValueModel<Person> buildSelectedPersonHolder() {
-		return new SimplePropertyValueModel<Person>();
-	}
-
-	private ListValueModel<Person> buildSortedPeopleAdapter() {
-		return new SortedListValueModelAdapter<Person>(this.buildPeopleNameAdapter());
-	}
-
-	// the list will need to be re-sorted if a name changes
-	private ListValueModel<Person> buildPeopleNameAdapter() {
-		return new ItemPropertyListValueModelAdapter<Person>(this.buildPeopleAdapter(), Person.NAME_PROPERTY);
-	}
-
-	private CollectionValueModel<Person> buildPeopleAdapter() {
-		return new CollectionAspectAdapter<Crowd, Person>(this.crowdHolder, Crowd.PEOPLE_COLLECTION) {
-			@Override
-			protected Iterator<Person> iterator_() {
-				return this.subject.people();
-			}
-			@Override
-			protected int size_() {
-				return this.subject.peopleSize();
-			}
-		};
-	}
-
-	private TableModel buildTableModel() {
-		return new TableModelAdapter<Person>(this.sortedPeopleAdapter, this.buildColumnAdapter());
-	}
-
-	protected ColumnAdapter buildColumnAdapter() {
-		return new PersonColumnAdapter();
-	}
-
-	private ObjectListSelectionModel buildRowSelectionModel() {
-		ObjectListSelectionModel rsm = new ObjectListSelectionModel(new ListModelAdapter(this.sortedPeopleAdapter));
-		rsm.addListSelectionListener(this.buildRowSelectionListener());
-		rsm.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);
-		return rsm;
-	}
-
-	private ListSelectionListener buildRowSelectionListener() {
-		return new ListSelectionListener() {
-			public void valueChanged(ListSelectionEvent e) {
-				if (e.getValueIsAdjusting()) {
-					return;
-				}
-				TableModelAdapterUITest.this.rowSelectionChanged(e);
-			}
-		};
-	}
-
-	void rowSelectionChanged(ListSelectionEvent e) {
-		Person selection = (Person) this.rowSelectionModel.selectedValue();
-		this.selectedPersonHolder.setValue(selection);
-		boolean personSelected = (selection != null);
-		this.removeAction.setEnabled(personSelected);
-		this.renameAction.setEnabled(personSelected);
-	}
-
-	private void openWindow() {
-		JFrame window = new JFrame(ClassTools.shortClassNameForObject(this));
-		window.setDefaultCloseOperation(WindowConstants.DO_NOTHING_ON_CLOSE);
-		window.addWindowListener(this.buildWindowListener());
-		window.getContentPane().add(this.buildMainPanel(), "Center");
-		window.setLocation(200, 200);
-		window.setSize(600, 400);
-		window.setVisible(true);
-	}
-
-	private WindowListener buildWindowListener() {
-		return new WindowAdapter() {
-			@Override
-			public void windowClosing(WindowEvent e) {
-				e.getWindow().setVisible(false);
-				System.exit(0);
-			}
-		};
-	}
-
-	private Component buildMainPanel() {
-		JPanel mainPanel = new JPanel(new BorderLayout());
-		mainPanel.add(this.buildTablePane(), BorderLayout.CENTER);
-		mainPanel.add(this.buildControlPanel(), BorderLayout.SOUTH);
-		return mainPanel;
-	}
-
-	private Component buildTablePane() {
-		return new JScrollPane(this.buildTable());
-	}
-
-	private JTable buildTable() {
-		JTable table = new JTable(this.tableModel);
-		table.putClientProperty("terminateEditOnFocusLost", Boolean.TRUE);	// see Java bug 5007652
-		table.setSelectionModel(this.rowSelectionModel);
-		table.setDoubleBuffered(true);
-		table.setAutoResizeMode(JTable.AUTO_RESIZE_NEXT_COLUMN);
-		int rowHeight = 20;	// start with minimum of 20
-
-		// gone west column (spinner)
-		TableColumn column = table.getColumnModel().getColumn(PersonColumnAdapter.GONE_WEST_DATE_COLUMN);
-		SpinnerTableCellRenderer spinnerRenderer = this.buildDateSpinnerRenderer();
-		column.setCellRenderer(spinnerRenderer);
-		column.setCellEditor(new TableCellEditorAdapter(this.buildDateSpinnerRenderer()));
-		rowHeight = Math.max(rowHeight, spinnerRenderer.preferredHeight());
-
-		// eye color column (combo-box)
-		// the jdk combo-box renderer looks like a text field
-		// until the user starts an edit - use a custom one
-		column = table.getColumnModel().getColumn(PersonColumnAdapter.EYE_COLOR_COLUMN);
-		ComboBoxTableCellRenderer eyeColorRenderer = this.buildEyeColorComboBoxRenderer();
-		column.setCellRenderer(eyeColorRenderer);
-		column.setCellEditor(new TableCellEditorAdapter(this.buildEyeColorComboBoxRenderer()));
-		rowHeight = Math.max(rowHeight, eyeColorRenderer.preferredHeight());
-
-		// evil (check box)
-		// the jdk check box renderer and editor suck - use a custom ones
-		column = table.getColumnModel().getColumn(PersonColumnAdapter.EVIL_COLUMN);
-		CheckBoxTableCellRenderer evilRenderer = new CheckBoxTableCellRenderer();
-		column.setCellRenderer(evilRenderer);
-		column.setCellEditor(new TableCellEditorAdapter(new CheckBoxTableCellRenderer()));
-		rowHeight = Math.max(rowHeight, evilRenderer.preferredHeight());
-
-		// adventure count column (spinner)
-		column = table.getColumnModel().getColumn(PersonColumnAdapter.ADVENTURE_COUNT_COLUMN);
-		spinnerRenderer = this.buildNumberSpinnerRenderer();
-		column.setCellRenderer(spinnerRenderer);
-		column.setCellEditor(new TableCellEditorAdapter(this.buildNumberSpinnerRenderer()));
-		rowHeight = Math.max(rowHeight, spinnerRenderer.preferredHeight());
-
-		table.setRowHeight(rowHeight);
-		return table;
-	}
-
-	private SpinnerTableCellRenderer buildDateSpinnerRenderer() {
-		return new SpinnerTableCellRenderer(new DateSpinnerModelAdapter(new SimplePropertyValueModel<Object>()));
-	}
-
-	private SpinnerTableCellRenderer buildNumberSpinnerRenderer() {
-		return new SpinnerTableCellRenderer(new NumberSpinnerModelAdapter(new SimplePropertyValueModel<Number>()));
-	}
-
-	private ComboBoxTableCellRenderer buildEyeColorComboBoxRenderer() {
-		return new ComboBoxTableCellRenderer(this.buildReadOnlyEyeColorComboBoxModel(), this.buildEyeColorRenderer());
-	}
-
-	private ComboBoxModel buildReadOnlyEyeColorComboBoxModel() {
-		return new ComboBoxModelAdapter(this.eyeColorsHolder, new SimplePropertyValueModel<Object>());
-	}
-
-	private ListCellRenderer buildEyeColorRenderer() {
-		return new EyeColorRenderer();
-	}
-
-	private Component buildControlPanel() {
-		JPanel controlPanel = new JPanel(new GridLayout(0, 1));
-		controlPanel.add(this.buildButtonPanel());
-		controlPanel.add(this.buildPersonPanel());
-		return controlPanel;
-	}
-
-	private Component buildButtonPanel() {
-		JPanel buttonPanel = new JPanel(new GridLayout(1, 0));
-		buttonPanel.add(this.buildAddButton());
-		buttonPanel.add(this.buildRemoveButton());
-		buttonPanel.add(this.buildRenameButton());
-		buttonPanel.add(this.buildAddEyeColorButton());
-		buttonPanel.add(this.buildPrintButton());
-		buttonPanel.add(this.buildResetButton());
-		return buttonPanel;
-	}
-
-	private Component buildPersonPanel() {
-		JPanel personPanel = new JPanel(new GridLayout(1, 0));
-		personPanel.add(this.buildNameTextField());
-		personPanel.add(this.buildBirthDateSpinner());
-		personPanel.add(this.buildGoneWestDateSpinner());
-		personPanel.add(this.buildEyeColorComboBox());
-		personPanel.add(this.buildEvilCheckBox());
-		personPanel.add(this.buildRankSpinner());
-		personPanel.add(this.buildAdventureCountSpinner());
-		return personPanel;
-	}
-
-
-	// ********** add button **********
-
-	private JButton buildAddButton() {
-		return new JButton(this.buildAddAction());
-	}
-
-	private Action buildAddAction() {
-		Action action = new AbstractAction("add") {
-			public void actionPerformed(ActionEvent event) {
-				TableModelAdapterUITest.this.addPerson();
-			}
-		};
-		action.setEnabled(true);
-		return action;
-	}
-
-	void addPerson() {
-		String name = this.getNameFromUser();
-		if (name != null) {
-			this.setSelectedPerson(this.crowd().addPerson(name));
-		}
-	}
-
-
-	// ********** remove button **********
-
-	private JButton buildRemoveButton() {
-		return new JButton(this.buildRemoveAction());
-	}
-
-	private Action buildRemoveAction() {
-		this.removeAction = new AbstractAction("remove") {
-			public void actionPerformed(ActionEvent event) {
-				TableModelAdapterUITest.this.removePerson();
-			}
-		};
-		this.removeAction.setEnabled(false);
-		return this.removeAction;
-	}
-
-	void removePerson() {
-		Person person = this.selectedPerson();
-		if (person != null) {
-			this.crowd().removePerson(person);
-		}
-	}
-
-
-	// ********** rename button **********
-
-	private JButton buildRenameButton() {
-		return new JButton(this.buildRenameAction());
-	}
-
-	private Action buildRenameAction() {
-		this.renameAction = new AbstractAction("rename") {
-			public void actionPerformed(ActionEvent event) {
-				TableModelAdapterUITest.this.renamePerson();
-			}
-		};
-		this.renameAction.setEnabled(false);
-		return this.renameAction;
-	}
-
-	void renamePerson() {
-		Person person = this.selectedPerson();
-		if (person != null) {
-			String name = this.promptUserForName(person.getName());
-			if (name != null) {
-				person.setName(name);
-				this.setSelectedPerson(person);
-			}
-		}
-	}
-
-
-	// ********** add eye color button **********
-
-	private JButton buildAddEyeColorButton() {
-		return new JButton(this.buildAddEyeColorAction());
-	}
-
-	private Action buildAddEyeColorAction() {
-		Action action = new AbstractAction("add eye color") {
-			public void actionPerformed(ActionEvent event) {
-				TableModelAdapterUITest.this.addEyeColor();
-			}
-		};
-		action.setEnabled(true);
-		return action;
-	}
-
-	void addEyeColor() {
-		String color = this.promptUserForEyeColor();
-		if (color != null) {
-			this.eyeColorsHolder.add(color);
-		}
-	}
-
-	private String promptUserForEyeColor() {
-		while (true) {
-			String eyeColor = JOptionPane.showInputDialog("Eye Color");
-			if (eyeColor == null) {
-				return null;		// user pressed <Cancel>
-			}
-			if ((eyeColor.length() == 0)) {
-				JOptionPane.showMessageDialog(null, "The eye color is required.", "Invalid Eye Color", JOptionPane.ERROR_MESSAGE);
-			} else if (CollectionTools.contains(this.eyeColorsHolder.iterator(), eyeColor)) {
-				JOptionPane.showMessageDialog(null, "The eye color already exists.", "Invalid Eye Color", JOptionPane.ERROR_MESSAGE);
-			} else {
-				return eyeColor;
-			}
-		}
-	}
-
-
-	// ********** print button **********
-
-	private JButton buildPrintButton() {
-		return new JButton(this.buildPrintAction());
-	}
-
-	private Action buildPrintAction() {
-		Action action = new AbstractAction("print") {
-			public void actionPerformed(ActionEvent event) {
-				TableModelAdapterUITest.this.printCrowd();
-			}
-		};
-		action.setEnabled(true);
-		return action;
-	}
-
-	void printCrowd() {
-		System.out.println(this.crowd());
-		for (Iterator<Person> stream = this.crowd().people(); stream.hasNext(); ) {
-			System.out.println("\t" + stream.next());
-		}
-	}
-
-
-	// ********** reset button **********
-
-	private JButton buildResetButton() {
-		return new JButton(this.buildResetAction());
-	}
-
-	private Action buildResetAction() {
-		Action action = new AbstractAction("reset") {
-			public void actionPerformed(ActionEvent event) {
-				TableModelAdapterUITest.this.reset();
-			}
-		};
-		action.setEnabled(true);
-		return action;
-	}
-
-	void reset() {
-		this.crowdHolder.setValue(this.buildCrowd());
-	}
-
-
-	// ********** new name dialog **********
-
-	private String getNameFromUser() {
-		return this.promptUserForName(null);
-	}
-
-	private String promptUserForName(String originalName) {
-		while (true) {
-			String name = JOptionPane.showInputDialog("Person Name");
-			if (name == null) {
-				return null;		// user pressed <Cancel>
-			}
-			if ((name.length() == 0)) {
-				JOptionPane.showMessageDialog(null, "The name is required.", "Invalid Name", JOptionPane.ERROR_MESSAGE);
-			} else if (CollectionTools.contains(this.crowd().peopleNames(), name)) {
-				JOptionPane.showMessageDialog(null, "The name already exists.", "Invalid Name", JOptionPane.ERROR_MESSAGE);
-			} else {
-				return name;
-			}
-		}
-	}
-
-
-	// ********** name text field **********
-
-	private Component buildNameTextField() {
-		JTextField textField = new JTextField(this.buildNameDocument(), null, 0);
-		textField.setEditable(false);
-		return textField;
-	}
-
-	private Document buildNameDocument() {
-		return new DocumentAdapter(this.buildNameAdapter());
-	}
-
-	private WritablePropertyValueModel<String> buildNameAdapter() {
-		return new PropertyAspectAdapter<Person, String>(this.selectedPersonHolder, Person.NAME_PROPERTY) {
-			@Override
-			protected String buildValue_() {
-				return this.subject.getName();
-			}
-			@Override
-			protected void setValue_(String value) {
-				this.subject.setName(value);
-			}
-		};
-	}
-
-
-	// ********** birth date spinner **********
-
-	private JSpinner buildBirthDateSpinner() {
-		return new JSpinner(this.buildBirthDateSpinnerModel());
-	}
-
-	private SpinnerModel buildBirthDateSpinnerModel() {
-		return new DateSpinnerModelAdapter(this.buildBirthDateAdapter());
-	}
-
-	private WritablePropertyValueModel<Object> buildBirthDateAdapter() {
-		return new PropertyAspectAdapter<Person, Object>(this.selectedPersonHolder, Person.BIRTH_DATE_PROPERTY) {
-			@Override
-			protected Date buildValue_() {
-				return this.subject.getBirthDate();
-			}
-			@Override
-			protected void setValue_(Object value) {
-				this.subject.setBirthDate((Date) value);
-			}
-		};
-	}
-
-
-	// ********** gone west date spinner **********
-
-	private JSpinner buildGoneWestDateSpinner() {
-		return new JSpinner(this.buildGoneWestDateSpinnerModel());
-	}
-
-	private SpinnerModel buildGoneWestDateSpinnerModel() {
-		return new DateSpinnerModelAdapter(this.buildGoneWestDateAdapter());
-	}
-
-	private WritablePropertyValueModel<Object> buildGoneWestDateAdapter() {
-		return new PropertyAspectAdapter<Person, Object>(this.selectedPersonHolder, Person.GONE_WEST_DATE_PROPERTY) {
-			@Override
-			protected Date buildValue_() {
-				return this.subject.getGoneWestDate();
-			}
-			@Override
-			protected void setValue_(Object value) {
-				this.subject.setGoneWestDate((Date) value);
-			}
-		};
-	}
-
-
-	// ********** eye color combo-box **********
-
-	private JComboBox buildEyeColorComboBox() {
-		return new JComboBox(this.buildEyeColorComboBoxModel());
-	}
-
-	private ComboBoxModel buildEyeColorComboBoxModel() {
-		return new ComboBoxModelAdapter(this.eyeColorsHolder, this.buildEyeColorAdapter());
-	}
-
-	private WritablePropertyValueModel<Object> buildEyeColorAdapter() {
-		return new PropertyAspectAdapter<Person, Object>(this.selectedPersonHolder, Person.EYE_COLOR_PROPERTY) {
-			@Override
-			protected Object buildValue_() {
-				return this.subject.getEyeColor();
-			}
-			@Override
-			protected void setValue_(Object value) {
-				this.subject.setEyeColor((String) value);
-			}
-		};
-	}
-
-
-	// ********** evil check box **********
-
-	private JCheckBox buildEvilCheckBox() {
-		JCheckBox checkBox = new JCheckBox();
-		checkBox.setText("evil");
-		checkBox.setModel(this.buildEvilCheckBoxModel());
-		return checkBox;
-	}
-
-	private ButtonModel buildEvilCheckBoxModel() {
-		return new CheckBoxModelAdapter(this.buildEvilAdapter());
-	}
-
-	private WritablePropertyValueModel<Boolean> buildEvilAdapter() {
-		return new PropertyAspectAdapter<Person, Boolean>(this.selectedPersonHolder, Person.EVIL_PROPERTY) {
-			@Override
-			protected Boolean buildValue_() {
-				return Boolean.valueOf(this.subject.isEvil());
-			}
-			@Override
-			protected void setValue_(Boolean value) {
-				this.subject.setEvil(value.booleanValue());
-			}
-		};
-	}
-
-
-	// ********** rank spinner **********
-
-	private JSpinner buildRankSpinner() {
-		return new JSpinner(this.buildRankSpinnerModel());
-	}
-
-	private SpinnerModel buildRankSpinnerModel() {
-		return new NumberSpinnerModelAdapter(this.buildRankAdapter());
-	}
-
-	private WritablePropertyValueModel<Number> buildRankAdapter() {
-		return new PropertyAspectAdapter<Person, Number>(this.selectedPersonHolder, Person.RANK_PROPERTY) {
-			@Override
-			protected Number buildValue_() {
-				return new Integer(this.subject.getRank());
-			}
-			@Override
-			protected void setValue_(Number value) {
-				this.subject.setRank(value.intValue());
-			}
-		};
-	}
-
-
-	// ********** adventure count spinner **********
-
-	private JSpinner buildAdventureCountSpinner() {
-		return new JSpinner(this.buildAdventureCountSpinnerModel());
-	}
-
-	private SpinnerModel buildAdventureCountSpinnerModel() {
-		return new NumberSpinnerModelAdapter(this.buildAdventureCountAdapter());
-	}
-
-	private WritablePropertyValueModel<Number> buildAdventureCountAdapter() {
-		return new PropertyAspectAdapter<Person, Number>(this.selectedPersonHolder, Person.ADVENTURE_COUNT_PROPERTY) {
-			@Override
-			protected Number buildValue_() {
-				return new Integer(this.subject.getAdventureCount());
-			}
-			@Override
-			protected void setValue_(Number value) {
-				this.subject.setAdventureCount(value.intValue());
-			}
-		};
-	}
-
-
-	// ********** queries **********
-
-	private Crowd crowd() {
-		return this.crowdHolder.getValue();
-	}
-
-	private Person selectedPerson() {
-		if (this.rowSelectionModel.isSelectionEmpty()) {
-			return null;
-		}
-		return (Person) this.rowSelectionModel.selectedValue();
-	}
-
-	private void setSelectedPerson(Person person) {
-		this.rowSelectionModel.setSelectedValue(person);
-	}
-
-
-	// ********** custom renderer **********
-	
-	/**
-	 * This is simply an example of a renderer for the embedded combo-box.
-	 * It does nothing special unless you uncomment the code below....
-	 */
-	private class EyeColorRenderer extends DefaultListCellRenderer {
-		EyeColorRenderer() {
-			super();
-		}
-		@Override
-		public Component getListCellRendererComponent(JList list, Object value, int index, boolean isSelected, boolean cellHasFocus) {
-			// just do something to show the renderer is working...
-	//		value = ">" + value;
-			return super.getListCellRendererComponent(list, value, index, isSelected, cellHasFocus);
-		}
-	}
-
-}
diff --git a/jpa/tests/org.eclipse.jpt.utility.tests/src/org/eclipse/jpt/utility/tests/internal/model/value/swing/TreeModelAdapterTests.java b/jpa/tests/org.eclipse.jpt.utility.tests/src/org/eclipse/jpt/utility/tests/internal/model/value/swing/TreeModelAdapterTests.java
deleted file mode 100644
index 291c9bc..0000000
--- a/jpa/tests/org.eclipse.jpt.utility.tests/src/org/eclipse/jpt/utility/tests/internal/model/value/swing/TreeModelAdapterTests.java
+++ /dev/null
@@ -1,814 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2008 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.utility.tests.internal.model.value.swing;
-
-import java.io.OutputStream;
-import java.io.OutputStreamWriter;
-import java.io.StringWriter;
-import java.util.Arrays;
-import java.util.Collection;
-import java.util.Iterator;
-import javax.swing.Icon;
-import javax.swing.JTree;
-import javax.swing.event.TreeModelEvent;
-import javax.swing.event.TreeModelListener;
-import javax.swing.tree.TreeModel;
-import junit.framework.TestCase;
-import org.eclipse.jpt.utility.internal.HashBag;
-import org.eclipse.jpt.utility.internal.IndentingPrintWriter;
-import org.eclipse.jpt.utility.internal.StringTools;
-import org.eclipse.jpt.utility.internal.iterators.ReadOnlyIterator;
-import org.eclipse.jpt.utility.internal.model.AbstractModel;
-import org.eclipse.jpt.utility.internal.model.value.AbstractTreeNodeValueModel;
-import org.eclipse.jpt.utility.internal.model.value.CollectionAspectAdapter;
-import org.eclipse.jpt.utility.internal.model.value.ItemPropertyListValueModelAdapter;
-import org.eclipse.jpt.utility.internal.model.value.NullListValueModel;
-import org.eclipse.jpt.utility.internal.model.value.PropertyAspectAdapter;
-import org.eclipse.jpt.utility.internal.model.value.SimpleListValueModel;
-import org.eclipse.jpt.utility.internal.model.value.SimplePropertyValueModel;
-import org.eclipse.jpt.utility.internal.model.value.SortedListValueModelAdapter;
-import org.eclipse.jpt.utility.internal.model.value.StaticPropertyValueModel;
-import org.eclipse.jpt.utility.internal.model.value.TransformationListValueModelAdapter;
-import org.eclipse.jpt.utility.internal.model.value.swing.TreeModelAdapter;
-import org.eclipse.jpt.utility.internal.swing.Displayable;
-import org.eclipse.jpt.utility.model.event.PropertyChangeEvent;
-import org.eclipse.jpt.utility.model.listener.ListChangeListener;
-import org.eclipse.jpt.utility.model.listener.PropertyChangeListener;
-import org.eclipse.jpt.utility.model.listener.StateChangeListener;
-import org.eclipse.jpt.utility.model.value.CollectionValueModel;
-import org.eclipse.jpt.utility.model.value.ListValueModel;
-import org.eclipse.jpt.utility.model.value.PropertyValueModel;
-import org.eclipse.jpt.utility.model.value.TreeNodeValueModel;
-import org.eclipse.jpt.utility.model.value.WritablePropertyValueModel;
-
-/**
- * 
- */
-public class TreeModelAdapterTests extends TestCase {
-	boolean eventFired;
-
-	public TreeModelAdapterTests(String name) {
-		super(name);
-	}
-
-	public void testGetRoot() {
-		TreeModel treeModel = this.buildSortedTreeModel();
-		treeModel.addTreeModelListener(new TestTreeModelListener());
-		TestNode rootNode = (TestNode) treeModel.getRoot();
-		TestModel root = rootNode.getTestModel();
-		assertEquals("root", root.getName());
-//		root.dump();
-//		rootNode.dump();
-	}
-
-	public void testGetChild() {
-		TreeModel treeModel = this.buildSortedTreeModel();
-		treeModel.addTreeModelListener(new TestTreeModelListener());
-		TestNode rootNode = (TestNode) treeModel.getRoot();
-
-		TestNode expected = rootNode.childNamed("node 1");
-		TestNode actual = (TestNode) treeModel.getChild(rootNode, 1);
-		assertEquals(expected, actual);
-
-		expected = rootNode.childNamed("node 2");
-		actual = (TestNode) treeModel.getChild(rootNode, 2);
-		assertEquals(expected, actual);
-	}
-
-	public void testGetChildCount() {
-		TreeModel treeModel = this.buildSortedTreeModel();
-		treeModel.addTreeModelListener(new TestTreeModelListener());
-		TestNode rootNode = (TestNode) treeModel.getRoot();
-
-		assertEquals(5, treeModel.getChildCount(rootNode));
-
-		TestNode node = rootNode.childNamed("node 1");
-		assertEquals(1, treeModel.getChildCount(node));
-	}
-
-	public void testGetIndexOfChild() {
-		TreeModel treeModel = this.buildSortedTreeModel();
-		treeModel.addTreeModelListener(new TestTreeModelListener());
-		TestNode rootNode = (TestNode) treeModel.getRoot();
-
-		TestNode child = rootNode.childNamed("node 0");
-		assertEquals(0, treeModel.getIndexOfChild(rootNode, child));
-
-		child = rootNode.childNamed("node 1");
-		assertEquals(1, treeModel.getIndexOfChild(rootNode, child));
-
-		child = rootNode.childNamed("node 2");
-		assertEquals(2, treeModel.getIndexOfChild(rootNode, child));
-		TestNode grandchild = child.childNamed("node 2.2");
-		assertEquals(2, treeModel.getIndexOfChild(child, grandchild));
-	}
-
-	public void testIsLeaf() {
-		TreeModel treeModel = this.buildSortedTreeModel();
-		treeModel.addTreeModelListener(new TestTreeModelListener());
-		TestNode rootNode = (TestNode) treeModel.getRoot();
-		assertFalse(treeModel.isLeaf(rootNode));
-		TestNode node = rootNode.childNamed("node 1");
-		assertFalse(treeModel.isLeaf(node));
-		node = rootNode.childNamed("node 3");
-		assertTrue(treeModel.isLeaf(node));
-	}
-
-
-	public void testTreeNodesChanged() {
-		// the only way to trigger a "node changed" event is to use an unsorted tree;
-		// a sorted tree will will trigger only "node removed" and "node inserted" events
-		TreeModel treeModel = this.buildUnsortedTreeModel();
-		this.eventFired = false;
-		treeModel.addTreeModelListener(new TestTreeModelListener() {
-			@Override
-			public void treeNodesChanged(TreeModelEvent e) {
-				TreeModelAdapterTests.this.eventFired = true;
-			}
-		});
-		TestNode rootNode = (TestNode) treeModel.getRoot();
-		TestNode node = rootNode.childNamed("node 1");
-		TestModel tm = node.getTestModel();
-		tm.setName("node 1++");
-		assertTrue(this.eventFired);
-
-		this.eventFired = false;
-		node = node.childNamed("node 1.1");
-		tm = node.getTestModel();
-		tm.setName("node 1.1++");
-		assertTrue(this.eventFired);
-	}
-
-	public void testTreeNodesInserted() {
-		// use an unsorted tree so the nodes are not re-shuffled...
-		TreeModel treeModel = this.buildUnsortedTreeModel();
-		this.eventFired = false;
-		treeModel.addTreeModelListener(new TestTreeModelListener() {
-			@Override
-			public void treeNodesInserted(TreeModelEvent e) {
-				TreeModelAdapterTests.this.eventFired = true;
-			}
-		});
-		TestNode rootNode = (TestNode) treeModel.getRoot();
-		TestNode node = rootNode.childNamed("node 1");
-		TestModel tm = node.getTestModel();
-		tm.addChild("new child...");
-		assertTrue(this.eventFired);
-
-		this.eventFired = false;
-		node = node.childNamed("node 1.1");
-		tm = node.getTestModel();
-		tm.addChild("another new child...");
-		assertTrue(this.eventFired);
-	}
-
-	public void testTreeNodesRemoved() {
-		TreeModel treeModel = this.buildUnsortedTreeModel();
-		this.eventFired = false;
-		treeModel.addTreeModelListener(new TestTreeModelListener() {
-			@Override
-			public void treeNodesRemoved(TreeModelEvent e) {
-				TreeModelAdapterTests.this.eventFired = true;
-			}
-		});
-		TestNode rootNode = (TestNode) treeModel.getRoot();
-		TestModel root = rootNode.getTestModel();
-		root.removeChild(root.childNamed("node 3"));
-		assertTrue(this.eventFired);
-
-		this.eventFired = false;
-		TestNode node = rootNode.childNamed("node 2");
-		TestModel tm = node.getTestModel();
-		tm.removeChild(tm.childNamed("node 2.2"));
-		assertTrue(this.eventFired);
-	}
-
-	public void testTreeStructureChanged() {
-		WritablePropertyValueModel<TreeNodeValueModel<Object>> nodeHolder = new SimplePropertyValueModel<TreeNodeValueModel<Object>>(this.buildSortedRootNode());
-		TreeModel treeModel = this.buildTreeModel(nodeHolder);
-		this.eventFired = false;
-		treeModel.addTreeModelListener(new TestTreeModelListener() {
-			@Override
-			public void treeNodesInserted(TreeModelEvent e) {
-				// do nothing
-			}
-			@Override
-			public void treeNodesRemoved(TreeModelEvent e) {
-				// do nothing
-			}
-			@Override
-			public void treeStructureChanged(TreeModelEvent e) {
-				TreeModelAdapterTests.this.eventFired = true;
-			}
-		});
-		nodeHolder.setValue(this.buildUnsortedRootNode());
-		assertTrue(this.eventFired);
-	}
-
-	/**
-	 * test a problem we had where removing a child from a tree would cause
-	 * the JTree to call #equals(Object) on each node removed (actually, it was
-	 * TreePath, but that was because its own #equals(Object) was called by
-	 * JTree); and since we had already removed the last listener from the
-	 * aspect adapter, the aspect adapter would say its value was null; this
-	 * would cause a NPE until we tweaked TreeModelAdapter to remove its
-	 * listeners from a node only *after* the node had been completely
-	 * removed from the JTree
-	 * @see TreeModelAdapter#removeNode(Object[], int, TreeNodeValueModel)
-	 * @see TreeModelAdapter#addNode(Object[], int, TreeNodeValueModel)
-	 */
-	public void testLazyInitialization() {
-		TreeModel treeModel = this.buildSpecialTreeModel();
-		JTree jTree = new JTree(treeModel);
-		TestNode rootNode = (TestNode) treeModel.getRoot();
-		TestModel root = rootNode.getTestModel();
-		// this would cause a NPE:
-		root.removeChild(root.childNamed("node 3"));
-		assertEquals(treeModel, jTree.getModel());
-	}
-
-
-	private TreeModel buildSortedTreeModel() {
-		return this.buildTreeModel(this.buildSortedRootNode());
-	}
-
-	private TestNode buildSortedRootNode() {
-		return new SortedTestNode(this.buildRoot());
-	}
-
-	private TreeModel buildUnsortedTreeModel() {
-		return this.buildTreeModel(this.buildUnsortedRootNode());
-	}
-
-	private TestNode buildUnsortedRootNode() {
-		return new UnsortedTestNode(this.buildRoot());
-	}
-
-	private TreeModel buildSpecialTreeModel() {
-		return this.buildTreeModel(this.buildSpecialRootNode());
-	}
-
-	private TestNode buildSpecialRootNode() {
-		return new SpecialTestNode(this.buildRoot());
-	}
-
-	private TestModel buildRoot() {
-		TestModel root = new TestModel("root");
-		/*Node node_0 = */root.addChild("node 0");
-		TestModel node_1 = root.addChild("node 1");
-		TestModel node_1_1 = node_1.addChild("node 1.1");
-		/*Node node_1_1_1 = */node_1_1.addChild("node 1.1.1");
-		TestModel node_2 = root.addChild("node 2");
-		/*Node node_2_0 = */node_2.addChild("node 2.0");
-		/*Node node_2_1 = */node_2.addChild("node 2.1");
-		/*Node node_2_2 = */node_2.addChild("node 2.2");
-		/*Node node_2_3 = */node_2.addChild("node 2.3");
-		/*Node node_2_4 = */node_2.addChild("node 2.4");
-		/*Node node_2_5 = */node_2.addChild("node 2.5");
-		/*Node node_3 = */root.addChild("node 3");
-		/*Node node_4 = */root.addChild("node 4");
-		return root;
-	}
-
-
-	// ********** member classes **********
-
-	/**
-	 * This is a typical model class with the typical change notifications
-	 * for #name and #children.
-	 */
-	public static class TestModel extends AbstractModel {
-
-		// the  parent is immutable; the root's parent is null
-		private final TestModel parent;
-
-		// the name is mutable; so I guess it isn't the "primary key" :-)
-		private String name;
-			public static final String NAME_PROPERTY = "name";
-
-		private final Collection<TestModel> children;
-			public static final String CHILDREN_COLLECTION = "children";
-
-
-		public TestModel(String name) {	// root ctor
-			this(null, name);
-		}
-		private TestModel(TestModel parent, String name) {
-			super();
-			this.parent = parent;
-			this.name = name;
-			this.children = new HashBag<TestModel>();
-		}
-
-		public TestModel getParent() {
-			return this.parent;
-		}
-
-		public String getName() {
-			return this.name;
-		}
-		public void setName(String name) {
-			Object old = this.name;
-			this.name = name;
-			this.firePropertyChanged(NAME_PROPERTY, old, name);
-		}
-
-		public Iterator<TestModel> children() {
-			return new ReadOnlyIterator<TestModel>(this.children);
-		}
-		public int childrenSize() {
-			return this.children.size();
-		}
-		public TestModel addChild(String childName) {
-			TestModel child = new TestModel(this, childName);
-			this.addItemToCollection(child, this.children, CHILDREN_COLLECTION);
-			return child;
-		}
-		public TestModel[] addChildren(String[] childNames) {
-			TestModel[] newChildren = new TestModel[childNames.length];
-			for (int i = 0; i < childNames.length; i++) {
-				newChildren[i] = new TestModel(this, childNames[i]);
-			}
-			this.addItemsToCollection(newChildren, this.children, CHILDREN_COLLECTION);
-			return newChildren;
-		}
-		public void removeChild(TestModel child) {
-			this.removeItemFromCollection(child, this.children, CHILDREN_COLLECTION);
-		}
-		public void removeChildren(TestModel[] testModels) {
-			this.removeItemsFromCollection(testModels, this.children, CHILDREN_COLLECTION);
-		}
-		public void clearChildren() {
-			this.clearCollection(this.children, CHILDREN_COLLECTION);
-		}
-		public TestModel childNamed(String childName) {
-			for (TestModel child : this.children) {
-				if (child.getName().equals(childName)) {
-					return child;
-				}
-			}
-			throw new RuntimeException("child not found: " + childName);
-		}
-
-		public String dumpString() {
-			StringWriter sw = new StringWriter();
-			IndentingPrintWriter ipw = new IndentingPrintWriter(sw);
-			this.dumpOn(ipw);
-			return sw.toString();
-		}
-		public void dumpOn(IndentingPrintWriter writer) {
-			writer.println(this);
-			writer.indent();
-			for (TestModel child : this.children) {
-				child.dumpOn(writer);
-			}
-			writer.undent();
-		}
-		public void dumpOn(OutputStream stream) {
-			IndentingPrintWriter writer = new IndentingPrintWriter(new OutputStreamWriter(stream));
-			this.dumpOn(writer);
-			writer.flush();
-		}
-		public void dump() {
-			this.dumpOn(System.out);
-		}
-
-		@Override
-		public String toString() {
-			return StringTools.buildToStringFor(this, this.name);
-		}
-
-	}
-
-
-	/**
-	 * This Node wraps a TestModel and converts into something that can
-	 * be used by TreeModelAdapter. It converts changes to the TestModel's
-	 * name into "state changes" to the Node; and converts the
-	 * TestModel's children into a ListValueModel of Nodes whose order is
-	 * determined by subclass implementations.
-	 */
-	public static abstract class TestNode extends AbstractTreeNodeValueModel<Object> implements Displayable {
-		/** the model object wrapped by this node */
-		private final TestModel testModel;
-		/** this node's parent node; null for the root node */
-		private final TestNode parent;
-		/** this node's child nodes */
-		private final ListValueModel<TreeNodeValueModel<Object>> childrenModel;
-		/** a listener that notifies us when the model object's "internal state" changes */
-		private final PropertyChangeListener testModelListener;
-
-
-		// ********** constructors/initialization **********
-
-		/**
-		 * root node constructor
-		 */
-		public TestNode(TestModel testModel) {
-			this(null, testModel);
-		}
-
-		/**
-		 * branch or leaf node constructor
-		 */
-		public TestNode(TestNode parent, TestModel testModel) {
-			super();
-			this.parent = parent;
-			this.testModel = testModel;
-			this.childrenModel = this.buildChildrenModel(testModel);
-			this.testModelListener = this.buildTestModelListener();
-		}
-
-		private PropertyChangeListener buildTestModelListener() {
-			return new PropertyChangeListener() {
-				public void propertyChanged(PropertyChangeEvent e) {
-					TestNode.this.testModelChanged(e);
-				}
-			};
-		}
-
-		/**
-		 * subclasses decide the order of the child nodes
-		 */
-		protected abstract ListValueModel<TreeNodeValueModel<Object>> buildChildrenModel(TestModel model);
-
-		/**
-		 * used by subclasses;
-		 * transform the test model children into nodes
-		 */
-		protected ListValueModel<TreeNodeValueModel<Object>> buildNodeAdapter(TestModel model) {
-			return new TransformationListValueModelAdapter<TestModel, TreeNodeValueModel<Object>>(this.buildChildrenAdapter(model)) {
-				@Override
-				protected TestNode transformItem(TestModel item) {
-					return TestNode.this.buildChildNode(item);
-				}
-			};
-		}
-
-		/**
-		 * subclasses must build a concrete node for the specified test model
-		 */
-		protected abstract TestNode buildChildNode(TestModel childTestModel);
-
-		/**
-		 * return a collection value model on the specified model's children
-		 */
-		protected CollectionValueModel<TestModel> buildChildrenAdapter(TestModel model) {
-			return new CollectionAspectAdapter<TestModel, TestModel>(TestModel.CHILDREN_COLLECTION, model) {
-				@Override
-				protected Iterator<TestModel> iterator_() {
-					return this.subject.children();
-				}
-				@Override
-				protected int size_() {
-					return this.subject.childrenSize();
-				}
-			};
-		}
-
-
-		// ********** TreeNodeValueModel implementation **********
-
-		public TestModel getValue() {
-			return this.testModel;
-		}
-
-		public TreeNodeValueModel<Object> parent() {
-			return this.parent;
-		}
-
-		public ListValueModel<TreeNodeValueModel<Object>> childrenModel() {
-			return this.childrenModel;
-		}
-
-
-		// ********** AbstractTreeNodeValueModel implementation **********
-
-		@Override
-		protected void engageValue() {
-			this.testModel.addPropertyChangeListener(TestModel.NAME_PROPERTY, this.testModelListener);
-		}
-
-		@Override
-		protected void disengageValue() {
-			this.testModel.removePropertyChangeListener(TestModel.NAME_PROPERTY, this.testModelListener);
-		}
-
-
-		// ********** Displayable implementation **********
-
-		public String displayString() {
-			return this.testModel.getName();
-		}
-
-		public Icon icon() {
-			return null;
-		}
-
-
-		// ********** debugging support **********
-
-		public String dumpString() {
-			StringWriter sw = new StringWriter();
-			IndentingPrintWriter ipw = new IndentingPrintWriter(sw);
-			this.dumpOn(ipw);
-			return sw.toString();
-		}
-
-		public void dumpOn(IndentingPrintWriter writer) {
-			writer.println(this);
-			writer.indent();
-			for (Iterator<TreeNodeValueModel<Object>> stream = this.childrenModel.iterator(); stream.hasNext(); ) {
-				// cast to a TestNode (i.e. this won't work with a NameTestNode in the tree)
-				((TestNode) stream.next()).dumpOn(writer);
-			}
-			writer.undent();
-		}
-
-		public void dumpOn(OutputStream stream) {
-			IndentingPrintWriter writer = new IndentingPrintWriter(new OutputStreamWriter(stream));
-			this.dumpOn(writer);
-			writer.flush();
-		}
-
-		public void dump() {
-			this.dumpOn(System.out);
-		}
-
-
-		// ********** behavior **********
-
-		/**
-		 * the model's name has changed, forward the event to our listeners
-		 */
-		protected void testModelChanged(PropertyChangeEvent e) {
-			// we need to notify listeners that our "internal state" has changed
-			this.fireStateChanged();
-			// our display string stays in synch with the model's name
-			this.firePropertyChanged(DISPLAY_STRING_PROPERTY, e.getOldValue(), e.getNewValue());
-		}
-
-
-		// ********** queries **********
-
-		public TestModel getTestModel() {
-			return this.testModel;
-		}
-
-		/**
-		 * testing convenience method
-		 */
-		public TestNode childNamed(String name) {
-			for (Iterator<TreeNodeValueModel<Object>> stream = this.childrenModel.iterator(); stream.hasNext(); ) {
-				TreeNodeValueModel<Object> childNode = stream.next();
-				if (childNode instanceof TestNode) {
-					if (((TestNode) childNode).getTestModel().getName().equals(name)) {
-						return (TestNode) childNode;
-					}
-				}
-			}
-			throw new IllegalArgumentException("child not found: " + name);
-		}
-
-
-		// ********** standard methods **********
-
-		/**
-		 * use the standard Displayable comparator
-		 */
-		public int compareTo(Displayable d) {
-			return DEFAULT_COMPARATOR.compare(this, d);
-		}
-
-		@Override
-		public String toString() {
-			return "Node(" + this.testModel + ")";
-		}
-
-	}
-
-	/**
-	 * concrete implementation that keeps its children sorted
-	 */
-	public static class SortedTestNode extends TestNode {
-
-		// ********** constructors **********
-		public SortedTestNode(TestModel testModel) {
-			super(testModel);
-		}
-		public SortedTestNode(TestNode parent, TestModel testModel) {
-			super(parent, testModel);
-		}
-
-		// ********** initialization **********
-		/** the list should be sorted */
-		@Override
-		protected ListValueModel<TreeNodeValueModel<Object>> buildChildrenModel(TestModel testModel) {
-			return new SortedListValueModelAdapter<TreeNodeValueModel<Object>>(this.buildDisplayStringAdapter(testModel));
-		}
-		/** the display string (name) of each node can change */
-		protected ListValueModel<TreeNodeValueModel<Object>> buildDisplayStringAdapter(TestModel testModel) {
-			return new ItemPropertyListValueModelAdapter<TreeNodeValueModel<Object>>(this.buildNodeAdapter(testModel), DISPLAY_STRING_PROPERTY);
-		}
-		/** children are also sorted nodes */
-		@Override
-		protected TestNode buildChildNode(TestModel childNode) {
-			return new SortedTestNode(this, childNode);
-		}
-
-	}
-
-
-	/**
-	 * concrete implementation that leaves its children unsorted
-	 */
-	public static class UnsortedTestNode extends TestNode {
-
-		// ********** constructors **********
-		public UnsortedTestNode(TestModel testModel) {
-			super(testModel);
-		}
-		public UnsortedTestNode(TestNode parent, TestModel testModel) {
-			super(parent, testModel);
-		}
-
-		// ********** initialization **********
-		/** the list should NOT be sorted */
-		@Override
-		protected ListValueModel<TreeNodeValueModel<Object>> buildChildrenModel(TestModel testModel) {
-			return this.buildNodeAdapter(testModel);
-		}
-		/** children are also unsorted nodes */
-		@Override
-		protected TestNode buildChildNode(TestModel childNode) {
-			return new UnsortedTestNode(this, childNode);
-		}
-
-	}
-
-
-	/**
-	 * concrete implementation that leaves its children unsorted
-	 * and has a special set of children for "node 3"
-	 */
-	public static class SpecialTestNode extends UnsortedTestNode {
-
-		// ********** constructors **********
-		public SpecialTestNode(TestModel testModel) {
-			super(testModel);
-		}
-		public SpecialTestNode(TestNode parent, TestModel testModel) {
-			super(parent, testModel);
-		}
-
-		// ********** initialization **********
-		/** return a different list of children for "node 3" */
-		@Override
-		protected ListValueModel<TreeNodeValueModel<Object>> buildChildrenModel(TestModel testModel) {
-			if (testModel.getName().equals("node 3")) {
-				return this.buildSpecialChildrenModel(testModel);
-			}
-			return super.buildChildrenModel(testModel);
-		}
-		protected ListValueModel<TreeNodeValueModel<Object>> buildSpecialChildrenModel(TestModel testModel) {
-			TreeNodeValueModel<Object>[] children = new NameTestNode[1];
-			children[0] = new NameTestNode(this);
-			return new SimpleListValueModel<TreeNodeValueModel<Object>>(Arrays.asList(children));
-		}
-		/** children are also special nodes */
-		@Override
-		protected TestNode buildChildNode(TestModel childNode) {
-			return new SpecialTestNode(this, childNode);
-		}
-
-	}
-
-
-	public static class NameTestNode extends AbstractTreeNodeValueModel<Object> {
-		private final WritablePropertyValueModel<String> nameAdapter;
-		private final SpecialTestNode specialNode;		// parent node
-		private final PropertyChangeListener nameListener;
-		private final ListValueModel<TreeNodeValueModel<Object>> childrenModel;
-
-		// ********** construction/initialization **********
-
-		public NameTestNode(SpecialTestNode specialNode) {
-			super();
-			this.nameListener = this.buildNameListener();
-			this.specialNode = specialNode;
-			this.nameAdapter = this.buildNameAdapter();
-			this.childrenModel = new NullListValueModel<TreeNodeValueModel<Object>>();
-		}
-		protected PropertyChangeListener buildNameListener() {
-			return new PropertyChangeListener() {
-				public void propertyChanged(PropertyChangeEvent e) {
-					NameTestNode.this.nameChanged(e);
-				}
-			};
-		}
-		protected WritablePropertyValueModel<String> buildNameAdapter() {
-			return new PropertyAspectAdapter<TestModel, String>(TestModel.NAME_PROPERTY, this.getTestModel()) {
-				@Override
-				protected String buildValue_() {
-					return this.subject.getName();
-				}
-				@Override
-				protected void setValue_(String value) {
-					this.subject.setName(value);
-				}
-			};
-		}
-
-		public TestModel getTestModel() {
-			return this.specialNode.getTestModel();
-		}
-
-		// ********** TreeNodeValueModel implementation **********
-
-		public String getValue() {
-			return this.nameAdapter.getValue();
-		}
-		@Override
-		public void setValue(Object value) {
-			this.nameAdapter.setValue((String) value);
-		}
-		public TreeNodeValueModel<Object> parent() {
-			return this.specialNode;
-		}
-		public ListValueModel<TreeNodeValueModel<Object>> childrenModel() {
-			return this.childrenModel;
-		}
-
-		// ********** AbstractTreeNodeValueModel implementation **********
-
-		@Override
-		protected void engageValue() {
-			this.nameAdapter.addPropertyChangeListener(PropertyValueModel.VALUE, this.nameListener);
-		}
-		@Override
-		protected void disengageValue() {
-			this.nameAdapter.removePropertyChangeListener(PropertyValueModel.VALUE, this.nameListener);
-		}
-
-		// ********** behavior **********
-
-		protected void nameChanged(PropertyChangeEvent e) {
-			// we need to notify listeners that our "value" has changed
-			this.firePropertyChanged(VALUE, e.getOldValue(), e.getNewValue());
-		}
-	}
-
-	private TreeModel buildTreeModel(TestNode root) {
-		return this.buildTreeModel(new StaticPropertyValueModel<TreeNodeValueModel<Object>>(root));
-	}
-
-	private TreeModel buildTreeModel(PropertyValueModel<TreeNodeValueModel<Object>> rootHolder) {
-		return new TreeModelAdapter<Object>(rootHolder) {
-			@Override
-			protected ListChangeListener buildChildrenListener() {
-				return this.buildChildrenListener_();
-			}
-			@Override
-			protected StateChangeListener buildNodeStateListener() {
-				return this.buildNodeStateListener_();
-			}
-			@Override
-			protected PropertyChangeListener buildNodeValueListener() {
-				return this.buildNodeValueListener_();
-			}
-			@Override
-			protected PropertyChangeListener buildRootListener() {
-				return this.buildRootListener_();
-			}
-		};
-	}
-
-
-
-	/**
-	 * listener that will blow up with any event;
-	 * override and implement expected event methods
-	 */
-	public class TestTreeModelListener implements TreeModelListener {
-		public void treeNodesChanged(TreeModelEvent e) {
-			fail("unexpected event");
-		}
-		public void treeNodesInserted(TreeModelEvent e) {
-			fail("unexpected event");
-		}
-		public void treeNodesRemoved(TreeModelEvent e) {
-			fail("unexpected event");
-		}
-		public void treeStructureChanged(TreeModelEvent e) {
-			fail("unexpected event");
-		}
-	}
-
-}
diff --git a/jpa/tests/org.eclipse.jpt.utility.tests/src/org/eclipse/jpt/utility/tests/internal/model/value/swing/TreeModelAdapterUITest.java b/jpa/tests/org.eclipse.jpt.utility.tests/src/org/eclipse/jpt/utility/tests/internal/model/value/swing/TreeModelAdapterUITest.java
deleted file mode 100644
index b8f40c3..0000000
--- a/jpa/tests/org.eclipse.jpt.utility.tests/src/org/eclipse/jpt/utility/tests/internal/model/value/swing/TreeModelAdapterUITest.java
+++ /dev/null
@@ -1,424 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2008 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.utility.tests.internal.model.value.swing;
-
-import java.awt.BorderLayout;
-import java.awt.Component;
-import java.awt.GridLayout;
-import java.awt.TextField;
-import java.awt.event.ActionEvent;
-import java.awt.event.WindowAdapter;
-import java.awt.event.WindowEvent;
-import java.awt.event.WindowListener;
-import java.util.Collection;
-import java.util.Collections;
-import java.util.Enumeration;
-import javax.swing.AbstractAction;
-import javax.swing.Action;
-import javax.swing.JButton;
-import javax.swing.JFrame;
-import javax.swing.JPanel;
-import javax.swing.JScrollPane;
-import javax.swing.JTree;
-import javax.swing.WindowConstants;
-import javax.swing.event.TreeSelectionEvent;
-import javax.swing.event.TreeSelectionListener;
-import javax.swing.tree.DefaultTreeSelectionModel;
-import javax.swing.tree.TreeModel;
-import javax.swing.tree.TreePath;
-import javax.swing.tree.TreeSelectionModel;
-import org.eclipse.jpt.utility.internal.CollectionTools;
-import org.eclipse.jpt.utility.internal.iterators.EnumerationIterator;
-import org.eclipse.jpt.utility.internal.model.value.SimplePropertyValueModel;
-import org.eclipse.jpt.utility.internal.model.value.swing.TreeModelAdapter;
-import org.eclipse.jpt.utility.internal.swing.Displayable;
-import org.eclipse.jpt.utility.model.value.TreeNodeValueModel;
-import org.eclipse.jpt.utility.model.value.WritablePropertyValueModel;
-import org.eclipse.jpt.utility.tests.internal.model.value.swing.TreeModelAdapterTests.SortedTestNode;
-import org.eclipse.jpt.utility.tests.internal.model.value.swing.TreeModelAdapterTests.TestModel;
-import org.eclipse.jpt.utility.tests.internal.model.value.swing.TreeModelAdapterTests.TestNode;
-import org.eclipse.jpt.utility.tests.internal.model.value.swing.TreeModelAdapterTests.UnsortedTestNode;
-
-/**
- * an example UI for testing the TreeModelAdapter
- */
-public class TreeModelAdapterUITest {
-
-	// hold the tree so we can restore its expansion state
-	private JTree tree;
-	private WritablePropertyValueModel<TreeNodeValueModel<Object>> rootNodeHolder;
-	private boolean sorted;
-	private TreeModel treeModel;
-	private TreeSelectionModel treeSelectionModel;
-	private TextField nameTextField;
-
-	public static void main(String[] args) throws Exception {
-		new TreeModelAdapterUITest().exec(args);
-	}
-
-	private TreeModelAdapterUITest() {
-		super();
-	}
-
-	private void exec(String[] args) throws Exception {
-		this.rootNodeHolder = this.buildRootNodeHolder();
-		this.sorted = this.rootNodeHolder.getValue() instanceof SortedTestNode;
-		this.treeModel = this.buildTreeModel();
-		this.treeSelectionModel = this.buildTreeSelectionModel();
-		this.nameTextField = new TextField();
-		this.openWindow();
-	}
-
-	private WritablePropertyValueModel<TreeNodeValueModel<Object>> buildRootNodeHolder() {
-		return new SimplePropertyValueModel<TreeNodeValueModel<Object>>(this.buildSortedRootNode());
-	}
-
-	private TestNode buildSortedRootNode() {
-		return new SortedTestNode(this.buildRoot());
-	}
-
-	private TestNode buildUnsortedRootNode() {
-		return new UnsortedTestNode(this.buildRoot());
-	}
-
-	private TestModel buildRoot() {
-		TestModel root = new TestModel("root");
-
-		TestModel node_1 = root.addChild("node 1");
-		/*Node node_1_1 = */node_1.addChild("node 1.1");
-
-		TestModel node_2 = root.addChild("node 2");
-		/*Node node_2_1 = */node_2.addChild("node 2.1");
-		TestModel node_2_2 = node_2.addChild("node 2.2");
-		/*Node node_2_2_1 = */node_2_2.addChild("node 2.2.1");
-		/*Node node_2_2_2 = */node_2_2.addChild("node 2.2.2");
-		/*Node node_2_3 = */node_2.addChild("node 2.3");
-		/*Node node_2_4 = */node_2.addChild("node 2.4");
-		/*Node node_2_5 = */node_2.addChild("node 2.5");
-
-		TestModel node_3 = root.addChild("node 3");
-		TestModel node_3_1 = node_3.addChild("node 3.1");
-		TestModel node_3_1_1 = node_3_1.addChild("node 3.1.1");
-		/*Node node_3_1_1_1 = */node_3_1_1.addChild("node 3.1.1.1");
-
-		/*Node node_4 = */root.addChild("node 4");
-
-		return root;
-	}
-
-	private TreeModel buildTreeModel() {
-		return new TreeModelAdapter<Object>(this.rootNodeHolder);
-	}
-
-	private TreeSelectionModel buildTreeSelectionModel() {
-		TreeSelectionModel tsm = new DefaultTreeSelectionModel();
-		tsm.addTreeSelectionListener(this.buildTreeSelectionListener());
-		tsm.setSelectionMode(TreeSelectionModel.SINGLE_TREE_SELECTION);
-		return tsm;
-	}
-
-	private TreeSelectionListener buildTreeSelectionListener() {
-		return new TreeSelectionListener() {
-			public void valueChanged(TreeSelectionEvent e) {
-				TreeModelAdapterUITest.this.treeSelectionChanged(e);
-			}
-		};
-	}
-
-	void treeSelectionChanged(TreeSelectionEvent e) {
-		TestModel selectedTestModel = this.selectedTestModel();
-		if (selectedTestModel != null) {
-			this.nameTextField.setText(selectedTestModel.getName());
-		}
-	}
-
-	private void openWindow() {
-		JFrame window = new JFrame(this.getClass().getName());
-		window.setDefaultCloseOperation(WindowConstants.DO_NOTHING_ON_CLOSE);
-		window.addWindowListener(this.buildWindowListener());
-		window.getContentPane().add(this.buildMainPanel(), "Center");
-		window.setLocation(300, 300);
-		window.setSize(400, 400);
-		window.setVisible(true);
-	}
-
-	private WindowListener buildWindowListener() {
-		return new WindowAdapter() {
-			@Override
-			public void windowClosing(WindowEvent e) {
-				e.getWindow().setVisible(false);
-				System.exit(0);
-			}
-		};
-	}
-
-	private Component buildMainPanel() {
-		JPanel mainPanel = new JPanel(new BorderLayout());
-		mainPanel.add(this.buildTreePane(), BorderLayout.CENTER);
-		mainPanel.add(this.buildControlPanel(), BorderLayout.SOUTH);
-		return mainPanel;
-	}
-
-	private Component buildTreePane() {
-		return new JScrollPane(this.buildTree());
-	}
-
-	private JTree buildTree() {
-		this.tree = new JTree(this.treeModel) {
-			@Override
-			public String convertValueToText(Object value, boolean selected, boolean expanded, boolean leaf, int row, boolean hasFocus) {
-				return ((Displayable) value).displayString();
-			}
-		};
-		this.tree.setSelectionModel(this.treeSelectionModel);
-		this.tree.setRootVisible(true);
-		this.tree.setShowsRootHandles(true);
-		this.tree.setRowHeight(20);
-		this.tree.setDoubleBuffered(true);
-		return this.tree;
-	}
-
-	private Component buildControlPanel() {
-		JPanel controlPanel = new JPanel(new GridLayout(0, 1));
-		controlPanel.add(this.buildAddRenameNodePanel());
-		controlPanel.add(this.buildMiscPanel());
-		return controlPanel;
-	}
-
-	private Component buildAddRenameNodePanel() {
-		JPanel addRenameNodePanel = new JPanel(new BorderLayout());
-		addRenameNodePanel.add(this.buildAddButton(), BorderLayout.WEST);
-		addRenameNodePanel.add(this.nameTextField, BorderLayout.CENTER);
-		addRenameNodePanel.add(this.buildRenameButton(), BorderLayout.EAST);
-		return addRenameNodePanel;
-	}
-
-	private Component buildMiscPanel() {
-		JPanel miscPanel = new JPanel(new GridLayout(1, 0));
-		miscPanel.add(this.buildClearChildrenButton());
-		miscPanel.add(this.buildRemoveButton());
-		miscPanel.add(this.buildResetButton());
-		return miscPanel;
-	}
-
-	private String getName() {
-		return this.nameTextField.getText();
-	}
-
-	// ********** queries **********
-	private TestNode selectedNode() {
-		if (this.treeSelectionModel.isSelectionEmpty()) {
-			return null;
-		}
-		return (TestNode) this.treeSelectionModel.getSelectionPath().getLastPathComponent();
-	}
-
-	private TestModel selectedTestModel() {
-		if (this.treeSelectionModel.isSelectionEmpty()) {
-			return null;
-		}
-		return this.selectedNode().getValue();
-	}
-
-	private TestNode rootNode() {
-		return (TestNode) this.treeModel.getRoot();
-	}
-
-	private TestModel root() {
-		return this.rootNode().getValue();
-	}
-
-	private Collection<TreePath> expandedPaths() {
-		Enumeration<TreePath> stream = this.tree.getExpandedDescendants(new TreePath(this.rootNode()));
-		if (stream == null) {
-			return Collections.emptyList();
-		}
-		return CollectionTools.list(new EnumerationIterator<TreePath>(stream));
-	}
-
-	// ********** behavior **********
-	private void setSelectedNode(TestNode selectedNode) {
-		this.treeSelectionModel.setSelectionPath(new TreePath(selectedNode.path()));
-	}
-
-	private void expandPaths(Collection<TreePath> paths) {
-		for (TreePath path : paths) {
-			this.tree.expandPath(path);
-		}
-	}
-
-	// ********** add **********
-	private JButton buildAddButton() {
-		return new JButton(this.buildAddAction());
-	}
-
-	private Action buildAddAction() {
-		Action action = new AbstractAction("add") {
-			public void actionPerformed(ActionEvent event) {
-				TreeModelAdapterUITest.this.addNode();
-			}
-		};
-		action.setEnabled(true);
-		return action;
-	}
-
-	/**
-	 * adding causes the tree to be sorted and nodes to be
-	 * removed and re-added; so we have to fiddle with the expansion state
-	 */
-	void addNode() {
-		TestModel selectedTestModel = this.selectedTestModel();
-		if (selectedTestModel != null) {
-			String name = this.getName();
-			// save the expansion state and restore it after the add
-			Collection<TreePath> paths = this.expandedPaths();
-
-			selectedTestModel.addChild(name);
-
-			this.expandPaths(paths);
-			this.setSelectedNode(this.selectedNode().childNamed(name));
-		}
-	}
-
-	// ********** remove **********
-	private JButton buildRemoveButton() {
-		return new JButton(this.buildRemoveAction());
-	}
-
-	private Action buildRemoveAction() {
-		Action action = new AbstractAction("remove") {
-			public void actionPerformed(ActionEvent event) {
-				TreeModelAdapterUITest.this.removeNode();
-			}
-		};
-		action.setEnabled(true);
-		return action;
-	}
-
-	/**
-	 * we need to figure out which node to select after
-	 * the selected node is deleted
-	 */
-	void removeNode() {
-		TestModel selectedTestModel = this.selectedTestModel();
-		// do not allow the root to be removed
-		if ((selectedTestModel != null) && (selectedTestModel != this.root())) {
-			// save the parent and index, so we can select another, nearby, node
-			// once the selected node is removed
-			TestNode parentNode = (TestNode) this.selectedNode().parent();
-			int childIndex = parentNode.indexOfChild(this.selectedNode());
-
-			selectedTestModel.getParent().removeChild(selectedTestModel);
-
-			int childrenSize = parentNode.childrenSize();
-			if (childIndex < childrenSize) {
-				// select the child that moved up and replaced the just-deleted child
-				this.setSelectedNode((TestNode) parentNode.child(childIndex));
-			} else {
-				if (childrenSize == 0) {
-					// if there are no more children, select the parent
-					this.setSelectedNode(parentNode);
-				} else {
-					// if the child at the bottom of the list was deleted, select the next child up
-					this.setSelectedNode((TestNode) parentNode.child(childIndex - 1));
-				}
-			}
-		}
-	}
-
-	// ********** rename **********
-	private JButton buildRenameButton() {
-		return new JButton(this.buildRenameAction());
-	}
-
-	private Action buildRenameAction() {
-		Action action = new AbstractAction("rename") {
-			public void actionPerformed(ActionEvent event) {
-				TreeModelAdapterUITest.this.renameNode();
-			}
-		};
-		action.setEnabled(true);
-		return action;
-	}
-
-	/**
-	 * renaming causes the tree to be sorted and nodes to be
-	 * removed and re-added; so we have to fiddle with the expansion state
-	 */
-	void renameNode() {
-		TestModel selectedTestModel = this.selectedTestModel();
-		if (selectedTestModel != null) {
-			// save the node and re-select it after the rename
-			TestNode selectedNode = this.selectedNode();
-			// save the expansion state and restore it after the rename
-			Collection<TreePath> paths = this.expandedPaths();
-
-			selectedTestModel.setName(this.getName());
-
-			this.expandPaths(paths);
-			this.setSelectedNode(selectedNode);
-		}
-	}
-
-	// ********** clear children **********
-	private JButton buildClearChildrenButton() {
-		return new JButton(this.buildClearChildrenAction());
-	}
-
-	private Action buildClearChildrenAction() {
-		Action action = new AbstractAction("clear children") {
-			public void actionPerformed(ActionEvent event) {
-				TreeModelAdapterUITest.this.clearChildren();
-			}
-		};
-		action.setEnabled(true);
-		return action;
-	}
-
-	/**
-	 * nothing special, we just want to test #fireCollectionChanged(String)
-	 */
-	void clearChildren() {
-		TestModel selectedTestModel = this.selectedTestModel();
-		if (selectedTestModel != null) {
-			selectedTestModel.clearChildren();
-		}
-	}
-
-	// ********** reset **********
-	private JButton buildResetButton() {
-		return new JButton(this.buildResetAction());
-	}
-
-	private Action buildResetAction() {
-		Action action = new AbstractAction("reset") {
-			public void actionPerformed(ActionEvent event) {
-				TreeModelAdapterUITest.this.reset();
-			}
-		};
-		action.setEnabled(true);
-		return action;
-	}
-
-	/**
-	 * test the adapter's root node holder;
-	 * toggle between sorted and unsorted lists
-	 */
-	void reset() {
-		this.sorted = ! this.sorted;
-		if (this.sorted) {
-			this.rootNodeHolder.setValue(this.buildSortedRootNode());
-		} else {
-			this.rootNodeHolder.setValue(this.buildUnsortedRootNode());
-		}
-		this.tree.expandPath(new TreePath(this.rootNode()));
-	}
-
-}
diff --git a/jpa/tests/org.eclipse.jpt.utility.tests/src/org/eclipse/jpt/utility/tests/internal/node/AbstractNodeTests.java b/jpa/tests/org.eclipse.jpt.utility.tests/src/org/eclipse/jpt/utility/tests/internal/node/AbstractNodeTests.java
deleted file mode 100644
index 4a30ba3..0000000
--- a/jpa/tests/org.eclipse.jpt.utility.tests/src/org/eclipse/jpt/utility/tests/internal/node/AbstractNodeTests.java
+++ /dev/null
@@ -1,526 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2008 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- * 
- * Contributors:
- *     Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.utility.tests.internal.node;
-
-import java.util.ArrayList;
-import java.util.Collection;
-import java.util.Iterator;
-import java.util.List;
-import junit.framework.TestCase;
-import org.eclipse.jpt.utility.internal.CollectionTools;
-import org.eclipse.jpt.utility.internal.HashBag;
-import org.eclipse.jpt.utility.internal.Range;
-import org.eclipse.jpt.utility.internal.iterators.CloneIterator;
-import org.eclipse.jpt.utility.internal.node.AbstractNode;
-import org.eclipse.jpt.utility.internal.node.Node;
-import org.eclipse.jpt.utility.internal.node.Problem;
-import org.eclipse.jpt.utility.tests.internal.TestTools;
-
-public class AbstractNodeTests extends TestCase {
-	private TestWorkbenchModel root;
-
-	public AbstractNodeTests(String name) {
-		super(name);
-	}
-
-	@Override
-	protected void setUp() throws Exception {
-		super.setUp();
-		this.root = this.buildRoot();
-	}
-
-	private TestWorkbenchModel buildRoot() {
-		TestWorkbenchModel r = new RootTestWorkbenchModel("root");
-			TestWorkbenchModel node1 = r.addTestChildNamed("node 1");
-				TestWorkbenchModel node1_1 = node1.addTestChildNamed("node 1.1");
-					node1_1.addTestChildNamed("node 1.1.1");
-					node1_1.addTestChildNamed("node 1.1.2");
-					node1_1.addTestChildNamed("node 1.1.3");
-				node1.addTestChildNamed("node 1.2");
-			TestWorkbenchModel node2 = r.addTestChildNamed("node 2");
-				node2.addTestChildNamed("node 2.1");
-				node2.addTestChildNamed("node 2.2");
-			r.addTestChildNamed("node 3");
-			r.addTestChildNamed("node 4");
-
-		// mark the entire tree clean
-		r.markEntireBranchClean();
-		return r;
-	}
-
-	@Override
-	protected void tearDown() throws Exception {
-		TestTools.clear(this);
-		super.tearDown();
-	}
-
-	public void testTestWorkbenchModel() {
-		// make sure our test class works OK...
-		assertNull(this.root.testChildNamed(""));
-		assertNotNull(this.root.testChildNamed("node 1"));
-		assertTrue(this.root.testChildNamed("node 1").isClean());
-		assertTrue(this.root.testChildNamed("node 1").isCleanBranch());
-		assertNotNull(this.root.testChildNamed("node 2"));
-		assertTrue(this.root.testChildNamed("node 2").isClean());
-		assertTrue(this.root.testChildNamed("node 2").isCleanBranch());
-		assertNull(this.root.testChildNamed("node 2.1"));
-
-		assertNull(this.root.testDescendantNamed(""));
-		assertNotNull(this.root.testDescendantNamed("node 1"));
-		assertNotNull(this.root.testDescendantNamed("node 2"));
-		assertNotNull(this.root.testDescendantNamed("node 2.1"));
-		assertTrue(this.root.testDescendantNamed("node 2.1").isClean());
-		assertTrue(this.root.testDescendantNamed("node 2.1").isCleanBranch());
-		assertNotNull(this.root.testDescendantNamed("node 1.1.3"));
-		assertTrue(this.root.testDescendantNamed("node 1.1.3").isClean());
-		assertTrue(this.root.testDescendantNamed("node 1.1.3").isCleanBranch());
-	}
-
-	public void testParentAndChildren() {
-		TestWorkbenchModel node = this.root.testDescendantNamed("node 1.1.3");
-		assertEquals("node 1.1.3", node.getName());
-		assertEquals(0, CollectionTools.size(node.children()));
-
-		node = (TestWorkbenchModel) node.getParent();
-		assertEquals("node 1.1", node.getName());
-		assertEquals(3, CollectionTools.size(node.children()));
-
-		node = (TestWorkbenchModel) node.getParent();
-		assertEquals("node 1", node.getName());
-		assertEquals(2, CollectionTools.size(node.children()));
-
-		node = (TestWorkbenchModel) node.getParent();
-		assertEquals("root", node.getName());
-		assertEquals(4, CollectionTools.size(node.children()));
-
-		node = (TestWorkbenchModel) node.getParent();
-		assertNull(node);
-	}
-
-	public void testDirty() {
-		TestWorkbenchModel node = this.root.testDescendantNamed("node 1.1.3");
-		node.setSize(42);
-		assertTrue(node.isDirty());
-
-		TestWorkbenchModel parent = (TestWorkbenchModel) node.getParent();
-		assertTrue(parent.isClean());
-		assertTrue(this.root.isClean());
-	}
-
-	public void testDirtyUnchangedAttribute() {
-		TestWorkbenchModel node = this.root.testDescendantNamed("node 1.1.3");
-		node.setSize(42);
-		assertTrue(node.isDirty());
-
-		TestWorkbenchModel parent = (TestWorkbenchModel) node.getParent();
-		assertTrue(parent.isClean());
-		assertTrue(this.root.isClean());
-
-		this.root.markEntireBranchClean();
-		// set size to same number - should stay clean
-		node.setSize(42);
-		assertTrue(node.isClean());
-		assertTrue(parent.isClean());
-		assertTrue(this.root.isClean());
-	}
-
-	public void testDirtyBranch() {
-		TestWorkbenchModel node = this.root.testDescendantNamed("node 1.1.3");
-		node.setSize(42);
-		assertTrue(node.isDirtyBranch());
-
-		TestWorkbenchModel parent = (TestWorkbenchModel) node.getParent();
-		assertTrue(parent.isDirtyBranch());
-		assertTrue(this.root.isDirtyBranch());
-
-		parent.setSize(77);
-		assertTrue(parent.isDirty());
-		assertTrue(parent.isDirtyBranch());
-
-		node.markEntireBranchClean();
-		assertTrue(parent.isDirty());
-		assertTrue(parent.isDirtyBranch());
-	}
-
-	public void testDirtyBranchCleanChildDirtyParent() {
-		TestWorkbenchModel node = this.root.testDescendantNamed("node 1.1.3");
-		node.setSize(42);
-
-		TestWorkbenchModel parent = (TestWorkbenchModel) node.getParent();
-		parent.setSize(77);
-		assertTrue(parent.isDirty());
-		assertTrue(parent.isDirtyBranch());
-
-		// now, clean the child, but leave the parent dirty
-		node.markEntireBranchClean();
-		assertTrue(parent.isDirty());
-		assertTrue(parent.isDirtyBranch());
-	}
-
-	public void testDirtyBranchCleanChildDirtyChild() {
-		TestWorkbenchModel node1 = this.root.testDescendantNamed("node 1.1.1");
-		node1.setSize(41);
-		TestWorkbenchModel node2 = this.root.testDescendantNamed("node 1.1.2");
-		node2.setSize(42);
-
-		TestWorkbenchModel parent = (TestWorkbenchModel) node1.getParent();
-		assertTrue(parent.isClean());
-		assertTrue(parent.isDirtyBranch());
-
-		// now, clean the first child, but leave the second child dirty
-		node1.markEntireBranchClean();
-		assertTrue(parent.isClean());
-		assertTrue(parent.isDirtyBranch());
-	}
-
-	public void testDirtyBranchForced() {
-		TestWorkbenchModel node = this.root.testDescendantNamed("node 1.1.3");
-		TestWorkbenchModel parent = (TestWorkbenchModel) node.getParent();
-
-		assertTrue(node.isClean());
-		assertTrue(node.isCleanBranch());
-		assertTrue(parent.isClean());
-		assertTrue(parent.isCleanBranch());
-		assertTrue(this.root.isClean());
-		assertTrue(this.root.isCleanBranch());
-
-		this.root.markEntireBranchDirty();
-
-		assertTrue(node.isDirty());
-		assertTrue(node.isDirtyBranch());
-		assertTrue(parent.isDirty());
-		assertTrue(parent.isDirtyBranch());
-		assertTrue(this.root.isDirty());
-		assertTrue(this.root.isDirtyBranch());
-	}
-
-	public void testDirtyTransientAttribute() {
-		TestWorkbenchModel node = this.root.testDescendantNamed("node 1.1.3");
-		node.setName("BOGUS");
-		assertTrue(node.isDirty());
-		TestWorkbenchModel parent = (TestWorkbenchModel) node.getParent();
-		assertTrue(parent.isClean());
-		assertTrue(parent.isDirtyBranch());
-		assertTrue(this.root.isClean());
-		assertTrue(this.root.isDirtyBranch());
-
-		this.root.markEntireBranchClean();
-
-		this.root.validateBranch();
-
-		assertTrue(this.root.problemsSize() == 0);
-		assertTrue(node.branchProblems().hasNext());
-		assertTrue(parent.problemsSize() == 0);
-		assertTrue(parent.branchProblems().hasNext());
-		assertTrue(node.problemsSize() > 0);
-
-		// since problems are transient, everything should still be clean
-		assertTrue(node.isClean());
-		assertTrue(node.isCleanBranch());
-		assertTrue(parent.isClean());
-		assertTrue(parent.isCleanBranch());
-		assertTrue(this.root.isClean());
-		assertTrue(this.root.isCleanBranch());
-	}
-
-	public void testProblems() {
-		TestWorkbenchModel node = this.root.testDescendantNamed("node 1.1.3");
-		node.setName("BOGUS");
-		TestWorkbenchModel parent = (TestWorkbenchModel) node.getParent();
-
-		this.root.validateBranch();
-
-		assertEquals(0, this.root.problemsSize());
-		assertTrue(node.branchProblems().hasNext());
-		assertEquals(0, parent.problemsSize());
-		assertTrue(parent.branchProblems().hasNext());
-		assertEquals(1, node.problemsSize());
-		Problem problem1 = node.problems().next();
-
-		// now create another problem that should remove the old problem
-		node.setName("STILL BOGUS");
-		this.root.validateBranch();
-
-		assertEquals(0, this.root.problemsSize());
-		assertTrue(node.branchProblems().hasNext());
-		assertEquals(0, parent.problemsSize());
-		assertTrue(parent.branchProblems().hasNext());
-		assertEquals(1, node.problemsSize());
-		Problem problem2 = node.problems().next();
-		assertFalse(problem1 == problem2);
-		problem1 = problem2;
-
-		// now create another problem that should replace the old problem
-		node.setName("STILL BOGUS");
-		this.root.validateBranch();
-
-		assertEquals(0, this.root.problemsSize());
-		assertTrue(node.branchProblems().hasNext());
-		assertEquals(0, parent.problemsSize());
-		assertTrue(parent.branchProblems().hasNext());
-		assertEquals(1, node.problemsSize());
-		problem2 = node.problems().next();
-		// the same problem should be there
-		assertTrue(problem1.equals(problem2));
-	}
-
-	public void testBranchProblems() {
-		TestWorkbenchModel node = this.root.testDescendantNamed("node 1.1.3");
-		node.setName("BOGUS");
-		TestWorkbenchModel parent = (TestWorkbenchModel) node.getParent();
-		parent.setName("BOGUS TOO");
-		this.root.setName("BOGUS TOO TOO");
-
-		this.root.validateBranch();
-
-		assertEquals(1, this.root.problemsSize());
-		assertEquals(3, this.root.branchProblemsSize());
-		assertEquals(1, parent.problemsSize());
-		assertEquals(2, parent.branchProblemsSize());
-		assertEquals(1, node.problemsSize());
-		assertEquals(1, node.branchProblemsSize());
-
-		node.setName("okie-dokie");
-
-		this.root.validateBranch();
-
-		assertEquals(1, this.root.problemsSize());
-		assertEquals(2, this.root.branchProblemsSize());
-		assertEquals(1, parent.problemsSize());
-		assertEquals(1, parent.branchProblemsSize());
-		assertEquals(0, node.problemsSize());
-		assertEquals(0, node.branchProblemsSize());
-	}
-
-	public void testClearAllBranchProblems() {
-		TestWorkbenchModel node = this.root.testDescendantNamed("node 1.1.3");
-		node.setName("BOGUS");
-		TestWorkbenchModel parent = (TestWorkbenchModel) node.getParent();
-		parent.setName("BOGUS TOO");
-		this.root.setName("BOGUS TOO TOO");
-
-		this.root.validateBranch();
-
-		assertEquals(1, this.root.problemsSize());
-		assertEquals(3, this.root.branchProblemsSize());
-		assertEquals(1, parent.problemsSize());
-		assertEquals(2, parent.branchProblemsSize());
-		assertEquals(1, node.problemsSize());
-		assertEquals(1, node.branchProblemsSize());
-
-		parent.clearAllBranchProblems();
-
-		assertEquals(1, this.root.problemsSize());
-		assertEquals(1, this.root.branchProblemsSize());
-		assertEquals(0, parent.problemsSize());
-		assertEquals(0, parent.branchProblemsSize());
-		assertEquals(0, node.problemsSize());
-		assertEquals(0, CollectionTools.size(node.branchProblems()));
-	}
-
-	public void testRemovedBranchProblems() {
-		TestWorkbenchModel node = this.root.testDescendantNamed("node 1.1.3");
-		node.setName("BOGUS");
-		TestWorkbenchModel parent = (TestWorkbenchModel) node.getParent();
-		parent.setName("BOGUS TOO");
-		this.root.setName("BOGUS TOO TOO");
-
-		this.root.validateBranch();
-
-		assertEquals(1, this.root.problemsSize());
-		assertEquals(3, CollectionTools.size(this.root.branchProblems()));
-		assertEquals(1, parent.problemsSize());
-		assertEquals(2, parent.branchProblemsSize());
-		assertEquals(1, node.problemsSize());
-		assertEquals(1, CollectionTools.size(node.branchProblems()));
-
-		// completely remove a node that has problems -
-		// the entire tree should recalculate its "branch" problems
-		parent.removeTestChild(node);
-
-		this.root.validateBranch();
-
-		assertEquals(1, this.root.problemsSize());
-		assertEquals(2, CollectionTools.size(this.root.branchProblems()));
-		assertEquals(1, parent.problemsSize());
-		assertEquals(1, parent.branchProblemsSize());
-	}
-
-	public void testSort() {
-		List<TestWorkbenchModel> nodes = this.buildSortedNodes();
-		assertTrue(new Range(0, 1).includes(this.indexOf(nodes, "aaa")));
-		assertTrue(new Range(0, 1).includes(this.indexOf(nodes, "AAA")));
-		assertTrue(new Range(2, 3).includes(this.indexOf(nodes, "bbb")));
-		assertTrue(new Range(2, 3).includes(this.indexOf(nodes, "BBB")));
-		assertTrue(new Range(4, 6).includes(this.indexOf(nodes, "ccc")));
-		assertTrue(new Range(4, 6).includes(this.indexOf(nodes, "CCC")));
-		assertTrue(new Range(4, 6).includes(this.indexOf(nodes, "���")));
-	}
-
-	private int indexOf(List<TestWorkbenchModel> nodes, String nodeName) {
-		for (int i = nodes.size(); i-- > 0; ) {
-			if (nodes.get(i).getName().equals(nodeName)) {
-				return i;
-			}
-		}
-		throw new IllegalArgumentException();
-	}
-
-	private List<TestWorkbenchModel> buildSortedNodes() {
-		List<TestWorkbenchModel> result = new ArrayList<TestWorkbenchModel>();
-		result.add(new RootTestWorkbenchModel("AAA"));
-		result.add(new RootTestWorkbenchModel("BBB"));
-		result.add(new RootTestWorkbenchModel("CCC"));
-		result.add(new RootTestWorkbenchModel("���"));
-		result.add(new RootTestWorkbenchModel("ccc"));
-		result.add(new RootTestWorkbenchModel("bbb"));
-		result.add(new RootTestWorkbenchModel("aaa"));
-		return CollectionTools.sort(result);
-	}
-
-
-	// ********** inner classes **********
-
-	private class TestWorkbenchModel extends AbstractNode {
-		private String name;
-			public static final String NAME_PROPERTY = "name";
-		private int size;
-			public static final String SIZE_PROPERTY = "size";
-		private Collection<TestWorkbenchModel> testChildren;
-			public static final String TEST_CHILDREN_COLLECTION = "children";
-	
-		// ********** construction/initialization **********
-		public TestWorkbenchModel(TestWorkbenchModel parent, String name) {
-			super(parent);
-			if (name == null) {
-				throw new NullPointerException();
-			}
-			this.name = name;
-		}
-		@Override
-		protected void initialize() {
-			super.initialize();
-			this.size = 0;
-			this.testChildren = new HashBag<TestWorkbenchModel>();
-		}
-		
-		@Override
-		protected void checkParent(Node parent) {
-			// do nothing
-		}
-	
-	
-		// ********** accessors **********
-		public String getName() {
-			return this.name;
-		}
-		public void setName(String name) {
-			Object old = this.name;
-			this.name = name;
-			this.firePropertyChanged(NAME_PROPERTY, old, name);
-		}
-	
-		public int getSize() {
-			return this.size;
-		}
-		public void setSize(int size) {
-			int old = this.size;
-			this.size = size;
-			this.firePropertyChanged(SIZE_PROPERTY, old, size);
-		}
-	
-		public Iterator<TestWorkbenchModel> testChildren() {
-			return new CloneIterator<TestWorkbenchModel>(this.testChildren) {
-				@Override
-				protected void remove(TestWorkbenchModel current) {
-					TestWorkbenchModel.this.removeTestChild(current);
-				}
-			};
-		}
-		public int testChildrenSize() {
-			return this.testChildren.size();
-		}
-		private TestWorkbenchModel addTestChild(TestWorkbenchModel testChild) {
-			this.addItemToCollection(testChild, this.testChildren, TEST_CHILDREN_COLLECTION);
-			return testChild;
-		}
-		public TestWorkbenchModel addTestChildNamed(String childName) {
-			if (this.testChildNamed(childName) != null) {
-				throw new IllegalArgumentException(childName);
-			}
-			return this.addTestChild(new TestWorkbenchModel(this, childName));
-		}
-		public void removeTestChild(TestWorkbenchModel testChild) {
-			this.removeItemFromCollection(testChild, this.testChildren, TEST_CHILDREN_COLLECTION);
-		}
-	
-		// ********** queries **********
-		public String displayString() {
-			return this.name;
-		}
-		public TestWorkbenchModel testChildNamed(String childName) {
-			for (TestWorkbenchModel testChild : this.testChildren) {
-				if (testChild.getName().equals(childName)) {
-					return testChild;
-				}
-			}
-			return null;
-		}
-		public TestWorkbenchModel testDescendantNamed(String descendantName) {
-			for (TestWorkbenchModel testDescendant : this.testChildren) {
-				if (testDescendant.getName().equals(descendantName)) {
-					return testDescendant;
-				}
-				// recurse...
-				testDescendant = testDescendant.testDescendantNamed(descendantName);
-				if (testDescendant != null) {
-					return testDescendant;
-				}
-			}
-			return null;
-		}
-	
-		// ********** behavior **********
-		@Override
-		protected void addChildrenTo(List<Node> children) {
-			super.addChildrenTo(children);
-			children.addAll(this.testChildren);
-		}
-		@Override
-		protected void addProblemsTo(List<Problem> currentProblems) {
-			super.addProblemsTo(currentProblems);
-			// names must be all lowercase...
-			for (int i = this.name.length(); i-- > 0; ) {
-				char c = this.name.charAt(i);
-				if (Character.isLetter(c) && ! Character.isLowerCase(c)) {
-					currentProblems.add(this.buildProblem("NAME_MUST_BE_LOWERCASE", this.name));
-					return;
-				}
-			}
-		}
-		@Override
-		public void toString(StringBuilder sb) {
-			sb.append(this.name);
-		}
-	}
-
-
-	private class RootTestWorkbenchModel extends TestWorkbenchModel {
-		public RootTestWorkbenchModel(String name) {
-			super(null, name);
-		}
-		@Override
-		public Validator getValidator() {
-			return Node.NULL_VALIDATOR;
-		}
-	}
-
-}
-
diff --git a/jpa/tests/org.eclipse.jpt.utility.tests/src/org/eclipse/jpt/utility/tests/internal/node/JptUtilityNodeTests.java b/jpa/tests/org.eclipse.jpt.utility.tests/src/org/eclipse/jpt/utility/tests/internal/node/JptUtilityNodeTests.java
deleted file mode 100644
index 94f682d..0000000
--- a/jpa/tests/org.eclipse.jpt.utility.tests/src/org/eclipse/jpt/utility/tests/internal/node/JptUtilityNodeTests.java
+++ /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
- ******************************************************************************/
-package org.eclipse.jpt.utility.tests.internal.node;
-
-import junit.framework.Test;
-import junit.framework.TestSuite;
-
-public class JptUtilityNodeTests {
-	
-	public static Test suite() {
-		TestSuite suite = new TestSuite(JptUtilityNodeTests.class.getPackage().getName());
-	
-		suite.addTestSuite(AbstractNodeTests.class);
-	
-		return suite;
-	}
-	
-	private JptUtilityNodeTests() {
-		super();
-	}
-	
-}
diff --git a/jpa/tests/org.eclipse.jpt.utility.tests/test.xml b/jpa/tests/org.eclipse.jpt.utility.tests/test.xml
deleted file mode 100644
index bf3ab7e..0000000
--- a/jpa/tests/org.eclipse.jpt.utility.tests/test.xml
+++ /dev/null
@@ -1,40 +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 -->
-	<property name="plugin-name" value="org.eclipse.jpt.utility.tests"/>
-
-	<!-- This target holds all initialization code that needs to be done for -->
-	<!-- all tests that are to be run. Initialization for individual tests -->
-	<!-- should be done within the body of the suite target. -->
-	<target name="init">
-		<tstamp/>
-		<delete>
-			<fileset dir="${eclipse-home}" includes="org*.xml"/>
-		</delete>
-	</target>
-
-	<!-- This target defines the tests that need to be run. -->
-	<target name="suite">
-		<ant target="core-test" antfile="${library-file}" dir="${eclipse-home}">
-			<property name="plugin-name" value="${plugin-name}"/>
-			<property name="classname" value="org.eclipse.jpt.utility.tests.internal.JptUtilityTests" />
-			<property name="plugin-path" value="${eclipse-home}/plugins/${plugin-name}"/>
-			<property name="extraVMargs" value=""/>
-		</ant>
-	</target>
-
-	<!-- This target holds code to cleanup the testing environment after -->
-	<!-- after all of the tests have been run. You can use this target to -->
-	<!-- delete temporary files that have been created. -->
-	<target name="cleanup">
-	</target>
-
-	<!-- This target runs the test suite. Any actions that need to happen -->
-	<!-- after all the tests have been run should go here. -->
-	<target name="run" depends="init, suite, cleanup">
-	</target>
-</project>
\ No newline at end of file